PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iSVNPLTg4NTktMSI/PjwhRE9DVFlQRSByc3MgUFVCTElDICItLy9OZXRzY2FwZSBDb21tdW5pY2F0aW9ucy8vRFREIFJTUyAwLjkxLy9FTiIgImh0dHA6Ly9teS5uZXRzY2FwZS5jb20vcHVibGlzaC9mb3JtYXRzL3Jzcy0wLjkxLmR0ZCI+Cjxyc3MgdmVyc2lvbj0iMC45MSI+PGNoYW5uZWw+PHRpdGxlPk15UHJvamVjdCAoMjAwNi0wNSkgQ2hhbmdlczwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj5NeVByb2plY3QKICAgICAgICAgICAgICAoCiAgICAgICAgICAgICAgMjAwNi0wNQogICAgICAgICAgICAgICkgQ2hhbmdlcwogICAgICAgICAgICA8L2Rlc2NyaXB0aW9uPjxsYW5ndWFnZT5lbi11czwvbGFuZ3VhZ2U+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjIgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuMiB1cGRhdGUKICAgICAgICBieQogICAgICAgIGFudG9uaW8KICAgICAgICA6CiAgICAgICAgWzEuMl0gCiAgICAgICAgICAgIERvbid0IGNoZWNrIDIgdGltZSBleHByZXNzaW9uICdjaWUgIT0gbnVsbCcuIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjIgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuMiB1cGRhdGUKICAgICAgICBieQogICAgICAgIGFudG9uaW8KICAgICAgICA6CiAgICAgICAgWzEuMl0gCiAgICAgICAgICAgIERvbid0IGNyZWF0ZSB1bm5lY2VzYXJ5IExvbmcgT2JqZWN0cy4gRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuMiB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS4yIHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgYW50b25pbwogICAgICAgIDoKICAgICAgICBbMS4yXSAKICAgICAgICAgICAgRm9ybWF0dGluZy4gRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuMiB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS4yIHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgYW50b25pbwogICAgICAgIDoKICAgICAgICBbMS4yXSAKICAgICAgICAgICAgQ29kZSBmb3JtYXR0aW5nLiBSZW1vdmUgdW51c2VkIGltcG9ydHMgYW5kIFVzZSBpbXBvcnRzLiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS4yIHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjIgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBhbnRvbmlvCiAgICAgICAgOgogICAgICAgIFsxLjJdIAogICAgICAgICAgICBEb24ndCBjcmVhdGUgdW5uZWNlc2FyeSBMb25nIE9iamVjdHMuIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjQgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuNCB1cGRhdGUKICAgICAgICBieQogICAgICAgIGNoZXN0bnV0CiAgICAgICAgOgogICAgICAgIFsxLjRdIAogICAgICAgICAgICBhbGxvdyBjbGllbnQgZWRpdG9ycyB0byBzYXZlIChzaG91bGQgYWxsb3cga3VwdSB0byBzYXZlKSBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS4yIHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjIgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBhbnRvbmlvCiAgICAgICAgOgogICAgICAgIFsxLjJdIAogICAgICAgICAgICBVc2UgU3RyaW5nQnVmZmVyIGluc2lkZSBjeWNsZXMuIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjIgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuMiB1cGRhdGUKICAgICAgICBieQogICAgICAgIGFudG9uaW8KICAgICAgICA6CiAgICAgICAgWzEuMl0gCiAgICAgICAgICAgIEFudCBUYXNrIGhhcyBhIHZhcmlhYmxlIGNhbGxlZCBkZXNjcmlwdGlvbi4gUmVuYW1lICdkZXNjcmlwdGlvbicgdG8gJ2RjRGVzY3JpcHRpb24nLiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS4yIHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjIgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBhbnRvbmlvCiAgICAgICAgOgogICAgICAgIFsxLjJdIAogICAgICAgICAgICBSZW1vdmUgZGVhZCBzdG9yZSB2YXJpYWJsZS4gRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuMiB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS4yIHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgYW50b25pbwogICAgICAgIDoKICAgICAgICBbMS4yXSAKICAgICAgICAgICAgQ2xlYW4gY29kZSBhbmQgZGVhZCBzdG9yZSB2YXJpYWJsZXMuIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjIgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuMiB1cGRhdGUKICAgICAgICBieQogICAgICAgIGFudG9uaW8KICAgICAgICA6CiAgICAgICAgWzEuMl0gCiAgICAgICAgICAgIENsZWFudXAuIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjIgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuMiB1cGRhdGUKICAgICAgICBieQogICAgICAgIGFudG9uaW8KICAgICAgICA6CiAgICAgICAgWzEuMl0gCiAgICAgICAgICAgIENsYXNzIGlzIGFscmVhZHkgZmluYWwuIFByb3RlY3RlZCB2YXJpYWJsZSBkb2VzIG1ha2Ugc2Vuc2UuIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjIgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuMiB1cGRhdGUKICAgICAgICBieQogICAgICAgIGFudG9uaW8KICAgICAgICA6CiAgICAgICAgWzEuMl0gCiAgICAgICAgICAgIFJlbW92ZSByZWR1bmRhbnQgY2hlY2tzLiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS4yIHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjIgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBhbnRvbmlvCiAgICAgICAgOgogICAgICAgIFsxLjJdIAogICAgICAgICAgICBVc2UgY29tbW9ucy1pbyBpbnN0ZWFkIG9mIGNyZWF0aW5nIG5lc3RlZCBhbm5vbnltb3VzIGNsYXNzZXMuIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjIgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuMiB1cGRhdGUKICAgICAgICBieQogICAgICAgIGFudG9uaW8KICAgICAgICA6CiAgICAgICAgWzEuMl0gCiAgICAgICAgICAgIFNldCBzdGF0aWMgaW5uZXIgY2xhc3MuIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjIgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuMiB1cGRhdGUKICAgICAgICBieQogICAgICAgIGFudG9uaW8KICAgICAgICA6CiAgICAgICAgWzEuMl0gCiAgICAgICAgICAgIFJlbW92ZSBpbnRlcmZhY2UgYWxyZWFkeSBpbXBsZW1lbnRlZCBieSBzdXBlcmNsYXNzLiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS4yIHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjIgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBhbnRvbmlvCiAgICAgICAgOgogICAgICAgIFsxLjJdIAogICAgICAgICAgICBVc2UgTWFwLkVudHJ5LiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS4yIHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjIgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBhbnRvbmlvCiAgICAgICAgOgogICAgICAgIFsxLjJdIAogICAgICAgICAgICBTb21lIGNvZGUgaW1wcm92ZW1lbnRzLlVzZSBNYXAuRW50cnkgaW5zdGVhZCBvZiBsb29raW5nIHVwIHRoZSB2YWx1ZS4gQWRkIGlmIChsb2cuaXNEZWJ1Z0VuYWJsZSgpKSB7fSBjbGF1c3VsZSB0byBjeWNsZXMgZ2VuZXJhdGluZyBsb2cuZGVidWcoKSBpbmZvLiBVc2UgU3RyaW5nQnVmZmVyKCkgaW5zdGVhZCBvZiBTdHJpbmcoKSBpbiBjeWNsZXMuIERvbid0IHVzZSBuZXcgU3RyaW5nKCkgaW5zdGVhZCB1c2UgYW4gZW1wdHkgc3RyaW5nLiBBZGQgZmluYWwga2V5d29yZCB0byBzb21lIHN0YXRpYyB2YXJpYWJsZXMuIEFuZCBvdGhlciBzbWFsbCBpbXByb3ZlbWVudHMuIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjIgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuMiB1cGRhdGUKICAgICAgICBieQogICAgICAgIGFudG9uaW8KICAgICAgICA6CiAgICAgICAgWzEuMl0gCiAgICAgICAgICAgIFJlbW92ZSB1bnVzZWQgaW1wb3J0cy4gRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuMiB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS4yIHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgYW50b25pbwogICAgICAgIDoKICAgICAgICBbMS4yXSAKICAgICAgICAgICAgVXNlIG8uYS5sb2c0ai5Mb2dnZXIgaW5zdGVhZCBvZiBkZXByZWNhdGVkIG8uYS5sb2c0ai5DYXRlZ29yeS4gRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuMiB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS4yIHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgYW50b25pbwogICAgICAgIDoKICAgICAgICBbMS4yXSAKICAgICAgICAgICAgU3luYyB3aXRoIGNvY29vbiAyLjEuOS4gVGhpcyB3b3JrcyB3aXRoIG9sZGVyIGNvY29vbiB2ZXJzaW9ucyB0b28uIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjQgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuNCB1cGRhdGUKICAgICAgICBieQogICAgICAgIG1pY2hpCiAgICAgICAgOgogICAgICAgIFsxLjRdIAogICAgICAgICAgICBsaW5rIHRvIE9EVCBhZGRlZCBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS40IHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjQgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBtaWNoaQogICAgICAgIDoKICAgICAgICBbMS40XSAKICAgICAgICAgICAgbm90ZSBhYm91dCBXZWJEQVYgYWRkZWQgRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuNCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS40IHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgY2R1cG9pcmlldXgKICAgICAgICA6CiAgICAgICAgWzEuNF0gCiAgICAgICAgICAgIEZPUi04NzIgLSBSb2xsQmFjayBvZiB0aGUgcGF0Y2ggaW4gb3JkZXIgdG8gdGFrZSBpbnRvIGFjY291bnQgVGhvcnN0ZW4gcmVtYXJrcy4KV2FpdGluZyBmb3IgYSBuZXcgcGF0Y2ggQ2xheS4uLiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS40IHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjQgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBjZHVwb2lyaWV1eAogICAgICAgIDoKICAgICAgICBbMS40XSAKICAgICAgICAgICAgRk9SLTg3MiAtIFBhdGNoIG9kdF9wbHVnaW4uZGlmZiwgVGhhbmtzIHRvIENsYXkgTGVlZHMuIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCBTYW5kYm94IHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj5TYW5kYm94IHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgbWljaGkKICAgICAgICA6CiAgICAgICAgW1NhbmRib3hdIAogICAgICAgICAgICBjb250ZW50IGRpciBjb21tZW50ZWQgRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IFNhbmRib3ggdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPlNhbmRib3ggdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBtaWNoaQogICAgICAgIDoKICAgICAgICBbU2FuZGJveF0gCiAgICAgICAgICAgIGlnbm9yZSBsb2NhbCBwdWJsaWNhdGlvbiBjb25maWcgRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuNCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS40IHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgbWljaGkKICAgICAgICA6CiAgICAgICAgWzEuNF0gCiAgICAgICAgICAgIFRPRE8gYWRkZWQgRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuNCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS40IHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgbWljaGkKICAgICAgICA6CiAgICAgICAgWzEuNF0gCiAgICAgICAgICAgIG1lc3NhZ2UgaW1wcm92ZWQgRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuNCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS40IHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgbWljaGkKICAgICAgICA6CiAgICAgICAgWzEuNF0gCiAgICAgICAgICAgIGxvZyBhIHdhcm5pbmcgaWYgYSByZXNvdXJjZSB0eXBlIGlzIG5vdCBpbmRleGFibGUgYmVjYXVzZSBnZW5lcmFsbHkgYSByZXNvdXJjZSB0eXBlIHNob3VsZCBiZSBpbmRleGFibGUgRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuNCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS40IHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgbWljaGkKICAgICAgICA6CiAgICAgICAgWzEuNF0gCiAgICAgICAgICAgIGhvdyB0byBtYWtlIGEgcmVzb3VyY2UgdHlwZSBpbmRleGFibGUgYWRkZWQgRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuNCBhZGQ8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS40IGFkZAogICAgICAgIGJ5CiAgICAgICAgbWljaGkKICAgICAgICA6CiAgICAgICAgWzEuNF0gCiAgICAgICAgICAgIFJFQURNRSBvbiB0aGlzIG1vZHVsZSBzdGFydGVkIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjQgYWRkPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuNCBhZGQKICAgICAgICBieQogICAgICAgIG1pY2hpCiAgICAgICAgOgogICAgICAgIFsxLjRdIAogICAgICAgICAgICB1c2VjYXNlIGNvbmZpZyByZW5hbWVkIGFjY29yZGluZyB0byB1c2VjYXNlIG5hbWUgRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuNCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS40IHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgbWljaGkKICAgICAgICA6CiAgICAgICAgWzEuNF0gCiAgICAgICAgICAgIGxvZ2dlciBuYW1lIGNoYW5nZWQgc3VjaCB0aGF0IG9uZSBhY3R1YWxseSBrbm93cyB3aGVyZSB0byBsb29rIGZvciBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS40IGFkZDwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjQgYWRkCiAgICAgICAgYnkKICAgICAgICBtaWNoaQogICAgICAgIDoKICAgICAgICBbMS40XSAKICAgICAgICAgICAgZGVzY3JpcHRpb24gYWRkZWQgRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuNCByZW1vdmU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS40IHJlbW92ZQogICAgICAgIGJ5CiAgICAgICAgbWljaGkKICAgICAgICA6CiAgICAgICAgWzEuNF0gCiAgICAgICAgICAgIG9ic29sZXRlIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjQgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuNCB1cGRhdGUKICAgICAgICBieQogICAgICAgIG1pY2hpCiAgICAgICAgOgogICAgICAgIFsxLjRdIAogICAgICAgICAgICB0eXBvIGZpeGVkIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjQgYWRkPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuNCBhZGQKICAgICAgICBieQogICAgICAgIHRob3JzdGVuCiAgICAgICAgOgogICAgICAgIFsxLjRdIAogICAgICAgICAgICBtb3ZpbmcgdGhlIGNvbW1vbiBmaWxlcyAodGhlIG9uZXMgY29taW5nIGZyb20gRGF2aWQgRWlzZW5iZXJnKSBpbnRvIGEgZGlyZWN0b3J5IG9uIGl0IG9uZSB0byBlYXNpZXIgcmV1c2UgaXQgaW4gZm9ycmVzdCB2aWEgc3ZuOmV4dC4gRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuNCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS40IHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgbWljaGkKICAgICAgICA6CiAgICAgICAgWzEuNF0gCiAgICAgICAgICAgIGx1Y2VuZSBjb25maWcgZmlsZW5hbWUgZnJvbSBJbmRleE1hbmFnZXIgRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuNCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS40IHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgbWljaGkKICAgICAgICA6CiAgICAgICAgWzEuNF0gCiAgICAgICAgICAgIGVycm9yIG1lc3NhZ2UgaW1wcm92ZWQgRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuNCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS40IHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgdGhvcnN0ZW4KICAgICAgICA6CiAgICAgICAgWzEuNF0gCiAgICAgICAgICAgIEJ1Z2ZpeCBCdWcgMzkxMzQKICBBcGFjaGUgTGljZW5zZSBhZGRlZCB0byBPRFQtJmd0O1hIVE1MIC54c2wgZmlsZSBMYXN0IG1vZGlmaWVkOiAyMDA2LTA0LTA1IDEwOjM2ClJlcG9ydGVyOiAgICBKIERhdmlkIEVpc2VuYmVyZwpVc2luZyBub3cgdGhlIHN0eWxlc2hlZXQgZnJvbSBodHRwOi8vYm9va3MuZXZjLWNpdC5pbmZvL29kZl91dGlscy9vZHRfdG9feGh0bWwuaHRtbCBmb3Igb2R0LgpUaGFua3MgRGF2aWQgZm9yIHlvdXIgbW9zdCB2YWx1YWJsZSBjb250cmlidXRpb24uIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjQgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuNCB1cGRhdGUKICAgICAgICBieQogICAgICAgIHRob3JzdGVuCiAgICAgICAgOgogICAgICAgIFsxLjRdIAogICAgICAgICAgICBhZGRpbmcgcGFyYW1ldGVyIHRvIHRoZSBvcGVuZG9jdW1lbnQgdHJhbnNmb3JtZXIgRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuNCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS40IHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgbWljaGkKICAgICAgICA6CiAgICAgICAgWzEuNF0gCiAgICAgICAgICAgIHdhcm5pbmcgcmUgSmF2YSB2ZXJzaW9uIGltcGxlbWVudGVkIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjQgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuNCB1cGRhdGUKICAgICAgICBieQogICAgICAgIG1pY2hpCiAgICAgICAgOgogICAgICAgIFsxLjRdIAogICAgICAgICAgICBub3RlIGFib3V0IHRhcmdldC52bSAxLjUgYWRkZWQgRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuNCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS40IHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgbWljaGkKICAgICAgICA6CiAgICAgICAgWzEuNF0gCiAgICAgICAgICAgIFRPRE8gYWRkZWQgcmUgdXNlY2FzZSBwb2xpY2llcyBjb25maWcgRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IFNhbmRib3ggdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPlNhbmRib3ggdXBkYXRlCiAgICAgICAgYnkKICAgICAgICB0aG9yc3RlbgogICAgICAgIDoKICAgICAgICBbU2FuZGJveF0gCiAgICAgICAgICAgIFVwZGF0aW5nIHRvZG8gbGlzdCBmb3IgZG9jbyBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS4yIHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjIgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBqb3NpYXMKICAgICAgICA6CiAgICAgICAgWzEuMl0gCiAgICAgICAgICAgIGRvbid0IHRocm93IGFuIE5QRSBvbiB0aGUgYXV0aG9yaW5nLCB0cmFzaCwgb3IgYXJjaGl2ZSBub2Rlcywgd2hpY2ggZG9uJ3QgaGF2ZSBhbnkgbGFiZWxzIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjIgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuMiB1cGRhdGUKICAgICAgICBieQogICAgICAgIGVkaXRoCiAgICAgICAgOgogICAgICAgIFsxLjJdIAogICAgICAgICAgICBJdCBpcyBub3cgcG9zc2libGUgdG8gc2V0IHRoZSBuYW1lIG9mIHRoZSB1c2VyIGluICdmcm9tJyBhbmQgJ1JlcGx5LXRvJy4gVGhlIG5hbWUgaXMgdGFrZW4gZnJvbSB0aGUgcGFyYW1ldGVycyAnZnJvbScsIHdoaWNoIHNob3VsZCBiZSBpbiB0aGUgZm9ybSAnTmFtZSAmbHQ7bmFtZUBmb28ub3JnJmd0OycgIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCBTYW5kYm94IHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj5TYW5kYm94IHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgdGhvcnN0ZW4KICAgICAgICA6CiAgICAgICAgW1NhbmRib3hdIAogICAgICAgICAgICBpZ25vcmluZyAuc2V0dGluZ3MgRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IFNhbmRib3ggcmVtb3ZlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPlNhbmRib3ggcmVtb3ZlCiAgICAgICAgYnkKICAgICAgICB0aG9yc3RlbgogICAgICAgIDoKICAgICAgICBbU2FuZGJveF0gCiAgICAgICAgICAgIEZpeGluZyBsdWNlbmUgaW5kZXhpbmcgYnVnIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjIgYWRkPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuMiBhZGQKICAgICAgICBieQogICAgICAgIGpvc2lhcwogICAgICAgIDoKICAgICAgICBbMS4yXSAKICAgICAgICAgICAgYWxsb3cgdG8gZWRpdCB0aGUgaHJlZiBhdHRyaWJ1dGUgb2YgYSBzaXRldHJlZSBsYWJlbCBpbiB0aGUgR1VJIChTaXRlIGFyZWEsIEVkaXQgTmF2aWdhdGlvbiBMaW5rKS4gZml4ZXMgYnVnICMzOTIzNyBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS4yIHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjIgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBqb3NpYXMKICAgICAgICA6CiAgICAgICAgWzEuMl0gCiAgICAgICAgICAgIGFsbG93IGEgaHJlZiBhdHRyaWJ1dGUgaW4gdGhlIHNpdGV0cmVlIGZvciBlYWNoIGxhbmd1YWdlIHZlcnNpb24gb2YgYSBkb2N1bWVudC4gdGhlIGF0dHJpYnV0ZSBpcyB1c2VkIHRvIGNyZWF0ZSB0aGUgbGluayBpbiB0aGUgbWVudSBhbmQgdGhlIHRhYnMuIGl0cyB2YWx1ZSBpcyBkaXNwbGF5ZWQgaW4gdGhlIG92ZXJ2aWV3IHRhYiBvZiB0aGUgc2l0ZSBhcmVhLiBmaXhlcyBidWcgIzM5MTY1IERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjQgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuNCB1cGRhdGUKICAgICAgICBieQogICAgICAgIG1pY2hpCiAgICAgICAgOgogICAgICAgIFsxLjRdIAogICAgICAgICAgICBzaG93IGFzIHRydWUgYWRkZWQgRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuMiB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS4yIHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgbWljaGkKICAgICAgICA6CiAgICAgICAgWzEuMl0gCiAgICAgICAgICAgIHNob3cgdHJ1ZSBhZGRlZCBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS4yIHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjIgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBtaWNoaQogICAgICAgIDoKICAgICAgICBbMS4yXSAKICAgICAgICAgICAgc2hvdyB0cnVlIGFkZGVkIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjQgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuNCB1cGRhdGUKICAgICAgICBieQogICAgICAgIG1pY2hpCiAgICAgICAgOgogICAgICAgIFsxLjRdIAogICAgICAgICAgICBpZiBzdGF0ZW1lbnQgYWRkZWQgRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuNCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS40IHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgbWljaGkKICAgICAgICA6CiAgICAgICAgWzEuNF0gCiAgICAgICAgICAgIGNsZWFuIG1hZGUgZGVwZW5kYWJsZSBvbiBwcm9wZXJ0aWVzIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjQgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuNCB1cGRhdGUKICAgICAgICBieQogICAgICAgIG1pY2hpCiAgICAgICAgOgogICAgICAgIFsxLjRdIAogICAgICAgICAgICB1c2VjYXNlLXBvbGljaWVzIHJlYWQgZnJvbSBjb25maWcgRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuNCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS40IHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgbWljaGkKICAgICAgICA6CiAgICAgICAgWzEuNF0gCiAgICAgICAgICAgIHJlcXVlc3RVUkkgaW50cm9kdWNlZCBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS40IHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjQgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBtaWNoaQogICAgICAgIDoKICAgICAgICBbMS40XSAKICAgICAgICAgICAgZ2V0Q29uZmlndXJhdGlvbiBzZXBhcmF0ZWQgRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuNCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS40IHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgbWljaGkKICAgICAgICA6CiAgICAgICAgWzEuNF0gCiAgICAgICAgICAgIG5vdGUgc2VlbXMgdG8gYmUgb2Jzb2xldGUsIGJ1dCBhbm90aGVyIFRPRE8gYWRkZWQgRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuNCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS40IHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgbWljaGkKICAgICAgICA6CiAgICAgICAgWzEuNF0gCiAgICAgICAgICAgIEZpeG1lIHJlcGxhY2VkIGJ5IFRPRE8gRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuNCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS40IHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgbWljaGkKICAgICAgICA6CiAgICAgICAgWzEuNF0gCiAgICAgICAgICAgIFBBVEggaXMgb2Jzb2xldGUgRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuNCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS40IHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgbWljaGkKICAgICAgICA6CiAgICAgICAgWzEuNF0gCiAgICAgICAgICAgIG5vdGUgY2xhcmlmaWVkIHJlIGFjIGNvbmZpZyBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS40IHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjQgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBtaWNoaQogICAgICAgIDoKICAgICAgICBbMS40XSAKICAgICAgICAgICAgZG8gbm90IGNvcHkgbG9jYWwuYWMueGNvbmYgRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuNCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS40IHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgbWljaGkKICAgICAgICA6CiAgICAgICAgWzEuNF0gCiAgICAgICAgICAgIGFsbG93IHBhdGNoaW5nIG9mIGFjLnhjb25mIHdpdGggbG9jYWwgdmVyc2lvbiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS4yIHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjIgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBtaWNoaQogICAgICAgIDoKICAgICAgICBbMS4yXSAKICAgICAgICAgICAgcmV0dXJuIG51bGwgaWYgbG9jYWwgcm9ib3RzIGhhcyBub3QgYmVlbiBzcGVjaWZpZWQgd2l0aGluIGNyYXdsZXIgY29uZmlnIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjQgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuNCB1cGRhdGUKICAgICAgICBieQogICAgICAgIHRob3JzdGVuCiAgICAgICAgOgogICAgICAgIFsxLjRdIAogICAgICAgICAgICBGaXhpbmcgYnVnIHJlbGF0ZWQgdG8gY3VzdG9tIG1ldGEgZGF0YSB3aGljaCBoYXZlIG5vdCBiZWVuIGNvcGllZCB3aGVuIHB1Ymxpc2hpbmcgYSBkb2N1bWVudCBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS40IHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjQgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICB0aG9yc3RlbgogICAgICAgIDoKICAgICAgICBbMS40XSAKICAgICAgICAgICAgcmVtb3Zpbmcgb2Jzb2xldGUgaW1wb3J0cyBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS40IHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjQgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICB0aG9yc3RlbgogICAgICAgIDoKICAgICAgICBbMS40XSAKICAgICAgICAgICAgcmVtb3Zpbmcgb2Jzb2xldGUgaW1wb3J0IERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjQgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuNCB1cGRhdGUKICAgICAgICBieQogICAgICAgIGFuZHJlYXMKICAgICAgICA6CiAgICAgICAgWzEuNF0gCiAgICAgICAgICAgIFJlcG9zaXRvcnlNYW5hZ2VySW1wbDogY29weSBtZXRhIGRhdGEgYmVmb3JlIGNvcHlpbmcgZG9jdW1lbnQgc291cmNlIHNvIHRoYXQgdGhlIGRlc3RpbmF0aW9uIGRvY3VtZW50IHVzZXMgdGhlIHNhbWUgc291cmNlIGV4dGVuc2lvbi4gRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuNCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS40IHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgYW5kcmVhcwogICAgICAgIDoKICAgICAgICBbMS40XSAKICAgICAgICAgICAgW21pbm9yIGNoYW5nZV0gcmVtb3ZlZCB1bnVzZWQgdmFyaWFibGUgRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuNCByZW1vdmU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS40IHJlbW92ZQogICAgICAgIGJ5CiAgICAgICAgY2hlc3RudXQKICAgICAgICA6CiAgICAgICAgWzEuNF0gCiAgICAgICAgICAgIHdlYkRBViB1c2VjYXNlcyBoYXZlIGJlZW4gbW92ZWQgaW50byB0aGUgd2ViREFWIG1vZHVsZSBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS40IHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjQgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICB0aG9yc3RlbgogICAgICAgIDoKICAgICAgICBbMS40XSAKICAgICAgICAgICAgQWRkaW5nIHdvcmtmbG93IHRvIHRoZSBvZHQgZG9jIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjQgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuNCB1cGRhdGUKICAgICAgICBieQogICAgICAgIHRob3JzdGVuCiAgICAgICAgOgogICAgICAgIFsxLjRdIAogICAgICAgICAgICBSZW1vdmluZyBvYnNvbGV0ZSBjb2RlIGluIGNvbW1lbnRzIGZvciBvZHQgeHNsIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjQgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuNCB1cGRhdGUKICAgICAgICBieQogICAgICAgIHRob3JzdGVuCiAgICAgICAgOgogICAgICAgIFsxLjRdIAogICAgICAgICAgICBBZGRpbmcgcGFyZW50IGlkIHRvIHRoZSBwYWdlRW52ZWxvcGUgaW5wdXQgbW9kdWxlLiBUaGlzIHBhcmFtZXRlciBlbmFibGVzIHRvIHJlcXVlc3QgdGhlIGlkIG9mIHRoZSBwYXJlbnQgbm9kZSBsaWtlIHtwYWdlLWVudmVsb3BlOmRvY3VtZW50LXBhcmVudH0gaW4geW91ciBzaXRlbWFwLiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS40IHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjQgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICB0aG9yc3RlbgogICAgICAgIDoKICAgICAgICBbMS40XSAKICAgICAgICAgICAgQWRkaW5nIGFub3RoZXIgZmFsbGJhY2sgZm9yIHRoZSBnaWYgcGl4IHNpbmNlIHRoZXkgY2FuIGJlIGEgZG9jdW1lbnQgZm9yIHRoZW1zZWxmLiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS40IHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjQgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICB0aG9yc3RlbgogICAgICAgIDoKICAgICAgICBbMS40XSAKICAgICAgICAgICAgU3BsaXR0aW5nIHRoZSBvYmplY3QgdGVtcGxhdGUgdG8gYSBoZWxwZXIgY2xhc3MgdG8gYmV0dGVyIHJldXNlIHRoaXMgY29kZSBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS40IHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjQgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBtaWNoaQogICAgICAgIDoKICAgICAgICBbMS40XSAKICAgICAgICAgICAgbW91bnQgZm9yIGJsb2cgbW9kdWxlIHN0YXJ0ZWQgRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuNCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS40IHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgdGhvcnN0ZW4KICAgICAgICA6CiAgICAgICAgWzEuNF0gCiAgICAgICAgICAgIEFkZGluZyBlY2xpcHNlIHNwZWNpZmljIGZpbGVzIHRvIGV4Y2x1ZGUgZXhwcmVzc2lvbiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS4yIHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjIgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBqYW5uCiAgICAgICAgOgogICAgICAgIFsxLjJdIAogICAgICAgICAgICBVc2UgdGhlIHVybCBkZWZpbmVkIGluIHB1YmxpY2F0aW9uLnhjb25mIGZvciB0aGUgbGl2ZSBhcmVhLiBJdCBpdCBpcyBub3Qgc2V0IHRoZSByZXNwZWN0aXZlIGlucHV0IG1vZHVsZSBjb25zdHJ1Y3QgdGhlIHVybCBmcm9tIHJlcXVlc3QgcGFyYW1ldGVycy4gRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuNCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS40IHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgdGhvcnN0ZW4KICAgICAgICA6CiAgICAgICAgWzEuNF0gCiAgICAgICAgICAgIFJlZmFjdG9yZWQgUFVUIHVzZWNhc2UgdG8gc3RvcmUgdGhlIGZpbGVzIHdpdGggdGhlIHJpZ2h0IGV4dGVuc2lvbi4gRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuNCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS40IHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgY2hlc3RudXQKICAgICAgICA6CiAgICAgICAgWzEuNF0gCiAgICAgICAgICAgIHVzZSBmYWxsYmFjayBmb3IgbWVudS54c3AgcmVxdWVzdCBzbyB0aGF0IGFuY2VzdG9yIHRlbXBsYXRlIHB1YnMgbWVudSBjYW4gYmUgdXNlZCBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS40IHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjQgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBtaWNoaQogICAgICAgIDoKICAgICAgICBbMS40XSAKICAgICAgICAgICAgbGVueWEucmV2aXNpb24gYWRkZWQgRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuNCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS40IHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgam9zaWFzCiAgICAgICAgOgogICAgICAgIFsxLjRdIAogICAgICAgICAgICBbbWlub3IgY2hhbmdlXSBjb2RlIGZvcm1hdHRpbmcgRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuNCByZW1vdmU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS40IHJlbW92ZQogICAgICAgIGJ5CiAgICAgICAgbWljaGkKICAgICAgICA6CiAgICAgICAgWzEuNF0gCiAgICAgICAgICAgIGxvZ28gcmVtb3ZlZCBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS40IHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjQgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBtaWNoaQogICAgICAgIDoKICAgICAgICBbMS40XSAKICAgICAgICAgICAgbG9nbyByZW1vdmVkIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjQgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuNCB1cGRhdGUKICAgICAgICBieQogICAgICAgIHRob3JzdGVuCiAgICAgICAgOgogICAgICAgIFsxLjRdIAogICAgICAgICAgICBBU0YgQnVnemlsbGEgQnVnIDM5MTAwCiAgY3JlYXRlIGFudCB0YXJnZXQgdG8gY2xlYW4gQ29jb29uLCBhbmQgY2xlYW4tYWxsIChMZW55YStDb2Nvb24rVG9tY2F0KQogICBSZXBvcnRlci9QYXRjaCBwcm92aWRlcjogcmVuYXVkIHJpY2hhcmRldAogVGhhbmtzIFJlbmF1ZCBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS40IHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjQgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICB0aG9yc3RlbgogICAgICAgIDoKICAgICAgICBbMS40XSAKICAgICAgICAgICAgQVNGIEJ1Z3ppbGxhIEJ1ZyAzOTAxOQogIFtXZWJEQVZdIEZpbGVzIG9wZW4gYXMgcmVhZC1vbmx5IGluIFdvcmQgMjAwMwogIFJlcG9ydGVyL1BhdGNoIHByb3ZpZGVyOiBKb25hdGhhbiBBZGRpc29uClRoYW5rcyBKb25hdGhhbi4gOikgRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuNCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS40IHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgdGhvcnN0ZW4KICAgICAgICA6CiAgICAgICAgWzEuNF0gCiAgICAgICAgICAgIEFTRiBCdWd6aWxsYSBCdWcgMzkwODcKICBbV2ViREFWXSBDYW5ub3Qgb3BlbiAub2R0IGZpbGVzIHdpdGggT3Blbk9mZmljZQogIFJlcG9ydGVyL1BhdGNoIHByb3ZpZGVyOiBKb25hdGhhbiBBZGRpc29uClRoYW5rcyBKb25hdGhhbi4gOikgRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuNCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS40IHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgam9zaWFzCiAgICAgICAgOgogICAgICAgIFsxLjRdIAogICAgICAgICAgICBpbXByb3ZlZCBleGNlcHRpb24gaGFuZGxpbmc6IGluZm9ybSBhYm91dCB0aGUgZG9jdW1lbnQgd2hlcmUgbGluayByZXdyaXRpbmcgZmFpbGVkLiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgU2FuZGJveCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+U2FuZGJveCB1cGRhdGUKICAgICAgICBieQogICAgICAgIHRob3JzdGVuCiAgICAgICAgOgogICAgICAgIFtTYW5kYm94XSAKICAgICAgICAgICAgc2V0dGluZyBpZ25vcmUgcHJvcGVydGllcyBmb3IgZWNsaXBzZSBmaWxlIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCBTYW5kYm94IHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj5TYW5kYm94IHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgdGhvcnN0ZW4KICAgICAgICA6CiAgICAgICAgW1NhbmRib3hdIAogICAgICAgICAgICBBZGRpbmcgb25lLWZvcm0gZWRpdG9yIHRvIHhkb2NzLiBGaXhpbmcgcm5nIHRvIG1ha2UgaXQgY29tcGF0aWJsZSB3aXRoIEJYRS4gVGhpcyBtYWtlcyBpdCBwb3NzaWJsZSB0byBlZGl0IHhkb2NzIHdpdGggQlhFLiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS40IHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjQgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBhbmRyZWFzCiAgICAgICAgOgogICAgICAgIFsxLjRdIAogICAgICAgICAgICBVc2UgYWN0dWFsIHNvdXJjZSBmb3Igbm9uLWh0bWwgZG9jdW1lbnRzIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjQgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuNCB1cGRhdGUKICAgICAgICBieQogICAgICAgIGFuZHJlYXMKICAgICAgICA6CiAgICAgICAgWzEuNF0gCiAgICAgICAgICAgIExpbmtSZXdyaXRpbmdUcmFuc2Zvcm1lciBrZWVwcyBVUkwgZXh0ZW5zaW9ucyBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS40IHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjQgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBhbmRyZWFzCiAgICAgICAgOgogICAgICAgIFsxLjRdIAogICAgICAgICAgICBBbGxvdyBkaWZmZXJlbnQgZXh0ZW5zaW9ucyBmb3IgYWN0dWFsIHNvdXJjZSBhbmQgbWV0YSBkYXRhIHNvdXJjZSBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS40IHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjQgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBqb3NpYXMKICAgICAgICA6CiAgICAgICAgWzEuNF0gCiAgICAgICAgICAgIGltcHJvdmVkIHJlbGVhc2luZyBvZiBzb3VyY2VzIGFuZCBjb21wb25lbnRzIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjQgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuNCB1cGRhdGUKICAgICAgICBieQogICAgICAgIGFuZHJlYXMKICAgICAgICA6CiAgICAgICAgWzEuNF0gCiAgICAgICAgICAgIFttaW5vciBjaGFuZ2VdIHJlbW92ZWQgbG9nNGogbG9nZ2luZyBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS40IHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjQgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBhbmRyZWFzCiAgICAgICAgOgogICAgICAgIFsxLjRdIAogICAgICAgICAgICBJbXBsZW1lbnRlZCBDcmVhdGUuZ2V0U291cmNlRXh0ZW5zaW9uKCkgaW4gTWtjb2wgY2xhc3MgRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuNCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS40IHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgam9zaWFzCiAgICAgICAgOgogICAgICAgIFsxLjRdIAogICAgICAgICAgICBbbWlub3JdIHJlbW92ZWQgdW51c2VkIGltcG9ydHMgRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuNCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS40IHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgam9zaWFzCiAgICAgICAgOgogICAgICAgIFsxLjRdIAogICAgICAgICAgICByZS1lbmFibGVkIHNlYXJjaCBpbmRleCBjb25maWd1cmF0aW9uIHVwb24gcHVibGljYXRpb24gaW5zdGFudGlhdGlvbi4gbm93IGEgbmV3IGluZGV4IGlzIGNyZWF0ZWQgYXQgcnVudGltZSBhbmQgc2VhcmNoIHNob3VsZCBiZSB3b3JraW5nIGRpcmVjdGx5IGFmdGVyIGluc3RhbnRpYXRpb24uIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjQgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuNCB1cGRhdGUKICAgICAgICBieQogICAgICAgIGpvc2lhcwogICAgICAgIDoKICAgICAgICBbMS40XSAKICAgICAgICAgICAgbW9kaWZpZWQgbHVjZW5lIGluZGV4IGNvbmZpZ3VyYXRpb246IG5vdyB0aGUgaW5kZXhlcyBhcmUgY29uZmlndXJlZCBpbiB0aGUgZmlsZSBwdWJpZC9jb25maWcvbHVjZW5lX2luZGV4Lnhjb25mLiB0aGlzIGlzIG5vdCBhbiB4cGF0Y2ggZmlsZSwgaS5lLiB0aGUgY29uZmlndXJhdGlvbiB3aWxsIG5vdCBnbyB0byBjb2Nvb24ueGNvbmYuIHRoaXMgYWxsb3dzIHRvIGNyZWF0ZSBuZXcgaW5kZXhlcyBhdCBydW50aW1lLiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS40IHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjQgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBhbmRyZWFzCiAgICAgICAgOgogICAgICAgIFsxLjRdIAogICAgICAgICAgICBBZGRlZCB0ZW1wbGF0ZSBtZXRob2QgZ2V0U291cmNlRXh0ZW5zaW9uKCkgdG8gQ3JlYXRlIHVzZWNhc2UgdG8gYWxsb3cgY3VzdG9tIHNvdXJjZSBleHRlbnNpb25zIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjQgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuNCB1cGRhdGUKICAgICAgICBieQogICAgICAgIGFuZHJlYXMKICAgICAgICA6CiAgICAgICAgWzEuNF0gCiAgICAgICAgICAgIFJlbW92ZWQgb2Jzb2xldGUgYWRtaW4gYXJlYSBkZWNsYXJhdGlvbiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS40IHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjQgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBtaWNoaQogICAgICAgIDoKICAgICAgICBbMS40XSAKICAgICAgICAgICAgbm90ZSBhZGRlZCBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS40IHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjQgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBtaWNoaQogICAgICAgIDoKICAgICAgICBbMS40XSAKICAgICAgICAgICAgY2xlYW5lZCBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS40IGFkZDwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjQgYWRkCiAgICAgICAgYnkKICAgICAgICBtaWNoaQogICAgICAgIDoKICAgICAgICBbMS40XSAKICAgICAgICAgICAgZGVzY3JpcHRvciBmb3IgYXNzZXQgYWRkZWQgRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuNCBhZGQ8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS40IGFkZAogICAgICAgIGJ5CiAgICAgICAgbWljaGkKICAgICAgICA6CiAgICAgICAgWzEuNF0gCiAgICAgICAgICAgIGFyYml0cmFyeSByZXNvdXJjZSB0eXBlcyBhZGRlZCB0byBzaXRlIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjQgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuNCB1cGRhdGUKICAgICAgICBieQogICAgICAgIG1pY2hpCiAgICAgICAgOgogICAgICAgIFsxLjRdIAogICAgICAgICAgICBhcmJpdHJhcnkgcmVzb3VyY2UgdHlwZXMgYWRkZWQgdG8gc2l0ZSBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS40IHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjQgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBtaWNoaQogICAgICAgIDoKICAgICAgICBbMS40XSAKICAgICAgICAgICAgaGFuZGxlIHJlc291cmNlcyBhcyAnZG9jdW1lbnRzJyBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS40IHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjQgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBtaWNoaQogICAgICAgIDoKICAgICAgICBbMS40XSAKICAgICAgICAgICAgbGVueWEgcmV2aXNpb24gbnVtYmVyIGFkZGVkIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjQgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuNCB1cGRhdGUKICAgICAgICBieQogICAgICAgIG1pY2hpCiAgICAgICAgOgogICAgICAgIFsxLjRdIAogICAgICAgICAgICBsZW55YSByZXZpc2lvbiBudW1iZXIgYWRkZWQgRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuNCBhZGQ8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS40IGFkZAogICAgICAgIGJ5CiAgICAgICAgbWljaGkKICAgICAgICA6CiAgICAgICAgWzEuNF0gCiAgICAgICAgICAgIHVwbG9hZCBtYXggc2l6ZSBwYXRjaGVyIGFkZGVkIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjQgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuNCB1cGRhdGUKICAgICAgICBieQogICAgICAgIG1pY2hpCiAgICAgICAgOgogICAgICAgIFsxLjRdIAogICAgICAgICAgICBsZW55YSByZXZpc2lvbiBhZGRlZCBhbmQgdHlwb3MgZml4ZWQgRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuNCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS40IHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgbWljaGkKICAgICAgICA6CiAgICAgICAgWzEuNF0gCiAgICAgICAgICAgIGxlbnlhIHJldmlzaW9uIGFkZGVkIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjQgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuNCB1cGRhdGUKICAgICAgICBieQogICAgICAgIG1pY2hpCiAgICAgICAgOgogICAgICAgIFsxLjRdIAogICAgICAgICAgICBsZW55YSByZXZpc2lvbiBudW1iZXIgYWRkZWQgRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuNCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS40IHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgbWljaGkKICAgICAgICA6CiAgICAgICAgWzEuNF0gCiAgICAgICAgICAgIGxlbnlhIHJldmlzaW9uIG51bWJlciBhZGRlZCBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS40IHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjQgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBtaWNoaQogICAgICAgIDoKICAgICAgICBbMS40XSAKICAgICAgICAgICAgbGVueWEgcmV2aXNpb24gbnVtYmVyIGFkZGVkIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCBTaXRlIHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj5TaXRlIHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgZ3JlZ29yCiAgICAgICAgOgogICAgICAgIFtTaXRlXSAKICAgICAgICAgICAgJ2ZpeCBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS40IHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjQgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBqb3NpYXMKICAgICAgICA6CiAgICAgICAgWzEuNF0gCiAgICAgICAgICAgIHJlbW92ZWQgY29udGV4dCBwYXRoLCBiZWNhdXNlIGludGVybmFsIGxpbmtzIGRvbid0IGNvbnRhaW4gdGhlIGNvbnRleHQgcGF0aCBhbnltb3JlLiB0aGlzIG1ha2VzIGxpbmstcmV3cml0aW5nIHdvcmsgd2l0aCBkZXBsb3ltZW50IG91dHNpZGUgb2YgdGhlIHJvb3QgY29udGV4dC4gRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuNCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS40IHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgam9zaWFzCiAgICAgICAgOgogICAgICAgIFsxLjRdIAogICAgICAgICAgICBpZiBhIGRvY3VtZW50IGlzIGRlbGV0ZWQsIGRvbid0IGRlbGV0ZSBpdCdzIHBhcmVudC4gZml4ZXMgYnVnICMzODgyMCBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS4yIHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjIgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBqb3NpYXMKICAgICAgICA6CiAgICAgICAgWzEuMl0gCiAgICAgICAgICAgIHJld29ya2VkIHRoZSBEb2N1bWVudFJlZmVyZW5jZXNIZWxwZXI6IG5vdyB1c2VzIHRoZSBsaW5rIGF0dHJpYnV0ZXMgZGVmaW5lZCBpbiBwdWJsaWNhdGlvbi54Y29uZiBhbmQgZG9lcyBub3QgZHVwbGljYXRlIGtub3dsZWRnZSBhYm91dCBVUkxzLCBzbyBpdCBzaG91bGQgd29yayB3aXRoIGN1c3RvbSBkb2N1bWVudCBidWlsZGVycyBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS40IHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjQgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBqYW5uCiAgICAgICAgOgogICAgICAgIFsxLjRdIAogICAgICAgICAgICBtYWtlIGRlZmF1bHQgcHJvcGVydGllcyBub24tc3RhdGljIGFsbG93aW5nIGRkaWZmZXJlbnQgbGRhcCBwcm9wZXJ0aWVzIGZvciBkaWZmZXJlbnQgcHVibGljYXRpb25zIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjIgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuMiB1cGRhdGUKICAgICAgICBieQogICAgICAgIGphbm4KICAgICAgICA6CiAgICAgICAgWzEuMl0gCiAgICAgICAgICAgIG1ha2UgZGVmYXVsdCBwcm9wZXJ0aWVzIG5vbi1zdGF0aWMgYWxsb3dpbmcgZGRpZmZlcmVudCBsZGFwIHByb3BlcnRpZXMgZm9yIGRpZmZlcmVudCBwdWJsaWNhdGlvbnMgRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuNCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS40IHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgbWljaGkKICAgICAgICA6CiAgICAgICAgWzEuNF0gCiAgICAgICAgICAgIG1vZHVsZXMgYWRkZWQgdG8gZGVwZW5kZW5jaWVzIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjQgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuNCB1cGRhdGUKICAgICAgICBieQogICAgICAgIG1pY2hpCiAgICAgICAgOgogICAgICAgIFsxLjRdIAogICAgICAgICAgICBtb2R1bGVzIGFkZGVkIHRvIGRlcGVuZGVuY2llcyBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS40IHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjQgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICB0aG9yc3RlbgogICAgICAgIDoKICAgICAgICBbMS40XSAKICAgICAgICAgICAgRml4aW5nIHR5cG8gaW4gc3JjIGxvY2F0aW9uIG9mIHRoZSBvcGVuZG9jdW1lbnQgbW9kdWxlIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjQgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuNCB1cGRhdGUKICAgICAgICBieQogICAgICAgIG1pY2hpCiAgICAgICAgOgogICAgICAgIFsxLjRdIAogICAgICAgICAgICBub3RlIGltcHJvdmVkIGFuZCBUT0RPIGFkZGVkIGZvciBjdXN0b21pemluZyB0b21jYXRjdHJsIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjQgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuNCB1cGRhdGUKICAgICAgICBieQogICAgICAgIHRob3JzdGVuCiAgICAgICAgOgogICAgICAgIFsxLjRdIAogICAgICAgICAgICBVc2luZyBmYWxsYmFjazovLyB0byBkZXRlcm1pbmUgdGhlIG1lbnUgbG9jYXRpb24gRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuNCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS40IHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgdGhvcnN0ZW4KICAgICAgICA6CiAgICAgICAgWzEuNF0gCiAgICAgICAgICAgIEJ1ZyAzOTA0MgogIFtXZWJEQVZdIElkZW50aWZ5IFdlYkRBViBodG1sIGRvY3VtZW50cyBhcyB4aHRtbAogIFBhdGNoIHN1Ym1pdHRlZCBieSBKb25hdGhhbiBBZGRpc29uClRoYW5rcyBKb25hdGhhbiA6KSBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS4yIHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjIgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBqb3NpYXMKICAgICAgICA6CiAgICAgICAgWzEuMl0gCiAgICAgICAgICAgIG1vcmUgY29kZSBzaW1wbGlmaWNhdGlvbiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS4yIHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjIgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBqb3NpYXMKICAgICAgICA6CiAgICAgICAgWzEuMl0gCiAgICAgICAgICAgIGNvZGUgc2ltcGxpZmljYXRpb24gRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuNCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS40IHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgZWRpdGgKICAgICAgICA6CiAgICAgICAgWzEuNF0gCiAgICAgICAgICAgIE1vdmUgdGhlIHNpdHJlZWZyYWdtZW50IGdlbmVyYXRvcidzIGRlY2xhcmF0aW9uLCB0byB0aGUgbGVueWEgc2l0ZW1hcCBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS40IGFkZDwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjQgYWRkCiAgICAgICAgYnkKICAgICAgICBhbmRyZWFzCiAgICAgICAgOgogICAgICAgIFsxLjRdIAogICAgICAgICAgICBBZGRlZCBMaW5rUmV3cml0ZXJUZXN0IERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjQgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuNCB1cGRhdGUKICAgICAgICBieQogICAgICAgIGFuZHJlYXMKICAgICAgICA6CiAgICAgICAgWzEuNF0gCiAgICAgICAgICAgIFttaW5vciBjaGFuZ2VdIEFkZGVkIHNvbWUgZGVidWcgc3RhdGVtZW50cy4gRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuNCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS40IHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgYW5kcmVhcwogICAgICAgIDoKICAgICAgICBbMS40XSAKICAgICAgICAgICAgUGFzc2luZyBsb2dnZXIgdG8gRGVmYXVsdFNpdGVUcmVlIGluIGNvbnN0cnVjdG9yLiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS40IHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjQgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBhbmRyZWFzCiAgICAgICAgOgogICAgICAgIFsxLjRdIAogICAgICAgICAgICBQYXNzaW5nIGxvZ2dlciB0byBEZWZhdWx0U2l0ZVRyZWUgaW4gY29uc3RydWN0b3IuIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjQgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuNCB1cGRhdGUKICAgICAgICBieQogICAgICAgIG1pY2hpCiAgICAgICAgOgogICAgICAgIFsxLjRdIAogICAgICAgICAgICByZXNldCByZW5hbWVkIHRvIGNsZWFuLXRvbWNhdCBpbiBvcmRlciB0byBjbGFyaWZ5IERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCBTYW5kYm94IHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj5TYW5kYm94IHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgY3Jvc3NsZXkKICAgICAgICA6CiAgICAgICAgW1NhbmRib3hdIAogICAgICAgICAgICBEbyAnZm9ycmVzdCBydW4nIGluICRGT1JSRVNUX0hPTUUvd2hpdGVib2FyZC9kb2NvClVzZSBGb3JyZXN0J3MgQW50LgogRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuNCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS40IHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgYW5kcmVhcwogICAgICAgIDoKICAgICAgICBbMS40XSAKICAgICAgICAgICAgW21pbm9yIGNoYW5nZV0gcmVtb3ZlZCBsb2c0aiByZWZlcmVuY2VzLCByZW1vdmVkIGludmFsaWQgd2FybmluZyBsb2dzIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjQgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuNCB1cGRhdGUKICAgICAgICBieQogICAgICAgIGFuZHJlYXMKICAgICAgICA6CiAgICAgICAgWzEuNF0gCiAgICAgICAgICAgIFttaW5vciBjaGFuZ2VdIHJlbW92ZWQgbG9nNGogcmVmZXJlbmNlcywgcmVtb3ZlZCBpbnZhbGlkIHdhcm5pbmcgbG9ncyBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS40IHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjQgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICB0aG9yc3RlbgogICAgICAgIDoKICAgICAgICBbMS40XSAKICAgICAgICAgICAgQnVnIDM5MDE4CiAgW1dlYkRBVl0gQWxsIGZpbGVzIHVzZSB0aGUgc291cmNlIGZpbGUgZXh0ZW5zaW9uClBhdGNoIHN1Ym1pdHRlZCBieSBKb25hdGhhbiBBZGRpc29uClRoYW5rcyBKb25hdGhhbiBBZGRpc29uLiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS40IHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjQgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICB0aG9yc3RlbgogICAgICAgIDoKICAgICAgICBbMS40XSAKICAgICAgICAgICAgQnVnIDM5MDE3CiAgW1dlYkRBVl0gRW1wdHkgcHJvcGVydHkgdmFsdWVzIGluIHByb3BmaW5kIHJlc3BvbnNlCiBQYXRjaCBzdWJtaXR0ZWQgYnkgSm9uYXRoYW4gQWRkaXNvbgpUaGFua3MgSm9uYXRoYW4gQWRkaXNvbi4gRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuNCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS40IHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgdGhvcnN0ZW4KICAgICAgICA6CiAgICAgICAgWzEuNF0gCiAgICAgICAgICAgIEJ1ZyAzOTAxNgogIFtXZWJEQVZdIDUwMCBJbnRlcm5hbCBTZXJ2ZXIgRXJyb3Igd2hlbiBjaGVja2luZyBpbiBmaWxlcyB3aXRoIERyZWFtd2VhdmVyCiAgUGF0Y2ggc3VibWl0dGVkIGJ5IEpvbmF0aGFuIEFkZGlzb24KVGhhbmtzIEpvbmF0aGFuIEFkZGlzb24uIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjQgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuNCB1cGRhdGUKICAgICAgICBieQogICAgICAgIGFuZHJlYXMKICAgICAgICA6CiAgICAgICAgWzEuNF0gCiAgICAgICAgICAgIFttaW5vciBjaGFuZ2VdIHJlbW92ZWQgdW51c2VkIGltcG9ydCBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS40IHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjQgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBhbmRyZWFzCiAgICAgICAgOgogICAgICAgIFsxLjRdIAogICAgICAgICAgICBEb24ndCByZXdyaXRlIGxpbmtzIGlmIHJlc291cmNlIHR5cGUgZG9lc24ndCBwcm92aWRlIGFueSBsaW5rIHJld3JpdGluZyBYUGF0aHMuIERvbid0IHN3YWxsb3cgZXhjZXB0aW9ucy4gRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuNCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS40IHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgYW5kcmVhcwogICAgICAgIDoKICAgICAgICBbMS40XSAKICAgICAgICAgICAgW21pbm9yIGNoYW5nZV0gY29kZSBmb3JtYXR0aW5nIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjQgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuNCB1cGRhdGUKICAgICAgICBieQogICAgICAgIGFudG9uaW8KICAgICAgICA6CiAgICAgICAgWzEuNF0gCiAgICAgICAgICAgIEZpeCB0eXBvLiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS40IHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjQgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBtaWNoaQogICAgICAgIDoKICAgICAgICBbMS40XSAKICAgICAgICAgICAgY2xhcmlmaWVkIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjQgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuNCB1cGRhdGUKICAgICAgICBieQogICAgICAgIG1pY2hpCiAgICAgICAgOgogICAgICAgIFsxLjRdIAogICAgICAgICAgICBIVUdPIHJlbW92ZWQgRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IFNhbmRib3ggYWRkPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPlNhbmRib3ggYWRkCiAgICAgICAgYnkKICAgICAgICB0aG9yc3RlbgogICAgICAgIDoKICAgICAgICBbU2FuZGJveF0gCiAgICAgICAgICAgIEFkZGluZyB4ZG9jcyBtb2R1bGUuIFRoZSBieGUgZWRpdGluZyBpcyBub3Qgd29ya2luZywgbmVlZCB0byBmaXggdGhpcy4gRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuNCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS40IHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgbWljaGkKICAgICAgICA6CiAgICAgICAgWzEuNF0gCiAgICAgICAgICAgIG5vdGUgYWJvdXQgY29udGVudCByZXBvIGNvbmZpZ3VyYXRpb24gYWRkZWQgRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IFNhbmRib3ggYWRkPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPlNhbmRib3ggYWRkCiAgICAgICAgYnkKICAgICAgICB0aG9yc3RlbgogICAgICAgIDoKICAgICAgICBbU2FuZGJveF0gCiAgICAgICAgICAgIEFkZGluZyBkZWZhdWx0IHRyYW5zZm9ybWF0aW9uIHN0eWxlc2hlZXQgRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuNCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS40IHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgdGhvcnN0ZW4KICAgICAgICA6CiAgICAgICAgWzEuNF0gCiAgICAgICAgICAgIFlvdSBjYW4gbm93IGNvbmZpZ3VyZSB3aGljaCByZXNvdXJjZSB0eXBlIGFuZCBleHRlbnNpb24gYXJlIGNvbm5lY3RlZCB3aXRoIGVhY2ggb3RoZXIgdmlhIHRoZSB1c2VjYXNlIGNvbmZpZyBmaWxlLiBUaGF0IG1ha2VzIHRoZSBQVVQgdXNlY2FzZSBtb3JlIGdlbmVyaWMgYW5kIGZsZXhpYmxlLiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS4yIHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjIgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBqb3NpYXMKICAgICAgICA6CiAgICAgICAgWzEuMl0gCiAgICAgICAgICAgIGVuYWJsZSBicm93c2VyLWNhY2hpbmcgZm9yIHN0YXRpYyBsZW55YSBpbWFnZXMuIHRoaXMgaW5jcmVhc2VzIHRoZSBwZXJmb3JtYW5jZSBlLmcuIG9mIHRoZSBzaXRldHJlZSB3aWRnZXQgYW5kIGFsc28gcmVkdWNlcyAnZmxpY2tlcmluZycgb2YgdGhlIG1lbnUgdGFicyB3aGljaCBvY2N1cnJlZCBpbiBJRS4gRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuNCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS40IHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgam9zaWFzCiAgICAgICAgOgogICAgICAgIFsxLjRdIAogICAgICAgICAgICBlbmFibGUgYnJvd3Nlci1jYWNoaW5nIGZvciBzdGF0aWMgbGVueWEgaW1hZ2VzLiB0aGlzIGluY3JlYXNlcyB0aGUgcGVyZm9ybWFuY2UgZS5nLiBvZiB0aGUgc2l0ZXRyZWUgd2lkZ2V0IGFuZCBhbHNvIHJlZHVjZXMgJ2ZsaWNrZXJpbmcnIG9mIHRoZSBtZW51IHRhYnMgd2hpY2ggb2NjdXJyZWQgaW4gSUUuIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjQgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuNCB1cGRhdGUKICAgICAgICBieQogICAgICAgIG1pY2hpCiAgICAgICAgOgogICAgICAgIFsxLjRdIAogICAgICAgICAgICBpZ25vcmUgbm9uLVhNTCBmaWxlcyBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS40IHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjQgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICB0aG9yc3RlbgogICAgICAgIDoKICAgICAgICBbMS40XSAKICAgICAgICAgICAgd2hpdGUgbm9pc2UgLSBmb3JtYXRpbmcgY2hhbmdlcyBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS40IHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjQgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICB0aG9yc3RlbgogICAgICAgIDoKICAgICAgICBbMS40XSAKICAgICAgICAgICAgTWFraW5nIHRoZSBta2NvbCB1c2VjYXNlIG1vcmUgYWJzdHJhY3QsIGFsbG93aW5nIHRvIGRlZmluZSBhIGRlZmF1bHQgZXh0ZW5zaW9uIGFuZCByZXNvdXJjZSB0eXBlIHZpYSB0aGUgdXNlY2FzZSBjb25maWcgZmlsZS4gRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuNCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS40IHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgdGhvcnN0ZW4KICAgICAgICA6CiAgICAgICAgWzEuNF0gCiAgICAgICAgICAgIEFkZGluZyB0aGUgZXh0ZW5zaW9uIGFnYWluIHRvIHRoZSBvZHQgbWV0YSBkYXRhIGxpa2UgcmVxdWVzdGVkIGJ5IG1pY2hpLiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS40IHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjQgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICB0aG9yc3RlbgogICAgICAgIDoKICAgICAgICBbMS40XSAKICAgICAgICAgICAgdHJlYXRpbmcgeG1sIGFuZCBiaW5hcmllcyB0aGUgc2FtZSBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS40IHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjQgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICB0aG9yc3RlbgogICAgICAgIDoKICAgICAgICBbMS40XSAKICAgICAgICAgICAgQ2hhbmdpbmcgYWNjZXNzIHRvIFNPVVJDRV9VUkwgdG8gcHJvdGVjdGVkIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjQgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuNCB1cGRhdGUKICAgICAgICBieQogICAgICAgIHRob3JzdGVuCiAgICAgICAgOgogICAgICAgIFsxLjRdIAogICAgICAgICAgICBFeHRlbmRpbmcgdGhlIHB1dC5qYXZhIG9mIHRoZSB3ZWJkYXYgdXNlY2FzZS4gWW91IGNhbiBub3cgYWRkIGFueSBmaWxlIHZpYSBQVVQuIFN0aWxsIHRoZXJlIGlzIGEgcHJvYmxlbSBob3cgbGVueWEgc3RvcmVzIHRoZSBmaW5hbCBmaWxlLiBJdCB1c2VzIHRoZSB4bWwgZXh0ZW5zaW9uIGZvciBhbGwgZmlsZXMuIEkgdHJpZWQgd2l0aCBQVVQgYSBwbmcgYW5kIGluIHdpbGwgYmUgc2F2ZWQgbGlrZSB7bmFtZX0vaW5kZXhfe2xhbmd9LnhtbC4gSSBjYW4gb3BlbiBpdCB3aXRoIEdpbXAgYnV0IExlbnlhIHdpbGwgZmFpbCB0byBvcGVuIHRoZSBkb2N1bWVudCBjb21wbGFpbmluZyBhYm91dCAnSW52YWxpZCBieXRlIDEgb2YgMS1ieXRlIFVURi04IHNlcXVlbmNlLicgRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuNCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS40IHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgbWljaGkKICAgICAgICA6CiAgICAgICAgWzEuNF0gCiAgICAgICAgICAgIG9ic29sZXRlIGRlYnVnIHN0YXRlbWVudCByZW1vdmVkIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjQgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuNCB1cGRhdGUKICAgICAgICBieQogICAgICAgIG1pY2hpCiAgICAgICAgOgogICAgICAgIFsxLjRdIAogICAgICAgICAgICBjaGVjayBhbHNvIENvY29vbiBidWlsZCBwcm9wZXJ0aWVzIHJlIHZlcnNpb24gRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuNCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS40IHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgbWljaGkKICAgICAgICA6CiAgICAgICAgWzEuNF0gCiAgICAgICAgICAgIG5vdGUgYWRkZWQgYWJvdXQgdGhlIEJVRyB3aXRoaW4gQ29jb29uIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjQgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuNCB1cGRhdGUKICAgICAgICBieQogICAgICAgIG1pY2hpCiAgICAgICAgOgogICAgICAgIFsxLjRdIAogICAgICAgICAgICBwcm9wZXJ0eSBmaXhlZCBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS40IHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjQgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBtaWNoaQogICAgICAgIDoKICAgICAgICBbMS40XSAKICAgICAgICAgICAgd2FybmluZyByZXBsYWNlZCBieSBkZWJ1ZyBhbmQgbm90ZSBhZGRlZCBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS40IHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjQgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBtaWNoaQogICAgICAgIDoKICAgICAgICBbMS40XSAKICAgICAgICAgICAgVVVJRCBpbXBsZW1lbnRhdGlvbiBzdGFydGVkIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjQgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuNCB1cGRhdGUKICAgICAgICBieQogICAgICAgIG1pY2hpCiAgICAgICAgOgogICAgICAgIFsxLjRdIAogICAgICAgICAgICBVVUlEIGltcGxlbWVudGF0aW9uIHN0YXJ0ZWQgRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuNCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS40IHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgdGhvcnN0ZW4KICAgICAgICA6CiAgICAgICAgWzEuNF0gCiAgICAgICAgICAgIENvbW1lbnRpbmcgZXh0ZW5zaW9uIHNpbmNlIGl0IGNhdXNlcyB0aGUgTGlua1Jld3JpdGVySW1wbC5qYXZhIHRvIGZhaWwuIFlvdSBjYW5ub3QgY3JlYXRlIGEgRE9NIGZyb20gYSBiaW5hcnkgZmlsZS4gRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuNCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS40IHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgbWljaGkKICAgICAgICA6CiAgICAgICAgWzEuNF0gCiAgICAgICAgICAgIG5vdGUgYWJvdXQgbGFuZ3VhZ2VzIGFkZGVkIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjQgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuNCB1cGRhdGUKICAgICAgICBieQogICAgICAgIG1pY2hpCiAgICAgICAgOgogICAgICAgIFsxLjRdIAogICAgICAgICAgICB1bnVzZWQgcGF0Y2hpbmcgcmVtb3ZlZCBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS40IHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjQgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBtaWNoaQogICAgICAgIDoKICAgICAgICBbMS40XSAKICAgICAgICAgICAgbWlzc2luZyBwYXJhbWV0ZXJzIGFkZGVkIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjQgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuNCB1cGRhdGUKICAgICAgICBieQogICAgICAgIGFudG9uaW8KICAgICAgICA6CiAgICAgICAgWzEuNF0gCiAgICAgICAgICAgIEZpeCB0eXBvLiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS40IHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjQgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICB0aG9yc3RlbgogICAgICAgIDoKICAgICAgICBbMS40XSAKICAgICAgICAgICAgQVNGIEJ1Z3ppbGxhIEJ1ZyAzODk2OQogIFtXZWJEQVZdIGNhbm5vdCBQVVQgYSBiaW5hcnkgZG9jdW1lbnQsIGxpa2UgLm9kdCBvciAuanBnClBhdGNoIChpZD0xNzg5NykgcHJvdmlkZWQgYnkgUmVuYXVkCi0gUmVnaXN0ZXJzIHRoZSBSZXF1ZXN0UmVhZGVyIGluIHRoZSBzaXRlbWFwCi0gYWRkcyBhIG1hdGNoZXIgZm9yIC9QVVQvb2R0Ci0gc3RhcnRlZCByZWZhY3RvcmluZyBQdXQuamF2YSwgdmFsaWRhdGlvbiBub3Qgd29ya2luZyBBVE0gRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuNCBhZGQ8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS40IGFkZAogICAgICAgIGJ5CiAgICAgICAgdGhvcnN0ZW4KICAgICAgICA6CiAgICAgICAgWzEuNF0gCiAgICAgICAgICAgIEFTRiBCdWd6aWxsYSBCdWcgMzg5NjkKICBbV2ViREFWXSBjYW5ub3QgUFVUIGEgYmluYXJ5IGRvY3VtZW50LCBsaWtlIC5vZHQgb3IgLmpwZwpQYXRjaCAoaWQ9MTc4OTYpIHByb3ZpZGVkIGJ5IFJlbmF1ZCAtIFJlcXVlc3RSZWFkZXIuamF2YQpUaHggUmVuYXVkLiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS40IHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjQgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBtaWNoaQogICAgICAgIDoKICAgICAgICBbMS40XSAKICAgICAgICAgICAgZHVwbGljYXRlZCBsaW5lIHJlbW92ZWQgRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuNCBhZGQ8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS40IGFkZAogICAgICAgIGJ5CiAgICAgICAgdGhvcnN0ZW4KICAgICAgICA6CiAgICAgICAgWzEuNF0gCiAgICAgICAgICAgIEltcGxlbWVudGluZyB0aGUgZmlyc3QgdmVyc2lvbiBvZiBta2NvbCB1c2VjYXNlIGZvciB3ZWJkYXYuIEl0IGlzIHF1aXRlIHJ1ZGltZW50YWwgYW5kIGlzIGFzc3VtaW5nIGEgeGh0bWwgdG8gYmUgY3JlYXRlZCBidXQgeW91IGNhbiBub3cgY3JlYXRlIG5ldyBmb2xkZXJzIGluIGUuZy4gY2FkYXZlciB3aXRoICdta2NvbCB0ZXN0MicuIEhhdmUgbm90IHRlc3RlZCB3aXRoIGFueSBvdGhlciBjbGllbnQgeWV0LiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS40IHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjQgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBqb3NpYXMKICAgICAgICA6CiAgICAgICAgWzEuNF0gCiAgICAgICAgICAgIGZpeGVkIGNsYXNzcGF0aCBmb3IgdGhlIGNvbXBpbGUteHNwIHRhcmdldCAobm93IGluY2x1ZGVzIGVuZG9yc2VkIGxpYnMpIGFuZCBhZGRlZCBhbiBvcHRpb24gdG8gZmFpbCBvbiBlcnJvciwgc28gdGhpcyB0YXJnZXQgY291bGQgYmUgdXNlZCBieSBhIGNvbnRpbm91cyBpbnRlZ3JhdGlvbiB0b29sLiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS40IHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjQgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICB0aG9yc3RlbgogICAgICAgIDoKICAgICAgICBbMS40XSAKICAgICAgICAgICAgQVNGIEJ1Z3ppbGxhIEJ1ZyAzODkyNgogIFtXZWJEQVZdIGluIHRoZSBmaWxlIGxpc3RpbmcsIGFsbCBmaWxlcyBoYXZlIHRoZSAuaHRtbCBmaWxlIGV4dGVuc2lvbgpQYXRjaCBzdWJtaXR0ZWQgYnkgcmVuYXVkIHJpY2hhcmRldC4KQXBwbGllZCwgdGh4IFJlbmF1ZC4gOikgRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuNCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS40IHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgdGhvcnN0ZW4KICAgICAgICA6CiAgICAgICAgWzEuNF0gCiAgICAgICAgICAgIFN3aXRjaGluZyBqYXZhIGNvbW1lbnRzIHRvIHhtbCBjb21tZW50cyBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS40IHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjQgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICB0aG9yc3RlbgogICAgICAgIDoKICAgICAgICBbMS40XSAKICAgICAgICAgICAgQWRkaW5nIGNvbW1lbnRzIHRvIHdlYkRBViBjb2RlLiBTdWJtaXR0ZWQgYnkgSm9uYXRoYW4gQWRkaXNvbi4gVGh4IEpvbmF0aGFuLiA6KSBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgU2FuZGJveCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+U2FuZGJveCB1cGRhdGUKICAgICAgICBieQogICAgICAgIHRob3JzdGVuCiAgICAgICAgOgogICAgICAgIFtTYW5kYm94XSAKICAgICAgICAgICAgQWRkZWQgbG9jYWwgZGVwbG95IG9mIGludm9sdmVkIGZvcnJlc3QgcGx1Z2lucyBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgU2FuZGJveCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+U2FuZGJveCB1cGRhdGUKICAgICAgICBieQogICAgICAgIHRob3JzdGVuCiAgICAgICAgOgogICAgICAgIFtTYW5kYm94XSAKICAgICAgICAgICAgZml4IGxpbmUgZW5kaW5ncyBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgU2FuZGJveCBhZGQ8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+U2FuZGJveCBhZGQKICAgICAgICBieQogICAgICAgIHRob3JzdGVuCiAgICAgICAgOgogICAgICAgIFtTYW5kYm94XSAKICAgICAgICAgICAgSW5pdGlhbCB2ZXJzaW9uIG9mIGRvY28gYXMgbGVueWEgcHViIGFuZCBmb3JyZXN0IGRvY3UgRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IFNpdGUgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPlNpdGUgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICB0aG9yc3RlbgogICAgICAgIDoKICAgICAgICBbU2l0ZV0gCiAgICAgICAgICAgIEF1dG9tYXRpYyBwdWJsaXNoIGZyb20gZm9ycmVzdGJvdCBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS40IHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjQgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBhbmRyZWFzCiAgICAgICAgOgogICAgICAgIFsxLjRdIAogICAgICAgICAgICBbbWlub3IgY2hhbmdlXSBpbXByb3ZlZCBsb2dnaW5nIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjQgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuNCB1cGRhdGUKICAgICAgICBieQogICAgICAgIGFuZHJlYXMKICAgICAgICA6CiAgICAgICAgWzEuNF0gCiAgICAgICAgICAgIFttaW5vciBjaGFuZ2VdIGZpeGVkIHNvbWUgbG9nZ2luZyBpc3N1ZXMsIHJlbW92ZWQgZGVhZCBjb2RlIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjQgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuNCB1cGRhdGUKICAgICAgICBieQogICAgICAgIHRob3JzdGVuCiAgICAgICAgOgogICAgICAgIFsxLjRdIAogICAgICAgICAgICBGb3JtYXRpbmcgY2hhbmdlcyB0aHggdG8gSm9uYXRoYW4gQWRkaXNvbiB3aG8gcG9pbnRlZCBvdXQgdGhhdCBsaW5lIGJyZWFrcyB3aWxsIGNhdXNlIGRpZmZlcmVudCBjbGllbnRzIHRvIGZhaWwuIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjQgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuNCB1cGRhdGUKICAgICAgICBieQogICAgICAgIHRob3JzdGVuCiAgICAgICAgOgogICAgICAgIFsxLjRdIAogICAgICAgICAgICByZW1vdmluZyBvbGQgY29tbWVudCBjbG9zaW5nIGJyYWtldHMgRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuNCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS40IHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgdGhvcnN0ZW4KICAgICAgICA6CiAgICAgICAgWzEuNF0gCiAgICAgICAgICAgIHdoaXRlIG5vaXNlIC0gZm9ybWF0aW5nIGNoYW5nZXMgRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuNCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS40IHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgdGhvcnN0ZW4KICAgICAgICA6CiAgICAgICAgWzEuNF0gCiAgICAgICAgICAgIEJ1ZyAzODkxMwogIFdlYkRhdiBtb2R1bGUgZGlzcGxheXMgZW1wdHkgZGlyZWN0b3JpZXMgKGNvbGxlY3Rpb25zKQogIFJlcG9ydGVyOiAgICByZW5hdWQgcmljaGFyZGV0CiAgUGF0Y2g6ICBKb25hdGhhbiBBZGRpc29uClBhdGNoIGFwcGxpZWQsIHRoeCBKb25hdGhhbi4gRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuNCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS40IHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgbWljaGkKICAgICAgICA6CiAgICAgICAgWzEuNF0gCiAgICAgICAgICAgIGV4aXN0c0luQW55TGFuZ3VhZ2Ugc2ltcGxpZmllZCBiZWNhdXNlIGl0IGlzIGR1cGxpY2F0aW5nIGNvZGUgRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuNCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS40IHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgbWljaGkKICAgICAgICA6CiAgICAgICAgWzEuNF0gCiAgICAgICAgICAgIGphdmEgZG9jIGZpeGVkIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjQgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuNCB1cGRhdGUKICAgICAgICBieQogICAgICAgIG1pY2hpCiAgICAgICAgOgogICAgICAgIFsxLjRdIAogICAgICAgICAgICBvcGVuZG9jdW1lbnQgbGlua3MgZml4ZWQgRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuNCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS40IHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgbWljaGkKICAgICAgICA6CiAgICAgICAgWzEuNF0gCiAgICAgICAgICAgIGdlcm1hbiB0cmFuc2xhdGlvbiBzdGFydGVkIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjQgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuNCB1cGRhdGUKICAgICAgICBieQogICAgICAgIG1pY2hpCiAgICAgICAgOgogICAgICAgIFsxLjRdIAogICAgICAgICAgICByZWZlcmVuY2UgdG8geHBhdGNoIGZpbGUgYWRkZWQgRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IERvY3MgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPkRvY3MgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICB0aG9yc3RlbgogICAgICAgIDoKICAgICAgICBbRG9jc10gCiAgICAgICAgICAgIFVwZGF0ZWQgdGhlIG1vbml0b3Jpbmcgc2VjdGlvbiB0byByZWZsZWN0IGN1cnJlbnQgZGV2ZWxvcG1lbnQuIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCBEb2NzIGFkZDwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj5Eb2NzIGFkZAogICAgICAgIGJ5CiAgICAgICAgdGhvcnN0ZW4KICAgICAgICA6CiAgICAgICAgW0RvY3NdIAogICAgICAgICAgICBTcGxpdHRpbmcgbW9uaXRvcmluZyBmcm9tIHNlcnZlciB3ZWJkYXYgZmlsZSB0byBhIGZpbGUgb24gaXRzIG93bi4gRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IERvY3MgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPkRvY3MgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICB0aG9yc3RlbgogICAgICAgIDoKICAgICAgICBbRG9jc10gCiAgICAgICAgICAgIHdoaXRlIG5vaXNlIC0gRm9ybWF0aW5nIGNoYW5nZXMgRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IERvY3MgYWRkPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPkRvY3MgYWRkCiAgICAgICAgYnkKICAgICAgICB0aG9yc3RlbgogICAgICAgIDoKICAgICAgICBbRG9jc10gCiAgICAgICAgICAgIEFkZGVkIHF1aWNrc3RhcnQgZG9jdW1lbnQgdGFrZW4gZnJvbSB0aGUgd2lraSwgZnVydGhlciBsaW5rZWQgdG8gdGhlIGN1cnJlbnQgd2ViZGF2IHdpa2kgcGFnZS4gRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IERvY3MgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPkRvY3MgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICB0aG9yc3RlbgogICAgICAgIDoKICAgICAgICBbRG9jc10gCiAgICAgICAgICAgIHdoaXRlIG5vaXNlIC0gRm9ybWF0aW5nIGNoYW5nZXMgRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IERvY3MgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPkRvY3MgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICB0aG9yc3RlbgogICAgICAgIDoKICAgICAgICBbRG9jc10gCiAgICAgICAgICAgIFJlbW92aW5nIG5vdGUgZm9yIGFscGhhIHNpbmNlIGl0IGlzIHdheSB0b28gbXVjaCBvdXRkYXRlZC4gRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuNCByZW1vdmU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS40IHJlbW92ZQogICAgICAgIGJ5CiAgICAgICAgdGhvcnN0ZW4KICAgICAgICA6CiAgICAgICAgWzEuNF0gCiAgICAgICAgICAgIHJlbW92aW5nIGVtcHR5IGZpbGUgRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuNCBhZGQ8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS40IGFkZAogICAgICAgIGJ5CiAgICAgICAgdGhvcnN0ZW4KICAgICAgICA6CiAgICAgICAgWzEuNF0gCiAgICAgICAgICAgIEJ1ZyAzODkyNQogIFdlYkRBViBtb2R1bGU6IGluZGV4X2VuLnhtbCBhbmQgbGlua3NfZW4ueG1sIGNhbm5vdCBiZSBvcGVuZWQKUmVwb3J0ZXI6ICAgIEpvbmF0aGFuIEFkZGlzb24KVGh4IEpvbmF0aGFuLgpQYXRjaCBhcHBsaWVkLgpob3dldmVyIHdpdGggY2FkYXZlciB5b3UgY2Fubm90IHVwbG9hZCB0aGUgZWRpdCBmaWxlcy4gRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IERvY3MgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPkRvY3MgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICB0aG9yc3RlbgogICAgICAgIDoKICAgICAgICBbRG9jc10gCiAgICAgICAgICAgIEZpeGluZyB4ZG9jIGdyYW1tYXIuIE5vdGUgdGFncyBhcmUgTk9UIGFsbG93ZWQgaW4gUCB0YWdzLiBGdXJ0aGVyIGZpeGVkIHRoZSBjb2Nvb24gbG9jYXRpb24uIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCBEb2NzIHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj5Eb2NzIHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgdGhvcnN0ZW4KICAgICAgICA6CiAgICAgICAgW0RvY3NdIAogICAgICAgICAgICBCdWcgMzg5NDkKICBVcGRhdGUgdGhlIDEuNCBzb3VyY2UgdmVyc2lvbiBkb2N1bWVudGF0aW9uLgogIFJlcG9ydGVyOiAgICBPbGl2ZXIgU2NoYWxjaApQYXRjaCBhcHBsaWVkLCB0aHggT2xpLiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS4yIHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjIgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBqYW5uCiAgICAgICAgOgogICAgICAgIFsxLjJdIAogICAgICAgICAgICBBZGRpbmcgSW1hZ2UgZGltZW5zaW9ucyB0byB0aGUgYXNzZXQgdGFiIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjIgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuMiB1cGRhdGUKICAgICAgICBieQogICAgICAgIGphbm4KICAgICAgICA6CiAgICAgICAgWzEuMl0gCiAgICAgICAgICAgIFJlYWRpbmcgaW1hZ2UgaGVpZ2h0IGFuZCB3aWR0aCBmcm9tIHRoZSBtZXRhZGF0YSBpbiBvcmRlciB0byBzaG93IHRoZW0gaW4gdGhlIGFzc2V0IHRhYiBvZiB0aGUgc2l0ZSBhcmVhIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjIgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuMiB1cGRhdGUKICAgICAgICBieQogICAgICAgIGphbm4KICAgICAgICA6CiAgICAgICAgWzEuMl0gCiAgICAgICAgICAgIEFkZCBpbWFnZSBoZWlnaHQgYW5kIHdpZHRoIHRvIHRoZSBtZXRhZGF0YSBvZiB0aGUgcmVzcGVjaXR2ZSBhc3NldCBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgRG9jcyBhZGQ8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+RG9jcyBhZGQKICAgICAgICBieQogICAgICAgIHRob3JzdGVuCiAgICAgICAgOgogICAgICAgIFtEb2NzXSAKICAgICAgICAgICAgU3RhcnRlZCB0aGUgbW9kdWxlIGRvY3VtZW50YXRpb24gc2VjdGlvbi4gQWRkZWQgZmlyc3QgZGVzY3JpcHRpb24gYWJvdXQgd2ViZGF2IGZyb20gdGhlIG9sZCAxLjIgZG9jdS4gRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuNCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS40IHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgbWljaGkKICAgICAgICA6CiAgICAgICAgWzEuNF0gCiAgICAgICAgICAgIGNtZCBhcyBkZWZhdWx0IGFuZCBndWkgYXMgcGFyYW1ldGVyIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjQgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuNCB1cGRhdGUKICAgICAgICBieQogICAgICAgIG1pY2hpCiAgICAgICAgOgogICAgICAgIFsxLjRdIAogICAgICAgICAgICBjb25mcGF0Y2ggcGF0aCBhZGRlZCBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS40IHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjQgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBtaWNoaQogICAgICAgIDoKICAgICAgICBbMS40XSAKICAgICAgICAgICAgd2FybmluZyBpbXBsZW1lbnRlZCBmb3IgdGhlIGNhc2UgdGhhdCBhIG5vZGUgb3IgdGhlIHNpdGV0cmVlIGl0c2VsZiBkb2VzIG5vdCBleGlzdHMgRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuNCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS40IHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgbWljaGkKICAgICAgICA6CiAgICAgICAgWzEuNF0gCiAgICAgICAgICAgIHdhcm5pbmcgaW1wbGVtZW50ZWQgZm9yIHRoZSBjYXNlIHRoYXQgYSByZXNvdXJjZS9kb2N1bWVudCBkb2VzIG5vdCBleGlzdHMgRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuNCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS40IHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgbWljaGkKICAgICAgICA6CiAgICAgICAgWzEuNF0gCiAgICAgICAgICAgIGxpbmsgdG8gZGVidWcgTGVueWEgbWVudSBhZGRlZCBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS40IHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjQgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBtaWNoaQogICAgICAgIDoKICAgICAgICBbMS40XSAKICAgICAgICAgICAgbm90ZXMgYWRkZWQgRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuNCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS40IHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgbWljaGkKICAgICAgICA6CiAgICAgICAgWzEuNF0gCiAgICAgICAgICAgIExFTllBX01FVEFfU1VGRklYIGludHJvZHVjZWQgdG8gbWFrZSBzdXJlIHRoYXQgdGhlIHN1ZmZpeCBpcyBkZWZpbmVkIG9ubHkgb25jZSBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS40IHJlbW92ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjQgcmVtb3ZlCiAgICAgICAgYnkKICAgICAgICBtaWNoaQogICAgICAgIDoKICAgICAgICBbMS40XSAKICAgICAgICAgICAgb2Jzb2xldGUgRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuNCBhZGQ8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS40IGFkZAogICAgICAgIGJ5CiAgICAgICAgbWljaGkKICAgICAgICA6CiAgICAgICAgWzEuNF0gCiAgICAgICAgICAgIG1ldGEgZml4ZWQgRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuNCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS40IHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgbWljaGkKICAgICAgICA6CiAgICAgICAgWzEuNF0gCiAgICAgICAgICAgIGxvZzRqIGFkZGVkIGFzIFRPRE8gRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuNCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS40IHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgbWljaGkKICAgICAgICA6CiAgICAgICAgWzEuNF0gCiAgICAgICAgICAgIHBpcGVsaW5lIGFkZGVkIHRvIGRlYnVnIGxlbnlhIG1lbnUgRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuNCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS40IHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgbWljaGkKICAgICAgICA6CiAgICAgICAgWzEuNF0gCiAgICAgICAgICAgIGNvbW1lbnRzIGFkZGVkIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjQgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuNCB1cGRhdGUKICAgICAgICBieQogICAgICAgIG1pY2hpCiAgICAgICAgOgogICAgICAgIFsxLjRdIAogICAgICAgICAgICBwYXJhbWV0ZXIgZm9yIHVzYWdlIGFkZGVkIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjQgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuNCB1cGRhdGUKICAgICAgICBieQogICAgICAgIG1pY2hpCiAgICAgICAgOgogICAgICAgIFsxLjRdIAogICAgICAgICAgICBub3RlIGFkZGVkIHJlc291cmNlIHR5cGUgaW5wdXQgbW9kdWxlIGFkZGVkIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjQgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuNCB1cGRhdGUKICAgICAgICBieQogICAgICAgIG1pY2hpCiAgICAgICAgOgogICAgICAgIFsxLjRdIAogICAgICAgICAgICBub3RlIGFib3V0IGVuZG9yc2VkIGxpYnMgYWRkZWQgRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuNCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS40IHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgbWljaGkKICAgICAgICA6CiAgICAgICAgWzEuNF0gCiAgICAgICAgICAgIGNvcHkgdGFzayBjbGFzcyByZW5hbWVkIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjQgcmVtb3ZlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuNCByZW1vdmUKICAgICAgICBieQogICAgICAgIG1pY2hpCiAgICAgICAgOgogICAgICAgIFsxLjRdIAogICAgICAgICAgICBwYXRjaGluZyBvZiBwdWJsaWNhdGlvbi54Y29uZiBhZGRlZCBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS40IHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjQgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBqb3NpYXMKICAgICAgICA6CiAgICAgICAgWzEuNF0gCiAgICAgICAgICAgIGZpeGVkIG1pc3NpbmcgbGFuZ3VhZ2Ugc2NyZWVuIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjQgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuNCB1cGRhdGUKICAgICAgICBieQogICAgICAgIGFuZHJlYXMKICAgICAgICA6CiAgICAgICAgWzEuNF0gCiAgICAgICAgICAgIEFsbG93IHRvIGNyZWF0ZSBub24tWE1MIGRvY3VtZW50cyB3aXRoIHRoZSBEZWZhdWx0Q3JlYXRvci4gSXQgY2hlY2tzIGZvciB0aGUgZXh0ZW5zaW9uIC54bWwgYXQgdGhlIG1vbWVudCwgdGhpcyBjb3VsZCBiZSBpbXByb3ZlZC4gRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuNCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS40IHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgYW5kcmVhcwogICAgICAgIDoKICAgICAgICBbMS40XSAKICAgICAgICAgICAgVXBkYXRlIEJYRSBjbGFzcyB0byBuZXcgRG9jSWRUb1BhdGhNYXBwZXIgc2lnbmF0dXJlIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjQgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuNCB1cGRhdGUKICAgICAgICBieQogICAgICAgIGFuZHJlYXMKICAgICAgICA6CiAgICAgICAgWzEuNF0gCiAgICAgICAgICAgIEFkZCBleHRlbnNpb24gYXR0cmlidXRlIHRvIExlbnlhTWV0YURhdGEuIFRoaXMgd2F5LCB0aGUgZXh0ZW5zaW9uIGNhbiBiZSBhY2Nlc3NlZCBieSB0aGUgRG9jdW1lbnRJZFRvUGF0aE1hcHBlciAtIHRoaXMgYWxsb3dzIGN1c3RvbSBzb3VyY2UgZXh0ZW5zaW9ucyAobGlrZSAub2R0LCAuLi4pIGFuZCBpcyBhIGZpcnN0IHN0ZXAgdG93YXJkcyBoYW5kbGluZyBhc3NldHMgYW5kIGRvY3VtZW50cyBpbiB0aGUgc2FtZSB3YXkuIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjQgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuNCB1cGRhdGUKICAgICAgICBieQogICAgICAgIGFuZHJlYXMKICAgICAgICA6CiAgICAgICAgWzEuNF0gCiAgICAgICAgICAgIFJlcGxhY2VkICZsdDt4c2w6YXR0cmlidXRlJmd0OyB3aXRoIHN0cmluZyBmdW5jdGlvbiBpbiBtZW51MnhzbHQueHNsLiBUaGlzIHNvbHZlcyBhIFhhbGFuIHByb2JsZW0uIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjQgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuNCB1cGRhdGUKICAgICAgICBieQogICAgICAgIGFuZHJlYXMKICAgICAgICA6CiAgICAgICAgWzEuNF0gCiAgICAgICAgICAgIFttaW5vciBjaGFuZ2VdIGZvcm1hdHRpbmcgRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuNCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS40IHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgYW5kcmVhcwogICAgICAgIDoKICAgICAgICBbMS40XSAKICAgICAgICAgICAgUmV2ZXJ0aW5nIGNoZWNrLWluICh3aWxsIGNoZWNrLWluIHRoZSB3aGl0ZXNwYWNlIGNoYW5nZXMgaW4gYSBzZXBhcmF0ZSBjb21taXQpIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjQgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuNCB1cGRhdGUKICAgICAgICBieQogICAgICAgIHRob3JzdGVuCiAgICAgICAgOgogICAgICAgIFsxLjRdIAogICAgICAgICAgICBGaW5pc2hpbmcgdXAgdGhlIG9kdCBtb2R1bGUgZG93bmxvYWQgZmVhdHVyZS4gTm93IHdlICJqdXN0IiBoYXZlIHRvIG1ha2UgdGhlIHdob2xlIG1vZHVsZSBtb3JlIGdlbmVyaWMgRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuNCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS40IHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgdGhvcnN0ZW4KICAgICAgICA6CiAgICAgICAgWzEuNF0gCiAgICAgICAgICAgIGFkZGluZyBtaW1lLXR5cGUgZGVmaW5pdGlvbiB0byBmb3IgdGhlIG9kdCBtb2R1bGUgRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuNCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS40IHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgYW5kcmVhcwogICAgICAgIDoKICAgICAgICBbMS40XSAKICAgICAgICAgICAgUmVwbGFjZWQgJmx0O3hzbDphdHRyaWJ1dGUmZ3Q7IHdpdGggc3RyaW5nIGZ1bmN0aW9uIGluIG1lbnUyeHNsdC54c2wuIFRoaXMgc29sdmVzIGEgWGFsYW4gcHJvYmxlbS4gRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuNCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS40IHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgdGhvcnN0ZW4KICAgICAgICA6CiAgICAgICAgWzEuNF0gCiAgICAgICAgICAgIEFwcGx5aW5nIGZpcnN0IHBhcnQgb2YgdGhlIHBhdGNoIHByb3ZpZGVkIGJ5IHJlbmF1ZCByaWNoYXJkZXQgYXR0YWNoZWQgdG8gQnVnIDM4OTAwLiBUaGFua3MgcmVuYXVkLiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS40IHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjQgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBtaWNoaQogICAgICAgIDoKICAgICAgICBbMS40XSAKICAgICAgICAgICAgc2VhcmNoIG1vZHVsZSByZW1vdmVkIGFuZCBub3RlcyBhZGRlZCBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS40IHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjQgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBtaWNoaQogICAgICAgIDoKICAgICAgICBbMS40XSAKICAgICAgICAgICAgYmxvZyBtb2R1bGUgY29tbWVudGVkIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjQgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuNCB1cGRhdGUKICAgICAgICBieQogICAgICAgIG1pY2hpCiAgICAgICAgOgogICAgICAgIFsxLjRdIAogICAgICAgICAgICBub3RlIGNsYXJpZmllZCBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS40IHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjQgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBtaWNoaQogICAgICAgIDoKICAgICAgICBbMS40XSAKICAgICAgICAgICAgTm90ZSBhZGRlZCBhYm91dCBub3QgbW9kaWZ5aW5nIHRoaXMgZmlsZSBkaXJlY3RseSBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS40IGFkZDwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjQgYWRkCiAgICAgICAgYnkKICAgICAgICB0aG9yc3RlbgogICAgICAgIDoKICAgICAgICBbMS40XSAKICAgICAgICAgICAgQWRkZWQgbmV3IHVzZWNhc2UgZm9yIHRoZSBvcGVuZG9jdW1lbnQgbW9kdWxlLgpZb3UgY2FuIG5vdyB1cGxvYWQgb3BlbmRvY3VtZW50cyB0byBhbHJlYWR5IGV4aXN0aW5nIG9kdCBkb2NzIGluIGxlbnlhLiAKVGhpcyB3aWxsIHJlcGxhY2UgdGhlIGV4aXN0aW5nIGRvY3VtZW50LiAKIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjQgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuNCB1cGRhdGUKICAgICAgICBieQogICAgICAgIG1pY2hpCiAgICAgICAgOgogICAgICAgIFsxLjRdIAogICAgICAgICAgICBjaGVjayBvbiBKQVZBX0hPTUUgYW5kIHNvbWUgbm90ZXMgYWRkZWQgRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuNCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS40IHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgdGhvcnN0ZW4KICAgICAgICA6CiAgICAgICAgWzEuNF0gCiAgICAgICAgICAgIEVuYWJsaW5nIHRvIGRvd25sb2FkIHRoZSBvcGVuZG9jdW1lbnQgZm9yIGxvY2FsIGVkaXRpbmcuIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjQgYWRkPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuNCBhZGQKICAgICAgICBieQogICAgICAgIHRob3JzdGVuCiAgICAgICAgOgogICAgICAgIFsxLjRdIAogICAgICAgICAgICBBZGRlZCBuZXcgY3JlYXRlIHVzZWNhc2UgZm9yIG9wZW5Eb2N1bWVudC4gVGhpcyB1c2VjYXNlIGlzIGJ5cGFzc2luZyB0aGUgJ25vcm1hbCcgcm91dGluZSBhbmQgY3JlYXRpbmcgYSBuZXcgZG9jdW1lbnQgb24gYmFzaXMgb2YgdGhlIG9kdCBzYW1wbGUuIEFjdGl2YXRlZCB0aGUgdXNlY2FzZSBpbiB0aGUgbWVudS4gRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuNCByZW1vdmU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS40IHJlbW92ZQogICAgICAgIGJ5CiAgICAgICAgdGhvcnN0ZW4KICAgICAgICA6CiAgICAgICAgWzEuNF0gCiAgICAgICAgICAgIFJlbmFtaW5nIHRlbXBsYXRlIGRpciB0byBzYW1wbGVzIHNpbmNlIGFsbCBvdGhlciBtb2R1bGVzIG5hbWUgaXQgbGlrZSB0aGlzIGFuZCB3ZSBoYXZlIHRvIGhhbmRsZSB0aGlzIGNvbnNpc3RlbnRcISBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS40IHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjQgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBtaWNoaQogICAgICAgIDoKICAgICAgICBbMS40XSAKICAgICAgICAgICAgY29tbWFuZCBsaW5lIGFzIGRlZmF1bHQgRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuNCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS40IHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgbWljaGkKICAgICAgICA6CiAgICAgICAgWzEuNF0gCiAgICAgICAgICAgIHRoYW5rcyB0byBPbGl2ZXIgb25lIHN0ZXAgZnVydGhlciByZSBHVUkgY2xhc3MgRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuNCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS40IHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgbWljaGkKICAgICAgICA6CiAgICAgICAgWzEuNF0gCiAgICAgICAgICAgIHRoYW5rcyB0byBPbGkgb25lIHN0ZXAgZnVydGhlciBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS40IGFkZDwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjQgYWRkCiAgICAgICAgYnkKICAgICAgICBtaWNoaQogICAgICAgIDoKICAgICAgICBbMS40XSAKICAgICAgICAgICAgVGhhbmtzIHRvIElsaGFuIGFuZCBPbGl2ZXIgd2Ugbm93IGhhdmUgYSBjb25maWd1cmUuYmF0IGZvciBXaW5kb3dzIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjQgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuNCB1cGRhdGUKICAgICAgICBieQogICAgICAgIHRob3JzdGVuCiAgICAgICAgOgogICAgICAgIFsxLjRdIAogICAgICAgICAgICBDbGVhbmluZyB0aGUgdmFyaWFibGUgYWZ0ZXIgdXNpbmcgaW4gdGhlIGxvb3Agb3RoZXJ3aXNlIHRoaXMgY2FuIGNhdXNlIGEgYnVnIGJ5IG1vcmUgdGhlbiBvbmUgcHViLiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS40IHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjQgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICB0aG9yc3RlbgogICAgICAgIDoKICAgICAgICBbMS40XSAKICAgICAgICAgICAgQWRkaW5nIHRoZSBjb250ZW50IGRpciB0byB0aGUgZmFsbGJhY2sgVVJJcyBsaWtlIGRlc2NyaWJlZCBpbiBodHRwOi8vbWFyYy50aGVhaW1zZ3JvdXAuY29tLz9sPWxlbnlhLWRldiZhbXA7bT0xMTQxNDI2MDI5MTk4OTMmYW1wO3c9Mi4gVGhpcyBmaXhlcyB0aGUgc2Vjb25kIHBhcnQgb2YgdGhlICdleHRlcm5hbCcgcmVzb3VyY2VzL2Fzc2V0IHByZXZpZXcuIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjQgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuNCB1cGRhdGUKICAgICAgICBieQogICAgICAgIG1pY2hpCiAgICAgICAgOgogICAgICAgIFsxLjRdIAogICAgICAgICAgICB0eXBvIGZpeGVkIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjQgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuNCB1cGRhdGUKICAgICAgICBieQogICAgICAgIG1pY2hpCiAgICAgICAgOgogICAgICAgIFsxLjRdIAogICAgICAgICAgICBub3RlIGFib3V0IE5vZGVGYWN0b3J5IGFuZCBYVUwgYWRkZWQgRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuNCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS40IHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgbWljaGkKICAgICAgICA6CiAgICAgICAgWzEuNF0gCiAgICAgICAgICAgIFRPRE8gbm90ZSBhZGRlZCBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS40IHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjQgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBtaWNoaQogICAgICAgIDoKICAgICAgICBbMS40XSAKICAgICAgICAgICAgcHJpdmF0ZSBtb2R1bGVzIHJlbW92ZWQgRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuNCBhZGQ8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS40IGFkZAogICAgICAgIGJ5CiAgICAgICAgbWljaGkKICAgICAgICA6CiAgICAgICAgWzEuNF0gCiAgICAgICAgICAgIG1lbnUgc3RhcnRlZCBieSBub3QgcmVhZHkgeWV0IERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjQgYWRkPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuNCBhZGQKICAgICAgICBieQogICAgICAgIG1pY2hpCiAgICAgICAgOgogICAgICAgIFsxLjRdIAogICAgICAgICAgICBtb2R1bGUgZGVzY3JpcHRvciBhZGRlZCBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS40IGFkZDwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjQgYWRkCiAgICAgICAgYnkKICAgICAgICBtaWNoaQogICAgICAgIDoKICAgICAgICBbMS40XSAKICAgICAgICAgICAgc2FtcGxlcyByZW5hbWVkIHRvIHRlbXBsYXRlcyBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS40IHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjQgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBtaWNoaQogICAgICAgIDoKICAgICAgICBbMS40XSAKICAgICAgICAgICAgemlwIHByb3RvY29sIGZpeGVkIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjQgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuNCB1cGRhdGUKICAgICAgICBieQogICAgICAgIG1pY2hpCiAgICAgICAgOgogICAgICAgIFsxLjRdIAogICAgICAgICAgICBzb21lIG1vcmUgc3BhY2UgZm9yIGJldHRlciByZWFkYWJpbGl0eSBhZGRlZCBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS40IHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjQgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBtaWNoaQogICAgICAgIDoKICAgICAgICBbMS40XSAKICAgICAgICAgICAgZXh0ZXJuYWxzIGFzIGRlZmF1bHQgYWRkZWQgRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuNCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS40IHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgbWljaGkKICAgICAgICA6CiAgICAgICAgWzEuNF0gCiAgICAgICAgICAgIGNvY29vbiBhcyBleHRlcm5hbCBhZGRlZCBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS40IGFkZDwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjQgYWRkCiAgICAgICAgYnkKICAgICAgICBtaWNoaQogICAgICAgIDoKICAgICAgICBbMS40XSAKICAgICAgICAgICAgZXh0ZXJuYWxzIGFkZGVkIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjQgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuNCB1cGRhdGUKICAgICAgICBieQogICAgICAgIHRob3JzdGVuCiAgICAgICAgOgogICAgICAgIFsxLjRdIAogICAgICAgICAgICBQYXJ0IG9uZSB0byBmaXggdGhlIGJ1ZyByZWxhdGVkIHRvIGFzc2V0IG1hbmFnZW1lbnQgYW5kIG91dHNvdXJjZWQgY29udGVudC4gU3RpbGwgbWlzc2luZyB0byByZXdyaXRlIGVpdGhlciB0aGUgZmFsbGJhY2sgc291cmNlIG9yIHRoZSBzaXRlbWFwIHRvIGZvcmNlIGxlbnlhIHRvIGxvb2sgaW4gdGhlICBvdXRzb3VyY2VkIGNvbnRlbnQgZGlyIGZvciBkaXNwbGF5LiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS40IHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjQgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBtaWNoaQogICAgICAgIDoKICAgICAgICBbMS40XSAKICAgICAgICAgICAgYmFja3NsYXNoIGJ1ZyBmaXhlZCByZSBwcm9wZXJ0aWVzIHdyaXRpbmcgRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuNCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS40IHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgbWljaGkKICAgICAgICA6CiAgICAgICAgWzEuNF0gCiAgICAgICAgICAgIHRyaW0gdmFsdWVzIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjQgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuNCB1cGRhdGUKICAgICAgICBieQogICAgICAgIG1pY2hpCiAgICAgICAgOgogICAgICAgIFsxLjRdIAogICAgICAgICAgICBwb2ludGVyIHRvIGFudGluc3RhbGxlciBhZGRlZCBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS40IHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjQgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBtaWNoaQogICAgICAgIDoKICAgICAgICBbMS40XSAKICAgICAgICAgICAgVG9tY2F0IGFzIHN1YnNlcXVlbnQgaW1wbGVtZW50ZWQgRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuNCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS40IHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgbWljaGkKICAgICAgICA6CiAgICAgICAgWzEuNF0gCiAgICAgICAgICAgIHN1YnNlcXVlbnQgcGFyYW1ldGVycyBpbXBsZW1lbnRlZCBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS40IHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjQgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBtaWNoaQogICAgICAgIDoKICAgICAgICBbMS40XSAKICAgICAgICAgICAgYW5vdGhlciBjb25maWcgYWRkZWQgRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuNCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS40IHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgbWljaGkKICAgICAgICA6CiAgICAgICAgWzEuNF0gCiAgICAgICAgICAgIHN1YnNlcXVlbnQgcGFyYW1ldGVycyBzdGFydGVkIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjQgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuNCB1cGRhdGUKICAgICAgICBieQogICAgICAgIG1pY2hpCiAgICAgICAgOgogICAgICAgIFsxLjRdIAogICAgICAgICAgICBwYXRoIGZpeGVkIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjQgYWRkPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuNCBhZGQKICAgICAgICBieQogICAgICAgIG1pY2hpCiAgICAgICAgOgogICAgICAgIFsxLjRdIAogICAgICAgICAgICB0ZXN0aW5nIGludHJvZHVjZWQgRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuNCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS40IHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgbWljaGkKICAgICAgICA6CiAgICAgICAgWzEuNF0gCiAgICAgICAgICAgIHRlc3RpbmcgaW50cm9kdWNlZCBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS40IHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjQgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICB0aG9yc3RlbgogICAgICAgIDoKICAgICAgICBbMS40XSAKICAgICAgICAgICAgVXBkYXRlZCBjb21tZW50IHRvIHJlZmVyIHRvIHRoZSB0b3AgbGV2ZWwgaW5zdGVhZCBvZiB0b3BMZXZlbC9jb250ZW50IERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjQgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuNCB1cGRhdGUKICAgICAgICBieQogICAgICAgIHRob3JzdGVuCiAgICAgICAgOgogICAgICAgIFsxLjRdIAogICAgICAgICAgICBGaXhpbmcgQnVnIHJlbGF0ZWQgdG8gdGhlIGNvbnRlbnREaXIuIEZ1cnRoZXIgcmVmYWN0b3JlZCBjb2RlIHRvIGJlIGJldHRlciB1bmRlcnN0YW5kYWJsZS4gVXBkYXRlZCBwdWJsaWNhdGlvbnMgdG8gcmVmZXIgdG8gdGhlIHRvcCBsZXZlbCBpbnN0ZWFkIG9mIHRvcExldmVsL2NvbnRlbnQgRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuNCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS40IHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgamFubgogICAgICAgIDoKICAgICAgICBbMS40XSAKICAgICAgICAgICAgZG9zMnVuaXggRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuNCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS40IHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgamFubgogICAgICAgIDoKICAgICAgICBbMS40XSAKICAgICAgICAgICAgZml4aW5nIHR5cG8uIFRoZSBzZXNzaW9uIHRhYiB3aWxsIGFnYWluIGJlIGF2YWlsYWJsZSBpbiB0aGUgYWRtaW4gYXJlYSBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS40IHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjQgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICB0aG9yc3RlbgogICAgICAgIDoKICAgICAgICBbMS40XSAKICAgICAgICAgICAgVXNpbmcgZ2V0U291cmNlVVJJKCkgaW5zdGVhZCBvZiBnZXRGaWxlKCkuZ2V0QWJzb2x1dGVQYXRoKCkgZm9yIER1YmxpbkNvcmVIZWxwZXIuamF2YSBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS40IHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjQgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBtaWNoaQogICAgICAgIDoKICAgICAgICBbMS40XSAKICAgICAgICAgICAgZ3VpIGVuaGFuY2VkIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjQgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuNCB1cGRhdGUKICAgICAgICBieQogICAgICAgIG1pY2hpCiAgICAgICAgOgogICAgICAgIFsxLjRdIAogICAgICAgICAgICBwYXRoIGZpeGVkIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjQgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuNCB1cGRhdGUKICAgICAgICBieQogICAgICAgIG1pY2hpCiAgICAgICAgOgogICAgICAgIFsxLjRdIAogICAgICAgICAgICBtb3ZlZCBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS40IGFkZDwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjQgYWRkCiAgICAgICAgYnkKICAgICAgICBtaWNoaQogICAgICAgIDoKICAgICAgICBbMS40XSAKICAgICAgICAgICAgY2xhc3NlcyBhZGRlZCBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS40IHJlbW92ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjQgcmVtb3ZlCiAgICAgICAgYnkKICAgICAgICBtaWNoaQogICAgICAgIDoKICAgICAgICBbMS40XSAKICAgICAgICAgICAgbW92ZWQgRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuNCBhZGQ8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS40IGFkZAogICAgICAgIGJ5CiAgICAgICAgbWljaGkKICAgICAgICA6CiAgICAgICAgWzEuNF0gCiAgICAgICAgICAgIGphdmEgYWRkZWQgRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuNCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS40IHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgbWljaGkKICAgICAgICA6CiAgICAgICAgWzEuNF0gCiAgICAgICAgICAgIHN3aW5nIGJhc2VkIEdVSSBzdGFydGVkIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjQgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuNCB1cGRhdGUKICAgICAgICBieQogICAgICAgIG1pY2hpCiAgICAgICAgOgogICAgICAgIFsxLjRdIAogICAgICAgICAgICBidWcgZml4ZWQgcmUgc2VsZWN0aW5nIGRlZmF1bHQgdmFsdWVzIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjQgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuNCB1cGRhdGUKICAgICAgICBieQogICAgICAgIG1pY2hpCiAgICAgICAgOgogICAgICAgIFsxLjRdIAogICAgICAgICAgICBtb3JlIGZvb2wgcHJvdmVuZXNzIGFkZGVkIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjQgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuNCB1cGRhdGUKICAgICAgICBieQogICAgICAgIG1pY2hpCiAgICAgICAgOgogICAgICAgIFsxLjRdIAogICAgICAgICAgICB3cml0aW5nIGZpeGVkIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjQgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuNCB1cGRhdGUKICAgICAgICBieQogICAgICAgIG1pY2hpCiAgICAgICAgOgogICAgICAgIFsxLjRdIAogICAgICAgICAgICByZWFkIHZhbHVlcyBmcm9tIGNvbW1hbmQgbGluZSBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS40IHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjQgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBtaWNoaQogICAgICAgIDoKICAgICAgICBbMS40XSAKICAgICAgICAgICAgZGlmZmVyZW50aWF0ZSBiZXR3ZWVuIGxvY2FsIGFuZCBkZWZhdWx0IERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjQgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuNCB1cGRhdGUKICAgICAgICBieQogICAgICAgIG1pY2hpCiAgICAgICAgOgogICAgICAgIFsxLjRdIAogICAgICAgICAgICByb290IGRpciBwYXNzZWQgRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuNCBhZGQ8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS40IGFkZAogICAgICAgIGJ5CiAgICAgICAgbWljaGkKICAgICAgICA6CiAgICAgICAgWzEuNF0gCiAgICAgICAgICAgIGNsYXNzZXMgdXBkYXRlZCBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS40IHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjQgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBtaWNoaQogICAgICAgIDoKICAgICAgICBbMS40XSAKICAgICAgICAgICAgY2xlYW5lZCBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS40IHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjQgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBtaWNoaQogICAgICAgIDoKICAgICAgICBbMS40XSAKICAgICAgICAgICAgYnVpbGQucHJvcGVydGllcyBjb25maWcgYWRkZWQgRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuNCBhZGQ8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS40IGFkZAogICAgICAgIGJ5CiAgICAgICAgbWljaGkKICAgICAgICA6CiAgICAgICAgWzEuNF0gCiAgICAgICAgICAgIHV0aWxpdHkgY2xhc3NlcyBhZGRlZCBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS40IHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjQgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBhbmRyZWFzCiAgICAgICAgOgogICAgICAgIFsxLjRdIAogICAgICAgICAgICBGaXhlZCBsb2NhdGlvbiBvZiBzaXRlbWFwLnhtYXAgcGF0Y2ggZmlsZXMgRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuNCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS40IHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgbWljaGkKICAgICAgICA6CiAgICAgICAgWzEuNF0gCiAgICAgICAgICAgIGluc3RydWN0aW9ucyBhZGRlZCBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS40IGFkZDwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjQgYWRkCiAgICAgICAgYnkKICAgICAgICBtaWNoaQogICAgICAgIDoKICAgICAgICBbMS40XSAKICAgICAgICAgICAgUkVBRE1FIGFkZGVkIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjQgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuNCB1cGRhdGUKICAgICAgICBieQogICAgICAgIG1pY2hpCiAgICAgICAgOgogICAgICAgIFsxLjRdIAogICAgICAgICAgICBjb21waWxlIHRhcmdldCBmb3IgYnVpbGRpbmcgY29uZmlndXJlIGFkZGVkIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjQgYWRkPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuNCBhZGQKICAgICAgICBieQogICAgICAgIG1pY2hpCiAgICAgICAgOgogICAgICAgIFsxLjRdIAogICAgICAgICAgICBjb25maWd1cmUgc3RhcnRlZCBjbWQgYW5kIGd1aSBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS40IHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjQgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBtaWNoaQogICAgICAgIDoKICAgICAgICBbMS40XSAKICAgICAgICAgICAgaWdub3JlIGxvY2FsLnB1YmxpY2F0aW9uLnhjb25mIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjQgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuNCB1cGRhdGUKICAgICAgICBieQogICAgICAgIG1pY2hpCiAgICAgICAgOgogICAgICAgIFsxLjRdIAogICAgICAgICAgICBpZ25vcmUgbG9jYWwucHVibGljYXRpb24ueGNvbmYgRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuNCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS40IHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgbWljaGkKICAgICAgICA6CiAgICAgICAgWzEuNF0gCiAgICAgICAgICAgIGlnbm9yZSBsb2NhbC5wdWJsaWNhdGlvbi54Y29uZiBmaWxlcyBkdXJpbmcgY29weWluZyBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS40IHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjQgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBtaWNoaQogICAgICAgIDoKICAgICAgICBbMS40XSAKICAgICAgICAgICAgbm90ZSBhYm91dCBtYXggdXBsb2FkIHNpemUgYWRkZWQgRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuNCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS40IHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgbWljaGkKICAgICAgICA6CiAgICAgICAgWzEuNF0gCiAgICAgICAgICAgIG91dGRhdGVkIGhpc3RvcnkgZGVsZXRlZCBiZWNhdXNlIGl0IGlzIGNvdmVyZWQgYnkgU1ZOIGFueXdheSBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS40IHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjQgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBtaWNoaQogICAgICAgIDoKICAgICAgICBbMS40XSAKICAgICAgICAgICAgbW9yZSBpbmZvIGFkZGVkIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjQgYWRkPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuNCBhZGQKICAgICAgICBieQogICAgICAgIG1pY2hpCiAgICAgICAgOgogICAgICAgIFsxLjRdIAogICAgICAgICAgICBSRUFETUUgYWRkZWQgRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuNCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS40IHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgbWljaGkKICAgICAgICA6CiAgICAgICAgWzEuNF0gCiAgICAgICAgICAgIGRlc2NyaXB0aW9uIGFkZGVkIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjQgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuNCB1cGRhdGUKICAgICAgICBieQogICAgICAgIG1pY2hpCiAgICAgICAgOgogICAgICAgIFsxLjRdIAogICAgICAgICAgICBjb21waWxlIHRhc2tzIHRhcmdldCAocmUpYWRkZWQgRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuNCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS40IHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgbWljaGkKICAgICAgICA6CiAgICAgICAgWzEuNF0gCiAgICAgICAgICAgIENvcHkgdGFza3MgZml4ZWQgdGhhdCBhbHNvIG1vZHVsZXMgYXJlIGJlaW5nIGNvcGllZCBwcm9wZXJseSBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS40IHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjQgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBtaWNoaQogICAgICAgIDoKICAgICAgICBbMS40XSAKICAgICAgICAgICAgTWljcm9zb2Z0IGxpbmVmZWVkcyByZW1vdmVkIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCBab25lIHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj5ab25lIHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgYW5kcmVhcwogICAgICAgIDoKICAgICAgICBbWm9uZV0gCiAgICAgICAgICAgIEFkZGVkIHRlc3RzIHRvIG5pZ2h0bHkgdHJ1bmsgc2NyaXB0IERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCBTaXRlIHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj5TaXRlIHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgYW5kcmVhcwogICAgICAgIDoKICAgICAgICBbU2l0ZV0gCiAgICAgICAgICAgIEFkZGVkIFhNTCBjYXRlZ29yeSB0byBET0FQIGZpbGUuIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCBTaXRlIGFkZDwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj5TaXRlIGFkZAogICAgICAgIGJ5CiAgICAgICAgYW5kcmVhcwogICAgICAgIDoKICAgICAgICBbU2l0ZV0gCiAgICAgICAgICAgIEFkZGVkIExlbnlhIERPQVAgZmlsZSAoc2VlIHByb2plY3RzLmFwYWNoZS5vcmcpIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjQgYWRkPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuNCBhZGQKICAgICAgICBieQogICAgICAgIGFuZHJlYXMKICAgICAgICA6CiAgICAgICAgWzEuNF0gCiAgICAgICAgICAgIE1vdmVkIGRlY2xhcmF0aW9uIG9mIEFjY2Vzc0NvbnRyb2xTaXRldHJlZVRyYW5zZm9ybWVyIHRvIHNpdGV0cmVlIG1vZHVsZSBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS40IHJlbW92ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjQgcmVtb3ZlCiAgICAgICAgYnkKICAgICAgICBhbmRyZWFzCiAgICAgICAgOgogICAgICAgIFsxLjRdIAogICAgICAgICAgICBNb3ZlZCBzaXRlbWFwIHBhdGNoIGZpbGVzIGZyb20gY29uZnBhdGNoIHRvIHdlYmFwcC9jb25maWcvc2l0ZW1hcC4gQWxsb3cgbW9kdWxlcyB0byBwYXRjaCB0aGUgc2l0ZW1hcC4gVGhpcyBpcyBhIG5leHQgc3RlcCB0b3dhcmRzIGVxdWFsIHN0cnVjdHVyZXMgZm9yIGNvcmUgYW5kIG1vZHVsZXMuIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjQgYWRkPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuNCBhZGQKICAgICAgICBieQogICAgICAgIGFuZHJlYXMKICAgICAgICA6CiAgICAgICAgWzEuNF0gCiAgICAgICAgICAgIE1vdmVkIHNpdGVtYXAgcGF0Y2ggZmlsZXMgZnJvbSBjb25mcGF0Y2ggdG8gd2ViYXBwL2NvbmZpZy9zaXRlbWFwLiBBbGxvdyBtb2R1bGVzIHRvIHBhdGNoIHRoZSBzaXRlbWFwLiBUaGlzIGlzIGEgbmV4dCBzdGVwIHRvd2FyZHMgZXF1YWwgc3RydWN0dXJlcyBmb3IgY29yZSBhbmQgbW9kdWxlcy4gRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuNCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS40IHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgYW5kcmVhcwogICAgICAgIDoKICAgICAgICBbMS40XSAKICAgICAgICAgICAgW21pbm9yIGNoYW5nZV0gTW92ZWQgWExpbmtDb2xsZWN0aW9uVGVzdCBkb3duIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjQgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuNCB1cGRhdGUKICAgICAgICBieQogICAgICAgIGpvc2lhcwogICAgICAgIDoKICAgICAgICBbMS40XSAKICAgICAgICAgICAgbWFrZSBzdXJlIG5ldyBsYWJlbHMgYXJlIGluc2VydGVkIGJlZm9yZSB0aGUgY2hpbGQtbm9kZXMsIHNvIHRoZSBzaXRldHJlZS54bWwgd2lsbCBiZSB2YWxpZCBhbmQgcmVhZGFibGUgbW9yZSBlYXNpbHkuIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjIgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuMiB1cGRhdGUKICAgICAgICBieQogICAgICAgIGpvc2lhcwogICAgICAgIDoKICAgICAgICBbMS4yXSAKICAgICAgICAgICAgbWFrZSBzdXJlIG5ldyBsYWJlbHMgYXJlIGluc2VydGVkIGJlZm9yZSB0aGUgY2hpbGQtbm9kZXMsIHNvIHRoZSBzaXRldHJlZS54bWwgd2lsbCBiZSB2YWxpZCBhbmQgcmVhZGFibGUgbW9yZSBlYXNpbHkuIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjQgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuNCB1cGRhdGUKICAgICAgICBieQogICAgICAgIGFuZHJlYXMKICAgICAgICA6CiAgICAgICAgWzEuNF0gCiAgICAgICAgICAgIFVzZSBEb2N1bWVudC5nZXRTb3VyY2VVUkkoKSBmb3IgWExpbmsgaHJlZiBpbiBYTGlua0NvbGxlY3Rpb24gRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuNCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS40IHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgYW5kcmVhcwogICAgICAgIDoKICAgICAgICBbMS40XSAKICAgICAgICAgICAgVXNlIHNvdXJjZSBVUkkgdG8gY2hlY2sgaWYgY29sbGVjdGlvbiBjb250ZW50cyBjYW4gYmUgbG9hZGVkIChpbnN0ZWFkIG9mIFNpdGVNYW5hZ2VyKSBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS40IGFkZDwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjQgYWRkCiAgICAgICAgYnkKICAgICAgICBhbmRyZWFzCiAgICAgICAgOgogICAgICAgIFsxLjRdIAogICAgICAgICAgICBBZGRlZCBYTGlua0NvbGxlY3Rpb25UZXN0IERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjQgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuNCB1cGRhdGUKICAgICAgICBieQogICAgICAgIGFuZHJlYXMKICAgICAgICA6CiAgICAgICAgWzEuNF0gCiAgICAgICAgICAgIFVzaW5nIGlkZW50aWZpZXJzIHRvIGNvbXBhcmUgRGVmYXVsdERvY3VtZW50IG9iamVjdHMgRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuNCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS40IHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgYW5kcmVhcwogICAgICAgIDoKICAgICAgICBbMS40XSAKICAgICAgICAgICAgU2V0IHBhdGNoLndlYmFwcCBwcm9wZXJ0eSB0byAnZmFsc2UnIGJlZm9yZSBzdGFydGluZyB0ZXN0cy4gVGhpcyB3YXksIHRoZSBwcm9wZXJ0eSBpcyBoYW5kbGVkIGNvcnJlY3RseSBldmVuIGlmIHRoZSB3ZWJhcHAgYW5kIHRlc3QgdGFyZ2V0cyBhcmUgZXhlY3V0ZWQgc3Vic2VxdWVudGx5IGluIHRoZSBzYW1lIHByb2Nlc3MuIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjQgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuNCB1cGRhdGUKICAgICAgICBieQogICAgICAgIG1pY2hpCiAgICAgICAgOgogICAgICAgIFsxLjRdIAogICAgICAgICAgICBDb2xsZWN0aW9uSW1wbCBpcyBub3cgdXNpbmcgU291cmNlVXRpbCBpbnN0ZWFkIEZpbGUgRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuNCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS40IHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgbWljaGkKICAgICAgICA6CiAgICAgICAgWzEuNF0gCiAgICAgICAgICAgIGxlbnlhIHByb3RvY29sIGFkZGVkIHN1Y2ggdGhhdCBhbHNvIGVudHJpZXMgd29yayBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS40IHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjQgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBtaWNoaQogICAgICAgIDoKICAgICAgICBbMS40XSAKICAgICAgICAgICAgbGVueWEgcHJvdG9jb2wgYWRkZWQgRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuNCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS40IHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgYW5kcmVhcwogICAgICAgIDoKICAgICAgICBbMS40XSAKICAgICAgICAgICAgW21pbm9yIGNoYW5nZV0gaW5kZW50YXRpb24sIHJlcGxhY2VkIHRhYnMgd2l0aCBzcGFjZXMgRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuNCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS40IHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgYW5kcmVhcwogICAgICAgIDoKICAgICAgICBbMS40XSAKICAgICAgICAgICAgVXNlIERvY3VtZW50LmdldFNvdXJjZVVSSSgpIGluc3RlYWQgb2YgRG9jdW1lbnQuZ2V0RmlsZSgpIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjQgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuNCB1cGRhdGUKICAgICAgICBieQogICAgICAgIGFuZHJlYXMKICAgICAgICA6CiAgICAgICAgWzEuNF0gCiAgICAgICAgICAgIEFkZGVkIGRlcHJlY2F0aW9uIHRhZyB0byBEb2N1bWVudC5nZXRGaWxlKCkgRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuNCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS40IHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgYW5kcmVhcwogICAgICAgIDoKICAgICAgICBbMS40XSAKICAgICAgICAgICAgUmVtb3ZlZCB1bm5lY2Vzc2FyeSBEb2N1bWVudFN0b3JlLmdldFJlcG9zaXRvcnlOb2RlKCkgbWV0aG9kIC0gaXMgbm93IGluaGVyaXRlZCBmcm9tIERlZmF1bHREb2N1bWVudCBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS40IHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjQgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBhbmRyZWFzCiAgICAgICAgOgogICAgICAgIFsxLjRdIAogICAgICAgICAgICBSZW1vdmVkIHVubmVjZXNzYXJ5IERvY3VtZW50U3RvcmUuZ2V0UmVwb3NpdG9yeU5vZGUoKSBtZXRob2QgLSBpcyBub3cgaW5oZXJpdGVkIGZyb20gRGVmYXVsdERvY3VtZW50IERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjQgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuNCB1cGRhdGUKICAgICAgICBieQogICAgICAgIG1pY2hpCiAgICAgICAgOgogICAgICAgIFsxLjRdIAogICAgICAgICAgICBjb250ZW50IGRpciBjb25maWd1cmFibGUgdGVzdGVkIG9uIFdpbmRvd3MgRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuNCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS40IHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgbWljaGkKICAgICAgICA6CiAgICAgICAgWzEuNF0gCiAgICAgICAgICAgIHVuaXRlbmRlZCBzdHVmZiByZW1vdmVkIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjQgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuNCB1cGRhdGUKICAgICAgICBieQogICAgICAgIG1pY2hpCiAgICAgICAgOgogICAgICAgIFsxLjRdIAogICAgICAgICAgICBjb250ZW50IGRpciBjb25maWd1cmF0aW9uIGZvciBibG9nIHVwZGF0ZWQgRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuNCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS40IHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgbWljaGkKICAgICAgICA6CiAgICAgICAgWzEuNF0gCiAgICAgICAgICAgIGluc3RydWN0aW9ucyByZSBidWlsZCBpbXByb3ZlZCBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS40IHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjQgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBtaWNoaQogICAgICAgIDoKICAgICAgICBbMS40XSAKICAgICAgICAgICAgY29udGVudCBkaXIgaXMgbm93IGNvbmZpZ3VyYWJsZSBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS40IHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjQgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBtaWNoaQogICAgICAgIDoKICAgICAgICBbMS40XSAKICAgICAgICAgICAgY29uZmlndXJhYmxlIGNvbnRlbnQgZGlyIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjQgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuNCB1cGRhdGUKICAgICAgICBieQogICAgICAgIG1pY2hpCiAgICAgICAgOgogICAgICAgIFsxLjRdIAogICAgICAgICAgICBjb25maWd1cmF0aW9uIG9mIGNvbnRlbnQgZGlyIHN0YXJ0ZWQgRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuNCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS40IHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgdGhvcnN0ZW4KICAgICAgICA6CiAgICAgICAgWzEuNF0gCiAgICAgICAgICAgIEV4dGVuZGluZyB0aGUgUmVzb3VyY2VzTWFuYWdlciBpbnRlcmZhY2UgKGxpa2UgYW5ub3VuY2VkIG9uIGRldiBsaXN0KSBhbmQgaW1wbGVtZW50aW5nIHRoZSBuZXcgbWV0aG9kIGluIHRoZSBkZWZhdWx0IGltcGxlbWVudGF0aW9uLiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS40IGFkZDwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjQgYWRkCiAgICAgICAgYnkKICAgICAgICBjaGVzdG51dAogICAgICAgIDoKICAgICAgICBbMS40XSAKICAgICAgICAgICAgYWRkZWQgYWJpbGl0eSB0byB1c2UgZG9qbyBlZGl0b3IgaW4gY2Zvcm1zIGZpZWxkcyB3aXRoIGRvam9hcmVhIHN5dGxpbmcgbGlrZSBzbzoKICAgICAgICAgICAgICAgICAgICZsdDtmdDp3aWRnZXQgaWQ9ImRlc2NyaXB0aW9uIiZndDsgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAmbHQ7Zmk6c3R5bGluZyB0eXBlPSJkb2pvYXJlYSIgcm93cz0iOCIgc3R5bGU9IndpZHRoOjEwMCUiJmd0OwogCiAgICAgICAgICAgICAgICAgICAgICAmbHQ7L2ZpOnN0eWxpbmcmZ3Q7CiAgICAgICAgICAgICAgICAgICAgJmx0Oy9mdDp3aWRnZXQmZ3Q7IERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjQgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuNCB1cGRhdGUKICAgICAgICBieQogICAgICAgIG1pY2hpCiAgICAgICAgOgogICAgICAgIFsxLjRdIAogICAgICAgICAgICByZXN0cnVjdGVyZWQgdGhlIG92ZXJ2aWV3IHNjcmVlbiBvZiBwdWJsaWNhdGlvbnMgaW4gb3JkZXIgdG8gbWFrZSBiZXR0ZXIgcmVhZGFibGUgRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuNCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS40IHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgY2hlc3RudXQKICAgICAgICA6CiAgICAgICAgWzEuNF0gCiAgICAgICAgICAgIGNvbnRhaW5pbmcgZG9jdW1lbnRzIG9mIG1vdmVkIGRvY3VtZW50cyBzaG91bGQgbm90IGhhdmUgdGhlaXIgcmVzb3VyY2VzL2Fzc2V0cyBjb3BpZWQgYXMgd2VsbC4gIEZpeGVzIHRoZSBidWcgb2YgCm5vdCBiZWluZyBhYmxlIHRvIGRlbGV0ZSBhIGRvY3VtZW50IGNvbnRhaW5lZCBieSBhIGRvY3VtZW50IHRoYXQgaGFzIHJlc291cmNlcy9hc3NldHMuIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjQgcmVtb3ZlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuNCByZW1vdmUKICAgICAgICBieQogICAgICAgIGFuZHJlYXMKICAgICAgICA6CiAgICAgICAgWzEuNF0gCiAgICAgICAgICAgIE1vdmVkIERvY3VtZW50SW5kZXhUcmFuc2Zvcm1lciB0byBzaXRldHJlZSBtb2R1bGUgdG8gcmVtb3ZlIHRoZSBkZXBlbmRlbmN5IGZyb20gdGhlIGNvcmUgdG8gdGhlIHNpdGV0cmVlIG1vZHVsZS4gRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuNCByZW1vdmU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS40IHJlbW92ZQogICAgICAgIGJ5CiAgICAgICAgYW5kcmVhcwogICAgICAgIDoKICAgICAgICBbMS40XSAKICAgICAgICAgICAgW21pbm9yIGNoYW5nZV0gcmVtb3ZlZCBlbXB0eSBkaXJlY3RvcnkgRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuNCBhZGQ8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS40IGFkZAogICAgICAgIGJ5CiAgICAgICAgYW5kcmVhcwogICAgICAgIDoKICAgICAgICBbMS40XSAKICAgICAgICAgICAgTW92ZWQgbWlncmF0aW9uIGNsYXNzIHRvIHJlcG9zaXRvcnkgbW9kdWxlIChyZW1vdmVzIGRlcGVuZGVuY3kgZnJvbSBjb3JlIHRvIHJlcG9zaXRvcnkgbW9kdWxlKSBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS40IHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjQgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICB0aG9yc3RlbgogICAgICAgIDoKICAgICAgICBbMS40XSAKICAgICAgICAgICAgV2hpdGUgbm9pc2UgLSBmb3JtYXRpbmcgY2hhbmdlcyBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS40IHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjQgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICB0aG9yc3RlbgogICAgICAgIDoKICAgICAgICBbMS40XSAKICAgICAgICAgICAgQWRkaW5nIG1ldGhvZCB0byByZWNlaXZlIHRoZSBuZXcgZG9jdW1lbnQgdG8gdGhlIGNyZWF0ZSB1c2VjYXNlLiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS40IHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjQgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBtaWNoaQogICAgICAgIDoKICAgICAgICBbMS40XSAKICAgICAgICAgICAgb3B0aW9uYWwgbW9kdWxlcyBpbnRyb2R1Y2VkIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjQgcmVtb3ZlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuNCByZW1vdmUKICAgICAgICBieQogICAgICAgIG1pY2hpCiAgICAgICAgOgogICAgICAgIFsxLjRdIAogICAgICAgICAgICBqY3Jzb3VyY2UgbW92ZWQgRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuNCBhZGQ8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS40IGFkZAogICAgICAgIGJ5CiAgICAgICAgbWljaGkKICAgICAgICA6CiAgICAgICAgWzEuNF0gCiAgICAgICAgICAgIGpjcnNvdXJjZSBtb3ZlZCBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS40IGFkZDwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjQgYWRkCiAgICAgICAgYnkKICAgICAgICBtaWNoaQogICAgICAgIDoKICAgICAgICBbMS40XSAKICAgICAgICAgICAgb3B0aW9uYWwgbW9kdWxlcyBhZGRlZCBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS40IHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjQgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBtaWNoaQogICAgICAgIDoKICAgICAgICBbMS40XSAKICAgICAgICAgICAgbm90ZSBhYm91dCBjb25maWd1cmF0aW9uIG9mIG5vZGUgZmFjdG9yeSBhZGRlZCBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS40IGFkZDwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjQgYWRkCiAgICAgICAgYnkKICAgICAgICBtaWNoaQogICAgICAgIDoKICAgICAgICBbMS40XSAKICAgICAgICAgICAgbW9kdWxlIGRlc2NyaXB0b3JzIGFkZGVkIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjQgcmVtb3ZlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuNCByZW1vdmUKICAgICAgICBieQogICAgICAgIG1pY2hpCiAgICAgICAgOgogICAgICAgIFsxLjRdIAogICAgICAgICAgICB0ZXJtaW5vbG9neSBmaXhlZCBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS40IGFkZDwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjQgYWRkCiAgICAgICAgYnkKICAgICAgICBtaWNoaQogICAgICAgIDoKICAgICAgICBbMS40XSAKICAgICAgICAgICAgdGVybWlub2xvZ3kgZml4ZWQgRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuNCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS40IHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgY2hlc3RudXQKICAgICAgICA6CiAgICAgICAgWzEuNF0gCiAgICAgICAgICAgIGltcHJvdmVkIGx1Y2VuZSBzZWFyY2ggcmVzdWx0cyBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS4yIHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjIgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBtaWNoaQogICAgICAgIDoKICAgICAgICBbMS4yXSAKICAgICAgICAgICAgbm90ZSBhYm91dCBlbmRvcnNlZCBsaWJzIGFkZGVkIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjQgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuNCB1cGRhdGUKICAgICAgICBieQogICAgICAgIGNoZXN0bnV0CiAgICAgICAgOgogICAgICAgIFsxLjRdIAogICAgICAgICAgICBzZWFyY2ggcmVzdWx0IGZpeGVzIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjQgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuNCB1cGRhdGUKICAgICAgICBieQogICAgICAgIGNoZXN0bnV0CiAgICAgICAgOgogICAgICAgIFsxLjRdIAogICAgICAgICAgICBBZGQgZGVsaW1ldGVyIGJldHdlZW4gdGV4dCBub2RlcyBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS40IHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjQgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBqb3NpYXMKICAgICAgICA6CiAgICAgICAgWzEuNF0gCiAgICAgICAgICAgIHVzZSBhbiBlbXB0eSBsaW5rIGF0dHJpYnV0ZSBhcyBkZWZhdWx0LCBpdCB3aWxsIGJlIHJlcGxhY2VkIGluIHRoZSBmZWVkIGJ5IHRoZSBhY3R1YWwgdXJsIG9mIHRoZSBlbnRyeS4gRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuNCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS40IHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgam9zaWFzCiAgICAgICAgOgogICAgICAgIFsxLjRdIAogICAgICAgICAgICBmaXhlZCBwYXRoIG9mIGNzcy54c2wgKGl0J3MgYSBjb3JlIGZpbGUpIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjQgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuNCB1cGRhdGUKICAgICAgICBieQogICAgICAgIG1pY2hpCiAgICAgICAgOgogICAgICAgIFsxLjRdIAogICAgICAgICAgICByZXBsYWNlZCBoYXJkLWNvZGVkIGpldHR5IHBvcnRzIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjQgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuNCB1cGRhdGUKICAgICAgICBieQogICAgICAgIG1pY2hpCiAgICAgICAgOgogICAgICAgIFsxLjRdIAogICAgICAgICAgICBKZXR0eSBwb3J0cyBhcmUgY29uZmlndXJhYmxlIGZvciBzaGVsbCBzY3JpcHQgRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuNCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS40IHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgbWljaGkKICAgICAgICA6CiAgICAgICAgWzEuNF0gCiAgICAgICAgICAgIEpldHR5IHBvcnRzIG1vdmVkIHRvIGJ1aWxkLnByb3BlcnRpZXMgRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuNCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS40IHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgbWljaGkKICAgICAgICA6CiAgICAgICAgWzEuNF0gCiAgICAgICAgICAgIHhzbHQgdGFyZ2V0IGFkZGVkIHRvIHRlc3QgRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuNCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS40IHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgbWljaGkKICAgICAgICA6CiAgICAgICAgWzEuNF0gCiAgICAgICAgICAgIENvY29vbiB2ZXJzaW9uIGZpeGVkIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjQgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuNCB1cGRhdGUKICAgICAgICBieQogICAgICAgIGpvc2lhcwogICAgICAgIDoKICAgICAgICBbMS40XSAKICAgICAgICAgICAgYWxsb3cgZmFsbGJhY2sgdXJpcyB3aGljaCByZWZlciB0byBhIGRpZmZlcmVudCBtb2R1bGUsIGFuZCBtYWRlIHByZXBhcmF0aW9ucyB0byBzdXBwb3J0IG1vcmUgZ2VuZXJhbCBmYWxsYmFjayB1cmlzLiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS40IHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjQgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBjaGVzdG51dAogICAgICAgIDoKICAgICAgICBbMS40XSAKICAgICAgICAgICAgdHJpZ2dlciB3b3JrZmxvdyBmb3IgY2Zvcm1zIGVkaXQgRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuNCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS40IHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgY2hlc3RudXQKICAgICAgICA6CiAgICAgICAgWzEuNF0gCiAgICAgICAgICAgIG5vLWNhY2hlIGluIHJlc3BvbnNlIGhlYWRlciBmb3IgZG9jdW1lbnRzIGluIHRoZSBhdXRob3JpbmcgYXJlYSBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS40IHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjQgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBjaGVzdG51dAogICAgICAgIDoKICAgICAgICBbMS40XSAKICAgICAgICAgICAgcmVtb3ZlIHhodG1sIG5zIGFuZCBhZGQgeGh0bWwgbnMgc28gdGhhdCBvbmUgY2FuIHVzZSAmbHQ7Zmk6c3R5bGluZyB0eXBlPSJodG1sYXJlYSImZ3Q7Jmx0O2NvbmYmZ3Q7Li4uJmx0Oy9jb25mJmd0OyZsdDsvZmk6c3R5bGluZyZndDsgaW4gY2Zvcm0gCnVzZWNhc2VzIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjQgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuNCB1cGRhdGUKICAgICAgICBieQogICAgICAgIGNoZXN0bnV0CiAgICAgICAgOgogICAgICAgIFsxLjRdIAogICAgICAgICAgICBBamF4IGJsb2NrIGlzIGJlaW5nIHJld3JpdHRlbiB1c2luZyBkb2pvIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjQgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuNCB1cGRhdGUKICAgICAgICBieQogICAgICAgIGFuZHJlYXMKICAgICAgICA6CiAgICAgICAgWzEuNF0gCiAgICAgICAgICAgIHJlbW92ZWQgb2Jzb2xldGUgdGVzdCB0ZW1wbGF0ZXMsIGZpeGVkIHRlc3QgYnVpbGQgRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuNCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS40IHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgYW5kcmVhcwogICAgICAgIDoKICAgICAgICBbMS40XSAKICAgICAgICAgICAgUmVmYWN0b3JlZCB0ZXN0IGJ1aWxkIHN5c3RlbTogZ2VuZXJhdGUgeHRlc3QgZmlsZSBkeW5hbWljYWxseSwgYWRkZWQgTG9naW5UZXN0IERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjQgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuNCB1cGRhdGUKICAgICAgICBieQogICAgICAgIGFuZHJlYXMKICAgICAgICA6CiAgICAgICAgWzEuNF0gCiAgICAgICAgICAgIFJlcGxhY2VkIGFzc2VydGlvbiB3aXRoIEV4Y2VwdGlvbiBpbiBVUkxJbmZvcm1hdGlvbiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS40IHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjQgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBjaGVzdG51dAogICAgICAgIDoKICAgICAgICBbMS40XSAKICAgICAgICAgICAgYWxsb3dzIGZvciBtdWx0aSB2YWx1ZSBmaWVsZHMgRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuMiB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS4yIHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgamFubgogICAgICAgIDoKICAgICAgICBbMS4yXSAKICAgICAgICAgICAgYWRkIHN1cHBvcnQgZm9yIGxkYXAgIHJlZmVycmFsIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjQgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuNCB1cGRhdGUKICAgICAgICBieQogICAgICAgIGFuZHJlYXMKICAgICAgICA6CiAgICAgICAgWzEuNF0gCiAgICAgICAgICAgIFJlbmFtZWQgdGVzdC11c2VyIGZyb20gYWxpY2UgdG8gYWxpY2VUZXN0IHRvIGF2b2lkIGNvbmZsaWN0IHdpdGggYWxpY2UgdXNlciBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS40IHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjQgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBhbmRyZWFzCiAgICAgICAgOgogICAgICAgIFsxLjRdIAogICAgICAgICAgICBGaXhlZCBzb21lIHRlc3RzIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjQgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuNCB1cGRhdGUKICAgICAgICBieQogICAgICAgIGFuZHJlYXMKICAgICAgICA6CiAgICAgICAgWzEuNF0gCiAgICAgICAgICAgIFttaW5vciBjaGFuZ2VdIHJldmVyZWQgYWNjaWRlbnRpYWwgY2hlY2staW4gb2YgU3lzdGVtLm91dCBjYWxsIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjQgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuNCB1cGRhdGUKICAgICAgICBieQogICAgICAgIGFuZHJlYXMKICAgICAgICA6CiAgICAgICAgWzEuNF0gCiAgICAgICAgICAgIFJlbW92ZWQgTWV0YURhdGEuc2F2ZSgpIG1ldGhvZCBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS40IHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjQgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBhbmRyZWFzCiAgICAgICAgOgogICAgICAgIFsxLjRdIAogICAgICAgICAgICBGaXhlZCBzb21lIHRlc3RzIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjQgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuNCB1cGRhdGUKICAgICAgICBieQogICAgICAgIGFuZHJlYXMKICAgICAgICA6CiAgICAgICAgWzEuNF0gCiAgICAgICAgICAgIFJlbW92ZWQgTWV0YURhdGEuc2F2ZSgpIC0gY2hhbmdlcyBhcmUgc2F2ZWQgYXV0b21hdGljYWxseSBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS40IHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjQgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBhbmRyZWFzCiAgICAgICAgOgogICAgICAgIFsxLjRdIAogICAgICAgICAgICBSZW1vdmVkIE1ldGFEYXRhLnNhdmUoKSAtIGNoYW5nZXMgYXJlIHNhdmVkIGF1dG9tYXRpY2FsbHkgRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuNCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS40IHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgYW5kcmVhcwogICAgICAgIDoKICAgICAgICBbMS40XSAKICAgICAgICAgICAgU2F2ZSBtZXRhIGRhdGEgYWZ0ZXIgbW9kaWZpY2F0aW9ucyBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS40IHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjQgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBhbmRyZWFzCiAgICAgICAgOgogICAgICAgIFsxLjRdIAogICAgICAgICAgICBVc2UgbGFzdCBtb2RpZmljYXRpb24gZGF0ZSB0byB2YWxpZGF0ZSBpZiB2ZXJzaW9ucyBhcmUgdXAgdG8gZGF0ZSBpbiBEb2N1bWVudFdvcmtmbG93YWJsZSBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS40IHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjQgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBhbmRyZWFzCiAgICAgICAgOgogICAgICAgIFsxLjRdIAogICAgICAgICAgICBbbWlub3IgY2hhbmdlXSBjb2RlIGZvcm1hdHRpbmcgRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuNCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS40IHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgYW5kcmVhcwogICAgICAgIDoKICAgICAgICBbMS40XSAKICAgICAgICAgICAgVXBkYXRlIGxhc3QgbW9kaWZpY2F0aW9uIGRhdGUgd2hlbiBzb3VyY2Ugbm9kZSBjb250ZW50IGlzIGNoYW5nZWQgRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuNCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS40IHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgYW5kcmVhcwogICAgICAgIDoKICAgICAgICBbMS40XSAKICAgICAgICAgICAgW21pbm9yIGNoYW5nZV0gY29kZSBmb3JtYXR0aW5nIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjQgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuNCB1cGRhdGUKICAgICAgICBieQogICAgICAgIGFuZHJlYXMKICAgICAgICA6CiAgICAgICAgWzEuNF0gCiAgICAgICAgICAgIFJlbW92ZWQgb2Jzb2xldGUgSElTVE9SWV9QQVRIIGF0dHJpYnV0ZSBmcm9tIFdvcmtmbG93TW9kdWxlIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjQgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuNCB1cGRhdGUKICAgICAgICBieQogICAgICAgIGFuZHJlYXMKICAgICAgICA6CiAgICAgICAgWzEuNF0gCiAgICAgICAgICAgIEFsbG93IHRvIHByb3ZpZGUgY3VzdG9tIHJlcXVlc3QgVVJMcyBmb3IgdGVzdHMuIFN0YXJ0aW5nIHRvIGZpeCBXb3JrZmxvd1Rlc3QuIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjQgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuNCB1cGRhdGUKICAgICAgICBieQogICAgICAgIGFuZHJlYXMKICAgICAgICA6CiAgICAgICAgWzEuNF0gCiAgICAgICAgICAgIFdvcmtmbG93TWFuYWdlckltcGwgdGhyb3dzIGV4Y2VwdGlvbiB3aGVuIHNjaGVtYSBjb3VsZCBub3QgYmUgcmVhZCBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS40IHJlbW92ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjQgcmVtb3ZlCiAgICAgICAgYnkKICAgICAgICBhbmRyZWFzCiAgICAgICAgOgogICAgICAgIFsxLjRdIAogICAgICAgICAgICBbbWlub3IgY2hhbmdlXSByZW1vdmVkIGVtcHR5IGRpcmVjdG9yaWVzIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjQgcmVtb3ZlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuNCByZW1vdmUKICAgICAgICBieQogICAgICAgIGFuZHJlYXMKICAgICAgICA6CiAgICAgICAgWzEuNF0gCiAgICAgICAgICAgIFttaW5vciBjaGFuZ2VdIHJlbW92ZWQgZW1wdHkgZGlyZWN0b3J5IERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjQgYWRkPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuNCBhZGQKICAgICAgICBieQogICAgICAgIGFuZHJlYXMKICAgICAgICA6CiAgICAgICAgWzEuNF0gCiAgICAgICAgICAgIEZpeGVkIHNpdGV0cmVlIHRlc3RzIGFuZCBtb3ZlZCB0aGVtIHRvIHRoZSBzaXRldHJlZSBtb2R1bGUuIFJlZmFjdG9yZWQgdGVzdCBidWlsZCBzeXN0ZW0uIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjQgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuNCB1cGRhdGUKICAgICAgICBieQogICAgICAgIGpvc2lhcwogICAgICAgIDoKICAgICAgICBbMS40XSAKICAgICAgICAgICAgYXBwbGllZCBwYXRjaCBieSBK9nJuIE5ldHRpbmdzbWVpZXIgKGRvbid0IGNhY2hlIHRoZSB3ZWxjb21lIHBhZ2Ugc28gbmV3IHB1YmxpY2F0aW9ucyBhcmUgc2hvd24gaW1tZWRpYXRlbHksIGJ1ZyAjMzc4MzYpLiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS40IHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjQgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBhbmRyZWFzCiAgICAgICAgOgogICAgICAgIFsxLjRdIAogICAgICAgICAgICBVc2UgWE1MIGZvcm1hdHRlciBhbmQgZGVkaWNhdGVkIG91dHB1dCBkaXIgZm9yIHRlc3RzLiBUaGlzIGZpeGVzIGJ1ZyAjMzg2OTIuIFRoYW5rcyB0byBTaW1vbiBMaXR3YW4gZm9yIHRoZSBwYXRjaC4gRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuNCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS40IHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgYW5kcmVhcwogICAgICAgIDoKICAgICAgICBbMS40XSAKICAgICAgICAgICAgU3luY2VkIGxvY2FsLmJsb2Nrcy5wcm9wZXJ0aWVzIHdpdGggQ29jb29uIChubyByZWJ1aWxkIG5lY2Vzc2FyeSkgRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuNCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS40IHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgYW5kcmVhcwogICAgICAgIDoKICAgICAgICBbMS40XSAKICAgICAgICAgICAgSW1wbGVtZW50ZWQgRG9jdW1lbnRJZGVudGlmaWVyLnRvU3RyaW5nKCkgRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuNCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS40IHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgYW5kcmVhcwogICAgICAgIDoKICAgICAgICBbMS40XSAKICAgICAgICAgICAgRml4ZWQgc29tZSBtb3JlIHRlc3RzLiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS40IHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjQgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBhbmRyZWFzCiAgICAgICAgOgogICAgICAgIFsxLjRdIAogICAgICAgICAgICBFeGVjdXRlIG1vZHVsZSB0ZXN0cyBpbiB0ZXN0IHRhcmdldCBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS40IHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjQgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBhbmRyZWFzCiAgICAgICAgOgogICAgICAgIFsxLjRdIAogICAgICAgICAgICBGaXhlZCBjb21waWxlIGVycm9yIGluIFdvcmtmbG93VGVzdCwgdXNlIGxvZyBsZXZlbCBmb3IgcmVwb3NpdG9yeSBtb2R1bGUgdGVzdCBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS40IHJlbW92ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjQgcmVtb3ZlCiAgICAgICAgYnkKICAgICAgICBhbmRyZWFzCiAgICAgICAgOgogICAgICAgIFsxLjRdIAogICAgICAgICAgICBSZWZhY3RvcmluZyBvZiB0ZXN0IGJhc2UgY2xhc3Nlcy4gQWRkaW5nIFJlcXVlc3Qgb2JqZWN0IHRvIGNvbnRleHQuIEZpeGVkIGFjY2VzcyBjb250cm9sIHRlc3RzLiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS40IHJlbW92ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjQgcmVtb3ZlCiAgICAgICAgYnkKICAgICAgICBhbmRyZWFzCiAgICAgICAgOgogICAgICAgIFsxLjRdIAogICAgICAgICAgICBSZWZhY3RvcmluZyBvZiB0ZXN0IGJhc2UgY2xhc3Nlcy4gVXNlIGNvcnJlY3QgY2xhc3NwYXRoIGZvciB0ZXN0cy4gRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuNCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS40IHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgYW5kcmVhcwogICAgICAgIDoKICAgICAgICBbMS40XSAKICAgICAgICAgICAgTWFrZSB0ZXN0cyBydW4gYWdhaW4uIFNldHRpbmcgcmVhc29uYWJsZSBjb250ZXh0IGF0dHJpYnV0ZXMgaW4gUHVibGljYXRpb25UZXN0Q2FzZS4gRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuNCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS40IHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgY2hlc3RudXQKICAgICAgICA6CiAgICAgICAgWzEuNF0gCiAgICAgICAgICAgIGFkZGVkIGZhbGxiYWNrIHJlZmVyZW5jZSB0byB4c2x0IERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjQgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuNCB1cGRhdGUKICAgICAgICBieQogICAgICAgIGNoZXN0bnV0CiAgICAgICAgOgogICAgICAgIFsxLjRdIAogICAgICAgICAgICBhbGxvdyBwdWJsaWNhdGlvbnMgdG8gb3ZlcnJpZGUgbW9kdWxlIHNpdGVtYXBzIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjQgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuNCB1cGRhdGUKICAgICAgICBieQogICAgICAgIGNoZXN0bnV0CiAgICAgICAgOgogICAgICAgIFsxLjRdIAogICAgICAgICAgICB0eXBvIGZpeCwgYW5kIFByb2Nlc3NIVE1MRW50aXRpZXMgc2V0IHRvIHRydWUgaW4gY29uZiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS40IHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjQgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBhbmRyZWFzCiAgICAgICAgOgogICAgICAgIFsxLjRdIAogICAgICAgICAgICBBZGRlZCBvcHRpb24gdG8gY29uZmlndXJlIHRlc3QgbG9nIGxldmVsLCBhZGRlZCBtb2NrIGZvciBDb250ZXh0U291cmNlRmFjdG9yeSBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS40IHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjQgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBjaGVzdG51dAogICAgICAgIDoKICAgICAgICBbMS40XSAKICAgICAgICAgICAgZmNrZWRpdG9yIHNlZW1zIHRvIHB1dCBhbGxvdCBvZiAmYW1wO25ic3A7IGluIHRoZSBzb3VyY2Ugd2hpY2ggZG9lc24ndCB2YWxpZGF0ZS4gIEl0IGRpZG4ndCBhcHBlYXIgdGhhdCB0aGlzIHdhcyBzb21ldGhpbmcKY29uZmlndXJhYmxlIGluIHRoZSBmY2tlZGl0b3IuIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjQgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuNCB1cGRhdGUKICAgICAgICBieQogICAgICAgIGFuZHJlYXMKICAgICAgICA6CiAgICAgICAgWzEuNF0gCiAgICAgICAgICAgIFJlbW92ZWQgb2Jzb2xldGUgbW9jayBhbmQgdGVzdCBjbGFzc2VzLCBtYWRlIHRlc3RzIGNvbXBpbGUgYWdhaW4gKGhhZCB0byBjb21tZW50IG91dCBzb21lIHBhcnRzIG9mIHRoZSBjb2RlKSBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS40IHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjQgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBjaGVzdG51dAogICAgICAgIDoKICAgICAgICBbMS40XSAKICAgICAgICAgICAgYWxsb3cgcHVibGljYXRpb25zIHRvIGRlZmluZSB0aGVyZSBvd24gbW9kdWxlIHNpdGVtYXBzLCBhbmQgbW9kdWxlLXJlc291cmNlcy54bWFwIGJ5IHVzaW5nIGZhbGxiYWNrOi8vIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjQgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuNCB1cGRhdGUKICAgICAgICBieQogICAgICAgIGNoZXN0bnV0CiAgICAgICAgOgogICAgICAgIFsxLjRdIAogICAgICAgICAgICBtb3JlIGRlc2NyaXB0aXZlIG5hbWUgKHVzaW5nIG5hbWUgb2YgYSBzaW1pbGFyIHN0eWxlc2hlZXQgdGhhdCB3YXMgcmV0aXJlZCkgIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjQgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuNCB1cGRhdGUKICAgICAgICBieQogICAgICAgIGNoZXN0bnV0CiAgICAgICAgOgogICAgICAgIFsxLjRdIAogICAgICAgICAgICBleHRlcm5hbCBhY2Nlc3MgdG8gcmVzb3VyY2VzIGlzIHN1cHBvcnRlZCB2aWEgbGVueWEueG1hcCwgbW9kdWxlLXJlc291cmNlcy54bWFwLCByZXNvdXJjZXMueG1hcCwgYW5kIHJlc291cmNlcy1zaGFyZWQueG1hcAogIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjQgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuNCB1cGRhdGUKICAgICAgICBieQogICAgICAgIG1pY2hpCiAgICAgICAgOgogICAgICAgIFsxLjRdIAogICAgICAgICAgICBYU0xUIHRyYW5zZm9ybWF0aW9uIGFkZGVkIGZvciB0ZXN0aW5nIHN0eWxlc2hlZXRzIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjQgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuNCB1cGRhdGUKICAgICAgICBieQogICAgICAgIGFuZHJlYXMKICAgICAgICA6CiAgICAgICAgWzEuNF0gCiAgICAgICAgICAgIFVzZSBjb3JyZWN0IGNvY29vbiBwcm9qZWN0IG5hbWUgZm9yIGVjbGlwc2UgY2xhc3NwYXRoIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjQgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuNCB1cGRhdGUKICAgICAgICBieQogICAgICAgIGFuZHJlYXMKICAgICAgICA6CiAgICAgICAgWzEuNF0gCiAgICAgICAgICAgIEFkZGluZyB2ZXJzaW9uIHRvIGVjbGlwc2UgcHJvamVjdCBuYW1lIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjQgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuNCB1cGRhdGUKICAgICAgICBieQogICAgICAgIGFuZHJlYXMKICAgICAgICA6CiAgICAgICAgWzEuNF0gCiAgICAgICAgICAgIFJlYWQgQ29jb29uIGVjbGlwc2UgcHJvamVjdCBuYW1lIGZyb20gLy5wcm9qZWN0IERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjQgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuNCB1cGRhdGUKICAgICAgICBieQogICAgICAgIGFuZHJlYXMKICAgICAgICA6CiAgICAgICAgWzEuNF0gCiAgICAgICAgICAgIEFkZCB0ZXN0IHNvdXJjZXMgdG8gZWNsaXBzZSBwcm9qZWN0IERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjQgYWRkPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuNCBhZGQKICAgICAgICBieQogICAgICAgIGNoZXN0bnV0CiAgICAgICAgOgogICAgICAgIFsxLjRdIAogICAgICAgICAgICBTaW1vbiBMaXR3YW4ncyBGQ0tlZGl0b3IgaW1wbGVtZW50YXRpb24KaW5jbHVkaW5nIGFkZCBpbWFnZWxvb2t1cCBhbmQgbGluayBsb29rCgpUaGFua3MgU2ltb24hIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjQgYWRkPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuNCBhZGQKICAgICAgICBieQogICAgICAgIGNoZXN0bnV0CiAgICAgICAgOgogICAgICAgIFsxLjRdIAogICAgICAgICAgICBTaW1vbiBMaXR3YW4ncyBGQ0tlZGl0b3IgaW1wbGVtZW50YXRpb24KaW5jbHVkaW5nIGFkZCBpbWFnZWxvb2t1cCBhbmQgbGluayBsb29rCgpUaGFua3MgU2ltb24hIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjQgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuNCB1cGRhdGUKICAgICAgICBieQogICAgICAgIGNoZXN0bnV0CiAgICAgICAgOgogICAgICAgIFsxLjRdIAogICAgICAgICAgICBmaXhlcyBmb3Igcm5nIGluY2x1ZGVzLCBhZGRlZCBjb250ZXh0IHByZWZpeCBhbmQgY29yZSByZXNvdXJjZXMgRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuMiB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS4yIHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgZWRpdGgKICAgICAgICA6CiAgICAgICAgWzEuMl0gCiAgICAgICAgICAgIFR3byBzYW1lIG5hbWUgYXR0ciBmb3IgdGhlIGFzc2V0IGxpYnJhcnkgZm9ybTsgcmVtb3ZlIG9uZSBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS40IHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjQgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICB0aG9yc3RlbgogICAgICAgIDoKICAgICAgICBbMS40XSAKICAgICAgICAgICAgRW5oYW5jZWQgdGhlIG1ldGEgZGF0YSBleGFtcGxlIGluIHRoZSBkZWZhdWx0IHB1YiBieSBtYWtpbmcgaXQgbW9yZSBnZW5lcmljIHNpbmNlIHVzZXIgaGFkIHByb2JsZW1zIHRvIGV4dGVuZCBpdC4gUmVwb3J0ZWQgYnkgSi4gTmV0dGluZ3NtZWllci4gRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuNCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS40IHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgYW5kcmVhcwogICAgICAgIDoKICAgICAgICBbMS40XSAKICAgICAgICAgICAgQWRkZWQgdmVyc2lvbmluZyB0ZXN0IGNvZGUsIGZpeGVkIHNvbWUgYnVncyB3aGljaCBwb3BwZWQgdXAgRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuNCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS40IHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgYW5kcmVhcwogICAgICAgIDoKICAgICAgICBbMS40XSAKICAgICAgICAgICAgT2JqZWN0LUpDUi1tYXBwaW5nOiBzZXQgb25QYXJlbnRWZXJzaW9uPUNPUFkgZm9yIG1hcHBpbmcgcHJvcGVydHkgRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuNCByZW1vdmU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS40IHJlbW92ZQogICAgICAgIGJ5CiAgICAgICAgam9zaWFzCiAgICAgICAgOgogICAgICAgIFsxLjRdIAogICAgICAgICAgICBhbHdheXMgdXNlIHRoZSBqYXZhIHVzZWNhc2UgZm9yIGluZGV4aW5nIGZvciBjb25zaXN0ZW5jeSByZWFzb25zLiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS40IHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjQgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBhbmRyZWFzCiAgICAgICAgOgogICAgICAgIFsxLjRdIAogICAgICAgICAgICBGaXhlZCBidWcgLSZndDsgdGhyb3cgZXhjZXB0aW9uIHdoZW4gcHVibGljYXRpb24gYWxyZWFkeSBleGlzdHMsIGFkZGVkIGNvcnJlc3BvbmRpbmcgdGVzdCBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS40IHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjQgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBhbmRyZWFzCiAgICAgICAgOgogICAgICAgIFsxLjRdIAogICAgICAgICAgICBTdG9wIHJlcG8gdGVzdCBvbiBlcnJvci9mYWlsdXJlIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjQgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuNCB1cGRhdGUKICAgICAgICBieQogICAgICAgIGFuZHJlYXMKICAgICAgICA6CiAgICAgICAgWzEuNF0gCiAgICAgICAgICAgIFNhdmluZyBKQ1Igc2Vzc2lvbiBhZnRlciBjcmVhdGluZyB0cmFuc2xhdGlvbiBub2RlIChoYXMgdG8gYmUgY29udGludWVkIGZvciBvdGhlciBvcGVyYXRpb25zKS4gV2l0aG91dCB0aGlzLCB2ZXJzaW9uaW5nIGlzIG5vdCBwb3NzaWJsZS4gRm9yIHRyYW5zYWN0aW9ucywgdGhlIHRyYW5zYWN0aW9uIGNhcGFiaWxpdGllcyBvZiBKQ1IgaGF2ZSB0byBiZSB1c2VkLiBTcGxpdHRpbmcgdGhlIHRlc3QgdXAgaW50byBzaW5nbGUgdGVzdHMuIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjQgcmVtb3ZlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuNCByZW1vdmUKICAgICAgICBieQogICAgICAgIGpvc2lhcwogICAgICAgIDoKICAgICAgICBbMS40XSAKICAgICAgICAgICAgYWRhcHRlZCBob21lcGFnZSBhbmQgbGlua3MgZG9jdHlwZSB0byBuZXcgbHVjZW5lIGluZGV4IGdlbmVyYXRpb24gRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuNCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS40IHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgam9zaWFzCiAgICAgICAgOgogICAgICAgIFsxLjRdIAogICAgICAgICAgICByZWZhY3RvcmVkIGx1Y2VuZSBpbmRleCBnZW5lcmF0aW9uOiBub3cgZWFjaCByZXNvdXJjZSB0eXBlIHdoaWNoIHN1cHBvcnRzIGluZGV4aW5nIG11c3QgZGVjbGFyZSB0aGUgZm9ybWF0ICdsdWNlbmVJbmRleCcgaW4gaXRzIGNvbmZpZ3VyYXRpb24uIFRoaXMgZm9ybWF0IGNvbnRhaW5zIGEgbnVtYmVyIG9mIGx1Y2VuZTpmaWVsZCBlbGVtZW50cyB3aGljaCBzaG91bGQgY29udGFpbiB0aGUgcmVsZXZhbnQgaW5mb3JtYXRpb24gYWJvdXQgdGhlIGRvY3VtZW50IHdoaWNoIHdpbGwgYmUgaW5kZXhlZC4gRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuNCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS40IHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgYW5kcmVhcwogICAgICAgIDoKICAgICAgICBbMS40XSAKICAgICAgICAgICAgTWlncmF0ZTE0IGltcG9ydHMgTGVueWEgYW5kIER1YmxpbkNvcmUgbWV0YSBkYXRhIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjQgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuNCB1cGRhdGUKICAgICAgICBieQogICAgICAgIGFuZHJlYXMKICAgICAgICA6CiAgICAgICAgWzEuNF0gCiAgICAgICAgICAgIExvZ2luIHRvIHJlcG9zaXRvcnkgd2l0aCB1c2VyIG5hbWUuIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjQgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuNCB1cGRhdGUKICAgICAgICBieQogICAgICAgIHRob3JzdGVuCiAgICAgICAgOgogICAgICAgIFsxLjRdIAogICAgICAgICAgICBFbmFibGVkIHRvIHNhdmUgY3VzdG9tIG1ldGEgZGF0YSBpbiB0aGUgc2l0ZS5jcmVhdGUgdXNlY2FzZSBhbmQgYWRkZWQgYW4gZXhhbXBsZSB0byB0aGUgZGVmYXVsdCBwdWIuIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjQgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuNCB1cGRhdGUKICAgICAgICBieQogICAgICAgIHRob3JzdGVuCiAgICAgICAgOgogICAgICAgIFsxLjRdIAogICAgICAgICAgICBFbmhhbmNlZCBtZXRhZGF0YSB1c2VjYXNlIHBlcmZvcm1hbmNlIGJ5IGFkZGluZyBjaGVjayB3aGV0aGVyIHdlIHJlYWxseSBuZWVkIHRvIHNhdmUgdGhlIG1ldGEgZGF0YS4gRnVydGhlciB1c2luZyBiZXR0ZXIgbmFtaW5nIGZvciAncHVibGljIHN0YXRpYyBmaW5hbCBTdHJpbmcncyB0byBlbmhhbmNlIHJlLXVzYWJpbGl0eS4gRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IERvY3MgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPkRvY3MgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICB0aG9yc3RlbgogICAgICAgIDoKICAgICAgICBbRG9jc10gCiAgICAgICAgICAgIEZpbmlzaGVkIGZpcnN0IHZlcnNpb24gb2YgdGhlIG1ldGEgZGF0YSBkb2N1bWVudGF0aW9uLiBGZWVsIGZyZWUgdG8gZ2l2ZSBmZWVkYmFjayBhbmQgc2VuZCBkb2N1IHBhdGNoZXMuIDstKSBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS40IGFkZDwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjQgYWRkCiAgICAgICAgYnkKICAgICAgICB0aG9yc3RlbgogICAgICAgIDoKICAgICAgICBbMS40XSAKICAgICAgICAgICAgUmVtb3ZpbmcgY3VzdG9tIG1ldGEgZGF0YSBzcGVjaWZpYyBjb2RlIGZyb20gdGhlIGNvcmUgdG8gdGhlIGRlZmF1bHQgcHViLCBzaW5jZSBpdCBpcyBqdXN0IGFuIGV4YW1wbGUgc28gZmFyLiA7LSkgRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuMiB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS4yIHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgam9zaWFzCiAgICAgICAgOgogICAgICAgIFsxLjJdIAogICAgICAgICAgICBmaXhlZCBhbmQgc2ltcGxpZmllZCBjb3B5aW5nIG9mIHNjcmlwdCBlbGVtZW50czogbm93IHdvcmtzIHdpdGggbXVsdGlwbGUgc2NyaXB0IGVsZW1lbnRzLiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS40IGFkZDwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjQgYWRkCiAgICAgICAgYnkKICAgICAgICBhbmRyZWFzCiAgICAgICAgOgogICAgICAgIFsxLjRdIAogICAgICAgICAgICBBZGRlZCBhZGFwdGVyIGNsYXNzZXMgZnJvbSB0aGUgZXhpc3RpbmcgcmVwbyBpbXBsZW1lbnRhdGlvbiB0byB0aGUgbmV3IHJlcG8gZHJhZnQgQVBJIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjQgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuNCB1cGRhdGUKICAgICAgICBieQogICAgICAgIGFuZHJlYXMKICAgICAgICA6CiAgICAgICAgWzEuNF0gCiAgICAgICAgICAgIFJlbmFtZWQgSkNSUmVwb3NpdG9yeVRlc3QgdG8gUmVwb3NpdG9yeVRlc3QsIHNpbmNlIGl0J3Mgbm90IHJlbGF0ZWQgdG8gSkNSIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjQgYWRkPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuNCBhZGQKICAgICAgICBieQogICAgICAgIGFuZHJlYXMKICAgICAgICA6CiAgICAgICAgWzEuNF0gCiAgICAgICAgICAgIE1vdmVkIHJlcG9zaXRvcnkgdGVzdCBmcm9tIGpjciB0byByZXBvIHBhY2thZ2UsIHNpbmNlIGl0IGRvZXNuJ3QgcmVseSBvbiBKQ1IuIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjQgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuNCB1cGRhdGUKICAgICAgICBieQogICAgICAgIGFuZHJlYXMKICAgICAgICA6CiAgICAgICAgWzEuNF0gCiAgICAgICAgICAgIEZpeGVkIHNvbWUgYnVncyBpbiBKQ1ItYmFzZWQgcmVwbyBpbXBsZW1lbnRhdGlvbiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS40IHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjQgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBjaGVzdG51dAogICAgICAgIDoKICAgICAgICBbMS40XSAKICAgICAgICAgICAgcmVtb3ZhbCBvZiBmYWxsYmFjazovLyBmcm9tIGV4dGVybmFsIHJlbGF4bmcgc2NoZW1hcywgCndoaWxlIHN0aWxsIHV0aWxpemluZyBmYWxsYmFjayBmdW5jdGlvbmFsaXR5IGJ5IHNwZWNpZnlpbmcgCnRoZSBwdWJsaWNhdGlvbiB0aGUgc2NoZW1hIGlzIGJlaW5nIHVzZWQgaW4gRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuNCBhZGQ8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS40IGFkZAogICAgICAgIGJ5CiAgICAgICAgY2hlc3RudXQKICAgICAgICA6CiAgICAgICAgWzEuNF0gCiAgICAgICAgICAgIHJlbW92YWwgb2YgZmFsbGJhY2s6Ly8gZnJvbSBleHRlcm5hbCByZWxheG5nIHNjaGVtYXMsIAp3aGlsZSBzdGlsbCB1dGlsaXppbmcgZmFsbGJhY2sgZnVuY3Rpb25hbGl0eSBieSBzcGVjaWZ5aW5nIAp0aGUgcHVibGljYXRpb24gdGhlIHNjaGVtYSBpcyBiZWluZyB1c2VkIGluIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCBEb2NzIGFkZDwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj5Eb2NzIGFkZAogICAgICAgIGJ5CiAgICAgICAgdGhvcnN0ZW4KICAgICAgICA6CiAgICAgICAgW0RvY3NdIAogICAgICAgICAgICBGaXJzdCB2ZXJzaW9uIG9mIHRoZSBtZXRhIGRhdGEgZG9jdW1lbnRhdGlvbiBpbiAxLjQueC4gRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuNCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS40IHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgdGhvcnN0ZW4KICAgICAgICA6CiAgICAgICAgWzEuNF0gCiAgICAgICAgICAgIGZpeGVkIHR5cG8gRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuNCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS40IHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgdGhvcnN0ZW4KICAgICAgICA6CiAgICAgICAgWzEuNF0gCiAgICAgICAgICAgIEFkZGVkIGFiaWxpdHkgdG8gZWRpdCBjdXN0b20gbWV0YWRhdGEgYW5kIGFkZGVkIGEgc21hbGwgZXhhbXBsZSBvZiBpdCB0byB0aGUgaW5kZXggcGFnZS4gRml4ZWQgYnVnIGluIHRoZSBzYXZlKCkgbWV0aG9kIHRoYXQgd2FzIGNhdXNpbmcgYW4gZXhjZXB0aW9uIGZvciBub25GaXhlZEVsZW1lbnROYW1lcy4gIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjQgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuNCB1cGRhdGUKICAgICAgICBieQogICAgICAgIHRob3JzdGVuCiAgICAgICAgOgogICAgICAgIFsxLjRdIAogICAgICAgICAgICBmb3JtYXRpbmcgY2hhbmdlcyBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS40IHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjQgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBqb3NpYXMKICAgICAgICA6CiAgICAgICAgWzEuNF0gCiAgICAgICAgICAgIHVzZSBhbiBlbXB0eSBsaW5rIGF0dHJpYnV0ZSBhcyBkZWZhdWx0LCBhbmQgcmV3cml0ZSBpdCB1c2luZyB0aGUgYWN0dWFsIGxpbmsuIGFsc28gYWRkZWQgbWlzc2luZyAvZW50cmllcyBhcyBwYXJ0IG9mIHRoZSB1cmwuIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjQgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuNCB1cGRhdGUKICAgICAgICBieQogICAgICAgIGpvc2lhcwogICAgICAgIDoKICAgICAgICBbMS40XSAKICAgICAgICAgICAgcmVtb3ZlZCByc3MgbmFtZXNwYWNlIGFjY29yZGluZyB0byBzcGVjaWZpY2F0aW9uLCBzZWUgaHR0cDovL2Jsb2dzLmxhdy5oYXJ2YXJkLmVkdS90ZWNoL3JzcyBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS40IHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjQgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICB0aG9yc3RlbgogICAgICAgIDoKICAgICAgICBbMS40XSAKICAgICAgICAgICAgVXNpbmcgcHJlZml4ZWQgbmFtZXMgZm9yIHRoZSBtZXRhZGF0YSB0byBwcmV2ZW50IGNsYXNoZXMgaW4gbmFtaW5nIGZyb20gZGMgYW5kIGN1c3RvbSBtZXRhZGF0YSBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS40IHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjQgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICB0aG9yc3RlbgogICAgICAgIDoKICAgICAgICBbMS40XSAKICAgICAgICAgICAgZm9ybWF0aW5nIGNoYW5nZXMgRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuNCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS40IHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgam9zaWFzCiAgICAgICAgOgogICAgICAgIFsxLjRdIAogICAgICAgICAgICBmaXhlZCBidWc6IGlmIGEgbm9kZSdzIGlkIHN0YXJ0cyB3aXRoIHRoZSBpZCBvZiBvbmUgb2YgaXRzIHNpYmxpbmdzLCBpdCB3YXMgbm90IGhpZ2hsaWdodGVkIGluIHRoZSB0cmVlIG9mIHRoZSBzaXRlIGFyZWEuIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjIgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuMiB1cGRhdGUKICAgICAgICBieQogICAgICAgIGpvc2lhcwogICAgICAgIDoKICAgICAgICBbMS4yXSAKICAgICAgICAgICAgZml4ZWQgYnVnOiBpZiBhIG5vZGUncyBpZCBzdGFydHMgd2l0aCB0aGUgaWQgb2Ygb25lIG9mIGl0cyBzaWJsaW5ncywgaXQgd2FzIG5vdCBoaWdobGlnaHRlZCBpbiB0aGUgdHJlZSBvZiB0aGUgc2l0ZSBhcmVhLiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgRG9jcyB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+RG9jcyB1cGRhdGUKICAgICAgICBieQogICAgICAgIGFuZHJlYXMKICAgICAgICA6CiAgICAgICAgW0RvY3NdIAogICAgICAgICAgICBBZGRlZCBub3RlIHRoYXQgZ2Vyb25pbW8gbGlicmFyaWVzIGludGVyZmVyZSB3aXRoIG5vdGlmaWNhdGlvbiBtYWlscyBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS40IHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjQgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBjaGVzdG51dAogICAgICAgIDoKICAgICAgICBbMS40XSAKICAgICAgICAgICAgY2hhbmdlZCBvdXRkYXRlZCBjb2Nvb246Ly9jb3JlL21vZHVsZXMgcmVmZXJlbmNlIHRvIGNvY29vbjovL21vZHVsZXMgYW5kIGFkZGVkIGEgc2l0ZW1hcCB0byBoYW5kbGUgdGhlIG1lc3NhZ2UueG1sIHJlcXVlc3QuIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjQgYWRkPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuNCBhZGQKICAgICAgICBieQogICAgICAgIGFuZHJlYXMKICAgICAgICA6CiAgICAgICAgWzEuNF0gCiAgICAgICAgICAgIEFkZGVkIEphY2tyYWJiaXRSZXBvc2l0b3J5LiBUaGlzIGlzIG5lY2Nlc3NhcnkgdG8gcmVtb3ZlIGphY2tyYWJiaXQgcmVmZXJlbmNlcyBmcm9tIHRoZSBqY3IgbW9kdWxlLiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS40IHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjQgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBjaGVzdG51dAogICAgICAgIDoKICAgICAgICBbMS40XSAKICAgICAgICAgICAgYWRkZWQgYWJsaXR5IHRvIGNhbGwgbW9kdWxlIHJlc291cmNlcyB3aGlsZSBzcGVjaWZ5aW5nIHRoZSBwdWJsaWNhdGlvbiBpZAoKTm93IG1vZHVsZSByZXNvdXJjZXMgYW5kIHNpdGVtYXAgY2FuIGJlIHJlZmVyZW5jZWQgdmlhOgpodHRwOi8vbG9jYWxob3N0Ojg4ODgvbW9kdWxlcy97bW9kdWxlLWlkfS8uLi4Kb3IKaHR0cDovL2xvY2FsaG9zdDo4ODg4L3twdWJsaWNhdGlvbi1pZH0vbW9kdWxlcy97bW9kdWxlLWlkfS8uLi4KCkJvdGggd2lsbCByZXR1cm4gdGhlIHNhbWUgdGhpbmcgaWYgYWNjZXNzZWQgYXMgYW4gaW50ZXJuYWwgcmVxdWVzdC4KRm9yIGV4dGVybmFsIHJlcXVlc3RzIHRoZSBmaXJzdCB3aWxsIGFsd2F5cyByZXR1cm4gY29yZSByZXNvdXJjZXMsIHdoaWxlIHRoZSBzZWNvbmQgCndpbGwgYmUgYWJsZSB0byB1dGlsaXplIHRoZSBmYWxsYmFjayBjYXBhYmlsaXR5IG9mIG1vZHVsZS1yZXNvdXJjZXMueG1hcCBvciB7bW9kdWxlLWlkfS9zaXRlbWFwLnhtYXAuIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjQgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuNCB1cGRhdGUKICAgICAgICBieQogICAgICAgIGFuZHJlYXMKICAgICAgICA6CiAgICAgICAgWzEuNF0gCiAgICAgICAgICAgIFJlbW92ZSByZWZlcmVuY2VzIHRvIGphY2tyYWJiaXQgZnJvbSBqY3IgbW9kdWxlLiBTaHV0IGRvd24gcmVwb3NpdG9yeSBwcm9wZXJseSBhZnRlciB0ZXN0IGlzIGNvbXBsZXRlZC4gRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuNCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS40IHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgYW5kcmVhcwogICAgICAgIDoKICAgICAgICBbMS40XSAKICAgICAgICAgICAgUmVwbGFjZSBBc3NldFR5cGVSZWdpc3RyeSB3aXRoIEFzc2V0VHlwZVJlc29sdmVyIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjQgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuNCB1cGRhdGUKICAgICAgICBieQogICAgICAgIGFuZHJlYXMKICAgICAgICA6CiAgICAgICAgWzEuNF0gCiAgICAgICAgICAgIFVzZSBKQ1JSZXBvc2l0b3J5LklOVEVSTkFMX1dPUktTUEFDRSBmb3IgaW50ZXJuYWwgcHVibGljYXRpb24gZGF0YSBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS40IGFkZDwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjQgYWRkCiAgICAgICAgYnkKICAgICAgICBhbmRyZWFzCiAgICAgICAgOgogICAgICAgIFsxLjRdIAogICAgICAgICAgICBTdG9yZSBtZXRhIGRhdGEgcmVnaXN0cnkgZGF0YSBpbiBKQ1IgcmVwb3NpdG9yeSBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS40IHJlbW92ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjQgcmVtb3ZlCiAgICAgICAgYnkKICAgICAgICBqb3NpYXMKICAgICAgICA6CiAgICAgICAgWzEuNF0gCiAgICAgICAgICAgIHRoaXMgZmlsZSBpcyBub3QgbmVjZXNzYXJ5IGJlY2F1c2UgdGhlIGx1Y2VuZSBtb2R1bGUgYWxyZWFkeSBhZGRzIHRoZSBpbmRleF9tYW5hZ2VyIHRvIGNvY29vbi54Y29uZiAoc2VlIHNyYy9tb2R1bGVzL2x1Y2VuZS9jb25maWcvY29jb29uLXhjb25mL2luZGV4X21hbmFnZXIueGNvbmYpIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjQgYWRkPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuNCBhZGQKICAgICAgICBieQogICAgICAgIGpvc2lhcwogICAgICAgIDoKICAgICAgICBbMS40XSAKICAgICAgICAgICAgYWRkZWQgaW5wdXQgbW9kdWxlIHRvIGdldCB0aGUgcGF0aCBvZiB0aGUgbHVjZW5lIHNlYXJjaCBpbmRleCwgaW5zdGVhZCBvZiBoYXJkY29kaW5nIGl0IGluIHRoZSBzaXRlbWFwIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjQgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuNCB1cGRhdGUKICAgICAgICBieQogICAgICAgIGpvc2lhcwogICAgICAgIDoKICAgICAgICBbMS40XSAKICAgICAgICAgICAgYWxsb3cgcmVsYXRpdiBwYXRocyBmb3IgdGhlIHNlYXJjaCBpbmRleCB0byBtYWtlIGl0IHBvc3NpYmxlIHRvIG1vdmUgYSBwdWJsaWNhdGlvbiBhcm91bmQuIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjQgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuNCB1cGRhdGUKICAgICAgICBieQogICAgICAgIGFuZHJlYXMKICAgICAgICA6CiAgICAgICAgWzEuNF0gCiAgICAgICAgICAgIE1vdmVkIHJlcG9zaXRvcnkgZHJhZnQgYW5kIHJlbGF0ZWQgY2xhc3NlcyB0byByZXBvc2l0b3J5IG1vZHVsZSBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS40IHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjQgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBhbmRyZWFzCiAgICAgICAgOgogICAgICAgIFsxLjRdIAogICAgICAgICAgICBBZGRlZCBtZXRob2QgVVJMVXRpbC5nZXRXZWJhcHBVUkwoKSwgdmFyaW91cyBidWdmaXhlcyBpbiBKQ1ItYmFzZWQgcmVwbyBpbXBsZW1lbnRhdGlvbiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS40IGFkZDwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjQgYWRkCiAgICAgICAgYnkKICAgICAgICBhbmRyZWFzCiAgICAgICAgOgogICAgICAgIFsxLjRdIAogICAgICAgICAgICBBZGRlZCBVUkwgaGFuZGxpbmcgY2FwYWJpbGl0aWVzIGZvciBuZXcgcmVwbyBpbXBsZW1lbnRhdGlvbiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS40IHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjQgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBhbmRyZWFzCiAgICAgICAgOgogICAgICAgIFsxLjRdIAogICAgICAgICAgICBFbGVtZW50U2V0LmdldEVsZW1lbnQoKTogdGhyb3cgZXhjZXB0aW9uIGlmIG5hbWUgaXMgbm90IGRlZmluZWQgRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuNCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS40IHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgYW5kcmVhcwogICAgICAgIDoKICAgICAgICBbMS40XSAKICAgICAgICAgICAgU2l0ZVByb3h5LmdldE5vZGUoKTogVGhyb3cgZXhjZXB0aW9uIGlmIHNpdGUgbm9kZSBwYXRoIGlzIG5vdCBhYnNvbHV0ZSBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS40IHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjQgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBhbmRyZWFzCiAgICAgICAgOgogICAgICAgIFsxLjRdIAogICAgICAgICAgICBbbWlub3IgY2hhbmdlXSBhZGRlZCBkb2NzIHRoYXQgc2l0ZSBub2RlIHBhdGggbXVzdCBiZSBhYnNvbHV0ZSBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS40IHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjQgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBhbmRyZWFzCiAgICAgICAgOgogICAgICAgIFsxLjRdIAogICAgICAgICAgICBTZXQgamNyU2Vzc2lvbiBmaWVsZCBpbiBSZXBvc2l0b3J5RmFjYWRlIGNvbnN0cnVjdG9yIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjQgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuNCB1cGRhdGUKICAgICAgICBieQogICAgICAgIGFuZHJlYXMKICAgICAgICA6CiAgICAgICAgWzEuNF0gCiAgICAgICAgICAgIFJldHVybiBjb3JyZWN0IGFyZWEgSUQgKEpDUiB3b3Jrc3BhY2UgbmFtZSkgRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuNCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS40IHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgYW5kcmVhcwogICAgICAgIDoKICAgICAgICBbMS40XSAKICAgICAgICAgICAgQWRkZWQgbWV0aG9kcyB0byBvYnRhaW4gcmVwb3NpdG9yeSBzZXNzaW9uIGZyb20gcHVibGljYXRpb24gYW5kIHJlcG9zaXRvcnkgZnJvbSBzZXNzaW9uIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjQgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuNCB1cGRhdGUKICAgICAgICBieQogICAgICAgIGFuZHJlYXMKICAgICAgICA6CiAgICAgICAgWzEuNF0gCiAgICAgICAgICAgIFttaW5vciBjaGFuZ2VdIHJlbW92ZWQgdW51c2VkIGltcG9ydHMgRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuNCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS40IHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgYW5kcmVhcwogICAgICAgIDoKICAgICAgICBbMS40XSAKICAgICAgICAgICAgTW92ZWQgbWV0aG9kIGlzVmFsaWREb2N1bWVudE5hbWUoKSBmcm9tIERvY3VtZW50TWFuYWdlciB0byBEb2N1bWVudEJ1aWxkZXIuIEFsbG93IGRhc2hlcyBpbiBkb2N1bWVudCBuYW1lIGluIERlZmF1bHREb2N1bWVudEJ1aWxkZXIuIFRoaXMgZml4ZXMgYnVnICMzODEyNy4gVGhhbmtzIGZvciB0aGUgcGF0Y2ggYnkgUmVuYXVkIFJpY2hhcmRldC4gRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuNCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS40IHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgY2hlc3RudXQKICAgICAgICA6CiAgICAgICAgWzEuNF0gCiAgICAgICAgICAgIGdldHMgQUMgQXV0aCBhbmQgQUMgTGl2ZSB0YWJzIHdvcmtpbmcgRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuNCByZW1vdmU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS40IHJlbW92ZQogICAgICAgIGJ5CiAgICAgICAgY2hlc3RudXQKICAgICAgICA6CiAgICAgICAgWzEuNF0gCiAgICAgICAgICAgIHVwZGF0ZWQgbW9kdWxlIHVybHMgRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuNCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS40IHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgY2hlc3RudXQKICAgICAgICA6CiAgICAgICAgWzEuNF0gCiAgICAgICAgICAgIG5lZWQgdG8gZW5zdXJlIHRoYXQgaGVpZ2h0IGFuZCB3aWR0aCBhdHRyaWJ1dGVzIGFyZSBwcmVzZW50IHRvIHVzZSB0aGlzIG1vZHVsZSwgb3RoZXJ3aXNlIG9yZy5hcGFjaGUuYmF0aWsuYnJpZGdlLkJyaWRnZUV4Y2VwdGlvbnMgRXJyb3JzIGFyZSBwcm9kdWNlZCBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS40IHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjQgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBhbmRyZWFzCiAgICAgICAgOgogICAgICAgIFsxLjRdIAogICAgICAgICAgICBSZW5hbWVkIEpDUiBub2RlIHR5cGVzIGFuZCBuYW1lcywgYWxsb3cgUHVibGljYXRpb24gYW5kIEFzc2V0IHRvIGhhdmUgbWV0YSBkYXRhIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjQgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuNCB1cGRhdGUKICAgICAgICBieQogICAgICAgIGFuZHJlYXMKICAgICAgICA6CiAgICAgICAgWzEuNF0gCiAgICAgICAgICAgIEV4dGVuZGVkIHJlcG9zaXRvcnkgQVBJIChhZGRlZCBzb21lIG1ldGhvZHMpIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjQgYWRkPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuNCBhZGQKICAgICAgICBieQogICAgICAgIGFuZHJlYXMKICAgICAgICA6CiAgICAgICAgWzEuNF0gCiAgICAgICAgICAgIFJlbmFtZWQgcmVwbyBBUEkgY2xhc3NlcywgcHJvdmlkZSBtaW1lLXR5cGUgd2hlbiBhZGRpbmcgdHJhbnNsYXRpb25zIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjQgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuNCB1cGRhdGUKICAgICAgICBieQogICAgICAgIGpvc2lhcwogICAgICAgIDoKICAgICAgICBbMS40XSAKICAgICAgICAgICAgZml4ZWQgdHlwbyBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS40IHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjQgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBqb3NpYXMKICAgICAgICA6CiAgICAgICAgWzEuNF0gCiAgICAgICAgICAgIGFkZGVkIGNvbnRleHRwcmVmaXggdG8gc2NoZW1hIGluY2x1ZGUuIG1ha2VzIGJ4ZSB3b3JrIG9uIHRvbWNhdCBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS40IHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjQgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBhbmRyZWFzCiAgICAgICAgOgogICAgICAgIFsxLjRdIAogICAgICAgICAgICBVcGRhdGVkIGNvY29vbjovL2NvcmUvbW9kdWxlcy8uLi4gVVJMcyB0byBjb2Nvb246Ly9tb2R1bGVzLy4uLiBVUkxzLiBUaGlzIGlzIG1lYW50IHRvIGZpeCBidWcgIzM4NTA2LCBubyBpZGVhIGlmIGl0IGlzIGZpbmlzaGVkIHlldC4gRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuNCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS40IHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgYW5kcmVhcwogICAgICAgIDoKICAgICAgICBbMS40XSAKICAgICAgICAgICAgW21pbm9yIGNoYW5nZV0gY2hhbmdlZCBleGNsdWRlLXByZWZpeCB0byBleGNsdWRlLXJlc3VsdC1wcmVmaXhlcyBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS40IHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjQgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBjaGVzdG51dAogICAgICAgIDoKICAgICAgICBbMS40XSAKICAgICAgICAgICAgZml0IGVkaXRvciB0byBzY3JlZW4sIHVzZSBwYWdlLmNzcyBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgRG9jcyBhZGQ8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+RG9jcyBhZGQKICAgICAgICBieQogICAgICAgIHRob3JzdGVuCiAgICAgICAgOgogICAgICAgIFtEb2NzXSAKICAgICAgICAgICAgQWRkZWQgZm9ycmVzdGJvdCBjb25maWd1cmF0aW9uIGZvciBvdXIgZG9jdW1lbnRhdGlvbi4gVGhpcyBlYXNpZXN0IHRoZSBkZXBsb3ltZW50IG9mIG91ciB3ZWJzaXRlIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCBTaXRlIGFkZDwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj5TaXRlIGFkZAogICAgICAgIGJ5CiAgICAgICAgdGhvcnN0ZW4KICAgICAgICA6CiAgICAgICAgW1NpdGVdIAogICAgICAgICAgICBVcGRhdGVkIGFuZCBkZXBsb3llZCBhcGlkb2NzIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCBTaXRlIGFkZDwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj5TaXRlIGFkZAogICAgICAgIGJ5CiAgICAgICAgdGhvcnN0ZW4KICAgICAgICA6CiAgICAgICAgW1NpdGVdIAogICAgICAgICAgICBBdXRvbWF0aWMgcHVibGlzaCBmcm9tIGZvcnJlc3Rib3QgRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IFNpdGUgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPlNpdGUgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICB0aG9yc3RlbgogICAgICAgIDoKICAgICAgICBbU2l0ZV0gCiAgICAgICAgICAgIFdlYnNpdGUgdXBkYXRlIGJ5IGZvcnJlc3Rib3QgRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IERvY3MgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPkRvY3MgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICB0aG9yc3RlbgogICAgICAgIDoKICAgICAgICBbRG9jc10gCiAgICAgICAgICAgIFdlYnNpdGUgdXBkYXRlIGJ5IGZvcnJlc3Rib3QgRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IFpvbmUgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPlpvbmUgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICB0aG9yc3RlbgogICAgICAgIDoKICAgICAgICBbWm9uZV0gCiAgICAgICAgICAgIFJlbW92aW5nIHRoZSBjb2Nvb24gYnVpbGQgZGlyIGJlZm9yZSBidWlsZGluZyBsZW55YSB0aGlzIGxldCBsZW55YSBidWlsZCBjb2Nvb24gYWdhaW4uIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCBab25lIHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj5ab25lIHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgdGhvcnN0ZW4KICAgICAgICA6CiAgICAgICAgW1pvbmVdIAogICAgICAgICAgICBmaXhpbmcgY29uZGl0aW9uIG1hdGNoaW5nIGZvciBub3RpZmljYXRpb24gYW5kIGFkZGVkIHRvIHJlbW92ZSBsb2NhbC5iKiBwcm9wZXJ0aWVzIGZvciB0cnVuay4gRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IFpvbmUgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPlpvbmUgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICB0aG9yc3RlbgogICAgICAgIDoKICAgICAgICBbWm9uZV0gCiAgICAgICAgICAgIGZpeGluZyBjaGVjayBjb25kaXRpb25zIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCBab25lIHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj5ab25lIHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgdGhvcnN0ZW4KICAgICAgICA6CiAgICAgICAgW1pvbmVdIAogICAgICAgICAgICBBY3RpdmF0aW5nIG5vdGlmaWNhdGlvbiB3aGVuIGJ1aWxkIGZhaWxzIGZvciB0aGUgYnJhbmNoIGFzIHdlbGwuIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCBab25lIHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj5ab25lIHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgdGhvcnN0ZW4KICAgICAgICA6CiAgICAgICAgW1pvbmVdIAogICAgICAgICAgICBGaXhpbmcgd2ViIGxvZ2ZpbGUgbG9jYXRpb24gRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IFpvbmUgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPlpvbmUgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICB0aG9yc3RlbgogICAgICAgIDoKICAgICAgICBbWm9uZV0gCiAgICAgICAgICAgIEFjdGl2YXRpbmcgbm90aWZpY2F0aW9uIHdoZW4gYnVpbGQgZmFpbHMgRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IFpvbmUgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPlpvbmUgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICB0aG9yc3RlbgogICAgICAgIDoKICAgICAgICBbWm9uZV0gCiAgICAgICAgICAgIEFkZGluZyBzdGF0dXMgdG8gdGhlIGxvZyBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgWm9uZSB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+Wm9uZSB1cGRhdGUKICAgICAgICBieQogICAgICAgIHRob3JzdGVuCiAgICAgICAgOgogICAgICAgIFtab25lXSAKICAgICAgICAgICAgQWRkaW5nIGVuaGFuY2VkIGVycm9yIGhhbmRsaW5nIHRocm91Z2ggbm90aWZpY2F0aW9uIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjQgYWRkPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuNCBhZGQKICAgICAgICBieQogICAgICAgIGpvc2lhcwogICAgICAgIDoKICAgICAgICBbMS40XSAKICAgICAgICAgICAgcmVmYWN0b3JlZCBzaXRldHJlZSBzY3JpcHQ6IG5vdyBpdCBhbHdheXMgdXNlcyBhc3luY2hyb25vdXMgcmVxdWVzdHMgYW5kIGl0IHNob3VsZCBiZSBlYXNpZXIgdG8gZXh0ZW5kLiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS40IGFkZDwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjQgYWRkCiAgICAgICAgYnkKICAgICAgICBjaGVzdG51dAogICAgICAgIDoKICAgICAgICBbMS40XSAKICAgICAgICAgICAgT25lIEZvcm0gRWRpdG9yIE1vZHVsZQotU2ltcGx5IHVzZXMgdGhlIE9uZSBGb3JtIEVkaXRvciB1c2VjYXNlCi1Zb3UgbmVlZCB0byBhZGQgdGhlIEZDS2VkaXRvciBkaXJlY3RvcnkgdG8gdGhlIHJlc291cmNlcyBkaXJlY3RvcnkgZHVlIHRvIGxpY2Vuc2UKLUkgaGF2ZSBvbmx5IHRlc3RlZCB0aGUgYWJpbGl0eSB0byBvcGVuLCBzbGlnaHQgZWRpdCwgYW5kIHNhdmUgb2YgdGhlIHR1dG9yaWFsIHBhZ2Ugb2YgdGhlIGRlZmF1bHQgcHViIChpdCB3b3JrZWQgOikgKQotaHR0cDovL2xvY2FsaG9zdDo4ODg4L2RlZmF1bHQvYXV0aG9yaW5nL3R1dG9yaWFsLmh0bWw/bGVueWEudXNlY2FzZT1lZGl0LmZja2VkaXRvciBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgRG9jcyB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+RG9jcyB1cGRhdGUKICAgICAgICBieQogICAgICAgIGFuZHJlYXMKICAgICAgICA6CiAgICAgICAgW0RvY3NdIAogICAgICAgICAgICBBZGRlZCBvcHRpb24gdG8gdXNlIGFyYml0cmFyeSB1c2VjYXNlIHZpZXdzIHRvIGRvY3VtZW50YXRpb24gRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuNCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS40IHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgYW5kcmVhcwogICAgICAgIDoKICAgICAgICBbMS40XSAKICAgICAgICAgICAgRW5hYmxlZCBKQ1IgYmxvY2sgYWdhaW4gdG8gbWFrZSB0aGUgSkNSU291cmNlTm9kZSB3b3JrLiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgRG9jcyB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+RG9jcyB1cGRhdGUKICAgICAgICBieQogICAgICAgIGFuZHJlYXMKICAgICAgICA6CiAgICAgICAgW0RvY3NdIAogICAgICAgICAgICBVcGRhdGVkIHJlc291cmNlIHR5cGUgZG9jcyAoc2VlIGJ1ZyAzODQ2NikuIFRoYW5rcyB0byBKb2VybiBOZXR0aW5nc21laWVyIGZvciB0aGUgY29tbWVudHMuIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCBEb2NzIHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj5Eb2NzIHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgYW5kcmVhcwogICAgICAgIDoKICAgICAgICBbRG9jc10gCiAgICAgICAgICAgIFVwZGF0ZWQgcmVzb3VyY2UgdHlwZSBkb2NzIChzZWUgYnVnIDM4NDY2KS4gVGhhbmtzIHRvIEpvZXJuIE5ldHRpbmdzbWVpZXIgZm9yIHRoZSBjb21tZW50cy4gRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IERvY3MgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPkRvY3MgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBhbmRyZWFzCiAgICAgICAgOgogICAgICAgIFtEb2NzXSAKICAgICAgICAgICAgVXBkYXRlZCByZXNvdXJjZSB0eXBlIGRvY3MgKHNlZSBidWcgMzg0NjYpLiBUaGFua3MgdG8gSm9lcm4gTmV0dGluZ3NtZWllciBmb3IgdGhlIGNvbW1lbnRzLiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgRG9jcyB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+RG9jcyB1cGRhdGUKICAgICAgICBieQogICAgICAgIGFuZHJlYXMKICAgICAgICA6CiAgICAgICAgW0RvY3NdIAogICAgICAgICAgICBVcGRhdGVkIHJlc291cmNlIHR5cGUgZG9jcyAoc2VlIGJ1ZyAzODQ2NikuIFRoYW5rcyB0byBKb2VybiBOZXR0aW5nc21laWVyIGZvciB0aGUgY29tbWVudHMuIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCBEb2NzIHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj5Eb2NzIHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgYW5kcmVhcwogICAgICAgIDoKICAgICAgICBbRG9jc10gCiAgICAgICAgICAgIFVwZGF0ZWQgbW9kdWxlIGRvY3M6IC9jb3JlL21vZHVsZXMvLi4uIGlzIHJlcGxhY2VkIGJ5IGNvY29vbjovL21vZHVsZXMvLi4uIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjQgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuNCB1cGRhdGUKICAgICAgICBieQogICAgICAgIGFuZHJlYXMKICAgICAgICA6CiAgICAgICAgWzEuNF0gCiAgICAgICAgICAgIFJlbW92ZWQgaGFuZGxpbmcgb2YgY29yZS9tb2R1bGVzIFVSTHMsIHNpbmNlIGl0IGlzIG5vdyBwb3NzaWJsZSB0byBjYWxsIG1vZHVsZXMgdXNpbmcgYW4gVVJMIHByZWZpeC4gRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuNCBhZGQ8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS40IGFkZAogICAgICAgIGJ5CiAgICAgICAgYW5kcmVhcwogICAgICAgIDoKICAgICAgICBbMS40XSAKICAgICAgICAgICAgQWRkZWQgSkNSTWV0YURhdGEgamF2YSBmaWxlLiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS40IHJlbW92ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjQgcmVtb3ZlCiAgICAgICAgYnkKICAgICAgICBhbmRyZWFzCiAgICAgICAgOgogICAgICAgIFsxLjRdIAogICAgICAgICAgICBNb3ZlZCBKQ1JTb3VyY2VOb2RlIHJlbGF0ZWQgY29kZSB0byBqY3Jzb3VyY2UgbW9kdWxlLCByZXN0b3JlZCBKQ1JTb3VyY2VOb2RlIHJlbGF0ZWQgY2xhc3NlcyBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS40IHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjQgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBtaWNoaQogICAgICAgIDoKICAgICAgICBbMS40XSAKICAgICAgICAgICAgbW9yZSBkb2N1IGFib3V0IGN1cnJlbnQgSkNSIGludGVncmF0aW9uIGFkZGVkIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjQgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuNCB1cGRhdGUKICAgICAgICBieQogICAgICAgIGpvc2lhcwogICAgICAgIDoKICAgICAgICBbMS40XSAKICAgICAgICAgICAgdXNlIGJhc2UtdXJsIG1vZHVsZSB0byBnZXQgdGhlIHJvb3QgcGFyYW1ldGVyIGluIG9yZGVyIHRvIGdldCB0aGUgY29ycmVjdCB1cmxzIGlmIHByb3h5aW5nIGlzIHVzZWQuIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjQgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuNCB1cGRhdGUKICAgICAgICBieQogICAgICAgIGpvc2lhcwogICAgICAgIDoKICAgICAgICBbMS40XSAKICAgICAgICAgICAgW21pbm9yXSByZW1vdmVkIHVudXNlZCBpbXBvcnRzIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCBEb2NzIGFkZDwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj5Eb2NzIGFkZAogICAgICAgIGJ5CiAgICAgICAgYW5kcmVhcwogICAgICAgIDoKICAgICAgICBbRG9jc10gCiAgICAgICAgICAgIEFkZGVkIGRvY3VtZW50YXRpb24gYWJvdXQgbGluayBtYW5hZ2VtZW50IGluIDEuNCBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgRG9jcyB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+RG9jcyB1cGRhdGUKICAgICAgICBieQogICAgICAgIGFuZHJlYXMKICAgICAgICA6CiAgICAgICAgW0RvY3NdIAogICAgICAgICAgICBbbWlub3IgY2hhbmdlXSBpbXByb3ZlZCB3b3JkaW5nIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCBEb2NzIHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj5Eb2NzIHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgYW5kcmVhcwogICAgICAgIDoKICAgICAgICBbRG9jc10gCiAgICAgICAgICAgIEFkZGVkIG5vdGUgYWJvdXQgRG9jdW1lbnRSZWZlcmVuY2VzSGVscGVyIGJ1ZyBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS40IHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjQgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBhbmRyZWFzCiAgICAgICAgOgogICAgICAgIFsxLjRdIAogICAgICAgICAgICBbbWlub3IgY2hhbmdlXSBPbmVGb3JtRWRpdG9yOiByZWZhY3RvcmluZywgamF2YWRvY3MgRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuNCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS40IHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgYW5kcmVhcwogICAgICAgIDoKICAgICAgICBbMS40XSAKICAgICAgICAgICAgU1ZHIG1vZHVsZTogdXNlIGZhbGxiYWNrIGlucHV0IG1vZHVsZSBpbnN0ZWFkIG9mIHByb3RvY29sIGZvciBCYXRpayBpbWFnZSByZWZlcmVuY2VzIChCYXRpayBjYW4ndCBhY2Nlc3MgdGhlIHNvdXJjZSByZXNvbHZlcikgRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuNCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS40IHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgam9zaWFzCiAgICAgICAgOgogICAgICAgIFsxLjRdIAogICAgICAgICAgICBGaXhlZCBqYXZhZG9jLiBUaGFua3MgdG8gQm9iIEhhcm5lciBmb3Igc3BvdHRpbmcgdGhpcy4gRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IFpvbmUgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPlpvbmUgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICB0aG9yc3RlbgogICAgICAgIDoKICAgICAgICBbWm9uZV0gCiAgICAgICAgICAgIEFjdGl2YXRpbmcgbm90aWZpY2F0aW9uIHRvIHRoZSBmb3JyZXN0Ym90IHRoYXQgZGVwbG95cyBvdXIgem9uZSBzaXRlIGFuZCB0aGUgc3RhZ2luZyBkb2N1IERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCBab25lIHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj5ab25lIHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgdGhvcnN0ZW4KICAgICAgICA6CiAgICAgICAgW1pvbmVdIAogICAgICAgICAgICBBZGRpbmcgbm90aWZpY2F0aW9uIHRvIHRoZSBmb3JyZXN0Ym90IHRoYXQgZGVwbG95cyBvdXIgem9uZSBzaXRlIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjQgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuNCB1cGRhdGUKICAgICAgICBieQogICAgICAgIGZyb2V0aGVuYmFjaGVyCiAgICAgICAgOgogICAgICAgIFsxLjRdIAogICAgICAgICAgICBBZGRlZCBjb250ZXh0IHByZWZpeCBmb3IgY2Zvcm1zIHJlc291cmNlcy4KIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCBEb2NzIHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj5Eb2NzIHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgZnJvZXRoZW5iYWNoZXIKICAgICAgICA6CiAgICAgICAgW0RvY3NdIAogICAgICAgICAgICBBZGRlZCBteXNlbGYgOi0pCiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS40IGFkZDwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjQgYWRkCiAgICAgICAgYnkKICAgICAgICBqb3NpYXMKICAgICAgICA6CiAgICAgICAgWzEuNF0gCiAgICAgICAgICAgIGFkZGVkIEJhc2VVUkxNb2R1bGUgd2hpY2ggbWF5IGJlIHVzZWQgdG8gZ2V0IHRoZSBiYXNlIHVybCB0byBwcmVwZW5kIHRvIHVybHMgaW4gb3JkZXIgdG8gY29uc3RydWN0IGludGVybmFsIGxpbmtzLiBJZiB0aGUgcHVibGljYXRpb24gdXNlcyBwcm94eWluZywgaXQgcmV0dXJucyB0aGUgcHJveHkgdXJsLiBPdGhlcndpc2UsIGl0IHJldHVybnMgL2NvbnRleHQtcGF0aC9wdWJpZC9hcmVhIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjQgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuNCB1cGRhdGUKICAgICAgICBieQogICAgICAgIGpvc2lhcwogICAgICAgIDoKICAgICAgICBbMS40XSAKICAgICAgICAgICAgZG9uJ3QgYXNzdW1lIHRoYXQgaW50ZXJuYWwgbGlua3Mgc3RhcnQgd2l0aCB0aGUgY29udGV4dCBwcmVmaXguIGludGVybmFsIGxpbmtzIHNob3VsZCBsb29rIGxpa2UgL3B1YmlkL2FyZWEvZG9jLXVybCAoc2VlIGFsc28gYnVnICMzMTE1NykgRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuNCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS40IHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgYW5kcmVhcwogICAgICAgIDoKICAgICAgICBbMS40XSAKICAgICAgICAgICAgTW91bnQgbW9kdWxlLXJlc291cmNlcy54bWFwIHdpdGggcGFzcy10aHJvdWdoLiBUaGlzIGFsbG93cyB0aGUgbW9kdWxlIHRvIHNlcnZlIHJlc291cmNlcyBpZiBtb2R1bGUtcmVzb3VyY2VzLnhtYXAgZG9lc24ndCBjb250YWluIGFuIGFwcHJvcHJpYXRlIHBpcGVsaW5lLiBBZGRlZCBIVE1MIGFuZCBYSFRNTCBwaXBlbGluZXMgdG8gbW9kdWxlLXJlc291cmNlcy54bWFwLiBUaGlzIGZpeGVzIGJ1ZyAjMzg0NTUsIHRoYW5rcyB0byBTaW1vbiBMaXR3YW4gZm9yIHRoZSBwYXRjaC4gRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuNCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS40IHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgYW5kcmVhcwogICAgICAgIDoKICAgICAgICBbMS40XSAKICAgICAgICAgICAgQWRkcyBpZCBhdHRyaWJ1dCB0byBmb3JtIGVsZW1lbnRzIGFuZCBuYW1lIGF0dHJpYnV0ZXMgdG8gYnV0dG9ucy4gVGhpcyBmaXhlcyBidWcgIzM4NDcxLiBUaGFua3MgdG8gU2ltb24gTGl0d2FuIGZvciB0aGUgcGF0Y2guIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCBEb2NzIHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj5Eb2NzIHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgYW5kcmVhcwogICAgICAgIDoKICAgICAgICBbRG9jc10gCiAgICAgICAgICAgIE1pbm9yIGZvcm1hdHRpbmcgYW5kIGxvd2VyLS91cHBlcmNhc2UgY2hhbmdlcy4gRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IERvY3MgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPkRvY3MgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBhbmRyZWFzCiAgICAgICAgOgogICAgICAgIFtEb2NzXSAKICAgICAgICAgICAgUmVuYW1lZCBieGUgZWxlbWVudCB0byBiaXRmbHV4ZWRpdG9yLiBUaGlzIGF2b2lkcyB0aGUgY2xhc2ggd2l0aCB0aGUgZXh0ZXJuYWwgVVJMIGh0dHA6Ly9ieGUub3Njb20ub3JnLiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgU2l0ZSB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+U2l0ZSB1cGRhdGUKICAgICAgICBieQogICAgICAgIHRob3JzdGVuCiAgICAgICAgOgogICAgICAgIFtTaXRlXSAKICAgICAgICAgICAgQWRkaW5nIG5vdGlmaWNhdGlvbiBvbiBmYWlsdXJlIGZvciB0aGUgc3RhZ2luZyBkb2N1IGJ1aWxkLiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgRG9jcyB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+RG9jcyB1cGRhdGUKICAgICAgICBieQogICAgICAgIHRob3JzdGVuCiAgICAgICAgOgogICAgICAgIFtEb2NzXSAKICAgICAgICAgICAgRml4ZWQgZmF1bHR5IHIzNzQxMDcgYW5kIGFkZGVkIGluZm9ybWF0aW9uIHRvIGdlbmVyYXRlIGEgZHluYW1pYyBleGl0IFVSTCBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS40IHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjQgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBjaGVzdG51dAogICAgICAgIDoKICAgICAgICBbMS40XSAKICAgICAgICAgICAgbWF0Y2ggb25seSBvbiBpbWcgc3JjIGF0dHJpYnV0ZXMgc28gdGhhdCBpdCBkb2Vzbid0IGludGVyZmVyZSBvdGhlciBlbGVtZW50cyBzdWNoIGFzIHNjcmlwdC4gRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuNCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS40IHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgYW5kcmVhcwogICAgICAgIDoKICAgICAgICBbMS40XSAKICAgICAgICAgICAgRm9yIFNWRyBpbWFnZSB4bGlua3MsIHVzZSBmYWxsYmFjayBpbnB1dCBtb2R1bGUgaW5zdGVhZCBvZiBmYWxsYmFjayBwcm90b2NvbCBiZWNhdXNlIEJhdGlrIGNhbid0IGFjY2VzcyB0aGUgc291cmNlIHJlc29sdmVyLiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS40IHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjQgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBhbmRyZWFzCiAgICAgICAgOgogICAgICAgIFsxLjRdIAogICAgICAgICAgICBbbWlub3IgY2hhbmdlXSByZW1vdmVkIHVubmVjZXNzYXJ5IG5hbWVzcGFjZSBkZWNsYXJhdGlvbnMgRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IERvY3MgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPkRvY3MgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBhbmRyZWFzCiAgICAgICAgOgogICAgICAgIFtEb2NzXSAKICAgICAgICAgICAgVXBkYXRlZCByZXNvdXJjZSB0eXBlIGRvY3MuIFRoaXMgZml4ZXMgYnVnICMzODQ2NiwgdGhhbmtzIHRvIEpvZXJuIE5ldHRpbmdzbWVpZXIgZm9yIHRoZSByZXBvcnQuIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCBEb2NzIHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj5Eb2NzIHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgYW5kcmVhcwogICAgICAgIDoKICAgICAgICBbRG9jc10gCiAgICAgICAgICAgIFJlbmFtZWQgc2VhcmNoIG1vZHVsZSB0byBsdWNlbmUgaW4gZG9jcyBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgRG9jcyB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+RG9jcyB1cGRhdGUKICAgICAgICBieQogICAgICAgIGFuZHJlYXMKICAgICAgICA6CiAgICAgICAgW0RvY3NdIAogICAgICAgICAgICBBZGRlZCBzb21lIHBhcmFncmFwaHMgdG8gdGhlIHJlcG8gZG9jIGRyYWZ0IERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCBEb2NzIHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj5Eb2NzIHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgYW5kcmVhcwogICAgICAgIDoKICAgICAgICBbRG9jc10gCiAgICAgICAgICAgIFVwZGF0ZWQgcGF0Y2ggZmlsZSBwYXRocyB0byBjb25maWcvY29jb29uLXhjb25mLyogRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IERvY3MgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPkRvY3MgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBhbmRyZWFzCiAgICAgICAgOgogICAgICAgIFtEb2NzXSAKICAgICAgICAgICAgQWRkaW5nIGRvY3MgYWJvdXQgbW9kdWxlIG1lbnVzIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjQgcmVtb3ZlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuNCByZW1vdmUKICAgICAgICBieQogICAgICAgIGFuZHJlYXMKICAgICAgICA6CiAgICAgICAgWzEuNF0gCiAgICAgICAgICAgIFttaW5vciBjaGFuZ2VdIHJlbW92ZWQgZW1wdHkgbWVudXMgZGlyZWN0b3J5IERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCBEb2NzIHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj5Eb2NzIHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgYW5kcmVhcwogICAgICAgIDoKICAgICAgICBbRG9jc10gCiAgICAgICAgICAgIFJlcGxhY2VkIGNvbmZpZy8qLnhjb25mIHdpdGggY29uZmlnL2NvY29vbi14Y29uZi8qLnhjb25mIGluIG1vZHVsZSBkb2NzIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjIgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuMiB1cGRhdGUKICAgICAgICBieQogICAgICAgIGphbm4KICAgICAgICA6CiAgICAgICAgWzEuMl0gCiAgICAgICAgICAgIFNob3dpbmcgdGhlIG9yaWdpbmFsIHBhdGggb2YgYSBkZWxldGVkIGRvY3VtZW50IERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjIgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuMiB1cGRhdGUKICAgICAgICBieQogICAgICAgIGphbm4KICAgICAgICA6CiAgICAgICAgWzEuMl0gCiAgICAgICAgICAgIEFkZGluZyBhbiBpZGVudGlmaWVyIHN0cmluZyB3aGljaCBjYW4gYmUgdXNlZCB3aXRoaW4gdGhlIHRyYXNoIGFyZWEgaW4gb3JkZXIgdG8gc2hvdyB0aGUgb3JpZ2luYWwgcGF0aCBvZiBhIGRlbGV0ZWQgZG9jdW1lbnQgRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuNCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS40IHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgam9zaWFzCiAgICAgICAgOgogICAgICAgIFsxLjRdIAogICAgICAgICAgICBbbWlub3JdIHJlbW92ZWQgdGFicyBhbmQgZml4ZWQgaW5kZW50aW5nIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjIgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuMiB1cGRhdGUKICAgICAgICBieQogICAgICAgIGFuZHJlYXMKICAgICAgICA6CiAgICAgICAgWzEuMl0gCiAgICAgICAgICAgIEFkZCBuYW1lIGF0dHJpYnV0ZXMgdG8gZm9ybSBlbGVtZW50cy4gVGhpcyBmaXhlcyBidWcgIzM4NDcxLiBUaGFua3MgdG8gU2ltb24gTGl0d2FuIGZvciB0aGUgcGF0Y2guIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjIgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuMiB1cGRhdGUKICAgICAgICBieQogICAgICAgIGFuZHJlYXMKICAgICAgICA6CiAgICAgICAgWzEuMl0gCiAgICAgICAgICAgIERvbid0IHN3YWxsb3cgZXhjZXB0aW9uIGluIGNyYXdsZXIgY29uZmlndXJhdGlvbiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS4yIHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjIgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBhbmRyZWFzCiAgICAgICAgOgogICAgICAgIFsxLjJdIAogICAgICAgICAgICBJbXByb3ZlZCBlcnJvciBsb2dnaW5nIChtZXNzYWdlLCBzdGFjayB0cmFjZSkgRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IFNpdGUgYWRkPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPlNpdGUgYWRkCiAgICAgICAgYnkKICAgICAgICB0aG9yc3RlbgogICAgICAgIDoKICAgICAgICBbU2l0ZV0gCiAgICAgICAgICAgIHRlc3Rpbmcgd2hldGhlciAuaHRhY2Nlc3MgaXMgZW5hYmxlZCBvbiBvdXIgc2VydmVyIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjQgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuNCB1cGRhdGUKICAgICAgICBieQogICAgICAgIGFuZHJlYXMKICAgICAgICA6CiAgICAgICAgWzEuNF0gCiAgICAgICAgICAgIFttaW5vciBjaGFuZ2VdIHJlbW92ZWQganVuayBjaGFyYWN0ZXJzIHRoYXQgd2VyZSB1c2VkIGZvciBpbmRlbnRhdGlvbiB0ZXN0aW5nIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjQgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuNCB1cGRhdGUKICAgICAgICBieQogICAgICAgIGFuZHJlYXMKICAgICAgICA6CiAgICAgICAgWzEuNF0gCiAgICAgICAgICAgIFVzZSBpbWFnZXMgdG8gc2hvdyBtZW51IGl0ZW0gc3RhdGUgKGNoZWNrZWQvdW5jaGVja2VkKSBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgWm9uZSBhZGQ8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+Wm9uZSBhZGQKICAgICAgICBieQogICAgICAgIHRob3JzdGVuCiAgICAgICAgOgogICAgICAgIFtab25lXSAKICAgICAgICAgICAgQWRkZWQgaW5pdGlhbCByZWxlYXNlIHNjcmlwdCBmcm9tIHRoZSAnUmVsZWFzZSBNYW5hZ2VtZW50JyBub3Rlcy4gRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IERvY3MgYWRkPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPkRvY3MgYWRkCiAgICAgICAgYnkKICAgICAgICB0aG9yc3RlbgogICAgICAgIDoKICAgICAgICBbRG9jc10gCiAgICAgICAgICAgIEFkZGVkIHRoZSAnUmVsZWFzZSBNYW5hZ2VtZW50IEhvd3RvJyBpbnRvIHRoZSBvZmZpY2lhbCBkb2NzIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjIgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuMiB1cGRhdGUKICAgICAgICBieQogICAgICAgIG1pY2hpCiAgICAgICAgOgogICAgICAgIFsxLjJdIAogICAgICAgICAgICBtb3JlIGRldGFpbHMgYWRkZWQgRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuMiB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS4yIHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgbWljaGkKICAgICAgICA6CiAgICAgICAgWzEuMl0gCiAgICAgICAgICAgIG1vcmUgbm90ZXMgYWRkZWQgRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuMiBhZGQ8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS4yIGFkZAogICAgICAgIGJ5CiAgICAgICAgbWljaGkKICAgICAgICA6CiAgICAgICAgWzEuMl0gCiAgICAgICAgICAgIHJlbGVhc2UgbWFuYWdlbWVudCBzdGVwIGJ5IHN0ZXAgYWRkZWQgRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuNCBhZGQ8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS40IGFkZAogICAgICAgIGJ5CiAgICAgICAgY2hlc3RudXQKICAgICAgICA6CiAgICAgICAgWzEuNF0gCiAgICAgICAgICAgIG1vdmVkIGV4dGVybmFsIGxpbmtjaGVjayBmdW5jdGlvbmFsaXR5IHRvIGEgbW9kdWxlIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjQgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuNCB1cGRhdGUKICAgICAgICBieQogICAgICAgIGNoZXN0bnV0CiAgICAgICAgOgogICAgICAgIFsxLjRdIAogICAgICAgICAgICB0aGUgc3ZnIG1vZHVsZSBuZWVkcyB0byBoYW5kbGUgc2hhcmVkIGltYWdlcyBpZiB0aGV5IGFyZSBwcm9jZXNzZWQgKGltYWdlMnN2Zy54c2wpIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjQgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuNCB1cGRhdGUKICAgICAgICBieQogICAgICAgIGFuZHJlYXMKICAgICAgICA6CiAgICAgICAgWzEuNF0gCiAgICAgICAgICAgIFttaW5vciBjaGFuZ2VdIGZpeGVkIHNvbWUgamF2YSB3YXJuaW5ncyBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS40IHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjQgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBhbmRyZWFzCiAgICAgICAgOgogICAgICAgIFsxLjRdIAogICAgICAgICAgICBBZGQgZGVwcmVjYXRpb24gbm90ZSB0byB0YXNrIGphdmFkb2NzLCBhZGRlZCBzb21lIGphdmFkb2NzLiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS40IHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjQgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBhbmRyZWFzCiAgICAgICAgOgogICAgICAgIFsxLjRdIAogICAgICAgICAgICBbbWlub3IgY2hhbmdlXSByZW1vdmVkIHVudXNlZCBpbXBvcnRzIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjQgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuNCB1cGRhdGUKICAgICAgICBieQogICAgICAgIGFuZHJlYXMKICAgICAgICA6CiAgICAgICAgWzEuNF0gCiAgICAgICAgICAgIFttaW5vciBjaGFuZ2VdIGFkZGVkIGphdmFkb2NzIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjQgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuNCB1cGRhdGUKICAgICAgICBieQogICAgICAgIGFuZHJlYXMKICAgICAgICA6CiAgICAgICAgWzEuNF0gCiAgICAgICAgICAgIFttaW5vciBjaGFuZ2VdIGNvZGUgZm9ybWF0dGluZywgamF2YWRvYyBUT0RPIGNvbW1lbnQgRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuNCByZW1vdmU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS40IHJlbW92ZQogICAgICAgIGJ5CiAgICAgICAgYW5kcmVhcwogICAgICAgIDoKICAgICAgICBbMS40XSAKICAgICAgICAgICAgUmVtb3ZlZCBvYnNvbGV0ZSBXb3JrZmxvd0F1dGhvcml6ZXIgRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuNCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS40IHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgYW5kcmVhcwogICAgICAgIDoKICAgICAgICBbMS40XSAKICAgICAgICAgICAgW21pbm9yIGNoYW5nZV0gY29kZSBmb3JtYXR0aW5nIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjQgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuNCB1cGRhdGUKICAgICAgICBieQogICAgICAgIGpvc2lhcwogICAgICAgIDoKICAgICAgICBbMS40XSAKICAgICAgICAgICAgZml4ZWQgYSBidWcgd2l0aCBjcmVhdGUgbmV3IGxhbmd1YWdlIHZlcnNpb24gaWYgdGhlIHJlc291cmNlIHR5cGUgaGFzIG11bHRpcGxlIHNhbXBsZXMgKG9ubHkgbmVlZCBhIHNhbXBsZSBpZiB0aGVyZSBpcyBubyBpbml0aWFsIGRvY3VtZW50KS4gRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuNCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS40IHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgYW5kcmVhcwogICAgICAgIDoKICAgICAgICBbMS40XSAKICAgICAgICAgICAgSW5zdGFudGlhdG9yIGRlbGV0ZXMgYWxsIHByZXZpb3VzIHRlbXBsYXRlcyBiZWZvcmUgc2V0dGluZyB0aGUgdGVtcGxhdGUgb2YgdGhlIG5ldyBwdWJsaWNhdGlvbi4gVGhpcyBmaXhlcyBidWcgIzM4NDE3LiBUaGUgY2hhbmdlIGluY2x1ZGVzIHNvbWUgcmVmYWN0b3JpbmcuIFVwZGF0aW5nIHRoZSBzZWFyY2ggaW5kZXggY29uZmlndXJhdGlvbiBpcyBkaXNhYmxlZCwgYmVjYXVzZSBpdCB2aW9sYXRlcyBTb0MgYnkgd29ya2luZyB3aXRoIGNvY29vbi54Y29uZiBwYXRjaCBmaWxlcyAtIHRoaXMgZG9lc24ndCB3b3JrIGFueW1vcmUgc2luY2UgdGhlIHBhdGNoIGZpbGVzIGFyZW4ndCBjb3BpZWQgdG8gdGhlIGJ1aWxkIGRpcmVjdG9yeS4gRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuNCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS40IHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgYW5kcmVhcwogICAgICAgIDoKICAgICAgICBbMS40XSAKICAgICAgICAgICAgVXBkYXRlZCBwYXRoIHRvIHB1YmxpY2F0aW9uIGphdmEgZmlsZXMgZm9yIGVjbGlwc2UtcHJvamVjdCBidWlsZCB0YXJnZXQgRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuNCByZW1vdmU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS40IHJlbW92ZQogICAgICAgIGJ5CiAgICAgICAgYW5kcmVhcwogICAgICAgIDoKICAgICAgICBbMS40XSAKICAgICAgICAgICAgW21pbm9yIGNoYW5nZV0gcmVtb3ZlZCBlbXB0eSBzZWFyY2ggZGlyZWN0b3J5IERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjQgcmVtb3ZlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuNCByZW1vdmUKICAgICAgICBieQogICAgICAgIGFuZHJlYXMKICAgICAgICA6CiAgICAgICAgWzEuNF0gCiAgICAgICAgICAgIFttaW5vciBjaGFuZ2VdIHJlbW92ZWQgZW1wdHkgYnhlIGRpcmVjdG9yeSBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS40IHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjQgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBhbmRyZWFzCiAgICAgICAgOgogICAgICAgIFsxLjRdIAogICAgICAgICAgICBVc2UgdGVtcC9wYXRjaCBkaXJlY3RvcnkgZm9yIGxlbnlhLnJvbGVzIHBhdGNoZXMgRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuNCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS40IHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgYW5kcmVhcwogICAgICAgIDoKICAgICAgICBbMS40XSAKICAgICAgICAgICAgUmVtb3ZlZCBjb2Nvb24teGNvbmYueHNsLiBUaGlzIHJhaXNlcyB0aGUgaXNzdWUgdGhhdCB0aGUgWG9wdXMgY29udGV4dCBwYXRoIGRlZmluZWQgaW4gbG9jYWwuYnVpbGQucHJvcGVydGllcyBpcyBub3Qgc2V0LiBUaGlzIHdpbGwgYmUgdGFrZW4gY2FyZSBvZiB3aGVuIFhvcHVzIGlzIG1vdmVkIHRvIGEgbW9kdWxlLiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS40IHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjQgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBhbmRyZWFzCiAgICAgICAgOgogICAgICAgIFsxLjRdIAogICAgICAgICAgICBBZGRlZCBvcHRpb24gdG8gcHJlcGFyZSBjb2Nvb24ueGNvbmYgd2l0aCBpbml0aWFsIHBhdGNoZXMsIGUuZy4sIHRvIGFkZCBzZWxlY3RvciBjb25maWd1cmF0aW9ucyBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS40IGFkZDwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjQgYWRkCiAgICAgICAgYnkKICAgICAgICBhbmRyZWFzCiAgICAgICAgOgogICAgICAgIFsxLjRdIAogICAgICAgICAgICBDb250aW51ZWQgc3BsaXR0aW5nIHVwIGNvY29vbi14Y29uZi54c2wgaW50byBkZWRpY2F0ZWQgeHBhdGNoIGZpbGVzIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjQgYWRkPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuNCBhZGQKICAgICAgICBieQogICAgICAgIGFuZHJlYXMKICAgICAgICA6CiAgICAgICAgWzEuNF0gCiAgICAgICAgICAgIENvbnRpbnVlZCBzcGxpdHRpbmcgdXAgY29jb29uLXhjb25mLnhzbCBpbnRvIGRlZGljYXRlZCB4cGF0Y2ggZmlsZXMgRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuNCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS40IHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgYW5kcmVhcwogICAgICAgIDoKICAgICAgICBbMS40XSAKICAgICAgICAgICAgW21pbm9yIGNoYW5nZV0gcmVtb3ZlZCBvYnNvbGV0ZSByZWZlcmVuY2UgdG8gc2NoZWR1bGVyIGxvZ2ljc2hlZXQgKGRvZXNuJ3QgZXhpc3QgYW55bW9yZSkgRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuNCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS40IHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgYW5kcmVhcwogICAgICAgIDoKICAgICAgICBbMS40XSAKICAgICAgICAgICAgVXBkYXRlZCBwYXRocyB0byBwdWJsaWNhdGlvbnMgYW5kIG1vZHVsZXMgaW4gYnVpbGQucHJvcGVydGllcyBhZnRlciBtb3ZpbmcgcHVibGljYXRpb25zIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjQgcmVtb3ZlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuNCByZW1vdmUKICAgICAgICBieQogICAgICAgIGFuZHJlYXMKICAgICAgICA6CiAgICAgICAgWzEuNF0gCiAgICAgICAgICAgIE1vdmluZyBwdWJsaWNhdGlvbnMgZnJvbSAvc3JjL3dlYmFwcC9sZW55YS9wdWJzIHRvIC9zcmMvcHVicy4gRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuNCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS40IHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgam9zaWFzCiAgICAgICAgOgogICAgICAgIFsxLjRdIAogICAgICAgICAgICBmaXhlZCB0aGUgc3R5bGUgb2YgdGhlIGV4Y2VwdGlvbiBwYWdlOiBzaG93IGhhbmQgY3Vyc29yIG9uIHN0YWNrdHJhY2UgdG9nZ2xlIGxpbmsuIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCBTaXRlIHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj5TaXRlIHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgdGhvcnN0ZW4KICAgICAgICA6CiAgICAgICAgW1NpdGVdIAogICAgICAgICAgICBVcGRhdGluZyBjaGFuZ2VzIHBhZ2VzIHRvIHJlZmxlY3QgY3VycmVudCBkZXZlbG9wbWVudCBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS40IGFkZDwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjQgYWRkCiAgICAgICAgYnkKICAgICAgICBhbmRyZWFzCiAgICAgICAgOgogICAgICAgIFsxLjRdIAogICAgICAgICAgICBVc2UgWHBhdGNoIGZvciBzb3VyY2UgZmFjdG9yaWVzIGFuZCBpbnB1dCBtb2R1bGVzIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjQgYWRkPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuNCBhZGQKICAgICAgICBieQogICAgICAgIGFuZHJlYXMKICAgICAgICA6CiAgICAgICAgWzEuNF0gCiAgICAgICAgICAgIE1vdmVkIHhjb25mIGZpbGVzIHRvIGNvY29vbi14Y29uZiBmb3IgaG9tZXBhZ2UgbW9kdWxlIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjQgYWRkPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuNCBhZGQKICAgICAgICBieQogICAgICAgIGFuZHJlYXMKICAgICAgICA6CiAgICAgICAgWzEuNF0gCiAgICAgICAgICAgIFJlZmFjdG9yZWQgcGF0Y2ggc3lzdGVtIGZvciBjb2Nvb24ueGNvbmYuIFBhdGNoIGZpbGVzIGFyZSBub3cgZ2F0aGVyZWQgaW4gYnVpbGQvdGVtcC9wYXRjaCBhbmQgbm90IGNvcGllZCB0byB0aGUgYnVpbGQgZGlyZWN0b3J5LiBVc2VjYXNlIHBhdGNoZXMgd2VyZSByZW1vdmVkIGZyb20gY29jb29uLXhjb25mLnhzbC4gSSBoYXZlIHJlcGxhY2VkIHJlbW92ZT0uLi4gd2l0aCB1bmxlc3M9Li4uIHRvIHJlZHVjZSBidWlsZCB0aW1lLCBmZWVsIGZyZWUgdG8gY29tcGxhaW4uIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjQgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuNCB1cGRhdGUKICAgICAgICBieQogICAgICAgIGFuZHJlYXMKICAgICAgICA6CiAgICAgICAgWzEuNF0gCiAgICAgICAgICAgIFRocm93IGFwcHJvcHJpYXRlIGV4Y2VwdGlvbiBpZiB3b3JrZmxvdyB2YXJpYWJsZSBkb2VzIG5vdCBleGlzdCBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS40IHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjQgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBhbmRyZWFzCiAgICAgICAgOgogICAgICAgIFsxLjRdIAogICAgICAgICAgICBGaXhlZCBoYW5kbGluZyBvZiBpc19saXZlIHdvcmtmbG93IHZhcmlhYmxlIGluIE92ZXJ2aWV3IHVzZWNhc2UgRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuNCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS40IHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgY2hlc3RudXQKICAgICAgICA6CiAgICAgICAgWzEuNF0gCiAgICAgICAgICAgIHJlbW92ZWQgc2VhcmNoIG1vZHVsZSBhbmQgcmVsYXRlZCBmaWxlcyBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS40IHJlbW92ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjQgcmVtb3ZlCiAgICAgICAgYnkKICAgICAgICBjaGVzdG51dAogICAgICAgIDoKICAgICAgICBbMS40XSAKICAgICAgICAgICAgcmVtb3ZlZCBzZWFyY2ggbW9kdWxlIGFuZCByZWxhdGVkIGZpbGVzIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjQgcmVtb3ZlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuNCByZW1vdmUKICAgICAgICBieQogICAgICAgIGNoZXN0bnV0CiAgICAgICAgOgogICAgICAgIFsxLjRdIAogICAgICAgICAgICByZW1vdmVkIHNlYXJjaCBtb2R1bGUgYW5kIHJlbGF0ZWQgZmlsZXMgRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuNCByZW1vdmU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS40IHJlbW92ZQogICAgICAgIGJ5CiAgICAgICAgYW5kcmVhcwogICAgICAgIDoKICAgICAgICBbMS40XSAKICAgICAgICAgICAgW21pbm9yIGNoYW5nZV0gcmVtb3ZlZCBvYnNvbGV0ZSBub3RpZmljYXRpb24gY29uZmlndXJhdGlvbiBmaWxlIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjQgcmVtb3ZlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuNCByZW1vdmUKICAgICAgICBieQogICAgICAgIGNoZXN0bnV0CiAgICAgICAgOgogICAgICAgIFsxLjRdIAogICAgICAgICAgICBhY2NpZGVudGFsIGNvbW1pdCBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS40IHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjQgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBqb3NpYXMKICAgICAgICA6CiAgICAgICAgWzEuNF0gCiAgICAgICAgICAgIFttaW5vcl0gYWRkZWQgeG1sIGRlY2xhcmF0aW9uLCBjb252ZXJ0ZWQgbGluZSBlbmRpbmdzIHRvIHVuaXgsIGFuZCBzZXQgc3ZuIGVvbCBwcm9wZXJ0eSBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS40IHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjQgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBqb3NpYXMKICAgICAgICA6CiAgICAgICAgWzEuNF0gCiAgICAgICAgICAgIGRpc3BsYXkgdGhlIGxhc3QgbW9kaWZpZWQgZGF0ZSBpbiBpc28tODYwMSBmb3JtYXQgRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuNCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS40IHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgam9zaWFzCiAgICAgICAgOgogICAgICAgIFsxLjRdIAogICAgICAgICAgICBhZGRlZCBkYXRlLWNvbnZlcnRlciBpbnB1dCBtb2R1bGUuIGl0IGlzIHVzZWQgdG8gc2V0IHRoZSBjb3JyZWN0IGxhc3QtbW9kaWZpZWQgaHR0cCBoZWFkZXIuIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjQgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuNCB1cGRhdGUKICAgICAgICBieQogICAgICAgIGFuZHJlYXMKICAgICAgICA6CiAgICAgICAgWzEuNF0gCiAgICAgICAgICAgIFNob3cgbmF2aWdhdGlvbiB2aXNpYmlsaXR5IG9uIG92ZXJ2aWV3IHRhYiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS40IHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjQgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBtaWNoaQogICAgICAgIDoKICAgICAgICBbMS40XSAKICAgICAgICAgICAgR0VUIHJlcGxhY2VkIGJ5IFBPU1QgRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuMiB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS4yIHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgbWljaGkKICAgICAgICA6CiAgICAgICAgWzEuMl0gCiAgICAgICAgICAgIG5hbWUgYWRkZWQgaW4gb3JkZXIgdG8gYWxsb3cgdGVzdGluZyBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS4yIHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjIgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBtaWNoaQogICAgICAgIDoKICAgICAgICBbMS4yXSAKICAgICAgICAgICAgZm9ybSBuYW1lIGFkZGVkIGluIG9yZGVyIHRvIGFsbG93IHRlc3RpbmcgRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuMiB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS4yIHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgbWljaGkKICAgICAgICA6CiAgICAgICAgWzEuMl0gCiAgICAgICAgICAgIHRoYW5rcyB0byBCb2IgSGFybmVyIEdFVCBieSBQT1NUIHJlcGxhY2VkIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjQgYWRkPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuNCBhZGQKICAgICAgICBieQogICAgICAgIGNoZXN0bnV0CiAgICAgICAgOgogICAgICAgIFsxLjRdIAogICAgICAgICAgICByZW1vdmVkIGphcnMgZHVlIHRvIGxpY2Vuc2luZyBpc3N1ZXMsIGFkZGVkIGxpY2Vuc2VzIGZvciBqZXR0eS1wbHVzIGphciBmaWxlcyBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS40IHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjQgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBjaGVzdG51dAogICAgICAgIDoKICAgICAgICBbMS40XSAKICAgICAgICAgICAgdXNlIGZhbGxiYWNrOi8vIGFuZCBsZW55YTovLyBzb3VyY2VzIGluc3RlYWQgb2YgLi4vLi4gRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuNCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS40IHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgY2hlc3RudXQKICAgICAgICA6CiAgICAgICAgWzEuNF0gCiAgICAgICAgICAgIGV4YW1wbGUgZXh0ZXJuYWwgb3BlbnNlYXJjaCBtb3ZlZCBpbnRvIGx1Y2VuZSBtb2R1bGUgRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuNCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS40IHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgY2hlc3RudXQKICAgICAgICA6CiAgICAgICAgWzEuNF0gCiAgICAgICAgICAgIHJlbGF0aXZlIGluY2x1ZGUgaXMgYnJva2VuIHdoZW4geGh0bWwucm5nIGlzIGluY2x1ZGVkIGluIG90aGVyIC5ybmcgc2NoZW1hcyAodHJ5IHRvIGVkaXQgYW5kIHNhdmUgdGhlIGhvbWVwYWdlKSBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS40IHJlbW92ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjQgcmVtb3ZlCiAgICAgICAgYnkKICAgICAgICBhbmRyZWFzCiAgICAgICAgOgogICAgICAgIFsxLjRdIAogICAgICAgICAgICBNb3ZlZCBhZG1pbi5zZWFyY2ggdXNlY2FzZSB0byBzZWFyY2ggbW9kdWxlLiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS40IHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjQgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBhbmRyZWFzCiAgICAgICAgOgogICAgICAgIFsxLjRdIAogICAgICAgICAgICBSZW1vdmVkIFN5c3RlbS5vdXQucHJpbnRsbiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS40IHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjQgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBhbmRyZWFzCiAgICAgICAgOgogICAgICAgIFsxLjRdIAogICAgICAgICAgICBNb2RpZmllZCBzaXRlICsgYWRtaW4gYXJlYSBsYXlvdXQuIFJlbW92ZWQgSFRNTCB0YWJsZXMsIHRhYnMgYXJlIGFycmFuZ2VkIHZlcnRpY2FsbHkgbm93LiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS40IHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjQgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBjaGVzdG51dAogICAgICAgIDoKICAgICAgICBbMS40XSAKICAgICAgICAgICAgYWRkZWQgYWJpbGl0eSB0byBoYXZlIG1vcmUgdGhhbiBvbmUgc2NyaXB0IGVsZW1lbnQgaW4gdGhlIGhlYWQgRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuNCByZW1vdmU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS40IHJlbW92ZQogICAgICAgIGJ5CiAgICAgICAgYW5kcmVhcwogICAgICAgIDoKICAgICAgICBbMS40XSAKICAgICAgICAgICAgW21pbm9yIGNoYW5nZV0gcmVtb3ZlZCBlbXB0eSBkaXJlY3RvcnkgRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuNCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS40IHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgYW5kcmVhcwogICAgICAgIDoKICAgICAgICBbMS40XSAKICAgICAgICAgICAgUmVtb3ZlZCBpbmRleCBwYWdlIGZyb20gbGl2ZSBhcmVhLiBUaGlzIGZpeGVzIGJ1ZyAjMzgzODAuIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjQgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuNCB1cGRhdGUKICAgICAgICBieQogICAgICAgIGFuZHJlYXMKICAgICAgICA6CiAgICAgICAgWzEuNF0gCiAgICAgICAgICAgIEFkZGVkIG1lbnUgaXRlbSB0byBzd2l0Y2ggbmF2aWdhdGlvbiB2aXNpYmlsaXR5IERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCBab25lIHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj5ab25lIHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgdGhvcnN0ZW4KICAgICAgICA6CiAgICAgICAgW1pvbmVdIAogICAgICAgICAgICBGaXhpbmcgYnVnIGxpbmUgMTQ6ICRsb2dmaWxlOiBhbWJpZ3VvdXMgcmVkaXJlY3QgRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuNCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS40IHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgYW5kcmVhcwogICAgICAgIDoKICAgICAgICBbMS40XSAKICAgICAgICAgICAgW2RlZmF1bHQgcHViXSB1c2UgbWV0YSBkYXRhIHRvIGRpc3BsYXkgcGFnZSB0aXRsZSBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS40IHJlbW92ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjQgcmVtb3ZlCiAgICAgICAgYnkKICAgICAgICBhbmRyZWFzCiAgICAgICAgOgogICAgICAgIFsxLjRdIAogICAgICAgICAgICBNb3ZlZCBpbnNlcnRBc3NldCBhbmQgaW5zZXJ0SW1hZ2UgdXNlY2FzZXMgdG8gQlhFIG1vZHVsZSBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS40IHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjQgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBhbmRyZWFzCiAgICAgICAgOgogICAgICAgIFsxLjRdIAogICAgICAgICAgICBbbWlub3IgY2hhbmdlXSByZW1vdmVkIGRlYWQgY29kZSBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS40IHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjQgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBhbmRyZWFzCiAgICAgICAgOgogICAgICAgIFsxLjRdIAogICAgICAgICAgICBbQlhFXSBDaGFuZ2VkIGxlbnlhLnVzZWNhc2U9YnhlIHRvIGxlbnlhLm1vZHVsZT1ieGUgZm9yIGluc2VydC1saW5rIHNjcmVlbiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS40IHJlbW92ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjQgcmVtb3ZlCiAgICAgICAgYnkKICAgICAgICBhbmRyZWFzCiAgICAgICAgOgogICAgICAgIFsxLjRdIAogICAgICAgICAgICBbQlhFXSBVc2UgTGVueWEgQ1NTIChkdW1teSkgaW5zdGVhZCBvZiBvYnNvbGV0ZSByZXNvdXJjZS10eXBlIHNwZWNpZmljIENTUyBmb3IgQlhFLiBUaGF0IG5ldmVyIHdvcmtlZCBhbnl3YXksIGJlY2F1c2UgdGhlIHJlc291cmNlLXR5cGUgc3BlY2lmaWMgQ1NTIHdhcyBqdXN0IG5vdCB0aGVyZS4gRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuNCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS40IHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgYW5kcmVhcwogICAgICAgIDoKICAgICAgICBbMS40XSAKICAgICAgICAgICAgUmV2ZXJ0ZWQgYWNjaWRlbnRpYWwgY29tbWl0IChCWEUgbWVudSBpdGVtIGluIGJsb2cgcHVibGljYXRpb24pIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjQgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuNCB1cGRhdGUKICAgICAgICBieQogICAgICAgIGFuZHJlYXMKICAgICAgICA6CiAgICAgICAgWzEuNF0gCiAgICAgICAgICAgIEFkZGVkIG1vZHVsZS1yZXNvdXJjZXMueG1hcCB0byBzZXJ2ZSBtb2R1bGUgcmVzb3VyY2VzIGRpcmVjdGx5LiBSTkcgc2NoZW1hcyBhcmUgbm93IHNlcnZlZCBpbiBhIGdlbmVyaWMgd2F5LCBzZWUgcGlwZWxpbmUgaW4gZ2xvYmFsLXNpdGVtYXAueG1hcCAodGhlcmUgaXMgc3RpbGwgcm9vbSBmb3IgaW1wcm92ZW1lbnQpLiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS40IHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjQgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBqb3NpYXMKICAgICAgICA6CiAgICAgICAgWzEuNF0gCiAgICAgICAgICAgIHVzZSB0aGUgY29ycmVjdCBkb2N1bWVudCBpZCBpbiB0aGUgZXhpc3RhbmNlLWNoZWNrIGluIHRoZSBjYXNlIG9mIGEgc2libGluZy1hZnRlciByZWxhdGlvbjogdXNlIHRoZSBtZXRob2QgZ2V0TmV3RG9jdW1lbnRJZCgpIGJlY2F1c2UgaXQgdGFrZXMgdGhlIHJlbGF0aW9uIChjaGlsZCwgc2libGluZy1hZnRlcikgaW50byBhY2NvdW50LiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgWm9uZSB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+Wm9uZSB1cGRhdGUKICAgICAgICBieQogICAgICAgIHRob3JzdGVuCiAgICAgICAgOgogICAgICAgIFtab25lXSAKICAgICAgICAgICAgQWRkZWQgbXlzZWxmIGFzIHJlY2lwaWVudCB0aWxsIHRlc3RpbmcgaXMgb3Zlci4gZml4ZWQgc2NyaXB0IHRoYXQgd2FpdGluZyBmb3IgaW50ZXJydXB0IHNpZ25hbCB3aGljaCBjYXVzZWQgaGFuZ2luZy4gIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCBTaXRlIHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj5TaXRlIHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgdGhvcnN0ZW4KICAgICAgICA6CiAgICAgICAgW1NpdGVdIAogICAgICAgICAgICBXZWJzaXRlIHVwZGF0ZSB3aXRoIHJlY2VudCBjaGFuZ2VzIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCBab25lIGFkZDwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj5ab25lIGFkZAogICAgICAgIGJ5CiAgICAgICAgdGhvcnN0ZW4KICAgICAgICA6CiAgICAgICAgW1pvbmVdIAogICAgICAgICAgICBpbml0aWFsIHZlcnNpb24gb2YgdGhlIG1haWwgc2NyaXB0IERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjQgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuNCB1cGRhdGUKICAgICAgICBieQogICAgICAgIGFuZHJlYXMKICAgICAgICA6CiAgICAgICAgWzEuNF0gCiAgICAgICAgICAgIEZpeGVkIEJYRSByZXNvdXJjZSBwYXRocyBpbiBibG9nIHB1YmxpY2F0aW9uIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjQgcmVtb3ZlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuNCByZW1vdmUKICAgICAgICBieQogICAgICAgIGFuZHJlYXMKICAgICAgICA6CiAgICAgICAgWzEuNF0gCiAgICAgICAgICAgIFJlbW92ZWQgZW1wdHkgQlhFIGRpcmVjdG9yeSBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS40IGFkZDwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjQgYWRkCiAgICAgICAgYnkKICAgICAgICBhbmRyZWFzCiAgICAgICAgOgogICAgICAgIFsxLjRdIAogICAgICAgICAgICBNb3ZlZCBqYXZhIGNsYXNzIHRvIEJYRSBtb2R1bGUsIGFkZGVkIG1pc3NpbmcgcmVzb3VyY2VzIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjQgYWRkPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuNCBhZGQKICAgICAgICBieQogICAgICAgIGFuZHJlYXMKICAgICAgICA6CiAgICAgICAgWzEuNF0gCiAgICAgICAgICAgIE1vdmluZyBCWEUgdG8gYSBkZWRpY2F0ZWQgbW9kdWxlIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjQgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuNCB1cGRhdGUKICAgICAgICBieQogICAgICAgIGFuZHJlYXMKICAgICAgICA6CiAgICAgICAgWzEuNF0gCiAgICAgICAgICAgIFttaW5vciBjaGFuZ2VdIGNvZGUgZm9ybWF0dGluZyBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgRG9jcyB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+RG9jcyB1cGRhdGUKICAgICAgICBieQogICAgICAgIHRob3JzdGVuCiAgICAgICAgOgogICAgICAgIFtEb2NzXSAKICAgICAgICAgICAgZm9ybWF0aW5nIGNoYW5nZSBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgRG9jcyB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+RG9jcyB1cGRhdGUKICAgICAgICBieQogICAgICAgIHRob3JzdGVuCiAgICAgICAgOgogICAgICAgIFtEb2NzXSAKICAgICAgICAgICAgZm9ybWF0aW5nIGNoYW5nZSBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS40IHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjQgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBqb3NpYXMKICAgICAgICA6CiAgICAgICAgWzEuNF0gCiAgICAgICAgICAgIFttaW5vcl0gcmVtb3ZlZCBpbnZhbGlkIGNoYXJhY3RlciBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgRG9jcyB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+RG9jcyB1cGRhdGUKICAgICAgICBieQogICAgICAgIHRob3JzdGVuCiAgICAgICAgOgogICAgICAgIFtEb2NzXSAKICAgICAgICAgICAgQWRkZWQgc2FuZGJveCB0byB0aGUgc29ydGluZyBjcml0ZXJpYSBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgRG9jcyB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+RG9jcyB1cGRhdGUKICAgICAgICBieQogICAgICAgIHRob3JzdGVuCiAgICAgICAgOgogICAgICAgIFtEb2NzXSAKICAgICAgICAgICAgQWRkZWQgLmh0YWNjZXNzIGZpbGUsIG5ldyB0aGVtZSBhbmQgdGhlIGxvZ3MgZm9yIHRoZSBmb3JyZXN0IHVwZGF0ZSBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgWm9uZSBhZGQ8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+Wm9uZSBhZGQKICAgICAgICBieQogICAgICAgIHRob3JzdGVuCiAgICAgICAgOgogICAgICAgIFtab25lXSAKICAgICAgICAgICAgQWRkaW5nIHVwZGF0ZSBzY3JpcHQgdG8gdXBkYXRlIGZvcnJlc3QgdG8gdHJ1bmsgdmVyc2lvbiwgYnVpbGQgY2xlYW4gYW5kIGJ1aWxkIG9mIGZvcnJlc3QgYW5kIHRoZSBkaXNwYXRjaGVyIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCBEb2NzIGFkZDwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj5Eb2NzIGFkZAogICAgICAgIGJ5CiAgICAgICAgdGhvcnN0ZW4KICAgICAgICA6CiAgICAgICAgW0RvY3NdIAogICAgICAgICAgICBtb3ZpbmcgbG9ncyB0byB0aGUgZG9jcm9vdCB0byBzZWUgdGhlbSBvbmxpbmUuIEFkZGVkIG92ZXJ2aWV3IHBhZ2UgdG8gdGhlIHpvbmUgZG9jdW1lbnRhdGlvbi4gRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IERvY3MgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPkRvY3MgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICB0aG9yc3RlbgogICAgICAgIDoKICAgICAgICBbRG9jc10gCiAgICAgICAgICAgIG1vdmluZyBsb2dzIHRvIHRoZSBkb2Nyb290IHRvIHNlZSB0aGVtIG9ubGluZSBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgWm9uZSB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+Wm9uZSB1cGRhdGUKICAgICAgICBieQogICAgICAgIHRob3JzdGVuCiAgICAgICAgOgogICAgICAgIFtab25lXSAKICAgICAgICAgICAgbW92aW5nIGxvZ3MgdG8gdGhlIGRvY3Jvb3QgdG8gc2VlIHRoZW0gb25saW5lIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCBEb2NzIHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj5Eb2NzIHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgdGhvcnN0ZW4KICAgICAgICA6CiAgICAgICAgW0RvY3NdIAogICAgICAgICAgICBGaXhlZCB0aGUgbmlnaHRsaWVzIHNjcmlwdCAtIHdhcm5pbmcgb2Jzb2xldGUgRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IFpvbmUgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPlpvbmUgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICB0aG9yc3RlbgogICAgICAgIDoKICAgICAgICBbWm9uZV0gCiAgICAgICAgICAgIFVzaW5nIGFsbCBlbnYgdmFyaWFibGVzIGZyb20gdGhlIGVudiBzY3JpcHQgdG8gb3ZlcmNvbWUgdGhlIHByb2JsZW0gZGVjc3JpYmVkIGluIGh0dHA6Ly93d3cuZXhwZXJ0cy1leGNoYW5nZS5jb20vUHJvZ3JhbW1pbmcvUHJvZ3JhbW1pbmdfUGxhdGZvcm1zL1VuaXhfUHJvZ3JhbW1pbmcvUV8yMTY5ODU1My5odG1sIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCBab25lIHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj5ab25lIHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgdGhvcnN0ZW4KICAgICAgICA6CiAgICAgICAgW1pvbmVdIAogICAgICAgICAgICBFeHRyYWN0aW5nIGFsbCBlbnYgdmFyaWFibGVzIHRvIHRoZSBzY3JpcHQgdG8gb3ZlcmNvbWUgdGhlIHByb2JsZW0gZGVjc3JpYmVkIGluIGh0dHA6Ly93d3cuZXhwZXJ0cy1leGNoYW5nZS5jb20vUHJvZ3JhbW1pbmcvUHJvZ3JhbW1pbmdfUGxhdGZvcm1zL1VuaXhfUHJvZ3JhbW1pbmcvUV8yMTY5ODU1My5odG1sIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCBEb2NzIHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj5Eb2NzIHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgdGhvcnN0ZW4KICAgICAgICA6CiAgICAgICAgW0RvY3NdIAogICAgICAgICAgICBSZW1vdmluZyB1bnVzZWQgY29udHJhY3QgYW5kIGFkZGluZyB0aGUgdGhlbWUgc3dpdGNoZXIgY29udHJhY3QuIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCBEb2NzIHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj5Eb2NzIHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgdGhvcnN0ZW4KICAgICAgICA6CiAgICAgICAgW0RvY3NdIAogICAgICAgICAgICBlbmhhbmNlZCBvdXIgdGhlbWUgZGVmaW5pdGlvbiBmaWxlICg9c3RydWN0dXJlcikuIEFkZGluZyBkZW1vIGxpbmtzIHRvIGxlZnQgbmF2aWdhdGlvbiBhbmQgdXBkYXRlZCB0aGUgY3NzLiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgRG9jcyB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+RG9jcyB1cGRhdGUKICAgICAgICBieQogICAgICAgIHRob3JzdGVuCiAgICAgICAgOgogICAgICAgIFtEb2NzXSAKICAgICAgICAgICAgbWlub3IgY2hhbmdlcyBpbiBkb2N1bWVudGF0aW9uIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCBab25lIHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj5ab25lIHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgdGhvcnN0ZW4KICAgICAgICA6CiAgICAgICAgW1pvbmVdIAogICAgICAgICAgICBtaW5vciBjaGFuZ2VzIGZvciB0aGUgbG9nIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCBEb2NzIHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj5Eb2NzIHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgdGhvcnN0ZW4KICAgICAgICA6CiAgICAgICAgW0RvY3NdIAogICAgICAgICAgICBVcGRhdGVkIHRoZSBzdm4yY2hhbmdlcy54c2wgdG8gYWRkIDIwMDYgYXMgYW5vdGhlciB0cnVuayB5ZWFyIGFuZCB6b25lIHRvIHRoZSBzb3J0aW5nIGNyaXRlcmlhLiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgWm9uZSB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+Wm9uZSB1cGRhdGUKICAgICAgICBieQogICAgICAgIHRob3JzdGVuCiAgICAgICAgOgogICAgICAgIFtab25lXSAKICAgICAgICAgICAgRnVydGhlciBlbmhhbmNlbWVudCBvZiBsb2dpbmcgZm9yIGFsbCBzY3JpcHQgdGhhdCBidWlsZCBpbnN0YW5jZXMgb2YgbGVueWEgRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IFpvbmUgYWRkPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPlpvbmUgYWRkCiAgICAgICAgYnkKICAgICAgICB0aG9yc3RlbgogICAgICAgIDoKICAgICAgICBbWm9uZV0gCiAgICAgICAgICAgIHNwbGl0dGVkIG5pZ2h0bGllcyBzY3JpcHQgYXBhcnQgZm9yIHRydW5rIGFuZCBicmFuY2guIG5pZ2h0bGllcyBub3cganVzdCBjYWxscyBib3RoIHNjcmlwdHMuIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCBab25lIHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj5ab25lIHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgdGhvcnN0ZW4KICAgICAgICA6CiAgICAgICAgW1pvbmVdIAogICAgICAgICAgICBFbmhhbmNlZCBsb2dnaW5nIGZvciB0aGUgem9uZSB1cGRhdGUgc2NyaXB0IERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjQgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuNCB1cGRhdGUKICAgICAgICBieQogICAgICAgIG1pY2hpCiAgICAgICAgOgogICAgICAgIFsxLjRdIAogICAgICAgICAgICBSRUFETUUgcmVmaW5lZCBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgRG9jcyB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+RG9jcyB1cGRhdGUKICAgICAgICBieQogICAgICAgIHRob3JzdGVuCiAgICAgICAgOgogICAgICAgIFtEb2NzXSAKICAgICAgICAgICAgbWlub3IgZG9jdSBjaGFuZ2UgRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IFpvbmUgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPlpvbmUgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICB0aG9yc3RlbgogICAgICAgIDoKICAgICAgICBbWm9uZV0gCiAgICAgICAgICAgIHJlZmFjdG9yZWQgdGhlIHpvbmUgdXBkYXRlIHNjcmlwdCB0byBiZSBydW5uYWJsZSBpbiBjcm9uIGFuZCBhZGRlZCBiYXNpYyBsb2dpbmcgRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IFpvbmUgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPlpvbmUgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICB0aG9yc3RlbgogICAgICAgIDoKICAgICAgICBbWm9uZV0gCiAgICAgICAgICAgIHJlZmFjdG9yZWQgdGhlIHN0YWdpbmcgc2NyaXB0IHRvIGJlIHJ1bm5hYmxlIGluIGNyb24gYW5kIGFkZGVkIGJhc2ljIGxvZ2luZyBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgWm9uZSB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+Wm9uZSB1cGRhdGUKICAgICAgICBieQogICAgICAgIHRob3JzdGVuCiAgICAgICAgOgogICAgICAgIFtab25lXSAKICAgICAgICAgICAgbWlub3IgY29tbWVudCBjaGFuZ2UgRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuNCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS40IHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgYW5kcmVhcwogICAgICAgIDoKICAgICAgICBbMS40XSAKICAgICAgICAgICAgU2hvdyBhcHByb3ByaWF0ZSBlcnJvciBtZXNzYWdlIGlmIG1heCB1cGxvYWQgc2l6ZSBpcyBleGNlZWRlZCBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS40IHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjQgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBhbmRyZWFzCiAgICAgICAgOgogICAgICAgIFsxLjRdIAogICAgICAgICAgICBBZGRlZCBzdGF0dXMgY2hlY2sgY2FwYWJpbGl0aWVzIHRvIFVzZWNhc2VJbnZva2VyIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjQgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuNCB1cGRhdGUKICAgICAgICBieQogICAgICAgIGFuZHJlYXMKICAgICAgICA6CiAgICAgICAgWzEuNF0gCiAgICAgICAgICAgIFttaW5vciBjaGFuZ2VdIGNvZGUgZm9ybWF0dGluZyBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS40IHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjQgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBqb3NpYXMKICAgICAgICA6CiAgICAgICAgWzEuNF0gCiAgICAgICAgICAgIGFkZGVkIGNoZWNrIGZvciB0aGUgcHVibGljYXRpb24gaWQ6IGFsbG93IG5vIHNwZWNpYWwgY2hhcmFjdGVycyBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS40IHJlbW92ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjQgcmVtb3ZlCiAgICAgICAgYnkKICAgICAgICBhbnRvbmlvCiAgICAgICAgOgogICAgICAgIFsxLjRdIAogICAgICAgICAgICBSZW1vdmUgZW1wdHkgZGlyLiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS40IHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjQgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBhbmRyZWFzCiAgICAgICAgOgogICAgICAgIFsxLjRdIAogICAgICAgICAgICBSZW1vdmVkIERvY3VtZW50VHlwZS5nZXRNaW1lVHlwZSgpLCBhZGRlZCBEb2N1bWVudC5nZXRNaW1lVHlwZSgpLiBUaGlzIGFsbG93cyBkaWZmZXJlbnQgTUlNRSB0eXBlcyBmb3IgZG9jdW1lbnRzIG9mIHRoZSBzYW1lIERvY3VtZW50VHlwZSAoZS5nLiwgaW1hZ2UvZ2lmIGFuZCBpbWFnZS9qcGVnIGZvciBpbWFnZSBkb2N1bWVudHMpLiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS40IGFkZDwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjQgYWRkCiAgICAgICAgYnkKICAgICAgICBtaWNoaQogICAgICAgIDoKICAgICAgICBbMS40XSAKICAgICAgICAgICAgdGhhbmtzIHRvIEdyZWdnb3IgSW1ib2RlbiB0aGUgYmxvZyBwdWJsaWNhdGlvbiBub3cgaGFzIGFuIGFyY2hpdmUgYW5kIGEgbG90IG9mIGJ1Z3MgaGF2ZSBiZWVuIGZpeGVkIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjQgYWRkPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuNCBhZGQKICAgICAgICBieQogICAgICAgIG1pY2hpCiAgICAgICAgOgogICAgICAgIFsxLjRdIAogICAgICAgICAgICB0aGFua3MgdG8gR3JlZ2dvciBJbWJvZGVuIHRoZSBibG9nIHB1YmxpY2F0aW9uIG5vdyBoYXMgYW4gYXJjaGl2ZSBhbmQgYSBsb3Qgb2YgYnVncyBoYXZlIGJlZW4gZml4ZWQgRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuNCBhZGQ8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS40IGFkZAogICAgICAgIGJ5CiAgICAgICAgbWljaGkKICAgICAgICA6CiAgICAgICAgWzEuNF0gCiAgICAgICAgICAgIHRoYW5rcyB0byBHcmVnZ29yIEltYm9kZW4gdGhlIGJsb2cgcHVibGljYXRpb24gbm93IGhhcyBhbiBhcmNoaXZlIGFuZCBhIGxvdCBvZiBidWdzIGhhdmUgYmVlbiBmaXhlZCBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS40IGFkZDwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjQgYWRkCiAgICAgICAgYnkKICAgICAgICBtaWNoaQogICAgICAgIDoKICAgICAgICBbMS40XSAKICAgICAgICAgICAgdGhhbmtzIHRvIEdyZWdnb3IgSW1ib2RlbiB0aGUgYmxvZyBwdWJsaWNhdGlvbiBub3cgaGFzIGFuIGFyY2hpdmUgYW5kIGEgbG90IG9mIGJ1Z3MgaGF2ZSBiZWVuIGZpeGVkIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjQgYWRkPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuNCBhZGQKICAgICAgICBieQogICAgICAgIG1pY2hpCiAgICAgICAgOgogICAgICAgIFsxLjRdIAogICAgICAgICAgICB0aGFua3MgdG8gR3JlZ2dvciBJbWJvZGVuIHRoZSBibG9nIHB1YmxpY2F0aW9uIG5vdyBoYXMgYW4gYXJjaGl2ZSBhbmQgYSBsb3Qgb2YgYnVncyBoYXZlIGJlZW4gZml4ZWQgRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuNCBhZGQ8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS40IGFkZAogICAgICAgIGJ5CiAgICAgICAgbWljaGkKICAgICAgICA6CiAgICAgICAgWzEuNF0gCiAgICAgICAgICAgIHRoYW5rcyB0byBHcmVnZ29yIEltYm9kZW4gdGhlIGJsb2cgcHVibGljYXRpb24gbm93IGhhcyBhbiBhcmNoaXZlIGFuZCBhIGxvdCBvZiBidWdzIGhhdmUgYmVlbiBmaXhlZCBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS40IHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjQgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBtaWNoaQogICAgICAgIDoKICAgICAgICBbMS40XSAKICAgICAgICAgICAgdGhhbmtzIHRvIEdyZWdnb3IgSW1ib2RlbiB0aGUgYmxvZyBwdWJsaWNhdGlvbiBub3cgaGFzIGFuIGFyY2hpdmUgYW5kIGEgbG90IG9mIGJ1Z3MgaGF2ZSBiZWVuIGZpeGVkIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjQgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuNCB1cGRhdGUKICAgICAgICBieQogICAgICAgIGpvc2lhcwogICAgICAgIDoKICAgICAgICBbMS40XSAKICAgICAgICAgICAgdXNlIDI0IGhvdXJzIGRhdGUgZm9ybWF0IGluc3RlYWQgb2YgMTIgaG91cnMsIGFjY29yZGluZyB0byBJU08tODYwMSBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS40IHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjQgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBtaWNoaQogICAgICAgIDoKICAgICAgICBbMS40XSAKICAgICAgICAgICAgaWQgdGFnIHJlbW92ZWQgRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuNCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS40IHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgam9zaWFzCiAgICAgICAgOgogICAgICAgIFsxLjRdIAogICAgICAgICAgICB1c2Ugc3RhbmRhcmQgSVNPLTg2MDEgZGF0ZSBmb3JtYXQgd2l0aCB0d28gZGlnaXRzIGZvciB0aGUgbW9udGguIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjQgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuNCB1cGRhdGUKICAgICAgICBieQogICAgICAgIGpvc2lhcwogICAgICAgIDoKICAgICAgICBbMS40XSAKICAgICAgICAgICAgVXNlIElPVXRpbHMgaW5zdGVhZCBvZiBkZXByZWNhdGVkIENvcHlVdGlscy4gRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuNCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS40IHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgam9zaWFzCiAgICAgICAgOgogICAgICAgIFsxLjRdIAogICAgICAgICAgICBGaXhlZCBzb21lIGNoYXJhY3RlciBlbmNvZGluZyBwcm9ibGVtczogZG9uJ3QgdXNlIE91dHB1dFN0cmVhbVdyaXRlciBiZWNhdXNlIGl0IGNoYW5nZXMgdGhlIGVuY29kaW5nIG9mIHRoZSBzdHJlYW0uIFVzZSBnZXRQYXJhbWV0ZXIoKSBpbnN0ZWFkIG9mIGdldCgpIGZvciBjb2Nvb24ncyBIdHRwUmVxdWVzdCBjbGFzcyBiZWNhdXNlIGl0IGZpeGVzIHRoZSBlbmNvZGluZy4gQ2hhbmdlZCB0aGUgZGVmYXVsdCB1cmkgZW5jb2Rpbmcgb2YgamV0dHkgdG8gSVNPLTg4NTktMSBzbyBpdCBpcyBlcXVhbCB0byB0b21jYXRzIGRlZmF1bHQgZW5jb2RpbmcuIGZpeGVzIGJ1ZyAjMzYzNDEgRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IERvY3MgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPkRvY3MgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICB0aG9yc3RlbgogICAgICAgIDoKICAgICAgICBbRG9jc10gCiAgICAgICAgICAgIExpbmsgZnJvbSBteWNyb25zLmNyb24gZGVzY3JpYnRpb24gdG8gdGlwcyBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgRG9jcyB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+RG9jcyB1cGRhdGUKICAgICAgICBieQogICAgICAgIHRob3JzdGVuCiAgICAgICAgOgogICAgICAgIFtEb2NzXSAKICAgICAgICAgICAgQWRkZWQgc29tZSBkZXNjcmlwdGlvbiBhYm91dCBob3cgdG8gd29yayB3aXRoIGNyb24gb24gb3VyIHpvbmUgRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuNCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS40IHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgYW5kcmVhcwogICAgICAgIDoKICAgICAgICBbMS40XSAKICAgICAgICAgICAgQWRkZWQgaXNWaXNpYmxlSW5OYXYoKSBtZXRob2QgdG8gU2l0ZU1hbmFnZXIuIFRoaXMgYWxsb3dzIHRvIGZpeCBhbiBOUEUgaW4gdGhlIENyZWF0ZUxhbmd1YWdlIHVzZWNhc2UuIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCBab25lIHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj5ab25lIHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgdGhvcnN0ZW4KICAgICAgICA6CiAgICAgICAgW1pvbmVdIAogICAgICAgICAgICBhZGRlZCB0aGUgZm9ycmVzdGJvdHMgdG8gdGhlIGNyb24gRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuNCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS40IHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgZWRpdGgKICAgICAgICA6CiAgICAgICAgWzEuNF0gCiAgICAgICAgICAgIENhbGwgdGhlIHN2ZyBtb2R1bGUgdG8gc2NhbGUgdGhlIGltYWdlcyBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS40IHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjQgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBlZGl0aAogICAgICAgIDoKICAgICAgICBbMS40XSAKICAgICAgICAgICAgQWRkZWQgc3ZnMnRpZmYgc2VyaWFsaXplciBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS40IHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjQgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBlZGl0aAogICAgICAgIDoKICAgICAgICBbMS40XSAKICAgICAgICAgICAgU2NhbGluZyBvZiBpbWFnZXMgd2hlbiB0aGV5IGFyZSBpbnNlcnRlZCBpbiBhIGRvYy4gV2l0aCB0aGUgY2FsbCBvZiBzdmcgbW9kdWxlLCB0aGUgc2NhbGluZyB3aWxsIGJlIG1hZGUgd2l0aCBzdmcuIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjQgYWRkPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuNCBhZGQKICAgICAgICBieQogICAgICAgIGVkaXRoCiAgICAgICAgOgogICAgICAgIFsxLjRdIAogICAgICAgICAgICBBZGRlZCBzdmcgbW9kdWxlIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjQgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuNCB1cGRhdGUKICAgICAgICBieQogICAgICAgIGVkaXRoCiAgICAgICAgOgogICAgICAgIFsxLjRdIAogICAgICAgICAgICBTZXQgdGhlIHdpZHRoIGFuZCB0aGUgaGVpZ2h0IG9mIHRoZSB1cGxvYWRlZCBpbWFnZSBpbiB0aGUgbGVueWEgbWV0YSBkYXRhIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCBEb2NzIHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj5Eb2NzIHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgdGhvcnN0ZW4KICAgICAgICA6CiAgICAgICAgW0RvY3NdIAogICAgICAgICAgICBBZGRlZCBsaW5rIHRvIHRoZSBzdGFnaW5nIGRvY3UuIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCBab25lIGFkZDwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj5ab25lIGFkZAogICAgICAgIGJ5CiAgICAgICAgdGhvcnN0ZW4KICAgICAgICA6CiAgICAgICAgW1pvbmVdIAogICAgICAgICAgICBBZGRlZCB0d28gbmV3IHNjcmlwdCByZWxhdGVkIHRvIHRoZSBmb3JyZXN0Ym90IHdoaWNoIGRlcGxveXMgdGhlIHN0YWdpbmcgZG9jdSBhbmQgdGhlIHpvbmVzIHNpdGUuIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCBab25lIGFkZDwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj5ab25lIGFkZAogICAgICAgIGJ5CiAgICAgICAgdGhvcnN0ZW4KICAgICAgICA6CiAgICAgICAgW1pvbmVdIAogICAgICAgICAgICBhZGRlZCBhIGNyZWF0ZSBzdGF0dXMgc2NyaXB0IHdoaWNoIHdpbGwgYmUgdXNlZCBmb3IgdGhlIGNoYW5nZXMuaHRtbCBvZiBvdXIgZG9jdW1lbnRhdGlvbiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgRG9jcyBhZGQ8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+RG9jcyBhZGQKICAgICAgICBieQogICAgICAgIHRob3JzdGVuCiAgICAgICAgOgogICAgICAgIFtEb2NzXSAKICAgICAgICAgICAgQWRkZWQgaW5pdGlhbCB2ZXJzaW9uIGFib3V0IHpvbmUgbm90ZXMgRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IFpvbmUgcmVtb3ZlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPlpvbmUgcmVtb3ZlCiAgICAgICAgYnkKICAgICAgICB0aG9yc3RlbgogICAgICAgIDoKICAgICAgICBbWm9uZV0gCiAgICAgICAgICAgIHJlbW92ZWQgdW51c2VkIHNjcmlwdCBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgWm9uZSB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+Wm9uZSB1cGRhdGUKICAgICAgICBieQogICAgICAgIHRob3JzdGVuCiAgICAgICAgOgogICAgICAgIFtab25lXSAKICAgICAgICAgICAgTWFkZSBmb3JyZXN0Ym90IGJ1aWxkIGZpbGVzIG1vcmUgZ2VuZXJpYyBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS40IGFkZDwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjQgYWRkCiAgICAgICAgYnkKICAgICAgICBhbmRyZWFzCiAgICAgICAgOgogICAgICAgIFsxLjRdIAogICAgICAgICAgICBBZGRlZCBEb2N1bWVudEluZm9Nb2R1bGUgKHNlZSBidWcgIzM4MzAwKSwgdGhhbmtzIHRvIEZlbGl4IFJvZXRoZW5iYWNoZXIgRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IFpvbmUgYWRkPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPlpvbmUgYWRkCiAgICAgICAgYnkKICAgICAgICB0aG9yc3RlbgogICAgICAgIDoKICAgICAgICBbWm9uZV0gCiAgICAgICAgICAgIENvcGllZCBlbnZpcm9ubWVudCBzY3JpcHQgZnJvbSBmb3JyZXN0IHpvbmVzIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCBEb2NzIHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj5Eb2NzIHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgdGhvcnN0ZW4KICAgICAgICA6CiAgICAgICAgW0RvY3NdIAogICAgICAgICAgICBjaGFuZ2VkIHRoZSBwcm9wZXJ0aWVzIHRvIHVzZSBoZWFkbGVzcyBzZXJ2ZXIgRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuNCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS40IHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgYW5kcmVhcwogICAgICAgIDoKICAgICAgICBbMS40XSAKICAgICAgICAgICAgQ3JlYXRlRG9jdW1lbnQgdXNlY2FzZTogZG9uJ3QgY29tcGxhaW4gYWJvdXQgbm9uLXZhbGlkIGRvY3VtZW50IElEIGlmIHRoZSBwYXJhbWV0ZXIgZG9jdW1lbnRJZCBoYXMgYmVlbiBwcm92aWRlZCB0byB0aGUgdXNlY2FzZSBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS40IHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjQgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBhbmRyZWFzCiAgICAgICAgOgogICAgICAgIFsxLjRdIAogICAgICAgICAgICBEb24ndCBjb3B5IGNvbnRlbnQgd2hlbiB0aGUgZGVmYXVsdCBwdWJsaWNhdGlvbiBpcyBpbnN0YW5jaWF0ZWQgRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IERvY3MgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPkRvY3MgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICB0aG9yc3RlbgogICAgICAgIDoKICAgICAgICBbRG9jc10gCiAgICAgICAgICAgIEFkZGVkIG1vcmUgaW5mb3JtYXRpb24gYWJvdXQgaW5zdGFsbGVkIHNlcnZpY2VzIG9uIHpvbmVzIGFuZCB1cGRhdGVkIHJlc291cmNlIGR1ZSB0byBjdXJyZW50IGNoYW5nZXMgRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IERvY3MgcmVtb3ZlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPkRvY3MgcmVtb3ZlCiAgICAgICAgYnkKICAgICAgICB0aG9yc3RlbgogICAgICAgIDoKICAgICAgICBbRG9jc10gCiAgICAgICAgICAgIHJlbW92ZWQgbm90IG5lZWRlZCByZXNvdXJjZXMgRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IFpvbmUgYWRkPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPlpvbmUgYWRkCiAgICAgICAgYnkKICAgICAgICB0aG9yc3RlbgogICAgICAgIDoKICAgICAgICBbWm9uZV0gCiAgICAgICAgICAgIEFkZGVkIGNvbmZpZ3VyYXRpb24gZmlsZXMgZm9yIHRoZSBmb3JyZXN0IGJvdC4gRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IERvY3MgYWRkPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPkRvY3MgYWRkCiAgICAgICAgYnkKICAgICAgICB0aG9yc3RlbgogICAgICAgIDoKICAgICAgICBbRG9jc10gCiAgICAgICAgICAgIEFkZGVkIGZhdmljb24uIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjIgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuMiB1cGRhdGUKICAgICAgICBieQogICAgICAgIGpvc2lhcwogICAgICAgIDoKICAgICAgICBbMS4yXSAKICAgICAgICAgICAgZml4ZWQgc2VsZWN0IHN1Y2ggdGhhdCB0aGUgY29ycmVjdCBodHRwIHN0YXR1cyBjb2RlIGlzIHNldC4gRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IFpvbmUgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPlpvbmUgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICB0aG9yc3RlbgogICAgICAgIDoKICAgICAgICBbWm9uZV0gCiAgICAgICAgICAgIEVuaGFuY2VkIGxvZ2dpbmcgZm9yIHRoZSBuaWdodGx5IHNjcmlwdC4gRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IERvY3MgYWRkPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPkRvY3MgYWRkCiAgICAgICAgYnkKICAgICAgICB0aG9yc3RlbgogICAgICAgIDoKICAgICAgICBbRG9jc10gCiAgICAgICAgICAgIEFkZGVkIG1vcmUgZG9jdW1lbnRhdGlvbiBmb3Igem9uZXMgc2VydmVyIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCBab25lIHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj5ab25lIHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgdGhvcnN0ZW4KICAgICAgICA6CiAgICAgICAgW1pvbmVdIAogICAgICAgICAgICBmaXhlZApFeGNlcHRpb24gaW4gdGhyZWFkICJtYWluIiBqYXZhLmxhbmcuSW50ZXJuYWxFcnJvcjogQ2FuJ3QgY29ubmVjdCB0byBYMTEgd2luZG93IHNlcnZlciB1c2luZyAnOjAuMCcgYXMgdGhlIHZhbHVlIG9mIHRoZSBESVNQTEFZIHZhcmlhYmxlLgogRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IERvY3MgYWRkPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPkRvY3MgYWRkCiAgICAgICAgYnkKICAgICAgICB0aG9yc3RlbgogICAgICAgIDoKICAgICAgICBbRG9jc10gCiAgICAgICAgICAgIFN0YXJ0ZWQgb3VyIHpvbmUgc2l0ZS4gSSBhbSB1c2luZyBmb3JyZXN0IGZvciBpdC4gRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IFpvbmUgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPlpvbmUgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICB0aG9yc3RlbgogICAgICAgIDoKICAgICAgICBbWm9uZV0gCiAgICAgICAgICAgIGZvcm1hdGluZyBjaGFuZ2UgRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IFpvbmUgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPlpvbmUgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICB0aG9yc3RlbgogICAgICAgIDoKICAgICAgICBbWm9uZV0gCiAgICAgICAgICAgIEVuaGFuY2VkIHRoZSBmb3JyZXN0IG5pZ2h0bHkgc2NyaXB0IGJ5IGFsbG93aW5nIHBhcmFtZXRlciAtdSAodHJ1ZXxmYWxzZSkuIEFkZGVkIHNjcmlwdCBlY2hvcyBmb3IgdGVsbGluZyB3aGF0IHdlIGFyZSBkb2luZyBhbmQgaG93LiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgWm9uZSB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+Wm9uZSB1cGRhdGUKICAgICAgICBieQogICAgICAgIHRob3JzdGVuCiAgICAgICAgOgogICAgICAgIFtab25lXSAKICAgICAgICAgICAgRW5oYW5jZWQgdGhlIG5pZ2h0bHkgc2NyaXB0IGJ5IGFsbG93aW5nIHBhcmFtZXRlciBsaWtlIC11ICh0cnVlfGZhbHNlKSBhbmQgLWMgKHRydWV8ZmFsc2UpIGFuZCBhZGRlZCBzY3JpcHQgZWNob3MgZm9yIHRlbGxpbmcgd2hhdCB3ZSBhcmUgZG9pbmcgYW5kIGhvdy4gRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IFpvbmUgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPlpvbmUgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICB0aG9yc3RlbgogICAgICAgIDoKICAgICAgICBbWm9uZV0gCiAgICAgICAgICAgIEZpeGVkIHBpZCBidWcgRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IFpvbmUgYWRkPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPlpvbmUgYWRkCiAgICAgICAgYnkKICAgICAgICB0aG9yc3RlbgogICAgICAgIDoKICAgICAgICBbWm9uZV0gCiAgICAgICAgICAgIGFkZGVkIGFsbCBmaWxlcyBmcm9tIHRoZSB6b25lcyBiaW4gdG8gdGhlIHJlcCBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgWm9uZSBhZGQ8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+Wm9uZSBhZGQKICAgICAgICBieQogICAgICAgIHRob3JzdGVuCiAgICAgICAgOgogICAgICAgIFtab25lXSAKICAgICAgICAgICAgSW5pdGlhbCBiaW4gZGlyZWN0b3J5IGZvciBvdXIgem9uZSBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgWm9uZSBhZGQ8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+Wm9uZSBhZGQKICAgICAgICBieQogICAgICAgIHRob3JzdGVuCiAgICAgICAgOgogICAgICAgIFtab25lXSAKICAgICAgICAgICAgYWRkZWQgYmFzaWMgcmVhZG1lIGZpbGUgRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuNCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS40IHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgdGhvcnN0ZW4KICAgICAgICA6CiAgICAgICAgWzEuNF0gCiAgICAgICAgICAgIEFsbG93ZWQgQGNsYXNzIGluIHRoZSBvYmplY3QgZWxlbWVudCBzaW5jZSBpdCBpcyBpbiB0aGUgeGh0bWwyIGNvbW1vbiBtb2R1bGUgRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IFpvbmUgYWRkPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPlpvbmUgYWRkCiAgICAgICAgYnkKICAgICAgICB0aG9yc3RlbgogICAgICAgIDoKICAgICAgICBbWm9uZV0gCiAgICAgICAgICAgIEluaXRpYWwgZGlyZWN0b3J5IGZvciByZXNvdXJjZXMgc3VjaCBhcyBjb25maWd1cmF0aW9ucywgYmFzaCBzY3JpcHRzLCBldGMgRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuNCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS40IHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgY2hlc3RudXQKICAgICAgICA6CiAgICAgICAgWzEuNF0gCiAgICAgICAgICAgIEhFQUQgcmVxdWVzdCBzaG91bGRuJ3QgY29udGFpbiBtZXNzYWdlLWJvZHkgaW4gcmVzcG9uc2UgRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuMiBhZGQ8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS4yIGFkZAogICAgICAgIGJ5CiAgICAgICAgbWljaGkKICAgICAgICA6CiAgICAgICAgWzEuMl0gCiAgICAgICAgICAgIHRoaXMgbGlicmFyeSBpcyBuZWVkZWQgYmVjYXVzZSBvZiBiYWNrd2FyZHMgY29tcGF0aWJpbGl0eSBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS40IHJlbW92ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjQgcmVtb3ZlCiAgICAgICAgYnkKICAgICAgICBtaWNoaQogICAgICAgIDoKICAgICAgICBbMS40XSAKICAgICAgICAgICAgQ29jb29uIGNvbnRhaW5zIGEgbmV3ZXIgdmVyc2lvbiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS40IHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjQgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBjaGVzdG51dAogICAgICAgIDoKICAgICAgICBbMS40XSAKICAgICAgICAgICAgYWRkZWQgd2ViREFWIEdFVCBmb3JtYXQgdG8gb3BlbmRvY3VtZW50CnNlZSBodHRwOi8vbG9jYWxob3N0Ojg4ODgvZGVmYXVsdC93ZWJkYXYvZG9jdHlwZXMvb3BlbmRvY3VtZW50Lm9kdCBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS40IHJlbW92ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjQgcmVtb3ZlCiAgICAgICAgYnkKICAgICAgICBjaGVzdG51dAogICAgICAgIDoKICAgICAgICBbMS40XSAKICAgICAgICAgICAgd2ViZGF2IG1vdmVkIHRvIGEgbW9kdWxlIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjQgYWRkPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuNCBhZGQKICAgICAgICBieQogICAgICAgIGNoZXN0bnV0CiAgICAgICAgOgogICAgICAgIFsxLjRdIAogICAgICAgICAgICBjbGVhbmVkIHVwIHdlYkRBViwgbW92aW5nIGl0IHRvIGEgbW9kdWxlIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCBTaXRlIHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj5TaXRlIHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgdGhvcnN0ZW4KICAgICAgICA6CiAgICAgICAgW1NpdGVdIAogICAgICAgICAgICBVcGRhdGUgZm9yIHJlY2VudCBjaGFuZ2VzIGxpa2UgYWRkaW5nIGZhcSB0byAxLjQsIHVwZGF0aW5nIHdlYnNpdGUtdXBkYXRlLCBhZGRpbmcgbGljZW5zZSwuLi4gRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IERvY3MgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPkRvY3MgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICB0aG9yc3RlbgogICAgICAgIDoKICAgICAgICBbRG9jc10gCiAgICAgICAgICAgIHNpdGU6ZmFxIGlzIG5vdCB1bmlxdWUgYW55bW9yZSBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgRG9jcyB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+RG9jcyB1cGRhdGUKICAgICAgICBieQogICAgICAgIHRob3JzdGVuCiAgICAgICAgOgogICAgICAgIFtEb2NzXSAKICAgICAgICAgICAgRml4ZWQgdGhlIGltYWdlIGJ1ZyBhbmQgYWRkZWQgc3BhY2UgYmVmb3JlIGNvbW1pdHRlciBuYW1lIGluIHRoZSBzdm4yY2hhbmdlcy54c2wuIFVwZGF0ZWQgc3RhdHVzIGZpbGUgYWZ0ZXJ3YXJkcy4gRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IERvY3MgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPkRvY3MgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICB0aG9yc3RlbgogICAgICAgIDoKICAgICAgICBbRG9jc10gCiAgICAgICAgICAgIEFkZGVkIG5vdGUgYWJvdXQgZm9ycmVzdCB2ZXJzaW9uIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCBEb2NzIHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj5Eb2NzIHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgdGhvcnN0ZW4KICAgICAgICA6CiAgICAgICAgW0RvY3NdIAogICAgICAgICAgICBBZGRlZCBtaXNzaW5nIGNvcHlyaWdodCBub3RpY2UgdG8gZmlsZXMgRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IERvY3MgcmVtb3ZlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPkRvY3MgcmVtb3ZlCiAgICAgICAgYnkKICAgICAgICB0aG9yc3RlbgogICAgICAgIDoKICAgICAgICBbRG9jc10gCiAgICAgICAgICAgIFVwZGF0ZWQgZm9ycmVzdCB0byAwLjcgYW5kIGhhZCB0byBtb3ZlIHJhdyBkYXRhIGh0dHA6Ly9mb3JyZXN0LmFwYWNoZS5vcmcvZG9jc18wXzcwL3VwZ3JhZGluZ18wNy5odG1sI3JhdyBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgRG9jcyBhZGQ8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+RG9jcyBhZGQKICAgICAgICBieQogICAgICAgIHRob3JzdGVuCiAgICAgICAgOgogICAgICAgIFtEb2NzXSAKICAgICAgICAgICAgVXBkYXRlZCBmb3JyZXN0IHRvIDAuNyBhbmQgaGFkIHRvIG1vdmUgcmF3IGRhdGEgaHR0cDovL2ZvcnJlc3QuYXBhY2hlLm9yZy9kb2NzXzBfNzAvdXBncmFkaW5nXzA3Lmh0bWwjcmF3IERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjQgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuNCB1cGRhdGUKICAgICAgICBieQogICAgICAgIHRob3JzdGVuCiAgICAgICAgOgogICAgICAgIFsxLjRdIAogICAgICAgICAgICBCdWdmaXggMzgyMjkuIFJlcG9ydGVkIGFuZCBwYXRjaCBzdWJtaXR0ZWQgYnkgcmVuYXVkIHJpY2hhcmRldC4gVGh4IHJlbmF1ZC4gOikgRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IERvY3MgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPkRvY3MgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICB0aG9yc3RlbgogICAgICAgIDoKICAgICAgICBbRG9jc10gCiAgICAgICAgICAgIFVwZGF0ZWQgc3RhdHVzLnhtbCBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgRG9jcyBhZGQ8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+RG9jcyBhZGQKICAgICAgICBieQogICAgICAgIHRob3JzdGVuCiAgICAgICAgOgogICAgICAgIFtEb2NzXSAKICAgICAgICAgICAgQWRkZWQgZmFxIGRvY3VtZW50IHRvIDEuNC4uIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCBEb2NzIHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj5Eb2NzIHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgdGhvcnN0ZW4KICAgICAgICA6CiAgICAgICAgW0RvY3NdIAogICAgICAgICAgICBFeHRyYWN0ZWQgbWF4IG1lbSBub3RlIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCBEb2NzIHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj5Eb2NzIHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgdGhvcnN0ZW4KICAgICAgICA6CiAgICAgICAgW0RvY3NdIAogICAgICAgICAgICBhZGRlZCBub3RlIHRoYXQgcGF0Y2hlcyBhcmUgd2VsY29tZSBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS40IHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjQgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBhbmRyZWFzCiAgICAgICAgOgogICAgICAgIFsxLjRdIAogICAgICAgICAgICBQYXN0ZSB1c2VjYXNlIGxvY2tzIGFzc2V0cy4gVGhpcyBmaXhlcyBidWcgIzE3Mzc4LiBUaGFua3MgdG8gR3JlZ29yIEltYm9kZW4uIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjQgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuNCB1cGRhdGUKICAgICAgICBieQogICAgICAgIGFuZHJlYXMKICAgICAgICA6CiAgICAgICAgWzEuNF0gCiAgICAgICAgICAgIEludm9rZVdvcmtmbG93LmNvbmZpZ3VyZSgpIGNhbGxzIHN1cGVyLmNvbmZpZ3VyZSgpLiBUaGlzIGVuc3VyZXMgdGhhdCB0aGUgdmlldyBjb25maWd1cmF0aW9uIGlzIGxvYWRlZC4gRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuNCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS40IHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgY2hlc3RudXQKICAgICAgICA6CiAgICAgICAgWzEuNF0gCiAgICAgICAgICAgIHdlYkRBViBmaXhlcyBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS40IHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjQgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBjaGVzdG51dAogICAgICAgIDoKICAgICAgICBbMS40XSAKICAgICAgICAgICAgZml4ZXMgQnVnIDM4MjAxOiBEZWFjdGl2YXRlIHVzZWNhc2UgZG9lcyBub3QgbG9jayBkb2N1bWVudCByZXNvdXJjZXMKdGhhbmtzIHRvIGEgcGF0Y2ggYnkgR3JlZ29yIEltYm9kZW4KIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjQgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuNCB1cGRhdGUKICAgICAgICBieQogICAgICAgIGNoZXN0bnV0CiAgICAgICAgOgogICAgICAgIFsxLjRdIAogICAgICAgICAgICBmaXhlcyBhYmlsaXR5IHRvIGRlbGV0ZSB0cmFzaCwgd2FzIGdldHRpbmcgYW4gZXJyb3IgdGhhdCB0aGUgc2l0ZXRyZWUgd2Fzbid0IGxvY2tlZCBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS4yIHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjIgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBqb3NpYXMKICAgICAgICA6CiAgICAgICAgWzEuMl0gCiAgICAgICAgICAgIGFkZGVkIGRlZmF1bHQgdGFyZ2V0IGZvciB0aGUgdGFicyBpbiB0aGUgbGVueWEgbWVudSB0byBwcmV2ZW50IGFuIHhodG1sIHZhbGlkYXRpb24gd2FybmluZyAoYXR0cmlidXRlICd0YXJnZXQnIGNhbm5vdCBiZSBlbXB0eSkgRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuNCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS40IHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgbWljaGkKICAgICAgICA6CiAgICAgICAgWzEuNF0gCiAgICAgICAgICAgIHNvbWUgbW9yZSBsaW5rcyBhZGRlZCBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS40IHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjQgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBtaWNoaQogICAgICAgIDoKICAgICAgICBbMS40XSAKICAgICAgICAgICAgbGVueWEgdmVyc2lvbiBhbmQgbG9jYWwgYnVpbGQgcHJvcGVydGllcyB2ZXJzaW9uIGFkZGVkIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjQgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuNCB1cGRhdGUKICAgICAgICBieQogICAgICAgIG1pY2hpCiAgICAgICAgOgogICAgICAgIFsxLjRdIAogICAgICAgICAgICBsZW55YSB2ZXJzaW9uIG51bWJlciBhZGRlZCBzdWNoIHRoYXQgbm8gY29uZmxpY3QgbWF5IGFyaXNlIHdpdGggb3RoZXIgbGVueWEgdmVyc2lvbnMgRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IERvY3MgYWRkPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPkRvY3MgYWRkCiAgICAgICAgYnkKICAgICAgICB0aG9yc3RlbgogICAgICAgIDoKICAgICAgICBbRG9jc10gCiAgICAgICAgICAgIEFkZGVkIGRvY3VtZW50YXRpb24gYWJvdXQgdGhlIHVybCBtYXBwaW5nIGluIGxlbnlhLiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgU2FuZGJveCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+U2FuZGJveCB1cGRhdGUKICAgICAgICBieQogICAgICAgIGFuZHJlYXMKICAgICAgICA6CiAgICAgICAgW1NhbmRib3hdIAogICAgICAgICAgICBTdGFydGluZyB0byB1cGRhdGUgdGhlIGNvZGUgYWNjb3JkaW5nIHRvIHRoZSBuZXcgcmVwb3NpdG9yeSBBUEkgRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuMiB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS4yIHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgam9zaWFzCiAgICAgICAgOgogICAgICAgIFsxLjJdIAogICAgICAgICAgICByZXBsYWNlZCBkZXByZWNhdGVkIGxpYnJhcnkgZXhjYWxpYnVyLWlvIDEuMSBieSBjb21tb25zLWlvIDEuMSBhbmQgdXBkYXRlZCBhbGwgb2NjdXJyZW5jZXMgaW4gdGhlIGphdmEgY29kZS4gY29tbW9ucy1pby0xLjEuamFyIGlzIGFkZGVkIHRvIGxlbnlhIGJlY2F1c2UgdGhpcyBqYXIgaXMgbm90IGluY2x1ZGVkIGluIGNvY29vbiAyLjEuOCBhbmQgb2xkZXIuIGZpeGVzIGJ1ZyBodHRwOi8vaXNzdWVzLmFwYWNoZS5vcmcvYnVnemlsbGEvc2hvd19idWcuY2dpP2lkPTM4MTI2IERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjIgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuMiB1cGRhdGUKICAgICAgICBieQogICAgICAgIGphbm4KICAgICAgICA6CiAgICAgICAgWzEuMl0gCiAgICAgICAgICAgIEFkZGluZyB0aGUgZm9yY2UtY2hlY2tpbiB1c2VjYXNlIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjIgYWRkPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuMiBhZGQKICAgICAgICBieQogICAgICAgIGphbm4KICAgICAgICA6CiAgICAgICAgWzEuMl0gCiAgICAgICAgICAgIHhzbCBmb3IgdGhlIGZvcmNlLWNoZWNraW4gdXNlY2FzZSBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS4yIGFkZDwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjIgYWRkCiAgICAgICAgYnkKICAgICAgICBqYW5uCiAgICAgICAgOgogICAgICAgIFsxLjJdIAogICAgICAgICAgICBBY3Rpb24gZm9yIHRoZSBmb3JjZS1jaGVja2luIHVzZWNhc2UgRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuNCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS40IHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgYW5kcmVhcwogICAgICAgIDoKICAgICAgICBbMS40XSAKICAgICAgICAgICAgQWRkZWQgJ2NoZWNrZWQgb3V0IGJ5JyBjb2x1bW4gdG8gU2l0ZU92ZXJ2aWV3IHVzZWNhc2UgKGFkbWluIGFyZWEpIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjIgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuMiB1cGRhdGUKICAgICAgICBieQogICAgICAgIG1pY2hpCiAgICAgICAgOgogICAgICAgIFsxLjJdIAogICAgICAgICAgICBDb2Nvb24gMi4xLjggc2V0IGFzIGRlZmF1bHQgRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuMiB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS4yIHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgbWljaGkKICAgICAgICA6CiAgICAgICAgWzEuMl0gCiAgICAgICAgICAgIENvY29vbiB2ZXJzaW9ucyBhZGRlZCBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS4yIGFkZDwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjIgYWRkCiAgICAgICAgYnkKICAgICAgICBtaWNoaQogICAgICAgIDoKICAgICAgICBbMS4yXSAKICAgICAgICAgICAgZXhjYWxpYnVyLWlvIGhhcyBiZWVuIHJlbW92ZWQgZnJvbSBDb2Nvb24tMi4xLjggdXB3YXJkcyBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS40IGFkZDwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjQgYWRkCiAgICAgICAgYnkKICAgICAgICB0aG9yc3RlbgogICAgICAgIDoKICAgICAgICBbMS40XSAKICAgICAgICAgICAgYWRkZWQgdGhlIGxlbnlhIG1ldGEgZGF0YSBnZW5lcmF0b3IuIEl0IGlzIGFuIGFic3RyYWN0IGdlbmVyYXRvciB0aGF0IGNhbiBwcm9kdWNlIHRoZSBtZXRhZGF0YSB0byBhbnkgZ2l2ZW4gZG9jaWQuIEFkZGVkIGFuIGV4YW1wbGUgaG93IG9uZSBjYW4gdXNlIGl0IHdpdGhpbiB0aGUgdHV0b3JpYWwuaHRtbCAob25seSBpbiBlbmdsaXNoKS4gRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IFNpdGUgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPlNpdGUgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICB0aG9yc3RlbgogICAgICAgIDoKICAgICAgICBbU2l0ZV0gCiAgICAgICAgICAgIFVwZGF0ZSB3ZWJwYWdlLgoKSSBhbSB1c2luZyAwLjgtZGV2LCB0aGF0IGlzIHRoZSByZWFzb24gdGhhdCBhbGwgZmlsZXMgaGF2ZSBjaGFuZ2VkLiBJIHJlY29tbWVudCB0byB1c2UgdGhlIGZvcnJlc3QgdHJ1bmsgZm9yIGJ1aWxkaW5nIHRoZSBzaXRlLgogRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IERvY3MgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPkRvY3MgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICB0aG9yc3RlbgogICAgICAgIDoKICAgICAgICBbRG9jc10gCiAgICAgICAgICAgIHVwZGF0ZWQgcHJvcGVydGllcyB0byBidWlsZCB3aXRoIGZvcnJlc3QgMC43IGFuZCAwLjgtZGV2LgogRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IERvY3MgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPkRvY3MgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICB0aG9yc3RlbgogICAgICAgIDoKICAgICAgICBbRG9jc10gCiAgICAgICAgICAgIHVwZGF0ZWQgc3RhdHVzLnhtbAogRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IERvY3MgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPkRvY3MgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICB0aG9yc3RlbgogICAgICAgIDoKICAgICAgICBbRG9jc10gCiAgICAgICAgICAgIHJlbW92ZWQgY29udGFjdCBub3RpY2UuCgogRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IFNhbmRib3ggcmVtb3ZlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPlNhbmRib3ggcmVtb3ZlCiAgICAgICAgYnkKICAgICAgICBtaWNoaQogICAgICAgIDoKICAgICAgICBbU2FuZGJveF0gCiAgICAgICAgICAgIG9ic29sZXRlIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjQgcmVtb3ZlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuNCByZW1vdmUKICAgICAgICBieQogICAgICAgIGNoZXN0bnV0CiAgICAgICAgOgogICAgICAgIFsxLjRdIAogICAgICAgICAgICByZW1vdmVkIGR1ZSB0byBsaWNlbnNpbmcgRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuNCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS40IHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgY2hlc3RudXQKICAgICAgICA6CiAgICAgICAgWzEuNF0gCiAgICAgICAgICAgICBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS40IHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjQgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBjaGVzdG51dAogICAgICAgIDoKICAgICAgICBbMS40XSAKICAgICAgICAgICAgaGFuZGxlIERlcHRoIGhlYWRlciBpbiByZXF1ZXN0IChzcGVjaWZpY2x5IERlcHRoOiAwKSBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS40IHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjQgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBjaGVzdG51dAogICAgICAgIDoKICAgICAgICBbMS40XSAKICAgICAgICAgICAgdXNlIHBhZ2UtZW52ZWxvcGUgdG8gZ2V0IGxhbmcgdmVyc2lvbiBpbnN0ZWFkIG9mIHRyeWluZyB0byBtYXRjaCBpdCBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS40IHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjQgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBjaGVzdG51dAogICAgICAgIDoKICAgICAgICBbMS40XSAKICAgICAgICAgICAgbWFraW5nIHdlYmRhdiB3b3JrIHZpYSAvcHViaWQvd2ViZGF2LyBpbnN0ZWFkIG9mIC9wdWJpZC9hdXRob3JpbmcvIHBhdGguICBUaGlzIHdheSB3ZSBubyBsb25nZXIgaGF2ZSB0byByZWx5IG9uIHRoZQp1c2VyYWdlbnQgaGVhZGVyIHRvIGRldGVybWluZSBkYXYgY2xpZW50cyBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS40IHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjQgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBtaWNoaQogICAgICAgIDoKICAgICAgICBbMS40XSAKICAgICAgICAgICAgbGlzdCBpdGVtcyBhZGRlZCBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS40IHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjQgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBtaWNoaQogICAgICAgIDoKICAgICAgICBbMS40XSAKICAgICAgICAgICAgYW5vdGhlciBsaW5rIGFkZGVkIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjIgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuMiB1cGRhdGUKICAgICAgICBieQogICAgICAgIG1pY2hpCiAgICAgICAgOgogICAgICAgIFsxLjJdIAogICAgICAgICAgICBkZWZhdWx0IGFjdGlvbiBzZXJ2bGV0IGFkZGVkIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjIgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuMiB1cGRhdGUKICAgICAgICBieQogICAgICAgIG1pY2hpCiAgICAgICAgOgogICAgICAgIFsxLjJdIAogICAgICAgICAgICBkZWZhdWx0IGFjdGlvbiBzZXJ2bGV0IGludHJvZHVjZWQgRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IERvY3MgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPkRvY3MgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBtaWNoaQogICAgICAgIDoKICAgICAgICBbRG9jc10gCiAgICAgICAgICAgIGFub3RoZXIgbGl2ZSBzaXRlIGFkZGVkIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCBEb2NzIHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj5Eb2NzIHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgbWljaGkKICAgICAgICA6CiAgICAgICAgW0RvY3NdIAogICAgICAgICAgICBGdXJwaHlzIGFkZGVkIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjQgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuNCB1cGRhdGUKICAgICAgICBieQogICAgICAgIGNoZXN0bnV0CiAgICAgICAgOgogICAgICAgIFsxLjRdIAogICAgICAgICAgICBhZGQgbGlua2NoZWNrIGZ1bmN0aW9uIHRvIHdpbmRvdy5vbmxvYWQgc28gd2UgZG9uJ3Qgb3ZlcnJpZGUgcHJldmlvdXNseSBhc3NpZ25lZCBmdW5jdGlvbnMgRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IFNhbmRib3ggdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPlNhbmRib3ggdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBtaWNoaQogICAgICAgIDoKICAgICAgICBbU2FuZGJveF0gCiAgICAgICAgICAgIFJld3JpdGVSdWxlcyBhZGRlZCBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS4yIHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjIgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBtaWNoaQogICAgICAgIDoKICAgICAgICBbMS4yXSAKICAgICAgICAgICAgaWdub3JlIGRpc3QgZGlyZWN0b3J5IERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjIgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuMiB1cGRhdGUKICAgICAgICBieQogICAgICAgIG1pY2hpCiAgICAgICAgOgogICAgICAgIFsxLjJdIAogICAgICAgICAgICBhbm90aGVyIG5vdGUgYWJvdXQgV0xTIGFkZGVkIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCBTYW5kYm94IHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj5TYW5kYm94IHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgbWljaGkKICAgICAgICA6CiAgICAgICAgW1NhbmRib3hdIAogICAgICAgICAgICBUT0RPcyBhZGRlZCBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgU2FuZGJveCBhZGQ8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+U2FuZGJveCBhZGQKICAgICAgICBieQogICAgICAgIGFuZHJlYXMKICAgICAgICA6CiAgICAgICAgW1NhbmRib3hdIAogICAgICAgICAgICBDcmVhdGVkIHJlcG9zaXRvcnkgaW50ZWdyYXRpb24gd29ya2luZyBjb3B5IGluIHRoZSBzYW5kYm94CiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS40IHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjQgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBlZGl0aAogICAgICAgIDoKICAgICAgICBbMS40XSAKICAgICAgICAgICAgS3VwdSBpc24ndCBpbnRlZ3JhdGVkIGFjY29yZGluZyB0byB0aGUgdXNlY2FzZSBmcmFtZWtvcmsgRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuNCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS40IHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgZWRpdGgKICAgICAgICA6CiAgICAgICAgWzEuNF0gCiAgICAgICAgICAgIEZpeCB0aGUgYXZhaWxhYmlsaXR5IG9mIHRoZSBlZGl0IG1lbnUgYWNjb3JkaW5nIHRvIHRoZSB3b3JrZmxvdzogYnVnIzM3NjAyIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjQgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuNCB1cGRhdGUKICAgICAgICBieQogICAgICAgIGVkaXRoCiAgICAgICAgOgogICAgICAgIFsxLjRdIAogICAgICAgICAgICBSZW1vdmUgdGhlIHdvcmtmbG93TWVudVRyYW5zZm9ybWF0aW9uOiB0aGUgbWVudSdzIGRpc2FiaWxpdHkgYWNjb3JkaW5nIHRvIHRoZSB3b3JrZmxvdyBpcyBjaGVja2VkIGJ5IHRoZSB1c2VjYXNlIHRyYW5zZm9ybWF0aW9uLiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS40IHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjQgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBjaGVzdG51dAogICAgICAgIDoKICAgICAgICBbMS40XSAKICAgICAgICAgICAgZml4ZXMgYnJva2VuIGNvbXBpbGF0aW9uOiBJbmRleENvbmZpZ3VyYXRpb24gKEJ1ZyAzNzg3MykKVGhhbmtzIHRvIEZlbGl4IFL2dGhlbmJhY2hlciBmb3IgdGhlIHBhdGNoCgogRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuNCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS40IHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgZWRpdGgKICAgICAgICA6CiAgICAgICAgWzEuNF0gCiAgICAgICAgICAgIERpc2FibGUgdGhlIHdvcmtmbG93IGF1dGhvcml6ZXIuIEZpeCBidWcgIzM3NjAyIGFuZCAzNzUzNC4gVGhhbmtzIHRvIEZlbGl4IFL2dGhlbmJhY2hlci4gRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuMiBhZGQ8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS4yIGFkZAogICAgICAgIGJ5CiAgICAgICAgam9zaWFzCiAgICAgICAgOgogICAgICAgIFsxLjJdIAogICAgICAgICAgICByZWFkZGVkIGxpYnJhcmllcyBiZWNhdXNlIHRoZXkgYXJlIG5lZWRlZCB0byBidWlsZCBsZW55YSwgYnV0IHJlbW92ZSB0aGVtIGZyb20gdGhlIGJ1aWxkIGRpcmVjdG9yeSBiZWNhdXNlIHRoZXkgY2F1c2UgY29uZmxpY3RzIHdpdGggdGhlIGVuZG9yc2VkIGxpYnJhcmllcyBmcm9tIGNvY29vbi4gRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuNCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS40IHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgbWljaGkKICAgICAgICA6CiAgICAgICAgWzEuNF0gCiAgICAgICAgICAgICB2ZXJzaW9uICBudW1iZXIgZml4ZWQgRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuNCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS40IHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgbWljaGkKICAgICAgICA6CiAgICAgICAgWzEuNF0gCiAgICAgICAgICAgIGJ1aWxkIG1lc3NhZ2UgY2hhbmdlZCBhY2NvcmRpbmcgdG8gZGVmYXVsdCBhY3Rpb24gc2VydmxldCBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS40IHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjQgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBtaWNoaQogICAgICAgIDoKICAgICAgICBbMS40XSAKICAgICAgICAgICAgZGVmYXVsdCBhY3Rpb24gc2VydmxldCBhZGRlZCBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS40IHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjQgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBlZGl0aAogICAgICAgIDoKICAgICAgICBbMS40XSAKICAgICAgICAgICAgQWZ0ZXIgdGhlIGNhbGwgb2Ygc2VuZFBhZ2VBbmRXYWl0LCBhIG5ldyByZXF1ZXN0IGlzIGNyZWF0ZWQuIEdldCB0aGUgY29udGV4dCBmcm9tIGl0LiBmaXggYnVnIDM3NTM0IERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjIgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuMiB1cGRhdGUKICAgICAgICBieQogICAgICAgIGpvc2lhcwogICAgICAgIDoKICAgICAgICBbMS4yXSAKICAgICAgICAgICAgW21pbm9yXSByZW1vdmVkIGNvbW1lbnQsIGJlY2F1c2UgTGVueWEgc2hvdWxkIG5vdyB3b3JrIHdpdGggQ29jb29uIDIuMS44IERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjIgcmVtb3ZlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuMiByZW1vdmUKICAgICAgICBieQogICAgICAgIGpvc2lhcwogICAgICAgIDoKICAgICAgICBbMS4yXSAKICAgICAgICAgICAgVGhlc2UgbGlicmFyaWVzIGFyZSBub3cgdGFrZW4gZnJvbSBjb2Nvb24ncyBsaWIvZW5kb3JzZWQgZGlyZWN0b3J5LCBzbyB0aGV5IGNhbiBiZSByZW1vdmVkIGZyb20gTGVueWEuIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjIgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuMiB1cGRhdGUKICAgICAgICBieQogICAgICAgIGpvc2lhcwogICAgICAgIDoKICAgICAgICBbMS4yXSAKICAgICAgICAgICAgQXBwbGllZCBhIHBhdGNoIGJ5IEZlbGl4IFJvZXRoZW5iYWNoZXIsIHMudC4gTGVueWEgYWxzbyB3b3JrcyB3aXRoIENvY29vbiAyLjEuOCAoc2VlIGJ1ZyAjMzYzODIpLiBUaGFua3MgRmVsaXguIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjQgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuNCB1cGRhdGUKICAgICAgICBieQogICAgICAgIGFuZHJlYXMKICAgICAgICA6CiAgICAgICAgWzEuNF0gCiAgICAgICAgICAgIFJlcG8gbGF5ZXI6IHVzaW5nIEpDUiBVVUlEcyBmb3IgY29udGVudCBub2RlIElEcyBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS40IHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjQgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBhbmRyZWFzCiAgICAgICAgOgogICAgICAgIFsxLjRdIAogICAgICAgICAgICBSZXBvIGxheWVyOiBpbXBsZW1lbnRlZCBkb2N1bWVudCBjb250ZW50IHZhbGlkYXRpb24gRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuNCBhZGQ8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS40IGFkZAogICAgICAgIGJ5CiAgICAgICAgYW5kcmVhcwogICAgICAgIDoKICAgICAgICBbMS40XSAKICAgICAgICAgICAgUmVwbyBsYXllcjogQWRkZWQgQ29udGVudFNvdXJjZSB0byBhY2Nlc3MgcmVwb3NpdG9yeSBjb250ZW50IERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjQgYWRkPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuNCBhZGQKICAgICAgICBieQogICAgICAgIGFuZHJlYXMKICAgICAgICA6CiAgICAgICAgWzEuNF0gCiAgICAgICAgICAgIFJlcG8gbGF5ZXI6IGFkZGVkIEF2YWxvbi1iYXNlZCBSZXBvc2l0b3J5RmFjdG9yeSBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS40IHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjQgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBhbmRyZWFzCiAgICAgICAgOgogICAgICAgIFsxLjRdIAogICAgICAgICAgICBKQ1IgaW50ZWdyYXRpb246IHNpbXBsaWZpZWQgbm9kZSByZW1vdmFsIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjQgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuNCB1cGRhdGUKICAgICAgICBieQogICAgICAgIGFuZHJlYXMKICAgICAgICA6CiAgICAgICAgWzEuNF0gCiAgICAgICAgICAgIFJlcG8gbGF5ZXI6IGFkZGVkIG1ldGhvZCBTaXRlLm1vdmUoKSBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS40IHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjQgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBhbmRyZWFzCiAgICAgICAgOgogICAgICAgIFsxLjRdIAogICAgICAgICAgICBbbWlub3IgY2hhbmdlXSByZXZlcnRlZCBhY2NpZGVudGlhbCBjaGVjay1pbiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS40IGFkZDwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjQgYWRkCiAgICAgICAgYnkKICAgICAgICBhbmRyZWFzCiAgICAgICAgOgogICAgICAgIFsxLjRdIAogICAgICAgICAgICByZXBvIGxheWVyOiBhZGRlZCBtZXRhIGRhdGEgaGFuZGxpbmcgRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuNCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS40IHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgYW5kcmVhcwogICAgICAgIDoKICAgICAgICBbMS40XSAKICAgICAgICAgICAgQWRkZWQgbWV0aG9kIEFyZWEuZ2V0QXJlYUlEKCksIGltcGxlbWVudGVkIE5vZGVQcm94eS50b1N0cmluZygpIHRvIGltcHJvdmUgZGVidWdnaW5nIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjQgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuNCB1cGRhdGUKICAgICAgICBieQogICAgICAgIGFuZHJlYXMKICAgICAgICA6CiAgICAgICAgWzEuNF0gCiAgICAgICAgICAgIEpDUiBpbnRlZ3JhdGlvbjogdXNpbmcgUHJvcGVydHkuZ2V0TGVuZ3RoKCkgaW5zdGVhZCBvZiBjdXN0b20gcHJvcGVydHkgZm9yIERvY3VtZW50LmdldENvbnRlbnRMZW5ndGgoKSBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS40IHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjQgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBhbmRyZWFzCiAgICAgICAgOgogICAgICAgIFsxLjRdIAogICAgICAgICAgICBKQ1IgaW50ZWdyYXRpb246IGZpeGVkIFBhdGguYXBwZW5kKFBhdGgpIC0gYXZvaWQgY2hhbmdpbmcgVW5tb2RpZmlhYmxlTGlzdCBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS40IGFkZDwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjQgYWRkCiAgICAgICAgYnkKICAgICAgICBhbmRyZWFzCiAgICAgICAgOgogICAgICAgIFsxLjRdIAogICAgICAgICAgICBFeHRlbmRlZCByZXBvIEFQSSwgdXBkYXRlZCBKQ1IgcmVwbyBpbXBsZW1lbnRhdGlvbiB0byBhIG1vcmUgZ2VuZXJpYyBhcHByb2FjaCAodXNpbmcgYSByZXBvc2l0b3J5IGZhY2FkZSBhbmQgcGF0aCBzdHJ1Y3R1cmVzKSBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS40IHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjQgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBqb3NpYXMKICAgICAgICA6CiAgICAgICAgWzEuNF0gCiAgICAgICAgICAgIGRvbid0IGFsbG93IHRvIHJlbG9hZCBjb2Nvb24gZm9yIHNlY3VyaXR5IHJlYXNvbnMuIHNlZSBidWcgIzM3NjMxIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjIgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuMiB1cGRhdGUKICAgICAgICBieQogICAgICAgIGVkaXRoCiAgICAgICAgOgogICAgICAgIFsxLjJdIAogICAgICAgICAgICBjYWxsIGZhbGxiYWNrIGZvciB0aGUgcm9vdCB0cmFuc2Zvcm1hdGlvbiBhbmQgdGhlIHNpdGV0cmVlMm5hdi54c2wsIHNvIHRoYXQgdGhleSBjYW4gYmUgb3ZlcndyaWRkZW4gaW4gdGhlIHB1YnMgKGV4OiBubyBsYW5ndWFnZSBzdWZmaXggXyBpbiB1cmwpIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjQgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuNCB1cGRhdGUKICAgICAgICBieQogICAgICAgIGNoZXN0bnV0CiAgICAgICAgOgogICAgICAgIFsxLjRdIAogICAgICAgICAgICBhZGRlZCBhYmlsaXR5IHRvIHJlcXVlc3Qgc2hhcmVkIHJlc291cmNlcyBbanMgb3IgY3NzXSBpbmhlcml0ZWQgW29yIGFuY2VzdG9yXSBmcm9tIHRlbXBsYXRlZCBwdWJzCgpleDogcGFnZS5jc3MKCkBpbXBvcnQgdXJsKHBhZ2UuaW5oZXJpdGVkLmNzcyk7Ci8qIHB1YiBzcGVjaWZpYyBjc3MgKi8gRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuMiB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS4yIHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgbWljaGkKICAgICAgICA6CiAgICAgICAgWzEuMl0gCiAgICAgICAgICAgIHBhdGNoIHVwZGF0ZSBmcm9tIEpvc2lhcyBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS40IHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjQgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBhbmRyZWFzCiAgICAgICAgOgogICAgICAgIFsxLjRdIAogICAgICAgICAgICBKQ1IgbW9kdWxlOiBhZGRlZCBBc3NlcnRpb24gdXRpbGl0eSBjbGFzcywgZml4ZWQgc29tZSBOUEUgaXNzdWVzIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjIgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuMiB1cGRhdGUKICAgICAgICBieQogICAgICAgIG1pY2hpCiAgICAgICAgOgogICAgICAgIFsxLjJdIAogICAgICAgICAgICB0aGFua3MgdG8gSm9zaWFzIFRob2VueSB0aGUgc2l0ZXRyZWUgYnVnIHJlIGFjY2VzcyBjb250cm9sbGluZyBoYXMgYmVlbiBmaXhlZCBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS4yIHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjIgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBtaWNoaQogICAgICAgIDoKICAgICAgICBbMS4yXSAKICAgICAgICAgICAgc2VjdXJpdHkgcGF0Y2ggRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuNCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS40IHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgY2hlc3RudXQKICAgICAgICA6CiAgICAgICAgWzEuNF0gCiAgICAgICAgICAgIHhodG1sMmluZGV4IHhzbCBwYXRoIGNoYW5nZXMgRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuNCBhZGQ8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS40IGFkZAogICAgICAgIGJ5CiAgICAgICAgY2hlc3RudXQKICAgICAgICA6CiAgICAgICAgWzEuNF0gCiAgICAgICAgICAgIG1vdmVkIGx1Y2VuZSBzdHlsZXNoZWV0cyBpbnRvIHJlc291cmNlIHNwZWNpZmljIG1vZHVsZXMgeHNsdCBkaXJlY3RvcnkKVGhhbmtzIHRvIEZlbGl4IApGaXhlcyBCdWcgMzc2MjYgRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuNCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS40IHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgY2hlc3RudXQKICAgICAgICA6CiAgICAgICAgWzEuNF0gCiAgICAgICAgICAgIG1hZGUgbHVjZW5lIGluZGV4ZXMgYXJlYSAobGl2ZSBhbmQgYXV0aG9yaW5nKSBzcGVjaWZpYywKbHVjZW5lIHVzZWNhc2Ugd2hpY2ggY2FuIGJlIGNhbGxlZCBhcyBhbiBleGl0IHVzZWNhc2Ugb2Ygb3RoZXIgdXNlY2FzZXMgRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IFNpdGUgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPlNpdGUgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBqYW5uCiAgICAgICAgOgogICAgICAgIFtTaXRlXSAKICAgICAgICAgICAgQWRkaW5nIFVuaSBadWVyaWNoIHRvIHRoZSBsaXZlIHdlYnNpdGVzIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCBTaXRlIHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj5TaXRlIHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgamFubgogICAgICAgIDoKICAgICAgICBbU2l0ZV0gCiAgICAgICAgICAgIEFkZGluZyBVbmkgWnVlcmljaCB0byB0aGUgbGl2ZSB3ZWJzaXRlcyBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS40IGFkZDwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjQgYWRkCiAgICAgICAgYnkKICAgICAgICBjaGVzdG51dAogICAgICAgIDoKICAgICAgICBbMS40XSAKICAgICAgICAgICAgYXBwbGllZCBQYXRjaCBmb3IgcmVtb3ZpbmcgbG9nNGo6V0FSTiByZW1vdmluZyB1cG9uIEpldHR5IHN0YXJ0LXVwLApCdWcgMzcyNDAsICBUaGFua3MgdG8gYSBwYXRjaCBieSBGZWxpeCBS9nRoZW5iYWNoZXIgRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuNCBhZGQ8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS40IGFkZAogICAgICAgIGJ5CiAgICAgICAgY2hlc3RudXQKICAgICAgICA6CiAgICAgICAgWzEuNF0gCiAgICAgICAgICAgIG1vdmVkIGx1Y2VuZSBzcGVjaWZpYyBmaWxlcyBpbnRvIGx1Y2VuZSBtb2R1bGUgZGlyZWN0b3J5IERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjQgYWRkPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuNCBhZGQKICAgICAgICBieQogICAgICAgIGNoZXN0bnV0CiAgICAgICAgOgogICAgICAgIFsxLjRdIAogICAgICAgICAgICBjbGVhbiB1cCwgbW92ZWQgbHVjZW5lIHNwZWNpZmljIGZpbGVzIGludG8gdGhlIGx1Y2VuZSBtb2R1bGUgZGlyZWN0b3J5IERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjIgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuMiB1cGRhdGUKICAgICAgICBieQogICAgICAgIG1pY2hpCiAgICAgICAgOgogICAgICAgIFsxLjJdIAogICAgICAgICAgICBhZHZhbmNlZCBtZXRob2RzIHN1Y2ggdGhhdCBkb2N1bWVudCByb290IGRpcnMgd2lsbCBiZSBjb25maWd1cmFibGUgY29tbWVudGVkIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjQgYWRkPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuNCBhZGQKICAgICAgICBieQogICAgICAgIGNoZXN0bnV0CiAgICAgICAgOgogICAgICAgIFsxLjRdIAogICAgICAgICAgICBVcGRhdGUgSmV0dHkgdG8gdmVyc2lvbiA1LjEuNApUaGFua3MgdG8gYSBwYXRjaCBieSBGZWxpeCBS9nRoZW5iYWNoZXIgRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuNCBhZGQ8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS40IGFkZAogICAgICAgIGJ5CiAgICAgICAgY2hlc3RudXQKICAgICAgICA6CiAgICAgICAgWzEuNF0gCiAgICAgICAgICAgIFVwZGF0ZSBKZXR0eSB0byB2ZXJzaW9uIDUuMS40ClRoYW5rcyB0byBhIHBhdGNoIGJ5IEZlbGl4IFL2dGhlbmJhY2hlciBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS40IHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjQgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBjaGVzdG51dAogICAgICAgIDoKICAgICAgICBbMS40XSAKICAgICAgICAgICAgYWxsb3dzIHB1Ymxpc2ggdXNlY2FzZSB0byByZWluZGV4IGRvYyBpbiBsaXZlIGluZGV4IHdoZW4gcnVuIGZyb20gc2NoZWR1bGVkIGpvYiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS40IHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjQgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBjaGVzdG51dAogICAgICAgIDoKICAgICAgICBbMS40XSAKICAgICAgICAgICAgVGFrZXMgY2FyZSBvZiBjbGFzcyBjYXN0IGV4Y2VwdGlvbiB3aGVuIHNjaGVkdWxlZCBqb2IgdHJpZXMgdG8gcHVibGlzaCBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS40IHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjQgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBjaGVzdG51dAogICAgICAgIDoKICAgICAgICBbMS40XSAKICAgICAgICAgICAgYWRkZWQgSk9CX0RBVEEgY29sdW1uIHRvIHFydHpfdHJpZ2dlcnMgdGFibGUKZml4ZXMgZXJyb3IgIkNvbHVtbiBjb3VudCBkb2VzIG5vdCBtYXRjaCBpbiBzdGF0ZW1lbnQiIHdoZW4gdHJ5aW5nIHRvIHNjaGVkdWxlIGEgam9iCiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS40IHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjQgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBhbmRyZWFzCiAgICAgICAgOgogICAgICAgIFsxLjRdIAogICAgICAgICAgICBJbml0aWFsaXplIGFsbCBtYW5kYXRvcnkgSkNSIHByb3BlcnRpZXMuIFRoZSBtaWdyYXRlLTE0IHRhcmdldCB3b3JrcyBub3cuIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjQgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuNCB1cGRhdGUKICAgICAgICBieQogICAgICAgIGFuZHJlYXMKICAgICAgICA6CiAgICAgICAgWzEuNF0gCiAgICAgICAgICAgIEltcHJvdmVkIHJlcG8gaW50ZXJmYWNlcyBhbmQgSkNSLWJhc2VkIGltcGxlbWVudGF0aW9uLCBhZGRlZCBKQ1JSZXBvc2l0b3J5VGVzdCwgdXBkYXRlZCBtaWdyYXRpb24gY2xhc3MgYWNjb3JkaW5nbHkgRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuNCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS40IHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgYW5kcmVhcwogICAgICAgIDoKICAgICAgICBbMS40XSAKICAgICAgICAgICAgVXBkYXRlZCBjdXN0b21fbm9kZXR5cGVzLnhtbCB0byBuZXcgSmFja3JhYmJpdCBzeW50YXggRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuNCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS40IHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgYW5kcmVhcwogICAgICAgIDoKICAgICAgICBbMS40XSAKICAgICAgICAgICAgQWRkZWQgaW5mcmFzdHJ1Y3R1cmUgZm9yIG1vZHVsZSB0ZXN0IGJ1aWxkcyBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS40IGFkZDwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjQgYWRkCiAgICAgICAgYnkKICAgICAgICBjaGVzdG51dAogICAgICAgIDoKICAgICAgICBbMS40XSAKICAgICAgICAgICAgcmVwbGFjZXMgdGhlIFNvdXJjZVdyaXRpbmdUcmFuc2Zvcm1lciB3aXRoIGEgZmxvdyBhcHByb2FjaCB0aGF0IHVzZXMKdGhlIHByb2Nlc3NQaXBlbGluZVRvKCkgbWV0aG9kIG9mIHRoZSBjb2Nvb24gZmxvdyBvYmplY3QuIFdoZW4gZXhpdGluZyB0aGUgZmxvdwphIHBsYWluIHN0YXR1cyBjb2RlIGlzIHNlbnQgYmFjayB0byB0aGUgYnJvd3Nlci4KClRoYW5rcyB0byBhIHBhdGNoIGJ5IEZlbGl4IFL2dGhlbmJhY2hlciBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS40IGFkZDwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjQgYWRkCiAgICAgICAgYnkKICAgICAgICBjaGVzdG51dAogICAgICAgIDoKICAgICAgICBbMS40XSAKICAgICAgICAgICAgcmVwbGFjZXMgdGhlIFNvdXJjZVdyaXRpbmdUcmFuc2Zvcm1lciB3aXRoIGEgZmxvdyBhcHByb2FjaCB0aGF0IHVzZXMKdGhlIHByb2Nlc3NQaXBlbGluZVRvKCkgbWV0aG9kIG9mIHRoZSBjb2Nvb24gZmxvdyBvYmplY3QuIFdoZW4gZXhpdGluZyB0aGUgZmxvdwphIHBsYWluIHN0YXR1cyBjb2RlIGlzIHNlbnQgYmFjayB0byB0aGUgYnJvd3Nlci4KClRoYW5rcyB0byBhIHBhdGNoIGJ5IEZlbGl4IFL2dGhlbmJhY2hlciBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgRG9jcyB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+RG9jcyB1cGRhdGUKICAgICAgICBieQogICAgICAgIGphbm4KICAgICAgICA6CiAgICAgICAgW0RvY3NdIAogICAgICAgICAgICBBZGQgdGhlIFVuaXZlcnNpdHkgb2YgWnVlcmljaCB0byB0aGUgbGl2ZSBzaXRlIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjQgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuNCB1cGRhdGUKICAgICAgICBieQogICAgICAgIG1pY2hpCiAgICAgICAgOgogICAgICAgIFsxLjRdIAogICAgICAgICAgICBvcGVuZG9jdW1lbnR0ZXh0IGZpeGVkIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjQgYWRkPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuNCBhZGQKICAgICAgICBieQogICAgICAgIG1pY2hpCiAgICAgICAgOgogICAgICAgIFsxLjRdIAogICAgICAgICAgICBzaW1wbGUgb3BlbmRvY3VtZW50IFhTTFQgYWRkZWQgRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuNCByZW1vdmU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS40IHJlbW92ZQogICAgICAgIGJ5CiAgICAgICAgbWljaGkKICAgICAgICA6CiAgICAgICAgWzEuNF0gCiAgICAgICAgICAgIExHUEwgY29kZSByZW1vdmVkIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjIgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuMiB1cGRhdGUKICAgICAgICBieQogICAgICAgIG1pY2hpCiAgICAgICAgOgogICAgICAgIFsxLjJdIAogICAgICAgICAgICBnZXREb2N1bWVudCBhZGRlZCB0byBtYWtlIGNvbnRlbnQgZGlyIGNvbmZpZ3VyYWJsZSBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS40IGFkZDwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjQgYWRkCiAgICAgICAgYnkKICAgICAgICBtaWNoaQogICAgICAgIDoKICAgICAgICBbMS40XSAKICAgICAgICAgICAgbHVjZW5lIGNvbmZpZyBhZGRlZCBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS40IHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjQgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBtaWNoaQogICAgICAgIDoKICAgICAgICBbMS40XSAKICAgICAgICAgICAgaW5kZXhpbmcgYWRkZWQgRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuNCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS40IHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgbWljaGkKICAgICAgICA6CiAgICAgICAgWzEuNF0gCiAgICAgICAgICAgIGluZGV4aW5nIGFkZGVkIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjQgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuNCB1cGRhdGUKICAgICAgICBieQogICAgICAgIGNoZXN0bnV0CiAgICAgICAgOgogICAgICAgIFsxLjRdIAogICAgICAgICAgICBhZGRlZCBrdXB1c2F2ZS54c2wgYXMgaW1wb3J0IHRvIGNsZWFuIHVwIGt1cHUgZ2VuZXJhdGVkIHNvdXJjZSBiZWZvcmUgdmFsaWRhdGlvbiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS40IGFkZDwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjQgYWRkCiAgICAgICAgYnkKICAgICAgICBtaWNoaQogICAgICAgIDoKICAgICAgICBbMS40XSAKICAgICAgICAgICAgbW9yZSBsdWNlbmUgc3R1ZmYgb2YgUm9iZXJ0IEdvZW5lIGFkZGVkIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjQgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuNCB1cGRhdGUKICAgICAgICBieQogICAgICAgIG1pY2hpCiAgICAgICAgOgogICAgICAgIFsxLjRdIAogICAgICAgICAgICBzZWFyY2ggZmllbGQgYWRkZWQgRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuNCBhZGQ8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS40IGFkZAogICAgICAgIGJ5CiAgICAgICAgbWljaGkKICAgICAgICA6CiAgICAgICAgWzEuNF0gCiAgICAgICAgICAgIGx1Y2VuZSBtb2R1bGUgb2YgUm9iZXJ0IEdvZW5lIGFkZGVkIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjQgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuNCB1cGRhdGUKICAgICAgICBieQogICAgICAgIG1pY2hpCiAgICAgICAgOgogICAgICAgIFsxLjRdIAogICAgICAgICAgICBsdWNlbmUgY29kZSBvZiBSb2JlcnQgR29lbmUgYWRkZWQgRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuNCBhZGQ8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS40IGFkZAogICAgICAgIGJ5CiAgICAgICAgbWljaGkKICAgICAgICA6CiAgICAgICAgWzEuNF0gCiAgICAgICAgICAgIGx1Y2VuZSBzcGVjaWZpYyBjbGFzc2VzIHJlIFJvYmVydCBHb2VuZXMgY29kZSBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS40IHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjQgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBtaWNoaQogICAgICAgIDoKICAgICAgICBbMS40XSAKICAgICAgICAgICAgbGNyIGNoYW5nZWQgYmVjYXVzZSBvZiBhZGRpdGlvbmFsIGx1Y2VuZSBibG9jayBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS40IGFkZDwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjQgYWRkCiAgICAgICAgYnkKICAgICAgICBtaWNoaQogICAgICAgIDoKICAgICAgICBbMS40XSAKICAgICAgICAgICAgbHVjZW5lIFhTTFRzIGFkZGVkIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjQgYWRkPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuNCBhZGQKICAgICAgICBieQogICAgICAgIG1pY2hpCiAgICAgICAgOgogICAgICAgIFsxLjRdIAogICAgICAgICAgICBSb2JlcnQgR29lbmUncyBsdWNlbmUgdXNlY2FzZSBhZGRlZCBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS40IHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjQgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBtaWNoaQogICAgICAgIDoKICAgICAgICBbMS40XSAKICAgICAgICAgICAgTHVjZW5lIGJsb2NrIGFkZGVkIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjQgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuNCB1cGRhdGUKICAgICAgICBieQogICAgICAgIG1pY2hpCiAgICAgICAgOgogICAgICAgIFsxLjRdIAogICAgICAgICAgICBjb25maWcgZm9yIEplY2VpcmEgUmVwb3NpdG9yeSBGYWN0b3J5IGFkZGVkIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjQgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuNCB1cGRhdGUKICAgICAgICBieQogICAgICAgIGFuZHJlYXMKICAgICAgICA6CiAgICAgICAgWzEuNF0gCiAgICAgICAgICAgIENhbGxpbmcgRG9jdW1lbnRNYW5hZ2VyLmlzVmFsaWREb2N1bWVudE5hbWUoKSBmcm9tIENyZWF0ZURvY3VtZW50IHVzZWNhc2UgdG8gdmFsaWRhdGUgZG9jdW1lbnQgbmFtZXMuIERvY3VtZW50TWFuYWdlckltcGwgYWxsb3dzIG9ubHkgY2hhcmFjdGVycyBhbmQgbnVtYmVycyBpbiBkb2N1bWVudCBJRHMuIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjIgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuMiB1cGRhdGUKICAgICAgICBieQogICAgICAgIG1pY2hpCiAgICAgICAgOgogICAgICAgIFsxLjJdIAogICAgICAgICAgICBSZXZpc2lvbiBjb250cm9sbGVyIHByZXBhcmVkIHN1Y2ggdGhhdCBpdCB3b3JrcyB3aXRoIGNvbmZpZ3VyYWJsZSBjb250ZW50IGRpcmVjdG9yaWVzIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjIgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuMiB1cGRhdGUKICAgICAgICBieQogICAgICAgIG1pY2hpCiAgICAgICAgOgogICAgICAgIFsxLjJdIAogICAgICAgICAgICBub3RlIGFib3V0IHhvcHVzaGFuZGxlciBhY3Rpb24gYWRkZWQgRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuMiB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS4yIHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgbWljaGkKICAgICAgICA6CiAgICAgICAgWzEuMl0gCiAgICAgICAgICAgIG5lZWRzIHRvIHdvcmsgYWxzbyB3aXRob3V0IGNvbmZpZ3VyYXRpb24gaW4gb3JkZXIgdG8gc3RheSBiYWNrd2FyZHMgY29tcGF0aWJsZSBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS4yIHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjIgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBtaWNoaQogICAgICAgIDoKICAgICAgICBbMS4yXSAKICAgICAgICAgICAgbmVlZHMgYWxzbyB0byB3b3JrIHdpdGhvdXQgY29uZmlndXJhdGlvbiBpbiBvcmRlciB0byBzdGF5IGJhY2t3YXJkcyBjb21wYXRpYmxlIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjQgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuNCB1cGRhdGUKICAgICAgICBieQogICAgICAgIHRob3JzdGVuCiAgICAgICAgOgogICAgICAgIFsxLjRdIAogICAgICAgICAgICBGaXhlZCBtaXNzaW5nIGkxOG4gbmFtZXNwYWNlIGluIGNmb3JtcyBtb2R1bGUgYW5kIGV4YW1wbGUuIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjQgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuNCB1cGRhdGUKICAgICAgICBieQogICAgICAgIGNoZXN0bnV0CiAgICAgICAgOgogICAgICAgIFsxLjRdIAogICAgICAgICAgICByZXR1cm4gcHJvcGVyIHN0YXR1cyBjb2RlIG9uIHN1Y2Nlc3MgUFVUIHJlcXVlc3QgRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuNCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS40IHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgYW5kcmVhcwogICAgICAgIDoKICAgICAgICBbMS40XSAKICAgICAgICAgICAgQXBwbHkgbW9kdWxlIG1lbnUgZmFsbGJhY2sgdG8gbWVudXMueG1hcCwgbm90IHRvIHNpbmdsZSBYU1BzIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjQgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuNCB1cGRhdGUKICAgICAgICBieQogICAgICAgIGFuZHJlYXMKICAgICAgICA6CiAgICAgICAgWzEuNF0gCiAgICAgICAgICAgIEFkZGVkIFhIVE1MIGZvcm1hdCB0byBzZWFyY2ggcmVzb3VyY2UgdHlwZSBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS40IHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjQgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBhbmRyZWFzCiAgICAgICAgOgogICAgICAgIFsxLjRdIAogICAgICAgICAgICBUaHJvdyBjb21wcmVoZW5zaWJsZSBleGNlcHRpb24gd2hlbiBhIHJlc291cmNlIHR5cGUgZG9lcyBub3Qgc3VwcG9ydCBhIHBhcnRpY3VsYXIgZm9ybWF0LiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS40IHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjQgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBhbmRyZWFzCiAgICAgICAgOgogICAgICAgIFsxLjRdIAogICAgICAgICAgICBBZGRlZCBDb250ZXh0VXRpbGl0eSB0byBhbGxvdyB0aGUgRG9jdW1lbnRQb2xpY3lNYW5hZ2VyV3JhcHBlciB0byBhY2Nlc3MgdGhlIGNvbnRleHQgb24gZGVtYW5kLiBUaGlzIGZpeGVzIGJ1ZyAjMzY0OTQuIENyZWRpdHMgdG8gRmVsaXggUm9ldGhlbmJhY2hlci4gRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuNCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS40IHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgYW5kcmVhcwogICAgICAgIDoKICAgICAgICBbMS40XSAKICAgICAgICAgICAgcmVtb3ZlZCByZWZlcmVuY2UgdG8gbm9uLWV4aXN0aW5nIGVudHJ5IG1vZHVsZSBmcm9tIGJsb2cgcHVibGljYXRpb24gRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuMiBhZGQ8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS4yIGFkZAogICAgICAgIGJ5CiAgICAgICAgbWljaGkKICAgICAgICA6CiAgICAgICAgWzEuMl0gCiAgICAgICAgICAgIFByb3h5R2VuZXJhdG9yIHdpdGggaHR0cHMgcmVzcC4gZ2V0U2NoZW1lIGVuaGFuY2VkIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjQgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuNCB1cGRhdGUKICAgICAgICBieQogICAgICAgIGFuZHJlYXMKICAgICAgICA6CiAgICAgICAgWzEuNF0gCiAgICAgICAgICAgIEpDUiBpbnRlZ3JhdGlvbjogaW1wbGVtZW50ZWQgd3JpdGluZyBhbmQgcmVhZGluZyBkb2N1bWVudCBjb250ZW50IERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjQgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuNCB1cGRhdGUKICAgICAgICBieQogICAgICAgIGNoZXN0bnV0CiAgICAgICAgOgogICAgICAgIFsxLjRdIAogICAgICAgICAgICBjb21tZW50IHRoaXMgc2FtcGxlIG91dCB1bnRpbGwgdGhlcmUgaXMgYSB3YXkgdG8gbWFrZSBhZGRpdGlvbmFsIHNhbXBsZXMgcHVibGljYXRpb24gc3BlY2lmaWMgRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuNCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS40IHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgY2hlc3RudXQKICAgICAgICA6CiAgICAgICAgWzEuNF0gCiAgICAgICAgICAgIEV4YW1wbGUgb2YgYSBvcHRpb25hbCB4aHRtbCBzYW1wbGUgaW4gdGhlIGRlZmF1bHQgcHViLiAgUGVyaGFwcyBzb21lb25lIGNhbiBwcm92aWRlIGEgcGF0Y2ggZm9yIGEgYmV0dGVyIGV4YW1wbGUgb2YgYSAyIGNvbHVtbiBwYWdlIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjQgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuNCB1cGRhdGUKICAgICAgICBieQogICAgICAgIGNoZXN0bnV0CiAgICAgICAgOgogICAgICAgIFsxLjRdIAogICAgICAgICAgICBmaXhlcyBhYmlsaXR5IHRvIHNhdmUgaW4ga3VwdSB1c2luZyB3ZWJkYXYgaW50ZXJmYWNlIGluc3RlYWQgb2Yga3VwdSB1c2VjYXNlLiAgCldpbGwgY2xlYW4gdXAgdXNlY2FzZSBpZiB0aGlzIHNlZW1zIHRvIHdvcmsgb3V0LiAgUG9zdCBwcm9jZXNzaW5nIChiZWZvcmUgdmFsaWRhdGlvbikgb2YKZG9jdW1lbnQgY2FuIGJlIGRvbmUgd2l0aCBtb2R1bGVzL3hodG1sL3hzbHQvY2xlYW4teGh0bWwueHNsIGlmIG5lZWRlZC4gICBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS4yIHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjIgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBtaWNoaQogICAgICAgIDoKICAgICAgICBbMS4yXSAKICAgICAgICAgICAgcGF0aHMgbmV1dHJhbGl6ZWQgRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuMiB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS4yIHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgbWljaGkKICAgICAgICA6CiAgICAgICAgWzEuMl0gCiAgICAgICAgICAgIHBhdGhzIG5ldXRyYWxpemVkIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjQgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuNCB1cGRhdGUKICAgICAgICBieQogICAgICAgIGNoZXN0bnV0CiAgICAgICAgOgogICAgICAgIFsxLjRdIAogICAgICAgICAgICBhZGRlZCB1c2VySWQsIGdyb3VwSWQsIGFuZCBpcFJhbmdlSWQgdG8gZXhpdCB1c2VjYXNlcyB3aGVyZSBuZWVkZWQgRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuNCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS40IHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgY2hlc3RudXQKICAgICAgICA6CiAgICAgICAgWzEuNF0gCiAgICAgICAgICAgIGxhbmd1YWdlcyBjaG9pY2UgaXMgaGlkZGVuIGlmIGp1c3Qgb25lIGxhbmd1YWdlIGF2YWlsYWJsZSBpbiBwdWJsaWNhdGlvbgpUaGFua3MgdG8gYSBwYXRjaCBieSBTaW1vbiBMaXR3YW4sIGZpeGVzIEJ1ZyAzNzQzNCBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS4yIHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjIgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBlZGl0aAogICAgICAgIDoKICAgICAgICBbMS4yXSAKICAgICAgICAgICAgR2V0IHRoZSBjb250ZW50IHBhdGggd2l0aCBoZWxwIG9mIHRoZSBuZXcgUHVibGljYXRpb25Db250ZW50RGlyTW9kdWxlIGluIGFsbCBkZWZhdWx0J3Mgc2l0ZW1hcHMgRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuMiB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS4yIHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgZWRpdGgKICAgICAgICA6CiAgICAgICAgWzEuMl0gCiAgICAgICAgICAgIEdldCB0aGUgY29udGVudCBwYXRoIHdpdGggaGVscCBvZiB0aGUgbmV3IFB1YmxpY2F0aW9uQ29udGVudERpck1vZHVsZSBpbiBhbGwgZGVmYXVsdCdzIHNpdGVtYXBzIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjQgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuNCB1cGRhdGUKICAgICAgICBieQogICAgICAgIGNoZXN0bnV0CiAgICAgICAgOgogICAgICAgIFsxLjRdIAogICAgICAgICAgICBDb25maWd1cmF0aW9uIG9mIGxvZzRqLnhjb25mIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjIgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuMiB1cGRhdGUKICAgICAgICBieQogICAgICAgIG1pY2hpCiAgICAgICAgOgogICAgICAgIFsxLjJdIAogICAgICAgICAgICBjb250ZW50LWRpciBpbnB1dCBtb2R1bGUgYWRkZWQgYXMgVE9ETyBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS4yIGFkZDwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjIgYWRkCiAgICAgICAgYnkKICAgICAgICBtaWNoaQogICAgICAgIDoKICAgICAgICBbMS4yXSAKICAgICAgICAgICAgaW5wdXQgbW9kdWxlIHRvIG1ha2UgY29udGVudCBkaXIgY29uZmlndXJhYmxlIHN0YXJ0ZWQgRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuMiB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS4yIHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgbWljaGkKICAgICAgICA6CiAgICAgICAgWzEuMl0gCiAgICAgICAgICAgIFNvdXJjZVR5cGVBY3Rpb24gcGFja2FnZSBuYW1lIGNoYW5nZWQgRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuMiByZW1vdmU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS4yIHJlbW92ZQogICAgICAgIGJ5CiAgICAgICAgbWljaGkKICAgICAgICA6CiAgICAgICAgWzEuMl0gCiAgICAgICAgICAgIG9ic29sZXRlIGxpYnJhcmllcyBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS4yIGFkZDwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjIgYWRkCiAgICAgICAgYnkKICAgICAgICBtaWNoaQogICAgICAgIDoKICAgICAgICBbMS4yXSAKICAgICAgICAgICAgdXBkYXRlZCBGb3JyZXN0IHdpdGggZml4ZWQgU291cmNlVHlwZUFjdGlvbiB0aGFua3MgdG8gSm9zaWFzIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjIgYWRkPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuMiBhZGQKICAgICAgICBieQogICAgICAgIG1pY2hpCiAgICAgICAgOgogICAgICAgIFsxLjJdIAogICAgICAgICAgICBkZXByZWNhdGVkIHNvdXJjZSB0eXBlIGFjdGlvbiBhZGRlZCBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgRG9jcyB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+RG9jcyB1cGRhdGUKICAgICAgICBieQogICAgICAgIGFuZHJlYXMKICAgICAgICA6CiAgICAgICAgW0RvY3NdIAogICAgICAgICAgICBhZGRlZCBkb2N1bWVudGF0aW9uIGFib3V0IHVzZWNhc2UgcGFyYW1ldGVycyBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS40IHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjQgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICB0aG9yc3RlbgogICAgICAgIDoKICAgICAgICBbMS40XSAKICAgICAgICAgICAgRml4ZXMgbm9uIHdvcmtpbmcgY2FuY2VsIGJ1dHRvbnMgRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuMiB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS4yIHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgbWljaGkKICAgICAgICA6CiAgICAgICAgWzEuMl0gCiAgICAgICAgICAgIGNvbnRlbnQgYXV0aG9yaW5nIGVsZW1lbnQgZml4ZWQgRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuNCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS40IHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgY2hlc3RudXQKICAgICAgICA6CiAgICAgICAgWzEuNF0gCiAgICAgICAgICAgIFVzZWNhc2UgZXhpdCBwYXJhbWV0ZXJzIGNhbiBub3cgYmUgc3VwcGxpZWQgd2l0aG91dCBhIHZhbHVlIGluIHRoZSB4Y29uZiwgCnRoZSB2YWx1ZSB3aWxsIGJlIHBpY2tlZCB1cCBmcm9tIHRoZSBwYXJhbWV0ZXJzIHBhc3NlZCB0byB0aGUgdXNlY2FzZS4KVGhpcyBmaXhlcyBCdWcgMzczNjIgRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuNCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS40IHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgdGhvcnN0ZW4KICAgICAgICA6CiAgICAgICAgWzEuNF0gCiAgICAgICAgICAgIEFkZGVkIGEgZmFsbGJhY2sgZm9yIG1vZHVsZSBzcGVjaWZpYyBtZW51IGdlbmVyYXRpb24uIE5vdyB5b3UgY2FuIG92ZXJyaWRlIHRoZSBtZW51cyBwcm92aWRlZCBieSB0aGUgbW9kdWxlcy4gZS5nLiBJZiB5b3Ugd2FudCB0byBvdmVycmlkZSB0aGUgbWVudSBwcm92aWRlZCBieSB0aGUgeGh0bWwgbW9kdWxlLCBqdXN0IGNyZWF0ZSBhIGZpbGUgaW4gcHViLWlkL2NvbmYvbWVudXMveGh0bWwueHNwIGFuZCBwcm92aWRlIHlvdXIgb3duIG1lbnUgaW1wbGVtZW50YXRpb24gZm9yIHRoZSBtb2R1bGUuIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjIgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuMiB1cGRhdGUKICAgICAgICBieQogICAgICAgIG1pY2hpCiAgICAgICAgOgogICAgICAgIFsxLjJdIAogICAgICAgICAgICBwcmVwYXJhdGlvbnMgZm9yIG1ha2luZyByb290IGNvbnRlbnQgZGlyIGNvbmZpZ3VyYWJsZSBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS4yIHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjIgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBtaWNoaQogICAgICAgIDoKICAgICAgICBbMS4yXSAKICAgICAgICAgICAgdGhlcmUgc2VlbXMgdG8gYmUgYSBidWcgcmUgY29uY2F0IGZpbGVzeXN0ZW0gcGF0aC4gVE9ETyBhZGRlZCBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS40IGFkZDwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjQgYWRkCiAgICAgICAgYnkKICAgICAgICBhbmRyZWFzCiAgICAgICAgOgogICAgICAgIFsxLjRdIAogICAgICAgICAgICBBZGRlZCAxc3QgdmVyc2lvbiBvZiBuZXcgTGVueWEgcmVwbyBpbnRlcmZhY2VzICsgSkNSLWJhc2VkIGltcGxlbWVudGF0aW9uIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjQgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuNCB1cGRhdGUKICAgICAgICBieQogICAgICAgIGNoZXN0bnV0CiAgICAgICAgOgogICAgICAgIFsxLjRdIAogICAgICAgICAgICBwcm9tcHQgZm9yIGNsZWFuIGJ1aWxkIG9mIGNvY29vbiB3aXRoIG5ldyBsb2NhbC5ibG9ja3MucHJvcGVydGllcyBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS40IGFkZDwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjQgYWRkCiAgICAgICAgYnkKICAgICAgICBhbmRyZWFzCiAgICAgICAgOgogICAgICAgIFsxLjRdIAogICAgICAgICAgICBGaXJzdCBzdGVwcyByZS4gSkNSLW9ubHkgYXBwcm9hY2g6IHJlbW92ZWQgZGVwZW5kZW5jaWVzIG9uIEpDUiBibG9jaywgYWRkZWQgb3duIEpDUiBsaWJzLCBzdGFydGVkIEpDUiBmYWNhZGUgb2JqZWN0cyBhbmQgY29udGVudCBtaWdyYXRpb24gYnVpbGQgdGFyZ2V0LiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS40IHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjQgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICB0aG9yc3RlbgogICAgICAgIDoKICAgICAgICBbMS40XSAKICAgICAgICAgICAgRml4ZWQgdHlwbyBpbiB1c2VjYXNlLmpzLiBTcG90dGVkIGJ5IEZlbGl4LiBUaHggRmVsaXguIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjQgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuNCB1cGRhdGUKICAgICAgICBieQogICAgICAgIHRob3JzdGVuCiAgICAgICAgOgogICAgICAgIFsxLjRdIAogICAgICAgICAgICBDaGFuZ2VkIGNmb3JtIGNvZGUgdGhhdCBpdCBpcyBwb3NzaWJsZSB0byB1c2UgYSBjYW5jZWwgYnV0dG9uLiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS40IHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjQgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBjaGVzdG51dAogICAgICAgIDoKICAgICAgICBbMS40XSAKICAgICAgICAgICAgZml4ZWQgaW1nIHJlZmVyZW5jZXMgZm9yIHVwL2Rvd24gYXJyb3dzIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjQgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuNCB1cGRhdGUKICAgICAgICBieQogICAgICAgIGNoZXN0bnV0CiAgICAgICAgOgogICAgICAgIFsxLjRdIAogICAgICAgICAgICBBY2NpZGVudGFsIGNvbW1pdCAobWVzc2luZyBhcm91bmQgd2l0aCBjZm9ybSB0eXBlKSwgc29ycnkgYWJvdXQgdGhhdCBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS40IHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjQgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBjaGVzdG51dAogICAgICAgIDoKICAgICAgICBbMS40XSAKICAgICAgICAgICAgIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjQgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuNCB1cGRhdGUKICAgICAgICBieQogICAgICAgIGNoZXN0bnV0CiAgICAgICAgOgogICAgICAgIFsxLjRdIAogICAgICAgICAgICAgRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuMiB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS4yIHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgbWljaGkKICAgICAgICA6CiAgICAgICAgWzEuMl0gCiAgICAgICAgICAgIGdldENoaWxkRmlsZU5hbWUgZml4ZWQgc3VjaCB0aGF0IG9uZSBpcyBmb3JjZWQgdG8gdXBncmFkZSB0aGUgY3JlYXRvcnMgYmVjYXVzZSBvZiB0aGUgRG9jdW1lbnRJZFRvUGF0aE1hcHBlciBidWcgRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuMiB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS4yIHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgbWljaGkKICAgICAgICA6CiAgICAgICAgWzEuMl0gCiAgICAgICAgICAgIGdldENoaWxkRmlsZU5hbWUgZml4ZWQgc3VjaCB0aGF0IG9uZSBpcyBmb3JjZWQgdG8gdXBncmFkZSB0aGUgY3JlYXRvcnMgYmVjYXVzZSBvZiB0aGUgRG9jdW1lbnRJZFRvUGF0aE1hcHBlciBidWcgRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuMiB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS4yIHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgbWljaGkKICAgICAgICA6CiAgICAgICAgWzEuMl0gCiAgICAgICAgICAgIGJ1ZyByZSBoYXJkY29kZWQgZmlsZW5hbWUgZ2VuZXJhdGlvbiBmaXhlZC4gRG9jdW1lbnRJZFRvUGF0aE1hcHBlciBpcyBub3cgYmVpbmcgdXNlZCBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS40IHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjQgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBhbmRyZWFzCiAgICAgICAgOgogICAgICAgIFsxLjRdIAogICAgICAgICAgICBhbGxvdyB0byBwYXRjaCBsZW55YS5yb2xlcyBieSBwdWJsaWNhdGlvbnMgYW5kIG1vZHVsZXMgRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuMiB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS4yIHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgamFubgogICAgICAgIDoKICAgICAgICBbMS4yXSAKICAgICAgICAgICAgT3BlbiBsaXZlIHBhZ2UgaW4gYSBuZXcgd2luZG93IERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCBEb2NzIGFkZDwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj5Eb2NzIGFkZAogICAgICAgIGJ5CiAgICAgICAgYW5kcmVhcwogICAgICAgIDoKICAgICAgICBbRG9jc10gCiAgICAgICAgICAgIHN0YXJ0ZWQgZG9jdW1lbnRhdGlvbiBhYm91dCByZXBvc2l0b3J5IGxheW91dCBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS40IHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjQgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBlZGl0aAogICAgICAgIDoKICAgICAgICBbMS40XSAKICAgICAgICAgICAgdGhlIGF0dHJpYnV0ZSBmb3IgdGhlIHN0eWxlJ3MgcHJvcGVydGllcyBjaGFuZ2UgZnJvbSBzdHlsZTpwcm9wZXJ0aWVzIGludG8gc3R5bGU6bG9jYWwtbmFtZSgpLXByb3BlcnRpZXMgRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuNCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS40IHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgZWRpdGgKICAgICAgICA6CiAgICAgICAgWzEuNF0gCiAgICAgICAgICAgIERvbid0IGNhbGwgb3BlbmRvY3VtZW50MnhodG1sLnhzbDogdGhlIHRyYW5zZm9ybWF0aW9uIGlzIHJlcGxhY2VkIGJ5IHRoZSB4c2x0IG9mIGFydCByaHlubyBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgRG9jcyB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+RG9jcyB1cGRhdGUKICAgICAgICBieQogICAgICAgIG1pY2hpCiAgICAgICAgOgogICAgICAgIFtEb2NzXSAKICAgICAgICAgICAgY29uZmVyZW5jZSB3ZWJzaXRlIGFkZGVkIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCBEb2NzIHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj5Eb2NzIHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgbWljaGkKICAgICAgICA6CiAgICAgICAgW0RvY3NdIAogICAgICAgICAgICBkb3VibGUgZW50cnkgb2YgUmV1bmlvbiByZW1vdmVkIGFuZCBIQ0kgTGFiIG9mIFVuaXZlcnNpdHkgb2YgVWRpbmUgYWRkZWQgRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IFNhbmRib3ggdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPlNhbmRib3ggdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBtaWNoaQogICAgICAgIDoKICAgICAgICBbU2FuZGJveF0gCiAgICAgICAgICAgIGluc3RhbGxhdGlvbiBjbGFyaWZpZWQgRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuNCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS40IHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgY2hlc3RudXQKICAgICAgICA6CiAgICAgICAgWzEuNF0gCiAgICAgICAgICAgIG1ha2VzIC4uLi1ieGUuY3NzIGZhbGxiYWNrIGVuYWJsZWQKZml4ZXMgQnVnIDM3MzA4ClRoYW5rcyB0byBhIHBhdGNoIGJ5IEZlbGl4IFL2dGhlbmJhY2hlciBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS40IHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjQgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBjaGVzdG51dAogICAgICAgIDoKICAgICAgICBbMS40XSAKICAgICAgICAgICAgZml4ZXMgQnVnIDM3MjIyClRoYW5rcyB0byBhIHBhdGNoIGJ5IEZlbGl4IFL2dGhlbmJhY2hlciBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS40IHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjQgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBjaGVzdG51dAogICAgICAgIDoKICAgICAgICBbMS40XSAKICAgICAgICAgICAgRml4ZXMgdGhlIGZvbGxvd2luZyBlcnJvciB3aGVuIGVkaXRpbmcgaG9tZXBhZ2UgZG9jIHdpdGggb25lZm9ybSBlZGl0b3I6CkJhc2VVUkkgaXMgbm90IHZhbGlkLCBpdCBtdXN0IGNvbnRhaW4gYSBwcm90b2NvbDogeGh0bWwveGh0bWwtYmFzaWMucm5nCgpTaG91bGQgYWxzbyBoZWxwIHdpdGggcHViIHRlbXBsYXRpbmcuIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjQgYWRkPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuNCBhZGQKICAgICAgICBieQogICAgICAgIGNoZXN0bnV0CiAgICAgICAgOgogICAgICAgIFsxLjRdIAogICAgICAgICAgICBFeHRlcm5hbCBMaW5rIENoZWNrIHVzZWNhc2UKVG8gdHVybiBvbiB1bmNvbW1lbnQgdGhlIG1hcDp0cmFuc2Zvcm0gaW4gdGhlIGRlZmF1bHQgcHVicyBzaXRlbWFwLnhtYXAgZmlsZSB1bmRlciB0aGUgY29tbWVudAombHQ7IS0tIHVuY29tbWVudCB0byB0dXJuIG9uIGV4dGVybmFsIGJyb2tlbiBsaW5rIHJlcG9ydGluZyAtLSZndDsgKHdpbGwgaW1wbGVtZW50IGEgYmV0dGVyIHN3aXRjaCBpbiB0aGUgbmVhciBmdXR1cmUpICBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS40IGFkZDwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjQgYWRkCiAgICAgICAgYnkKICAgICAgICBjaGVzdG51dAogICAgICAgIDoKICAgICAgICBbMS40XSAKICAgICAgICAgICAgRXh0ZXJuYWwgTGluayBDaGVjayB1c2VjYXNlClRvIHR1cm4gb24gdW5jb21tZW50IHRoZSBtYXA6dHJhbnNmb3JtIGluIHRoZSBkZWZhdWx0IHB1YnMgc2l0ZW1hcC54bWFwIGZpbGUgdW5kZXIgdGhlIGNvbW1lbnQKJmx0OyEtLSB1bmNvbW1lbnQgdG8gdHVybiBvbiBleHRlcm5hbCBicm9rZW4gbGluayByZXBvcnRpbmcgLS0mZ3Q7ICh3aWxsIGltcGxlbWVudCBhIGJldHRlciBzd2l0Y2ggaW4gdGhlIG5lYXIgZnV0dXJlKSAgRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuNCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS40IHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgZWRpdGgKICAgICAgICA6CiAgICAgICAgWzEuNF0gCiAgICAgICAgICAgIE9kdCBkb2MgbmVlZHMgYSBvd24gcGFnZTJ4aHRtbCB4c2x0IERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjQgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuNCB1cGRhdGUKICAgICAgICBieQogICAgICAgIGVkaXRoCiAgICAgICAgOgogICAgICAgIFsxLjRdIAogICAgICAgICAgICBDYWxsIHRoZSB4c2x0IG9mIGFydCByaHlubyBmb3IgdGhlIHRyYW5zZm9ybWF0aW9uIGZyb20gb2R0IHRvIGh0bWwgRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuNCBhZGQ8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS40IGFkZAogICAgICAgIGJ5CiAgICAgICAgZWRpdGgKICAgICAgICA6CiAgICAgICAgWzEuNF0gCiAgICAgICAgICAgIFN0eWxlc2hlZXQgdG8gdHJhbnNmb3JtIHRoZSBPYXNpcyBPcGVuZGNvdW1lbnQgZm9ybWF0IGludG8geGh0bWwuIFRoYW5rcyB0byBBcnQgUmh5bm8gRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuNCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS40IHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgY2hlc3RudXQKICAgICAgICA6CiAgICAgICAgWzEuNF0gCiAgICAgICAgICAgIGFkZHMgYSBjb252ZXJ0b3IgZm9yIGludGVnZXJzClRoYW5rcyB0byBGZWxpeCBS9nRoZW5iYWNoZXIgZm9yIHRoZSBwYXRjaApmaXhlcyBCdWcgMzcyMjEgRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuNCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS40IHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgY2hlc3RudXQKICAgICAgICA6CiAgICAgICAgWzEuNF0gCiAgICAgICAgICAgIFRoYW5rcyB0byBhIHBhdGNoIGZyb20gRmVsaXggUvZ0aGVuYmFjaGVyCmZpeGVzIGJ1ZyBCdWcgMzcyMTYgRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IFNhbmRib3ggcmVtb3ZlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPlNhbmRib3ggcmVtb3ZlCiAgICAgICAgYnkKICAgICAgICBtaWNoaQogICAgICAgIDoKICAgICAgICBbU2FuZGJveF0gCiAgICAgICAgICAgIHN1ZmZpeCB0eHQgYWRkZWQgRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuNCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS40IHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgYW5kcmVhcwogICAgICAgIDoKICAgICAgICBbMS40XSAKICAgICAgICAgICAgbGVueWFkb2M6LyBidWlsZHMgZG9jdW1lbnQgdG8gcmV0cmlldmUgc291cmNlIFVSTCBpbnN0ZWFkIG9mIGhhcmQtY29kaW5nIHRoZSBEb2N1bWVudElkVG9QYXRoTWFwcGVyIGJlaGF2aW91ci4gRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuMiB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS4yIHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgdGhvcnN0ZW4KICAgICAgICA6CiAgICAgICAgWzEuMl0gCiAgICAgICAgICAgIEZvcmdvdCB0aGUgY2xvc2luZyB0YWcuIFNvcnJ5IGZvciBhbnkgdHJvdWJsZSBhbmQgdGh4IHRvIGpvc2lhcyB0byBzcG90IGl0LiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS40IHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjQgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBjaGVzdG51dAogICAgICAgIDoKICAgICAgICBbMS40XSAKICAgICAgICAgICAgcmVtb3ZlZCBicm9rZW4gYW5kIHVudXNlZCB4c2w6aW5jbHVkZSByZXBvcnRlZCBieSBKb3NpYXMgVGhvZW55IERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjIgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuMiB1cGRhdGUKICAgICAgICBieQogICAgICAgIHRob3JzdGVuCiAgICAgICAgOgogICAgICAgIFsxLjJdIAogICAgICAgICAgICByZXZlcnRlZCB1bnJlbGVhdGVkIGNoYW5nZXMgb2YgbXkgbGFzdCBjb21taXQgRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuMiB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS4yIHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgdGhvcnN0ZW4KICAgICAgICA6CiAgICAgICAgWzEuMl0gCiAgICAgICAgICAgIEJ1Z2ZpeCBCdWcgMzcxOTMuIFN1Ym1pdHRlZCBieSBKb3NpYXMgVGhvZW55LiBGaXhlcyB0aGF0IFhvcHVzIGNhY2hlcyBkb2N1bWVudCBhbmQgdGh1cyBzaG93cyBhbiBvbGQgdmVyc2lvbi4gVGh4IEpvc2lhcyBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS40IHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjQgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICB0aG9yc3RlbgogICAgICAgIDoKICAgICAgICBbMS40XSAKICAgICAgICAgICAgQnVnZml4IEJ1ZyAzNzE5My4gU3VibWl0dGVkIGJ5IEpvc2lhcyBUaG9lbnkuIEZpeGVzIHRoYXQgWG9wdXMgY2FjaGVzIGRvY3VtZW50IGFuZCB0aHVzIHNob3dzIGFuIG9sZCB2ZXJzaW9uLiBUaHggSm9zaWFzIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjQgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuNCB1cGRhdGUKICAgICAgICBieQogICAgICAgIHRob3JzdGVuCiAgICAgICAgOgogICAgICAgIFsxLjRdIAogICAgICAgICAgICBCdWdmaXggQnVnIDM3MTM5LiBTdWJtaXR0ZWQgYnkgcmVuYXVkIHJpY2hhcmRldC4gVGh4IHJlbmF1ZC4gRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuNCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS40IHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgZ3JlZ29yCiAgICAgICAgOgogICAgICAgIFsxLjRdIAogICAgICAgICAgICBJbXByb3ZlZCBlcnJvciBtZXNzYWdlIGFuZCBmaXhlZCBhIHR5cG8gRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuNCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS40IHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgdGhvcnN0ZW4KICAgICAgICA6CiAgICAgICAgWzEuNF0gCiAgICAgICAgICAgIFdvcmthcm91bmQgYnVnZml4IGZvciB0aGUgY2Zvcm0gZXhhbXBsZS4gVGhlIHByb2JsZW0gaXMgdGhhdCBhamF4PSd0cnVlJyB3aWxsIGNhdXNlIG9uIHN1Ym1pdCBvZiB0aGUgZm9ybSB0aGUgbG9zdCBvZiB0aGUgdXNlY2FzZS5qcyBmbG93LiBJIHdyb3RlIHRvIHRoZSBjb2Nvb24tdXNlciBsaXN0IHJlZ2FyZGluZyB0aGlzIGlzc3VlLiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS40IHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjQgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBjaGVzdG51dAogICAgICAgIDoKICAgICAgICBbMS40XSAKICAgICAgICAgICAgZml4ZWQgdHlvcCA6KSBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS40IHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjQgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBjaGVzdG51dAogICAgICAgIDoKICAgICAgICBbMS40XSAKICAgICAgICAgICAgYXNzaWduZWQgd29ya2Zsb3cgZXZlbnRzIHRvIHRoZSB3b3JrZmxvdyBtZW51IGl0ZW1zCmFzc2lnbmVkIHJvbGVzIHRvIG9wZW4gdXNlY2FzZXMgRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuNCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS40IHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgY2hlc3RudXQKICAgICAgICA6CiAgICAgICAgWzEuNF0gCiAgICAgICAgICAgIGFkZGVkIHdhcm5pbmd8YWxlcnQgZm9yIGJyb2tlbiBpbnRlcm5hbCBsaW5rcyBpbiB0aGUgYXV0aG9yaW5nIGFyZWEgc28gdGhhdCBjb250ZW50IG1hbmFnZXJzIGtub3cgdGhlcmUgaXMgc29tZXRoaW5nIHRvIGZpeAogRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuNCBhZGQ8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS40IGFkZAogICAgICAgIGJ5CiAgICAgICAgdGhvcnN0ZW4KICAgICAgICA6CiAgICAgICAgWzEuNF0gCiAgICAgICAgICAgIEZpeGVkIHRoZSBDRm9ybXNVc2VjYXNlIHdoaWNoIGlzIGp1c3QgYW4gZXhhbXBsZSBob3cgdG8gd29yayB3aXRoIGNmb3JtcyBhbmQgbm90IHRoZSBzcGVjaWZpYyBpbXBsZW1lbnRhdGlvbiB0aGF0IGNmb3JtIHVzZWNhc2VzIGhhdmUgdG8gdXNlLiAgRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuNCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS40IHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgbWljaGkKICAgICAgICA6CiAgICAgICAgWzEuNF0gCiAgICAgICAgICAgIHNpdGUgdGFiIGZpeGVkIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjQgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuNCB1cGRhdGUKICAgICAgICBieQogICAgICAgIG1pY2hpCiAgICAgICAgOgogICAgICAgIFsxLjRdIAogICAgICAgICAgICBkZWJ1ZyBzdGF0ZW1lbnQgcmVtb3ZlZCBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS40IHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjQgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBtaWNoaQogICAgICAgIDoKICAgICAgICBbMS40XSAKICAgICAgICAgICAgdGhhbmtzIHRvIElsaGFuIFBhcm1ha3NpeiBhbmQgR3JlZ29yIEltYm9kZW4gdGhlIExlbnlhIFhVTCBtZW51cyBoYXZlIGJlZW4gZ3JlYXRseSBpbXByb3ZlZCBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS40IGFkZDwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjQgYWRkCiAgICAgICAgYnkKICAgICAgICBtaWNoaQogICAgICAgIDoKICAgICAgICBbMS40XSAKICAgICAgICAgICAgQXBhY2hlIExlbnlhIGxvZ28gZm9yIFhVTCBtZW51cyBhZGRlZCBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS40IHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjQgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICB0aG9yc3RlbgogICAgICAgIDoKICAgICAgICBbMS40XSAKICAgICAgICAgICAgUGxlYXNlIGRvIHN2biBwcm9wc2V0IHN2bjplb2wtc3R5bGUgbmF0aXZlIG9uIGFsbCBmaWxlcyBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS40IHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjQgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICB0aG9yc3RlbgogICAgICAgIDoKICAgICAgICBbMS40XSAKICAgICAgICAgICAgQWRkIHN1cHBvcnQgZm9yIEFqYXggd2l0aCBDRm9ybXMuCkJ1Z2ZpeDogQnVnIDM3MDY4LiBTdWJtaXR0ZWQgYnkgRmVsaXggUvZ0aGVuYmFjaGVyLiBUaHggRmVsaXguCiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS40IGFkZDwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjQgYWRkCiAgICAgICAgYnkKICAgICAgICB0aG9yc3RlbgogICAgICAgIDoKICAgICAgICBbMS40XSAKICAgICAgICAgICAgQWRkcyBhIGNmb3JtcyBkb2N0eXBlIHRvIHRoZSBkZWZhdWx0IHB1YmxpY2F0aW9uIHRvIHNob3cgdGhlIHBvc3NpYmlsaXRlcyBvZgpDRm9ybXMvQWpheCB0b2dldGhlciB3aXRoIExlbnlhLgoKU2VlIGh0dHA6Ly93aWtpLmFwYWNoZS5vcmcvbGVueWEvSG93VG9DRm9ybXNJbkxlbnlhMS40IGZvciBzb21lIGJhc2ljIG5vdGVzLgoKVGhlcmUgaXMgc3RpbGwgYW4gaXNzdWUgd2l0aCBzYXZpbmcgdGhlIGRvY3VtZW50IHdoZW4gQWpheCBpcyB1c2VkLgoKQ29vcGVyYXRpb24gd29yayB3aXRoIEZlbGl4IFL2dGhlbmJhY2hlciB3aG8gcHJvdmlkZWQgYSBwYXRjaCBmb3IgdGhhdC4KU29sdmVzIEJ1ZyAzNzA2OS4gVGh4IEZlbGl4LgogRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuNCBhZGQ8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS40IGFkZAogICAgICAgIGJ5CiAgICAgICAgY2hlc3RudXQKICAgICAgICA6CiAgICAgICAgWzEuNF0gCiAgICAgICAgICAgIEFkZGVkIGFiaWxpdHkgdG8gImNsZWFuIiBkb2N1bWVudHMgdXBsb2FkZWQgdmlhIHdlYkRBViBQVVQgbWV0aG9kLiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS40IHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjQgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBjaGVzdG51dAogICAgICAgIDoKICAgICAgICBbMS40XSAKICAgICAgICAgICAgQ2hlY2tzIGlmIHRoZSB4bWwgY29udGFpbnMgY2Zvcm1zIGVsZW1lbnRzLCBhbmQgZml4ZXMgaW5jbHVzaW9uIG9mIGFqYXggbGlicwpUaGFua3MgdG8gYSBwYXRjaCBieSBGZWxpeCBS9nRoZW5iYWNoZXIsIGZpeGVzIEJ1ZyAzNzA1MCAgRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuMiB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS4yIHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgZWRpdGgKICAgICAgICA6CiAgICAgICAgWzEuMl0gCiAgICAgICAgICAgIG91dHB1dCBzZXQgdG8gSVNPIGJlY2F1c2UgdGhlcmUgYXJlIHN0aWxsIHNvbWUgbWFpbGNsaWVudHMgd2hpY2ggZG9uJ3Qgc2VlbSB0byB1bmRlcnN0YW5kIFVURiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS40IHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjQgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBlZGl0aAogICAgICAgIDoKICAgICAgICBbMS40XSAKICAgICAgICAgICAgYmxhbmsgcmVtb3ZlZCBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS40IHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjQgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBtaWNoaQogICAgICAgIDoKICAgICAgICBbMS40XSAKICAgICAgICAgICAgVG9yc3RlbiBhZGRlZCBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS40IHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjQgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBtaWNoaQogICAgICAgIDoKICAgICAgICBbMS40XSAKICAgICAgICAgICAgV29sZmdhbmcgYWRkZWQgRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuNCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS40IHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgY2hlc3RudXQKICAgICAgICA6CiAgICAgICAgWzEuNF0gCiAgICAgICAgICAgIGZpeGVkIGJ1ZyB3aXRoIFBVVCBvZiBhIG5ldyB4aHRtbCBkb2N1bWVudCBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS40IHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjQgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBtaWNoaQogICAgICAgIDoKICAgICAgICBbMS40XSAKICAgICAgICAgICAgT0RUIHVwZGF0ZWQgd2l0aCBzb21lIGxpbmsgaW4gaXQgRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuNCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS40IHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgdGhvcnN0ZW4KICAgICAgICA6CiAgICAgICAgWzEuNF0gCiAgICAgICAgICAgIEJ1Z2ZpeCAzNzAyMS4gRml4ZWQgdGhlIGluY2x1c2lvbiBvZiB0aGUgY2Zvcm1zLWxpYnMuIFBhdGNoIHN1Ym1pdHRlZCBieSBGZWxpeCBS9nRoZW5iYWNoZXIuIFRoYW5rcyBGZWxpeCBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS40IHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjQgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBjaGVzdG51dAogICAgICAgIDoKICAgICAgICBbMS40XSAKICAgICAgICAgICAgY2hlY2tvdXQvY2hlY2tpbiBoYW5kbGVkIGJ5IHB1YiB1c2VjYXNlCnNob3VsZCByZXNvbHZlIEJ1ZyAzNjk5MiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS40IHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjQgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICB0aG9yc3RlbgogICAgICAgIDoKICAgICAgICBbMS40XSAKICAgICAgICAgICAgQXBwbGllZCBwYXRjaCBzdWJtaXR0ZWQgYnkgRmVsaXggUvZ0aGVuYmFjaGVyLiBGaXhlcyBCdWcgMzY5OTYuIFRoYW5rcyBGZWxpeCBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS40IHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjQgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBtaWNoaQogICAgICAgIDoKICAgICAgICBbMS40XSAKICAgICAgICAgICAgYnl0ZSByYW5nZSBmYWxzZSBhZGRlZCBmb3IgUERGcyBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS40IHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjQgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBtaWNoaQogICAgICAgIDoKICAgICAgICBbMS40XSAKICAgICAgICAgICAgT3BlbkRvY3VtZW50IGFkZGVkIHRvIG92ZXJ2aWV3IGRlc2NyaXB0aW9uIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjIgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuMiB1cGRhdGUKICAgICAgICBieQogICAgICAgIG1pY2hpCiAgICAgICAgOgogICAgICAgIFsxLjJdIAogICAgICAgICAgICBub3RlIGFib3V0IENvY29vbi0yLjEuOC1kZXYgYWRkZWQgRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuMiB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS4yIHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgbWljaGkKICAgICAgICA6CiAgICAgICAgWzEuMl0gCiAgICAgICAgICAgIGJ5dGUgcmFnZXMgc2V0IHRvIGZhbHNlIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjIgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuMiB1cGRhdGUKICAgICAgICBieQogICAgICAgIG1pY2hpCiAgICAgICAgOgogICAgICAgIFsxLjJdIAogICAgICAgICAgICBieXRlLXJhbmdlcyBzZXQgdG8gZmFsc2UgRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuNCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS40IHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgY2hlc3RudXQKICAgICAgICA6CiAgICAgICAgWzEuNF0gCiAgICAgICAgICAgIHJlc291cmNlIGV4aXN0cyBuZWVkcyB0byBjaGVjayBmb3IgYXNzZXRzIGluIGFuIGFyZWEgRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuNCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS40IHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgY2hlc3RudXQKICAgICAgICA6CiAgICAgICAgWzEuNF0gCiAgICAgICAgICAgIFNob3VsZG4ndCBiZSBhYmxlIHRvIGxvY2sgW0xPQ0sgd2ViREFWIG1ldGhvZF0gYSBkb2N1bWVudCB0aGF0IGRvZXNuJ3QgZXhpc3QgRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuNCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS40IHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgY2hlc3RudXQKICAgICAgICA6CiAgICAgICAgWzEuNF0gCiAgICAgICAgICAgIGFkZGVkIENvbnRyaWJ1dGUgYXMgYSB3ZWJkYXYgdXNlcmFnZW50IERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjIgcmVtb3ZlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuMiByZW1vdmUKICAgICAgICBieQogICAgICAgIG1pY2hpCiAgICAgICAgOgogICAgICAgIFsxLjJdIAogICAgICAgICAgICBvYnNvbGV0ZSBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS4yIGFkZDwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjIgYWRkCiAgICAgICAgYnkKICAgICAgICBtaWNoaQogICAgICAgIDoKICAgICAgICBbMS4yXSAKICAgICAgICAgICAgQ29jb29uIGhhcyBtb3ZlZCB0aGUgc2FtcGxlIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjQgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuNCB1cGRhdGUKICAgICAgICBieQogICAgICAgIGNoZXN0bnV0CiAgICAgICAgOgogICAgICAgIFsxLjRdIAogICAgICAgICAgICBjbGVhbmVkIHVwIGxvZ2dpbmcgd2hpY2ggd2FzIG1pc3Rha2VubHkgY29waWVkIGZyb20gdGhlIHVzZWNhc2UgZmxvd3NjcmlwdApzdGFydGVkIHdvcmtpbmcgb24gTUtDT0wgbWV0aG9kIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjQgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuNCB1cGRhdGUKICAgICAgICBieQogICAgICAgIG1pY2hpCiAgICAgICAgOgogICAgICAgIFsxLjRdIAogICAgICAgICAgICBjYWRhdmVyIGFkZGVkIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjQgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuNCB1cGRhdGUKICAgICAgICBieQogICAgICAgIG1pY2hpCiAgICAgICAgOgogICAgICAgIFsxLjRdIAogICAgICAgICAgICBmb3JtYXQgZm9yIG9wZW5kb2N1bWVudCBhZGRlZCBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS40IHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjQgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBhbmRyZWFzCiAgICAgICAgOgogICAgICAgIFsxLjRdIAogICAgICAgICAgICBBZGRlZCBsaW5rIHRvIGNyZWF0ZSBkb2N1bWVudCB0byA0MDQgcGFnZS4gSXQgaXMgbm93IHBvc3NpYmxlIHRvIGNyZWF0ZSBkb2N1bWVudHMgYnkgcHJvdmlkaW5nIHRoZSBkb2N1bWVudCBJRCB0byB0aGUgdXNlY2FzZS4gVGh1cywgaXQgaXMgbm90IG5lY2Vzc2FyeSB0byBjb3B5IHRoZSBjb250ZW50IHdoZW4gdGhlIGRlZmF1bHQgcHVibGljYXRpb24gaXMgaW5zdGFuY2lhdGVkLiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS40IHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjQgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBhbmRyZWFzCiAgICAgICAgOgogICAgICAgIFsxLjRdIAogICAgICAgICAgICBBbGxvdyBVUklzIGFzIHdvcmtmbG93IHNjaGVtYSBsb2NhdGlvbnMuIEl0IGlzIG5vdCBuZWNlc3NhcnkgdG8gY29weSB3b3JrZmxvdyBmaWxlcyB3aGVuIGEgcHVibGljYXRpb24gaXMgaW5zdGFuY2lhdGVkLiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS40IHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjQgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBhbmRyZWFzCiAgICAgICAgOgogICAgICAgIFsxLjRdIAogICAgICAgICAgICBbbWlub3IgY2hhbmdlXSBjb2RlIGZvcm1hdHRpbmcgRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IFNhbmRib3ggdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPlNhbmRib3ggdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBjaGVzdG51dAogICAgICAgIDoKICAgICAgICBbU2FuZGJveF0gCiAgICAgICAgICAgIG1hZGUgc29tZSB1cGRhdGVzIHRvIGdldCBzZWFyY2ggd29ya2luZywKc2VwYXJhdGVkIGluZGV4IGludG8gbGl2ZSBhbmQgYXV0aG9yaW5nIGluZGV4ZXMKIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjQgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuNCB1cGRhdGUKICAgICAgICBieQogICAgICAgIG1pY2hpCiAgICAgICAgOgogICAgICAgIFsxLjRdIAogICAgICAgICAgICBKYWNrcmFiYml0IGNvbmZpZyB1cGRhdGVkIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCBEb2NzIHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj5Eb2NzIHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgYW5kcmVhcwogICAgICAgIDoKICAgICAgICBbRG9jc10gCiAgICAgICAgICAgIEFkZGVkIGRvY3MgYWJvdXQgcmVzb3VyY2UgdHlwZSBmb3JtYXRzLiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS40IHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjQgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBtaWNoaQogICAgICAgIDoKICAgICAgICBbMS40XSAKICAgICAgICAgICAgZ2VybWFuIHRleHQgYWRkZWQgRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuNCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS40IHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgbWljaGkKICAgICAgICA6CiAgICAgICAgWzEuNF0gCiAgICAgICAgICAgIGRvY3VtZW50IGlkIGFkZGVkIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjQgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuNCB1cGRhdGUKICAgICAgICBieQogICAgICAgIG1pY2hpCiAgICAgICAgOgogICAgICAgIFsxLjRdIAogICAgICAgICAgICBPcGVuRG9jdW1lbnQgYWRkZWQgRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuNCByZW1vdmU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS40IHJlbW92ZQogICAgICAgIGJ5CiAgICAgICAgbWljaGkKICAgICAgICA6CiAgICAgICAgWzEuNF0gCiAgICAgICAgICAgIGVuZ2xpc2ggdmVyc2lvbiBhZGRlZCBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS40IGFkZDwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjQgYWRkCiAgICAgICAgYnkKICAgICAgICBtaWNoaQogICAgICAgIDoKICAgICAgICBbMS40XSAKICAgICAgICAgICAgZ2VybWFuIGFkZGVkIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjQgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuNCB1cGRhdGUKICAgICAgICBieQogICAgICAgIG1pY2hpCiAgICAgICAgOgogICAgICAgIFsxLjRdIAogICAgICAgICAgICBzaG93IGNvbnRlbnQgb2YgT0RUIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjQgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuNCB1cGRhdGUKICAgICAgICBieQogICAgICAgIG1pY2hpCiAgICAgICAgOgogICAgICAgIFsxLjRdIAogICAgICAgICAgICBvcGVuZG9jdW1lbnQgbW9kdWxlIGFkZGVkIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjQgYWRkPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuNCBhZGQKICAgICAgICBieQogICAgICAgIG1pY2hpCiAgICAgICAgOgogICAgICAgIFsxLjRdIAogICAgICAgICAgICBzaXRlbWFwIGFuZCBYU0xUIHRvIGdlbmVyYXRlIFhIVE1MIGFkZGVkIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjQgYWRkPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuNCBhZGQKICAgICAgICBieQogICAgICAgIG1pY2hpCiAgICAgICAgOgogICAgICAgIFsxLjRdIAogICAgICAgICAgICBtb2R1bGUgY29uZmlnIGZvciBvcGVuZG9jdW1lbnQgYWRkZWQgRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuNCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS40IHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgbWljaGkKICAgICAgICA6CiAgICAgICAgWzEuNF0gCiAgICAgICAgICAgIGxpbmsgdG8gdHV0b3JpYWwgYWRkZWQgRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuNCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS40IHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgbWljaGkKICAgICAgICA6CiAgICAgICAgWzEuNF0gCiAgICAgICAgICAgIG9wZW5kb2N1bWVudCBhZGRlZCB0byBuYXZpZ2F0aW9uIGJ1dCBjb21tZW50ZWQgYmVjYXVzZSB0aGUgb3BlbmRvY3VtZW50IG1vZHVsZSBoYXMgbm90IGJlZW4gZmluaXNoZWQgeWV0IERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjQgYWRkPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuNCBhZGQKICAgICAgICBieQogICAgICAgIG1pY2hpCiAgICAgICAgOgogICAgICAgIFsxLjRdIAogICAgICAgICAgICBtZXRhIGFuZCBkb2N0eXBlIGRlZmluaXRpb24gYWRkZWQgRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuNCBhZGQ8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS40IGFkZAogICAgICAgIGJ5CiAgICAgICAgbWljaGkKICAgICAgICA6CiAgICAgICAgWzEuNF0gCiAgICAgICAgICAgIG9wZW5kb2N1bWVudCBnbG9iYWwgbGF5b3V0IGFkZGVkIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjQgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuNCB1cGRhdGUKICAgICAgICBieQogICAgICAgIG1pY2hpCiAgICAgICAgOgogICAgICAgIFsxLjRdIAogICAgICAgICAgICBsaW5rcyBkb2N0eXBlIHRvIGRvY3R5cGVzIG92ZXJ2aWV3IGFkZGVkIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjQgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuNCB1cGRhdGUKICAgICAgICBieQogICAgICAgIG1pY2hpCiAgICAgICAgOgogICAgICAgIFsxLjRdIAogICAgICAgICAgICBsaW5rcyBkb2N0eXBlIHNhbXBsZSB0byBuYXZpZ2F0aW9uIGFkZGVkIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjQgYWRkPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuNCBhZGQKICAgICAgICBieQogICAgICAgIG1pY2hpCiAgICAgICAgOgogICAgICAgIFsxLjRdIAogICAgICAgICAgICBsaW5rcyBhbmQgb3BlbmRvY3VtZW50IGFzIGRvY3R5cGUgc2FtcGxlcyBhZGRlZCBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS40IHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjQgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBjaGVzdG51dAogICAgICAgIDoKICAgICAgICBbMS40XSAKICAgICAgICAgICAgbmV3IHNldC1oZWFkZXIgKCJMYXN0LU1vZGlmaWVkIikgYWN0aW9uIGJyb2tlIHNpdGUgdmlldywgdGhpcyBmaXhlcyAzNjg3NQp0aGFua3MgdG8gYSBwYXRjaCBieSBKb3NpYXMgVGhvZW55IERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjQgYWRkPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuNCBhZGQKICAgICAgICBieQogICAgICAgIG1pY2hpCiAgICAgICAgOgogICAgICAgIFsxLjRdIAogICAgICAgICAgICBvcGVuZG9jdW1lbnQgbW9kdWxlIHN0YXJ0ZWQgRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuNCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS40IHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgbWljaGkKICAgICAgICA6CiAgICAgICAgWzEuNF0gCiAgICAgICAgICAgIHppcCBmYWN0b3J5IGFkZGVkIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjQgYWRkPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuNCBhZGQKICAgICAgICBieQogICAgICAgIG1pY2hpCiAgICAgICAgOgogICAgICAgIFsxLjRdIAogICAgICAgICAgICBaaXAgc291cmNlIGFkZGVkLiBNYXliZSBtb3ZlIHRoZW0gaW50byBDb2Nvb24gYXQgc29tZSBsYXRlciB0aW1lIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjQgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuNCB1cGRhdGUKICAgICAgICBieQogICAgICAgIGNoZXN0bnV0CiAgICAgICAgOgogICAgICAgIFsxLjRdIAogICAgICAgICAgICBJbmRlbnRhdGlvbiBmaXhlZApmaXhlcyBidWcgMzY4NzQgdGhhbmtzIHRvIGEgcGF0Y2ggYnkgRmVsaXggUvZ0aGVuYmFjaGVyIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjQgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuNCB1cGRhdGUKICAgICAgICBieQogICAgICAgIGNoZXN0bnV0CiAgICAgICAgOgogICAgICAgIFsxLjRdIAogICAgICAgICAgICBjbGVhbmVkIHVwIHN0eWxlLWNtcy1wYWdlIHJlc291cmNlcyBpbiBzaXRlbWFwcywKcmVtb3ZlZCBzZXJpYWxpemVyIGZyb20gc3R5bGUtY21zLXBhZ2UgcmVzb3VyY2UsCnN0YXR1c0NvZGUgd2Fzbid0IGJlaW5nIHBhc3NlZCB0byB0aGUgc2VyaWFsaXplciBbY29jb29uIGJ1Zz9dLAphZGRlZCBtYXRjaCBmb3Igc3VjZXNzZnVsIEhFQUQgcmVxdWVzdCBmb3IgZG9jdW1lbnQgW2xpZ2h0d2VpZ2h0IHJlcXVlc3RdLAphZGRlZCAiTGFzdC1Nb2RpZmllZCIgaGVhZGVyIGZvciByZXNwb25zZSB0byBzdWNlc3NmdWwgcmVxdWVzdCBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS40IHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjQgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBjaGVzdG51dAogICAgICAgIDoKICAgICAgICBbMS40XSAKICAgICAgICAgICAgYWRkZWQgdGVtcGxhdGUtZmFsbGJhY2sgc291cmNlIGZhY3RvcnkgKHVzZWQgdGVtcGxhdGUtZmFsbGJhY2s6Ly8gaW5zdGVhZCBvZiB0ZW1wbGF0ZTovLyBpbiB0aGUgZXhhbXBsZSk6CgombHQ7cXVvdGUgc3JjPSJodHRwOi8vbGVueWEuYXBhY2hlLm9yZy8xXzQvcmVmZXJlbmNlL3B1YmxpY2F0aW9uLXRlbXBsYXRpbmcvaW5kZXguaHRtbCImZ3Q7CiAgVG8gc2ltcGxpZnkgb3ZlcnJpZGluZyBvZiBYU0xUIHN0eWxlc2hlZXRzLCBpdCB3b3VsZCBiZSB1c2VmdWwgdG8gaW1wb3J0CiAgdGhlIHRlbXBsYXRlIHN0eWxlc2hlZXQuIEZvciB0aGlzIHB1cnBvc2UsIGFuIGFkZGl0aW9uYWwgdGVtcGxhdGUgc291cmNlCiAgZmFjdG9yeSBjb3VsZCBiZSB1c2VkLCB3aGljaCBza2lwcyB0aGUgY3VycmVudCBwdWJsaWNhdGlvbiB3aGVuIHJlc29sdmluZwogIHRoZSBmaWxlOgoKICAmbHQ7eHNsOmltcG9ydCBocmVmPSJ0ZW1wbGF0ZTovL3RlbXBsYXRlL3hzbHQvY29tbW9uL2hlYWRlci54c2wiLyZndDsKJmx0Oy9xdW90ZSZndDsgIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjQgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuNCB1cGRhdGUKICAgICAgICBieQogICAgICAgIGNoZXN0bnV0CiAgICAgICAgOgogICAgICAgIFsxLjRdIAogICAgICAgICAgICBGaXhlcyBCdWcgMzY3MjUsIFRoYW5rcyB0byBhIHBhdGNoIGJ5IEZlbGl4IFL2dGhlbmJhY2hlciBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS40IHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjQgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBjaGVzdG51dAogICAgICAgIDoKICAgICAgICBbMS40XSAKICAgICAgICAgICAgbW92ZWQgbWF0Y2ggZm9yIG1vZHVsZXMgYWJvdmUgdXNlY2FzZSBtYXRjaCBzbyB0aGF0IG1vZHVsZXMgY291bGQgYmUgdXNlZCBpbiB1c2VjYXNlIHZpZXdzIChsaXZlIHVzZWNhc2UgbWlnaHQgd2FudCB0byB1c2Ugc2l0ZSBuYXZpZ2F0aW9uIGZyb20gc2l0ZXRyZWUgbW9kdWxlKSBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS40IHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjQgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBjaGVzdG51dAogICAgICAgIDoKICAgICAgICBbMS40XSAKICAgICAgICAgICAgZmFsbGJhY2s6Ly8gcHJvdG8gdXNlZCBvdXRzaWRlIG9mIGEgcHVibGljYXRpb24gc2hvdWxkIGJlIHRyZWF0ZWQgbGlrZSBjb250ZXh0Oi8vIHByb3RvY29sIChzaG91bGRuJ3QgbG9vayBpbiBub24gZXhpc3RlbnQgcHVibGljYXRpb25zKSBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS40IHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjQgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBjaGVzdG51dAogICAgICAgIDoKICAgICAgICBbMS40XSAKICAgICAgICAgICAgZmFsbGJhY2sgcHJvdG9jb2wgY2F1c2VzIHByb2JsZW1zIHdoZW4gdXNlZCBvdXRzaWRlIG9mIHB1YmxpY2F0aW9uLCB0aGlzIGZpeCBhbGxvd3MgQ3JlYXRlUHVibGljYXRpb25Gcm9tVGVtcGxhdGUgdXNlY2FzZSB0byB3b3JrIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjQgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuNCB1cGRhdGUKICAgICAgICBieQogICAgICAgIGNoZXN0bnV0CiAgICAgICAgOgogICAgICAgIFsxLjRdIAogICAgICAgICAgICBVc2UgZmFsbGJhY2sgcHJvdG8gZm9yIGp4OmltcG9ydHMgc28gdGhleSBjYW4gYmUgb3ZlcnJpZGRlbiBpbiB0ZW1wbGF0ZWQgcHVicyBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS40IHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjQgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBjaGVzdG51dAogICAgICAgIDoKICAgICAgICBbMS40XSAKICAgICAgICAgICAgZml4IHRvIG1ha2Ugc2FtcGxlIHNlbGVjdGlvbiBzZWxlY3RlZCBhZ2FpbiBvbiBhIHN1YnNlcXVlbnQgc2NyZWVuLCB0aGFua3MgdG8gQW5kcmVhcyBmb3IgcG9pbnRpbmcgdGhpcyBvdXQgRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuNCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS40IHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgY2hlc3RudXQKICAgICAgICA6CiAgICAgICAgWzEuNF0gCiAgICAgICAgICAgIHR5cG8sIGxlbnlhOi8vIHNob3VsZCBiZSBmYWxsYmFjazovLyBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS40IHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjQgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBjaGVzdG51dAogICAgICAgIDoKICAgICAgICBbMS40XSAKICAgICAgICAgICAgYWRkZWQgZmFsbGJhY2s6Ly8gcHJvdG9jb2wgd2hlcmUgbmVlZGVkIGluIG9yZGVyIHRvIG92ZXJyaWRlIHJlZ2lzdGVyZWQgdXNlY2FzZSBoYW5kbGVpbmcgaW4gcHVicyB1c2luZyB0ZW1wbGF0aW5nIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjQgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuNCB1cGRhdGUKICAgICAgICBieQogICAgICAgIGNoZXN0bnV0CiAgICAgICAgOgogICAgICAgIFsxLjRdIAogICAgICAgICAgICBjbGVhbnVwIG9uIHJvbGxiYWNrIHVzZWNhc2UsIHNldCBleGl0IHVzZWNhc2UgaW4geGNvbmYgaW5zdGVhZCBvZiBqeCBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS40IHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjQgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICB0aG9yc3RlbgogICAgICAgIDoKICAgICAgICBbMS40XSAKICAgICAgICAgICAgQ0Zvcm1zIGRpc3NhbGxvdyBpZD0nc3VibWl0JyB0aGV5IGFyZSB1c2luZyBub3cgaWQ9J29rJy4gSSBleHRlbmRlZCB0aGUgdXNlY2FzZS1mdyB0byB0cmlnZ2VyIG9rIGFzIHdlbGwuIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjQgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuNCB1cGRhdGUKICAgICAgICBieQogICAgICAgIGNoZXN0bnV0CiAgICAgICAgOgogICAgICAgIFsxLjRdIAogICAgICAgICAgICBBZGRlZCBhYmlsaXR5IHRvIGhhdmUgbXVsdGlwbGUgc2FtcGxlcyBmb3IgYSBtb2R1bGUgKGRvYyB0eXBlKS4KRXh0cmEgc2FtcGxlIGNob2ljZXMgY2FuIGJlIGFkZGVkIGJ5IGFkZGluZyB0aGUgc2FtcGxlIHVyaSB0byB0aGUgbW9kdWxlcyBtb2R1bGUueGNvbmYgZmlsZSBsaWtlIHNvIChub3RpY2UgdGhlIGV4dHJhIG5hbWUgYXR0cmlidXRlKToKCiZsdDtzYW1wbGUtbmFtZSZndDtmYWxsYmFjazovL2xlbnlhL21vZHVsZXMveGh0bWwvc2FtcGxlcy94aHRtbC54bWwmbHQ7L3NhbXBsZS1uYW1lJmd0OwombHQ7c2FtcGxlLW5hbWUgbmFtZT0iVHdvIENvbHVtbiBMYXlvdXQiJmd0O2ZhbGxiYWNrOi8vbGVueWEvbW9kdWxlcy94aHRtbC9zYW1wbGVzL3hodG1sLTJjb2wueG1sJmx0Oy9zYW1wbGUtbmFtZSZndDsgRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuNCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS40IHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgYW5kcmVhcwogICAgICAgIDoKICAgICAgICBbMS40XSAKICAgICAgICAgICAgW21pbm9yIGNoYW5nZV0gcmVtb3ZlZCBsb2cgdHJhbnNmb3JtZXIgKGRlYnVnKSwgdGhhbmtzIHRvIEpvc2lhcyBUaG9lbnkgZm9yIHBvaW50aW5nIHRoaXMgb3V0IERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjQgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuNCB1cGRhdGUKICAgICAgICBieQogICAgICAgIGFuZHJlYXMKICAgICAgICA6CiAgICAgICAgWzEuNF0gCiAgICAgICAgICAgIEVuaGFuY2VkIG5vdGlmaWNhdGlvbiBzZXJ2aWNlOiBBZGRlZCBpMThuIGZvciBtZXNzYWdlIHN1YmplY3QuIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjQgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuNCB1cGRhdGUKICAgICAgICBieQogICAgICAgIGFuZHJlYXMKICAgICAgICA6CiAgICAgICAgWzEuNF0gCiAgICAgICAgICAgIFttaW5vciBjaGFuZ2VdIHJldmVydGVkIGFjY2lkZW50aWFsIGNoZWNrLWluIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjQgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuNCB1cGRhdGUKICAgICAgICBieQogICAgICAgIG1pY2hpCiAgICAgICAgOgogICAgICAgIFsxLjRdIAogICAgICAgICAgICBDb2Nvb24gdmVyc2lvbiB1cGRhdGVkIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjQgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuNCB1cGRhdGUKICAgICAgICBieQogICAgICAgIG1pY2hpCiAgICAgICAgOgogICAgICAgIFsxLjRdIAogICAgICAgICAgICBMQ1IgdXBkYXRlZCBzdWNoIHRoYXQgbmV3IENvY29vbiBidWlsZCBpcyBiZWluZyBmb3JjZWQgRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IERvY3MgYWRkPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPkRvY3MgYWRkCiAgICAgICAgYnkKICAgICAgICBhbmRyZWFzCiAgICAgICAgOgogICAgICAgIFtEb2NzXSAKICAgICAgICAgICAgQWRkZWQgZG9jcyBhYm91dCBub3RpZmljYXRpb24gRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuNCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS40IHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgYW5kcmVhcwogICAgICAgIDoKICAgICAgICBbMS40XSAKICAgICAgICAgICAgW21pbm9yIGNoYW5nZV0gcmVtb3ZlZCBkZWFkIGNvZGUgRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuNCBhZGQ8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS40IGFkZAogICAgICAgIGJ5CiAgICAgICAgYW5kcmVhcwogICAgICAgIDoKICAgICAgICBbMS40XSAKICAgICAgICAgICAgQWRkZWQgbm90aWZpY2F0aW9uIG1vZHVsZS4gRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IERvY3MgYWRkPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPkRvY3MgYWRkCiAgICAgICAgYnkKICAgICAgICBhbmRyZWFzCiAgICAgICAgOgogICAgICAgIFtEb2NzXSAKICAgICAgICAgICAgQWRkZWQgZG9jcyBhYm91dCBwcm90b2NvbHMuIFRoYW5rcyB0byBGZWxpeCBSb2V0aGVuYmFjaGVyLiBUaGlzIGZpeGVzIGJ1ZyAjMzYzNjAgRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IERvY3MgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPkRvY3MgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBhbmRyZWFzCiAgICAgICAgOgogICAgICAgIFtEb2NzXSAKICAgICAgICAgICAgQWRkZWQgbW9yZSBkb2N1bWVudGF0aW9uIGFib3V0IG1vZHVsZXMgRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IERvY3MgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPkRvY3MgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBhbmRyZWFzCiAgICAgICAgOgogICAgICAgIFtEb2NzXSAKICAgICAgICAgICAgQWRkZWQgRkFRIGVudHJ5IGFib3V0IGN1c3RvbSBsb2dpY3NoZWV0cyBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS40IHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjQgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBjaGVzdG51dAogICAgICAgIDoKICAgICAgICBbMS40XSAKICAgICAgICAgICAgQWRkZWQgRG9jdW1lbnRDb21wYXJhdG9yIGZvciBzb3J0QXNjZW5kaW5nIHNvIHRoYXQgbmVzdGVkIGRvY3MgY2FuIGJlIGRlbGV0ZWQgIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjQgYWRkPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuNCBhZGQKICAgICAgICBieQogICAgICAgIGFuZHJlYXMKICAgICAgICA6CiAgICAgICAgWzEuNF0gCiAgICAgICAgICAgIEFkZGVkIEN1c3RvbU1ldGFEYXRhTW9kdWxlIHRvIHJldHJpZXZlIGN1c3RvbSBtZXRhIGRhdGEuIFRoaXMgZml4ZXMgYnVnICMzNjY2OC4gVGhhbmtzIHRvIEZlbGl4IFJvZXRoZW5iYWNoZXIgKGFuZCBzb3JyeSB0aGF0IEkgZm9yZ290IHRvIG1lbnRpb24geW91IGluIG15IGxhc3QgY29tbWl0IC4uLikgRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuNCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS40IHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgYW5kcmVhcwogICAgICAgIDoKICAgICAgICBbMS40XSAKICAgICAgICAgICAgW21pbm9yIGNoYW5nZV0gc2V0dGluZyBlb2wtc3R5bGUgdG8gbmF0aXZlIGZvciBjb2Nvb24teGNvbmYueHNsIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjQgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuNCB1cGRhdGUKICAgICAgICBieQogICAgICAgIGFuZHJlYXMKICAgICAgICA6CiAgICAgICAgWzEuNF0gCiAgICAgICAgICAgIEFwcGxpZWQgcGF0Y2ggZm9yIGJ1ZyAjMzY2NTcuIFRoaXMgZml4ZXMgaGFuZGxpbmcgb2Ygbm9uLWZpeGVkIG1ldGEgZGF0YSBhdHRyaWJ1dGUgc2V0cy4gRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuNCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS40IHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgY2hlc3RudXQKICAgICAgICA6CiAgICAgICAgWzEuNF0gCiAgICAgICAgICAgICBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS40IHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjQgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBjaGVzdG51dAogICAgICAgIDoKICAgICAgICBbMS40XSAKICAgICAgICAgICAgYnhlIG5lZWRzIHRvIGFkZCB3b3JrZmxvdyB2ZXJzaW9uIG9uIGVkaXQgRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuNCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS40IHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgY2hlc3RudXQKICAgICAgICA6CiAgICAgICAgWzEuNF0gCiAgICAgICAgICAgIGFkZGVkIGRhdGUsIHVzZXIsIGFuZCBpcCB0byB2ZXJzaW9ucyBmb3Igd29ya2Zsb3cgdGFiIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjQgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuNCB1cGRhdGUKICAgICAgICBieQogICAgICAgIGNoZXN0bnV0CiAgICAgICAgOgogICAgICAgIFsxLjRdIAogICAgICAgICAgICByZXBsYWNlIC4uLy4uIHdpdGggZmFsbGJhY2sgcHJvdG9jb2wgRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuNCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS40IHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgbWljaGkKICAgICAgICA6CiAgICAgICAgWzEuNF0gCiAgICAgICAgICAgIHRoYW5rcyB0byBHcmVnb3IgSW1ib2RlbiB0aGUgYnVpbGQuc2ggcmV0dXJucyBhIHN0YXR1cyBmb3IgZnVydGhlciB1c2FnZSwgZS5nLiBhdXRvbWF0aWMgYnVpbGQgdGVzdGluZyBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS40IHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjQgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBjaGVzdG51dAogICAgICAgIDoKICAgICAgICBbMS40XSAKICAgICAgICAgICAgYml0Zmx1eCBmaXhlcyBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS40IHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjQgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBjaGVzdG51dAogICAgICAgIDoKICAgICAgICBbMS40XSAKICAgICAgICAgICAgIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjQgcmVtb3ZlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuNCByZW1vdmUKICAgICAgICBieQogICAgICAgIGNoZXN0bnV0CiAgICAgICAgOgogICAgICAgIFsxLjRdIAogICAgICAgICAgICBSb2xsYmFja0FjdGlvbiByZXBsYWNlZCB3aXRoIFJvbGxiYWNrIHVzZWNhc2UgRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuNCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS40IHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgY2hlc3RudXQKICAgICAgICA6CiAgICAgICAgWzEuNF0gCiAgICAgICAgICAgIGZpeGVzIHRvIHNob3cgdmVyc2lvbnMgZnJvbSByZXZpc2lvbiB0YWIgRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuNCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS40IHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgY2hlc3RudXQKICAgICAgICA6CiAgICAgICAgWzEuNF0gCiAgICAgICAgICAgIGlzQ2hlY2tlZE91dEJ5VXNlciBtZXRob2Qgc2hvdWxkbid0IGFzc3VtZSB0aGF0IHRoZSBsYXRlc3QgZW50cnkgaXMgYSBjaGVja291dCBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS40IHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjQgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBjaGVzdG51dAogICAgICAgIDoKICAgICAgICBbMS40XSAKICAgICAgICAgICAgbmV3IHJvbGxiYWNrIHVzZWNhc2UgRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuNCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS40IHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgY2hlc3RudXQKICAgICAgICA6CiAgICAgICAgWzEuNF0gCiAgICAgICAgICAgIGNhbiBvbmx5IHJvbGxiYWNrIHRvIHZlcnNpb25zIHdpdGggYmFja3VwLCBvbmx5IHNlbmQgYmFja3VwIGVudHJpZXMgdG8gdXNlY2FzZSB2aWV3IERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjQgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuNCB1cGRhdGUKICAgICAgICBieQogICAgICAgIGNoZXN0bnV0CiAgICAgICAgOgogICAgICAgIFsxLjRdIAogICAgICAgICAgICBjaGFuZ2VkIGNoZWNraW4gYXQgdGhlIGVuZCBvZiBhIHJvbGxiYWNrIHRvIG1ha2UgYSBuZXcgdmVyc2lvbiBpZiBtYWtpbmcgYSBiYWNrdXAgIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjQgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuNCB1cGRhdGUKICAgICAgICBieQogICAgICAgIGNoZXN0bnV0CiAgICAgICAgOgogICAgICAgIFsxLjRdIAogICAgICAgICAgICBhZGRlZCBtZXRob2QgdG8gZ2V0IGJhY2t1cCBlbnRyaWVzIGZyb20gUkNNTC1maWxlIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjQgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuNCB1cGRhdGUKICAgICAgICBieQogICAgICAgIGNoZXN0bnV0CiAgICAgICAgOgogICAgICAgIFsxLjRdIAogICAgICAgICAgICBsb2NrIGRvYyBiZWZvcmUgcm9sbGJhY2ssIHVubG9jayBhZnRlciBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS40IHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjQgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICB0aG9yc3RlbgogICAgICAgIDoKICAgICAgICBbMS40XSAKICAgICAgICAgICAgR2V0dGluZyByaWQgb2YgdGhlIGhhcmRjb2RlZCBwYXRoLiBUaGF0IGVuYWJsZXMgdGhlIHVzYWdlIG9mIHRoZSBjb21wb3NlciBpbiBhbnkgcHViIHRoYXQgaGFzIHRoZSBjb21waWxhdGlvbiBzb3VyY2UgdHlwZS4gQ29tbWVudGVkIG91dCB0aGUgc2F2ZSBhY3Rpb24sIHRoZXJlIGlzIGEgYnVnIHRoYXQgSSBhbSB0cmFja2luZyBzaW5jZSBkYXlzIGluIGxlbnlhIGFuZCBhY3R1YWxseSBJIGRvIG5vdCBrbm93IHdoeSBpdCBvY2N1cnMuIEFzIHdvcmthcm91bmQgZm9yIHRoZSBwcmVzZW50YXRpb24gSSByZWNvbW1lbmQgdG8gc2F2ZSBpdCB0byB0aGUgZmlsZSBzeXN0ZW0gZGlyZWN0bHkgYW5kIGFmdGVyIHRoZSBwcmVzZW50YXRpb24ga2VlcCBvbiBkZWJ1Z2dpbmcuIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjQgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuNCB1cGRhdGUKICAgICAgICBieQogICAgICAgIGFuZHJlYXMKICAgICAgICA6CiAgICAgICAgWzEuNF0gCiAgICAgICAgICAgIEFwcGxpZWQgcGF0Y2ggZm9yIGJ1ZyAjMzY1NTMgKEFQSSBjaGFuZ2UgaW4gdmFsaWRhdGlvbiBibG9jaykuIFRoYW5rcyB0byBGZWxpeCBSb2V0aGVuYmFjaGVyLiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS40IHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjQgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICB0aG9yc3RlbgogICAgICAgIDoKICAgICAgICBbMS40XSAKICAgICAgICAgICAgQWRkZWQgdGhlIHByb3h5IHRvIHRoZSBnZW5lcmljIHZhciBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS40IHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjQgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBhbmRyZWFzCiAgICAgICAgOgogICAgICAgIFsxLjRdIAogICAgICAgICAgICBSZW1vdmVkIGN1c3RvbSBMZW55YSB2YWxpZGF0aW9uIGNvZGUsIHVzaW5nIENvY29vbiB2YWxpZGF0aW9uIGNvbXBvbmVudHMgaW5zdGVhZC4gRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuNCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS40IHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgY2hlc3RudXQKICAgICAgICA6CiAgICAgICAgWzEuNF0gCiAgICAgICAgICAgIHRoYW5rcyB0byBhIHBhdGNoIGJ5IEZlbGl4IFL2dGhlbmJhY2hlciAgCmZpeGVzIGJ1ZyAzNjUzOSBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS40IHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjQgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBhbmRyZWFzCiAgICAgICAgOgogICAgICAgIFsxLjRdIAogICAgICAgICAgICBBZGQgY29ycmVjdCBVUkwgcHJlZml4IGZvciByZWxhdGl2ZSBzY2hlbWEgbG9jYXRpb25zLiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS40IHJlbW92ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjQgcmVtb3ZlCiAgICAgICAgYnkKICAgICAgICBhbmRyZWFzCiAgICAgICAgOgogICAgICAgIFsxLjRdIAogICAgICAgICAgICBNb3ZlZCBYU0xUIGFuZCBob21lcGFnZSBzY2hlbWFzIHRvIGNvcnJlc3BvbmRpbmcgbW9kdWxlcy4gVGhpcyByZXF1aXJlZCB0byB0cmFuc2xhdGUgZmFsbGJhY2s6Ly8gcm5nIGluY2x1ZGVzIHRvIGFic29sdXRlIHVybHMgKHRyYW5zbGF0ZS1ybmctaW5jbHVkZXMueHNsKSBzbyB0aGF0IHRoZXkgY2FuIGJlIHJlcXVlc3RlZCBieSBCWEUuIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjQgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuNCB1cGRhdGUKICAgICAgICBieQogICAgICAgIG1pY2hpCiAgICAgICAgOgogICAgICAgIFsxLjRdIAogICAgICAgICAgICB0aGFua3MgdG8gR3JlZ29yIEltYm9kZW4gYWxzbyBtZXRhIGRhdGEgaXMgYmVpbmcgZGVsZXRlZCBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS40IHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjQgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBtaWNoaQogICAgICAgIDoKICAgICAgICBbMS40XSAKICAgICAgICAgICAgdGhhbmtzIHRvIEdyZWdvciBJbWJvZGVuIGFsc28gdGhlIFNpbXBsZVNpdGVNYW5hZ2VyIGFsbG93cyBkZWxldGluZyBkb2N1bWVudHMgRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuNCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS40IHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgYW5kcmVhcwogICAgICAgIDoKICAgICAgICBbMS40XSAKICAgICAgICAgICAgW21pbm9yIGNoYW5nZV0gcmVtb3ZlZCBqaW5nIHRyYW5zZm9ybWVyIGRlY2xhcmF0aW9uIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjQgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuNCB1cGRhdGUKICAgICAgICBieQogICAgICAgIGFuZHJlYXMKICAgICAgICA6CiAgICAgICAgWzEuNF0gCiAgICAgICAgICAgIEludHJvZHVjZWQgVmFsaWRhdG9yIHNlcnZpY2UuIFRoZSBKaW5nVmFsaWRhdG9yIGlzIGJhc2VkIG9uIENvY29vbidzIEppbmdUcmFuc2Zvcm1lciAodmFsaWRhdGlvbiBibG9jaykgYW5kIGFsbG93cyB0byB1c2UgcHJvdG9jb2xzIGluIFJlbGF4IE5HIGluY2x1ZGVzLiBUaGlzIHdheSwgd2UgY2FuIHVzZSBmYWxsYmFjazovLyB0byByZXNvbHZlIGNvcmUgc2NoZW1hcy4gRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuNCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS40IHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgYW5kcmVhcwogICAgICAgIDoKICAgICAgICBbMS40XSAKICAgICAgICAgICAgRGVmYXVsdCBQdWI6IEFsbG93IHJlc291cmNlIHR5cGVzIHdpdGhvdXQgY3VzdG9tIFhTTFQgRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuNCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS40IHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgYW5kcmVhcwogICAgICAgIDoKICAgICAgICBbMS40XSAKICAgICAgICAgICAgQWJzdHJhY3RVc2VjYXNlOiB3cmFwIGVycm9yIG1lc3NhZ2VzIGluIG5ldyBsaXN0IHRvIGF2b2lkIHNlZWluZyBjb25jdXJyZW50IG1vZGlmaWNhdGlvbnMgRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuNCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS40IHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgdGhvcnN0ZW4KICAgICAgICA6CiAgICAgICAgWzEuNF0gCiAgICAgICAgICAgIFNpbXBsaWZpZWQgdGhlIGNmb3JtIGRlZmluaXRpb25zIGZvciB0aGUgdXNlY2FzZS1mdyBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS40IGFkZDwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjQgYWRkCiAgICAgICAgYnkKICAgICAgICB0aG9yc3RlbgogICAgICAgIDoKICAgICAgICBbMS40XSAKICAgICAgICAgICAgRm9ybWF0aW5nIGNoYW5nZXMgb2YgdXNlY2FzZS5qcy4gQWRkZWQgYmFzaWMgZmxvdyB1dGlsIGpzIHdoaWNoIGNvbnRhaW5zIGlvIGZ1bmN0aW9ucyB0aGF0IGNhbiBiZSB1c2VkIGluIHRoZSBjdXN0b20gZmxvdyBleHRlbnNpb25zLiBBY3RpdmF0ZWQgdGhlIHV0aWwgY2xhc3MgaW4gdGhlIHVzZWNhc2UuanMuIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjQgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuNCB1cGRhdGUKICAgICAgICBieQogICAgICAgIHRob3JzdGVuCiAgICAgICAgOgogICAgICAgIFsxLjRdIAogICAgICAgICAgICBFbmhhbmNlZCAqY29kZSogZG9jdW1lbnRhdGlvbiBvZiB0aGUgZ2VuZXJpYyBmbG93IG9iamVjdCB0aGF0IHlvdSBjYW4gdXNlIGluIGN1c3RvbSBmbG93IHNjcmlwdCBleHRlbnNpb25zIGluIHVzZWNhc2VzLiBBbHRlcm5hdGl2ZWx5IG9uZSBjYW4gdXNlIHRoZSBpbnZva2luZyBqYXZhIGNsYXNzIGJ5IHByb3ZpZGluZyBiZWFuIHByb3BlcnRpZXMgbWV0aG9kcyAoZ2V0dGVyL3NldHRlciBtZXRob2RzKSBpbiB0aGlzIGNsYXNzIGFuZCB1c2UgdGhlbSBpbiB0aGUgZXh0ZW5zaW9ucy4gRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuNCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS40IHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgdGhvcnN0ZW4KICAgICAgICA6CiAgICAgICAgWzEuNF0gCiAgICAgICAgICAgIFRoZSB1c2VjYXNlIHV0aWwgY2xhc3NlcyBhcmUgbm90IHVzYWJsZSBBVE0gYmVjYXVzZSBvZiB0aGUgUmhpbm8gYnVnIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjQgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuNCB1cGRhdGUKICAgICAgICBieQogICAgICAgIHRob3JzdGVuCiAgICAgICAgOgogICAgICAgIFsxLjRdIAogICAgICAgICAgICBhZGRlZCBhbiBvdXRybyBmbG93c2NyaXB0IG1hdGNoZXIuIFRoaXMgd2F5IGl0IHBvc3NpYmxlIHRvIGUuZy4gc2F2ZSBmaWxlcyB0byB0aGUgZmlsZSBzeXN0ZW0gb3IgZG8gYW55IG90aGVyIGFjdGlvbiB3aGVuIHRoZSBmb3JtIHJldHVybnMgdG8gdGhlIHNjcmlwdC4gRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuNCBhZGQ8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS40IGFkZAogICAgICAgIGJ5CiAgICAgICAgYW5kcmVhcwogICAgICAgIDoKICAgICAgICBbMS40XSAKICAgICAgICAgICAgUmVuYW1lZCBwdWJsZXQueGNvbmYgdG8gbW9kdWxlLnhjb25mIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjQgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuNCB1cGRhdGUKICAgICAgICBieQogICAgICAgIGFuZHJlYXMKICAgICAgICA6CiAgICAgICAgWzEuNF0gCiAgICAgICAgICAgIFttaW5vciBjaGFuZ2VdIGFkZGVkIEFTRiBoZWFkZXIgRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IFNhbmRib3ggYWRkPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPlNhbmRib3ggYWRkCiAgICAgICAgYnkKICAgICAgICBncmVnb3IKICAgICAgICA6CiAgICAgICAgW1NhbmRib3hdIAogICAgICAgICAgICBjb21taXR0ZWQgc29jIHdvcmsgZnJvbSByb2JlcnQgZ29lbmUgRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuNCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS40IHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgdGhvcnN0ZW4KICAgICAgICA6CiAgICAgICAgWzEuNF0gCiAgICAgICAgICAgIEZpeGVkIHRoZSBjZm9ybSBpbnRlZ3JhdGlvbi4gSSBuZWVkZWQgdG8gc3dpdGNoIHRoZSBwb3NpdGlvbiBvZiB0aGUgYmluZGluZyB0byBtYWtlIGl0IHBvc3NpYmxlIHRvIGxvYWQgdmFsdWVzIGludG8gdGhlIGZvcm0gRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuMiB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS4yIHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgZWRpdGgKICAgICAgICA6CiAgICAgICAgWzEuMl0gCiAgICAgICAgICAgIEZpeCBlbmNvZGluZyBwcm9ibGVtIG9mIHRoZSBtYWlsIHN1YmplY3QgRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuNCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS40IHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgYW5kcmVhcwogICAgICAgIDoKICAgICAgICBbMS40XSAKICAgICAgICAgICAgQXZvaWQgTlBFIHdoZW4gRG9jdW1lbnRIZWxwZXIgcGFzc2VzIERURCBpbmZvcm1hdGlvbiB0byB0aGUgdHJhbnNmb3JtZXIuIFRoaXMgZml4ZXMgYnVnICMzNjQxOS4gVGhhbmtzIHRvIEZlbGl4IFJvZXRoZW5iYWNoZXIuIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjQgcmVtb3ZlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuNCByZW1vdmUKICAgICAgICBieQogICAgICAgIGFuZHJlYXMKICAgICAgICA6CiAgICAgICAgWzEuNF0gCiAgICAgICAgICAgIFttaW5vciBjaGFuZ2VdIHJlbW92ZWQgb2Jzb2xldGUgd29ya2Zsb3cgY2xhc3NlcyBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS40IHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjQgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBhbmRyZWFzCiAgICAgICAgOgogICAgICAgIFsxLjRdIAogICAgICAgICAgICBSZW1vdmVkIHdvcmtmbG93IHNpdHVhdGlvbi4gVGhlIHNpdHVhdGlvbiBpbmZvcm1hdGlvbiBpcyBub3cgaW1wbGljaXRlbHkgcHJvdmlkZWQgYnkgdGhlIHdvcmtmbG93YWJsZSBvYmplY3QuIFRoaXMgYWxsb3dzIHRvIGdldCByaWQgb2YgV29ya2Zsb3dNYW5hZ2VyLmdldFNpdHVhdGlvbigpLCB3aGljaCByZXF1aXJlZCBpdCB0byBiZSBDb250ZXh0dWFsaXphYmxlICh3aGljaCBmYWlscyB3aXRoIHBvb2xpbmcpLiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS40IHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjQgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBtaWNoaQogICAgICAgIDoKICAgICAgICBbMS40XSAKICAgICAgICAgICAgdGhhbmtzIHRvIEdyZWdvciBJbWJvZGVuIHRoZSBvbmUgZm9ybSBlZGl0b3IgaXMgYWJsZSB0byBzYXZlIGFnYWluIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjQgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuNCB1cGRhdGUKICAgICAgICBieQogICAgICAgIGFuZHJlYXMKICAgICAgICA6CiAgICAgICAgWzEuNF0gCiAgICAgICAgICAgIFN0b3JlIHBhcmFtZXRlcnNJbml0aWFsaXplZCBhcyBwYXJhbWV0ZXIgdG8gYXZvaWQgcmUtaW5pdGlhbGl6YXRpb24gd2hlbiBVc2VjYXNlUHJveHkgYWNjZXNzZXMgZ2V0VFBhcmFtZXRlck5hbWVzKCkgRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuNCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS40IHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgYW5kcmVhcwogICAgICAgIDoKICAgICAgICBbMS40XSAKICAgICAgICAgICAgRG9jdW1lbnRTdG9yZTogRml4ZWQgb3JkZXIgb2YgYXJndW1lbnRzIG9mIERvY3VtZW50SWRlbnRpZmllciBjdG9yLiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS4yIHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjIgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBlZGl0aAogICAgICAgIDoKICAgICAgICBbMS4yXSAKICAgICAgICAgICAgRXhjZXB0aW9uIGluIGNhc2Ugbm8gY2hpbGQgZG9jdW1lbnQgZXhpc3QgKGZvciB0aGUgYWNjZXNzIG9mIGZpcnN0LWNoaWxkLWlkIHdpdGggdGhlIHNpdGV0cmVlIGlucHV0IG1vZHVsZSkgRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuMiBhZGQ8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS4yIGFkZAogICAgICAgIGJ5CiAgICAgICAgZWRpdGgKICAgICAgICA6CiAgICAgICAgWzEuMl0gCiAgICAgICAgICAgIEV4Y2VwdGlvbiBpbiBjYXNlIG5vIGNoaWxkIGRvY3VtZW50IGV4aXN0IChmb3IgdGhlIGFjY2VzcyBvZiBmaXJzdC1jaGlsZC1pZCB3aXRoIHRoZSBzaXRldHJlZSBpbnB1dCBtb2R1bGUpIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjQgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuNCB1cGRhdGUKICAgICAgICBieQogICAgICAgIGFuZHJlYXMKICAgICAgICA6CiAgICAgICAgWzEuNF0gCiAgICAgICAgICAgIFBlcmZvcm1hbmNlOiBhZGRlZCB3b3JrZmxvdyBzY2hlbWEgY2FjaGUgRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuNCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS40IHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgYW5kcmVhcwogICAgICAgIDoKICAgICAgICBbMS40XSAKICAgICAgICAgICAgUGVyZm9ybWFuY2U6IEF0dGFjaCBwYWdlIGVudmVsb3BlIHRvIHJlcXVlc3QsIGxhenkgbG9hZGluZyBmb3IgdXNlY2FzZSBwYXJhbWV0ZXJzIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjQgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuNCB1cGRhdGUKICAgICAgICBieQogICAgICAgIGFuZHJlYXMKICAgICAgICA6CiAgICAgICAgWzEuNF0gCiAgICAgICAgICAgIFttaW5vciBjaGFuZ2VdIGNsZWFuZWQgdXAgZG9jdW1lbnQgYnVpbGRlciBjb2RlIHRvIHVzZSBVUkxJbmZvcm1hdGlvbiwgc2ltcGxpZmllZCBXb3JrZmxvd01lbnVUcmFuc2Zvcm1lciBjb2RlIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjQgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuNCB1cGRhdGUKICAgICAgICBieQogICAgICAgIGFuZHJlYXMKICAgICAgICA6CiAgICAgICAgWzEuNF0gCiAgICAgICAgICAgIFJlbW92ZWQgbm9uLXVybCBtZXRob2RzIGZyb20gdXNlY2FzZSByZXNvbHZlci4gVGhpcyB3YXksIGl0IGRvZXNuJ3QgaGF2ZSB0byBiZSBDb250ZXh0dWFsaXphYmxlIGFuZCBjYW4gYmUgVGhyZWFkU2FmZSAocGVyZm9ybWFuY2UgaXNzdWUpIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjQgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuNCB1cGRhdGUKICAgICAgICBieQogICAgICAgIGFuZHJlYXMKICAgICAgICA6CiAgICAgICAgWzEuNF0gCiAgICAgICAgICAgIFttaW5vciBjaGFuZ2VdIGNvZGUgY2xlYW51cCwgamF2YWRvYyBmaXhlcyBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS40IHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjQgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBhbmRyZWFzCiAgICAgICAgOgogICAgICAgIFsxLjRdIAogICAgICAgICAgICBbbWlub3IgY2hhbmdlXSBzaW1wbGlmaWVkIGNvZGUsIHJlbW92ZWQgYWNjaWRlbnRpYWxseSBjb21taXR0ZWQgZXJyb3IgbG9nIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjQgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuNCB1cGRhdGUKICAgICAgICBieQogICAgICAgIGFuZHJlYXMKICAgICAgICA6CiAgICAgICAgWzEuNF0gCiAgICAgICAgICAgIFJlZmFjdG9yZWQgcmVwb3NpdG9yeSBzZXNzaW9uIGhhbmRsaW5nLiBTd2l0Y2hlZCBmcm9tIFB1YmxpY2F0aW9uRmFjdG9yeSB0byBQdWJsaWNhdGlvbk1hbmFnZXIgQXZhbG9uIHNlcnZpY2UuIEFkZCBEb2N1bWVudElkZW50aWZpZXIgdG8gcmVkdWNlIGRvY3VtZW50IGhhbmRsaW5nIGNvc3RzLiBUaGlzIGdlbmVyYXRlcyBhIHBlcmZvcm1hbmNlIGltcHJvdmVtZW50LiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS4yIGFkZDwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjIgYWRkCiAgICAgICAgYnkKICAgICAgICBtaWNoaQogICAgICAgIDoKICAgICAgICBbMS4yXSAKICAgICAgICAgICAgc2FtcGxlIEpDUiByZXBvIGNvbmZpZyBhZGRlZCBzdWNoIHRoYXQgTGVueWEgMS4yLnggY2FuIGJlIHJ1biB3aXRoIENvY29vbiAyLjEueCBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS40IHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjQgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICB0aG9yc3RlbgogICAgICAgIDoKICAgICAgICBbMS40XSAKICAgICAgICAgICAgZml4ZWQgcmV2aXNpb24gMjQwMjIwIHdoaWNoIGRpZCBub3QgdXBkYXRlZCB0aGUgcHJvcGVydGllcy1idWlsZC54bWwgRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuNCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS40IHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgYW5kcmVhcwogICAgICAgIDoKICAgICAgICBbMS40XSAKICAgICAgICAgICAgQXBwbGllZCBwYXRjaCBmb3IgYnVnICMzNjM4MiAoY29weSBlbmRvcnNlZCBsaWJyYXJpZXMgZnJvbSBDb2Nvb24pLiBUaGFua3MgdG8gRmVsaXggUm9ldGhlbmJhY2hlci4gRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuNCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS40IHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgYW5kcmVhcwogICAgICAgIDoKICAgICAgICBbMS40XSAKICAgICAgICAgICAgW21pbm9yIGNoYW5nZV0gVXBkYXRlZCByZXZpc2lvbiBudW1iZXIgaW4gYnVpbGQucHJvcGVydGllcyBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgRG9jcyB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+RG9jcyB1cGRhdGUKICAgICAgICBieQogICAgICAgIGFuZHJlYXMKICAgICAgICA6CiAgICAgICAgW0RvY3NdIAogICAgICAgICAgICBHZW5lcmF0ZWQgbmV3IHN0YXR1cyBmaWxlLCBmaXhlZCBzb21lIHZhbGlkYXRpb24gZXJyb3JzIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCBEb2NzIHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj5Eb2NzIHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgYW5kcmVhcwogICAgICAgIDoKICAgICAgICBbRG9jc10gCiAgICAgICAgICAgIEFwcGxpZWQgcGF0Y2ggZm9yIDEuNCBzb3VyY2UgZG9jdW1lbnRhdGlvbiAoc2VlIGJ1ZyAjMzYwNzQpLiBUaGFua3MgdG8gT2xpdmVyIFNjaGFsY2guIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCBEb2NzIHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj5Eb2NzIHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgYW5kcmVhcwogICAgICAgIDoKICAgICAgICBbRG9jc10gCiAgICAgICAgICAgIEFkZGVkIG5vdGUgYWJvdXQgZGlzcGxheWluZyB1c2VjYXNlcyBpbiB0YWJzIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCBEb2NzIGFkZDwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj5Eb2NzIGFkZAogICAgICAgIGJ5CiAgICAgICAgYW5kcmVhcwogICAgICAgIDoKICAgICAgICBbRG9jc10gCiAgICAgICAgICAgIFJlbmFtZWQgcHVibGV0cyB0byBtb2R1bGVzIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjQgcmVtb3ZlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuNCByZW1vdmUKICAgICAgICBieQogICAgICAgIGFuZHJlYXMKICAgICAgICA6CiAgICAgICAgWzEuNF0gCiAgICAgICAgICAgIE1vdmVkIHNlYXJjaC1yZWxhdGVkIGZpbGVzIHRvIHNlYXJjaCBtb2R1bGUuIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjQgYWRkPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuNCBhZGQKICAgICAgICBieQogICAgICAgIGFuZHJlYXMKICAgICAgICA6CiAgICAgICAgWzEuNF0gCiAgICAgICAgICAgIE1vdmVkIHNlYXJjaC1yZWxhdGVkIGZpbGVzIHRvIHNlYXJjaCBtb2R1bGUuIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjQgYWRkPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuNCBhZGQKICAgICAgICBieQogICAgICAgIGFuZHJlYXMKICAgICAgICA6CiAgICAgICAgWzEuNF0gCiAgICAgICAgICAgIFJlbmFtZWQgcHVibGV0cyB0byBtb2R1bGVzIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjQgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuNCB1cGRhdGUKICAgICAgICBieQogICAgICAgIGFuZHJlYXMKICAgICAgICA6CiAgICAgICAgWzEuNF0gCiAgICAgICAgICAgIFJlbmFtZWQgcHVibGV0cyB0byBtb2R1bGVzLiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS40IGFkZDwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjQgYWRkCiAgICAgICAgYnkKICAgICAgICBhbmRyZWFzCiAgICAgICAgOgogICAgICAgIFsxLjRdIAogICAgICAgICAgICBBZGRlZCBsZW55YWRvYzovLyBwcm90b2NvbCBwdWJsZXQuIFRoaXMgZml4ZXMgYnVnICMzNjM2MC4gVGhhbmtzIHRvIEZlbGl4IFJvZXRoZW5iYWNoZXIuIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjQgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuNCB1cGRhdGUKICAgICAgICBieQogICAgICAgIHRob3JzdGVuCiAgICAgICAgOgogICAgICAgIFsxLjRdIAogICAgICAgICAgICBhZGRlZCBhIGdlbmVyaWMgdmFyaWFibGUgdGhhdCBjYW4gYmUgdXNlZCB3aXRoaW4gY2Zvcm1zIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjQgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuNCB1cGRhdGUKICAgICAgICBieQogICAgICAgIHRob3JzdGVuCiAgICAgICAgOgogICAgICAgIFsxLjRdIAogICAgICAgICAgICBBZGRlZCBmdWxsIGNmb3JtIHN1cHBvcnQgaW5jbHVzaXZlIGN1c3RvbSBmbG93IHNuaXBwZXQuIFRoYW5rcyB0byBKYXNvbiBKb2huc3Rvbiwgd2hvIHRvbGQgbWUgdGhlICduZXcgRnVuY3Rpb24nIHRyaWNrIG9uIGNvY29vbi1kZXYuIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjQgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuNCB1cGRhdGUKICAgICAgICBieQogICAgICAgIGFuZHJlYXMKICAgICAgICA6CiAgICAgICAgWzEuNF0gCiAgICAgICAgICAgIFdvcmtmbG93IC0gUm9sZUNvbmRpdGlvbiB1c2VzIFBvbGljeU1hbmFnZXIgdG8gY2hlY2sgYWN0dWFsIHBvbGljeSBvZiBhIGRvY3VtZW50IGluc3RlYWQgb2YgcmVxdWVzdCBwb2xpY3kuIFRoaXMgZml4ZXMgYnVnICMzNjM1OC4gRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuNCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS40IHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgdGhvcnN0ZW4KICAgICAgICA6CiAgICAgICAgWzEuNF0gCiAgICAgICAgICAgIExpbWl0ZWQgc3VwcG9ydCBmb3IgY2Zvcm1zLiBSaWdodCBub3cgaXQgaXMgKm5vdCogcG9zc2libGUgdG8gYWRkIGN1c3RvbSBmbG93IHNuaXBwZXRzIHRoaXMgd2lsbCBoYXZlIHRvIGNoYW5nZSBpbiB0aGUgZnV0dXJlLiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS40IHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjQgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBhbmRyZWFzCiAgICAgICAgOgogICAgICAgIFsxLjRdIAogICAgICAgICAgICBbbWlub3IgY2hhbmdlXSBmaXhlZCBjYXN0IFRyYW5zYWN0aW9uYWJsZSAtJmd0OyBOb2RlIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjQgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuNCB1cGRhdGUKICAgICAgICBieQogICAgICAgIGFuZHJlYXMKICAgICAgICA6CiAgICAgICAgWzEuNF0gCiAgICAgICAgICAgIFttaW5vciBjaGFuZ2VdIHJlbW92ZWQgZGVhZCBjb2RlIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjQgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuNCB1cGRhdGUKICAgICAgICBieQogICAgICAgIGFuZHJlYXMKICAgICAgICA6CiAgICAgICAgWzEuNF0gCiAgICAgICAgICAgIFttaW5vciBjaGFuZ2VdIHJlbW92ZWQgZGVhZCBjb2RlIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjQgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuNCB1cGRhdGUKICAgICAgICBieQogICAgICAgIGFuZHJlYXMKICAgICAgICA6CiAgICAgICAgWzEuNF0gCiAgICAgICAgICAgIFRlbXBsYXRlIG1hbmFnZXI6IHJlY3Vyc2UgaW50byBwdWJsaWNhdGlvbiB0ZW1wbGF0ZXMsIHRoaXMgZml4ZXMgYnVnICMzNjMwNCBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS40IHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjQgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBhbmRyZWFzCiAgICAgICAgOgogICAgICAgIFsxLjRdIAogICAgICAgICAgICBJbnN0YW50aWF0b3I6IERvbid0IGFkZCBhZGRpdGlvbmFsICZsdDt0ZW1wbGF0ZXMmZ3Q7IGVsZW1lbnQgaWYgaXQgYWxyZWFkeSBleGlzdHMgRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuNCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS40IHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgYW5kcmVhcwogICAgICAgIDoKICAgICAgICBbMS40XSAKICAgICAgICAgICAgVXBkYXRlZCBsaWJyYXJpZXMgdG8gQ29jb29uIHZlcnNpb25zIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjQgYWRkPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuNCBhZGQKICAgICAgICBieQogICAgICAgIGFuZHJlYXMKICAgICAgICA6CiAgICAgICAgWzEuNF0gCiAgICAgICAgICAgIEFkZCBKQ1Igd29ya3NwYWNlIGZpbGUgdG8gc291cmNlLiBUaGlzIGZpeGVzIGJ1ZyAjMzYzMzQuIENyZWRpdHMgdG8gRmVsaXggUm9ldGhlbmJhY2hlci4gRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuNCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS40IHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgY2hlc3RudXQKICAgICAgICA6CiAgICAgICAgWzEuNF0gCiAgICAgICAgICAgIEZpeGVzIGFiaWxpdHkgdG8gdXNlIHRoZSBBQyBMaXZlIHRhYiB0byByZXN0cmljdCBhY2Nlc3MgdG8gYSBwYWdlIG9yIGdyb3VwIG9mIHBhZ2VzIGluIHRoZSBsaXZlIGFyZWEgRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuNCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS40IHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgYW5kcmVhcwogICAgICAgIDoKICAgICAgICBbMS40XSAKICAgICAgICAgICAgRG9uJ3QgYXBwbHkgYWRtaW4gbWVudSBmb3IgZWFjaCBwdWJsZXQgKGZpeGVzIGJ1ZyAjMzYyNzcpLCBkb24ndCBzaG93ICJOZXcgLi4uIiBpdGVtcyBmcm9tIHB1YmxldHMgaW4gYWRtaW4gbWVudSBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS40IHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjQgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBhbmRyZWFzCiAgICAgICAgOgogICAgICAgIFsxLjRdIAogICAgICAgICAgICBEaXNwbGF5IEpDUiB1c2VjYXNlIGluIGFkbWluIGFyZWEgdGFiLiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS40IGFkZDwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjQgYWRkCiAgICAgICAgYnkKICAgICAgICBhbmRyZWFzCiAgICAgICAgOgogICAgICAgIFsxLjRdIAogICAgICAgICAgICBBZGRlZCB1c2VjYXNlIEdVSSBtYW5hZ2VyIHRvIGFsbG93IGR5bmFtaWMgYXNzZW1ibHkgb2YgdGFicyBpbiBhZG1pbiBhbmQgc2l0ZSBlbnZpcm9ubWVudHMuIFRoaXMgd2lsbCBhbGxvdyB0byByZWdpc3RlciBuZXcgdGFicyBieSBtb2R1bGVzIHVzaW5nIFhQYXRjaCBmaWxlcy4gRnVydGhlcm1vcmUsIHRhYnMgYXJlIG5vdyBkaXNwbGF5ZWQgLyBoaWRkZW4gYmFzZWQgb24gYWNjZXNzIHJpZ2h0cyBhbmQgZXhlY3V0YWJpbGl0eSwgc2ltaWxhciB0byB0aGUgbWVudWJhci4gRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuNCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS40IHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgYW5kcmVhcwogICAgICAgIDoKICAgICAgICBbMS40XSAKICAgICAgICAgICAgVHJlZVNpdGVNYW5hZ2VyOiBzYXZlIFhNTCB3aGVuIG5vZGUgbGFiZWwgd2FzIHJlbW92ZWQuIFRoaXMgZml4ZXMgYnVnICMzNjI5Ny4gRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuNCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS40IHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgYW5kcmVhcwogICAgICAgIDoKICAgICAgICBbMS40XSAKICAgICAgICAgICAgTmF2aWdhdGlvbiB2aXNpYmlsaXR5IGNoZWNrYm94OiBEb24ndCBjaGFuZ2Ugb3JkZXIgb2YgJmx0O29wdGlvbiZndDsgZWxlbWVudHMsIGJ1dCBhZGQgYSBAc2VsZWN0ZWQgYXR0cmlidXRlIGZvciBjb25zaXN0ZW5jeSByZWFzb25zIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjQgYWRkPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuNCBhZGQKICAgICAgICBieQogICAgICAgIGFuZHJlYXMKICAgICAgICA6CiAgICAgICAgWzEuNF0gCiAgICAgICAgICAgIEFkZGVkIHVzZWNhc2UgZm9yIEpDUiBpbXBvcnQrZXhwb3J0IChzZWUgYnVnICMzNjI3MykuIENyZWRpdHMgdG8gRmVsaXggUm9ldGhlbmJhY2hlci4gRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuNCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS40IHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgYW5kcmVhcwogICAgICAgIDoKICAgICAgICBbMS40XSAKICAgICAgICAgICAgQWxsb3cgaW50ZXJuYWwgY2FsbHMgZnJvbSB1c2VjYXNlcyB0byBwdWJsZXRzIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjQgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuNCB1cGRhdGUKICAgICAgICBieQogICAgICAgIGFuZHJlYXMKICAgICAgICA6CiAgICAgICAgWzEuNF0gCiAgICAgICAgICAgIEFsbG93aW5nIG5vbi1sZW55YS1wYWdlIHVzZWNhc2Ugdmlld3MgKGZvciBpbnN0YW5jZSBwbGFpbiBYTUwpIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjQgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuNCB1cGRhdGUKICAgICAgICBieQogICAgICAgIGphbm4KICAgICAgICA6CiAgICAgICAgWzEuNF0gCiAgICAgICAgICAgIG1ha2UgdmlzaWJsZWlubmF2IHNlbGVjdGlvbiBwZXJzaXN0ZW50IGluIGNhc2Ugb2YgYSByZWxvYWQgb2YgdGhlIGNyZWF0ZQpzY3JlZW4KIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjQgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuNCB1cGRhdGUKICAgICAgICBieQogICAgICAgIGphbm4KICAgICAgICA6CiAgICAgICAgWzEuNF0gCiAgICAgICAgICAgIG5lY2Vzc2FyeSBjaGFuZ2UgaW4gb3JkZXIgdG8gaGlkZSBhIG5vZGUgaW4gdGhlIG5hdmlnYXRpb24KKHZpc2libGVpbm5hdiBzaXRldHJlZSBhdHRyaWJ1dGUpCiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS40IHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjQgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBqYW5uCiAgICAgICAgOgogICAgICAgIFsxLjRdIAogICAgICAgICAgICBuZWNlc3NhcnkgY2hhbmdlcyBpbiB0aGUgc2l0ZXRyZWUgcHVibGV0IGluIG9yZGVyIHRvIGhpZGUgYSBub2RlIGluIHRoZSBuYXZpZ2F0aW9uCih2aXNpYmxlaW5uYXYgc2l0ZXRyZWUgYXR0cmlidXRlKQogRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuNCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS40IHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgamFubgogICAgICAgIDoKICAgICAgICBbMS40XSAKICAgICAgICAgICAgbmVjZXNzYXJ5IGNoYW5nZXMgaW4gb3JkZXIgdG8gaGlkZSBhIG5vZGUgaW4gdGhlIG5hdmlnYXRpb24KKHZpc2libGVpbm5hdiBzaXRldHJlZSBhdHRyaWJ1dGUpCiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS40IHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjQgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBhbmRyZWFzCiAgICAgICAgOgogICAgICAgIFsxLjRdIAogICAgICAgICAgICBVcGRhdGVkIGJsb2cgdXNlY2FzZSAoVHJhbnNhY3Rpb25hYmxlIC0mZ3Q7IE5vZGUpIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjQgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuNCB1cGRhdGUKICAgICAgICBieQogICAgICAgIGFuZHJlYXMKICAgICAgICA6CiAgICAgICAgWzEuNF0gCiAgICAgICAgICAgIFN1cHBvcnQgc3VibWVudXMgaW4gbm9uLVhVTCBtZW51MnhodG1sIGFzIHdlbGwgRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuNCBhZGQ8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS40IGFkZAogICAgICAgIGJ5CiAgICAgICAgYW5kcmVhcwogICAgICAgIDoKICAgICAgICBbMS40XSAKICAgICAgICAgICAgVXBkYXRlIHVzZWNhc2UgY29uZmlndXJhdGlvbnMgYW5kIGhhbmRsZXIgY2xhc3NlcyAoVHJhbnNhY3Rpb25hYmxlIC0mZ3Q7IE5vZGUpIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjQgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuNCB1cGRhdGUKICAgICAgICBieQogICAgICAgIGFuZHJlYXMKICAgICAgICA6CiAgICAgICAgWzEuNF0gCiAgICAgICAgICAgIERvbid0IGxvY2sgbWV0YSBkYXRhIG5vZGUgZm9yIEpDUlNvdXJjZU5vZGVzIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjQgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuNCB1cGRhdGUKICAgICAgICBieQogICAgICAgIGFuZHJlYXMKICAgICAgICA6CiAgICAgICAgWzEuNF0gCiAgICAgICAgICAgIFVwZGF0ZSB1c2VjYXNlIGNvbmZpZ3VyYXRpb25zIGFuZCBoYW5kbGVyIGNsYXNzZXMgKFRyYW5zYWN0aW9uYWJsZSAtJmd0OyBOb2RlKSBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS40IHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjQgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBhbmRyZWFzCiAgICAgICAgOgogICAgICAgIFsxLjRdIAogICAgICAgICAgICBMb2NrIG1ldGEgZGF0YSBzb3VyY2Ugbm9kZSB3aGVuIGxvY2tpbmcgc291cmNlIG5vZGUuIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjQgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuNCB1cGRhdGUKICAgICAgICBieQogICAgICAgIGFuZHJlYXMKICAgICAgICA6CiAgICAgICAgWzEuNF0gCiAgICAgICAgICAgIEZpeGVkIGNyZWF0ZVB1YmxpY2F0aW9uIEpYIHRlbXBsYXRlIFVSTC4gVGhpcyBmaXhlcyBidWcgIzM2MTQxLiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS40IHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjQgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBhbmRyZWFzCiAgICAgICAgOgogICAgICAgIFsxLjRdIAogICAgICAgICAgICBbUmVmYWN0b3JpbmddIEhpZGUgdHJhbnNhY3Rpb24gaGFuZGxpbmcgYmVsb3cgcmVwb3NpdG9yeSBsYXllciBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS40IHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjQgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBhbmRyZWFzCiAgICAgICAgOgogICAgICAgIFsxLjRdIAogICAgICAgICAgICBbUmVmYWN0b3JpbmddIEhpZGUgdHJhbnNhY3Rpb24gaGFuZGxpbmcgYmVsb3cgcmVwb3NpdG9yeSBsYXllciBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS40IHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjQgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBhbmRyZWFzCiAgICAgICAgOgogICAgICAgIFsxLjRdIAogICAgICAgICAgICBbUmVmYWN0b3JpbmddIEhpZGUgdHJhbnNhY3Rpb24gaGFuZGxpbmcgYmVsb3cgcmVwb3NpdG9yeSBsYXllciBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS40IHJlbW92ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjQgcmVtb3ZlCiAgICAgICAgYnkKICAgICAgICB0aG9yc3RlbgogICAgICAgIDoKICAgICAgICBbMS40XSAKICAgICAgICAgICAgUmVmYWN0b3JlZCB1c2VjYXNlcyBjb25maWcuIEJhY2tncm91bmQgaW5mb3JtYXRpb24gaHR0cDovL21hcmMudGhlYWltc2dyb3VwLmNvbS8/dD0xMTIzODAyMzA4MDAwMDQmYW1wO3I9MSZhbXA7dz0yIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjQgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuNCB1cGRhdGUKICAgICAgICBieQogICAgICAgIG1pY2hpCiAgICAgICAgOgogICAgICAgIFsxLjRdIAogICAgICAgICAgICBKQ1IgaGludCBhZGRlZCBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS40IHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjQgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBtaWNoaQogICAgICAgIDoKICAgICAgICBbMS40XSAKICAgICAgICAgICAgbGluayBhYm91dCBpbXBvcnRpbmcgZGF0YSBpbnRvIEpDUiByZXBvIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjQgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuNCB1cGRhdGUKICAgICAgICBieQogICAgICAgIG1pY2hpCiAgICAgICAgOgogICAgICAgIFsxLjRdIAogICAgICAgICAgICBjbGFzc3BhdGggcmUgbGlicyB3YXMgd3JvbmcgaWYgYWxzbyBwdWIgc3BlY2lmaWMgbGlicyBhcmUgYmUgaW5nIHVzZWQgZHVyaW5nICBidWlsZCBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgRG9jcyB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+RG9jcyB1cGRhdGUKICAgICAgICBieQogICAgICAgIGFuZHJlYXMKICAgICAgICA6CiAgICAgICAgW0RvY3NdIAogICAgICAgICAgICBhZGRlZCBtb3JlIHB1YmxldCBkb2NzIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjQgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuNCB1cGRhdGUKICAgICAgICBieQogICAgICAgIGFuZHJlYXMKICAgICAgICA6CiAgICAgICAgWzEuNF0gCiAgICAgICAgICAgIFttaW5vciBjaGFuZ2VdIHJlbW92ZWQgaW52YWxpZCB1c2VjYXNlIHZpZXcgYXR0cmlidXRlIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCBEb2NzIGFkZDwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj5Eb2NzIGFkZAogICAgICAgIGJ5CiAgICAgICAgYW5kcmVhcwogICAgICAgIDoKICAgICAgICBbRG9jc10gCiAgICAgICAgICAgIHN0YXJ0aW5nIHB1YmxldCBkb2NzIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCBEb2NzIHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj5Eb2NzIHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgYW5kcmVhcwogICAgICAgIDoKICAgICAgICBbRG9jc10gCiAgICAgICAgICAgIFVwZGF0ZWQgdXNlY2FzZSBmcmFtZXdvcmsgdGVtcGxhdGUgZGVmaW5pdGlvbiBkb2NzIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjQgcmVtb3ZlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuNCByZW1vdmUKICAgICAgICBieQogICAgICAgIGFuZHJlYXMKICAgICAgICA6CiAgICAgICAgWzEuNF0gCiAgICAgICAgICAgIFVzZSBwYXRoIGZyb20gY29udGV4dDovL2xlbnlhIGluIHVzZWNhc2UgdmlldyB0ZW1wbGF0ZSBVUklzLiBUaGlzIGFsbG93cyB0byBwcm92aWRlIHVzZWNhc2Ugdmlld3MgYnkgcHVibGV0cy4gVGhlIEpDUiBpbXBvcnQgdXNlY2FzZSB2aWV3IHdhcyBtb3ZlZCB0byB0aGUgSkNSIHB1YmxldC4gRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuNCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS40IHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgYW5kcmVhcwogICAgICAgIDoKICAgICAgICBbMS40XSAKICAgICAgICAgICAgSW50cm9kdWNlZCBSZXBvc2l0b3J5TWFuYWdlciBzZXJ2aWNlLiBUaGlzIHNlcnZpY2UgaXMgdGhlIHNpbmdsZSBlbnRyeSBwb2ludCBmb3IgcmVwb3NpdG9yeSBtYW5pcHVsYXRpb24sIGJlY2F1c2UgUmVwb3NpdG9yeVNvdXJjZSBoYW5kbGluZyBkb2Vzbid0IHRha2UgY2FyZSBvZiBtZXRhIGRhdGEgKGZvciBpbnN0YW5jZSBKQ1IgcHJvcGVydGllcykuIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjQgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuNCB1cGRhdGUKICAgICAgICBieQogICAgICAgIGFuZHJlYXMKICAgICAgICA6CiAgICAgICAgWzEuNF0gCiAgICAgICAgICAgIEludHJvZHVjZWQgUmVwb3NpdG9yeU1hbmFnZXIgc2VydmljZS4gVGhpcyBzZXJ2aWNlIGlzIHRoZSBzaW5nbGUgZW50cnkgcG9pbnQgZm9yIHJlcG9zaXRvcnkgbWFuaXB1bGF0aW9uLCBiZWNhdXNlIFJlcG9zaXRvcnlTb3VyY2UgaGFuZGxpbmcgZG9lc24ndCB0YWtlIGNhcmUgb2YgbWV0YSBkYXRhIChmb3IgaW5zdGFuY2UgSkNSIHByb3BlcnRpZXMpLiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS40IHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjQgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBhbmRyZWFzCiAgICAgICAgOgogICAgICAgIFsxLjRdIAogICAgICAgICAgICBJbnRyb2R1Y2VkIFJlcG9zaXRvcnlNYW5hZ2VyIHNlcnZpY2UuIFRoaXMgc2VydmljZSBpcyB0aGUgc2luZ2xlIGVudHJ5IHBvaW50IGZvciByZXBvc2l0b3J5IG1hbmlwdWxhdGlvbiwgYmVjYXVzZSBSZXBvc2l0b3J5U291cmNlIGhhbmRsaW5nIGRvZXNuJ3QgdGFrZSBjYXJlIG9mIG1ldGEgZGF0YSAoZm9yIGluc3RhbmNlIEpDUiBwcm9wZXJ0aWVzKS4gRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuNCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS40IHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgYW5kcmVhcwogICAgICAgIDoKICAgICAgICBbMS40XSAKICAgICAgICAgICAgQ2hlY2sgZm9yIGRvY3VtZW50IGV4aXN0ZW5jZSBiZWZvcmUgYWNjZXNzaW5nIHdvcmtmbG93IERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjQgcmVtb3ZlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuNCByZW1vdmUKICAgICAgICBieQogICAgICAgIGFuZHJlYXMKICAgICAgICA6CiAgICAgICAgWzEuNF0gCiAgICAgICAgICAgIENoYW5nZWQgSkNSIHJlcG9zaXRvcnkgbG9jYXRpb24gRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuMiB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS4yIHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgandrYWx0egogICAgICAgIDoKICAgICAgICBbMS4yXSAKICAgICAgICAgICAgcmVzdG9yZWQgbWlzdGFrZW5seSByZW1vdmVkIG1ldGhvZCAoaXQgaXMgdXNlZCBmcm9tIGpzKSBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS40IHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjQgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBjaGVzdG51dAogICAgICAgIDoKICAgICAgICBbMS40XSAKICAgICAgICAgICAgdXJsIGZpeCBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS4yIHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjIgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBjaGVzdG51dAogICAgICAgIDoKICAgICAgICBbMS4yXSAKICAgICAgICAgICAgdXJsIGZpeCBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS4yIHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjIgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBjaGVzdG51dAogICAgICAgIDoKICAgICAgICBbMS4yXSAKICAgICAgICAgICAgZW5jcnlwdCBjaWZzIHBhc3N3b3JkcyBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS40IHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjQgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBjaGVzdG51dAogICAgICAgIDoKICAgICAgICBbMS40XSAKICAgICAgICAgICAgZW5jcnlwdCBjaWZzIHBhc3N3b3JkcyBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS40IHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjQgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBhbmRyZWFzCiAgICAgICAgOgogICAgICAgIFsxLjRdIAogICAgICAgICAgICBbbWlub3IgY2hhbmdlXSByZW1vdmVkIGRlYWQgY29uZmlnIGl0ZW1zIGZyb20gSkNSIGNvbmZpZ3VyYXRpb24gRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuNCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS40IHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgYW5kcmVhcwogICAgICAgIDoKICAgICAgICBbMS40XSAKICAgICAgICAgICAgRml4ZWQgSkNSIHhwYXRjaCBmaWxlcyBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS40IGFkZDwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjQgYWRkCiAgICAgICAgYnkKICAgICAgICBhbmRyZWFzCiAgICAgICAgOgogICAgICAgIFsxLjRdIAogICAgICAgICAgICBhZGRlZCBKQ1IgY2xhc3NlcyB0byBwdWJsZXQgRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuNCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS40IHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgYW5kcmVhcwogICAgICAgIDoKICAgICAgICBbMS40XSAKICAgICAgICAgICAgW21pbm9yIGNoYW5nZV0gcmVtb3ZlZCBvZmZlbmRpbmcgJmd0OyBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS40IHJlbW92ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjQgcmVtb3ZlCiAgICAgICAgYnkKICAgICAgICBhbmRyZWFzCiAgICAgICAgOgogICAgICAgIFsxLjRdIAogICAgICAgICAgICBSZW1vdmVkIEpDUiBjbGFzc2VzIChtb3ZlZCB0byBwdWJsZXQpIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjQgYWRkPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuNCBhZGQKICAgICAgICBieQogICAgICAgIGFuZHJlYXMKICAgICAgICA6CiAgICAgICAgWzEuNF0gCiAgICAgICAgICAgIE1vdmVkIEpDUiByZXBvIHRvIHNlcGFyYXRlIHB1YmxldCBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS40IHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjQgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBhbmRyZWFzCiAgICAgICAgOgogICAgICAgIFsxLjRdIAogICAgICAgICAgICBBZGRlZCBYTUwgZGVjbGFyYXRpb24gdG8gbWV0YSBmaWxlLiBUaGlzIGZpeGVzIGJ1ZyAjMzYwNDAuIFRoYW5rcyB0byBKb3NpYXMgVGhvZW55LiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS40IHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjQgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBhbmRyZWFzCiAgICAgICAgOgogICAgICAgIFsxLjRdIAogICAgICAgICAgICBUaGUgcmVwb3NpdG9yeSBub2RlIGlzIG5vdyBNZXRhRGF0YU93bmVyLCB3aGljaCBhbGxvd3MgdG8gcHJvdmlkZSBjdXN0b20gTWV0YURhdGFNYW5hZ2VycyBhdCB0aGUgcmVwb3NpdG9yeSBsYXllci4gRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuNCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS40IHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgYW5kcmVhcwogICAgICAgIDoKICAgICAgICBbMS40XSAKICAgICAgICAgICAgdXBkYXRlZCBNZXRhRGF0YU1hbmFnZXIgcmV0dXJuIHR5cGVzIGZyb20gLi4uTWV0YURhdGEgdG8gTWV0YURhdGEgRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuNCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS40IHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgYW5kcmVhcwogICAgICAgIDoKICAgICAgICBbMS40XSAKICAgICAgICAgICAgSkNSOiBzdG9yZSBtZXRhIGRhdGEgYXMgSkNSIHByb3BlcnRpZXMuIFRoaXMgcmVxdWlyZWQgdG8gY2hhbmdlIHRoZSByZXR1cm4gdHlwZSBvZiBNZXRhRGF0YU1hbmFnZXIgbWV0aG9kcyB0byB0aGUgTWV0YURhdGEgaW50ZXJmYWNlLiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS40IHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjQgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBjaGVzdG51dAogICAgICAgIDoKICAgICAgICBbMS40XSAKICAgICAgICAgICAgY2hhbmdlZCAuLi8uLiB0byBmYWxsYmFjayBpbiBwYXRoIHRvIGNvcmUgeHNsIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjQgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuNCB1cGRhdGUKICAgICAgICBieQogICAgICAgIGNoZXN0bnV0CiAgICAgICAgOgogICAgICAgIFsxLjRdIAogICAgICAgICAgICBjbGVhbmVkIHVwIC4uLy4uIGluIHBhdGhzIGluIHNpdGVtYXBzLCByZXBsYWNlZCBtb3N0IHdpdGggZmFsbGJhY2s6Ly9sZW55YS8gRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuNCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS40IHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgYW5kcmVhcwogICAgICAgIDoKICAgICAgICBbMS40XSAKICAgICAgICAgICAgcGF0Y2hpbmcgSkNSIG5vZGUgdHlwZXMgaW4gY29jb29uLnhjb25mIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjQgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuNCB1cGRhdGUKICAgICAgICBieQogICAgICAgIGFuZHJlYXMKICAgICAgICA6CiAgICAgICAgWzEuNF0gCiAgICAgICAgICAgIE92ZXJ2aWV3IHVzZWNhc2U6IGFkZGVkIGxpbmtzIHRvIGRvY3VtZW50cyBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS40IHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjQgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBhbmRyZWFzCiAgICAgICAgOgogICAgICAgIFsxLjRdIAogICAgICAgICAgICBbbWlub3IgY2hhbmdlXSByZW1vdmVkIHVudXNlZCBpbXBvcnQgRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuNCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS40IHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgYW5kcmVhcwogICAgICAgIDoKICAgICAgICBbMS40XSAKICAgICAgICAgICAgQWRkZWQgTGVueWEtc3BlY2lmaWMgSkNSIHJlcG9zaXRvcnkgaW1wbGVtZW50YXRpb24gd2hpY2ggYWRkcyB0aGUgSkNSIHNlc3Npb24gdG8gdGhlIENvY29vbiBzZXNzaW9uLiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS40IHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjQgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBhbmRyZWFzCiAgICAgICAgOgogICAgICAgIFsxLjRdIAogICAgICAgICAgICBBZGRlZCBzaXRlIG92ZXJ2aWV3IHVzZWNhc2UgRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuMiB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS4yIHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgandrYWx0egogICAgICAgIDoKICAgICAgICBbMS4yXSAKICAgICAgICAgICAgaW5pdGlhbGl6ZSgpIHNob3VsZCBub3QgdGhyb3cgZXhjZXB0aW9uOyByZW1vdmVkIHVudXNlZCBtZXRob2Q7IGFkZGVkIGxvZ2dpbmcgc3RhdGVtZW50cyBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS40IHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjQgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBtaWNoaQogICAgICAgIDoKICAgICAgICBbMS40XSAKICAgICAgICAgICAgeG1sLXN0eWxlc2hlZXQgdHlwZSBoYXJkY29kaW5nIHJlbW92ZWQgRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuNCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS40IHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgbWljaGkKICAgICAgICA6CiAgICAgICAgWzEuNF0gCiAgICAgICAgICAgIGRlYnVnIHN0YXRlbWVudCBhZGRlZCBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS40IHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjQgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBtaWNoaQogICAgICAgIDoKICAgICAgICBbMS40XSAKICAgICAgICAgICAgRG9jdW1lbnRXb3JrZmxvd2FibGUuZ2V0V29ya2Zsb3dTY2hlbWFVUkkoKSByZXR1cm5zIG51bGwgd2hlbiB3b3JrZmxvdyBzY2hlbWEgaXMgbnVsbCAobm8gd2Ygc2NoZW1hIGFzc2lnbmVkIHRvIHJlc291cmNlIHR5cGUpIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjQgYWRkPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuNCBhZGQKICAgICAgICBieQogICAgICAgIGFuZHJlYXMKICAgICAgICA6CiAgICAgICAgWzEuNF0gCiAgICAgICAgICAgIExvY2sgYXNzZXRzIHdoZW4gZG9jdW1lbnRzIGFyZSBtYW5pcHVsYXRlZC4gRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuMiB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS4yIHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgYW50b25pbwogICAgICAgIDoKICAgICAgICBbMS4yXSAKICAgICAgICAgICAgQWRkIGZhbGxiYWNrLiBUaGFua3MgdG8gUGF1bCBGcmllZG1hbiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS40IHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjQgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBhbmRyZWFzCiAgICAgICAgOgogICAgICAgIFsxLjRdIAogICAgICAgICAgICBDaGFuZ2VOb2RlSUQgdXNlY2FzZTogZml4ZWQgTlBFIGZvciB0b3AtbGV2ZWwgbm9kZXMsIGRvbid0IGNhbGwgc3VwZXIuZ2V0T2JqZWN0c1RvTG9jaygpIHRvIGF2b2lkIHN0YWNrIG92ZXJmbG93LiBQYXRjaCBieSBKb3NpYXMgVGhvZW55LiBUaGlzIHJlc29sdmVzIGJ1ZyAjMzU4NzMuIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjQgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuNCB1cGRhdGUKICAgICAgICBieQogICAgICAgIGFuZHJlYXMKICAgICAgICA6CiAgICAgICAgWzEuNF0gCiAgICAgICAgICAgIERvbid0IGNvcHkgcmVzb3VyZXMgdHdpY2UgaW4gRG9jdW1lbnRNYW5hZ2VySW1wbC5tb3ZlKCksIHBhdGNoIGJ5IEpvc2lhcyBUaG9lbnkuIFRoaXMgcmVzb2x2ZXMgYnVnICMzNTg3Ni4gRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuNCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS40IHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgYW5kcmVhcwogICAgICAgIDoKICAgICAgICBbMS40XSAKICAgICAgICAgICAgW21pbm9yIGNoYW5nZV0gZml4ZWQgZm9ybWF0dGluZyBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS40IHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjQgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBhbmRyZWFzCiAgICAgICAgOgogICAgICAgIFsxLjRdIAogICAgICAgICAgICBJbml0aWFsaXplIHNvdXJjZSByZXNvbHZlciBwcm9wZXJseSAoZml4ZXMgYnVnICMzNTg3NCksIGFwcGxpZWQgcGF0Y2ggYnkgSm9zaWFzIFRob2VueSBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgRG9jcyB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+RG9jcyB1cGRhdGUKICAgICAgICBieQogICAgICAgIGFudG9uaW8KICAgICAgICA6CiAgICAgICAgW0RvY3NdIAogICAgICAgICAgICBGaXggdHlwb3MgRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuNCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS40IHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgbWljaGkKICAgICAgICA6CiAgICAgICAgWzEuNF0gCiAgICAgICAgICAgIFRyYXZlcnNhYmxlR2VuZXJhdG9yIGluc3RlYWQgb2YgRGlyZWN0b3J5R2VuZXJhdG9yIHVzZWQgRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuNCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS40IHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgbWljaGkKICAgICAgICA6CiAgICAgICAgWzEuNF0gCiAgICAgICAgICAgIGdldENoaWxkcmVuIGFuZCBnZXROYW1lIGltcGxlbWVudGVkIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjQgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuNCB1cGRhdGUKICAgICAgICBieQogICAgICAgIG1pY2hpCiAgICAgICAgOgogICAgICAgIFsxLjRdIAogICAgICAgICAgICBnZXRDaGlsZHJlbiBpbXBsZW1lbnRlZCBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS40IHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjQgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBtaWNoaQogICAgICAgIDoKICAgICAgICBbMS40XSAKICAgICAgICAgICAgY2hlY2sgYmxvY2tzIGltcGxlbWVudGVkIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjQgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuNCB1cGRhdGUKICAgICAgICBieQogICAgICAgIG1pY2hpCiAgICAgICAgOgogICAgICAgIFsxLjRdIAogICAgICAgICAgICBtaW5vciBjaGFuZ2VzIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjQgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuNCB1cGRhdGUKICAgICAgICBieQogICAgICAgIG1pY2hpCiAgICAgICAgOgogICAgICAgIFsxLjRdIAogICAgICAgICAgICByZXBvc2l0b3J5IGJsb2NrIGRpc2FibGVkIGJlY2F1c2UgVHJhdmVyc2FibGVzIGhhdmUgYmVlbiBtb3ZlZCBpbnRvIENvY29vbiBjb3JlLiBBbHNvIGEgdmVyc2lvbiBudW1iZXIgYWRkZWQgZm9yIG5vdGlmeWluZyBpZiBwcm9wZXJ0aWVzIG91dCBvZiBzeW5jIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjQgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuNCB1cGRhdGUKICAgICAgICBieQogICAgICAgIGFuZHJlYXMKICAgICAgICA6CiAgICAgICAgWzEuNF0gCiAgICAgICAgICAgIFVzZSBsZW55YTovLyBwcm90b2NvbCBmb3IgY29udGVudCBhY2Nlc3MgRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuNCByZW1vdmU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS40IHJlbW92ZQogICAgICAgIGJ5CiAgICAgICAgYW5kcmVhcwogICAgICAgIDoKICAgICAgICBbMS40XSAKICAgICAgICAgICAgcmVtb3ZlZCBvYnNvbGV0ZSBob21lcGFnZSBwbHVnaW4gKG1vdmVkIG9uZSBmb2xkZXIgdXApIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjQgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuNCB1cGRhdGUKICAgICAgICBieQogICAgICAgIGFuZHJlYXMKICAgICAgICA6CiAgICAgICAgWzEuNF0gCiAgICAgICAgICAgIGRvbid0IHVzZSBsZW55YTovLyBwcm90b2NvbCB0byBvYnRhaW4gd29ya2Zsb3cgc2NoZW1hIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjQgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuNCB1cGRhdGUKICAgICAgICBieQogICAgICAgIGFuZHJlYXMKICAgICAgICA6CiAgICAgICAgWzEuNF0gCiAgICAgICAgICAgIFRyZWVTaXRlTWFuYWdlciByZXR1cm5zIGFsbCBsYW5ndWFnZSB2ZXJzaW9ucyBpbiBnZXREb2N1bWVudHMoYXJlYSkgRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuNCByZW1vdmU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS40IHJlbW92ZQogICAgICAgIGJ5CiAgICAgICAgZ3JlZ29yCiAgICAgICAgOgogICAgICAgIFsxLjRdIAogICAgICAgICAgICBSZW1vdmVkIGZpbGVzIHRoYXQgYXJlIG5vIGxvbmdlciBuZWVkZWQuIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjQgYWRkPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuNCBhZGQKICAgICAgICBieQogICAgICAgIGFuZHJlYXMKICAgICAgICA6CiAgICAgICAgWzEuNF0gCiAgICAgICAgICAgIEFkZGVkIEpDUk5vZGVGYWN0b3J5IGFuZCB1c2VjYXNlIHRvIGltcG9ydCBwdWJzIGludG8gSkNSIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjQgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuNCB1cGRhdGUKICAgICAgICBieQogICAgICAgIG1pY2hpCiAgICAgICAgOgogICAgICAgIFsxLjRdIAogICAgICAgICAgICBsZW55YSBwcm90b2NvbCB1c2VkIGluc3RlYWQgb2YgRlMgY2FsbHMgRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuNCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS40IHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgbWljaGkKICAgICAgICA6CiAgICAgICAgWzEuNF0gCiAgICAgICAgICAgIFRyYXZlcnNhYmxlTW9kaWZpYWJsZSBzdGFydGVkIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjQgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuNCB1cGRhdGUKICAgICAgICBieQogICAgICAgIG1pY2hpCiAgICAgICAgOgogICAgICAgIFsxLjRdIAogICAgICAgICAgICBwYXJ0IG9mIHRyYXZlcnNhYmxlIGludGVyZmFjZXMgaW1wbGVtZW50ZWQgRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuNCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS40IHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgbWljaGkKICAgICAgICA6CiAgICAgICAgWzEuNF0gCiAgICAgICAgICAgIHRyYXZlcnNhYmxlIGludGVyZmFjZXMgYWRkZWQgRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuNCBhZGQ8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS40IGFkZAogICAgICAgIGJ5CiAgICAgICAgYW5kcmVhcwogICAgICAgIDoKICAgICAgICBbMS40XSAKICAgICAgICAgICAgQWRkZWQgbWV0YSBkYXRhIGZpbGUgZm9yIGxpdmUgcGFnZSBpbiBkZWZhdWx0IHB1YiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS40IHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjQgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBjaGVzdG51dAogICAgICAgIDoKICAgICAgICBbMS40XSAKICAgICAgICAgICAgdGhpcyByZXNvbHZlcyB0aGUgcHJvYmxlbSBvZiBnZXR0aW5nIGEgMjAwIHN1Y2Nlc3MgY29kZSB3aGVuIHRyeWluZyB0byBQVVQgaW52YWxpZCB4bWwgKG5vdCB3ZWxsIGZvcm1lZCksIHNob3VsZCBub3cgZ2V0IGEgNDE1IFVuc3VwcG9ydGVkIE1lZGlhIFR5cGUgRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuNCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS40IHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgbWljaGkKICAgICAgICA6CiAgICAgICAgWzEuNF0gCiAgICAgICAgICAgIFRvbWNhdCA0IHdvcmsgZGlyIGFkZGVkIGZvciBwZW9wbGUgd2hvIGFyZSBzdGlsbCB1c2luZyBUb21jYXQgNCBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS40IHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjQgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBtaWNoaQogICAgICAgIDoKICAgICAgICBbMS40XSAKICAgICAgICAgICAgQVNGIGxpY2Vuc2UgYWRkZWQgYW5kIHNvbWUgZGVidWcgc3RhdGVtZW50cyB0byBjaGVjayB1c2FnZSBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS40IGFkZDwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjQgYWRkCiAgICAgICAgYnkKICAgICAgICBhbmRyZWFzCiAgICAgICAgOgogICAgICAgIFsxLjRdIAogICAgICAgICAgICBBZGRlZCBOb2RlRmFjdG9yeSBzZXJ2aWNlLiBUaGlzIGFsbG93cyB0byBjb25maWd1cmUgdGhlIG5vZGUgZmFjdG9yeSBpbXBsZW1lbnRhdGlvbi4gRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuNCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS40IHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgZ3JlZ29yCiAgICAgICAgOgogICAgICAgIFsxLjRdIAogICAgICAgICAgICBSZW1vdmVkIHVudXNlZCBtZW51IGVudHJpZXMgRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuNCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS40IHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgY2hlc3RudXQKICAgICAgICA6CiAgICAgICAgWzEuNF0gCiAgICAgICAgICAgIHNldCB3ZWJEQVYgREVMRVRFIG1ldGhvZCB0byB1c2UgRGVsZXRlIHVzZWNhc2UgRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuNCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS40IHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgYW5kcmVhcwogICAgICAgIDoKICAgICAgICBbMS40XSAKICAgICAgICAgICAgQWRkZWQgQ1NTIGZvciBhY3RpdmUgdHJhc2ggYW5kIGFyY2hpdmUgdGFicyBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS40IHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjQgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBhbmRyZWFzCiAgICAgICAgOgogICAgICAgIFsxLjRdIAogICAgICAgICAgICBSZW1vdmVkIG9ic29sZXRlIERlbGV0ZSB1c2VjYXNlIGZyb20gZGVmYXVsdCBwdWIgRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuNCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS40IHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgYW5kcmVhcwogICAgICAgIDoKICAgICAgICBbMS40XSAKICAgICAgICAgICAgRGVsZXRlIHBsYWNlaG9sZGVyIGRvY3MgYWZ0ZXIgcmVzdG9yaW5nIGEgZG9jdW1lbnQgRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuNCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS40IHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgYW5kcmVhcwogICAgICAgIDoKICAgICAgICBbMS40XSAKICAgICAgICAgICAgRml4ZWQgZGVsZXRlIGFuZCByZXN0b3JlIHVzZWNhc2VzIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjQgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuNCB1cGRhdGUKICAgICAgICBieQogICAgICAgIGFuZHJlYXMKICAgICAgICA6CiAgICAgICAgWzEuNF0gCiAgICAgICAgICAgIEZpeGVkIHNlYXJjaCByZXNvdXJjZSB0eXBlIHNhbXBsZSBVUkkgRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuNCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS40IHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgYW5kcmVhcwogICAgICAgIDoKICAgICAgICBbMS40XSAKICAgICAgICAgICAgW21pbm9yIGNoYW5nZV0gbW92ZWQgZnJvbSBnZXRVbml0T2ZXb3JrKCkuZ2V0SWRlbnRpdHlNYXAoKSB0byBnZXREb2N1bWVudElkZW50aXR5TWFwKCkgRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuNCBhZGQ8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS40IGFkZAogICAgICAgIGJ5CiAgICAgICAgZWRpdGgKICAgICAgICA6CiAgICAgICAgWzEuNF0gCiAgICAgICAgICAgIFRhbmtzIHRvIEpvc2lhcyBUaG9lbnk6IHJlcGxhY2Ugc2l0ZXRyZWUgc2NyaXB0IHdpdGggb25lIGJhc2VkIG9uIFhNTEhUVFAsIGJ1ZzMyODQwIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjQgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuNCB1cGRhdGUKICAgICAgICBieQogICAgICAgIGVkaXRoCiAgICAgICAgOgogICAgICAgIFsxLjRdIAogICAgICAgICAgICBUYW5rcyB0byBKb3NpYXMgVGhvZW55OiByZXBsYWNlIHNpdGV0cmVlIHNjcmlwdCB3aXRoIG9uZSBiYXNlZCBvbiBYTUxIVFRQLCBidWczMjg0MCBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS40IGFkZDwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjQgYWRkCiAgICAgICAgYnkKICAgICAgICBtaWNoaQogICAgICAgIDoKICAgICAgICBbMS40XSAKICAgICAgICAgICAgcmVwb3NpdG9yeSBjb25maWdzIGFjY29yZGluZyB0byBkZWZhdWx0IGNvY29vbiBzZXR0aW5nIGFkZGVkIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjQgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuNCB1cGRhdGUKICAgICAgICBieQogICAgICAgIGNoZXN0bnV0CiAgICAgICAgOgogICAgICAgIFsxLjRdIAogICAgICAgICAgICBhZGRlZCBjaGVjayB0byBzZWUgaWYgcmVzb3VyY2UuZ2V0TWltZVR5cGUoKSByZXR1cm5zIG51bGwsIHJlc29sdmVzIEJ1ZyAzNTc1OSBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS40IGFkZDwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjQgYWRkCiAgICAgICAgYnkKICAgICAgICBtaWNoaQogICAgICAgIDoKICAgICAgICBbMS40XSAKICAgICAgICAgICAgSkNSIHNhbXBsZSBjb25maWcgYWRkZWQgRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuNCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS40IHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgbWljaGkKICAgICAgICA6CiAgICAgICAgWzEuNF0gCiAgICAgICAgICAgIGJsb2NrcyBmb3IgdHJhdmVyc2FibGUgZ2VuZXJhdG9yIGFuZCBKQ1IgZW5hYmxlZCBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS40IHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjQgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBqYW5uCiAgICAgICAgOgogICAgICAgIFsxLjRdIAogICAgICAgICAgICB0YXJnZXRVcmwgc2hvdWxkIG5vdCBjb250YWluIHRoZSBjb250ZXh0IHBhdGggYmVjYXVzZSBpdCBpcyBhZGRlZCBpbiB0aGUKdXNlY2FzZXMuanMgamF2YXNjcmlwdC4KIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjQgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuNCB1cGRhdGUKICAgICAgICBieQogICAgICAgIGFuZHJlYXMKICAgICAgICA6CiAgICAgICAgWzEuNF0gCiAgICAgICAgICAgIEFkZGluZyBwdWJsaWNhdGlvbiBJRCB0byBsb2dpbiBzY3JlZW4gRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuNCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS40IHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgY2hlc3RudXQKICAgICAgICA6CiAgICAgICAgWzEuNF0gCiAgICAgICAgICAgIFByb3Blcmx5IHJlbGVhc2VzIFNlcnZpY2VTZWxlY3RvciwgcGF0Y2ggcHJvdmlkZWQgYnkgQW5kcmVhcyBIYXJ0bWFubi4gIFRoaXMgcmVzbG92ZXMgQnVnIDM1NzM0IERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjQgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuNCB1cGRhdGUKICAgICAgICBieQogICAgICAgIGFuZHJlYXMKICAgICAgICA6CiAgICAgICAgWzEuNF0gCiAgICAgICAgICAgIFJlZmFjdG9yaW5nOiBEb2N1bWVudElkZW50aXR5TWFwIGlzIG5vdyBhIGZhY3RvcnkuIFRoaXMgYXZvaWRzIGV4dGVuZGluZyBJZGVudGl0eU1hcEltcGwsIHRodXMgdGhlIGNyZWF0aW9uIGFuZCBtYW5hZ2VtZW50IG9mIGlkZW50aXRmaWFibGVzIGlzIG1vcmUgZ2VuZXJpYyBhbmQgbm90IGZvY3VzZWQgb24gZG9jdW1lbnRzLiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS40IHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjQgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBhbmRyZWFzCiAgICAgICAgOgogICAgICAgIFsxLjRdIAogICAgICAgICAgICBbbWlub3IgY2hhbmdlXSByZW1vdmVkIHVudXNlZCBjb2RlIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjQgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuNCB1cGRhdGUKICAgICAgICBieQogICAgICAgIG1pY2hpCiAgICAgICAgOgogICAgICAgIFsxLjRdIAogICAgICAgICAgICBzaWJsaW5nIGFkZGVkIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjQgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuNCB1cGRhdGUKICAgICAgICBieQogICAgICAgIGFuZHJlYXMKICAgICAgICA6CiAgICAgICAgWzEuNF0gCiAgICAgICAgICAgIFttaW5vciBjaGFuZ2VdIGNvZGUgZm9ybWF0dGluZyBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS40IHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjQgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBhbmRyZWFzCiAgICAgICAgOgogICAgICAgIFsxLjRdIAogICAgICAgICAgICBbbWlub3IgY2hhbmdlXSByZW1vdmVkIHVudXNlZCB2YXJpYWJsZSwgYWRkZWQgamF2YWRvYyB0YWcgRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuNCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS40IHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgbWljaGkKICAgICAgICA6CiAgICAgICAgWzEuNF0gCiAgICAgICAgICAgIEpDUiBCbG9jayBhZGRlZCBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS40IHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjQgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBqYW5uCiAgICAgICAgOgogICAgICAgIFsxLjRdIAogICAgICAgICAgICByZW5hbWUgdGFzayBpbnN0YWxsIHRvIGluc3RhbGwtdG9tY2F0ICh0aGF0J3Mgd2hhdCBpdCBkb2VzKSBhbmQgZXhlY3V0ZQp0YXNrIGlmIHNlcnZsZXQgZW5naW5lIGlzIHRvbWNhdC4gYnVpbGQuc2ggd2lsbCBub3cgY29ycmVjdGx5IGJ1aWxkIHRoZSB0b21jYXQKd2ViYXBwLgoKIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjIgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuMiB1cGRhdGUKICAgICAgICBieQogICAgICAgIGVkaXRoCiAgICAgICAgOgogICAgICAgIFsxLjJdIAogICAgICAgICAgICBGaXggdGhlIHZhcmlhYmxlIGZvciB0aGUgY29udGV4dC1wcmVmaXggRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuMiB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS4yIHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgZWRpdGgKICAgICAgICA6CiAgICAgICAgWzEuMl0gCiAgICAgICAgICAgIEZpeCB0aGUgJ3BsZWFzZSB3YWl0IHNjcmVlbicgZm9yIHRoZSBpbnRlcm5ldCBleHBsb3JlcjogcmVsb2FkIHRoZSBpbWFnZSBhZnRlciB0aGUganMgaXMgY2FsbGVkLCBzZXQgdGhlIGZ1bmN0aW9uIGluIHRoZSB3YWl0U2NyZWVuLnhzbCBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS40IHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjQgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBjaGVzdG51dAogICAgICAgIDoKICAgICAgICBbMS40XSAKICAgICAgICAgICAgYWRkZWQgYW4gZW50cnkgZm9yIEdvbGlhdGggYXMgYSB3ZWJkYXYgY2xpZW50IGZvciB0aGUgY2xpZW50IHNlbGVjdG9yIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjQgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuNCB1cGRhdGUKICAgICAgICBieQogICAgICAgIGNoZXN0bnV0CiAgICAgICAgOgogICAgICAgIFsxLjRdIAogICAgICAgICAgICBzaG91bGRuJ3QgdXNlIGZhbGxiYWNrIHByb3RvY29sIHdoZW4gbG9va2luZyBhdCBkb2N1bWVudCBjb250ZW50IERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjQgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuNCB1cGRhdGUKICAgICAgICBieQogICAgICAgIGNoZXN0bnV0CiAgICAgICAgOgogICAgICAgIFsxLjRdIAogICAgICAgICAgICBmaXhlZCBsYXN0LW1vZGlmaWVkIGRhdGUgZm9ybWF0IGluIFBST1BGSU5EIHJlc3BvbnNlcyBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgRG9jcyB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+RG9jcyB1cGRhdGUKICAgICAgICBieQogICAgICAgIGFuZHJlYXMKICAgICAgICA6CiAgICAgICAgW0RvY3NdIAogICAgICAgICAgICBVcGRhdGVkIHJlc291cmNlIHR5cGUgZG9jdW1lbnRhdGlvbiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS40IHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjQgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBhbmRyZWFzCiAgICAgICAgOgogICAgICAgIFsxLjRdIAogICAgICAgICAgICBCbG9nIHB1YjogSW1wbGVtZW50ZWQgcHVibGlzaGluZyB1c2luZyB0aGUgdXNlY2FzZSBmcmFtZXdvcmsgRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuNCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS40IHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgYW5kcmVhcwogICAgICAgIDoKICAgICAgICBbMS40XSAKICAgICAgICAgICAgQWRkZWQgd29ya2Zsb3cgaGFuZGxpbmcgdG8gZm9ybXMgZWRpdG9yLCBpbXByb3ZlZCB3ZiBoYW5kbGluZyBpbiBvbmVmb3JtIGVkaXRvciBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS40IHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjQgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBhbmRyZWFzCiAgICAgICAgOgogICAgICAgIFsxLjRdIAogICAgICAgICAgICBBbGxvdyBCb29sZWFuIG9iamVjdHMgaW4gQWJzdHJhY3RVc2VjYXNlLmdldEJvb2xlYW5QYXJhbWV0ZXIoKSBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS4yIHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjIgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICB0aG9yc3RlbgogICAgICAgIDoKICAgICAgICBbMS4yXSAKICAgICAgICAgICAgZml4ZWQgdGhlIGNhbGxpbmcgb2YgZmFsbGJhY2sgcGlwZXMgYnkgdXNpbmcge2ZhbGxiYWNrOi8vfS4gVGhhdCBmaXhlcyB0aGUgYnVnIEkgcmVwb3J0ZWQgdG9kYXkgYWJvdXQgdGhlIGJsb2cgcHViIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjQgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuNCB1cGRhdGUKICAgICAgICBieQogICAgICAgIGFuZHJlYXMKICAgICAgICA6CiAgICAgICAgWzEuNF0gCiAgICAgICAgICAgIFttaW5vciBjaGFuZ2VdIGphdmFkb2MgZml4ZXMgRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuNCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS40IHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgYW5kcmVhcwogICAgICAgIDoKICAgICAgICBbMS40XSAKICAgICAgICAgICAgW21pbm9yIGNoYW5nZV0gcmVtb3ZlZCB1bm5lY2Vzc2FyeSBhc3RlcmlzayBmcm9tIGphdmFkb2MgY29tbWVudCBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS40IHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjQgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBhbmRyZWFzCiAgICAgICAgOgogICAgICAgIFsxLjRdIAogICAgICAgICAgICBObyBtb3JlIHB1YmxldHMgaW4gYmxvZyBwdWJsaWNhdGlvbiAocmVwbGFjZWQgYnkgc2ltcGxlIHJlc291cmNlIHR5cGUgZGVjbGFyYXRpb24pIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjQgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuNCB1cGRhdGUKICAgICAgICBieQogICAgICAgIGFuZHJlYXMKICAgICAgICA6CiAgICAgICAgWzEuNF0gCiAgICAgICAgICAgIEFwcGx5ICZsdDt0YWJzJmd0OyB3aGVuIG1lcmdpbmcgbWVudXMsIG90aGVyd2lzZSBoaWRkZW4gdGFicyBhcmUgZGlzcGxheWVkLiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS40IHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjQgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBhbmRyZWFzCiAgICAgICAgOgogICAgICAgIFsxLjRdIAogICAgICAgICAgICBVc2UgY29tcGxldGUgVVJJcyBhcyByZXNvdXJjZSB0eXBlIHNhbXBsZSBsb2NhdGlvbnMuIFRoaXMgc2VwYXJhdGVzIHJlc291cmNlIHR5cGVzIHRvdGFsbHkgZnJvbSBwdWJsZXRzIChTb0MpIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjQgYWRkPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuNCBhZGQKICAgICAgICBieQogICAgICAgIGFuZHJlYXMKICAgICAgICA6CiAgICAgICAgWzEuNF0gCiAgICAgICAgICAgIFVzZSBjb21wbGV0ZSBVUklzIGFzIHJlc291cmNlIHR5cGUgc2FtcGxlIGxvY2F0aW9ucy4gVGhpcyBzZXBhcmF0ZXMgcmVzb3VyY2UgdHlwZXMgdG90YWxseSBmcm9tIHB1YmxldHMgKFNvQykgRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuNCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS40IHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgYW5kcmVhcwogICAgICAgIDoKICAgICAgICBbMS40XSAKICAgICAgICAgICAgVXNlIGNvbXBsZXRlIFVSSXMgYXMgcmVzb3VyY2UgdHlwZSBzYW1wbGUgbG9jYXRpb25zLiBUaGlzIHNlcGFyYXRlcyByZXNvdXJjZSB0eXBlcyB0b3RhbGx5IGZyb20gcHVibGV0cyAoU29DKSBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS40IHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjQgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBhbmRyZWFzCiAgICAgICAgOgogICAgICAgIFsxLjRdIAogICAgICAgICAgICBEZWZhdWx0RG9jdW1lbnQgdGhyb3dzIGV4Y2VwdGlvbiB3aGVuIHJlc291cmNlIHR5cGUgaXMgbm90IGRlZmluZWQgRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuNCByZW1vdmU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS40IHJlbW92ZQogICAgICAgIGJ5CiAgICAgICAgYW5kcmVhcwogICAgICAgIDoKICAgICAgICBbMS40XSAKICAgICAgICAgICAgW21pbm9yIGNoYW5nZV0gcmVtb3ZlZCBlbXB0eSBkaXJlY3RvcnkgRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuNCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS40IHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgYW5kcmVhcwogICAgICAgIDoKICAgICAgICBbMS40XSAKICAgICAgICAgICAgRml4ZWQgYmxvZyBlbnRyeSByZXNvdXJjZSB0eXBlOiBzZXQgY29ycmVjdCBjcmVhdG9yIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjQgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuNCB1cGRhdGUKICAgICAgICBieQogICAgICAgIGFuZHJlYXMKICAgICAgICA6CiAgICAgICAgWzEuNF0gCiAgICAgICAgICAgIFttaW5vciBjaGFuZ2VdIG5vIGV4Y2VwdGlvbnMgZm9yIGxvZ2dpbmcgRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuMiB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS4yIHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgbWljaGkKICAgICAgICA6CiAgICAgICAgWzEuMl0gCiAgICAgICAgICAgIHR5cG9zIGZpeGVkIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjQgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuNCB1cGRhdGUKICAgICAgICBieQogICAgICAgIG1pY2hpCiAgICAgICAgOgogICAgICAgIFsxLjRdIAogICAgICAgICAgICByZW5hbWVkIHN1Y2ggdGhhdCBwcm9qZWN0IGFuZCB0YXJnZXQgbmFtZSBkb24ndCBjb25mbGljdCBhbnltb3JlIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjIgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuMiB1cGRhdGUKICAgICAgICBieQogICAgICAgIGFudG9uaW8KICAgICAgICA6CiAgICAgICAgWzEuMl0gCiAgICAgICAgICAgIEFkZCBuZXcga2V5cyArIHNtYWxsIGNoYW5nZXMgRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuNCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS40IHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgYW50b25pbwogICAgICAgIDoKICAgICAgICBbMS40XSAKICAgICAgICAgICAgVHJhbnNsYXRlZCBuZXcga2V5cyArIHNtYWxsIGNoYW5nZXMuIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjIgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuMiB1cGRhdGUKICAgICAgICBieQogICAgICAgIGFudG9uaW8KICAgICAgICA6CiAgICAgICAgWzEuMl0gCiAgICAgICAgICAgIFVwZGF0ZWQgY29jb29uIGxvY2FsIGJ1aWxkIGZpbGVzIHRvIFNWTiByZXZpc2lvbiAyMDIyOTcuIEl0IHdvcmtzIHdpdGggY29jb29uIDIuMS43LiBDb2Nvb24gUXVlcnliZWFuIGJsb2NrIGlzIG5vIGxvbmdlciBpbmNsdWRlZCBpbiBsZW55YSBidWlsZC4gRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuMiB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS4yIHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgYW5kcmVhcwogICAgICAgIDoKICAgICAgICBbMS4yXSAKICAgICAgICAgICAgQXBwbHlpbmcgcGF0Y2ggZm9yIEJ1ZyAjMzU2NjA6IFVuaXF1ZURvY3VtZW50SWQgc2hvdWxkIG5vdCB0cnkgdG8gaW5jcmVhc2UgYSBkYXNoLXNlcGFyYXRlZCBjaGFyYWN0ZXIgdmFsdWUgKGZvby1hKSwgb25seSBudW1iZXIgdmFsdWVzIChmb28tMSksIGNyZWRpdHMgdG8gU2ltb24gTGl0d2FuIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjQgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuNCB1cGRhdGUKICAgICAgICBieQogICAgICAgIGNoZXN0bnV0CiAgICAgICAgOgogICAgICAgIFsxLjRdIAogICAgICAgICAgICB3b3JrZmxvdyBzdGF0ZSBuZWVkcyB0byBiZSBzZXQgdG8gYXV0aG9yaW5nIG9uIGVkaXQgc28gdGhhdCBvbmUgY2FuIHB1Ymxpc2ggRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuNCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS40IHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgY2hlc3RudXQKICAgICAgICA6CiAgICAgICAgWzEuNF0gCiAgICAgICAgICAgIE5lZWQgdG8gbG9jayB0aGUgbGl2ZSBkb2MgZXZlbiBpZiBpdCBkb2Vzbid0IHlldCBleGlzdCwgU2l0ZVV0aWwuZ2V0U3ViU2l0ZSB3YXNuJ3QgcmV0dXJuaW5nIHRoZSBkb2Mgd2hlbiBpdCBkaWRuJ3QgZXhpc3QgRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuMiB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS4yIHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgZWRpdGgKICAgICAgICA6CiAgICAgICAgWzEuMl0gCiAgICAgICAgICAgIFBsZWFzZSBXYWl0IE1lc3NhZ2UgY2FuIGJlIGJ1aWxkIGluIG1lbnUgb24gdGhlIGluZm8gc2l0ZSBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS4yIHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjIgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBlZGl0aAogICAgICAgIDoKICAgICAgICBbMS4yXSAKICAgICAgICAgICAgUGxlYXNlIFdhaXQgTWVzc2FnZSBjYW4gYmUgYnVpbGQgaW4gbWVudSBvbiB0aGUgaW5mbyBzaXRlIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjIgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuMiB1cGRhdGUKICAgICAgICBieQogICAgICAgIGVkaXRoCiAgICAgICAgOgogICAgICAgIFsxLjJdIAogICAgICAgICAgICBSZW1vdmUgdGhlIFRpbWVvdXQuIEl0IGlzbid0IG5lY2Vzc2FyeSBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS4yIHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjIgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBtaWNoaQogICAgICAgIDoKICAgICAgICBbMS4yXSAKICAgICAgICAgICAgdmVyc2lvbiB1cGRhdGVkIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjIgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuMiB1cGRhdGUKICAgICAgICBieQogICAgICAgIGVkaXRoCiAgICAgICAgOgogICAgICAgIFsxLjJdIAogICAgICAgICAgICBQbGVhc2UgV2FpdCBNZXNzYWdlIGJ1aWxkIHdoaWxlIHB1Ymxpc2hpbmcsIHN1Ym1pdGluZywgZGVhY3RpdmF0aW5nLCBjb3B5aW5nLCBjdXRpbmcsIHBhc3RpbmcsIGFyY2hpdmluZywgZGVsZXRlaW4sIHJlc3RvcmluZyBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS4yIHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjIgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBlZGl0aAogICAgICAgIDoKICAgICAgICBbMS4yXSAKICAgICAgICAgICAgUGxlYXNlIFdhaXQgTWVzc2FnZSBidWlsZCB3aGlsZSBwdWJsaXNoaW5nLCBzdWJtaXRpbmcsIGRlYWN0aXZhdGluZywgY29weWluZywgY3V0aW5nLCBwYXN0aW5nLCBhcmNoaXZpbmcsIGRlbGV0ZWluLCByZXN0b3JpbmcgRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuMiB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS4yIHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgZWRpdGgKICAgICAgICA6CiAgICAgICAgWzEuMl0gCiAgICAgICAgICAgIFBsZWFzZSBXYWl0IE1lc3NhZ2UgYnVpbGQgd2hpbGUgcHVibGlzaGluZywgc3VibWl0aW5nLCBkZWFjdGl2YXRpbmcsIGNvcHlpbmcsIGN1dGluZywgcGFzdGluZywgYXJjaGl2aW5nLCBkZWxldGVpbiwgcmVzdG9yaW5nIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjQgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuNCB1cGRhdGUKICAgICAgICBieQogICAgICAgIGFuZHJlYXMKICAgICAgICA6CiAgICAgICAgWzEuNF0gCiAgICAgICAgICAgIGZpeGVkIEB1bmxlc3MgYXR0cmlidXRlIGluIHNpdGV0cmVlIHVzZWNhc2VzLnhjb25mIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjQgcmVtb3ZlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuNCByZW1vdmUKICAgICAgICBieQogICAgICAgIGFuZHJlYXMKICAgICAgICA6CiAgICAgICAgWzEuNF0gCiAgICAgICAgICAgIHJlbW92ZWQgb2Jzb2xldGUgc2l0ZXRyZWUgcGFja2FnZSBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS40IHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjQgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBhbmRyZWFzCiAgICAgICAgOgogICAgICAgIFsxLjRdIAogICAgICAgICAgICBDaGFuZ2VkIGxvY2F0aW9uIG9mIGRlZmF1bHQgcHVibGljYXRpb24gcHVibGV0cyB0byBhdm9pZCBjbGFzaCB3aXRoIGZhbGxiYWNrIHB1YmxldCBkaXJlY3RvcnkgRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuNCBhZGQ8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS40IGFkZAogICAgICAgIGJ5CiAgICAgICAgYW5kcmVhcwogICAgICAgIDoKICAgICAgICBbMS40XSAKICAgICAgICAgICAgRXh0cmFjdGVkIHNpdGV0cmVlIHRvIHNlcGFyYXRlIHB1YmxldCBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS40IHJlbW92ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjQgcmVtb3ZlCiAgICAgICAgYnkKICAgICAgICBhbmRyZWFzCiAgICAgICAgOgogICAgICAgIFsxLjRdIAogICAgICAgICAgICBSZW1vdmVkIG9ic29sZXRlIHNpdGV0cmVlIFhTTCBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS40IHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjQgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBhbmRyZWFzCiAgICAgICAgOgogICAgICAgIFsxLjRdIAogICAgICAgICAgICBFY2xpcHNlOiBhZGRlZCBwdWIgYW5kIHB1YmxldCBzb3VyY2VzIHRvIGphdmEgc291cmNlIHBhdGggRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuMiB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS4yIHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgbWljaGkKICAgICAgICA6CiAgICAgICAgWzEuMl0gCiAgICAgICAgICAgIHNvbWUgbW9yZSBoaW50cyBhbmQgcG9pbnRlcnMgYWRkZWQgRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuMiB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS4yIHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgbWljaGkKICAgICAgICA6CiAgICAgICAgWzEuMl0gCiAgICAgICAgICAgIGRvd2xvYWQgbGlua3MgYWRkZWQgRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuMiB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS4yIHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgbWljaGkKICAgICAgICA6CiAgICAgICAgWzEuMl0gCiAgICAgICAgICAgIE5vdGUgYWJvdXQgSUJNL0FJWCBhZGRlZCBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgU2l0ZSB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+U2l0ZSB1cGRhdGUKICAgICAgICBieQogICAgICAgIGdyZWdvcgogICAgICAgIDoKICAgICAgICBbU2l0ZV0gCiAgICAgICAgICAgIEZpeGVkIHR3byBzbWFsbCB0eXBvcyBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgRG9jcyB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+RG9jcyB1cGRhdGUKICAgICAgICBieQogICAgICAgIGdyZWdvcgogICAgICAgIDoKICAgICAgICBbRG9jc10gCiAgICAgICAgICAgIEZpeGVkIHR3byBzbWFsbCB0eXBvcyBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS40IHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjQgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBncmVnb3IKICAgICAgICA6CiAgICAgICAgWzEuNF0gCiAgICAgICAgICAgIHN2bjpleGVjdXRhYmxlIHByb3BlcnR5IHNldCBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS40IHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjQgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBncmVnb3IKICAgICAgICA6CiAgICAgICAgWzEuNF0gCiAgICAgICAgICAgIFNldCBlY2hvIG9mZiBmb3IgYmF0Y2ggZmlsZSBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS4yIHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjIgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBncmVnb3IKICAgICAgICA6CiAgICAgICAgWzEuMl0gCiAgICAgICAgICAgIHN2bjpleGVjdXRhYmxlIHByb3BlcnR5IHNldCBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS4yIHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjIgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBncmVnb3IKICAgICAgICA6CiAgICAgICAgWzEuMl0gCiAgICAgICAgICAgIFNlYXJjaCB3YXMgbm90IHVzaW5nIGkxOG4gcHJvcGVybHkuIEZpeCBieSBQYXVsIEVyY29saW5vLCB0aGlzIHJlc29sdmVzIGh0dHA6Ly9pc3N1ZXMuYXBhY2hlLm9yZy9idWd6aWxsYS9zaG93X2J1Zy5jZ2k/aWQ9MzU1ODkgRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IERvY3MgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPkRvY3MgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBtaWNoaQogICAgICAgIDoKICAgICAgICBbRG9jc10gCiAgICAgICAgICAgIHggcmVtb3ZlZCBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS40IHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjQgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBhbmRyZWFzCiAgICAgICAgOgogICAgICAgIFsxLjRdIAogICAgICAgICAgICBBZGRlZCB0aGUgY29uY2VwdCBvZiBOb2RlcyB0byB0aGUgc2l0ZSBtYW5hZ2VtZW50LiBUaGUgZGVwZW5kZW5jeSByZWxhdGlvbiBpcyBub3cgYXBwbGllZCB0byBub2Rlcywgd2hpY2ggYXZvaWRzIGNvbmZ1c2lvbiByZS4gZG9jdW1lbnQgbGFuZ3VhZ2UgdmVyc2lvbnMuIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjQgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuNCB1cGRhdGUKICAgICAgICBieQogICAgICAgIGFuZHJlYXMKICAgICAgICA6CiAgICAgICAgWzEuNF0gCiAgICAgICAgICAgIEFkZGVkIHRoZSBjb25jZXB0IG9mIE5vZGVzIHRvIHRoZSBzaXRlIG1hbmFnZW1lbnQuIFRoZSBkZXBlbmRlbmN5IHJlbGF0aW9uIGlzIG5vdyBhcHBsaWVkIHRvIG5vZGVzLCB3aGljaCBhdm9pZHMgY29uZnVzaW9uIHJlLiBkb2N1bWVudCBsYW5ndWFnZSB2ZXJzaW9ucy4gRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuNCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS40IHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgYW5kcmVhcwogICAgICAgIDoKICAgICAgICBbMS40XSAKICAgICAgICAgICAgRG9jdW1lbnRTZXQ6IGFkZGVkIHNvbWUgbWV0aG9kcyBhbmQgaW52YXJpYW50IGNoZWNrcyBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS40IHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjQgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBhbmRyZWFzCiAgICAgICAgOgogICAgICAgIFsxLjRdIAogICAgICAgICAgICBEZWZhdWx0U2l0ZVRyZWU6IGNhbGwgc2F2ZURvY3VtZW50KCksIHRoaXMgZml4ZXMgdGhlIHByb2JsZW0gdGhhdCBzaXRldHJlZSBub2RlcyB3ZXJlIG5vdCByZW1vdmVkLiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS40IHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjQgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBjaGVzdG51dAogICAgICAgIDoKICAgICAgICBbMS40XSAKICAgICAgICAgICAgZml4ZXMgcHJvYmxlbSB3aXRoIG5vdCBiZWluZyBhYmxlIHRvIGxvY2sgc2l0ZXRyZWUgd2hlbiBwdXR0aW5nIGEgZG9jdW1lbnQgd2l0aCB3ZWJEQVYgRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuNCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS40IHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgY2hlc3RudXQKICAgICAgICA6CiAgICAgICAgWzEuNF0gCiAgICAgICAgICAgIGZpeGVzIHRoZSBwcm9ibGVtcyBvZiBub3QgYmVpbmcgYWJsZSB0byBlZGl0IHdpdGggb25lIGZvcm0gZWRpdG9yIGFuZCBub3QgYmVpbmcgYWJsZSB0byBQVVQgZG9jdW1lbnRzIHZpYSB3ZWJEQVYgRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuNCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS40IHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgY2hlc3RudXQKICAgICAgICA6CiAgICAgICAgWzEuNF0gCiAgICAgICAgICAgIHRoZSBmYWxsYmFjay10cmFuc2Zvcm1hdGlvbiByZXNvdXJjZSBzaG91bGQgdXNlIHRoZSBmYWxsYmFjayBwcm90b2NvbCwgbGV0cyBuYXZpZ2F0aW9uIHhzbCBsaXZlIGluIGEgcHViIHRlbXBsYXRlIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjQgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuNCB1cGRhdGUKICAgICAgICBieQogICAgICAgIGFuZHJlYXMKICAgICAgICA6CiAgICAgICAgWzEuNF0gCiAgICAgICAgICAgIERpc3BsYXkgdXNlY2FzZSBlcnJvciBtZXNzYWdlcyBhcyBtZW51IGl0ZW0gdG9vbHRpcHMgRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuNCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS40IHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgYW5kcmVhcwogICAgICAgIDoKICAgICAgICBbMS40XSAKICAgICAgICAgICAgQWRkZWQgR2VybWFuIHdvcmtmbG93IGkxOG4gZW50cnkgRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuNCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS40IHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgYW5kcmVhcwogICAgICAgIDoKICAgICAgICBbMS40XSAKICAgICAgICAgICAgZml4ZWQgbGluayB0byBtZXRhIGRhdGEgcGFnZSAocmVtb3ZlZCBpbmZvLSBmcm9tIGFyZWEpIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjQgYWRkPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuNCBhZGQKICAgICAgICBieQogICAgICAgIGFuZHJlYXMKICAgICAgICA6CiAgICAgICAgWzEuNF0gCiAgICAgICAgICAgIGZpeGVkIGFkbWluIC0mZ3Q7IHNlYXJjaCB1c2VjYXNlIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjQgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuNCB1cGRhdGUKICAgICAgICBieQogICAgICAgIGFuZHJlYXMKICAgICAgICA6CiAgICAgICAgWzEuNF0gCiAgICAgICAgICAgIGFkZGVkIEFTRiBoZWFkZXIgRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuNCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS40IHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgY2hlc3RudXQKICAgICAgICA6CiAgICAgICAgWzEuNF0gCiAgICAgICAgICAgIHhzbHQveGh0bWwyeGh0bWwueHNsIGRvZXNuJ3Qgc2VlbSB0byBleGlzdCBhbnltb3JlIHNvIEkgY2hhbmdlZCB0aGUgaHJlZiBvZiB0aGUgeHNsOmltcG9ydCB0byB0aGUgeGh0bWwgcHVibGV0IHN0eWxlc2hlZXQgYW5kIG5vdyBJIGdldCBjb250ZW50IG9uIG15IGhvbWVwYWdlIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjQgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuNCB1cGRhdGUKICAgICAgICBieQogICAgICAgIGFuZHJlYXMKICAgICAgICA6CiAgICAgICAgWzEuNF0gCiAgICAgICAgICAgIGZpeGVkIHdlYmFwcCBwYXRoIGluIHNlYXJjaC5wcm9wZXJ0aWVzIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjQgcmVtb3ZlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuNCByZW1vdmUKICAgICAgICBieQogICAgICAgIGFuZHJlYXMKICAgICAgICA6CiAgICAgICAgWzEuNF0gCiAgICAgICAgICAgIG1vdmluZyBzZWFyY2ggWFNQcyB0byBwdWJsZXQgRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuNCBhZGQ8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS40IGFkZAogICAgICAgIGJ5CiAgICAgICAgYW5kcmVhcwogICAgICAgIDoKICAgICAgICBbMS40XSAKICAgICAgICAgICAgbW92aW5nIHNlYXJjaCBYU0xUcyB0byBwdWJsZXQgRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuNCByZW1vdmU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS40IHJlbW92ZQogICAgICAgIGJ5CiAgICAgICAgYW5kcmVhcwogICAgICAgIDoKICAgICAgICBbMS40XSAKICAgICAgICAgICAgbW92aW5nIHNlYXJjaCBYU0xUcyB0byBwdWJsZXQgRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuNCByZW1vdmU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS40IHJlbW92ZQogICAgICAgIGJ5CiAgICAgICAgYW5kcmVhcwogICAgICAgIDoKICAgICAgICBbMS40XSAKICAgICAgICAgICAgbW92aW5nIHNlYXJjaCBiaW5hcmllcyB0byBzZWFyY2ggcHVibGV0IERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjQgYWRkPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuNCBhZGQKICAgICAgICBieQogICAgICAgIGFuZHJlYXMKICAgICAgICA6CiAgICAgICAgWzEuNF0gCiAgICAgICAgICAgIG1vdmluZyBzZWFyY2ggYmluYXJpZXMgdG8gc2VhcmNoIHB1YmxldCBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS40IHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjQgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBhbmRyZWFzCiAgICAgICAgOgogICAgICAgIFsxLjRdIAogICAgICAgICAgICBhZGRlZCBibG9nIHB1YmxldHMgdG8gYnVpbGQucHJvcGVydGllcyBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS40IHJlbW92ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjQgcmVtb3ZlCiAgICAgICAgYnkKICAgICAgICBhbmRyZWFzCiAgICAgICAgOgogICAgICAgIFsxLjRdIAogICAgICAgICAgICByZW1vdmVkIG9ic29sZXRlIGJsb2cgZW50cnkgbWVudSBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS40IGFkZDwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjQgYWRkCiAgICAgICAgYnkKICAgICAgICBhbmRyZWFzCiAgICAgICAgOgogICAgICAgIFsxLjRdIAogICAgICAgICAgICBibG9nIHB1YjogbWlncmF0ZWQgZG9jdHlwZXMgdG8gcHVibGV0cyBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS40IHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjQgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBhbmRyZWFzCiAgICAgICAgOgogICAgICAgIFsxLjRdIAogICAgICAgICAgICBNYWRlIHB1YmxldCBtZW51cyBvcHRpb25hbCAocmVzb3VyY2UtZXhpc3RzIGZvciBtZW51cy54bWFwKSBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS40IHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjQgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBhbmRyZWFzCiAgICAgICAgOgogICAgICAgIFsxLjRdIAogICAgICAgICAgICB1c2Ugc2VhcmNoIHB1YmxldCBpbiBkZWZhdWx0IHB1YmxpY2F0aW9uIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjQgYWRkPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuNCBhZGQKICAgICAgICBieQogICAgICAgIGFuZHJlYXMKICAgICAgICA6CiAgICAgICAgWzEuNF0gCiAgICAgICAgICAgIGFkZGVkIHNlYXJjaCBwdWJsZXQgRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuNCBhZGQ8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS40IGFkZAogICAgICAgIGJ5CiAgICAgICAgYW5kcmVhcwogICAgICAgIDoKICAgICAgICBbMS40XSAKICAgICAgICAgICAgc2ltcGxpZmllZCBwdWJsZXQgZGlyZWN0b3J5IHN0cnVjdHVyZSBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS40IHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjQgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBhbmRyZWFzCiAgICAgICAgOgogICAgICAgIFsxLjRdIAogICAgICAgICAgICBhZGRlZCBwdWJsZXRzIHRvIGJ1aWxkIHByb2Nlc3MgRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuNCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS40IHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgYW5kcmVhcwogICAgICAgIDoKICAgICAgICBbMS40XSAKICAgICAgICAgICAgSW50cm9kdWNpbmcgcHVibGV0IGluZnJhc3RydWN0dXJlIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjQgYWRkPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuNCBhZGQKICAgICAgICBieQogICAgICAgIGFuZHJlYXMKICAgICAgICA6CiAgICAgICAgWzEuNF0gCiAgICAgICAgICAgIEludHJvZHVjaW5nIHB1YmxldCBpbmZyYXN0cnVjdHVyZSBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS40IHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjQgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBhbmRyZWFzCiAgICAgICAgOgogICAgICAgIFsxLjRdIAogICAgICAgICAgICBTaXRlIGFyZWEgb3ZlcnZpZXc6IERpc3BsYXkgUmVzb3VyY2VUeXBlLmdldE5hbWUoKSBpbnN0ZWFkIG9mIFJlc291cmNlVHlwZSBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS40IHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjQgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBhbmRyZWFzCiAgICAgICAgOgogICAgICAgIFsxLjRdIAogICAgICAgICAgICBTd2l0Y2hlZCBqYXZhIGNsYXNzZXMgZnJvbSBEb2N1bWVudFR5cGUgdG8gUmVzb3VyY2VUeXBlLiBSZXNvdXJjZVR5cGUgaXMgYW4gQXZhbG9uIHNlcnZpY2UgYW5kIHVzZXMgdGhlIEF2YWxvbiBGVyBjb25maWd1cmF0aW9uIG1lY2hhbmlzbS4gRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuNCBhZGQ8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS40IGFkZAogICAgICAgIGJ5CiAgICAgICAgYW5kcmVhcwogICAgICAgIDoKICAgICAgICBbMS40XSAKICAgICAgICAgICAgYWRkZWQgcHVibGV0cyB0byBidWlsZCBwcm9jZXNzIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjQgYWRkPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuNCBhZGQKICAgICAgICBieQogICAgICAgIGFuZHJlYXMKICAgICAgICA6CiAgICAgICAgWzEuNF0gCiAgICAgICAgICAgIGFkZGluZyBwdWJsZXRzIGRpcmVjdG9yeSBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS4yIHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjIgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBlZGl0aAogICAgICAgIDoKICAgICAgICBbMS4yXSAKICAgICAgICAgICAgTm8gYmFja3VwIHdoaWxlIHB1Ymxpc2hpbmcgYSBkb2N1bWVudCAoc2V0dGluZyB0aGUgcHVibGlzaGVyIGFuZCB0aGUgcHVibGljYXRpb24ncyBhbmQgcmV2aXNpb24ncyBkYXRlKSwgZml4IGJ1ZyAzNTMwOSBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS4yIHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjIgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBlZGl0aAogICAgICAgIDoKICAgICAgICBbMS4yXSAKICAgICAgICAgICAgY3JlYXRlIGEgYmFja3VwIGFmdGVyIHRoZSBjcmVhdGlvbiBvZiBhIGRvY3VtZW50OyBmaXggYnVnIDMxOTY4IERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjQgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuNCB1cGRhdGUKICAgICAgICBieQogICAgICAgIGFuZHJlYXMKICAgICAgICA6CiAgICAgICAgWzEuNF0gCiAgICAgICAgICAgIFJlbmRlciBtZW51IGJsb2NrIHRpdGxlcyBhcyBsaXN0IGl0ZW1zIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCBTaXRlIHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj5TaXRlIHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgZ3JlZ29yCiAgICAgICAgOgogICAgICAgIFtTaXRlXSAKICAgICAgICAgICAgVXBkYXRlZCBzaXRlIGZvciAxLjIuNCByZWxlYXNlIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCBEb2NzIHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj5Eb2NzIHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgZ3JlZ29yCiAgICAgICAgOgogICAgICAgIFtEb2NzXSAKICAgICAgICAgICAgZml4ZWQgYnJva2VuIGxpbmtzIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCBEb2NzIHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj5Eb2NzIHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgZ3JlZ29yCiAgICAgICAgOgogICAgICAgIFtEb2NzXSAKICAgICAgICAgICAgVHlwbyBmaXggRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IERvY3MgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPkRvY3MgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBncmVnb3IKICAgICAgICA6CiAgICAgICAgW0RvY3NdIAogICAgICAgICAgICBUeXBvIGZpeCBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgRG9jcyB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+RG9jcyB1cGRhdGUKICAgICAgICBieQogICAgICAgIGdyZWdvcgogICAgICAgIDoKICAgICAgICBbRG9jc10gCiAgICAgICAgICAgIEFkZGVkIGluZm9ybWF0aW9uIGFib3V0IExlbnlhIDEuMi40IERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAgYWRkPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPiBhZGQKICAgICAgICBieQogICAgICAgIGdyZWdvcgogICAgICAgIDoKICAgICAgICBbXSAKICAgICAgICAgICAgVGFnZ2VkIHJlbGVhc2UgMS4yLjQgRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuMiB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS4yIHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgZ3JlZ29yCiAgICAgICAgOgogICAgICAgIFsxLjJdIAogICAgICAgICAgICBBZGRlZCBQYXVsIEVyY29saW5vIHRvIGNyZWRpdHMuIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjQgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuNCB1cGRhdGUKICAgICAgICBieQogICAgICAgIGdyZWdvcgogICAgICAgIDoKICAgICAgICBbMS40XSAKICAgICAgICAgICAgQWRkZWQgUGF1bCBFcmNvbGlubyB0byBjcmVkaXRzLiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS4yIHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjIgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBncmVnb3IKICAgICAgICA6CiAgICAgICAgWzEuMl0gCiAgICAgICAgICAgIEFwcGxpZWQgQVNMIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjIgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuMiB1cGRhdGUKICAgICAgICBieQogICAgICAgIGdyZWdvcgogICAgICAgIDoKICAgICAgICBbMS4yXSAKICAgICAgICAgICAgU21hbGwgc3ludGF4IGZpeCBmb3IgaW5kZXggc2hlbGwgc2NyaXB0IERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjIgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuMiB1cGRhdGUKICAgICAgICBieQogICAgICAgIGdyZWdvcgogICAgICAgIDoKICAgICAgICBbMS4yXSAKICAgICAgICAgICAgTWFkZSBzdXJlIHRoYXQgYWxsIGJhdGNoIGZpbGVzIGhhdmUgdGhlaXIgZXhlY3V0YWJsZSBiaXQgc2V0LiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS40IHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjQgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBncmVnb3IKICAgICAgICA6CiAgICAgICAgWzEuNF0gCiAgICAgICAgICAgIE1hZGUgc3VyZSB0aGF0IGFsbCBiYXRjaCBmaWxlcyBoYXZlIHRoZWlyIGV4ZWN1dGFibGUgYml0IHNldC4gRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuMiB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS4yIHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgZ3JlZ29yCiAgICAgICAgOgogICAgICAgIFsxLjJdIAogICAgICAgICAgICBBZGRlZCBzZWFyY2ggdXNlY2FzZSB0byBkZWZhdWx0IHB1YmxpY2F0aW9uLiBUaGFua3MgdG8gUGF1bCBFcmNvbGlubywgdGhpcyBtYWtlcyBzZWFyY2hpbmcgd29yayBvdXQgb2YgdGhlIGJveCBvbiBXaW5kb3dzIGZvciB0aGUgZmlyc3QgdGltZS4gRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuMiBhZGQ8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS4yIGFkZAogICAgICAgIGJ5CiAgICAgICAgZ3JlZ29yCiAgICAgICAgOgogICAgICAgIFsxLjJdIAogICAgICAgICAgICBBZGRlZCBzZWFyY2ggdXNlY2FzZSB0byBkZWZhdWx0IHB1YmxpY2F0aW9uLiBUaGFua3MgdG8gUGF1bCBFcmNvbGlubywgdGhpcyBtYWtlcyBzZWFyY2hpbmcgd29yayBvdXQgb2YgdGhlIGJveCBvbiBXaW5kb3dzIGZvciB0aGUgZmlyc3QgdGltZS4gRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuMiBhZGQ8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS4yIGFkZAogICAgICAgIGJ5CiAgICAgICAgZ3JlZ29yCiAgICAgICAgOgogICAgICAgIFsxLjJdIAogICAgICAgICAgICBBZGRlZCBzZWFyY2ggdXNlY2FzZSB0byBkZWZhdWx0IHB1YmxpY2F0aW9uLiBUaGFua3MgdG8gUGF1bCBFcmNvbGlubywgdGhpcyBtYWtlcyBzZWFyY2hpbmcgd29yayBvdXQgb2YgdGhlIGJveCBvbiBXaW5kb3dzIGZvciB0aGUgZmlyc3QgdGltZS4gRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuMiBhZGQ8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS4yIGFkZAogICAgICAgIGJ5CiAgICAgICAgZ3JlZ29yCiAgICAgICAgOgogICAgICAgIFsxLjJdIAogICAgICAgICAgICBBZGRlZCBzZWFyY2ggdXNlY2FzZSB0byBkZWZhdWx0IHB1YmxpY2F0aW9uLiBUaGFua3MgdG8gUGF1bCBFcmNvbGlubywgdGhpcyBtYWtlcyBzZWFyY2hpbmcgd29yayBvdXQgb2YgdGhlIGJveCBvbiBXaW5kb3dzIGZvciB0aGUgZmlyc3QgdGltZS4gRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuMiBhZGQ8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS4yIGFkZAogICAgICAgIGJ5CiAgICAgICAgZ3JlZ29yCiAgICAgICAgOgogICAgICAgIFsxLjJdIAogICAgICAgICAgICBBZGRlZCBzZWFyY2ggdXNlY2FzZSB0byBkZWZhdWx0IHB1YmxpY2F0aW9uLiBUaGFua3MgdG8gUGF1bCBFcmNvbGlubywgdGhpcyBtYWtlcyBzZWFyY2hpbmcgd29yayBvdXQgb2YgdGhlIGJveCBvbiBXaW5kb3dzIGZvciB0aGUgZmlyc3QgdGltZS4gRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuMiB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS4yIHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgZ3JlZ29yCiAgICAgICAgOgogICAgICAgIFsxLjJdIAogICAgICAgICAgICBFeHBsaWNpdGx5IHNldCBhbHQgdGFncyBmb3IgaW1hZ2VzLCBhbmQgdGl0bGUgZm9yIGFzc2V0cy4gVGhpcyByZXNvbHZlcyBodHRwOi8vaXNzdWVzLmFwYWNoZS5vcmcvYnVnemlsbGEvc2hvd19idWcuY2dpP2lkPTM1NDEyIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjQgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuNCB1cGRhdGUKICAgICAgICBieQogICAgICAgIGdyZWdvcgogICAgICAgIDoKICAgICAgICBbMS40XSAKICAgICAgICAgICAgRXhwbGljaXRseSBzZXQgYWx0IHRhZ3MgZm9yIGltYWdlcywgYW5kIHRpdGxlIGZvciBhc3NldHMuIFRoaXMgcmVzb2x2ZXMgaHR0cDovL2lzc3Vlcy5hcGFjaGUub3JnL2J1Z3ppbGxhL3Nob3dfYnVnLmNnaT9pZD0zNTQxMiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS4yIHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjIgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBncmVnb3IKICAgICAgICA6CiAgICAgICAgWzEuMl0gCiAgICAgICAgICAgIFNldCB2ZXJzaW9uIHRvIDEuMi40IERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjIgYWRkPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuMiBhZGQKICAgICAgICBieQogICAgICAgIGdyZWdvcgogICAgICAgIDoKICAgICAgICBbMS4yXSAKICAgICAgICAgICAgQWRkZWQgc2VhcmNoIHVzZWNhc2UgdG8gZGVmYXVsdCBwdWJsaWNhdGlvbi4gVGhhbmtzIHRvIFBhdWwgRXJjb2xpbm8sIHRoaXMgbWFrZXMgc2VhcmNoaW5nIHdvcmsgb3V0IG9mIHRoZSBib3ggb24gV2luZG93cyBmb3IgdGhlIGZpcnN0IHRpbWUuIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjIgYWRkPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuMiBhZGQKICAgICAgICBieQogICAgICAgIGdyZWdvcgogICAgICAgIDoKICAgICAgICBbMS4yXSAKICAgICAgICAgICAgQWRkZWQgc2VhcmNoIHVzZWNhc2UgdG8gZGVmYXVsdCBwdWJsaWNhdGlvbi4gVGhhbmtzIHRvIFBhdWwgRXJjb2xpbm8sIHRoaXMgbWFrZXMgc2VhcmNoaW5nIHdvcmsgb3V0IG9mIHRoZSBib3ggb24gV2luZG93cyBmb3IgdGhlIGZpcnN0IHRpbWUuIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjIgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuMiB1cGRhdGUKICAgICAgICBieQogICAgICAgIGdyZWdvcgogICAgICAgIDoKICAgICAgICBbMS4yXSAKICAgICAgICAgICAgTm8gbG9uZ2VyIGhhcmRjb2RlIGphcnMgaW4gdGhlIGFudCBjbGFzc3BhdGguIFRoaXMgcmVzb2x2ZXMgdGhlIGNvbnN0YW50IGJyZWFrYWdlIGFzIG5ldyB2ZXJzaW9ucyBvZiB0aGVzZSBqYXJzIGFyZSBhZGRlZC4gRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuNCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS40IHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgZ3JlZ29yCiAgICAgICAgOgogICAgICAgIFsxLjRdIAogICAgICAgICAgICBObyBsb25nZXIgaGFyZGNvZGUgamFycyBpbiB0aGUgYW50IGNsYXNzcGF0aC4gVGhpcyByZXNvbHZlcyB0aGUgY29uc3RhbnQgYnJlYWthZ2UgYXMgbmV3IHZlcnNpb25zIG9mIHRoZXNlIGphcnMgYXJlIGFkZGVkLiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS40IHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjQgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBjaGVzdG51dAogICAgICAgIDoKICAgICAgICBbMS40XSAKICAgICAgICAgICAgcmVzb2x2ZXMgQnVnIDM1NDgzCmFuZCBhZGRlZCBmYWxsYmFjazovLyB0byBzaGFyZWQgcmVzb3VyY2VzIGZvciBwdWIgdGVtcGxhdGluZyBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS40IHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjQgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBtaWNoaQogICAgICAgIDoKICAgICAgICBbMS40XSAKICAgICAgICAgICAgYnVnIGZpeGVkIHJlIGNvcHlpbmcgb2YgcHVibGljYXRpb24gc3BlY2lmaWMgbGlicmFyaWVzIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjIgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuMiB1cGRhdGUKICAgICAgICBieQogICAgICAgIG1pY2hpCiAgICAgICAgOgogICAgICAgIFsxLjJdIAogICAgICAgICAgICBidWcgZml4ZWQgcmUgY29weWluZyBvZiBwdWJsaWNhdGlvbiBzcGVjaWZpYyBsaWJyYXJpZXMgRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuMiB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS4yIHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgbWljaGkKICAgICAgICA6CiAgICAgICAgWzEuMl0gCiAgICAgICAgICAgIG1ha2Ugc2FtcGxlL3RlbXBsYXRlIGZpbGVuYW1lIGFjY2Vzc2libGUgc3VjaCB0aGF0IHRoZSBkZWZhdWx0IGNyZWF0b3IgY2FuIGJlIHJldXNlZCBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS40IHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjQgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBjaGVzdG51dAogICAgICAgIDoKICAgICAgICBbMS40XSAKICAgICAgICAgICAgSSBmb3Jnb3QgdG8gY2hhbmdlIHRoZSBtZXRob2QgbmFtZSBpbiB0aGUgY29tbWVudCBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS40IHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjQgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBjaGVzdG51dAogICAgICAgIDoKICAgICAgICBbMS40XSAKICAgICAgICAgICAgQWxsb3dzIGEgdXNlciB0byBjaGVja291dCBhbiBvYmplY3QsIGV4ZWN1dGUgbXVsdGlwbGUgdXNlY2FzZXMgb24gdGhlIG9iamVjdCwgYW5kIGNoZWNraW4gdGhlIG9iamVjdCAgRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuNCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS40IHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgY2hlc3RudXQKICAgICAgICA6CiAgICAgICAgWzEuNF0gCiAgICAgICAgICAgIGZpeGVkIHByb2JsZW0gb2Ygbm90IGFsbG93aW5nIG93bmVyIG9mIGxvY2sgb24gb2JqZWN0cyB0byBsb2NrIGFnYWluIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjQgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuNCB1cGRhdGUKICAgICAgICBieQogICAgICAgIGNoZXN0bnV0CiAgICAgICAgOgogICAgICAgIFsxLjRdIAogICAgICAgICAgICBuZWVkcyB0byB3b3JrIGV2ZW4gd2hlbiB3ZSBoYXZlIGRvY3VtZW50cyBuYW1lZCBhdXRob3JpbmcgRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuNCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS40IHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgY2hlc3RudXQKICAgICAgICA6CiAgICAgICAgWzEuNF0gCiAgICAgICAgICAgIExpc3QgYXNzZXRzIG9mIGEgZG9jdW1lbnQgZm9yIFBST1BGSU5EIHdlYkRBViBtZXRob2QgRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuNCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS40IHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgY2hlc3RudXQKICAgICAgICA6CiAgICAgICAgWzEuNF0gCiAgICAgICAgICAgIExpc3QgYXNzZXRzIG9mIGEgZG9jdW1lbnQgZm9yIFBST1BGSU5EIHdlYkRBViBtZXRob2QgRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuNCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS40IHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgY2hlc3RudXQKICAgICAgICA6CiAgICAgICAgWzEuNF0gCiAgICAgICAgICAgIHN0cmlwcGVkIG5hbWVzcGFjZSBmcm9tIGRvY3VtZW50IHRoYXQgaGFzIGJlZW4gUFVUIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCBEb2NzIHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj5Eb2NzIHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgZ3JlZ29yCiAgICAgICAgOgogICAgICAgIFtEb2NzXSAKICAgICAgICAgICAgcG9pbnQgbGVueWEgZGVtbyBhdCBBU0YgaW5zdGFuY2UgRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuNCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS40IHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgY2hlc3RudXQKICAgICAgICA6CiAgICAgICAgWzEuNF0gCiAgICAgICAgICAgIGZpeGVkIFBST1BGSU5EIG1hdGNoIG9uIHB1YmxpY2F0aW9ucyByb290IGZvciB3ZWJEQVYsIGFuZCBhZGRlZCBmYWxsYmFjazogcHJvdG8gdG8gYWNjZXNzIHJlc291cmNlcyBzaXRlbWFwIGZvciB0ZW1wbGF0aW5nICBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS40IHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjQgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBjaGVzdG51dAogICAgICAgIDoKICAgICAgICBbMS40XSAKICAgICAgICAgICAgQWRkZWQgVU5MT0NLIGFuZCBmaXhlZCBzb21lIHByb2JsZW1zIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjQgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuNCB1cGRhdGUKICAgICAgICBieQogICAgICAgIGNoZXN0bnV0CiAgICAgICAgOgogICAgICAgIFsxLjRdIAogICAgICAgICAgICBBZGRlZCB2YWxpZGF0aW9uIGFuZCBhYmlsaXR5IHRvIGNyZWF0ZSBhIG5ldyBkb2N1bWVudCBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgU2FuZGJveCBhZGQ8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+U2FuZGJveCBhZGQKICAgICAgICBieQogICAgICAgIG1pY2hpCiAgICAgICAgOgogICAgICAgIFtTYW5kYm94XSAKICAgICAgICAgICAgUkVBRE1FIGFkZGVkIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCBTYW5kYm94IHJlbW92ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj5TYW5kYm94IHJlbW92ZQogICAgICAgIGJ5CiAgICAgICAgbWljaGkKICAgICAgICA6CiAgICAgICAgW1NhbmRib3hdIAogICAgICAgICAgICBvYnNvbGV0ZSBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgU2FuZGJveCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+U2FuZGJveCB1cGRhdGUKICAgICAgICBieQogICAgICAgIG1pY2hpCiAgICAgICAgOgogICAgICAgIFtTYW5kYm94XSAKICAgICAgICAgICAgb2Jzb2xldGUgcGlwZWxpbmUgcmVtb3ZlZCBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgU2FuZGJveCBhZGQ8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+U2FuZGJveCBhZGQKICAgICAgICBieQogICAgICAgIG1pY2hpCiAgICAgICAgOgogICAgICAgIFtTYW5kYm94XSAKICAgICAgICAgICAgY2Zvcm1zIHdpdGhpbiBkZWZhdWx0IHB1YmxpY2F0aW9uIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjIgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuMiB1cGRhdGUKICAgICAgICBieQogICAgICAgIGdyZWdvcgogICAgICAgIDoKICAgICAgICBbMS4yXSAKICAgICAgICAgICAgUmVtb3ZlZCBlbXB0eSBtZW51cyAobm8gbG9uZ2VyIG5lZWRlZCkgRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuNCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS40IHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgbWljaGkKICAgICAgICA6CiAgICAgICAgWzEuNF0gCiAgICAgICAgICAgIHJlYWQgZnJvbSBjYWNoZSBkaXIgZGlzYWJsZWQgRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuMiB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS4yIHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgbWljaGkKICAgICAgICA6CiAgICAgICAgWzEuMl0gCiAgICAgICAgICAgIHJlYWQgZnJvbSBjYWNoZSBkaXNhYmxlZCBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS40IHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjQgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBqYW5uCiAgICAgICAgOgogICAgICAgIFsxLjRdIAogICAgICAgICAgICByZW1vdmUgY29udGV4dCBwYXRoIHNvIHRoYXQgdGhlIGxpbmsgdG8gdGhlIHVzZXIgcHJvZmlsZSB3b3JrcwogRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuNCBhZGQ8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS40IGFkZAogICAgICAgIGJ5CiAgICAgICAgamFubgogICAgICAgIDoKICAgICAgICBbMS40XSAKICAgICAgICAgICAgQWRkIHNlc3Npb25zLmp4IGZvciB0aGUgc2Vzc2lvbiB1c2VjYXNlCiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS40IHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjQgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBqYW5uCiAgICAgICAgOgogICAgICAgIFsxLjRdIAogICAgICAgICAgICBBZGRpbmcgdGhlIHNlc3Npb24gdXNlY2FzZXQgYXMgYSB0YWIgaW4gdGhlIGFkbWluIGFyZWEgYW5kIGNoYW5nZSB0aGUKdXJsUHJlZml4IHZhbHVlLCBzbyB0aGF0IHRoZSBTZWFyY2ggdGFiIGFsc28gd29ya3MgaWYgeW91IHVzZSB0b21jYXQuCiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS40IHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjQgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBqYW5uCiAgICAgICAgOgogICAgICAgIFsxLjRdIAogICAgICAgICAgICBBZGQgdGhlIFNlc3Npb25WaWV3ZXIgdG8gdGhlIGxpc3Qgb2YgdXNlY2FzZXMKIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjQgYWRkPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuNCBhZGQKICAgICAgICBieQogICAgICAgIGphbm4KICAgICAgICA6CiAgICAgICAgWzEuNF0gCiAgICAgICAgICAgIEFkZCBTZXNzaW9uVmlld2VyIHdoaWNoIGdldHMgYWxsIHNlc3Npb25zIGZyb20gdGhlIFNlc3Npb25MaXN0ZW5lciwKZXh0cmFjdCB0aGUgc2Vzc2lvbnMgYmVsb25naW5nIHRvIHRoZSBhY3R1YWwgcHVibGljYXRpb24gYW5kIApwcmVwYXJlIGl0IHRvIHRoZSB1c2VjYXNlCiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS40IGFkZDwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjQgYWRkCiAgICAgICAgYnkKICAgICAgICBqYW5uCiAgICAgICAgOgogICAgICAgIFsxLjRdIAogICAgICAgICAgICBBZGQgYSBwYXRjaCBpbiBvcmRlciB0byBhZGQgdGhlIFNlc3Npb25MaXN0ZW5lciBjbGFzcyB0byB3ZWIueG1sCiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS40IHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjQgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBhbmRyZWFzCiAgICAgICAgOgogICAgICAgIFsxLjRdIAogICAgICAgICAgICBMaW5rUmV3cml0aW5nVHJhbnNmb3JtZXI6IGFkZCBxdWVyeSBzdHJpbmcgdG8gcmV3cml0dGVuIFVSTHMuIFRoaXMgZml4ZXMgaHR0cDovL2lzc3Vlcy5hcGFjaGUub3JnL2J1Z3ppbGxhL3Nob3dfYnVnLmNnaT9pZD0yOTcwMSBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS4yIHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjIgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBhbmRyZWFzCiAgICAgICAgOgogICAgICAgIFsxLjJdIAogICAgICAgICAgICBMaW5rUmV3cml0aW5nVHJhbnNmb3JtZXI6IGFkZCBxdWVyeSBzdHJpbmcgdG8gcmV3cml0dGVuIFVSTHMuIFRoaXMgZml4ZXMgaHR0cDovL2lzc3Vlcy5hcGFjaGUub3JnL2J1Z3ppbGxhL3Nob3dfYnVnLmNnaT9pZD0yOTcwMSBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS40IGFkZDwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjQgYWRkCiAgICAgICAgYnkKICAgICAgICBqYW5uCiAgICAgICAgOgogICAgICAgIFsxLjRdIAogICAgICAgICAgICBBZGQgU2Vzc2lvbkxpc3RlbmVyIGNsYXNzIAogRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuMiB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS4yIHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgdGhvcnN0ZW4KICAgICAgICA6CiAgICAgICAgWzEuMl0gCiAgICAgICAgICAgIEJ1Z2ZpeCAzNTM5NyBTdWJtaXR0ZWQgYnkgU2ltb24gTGl0d2FuLiBUaHggU2ltb24gTGl0d2FuIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjIgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuMiB1cGRhdGUKICAgICAgICBieQogICAgICAgIHRob3JzdGVuCiAgICAgICAgOgogICAgICAgIFsxLjJdIAogICAgICAgICAgICBCdWdmaXggMzUzNTYgU3VibWl0dGVkIGJ5IFNpbW9uIExpdHdhbi4gVGh4IFNpbW9uIExpdHdhbiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS4yIHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjIgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBhbmRyZWFzCiAgICAgICAgOgogICAgICAgIFsxLjJdIAogICAgICAgICAgICBEZWxldGUgdGVtcCBjb2Nvb24ueGNvbmYgcGF0Y2ggZmlsZSBvbiBleGl0LiBUaGlzIGF2b2lkcyB0aGF0IHRoZSBidWlsZCBjYW5jZWxzIHVuZGVyIFdpbmRvd3Mgd2hlbiBhIGZpbGUgbG9ja2luZyBlcnJvciBvY2N1cnMuIFRoZSB0ZW1wIGZpbGUgd29uJ3QgYmUgZGVsZXRlZCBpbiB0aGlzIGNhc2UsIHNvIHRoZXJlJ3Mgc3RpbGwgcm9vbSBmb3IgaW1wcm92ZW1lbnQuCkJ1ZzogaHR0cDovL2lzc3Vlcy5hcGFjaGUub3JnL2J1Z3ppbGxhL3Nob3dfYnVnLmNnaT9pZD0zNTM5NCwgUGF0Y2ggc3VwcGxpZWQgYnkgSmFuIE1ldHpuZXIuIFRoYW5rcyEgRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuNCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS40IHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgandrYWx0egogICAgICAgIDoKICAgICAgICBbMS40XSAKICAgICAgICAgICAgW21pbm9yIGNoYW5nZV0gYWRkZWQgZXhwbGljaXQgY2hlY2sgZm9yIHJlcXVpcmVkIHByb3BlcnRpZXMgZm9yIG5pY2VyIGVycm9yIG1lc3NhZ2UgRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuNCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS40IHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgZ3JlZ29yCiAgICAgICAgOgogICAgICAgIFsxLjRdIAogICAgICAgICAgICBQcm9wZXJseSBsb2NrIGFmZmVjdGVkIGRvY3VtZW50cyB3aGVuIGRlYWN0aXZhdGluZy4gUGF0Y2ggYnkgRG91ZyBDaGVzdG51dCwgdGhpcyByZXNvbHZlcyBodHRwOi8vaXNzdWVzLmFwYWNoZS5vcmcvYnVnemlsbGEvc2hvd19idWcuY2dpP2lkPTM1MzgxIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjQgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuNCB1cGRhdGUKICAgICAgICBieQogICAgICAgIGdyZWdvcgogICAgICAgIDoKICAgICAgICBbMS40XSAKICAgICAgICAgICAgUmVtb3ZlZCBkb2N0eXBlcyBjb25maWcgZnJvbSBpbnN0YW50aWF0b3IgYW5kIGRpZCBzb21lIG1pbm9yIGNvZGUgY2xlYW51cC4gVGhpcyByZXNvbHZlcyBodHRwOi8vaXNzdWVzLmFwYWNoZS5vcmcvYnVnemlsbGEvc2hvd19idWcuY2dpP2lkPTM1MzgyIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjIgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuMiB1cGRhdGUKICAgICAgICBieQogICAgICAgIGp3a2FsdHoKICAgICAgICA6CiAgICAgICAgWzEuMl0gCiAgICAgICAgICAgIFttaW5vciBjaGFuZ2VdIGFkZGVkIHNhbml0eSBjaGVja3MgZm9yIGNsZWFyZXIgZXJyb3IgbWVzc2FnZSBpbiB0aGUgY2FzZSBvZiBhIG1pc3NpbmcgY29uZmlndXJhdGlvbiBpdGVtIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCBTYW5kYm94IHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj5TYW5kYm94IHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgbWljaGkKICAgICAgICA6CiAgICAgICAgW1NhbmRib3hdIAogICAgICAgICAgICBjb2RlIGxpbmsgYWRkZWQgRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IFNhbmRib3ggdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPlNhbmRib3ggdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBtaWNoaQogICAgICAgIDoKICAgICAgICBbU2FuZGJveF0gCiAgICAgICAgICAgIGxpbmsgdG8gSkNSIGFuZCBCbG9ncyBhcnRpY2xlIGFkZGVkIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjQgYWRkPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuNCBhZGQKICAgICAgICBieQogICAgICAgIGdyZWdvcgogICAgICAgIDoKICAgICAgICBbMS40XSAKICAgICAgICAgICAgQWRkZWQgcG9ydHVndWVzZSB0cmFuc2xhdGlvbiwgdGhhbmtzIHRvIFJvbGFuZG8gSXNpZG9yby4gRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuMiBhZGQ8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS4yIGFkZAogICAgICAgIGJ5CiAgICAgICAgZ3JlZ29yCiAgICAgICAgOgogICAgICAgIFsxLjJdIAogICAgICAgICAgICBBZGRlZCBwb3J0dWd1ZXNlIHRyYW5zbGF0aW9uLCB0aGFua3MgdG8gUm9sYW5kbyBJc2lkb3JvLiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgIGFkZDwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4gYWRkCiAgICAgICAgYnkKICAgICAgICBncmVnb3IKICAgICAgICA6CiAgICAgICAgW10gCiAgICAgICAgICAgIENyZWF0ZWQgYnJhbmNoIGZvciBkb2NvIGludGVncmF0aW9uIHdvcmsgRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuNCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS40IHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgamFubgogICAgICAgIDoKICAgICAgICBbMS40XSAKICAgICAgICAgICAgZG9zMnVuaXggaW4gb3JkZXIgdG8gcmVtb3ZlIHdpbmRvd3MgY2FycmlhZ2UgcmV0dXJucwogRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IERvY3MgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPkRvY3MgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBhbmRyZWFzCiAgICAgICAgOgogICAgICAgIFtEb2NzXSAKICAgICAgICAgICAgW21pbm9yIGNoYW5nZV0gZml4ZWQgaW5kZW50YXRpb24gRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IERvY3MgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPkRvY3MgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBhbmRyZWFzCiAgICAgICAgOgogICAgICAgIFtEb2NzXSAKICAgICAgICAgICAgYWRkZWQgbm90ZSB0byByZXNvdXJjZSB0eXBlIGRvY3MgYWJvdXQgYXNzaWduaW5nIHdvcmtmbG93IHNjaGVtYXMgdG8gcmVzb3VyY2UgdHlwZXMgRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuNCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS40IHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgYW5kcmVhcwogICAgICAgIDoKICAgICAgICBbMS40XSAKICAgICAgICAgICAgc2V0IHN2bjplb2wtc3R5bGUgdG8gbmF0aXZlIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjQgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuNCB1cGRhdGUKICAgICAgICBieQogICAgICAgIGFuZHJlYXMKICAgICAgICA6CiAgICAgICAgWzEuNF0gCiAgICAgICAgICAgIEJ1aWxkIENvY29vbiBBbnQgdGFza3MgZmlyc3QsIHRoaXMgcmVzb2x2ZXMgaHR0cDovL2lzc3Vlcy5hcGFjaGUub3JnL2J1Z3ppbGxhL3Nob3dfYnVnLmNnaT9pZD0zNTM2NyBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgRG9jcyB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+RG9jcyB1cGRhdGUKICAgICAgICBieQogICAgICAgIGFuZHJlYXMKICAgICAgICA6CiAgICAgICAgW0RvY3NdIAogICAgICAgICAgICBVcGRhdGVkIHJlc291cmNlIHR5cGUgZG9jczogbWVudSBpdGVtIHJlZmxlY3RzIHVzZWNhc2UgZnJhbWV3b3JrIHN5bnRheCBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS4yIHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjIgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBlZGl0aAogICAgICAgIDoKICAgICAgICBbMS4yXSAKICAgICAgICAgICAgU2V0IHRoZSBmb3JtIGF0IHRoZSB0b3Agb2YgdGhlIHJvdywgc28gdGhhdCBpdCBpcyBlYXN5IHRvIHNlZSBoaW0sIGV2ZW4gd2hlbiB0aGVyZSBhcmUgYSBtdXRsaXR1ZGUgb2YgZG9jdW1lbnRzIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjIgYWRkPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuMiBhZGQKICAgICAgICBieQogICAgICAgIG1pY2hpCiAgICAgICAgOgogICAgICAgIFsxLjJdIAogICAgICAgICAgICByZWRpcmVjdHMgYWRkZWQgdG8gZ3VhcmFudGVlIGJhY2t3YXJkcyBjb21wYXRpYmlsaXR5IERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjIgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuMiB1cGRhdGUKICAgICAgICBieQogICAgICAgIG1pY2hpCiAgICAgICAgOgogICAgICAgIFsxLjJdIAogICAgICAgICAgICB4aHRtbCBpc28gZm9yIGJhY2t3YXJkcyBjb21wYXRpYmlsaXR5IGFkZGVkIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjIgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuMiB1cGRhdGUKICAgICAgICBieQogICAgICAgIGdyZWdvcgogICAgICAgIDoKICAgICAgICBbMS4yXSAKICAgICAgICAgICAgRXhwbGljaXRseSBzZXQgdXRmLTggYXMgdGhlIGNoYXJzZXQuIFRoaXMgc2hvdWxkIGhvcGVmdWxseSByZXNvbHZlIHRoZSByZW1haW5pbmcgVVRGLTggcHJvYmxlbXMuIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjQgcmVtb3ZlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuNCByZW1vdmUKICAgICAgICBieQogICAgICAgIGdyZWdvcgogICAgICAgIDoKICAgICAgICBbMS40XSAKICAgICAgICAgICAgQ2hhbmdlZCBXZWJEQVYgc3RhdHVzIGNvZGUgYW5kIG1hZGUgV2ViREFWIHdvcmsgd2l0aCBwdWJsaWNhdGlvbiB0ZW1wbGF0aW5nLiBQYXRjaCBieSBEb3VnIENoZXN0bnV0LCB0aGlzIHJlc29sdmVzIGh0dHA6Ly9pc3N1ZXMuYXBhY2hlLm9yZy9idWd6aWxsYS9zaG93X2J1Zy5jZ2k/aWQ9MzUzMzcgRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuMiB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS4yIHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgZWRpdGgKICAgICAgICA6CiAgICAgICAgWzEuMl0gCiAgICAgICAgICAgIHNldCB0aGUgZW5jb2RpbmcgaW4gdGhlIGVtYWlsIGhlYWRlciBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgRG9jcyB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+RG9jcyB1cGRhdGUKICAgICAgICBieQogICAgICAgIGdyZWdvcgogICAgICAgIDoKICAgICAgICBbRG9jc10gCiAgICAgICAgICAgIEFkZGVkIFVuaXZlcnNpdHkgb2YgS2llbCB0byB0aGUgbGl2ZSBzaXRlcyBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgIGFkZDwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4gYWRkCiAgICAgICAgYnkKICAgICAgICBncmVnb3IKICAgICAgICA6CiAgICAgICAgW10gCiAgICAgICAgICAgIFRhZ2dpbmcgMS40YWxwaGExIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjQgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuNCB1cGRhdGUKICAgICAgICBieQogICAgICAgIGdyZWdvcgogICAgICAgIDoKICAgICAgICBbMS40XSAKICAgICAgICAgICAgQWRkZWQgcHVibGlzaCB0byB1c2VjYXNlIHBvbGljaWVzIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjQgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuNCB1cGRhdGUKICAgICAgICBieQogICAgICAgIGdyZWdvcgogICAgICAgIDoKICAgICAgICBbMS40XSAKICAgICAgICAgICAgUHJvcGVydGllcyBzZXQgRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuNCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS40IHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgZ3JlZ29yCiAgICAgICAgOgogICAgICAgIFsxLjRdIAogICAgICAgICAgICBFeHBsaWNpdGx5IHNldCBjaGFyc2V0IGZvciBzZXJpYWxpemVycyBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgRG9jcyB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+RG9jcyB1cGRhdGUKICAgICAgICBieQogICAgICAgIGdyZWdvcgogICAgICAgIDoKICAgICAgICBbRG9jc10gCiAgICAgICAgICAgIFVwZGF0ZWQgdGhlIHNpdGUgaW4gcHJlcGFyYXRpb24gb2YgMS40YWxwaGExIHJlbGVhc2UgRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IFNpdGUgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPlNpdGUgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBncmVnb3IKICAgICAgICA6CiAgICAgICAgW1NpdGVdIAogICAgICAgICAgICBVcGRhdGVkIHRoZSBzaXRlIGluIHByZXBhcmF0aW9uIG9mIDEuNGFscGhhMSByZWxlYXNlIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjQgcmVtb3ZlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuNCByZW1vdmUKICAgICAgICBieQogICAgICAgIGdyZWdvcgogICAgICAgIDoKICAgICAgICBbMS40XSAKICAgICAgICAgICAgUmVtb3ZlZCBubyBsb25nZXIgbmVlZGVkIGNsYXNzZXMgRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IERvY3MgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPkRvY3MgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBncmVnb3IKICAgICAgICA6CiAgICAgICAgW0RvY3NdIAogICAgICAgICAgICBEb24ndCBpbmRlbnQgYW5kIHNhdmUgMTAlIG9mIHRoZSBmaWxlIHNpemUgRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuNCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS40IHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgZ3JlZ29yCiAgICAgICAgOgogICAgICAgIFsxLjRdIAogICAgICAgICAgICBNaW5vciBqYXZhZG9jIGZpeGVzIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjQgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuNCB1cGRhdGUKICAgICAgICBieQogICAgICAgIGdyZWdvcgogICAgICAgIDoKICAgICAgICBbMS40XSAKICAgICAgICAgICAgQWRkZWQgZGVwcmVjYXRpb24gbm90aWNlIHRvIGNyZWF0b3IgaW50ZXJmYWNlIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjIgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuMiB1cGRhdGUKICAgICAgICBieQogICAgICAgIGdyZWdvcgogICAgICAgIDoKICAgICAgICBbMS4yXSAKICAgICAgICAgICAgQXZvaWQgU3RyaW5nSW5kZXhPdXRPZkJvdW5kc0V4Y2VwdGlvbiBpbiBjcmF3bGVyIGNvbmZpZ3VyYXRpb24uIFBhdGNoIGJ5IE1pY2hhZWwgV29obGZhaHJ0LCB0aGlzIHJlc29sdmVzIGh0dHA6Ly9pc3N1ZXMuYXBhY2hlLm9yZy9idWd6aWxsYS9zaG93X2J1Zy5jZ2k/aWQ9MzUzMDcgRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuNCBhZGQ8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS40IGFkZAogICAgICAgIGJ5CiAgICAgICAgZ3JlZ29yCiAgICAgICAgOgogICAgICAgIFsxLjRdIAogICAgICAgICAgICBTdGFydGVkIGVkaXRpbmcgc2NyZWVuIGZvciB0aGUgbGlua3MgZG9jdHlwZS4gRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IERvY3MgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPkRvY3MgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBncmVnb3IKICAgICAgICA6CiAgICAgICAgW0RvY3NdIAogICAgICAgICAgICBBZGRlZCBVbHRyYVZOQyB0byBsaXZlIHNpdGVzIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjQgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuNCB1cGRhdGUKICAgICAgICBieQogICAgICAgIGdyZWdvcgogICAgICAgIDoKICAgICAgICBbMS40XSAKICAgICAgICAgICAgTWFkZSBzdXJlIGhpZGRlbiBuYW1lc3BhY2VzIGZpZWxkIGlzIGFsd2F5cyBzZXQgRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuNCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS40IHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgZ3JlZ29yCiAgICAgICAgOgogICAgICAgIFsxLjRdIAogICAgICAgICAgICBSZW1vdmVkIElsbGVnYWxBcmd1bWVudEV4Y2VwdGlvbiBmb3IgbnVsbCBkb2N0eXBlIHNpbmNlIGdldFRyYW5zZm9ybWVyKCkgaGFuZGxlcyB0aGUgbnVsbCBjYXNlIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjQgYWRkPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuNCBhZGQKICAgICAgICBieQogICAgICAgIGdyZWdvcgogICAgICAgIDoKICAgICAgICBbMS40XSAKICAgICAgICAgICAgU3RhcnRlZCB3b3JrIG9uIGEgS3VwdSB1c2VjYXNlIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjQgYWRkPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuNCBhZGQKICAgICAgICBieQogICAgICAgIGdyZWdvcgogICAgICAgIDoKICAgICAgICBbMS40XSAKICAgICAgICAgICAgU3RhcnRlZCB3b3JrIG9uIGEgS3VwdSB1c2VjYXNlIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjQgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuNCB1cGRhdGUKICAgICAgICBieQogICAgICAgIGdyZWdvcgogICAgICAgIDoKICAgICAgICBbMS40XSAKICAgICAgICAgICAgQ2hhbmdlZCBVUkwgb2YgZmxvd3NjcmlwdCB0byBhbGxvdyBpdCB0byBiZSByZXNvbHZlZCBjb3JyZWN0bHkgRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuNCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS40IHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgZ3JlZ29yCiAgICAgICAgOgogICAgICAgIFsxLjRdIAogICAgICAgICAgICBGaXhlZCByZWZlcmVuY2UgdG8gYSBtb3ZlZCBKYXZhIGNsYXNzIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjQgcmVtb3ZlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuNCByZW1vdmUKICAgICAgICBieQogICAgICAgIGdyZWdvcgogICAgICAgIDoKICAgICAgICBbMS40XSAKICAgICAgICAgICAgUmVtb3ZlZCBkb2N0eXBlcyBmcm9tIG9sZCBsb2NhdGlvbiBhbmQgYWRkZWQgYSBzY2hlbWEgbG9jYXRpb24gZm9yIHRoZSBob21lcGFnZSBkb2N0eXBlLiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS4yIHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjIgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBtaWNoaQogICAgICAgIDoKICAgICAgICBbMS4yXSAKICAgICAgICAgICAgbm90ZSBhZGRlZCBhYm91dCBpbnN0YWxsLXB1YiB0YXJnZXQgRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuNCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS40IHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgZ3JlZ29yCiAgICAgICAgOgogICAgICAgIFsxLjRdIAogICAgICAgICAgICBEbyBub3Qgc2hvdyBwYWdlcyBoaWRkZW4gZnJvbSBuYXZpZ2F0aW9uIGluIHRoZSB0YWJzLCBlaXRoZXIuICBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS4yIHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjIgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBncmVnb3IKICAgICAgICA6CiAgICAgICAgWzEuMl0gCiAgICAgICAgICAgIERvIG5vdCBzaG93IHBhZ2VzIGhpZGRlbiBmcm9tIG5hdmlnYXRpb24gaW4gdGhlIHRhYnMsIGVpdGhlci4gIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjQgYWRkPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuNCBhZGQKICAgICAgICBieQogICAgICAgIGdyZWdvcgogICAgICAgIDoKICAgICAgICBbMS40XSAKICAgICAgICAgICAgQWRkZWQgV2ViREFWIHN1cHBvcnQuIFBhdGNoIGJ5IERvdWcgQ2hlc3RudXQsIHRoaXMgcmVzb2x2ZXMgaHR0cDovL2lzc3Vlcy5hcGFjaGUub3JnL2J1Z3ppbGxhL3Nob3dfYnVnLmNnaT9pZD0zNDk5NCBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS4yIHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjIgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBncmVnb3IKICAgICAgICA6CiAgICAgICAgWzEuMl0gCiAgICAgICAgICAgIE1hZGUgc3VyZSBsaW5rcyBzZW50IGJ5IG5vdGlmaWNhdGlvbiBlbWFpbHMgYXJlIHByb3hpZWQsIGlmIGFwcHJvcHJpYXRlLiBQYXRjaCBieSBTaW1vbiBMaXR3YW4sIHRoaXMgcmVzb2x2ZXMgaHR0cDovL2lzc3Vlcy5hcGFjaGUub3JnL2J1Z3ppbGxhL3Nob3dfYnVnLmNnaT9pZD0zNTI4NyBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgRG9jcyB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+RG9jcyB1cGRhdGUKICAgICAgICBieQogICAgICAgIGdyZWdvcgogICAgICAgIDoKICAgICAgICBbRG9jc10gCiAgICAgICAgICAgIEFkZGVkIG1vcmUgcHJvbWluZW50IGxpbmtzIHRvIHRoZSBkb3dubG9hZHMgYW5kIGNsYXJpZmllZCBwdXJwb3NlIG9mIGJpbmFyeSBkaXN0cmlidXRpb25zLiBQYXRjaCBieSBIdWJlcnR1cyBHcm9lcHBlciwgdGhpcyByZXNvbHZlcyBodHRwOi8vaXNzdWVzLmFwYWNoZS5vcmcvYnVnemlsbGEvc2hvd19idWcuY2dpP2lkPTM1MjcxIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjQgYWRkPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuNCBhZGQKICAgICAgICBieQogICAgICAgIGdyZWdvcgogICAgICAgIDoKICAgICAgICBbMS40XSAKICAgICAgICAgICAgYWRkZWQgeHNsIGZvciBjYWNoaW5nIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjQgYWRkPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuNCBhZGQKICAgICAgICBieQogICAgICAgIGdyZWdvcgogICAgICAgIDoKICAgICAgICBbMS40XSAKICAgICAgICAgICAgQWRkZWQgY29tcGF0aWJpbGl0eSBjbGFzc2VzIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjQgYWRkPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuNCBhZGQKICAgICAgICBieQogICAgICAgIGdyZWdvcgogICAgICAgIDoKICAgICAgICBbMS40XSAKICAgICAgICAgICAgQWRkZWQgY29tcGF0aWJpbGl0eSBjbGFzc2VzIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjQgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuNCB1cGRhdGUKICAgICAgICBieQogICAgICAgIGdyZWdvcgogICAgICAgIDoKICAgICAgICBbMS40XSAKICAgICAgICAgICAgUmVtb3ZlZCBwdWJsaXNoaW5nLCBhbnQgYW5kIHRhc2tzIGNsYXNzZXMuIFRoaXMgcmVzb2x2ZXMgaHR0cDovL2lzc3Vlcy5hcGFjaGUub3JnL2J1Z3ppbGxhL3Nob3dfYnVnLmNnaT9pZD0yNzMzNSBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS40IHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjQgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBncmVnb3IKICAgICAgICA6CiAgICAgICAgWzEuNF0gCiAgICAgICAgICAgIFVwZGF0ZWQgcnVzc2lhbiB0cmFuc2xhdGlvbi4gUGF0Y2ggYnkgQW50b24gS292YWxlbmtvLCB0aGlzIHJlc29sdmVzIGh0dHA6Ly9pc3N1ZXMuYXBhY2hlLm9yZy9idWd6aWxsYS9zaG93X2J1Zy5jZ2k/aWQ9MzQ3OTggRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuMiB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS4yIHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgZ3JlZ29yCiAgICAgICAgOgogICAgICAgIFsxLjJdIAogICAgICAgICAgICBVcGRhdGVkIHJ1c3NpYW4gdHJhbnNsYXRpb24uIFBhdGNoIGJ5IEFudG9uIEtvdmFsZW5rbywgdGhpcyByZXNvbHZlcyBodHRwOi8vaXNzdWVzLmFwYWNoZS5vcmcvYnVnemlsbGEvc2hvd19idWcuY2dpP2lkPTM0Nzk4IERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjIgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuMiB1cGRhdGUKICAgICAgICBieQogICAgICAgIGdyZWdvcgogICAgICAgIDoKICAgICAgICBbMS4yXSAKICAgICAgICAgICAgV29ya2VkIGFyb3VuZCBsYWNrIG9mIG5hbWVzcGFjZSBzdXBwb3J0IGluIHNvbWUgb2xkZXIgYnJvd3NlciBET00gaW1wbGVtZW50YXRpb25zIHRvIG1ha2UgdGhlIHNpdGV0cmVlIHdvcmsgYWdhaW4gb24gTmV0c2NhcGUgNy4gUGF0Y2ggYnkgQ2xpbnQgSGFycmlzLCB0aGlzIHJlc29sdmVzIGh0dHA6Ly9pc3N1ZXMuYXBhY2hlLm9yZy9idWd6aWxsYS9zaG93X2J1Zy5jZ2k/aWQ9MzUyMjcgRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuMiB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS4yIHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgZ3JlZ29yCiAgICAgICAgOgogICAgICAgIFsxLjJdIAogICAgICAgICAgICBGaXhlZCBpc3N1ZSB0aGF0IHN0cmlwcGVkIHRoZSBsZW55YSBuYW1lc3BhY2UgZnJvbSB0aGUgQlhFIGFzc2V0IHBvcHVwLiBQYXRjaCBieSBTaW1vbiBMaXR3YW4uIFRoaXMgcmVzb2x2ZXMgaHR0cDovL2lzc3Vlcy5hcGFjaGUub3JnL2J1Z3ppbGxhL3Nob3dfYnVnLmNnaT9pZD0zNTE1MyBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS40IHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjQgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBncmVnb3IKICAgICAgICA6CiAgICAgICAgWzEuNF0gCiAgICAgICAgICAgIEFkZGVkIGJ1aWxkLnByb3BlcnRpZXMgdG8gdGhlIFdpbmRvd3MgaW5zdGFsbGVyIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjIgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuMiB1cGRhdGUKICAgICAgICBieQogICAgICAgIGdyZWdvcgogICAgICAgIDoKICAgICAgICBbMS4yXSAKICAgICAgICAgICAgQWRkZWQgYnVpbGQucHJvcGVydGllcyB0byB0aGUgV2luZG93cyBpbnN0YWxsZXIgRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IERvY3MgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPkRvY3MgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBncmVnb3IKICAgICAgICA6CiAgICAgICAgW0RvY3NdIAogICAgICAgICAgICBDbGFyaWZpZWQgcHVycG9zZSBvZiBzb3VyY2UgYW5kIGJpbmFyeSB2ZXJzaW9ucy4gUGF0Y2ggYnkgSHViZXJ0dXMgR3JvZXBwZXIsIHRoaXMgcmVzb2x2ZXMgaHR0cDovL2lzc3Vlcy5hcGFjaGUub3JnL2J1Z3ppbGxhL3Nob3dfYnVnLmNnaT9pZD0zNTI0OCBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS40IHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjQgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBqd2thbHR6CiAgICAgICAgOgogICAgICAgIFsxLjRdIAogICAgICAgICAgICBbbWlub3IgY2hhbmdlXSBjaGVjayBmb3IgbnVsbCBmb3IgZWFzaWVyIHRyYWNpbmcgb2YgTnVsbFBvaW50ZXJFeGNlcHRpb24gd2hlbiBkb2N1bWVudCBpcyBjcmVhdGVkIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjIgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuMiB1cGRhdGUKICAgICAgICBieQogICAgICAgIGdyZWdvcgogICAgICAgIDoKICAgICAgICBbMS4yXSAKICAgICAgICAgICAgUmVtb3ZlZCB1bm5lY2Vzc2FyeSBpZiBzdGF0ZW1lbnRzIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjIgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuMiB1cGRhdGUKICAgICAgICBieQogICAgICAgIGdyZWdvcgogICAgICAgIDoKICAgICAgICBbMS4yXSAKICAgICAgICAgICAgU2V0IHNlcmlhbGl6ZXIgZm9yIEJYRSB1c2VjYXNlcyB0byBIVE1MIGJlY2F1c2UgdGhlcmUgYXJlIHRvbyBtYW55IHByb2JsZW1zIGZvciBKUyBpbnNpZGUgWEhUTUwgKHNlZSBodHRwOi8vaGl4aWUuY2gvYWR2b2NhY3kveGh0bWwpIFRoaXMgcmVzb2x2ZXMgaHR0cDovL2lzc3Vlcy5hcGFjaGUub3JnL2J1Z3ppbGxhL3Nob3dfYnVnLmNnaT9pZD0zNTE1MiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS40IHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjQgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBqd2thbHR6CiAgICAgICAgOgogICAgICAgIFsxLjRdIAogICAgICAgICAgICBbbWlub3IgY2hhbmdlXSBmaXhlZCB0eXBvIGluIGRvYyBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS40IHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjQgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBqd2thbHR6CiAgICAgICAgOgogICAgICAgIFsxLjRdIAogICAgICAgICAgICBbbWlub3IgY2hhbmdlXSBhZGRlZCBleHBsYW5hdGlvbiBmb3Igd29ya2Fyb3VuZCBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS40IHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjQgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBncmVnb3IKICAgICAgICA6CiAgICAgICAgWzEuNF0gCiAgICAgICAgICAgIFN3aXRjaGVkIGJsb2cgcHVibGljYXRpb24gdG8gdXNlIHRoZSBwdWJsaXNoIHVzZWNhc2UgaW5zdGVhZCBvZiBhbnQgdGFzayBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS40IHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjQgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBncmVnb3IKICAgICAgICA6CiAgICAgICAgWzEuNF0gCiAgICAgICAgICAgIEFkZGVkIHdvcmthcm91bmQgZm9yIGNvbGxhcHNlZCAmbHQ7dGV4dGFyZWEmZ3Q7LCAmbHQ7c2NyaXB0Jmd0OyBhbmQgJmx0O3N0eWxlJmd0OyBwcm9ibGVtIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjQgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuNCB1cGRhdGUKICAgICAgICBieQogICAgICAgIGdyZWdvcgogICAgICAgIDoKICAgICAgICBbMS40XSAKICAgICAgICAgICAgU3dpdGNoZWQgdG8gYSBMZW55YS1icmFuZGVkIGVycm9yIHNjcmVlbi4gTWFkZSBhbGwgZXJyb3Igc2NyZWVucyBJMThOLWF3YXJlLiBUaGlzIChwYXJ0aWFsbHkpIHJlc29sdmVzIGh0dHA6Ly9pc3N1ZXMuYXBhY2hlLm9yZy9idWd6aWxsYS9zaG93X2J1Zy5jZ2k/aWQ9MzQwMDMgRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IERvY3MgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPkRvY3MgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBncmVnb3IKICAgICAgICA6CiAgICAgICAgW0RvY3NdIAogICAgICAgICAgICBNYWRlIGRvY3MgdmFsaWQgYWdhaW4sIHBhdGNoIGJ5IEh1YmVydHVzIEdyb2VwcGVyLiBUaGlzIHJlc29sdmVzIGh0dHA6Ly9pc3N1ZXMuYXBhY2hlLm9yZy9idWd6aWxsYS9zaG93X2J1Zy5jZ2k/aWQ9MzUyMjEgRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuNCByZW1vdmU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS40IHJlbW92ZQogICAgICAgIGJ5CiAgICAgICAgZ3JlZ29yCiAgICAgICAgOgogICAgICAgIFsxLjRdIAogICAgICAgICAgICBSZW1vdmVkIHVudXNlZCBzaXRlbWFwLiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS40IHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjQgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBhbnRvbmlvCiAgICAgICAgOgogICAgICAgIFsxLjRdIAogICAgICAgICAgICBVcGRhdGUgYW50IHRvIDEuNi41IERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjQgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuNCB1cGRhdGUKICAgICAgICBieQogICAgICAgIGFudG9uaW8KICAgICAgICA6CiAgICAgICAgWzEuNF0gCiAgICAgICAgICAgIE1lcmdlIGZyb20gMS4yLjQtZGV2IERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjIgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuMiB1cGRhdGUKICAgICAgICBieQogICAgICAgIGFudG9uaW8KICAgICAgICA6CiAgICAgICAgWzEuMl0gCiAgICAgICAgICAgIFVwZGF0ZSBhbnQgdG8gMS42LjUgRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuMiB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS4yIHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgYW50b25pbwogICAgICAgIDoKICAgICAgICBbMS4yXSAKICAgICAgICAgICAgRml4IGNvcHlyaWdodCB5ZWFyIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjQgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuNCB1cGRhdGUKICAgICAgICBieQogICAgICAgIGdyZWdvcgogICAgICAgIDoKICAgICAgICBbMS40XSAKICAgICAgICAgICAgUmVtb3ZlZCB1bnVzZWQgbWVudXMgRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuNCBhZGQ8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS40IGFkZAogICAgICAgIGJ5CiAgICAgICAgZ3JlZ29yCiAgICAgICAgOgogICAgICAgIFsxLjRdIAogICAgICAgICAgICBBZGRlZCBtZXRhZGF0YSBmb3IgYmxvZyBmZWVkcywgbmVlZHMgdG8gYmUgaW5jb3Jwb3JhdGVkIGludG8gY3JlYXRvciAvIHB1Ymxpc2hlciBmb3IgdGhlIGJsb2cgcHVibGljYXRpb24gRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IERvY3MgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPkRvY3MgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICB0aG9yc3RlbgogICAgICAgIDoKICAgICAgICBbRG9jc10gCiAgICAgICAgICAgIGNoYW5nZWQgcHJvamVjdCBuYW1lIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjQgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuNCB1cGRhdGUKICAgICAgICBieQogICAgICAgIGdyZWdvcgogICAgICAgIDoKICAgICAgICBbMS40XSAKICAgICAgICAgICAgTWFkZSBzdXJlIHRoYXQgdGhlIGNhY2hlZCBmaWxlcyBhcmUgWEhUTUwgc3RyaWN0IHRvbyBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS40IHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjQgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBncmVnb3IKICAgICAgICA6CiAgICAgICAgWzEuNF0gCiAgICAgICAgICAgIFN3aXRjaGVkIHNlcmlhbGl6ZXJzIHRvIFhIVE1MIHN0cmljdCBhbmQgY29uc29saWRhdGVkIGVycm9yIGhhbmRsaW5nIHBpcGVsaW5lcyBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgRG9jcyB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+RG9jcyB1cGRhdGUKICAgICAgICBieQogICAgICAgIGdyZWdvcgogICAgICAgIDoKICAgICAgICBbRG9jc10gCiAgICAgICAgICAgIFR5cG8gZml4ZWQgRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IERvY3MgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPkRvY3MgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBncmVnb3IKICAgICAgICA6CiAgICAgICAgW0RvY3NdIAogICAgICAgICAgICBBZGRlZCBKYW5uIEZvcnJlciB0byB0aGUgY29tbWl0dGVycyBsaXN0LiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS4yIHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjIgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBhbmRyZWFzCiAgICAgICAgOgogICAgICAgIFsxLjJdIAogICAgICAgICAgICBhcHBsaWVkIHBhdGNoIGZvciBidWcgMzUyMDUsIHRoYW5rcyB0byBTaW1vbiBMaXR3YW4gRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuMiB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS4yIHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgYW5kcmVhcwogICAgICAgIDoKICAgICAgICBbMS4yXSAKICAgICAgICAgICAgYXBwbGllZCBwYXRjaCBmb3IgYnVnICMzNTA4OCwgdGhhbmtzIHRvIFNpbW9uIExpdHdhbiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS4yIHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjIgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBhbmRyZWFzCiAgICAgICAgOgogICAgICAgIFsxLjJdIAogICAgICAgICAgICBhcHBsaWVkIHBhdGNoIGZvciBidWcgIzM1MDg4LCBjcmVkaXRzIHRvIHNpbW9uIGxpdHdhbiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS40IHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjQgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBhbmRyZWFzCiAgICAgICAgOgogICAgICAgIFsxLjRdIAogICAgICAgICAgICByZWZhY3RvcmVkIHdvcmtmbG93IGNsYXNzZXMsIHRoaXMgbWluaW1pemVzIHRoZSBkZXBlbmRlbmNpZXMgYmV0d2VlbiBjb3JlIGFuZCB3b3JrZmxvdyBwYWNrYWdlIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjQgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuNCB1cGRhdGUKICAgICAgICBieQogICAgICAgIGFuZHJlYXMKICAgICAgICA6CiAgICAgICAgWzEuNF0gCiAgICAgICAgICAgIHJlZmFjdG9yZWQgd29ya2Zsb3cgY2xhc3NlcywgdGhpcyByZW1vdmVzIHJlZmVyZW5jZXMgZnJvbSB0aGUgY29yZSB0byB3b3JrZmxvdyBwYWNrYWdlcyBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS40IHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjQgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBhbmRyZWFzCiAgICAgICAgOgogICAgICAgIFsxLjRdIAogICAgICAgICAgICByZXZlcnRlZCBwaXBlbGluZSBvcmRlciAoc2l0ZSBhcmVhIHdhcyBicm9rZW4pIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjQgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuNCB1cGRhdGUKICAgICAgICBieQogICAgICAgIGFuZHJlYXMKICAgICAgICA6CiAgICAgICAgWzEuNF0gCiAgICAgICAgICAgIGZpeGVkIHBpcGVsaW5lIHN0cnVjdHVyZSAoZml4ZXMgYnVnICMzNTE3MSkgRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IFNpdGUgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPlNpdGUgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBncmVnb3IKICAgICAgICA6CiAgICAgICAgW1NpdGVdIAogICAgICAgICAgICBBZGRlZCBsaW5rIHRvIEFwYWNoZUNvbiBFdXJvcGUgMjAwNSBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS4yIHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjIgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBncmVnb3IKICAgICAgICA6CiAgICAgICAgWzEuMl0gCiAgICAgICAgICAgIENoYW5nZWQgaTE4biB0byB0YWtlIHRoZSBsYW5ndWFnZSBvZiB0aGUgZG9jdW1lbnQgaW50byBhY2NvdW50LCBub3QgdGhlIHJlcXVlc3QgbGFuZ3VhZ2UuIFBhdGNoIGJ5IFBhdWwgRXJjb2xpbm8uIFRoaXMgcmVzb2x2ZXMgaHR0cDovL2lzc3Vlcy5hcGFjaGUub3JnL2J1Z3ppbGxhL3Nob3dfYnVnLmNnaT9pZD0zNTA5OSBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS40IHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjQgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBncmVnb3IKICAgICAgICA6CiAgICAgICAgWzEuNF0gCiAgICAgICAgICAgIENoYW5nZWQgaTE4biB0byB0YWtlIHRoZSBsYW5ndWFnZSBvZiB0aGUgZG9jdW1lbnQgaW50byBhY2NvdW50LCBub3QgdGhlIHJlcXVlc3QgbGFuZ3VhZ2UuIFBhdGNoIGJ5IFBhdWwgRXJjb2xpbm8uIFRoaXMgcmVzb2x2ZXMgaHR0cDovL2lzc3Vlcy5hcGFjaGUub3JnL2J1Z3ppbGxhL3Nob3dfYnVnLmNnaT9pZD0zNTA5OSBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS4yIHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjIgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBncmVnb3IKICAgICAgICA6CiAgICAgICAgWzEuMl0gCiAgICAgICAgICAgIERlbGV0ZSB3YXJuaW5nIGZvciByZWZlcmVuY2luZyBmaWxlcyB3YXMgbm90IHByb3Blcmx5IHRyYW5zbGF0ZWQuIFBhdGNoIGJ5IEZlbGl4IFJvZXRoZW5iYWNoZXIgcmVzb2x2ZXMgdGhpcyBodHRwOi8vaXNzdWVzLmFwYWNoZS5vcmcvYnVnemlsbGEvc2hvd19idWcuY2dpP2lkPTM1MTg5IERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCBEb2NzIHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj5Eb2NzIHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgZ3JlZ29yCiAgICAgICAgOgogICAgICAgIFtEb2NzXSAKICAgICAgICAgICAgQWRkZWQgbmV3IGphcGFuZXNlIGxpdmUgc2l0ZSBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS40IHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjQgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBhbmRyZWFzCiAgICAgICAgOgogICAgICAgIFsxLjRdIAogICAgICAgICAgICBwdWJsaXNoOiBhZGQgc291cmNlIHJlcG9zaXRvcnkgbm9kZXMgdG8gbG9ja2VkIG9iamVjdHMsIHRoaXMgaXMgbmVjZXNzYXJ5IGJlY2F1c2Ugb2Ygd29ya2Zsb3cgY2hhbmdlcyBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS40IHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjQgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBhbmRyZWFzCiAgICAgICAgOgogICAgICAgIFsxLjRdIAogICAgICAgICAgICBtb3ZlZCBmdW5jdGlvbmFsaXR5IGZyb20gZGVmYXVsdHB1YiB1c2VjYXNlIHRvIGNvcmUgRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuNCByZW1vdmU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS40IHJlbW92ZQogICAgICAgIGJ5CiAgICAgICAgYW5kcmVhcwogICAgICAgIDoKICAgICAgICBbMS40XSAKICAgICAgICAgICAgcmVtb3ZlZCBvYnNvbGV0ZSBEb2N1bWVudFR5cGVSZXNvbHZlciBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS40IHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjQgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBhbmRyZWFzCiAgICAgICAgOgogICAgICAgIFsxLjRdIAogICAgICAgICAgICByZW1vdmVkIG9ic29sZXRlIFVSSVBhcmFtZXRlcml6ZXIgYW5kIERvY3VtZW50VHlwZVJlc29sdmVyIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjIgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuMiB1cGRhdGUKICAgICAgICBieQogICAgICAgIGdyZWdvcgogICAgICAgIDoKICAgICAgICBbMS4yXSAKICAgICAgICAgICAgTm8gbG9uZ2VyIGNoZWNrIHRoZSBsaXZlIGFyZWEgd2hlbiBkZWxldGluZyBhIGRvY3VtZW50LiBQYXRjaCBieSBGZWxpeCBSb2V0aGVuYmFjaGVyLCB0aGlzIHJlc29sdmVzIGh0dHA6Ly9pc3N1ZXMuYXBhY2hlLm9yZy9idWd6aWxsYS9zaG93X2J1Zy5jZ2k/aWQ9MzUxOTAgRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IERvY3MgYWRkPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPkRvY3MgYWRkCiAgICAgICAgYnkKICAgICAgICBhbmRyZWFzCiAgICAgICAgOgogICAgICAgIFtEb2NzXSAKICAgICAgICAgICAgYWRkZWQgcmVzb3VyY2UgdHlwZXMgZG9jdW1lbnRhdGlvbiBmb3IgMS40IERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjQgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuNCB1cGRhdGUKICAgICAgICBieQogICAgICAgIGFuZHJlYXMKICAgICAgICA6CiAgICAgICAgWzEuNF0gCiAgICAgICAgICAgIGFkZGVkIHJlc291cmNlLXR5cGUgZGVmaW5pdGlvbnMgdG8gZGVmYXVsdCBwdWIgcHVibGljYXRpb24ueGNvbmYgRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuNCByZW1vdmU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS40IHJlbW92ZQogICAgICAgIGJ5CiAgICAgICAgYW5kcmVhcwogICAgICAgIDoKICAgICAgICBbMS40XSAKICAgICAgICAgICAgcmVtb3ZlZCBvbGQgZG9jdHlwZXMgZGlyZWN0b3J5IGZyb20gYmxvZyBwdWIgRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuNCBhZGQ8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS40IGFkZAogICAgICAgIGJ5CiAgICAgICAgYW5kcmVhcwogICAgICAgIDoKICAgICAgICBbMS40XSAKICAgICAgICAgICAgYWRkZWQgc2NoZW1hcyB0byByZXNvdXJjZXMgZGlyIGluIGJsb2cgcHViIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjQgYWRkPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuNCBhZGQKICAgICAgICBieQogICAgICAgIGFuZHJlYXMKICAgICAgICA6CiAgICAgICAgWzEuNF0gCiAgICAgICAgICAgIG1vdmVkIGRvY3R5cGUgZGVmaW5pdGlvbnMgaW4gYmxvZyBwdWJsaWNhdGlvbiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS40IHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjQgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBhbmRyZWFzCiAgICAgICAgOgogICAgICAgIFsxLjRdIAogICAgICAgICAgICByZW1vdmVkIHNjaGVkdWxlciBtZW51IGl0ZW0gRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuNCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS40IHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgYW5kcmVhcwogICAgICAgIDoKICAgICAgICBbMS40XSAKICAgICAgICAgICAgcmVmbGVjdGluZyBuZXcgc2NoZW1hIGxvY2F0aW9ucyBpbiBzaXRlbWFwcy4gQWN0dWFsbHkgdGhhdCBzaG91bGQgYmUgaGFuZGxlZCBieSBjYWxscyB0byB0aGUgQVBJIChlLmcuIHZpYSBpbnB1dCBtb2R1bGVzKSBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS40IHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjQgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBhbmRyZWFzCiAgICAgICAgOgogICAgICAgIFsxLjRdIAogICAgICAgICAgICByZWZsZWN0aW5nIG5ldyBzY2hlbWEgbG9jYXRpb25zIGluIHNpdGVtYXBzLiBBY3R1YWxseSB0aGF0IHNob3VsZCBiZSBoYW5kbGVkIGJ5IGNhbGxzIHRvIHRoZSBBUEkgKGUuZy4gdmlhIGlucHV0IG1vZHVsZXMpIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjQgYWRkPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuNCBhZGQKICAgICAgICBieQogICAgICAgIGFuZHJlYXMKICAgICAgICA6CiAgICAgICAgWzEuNF0gCiAgICAgICAgICAgIGFkZGVkIGhvbWVwYWdlIHNjaGVtYSBkZWZpbml0aW9uIHRvIHJlc291cmNlcy9zY2hlbWFzIGRpciBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS40IGFkZDwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjQgYWRkCiAgICAgICAgYnkKICAgICAgICBhbmRyZWFzCiAgICAgICAgOgogICAgICAgIFsxLjRdIAogICAgICAgICAgICBhZGRlZCBzY2hlbWFzIHRvIHJlc291cmNlcyBkaXJlY3RvcnkgRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuNCBhZGQ8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS40IGFkZAogICAgICAgIGJ5CiAgICAgICAgYW5kcmVhcwogICAgICAgIDoKICAgICAgICBbMS40XSAKICAgICAgICAgICAgYWRkZWQgZGVmYXVsdCBwdWIgZG9jdHlwZSBkZWZpbml0aW9uIHRvIGxlbnlhL2RvY3R5cGVzIGRpcmVjdG9yeSBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS40IGFkZDwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjQgYWRkCiAgICAgICAgYnkKICAgICAgICBhbmRyZWFzCiAgICAgICAgOgogICAgICAgIFsxLjRdIAogICAgICAgICAgICBhZGRlZCByZXNvdXJjZSB0eXBlIGRlZmluaXRpb25zIHRvIGNvcmUgRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuNCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS40IHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgYW5kcmVhcwogICAgICAgIDoKICAgICAgICBbMS40XSAKICAgICAgICAgICAgKDEpIGFkZGVkIGZhbGxiYWNrIGZvciBkb2N0eXBlcywgdGhpcyBtZWFucyBkb2N0eXBlcyBjYW4gYmUgc2VydmVkIGJ5IHRoZSBjb3JlICgxc3Qgc3RlcCB0b3dhcmRzIHJlc291cmNlIHR5cGUgcGFja2FnZXMpICgyKSBzdG9yZSB3b3JrZmxvdyBzdGF0ZSBhbmQgdmFyaWFibGUgdmFsdWVzIGluIG1ldGEgZGF0YS4gY3VycmVudGx5IHRoZSBoaXN0b3J5IGlzIHN0b3JlZCB0aGVyZSBhcyB3ZWxsLCB0aGlzIGlzIHN1YmplY3QgdG8gY2hhbmdlcy4gRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuNCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS40IHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgandrYWx0egogICAgICAgIDoKICAgICAgICBbMS40XSAKICAgICAgICAgICAgW21pbm9yIGNoYW5nZV0gc2V0IG1pc3Npbmcgc3ZuOmVvbC1zdHlsZSBhbmQgc3ZuOmtleXdvcmRzIHByb3BlcnRpZXMgaW4gSmF2YSBmaWxlcyBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS40IHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjQgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBncmVnb3IKICAgICAgICA6CiAgICAgICAgWzEuNF0gCiAgICAgICAgICAgIFVzZSBmYWxsYmFjayBzb3VyY2UgdG8gcmVzb2x2ZSBzYW1wbGUgY29udGVudCBsb2NhdGlvbi4gVGhpcyBlbmFibGVzIHRoZSBjcmVhdGUgdXNlY2FzZSB0byB3b3JrIGluIHB1YmxpY2F0aW9ucyB0aGF0IHVzZSBwdWJsaWNhdGlvbiB0ZW1wbGF0aW5nLiBQYXRjaCBieSBEb3VnIENoZXN0bnV0LiBUaGlzIHJlc29sdmVzIGh0dHA6Ly9pc3N1ZXMuYXBhY2hlLm9yZy9idWd6aWxsYS9zaG93X2J1Zy5jZ2k/aWQ9MzUxMzIgRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuNCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS40IHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgZ3JlZ29yCiAgICAgICAgOgogICAgICAgIFsxLjRdIAogICAgICAgICAgICBBZGRlZCBwb2xpY2VzIHRvIHNvdXJjZXMgdG8gY29weSBmb3IgcHVibGljYXRpb24gaW5zdGFuY2lhdG9yLCBwYXRjaCBieSBEb3VnIENoZXN0bnV0LiBUaGlzIHJlc29sdmVzIGh0dHA6Ly9pc3N1ZXMuYXBhY2hlLm9yZy9idWd6aWxsYS9zaG93X2J1Zy5jZ2k/aWQ9MzUxNjcgRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuNCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS40IHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgZ3JlZ29yCiAgICAgICAgOgogICAgICAgIFsxLjRdIAogICAgICAgICAgICBBZGRlZCBmYWxsYmFja3MgdG8gZW5hYmxlIHB1YmxpY2F0aW9uIHRlbXBsYXRpbmcgd2hlcmUgbmVjZXNzYXJ5LiBQYXRjaCBieSBEb3VnIENoZXN0bnV0LCAgdGhpcyByZXNvbHZlcyBodHRwOi8vaXNzdWVzLmFwYWNoZS5vcmcvYnVnemlsbGEvc2hvd19idWcuY2dpP2lkPTM1MTY4IERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjQgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuNCB1cGRhdGUKICAgICAgICBieQogICAgICAgIGFuZHJlYXMKICAgICAgICA6CiAgICAgICAgWzEuNF0gCiAgICAgICAgICAgIGNyZWF0ZS1kb2N1bWVudCB1c2VjYXNlOiBjaGVja2luZyBzZWxlY3RlZCByZWxhdGlvbiBpbiBKWCB0ZW1wbGF0ZSwgdmFsaWRhdGUgcmVsYXRpb24gaW4gZXhlYyBjb25kaXRpb25zLCBzZXQgaW5pdGlhbCByZWxhdGlvbiAnY2hpbGQnIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjQgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuNCB1cGRhdGUKICAgICAgICBieQogICAgICAgIGdyZWdvcgogICAgICAgIDoKICAgICAgICBbMS40XSAKICAgICAgICAgICAgQWxsb3cgdG8gc2V0IHRoZSByZWxhdGlvbiBvZiBhIG5ldyBkb2N1bWVudCB0byBhbiBleGlzdGluZyBvbmUsIHRoYW5rcyB0byBhIHBhdGNoIGJ5IERvdWcgQ2hlc3RudXQuIFRoaXMgcmVzb2x2ZXMgaHR0cDovL2lzc3Vlcy5hcGFjaGUub3JnL2J1Z3ppbGxhL3Nob3dfYnVnLmNnaT9pZD0zNTEzMCAgRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuNCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS40IHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgYW5kcmVhcwogICAgICAgIDoKICAgICAgICBbMS40XSAKICAgICAgICAgICAgYWRkZWQgSVBSYW5nZS5kZWxldGUoKSBtZXRob2QgRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IERvY3MgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPkRvY3MgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBhbmRyZWFzCiAgICAgICAgOgogICAgICAgIFtEb2NzXSAKICAgICAgICAgICAgYWRkZWQgaW5mb3JtYXRpb24gYWJvdXQgZXhpdCB1c2VjYXNlcyBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS40IHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjQgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBhbmRyZWFzCiAgICAgICAgOgogICAgICAgIFsxLjRdIAogICAgICAgICAgICBbbWlub3IgY2hhbmdlXSByZW1vdmVkIGludmFsaWQgamF2YWRvYyB0YWcgRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuNCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS40IHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgYW5kcmVhcwogICAgICAgIDoKICAgICAgICBbMS40XSAKICAgICAgICAgICAgY29uZmlndXJlIGV4aXQgdXNlY2FzZXMgaW4gY29jb29uLnhjb25mIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjQgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuNCB1cGRhdGUKICAgICAgICBieQogICAgICAgIGFuZHJlYXMKICAgICAgICA6CiAgICAgICAgWzEuNF0gCiAgICAgICAgICAgIEluc3RhbmNpYXRvcjogYWxsb3cgdG8gY29weSBkaXJlY3RvcmllcyAoY3JlZGl0cyB0byBEb3VnIENoZXN0bnV0KSBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgRG9jcyBhZGQ8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+RG9jcyBhZGQKICAgICAgICBieQogICAgICAgIGdyZWdvcgogICAgICAgIDoKICAgICAgICBbRG9jc10gCiAgICAgICAgICAgIEFkZGVkIGltcHJvdmVkIHNjcmVlbnNob3RzIHRvIHRoZSBzaXRlLiBUaGFua3MgdG8gSHViZXJ0dXMgR3JvZXBwZXIuIFRoaXMgcmVzb2x2ZXMgaHR0cDovL2lzc3Vlcy5hcGFjaGUub3JnL2J1Z3ppbGxhL3Nob3dfYnVnLmNnaT9pZD0zNDU5NyBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS4yIHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjIgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBncmVnb3IKICAgICAgICA6CiAgICAgICAgWzEuMl0gCiAgICAgICAgICAgIFJlLWNvbW1pdCBqYXBhbmVzZSB0cmFuc2xhdGlvbnMgaW4gYW4gZWZmb3J0IHRvIHByZXNldmUgVVRGLTggZW5jb2RpbmcgRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuNCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS40IHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgZ3JlZ29yCiAgICAgICAgOgogICAgICAgIFsxLjRdIAogICAgICAgICAgICBSZS1jb21taXQgamFwYW5lc2UgdHJhbnNsYXRpb25zIGluIGFuIGVmZm9ydCB0byBwcmVzZXZlIFVURi04IGVuY29kaW5nIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjQgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuNCB1cGRhdGUKICAgICAgICBieQogICAgICAgIGdyZWdvcgogICAgICAgIDoKICAgICAgICBbMS40XSAKICAgICAgICAgICAgU3dpdGNoIHNlcmlhbGl6YXRpb24gdG8geGh0bWwgRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuNCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS40IHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgZ3JlZ29yCiAgICAgICAgOgogICAgICAgIFsxLjRdIAogICAgICAgICAgICBSZW1vdmVkIHVudXNlZCBjb21wb25lbnQgZGVjbGFyYXRpb25zIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjQgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuNCB1cGRhdGUKICAgICAgICBieQogICAgICAgIGdyZWdvcgogICAgICAgIDoKICAgICAgICBbMS40XSAKICAgICAgICAgICAgW21pbm9yIGNoYW5nZV0gcmVzb2x2ZWQgdmFyaWFibGUgbmFtZSBjbGFzaGVzIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjQgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuNCB1cGRhdGUKICAgICAgICBieQogICAgICAgIGdyZWdvcgogICAgICAgIDoKICAgICAgICBbMS40XSAKICAgICAgICAgICAgU2hvcnRlbmVkIGV4Y2VwdGlvbiBoYW5kbGluZyBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS40IHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjQgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBncmVnb3IKICAgICAgICA6CiAgICAgICAgWzEuNF0gCiAgICAgICAgICAgIFNob3J0ZW5lZCBleGNlcHRpb24gaGFuZGxpbmcgRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuNCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS40IHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgZ3JlZ29yCiAgICAgICAgOgogICAgICAgIFsxLjRdIAogICAgICAgICAgICBBcHBsaWVkIHBhdGNoIGJ5IERvdWcgQ2hlc3RudXQgdG8gc3VwcG9ydCBiYXNpYyBhdXRoZW50aWNhdGlvbi4gVGhpcyByZXNvbHZlcyBodHRwOi8vaXNzdWVzLmFwYWNoZS5vcmcvYnVnemlsbGEvc2hvd19idWcuY2dpP2lkPTM0OTY0IGFuZCBwYXZlcyB0aGUgd2F5IGZvciBXZWJEQVYgc3VwcG9ydC4gRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IFNhbmRib3ggdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPlNhbmRib3ggdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBncmVnb3IKICAgICAgICA6CiAgICAgICAgW1NhbmRib3hdIAogICAgICAgICAgICBBZGRlZCBjZm9ybXMgY2xlYW51cCBwYXRjaCBieSBNYXhpbSBXYXNpbGlldi4gVGhpcyByZXNvbHZlcyBodHRwOi8vaXNzdWVzLmFwYWNoZS5vcmcvYnVnemlsbGEvc2hvd19idWcuY2dpP2lkPTM0NTYyIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjQgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuNCB1cGRhdGUKICAgICAgICBieQogICAgICAgIGFuZHJlYXMKICAgICAgICA6CiAgICAgICAgWzEuNF0gCiAgICAgICAgICAgIGFkZGVkIGVycm9yIG1lc3NhZ2VzIHRvIGFyY2hpdmUuanggRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuNCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS40IHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgYW5kcmVhcwogICAgICAgIDoKICAgICAgICBbMS40XSAKICAgICAgICAgICAgYWRkZWQgUHJveHlVcmxNb2R1bGUgKEJ1ZyAjMzM3NDIpLCBjcmVkaXRzIHRvIEZlbGl4IFJvZXRoZW5iYWNoZXIgRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuNCBhZGQ8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS40IGFkZAogICAgICAgIGJ5CiAgICAgICAgYW5kcmVhcwogICAgICAgIDoKICAgICAgICBbMS40XSAKICAgICAgICAgICAgYWRkZWQgYXJjaGl2ZSBhbmQgcmVzdG9yZSB1c2VjYXNlIGhhbmRsZXJzIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjIgYWRkPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuMiBhZGQKICAgICAgICBieQogICAgICAgIGFuZHJlYXMKICAgICAgICA6CiAgICAgICAgWzEuMl0gCiAgICAgICAgICAgIGFkZGVkIFByb3h5VXJsTW9kdWxlIChCdWcgIzMzNzQyKSwgY3JlZGl0cyB0byBGZWxpeCBSb2V0aGVuYmFjaGVyIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjQgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuNCB1cGRhdGUKICAgICAgICBieQogICAgICAgIGFuZHJlYXMKICAgICAgICA6CiAgICAgICAgWzEuNF0gCiAgICAgICAgICAgIGZvcndhcmQgcXVlcnkgc3RyaW5nIGR1cmluZyBsb2dpbiB1c2VjYXNlIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjQgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuNCB1cGRhdGUKICAgICAgICBieQogICAgICAgIGFuZHJlYXMKICAgICAgICA6CiAgICAgICAgWzEuNF0gCiAgICAgICAgICAgIEluc3RhbnRpYXRvcjogY29weSB1c2VjYXNlLXBvbGljaWVzLnhtbCBhbmQgaW5kZXhfZW4ueG1sIG1ldGEgZmlsZSBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS40IHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjQgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBhbmRyZWFzCiAgICAgICAgOgogICAgICAgIFsxLjRdIAogICAgICAgICAgICBbbWlub3IgY2hhbmdlXSBmaXhlZCBxdW90YXRpb24gbWFyayBpbiBlcnJvciBtZXNzYWdlIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjIgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuMiB1cGRhdGUKICAgICAgICBieQogICAgICAgIGFuZHJlYXMKICAgICAgICA6CiAgICAgICAgWzEuMl0gCiAgICAgICAgICAgIGFwcGx5IHBhdGNoIGZvciBidWcgIzM1MDYyIChzdHJhbmdlIGNoYXJhY3RlcnMgaW4gdGV4dGFyZWEtZmllbGRzIGluIElFKSwgY3JlZGl0cyB0byBTaW1vbiBMaXR3YW4gRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuNCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS40IHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgYW5kcmVhcwogICAgICAgIDoKICAgICAgICBbMS40XSAKICAgICAgICAgICAgW21pbm9yIGNoYW5nZV0gYWRkZWQgc29tZSBqYXZhZG9jcyBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS40IHJlbW92ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjQgcmVtb3ZlCiAgICAgICAgYnkKICAgICAgICBhbmRyZWFzCiAgICAgICAgOgogICAgICAgIFsxLjRdIAogICAgICAgICAgICByZW1vdmVkIG9ic29sZXRlIHBhcmFtZXRlci1kb2N0eXBlLnhtYXAgRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuNCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS40IHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgYW5kcmVhcwogICAgICAgIDoKICAgICAgICBbMS40XSAKICAgICAgICAgICAgcGF0Y2ggc2l0ZXRyZWUgamF2YXNjcmlwdCB0byBhdm9pZCBlcnJvciByZS4gbm9uLWxpbmtlZCBub2RlcyBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS40IHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjQgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBhbmRyZWFzCiAgICAgICAgOgogICAgICAgIFsxLjRdIAogICAgICAgICAgICByZXBsYWNlIERvY3VtZW50VHlwZVJlc29sdmVyIGJ5IGRvY3VtZW50LmdldFJlc291cmNlVHlwZSgpIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjQgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuNCB1cGRhdGUKICAgICAgICBieQogICAgICAgIGFuZHJlYXMKICAgICAgICA6CiAgICAgICAgWzEuNF0gCiAgICAgICAgICAgIGRpc2FibGUgYXJlYSBub2RlcyBpbiBzaXRldHJlZSBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS40IHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjQgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBhbmRyZWFzCiAgICAgICAgOgogICAgICAgIFsxLjRdIAogICAgICAgICAgICBbbWlub3IgY2hhbmdlXSB1c2UgYmFja2dyb3VuZCBpbnN0ZWFkIG9mIHVuZGVybGluZSBmb3IgaG92ZXJpbmcgaW4gc2l0ZXRyZWUgQ1NTIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjQgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuNCB1cGRhdGUKICAgICAgICBieQogICAgICAgIGFuZHJlYXMKICAgICAgICA6CiAgICAgICAgWzEuNF0gCiAgICAgICAgICAgIGZpeGVkIHNpdGV0cmVlIENTUyBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS40IHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjQgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBhbmRyZWFzCiAgICAgICAgOgogICAgICAgIFsxLjRdIAogICAgICAgICAgICByZW1vdmVkIGluZm8gYXJlYSBwcmVmaXggRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuMiB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS4yIHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgbWljaGkKICAgICAgICA6CiAgICAgICAgWzEuMl0gCiAgICAgICAgICAgIFhvcHVzIHBpcGVsaW5lIHZpZXcgYWRkZWQgaW4gb3JkZXIgdG8gYWxsb3cgYmV0dGVyIGRlYnVnZ2luZyBhbmQgaWxsdXN0cmF0aW5nIGhvdyBYb3B1cyBuZWVkcyB0byBiZSBhdHRhY2hlZCBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS4yIHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjIgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBhbmRyZWFzCiAgICAgICAgOgogICAgICAgIFsxLjJdIAogICAgICAgICAgICBjb21taXQgcGF0Y2ggZm9yIGJ1ZyAjMzUwNDEgKG5vIGdlcm1hbiB0cmFuc2xhdGlvbnMgZm9yIGVycm9ycyBpbiBhZGRVc2VyIEdVSSksIGNyZWRpdHMgdG8gU2ltb24gTGl0d2FuIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjQgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuNCB1cGRhdGUKICAgICAgICBieQogICAgICAgIGdyZWdvcgogICAgICAgIDoKICAgICAgICBbMS40XSAKICAgICAgICAgICAgVXBkYXRlZCB0aGUgcnVzc2lhbiB0cmFuc2xhdGlvbi4gVGhhbmtzIHRvIHFNYXggRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuMiB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS4yIHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgZ3JlZ29yCiAgICAgICAgOgogICAgICAgIFsxLjJdIAogICAgICAgICAgICBVcGRhdGVkIHRoZSBydXNzaWFuIHRyYW5zbGF0aW9uLiBUaGFua3MgdG8gcU1heCBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgRG9jcyB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+RG9jcyB1cGRhdGUKICAgICAgICBieQogICAgICAgIGdyZWdvcgogICAgICAgIDoKICAgICAgICBbRG9jc10gCiAgICAgICAgICAgIENsYXJpZmllZCB0aGUgVG9tY2F0IHZlcnNpb25zIExlbnlhIHJ1bnMgb24gaW4gdGhlIGluc3RhbGwgaW5zdHJ1Y3Rpb25zIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjIgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuMiB1cGRhdGUKICAgICAgICBieQogICAgICAgIGdyZWdvcgogICAgICAgIDoKICAgICAgICBbMS4yXSAKICAgICAgICAgICAgTm8gbG9uZ2VyIGVtaXQgZGVidWcgbWVzc2FnZXMgd2hlbiBzdGFydGluZyBsZW55YSBvbiB3aW5kb3dzIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjQgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuNCB1cGRhdGUKICAgICAgICBieQogICAgICAgIGdyZWdvcgogICAgICAgIDoKICAgICAgICBbMS40XSAKICAgICAgICAgICAgTm8gbG9uZ2VyIGVtaXQgZGVidWcgbWVzc2FnZXMgd2hlbiBzdGFydGluZyBsZW55YSBvbiB3aW5kb3dzIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjQgcmVtb3ZlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuNCByZW1vdmUKICAgICAgICBieQogICAgICAgIGdyZWdvcgogICAgICAgIDoKICAgICAgICBbMS40XSAKICAgICAgICAgICAgTm8gbG9uZ2VyIHVzZWQgRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuNCByZW1vdmU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS40IHJlbW92ZQogICAgICAgIGJ5CiAgICAgICAgZ3JlZ29yCiAgICAgICAgOgogICAgICAgIFsxLjRdIAogICAgICAgICAgICBObyBsb25nZXIgdXNlZCBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS40IHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjQgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBncmVnb3IKICAgICAgICA6CiAgICAgICAgWzEuNF0gCiAgICAgICAgICAgIE5vIGxvbmdlciBjYWxsIGluaXQgdHdpY2UsIGRvIG5vdCBjYWxsIGNvY29vbiByZXNvdXJjZXMgdG8gd2ViYXBwIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjQgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuNCB1cGRhdGUKICAgICAgICBieQogICAgICAgIGFuZHJlYXMKICAgICAgICA6CiAgICAgICAgWzEuNF0gCiAgICAgICAgICAgIHJlbW92ZSBpbmZvLSBhcmVhIHByZWZpeCBmcm9tIHNpdGV0cmVlIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjQgcmVtb3ZlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuNCByZW1vdmUKICAgICAgICBieQogICAgICAgIGFuZHJlYXMKICAgICAgICA6CiAgICAgICAgWzEuNF0gCiAgICAgICAgICAgIHJlbW92aW5nIG9ic29sZXRlIGluZm8geHNsdCBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS40IHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjQgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBhbmRyZWFzCiAgICAgICAgOgogICAgICAgIFsxLjRdIAogICAgICAgICAgICBkb24ndCB1c2UgaW5mby0gYXJlYSBwcmVmaXggaW4gbWVudTJ4aHRtbC54c2wsIGFkZCBsZW55YS5leGl0VXNlY2FzZSBwYXJhbWV0ZXIgRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuNCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS40IHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgYW5kcmVhcwogICAgICAgIDoKICAgICAgICBbMS40XSAKICAgICAgICAgICAgZml4ZWQgbWV0YSBkYXRhIFVSTCBpbiBtZW51IERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjQgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuNCB1cGRhdGUKICAgICAgICBieQogICAgICAgIGFuZHJlYXMKICAgICAgICA6CiAgICAgICAgWzEuNF0gCiAgICAgICAgICAgIGFkZGVkIEFic3RyYWN0VXNlY2FzZS5zZXRFeGl0VXNlY2FzZSgpIG1ldGhvZCBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS40IHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjQgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBncmVnb3IKICAgICAgICA6CiAgICAgICAgWzEuNF0gCiAgICAgICAgICAgIFJlbW92ZWQgb2Jzb2xldGUgYXNzZXQgdXNlY2FzZSBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS40IHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjQgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBhbmRyZWFzCiAgICAgICAgOgogICAgICAgIFsxLjRdIAogICAgICAgICAgICBhZGRlZCBzaXplIGF0dHJpYnV0ZSB0byBhc3NldCB1cGxvYWQgRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuNCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS40IHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgYW5kcmVhcwogICAgICAgIDoKICAgICAgICBbMS40XSAKICAgICAgICAgICAgYWRkZWQgc2l6ZSBhdHRyaWJ1dGUgdG8gYXNzZXQgdXBsb2FkIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjQgcmVtb3ZlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuNCByZW1vdmUKICAgICAgICBieQogICAgICAgIGFuZHJlYXMKICAgICAgICA6CiAgICAgICAgWzEuNF0gCiAgICAgICAgICAgIHJlbW92ZWQgb2Jzb2xldGUgQlhFIGZsb3dzY3JpcHQgRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuNCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS40IHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgYW5kcmVhcwogICAgICAgIDoKICAgICAgICBbMS40XSAKICAgICAgICAgICAgW21pbm9yIGNoYW5nZV0gYWRkZWQgamF2YWRvY3MgRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuNCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS40IHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgYW5kcmVhcwogICAgICAgIDoKICAgICAgICBbMS40XSAKICAgICAgICAgICAgcG9ydGVkIEJYRSB0byB1c2VjYXNlIGZyYW1ld29yayBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS40IHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjQgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBhbmRyZWFzCiAgICAgICAgOgogICAgICAgIFsxLjRdIAogICAgICAgICAgICBwb3J0ZWQgQlhFIHRvIHVzZWNhc2UgZnJhbWV3b3JrIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjQgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuNCB1cGRhdGUKICAgICAgICBieQogICAgICAgIGFuZHJlYXMKICAgICAgICA6CiAgICAgICAgWzEuNF0gCiAgICAgICAgICAgIHBvcnRlZCBCWEUgdG8gdXNlY2FzZSBmcmFtZXdvcmsgRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuNCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS40IHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgYW5kcmVhcwogICAgICAgIDoKICAgICAgICBbMS40XSAKICAgICAgICAgICAgZWRpdERvY3VtZW50LmpzOiBhZGRlZCBwcmUtZXhlY3V0aW9uIGVycm9yIGNoZWNraW5nIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjQgYWRkPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuNCBhZGQKICAgICAgICBieQogICAgICAgIGFuZHJlYXMKICAgICAgICA6CiAgICAgICAgWzEuNF0gCiAgICAgICAgICAgIGFkZGVkIEJYRSBKWCB0ZW1wbGF0ZSBhbmQgc3R5bGVzaGVldHMgRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuNCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS40IHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgYW5kcmVhcwogICAgICAgIDoKICAgICAgICBbMS40XSAKICAgICAgICAgICAgcGFnZTJ4aHRtbDogZm9yd2FyZCAmbHQ7cGFnZTpib2R5Jmd0OyBhdHRyaWJ1dGVzIHRvICZsdDt4aHRtbDpib2R5Jmd0OyBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS40IGFkZDwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjQgYWRkCiAgICAgICAgYnkKICAgICAgICBhbmRyZWFzCiAgICAgICAgOgogICAgICAgIFsxLjRdIAogICAgICAgICAgICBhZGRlZCBCWEUgdXNlY2FzZSBoYW5kbGVyIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjQgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuNCB1cGRhdGUKICAgICAgICBieQogICAgICAgIGFuZHJlYXMKICAgICAgICA6CiAgICAgICAgWzEuNF0gCiAgICAgICAgICAgIHJlbW92ZWQgb2Jzb2xldGUgUG9saWN5SGVscGVyIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjQgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuNCB1cGRhdGUKICAgICAgICBieQogICAgICAgIGFuZHJlYXMKICAgICAgICA6CiAgICAgICAgWzEuNF0gCiAgICAgICAgICAgIGZpeGVkIGNyZWRlbnRpYWwgYWRkaW5nK2RlbGV0aW9uIG9uIEFDIHRhYiB1c2VjYXNlcyBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS40IHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjQgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBqd2thbHR6CiAgICAgICAgOgogICAgICAgIFsxLjRdIAogICAgICAgICAgICBbbWlub3IgY2hhbmdlXSBzZXQgc3ZuIHByb3AgRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuNCBhZGQ8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS40IGFkZAogICAgICAgIGJ5CiAgICAgICAgYW5kcmVhcwogICAgICAgIDoKICAgICAgICBbMS40XSAKICAgICAgICAgICAgYWRkZWQgSlggdGVtcGxhdGUgZm9yIEFDIGxpdmUgdGFiIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjQgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuNCB1cGRhdGUKICAgICAgICBieQogICAgICAgIGFuZHJlYXMKICAgICAgICA6CiAgICAgICAgWzEuNF0gCiAgICAgICAgICAgIHNob3dpbmcgZXhpc3RpbmcgY3JlZGVudGlhbHMgb24gQUMgdGFicyBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS40IHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjQgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBhbmRyZWFzCiAgICAgICAgOgogICAgICAgIFsxLjRdIAogICAgICAgICAgICBhZGRlZCBjcmVkZW50aWFsIGZvcm1zIHRvIEFDIHVzZWNhc2UgdmlldyBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS40IHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjQgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBqd2thbHR6CiAgICAgICAgOgogICAgICAgIFsxLjRdIAogICAgICAgICAgICBbbWlub3IgY2hhbmdlXSBhZGRlZCBkZWJ1ZyBtZXNzYWdlcyBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS40IHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjQgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBhbmRyZWFzCiAgICAgICAgOgogICAgICAgIFsxLjRdIAogICAgICAgICAgICBmaXhlZCBTU0wgZm9ybSBpbiBBQyB1c2VjYXNlcyBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS40IHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjQgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBhbmRyZWFzCiAgICAgICAgOgogICAgICAgIFsxLjRdIAogICAgICAgICAgICBmaXhlZCBzaXRldHJlZSBKUyBsaW5rcyBpbiBzaXRlIGFyZWEgcGFnZSBoZWFkIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjIgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuMiB1cGRhdGUKICAgICAgICBieQogICAgICAgIGdyZWdvcgogICAgICAgIDoKICAgICAgICBbMS4yXSAKICAgICAgICAgICAgUHJvcGVybHkgZXNjYXBlIHdhcm5pbmdzIGluIHZhbGlkYXRpb24uanMgVGhpcyByZXNvbHZlcyBodHRwOi8vaXNzdWVzLmFwYWNoZS5vcmcvYnVnemlsbGEvc2hvd19idWcuY2dpP2lkPTM1MDIyIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjQgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuNCB1cGRhdGUKICAgICAgICBieQogICAgICAgIGp3a2FsdHoKICAgICAgICA6CiAgICAgICAgWzEuNF0gCiAgICAgICAgICAgIFttaW5vciBjaGFuZ2VdIHNldCBzdm4gcHJvcCBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS40IHJlbW92ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjQgcmVtb3ZlCiAgICAgICAgYnkKICAgICAgICBncmVnb3IKICAgICAgICA6CiAgICAgICAgWzEuNF0gCiAgICAgICAgICAgIFJlbW92ZWQgb2Jzb2xldGVkIHNpdGUgbWFuYWdlbWVudCBhbnQgdGFza3MgRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IERvY3MgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPkRvY3MgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBqd2thbHR6CiAgICAgICAgOgogICAgICAgIFtEb2NzXSAKICAgICAgICAgICAgaW1wcm92ZWQgZXhwbGFuYXRpb24gb2YgTERBUCBpbnRlZ3JhdGlvbiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS4yIHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjIgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBlZGl0aAogICAgICAgIDoKICAgICAgICBbMS4yXSAKICAgICAgICAgICAgVGhhbmtzIHRvIFNpbW9uIExpdHdhbjogdGVzdGluZyBmb3Igc2VsZWN0ZWQgZmlsZSBpbiBpbnNlcnRJbWFnZS9pbnNlcnRBc3NldCBwb3B1cDsgYnVnIzM0OTgyIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjQgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuNCB1cGRhdGUKICAgICAgICBieQogICAgICAgIGdyZWdvcgogICAgICAgIDoKICAgICAgICBbMS40XSAKICAgICAgICAgICAgQWNjZXNzIHN0YXRpYyB2YXJpYWJsZSBkaXJlY3RseSBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS40IHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjQgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBncmVnb3IKICAgICAgICA6CiAgICAgICAgWzEuNF0gCiAgICAgICAgICAgIEF2b2lkZWQgc3ludGhldGljIGFjY2Vzc29ycyBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS40IHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjQgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBncmVnb3IKICAgICAgICA6CiAgICAgICAgWzEuNF0gCiAgICAgICAgICAgIFJlbW92ZWQgdW51c2VkIGltcG9ydHMgRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuNCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS40IHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgZ3JlZ29yCiAgICAgICAgOgogICAgICAgIFsxLjRdIAogICAgICAgICAgICBSZW1vdmVkIGRlcHJlY2F0ZWQgU2l0ZVRyZWUuc2F2ZSgpIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjQgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuNCB1cGRhdGUKICAgICAgICBieQogICAgICAgIGdyZWdvcgogICAgICAgIDoKICAgICAgICBbMS40XSAKICAgICAgICAgICAgQWRkZWQgcGFja2FnZSB0YXJnZXQgYW5kIGVuYWJsZWQgZGVwcmVjYXRpb24gd2FybmluZ3MgRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuMiB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS4yIHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgZ3JlZ29yCiAgICAgICAgOgogICAgICAgIFsxLjJdIAogICAgICAgICAgICBPcHRpbWl6ZWQgY29weWluZyBvZiBmaWxlcyB0byBXRUItSU5GL2NsYXNzZXMgRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuNCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS40IHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgZ3JlZ29yCiAgICAgICAgOgogICAgICAgIFsxLjRdIAogICAgICAgICAgICBPcHRpbWl6ZWQgY29weWluZyBvZiBmaWxlcyB0byBXRUItSU5GL2NsYXNzZXMgRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuNCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS40IHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgZ3JlZ29yCiAgICAgICAgOgogICAgICAgIFsxLjRdIAogICAgICAgICAgICBEb24ndCBlY2hvIGludGVybmFscyBkdXJpbmcgYnVpbGQgRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuNCByZW1vdmU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS40IHJlbW92ZQogICAgICAgIGJ5CiAgICAgICAgZ3JlZ29yCiAgICAgICAgOgogICAgICAgIFsxLjRdIAogICAgICAgICAgICBEZWxldGVkIGVtcHR5IGRpcmVjdG9yeSBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS40IHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjQgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBncmVnb3IKICAgICAgICA6CiAgICAgICAgWzEuNF0gCiAgICAgICAgICAgIFJlbW92ZWQgdW51c2VkIGltcG9ydHMgRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuNCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS40IHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgZ3JlZ29yCiAgICAgICAgOgogICAgICAgIFsxLjRdIAogICAgICAgICAgICBNYWRlIGV4Y2VwdGlvbiBmaW5hbCBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS40IHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjQgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBncmVnb3IKICAgICAgICA6CiAgICAgICAgWzEuNF0gCiAgICAgICAgICAgIFJlbW92ZWQgdW51c2VkIGltcG9ydHMgRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuNCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS40IHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgZ3JlZ29yCiAgICAgICAgOgogICAgICAgIFsxLjRdIAogICAgICAgICAgICBSZW1vdmVkIHVudXNlZCBpbXBvcnRzIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjQgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuNCB1cGRhdGUKICAgICAgICBieQogICAgICAgIGdyZWdvcgogICAgICAgIDoKICAgICAgICBbMS40XSAKICAgICAgICAgICAgTWFkZSBleGNlcHRpb24gZmluYWwgRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuNCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS40IHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgZ3JlZ29yCiAgICAgICAgOgogICAgICAgIFsxLjRdIAogICAgICAgICAgICBJbXBsZW1lbnRlZCBzZXJpYWxWZXJzaW9uVUlEIGZvciBzZXJpYWxpemFibGUgY2xhc3NlcyBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS40IHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjQgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBncmVnb3IKICAgICAgICA6CiAgICAgICAgWzEuNF0gCiAgICAgICAgICAgIEltcGxlbWVudGVkIHNlcmlhbFZlcnNpb25VSUQgZm9yIHNlcmlhbGl6YWJsZSBjbGFzc2VzIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjQgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuNCB1cGRhdGUKICAgICAgICBieQogICAgICAgIGdyZWdvcgogICAgICAgIDoKICAgICAgICBbMS40XSAKICAgICAgICAgICAgQXZvaWQgdW5uZWNjZXNhcnkgdG9TdHJpbmcoKSBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS40IHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjQgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBncmVnb3IKICAgICAgICA6CiAgICAgICAgWzEuNF0gCiAgICAgICAgICAgIE1hZGUgZXhjZXB0aW9uIGZpbmFsIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjQgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuNCB1cGRhdGUKICAgICAgICBieQogICAgICAgIGdyZWdvcgogICAgICAgIDoKICAgICAgICBbMS40XSAKICAgICAgICAgICAgUmVtb3ZlZCB1bnVzZWQgaW1wb3J0cyBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS40IHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjQgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBncmVnb3IKICAgICAgICA6CiAgICAgICAgWzEuNF0gCiAgICAgICAgICAgIFVzZSBzdGF0aWMgbWV0aG9kIGluc3RlYWQgb2YgaW5zdGFuY2UgbWV0aG9kIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjQgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuNCB1cGRhdGUKICAgICAgICBieQogICAgICAgIGdyZWdvcgogICAgICAgIDoKICAgICAgICBbMS40XSAKICAgICAgICAgICAgQWRkZWQgZG9jdW1lbnRhdGlvbiB0byBzdGFjayBoZWxwZXIgY2xhc3MgRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuNCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS40IHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgZ3JlZ29yCiAgICAgICAgOgogICAgICAgIFsxLjRdIAogICAgICAgICAgICBJbXBsZW1lbnRlZCBzZXJpYWxWZXJzaW9uVUlEIGZvciBzZXJpYWxpemFibGUgY2xhc3NlcyBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS40IHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjQgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBncmVnb3IKICAgICAgICA6CiAgICAgICAgWzEuNF0gCiAgICAgICAgICAgIE1hZGUgYSBjb25zdGFudCBmaW5hbCBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS40IHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjQgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBncmVnb3IKICAgICAgICA6CiAgICAgICAgWzEuNF0gCiAgICAgICAgICAgIEZpeGVkIGRlYWQgbG9jYWwgc3RvcmFnZSBhbmQgYSBudWxsIHBvaW50ZXIgZGVyZWZlcmVuY2UuIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjQgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuNCB1cGRhdGUKICAgICAgICBieQogICAgICAgIGdyZWdvcgogICAgICAgIDoKICAgICAgICBbMS40XSAKICAgICAgICAgICAgSW1wbGVtZW50ZWQgc2VyaWFsVmVyc2lvblVJRCBmb3Igc2VyaWFsaXphYmxlIGNsYXNzZXMgRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuNCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS40IHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgZ3JlZ29yCiAgICAgICAgOgogICAgICAgIFsxLjRdIAogICAgICAgICAgICBSZXR1cm4gYW4gaW1tdXRhYmxlIGNvcHkgb2YgdGhlIGNoZWNrb3V0IGRhdGUgdG8gYXZvaWQgZXhwb3NpbmcgbXV0YWJsZSBpbnRlcm5hbHMuIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjQgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuNCB1cGRhdGUKICAgICAgICBieQogICAgICAgIGdyZWdvcgogICAgICAgIDoKICAgICAgICBbMS40XSAKICAgICAgICAgICAgU2ltcGxpZWQgcGFyc2luZyBjb2RlIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjQgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuNCB1cGRhdGUKICAgICAgICBieQogICAgICAgIGdyZWdvcgogICAgICAgIDoKICAgICAgICBbMS40XSAKICAgICAgICAgICAgTm8gbG9uZ2VyIHNoaXAgYW4gKG91dGRhdGVkKSBjb3B5IG9mIFhDb25mVG9vbFRhc2ssIGJ1dCByZWx5IG9uIHRoZSBvbmUgZnJvbSBDb2Nvb24gaW5zdGVhZC4gVGhpcyByZXNvbHZlcyBwYXJ0cyBvZiBodHRwOi8vaXNzdWVzLmFwYWNoZS5vcmcvYnVnemlsbGEvc2hvd19idWcuY2dpP2lkPTM0MTkxICBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS40IHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjQgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBhbnRvbmlvCiAgICAgICAgOgogICAgICAgIFsxLjRdIAogICAgICAgICAgICBVcGRhdGVkIGFudCB0byAxLjYuNCBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS4yIHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjIgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBhbnRvbmlvCiAgICAgICAgOgogICAgICAgIFsxLjJdIAogICAgICAgICAgICBVcGRhdGVkIGFudCB0byAxLjYuNCBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS4yIHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjIgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBncmVnb3IKICAgICAgICA6CiAgICAgICAgWzEuMl0gCiAgICAgICAgICAgIEltcHJvdmVkIHJ1c3NpYW4gdHJhbnNsYXRpb24uIFRoYW5rcyB0byBxTWF4IERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjQgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuNCB1cGRhdGUKICAgICAgICBieQogICAgICAgIGFuZHJlYXMKICAgICAgICA6CiAgICAgICAgWzEuNF0gCiAgICAgICAgICAgIFttaW5vciBjaGFuZ2VdIGNvZGUgZm9ybWF0dGluZyBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS40IHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjQgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBhbmRyZWFzCiAgICAgICAgOgogICAgICAgIFsxLjRdIAogICAgICAgICAgICBTb3VyY2VOb2RlOiBzeW5jaHJvbml6aW5nIGNyaXRpY2FsIG1ldGhvZHMgKGF2b2lkcyAnaW52YWxpZCBVVEYtOCcgcHJvYmxlbSkgRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuNCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS40IHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgYW5kcmVhcwogICAgICAgIDoKICAgICAgICBbMS40XSAKICAgICAgICAgICAgZml4ZWQgbG9ja2luZyBpbiBwYXN0ZSB1c2VjYXNlIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjQgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuNCB1cGRhdGUKICAgICAgICBieQogICAgICAgIGFuZHJlYXMKICAgICAgICA6CiAgICAgICAgWzEuNF0gCiAgICAgICAgICAgIHRyZWUgc2l0ZSBtYW5hZ2VyOiByZXR1cm4gYWxsIGxhbmd1YWdlIHZlcnNpb25zIGluIGdldEFuY2VzdG9ycyBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS40IHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjQgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBhbmRyZWFzCiAgICAgICAgOgogICAgICAgIFsxLjRdIAogICAgICAgICAgICBhZGRlZCBsb2NraW5nIHRvIHBhc3RlIHVzZWNhc2UgRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuNCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS40IHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgYW5kcmVhcwogICAgICAgIDoKICAgICAgICBbMS40XSAKICAgICAgICAgICAgZml4ZWQgbnVkZ2UgdXNlY2FzZSAoaW5zdGFuY2VvZiBjaGVjaywgbG9ja2luZykgRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuMiB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS4yIHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgdGhvcnN0ZW4KICAgICAgICA6CiAgICAgICAgWzEuMl0gCiAgICAgICAgICAgIEZpeGVkIHRoZSBsaW5rcyB0byB0aGUgZG9jdW1lbnRhdGlvbiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS4yIHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjIgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBtaWNoaQogICAgICAgIDoKICAgICAgICBbMS4yXSAKICAgICAgICAgICAgdGhhbmtzIHRvIFNpbW9uIExpdHdhbiB0aGUgcHJvYmxlbSB3aXRoIHNsYXNoZXMgaGFzIGJlZW4gZml4ZWQgRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuNCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS40IHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgYW5kcmVhcwogICAgICAgIDoKICAgICAgICBbMS40XSAKICAgICAgICAgICAgRG9jdW1lbnRNYW5hZ2VyLmFkZCgpOiByZXBsYWNlZCBpbml0aWFsQ29udGVudHNVcmkgd2l0aCBhbm90aGVyIG1ldGhvZCB3aGVyZSB5b3UgY2FuIHBhc3MgYSBzb3VyY2UgZG9jdW1lbnQgRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuNCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS40IHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgandrYWx0egogICAgICAgIDoKICAgICAgICBbMS40XSAKICAgICAgICAgICAgW21pbm9yIGNoYW5nZV0gYWRkZWQgY29tbWVudHMgRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuNCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS40IHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgYW5kcmVhcwogICAgICAgIDoKICAgICAgICBbMS40XSAKICAgICAgICAgICAgc2ltcGxpZmllZCBDcmVhdG9yIGludGVyZmFjZSBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS4yIHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjIgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBtaWNoaQogICAgICAgIDoKICAgICAgICBbMS4yXSAKICAgICAgICAgICAgcGF0Y2ggMTUwNjEgYXBwbGllZCBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS40IHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjQgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBhbmRyZWFzCiAgICAgICAgOgogICAgICAgIFsxLjRdIAogICAgICAgICAgICB1cGRhdGVkIERvY3VtZW50TWFuYWdlci5hZGQoKSBzaWduYXR1cmU6IGRvbid0IHJlcXVpcmUgcGFyZW50IGRvY3VtZW50LCBwYXNzIGluZm8gYXMgc2luZ2xlIHN0cmluZ3MgRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuNCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS40IHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgandrYWx0egogICAgICAgIDoKICAgICAgICBbMS40XSAKICAgICAgICAgICAgcmVtb3ZlZCBleGlzdGluZyBub2RlIHR5cGUgY29uY2VwdCAoZGlzdGluY3Rpb24gYnJhbmNoIC8gbGVhZiksIGFzIGl0IHdhcyBub3QgdXNlZCBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS40IHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjQgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBqd2thbHR6CiAgICAgICAgOgogICAgICAgIFsxLjRdIAogICAgICAgICAgICBbbWlub3IgY2hhbmdlXSByZWR1Y2VkIGRlcGVuZGVuY3kgb24gcGFyZW50IGRvY3VtZW50IERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjQgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuNCB1cGRhdGUKICAgICAgICBieQogICAgICAgIGFuZHJlYXMKICAgICAgICA6CiAgICAgICAgWzEuNF0gCiAgICAgICAgICAgIG1hZGUgU2l0ZU1hbmFnZXIgbWFuZGF0b3J5IGluIERvY3VtZW50TWFuYWdlciBpbnRlcmZhY2UgRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuNCByZW1vdmU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS40IHJlbW92ZQogICAgICAgIGJ5CiAgICAgICAgYW5kcmVhcwogICAgICAgIDoKICAgICAgICBbMS40XSAKICAgICAgICAgICAgdXNlIFNpbXBsZVNpdGVNYW5hZ2VyIGZvciBibG9nIHB1YmxpY2F0aW9uIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjQgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuNCB1cGRhdGUKICAgICAgICBieQogICAgICAgIGFuZHJlYXMKICAgICAgICA6CiAgICAgICAgWzEuNF0gCiAgICAgICAgICAgIGFkZGVkIFNpbXBsZVNpdGVNYW5hZ2VyIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjQgYWRkPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuNCBhZGQKICAgICAgICBieQogICAgICAgIGFuZHJlYXMKICAgICAgICA6CiAgICAgICAgWzEuNF0gCiAgICAgICAgICAgIGFkZGVkIFNpbXBsZVNpdGVNYW5hZ2VyIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjQgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuNCB1cGRhdGUKICAgICAgICBieQogICAgICAgIGFuZHJlYXMKICAgICAgICA6CiAgICAgICAgWzEuNF0gCiAgICAgICAgICAgIFttaW5vciBjaGFuZ2VdIGZpeGVkIHBhcmFtZXRlciBuYW1lIHR5cG8gRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuNCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS40IHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgandrYWx0egogICAgICAgIDoKICAgICAgICBbMS40XSAKICAgICAgICAgICAgW21pbm9yIGNoYW5nZV0gYWRkZWQgSWQgYW5kIGludHJvZHVjdG9yeSBleHBsYW5hdGlvbiBvZiBmaWxlJ3MgcHVycG9zZSBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS40IHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjQgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBqd2thbHR6CiAgICAgICAgOgogICAgICAgIFsxLjRdIAogICAgICAgICAgICBbbWlub3IgY2hhbmdlXSBhZGRlZCBncmVnb3IncyBleHBsYW5hdGlvbiBvbiBibG9nIGVudHJ5IHN0cnVjdHVyaW5nIHRvIGNvbW1lbnRzIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjQgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuNCB1cGRhdGUKICAgICAgICBieQogICAgICAgIGp3a2FsdHoKICAgICAgICA6CiAgICAgICAgWzEuNF0gCiAgICAgICAgICAgIFttaW5vciBjaGFuZ2VdIGFkZGVkIHB1YiBzb3VyY2VzIHRvIGphdmFkb2NzIHRhcmdldCBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS40IHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjQgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBhbmRyZWFzCiAgICAgICAgOgogICAgICAgIFsxLjRdIAogICAgICAgICAgICBbbWlub3IgY2hhbmdlXSByZW1vdmVkIHVudXNlZCBpbXBvcnRzIGFuZCB2YXJpYWJsZXMsIGZpeGVkIHNvbWUgamF2YWRvYyBjb21tZW50cyBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS4yIHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjIgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBncmVnb3IKICAgICAgICA6CiAgICAgICAgWzEuMl0gCiAgICAgICAgICAgIFNldCBzZXJpYWxpemVyIGZvciBzdGF0aWMgcHVibGlzaGluZyB0byBYSFRNTC4gVGhhbmtzIHRvIFRyYXZpcyBNY0NhdWxleS4gRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IERvY3MgYWRkPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPkRvY3MgYWRkCiAgICAgICAgYnkKICAgICAgICB0c2NobGFiYWNoCiAgICAgICAgOgogICAgICAgIFtEb2NzXSAKICAgICAgICAgICAgQWRkZWQgdGhlIHNlY3Rpb25zICJQdWJsaWNhdGlvbiIgYW5kICJBdXRob3JpbmcgYW5kIExpdmUgbW9kZSIgdG8gdGhlICJDb25jZXB0cyIgc2VjdGlvbiBvZiAxLjQgZG9jcy4KIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjQgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuNCB1cGRhdGUKICAgICAgICBieQogICAgICAgIHRzY2hsYWJhY2gKICAgICAgICA6CiAgICAgICAgWzEuNF0gCiAgICAgICAgICAgIHNvbWUgbWlub3IgY2hhbmdlcyB0byB0aGUgSmF2YWRvY3MKIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjQgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuNCB1cGRhdGUKICAgICAgICBieQogICAgICAgIHRzY2hsYWJhY2gKICAgICAgICA6CiAgICAgICAgWzEuNF0gCiAgICAgICAgICAgIEltcHJvdmVkIHNvbWUgSmF2YURvYyBjb21tZW50cwogRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IFNpdGUgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPlNpdGUgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBncmVnb3IKICAgICAgICA6CiAgICAgICAgW1NpdGVdIAogICAgICAgICAgICBGaXhlZCB0eXBvIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCBEb2NzIHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj5Eb2NzIHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgZ3JlZ29yCiAgICAgICAgOgogICAgICAgIFtEb2NzXSAKICAgICAgICAgICAgRml4ZWQgdHlwbyBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgU2l0ZSBhZGQ8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+U2l0ZSBhZGQKICAgICAgICBieQogICAgICAgIGdyZWdvcgogICAgICAgIDoKICAgICAgICBbU2l0ZV0gCiAgICAgICAgICAgIFVwZGF0ZWQgc2l0ZSB3aXRoIGxhdGVzdCBob3ctdG8ncy4gRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IERvY3MgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPkRvY3MgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBncmVnb3IKICAgICAgICA6CiAgICAgICAgW0RvY3NdIAogICAgICAgICAgICBNYWRlIG5ldyBkb2N1bWVudGF0aW9uIHZhbGlkIGZvcnJlc3QgZG9jdW1lbnRzLiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS4yIHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjIgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBtaWNoaQogICAgICAgIDoKICAgICAgICBbMS4yXSAKICAgICAgICAgICAgZ2VuZXJhdGUgYSB3YXJuaW5nIGlmIG5vIHBhcmVudGlkIHJlcXVlc3QgcGFyYW1ldGVyIGhhcyBiZWVuIHNwZWNpZmllZCBhbmQgb2Jzb2xldGUgbWV0aG9kIG5hbWUgZnJvbSBsb2cgbWVzc2FnZSByZW1vdmVkIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCBEb2NzIGFkZDwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj5Eb2NzIGFkZAogICAgICAgIGJ5CiAgICAgICAgZ3JlZ29yCiAgICAgICAgOgogICAgICAgIFtEb2NzXSAKICAgICAgICAgICAgQWRkZWQgUGF1bCBFcmNvbGlubydzIGV4dGVybmFsIGRhdGEgaG93LXRvLiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgRG9jcyBhZGQ8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+RG9jcyBhZGQKICAgICAgICBieQogICAgICAgIGdyZWdvcgogICAgICAgIDoKICAgICAgICBbRG9jc10gCiAgICAgICAgICAgIEFkZGVkIFBhdWwgRXJjb2xpbm8ncyBzZWFyY2ggaG93LXRvLiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS4yIHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjIgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBncmVnb3IKICAgICAgICA6CiAgICAgICAgWzEuMl0gCiAgICAgICAgICAgIEhvbm91ciBkb2N0eXBlIGluIHNpdGUgYXJlYSBmb3IgbWVudSBnZW5lcmF0aW9uLiBUaGlzIHJlc29sdmVzIGh0dHA6Ly9pc3N1ZXMuYXBhY2hlLm9yZy9idWd6aWxsYS9zaG93X2J1Zy5jZ2k/aWQ9MzQ4OTAgRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuMiB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS4yIHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgZ3JlZ29yCiAgICAgICAgOgogICAgICAgIFsxLjJdIAogICAgICAgICAgICBCYWNrcG9ydGVkIENTUy9YSFRNTCBtZW51IGZyb20gdHJ1bmssIGFuZCBzd2l0Y2hlZCB0byBYSFRNTCBzZXJpYWxpemF0aW9uIGV2ZXJ5d2hlcmUuIExlbnlhIG5vdyB2YWxpZGF0ZXMgYXMgWEhUTUwgMS4wIHN0cmljdC4gRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuMiB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS4yIHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgZ3JlZ29yCiAgICAgICAgOgogICAgICAgIFsxLjJdIAogICAgICAgICAgICBNYWRlIHN1cmUgdGhhdCBsaW5lZmVlZHMgaW4gYmF0Y2ggZmlsZXMgYXJlIHdpbmRvd3Mtc3R5bGUuIFRoYW5rcyB0byBQYXVsIEVyY29saW5vIGZvciB0aGUgaGludC4gRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuNCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS40IHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgZ3JlZ29yCiAgICAgICAgOgogICAgICAgIFsxLjRdIAogICAgICAgICAgICBNYWRlIHN1cmUgdGhhdCBsaW5lZmVlZHMgaW4gYmF0Y2ggZmlsZXMgYXJlIHdpbmRvd3Mtc3R5bGUuIFRoYW5rcyB0byBQYXVsIEVyY29saW5vIGZvciB0aGUgaGludC4gRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IERvY3MgYWRkPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPkRvY3MgYWRkCiAgICAgICAgYnkKICAgICAgICBncmVnb3IKICAgICAgICA6CiAgICAgICAgW0RvY3NdIAogICAgICAgICAgICBBZGRlZCBGQVEgdG8gdGhlIHNpdGUgRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IERvY3MgYWRkPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPkRvY3MgYWRkCiAgICAgICAgYnkKICAgICAgICBncmVnb3IKICAgICAgICA6CiAgICAgICAgW0RvY3NdIAogICAgICAgICAgICBBZGRlZCByZXNlcnZlZCBuYW1lcyBkb2N1bWVudGF0aW9uIHRvIHRoZSBzaXRlIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCBEb2NzIHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj5Eb2NzIHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgZ3JlZ29yCiAgICAgICAgOgogICAgICAgIFtEb2NzXSAKICAgICAgICAgICAgTW92ZWQgaW5mb3JtYXRpb24gYWJvdXQgdGhlIExlbnlhIFNvdXJjZSBSZXNvbHZlciB0byB0aGUgc2l0ZSBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgRG9jcyB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+RG9jcyB1cGRhdGUKICAgICAgICBieQogICAgICAgIGdyZWdvcgogICAgICAgIDoKICAgICAgICBbRG9jc10gCiAgICAgICAgICAgIFVwZGF0ZWQgdXNlY2FzZXMgZG9jdW1lbnRhdGlvbiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgRG9jcyB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+RG9jcyB1cGRhdGUKICAgICAgICBieQogICAgICAgIGdyZWdvcgogICAgICAgIDoKICAgICAgICBbRG9jc10gCiAgICAgICAgICAgIFVwZGF0ZWQgdW5pdCB0ZXN0IGRvY3VtZW50YXRpb24gRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IERvY3MgYWRkPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPkRvY3MgYWRkCiAgICAgICAgYnkKICAgICAgICBncmVnb3IKICAgICAgICA6CiAgICAgICAgW0RvY3NdIAogICAgICAgICAgICBBZGRlZCBDTVMgc2NyZWVucyBkb2N1bWVudGF0aW9uIHRvIHRoZSBzaXRlLiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgRG9jcyBhZGQ8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+RG9jcyBhZGQKICAgICAgICBieQogICAgICAgIGdyZWdvcgogICAgICAgIDoKICAgICAgICBbRG9jc10gCiAgICAgICAgICAgIEFkZGVkIENNUyBtZW51cyBkb2N1bWVudGF0aW9uIHRvIHRoZSBzaXRlLiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgRG9jcyB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+RG9jcyB1cGRhdGUKICAgICAgICBieQogICAgICAgIGdyZWdvcgogICAgICAgIDoKICAgICAgICBbRG9jc10gCiAgICAgICAgICAgIE1vdmVkIHdvcmtmbG93IGRvY3VtZW50YXRpb24gdG8gdGhlIHNpdGUgRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IERvY3MgYWRkPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPkRvY3MgYWRkCiAgICAgICAgYnkKICAgICAgICBncmVnb3IKICAgICAgICA6CiAgICAgICAgW0RvY3NdIAogICAgICAgICAgICBBZGRlZCB0cmFuc2xhdGlvbiBob3d0byB0byB0aGUgc2l0ZSBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS40IHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjQgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBqd2thbHR6CiAgICAgICAgOgogICAgICAgIFsxLjRdIAogICAgICAgICAgICBmYWN0b3JpemVkIGRvY3VtZW50IGNyZWF0aW9uIGludG8gRG9jdW1lbnRNYW5hZ2VyOyByZW1vdmVkIHVzYWdlIG9mIEZpbGUgaW4gY3JlYXRpb24gcHJvY2VzcyBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgRG9jcyBhZGQ8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+RG9jcyBhZGQKICAgICAgICBieQogICAgICAgIGdyZWdvcgogICAgICAgIDoKICAgICAgICBbRG9jc10gCiAgICAgICAgICAgIE1vdmVkIGxvdHMgb2YgdHV0b3JpYWxzIGZyb20gdGhlIHdpa2kgdG8gdGhlIGRvY3VtZW50YXRpb24uIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCBEb2NzIGFkZDwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj5Eb2NzIGFkZAogICAgICAgIGJ5CiAgICAgICAgZ3JlZ29yCiAgICAgICAgOgogICAgICAgIFtEb2NzXSAKICAgICAgICAgICAgQWRkZWQgY3VzdG9tIHJlc291cmNlIHR5cGUgaG93LXRvIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjQgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuNCB1cGRhdGUKICAgICAgICBieQogICAgICAgIGp3a2FsdHoKICAgICAgICA6CiAgICAgICAgWzEuNF0gCiAgICAgICAgICAgIFttaW5vciBjaGFuZ2VdIHJlbmFtZSBVcmkgdG8gVVJJLiBwcm92aWRlIGFjY2Vzc29yIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjQgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuNCB1cGRhdGUKICAgICAgICBieQogICAgICAgIGp3a2FsdHoKICAgICAgICA6CiAgICAgICAgWzEuNF0gCiAgICAgICAgICAgIHByb3ZpZGUgZmlsZS1mcmVlIGVxdWl2YWxlbnQgdG8gZ2V0Q29udGVudERpcmVjdG9yeQogRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuNCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS40IHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgandrYWx0egogICAgICAgIDoKICAgICAgICBbMS40XSAKICAgICAgICAgICAgW21pbm9yIGNoYW5nZV0gYWRkIGluZGl2aWR1YWwgc2V0dGVyIG1ldGhvZHMgRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuNCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS40IHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgandrYWx0egogICAgICAgIDoKICAgICAgICBbMS40XSAKICAgICAgICAgICAgW21pbm9yIGNoYW5nZV0gcmVtb3ZlIGRlcGVuZGVuY3kgb24gbmV3IGRvY3VtZW50IGluc3RhbmNlIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjIgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuMiB1cGRhdGUKICAgICAgICBieQogICAgICAgIGdyZWdvcgogICAgICAgIDoKICAgICAgICBbMS4yXSAKICAgICAgICAgICAgQWRkZWQgbWlzc2luZyBpMThuIGRlY2xhcmF0aW9uIHRvIHBhc3N3b3JkIHhzbC4gVGhpcyByZXNvbHZlcyBodHRwOi8vaXNzdWVzLmFwYWNoZS5vcmcvYnVnemlsbGEvc2hvd19idWcuY2dpP2lkPTM0OTExIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjQgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuNCB1cGRhdGUKICAgICAgICBieQogICAgICAgIGFuZHJlYXMKICAgICAgICA6CiAgICAgICAgWzEuNF0gCiAgICAgICAgICAgIFttaW5vciBjaGFuZ2VdIHJlbW92ZWQgdW51c2VkIGltcG9ydHMsIGZpeGVkIHNvbWUgamF2YWRvYyB0YWdzIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjQgYWRkPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuNCBhZGQKICAgICAgICBieQogICAgICAgIGFuZHJlYXMKICAgICAgICA6CiAgICAgICAgWzEuNF0gCiAgICAgICAgICAgIGltcGxlbWVudGVkIGlwUmFuZ2VHcm91cHMgdXNlY2FzZSBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS40IHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjQgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBqd2thbHR6CiAgICAgICAgOgogICAgICAgIFsxLjRdIAogICAgICAgICAgICByZW1vdmUgZGVwZW5kZW5jZSBvbiBuZXcgZG9jdW1lbnQgaW5zdGFuY2UgaW4gdXNlY2FzZXMgKGZpcnN0IHN0ZXAgdG93YXJkcyByZWZhY3RvcmluZyBvZiBkb2N1bWVudCBjcmVhdGlvbiBjb2RlKSBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS40IHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjQgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBhbmRyZWFzCiAgICAgICAgOgogICAgICAgIFsxLjRdIAogICAgICAgICAgICB1c2UgaW1wb3J0ZWQgbWVzc2FnZXMgSlggdGVtcGxhdGUgZm9yIElQIHJhbmdlIHVzZWNhc2VzIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjQgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuNCB1cGRhdGUKICAgICAgICBieQogICAgICAgIGFuZHJlYXMKICAgICAgICA6CiAgICAgICAgWzEuNF0gCiAgICAgICAgICAgIGZpbmlzaGVkIGlwUmFuZ2VQcm9maWxlIHVzZWNhc2UgRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuNCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS40IHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgYW5kcmVhcwogICAgICAgIDoKICAgICAgICBbMS40XSAKICAgICAgICAgICAgY29tbWVudGVkIG91dCBub24tZmluaXNoZWQgdXNlY2FzZSBkZWNsYXJhdGlvbiBmcm9tIGNvY29vbi54Y29uZiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS40IGFkZDwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjQgYWRkCiAgICAgICAgYnkKICAgICAgICBhbmRyZWFzCiAgICAgICAgOgogICAgICAgIFsxLjRdIAogICAgICAgICAgICBpbXBsZW1lbnRlZCAndmlldyBJUCByYW5nZScgdXNlY2FzZSBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS40IHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjQgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBhbmRyZWFzCiAgICAgICAgOgogICAgICAgIFsxLjRdIAogICAgICAgICAgICBlbmFibGVkIElQIHJhbmdlIG1hbmFnZW1lbnQgdXNlY2FzZXMgaW4gY29jb29uLnhjb25mIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjQgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuNCB1cGRhdGUKICAgICAgICBieQogICAgICAgIGFuZHJlYXMKICAgICAgICA6CiAgICAgICAgWzEuNF0gCiAgICAgICAgICAgIGNhbGxpbmcgc3VwZXIgY29uc3RydWN0b3IgaW4gRmlsZUlQUmFuZ2UgRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuNCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS40IHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgYW5kcmVhcwogICAgICAgIDoKICAgICAgICBbMS40XSAKICAgICAgICAgICAgY29udGludWVkIGFkZElQUmFuZ2UgdXNlY2FzZSwgYWRkZWQgbW9jayBjbGFzc2VzIGZvciByZW1haW5pbmcgSVAgcmFuZ2UgbWFuYWdlbWVudCB1c2VjYXNlcyBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS40IGFkZDwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjQgYWRkCiAgICAgICAgYnkKICAgICAgICBhbmRyZWFzCiAgICAgICAgOgogICAgICAgIFsxLjRdIAogICAgICAgICAgICBhZGRlZCBhZGRJcFJhbmdlIEpYIHRlbXBsYXRlIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjQgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuNCB1cGRhdGUKICAgICAgICBieQogICAgICAgIGp3a2FsdHoKICAgICAgICA6CiAgICAgICAgWzEuNF0gCiAgICAgICAgICAgIFttaW5vciBjaGFuZ2VdIHNldCBzdm4gaWQgcHJvcCBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS40IHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjQgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBqd2thbHR6CiAgICAgICAgOgogICAgICAgIFsxLjRdIAogICAgICAgICAgICBbbWlub3IgY2hhbmdlXSB1cGRhdGUgeWVhciBwcm9wZXJ0eTsgZm9ybWF0dGluZyBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS40IHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjQgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBqd2thbHR6CiAgICAgICAgOgogICAgICAgIFsxLjRdIAogICAgICAgICAgICBbbWlub3IgY2hhbmdlXSBzZXQgc3ZuIGlkIHByb3AgRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuNCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS40IHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgYW5kcmVhcwogICAgICAgIDoKICAgICAgICBbMS40XSAKICAgICAgICAgICAgY2hhbmdlZCBEb2N1bWVudC5nZXRSZXNvdXJjZVR5cGUoKSB0byByZXR1cm4gYW4gb2JqZWN0IGluc3RlYWQgb2YgYSBzdHJpbmcgRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuNCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS40IHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgYW5kcmVhcwogICAgICAgIDoKICAgICAgICBbMS40XSAKICAgICAgICAgICAgW21pbm9yIGNoYW5nZV0gcmVtb3ZlZCB1bnVzZWQgaW1wb3J0cywgYWRkZWQgamF2YWRvYyB0YWdzIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjQgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuNCB1cGRhdGUKICAgICAgICBieQogICAgICAgIGFuZHJlYXMKICAgICAgICA6CiAgICAgICAgWzEuNF0gCiAgICAgICAgICAgIFttaW5vciBjaGFuZ2VdIHJlbW92ZWQgdW51c2VkIGltcG9ydCwgYWRkZWQgamF2YWRvYyB0YWcgRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuNCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS40IHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgYW5kcmVhcwogICAgICAgIDoKICAgICAgICBbMS40XSAKICAgICAgICAgICAgW21pbm9yIGNoYW5nZV0gcmVtb3ZlZCB1bnVzZWQgaW1wb3J0cyBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS4yIHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjIgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBtaWNoaQogICAgICAgIDoKICAgICAgICBbMS4yXSAKICAgICAgICAgICAgZXJyb3IgaGFuZGxpbmcgYW5kIHdhcm5pbmdzIGltcHJvdmVkIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjIgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuMiB1cGRhdGUKICAgICAgICBieQogICAgICAgIG1pY2hpCiAgICAgICAgOgogICAgICAgIFsxLjJdIAogICAgICAgICAgICBpbnZhbGlkYXRlIHNlc3Npb24gYWRkZWQgRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuNCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS40IHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgandrYWx0egogICAgICAgIDoKICAgICAgICBbMS40XSAKICAgICAgICAgICAgdXNlIGNvbnN0YW50cyAvIGNvbnZlbmllbmNlIG1ldGhvZHMgaW5zdGVhZCBvZiBsZW55YTovLyBmb3IgYWNjZXNzaW5nIGNvbnRlbnQgRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuNCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS40IHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgandrYWx0egogICAgICAgIDoKICAgICAgICBbMS40XSAKICAgICAgICAgICAgW21pbm9yIGNoYW5nZV0gc2V0IHN2biBwcm9wIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjQgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuNCB1cGRhdGUKICAgICAgICBieQogICAgICAgIGp3a2FsdHoKICAgICAgICA6CiAgICAgICAgWzEuNF0gCiAgICAgICAgICAgIGZpeCBkZWxldGluZyBhc3NldCB1c2VjYXNlIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjQgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuNCB1cGRhdGUKICAgICAgICBieQogICAgICAgIGp3a2FsdHoKICAgICAgICA6CiAgICAgICAgWzEuNF0gCiAgICAgICAgICAgIGRlbGV0aW5nIGxhbmd1YWdlIHZlcnNpb246IGxvY2sgb2JqZWN0cywgZGVsZXRlIG1ldGEgc291cmNlIGFzIHdlbGwgRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuNCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS40IHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgandrYWx0egogICAgICAgIDoKICAgICAgICBbMS40XSAKICAgICAgICAgICAgdXNlIFVSSSBpbnN0ZWFkIG9mIGZpbGUgZm9yIGluaXRpYWwgY29udGVudHMgb2YgYSBuZXcgZG9jdW1lbnQuIExhbmd1YWdlIHZlcnNpb24gdXNlcyBVUkkgb2YgZXhpc3RpbmcgZG9jdW1lbnQgRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuNCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS40IHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgandrYWx0egogICAgICAgIDoKICAgICAgICBbMS40XSAKICAgICAgICAgICAgW21pbm9yIGNoYW5nZV0gY2hlY2sgZm9yIG51bGwgcGFyYW1ldGVyIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjQgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuNCB1cGRhdGUKICAgICAgICBieQogICAgICAgIGp3a2FsdHoKICAgICAgICA6CiAgICAgICAgWzEuNF0gCiAgICAgICAgICAgIFttaW5vciBjaGFuZ2VdIHNldCBJZCBwcm9wZXJ0eSBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS40IHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjQgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBhbmRyZWFzCiAgICAgICAgOgogICAgICAgIFsxLjRdIAogICAgICAgICAgICBbbWlub3IgY2hhbmdlXSByZW1vdmVkIHVudXNlZCBpbXBvcnQgRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuNCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS40IHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgandrYWx0egogICAgICAgIDoKICAgICAgICBbMS40XSAKICAgICAgICAgICAgZmFjdG9yaXplIGRvY3VtZW50IGNyZWF0aW9uIGNvZGUgaW50byBzdXBlcmNsYXNzIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjQgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuNCB1cGRhdGUKICAgICAgICBieQogICAgICAgIGp3a2FsdHoKICAgICAgICA6CiAgICAgICAgWzEuNF0gCiAgICAgICAgICAgIFttaW5vciBjaGFuZ2VdIGFkZGVkIG1pbmltYWwgZGMgYXR0cmlidXRlcyBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS40IHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjQgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBhbmRyZWFzCiAgICAgICAgOgogICAgICAgIFsxLjRdIAogICAgICAgICAgICBzaXRldHJlZSBKWDogYWRkZWQgbWlzc2luZyAvIGluIHRhYiBsaW5rIFVSTCBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgRG9jcyBhZGQ8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+RG9jcyBhZGQKICAgICAgICBieQogICAgICAgIGdyZWdvcgogICAgICAgIDoKICAgICAgICBbRG9jc10gCiAgICAgICAgICAgIEFkZGVkIEhvdy1Ub3MgZnJvbSB0aGUgd2lraSB0byB0aGUgZG9jdW1lbnRhdGlvbi4gRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IERvY3MgYWRkPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPkRvY3MgYWRkCiAgICAgICAgYnkKICAgICAgICBncmVnb3IKICAgICAgICA6CiAgICAgICAgW0RvY3NdIAogICAgICAgICAgICBBZGRlZCBIb3ctVG9zIGZyb20gdGhlIHdpa2kgdG8gdGhlIGRvY3VtZW50YXRpb24uIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjQgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuNCB1cGRhdGUKICAgICAgICBieQogICAgICAgIGp3a2FsdHoKICAgICAgICA6CiAgICAgICAgWzEuNF0gCiAgICAgICAgICAgIHJlZmFjdG9yaW5nIG9mIG1ldGEtZGF0YSBjcmVhdGlvbiBpbnRvIE1ldGFEYXRhTWFuYWdlciBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS40IHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjQgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBqd2thbHR6CiAgICAgICAgOgogICAgICAgIFsxLjRdIAogICAgICAgICAgICBbbWlub3IgY2hhbmdlXSByZW1vdmUgZHVwbGljYXRlIHRlcm0gRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuNCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS40IHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgandrYWx0egogICAgICAgIDoKICAgICAgICBbMS40XSAKICAgICAgICAgICAgcmVtb3ZlZCBvYnNvbGV0ZSBhY3Rpb24gRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuNCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS40IHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgandrYWx0egogICAgICAgIDoKICAgICAgICBbMS40XSAKICAgICAgICAgICAgW21pbm9yIGNoYW5nZV0gY2FsbCBuZXcgYXBpIHRvIHJldHJpZXZlIG1ldGFkYXRhIHZhbHVlIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjQgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuNCB1cGRhdGUKICAgICAgICBieQogICAgICAgIGp3a2FsdHoKICAgICAgICA6CiAgICAgICAgWzEuNF0gCiAgICAgICAgICAgIFttaW5vciBjaGFuZ2VdIGZpeCBqYXZhZG9jIHJlZmVyZW5jZXMgRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuNCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS40IHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgandrYWx0egogICAgICAgIDoKICAgICAgICBbMS40XSAKICAgICAgICAgICAgW21pbm9yIGNoYW5nZV0gZml4ZWQgamF2YWRvYyByZWZlcmVuY2UgRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuNCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS40IHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgandrYWx0egogICAgICAgIDoKICAgICAgICBbMS40XSAKICAgICAgICAgICAgcmVwbGFjZSBsb2c0aiB3aXRoIEF2YWxvbiBsb2dnZXIgRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IERvY3MgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPkRvY3MgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBncmVnb3IKICAgICAgICA6CiAgICAgICAgW0RvY3NdIAogICAgICAgICAgICBBZGRlZCBOYXRpb25hbCBKb3VybmFsIHRvIGxpdmUgc2l0ZXMuIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCBTaXRlIHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj5TaXRlIHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgZ3JlZ29yCiAgICAgICAgOgogICAgICAgIFtTaXRlXSAKICAgICAgICAgICAgQWRkZWQgTmF0aW9uYWwgSm91cm5hbCB0byBsaXZlIHNpdGVzLiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS40IHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjQgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBncmVnb3IKICAgICAgICA6CiAgICAgICAgWzEuNF0gCiAgICAgICAgICAgIFVzZSBsYWJlbHMgZm9yIGFjY2Vzc2liaWxpdHkuIFRoaXMgcmVzb2x2ZXMgaHR0cDovL2lzc3Vlcy5hcGFjaGUub3JnL2J1Z3ppbGxhL3Nob3dfYnVnLmNnaT9pZD0zNDYzMiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS4yIHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjIgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBncmVnb3IKICAgICAgICA6CiAgICAgICAgWzEuMl0gCiAgICAgICAgICAgIFRyYW5zbGF0ZWQgYSBjb3VwbGUgc3RyYWdnbGVycyBpbiB0aGUgYWRtaW4gVUksIHRoYW5rcyB0byBzb2xwcm92aWRlci4gRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuNCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS40IHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgandrYWx0egogICAgICAgIDoKICAgICAgICBbMS40XSAKICAgICAgICAgICAgcmVhZCBtZXRhLWRhdGEgZGlyZWN0bHkgaW5zdGVhZCBvZiB1c2luZyBEb2N1bWVudFR5cGVSZXNvbHZlciBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS40IHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjQgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBqd2thbHR6CiAgICAgICAgOgogICAgICAgIFsxLjRdIAogICAgICAgICAgICBbbWlub3IgY2hhbmdlXSBhZGQgZ2V0UmVzb3VyY2VUeXBlKCkgY29udmVuaWVuY2UgbWV0aG9kIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjQgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuNCB1cGRhdGUKICAgICAgICBieQogICAgICAgIGp3a2FsdHoKICAgICAgICA6CiAgICAgICAgWzEuNF0gCiAgICAgICAgICAgIFttaW5vciBjaGFuZ2VdIHNldCByZXNvdXJjZSB0eXBlIG9mIGRlZmF1bHQgcHVibGljYXRpb24gc3RhcnQgcGFnZSB0byBob21lcGFnZSBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS40IHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjQgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBqd2thbHR6CiAgICAgICAgOgogICAgICAgIFsxLjRdIAogICAgICAgICAgICBbbWlub3IgY2hhbmdlXSBhZGRlZCBpZCBwcm9wIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjQgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuNCB1cGRhdGUKICAgICAgICBieQogICAgICAgIGp3a2FsdHoKICAgICAgICA6CiAgICAgICAgWzEuNF0gCiAgICAgICAgICAgIG1vZGlmaWVkIG1ldGFkYXRhIGhhbmRsaW5nOiBhbGwgbWV0YSBpcyBub3cgc2VwYXJhdGUgZnJvbSBjb250ZW50LCBhbmQgY2FuIGJlIG9mIDMgZGlmZmVyZW50IHR5cGVzIChkYywgbGVueWEsIGN1c3RvbSkgRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuNCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS40IHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgandrYWx0egogICAgICAgIDoKICAgICAgICBbMS40XSAKICAgICAgICAgICAgW21pbm9yIGNoYW5nZV0gYWRkZWQgbG9nZ2VyIHRvIGNvbnN0cnVjdG9yIGNhbGwgRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuNCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS40IHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgZ3JlZ29yCiAgICAgICAgOgogICAgICAgIFsxLjRdIAogICAgICAgICAgICBTdGFydCB0byB1c2UgbGFiZWxzIGZvciBhY2Nlc3NpYmlsaXR5IERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjIgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuMiB1cGRhdGUKICAgICAgICBieQogICAgICAgIGdyZWdvcgogICAgICAgIDoKICAgICAgICBbMS4yXSAKICAgICAgICAgICAgU3RhcnQgdG8gdXNlIGxhYmVscyBmb3IgYWNjZXNzaWJpbGl0eSBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS4yIHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjIgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBncmVnb3IKICAgICAgICA6CiAgICAgICAgWzEuMl0gCiAgICAgICAgICAgIFRyYW5zbGF0ZWQgJ2RvY3VtZW50IHZpc2libGUgaW4gbmF2aWdhdGlvbicgRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IERvY3MgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPkRvY3MgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBncmVnb3IKICAgICAgICA6CiAgICAgICAgW0RvY3NdIAogICAgICAgICAgICBSZW1vdmVkIG9ic29sZXRlIHdhcm5pbmdzIGFib3V0IGluc3RhbGxhdGlvbiBkaXJlY3RvcnkgRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuMiB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS4yIHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgZ3JlZ29yCiAgICAgICAgOgogICAgICAgIFsxLjJdIAogICAgICAgICAgICBNYWRlIHN1cmUgdGhhdCBVUkkgc3RyaW5ncyBhcmUgcHJvcGVybHkgZW5jb2RlZCB3aGVuIGNhbGxpbmcgdGhlIFVSSSBkZWZhdWx0IGNvbnN0cnVjdG9yLiBUaGlzIHJlc29sdmVzIHRoZSBsb25nLXN0YW5kaW5nIGlzc3VlIGh0dHA6Ly9pc3N1ZXMuYXBhY2hlLm9yZy9idWd6aWxsYS9zaG93X2J1Zy5jZ2k/aWQ9Mjc1NTggd2hlcmUgTGVueWEgY291bGQgbm90IGJlIGluc3RhbGxlZCBpbiBhIGRpcmVjdG9yeSB3aXRoIHNwYWNlcyBpbiB0aGUgcGF0aC4gRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuNCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS40IHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgZ3JlZ29yCiAgICAgICAgOgogICAgICAgIFsxLjRdIAogICAgICAgICAgICBNYWRlIHN1cmUgdGhhdCBVUkkgc3RyaW5ncyBhcmUgcHJvcGVybHkgZW5jb2RlZCB3aGVuIGNhbGxpbmcgdGhlIFVSSSBkZWZhdWx0IGNvbnN0cnVjdG9yLiBUaGlzIHJlc29sdmVzIHRoZSBsb25nLXN0YW5kaW5nIGlzc3VlIGh0dHA6Ly9pc3N1ZXMuYXBhY2hlLm9yZy9idWd6aWxsYS9zaG93X2J1Zy5jZ2k/aWQ9Mjc1NTggd2hlcmUgTGVueWEgY291bGQgbm90IGJlIGluc3RhbGxlZCBpbiBhIGRpcmVjdG9yeSB3aXRoIHNwYWNlcyBpbiB0aGUgcGF0aC4gRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuNCBhZGQ8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS40IGFkZAogICAgICAgIGJ5CiAgICAgICAgZ3JlZ29yCiAgICAgICAgOgogICAgICAgIFsxLjRdIAogICAgICAgICAgICBBZGRlZCBDSUZTVXNlciBpbXBsZW1lbnRhdGlvbiBieSBEb3VnIENoZXN0bnV0IGFuZCBQZXRlciBTaGlwbGV5LiBUaGlzIGFsbG93cyB0byBhdXRoZW50aWNhdGUgdXNlcnMgYWdhaW5zdCBDSUZTIHVzaW5nIEpDSUZTLiBMZW55YSBzaGlwcyB3aXRoIGEgbW9jayBqYXIsIHJlcGxhY2Ugd2l0aCB0aGUgcmVhbCB0aGluZyBpZiB5b3Ugd2FudCB0byB1c2UgdGhpcy4gVGhpcyByZXNvbHZlcyBodHRwOi8vaXNzdWVzLmFwYWNoZS5vcmcvYnVnemlsbGEvc2hvd19idWcuY2dpP2lkPTI3Mjg5IERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjQgYWRkPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuNCBhZGQKICAgICAgICBieQogICAgICAgIGdyZWdvcgogICAgICAgIDoKICAgICAgICBbMS40XSAKICAgICAgICAgICAgQWRkZWQgQ0lGU1VzZXIgaW1wbGVtZW50YXRpb24gYnkgRG91ZyBDaGVzdG51dCBhbmQgUGV0ZXIgU2hpcGxleS4gVGhpcyBhbGxvd3MgdG8gYXV0aGVudGljYXRlIHVzZXJzIGFnYWluc3QgQ0lGUyB1c2luZyBKQ0lGUy4gTGVueWEgc2hpcHMgd2l0aCBhIG1vY2sgamFyLCByZXBsYWNlIHdpdGggdGhlIHJlYWwgdGhpbmcgaWYgeW91IHdhbnQgdG8gdXNlIHRoaXMuIFRoaXMgcmVzb2x2ZXMgaHR0cDovL2lzc3Vlcy5hcGFjaGUub3JnL2J1Z3ppbGxhL3Nob3dfYnVnLmNnaT9pZD0yNzI4OSBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS4yIGFkZDwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjIgYWRkCiAgICAgICAgYnkKICAgICAgICBncmVnb3IKICAgICAgICA6CiAgICAgICAgWzEuMl0gCiAgICAgICAgICAgIEFkZGVkIENJRlNVc2VyIGltcGxlbWVudGF0aW9uIGJ5IERvdWcgQ2hlc3RudXQgYW5kIFBldGVyIFNoaXBsZXkuIFRoaXMgYWxsb3dzIHRvIGF1dGhlbnRpY2F0ZSB1c2VycyBhZ2FpbnN0IENJRlMgdXNpbmcgSkNJRlMuIExlbnlhIHNoaXBzIHdpdGggYSBtb2NrIGphciwgcmVwbGFjZSB3aXRoIHRoZSByZWFsIHRoaW5nIGlmIHlvdSB3YW50IHRvIHVzZSB0aGlzLiBUaGlzIHJlc29sdmVzIGh0dHA6Ly9pc3N1ZXMuYXBhY2hlLm9yZy9idWd6aWxsYS9zaG93X2J1Zy5jZ2k/aWQ9MjcyODkgRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuMiBhZGQ8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS4yIGFkZAogICAgICAgIGJ5CiAgICAgICAgZ3JlZ29yCiAgICAgICAgOgogICAgICAgIFsxLjJdIAogICAgICAgICAgICBBZGRlZCBDSUZTVXNlciBpbXBsZW1lbnRhdGlvbiBieSBEb3VnIENoZXN0bnV0IGFuZCBQZXRlciBTaGlwbGV5LiBUaGlzIGFsbG93cyB0byBhdXRoZW50aWNhdGUgdXNlcnMgYWdhaW5zdCBDSUZTIHVzaW5nIEpDSUZTLiBMZW55YSBzaGlwcyB3aXRoIGEgbW9jayBqYXIsIHJlcGxhY2Ugd2l0aCB0aGUgcmVhbCB0aGluZyBpZiB5b3Ugd2FudCB0byB1c2UgdGhpcy4gVGhpcyByZXNvbHZlcyBodHRwOi8vaXNzdWVzLmFwYWNoZS5vcmcvYnVnemlsbGEvc2hvd19idWcuY2dpP2lkPTI3Mjg5IERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjQgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuNCB1cGRhdGUKICAgICAgICBieQogICAgICAgIGdyZWdvcgogICAgICAgIDoKICAgICAgICBbMS40XSAKICAgICAgICAgICAgTWFkZSBhY2Nlc3MgY29udHJvbCBjbGFzc2VzIHNlcmlhbGl6YWJsZSBiYXNlZCBvbiBhIHBhdGNoIGJ5IE1pcmVrIEhhbmt1cy4gVGhpcyByZXNvbHZlcyBodHRwOi8vaXNzdWVzLmFwYWNoZS5vcmcvYnVnemlsbGEvc2hvd19idWcuY2dpP2lkPTM0MTI3IERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjIgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuMiB1cGRhdGUKICAgICAgICBieQogICAgICAgIGdyZWdvcgogICAgICAgIDoKICAgICAgICBbMS4yXSAKICAgICAgICAgICAgTWFkZSBhY2Nlc3MgY29udHJvbCBjbGFzc2VzIHNlcmlhbGl6YWJsZSBiYXNlZCBvbiBhIHBhdGNoIGJ5IE1pcmVrIEhhbmt1cy4gVGhpcyByZXNvbHZlcyBodHRwOi8vaXNzdWVzLmFwYWNoZS5vcmcvYnVnemlsbGEvc2hvd19idWcuY2dpP2lkPTM0MTI3IERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCBTaXRlIHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj5TaXRlIHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgZ3JlZ29yCiAgICAgICAgOgogICAgICAgIFtTaXRlXSAKICAgICAgICAgICAgQWRkZWQgYW5vbnltb3VzIGF1dGhlbnRpY2F0b3IgKHVzZWZ1bCBmb3IgY2xpZW50IGNlcnRzKSBiYXNlZCBvbiB3b3JrIGJ5IE1pa2UgTW9yZXR0aS4gVGhpcyByZXNvbHZlcyBodHRwOi8vaXNzdWVzLmFwYWNoZS5vcmcvYnVnemlsbGEvc2hvd19idWcuY2dpP2lkPTM0MjUzIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjQgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuNCB1cGRhdGUKICAgICAgICBieQogICAgICAgIGdyZWdvcgogICAgICAgIDoKICAgICAgICBbMS40XSAKICAgICAgICAgICAgQWRkZWQgYW5vbnltb3VzIGF1dGhlbnRpY2F0b3IgKHVzZWZ1bCBmb3IgY2xpZW50IGNlcnRzKSBiYXNlZCBvbiB3b3JrIGJ5IE1pa2UgTW9yZXR0aS4gVGhpcyByZXNvbHZlcyBodHRwOi8vaXNzdWVzLmFwYWNoZS5vcmcvYnVnemlsbGEvc2hvd19idWcuY2dpP2lkPTM0MjUzIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCBEb2NzIHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj5Eb2NzIHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgZ3JlZ29yCiAgICAgICAgOgogICAgICAgIFtEb2NzXSAKICAgICAgICAgICAgQWRkZWQgYW5vbnltb3VzIGF1dGhlbnRpY2F0b3IgKHVzZWZ1bCBmb3IgY2xpZW50IGNlcnRzKSBiYXNlZCBvbiB3b3JrIGJ5IE1pa2UgTW9yZXR0aS4gVGhpcyByZXNvbHZlcyBodHRwOi8vaXNzdWVzLmFwYWNoZS5vcmcvYnVnemlsbGEvc2hvd19idWcuY2dpP2lkPTM0MjUzIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjIgYWRkPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuMiBhZGQKICAgICAgICBieQogICAgICAgIGdyZWdvcgogICAgICAgIDoKICAgICAgICBbMS4yXSAKICAgICAgICAgICAgQWRkZWQgYW5vbnltb3VzIGF1dGhlbnRpY2F0b3IgKHVzZWZ1bCBmb3IgY2xpZW50IGNlcnRzKSBiYXNlZCBvbiB3b3JrIGJ5IE1pa2UgTW9yZXR0aS4gVGhpcyByZXNvbHZlcyBodHRwOi8vaXNzdWVzLmFwYWNoZS5vcmcvYnVnemlsbGEvc2hvd19idWcuY2dpP2lkPTM0MjUzIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjQgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuNCB1cGRhdGUKICAgICAgICBieQogICAgICAgIGdyZWdvcgogICAgICAgIDoKICAgICAgICBbMS40XSAKICAgICAgICAgICAgVXBkYXRlZCBydXNzaWFuIHRyYW5zbGF0aW9uIGJ5ICYjMTA0MDsmIzEwODU7JiMxMDkwOyYjMTA4NjsmIzEwODU7ICYjMTA1MDsmIzEwODY7JiMxMDc0OyYjMTA3MjsmIzEwODM7JiMxMDc3OyYjMTA4NTsmIzEwODI7JiMxMDg2Oy4gVGhpcyByZXNvbHZlcyBodHRwOi8vaXNzdWVzLmFwYWNoZS5vcmcvYnVnemlsbGEvc2hvd19idWcuY2dpP2lkPTM0Nzk4IERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjIgYWRkPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuMiBhZGQKICAgICAgICBieQogICAgICAgIGdyZWdvcgogICAgICAgIDoKICAgICAgICBbMS4yXSAKICAgICAgICAgICAgVXBkYXRlZCBydXNzaWFuIHRyYW5zbGF0aW9uIGJ5ICYjMTA0MDsmIzEwODU7JiMxMDkwOyYjMTA4NjsmIzEwODU7ICYjMTA1MDsmIzEwODY7JiMxMDc0OyYjMTA3MjsmIzEwODM7JiMxMDc3OyYjMTA4NTsmIzEwODI7JiMxMDg2Oy4gVGhpcyByZXNvbHZlcyBodHRwOi8vaXNzdWVzLmFwYWNoZS5vcmcvYnVnemlsbGEvc2hvd19idWcuY2dpP2lkPTM0Nzk4IERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjIgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuMiB1cGRhdGUKICAgICAgICBieQogICAgICAgIG1pY2hpCiAgICAgICAgOgogICAgICAgIFsxLjJdIAogICAgICAgICAgICBsb2dvdXQgYWN0aXZhdGVkIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjQgYWRkPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuNCBhZGQKICAgICAgICBieQogICAgICAgIGdyZWdvcgogICAgICAgIDoKICAgICAgICBbMS40XSAKICAgICAgICAgICAgQWRkZWQgcnVzc2lhbiB0cmFuc2xhdGlvbiBieSBBbnRvbiBLb3ZhbGVua28gRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuMiBhZGQ8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS4yIGFkZAogICAgICAgIGJ5CiAgICAgICAgZ3JlZ29yCiAgICAgICAgOgogICAgICAgIFsxLjJdIAogICAgICAgICAgICBBZGRlZCBydXNzaWFuIHRyYW5zbGF0aW9uIGJ5IEFudG9uIEtvdmFsZW5rbyBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS40IHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjQgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBncmVnb3IKICAgICAgICA6CiAgICAgICAgWzEuNF0gCiAgICAgICAgICAgIFNpbXBsaWZpZWQgRXhjZXB0aW9uIGhhbmRsaW5nIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjQgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuNCB1cGRhdGUKICAgICAgICBieQogICAgICAgIGdyZWdvcgogICAgICAgIDoKICAgICAgICBbMS40XSAKICAgICAgICAgICAgUmVtb3ZlZCB1bm5lY2Vzc2FyeSBjb21wYXJpc29uIHRvIG51bGwgRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuMiB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS4yIHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgbWljaGkKICAgICAgICA6CiAgICAgICAgWzEuMl0gCiAgICAgICAgICAgIHZlcnNpb24gdXBkYXRlZCBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS4yIHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjIgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBncmVnb3IKICAgICAgICA6CiAgICAgICAgWzEuMl0gCiAgICAgICAgICAgIFVzZSBBbnQgdGFzayB0byBmaXggQ1JMRiBmb3IgdGhlIHNoZWxsIHNjcmlwdHMgYW5kIG1ha2UgdGhlbSBleGVjdXRhYmxlIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjQgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuNCB1cGRhdGUKICAgICAgICBieQogICAgICAgIGdyZWdvcgogICAgICAgIDoKICAgICAgICBbMS40XSAKICAgICAgICAgICAgVXNlIEFudCB0YXNrIHRvIGZpeCBDUkxGIGZvciB0aGUgc2hlbGwgc2NyaXB0cyBhbmQgbWFrZSB0aGVtIGV4ZWN1dGFibGUgRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuNCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS40IHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgandrYWx0egogICAgICAgIDoKICAgICAgICBbMS40XSAKICAgICAgICAgICAgaGFuZGxlIGRvY3VtZW50IG1ldGFkYXRhIHRoZSBzYW1lIGFzIHJlc291cmNlIG1ldGFkYXRhLCB0aGF0IGlzIHVuZGVyIHNlcGFyYXRlIFVSSSwgc2VwYXJhdGVkIGZyb20gY29udGVudHMgRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IERvY3MgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPkRvY3MgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBncmVnb3IKICAgICAgICA6CiAgICAgICAgW0RvY3NdIAogICAgICAgICAgICBQYXRyaWNrIFN0cmVldCBDbGluaWMgYW5kIEhlbGl1bSA1IGFkZGVkIHRvIGxpdmUgc2l0ZXMgRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuNCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS40IHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgandrYWx0egogICAgICAgIDoKICAgICAgICBbMS40XSAKICAgICAgICAgICAgY29waWVkIGNoYW5nZXMgZnJvbSBicmFuY2ggMV8yIHRvIHRydW5rOyBmaXhlcyBidWcgMzQxOTAgRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuNCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS40IHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgandrYWx0egogICAgICAgIDoKICAgICAgICBbMS40XSAKICAgICAgICAgICAgYWx3YXlzIHRocm93IGV4Y2VwdGlvbiBpbiBlcnJvciBjYXNlIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCBTaXRlIHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj5TaXRlIHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgZ3JlZ29yCiAgICAgICAgOgogICAgICAgIFtTaXRlXSAKICAgICAgICAgICAgUGF0cmljayBTdHJlZXQgQ2xpbmljIGFuZCBIZWxpdW0gNSBhZGRlZCB0byBsaXZlIHNpdGVzIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjQgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuNCB1cGRhdGUKICAgICAgICBieQogICAgICAgIGp3a2FsdHoKICAgICAgICA6CiAgICAgICAgWzEuNF0gCiAgICAgICAgICAgIFttaW5vciBjaGFuZ2VdIGFkZGVkIHNvbWUgbG9nZ2luZyBhbmQgY29tbWVudHMgRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IFNpdGUgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPlNpdGUgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBncmVnb3IKICAgICAgICA6CiAgICAgICAgW1NpdGVdIAogICAgICAgICAgICB1cGRhdGVkIGluZGV4IGFuZCBjaGFuZ2VzIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCBEb2NzIHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj5Eb2NzIHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgZ3JlZ29yCiAgICAgICAgOgogICAgICAgIFtEb2NzXSAKICAgICAgICAgICAgdXBkYXRlZCBmcm9udCBwYWdlIGFuZCBjaGFuZ2VzIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPiB1cGRhdGUKICAgICAgICBieQogICAgICAgIGdyZWdvcgogICAgICAgIDoKICAgICAgICBbXSAKICAgICAgICAgICAgVGFnZ2luZyByZWxlYXNlIDEuMi4zIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjQgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuNCB1cGRhdGUKICAgICAgICBieQogICAgICAgIGdyZWdvcgogICAgICAgIDoKICAgICAgICBbMS40XSAKICAgICAgICAgICAgRXhwbGljaXRseSBleGNsdWRlIGJ1aWxkIGRpcmVjdG9yaWVzIGZyb20gZGlzdC1zcmMgdGFyZ2V0IERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjIgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuMiB1cGRhdGUKICAgICAgICBieQogICAgICAgIGdyZWdvcgogICAgICAgIDoKICAgICAgICBbMS4yXSAKICAgICAgICAgICAgRXhwbGljaXRseSBleGNsdWRlIGJ1aWxkIGRpcmVjdG9yaWVzIGZyb20gZGlzdC1zcmMgdGFyZ2V0IERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjQgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuNCB1cGRhdGUKICAgICAgICBieQogICAgICAgIGdyZWdvcgogICAgICAgIDoKICAgICAgICBbMS40XSAKICAgICAgICAgICAgQWRkZWQgR3JlZ29yJ3MgUEdQIGtleSBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS40IHJlbW92ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjQgcmVtb3ZlCiAgICAgICAgYnkKICAgICAgICBhbnRvbmlvCiAgICAgICAgOgogICAgICAgIFsxLjRdIAogICAgICAgICAgICBVcGRhdGUgYW50IHRvIDEuNi4zIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjQgYWRkPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuNCBhZGQKICAgICAgICBieQogICAgICAgIGFudG9uaW8KICAgICAgICA6CiAgICAgICAgWzEuNF0gCiAgICAgICAgICAgIEFkZCBhbnQtY29udHJpYiBsaWNlbnNlIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjIgYWRkPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuMiBhZGQKICAgICAgICBieQogICAgICAgIGFudG9uaW8KICAgICAgICA6CiAgICAgICAgWzEuMl0gCiAgICAgICAgICAgIFVwZ3JhZGUgYW50IHRvIDEuNi4zIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjIgYWRkPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuMiBhZGQKICAgICAgICBieQogICAgICAgIGFudG9uaW8KICAgICAgICA6CiAgICAgICAgWzEuMl0gCiAgICAgICAgICAgIEFkZCBhbnQtY29udHJpYiBsaWNlbnNlIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjIgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuMiB1cGRhdGUKICAgICAgICBieQogICAgICAgIGFudG9uaW8KICAgICAgICA6CiAgICAgICAgWzEuMl0gCiAgICAgICAgICAgIEZpeCBwaXBlbGluZXMgRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuNCBhZGQ8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS40IGFkZAogICAgICAgIGJ5CiAgICAgICAgYW50b25pbwogICAgICAgIDoKICAgICAgICBbMS40XSAKICAgICAgICAgICAgVXBkYXRlIGpldHR5IHRvIDQuMi4yMyBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS4yIHJlbW92ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjIgcmVtb3ZlCiAgICAgICAgYnkKICAgICAgICBhbnRvbmlvCiAgICAgICAgOgogICAgICAgIFsxLjJdIAogICAgICAgICAgICBVcGRhdGUgamV0dHkgdG8gNC4yLjIzIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjQgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuNCB1cGRhdGUKICAgICAgICBieQogICAgICAgIGp3a2FsdHoKICAgICAgICA6CiAgICAgICAgWzEuNF0gCiAgICAgICAgICAgIGFkZGVkIG1lc3NhZ2VzIHdpdGggcGFyYW1ldGVycyB3aGVyZSBhcHByb3ByaWF0ZSBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS40IHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjQgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBqd2thbHR6CiAgICAgICAgOgogICAgICAgIFsxLjRdIAogICAgICAgICAgICBbbWlub3IgY2hhbmdlXSBzZXQgc3ZuIHByb3BlcnRpZXMgRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuNCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS40IHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgandrYWx0egogICAgICAgIDoKICAgICAgICBbMS40XSAKICAgICAgICAgICAgYWRkZWQgcG9zc2liaWxpdHkgZm9yIHBhcmFtZXRlcnMgaW4gdXNlY2FzZSBtZXNzYWdlcywgdG8gYmUgdXNlZCBpbiBpMThuIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjIgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuMiB1cGRhdGUKICAgICAgICBieQogICAgICAgIG1pY2hpCiAgICAgICAgOgogICAgICAgIFsxLjJdIAogICAgICAgICAgICBkZWxldGUgcmVzb3VyY2UgYnkgc2hlbGwgc2NyaXB0IGluc3RlYWQgc3NoZXhlYyBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS4yIGFkZDwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjIgYWRkCiAgICAgICAgYnkKICAgICAgICBtaWNoaQogICAgICAgIDoKICAgICAgICBbMS4yXSAKICAgICAgICAgICAgZGVsZXRlIHJlc291cmNlIGJ5IHNzaCBjYWxsZWQgZnJvbSBzaGVsbCBzY3JpcHQgYmVjYXVzZSBzc2hleGVjIGRvZXMgbm90IHdvcmsgaW4gYW55IGNhc2UgRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuMiB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS4yIHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgbWljaGkKICAgICAgICA6CiAgICAgICAgWzEuMl0gCiAgICAgICAgICAgIGh0ZG9jcyBkdW1wIHBhdGggaW1wcm92ZWQgRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuMiBhZGQ8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS4yIGFkZAogICAgICAgIGJ5CiAgICAgICAgbWljaGkKICAgICAgICA6CiAgICAgICAgWzEuMl0gCiAgICAgICAgICAgIHNhbXBsZSBmaWxlcyBmb3IgY3Jhd2xpbmcgYWRkZWQgRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuMiB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS4yIHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgbWljaGkKICAgICAgICA6CiAgICAgICAgWzEuMl0gCiAgICAgICAgICAgIGNhbGwgb2YgdGhlIHNoZWxsc2NyaXB0IHJlbW92ZWQgZm9yIGNyYXdsaW5nIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjIgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuMiB1cGRhdGUKICAgICAgICBieQogICAgICAgIG1pY2hpCiAgICAgICAgOgogICAgICAgIFsxLjJdIAogICAgICAgICAgICBsb2dnaW5nIGZpeGVkIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjIgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuMiB1cGRhdGUKICAgICAgICBieQogICAgICAgIG1pY2hpCiAgICAgICAgOgogICAgICAgIFsxLjJdIAogICAgICAgICAgICByZXNvbHZpbmcgb2YgcGF0aHMgZml4ZWQgRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuNCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS40IHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgandrYWx0egogICAgICAgIDoKICAgICAgICBbMS40XSAKICAgICAgICAgICAgW21pbm9yIGNoYW5nZV0gYWRkZWQgbWlzc2luZyBzdm4gcHJvcGVydHkgRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuNCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS40IHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgandrYWx0egogICAgICAgIDoKICAgICAgICBbMS40XSAKICAgICAgICAgICAgW21pbm9yIGNoYW5nZV0gZml4ZWQgdG8gdXNlIHRleHQgaW4gZGljdGlvbmFyeSBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS4yIHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjIgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBtaWNoaQogICAgICAgIDoKICAgICAgICBbMS4yXSAKICAgICAgICAgICAgc2hvdyBjb25maWd1cmF0aW9uIG9mIGNyYXdsZXIgZml4ZWQgRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuMiB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS4yIHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgbWljaGkKICAgICAgICA6CiAgICAgICAgWzEuMl0gCiAgICAgICAgICAgIGxpYnJhcmllcyB1cGRhdGVkIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjQgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuNCB1cGRhdGUKICAgICAgICBieQogICAgICAgIGp3a2FsdHoKICAgICAgICA6CiAgICAgICAgWzEuNF0gCiAgICAgICAgICAgIFttaW5vciBjaGFuZ2VdIHVzZSB0ZW1wbGF0ZSBmb3IgZXJyb3IgbWVzc2FnZXMgRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuNCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS40IHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgandrYWx0egogICAgICAgIDoKICAgICAgICBbMS40XSAKICAgICAgICAgICAgW21pbm9yIGNoYW5nZV0gdXNlIHRlbXBsYXRlIGZvciBlcnJvciBtZXNzYWdlcy4gRm9ybWF0dGluZzogcmVtb3ZlZCBjdHJsLU1zIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjQgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuNCB1cGRhdGUKICAgICAgICBieQogICAgICAgIGp3a2FsdHoKICAgICAgICA6CiAgICAgICAgWzEuNF0gCiAgICAgICAgICAgIFttaW5vciBjaGFuZ2VdIHVzZSB0ZW1wbGF0ZSBmb3IgZXJyb3IgbWVzc2FnZXMsIHdoZXJlIHBvc3NpYmxlLiBGb3JtYXR0aW5nOiByZW1vdmVkIGN0cmwtTXMgRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuNCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS40IHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgandrYWx0egogICAgICAgIDoKICAgICAgICBbMS40XSAKICAgICAgICAgICAgW21pbm9yIGNoYW5nZV0gcmVtb3ZlZCBkdXBsaWNhdGUgYWNjZXNzIHRvIGVycm9yIG1lc3NhZ2VzIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjQgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuNCB1cGRhdGUKICAgICAgICBieQogICAgICAgIGp3a2FsdHoKICAgICAgICA6CiAgICAgICAgWzEuNF0gCiAgICAgICAgICAgIFttaW5vciBjaGFuZ2VdIHVzZSB0ZW1wbGF0ZSBmb3IgZXJyb3IgbWVzc2FnZXMuIEZvcm1hdHRpbmc6IHJlbW92ZWQgY3RybC1NcyBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS40IHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjQgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBqd2thbHR6CiAgICAgICAgOgogICAgICAgIFsxLjRdIAogICAgICAgICAgICBbbWlub3IgY2hhbmdlXSB1c2UgdGVtcGxhdGUgZm9yIGVycm9yIG1lc3NhZ2VzLiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS40IHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjQgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBqd2thbHR6CiAgICAgICAgOgogICAgICAgIFsxLjRdIAogICAgICAgICAgICBbbWlub3IgY2hhbmdlXSB1c2UgdGVtcGxhdGUgZm9yIGVycm9yIG1lc3NhZ2VzLiBGb3JtYXR0aW5nOiByZW1vdmVkIGN0cmwtTXMgRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IFNpdGUgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPlNpdGUgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBncmVnb3IKICAgICAgICA6CiAgICAgICAgW1NpdGVdIAogICAgICAgICAgICBJbXByb3ZlZCB0aXRsZSBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgRG9jcyB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+RG9jcyB1cGRhdGUKICAgICAgICBieQogICAgICAgIGdyZWdvcgogICAgICAgIDoKICAgICAgICBbRG9jc10gCiAgICAgICAgICAgIEltcHJvdmVkIHRpdGxlIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjQgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuNCB1cGRhdGUKICAgICAgICBieQogICAgICAgIHRzY2hsYWJhY2gKICAgICAgICA6CiAgICAgICAgWzEuNF0gCiAgICAgICAgICAgIGFkZGVkIGEgbGluayB0byB0aGUgUmVsYXhORyBzY2hlbWEgdG8gdGhlIEF2YWxvbiBzZXJ2aWNlIGNvbmZpZ3VyYXRpb24KIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjQgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuNCB1cGRhdGUKICAgICAgICBieQogICAgICAgIHRzY2hsYWJhY2gKICAgICAgICA6CiAgICAgICAgWzEuNF0gCiAgICAgICAgICAgIGFkZGVkIGEgY29tbWVudCBhbmQgYSBsaW5rIHRvIHRoZSBzY2hlbWEgZm9yIHRoZSBsaW5rcyByZXNvdXJjZSB0eXBlCiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS40IGFkZDwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjQgYWRkCiAgICAgICAgYnkKICAgICAgICBqd2thbHR6CiAgICAgICAgOgogICAgICAgIFsxLjRdIAogICAgICAgICAgICBpbXBsZW1lbnRhdGlvbiBvZiBEb2N1bWVudFR5cGVCdWlsZGVyIGFzIGFuIEF2YWxvbiBTZXJ2aWNlCiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgU2l0ZSB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+U2l0ZSB1cGRhdGUKICAgICAgICBieQogICAgICAgIGdyZWdvcgogICAgICAgIDoKICAgICAgICBbU2l0ZV0gCiAgICAgICAgICAgIFJlbW92ZWQgZHVwbGljYXRlIGRlc2NyaXB0aW9uIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCBEb2NzIHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj5Eb2NzIHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgZ3JlZ29yCiAgICAgICAgOgogICAgICAgIFtEb2NzXSAKICAgICAgICAgICAgUmVtb3ZlZCBkdXBsaWNhdGUgZGVzY3JpcHRpb24gRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuMiB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS4yIHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgZ3JlZ29yCiAgICAgICAgOgogICAgICAgIFsxLjJdIAogICAgICAgICAgICBVcGRhdGVkIHZlcnNpb24gdG8gMS4yLjMgRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuMiB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS4yIHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgZ3JlZ29yCiAgICAgICAgOgogICAgICAgIFsxLjJdIAogICAgICAgICAgICBVcGRhdGVkIGluc3RhbGwgaW5zdHJ1Y3Rpb25zIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCBEb2NzIGFkZDwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj5Eb2NzIGFkZAogICAgICAgIGJ5CiAgICAgICAgZ3JlZ29yCiAgICAgICAgOgogICAgICAgIFtEb2NzXSAKICAgICAgICAgICAgQWRkZWQgYXJ0aWNsZXMgYnkgSm9uIExpbmN6YWsgRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IFNpdGUgYWRkPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPlNpdGUgYWRkCiAgICAgICAgYnkKICAgICAgICBncmVnb3IKICAgICAgICA6CiAgICAgICAgW1NpdGVdIAogICAgICAgICAgICBBZGRlZCBhcnRpY2xlcyBieSBKb24gTGluY3phayBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgRG9jcyB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+RG9jcyB1cGRhdGUKICAgICAgICBieQogICAgICAgIGdyZWdvcgogICAgICAgIDoKICAgICAgICBbRG9jc10gCiAgICAgICAgICAgIFJld3JvdGUgZnJvbnQgcGFnZSBvZiB0aGUgc2l0ZSBhbmQgaW1wcm92ZWQgdGhlIGxheW91dC4gQ29udmVydGVkIGFsbCBkb2N1bWVudHMgdG8gdGhlIGRvY3VtZW50LTIuMCBEVEQuICBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgU2l0ZSBhZGQ8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+U2l0ZSBhZGQKICAgICAgICBieQogICAgICAgIGdyZWdvcgogICAgICAgIDoKICAgICAgICBbU2l0ZV0gCiAgICAgICAgICAgIFJld3JvdGUgZnJvbnQgcGFnZSBvZiB0aGUgc2l0ZSBhbmQgaW1wcm92ZWQgdGhlIGxheW91dC4gQ29udmVydGVkIGFsbCBkb2N1bWVudHMgdG8gdGhlIGRvY3VtZW50LTIuMCBEVEQuICBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgU2l0ZSBhZGQ8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+U2l0ZSBhZGQKICAgICAgICBieQogICAgICAgIGdyZWdvcgogICAgICAgIDoKICAgICAgICBbU2l0ZV0gCiAgICAgICAgICAgICBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgU2l0ZSByZW1vdmU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+U2l0ZSByZW1vdmUKICAgICAgICBieQogICAgICAgIGdyZWdvcgogICAgICAgIDoKICAgICAgICBbU2l0ZV0gCiAgICAgICAgICAgIHByZXBhcmUgbmV3IHNpdGUgRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuNCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS40IHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgandrYWx0egogICAgICAgIDoKICAgICAgICBbMS40XSAKICAgICAgICAgICAgW21pbm9yIGNoYW5nZV0gY29ycmVjdGVkIHBhcmFtZXRlciBkZXNjcmlwdGlvbiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS40IHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjQgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBqd2thbHR6CiAgICAgICAgOgogICAgICAgIFsxLjRdIAogICAgICAgICAgICBbbWlub3IgY2hhbmdlXSBhZGRlZCBjb3B5cmlnaHQgbm90aWNlcyBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS40IHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjQgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBqd2thbHR6CiAgICAgICAgOgogICAgICAgIFsxLjRdIAogICAgICAgICAgICBbbWlub3IgY2hhbmdlXSBhZGRlZCBjb3B5cmlnaHQgbm90aWNlcyBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS40IHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjQgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBqd2thbHR6CiAgICAgICAgOgogICAgICAgIFsxLjRdIAogICAgICAgICAgICBbbWlub3IgY2hhbmdlXSBhZGRlZCBkaXNwbGF5IG9mIExEQVAgdXNlciBpZCB3aGVuIHByZXNlbnQ7IGZpeGVzIGJ1ZyAzNDU2NyBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS40IHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjQgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBqd2thbHR6CiAgICAgICAgOgogICAgICAgIFsxLjRdIAogICAgICAgICAgICBbbWlub3IgY2hhbmdlXSBmaXhlZCBsb2dnaW5nIHVzYWdlIGFuZCBtaXNzaW5nIHJlc3VsdCByZXRyaWV2YWw7IHJlbW92ZWQKdGFicwogRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuMiB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS4yIHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgandrYWx0egogICAgICAgIDoKICAgICAgICBbMS4yXSAKICAgICAgICAgICAgW21pbm9yIGNoYW5nZV0gYXBwbGllZCBKYW5uJ3Mgc3VnZ2VzdGlvbnMgKGlkPTM0NTY3KSB0byBzaG93IGxkYXAgaWQgb2YgdXNlcjsgd2lsbCB0YWtlIGEgbG9vayBhdCB0cnVuayBhcyB3ZWxsIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjQgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuNCB1cGRhdGUKICAgICAgICBieQogICAgICAgIGp3a2FsdHoKICAgICAgICA6CiAgICAgICAgWzEuNF0gCiAgICAgICAgICAgIE1hZGUgRG9jdW1lbnRUeXBlQnVpbGRlciBhIHNlcnZpY2UuIAogRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuNCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS40IHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgbWljaGkKICAgICAgICA6CiAgICAgICAgWzEuNF0gCiAgICAgICAgICAgIGxhbmd1YWdlIGFkZGVkIGluIG9yZGVyIHRvIHNob3cgaG93IHRoZSBsYW5ndWFnZSBjYW4gYWxzbyBiZSB1c2VkIHdpdGhpbiB0aGUgZ2xvYmFsIGxheW91dCBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS4yIHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjIgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBtaWNoaQogICAgICAgIDoKICAgICAgICBbMS4yXSAKICAgICAgICAgICAgc291cmNlIGVkaXRvciBsaW5rIGZpeGVkIGFuZCBYb3B1cyBlZGl0IGxpbmsgYWRkZWQgd2hlcmVhcyBub3QgYWN0aXZhdGVkIHlldCBiZWNhdXNlIHRoZSBzY2hlbWEgYW5kIFhTTFQgaXMgY3VycmVudGx5IG1pc3NpbmcgRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuMiB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS4yIHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgbWljaGkKICAgICAgICA6CiAgICAgICAgWzEuMl0gCiAgICAgICAgICAgIGxhbmd1YWdlIHBhcmFtZXRlciBhZGRlZCBhbmQgZ2VybWFuIHRleHQgYWRkZWQgRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuMiB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS4yIHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgbWljaGkKICAgICAgICA6CiAgICAgICAgWzEuMl0gCiAgICAgICAgICAgIGxhbmd1YWdlIGFkZGVkIHN1Y2ggdGhhdCBpdCBjYW4gYmUgcHJvY2Vzc2VkIHdpdGhpbiB0aGUgZ2xvYmFsIFhTTFQgRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuMiB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS4yIHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgZWRpdGgKICAgICAgICA6CiAgICAgICAgWzEuMl0gCiAgICAgICAgICAgIEZpeCBidWcjMzQxOTA6IGludHJvZHVjdGlvbiBvZiBibGFuayBsaW5lcywgd2hpbGUgc2F2aW5nIHRoZSBtZXRhZGF0YSBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS4yIHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjIgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBlZGl0aAogICAgICAgIDoKICAgICAgICBbMS4yXSAKICAgICAgICAgICAgUmVwbGFjZSB0aGUgV3JpdGVyLCBzbyB3ZSBjYW4gc2V0IHRoZSBlbmNvZGluZyB0byB1dGYtOC4gRWxzZSB0aGUgZGVmYXVsdCBlbmNvZGluZyBvZiB0aGUgcGxhdGZvcm0gaXMgdGFrZW4gRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuMiB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS4yIHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgZWRpdGgKICAgICAgICA6CiAgICAgICAgWzEuMl0gCiAgICAgICAgICAgIFRoYW5rcyB0byBTaW1vbiBMaXR3YW46cmVuYW1lZCBob21vbnltb3VzIGZvcm1maWVsZCwgYWRkIGEgYml0IGphdmFzY3JpcHQgYW5kIGEgaGludCBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS4yIHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjIgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBlZGl0aAogICAgICAgIDoKICAgICAgICBbMS4yXSAKICAgICAgICAgICAgVGhhbmtzIHRvIFNpbW9uIExpdHdhbjogdGhpcyBwYXRjaCBwcmV2ZW50cyBjYWNoaW5nIHRoZSBvbmVGb3JtRWRpdG9yIGluIHRoZSBicm93c2VyLiBCdWcgIzM0NDE0IERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjIgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuMiB1cGRhdGUKICAgICAgICBieQogICAgICAgIGVkaXRoCiAgICAgICAgOgogICAgICAgIFsxLjJdIAogICAgICAgICAgICBUaGFua3MgdG8gU2ltb24gTGl0d2FuOnJlbmFtZWQgaG9tb255bW91cyBmb3JtZmllbGQsIGFkZCBhIGJpdCBqYXZhc2NyaXB0IGFuZCBhIGhpbnRzcmMvd2ViYXBwL2xlbnlhL3hzbHQvbm90aWZpY2F0aW9uL21lc3NhZ2UyeHNsdC54c2wgRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuMiB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS4yIHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgZWRpdGgKICAgICAgICA6CiAgICAgICAgWzEuMl0gCiAgICAgICAgICAgIFRoYW5rcyB0byBTaW1vbiBMaXR3YW46IGNoYW5nZXMgaW4gVXBsb2FkQWN0aW9uLmphdmEsIHVzY2FzZS1ieGVuZy54bWFwIGFuZCBhc3NldC11cGxvYWQueHNsIGZvciBlcnJvciBub3RpZmljYXRpb24gYWZ0ZXIgZmlsZXVwbG9hZCBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS4yIHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjIgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBlZGl0aAogICAgICAgIDoKICAgICAgICBbMS4yXSAKICAgICAgICAgICAgVGhhbmtzIHRvIFNpbW9uIExpdHdhbi4gQW5vdGhlciBtaW5vciBjaGFuZ2UgaW4gdGhlIGRlc2lnbi4gSGlkZSBmb3JtdWxhcmZpZWxkcyBvZiB0aGUgZXhpc3RpbmcgYXNzZXQgc2VjdGlvbiBpZiB0aGUgYXNzZXQgbGlicmFyeSBpcyBlbXB0eSBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS40IGFkZDwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjQgYWRkCiAgICAgICAgYnkKICAgICAgICBhbmRyZWFzCiAgICAgICAgOgogICAgICAgIFsxLjRdIAogICAgICAgICAgICB1c2luZyB1c2VjYXNlIGZyYW1ld29yayBmb3IgQlhFIGltYWdlIHVwbG9hZCBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS40IHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjQgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBhbmRyZWFzCiAgICAgICAgOgogICAgICAgIFsxLjRdIAogICAgICAgICAgICBbbWlub3IgY2hhbmdlXSByZW1vdmVkIHVudXNlZCBtZXRob2QgRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuNCBhZGQ8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS40IGFkZAogICAgICAgIGJ5CiAgICAgICAgYW5kcmVhcwogICAgICAgIDoKICAgICAgICBbMS40XSAKICAgICAgICAgICAgYWRkZWQgSW5zZXJ0QXNzZXQgdXNlY2FzZSBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS40IGFkZDwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjQgYWRkCiAgICAgICAgYnkKICAgICAgICBhbmRyZWFzCiAgICAgICAgOgogICAgICAgIFsxLjRdIAogICAgICAgICAgICBhZGRlZCBVc2VjYXNlSW52b2tlciBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS40IHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjQgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBhbmRyZWFzCiAgICAgICAgOgogICAgICAgIFsxLjRdIAogICAgICAgICAgICBbbWlub3IgY2hhbmdlXSByZW1vdmVkIGRlYWQgY29kZSBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS40IHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjQgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBhbmRyZWFzCiAgICAgICAgOgogICAgICAgIFsxLjRdIAogICAgICAgICAgICB1bml0IG9mIHdvcms6IHN5bmNocm9uaXplIGNvbW1pdCgpIGFuZCByb2xsYmFjaygpIGJlY2F1c2UgY2hhbmdlcyB0byBzb3VyY2VzIGFyZSBtYWRlIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjQgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuNCB1cGRhdGUKICAgICAgICBieQogICAgICAgIGFuZHJlYXMKICAgICAgICA6CiAgICAgICAgWzEuNF0gCiAgICAgICAgICAgIGFkZGVkIG1pbWUtdHlwZSwgbGFzdG1vZGlmaWVkLCBjb250ZW50bGVuZ3RoIHRvIHJlcG8gc291cmNlcyBhbmQgYXNzZXRzIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjQgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuNCB1cGRhdGUKICAgICAgICBieQogICAgICAgIGFuZHJlYXMKICAgICAgICA6CiAgICAgICAgWzEuNF0gCiAgICAgICAgICAgIERlZmF1bHRTaXRlVHJlZTogZG9uJ3QgdXNlIHNvdXJjZSdzIERPTSBkb2N1bWVudCBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS40IHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjQgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBhbmRyZWFzCiAgICAgICAgOgogICAgICAgIFsxLjRdIAogICAgICAgICAgICByZW1vdmVkICd1c2VidWZmZXI9ZmFsc2UnIChhY2NpZGVudGlhbCBjaGVjay1pbikgRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuMiB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS4yIHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgbWljaGkKICAgICAgICA6CiAgICAgICAgWzEuMl0gCiAgICAgICAgICAgIHRoYW5rcyB0byBPbGl2aWVyIEx1c3RlbmJlcmdlciB0aGUgSmF2YXNjcmlwdCBlcnJvciB3aXRoaW4gRmlyZWZveCBzaG91bGQgYmUgZ29uZSBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgU2FuZGJveCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+U2FuZGJveCB1cGRhdGUKICAgICAgICBieQogICAgICAgIG1pY2hpCiAgICAgICAgOgogICAgICAgIFtTYW5kYm94XSAKICAgICAgICAgICAgdGhhbmtzIHRvIEZlbGl4IHRoZSBjbGFzc3BhdGggaXMgc2V0IGNvcnJlY3RseSBzdWNoIHRoYXQgZmxvd3NjcmlwdCB3b3JrcyBwcm9wZXJseSBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS40IHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjQgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBqd2thbHR6CiAgICAgICAgOgogICAgICAgIFsxLjRdIAogICAgICAgICAgICBbbWlub3IgY2hhbmdlXSBjaGFuZ2VkIGluZGV4IGZyb20gaSB0byBqIGluIGlubmVyIGxvb3AgLSBJIGFzc3VtZSB0aGlzIHdhcyBhIHR5cG8gRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuNCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS40IHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgYW5kcmVhcwogICAgICAgIDoKICAgICAgICBbMS40XSAKICAgICAgICAgICAgdXNpbmcgUmVzb3VyY2Ugb2JqZWN0cyBpbiBhc3NldCBtZ210IHNjcmVlbiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS40IGFkZDwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjQgYWRkCiAgICAgICAgYnkKICAgICAgICBhbmRyZWFzCiAgICAgICAgOgogICAgICAgIFsxLjRdIAogICAgICAgICAgICBnZW5lcmFsaXplZCBEdWJsaW5Db3JlIHRvIE1ldGFEYXRhTWFuYWdlciwgdXNpbmcgbGVueWE6Ly8gc291cmNlcyBmb3IgYXNzZXQgbWFuYWdlbWVudCBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS40IHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjQgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBhbmRyZWFzCiAgICAgICAgOgogICAgICAgIFsxLjRdIAogICAgICAgICAgICBnZW5lcmFsaXplZCBEdWJsaW5Db3JlIHRvIE1ldGFEYXRhTWFuYWdlciwgdXNpbmcgbGVueWE6Ly8gc291cmNlcyBmb3IgYXNzZXQgbWFuYWdlbWVudCBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS40IHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjQgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBhbmRyZWFzCiAgICAgICAgOgogICAgICAgIFsxLjRdIAogICAgICAgICAgICBhZGRlZCBzdXBwb3J0IGZvciBub24tWE1MIHJlcG9zaXRvcnkgc291cmNlcyBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgU2FuZGJveCByZW1vdmU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+U2FuZGJveCByZW1vdmUKICAgICAgICBieQogICAgICAgIG1pY2hpCiAgICAgICAgOgogICAgICAgIFtTYW5kYm94XSAKICAgICAgICAgICAgb2Jzb2xldGUgRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuMiB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS4yIHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgbWljaGkKICAgICAgICA6CiAgICAgICAgWzEuMl0gCiAgICAgICAgICAgIG5vdGUgYWJvdXQgbW9kX2prIGFkZGVkIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCBTYW5kYm94IHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj5TYW5kYm94IHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgbWljaGkKICAgICAgICA6CiAgICAgICAgW1NhbmRib3hdIAogICAgICAgICAgICB3ZWJhcHAuZGlyIGludHJvZHVjZWQgRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IFNhbmRib3ggdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPlNhbmRib3ggdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBtaWNoaQogICAgICAgIDoKICAgICAgICBbU2FuZGJveF0gCiAgICAgICAgICAgIHRoYW5rcyB0byBGZWxpeCBSb2V0aGVuYmFjaGVyIGl0J3Mgbm93IGluZGVwZW5kZW50IG9mIHRoZSBkZWZhdWx0IHB1YmxpY2F0aW9uIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjIgcmVtb3ZlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuMiByZW1vdmUKICAgICAgICBieQogICAgICAgIG1pY2hpCiAgICAgICAgOgogICAgICAgIFsxLjJdIAogICAgICAgICAgICBzaXRldHJlZSBpcyBub3QgbmVlZGVkIGJ5IGJsb2cgcHVibGljYXRpb24gRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IFNpdGUgYWRkPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPlNpdGUgYWRkCiAgICAgICAgYnkKICAgICAgICB0c2NobGFiYWNoCiAgICAgICAgOgogICAgICAgIFtTaXRlXSAKICAgICAgICAgICAgQWRkZWQgc29tZSBtb3JlIHJlbWFya3MgdG8gdGhlIGludHJvZHVjdGlvbiBzZWN0aW9uIG9mIHRoZSBkb2N1bWVudC4KIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjQgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuNCB1cGRhdGUKICAgICAgICBieQogICAgICAgIGp3a2FsdHoKICAgICAgICA6CiAgICAgICAgWzEuNF0gCiAgICAgICAgICAgIFttaW5vciBjaGFuZ2VdIGVuYWJsZWQgdXNpbmcgbG9nZ2VyIGluIERlZmF1bHREb2N1bWVudCBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgRG9jcyB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+RG9jcyB1cGRhdGUKICAgICAgICBieQogICAgICAgIGFuZHJlYXMKICAgICAgICA6CiAgICAgICAgW0RvY3NdIAogICAgICAgICAgICBhZGRlZCBtb3JlIGRvY3Mgb24gdXNlY2FzZSBmcmFtZXdvcmsgRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuNCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS40IHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgandrYWx0egogICAgICAgIDoKICAgICAgICBbMS40XSAKICAgICAgICAgICAgW21pbm9yIGNoYW5nZV0gcmVtb3ZlZCBubyBsb25nZXIgZXhpc3RpbmcgYWN0aW9ucywgSFRNTEZvcm1TYXZlQWN0aW9uIGFuZCBPbmVGb3JtRWRpdG9yU2F2ZUFjdGlvbiwgc28gdGhleSBhcmUgbm90IGFkZGVkIHRvIHNpdGVtYXAgRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuMiB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS4yIHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgbWljaGkKICAgICAgICA6CiAgICAgICAgWzEuMl0gCiAgICAgICAgICAgIHRoYW5rcyB0byBKb3NpYXMgVGhvZW55IHRoZSBsaW5rIGF0dHJpYnV0ZSBpcyBhbHNvIHVwZGF0ZWQgd2l0aGluIHRoZSBsaXZlIGFyZSB3aGVuIHB1Ymxpc2hlZCBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS40IHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjQgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBhbmRyZWFzCiAgICAgICAgOgogICAgICAgIFsxLjRdIAogICAgICAgICAgICB1c2UgcmVxdWVzdCBhdHRyaWJ1dGUgaW5zdGVhZCBvZiBzZXNzaW9uIGF0dHJpYnV0ZSB0byBzdG9yZSBVbml0T2ZXb3JrIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjIgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuMiB1cGRhdGUKICAgICAgICBieQogICAgICAgIGFuZHJlYXMKICAgICAgICA6CiAgICAgICAgWzEuMl0gCiAgICAgICAgICAgIFttaW5vciBjaGFuZ2VdIHJlbW92ZWQgVE9ETyBoaW50LCBhZGRlZCBzb21lIGphdmFkb2NzIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjIgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuMiB1cGRhdGUKICAgICAgICBieQogICAgICAgIGVkaXRoCiAgICAgICAgOgogICAgICAgIFsxLjJdIAogICAgICAgICAgICBUaGUgY29tbWVudHMgc2hvdWwgYmUgY29waWVkIHRvbyBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS4yIHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjIgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBhbmRyZWFzCiAgICAgICAgOgogICAgICAgIFsxLjJdIAogICAgICAgICAgICBTaXRlVHJlZUdlbmVyYXRvcjogdXNlIFhNTCBuYW1lc3BhY2UgZm9yIHhtbDpsYW5nIGF0dHJpYnV0ZSwgdGhpcyBmaXhlcyB0aGUgZGlzcGxheSBvZiBub24tZGVmYXVsdCBsYW5ndWFnZXMuIFRoYW5rcyB0byBKb3NpYXMgVGhvZW55LiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS40IHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjQgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBqd2thbHR6CiAgICAgICAgOgogICAgICAgIFsxLjRdIAogICAgICAgICAgICBbbWlub3IgY2hhbmdlXSB1c2UgYWxyZWFkeSBhdmFpbGFibGUgcHVibGljYXRpb24gaW5zdGVhZCBvZiBsb29rdXAgRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuNCByZW1vdmU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS40IHJlbW92ZQogICAgICAgIGJ5CiAgICAgICAgYW5kcmVhcwogICAgICAgIDoKICAgICAgICBbMS40XSAKICAgICAgICAgICAgcmVtb3ZlZCBvYnNvbGV0ZSAxZm9ybWVkaXQgZGlyZWN0b3J5IERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjQgcmVtb3ZlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuNCByZW1vdmUKICAgICAgICBieQogICAgICAgIGFuZHJlYXMKICAgICAgICA6CiAgICAgICAgWzEuNF0gCiAgICAgICAgICAgIHJlbW92ZWQgb2Jzb2xldGUgZm9ybXMvb25lZm9ybSBlZGl0b3IgZmlsZXMgRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuNCBhZGQ8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS40IGFkZAogICAgICAgIGJ5CiAgICAgICAgYW5kcmVhcwogICAgICAgIDoKICAgICAgICBbMS40XSAKICAgICAgICAgICAgcG9ydGVkIG9uZWZvcm1lZGl0b3IgdG8gdXNlY2FzZSBmcmFtZXdvcmssIHJlbW92ZWQgb2Jzb2xldGUgSHRtbEZvcm1TYXZlQWN0aW9uIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjQgYWRkPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuNCBhZGQKICAgICAgICBieQogICAgICAgIGFuZHJlYXMKICAgICAgICA6CiAgICAgICAgWzEuNF0gCiAgICAgICAgICAgIHVzZWNhc2UgZnJhbWV3b3JrIGZvciBibG9nIGZvcm0gZWRpdG9yIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjQgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuNCB1cGRhdGUKICAgICAgICBieQogICAgICAgIGFuZHJlYXMKICAgICAgICA6CiAgICAgICAgWzEuNF0gCiAgICAgICAgICAgIHVzZWNhc2VzLmpzOiBhbGxvdyB1c2VjYXNlIHRvIHJvbGxiYWNrIHRoZSB0cmFuc2l0aW9uIGlmIGFuIGV4Y2VwdGlvbiB3YXMgdGhyb3duIGluIHRoZSBmbG93c2NyaXB0IERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjQgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuNCB1cGRhdGUKICAgICAgICBieQogICAgICAgIGFuZHJlYXMKICAgICAgICA6CiAgICAgICAgWzEuNF0gCiAgICAgICAgICAgIGNoZWNrIGZvciBzaXRlIG1hbmFnZXIgaGludCAhPSBudWxsIGluIERlZmF1bHREb2N1bWVudC5leGlzdHMoKSBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgU2l0ZSByZW1vdmU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+U2l0ZSByZW1vdmUKICAgICAgICBieQogICAgICAgIHRzY2hsYWJhY2gKICAgICAgICA6CiAgICAgICAgW1NpdGVdIAogICAgICAgICAgICBBZGRlZCBhIGRvY3VtZW50IGFib3V0IFdZU0lXWUcgaW4gZ2VuZXJhbC4gKFRvIGJlIGV4dGVuZGVkIGFuZCByZWxhdGVkIHRvIExlbnlhIGNvbmNlcHRzLikKIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjQgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuNCB1cGRhdGUKICAgICAgICBieQogICAgICAgIGFuZHJlYXMKICAgICAgICA6CiAgICAgICAgWzEuNF0gCiAgICAgICAgICAgIEFic3RyYWN0VXNlY2FzZTogbW92ZWQgY29tbWl0L3JvbGxiYWNrIHRvIGZpbmFsbHkgY2xhdXNlIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCBEb2NzIGFkZDwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj5Eb2NzIGFkZAogICAgICAgIGJ5CiAgICAgICAgdHNjaGxhYmFjaAogICAgICAgIDoKICAgICAgICBbRG9jc10gCiAgICAgICAgICAgIEFkZGVkIGEgZG9jdW1lbnQgYWJvdXQgV1lTSVdZRyBpbiBnZW5lcmFsLiAoVG8gYmUgZXh0ZW5kZWQgYW5kIHJlbGF0ZWQgdG8gTGVueWEgY29uY2VwdHMgaW4gcGFydGljdWxhci4pCiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgRG9jcyBhZGQ8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+RG9jcyBhZGQKICAgICAgICBieQogICAgICAgIHRzY2hsYWJhY2gKICAgICAgICA6CiAgICAgICAgW0RvY3NdIAogICAgICAgICAgICBSZW5hbWVkIHRoZSAiQ29uY2VwdHMiIHNlY3Rpb24gdG8gIlRlY2huaWNhbCBSZWZlcmVuY2UiCiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS40IHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjQgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBqd2thbHR6CiAgICAgICAgOgogICAgICAgIFsxLjRdIAogICAgICAgICAgICBbbWlub3IgY2hhbmdlXSBzZXQgc3ZuOmtleXdvcmRzIGZvciBJZCBvbiBmdXR1cmUgY29tbWl0cyBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS40IHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjQgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBqd2thbHR6CiAgICAgICAgOgogICAgICAgIFsxLjRdIAogICAgICAgICAgICBbbWlub3IgY2hhbmdlXSBhZGRlZCBzb21lIGRlYnVnIGxvZyBtZXNzYWdlcyBhbmQgZG9jdW1lbnRhdGlvbiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS40IHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjQgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBhbmRyZWFzCiAgICAgICAgOgogICAgICAgIFsxLjRdIAogICAgICAgICAgICBhbGxvdyB0byBjYW5jZWwgdXNlY2FzZXMgaW5jbC4gcm9sbGJhY2sgb2YgdGhlIHRyYW5zaXRpb24sIHdoaWNoIG1lYW5zIHRoYXQgb2JqZWN0cyBhcmUgY2hlY2tlZCBpbiB3aGVuIGEgdXNlY2FzZSB1c2VzIHBlc3NpbWlzdGljIG9mZmxpbmUgbG9jayBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS40IHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjQgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBhbmRyZWFzCiAgICAgICAgOgogICAgICAgIFsxLjRdIAogICAgICAgICAgICBbbWlub3IgY2hhbmdlXSByZW1vdmVkIHJlZmVyZW5jZSB0byBVbml0T2ZXb3JrLlJPTEUgRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuNCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS40IHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgYW5kcmVhcwogICAgICAgIDoKICAgICAgICBbMS40XSAKICAgICAgICAgICAgW21pbm9yIGNoYW5nZV0gcmVtb3ZlZCByZWZlcmVuY2UgdG8gbm9uLWV4aXN0ZW50IGRlZmF1bHQuY3NzIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjQgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuNCB1cGRhdGUKICAgICAgICBieQogICAgICAgIGp3a2FsdHoKICAgICAgICA6CiAgICAgICAgWzEuNF0gCiAgICAgICAgICAgIFttaW5vciBjaGFuZ2VdIFVuaXRPZldvcmsgaXMgbm8gbG9uZ2VyIGEgc2VydmljZSAtJmd0OyBkbyBub3QgcmVsZWFzZSBpdCB0aHJvdWdoIHNlcnZpY2UgbWFuYWdlciBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS40IHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjQgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBqd2thbHR6CiAgICAgICAgOgogICAgICAgIFsxLjRdIAogICAgICAgICAgICBbbWlub3IgY2hhbmdlXSBhZGRlZCBkZWJ1ZyBtZXNzYWdlIGF0IGVudHJ5IG9mIHVzZWNhc2UgZmxvdywgdG8gZmFjaWxpdGF0ZSB0cmFjaW5nIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjQgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuNCB1cGRhdGUKICAgICAgICBieQogICAgICAgIGFuZHJlYXMKICAgICAgICA6CiAgICAgICAgWzEuNF0gCiAgICAgICAgICAgIHVuaXQgb2Ygd29yazogY2hlY2sgaW4gYWxsIGludm9sdmVkIHJlc291cmNlcywgbm90IG9ubHkgdGhlIGNoYW5nZWQgb25lcyBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS40IGFkZDwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjQgYWRkCiAgICAgICAgYnkKICAgICAgICBhbmRyZWFzCiAgICAgICAgOgogICAgICAgIFsxLjRdIAogICAgICAgICAgICBtb3ZlZCBmb3JtcyBKWCB0ZW1wbGF0ZSB0byBmb3JtcyBmb2xkZXIsIGltcHJvdmVkIGVycm9yIG1lc3NhZ2UgZGlzcGxheSBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS40IHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjQgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBhbmRyZWFzCiAgICAgICAgOgogICAgICAgIFsxLjRdIAogICAgICAgICAgICB1c2luZyByZXZpc2lvbiBjb250cm9sbGVyIHRvIGRldGVybWluZSBpZiBzb3VyY2Ugbm9kZSBpcyBjaGVja2VkIG91dCBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS40IHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjQgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBhbmRyZWFzCiAgICAgICAgOgogICAgICAgIFsxLjRdIAogICAgICAgICAgICBhZGRlZCBmdW5jdGlvbmFsaXR5IHRvIHN1cHBvcnQgcGVzc2ltaXN0aWMgb2ZmbGluZSBsb2NrLCBmaXhlZCBSQ01MIHBhdGggcmVzb2x2aW5nIGZvciBTb3VyY2VOb2RlcyBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS40IHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjQgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBncmVnb3IKICAgICAgICA6CiAgICAgICAgWzEuNF0gCiAgICAgICAgICAgIENoYW5nZWQgc2hvcnRoYW5kIGZvciBSZXNvdXJjZU5vdEZvdW5kIGV4Y2VwdGlvbiB0byBub3QtZm91bmQgdG8gbWFrZSBlcnJvciBwaXBlbGluZXMgd29yayBhZ2Fpbi4gRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuNCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS40IHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgZ3JlZ29yCiAgICAgICAgOgogICAgICAgIFsxLjRdIAogICAgICAgICAgICBNb3ZlZCBYU1BQcmVjb21waWxlV3JhcHBlciB0byB0ZXN0IHNvdXJjZXMgRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuNCBhZGQ8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS40IGFkZAogICAgICAgIGJ5CiAgICAgICAgZ3JlZ29yCiAgICAgICAgOgogICAgICAgIFsxLjRdIAogICAgICAgICAgICBNb3ZlZCBYU1BQcmVjb21waWxlV3JhcHBlciB0byB0ZXN0IHNvdXJjZXMgRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IFNhbmRib3ggdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPlNhbmRib3ggdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBtaWNoaQogICAgICAgIDoKICAgICAgICBbU2FuZGJveF0gCiAgICAgICAgICAgIHRoYW5rcyB0byBGZWxpeCBhcmNoaXZlLCBldGMuIGhhcyBiZWVuIGltcGxlbWVudGVkIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjQgYWRkPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuNCBhZGQKICAgICAgICBieQogICAgICAgIGFuZHJlYXMKICAgICAgICA6CiAgICAgICAgWzEuNF0gCiAgICAgICAgICAgIG1pZ3JhdGVkIGZvcm1zIGVkaXRvciB0byB1c2VjYXNlIGZyYW1ld29yayBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS40IHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjQgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBhbmRyZWFzCiAgICAgICAgOgogICAgICAgIFsxLjRdIAogICAgICAgICAgICB1c2VjYXNlcyB0aHJvdyBleGNlcHRpb24gaW4gYWR2YW5jZSgpIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjIgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuMiB1cGRhdGUKICAgICAgICBieQogICAgICAgIG1pY2hpCiAgICAgICAgOgogICAgICAgIFsxLjJdIAogICAgICAgICAgICBpbWFnZSBhbmQgYXNzZXQgdXBsb2FkIHVuaWZpZWQgdGhhbmtzIHRvIFNpbW9uIExpdHdhbiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS4yIHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjIgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBtaWNoaQogICAgICAgIDoKICAgICAgICBbMS4yXSAKICAgICAgICAgICAgdGhhbmtzIHRvIEZlbGl4IGFuZCBKb3NpYXMgbGFzdCBtb2RpZmllZCBoYXMgYmVlbiBpbXBsZW1lbmV0ZWQgRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuMiBhZGQ8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS4yIGFkZAogICAgICAgIGJ5CiAgICAgICAgbWljaGkKICAgICAgICA6CiAgICAgICAgWzEuMl0gCiAgICAgICAgICAgIGxhc3QgbW9kaWZpZWQgZm9yIHNpdGV0cmVlIGltcGxlbWVudGF0aW9uIGFkZGVkIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCBTYW5kYm94IHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj5TYW5kYm94IHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgbWljaGkKICAgICAgICA6CiAgICAgICAgW1NhbmRib3hdIAogICAgICAgICAgICBub3RlIGFib3V0IHZpZXctd29ya3NwYWNlIGFkZGVkIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCBTYW5kYm94IHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj5TYW5kYm94IHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgbWljaGkKICAgICAgICA6CiAgICAgICAgW1NhbmRib3hdIAogICAgICAgICAgICBwYXRjaCBvZiBGZWxpeCBSb2V0aGVuYmFjaGVyIGFkZGVkIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjQgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuNCB1cGRhdGUKICAgICAgICBieQogICAgICAgIGFuZHJlYXMKICAgICAgICA6CiAgICAgICAgWzEuNF0gCiAgICAgICAgICAgIGFkZCBleGNlcHRpb24gdG8gVXNlY2FzZS5hZHZhbmNlKCkgRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuNCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS40IHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgYW5kcmVhcwogICAgICAgIDoKICAgICAgICBbMS40XSAKICAgICAgICAgICAgcmVwbGFjZSBhZG1pbi54bWFwIGJ5IHVzZWNhc2VzL2FkbWluL3VzZWNhc2UueG1hcCBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS40IHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjQgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBhbmRyZWFzCiAgICAgICAgOgogICAgICAgIFsxLjRdIAogICAgICAgICAgICBVc2luZyB1c2VjYXNlIGhhbmRsZXIgZm9yIEJYRSB1c2VjYXNlLiBUaGlzIGFsbG93cyB0cmFuc2FjdGlvbiBoYW5kbGluZy4gRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuNCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS40IHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgYW5kcmVhcwogICAgICAgIDoKICAgICAgICBbMS40XSAKICAgICAgICAgICAgYWRkZWQgcGFyYW1ldGVyaXphdGlvbiBmb3IgdXNlY2FzZXMgRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuNCBhZGQ8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS40IGFkZAogICAgICAgIGJ5CiAgICAgICAgYW5kcmVhcwogICAgICAgIDoKICAgICAgICBbMS40XSAKICAgICAgICAgICAgYWRkZWQgc2VydmVyIHN0YXR1cyB1c2VjYXNlIEpYIHRlbXBsYXRlIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjQgYWRkPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuNCBhZGQKICAgICAgICBieQogICAgICAgIGFuZHJlYXMKICAgICAgICA6CiAgICAgICAgWzEuNF0gCiAgICAgICAgICAgIGFkZGVkIFNpdGVVdGlsIGNsYXNzIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjQgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuNCB1cGRhdGUKICAgICAgICBieQogICAgICAgIGFuZHJlYXMKICAgICAgICA6CiAgICAgICAgWzEuNF0gCiAgICAgICAgICAgIHJlZmFjdG9yZWQgc2l0ZSBtYW5hZ2VtZW50LCBmaXhlZCBkZWxldGUgdXNlY2FzZSBwcm9ibGVtcyBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS40IHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjQgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBhbmRyZWFzCiAgICAgICAgOgogICAgICAgIFsxLjRdIAogICAgICAgICAgICBVc2UgYnl0ZSBhcnJheSBpbnN0ZWFkIG9mIHNlcGFyYXRlIHRocmVhZCB0byBjb252ZXJ0IERPTSB0byBpbnB1dCBzdHJlYW0uIFRoaXMgYXZvaWRzIHRoZSAncGlwZSBjbG9zZWQnIGV4Y2VwdGlvbi4gRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuNCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS40IHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgYW5kcmVhcwogICAgICAgIDoKICAgICAgICBbMS40XSAKICAgICAgICAgICAgZGlzYWJsZSAnZW1wdHkgdHJhc2gnIHdoZW4gdHJhc2ggaXMgZW1wdHkgRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuNCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS40IHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgYW5kcmVhcwogICAgICAgIDoKICAgICAgICBbMS40XSAKICAgICAgICAgICAgZGlzcGxheSBzaXRlIGFyZWEgdGFiIHByb3Blcmx5IERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjQgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuNCB1cGRhdGUKICAgICAgICBieQogICAgICAgIGFuZHJlYXMKICAgICAgICA6CiAgICAgICAgWzEuNF0gCiAgICAgICAgICAgIHVzZSBmdWxsIHBhZ2Ugd2lkdGggZm9yIGFkbWluIHVzZWNhc2UgdGFicyBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS40IGFkZDwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjQgYWRkCiAgICAgICAgYnkKICAgICAgICBhbmRyZWFzCiAgICAgICAgOgogICAgICAgIFsxLjRdIAogICAgICAgICAgICBkaXNwbGF5IGNvY29vbiAmYW1wOyBzZXJ2ZXIgc3RhdHVzIHByb3Blcmx5IERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjQgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuNCB1cGRhdGUKICAgICAgICBieQogICAgICAgIGFuZHJlYXMKICAgICAgICA6CiAgICAgICAgWzEuNF0gCiAgICAgICAgICAgIFttaW5vciBjaGFuZ2VdIGFkZGVkIHRhYiBKWCBpbXBvcnQgdG8gYWRkR3JvdXAgSlggdGVtcGxhdGUgRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuNCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS40IHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgYW5kcmVhcwogICAgICAgIDoKICAgICAgICBbMS40XSAKICAgICAgICAgICAgbG9ja2luZyBhZGRlZCB0byBDaGFuZ2VMYWJlbCB1c2VjYXNlIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjQgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuNCB1cGRhdGUKICAgICAgICBieQogICAgICAgIGFuZHJlYXMKICAgICAgICA6CiAgICAgICAgWzEuNF0gCiAgICAgICAgICAgIHByb3BlciBsb2NraW5nIHdoZW4gYSBkb2N1bWVudCBpcyBtb3ZlZCBvciBsaW5rcyBhcmUgcmV3cml0dGVuIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjQgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuNCB1cGRhdGUKICAgICAgICBieQogICAgICAgIGFuZHJlYXMKICAgICAgICA6CiAgICAgICAgWzEuNF0gCiAgICAgICAgICAgIFVzaW5nIGxlbnlhOi8vIHByb3RvY29sIGluIHBhcmFtZXRlci1kb2N0eXBlLnhtYXAuIFRoaXMgd2F5LCB0aGUgcmVzb3VyY2UgdHlwZSBpcyBjb3JyZWN0bHkgcmVzb2x2ZWQgaW4gdHJhbnNhY3Rpb25zLCBldmVuIGlmIHRoZSByZWFsIHNvdXJjZSBvZiBhIGRvY3VtZW50IGlzIG5vdCB5ZXQgY3JlYXRlZC4gRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuNCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS40IHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgYW5kcmVhcwogICAgICAgIDoKICAgICAgICBbMS40XSAKICAgICAgICAgICAge3BhZ2UtZW52ZWxvcGU6YXJlYX0gcmV0dXJucyBjb21wbGV0ZSBhcmVhIGluc3RlYWQgb2YgZG9jdW1lbnQgYXJlYSBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS40IHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjQgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBhbmRyZWFzCiAgICAgICAgOgogICAgICAgIFsxLjRdIAogICAgICAgICAgICBJbnRyb2R1Y2VkIGludGVyZmFjZXMgVmVyc2lvbmFibGUsIExvY2thYmxlLCBhbmQgSWRlbnRpZmlhYmxlLiBUaGlzIG1ha2VzIGl0IGVhc2llciB0byBhZGQgdGhlIGFwcHJvcHJpYXRlIGZ1bmN0aW9uYWxpdHkgdG8gYSBjbGFzcy4gRnVydGhlcm1vcmUsIGEgYnVnIHJlLiByZWN1cnNpdmUgZGVhY3RpdmF0aW9uIHdhcyBmaXhlZC4gRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuNCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS40IHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgYW5kcmVhcwogICAgICAgIDoKICAgICAgICBbMS40XSAKICAgICAgICAgICAgUHVibGlzaCByZWN1cnNpdmVseTogRG9uJ3QgcHVibGlzaCBhIGRvY3VtZW50IGlmIGl0J3MgcGFyZW50IGlzIG5vdCBwdWJsaXNoZWQgRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuNCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS40IHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgYW5kcmVhcwogICAgICAgIDoKICAgICAgICBbMS40XSAKICAgICAgICAgICAgYWRkZWQgbG9ja2luZyB0byBJbnZva2VXb3JrZmxvdyB1c2VjYXNlIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjQgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuNCB1cGRhdGUKICAgICAgICBieQogICAgICAgIGFuZHJlYXMKICAgICAgICA6CiAgICAgICAgWzEuNF0gCiAgICAgICAgICAgIGFkZGVkIGxvY2tpbmcgdG8gY3JlYXRlIHVzY2FzZXMgRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuNCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS40IHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgYW5kcmVhcwogICAgICAgIDoKICAgICAgICBbMS40XSAKICAgICAgICAgICAgW21pbm9yIGNoYW5nZV0gcmVwbGFjZWQgU3lzdGVtLm91dCBieSBnZXRMb2dnZXIoKS5kZWJ1ZyBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgRG9jcyB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+RG9jcyB1cGRhdGUKICAgICAgICBieQogICAgICAgIGFuZHJlYXMKICAgICAgICA6CiAgICAgICAgW0RvY3NdIAogICAgICAgICAgICBhZGRlZCBkb2N1OiBzZWN0aW9uICd2aWV3JyBmb3IgdGhlIHVzZWNhc2UgZnJhbWV3b3JrLCBzZWN0aW9uICdpbnN0YW50aWF0b3InIGZvciBwdWJsaWNhdGlvbiB0ZW1wbGF0aW5nIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjQgYWRkPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuNCBhZGQKICAgICAgICBieQogICAgICAgIGFuZHJlYXMKICAgICAgICA6CiAgICAgICAgWzEuNF0gCiAgICAgICAgICAgIGludHJvZHVjZWQgSW5zdGFudGlhdG9yIGludGVyZmFjZSB0byBjcmVhdGUgaW5zdGFuY2VzIG9mIHB1YmxpY2F0aW9uIHRlbXBsYXRlcyBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS40IHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjQgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBqd2thbHR6CiAgICAgICAgOgogICAgICAgIFsxLjRdIAogICAgICAgICAgICBbbWlub3IgY2hhbmdlXSBzZXQgSWQgZm9yIHN2biBiYWNrIGFzIGl0IHdhcyAtIHNvcnJ5IGFib3V0IHRoYXQgRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuNCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS40IHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgandrYWx0egogICAgICAgIDoKICAgICAgICBbMS40XSAKICAgICAgICAgICAgW21pbm9yIGNoYW5nZV0gc2V0IGNvY29vbi12ZXJzaW9uIHRvIDIuMS43IERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjQgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuNCB1cGRhdGUKICAgICAgICBieQogICAgICAgIGp3a2FsdHoKICAgICAgICA6CiAgICAgICAgWzEuNF0gCiAgICAgICAgICAgIFttaW5vciBjaGFuZ2VdIGNvcnJlY3RlZCBYTUwgc3ludGF4IERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjIgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuMiB1cGRhdGUKICAgICAgICBieQogICAgICAgIGFuZHJlYXMKICAgICAgICA6CiAgICAgICAgWzEuMl0gCiAgICAgICAgICAgIGFwcGxpZWQgcGF0Y2ggZm9yIGJ1ZyAjMzQzNDgsIHRoYW5rcyB0byBGZWxpeCBSb2V0aGVuYmFjaGVyIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjQgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuNCB1cGRhdGUKICAgICAgICBieQogICAgICAgIGdyZWdvcgogICAgICAgIDoKICAgICAgICBbMS40XSAKICAgICAgICAgICAgVGVtcG9yYXJ5IGZpeCBmb3IgYnVnIDM0MTc1IERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCBEb2NzIHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj5Eb2NzIHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgZ3JlZ29yCiAgICAgICAgOgogICAgICAgIFtEb2NzXSAKICAgICAgICAgICAgVXBkYXRlZCBpbnN0YWxsIGluc3RydWN0aW9ucyBmb3IgQ29jb29uIDIuMS43IGFuZCBKREsgMS41IERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjQgYWRkPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuNCBhZGQKICAgICAgICBieQogICAgICAgIGFuZHJlYXMKICAgICAgICA6CiAgICAgICAgWzEuNF0gCiAgICAgICAgICAgIEludHJvZHVjZWQgbGlnaHR3ZWlndCByZXBvc2l0b3J5IGxheWVyIHVzaW5nIFJlcG9zaXRvcnlTb3VyY2Ugd2hpY2ggaXMgcmVzb2x2ZWQgYnkgdGhlIGxlbnlhOi8vIHByb3RvY29sLiBUaGlzIGFsbG93cyB0cmFuc3BhcmVudCB0cmFuc2FjdGlvbiBoYW5kbGluZyBpbiB0aGUgc291cmNlIGxheWVyLiBUaGUgaW1wbGVtZW50YXRpb24gaXMgY3VycmVudGx5IGRvbmUgdXNpbmcgY29udGV4dDovLyBzb3VyY2VzLCB0aGlzIGNhbiBiZSBjaGFuZ2VkIHRvIEpDUiBsYXRlciBvbi4gRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuNCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS40IHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgYW5kcmVhcwogICAgICAgIDoKICAgICAgICBbMS40XSAKICAgICAgICAgICAgSW50cm9kdWNlZCBsaWdodHdlaWd0IHJlcG9zaXRvcnkgbGF5ZXIgdXNpbmcgUmVwb3NpdG9yeVNvdXJjZSB3aGljaCBpcyByZXNvbHZlZCBieSB0aGUgbGVueWE6Ly8gcHJvdG9jb2wuIFRoaXMgYWxsb3dzIHRyYW5zcGFyZW50IHRyYW5zYWN0aW9uIGhhbmRsaW5nIGluIHRoZSBzb3VyY2UgbGF5ZXIuIFRoZSBpbXBsZW1lbnRhdGlvbiBpcyBjdXJyZW50bHkgZG9uZSB1c2luZyBjb250ZXh0Oi8vIHNvdXJjZXMsIHRoaXMgY2FuIGJlIGNoYW5nZWQgdG8gSkNSIGxhdGVyIG9uLiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgRG9jcyB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+RG9jcyB1cGRhdGUKICAgICAgICBieQogICAgICAgIGdyZWdvcgogICAgICAgIDoKICAgICAgICBbRG9jc10gCiAgICAgICAgICAgIE1vcmUgbGl2ZSBzaXRlcyBhZGRlZCBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS40IHJlbW92ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjQgcmVtb3ZlCiAgICAgICAgYnkKICAgICAgICBncmVnb3IKICAgICAgICA6CiAgICAgICAgWzEuNF0gCiAgICAgICAgICAgIFJlbW92ZWQgcHJveHkgZ2VuZXJhdG9yIGFuZCBzY2hlZHVsZXIgc2l0ZW1hcCBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS40IHJlbW92ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjQgcmVtb3ZlCiAgICAgICAgYnkKICAgICAgICBncmVnb3IKICAgICAgICA6CiAgICAgICAgWzEuNF0gCiAgICAgICAgICAgIFJlbW92ZWQgZ2xvYmFsIGFudCB0YXNrcyBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS40IHJlbW92ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjQgcmVtb3ZlCiAgICAgICAgYnkKICAgICAgICBncmVnb3IKICAgICAgICA6CiAgICAgICAgWzEuNF0gCiAgICAgICAgICAgIFJlbW92ZSBhdXhpbGlhcnkgZmlsZXMgZm9yIG9sZC1zdHlsZSB1c2VjYXNlcy4gRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuNCByZW1vdmU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS40IHJlbW92ZQogICAgICAgIGJ5CiAgICAgICAgZ3JlZ29yCiAgICAgICAgOgogICAgICAgIFsxLjRdIAogICAgICAgICAgICBSZW1vdmUgYXV4aWxpYXJ5IGZpbGVzIGZvciBvbGQtc3R5bGUgdXNlY2FzZXMuIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjQgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuNCB1cGRhdGUKICAgICAgICBieQogICAgICAgIGdyZWdvcgogICAgICAgIDoKICAgICAgICBbMS40XSAKICAgICAgICAgICAgUmV2ZXJ0ZWQgbW92ZSBvZiBtZW51cyB0byBjb3JlICh0aGUgbWVudSBpcyBzcGVjaWZpYyB0byB0aGUgZGVmYXVsdCBwdWJsaWNhdGlvbikgRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuNCByZW1vdmU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS40IHJlbW92ZQogICAgICAgIGJ5CiAgICAgICAgZ3JlZ29yCiAgICAgICAgOgogICAgICAgIFsxLjRdIAogICAgICAgICAgICBSZW1vdmVkIHJlZGlyZWN0IFhTUCBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS40IGFkZDwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjQgYWRkCiAgICAgICAgYnkKICAgICAgICBncmVnb3IKICAgICAgICA6CiAgICAgICAgWzEuNF0gCiAgICAgICAgICAgIFN0cmlwIGRvd24gYWRtaW4gc2l0ZW1hcCBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS40IHJlbW92ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjQgcmVtb3ZlCiAgICAgICAgYnkKICAgICAgICBncmVnb3IKICAgICAgICA6CiAgICAgICAgWzEuNF0gCiAgICAgICAgICAgIFJlbW92ZWQgYWRtaW4gWFNQL1hTTCBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS40IHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjQgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBncmVnb3IKICAgICAgICA6CiAgICAgICAgWzEuNF0gCiAgICAgICAgICAgIFJlbW92ZWQgc2NoZWR1bGVyIGxvZ2ljc2hlZXQgRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuMiB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS4yIHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgZ3JlZ29yCiAgICAgICAgOgogICAgICAgIFsxLjJdIAogICAgICAgICAgICBSZW1vdmVkIHRyYWNlcyBvZiBpc28tODg1OS0xIHNlcmlhbGl6ZXJzIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjIgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuMiB1cGRhdGUKICAgICAgICBieQogICAgICAgIGdyZWdvcgogICAgICAgIDoKICAgICAgICBbMS4yXSAKICAgICAgICAgICAgSG9ub3VyIHRoZSBmb3JtLWVuY29kaW5nIGRlZmF1bHQgaW4gQ29jb29uIDIuMS43ICh0aGUgcHJldmlvdXMgYXBwcm9hY2gga2VwdCBsZWQgdG8gMiBlbnRyaWVzIGZvciBmb3JtLWVuY29kaW5nLi4pIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjIgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuMiB1cGRhdGUKICAgICAgICBieQogICAgICAgIGdyZWdvcgogICAgICAgIDoKICAgICAgICBbMS4yXSAKICAgICAgICAgICAgRG8gbm90IHJldHVybiBhbiBhcnJheSBvZiBBYnN0cmFjdFJvbGUgdG8gZW5hYmxlIGltcGxlbWVudGF0aW9ucyBub3QgZGVyaXZlZCBmcm9tIEFic3RyYWN0Um9sZS4gVGhpcyByZXNvbHZlcyBodHRwOi8vaXNzdWVzLmFwYWNoZS5vcmcvYnVnemlsbGEvc2hvd19idWcuY2dpP2lkPTM0MjkwIFRoYW5rcyB0byBKb2FjaGltIEJyZWl0c3ByZWNoZXIuIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjQgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuNCB1cGRhdGUKICAgICAgICBieQogICAgICAgIGdyZWdvcgogICAgICAgIDoKICAgICAgICBbMS40XSAKICAgICAgICAgICAgRG8gbm90IHJldHVybiBhbiBhcnJheSBvZiBBYnN0cmFjdFJvbGUgdG8gZW5hYmxlIGltcGxlbWVudGF0aW9ucyBub3QgZGVyaXZlZCBmcm9tIEFic3RyYWN0Um9sZS4gVGhpcyByZXNvbHZlcyBodHRwOi8vaXNzdWVzLmFwYWNoZS5vcmcvYnVnemlsbGEvc2hvd19idWcuY2dpP2lkPTM0MjkwIFRoYW5rcyB0byBKb2FjaGltIEJyZWl0c3ByZWNoZXIuIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjIgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuMiB1cGRhdGUKICAgICAgICBieQogICAgICAgIGdyZWdvcgogICAgICAgIDoKICAgICAgICBbMS4yXSAKICAgICAgICAgICAgUG9pbnQgdG8gQlhFIDEuMSBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS40IHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjQgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBhbmRyZWFzCiAgICAgICAgOgogICAgICAgIFsxLjRdIAogICAgICAgICAgICB1c2UgZG9jdW1lbnQgYXJlYSBmb3IgbWV0YSBkYXRhIGluc3RlYWQgb2YgdXNlY2FzZSBhcmVhIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjQgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuNCB1cGRhdGUKICAgICAgICBieQogICAgICAgIGFuZHJlYXMKICAgICAgICA6CiAgICAgICAgWzEuNF0gCiAgICAgICAgICAgIHJlbW92ZWQgdW5pdCBvZiB3b3JrIGZyb20gY29jb29uLnhjb25mIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjQgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuNCB1cGRhdGUKICAgICAgICBieQogICAgICAgIG1pY2hpCiAgICAgICAgOgogICAgICAgIFsxLjRdIAogICAgICAgICAgICBjcmVhdGUgYnVpbGQgZGlyIGJ5IGRlZmF1bHQgc3VjaCB0aGF0IGJ1aWxkIHByb2Nlc3MgZG9lcyBub3QgZmFpbCB1bm5lY2Vzc2FyaWx5IERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjIgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuMiB1cGRhdGUKICAgICAgICBieQogICAgICAgIG1pY2hpCiAgICAgICAgOgogICAgICAgIFsxLjJdIAogICAgICAgICAgICB0aGFua3MgdG8gU2ltb24gTGl0d2FuIHRoZSB0aXRsZSBvZiBhbiBhc3NldCBpcyBiZWluZyB0cmFuc2Zvcm1lZCBpbnRvIHdlbGwtZm9ybWVkIFhNTCBpZiBpbnNlcnRlZCB0aHJvdWdoIEJYRSBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS4yIHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjIgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBtaWNoaQogICAgICAgIDoKICAgICAgICBbMS4yXSAKICAgICAgICAgICAgdGhhbmtzIHRvIFNpbW9uIExpdHdhbiB0aGUgdGl0bGUgb2YgYW4gaW1hZ2UgaXMgYmVpbmcgdHJhbnNmb3JtZWQgaW50byB3ZWxsLWZvcm1lZCBYTUwgaWYgaW5zZXJ0ZWQgdGhyb3VnaCBCWEUgRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuMiB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS4yIHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgbWljaGkKICAgICAgICA6CiAgICAgICAgWzEuMl0gCiAgICAgICAgICAgIHRoYW5rcyB0byBTaW1vbiBMaXR3YW4gVVJMcyBhcmUgYmVpbmcgdHJhbnNmb3JtZWQgaW50byB3ZWxsLWZvcm1lZCBYTUwgRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuMiB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS4yIHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgbWljaGkKICAgICAgICA6CiAgICAgICAgWzEuMl0gCiAgICAgICAgICAgIGlnbm9yZSBsb2NhbCBidWlsZCBwcm9wZXJ0aWVzIGZpbGUgRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuMiB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS4yIHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgbWljaGkKICAgICAgICA6CiAgICAgICAgWzEuMl0gCiAgICAgICAgICAgIGNyZWF0ZSBwZW5kaW5nIGFuZCBkZWxldGUgZGlyIGlmIG5lY2Vzc2FyeSBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS4yIGFkZDwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjIgYWRkCiAgICAgICAgYnkKICAgICAgICBtaWNoaQogICAgICAgIDoKICAgICAgICBbMS4yXSAKICAgICAgICAgICAgcmVwbGljYXRpb24gdG8gbXVsdGlwbGUgc2VydmVycyBieSBzc2ggcmVzcC4gc2NwIGFkZGVkIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCBTYW5kYm94IHJlbW92ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj5TYW5kYm94IHJlbW92ZQogICAgICAgIGJ5CiAgICAgICAgbWljaGkKICAgICAgICA6CiAgICAgICAgW1NhbmRib3hdIAogICAgICAgICAgICByZXBsYWNlZCBieSBtb3N0IHJlY2VudCB2ZXJzaW9uIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCBTYW5kYm94IGFkZDwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj5TYW5kYm94IGFkZAogICAgICAgIGJ5CiAgICAgICAgbWljaGkKICAgICAgICA6CiAgICAgICAgW1NhbmRib3hdIAogICAgICAgICAgICBqYWFzIGJhc2VkIGltcGxlbWVudGF0aW9uIGFkZGVkIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCBTYW5kYm94IHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj5TYW5kYm94IHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgbWljaGkKICAgICAgICA6CiAgICAgICAgW1NhbmRib3hdIAogICAgICAgICAgICB1cGdyYWRlZCB0byBqYWFzIGJhc2VkIHZlcnNpb24gRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IFNhbmRib3ggYWRkPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPlNhbmRib3ggYWRkCiAgICAgICAgYnkKICAgICAgICBtaWNoaQogICAgICAgIDoKICAgICAgICBbU2FuZGJveF0gCiAgICAgICAgICAgIHBhdGNoZWQgWGFsYW4gYWRkZWQgRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuMiB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS4yIHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgZWRpdGgKICAgICAgICA6CiAgICAgICAgWzEuMl0gCiAgICAgICAgICAgIENvcHkgdGhlIGRpZmZlcmVudCBhdHRycyBvZiB0aGUgc2l0ZSB0cmVlIG5vZGVzLiBCdWdzICMzNDI5OC4gVGhhbmtzIHRvIEZlbGl4IFJvZXRoZW5iYWNoZXIgKFBhdGNoIGh0dHA6Ly9pc3N1ZXMuYXBhY2hlLm9yZy9idWd6aWxsYS9hdHRhY2htZW50LmNnaT9pZD0xNDYxOCZhbXA7YWN0aW9uPXZpZXcpICBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgU2FuZGJveCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+U2FuZGJveCB1cGRhdGUKICAgICAgICBieQogICAgICAgIG1pY2hpCiAgICAgICAgOgogICAgICAgIFtTYW5kYm94XSAKICAgICAgICAgICAgZGVwcmVjYXRlZCBnZXRTaXRlVHJlZSByZXBsYWNlZCBieSBnZXRUcmVlIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjIgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuMiB1cGRhdGUKICAgICAgICBieQogICAgICAgIG1pY2hpCiAgICAgICAgOgogICAgICAgIFsxLjJdIAogICAgICAgICAgICBkZXByZWNhdGVkIGdldFNpdGVUcmVlIHJlcGxhY2VkIGJ5IGdldFRyZWUgRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuMiB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS4yIHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgbWljaGkKICAgICAgICA6CiAgICAgICAgWzEuMl0gCiAgICAgICAgICAgIGRlcHJlY2F0ZWQgZ2V0U2l0ZVRyZWUgcmVwbGFjZWQgYnkgZ2V0VHJlZSBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS4yIHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjIgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBtaWNoaQogICAgICAgIDoKICAgICAgICBbMS4yXSAKICAgICAgICAgICAgZGVwcmVjYXRlZCBnZXRTaXRlVHJlZSByZXBsYWNlZCBieSBnZXRUcmVlIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjQgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuNCB1cGRhdGUKICAgICAgICBieQogICAgICAgIGFuZHJlYXMKICAgICAgICA6CiAgICAgICAgWzEuNF0gCiAgICAgICAgICAgIGluIGZpbmFsbHkgYmxvY2ssIGNoZWNrIGlmIHNlcnZpY2VzIGFyZSBub3QgbnVsbCBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS4yIHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjIgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBtaWNoaQogICAgICAgIDoKICAgICAgICBbMS4yXSAKICAgICAgICAgICAgZGVwcmVjYXRlZCBnZXRTaXRlVHJlZSByZXBsYWNlZCBieSBnZXRUcmVlIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjIgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuMiB1cGRhdGUKICAgICAgICBieQogICAgICAgIG1pY2hpCiAgICAgICAgOgogICAgICAgIFsxLjJdIAogICAgICAgICAgICBkZXByZWNhdGVkIGdldFNpdGVUcmVlIHJlcGxhY2VkIGJ5IGdldFRyZWUgRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuMiB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS4yIHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgbWljaGkKICAgICAgICA6CiAgICAgICAgWzEuMl0gCiAgICAgICAgICAgIGdldFNpdGVUcmVlIHJlcGxhY2VkIGJ5IGdldFRyZWUgYmVjYXVzZSBnZXRTaXRlVHJlZSBpcyBkZXByZWNhdGVkIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjIgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuMiB1cGRhdGUKICAgICAgICBieQogICAgICAgIG1pY2hpCiAgICAgICAgOgogICAgICAgIFsxLjJdIAogICAgICAgICAgICBnZXRTaXRlVHJlZSBkZXByZWNhdGVkIGFuZCBnZXRUcmVlIGludHJvZHVjZWQgc3VjaCBpdCBzdGF5cyBiYWNrd2FyZHMgY29tcGF0aWJsZSBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS40IHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjQgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBtaWNoaQogICAgICAgIDoKICAgICAgICBbMS40XSAKICAgICAgICAgICAgSmF2YWRvYyBhZGRlZCBhYm91dCB0aGUgbGluayBwYXJhbWV0ZXIgRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuMiB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS4yIHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgbWljaGkKICAgICAgICA6CiAgICAgICAgWzEuMl0gCiAgICAgICAgICAgIEphdmFkb2MgYWRkZWQgYWJvdXQgdGhlIGxpbmsgYXJndW1lbnQgRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IFNhbmRib3ggdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPlNhbmRib3ggdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBtaWNoaQogICAgICAgIDoKICAgICAgICBbU2FuZGJveF0gCiAgICAgICAgICAgIHRoYW5rcyB0byBGZWxpeCB0aGUgaW1wb3J0IHdvcmtzIG5vdyBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgU2FuZGJveCByZW1vdmU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+U2FuZGJveCByZW1vdmUKICAgICAgICBieQogICAgICAgIG1pY2hpCiAgICAgICAgOgogICAgICAgIFtTYW5kYm94XSAKICAgICAgICAgICAgb2Jzb2xldGUgRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IFNhbmRib3ggdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPlNhbmRib3ggdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBtaWNoaQogICAgICAgIDoKICAgICAgICBbU2FuZGJveF0gCiAgICAgICAgICAgIGltcHJvdmVkIHZlcnNpb24gb2YgSkNSU2l0ZVRyZWUgRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IFNhbmRib3ggcmVtb3ZlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPlNhbmRib3ggcmVtb3ZlCiAgICAgICAgYnkKICAgICAgICBtaWNoaQogICAgICAgIDoKICAgICAgICBbU2FuZGJveF0gCiAgICAgICAgICAgIG1vdmVkIGludG8gTGVueWEgMS4yIGl0c2VsZiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS4yIHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjIgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBtaWNoaQogICAgICAgIDoKICAgICAgICBbMS4yXSAKICAgICAgICAgICAgbG9nIG1lc3NhZ2VzIGNsZWFuZWQgRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuMiB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS4yIHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgbWljaGkKICAgICAgICA6CiAgICAgICAgWzEuMl0gCiAgICAgICAgICAgIGNvbW1lbnRlZCB1bm5lY2Vzc2FyeSByZXNvdXJjZSBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS4yIHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjIgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBtaWNoaQogICAgICAgIDoKICAgICAgICBbMS4yXSAKICAgICAgICAgICAgaGFjayB0byB3b3JrYXJvdW5kIGZhaWx1cmUgb2YgYnVpbGQgcHJvY2VzcyBpZiBidWlsZCBkaXIgZG9lcyBub3QgZXhpc3QgRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuMiB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS4yIHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgbWljaGkKICAgICAgICA6CiAgICAgICAgWzEuMl0gCiAgICAgICAgICAgIHNpdGV0cmVlIGdlbmVyYXRlZCBieSBzaXRldHJlZSBnZW5lcmF0b3IgRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuMiB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS4yIHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgbWljaGkKICAgICAgICA6CiAgICAgICAgWzEuMl0gCiAgICAgICAgICAgIHNpdGV0cmVlIGdlbmVyYXRvciB1c2VkIGluc3RlYWQgcmVhZGluZyBmcm9tIGZpbGVzeXN0ZW0gZGlyZWN0bHkgRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuMiB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS4yIHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgbWljaGkKICAgICAgICA6CiAgICAgICAgWzEuMl0gCiAgICAgICAgICAgIHNpdGV0cmVlIGdlbmVyYXRvciBkZWNsYXJlZCBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS4yIGFkZDwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjIgYWRkCiAgICAgICAgYnkKICAgICAgICBtaWNoaQogICAgICAgIDoKICAgICAgICBbMS4yXSAKICAgICAgICAgICAgdGhhbmtzIHRvIEZlbGl4IFJvZXRoZW5iYWNoZXIgc2l0ZXRyZWUgZ2VuZXJhdG9yIGFkZGVkIGluIG9yZGVyIHRvIGhhdmUgc2l0ZXRyZWUgYWJzdHJhY3Rpb24gd2l0aGluIHRoZSBzaXRlbWFwIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjQgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuNCB1cGRhdGUKICAgICAgICBieQogICAgICAgIGFuZHJlYXMKICAgICAgICA6CiAgICAgICAgWzEuNF0gCiAgICAgICAgICAgIGVuYWJsZWQgdHJhbnNhY3Rpb25zIGZvciB3b3JrZmxvdyBoaXN0b3J5IERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjQgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuNCB1cGRhdGUKICAgICAgICBieQogICAgICAgIGFuZHJlYXMKICAgICAgICA6CiAgICAgICAgWzEuNF0gCiAgICAgICAgICAgIHJlc29sdmUgbGF0ZXN0IFJDIHZlcnNpb25zIGNvcnJlY3RseSBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS40IHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjQgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBhbmRyZWFzCiAgICAgICAgOgogICAgICAgIFsxLjRdIAogICAgICAgICAgICBhdm9pZCBOUEUgd2hlbiBjYWxsaW5nIFRyZWVTaXRlTWFuYWdlciBtZXRob2RzIGZvciBub24tZXhpc3RpbmcgdHJlZSBub2RlcyBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS40IGFkZDwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjQgYWRkCiAgICAgICAgYnkKICAgICAgICBhbmRyZWFzCiAgICAgICAgOgogICAgICAgIFsxLjRdIAogICAgICAgICAgICBhZGRlZCB2ZXJzaW9uIG51bWJlciB0byByZXZpc2lvbiBjb250cm9sLCBpbXBsZW1lbnRlZCBsb2NraW5nIGZvciBUcmFuc2FjdGlvbmFibGVzIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjQgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuNCB1cGRhdGUKICAgICAgICBieQogICAgICAgIGFuZHJlYXMKICAgICAgICA6CiAgICAgICAgWzEuNF0gCiAgICAgICAgICAgIGFkZCBpZGVudGl0eSB0byBVbml0T2ZXb3JrIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjQgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuNCB1cGRhdGUKICAgICAgICBieQogICAgICAgIGFuZHJlYXMKICAgICAgICA6CiAgICAgICAgWzEuNF0gCiAgICAgICAgICAgIGFkZGVkIHRyYW5zYWN0aW9ucyBmb3Igc2l0ZSB0cmVlcyBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS40IHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjQgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBhbmRyZWFzCiAgICAgICAgOgogICAgICAgIFsxLjRdIAogICAgICAgICAgICByZW1vdmVkIGdldFNpdGVTdHJ1Y3R1cmUoKSBmcm9tIERvY3VtZW50SWRlbnRpdHlNYXAgRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuNCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS40IHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgYW5kcmVhcwogICAgICAgIDoKICAgICAgICBbMS40XSAKICAgICAgICAgICAgVW5pdE9mV29yayBhbmQgSWRlbnRpdHlNYXAgYXJlIG5vdyBnZW5lcmljIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjQgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuNCB1cGRhdGUKICAgICAgICBieQogICAgICAgIGFuZHJlYXMKICAgICAgICA6CiAgICAgICAgWzEuNF0gCiAgICAgICAgICAgIERvY3VtZW50QnVpbGRlciBhbmQgU2l0ZU1hbmFnZXIgYXJlIG5vdyBBdmFsb24gc2VydmljZXMgRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuNCByZW1vdmU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS40IHJlbW92ZQogICAgICAgIGJ5CiAgICAgICAgYW5kcmVhcwogICAgICAgIDoKICAgICAgICBbMS40XSAKICAgICAgICAgICAgcmVtb3ZlZCBzb21lIG9ic29sZXRlIGNsYXNzZXMgRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuNCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS40IHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgYW5kcmVhcwogICAgICAgIDoKICAgICAgICBbMS40XSAKICAgICAgICAgICAgYWRkZWQgdmlldyBjb25maWcgdG8gQ3JlYXRlQmxvZ0VudHJ5IHVzZWNhc2UgRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuNCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS40IHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgYW5kcmVhcwogICAgICAgIDoKICAgICAgICBbMS40XSAKICAgICAgICAgICAgYWRkZWQgZ2V0U2VsZWN0YWJsZUhpbnQoKSB0byBQdWJsaWNhdGlvblRlbXBsYXRlTWFuYWdlciwgYWRkZWQgbmV3IGdldFBhZ2VFbnZlbG9wZSgpIG1ldGhvZCB0byBQYWdlRW52ZWxvcGVGYWN0b3J5IERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjQgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuNCB1cGRhdGUKICAgICAgICBieQogICAgICAgIGFuZHJlYXMKICAgICAgICA6CiAgICAgICAgWzEuNF0gCiAgICAgICAgICAgIGFkZGVkIGphdmFkb2NzIHRvIEFic3RyYWN0VXNlY2FzZSBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS4yIHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjIgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBncmVnb3IKICAgICAgICA6CiAgICAgICAgWzEuMl0gCiAgICAgICAgICAgIENoYW5nZWQgQ29jb29uIHZlcnNpb24gdG8gMi4xLjcgRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuMiB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS4yIHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgZ3JlZ29yCiAgICAgICAgOgogICAgICAgIFsxLjJdIAogICAgICAgICAgICBDaGFuZ2VkIENvY29vbiB2ZXJzaW9uIHRvIDIuMS43IERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjIgcmVtb3ZlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuMiByZW1vdmUKICAgICAgICBieQogICAgICAgIGdyZWdvcgogICAgICAgIDoKICAgICAgICBbMS4yXSAKICAgICAgICAgICAgUmVtb3ZlZCB1bm5lY2Vzc2FyeSBET01TdHJlYW1lciBwYXRjaCAoQ29jb29uIDIuMS43IGhhcyBiZWVuIHJlbGVhc2VkKSBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS4yIHJlbW92ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjIgcmVtb3ZlCiAgICAgICAgYnkKICAgICAgICBncmVnb3IKICAgICAgICA6CiAgICAgICAgWzEuMl0gCiAgICAgICAgICAgIFJlbW92ZWQgdW5uZWNlc3NhcnkgRE9NU3RyZWFtZXIgcGF0Y2ggKENvY29vbiAyLjEuNyBoYXMgYmVlbiByZWxlYXNlZCkgRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuNCBhZGQ8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS40IGFkZAogICAgICAgIGJ5CiAgICAgICAgYW5kcmVhcwogICAgICAgIDoKICAgICAgICBbMS40XSAKICAgICAgICAgICAgYWRkZWQgRW1wdHlUcmFzaCB1c2VjYXNlIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjQgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuNCB1cGRhdGUKICAgICAgICBieQogICAgICAgIGFuZHJlYXMKICAgICAgICA6CiAgICAgICAgWzEuNF0gCiAgICAgICAgICAgIERvY3VtZW50VXNlY2FzZTogYWRkICdpbmZvLScgcHJlZml4IHRvIHRhcmdldCBkb2N1bWVudCBhcmVhIGlmIG5lY2Vzc2FyeSBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS40IHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjQgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBhbmRyZWFzCiAgICAgICAgOgogICAgICAgIFsxLjRdIAogICAgICAgICAgICBkb24ndCBkZWxldGUgbm9uLWV4aXN0aW5nIHdvcmtmbG93IGhpc3RvcnkgRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuNCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS40IHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgYW5kcmVhcwogICAgICAgIDoKICAgICAgICBbMS40XSAKICAgICAgICAgICAgZG9uJ3QgY29weSB3b3JrZmxvdyBoaXN0b3J5IGlmIGl0IGRvZXMgbm90IGV4aXN0IERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjQgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuNCB1cGRhdGUKICAgICAgICBieQogICAgICAgIGFuZHJlYXMKICAgICAgICA6CiAgICAgICAgWzEuNF0gCiAgICAgICAgICAgIERvY3VtZW50TWFuYWdlcjogcmVtb3ZlZCB1bm5lY2Vzc2FyeSBtb2RpZmllcnMsIGFkZGVkIGRlbGV0ZShEb2N1bWVudFNldCkgbWV0aG9kIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjQgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuNCB1cGRhdGUKICAgICAgICBieQogICAgICAgIGFuZHJlYXMKICAgICAgICA6CiAgICAgICAgWzEuNF0gCiAgICAgICAgICAgIERvY3VtZW50TWFuYWdlcjogc2ltcGxpZmllZCBtZXRob2QgbmFtZXMgRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuNCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS40IHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgYW5kcmVhcwogICAgICAgIDoKICAgICAgICBbMS40XSAKICAgICAgICAgICAgZG9uJ3QgbG9nIHRvIFN5c3RlbS5vdXQsIHVzZSBJTkZPIGluc3RlYWQgb2YgRVJST1IgZm9yIGNoZWNrUHJlY29uZGl0aW9ucygpIG1lc3NhZ2VzIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCBTaXRlIGFkZDwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj5TaXRlIGFkZAogICAgICAgIGJ5CiAgICAgICAgdHNjaGxhYmFjaAogICAgICAgIDoKICAgICAgICBbU2l0ZV0gCiAgICAgICAgICAgIEZpbmlzaGluZyB1cCB0aGUgTGVueWEgU2l0ZW1hcCBPdmVydmlldyBkb2N1bWVudCAoZm9yIG5vdykKIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCBEb2NzIHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj5Eb2NzIHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgdHNjaGxhYmFjaAogICAgICAgIDoKICAgICAgICBbRG9jc10gCiAgICAgICAgICAgIEZpbmlzaGluZyB1cCB0aGUgTGVueWEgU2l0ZW1hcCBPdmVydmlldyBkb2N1bWVudCAoZm9yIG5vdykKIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCBEb2NzIHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj5Eb2NzIHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgZ3JlZ29yCiAgICAgICAgOgogICAgICAgIFtEb2NzXSAKICAgICAgICAgICAgQWRkZWQgT2hpbyBUcmFuc2ZlciBDb3VuY2lsIHRvIGxpdmUgc2l0ZXMuIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCBTaXRlIHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj5TaXRlIHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgdHNjaGxhYmFjaAogICAgICAgIDoKICAgICAgICBbU2l0ZV0gCiAgICAgICAgICAgIFN0YXJ0ZWQgYSBzZWN0aW9uIGV4cGxhaW5pbmcgdGhlIExlbnlhIHNpdGVtYXBzLiBUaGlzIGNhbiBiZSB1c2VkIGFzIGFuIG92ZXJ2aWV3IGRvY3VtZW50IHdoZXJlIGxpbmtzIHRvIGFsbCB0aGUgb3RoZXIgY29tcG9uZW50cyBjYW4gYmUgcGxhY2VkLgogRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IERvY3MgYWRkPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPkRvY3MgYWRkCiAgICAgICAgYnkKICAgICAgICB0c2NobGFiYWNoCiAgICAgICAgOgogICAgICAgIFtEb2NzXSAKICAgICAgICAgICAgU3RhcnRlZCBhIHNlY3Rpb24gZXhwbGFpbmluZyB0aGUgTGVueWEgc2l0ZW1hcHMuIFRoaXMgY2FuIGJlIHVzZWQgYXMgYW4gb3ZlcnZpZXcgZG9jdW1lbnQgd2hlcmUgbGlua3MgdG8gYWxsIHRoZSBvdGhlciBjb21wb25lbnRzIGNhbiBiZSBwbGFjZWQuCiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgRG9jcyB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+RG9jcyB1cGRhdGUKICAgICAgICBieQogICAgICAgIGdyZWdvcgogICAgICAgIDoKICAgICAgICBbRG9jc10gCiAgICAgICAgICAgIE1vcmUgbGl2ZSBzaXRlcyBhZGRlZCBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgU2FuZGJveCBhZGQ8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+U2FuZGJveCBhZGQKICAgICAgICBieQogICAgICAgIHRzY2hsYWJhY2gKICAgICAgICA6CiAgICAgICAgW1NhbmRib3hdIAogICAgICAgICAgICBGaXhpbmcgZGlyZWN0b3J5IHN0cnVjdHVyZQogRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IFNhbmRib3ggcmVtb3ZlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPlNhbmRib3ggcmVtb3ZlCiAgICAgICAgYnkKICAgICAgICB0c2NobGFiYWNoCiAgICAgICAgOgogICAgICAgIFtTYW5kYm94XSAKICAgICAgICAgICAgRml4aW5nIGRpcmVjb3J5IHN0cnVjdHVyZQogRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IFNpdGUgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPlNpdGUgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBncmVnb3IKICAgICAgICA6CiAgICAgICAgW1NpdGVdIAogICAgICAgICAgICBKYXZhIENvbmNlcHRzIGFkZGVkIHRvIGxpdmUgc2l0ZXMgRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IERvY3MgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPkRvY3MgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBncmVnb3IKICAgICAgICA6CiAgICAgICAgW0RvY3NdIAogICAgICAgICAgICBKYXZhIENvbmNlcHRzIGFkZGVkIHRvIGxpdmUgc2l0ZXMgRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IFNhbmRib3ggYWRkPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPlNhbmRib3ggYWRkCiAgICAgICAgYnkKICAgICAgICB0c2NobGFiYWNoCiAgICAgICAgOgogICAgICAgIFtTYW5kYm94XSAKICAgICAgICAgICAgRml4aW5nIGRpcmVjdG9yeSBzdHJ1Y3R1cmUuIChTb3JyeSkKIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCBTYW5kYm94IGFkZDwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj5TYW5kYm94IGFkZAogICAgICAgIGJ5CiAgICAgICAgdHNjaGxhYmFjaAogICAgICAgIDoKICAgICAgICBbU2FuZGJveF0gCiAgICAgICAgICAgIFNoYXJpbmcgdGhlIGV4cGVyaW1lbnRhbCBDRm9ybSBlZGl0IHVzZWNhc2UgKHNlZSBSRUFETUUudHh0KQogRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuMiB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS4yIHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgZ3JlZ29yCiAgICAgICAgOgogICAgICAgIFsxLjJdIAogICAgICAgICAgICBNYWRlIEZpbGVVc2VyIHNlcmlhbGl6YWJsZS4gUGF0Y2ggYnkgTWlyb3NsYXcgSGFua3VzIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjQgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuNCB1cGRhdGUKICAgICAgICBieQogICAgICAgIGdyZWdvcgogICAgICAgIDoKICAgICAgICBbMS40XSAKICAgICAgICAgICAgTWFkZSBGaWxlVXNlciBzZXJpYWxpemFibGUuIFBhdGNoIGJ5IE1pcm9zbGF3IEhhbmt1cyBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS40IGFkZDwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjQgYWRkCiAgICAgICAgYnkKICAgICAgICB0c2NobGFiYWNoCiAgICAgICAgOgogICAgICAgIFsxLjRdIAogICAgICAgICAgICBBZGRlZCBhIFJlbGF4Tkcgc2NoZW1hIGZvciB0aGUgbGlua3MgcmVzb3VyY2UgdHlwZSAoZm9ybWVybHkga25vd24gYXMgZG9jdHlwZSkgdG8gYmUgYWJsZSB0byBlZGl0IHdpdGggdGhlIE9uZSBGb3JtIEVkaXRvciBhbW9uZyBvdGhlcgogRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuNCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS40IHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgdHNjaGxhYmFjaAogICAgICAgIDoKICAgICAgICBbMS40XSAKICAgICAgICAgICAgRml4ZWQgdGhlIGJ1ZyB0aGF0IGFmdGVyIFJlbGF4TkcgdmFsaWRhdGlvbiBlcnJvcnMsIHRoZSBvcmlnaW5hbCBkb2N1bWVudCB3YXMgZGlzcGxheWVkIGFnYWluIHdpdGggdGhlIHVzZXIncyBjaGFuZ2VzIGxvc3QuIEFkZGVkIHNvbWUgY29tbWVudHMgYW5kIGFwcGxpZWQgc29tZSBmb3JtYXR0aW5nLgogRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuNCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS40IHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgdHNjaGxhYmFjaAogICAgICAgIDoKICAgICAgICBbMS40XSAKICAgICAgICAgICAgU3dpdGNoZWQgdGhlIHNvdXJjZSBvZiB0aGUgZG9jdW1lbnQgdG8gYmUgZWRpdGVkIHRvIHRoZSBsZW55YTogcHJvdG9jb2wKIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjQgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuNCB1cGRhdGUKICAgICAgICBieQogICAgICAgIGp3a2FsdHoKICAgICAgICA6CiAgICAgICAgWzEuNF0gCiAgICAgICAgICAgIFttaW5vciBjaGFuZ2VdIGFkZGVkIHNvbWUgZG9jdW1lbnRhdGlvbiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS40IHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjQgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBqd2thbHR6CiAgICAgICAgOgogICAgICAgIFsxLjRdIAogICAgICAgICAgICBbbWlub3IgY2hhbmdlXSBhZGRlZCBzb21lIHV0aWxpdHkgbWV0aG9kcyBmb3IgcmVhZGluZyBwYXJhbWV0ZXJzIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjQgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuNCB1cGRhdGUKICAgICAgICBieQogICAgICAgIGp3a2FsdHoKICAgICAgICA6CiAgICAgICAgWzEuNF0gCiAgICAgICAgICAgIFttaW5vciBjaGFuZ2VdIGFkZGVkIGRvY3MKIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCBTYW5kYm94IGFkZDwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj5TYW5kYm94IGFkZAogICAgICAgIGJ5CiAgICAgICAgbWljaGkKICAgICAgICA6CiAgICAgICAgW1NhbmRib3hdIAogICAgICAgICAgICByZXBvc2l0b3J5IHN0YXJ0ZWQgRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuNCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS40IHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgandrYWx0egogICAgICAgIDoKICAgICAgICBbMS40XSAKICAgICAgICAgICAgW21pbm9yIGNoYW5nZV0gY2hlY2sgZm9yIGV4aXN0ZW5jZSBvZiB1c2VjYXNlIHZpZXcgYmVmb3JlIHVzaW5nIGl0IChmaXhlcyBwYiBmb3IgZG9jdW1lbnQgc3VibWlzc2lvbiBzdGVwKSBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS40IHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjQgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICB0c2NobGFiYWNoCiAgICAgICAgOgogICAgICAgIFsxLjRdIAogICAgICAgICAgICBBZGRlZCBzb21lIGNvbW1lbnRzIGZvciBiZXR0ZXIgcmVhZGFiaWxpdHkuCiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS40IHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjQgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBqd2thbHR6CiAgICAgICAgOgogICAgICAgIFsxLjRdIAogICAgICAgICAgICBbbWlub3IgY2hhbmdlXSByZWxlYXNlIGZsb3dIZWxwZXIgY29tcG9uZW50IGFmdGVyIHVzYWdlIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCBTYW5kYm94IHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj5TYW5kYm94IHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgbWljaGkKICAgICAgICA6CiAgICAgICAgW1NhbmRib3hdIAogICAgICAgICAgICB0eXBvIGZpeGVkIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCBTYW5kYm94IHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj5TYW5kYm94IHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgbWljaGkKICAgICAgICA6CiAgICAgICAgW1NhbmRib3hdIAogICAgICAgICAgICB1c2VySWQgYW5kIHBhc3N3b3JkIGFkZGVkIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCBTYW5kYm94IGFkZDwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj5TYW5kYm94IGFkZAogICAgICAgIGJ5CiAgICAgICAgbWljaGkKICAgICAgICA6CiAgICAgICAgW1NhbmRib3hdIAogICAgICAgICAgICBzaXRldHJlZSBnZW5lcmF0b3IgYWRkZWQgdG8gZ2V0IHJpZCBvZiBmaWxlc3lzdGVtIGRlcGVuZGVuY3kgRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IFNhbmRib3ggYWRkPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPlNhbmRib3ggYWRkCiAgICAgICAgYnkKICAgICAgICBtaWNoaQogICAgICAgIDoKICAgICAgICBbU2FuZGJveF0gCiAgICAgICAgICAgIHVuaXQgdGVzdHMgYWRkZWQgRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IFNhbmRib3ggYWRkPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPlNhbmRib3ggYWRkCiAgICAgICAgYnkKICAgICAgICBtaWNoaQogICAgICAgIDoKICAgICAgICBbU2FuZGJveF0gCiAgICAgICAgICAgIGNvbmZpZyBmb3Igc2l0ZXRyZWUgZmFjdG9yeSBhZGRlZCBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgU2FuZGJveCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+U2FuZGJveCB1cGRhdGUKICAgICAgICBieQogICAgICAgIG1pY2hpCiAgICAgICAgOgogICAgICAgIFtTYW5kYm94XSAKICAgICAgICAgICAgWFNMVCBmb3IgaW1wb3J0IGFkZGVkIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCBTYW5kYm94IHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj5TYW5kYm94IHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgbWljaGkKICAgICAgICA6CiAgICAgICAgW1NhbmRib3hdIAogICAgICAgICAgICBhY2Nlc3NpbmcgdGhlIHJlcG9zaXRvcnkgZGlyZWN0bHkgRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IFNhbmRib3ggYWRkPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPlNhbmRib3ggYWRkCiAgICAgICAgYnkKICAgICAgICBtaWNoaQogICAgICAgIDoKICAgICAgICBbU2FuZGJveF0gCiAgICAgICAgICAgIGhlbHBlciBjbGFzc2VzIGFkZGVkIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjQgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuNCB1cGRhdGUKICAgICAgICBieQogICAgICAgIHRzY2hsYWJhY2gKICAgICAgICA6CiAgICAgICAgWzEuNF0gCiAgICAgICAgICAgIEZpbmlzaGVkIHRoZSBtb3ZlIG9mIEZsb3dIZWxwZXIgdG8gYW4gQXZhbG9uIGNvbXBvbmVudC4KIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjQgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuNCB1cGRhdGUKICAgICAgICBieQogICAgICAgIHRzY2hsYWJhY2gKICAgICAgICA6CiAgICAgICAgWzEuNF0gCiAgICAgICAgICAgIGFkZGVkIHNvbWUgY29tbWVudHMgYW5kIGZvcm1hdHRpbmcKIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjIgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuMiB1cGRhdGUKICAgICAgICBieQogICAgICAgIG1pY2hpCiAgICAgICAgOgogICAgICAgIFsxLjJdIAogICAgICAgICAgICB0aGFua3MgdG8gSm9zaWFzIFRob2VueSB0aGUgamF2YXNjcmlwdCBvZiB0aGUgY2xpZW50LXNpZGUgdHJlZSBoYXMgbm8gbW9yZSB0cm91YmxlIHdpdGggdGhlIGxpY2Vuc2UgYW55bW9yZSBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS40IHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjQgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBhbmRyZWFzCiAgICAgICAgOgogICAgICAgIFsxLjRdIAogICAgICAgICAgICBhZGRlZCBncm91cCBpbmZvcm1hdGlvbiB1c2VjYXNlIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjQgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuNCB1cGRhdGUKICAgICAgICBieQogICAgICAgIGFuZHJlYXMKICAgICAgICA6CiAgICAgICAgWzEuNF0gCiAgICAgICAgICAgIGFkZGVkIGdyb3VwcyB0byB1c2VyIHByb2ZpbGUgc2NyZWVuIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjQgYWRkPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuNCBhZGQKICAgICAgICBieQogICAgICAgIGFuZHJlYXMKICAgICAgICA6CiAgICAgICAgWzEuNF0gCiAgICAgICAgICAgIGFkZGVkIHVzZWNhc2UgdG8gc2hvdyB1c2VyIHByb2ZpbGUgRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IERvY3MgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPkRvY3MgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBtaWNoaQogICAgICAgIDoKICAgICAgICBbRG9jc10gCiAgICAgICAgICAgIEpvc2lhcyBhbmQgR3VpZG8gYXMgY29udHJpYnV0b3JzIGFkZGVkIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjIgcmVtb3ZlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuMiByZW1vdmUKICAgICAgICBieQogICAgICAgIG1pY2hpCiAgICAgICAgOgogICAgICAgIFsxLjJdIAogICAgICAgICAgICBvYnNvbGV0ZSBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS4yIHJlbW92ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjIgcmVtb3ZlCiAgICAgICAgYnkKICAgICAgICBtaWNoaQogICAgICAgIDoKICAgICAgICBbMS4yXSAKICAgICAgICAgICAgVGhhbmtzIHRvIEpvc2lhcyBUaG9lbnkgdGhlc2UgaW1hZ2VzIGhhdmUgYmVjb21lIG9ic29sZXRlIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjIgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuMiB1cGRhdGUKICAgICAgICBieQogICAgICAgIG1pY2hpCiAgICAgICAgOgogICAgICAgIFsxLjJdIAogICAgICAgICAgICB0aGFua3MgdG8gSm9zaWFzIFRob2VueSB3ZSBub3cgaGF2ZSBhIGJldHRlciBqYXZhc2NyaXB0IHRyZWUgaW1wbGVtZW50YXRpb24gd2hpY2ggaGFzIG5vIHByb2JsZW0gd2l0aCB0aGUgbGljZW5zZSBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS4yIGFkZDwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjIgYWRkCiAgICAgICAgYnkKICAgICAgICBtaWNoaQogICAgICAgIDoKICAgICAgICBbMS4yXSAKICAgICAgICAgICAgbGljZW5zZSBvZiBHdWlkbyBmb3IgVHJlZSBKYXZhc2NyaXB0IGFkZGVkIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjIgYWRkPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuMiBhZGQKICAgICAgICBieQogICAgICAgIG1pY2hpCiAgICAgICAgOgogICAgICAgIFsxLjJdIAogICAgICAgICAgICBpbWFnZXMgb2YgbmV3IHRyZWUgamF2YXNjcmlwdCBpbXBsZW1lbnRhdGlvbiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgRG9jcyB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+RG9jcyB1cGRhdGUKICAgICAgICBieQogICAgICAgIHRzY2hsYWJhY2gKICAgICAgICA6CiAgICAgICAgW0RvY3NdIAogICAgICAgICAgICBGaXhlZCBpbnRlcm5hbCBsaW5rIGZyb20gMS4yLnggLSZndDsgSW5zdGFsbGF0aW9uIEluc3RydWN0aW9ucyB0byB0aGUgMS4yLnggRG93bmxvYWQgcGFnZQogRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuMiB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS4yIHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgbWljaGkKICAgICAgICA6CiAgICAgICAgWzEuMl0gCiAgICAgICAgICAgIFRvbWNhdCA0IHJlYWRkZWQgYmVjYXVzZSBwZW9wbGUgbWlnaHQgc3RpbGwgdXNlIFRvbWNhdCA0IGluIHByb2R1Y3RpdmUgZW52aXJvbm1lbnRzIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjQgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuNCB1cGRhdGUKICAgICAgICBieQogICAgICAgIGFuZHJlYXMKICAgICAgICA6CiAgICAgICAgWzEuNF0gCiAgICAgICAgICAgIHJlLWluaXRpYWxpemUgdmlldyBmcm9tIHVzZWNhc2UgcHJveHkgRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuNCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS40IHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgYW5kcmVhcwogICAgICAgIDoKICAgICAgICBbMS40XSAKICAgICAgICAgICAgaW1wcm92ZWQgdGFiIHZpZXcgZm9yIGFkbWluIHVzZWNhc2VzIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjQgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuNCB1cGRhdGUKICAgICAgICBieQogICAgICAgIGFuZHJlYXMKICAgICAgICA6CiAgICAgICAgWzEuNF0gCiAgICAgICAgICAgIHJlZGlyZWN0IHRvIHRhYi5vdmVydmlldyB1c2VjYXNlIGluIGluZm8gc2l0ZW1hcCBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgU2FuZGJveCBhZGQ8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+U2FuZGJveCBhZGQKICAgICAgICBieQogICAgICAgIG1pY2hpCiAgICAgICAgOgogICAgICAgIFtTYW5kYm94XSAKICAgICAgICAgICAgdmVyeSBmaXJzdCBzdGVwcyBvZiBhIHJlcG9zaXRvcnkgbW9kZWwgYWRkZWQgRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuNCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS40IHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgYW5kcmVhcwogICAgICAgIDoKICAgICAgICBbMS40XSAKICAgICAgICAgICAgcmVtb3ZlZCBvYnNvbGV0ZSBpbmZvIGFyZWEgcGlwZWxpbmVzIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjQgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuNCB1cGRhdGUKICAgICAgICBieQogICAgICAgIGFuZHJlYXMKICAgICAgICA6CiAgICAgICAgWzEuNF0gCiAgICAgICAgICAgIHVzZSBhcmVhIGZyb20gcGFnZSBlbnZlbG9wZSB0byBnZW5lcmF0ZSB1c2VjYXNlIG1lbnViYXIgRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuNCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS40IHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgYW5kcmVhcwogICAgICAgIDoKICAgICAgICBbMS40XSAKICAgICAgICAgICAgcmVkaXJlY3QgdG8gYWRtaW4udXNlcnMgdXNlY2FzZSBpbiBhZG1pbiBhcmVhIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjQgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuNCB1cGRhdGUKICAgICAgICBieQogICAgICAgIGFuZHJlYXMKICAgICAgICA6CiAgICAgICAgWzEuNF0gCiAgICAgICAgICAgIGFkZGVkIHNvbWUgdGFicyB0byBhZG1pbiBhcmVhIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjQgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuNCB1cGRhdGUKICAgICAgICBieQogICAgICAgIGFuZHJlYXMKICAgICAgICA6CiAgICAgICAgWzEuNF0gCiAgICAgICAgICAgIFttaW5vciBjaGFuZ2VdIGZpeGVkIHNvbWUgbGF5b3V0IGlzc3VlcyBvbiB1c2VjYXNlIHNjcmVlbnMgRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuNCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS40IHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgYW5kcmVhcwogICAgICAgIDoKICAgICAgICBbMS40XSAKICAgICAgICAgICAgYWRkZWQgSVAgcmFuZ2Ugb3ZlcnZpZXcgdXNlY2FzZSBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS40IGFkZDwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjQgYWRkCiAgICAgICAgYnkKICAgICAgICBhbmRyZWFzCiAgICAgICAgOgogICAgICAgIFsxLjRdIAogICAgICAgICAgICBhZGRlZCBVc2VycyBhbmQgR3JvdXBzIHVzZWNhc2VzIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjQgYWRkPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuNCBhZGQKICAgICAgICBieQogICAgICAgIGFuZHJlYXMKICAgICAgICA6CiAgICAgICAgWzEuNF0gCiAgICAgICAgICAgIGNvbW1vbiByZW5kZXJpbmcgb2YgYWxsIHVzZWNhc2Ugc2NyZWVucyBiYXNlZCBvbiB2aWV3IGNvbmZpZ3VyYXRpb24gRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuNCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS40IHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgYW5kcmVhcwogICAgICAgIDoKICAgICAgICBbMS40XSAKICAgICAgICAgICAgYWRkIHBhZ2U6aGVhZCB0byBwYWdlMnhodG1sIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjQgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuNCB1cGRhdGUKICAgICAgICBieQogICAgICAgIGFuZHJlYXMKICAgICAgICA6CiAgICAgICAgWzEuNF0gCiAgICAgICAgICAgIG1hZGUgQWJzdHJhY3RJdGVtIENvbXBhcmFibGUgKGZvciBzb3J0aW5nKSBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS40IHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjQgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBhbmRyZWFzCiAgICAgICAgOgogICAgICAgIFsxLjRdIAogICAgICAgICAgICBjb21tb24gcmVuZGVyaW5nIG9mIGFsbCB1c2VjYXNlIHNjcmVlbnMgYmFzZWQgb24gdmlldyBjb25maWd1cmF0aW9uIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjQgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuNCB1cGRhdGUKICAgICAgICBieQogICAgICAgIGFuZHJlYXMKICAgICAgICA6CiAgICAgICAgWzEuNF0gCiAgICAgICAgICAgIHBhZ2UyeGh0bWw6IHNob3cgaGVhZGVyIG9ubHkgaWYgJmx0O3BhZ2U6dGl0bGUmZ3Q7IGlzIHByZXNlbnQgRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuNCBhZGQ8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS40IGFkZAogICAgICAgIGJ5CiAgICAgICAgYW5kcmVhcwogICAgICAgIDoKICAgICAgICBbMS40XSAKICAgICAgICAgICAgaW50cm9kdWNlZCB1c2VjYXNlIHZpZXcgY29uZmlndXJhdGlvbiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgU2FuZGJveCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+U2FuZGJveCB1cGRhdGUKICAgICAgICBieQogICAgICAgIG1pY2hpCiAgICAgICAgOgogICAgICAgIFtTYW5kYm94XSAKICAgICAgICAgICAgbm90ZSBhYm91dCB0cnVuayBhZGRlZCBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgU2FuZGJveCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+U2FuZGJveCB1cGRhdGUKICAgICAgICBieQogICAgICAgIHRzY2hsYWJhY2gKICAgICAgICA6CiAgICAgICAgW1NhbmRib3hdIAogICAgICAgICAgICBNYWRlIHRoZSBSRUFETUUgYSBiaXQgbW9yZSB2ZXJib3NlOyBlc3BlY2lhbGx5IHB1dCBpbiB0aGF0IHRoaXMgaXMgYSBwYXRjaApmb3IgMS4yLngsIG5vdCBmb3IgdHJ1bmsuCiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS40IHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjQgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBtaWNoaQogICAgICAgIDoKICAgICAgICBbMS40XSAKICAgICAgICAgICAgQlJBTkNIXzJfMV9YIGFkZGVkIGFzIENvY29vbiBzb3VyY2UgZGVmYXVsdCBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS4yIHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjIgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBlZGl0aAogICAgICAgIDoKICAgICAgICBbMS4yXSAKICAgICAgICAgICAgY2FjaGluZyBvZiBkZWZhdWx0IHB1YmxpY2F0aW9uIGJhY2sgcG9ydGVkLCBpbiB0aGUgZGVhY3RpdmF0aW9uIHRvbyBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS4yIHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjIgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBlZGl0aAogICAgICAgIDoKICAgICAgICBbMS4yXSAKICAgICAgICAgICAgY2FjaGluZyBvZiBkZWZhdWx0IHB1YmxpY2F0aW9uIGJhY2sgcG9ydGVkLCBpbiB0aGUgZGVhY3RpdmF0aW9uIHRvbyBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgRG9jcyB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+RG9jcyB1cGRhdGUKICAgICAgICBieQogICAgICAgIGFuZHJlYXMKICAgICAgICA6CiAgICAgICAgW0RvY3NdIAogICAgICAgICAgICBbbWlub3IgY2hhbmdlXSByZXF1ZXN0IHBhcmFtZXRlciBmb3JtYXR0aW5nIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCBEb2NzIHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj5Eb2NzIHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgYW5kcmVhcwogICAgICAgIDoKICAgICAgICBbRG9jc10gCiAgICAgICAgICAgIHJlbW92ZWQgb3V0ZGF0ZWQgaW5mbyBhYm91dCBsZW55YS5ldmVudCwgZml4ZWQgc29tZSB0eXBvcyBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS40IHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjQgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBhbmRyZWFzCiAgICAgICAgOgogICAgICAgIFsxLjRdIAogICAgICAgICAgICB0YWIub3ZlcnZpZXc6IHVzZSBnZXRQYXJhbWV0ZXIoJ2RvY3VtZW50JykuZ2V0SWQoKSBpbnN0ZWFkIG9mIGdldFBhcmFtZXRlcignZG9jdW1lbnRpZCcpIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjQgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuNCB1cGRhdGUKICAgICAgICBieQogICAgICAgIGFuZHJlYXMKICAgICAgICA6CiAgICAgICAgWzEuNF0gCiAgICAgICAgICAgIGFkZGVkIGluaXRpYWwgaW1wbGVtZW50YXRpb24gb2YgJ21hbmFnZSBzY2hlZHVsZXIgam9icycgdXNlY2FzZSBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS40IHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjQgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBhbmRyZWFzCiAgICAgICAgOgogICAgICAgIFsxLjRdIAogICAgICAgICAgICBVc2VjYXNlIHByb3h5IHNldHMgc291cmNlIFVSTCBvZiB1c2VjYXNlIGluIHNldHVwKCkgRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuNCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS40IHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgYW5kcmVhcwogICAgICAgIDoKICAgICAgICBbMS40XSAKICAgICAgICAgICAgVXNlciBwcm9maWxlIEpYOiBmaXhlZCBzb21lIHJlcXVlc3QgcGFyYW1ldGVyIG5hbWVzIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjQgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuNCB1cGRhdGUKICAgICAgICBieQogICAgICAgIGp3a2FsdHoKICAgICAgICA6CiAgICAgICAgWzEuNF0gCiAgICAgICAgICAgIGZpeGVkIGphdmFkb2NzIHRhcmdldCAoc3JjIG5vIGxvbmdlciBpbiBidWlsZDsgZGVjbGFyZSByZXNvdXJjZSB2YXJpYWJsZQphZnRlciB0aGUgdmFyaWFibGUgaXQgZGVwZW5kcyBvbikKIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjQgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuNCB1cGRhdGUKICAgICAgICBieQogICAgICAgIGFuZHJlYXMKICAgICAgICA6CiAgICAgICAgWzEuNF0gCiAgICAgICAgICAgIGNoYW5nZWQgc29tZSB1c2VjYXNlIGZpZWxkcyB0byBwYXJhbWV0ZXJzIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjQgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuNCB1cGRhdGUKICAgICAgICBieQogICAgICAgIGFuZHJlYXMKICAgICAgICA6CiAgICAgICAgWzEuNF0gCiAgICAgICAgICAgIFttaW5vciBjaGFuZ2VdIHJlbW92ZWQgbG9nIHRvIFN5c3RlbS5vdXQgRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuNCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS40IHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgYW5kcmVhcwogICAgICAgIDoKICAgICAgICBbMS40XSAKICAgICAgICAgICAgVGVhciBkb3duIGFuZCByZWJ1aWxkIHVzZWNhc2UgaGFuZGxlciBhZnRlciBzZW5kUGFnZSguLi4pLiBUaGlzIHdheSwgc2VydmljZXMgYXJlIHByb3Blcmx5IHJlbGVhc2VkLiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS40IHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjQgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBqd2thbHR6CiAgICAgICAgOgogICAgICAgIFsxLjRdIAogICAgICAgICAgICBbbWlub3IgY2hhbmdlXSBhZGRlZCBkb2NzIHRvIHBpcGVsaW5lLiBTZXQgdmlldyBwYXR0ZXJuIG1hdGNoaW5nIHRvIGludGVybmFsIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjQgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuNCB1cGRhdGUKICAgICAgICBieQogICAgICAgIGFuZHJlYXMKICAgICAgICA6CiAgICAgICAgWzEuNF0gCiAgICAgICAgICAgIHVwZGF0ZWQgc29tZSB0ZXN0cyB0byBuZXcgQVBJIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjQgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuNCB1cGRhdGUKICAgICAgICBieQogICAgICAgIGFuZHJlYXMKICAgICAgICA6CiAgICAgICAgWzEuNF0gCiAgICAgICAgICAgIFJlbW92ZWQgQWJzdHJhY3RVc2VjYXNlLmdldERvY3VtZW50TWFuYWdlcigpLiBVc2UgdHJ5IHsgbG9va3VwIH0gZmluYWxseSB7IHJlbGVhc2UgfSBpbnN0ZWFkLiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS40IHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjQgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBhbmRyZWFzCiAgICAgICAgOgogICAgICAgIFsxLjRdIAogICAgICAgICAgICBbbWlub3IgY2hhbmdlXSBmaXhlZCBqYXZhZG9jIHRhZyBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS40IHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjQgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBqd2thbHR6CiAgICAgICAgOgogICAgICAgIFsxLjRdIAogICAgICAgICAgICBbbWlub3IgY2hhbmdlXSBhZGRlZCBjb21tZW50cyB0byB1c2VjYXNlLnhtYXAuIEZvcm1hdHRpbmc6IHJlbW92ZWQKY3RybC1NIGF0IGVuZCBvZiBsaW5lCiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS40IHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjQgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBhbmRyZWFzCiAgICAgICAgOgogICAgICAgIFsxLjRdIAogICAgICAgICAgICByZWxlYXNlIHVzZWNhc2UgcmVzb2x2ZXIgYWZ0ZXIgdXNlY2FzZSBpcyBmaW5pc2hlZCBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS40IHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjQgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBqd2thbHR6CiAgICAgICAgOgogICAgICAgIFsxLjRdIAogICAgICAgICAgICBbbWlub3IgY2hhbmdlXSBtYXJrZWQgRGVsZWdhdGluZ0F1dGhvcml6ZXJBY3Rpb24gYXMgUG9vbGFibGUKIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjQgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuNCB1cGRhdGUKICAgICAgICBieQogICAgICAgIGdyZWdvcgogICAgICAgIDoKICAgICAgICBbMS40XSAKICAgICAgICAgICAgRml4ZWQga3VwdSBwYXRocy4gVGhpcyByZXNvbHZlcyBodHRwOi8vaXNzdWVzLmFwYWNoZS5vcmcvYnVnemlsbGEvc2hvd19idWcuY2dpP2lkPTMzNzkzIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjQgcmVtb3ZlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuNCByZW1vdmUKICAgICAgICBieQogICAgICAgIGdyZWdvcgogICAgICAgIDoKICAgICAgICBbMS40XSAKICAgICAgICAgICAgIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjIgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuMiB1cGRhdGUKICAgICAgICBieQogICAgICAgIGdyZWdvcgogICAgICAgIDoKICAgICAgICBbMS4yXSAKICAgICAgICAgICAgSW1wcm92ZWQgd2luZG93cyBpbnN0YWxsZXIgdG8gbWFrZSBMZW55YSB2ZXJzaW9uIG1vcmUgZXhwbGljaXQgYW5kIGxhdW5jaCBMZW55YSBzdGFydCBwYWdlIGF0IHRoZSBlbmQgb2YgdGhlIGluc3RhbGwuIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjQgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuNCB1cGRhdGUKICAgICAgICBieQogICAgICAgIGdyZWdvcgogICAgICAgIDoKICAgICAgICBbMS40XSAKICAgICAgICAgICAgSW1wcm92ZWQgd2luZG93cyBpbnN0YWxsZXIgdG8gbWFrZSBMZW55YSB2ZXJzaW9uIG1vcmUgZXhwbGljaXQgYW5kIGxhdW5jaCBMZW55YSBzdGFydCBwYWdlIGF0IHRoZSBlbmQgb2YgdGhlIGluc3RhbGwuIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjIgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuMiB1cGRhdGUKICAgICAgICBieQogICAgICAgIGdyZWdvcgogICAgICAgIDoKICAgICAgICBbMS4yXSAKICAgICAgICAgICAgQ2hhbmdlZCB3aW5kb3cgdGl0bGUgdG8gQXBhY2hlIExlbnlhIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjQgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuNCB1cGRhdGUKICAgICAgICBieQogICAgICAgIGdyZWdvcgogICAgICAgIDoKICAgICAgICBbMS40XSAKICAgICAgICAgICAgQ2hhbmdlZCB3aW5kb3cgdGl0bGUgdG8gQXBhY2hlIExlbnlhIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjIgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuMiB1cGRhdGUKICAgICAgICBieQogICAgICAgIGdyZWdvcgogICAgICAgIDoKICAgICAgICBbMS4yXSAKICAgICAgICAgICAgU3Vic3RpdHV0ZSBMZW55YSB2ZXJzaW9uIGF0IGJ1aWxkIHRpbWUuIFRoaXMgcmVzb2x2ZXMgaHR0cDovL2lzc3Vlcy5hcGFjaGUub3JnL2J1Z3ppbGxhL3Nob3dfYnVnLmNnaT9pZD0zMzY1OCBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS40IHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjQgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBncmVnb3IKICAgICAgICA6CiAgICAgICAgWzEuNF0gCiAgICAgICAgICAgIFN1YnN0aXR1dGUgTGVueWEgdmVyc2lvbiBhdCBidWlsZCB0aW1lLiBUaGlzIHJlc29sdmVzIGh0dHA6Ly9pc3N1ZXMuYXBhY2hlLm9yZy9idWd6aWxsYS9zaG93X2J1Zy5jZ2k/aWQ9MzM2NTggRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuNCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS40IHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgandrYWx0egogICAgICAgIDoKICAgICAgICBbMS40XSAKICAgICAgICAgICAgW21pbm9yIGNoYW5nZV0gbWFya2VkIHNlcnZpY2UgYXMgcG9vbGFibGUKIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjQgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuNCB1cGRhdGUKICAgICAgICBieQogICAgICAgIGp3a2FsdHoKICAgICAgICA6CiAgICAgICAgWzEuNF0gCiAgICAgICAgICAgIFttaW5vciBjaGFuZ2VdIGFkZGVkIHNvbWUgZG9jdSBhbmQgZGVidWcgbWVzc2FnZXMKIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjIgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuMiB1cGRhdGUKICAgICAgICBieQogICAgICAgIGdyZWdvcgogICAgICAgIDoKICAgICAgICBbMS4yXSAKICAgICAgICAgICAgU2V0IHRoZSBkZWZhdWx0IGV4bHVzaW9uIHBhdHRlcm5zIHRvIGJlIG1vcmUgY29tcGxldGUuIFRoaXMgcmVzb2x2ZXMgaHR0cDovL2lzc3Vlcy5hcGFjaGUub3JnL2J1Z3ppbGxhL3Nob3dfYnVnLmNnaT9pZD0zMzkwNSBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS40IHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjQgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBncmVnb3IKICAgICAgICA6CiAgICAgICAgWzEuNF0gCiAgICAgICAgICAgIFNldCB0aGUgZGVmYXVsdCBleGx1c2lvbiBwYXR0ZXJucyB0byBiZSBtb3JlIGNvbXBsZXRlLiBUaGlzIHJlc29sdmVzIGh0dHA6Ly9pc3N1ZXMuYXBhY2hlLm9yZy9idWd6aWxsYS9zaG93X2J1Zy5jZ2k/aWQ9MzM5MDUgRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuMiB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS4yIHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgZ3JlZ29yCiAgICAgICAgOgogICAgICAgIFsxLjJdIAogICAgICAgICAgICBIb25vdXIgZXhsdXNpb24gcGF0dGVybnMgZm9yIGJ1aWxkIGNsZWFuIHRvby4gVGhpcyByZXNvbHZlcyBodHRwOi8vaXNzdWVzLmFwYWNoZS5vcmcvYnVnemlsbGEvc2hvd19idWcuY2dpP2lkPTMzNzY5IERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjQgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuNCB1cGRhdGUKICAgICAgICBieQogICAgICAgIGdyZWdvcgogICAgICAgIDoKICAgICAgICBbMS40XSAKICAgICAgICAgICAgSG9ub3VyIGV4bHVzaW9uIHBhdHRlcm5zIGZvciBidWlsZCBjbGVhbiB0b28uIFRoaXMgcmVzb2x2ZXMgaHR0cDovL2lzc3Vlcy5hcGFjaGUub3JnL2J1Z3ppbGxhL3Nob3dfYnVnLmNnaT9pZD0zMzc2OSBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS40IHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjQgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICB0c2NobGFiYWNoCiAgICAgICAgOgogICAgICAgIFsxLjRdIAogICAgICAgICAgICBBZGRlZCBhIGRlZmF1bHQgQ01TIG1lbnUgbG9jYWxlIGFuZCBhIGRlZmF1bHQgZG9jdW1lbnQgbG9jYWxlIHRvIHRoZSB1c2VyIHByb2ZpbGUKIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjQgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuNCB1cGRhdGUKICAgICAgICBieQogICAgICAgIHRzY2hsYWJhY2gKICAgICAgICA6CiAgICAgICAgWzEuNF0gCiAgICAgICAgICAgIEFkZGVkIGEgZGVmYXVsdCBDTVMgbWVudSBsb2NhbGUgYW5kIGEgZGVmYXVsdCBkb2N1bWVudCBsb2NhbGUgdG8gdGhlIHVzZXIgcHJvZmlsZQogRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IFNpdGUgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPlNpdGUgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICB0c2NobGFiYWNoCiAgICAgICAgOgogICAgICAgIFtTaXRlXSAKICAgICAgICAgICAgQWRkZWQgc29tZSBtb3JlIHJlbWFya3MgdG8gdGhlIGludHJvZHVjdGlvbiBzZWN0aW9uIG9mIHRoZSBkb2N1bWVudC4KIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjQgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuNCB1cGRhdGUKICAgICAgICBieQogICAgICAgIGdyZWdvcgogICAgICAgIDoKICAgICAgICBbMS40XSAKICAgICAgICAgICAgRG9uJ3QgY29weSBjb3JlIEphdmEgc291cmNlcyB0byBidWlsZC5zcmMuIFRoaXMgc2F2ZXMgYW5vdGhlciA1MDAgdW5uZWNlc3NhcnkgY29waWVzLCBhbmQgbWF5YmUgMyBzZWNvbmRzLiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS40IHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjQgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBncmVnb3IKICAgICAgICA6CiAgICAgICAgWzEuNF0gCiAgICAgICAgICAgIFN3aXRjaGVkIGJ1aWxkIHRvIHByZWNvbXBpbGVkIGFudCB0YXNrcy4gVGhpcyBzaGF2ZXMgYW5vdGhlciB1bm5lY2Vzc2FyeSAzIHNlY29uZHMgb2ZmIHRoZSBidWlsZC4gRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuNCByZW1vdmU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS40IHJlbW92ZQogICAgICAgIGJ5CiAgICAgICAgZ3JlZ29yCiAgICAgICAgOgogICAgICAgIFsxLjRdIAogICAgICAgICAgICBVbmlmaWVkIHBhdGNoaW5nIG9mIGNvY29vbiBjb25maWcgZmlsZXMuIFRoaXMgcGFydGlhbGx5IHJlc29sdmVzIGh0dHA6Ly9pc3N1ZXMuYXBhY2hlLm9yZy9idWd6aWxsYS9zaG93X2J1Zy5jZ2k/aWQ9Mjc4MjUgRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuNCByZW1vdmU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS40IHJlbW92ZQogICAgICAgIGJ5CiAgICAgICAgZ3JlZ29yCiAgICAgICAgOgogICAgICAgIFsxLjRdIAogICAgICAgICAgICBNb3ZlZCBhbnQgdGFza3MgdXNlZCBkdXJpbmcgYnVpbGQgdG8gdG9vbHMvYW50dGFza3MgRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuNCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS40IHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgZ3JlZ29yCiAgICAgICAgOgogICAgICAgIFsxLjRdIAogICAgICAgICAgICBDaGFuZ2VkIGJ1aWxkIHRvIGRpcmVjdGx5IGNvbXBpbGUgdG8gV0VCLUlORi9jbGFzc2VzIGluc3RlYWQgb2YgdG8gYSB0ZW1wb3JhcnkgbG9jYXRpb24uIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjQgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuNCB1cGRhdGUKICAgICAgICBieQogICAgICAgIGdyZWdvcgogICAgICAgIDoKICAgICAgICBbMS40XSAKICAgICAgICAgICAgTW92ZWQgbW9yZSBwcm9wZXJ0aWVzIHRvIHByb3BlcnRpZXMtYnVpbGQsIGVuYWJsZWQgamF2YWMgb3B0aW1pemF0aW9uIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjQgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuNCB1cGRhdGUKICAgICAgICBieQogICAgICAgIGdyZWdvcgogICAgICAgIDoKICAgICAgICBbMS40XSAKICAgICAgICAgICAgTWFkZSBzdXJlIHRoYXQgZXhjbHVkZXMgYXJlIGFjdHVhbGx5IHdvcmtpbmcgd2hpbGUgY29weWluZyBjb2Nvb24gZmlsZXMuIFRoaXMgcmVzb2x2ZXMgdGhlIHByb2JsZW0gd2hlcmUgdGhlIExlbnlhIGRiIHdhcyBub3QgY29waWVkIGNvcnJlY3RseS4gRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuNCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS40IHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgandrYWx0egogICAgICAgIDoKICAgICAgICBbMS40XSAKICAgICAgICAgICAgW21pbm9yIGNoYW5nZV0gY2hhbmdlZCB0byBsYXp5IGxvYWRpbmcgb2YgdW5pdC1vZi13b3JrLCBhcyB3YXMgZG9uZSBpbgp1c2VjYXNlIGZyYW1ld29yawogRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuNCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS40IHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgandrYWx0egogICAgICAgIDoKICAgICAgICBbMS40XSAKICAgICAgICAgICAgW29wdGltaXphdGlvbl0gVXNlY2FzZVJlZ2lzdHJhdGlvbk1hdGNoZXIgY2hlY2tzIGlmIGxlbnlhLnVzZWNhc2UKcGFyYW1ldGVyIGlzIHNldCBiZWZvcmUgY2FsbGluZyByZXNvbHZlci4gRnVydGhlciwgaXQgaXMgbm93IG1hcmtlZCBhcwpwb29sYWJsZSwgdGh1cyBsZXNzIHNlcnZpY2UgY3JlYXRpb25zIG9jY3VyCiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgRG9jcyB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+RG9jcyB1cGRhdGUKICAgICAgICBieQogICAgICAgIHRzY2hsYWJhY2gKICAgICAgICA6CiAgICAgICAgW0RvY3NdIAogICAgICAgICAgICBmaXhlZCBhIG1pc3Rha2UgaW4gZG9jdW1lbnQgc3RydWN0dXJlCiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgRG9jcyB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+RG9jcyB1cGRhdGUKICAgICAgICBieQogICAgICAgIHRzY2hsYWJhY2gKICAgICAgICA6CiAgICAgICAgW0RvY3NdIAogICAgICAgICAgICBBZGRlZCBzb21lIG1vcmUgcmVtYXJrcyB0byB0aGUgaW50cm9kdWN0aW9uIHNlY3Rpb24gb2YgdGhlIGRvY3VtZW50LgogRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuMiB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS4yIHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgdHNjaGxhYmFjaAogICAgICAgIDoKICAgICAgICBbMS4yXSAKICAgICAgICAgICAgRXhwbGljaXRseSBzZXQgWE1MIHNlcml6YWxpemVyIGZvciBTb3VyY2VXcml0aW5nVHJhbnNmb3JtZXIgKGJldHRlciBiZSBzYWZlIHRoYW4gc29ycnkpCiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS40IHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjQgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICB0c2NobGFiYWNoCiAgICAgICAgOgogICAgICAgIFsxLjRdIAogICAgICAgICAgICBBZGRlZCBhIGRlZmF1bHQgQ01TIG1lbnUgbG9jYWxlIGFuZCBhIGRlZmF1bHQgZG9jdW1lbnQgbG9jYWxlIHRvIHRoZSBVc2VyIG9iamVjdC4KIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjIgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuMiB1cGRhdGUKICAgICAgICBieQogICAgICAgIHRzY2hsYWJhY2gKICAgICAgICA6CiAgICAgICAgWzEuMl0gCiAgICAgICAgICAgIEZpeGVkIGJ1ZyAjMzQwNDUKIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjQgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuNCB1cGRhdGUKICAgICAgICBieQogICAgICAgIGp3a2FsdHoKICAgICAgICA6CiAgICAgICAgWzEuNF0gCiAgICAgICAgICAgIFttaW5vciBjaGFuZ2VdIGluIG9wZXJhdGlvbnMsIHJldHJpZXZhbCBvZiB1bml0LW9mLXdvcmsgbm93IGlzIGxhenkuIEl0CmNhbiB0aHVzIHRocm93IGFuIGV4Y2VwdGlvbiwgdGhpcyBpcyBleHBsaWNpdGx5IGRlY2xhcmVkIGluIHRoZQppbnRlcmZhY2UsIGZvciBoaWdoZXIgdHJhbnNwYXJlbmN5CiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS40IHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjQgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBqd2thbHR6CiAgICAgICAgOgogICAgICAgIFsxLjRdIAogICAgICAgICAgICByZWxlYXNlIHVzZSBjYXNlIGNvbXBvbmVudCBhZnRlciB1c2FnZSAoZG9lcyBub3Qgc29sdmUgdGhlIGNhc2Ugd2hlcmUKdXNlciBuZXZlciBjb21wbGV0ZXMgc2Vjb25kIHN0ZXAgaW4gaW50ZXJhY3RpdmUgdXNlIGNhc2VzKQogRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuMiB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS4yIHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgbWljaGkKICAgICAgICA6CiAgICAgICAgWzEuMl0gCiAgICAgICAgICAgIEZpbGVuYW1lIGRlZmluaXRpb24gbW92ZWQgYmFjayBpbnRvIHNwZWNpZmljIERlZmF1bHRTaXRlVHJlZSBpbXBsZW1lbnRhdGlvbiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgU2FuZGJveCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+U2FuZGJveCB1cGRhdGUKICAgICAgICBieQogICAgICAgIG1pY2hpCiAgICAgICAgOgogICAgICAgIFtTYW5kYm94XSAKICAgICAgICAgICAgaWdub3JlIGxvY2FsLmJ1aWxkLnByb3BlcnRpZXMgRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IFNhbmRib3ggdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPlNhbmRib3ggdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBtaWNoaQogICAgICAgIDoKICAgICAgICBbU2FuZGJveF0gCiAgICAgICAgICAgIGNsZWFyIHRhcmdldCBhZGRlZCBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgU2FuZGJveCBhZGQ8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+U2FuZGJveCBhZGQKICAgICAgICBieQogICAgICAgIG1pY2hpCiAgICAgICAgOgogICAgICAgIFtTYW5kYm94XSAKICAgICAgICAgICAgUkVBRE1FIGFkZGVkIG9uIGhvdyB0byBwYXRjaCBMZW55YSB3aXRoIHRoZSBKQ1JTaXRlVHJlZSBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgU2FuZGJveCBhZGQ8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+U2FuZGJveCBhZGQKICAgICAgICBieQogICAgICAgIG1pY2hpCiAgICAgICAgOgogICAgICAgIFtTYW5kYm94XSAKICAgICAgICAgICAgVGhhbmtzIHRvIEZlbGl4IFJvZXRoZW5iYWNoZXIgdGhlIEpDUlNpdGVUcmVlIGlzIG5vdyB1c2luZyB3b3Jrc3BhY2VzIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCBTYW5kYm94IHJlbW92ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj5TYW5kYm94IHJlbW92ZQogICAgICAgIGJ5CiAgICAgICAgbWljaGkKICAgICAgICA6CiAgICAgICAgW1NhbmRib3hdIAogICAgICAgICAgICBjbGVhbmVkIHdpdGhpbiBMZW55YSBhbmQgaGVuY2Ugb2Jzb2xldGUgRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuMiB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS4yIHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgbWljaGkKICAgICAgICA6CiAgICAgICAgWzEuMl0gCiAgICAgICAgICAgIERlZmF1bHRTaXRlVHJlZSByZXBsYWNlZCBieSBpbnRlcmZhY2UgU2l0ZVRyZWUgYW5kIHN0YXRpYyBwYXJhbWV0ZXJzIGNlbnRyYWxpemVkIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjIgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuMiB1cGRhdGUKICAgICAgICBieQogICAgICAgIGdyZWdvcgogICAgICAgIDoKICAgICAgICBbMS4yXSAKICAgICAgICAgICAgQWRkZWQgY29udGV4dCBwcmVmaXggdG8gcmVuYW1lIHNjcmVlbi4gVGhpcyByZXNvbHZlcyBodHRwOi8vaXNzdWVzLmFwYWNoZS5vcmcvYnVnemlsbGEvc2hvd19idWcuY2dpP2lkPTM0MDYwIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjQgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuNCB1cGRhdGUKICAgICAgICBieQogICAgICAgIGFuZHJlYXMKICAgICAgICA6CiAgICAgICAgWzEuNF0gCiAgICAgICAgICAgIFBhc3MgdGhlIFNlcnZpY2VNYW5hZ2VyIHRvIHRhc2tzIGFuZCBBbnQgdGFza3MuIFRoaXMgbWFkZSBpdCBwb3NzaWJsZSB0byByZW1vdmUgZGVwcmVjYXRlZCB3b3JrZmxvdyBzdXBwb3J0IGNsYXNzZXMuIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjQgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuNCB1cGRhdGUKICAgICAgICBieQogICAgICAgIGFuZHJlYXMKICAgICAgICA6CiAgICAgICAgWzEuNF0gCiAgICAgICAgICAgIHRlbXBsYXRlIG1hbmFnbWVudCBtb3ZlZCB0byBQdWJsaWNhdGlvbiwgbGF6eSBsb2FkaW5nIGZvciBQYWdlRW52ZWxvcGUgZmllbGRzIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCBTaXRlIHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj5TaXRlIHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgandrYWx0egogICAgICAgIDoKICAgICAgICBbU2l0ZV0gCiAgICAgICAgICAgIHVwZGF0ZWQgSmF2YS1kb2NzIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjQgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuNCB1cGRhdGUKICAgICAgICBieQogICAgICAgIGp3a2FsdHoKICAgICAgICA6CiAgICAgICAgWzEuNF0gCiAgICAgICAgICAgIGFkZGVkIGphdmEtZG9jcwogRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuNCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS40IHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgYW5kcmVhcwogICAgICAgIDoKICAgICAgICBbMS40XSAKICAgICAgICAgICAgUmVwbGFjZWQgUHVibGljYXRpb25GYWN0b3J5LmV4aXN0c1B1YmxpY2F0aW9uKCkgYnkgUHVibGljYXRpb24uZXhpc3RzKCkuIFRoaXMgd2F5LCBhbGwgUHVibGljYXRpb25GYWN0b3J5LmdldFB1YmxpY2F0aW9uKCkgbWV0aG9kcyBjYW4gYmUgdXNlZCB0byBjaGVjayBpZiBhIHB1YmxpY2F0aW9uIGV4aXRzLiBUaGUgY2hhbmdlIHdhcyBwb3NzaWJsZSBiZWNhdXNlIG9mIHRoZSBwdWJsaWNhdGlvbiBjb25maWcgbGF6eSBsb2FkaW5nLiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS40IHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjQgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBhbmRyZWFzCiAgICAgICAgOgogICAgICAgIFsxLjRdIAogICAgICAgICAgICByZW1vdmVkIG9ic29sZXRlIChSZXF1ZXN0LCB3ZWJhcHBVcmwpIG1ldGhvZHMgZnJvbSBBY2Nlc3NDb250cm9sbGVyIGFuZCBBdXRob3JpemVyIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCBTYW5kYm94IHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj5TYW5kYm94IHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgbWljaGkKICAgICAgICA6CiAgICAgICAgW1NhbmRib3hdIAogICAgICAgICAgICBuYW1lc3BhY2UgZnJvbSByZWdpc3RyeSBhZGRlZCBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS40IHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjQgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBhbmRyZWFzCiAgICAgICAgOgogICAgICAgIFsxLjRdIAogICAgICAgICAgICBbbWlub3IgY2hhbmdlXSByZW1vdmVkIHVudXNlZCBpbXBvcnRzIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjQgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuNCB1cGRhdGUKICAgICAgICBieQogICAgICAgIGFuZHJlYXMKICAgICAgICA6CiAgICAgICAgWzEuNF0gCiAgICAgICAgICAgIGxhenkgbG9hZGluZyBmb3IgUHVibGljYXRpb25JbXBsIGNvbmZpZ3VyYXRpb24gRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuNCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS40IHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgYW5kcmVhcwogICAgICAgIDoKICAgICAgICBbMS40XSAKICAgICAgICAgICAgZml4ZWQgcGlwZWxpbmUgb3JkZXIgKHNvcnJ5IGZvciBtZXNzaW5nIHRoaXMgdXAgYmVmb3JlKSBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgU2l0ZSB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+U2l0ZSB1cGRhdGUKICAgICAgICBieQogICAgICAgIGdyZWdvcgogICAgICAgIDoKICAgICAgICBbU2l0ZV0gCiAgICAgICAgICAgIFJlZmxlY3QgdGhlIGRlbWlzZSBvZiBleWVicm93c2UsIGFuZCByZXBsYWNlIGl0IHdpdGggbW9kX2luYm94IERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCBEb2NzIHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj5Eb2NzIHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgZ3JlZ29yCiAgICAgICAgOgogICAgICAgIFtEb2NzXSAKICAgICAgICAgICAgUmVmbGVjdCB0aGUgZGVtaXNlIG9mIGV5ZWJyb3dzZSwgYW5kIHJlcGxhY2UgaXQgd2l0aCBtb2RfaW5ib3ggRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuNCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS40IHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgZ3JlZ29yCiAgICAgICAgOgogICAgICAgIFsxLjRdIAogICAgICAgICAgICBBZGRlZCBzdHJpcCBuYW1lc3BhY2VzIHRyYW5zZm9ybWF0aW9uIHRvIEJYRSBvcGVuIHN0ZXAgRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuNCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS40IHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgZ3JlZ29yCiAgICAgICAgOgogICAgICAgIFsxLjRdIAogICAgICAgICAgICBTeWNocm9uaXplZCBhbGwgbWV0aG9kcyBpbiBEZWZhdWx0U2l0ZVRyZWUuIFRoaXMgcmVzb2x2ZXMgaHR0cDovL2lzc3Vlcy5hcGFjaGUub3JnL2J1Z3ppbGxhL3Nob3dfYnVnLmNnaT9pZD0zMzkwOCBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS4yIHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjIgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBncmVnb3IKICAgICAgICA6CiAgICAgICAgWzEuMl0gCiAgICAgICAgICAgIEZpeGVkIERvY3VtZW50SWRFeGlzdHNBY3Rpb24uIFRoaXMgcmVzb2x2ZXMgaHR0cDovL2lzc3Vlcy5hcGFjaGUub3JnL2J1Z3ppbGxhL3Nob3dfYnVnLmNnaT9pZD0zMzk0OCBUaGFua3MgdG8gRmVsaXggUm9ldGhlbmJhY2hlciBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS4yIHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjIgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBncmVnb3IKICAgICAgICA6CiAgICAgICAgWzEuMl0gCiAgICAgICAgICAgIFJlbW92ZWQgaW5mbyBtZXNzYWdlcyBmcm9tIGJ1aWxkIGFuZCBwdXQgaXQgaW50byBjb21tZW50cyBpbiB0aGUgYnVpbGQgZmlsZSBpbnN0ZWFkLiAgRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuMiB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS4yIHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgZ3JlZ29yCiAgICAgICAgOgogICAgICAgIFsxLjJdIAogICAgICAgICAgICBSZW1vdmVkIG91dGRhdGVkIGluZm9ybWF0aW9uIGFib3V0IGNvY29vbiAyLjEuNSBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS40IHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjQgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBncmVnb3IKICAgICAgICA6CiAgICAgICAgWzEuNF0gCiAgICAgICAgICAgIENoYW5nZWQgb2NjdXJlbmNlIG9mIGRvY3VtZW50LW5vZGUtaWQgdG8gZG9jdW1lbnQtbmFtZSBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS40IHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjQgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBncmVnb3IKICAgICAgICA6CiAgICAgICAgWzEuNF0gCiAgICAgICAgICAgIFJlbW92ZWQgaW5mbyBtZXNzYWdlcyBmcm9tIGJ1aWxkIGFuZCBwdXQgaXQgaW50byBjb21tZW50cyBpbiB0aGUgYnVpbGQgZmlsZSBpbnN0ZWFkLiAgRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IFNhbmRib3ggdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPlNhbmRib3ggdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBtaWNoaQogICAgICAgIDoKICAgICAgICBbU2FuZGJveF0gCiAgICAgICAgICAgIHJlc29sdmUgcHJlZml4IG9mIHNwZWNpZmljIG5hbWVzcGFjZSBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS40IGFkZDwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjQgYWRkCiAgICAgICAgYnkKICAgICAgICBhbmRyZWFzCiAgICAgICAgOgogICAgICAgIFsxLjRdIAogICAgICAgICAgICBhZGRlZCBmaXJzdCB2ZXJzaW9uIG9mIEdVSSB0byBjcmVhdGUgYSBwdWJsaWNhdGlvbiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS40IHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjQgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBhbmRyZWFzCiAgICAgICAgOgogICAgICAgIFsxLjRdIAogICAgICAgICAgICBhZGRlZCBmaXJzdCB2ZXJzaW9uIG9mIEdVSSB0byBjcmVhdGUgYSBwdWJsaWNhdGlvbiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS4yIHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjIgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBtaWNoaQogICAgICAgIDoKICAgICAgICBbMS4yXSAKICAgICAgICAgICAgb3ZlcndyaXRlIGFkZGVkIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjQgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuNCB1cGRhdGUKICAgICAgICBieQogICAgICAgIGFuZHJlYXMKICAgICAgICA6CiAgICAgICAgWzEuNF0gCiAgICAgICAgICAgIGltcHJvdmVkIFVuaXRPZldvcmsgamF2YWRvY3MgRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuNCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS40IHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgandrYWx0egogICAgICAgIDoKICAgICAgICBbMS40XSAKICAgICAgICAgICAgYWRkZWQgZGVidWcgbWVzc2FnZXMKIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjQgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuNCB1cGRhdGUKICAgICAgICBieQogICAgICAgIGp3a2FsdHoKICAgICAgICA6CiAgICAgICAgWzEuNF0gCiAgICAgICAgICAgIERvY3VtZW50TWFuYWdlciBpbnN0YW5jZSBpcyBub3cgbm90IGNyZWF0ZWQgZm9yIGV2ZXJ5IGNhc2UsIG9ubHkgdXBvbgpyZXF1ZXN0IGluIGdldERvY3VtZW50TWFuYWdlcigpLiBUaGlzIG1ldGhvZCBjYW4gbm93IHRocm93IGFuIGV4Y2VwdGlvbiwKc28gbWV0aG9kcyBleHBsaWNpdGx5IGxpc3RpbmcgZXhjZXB0aW9ucyBhcyBpbiBDaGFuZ2VOb2RlSUQuamF2YSBtdXN0CnJlZmxlY3QgdGhpcy4KIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjQgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuNCB1cGRhdGUKICAgICAgICBieQogICAgICAgIGFuZHJlYXMKICAgICAgICA6CiAgICAgICAgWzEuNF0gCiAgICAgICAgICAgIGRvbid0IHVzZSBwYWdlIGVudmVsb3BlIGluIHVzZWNhc2UgZmxvd3NjcmlwdCBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS40IHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjQgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBhbmRyZWFzCiAgICAgICAgOgogICAgICAgIFsxLjRdIAogICAgICAgICAgICBhZGRlZCBtZXRob2QgdG8gcHVibGljYXRpb24gZmFjdG9yeSB0byByZXR1cm4gYWxsIGF2YWlsYWJsZSBwdWJsaWNhdGlvbnMgRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuNCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS40IHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgYW5kcmVhcwogICAgICAgIDoKICAgICAgICBbMS40XSAKICAgICAgICAgICAgdXNlY2FzZSByZXNvbHZlciB3b3JrcyBub3cgZm9yIG5vbi1wdWJsaWNhdGlvbiBVUkxzIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjQgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuNCB1cGRhdGUKICAgICAgICBieQogICAgICAgIGFuZHJlYXMKICAgICAgICA6CiAgICAgICAgWzEuNF0gCiAgICAgICAgICAgIGZhbGxiYWNrIHNvdXJjZSBmYWN0b3J5IHdvcmtzIG5vdyBmb3Igbm9uLXB1YmxpY2F0aW9uIFVSTHMgRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuMiB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS4yIHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgbWljaGkKICAgICAgICA6CiAgICAgICAgWzEuMl0gCiAgICAgICAgICAgIHRvdWNoaW5nIHRoZSBzb3VyY2Ugb2YgdGhlIGNsb25lIHB1YmxpY2F0aW9uIGFkZGVkIGFuZCB0aGUgUkVBRE1FIGltcHJvdmVkIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjIgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuMiB1cGRhdGUKICAgICAgICBieQogICAgICAgIG1pY2hpCiAgICAgICAgOgogICAgICAgIFsxLjJdIAogICAgICAgICAgICBpZ25vcmUgbG9jYWwuYnVpbGQucHJvcGVydGllcyBvZiBjbG9uZSBwcm9jZXNzIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjIgYWRkPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuMiBhZGQKICAgICAgICBieQogICAgICAgIG1pY2hpCiAgICAgICAgOgogICAgICAgIFsxLjJdIAogICAgICAgICAgICBob3d0byBhZGRlZCBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS4yIGFkZDwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjIgYWRkCiAgICAgICAgYnkKICAgICAgICBtaWNoaQogICAgICAgIDoKICAgICAgICBbMS4yXSAKICAgICAgICAgICAgY2xvbmUgYnVpbGQgYWRkZWQgRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IERvY3MgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPkRvY3MgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICB0c2NobGFiYWNoCiAgICAgICAgOgogICAgICAgIFtEb2NzXSAKICAgICAgICAgICAgQWRkZWQgQUlFU0VDIEFmZ2hhbmlzdGFuICh3d3cuYWllc2VjLm9yZy5hZikgdG8gTGl2ZSBTaXRlcwogRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuNCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS40IHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgdHNjaGxhYmFjaAogICAgICAgIDoKICAgICAgICBbMS40XSAKICAgICAgICAgICAgTW92ZWQgY29uZmlnL21lbnVzL2dlbmVyaWMueHNwIGZyb20gcHVibGljYXRpb24gdG8gY29yZSBsZW55YS9jbXNtZW51cy54c3AKIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCBTaXRlIHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj5TaXRlIHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgdHNjaGxhYmFjaAogICAgICAgIDoKICAgICAgICBbU2l0ZV0gCiAgICAgICAgICAgIEFkZGVkIEFJRVNFQyBBZmdoYW5pc3RhbiAod3d3LmFpZXNlYy5vcmcuYWYpIHRvIExpdmUgU2l0ZXMKIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjQgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuNCB1cGRhdGUKICAgICAgICBieQogICAgICAgIGFuZHJlYXMKICAgICAgICA6CiAgICAgICAgWzEuNF0gCiAgICAgICAgICAgIHB1dCBzY2hlZHVsZXIgZGVjbGFyYXRpb24gYXQgdGhlIGVuZCwgdGhpcyB3YXkgdGhlIEhTUUwgREIgc2VydmVyIGhhcyBzdGFydGVkIHVwIHdoZW4gdGhlIHNjaGVkdWxlciBuZWVkcyB0aGUgam9iIHN0b3JlIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjQgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuNCB1cGRhdGUKICAgICAgICBieQogICAgICAgIGFuZHJlYXMKICAgICAgICA6CiAgICAgICAgWzEuNF0gCiAgICAgICAgICAgIGVuYWJsZSBoc3FsZGIgYmxvY2sgZm9yIHNjaGVkdWxlciBqb2IgcGVyc2lzdGVuY2UgRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuNCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS40IHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgYW5kcmVhcwogICAgICAgIDoKICAgICAgICBbMS40XSAKICAgICAgICAgICAgc2NoZWR1bGVyOiB1c2UgY3VzdG9tIGtlZXAtYWxpdmUgc3RhdGVtZW50IGJlY2F1c2UgSFNRTCBjYW5ub3QgcGFyc2UgJ1NFTEVDVCAxJyBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS40IGFkZDwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjQgYWRkCiAgICAgICAgYnkKICAgICAgICBhbmRyZWFzCiAgICAgICAgOgogICAgICAgIFsxLjRdIAogICAgICAgICAgICBzZXR1cCB0byB1c2UgaHNxbCBmb3IgY3JvbiBibG9jayBqb2IgcGVyc2lzdGVuY2UgRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuNCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS40IHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgYW5kcmVhcwogICAgICAgIDoKICAgICAgICBbMS40XSAKICAgICAgICAgICAgW21pbm9yIGNoYW5nZV0gdXBkYXRlZCB0byBuZXcgRG9jdW1lbnRGYWN0b3J5IG1ldGhvZCBzaWduYXR1cmUgRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuNCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS40IHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgYW5kcmVhcwogICAgICAgIDoKICAgICAgICBbMS40XSAKICAgICAgICAgICAgaW50cm9kdWNlZCBVc2VjYXNlU2NoZWR1bGVyIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjQgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuNCB1cGRhdGUKICAgICAgICBieQogICAgICAgIGFuZHJlYXMKICAgICAgICA6CiAgICAgICAgWzEuNF0gCiAgICAgICAgICAgIGludHJvZHVjZWQgVXNlY2FzZVNjaGVkdWxlciBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS40IGFkZDwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjQgYWRkCiAgICAgICAgYnkKICAgICAgICBhbmRyZWFzCiAgICAgICAgOgogICAgICAgIFsxLjRdIAogICAgICAgICAgICBpbnRyb2R1Y2VkIFVzZWNhc2VTY2hlZHVsZXIgRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuNCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS40IHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgYW5kcmVhcwogICAgICAgIDoKICAgICAgICBbMS40XSAKICAgICAgICAgICAgW21pbm9yIGNoYW5nZV0gcmVmYWN0b3Jpbmc6IGV4dHJhY3RlZCBtZXRob2QgRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuNCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS40IHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgYW5kcmVhcwogICAgICAgIDoKICAgICAgICBbMS40XSAKICAgICAgICAgICAgcmV2ZXJ0ZWQgc29tZSBjaGFuZ2VzIGR1ZSB0byBpbXByb3ZlbWVudHMgaW4gdXNlY2FzZSBjcm9uIGpvYiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS40IHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjQgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBhbmRyZWFzCiAgICAgICAgOgogICAgICAgIFsxLjRdIAogICAgICAgICAgICB1c2VjYXNlIGNyb24gam9iIGluaXRpYWxpemVzIHJlcXVlc3QgaW4gb2JqZWN0IG1vZGVsIHdpdGggb3JpZ2luYWwgVVJMIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjQgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuNCB1cGRhdGUKICAgICAgICBieQogICAgICAgIGFuZHJlYXMKICAgICAgICA6CiAgICAgICAgWzEuNF0gCiAgICAgICAgICAgIGRvbid0IHVzZSBwdWJsaWNhdGlvbiB0ZW1wbGF0aW5nIGZvciBjb250ZW50IHNvdXJjZXMgRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuNCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS40IHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgYW5kcmVhcwogICAgICAgIDoKICAgICAgICBbMS40XSAKICAgICAgICAgICAgdXJpIHBhcmFtZXRlcml6ZXI6IHBhc3MgcHVibGljYXRpb24gSUQgYXMgcGFyYW1ldGVyIHRvIGZhbGxiYWNrIG1vZHVsZSAoYWxsb3dzIHRvIHVzZSBpdCBmcm9tIHNjaGVkdWxlcikgRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuNCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS40IHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgYW5kcmVhcwogICAgICAgIDoKICAgICAgICBbMS40XSAKICAgICAgICAgICAgYWxsb3cgdG8gcGFzcyBwdWJsaWNhdGlvbiBJRCBhcyBwYXJhbWV0ZXIgdG8gZmFsbGJhY2sgbW9kdWxlIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjQgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuNCB1cGRhdGUKICAgICAgICBieQogICAgICAgIGFuZHJlYXMKICAgICAgICA6CiAgICAgICAgWzEuNF0gCiAgICAgICAgICAgIFVzZWNhc2VDcm9uSm9iIGluaXRpYWxpemVzIGFjY2VzcyBjb250cm9sIGluZm9ybWF0aW9uIGluIHNlc3Npb24gLSZndDsgd29ya2Zsb3cgaW52b2NhdGlvbiB3b3JrcyBpbiBzY2hlZHVsZWQgdXNlY2FzZXMgRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuNCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS40IHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgYW5kcmVhcwogICAgICAgIDoKICAgICAgICBbMS40XSAKICAgICAgICAgICAgYWRkZWQgbWV0aG9kcyB0byBhdXRob3JpemUgYSByZXF1ZXN0IHdpdGggYSBjdXN0b20gVVJMIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjQgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuNCB1cGRhdGUKICAgICAgICBieQogICAgICAgIGFuZHJlYXMKICAgICAgICA6CiAgICAgICAgWzEuNF0gCiAgICAgICAgICAgIENNU1NpdHVhdGlvbjogbWFkZSB0b1N0cmluZygpIG1vcmUgdmVyYm9zZSBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS40IHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjQgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBhbmRyZWFzCiAgICAgICAgOgogICAgICAgIFsxLjRdIAogICAgICAgICAgICBkb24ndCBjaGVjayBmb3Igc2NoZWR1bGluZyByZXF1ZXN0IHBhcmFtZXRlciAob2Jzb2xldGUpIGluIHVzZWNhc2UgZmxvd3NjcmlwdCBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS40IHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjQgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBhbmRyZWFzCiAgICAgICAgOgogICAgICAgIFsxLjRdIAogICAgICAgICAgICBlbmFibGUgc2NoZWR1bGluZyBmb3IgcHVibGlzaCB1c2VjYXNlIChkb2Vzbid0IHdvcmsgeWV0IGR1ZSB0byBtaXNzaW5nIEFDIHJvbGUgaW5pdGlhbGl6YXRpb24pIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjQgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuNCB1cGRhdGUKICAgICAgICBieQogICAgICAgIGFuZHJlYXMKICAgICAgICA6CiAgICAgICAgWzEuNF0gCiAgICAgICAgICAgIGluaXRpYWxpemUgd29ya2Zsb3cgc2l0dWF0aW9uIGV2ZW4gaWYgbm8gc2Vzc2lvbiBpcyBwcmVzZW50IERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjQgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuNCB1cGRhdGUKICAgICAgICBieQogICAgICAgIGFuZHJlYXMKICAgICAgICA6CiAgICAgICAgWzEuNF0gCiAgICAgICAgICAgIG9idGFpbiBwdWJsaWNhdGlvbiBmcm9tIGRvY3VtZW50IGluc3RlYWQgb2Ygb2JqZWN0IG1vZGVsIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjQgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuNCB1cGRhdGUKICAgICAgICBieQogICAgICAgIGFuZHJlYXMKICAgICAgICA6CiAgICAgICAgWzEuNF0gCiAgICAgICAgICAgIGRvbid0IHVzZSByZXF1ZXN0IHRvIHJlc29sdmUgaW52b2NhdGlvbiBVUkwgRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuNCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS40IHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgYW5kcmVhcwogICAgICAgIDoKICAgICAgICBbMS40XSAKICAgICAgICAgICAgcmVmYWN0b3JlZCB1c2VjYXNlIGluaXRpYWxpemF0aW9uIChzb3VyY2UgVVJMIGlzIHBhc3NlZCBhbmQgbm90IHJlc29sdmVkIHZpYSBjb250ZXh0KSBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS40IHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjQgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBhbmRyZWFzCiAgICAgICAgOgogICAgICAgIFsxLjRdIAogICAgICAgICAgICByZW1vdmVkIHB1YmxpY2F0aW9uIGZyb20gZG9jdW1lbnQgaWRlbnRpdHkgbWFwIChjb25jZXB0dWFsbHkgaW5jb3JyZWN0KSBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS40IHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjQgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICB0c2NobGFiYWNoCiAgICAgICAgOgogICAgICAgIFsxLjRdIAogICAgICAgICAgICBBZGRlZCBkZWZhdWx0IHZhbHVlIGZvciByZW5kZXJ0eXBlIHZhcmlhYmxlCiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS40IHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjQgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICB0c2NobGFiYWNoCiAgICAgICAgOgogICAgICAgIFsxLjRdIAogICAgICAgICAgICBGaW5hbGx5IGZpeGVkIGVuY29kaW5nIC4uLiBzb3JyeSEKIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjQgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuNCB1cGRhdGUKICAgICAgICBieQogICAgICAgIHRzY2hsYWJhY2gKICAgICAgICA6CiAgICAgICAgWzEuNF0gCiAgICAgICAgICAgIEFwcGxpZWQgc29tZSBmb3JtYXR0aW5nIGFuZCBmaXhlZCBlbmNvZGluZyB0byBVVEYtOCAoc2VlIGJ1ZyAjMjg0NDgpCiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgU2FuZGJveCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+U2FuZGJveCB1cGRhdGUKICAgICAgICBieQogICAgICAgIG1pY2hpCiAgICAgICAgOgogICAgICAgIFtTYW5kYm94XSAKICAgICAgICAgICAgcmVhZCBzaXRldHJlZSB0aHJvdWdoIEpDUiBpbnN0ZWFkIGZyb20gZmlsZXN5c3RlbSBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgU2FuZGJveCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+U2FuZGJveCB1cGRhdGUKICAgICAgICBieQogICAgICAgIG1pY2hpCiAgICAgICAgOgogICAgICAgIFtTYW5kYm94XSAKICAgICAgICAgICAgbG9hZCBzaXRldHJlZSB0aHJvdWdoIEpDUiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS40IGFkZDwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjQgYWRkCiAgICAgICAgYnkKICAgICAgICBhbmRyZWFzCiAgICAgICAgOgogICAgICAgIFsxLjRdIAogICAgICAgICAgICBhZGRpbmcgZmlyc3QgZHJhZnQgb2Ygc2NoZWR1bGVyIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjQgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuNCB1cGRhdGUKICAgICAgICBieQogICAgICAgIGFuZHJlYXMKICAgICAgICA6CiAgICAgICAgWzEuNF0gCiAgICAgICAgICAgIG1pbm9yIGNoYW5nZTogbG9nIGVycm9yIG1lc3NhZ2UgRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuNCByZW1vdmU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS40IHJlbW92ZQogICAgICAgIGJ5CiAgICAgICAgYW5kcmVhcwogICAgICAgIDoKICAgICAgICBbMS40XSAKICAgICAgICAgICAgcmVtb3ZlZCBvYnNvbGV0ZSBKWCB0ZW1wbGF0ZSBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS40IGFkZDwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjQgYWRkCiAgICAgICAgYnkKICAgICAgICBhbmRyZWFzCiAgICAgICAgOgogICAgICAgIFsxLjRdIAogICAgICAgICAgICBtb3ZlZCBtZXNzYWdlIG91dHB1dCB0byBkZWRpY2F0ZWQgSlggdGVtcGxhdGUgRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuNCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS40IHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgYW5kcmVhcwogICAgICAgIDoKICAgICAgICBbMS40XSAKICAgICAgICAgICAgbW92ZWQgbWVzc2FnZSBvdXRwdXQgdG8gZGVkaWNhdGVkIEpYIHRlbXBsYXRlIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjQgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuNCB1cGRhdGUKICAgICAgICBieQogICAgICAgIGp3a2FsdHoKICAgICAgICA6CiAgICAgICAgWzEuNF0gCiAgICAgICAgICAgIGNoYW5naW5nIGNzcyBjbGFzcyByZWZlcmVuY2VzIGZyb20gbGVueWEtZm9ybS1lbnRyeSB0byBsZW55YS1mb3JtLWVsZW1lbnQsIGFzIHRoaXMgaXMgd2hhdCBpcyBhdmFpbGFibGUgaW4gdGhlIGNzcyBmaWxlIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjQgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuNCB1cGRhdGUKICAgICAgICBieQogICAgICAgIGp3a2FsdHoKICAgICAgICA6CiAgICAgICAgWzEuNF0gCiAgICAgICAgICAgIGZpeCB0byBhdm9pZCBOUEUgaW4gbG9nZ2luZyB3aGVuIG5ldyB1c2VyIGlzIGFkZGVkIGFuZCB0aGVuIHVzZWQgZm9yIGxvZwppbi4gTm90ZTogdGhpcyBpcyBhIHF1aWNrIGZpeCwgYSByZXN0cnVjdHVyaW5nIG9mIHRoZSBJdGVtIGhpZXJhcmNoeQptaWdodCBiZSBuZWNlc3NhcnkgdG8gYXZvaWQgdGhlc2UgcHJvYmxlbXMsIHNlZSBkaXNjdXNzaW9uIG9uIGRldiBsaXN0CiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS4yIHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjIgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBtaWNoaQogICAgICAgIDoKICAgICAgICBbMS4yXSAKICAgICAgICAgICAgYWxsIG1ldGhvZHMgc3luY2hyb25pemVkIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjQgcmVtb3ZlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuNCByZW1vdmUKICAgICAgICBieQogICAgICAgIGFuZHJlYXMKICAgICAgICA6CiAgICAgICAgWzEuNF0gCiAgICAgICAgICAgIHJlbW92ZWQgd29ya2Zsb3cgaGlzdG9yeSBmaWxlcyAtIGNyZWF0ZWQgb24gdGhlIGZseSBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS40IHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjQgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBqd2thbHR6CiAgICAgICAgOgogICAgICAgIFsxLjRdIAogICAgICAgICAgICByZW1vdmVkIHNwYWNlcyB3aXRoaW4gdGV4dGFyZWEgZWxlbWVudCB0byBhdm9pZCBwcm9ibGVtcyBpbiBkZXNjcmlwdGlvbgpmaWVsZAogRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuNCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS40IHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgandrYWx0egogICAgICAgIDoKICAgICAgICBbMS40XSAKICAgICAgICAgICAgcmVtb3ZlIHNwYWNlcyBpbiB0ZXh0YXJlYSBlbGVtZW50LiBDb3JyZWN0IHBhc3N3b3JkIHR5cG8KIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjQgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuNCB1cGRhdGUKICAgICAgICBieQogICAgICAgIGFuZHJlYXMKICAgICAgICA6CiAgICAgICAgWzEuNF0gCiAgICAgICAgICAgIFJlZGVzaWduIG9mIHdvcmtmbG93IGhhbmRsaW5nLiBUaGUgd29ya2Zsb3cgY29yZSBpcyByZWR1Y2VkIHRvIGEgbWVyZSBlbmdpbmUsIHRoZSBoaXN0b3J5IGhhbmRsaW5nIGlzIGRvbmUgYnkgV29ya2Zsb3dhYmxlIG5vdy4gVGhpcyB3YXksIHRoZSB3b3JrZmxvdyBwZXJzaXN0ZW5jZSBjb3VsZCBiZSBtb3ZlZCB0byB0aGUgRG9jdW1lbnQgY2xhc3Nlcywgd2hpY2ggbWVhbnMgdGhhdCByZXBvc2l0b3J5IGFjY2VzcyBhbmQgdHJhbnNhY3Rpb24gaGFuZGxpbmcgY2FuIGVhc2lseSBiZSBzdXBwb3J0ZWQuIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjQgcmVtb3ZlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuNCByZW1vdmUKICAgICAgICBieQogICAgICAgIGp3a2FsdHoKICAgICAgICA6CiAgICAgICAgWzEuNF0gCiAgICAgICAgICAgIGZ1bmN0aW9ucyBubyBsb25nZXIgdXNlZDsgcmVwbGFjZWQgYnkgdXNlLWNhc2VzCiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS40IHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjQgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBqd2thbHR6CiAgICAgICAgOgogICAgICAgIFsxLjRdIAogICAgICAgICAgICBzYXZlIGNoYW5nZXMgdG8gdXNlcgogRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuNCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS40IHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgandrYWx0egogICAgICAgIDoKICAgICAgICBbMS40XSAKICAgICAgICAgICAgY2FsbCBuZXcgdXNlLWNhc2UgZm9yICJjaGFuZ2UgZ3JvdXAgbWVtYmVyc2hpcHMiCiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgU2FuZGJveCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+U2FuZGJveCB1cGRhdGUKICAgICAgICBieQogICAgICAgIG1pY2hpCiAgICAgICAgOgogICAgICAgIFtTYW5kYm94XSAKICAgICAgICAgICAgdG91Y2ggYWRkZWQgdG8gbWFrZSBzdXJlIGV2ZXJ5dGhpbmcgaXMgcmVhbGx5IGNvbXBpbGVkIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCBTYW5kYm94IHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj5TYW5kYm94IHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgbWljaGkKICAgICAgICA6CiAgICAgICAgW1NhbmRib3hdIAogICAgICAgICAgICBnZXRSZXBvIGFkZGVkIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjQgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuNCB1cGRhdGUKICAgICAgICBieQogICAgICAgIGp3a2FsdHoKICAgICAgICA6CiAgICAgICAgWzEuNF0gCiAgICAgICAgICAgIGNhbGwgc2F2ZSgpIGFmdGVyIGNoYW5nZXMKIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjQgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuNCB1cGRhdGUKICAgICAgICBieQogICAgICAgIGp3a2FsdHoKICAgICAgICA6CiAgICAgICAgWzEuNF0gCiAgICAgICAgICAgIGNhbGwgbmV3IHVzZS1jYXNlIGZvciBjaGFuZ2luZyBncm91cCBwcm9maWxlCiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS40IHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjQgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBqd2thbHR6CiAgICAgICAgOgogICAgICAgIFsxLjRdIAogICAgICAgICAgICByZW1vdmVkIHVudXNlZCBmdW5jdGlvbgogRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuNCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS40IHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgandrYWx0egogICAgICAgIDoKICAgICAgICBbMS40XSAKICAgICAgICAgICAgY29ycmVjdGVkIHRpdGxlCiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS4yIHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjIgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBtaWNoaQogICAgICAgIDoKICAgICAgICBbMS4yXSAKICAgICAgICAgICAgY29uY3JldGUgZGVmYXVsdCBpbXBsZW1lbnRhdGlvbiByZXBsYWNlZCBieSBpbnRlcmZhY2UgRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IFNhbmRib3ggdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPlNhbmRib3ggdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBtaWNoaQogICAgICAgIDoKICAgICAgICBbU2FuZGJveF0gCiAgICAgICAgICAgIGV4dHJhIHRvIGlnbm9yZSBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgU2FuZGJveCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+U2FuZGJveCB1cGRhdGUKICAgICAgICBieQogICAgICAgIG1pY2hpCiAgICAgICAgOgogICAgICAgIFtTYW5kYm94XSAKICAgICAgICAgICAgZG93bmxvYWQgdGFyZ2V0IGFkZGVkIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCBTYW5kYm94IHJlbW92ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj5TYW5kYm94IHJlbW92ZQogICAgICAgIGJ5CiAgICAgICAgbWljaGkKICAgICAgICA6CiAgICAgICAgW1NhbmRib3hdIAogICAgICAgICAgICBleHRyYSB3aWxsIGJlIGNyZWF0ZWQgZHVyaW5nIGJ1aWxkIHByb2Nlc3MgRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IFNhbmRib3ggYWRkPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPlNhbmRib3ggYWRkCiAgICAgICAgYnkKICAgICAgICBtaWNoaQogICAgICAgIDoKICAgICAgICBbU2FuZGJveF0gCiAgICAgICAgICAgIGRvd25sb2FkIGxpYnMgYWRkZWQgRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IFNhbmRib3ggYWRkPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPlNhbmRib3ggYWRkCiAgICAgICAgYnkKICAgICAgICBtaWNoaQogICAgICAgIDoKICAgICAgICBbU2FuZGJveF0gCiAgICAgICAgICAgIEpDUlNpdGVUcmVlIGltcGxlbWVudGF0aW9uIGFkZGVkIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjIgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuMiB1cGRhdGUKICAgICAgICBieQogICAgICAgIG1pY2hpCiAgICAgICAgOgogICAgICAgIFsxLjJdIAogICAgICAgICAgICBzZXBhcmF0ZWQgdGhlIGFudHRhc2tzIGJ1aWxkaW5nIGZyb20gdGhlIHJlc3Qgb2YgdGhlIHNvdXJjZSBzdWNoIHRoYXQgcGF0Y2hlcyBjYW4gYmUgYXBwbGllZCB3aXRob3V0IGJyZWFraW5nIHRoZSBidWlsZCBwcm9jZXNzIGR1cmluZyB0aGUgYW50dGFzayB0YXJnZXQgRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuMiB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS4yIHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgbWljaGkKICAgICAgICA6CiAgICAgICAgWzEuMl0gCiAgICAgICAgICAgIGNvbmNyZXRlIFNpdGV0cmVlIGltcGxlbWVudGF0aW9uIHJlcGxhY2VkIGJ5IGludGVyZmFjZSBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgRG9jcyB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+RG9jcyB1cGRhdGUKICAgICAgICBieQogICAgICAgIGdyZWdvcgogICAgICAgIDoKICAgICAgICBbRG9jc10gCiAgICAgICAgICAgIEFkZGVkIEh5YnJpZ2VuY2lzIHRvIGxpdmUgc2l0ZXMuIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjQgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuNCB1cGRhdGUKICAgICAgICBieQogICAgICAgIGp3a2FsdHoKICAgICAgICA6CiAgICAgICAgWzEuNF0gCiAgICAgICAgICAgIHJlbW92ZWQgZnVuY3Rpb25zIHdoaWNoIGFyZSBubyBsb25nZXIgdXNlZAogRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuNCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS40IHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgandrYWx0egogICAgICAgIDoKICAgICAgICBbMS40XSAKICAgICAgICAgICAgY2hhbmdlZCB0byByZWZlciB0byBuZXcgdXNlY2FzZSBuYW1lcwogRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuNCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS40IHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgYW5kcmVhcwogICAgICAgIDoKICAgICAgICBbMS40XSAKICAgICAgICAgICAgc2F2ZSB1c2VyIGFmdGVyIHVzZWNhc2UgY29tcGxldGlvbiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS4yIHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjIgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBncmVnb3IKICAgICAgICA6CiAgICAgICAgWzEuMl0gCiAgICAgICAgICAgIE1hZGUgc3VyZSBjb2Nvb24ueGNvbmYgaXMgb25seSBjb3BpZWQgaWYgaXQgaGFzIGNoYW5nZWQuIFRoaXMgcmVzb2x2ZXMgaHR0cDovL2lzc3Vlcy5hcGFjaGUub3JnL2J1Z3ppbGxhL3Nob3dfYnVnLmNnaT9pZD0zMzg0NyBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS40IHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjQgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBncmVnb3IKICAgICAgICA6CiAgICAgICAgWzEuNF0gCiAgICAgICAgICAgIE1hZGUgc3VyZSBjb2Nvb24ueGNvbmYgaXMgb25seSBjb3BpZWQgaWYgaXQgaGFzIGNoYW5nZWQuIFRoaXMgcmVzb2x2ZXMgaHR0cDovL2lzc3Vlcy5hcGFjaGUub3JnL2J1Z3ppbGxhL3Nob3dfYnVnLmNnaT9pZD0zMzg0NyBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS40IHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjQgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBhbmRyZWFzCiAgICAgICAgOgogICAgICAgIFsxLjRdIAogICAgICAgICAgICBzdG9yZSBzaXRlIHN0cnVjdHVyZSBvYmplY3RzIGluIGRvY3VtZW50IGlkZW50aXR5IG1hcCBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS4yIHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjIgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBqd2thbHR6CiAgICAgICAgOgogICAgICAgIFsxLjJdIAogICAgICAgICAgICBBY3RpdmF0aW5nIGNyb24gYmxvY2sgKG5lZWRlZCBieSBzY2hlZHVsZXIpCiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS4yIHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjIgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBlZGl0aAogICAgICAgIDoKICAgICAgICBbMS4yXSAKICAgICAgICAgICAgcmVtb3ZlIG5hbWVzcGFjZSBmcm9tIGh0bWwgZG9jdW1lbnQsIHdoaWNoIGNhbGwgdGhlIGxvYWQgb2YgYnhlIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjIgcmVtb3ZlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuMiByZW1vdmUKICAgICAgICBieQogICAgICAgIGp3a2FsdHoKICAgICAgICA6CiAgICAgICAgWzEuMl0gCiAgICAgICAgICAgIHJlbW92ZWQsIGFzIGlzIHByb3ZpZGVkIGJ5IENvY29vbiBpbiBhIG1vcmUgcmVjZW50IHZlcnNpb24KIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjIgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuMiB1cGRhdGUKICAgICAgICBieQogICAgICAgIGp3a2FsdHoKICAgICAgICA6CiAgICAgICAgWzEuMl0gCiAgICAgICAgICAgIHJlcGxhY2VkIFRPRE8gd2l0aCBhbiBleGFtcGxlIG9mIGNhdGVnb3J5IGNvbmZpZ3VyYXRpb24KIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjQgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuNCB1cGRhdGUKICAgICAgICBieQogICAgICAgIGp3a2FsdHoKICAgICAgICA6CiAgICAgICAgWzEuNF0gCiAgICAgICAgICAgIHVwZGF0ZWQgRFREIHJlZmVyZW5jZSBhcyBwZXIgamF2YS5zdW4uY29tIGluc3RydWN0aW9ucwogRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuMiB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS4yIHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgandrYWx0egogICAgICAgIDoKICAgICAgICBbMS4yXSAKICAgICAgICAgICAgdXBkYXRlZCBEVEQgcmVmZXJlbmNlIGZvciB3ZWItYXBwIGFzIHBlciBqYXZhLnN1bi5jb20gaW5zdHJ1Y3Rpb25zCiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgRG9jcyB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+RG9jcyB1cGRhdGUKICAgICAgICBieQogICAgICAgIGFuZHJlYXMKICAgICAgICA6CiAgICAgICAgW0RvY3NdIAogICAgICAgICAgICBmaXhlZCBzb21lIGluZGVudGF0aW9uIGVycm9ycyBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgRG9jcyB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+RG9jcyB1cGRhdGUKICAgICAgICBieQogICAgICAgIHRob3JzdGVuCiAgICAgICAgOgogICAgICAgIFtEb2NzXSAKICAgICAgICAgICAgRml4ZWQgd3JvbmcgaW5zdHJ1Y3Rpb25zIG9uIHdlYnNpdGUtdXBkYXRlIGFuZCBhZGRlZCBzb21lIG5vdGUgb24gY29udHJpYiBwYWdlLiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgU2l0ZSB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+U2l0ZSB1cGRhdGUKICAgICAgICBieQogICAgICAgIHRob3JzdGVuCiAgICAgICAgOgogICAgICAgIFtTaXRlXSAKICAgICAgICAgICAgRml4ZWQgd3JvbmcgaW5zdHJ1Y3Rpb25zIG9uIHdlYnNpdGUtdXBkYXRlIGFuZCBhZGRlZCBzb21lIG5vdGUgb24gY29udHJpYiBwYWdlLiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS40IHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjQgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBncmVnb3IKICAgICAgICA6CiAgICAgICAgWzEuNF0gCiAgICAgICAgICAgIEFkZGVkICJzdWNjZXNzZnVsbHkgYnVpbHQiIG1lc3NhZ2UgdG8gdHJ1bmsgYnVpbGQgRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuNCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS40IHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgZ3JlZ29yCiAgICAgICAgOgogICAgICAgIFsxLjRdIAogICAgICAgICAgICBPbmx5IGNvcHkgY29jb29uLnhjb25mIGlmIGl0IGhhcyBjaGFuZ2VkLiBQYXRjaCBieSBGZWxpeCBSb2V0aGVuYmFjaGVyLiBUaGlzIHJlc29sdmVzIGh0dHA6Ly9pc3N1ZXMuYXBhY2hlLm9yZy9idWd6aWxsYS9zaG93X2J1Zy5jZ2k/aWQ9MzM4NDcgRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuMiB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS4yIHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgZ3JlZ29yCiAgICAgICAgOgogICAgICAgIFsxLjJdIAogICAgICAgICAgICBPbmx5IGNvcHkgY29jb29uLnhjb25mIGlmIGl0IGhhcyBjaGFuZ2VkLiBQYXRjaCBieSBGZWxpeCBSb2V0aGVuYmFjaGVyLiBUaGlzIHJlc29sdmVzIGh0dHA6Ly9pc3N1ZXMuYXBhY2hlLm9yZy9idWd6aWxsYS9zaG93X2J1Zy5jZ2k/aWQ9MzM4NDcgRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuNCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS40IHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgZ3JlZ29yCiAgICAgICAgOgogICAgICAgIFsxLjRdIAogICAgICAgICAgICBSZW1vdmVkIGxvZ291dCBmcm9tIGFjY2VzcyBjb250cm9sIGV4Y2VwdGlvbiBsaXN0LiBUaGlzIHJlc29sdmVzIGh0dHA6Ly9pc3N1ZXMuYXBhY2hlLm9yZy9idWd6aWxsYS9zaG93X2J1Zy5jZ2k/aWQ9MzM3NTQgRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuMiB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS4yIHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgZ3JlZ29yCiAgICAgICAgOgogICAgICAgIFsxLjJdIAogICAgICAgICAgICBSZW1vdmVkIGxvZ291dCBmcm9tIGFjY2VzcyBjb250cm9sIGV4Y2VwdGlvbiBsaXN0LiBUaGlzIHJlc29sdmVzIGh0dHA6Ly9pc3N1ZXMuYXBhY2hlLm9yZy9idWd6aWxsYS9zaG93X2J1Zy5jZ2k/aWQ9MzM3NTQgRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IERvY3MgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPkRvY3MgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICB0aG9yc3RlbgogICAgICAgIDoKICAgICAgICBbRG9jc10gCiAgICAgICAgICAgIHJlYWRkZWQgdGhlIGNoYW5nZXMuIFNvcnJ5LCBkdWRlczstKSBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgU2l0ZSB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+U2l0ZSB1cGRhdGUKICAgICAgICBieQogICAgICAgIHRob3JzdGVuCiAgICAgICAgOgogICAgICAgIFtTaXRlXSAKICAgICAgICAgICAgcmVhZGRlZCB0aGUgY2hhbmdlcy4gU29ycnksIGR1ZGVzOy0pIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjQgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuNCB1cGRhdGUKICAgICAgICBieQogICAgICAgIGFuZHJlYXMKICAgICAgICA6CiAgICAgICAgWzEuNF0gCiAgICAgICAgICAgIGRlbGV0ZTogdXNlIHVuaXF1ZSBkb2N1bWVudCBJRCBpbiB0cmFzaCBhcmVhIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjQgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuNCB1cGRhdGUKICAgICAgICBieQogICAgICAgIGFuZHJlYXMKICAgICAgICA6CiAgICAgICAgWzEuNF0gCiAgICAgICAgICAgIG1pbm9yIGNoYW5nZTogY29kZSBmb3JtYXR0aW5nLCByZW1vdmVkIHVubmVlZGVkIG1ldGhvZHMgRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuNCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS40IHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgYW5kcmVhcwogICAgICAgIDoKICAgICAgICBbMS40XSAKICAgICAgICAgICAgb3ZlcnJpZGUgZGVsZXRlIHVzZWNhc2UgaW4gZGVmYXVsdCBwdWIgdG8gYWRkIHdvcmtmbG93IGhhbmRsaW5nIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjQgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuNCB1cGRhdGUKICAgICAgICBieQogICAgICAgIGFuZHJlYXMKICAgICAgICA6CiAgICAgICAgWzEuNF0gCiAgICAgICAgICAgIHNpbXBsaWZpZWQgbWV0aG9kIG5hbWVzIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjQgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuNCB1cGRhdGUKICAgICAgICBieQogICAgICAgIGFuZHJlYXMKICAgICAgICA6CiAgICAgICAgWzEuNF0gCiAgICAgICAgICAgIHNpbXBsaWZpZWQgbWV0aG9kIG5hbWVzIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjQgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuNCB1cGRhdGUKICAgICAgICBieQogICAgICAgIGFuZHJlYXMKICAgICAgICA6CiAgICAgICAgWzEuNF0gCiAgICAgICAgICAgIG1vdmVkIG1ldGhvZHMgZnJvbSBEb2N1bWVudE1hbmFnZXIgdG8gV29ya2Zsb3dNYW5hZ2VyLCBkb24ndCBjb3B5IHdvcmtmbG93IGhpc3Rvcnkgb24gaXRzZWxmIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjQgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuNCB1cGRhdGUKICAgICAgICBieQogICAgICAgIGFuZHJlYXMKICAgICAgICA6CiAgICAgICAgWzEuNF0gCiAgICAgICAgICAgIHVwZGF0ZWQgamF2YWRvY3MgRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuNCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS40IHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgYW5kcmVhcwogICAgICAgIDoKICAgICAgICBbMS40XSAKICAgICAgICAgICAgcmVwbGFjZSBsZW55YS5ldmVudCBoYW5kbGluZyBieSBBdmFsb24gY29uZmlndXJhdGlvbiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS40IHJlbW92ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjQgcmVtb3ZlCiAgICAgICAgYnkKICAgICAgICBhbmRyZWFzCiAgICAgICAgOgogICAgICAgIFsxLjRdIAogICAgICAgICAgICByZXBsYWNlZCBXb3JrZmxvd1VzZWNhc2Ugd2l0aCBXb3JrZmxvd01hbmFnZXIgRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuNCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS40IHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgYW5kcmVhcwogICAgICAgIDoKICAgICAgICBbMS40XSAKICAgICAgICAgICAgbW92ZSBmcm9tIGluZm8tb3ZlcnZpZXcgdG8gdGFiLm92ZXJ2aWV3LCB0cmFuc2ZlciB0YWIuKiB2aWV3IGNoZWNraW5nIGZyb20gdXNlY2FzZXMuanMgdG8gdXNlY2FzZS54bWFwIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCBTaXRlIGFkZDwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj5TaXRlIGFkZAogICAgICAgIGJ5CiAgICAgICAgdHNjaGxhYmFjaAogICAgICAgIDoKICAgICAgICBbU2l0ZV0gCiAgICAgICAgICAgIENoZWNraW5nIGluIEFuZHJlYXMnIHB1YmxpY2F0aW9uIHRlbXBsYXRpbmcgZG9jdW1lbnQKIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjQgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuNCB1cGRhdGUKICAgICAgICBieQogICAgICAgIGFuZHJlYXMKICAgICAgICA6CiAgICAgICAgWzEuNF0gCiAgICAgICAgICAgIGNoZWNrIGlmIGRvY3VtZW50IGV4aXN0cyBpbiBjaGVja1ByZWNvbmRpdGlvbnMoKSBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS40IGFkZDwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjQgYWRkCiAgICAgICAgYnkKICAgICAgICBhbmRyZWFzCiAgICAgICAgOgogICAgICAgIFsxLjRdIAogICAgICAgICAgICByZWZhY3RvcmVkIHRhYiBKWCB0ZW1wbGF0ZXMgRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuNCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS40IHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgYW5kcmVhcwogICAgICAgIDoKICAgICAgICBbMS40XSAKICAgICAgICAgICAgd2hlbiByZS10cm93aW5nLCBhZGQgZXhjZXB0aW9uIHdpdGggc3RhY2sgdHJhY2UgKGhlbHBzIGZpbmRpbmcgdGhlIGNhdXNlKSBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgRG9jcyBhZGQ8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+RG9jcyBhZGQKICAgICAgICBieQogICAgICAgIGFuZHJlYXMKICAgICAgICA6CiAgICAgICAgW0RvY3NdIAogICAgICAgICAgICBhZGRlZCBwdWJsaWNhdGlvbiB0ZW1wbGF0aW5nIGRvY3MgRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuNCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS40IHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgZ3JlZ29yCiAgICAgICAgOgogICAgICAgIFsxLjRdIAogICAgICAgICAgICBGaXhlZCByZXN0b3JlVmVyc2lvbiB0byBjb3JyZWN0bHkgcmVzdG9yZSB0aGUgd29ya2Zsb3cgdmVyc2lvbiBkYXRlIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjIgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuMiB1cGRhdGUKICAgICAgICBieQogICAgICAgIGdyZWdvcgogICAgICAgIDoKICAgICAgICBbMS4yXSAKICAgICAgICAgICAgQ2hhbmdlZCB3b3JrZmxvdyBoaXN0b3J5IGZpbGVzIG9mIHNhbXBsZXMgdG8gY29tcGx5IHdpdGggZGF0ZSBmb3JtYXR0aW5nIGV4cGVjdGVkIGJ5IHRoZSB3b3JrZmxvdyBBUEkuIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjQgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuNCB1cGRhdGUKICAgICAgICBieQogICAgICAgIGdyZWdvcgogICAgICAgIDoKICAgICAgICBbMS40XSAKICAgICAgICAgICAgQ2hhbmdlZCB3b3JrZmxvdyBoaXN0b3J5IGZpbGVzIG9mIHNhbXBsZXMgdG8gY29tcGx5IHdpdGggZGF0ZSBmb3JtYXR0aW5nIGV4cGVjdGVkIGJ5IHRoZSB3b3JrZmxvdyBBUEkuIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjQgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuNCB1cGRhdGUKICAgICAgICBieQogICAgICAgIHRzY2hsYWJhY2gKICAgICAgICA6CiAgICAgICAgWzEuNF0gCiAgICAgICAgICAgIE1hZGUgdGhlIEphdmFkb2MgYSBiaXQgbW9yZSB2ZXJib3NlLgogRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IFNpdGUgYWRkPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPlNpdGUgYWRkCiAgICAgICAgYnkKICAgICAgICB0c2NobGFiYWNoCiAgICAgICAgOgogICAgICAgIFtTaXRlXSAKICAgICAgICAgICAgQWRkaW5nIHRoZSBjb25jZXB0cyBzdWJ0cmVlIHRvIFNWTgogRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IFNpdGUgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPlNpdGUgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICB0c2NobGFiYWNoCiAgICAgICAgOgogICAgICAgIFtTaXRlXSAKICAgICAgICAgICAgQWRkZWQgYSBzZWN0aW9uIHRvIGFkdmVydGlzZSB0aGUgTGVueWEgV2lraS4KIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCBTaXRlIHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj5TaXRlIHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgdGhvcnN0ZW4KICAgICAgICA6CiAgICAgICAgW1NpdGVdIAogICAgICAgICAgICBmaXggLSB0aGUgaW5kZXggcGFnZSBvZiAuIHdhcyB3cm9uZy0mZ3Q7bGV0IHRvIGNvbW11bml0eSBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgU2l0ZSB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+U2l0ZSB1cGRhdGUKICAgICAgICBieQogICAgICAgIHRzY2hsYWJhY2gKICAgICAgICA6CiAgICAgICAgW1NpdGVdIAogICAgICAgICAgICBBZGRlZCBhIHNlY3Rpb24gdG8gYWR2ZXJ0aXNlIHRoZSBMZW55YSB3aWtpLgogRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IERvY3MgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPkRvY3MgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICB0c2NobGFiYWNoCiAgICAgICAgOgogICAgICAgIFtEb2NzXSAKICAgICAgICAgICAgQWRkZWQgYSBzZWN0aW9uIHRvIGFkdmVydGlzZSB0aGUgTGVueWEgV2lraS4KIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCBTaXRlIHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj5TaXRlIHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgdHNjaGxhYmFjaAogICAgICAgIDoKICAgICAgICBbU2l0ZV0gCiAgICAgICAgICAgIENvbnRpbnVpbmcgdG8gZml4IHRoZSB0YWIgbmF2aWdhdGlvbgogRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IERvY3MgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPkRvY3MgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICB0c2NobGFiYWNoCiAgICAgICAgOgogICAgICAgIFtEb2NzXSAKICAgICAgICAgICAgQWRkaW5nIHNvbWUgY29tbWVudHMgYW5kIG1ha2luZyBmb3JtYXR0aW5nIGEgYml0IG5pY2VyIGZvciBiZXR0ZXIgb3ZlcnZpZXcuCiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgU2l0ZSB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+U2l0ZSB1cGRhdGUKICAgICAgICBieQogICAgICAgIHRob3JzdGVuCiAgICAgICAgOgogICAgICAgIFtTaXRlXSAKICAgICAgICAgICAgZml4ZWQgdGFiIGlzc3VlIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCBEb2NzIHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj5Eb2NzIHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgdGhvcnN0ZW4KICAgICAgICA6CiAgICAgICAgW0RvY3NdIAogICAgICAgICAgICByZXZlcnRlZCBkZWxldGVzIHRoYXQgSSBkaWQgYnkgYWNjaWRlbnQgRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IERvY3MgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPkRvY3MgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICB0aG9yc3RlbgogICAgICAgIDoKICAgICAgICBbRG9jc10gCiAgICAgICAgICAgIGZpeGVkIHRoZSB0YWIgaXNzdWUgb24gdGhlIHdlYnNpdGUuIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjQgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuNCB1cGRhdGUKICAgICAgICBieQogICAgICAgIGFuZHJlYXMKICAgICAgICA6CiAgICAgICAgWzEuNF0gCiAgICAgICAgICAgIGZpeGVkIGRlbGV0aW5nIG9mIGFzc2V0cyBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS40IHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjQgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBhbmRyZWFzCiAgICAgICAgOgogICAgICAgIFsxLjRdIAogICAgICAgICAgICBhZGRlZCBkZWxldGVSZXNvdXJjZSgpIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjQgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuNCB1cGRhdGUKICAgICAgICBieQogICAgICAgIGFuZHJlYXMKICAgICAgICA6CiAgICAgICAgWzEuNF0gCiAgICAgICAgICAgIGZpeGVkIHVuLWluaXRpYWxpemVkIHZhcmlhYmxlIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjQgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuNCB1cGRhdGUKICAgICAgICBieQogICAgICAgIGFuZHJlYXMKICAgICAgICA6CiAgICAgICAgWzEuNF0gCiAgICAgICAgICAgIGNyZWF0ZSBtZXRhIGZpbGUgYmVmb3JlIHNhdmluZyBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS4yIHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjIgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBtaWNoaQogICAgICAgIDoKICAgICAgICBbMS4yXSAKICAgICAgICAgICAgV0xTIGJ1aWxkIGltcGxlbWVudGVkIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjQgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuNCB1cGRhdGUKICAgICAgICBieQogICAgICAgIGFuZHJlYXMKICAgICAgICA6CiAgICAgICAgWzEuNF0gCiAgICAgICAgICAgIGFkZGVkIGdldFBhcnQoKSBtZXRob2QgRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuNCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS40IHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgYW5kcmVhcwogICAgICAgIDoKICAgICAgICBbMS40XSAKICAgICAgICAgICAgY29ycmVjdCBlbmN0eXBlIGFuZCBtZXRob2QgZm9yIGFzc2V0IHVwbG9hZCBmb3JtIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjQgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuNCB1cGRhdGUKICAgICAgICBieQogICAgICAgIGFuZHJlYXMKICAgICAgICA6CiAgICAgICAgWzEuNF0gCiAgICAgICAgICAgIGFkZGVkIHZhcmlhYmxlIGRlY2xhcmF0aW9uIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjQgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuNCB1cGRhdGUKICAgICAgICBieQogICAgICAgIGFuZHJlYXMKICAgICAgICA6CiAgICAgICAgWzEuNF0gCiAgICAgICAgICAgIHN0YXkgb24gc2FtZSB0YWIgZm9yIHNpdGUgYXJlYSB1c2VjYXNlcyBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS40IHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjQgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBhbmRyZWFzCiAgICAgICAgOgogICAgICAgIFsxLjRdIAogICAgICAgICAgICBhY3RpdmF0ZWQgbmV3IHNpdGUgYXJlYSB1c2VjYXNlcyBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS40IHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjQgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBhbmRyZWFzCiAgICAgICAgOgogICAgICAgIFsxLjRdIAogICAgICAgICAgICBjb3JyZWN0ZWQgcmVzb2x2aW5nIG9mIGRvY3VtZW50IElEIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjQgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuNCB1cGRhdGUKICAgICAgICBieQogICAgICAgIGFuZHJlYXMKICAgICAgICA6CiAgICAgICAgWzEuNF0gCiAgICAgICAgICAgIGZpeGVkIHN1Ym1pdCBidXR0b24gcGFyYW1ldGVyIG5hbWUgRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuNCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS40IHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgYW5kcmVhcwogICAgICAgIDoKICAgICAgICBbMS40XSAKICAgICAgICAgICAgcmVtb3ZlZCB1bm5lZWRlZCBtZXRob2QgRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuNCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS40IHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgbWljaGkKICAgICAgICA6CiAgICAgICAgWzEuNF0gCiAgICAgICAgICAgIHNpdGV0cmVlIGdlbmVyYXRpb24gc2hhbGwgbm90IGJlIGNhY2hlZCBvdGhlcndpc2UgcGVybWlzc2lvbnMgY2Fubm90IGJlIGFwcGxpZWQgRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuMiB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS4yIHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgbWljaGkKICAgICAgICA6CiAgICAgICAgWzEuMl0gCiAgICAgICAgICAgIHNpdGV0cmVlIGdlbmVyYXRpb24gc2hvdWxkIG5vdCBiZSBjYWNoZWQsIGJlY2F1c2Ugb3RoZXJ3aXNlIHBlcm1pc3Npb25zIGNhbm5vdCBiZSBhcHBsaWVkIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjQgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuNCB1cGRhdGUKICAgICAgICBieQogICAgICAgIG1pY2hpCiAgICAgICAgOgogICAgICAgIFsxLjRdIAogICAgICAgICAgICBleGNsdWRlcyBzaW1wbGlmaWVkIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjIgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuMiB1cGRhdGUKICAgICAgICBieQogICAgICAgIG1pY2hpCiAgICAgICAgOgogICAgICAgIFsxLjJdIAogICAgICAgICAgICBleGNsdWRlcyBzaW1wbGlmaWVkIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjQgYWRkPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuNCBhZGQKICAgICAgICBieQogICAgICAgIGFuZHJlYXMKICAgICAgICA6CiAgICAgICAgWzEuNF0gCiAgICAgICAgICAgIHBvcnRlZCBkZWxldGUgdG8gdXNlY2FzZSBmcmFtZXdvcmsgRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuNCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS40IHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgYW5kcmVhcwogICAgICAgIDoKICAgICAgICBbMS40XSAKICAgICAgICAgICAgRG9jdW1lbnRNYW5hZ2VyOiB1c2UgY29weStkZWxldGUgZm9yIG1vdmUgRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuMiB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS4yIHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgZ3JlZ29yCiAgICAgICAgOgogICAgICAgIFsxLjJdIAogICAgICAgICAgICBTeW5jZWQgYmFjayB1cCB3aXRoIEt1cHUgYW5kIEJYRSBhZnRlciB0aGUgMS4yLjIgZnJlZXplIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjIgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuMiB1cGRhdGUKICAgICAgICBieQogICAgICAgIHRzY2hsYWJhY2gKICAgICAgICA6CiAgICAgICAgWzEuMl0gCiAgICAgICAgICAgIEZpeGluZyBidWcgMzM2NjEgd2l0aCBwYXRjaCBzdXBwbGllZCBieSBNaWd1ZWwgTWFydGluIChyZXF1aXJlZCBhIHBhdGNoIHRvIC9hcGFjaGUtbGVueWEgZGlyZWN0b3J5IGluIGt1cHUgYXMgd2VsbCkKIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCBEb2NzIHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj5Eb2NzIHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgdHNjaGxhYmFjaAogICAgICAgIDoKICAgICAgICBbRG9jc10gCiAgICAgICAgICAgIEZpeGVkIG5hdmlnYXRpb24gdG8gZGlzcGxheSBBbmRyZWFzJyBjb25jZXB0cy91c2VjYXNlLWZyYW1ld29yayBkb2N1bWVudAogRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IFNpdGUgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPlNpdGUgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICB0c2NobGFiYWNoCiAgICAgICAgOgogICAgICAgIFtTaXRlXSAKICAgICAgICAgICAgRml4aW5nIHRhYiBuYXZpZ2F0aW9uICgxLjIgYW5kIDEuNCkKIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCBTaXRlIHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj5TaXRlIHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgdHNjaGxhYmFjaAogICAgICAgIDoKICAgICAgICBbU2l0ZV0gCiAgICAgICAgICAgIEZpeGluZyB0YWIgbmF2aWdhdGlvbiAoMS4yIGFuZCAxLjQpCiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgRG9jcyB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+RG9jcyB1cGRhdGUKICAgICAgICBieQogICAgICAgIHRzY2hsYWJhY2gKICAgICAgICA6CiAgICAgICAgW0RvY3NdIAogICAgICAgICAgICBGaXhpbmcgdGFiIG5hdmlnYXRpb24gKDEuMiBhbmQgMS40KQogRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IERvY3MgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPkRvY3MgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBncmVnb3IKICAgICAgICA6CiAgICAgICAgW0RvY3NdIAogICAgICAgICAgICBOZXdzIHVwZGF0ZWQgd2l0aCAxLjIuMiByZWxlYXNlIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCBTaXRlIHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj5TaXRlIHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgZ3JlZ29yCiAgICAgICAgOgogICAgICAgIFtTaXRlXSAKICAgICAgICAgICAgTmV3cyB1cGRhdGVkIHdpdGggMS4yLjIgcmVsZWFzZSBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS40IHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjQgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBncmVnb3IKICAgICAgICA6CiAgICAgICAgWzEuNF0gCiAgICAgICAgICAgIEZpeGVkIGphdmFkb2NzIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjQgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuNCB1cGRhdGUKICAgICAgICBieQogICAgICAgIGdyZWdvcgogICAgICAgIDoKICAgICAgICBbMS40XSAKICAgICAgICAgICAgVHJpZWQgdG8gcmVmYWN0b3IgdGhlIHNwYWdoZXR0aSBjb2RlIHRoYXQgaXMgdGhlIHNlYXJjaCB1c2VjYXNlIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjQgcmVtb3ZlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuNCByZW1vdmUKICAgICAgICBieQogICAgICAgIGdyZWdvcgogICAgICAgIDoKICAgICAgICBbMS40XSAKICAgICAgICAgICAgUmVtb3ZlZCBvbGQtc3R5bGUgY3JlYXRlIGFuZCBkZWFjdGl2YXRlIHVzZWNhc2VzIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjQgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuNCB1cGRhdGUKICAgICAgICBieQogICAgICAgIGdyZWdvcgogICAgICAgIDoKICAgICAgICBbMS40XSAKICAgICAgICAgICAgUmVtb3ZlZCBvYnNvbGV0ZSBjb2RlIGZyb20gbWVudXMgRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuNCByZW1vdmU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS40IHJlbW92ZQogICAgICAgIGJ5CiAgICAgICAgZ3JlZ29yCiAgICAgICAgOgogICAgICAgIFsxLjRdIAogICAgICAgICAgICBSZW1vdmVkIHVudXNlZCByb2xsYmFjayBzY3JlZW4gRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuNCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS40IHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgZ3JlZ29yCiAgICAgICAgOgogICAgICAgIFsxLjRdIAogICAgICAgICAgICBBZGRlZCBkYXRlIGdldHRlcnMgYW5kIHNldHRlcnMgdG8gd29ya2Zsb3cgaGlzdG9yeSBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgRG9jcyBhZGQ8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+RG9jcyBhZGQKICAgICAgICBieQogICAgICAgIGFuZHJlYXMKICAgICAgICA6CiAgICAgICAgW0RvY3NdIAogICAgICAgICAgICBhZGQgY29uY2VwdHMgb3ZlcnZpZXcgcGFnZSBmb3IgMS40IERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCBEb2NzIGFkZDwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj5Eb2NzIGFkZAogICAgICAgIGJ5CiAgICAgICAgYW5kcmVhcwogICAgICAgIDoKICAgICAgICBbRG9jc10gCiAgICAgICAgICAgIGFkZGVkIHVzZWNhc2UgZnJhbWV3b3JrIGRvY3VtZW50YXRpb24gRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuNCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS40IHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgYW5kcmVhcwogICAgICAgIDoKICAgICAgICBbMS40XSAKICAgICAgICAgICAgcmVsZWFzZSBzb3VyY2VzIHByb3Blcmx5IERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjQgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuNCB1cGRhdGUKICAgICAgICBieQogICAgICAgIGFuZHJlYXMKICAgICAgICA6CiAgICAgICAgWzEuNF0gCiAgICAgICAgICAgIGFkZGVkIGRlbGV0ZSguLi4pIG1ldGhvZHMgdG8gRG9jdW1lbnRNYW5hZ2VyIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjQgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuNCB1cGRhdGUKICAgICAgICBieQogICAgICAgIGFuZHJlYXMKICAgICAgICA6CiAgICAgICAgWzEuNF0gCiAgICAgICAgICAgIGxvZyBlcnJvciBtZXNzYWdlcyB3aGVuIGFkZFJlc291cmNlKCkgZmFpbGVzIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCBTaXRlIHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj5TaXRlIHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgdHNjaGxhYmFjaAogICAgICAgIDoKICAgICAgICBbU2l0ZV0gCiAgICAgICAgICAgIEFkZGVkICJJbnZlc3RtZW50Y2x1YiBOaWVkZXJyaGVpbiIgdG8gIkxpdmUgU2l0ZXMiCiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS40IGFkZDwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjQgYWRkCiAgICAgICAgYnkKICAgICAgICBncmVnb3IKICAgICAgICA6CiAgICAgICAgWzEuNF0gCiAgICAgICAgICAgIEFkZGVkIHVzZWNhc2UgZm9yIHJldmlzaW9ucyB0YWIgRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuNCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS40IHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgZ3JlZ29yCiAgICAgICAgOgogICAgICAgIFsxLjRdIAogICAgICAgICAgICBDaGFuZ2VkIGZsb3dzY3JpcHQgdG8gY2FsbCBjb25jcmV0ZSBpbXBsZW1lbnRhdGlvbiBvZiBGbG93SGVscGVyLiBUaGlzIG1ha2VzIHNhdmluZyBpbiB0aGUgZWRpdG9ycyB3b3JrIGFnYWluLiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS40IHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjQgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBncmVnb3IKICAgICAgICA6CiAgICAgICAgWzEuNF0gCiAgICAgICAgICAgIEVuaGFuY2VkIGFzc2V0cyB1c2VjYXNlIHRvIGFjdHVhbGx5IHNob3cgZXhpc3RpbmcgYXNzZXRzIDspIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjIgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuMiB1cGRhdGUKICAgICAgICBieQogICAgICAgIG1pY2hpCiAgICAgICAgOgogICAgICAgIFsxLjJdIAogICAgICAgICAgICB2ZXJzaW9ucyB1cGRhdGVkIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjQgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuNCB1cGRhdGUKICAgICAgICBieQogICAgICAgIGdyZWdvcgogICAgICAgIDoKICAgICAgICBbMS40XSAKICAgICAgICAgICAgSW1wcm92ZWQgd29ya2Zsb3cgdXNlY2FzZSBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS40IHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjQgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBncmVnb3IKICAgICAgICA6CiAgICAgICAgWzEuNF0gCiAgICAgICAgICAgIEFkZGVkIHN0dWIgdXNlY2FzZSBmb3Igd29ya2Zsb3cgaGlzdG9yeSB0YWIuIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjQgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuNCB1cGRhdGUKICAgICAgICBieQogICAgICAgIGdyZWdvcgogICAgICAgIDoKICAgICAgICBbMS40XSAKICAgICAgICAgICAgRW5oYW5jZWQgc2l0ZSBhcmVhIFhTTFQgdG8gc3VwcG9ydCBib3RoIG9sZC1zdHlsZSBYU1AgYW5kIG5ldy1zdHlsZSBKWCB0YWJzIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCBEb2NzIHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj5Eb2NzIHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgdHNjaGxhYmFjaAogICAgICAgIDoKICAgICAgICBbRG9jc10gCiAgICAgICAgICAgIEFkZGVkIHNvbWUgcmVtYXJrcyB0byB0aGUgIldlYnNpdGUgVXBkYXRlIiBwcm9jZWR1cmUKIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjQgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuNCB1cGRhdGUKICAgICAgICBieQogICAgICAgIGdyZWdvcgogICAgICAgIDoKICAgICAgICBbMS40XSAKICAgICAgICAgICAgQ29udGludWVkIHdvcmsgb24gdGhlIHNlYXJjaCB1c2VjYXNlLiBUaGUgc2VhcmNoIGNvZGUgbmVlZHMgc29tZSBtYWpvciBsb3ZlLCBnb29kIGxvcmQhIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCBEb2NzIHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj5Eb2NzIHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgdHNjaGxhYmFjaAogICAgICAgIDoKICAgICAgICBbRG9jc10gCiAgICAgICAgICAgIEZpeGVkIFZlcnNpb24gMS4yIGFuZCBWZXJzaW9uIDEuNCB0YWJzIHRvIGp1bXAgcmlnaHQgaW50byB0aGUgYXBwcm9wcmlhdGUgc2VjdGlvbnMKIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCBEb2NzIHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj5Eb2NzIHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgdHNjaGxhYmFjaAogICAgICAgIDoKICAgICAgICBbRG9jc10gCiAgICAgICAgICAgIEFkZGVkICJJbnZlc3RtZW50Y2x1Yi1OaWVkZXJyaGVpbiBHYlIiIHRvICJMaXZlIFNpdGVzIgogRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuMiB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS4yIHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgZ3JlZ29yCiAgICAgICAgOgogICAgICAgIFsxLjJdIAogICAgICAgICAgICBSZW1vdmVkIHRoZSBuZWVkIHRvIGNsaWNrIGVkaXQgaWNvbiBpbiBGb3JtcyBlZGl0b3IgdHdpY2UsIHBhdGNoIGJ5IFRob21hcyBDb21pb3R0by4gVGhpcyByZXNvbHZlcyBodHRwOi8vaXNzdWVzLmFwYWNoZS5vcmcvYnVnemlsbGEvc2hvd19idWcuY2dpP2lkPTI2NTc3IERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjQgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuNCB1cGRhdGUKICAgICAgICBieQogICAgICAgIGdyZWdvcgogICAgICAgIDoKICAgICAgICBbMS40XSAKICAgICAgICAgICAgUmVtb3ZlZCB0aGUgbmVlZCB0byBjbGljayBlZGl0IGljb24gaW4gRm9ybXMgZWRpdG9yIHR3aWNlLCBwYXRjaCBieSBUaG9tYXMgQ29taW90dG8uIFRoaXMgcmVzb2x2ZXMgaHR0cDovL2lzc3Vlcy5hcGFjaGUub3JnL2J1Z3ppbGxhL3Nob3dfYnVnLmNnaT9pZD0yNjU3NyBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS40IHJlbW92ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjQgcmVtb3ZlCiAgICAgICAgYnkKICAgICAgICBhbmRyZWFzCiAgICAgICAgOgogICAgICAgIFsxLjRdIAogICAgICAgICAgICByZW1vdmVkIG9ic29sZXRlIHB1YmxpY2F0aW9uLmZpbGUgcGFja2FnZSBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS40IHJlbW92ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjQgcmVtb3ZlCiAgICAgICAgYnkKICAgICAgICBhbmRyZWFzCiAgICAgICAgOgogICAgICAgIFsxLjRdIAogICAgICAgICAgICByZW1vdmUgRmlsZURvY3VtZW50TWFuYWdlciAtIHJlcGxhY2VkIGphdmEuaW8uRmlsZSBieSBvLmEuZS5zb3VyY2UuU291cmNlIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjQgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuNCB1cGRhdGUKICAgICAgICBieQogICAgICAgIGFuZHJlYXMKICAgICAgICA6CiAgICAgICAgWzEuNF0gCiAgICAgICAgICAgIGFkZGVkIERvY3VtZW50TWFuYWdlciBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS40IHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjQgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBhbmRyZWFzCiAgICAgICAgOgogICAgICAgIFsxLjRdIAogICAgICAgICAgICBmaXhlZCBOUEUgZm9yIGVtcHR5IHNpdGV0cmVlIG5vZGUgbGFiZWxzIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjQgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuNCB1cGRhdGUKICAgICAgICBieQogICAgICAgIGFuZHJlYXMKICAgICAgICA6CiAgICAgICAgWzEuNF0gCiAgICAgICAgICAgIGludHJvZHVjZWQgRG9jdW1lbnRNYW5hZ2VyIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjQgcmVtb3ZlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuNCByZW1vdmUKICAgICAgICBieQogICAgICAgIGdyZWdvcgogICAgICAgIDoKICAgICAgICBbMS40XSAKICAgICAgICAgICAgUmVtb3ZlZCB1bnVzZWQgZGlyZWN0b3J5IERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjIgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuMiB1cGRhdGUKICAgICAgICBieQogICAgICAgIGdyZWdvcgogICAgICAgIDoKICAgICAgICBbMS4yXSAKICAgICAgICAgICAgTWFkZSBzaXRldHJlZSBtZXRob2RzIHN5bmNocm9uaXplZCB0byBndWFyZCBhZ2FpbnN0IGNvbmN1cnJlbnQgd3JpdGVzIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjQgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuNCB1cGRhdGUKICAgICAgICBieQogICAgICAgIGdyZWdvcgogICAgICAgIDoKICAgICAgICBbMS40XSAKICAgICAgICAgICAgTWFkZSBzaXRldHJlZSBtZXRob2RzIHN5bmNocm9uaXplZCB0byBndWFyZCBhZ2FpbnN0IGNvbmN1cnJlbnQgd3JpdGVzIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjIgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuMiB1cGRhdGUKICAgICAgICBieQogICAgICAgIGdyZWdvcgogICAgICAgIDoKICAgICAgICBbMS4yXSAKICAgICAgICAgICAgRml4ZWQgTlBFIHJlcG9ydGVkIGJ5IFBoaWxsaXBwIEJvbGxlIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjQgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuNCB1cGRhdGUKICAgICAgICBieQogICAgICAgIGFuZHJlYXMKICAgICAgICA6CiAgICAgICAgWzEuNF0gCiAgICAgICAgICAgIGFsbG93IG5vbi1pbnRlcmFjdGl2ZSB1c2VjYXNlcyBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS40IHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjQgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBhbmRyZWFzCiAgICAgICAgOgogICAgICAgIFsxLjRdIAogICAgICAgICAgICB1c2VjYXNlIGZyYW1ld29yazogbW92ZSBub2RlIHVwL2Rvd24gRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuNCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS40IHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgYW5kcmVhcwogICAgICAgIDoKICAgICAgICBbMS40XSAKICAgICAgICAgICAgYWRkZWQgZ2V0UHJlY2VkaW5nU2libGluZ3MoKSBtZXRob2QgRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuNCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS40IHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgYW5kcmVhcwogICAgICAgIDoKICAgICAgICBbMS40XSAKICAgICAgICAgICAgYWRkZWQgZ2V0UHJlY2VkaW5nU2libGluZygpIG1ldGhvZHMgRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuMiB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS4yIHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgZ3JlZ29yCiAgICAgICAgOgogICAgICAgIFsxLjJdIAogICAgICAgICAgICBNYWRlIGZvcm1zIGVkaXRvciBzY3JvbGwgdG8gZWRpdGluZyBwb3NpdGlvbiBhZnRlciBwcmVzc2luZyAiZWRpdCIuIFRoaXMgZml4ZXMgaHR0cDovL2lzc3Vlcy5hcGFjaGUub3JnL2J1Z3ppbGxhL3Nob3dfYnVnLmNnaT9pZD0zMzczMSAoVGhhbmtzIHRvIFRob21hcyBDb21pb3R0byBmb3IgdGhlIHBhdGNoKSBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS40IHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjQgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBncmVnb3IKICAgICAgICA6CiAgICAgICAgWzEuNF0gCiAgICAgICAgICAgIE1hZGUgZm9ybXMgZWRpdG9yIHNjcm9sbCB0byBlZGl0aW5nIHBvc2l0aW9uIGFmdGVyIHByZXNzaW5nICJlZGl0Ii4gVGhpcyBmaXhlcyBodHRwOi8vaXNzdWVzLmFwYWNoZS5vcmcvYnVnemlsbGEvc2hvd19idWcuY2dpP2lkPTMzNzMxIChUaGFua3MgdG8gVGhvbWFzIENvbWlvdHRvIGZvciB0aGUgcGF0Y2gpIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAgYWRkPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPiBhZGQKICAgICAgICBieQogICAgICAgIHJva3UKICAgICAgICA6CiAgICAgICAgW10gCiAgICAgICAgICAgIFRhZ2dpbmcgMS4yLjIKIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAgcmVtb3ZlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPiByZW1vdmUKICAgICAgICBieQogICAgICAgIHJva3UKICAgICAgICA6CiAgICAgICAgW10gCiAgICAgICAgICAgIFByZXBhcmluZyBmaW5hbCByZS10YWcgb2YgMS4yLjIKIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjQgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuNCB1cGRhdGUKICAgICAgICBieQogICAgICAgIHJva3UKICAgICAgICA6CiAgICAgICAgWzEuNF0gCiAgICAgICAgICAgIENyZWF0ZSBXRUItSU5GXGxvZ3Mgb24gdW5wYWNraW5nIG9mIHRoZSB3YXIgZmlsZS4gT3RoZXJ3aXNlIHdlIGdldCBlcnJvcyBvbiBjb25zb2xlIHVwb24gc3RhcnQgdXAuClRoZSBhbnQgamFyIHRhc2sgZG9lcyBub3QgaW5jbHVkZSBlbXB0eSBkaXJzLiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS4yIHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjIgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICByb2t1CiAgICAgICAgOgogICAgICAgIFsxLjJdIAogICAgICAgICAgICBDcmVhdGUgV0VCLUlORlxsb2dzIG9uIHVucGFja2luZyBvZiB0aGUgd2FyIGZpbGUuIE90aGVyd2lzZSB3ZSBnZXQgZXJyb3Mgb24gY29uc29sZSB1cG9uIHN0YXJ0IHVwLgpUaGUgYW50IGphciB0YXNrIGRvZXMgbm90IGluY2x1ZGUgZW1wdHkgZGlycy4gRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuNCByZW1vdmU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS40IHJlbW92ZQogICAgICAgIGJ5CiAgICAgICAgYW5kcmVhcwogICAgICAgIDoKICAgICAgICBbMS40XSAKICAgICAgICAgICAgcmVtb3ZlZCBvYnNvbGV0ZSBYU1BzIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjQgcmVtb3ZlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuNCByZW1vdmUKICAgICAgICBieQogICAgICAgIGFuZHJlYXMKICAgICAgICA6CiAgICAgICAgWzEuNF0gCiAgICAgICAgICAgIHJlbW92ZWQgb2Jzb2xldGUgWFNMVHMgRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuNCByZW1vdmU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS40IHJlbW92ZQogICAgICAgIGJ5CiAgICAgICAgYW5kcmVhcwogICAgICAgIDoKICAgICAgICBbMS40XSAKICAgICAgICAgICAgcmVtb3ZlZCBvYnNvbGV0ZSBYU0xUcyBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS40IHJlbW92ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjQgcmVtb3ZlCiAgICAgICAgYnkKICAgICAgICBhbmRyZWFzCiAgICAgICAgOgogICAgICAgIFsxLjRdIAogICAgICAgICAgICByZW1vdmVkIG9ic29sZXRlIFhTTFQgRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuNCByZW1vdmU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS40IHJlbW92ZQogICAgICAgIGJ5CiAgICAgICAgYW5kcmVhcwogICAgICAgIDoKICAgICAgICBbMS40XSAKICAgICAgICAgICAgcmVtb3ZlZCBvYnNvbGV0ZSBYU1AgRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuNCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS40IHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgYW5kcmVhcwogICAgICAgIDoKICAgICAgICBbMS40XSAKICAgICAgICAgICAgcmVtb3ZlZCBvYnNvbGV0ZSB1c2VjYXNlIHBpcGVsaW5lcyBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS40IGFkZDwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjQgYWRkCiAgICAgICAgYnkKICAgICAgICBhbmRyZWFzCiAgICAgICAgOgogICAgICAgIFsxLjRdIAogICAgICAgICAgICBwb3J0IGN1dC9jb3B5L3Bhc3RlIHRvIHVzZWNhc2UgZnJhbWV3b3JrIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjQgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuNCB1cGRhdGUKICAgICAgICBieQogICAgICAgIGFuZHJlYXMKICAgICAgICA6CiAgICAgICAgWzEuNF0gCiAgICAgICAgICAgIGZpeGVkIG1pc3NpbmcgbmFtZXNwYWNlIGRlY2xhcmF0aW9ucywgYWRkZWQgZXJyb3IgbWVzc2FnZSBkaXNwbGF5IERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjQgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuNCB1cGRhdGUKICAgICAgICBieQogICAgICAgIGFuZHJlYXMKICAgICAgICA6CiAgICAgICAgWzEuNF0gCiAgICAgICAgICAgIGFmdGVyIGZpbmlzaGluZyB1c2VjYXNlLCBnbyB0byBzYW1lIGFyZWEgKGUuZy4sIGluZGV4LS4uLikgRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuNCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS40IHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgYW5kcmVhcwogICAgICAgIDoKICAgICAgICBbMS40XSAKICAgICAgICAgICAgYWRkZWQgbWV0aG9kcyB0byBjb3B5L21vdmUgZ3JvdXBzIG9mIGRvY3VtZW50cyBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS4yIHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjIgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBncmVnb3IKICAgICAgICA6CiAgICAgICAgWzEuMl0gCiAgICAgICAgICAgIFByb3BlciBmaXggZm9yIGh0dHA6Ly9pc3N1ZXMuYXBhY2hlLm9yZy9idWd6aWxsYS9zaG93X2J1Zy5jZ2k/aWQ9MzMyMjUgRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuNCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS40IHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgYW5kcmVhcwogICAgICAgIDoKICAgICAgICBbMS40XSAKICAgICAgICAgICAgcmVtb3ZlZCBvYnNvbGV0ZSB0YXNrIGRlY2xhcmF0aW9ucyBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS40IHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjQgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBhbmRyZWFzCiAgICAgICAgOgogICAgICAgIFsxLjRdIAogICAgICAgICAgICByZW1vdmVkIG9ic29sZXRlIGNvbmRpdGlvbiBjaGVja3MgZnJvbSBtZW51IERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjQgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuNCB1cGRhdGUKICAgICAgICBieQogICAgICAgIGFuZHJlYXMKICAgICAgICA6CiAgICAgICAgWzEuNF0gCiAgICAgICAgICAgIGltcHJvdmVkIHByZWNvbmRpdGlvbnMgZm9yIHNpdGUgdXNlY2FzZXMgRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuNCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS40IHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgYW5kcmVhcwogICAgICAgIDoKICAgICAgICBbMS40XSAKICAgICAgICAgICAgYWRkZWQgcHJlY29uZGl0aW9ucyB0byBwdWJsaXNoIGFuZCBkZWFjdGl2YXRlIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjQgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuNCB1cGRhdGUKICAgICAgICBieQogICAgICAgIGFuZHJlYXMKICAgICAgICA6CiAgICAgICAgWzEuNF0gCiAgICAgICAgICAgIGNoZWNrIGZvciB1c2VjYXNlIHByZWNvbmRpdGlvbnMgaW4gVXNlY2FzZU1lbnVUcmFuc2Zvcm1lciBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS40IHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjQgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBhbmRyZWFzCiAgICAgICAgOgogICAgICAgIFsxLjRdIAogICAgICAgICAgICBjaGVjayBpZiBpbnZva2VkIG9uIGRvY3VtZW50IGluIGNoZWNrUHJlY29uZGl0aW9ucygpIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjQgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuNCB1cGRhdGUKICAgICAgICBieQogICAgICAgIGFuZHJlYXMKICAgICAgICA6CiAgICAgICAgWzEuNF0gCiAgICAgICAgICAgIGFsbG93IGNlcnRhaW4gdXNjYXNlcyBvbmx5IGluIGF1dGhvcmluZyBhcmVhIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjQgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuNCB1cGRhdGUKICAgICAgICBieQogICAgICAgIGFuZHJlYXMKICAgICAgICA6CiAgICAgICAgWzEuNF0gCiAgICAgICAgICAgIHJlbmFtZSBhbGwgbGFuZ3VhZ2UgdmVyc2lvbiBVUkxzIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjQgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuNCB1cGRhdGUKICAgICAgICBieQogICAgICAgIGFuZHJlYXMKICAgICAgICA6CiAgICAgICAgWzEuNF0gCiAgICAgICAgICAgIHJlbW92ZWQgZGVhY3RpdmF0ZSB0YXNrIHJlZmVyZW5jZSBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS40IHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjQgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBhbmRyZWFzCiAgICAgICAgOgogICAgICAgIFsxLjRdIAogICAgICAgICAgICBzd2l0Y2ggZnJvbSBXb3JrZmxvd0hlbHBlciB0byBXb3JrZmxvd1Jlc29sdmVyIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjQgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuNCB1cGRhdGUKICAgICAgICBieQogICAgICAgIGFuZHJlYXMKICAgICAgICA6CiAgICAgICAgWzEuNF0gCiAgICAgICAgICAgIGFkZGVkIHByZWNvbmRpdGlvbiBjaGVja3MsIGFsbG93IHRvIGNyZWF0ZSBkb2N1bWVudHMgZnJvbSBub24tZG9jdW1lbnQgVVJMcyBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS40IHJlbW92ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjQgcmVtb3ZlCiAgICAgICAgYnkKICAgICAgICBhbmRyZWFzCiAgICAgICAgOgogICAgICAgIFsxLjRdIAogICAgICAgICAgICByZW1vdmVkIG9ic29sZXRlIGNsYXNzZXMgRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuNCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS40IHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgYW5kcmVhcwogICAgICAgIDoKICAgICAgICBbMS40XSAKICAgICAgICAgICAgcHVibGlzaCBhbmQgZGVhY3RpdmF0ZSBpbXBsZW1lbnRlZCB1c2luZyB1c2VjYXNlIGZyYW1ld29yayBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS40IHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjQgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBhbmRyZWFzCiAgICAgICAgOgogICAgICAgIFsxLjRdIAogICAgICAgICAgICBhZGRlZCBkZXByZWNhdGlvbiBtZXNzYWdlIHRvIExpbmtSZXdyaXRlVGFzayBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS40IHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjQgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBhbmRyZWFzCiAgICAgICAgOgogICAgICAgIFsxLjRdIAogICAgICAgICAgICByZW1vdmVkIG9ic29sZXRlIGRvY3R5cGUgY29uZmlnIG9wdGlvbnMsIGFkZGVkICZsdDtsaW5rLWF0dHJpYnV0ZSZndDsgZGVjbGFyYXRpb25zIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjQgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuNCB1cGRhdGUKICAgICAgICBieQogICAgICAgIGFuZHJlYXMKICAgICAgICA6CiAgICAgICAgWzEuNF0gCiAgICAgICAgICAgIGNhbGwgdXNlY2FzZSBmcmFtZXdvcmsgaW1wbGVtZW50YXRpb24gZnJvbSBtZW51IGZvciBjaGFuZ2VOb2RlSUQgdXNlY2FzZSBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS40IHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjQgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBhbmRyZWFzCiAgICAgICAgOgogICAgICAgIFsxLjRdIAogICAgICAgICAgICByZW1vdmUgcmVmZXJlbmNlcyB0byByZW5hbWVEb2N1bWVudCB0YXNrIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjQgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuNCB1cGRhdGUKICAgICAgICBieQogICAgICAgIGFuZHJlYXMKICAgICAgICA6CiAgICAgICAgWzEuNF0gCiAgICAgICAgICAgIG1vdmUgcmVzb3VyY2UgaGFuZGxpbmcgdG8gcHVibGljYXRpb24gY2xhc3MgRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuNCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS40IHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgYW5kcmVhcwogICAgICAgIDoKICAgICAgICBbMS40XSAKICAgICAgICAgICAgdXNlIHNpdGUgdXRpbGl0eSB0byB2YWxpZGF0ZSBkb2N1bWVudCBJRCBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS40IHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjQgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBhbmRyZWFzCiAgICAgICAgOgogICAgICAgIFsxLjRdIAogICAgICAgICAgICBhZGQgTGlua1Jld3JpdGVyIHRvIEF2YWxvbiByb2xlcyBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS40IHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjQgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBhbmRyZWFzCiAgICAgICAgOgogICAgICAgIFsxLjRdIAogICAgICAgICAgICByZW5hbWUgVVJMIGlzIGhhbmRsZWQgYnkgdXNlY2FzZSBmcmFtZXdvcmsgRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuNCBhZGQ8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS40IGFkZAogICAgICAgIGJ5CiAgICAgICAgYW5kcmVhcwogICAgICAgIDoKICAgICAgICBbMS40XSAKICAgICAgICAgICAgYWRkZWQgc2l0ZSB1c2VjYXNlIHV0aWxpdHkgY2xhc3MgRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuNCByZW1vdmU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS40IHJlbW92ZQogICAgICAgIGJ5CiAgICAgICAgYW5kcmVhcwogICAgICAgIDoKICAgICAgICBbMS40XSAKICAgICAgICAgICAgcmVtb3ZlZCBvYnNvbGV0ZSBjbGFzcyBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS40IHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjQgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBtaWNoaQogICAgICAgIDoKICAgICAgICBbMS40XSAKICAgICAgICAgICAgbHVjZW5lIHZlcnNpb24gbnVtYmVyIGZpeGVkIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjIgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuMiB1cGRhdGUKICAgICAgICBieQogICAgICAgIG1pY2hpCiAgICAgICAgOgogICAgICAgIFsxLjJdIAogICAgICAgICAgICBsb2NhbC5mZWVkcy5wcm9wZXJ0aWVzIHNoYWxsIGJlIGlnbm9yZWQgRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuMiB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS4yIHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgbWljaGkKICAgICAgICA6CiAgICAgICAgWzEuMl0gCiAgICAgICAgICAgIGxvY2FsIGJ1aWxkIHByb3BlcnRpZXMgYWRkZWQgZm9yIGRvd25sb2FkaW5nIGZlZWRzIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjIgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuMiB1cGRhdGUKICAgICAgICBieQogICAgICAgIG1pY2hpCiAgICAgICAgOgogICAgICAgIFsxLjJdIAogICAgICAgICAgICBsdWNlbmUgdmVyc2lvbiBmaXhlZCBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgRG9jcyB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+RG9jcyB1cGRhdGUKICAgICAgICBieQogICAgICAgIGdyZWdvcgogICAgICAgIDoKICAgICAgICBbRG9jc10gCiAgICAgICAgICAgIExpdmUgc2l0ZXMgdXBkYXRlZCBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgRG9jcyB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+RG9jcyB1cGRhdGUKICAgICAgICBieQogICAgICAgIGdyZWdvcgogICAgICAgIDoKICAgICAgICBbRG9jc10gCiAgICAgICAgICAgIFNWTiBwcm9wZXJ0aWVzIHNldCBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS40IHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjQgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBncmVnb3IKICAgICAgICA6CiAgICAgICAgWzEuNF0gCiAgICAgICAgICAgIFVwZGF0ZWQgbGlicmFyeSByZWZlcmVuY2VzIGluIGFudCB0YXJnZXRzIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjIgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuMiB1cGRhdGUKICAgICAgICBieQogICAgICAgIGdyZWdvcgogICAgICAgIDoKICAgICAgICBbMS4yXSAKICAgICAgICAgICAgVXBkYXRlZCBsaWJyYXJ5IHJlZmVyZW5jZXMgaW4gYW50IHRhcmdldHMgRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IERvY3MgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPkRvY3MgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBncmVnb3IKICAgICAgICA6CiAgICAgICAgW0RvY3NdIAogICAgICAgICAgICBMaXZlIHNpdGVzIHVwZGF0ZWQgRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IERvY3MgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPkRvY3MgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBncmVnb3IKICAgICAgICA6CiAgICAgICAgW0RvY3NdIAogICAgICAgICAgICBMaXZlIHNpdGVzIHVwZGF0ZWQgRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IFNpdGUgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPlNpdGUgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBncmVnb3IKICAgICAgICA6CiAgICAgICAgW1NpdGVdIAogICAgICAgICAgICBBZGRlZCBzY3JlZW5zaG90cyBwYWdlIHRvIHRoZSBzaXRlIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCBEb2NzIHJlbW92ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj5Eb2NzIHJlbW92ZQogICAgICAgIGJ5CiAgICAgICAgZ3JlZ29yCiAgICAgICAgOgogICAgICAgIFtEb2NzXSAKICAgICAgICAgICAgUmVtb3ZlZCBvYnNvbGV0ZSBkaXJlY3RvcnkgRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IERvY3MgYWRkPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPkRvY3MgYWRkCiAgICAgICAgYnkKICAgICAgICBncmVnb3IKICAgICAgICA6CiAgICAgICAgW0RvY3NdIAogICAgICAgICAgICBBZGRlZCBzY3JlZW5zaG90cyBwYWdlIHRvIHRoZSBzaXRlIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCBEb2NzIHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj5Eb2NzIHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgZ3JlZ29yCiAgICAgICAgOgogICAgICAgIFtEb2NzXSAKICAgICAgICAgICAgUmVtb3ZlZCBtaXNsZWFkaW5nIFNWTiBrZXl3b3JkIGZyb20gcm9hZG1hcCBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgU2l0ZSBhZGQ8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+U2l0ZSBhZGQKICAgICAgICBieQogICAgICAgIGdyZWdvcgogICAgICAgIDoKICAgICAgICBbU2l0ZV0gCiAgICAgICAgICAgIFNpdGUgcmVzdHJ1Y3R1cmVkIHRvIGRpc3Rpbmd1aXNoIGJldHdlZW4gTGVueWEgMS4yIGFuZCAxLjQsIHJvYWRtYXAgdXBkYXRlZCB3aXRoIHByb2dyZXNzIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCBTaXRlIGFkZDwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj5TaXRlIGFkZAogICAgICAgIGJ5CiAgICAgICAgZ3JlZ29yCiAgICAgICAgOgogICAgICAgIFtTaXRlXSAKICAgICAgICAgICAgU2l0ZSByZXN0cnVjdHVyZWQgdG8gZGlzdGluZ3Vpc2ggYmV0d2VlbiBMZW55YSAxLjIgYW5kIDEuNCwgcm9hZG1hcCB1cGRhdGVkIHdpdGggcHJvZ3Jlc3MgRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IFNpdGUgYWRkPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPlNpdGUgYWRkCiAgICAgICAgYnkKICAgICAgICBncmVnb3IKICAgICAgICA6CiAgICAgICAgW1NpdGVdIAogICAgICAgICAgICBTaXRlIHJlc3RydWN0dXJlZCB0byBkaXN0aW5ndWlzaCBiZXR3ZWVuIExlbnlhIDEuMiBhbmQgMS40LCByb2FkbWFwIHVwZGF0ZWQgd2l0aCBwcm9ncmVzcyBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgU2l0ZSBhZGQ8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+U2l0ZSBhZGQKICAgICAgICBieQogICAgICAgIGdyZWdvcgogICAgICAgIDoKICAgICAgICBbU2l0ZV0gCiAgICAgICAgICAgIFNpdGUgcmVzdHJ1Y3R1cmVkIHRvIGRpc3Rpbmd1aXNoIGJldHdlZW4gTGVueWEgMS4yIGFuZCAxLjQsIHJvYWRtYXAgdXBkYXRlZCB3aXRoIHByb2dyZXNzIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCBTaXRlIGFkZDwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj5TaXRlIGFkZAogICAgICAgIGJ5CiAgICAgICAgZ3JlZ29yCiAgICAgICAgOgogICAgICAgIFtTaXRlXSAKICAgICAgICAgICAgU2l0ZSByZXN0cnVjdHVyZWQgdG8gZGlzdGluZ3Vpc2ggYmV0d2VlbiBMZW55YSAxLjIgYW5kIDEuNCwgcm9hZG1hcCB1cGRhdGVkIHdpdGggcHJvZ3Jlc3MgRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IFNpdGUgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPlNpdGUgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBncmVnb3IKICAgICAgICA6CiAgICAgICAgW1NpdGVdIAogICAgICAgICAgICBTaXRlIHJlc3RydWN0dXJlZCB0byBkaXN0aW5ndWlzaCBiZXR3ZWVuIExlbnlhIDEuMiBhbmQgMS40LCByb2FkbWFwIHVwZGF0ZWQgd2l0aCBwcm9ncmVzcyBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgU2l0ZSB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+U2l0ZSB1cGRhdGUKICAgICAgICBieQogICAgICAgIGdyZWdvcgogICAgICAgIDoKICAgICAgICBbU2l0ZV0gCiAgICAgICAgICAgIFNpdGUgcmVzdHJ1Y3R1cmVkIHRvIGRpc3Rpbmd1aXNoIGJldHdlZW4gTGVueWEgMS4yIGFuZCAxLjQsIHJvYWRtYXAgdXBkYXRlZCB3aXRoIHByb2dyZXNzIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCBTaXRlIGFkZDwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj5TaXRlIGFkZAogICAgICAgIGJ5CiAgICAgICAgZ3JlZ29yCiAgICAgICAgOgogICAgICAgIFtTaXRlXSAKICAgICAgICAgICAgU2l0ZSByZXN0cnVjdHVyZWQgdG8gZGlzdGluZ3Vpc2ggYmV0d2VlbiBMZW55YSAxLjIgYW5kIDEuNCwgcm9hZG1hcCB1cGRhdGVkIHdpdGggcHJvZ3Jlc3MgRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IERvY3MgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPkRvY3MgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBncmVnb3IKICAgICAgICA6CiAgICAgICAgW0RvY3NdIAogICAgICAgICAgICBTaXRlIHJlc3RydWN0dXJlZCB0byBkaXN0aW5ndWlzaCBiZXR3ZWVuIExlbnlhIDEuMiBhbmQgMS40LCByb2FkbWFwIHVwZGF0ZWQgd2l0aCBwcm9ncmVzcyBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgU2l0ZSByZW1vdmU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+U2l0ZSByZW1vdmUKICAgICAgICBieQogICAgICAgIGdyZWdvcgogICAgICAgIDoKICAgICAgICBbU2l0ZV0gCiAgICAgICAgICAgIERlbGV0ZWQgb2xkIDEuMiBBUEkgZG9jcyBpbiBvcmRlciB0byBjb21taXQgbmV3IG9uZXMgRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuNCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS40IHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgZ3JlZ29yCiAgICAgICAgOgogICAgICAgIFsxLjRdIAogICAgICAgICAgICBVcGRhdGVkIGphdmFkb2NzIHRhc2sgdG8gdXNlIGJyZWFraXRlcmF0b3IgYW5kIHNldCBjb21wbGV0ZSBjbGFzc3BhdGggc28gdGhhdCBqYXZhZG9jIGNhbiBzZWUgYW50LiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS4yIHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjIgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBncmVnb3IKICAgICAgICA6CiAgICAgICAgWzEuMl0gCiAgICAgICAgICAgIFVwZGF0ZWQgamF2YWRvY3MgdGFzayB0byB1c2UgYnJlYWtpdGVyYXRvciBhbmQgc2V0IGNvbXBsZXRlIGNsYXNzcGF0aCBzbyB0aGF0IGphdmFkb2MgY2FuIHNlZSBhbnQuIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjQgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuNCB1cGRhdGUKICAgICAgICBieQogICAgICAgIGdyZWdvcgogICAgICAgIDoKICAgICAgICBbMS40XSAKICAgICAgICAgICAgRml4ZWQgSmF2YWRvY3Mgd2FybmluZ3MgRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuNCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS40IHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgZ3JlZ29yCiAgICAgICAgOgogICAgICAgIFsxLjRdIAogICAgICAgICAgICBGaXhlZCBKYXZhZG9jcyB3YXJuaW5ncyBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgIGFkZDwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4gYWRkCiAgICAgICAgYnkKICAgICAgICByb2t1CiAgICAgICAgOgogICAgICAgIFtdIAogICAgICAgICAgICBUYWdnaW5nIDEuMi4yCiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgIHJlbW92ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4gcmVtb3ZlCiAgICAgICAgYnkKICAgICAgICByb2t1CiAgICAgICAgOgogICAgICAgIFtdIAogICAgICAgICAgICBQcmVwYXJpbmcgcmUtdGFnZ2luZwogRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuMiB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS4yIHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgcm9rdQogICAgICAgIDoKICAgICAgICBbMS4yXSAKICAgICAgICAgICAgIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjQgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuNCB1cGRhdGUKICAgICAgICBieQogICAgICAgIHJva3UKICAgICAgICA6CiAgICAgICAgWzEuNF0gCiAgICAgICAgICAgIEZpeGVkIGFzc2V0IGNvbnZlcnNpb24gd2hpdGVzcGFjZSBwcm9ibGVtIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjIgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuMiB1cGRhdGUKICAgICAgICBieQogICAgICAgIHJva3UKICAgICAgICA6CiAgICAgICAgWzEuMl0gCiAgICAgICAgICAgIEZpeGVkIGFzc2V0IGNvbnZlcnNpb24gd2hpdGVzcGFjZSBwcm9ibGVtIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjQgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuNCB1cGRhdGUKICAgICAgICBieQogICAgICAgIHJva3UKICAgICAgICA6CiAgICAgICAgWzEuNF0gCiAgICAgICAgICAgIEZpeGVkIG9iamN0IGNvbnZlcnNpb24uIFNlZSBidWcgIzMzNjYxIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjIgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuMiB1cGRhdGUKICAgICAgICBieQogICAgICAgIHJva3UKICAgICAgICA6CiAgICAgICAgWzEuMl0gCiAgICAgICAgICAgICBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS4yIHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjIgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICByb2t1CiAgICAgICAgOgogICAgICAgIFsxLjJdIAogICAgICAgICAgICBGaXhlZCBicm9rZW4gbGluayBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS4yIHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjIgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICByb2t1CiAgICAgICAgOgogICAgICAgIFsxLjJdIAogICAgICAgICAgICBNb3ZpbmcgdG8gbGF0ZXN0IGt1cHUgMS4yLiBmaXg7IEZpeGVkIGltZyBAc3JjLCBzaW5jZSB3ZSB1c2UgTGVueWEgYXNzZXQgc3R1ZmYKIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjIgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuMiB1cGRhdGUKICAgICAgICBieQogICAgICAgIHJva3UKICAgICAgICA6CiAgICAgICAgWzEuMl0gCiAgICAgICAgICAgIEZpeGVkIG9iamVjdDJ4aHRtbCBjb252ZXJzaW9uOyBPYmplY3Qgd2l0aCBhIGxlYWRpbmcgLyBpbiBAZGF0YSBhciB1c2VkIGFzLWlzLgpUaGlzIGlzIG5lZWRlZCBpZiBhIHBhZ2UgcmVmZXJlbmNlcyBhc3NldHMgZnJvbSBhbm90aGVyIHBhZ2UuIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAgYWRkPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPiBhZGQKICAgICAgICBieQogICAgICAgIHJva3UKICAgICAgICA6CiAgICAgICAgW10gCiAgICAgICAgICAgIFRhZ2dpbmcgMS4yLjIgYmFzZWQgb24gQlJBTkNIRVMvQlJBTkNIXzFfMl9YCiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS4yIHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjIgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICByb2t1CiAgICAgICAgOgogICAgICAgIFsxLjJdIAogICAgICAgICAgICBHcnVtbWwsIGNvcnJlY3RlZCBrdXB1IHJldmlzaW9uCiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS4yIHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjIgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICByb2t1CiAgICAgICAgOgogICAgICAgIFsxLjJdIAogICAgICAgICAgICBDb3JyZWN0ZWQgc3ZuOmV4dGVybmFscyB1cmwgZm9yIGt1cHUKIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjIgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuMiB1cGRhdGUKICAgICAgICBieQogICAgICAgIHJva3UKICAgICAgICA6CiAgICAgICAgWzEuMl0gCiAgICAgICAgICAgIENvcnJlY3RlZCByZXZpc2lvbiBudW1iZXJzCiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS4yIHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjIgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICByb2t1CiAgICAgICAgOgogICAgICAgIFsxLjJdIAogICAgICAgICAgICBQcmVwYXJlIDEuMi4yIHRhZzsgcmV2ZXJ0IGFmdGVyIHRoZSByZWxlYXNlClNlZSAjMzM2NTggRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuMiB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS4yIHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgcm9rdQogICAgICAgIDoKICAgICAgICBbMS4yXSAKICAgICAgICAgICAgSW5jcmVtZW50ZWQgdmVyc2lvbiBudW1iZXIgdG8gMS4yLjIgRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuMiB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS4yIHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgcm9rdQogICAgICAgIDoKICAgICAgICBbMS4yXSAKICAgICAgICAgICAgUHJlcGFyZSAxLjIuMiB0YWc7IHJldmVydCBhZnRlciB0aGUgcmVsZWFzZSBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS4yIHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjIgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICByb2t1CiAgICAgICAgOgogICAgICAgIFsxLjJdIAogICAgICAgICAgICBTZXQgLXIgZm9yIHN2bjpleHRlcm5hbHMgZm9yIHRoZSAxLjIuMiByZWxlYXNlOyBkbyBub3QgZm9yZ2V0IHRvIHJldmVydAphZnRlciB0aGUgcmVsZWFzZQogRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuNCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS40IHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgcm9rdQogICAgICAgIDoKICAgICAgICBbMS40XSAKICAgICAgICAgICAgQWRkZWQgbm90ZSBmcm9tIHdoZXJlIHRvIGRvd25sb2FkIHhzbHRwcm9jLgpVbmZvcnR1YXRlbHksIGl0IGlzIG5vdCBmb3R0aW5nIHRvIHRoZSBidWlsZCBwcm9jZXNzIHRvIGluY2x1ZGUgYSBidWlsZCBrdXB1IGluIHRoZSBzcmMgZGlzdC4KU28sIGZvciAxLjIuMiwga3VwdSBzdGlsbCBuZWVkcyB0byBiZSBidWlsZCwgd2hpY2ggcmVxdWlyZXMgeHNsdHByb2MgdG8gYmUgaW5zdGFsbGVkIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjIgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuMiB1cGRhdGUKICAgICAgICBieQogICAgICAgIHJva3UKICAgICAgICA6CiAgICAgICAgWzEuMl0gCiAgICAgICAgICAgIEVuaGFuY2VkIHhzbHRwcm9jIGRvd25sb2FkIG5vdGUgRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuMiB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS4yIHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgcm9rdQogICAgICAgIDoKICAgICAgICBbMS4yXSAKICAgICAgICAgICAgQWRkZWQgbm90ZSBmcm9tIHdoZXJlIHRvIGRvd25sb2FkIHhzbHRwcm9jLgpVbmZvcnR1YXRlbHksIGl0IGlzIG5vdCBmb3R0aW5nIHRvIHRoZSBidWlsZCBwcm9jZXNzIHRvIGluY2x1ZGUgYSBidWlsZCBrdXB1IGluIHRoZSBzcmMgZGlzdC4KU28sIGZvciAxLjIuMiwga3VwdSBzdGlsbCBuZWVkcyB0byBiZSBidWlsZCwgd2hpY2ggcmVxdWlyZXMgeHNsdHByb2MgdG8gYmUgaW5zdGFsbGVkIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjIgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuMiB1cGRhdGUKICAgICAgICBieQogICAgICAgIGdyZWdvcgogICAgICAgIDoKICAgICAgICBbMS4yXSAKICAgICAgICAgICAgUmV3cm90ZSBtZW51IGphdmFzY3JpcHQgY29kZSB0byBhdm9pZCBjcmFzaGVzIG9uIExpbnV4LiBUaGlzIHJlc29sdmVzIGh0dHA6Ly9pc3N1ZXMuYXBhY2hlLm9yZy9idWd6aWxsYS9zaG93X2J1Zy5jZ2k/aWQ9MzM2NDMgRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuMiB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS4yIHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgbWljaGkKICAgICAgICA6CiAgICAgICAgWzEuMl0gCiAgICAgICAgICAgIGZhaWx1cmUgbWVzc2FnZSBvZiBsb2FkaW5nIEJYRSBpbXByb3ZlZCBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS40IHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjQgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBncmVnb3IKICAgICAgICA6CiAgICAgICAgWzEuNF0gCiAgICAgICAgICAgIEZpeGVkIGNvbXBpbGF0aW9uIGVycm9ycyBmb3IgdGhlIHVuaXQgdGVzdHMgRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuNCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS40IHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgZ3JlZ29yCiAgICAgICAgOgogICAgICAgIFsxLjRdIAogICAgICAgICAgICBNYWRlIExpbmsgaW5zZXJ0aW9uIGludG8gQlhFIHdvcmsgd2l0aCBYTUxIVFRQIHNpdGV0cmVlLiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS4yIHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjIgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBtaWNoaQogICAgICAgIDoKICAgICAgICBbMS4yXSAKICAgICAgICAgICAgdGhhbmtzIHRvIExpbmN6YWssIEpvbmF0aGFuIFcuIHRoZSByb290IGlzIG5vdCBkb3VibGVkIGFueW1vcmUgd2hlbiBjcmVhdGluZyBhIGRvY3VtZW50IERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjQgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuNCB1cGRhdGUKICAgICAgICBieQogICAgICAgIGFuZHJlYXMKICAgICAgICA6CiAgICAgICAgWzEuNF0gCiAgICAgICAgICAgIGFkZGVkIGluaXRpYWwgdmVyc2lvbiBvZiBMaW5rUmV3cml0ZXIgRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuMiB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS4yIHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgZ3JlZ29yCiAgICAgICAgOgogICAgICAgIFsxLjJdIAogICAgICAgICAgICBBZGRlZCB2ZXJzaW9uIGF0dHJpYnV0ZSB0byBnZW5lcmF0ZWQgc3R5bGVzaGVldHMgRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuMiB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS4yIHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgYW5kcmVhcwogICAgICAgIDoKICAgICAgICBbMS4yXSAKICAgICAgICAgICAgbGluayByZXdyaXRpbmc6IHRha2UgY2FyZSBvZiBjb250ZXh0IHByZWZpeCwgZG9uJ3QgdHJ5IHRvIHJld3JpdGUgZXh0ZXJuYWwgbGlua3MgRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuMiB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS4yIHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgYW5kcmVhcwogICAgICAgIDoKICAgICAgICBbMS4yXSAKICAgICAgICAgICAgbGluayByZXdyaXRpbmc6IHVzZSBkb2N1bWVudCBidWlsZGVyIHRvIG1hdGNoIHJld3JpdGFibGUgVVJMcyBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS4yIHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjIgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBhbmRyZWFzCiAgICAgICAgOgogICAgICAgIFsxLjJdIAogICAgICAgICAgICBhZGRlZCBsaW5rLWF0dHJpYnV0ZSBjb25maWd1cmF0aW9uIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjIgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuMiB1cGRhdGUKICAgICAgICBieQogICAgICAgIGFuZHJlYXMKICAgICAgICA6CiAgICAgICAgWzEuMl0gCiAgICAgICAgICAgIGFkZGVkIGxpbmstYXR0cmlidXRlIGNvbmZpZ3VyYXRpb24gRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuMiB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS4yIHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgbWljaGkKICAgICAgICA6CiAgICAgICAgWzEuMl0gCiAgICAgICAgICAgIFRoYW5rcyB0byBHcmVnb3IgSW1ib2RlbiBhbmQgQW5kcmVhcyBIYXJ0bWFubiB0aGUgZWRpdGluZyByZSBXb3JrZmxvdyB0cmlnZ2VyaW5nIGlzIGFnYWluIGJhY2t3YXJkcyBjb21wYXRpYmxlIGZvciBkb2N1bWVudHMgd2l0aG91dCBhIHdvcmtmbG93IERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjIgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuMiB1cGRhdGUKICAgICAgICBieQogICAgICAgIGdyZWdvcgogICAgICAgIDoKICAgICAgICBbMS4yXSAKICAgICAgICAgICAgRml4ZWQgbGluayByZXdyaXRpbmcgdG8gbWFrZSBzdXJlIHRoYXQgbGlua3MgdG8gc3ViIFVSTHMgYXJlIHJld3JpdHRlbi4gVGhpcyByZXNvbHZlcyBodHRwOi8vaXNzdWVzLmFwYWNoZS5vcmcvYnVnemlsbGEvc2hvd19idWcuY2dpP2lkPTI5ODYxIFRoYW5rcyB0byBUaG9tYXMgQ29taW90dG8gZm9yIHRoZSBwYXRjaC4gRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuNCBhZGQ8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS40IGFkZAogICAgICAgIGJ5CiAgICAgICAgZ3JlZ29yCiAgICAgICAgOgogICAgICAgIFsxLjRdIAogICAgICAgICAgICBBZGRlZCBYTUxVbml0IGZvciB0aGUgWE1MIHRlc3RzIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjQgYWRkPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuNCBhZGQKICAgICAgICBieQogICAgICAgIGdyZWdvcgogICAgICAgIDoKICAgICAgICBbMS40XSAKICAgICAgICAgICAgVXBkYXRlZCB0ZXN0cyB0byB1c2UgQ29udGFpbmVyVGVzdENhc2UgYW5kIHJlbGF0ZWQgQ29jb29uIGhlbHBlciBjbGFzc2VzIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjQgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuNCB1cGRhdGUKICAgICAgICBieQogICAgICAgIGdyZWdvcgogICAgICAgIDoKICAgICAgICBbMS40XSAKICAgICAgICAgICAgRGVjbGFyZWQgZmxvd3NjcmlwdCB2YXJpYWJsZXMgZXhjcGxpY3RseS4gVGhpcyBmaXhlcyBodHRwOi8vaXNzdWVzLmFwYWNoZS5vcmcvYnVnemlsbGEvc2hvd19idWcuY2dpP2lkPTMzNTc3IERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjIgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuMiB1cGRhdGUKICAgICAgICBieQogICAgICAgIGdyZWdvcgogICAgICAgIDoKICAgICAgICBbMS4yXSAKICAgICAgICAgICAgRGVjbGFyZWQgZmxvd3NjcmlwdCB2YXJpYWJsZXMgZXhjcGxpY3RseS4gVGhpcyBmaXhlcyBodHRwOi8vaXNzdWVzLmFwYWNoZS5vcmcvYnVnemlsbGEvc2hvd19idWcuY2dpP2lkPTMzNTc3IERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjQgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuNCB1cGRhdGUKICAgICAgICBieQogICAgICAgIGdyZWdvcgogICAgICAgIDoKICAgICAgICBbMS40XSAKICAgICAgICAgICAgQWRkZWQgWFNEIHNjaGVtYSBmb3Igd29ya2Zsb3cgRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuMiB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS4yIHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgZ3JlZ29yCiAgICAgICAgOgogICAgICAgIFsxLjJdIAogICAgICAgICAgICBBZGRlZCBYU0Qgc2NoZW1hIGZvciB3b3JrZmxvdyBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS40IHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjQgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBhbmRyZWFzCiAgICAgICAgOgogICAgICAgIFsxLjRdIAogICAgICAgICAgICBhZGRlZCBtaXNzaW5nIGhyZWYgYXR0cmlidXRlIHRvIG1lbnUgaXRlbSBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS40IHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjQgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBhbmRyZWFzCiAgICAgICAgOgogICAgICAgIFsxLjRdIAogICAgICAgICAgICBhcHBseWluZyB3b3JrZmxvd21lbnUgYW5kIHVzZWNhc2VtZW51IHRyYW5zZm9ybWF0aW9ucyBpcyBub3QgbmVjZXNzYXJ5IGhlcmUgRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuNCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS40IHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgYW5kcmVhcwogICAgICAgIDoKICAgICAgICBbMS40XSAKICAgICAgICAgICAgY2hlY2sgaWYgY3VycmVudCBVUkwgcmVwcmVzZW50cyBkb2N1bWVudCBiZWZvcmUgYWNjZXNzaW5nIGRvY3VtZW50IERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjQgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuNCB1cGRhdGUKICAgICAgICBieQogICAgICAgIGFuZHJlYXMKICAgICAgICA6CiAgICAgICAgWzEuNF0gCiAgICAgICAgICAgIGNoZWNrIGlmIGN1cnJlbnQgVVJMIHJlcHJlc2VudHMgZG9jdW1lbnQgYmVmb3JlIGFjY2Vzc2luZyBkb2N1bWVudCBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS40IHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjQgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBhbmRyZWFzCiAgICAgICAgOgogICAgICAgIFsxLjRdIAogICAgICAgICAgICBjaGVjayBpZiBjdXJyZW50IFVSTCByZXByZXNlbnRzIGRvY3VtZW50IGJlZm9yZSByZXNvbHZpbmcgYWNjb3JkaW5nIHZhbHVlcyBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS40IHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjQgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBhbmRyZWFzCiAgICAgICAgOgogICAgICAgIFsxLjRdIAogICAgICAgICAgICBnZXQgYXJlYSBmcm9tIFVSTCBpbnN0ZWFkIG9mIGRvY3VtZW50LCBhZGQgRE9DVU1FTlRfVFlQRSB0byBwYXJhbWV0ZXIgbGlzdCBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS40IHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjQgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBhbmRyZWFzCiAgICAgICAgOgogICAgICAgIFsxLjRdIAogICAgICAgICAgICBjaGVjayBpZiBVUkwgcmVwcmVzZW50cyBkb2N1bWVudCBiZWZvcmUgcmVzb2x2aW5nIHdvcmtmbG93IERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjQgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuNCB1cGRhdGUKICAgICAgICBieQogICAgICAgIGFuZHJlYXMKICAgICAgICA6CiAgICAgICAgWzEuNF0gCiAgICAgICAgICAgIGRvbid0IGFwcGx5IFdGIHRyYW5zZm9ybWF0aW9uIGZvciBub24tZG9jdW1lbnQgVVJMcyBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS40IHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjQgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBhbmRyZWFzCiAgICAgICAgOgogICAgICAgIFsxLjRdIAogICAgICAgICAgICBpc0RvY3VtZW50ID0gZmFsc2UgZm9yIGFkbWluIGFyZWEgRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuMiB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS4yIHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgcm9rdQogICAgICAgIDoKICAgICAgICBbMS4yXSAKICAgICAgICAgICAgVXNlYWJpbGl0eSBmaXg6IE9ubHkgZGlzcGxheSB0YWIgYXMgbGluaywgaWYgdGFiIGlmIG5vdCB0aGUgY3VycmVudCBuYXY6bm9kZSBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS4yIHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjIgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBncmVnb3IKICAgICAgICA6CiAgICAgICAgWzEuMl0gCiAgICAgICAgICAgIENoYW5nZWQgdGVzdCBkZWZhdWx0cyB0byB1c2UgZXhpc3RpbmcgcHVibGljYXRpb25zIGFuZCBkb2N0eXBlcyBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS40IHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjQgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICByb2t1CiAgICAgICAgOgogICAgICAgIFsxLjRdIAogICAgICAgICAgICBNZXJnZWQgZnJvbSAxLjIueDoKVXNlYWJpbGl0eSBmaXg6IE9ubHkgZGlzcGxheSB0YWIgYXMgbGluaywgaWYgdGFiIGlmIG5vdCB0aGUgY3VycmVudCBuYXY6bm9kZSBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS40IHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjQgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBncmVnb3IKICAgICAgICA6CiAgICAgICAgWzEuNF0gCiAgICAgICAgICAgIEFkZGVkIGEgQ29uc29sZUxvZ2dlcigpIHRvIG1ha2UgdGVzdCBjYXNlcyBydW4gYWdhaW4gRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuNCByZW1vdmU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS40IHJlbW92ZQogICAgICAgIGJ5CiAgICAgICAgZ3JlZ29yCiAgICAgICAgOgogICAgICAgIFsxLjRdIAogICAgICAgICAgICBSZW1vdmVkIERvY3VtZW50Q3JlYXRvciB0ZXN0IERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjQgcmVtb3ZlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuNCByZW1vdmUKICAgICAgICBieQogICAgICAgIGdyZWdvcgogICAgICAgIDoKICAgICAgICBbMS40XSAKICAgICAgICAgICAgUmVtb3ZlZCBEb2N1bWVudENyZWF0b3IgdGVzdCBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS40IGFkZDwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjQgYWRkCiAgICAgICAgYnkKICAgICAgICBncmVnb3IKICAgICAgICA6CiAgICAgICAgWzEuNF0gCiAgICAgICAgICAgIFJlbmFtZWQgbGlicmFyaWVzIHRvIGhhdmUgdGhlaXIgdmVyc2lvbiBpbiB0aGUgbmFtZSBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS4yIGFkZDwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjIgYWRkCiAgICAgICAgYnkKICAgICAgICBncmVnb3IKICAgICAgICA6CiAgICAgICAgWzEuMl0gCiAgICAgICAgICAgIFJlbmFtZWQgbGlicmFyaWVzIHRvIGhhdmUgdGhlaXIgdmVyc2lvbiBpbiB0aGUgbmFtZSBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS4yIHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjIgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBncmVnb3IKICAgICAgICA6CiAgICAgICAgWzEuMl0gCiAgICAgICAgICAgIFN3aXRjaGVkIHRvIEJYRSAxLjEgYW5kIEt1cHUgMS4yIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjQgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuNCB1cGRhdGUKICAgICAgICBieQogICAgICAgIGdyZWdvcgogICAgICAgIDoKICAgICAgICBbMS40XSAKICAgICAgICAgICAgU3dpdGNoZWQgdG8gQlhFIDEuMSBhbmQgS3VwdSAxLjIgRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuMiB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS4yIHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgZ3JlZ29yCiAgICAgICAgOgogICAgICAgIFsxLjJdIAogICAgICAgICAgICBTd2l0Y2hlZCB0byBCWEUgMS4xIGFuZCBLdXB1IDEuMiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS40IGFkZDwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjQgYWRkCiAgICAgICAgYnkKICAgICAgICBncmVnb3IKICAgICAgICA6CiAgICAgICAgWzEuNF0gCiAgICAgICAgICAgIE1vdmVkIHRvIGEgbW9yZSByZWNlbnQgdmVyc2lvbiBvZiB4bWxkYi14dXBkYXRlIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjQgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuNCB1cGRhdGUKICAgICAgICBieQogICAgICAgIGdyZWdvcgogICAgICAgIDoKICAgICAgICBbMS40XSAKICAgICAgICAgICAgU3RhcnRlZCB0byB1c2UgdGhlIChtdWNoIG1vcmUgcmVjZW50KSBRdWFydHogZnJvbSB0aGUgQ29jb29uIGNyb24gYmxvY2sgaW4gbGlldSBvZiB0aGUgbGlicmFyeSB3ZSBzaGlwcGVkIGJlZm9yZS4gT3VyIHZlcnNpb24gZGlkIG5vdCBpbXBsZW1lbnQgbWV0aG9kcyB0aGF0IHNvbWUgb2Ygb3VyIGNvZGUgd2FzIGV4cGVjdGluZy4gQWxzbyBmaXhlZCB0aGUgc2NoZWR1bGVyIFhTUCB0byBnZXQgcGFzdCBjb21waWxhdGlvbiBlcnJvcnMuIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjQgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuNCB1cGRhdGUKICAgICAgICBieQogICAgICAgIGdyZWdvcgogICAgICAgIDoKICAgICAgICBbMS40XSAKICAgICAgICAgICAgQ2hhbmdlZCBzdHJpbmcgY29uY2F0ZW5hdGlvbiB0byB1c2UgYSBTdHJpbmdCdWZmZXIgRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuNCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS40IHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgZ3JlZ29yCiAgICAgICAgOgogICAgICAgIFsxLjRdIAogICAgICAgICAgICBGaXhlZCBFY2xpcHNlIHdhcm5pbmdzIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjQgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuNCB1cGRhdGUKICAgICAgICBieQogICAgICAgIGdyZWdvcgogICAgICAgIDoKICAgICAgICBbMS40XSAKICAgICAgICAgICAgRml4ZWQgcmVzb3VyY2UgbGVha3Mgd2l0aCBub3QgcHJvcGVybHkgY2xvc2luZyBTdHJlYW1zIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjQgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuNCB1cGRhdGUKICAgICAgICBieQogICAgICAgIGdyZWdvcgogICAgICAgIDoKICAgICAgICBbMS40XSAKICAgICAgICAgICAgTWFkZSBleGNlcHRpb25zIGZpbmFsIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjQgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuNCB1cGRhdGUKICAgICAgICBieQogICAgICAgIGdyZWdvcgogICAgICAgIDoKICAgICAgICBbMS40XSAKICAgICAgICAgICAgTWFkZSBleGNlcHRpb25zIGZpbmFsIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjQgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuNCB1cGRhdGUKICAgICAgICBieQogICAgICAgIGdyZWdvcgogICAgICAgIDoKICAgICAgICBbMS40XSAKICAgICAgICAgICAgRml4ZWQgcmVzb3VyY2UgbGVha3Mgd2l0aCBub3QgcHJvcGVybHkgY2xvc2luZyBTdHJlYW1zIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjQgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuNCB1cGRhdGUKICAgICAgICBieQogICAgICAgIGdyZWdvcgogICAgICAgIDoKICAgICAgICBbMS40XSAKICAgICAgICAgICAgUmVtb3ZlZCB1bm5lZWRlZCBMb2c0SiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS40IHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjQgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBncmVnb3IKICAgICAgICA6CiAgICAgICAgWzEuNF0gCiAgICAgICAgICAgIEZpeGVkIEVjbGlwc2Ugd2FybmluZ3MgRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuNCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS40IHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgZ3JlZ29yCiAgICAgICAgOgogICAgICAgIFsxLjRdIAogICAgICAgICAgICBSZXBsYWNlZCBkZXByZWNhdGVkIHRva2VuU3RyZWFtKFJlYWRlcikgd2l0aCB0b2tlblN0cmVhbShTdHJpbmcsIFJlYWRlcikgRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuNCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS40IHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgZ3JlZ29yCiAgICAgICAgOgogICAgICAgIFsxLjRdIAogICAgICAgICAgICBDbGVhbmVkIHVwIEVjbGlwc2Ugd2FybmluZ3MgRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuNCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS40IHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgZ3JlZ29yCiAgICAgICAgOgogICAgICAgIFsxLjRdIAogICAgICAgICAgICBNYWRlIGluc2VydCBsaW5rIHBvcHVwIHdvcmsgYWdhaW4gYnkgc3dpdGNoaW5nIHRvIFhIVE1MIHNlcmlhbGl6YXRpb24uIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjQgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuNCB1cGRhdGUKICAgICAgICBieQogICAgICAgIGdyZWdvcgogICAgICAgIDoKICAgICAgICBbMS40XSAKICAgICAgICAgICAgQWRkZWQgdGhlIHdvcmtmbG93IG1lbnUgdHJhbnNmb3JtZXIgdG8gdGhlIGJsb2cgcHVibGljYXRpb24gRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuNCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS40IHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgZ3JlZ29yCiAgICAgICAgOgogICAgICAgIFsxLjRdIAogICAgICAgICAgICBBZGRlZCBhIHNpbmdsZS1zdGVwIHdvcmtmbG93IGRlZmluaXRpb24gdG8gdGhlIGJsb2cgcHVibGljYXRpb24gRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuNCBhZGQ8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS40IGFkZAogICAgICAgIGJ5CiAgICAgICAgZ3JlZ29yCiAgICAgICAgOgogICAgICAgIFsxLjRdIAogICAgICAgICAgICBBZGRlZCBhIHNpbmdsZS1zdGVwIHdvcmtmbG93IGRlZmluaXRpb24gdG8gdGhlIGJsb2cgcHVibGljYXRpb24gRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IERvY3MgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPkRvY3MgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBtaWNoaQogICAgICAgIDoKICAgICAgICBbRG9jc10gCiAgICAgICAgICAgIGVuYWJsZSBwcm94eSBub3RlcyBmb3IgQXBhY2hlIDIgYWRkZWQgRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuNCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS40IHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgZ3JlZ29yCiAgICAgICAgOgogICAgICAgIFsxLjRdIAogICAgICAgICAgICBDaGFuZ2VkIGVudW0gdmFyaWFibGVzIHRvIGltcHJvdmUgY29tcGF0aWJpbGl0eSB3aXRoIEpESyAxLjUgRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuMiB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS4yIHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgZ3JlZ29yCiAgICAgICAgOgogICAgICAgIFsxLjJdIAogICAgICAgICAgICBDaGFuZ2VkIGVudW0gdmFyaWFibGVzIHRvIGltcHJvdmUgY29tcGF0aWJpbGl0eSB3aXRoIEpESyAxLjUgRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuNCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS40IHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgYW5kcmVhcwogICAgICAgIDoKICAgICAgICBbMS40XSAKICAgICAgICAgICAgY2hlY2sgaWYgY3VycmVudCBVUkwgcmVwcmVzZW50cyBhIGRvY3VtZW50IGJlZm9yZSBjYWxsaW5nIHNldERvY3VtZW50KCkgRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuNCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS40IHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgZ3JlZ29yCiAgICAgICAgOgogICAgICAgIFsxLjRdIAogICAgICAgICAgICBNYWRlIGltYWdlcyBhbmQgYXNzZXQgdGl0bGVzIHZpc2libGUgaW4gdGhlIGZvcm1zIGVkaXRvci4gVGhpcyByZXNvbHZlcyBodHRwOi8vaXNzdWVzLmFwYWNoZS5vcmcvYnVnemlsbGEvc2hvd19idWcuY2dpP2lkPTI5MTM5IERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjIgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuMiB1cGRhdGUKICAgICAgICBieQogICAgICAgIGdyZWdvcgogICAgICAgIDoKICAgICAgICBbMS4yXSAKICAgICAgICAgICAgTWFkZSBpbWFnZXMgYW5kIGFzc2V0IHRpdGxlcyB2aXNpYmxlIGluIHRoZSBmb3JtcyBlZGl0b3IuIFRoaXMgcmVzb2x2ZXMgaHR0cDovL2lzc3Vlcy5hcGFjaGUub3JnL2J1Z3ppbGxhL3Nob3dfYnVnLmNnaT9pZD0yOTEzOSBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS4yIHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjIgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBlZGl0aAogICAgICAgIDoKICAgICAgICBbMS4yXSAKICAgICAgICAgICAgc2V0IHRoZSBkYXRlIG9mIHB1YmxpY2F0aW9uLCB0aGUgcHVibGlzaGVyIGFuZCB0aGUgZGF0ZSBvZiBtb2RpZmljYXRpb24gd2hlbiBhIGRvY3VtZW50IGlzIHB1Ymxpc2hlZCBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS4yIHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjIgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBlZGl0aAogICAgICAgIDoKICAgICAgICBbMS4yXSAKICAgICAgICAgICAgaW50cm9kdWNlIG1ldGhvZCBmb3IgdGhlIGNoZWNrSW4vT3V0IG9mIGRvY3VtZW50OyBuZWVkZWQgd2hlbiB0aGUgcHVibGljYXRpb24gb2YgYSBkb2N1bWVudCB0byBzZXQgdGhlIGRhdGUsIHB1Ymxpc2hlciwgLi4uIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjIgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuMiB1cGRhdGUKICAgICAgICBieQogICAgICAgIGVkaXRoCiAgICAgICAgOgogICAgICAgIFsxLjJdIAogICAgICAgICAgICBzZXQgdGhlIGRhdGUgb2YgcHVibGljYXRpb24sIHRoZSBwdWJsaXNoZXIgYW5kIHRoZSBkYXRlIG9mIG1vZGlmaWNhdGlvbiB3aGVuIGEgZG9jdW1lbnQgaXMgcHVibGlzaGVkOiB1c2VyLW5hbWUgYW5kIHVzZXItZW1haWwgcGFyYW1ldGVycyBuZWVkZWQ7IGNoZWNrIGlmIHRoZSBkb2N1bWVudCBjYW4gYmUgY2hlY2tvdXQgRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuNCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS40IHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgbWljaGkKICAgICAgICA6CiAgICAgICAgWzEuNF0gCiAgICAgICAgICAgIHRoYW5rcyB0byBKb3NpYXMgVGhvZW55IFhNTEhUVFAgaGFzIGJlZW4gaW1wbGVtZW50ZWQgZm9yIHRoZSBzaXRldHJlZSBvZiB0aGUgZGVmYXVsdCBwdWJsaWNhdGlvbiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS4yIHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjIgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBncmVnb3IKICAgICAgICA6CiAgICAgICAgWzEuMl0gCiAgICAgICAgICAgIEZpeGVkIHByb2JsZW0gd2hlcmUgSW5kZXhJbmZvcm1hdGlvbi5pbmRleCB3YXMgbmV2ZXIgd3JpdHRlbiwgYW5kIGNsZWFuZWQgdGhlIHNvdXJjZSB1cCBhIGJpdC4gRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuNCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS40IHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgZ3JlZ29yCiAgICAgICAgOgogICAgICAgIFsxLjRdIAogICAgICAgICAgICBNYWRlIGFub255bW91cyBjbGFzc2VzIGZpbmFsIGlubmVyIGNsYXNzZXMgRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuNCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS40IHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgZ3JlZ29yCiAgICAgICAgOgogICAgICAgIFsxLjRdIAogICAgICAgICAgICBBZGRlZCBzdm4gcHJvcGVydGllcyBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS40IHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjQgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBncmVnb3IKICAgICAgICA6CiAgICAgICAgWzEuNF0gCiAgICAgICAgICAgIENsZWFuZWQgdXAgc291cmNlIGNvZGUgdG8gZGVhbCB3aXRoIEVjbGlwc2Ugd2FybmluZ3MgYW5kIEZpbmRidWcgcmVwb3J0cy4gVGhpcyBhZGRzIGphdmFkb2NzIHRvIGFsbCBwdWJsaWMgbWV0aG9kcywgZml4ZXMgc29tZSByZXNvdXJjZSBsZWFrcyAoRmluZGJ1Z3MgdGVybTogT1MpLCByZXBsYWNlcyBzdHJpbmcgY29uY2F0ZW5hdGlvbiB3aXRoIFN0cmluZ0J1ZmZlciAoU0JTQyksIGF2b2lkcyBjYXRjaCAoRXhjZXB0aW9uIGUpIChSRUMpLCBhdm9pZHMgaGlkaW5nIG9mIGludGVybmFsIHZhcmlhYmxlcyBieSBwYXJhbWV0ZXIgbmFtZXMsIG1ha2VzIHZhcmlhYmxlIGFjY2VzcyBleHBsaWNpdCwgYW5kIHVzZXMgZW50cnlTZXQgaW5zdGVhZCBvZiBrZXlTZXQgKFdNSSkuIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjQgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuNCB1cGRhdGUKICAgICAgICBieQogICAgICAgIGdyZWdvcgogICAgICAgIDoKICAgICAgICBbMS40XSAKICAgICAgICAgICAgVXNlIFhNTCBzZXJpYWxpemVyIGZvciBYSFRNTCB1bnRpbCBYYWxhbiBkb2N0eXBlIHByb2JsZW1zIGFyZSByZXNvbHZlZC4gVGhpcyByZXNvbHZlcyBodHRwOi8vaXNzdWVzLmFwYWNoZS5vcmcvYnVnemlsbGEvc2hvd19idWcuY2dpP2lkPTMzNDMxIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjIgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuMiB1cGRhdGUKICAgICAgICBieQogICAgICAgIGdyZWdvcgogICAgICAgIDoKICAgICAgICBbMS4yXSAKICAgICAgICAgICAgVXBkYXRlZCBpbnN0YWxsIGluc3RydWN0aW9ucyB3aXRoIHBhdGNoIGZyb20gSHViZXJ0dXMgR3JvZXBwZXIuIFRoaXMgcmVzb2x2ZXMgaHR0cDovL2lzc3Vlcy5hcGFjaGUub3JnL2J1Z3ppbGxhL3Nob3dfYnVnLmNnaT9pZD0zMzM5MiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgRG9jcyB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+RG9jcyB1cGRhdGUKICAgICAgICBieQogICAgICAgIGdyZWdvcgogICAgICAgIDoKICAgICAgICBbRG9jc10gCiAgICAgICAgICAgIEFkZGVkIGEgbm90ZSBhYm91dCB3ZWIuYXBwLnNlcnZlciBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgRG9jcyB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+RG9jcyB1cGRhdGUKICAgICAgICBieQogICAgICAgIGdyZWdvcgogICAgICAgIDoKICAgICAgICBbRG9jc10gCiAgICAgICAgICAgIGZpeGVkIHdyb25nIGF1dGhvciBlbWFpbCBhZGRyZXNzIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCBEb2NzIHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj5Eb2NzIHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgbWljaGkKICAgICAgICA6CiAgICAgICAgW0RvY3NdIAogICAgICAgICAgICByZXNldCBpbnRvIGNsZWFuIGludGVncmF0ZWQgRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuMiB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS4yIHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgbWljaGkKICAgICAgICA6CiAgICAgICAgWzEuMl0gCiAgICAgICAgICAgIHJlc2V0IHRhcmdldCBpbnRlZ3JhdGVkIGludG8gY2xlYW4gdGFyZ2V0IERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCBEb2NzIHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj5Eb2NzIHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgbWljaGkKICAgICAgICA6CiAgICAgICAgW0RvY3NdIAogICAgICAgICAgICBpbnN0YWxsIHRhcmdldCByZW1vdmVkIGZyb20gc291cmNlIGJ1aWxkIGluc3RydWN0aW9uIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjIgYWRkPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuMiBhZGQKICAgICAgICBieQogICAgICAgIG1pY2hpCiAgICAgICAgOgogICAgICAgIFsxLjJdIAogICAgICAgICAgICBub3RlcyBhZGRlZCBhYm91dCBidWlsZGluZyBhbmQgcGF0Y2hpbmcgQ29jb29uIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjIgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuMiB1cGRhdGUKICAgICAgICBieQogICAgICAgIG1pY2hpCiAgICAgICAgOgogICAgICAgIFsxLjJdIAogICAgICAgICAgICB2ZXJzaW9ucyB1cGRhdGVkIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjIgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuMiB1cGRhdGUKICAgICAgICBieQogICAgICAgIG1pY2hpCiAgICAgICAgOgogICAgICAgIFsxLjJdIAogICAgICAgICAgICBpbnN0YWxsIHRhcmdldCByZW1vdmVkIGZyb20gYnVpbGQgaW5zdHJ1Y3Rpb24gRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuMiBhZGQ8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS4yIGFkZAogICAgICAgIGJ5CiAgICAgICAgbWljaGkKICAgICAgICA6CiAgICAgICAgWzEuMl0gCiAgICAgICAgICAgIHRoYW5rcyB0byBKb3NpYXMgVGhvZW55IHRoZSBET01TdHJlYW1lciBpcyB3b3JraW5nIGFsc28gZm9yIGRlZmF1bHQgbmFtZXNwYWNlcyB3aXRoIGF0dHJpYnV0ZXMgaW4gdGhlIHJvb3QgZWxlbWVudCBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS40IHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjQgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBncmVnb3IKICAgICAgICA6CiAgICAgICAgWzEuNF0gCiAgICAgICAgICAgIFJlbW92ZWQgbGFiZWwgYXR0cmlidXRlIGZyb20gbWVudSAobm8gbG9uZ2VyIG5lZWRlZCkgRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuMiB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS4yIHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgZ3JlZ29yCiAgICAgICAgOgogICAgICAgIFsxLjJdIAogICAgICAgICAgICBSZS1lbmFibGVkIHZpZXcgdGFzayBsb2cgdXNlY2FzZSBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS4yIGFkZDwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjIgYWRkCiAgICAgICAgYnkKICAgICAgICBncmVnb3IKICAgICAgICA6CiAgICAgICAgWzEuMl0gCiAgICAgICAgICAgIEFkZGVkIGVtcHR5IHRhc2tzIGxvZyBkaXJlY3RvcnkgdG8gbWFrZSB2aWV3LWxvZ3MgdXNlY2FzZSB3b3JrIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjIgYWRkPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuMiBhZGQKICAgICAgICBieQogICAgICAgIGdyZWdvcgogICAgICAgIDoKICAgICAgICBbMS4yXSAKICAgICAgICAgICAgQWRkZWQgZW1wdHkgdGFza3MgbG9nIGRpcmVjdG9yeSB0byBtYWtlIHZpZXctbG9ncyB1c2VjYXNlIHdvcmsgRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuMiB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS4yIHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgZ3JlZ29yCiAgICAgICAgOgogICAgICAgIFsxLjJdIAogICAgICAgICAgICBVcGRhdGVkIHRoZSBibG9nIG1lbnVzIHRvIHVzZSB1YyBhdHRyaWJ1dGVzIGFuZCBJMThuLiBUaGlzIHJlc29sdmVzIGh0dHA6Ly9pc3N1ZXMuYXBhY2hlLm9yZy9idWd6aWxsYS9zaG93X2J1Zy5jZ2k/aWQ9Mjc4MzIgRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuNCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS40IHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgZ3JlZ29yCiAgICAgICAgOgogICAgICAgIFsxLjRdIAogICAgICAgICAgICBVcGRhdGVkIHRoZSBibG9nIG1lbnVzIHRvIHVzZSB1YyBhdHRyaWJ1dGVzIGFuZCBJMThuLiBUaGlzIHJlc29sdmVzIGh0dHA6Ly9pc3N1ZXMuYXBhY2hlLm9yZy9idWd6aWxsYS9zaG93X2J1Zy5jZ2k/aWQ9Mjc4MzIgRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuNCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS40IHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgZ3JlZ29yCiAgICAgICAgOgogICAgICAgIFsxLjRdIAogICAgICAgICAgICBSZW1vdmVkIGRlYWQgY29kZSBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS40IHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjQgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBncmVnb3IKICAgICAgICA6CiAgICAgICAgWzEuNF0gCiAgICAgICAgICAgIEZpeCBkdWJpb3VzIGNvZGUgdG8gdXNlIGEgbG9jYWxlIGZvciB0b1VwcGVyQ2FzZSAvIHRvTG93ZXJDYXNlIG1ldGhvZHMgRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuMiB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS4yIHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgZ3JlZ29yCiAgICAgICAgOgogICAgICAgIFsxLjJdIAogICAgICAgICAgICBBZGRlZCBhIG5vdGUgb24gcHJveHkgY29uZmlndXJhdGlvbiB0byBwdWJsaWNhdGlvbi54Y29uZiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS40IHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjQgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBncmVnb3IKICAgICAgICA6CiAgICAgICAgWzEuNF0gCiAgICAgICAgICAgIEFkZGVkIGEgbm90ZSBvbiBwcm94eSBjb25maWd1cmF0aW9uIHRvIHB1YmxpY2F0aW9uLnhjb25mIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCBEb2NzIHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj5Eb2NzIHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgZ3JlZ29yCiAgICAgICAgOgogICAgICAgIFtEb2NzXSAKICAgICAgICAgICAgQ2hhbmdlZCBzZXBlcmF0ZSB0byBzZXBhcmF0ZSB0aHJvdWdob3V0LiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS4yIHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjIgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBtaWNoaQogICAgICAgIDoKICAgICAgICBbMS4yXSAKICAgICAgICAgICAgdGhhbmtzIHRvIEpvc2lhcyBzb2Z0bGlua3MgZm9yIHRoZSBjb250ZW50IGFuZCByZXNvdXJjZXMgZGlyZWN0b3J5IHNob3VsZCBiZSBwb3NzaWJsZSBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS4yIHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjIgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBtaWNoaQogICAgICAgIDoKICAgICAgICBbMS4yXSAKICAgICAgICAgICAgY2FjaGluZyBvZiBkZWZhdWx0IHB1YmxpY2F0aW9uIGJhY2sgcG9ydGVkIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjIgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuMiB1cGRhdGUKICAgICAgICBieQogICAgICAgIGdyZWdvcgogICAgICAgIDoKICAgICAgICBbMS4yXSAKICAgICAgICAgICAgRW5hYmxlZCByb3VuZHRyaXBwaW5nIG9mIGltYWdlcyBiZXR3ZWVuIEJYRSBhbmQgS3VwdS4gTm90ZSB0aGF0IHRoaXMgY2hhbmdlIHJlcXVpcmVzIGF0IGxlYXN0IEt1cHUgcmV2aXNpb24gODc5NSB0byB3b3JrLiBUaGlzIHJlc29sdmVzIGh0dHA6Ly9pc3N1ZXMuYXBhY2hlLm9yZy9idWd6aWxsYS9zaG93X2J1Zy5jZ2k/aWQ9MjkxNjQgRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuNCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS40IHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgZ3JlZ29yCiAgICAgICAgOgogICAgICAgIFsxLjRdIAogICAgICAgICAgICBFbmFibGVkIHJvdW5kdHJpcHBpbmcgb2YgaW1hZ2VzIGJldHdlZW4gQlhFIGFuZCBLdXB1LiBOb3RlIHRoYXQgdGhpcyBjaGFuZ2UgcmVxdWlyZXMgYXQgbGVhc3QgS3VwdSByZXZpc2lvbiA4Nzk1IHRvIHdvcmsuIFRoaXMgcmVzb2x2ZXMgaHR0cDovL2lzc3Vlcy5hcGFjaGUub3JnL2J1Z3ppbGxhL3Nob3dfYnVnLmNnaT9pZD0yOTE2NCBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS40IHJlbW92ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjQgcmVtb3ZlCiAgICAgICAgYnkKICAgICAgICBncmVnb3IKICAgICAgICA6CiAgICAgICAgWzEuNF0gCiAgICAgICAgICAgIFJlbW92ZWQgZW1wdHkgZGlyZWN0b3JpZXMgRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuNCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS40IHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgZ3JlZ29yCiAgICAgICAgOgogICAgICAgIFsxLjRdIAogICAgICAgICAgICBSZW1vdmVkIHhsaW5rIHRyYW5mb3JtZXIgZGVmaW5pdGlvbiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgRG9jcyB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+RG9jcyB1cGRhdGUKICAgICAgICBieQogICAgICAgIGdyZWdvcgogICAgICAgIDoKICAgICAgICBbRG9jc10gCiAgICAgICAgICAgIFVwZGF0ZWQgcHJveHlpbmcgaW5zdHJ1Y3Rpb25zIHdpdGggbm90ZXMgYWJvdXQgSmV0dHkgRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuNCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS40IHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgcm9rdQogICAgICAgIDoKICAgICAgICBbMS40XSAKICAgICAgICAgICAgSWYgdGhlIGN1cnJlbnQgc2l0cmVlIG5vZGUgZG9lcyBub3QgZXhpc3QgaW4gdGhlIGRpc3BsYXllZCBkb2N1bWVudCdzIGxhbmd1YWdlCkNvbnRpbnVlIHdpdGggbmV4dCBub2RlLiBUaGlzIGlzIGEgcXVpY2sgZml4IGZvciBidWcgIzMyODA4LgpOZXh0IHN0ZXAgd291bGQgYmUgdG8gb2ZmZXIgYWxsIGxpbmtzIHRvIHRoZSBhdmFpbGFibGUgbGFuZ3VhZ2VzLgogRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuMiB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS4yIHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgcm9rdQogICAgICAgIDoKICAgICAgICBbMS4yXSAKICAgICAgICAgICAgSWYgdGhlIGN1cnJlbnQgc2l0cmVlIG5vZGUgZG9lcyBub3QgZXhpc3QgaW4gdGhlIGRpc3BsYXllZCBkb2N1bWVudCdzIGxhbmd1YWdlCkNvbnRpbnVlIHdpdGggbmV4dCBub2RlLiBUaGlzIGlzIGEgcXVpY2sgZml4IGZvciBidWcgIzMyODA4LgpOZXh0IHN0ZXAgd291bGQgYmUgdG8gb2ZmZXIgYWxsIGxpbmtzIHRvIHRoZSBhdmFpbGFibGUgbGFuZ3VhZ2VzLgogRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuMiB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS4yIHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgbWljaGkKICAgICAgICA6CiAgICAgICAgWzEuMl0gCiAgICAgICAgICAgIGZvcm0gZW5jb2RpbmcgZml4ZWQgRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuNCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS40IHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgZ3JlZ29yCiAgICAgICAgOgogICAgICAgIFsxLjRdIAogICAgICAgICAgICBSZXBsYWNlZCBBU0wgMS4xIHdpdGggQVNMIDIuMCBhbmQgc2V0IHN2biBwcm9wZXJ0aWVzIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjIgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuMiB1cGRhdGUKICAgICAgICBieQogICAgICAgIGdyZWdvcgogICAgICAgIDoKICAgICAgICBbMS4yXSAKICAgICAgICAgICAgSW1wcm92ZWQgc2FtcGxlIGRvY3VtZW50cyBpbiB0aGUgZGVmYXVsdCBwdWJsaWNhdGlvbiB3aXRoIG1ldGFkYXRhLiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS40IHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjQgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBncmVnb3IKICAgICAgICA6CiAgICAgICAgWzEuNF0gCiAgICAgICAgICAgIEltcHJvdmVkIHNhbXBsZSBkb2N1bWVudHMgaW4gdGhlIGRlZmF1bHQgcHVibGljYXRpb24gd2l0aCBtZXRhZGF0YS4gRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuMiB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS4yIHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgZ3JlZ29yCiAgICAgICAgOgogICAgICAgIFsxLjJdIAogICAgICAgICAgICAgRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuMiB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS4yIHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgZ3JlZ29yCiAgICAgICAgOgogICAgICAgIFsxLjJdIAogICAgICAgICAgICAgRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuNCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS40IHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgZ3JlZ29yCiAgICAgICAgOgogICAgICAgIFsxLjRdIAogICAgICAgICAgICAgRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuNCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS40IHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgYW5kcmVhcwogICAgICAgIDoKICAgICAgICBbMS40XSAKICAgICAgICAgICAgYWRkZWQgcmVjdXJzaXZlIHB1Ymxpc2hpbmcgRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuNCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS40IHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgYW5kcmVhcwogICAgICAgIDoKICAgICAgICBbMS40XSAKICAgICAgICAgICAgYWRkZWQgcmVjdXJzaXZlIHB1Ymxpc2hpbmcgRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuNCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS40IHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgYW5kcmVhcwogICAgICAgIDoKICAgICAgICBbMS40XSAKICAgICAgICAgICAgbGF6eSBsb2FkaW5nIGZvciB3b3JrZmxvdyBoaXN0b3J5IERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjQgYWRkPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuNCBhZGQKICAgICAgICBieQogICAgICAgIGFuZHJlYXMKICAgICAgICA6CiAgICAgICAgWzEuNF0gCiAgICAgICAgICAgIGFkZGVkIHNvbWUgcHVibGljYXRpb24gdXRpbGl0eSBjbGFzc2VzIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjQgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuNCB1cGRhdGUKICAgICAgICBieQogICAgICAgIGFuZHJlYXMKICAgICAgICA6CiAgICAgICAgWzEuNF0gCiAgICAgICAgICAgIHN3aXRjaCB0byBBYnN0cmFjdExvZ0VuYWJsZWQgRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuNCBhZGQ8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS40IGFkZAogICAgICAgIGJ5CiAgICAgICAgYW5kcmVhcwogICAgICAgIDoKICAgICAgICBbMS40XSAKICAgICAgICAgICAgYWRkIHB1Ymxpc2ggdXNlY2FzZSBoYW5kbGVyIGZvciBkZWZhdWx0IHB1YiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS4yIHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjIgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBncmVnb3IKICAgICAgICA6CiAgICAgICAgWzEuMl0gCiAgICAgICAgICAgIEZpeGVkIHNpdGUgYXJlYSBpbWFnZSBwcmV2aWV3IHRvIHdvcmsgZm9yIGFsbCBVUkxzIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjQgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuNCB1cGRhdGUKICAgICAgICBieQogICAgICAgIGdyZWdvcgogICAgICAgIDoKICAgICAgICBbMS40XSAKICAgICAgICAgICAgRml4ZWQgc2l0ZSBhcmVhIGltYWdlIHByZXZpZXcgdG8gd29yayBmb3IgYWxsIFVSTHMgRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuNCBhZGQ8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS40IGFkZAogICAgICAgIGJ5CiAgICAgICAgZ3JlZ29yCiAgICAgICAgOgogICAgICAgIFsxLjRdIAogICAgICAgICAgICBSZXBsYWNlZCB0aGUgTGVueWEgbWVudSB3aXRoIGEgc3RhbmRhcmRzLWJhc2VkIGltcGxlbWVudGF0aW9uIGJ5IEpvbiBMaW5jemFrLiBOZXcgZmVhdHVyZXM6CiogSXQgaXMgbm93IHBvc3NpYmxlIHRvIGhhdmUgbW9yZSAob3IgbGVzcykgdGhhbiA0IG1lbnVzCiogVGhlIGFyZWEgdGFicyBhcmUgbm93IGludGVybmF0aW9uYWxpemVkCiogVGhlIG5ldyBtZW51IGRpc3BsYXlzIHByb3Blcmx5IHdpdGggc2VyaWFsaXphdGlvbiBzZXQgdG8gWEhUTUwKKiBUaGUgbWVudSBqYXZhc2NyaXB0IGNvZGUgaXMgbm93IGZhciBtb3JlIHJvYnVzdCAoYW5kIHNpbXBsZXIpCiogQXJlYSB0YWJzIG5vdyBoYXZlIGEgaG92ZXIgZWZmZWN0CiogQWNjZXNzaWJpbGl0eSBpcyBpbXByb3ZlZCAoYnkgZG9pbmcgYXdheSB3aXRoIHRhYmxlcyBmb3IgdGhlIG1lbnUsIGFuZCB1c2luZyBsaXN0cykKVGhpcyByZXNvbHZlcyBodHRwOi8vaXNzdWVzLmFwYWNoZS5vcmcvYnVnemlsbGEvc2hvd19idWcuY2dpP2lkPTMzMDI0IERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjIgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuMiB1cGRhdGUKICAgICAgICBieQogICAgICAgIGdyZWdvcgogICAgICAgIDoKICAgICAgICBbMS4yXSAKICAgICAgICAgICAgSW1wcm92ZWQgdGl0bGUgZ2VuZXJhdGlvbiBmb3IgYXV0aG9yaW5nLCBhZG1pbiBhbmQgc2l0ZSBhcmVhcyBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS40IHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjQgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBncmVnb3IKICAgICAgICA6CiAgICAgICAgWzEuNF0gCiAgICAgICAgICAgIEltcHJvdmVkIHRpdGxlIGdlbmVyYXRpb24gZm9yIGF1dGhvcmluZywgYWRtaW4gYW5kIHNpdGUgYXJlYXMgRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuNCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS40IHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgZ3JlZ29yCiAgICAgICAgOgogICAgICAgIFsxLjRdIAogICAgICAgICAgICBDaGFuZ2VkIHJlbWFpbmluZyBpbnN0YW5jZXMgb2YgbGVueWEudXNlY2FzZT1sb2dvdXQgdG8gbGVueWEudXNlY2FzZT1hYy5sb2dvdXQgRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuNCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS40IHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgZ3JlZ29yCiAgICAgICAgOgogICAgICAgIFsxLjRdIAogICAgICAgICAgICBVcGRhdGVkIFdvcmtmbG93RG9jdW1lbnRTZXQgdG8gdXNlIHRoZSBuZXcgV29ya2Zsb3dGYWN0b3J5IGludGVyZmFjZSBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS4yIHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjIgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBtaWNoaQogICAgICAgIDoKICAgICAgICBbMS4yXSAKICAgICAgICAgICAgYnVpbGQgcHJvcGVydGllcyB2ZXJzaW9uIGFkZGVkIGluIG9yZGVyIHRvIGNoZWNrIGlmIGxvY2FsIGJ1aWxkIHByb3BlcnRpZXMgaXMgaW4gc3luYyBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS4yIGFkZDwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjIgYWRkCiAgICAgICAgYnkKICAgICAgICBtaWNoaQogICAgICAgIDoKICAgICAgICBbMS4yXSAKICAgICAgICAgICAgYWRkIFJFQURNRSByZSBwYXRjaGluZyBsaWJyYXJpZXMgc2hpcHBlZCB3aXRoIENvY29vbiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS4yIHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjIgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBtaWNoaQogICAgICAgIDoKICAgICAgICBbMS4yXSAKICAgICAgICAgICAgbG9nNGogY29uZiBhZGRlZCBpbiBvcmRlciB0byBwYXRjaCBDb2Nvb24ncyBsb2c0aiBjb25mIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjIgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuMiB1cGRhdGUKICAgICAgICBieQogICAgICAgIGdyZWdvcgogICAgICAgIDoKICAgICAgICBbMS4yXSAKICAgICAgICAgICAgU2V0IGRlZmF1bHQgbG9nZ2VyIHRvIGxvZzRqIGFuZCBtYWRlIGxvZzQgbG9nIGZpbGUgcGF0aCByZWxhdGl2ZSB0byB3ZWJhcHAuIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjIgcmVtb3ZlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuMiByZW1vdmUKICAgICAgICBieQogICAgICAgIGdyZWdvcgogICAgICAgIDoKICAgICAgICBbMS4yXSAKICAgICAgICAgICAgUmVtb3ZlZCBlbXB0eSBkaXJlY3RvcmllcyBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS4yIHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjIgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBncmVnb3IKICAgICAgICA6CiAgICAgICAgWzEuMl0gCiAgICAgICAgICAgIENoYW5nZWQgcmV2aXNpb24gY29udHJvbGxlciB2aWV3IHRvIG5vIGxvbmdlciBhY2Nlc3MgYSBzdGF0aWMgbWVtYmVyIG9mIFB1YmxpY2F0aW9uLiBUaGlzIHJlc29sdmVzIGh0dHA6Ly9pc3N1ZXMuYXBhY2hlLm9yZy9idWd6aWxsYS9zaG93X2J1Zy5jZ2k/aWQ9MzMyMjUgRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuMiB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS4yIHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgZ3JlZ29yCiAgICAgICAgOgogICAgICAgIFsxLjJdIAogICAgICAgICAgICBJbXByb3ZlZCB3b3JkaW5nIG9mIGJ1aWxkIG1lc3NhZ2UgRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuNCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS40IHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgYW5kcmVhcwogICAgICAgIDoKICAgICAgICBbMS40XSAKICAgICAgICAgICAgc3dpdGNoIHRvIEFic3RyYWN0TG9nRW5hYmxlZCBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS40IHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjQgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBhbmRyZWFzCiAgICAgICAgOgogICAgICAgIFsxLjRdIAogICAgICAgICAgICBpbnRyb2R1Y2VkIHdvcmtmbG93IHJlc29sdmVyIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjQgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuNCB1cGRhdGUKICAgICAgICBieQogICAgICAgIGFuZHJlYXMKICAgICAgICA6CiAgICAgICAgWzEuNF0gCiAgICAgICAgICAgIGludHJvZHVjZWQgd29ya2Zsb3cgcmVzb2x2ZXIgRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuMiB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS4yIHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgZWdsaQogICAgICAgIDoKICAgICAgICBbMS4yXSAKICAgICAgICAgICAgRW5oYW5jZWQgdGhlIG1lc3NhZ2Ugb24gc3VjY2VzZnVsIGJ1aWxkIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjIgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuMiB1cGRhdGUKICAgICAgICBieQogICAgICAgIGVnbGkKICAgICAgICA6CiAgICAgICAgWzEuMl0gCiAgICAgICAgICAgIFJlZmFjdG9yIHRoZSBsaW5rIGRldGVjdGlvbiBzbyB0aGF0IHRoZSBsaW5rcmV3cml0ZXIgY2FuIGJlIHN1YmNsYXNzZWQgbW9yZSBlYXNpbHkgRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuNCByZW1vdmU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS40IHJlbW92ZQogICAgICAgIGJ5CiAgICAgICAgZ3JlZ29yCiAgICAgICAgOgogICAgICAgIFsxLjRdIAogICAgICAgICAgICBSZW1vdmVkIGVtcHR5IGRpcmVjdG9yaWVzIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjQgcmVtb3ZlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuNCByZW1vdmUKICAgICAgICBieQogICAgICAgIGdyZWdvcgogICAgICAgIDoKICAgICAgICBbMS40XSAKICAgICAgICAgICAgUmVtb3ZlZCBlbXB0eSBkaXJlY3RvcnkgRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuNCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS40IHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgZ3JlZ29yCiAgICAgICAgOgogICAgICAgIFsxLjRdIAogICAgICAgICAgICBSZW1vdmVkIHhtbDpvdXRwdXQuIENvY29vbiBzZXJpYWxpemVycyB0YWtlIGNhcmUgb2YgdGhpcy4gRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuMiB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS4yIHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgZ3JlZ29yCiAgICAgICAgOgogICAgICAgIFsxLjJdIAogICAgICAgICAgICBSZW1vdmVkIHhtbDpvdXRwdXQuIENvY29vbiBzZXJpYWxpemVycyB0YWtlIGNhcmUgb2YgdGhpcy4gRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuMiB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS4yIHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgZ3JlZ29yCiAgICAgICAgOgogICAgICAgIFsxLjJdIAogICAgICAgICAgICBGaXhlZCBvcmRlciBvZiBYU0wgaW1wb3J0IHN0YXRlbWVudHMgdG8gYXZvaWQgeHNsdCBleGNlcHRpb25zIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjQgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuNCB1cGRhdGUKICAgICAgICBieQogICAgICAgIGdyZWdvcgogICAgICAgIDoKICAgICAgICBbMS40XSAKICAgICAgICAgICAgQ2hhbmdlZCByZXZpc2lvbiBjb250cm9sbGVyIHZpZXcgdG8gbm8gbG9uZ2VyIGFjY2VzcyBhIHN0YXRpYyBtZW1iZXIgb2YgUHVibGljYXRpb24uIFRoaXMgcmVzb2x2ZXMgaHR0cDovL2lzc3Vlcy5hcGFjaGUub3JnL2J1Z3ppbGxhL3Nob3dfYnVnLmNnaT9pZD0zMzIyNSBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgRG9jcyB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+RG9jcyB1cGRhdGUKICAgICAgICBieQogICAgICAgIGdyZWdvcgogICAgICAgIDoKICAgICAgICBbRG9jc10gCiAgICAgICAgICAgIEFkZGVkIGEgbm90ZSBhYm91dCBtaXNsZWFkaW5nIEZvcnJlc3QgZXJyb3IgbWVzc2FnZXMgZHVyaW5nIHdlYiBzaXRlIGJ1aWxkIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjIgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuMiB1cGRhdGUKICAgICAgICBieQogICAgICAgIGdyZWdvcgogICAgICAgIDoKICAgICAgICBbMS4yXSAKICAgICAgICAgICAgU2V0IFhNTCBzZXJpYWxpemVyIGJhY2sgdG8gVVRGLTguIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjIgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuMiB1cGRhdGUKICAgICAgICBieQogICAgICAgIG1pY2hpCiAgICAgICAgOgogICAgICAgIFsxLjJdIAogICAgICAgICAgICBKYXZhZG9jIG9mIFNlcnZlciBTaWRlIEluY2x1ZGUgY2xhc3MgdXBkYXRlZCBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS40IGFkZDwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjQgYWRkCiAgICAgICAgYnkKICAgICAgICBncmVnb3IKICAgICAgICA6CiAgICAgICAgWzEuNF0gCiAgICAgICAgICAgIFJlLWFkZGVkIFhsaW5rIGFuZCBYUGF0aCBjbGFzc2VzIHRoYXQgc2xpcHBlZCBpbnRvIHRoZSBYUFMgcmVtb3ZhbC4gRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuNCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS40IHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgYW5kcmVhcwogICAgICAgIDoKICAgICAgICBbMS40XSAKICAgICAgICAgICAgc3dpdGNoIHRvIEFic3RyYWN0TG9nRW5hYmxlZCBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS40IHJlbW92ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjQgcmVtb3ZlCiAgICAgICAgYnkKICAgICAgICBncmVnb3IKICAgICAgICA6CiAgICAgICAgWzEuNF0gCiAgICAgICAgICAgIFJlbW92ZWQgWFBTQXNzZW1ibGVyIGFuZCB2YXJpb3VzIFhNTCBoZWxwZXIgY2xhc3Nlcy4gVGhpcyByZXNvbHZlcyBodHRwOi8vaXNzdWVzLmFwYWNoZS5vcmcvYnVnemlsbGEvc2hvd19idWcuY2dpP2lkPTMzMDMwICwgaHR0cDovL2lzc3Vlcy5hcGFjaGUub3JnL2J1Z3ppbGxhL3Nob3dfYnVnLmNnaT9pZD0yNTk1NiAsIGh0dHA6Ly9pc3N1ZXMuYXBhY2hlLm9yZy9idWd6aWxsYS9zaG93X2J1Zy5jZ2k/aWQ9MTk1NTIgYW5kIGh0dHA6Ly9pc3N1ZXMuYXBhY2hlLm9yZy9idWd6aWxsYS9zaG93X2J1Zy5jZ2k/aWQ9MTk1ODMgRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuMiB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS4yIHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgZWdsaQogICAgICAgIDoKICAgICAgICBbMS4yXSAKICAgICAgICAgICAgQWRkZWQgZ2V0dGVyL3NldHRlciBtZXRob2RzIGZvciBpZ25vcmVBRWxlbWVudCBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS4yIGFkZDwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjIgYWRkCiAgICAgICAgYnkKICAgICAgICBtaWNoaQogICAgICAgIDoKICAgICAgICBbMS4yXSAKICAgICAgICAgICAgcHJvZmlsZXIgYWRkZWQgZm9yIHBlcmZvcm1hbmNlIGFuYWx5c2lzIGJ1dCBjb21tZW50ZWQgYmVjYXVzZSBvZiBzbG93aW5nIGRvd24gdGhlIHN5c3RlbSBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgRG9jcyB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+RG9jcyB1cGRhdGUKICAgICAgICBieQogICAgICAgIGdyZWdvcgogICAgICAgIDoKICAgICAgICBbRG9jc10gCiAgICAgICAgICAgIEFkZGVkIGNsYXJpZmljYXRpb24gYWJvdXQgZm9ycmVzdCB2ZXJzaW9uIHVzZWQgZm9yIGJ1aWxkaW5nIHRoZSBzaXRlLiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS40IGFkZDwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjQgYWRkCiAgICAgICAgYnkKICAgICAgICBhbmRyZWFzCiAgICAgICAgOgogICAgICAgIFsxLjRdIAogICAgICAgICAgICB1c2VjYXNlIGZyYW1ld29yayBmb3IgcHVibGlzaGluZyBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS40IHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjQgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBhbmRyZWFzCiAgICAgICAgOgogICAgICAgIFsxLjRdIAogICAgICAgICAgICBGbG93SGVscGVyIGlzIG5vdyBBdmFsb24gY29tcG9uZW50IERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjQgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuNCB1cGRhdGUKICAgICAgICBieQogICAgICAgIGFuZHJlYXMKICAgICAgICA6CiAgICAgICAgWzEuNF0gCiAgICAgICAgICAgIHVzZWNhc2UgZnJhbWV3b3JrIGZvciBwdWJsaXNoaW5nIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjQgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuNCB1cGRhdGUKICAgICAgICBieQogICAgICAgIGFuZHJlYXMKICAgICAgICA6CiAgICAgICAgWzEuNF0gCiAgICAgICAgICAgIHVzZWNhc2UgZnJhbWV3b3JrIGZvciBwdWJsaXNoaW5nIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjQgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuNCB1cGRhdGUKICAgICAgICBieQogICAgICAgIGFuZHJlYXMKICAgICAgICA6CiAgICAgICAgWzEuNF0gCiAgICAgICAgICAgIHN3aXRjaCB0byBBYnN0cmFjdExvZ0VuYWJsZWQgRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuNCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS40IHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgYW5kcmVhcwogICAgICAgIDoKICAgICAgICBbMS40XSAKICAgICAgICAgICAgc3dpdGNoIHRvIEFic3RyYWN0TG9nRW5hYmxlZCBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS40IHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjQgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBhbmRyZWFzCiAgICAgICAgOgogICAgICAgIFsxLjRdIAogICAgICAgICAgICB1c2VjYXNlIGZyYW1ld29yayBmb3Igc3VibWl0IGFuZCByZWplY3QgRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuNCByZW1vdmU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS40IHJlbW92ZQogICAgICAgIGJ5CiAgICAgICAgYW5kcmVhcwogICAgICAgIDoKICAgICAgICBbMS40XSAKICAgICAgICAgICAgdXNlY2FzZSBmcmFtZXdvcmsgZm9yIHN1Ym1pdCBhbmQgcmVqZWN0IERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjQgcmVtb3ZlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuNCByZW1vdmUKICAgICAgICBieQogICAgICAgIGFuZHJlYXMKICAgICAgICA6CiAgICAgICAgWzEuNF0gCiAgICAgICAgICAgIHVzZWNhc2UgZnJhbWV3b3JrIGZvciBzdWJtaXQgYW5kIHJlamVjdCBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS40IHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjQgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBhbmRyZWFzCiAgICAgICAgOgogICAgICAgIFsxLjRdIAogICAgICAgICAgICB1c2VjYXNlIGZyYW1ld29yayBmb3IgcmVqZWN0IHVzZWNhc2UgRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuNCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS40IHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgYW5kcmVhcwogICAgICAgIDoKICAgICAgICBbMS40XSAKICAgICAgICAgICAgdXNlY2FzZSBmcmFtZXdvcmsgZm9yIHN1Ym1pdCB1c2VjYXNlIGluIGRlZmF1bHQgcHVibGljYXRpb24gRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuNCBhZGQ8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS40IGFkZAogICAgICAgIGJ5CiAgICAgICAgYW5kcmVhcwogICAgICAgIDoKICAgICAgICBbMS40XSAKICAgICAgICAgICAgdXNlY2FzZSBmcmFtZXdvcmsgZm9yIHN1Ym1pdCB1c2VjYXNlIGluIGRlZmF1bHQgcHVibGljYXRpb24gRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuNCBhZGQ8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS40IGFkZAogICAgICAgIGJ5CiAgICAgICAgYW5kcmVhcwogICAgICAgIDoKICAgICAgICBbMS40XSAKICAgICAgICAgICAgdXNlY2FzZSBmcmFtZXdvcmsgZm9yIHN1Ym1pdCB1c2VjYXNlIGluIGRlZmF1bHQgcHVibGljYXRpb24gRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuNCBhZGQ8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS40IGFkZAogICAgICAgIGJ5CiAgICAgICAgYW5kcmVhcwogICAgICAgIDoKICAgICAgICBbMS40XSAKICAgICAgICAgICAgYWRkZWQgSW52b2tlV29ya2Zsb3cgdXNlY2FzZSBoYW5kbGVyIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjQgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuNCB1cGRhdGUKICAgICAgICBieQogICAgICAgIGFuZHJlYXMKICAgICAgICA6CiAgICAgICAgWzEuNF0gCiAgICAgICAgICAgIGFkZGVkIGRvY3VtZW50IHRvIGluaXRpYWwgcGFyYW1ldGVycyBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS40IHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjQgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBhbmRyZWFzCiAgICAgICAgOgogICAgICAgIFsxLjRdIAogICAgICAgICAgICByZWZhY3RvcmluZzogZXh0cmFjdGVkIG1ldGhvZCBnZXRFeGVjdXRhYmxlRXZlbnQoKSBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS4yIHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjIgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBncmVnb3IKICAgICAgICA6CiAgICAgICAgWzEuMl0gCiAgICAgICAgICAgIEZpeGVkIGNvZGUgdGhhdCB0cmllZCB0byBkZWxldGUgYSBmaWxlIHRoYXQgd2FzIHN0aWxsIHJlZmVyZW5jZWQgaW4gYW4gb3BlbiBmaWxlIHN0cmVhbS4gVGhpcyBmaXhlcyBodHRwOi8vaXNzdWVzLmFwYWNoZS5vcmcvYnVnemlsbGEvc2hvd19idWcuY2dpP2lkPTMxOTg2ICBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS40IHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjQgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBncmVnb3IKICAgICAgICA6CiAgICAgICAgWzEuNF0gCiAgICAgICAgICAgIEZpeGVkIGNvZGUgdGhhdCB0cmllZCB0byBkZWxldGUgYSBmaWxlIHRoYXQgd2FzIHN0aWxsIHJlZmVyZW5jZWQgaW4gYW4gb3BlbiBmaWxlIHN0cmVhbS4gVGhpcyBmaXhlcyBodHRwOi8vaXNzdWVzLmFwYWNoZS5vcmcvYnVnemlsbGEvc2hvd19idWcuY2dpP2lkPTMxOTg2ICBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS40IHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjQgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBtaWNoaQogICAgICAgIDoKICAgICAgICBbMS40XSAKICAgICAgICAgICAgbWFrZSBzdXJlIHRoYXQgbG9jYWwgcHJvcGVydGllcyBhcmUgaW4gc3luYyB3aXRoIHByZS1zZXQgYnVpbGQgcHJvcGVydGllcyBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS4yIHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjIgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBtaWNoaQogICAgICAgIDoKICAgICAgICBbMS4yXSAKICAgICAgICAgICAgZGlmZmVyZW50aWF0ZSBiZXR3ZWVuIFRvbWNhdCBhbmQgSmV0dHkgZHVyaW5nIHRoZSBpbnN0YWxsIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjIgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuMiB1cGRhdGUKICAgICAgICBieQogICAgICAgIG1pY2hpCiAgICAgICAgOgogICAgICAgIFsxLjJdIAogICAgICAgICAgICB2ZXJzaW9uIGZpeGVkIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjIgYWRkPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuMiBhZGQKICAgICAgICBieQogICAgICAgIG1pY2hpCiAgICAgICAgOgogICAgICAgIFsxLjJdIAogICAgICAgICAgICBidWlsZCBtZXNzYWdlcyBhZGRlZCBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS4yIHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjIgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBtaWNoaQogICAgICAgIDoKICAgICAgICBbMS4yXSAKICAgICAgICAgICAgYWxsb3cgcGF0Y2hpbmcgb2YgTHVjZW5lIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjIgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuMiB1cGRhdGUKICAgICAgICBieQogICAgICAgIG1pY2hpCiAgICAgICAgOgogICAgICAgIFsxLjJdIAogICAgICAgICAgICBub3RlIGFib3V0IGx1Y2VuZSBhbmQgQ29jb29uIDIuMS41LjEgYWRkZWQgRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuNCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS40IHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgZ3JlZ29yCiAgICAgICAgOgogICAgICAgIFsxLjRdIAogICAgICAgICAgICBBZGRlZCBzdHVicyBmb3Igc2VhcmNoIHVzZWNhc2UuIEx1Y2VuZSBzZWFyY2ggd2FzIG5vdCBoYW5kbGVkIGFzIGEgdXNlY2FzZSBiZWZvcmUsIHNvIHRoaXMgd2lsbCBpbnZvbHZlIHNvbWUgcG9ydGluZyB3b3JrLiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS40IGFkZDwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjQgYWRkCiAgICAgICAgYnkKICAgICAgICBncmVnb3IKICAgICAgICA6CiAgICAgICAgWzEuNF0gCiAgICAgICAgICAgIEFkZGVkIHN0dWJzIGZvciBzZWFyY2ggdXNlY2FzZS4gTHVjZW5lIHNlYXJjaCB3YXMgbm90IGhhbmRsZWQgYXMgYSB1c2VjYXNlIGJlZm9yZSwgc28gdGhpcyB3aWxsIGludm9sdmUgc29tZSBwb3J0aW5nIHdvcmsuIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjIgcmVtb3ZlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuMiByZW1vdmUKICAgICAgICBieQogICAgICAgIGdyZWdvcgogICAgICAgIDoKICAgICAgICBbMS4yXSAKICAgICAgICAgICAgUmVtb3ZlZCB1bnVzZWQgbGljZW5zZSBmaWxlcy4gRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuNCByZW1vdmU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS40IHJlbW92ZQogICAgICAgIGJ5CiAgICAgICAgZ3JlZ29yCiAgICAgICAgOgogICAgICAgIFsxLjRdIAogICAgICAgICAgICBSZW1vdmVkIHVudXNlZCBsaWNlbnNlIGZpbGVzLiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS4yIHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjIgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBncmVnb3IKICAgICAgICA6CiAgICAgICAgWzEuMl0gCiAgICAgICAgICAgIEZpeGVkIHdyb25nIHBpcGVsaW5lIGNhbGwgdGhhdCBicm9rZSBJUCByYW5nZSBncm91cCBhZG1pbmlzdHJhdGlvbi4gRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuNCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS40IHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgZ3JlZ29yCiAgICAgICAgOgogICAgICAgIFsxLjRdIAogICAgICAgICAgICBGaXhlZCB3cm9uZyBwaXBlbGluZSBjYWxsIHRoYXQgYnJva2UgSVAgcmFuZ2UgZ3JvdXAgYWRtaW5pc3RyYXRpb24uIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjIgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuMiB1cGRhdGUKICAgICAgICBieQogICAgICAgIGdyZWdvcgogICAgICAgIDoKICAgICAgICBbMS4yXSAKICAgICAgICAgICAgUmVtb3ZlZCBMdWNlbmUgYW5kIGxvZzRqIGZyb20gTGVueWEgKHdlIG5vdyBnZXQgdGhlbSBmcm9tIENvY29vbikuIE1vdmVkIG5la28gbGlicmFyaWVzIHRvIC9saWIsIHVwZ3JhZGVkIG5la29kdGQgdG8gMC4xLjExIGFuZCByZW1vdmVkIHNyYy93ZWJhcHAvV0VCLUlORi9saWIgRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuNCBhZGQ8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS40IGFkZAogICAgICAgIGJ5CiAgICAgICAgZ3JlZ29yCiAgICAgICAgOgogICAgICAgIFsxLjRdIAogICAgICAgICAgICBSZW1vdmVkIEx1Y2VuZSBhbmQgbG9nNGogZnJvbSBMZW55YSAod2Ugbm93IGdldCB0aGVtIGZyb20gQ29jb29uKS4gTW92ZWQgbmVrbyBsaWJyYXJpZXMgdG8gL2xpYiwgdXBncmFkZWQgbmVrb2R0ZCB0byAwLjEuMTEgYW5kIHJlbW92ZWQgc3JjL3dlYmFwcC9XRUItSU5GL2xpYiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS4yIHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjIgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBtaWNoaQogICAgICAgIDoKICAgICAgICBbMS4yXSAKICAgICAgICAgICAgbm90ZSBhYm91dCBidWlsZGluZyBMZW55YSBvZmZsaW5lIGFkZGVkIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjQgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuNCB1cGRhdGUKICAgICAgICBieQogICAgICAgIGFuZHJlYXMKICAgICAgICA6CiAgICAgICAgWzEuNF0gCiAgICAgICAgICAgIGFkZCBpMThuIG1lc3NhZ2VzIGZvciBjaGFuZ2VMYWJlbCB1c2VjYXNlIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjQgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuNCB1cGRhdGUKICAgICAgICBieQogICAgICAgIGFuZHJlYXMKICAgICAgICA6CiAgICAgICAgWzEuNF0gCiAgICAgICAgICAgIHVzZWNhc2UgZnJhbWV3b3JrIHVzZWQgdG8gY2hhbmdlIG5hdmlnYXRpb24gdGl0bGUgRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuNCByZW1vdmU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS40IHJlbW92ZQogICAgICAgIGJ5CiAgICAgICAgYW5kcmVhcwogICAgICAgIDoKICAgICAgICBbMS40XSAKICAgICAgICAgICAgdXNlY2FzZSBmcmFtZXdvcmsgdXNlZCB0byBjaGFuZ2UgbmF2aWdhdGlvbiB0aXRsZSBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS40IGFkZDwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjQgYWRkCiAgICAgICAgYnkKICAgICAgICBhbmRyZWFzCiAgICAgICAgOgogICAgICAgIFsxLjRdIAogICAgICAgICAgICBtb3ZlZCBkZWxldGVMYW5ndWFnZSBKWCB0byBjb3JlIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjQgcmVtb3ZlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuNCByZW1vdmUKICAgICAgICBieQogICAgICAgIGFuZHJlYXMKICAgICAgICA6CiAgICAgICAgWzEuNF0gCiAgICAgICAgICAgIG1vdmVkIGRlbGV0ZUxhbmd1YWdlIEpYIHRvIGNvcmUgRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuNCByZW1vdmU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS40IHJlbW92ZQogICAgICAgIGJ5CiAgICAgICAgYW5kcmVhcwogICAgICAgIDoKICAgICAgICBbMS40XSAKICAgICAgICAgICAgdXNpbmcgdXNlY2FzZSBmcmFtZXdvcmsgZm9yIGRlbGV0ZUxhbmd1YWdlIHVzZWNhc2UgRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuNCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS40IHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgYW5kcmVhcwogICAgICAgIDoKICAgICAgICBbMS40XSAKICAgICAgICAgICAgdXNpbmcgdXNlY2FzZSBmcmFtZXdvcmsgZm9yIGRlbGV0ZUxhbmd1YWdlIHVzZWNhc2UgRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuNCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS40IHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgYW5kcmVhcwogICAgICAgIDoKICAgICAgICBbMS40XSAKICAgICAgICAgICAgdXNpbmcgdXNlY2FzZSBmcmFtZXdvcmsgZm9yIGRlbGV0ZUxhbmd1YWdlIHVzZWNhc2UgRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuNCBhZGQ8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS40IGFkZAogICAgICAgIGJ5CiAgICAgICAgYW5kcmVhcwogICAgICAgIDoKICAgICAgICBbMS40XSAKICAgICAgICAgICAgdXNpbmcgdXNlY2FzZSBmcmFtZXdvcmsgZm9yIGRlbGV0ZUxhbmd1YWdlIHVzZWNhc2UgRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuNCByZW1vdmU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS40IHJlbW92ZQogICAgICAgIGJ5CiAgICAgICAgYW5kcmVhcwogICAgICAgIDoKICAgICAgICBbMS40XSAKICAgICAgICAgICAgcmVuYW1lZCBwYWNrYWdlIHNpdGUudXNlY2FzZSB0byBzaXRlLnVzZWNhc2VzIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjIgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuMiB1cGRhdGUKICAgICAgICBieQogICAgICAgIGdyZWdvcgogICAgICAgIDoKICAgICAgICBbMS4yXSAKICAgICAgICAgICAgRml4ZWQgbGVueWEuYmF0IHRvIG5vIGxvbmdlciBkaXNwbGF5IHRoZSBBU0wgY29tbWVudHMgZHVyaW5nIGxhdW5jaCBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS40IHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjQgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBncmVnb3IKICAgICAgICA6CiAgICAgICAgWzEuNF0gCiAgICAgICAgICAgIEZpeGVkIGxlbnlhLmJhdCB0byBubyBsb25nZXIgZGlzcGxheSB0aGUgQVNMIGNvbW1lbnRzIGR1cmluZyBsYXVuY2ggRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuNCByZW1vdmU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS40IHJlbW92ZQogICAgICAgIGJ5CiAgICAgICAgZ3JlZ29yCiAgICAgICAgOgogICAgICAgIFsxLjRdIAogICAgICAgICAgICBNYWRlIGxvZzRqIHRoZSBsb2cgc3lzdGVtIHVzZWQgYnkgTGVueWEsIGFuZCBzdGFydCB1c2luZyBsb2c0ai54Y29uZiBmb3IgY29uZmlndXJhdGlvbi4gVGhpcyBvYnZpYXRlcyB0aGUgbmVlZCBmb3IgYWJzb2x1dGUgcGF0aHMgaW4gdGhlIGxvZzRqIGNvbmZpZ3VyYXRpb24uIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjQgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuNCB1cGRhdGUKICAgICAgICBieQogICAgICAgIG1pY2hpCiAgICAgICAgOgogICAgICAgIFsxLjRdIAogICAgICAgICAgICBsb2c0aiBlbmFibGVkIGJlY2F1c2UgaXQgYWxzbyB3b3JrcyBub3cgd2l0aCBKZXR0eSBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS4yIHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjIgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBtaWNoaQogICAgICAgIDoKICAgICAgICBbMS4yXSAKICAgICAgICAgICAgbG9nNGogZW5hYmxlZCBiZWNhdXNlIGl0IG5vdyBhbHNvIHdvcmtzIHdpdGggSmV0dHkgRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuMiB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS4yIHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgbWljaGkKICAgICAgICA6CiAgICAgICAgWzEuMl0gCiAgICAgICAgICAgIEpldHR5IHBhdGggYWRkZWQgRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuMiB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS4yIHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgbWljaGkKICAgICAgICA6CiAgICAgICAgWzEuMl0gCiAgICAgICAgICAgIGNvcHlyaWdodCB5ZWFyIHVwZGF0ZWQgRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuMiB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS4yIHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgbWljaGkKICAgICAgICA6CiAgICAgICAgWzEuMl0gCiAgICAgICAgICAgIGNvcHlyaWdodCB5ZWFyIHVwZGF0ZWQgRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuNCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS40IHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgbWljaGkKICAgICAgICA6CiAgICAgICAgWzEuNF0gCiAgICAgICAgICAgIG5vdGUgYWJvdXQgZGVwbG95bWVudCByZSB0aGUgdmFyaW91cyBzZXJ2bGV0IGNvbnRhaW5lcnMgYWRkZWQgRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuNCByZW1vdmU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS40IHJlbW92ZQogICAgICAgIGJ5CiAgICAgICAgZ3JlZ29yCiAgICAgICAgOgogICAgICAgIFsxLjRdIAogICAgICAgICAgICBBZGRlZCBtaXNzaW5nIGNyZWF0ZSBibG9nIGVudHJ5IEpYIHNjcmVlbi4gRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuNCBhZGQ8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS40IGFkZAogICAgICAgIGJ5CiAgICAgICAgZ3JlZ29yCiAgICAgICAgOgogICAgICAgIFsxLjRdIAogICAgICAgICAgICBBZGRlZCBtaXNzaW5nIGNyZWF0ZSBibG9nIGVudHJ5IEpYIHNjcmVlbi4gRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuNCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS40IHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgbWljaGkKICAgICAgICA6CiAgICAgICAgWzEuNF0gCiAgICAgICAgICAgIGFwcGxpZWQgcGF0Y2ggZnJvbSBKYW5uIEZvcnJlciByZSBjb250ZXh0IHByZWZpeCBhbmQgYXNzZXQgdXBsb2FkIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjIgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuMiB1cGRhdGUKICAgICAgICBieQogICAgICAgIG1pY2hpCiAgICAgICAgOgogICAgICAgIFsxLjJdIAogICAgICAgICAgICBwYXRjaCBmcm9tIEphbm4gRm9ycmVyIGFwcGxpZWQgRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuNCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS40IHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgbWljaGkKICAgICAgICA6CiAgICAgICAgWzEuNF0gCiAgICAgICAgICAgIGdlcm1hbiB0cmFuc2xhdGlvbiBvZiBkZWZhdWx0IHB1YmxpY2F0aW9uIHdlbGNvbWUgcGFnZSBzdGFydGVkIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjQgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuNCB1cGRhdGUKICAgICAgICBieQogICAgICAgIG1pY2hpCiAgICAgICAgOgogICAgICAgIFsxLjRdIAogICAgICAgICAgICBsb2c0aiBwYXRoIGNvbmZpZ3VyYWJsZSBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS4yIHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjIgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBncmVnb3IKICAgICAgICA6CiAgICAgICAgWzEuMl0gCiAgICAgICAgICAgIEZpeGVkIHR5cG8gaW4gYSB0cmFuc2xhdGlvbiBrZXkgYXMgcmVwb3J0ZWQgYnkgQXJqZW4uIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjQgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuNCB1cGRhdGUKICAgICAgICBieQogICAgICAgIGdyZWdvcgogICAgICAgIDoKICAgICAgICBbMS40XSAKICAgICAgICAgICAgRml4ZWQgdHlwbyBpbiBhIHRyYW5zbGF0aW9uIGtleSBhcyByZXBvcnRlZCBieSBBcmplbi4gRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuMiBhZGQ8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS4yIGFkZAogICAgICAgIGJ5CiAgICAgICAgZ3JlZ29yCiAgICAgICAgOgogICAgICAgIFsxLjJdIAogICAgICAgICAgICBBZGRlZCBkdXRjaCB0cmFuc2xhdGlvbiBmb3IgTGVueWEgVUkgY29udHJpYnV0ZWQgYnkgQXJqZW4uIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjQgYWRkPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuNCBhZGQKICAgICAgICBieQogICAgICAgIGdyZWdvcgogICAgICAgIDoKICAgICAgICBbMS40XSAKICAgICAgICAgICAgQWRkZWQgZHV0Y2ggdHJhbnNsYXRpb24gZm9yIExlbnlhIFVJIGNvbnRyaWJ1dGVkIGJ5IEFyamVuLiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS4yIGFkZDwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjIgYWRkCiAgICAgICAgYnkKICAgICAgICBncmVnb3IKICAgICAgICA6CiAgICAgICAgWzEuMl0gCiAgICAgICAgICAgIEFkZGVkIGphcGFuZXNlIHRyYW5zbGF0aW9uIGZvciBMZW55YSBVSSBjb250cmlidXRlZCBieSBUZXRzdXlhIEtpdGFoYXRhLiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS40IGFkZDwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjQgYWRkCiAgICAgICAgYnkKICAgICAgICBncmVnb3IKICAgICAgICA6CiAgICAgICAgWzEuNF0gCiAgICAgICAgICAgIEFkZGVkIGphcGFuZXNlIHRyYW5zbGF0aW9uIGZvciBMZW55YSBVSSBjb250cmlidXRlZCBieSBUZXRzdXlhIEtpdGFoYXRhLiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS4yIHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjIgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBtaWNoaQogICAgICAgIDoKICAgICAgICBbMS4yXSAKICAgICAgICAgICAgY29weXJpZ2h0IHRvIDIwMDUgY2hhbmdlZCBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS4yIHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjIgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBtaWNoaQogICAgICAgIDoKICAgICAgICBbMS4yXSAKICAgICAgICAgICAgbG9nNGogcGF0aCBjb25maWd1cmFibGUgRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IERvY3MgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPkRvY3MgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBqd2thbHR6CiAgICAgICAgOgogICAgICAgIFtEb2NzXSAKICAgICAgICAgICAgdXBkYXRlZCB0aGUgbGluayB0byBvdXIgbGl2ZSBzaXRlCiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS40IHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjQgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBqd2thbHR6CiAgICAgICAgOgogICAgICAgIFsxLjRdIAogICAgICAgICAgICBjb21tZW50ZWQgb3V0IHN1cGVyZmx1b3VzIHNhbml0eSBjaGVjaywgdG8gYXZvaWQgcHJvYmxlbXMgd2l0aCBNUyBBY3RpdmUKRGlyZWN0b3J5CiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS4yIHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjIgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBqd2thbHR6CiAgICAgICAgOgogICAgICAgIFsxLjJdIAogICAgICAgICAgICBjb21tZW50ZWQgb3V0IHN1cGVyZmx1b3VzIHNhbml0eSBjaGVjaywgdG8gYXZvaWQgcHJvYmxlbXMgd2l0aCBNUyBBY3RpdmUKRGlyZWN0b3J5CiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS4yIHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjIgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBlZGl0aAogICAgICAgIDoKICAgICAgICBbMS4yXSAKICAgICAgICAgICAgRml4ZWQgdW5kZWNsYXJlZCB2YXJpYWJsZXMgaW4gZmxvd3NjcmlwdCBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS40IHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjQgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBncmVnb3IKICAgICAgICA6CiAgICAgICAgWzEuNF0gCiAgICAgICAgICAgIFJlbW92ZWQgcmVmZXJlbmNlcyB0byBkb200aiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS40IHJlbW92ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjQgcmVtb3ZlCiAgICAgICAgYnkKICAgICAgICBncmVnb3IKICAgICAgICA6CiAgICAgICAgWzEuNF0gCiAgICAgICAgICAgIEZpbmlzaGVkIHRoZSBuZXcgYmxvZyBlbnRyeSB1c2VjYXNlLiBUaGlzIGFsbG93ZWQgdG8gcmVtb3ZlIGRvbTRqIGFuZCB0aGUgUGFyZW50Q2hpbGRDcmVhdG9yQWN0aW9uIGFzIHdlbGwgYXMgY3JlYXRlLnhzcCBhbmQgY3JlYXRlLnhzbCwgd2hpY2ggYXJlIG5vdyBubyBsb25nZXIgdXNlZC4gRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuNCBhZGQ8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS40IGFkZAogICAgICAgIGJ5CiAgICAgICAgZ3JlZ29yCiAgICAgICAgOgogICAgICAgIFsxLjRdIAogICAgICAgICAgICBBZGRlZCBzdHViIGZvciBjcmVhdGUgYmxvZyBlbnRyeSB1c2VjYXNlLiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS40IGFkZDwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjQgYWRkCiAgICAgICAgYnkKICAgICAgICBncmVnb3IKICAgICAgICA6CiAgICAgICAgWzEuNF0gCiAgICAgICAgICAgIEFkZGVkIHN0dWIgZm9yIGNyZWF0ZSBibG9nIGVudHJ5IHVzZWNhc2UuIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjQgcmVtb3ZlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuNCByZW1vdmUKICAgICAgICBieQogICAgICAgIGdyZWdvcgogICAgICAgIDoKICAgICAgICBbMS40XSAKICAgICAgICAgICAgUmVtb3ZlZCB1bnVzZWQgRGVsZWdhdGluZ0F1dGhlbnRpY2F0b3JBY3Rpb24uIExvZ2luIGlzIG5vdyBoYW5kbGVkIGJ5IHRoZSBsb2dpbiB1c2VjYXNlLiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS40IHJlbW92ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjQgcmVtb3ZlCiAgICAgICAgYnkKICAgICAgICBhbmRyZWFzCiAgICAgICAgOgogICAgICAgIFsxLjRdIAogICAgICAgICAgICByZW1vdmVkIG9ic29sZXRlIGRvY3VtZW50IGNyZWF0aW9uIGhlbHBlcnMgRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuNCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS40IHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgYW5kcmVhcwogICAgICAgIDoKICAgICAgICBbMS40XSAKICAgICAgICAgICAgcmVtb3ZlZCBjcmVhdGUgdGFza3MgRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuNCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS40IHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgYW5kcmVhcwogICAgICAgIDoKICAgICAgICBbMS40XSAKICAgICAgICAgICAgYWRkaW5nIHNpdGV0cmVlIGxhYmVsIGluc3RlYWQgb2YgbmV3IG5vZGUgd2hlbiBub2RlIGFscmVhZHkgZXhpc3RzIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjQgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuNCB1cGRhdGUKICAgICAgICBieQogICAgICAgIGFuZHJlYXMKICAgICAgICA6CiAgICAgICAgWzEuNF0gCiAgICAgICAgICAgIHJlZmFjdG9yZWQgZXhjZXB0aW9uIGhhbmRsaW5nIGluIFVSSVBhcmFtZXRlcml6ZXIgRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuNCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS40IHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgYW5kcmVhcwogICAgICAgIDoKICAgICAgICBbMS40XSAKICAgICAgICAgICAgcmVmYWN0b3JlZCBDcmVhdGUgdXNlY2FzZXMgRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuNCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS40IHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgYW5kcmVhcwogICAgICAgIDoKICAgICAgICBbMS40XSAKICAgICAgICAgICAgdXNpbmcgY3JlYXRlIHVzZWNhc2VzIGZyb20gdXNlY2FzZSBGVywgc2hvdyBjcmVhdGUtbGFuZ3VhZ2UgaXRlbSBvbmx5IHdoZW4gbm90IGFsbCBsYW5ndWFnZSB2ZXJzaW9ucyBleGlzdCBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS40IGFkZDwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjQgYWRkCiAgICAgICAgYnkKICAgICAgICBhbmRyZWFzCiAgICAgICAgOgogICAgICAgIFsxLjRdIAogICAgICAgICAgICBhZGRlZCBjcmVhdGVMYW5ndWFnZSB1c2VjYXNlIHRvIHVzZWNhc2UgZnJhbWV3b3JrIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjQgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuNCB1cGRhdGUKICAgICAgICBieQogICAgICAgIGFuZHJlYXMKICAgICAgICA6CiAgICAgICAgWzEuNF0gCiAgICAgICAgICAgIGFkZGVkIGNyZWF0ZUxhbmd1YWdlIHVzZWNhc2UgdG8gdXNlY2FzZSBmcmFtZXdvcmsgRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuNCBhZGQ8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS40IGFkZAogICAgICAgIGJ5CiAgICAgICAgYW5kcmVhcwogICAgICAgIDoKICAgICAgICBbMS40XSAKICAgICAgICAgICAgYWRkZWQgQ3JlYXRlRG9jdW1lbnQgdXNlY2FzZSBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS40IGFkZDwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjQgYWRkCiAgICAgICAgYnkKICAgICAgICBhbmRyZWFzCiAgICAgICAgOgogICAgICAgIFsxLjRdIAogICAgICAgICAgICBhZGRlZCBEb2N1bWVudFR5cGVSZXNvbHZlciBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS40IHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjQgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBhbmRyZWFzCiAgICAgICAgOgogICAgICAgIFsxLjRdIAogICAgICAgICAgICBhZGRlZCBEb2N1bWVudFR5cGVSZXNvbHZlciBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS4yIHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjIgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBncmVnb3IKICAgICAgICA6CiAgICAgICAgWzEuMl0gCiAgICAgICAgICAgIEJhY2twb3J0ZWQgcGF0Y2ggdG8gc2hvdyByZXNvdXJjZSB0eXBlIGluIHRoZSBvdmVydmlldyB0YWIgRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuNCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS40IHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgZ3JlZ29yCiAgICAgICAgOgogICAgICAgIFsxLjRdIAogICAgICAgICAgICBDaGFuZ2VkIGludm9jYXRpb24gb2YgUmVzb3VyY2VzTWFuYWdlciB0byBEZWZhdWx0UmVzb3VyY2VzTWFuYWdlciBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS40IHJlbW92ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjQgcmVtb3ZlCiAgICAgICAgYnkKICAgICAgICBncmVnb3IKICAgICAgICA6CiAgICAgICAgWzEuNF0gCiAgICAgICAgICAgIFJlbW92ZWQgdXBsb2FkLmpzIGZsb3cgc2NyaXB0ICh0aGUgdXBsb2FkIHVzZWNhc2UgaXMgbm93IGhhbmRsZWQgYnkgdGhlIHVzZWNhc2UgZnJhbWV3b3JrKSBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS40IHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjQgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBncmVnb3IKICAgICAgICA6CiAgICAgICAgWzEuNF0gCiAgICAgICAgICAgIFJlbmFtZWQgdGVzdEdldEZ1bGxOYW1lIHRvIHRlc3RHZXROYW1lIHRvIHJlZmxlY3QgaW50ZXJmYWNlIGNoYW5nZXMgRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuNCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS40IHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgZ3JlZ29yCiAgICAgICAgOgogICAgICAgIFsxLjRdIAogICAgICAgICAgICBSZXBsYWNlZCByZWZlcmVuY2VzIHRvIG9zY29tIHB1YmxpY2F0aW9uIHdpdGggZGVmYXVsdCBwdWJsaWNhdGlvbiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS40IHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjQgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBncmVnb3IKICAgICAgICA6CiAgICAgICAgWzEuNF0gCiAgICAgICAgICAgIFJlbW92ZWQgZGVwcmVjYXRlZCBnZXRBYnNvbHV0ZVBhcmVudElkKCkgZnJvbSBTaXRlVHJlZU5vZGUgaW50ZXJmYWNlIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjQgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuNCB1cGRhdGUKICAgICAgICBieQogICAgICAgIGdyZWdvcgogICAgICAgIDoKICAgICAgICBbMS40XSAKICAgICAgICAgICAgUmVtb3ZlZCBkZXByZWNhdGVkIGdldFBhcmVudElkKCkgZnJvbSBTaXRlVHJlZU5vZGUgaW50ZXJmYWNlIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjQgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuNCB1cGRhdGUKICAgICAgICBieQogICAgICAgIGdyZWdvcgogICAgICAgIDoKICAgICAgICBbMS40XSAKICAgICAgICAgICAgUmVwbGFjZWQgb2N1cnJlbmNlcyBvZiBkZXByZWNhdGVkIG5vZGUtaWQgd2l0aCBub2RlLW5hbWUgRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuNCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS40IHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgZ3JlZ29yCiAgICAgICAgOgogICAgICAgIFsxLjRdIAogICAgICAgICAgICBDaGFuZ2VkIG9jdXJyZW5jZXMgb2YgRG9jdW1lbnRVUkwgdG8gdXNlIENhbm9uaWNhbERvY3VtZW50VVJMIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjQgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuNCB1cGRhdGUKICAgICAgICBieQogICAgICAgIGdyZWdvcgogICAgICAgIDoKICAgICAgICBbMS40XSAKICAgICAgICAgICAgU2V0IG1pc3NpbmcgU1ZOIHByb3BlcnRpZXMgRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuNCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS40IHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgZ3JlZ29yCiAgICAgICAgOgogICAgICAgIFsxLjRdIAogICAgICAgICAgICBSZW1vdmVkIGRlcHJlY2F0ZWQgbWV0aG9kcyBmcm9tIEFic3RyYWN0VXNlciBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS40IHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjQgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBncmVnb3IKICAgICAgICA6CiAgICAgICAgWzEuNF0gCiAgICAgICAgICAgIEFkZGVkIEFTTCAyLjAgbGljZW5zZSBhbmQgc2V0IFNWTiBwcm9wZXJ0aWVzIGZvciBzb21lIG5ldyBKYXZhIGZpbGVzIHRoYXQgZGlkIG5vdCBoYXZlIHRoZW0gRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuNCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS40IHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgZ3JlZ29yCiAgICAgICAgOgogICAgICAgIFsxLjRdIAogICAgICAgICAgICBBZGRlZCBBU0wgMi4wIGxpY2Vuc2UgYW5kIHNldCBTVk4gcHJvcGVydGllcyBmb3Igc29tZSBuZXcgSmF2YSBmaWxlcyB0aGF0IGRpZCBub3QgaGF2ZSB0aGVtIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjQgcmVtb3ZlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuNCByZW1vdmUKICAgICAgICBieQogICAgICAgIGdyZWdvcgogICAgICAgIDoKICAgICAgICBbMS40XSAKICAgICAgICAgICAgUmVtb3ZlZCB2YWxpZGF0ZSBhY3Rpb24uIFVzZWNhc2VzIHRoYXQgbmVlZCB0byB2YWxpZGF0ZSB1c2UgdGhlIFJlbGF4IE5HIGhlbHBlciBkaXJlY3RseS4gRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuNCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS40IHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgZ3JlZ29yCiAgICAgICAgOgogICAgICAgIFsxLjRdIAogICAgICAgICAgICBSZW1vdmVkIGRlZmF1bHQtY3JlYXRlIGFjdGlvbiB3aGljaCBoYXMgYmVlbiBzdXBlcmNlZGVkIGJ5IHRoZSBjcmVhdGUgdXNlY2FzZS4gRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuNCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS40IHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgZ3JlZ29yCiAgICAgICAgOgogICAgICAgIFsxLjRdIAogICAgICAgICAgICBDb21wbGV0ZWQgbWlncmF0aW9uIGZyb20gYS5vLmwudXRpbC5GaWxlVXRpbCB0byBleGNhbGlidXIgRmlsZVV0aWwgRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuNCByZW1vdmU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS40IHJlbW92ZQogICAgICAgIGJ5CiAgICAgICAgZ3JlZ29yCiAgICAgICAgOgogICAgICAgIFsxLjRdIAogICAgICAgICAgICBSZW1vdmVkIGRlcHJlY2F0ZWQgU01UUCBjbGFzcywgd2hpY2ggaGFzIGJlZW4gcmVwbGFjZWQgYnkgdGhlIG5vdGlmaWNhdGlvbiB0YXNrLiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS40IHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjQgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBncmVnb3IKICAgICAgICA6CiAgICAgICAgWzEuNF0gCiAgICAgICAgICAgIFJlbW92ZWQga25vd24gaXNzdWVzIGZyb20gMS40IHJlYWRtZS4gRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuNCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS40IHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgZ3JlZ29yCiAgICAgICAgOgogICAgICAgIFsxLjRdIAogICAgICAgICAgICBSZW1vdmVkIG9jY3VycmVuY2Ugb2YgY29jb29uLWxlbnlhIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjQgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuNCB1cGRhdGUKICAgICAgICBieQogICAgICAgIGFuZHJlYXMKICAgICAgICA6CiAgICAgICAgWzEuNF0gCiAgICAgICAgICAgIHJlbW92ZWQgdW51c2VkIGltcG9ydCBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS40IHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjQgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBhbmRyZWFzCiAgICAgICAgOgogICAgICAgIFsxLjRdIAogICAgICAgICAgICBmaXhlZCBTdHJpbmdJbmRleEV4Y2VwdGlvbiBmb3IgbGFuZ3VhZ2UgcHJlZml4ZXMgbGlrZSBkZV9DSCBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS40IHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjQgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBhbmRyZWFzCiAgICAgICAgOgogICAgICAgIFsxLjRdIAogICAgICAgICAgICBmaXhlZCBzb21lIHBhcmFtZXRlciBuYW1lcyBpbiBDcmVhdGUgSlggdGVtcGxhdGUgRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuNCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS40IHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgYW5kcmVhcwogICAgICAgIDoKICAgICAgICBbMS40XSAKICAgICAgICAgICAgaW1wbGVtZW50ZWQgQ3JlYXRlIHVzZWNhc2UgRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuNCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS40IHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgYW5kcmVhcwogICAgICAgIDoKICAgICAgICBbMS40XSAKICAgICAgICAgICAgY2hhbmdpbmcgRE9NIHdoZW4gbGFiZWwgaGFzIGNoYW5nZWQsIG5vdCBvbmx5IExhYmVsIG9iamVjdCBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS4yIHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjIgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBtaWNoaQogICAgICAgIDoKICAgICAgICBbMS4yXSAKICAgICAgICAgICAgaW5mbyBhYm91dCBUb21jYXQgYWRkZWQgRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuMiB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS4yIHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgbWljaGkKICAgICAgICA6CiAgICAgICAgWzEuMl0gCiAgICAgICAgICAgIEdlcm1hbmQgdHJhbnNsYXRpb24gc3RhcnRlZCBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS4yIHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjIgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBtaWNoaQogICAgICAgIDoKICAgICAgICBbMS4yXSAKICAgICAgICAgICAgdmVyc2lvbnMgdXBkYXRlZCBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS40IHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjQgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBhbmRyZWFzCiAgICAgICAgOgogICAgICAgIFsxLjRdIAogICAgICAgICAgICBwdWJsaWNhdGlvbiBwb2x5bW9ycGhpc20gZm9yIHVzZWNhc2UgaGFuZGxlciBjbGFzc2VzIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjIgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuMiB1cGRhdGUKICAgICAgICBieQogICAgICAgIG1pY2hpCiAgICAgICAgOgogICAgICAgIFsxLjJdIAogICAgICAgICAgICBwcmVmaXhlcyBhZGRlZCBhbmQgZGVmYXVsdCBuYW1lc3BhY2UgcmVtb3ZlZCBiZWNhdXNlIG9mIHByb2JsZW1zIHdpdGggU291cmNld3JpdGluZyBUcmFuc2Zvcm1lciBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS40IHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjQgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBhbmRyZWFzCiAgICAgICAgOgogICAgICAgIFsxLjRdIAogICAgICAgICAgICB0cmFuc2Zvcm1pbmcgbm9uLW5hbWVzcGFjZSBlbGVtZW50cyB0byBYSFRNTCBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS40IHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjQgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBhbmRyZWFzCiAgICAgICAgOgogICAgICAgIFsxLjRdIAogICAgICAgICAgICBmaXJzdCBzdGVwcyBmb3IgY3JlYXRlIHVzZWNhc2UgRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuNCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS40IHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgYW5kcmVhcwogICAgICAgIDoKICAgICAgICBbMS40XSAKICAgICAgICAgICAgZmlyc3Qgc3RlcHMgZm9yIGNyZWF0ZSB1c2VjYXNlIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjQgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuNCB1cGRhdGUKICAgICAgICBieQogICAgICAgIGFuZHJlYXMKICAgICAgICA6CiAgICAgICAgWzEuNF0gCiAgICAgICAgICAgIGF2b2lkIE5QRSB3aGVuIGZldGNoaW5nIHNvdXJjZSBkb2N1bWVudCBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS40IGFkZDwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjQgYWRkCiAgICAgICAgYnkKICAgICAgICBhbmRyZWFzCiAgICAgICAgOgogICAgICAgIFsxLjRdIAogICAgICAgICAgICBzdGFydCB0byBpbXBsZW1lbnQgZGVmYXVsdCBwdWIgdXNlY2FzZXMgdXNpbmcgdXNlY2FzZSBmcmFtZXdvcmsgRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuNCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS40IHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgYW5kcmVhcwogICAgICAgIDoKICAgICAgICBbMS40XSAKICAgICAgICAgICAgYWxsb3cgZmFsbGJhY2sgZm9yIEpYIHRlbXBsYXRlcyBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS40IHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjQgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBhbmRyZWFzCiAgICAgICAgOgogICAgICAgIFsxLjRdIAogICAgICAgICAgICBhbGxvdyBzdHJpbmcgZm9yIG5hbWUsIG5vdCBvbmx5IE5DTmFtZSBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS40IHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjQgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBhbmRyZWFzCiAgICAgICAgOgogICAgICAgIFsxLjRdIAogICAgICAgICAgICBzZXR0aW5nIGxpbmsgYXR0cmlidXRlcyBpbnN0ZWFkIG9mIHRpdGxlIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjQgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuNCB1cGRhdGUKICAgICAgICBieQogICAgICAgIGFuZHJlYXMKICAgICAgICA6CiAgICAgICAgWzEuNF0gCiAgICAgICAgICAgIHJlcGxhY2VkIHtmYWxsYmFja30gYnkgZmFsbGJhY2s6Ly8sIGZpeGVkIHNlcmlhbGl6ZXIgZm9yIFNvdXJjZVdyaXRpbmdUcmFuc2Zvcm1lciBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS40IHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjQgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBhbmRyZWFzCiAgICAgICAgOgogICAgICAgIFsxLjRdIAogICAgICAgICAgICBmb3JtYXR0aW5nIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjQgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuNCB1cGRhdGUKICAgICAgICBieQogICAgICAgIGFuZHJlYXMKICAgICAgICA6CiAgICAgICAgWzEuNF0gCiAgICAgICAgICAgIGZpeGVkIG9yZGVyIG9mIFhTTFQgc3RhdGVtZW50cyBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS40IHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjQgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBhbmRyZWFzCiAgICAgICAgOgogICAgICAgIFsxLjRdIAogICAgICAgICAgICBmaXhlZCBvcmRlciBvZiBYU0xUIHN0YXRlbWVudHMgRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuNCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS40IHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgYW5kcmVhcwogICAgICAgIDoKICAgICAgICBbMS40XSAKICAgICAgICAgICAgcmVwbGFjZWQgZWxlbWVudC5zZXROb2RlVmFsdWUoKSBieSBEb2N1bWVudEhlbHBlci5zZXRTaW1wbGVFbGVtZW50VGV4dCgpIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjQgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuNCB1cGRhdGUKICAgICAgICBieQogICAgICAgIGFuZHJlYXMKICAgICAgICA6CiAgICAgICAgWzEuNF0gCiAgICAgICAgICAgIHJlcGxhY2VkIGVsZW1lbnQuc2V0Tm9kZVZhbHVlKCkgYnkgRG9jdW1lbnRIZWxwZXIuc2V0U2ltcGxlRWxlbWVudFRleHQoKSBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS40IHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjQgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBhbmRyZWFzCiAgICAgICAgOgogICAgICAgIFsxLjRdIAogICAgICAgICAgICBmaXhlZCB4cGF0aCB0byByZXBsYWNlIGF1dGhvciBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS40IHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjQgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBhbmRyZWFzCiAgICAgICAgOgogICAgICAgIFsxLjRdIAogICAgICAgICAgICBhZGQgc3R5bGVzaGVldCB2ZXJzaW9uIGF0dHJpYnV0ZSBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS40IHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjQgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBhbmRyZWFzCiAgICAgICAgOgogICAgICAgIFsxLjRdIAogICAgICAgICAgICBhZGQgc3R5bGVzaGVldCB2ZXJzaW9uIGF0dHJpYnV0ZSBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS40IHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjQgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBhbmRyZWFzCiAgICAgICAgOgogICAgICAgIFsxLjRdIAogICAgICAgICAgICBkb24ndCBzd2FsbG93IGV4Y2VwdGlvbnMgRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuNCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS40IHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgbWljaGkKICAgICAgICA6CiAgICAgICAgWzEuNF0gCiAgICAgICAgICAgIFhVTCBtZW51cyBlbmFibGVkIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjQgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuNCB1cGRhdGUKICAgICAgICBieQogICAgICAgIG1pY2hpCiAgICAgICAgOgogICAgICAgIFsxLjRdIAogICAgICAgICAgICBYVUwgbWVudXMgZml4ZWQgRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuNCBhZGQ8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS40IGFkZAogICAgICAgIGJ5CiAgICAgICAgYW5kcmVhcwogICAgICAgIDoKICAgICAgICBbMS40XSAKICAgICAgICAgICAgbm90IHJlYWR5IHlldCwgYnV0IG5lZWRlZCB0byBjb21waWxlIExlbnlhIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjQgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuNCB1cGRhdGUKICAgICAgICBieQogICAgICAgIG1pY2hpCiAgICAgICAgOgogICAgICAgIFsxLjRdIAogICAgICAgICAgICBjb21tZW50IGFib3V0IG1ldGEgc3R5bGVzaGVldCBhZGRlZCBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS40IGFkZDwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjQgYWRkCiAgICAgICAgYnkKICAgICAgICBhbmRyZWFzCiAgICAgICAgOgogICAgICAgIFsxLjRdIAogICAgICAgICAgICBncm91cCBhZG1pbiB1c2luZyB1c2VjYXNlIGZyYW1ld29yayBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS40IHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjQgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBhbmRyZWFzCiAgICAgICAgOgogICAgICAgIFsxLjRdIAogICAgICAgICAgICBncm91cCBhZG1pbiB1c2luZyB1c2VjYXNlIGZyYW1ld29yayBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS40IGFkZDwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjQgYWRkCiAgICAgICAgYnkKICAgICAgICBhbmRyZWFzCiAgICAgICAgOgogICAgICAgIFsxLjRdIAogICAgICAgICAgICBncm91cCBhZG1pbiB1c2luZyB1c2VjYXNlIGZyYW1ld29yayBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS40IHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjQgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBhbmRyZWFzCiAgICAgICAgOgogICAgICAgIFsxLjRdIAogICAgICAgICAgICBncm91cCBhZG1pbiB1c2luZyB1c2VjYXNlIGZyYW1ld29yayBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS40IHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjQgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBhbmRyZWFzCiAgICAgICAgOgogICAgICAgIFsxLjRdIAogICAgICAgICAgICBhZGQgc2F2ZSgpIG1ldGhvZCBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS40IHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjQgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBhbmRyZWFzCiAgICAgICAgOgogICAgICAgIFsxLjRdIAogICAgICAgICAgICByZWZhY3RvcmluZyAocmVtb3ZlIGR1cGxpY2F0ZSBjb2RlKSBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS40IGFkZDwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjQgYWRkCiAgICAgICAgYnkKICAgICAgICBhbmRyZWFzCiAgICAgICAgOgogICAgICAgIFsxLjRdIAogICAgICAgICAgICBncm91cCBhZG1pbiB1c2luZyB1c2VjYXNlIGZyYW1ld29yayBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS40IHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjQgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBhbmRyZWFzCiAgICAgICAgOgogICAgICAgIFsxLjRdIAogICAgICAgICAgICBhZGQgcmVzb3VyY2VzIHRhZyBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS40IHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjQgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBhbmRyZWFzCiAgICAgICAgOgogICAgICAgIFsxLjRdIAogICAgICAgICAgICByZWZhY3RvciB1c2VjYXNlIHBhY2thZ2VzIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjQgcmVtb3ZlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuNCByZW1vdmUKICAgICAgICBieQogICAgICAgIGFuZHJlYXMKICAgICAgICA6CiAgICAgICAgWzEuNF0gCiAgICAgICAgICAgIHJlZmFjdG9yIHVzZWNhc2UgcGFja2FnZXMgRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuNCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS40IHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgYW5kcmVhcwogICAgICAgIDoKICAgICAgICBbMS40XSAKICAgICAgICAgICAgYWRkZWQgWE1MIGZpbGUgZXh0ZW5zaW9uIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjQgcmVtb3ZlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuNCByZW1vdmUKICAgICAgICBieQogICAgICAgIGFuZHJlYXMKICAgICAgICA6CiAgICAgICAgWzEuNF0gCiAgICAgICAgICAgIHJlZmFjdG9yIHVzZWNhc2UgcGFja2FnZXMgRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuNCByZW1vdmU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS40IHJlbW92ZQogICAgICAgIGJ5CiAgICAgICAgYW5kcmVhcwogICAgICAgIDoKICAgICAgICBbMS40XSAKICAgICAgICAgICAgcmVmYWN0b3IgdXNlY2FzZSBwYWNrYWdlcyBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS40IGFkZDwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjQgYWRkCiAgICAgICAgYnkKICAgICAgICBhbmRyZWFzCiAgICAgICAgOgogICAgICAgIFsxLjRdIAogICAgICAgICAgICByZWZhY3RvciB1c2VjYXNlIHBhY2thZ2VzIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjQgYWRkPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuNCBhZGQKICAgICAgICBieQogICAgICAgIGFuZHJlYXMKICAgICAgICA6CiAgICAgICAgWzEuNF0gCiAgICAgICAgICAgIHJlZmFjdG9yIHVzZWNhc2UgcGFja2FnZXMgRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuNCBhZGQ8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS40IGFkZAogICAgICAgIGJ5CiAgICAgICAgYW5kcmVhcwogICAgICAgIDoKICAgICAgICBbMS40XSAKICAgICAgICAgICAgcmVmYWN0b3IgdXNlY2FzZSBwYWNrYWdlcyBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS40IHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjQgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBhbmRyZWFzCiAgICAgICAgOgogICAgICAgIFsxLjRdIAogICAgICAgICAgICByZW1vdmVkIG9ic29sZXRlIGRlY2xhcmF0aW9ucyBhbmQgcGlwZWxpbmVzIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjQgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuNCB1cGRhdGUKICAgICAgICBieQogICAgICAgIGFuZHJlYXMKICAgICAgICA6CiAgICAgICAgWzEuNF0gCiAgICAgICAgICAgIHVzaW5nIHVzZWNhc2UgZnJhbWV3b3JrIGZvciBsb2dvdXQgRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuNCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS40IHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgYW5kcmVhcwogICAgICAgIDoKICAgICAgICBbMS40XSAKICAgICAgICAgICAgYWRkZWQgbG9nb3V0IGZ1bmN0aW9uYWxpdHkgRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuNCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS40IHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgYW5kcmVhcwogICAgICAgIDoKICAgICAgICBbMS40XSAKICAgICAgICAgICAgaW5pdCBzZXNzaW9uIGJlZm9yZSB1c2UgRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuNCByZW1vdmU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS40IHJlbW92ZQogICAgICAgIGJ5CiAgICAgICAgYW5kcmVhcwogICAgICAgIDoKICAgICAgICBbMS40XSAKICAgICAgICAgICAgcmVtb3ZlZCBvYnNvbGV0ZSBsb2dvdXQgZmlsZXMgRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuNCByZW1vdmU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS40IHJlbW92ZQogICAgICAgIGJ5CiAgICAgICAgYW5kcmVhcwogICAgICAgIDoKICAgICAgICBbMS40XSAKICAgICAgICAgICAgcmVtb3ZlZCBvYnNvbGV0ZSBsb2dvdXQgZmlsZXMgRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuMiB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS4yIHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgZWdsaQogICAgICAgIDoKICAgICAgICBbMS4yXSAKICAgICAgICAgICAgRml4ZWQgYSB0eXBvIGluIHRoZSB0cmFuc2xhdGlvbiBrZXkuCgogRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuNCByZW1vdmU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS40IHJlbW92ZQogICAgICAgIGJ5CiAgICAgICAgYW5kcmVhcwogICAgICAgIDoKICAgICAgICBbMS40XSAKICAgICAgICAgICAgcmVtb3ZlZCBvYnNvbGV0ZSBsb2dpbiBmaWxlcyBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS40IHJlbW92ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjQgcmVtb3ZlCiAgICAgICAgYnkKICAgICAgICBhbmRyZWFzCiAgICAgICAgOgogICAgICAgIFsxLjRdIAogICAgICAgICAgICByZW1vdmVkIG9ic29sZXRlIGxvZ2luIGZpbGVzIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjQgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuNCB1cGRhdGUKICAgICAgICBieQogICAgICAgIGFuZHJlYXMKICAgICAgICA6CiAgICAgICAgWzEuNF0gCiAgICAgICAgICAgIHVzZXItZ3JvdXBzIHVzZWNhc2UgYWRkZWQgRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuNCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS40IHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgYW5kcmVhcwogICAgICAgIDoKICAgICAgICBbMS40XSAKICAgICAgICAgICAgdXNpbmcgdXNlY2FzZSBmcmFtZXdvcmsgZm9yIGxvZ2luIHVzZWNhc2UgRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuNCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS40IHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgYW5kcmVhcwogICAgICAgIDoKICAgICAgICBbMS40XSAKICAgICAgICAgICAgcmVtb3ZlZCBUT0RPIGNvbW1lbnQgKGxvb2tzIGZpbmUgdG8gbWUpIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjQgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuNCB1cGRhdGUKICAgICAgICBieQogICAgICAgIGFuZHJlYXMKICAgICAgICA6CiAgICAgICAgWzEuNF0gCiAgICAgICAgICAgIGZpeGVkIHN1Ym1pdCBidXR0b24gbmFtZSBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS40IHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjQgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBhbmRyZWFzCiAgICAgICAgOgogICAgICAgIFsxLjRdIAogICAgICAgICAgICBkb24ndCBvYnRhaW4gd29ya2Zsb3cgc2l0dWF0aW9uIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjQgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuNCB1cGRhdGUKICAgICAgICBieQogICAgICAgIGFuZHJlYXMKICAgICAgICA6CiAgICAgICAgWzEuNF0gCiAgICAgICAgICAgIHJlbW92ZWQgZXhjZXB0aW9uIGNsYXVzZSBmcm9tIGRvSW5pdGlhbGl6ZSgpIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjQgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuNCB1cGRhdGUKICAgICAgICBieQogICAgICAgIGFuZHJlYXMKICAgICAgICA6CiAgICAgICAgWzEuNF0gCiAgICAgICAgICAgIHJlbW92ZWQgZXhjZXB0aW9uIGNsYXVzZSBmcm9tIGRvSW5pdGlhbGl6ZSgpIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjQgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuNCB1cGRhdGUKICAgICAgICBieQogICAgICAgIGFuZHJlYXMKICAgICAgICA6CiAgICAgICAgWzEuNF0gCiAgICAgICAgICAgIHJlbW92ZWQgZXhjZXB0aW9uIGNsYXVzZSBmcm9tIGRvSW5pdGlhbGl6ZSgpIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjQgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuNCB1cGRhdGUKICAgICAgICBieQogICAgICAgIGFuZHJlYXMKICAgICAgICA6CiAgICAgICAgWzEuNF0gCiAgICAgICAgICAgIGZpeGVkIHNvbWUgc3R5bGUgaXNzdWVzIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjQgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuNCB1cGRhdGUKICAgICAgICBieQogICAgICAgIGFuZHJlYXMKICAgICAgICA6CiAgICAgICAgWzEuNF0gCiAgICAgICAgICAgIHJlbW92ZWQgZXhjZXB0aW9uIGNsYXVzZSBmcm9tIGRvSW5pdGlhbGl6ZSgpIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjQgYWRkPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuNCBhZGQKICAgICAgICBieQogICAgICAgIGFuZHJlYXMKICAgICAgICA6CiAgICAgICAgWzEuNF0gCiAgICAgICAgICAgIGFkZGVkIFdvcmtmbG93VXNlY2FzZSBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS40IHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjQgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBhbmRyZWFzCiAgICAgICAgOgogICAgICAgIFsxLjRdIAogICAgICAgICAgICBhZGRlZCBtYXRjaGVyIHRvIG1hdGNoIHJlZ2lzdGVyZWQgdXNlY2FzZXMgRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuNCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS40IHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgYW5kcmVhcwogICAgICAgIDoKICAgICAgICBbMS40XSAKICAgICAgICAgICAgYWRkZWQgbWF0Y2hlciB0byBtYXRjaCByZWdpc3RlcmVkIHVzZWNhc2VzIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjQgYWRkPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuNCBhZGQKICAgICAgICBieQogICAgICAgIGFuZHJlYXMKICAgICAgICA6CiAgICAgICAgWzEuNF0gCiAgICAgICAgICAgIGFkZGVkIG1hdGNoZXIgdG8gbWF0Y2ggcmVnaXN0ZXJlZCB1c2VjYXNlcyBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS40IHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjQgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBhbmRyZWFzCiAgICAgICAgOgogICAgICAgIFsxLjRdIAogICAgICAgICAgICBhZGRlZCBtZXRob2QgdG8gY2hlY2sgaWYgYSB1c2VjYXNlIGlzIHJlZ2lzdGVyZWQgRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuNCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS40IHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgYW5kcmVhcwogICAgICAgIDoKICAgICAgICBbMS40XSAKICAgICAgICAgICAgbW92ZWQgdHJpZ2dlcldvcmtmbG93KCkgb25lIGxldmVsIHVwIGFzIGl0IGNhbiBhcHBseSB0byBtdWx0aXBsZSBkb2N1bWVudHMgRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuNCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS40IHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgYW5kcmVhcwogICAgICAgIDoKICAgICAgICBbMS40XSAKICAgICAgICAgICAgYWRkZWQgbWV0aG9kcyB0byB0cmlnZ2VyIHdvcmtmbG93IERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjQgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuNCB1cGRhdGUKICAgICAgICBieQogICAgICAgIGFuZHJlYXMKICAgICAgICA6CiAgICAgICAgWzEuNF0gCiAgICAgICAgICAgIGFkZGVkIGphdmFkb2NzIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjQgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuNCB1cGRhdGUKICAgICAgICBieQogICAgICAgIGFuZHJlYXMKICAgICAgICA6CiAgICAgICAgWzEuNF0gCiAgICAgICAgICAgIG91dHB1dCBzaW5nbGUgbGFuZ3VhZ2VzIGluc3RlYWQgb2YgYXJyYXkgb2JqZWN0IERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjQgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuNCB1cGRhdGUKICAgICAgICBieQogICAgICAgIGFuZHJlYXMKICAgICAgICA6CiAgICAgICAgWzEuNF0gCiAgICAgICAgICAgIGRvbid0IHVzZSBpbnRlcmZhY2UgY29uc3RydWN0b3IgRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuNCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS40IHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgYW5kcmVhcwogICAgICAgIDoKICAgICAgICBbMS40XSAKICAgICAgICAgICAgcmVtb3ZlZCB1bnVzZWQgaW1wb3J0cywgcmVwbGFjZSBzdHJpbmdzIHdpdGggcHJlLWRlZmluZWQgZmllbGRzIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjIgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuMiB1cGRhdGUKICAgICAgICBieQogICAgICAgIG1pY2hpCiAgICAgICAgOgogICAgICAgIFsxLjJdIAogICAgICAgICAgICB2aWV3IHRhc2sgbG9nIHVzZWNhc2UgZG9lc24ndCBzZWVtIHRvIHdvcmsgb3IgbGluayBtaWdodCBiZSB3cm9uZyBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgU2l0ZSBhZGQ8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+U2l0ZSBhZGQKICAgICAgICBieQogICAgICAgIGdyZWdvcgogICAgICAgIDoKICAgICAgICBbU2l0ZV0gCiAgICAgICAgICAgIFVwZGF0ZWQgc2l0ZSB3aXRoIGxhdGVzdCBkb2N1bWVudGF0aW9uIGNoYW5nZXMgYW5kIHJlbW92ZWQgZW9sLXN0eWxlIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCBTaXRlIGFkZDwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj5TaXRlIGFkZAogICAgICAgIGJ5CiAgICAgICAgZ3JlZ29yCiAgICAgICAgOgogICAgICAgIFtTaXRlXSAKICAgICAgICAgICAgVXBkYXRlZCBzaXRlIHdpdGggbGF0ZXN0IGRvY3VtZW50YXRpb24gY2hhbmdlcyBhbmQgcmVtb3ZlZCBlb2wtc3R5bGUgRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IFNpdGUgYWRkPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPlNpdGUgYWRkCiAgICAgICAgYnkKICAgICAgICBncmVnb3IKICAgICAgICA6CiAgICAgICAgW1NpdGVdIAogICAgICAgICAgICBVcGRhdGVkIHNpdGUgd2l0aCBsYXRlc3QgZG9jdW1lbnRhdGlvbiBjaGFuZ2VzIGFuZCByZW1vdmVkIGVvbC1zdHlsZSBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgU2l0ZSB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+U2l0ZSB1cGRhdGUKICAgICAgICBieQogICAgICAgIGdyZWdvcgogICAgICAgIDoKICAgICAgICBbU2l0ZV0gCiAgICAgICAgICAgIFVwZGF0ZWQgc2l0ZSB3aXRoIGxhdGVzdCBkb2N1bWVudGF0aW9uIGNoYW5nZXMgYW5kIHJlbW92ZWQgZW9sLXN0eWxlIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCBTaXRlIHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj5TaXRlIHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgZ3JlZ29yCiAgICAgICAgOgogICAgICAgIFtTaXRlXSAKICAgICAgICAgICAgVXBkYXRlZCBzaXRlIHdpdGggbGF0ZXN0IGRvY3VtZW50YXRpb24gY2hhbmdlcyBhbmQgcmVtb3ZlZCBlb2wtc3R5bGUgRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IFNpdGUgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPlNpdGUgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBncmVnb3IKICAgICAgICA6CiAgICAgICAgW1NpdGVdIAogICAgICAgICAgICBVcGRhdGVkIHNpdGUgd2l0aCBsYXRlc3QgZG9jdW1lbnRhdGlvbiBjaGFuZ2VzIGFuZCByZW1vdmVkIGVvbC1zdHlsZSBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgU2l0ZSB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+U2l0ZSB1cGRhdGUKICAgICAgICBieQogICAgICAgIGdyZWdvcgogICAgICAgIDoKICAgICAgICBbU2l0ZV0gCiAgICAgICAgICAgIFVwZGF0ZWQgc2l0ZSB3aXRoIGxhdGVzdCBkb2N1bWVudGF0aW9uIGNoYW5nZXMgYW5kIHJlbW92ZWQgZW9sLXN0eWxlIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCBTaXRlIHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj5TaXRlIHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgZ3JlZ29yCiAgICAgICAgOgogICAgICAgIFtTaXRlXSAKICAgICAgICAgICAgVXBkYXRlZCBzaXRlIHdpdGggbGF0ZXN0IGRvY3VtZW50YXRpb24gY2hhbmdlcyBhbmQgcmVtb3ZlZCBlb2wtc3R5bGUgRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IFNpdGUgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPlNpdGUgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBncmVnb3IKICAgICAgICA6CiAgICAgICAgW1NpdGVdIAogICAgICAgICAgICBVcGRhdGVkIHNpdGUgd2l0aCBsYXRlc3QgZG9jdW1lbnRhdGlvbiBjaGFuZ2VzIGFuZCByZW1vdmVkIGVvbC1zdHlsZSBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgU2l0ZSB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+U2l0ZSB1cGRhdGUKICAgICAgICBieQogICAgICAgIGdyZWdvcgogICAgICAgIDoKICAgICAgICBbU2l0ZV0gCiAgICAgICAgICAgIFVwZGF0ZWQgc2l0ZSB3aXRoIGxhdGVzdCBkb2N1bWVudGF0aW9uIGNoYW5nZXMgRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IFNpdGUgYWRkPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPlNpdGUgYWRkCiAgICAgICAgYnkKICAgICAgICBncmVnb3IKICAgICAgICA6CiAgICAgICAgW1NpdGVdIAogICAgICAgICAgICBVcGRhdGVkIHNpdGUgd2l0aCBsYXRlc3QgZG9jdW1lbnRhdGlvbiBjaGFuZ2VzIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCBTaXRlIHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj5TaXRlIHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgcm9rdQogICAgICAgIDoKICAgICAgICBbU2l0ZV0gCiAgICAgICAgICAgIFVwZGF0ZSBmb3IgcmVsZWFzZSAxLjIuMSBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgRG9jcyB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+RG9jcyB1cGRhdGUKICAgICAgICBieQogICAgICAgIHJva3UKICAgICAgICA6CiAgICAgICAgW0RvY3NdIAogICAgICAgICAgICAtIEFkZGVkIHJlbGVhc2UgMS4yLjEKLSBJbXByb3ZlZCBkb3dubG9hZCBsaW5rIHRleHQgRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuMiByZW1vdmU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS4yIHJlbW92ZQogICAgICAgIGJ5CiAgICAgICAgcm9rdQogICAgICAgIDoKICAgICAgICBbMS4yXSAKICAgICAgICAgICAgSXQgaXMgZW5vdWdoIGlmIHRoZSBLRVlTIGZpbGUgaXMgaW4gdGhlIHRydW5rLiBJdCBpcyBiZXR0ZXIgdG8gbWFpbnRhaW4uCk1heWJlIHdlIHNob3VsZCBvcGVuIGEgbmV3IGRpcmVjdG9yeSBjYWxsZWQgbWlzYyBvciBzby4gCiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS4yIGFkZDwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjIgYWRkCiAgICAgICAgYnkKICAgICAgICByb2t1CiAgICAgICAgOgogICAgICAgIFsxLjJdIAogICAgICAgICAgICBBZGRlZCBteSBncGcga2V5LiBXZSBhbHNvIHNob3VsZCBzaWduIG91ciByZWxlYXNlcyBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS4yIHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjIgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICByb2t1CiAgICAgICAgOgogICAgICAgIFsxLjJdIAogICAgICAgICAgICBNYWRlIGNoZWNrc3VtIGZpbGUgZXh0ZW5zaW9uIGxvd2VyIGNhc2UuIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjQgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuNCB1cGRhdGUKICAgICAgICBieQogICAgICAgIHJva3UKICAgICAgICA6CiAgICAgICAgWzEuNF0gCiAgICAgICAgICAgIE1hZGUgY2hlY2tzdW0gZmlsZSBleHRlbnNpb24gbG93ZXIgY2FzZS4gRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuNCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS40IHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgcm9rdQogICAgICAgIDoKICAgICAgICBbMS40XSAKICAgICAgICAgICAgQWRkZWQga3VwdSB0YXJnZXQgRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuNCBhZGQ8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS40IGFkZAogICAgICAgIGJ5CiAgICAgICAgcm9rdQogICAgICAgIDoKICAgICAgICBbMS40XSAKICAgICAgICAgICAgQWRkZWQgbXkgZ3BnIGtleS4gV2UgYWxzbyBzaG91bGQgc2lnbiBvdXIgcmVsZWFzZXMgRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuNCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS40IHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgZ3JlZ29yCiAgICAgICAgOgogICAgICAgIFsxLjRdIAogICAgICAgICAgICBBZGRlZCBzdHViIGNsYXNzIGZvciB0YWIuYWMqIHVzZWNhc2VzLiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgIGFkZDwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4gYWRkCiAgICAgICAgYnkKICAgICAgICByb2t1CiAgICAgICAgOgogICAgICAgIFtdIAogICAgICAgICAgICBUYWdnaW5nIHRoZSBBcGFjaGUgTGVueWEgMS4yLjEgcmVsZWFzZSBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgIHJlbW92ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4gcmVtb3ZlCiAgICAgICAgYnkKICAgICAgICByb2t1CiAgICAgICAgOgogICAgICAgIFtdIAogICAgICAgICAgICByZW1vdmluZzogdXNlZCB3cm9uZyBrdXB1IGFuZCBieGUgcmV2cwogRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuMiB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS4yIHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgcm9rdQogICAgICAgIDoKICAgICAgICBbMS4yXSAKICAgICAgICAgICAgVXVwcywgdXNlZCB0aGUgd3JvbmcgcmV2aXNpb24gRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuMiB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS4yIHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgcm9rdQogICAgICAgIDoKICAgICAgICBbMS4yXSAKICAgICAgICAgICAgVXVwcywgdXNlZCB0aGUgd3JvbmcgcmV2aXNpb24gRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0ICBhZGQ8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+IGFkZAogICAgICAgIGJ5CiAgICAgICAgcm9rdQogICAgICAgIDoKICAgICAgICBbXSAKICAgICAgICAgICAgVGFnZ2luZyB0aGUgQXBhY2hlIExlbnlhIDEuMi4xIHJlbGVhc2UgRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuMiB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS4yIHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgcm9rdQogICAgICAgIDoKICAgICAgICBbMS4yXSAKICAgICAgICAgICAgUHJlcGFyaW5nIDEuMi4xIHRhZyBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS4yIHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjIgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICByb2t1CiAgICAgICAgOgogICAgICAgIFsxLjJdIAogICAgICAgICAgICBTd2l0Y2hlZCB0byBDb2Nvb24gMi4xLjUuMSwgc2luY2UgdGhpcyB3aWxsIGJlIHRoZSBzaGlwcGVkIHZlcnNpb24gaW4gMS4yLjEgRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuMiB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS4yIHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgcm9rdQogICAgICAgIDoKICAgICAgICBbMS4yXSAKICAgICAgICAgICAgSW5jbHVkaW5nIHNwZWNpYWwgcmV2aXNpb25zIG9mIGt1cHUgYW5kIGJ4ZS4gRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuNCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS40IHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgZ3JlZ29yCiAgICAgICAgOgogICAgICAgIFsxLjRdIAogICAgICAgICAgICBSZWZhY3RvcmVkIHRhYi5tZXRhIGluaXRpYWxpemF0aW9uIGNvZGUgIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjQgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuNCB1cGRhdGUKICAgICAgICBieQogICAgICAgIGdyZWdvcgogICAgICAgIDoKICAgICAgICBbMS40XSAKICAgICAgICAgICAgQWRkZWQgdGFiLm92ZXJ2aWV3IHVzZWNhc2UsIGV4dGVuZGVkIFNpdGVVc2VjYXNlIHRvIHByb3ZpZGUgbW9yZSB2YWx1ZXMgRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuNCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS40IHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgZ3JlZ29yCiAgICAgICAgOgogICAgICAgIFsxLjRdIAogICAgICAgICAgICBDaGFuZ2VkIFJlc291cmNlc01hbmFnZXIgaW52b2NhdGlvbiB0byBnbyB2aWEgRG9jdW1lbnQuZ2V0UmVzb3VyY2VzTWFuYWdlcigpIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjQgcmVtb3ZlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuNCByZW1vdmUKICAgICAgICBieQogICAgICAgIGdyZWdvcgogICAgICAgIDoKICAgICAgICBbMS40XSAKICAgICAgICAgICAgUmVtb3ZlZCBVcGxvYWRIZWxwZXIgKHJlcGxhY2VkIGJ5IFJlc291cmNlc01hbmFnZXIpIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjQgcmVtb3ZlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuNCByZW1vdmUKICAgICAgICBieQogICAgICAgIGdyZWdvcgogICAgICAgIDoKICAgICAgICBbMS40XSAKICAgICAgICAgICAgUmVmYWN0b3JlZCBzaXRlLWFyZWEgdXNlY2FzZXMgdGhhdCBhcmUgZGlzcGxheWVkIGluIGEgdGFiIHRvIGhhdmUgdGhlIG5hbWluZyBjb252ZW50aW9uIHRhYi4qIApBZGRlZCBzZXBlcmF0ZSB2aWV3IHBpcGVsaW5lIGZvciB0aG9zZSB1c2VjYXNlcywgcGx1cyBhcmJpdHJhdGlvbiBjb2RlIGluIHVzZWNhc2VzLmpzIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjQgYWRkPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuNCBhZGQKICAgICAgICBieQogICAgICAgIGdyZWdvcgogICAgICAgIDoKICAgICAgICBbMS40XSAKICAgICAgICAgICAgUmVmYWN0b3JlZCBzaXRlLWFyZWEgdXNlY2FzZXMgdGhhdCBhcmUgZGlzcGxheWVkIGluIGEgdGFiIHRvIGhhdmUgdGhlIG5hbWluZyBjb252ZW50aW9uIHRhYi4qIApBZGRlZCBzZXBlcmF0ZSB2aWV3IHBpcGVsaW5lIGZvciB0aG9zZSB1c2VjYXNlcywgcGx1cyBhcmJpdHJhdGlvbiBjb2RlIGluIHVzZWNhc2VzLmpzIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjQgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuNCB1cGRhdGUKICAgICAgICBieQogICAgICAgIGdyZWdvcgogICAgICAgIDoKICAgICAgICBbMS40XSAKICAgICAgICAgICAgUmVmYWN0b3JlZCBSZXNvdXJjZXNNYW5hZ2VyLCBhZGRlZCBhZGRSZXNvdXJjZSBtZXRob2QuCkJhc2VkIFJlc291cmNlc01hbmFnZXIgb24gRHVibGluQ29yZS4gCkFkZGVkIGdldFJlc291cmNlc01hbmFnZXIoKSB0byBEb2N1bWVudCBpbnRlcmZhY2UuCkFkZGVkIEFzc2V0cyB1c2VjYXNlLgpJbXByb3ZlZCB0aGUgYXNzZXRzIEpYIHZpZXcuCkNoYW5nZWQgYWxsIGNhbGxlcnMgb2YgUmVzb3VyY2VNYW5hZ2VyIHRvIHVzZSBnZXRSZXNvdXJjZXNNYW5hZ2VyKCkgRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuNCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS40IHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgZ3JlZ29yCiAgICAgICAgOgogICAgICAgIFsxLjRdIAogICAgICAgICAgICBSZW1vdmVkIGR1cGxpY2F0ZSBSZXNvdXJjZU5vdEZvdW5kIGV4Y2VwdGlvbiBzZWxlY3RvciAoaXQgaXMgYWxyZWFkeSBkZWZpbmVkIGJ5IENvY29vbikgRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuNCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS40IHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgZ3JlZ29yCiAgICAgICAgOgogICAgICAgIFsxLjRdIAogICAgICAgICAgICBNYWRlIGxpY2Vuc2UgaGVhZGVyIGNvbnNpc3RlbnQgRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuNCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS40IHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgZ3JlZ29yCiAgICAgICAgOgogICAgICAgIFsxLjRdIAogICAgICAgICAgICBSZW1vdmVkIGVtcHR5IGNvbXBvbmVudCBkZWZpbml0aW9ucyBmcm9tIGFsbCBzaXRlbWFwcyBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS40IHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjQgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBncmVnb3IKICAgICAgICA6CiAgICAgICAgWzEuNF0gCiAgICAgICAgICAgIFVwZ3JhZGVkIENvY29vbiB2ZXJzaW9uIHRvIDIuMS42IGluIHB1YmxpY2F0aW9uIHNjcmVlbnMgRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuNCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS40IHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgZ3JlZ29yCiAgICAgICAgOgogICAgICAgIFsxLjRdIAogICAgICAgICAgICBNb3ZlZCBleGNlcHRpb24gc2VsZWN0b3JzIHRvIHRoZSByb290IHNpdGVtYXAgRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuNCByZW1vdmU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS40IHJlbW92ZQogICAgICAgIGJ5CiAgICAgICAgZ3JlZ29yCiAgICAgICAgOgogICAgICAgIFsxLjRdIAogICAgICAgICAgICBSZW1vdmVkIE9TQ09NIHB1YmxpY2F0aW9uLCB3aGljaCB3aWxsIGNvbnRpbnVlIHRvIGJlIGF2YWlsYWJsZSBmcm9tIGh0dHA6Ly9vc2NvbS5vcmcuIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjIgcmVtb3ZlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuMiByZW1vdmUKICAgICAgICBieQogICAgICAgIGdyZWdvcgogICAgICAgIDoKICAgICAgICBbMS4yXSAKICAgICAgICAgICAgUmVtb3ZlZCBPU0NPTSBwdWJsaWNhdGlvbiwgd2hpY2ggd2lsbCBjb250aW51ZSB0byBiZSBhdmFpbGFibGUgZnJvbSBodHRwOi8vb3Njb20ub3JnLiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS40IGFkZDwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjQgYWRkCiAgICAgICAgYnkKICAgICAgICBncmVnb3IKICAgICAgICA6CiAgICAgICAgWzEuNF0gCiAgICAgICAgICAgIEFkZGVkIHN0dWIgdXNlY2FzZXMgZm9yIGxvZ2luLCBjcmVhdGUgYW5kIG1vdmUuIEFkZGVkIHdlbGwta25vd24gdXNlY2FzZSBuYW1lcy4gRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuNCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS40IHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgZ3JlZ29yCiAgICAgICAgOgogICAgICAgIFsxLjRdIAogICAgICAgICAgICAgRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuNCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS40IHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgZ3JlZ29yCiAgICAgICAgOgogICAgICAgIFsxLjRdIAogICAgICAgICAgICBSZW1vdmVkIHVubmVjZXNzYXJ5IGRlZmluaXRpb25zIGZyb20gdXNlY2FzZS54bWFwIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjQgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuNCB1cGRhdGUKICAgICAgICBieQogICAgICAgIGdyZWdvcgogICAgICAgIDoKICAgICAgICBbMS40XSAKICAgICAgICAgICAgSW1wcm92ZWQgbGF5b3V0IG9mIHNpdGUgYXJlYSBKWCB2aWV3cyBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS40IHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjQgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBncmVnb3IKICAgICAgICA6CiAgICAgICAgWzEuNF0gCiAgICAgICAgICAgIFJlZmFjdG9yZWQgSXRlcmF0aXZlSFRNTENyYXdsZXIgdG8gaW1wbGVtZW50IENvbmZpZ3VyYWJsZSBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS40IHJlbW92ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjQgcmVtb3ZlCiAgICAgICAgYnkKICAgICAgICBncmVnb3IKICAgICAgICA6CiAgICAgICAgWzEuNF0gCiAgICAgICAgICAgIFJlbW92ZWQgU1NJIGNsYXNzIHdoaWNoIGhhcyBiZWVuIGRlcHJlY2F0ZWQgc2luY2UgMS4wIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjQgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuNCB1cGRhdGUKICAgICAgICBieQogICAgICAgIGdyZWdvcgogICAgICAgIDoKICAgICAgICBbMS40XSAKICAgICAgICAgICAgTWlncmF0ZWQgcGlwZWxpbmVzIHRvIHRoZSBDb2Nvb24gWGluY2x1ZGVUcmFuc2Zvcm1lciBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS40IHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjQgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBncmVnb3IKICAgICAgICA6CiAgICAgICAgWzEuNF0gCiAgICAgICAgICAgIFJlZmFjdG9yZWQgUmV2aXNpb25Db250cm9sbGVyIHRvIG5vIGxvbmdlciByZWx5IG9uIHRoZSBkZXByZWNhdGVkIFhQU091dHB1dFN0cmVhbSBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS40IHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjQgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBncmVnb3IKICAgICAgICA6CiAgICAgICAgWzEuNF0gCiAgICAgICAgICAgIFJlZmFjdG9yZWQgUkNNTCB0byBubyBsb25nZXIgcmVseSBvbiB0aGUgZGVwcmVjYXRlZCBYUG9pbnRlckZhY3RvcnkgRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuNCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS40IHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgZ3JlZ29yCiAgICAgICAgOgogICAgICAgIFsxLjRdIAogICAgICAgICAgICBSZWZhY3RvcmVkIE5ld0Jsb2dFbnRyeUNyZWF0b3IgdG8gbm8gbG9uZ2VyIHJlbHkgb24gdGhlIGRlcHJlY2F0ZWQgRE9NVXRpbCBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS40IHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjQgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBncmVnb3IKICAgICAgICA6CiAgICAgICAgWzEuNF0gCiAgICAgICAgICAgIEZpeGVkIGJyb2tlbiByZXZpc2lvbnMgdGFiIChpdCB3YXMgdXNpbmcgYSBubyBsb25nZXIgZXhpc3RpbmcgbWV0aG9kIGNhbGwpIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjQgYWRkPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuNCBhZGQKICAgICAgICBieQogICAgICAgIGdyZWdvcgogICAgICAgIDoKICAgICAgICBbMS40XSAKICAgICAgICAgICAgUmVuYW1lZCB0d28gdXNlY2FzZXMgdG8gbWFrZSB0aGUgbmFtaW5nIGNvbnNpc3RlbnQgRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuNCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS40IHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgZ3JlZ29yCiAgICAgICAgOgogICAgICAgIFsxLjRdIAogICAgICAgICAgICBEZXByZWNhdGVkIERlbGVnYXRpbmdBdXRoZW50aWNhdG9yQWN0aW9uIGluIGZhdm91ciBvZiBMb2dpbiB1c2VjYXNlIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjQgYWRkPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuNCBhZGQKICAgICAgICBieQogICAgICAgIGdyZWdvcgogICAgICAgIDoKICAgICAgICBbMS40XSAKICAgICAgICAgICAgQWRkZWQgKGN1cnJlbnRseSBpbmFjdGl2ZSkgTG9naW4gdXNlY2FzZSBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS40IGFkZDwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjQgYWRkCiAgICAgICAgYnkKICAgICAgICBncmVnb3IKICAgICAgICA6CiAgICAgICAgWzEuNF0gCiAgICAgICAgICAgIEFkZGVkIChjdXJyZW50bHkgaW5hY3RpdmUpIExvZ2luIHVzZWNhc2UgRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuNCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS40IHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgZ3JlZ29yCiAgICAgICAgOgogICAgICAgIFsxLjRdIAogICAgICAgICAgICBFeHBvc2VkIHRoZSBDb250ZXh0IGluIHRoZSBBYnN0cmFjdGxVc2VjYXNlIHdpdGggYSBnZXR0ZXIgbWV0aG9kIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjQgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuNCB1cGRhdGUKICAgICAgICBieQogICAgICAgIGdyZWdvcgogICAgICAgIDoKICAgICAgICBbMS40XSAKICAgICAgICAgICAgRXhwb3NlZCB0aGUgQWNjZXNzQ29udHJvbGxlciBpbiB0aGUgQWNjZXNzQ29udHJvbFVzZWNhc2Ugd2l0aCBhIGdldHRlciBtZXRob2QgRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuNCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS40IHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgZ3JlZ29yCiAgICAgICAgOgogICAgICAgIFsxLjRdIAogICAgICAgICAgICBTZXQgZW9sLXN0eWxlIGFuZCBrZXl3b3JkcyBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS40IHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjQgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBncmVnb3IKICAgICAgICA6CiAgICAgICAgWzEuNF0gCiAgICAgICAgICAgIFJlbW92ZSBrZXl3b3JkcyBmcm9tIGJpbmFyeSBmaWxlcyBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS40IHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjQgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBncmVnb3IKICAgICAgICA6CiAgICAgICAgWzEuNF0gCiAgICAgICAgICAgIFNldCBzdm46a2V5d29yZHMgYW5kIHN2bjplb2wtc3R5bGUgY29uc2lzdGVudGx5IERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjQgYWRkPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuNCBhZGQKICAgICAgICBieQogICAgICAgIGdyZWdvcgogICAgICAgIDoKICAgICAgICBbMS40XSAKICAgICAgICAgICAgQWRkZWQgbWV0YWRhdGEgYW5kIGdlbmVyaWMgc2l0ZSB1c2VjYXNlIChhcyBhIHN1cGVyY2xhc3MgZm9yIGFsbCBzaXRlLWFyZWEgdXNlY2FzZXMpIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjQgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuNCB1cGRhdGUKICAgICAgICBieQogICAgICAgIGdyZWdvcgogICAgICAgIDoKICAgICAgICBbMS40XSAKICAgICAgICAgICAgUmVtb3ZlZCBkdXBsaWNhdGUgbWVudSBlbnRyaWVzIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjQgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuNCB1cGRhdGUKICAgICAgICBieQogICAgICAgIGdyZWdvcgogICAgICAgIDoKICAgICAgICBbMS40XSAKICAgICAgICAgICAgQWRkZWQgbGljZW5zZSBhbmQgZmlsZTovLyBwcmVmaXggdG8gaW1hZ2UgcHJldmlldyBqYXZhc2NyaXB0IGNvZGUgRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuNCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS40IHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgZ3JlZ29yCiAgICAgICAgOgogICAgICAgIFsxLjRdIAogICAgICAgICAgICBBZGRlZCBpbWFnZSBwcmV2aWV3IHRvIGFzc2V0IHVzZWNhc2UgRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuNCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS40IHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgZ3JlZ29yCiAgICAgICAgOgogICAgICAgIFsxLjRdIAogICAgICAgICAgICBBZGRlZCBjb21tZW50cyBhbmQgbGljZW5zZSB0byB1c2VjYXNlcy5qcyBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS40IGFkZDwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjQgYWRkCiAgICAgICAgYnkKICAgICAgICBncmVnb3IKICAgICAgICA6CiAgICAgICAgWzEuNF0gCiAgICAgICAgICAgIEFkZGVkIGZpcnN0IGRyYWZ0IG9mIEpYIHRlbXBsYXRlcyBmb3Igc2l0ZSB1c2VjYXNlcyBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS40IGFkZDwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjQgYWRkCiAgICAgICAgYnkKICAgICAgICBncmVnb3IKICAgICAgICA6CiAgICAgICAgWzEuNF0gCiAgICAgICAgICAgIEFkZGVkIGZpcnN0IGRyYWZ0IG9mIEpYIHRlbXBsYXRlcyBmb3Igc2l0ZSB1c2VjYXNlcyBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS40IHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjQgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBncmVnb3IKICAgICAgICA6CiAgICAgICAgWzEuNF0gCiAgICAgICAgICAgIEFkZGVkIGRlcHJlY2F0aW9uIG5vdGUgdG8gV3JpdGVEQ1BhcmFtZXRlcnNUYXNrIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjQgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuNCB1cGRhdGUKICAgICAgICBieQogICAgICAgIGdyZWdvcgogICAgICAgIDoKICAgICAgICBbMS40XSAKICAgICAgICAgICAgSW1wcm92ZWQgamF2YWRvY3MgZm9yIERvY3VtZW50VXNlY2FzZSBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS40IHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjQgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICByb2t1CiAgICAgICAgOgogICAgICAgIFsxLjRdIAogICAgICAgICAgICBNZXJnZWQgZnJvbSAxLjIueCBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS4yIHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjIgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICByb2t1CiAgICAgICAgOgogICAgICAgIFsxLjJdIAogICAgICAgICAgICBMaW5lIGJyZWFrIHRlc3QgRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuNCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS40IHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgcm9rdQogICAgICAgIDoKICAgICAgICBbMS40XSAKICAgICAgICAgICAgW21lcmdlZCBmcm9tIDEuMi54XSBBcHBsaWVkIHBhdGNoIHNlbnQgYnkgSHViZXJ0dXMgR3JvZXBwZXIuIEZpeGVzIGluYWNjZXNzaWJsZSBsaW5rcyBvZiBicmVhZCBjcnVtYnMuIApTZWUgYnVnIGh0dHA6Ly9pc3N1ZXMuYXBhY2hlLm9yZy9idWd6aWxsYS9zaG93X2J1Zy5jZ2k/aWQ9MzI2MTAgRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuMiB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS4yIHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgcm9rdQogICAgICAgIDoKICAgICAgICBbMS4yXSAKICAgICAgICAgICAgQXBwbGllZCBwYXRjaCBzZW50IGJ5IEh1YmVydHVzIEdyb2VwcGVyLiBGaXhlcyBpbmFjY2Vzc2libGUgbGlua3Mgb2YgYnJlYWQgY3J1bWJzLiAKU2VlIGJ1ZyBodHRwOi8vaXNzdWVzLmFwYWNoZS5vcmcvYnVnemlsbGEvc2hvd19idWcuY2dpP2lkPTMyNjEwIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjQgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuNCB1cGRhdGUKICAgICAgICBieQogICAgICAgIGVkaXRoCiAgICAgICAgOgogICAgICAgIFsxLjRdIAogICAgICAgICAgICBGaXggdGhlIHVyaSwgYmVjYXVzZSB0aGUgcHVibGljYXRpb25JZCBoYXMgbm8gJy8nIGF0IHRoZSBiZWdpbm5pbmcgRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuMiB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS4yIHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgZWRpdGgKICAgICAgICA6CiAgICAgICAgWzEuMl0gCiAgICAgICAgICAgIHNldCB0aGUgeGxpbmsgbmFtZXNwYWNlIGV2ZW4gaWYgdGhlIGRvY3VtZW50IGFscmVhZHkgZXhpc3QsIGJlY2F1c2UgdGhlIG5hbWVzcGFjZSBhcmVlbHNlIHJlbW92ZWQgRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuNCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS40IHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgZ3JlZ29yCiAgICAgICAgOgogICAgICAgIFsxLjRdIAogICAgICAgICAgICBGaXhlZCB0eXBvIHRvIG1ha2UgU1ZOIHZlcnNpb24gdGFncyB3b3JrLiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS40IHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjQgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBncmVnb3IKICAgICAgICA6CiAgICAgICAgWzEuNF0gCiAgICAgICAgICAgIERlZmluZWQgc291cmNlIHJlc29sdmVyIGluIGxlbnlhLnh0ZXN0IGFuZCByZW1vdmVkIFRvbWNhdCBwYXRoIGRlcGVuZGVuY2llcyBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS40IHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjQgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBncmVnb3IKICAgICAgICA6CiAgICAgICAgWzEuNF0gCiAgICAgICAgICAgIFJlbW92ZWQgVG9tY2F0LXNwZWNpZmljIGNvbnRleHQgcHJlZml4IGZyb20gQW50VGFza1Rlc3QgRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuNCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS40IHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgZ3JlZ29yCiAgICAgICAgOgogICAgICAgIFsxLjRdIAogICAgICAgICAgICBSZW1vdmVkIGRlcGVuZGVuY2llcyBvbiBUb21jYXQgZm9yIHRoZSB0ZXN0IGJ1aWxkLCBmaXhlZCBzb21lIGFudCBwcm9wZXJ0aWVzIHJlbGF0ZWQgdG8gdGhlIHRlc3QgYnVpbGQuIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjQgcmVtb3ZlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuNCByZW1vdmUKICAgICAgICBieQogICAgICAgIGFuZHJlYXMKICAgICAgICA6CiAgICAgICAgWzEuNF0gCiAgICAgICAgICAgIHJlbW92ZWQgb2xkIGFkbWluIFhTUCBhbmQgWFNMVCBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS40IHJlbW92ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjQgcmVtb3ZlCiAgICAgICAgYnkKICAgICAgICBhbmRyZWFzCiAgICAgICAgOgogICAgICAgIFsxLjRdIAogICAgICAgICAgICByZW1vdmVkIG9sZCBhZG1pbiBYU1AgYW5kIFhTTFQgRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuNCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS40IHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgYW5kcmVhcwogICAgICAgIDoKICAgICAgICBbMS40XSAKICAgICAgICAgICAgdXNlciBncm91cHMgYXMgSlggdGVtcGxhdGUgdXNlY2FzZSBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS40IHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjQgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBhbmRyZWFzCiAgICAgICAgOgogICAgICAgIFsxLjRdIAogICAgICAgICAgICB1c2VyIGdyb3VwcyBhcyBKWCB0ZW1wbGF0ZSB1c2VjYXNlIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjQgYWRkPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuNCBhZGQKICAgICAgICBieQogICAgICAgIGFuZHJlYXMKICAgICAgICA6CiAgICAgICAgWzEuNF0gCiAgICAgICAgICAgIHVzZXIgZ3JvdXBzIGFzIEpYIHRlbXBsYXRlIHVzZWNhc2UgRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuNCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS40IHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgYW5kcmVhcwogICAgICAgIDoKICAgICAgICBbMS40XSAKICAgICAgICAgICAgdXNlciBncm91cHMgYXMgSlggdGVtcGxhdGUgdXNlY2FzZSBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS40IGFkZDwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjQgYWRkCiAgICAgICAgYnkKICAgICAgICBhbmRyZWFzCiAgICAgICAgOgogICAgICAgIFsxLjRdIAogICAgICAgICAgICB1c2VyIGdyb3VwcyBhcyBKWCB0ZW1wbGF0ZSB1c2VjYXNlIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjQgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuNCB1cGRhdGUKICAgICAgICBieQogICAgICAgIGFuZHJlYXMKICAgICAgICA6CiAgICAgICAgWzEuNF0gCiAgICAgICAgICAgIHVzZXIgZ3JvdXBzIGFzIEpYIHRlbXBsYXRlIHVzZWNhc2UgRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuNCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS40IHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgYW5kcmVhcwogICAgICAgIDoKICAgICAgICBbMS40XSAKICAgICAgICAgICAgZml4ZWQgc29tZSBjb2RlIHN0eWxlIGlzc3VlcywgcGFyYW1ldGVycyBhcyBvYmplY3RzIGFsbG93ZWQgRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuNCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS40IHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgYW5kcmVhcwogICAgICAgIDoKICAgICAgICBbMS40XSAKICAgICAgICAgICAgZml4ZWQgc29tZSBjb2RlIHN0eWxlIGlzc3VlcyBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS40IHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjQgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBhbmRyZWFzCiAgICAgICAgOgogICAgICAgIFsxLjRdIAogICAgICAgICAgICBhZGRlZCBzb21lIHBhc3N3b3JkIHVzZWNhc2UgbWVzc2FnZXMgRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuNCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS40IHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgYW5kcmVhcwogICAgICAgIDoKICAgICAgICBbMS40XSAKICAgICAgICAgICAgYWRkZWQgc29tZSBwYXNzd29yZCB1c2VjYXNlIG1lc3NhZ2VzIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjQgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuNCB1cGRhdGUKICAgICAgICBieQogICAgICAgIGFuZHJlYXMKICAgICAgICA6CiAgICAgICAgWzEuNF0gCiAgICAgICAgICAgIGNoYW5nZVBhc3N3b3JkIHVzZWNhc2UgYWRkZWQgRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuNCBhZGQ8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS40IGFkZAogICAgICAgIGJ5CiAgICAgICAgYW5kcmVhcwogICAgICAgIDoKICAgICAgICBbMS40XSAKICAgICAgICAgICAgY2hhbmdlUGFzc3dvcmQgbWlncmF0ZWQgdG8gSlggdGVtcGxhdGUgRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuNCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS40IHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgYW5kcmVhcwogICAgICAgIDoKICAgICAgICBbMS40XSAKICAgICAgICAgICAgY2hhbmdlUGFzc3dvcmQgbWlncmF0ZWQgdG8gSlggdGVtcGxhdGUgRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuNCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS40IHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgYW5kcmVhcwogICAgICAgIDoKICAgICAgICBbMS40XSAKICAgICAgICAgICAgcmUtb3JnYW5pemVkIGFkbWluIHVzZWNhc2VzIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjQgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuNCB1cGRhdGUKICAgICAgICBieQogICAgICAgIGFuZHJlYXMKICAgICAgICA6CiAgICAgICAgWzEuNF0gCiAgICAgICAgICAgIHJlLW9yZ2FuaXplZCBhZG1pbiB1c2VjYXNlcyBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS40IHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjQgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBhbmRyZWFzCiAgICAgICAgOgogICAgICAgIFsxLjRdIAogICAgICAgICAgICByZS1vcmdhbml6ZWQgYWRtaW4gdXNlY2FzZXMgRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuNCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS40IHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgYW5kcmVhcwogICAgICAgIDoKICAgICAgICBbMS40XSAKICAgICAgICAgICAgcmUtb3JnYW5pemVkIGFkbWluIHVzZWNhc2VzIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjQgYWRkPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuNCBhZGQKICAgICAgICBieQogICAgICAgIGFuZHJlYXMKICAgICAgICA6CiAgICAgICAgWzEuNF0gCiAgICAgICAgICAgIHJlLW9yZ2FuaXplZCBhZG1pbiB1c2VjYXNlcyBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS40IHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjQgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBhbmRyZWFzCiAgICAgICAgOgogICAgICAgIFsxLjRdIAogICAgICAgICAgICB1c2luZyBoZWFkaW5nIHN0eWxlIGluc3RlYWQgb2YgcGFyYWdyYXBoIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjQgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuNCB1cGRhdGUKICAgICAgICBieQogICAgICAgIGFuZHJlYXMKICAgICAgICA6CiAgICAgICAgWzEuNF0gCiAgICAgICAgICAgIHJlbW92ZWQgdW51c2VkIGRlY2xhcmF0aW9ucyBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS40IHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjQgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBhbmRyZWFzCiAgICAgICAgOgogICAgICAgIFsxLjRdIAogICAgICAgICAgICB1cGRhdGVkIHVzZWNhc2UgbmFtZXMgRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuNCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS40IHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgYW5kcmVhcwogICAgICAgIDoKICAgICAgICBbMS40XSAKICAgICAgICAgICAgdXNpbmcgYXR0cmlidXRlIHZhbHVlIHRlbXBsYXRlcyB0byByZWR1Y2UgWFNMVCB2ZXJib3NpdHkgRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuNCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS40IHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgYW5kcmVhcwogICAgICAgIDoKICAgICAgICBbMS40XSAKICAgICAgICAgICAgYWRkZWQgYWRtaW4gYXJlYSB1c2VjYXNlIGRlY2xhcmF0aW9ucyBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS40IHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjQgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBhbmRyZWFzCiAgICAgICAgOgogICAgICAgIFsxLjRdIAogICAgICAgICAgICByZW1vdmVkIGRlcHJlY2F0ZWQgc3R1ZmYgZnJvbSBsZW55YS5yb2xlcyBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS40IHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjQgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBhbmRyZWFzCiAgICAgICAgOgogICAgICAgIFsxLjRdIAogICAgICAgICAgICBjb252ZXJ0IGluaXRpYWxpemUoKSB0byB0ZW1wbGF0ZSBtZXRob2QgRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuNCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS40IHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgYW5kcmVhcwogICAgICAgIDoKICAgICAgICBbMS40XSAKICAgICAgICAgICAgY2FsbGluZyB1c2VjYXNlLnhtYXAgZm9yIGNlcnRhaW4gYWRtaW4gYXJlYSB1c2VjYXNlcyBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS40IHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjQgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBhbmRyZWFzCiAgICAgICAgOgogICAgICAgIFsxLjRdIAogICAgICAgICAgICByZW1vdmluZyB1bnVzZWQgY29tcG9uZW50IGRlY2xhcmF0aW9ucyBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS40IGFkZDwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjQgYWRkCiAgICAgICAgYnkKICAgICAgICBhbmRyZWFzCiAgICAgICAgOgogICAgICAgIFsxLjRdIAogICAgICAgICAgICBpbml0aWFsIGNoZWNraW4gb2YgamF2YS1iYXNlZCBhY2Nlc3MgY29udHJvbCB1c2VjYXNlZXMgRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuNCBhZGQ8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS40IGFkZAogICAgICAgIGJ5CiAgICAgICAgYW5kcmVhcwogICAgICAgIDoKICAgICAgICBbMS40XSAKICAgICAgICAgICAgaW5pdGlhbCBjaGVja2luIG9mIGphdmEtYmFzZWQgYWNjZXNzIGNvbnRyb2wgdXNlY2FzZWVzIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjQgYWRkPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuNCBhZGQKICAgICAgICBieQogICAgICAgIGFuZHJlYXMKICAgICAgICA6CiAgICAgICAgWzEuNF0gCiAgICAgICAgICAgIGFkZGVkIFRvcGljTWFwU2l0ZU1hbmFnZXIgb3V0bGluZSBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS40IHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjQgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBhbmRyZWFzCiAgICAgICAgOgogICAgICAgIFsxLjRdIAogICAgICAgICAgICB1c2UgTlVMTCB0byBnZW5lcmF0ZSBOUEVzIGluc3RlYWQgb2YgRmlsZU5vdEZvdW5kRXhjZXB0aW9uIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjQgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuNCB1cGRhdGUKICAgICAgICBieQogICAgICAgIGFuZHJlYXMKICAgICAgICA6CiAgICAgICAgWzEuNF0gCiAgICAgICAgICAgIG1hZGUgdGVzdHMgY29tcGlsZSBhZ2FpbiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgRG9jcyBhZGQ8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+RG9jcyBhZGQKICAgICAgICBieQogICAgICAgIGdyZWdvcgogICAgICAgIDoKICAgICAgICBbRG9jc10gCiAgICAgICAgICAgIE1vdmVkIHJlc291cmNlLXR5cGVzIHRvIG1ha2UgdGhlbSBhIHByb3BlciBmb2xkZXIgaW4gdGhlIGRvY3VtZW50YXRpb24uIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCBEb2NzIHJlbW92ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj5Eb2NzIHJlbW92ZQogICAgICAgIGJ5CiAgICAgICAgZ3JlZ29yCiAgICAgICAgOgogICAgICAgIFtEb2NzXSAKICAgICAgICAgICAgTW92ZWQgcmVzb3VyY2UtdHlwZXMgdG8gbWFrZSB0aGVtIGEgcHJvcGVyIGZvbGRlciBpbiB0aGUgZG9jdW1lbnRhdGlvbi4gRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuNCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS40IHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgZ3JlZ29yCiAgICAgICAgOgogICAgICAgIFsxLjRdIAogICAgICAgICAgICBDb252ZXJ0ZWQgdGFicyB0byBzcGFjZXMuIFRoaXMgZml4ZXMgaHR0cDovL2lzc3Vlcy5hcGFjaGUub3JnL2J1Z3ppbGxhL3Nob3dfYnVnLmNnaT9pZD0zMjczOSBUaGFua3MgdG8gSm9zaWFzIFRob2VueS4gRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuMiB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS4yIHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgZ3JlZ29yCiAgICAgICAgOgogICAgICAgIFsxLjJdIAogICAgICAgICAgICBDb252ZXJ0ZWQgdGFicyB0byBzcGFjZXMuIFRoaXMgZml4ZXMgaHR0cDovL2lzc3Vlcy5hcGFjaGUub3JnL2J1Z3ppbGxhL3Nob3dfYnVnLmNnaT9pZD0zMjczOSBUaGFua3MgdG8gSm9zaWFzIFRob2VueS4gRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IFNpdGUgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPlNpdGUgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBncmVnb3IKICAgICAgICA6CiAgICAgICAgW1NpdGVdIAogICAgICAgICAgICBVcGRhdGVkIFhvcHVzIGRvY3VtZW50YXRpb24uIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCBTaXRlIHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj5TaXRlIHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgZ3JlZ29yCiAgICAgICAgOgogICAgICAgIFtTaXRlXSAKICAgICAgICAgICAgVXBkYXRlZCBlZGl0b3JzIGRvY3VtZW50YXRpb24uIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCBEb2NzIHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj5Eb2NzIHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgZ3JlZ29yCiAgICAgICAgOgogICAgICAgIFtEb2NzXSAKICAgICAgICAgICAgVXBkYXRlZCBYb3B1cyBkb2N1bWVudGF0aW9uIHdpdGggcG9pbnRlcnMgZnJvbSBOZWxlIFZvZ2VsLiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgU2l0ZSBhZGQ8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+U2l0ZSBhZGQKICAgICAgICBieQogICAgICAgIGdyZWdvcgogICAgICAgIDoKICAgICAgICBbU2l0ZV0gCiAgICAgICAgICAgIEFkZGVkIG1pc3NpbmcgaWNvbiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgU2l0ZSB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+U2l0ZSB1cGRhdGUKICAgICAgICBieQogICAgICAgIGdyZWdvcgogICAgICAgIDoKICAgICAgICBbU2l0ZV0gCiAgICAgICAgICAgIFVwZGF0ZWQgc2l0ZSB3aXRoIGxhdGVzdCBjaGFuZ2VzLiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgU2l0ZSB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+U2l0ZSB1cGRhdGUKICAgICAgICBieQogICAgICAgIGdyZWdvcgogICAgICAgIDoKICAgICAgICBbU2l0ZV0gCiAgICAgICAgICAgIFVwZGF0ZWQgc2l0ZSB3aXRoIGxhdGVzdCBjaGFuZ2VzLiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgRG9jcyB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+RG9jcyB1cGRhdGUKICAgICAgICBieQogICAgICAgIGdyZWdvcgogICAgICAgIDoKICAgICAgICBbRG9jc10gCiAgICAgICAgICAgIEluY3JlYXNlZCBkZWZhdWx0IG1lbW9yeSBhbGxvY2F0aW9uIGZvciBmb3JyZXN0IHRvIGF2b2lkIG91dCBvZiBtZW1vcnkgZXhjZXB0aW9ucy4gRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IERvY3MgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPkRvY3MgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBncmVnb3IKICAgICAgICA6CiAgICAgICAgW0RvY3NdIAogICAgICAgICAgICBVcGRhdGVkIHN0YXR1cy54bWwgZnJvbSBTVk4gbG9ncy4gRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IERvY3MgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPkRvY3MgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBncmVnb3IKICAgICAgICA6CiAgICAgICAgW0RvY3NdIAogICAgICAgICAgICBBZGRlZCBpbnN0cnVjdGlvbnMgdG8gY3JlYXRlIGNoYW5nZXMuaHRtbCBmcm9tIFNWTiBsb2dzLiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgRG9jcyB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+RG9jcyB1cGRhdGUKICAgICAgICBieQogICAgICAgIGdyZWdvcgogICAgICAgIDoKICAgICAgICBbRG9jc10gCiAgICAgICAgICAgIEltcHJvdmVkIHN2bjJjaGFuZ2VzIHN0eWxlc2hlZXQgdG8gc2hvdyB0aGUgdmVyc2lvbiBhbmQgbGluayB0byBhIGRpZmYgb2YgdGhlIGNoYW5nZS4gRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IERvY3MgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPkRvY3MgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBncmVnb3IKICAgICAgICA6CiAgICAgICAgW0RvY3NdIAogICAgICAgICAgICBGaXhlZCBpbnN0YWxsIGRvY3VtZW50IHZhbGlkYXRpb24gZXJyb3JzLiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS4yIHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjIgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBncmVnb3IKICAgICAgICA6CiAgICAgICAgWzEuMl0gCiAgICAgICAgICAgIFJlYWRkZWQgZGVwZW5kZW5jeSBvbiBMdWNlbmUgYmxvY2sgYXMgdGhlIExlbnlhIHNlYXJjaCBYU1AgcmVsaWVzIG9uIGl0LiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS40IGFkZDwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjQgYWRkCiAgICAgICAgYnkKICAgICAgICBncmVnb3IKICAgICAgICA6CiAgICAgICAgWzEuNF0gCiAgICAgICAgICAgIFJlbmFtZWQgWFBTSW5jbHVkZSB0byBYSW5jbHVkZSBhbmQgWFBTQXNzZW1ibGVyIHRvIFhJbmNsdWRlSW1wbC4gRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuNCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS40IHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgZ3JlZ29yCiAgICAgICAgOgogICAgICAgIFsxLjRdIAogICAgICAgICAgICBSZW1vdmVkIG9ic29sZXRlIHhodG1sLWlzbyBzZXJpYWxpemVyIGZyb20gdGhlIGJsb2cgc2l0ZW1hcC4gRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IERvY3MgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPkRvY3MgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBncmVnb3IKICAgICAgICA6CiAgICAgICAgW0RvY3NdIAogICAgICAgICAgICBDaGFuZ2VkIGFudCBpbnN0YWxsIHRvIGJ1aWxkIGluc3RhbGwgaW4gdGhlIGluc3RhbGwgaW5zdHJ1Y3Rpb25zLiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS40IHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjQgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBncmVnb3IKICAgICAgICA6CiAgICAgICAgWzEuNF0gCiAgICAgICAgICAgIFJlYWRkZWQgZGVwZW5kZW5jeSBvbiBMdWNlbmUgYmxvY2sgYXMgdGhlIExlbnlhIHNlYXJjaCBYU1AgcmVsaWVzIG9uIGl0LiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgRG9jcyB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+RG9jcyB1cGRhdGUKICAgICAgICBieQogICAgICAgIGdyZWdvcgogICAgICAgIDoKICAgICAgICBbRG9jc10gCiAgICAgICAgICAgIE1hZGUgaW5zdGFsbCBpbnN0cnVjdGlvbnMgY2xlYXJlciwgdGhhbmtzIHRvIGEgcGF0Y2ggYnkgSHViZXJ0dXMgR3JvZXBwZXIuIFRoaXMgcmVzb2x2ZXMgaHR0cDovL2lzc3Vlcy5hcGFjaGUub3JnL2J1Z3ppbGxhL3Nob3dfYnVnLmNnaT9pZD0zMjc2OCBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS40IHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjQgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBncmVnb3IKICAgICAgICA6CiAgICAgICAgWzEuNF0gCiAgICAgICAgICAgIEZpeGVkIHRoZSBjcmVhdG9yIHRlc3QgYnkgY2hhbmdpbmcgdGhlIHJlc291cmNlIHR5cGUgdG8geGh0bWwuIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjQgYWRkPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuNCBhZGQKICAgICAgICBieQogICAgICAgIGdyZWdvcgogICAgICAgIDoKICAgICAgICBbMS40XSAKICAgICAgICAgICAgQWRkZWQgbmV3IGNvbXBpbGUteHNwIHRhcmdldCB0byBwcmVjb21waWxlIFhTUC4gVGhpcyBjYW4gYmUgdXNlZCB0byBkZXRlY3QgZXJyb3JzIGluIFhTUCBmaWxlcyB0aGF0IHdvdWxkIG90aGVyd2lzZSBnbyB1bm5vdGljZWQuIFRoaXMgdXNlcyBjb2RlIHN1Ym1pdHRlZCBieSBTaW1vbiBNaWV0aCAoaHR0cDovL2lzc3Vlcy5hcGFjaGUub3JnL2J1Z3ppbGxhL3Nob3dfYnVnLmNnaT9pZD0yOTM2MCkgRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuNCBhZGQ8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS40IGFkZAogICAgICAgIGJ5CiAgICAgICAgZ3JlZ29yCiAgICAgICAgOgogICAgICAgIFsxLjRdIAogICAgICAgICAgICBBZGRlZCBuZXcgY29tcGlsZS14c3AgdGFyZ2V0IHRvIHByZWNvbXBpbGUgWFNQLiBUaGlzIGNhbiBiZSB1c2VkIHRvIGRldGVjdCBlcnJvcnMgaW4gWFNQIGZpbGVzIHRoYXQgd291bGQgb3RoZXJ3aXNlIGdvIHVubm90aWNlZC4gVGhpcyB1c2VzIGNvZGUgc3VibWl0dGVkIGJ5IFNpbW9uIE1pZXRoIChodHRwOi8vaXNzdWVzLmFwYWNoZS5vcmcvYnVnemlsbGEvc2hvd19idWcuY2dpP2lkPTI5MzYwKSBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS4yIHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjIgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICByb2t1CiAgICAgICAgOgogICAgICAgIFsxLjJdIAogICAgICAgICAgICBGaXhlZCBwYXRoIHRvIGxlZ2FsIGRpciBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS4yIHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjIgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICByb2t1CiAgICAgICAgOgogICAgICAgIFsxLjJdIAogICAgICAgICAgICBBZGRlZCBrdXB1IHRvIGJlIGJ1aWxkIGZvciBkaXN0LWJpbiB0YXJnZXQuCiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS4yIHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjIgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICByb2t1CiAgICAgICAgOgogICAgICAgIFsxLjJdIAogICAgICAgICAgICAqIEZpeGVkIHRhcmdldCBkaXN0LWJpbiA7IHJlbW92ZWQgY29weWluZyBvZiBlbmRvcnNlZCBsaWJzLCBzaW5jZSB0aGUKZm9sZGVyIGRvZXMgbm90IGV4aXN0IGFueW1vcmUKKiBleGNsdWRlZCBkaXN0IGZvbGRlciBmcm9tIGNvcHkgcHJvY2VzcwoKIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjIgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuMiB1cGRhdGUKICAgICAgICBieQogICAgICAgIHJva3UKICAgICAgICA6CiAgICAgICAgWzEuMl0gCiAgICAgICAgICAgIENoYW5naW5nIHRvIGt1cHUgMS4yIGJyYW5jaC4KR3VpZG8gV2VzZG9ycCBjcmVhdGVkIGl0IHllc3RlcmRheSBmcm9tIHRydW5rLgogRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuNCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS40IHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgZ3JlZ29yCiAgICAgICAgOgogICAgICAgIFsxLjRdIAogICAgICAgICAgICBSZW1vdmVkIGVtcHR5IHByb21pc2UgZnJvbSB0aGUgY29kZS4gRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuNCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS40IHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgZ3JlZ29yCiAgICAgICAgOgogICAgICAgIFsxLjRdIAogICAgICAgICAgICBSZW1vdmVkIGVtcHR5IHByb21pc2UgZnJvbSB0aGUgY29kZS4gRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuNCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS40IHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgZ3JlZ29yCiAgICAgICAgOgogICAgICAgIFsxLjRdIAogICAgICAgICAgICBBZGRlZCByZXNvdXJjZSB0eXBlIHRvIHRoZSBzaXRlIGFyZWEgb3ZlcnZpZXcgdGFiLiBUaGlzIGZpeGVzIGh0dHA6Ly9pc3N1ZXMuYXBhY2hlLm9yZy9idWd6aWxsYS9zaG93X2J1Zy5jZ2k/aWQ9MzI2MTUgRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuNCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS40IHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgbWljaGkKICAgICAgICA6CiAgICAgICAgWzEuNF0gCiAgICAgICAgICAgIGRvIG5vdCBidWlsZCBDb2Nvb24gZXZlcnkgdGltZSBkdXJpbmcgTGVueWEgYnVpbGQgRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuNCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS40IHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgbWljaGkKICAgICAgICA6CiAgICAgICAgWzEuNF0gCiAgICAgICAgICAgIGhhcmRjb2RlZCAxMjcuMC4wLjEgYWRkcmVzcyByZXBsYWNlZCBieSBzZXJ2ZXIgbmFtZSBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS40IHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjQgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBncmVnb3IKICAgICAgICA6CiAgICAgICAgWzEuNF0gCiAgICAgICAgICAgIFJlbW92ZWQgc2V0TGFuZ3VhZ2VUYWJzKCkgSmF2YXNjcmlwdCBmdW5jdGlvbiBmcm9tIHRoZSBzaXRlIHRyZWUuIEl0IHdhcyBubyBsb25nZXIgbmVlZGVkIGFuZCBjYXVzZWQgcHJvYmxlbXMgd2l0aCBzb21lIGxhbmd1YWdlIHNldHRpbmdzLiBBbHNvIG1hZGUgdGhlIHNpdGV0cmVlIGNvZGUgbW9yZSBkZWZlbnNpdmUgdG8gZ2V0IHJpZCBvZiBzb21lIEphdmFzY3JpcHQgZXJyb3JzIGluIHRoZSBpbnNlcnQgbGluayBwb3B1cC4gVGhhbmtzIHRvIEpvc2lhcyBUaG9lbnkgZm9yIHJlcG9ydGluZy4gRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuMiB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS4yIHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgZ3JlZ29yCiAgICAgICAgOgogICAgICAgIFsxLjJdIAogICAgICAgICAgICBSZW1vdmVkIHNldExhbmd1YWdlVGFicygpIEphdmFzY3JpcHQgZnVuY3Rpb24gZnJvbSB0aGUgc2l0ZSB0cmVlLiBJdCB3YXMgbm8gbG9uZ2VyIG5lZWRlZCBhbmQgY2F1c2VkIHByb2JsZW1zIHdpdGggc29tZSBsYW5ndWFnZSBzZXR0aW5ncy4gQWxzbyBtYWRlIHRoZSBzaXRldHJlZSBjb2RlIG1vcmUgZGVmZW5zaXZlIHRvIGdldCByaWQgb2Ygc29tZSBKYXZhc2NyaXB0IGVycm9ycyBpbiB0aGUgaW5zZXJ0IGxpbmsgcG9wdXAuIFRoYW5rcyB0byBKb3NpYXMgVGhvZW55IGZvciByZXBvcnRpbmcuIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjQgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuNCB1cGRhdGUKICAgICAgICBieQogICAgICAgIGdyZWdvcgogICAgICAgIDoKICAgICAgICBbMS40XSAKICAgICAgICAgICAgSW1wcm92ZWQgdGhlIHdhcm5pbmcgbWVzc2FnZSBpZiBLdXB1IGlzIG5vdCBpbnN0YWxsZWQgY29ycmVjdGx5LiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS4yIHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjIgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBncmVnb3IKICAgICAgICA6CiAgICAgICAgWzEuMl0gCiAgICAgICAgICAgIEltcHJvdmVkIHRoZSB3YXJuaW5nIG1lc3NhZ2UgaWYgS3VwdSBpcyBub3QgaW5zdGFsbGVkIGNvcnJlY3RseS4gRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuNCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS40IHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgZ3JlZ29yCiAgICAgICAgOgogICAgICAgIFsxLjRdIAogICAgICAgICAgICBBZGRlZCBmYWxsYmFjazovLyBwcm90b2NvbCB0byBtb3JlIHBpcGVsaW5lcy4gVGhpcyBlbmFibGVzIHRvIGVhc2lseSBvdmVyd3JpdGUgdGhlIGxvb2sgYW5kIGZlZWwgb2YgTGVueWEgYnkgcHJvdmlkaW5nIGN1c3RvbSBzdHlsZXNoZWV0cy4gRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuNCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS40IHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgZ3JlZ29yCiAgICAgICAgOgogICAgICAgIFsxLjRdIAogICAgICAgICAgICBTd2l0Y2hlZCBmcm9tIGRlcHJlY2F0ZWQgcmVzb2x2ZXIucmVzb2x2ZSgpIHRvIHJlc29sdmVyLnJlc29sdmVVUkkoKSBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS4yIHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjIgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBncmVnb3IKICAgICAgICA6CiAgICAgICAgWzEuMl0gCiAgICAgICAgICAgIFN3aXRjaGVkIGZyb20gZGVwcmVjYXRlZCByZXNvbHZlci5yZXNvbHZlKCkgdG8gcmVzb2x2ZXIucmVzb2x2ZVVSSSgpIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCBEb2NzIHJlbW92ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj5Eb2NzIHJlbW92ZQogICAgICAgIGJ5CiAgICAgICAgZ3JlZ29yCiAgICAgICAgOgogICAgICAgIFtEb2NzXSAKICAgICAgICAgICAgU3Vic3RhbnRpYWxseSBleHRlbmRlZCB0aGUgTGVueWEgcHJveHlpbmcgaG93dG8sIGFuZCBlbmFibGVkIHRoZSBzZWN0aW9uIG9uIHJlc291cmNlIHR5cGVzLiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgRG9jcyB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+RG9jcyB1cGRhdGUKICAgICAgICBieQogICAgICAgIGdyZWdvcgogICAgICAgIDoKICAgICAgICBbRG9jc10gCiAgICAgICAgICAgIEltcHJvdmVkIHRoZSBMdWNlbmUgZG9jdW1lbnRhdGlvbi4gRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IERvY3MgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPkRvY3MgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBncmVnb3IKICAgICAgICA6CiAgICAgICAgW0RvY3NdIAogICAgICAgICAgICBVcGRhdGVkIGluc3RhbGwgaW5zdHJ1Y3Rpb25zIHRvIHJlZmxlY3QgdGhhdCBDb2Nvb24gMi4xLjYgaXMgbm93IHRoZSByZXF1aXJlZCB2ZXJzaW9uLiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS4yIHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjIgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBncmVnb3IKICAgICAgICA6CiAgICAgICAgWzEuMl0gCiAgICAgICAgICAgIFNldCBjb2Nvb24uc3JjLmRpciB0byBjb2Nvb24tMi4xLjYgYnkgZGVmYXVsdCBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgRG9jcyB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+RG9jcyB1cGRhdGUKICAgICAgICBieQogICAgICAgIGdyZWdvcgogICAgICAgIDoKICAgICAgICBbRG9jc10gCiAgICAgICAgICAgIEFkZGVkIHR3byBsaXZlIHNpdGVzIHRvIHRoZSBsaXN0LiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS4yIHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjIgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBncmVnb3IKICAgICAgICA6CiAgICAgICAgWzEuMl0gCiAgICAgICAgICAgIFJlbW92ZWQgc3VwcG9ydCBmb3IgaHNxbGRiIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjQgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuNCB1cGRhdGUKICAgICAgICBieQogICAgICAgIGdyZWdvcgogICAgICAgIDoKICAgICAgICBbMS40XSAKICAgICAgICAgICAgUmVtb3ZlZCBzdXBwb3J0IGZvciBoc3FsZGIgRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuNCBhZGQ8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS40IGFkZAogICAgICAgIGJ5CiAgICAgICAgZ3JlZ29yCiAgICAgICAgOgogICAgICAgIFsxLjRdIAogICAgICAgICAgICBBZGRlZCBwcmV2aWV3IGZvciBpbWFnZXMgdG8gYXNzZXQgdXBsb2FkIHNjcmVlbnMgYW5kIGFzc2V0IGxpc3RzLiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS40IHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjQgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBncmVnb3IKICAgICAgICA6CiAgICAgICAgWzEuNF0gCiAgICAgICAgICAgIFJlbW92ZWQgc3VwcG9ydCBmb3IgaHNxbGRiIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjIgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuMiB1cGRhdGUKICAgICAgICBieQogICAgICAgIGdyZWdvcgogICAgICAgIDoKICAgICAgICBbMS4yXSAKICAgICAgICAgICAgUmVtb3ZlZCBzdXBwb3J0IGZvciBoc3FsZGIgRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuMiB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS4yIHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgZ3JlZ29yCiAgICAgICAgOgogICAgICAgIFsxLjJdIAogICAgICAgICAgICBNb3ZlZCBzdHlsaW5nIGluZm9ybWF0aW9uIGZyb20gaW5saW5lIHRvIENTUy4gRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuNCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS40IHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgZ3JlZ29yCiAgICAgICAgOgogICAgICAgIFsxLjRdIAogICAgICAgICAgICBNb3ZlZCBzdHlsaW5nIGluZm9ybWF0aW9uIGZyb20gaW5saW5lIHRvIENTUy4gRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuNCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS40IHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgZ3JlZ29yCiAgICAgICAgOgogICAgICAgIFsxLjRdIAogICAgICAgICAgICBNYWtlIGJ1aWxkaW5nIG9mIENvY29vbiBjb25kaWRhdGlvbmFsIHRvIGFsbG93IEd1bXAgdG8gc2lkZXN0ZXAgaXQuIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjQgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuNCB1cGRhdGUKICAgICAgICBieQogICAgICAgIGdyZWdvcgogICAgICAgIDoKICAgICAgICBbMS40XSAKICAgICAgICAgICAgTWFkZSB0aGUgc3RhcnQgcGFnZSBmb3IgdGhlIGV4cG9ydCB0YXJnZXQgdmFsaWQuIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjIgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuMiB1cGRhdGUKICAgICAgICBieQogICAgICAgIGdyZWdvcgogICAgICAgIDoKICAgICAgICBbMS4yXSAKICAgICAgICAgICAgTWFkZSB0aGUgc3RhcnQgcGFnZSBmb3IgdGhlIGV4cG9ydCB0YXJnZXQgdmFsaWQuIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjQgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuNCB1cGRhdGUKICAgICAgICBieQogICAgICAgIGdyZWdvcgogICAgICAgIDoKICAgICAgICBbMS40XSAKICAgICAgICAgICAgUmVtb3ZlZCByZWxpYW5jZSBvZiBleHBvcnQgdGFyZ2V0cyBvbiBUb21jYXQuIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjIgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuMiB1cGRhdGUKICAgICAgICBieQogICAgICAgIGdyZWdvcgogICAgICAgIDoKICAgICAgICBbMS4yXSAKICAgICAgICAgICAgUmVtb3ZlZCByZWxpYW5jZSBvZiBleHBvcnQgdGFyZ2V0cyBvbiBUb21jYXQuIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjQgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuNCB1cGRhdGUKICAgICAgICBieQogICAgICAgIGdyZWdvcgogICAgICAgIDoKICAgICAgICBbMS40XSAKICAgICAgICAgICAgTWFkZSBJZGVudGl0eSBzZXJpYWxpemFibGUgKGZvcndhcmQtcG9ydGVkIGZyb20gMS4yIGJyYW5jaCkgRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuMiB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS4yIHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgZ3JlZ29yCiAgICAgICAgOgogICAgICAgIFsxLjJdIAogICAgICAgICAgICBSZW1vdmVkIHNwdXJpb3VzIGRlYnVnZ2luZyBzdGF0ZW1lbnRzIGFuZCBpbXByb3ZlZCBsYW5ndWFnZSBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS4yIHJlbW92ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjIgcmVtb3ZlCiAgICAgICAgYnkKICAgICAgICBncmVnb3IKICAgICAgICA6CiAgICAgICAgWzEuMl0gCiAgICAgICAgICAgIFJlbW92ZWQgdGhlIGxpbmtzIHNhbXBsZSBwYWdlIGZyb20gdGhlIGRlZmF1bHQgcHVibGljYXRpb24gdW50aWwgdGhlIGRvY3R5cGUgaXMgY29tcGxldGVkLiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS40IHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjQgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBncmVnb3IKICAgICAgICA6CiAgICAgICAgWzEuNF0gCiAgICAgICAgICAgIENoYW5nZWQgdGV4dCBvZiB0aGUgbG9naW4gc2NyZWVuIHRvIGV4cGxpY2l0bHkgbWVudGlvbiBib3RoIGRlZmF1bHQgdXNlcnMuIFRoaXMgcmVzb2x2ZXMgaHR0cDovL2lzc3Vlcy5hcGFjaGUub3JnL2J1Z3ppbGxhL3Nob3dfYnVnLmNnaT9pZD0zMjU3MCBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS4yIHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjIgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBncmVnb3IKICAgICAgICA6CiAgICAgICAgWzEuMl0gCiAgICAgICAgICAgIENoYW5nZWQgdGV4dCBvZiB0aGUgbG9naW4gc2NyZWVuIHRvIGV4cGxpY2l0bHkgbWVudGlvbiBib3RoIGRlZmF1bHQgdXNlcnMuIFRoaXMgcmVzb2x2ZXMgaHR0cDovL2lzc3Vlcy5hcGFjaGUub3JnL2J1Z3ppbGxhL3Nob3dfYnVnLmNnaT9pZD0zMjU3MCBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS40IGFkZDwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjQgYWRkCiAgICAgICAgYnkKICAgICAgICBncmVnb3IKICAgICAgICA6CiAgICAgICAgWzEuNF0gCiAgICAgICAgICAgIEFkZGVkIHBhdGNoIGJ5IE1hcmMgS3Vlc3RlciB0byBlbmFibGUgcGVyLWRvY3R5cGUgQ1NTLiBUaGlzIHJlc29sdmVzIGh0dHA6Ly9pc3N1ZXMuYXBhY2hlLm9yZy9idWd6aWxsYS9zaG93X2J1Zy5jZ2k/aWQ9MjkzMjUgRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IERvY3MgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPkRvY3MgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBncmVnb3IKICAgICAgICA6CiAgICAgICAgW0RvY3NdIAogICAgICAgICAgICBGaXhlZCBhIHR5cG8gaW4gdGhlIGRvY3VtZW50YXRpb24uIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjQgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuNCB1cGRhdGUKICAgICAgICBieQogICAgICAgIGdyZWdvcgogICAgICAgIDoKICAgICAgICBbMS40XSAKICAgICAgICAgICAgQ2hhbmdlZCBwcm9wZXJ0eSBuYW1lIGZyb20gImd1bXAuYnVpbGQiIHRvICJndW1wLnNraXBjb2Nvb25idWlsZCIgdG8gYXZvaWQgY2xhc2hlcy4gRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuNCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS40IHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgZ3JlZ29yCiAgICAgICAgOgogICAgICAgIFsxLjRdIAogICAgICAgICAgICBNYWtlIGJ1aWxkaW5nIG9mIENvY29vbiBjb25kaWRhdGlvbmFsIHRvIGFsbG93IEd1bXAgdG8gc2lkZXN0ZXAgaXQuIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjQgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuNCB1cGRhdGUKICAgICAgICBieQogICAgICAgIGdyZWdvcgogICAgICAgIDoKICAgICAgICBbMS40XSAKICAgICAgICAgICAgQWRkZWQgc3VwcG9ydCBmb3IgTWFjcm9tZWRpYSBGbGFzaCB0byB0aGUgaW5zZXJ0IGltYWdlIHNjcmVlbi4gRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuMiB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS4yIHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgZ3JlZ29yCiAgICAgICAgOgogICAgICAgIFsxLjJdIAogICAgICAgICAgICBBZGRlZCBzdXBwb3J0IGZvciBNYWNyb21lZGlhIEZsYXNoIHRvIHRoZSBpbnNlcnQgaW1hZ2Ugc2NyZWVuLiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgRG9jcyB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+RG9jcyB1cGRhdGUKICAgICAgICBieQogICAgICAgIHRob3JzdGVuCiAgICAgICAgOgogICAgICAgIFtEb2NzXSAKICAgICAgICAgICAgY2hhbmdlZCBpbnN0YWxsIG5vdGUgZm9yIGZvcnJlc3QgRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IFNpdGUgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPlNpdGUgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICB0aG9yc3RlbgogICAgICAgIDoKICAgICAgICBbU2l0ZV0gCiAgICAgICAgICAgIGRlcGxveWVkIHRoZSBzaXRlIHdpdGggbGFzdCBjaGFuZ2VzIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjIgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuMiB1cGRhdGUKICAgICAgICBieQogICAgICAgIG1pY2hpCiAgICAgICAgOgogICAgICAgIFsxLjJdIAogICAgICAgICAgICBTdHJpbmcgZml4ZWQgc3VjaCB0aGF0IGl0IGFjdHVhbGx5IGNvbXBpbGVzIGJlY2F1c2UgSSBtaXhlZCB1cCB2ZXJzaW9ucyBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgRG9jcyB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+RG9jcyB1cGRhdGUKICAgICAgICBieQogICAgICAgIGdyZWdvcgogICAgICAgIDoKICAgICAgICBbRG9jc10gCiAgICAgICAgICAgIEFwcGx5IHBhdGNoIGJ5IEh1YmVydHVzIEdyb2VwcGVyIHRvIGJldHRlciBkZXNjcmliZSB0aGUgcGF0Y2ggcHJlcGFyYXRpb24gcHJvY2VkdXJlLiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS4yIHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjIgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBtaWNoaQogICAgICAgIDoKICAgICAgICBbMS4yXSAKICAgICAgICAgICAgaGFyZGNvZGVkIDEyNy4wLjAuMSByZXBsYWNlZCBieSBzZXJ2ZXJOYW1lIHN1Y2ggYWxzbyBXZWJMb2dpYyBTZXJ2ZXIgd29ya3MgcmUgU2NoZWR1bGluZyBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS4yIHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjIgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBtaWNoaQogICAgICAgIDoKICAgICAgICBbMS4yXSAKICAgICAgICAgICAgbmFtZSBmaXhlZCBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS4yIHJlbW92ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjIgcmVtb3ZlCiAgICAgICAgYnkKICAgICAgICBlZGl0aAogICAgICAgIDoKICAgICAgICBbMS4yXSAKICAgICAgICAgICAgVGhlIG5hbWVzcGFjZXMgYXJlIG5lZWRlZCBpbiBvcmRlciB0aGF0IHRoZSBYUFNBc3NlbWJsZXIgd29yayB3aXRoIHRoZSBuZXcgeGFsYW4gRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuMiB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS4yIHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgZWRpdGgKICAgICAgICA6CiAgICAgICAgWzEuMl0gCiAgICAgICAgICAgIFRoZSBuYW1lc3BhY2VzIGFyZSBuZWVkZWQgaW4gb3JkZXIgdGhhdCB0aGUgWFBTQXNzZW1ibGVyIHdvcmsgd2l0aCB0aGUgbmV3IHhhbGFuIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjQgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuNCB1cGRhdGUKICAgICAgICBieQogICAgICAgIGdyZWdvcgogICAgICAgIDoKICAgICAgICBbMS40XSAKICAgICAgICAgICAgQXBwbHkgcGF0Y2ggYnkgRG91ZyBDaGVzdG51dCB0byBtYWtlIEJYRSB3b3JrIHdpdGggMi4xLjYuIFRoaXMgcmVzb2x2ZXMgaHR0cDovL2lzc3Vlcy5hcGFjaGUub3JnL2J1Z3ppbGxhL3Nob3dfYnVnLmNnaT9pZD0zMjU3NCBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgRG9jcyB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+RG9jcyB1cGRhdGUKICAgICAgICBieQogICAgICAgIGdyZWdvcgogICAgICAgIDoKICAgICAgICBbRG9jc10gCiAgICAgICAgICAgIENsYXJpZmllZCBpbnN0YWxsIGluc3RydWN0aW9ucy4gVGhhbmtzIHRvIE1hcnRpbiBMdWV0aGkuIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjQgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuNCB1cGRhdGUKICAgICAgICBieQogICAgICAgIGdyZWdvcgogICAgICAgIDoKICAgICAgICBbMS40XSAKICAgICAgICAgICAgVGhlIFhNTCBzZXJpYWxpemVyIGlzIG5vdyBzZXQgdG8gVVRGLTggYnkgZGVmYXVsdCwgdGhlcmVmb3JlIGNsZWFuaW5nIG91dCByZWZlcmVuY2VzIHRvIHhtbC11dGYtOCBzZXJpYWxpemVycy4gVGhpcyBmaXhlcyBodHRwOi8vaXNzdWVzLmFwYWNoZS5vcmcvYnVnemlsbGEvc2hvd19idWcuY2dpP2lkPTMyNTU0LCB0aGFua3MgdG8gRG91ZyBDaGVzdG51dC4gRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IFNpdGUgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPlNpdGUgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICB0aG9yc3RlbgogICAgICAgIDoKICAgICAgICBbU2l0ZV0gCiAgICAgICAgICAgIGRlcGxveWVkIGNoYW5nZXMgdGhhdCBoYXZlIGJlZW4gZG9uZSBieSBjb21taXR0ZXJzIHRoYXQgbm90IGhhdmUgZGVwbG95ZWQgdGhlIHNpdGUgYWZ0ZXJ3YXJkcyBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgRG9jcyB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+RG9jcyB1cGRhdGUKICAgICAgICBieQogICAgICAgIHRzY2hsYWJhY2gKICAgICAgICA6CiAgICAgICAgW0RvY3NdIAogICAgICAgICAgICByZW1vdmVkICImbHQ7c3Ryb25nJmd0OyIgZm9yIFRvcnN0ZW4gU2NobGFiYWNoIGFmZXJ0IGhhdmluZyByZWFkIGF0IHRoZSBib3R0b20gb2YgdGhlIHBhZ2Ugd2hhdCB0aGUgdHlwZSBtZWFucyBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgRG9jcyB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+RG9jcyB1cGRhdGUKICAgICAgICBieQogICAgICAgIHRzY2hsYWJhY2gKICAgICAgICA6CiAgICAgICAgW0RvY3NdIAogICAgICAgICAgICBhZGRlZCAiVG9yc3RlbiBTY2hsYWJhY2giICh0c2NobGFiYWNoIGF0IGFwYWNoZS5vcmcpIHRvIHRoZSBsaXN0IG9mIGFjdGl2ZSBjb21taXR0ZXJzIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCBEb2NzIHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj5Eb2NzIHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgYW5kcmVhcwogICAgICAgIDoKICAgICAgICBbRG9jc10gCiAgICAgICAgICAgIGFkZGVkIHVuaWJlLmNoIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjQgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuNCB1cGRhdGUKICAgICAgICBieQogICAgICAgIGFuZHJlYXMKICAgICAgICA6CiAgICAgICAgWzEuNF0gCiAgICAgICAgICAgIHVzaW5nIHhzbDplbGVtZW50IGFnYWluIHNpbmNlIGl0IHdvcmtzIGF0IGxlYXN0IHdpdGggWGFsYW4gRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuNCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS40IHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgZ3JlZ29yCiAgICAgICAgOgogICAgICAgIFsxLjRdIAogICAgICAgICAgICBGaXhlZCB1bmRlY2xhcmVkIHZhcmlhYmxlcyBpbiBmbG93c2NyaXB0LiBUaGFua3MgdG8gRG91ZyBDaGVzdG51dCBhbmQgSmVyZW15IFRvcnJlcy4gVGhpcyByZXNvbHZlcyBodHRwOi8vaXNzdWVzLmFwYWNoZS5vcmcvYnVnemlsbGEvc2hvd19idWcuY2dpP2lkPTMyNTQ0IERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjIgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuMiB1cGRhdGUKICAgICAgICBieQogICAgICAgIGdyZWdvcgogICAgICAgIDoKICAgICAgICBbMS4yXSAKICAgICAgICAgICAgRml4ZWQgdW5kZWNsYXJlZCB2YXJpYWJsZXMgaW4gZmxvd3NjcmlwdC4gVGhhbmtzIHRvIERvdWcgQ2hlc3RudXQgYW5kIEplcmVteSBUb3JyZXMuIFRoaXMgcmVzb2x2ZXMgaHR0cDovL2lzc3Vlcy5hcGFjaGUub3JnL2J1Z3ppbGxhL3Nob3dfYnVnLmNnaT9pZD0zMjU0NCBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgU2FuZGJveCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+U2FuZGJveCB1cGRhdGUKICAgICAgICBieQogICAgICAgIG1pY2hpCiAgICAgICAgOgogICAgICAgIFtTYW5kYm94XSAKICAgICAgICAgICAgZGVidWdnaW5nIGltcHJvdmVkIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCBTYW5kYm94IHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj5TYW5kYm94IHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgbWljaGkKICAgICAgICA6CiAgICAgICAgW1NhbmRib3hdIAogICAgICAgICAgICBsb2dnaW5nIG9mZiBhZGRlZCBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS4yIHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjIgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBlZGl0aAogICAgICAgIDoKICAgICAgICBbMS4yXSAKICAgICAgICAgICAgRml4IHRoZSB1cmksIGJlY2F1c2UgdGhlIHB1YmxpY2F0aW9uIGlkIGhhcyBubyAvIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjIgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuMiB1cGRhdGUKICAgICAgICBieQogICAgICAgIGFuZHJlYXMKICAgICAgICA6CiAgICAgICAgWzEuMl0gCiAgICAgICAgICAgIGFsbG93aW5nIDUtY2hhcmFjdGVyIGxhbmd1YWdlIGV4dGVuc2lvbnMgaW5zdGVhZCBvZiA0LWNoYXJhY3RlciBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgRG9jcyB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+RG9jcyB1cGRhdGUKICAgICAgICBieQogICAgICAgIGdyZWdvcgogICAgICAgIDoKICAgICAgICBbRG9jc10gCiAgICAgICAgICAgIEV4dGVuZGVkIEJYRSBkb2N1bWVudGF0aW9uLiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS40IHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjQgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBncmVnb3IKICAgICAgICA6CiAgICAgICAgWzEuNF0gCiAgICAgICAgICAgIEZpeCBzZXR1cCBtZXRob2Qgb2YgRG9jdW1lbnRJbmRleFRyYW5zZm9ybWVyIHRvIHdvcmsgd2l0aCBDb2Nvb24gMi4xLjYgRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuMiB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS4yIHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgZ3JlZ29yCiAgICAgICAgOgogICAgICAgIFsxLjJdIAogICAgICAgICAgICBGaXggc2V0dXAgbWV0aG9kIG9mIERvY3VtZW50SW5kZXhUcmFuc2Zvcm1lciB0byB3b3JrIHdpdGggQ29jb29uIDIuMS42IERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCBEb2NzIHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj5Eb2NzIHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgZ3JlZ29yCiAgICAgICAgOgogICAgICAgIFtEb2NzXSAKICAgICAgICAgICAgTmV3IGxpdmUgc2l0ZSBhZGRlZC4gRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IERvY3MgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPkRvY3MgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBncmVnb3IKICAgICAgICA6CiAgICAgICAgW0RvY3NdIAogICAgICAgICAgICBMaXZlIHNpdGUgYWRkZWQuIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjIgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuMiB1cGRhdGUKICAgICAgICBieQogICAgICAgIGFudG9uaW8KICAgICAgICA6CiAgICAgICAgWzEuMl0gCiAgICAgICAgICAgIEFkZCBtaXNpbmcga2V5cyBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS4yIHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjIgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBhbnRvbmlvCiAgICAgICAgOgogICAgICAgIFsxLjJdIAogICAgICAgICAgICBBZGQgJmFtcDsjMTYwOyBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS4yIHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjIgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBhbnRvbmlvCiAgICAgICAgOgogICAgICAgIFsxLjJdIAogICAgICAgICAgICBVc2UgdGhlIHNhbWUga2V5IGFzIGkxOG4gZmlsZXMgRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IERvY3MgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPkRvY3MgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBncmVnb3IKICAgICAgICA6CiAgICAgICAgW0RvY3NdIAogICAgICAgICAgICBJbXByb3ZlZCB0aGUgQlhFIGRvY3VtZW50YXRpb24uIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjQgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuNCB1cGRhdGUKICAgICAgICBieQogICAgICAgIGFudG9uaW8KICAgICAgICA6CiAgICAgICAgWzEuNF0gCiAgICAgICAgICAgIEZpeCB0eXBvLiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgRG9jcyB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+RG9jcyB1cGRhdGUKICAgICAgICBieQogICAgICAgIGdyZWdvcgogICAgICAgIDoKICAgICAgICBbRG9jc10gCiAgICAgICAgICAgIExhbmd1YWdlIGltcHJvdmVtZW50cyBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS4yIGFkZDwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjIgYWRkCiAgICAgICAgYnkKICAgICAgICBncmVnb3IKICAgICAgICA6CiAgICAgICAgWzEuMl0gCiAgICAgICAgICAgIE1hZGUgc2VhcmNoLnByb3BlcnRpZXMgd29yayBvdXQgb2YgdGhlIGJveC4gRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuNCBhZGQ8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS40IGFkZAogICAgICAgIGJ5CiAgICAgICAgZ3JlZ29yCiAgICAgICAgOgogICAgICAgIFsxLjRdIAogICAgICAgICAgICBNYWRlIHNlYXJjaC5wcm9wZXJ0aWVzIHdvcmsgb3V0IG9mIHRoZSBib3guIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCBEb2NzIHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj5Eb2NzIHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgZ3JlZ29yCiAgICAgICAgOgogICAgICAgIFtEb2NzXSAKICAgICAgICAgICAgRXhwYW5kZWQgTHVjZW5lIGRvY3VtZW50YXRpb24uIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCBEb2NzIHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj5Eb2NzIHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgZ3JlZ29yCiAgICAgICAgOgogICAgICAgIFtEb2NzXSAKICAgICAgICAgICAgUmVwbGFjZSByZWZlcmVuY2VzIHRvIGNvY29vbi1sZW55YSBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS4yIHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjIgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBncmVnb3IKICAgICAgICA6CiAgICAgICAgWzEuMl0gCiAgICAgICAgICAgIEltcHJvdmUgdXNhYmlsaXR5IG9mIGVkaXQgbWVudS4gVGhhbmtzIHRvIEplYW4tUGllcnJlIExlSmFjcS4gVGhpcyByZXNvbHZlcyBodHRwOi8vaXNzdWVzLmFwYWNoZS5vcmcvYnVnemlsbGEvc2hvd19idWcuY2dpP2lkPTMyNTE0IERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjQgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuNCB1cGRhdGUKICAgICAgICBieQogICAgICAgIGdyZWdvcgogICAgICAgIDoKICAgICAgICBbMS40XSAKICAgICAgICAgICAgSW1wcm92ZSB1c2FiaWxpdHkgb2YgZWRpdCBtZW51LiBUaGFua3MgdG8gSmVhbi1QaWVycmUgTGVKYWNxLiBUaGlzIHJlc29sdmVzIGh0dHA6Ly9pc3N1ZXMuYXBhY2hlLm9yZy9idWd6aWxsYS9zaG93X2J1Zy5jZ2k/aWQ9MzI1MTQgRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuNCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS40IHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgZ3JlZ29yCiAgICAgICAgOgogICAgICAgIFsxLjRdIAogICAgICAgICAgICBTZXQgZGVmYXVsdCBwdWJsaWNhdGlvbiBzZXJpYWxpemF0aW9uIHRvIGh0bWwgdG8gZGVhbCB3aXRoIHJlbmRlcmluZyBwcm9ibGVtcyBmcm9tIHNwdXJpb3VzIG5hbWVzcGFjZSBkZWZpbml0aW9ucyB3aGVuIHVzaW5nIFhIVE1MLiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS40IHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjQgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBncmVnb3IKICAgICAgICA6CiAgICAgICAgWzEuNF0gCiAgICAgICAgICAgIEZpeGVkIGVkaXQgZmxvd3NjcmlwdCB0byBubyBsb25nZXIgdXNlIHRoZSBnZXRTb3VyY2VVUkkgbWV0aG9kLiBUaGFua3MgdG8gRG91ZyBDaGVzdG51dC4gRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuNCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS40IHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgZ3JlZ29yCiAgICAgICAgOgogICAgICAgIFsxLjRdIAogICAgICAgICAgICBTd2l0Y2ggdG8gSFRNTCAvIFhIVE1MIC8gWE1MIHNlcmlhbGl6ZXJzIGZyb20gdGhlIHNlcmlhbGl6ZXJzIGJsb2NrLiBUaGlzIGltcHJvdmVzIGNvbXBsaWFuY2Ugd2l0aCBVVEYtOCBhbmQgZml4ZXMgdmFyaW91cyBzZXJpYWxpemF0aW9uIGJ1Z3MuIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjIgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuMiB1cGRhdGUKICAgICAgICBieQogICAgICAgIGFudG9uaW8KICAgICAgICA6CiAgICAgICAgWzEuMl0gCiAgICAgICAgICAgIFdlIGRvbid0IHVzZSBwaXp6YSBjb21waWxlci4gRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuMiB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS4yIHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgYW50b25pbwogICAgICAgIDoKICAgICAgICBbMS4yXSAKICAgICAgICAgICAgRml4IHR5cG8gRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuMiByZW1vdmU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS4yIHJlbW92ZQogICAgICAgIGJ5CiAgICAgICAgYW50b25pbwogICAgICAgIDoKICAgICAgICBbMS4yXSAKICAgICAgICAgICAgVXNlIGNvY29vbiBsb2c0aiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS4yIHJlbW92ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjIgcmVtb3ZlCiAgICAgICAgYnkKICAgICAgICBhbnRvbmlvCiAgICAgICAgOgogICAgICAgIFsxLjJdIAogICAgICAgICAgICBXZSBkb24ndCBpbmNsdWRlIHhhbGFuIGluIHRoZSBkaXN0cmlidXRpb24gRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuMiB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS4yIHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgYW50b25pbwogICAgICAgIDoKICAgICAgICBbMS4yXSAKICAgICAgICAgICAgVXNlIGNvY29vbiBYQ29uZlRvb2xUYXNrLmNsYXNzIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjIgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuMiB1cGRhdGUKICAgICAgICBieQogICAgICAgIGFudG9uaW8KICAgICAgICA6CiAgICAgICAgWzEuMl0gCiAgICAgICAgICAgIFJlbW92ZSB1bnVzZWQgbG9jYWwgdmFyaWFibGVzLiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS4yIHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjIgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBhbnRvbmlvCiAgICAgICAgOgogICAgICAgIFsxLjJdIAogICAgICAgICAgICBGaXggbGVueWEgd2lraSBsaW5rIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjQgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuNCB1cGRhdGUKICAgICAgICBieQogICAgICAgIGdyZWdvcgogICAgICAgIDoKICAgICAgICBbMS40XSAKICAgICAgICAgICAgQWRhcHRlZCBwdWJsaXNoZWQgY2hlY2sgdG8gQVBJIGNoYW5nZXMgaW4gMS40LiBUaGFua3MgdG8gRG91ZyBDaGVzdG51dC4gRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuNCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS40IHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgZ3JlZ29yCiAgICAgICAgOgogICAgICAgIFsxLjRdIAogICAgICAgICAgICBTZXQgZW5jb2RpbmcgdG8gVVRGLTggZm9yIGFkbWluIHBpcGVsaW5lcyBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS40IHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjQgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBncmVnb3IKICAgICAgICA6CiAgICAgICAgWzEuNF0gCiAgICAgICAgICAgIFJlbW92ZSBlbmNvZGluZyBmcm9tIHN0eWxlc2hlZXQgRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuNCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS40IHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgYW50b25pbwogICAgICAgIDoKICAgICAgICBbMS40XSAKICAgICAgICAgICAgU2V0IGVuYWJsZS51cGxvYWRzPWZhbHNlIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjIgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuMiB1cGRhdGUKICAgICAgICBieQogICAgICAgIGFudG9uaW8KICAgICAgICA6CiAgICAgICAgWzEuMl0gCiAgICAgICAgICAgIEVjbGlwc2UgcHJvamVjdCBub3cgdXNlIGNvY29vbiAyLjEuNiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS40IHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjQgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBhbnRvbmlvCiAgICAgICAgOgogICAgICAgIFsxLjRdIAogICAgICAgICAgICBVcGRhdGUgaW5mbyBiYXNlZCBpbiBjb2Nvb24gMi4xLjYgRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuNCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS40IHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgYW50b25pbwogICAgICAgIDoKICAgICAgICBbMS40XSAKICAgICAgICAgICAgU2V0IGphdmEgMS40IGFzIHNvdXJjZSB2bSBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS4yIHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjIgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBhbnRvbmlvCiAgICAgICAgOgogICAgICAgIFsxLjJdIAogICAgICAgICAgICBSZW1vdmUgdHJhaWxpbmcgc3BhY2VzIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjQgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuNCB1cGRhdGUKICAgICAgICBieQogICAgICAgIGFudG9uaW8KICAgICAgICA6CiAgICAgICAgWzEuNF0gCiAgICAgICAgICAgIENvbW1lbnQgaHNxbGRiIHBvcnQgdmFyaWFibGUuIEl0IGlzIG5vdCBuZWVkZWQuIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjQgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuNCB1cGRhdGUKICAgICAgICBieQogICAgICAgIGFudG9uaW8KICAgICAgICA6CiAgICAgICAgWzEuNF0gCiAgICAgICAgICAgIEFsbG93IHRvIHJ1biBpbiBjeWd3aW4gRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuNCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS40IHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgYW50b25pbwogICAgICAgIDoKICAgICAgICBbMS40XSAKICAgICAgICAgICAgVXNlIGlzc3VlLmFwYWNoZS5vcmcgKyByZW1vdmUgdHJhaWxpbmcgc3BhY2VzLiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS4yIHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjIgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBhbnRvbmlvCiAgICAgICAgOgogICAgICAgIFsxLjJdIAogICAgICAgICAgICBSZW1vdmUgdW51c2VkIGltcG9ydHMuIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjIgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuMiB1cGRhdGUKICAgICAgICBieQogICAgICAgIGFudG9uaW8KICAgICAgICA6CiAgICAgICAgWzEuMl0gCiAgICAgICAgICAgIEZpeCB0eXBvLiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS4yIHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjIgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBhbnRvbmlvCiAgICAgICAgOgogICAgICAgIFsxLjJdIAogICAgICAgICAgICBtdXN0IHJldHVybiBhIHZhbHVlLiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS4yIHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjIgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBhbnRvbmlvCiAgICAgICAgOgogICAgICAgIFsxLjJdIAogICAgICAgICAgICBEZWZpbmUgeGFsYW4gYXMgdGhlIGRlZmF1bHQgeHNsdCB0cmFuZm9ybWVyIGFnYWluIChydW4gd2l0aCBjb2Nvb24tMi4xLjYpIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjIgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuMiB1cGRhdGUKICAgICAgICBieQogICAgICAgIGFudG9uaW8KICAgICAgICA6CiAgICAgICAgWzEuMl0gCiAgICAgICAgICAgIFJlbW92ZSB1bnVzZWQgaW1wb3J0cy4gRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuMiB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS4yIHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgYW50b25pbwogICAgICAgIDoKICAgICAgICBbMS4yXSAKICAgICAgICAgICAgUmVtb3ZlIHVudXNlZCBpbXBvcnQgRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuMiB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS4yIHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgYW50b25pbwogICAgICAgIDoKICAgICAgICBbMS4yXSAKICAgICAgICAgICAgQ29tbWVudCBoc3FsZGIgcG9ydCB2YXJpYWJsZS4gU2V0IGNvY29uIGRpciB0byAyLjEuNiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS4yIHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjIgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBhbnRvbmlvCiAgICAgICAgOgogICAgICAgIFsxLjJdIAogICAgICAgICAgICBVcGRhdGUgaW5mbyBiYXNlZCBpbiBjb2Nvb24gMi4xNiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS4yIHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjIgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBhbnRvbmlvCiAgICAgICAgOgogICAgICAgIFsxLjJdIAogICAgICAgICAgICBTZXQgamF2YSAxLjQgYXMgc291cmNlIHZtIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjIgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuMiB1cGRhdGUKICAgICAgICBieQogICAgICAgIGFudG9uaW8KICAgICAgICA6CiAgICAgICAgWzEuMl0gCiAgICAgICAgICAgIEFsbG93IHRvIHJ1biBpbiBjeWd3aW4gRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuMiB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS4yIHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgYW50b25pbwogICAgICAgIDoKICAgICAgICBbMS4yXSAKICAgICAgICAgICAgVXNlIGlzc3VlLmFwYWNoZS5vcmcgRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuNCBhZGQ8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS40IGFkZAogICAgICAgIGJ5CiAgICAgICAgcm9rdQogICAgICAgIDoKICAgICAgICBbMS40XSAKICAgICAgICAgICAgQWRkZWQga3VwdSBidWlsZCBzY3JpcHQgRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuMiB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS4yIHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgcm9rdQogICAgICAgIDoKICAgICAgICBbMS4yXSAKICAgICAgICAgICAgZm9ybWF0dGluZyBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS4yIHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjIgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICByb2t1CiAgICAgICAgOgogICAgICAgIFsxLjJdIAogICAgICAgICAgICAtIFByaW50IG91dCBlcnJvciBhbmQgZmFpbCBpZiB4c2x0cHJvYyBpcyBub3QgYXZhaWxhYmxlCi0gUmVtb3ZlZCByZWR1bmRhbnQgY2FsbCBvZiBtYWtlIG9uIHdpbmRvd3MgRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuMiB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS4yIHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgcm9rdQogICAgICAgIDoKICAgICAgICBbMS4yXSAKICAgICAgICAgICAgQWRkZWQgbm90ZSBmb3IgeHNsdHByb2MgRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuNCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS40IHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgcm9rdQogICAgICAgIDoKICAgICAgICBbMS40XSAKICAgICAgICAgICAgQWRkZWQgbm90ZSBmb3IgeHNsdHByb2MgRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuNCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS40IHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgcm9rdQogICAgICAgIDoKICAgICAgICBbMS40XSAKICAgICAgICAgICAgVXBkYXRlZCBzdm46ZXh0ZXJuYWwgcHJvcCBmb3IgYnhlIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjIgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuMiB1cGRhdGUKICAgICAgICBieQogICAgICAgIHJva3UKICAgICAgICA6CiAgICAgICAgWzEuMl0gCiAgICAgICAgICAgIFVwZGF0ZWQgc3ZuOmV4dGVybmFsIHByb3AgZm9yIGJ4ZSBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS4yIHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjIgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICByb2t1CiAgICAgICAgOgogICAgICAgIFsxLjJdIAogICAgICAgICAgICBVcGRhdGVkIHN2bjpleHRlcm5hbCBwcm9wIGZvciBieGUgRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuMiB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS4yIHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgZWdsaQogICAgICAgIDoKICAgICAgICBbMS4yXSAKICAgICAgICAgICAgV2hlbiBzYXZpbmcgaW4gWG9wdXMgdGhlIHdvcmtmbG93IHN0YXRlIGlzIG5vdyBzZXQgYmFjayB0bwoiYXV0aG9yaW5nIi4gVGhpcyBpcyBzaW1pbGFyIHRvIHRoZSBiZWhhdmlvdXIgaW4gYml0Zmx1eC4KIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjIgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuMiB1cGRhdGUKICAgICAgICBieQogICAgICAgIGFuZHJlYXMKICAgICAgICA6CiAgICAgICAgWzEuMl0gCiAgICAgICAgICAgIGF2b2lkIGFycmF5aW5kZXhvdXRvZmJvdW5kc2V4Y2VwdGlvbiAoVVJMIGxlbmd0aCBjaGVjaykgRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuNCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS40IHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgYW5kcmVhcwogICAgICAgIDoKICAgICAgICBbMS40XSAKICAgICAgICAgICAgY2hlY2sgd2VsbGZvcm1lZG5lc3MgRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuNCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS40IHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgYW5kcmVhcwogICAgICAgIDoKICAgICAgICBbMS40XSAKICAgICAgICAgICAgY2FsbGluZyBzdXBlci5zZXR1cCgpIHRvIGF2b2lkIE5QRSBpbiBzdGFydFByZWZpeE1hcHBpbmcoKSBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS4yIHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjIgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBhbmRyZWFzCiAgICAgICAgOgogICAgICAgIFsxLjJdIAogICAgICAgICAgICBjYWxsaW5nIHN1cGVyLnNldHVwKCkgdG8gYXZvaWQgTlBFIGluIHN0YXJ0UHJlZml4TWFwcGluZygpIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjIgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuMiB1cGRhdGUKICAgICAgICBieQogICAgICAgIGFuZHJlYXMKICAgICAgICA6CiAgICAgICAgWzEuMl0gCiAgICAgICAgICAgIGFkZGluZyBtaXNzaW5nIDE4biBuYW1lc3BhY2UgZGVjbGFyYXRpb24gRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IERvY3MgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPkRvY3MgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBncmVnb3IKICAgICAgICA6CiAgICAgICAgW0RvY3NdIAogICAgICAgICAgICBFeHBhbmRlZCB0aGUgWG9wdXMgaW50ZWdyYXRpb24gZG9jdW1lbnRhdGlvbi4gRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuMiB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS4yIHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgZ3JlZ29yCiAgICAgICAgOgogICAgICAgIFsxLjJdIAogICAgICAgICAgICBJbXByb3ZlZCBYb3B1cyBpbnN0YWxsYXRpb24gaW5zdHJ1Y3Rpb25zIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjQgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuNCB1cGRhdGUKICAgICAgICBieQogICAgICAgIGdyZWdvcgogICAgICAgIDoKICAgICAgICBbMS40XSAKICAgICAgICAgICAgSW1wcm92ZWQgWG9wdXMgaW5zdGFsbGF0aW9uIGluc3RydWN0aW9ucyBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS40IHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjQgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBhbmRyZWFzCiAgICAgICAgOgogICAgICAgIFsxLjRdIAogICAgICAgICAgICByZW1vdmVkIHVubmVjZXNzYXJ5IGNvbXBvbmVudCBkZWNsYXJhdGlvbnMgRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuNCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS40IHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgYW5kcmVhcwogICAgICAgIDoKICAgICAgICBbMS40XSAKICAgICAgICAgICAgZml4ZWQgWExpbmsgbmFtZXNwYWNlIFVSSSBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS40IHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjQgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBhbmRyZWFzCiAgICAgICAgOgogICAgICAgIFsxLjRdIAogICAgICAgICAgICBmaXhlZCBYTGluayBuYW1lc3BhY2UgVVJJIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjIgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuMiB1cGRhdGUKICAgICAgICBieQogICAgICAgIGFuZHJlYXMKICAgICAgICA6CiAgICAgICAgWzEuMl0gCiAgICAgICAgICAgIGZpeGVkIFhMaW5rIG5hbWVzcGFjZSBVUkkgRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuMiB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS4yIHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgYW5kcmVhcwogICAgICAgIDoKICAgICAgICBbMS4yXSAKICAgICAgICAgICAgZml4ZWQgWExpbmsgbmFtZXNwYWNlIFVSSSBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS4yIHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjIgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBhbmRyZWFzCiAgICAgICAgOgogICAgICAgIFsxLjJdIAogICAgICAgICAgICBhZGRlZCBtb3JlIGphdmEgZmlsZSB0eXBlcyBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgRG9jcyB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+RG9jcyB1cGRhdGUKICAgICAgICBieQogICAgICAgIGdyZWdvcgogICAgICAgIDoKICAgICAgICBbRG9jc10gCiAgICAgICAgICAgIFVwZGF0ZWQgaW5zdGFsbCBpbnN0cnVjdGlvbnMgdG8gcmVjb21tZW5kIGRlbGV0aW9uIG9mIFRvbWNhdCB3b3JrIGRpcmVjdG9yeS4gVGhpcyByZXNvbHZlcyBodHRwOi8vaXNzdWVzLmFwYWNoZS5vcmcvYnVnemlsbGEvc2hvd19idWcuY2dpP2lkPTMyNDMzIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjQgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuNCB1cGRhdGUKICAgICAgICBieQogICAgICAgIG1pY2hpCiAgICAgICAgOgogICAgICAgIFsxLjRdIAogICAgICAgICAgICBYVUwgYnJlYWtzIGxheW91dCBjb21wbGV0ZWx5LiBVc2VkIHRvIHdvcmsuIERJU0FCTEVEIGZvciB0aGUgbW9tZW50IERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjQgYWRkPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuNCBhZGQKICAgICAgICBieQogICAgICAgIG1pY2hpCiAgICAgICAgOgogICAgICAgIFsxLjRdIAogICAgICAgICAgICBob21lcGFnZSBzdHlsZXNoZWV0cyBhZGRlZCBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgU2l0ZSB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+U2l0ZSB1cGRhdGUKICAgICAgICBieQogICAgICAgIHRob3JzdGVuCiAgICAgICAgOgogICAgICAgIFtTaXRlXSAKICAgICAgICAgICAgZml4ZWQgbGluayBzcG90dGVkIGJ5IE1hdHQgY29sbGluIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCBEb2NzIHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj5Eb2NzIHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgdGhvcnN0ZW4KICAgICAgICA6CiAgICAgICAgW0RvY3NdIAogICAgICAgICAgICBmaXhlZCBsaW5rIHNwb3R0ZWQgYnkgTWF0dCBjb2xsaW4gRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IFNpdGUgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPlNpdGUgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBncmVnb3IKICAgICAgICA6CiAgICAgICAgW1NpdGVdIAogICAgICAgICAgICBBZGQgMS40IGphdmFkb2NzLCBmaXggZG93bmxvYWQgbG9jYXRpb24sIGZpeCBleHRlcm5hbCBsaW5rcyBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgU2l0ZSByZW1vdmU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+U2l0ZSByZW1vdmUKICAgICAgICBieQogICAgICAgIGdyZWdvcgogICAgICAgIDoKICAgICAgICBbU2l0ZV0gCiAgICAgICAgICAgIEFkZCAxLjQgamF2YWRvY3MsIGZpeCBkb3dubG9hZCBsb2NhdGlvbiwgZml4IGV4dGVybmFsIGxpbmtzIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCBTaXRlIHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj5TaXRlIHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgZ3JlZ29yCiAgICAgICAgOgogICAgICAgIFtTaXRlXSAKICAgICAgICAgICAgQWRkIDEuNCBqYXZhZG9jcywgZml4IGRvd25sb2FkIGxvY2F0aW9uLCBmaXggZXh0ZXJuYWwgbGlua3MgRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IFNpdGUgYWRkPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPlNpdGUgYWRkCiAgICAgICAgYnkKICAgICAgICBncmVnb3IKICAgICAgICA6CiAgICAgICAgW1NpdGVdIAogICAgICAgICAgICBBZGQgMS40IGphdmFkb2NzLCBmaXggZG93bmxvYWQgbG9jYXRpb24sIGZpeCBleHRlcm5hbCBsaW5rcyBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgRG9jcyB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+RG9jcyB1cGRhdGUKICAgICAgICBieQogICAgICAgIGdyZWdvcgogICAgICAgIDoKICAgICAgICBbRG9jc10gCiAgICAgICAgICAgIEFkZCAxLjQgamF2YWRvY3MsIGZpeCBkb3dubG9hZCBsb2NhdGlvbiwgZml4IGV4dGVybmFsIGxpbmtzIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjQgcmVtb3ZlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuNCByZW1vdmUKICAgICAgICBieQogICAgICAgIGdyZWdvcgogICAgICAgIDoKICAgICAgICBbMS40XSAKICAgICAgICAgICAgTW92ZSB0byB3ZWItYXBwIDIuMyBEVEQgRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuMiB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS4yIHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgZ3JlZ29yCiAgICAgICAgOgogICAgICAgIFsxLjJdIAogICAgICAgICAgICBNb3ZlIHRvIHdlYi1hcHAgMi4zIERURCBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS40IHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjQgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBncmVnb3IKICAgICAgICA6CiAgICAgICAgWzEuNF0gCiAgICAgICAgICAgIFJlbW92ZSBMZW55YSdzIGltcGxlbWVudGF0aW9uIG9mIHRoZSBBYnN0cmFjdERPTVRyYW5zZm9ybWVyIGluIGZhdm91ciBvZiB0aGUgb3JnaW5hbCBmcm9tIENvY29vbi4gVGhpcyBzb2x2ZXMgaHR0cDovL2lzc3Vlcy5hcGFjaGUub3JnL2J1Z3ppbGxhL3Nob3dfYnVnLmNnaT9pZD0yNzMzMSBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS40IHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjQgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBncmVnb3IKICAgICAgICA6CiAgICAgICAgWzEuNF0gCiAgICAgICAgICAgIEV4Y2x1ZGUgSFNRTERCIGJsb2NrIGZyb20gbGVueWEgYnVpbGQgYXMgaXQgaXMgdW51c2VkLiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS40IHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjQgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBncmVnb3IKICAgICAgICA6CiAgICAgICAgWzEuNF0gCiAgICAgICAgICAgIDQwNDogUGFnZSBub3QgZm91bmQgcmV0dXJuZWQgSFRUUCBzdGF0dXMgY29kZSAyMDAsIG5vdCA0MDQuIFRoaXMgZml4ZXMgaHR0cDovL2lzc3Vlcy5hcGFjaGUub3JnL2J1Z3ppbGxhL3Nob3dfYnVnLmNnaT9pZD0zMjMzNyBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS4yIHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjIgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBncmVnb3IKICAgICAgICA6CiAgICAgICAgWzEuMl0gCiAgICAgICAgICAgIDQwNDogUGFnZSBub3QgZm91bmQgcmV0dXJuZWQgSFRUUCBzdGF0dXMgY29kZSAyMDAsIG5vdCA0MDQuIFRoaXMgZml4ZXMgaHR0cDovL2lzc3Vlcy5hcGFjaGUub3JnL2J1Z3ppbGxhL3Nob3dfYnVnLmNnaT9pZD0zMjMzNyBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS4yIHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjIgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICByb2t1CiAgICAgICAgOgogICAgICAgIFsxLjJdIAogICAgICAgICAgICBBZGp1c3RlbWVudHMgZm9yIG5ldyBkaXJlY3RvcnkgbGF5b3V0IGluIGt1cHUgdHJ1bmsgRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuNCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS40IHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgcm9rdQogICAgICAgIDoKICAgICAgICBbMS40XSAKICAgICAgICAgICAgSW1wcm92ZWQgZG93bmxvYWQgbWVzc2FnZS4gRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuMiB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS4yIHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgcm9rdQogICAgICAgIDoKICAgICAgICBbMS4yXSAKICAgICAgICAgICAgSW1wcm92ZWQgZG93bmxvYWQgbWVzc2FnZS4gRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuNCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS40IHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgZ3JlZ29yCiAgICAgICAgOgogICAgICAgIFsxLjRdIAogICAgICAgICAgICBMaWZ0ZWQgMi1sZXR0ZXIgbGFuZ3VhZ2UgY29kZSByZXN0cmljdGlvbi4gSXQgaXMgbm93IHBvc3NpYmxlIHRvIGNyZWF0ZSBwYWdlcyB3aXRoIGEgbGFuZ3VhZ2UgY29kZSBvZiB6aC10dywgZm9yIGluc3RhbmNlLgpJdCBpcyBzdGlsbCBwb3NzaWJsZSB0byB1c2UgdGhlIHNob3J0IGVuLCBkZSBhcyB3ZWxsLgpUaGlzIGZpeGVzIGh0dHA6Ly9pc3N1ZXMuYXBhY2hlLm9yZy9idWd6aWxsYS9zaG93X2J1Zy5jZ2k/aWQ9Mjg5NzQgRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuMiB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS4yIHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgZ3JlZ29yCiAgICAgICAgOgogICAgICAgIFsxLjJdIAogICAgICAgICAgICBMaWZ0ZWQgMi1sZXR0ZXIgbGFuZ3VhZ2UgY29kZSByZXN0cmljdGlvbi4gSXQgaXMgbm93IHBvc3NpYmxlIHRvIGNyZWF0ZSBwYWdlcyB3aXRoIGEgbGFuZ3VhZ2UgY29kZSBvZiB6aC10dywgZm9yIGluc3RhbmNlLgpJdCBpcyBzdGlsbCBwb3NzaWJsZSB0byB1c2UgdGhlIHNob3J0IGVuLCBkZSBhcyB3ZWxsLgpUaGlzIGZpeGVzIGh0dHA6Ly9pc3N1ZXMuYXBhY2hlLm9yZy9idWd6aWxsYS9zaG93X2J1Zy5jZ2k/aWQ9Mjg5NzQgRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuNCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS40IHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgZ3JlZ29yCiAgICAgICAgOgogICAgICAgIFsxLjRdIAogICAgICAgICAgICBNYWtlIGhvbWVwYWdlIG1hdGNoZXIgd29yayB3aXRoIG11bHRpcGxlIGxhbmd1YWdlcyBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS4yIHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjIgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBncmVnb3IKICAgICAgICA6CiAgICAgICAgWzEuMl0gCiAgICAgICAgICAgIE1ha2UgaG9tZXBhZ2UgbWF0Y2hlciB3b3JrIHdpdGggbXVsdGlwbGUgbGFuZ3VhZ2VzIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjQgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuNCB1cGRhdGUKICAgICAgICBieQogICAgICAgIGdyZWdvcgogICAgICAgIDoKICAgICAgICBbMS40XSAKICAgICAgICAgICAgTWlzc2luZyBjb25maWcgZmlsZXMgZm9yIGhvbWVwYWdlIGFuZCBsaW5rcyBkb2N0eXBlcyBhZGRlZC4gRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuMiB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS4yIHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgZ3JlZ29yCiAgICAgICAgOgogICAgICAgIFsxLjJdIAogICAgICAgICAgICBNaXNzaW5nIGNvbmZpZyBmaWxlcyBmb3IgaG9tZXBhZ2UgYW5kIGxpbmtzIGRvY3R5cGVzIGFkZGVkLiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS40IHJlbW92ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjQgcmVtb3ZlCiAgICAgICAgYnkKICAgICAgICBncmVnb3IKICAgICAgICA6CiAgICAgICAgWzEuNF0gCiAgICAgICAgICAgIHN0YXR1cy54bWwgaXMgbm8gbG9uZ2VyIG5lZWRlZDsgaXQgY2FuIGJlIGdlbmVyYXRlZCBmcm9tIHRoZSBTVk4gbG9nIGZpbGUuIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjIgcmVtb3ZlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuMiByZW1vdmUKICAgICAgICBieQogICAgICAgIGdyZWdvcgogICAgICAgIDoKICAgICAgICBbMS4yXSAKICAgICAgICAgICAgc3RhdHVzLnhtbCBpcyBubyBsb25nZXIgbmVlZGVkOyBpdCBjYW4gYmUgZ2VuZXJhdGVkIGZyb20gdGhlIFNWTiBsb2cgZmlsZS4gRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuNCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS40IHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgcm9rdQogICAgICAgIDoKICAgICAgICBbMS40XSAKICAgICAgICAgICAgUHVibGljYXRpb24gc3BlY2lmaWMgbGlicyBhcmUgY29waWVkIGluIGluaXQtYnVpbGQueG1sLiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS4yIHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjIgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICByb2t1CiAgICAgICAgOgogICAgICAgIFsxLjJdIAogICAgICAgICAgICBQdWJsaWNhdGlvbiBzcGVjaWZpYyBsaWJzIGFyZSBjb3BpZWQgaW4gaW5pdC1idWlsZC54bWwuIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjQgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuNCB1cGRhdGUKICAgICAgICBieQogICAgICAgIHJva3UKICAgICAgICA6CiAgICAgICAgWzEuNF0gCiAgICAgICAgICAgIEZpeGVkIGh0bWwgdGFncyBpbiBkb2NzIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjIgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuMiB1cGRhdGUKICAgICAgICBieQogICAgICAgIHJva3UKICAgICAgICA6CiAgICAgICAgWzEuMl0gCiAgICAgICAgICAgIEZpeGVkIGh0bWwgdGFncyBpbiBkb2NzIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjQgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuNCB1cGRhdGUKICAgICAgICBieQogICAgICAgIHJva3UKICAgICAgICA6CiAgICAgICAgWzEuNF0gCiAgICAgICAgICAgIEltcHJvdmVkIGRvY3MgRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuMiB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS4yIHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgcm9rdQogICAgICAgIDoKICAgICAgICBbMS4yXSAKICAgICAgICAgICAgSW1wcm92ZWQgZG9jcyBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS40IHJlbW92ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjQgcmVtb3ZlCiAgICAgICAgYnkKICAgICAgICByb2t1CiAgICAgICAgOgogICAgICAgIFsxLjRdIAogICAgICAgICAgICBOb3QgbmVlZGVkIGFueW1vcmUgRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuNCBhZGQ8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS40IGFkZAogICAgICAgIGJ5CiAgICAgICAgcm9rdQogICAgICAgIDoKICAgICAgICBbMS40XSAKICAgICAgICAgICAgLSBBZGRlZCBnZW5lcmljIGJ1bGtDb3B5IHRhc2suIENhbiBhbHNvIGJlIHVzZWQgZm9yIGNvcHlKYXZhU291cmNlcywgYnV0IHRoYXQgd291bGQgcmVxdWlyZSB0aGUgcmVnZXhwIG1hcHBlciwgd2hpY2ggaXMgcGFydCBvZiBhbnQgb3B0aW9uYWwgcGFja2FnZS4KLSBGaXhlcyBmb3IgYnVnIDI5NTUzLgotIFJlbW92ZWQgQ29weUxpYnJhcmllcyB0YXNrLiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS4yIHJlbW92ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjIgcmVtb3ZlCiAgICAgICAgYnkKICAgICAgICByb2t1CiAgICAgICAgOgogICAgICAgIFsxLjJdIAogICAgICAgICAgICBOb3QgbmVlZGVkIGFueW1vcmUgRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuMiB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS4yIHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgcm9rdQogICAgICAgIDoKICAgICAgICBbMS4yXSAKICAgICAgICAgICAgLSBBZGRlZCBnZW5lcmljIGJ1bGtDb3B5IHRhc2suIENhbiBhbHNvIGJlIHVzZWQgZm9yIGNvcHlKYXZhU291cmNlcywgYnV0CiAgdGhhdCB3b3VsZCByZXF1aXJlIHRoZSByZWdleHAgbWFwcGVyLCB3aGljaCBpcyBwYXJ0IG9mIGFudCBvcHRpb25hbApwYWNrYWdlLgotIEZpeGVzIGZvciBidWcgMjk1NTMuCi0gUmVtb3ZlZCBDb3B5TGlicmFyaWVzIHRhc2sKCiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS4yIHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjIgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICByb2t1CiAgICAgICAgOgogICAgICAgIFsxLjJdIAogICAgICAgICAgICBUZXN0CiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgU2l0ZSB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+U2l0ZSB1cGRhdGUKICAgICAgICBieQogICAgICAgIGdyZWdvcgogICAgICAgIDoKICAgICAgICBbU2l0ZV0gCiAgICAgICAgICAgIEFkZGVkIGxpbmsgdG8gU1ZOIGRpZmYgZm9yIGVhY2ggY29tbWl0IChleHBlcmltZW50YWwpCkFkZGVkIGNoYW5nZXMucnNzIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCBTaXRlIGFkZDwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj5TaXRlIGFkZAogICAgICAgIGJ5CiAgICAgICAgZ3JlZ29yCiAgICAgICAgOgogICAgICAgIFtTaXRlXSAKICAgICAgICAgICAgQWRkIGltYWdlcyBmb3IgUlNTLCBGaXggYW5kIENoYW5nZSBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgU2l0ZSB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+U2l0ZSB1cGRhdGUKICAgICAgICBieQogICAgICAgIGdyZWdvcgogICAgICAgIDoKICAgICAgICBbU2l0ZV0gCiAgICAgICAgICAgIEFkZCBjaGFuZ2VzLmh0bWwgdG8gdGhlIHNpdGUuIFRoaXMgaXMgZ2VuZXJhdGVkIG91dCBvZiB0aGUgU1ZOIGxvZ3MgYW5kIGlzIHN0cnVjdHVyZWQgYnkgbW9udGguIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCBEb2NzIHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj5Eb2NzIHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgZ3JlZ29yCiAgICAgICAgOgogICAgICAgIFtEb2NzXSAKICAgICAgICAgICAgQWRkIHN2bjJjaGFuZ2VzIHN0eWxlc2hlZXQgdG8gZ2VuZXJhdGUgc3RhdHVzLnhtbCBvdXQgb2YgdGhlIHN2biBsb2cuIApOb3RlIHRoYXQgdGhpcyBpcyBhIFhTTFQgMi4wIHN0eWxlc2hlZXQsIHNvIHlvdSBuZWVkIHRvIHVzZSBhbiBhcHByb3ByaWF0ZSBwcm9jZXNzb3IgbGlrZSBTYXhvbiA4LgpBZGQgY2hhbmdlcy5odG1sIHBhZ2UgdG8gdGhlIHNpdGUuCkluY3JlYXNlIEZvcnJlc3QgbWVtb3J5IGFsbG9jYXRpb24gdG8gaGFuZGxlIHN0YXR1cy54bWwgRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IFNpdGUgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPlNpdGUgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICB0aG9yc3RlbgogICAgICAgIDoKICAgICAgICBbU2l0ZV0gCiAgICAgICAgICAgIFdvbGZnYW5nIGlzIG5vdCB5ZXQgUE1DIG1lbWJlciBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgRG9jcyB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+RG9jcyB1cGRhdGUKICAgICAgICBieQogICAgICAgIHRob3JzdGVuCiAgICAgICAgOgogICAgICAgIFtEb2NzXSAKICAgICAgICAgICAgV29sZmdhbmcgaXMgbm90IHlldCBQTUMgbWVtYmVyIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCBTaXRlIHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj5TaXRlIHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgdGhvcnN0ZW4KICAgICAgICA6CiAgICAgICAgW1NpdGVdIAogICAgICAgICAgICBlbmhhbmNlZCB0ZXh0IERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCBTaXRlIGFkZDwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj5TaXRlIGFkZAogICAgICAgIGJ5CiAgICAgICAgdGhvcnN0ZW4KICAgICAgICA6CiAgICAgICAgW1NpdGVdIAogICAgICAgICAgICBXZSBhcmUgdGVzdGluZyBiZWZvcmUgd2UgYXJlIGNoZWNraW4gc29tZXRoaW5nIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCBEb2NzIHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj5Eb2NzIHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgdGhvcnN0ZW4KICAgICAgICA6CiAgICAgICAgW0RvY3NdIAogICAgICAgICAgICBtaXNzaW5nIHAgZW5kIHRhZyBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgRG9jcyB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+RG9jcyB1cGRhdGUKICAgICAgICBieQogICAgICAgIHRob3JzdGVuCiAgICAgICAgOgogICAgICAgIFtEb2NzXSAKICAgICAgICAgICAgc29tZSB0eXBvcyBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgRG9jcyB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+RG9jcyB1cGRhdGUKICAgICAgICBieQogICAgICAgIHRob3JzdGVuCiAgICAgICAgOgogICAgICAgIFtEb2NzXSAKICAgICAgICAgICAgV2UgYXJlIHRlc3RpbmcgYmVmb3JlIHdlIGFyZSBjaGVja2luIHNvbWV0aGluZyBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgU2l0ZSB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+U2l0ZSB1cGRhdGUKICAgICAgICBieQogICAgICAgIGdyZWdvcgogICAgICAgIDoKICAgICAgICBbU2l0ZV0gCiAgICAgICAgICAgIHNvbWUgY29udHJpYnV0b3JzIHdlcmUgaW4gYm9sZCB0eXBlLCBtYWtpbmcgdGhlbSBwbWMgbWVtYmVycyBhY2NvcmRpbmcgdG8gdGhlIG5vdGVzIDopIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCBEb2NzIHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj5Eb2NzIHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgZ3JlZ29yCiAgICAgICAgOgogICAgICAgIFtEb2NzXSAKICAgICAgICAgICAgc29tZSBjb250cmlidXRvcnMgd2VyZSBpbiBib2xkIHR5cGUsIG1ha2luZyB0aGVtIHBtYyBtZW1iZXJzIGFjY29yZGluZyB0byB0aGUgbm90ZXMgOikgRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IERvY3MgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPkRvY3MgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBhbnRvbmlvCiAgICAgICAgOgogICAgICAgIFtEb2NzXSAKICAgICAgICAgICAgQWRkIG1vcmUgbGlua3MgdG8gc2l0ZS54bWwgRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IERvY3MgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPkRvY3MgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICB0aG9yc3RlbgogICAgICAgIDoKICAgICAgICBbRG9jc10gCiAgICAgICAgICAgIEZpeGVkIG1pc3NpbmcgLyBzcG90dGVkIGJ5IHN0ZWZhbiBidXJraGFyZCBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgU2l0ZSB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+U2l0ZSB1cGRhdGUKICAgICAgICBieQogICAgICAgIHRob3JzdGVuCiAgICAgICAgOgogICAgICAgIFtTaXRlXSAKICAgICAgICAgICAgRml4ZWQgbWlzc2luZyAvIHNwb3R0ZWQgYnkgc3RlZmFuIGJ1cmtoYXJkIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCBEb2NzIHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj5Eb2NzIHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgYW50b25pbwogICAgICAgIDoKICAgICAgICBbRG9jc10gCiAgICAgICAgICAgIEFkZCBzdWJ2ZXJzaW9uIGxpbmsgRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IERvY3MgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPkRvY3MgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBhbnRvbmlvCiAgICAgICAgOgogICAgICAgIFtEb2NzXSAKICAgICAgICAgICAgTW92ZSBsaW5rcyB0byBzaXRlLnhtbCBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS4yIHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjIgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBhbnRvbmlvCiAgICAgICAgOgogICAgICAgIFsxLjJdIAogICAgICAgICAgICBEaXNhYmxlIEhTUUxEQiBibG9jayAobm90IHVzZWQgYnkgTGVueWEpIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCBEb2NzIHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj5Eb2NzIHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgdGhvcnN0ZW4KICAgICAgICA6CiAgICAgICAgW0RvY3NdIAogICAgICAgICAgICBtb2RpZmllZCBhY2suIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCBTaXRlIHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj5TaXRlIHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgdGhvcnN0ZW4KICAgICAgICA6CiAgICAgICAgW1NpdGVdIAogICAgICAgICAgICBtb2RpZmllZCBhY2suIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCBTaXRlIHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj5TaXRlIHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgdGhvcnN0ZW4KICAgICAgICA6CiAgICAgICAgW1NpdGVdIAogICAgICAgICAgICBmb3JtYXRlZCB0aGUgc2l0ZSArIFRMUCBtb3ZlICsgbW9kaWZpZWQgYWNrLiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgRG9jcyB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+RG9jcyB1cGRhdGUKICAgICAgICBieQogICAgICAgIHRob3JzdGVuCiAgICAgICAgOgogICAgICAgIFtEb2NzXSAKICAgICAgICAgICAgZm9ybWF0ZWQgdGhlIHNpdGUgKyBUTFAgbW92ZSArIG1vZGlmaWVkIGFjay4gRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IERvY3MgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPkRvY3MgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBhbnRvbmlvCiAgICAgICAgOgogICAgICAgIFtEb2NzXSAKICAgICAgICAgICAgQWRkIG15c2VsZiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS40IHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjQgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBncmVnb3IKICAgICAgICA6CiAgICAgICAgWzEuNF0gCiAgICAgICAgICAgIGxlbnlhIFRMUCBjaGFuZ2VzIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjIgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuMiB1cGRhdGUKICAgICAgICBieQogICAgICAgIGdyZWdvcgogICAgICAgIDoKICAgICAgICBbMS4yXSAKICAgICAgICAgICAgbGVueWEgVExQIGNoYW5nZXMgRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuMiB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS4yIHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgdGhvcnN0ZW4KICAgICAgICA6CiAgICAgICAgWzEuMl0gCiAgICAgICAgICAgIEZpeGVkIHRoZSBlbnRpdHkgYnVnIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjIgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuMiB1cGRhdGUKICAgICAgICBieQogICAgICAgIGFuZHJlYXMKICAgICAgICA6CiAgICAgICAgWzEuMl0gCiAgICAgICAgICAgIGVzY2FwZSBzcGVjaWFsIGNoYXJhY3RlcnMgaW4gQlhFIGxpbmsgc2l0ZXRyZWUgRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IFNpdGUgYWRkPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPlNpdGUgYWRkCiAgICAgICAgYnkKICAgICAgICB0aG9yc3RlbgogICAgICAgIDoKICAgICAgICBbU2l0ZV0gCiAgICAgICAgICAgIGFkZGVkIHNvbWUgZG9jcyBhbmQgZml4ZWQgYSBsaW5raW5nIGJ1Zy4gUExFQVNFIHVzZSBzaXRlOm5vZGUgdG8gbGluayB0byBzaXRlcyBpbnN0ZWFkIG9mIGxpbmtpbmcgdG8gdGhlIHBhZ2UuaHRtbCBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgRG9jcyB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+RG9jcyB1cGRhdGUKICAgICAgICBieQogICAgICAgIHRob3JzdGVuCiAgICAgICAgOgogICAgICAgIFtEb2NzXSAKICAgICAgICAgICAgYWRkZWQgc29tZSBkb2NzIGFuZCBmaXhlZCBhIGxpbmtpbmcgYnVnLiBQTEVBU0UgdXNlIHNpdGU6bm9kZSB0byBsaW5rIHRvIHNpdGVzIGluc3RlYWQgb2YgbGlua2luZyB0byB0aGUgcGFnZS5odG1sIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjIgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuMiB1cGRhdGUKICAgICAgICBieQogICAgICAgIGFuZHJlYXMKICAgICAgICA6CiAgICAgICAgWzEuMl0gCiAgICAgICAgICAgIE9uZUZvcm1FZGl0b3I6IGNoZWNrIHdlbGxmb3JtZWRuZXNzIGJlZm9yZSB2YWxpZGF0aW9uIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjQgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuNCB1cGRhdGUKICAgICAgICBieQogICAgICAgIGdyZWdvcgogICAgICAgIDoKICAgICAgICBbMS40XSAKICAgICAgICAgICAgNTA4IGNvbXBsaWFuY2UgRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuMiB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS4yIHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgZ3JlZ29yCiAgICAgICAgOgogICAgICAgIFsxLjJdIAogICAgICAgICAgICA1MDggY29tcGxpYW5jZSBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgRG9jcyB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+RG9jcyB1cGRhdGUKICAgICAgICBieQogICAgICAgIGdyZWdvcgogICAgICAgIDoKICAgICAgICBbRG9jc10gCiAgICAgICAgICAgIG1vdmVkIDEuNCBkYXRlIGludG8gdGhlIGZ1dHVyZSBhZ2FpbiA6KSBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgRG9jcyB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+RG9jcyB1cGRhdGUKICAgICAgICBieQogICAgICAgIGdyZWdvcgogICAgICAgIDoKICAgICAgICBbRG9jc10gCiAgICAgICAgICAgIGFudCAtJmd0OyBidWlsZCBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS4yIHJlbW92ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjIgcmVtb3ZlCiAgICAgICAgYnkKICAgICAgICBncmVnb3IKICAgICAgICA6CiAgICAgICAgWzEuMl0gCiAgICAgICAgICAgIGNoYXJ0ZXIgbW92ZWQgdG8gc2l0ZSBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgRG9jcyBhZGQ8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+RG9jcyBhZGQKICAgICAgICBieQogICAgICAgIGdyZWdvcgogICAgICAgIDoKICAgICAgICBbRG9jc10gCiAgICAgICAgICAgIGNoYXJ0ZXIgbW92ZWQgdG8gc2l0ZSBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS40IHJlbW92ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjQgcmVtb3ZlCiAgICAgICAgYnkKICAgICAgICBncmVnb3IKICAgICAgICA6CiAgICAgICAgWzEuNF0gCiAgICAgICAgICAgIGNoYXJ0ZXIgbW92ZWQgdG8gc2l0ZSBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS40IHJlbW92ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjQgcmVtb3ZlCiAgICAgICAgYnkKICAgICAgICBncmVnb3IKICAgICAgICA6CiAgICAgICAgWzEuNF0gCiAgICAgICAgICAgIHJlc29sdXRpb24gbW92ZWQgdG8gc2l0ZSBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS4yIHJlbW92ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjIgcmVtb3ZlCiAgICAgICAgYnkKICAgICAgICBncmVnb3IKICAgICAgICA6CiAgICAgICAgWzEuMl0gCiAgICAgICAgICAgIHJlc29sdXRpb24gbW92ZWQgdG8gc2l0ZSBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgRG9jcyBhZGQ8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+RG9jcyBhZGQKICAgICAgICBieQogICAgICAgIGdyZWdvcgogICAgICAgIDoKICAgICAgICBbRG9jc10gCiAgICAgICAgICAgIGFkZCByZXNvbHV0aW9uIHRvIHNpdGUgRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuNCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS40IHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgZ3JlZ29yCiAgICAgICAgOgogICAgICAgIFsxLjRdIAogICAgICAgICAgICBicmluZyBpbiBzeW5jIHdpdGggYnVpbGQgY2hhbmdlcyBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS40IHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjQgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBncmVnb3IKICAgICAgICA6CiAgICAgICAgWzEuNF0gCiAgICAgICAgICAgIGRvbid0IGRlc3Ryb3kgdGhlIG9yaWdpbmFsIGNvY29vbiBzaXRlbWFwLnhtYXAKCnRoaXMgYWxsb3dzIHRvIHJ1biBjb2Nvb24gYW5kIGxlbnlhIHNpZGUgYnkgc2lkZSB3aXRoIHRoZSBzYW1lIGJ1aWxkIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjQgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuNCB1cGRhdGUKICAgICAgICBieQogICAgICAgIGp3a2FsdHoKICAgICAgICA6CiAgICAgICAgWzEuNF0gCiAgICAgICAgICAgIGFkZGVkIG1vcmUgcGFyYW1ldGVyIGRlc2NyaXB0aW9ucwogRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuMiB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS4yIHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgandrYWx0egogICAgICAgIDoKICAgICAgICBbMS4yXSAKICAgICAgICAgICAgYWRkZWQgbW9yZSBwYXJhbWV0ZXIgZGVzY3JpcHRpb25zCiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS40IHJlbW92ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjQgcmVtb3ZlCiAgICAgICAgYnkKICAgICAgICBncmVnb3IKICAgICAgICA6CiAgICAgICAgWzEuNF0gCiAgICAgICAgICAgIHNpdGVtYXAueG1hcCBpcyBubyBsb25nZXIgbmVlZGVkIGFzIGl0IGlzIGdlbmVyYXRlZCBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS40IHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjQgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBncmVnb3IKICAgICAgICA6CiAgICAgICAgWzEuNF0gCiAgICAgICAgICAgIGFkZGVkIHN1cHBvcnQgZm9yIG11bHRpIHBhcmFncmFwaCBwYXN0ZSBpbnRvIEJYRSB0byBjb25maWcgRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuMiB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS4yIHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgZ3JlZ29yCiAgICAgICAgOgogICAgICAgIFsxLjJdIAogICAgICAgICAgICBhZGRlZCBzdXBwb3J0IGZvciBtdWx0aSBwYXJhZ3JhcGggcGFzdGUgaW50byBCWEUgdG8gY29uZmlnIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjQgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuNCB1cGRhdGUKICAgICAgICBieQogICAgICAgIGdyZWdvcgogICAgICAgIDoKICAgICAgICBbMS40XSAKICAgICAgICAgICAgYnhlbmcgLSZndDsgYnhlIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCBEb2NzIHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj5Eb2NzIHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgZ3JlZ29yCiAgICAgICAgOgogICAgICAgIFtEb2NzXSAKICAgICAgICAgICAgc3ZuOmlnbm9yZSBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgRG9jcyB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+RG9jcyB1cGRhdGUKICAgICAgICBieQogICAgICAgIGdyZWdvcgogICAgICAgIDoKICAgICAgICBbRG9jc10gCiAgICAgICAgICAgIGV5ZWJyb3dzZSBpcyBub3cgb24gbWFpbC1hcmNoaXZlcyBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgRG9jcyB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+RG9jcyB1cGRhdGUKICAgICAgICBieQogICAgICAgIGdyZWdvcgogICAgICAgIDoKICAgICAgICBbRG9jc10gCiAgICAgICAgICAgIG5hZ295YSAtJmd0OyBpc3N1ZXMgRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IFNpdGUgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPlNpdGUgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBncmVnb3IKICAgICAgICA6CiAgICAgICAgW1NpdGVdIAogICAgICAgICAgICB1cGRhdGVkIGluc3RhbGwgaW5zdHJ1Y3Rpb25zIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjQgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuNCB1cGRhdGUKICAgICAgICBieQogICAgICAgIGdyZWdvcgogICAgICAgIDoKICAgICAgICBbMS40XSAKICAgICAgICAgICAgc2l0ZW1hcCBjb21wb25lbnRzIGNsZWFudXAgRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuMiB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS4yIHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgZ3JlZ29yCiAgICAgICAgOgogICAgICAgIFsxLjJdIAogICAgICAgICAgICBzaXRlbWFwIGNvbXBvbmVudHMgY2xlYW51cCBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS40IHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjQgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBncmVnb3IKICAgICAgICA6CiAgICAgICAgWzEuNF0gCiAgICAgICAgICAgIGJ4ZW5nIC0mZ3Q7IGJ4ZSBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS40IHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjQgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBqd2thbHR6CiAgICAgICAgOgogICAgICAgIFsxLjRdIAogICAgICAgICAgICBhcHBseWluZyBzYW1lIGNoYW5nZXMgYXMgdG8gQlJBTkNIXzFfMl9YOiBwcm92aWRpbmcgc2FtcGxlIGZvcgpsZGFwLnByb3BlcnRpZXMgYW5kIGFkZGluZyBmZWF0dXJlcyB0byBMREFQIGNvbmZpZ3VyYXRpb246IGZsZXhpYmlsaXR5CmluIGJyYW5jaCwgcG9zc2liaWxpdHkgZm9yIHN1YnRyZWUgc2VhcmNoZXMgYW5kIGZvciBNUyBBY3RpdmUgRGlyZWN0b3J5CiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS4yIHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjIgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBqd2thbHR6CiAgICAgICAgOgogICAgICAgIFsxLjJdIAogICAgICAgICAgICBSZW1vdmVkIGhhcmQtY29kaW5nIG9mIG91PVBlb3BsZSBicmFuY2gsIGFkZGVkIHBvc3NpYmlsaXR5IHRvIHNlYXJjaCBhCnN1YnRyZWUgZm9yIGEgdXNlciwgYW5kIGFkZGVkIG9wdGlvbiB0byBzdXBwb3J0IE1TIEFjdGl2ZSBEaXJlY3RvcnkKIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjIgYWRkPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuMiBhZGQKICAgICAgICBieQogICAgICAgIGp3a2FsdHoKICAgICAgICA6CiAgICAgICAgWzEuMl0gCiAgICAgICAgICAgIEEgc2FtcGxlIGZvciBsZGFwLnByb3BlcnRpZXM7IHRoZSB1c2FnZSBvZiB0aGUgdmFyaW91cyBvcHRpb25zCihlc3BlY2lhbGx5IHRoZSBuZXcgb25lcykgYXJlIGRvY3VtZW50ZWQgd2l0aGluIHRoZSBmaWxlCiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS40IHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjQgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBncmVnb3IKICAgICAgICA6CiAgICAgICAgWzEuNF0gCiAgICAgICAgICAgIG1vdmUgbW9yZSB2YWxpZGF0aW9uIG91dCBvZiBYU0wgYW5kIGludG8gamF2YXNjcmlwdCB2YWxpZGF0aW9uLnhtbCBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS4yIHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjIgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBncmVnb3IKICAgICAgICA6CiAgICAgICAgWzEuMl0gCiAgICAgICAgICAgIG1vdmUgbW9yZSB2YWxpZGF0aW9uIG91dCBvZiBYU0wgYW5kIGludG8gamF2YXNjcmlwdCB2YWxpZGF0aW9uLnhtbCBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS40IHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjQgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBncmVnb3IKICAgICAgICA6CiAgICAgICAgWzEuNF0gCiAgICAgICAgICAgIG1vdmUgY2xpZW50IHNpZGUgaXAgcmFuZ2UgdmFsaWRhdGlvbiB0byB2YWxpZGF0aW9uLnhtbCAoY3VycmVudGx5IHVudXNlZCkKc3luYyB0cnVuayB3aXRoIDEuMiBmb3IgdmFsaWRhdGlvbi54bWwgRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuMiB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS4yIHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgZ3JlZ29yCiAgICAgICAgOgogICAgICAgIFsxLjJdIAogICAgICAgICAgICBtb3ZlIGNsaWVudCBzaWRlIGlwIHJhbmdlIHZhbGlkYXRpb24gdG8gdmFsaWRhdGlvbi54bWwgKGN1cnJlbnRseSB1bnVzZWQpCnN5bmMgdHJ1bmsgd2l0aCAxLjIgZm9yIHZhbGlkYXRpb24ueG1sIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjQgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuNCB1cGRhdGUKICAgICAgICBieQogICAgICAgIGdyZWdvcgogICAgICAgIDoKICAgICAgICBbMS40XSAKICAgICAgICAgICAgbW92ZSBqcyB0byBpbmNsdWRlcyB0byBhdm9pZCBwcm9ibGVtcyB3aXRoIFhNTCBhbmQgJmFtcDsmYW1wOyBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS4yIHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjIgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBncmVnb3IKICAgICAgICA6CiAgICAgICAgWzEuMl0gCiAgICAgICAgICAgIG1vdmUganMgdG8gaW5jbHVkZXMgdG8gYXZvaWQgcHJvYmxlbXMgd2l0aCBYTUwgYW5kICZhbXA7JmFtcDsgRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuNCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS40IHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgZ3JlZ29yCiAgICAgICAgOgogICAgICAgIFsxLjRdIAogICAgICAgICAgICAjMzAwMzkgbWFrZSBhZGRNZXRhRGF0YS54c2wgY29uc2lzdGVudCBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS4yIHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjIgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBncmVnb3IKICAgICAgICA6CiAgICAgICAgWzEuMl0gCiAgICAgICAgICAgICMzMDAzOSBtYWtlIGFkZE1ldGFEYXRhLnhzbCBjb25zaXN0ZW50IERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjQgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuNCB1cGRhdGUKICAgICAgICBieQogICAgICAgIGdyZWdvcgogICAgICAgIDoKICAgICAgICBbMS40XSAKICAgICAgICAgICAgIzMyMDAwIHJlbGlhbmNlIG9uIGNvY29vbiBkZXByZWNhdGVkIGNsYXNzZXMgcmVtb3ZlZCBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS4yIHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjIgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBncmVnb3IKICAgICAgICA6CiAgICAgICAgWzEuMl0gCiAgICAgICAgICAgICMzMjAwMCByZWxpYW5jZSBvbiBjb2Nvb24gZGVwcmVjYXRlZCBjbGFzc2VzIHJlbW92ZWQgRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuNCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS40IHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgZ3JlZ29yCiAgICAgICAgOgogICAgICAgIFsxLjRdIAogICAgICAgICAgICBhZGQgVVRGLTggZW5jb2RpbmcgZXhwbGljaXRseSB0byBnaXZlIElFIGEgYnJlYWsgRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuNCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS40IHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgZ3JlZ29yCiAgICAgICAgOgogICAgICAgIFsxLjRdIAogICAgICAgICAgICBCQUQgcHJhY3RpY2UgdG8gbG9nIHN0YW5kYXJkIG1lc3NhZ2VzIHdpdGggbG9nLmVycm9yLiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS4yIHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjIgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBncmVnb3IKICAgICAgICA6CiAgICAgICAgWzEuMl0gCiAgICAgICAgICAgIEJBRCBwcmFjdGljZSB0byBsb2cgc3RhbmRhcmQgbWVzc2FnZXMgd2l0aCBsb2cuZXJyb3IuIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjQgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuNCB1cGRhdGUKICAgICAgICBieQogICAgICAgIGdyZWdvcgogICAgICAgIDoKICAgICAgICBbMS40XSAKICAgICAgICAgICAgaTE4biBwcmVmaXggYWRkZWQgRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuNCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS40IHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgZ3JlZ29yCiAgICAgICAgOgogICAgICAgIFsxLjRdIAogICAgICAgICAgICBCQUQgcHJhY3RpY2UgdG8gbG9nIHN0YW5kYXJkIG1lc3NhZ2VzIHdpdGggbG9nLmVycm9yLiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS4yIHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjIgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBncmVnb3IKICAgICAgICA6CiAgICAgICAgWzEuMl0gCiAgICAgICAgICAgIEJBRCBwcmFjdGljZSB0byBsb2cgc3RhbmRhcmQgbWVzc2FnZXMgd2l0aCBsb2cuZXJyb3IuIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjQgcmVtb3ZlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuNCByZW1vdmUKICAgICAgICBieQogICAgICAgIGdyZWdvcgogICAgICAgIDoKICAgICAgICBbMS40XSAKICAgICAgICAgICAgcHJvamVjdC1sb2dvLmdpZiBpcyBubyBsb25nZXIgdXNlZCBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS4yIHJlbW92ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjIgcmVtb3ZlCiAgICAgICAgYnkKICAgICAgICBncmVnb3IKICAgICAgICA6CiAgICAgICAgWzEuMl0gCiAgICAgICAgICAgIHByb2plY3QtbG9nby5naWYgaXMgbm8gbG9uZ2VyIHVzZWQgRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuMiBhZGQ8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS4yIGFkZAogICAgICAgIGJ5CiAgICAgICAgZ3JlZ29yCiAgICAgICAgOgogICAgICAgIFsxLjJdIAogICAgICAgICAgICB0aGlzIGlzIG5lZWRlZCB0byBlZGl0IGhvbWVwYWdlIGRvY3VtZW50cyBpbiBieGUgRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuMiB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS4yIHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgZ3JlZ29yCiAgICAgICAgOgogICAgICAgIFsxLjJdIAogICAgICAgICAgICByZW1vdmUgbWlzbGVhZGluZyBjb21tZW50cyBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgRG9jcyByZW1vdmU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+RG9jcyByZW1vdmUKICAgICAgICBieQogICAgICAgIGdyZWdvcgogICAgICAgIDoKICAgICAgICBbRG9jc10gCiAgICAgICAgICAgIGZpeCBlb2wtc3R5bGUgRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuMiB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS4yIHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgZ3JlZ29yCiAgICAgICAgOgogICAgICAgIFsxLjJdIAogICAgICAgICAgICBlb2wtc3R5bGUgc2V0IHRvIG5hdGl2ZSBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS40IHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjQgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBncmVnb3IKICAgICAgICA6CiAgICAgICAgWzEuNF0gCiAgICAgICAgICAgIGVvbC1zdHlsZSBzZXQgdG8gbmF0aXZlIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjQgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuNCB1cGRhdGUKICAgICAgICBieQogICAgICAgIGdyZWdvcgogICAgICAgIDoKICAgICAgICBbMS40XSAKICAgICAgICAgICAgZW9sLXN0eWxlIHNldCB0byBuYXRpdmUgRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuMiB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS4yIHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgZ3JlZ29yCiAgICAgICAgOgogICAgICAgIFsxLjJdIAogICAgICAgICAgICBlb2wtc3R5bGUgc2V0IHRvIG5hdGl2ZSBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS4yIHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjIgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBncmVnb3IKICAgICAgICA6CiAgICAgICAgWzEuMl0gCiAgICAgICAgICAgICMzMjExOSAgb3JnLmFwYWNoZS5mb3JyZXN0LmNvbXBvbmVudHMuc291cmNldHlwZS5Tb3VyY2VUeXBlQWN0aW9uIHJlZmVyZW5jZXMgRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuNCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS40IHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgZ3JlZ29yCiAgICAgICAgOgogICAgICAgIFsxLjRdIAogICAgICAgICAgICAjMzIxMTkgIG9yZy5hcGFjaGUuZm9ycmVzdC5jb21wb25lbnRzLnNvdXJjZXR5cGUuU291cmNlVHlwZUFjdGlvbiByZWZlcmVuY2VzIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjIgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuMiB1cGRhdGUKICAgICAgICBieQogICAgICAgIGdyZWdvcgogICAgICAgIDoKICAgICAgICBbMS4yXSAKICAgICAgICAgICAgcmVtb3ZlIG1pc2xlYWRpbmcgY29tbWVudHMgRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuNCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS40IHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgZ3JlZ29yCiAgICAgICAgOgogICAgICAgIFsxLjRdIAogICAgICAgICAgICByZW1vdmUgbWlzbGVhZGluZyBjb21tZW50cyBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS4yIHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjIgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBtaWNoaQogICAgICAgIDoKICAgICAgICBbMS4yXSAKICAgICAgICAgICAgcmVjb21tZW5kZWQgdmVyc2lvbiBhZGRlZCBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS4yIHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjIgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBtaWNoaQogICAgICAgIDoKICAgICAgICBbMS4yXSAKICAgICAgICAgICAgdGhhbmtzIHRvIEpvc2lhcyB0aGUgamF2YXNjcmlwdCBpcyBub3cgY29waWVkIHByb3Blcmx5IERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCBEb2NzIHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj5Eb2NzIHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgZ3JlZ29yCiAgICAgICAgOgogICAgICAgIFtEb2NzXSAKICAgICAgICAgICAgdXBkYXRlZCB0aGUgaW5zdGFsbCBpbnN0cnVjdGlvbnMsIHN1YnZlcnNpb24gRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuMiB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS4yIHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgZ3JlZ29yCiAgICAgICAgOgogICAgICAgIFsxLjJdIAogICAgICAgICAgICBjaGFuZ2UgdG8gLi4vY29jb29vbiB0byBtYXRjaCB3aGF0IHRoZSBkb2NzIHNheSBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS4yIHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjIgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBncmVnb3IKICAgICAgICA6CiAgICAgICAgWzEuMl0gCiAgICAgICAgICAgICMzMjE4MyBrZWVwIHRoZSB2aXNpYmlsaXR5IGF0dHJpYnV0ZSBpZiBhIHVzZWNhc2UgYXMgYXJjaGl2ZSBpcyBpbnZva2VkIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjIgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuMiB1cGRhdGUKICAgICAgICBieQogICAgICAgIGdyZWdvcgogICAgICAgIDoKICAgICAgICBbMS4yXSAKICAgICAgICAgICAgZW9sIHN0eWxlIHNldCBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS4yIHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjIgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBncmVnb3IKICAgICAgICA6CiAgICAgICAgWzEuMl0gCiAgICAgICAgICAgIGdldHRpbmcgdGVzdHMgdG8gcnVuIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjIgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuMiB1cGRhdGUKICAgICAgICBieQogICAgICAgIGdyZWdvcgogICAgICAgIDoKICAgICAgICBbMS4yXSAKICAgICAgICAgICAgZ2V0dGluZyB0ZXN0cyB0byBydW4gRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuMiB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS4yIHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgZ3JlZ29yCiAgICAgICAgOgogICAgICAgIFsxLjJdIAogICAgICAgICAgICBnZXR0aW5nIHRlc3RzIHRvIHJ1biBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS4yIHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjIgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBncmVnb3IKICAgICAgICA6CiAgICAgICAgWzEuMl0gCiAgICAgICAgICAgICBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS4yIHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjIgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBncmVnb3IKICAgICAgICA6CiAgICAgICAgWzEuMl0gCiAgICAgICAgICAgIGxpbmUgZW5kaW5ncyBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS40IHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjQgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBncmVnb3IKICAgICAgICA6CiAgICAgICAgWzEuNF0gCiAgICAgICAgICAgIHRyeWluZyB0byBnZXQgdGVzdHMgdG8gY29tcGlsZSBhZ2Fpbi4uIG5vdCBmaW5pc2hlZCB5ZXQuIHRoZSBhYyBjbGFzc2VzIHdlcmUgYWxsIHdyb25nLCBzdGlsbCBoYXZpbmcgdGhlIGFjMiBldGMgRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IERvY3MgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPkRvY3MgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICB0aG9yc3RlbgogICAgICAgIDoKICAgICAgICBbRG9jc10gCiAgICAgICAgICAgIGZpeGVkIHRoZSBvcGVuIGlzc3VlIHdpdGggYWdncmVnYXRpb24gRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IERvY3MgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPkRvY3MgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICB0aG9yc3RlbgogICAgICAgIDoKICAgICAgICBbRG9jc10gCiAgICAgICAgICAgIHJlbmFtZWQgZGlyIHRvIHNvbHZlIGEgYnVnIDstKSBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgU2FuZGJveCBhZGQ8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+U2FuZGJveCBhZGQKICAgICAgICBieQogICAgICAgIG1pY2hpCiAgICAgICAgOgogICAgICAgIFtTYW5kYm94XSAKICAgICAgICAgICAgbW9kX2xlbnlhIGFuZCBzYW5kYm94IGFkZGVkIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCBTaXRlIHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj5TaXRlIHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgdGhvcnN0ZW4KICAgICAgICA6CiAgICAgICAgW1NpdGVdIAogICAgICAgICAgICBmaXhlZCBtb3JlIHRscCByZWxhdGVkIHN0dWZmIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCBTaXRlIHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj5TaXRlIHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgdGhvcnN0ZW4KICAgICAgICA6CiAgICAgICAgW1NpdGVdIAogICAgICAgICAgICBmaXhlZCBtb3JlIHRscCByZWxhdGVkIHN0dWZmIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCBTaXRlIHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj5TaXRlIHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgdGhvcnN0ZW4KICAgICAgICA6CiAgICAgICAgW1NpdGVdIAogICAgICAgICAgICBmaXhlZCBtb3JlIHRscCByZWxhdGVkIHN0dWZmIGFuZCB1cGRhdGVkIHRoZSB3ZWJzaXRlLXVwZGF0ZSBkb2MgRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IFNpdGUgYWRkPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPlNpdGUgYWRkCiAgICAgICAgYnkKICAgICAgICB0aG9yc3RlbgogICAgICAgIDoKICAgICAgICBbU2l0ZV0gCiAgICAgICAgICAgIGRvY3VtZW50YXRpb24gcmVzdHJ1Y3R1cmUgYW5kIGFkZCBsaW5rIGZvciBhcGFjaGVDb24gRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IFNpdGUgcmVtb3ZlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPlNpdGUgcmVtb3ZlCiAgICAgICAgYnkKICAgICAgICB0aG9yc3RlbgogICAgICAgIDoKICAgICAgICBbU2l0ZV0gCiAgICAgICAgICAgIGRlbGwgb2xkIGRvY3MgRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IERvY3MgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPkRvY3MgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICB0aG9yc3RlbgogICAgICAgIDoKICAgICAgICBbRG9jc10gCiAgICAgICAgICAgIHN0YXJ0ZWQgdG8gdXNlIHRoZSBzdGF0dXMueG1sIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCBEb2NzIHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj5Eb2NzIHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgdGhvcnN0ZW4KICAgICAgICA6CiAgICAgICAgW0RvY3NdIAogICAgICAgICAgICBjbGVhbmVkIHRoZSB3cm9uZyBtYWlsaW5nIGFkZHJlc3MgRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuMiB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS4yIHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgZ3JlZ29yCiAgICAgICAgOgogICAgICAgIFsxLjJdIAogICAgICAgICAgICAjMjkxMzUgY29udmVydCBzcGFjZXMgaW4gYXNzZXQgZmlsZW5hbWVzIHRvIHVuZGVyc2NvcmVzIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjQgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuNCB1cGRhdGUKICAgICAgICBieQogICAgICAgIGdyZWdvcgogICAgICAgIDoKICAgICAgICBbMS40XSAKICAgICAgICAgICAgIzI5MTM1IGNvbnZlcnQgc3BhY2VzIGluIGFzc2V0IGZpbGVuYW1lcyB0byB1bmRlcnNjb3JlcyBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgRG9jcyBhZGQ8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+RG9jcyBhZGQKICAgICAgICBieQogICAgICAgIHRob3JzdGVuCiAgICAgICAgOgogICAgICAgIFtEb2NzXSAKICAgICAgICAgICAgaW5pdGlhbCB1cGxvYWQgRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IFNpdGUgYWRkPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPlNpdGUgYWRkCiAgICAgICAgYnkKICAgICAgICB0aG9yc3RlbgogICAgICAgIDoKICAgICAgICBbU2l0ZV0gCiAgICAgICAgICAgIGluaXRpYWwgdXBsb2FkIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCBTaXRlIGFkZDwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj5TaXRlIGFkZAogICAgICAgIGJ5CiAgICAgICAgdGhvcnN0ZW4KICAgICAgICA6CiAgICAgICAgW1NpdGVdIAogICAgICAgICAgICBpbml0aWFsIHVwbG9hZCBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgU2l0ZSBhZGQ8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+U2l0ZSBhZGQKICAgICAgICBieQogICAgICAgIHRob3JzdGVuCiAgICAgICAgOgogICAgICAgIFtTaXRlXSAKICAgICAgICAgICAgaW5pdGlhbCB1cGxvYWQgRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuMiB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS4yIHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgbWljaGkKICAgICAgICA6CiAgICAgICAgWzEuMl0gCiAgICAgICAgICAgIHRpbWVzdGFtcCBmb3JtYXQgZml4ZWQgRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IFNpdGUgYWRkPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPlNpdGUgYWRkCiAgICAgICAgYnkKICAgICAgICB0aG9yc3RlbgogICAgICAgIDoKICAgICAgICBbU2l0ZV0gCiAgICAgICAgICAgIGluaXRpYWwgdXBsb2FkIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCBTaXRlIGFkZDwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj5TaXRlIGFkZAogICAgICAgIGJ5CiAgICAgICAgdGhvcnN0ZW4KICAgICAgICA6CiAgICAgICAgW1NpdGVdIAogICAgICAgICAgICBpbml0aWFsIHVwbG9hZCBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgU2l0ZSByZW1vdmU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+U2l0ZSByZW1vdmUKICAgICAgICBieQogICAgICAgIHRob3JzdGVuCiAgICAgICAgOgogICAgICAgIFtTaXRlXSAKICAgICAgICAgICAgc3RpbGwgY2xlYW5pbmcgRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IFNpdGUgcmVtb3ZlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPlNpdGUgcmVtb3ZlCiAgICAgICAgYnkKICAgICAgICB0aG9yc3RlbgogICAgICAgIDoKICAgICAgICBbU2l0ZV0gCiAgICAgICAgICAgIHRscCBjbGVhbnVwIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCBTaXRlIHJlbW92ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj5TaXRlIHJlbW92ZQogICAgICAgIGJ5CiAgICAgICAgdGhvcnN0ZW4KICAgICAgICA6CiAgICAgICAgW1NpdGVdIAogICAgICAgICAgICB0bHAgY2xlYW51cCBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgRG9jcyByZW1vdmU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+RG9jcyByZW1vdmUKICAgICAgICBieQogICAgICAgIHRob3JzdGVuCiAgICAgICAgOgogICAgICAgIFtEb2NzXSAKICAgICAgICAgICAgY2xlYW5lZCB0aGUgZG9jdSBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgRG9jcyBhZGQ8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+RG9jcyBhZGQKICAgICAgICBieQogICAgICAgIHRob3JzdGVuCiAgICAgICAgOgogICAgICAgIFtEb2NzXSAKICAgICAgICAgICAgY3JlYXRpbmcgZG9jdSBkaXIKIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCBTaXRlIHJlbW92ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj5TaXRlIHJlbW92ZQogICAgICAgIGJ5CiAgICAgICAgdGhvcnN0ZW4KICAgICAgICA6CiAgICAgICAgW1NpdGVdIAogICAgICAgICAgICAKdGxwIHBhcnQgOTkKLS0KIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCBTaXRlIGFkZDwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj5TaXRlIGFkZAogICAgICAgIGJ5CiAgICAgICAgdGhvcnN0ZW4KICAgICAgICA6CiAgICAgICAgW1NpdGVdIAogICAgICAgICAgICBtb3ZpbmcgYWdhaW4KCiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgU2l0ZSByZW1vdmU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+U2l0ZSByZW1vdmUKICAgICAgICBieQogICAgICAgIHRob3JzdGVuCiAgICAgICAgOgogICAgICAgIFtTaXRlXSAKICAgICAgICAgICAgCnRscAotLQogRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IFNpdGUgYWRkPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPlNpdGUgYWRkCiAgICAgICAgYnkKICAgICAgICB0aG9yc3RlbgogICAgICAgIDoKICAgICAgICBbU2l0ZV0gCiAgICAgICAgICAgIHRscAoKIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCBTaXRlIHJlbW92ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj5TaXRlIHJlbW92ZQogICAgICAgIGJ5CiAgICAgICAgdGhvcnN0ZW4KICAgICAgICA6CiAgICAgICAgW1NpdGVdIAogICAgICAgICAgICBzdGlsbCBtb3ZpbmcKCiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgU2l0ZSBhZGQ8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+U2l0ZSBhZGQKICAgICAgICBieQogICAgICAgIHRob3JzdGVuCiAgICAgICAgOgogICAgICAgIFtTaXRlXSAKICAgICAgICAgICAgdGxwIGNsZWFudXAKIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCBTaXRlIHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj5TaXRlIHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgdGhvcnN0ZW4KICAgICAgICA6CiAgICAgICAgW1NpdGVdIAogICAgICAgICAgICBUTFAgY2xlYW4gdXAgRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IERvY3MgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPkRvY3MgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICB0aG9yc3RlbgogICAgICAgIDoKICAgICAgICBbRG9jc10gCiAgICAgICAgICAgIFRMUCBjbGVhbiB1cCBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgU2l0ZSBhZGQ8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+U2l0ZSBhZGQKICAgICAgICBieQogICAgICAgIHRob3JzdGVuCiAgICAgICAgOgogICAgICAgIFtTaXRlXSAKICAgICAgICAgICAgcmVzdHJ1Y3R1cmluZyBzaXRlIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCBTaXRlIHJlbW92ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj5TaXRlIHJlbW92ZQogICAgICAgIGJ5CiAgICAgICAgdGhvcnN0ZW4KICAgICAgICA6CiAgICAgICAgW1NpdGVdIAogICAgICAgICAgICByZXN0cnVjdHVyaW5nIHNpdGUgRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuMiB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS4yIHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgbWljaGkKICAgICAgICA6CiAgICAgICAgWzEuMl0gCiAgICAgICAgICAgIHRoYW5rcyB0byBKb3NpYXMgdGhlIElFIHByb2JsZW0gcmUgVVRGLTggaGFzIGJlZW4gZml4ZWQgRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuMiB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS4yIHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgbWljaGkKICAgICAgICA6CiAgICAgICAgWzEuMl0gCiAgICAgICAgICAgIG1vcmUgZGV0YWlscyBvbiBob3cgdG8gYnVpbGQgQ29jb29uIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCBTaXRlIHJlbW92ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj5TaXRlIHJlbW92ZQogICAgICAgIGJ5CiAgICAgICAgdGhvcnN0ZW4KICAgICAgICA6CiAgICAgICAgW1NpdGVdIAogICAgICAgICAgICBUaGlzIGxpbmUsIGFuZCB0aG9zZSBiZWxvdywgd2lsbCBiZSBpZ25vcmVkLS0KCkEgICAgaHR0cHM6Ly9zdm4uYXBhY2hlLm9yZy9yZXBvcy9hc2YvbGVueWEvc2l0ZS9sZW55YQogRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IERvY3MgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPkRvY3MgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBncmVnb3IKICAgICAgICA6CiAgICAgICAgW0RvY3NdIAogICAgICAgICAgICB3aGl0ZXNwYWNlIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCBEb2NzIHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj5Eb2NzIHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgZ3JlZ29yCiAgICAgICAgOgogICAgICAgIFtEb2NzXSAKICAgICAgICAgICAgdXBkYXRlIGxlbnlhIHNpdGUgaW5zdHJ1Y3Rpb25zIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAgYWRkPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPiBhZGQKICAgICAgICBieQogICAgICAgIGJsYXV0ZW5iCiAgICAgICAgOgogICAgICAgIFtdIAogICAgICAgICAgICBNaWdyYXRlIGxlbnlhIHRvIFRMUAogRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IERvY3MgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPkRvY3MgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBncmVnb3IKICAgICAgICA6CiAgICAgICAgW0RvY3NdIAogICAgICAgICAgICBhbm90aGVyIGxpdmUgc2l0ZSBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS4yIHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjIgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBhbnRvbmlvCiAgICAgICAgOgogICAgICAgIFsxLjJdIAogICAgICAgICAgICBGaXhpbmcgdHlwb3MgRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuMiBhZGQ8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS4yIGFkZAogICAgICAgIGJ5CiAgICAgICAgZ3JlZ29yCiAgICAgICAgOgogICAgICAgIFsxLjJdIAogICAgICAgICAgICBmYWN0b3Igb3V0IGpzIHZhbGlkYXRpb24KYWRkIGNoZWNrIGZvciBlbXB0eSB0aXRsZSB0byBhbGwgYXNzZXQgLyBpbWFnZSB1cGxvYWQgc2NyZWVucyBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS40IHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjQgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBncmVnb3IKICAgICAgICA6CiAgICAgICAgWzEuNF0gCiAgICAgICAgICAgIGZhY3RvciBvdXQganMgdmFsaWRhdGlvbgphZGQgY2hlY2sgZm9yIGVtcHR5IHRpdGxlIHRvIGFsbCBhc3NldCAvIGltYWdlIHVwbG9hZCBzY3JlZW5zIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjQgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuNCB1cGRhdGUKICAgICAgICBieQogICAgICAgIGFudG9uaW8KICAgICAgICA6CiAgICAgICAgWzEuNF0gCiAgICAgICAgICAgIERvbid0IHVzZSB1bmRlcnNjb3JlIHRleHQgZGVjb3JhdGlvbiBpbiB0aGUgbGVueWEgbWVudSBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS4yIHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjIgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBhbnRvbmlvCiAgICAgICAgOgogICAgICAgIFsxLjJdIAogICAgICAgICAgICBEb24ndCB1c2UgdW5kZXJzY29yZSB0ZXh0IGRlY29yYXRpb24gaW4gdGhlIGxlbnlhIG1lbnUgRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuNCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS40IHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgYW5kcmVhcwogICAgICAgIDoKICAgICAgICBbMS40XSAKICAgICAgICAgICAgbWVyZ2luZyBmcm9tIDEuMiBicmFuY2g6IGFkZCBsaWJyYXJ5IGJ1dHRvbnMgRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuNCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS40IHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgYW5kcmVhcwogICAgICAgIDoKICAgICAgICBbMS40XSAKICAgICAgICAgICAgbWVyZ2luZyBzY2hlbWEgY2hhbmdlIGZyb20gMS4yIGJyYW5jaCBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS4yIHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjIgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBhbmRyZWFzCiAgICAgICAgOgogICAgICAgIFsxLjJdIAogICAgICAgICAgICBhZGRpbmcgbGVueWE6YXNzZXQvQHNpemUgYXR0cmlidXRlIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjIgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuMiB1cGRhdGUKICAgICAgICBieQogICAgICAgIGFuZHJlYXMKICAgICAgICA6CiAgICAgICAgWzEuMl0gCiAgICAgICAgICAgIGFkZGluZyBidXR0b24gdG8gaW5zZXJ0IGFzc2V0IChmaXhlcyBidWcgIzMxOTUzKSBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS4yIHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjIgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBtaWNoaQogICAgICAgIDoKICAgICAgICBbMS4yXSAKICAgICAgICAgICAgaGFyZGNvZGVkIFhvcHVzIHBhdGggcmVtb3ZlZCBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS40IHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjQgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBncmVnb3IKICAgICAgICA6CiAgICAgICAgWzEuNF0gCiAgICAgICAgICAgIGZpeCBidWlsZCBlcm9ycywgaW1wcm92ZSBpbnRlZ3JhdGlvbiB3aXRoIGNvb29uIGJ1aWxkIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjIgYWRkPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuMiBhZGQKICAgICAgICBieQogICAgICAgIG1pY2hpCiAgICAgICAgOgogICAgICAgIFsxLjJdIAogICAgICAgICAgICBzY2hlbWEgYWRkZWQgRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuMiB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS4yIHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgbWljaGkKICAgICAgICA6CiAgICAgICAgWzEuMl0gCiAgICAgICAgICAgIGZhbHNlIHJlYWRkZWQgRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuMiB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS4yIHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgbWljaGkKICAgICAgICA6CiAgICAgICAgWzEuMl0gCiAgICAgICAgICAgIGhvbWVwYWdlIHJlYWRkZWQgRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuMiBhZGQ8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS4yIGFkZAogICAgICAgIGJ5CiAgICAgICAgbWljaGkKICAgICAgICA6CiAgICAgICAgWzEuMl0gCiAgICAgICAgICAgIGhvbWVwYWdlIHJlYWRkZWQgRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuMiB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS4yIHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgbWljaGkKICAgICAgICA6CiAgICAgICAgWzEuMl0gCiAgICAgICAgICAgIHNlcmlhbGl6ZSBJZGVudGl0eSBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS40IHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjQgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBncmVnb3IKICAgICAgICA6CiAgICAgICAgWzEuNF0gCiAgICAgICAgICAgIGJyaW5nIHNjaGVtYSBmb3Igb2JqZWN0IGNsb3NlciBpbiBzbnljIHdpdGggeGh0bWwgMiBkcmFmdCBhbmQgYWxsb3cgdGhlIGhyZWYgYXR0cml0dWJlCgp3ZSBzaG91bGQgcmVhbGx5IG1pZ3JhdGUgdG8gdGhlIHJuZyBmb3IgeGh0bWwgMiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS4yIHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjIgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBncmVnb3IKICAgICAgICA6CiAgICAgICAgWzEuMl0gCiAgICAgICAgICAgIGJyaW5nIHNjaGVtYSBmb3Igb2JqZWN0IGNsb3NlciBpbiBzbnljIHdpdGggeGh0bWwgMiBkcmFmdCBhbmQgYWxsb3cgdGhlIGhyZWYgYXR0cml0dWJlCgp3ZSBzaG91bGQgcmVhbGx5IG1pZ3JhdGUgdG8gdGhlIHJuZyBmb3IgeGh0bWwgMiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS4yIHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjIgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBncmVnb3IKICAgICAgICA6CiAgICAgICAgWzEuMl0gCiAgICAgICAgICAgIHJlbW92ZSB4dWwgZnJvbSAxLjIgYnJhbmNoIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjQgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuNCB1cGRhdGUKICAgICAgICBieQogICAgICAgIGdyZWdvcgogICAgICAgIDoKICAgICAgICBbMS40XSAKICAgICAgICAgICAgIzI5MTU2ICBpMThuIGZvciBjaGVja291dCBleGNlcHRpb25zIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjIgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuMiB1cGRhdGUKICAgICAgICBieQogICAgICAgIGdyZWdvcgogICAgICAgIDoKICAgICAgICBbMS4yXSAKICAgICAgICAgICAgIzI5MTU2ICBpMThuIGZvciBjaGVja291dCBleGNlcHRpb25zIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjIgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuMiB1cGRhdGUKICAgICAgICBieQogICAgICAgIGdyZWdvcgogICAgICAgIDoKICAgICAgICBbMS4yXSAKICAgICAgICAgICAgIzI5MTU2ICBpMThuIGZvciBjaGVja291dCBleGNlcHRpb25zIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjQgcmVtb3ZlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuNCByZW1vdmUKICAgICAgICBieQogICAgICAgIGdyZWdvcgogICAgICAgIDoKICAgICAgICBbMS40XSAKICAgICAgICAgICAgY2xlYW51cCBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS40IGFkZDwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjQgYWRkCiAgICAgICAgYnkKICAgICAgICBncmVnb3IKICAgICAgICA6CiAgICAgICAgWzEuNF0gCiAgICAgICAgICAgIHJlZmFjdG9yIHRoZSBidWlsZCB0byAKCiogdHJpZ2dlciB0aGUgY29jb29uIGJ1aWxkLCB1c2luZyB0aGUgbGVueWEtc3VwcGxpZWQgcHJvcGVydGllcwoqIHhwYXRjaCB0aGUgb3JpZ2luYWwgY29jb29uIHNpdGVtYXAgdG8gYXJyaXZlIGF0IHRoZSBsZW55YSBzaXRlbWFwIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjQgcmVtb3ZlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuNCByZW1vdmUKICAgICAgICBieQogICAgICAgIGdyZWdvcgogICAgICAgIDoKICAgICAgICBbMS40XSAKICAgICAgICAgICAgYnhlbmcgLSZndDsgYnhlIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjQgYWRkPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuNCBhZGQKICAgICAgICBieQogICAgICAgIGdyZWdvcgogICAgICAgIDoKICAgICAgICBbMS40XSAKICAgICAgICAgICAgYnhlbmcgLSZndDsgYnhlIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjQgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuNCB1cGRhdGUKICAgICAgICBieQogICAgICAgIGdyZWdvcgogICAgICAgIDoKICAgICAgICBbMS40XSAKICAgICAgICAgICAgYWRkIHhzbCBucwogRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IERvY3MgYWRkPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPkRvY3MgYWRkCiAgICAgICAgYnkKICAgICAgICB0aG9yc3RlbgogICAgICAgIDoKICAgICAgICBbRG9jc10gCiAgICAgICAgICAgIHJlc3RydWN0dXJlZCBkb2N1bWVudGF0aW9uIGFuZCBhZGRlZCBhcGFjaGVDb24gbG9nbyBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS4yIHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjIgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBncmVnb3IKICAgICAgICA6CiAgICAgICAgWzEuMl0gCiAgICAgICAgICAgIHVwZGF0ZSBsZW55YSAxLjIuMSBpc3N1ZXMgRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuMiByZW1vdmU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS4yIHJlbW92ZQogICAgICAgIGJ5CiAgICAgICAgZ3JlZ29yCiAgICAgICAgOgogICAgICAgIFsxLjJdIAogICAgICAgICAgICBkb2N1bWVudGF0aW9uIHdhcyBtb3ZlZCB0byBpdHMgb3duIGJyYW5jaCBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS40IHJlbW92ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjQgcmVtb3ZlCiAgICAgICAgYnkKICAgICAgICBncmVnb3IKICAgICAgICA6CiAgICAgICAgWzEuNF0gCiAgICAgICAgICAgIGRvY3VtZW50YXRpb24gd2FzIG1vdmVkIHRvIGl0cyBvd24gYnJhbmNoIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjIgcmVtb3ZlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuMiByZW1vdmUKICAgICAgICBieQogICAgICAgIGdyZWdvcgogICAgICAgIDoKICAgICAgICBbMS4yXSAKICAgICAgICAgICAgZG9jdW1lbnRhdGlvbiB3YXMgbW92ZWQgdG8gaXRzIG93biBicmFuY2ggRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuNCByZW1vdmU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS40IHJlbW92ZQogICAgICAgIGJ5CiAgICAgICAgZ3JlZ29yCiAgICAgICAgOgogICAgICAgIFsxLjRdIAogICAgICAgICAgICBzeW5jIHdpdGggMS4yIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjQgcmVtb3ZlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuNCByZW1vdmUKICAgICAgICBieQogICAgICAgIGdyZWdvcgogICAgICAgIDoKICAgICAgICBbMS40XSAKICAgICAgICAgICAgc3luYyB3aXRoIDEuMiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS40IHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjQgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBncmVnb3IKICAgICAgICA6CiAgICAgICAgWzEuNF0gCiAgICAgICAgICAgIGFkZCBtaXNzaW5nIHZlcnNpb24gYXR0cmlidXRlIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjQgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuNCB1cGRhdGUKICAgICAgICBieQogICAgICAgIGdyZWdvcgogICAgICAgIDoKICAgICAgICBbMS40XSAKICAgICAgICAgICAgRG9jdW1lbnRSZWZlcmVuY2VzSGVscGVyIHNpZ25hdHVyZSBjaGFuZ2VkIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjQgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuNCB1cGRhdGUKICAgICAgICBieQogICAgICAgIGdyZWdvcgogICAgICAgIDoKICAgICAgICBbMS40XSAKICAgICAgICAgICAgRG9jdW1lbnRSZWZlcmVuY2VzSGVscGVyIHNpZ25hdHVyZSBjaGFuZ2VkIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjQgYWRkPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuNCBhZGQKICAgICAgICBieQogICAgICAgIGdyZWdvcgogICAgICAgIDoKICAgICAgICBbMS40XSAKICAgICAgICAgICAgYWRkIFhVTCBjc3MgKHdhcyBmb3Jnb3R0ZW4gaW4gb3JpZ2luYWwgY29tbWl0KSBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS4yIHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjIgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICByb2t1CiAgICAgICAgOgogICAgICAgIFsxLjJdIAogICAgICAgICAgICBGaXhlZCBidWcgaHR0cDovL2lzc3Vlcy5hcGFjaGUub3JnL2J1Z3ppbGxhL3Nob3dfYnVnLmNnaT9pZD0zMTk4OApUaGFua3MgdG8gSmFubiBGb3JyZXIgRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuNCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS40IHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgZ3JlZ29yCiAgICAgICAgOgogICAgICAgIFsxLjRdIAogICAgICAgICAgICBBU0wgMi4wIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCBEb2NzIHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj5Eb2NzIHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgZ3JlZ29yCiAgICAgICAgOgogICAgICAgIFtEb2NzXSAKICAgICAgICAgICAgbmV3IGxpdmUgc2l0ZSBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS40IHJlbW92ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjQgcmVtb3ZlCiAgICAgICAgYnkKICAgICAgICBncmVnb3IKICAgICAgICA6CiAgICAgICAgWzEuNF0gCiAgICAgICAgICAgIGRvY3VtZW50YXRpb24gbW92ZWQgdG8gL2xlbnlhL3NpdGUgRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuNCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS40IHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgcm9rdQogICAgICAgIDoKICAgICAgICBbMS40XSAKICAgICAgICAgICAgRml4ZWQgCmh0dHA6Ly9pc3N1ZXMuYXBhY2hlLm9yZy9idWd6aWxsYS9zaG93X2J1Zy5jZ2k/aWQ9MzE5ODcgRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuMiBhZGQ8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS4yIGFkZAogICAgICAgIGJ5CiAgICAgICAgcm9rdQogICAgICAgIDoKICAgICAgICBbMS4yXSAKICAgICAgICAgICAgRml4ZWQgCmh0dHA6Ly9pc3N1ZXMuYXBhY2hlLm9yZy9idWd6aWxsYS9zaG93X2J1Zy5jZ2k/aWQ9MzE5ODcgRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IERvY3MgYWRkPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPkRvY3MgYWRkCiAgICAgICAgYnkKICAgICAgICBncmVnb3IKICAgICAgICA6CiAgICAgICAgW0RvY3NdIAogICAgICAgICAgICBwcmVzZXJ2ZWQgZG9jdW1lbnQydHh0LnhzbCBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgU2l0ZSBhZGQ8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+U2l0ZSBhZGQKICAgICAgICBieQogICAgICAgIGdyZWdvcgogICAgICAgIDoKICAgICAgICBbU2l0ZV0gCiAgICAgICAgICAgIHByZXNlcnZlZCBkb2N1bWVudDJ0eHQueHNsIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjQgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuNCB1cGRhdGUKICAgICAgICBieQogICAgICAgIGdyZWdvcgogICAgICAgIDoKICAgICAgICBbMS40XSAKICAgICAgICAgICAgZGVwcmVjYXRlZCBjb25mLnByb3BlcnRpZXMgcmVtb3ZlZCBmcm9tIFJDIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjQgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuNCB1cGRhdGUKICAgICAgICBieQogICAgICAgIHJva3UKICAgICAgICA6CiAgICAgICAgWzEuNF0gCiAgICAgICAgICAgIEFkZGVkIHN1cHBvcnQgZm9yIGFyY2hpdmUgbm9kZSBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS4yIHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjIgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICByb2t1CiAgICAgICAgOgogICAgICAgIFsxLjJdIAogICAgICAgICAgICBGaXhlZCAzMTk1NSBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS4yIHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjIgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBncmVnb3IKICAgICAgICA6CiAgICAgICAgWzEuMl0gCiAgICAgICAgICAgIGV4Y2x1ZGVzIGNoYW5nZWQgZHVlIHRvIHN2biBtb3ZlIGFuZCBidWlsZCByZWZhY3RvcmluZyBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS40IHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjQgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBncmVnb3IKICAgICAgICA6CiAgICAgICAgWzEuNF0gCiAgICAgICAgICAgIGV4Y2x1ZGVzIGNoYW5nZWQgZHVlIHRvIHN2biBtb3ZlIGFuZCBidWlsZCByZWZhY3RvcmluZyBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS4yIHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjIgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBncmVnb3IKICAgICAgICA6CiAgICAgICAgWzEuMl0gCiAgICAgICAgICAgIHJlZHVjZSB2ZXJib3NpdHkgRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuNCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS40IHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgZ3JlZ29yCiAgICAgICAgOgogICAgICAgIFsxLjRdIAogICAgICAgICAgICByZWR1Y2UgdmVyYm9zaXR5IERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjIgcmVtb3ZlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuMiByZW1vdmUKICAgICAgICBieQogICAgICAgIGdyZWdvcgogICAgICAgIDoKICAgICAgICBbMS4yXSAKICAgICAgICAgICAgY2xlYW51cCBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS4yIHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjIgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBncmVnb3IKICAgICAgICA6CiAgICAgICAgWzEuMl0gCiAgICAgICAgICAgIG1hZGUgaW1hZ2UgdXBsb2FkIHdvcmsgYWdhaW4KbWFkZSB0aXRsZSBtYW5kYXRvcnkgKG5vdyB1c2VkIGZvciBsaXN0aW5nIGFzc2V0cykKYWRkZWQgbm90ZSBhYm91dCBsb3dlcmNhc2luZyBmaWxlIGV4dGVuc2lvbnMKYWRkZWQganMgdmFsaWRhdGlvbiBvZiB0aXRsZQpmaXhlZCBtaXNzaW5nIHRyYW5zbGF0aW9uIGluIGFzc2V0IHNjcmVlbiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS40IHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjQgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBncmVnb3IKICAgICAgICA6CiAgICAgICAgWzEuNF0gCiAgICAgICAgICAgIG1hZGUgaW1hZ2UgdXBsb2FkIHdvcmsgYWdhaW4KbWFkZSB0aXRsZSBtYW5kYXRvcnkgKG5vdyB1c2VkIGZvciBsaXN0aW5nIGFzc2V0cykKYWRkZWQgbm90ZSBhYm91dCBsb3dlcmNhc2luZyBmaWxlIGV4dGVuc2lvbnMKYWRkZWQganMgdmFsaWRhdGlvbiBvZiB0aXRsZQpmaXhlZCBtaXNzaW5nIHRyYW5zbGF0aW9uIGluIGFzc2V0IHNjcmVlbiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS40IHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjQgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICByb2t1CiAgICAgICAgOgogICAgICAgIFsxLjRdIAogICAgICAgICAgICBGaXhlZCBtZXRhIGRhdGEgYWNjZXNzLiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS40IHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjQgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBncmVnb3IKICAgICAgICA6CiAgICAgICAgWzEuNF0gCiAgICAgICAgICAgIGFjdGl2YXRlIHh1bCBtZW51IERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjIgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuMiB1cGRhdGUKICAgICAgICBieQogICAgICAgIHJva3UKICAgICAgICA6CiAgICAgICAgWzEuMl0gCiAgICAgICAgICAgIFJlbW92ZWQgZGVidWcgc3R1ZmYgRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuMiB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS4yIHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgcm9rdQogICAgICAgIDoKICAgICAgICBbMS4yXSAKICAgICAgICAgICAgRml4ZWQgbWV0YSBkYXRhIGFjY2Vzcy4gRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuNCByZW1vdmU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS40IHJlbW92ZQogICAgICAgIGJ5CiAgICAgICAgZ3JlZ29yCiAgICAgICAgOgogICAgICAgIFsxLjRdIAogICAgICAgICAgICBieGVuZyAtJmd0OyBieGUgRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuNCByZW1vdmU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS40IHJlbW92ZQogICAgICAgIGJ5CiAgICAgICAgZ3JlZ29yCiAgICAgICAgOgogICAgICAgIFsxLjRdIAogICAgICAgICAgICBieGVuZyAtJmd0OyBieGUgRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuNCBhZGQ8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS40IGFkZAogICAgICAgIGJ5CiAgICAgICAgZ3JlZ29yCiAgICAgICAgOgogICAgICAgIFsxLjRdIAogICAgICAgICAgICBieGVuZyAtJmd0OyBieGUgRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuMiB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS4yIHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgZ3JlZ29yCiAgICAgICAgOgogICAgICAgIFsxLjJdIAogICAgICAgICAgICBlbmFibGUgaW1hZ2UgdXBsb2FkIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjQgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuNCB1cGRhdGUKICAgICAgICBieQogICAgICAgIGdyZWdvcgogICAgICAgIDoKICAgICAgICBbMS40XSAKICAgICAgICAgICAgZW5hYmxlIGltYWdlIHVwbG9hZCBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS4yIHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjIgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBncmVnb3IKICAgICAgICA6CiAgICAgICAgWzEuMl0gCiAgICAgICAgICAgICMzMDA4MCAgQlhFIHVzZWNhc2UgaGFzIGhhcmRjb2RlZCBsaW5rIHRvIEdlcm1hbiBsYW5ndWFnZSBmb3IgYSBzaXRldHJlZSBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgRG9jcyB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+RG9jcyB1cGRhdGUKICAgICAgICBieQogICAgICAgIGdyZWdvcgogICAgICAgIDoKICAgICAgICBbRG9jc10gCiAgICAgICAgICAgIG5ldyBsaXZlIHNpdGVzLi4gRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuNCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS40IHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgZ3JlZ29yCiAgICAgICAgOgogICAgICAgIFsxLjRdIAogICAgICAgICAgICAjMzAwODAgIEJYRSB1c2VjYXNlIGhhcyBoYXJkY29kZWQgbGluayB0byBHZXJtYW4gbGFuZ3VhZ2UgZm9yIGEgc2l0ZXRyZWUgRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IERvY3MgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPkRvY3MgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBncmVnb3IKICAgICAgICA6CiAgICAgICAgW0RvY3NdIAogICAgICAgICAgICBkb2N1bWVudGF0aW9uIHdhcyB3cm9uZy4gCgpJdCBzaG91bGQgcmVhZAoKIi9sZW55YSIgaW5zdGVhZCBvZiAibGVueWEiCiIvbmV3cy9mb28iIGluc3RlYWQgb2YgIm5ld3MvZm9vIgoKIzI5Njk4IERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjQgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuNCB1cGRhdGUKICAgICAgICBieQogICAgICAgIHJva3UKICAgICAgICA6CiAgICAgICAgWzEuNF0gCiAgICAgICAgICAgIEZpeGVkIG15IGxhc3QgY2hlY2tpbiA6KSBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS40IHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjQgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICByb2t1CiAgICAgICAgOgogICAgICAgIFsxLjRdIAogICAgICAgICAgICBGaXggZm9yIGJ1ZyAjMzE5NDEgRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuMiB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS4yIHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgcm9rdQogICAgICAgIDoKICAgICAgICBbMS4yXSAKICAgICAgICAgICAgRml4IGZvciBidWcgIzMxOTQxIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjQgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuNCB1cGRhdGUKICAgICAgICBieQogICAgICAgIHJva3UKICAgICAgICA6CiAgICAgICAgWzEuNF0gCiAgICAgICAgICAgIFtNZXJnZWQgZnJvbSAxLjIueF0KSW1wcm92ZWQgZXJyb3IgbWVzc2FnZSBvbiBtaXNzaW5nIGt1cHUgYnVpbGQgRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuMiB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS4yIHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgcm9rdQogICAgICAgIDoKICAgICAgICBbMS4yXSAKICAgICAgICAgICAgSW1wcm92ZWQgZXJyb3IgbWVzc2FnZSBvbiBtaXNzaW5nIGt1cHUgYnVpbGQgRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IERvY3MgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPkRvY3MgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBncmVnb3IKICAgICAgICA6CiAgICAgICAgW0RvY3NdIAogICAgICAgICAgICBuZXcgbGl2ZSBzaXRlIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjIgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuMiB1cGRhdGUKICAgICAgICBieQogICAgICAgIGdyZWdvcgogICAgICAgIDoKICAgICAgICBbMS4yXSAKICAgICAgICAgICAgdGhlIGZvcm0gZWRpdG9ycyBhbmQgYnhlIG5vIGxvbmdlciByZXF1aXJlIGlzbyBlbmNvZGluZyBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS40IHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjQgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBncmVnb3IKICAgICAgICA6CiAgICAgICAgWzEuNF0gCiAgICAgICAgICAgIHRoZSBmb3JtIGVkaXRvcnMgYW5kIGJ4ZSBubyBsb25nZXIgcmVxdWlyZSBpc28gZW5jb2RpbmcgRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuMiB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS4yIHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgZ3JlZ29yCiAgICAgICAgOgogICAgICAgIFsxLjJdIAogICAgICAgICAgICB3aGVuIHdpbGwgcGVvcGxlIGxlYXJuIHRvIHVzZSB0aGUgcmVwb3NpdG9yeSBpbnN0ZWFkIG9mIGNvbW1lbnRpbmcgZGVhZCBjb2RlIG91dC4uIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjQgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuNCB1cGRhdGUKICAgICAgICBieQogICAgICAgIGdyZWdvcgogICAgICAgIDoKICAgICAgICBbMS40XSAKICAgICAgICAgICAgd2hlbiB3aWxsIHBlb3BsZSBsZWFybiB0byB1c2UgdGhlIHJlcG9zaXRvcnkgaW5zdGVhZCBvZiBjb21tZW50aW5nIGRlYWQgY29kZSBvdXQuLiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS4yIHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjIgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBncmVnb3IKICAgICAgICA6CiAgICAgICAgWzEuMl0gCiAgICAgICAgICAgIGNvbnNpc3RlbmN5IERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjIgYWRkPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuMiBhZGQKICAgICAgICBieQogICAgICAgIGdyZWdvcgogICAgICAgIDoKICAgICAgICBbMS4yXSAKICAgICAgICAgICAgYWRkIHdvcmtmbG93IHRvIGxpbmtzIHNhbXBsZSBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS4yIGFkZDwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjIgYWRkCiAgICAgICAgYnkKICAgICAgICBncmVnb3IKICAgICAgICA6CiAgICAgICAgWzEuMl0gCiAgICAgICAgICAgIGFkZCB3b3JrZmxvdyB0byBsaW5rcyBzYW1wbGUgRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuNCBhZGQ8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS40IGFkZAogICAgICAgIGJ5CiAgICAgICAgZ3JlZ29yCiAgICAgICAgOgogICAgICAgIFsxLjRdIAogICAgICAgICAgICBhZGQgd29ya2Zsb3cgdG8gbGlua3Mgc2FtcGxlIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjQgYWRkPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuNCBhZGQKICAgICAgICBieQogICAgICAgIGdyZWdvcgogICAgICAgIDoKICAgICAgICBbMS40XSAKICAgICAgICAgICAgYWRkIHdvcmtmbG93IHRvIGxpbmtzIHNhbXBsZSBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgRG9jcyBhZGQ8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+RG9jcyBhZGQKICAgICAgICBieQogICAgICAgIHRob3JzdGVuCiAgICAgICAgOgogICAgICAgIFtEb2NzXSAKICAgICAgICAgICAgaW5pdGFsIGNoZWNraW4gcGFydDIgRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IERvY3MgYWRkPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPkRvY3MgYWRkCiAgICAgICAgYnkKICAgICAgICB0aG9yc3RlbgogICAgICAgIDoKICAgICAgICBbRG9jc10gCiAgICAgICAgICAgIGluaXRhbCBjaGVja2luIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjIgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuMiB1cGRhdGUKICAgICAgICBieQogICAgICAgIGdyZWdvcgogICAgICAgIDoKICAgICAgICBbMS4yXSAKICAgICAgICAgICAgbWFrZSBsaW5rcyBtZW51IGJlaGF2ZSBsaWtlIGEgZ3Jvd24tdXAgbGVueWEgbWVudSBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS40IHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjQgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBncmVnb3IKICAgICAgICA6CiAgICAgICAgWzEuNF0gCiAgICAgICAgICAgIG1ha2UgbGlua3MgbWVudSBiZWhhdmUgbGlrZSBhIGdyb3duLXVwIGxlbnlhIG1lbnUgRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuNCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS40IHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgbWljaGkKICAgICAgICA6CiAgICAgICAgWzEuNF0gCiAgICAgICAgICAgIGluY3ViYXRpbmcgcmVtb3ZlZCBhbmQgdmVyc2lvbiBmaXhlZCBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS4yIHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjIgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBtaWNoaQogICAgICAgIDoKICAgICAgICBbMS4yXSAKICAgICAgICAgICAgaW5jdWJhdGluZyByZW1vdmVkIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjIgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuMiB1cGRhdGUKICAgICAgICBieQogICAgICAgIHJva3UKICAgICAgICA6CiAgICAgICAgWzEuMl0gCiAgICAgICAgICAgIGZpeGVkIHJlZiB0byBrdXB1IERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjIgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuMiB1cGRhdGUKICAgICAgICBieQogICAgICAgIHJva3UKICAgICAgICA6CiAgICAgICAgWzEuMl0gCiAgICAgICAgICAgIFNldCBLdXB1IHRvIHRydW5rIHZlcnNpb24sIHNpbmNlIGludGVncmF0aW9uIGludG8gMS4xIGJyYW5jaCBpcyBub3Qgd29ya2luZyBwcm9wZXJseSBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS4yIHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjIgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICByb2t1CiAgICAgICAgOgogICAgICAgIFsxLjJdIAogICAgICAgICAgICBVcGRhdGVkIHRvIGJ4ZSAwLjkuNiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS4yIHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjIgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBtaWNoaQogICAgICAgIDoKICAgICAgICBbMS4yXSAKICAgICAgICAgICAgYmFja3dhcmRzIGNvbXBhdGliaWxpdHkgZml4ZWQgRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuMiB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS4yIHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgYW5kcmVhcwogICAgICAgIDoKICAgICAgICBbMS4yXSAKICAgICAgICAgICAgZG9uJ3Qgc3dhbGxvdyBhbGwgY2hpbGRyZW4gd2hlbiBtYXRjaGluZyAmbHQ7Y29jb29uJmd0OyBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS40IHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjQgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBtaWNoaQogICAgICAgIDoKICAgICAgICBbMS40XSAKICAgICAgICAgICAgaWdub3JlIGxvY2FsIHByb3BlcnRpZXMgRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuMiB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS4yIHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgbWljaGkKICAgICAgICA6CiAgICAgICAgWzEuMl0gCiAgICAgICAgICAgIGlnbm9yZSBsb2NhbCBwcm9wZXJ0aWVzIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjIgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuMiB1cGRhdGUKICAgICAgICBieQogICAgICAgIGdyZWdvcgogICAgICAgIDoKICAgICAgICBbMS4yXSAKICAgICAgICAgICAgc3luYyBidWlsZC5wcm9wZXJ0aWVzIHdpdGggY2hhbmdlcyBpbiBjb2Nvb24gRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuNCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS40IHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgZ3JlZ29yCiAgICAgICAgOgogICAgICAgIFsxLjRdIAogICAgICAgICAgICBzeW5jIGJ1aWxkLnByb3BlcnRpZXMgd2l0aCBjaGFuZ2VzIGluIGNvY29vbiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS4yIHJlbW92ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjIgcmVtb3ZlCiAgICAgICAgYnkKICAgICAgICBncmVnb3IKICAgICAgICA6CiAgICAgICAgWzEuMl0gCiAgICAgICAgICAgIG5vIGxvbmdlciBuZWVkZWQgRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuMiBhZGQ8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS4yIGFkZAogICAgICAgIGJ5CiAgICAgICAgZ3JlZ29yCiAgICAgICAgOgogICAgICAgIFsxLjJdIAogICAgICAgICAgICBtb3ZlIGZvcnJlc3Qgc291cmNlIHR5cGUgYWN0aW9uIGhlcmUgRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuMiB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS4yIHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgZ3JlZ29yCiAgICAgICAgOgogICAgICAgIFsxLjJdIAogICAgICAgICAgICBkZWxldGUgZG9jcy1uZXcgYW5kIHBvaW50IHRvIHRoZSBsaXZlIGRvY3VtZW50YXRpb24gZm9yIG5vdyBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS4yIHJlbW92ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjIgcmVtb3ZlCiAgICAgICAgYnkKICAgICAgICBncmVnb3IKICAgICAgICA6CiAgICAgICAgWzEuMl0gCiAgICAgICAgICAgIGRlbGV0ZSBkb2NzLW5ldyBhbmQgcG9pbnQgdG8gdGhlIGxpdmUgZG9jdW1lbnRhdGlvbiBmb3Igbm93IERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjIgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuMiB1cGRhdGUKICAgICAgICBieQogICAgICAgIGdyZWdvcgogICAgICAgIDoKICAgICAgICBbMS4yXSAKICAgICAgICAgICAgIzMxNTMzCgkgIAlbUGF0Y2hdIHdvcmthcm91bmQgZm9yIFhIVE1MICZsdDtzY3JpcHQvJmd0OyBidWcgaW4gbW9zdCBicm93c2VyIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjQgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuNCB1cGRhdGUKICAgICAgICBieQogICAgICAgIGdyZWdvcgogICAgICAgIDoKICAgICAgICBbMS40XSAKICAgICAgICAgICAgIzMxNTMzCgkgIAlbUGF0Y2hdIHdvcmthcm91bmQgZm9yIFhIVE1MICZsdDtzY3JpcHQvJmd0OyBidWcgaW4gbW9zdCBicm93c2VyIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjQgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuNCB1cGRhdGUKICAgICAgICBieQogICAgICAgIGdyZWdvcgogICAgICAgIDoKICAgICAgICBbMS40XSAKICAgICAgICAgICAgY29jb29uIHNpdGUgYnJhbmNoIGNoYW5nZWQgaXRzIG5hbWUgRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IFNpdGUgYWRkPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPlNpdGUgYWRkCiAgICAgICAgYnkKICAgICAgICBncmVnb3IKICAgICAgICA6CiAgICAgICAgW1NpdGVdIAogICAgICAgICAgICAgRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IFNpdGUgYWRkPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPlNpdGUgYWRkCiAgICAgICAgYnkKICAgICAgICBncmVnb3IKICAgICAgICA6CiAgICAgICAgW1NpdGVdIAogICAgICAgICAgICAgRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IFNpdGUgYWRkPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPlNpdGUgYWRkCiAgICAgICAgYnkKICAgICAgICBncmVnb3IKICAgICAgICA6CiAgICAgICAgW1NpdGVdIAogICAgICAgICAgICAgRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IFNpdGUgYWRkPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPlNpdGUgYWRkCiAgICAgICAgYnkKICAgICAgICBncmVnb3IKICAgICAgICA6CiAgICAgICAgW1NpdGVdIAogICAgICAgICAgICAgRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IFNpdGUgYWRkPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPlNpdGUgYWRkCiAgICAgICAgYnkKICAgICAgICBncmVnb3IKICAgICAgICA6CiAgICAgICAgW1NpdGVdIAogICAgICAgICAgICAgRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IFNpdGUgYWRkPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPlNpdGUgYWRkCiAgICAgICAgYnkKICAgICAgICBncmVnb3IKICAgICAgICA6CiAgICAgICAgW1NpdGVdIAogICAgICAgICAgICBjcmVhdGUgc2l0ZSBicmFuY2ggRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuNCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS40IHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgdGhvcnN0ZW4KICAgICAgICA6CiAgICAgICAgWzEuNF0gCiAgICAgICAgICAgIGZpeGVkIGEgY29sb3VyIGlzc3VlIGZvciBvdXIgd2Vic2l0ZSBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS4yIHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjIgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICB0aG9yc3RlbgogICAgICAgIDoKICAgICAgICBbMS4yXSAKICAgICAgICAgICAgZml4ZWQgYSBjb2xvdXIgaXNzdWUgZm9yIG91ciB3ZWJzaXRlIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjIgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuMiB1cGRhdGUKICAgICAgICBieQogICAgICAgIGdyZWdvcgogICAgICAgIDoKICAgICAgICBbMS4yXSAKICAgICAgICAgICAgbm8gbG9uZ2VyIG5lZWQgYnhlIC8ga3VwdSBleGNsdWRlcyBzaW5jZSB0aGV5IGFyZSBub3cgcGFydCBvZiB0aGUgc291cmNlIHRyZWUgRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuNCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS40IHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgYW5kcmVhcwogICAgICAgIDoKICAgICAgICBbMS40XSAKICAgICAgICAgICAgY2hhbmdlZCBBYnN0cmFjdERPTVRyYW5zZm9ybWVyIGZyb20gQ29tcG9zYWJsZSB0byBTZXJ2aWNlYWJsZSBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS4yIHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjIgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBncmVnb3IKICAgICAgICA6CiAgICAgICAgWzEuMl0gCiAgICAgICAgICAgICMzMTM1NwoJICAJW1BhdGNoXSBBZGQgdmlzaWJpbGl0eSBhdHRyaWJ1dGUgdG8gbm9kZSB3aXRoaW4gc2l0ZXRyZWUgKGFnYWluc3QgbGVueWEtMS4yLngpIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjQgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuNCB1cGRhdGUKICAgICAgICBieQogICAgICAgIGdyZWdvcgogICAgICAgIDoKICAgICAgICBbMS40XSAKICAgICAgICAgICAgIzMwMDAwIEFsdCBhdHRyaWJ1dGUgbm90IHNldCBmb3IgaW1hZ2VzIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjIgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuMiB1cGRhdGUKICAgICAgICBieQogICAgICAgIGdyZWdvcgogICAgICAgIDoKICAgICAgICBbMS4yXSAKICAgICAgICAgICAgIzMwMDAwIEFsdCBhdHRyaWJ1dGUgbm90IHNldCBmb3IgaW1hZ2VzIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjIgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuMiB1cGRhdGUKICAgICAgICBieQogICAgICAgIGdyZWdvcgogICAgICAgIDoKICAgICAgICBbMS4yXSAKICAgICAgICAgICAgIzI3NDAwCgkgIAlbcGF0Y2hdIGNvbnNvbGlkYXRlIFJlZGlyZWN0IGZpbGVzIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjQgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuNCB1cGRhdGUKICAgICAgICBieQogICAgICAgIGdyZWdvcgogICAgICAgIDoKICAgICAgICBbMS40XSAKICAgICAgICAgICAgIzI3NDAwCgkgIAlbcGF0Y2hdIGNvbnNvbGlkYXRlIFJlZGlyZWN0IGZpbGVzIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjQgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuNCB1cGRhdGUKICAgICAgICBieQogICAgICAgIGdyZWdvcgogICAgICAgIDoKICAgICAgICBbMS40XSAKICAgICAgICAgICAgZml4IGx1Y2VuZSBjcmF3bGVyIGxpYnJhcmllcy4uIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjIgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuMiB1cGRhdGUKICAgICAgICBieQogICAgICAgIGdyZWdvcgogICAgICAgIDoKICAgICAgICBbMS4yXSAKICAgICAgICAgICAgZml4IGx1Y2VuZSBjcmF3bGVyIGxpYnJhcmllcy4uIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjQgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuNCB1cGRhdGUKICAgICAgICBieQogICAgICAgIGdyZWdvcgogICAgICAgIDoKICAgICAgICBbMS40XSAKICAgICAgICAgICAgIzMxODYzCgkgIAlFZGl0aW5nIHRoZSBIb21lcGFnZSBvZiB0aGUgZGVmYXVsdCBwdWIgdGhyb3dzIGFuIGhvbWVwYWdlLnJuZyBub3QgZm91bmQgZXJyb3IgRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuMiB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS4yIHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgZ3JlZ29yCiAgICAgICAgOgogICAgICAgIFsxLjJdIAogICAgICAgICAgICAjMzE4NjMKCSAgCUVkaXRpbmcgdGhlIEhvbWVwYWdlIG9mIHRoZSBkZWZhdWx0IHB1YiB0aHJvd3MgYW4gaG9tZXBhZ2Uucm5nIG5vdCBmb3VuZCBlcnJvciBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS40IHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjQgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBncmVnb3IKICAgICAgICA6CiAgICAgICAgWzEuNF0gCiAgICAgICAgICAgICMyNjU4OAoJICAJUmV3b3JkIGluc3RhbGwgZGlyZWN0aW9ucyBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS4yIHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjIgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBncmVnb3IKICAgICAgICA6CiAgICAgICAgWzEuMl0gCiAgICAgICAgICAgICMyNjU4OAoJICAJUmV3b3JkIGluc3RhbGwgZGlyZWN0aW9ucyBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS40IHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjQgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBncmVnb3IKICAgICAgICA6CiAgICAgICAgWzEuNF0gCiAgICAgICAgICAgICMzMDU5NgkgIAlDb3B5SmF2YVNvdXJjZXNUYXNrLmphdmEgQW50IHRhc2sgb25seSB3b3JrcyByZWxhdGl2ZSB0byBiYXNlZGlyIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjIgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuMiB1cGRhdGUKICAgICAgICBieQogICAgICAgIGdyZWdvcgogICAgICAgIDoKICAgICAgICBbMS4yXSAKICAgICAgICAgICAgIzMwNTk2CSAgCUNvcHlKYXZhU291cmNlc1Rhc2suamF2YSBBbnQgdGFzayBvbmx5IHdvcmtzIHJlbGF0aXZlIHRvIGJhc2VkaXIgRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuNCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS40IHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgZ3JlZ29yCiAgICAgICAgOgogICAgICAgIFsxLjRdIAogICAgICAgICAgICBzeW5jIHdpdGggMS4yIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjQgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuNCB1cGRhdGUKICAgICAgICBieQogICAgICAgIGdyZWdvcgogICAgICAgIDoKICAgICAgICBbMS40XSAKICAgICAgICAgICAgc3luYyB3aXRoIDEuMiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS4yIHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjIgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICByb2t1CiAgICAgICAgOgogICAgICAgIFsxLjJdIAogICAgICAgICAgICBSZW1vdmVkIGJ1aWxkIG9mIEt1cHUgZHVyaW5nIGJ1aWxkIG9mIHdlYmFwcCBzaW5jZSB3ZSB3b3VsZCBoYXZlIGEgeHNsdHByb2MgZGVwZW5kZW5jeSB0aGVuLCB3aGljaCBpcyBiYWQuClRPRE86IEFkZCB0aGUgcG9zc2liaWxpdHkgdG8gYnVpbGQga3VwdSB2aWEgImJ1aWxkLnNoIGt1cHUiIGFuZCAiYnVpbGQuYmF0IGt1cHUiIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjIgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuMiB1cGRhdGUKICAgICAgICBieQogICAgICAgIHJva3UKICAgICAgICA6CiAgICAgICAgWzEuMl0gCiAgICAgICAgICAgIEFkZGVkIGt1cHUgYnVpbGQuIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjQgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuNCB1cGRhdGUKICAgICAgICBieQogICAgICAgIHJva3UKICAgICAgICA6CiAgICAgICAgWzEuNF0gCiAgICAgICAgICAgIFRyeWluZyBzdm46ZXh0ZXJuYWxzIHByb3BlcnR5LiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS4yIHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjIgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICByb2t1CiAgICAgICAgOgogICAgICAgIFsxLjJdIAogICAgICAgICAgICBUcnlpbmcgc3ZuOmV4dGVybmFscyBwcm9wZXJ0eS4gRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuMiB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS4yIHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgcm9rdQogICAgICAgIDoKICAgICAgICBbMS4yXSAKICAgICAgICAgICAgVHJ5aW5nIHN2bjpleHRlcm5hbHMgcHJvcGVydHkuIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjIgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuMiB1cGRhdGUKICAgICAgICBieQogICAgICAgIHJva3UKICAgICAgICA6CiAgICAgICAgWzEuMl0gCiAgICAgICAgICAgIFRyeWluZyBzdm46ZXh0ZXJuYWxzIHByb3BlcnR5LiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS40IHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjQgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICByb2t1CiAgICAgICAgOgogICAgICAgIFsxLjRdIAogICAgICAgICAgICAgRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuMiB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS4yIHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgcm9rdQogICAgICAgIDoKICAgICAgICBbMS4yXSAKICAgICAgICAgICAgIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjQgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuNCB1cGRhdGUKICAgICAgICBieQogICAgICAgIHJva3UKICAgICAgICA6CiAgICAgICAgWzEuNF0gCiAgICAgICAgICAgIEZpeGVkIGRvczJ1bml4IGNvbnZlcnNpb24gcHJvYmxlbS4gRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuMiB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS4yIHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgZ3JlZ29yCiAgICAgICAgOgogICAgICAgIFsxLjJdIAogICAgICAgICAgICBuZXcgbGVueWEgc2l0ZSBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS40IHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjQgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICByb2t1CiAgICAgICAgOgogICAgICAgIFsxLjRdIAogICAgICAgICAgICBGaXhlZCBkb3MydW5peCBjb252ZXJzaW9uIHByb2JsZW0uIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjQgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuNCB1cGRhdGUKICAgICAgICBieQogICAgICAgIHJva3UKICAgICAgICA6CiAgICAgICAgWzEuNF0gCiAgICAgICAgICAgIEZpeGVkIGRvczJ1bml4IGNvbnZlcnNpb24gcHJvYmxlbS4gRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuMiB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS4yIHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgcm9rdQogICAgICAgIDoKICAgICAgICBbMS4yXSAKICAgICAgICAgICAgRml4ZWQgZG9zMnVuaXggY29udmVyc2lvbiBwcm9ibGVtLiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS4yIHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjIgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBhbnRvbmlvCiAgICAgICAgOgogICAgICAgIFsxLjJdIAogICAgICAgICAgICBVbmRvIGxhc3Rlc3QgY2hhbmdlIChyZXN0b3JlIGNvcHkgb2YgbGliLWRpcikgRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuMiB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS4yIHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgYW50b25pbwogICAgICAgIDoKICAgICAgICBbMS4yXSAKICAgICAgICAgICAge3Rvb2xzLmxpYi5kaXJ9IGRvZXMgbm90IGV4aXN0cy4gRml4IGZvciAnYW50IGluc3RhbGwnIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjQgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuNCB1cGRhdGUKICAgICAgICBieQogICAgICAgIGdyZWdvcgogICAgICAgIDoKICAgICAgICBbMS40XSAKICAgICAgICAgICAgIzI5MzExCSAgCVNlYXJjaCBmaWVsZCBpbiBsb3dlci1sZXZlbCBhcnRpY2xlcyBkb2VzIG5vdCB3b3JrIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjIgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuMiB1cGRhdGUKICAgICAgICBieQogICAgICAgIGdyZWdvcgogICAgICAgIDoKICAgICAgICBbMS4yXSAKICAgICAgICAgICAgIzI5MzExCSAgCVNlYXJjaCBmaWVsZCBpbiBsb3dlci1sZXZlbCBhcnRpY2xlcyBkb2VzIG5vdCB3b3JrIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjQgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuNCB1cGRhdGUKICAgICAgICBieQogICAgICAgIGdyZWdvcgogICAgICAgIDoKICAgICAgICBbMS40XSAKICAgICAgICAgICAgbWFrZSB0ZXh0IG1vcmUgcHJvZmVzc2lvbmFsIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjIgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuMiB1cGRhdGUKICAgICAgICBieQogICAgICAgIGdyZWdvcgogICAgICAgIDoKICAgICAgICBbMS4yXSAKICAgICAgICAgICAgbWFrZSB0ZXh0IG1vcmUgcHJvZmVzc2lvbmFsIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjIgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuMiB1cGRhdGUKICAgICAgICBieQogICAgICAgIGdyZWdvcgogICAgICAgIDoKICAgICAgICBbMS4yXSAKICAgICAgICAgICAgdXBkYXRlIGluc3RhbGwgaW5zdHJ1Y3Rpb25zIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjQgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuNCB1cGRhdGUKICAgICAgICBieQogICAgICAgIGdyZWdvcgogICAgICAgIDoKICAgICAgICBbMS40XSAKICAgICAgICAgICAgYnhlbmcgLSZndDsgYnhlIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjQgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuNCB1cGRhdGUKICAgICAgICBieQogICAgICAgIGdyZWdvcgogICAgICAgIDoKICAgICAgICBbMS40XSAKICAgICAgICAgICAgc3luYyB3aXRoIDEuMiBicmFuY2ggRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuMiB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS4yIHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgZ3JlZ29yCiAgICAgICAgOgogICAgICAgIFsxLjJdIAogICAgICAgICAgICB3aGl0ZXNwYWNlIGZpeGVzLCByZW1vdmUgbGluayB0byBwcmVzcyByZWxlYXNlIChpdCBpcyBub3cgcGFydCBvZiB0aGUgaW5kZXggcGFnZSkgRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuNCByZW1vdmU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS40IHJlbW92ZQogICAgICAgIGJ5CiAgICAgICAgZ3JlZ29yCiAgICAgICAgOgogICAgICAgIFsxLjRdIAogICAgICAgICAgICByZW1vdmUgb2Jzb2xldGUgamFycyBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS4yIHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjIgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBncmVnb3IKICAgICAgICA6CiAgICAgICAgWzEuMl0gCiAgICAgICAgICAgIG1ham9yIHNpdGUgdXBkYXRlIGluIHByZXBhcmF0aW9uIGZvciB0aGUgVExQIG1vdmUgRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuMiB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS4yIHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgZ3JlZ29yCiAgICAgICAgOgogICAgICAgIFsxLjJdIAogICAgICAgICAgICBhZGRlZCBMZW55YSBmYXZpY29uLiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS40IHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjQgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBncmVnb3IKICAgICAgICA6CiAgICAgICAgWzEuNF0gCiAgICAgICAgICAgIGFkZGVkIExlbnlhIGZhdmljb24uIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjIgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuMiB1cGRhdGUKICAgICAgICBieQogICAgICAgIHJva3UKICAgICAgICA6CiAgICAgICAgWzEuMl0gCiAgICAgICAgICAgIE1hZGUgZXhlY3V0YWJsZS4gRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuNCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS40IHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgcm9rdQogICAgICAgIDoKICAgICAgICBbMS40XSAKICAgICAgICAgICAgTWFkZSBleGVjdXRhYmxlLiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS40IHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjQgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICByb2t1CiAgICAgICAgOgogICAgICAgIFsxLjRdIAogICAgICAgICAgICBNYWRlIGV4ZWN1dGFibGUuIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjIgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuMiB1cGRhdGUKICAgICAgICBieQogICAgICAgIHJva3UKICAgICAgICA6CiAgICAgICAgWzEuMl0gCiAgICAgICAgICAgIE1hZGUgZXhlY3V0YWJsZS4gRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuNCBhZGQ8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS40IGFkZAogICAgICAgIGJ5CiAgICAgICAgZ3JlZ29yCiAgICAgICAgOgogICAgICAgIFsxLjRdIAogICAgICAgICAgICBvdmVyaGF1bCBvZiB0aGUgYnVpbGQgc3lzdGVtOgoKZ290IHJpZCBvZiBkdXBsaWNhdGUgc2VydmxldC5qYXIKc3dpdGNoZWQgdG8gc3RhbmRhcmQgYnVpbGQucHJvcGVydGllcyAvIGxvY2FsLmJ1aWxkLnByb3BlcnRpZXMgcGFpcgpyZW1vdmVkIGRlcGVuZGVuY3kgb24gZXh0ZXJuYWwgYW50CmFkZGVkIGJ1aWxkLmJhdCAvIGJ1aWxkLnNoIHNjcmlwdCBmcm9tIGNvY29vbgpnb3QgcmlkIG9mIGNvbW1vbnMtZHBjcC5qYXIKVG9tY2F0IDUgaXMgbm93IHRoZSBkZWZhdWx0ClVwZ3JhZGVkIEFudCBmcm9tIDEuNmEgdG8gMS42LjIKcmVtb3ZlZCBndW1wLnhtbCAoaXQgaXMgbWFuYWdlZCBleHRlcm5hbGx5IG5vdykKCiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS40IGFkZDwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjQgYWRkCiAgICAgICAgYnkKICAgICAgICBncmVnb3IKICAgICAgICA6CiAgICAgICAgWzEuNF0gCiAgICAgICAgICAgIG92ZXJoYXVsIG9mIHRoZSBidWlsZCBzeXN0ZW06Cgpnb3QgcmlkIG9mIGR1cGxpY2F0ZSBzZXJ2bGV0Lmphcgpzd2l0Y2hlZCB0byBzdGFuZGFyZCBidWlsZC5wcm9wZXJ0aWVzIC8gbG9jYWwuYnVpbGQucHJvcGVydGllcyBwYWlyCnJlbW92ZWQgZGVwZW5kZW5jeSBvbiBleHRlcm5hbCBhbnQKYWRkZWQgYnVpbGQuYmF0IC8gYnVpbGQuc2ggc2NyaXB0IGZyb20gY29jb29uCmdvdCByaWQgb2YgY29tbW9ucy1kcGNwLmphcgpUb21jYXQgNSBpcyBub3cgdGhlIGRlZmF1bHQKVXBncmFkZWQgQW50IGZyb20gMS42YSB0byAxLjYuMgpyZW1vdmVkIGd1bXAueG1sIChpdCBpcyBtYW5hZ2VkIGV4dGVybmFsbHkgbm93KQoKIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjQgYWRkPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuNCBhZGQKICAgICAgICBieQogICAgICAgIGdyZWdvcgogICAgICAgIDoKICAgICAgICBbMS40XSAKICAgICAgICAgICAgb3ZlcmhhdWwgb2YgdGhlIGJ1aWxkIHN5c3RlbToKCmdvdCByaWQgb2YgZHVwbGljYXRlIHNlcnZsZXQuamFyCnN3aXRjaGVkIHRvIHN0YW5kYXJkIGJ1aWxkLnByb3BlcnRpZXMgLyBsb2NhbC5idWlsZC5wcm9wZXJ0aWVzIHBhaXIKcmVtb3ZlZCBkZXBlbmRlbmN5IG9uIGV4dGVybmFsIGFudAphZGRlZCBidWlsZC5iYXQgLyBidWlsZC5zaCBzY3JpcHQgZnJvbSBjb2Nvb24KZ290IHJpZCBvZiBjb21tb25zLWRwY3AuamFyClRvbWNhdCA1IGlzIG5vdyB0aGUgZGVmYXVsdApVcGdyYWRlZCBBbnQgZnJvbSAxLjZhIHRvIDEuNi4yCnJlbW92ZWQgZ3VtcC54bWwgKGl0IGlzIG1hbmFnZWQgZXh0ZXJuYWxseSBub3cpCgogRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuNCBhZGQ8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS40IGFkZAogICAgICAgIGJ5CiAgICAgICAgZ3JlZ29yCiAgICAgICAgOgogICAgICAgIFsxLjRdIAogICAgICAgICAgICBvdmVyaGF1bCBvZiB0aGUgYnVpbGQgc3lzdGVtOgoKZ290IHJpZCBvZiBkdXBsaWNhdGUgc2VydmxldC5qYXIKc3dpdGNoZWQgdG8gc3RhbmRhcmQgYnVpbGQucHJvcGVydGllcyAvIGxvY2FsLmJ1aWxkLnByb3BlcnRpZXMgcGFpcgpyZW1vdmVkIGRlcGVuZGVuY3kgb24gZXh0ZXJuYWwgYW50CmFkZGVkIGJ1aWxkLmJhdCAvIGJ1aWxkLnNoIHNjcmlwdCBmcm9tIGNvY29vbgpnb3QgcmlkIG9mIGNvbW1vbnMtZHBjcC5qYXIKVG9tY2F0IDUgaXMgbm93IHRoZSBkZWZhdWx0ClVwZ3JhZGVkIEFudCBmcm9tIDEuNmEgdG8gMS42LjIKcmVtb3ZlZCBndW1wLnhtbCAoaXQgaXMgbWFuYWdlZCBleHRlcm5hbGx5IG5vdykKCiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS4yIHJlbW92ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjIgcmVtb3ZlCiAgICAgICAgYnkKICAgICAgICBncmVnb3IKICAgICAgICA6CiAgICAgICAgWzEuMl0gCiAgICAgICAgICAgIHRoZXNlIGFyZSBvYnNvbGV0ZSBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS4yIHJlbW92ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjIgcmVtb3ZlCiAgICAgICAgYnkKICAgICAgICBncmVnb3IKICAgICAgICA6CiAgICAgICAgWzEuMl0gCiAgICAgICAgICAgIHJlbW92ZSBvYnNvbGV0ZSBqYXJzIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjIgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuMiB1cGRhdGUKICAgICAgICBieQogICAgICAgIGdyZWdvcgogICAgICAgIDoKICAgICAgICBbMS4yXSAKICAgICAgICAgICAgb3ZlcmhhdWwgb2YgdGhlIGJ1aWxkIHN5c3RlbToKCmdvdCByaWQgb2YgZHVwbGljYXRlIHNlcnZsZXQuamFyCnN3aXRjaGVkIHRvIHN0YW5kYXJkIGJ1aWxkLnByb3BlcnRpZXMgLyBsb2NhbC5idWlsZC5wcm9wZXJ0aWVzIHBhaXIKcmVtb3ZlZCBkZXBlbmRlbmN5IG9uIGV4dGVybmFsIGFudAphZGRlZCBidWlsZC5iYXQgLyBidWlsZC5zaCBzY3JpcHQgZnJvbSBjb2Nvb24KZ290IHJpZCBvZiBjb21tb25zLWRwY3AuamFyClRvbWNhdCA1IGlzIG5vdyB0aGUgZGVmYXVsdApVcGdyYWRlZCBBbnQgZnJvbSAxLjZhIHRvIDEuNi4yCnJlbW92ZWQgZ3VtcC54bWwgKGl0IGlzIG1hbmFnZWQgZXh0ZXJuYWxseSBub3cpCgogRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuMiBhZGQ8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS4yIGFkZAogICAgICAgIGJ5CiAgICAgICAgZ3JlZ29yCiAgICAgICAgOgogICAgICAgIFsxLjJdIAogICAgICAgICAgICBvdmVyaGF1bCBvZiB0aGUgYnVpbGQgc3lzdGVtOgoKZ290IHJpZCBvZiBkdXBsaWNhdGUgc2VydmxldC5qYXIKc3dpdGNoZWQgdG8gc3RhbmRhcmQgYnVpbGQucHJvcGVydGllcyAvIGxvY2FsLmJ1aWxkLnByb3BlcnRpZXMgcGFpcgpyZW1vdmVkIGRlcGVuZGVuY3kgb24gZXh0ZXJuYWwgYW50CmFkZGVkIGJ1aWxkLmJhdCAvIGJ1aWxkLnNoIHNjcmlwdCBmcm9tIGNvY29vbgpnb3QgcmlkIG9mIGNvbW1vbnMtZHBjcC5qYXIKVG9tY2F0IDUgaXMgbm93IHRoZSBkZWZhdWx0ClVwZ3JhZGVkIEFudCBmcm9tIDEuNmEgdG8gMS42LjIKcmVtb3ZlZCBndW1wLnhtbCAoaXQgaXMgbWFuYWdlZCBleHRlcm5hbGx5IG5vdykKCiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS40IHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjQgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICByb2t1CiAgICAgICAgOgogICAgICAgIFsxLjRdIAogICAgICAgICAgICBbTWVyZ2VkIGZyb20gMS4yLnhdCi0gRXh0cmFjdGVkIGVkaXQgKGZvcm1zIGVkaXRvcikgdXNlY2FzZSB0byBzZXBhcnRlIHNpdGVtYXAKLSBTd2l0Y2hlZCBmb3JtLWVuY29kaW5nIHRvIFVURi04IGZvciB0ZXN0aW5nIHB1cnBvc2VzLiBMZXRzIHJpcCBhbGwgaXNvLSogb3V0LiBQbGVhc2UgaGVscCB0ZXN0aW5nLiBJIGd1ZXNzIEkgaGFkIGEgbGlja3kgaGFuZCB0aGlzIHRpbWUuIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjQgYWRkPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuNCBhZGQKICAgICAgICBieQogICAgICAgIHJva3UKICAgICAgICA6CiAgICAgICAgWzEuNF0gCiAgICAgICAgICAgIFtNZXJnZWQgZnJvbSAxLjIueF0KLSBFeHRyYWN0ZWQgZWRpdCAoZm9ybXMgZWRpdG9yKSB1c2VjYXNlIHRvIHNlcGFydGUgc2l0ZW1hcAotIFN3aXRjaGVkIGZvcm0tZW5jb2RpbmcgdG8gVVRGLTggZm9yIHRlc3RpbmcgcHVycG9zZXMuIExldHMgcmlwIGFsbCBpc28tKiBvdXQuIFBsZWFzZSBoZWxwIHRlc3RpbmcuIEkgZ3Vlc3MgSSBoYWQgYSBsaWNreSBoYW5kIHRoaXMgdGltZS4gRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuMiB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS4yIHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgcm9rdQogICAgICAgIDoKICAgICAgICBbMS4yXSAKICAgICAgICAgICAgLSBFeHRyYWN0ZWQgZWRpdCAoZm9ybXMgZWRpdG9yKSB1c2VjYXNlIHRvIHNlcGFydGUgc2l0ZW1hcAotIFN3aXRjaGVkIGZvcm0tZW5jb2RpbmcgdG8gVVRGLTggZm9yIHRlc3RpbmcgcHVycG9zZXMuIExldHMgcmlwIGFsbCBpc28tKiBvdXQuIFBsZWFzZSBoZWxwIHRlc3RpbmcuIEkgZ3Vlc3MgSSBoYWQgYSBsaWNreSBoYW5kIHRoaXMgdGltZS4gRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuMiBhZGQ8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS4yIGFkZAogICAgICAgIGJ5CiAgICAgICAgcm9rdQogICAgICAgIDoKICAgICAgICBbMS4yXSAKICAgICAgICAgICAgLSBFeHRyYWN0ZWQgZWRpdCAoZm9ybXMgZWRpdG9yKSB1c2VjYXNlIHRvIHNlcGFydGUgc2l0ZW1hcAotIFN3aXRjaGVkIGZvcm0tZW5jb2RpbmcgdG8gVVRGLTggZm9yIHRlc3RpbmcgcHVycG9zZXMuIExldHMgcmlwIGFsbCBpc28tKiBvdXQuIFBsZWFzZSBoZWxwIHRlc3RpbmcuIEkgZ3Vlc3MgSSBoYWQgYSBsaWNreSBoYW5kIHRoaXMgdGltZS4gRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuNCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS40IHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgcm9rdQogICAgICAgIDoKICAgICAgICBbMS40XSAKICAgICAgICAgICAgUmVtb3ZlZCBoYXJkY29kZWQgcGF0aHMsIHdoaWNoIEkgYWNjaWRlbnRseSBpbnRyb2R1Y2VkIGZvciB0ZXN0aW5nIHB1cnBvc2VzLgpSZW1vdmVkIHVzZWxlc3MgY29tbWVudGVkIHBhcnRzLiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS4yIHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjIgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICByb2t1CiAgICAgICAgOgogICAgICAgIFsxLjJdIAogICAgICAgICAgICBSZW1vdmVkIGhhcmRjb2RlZCBwYXRocywgd2hpY2ggSSBhY2NpZGVudGx5IGludHJvZHVjZWQgZm9yIHRlc3RpbmcgcHVycG9zZXMuClJlbW92ZWQgdXNlbGVzcyBjb21tZW50ZWQgcGFydHMuIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjQgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuNCB1cGRhdGUKICAgICAgICBieQogICAgICAgIHJva3UKICAgICAgICA6CiAgICAgICAgWzEuNF0gCiAgICAgICAgICAgIFtNZXJnZWQgZnJvbSAxLjIueF0KRXh0cmFjZWQgMW9uZWZvcm1lZGl0IHVzZWNhc2UgdG8gaXRzIG93biBzaXRlbWFwLgpVc2luZyBmbG93IHRvIHNhdmUgZG9jLiAKRml4ZWQgYmxhbmsgcGFnZXMgb24gc2F2ZSBhbmQgZXhpdC4gRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuNCBhZGQ8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS40IGFkZAogICAgICAgIGJ5CiAgICAgICAgcm9rdQogICAgICAgIDoKICAgICAgICBbMS40XSAKICAgICAgICAgICAgW01lcmdlZCBmcm9tIDEuMi54XQpFeHRyYWNlZCAxb25lZm9ybWVkaXQgdXNlY2FzZSB0byBpdHMgb3duIHNpdGVtYXAuClVzaW5nIGZsb3cgdG8gc2F2ZSBkb2MuIApGaXhlZCBibGFuayBwYWdlcyBvbiBzYXZlIGFuZCBleGl0LiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS4yIHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjIgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICByb2t1CiAgICAgICAgOgogICAgICAgIFsxLjJdIAogICAgICAgICAgICBFeHRyYWNlZCAxb25lZm9ybWVkaXQgdXNlY2FzZSB0byBpdHMgb3duIHNpdGVtYXAuClVzaW5nIGZsb3cgdG8gc2F2ZSBkb2MuIApGaXhlZCBibGFuayBwYWdlcyBvbiBzYXZlIGFuZCBleGl0LiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS4yIGFkZDwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjIgYWRkCiAgICAgICAgYnkKICAgICAgICByb2t1CiAgICAgICAgOgogICAgICAgIFsxLjJdIAogICAgICAgICAgICBFeHRyYWNlZCAxb25lZm9ybWVkaXQgdXNlY2FzZSB0byBpdHMgb3duIHNpdGVtYXAuClVzaW5nIGZsb3cgdG8gc2F2ZSBkb2MuIApGaXhlZCBibGFuayBwYWdlcyBvbiBzYXZlIGFuZCBleGl0LiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS40IHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjQgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICByb2t1CiAgICAgICAgOgogICAgICAgIFsxLjRdIAogICAgICAgICAgICBbTWVyZ2VkIGZyb20gMS4yLnhdCkFkZGVkIGhlbHBlciBtZXRob2RzIGZvciByZXZpc2lvbiBjb250cm9sbGluZy4gRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuMiB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS4yIHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgcm9rdQogICAgICAgIDoKICAgICAgICBbMS4yXSAKICAgICAgICAgICAgQWRkZWQgaGVscGVyIG1ldGhvZHMgZm9yIHJldmlzaW9uIGNvbnRyb2xsaW5nLiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS4yIHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjIgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBncmVnb3IKICAgICAgICA6CiAgICAgICAgWzEuMl0gCiAgICAgICAgICAgIHVwZGF0ZSBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS40IHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjQgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBncmVnb3IKICAgICAgICA6CiAgICAgICAgWzEuNF0gCiAgICAgICAgICAgIHVwZGF0ZSBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS4yIHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjIgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBncmVnb3IKICAgICAgICA6CiAgICAgICAgWzEuMl0gCiAgICAgICAgICAgIFVwZGF0ZSBhY2tub3dsZWRnZW1lbnRzIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjQgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuNCB1cGRhdGUKICAgICAgICBieQogICAgICAgIGdyZWdvcgogICAgICAgIDoKICAgICAgICBbMS40XSAKICAgICAgICAgICAgVXBkYXRlIGFja25vd2xlZGdlbWVudHMgRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuNCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS40IHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgcm9rdQogICAgICAgIDoKICAgICAgICBbMS40XSAKICAgICAgICAgICAgUmVtb3ZlZCBzdm46bWltZS10eXBlIHNvIHRoYXQgd2UgY2FuIHNlZSBkaWZmcy4KT3RoZXJ3aXNlIHRoZSBkb2Mgd2FzIHRyZWF0ZWQgYXMgYSBiaW5hcnkgZmlsZS4gRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuNCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS40IHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgcm9rdQogICAgICAgIDoKICAgICAgICBbMS40XSAKICAgICAgICAgICAgRml4ZWQgdHlwbyBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS4yIHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjIgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICByb2t1CiAgICAgICAgOgogICAgICAgIFsxLjJdIAogICAgICAgICAgICBGaXhlZCB0eXBvIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjIgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuMiB1cGRhdGUKICAgICAgICBieQogICAgICAgIHJva3UKICAgICAgICA6CiAgICAgICAgWzEuMl0gCiAgICAgICAgICAgIFJlbW92ZWQgc3ZuOm1pbWUtdHlwZSBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS40IHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjQgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICByb2t1CiAgICAgICAgOgogICAgICAgIFsxLjRdIAogICAgICAgICAgICBbTWVyZ2VkIGZyb20gMS4yLnggYnJhbmNoXQpGaXhlZCByZWZlcmVuY2UgdG8gYSBLdXB1IHhzbHQsIHNpbmNlIHRoZXkgbWVyZ2VkIHNvbWUgdGhlIGxhc3QgbW9udGhzLiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS4yIHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjIgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICByb2t1CiAgICAgICAgOgogICAgICAgIFsxLjJdIAogICAgICAgICAgICBGaXhlZCByZWZlcmVuY2UgdG8gYSBLdXB1IHhzbHQsIHNpbmNlIHRoZXkgbWVyZ2VkIHNvbWUgdGhlIGxhc3QgbW9udGhzLiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS40IHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjQgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICByb2t1CiAgICAgICAgOgogICAgICAgIFsxLjRdIAogICAgICAgICAgICBTYXZpbmcgYSBkb2Mgd2l0aCAxZm9ybSBlZGl0b3Igbm93IHVzZXMgdXRmLTguIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjIgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuMiB1cGRhdGUKICAgICAgICBieQogICAgICAgIHJva3UKICAgICAgICA6CiAgICAgICAgWzEuMl0gCiAgICAgICAgICAgIFNhdmluZyBhIGRvYyB3aXRoIDFmb3JtIGVkaXRvciBub3cgdXNlcyB1dGYtOC4gRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuNCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS40IHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgcm9rdQogICAgICAgIDoKICAgICAgICBbMS40XSAKICAgICAgICAgICAgU2F2aW5nIGEgZG9jIHdpdGggYnhlIG5vdyB1c2VzIHV0Zi04LiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS4yIHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjIgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICByb2t1CiAgICAgICAgOgogICAgICAgIFsxLjJdIAogICAgICAgICAgICBTYXZpbmcgYSBkb2Mgd2l0aCBieGUgbm93IHVzZXMgdXRmLTguIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjQgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuNCB1cGRhdGUKICAgICAgICBieQogICAgICAgIHJva3UKICAgICAgICA6CiAgICAgICAgWzEuNF0gCiAgICAgICAgICAgIFtNZXJnZWQgZnJvbSAxLjIueF0KRml4ZWQgIzMwNjc1LiBLdXB1IHNob3VsZCBub3QgY2hhbmdlIHRoZSBlbmNvZGluZyBhbnltb3JlLgpCVFc6IEkgd2lsbCBub3cgbWFrZSBzb21lIHRlc3RzIHJlIHN3aXRjaGluZyBMZW55YSBjb21wbGV0ZWx5IHRvIFVURi04LCBvciBpcyB0aGF0IG5vdCB1c2VmdWwgZm9yIDEuMi54ID8/CiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS4yIHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjIgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICByb2t1CiAgICAgICAgOgogICAgICAgIFsxLjJdIAogICAgICAgICAgICBGaXhlZCAjMzA2NzUuIEt1cHUgc2hvdWxkIG5vdCBjaGFuZ2UgdGhlIGVuY29kaW5nIGFueW1vcmUuCkJUVzogSSB3aWxsIG5vdyBtYWtlIHNvbWUgdGVzdHMgcmUgc3dpdGNoaW5nIExlbnlhIGNvbXBsZXRlbHkgdG8gVVRGLTgsIG9yIGlzIHRoYXQgbm90IHVzZWZ1bCBmb3IgMS4yLnggPz8KIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjIgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuMiB1cGRhdGUKICAgICAgICBieQogICAgICAgIGdyZWdvcgogICAgICAgIDoKICAgICAgICBbMS4yXSAKICAgICAgICAgICAgZml4IGJ1ZyAjMjkyOTUgZGVhZCBsaW5rcyBvbiBpbnRyb2R1Y3Rpb24gcGFnZXMgRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuNCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS40IHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgZ3JlZ29yCiAgICAgICAgOgogICAgICAgIFsxLjRdIAogICAgICAgICAgICBmaXggYnVnICMyOTI5NSBkZWFkIGxpbmtzIG9uIGludHJvZHVjdGlvbiBwYWdlcyBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS40IHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjQgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBncmVnb3IKICAgICAgICA6CiAgICAgICAgWzEuNF0gCiAgICAgICAgICAgIHVwZGF0ZSBDUkVESVRTIHdpdGggYWN0aXZlIGNvbW1pdGVycy4gRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuMiB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS4yIHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgZ3JlZ29yCiAgICAgICAgOgogICAgICAgIFsxLjJdIAogICAgICAgICAgICB1cGRhdGUgQ1JFRElUUyB3aXRoIGFjdGl2ZSBjb21taXRlcnMuIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjQgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuNCB1cGRhdGUKICAgICAgICBieQogICAgICAgIGdyZWdvcgogICAgICAgIDoKICAgICAgICBbMS40XSAKICAgICAgICAgICAgY2hhbmdlIGNvY29vbi5hcGFjaGUub3JnL2xlbnlhIHRvIGxlbnlhLmFwYWNoZS5vcmcgRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuMiB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS4yIHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgZ3JlZ29yCiAgICAgICAgOgogICAgICAgIFsxLjJdIAogICAgICAgICAgICBjaGFuZ2UgY29jb29uLmFwYWNoZS5vcmcvbGVueWEgdG8gbGVueWEuYXBhY2hlLm9yZyBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS4yIHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjIgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBhbmRyZWFzCiAgICAgICAgOgogICAgICAgIFsxLjJdIAogICAgICAgICAgICBmaXhlZCBidWcgIzMxNzk4IERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjQgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuNCB1cGRhdGUKICAgICAgICBieQogICAgICAgIGFuZHJlYXMKICAgICAgICA6CiAgICAgICAgWzEuNF0gCiAgICAgICAgICAgIGZpeGVkIEJ1ZyAjMzE3OTggRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuMiB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS4yIHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgZWRpdGgKICAgICAgICA6CiAgICAgICAgWzEuMl0gCiAgICAgICAgICAgIGluZm9ybWF0aW9uIG9uIHRoZSBpZCBvZiB0aGUgZmlyc3QgY2hpbGQgRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuNCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS40IHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgZ3JlZ29yCiAgICAgICAgOgogICAgICAgIFsxLjRdIAogICAgICAgICAgICByZW1vdmUgY29jb29uIGZhdmljb24sIHByb3ZpZGUgY2FwYWJpbGl0eSB0byBoYXZlIG9uZSBmb3IgeW91ciBwdWJsaWNhdGlvbiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS40IHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjQgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBiaWdkb2cKICAgICAgICA6CiAgICAgICAgWzEuNF0gCiAgICAgICAgICAgIGNoYW5nZSAiTkNOYW1lIiB0ZXh0IGluIHRhZ3MgdG8gJ3RleHQnIHRvIGFsbG93IGFueSB0ZXh0IGluICZsdDtzdHJvbmcmZ3Q7IGFtZCAmbHQ7ZW0mZ3Q7IHRhZ3MuIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjIgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuMiB1cGRhdGUKICAgICAgICBieQogICAgICAgIGJpZ2RvZwogICAgICAgIDoKICAgICAgICBbMS4yXSAKICAgICAgICAgICAgQ2hhbmdlIHRoZSB0eXBlIHdpdGhpbiAnZW0nIGFuZCAnc3Ryb25nJyB0eXBlcyBmcm9tIE5DTmFtZSB0byB0ZXh0IERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjIgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuMiB1cGRhdGUKICAgICAgICBieQogICAgICAgIG1pY2hpCiAgICAgICAgOgogICAgICAgIFsxLjJdIAogICAgICAgICAgICB1cHBlciBjYXNlIHN1ZmZpeCBmb3IgSlBHIGFkZGVkIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjQgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuNCB1cGRhdGUKICAgICAgICBieQogICAgICAgIG1pY2hpCiAgICAgICAgOgogICAgICAgIFsxLjRdIAogICAgICAgICAgICByZWxhdGVkIHByb2plY3RzIHVwZGF0ZWQgRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuNCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS40IHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgYW5kcmVhcwogICAgICAgIDoKICAgICAgICBbMS40XSAKICAgICAgICAgICAgZml4ZWQgdmFsaWRhdGlvbiBpc3N1ZSBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS40IHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjQgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBhbmRyZWFzCiAgICAgICAgOgogICAgICAgIFsxLjRdIAogICAgICAgICAgICBleGNsdWRlIHVud2FudGVkIHJlc3VsdCBwcmVmaXhlcyBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS40IHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjQgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBhbmRyZWFzCiAgICAgICAgOgogICAgICAgIFsxLjRdIAogICAgICAgICAgICBkb24ndCByZW1vdmUgWEhUTUwgbmFtZXNwYWNlIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjQgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuNCB1cGRhdGUKICAgICAgICBieQogICAgICAgIGFuZHJlYXMKICAgICAgICA6CiAgICAgICAgWzEuNF0gCiAgICAgICAgICAgIGZpeGVkIHZhbGlkYXRpb24gaXNzdWVzIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjQgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuNCB1cGRhdGUKICAgICAgICBieQogICAgICAgIGFuZHJlYXMKICAgICAgICA6CiAgICAgICAgWzEuNF0gCiAgICAgICAgICAgIHNlcmlhbGl6ZSBhcyBYSFRNTCBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS40IHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjQgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBhbmRyZWFzCiAgICAgICAgOgogICAgICAgIFsxLjRdIAogICAgICAgICAgICBzZXJpYWxpemUgYXMgWEhUTUwgRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuNCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS40IHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgYW5kcmVhcwogICAgICAgIDoKICAgICAgICBbMS40XSAKICAgICAgICAgICAgdXNpbmcgJmx0O3hzbDpjb3B5Jmd0OyBpbnN0ZWFkIG9mICZsdDt4c2w6ZWxlbWVudCZndDsgdG8gYXZvaWQgdGhhdCBYU0xUQyBhZGRzIGN1c3RvbSBuYW1lc3BhY2UgcHJlZml4ZXMgRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuNCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS40IHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgdGhvcnN0ZW4KICAgICAgICA6CiAgICAgICAgWzEuNF0gCiAgICAgICAgICAgIGp1c3QgZml4ZWQgZm9ybWF0aW5nIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjQgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuNCB1cGRhdGUKICAgICAgICBieQogICAgICAgIHRob3JzdGVuCiAgICAgICAgOgogICAgICAgIFsxLjRdIAogICAgICAgICAgICB1cGRhdGUgZG9jdSBhYm91dCBob3d0byB1cGRhdGUgb3VyIHdlYnNpdGUgRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuMiB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS4yIHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgbWljaGkKICAgICAgICA6CiAgICAgICAgWzEuMl0gCiAgICAgICAgICAgIHN5bmMgd2l0aCB0cnVuayBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS40IHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjQgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBtaWNoaQogICAgICAgIDoKICAgICAgICBbMS40XSAKICAgICAgICAgICAgQ1ZTIHJlcGxhY2VkIGJ5IFN1YnZlcnNpb24gRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuNCByZW1vdmU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS40IHJlbW92ZQogICAgICAgIGJ5CiAgICAgICAgbWljaGkKICAgICAgICA6CiAgICAgICAgWzEuNF0gCiAgICAgICAgICAgIG9ic29sZXRlIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjQgYWRkPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuNCBhZGQKICAgICAgICBieQogICAgICAgIG1pY2hpCiAgICAgICAgOgogICAgICAgIFsxLjRdIAogICAgICAgICAgICBzaXRlbWFwIHJlYWRkZWQgRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuMiByZW1vdmU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS4yIHJlbW92ZQogICAgICAgIGJ5CiAgICAgICAgbWljaGkKICAgICAgICA6CiAgICAgICAgWzEuMl0gCiAgICAgICAgICAgIG9ic29sZXRlIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjIgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuMiB1cGRhdGUKICAgICAgICBieQogICAgICAgIG1pY2hpCiAgICAgICAgOgogICAgICAgIFsxLjJdIAogICAgICAgICAgICBpZ25vcmUgZm9yIGZlZWRzLnByb3BlcnRpZXMgYWRkZWQgRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuMiB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS4yIHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgYW50b25pbwogICAgICAgIDoKICAgICAgICBbMS4yXSAKICAgICAgICAgICAgRml4IGpzY3JpcHQgdGFnIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjIgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuMiB1cGRhdGUKICAgICAgICBieQogICAgICAgIG1pY2hpCiAgICAgICAgOgogICAgICAgIFsxLjJdIAogICAgICAgICAgICBsaWNlbnNlIGFkZGVkIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjIgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuMiB1cGRhdGUKICAgICAgICBieQogICAgICAgIG1pY2hpCiAgICAgICAgOgogICAgICAgIFsxLjJdIAogICAgICAgICAgICBsaWNlbnNlIGFkZGVkIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjIgYWRkPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuMiBhZGQKICAgICAgICBieQogICAgICAgIG1pY2hpCiAgICAgICAgOgogICAgICAgIFsxLjJdIAogICAgICAgICAgICBUaGFua3MgdG8gR3JlZ29yIEltYm9kZW4gTGVueWEgcmVjZWl2ZXMgYSBGZWVkIGRvd25sb2FkZXIgd2hpY2ggaXMgY2hlY2tpbmcgd2VsbC1mb3JtZWRuZXNzIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjIgYWRkPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuMiBhZGQKICAgICAgICBieQogICAgICAgIG1pY2hpCiAgICAgICAgOgogICAgICAgIFsxLjJdIAogICAgICAgICAgICBUaGFua3MgdG8gR3JlZ29yIEltYm9kZW4gTGVueWEgcmVjZWl2ZXMgYSBGZWVkIGRvd25sb2FkZXIgd2hpY2ggaXMgY2hlY2tpbmcgd2VsbC1mb3JtZWRuZXNzIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjQgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuNCB1cGRhdGUKICAgICAgICBieQogICAgICAgIGFuZHJlYXMKICAgICAgICA6CiAgICAgICAgWzEuNF0gCiAgICAgICAgICAgIGFkZGVkIGkxOG4gbmFtZXNwYWNlIC0gbmVlZGVkIGluIHJlc3VsdGluZyBzdHlsZXNoZWV0IERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjQgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuNCB1cGRhdGUKICAgICAgICBieQogICAgICAgIGFuZHJlYXMKICAgICAgICA6CiAgICAgICAgWzEuNF0gCiAgICAgICAgICAgIGZpeGVkIGNvbmZvcm1hbmNlIGlzc3VlIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjQgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuNCB1cGRhdGUKICAgICAgICBieQogICAgICAgIGFuZHJlYXMKICAgICAgICA6CiAgICAgICAgWzEuNF0gCiAgICAgICAgICAgIGRvbid0IHJlbW92ZSBuYW1lc3BhY2UgVVJJcyBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS4yIHJlbW92ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjIgcmVtb3ZlCiAgICAgICAgYnkKICAgICAgICBtaWNoaQogICAgICAgIDoKICAgICAgICBbMS4yXSAKICAgICAgICAgICAgZGlzYWJsZSBzaXRlbWFwIGZvciB0aGUgbW9tZW50IGluIG9yZGVyIHRvIGdlbmVyYXRlIEhUTUwgZmlsZXMgRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuMiBhZGQ8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS4yIGFkZAogICAgICAgIGJ5CiAgICAgICAgbWljaGkKICAgICAgICA6CiAgICAgICAgWzEuMl0gCiAgICAgICAgICAgIGRpc2FibGUgc2l0ZW1hcCBmb3IgdGhlIG1vbWVudCBpbiBvcmRlciB0byBnZW5lcmF0ZSBIVE1MIGZpbGVzIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjIgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuMiB1cGRhdGUKICAgICAgICBieQogICAgICAgIG1pY2hpCiAgICAgICAgOgogICAgICAgIFsxLjJdIAogICAgICAgICAgICBDVlMgcmVwbGFjZWQgYnkgU3VidmVyc2lvbiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS4yIHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjIgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBncmVnb3IKICAgICAgICA6CiAgICAgICAgWzEuMl0gCiAgICAgICAgICAgIHVwZGF0ZSBpbnN0YWxsIGJpbiBpbnN0cnVjdGlvbnMuIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjIgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuMiB1cGRhdGUKICAgICAgICBieQogICAgICAgIHJva3UKICAgICAgICA6CiAgICAgICAgWzEuMl0gCiAgICAgICAgICAgIFRMUCBhbmQgMS4yLjEgY2hhbmdlcy4gV2UgbmVlZCB0byBtYWtlIHRoZSBuaXNpcyBzY3JpcHQgbW9yZSBnZW5yaWMgaW4gMS40LWRldi4gRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuNCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS40IHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgdGhvcnN0ZW4KICAgICAgICA6CiAgICAgICAgWzEuNF0gCiAgICAgICAgICAgIHVwZGF0ZWQgdGhlIGR0ZCBvZiBza2luY29uZiB0byBlbmFibGUgbmV3IHNraW4gZmVhdHVyZXMgRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuNCByZW1vdmU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS40IHJlbW92ZQogICAgICAgIGJ5CiAgICAgICAgdGhvcnN0ZW4KICAgICAgICA6CiAgICAgICAgWzEuNF0gCiAgICAgICAgICAgIEhhZCB0byBkaXNhYmxlIHRoZSB3aG9sZSBkb2N1IGZlYXR1cmUuIEkgaGF2ZSB0byBmaXggdGhlIHNpdGVtYXAgZm9yIHRoYXQgRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuMiB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS4yIHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgYW50b25pbwogICAgICAgIDoKICAgICAgICBbMS4yXSAKICAgICAgICAgICAgVXBkYXRlIHByb3BlcnRpZXMgRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuMiB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS4yIHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgYW50b25pbwogICAgICAgIDoKICAgICAgICBbMS4yXSAKICAgICAgICAgICAgQWRkIGNvbW1lbnRzIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjIgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuMiB1cGRhdGUKICAgICAgICBieQogICAgICAgIGFudG9uaW8KICAgICAgICA6CiAgICAgICAgWzEuMl0gCiAgICAgICAgICAgIEFkZCBjb3B5cmlnaHQgaW5mbyArIGNvbW1lbnRzIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjIgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuMiB1cGRhdGUKICAgICAgICBieQogICAgICAgIG1pY2hpCiAgICAgICAgOgogICAgICAgIFsxLjJdIAogICAgICAgICAgICBicmFuY2ggYWRkZWQgRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuMiB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS4yIHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgbWljaGkKICAgICAgICA6CiAgICAgICAgWzEuMl0gCiAgICAgICAgICAgIHRhZ3MgZml4ZWQgYWNjb3JkaW5nIHRvIGZvcnJlc3QgdmFsaWRhdG9yIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjQgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuNCB1cGRhdGUKICAgICAgICBieQogICAgICAgIHJva3UKICAgICAgICA6CiAgICAgICAgWzEuNF0gCiAgICAgICAgICAgIFRMUCBjaGFuZ2VzLiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS4yIHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjIgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICByb2t1CiAgICAgICAgOgogICAgICAgIFsxLjJdIAogICAgICAgICAgICBUTFAgY2hhbmdlcy4gRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuNCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS40IHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgcm9rdQogICAgICAgIDoKICAgICAgICBbMS40XSAKICAgICAgICAgICAgVExQIGNoYW5nZXMuIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjIgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuMiB1cGRhdGUKICAgICAgICBieQogICAgICAgIHJva3UKICAgICAgICA6CiAgICAgICAgWzEuMl0gCiAgICAgICAgICAgIFRMUCBjaGFuZ2VzIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjIgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuMiB1cGRhdGUKICAgICAgICBieQogICAgICAgIGFudG9uaW8KICAgICAgICA6CiAgICAgICAgWzEuMl0gCiAgICAgICAgICAgIEZpeCBKYXZhZG9jcyBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS4yIHJlbW92ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjIgcmVtb3ZlCiAgICAgICAgYnkKICAgICAgICByb2t1CiAgICAgICAgOgogICAgICAgIFsxLjJdIAogICAgICAgICAgICBSZW5hbWVkIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjQgcmVtb3ZlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuNCByZW1vdmUKICAgICAgICBieQogICAgICAgIHJva3UKICAgICAgICA6CiAgICAgICAgWzEuNF0gCiAgICAgICAgICAgIFJlbmFtZWQgRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuMiBhZGQ8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS4yIGFkZAogICAgICAgIGJ5CiAgICAgICAgcm9rdQogICAgICAgIDoKICAgICAgICBbMS4yXSAKICAgICAgICAgICAgUmVuYW1lZCBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS40IGFkZDwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjQgYWRkCiAgICAgICAgYnkKICAgICAgICByb2t1CiAgICAgICAgOgogICAgICAgIFsxLjRdIAogICAgICAgICAgICBSZW5hbWVkIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjIgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuMiB1cGRhdGUKICAgICAgICBieQogICAgICAgIHJva3UKICAgICAgICA6CiAgICAgICAgWzEuMl0gCiAgICAgICAgICAgIEZpeGVkIHByb2plY3QgbmFtZSB0byAiQXBhY2hlIExlbnlhIiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS40IHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjQgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICByb2t1CiAgICAgICAgOgogICAgICAgIFsxLjRdIAogICAgICAgICAgICBGaXhlZCBwcm9qZWN0IG5hbWUgdG8gIkFwYWNoZSBMZW55YSIgRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuNCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS40IHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgYW5kcmVhcwogICAgICAgIDoKICAgICAgICBbMS40XSAKICAgICAgICAgICAgdXNpbmcgLyBpbnN0ZWFkIG9mIC0gdG8gc2VwYXJhdGUgbW91bnQgdXJsIHByZWZpeCBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS40IHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjQgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBhbmRyZWFzCiAgICAgICAgOgogICAgICAgIFsxLjRdIAogICAgICAgICAgICB1cGRhdGUgZGVwcmVjYXRlZCB0byBjdXJyZW50IGNsYXNzZXMgRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuNCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS40IHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgbWljaGkKICAgICAgICA6CiAgICAgICAgWzEuNF0gCiAgICAgICAgICAgIGxhbmd1YWdlIGFkZGVkIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjIgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuMiB1cGRhdGUKICAgICAgICBieQogICAgICAgIG1pY2hpCiAgICAgICAgOgogICAgICAgIFsxLjJdIAogICAgICAgICAgICBsYW5ndWFnZSBhZGRlZCBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS4yIHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjIgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICByb2t1CiAgICAgICAgOgogICAgICAgIFsxLjJdIAogICAgICAgICAgICBBZGRlZCBTdGVmYW5vIE0uICBhcyBQTUMgbWVtYmVyLiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS40IHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjQgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICByb2t1CiAgICAgICAgOgogICAgICAgIFsxLjRdIAogICAgICAgICAgICBBZGRlZCBTdGVmYW5vIE0uICBhcyBQTUMgbWVtYmVyLiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS4yIHJlbW92ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjIgcmVtb3ZlCiAgICAgICAgYnkKICAgICAgICBiaWdkb2cKICAgICAgICA6CiAgICAgICAgWzEuMl0gCiAgICAgICAgICAgICBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS4yIGFkZDwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjIgYWRkCiAgICAgICAgYnkKICAgICAgICBiaWdkb2cKICAgICAgICA6CiAgICAgICAgWzEuMl0gCiAgICAgICAgICAgICBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS40IHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjQgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBhbmRyZWFzCiAgICAgICAgOgogICAgICAgIFsxLjRdIAogICAgICAgICAgICBhZGRpbmcgZG9jdW1lbnQgdXNlY2FzZSwgaW1wcm92aW5nIHNldHVwIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjQgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuNCB1cGRhdGUKICAgICAgICBieQogICAgICAgIGFuZHJlYXMKICAgICAgICA6CiAgICAgICAgWzEuNF0gCiAgICAgICAgICAgIGFkZGVkIGxpY2Vuc2UgYW5kIGphdmFkb2NzIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjQgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuNCB1cGRhdGUKICAgICAgICBieQogICAgICAgIGFuZHJlYXMKICAgICAgICA6CiAgICAgICAgWzEuNF0gCiAgICAgICAgICAgIGFkZGluZyB1c2VjYXNlIGNvbXBvbmVudCBkZWNsYXJhdGlvbnMgRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuNCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS40IHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgYW5kcmVhcwogICAgICAgIDoKICAgICAgICBbMS40XSAKICAgICAgICAgICAgbWVyZ2luZyBidWdmaXggZnJvbSAxLjIgYnJhbmNoIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjQgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuNCB1cGRhdGUKICAgICAgICBieQogICAgICAgIGFuZHJlYXMKICAgICAgICA6CiAgICAgICAgWzEuNF0gCiAgICAgICAgICAgIGFkZGluZyB1c2VjYXNlIGNsYXNzZXMgRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuMiB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS4yIHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgcm9rdQogICAgICAgIDoKICAgICAgICBbMS4yXSAKICAgICAgICAgICAgQWRkZWQgU3RldmVuIE5vZWxzIGFzIGluaXRpYWwgUE1DIG1lbWJlci4gRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuNCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS40IHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgcm9rdQogICAgICAgIDoKICAgICAgICBbMS40XSAKICAgICAgICAgICAgQWRkZWQgU3RldmVuIE5vZWxzIGFzIGluaXRpYWwgUE1DIG1lbWJlci4gRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuMiB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS4yIHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgYW5kcmVhcwogICAgICAgIDoKICAgICAgICBbMS4yXSAKICAgICAgICAgICAgdXNpbmcgZG9jdW1lbnQtaWQgcmVxdWVzdCBwYXJhbWV0ZXIgaWYgcHJlc2VudCBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS4yIHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjIgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBhbnRvbmlvCiAgICAgICAgOgogICAgICAgIFsxLjJdIAogICAgICAgICAgICBGaXggYnVnICMzMDU0MTogeGFsYW4gdHJhbnNmb3JtZXIgZGVjbGFyZWQgdHdpY2UgRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuNCBhZGQ8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS40IGFkZAogICAgICAgIGJ5CiAgICAgICAgYW50b25pbwogICAgICAgIDoKICAgICAgICBbMS40XSAKICAgICAgICAgICAgVXBkYXRlIGpldHR5IHRvIDQuMi4yMi4gRml4IGJ1ZyAjMjkzMDAgRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuMiByZW1vdmU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS4yIHJlbW92ZQogICAgICAgIGJ5CiAgICAgICAgYW50b25pbwogICAgICAgIDoKICAgICAgICBbMS4yXSAKICAgICAgICAgICAgVXBkYXRlIGpldHR5IHRvIDQuMi4yMi4gRml4IGJ1ZyAjMjkzMDAgRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuMiBhZGQ8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS4yIGFkZAogICAgICAgIGJ5CiAgICAgICAgYW50b25pbwogICAgICAgIDoKICAgICAgICBbMS4yXSAKICAgICAgICAgICAgVXBkYXRlIGx1Y2VuZSB0byAxLjQuMSBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS40IHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjQgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBhbmRyZWFzCiAgICAgICAgOgogICAgICAgIFsxLjRdIAogICAgICAgICAgICBjcmVhdGVkIHB1YmxpY2F0aW9uLnV0aWwgcGFja2FnZSBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS40IGFkZDwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjQgYWRkCiAgICAgICAgYnkKICAgICAgICBhbmRyZWFzCiAgICAgICAgOgogICAgICAgIFsxLjRdIAogICAgICAgICAgICBjcmVhdGVkIHB1YmxpY2F0aW9uLnV0aWwgcGFja2FnZSBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS40IHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjQgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBhbmRyZWFzCiAgICAgICAgOgogICAgICAgIFsxLjRdIAogICAgICAgICAgICBpbnRyb2R1Y2VkIERvY3VtZW50RmFjdG9yeSBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS40IGFkZDwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjQgYWRkCiAgICAgICAgYnkKICAgICAgICBhbmRyZWFzCiAgICAgICAgOgogICAgICAgIFsxLjRdIAogICAgICAgICAgICBpbnRyb2R1Y2VkIERvY3VtZW50RmFjdG9yeSBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS40IHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjQgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBhbmRyZWFzCiAgICAgICAgOgogICAgICAgIFsxLjRdIAogICAgICAgICAgICBpbnRyb2R1Y2VkIERvY3VtZW50RmFjdG9yeSBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS40IHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjQgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBhbmRyZWFzCiAgICAgICAgOgogICAgICAgIFsxLjRdIAogICAgICAgICAgICBpbnRyb2R1Y2VkIERvY3VtZW50RmFjdG9yeSBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS40IHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjQgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBhbmRyZWFzCiAgICAgICAgOgogICAgICAgIFsxLjRdIAogICAgICAgICAgICBmaXhlZCBzb21lIEhUTUwgdmFsaWRhdGlvbiBpc3N1ZXMgRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuNCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS40IHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgYW5kcmVhcwogICAgICAgIDoKICAgICAgICBbMS40XSAKICAgICAgICAgICAgcmVwbGFjZWQgY2FsbHMgdG8gRG9jdW1lbnRCdWlsZGVyIGJ5IERvY3VtZW50SWRlbnRpdHlNYXAgRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuMiB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS4yIHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgYW5kcmVhcwogICAgICAgIDoKICAgICAgICBbMS4yXSAKICAgICAgICAgICAgZml4ZWQgc29tZSBIVE1MIHZhbGlkYXRpb24gaXNzdWVzIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjQgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuNCB1cGRhdGUKICAgICAgICBieQogICAgICAgIG1pY2hpCiAgICAgICAgOgogICAgICAgIFsxLjRdIAogICAgICAgICAgICBzdWJtZW51cyBhZGRlZCBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS40IHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjQgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBtaWNoaQogICAgICAgIDoKICAgICAgICBbMS40XSAKICAgICAgICAgICAgc3VibWVudSBhZGRlZCBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS40IHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjQgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBtaWNoaQogICAgICAgIDoKICAgICAgICBbMS40XSAKICAgICAgICAgICAgc3BlZWR1cCBhbmQgWFVMIGFkZGVkIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjQgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuNCB1cGRhdGUKICAgICAgICBieQogICAgICAgIG1pY2hpCiAgICAgICAgOgogICAgICAgIFsxLjRdIAogICAgICAgICAgICBJZCBsaW5lIHVwZGF0ZWQgRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuNCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS40IHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgbWljaGkKICAgICAgICA6CiAgICAgICAgWzEuNF0gCiAgICAgICAgICAgIHN1Ym1lbnVzIGFkZGVkIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjQgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuNCB1cGRhdGUKICAgICAgICBieQogICAgICAgIG1pY2hpCiAgICAgICAgOgogICAgICAgIFsxLjRdIAogICAgICAgICAgICBJZCBsaW5lIHVwZGF0ZWQgRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuNCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS40IHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgbWljaGkKICAgICAgICA6CiAgICAgICAgWzEuNF0gCiAgICAgICAgICAgIHNlcXVlbmNlIG9mIHN1Ym1lbnVzIGFuZCBpdGVtcyBmaXhlZCBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS4yIGFkZDwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjIgYWRkCiAgICAgICAgYnkKICAgICAgICBhbnRvbmlvCiAgICAgICAgOgogICAgICAgIFsxLjJdIAogICAgICAgICAgICBGaXhpbmcgYnVnICMzMTI1NiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS40IHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjQgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBhbmRyZWFzCiAgICAgICAgOgogICAgICAgIFsxLjRdIAogICAgICAgICAgICB1c2luZyBjb3JyZWN0IGlkZW50aXR5bWFwLmdldCgpIG1ldGhvZCBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS40IHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjQgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBhbmRyZWFzCiAgICAgICAgOgogICAgICAgIFsxLjRdIAogICAgICAgICAgICByZS1vcmdhbml6ZSBzaXRlIG1hbmFnZW1lbnQsIHVzaW5nIERvY3VtZW50SWRlbnRpdHlNYXAgRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuNCBhZGQ8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS40IGFkZAogICAgICAgIGJ5CiAgICAgICAgYW5kcmVhcwogICAgICAgIDoKICAgICAgICBbMS40XSAKICAgICAgICAgICAgcmUtb3JnYW5pemUgc2l0ZSBtYW5hZ2VtZW50LCB1c2luZyBEb2N1bWVudElkZW50aXR5TWFwIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjQgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuNCB1cGRhdGUKICAgICAgICBieQogICAgICAgIGFuZHJlYXMKICAgICAgICA6CiAgICAgICAgWzEuNF0gCiAgICAgICAgICAgIHJlLW9yZ2FuaXplIHNpdGUgbWFuYWdlbWVudCwgdXNpbmcgRG9jdW1lbnRJZGVudGl0eU1hcCBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS40IHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjQgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBtaWNoaQogICAgICAgIDoKICAgICAgICBbMS40XSAKICAgICAgICAgICAgdXBsb2FkIGZpbGVuYW1lIGNhbiBiZSBvdmVyd3JpdHRlbiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS4yIHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjIgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBtaWNoaQogICAgICAgIDoKICAgICAgICBbMS4yXSAKICAgICAgICAgICAgdXBsb2FkIGZpbGVuYW1lIGNhbiBiZSBvdmVyd3JpdHRlbiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS40IHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjQgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBhbmRyZWFzCiAgICAgICAgOgogICAgICAgIFsxLjRdIAogICAgICAgICAgICBnZXQgcmlkIG9mIGxvZzRqIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjQgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuNCB1cGRhdGUKICAgICAgICBieQogICAgICAgIGFuZHJlYXMKICAgICAgICA6CiAgICAgICAgWzEuNF0gCiAgICAgICAgICAgIGdldCByaWQgb2YgbG9nNGogRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuNCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS40IHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgYW5kcmVhcwogICAgICAgIDoKICAgICAgICBbMS40XSAKICAgICAgICAgICAgZ2V0IHJpZCBvZiBsb2c0aiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS40IHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjQgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBhbmRyZWFzCiAgICAgICAgOgogICAgICAgIFsxLjRdIAogICAgICAgICAgICBnZXQgcmlkIG9mIGxvZzRqIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjQgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuNCB1cGRhdGUKICAgICAgICBieQogICAgICAgIGFuZHJlYXMKICAgICAgICA6CiAgICAgICAgWzEuNF0gCiAgICAgICAgICAgIGdldCByaWQgb2YgbG9nNGogRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuNCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS40IHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgYW5kcmVhcwogICAgICAgIDoKICAgICAgICBbMS40XSAKICAgICAgICAgICAgY2hhbmdlZCBzb21lIHB1YmxpYyBtb2RpZmllcnMgdG8gcHJvdGVjdGVkLCBhZGRlZCBqYXZhZG9jcyBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS40IHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjQgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBhbmRyZWFzCiAgICAgICAgOgogICAgICAgIFsxLjRdIAogICAgICAgICAgICBjaGFuZ2VkIHNvbWUgcHVibGljIG1vZGlmaWVycyB0byBwcm90ZWN0ZWQsIGFkZGVkIGphdmFkb2NzIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjQgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuNCB1cGRhdGUKICAgICAgICBieQogICAgICAgIG1pY2hpCiAgICAgICAgOgogICAgICAgIFsxLjRdIAogICAgICAgICAgICBjYWNoaW5nIGFjdGl2YXRlZCBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS40IHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjQgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBhbnRvbmlvCiAgICAgICAgOgogICAgICAgIFsxLjRdIAogICAgICAgICAgICBBZGQgbmV3IGxpdmUgc2l0ZSAtIEludGVyTWVkaWEsIFVuaXZlcnNpdHkgb2YgT3NsbyBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS4yIHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjIgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBhbnRvbmlvCiAgICAgICAgOgogICAgICAgIFsxLjJdIAogICAgICAgICAgICBBZGQgbmV3IGxpdmUgc2l0ZSAtIEludGVyTWVkaWEsIFVuaXZlcnNpdHkgb2YgT3NsbyBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS40IHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjQgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBtaWNoaQogICAgICAgIDoKICAgICAgICBbMS40XSAKICAgICAgICAgICAgY2FjaGluZyBpbXBsZW1lbnRlZCBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS4yIHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjIgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBtaWNoaQogICAgICAgIDoKICAgICAgICBbMS4yXSAKICAgICAgICAgICAgY3ZzIGNvbW1hbmQgYWRkZWQgRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuMiB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS4yIHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgbWljaGkKICAgICAgICA6CiAgICAgICAgWzEuMl0gCiAgICAgICAgICAgIEhpcmFtIENvbGxlZ2UgYWRkZWQgRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuNCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS40IHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgbWljaGkKICAgICAgICA6CiAgICAgICAgWzEuNF0gCiAgICAgICAgICAgIEhpcmFtIENvbGxlZ2UgRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuMiByZW1vdmU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS4yIHJlbW92ZQogICAgICAgIGJ5CiAgICAgICAgYW50b25pbwogICAgICAgIDoKICAgICAgICBbMS4yXSAKICAgICAgICAgICAgVXBkYXRlIHhhbGFuIHRvIDIuNiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS40IHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjQgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBhbmRyZWFzCiAgICAgICAgOgogICAgICAgIFsxLjRdIAogICAgICAgICAgICBhZGRlZCBqYXZhZG9jcywgcmVtb3ZlZCBkZXByZWNhdGVkIHN0dWZmIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjQgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuNCB1cGRhdGUKICAgICAgICBieQogICAgICAgIGFuZHJlYXMKICAgICAgICA6CiAgICAgICAgWzEuNF0gCiAgICAgICAgICAgIHJlbW92ZWQgcmVmZXJlbmNlIHRvIERPTVV0aWwgRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuNCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS40IHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgYW5kcmVhcwogICAgICAgIDoKICAgICAgICBbMS40XSAKICAgICAgICAgICAgdXNpbmcgYXZhbG9uIGNvbmZpZ3VyYXRpb24gRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuNCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS40IHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgYW5kcmVhcwogICAgICAgIDoKICAgICAgICBbMS40XSAKICAgICAgICAgICAgYWRkZWQgamF2YWRvY3MsIHJlZmFjdG9yaW5nLCBpbXByb3ZlZCBsb2dnaW5nIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjQgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuNCB1cGRhdGUKICAgICAgICBieQogICAgICAgIGFuZHJlYXMKICAgICAgICA6CiAgICAgICAgWzEuNF0gCiAgICAgICAgICAgIHJlZmxlY3RpbmcgY2hhbmdlcyB0byBzaXRldHJlZSBwYWNrYWdlIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjQgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuNCB1cGRhdGUKICAgICAgICBieQogICAgICAgIGFuZHJlYXMKICAgICAgICA6CiAgICAgICAgWzEuNF0gCiAgICAgICAgICAgIHJlbW92ZWQgdGFic3RvcHMsIGRvbid0IHVzZSBmYWxsYmFjazovLyBmb3Igc2l0ZW1hcHMgRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuNCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS40IHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgYW5kcmVhcwogICAgICAgIDoKICAgICAgICBbMS40XSAKICAgICAgICAgICAgZG9uJ3QgdXNlIGZhbGxiYWNrOi8vIGZvciBzaXRlbWFwcyBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS40IHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjQgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBhbmRyZWFzCiAgICAgICAgOgogICAgICAgIFsxLjRdIAogICAgICAgICAgICBkb24ndCB1c2UgZmFsbGJhY2s6Ly8gZm9yIHNpdGVtYXBzIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjQgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuNCB1cGRhdGUKICAgICAgICBieQogICAgICAgIGFuZHJlYXMKICAgICAgICA6CiAgICAgICAgWzEuNF0gCiAgICAgICAgICAgIHJlbGVhc2luZyB0ZW1wbGF0ZSBtYW5hZ2VyIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjQgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuNCB1cGRhdGUKICAgICAgICBieQogICAgICAgIGFuZHJlYXMKICAgICAgICA6CiAgICAgICAgWzEuNF0gCiAgICAgICAgICAgIGNoZWNrIGlmIGZpbGUgZXhpc3RzIGJlZm9yZSBjcmVhdGluZyBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS4yIHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjIgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBhbnRvbmlvCiAgICAgICAgOgogICAgICAgIFsxLjJdIAogICAgICAgICAgICBDaGVjayBpZiB0aGUgaW1hZ2VzIGlzIGFscmVhZHkgdXBsb2FkZWQgRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuNCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS40IHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgbWljaGkKICAgICAgICA6CiAgICAgICAgWzEuNF0gCiAgICAgICAgICAgIHN1Ym1lbnVzIGFkZGVkIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjQgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuNCB1cGRhdGUKICAgICAgICBieQogICAgICAgIG1pY2hpCiAgICAgICAgOgogICAgICAgIFsxLjRdIAogICAgICAgICAgICBNaWNoYWVsIEp1bmcgcGF0Y2ggYXBwbGllZCB0byBPU0NPTSBwdWJsaWNhdGlvbiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS40IHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjQgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBtaWNoaQogICAgICAgIDoKICAgICAgICBbMS40XSAKICAgICAgICAgICAgcGF0Y2ggYXBwbGllZCB3aGljaCB3YXMgc3VibWl0dGVkIGJ5IE1pY2hhZWwgSnVuZyBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS4yIHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjIgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBtaWNoaQogICAgICAgIDoKICAgICAgICBbMS4yXSAKICAgICAgICAgICAgcGF0Y2ggYXBwbGllZCB3aGljaCB3YXMgc3VibWl0dGVkIGJ5IE1pY2hhZWwgSnVuZyBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS40IHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjQgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBtaWNoaQogICAgICAgIDoKICAgICAgICBbMS40XSAKICAgICAgICAgICAgY29tbWVudHMgdXBkYXRlZCBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS4yIHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjIgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBtaWNoaQogICAgICAgIDoKICAgICAgICBbMS4yXSAKICAgICAgICAgICAgY29tbWVudCB1cGRhdGVkIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjIgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuMiB1cGRhdGUKICAgICAgICBieQogICAgICAgIG1pY2hpCiAgICAgICAgOgogICAgICAgIFsxLjJdIAogICAgICAgICAgICBjb21tZW50IGFib3V0IHBpcGVsaW5lIGFkZGVkIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjQgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuNCB1cGRhdGUKICAgICAgICBieQogICAgICAgIGFuZHJlYXMKICAgICAgICA6CiAgICAgICAgWzEuNF0gCiAgICAgICAgICAgIGFwcGxpZWQgcGF0Y2ggZm9yIGJ1ZyAjMzAyMzEgRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuNCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS40IHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgYW5kcmVhcwogICAgICAgIDoKICAgICAgICBbMS40XSAKICAgICAgICAgICAgYXBwbGllZCBwYXRjaCBmb3IgYnVnICMzMDIzMSBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS40IHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjQgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBhbmRyZWFzCiAgICAgICAgOgogICAgICAgIFsxLjRdIAogICAgICAgICAgICByZW1vdmVkIHNvbWUgZGVwcmVjYXRlZCBzdHVmZiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS40IHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjQgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBhbmRyZWFzCiAgICAgICAgOgogICAgICAgIFsxLjRdIAogICAgICAgICAgICByZW1vdmVkIHNvbWUgZGVwcmVjYXRlZCBzdHVmZiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS40IHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjQgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBhbmRyZWFzCiAgICAgICAgOgogICAgICAgIFsxLjRdIAogICAgICAgICAgICByZW1vdmVkIHNvbWUgZGVwcmVjYXRlZCBzdHVmZiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS4yIHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjIgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBhbmRyZWFzCiAgICAgICAgOgogICAgICAgIFsxLjJdIAogICAgICAgICAgICBhcHBsaWVkIHBhdGNoIGZvciBidWcgIzMwMjMxIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjIgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuMiB1cGRhdGUKICAgICAgICBieQogICAgICAgIGFuZHJlYXMKICAgICAgICA6CiAgICAgICAgWzEuMl0gCiAgICAgICAgICAgIGFwcGxpZWQgcGF0Y2ggZm9yIGJ1ZyAjMzAyMzEgRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuNCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS40IHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgYW5kcmVhcwogICAgICAgIDoKICAgICAgICBbMS40XSAKICAgICAgICAgICAgYWRkZWQgamF2YWRvY3MsIHJlbW92ZWQgc29tZSBkZXByZWNhdGVkIHN0dWZmIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjQgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuNCB1cGRhdGUKICAgICAgICBieQogICAgICAgIGFuZHJlYXMKICAgICAgICA6CiAgICAgICAgWzEuNF0gCiAgICAgICAgICAgIHJlbW92ZWQgc29tZSBkZXByZWNhdGVkIHN0dWZmIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjQgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuNCB1cGRhdGUKICAgICAgICBieQogICAgICAgIGFuZHJlYXMKICAgICAgICA6CiAgICAgICAgWzEuNF0gCiAgICAgICAgICAgIHJlbW92ZWQgc29tZSBkZXByZWNhdGVkIHN0dWZmLCBhZGRlZCBqYXZhZG9jcyBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS40IHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjQgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBhbmRyZWFzCiAgICAgICAgOgogICAgICAgIFsxLjRdIAogICAgICAgICAgICBtb3ZpbmcgZHVibGluIGNvcmUgY2xhc3NlcyB0byB0aGVpciBvd24gcGFja2FnZSBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS40IHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjQgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBhbmRyZWFzCiAgICAgICAgOgogICAgICAgIFsxLjRdIAogICAgICAgICAgICBtb3ZpbmcgZHVibGluIGNvcmUgY2xhc3NlcyB0byB0aGVpciBvd24gcGFja2FnZSBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS40IHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjQgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBhbmRyZWFzCiAgICAgICAgOgogICAgICAgIFsxLjRdIAogICAgICAgICAgICBtb3ZpbmcgZHVibGluIGNvcmUgY2xhc3NlcyB0byB0aGVpciBvd24gcGFja2FnZSBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS40IHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjQgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBhbmRyZWFzCiAgICAgICAgOgogICAgICAgIFsxLjRdIAogICAgICAgICAgICBtb3ZlZCBzaXRldHJlZSBjbGFzc2VzIHRvIHRoZWlyIG93biBwYWNrYWdlIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjQgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuNCB1cGRhdGUKICAgICAgICBieQogICAgICAgIGFuZHJlYXMKICAgICAgICA6CiAgICAgICAgWzEuNF0gCiAgICAgICAgICAgIG1vdmVkIHNpdGV0cmVlIGNsYXNzZXMgdG8gdGhlaXIgb3duIHBhY2thZ2UgRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuNCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS40IHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgYW5kcmVhcwogICAgICAgIDoKICAgICAgICBbMS40XSAKICAgICAgICAgICAgbW92ZWQgc2l0ZXRyZWUgY2xhc3NlcyB0byB0aGVpciBvd24gcGFja2FnZSBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS40IHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjQgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBhbmRyZWFzCiAgICAgICAgOgogICAgICAgIFsxLjRdIAogICAgICAgICAgICByZW1vdmVkIHNvbWUgZGVwcmVjYXRlZCBzdHVmZiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS40IHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjQgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBhbmRyZWFzCiAgICAgICAgOgogICAgICAgIFsxLjRdIAogICAgICAgICAgICBhZGRlZCBqYXZhZG9jcyBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS40IHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjQgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBhbmRyZWFzCiAgICAgICAgOgogICAgICAgIFsxLjRdIAogICAgICAgICAgICB1c2luZyBsZW55YTovIHByb3RvY29sIGZvciBzb3VyY2UgYWNjZXNzIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjQgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuNCB1cGRhdGUKICAgICAgICBieQogICAgICAgIGFuZHJlYXMKICAgICAgICA6CiAgICAgICAgWzEuNF0gCiAgICAgICAgICAgIGFkZGVkIGxvZ2dlciB0byBmYWxsYmFjayBzZiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS40IHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjQgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBhbmRyZWFzCiAgICAgICAgOgogICAgICAgIFsxLjRdIAogICAgICAgICAgICByZWxlYXNpbmcgc291cmNlIHJlc29sdmVyLCB3cmFwcGluZyBleGNlcHRpb24gaW5zdGVhZCBvZiBtZXNzYWdlIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjQgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuNCB1cGRhdGUKICAgICAgICBieQogICAgICAgIGFuZHJlYXMKICAgICAgICA6CiAgICAgICAgWzEuNF0gCiAgICAgICAgICAgIHJlbW92ZWQgdW51c2VkIGNvZGUgRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuNCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS40IHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgYW5kcmVhcwogICAgICAgIDoKICAgICAgICBbMS40XSAKICAgICAgICAgICAgY29kZSBmb3JtYXR0aW5nLCBmaXhlZCBAdmVyc2lvbiB0YWcgRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuNCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS40IHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgYW5kcmVhcwogICAgICAgIDoKICAgICAgICBbMS40XSAKICAgICAgICAgICAgY29tcGxlZGVkIGphdmFkb2NzIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjQgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuNCB1cGRhdGUKICAgICAgICBieQogICAgICAgIGFuZHJlYXMKICAgICAgICA6CiAgICAgICAgWzEuNF0gCiAgICAgICAgICAgIGZpeGVkIHdyb25nIHZhcmlhYmxlIHJlZmVyZW5jZSwgZmluYWwgcGFyYW1ldGVyIGRlY2xhcmF0aW9uIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjQgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuNCB1cGRhdGUKICAgICAgICBieQogICAgICAgIHRob3JzdGVuCiAgICAgICAgOgogICAgICAgIFsxLjRdIAogICAgICAgICAgICBmaXhlZCBhIHRvIGxpbmshIApSRU1FTUJFUiB0byB1c2UgbGluayBpbnN0ZWFkIG9mICZsdDthCgpEZWxldGVkIGF1dGhvciB0YWdzLiBXZSBhZ3JlZWQgbm90IHRvIHVzZSB0aGVtIQogRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuNCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS40IHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgcm9rdQogICAgICAgIDoKICAgICAgICBbMS40XSAKICAgICAgICAgICAgTWVyZ2VkIGZyb20gU3ByaW50IDIwMDQgYnJhbmNoLiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS40IGFkZDwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjQgYWRkCiAgICAgICAgYnkKICAgICAgICByb2t1CiAgICAgICAgOgogICAgICAgIFsxLjRdIAogICAgICAgICAgICBNZXJnZWQgZnJvbSBTcHJpbnQgMjAwNCBicmFuY2guIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjQgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuNCB1cGRhdGUKICAgICAgICBieQogICAgICAgIHJva3UKICAgICAgICA6CiAgICAgICAgWzEuNF0gCiAgICAgICAgICAgIE1lcmdlIGZyb20gMV8yX3ggRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuMiB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS4yIHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgcm9rdQogICAgICAgIDoKICAgICAgICBbMS4yXSAKICAgICAgICAgICAgVXBkYXRlZCB0byBLdXB1IDEuMS54IERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjIgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuMiB1cGRhdGUKICAgICAgICBieQogICAgICAgIHJva3UKICAgICAgICA6CiAgICAgICAgWzEuMl0gCiAgICAgICAgICAgIEZpeCBmb3IgYnVnICJzYXZlK2V4aXQgaW4gYnhlIGFuZCBrdXB1IHRha2VzIGZvcmV2ZXIuLi4iIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjIgYWRkPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuMiBhZGQKICAgICAgICBieQogICAgICAgIHJva3UKICAgICAgICA6CiAgICAgICAgWzEuMl0gCiAgICAgICAgICAgIENsYXNzIHRvIHBlcmZvcm0gc29tZSB1c2VmdWwgc3R1ZmYgb24gU291cmNlcy4gRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuMiB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS4yIHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgcm9rdQogICAgICAgIDoKICAgICAgICBbMS4yXSAKICAgICAgICAgICAgQWRkZWQgbWV0aG9kIHRvIGdldCBhIGRvY3VtZW50cyAiY29jb29uIiBVUkkKd2hpY2ggY2FuIGJlIHVzZWZ1bCB0b2dldGhlciB3aXRoIGEgU291cmNlUmVzb2x2ZXIuIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjIgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuMiB1cGRhdGUKICAgICAgICBieQogICAgICAgIHJva3UKICAgICAgICA6CiAgICAgICAgWzEuMl0gCiAgICAgICAgICAgIFJlbW92ZWQgamF2YS5pbyBkZXBlbmQgbWV0aG9kLiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS40IHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjQgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBhbmRyZWFzCiAgICAgICAgOgogICAgICAgIFsxLjRdIAogICAgICAgICAgICBtZXJnZWQgQlJBTkNIXzFfMl9YIGludG8gdHJ1bmsgRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuNCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS40IHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgYW5kcmVhcwogICAgICAgIDoKICAgICAgICBbMS40XSAKICAgICAgICAgICAgbWVyZ2VkIEJSQU5DSF8xXzJfWCBpbnRvIHRydW5rIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjQgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuNCB1cGRhdGUKICAgICAgICBieQogICAgICAgIGFuZHJlYXMKICAgICAgICA6CiAgICAgICAgWzEuNF0gCiAgICAgICAgICAgIG1lcmdlZCBCUkFOQ0hfMV8yX1ggaW50byB0cnVuayBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS4yIHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjIgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBhbmRyZWFzCiAgICAgICAgOgogICAgICAgIFsxLjJdIAogICAgICAgICAgICBjaGFuZ2VkIGNvbGxlY3Rpb24gcmV0dXJuIHR5cGUgdG8gVXNlclR5cGUgYXJyYXkgRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuMiB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS4yIHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgYW5kcmVhcwogICAgICAgIDoKICAgICAgICBbMS4yXSAKICAgICAgICAgICAgZml4ZWQgdGVzdCBjYXNlcyBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS4yIHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjIgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBhbmRyZWFzCiAgICAgICAgOgogICAgICAgIFsxLjJdIAogICAgICAgICAgICB1c2luZyBhcnJheXMgZm9yIHBhcmFtZXRlciBwYXNzaW5nLCBhZGRlZCBqYXZhZG9jcyBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS4yIHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjIgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBhbmRyZWFzCiAgICAgICAgOgogICAgICAgIFsxLjJdIAogICAgICAgICAgICBhZGRlZCBqYXZhZG9jcyBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS4yIHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjIgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBhbmRyZWFzCiAgICAgICAgOgogICAgICAgIFsxLjJdIAogICAgICAgICAgICBmaXhlZCBtaXNzaW5nIGltcG9ydCBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS4yIHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjIgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBhbmRyZWFzCiAgICAgICAgOgogICAgICAgIFsxLjJdIAogICAgICAgICAgICBhcHBsaWVkIHBhdGNoOiBodHRwOi8vaXNzdWVzLmFwYWNoZS5vcmcvYnVnemlsbGEvc2hvd19idWcuY2dpP2lkPTMwMjMxIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjQgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuNCB1cGRhdGUKICAgICAgICBieQogICAgICAgIGFuZHJlYXMKICAgICAgICA6CiAgICAgICAgWzEuNF0gCiAgICAgICAgICAgIGZpeGVkIHR5cG8gYW5kIHdlbGxmb3JtZWRuZXNzIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjQgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuNCB1cGRhdGUKICAgICAgICBieQogICAgICAgIG1pY2hpCiAgICAgICAgOgogICAgICAgIFsxLjRdIAogICAgICAgICAgICBsaW5rcyBjcmVhdG9yIGFkZGVkIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjQgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuNCB1cGRhdGUKICAgICAgICBieQogICAgICAgIGFuZHJlYXMKICAgICAgICA6CiAgICAgICAgWzEuNF0gCiAgICAgICAgICAgIHVzaW5nIGZhbGxiYWNrIGZvciBzY2hlbWFzIGFuZCBmb3JtIGVkaXRvciBYU0xUcyBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS40IHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjQgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBhbmRyZWFzCiAgICAgICAgOgogICAgICAgIFsxLjRdIAogICAgICAgICAgICB1c2luZyBmYWxsYmFjayBmb3IgUk5HIHNjaGVtYSBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS40IGFkZDwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjQgYWRkCiAgICAgICAgYnkKICAgICAgICBhbmRyZWFzCiAgICAgICAgOgogICAgICAgIFsxLjRdIAogICAgICAgICAgICBhZGRlZCBob21lcGFnZSBmb3JtIGVkaXRvciBYU0xUIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjQgYWRkPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuNCBhZGQKICAgICAgICBieQogICAgICAgIGFuZHJlYXMKICAgICAgICA6CiAgICAgICAgWzEuNF0gCiAgICAgICAgICAgIGFkZGVkIGhvbWVwYWdlIHNjaGVtYSBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS40IHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjQgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBhbmRyZWFzCiAgICAgICAgOgogICAgICAgIFsxLjRdIAogICAgICAgICAgICBhZGRlZCBmYWxsYmFjayBwcm90b2NvbCBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS40IHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjQgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBhbmRyZWFzCiAgICAgICAgOgogICAgICAgIFsxLjRdIAogICAgICAgICAgICByZXBsYWNlZCBqYXZhLmlvLmZpbGUgYnkgby5hLmV4Y2FsaWJ1ci5zb3VyY2UuU291cmNlIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjQgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuNCB1cGRhdGUKICAgICAgICBieQogICAgICAgIGFudG9uaW8KICAgICAgICA6CiAgICAgICAgWzEuNF0gCiAgICAgICAgICAgIFVwZGF0ZSB4YWxhbiB0byAyLjYgRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuNCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS40IHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgYW50b25pbwogICAgICAgIDoKICAgICAgICBbMS40XSAKICAgICAgICAgICAgU2V0IGJhY2sgeHNsdCBhcyBkZWZhdWx0IHRyYW5zZm9ybWVyIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjQgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuNCB1cGRhdGUKICAgICAgICBieQogICAgICAgIGFuZHJlYXMKICAgICAgICA6CiAgICAgICAgWzEuNF0gCiAgICAgICAgICAgIGNvZGUgZm9ybWF0dGluZyBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS40IHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjQgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBhbmRyZWFzCiAgICAgICAgOgogICAgICAgIFsxLjRdIAogICAgICAgICAgICByZW1vdmVkIGR1cGxpY2F0ZSBYYWxhbiB0cmFuc2Zvcm1lciBkZWNsYXJhdGlvbiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS40IHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjQgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBhbmRyZWFzCiAgICAgICAgOgogICAgICAgIFsxLjRdIAogICAgICAgICAgICB1c2luZyBmYWxsYmFjayBmb3Igc2NoZW1hcyBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS40IHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjQgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBhbmRyZWFzCiAgICAgICAgOgogICAgICAgIFsxLjRdIAogICAgICAgICAgICB1c2luZyBzb3VyY2UgcmVzb2x2ZXIgdG8gcmVzb2x2ZSBzY2hlbWEgLSZndDsgYWxsb3dzIGZhbGxiYWNrOi8vIHByb3RvY29sIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjQgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuNCB1cGRhdGUKICAgICAgICBieQogICAgICAgIGFuZHJlYXMKICAgICAgICA6CiAgICAgICAgWzEuNF0gCiAgICAgICAgICAgIG1ha2luZyB2YWxpZGF0ZSBtZXRob2QgcHVibGljIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjQgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuNCB1cGRhdGUKICAgICAgICBieQogICAgICAgIGFuZHJlYXMKICAgICAgICA6CiAgICAgICAgWzEuNF0gCiAgICAgICAgICAgIGV4dHJhY3RlZCBpbnB1dCBzb3VyY2UgbWV0aG9kIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjQgcmVtb3ZlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuNCByZW1vdmUKICAgICAgICBieQogICAgICAgIGFuZHJlYXMKICAgICAgICA6CiAgICAgICAgWzEuNF0gCiAgICAgICAgICAgIHJlbW92ZWQgb2Jzb2xldGUgWG9wdXNIYW5kbGVyQWN0aW9uIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjQgcmVtb3ZlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuNCByZW1vdmUKICAgICAgICBieQogICAgICAgIGFuZHJlYXMKICAgICAgICA6CiAgICAgICAgWzEuNF0gCiAgICAgICAgICAgIHJlbW92ZWQgb2Jzb2xldGUgWG9wdXNIYW5kbGVyQWN0aW9uIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjQgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuNCB1cGRhdGUKICAgICAgICBieQogICAgICAgIGFuZHJlYXMKICAgICAgICA6CiAgICAgICAgWzEuNF0gCiAgICAgICAgICAgIHJlbW92ZWQgb2Jzb2xldGUgWG9wdXNIYW5kbGVyQWN0aW9uIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjQgcmVtb3ZlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuNCByZW1vdmUKICAgICAgICBieQogICAgICAgIGFuZHJlYXMKICAgICAgICA6CiAgICAgICAgWzEuNF0gCiAgICAgICAgICAgIHJlbW92ZWQgb2Jzb2xldGUgWG9wdXNIYW5kbGVyQWN0aW9uIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjQgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuNCB1cGRhdGUKICAgICAgICBieQogICAgICAgIGFuZHJlYXMKICAgICAgICA6CiAgICAgICAgWzEuNF0gCiAgICAgICAgICAgIFVzaW5nIGZhbGxiYWNrIG1vZHVsZSB0byBtb3VudCBzaXRlbWFwIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjQgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuNCB1cGRhdGUKICAgICAgICBieQogICAgICAgIG1pY2hpCiAgICAgICAgOgogICAgICAgIFsxLjRdIAogICAgICAgICAgICBMdWNlbmUgdmVyc2lvbiBmaXhlZCBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS40IHJlbW92ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjQgcmVtb3ZlCiAgICAgICAgYnkKICAgICAgICBhbnRvbmlvCiAgICAgICAgOgogICAgICAgIFsxLjRdIAogICAgICAgICAgICBVcGRhdGUgbHVjZW5lIHRvIDEuNC4xIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjQgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuNCB1cGRhdGUKICAgICAgICBieQogICAgICAgIGFuZHJlYXMKICAgICAgICA6CiAgICAgICAgWzEuNF0gCiAgICAgICAgICAgIHVzaW5nIGZhbGxiYWNrOi8vIHByb3RvY29sIGluc3RlYWQgb2YgaW5wdXQgbW9kdWxlIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjQgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuNCB1cGRhdGUKICAgICAgICBieQogICAgICAgIGFuZHJlYXMKICAgICAgICA6CiAgICAgICAgWzEuNF0gCiAgICAgICAgICAgIHVzaW5nIGZhbGxiYWNrOi8vIHByb3RvY29sIGluc3RlYWQgb2YgaW5wdXQgbW9kdWxlIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjQgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuNCB1cGRhdGUKICAgICAgICBieQogICAgICAgIGFuZHJlYXMKICAgICAgICA6CiAgICAgICAgWzEuNF0gCiAgICAgICAgICAgIHVzaW5nIEZhbGxiYWNrU291cmNlRmFjdG9yeSAoYWxsb3dzIGNvbWJpbmF0aW9uIG9mIGZhbGxiYWNrIGFuZCBSZXNvdXJjZUV4aXN0c0FjdGlvbikgRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuNCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS40IHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgYW5kcmVhcwogICAgICAgIDoKICAgICAgICBbMS40XSAKICAgICAgICAgICAgYWRkaW5nIGxpY2Vuc2UgaGVhZGVyIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjQgYWRkPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuNCBhZGQKICAgICAgICBieQogICAgICAgIGFuZHJlYXMKICAgICAgICA6CiAgICAgICAgWzEuNF0gCiAgICAgICAgICAgIGFkZGluZyBGYWxsYmFja1NvdXJjZUZhY3RvcnkgRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuNCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS40IHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgbWljaGkKICAgICAgICA6CiAgICAgICAgWzEuNF0gCiAgICAgICAgICAgIG1vcmUgdmVyc2lvbnMgdXBkYXRlZCBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS40IHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjQgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBtaWNoaQogICAgICAgIDoKICAgICAgICBbMS40XSAKICAgICAgICAgICAgdmVyc2lvbiBudW1iZXIgdWRhdGVkIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjQgYWRkPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuNCBhZGQKICAgICAgICBieQogICAgICAgIGFuZHJlYXMKICAgICAgICA6CiAgICAgICAgWzEuNF0gCiAgICAgICAgICAgIEluaXRpYWwgY2hlY2tpbiBvZiBwdWJsaWNhdGlvbiB0ZW1wbGF0aW5nIGNvZGUgRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuNCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS40IHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgYW5kcmVhcwogICAgICAgIDoKICAgICAgICBbMS40XSAKICAgICAgICAgICAgSW5pdGlhbCBjaGVja2luIG9mIHB1YmxpY2F0aW9uIHRlbXBsYXRpbmcgY29kZSBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS40IHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjQgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBhbmRyZWFzCiAgICAgICAgOgogICAgICAgIFsxLjRdIAogICAgICAgICAgICBJbml0aWFsIGNoZWNraW4gb2YgcHVibGljYXRpb24gdGVtcGxhdGluZyBjb2RlIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjIgYWRkPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuMiBhZGQKICAgICAgICBieQogICAgICAgIGFuZHJlYXMKICAgICAgICA6CiAgICAgICAgWzEuMl0gCiAgICAgICAgICAgIENyZWF0aW5nIExlbnlhIDEuMi4qIGJyYW5jaCBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS40IHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjQgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBtaWNoaQogICAgICAgIDoKICAgICAgICBbMS40XSAKICAgICAgICAgICAgb3BlbnNzbCBhZGRlZCBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS40IHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjQgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBtaWNoaQogICAgICAgIDoKICAgICAgICBbMS40XSAKICAgICAgICAgICAgU1ZOIGluZm8gdG8gbmF2aWdhdGlvbiBhZGRlZCBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS40IGFkZDwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjQgYWRkCiAgICAgICAgYnkKICAgICAgICBtaWNoaQogICAgICAgIDoKICAgICAgICBbMS40XSAKICAgICAgICAgICAgc3VidmVyc2lvbiBob3d0byBhZGRlZCBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS40IHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjQgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBtaWNoaQogICAgICAgIDoKICAgICAgICBbMS40XSAKICAgICAgICAgICAgc3BhY2UgaW5zZXJ0ZWQgdG8gdGVzdCBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS40IHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjQgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBhbmRyZWFzCiAgICAgICAgOgogICAgICAgIFsxLjRdIAogICAgICAgICAgICBDaGFuZ2VkIGxpbmUgYnJlYWsgKHJlcG8gdGVzdCkgRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuNCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS40IHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgcm9rdQogICAgICAgIDoKICAgICAgICBbMS40XSAKICAgICAgICAgICAgVXBkYXRlZCBDVlMgdXNhZ2UgZG9jdSAtJmd0OyBTVk4KKFRoZSBkb2MgaXMgbm90IHlldCB0ZXN0ZWQgYW5kIG1heSBuZWVkIGltcHJvdmVtZW50cykgRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuNCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS40IHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgYW50b25pbwogICAgICAgIDoKICAgICAgICBbMS40XSAKICAgICAgICAgICAgQWRkaW5nIGdlbmVyYXRvciBtZXRhdGFnIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjQgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuNCB1cGRhdGUKICAgICAgICBieQogICAgICAgIG5vZWwKICAgICAgICA6CiAgICAgICAgWzEuNF0gCiAgICAgICAgICAgIHRyaXZpYWwgdGV4dCBjaGFuZ2UgLS0gdGVzdGluZyBjb21wbGFpbnRzIHRoYXQgY29tbWl0IGlzIGJyb2tlbiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS40IHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjQgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBhbmRyZWFzCiAgICAgICAgOgogICAgICAgIFsxLjRdIAogICAgICAgICAgICBmaXhpbmcgbGluayBpbmNsdXNpb24gYnVnIGluIEJYRQogRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuNCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS40IHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgbWljaGkKICAgICAgICA6CiAgICAgICAgWzEuNF0gCiAgICAgICAgICAgIGZvcm1hdHRpbmcgZml4ZWQKIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjQgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuNCB1cGRhdGUKICAgICAgICBieQogICAgICAgIG1pY2hpCiAgICAgICAgOgogICAgICAgIFsxLjRdIAogICAgICAgICAgICBkbyBub3Qgc2hvdyBlbXB0eSBtZW51cwogRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuNCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS40IHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgbWljaGkKICAgICAgICA6CiAgICAgICAgWzEuNF0gCiAgICAgICAgICAgIFhVTCBzZWxlY3RvciBhZGRlZAogRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuNCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS40IHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgbWljaGkKICAgICAgICA6CiAgICAgICAgWzEuNF0gCiAgICAgICAgICAgIFNlYXJjaCBCbG9jayByZW1vdmVkCiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS40IHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjQgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBtaWNoaQogICAgICAgIDoKICAgICAgICBbMS40XSAKICAgICAgICAgICAgZGF0ZSBpbnRvIGVuZ2xpc2ggdHJhbnNsYXRlZAogRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuNCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS40IHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgbWljaGkKICAgICAgICA6CiAgICAgICAgWzEuNF0gCiAgICAgICAgICAgIFhVTCBlbmFibGVkCiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS40IHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjQgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBtaWNoaQogICAgICAgIDoKICAgICAgICBbMS40XSAKICAgICAgICAgICAgY29weXJpZ2h0IHN0YXRlbWVudCBhZGRlZAogRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuNCBhZGQ8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS40IGFkZAogICAgICAgIGJ5CiAgICAgICAgbWljaGkKICAgICAgICA6CiAgICAgICAgWzEuNF0gCiAgICAgICAgICAgIFhVTCB2aWV3IGFkZGVkCiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS40IHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjQgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBtaWNoaQogICAgICAgIDoKICAgICAgICBbMS40XSAKICAgICAgICAgICAgbWF0Y2ggbGlua3MgbWVudSBieSBkb2N0eXBlCiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgIGFkZDwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4gYWRkCiAgICAgICAgYnkKICAgICAgICBqZXJlbmtyYW50egogICAgICAgIDoKICAgICAgICBbXSAKICAgICAgICAgICAgSW1wb3J0IExlbnlhIGludG8gU3VidmVyc2lvbiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS40IHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjQgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBhbmRyZWFzCiAgICAgICAgOgogICAgICAgIFsxLjRdIAogICAgICAgICAgICBBZGRlZCBwYXNzYWdlIGFib3V0IG1haWxpbmcgbGlzdCBndWlkZWxpbmVzCiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS40IHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjQgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBtaWNoaQogICAgICAgIDoKICAgICAgICBbMS40XSAKICAgICAgICAgICAgdHlwbyBmaXhlZAogRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuNCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS40IHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgcm9rdQogICAgICAgIDoKICAgICAgICBbMS40XSAKICAgICAgICAgICAgRml4ZWQgamF2YWRvY3MKIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjQgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuNCB1cGRhdGUKICAgICAgICBieQogICAgICAgIHJva3UKICAgICAgICA6CiAgICAgICAgWzEuNF0gCiAgICAgICAgICAgIEZpeGVkIGphdmFkb2NzCiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS40IHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjQgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICByb2t1CiAgICAgICAgOgogICAgICAgIFsxLjRdIAogICAgICAgICAgICBUcmlnZ2VyaW5nIHdvcmtmbG93IGFmdGVyIGVhY2ggc2F2ZSBub3cuCiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS40IHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjQgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICByb2t1CiAgICAgICAgOgogICAgICAgIFsxLjRdIAogICAgICAgICAgICBBZGRlZCBtZXRob2QgdG8gdHJpZ2dlciB3b3JrZmxvdwogRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuNCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS40IHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgcm9rdQogICAgICAgIDoKICAgICAgICBbMS40XSAKICAgICAgICAgICAgRml4ZWQgcGF0aCByZWZlcmVuY2UgdG8gcmNvLWV4Y2VwdGlvbi54c2wKIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjQgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuNCB1cGRhdGUKICAgICAgICBieQogICAgICAgIHJva3UKICAgICAgICA6CiAgICAgICAgWzEuNF0gCiAgICAgICAgICAgIC0gUmVtb3ZlZCB1c2VsZXNzIGltcG9ydHMKLSBBZGRlZCBsaWMKLSBEb2NzCiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS40IHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjQgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICByb2t1CiAgICAgICAgOgogICAgICAgIFsxLjRdIAogICAgICAgICAgICBGaXhlZCB0eXBvCiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS40IHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjQgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICByb2t1CiAgICAgICAgOgogICAgICAgIFsxLjRdIAogICAgICAgICAgICBBZGRlZCBqYXZhZG9jcyAuCkkga25vdyBub2JieSBsaWtlIHRoYXQgOikKIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjQgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuNCB1cGRhdGUKICAgICAgICBieQogICAgICAgIHJva3UKICAgICAgICA6CiAgICAgICAgWzEuNF0gCiAgICAgICAgICAgIEZpeGVkIGJ1ZyAjMjc5MDUgZm9yIEt1cHUgKFNhdmUgYW5kIEV4aXQgdGFrZXMgZm9yZXZlcikKVGhpcyBhbHNvIGNhbiBmaXggdGhlIGJ1ZyBmb3IgYnhlLCBidXQgd2lsbCBuZWVkICBzb21lIHVzZWNhc2Ugc2l0ZW1hcCByZWZhY3RvcmluZy4KSSB3b3VsZCB2ZXJ5IGFwcHJlY2lhdGUgdG8gZml4IHRoYXQgZm9yIGJ4ZSB0b28gaW4gMS4yLjEKCkNIQU5HRVMgaW4gZGV0YWlsOgoKLSBBZGRlZCBtZXRob2Qgc2F2ZVBpcGVsaW5lVG9Eb2N1bWVudCB0byBGbG93SGVscGVyCi0gUmVmYWN0b3JlZCBrdXB1IHVzZWNhc2Ugc2l0ZW1hcCB0byBzYXZlIGRvYyB2aWEganMgZmxvdy4KLSBBZGRlZCBjb29tb25zLWlvIGZvciBmYXN0ZXIgb3V0cHV0IHN0cmVhbXMuCgpCVFc6IGV4Y2FsaWJ1ci1pbyBpcyBkZXByZWNhdGVkICEKIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjQgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuNCB1cGRhdGUKICAgICAgICBieQogICAgICAgIGFuZHJlYXMKICAgICAgICA6CiAgICAgICAgWzEuNF0gCiAgICAgICAgICAgIGZpeGVkIGVtcHR5IGV4cHJlc3Npb24gZXJyb3IKIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjQgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuNCB1cGRhdGUKICAgICAgICBieQogICAgICAgIHJva3UKICAgICAgICA6CiAgICAgICAgWzEuNF0gCiAgICAgICAgICAgIFJlbW92ZWQgdXNlbGVzcyBjb21tZW50CiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS40IHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjQgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICByb2t1CiAgICAgICAgOgogICAgICAgIFsxLjRdIAogICAgICAgICAgICBFeGNsdWRlIGN1cnJlbnQgcGFnZXMgaW1hZ2VzIGluICJvdGhlciIgcGFnZXMgaW1hZ2VzCiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS40IHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjQgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICByb2t1CiAgICAgICAgOgogICAgICAgIFsxLjRdIAogICAgICAgICAgICBBZGRlZCBtZXRob2RzIGdldEltYWdlUmVzb3VyY2VzIGFuZCBnZXRSZXNvdXJjZVVybAogRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuNCBhZGQ8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS40IGFkZAogICAgICAgIGJ5CiAgICAgICAgcm9rdQogICAgICAgIDoKICAgICAgICBbMS40XSAKICAgICAgICAgICAgU3VwcG9ydCBmb3IgZ2V0dGluZyBhbCBkb2NzIGZyb20gYSBwdWIgdmlhIHNpdGV0cmVlCiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS40IHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjQgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICByb2t1CiAgICAgICAgOgogICAgICAgIFsxLjRdIAogICAgICAgICAgICBDb250aW51ZWQgaW1hZ2UgZHJhd2VyIGludGVncmF0aW9uOiBJdHMgbm93IHBvc3NpYmxlIHRvIHNlbGVjdCBpbWFnZXMgZnJvbSBhbGwgcGFnZXMuCiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS40IHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjQgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICByb2t1CiAgICAgICAgOgogICAgICAgIFsxLjRdIAogICAgICAgICAgICBJRSBmaXguCiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS40IHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjQgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBhbmRyZWFzCiAgICAgICAgOgogICAgICAgIFsxLjRdIAogICAgICAgICAgICBwcmV0dGlmaWVkIFhTTFQKIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjQgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuNCB1cGRhdGUKICAgICAgICBieQogICAgICAgIGFuZHJlYXMKICAgICAgICA6CiAgICAgICAgWzEuNF0gCiAgICAgICAgICAgIHJlbW92ZWQgdGFic3RvcHMKIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjQgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuNCB1cGRhdGUKICAgICAgICBieQogICAgICAgIGFuZHJlYXMKICAgICAgICA6CiAgICAgICAgWzEuNF0gCiAgICAgICAgICAgIGNoZWNrIGlmIHBvbGljeSBmaWxlIGV4aXN0cyBiZWZvcmUgY3JlYXRpbmcKIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjQgcmVtb3ZlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuNCByZW1vdmUKICAgICAgICBieQogICAgICAgIGFuZHJlYXMKICAgICAgICA6CiAgICAgICAgWzEuNF0gCiAgICAgICAgICAgIHVzaW5nIHNhbWUgR1VJIGZvciBieGUgJmFtcDsgbGVueWEgYXNzZXQgdXBsb2FkCiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS40IHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjQgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBhbmRyZWFzCiAgICAgICAgOgogICAgICAgIFsxLjRdIAogICAgICAgICAgICB1c2luZyBzYW1lIEdVSSBmb3IgYnhlICZhbXA7IGxlbnlhIGFzc2V0IHVwbG9hZAogRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuNCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS40IHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgYW5kcmVhcwogICAgICAgIDoKICAgICAgICBbMS40XSAKICAgICAgICAgICAgdXNpbmcgc2FtZSBHVUkgZm9yIGJ4ZSAmYW1wOyBsZW55YSBhc3NldCB1cGxvYWQKIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjQgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuNCB1cGRhdGUKICAgICAgICBieQogICAgICAgIGFuZHJlYXMKICAgICAgICA6CiAgICAgICAgWzEuNF0gCiAgICAgICAgICAgIC0gYWRkZWQgbGljZW5zZQotIHBhcmFtZXRlciBkZWNsYXJhdGlvbnMgd2VyZSBpbiB3cm9uZyBwb3NpdGlvbgogRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuNCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS40IHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgYW5kcmVhcwogICAgICAgIDoKICAgICAgICBbMS40XSAKICAgICAgICAgICAgdXNpbmcgc2FtZSBHVUkgZm9yIGJ4ZSAmYW1wOyBsZW55YSBhc3NldCB1cGxvYWQKIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjQgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuNCB1cGRhdGUKICAgICAgICBieQogICAgICAgIGFuZHJlYXMKICAgICAgICA6CiAgICAgICAgWzEuNF0gCiAgICAgICAgICAgIHJlZmFjdG9yaW5nOiBleHRyYWN0ZWQgc29tZSBtZXRob2RzCiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS40IHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjQgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBhbmRyZWFzCiAgICAgICAgOgogICAgICAgIFsxLjRdIAogICAgICAgICAgICBmaXhlZCBqYXZhc2NyaXB0IGVycm9yOiBhZGRpbmcgc2VsZWN0ZWQgaW1hZ2UKIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjQgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuNCB1cGRhdGUKICAgICAgICBieQogICAgICAgIGFuZHJlYXMKICAgICAgICA6CiAgICAgICAgWzEuNF0gCiAgICAgICAgICAgIGltcHJvdmVkIGNvbW1lbnQgZm9yIHJvb3QgcGFyYW1ldGVyCiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS40IHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjQgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICByb2t1CiAgICAgICAgOgogICAgICAgIFsxLjRdIAogICAgICAgICAgICBSZW1vdmVkIHVzZWxlc3MgY29tbW5ldGVkIHNpdGVtYXAgbWFya3VwCiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS40IGFkZDwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjQgYWRkCiAgICAgICAgYnkKICAgICAgICByb2t1CiAgICAgICAgOgogICAgICAgIFsxLjRdIAogICAgICAgICAgICBFeHRyYWN0ZWQga3VwdSB1c2VjYXNlCiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS40IGFkZDwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjQgYWRkCiAgICAgICAgYnkKICAgICAgICBhbmRyZWFzCiAgICAgICAgOgogICAgICAgIFsxLjRdIAogICAgICAgICAgICByZWZhY3RvcmVkIGltYWdlIHVwbG9hZCBYU0xUCiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS40IHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjQgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBhbmRyZWFzCiAgICAgICAgOgogICAgICAgIFsxLjRdIAogICAgICAgICAgICB3YXJuaW5nIG1lc3NhZ2UgZm9yIGludmFsaWQgYXNzZXQgZmlsZSBuYW1lcwogRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuNCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS40IHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgYW5kcmVhcwogICAgICAgIDoKICAgICAgICBbMS40XSAKICAgICAgICAgICAgZXNjYXBpbmcgY2hhcmFjdGVycyAiLCAmbHQ7LCAmZ3Q7IGluIHNpdGV0cmVlIGxhYmVscwogRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuNCBhZGQ8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS40IGFkZAogICAgICAgIGJ5CiAgICAgICAgYW5kcmVhcwogICAgICAgIDoKICAgICAgICBbMS40XSAKICAgICAgICAgICAgYWRkZWQgc3RyaW5nLWZ1bmN0aW9ucyBYU0xUCiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS40IHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjQgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICByb2t1CiAgICAgICAgOgogICAgICAgIFsxLjRdIAogICAgICAgICAgICBTdGFydGVkIHVzaW5nIGRjIG1ldGEgZGF0YSBpbiBhc3NldHMueHNwIGFuZCBpbmZvOmFzc2V0cy4KSXRzIGEgYml0IGhhY2t5LCBidXQgbXkgYXBwcm9hY2ggdG8gZG8gaXQgbmljZSBpcyBvdXQgb2Ygc2NvcGUKb2YgTGVueWEgMS4yLjEuIFNvIHNtYWNrIG1lIGlmIGl0cyB0b28gYmFkLgpUaGUgaW5mbzphc3NldHMgc2NyZWVuIG5vdyBhbHNvIHNob3dzICB0aGUgcmVhbCBkYzp0aXRsZS4KVGhlIGJ4ZSBhc3NldHMgc2NyZWVucyBuZWVkIHRvIGJlIGZpeGVkIGFiaXQuIEkgbGFyZWFkeSBzdGFydGVkIGJ1dCBoYXZlbid0IHRlc3RlZCB5ZXQuCiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS40IHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjQgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICByb2t1CiAgICAgICAgOgogICAgICAgIFsxLjRdIAogICAgICAgICAgICBBZGRlZCBzb21lIHVzZWZ1bCBtZXRob2RzLgogRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuNCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS40IHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgcm9rdQogICAgICAgIDoKICAgICAgICBbMS40XSAKICAgICAgICAgICAgU21hbGwgcmVmYWN0b3Jpbmcgb2Yga3VwdSB1c2VjYXNlCiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS40IHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjQgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICByb2t1CiAgICAgICAgOgogICAgICAgIFsxLjRdIAogICAgICAgICAgICBVcGRhdGVkIGt1cHUgdXNlY2FzZSByZSBsaW5rZHJhd2VyIGludGVncmF0aW9uLgogRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuNCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS40IHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgcm9rdQogICAgICAgIDoKICAgICAgICBbMS40XSAKICAgICAgICAgICAgQWRkZWQgbWV0aG9kIHRvIGdldCBhIG1ldGEgZmlsZSBmb3IgYSBzcGVjaWFsIHJlc291cmNlLgppIGd1ZXNzIHdlIG5lZWQgYW4gQXNzZXQgQVBJIHdoaWNoIGtlZXBzIHVzIGF3YXkgZnJvbSBhY3Rpbmcgb24gRmlsZSBsZXZlbCBoZXJlLgpUaGUgUmVzb3VyY2VzTWFuYWdlciBzaG91bGQgcmV0dXJuIHN0aC4gbGlrZSBBc3NldCBvciBSZXNvdXJjZS4KSG93ZXZlci4uLi4uCiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS40IHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjQgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICByb2t1CiAgICAgICAgOgogICAgICAgIFsxLjRdIAogICAgICAgICAgICBEb2N1bWVudGVkIEt1cHUgdXNlY2FzZSBhIGJpdC4KIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjQgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuNCB1cGRhdGUKICAgICAgICBieQogICAgICAgIHJva3UKICAgICAgICA6CiAgICAgICAgWzEuNF0gCiAgICAgICAgICAgIFVzaW5nIGNvbnRlbnQvaW5mby9hc3NldHMueHNwIHRvIHBvcHVsYXRlIEt1cHUgaW1hZ2UgZHJhd2VyLgpUaGVyZSBpcyBzb21lIHdvcmsgdG8gZG8gaW4gYXNzZXRzLnhzcCBJIGZlZWwKIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjQgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuNCB1cGRhdGUKICAgICAgICBieQogICAgICAgIHJva3UKICAgICAgICA6CiAgICAgICAgWzEuNF0gCiAgICAgICAgICAgIEt1cHUgdWMgdXBkYXRlcwogRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuNCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS40IHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgcm9rdQogICAgICAgIDoKICAgICAgICBbMS40XSAKICAgICAgICAgICAgQ2xlYW5lZCB1cCBrdXB1IHVzZWNhc2UKIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjQgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuNCB1cGRhdGUKICAgICAgICBieQogICAgICAgIHJva3UKICAgICAgICA6CiAgICAgICAgWzEuNF0gCiAgICAgICAgICAgIFNtYWxsIGt1cHUgZml4CiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS40IHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjQgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICByb2t1CiAgICAgICAgOgogICAgICAgIFsxLjRdIAogICAgICAgICAgICBDb250aW51ZWQga3VwdSB1c2VjYXNlLgpTdGFydGVkIGltYWdlIGRyYXdlciBpbnRlZ3JhdGlvbi4KIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjQgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuNCB1cGRhdGUKICAgICAgICBieQogICAgICAgIHJva3UKICAgICAgICA6CiAgICAgICAgWzEuNF0gCiAgICAgICAgICAgIEFkZGVkIGp4IGdlbmVyYXRvci4KSSBuZWVkIGl0IGZvciB0aGUga3VwdSB1c2VjYXNlIChkcmF3ZXJzKQogRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuNCByZW1vdmU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS40IHJlbW92ZQogICAgICAgIGJ5CiAgICAgICAgcm9rdQogICAgICAgIDoKICAgICAgICBbMS40XSAKICAgICAgICAgICAgUmVtb3ZlZCBsZW55YSBwYXRjaGVkIFN0cmVhbUdlbmVyYXRvciBzaW5jZSB3ZSBub3cgY2FuIGNvbmZpZ3VyZSB0aGUgY29udGVudCB0eXBlIGluIGt1cHUuCiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS40IHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjQgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICByb2t1CiAgICAgICAgOgogICAgICAgIFsxLjRdIAogICAgICAgICAgICBDbGVhbmVkIHVwIGt1cHUgdXNlIGNhc2UuCkFkZGVkIHN0ZXAgImV4aXQiLCB3aGVyZSB0aGUgZG9jIGlzIGNoZWNra2VkIGluLgogRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuNCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS40IHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgcm9rdQogICAgICAgIDoKICAgICAgICBbMS40XSAKICAgICAgICAgICAgVXBncmFkZWQgdG8gS3VwdSAxLjEKIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjQgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuNCB1cGRhdGUKICAgICAgICBieQogICAgICAgIG1pY2hpCiAgICAgICAgOgogICAgICAgIFsxLjRdIAogICAgICAgICAgICBFcnJvciBtZXNzYWdlIGltcHJvdmVkLCBoaW50IGdpdmVuCiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS40IHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjQgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBtaWNoaQogICAgICAgIDoKICAgICAgICBbMS40XSAKICAgICAgICAgICAgZG9jdHlwZSBsaW5rcyBhZGRlZAogRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuNCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS40IHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgbWljaGkKICAgICAgICA6CiAgICAgICAgWzEuNF0gCiAgICAgICAgICAgIGZvcm1hdHRpbmcgZml4ZWQKIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjQgYWRkPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuNCBhZGQKICAgICAgICBieQogICAgICAgIG1pY2hpCiAgICAgICAgOgogICAgICAgIFsxLjRdIAogICAgICAgICAgICBtZW51IG9mIGRvY3R5cGUgbGlua3MgYWRkZWQKIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjQgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuNCB1cGRhdGUKICAgICAgICBieQogICAgICAgIGdyZWdvcgogICAgICAgIDoKICAgICAgICBbMS40XSAKICAgICAgICAgICAgbWFrZSByZXNvbHV0aW9uIHJlYWR5IGZvciB0aGUgYm9hcmQuIHRoZSB2b3RlIGhpc3RvcnkgY2FuIGJlIGluZmVycmVkIGZyb20gb2xkZXIgQ1ZTIHZlcnNpb25zLgoKYWxzbyBjaGFuZ2VkIHRoZSBjb3B5ICZhbXA7IHBhc3RlIGVycm9ycyBmcm9tIGZvcmVzdC4KIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjQgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuNCB1cGRhdGUKICAgICAgICBieQogICAgICAgIGJpZ2RvZwogICAgICAgIDoKICAgICAgICBbMS40XSAKICAgICAgICAgICAgTXkgdm90ZSBmb3IgUE1DIHByb3Bvc2FsCiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS40IHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjQgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBhbmRyZWFzCiAgICAgICAgOgogICAgICAgIFsxLjRdIAogICAgICAgICAgICBmaXhlZCBqYXZhZG9jcwogRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuNCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS40IHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgYW5kcmVhcwogICAgICAgIDoKICAgICAgICBbMS40XSAKICAgICAgICAgICAgZml4ZWQgamF2YWRvY3MKIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjQgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuNCB1cGRhdGUKICAgICAgICBieQogICAgICAgIGFuZHJlYXMKICAgICAgICA6CiAgICAgICAgWzEuNF0gCiAgICAgICAgICAgIGZpeGVkIGphdmFkb2NzCiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS40IHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjQgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICByb2t1CiAgICAgICAgOgogICAgICAgIFsxLjRdIAogICAgICAgICAgICBNeSB0d28gY2VudHMuCkkgaG9wZSB0aGlzIGlzIG9rLiBGZWVsIGZyZWUgdG8gY29ycmVjdC4KIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjQgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuNCB1cGRhdGUKICAgICAgICBieQogICAgICAgIGFuZHJlYXMKICAgICAgICA6CiAgICAgICAgWzEuNF0gCiAgICAgICAgICAgIGZpeGVkIGphdmFkb2NzCiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS40IHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjQgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBhbmRyZWFzCiAgICAgICAgOgogICAgICAgIFsxLjRdIAogICAgICAgICAgICBmaXhlZCBqYXZhZG9jcwogRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuNCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS40IHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgYW5kcmVhcwogICAgICAgIDoKICAgICAgICBbMS40XSAKICAgICAgICAgICAgZml4ZWQgamF2YWRvY3MKIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjQgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuNCB1cGRhdGUKICAgICAgICBieQogICAgICAgIHRob3JzdGVuCiAgICAgICAgOgogICAgICAgIFsxLjRdIAogICAgICAgICAgICBBbmRyZWFzIGRlY2xpbmVkIHRoZSBjaGFpcgogRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuNCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS40IHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgYW5kcmVhcwogICAgICAgIDoKICAgICAgICBbMS40XSAKICAgICAgICAgICAgcmVzaWdubWVudCBmcm9tIGNhbmRpZGF0dXJlCiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS40IHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjQgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBlZ2xpCiAgICAgICAgOgogICAgICAgIFsxLjRdIAogICAgICAgICAgICAqKiogZW1wdHkgbG9nIG1lc3NhZ2UgKioqCiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS40IHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjQgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICB0aG9yc3RlbgogICAgICAgIDoKICAgICAgICBbMS40XSAKICAgICAgICAgICAgQ2hhbmdlZCBDb2Nvb24gdG8gbGVueWEKIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjQgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuNCB1cGRhdGUKICAgICAgICBieQogICAgICAgIHRob3JzdGVuCiAgICAgICAgOgogICAgICAgIFsxLjRdIAogICAgICAgICAgICBFbmhhbmNlZCB0aGUgbWlzc2lvbiBvZiB0aGUgbGVueWEgcHJvamVjdAogRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuNCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS40IHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgYW5kcmVhcwogICAgICAgIDoKICAgICAgICBbMS40XSAKICAgICAgICAgICAgY2xvc2luZyBzdHJlYW1zIGluIGZpbmFsbHkgYmxvY2sKIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjQgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuNCB1cGRhdGUKICAgICAgICBieQogICAgICAgIGFuZHJlYXMKICAgICAgICA6CiAgICAgICAgWzEuNF0gCiAgICAgICAgICAgIHJlbW92ZWQgcmVkdW5kYW50IGNvbXBhcmlzb24gdG8gbnVsbAogRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuNCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS40IHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgYW5kcmVhcwogICAgICAgIDoKICAgICAgICBbMS40XSAKICAgICAgICAgICAgY2hhbmdlZCAmYW1wOyB0byAmYW1wOyZhbXA7CiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS40IHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjQgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBhbmRyZWFzCiAgICAgICAgOgogICAgICAgIFsxLjRdIAogICAgICAgICAgICB1c2luZyBib29sZWFuIHx8IGluc3RlYWQgb2YgaW50ZWdlciB8CiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS40IHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjQgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBhbmRyZWFzCiAgICAgICAgOgogICAgICAgIFsxLjRdIAogICAgICAgICAgICBmaXhlZCBlcXVhbHMoKSBjb21wYXJpc29uCiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS40IHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjQgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBhbmRyZWFzCiAgICAgICAgOgogICAgICAgIFsxLjRdIAogICAgICAgICAgICBmaXhlZCBudWxscG9pbnRlciBkZWZlcmVuY2UKIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjQgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuNCB1cGRhdGUKICAgICAgICBieQogICAgICAgIGFuZHJlYXMKICAgICAgICA6CiAgICAgICAgWzEuNF0gCiAgICAgICAgICAgIHJlcGxhY2VkIGltcG9ydGFudCBhc3NlcnRpb25zIHdpdGggZXhjZXB0aW9ucwogRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuNCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS40IHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgYW5kcmVhcwogICAgICAgIDoKICAgICAgICBbMS40XSAKICAgICAgICAgICAgcmVtb3ZlZCByZWR1bmRhbnQgY29tcGFyaXNvbiB0byBudWxsCiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS40IHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjQgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBhbmRyZWFzCiAgICAgICAgOgogICAgICAgIFsxLjRdIAogICAgICAgICAgICB1c2luZyBCb29sZWFuLnZhbHVlT2YgaW5zdGVhZCBvZiBjb25zdHJ1Y3RvcgogRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuNCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS40IHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgYW5kcmVhcwogICAgICAgIDoKICAgICAgICBbMS40XSAKICAgICAgICAgICAgZG9uJ3Qgc3dhbGxvdyAmYW1wOyBsb2cgZXhjZXB0aW9ucwogRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuNCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS40IHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgYW5kcmVhcwogICAgICAgIDoKICAgICAgICBbMS40XSAKICAgICAgICAgICAgdXNpbmcgYm9vbGVhbiB8fCBpbnN0ZWFkIG9mIGludGVnZXIgfAogRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuNCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS40IHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgYW5kcmVhcwogICAgICAgIDoKICAgICAgICBbMS40XSAKICAgICAgICAgICAgYWRkZWQgamF2YWRvYyB0YWcKIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjQgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuNCB1cGRhdGUKICAgICAgICBieQogICAgICAgIGFuZHJlYXMKICAgICAgICA6CiAgICAgICAgWzEuNF0gCiAgICAgICAgICAgIGNsb3Npbmcgc3RyZWFtcwogRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuNCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS40IHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgYW5kcmVhcwogICAgICAgIDoKICAgICAgICBbMS40XSAKICAgICAgICAgICAgcmVtb3ZlZCB1bm5lY2Vzc2FyeSAiPT0gbnVsbCIgY2hlY2sKIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjQgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuNCB1cGRhdGUKICAgICAgICBieQogICAgICAgIGFuZHJlYXMKICAgICAgICA6CiAgICAgICAgWzEuNF0gCiAgICAgICAgICAgIHVzaW5nIGJvb2xlYW4gfHwgaW5zdGVhZCBvZiBpbnRlZ2VyIHwKIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjQgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuNCB1cGRhdGUKICAgICAgICBieQogICAgICAgIGFuZHJlYXMKICAgICAgICA6CiAgICAgICAgWzEuNF0gCiAgICAgICAgICAgIGNsb3Npbmcgc3RyZWFtIGluIGZpbmFsbHkgYmxvY2sKIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjQgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuNCB1cGRhdGUKICAgICAgICBieQogICAgICAgIGFuZHJlYXMKICAgICAgICA6CiAgICAgICAgWzEuNF0gCiAgICAgICAgICAgIC0gZml4ZWQgamF2YWRvY3MKLSBmaXhlZCBhY2Nlc3MgbW9kaWRpZmllciBvZiBzdGF0aWMgZmllbGRzCiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS40IHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjQgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBhbmRyZWFzCiAgICAgICAgOgogICAgICAgIFsxLjRdIAogICAgICAgICAgICBhZGRlZCBzb21lIGphdmFkb2NzCiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS40IHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjQgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBncmVnb3IKICAgICAgICA6CiAgICAgICAgWzEuNF0gCiAgICAgICAgICAgIGZpbmRidWdzOiBhIGNsYXNzJ3MgZmluYWxpemUoKSBtZXRob2Qgc2hvdWxkIGhhdmUgcHJvdGVjdGVkIGFjY2VzcwogRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuNCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS40IHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgdGhvcnN0ZW4KICAgICAgICA6CiAgICAgICAgWzEuNF0gCiAgICAgICAgICAgICoqKiBlbXB0eSBsb2cgbWVzc2FnZSAqKioKIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjQgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuNCB1cGRhdGUKICAgICAgICBieQogICAgICAgIGFuZHJlYXMKICAgICAgICA6CiAgICAgICAgWzEuNF0gCiAgICAgICAgICAgIGFkZGVkIHRpbWUgd3JhcHBpbmcgKG1pbnV0ZXMgYXJlIGFkZGVkKQogRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuNCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS40IHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgbWljaGkKICAgICAgICA6CiAgICAgICAgWzEuNF0gCiAgICAgICAgICAgIFBNQyB2b3RlIGNhc3RlZAogRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuNCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS40IHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgYW5kcmVhcwogICAgICAgIDoKICAgICAgICBbMS40XSAKICAgICAgICAgICAgYWRkZWQgbWlzc2luZyBqYXZhZG9jIHRhZwogRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuNCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS40IHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgYW5kcmVhcwogICAgICAgIDoKICAgICAgICBbMS40XSAKICAgICAgICAgICAgTGlua1Jld3JpbnRpbmdUcmFuc2Zvcm1lciBjYW4gbm93IGhhbmRsZSBVUkxzIHdpdGggYW5jaG9ycwogRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuNCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS40IHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgYW5kcmVhcwogICAgICAgIDoKICAgICAgICBbMS40XSAKICAgICAgICAgICAgc2V0IGRlZmF1bHQgZW5jb2RpbmcgZm9yIHRleHQgc2VyaWFsaXplciB0byBVVEYtOAogRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuNCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS40IHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgcm9rdQogICAgICAgIDoKICAgICAgICBbMS40XSAKICAgICAgICAgICAgKioqIGVtcHR5IGxvZyBtZXNzYWdlICoqKgogRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuNCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS40IHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgZ3JlZ29yCiAgICAgICAgOgogICAgICAgIFsxLjRdIAogICAgICAgICAgICByZW1vdmVkIG15c2VsZiBhcyBjYW5kaWRhdGUgYW5kIHZvdGVkCiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS40IGFkZDwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjQgYWRkCiAgICAgICAgYnkKICAgICAgICBncmVnb3IKICAgICAgICA6CiAgICAgICAgWzEuNF0gCiAgICAgICAgICAgIGFkZGVkIGNoYXJ0ZXIKIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjQgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuNCB1cGRhdGUKICAgICAgICBieQogICAgICAgIGdyZWdvcgogICAgICAgIDoKICAgICAgICBbMS40XSAKICAgICAgICAgICAgc2FuZXIgZGVmYXVsdHMgZm9yIG5vdGlmaWNhdGlvbgogRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuNCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS40IHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgYW5kcmVhcwogICAgICAgIDoKICAgICAgICBbMS40XSAKICAgICAgICAgICAgcmVmYWN0b3Jpbmc6IGV4dHJhY3RlZCBtZXRob2QKIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjQgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuNCB1cGRhdGUKICAgICAgICBieQogICAgICAgIGFuZHJlYXMKICAgICAgICA6CiAgICAgICAgWzEuNF0gCiAgICAgICAgICAgIGZvcm1hdHRpbmcKIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjQgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuNCB1cGRhdGUKICAgICAgICBieQogICAgICAgIGFuZHJlYXMKICAgICAgICA6CiAgICAgICAgWzEuNF0gCiAgICAgICAgICAgIHJlcGxhY2VkIHRhYnMgYnkgc3BhY2VzCiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS40IGFkZDwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjQgYWRkCiAgICAgICAgYnkKICAgICAgICBtaWNoaQogICAgICAgIDoKICAgICAgICBbMS40XSAKICAgICAgICAgICAgdXNpbmcgb2YgZG9jdHlwZXMgaXMgbm93IGJldHRlciByZWNvZ25pemFibGUKIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjQgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuNCB1cGRhdGUKICAgICAgICBieQogICAgICAgIGFuZHJlYXMKICAgICAgICA6CiAgICAgICAgWzEuNF0gCiAgICAgICAgICAgIC0gcmVtb3ZlZCB0YWJzdG9wcwotIGNvZGUgZm9ybWF0dGluZwogRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuNCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS40IHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgYW5kcmVhcwogICAgICAgIDoKICAgICAgICBbMS40XSAKICAgICAgICAgICAgcmVwbGFjZWQgdGFic3RvcHMgYnkgc3BhY2VzCiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS40IHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjQgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBhbmRyZWFzCiAgICAgICAgOgogICAgICAgIFsxLjRdIAogICAgICAgICAgICBhZGRlZCBmYWxsYmFjayBmb3IgcmVmZXJlbmNlZCBkb2N1bWVudHMgc2NyZWVuCiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS40IHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjQgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBhbmRyZWFzCiAgICAgICAgOgogICAgICAgIFsxLjRdIAogICAgICAgICAgICBhZGRlZCBmYWxsYmFjayBmb3IgbG9nIHZpZXcgdXNlY2FzZQogRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuNCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS40IHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgYW5kcmVhcwogICAgICAgIDoKICAgICAgICBbMS40XSAKICAgICAgICAgICAgYWRkZWQgZmFsbGJhY2sgZm9yIG5vdGlmaWNhdGlvbiBwaXBlbGluZXMKIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjQgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuNCB1cGRhdGUKICAgICAgICBieQogICAgICAgIGFuZHJlYXMKICAgICAgICA6CiAgICAgICAgWzEuNF0gCiAgICAgICAgICAgIHJlbW92ZWQgb2Jzb2xldGUgcmVzb3VyY2VzIGZvciBDTVMgc2NyZWVucwogRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuNCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS40IHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgYW5kcmVhcwogICAgICAgIDoKICAgICAgICBbMS40XSAKICAgICAgICAgICAgdXNpbmcgZmFsbGJhY2sgbW9kdWxlIGluc3RlYWQgb2YgY21zLXNjcmVlbi14bWwgcmVzb3VyY2UgZm9yIGFzc2V0IHNjcmVlbgogRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuNCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS40IHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgYW5kcmVhcwogICAgICAgIDoKICAgICAgICBbMS40XSAKICAgICAgICAgICAgdXNpbmcgZmFsbGJhY2sgbW9kdWxlIGluc3RlYWQgb2YgY21zLXNjcmVlbi14bWwgcmVzb3VyY2UgZm9yIGNyZWF0ZS1sYW5ndWFnZSBzY3JlZW4KIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjQgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuNCB1cGRhdGUKICAgICAgICBieQogICAgICAgIGFuZHJlYXMKICAgICAgICA6CiAgICAgICAgWzEuNF0gCiAgICAgICAgICAgIHVzaW5nIGZhbGxiYWNrIG1vZHVsZSBpbnN0ZWFkIG9mIGNtcy1zY3JlZW4teG1sIHJlc291cmNlIGZvciBjcmVhdGUgc2NyZWVuCiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS40IHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjQgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBhbmRyZWFzCiAgICAgICAgOgogICAgICAgIFsxLjRdIAogICAgICAgICAgICB1c2luZyBmYWxsYmFjayBtb2R1bGUgaW5zdGVhZCBvZiBjbXMtc2NyZWVuLXhtbCByZXNvdXJjZSBmb3IgY3JlYXRlIHNjcmVlbgogRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuNCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS40IHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgYW5kcmVhcwogICAgICAgIDoKICAgICAgICBbMS40XSAKICAgICAgICAgICAgcmVwbGFjZWQgdGFic3RvcHMgYnkgc3BhY2VzCiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS40IHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjQgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBhbmRyZWFzCiAgICAgICAgOgogICAgICAgIFsxLjRdIAogICAgICAgICAgICB1c2luZyBmYWxsYmFjayBtb2R1bGUgaW5zdGVhZCBvZiBjbXMtc2NyZWVuLXhtbCByZXNvdXJjZSBmb3IgcHVibGlzaCBzY3JlZW4KIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjQgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuNCB1cGRhdGUKICAgICAgICBieQogICAgICAgIGFuZHJlYXMKICAgICAgICA6CiAgICAgICAgWzEuNF0gCiAgICAgICAgICAgIHVzaW5nIGZhbGxiYWNrIG1vZHVsZSBpbnN0ZWFkIG9mIGNtcy1zY3JlZW4teG1sIHJlc291cmNlIGZvciByZWplY3Qgc2NyZWVuCiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS40IHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjQgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBhbmRyZWFzCiAgICAgICAgOgogICAgICAgIFsxLjRdIAogICAgICAgICAgICB1c2luZyBmYWxsYmFjayBtb2R1bGUgaW5zdGVhZCBvZiBjbXMtc2NyZWVuLXhtbCByZXNvdXJjZSBmb3Igc3VibWl0IHNjcmVlbgogRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuNCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS40IHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgYW5kcmVhcwogICAgICAgIDoKICAgICAgICBbMS40XSAKICAgICAgICAgICAgdXNpbmcgZmFsbGJhY2sgbW9kdWxlIGluc3RlYWQgb2YgY21zLXNjcmVlbi14bWwgcmVzb3VyY2UgZm9yIHNjaGVkdWxlciBzY3JlZW4KIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjQgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuNCB1cGRhdGUKICAgICAgICBieQogICAgICAgIG1pY2hpCiAgICAgICAgOgogICAgICAgIFsxLjRdIAogICAgICAgICAgICBub2Mgb2YgYWZnaGFuaXN0YW4gYWRkZWQKIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjQgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuNCB1cGRhdGUKICAgICAgICBieQogICAgICAgIGFuZHJlYXMKICAgICAgICA6CiAgICAgICAgWzEuNF0gCiAgICAgICAgICAgIHJlbW92ZWQgaW52YWxpZCBmYWxsYmFjayBjYWxsCiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS40IHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjQgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICByb2t1CiAgICAgICAgOgogICAgICAgIFsxLjRdIAogICAgICAgICAgICBIYW5kIGRvd24gbGVueWE6bWV0YSB0byBwYWdlMnhodG1sLgpwYWdlMnhodG1sIHVzZXMgZGM6dGl0bGUgdG8gc2V0IHRpdGxlIGVsZW1lbnQgaW4gaHRtbCBoZWFkLgpIb3BlIHRoaXMgaXMgb2suCiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS40IGFkZDwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjQgYWRkCiAgICAgICAgYnkKICAgICAgICBhbmRyZWFzCiAgICAgICAgOgogICAgICAgIFsxLjRdIAogICAgICAgICAgICBnZW5lcmFsaXplZCBmYWxsYmFjayBtb2R1bGUKIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjQgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuNCB1cGRhdGUKICAgICAgICBieQogICAgICAgIGFuZHJlYXMKICAgICAgICA6CiAgICAgICAgWzEuNF0gCiAgICAgICAgICAgIGRlbGV0aW5nIGVtcHR5IHBhcmVudCBkaXJlY3RvcmllcyBhZnRlciBkZWxldGluZyByZXNvdXJjZXMKIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjQgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuNCB1cGRhdGUKICAgICAgICBieQogICAgICAgIG1pY2hpCiAgICAgICAgOgogICAgICAgIFsxLjRdIAogICAgICAgICAgICBXaWtpIExpbmsgdXBkYXRlZAogRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuNCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS40IHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgYW5kcmVhcwogICAgICAgIDoKICAgICAgICBbMS40XSAKICAgICAgICAgICAgcmVtb3ZlZCBERUJVRyBjbGFzc2VzCiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS40IHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjQgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBhbmRyZWFzCiAgICAgICAgOgogICAgICAgIFsxLjRdIAogICAgICAgICAgICBkZWxldGUgZW5jbG9zaW5nIGRpcmVjdG9yaWVzIHdoZW4gZGVsZXRpbmcgd29ya2Zsb3cgaGlzdG9yeSBmaWxlCiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS40IHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjQgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBtaWNoaQogICAgICAgIDoKICAgICAgICBbMS40XSAKICAgICAgICAgICAgY3JlYXRlIGluZGV4IGlmIGl0IGRvZXMgbm90IGV4aXN0IHlldAogRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuNCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS40IHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgbWljaGkKICAgICAgICA6CiAgICAgICAgWzEuNF0gCiAgICAgICAgICAgIHNlYXJjaCBmb3JtIGFkZGVkIHRvIHRoaXJkIGNvbHVtbgogRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuNCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS40IHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgbWljaGkKICAgICAgICA6CiAgICAgICAgWzEuNF0gCiAgICAgICAgICAgIERlbW8gZWxlbWVudCBhZGRlZAogRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuNCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS40IHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgbWljaGkKICAgICAgICA6CiAgICAgICAgWzEuNF0gCiAgICAgICAgICAgIHNlYXJjaCBhbmQgcmVzdWx0cyBpbXByb3ZlZAogRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuNCBhZGQ8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS40IGFkZAogICAgICAgIGJ5CiAgICAgICAgbWljaGkKICAgICAgICA6CiAgICAgICAgWzEuNF0gCiAgICAgICAgICAgIHNlYXJjaCBVUkwgY29uZmlndXJhdGlvbiBzZXBhcmF0ZWQKIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjQgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuNCB1cGRhdGUKICAgICAgICBieQogICAgICAgIG1pY2hpCiAgICAgICAgOgogICAgICAgIFsxLjRdIAogICAgICAgICAgICBpbmNyZW1lbnRhbGx5IGluZGV4aW5nIGZpbmlzaGVkCiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS40IHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjQgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBncmVnb3IKICAgICAgICA6CiAgICAgICAgWzEuNF0gCiAgICAgICAgICAgIG5hbWVzIGFkZGVkLCBzb3J0ZWQgYWxwaGFiZXRpY2FsbHkKIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjQgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuNCB1cGRhdGUKICAgICAgICBieQogICAgICAgIGdyZWdvcgogICAgICAgIDoKICAgICAgICBbMS40XSAKICAgICAgICAgICAgZm9ybWF0dGluZyBmaXhlZApsb2cuZXJyb3IoKSBpcyBub3QgdGhlcmUgZm9yIGRlYnVnZ2luZyBwdXJwb3Nlcy4uCiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS40IHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjQgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBtaWNoaQogICAgICAgIDoKICAgICAgICBbMS40XSAKICAgICAgICAgICAgcHJvamVjdCBpZCBmaXhlZAogRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuNCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS40IHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgbWljaGkKICAgICAgICA6CiAgICAgICAgWzEuNF0gCiAgICAgICAgICAgIGRlbGV0aW5nIGFuZCByZWFkZGluZyBpbXBsZW1lbnRlZAogRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuNCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS40IHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgbWljaGkKICAgICAgICA6CiAgICAgICAgWzEuNF0gCiAgICAgICAgICAgIGNyZWF0aW9uIG9mIElEIGltcHJvdmVkCiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS40IHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjQgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBtaWNoaQogICAgICAgIDoKICAgICAgICBbMS40XSAKICAgICAgICAgICAgTGVueWEgdmVyc2lvbiBmaXhlZAogRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuNCBhZGQ8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS40IGFkZAogICAgICAgIGJ5CiAgICAgICAgbWljaGkKICAgICAgICA6CiAgICAgICAgWzEuNF0gCiAgICAgICAgICAgIHJlYWRkZWQKIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjQgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuNCB1cGRhdGUKICAgICAgICBieQogICAgICAgIHRob3JzdGVuCiAgICAgICAgOgogICAgICAgIFsxLjRdIAogICAgICAgICAgICBtaW5vciBkb2N1IGNoYW5jZXMKIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjQgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuNCB1cGRhdGUKICAgICAgICBieQogICAgICAgIHJva3UKICAgICAgICA6CiAgICAgICAgWzEuNF0gCiAgICAgICAgICAgIEZpeGVkIGV4Y2VwdGlvbiBtZXNzYWdlCiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS40IHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjQgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICByb2t1CiAgICAgICAgOgogICAgICAgIFsxLjRdIAogICAgICAgICAgICBGaXhlZCBleGNlcHRpb24gbWVzc2FnZQogRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuNCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS40IHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgcm9rdQogICAgICAgIDoKICAgICAgICBbMS40XSAKICAgICAgICAgICAgQWRkZWQgZGVsZXRlUGFyZW50RGlycy4gU2VlIGphdmFkb2MuCiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS40IHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjQgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBhbmRyZWFzCiAgICAgICAgOgogICAgICAgIFsxLjRdIAogICAgICAgICAgICByZXBsYWNlZCBTaW1wbGVMaW5rUmV3cml0aW5nVHJhbnNmb3JtZXIgYnkgTGlua1Jld3JpdGluZ1RyYW5zZm9ybWVyCiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS40IHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjQgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBhbmRyZWFzCiAgICAgICAgOgogICAgICAgIFsxLjRdIAogICAgICAgICAgICBhZGRlZCBmYWxsYmFjayBmb3IgbWVudWJhciBzdHlsZXNoZWV0cwogRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuNCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS40IHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgYW5kcmVhcwogICAgICAgIDoKICAgICAgICBbMS40XSAKICAgICAgICAgICAgc2ltcGxpZmllZCBhIGNhdGNoIGNhc2NhZGUKIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjQgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuNCB1cGRhdGUKICAgICAgICBieQogICAgICAgIGFuZHJlYXMKICAgICAgICA6CiAgICAgICAgWzEuNF0gCiAgICAgICAgICAgIGFkZGVkIHNvbWUgamF2YWRvY3MKIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjQgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuNCB1cGRhdGUKICAgICAgICBieQogICAgICAgIGFuZHJlYXMKICAgICAgICA6CiAgICAgICAgWzEuNF0gCiAgICAgICAgICAgIHVzaW5nIERPTSBsZXZlbCAyIG1ldGhvZCB0byBjcmVhdGUgbmFtZXNwYWNlIGRlY2xhcmF0aW9uIGF0dHJpYnV0ZQogRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuNCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS40IHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgbWljaGkKICAgICAgICA6CiAgICAgICAgWzEuNF0gCiAgICAgICAgICAgIHRhcmdldCBhZGRlZCBmb3IgaW5kZXhpbmcgYSBzaW5nbGUgZG9jdW1lbnQgaW5jcmVtZW50YWxseQogRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuNCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS40IHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgbWljaGkKICAgICAgICA6CiAgICAgICAgWzEuNF0gCiAgICAgICAgICAgIGluY3JlbWVudGFsbHkgaW5kZXhpbmcgb2YgYSBzaW5nbGUgZG9jdW1lbnQgc3RhcnRlZAogRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuNCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS40IHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgdGhvcnN0ZW4KICAgICAgICA6CiAgICAgICAgWzEuNF0gCiAgICAgICAgICAgIEFkZGVkIGhpc3Rvcnkgc2l0ZSwgYWRkZWQgY29udHJpYnV0aW5nIHNpdGUgYW5kIHRoZSBwcm9wb3NhbCBmb3IgcG1jCiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS40IHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjQgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBtaWNoaQogICAgICAgIDoKICAgICAgICBbMS40XSAKICAgICAgICAgICAgQ29jb29uIHZlcnNpb24gdXBkYXRlZAogRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuNCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS40IHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgbWljaGkKICAgICAgICA6CiAgICAgICAgWzEuNF0gCiAgICAgICAgICAgIEVwb3ogYnkgS3VwdSByZXBsYWNlZAogRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuNCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS40IHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgbWljaGkKICAgICAgICA6CiAgICAgICAgWzEuNF0gCiAgICAgICAgICAgIHZlcnNpb24gYWRkZWQKIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjQgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuNCB1cGRhdGUKICAgICAgICBieQogICAgICAgIG1pY2hpCiAgICAgICAgOgogICAgICAgIFsxLjRdIAogICAgICAgICAgICBsdWNlbmUgeG1hcCBsaW5rIGFkZGVkCiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS40IHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjQgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBtaWNoaQogICAgICAgIDoKICAgICAgICBbMS40XSAKICAgICAgICAgICAgcGF0Y2hpbmcgZG9jdW1lbnRhdGlvbiBjb250ZW50CiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS40IHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjQgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBhbmRyZWFzCiAgICAgICAgOgogICAgICAgIFsxLjRdIAogICAgICAgICAgICBkb24ndCBzd2FsbG93IHN0YWNrIHRyYWNlCiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS40IHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjQgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICByb2t1CiAgICAgICAgOgogICAgICAgIFsxLjRdIAogICAgICAgICAgICBBZGRlZCBkZWxldGUgcGF0aAogRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuNCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS40IHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgYW5kcmVhcwogICAgICAgIDoKICAgICAgICBbMS40XSAKICAgICAgICAgICAgdXNpbmcgJmx0O21hcDpyZWRpcmVjdC10byZndDsgZm9yIGZvcm1zIGVkaXRvciBzYXZlIHVzZWNhc2UKIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjQgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuNCB1cGRhdGUKICAgICAgICBieQogICAgICAgIGFuZHJlYXMKICAgICAgICA6CiAgICAgICAgWzEuNF0gCiAgICAgICAgICAgIHVzaW5nIGRvY3VtZW50LXVybCBtb2R1bGUgZm9yIHJlbW92ZS1sYW5ndWFnZSB1c2VjYXNlCiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS40IHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjQgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBhbmRyZWFzCiAgICAgICAgOgogICAgICAgIFsxLjRdIAogICAgICAgICAgICB1c2luZyBkb2N1bWVudC11cmwgbW9kdWxlIGZvciBuZXctbGFuZ3VhZ2UgdXNlY2FzZQogRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuNCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS40IHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgYW5kcmVhcwogICAgICAgIDoKICAgICAgICBbMS40XSAKICAgICAgICAgICAgQWRkZWQgRG9jdW1lbnRVUkxNb2R1bGUgKHRoYW5rcyB0byBQZXRlciBTaGlwbGV5KQogRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuNCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS40IHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgcm9rdQogICAgICAgIDoKICAgICAgICBbMS40XSAKICAgICAgICAgICAgVHdlYWtlZCBOUEUgZ3VhcmQgY2xhdXNlCiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS40IHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjQgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICByb2t1CiAgICAgICAgOgogICAgICAgIFsxLjRdIAogICAgICAgICAgICBGaXhlZCBwb3RlbnRpYWwgTnVsbFBvaW50ZXJFeGNlcHRpb24uCiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS40IHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjQgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBhbmRyZWFzCiAgICAgICAgOgogICAgICAgIFsxLjRdIAogICAgICAgICAgICBhdm9pZCBjbGFzc2Nhc3RleGNlcHRpb24gd2hlbiByb2xlcyBhcmUgaG90LWFkZGVkCiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS40IHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjQgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICB0aG9yc3RlbgogICAgICAgIDoKICAgICAgICBbMS40XSAKICAgICAgICAgICAgY2xlYXJpZmllZCB0aGUgaW5zdGFsbGF0aW9uIElOU1RSVUNUSU9OUwogRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuNCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS40IHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgYW5kcmVhcwogICAgICAgIDoKICAgICAgICBbMS40XSAKICAgICAgICAgICAgZml4ZWQgbGluayBmcm9tIGdyb3VwIHRvIG1lbWJlcgogRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuNCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS40IHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgYW5kcmVhcwogICAgICAgIDoKICAgICAgICBbMS40XSAKICAgICAgICAgICAgYWRkZWQgc2FtcGxlIHByb3h5IGNvbmZpZ3VyYXRpb24KIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjQgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuNCB1cGRhdGUKICAgICAgICBieQogICAgICAgIGFuZHJlYXMKICAgICAgICA6CiAgICAgICAgWzEuNF0gCiAgICAgICAgICAgIGFkZGVkIG5ldyBMaW5rUmV3cml0aW5nVHJhbnNmb3JtZXIgYW5kIHByb3h5IGNvbmZpZ3VyYXRpb24gZm9yIHB1YmxpY2F0aW9ucwogRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuNCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS40IHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgcm9rdQogICAgICAgIDoKICAgICAgICBbMS40XSAKICAgICAgICAgICAgRXhjaGFuZ2VkIHVzYWdlIG9mIG5pby5DaGFubmVsLnRyYW5mZXJUbyB3aXRoIC4uLmV4Y2FsaWJ1ci5pby5GaWxlVXRpbCBzaW5jZSBMaW51eCAyLjYueCBLZXJuZWxzIGhhdmUgYW4gaXNzdWUgd2l0aCBqZGsgMS40LnguClNlZSBodHRwOi8vc3dmb3J1bS5zdW4uY29tL2ppdmUvdGhyZWFkLmpzcGE/dGhyZWFkSUQ9NDY0MTYKT2YgY291cnNlIHRyYW5zZmVyVG8gaXMgbW9zdCBmdWNraW5nIHF1aWNrIDopCiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS40IGFkZDwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjQgYWRkCiAgICAgICAgYnkKICAgICAgICB0aG9yc3RlbgogICAgICAgIDoKICAgICAgICBbMS40XSAKICAgICAgICAgICAgQWRkZWQgdGhlIGFnZ3JlZ2F0aW9uIG9mIG91ciBkb2N1bWVudGF0aW9uCiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS40IHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjQgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBlZGl0aAogICAgICAgIDoKICAgICAgICBbMS40XSAKICAgICAgICAgICAgcGFyYW0gZG9jdW1lbnQtaWQgYWRkZWQgdG8geG9wdXMgc3R5bGVzaGVldAogRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuNCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS40IHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgYW5kcmVhcwogICAgICAgIDoKICAgICAgICBbMS40XSAKICAgICAgICAgICAgYWRkZWQgZmFsbGJhY2sgZm9yIGxvZ2luICZhbXA7IGxvZ291dCBzY3JlZW5zCiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS40IHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjQgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBhbmRyZWFzCiAgICAgICAgOgogICAgICAgIFsxLjRdIAogICAgICAgICAgICBmaXhlZCBsb2dnaW5nIGNhdGVnb3JpZXMgZm9yIHNvbWUgaW5wdXQgbW9kdWxlcwogRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuNCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS40IHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgZWRpdGgKICAgICAgICA6CiAgICAgICAgWzEuNF0gCiAgICAgICAgICAgIG1ldGhvZCB0byBkZWxldGUgdGhlIHJldmlzaW9ucyAoYmFja3VwcykgYW5kIHRoZSByY21sIGZpbGVzCiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS40IHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjQgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBhbmRyZWFzCiAgICAgICAgOgogICAgICAgIFsxLjRdIAogICAgICAgICAgICBhZGRlZCBqYXZhZG9jcyB3aXRoIHJlcGxhY2VtZW50IGNvZGUgc3VnZ2VzdGlvbnMKIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjQgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuNCB1cGRhdGUKICAgICAgICBieQogICAgICAgIGFuZHJlYXMKICAgICAgICA6CiAgICAgICAgWzEuNF0gCiAgICAgICAgICAgIGFkZGVkIHNldFNpbXBsZUVsZW1lbnRUZXh0KCkgbWV0aG9kCiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS40IHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjQgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBhbmRyZWFzCiAgICAgICAgOgogICAgICAgIFsxLjRdIAogICAgICAgICAgICAtIGRlcHJlY2F0ZWQgc2VsZWN0KERvY3VtZW50LCBTdHJpbmcpCi0gYWRkZWQgamF2YWRvY3MKIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjQgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuNCB1cGRhdGUKICAgICAgICBieQogICAgICAgIGFuZHJlYXMKICAgICAgICA6CiAgICAgICAgWzEuNF0gCiAgICAgICAgICAgIGFkZGVkIERvY3VtZW50SGVscGVyLnJlYWREb2N1bWVudChTdHJpbmcpCmRlcHJlY2F0ZWQgc2FtZSBtZXRob2QgaW4gRE9NVXRpbAogRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuNCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS40IHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgYW5kcmVhcwogICAgICAgIDoKICAgICAgICBbMS40XSAKICAgICAgICAgICAgY29kZSBmb3JtYXR0aW5nCiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS40IHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjQgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBtaWNoaQogICAgICAgIDoKICAgICAgICBbMS40XSAKICAgICAgICAgICAgWEhUTUwgc2VyaWFsaXplciByZXZlcnRlZAogRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuNCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS40IHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgbWljaGkKICAgICAgICA6CiAgICAgICAgWzEuNF0gCiAgICAgICAgICAgIG1ldGhvZCB0aWR5IHJlYWRkZWQsIHNlZSBqYXZhZG9jCiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS40IHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjQgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBtaWNoaQogICAgICAgIDoKICAgICAgICBbMS40XSAKICAgICAgICAgICAgcmVtb3ZlIHRhZ3MgaW1wbGVtZW50ZWQKIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjQgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuNCB1cGRhdGUKICAgICAgICBieQogICAgICAgIG1pY2hpCiAgICAgICAgOgogICAgICAgIFsxLjRdIAogICAgICAgICAgICBleGNlcnB0IGxlbmd0aCBjb25maWd1cmFibGUKIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjQgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuNCB1cGRhdGUKICAgICAgICBieQogICAgICAgIG1pY2hpCiAgICAgICAgOgogICAgICAgIFsxLjRdIAogICAgICAgICAgICBXaWtpIGxpbmsgZml4ZWQgYW5kIEFwYWNoZSAxIGluc3RhbGxhdGlvbiBpbnN0cnVjdGlvbiBhZGRlZAogRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuNCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS40IHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgbWljaGkKICAgICAgICA6CiAgICAgICAgWzEuNF0gCiAgICAgICAgICAgIGluZGV4aW5nIFhNTCBkb2N1bWVudHMgYWRkZWQKIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjQgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuNCB1cGRhdGUKICAgICAgICBieQogICAgICAgIG1pY2hpCiAgICAgICAgOgogICAgICAgIFsxLjRdIAogICAgICAgICAgICBkZWZhdWx0IHZhbHVlIGFuZCBkZWxpbWl0ZXIgYWRkZWQKIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjQgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuNCB1cGRhdGUKICAgICAgICBieQogICAgICAgIGFuZHJlYXMKICAgICAgICA6CiAgICAgICAgWzEuNF0gCiAgICAgICAgICAgIGluaXRpYWxpemluZyBzZXNzaW9uIChhdm9pZCBOUEUpCiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS40IHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjQgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBhbmRyZWFzCiAgICAgICAgOgogICAgICAgIFsxLjRdIAogICAgICAgICAgICByZW1vdmVkIHVudXNlZCBpbXBvcnRzCiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS40IHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjQgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBhbmRyZWFzCiAgICAgICAgOgogICAgICAgIFsxLjRdIAogICAgICAgICAgICByZW1vdmVkIHVudXNlZCBpbXBvcnQKIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjQgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuNCB1cGRhdGUKICAgICAgICBieQogICAgICAgIGFuZHJlYXMKICAgICAgICA6CiAgICAgICAgWzEuNF0gCiAgICAgICAgICAgIG92ZXJyaWRlIGdldE5hbWVzcGFjZUhlbHBlcigpIGluc3RlYWQgb2Ygc2F2ZSgpCiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS40IHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjQgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBhbmRyZWFzCiAgICAgICAgOgogICAgICAgIFsxLjRdIAogICAgICAgICAgICByZXBsYWNlZCBET00gbGV2ZWwgMSBieSBET00gbGV2ZWwgMiBtZXRob2RzCiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS40IHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjQgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBtaWNoaQogICAgICAgIDoKICAgICAgICBbMS40XSAKICAgICAgICAgICAgZml4ZWQgdGhlIGxpbmsKIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjQgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuNCB1cGRhdGUKICAgICAgICBieQogICAgICAgIG1pY2hpCiAgICAgICAgOgogICAgICAgIFsxLjRdIAogICAgICAgICAgICByZXZlcnRlZCBzZXJpYWxpemVycwogRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuNCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS40IHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgbWljaGkKICAgICAgICA6CiAgICAgICAgWzEuNF0gCiAgICAgICAgICAgIGRvd25sb2FkIGxpbmsgZml4ZWQKIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjQgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuNCB1cGRhdGUKICAgICAgICBieQogICAgICAgIGdyZWdvcgogICAgICAgIDoKICAgICAgICBbMS40XSAKICAgICAgICAgICAgbmV3IGxpdmUgc2l0ZXMKIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjQgYWRkPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuNCBhZGQKICAgICAgICBieQogICAgICAgIHRob3JzdGVuCiAgICAgICAgOgogICAgICAgIFsxLjRdIAogICAgICAgICAgICBDaGVja2VkIGluIHRoZSBzcmMvZG9jdW1lbnRhdGlvbiBhbmQgZm9ycmVzdCBzcGVmaWMgZmlsZXMgZm9yIHRoZSB3ZWJzaXRlIGJ1aWxkCiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS40IHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjQgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBncmVnb3IKICAgICAgICA6CiAgICAgICAgWzEuNF0gCiAgICAgICAgICAgIHRoZSB0ZXh0LXV0Zi04IHNlcmlhbGl6ZXIgd2FzIHJlbW92ZWQuIGlmIHRoaXMgbGVhZHMgdG8gZnVubnktbG9va2luZyBzaXRldHJlZSBpbiB0aGUKaW5zZXJ0IGxpbmsgcG9wdXAsIGl0IHdpbGwgaGF2ZSB0byBiZSByZWluc3RhdGVkLgogRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuNCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS40IHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgYW5kcmVhcwogICAgICAgIDoKICAgICAgICBbMS40XSAKICAgICAgICAgICAgLSBjbGVhbmVkIHVwIGNvbXBvbmVudCBkZWNsYXJhdGlvbnMKLSBtb3ZlZCBjb21wb25lbnQgZGVjbGFyYXRpb25zIGZyb20gZ2xvYmFsLXNpdGVtYXAgdG8gc2l0ZW1hcAotIHJlbW92ZWQgZHVwbGljYXRlIGNvbXBvbmVudCBkZWNsYXJhdGlvbnMKLSB1c2luZyBYTUwvWEhUTUwvSFRNTCBzZXJpYWxpemVycyBmcm9tIENvY29vbiBzZXJpYWxpemVycyBibG9jawogRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuNCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS40IHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgYW5kcmVhcwogICAgICAgIDoKICAgICAgICBbMS40XSAKICAgICAgICAgICAgLSBjb2RlIGZvcm1hdHRpbmcKLSByZXBsYWNlZCBsb2c0aiBieSBBdmFsb24gbG9nZ2luZwogRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuNCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS40IHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgbWljaGkKICAgICAgICA6CiAgICAgICAgWzEuNF0gCiAgICAgICAgICAgIHdvcmtmbG93IGV2ZW50IGlzIG5vdCBoYXJkY29kZWQgYW55bW9yZQogRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuNCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS40IHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgbWljaGkKICAgICAgICA6CiAgICAgICAgWzEuNF0gCiAgICAgICAgICAgIGNvcHlpbmcgcHVibGljYXRpb24gc3BlY2lmaWMgbGlicmFyaWVzCiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS40IHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjQgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICByb2t1CiAgICAgICAgOgogICAgICAgIFsxLjRdIAogICAgICAgICAgICBSZXZlcnRlZAogRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuNCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS40IHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgYW5kcmVhcwogICAgICAgIDoKICAgICAgICBbMS40XSAKICAgICAgICAgICAgLSBwcm9wZXIgZXhjZXB0aW9uIGhhbmRsaW5nCi0gY29ycmVjdGVkIHNvbWUgamF2YWRvY3MKIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjQgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuNCB1cGRhdGUKICAgICAgICBieQogICAgICAgIHJva3UKICAgICAgICA6CiAgICAgICAgWzEuNF0gCiAgICAgICAgICAgIEZpeCBmb3IgaHR0cDovL2lzc3Vlcy5hcGFjaGUub3JnL2J1Z3ppbGxhL3Nob3dfYnVnLmNnaT9pZD0yOTU1MyAuCk5vdyB0aGUgcHViIHNwZWNpZmljIGxpYnJhcmllcyBhcmUgaW5jbHVkZWQgaW4gdGhlIGNvbXBpbGUgY2xhc3NwYXRoLgogRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuNCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS40IHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgYW5kcmVhcwogICAgICAgIDoKICAgICAgICBbMS40XSAKICAgICAgICAgICAgYXBwbGllZCBwYXRjaCAoaHR0cDovL25hZ295YS5hcGFjaGUub3JnL2J1Z3ppbGxhL3Nob3dfYnVnLmNnaT9pZD0yNjYwMCkKIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjQgYWRkPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuNCBhZGQKICAgICAgICBieQogICAgICAgIGFuZHJlYXMKICAgICAgICA6CiAgICAgICAgWzEuNF0gCiAgICAgICAgICAgIGFkZGVkIGFkbWluIGFyZWEgcG9saWNpZXMgZm9yIGxlbnlhIGFuZCBhbGljZQogRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuNCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS40IHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgYW5kcmVhcwogICAgICAgIDoKICAgICAgICBbMS40XSAKICAgICAgICAgICAgdXNpbmcgc3BlY2lmaWMgbm90aWZpY2F0aW9uIG1lc3NhZ2UgZm9yIHNjaGVkdWxlcgogRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuNCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS40IHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgYW5kcmVhcwogICAgICAgIDoKICAgICAgICBbMS40XSAKICAgICAgICAgICAgZG9uJ3QgcmVtZW1iZXIgcmVxdWVzdCBVUkkgd2hlbiBmbG93c2NyaXB0IGZ1bmN0aW9uIGhhcyBlbmRlZAogRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuNCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS40IHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgYW5kcmVhcwogICAgICAgIDoKICAgICAgICBbMS40XSAKICAgICAgICAgICAgZ2V0UHVibGljYXRpb24oKSB0aHJvd3MgZXhjZXB0aW9uIHdoZW4gcHVibGljYXRpb24gY291bGQgbm90IGJlIGNyZWF0ZWQKIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjQgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuNCB1cGRhdGUKICAgICAgICBieQogICAgICAgIGFuZHJlYXMKICAgICAgICA6CiAgICAgICAgWzEuNF0gCiAgICAgICAgICAgIHRyaW1taW5nICZhbXA7IzE2MDsgY2hhcnMgZnJvbSBwYXJhbWV0ZXJzCiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS40IHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjQgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBhbmRyZWFzCiAgICAgICAgOgogICAgICAgIFsxLjRdIAogICAgICAgICAgICBub3RpZmljYXRpb246IGFsbG93IHBhc3NpbmcgImZyb20iIGFkZHJlc3MgYXMgcGFyYW1ldGVyCiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS40IHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjQgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBtaWNoaQogICAgICAgIDoKICAgICAgICBbMS40XSAKICAgICAgICAgICAgbm90ZSBhZGRlZCB0byBqYXZhZG9jIGFib3V0IG1pc3NpbmcgaW1wbGVtZW50YXRpb24KIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjQgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuNCB1cGRhdGUKICAgICAgICBieQogICAgICAgIG1pY2hpCiAgICAgICAgOgogICAgICAgIFsxLjRdIAogICAgICAgICAgICBwcmVwYXJhdGlvbiBmb3IgVG9tY2F0IDUgLi4uCiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS40IHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjQgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBncmVnb3IKICAgICAgICA6CiAgICAgICAgWzEuNF0gCiAgICAgICAgICAgIGFkZGVkIG5ldGNvbSBTQQogRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0ICB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+IHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgCiAgICAgICAgOgogICAgICAgIFtdIAogICAgICAgICAgICBUaGlzIGNvbW1pdCB3YXMgbWFudWZhY3R1cmVkIGJ5IGN2czJzdm4gdG8gY3JlYXRlIHRhZyAnUkVMRUFTRV8xXzInLiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS40IHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjQgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICByb2t1CiAgICAgICAgOgogICAgICAgIFsxLjRdIAogICAgICAgICAgICBBZGRlZCBjb3B5aW5nIG9mICJsZWdhbCIgZGlyZWN0b3J5LgogRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuNCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS40IHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgcm9rdQogICAgICAgIDoKICAgICAgICBbMS40XSAKICAgICAgICAgICAgRm9sbG93aW5nIGluY3ViYXRvciBmaWxlbmFtZSBwYXR0ZXJuLgpXZSBzaG91bGQgdXNlIGFuZCByZXBsYWNlIHRvIHNldCB0aGlzIGF1dG9tYXRpY2FsbHkuCiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS40IHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjQgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICByb2t1CiAgICAgICAgOgogICAgICAgIFsxLjRdIAogICAgICAgICAgICBBZGRlZCBjb3B5aW5nIG9mIE5PVElDRS50eHQgYW5kIENSRURJVFMudHh0IGluIHByZXBhcmUtZGlzdC1iaW4uCiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS40IHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjQgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICByb2t1CiAgICAgICAgOgogICAgICAgIFsxLjRdIAogICAgICAgICAgICBBZGRlZCBjb3B5aW5nIG9mIExJQ0VOU0UudHh0IHdpdGhpbiBwcmVwYXJlLWRpc3QtYmluLgpTZWUgIzI5NTI1LgogRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuNCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS40IHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgcm9rdQogICAgICAgIDoKICAgICAgICBbMS40XSAKICAgICAgICAgICAgQWRkZWQgY29weWluZyBvZiBsZWdhbCBkaXIgdG8gZGlzdC1iaW4tcHJlcGFyZS4KU2VlICMyOTUyMy4KIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAgcmVtb3ZlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPiByZW1vdmUKICAgICAgICBieQogICAgICAgIAogICAgICAgIDoKICAgICAgICBbXSAKICAgICAgICAgICAgVGhpcyBjb21taXQgd2FzIG1hbnVmYWN0dXJlZCBieSBjdnMyc3ZuIHRvIGNyZWF0ZSB0YWcgJ2NvY29vbi1sZW55YScuIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjQgYWRkPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuNCBhZGQKICAgICAgICBieQogICAgICAgIGdyZWdvcgogICAgICAgIDoKICAgICAgICBbMS40XSAKICAgICAgICAgICAgYWRkZWQgbWlzc2luZyBsaWNlc25lIGZpbGVzIGZvciBsb2c0aiwgbmVrbyBhbmQga3VwdQpyZW1vdmVkIG9ic29sZXRlIGVwb3ogbGljZW5zZQogRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuNCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS40IHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgcm9rdQogICAgICAgIDoKICAgICAgICBbMS40XSAKICAgICAgICAgICAgU2V0IGxvZzRqIGxvZyBsZXZlbCBmb3IgamNzIHRvIEVSUk9SIGFzIHZvdGVkIHRvZGF5LgpUaGlzIHNwdXJlc3NlcyBzb21lIGNvbmZ1c2luZyBjb25zb2xlIFdBUk4gbG9nZ2luZ3Mgb2YgamNzLAppZiBsb2c0aiBpcyBkaXNhYmxlZCBkdXJpbmcgYnVpbGQuIEluIHRoaXMgY2FzZSBsZW55YSB1c2VzIGEgY29uY29sZSBhcHBlbmRlciBmb3IgbG9nZ2luZy4KIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjQgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuNCB1cGRhdGUKICAgICAgICBieQogICAgICAgIHJva3UKICAgICAgICA6CiAgICAgICAgWzEuNF0gCiAgICAgICAgICAgIFNvcnJ5IGZvciB0aGUgY29tbWl0LCBidXQgdGhpcyB3YXMgbmVjYXNzYXJyeS4KIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjQgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuNCB1cGRhdGUKICAgICAgICBieQogICAgICAgIG1pY2hpCiAgICAgICAgOgogICAgICAgIFsxLjRdIAogICAgICAgICAgICBsaWJyYXJpZXMgdXBkYXRlZCByZSBDb2Nvb24tMi4xLjUKIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjQgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuNCB1cGRhdGUKICAgICAgICBieQogICAgICAgIG1pY2hpCiAgICAgICAgOgogICAgICAgIFsxLjRdIAogICAgICAgICAgICBsb2c0aiBsaWIgdmVyc2lvbiB1cGRhdGVkCiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS40IHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjQgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICByb2t1CiAgICAgICAgOgogICAgICAgIFsxLjRdIAogICAgICAgICAgICBVc2luZyBnZW5lcmF0ZWQgaXNzdWUgbGlzdCBmcm9tIGJ1Z3ppbGxhIGluc3RlYWQgb2YgYSBoYW5kIG1hZGUgb25lCiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS40IHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjQgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICByb2t1CiAgICAgICAgOgogICAgICAgIFsxLjRdIAogICAgICAgICAgICAtIEFkZGVkIGhpbnRzIGFib3V0ICJrbm93biBpc3N1ZXMiCkZlZWwgZnJlZSB0byB1cGRhdGUgdGhlbS4gSSBob3BlIEkgcHV0IGl0IGF0IHRoZSByaWdodCBwbGFjZS4KIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjQgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuNCB1cGRhdGUKICAgICAgICBieQogICAgICAgIGFuZHJlYXMKICAgICAgICA6CiAgICAgICAgWzEuNF0gCiAgICAgICAgICAgIHJlc3RvcmVkIGFjY2lkZW50aWFsbHkgZGVsZXRlZCBtZXNzYWdlcwogRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuNCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS40IHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgYW5kcmVhcwogICAgICAgIDoKICAgICAgICBbMS40XSAKICAgICAgICAgICAgY2hhbmdlZCB1c2VybmFtZSArIHBhc3N3b3JkIGluIHJlbG9hZCB0YXJnZXQKIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjQgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuNCB1cGRhdGUKICAgICAgICBieQogICAgICAgIG1pY2hpCiAgICAgICAgOgogICAgICAgIFsxLjRdIAogICAgICAgICAgICBpbmZvIGltcHJvdmVkCiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS40IHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjQgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBhbmRyZWFzCiAgICAgICAgOgogICAgICAgIFsxLjRdIAogICAgICAgICAgICBhbGxvd2luZyBtdWx0aXBsZSBjb2Nvb24ueGNvbmYgcGF0Y2ggZmlsZXMKIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjQgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuNCB1cGRhdGUKICAgICAgICBieQogICAgICAgIG1pY2hpCiAgICAgICAgOgogICAgICAgIFsxLjRdIAogICAgICAgICAgICBmZWVkdmFsaWRhdG9yIGFkZGVkCiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS40IHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjQgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBtaWNoaQogICAgICAgIDoKICAgICAgICBbMS40XSAKICAgICAgICAgICAgcmVudW1iZXJpbmcgbW92ZWQgaW50byBhY3Rpb24gc3VjaCB0aGF0IGZpbGUgaXMgbm90IHJlYWQgYW5kIHdyaXR0ZW4gd2l0aGluIHRoZSBwaXBlbGluZQogRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuNCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS40IHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgYW5kcmVhcwogICAgICAgIDoKICAgICAgICBbMS40XSAKICAgICAgICAgICAgLSByZW1vdmVkIHVudXNlZCBpbXBvcnQKLSByZWZhY3RvcmVkIHRoaXMuZXhjbHVkZXMgdG8gbGlzdAotIGFkZGVkIG1vcmUgamF2YWRvY3MKIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjQgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuNCB1cGRhdGUKICAgICAgICBieQogICAgICAgIG1pY2hpCiAgICAgICAgOgogICAgICAgIFsxLjRdIAogICAgICAgICAgICBqYXZhZG9jcyBhZGRlZAogRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuNCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS40IHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgYW5kcmVhcwogICAgICAgIDoKICAgICAgICBbMS40XSAKICAgICAgICAgICAgcmVtb3ZlZCBjb21tZW50ZWQtb3V0IHN0ZCBvdXQgbG9nCiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS40IHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjQgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBtaWNoaQogICAgICAgIDoKICAgICAgICBbMS40XSAKICAgICAgICAgICAgRmlsdGVyIGZvciBTQ00gZmlsZXMgYWRkZWQKIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjQgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuNCB1cGRhdGUKICAgICAgICBieQogICAgICAgIG1pY2hpCiAgICAgICAgOgogICAgICAgIFsxLjRdIAogICAgICAgICAgICByZWFkZGVkCiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS40IGFkZDwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjQgYWRkCiAgICAgICAgYnkKICAgICAgICBtaWNoaQogICAgICAgIDoKICAgICAgICBbMS40XSAKICAgICAgICAgICAgZG8gbm90IGNvcHkgU0NNIGZpbGVzCiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS40IHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjQgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBhbmRyZWFzCiAgICAgICAgOgogICAgICAgIFsxLjRdIAogICAgICAgICAgICBmaXhlZCBkaXJlY3QgdXNlci9ncm91cC9pcHJhbmdlIGxpbmtzIGluIHRoZSBhZG1pbiBhcmVhCiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS40IGFkZDwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjQgYWRkCiAgICAgICAgYnkKICAgICAgICBtaWNoaQogICAgICAgIDoKICAgICAgICBbMS40XSAKICAgICAgICAgICAgdGhpcyBmaWxlIGlzIG5lY2Vzc2FyeSBlbHNlIHRoZSBidWlsZCBwcm9jZXNzIGRvZXMgbm90IHdvcmsKIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjQgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuNCB1cGRhdGUKICAgICAgICBieQogICAgICAgIHJva3UKICAgICAgICA6CiAgICAgICAgWzEuNF0gCiAgICAgICAgICAgIERlbGV0aW5nIENWUyBkaXJzIGZyb20gYnVpbGQvbGVueWEvd2ViYXBwL2xlbnlhL3B1YnMgYW5kIHN1YmRpcnMgc2luY2UKY29weVB1YnMgdGFzayBpcyBub3QgdXNpbmcgdGhlIGRlZmF1bHRleGNsdWRlcyBhdHRyaWJ1dGUuCiBUaGlzIHNob3VsZCBpbXByb3ZlIHRoZSBidWlsZCBwcm9jZXNzLCBzaW5jZSBvbmUgdGVuZHMgdG8gZm9yZ2V0IHRvIGRlbGV0ZSB0aGUgY3ZzIGRpcnMgYnkgaGFuZC4KU2VlICMyOTE5NgogRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuNCByZW1vdmU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS40IHJlbW92ZQogICAgICAgIGJ5CiAgICAgICAgdGhvcnN0ZW4KICAgICAgICA6CiAgICAgICAgWzEuNF0gCiAgICAgICAgICAgIHRob3JzdGVuIGlzIGFjdGl2ZSBhZ2FpbgogRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuNCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS40IHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgZ3JlZ29yCiAgICAgICAgOgogICAgICAgIFsxLjRdIAogICAgICAgICAgICBkaXNhYmxlZCBleHBvcnQgZm9yIGRlZmF1bHQgcHVibGljYXRpb24gIzI5MDgzCiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS40IHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjQgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICByb2t1CiAgICAgICAgOgogICAgICAgIFsxLjRdIAogICAgICAgICAgICBBZGRlZCB1bnBhY2tpbmcgb2YgV0FSIGZpbGUgaWYgbmVlZGVkIChvbiBmaXJzdCBzdGFydCB1cCBvZiBsZW55YSkuClNlZSAjMjkwMjYuCiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS40IHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjQgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBncmVnb3IKICAgICAgICA6CiAgICAgICAgWzEuNF0gCiAgICAgICAgICAgICMyOTAyMyBzZWFyY2ggcmVzdWx0IGxpbmtzIHdlcmUgd3JvbmcKIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjQgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuNCB1cGRhdGUKICAgICAgICBieQogICAgICAgIGdyZWdvcgogICAgICAgIDoKICAgICAgICBbMS40XSAKICAgICAgICAgICAgd2h5IGJvdGhlciB3aXRoIGNzcyBhbmQgdGhlIGxlbnlhIEdVSSBndWlkZWxpbmVzIHdoZW4geW91IGNhbgpoYXZlIGZvbnQgdGFncyBhbmQgZGVidWcgb3V0cHV0Li4uCiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS40IHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjQgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBtaWNoaQogICAgICAgIDoKICAgICAgICBbMS40XSAKICAgICAgICAgICAgQ29jb29uIHNlZW1zIHRvIGhhdmUgYSBwcm9ibGVtIHdpdGggd3JpdGUtc291cmNlIHRyYW5zZm9ybWVyIHJlIHNlcmlhbGl6YXRpb24uIEhlbmNlIGVuZm9yY2UgWE1MIHNlcmlhbGl6YXRpb24KIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjQgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuNCB1cGRhdGUKICAgICAgICBieQogICAgICAgIGVnbGkKICAgICAgICA6CiAgICAgICAgWzEuNF0gCiAgICAgICAgICAgIEFwcGxpZWQgRGFsZSBQYXRjaC4gVGhpcyBmaXhlcyAjMjkyMTguCiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS40IGFkZDwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjQgYWRkCiAgICAgICAgYnkKICAgICAgICByb2t1CiAgICAgICAgOgogICAgICAgIFsxLjRdIAogICAgICAgICAgICBUaG9zZSB0d28gZmlsZXMgd2VyZSBtaXNzaW5nIHNlZSAjMjkxNzIKIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjQgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuNCB1cGRhdGUKICAgICAgICBieQogICAgICAgIHJva3UKICAgICAgICA6CiAgICAgICAgWzEuNF0gCiAgICAgICAgICAgIC0gQWRkZWQgYXBwcm9wcmlhdGUgQGJhc2VkaXIgdG8gWklQIHRhcmdldHMKIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjQgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuNCB1cGRhdGUKICAgICAgICBieQogICAgICAgIHJva3UKICAgICAgICA6CiAgICAgICAgWzEuNF0gCiAgICAgICAgICAgIC0gQWRkZWQgY3JlYXRpb24gb2YgWklQcwotIEFkZGVkIGdlbmVyYXRpb24gb2YgTUQ1IGNoZWNrc3VtIGZpbGVzCiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS40IHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjQgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBhbmRyZWFzCiAgICAgICAgOgogICAgICAgIFsxLjRdIAogICAgICAgICAgICBhZGRlZCBkb2N1bWVudGF0aW9uIGZvciByZXNvdXJjZSB0eXBlcwogRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuNCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS40IHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgcm9rdQogICAgICAgIDoKICAgICAgICBbMS40XSAKICAgICAgICAgICAgQWRkZWQgdGFyZ2V0ICJkaXN0IiB3aGljaCBzaW1wbHkgZGVwZW5kcyBvbiBjbGVhbiwgZGlzdC1zcmMgYW5kIGRpc3QtYmluLgpGaXhlZCBzb21lIGNvbW1lbnRzLgogRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuNCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS40IHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgcm9rdQogICAgICAgIDoKICAgICAgICBbMS40XSAKICAgICAgICAgICAgRmluaXNoZWQgaTE4biBvZiBpbWFnZSB1cGxvYWQvaW5zZXJ0IHNjcmVubi4KIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjQgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuNCB1cGRhdGUKICAgICAgICBieQogICAgICAgIGdyZWdvcgogICAgICAgIDoKICAgICAgICBbMS40XSAKICAgICAgICAgICAgbmV3IGxpdmUgc2l0ZQogRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuNCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS40IHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgcm9rdQogICAgICAgIDoKICAgICAgICBbMS40XSAKICAgICAgICAgICAgLSBTdGFydGVkIHRyYW5zbGF0aW9uIG9mIEltYWdlIHVwbG9hZC9pbnNlcnQgc2NyZWVuKGJ4ZSkKLSBmaXhlZCBpMThuIHN0dWZmIGluIEFzc2V0IHVwbG9hZC9pbnNlcnQgc2NyZWVuKGJ4ZSkKLSBzdGFydGVkIHVzaW5nIGxvZ2ljYWwgbWVzc2FnZSBrZXlzIGluc3RlYWQgb2YgdGhlIHRleHRzIGl0c2VsZiBhcyBrZXkKIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjQgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuNCB1cGRhdGUKICAgICAgICBieQogICAgICAgIHJva3UKICAgICAgICA6CiAgICAgICAgWzEuNF0gCiAgICAgICAgICAgIEJ1Z2ZpeCBmb3IgYnVnICMyOTExNy4KQWRkZWQgbWV0aG9kIGZpbHRlclVSSSBpbiBvcmRlciB0byByZW1vdmUgc2Vzc2lvbiBpbmZvIGVuY29kZWQgd2l0aGluIHRoZSB1cmksCm90aGVyd2lzZSB0aGUgVVJJUGFyYW1ldHJpemVyIHdvdWxkIGZhaWwgb24gc3VjaCBhbiB1bmZpbHRlcmVkIHVyaS4KIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjQgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuNCB1cGRhdGUKICAgICAgICBieQogICAgICAgIGdyZWdvcgogICAgICAgIDoKICAgICAgICBbMS40XSAKICAgICAgICAgICAgaW1wcm92ZSBSQyBlcnJvciBtZXNzYWdlcyAobm8gbG9uZ2VyIG9taXQgY2F1c2Ugb2YgZXhjZXB0aW9uKQpyZW1vdmUgb2Jzb2xldGUgZXhjZXB0aW9uLnhzcAoKdGhlIFJDIGNvZGUgdXNlcyBleGNlcHRpb25zIGZvciBmbG93IGNvbnRyb2wuLgpob3BlZnVsbHkgd2UgY2FuIHNvb24gcmlwIGl0IG91dCBhbmQgcmVwbGFjZSBpdCB3aXRoIHJlcG9zaXRvcnkgY29kZS4KIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjQgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuNCB1cGRhdGUKICAgICAgICBieQogICAgICAgIGdyZWdvcgogICAgICAgIDoKICAgICAgICBbMS40XSAKICAgICAgICAgICAgaW1wcm92ZSBlcnJvciBtZXNzYWdlIHdoZW4gY2hlY2tvdXQgZmFpbHMuIGZvciBzb21lIHJlYXNvbiB3ZSBkaWRudCBzaG93IHRoZSBleGNlcHRpb24gbWVzc2FnZS4KIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjQgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuNCB1cGRhdGUKICAgICAgICBieQogICAgICAgIG1pY2hpCiAgICAgICAgOgogICAgICAgIFsxLjRdIAogICAgICAgICAgICByZXZlcnNlIGFkZGVkIGFuZCBsaW5rIGFjdGl2YXRlZAogRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuNCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS40IHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgYW5kcmVhcwogICAgICAgIDoKICAgICAgICBbMS40XSAKICAgICAgICAgICAgc2hvd2luZyArIGRpc2FibGluZyBTU0wgY2hlY2tib3ggd2hlbiBwYXJlbnQgVVJMIGlzIFNTTC1wcm90ZWN0ZWQKIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjQgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuNCB1cGRhdGUKICAgICAgICBieQogICAgICAgIGFuZHJlYXMKICAgICAgICA6CiAgICAgICAgWzEuNF0gCiAgICAgICAgICAgIE1hZGUgZ2V0RG9jdW1lbnQoKSBwdWJsaWMuIFRoaXMgaXMgYSBoYWNrIGR1ZSB0byB0aGUgaW5zdWZmaWNpZW50IHdvcmtmbG93IGNvbmRpdGlvbiBpbnRlcmZhY2UgKHNob3VsZCBiZSByZWNvbnNpZGVyZWQgd2hlbiB0aGUgbmV3IEFQSSBpcyBkZXNpZ25lZCkuCiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS40IHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjQgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBhbmRyZWFzCiAgICAgICAgOgogICAgICAgIFsxLjRdIAogICAgICAgICAgICBhZGRlZCBuZXcgYWRtaW4gaW50ZXJmYWNlIHVzZWNhc2VzCiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS40IHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjQgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBhbmRyZWFzCiAgICAgICAgOgogICAgICAgIFsxLjRdIAogICAgICAgICAgICByZW1vdmVkIHVubmVlZGVkIGZpZWxkIHdvcmtmbG93SWQKIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjQgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuNCB1cGRhdGUKICAgICAgICBieQogICAgICAgIGFuZHJlYXMKICAgICAgICA6CiAgICAgICAgWzEuNF0gCiAgICAgICAgICAgIGFzc2VydGluZyB0aGF0IHdvcmtmbG93IG5hbWUgaXMgbm90IG51bGwgYW5kIG5vbi1lbXB0eQogRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuNCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS40IHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgYW5kcmVhcwogICAgICAgIDoKICAgICAgICBbMS40XSAKICAgICAgICAgICAgcmVwbGFjZWQgYXNzZXJ0aW9uIHdpdGggZXhjZXB0aW9uIGZvciBub24tdmFsaWQgYXJlYXMKIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjQgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuNCB1cGRhdGUKICAgICAgICBieQogICAgICAgIGFuZHJlYXMKICAgICAgICA6CiAgICAgICAgWzEuNF0gCiAgICAgICAgICAgIGFkZGVkIGluZm8tKiBhcyB2YWRpZCBhcmVhcwogRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuNCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS40IHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgZ3JlZ29yCiAgICAgICAgOgogICAgICAgIFsxLjRdIAogICAgICAgICAgICBmaXggYnhlIGRvd25sb2FkIHVybAogRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuNCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS40IHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgYW5kcmVhcwogICAgICAgIDoKICAgICAgICBbMS40XSAKICAgICAgICAgICAgc2V0dGluZyBDYWNoZS1Db250cm9sIGhlYWRlciBmb3Igc2l0ZXRyZWUgamF2YXNjcmlwdCAoZW5mb3JjZSByZWxvYWRpbmcpCiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS40IHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjQgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBhbmRyZWFzCiAgICAgICAgOgogICAgICAgIFsxLjRdIAogICAgICAgICAgICBmaXhlZCBjaGVjayBvZiBuZXRtYXNrIDI1NS4yNTUuMjU1LjI1NQogRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuNCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS40IHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgbWljaGkKICAgICAgICA6CiAgICAgICAgWzEuNF0gCiAgICAgICAgICAgIHRyZWF0IDI1NS4yNTUuMjU1LjI1NSBleGNlcHRpb25hbGx5CiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS40IHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjQgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBhbmRyZWFzCiAgICAgICAgOgogICAgICAgIFsxLjRdIAogICAgICAgICAgICBhZGRlZCBub3RpZmljYXRpb24gZm9yIHNjaGVkdWxpbmcKIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjQgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuNCB1cGRhdGUKICAgICAgICBieQogICAgICAgIHJva3UKICAgICAgICA6CiAgICAgICAgWzEuNF0gCiAgICAgICAgICAgIEFkZGVkIGFub3RoZXIgbGl2ZSBzaXRlLgogRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuNCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS40IHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgZ3JlZ29yCiAgICAgICAgOgogICAgICAgIFsxLjRdIAogICAgICAgICAgICBndXJpdCBhZGRlZCB0byBsaXZlIHNpdGVzCiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS40IHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjQgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBncmVnb3IKICAgICAgICA6CiAgICAgICAgWzEuNF0gCiAgICAgICAgICAgIGNoYW5nZSB0aGUgbmF2aWdhdGlvbiBmcmFtZXdvcmsgdG8gY3JlYXRlIGFic29sdXRlIGxpbmtzIGluY2x1ZGluZyB0aGUgaG9zdCBhbmQgcHJvdG9jb2wKaWYgU1NMIGlzIGVuYWJsZWQgYW55d2hlcmUgaW4gYSBwdWJsaWNhdGlvbi4gdGhpcyBpcyBuZWNlc3NhcnkgdG8gbWFrZSBuYXZpZ2F0aW5nIGJldHdlZW4gU1NMIGFuZCBub24gU1NMCnBhZ2VzIG9mIGEgc2l0ZSBwb3NzaWJsZSAod2l0aG91dCBhIHByb3RvY29sIGl0IGlzIG5vdCBwb3NzaWJsZSB0byBkaXN0aW5ndWlzaCBvdGhlcndpc2UpCgppZiB5b3UgaGF2ZSBwcm9ibGVtcyB3aXRoIHlvdXIgbGlua3MgdGhyb3VnaCBhIHByb3h5LCBjb25zaWRlciB1c2luZyB0aGUgbGl2ZSBtb3VudCBwcmVmaXguCnRoaXMgd2lsbCByZXdyaXRlIGxpbmtzIGluIHlvdXIgbGl2ZSBhcmVhIHRvIHRoZSBmb3JtIC9saXZlbW91bnRwcmVmaXgvZG9jdW1lbnRpZC8uIHVzZSAvIGFzIGxpdmVtb3VudHByZWZpeApmb3IgdmlydHVhbCBob3N0cyAoaXQgd2lsbGwgcmV3cml0ZSBsZW55YS95b3VycHViL2F1dGhvcmluZy9pbmRleC5odG1sIHlvdXNpdGUuY29tL2luZGV4Lmh0bWwgYW5kIHNvIG9uKQoKeWVhaCAgaSBrbm93IHRoaXMgbmVlZHMgbW9yZSBkb2N1bWVudGF0aW9uIDopCiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS40IHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjQgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBtaWNoaQogICAgICAgIDoKICAgICAgICBbMS40XSAKICAgICAgICAgICAgeHBhdGggYXMgZWxlbWVudCBpbnN0ZWFkIGFzIGF0dHJpYnV0ZQogRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuNCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS40IHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgbWljaGkKICAgICAgICA6CiAgICAgICAgWzEuNF0gCiAgICAgICAgICAgIGFkZCBjb21tZW50CiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS40IHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjQgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBtaWNoaQogICAgICAgIDoKICAgICAgICBbMS40XSAKICAgICAgICAgICAgamF2YWRvYyBhZGRlZAogRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuNCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS40IHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgbWljaGkKICAgICAgICA6CiAgICAgICAgWzEuNF0gCiAgICAgICAgICAgIG5hbWVzcGFjZXMgYWRkZWQKIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjQgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuNCB1cGRhdGUKICAgICAgICBieQogICAgICAgIG1pY2hpCiAgICAgICAgOgogICAgICAgIFsxLjRdIAogICAgICAgICAgICBqYXZhZG9jIGFkZGVkIGFuZCBsb2dnaW5nIGZpeGVkCiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS40IHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjQgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBtaWNoaQogICAgICAgIDoKICAgICAgICBbMS40XSAKICAgICAgICAgICAgaW5kZXggbGl2ZSBhcmVhCiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS40IHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjQgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBtaWNoaQogICAgICAgIDoKICAgICAgICBbMS40XSAKICAgICAgICAgICAgYWRkIG11bHRpcGxlIHhwYXRocyB0byBjb21iaW5lIHZhcmlvdXMgZWxlbWVudHMKIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjQgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuNCB1cGRhdGUKICAgICAgICBieQogICAgICAgIG1pY2hpCiAgICAgICAgOgogICAgICAgIFsxLjRdIAogICAgICAgICAgICBlbmNvZGluZyBwYXJhbWV0ZXIgcmVtb3ZlZAogRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuNCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS40IHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgZ3JlZ29yCiAgICAgICAgOgogICAgICAgIFsxLjRdIAogICAgICAgICAgICAjMjg5OTIgYXRvbSByZWxheCBuZyBoYWQgTk1UT0tFTiBpbnN0ZWFkIG9mIGRhdGVUaW1lCiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS40IHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjQgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBlZ2xpCiAgICAgICAgOgogICAgICAgIFsxLjRdIAogICAgICAgICAgICBTaW1wbGlmeSB0aGUgaW5zdGFsbGF0aW9uIGluc3RydWN0aW9ucy4KIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPiB1cGRhdGUKICAgICAgICBieQogICAgICAgIHJva3UKICAgICAgICA6CiAgICAgICAgW10gCiAgICAgICAgICAgIFJlbW92ZWQgQGF1dGhvci4KIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjQgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuNCB1cGRhdGUKICAgICAgICBieQogICAgICAgIGdyZWdvcgogICAgICAgIDoKICAgICAgICBbMS40XSAKICAgICAgICAgICAgIzI4NTM4IExlbnlhIGJ1aWxkIHByb2Nlc3MgZG9lcyBub3Qgc3VwcG9ydCBtdWx0aXBsZSB0b21jYXQgaW5zdGFuY2UKIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAgYWRkPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPiBhZGQKICAgICAgICBieQogICAgICAgIHJva3UKICAgICAgICA6CiAgICAgICAgW10gCiAgICAgICAgICAgIFNwcmludCBoYWNrczoKCkxlbnlhU291cmNlRmFjdG9yeSBhbmQgbGVueWEgcHJvdG9jb2wgaW50ZWdyYXRpb24KIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjQgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuNCB1cGRhdGUKICAgICAgICBieQogICAgICAgIGdyZWdvcgogICAgICAgIDoKICAgICAgICBbMS40XSAKICAgICAgICAgICAgIzI4NTM4IExlbnlhIGJ1aWxkIHByb2Nlc3MgZG9lcyBub3Qgc3VwcG9ydCBtdWx0aXBsZSB0b21jYXQgaW5zdGFuY2UKIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjQgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuNCB1cGRhdGUKICAgICAgICBieQogICAgICAgIGVnbGkKICAgICAgICA6CiAgICAgICAgWzEuNF0gCiAgICAgICAgICAgICogVGhlIGVuY29kaW5nIGlzIG5vdyB0YWtlbiBmcm9tIHRoZSByZXF1ZXN0IGFuZCBubyBsb25nZXIgZnJvbSB0aGUKICBzaXRlbWFwIHBhcmFtZXRlci4KCiogU2FpZCBlbmNvZGluZyBpcyB1c2VkIHdoZW4gd3JpdGluZyB0aGUgZmlsZS4gVGhpcyBzZWVtcyB0byBzb2x2ZSBhCiAgZmV3IHByb2JsZW1zIHdpdGggdW1sYXV0cy4KIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjQgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuNCB1cGRhdGUKICAgICAgICBieQogICAgICAgIGdyZWdvcgogICAgICAgIDoKICAgICAgICBbMS40XSAKICAgICAgICAgICAgZW5mb3JjZSBwYXNzd29yZCBzZWN1cml0eSB3aGVuIGNoYW5naW5nIHBhc3N3b3Jkcy4KCiogYXQgbGVhc3QgNiBjaGFyYWN0ZXJzIGxvbmcKKiBhdCBsZWFzdCBvbmUgZGlnaXQKIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjQgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuNCB1cGRhdGUKICAgICAgICBieQogICAgICAgIGdyZWdvcgogICAgICAgIDoKICAgICAgICBbMS40XSAKICAgICAgICAgICAgZGVmYXVsdCB0byBlbSBhbmQgc3Ryb25nIGluc3RlYWQgb2YgaSBhbmQgYgogRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuNCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS40IHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgbWljaGkKICAgICAgICA6CiAgICAgICAgWzEuNF0gCiAgICAgICAgICAgIEpldHR5IGluY2x1ZGVkIGludG8gYmluYXJ5IHNuYXBzaG90CiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS40IHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjQgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBtaWNoaQogICAgICAgIDoKICAgICAgICBbMS40XSAKICAgICAgICAgICAgYnVpbGRpbmcgc25hcHNob3RzIGNsZWFuZWQKIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjQgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuNCB1cGRhdGUKICAgICAgICBieQogICAgICAgIG1pY2hpCiAgICAgICAgOgogICAgICAgIFsxLjRdIAogICAgICAgICAgICB1cGxvYWQgYWRkZWQgYnV0IG91dCBjb21tZW50ZWQKIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjQgYWRkPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuNCBhZGQKICAgICAgICBieQogICAgICAgIG1pY2hpCiAgICAgICAgOgogICAgICAgIFsxLjRdIAogICAgICAgICAgICB1cGxvYWQgYWRkZWQKIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjQgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuNCB1cGRhdGUKICAgICAgICBieQogICAgICAgIGVkaXRoCiAgICAgICAgOgogICAgICAgIFsxLjRdIAogICAgICAgICAgICBzb3VyY2UgaW5zdGVhZCBvZiBzdXJvY2UKIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjQgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuNCB1cGRhdGUKICAgICAgICBieQogICAgICAgIGVkaXRoCiAgICAgICAgOgogICAgICAgIFsxLjRdIAogICAgICAgICAgICBmaXggYnVnIDI4ODYxCiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS40IHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjQgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBtaWNoaQogICAgICAgIDoKICAgICAgICBbMS40XSAKICAgICAgICAgICAgc3BlY2lhbCBjaGFyYWN0ZXJzIGZpeGVkCiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS40IHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjQgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBtaWNoaQogICAgICAgIDoKICAgICAgICBbMS40XSAKICAgICAgICAgICAgc29ydGluZyBpbXBsZW1lbnRlZAogRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuNCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS40IHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgYW5kcmVhcwogICAgICAgIDoKICAgICAgICBbMS40XSAKICAgICAgICAgICAgY2hlY2tpbmcgYXJlYSB2YWxpZGl0eSBpbiBpc0RvY3VtZW50KCkKIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPiB1cGRhdGUKICAgICAgICBieQogICAgICAgIAogICAgICAgIDoKICAgICAgICBbXSAKICAgICAgICAgICAgVGhpcyBjb21taXQgd2FzIG1hbnVmYWN0dXJlZCBieSBjdnMyc3ZuIHRvIGNyZWF0ZSB0YWcKJ1Jvb3Qtb2YtTGVueWFfU3ByaW50XzIwMDRfNV8xMycuIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAgYWRkPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPiBhZGQKICAgICAgICBieQogICAgICAgIAogICAgICAgIDoKICAgICAgICBbXSAKICAgICAgICAgICAgVGhpcyBjb21taXQgd2FzIG1hbnVmYWN0dXJlZCBieSBjdnMyc3ZuIHRvIGNyZWF0ZSBicmFuY2gKJ0xlbnlhX1NwcmludF8yMDA0XzVfMTMtYnJhbmNoJy4gRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuNCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS40IHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgbWljaGkKICAgICAgICA6CiAgICAgICAgWzEuNF0gCiAgICAgICAgICAgIGxpYnJhcmllcyBmaXhlZCBhbmQgVXNhZ2UgYWRkZWQKIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjQgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuNCB1cGRhdGUKICAgICAgICBieQogICAgICAgIG1pY2hpCiAgICAgICAgOgogICAgICAgIFsxLjRdIAogICAgICAgICAgICBMdWNlbmUgMS40LXJjMyBhZGRlZAogRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuNCByZW1vdmU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS40IHJlbW92ZQogICAgICAgIGJ5CiAgICAgICAgbWljaGkKICAgICAgICA6CiAgICAgICAgWzEuNF0gCiAgICAgICAgICAgIEx1Y2VuZSAxLjMgcmVwbGFjZWQgYnkgMS40LXJjMwogRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuNCBhZGQ8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS40IGFkZAogICAgICAgIGJ5CiAgICAgICAgbWljaGkKICAgICAgICA6CiAgICAgICAgWzEuNF0gCiAgICAgICAgICAgIEx1Y2VuZSAxLjQtcmMzIGFkZGVkIHdoaWNoIGFsbG93cyBzb3J0aW5nCiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS40IHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjQgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBtaWNoaQogICAgICAgIDoKICAgICAgICBbMS40XSAKICAgICAgICAgICAgdGhhbmtzIHRvIEphbiBNZXR6bmVyIHNwZWNpYWwgY2hhcmFjdGVycyB3aXRoaW4gWE1MIGZpbGVzIGFyZSBoYW5kbGVkIGNvcnJlY3RseSB3aXRoaW4gZXhjZXJwdHMKIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjQgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuNCB1cGRhdGUKICAgICAgICBieQogICAgICAgIG1pY2hpCiAgICAgICAgOgogICAgICAgIFsxLjRdIAogICAgICAgICAgICBlbmNvZGluZyBmaXhlZAogRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuNCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS40IHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgbWljaGkKICAgICAgICA6CiAgICAgICAgWzEuNF0gCiAgICAgICAgICAgIHBpeGVsIGdpZiBmaXhlZAogRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuNCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS40IHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgZ3JlZ29yCiAgICAgICAgOgogICAgICAgIFsxLjRdIAogICAgICAgICAgICAjMjg5MTUgbW9yZSBhdG9tIGZpeGVzCgp0aGFua3MgZGFsZQogRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuNCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS40IHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgZ3JlZ29yCiAgICAgICAgOgogICAgICAgIFsxLjRdIAogICAgICAgICAgICAjMjg5MTcgbWFrZSBibG9nIGJ4ZSBlZGl0YWJsZSBhZ2FpbgogRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuNCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS40IHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgYW50b25pbwogICAgICAgIDoKICAgICAgICBbMS40XSAKICAgICAgICAgICAgUmVtb3ZlIG15c2VsZgogRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuNCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS40IHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgbWljaGkKICAgICAgICA6CiAgICAgICAgWzEuNF0gCiAgICAgICAgICAgIEt1cHUgYW5kIEJYRSBtZW50aW9uZWQKIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjQgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuNCB1cGRhdGUKICAgICAgICBieQogICAgICAgIG1pY2hpCiAgICAgICAgOgogICAgICAgIFsxLjRdIAogICAgICAgICAgICBubyBzdHJvbmcgZW1haWwKIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjQgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuNCB1cGRhdGUKICAgICAgICBieQogICAgICAgIGdyZWdvcgogICAgICAgIDoKICAgICAgICBbMS40XSAKICAgICAgICAgICAgZml4IDQwNAogRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuNCByZW1vdmU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS40IHJlbW92ZQogICAgICAgIGJ5CiAgICAgICAgbWljaGkKICAgICAgICA6CiAgICAgICAgWzEuNF0gCiAgICAgICAgICAgIG9ic29sZXRlCiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS40IHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjQgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBtaWNoaQogICAgICAgIDoKICAgICAgICBbMS40XSAKICAgICAgICAgICAgZG9uJ3QgYWRkIGEgbWltZS10eXBlIGlmIG9uZSBjYW4ndCBiZSBtYXBwZWQKIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjQgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuNCB1cGRhdGUKICAgICAgICBieQogICAgICAgIG1pY2hpCiAgICAgICAgOgogICAgICAgIFsxLjRdIAogICAgICAgICAgICBjaGVjayBpZiBDb2Nvb24gd2ViYXBwIGRpciBleGlzdHMKIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjQgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuNCB1cGRhdGUKICAgICAgICBieQogICAgICAgIG1pY2hpCiAgICAgICAgOgogICAgICAgIFsxLjRdIAogICAgICAgICAgICBzdHJpbmcgcmVwbGFjZWQgYnkgcGFyYW1ldGVyCiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS40IHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjQgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBtaWNoaQogICAgICAgIDoKICAgICAgICBbMS40XSAKICAgICAgICAgICAgY29jb29uLmRpciByZW5hbWVkIGFuZCBzaW1wbGlmaWVkCiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS40IHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjQgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBhbnRvbmlvCiAgICAgICAgOgogICAgICAgIFsxLjRdIAogICAgICAgICAgICBVcGRhdGUgbGluayB0byBDb2Nvb24gMi4xCiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS40IHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjQgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBncmVnb3IKICAgICAgICA6CiAgICAgICAgWzEuNF0gCiAgICAgICAgICAgICMyODg5MCB1cGdyYWRlIHRvIGF0b20gMC4zIAoKdGhhbmtzIHRvIGRhbGUgY2hyaXN0CgpXT09GIFdPT0YhCiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS40IHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjQgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICB0aG9yc3RlbgogICAgICAgIDoKICAgICAgICBbMS40XSAKICAgICAgICAgICAgQUREIEVNQUlMIEFERFJFU1MKIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjQgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuNCB1cGRhdGUKICAgICAgICBieQogICAgICAgIGFuZHJlYXMKICAgICAgICA6CiAgICAgICAgWzEuNF0gCiAgICAgICAgICAgIG1vdmVkIGRlbGV0ZVRyYXNoIHVzZWNhc2UgZnJvbSB1c2VjYXNlLnhtYXAgdG8gYWRtaW4ueG1hcAogRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuNCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS40IHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgYW5kcmVhcwogICAgICAgIDoKICAgICAgICBbMS40XSAKICAgICAgICAgICAgLSBjb21tZW50ZWQgb3V0IHBhdGNoaW5nIG9mIHdlYi54bWwgKHByb2JsZW1zIHdpdGggJmx0O2luaXQtcGFyYW0mZ3Q7KQotIGNvcHkgcHVibGljYXRpb24gbGlicmFyaWVzCiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS40IHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjQgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBhbmRyZWFzCiAgICAgICAgOgogICAgICAgIFsxLjRdIAogICAgICAgICAgICBwYXRjaCB3ZWIueG1sIGJ5IHB1YmxpY2F0aW9ucwogRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuNCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS40IHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgZ3JlZ29yCiAgICAgICAgOgogICAgICAgIFsxLjRdIAogICAgICAgICAgICBtZXJnZWQgcGF0Y2ggdG8gc3VwcG9ydCBJUCByYW5nZSBhY2Nlc3MgY29udHJvbCB0aHJvdWdoIHByb3hpZXMuCgp0aGFua3MgdG8gamFubiBmb3JyZXIKIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjQgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuNCB1cGRhdGUKICAgICAgICBieQogICAgICAgIG1pY2hpCiAgICAgICAgOgogICAgICAgIFsxLjRdIAogICAgICAgICAgICBvdXRwdXQgZmllbGRzCiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS40IHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjQgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBtaWNoaQogICAgICAgIDoKICAgICAgICBbMS40XSAKICAgICAgICAgICAgc3RvcmVkIGZpZWxkcyBhZGRlZAogRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuNCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS40IHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgbWljaGkKICAgICAgICA6CiAgICAgICAgWzEuNF0gCiAgICAgICAgICAgIEVwb3ogcmVwbGFjZWQgYnkgS3VwdQogRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuNCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS40IHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgbWljaGkKICAgICAgICA6CiAgICAgICAgWzEuNF0gCiAgICAgICAgICAgIHZlcnNpb25zIGFkZGVkCiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS40IHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjQgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBtaWNoaQogICAgICAgIDoKICAgICAgICBbMS40XSAKICAgICAgICAgICAgaG9tZXBhZ2UgYmVmb3JlIGVtYWlsCiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS40IHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjQgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBtaWNoaQogICAgICAgIDoKICAgICAgICBbMS40XSAKICAgICAgICAgICAgYWRkaW5nIGFuZCBkZWxldGluZyBmZWF0dXJlcyBpbXByb3ZlZAogRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuNCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS40IHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgbWljaGkKICAgICAgICA6CiAgICAgICAgWzEuNF0gCiAgICAgICAgICAgIGFkZGluZyBvZiBob21lcGFnZSBhdHRyaWJ1dGUKIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjQgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuNCB1cGRhdGUKICAgICAgICBieQogICAgICAgIG1pY2hpCiAgICAgICAgOgogICAgICAgIFsxLjRdIAogICAgICAgICAgICBYb3B1cyBhbmQgUm9sbGJhY2sgYWRkZWQKIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjQgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuNCB1cGRhdGUKICAgICAgICBieQogICAgICAgIG1pY2hpCiAgICAgICAgOgogICAgICAgIFsxLjRdIAogICAgICAgICAgICBob21lcGFnZSBhZGRlZAogRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuNCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS40IHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgbWljaGkKICAgICAgICA6CiAgICAgICAgWzEuNF0gCiAgICAgICAgICAgIGhvbWVwYWdlIGF0dHJpYnV0ZSBhZGRlZAogRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuNCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS40IHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgdGhvcnN0ZW4KICAgICAgICA6CiAgICAgICAgWzEuNF0gCiAgICAgICAgICAgICoqKiBlbXB0eSBsb2cgbWVzc2FnZSAqKioKIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjQgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuNCB1cGRhdGUKICAgICAgICBieQogICAgICAgIGVnbGkKICAgICAgICA6CiAgICAgICAgWzEuNF0gCiAgICAgICAgICAgIFdoZW4gdGhlIGNhbmNlbCBidXR0b24gd2FzIHByZXNzZWQgaW4gdGhlIG9uZSBmb3JtIGVkaXRvciB0aGUgcGlwZWxpbmUKd291bGQgc3RpbGwgdmFsaWRhdGUgdGhlIGNvbnRlbnRzLiBOb3cgaXQgb25seSB2YWxpZGF0ZXMgaWYgdGhlIHNhdmUKYnV0dG9uIHdhcyBwcmVzc2VkLgogRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuNCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS40IHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgbWljaGkKICAgICAgICA6CiAgICAgICAgWzEuNF0gCiAgICAgICAgICAgIGRpc3QgdGFyZ2V0cyBmaXhlZCBhbmQgaW1wcm92ZWQKIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjQgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuNCB1cGRhdGUKICAgICAgICBieQogICAgICAgIG1pY2hpCiAgICAgICAgOgogICAgICAgIFsxLjRdIAogICAgICAgICAgICBpbmZvIGFkZGVkIGFuZCBzaW1wbGlmaWVkCiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS40IHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjQgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBtaWNoaQogICAgICAgIDoKICAgICAgICBbMS40XSAKICAgICAgICAgICAgaG9zdG5hbWUgcmVwbGFjZWQKIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjQgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuNCB1cGRhdGUKICAgICAgICBieQogICAgICAgIGFuZHJlYXMKICAgICAgICA6CiAgICAgICAgWzEuNF0gCiAgICAgICAgICAgIG5vcm1hbGl6ZSBlbGVtZW50IGFmdGVyIHJlbW92aW5nIGNoaWxkcmVuCiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS40IHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjQgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBhbmRyZWFzCiAgICAgICAgOgogICAgICAgIFsxLjRdIAogICAgICAgICAgICByZXR1cm4gbnVsbCBpZiBwdWJsaWNhdGlvbiBkb2VzIG5vdCBleGlzdAogRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuNCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS40IHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgcm9rdQogICAgICAgIDoKICAgICAgICBbMS40XSAKICAgICAgICAgICAgRml4ZWQgVHJhcG8ncyByZWFsbmFtZS4gU29ycnkgVHJhcG8gOikKIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjQgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuNCB1cGRhdGUKICAgICAgICBieQogICAgICAgIGFuZHJlYXMKICAgICAgICA6CiAgICAgICAgWzEuNF0gCiAgICAgICAgICAgIGRvbid0IGFsbG93IHRvIGRlbGV0ZSBjdXJyZW50IHVzZXIKIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjQgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuNCB1cGRhdGUKICAgICAgICBieQogICAgICAgIGFuZHJlYXMKICAgICAgICA6CiAgICAgICAgWzEuNF0gCiAgICAgICAgICAgIGRvbid0IGFsbG93IExEQVAgdXNlcnMgdG8gY2hhbmdlIHRoZWlyIHBhc3N3b3JkCiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS40IHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjQgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBhbmRyZWFzCiAgICAgICAgOgogICAgICAgIFsxLjRdIAogICAgICAgICAgICByZW1vdmVkIHJlZmVyZW5jZSB0byBwZW5kaW5nIGFyZWEKIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjQgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuNCB1cGRhdGUKICAgICAgICBieQogICAgICAgIGFuZHJlYXMKICAgICAgICA6CiAgICAgICAgWzEuNF0gCiAgICAgICAgICAgIFtqYW1dIHJlcGxhY2VkIFBFTkRJTkdfQVJFQSB3aXRoIFBFTkRJTkdfUEFUSAogRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuNCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS40IHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgYW5kcmVhcwogICAgICAgIDoKICAgICAgICBbMS40XSAKICAgICAgICAgICAgW2phbV0gYWRkZWQgY29weShGaWxlLCBGaWxlKSBtZXRob2QKIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjQgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuNCB1cGRhdGUKICAgICAgICBieQogICAgICAgIGFuZHJlYXMKICAgICAgICA6CiAgICAgICAgWzEuNF0gCiAgICAgICAgICAgIGFkZGVkIGZvcmdvdHRlbiAiZWxzZSIKIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjQgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuNCB1cGRhdGUKICAgICAgICBieQogICAgICAgIGFuZHJlYXMKICAgICAgICA6CiAgICAgICAgWzEuNF0gCiAgICAgICAgICAgIGFkZGVkICJzZWFyY2gtIiBhcyB2YWxpZCBhcmVhIHByZWZpeAogRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuNCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS40IHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgZ3JlZ29yCiAgICAgICAgOgogICAgICAgIFsxLjRdIAogICAgICAgICAgICB1dGYtOCBzZXJpYWxpemF0aW9uIGZvciBzaXRldHJlZSBsYWJlbHMgaW4gdGhlIGxpbmsgcG9wdXAKIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjQgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuNCB1cGRhdGUKICAgICAgICBieQogICAgICAgIGFuZHJlYXMKICAgICAgICA6CiAgICAgICAgWzEuNF0gCiAgICAgICAgICAgIGFzY2VuZGluZyBvcmRlciBmb3Igd29ya2Zsb3cgaGlzdG9yeSB2ZXJzaW9ucwogRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuNCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS40IHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgYW5kcmVhcwogICAgICAgIDoKICAgICAgICBbMS40XSAKICAgICAgICAgICAgdXNpbmcgSVNPIGRhdGUgZm9ybWF0IGZvciB3b3JrZmxvdyBoaXN0b3J5CiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS40IHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjQgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBncmVnb3IKICAgICAgICA6CiAgICAgICAgWzEuNF0gCiAgICAgICAgICAgIGRpc2FsbG93IF8gaW4gdXJsCiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS40IHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjQgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBncmVnb3IKICAgICAgICA6CiAgICAgICAgWzEuNF0gCiAgICAgICAgICAgIGFkZCBhbiBPSyBidXR0b24gdG8gY2hlY2tvdXQgZXhjZXB0aW9uIHNjcmVlbi4KIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjQgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuNCB1cGRhdGUKICAgICAgICBieQogICAgICAgIGdyZWdvcgogICAgICAgIDoKICAgICAgICBbMS40XSAKICAgICAgICAgICAgc2VwZXJhdGUgb3V0IHNjaGVkdWxpbmcgZnJvbSB3b3JrZmxvdyBpbiB0aGUgbWVudQogRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuNCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS40IHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgZ3JlZ29yCiAgICAgICAgOgogICAgICAgIFsxLjRdIAogICAgICAgICAgICBzY2hlZHVsaW5nIG5vdGlmaWNhdGlvbiBpcyBjdXJyZW50bHkgbm90IHdvcmtpbmcuIGl0IHdhcyBkaXNhYmxlZCBpbiB0aGUgc2l0ZW1hcC4KCnRoZSBuZXcgc3RyaXBfbmFtZXNwYWNlcyB0dXJuZWQgdGhlIHN0cmF5IG5vdDp0ZXh0YXJlYSBpbnRvIG9uZSBiaWcgdGV4dGFyZWEsCmJyZWFraW5nIHRoZSBzY3JlZW4uIGRpc2FibGVkIHRoYXQgcGFydCBpbiB0aGUgeHNsdCBmb3Igbm93LgogRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuNCByZW1vdmU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS40IHJlbW92ZQogICAgICAgIGJ5CiAgICAgICAgZ3JlZ29yCiAgICAgICAgOgogICAgICAgIFsxLjRdIAogICAgICAgICAgICB3aGlsZSB0aGUgY2FsbCBiYWNrIGlzIG5pY2UsIGl0cyBub3QgbmVjZXNzYXJ5IGhlcmUuIHRoZXJlIGlzIG1vcmUgdGhhbiBvbmUgd2F5IHRvIGRvIHRoaW5ncyBpbiBieGUuLgogRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuNCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS40IHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgZ3JlZ29yCiAgICAgICAgOgogICAgICAgIFsxLjRdIAogICAgICAgICAgICBjaGFuZ2VkIGNhbGxiYWNrCiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS40IHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjQgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBncmVnb3IKICAgICAgICA6CiAgICAgICAgWzEuNF0gCiAgICAgICAgICAgIGEgeHNsdCBwYXJhbSB3YXMgbm90IGFwcGxpZWQuIHRoaXMgbGVhZCB0byBpZSBlcnJvcnMuIHRoYW5rcyB0byBKb2huc29uIEhzdSBmb3Igc3BvdHRpbmcuCiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS40IHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjQgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBhbmRyZWFzCiAgICAgICAgOgogICAgICAgIFsxLjRdIAogICAgICAgICAgICB1c2luZyBtaW1lLXR5cGUgImFwcGxpY2F0aW9uL3gtamF2YXNjcmlwdCIKIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjQgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuNCB1cGRhdGUKICAgICAgICBieQogICAgICAgIGdyZWdvcgogICAgICAgIDoKICAgICAgICBbMS40XSAKICAgICAgICAgICAgbmFtZXNwYWNlcyBhZGRlZAogRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuNCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS40IHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgZ3JlZ29yCiAgICAgICAgOgogICAgICAgIFsxLjRdIAogICAgICAgICAgICBjb25uZWN0IGxlbnlhIGxpbmsgaW5zZXJ0IHBvcHVwIHdpdGggYnhlIGxpbmsgYnV0dG9uLgogRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuNCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS40IHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgYW5kcmVhcwogICAgICAgIDoKICAgICAgICBbMS40XSAKICAgICAgICAgICAgZml4ZWQgaW5kZW50YXRpb24KIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjQgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuNCB1cGRhdGUKICAgICAgICBieQogICAgICAgIGFuZHJlYXMKICAgICAgICA6CiAgICAgICAgWzEuNF0gCiAgICAgICAgICAgIGFkZGVkIHBvbGljaWVzIGZvciB1c2VyIGFkbWluaXN0cmF0aW9uIHVzZWNhc2VzCiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS40IHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjQgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBhbmRyZWFzCiAgICAgICAgOgogICAgICAgIFsxLjRdIAogICAgICAgICAgICBhZGRlZCAiZWRpdCIgYXMgYXV0aG9yIHJvbGUKIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjQgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuNCB1cGRhdGUKICAgICAgICBieQogICAgICAgIGFuZHJlYXMKICAgICAgICA6CiAgICAgICAgWzEuNF0gCiAgICAgICAgICAgIGdldENyZWRlbnRpYWwoKSAtJmd0OyBwdWJsaWMKIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjQgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuNCB1cGRhdGUKICAgICAgICBieQogICAgICAgIGFuZHJlYXMKICAgICAgICA6CiAgICAgICAgWzEuNF0gCiAgICAgICAgICAgIGNoZWNrIGlmIGFjY3JlZGl0YWJsZSBoYXMgcm9sZSBiZWZvcmUgZGVsZXRpbmcgcm9sZQogRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuNCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS40IHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgYW5kcmVhcwogICAgICAgIDoKICAgICAgICBbMS40XSAKICAgICAgICAgICAgcmVmYWN0b3JlZCBhZG1pbiB1c2VjYXNlcyB1c2luZyAibGVueWEudXNlY2FzZSIgcmVxdWVzdCBwYXJhbWV0ZXIKIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjQgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuNCB1cGRhdGUKICAgICAgICBieQogICAgICAgIGFuZHJlYXMKICAgICAgICA6CiAgICAgICAgWzEuNF0gCiAgICAgICAgICAgIGNoZWNraW5nIGlmIGl0ZW0gd2FzIGFscmVhZHkgcmVtb3ZlZCB3aGVuIGZpbGUgd2FzIGRlbGV0ZWQKIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjQgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuNCB1cGRhdGUKICAgICAgICBieQogICAgICAgIGFuZHJlYXMKICAgICAgICA6CiAgICAgICAgWzEuNF0gCiAgICAgICAgICAgIHJlbW92ZWQgdW51c2VkIGltcG9ydAogRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuNCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS40IHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgYW5kcmVhcwogICAgICAgIDoKICAgICAgICBbMS40XSAKICAgICAgICAgICAgcmVtb3ZlIGF1dGhvciByb2xlIG9uIHVzZXIgYWRtaW4gVVJMIHdoZW4gYSB1c2VyIGlzIGRlbGV0ZWQKIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjQgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuNCB1cGRhdGUKICAgICAgICBieQogICAgICAgIGFuZHJlYXMKICAgICAgICA6CiAgICAgICAgWzEuNF0gCiAgICAgICAgICAgIGFkZGluZyBhdXRob3Igcm9sZSBvbiB1c2VyIGFkbWluIFVSTCB3aGVuIGEgdXNlciBpcyBjcmVhdGVkCiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS40IHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjQgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBhbmRyZWFzCiAgICAgICAgOgogICAgICAgIFsxLjRdIAogICAgICAgICAgICBhZGRlZCBVU0VSX0FETUlOX1VSTCBmaWVsZAogRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuNCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS40IHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgYW5kcmVhcwogICAgICAgIDoKICAgICAgICBbMS40XSAKICAgICAgICAgICAgcmVtb3ZlIHVzZXIgZnJvbSBncm91cHMgYmVmb3JlIChyZS0pY29uZmlndXJpbmcKIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjQgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuNCB1cGRhdGUKICAgICAgICBieQogICAgICAgIGFuZHJlYXMKICAgICAgICA6CiAgICAgICAgWzEuNF0gCiAgICAgICAgICAgIC0gcmVzdG9yZSBncm91cCBjb25zaXN0ZW5jZSBhZnRlciBmaWxlIGNoYW5nZXMKLSByZS1jb25maWd1cmluZyBpdGVtcyBpbnN0ZWFkIG9mIGJ1aWxkaW5nIG5ldyBvbmVzCiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS40IHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjQgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBhbmRyZWFzCiAgICAgICAgOgogICAgICAgIFsxLjRdIAogICAgICAgICAgICBhZGRlZCByZW1vdmVGcm9tQWxsR3JvdXBzKCkgdG8gR3JvdXBhYmxlIGludGVyZmFjZQogRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuNCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS40IHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgYW5kcmVhcwogICAgICAgIDoKICAgICAgICBbMS40XSAKICAgICAgICAgICAgYWRkZWQgYWNjcmVkaXRhYmxlQWRkZWQoKSBtZXRob2QKIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjQgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuNCB1cGRhdGUKICAgICAgICBieQogICAgICAgIGFuZHJlYXMKICAgICAgICA6CiAgICAgICAgWzEuNF0gCiAgICAgICAgICAgIGltcGxlbWVudGVkIGFjY3JlZGl0YWJsZUFkZGVkKCkKIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjQgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuNCB1cGRhdGUKICAgICAgICBieQogICAgICAgIGFuZHJlYXMKICAgICAgICA6CiAgICAgICAgWzEuNF0gCiAgICAgICAgICAgIGZpeGVkIGNvcmUgcmVzb3VyY2UgcGlwZWxpbmVzIGFuZCBtb3ZlZCB0aGVtIHRvIGxlbnlhLnhtYXAKIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjQgYWRkPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuNCBhZGQKICAgICAgICBieQogICAgICAgIGFuZHJlYXMKICAgICAgICA6CiAgICAgICAgWzEuNF0gCiAgICAgICAgICAgIG1vdmVkIG1lbnUgcmVzb3VyY2VzIG9uZSBkaXJlY3RvcnkgdXAKIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjQgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuNCB1cGRhdGUKICAgICAgICBieQogICAgICAgIG1pY2hpCiAgICAgICAgOgogICAgICAgIFsxLjRdIAogICAgICAgICAgICBpbnNlcnQtYmVmb3JlIG9mIHNlbGVjdC9vcHRpb24gYWRkZWQKIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjQgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuNCB1cGRhdGUKICAgICAgICBieQogICAgICAgIGdyZWdvcgogICAgICAgIDoKICAgICAgICBbMS40XSAKICAgICAgICAgICAgbm90IHdlbGwgZm9ybWVkCiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS40IHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjQgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBtaWNoaQogICAgICAgIDoKICAgICAgICBbMS40XSAKICAgICAgICAgICAgU2VhcmNoIGxpbmsgYWRkZWQKIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjQgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuNCB1cGRhdGUKICAgICAgICBieQogICAgICAgIGdyZWdvcgogICAgICAgIDoKICAgICAgICBbMS40XSAKICAgICAgICAgICAgdW5uZWNlc3NhcnkgZXJyb3IgbG9nZ2luZwogRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuNCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS40IHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgbWljaGkKICAgICAgICA6CiAgICAgICAgWzEuNF0gCiAgICAgICAgICAgIGIgcmVwbGFjZWQgYnkgc3Ryb25nIGFuZCBpIHJlcGxhY2VkIGJ5IGVtCiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS40IHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjQgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBtaWNoaQogICAgICAgIDoKICAgICAgICBbMS40XSAKICAgICAgICAgICAgaGlkaW5nIG5hbWVzcGFjZXMgZHVyaW5nIGVkaXRpbmcgLi4uCiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS40IHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjQgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBhbmRyZWFzCiAgICAgICAgOgogICAgICAgIFsxLjRdIAogICAgICAgICAgICByZWxvYWRpbmcgQUMgaXRlbXMgd2hlbiB0aGUgZmlsZXMgaGF2ZSBjaGFuZ2VkCiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS40IHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjQgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBhbmRyZWFzCiAgICAgICAgOgogICAgICAgIFsxLjRdIAogICAgICAgICAgICBhZGRlZCBzb21lIGlzRGVidWdFbmFibGVkKCkgY2hlY2tzCiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS40IHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjQgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBncmVnb3IKICAgICAgICA6CiAgICAgICAgWzEuNF0gCiAgICAgICAgICAgIGltcHJvdmVkIGVudHJ5IGNzcyBmcm9tIGRhbGUgY2hyaXN0LgoKIzI4MTE0CiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS40IGFkZDwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjQgYWRkCiAgICAgICAgYnkKICAgICAgICBtaWNoaQogICAgICAgIDoKICAgICAgICBbMS40XSAKICAgICAgICAgICAgaGlkaW5nIG5hbWVzcGFjZXMKIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjQgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuNCB1cGRhdGUKICAgICAgICBieQogICAgICAgIGdyZWdvcgogICAgICAgIDoKICAgICAgICBbMS40XSAKICAgICAgICAgICAgdXNlIGNvcnJlY3QgbGVueWEgbGlua3MgdG8gZW5hYmxlIGxpbmsgcmV3cml0aW5nLgogRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuNCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS40IHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgZ3JlZ29yCiAgICAgICAgOgogICAgICAgIFsxLjRdIAogICAgICAgICAgICB1cGRhdGVkIGxlbnlhIHN0YXJ0IHBhZ2UKIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjQgcmVtb3ZlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuNCByZW1vdmUKICAgICAgICBieQogICAgICAgIGdyZWdvcgogICAgICAgIDoKICAgICAgICBbMS40XSAKICAgICAgICAgICAgZXBveiBpcyBub3cga3VwdQogRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuNCBhZGQ8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS40IGFkZAogICAgICAgIGJ5CiAgICAgICAgZ3JlZ29yCiAgICAgICAgOgogICAgICAgIFsxLjRdIAogICAgICAgICAgICBzaG91bGRudCBoYXZlIGRlbGV0ZWQgdGhpcyBzaXRlbWFwLi4KIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjQgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuNCB1cGRhdGUKICAgICAgICBieQogICAgICAgIGFuZHJlYXMKICAgICAgICA6CiAgICAgICAgWzEuNF0gCiAgICAgICAgICAgIGZpeGVkIGxlbnlhOm1ldGEgcG9zaXRpb25pbmcgYnVnClNvcnJ5LCB0aGFua3MgTWljaGkgZm9yIHRoZSBGSVhNRQogRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuNCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS40IHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgYW5kcmVhcwogICAgICAgIDoKICAgICAgICBbMS40XSAKICAgICAgICAgICAgYWRkZWQgZ2V0Q2hpbGRyZW4oRWxlbWVudCkgd2l0aG91dCBuYW1lc3BhY2UgY2hlY2sKIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjQgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuNCB1cGRhdGUKICAgICAgICBieQogICAgICAgIGdyZWdvcgogICAgICAgIDoKICAgICAgICBbMS40XSAKICAgICAgICAgICAgUkVWRVJUIGFkZGl0aW9uIG9mIGkxOG4gdHJhbnNmb3JtZXIgYmVjYXVzZSBvZiByZXNvbHZlciBpc3N1ZXMuIHNlZSBzb3VyY2UgZm9yIGRldGFpbHMuCiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS40IHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjQgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBncmVnb3IKICAgICAgICA6CiAgICAgICAgWzEuNF0gCiAgICAgICAgICAgIGNyZWRpdHMgdXBkYXRlZCwgY29udHJpYnV0b3JzIGFkZGVkLCByZWZvcm1hdHRlZC4KIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjQgYWRkPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuNCBhZGQKICAgICAgICBieQogICAgICAgIHJva3UKICAgICAgICA6CiAgICAgICAgWzEuNF0gCiAgICAgICAgICAgIEFkZGVkIGl0YWxpYW4gdHJhbnNsYXRpb24gZm9yIGNtcyB1aS4KVGhhbmtzIHRvIEdpYW1wYW9sbyBUcmFwYXNzbyBmb3IgdGhpcyBjb250cmlidXRpb24uCiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS40IHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjQgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBncmVnb3IKICAgICAgICA6CiAgICAgICAgWzEuNF0gCiAgICAgICAgICAgIHJlbW92ZWQgbGVnYWN5IGluaXRBcnRpY2xlKCkgY2hlY2suIHRoZSBmdW5jdGlvbiB3YXMgbm90IGV2ZW4gZGVmaW5lZC4uCiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS40IHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjQgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBncmVnb3IKICAgICAgICA6CiAgICAgICAgWzEuNF0gCiAgICAgICAgICAgIGFkZCBzdHJpcF9uYW1lc3BhY2VzIHRyYW5zZm9ybSBzdGVwIHRvIGJlZm9yZSBhbGwgKHgpaHRtbCBzZXJpYWxpemF0aW9ucy4KCnRoaXMgc2hvdWxkIGZpeCB0aGUgaXNzdWVzIHdpdGggc3RyYXkgbmFtZXNwYWNlcyBzaG93aW5nIHVwIGluIHRoZSBmaW5hbCBvdXRwdXQuCiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS40IHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjQgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBncmVnb3IKICAgICAgICA6CiAgICAgICAgWzEuNF0gCiAgICAgICAgICAgIGhlbGxvPyBpIC0mZ3Q7IGVtLCBvciB0aGVzZSB3aWxsIG5ldmVyIGJlIHZhbGlkIHhodG1sIHN0cmljdAogRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuNCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS40IHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgZ3JlZ29yCiAgICAgICAgOgogICAgICAgIFsxLjRdIAogICAgICAgICAgICBoZWxsbz8gYiAtJmd0OyBzdHJvbmcsIG9yIHRoZXNlIHdpbGwgbmV2ZXIgYmUgdmFsaWQgeGh0bWwgc3RyaWN0CiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS40IHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjQgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBncmVnb3IKICAgICAgICA6CiAgICAgICAgWzEuNF0gCiAgICAgICAgICAgIGVwb3ogLSZndDsga3VwdQogRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuNCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS40IHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgbWljaGkKICAgICAgICA6CiAgICAgICAgWzEuNF0gCiAgICAgICAgICAgIEZJWE1FIGFkZGVkCiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS40IHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjQgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBtaWNoaQogICAgICAgIDoKICAgICAgICBbMS40XSAKICAgICAgICAgICAgY29weWluZyBvZiB0b29scy5qYXIgcmVtb3ZlZAogRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuNCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS40IHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgYW5kcmVhcwogICAgICAgIDoKICAgICAgICBbMS40XSAKICAgICAgICAgICAgZml4ZWQgbGVueWE6bWV0YSBwb3NpdGlvbmluZyBidWcKIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjQgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuNCB1cGRhdGUKICAgICAgICBieQogICAgICAgIGFuZHJlYXMKICAgICAgICA6CiAgICAgICAgWzEuNF0gCiAgICAgICAgICAgIHJlbG9hZGluZyBzaXRldHJlZSBpZiBzdGFsZQogRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuNCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS40IHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgYW5kcmVhcwogICAgICAgIDoKICAgICAgICBbMS40XSAKICAgICAgICAgICAgc3RhcnRpbmcgd2l0aCBTaXRldHJlZSByZWxvYWRpbmcKIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjQgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuNCB1cGRhdGUKICAgICAgICBieQogICAgICAgIG1pY2hpCiAgICAgICAgOgogICAgICAgIFsxLjRdIAogICAgICAgICAgICB1bm5jZXNzYXJ5IGxpc3QgcmVtb3ZlZAogRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuNCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS40IHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgZ3JlZ29yCiAgICAgICAgOgogICAgICAgIFsxLjRdIAogICAgICAgICAgICBKZWFuIFBpZXJyZSBMZUphY3EgOiBMZW55YSBidWlsZCBwcm9jZXNzIGZpeGVzIGxvY2F0aW9uIG9mIGFudHRhc2sgYnVpbGQgZGlyZWN0b3J5CgojMjg1NDAKCnRoYW5rcwogRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuNCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS40IHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgbWljaGkKICAgICAgICA6CiAgICAgICAgWzEuNF0gCiAgICAgICAgICAgIGNyYXdsIHRhcmdldCByZW1vdmVkCiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS40IHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjQgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBtaWNoaQogICAgICAgIDoKICAgICAgICBbMS40XSAKICAgICAgICAgICAgY3Jhd2wgaXMgbm93IGV4ZWN1dGVkIGJ5IGFudCBkaXJlY3RseQogRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuNCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS40IHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgbWljaGkKICAgICAgICA6CiAgICAgICAgWzEuNF0gCiAgICAgICAgICAgIGluZGV4IHRhcmdldCBpcyBvYnNvbGV0ZQogRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuNCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS40IHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgbWljaGkKICAgICAgICA6CiAgICAgICAgWzEuNF0gCiAgICAgICAgICAgIGluZGV4aW5nIHZpYSBhbnQgaW5zdGVhZCBvZiBzaGVsbCBzY3JpcHQKIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjQgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuNCB1cGRhdGUKICAgICAgICBieQogICAgICAgIGdyZWdvcgogICAgICAgIDoKICAgICAgICBbMS40XSAKICAgICAgICAgICAgcm5nIHBuZyBhbmQgeHNsIGZpbGVzIG5vdyBhbHNvIGJ5cGFzcyB0aGUgYWNjZXNzIGNvbnRyb2wuIHRoaXMgYWxsb3dzIGVkaXRpbmcgdG8gd29yayBmb3IgcmVzdHJpY3RlZCB1c2VycwogRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuNCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS40IHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgYW5kcmVhcwogICAgICAgIDoKICAgICAgICBbMS40XSAKICAgICAgICAgICAgaW1wcm92ZWQgZXJyb3IgbWVzc2FnZQogRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuNCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS40IHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgZ3JlZ29yCiAgICAgICAgOgogICAgICAgIFsxLjRdIAogICAgICAgICAgICBkaXNhYmxlLW91dHB1dC1lc2NhcGluZyBpcyBub3QgYWxsb3dlZCBvbiB4c2w6c3R5bGVzaGVldAogRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuNCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS40IHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgbWljaGkKICAgICAgICA6CiAgICAgICAgWzEuNF0gCiAgICAgICAgICAgIFVSTHMgZml4ZWQKIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjQgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuNCB1cGRhdGUKICAgICAgICBieQogICAgICAgIGdyZWdvcgogICAgICAgIDoKICAgICAgICBbMS40XSAKICAgICAgICAgICAgZ28gZmlndXJlLCB4aHRtbCBzZXJpYWxpemVyIGVzY2FwZXMgdGhpbmdzIGluIGNkYXRhLCBodG1sIGRvZXNudC4gdGhpcyBicm9rZSBqYXZhc2NyaXB0IGZvciBpbWFnZSB1cGxvYWQKIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjQgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuNCB1cGRhdGUKICAgICAgICBieQogICAgICAgIG1pY2hpCiAgICAgICAgOgogICAgICAgIFsxLjRdIAogICAgICAgICAgICBlbWJlZCByZXBsYWNlZCBieSByZXBsYWNlCiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS40IHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjQgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBtaWNoaQogICAgICAgIDoKICAgICAgICBbMS40XSAKICAgICAgICAgICAgcmVwbGFjZSwgZW1iZWQgYW5kIGVuY2xvc2UgYnVnIGZpeGVkCiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS40IHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjQgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICByb2t1CiAgICAgICAgOgogICAgICAgIFsxLjRdIAogICAgICAgICAgICBBZGRlZCBwb3NzaWJpbGl0eSB0byBzcGVjaWZ5ICZsdDtub2RlIEB2aXNpYmxlPSJ0cnVlfGZhbHNlIiZndDsgaW4gb3JkZXIgdG8gaGlkZSBhIHBhZ2UgZnJvbSBzaXRldHJlZS4KRGVmYXVsdCBpcyBhc3N1bWVkICJ0cnVlIiBpZiBAdmlzaWJsZSBpcyBub3Qgc3BlY2lmaWVkLgogRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuNCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS40IHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgZ3JlZ29yCiAgICAgICAgOgogICAgICAgIFsxLjRdIAogICAgICAgICAgICBwcm90ZWN0IGluc2VydCBucyBmcm9tIHN0cmlwX25hbWVzcGFjZXMgc3R5bGVzaGVldC4gdGhpcyBicm9rZSB0aGUgbGluayBwb3B1cAogRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuNCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS40IHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgZ3JlZ29yCiAgICAgICAgOgogICAgICAgIFsxLjRdIAogICAgICAgICAgICBpbXBvcnQgd2FzIHBvaW50aW5nIGludG8gbmlydmFuYQogRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuNCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS40IHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgcm9rdQogICAgICAgIDoKICAgICAgICBbMS40XSAKICAgICAgICAgICAgRXBvei0mZ3Q7S3VwdQogRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuNCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS40IHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgZ3JlZ29yCiAgICAgICAgOgogICAgICAgIFsxLjRdIAogICAgICAgICAgICBleGNsdWRlIGkxOG4KIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjQgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuNCB1cGRhdGUKICAgICAgICBieQogICAgICAgIGdyZWdvcgogICAgICAgIDoKICAgICAgICBbMS40XSAKICAgICAgICAgICAgYWxsb3cgb3ZlcnJpZGluZyBvZiBkb2N1bWVudC1pZAoKVUdMWQogRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuNCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS40IHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgZ3JlZ29yCiAgICAgICAgOgogICAgICAgIFsxLjRdIAogICAgICAgICAgICBzdHJhbmdlbHksICZsdDtzY3JpcHQvJmd0OyB3YXMgdHVybmVkIGludG8gJmx0O3NjcmlwdCZndDsgaW4geGh0bWwgd2hpY2ggYnJva2UgdGhlIHJlbmRlcmluZy4KY2hhbmdlZCB0byAmbHQ7c2NyaXB0Jmd0OyAmbHQ7L3NjcmlwdCZndDsuIHN0aWxsIGEgbG90IG9mIGNoYW5nZXMgbmVlZGVkIGJlZm9yZSB3ZSBjYW4gZmluYWxseSBzd2l0Y2ggdG8geGh0bWwKaW4gdGhlIGF1dGhvcmluZyBhcmVhLiBmb3IgaW5zdGFuY2UsICB0aGUgd2hvbGUgJmx0O3RkIGJhY2tncm91bmQ9IGJ1c2luZXNzIGlzIGJyb2tlbiBpbiB4aHRtbC4KIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjQgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuNCB1cGRhdGUKICAgICAgICBieQogICAgICAgIHJva3UKICAgICAgICA6CiAgICAgICAgWzEuNF0gCiAgICAgICAgICAgIFJldmVydGluZyB0byBpc28tKiBlbmNvZGluZyBzaW5jZSB1dGYtOCBicm9rZSB0aGUgZm9ybXMgZWRpdG9yLgpBbm5veWluZy4KIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjQgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuNCB1cGRhdGUKICAgICAgICBieQogICAgICAgIHJva3UKICAgICAgICA6CiAgICAgICAgWzEuNF0gCiAgICAgICAgICAgIC0gVXBkYXRlZCBmcmVuY2ggdHJhbnNsYXRpb24gc2VuZCBieSBPbGl2aWVyIExhbmdlCi0gUmVtb3ZlZCBlbnRpdGllcyBmcm9tIGdlcm1hbiBhbmQgZnJlbmNoIHRyYW5zbGF0aW9uCiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS40IHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjQgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICByb2t1CiAgICAgICAgOgogICAgICAgIFsxLjRdIAogICAgICAgICAgICBGaXhlZCBjb21tZW50cwogRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuNCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS40IHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgcm9rdQogICAgICAgIDoKICAgICAgICBbMS40XSAKICAgICAgICAgICAgVXBkYXRlZCBhbmQgYWRkZWQgcHViIHNwZWNpZmljIHRyYW5zbGF0aW9uLgpUaGFua3MgdG8gSm9zZSBDaGFzbyBmb3IgdGhpcyBjb250cmlidXRpb24uCiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS40IHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjQgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBhbmRyZWFzCiAgICAgICAgOgogICAgICAgIFsxLjRdIAogICAgICAgICAgICByZXN0b3JlZCBDb2Nvb24gMi4xLjQgY29tcGF0aWJpbGl0eQogRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuNCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS40IHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgcm9rdQogICAgICAgIDoKICAgICAgICBbMS40XSAKICAgICAgICAgICAgQWRkZWQgZGVmLiBvZiBpbml0LXBhcmFtIGZvcm0tZW5jb2RpbmcuIEkgc2V0IGl0IHRvIHV0Zi04LgpPdGhlcndpc2UgSSBoYWQgbWFueSBwcm9ibGVtcyB1c2luZyBmb3JtcyB3aXRoIHNwZWNpYWwgY2hhcnMgaW4uClRyYXBvIGhhZCB0aGF0IHByb2JsZW0gLCB0b28uClNvLCBpZiB0aGlzIGNobmFnZSBjYXVzZXMgYW55IHByb2JsZW1zLCB3ZSBuZWVkIHRvIHJldmVydCB0aGlzIGZpeC4KIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjQgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuNCB1cGRhdGUKICAgICAgICBieQogICAgICAgIGdyZWdvcgogICAgICAgIDoKICAgICAgICBbMS40XSAKICAgICAgICAgICAgZml4IHN0cmF5IG5hbWVzcGFjZXMgaW4gYXNzZXQgLyBpbWFnZSB1cGxvYWQgc2NyZWVucyB0aGF0IGJyb2tlIHRoZSBqYXZhc2NyaXB0IGNvZGUKYXBwbHkgaTE4biB0byBpbWFnZSB1cGxvYWQgc2NyZWVuCiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS40IHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjQgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICByb2t1CiAgICAgICAgOgogICAgICAgIFsxLjRdIAogICAgICAgICAgICBSZW1vdmVkIGhpbnQgdG8gb3BlIGFub3RoZXIgYnJvd3NlciB3aW5kb3cgdXNpbmcgQHRhcmdldCBzaW5jZSB0aGF0IGF0dHJpYnV0ZSBpcyBvdCBhbGxvd2VkIGluIHhodG1sIHN0cmljdCAuCiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS40IHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjQgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBhbmRyZWFzCiAgICAgICAgOgogICAgICAgIFsxLjRdIAogICAgICAgICAgICBhZGRlZCBzb21lIGphdmFkb2NzCiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS40IGFkZDwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjQgYWRkCiAgICAgICAgYnkKICAgICAgICBhbmRyZWFzCiAgICAgICAgOgogICAgICAgIFsxLjRdIAogICAgICAgICAgICBhZGRlZCBSZXNvdXJjZUV4aXN0c01vZHVsZQogRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuNCBhZGQ8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS40IGFkZAogICAgICAgIGJ5CiAgICAgICAgZ3JlZ29yCiAgICAgICAgOgogICAgICAgIFsxLjRdIAogICAgICAgICAgICBzdHJpcCBuYW1lc3BhY2VzIHV0aWxpdHkgeHNsdAogRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuNCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS40IHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgbWljaGkKICAgICAgICA6CiAgICAgICAgWzEuNF0gCiAgICAgICAgICAgIHd5b25hLmNvbSByZXBsYWNlZCBieSBhcGFjaGUub3JnCiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS40IHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjQgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBhbmRyZWFzCiAgICAgICAgOgogICAgICAgIFsxLjRdIAogICAgICAgICAgICAtIGNvZGUgc3R5bGUgZml4ZXMKLSBhZGRlZCBtZXRob2QKIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjQgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuNCB1cGRhdGUKICAgICAgICBieQogICAgICAgIGFuZHJlYXMKICAgICAgICA6CiAgICAgICAgWzEuNF0gCiAgICAgICAgICAgIHJlcGxhY2VkIGlubGluZSBzdHJpbmdzIGJ5IGNvbnN0YW50cwogRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuNCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS40IHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgYW5kcmVhcwogICAgICAgIDoKICAgICAgICBbMS40XSAKICAgICAgICAgICAgYWRkZWQgcGVuZGluZyBhcmVhIHRvIGFyZWFzIGxpc3QKIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjQgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuNCB1cGRhdGUKICAgICAgICBieQogICAgICAgIGFuZHJlYXMKICAgICAgICA6CiAgICAgICAgWzEuNF0gCiAgICAgICAgICAgIGNvZGUgZm9ybWF0dGluZwogRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuNCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS40IHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgbWljaGkKICAgICAgICA6CiAgICAgICAgWzEuNF0gCiAgICAgICAgICAgIEluZGV4SXRlcmF0b3IgYWRkZWQKIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjQgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuNCB1cGRhdGUKICAgICAgICBieQogICAgICAgIG1pY2hpCiAgICAgICAgOgogICAgICAgIFsxLjRdIAogICAgICAgICAgICBzb3J0aW5nIG9mIGZpbGVzIGlzIG9wdGlvbmFsCiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS40IHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjQgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICByb2t1CiAgICAgICAgOgogICAgICAgIFsxLjRdIAogICAgICAgICAgICBBZGRlZCB0cmFuc2xhdGlvbnMuIEFnYWluIHRoYW5rcyB0byBPbGl2aWVyIGxhbmdlLgogRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuNCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS40IHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgZWdsaQogICAgICAgIDoKICAgICAgICBbMS40XSAKICAgICAgICAgICAgUmV2ZXJ0ZWQgZWRpdGhzIGNoYW5nZXMgYXMgdGhleSBicm9rZSBhIG51bWJlciBvZiBwdWJzLgogRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuNCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS40IHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgbWljaGkKICAgICAgICA6CiAgICAgICAgWzEuNF0gCiAgICAgICAgICAgIG1ha2Ugc2hlbGwgc2NyaXB0IGV4ZWN1dGFibGUKIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjQgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuNCB1cGRhdGUKICAgICAgICBieQogICAgICAgIG1pY2hpCiAgICAgICAgOgogICAgICAgIFsxLjRdIAogICAgICAgICAgICBSb2xmIGFkZGVkIHRvIGNyZWRpdHMgcGFnZQogRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuNCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS40IHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgcm9rdQogICAgICAgIDoKICAgICAgICBbMS40XSAKICAgICAgICAgICAgRG8gdGhlIHNwZWNpYWwgY2hhcmFjdGVyIHJlYWxseSBub3Qgd29yaz8KVGhleSB3b3JrIGluIHRoZSBnbG9iYWwgZmlsZSwgYXQgbGVhc3QgZm9yIHRoZSBmcmVuY2ggdHJhbnNsYXRpb24uClRoaXMgaXMgYSB0ZXN0IGNoZWNraW4KIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjQgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuNCB1cGRhdGUKICAgICAgICBieQogICAgICAgIHJva3UKICAgICAgICA6CiAgICAgICAgWzEuNF0gCiAgICAgICAgICAgIEZpeGVkIGEgc3BlY2lhbCBjaGFyYWN0ZXIgdXNpbmcgZW50aXR5IHNpbmNlIGN2cyBzY3Jld3MgdGhpcyB1cC4KIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjQgYWRkPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuNCBhZGQKICAgICAgICBieQogICAgICAgIHJva3UKICAgICAgICA6CiAgICAgICAgWzEuNF0gCiAgICAgICAgICAgIC0gQWRkZWQgZnJlbmNoIGRpY3QgZmlsZSBmcm8gZGVmYXVsdCBwdWIKLSBNb3ZlZCBnbG9iYWwga2V5cyB0byBwdWIgbG9jYWwKIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjQgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuNCB1cGRhdGUKICAgICAgICBieQogICAgICAgIHJva3UKICAgICAgICA6CiAgICAgICAgWzEuNF0gCiAgICAgICAgICAgIEZpeGVkIGkxOG4ga2V5ICJOZXcgZG9jdW1lbnQiLiBJcyBub3cgIk5ldyBEb2N1bWVudCIuCldhcyByZXBvcnRlZCBieSBPbGl2aWVyIExhbmdlLgogRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuNCBhZGQ8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS40IGFkZAogICAgICAgIGJ5CiAgICAgICAgcm9rdQogICAgICAgIDoKICAgICAgICBbMS40XSAKICAgICAgICAgICAgVGhhbmtzIHRvIE9saXZpZXIgTGFuZ2UgZm9yIHRoZSBmcmVuY2ggdHJhbnNsYXRpb24gYW5kIGhpcyB1c2VmdWwgY29tbWVudHMuCiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS40IHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjQgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBqb2VyZwogICAgICAgIDoKICAgICAgICBbMS40XSAKICAgICAgICAgICAgZml4ZWQgamF2YWRvY3MKIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjQgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuNCB1cGRhdGUKICAgICAgICBieQogICAgICAgIGFuZHJlYXMKICAgICAgICA6CiAgICAgICAgWzEuNF0gCiAgICAgICAgICAgIGV4dHJhY3RlZCBtZXRob2QgdG8gY2FsY3VsYXRlIGhyZWYgYXR0cmlidXRlcwogRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuNCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS40IHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgYW5kcmVhcwogICAgICAgIDoKICAgICAgICBbMS40XSAKICAgICAgICAgICAgdXNpbmcgY29uc3RhbnQgZm9yIFhMaW5rIG5hbWVzcGFjZSBVUkkKIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjQgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuNCB1cGRhdGUKICAgICAgICBieQogICAgICAgIGVkaXRoCiAgICAgICAgOgogICAgICAgIFsxLjRdIAogICAgICAgICAgICBzZXQgcGlwZWxpbmUgZm9yIHRoZSBzaGFyZSBjc3MgYW5kIGltYWdlcyBpbiB0aGUgZ2xvYmFsc2l0ZW1hcAogRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuNCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS40IHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgZ3JlZ29yCiAgICAgICAgOgogICAgICAgIFsxLjRdIAogICAgICAgICAgICBtYWtlIGxhbmd1YWdlIHN3aXRjaGluZyBpbiBpbnNlcnQgbGluayBwb3B1cCB3b3JrCnBhc3MgZGVmYXVsdCBsYW5ndWFnZSB0byBpbnNlcnQgbGluayBwb3B1cAogRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuNCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS40IHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgZ3JlZ29yCiAgICAgICAgOgogICAgICAgIFsxLjRdIAogICAgICAgICAgICBzdGFydCBzaXRldHJlZSBjbG9zZWQgaW4gaW5zZXJ0IGxpbmsgc2NyZWVuCiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS40IHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjQgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBncmVnb3IKICAgICAgICA6CiAgICAgICAgWzEuNF0gCiAgICAgICAgICAgIHNpdGV0cmVlIHdhcyBubyBsb25nZXIgdmlzaWJsZSBpbiBpbnNlcnQgbGluayBzY3JlZW4KIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjQgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuNCB1cGRhdGUKICAgICAgICBieQogICAgICAgIGFuZHJlYXMKICAgICAgICA6CiAgICAgICAgWzEuNF0gCiAgICAgICAgICAgIGNvZGUgZm9ybWF0dGluZwogRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuNCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS40IHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgZ3JlZ29yCiAgICAgICAgOgogICAgICAgIFsxLjRdIAogICAgICAgICAgICBmaXggZG9jdW1lbnRhdGlvbiBsaW5rICMyODM0OAogRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0ICB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+IHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgCiAgICAgICAgOgogICAgICAgIFtdIAogICAgICAgICAgICBUaGlzIGNvbW1pdCB3YXMgbWFudWZhY3R1cmVkIGJ5IGN2czJzdm4gdG8gY3JlYXRlIHRhZwonUkVMRUFTRV8xXzJfUkNfMycuIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjQgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuNCB1cGRhdGUKICAgICAgICBieQogICAgICAgIGdyZWdvcgogICAgICAgIDoKICAgICAgICBbMS40XSAKICAgICAgICAgICAgc2V0IHB1YmxpY2F0aW9uIHZlcnNpb25zIHRvIDEuMAogRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuNCBhZGQ8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS40IGFkZAogICAgICAgIGJ5CiAgICAgICAgZ3JlZ29yCiAgICAgICAgOgogICAgICAgIFsxLjRdIAogICAgICAgICAgICBsb2c0aiB3YXMgcmVtb3ZlZCBmcm9tIHVwc3RyZWFtIGNvY29vbgogRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuNCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS40IHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgYW5kcmVhcwogICAgICAgIDoKICAgICAgICBbMS40XSAKICAgICAgICAgICAgcmVzdG9yZWQgYmFja3dhcmRzIGNvbXBhdGliaWxpdHkKIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjQgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuNCB1cGRhdGUKICAgICAgICBieQogICAgICAgIGFuZHJlYXMKICAgICAgICA6CiAgICAgICAgWzEuNF0gCiAgICAgICAgICAgIC0gYWRkZWQgamF2YWZsb3cgYmxvY2sKLSBjaGFuZ2VkIHN5bnRheCBmcm9tIGV4Y2x1ZGUgdG8gaW5jbHVkZQogRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuNCByZW1vdmU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS40IHJlbW92ZQogICAgICAgIGJ5CiAgICAgICAgbWljaGkKICAgICAgICA6CiAgICAgICAgWzEuNF0gCiAgICAgICAgICAgIHJlbmFtZWQKIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjQgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuNCB1cGRhdGUKICAgICAgICBieQogICAgICAgIG1pY2hpCiAgICAgICAgOgogICAgICAgIFsxLjRdIAogICAgICAgICAgICBQZW5kaW5nIGFyZWEgYWRkZWQgZm9yIHJlcGxpY2F0aW9uIG9mIGNvbnRlbnQgdG8gb3RoZXIgc2VydmVycwogRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuNCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS40IHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgZ3JlZ29yCiAgICAgICAgOgogICAgICAgIFsxLjRdIAogICAgICAgICAgICBmb3Jnb3QgbGFuZ3VhZ2UgZXh0ZW5zaW9uIGFuZCAiaHRtbCIgZm9yIHNvbWUgc3NsIHJld3JpdGVzIDopCiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS40IHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjQgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBncmVnb3IKICAgICAgICA6CiAgICAgICAgWzEuNF0gCiAgICAgICAgICAgIGZpeCBsZGFwIGV4Y2VwdGlvbi4gd2FzIGR1ZSB0byBqYXZhc2NyaXB0IGJlaW5nIHF1aXRlIGhhcHB5IHdpdGggYXJiaXRyYXJ5IG51bWJlciBvZiBhcmd1bWVudHMuLiBncnIKCldIRVJFIElTIE1ZIEdST09WWSBXSEVOIEkgTkVFRCBJVCEhCiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS40IHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjQgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBtaWNoaQogICAgICAgIDoKICAgICAgICBbMS40XSAKICAgICAgICAgICAgYWxsIHRoZSBwb3NzaWJsZSB2ZXJzaW9ucyBhZGRlZAogRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuNCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS40IHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgbWljaGkKICAgICAgICA6CiAgICAgICAgWzEuNF0gCiAgICAgICAgICAgIGNvY29vbiwgbGVueWEgYW5kIHB1YmxpY2F0aW9uIHZlcnNpb24gYWRkZWQgcmVzcCBkaWZmZXJlbnRpYXRlZAogRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuNCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS40IHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgbWljaGkKICAgICAgICA6CiAgICAgICAgWzEuNF0gCiAgICAgICAgICAgIGJpbiBhZGRlZCB0byBjb3JyZXNwb25kaW5nIHRhcmdldCBuYW1lcyBzdWNoIHRoYXQgaXQgaXMgY29uc2lzdGVudCB3aXRoIHNyYwogRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuNCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS40IHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgZ3JlZ29yCiAgICAgICAgOgogICAgICAgIFsxLjRdIAogICAgICAgICAgICB3YXNuJ3Qgd2VsbC1mb3JtZWQKIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjQgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuNCB1cGRhdGUKICAgICAgICBieQogICAgICAgIGdyZWdvcgogICAgICAgIDoKICAgICAgICBbMS40XSAKICAgICAgICAgICAgZW5hYmxlICJtb3VudGluZyIgb2YgbGl2ZSBzaXRlIHVuZGVyIHNwZWNpZmllZCB1cmwuCgppZiB5b3UgZW5hYmxlIHRoZSBsaXZlLW1vdW50LXBvaW50IGluIHlvdXIgcHVibGljYXRpb24ueGNvbmYsIHB1YmxpY2F0aW9ucyAKdXNpbmcgdGhlIHNpbXBsZUxpbmtSZXdyaXRpbmdUcmFuc2Zvcm1lciB3aWxsIHJld3JpdGUgdXJscyBvZiB0aGUgZm9ybQovbGVueWEvcHVibGljYXRpb24vYXV0aG9yaW5nL2RvY3VtZW50aWQgdG8KL2xpdmVtb3VudHBvaW50L2RvY3VtZW50aWQKIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjQgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuNCB1cGRhdGUKICAgICAgICBieQogICAgICAgIHJva3UKICAgICAgICA6CiAgICAgICAgWzEuNF0gCiAgICAgICAgICAgIEZvcm1hdHRpbmcuCiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS40IHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjQgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICByb2t1CiAgICAgICAgOgogICAgICAgIFsxLjRdIAogICAgICAgICAgICBGaXhlZCBvbGQgRXBveiBjb21tZW50LgogRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuNCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS40IHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgcm9rdQogICAgICAgIDoKICAgICAgICBbMS40XSAKICAgICAgICAgICAgRm9ybWF0dGluZy4KIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjQgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuNCB1cGRhdGUKICAgICAgICBieQogICAgICAgIHJva3UKICAgICAgICA6CiAgICAgICAgWzEuNF0gCiAgICAgICAgICAgIGkxOG4gZW5oYW5jZW1lbnRzIGZvciBBQyBpbmZvIHNjcmVlbi90YWIuCldlIHNob3VsZCBoYXZlIGkxOG4nZWQgJmd0Oz0gOTUlIG9mIHRleHRzIG5vdy4KIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjQgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuNCB1cGRhdGUKICAgICAgICBieQogICAgICAgIG1pY2hpCiAgICAgICAgOgogICAgICAgIFsxLjRdIAogICAgICAgICAgICBpbXBvcnQgc3RhdGVtZW50cyBhZGRlZAogRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuNCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS40IHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgbWljaGkKICAgICAgICA6CiAgICAgICAgWzEuNF0gCiAgICAgICAgICAgIGx1Y2VuZSBjb25maWd1cmF0aW9uIGRvY3VtZW50ZWQKIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjQgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuNCB1cGRhdGUKICAgICAgICBieQogICAgICAgIG1pY2hpCiAgICAgICAgOgogICAgICAgIFsxLjRdIAogICAgICAgICAgICBpbmRleGVyIGluZm8gYWRkZWQKIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjQgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuNCB1cGRhdGUKICAgICAgICBieQogICAgICAgIG1pY2hpCiAgICAgICAgOgogICAgICAgIFsxLjRdIAogICAgICAgICAgICBjb25maWd1cmFibGUgZmlsdGVyIHRvIGNvbmZpZ3VyYWJsZSBpbmRleGVyIGFkZGVkCiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS40IHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjQgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICByb2t1CiAgICAgICAgOgogICAgICAgIFsxLjRdIAogICAgICAgICAgICBBZGRkZWQgaTE4biBmb3IgUm9sZSBsaXN0IGJveCBpbiBhYyBpbmZvIHNjcmVlbi90YWIKIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjQgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuNCB1cGRhdGUKICAgICAgICBieQogICAgICAgIGdyZWdvcgogICAgICAgIDoKICAgICAgICBbMS40XSAKICAgICAgICAgICAgQVNMIDIuMAogRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuNCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS40IHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgZ3JlZ29yCiAgICAgICAgOgogICAgICAgIFsxLjRdIAogICAgICAgICAgICB2YXJpb3VzIGltcHJvdmVtZW50cyB0byB0aGUgaW5zdGFsbGVyOgoKKiBjaGVja3MgZm9yIGluc3RhbGxlZCBKVk0KKiByZXRhaW5zIGJ1aWxkLnhtbAoqIGZpeCBmb3IgIzI2OTU3IChubyBtZW51IGl0ZW1zIGluc3RhbGxlZCkKKiBzaG93IEFTTCAyLjAKIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjQgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuNCB1cGRhdGUKICAgICAgICBieQogICAgICAgIHJva3UKICAgICAgICA6CiAgICAgICAgWzEuNF0gCiAgICAgICAgICAgIFNtYWxsIGkxOG4gZml4ZXMgb2Ygd29ya2Zsb3cgaW5mbyBzY3JlZW4vdGFiLgogRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuNCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS40IHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgcm9rdQogICAgICAgIDoKICAgICAgICBbMS40XSAKICAgICAgICAgICAgU21hbGwgaTE4biBmaXhlcyBvZiB3b3JrZmxvdyBpbmZvIHNjcmVlbi90YWIuCiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS40IHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjQgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBncmVnb3IKICAgICAgICA6CiAgICAgICAgWzEuNF0gCiAgICAgICAgICAgIElQdjYgY29tbWVudAogRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuNCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS40IHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgcm9rdQogICAgICAgIDoKICAgICAgICBbMS40XSAKICAgICAgICAgICAgR2V0dGluZyBjbG9zZXIgdG8gYSBjb21wbGV0ZSBpMThuIGFuZCB0cmFuc2xhdGlvbi4KSSBsb3ZlIHRoaXMga2luZCBvZiB3b3JrLi4ucmVhbGx5IDopCiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS40IHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjQgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICByb2t1CiAgICAgICAgOgogICAgICAgIFsxLjRdIAogICAgICAgICAgICBSZW9yZGVyZWQgYWN0aXZlIGNvbW1pdHRlcnMgbGlzdAogRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuNCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS40IHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgcm9rdQogICAgICAgIDoKICAgICAgICBbMS40XSAKICAgICAgICAgICAgSG9wZSBpdCB3YXMgb2sgdG8gYWRkIG1lIHRvIHRoZSBsaXN0IG9mIGFjdGl2ZSBjb21taXR0ZXJzLgogRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuNCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS40IHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgcm9rdQogICAgICAgIDoKICAgICAgICBbMS40XSAKICAgICAgICAgICAgQ29tcGxldGVkIGkxOG4gb2YgaW5mbyBSQyBzY3JlZW4vdGFiLgogRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuNCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS40IHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgcm9rdQogICAgICAgIDoKICAgICAgICBbMS40XSAKICAgICAgICAgICAgQ29tcGxldGVkIGkxOG4gb2YgaW5mbyBhc3NldCBzY3JlZW4vdGFiLgogRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuNCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS40IHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgcm9rdQogICAgICAgIDoKICAgICAgICBbMS40XSAKICAgICAgICAgICAgQ29tcGxldGVkIGkxOG4gb2YgaW5mbyBhc3NldCBzY3JlZW4vdGFiLgogRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuNCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS40IHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgcm9rdQogICAgICAgIDoKICAgICAgICBbMS40XSAKICAgICAgICAgICAgQ29tcGxldGVkIGkxOG4gZm9yIG1ldGEgaW5mbyBzY3Jlbm4vdGFiLgogRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuNCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS40IHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgbWljaGkKICAgICAgICA6CiAgICAgICAgWzEuNF0gCiAgICAgICAgICAgIGhvbWUuZGlyIHJlcGxhY2VkIGJ5IHdlYmFwcC5kaXIKIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjQgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuNCB1cGRhdGUKICAgICAgICBieQogICAgICAgIGdyZWdvcgogICAgICAgIDoKICAgICAgICBbMS40XSAKICAgICAgICAgICAgb29wcywgdGhlIEFTTCB0dXJucyB1cCBpbiB0aGUgZmluYWwgaHRtbCAuLiB0aGF0cyBOT1QgdGhlIGlkZWEuIHRoZSBBU0wgaXMgbm90IHN1cHBvc2VkIHRvIGJlIHZpcmFsIGFuZCBsaWNlc25lIHRoZSB1c2VyIGNvbnRlbnQgdW5kZXIgQVNMIDopCiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS40IGFkZDwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjQgYWRkCiAgICAgICAgYnkKICAgICAgICByb2t1CiAgICAgICAgOgogICAgICAgIFsxLjRdIAogICAgICAgICAgICBSZXZva2luZyB1cGRhdGUgb2YgeGFsYW4gZHVlIHRvIHdlaXJkIGJlaGF2aW9yIHVuZGVyIHNwZWNpYWwgY2lyY3Vtc3RhbmNlcy4KSmV0dHkgb25seSBsaWtlcyB4YWxhbi0yLjYuMCBpZiBub3QgcGxhY2VkIGluIGVuZG9yc2VkIGRpci4KIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjQgcmVtb3ZlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuNCByZW1vdmUKICAgICAgICBieQogICAgICAgIHJva3UKICAgICAgICA6CiAgICAgICAgWzEuNF0gCiAgICAgICAgICAgIFRoaXMgY2hlY2tpbiBzaG91bGQgZml4IGJ1ZyAyNzQ3NC4KCkNoYW5nZXM6CgouLi4KLSB1cGRhdGVkIHNoaXBwZWQgeGFsYW4gdG8gdmVyc2lvbiAyLjYuMAouLi4KIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjQgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuNCB1cGRhdGUKICAgICAgICBieQogICAgICAgIHJva3UKICAgICAgICA6CiAgICAgICAgWzEuNF0gCiAgICAgICAgICAgIFRoaXMgY2hlY2tpbiBzaG91bGQgZml4IGJ1ZyAyNzQ3NC4KCkNoYW5nZXM6CgotIGV4Y2x1ZGUgYWxsIHhhbGFuIGphcnMgZnJvbSBjb2Nvb24gd2ViYXBwIHNwYWNlIGR1cmluZyBjb3B5IHByb2Nlc3MgaW4gYnVpbGQgc2NyaXB0cwotIHVwZGF0ZWQgc2hpcHBlZCB4YWxhbiB0byB2ZXJzaW9uIDIuNi4wCi0gdXBkYXRlZCBuZWtvcHVsbCB0byB2ZXJzaW9uIDAuMi40IHdoaWNoIGZpeGVzIGFuIHhlcmNlcy0yLjYuMiBpc3N1ZSB3aXRoIHRoZSBjbGFzcyBPYmplY3RGYWN0b3J5IHdoaWNoIGhhcyBiZWVuIHJlbW92ZWQgZnJvbSB4ZXJjZXMgZHVlIHRvIHNlY3VyaXR5IGlzc3VlcwotIG1vdmVkIG5la29wdWxsIGxpYnMgZnJvbSBkb2NzLW5ldyBwdWIgdG8gZ2xvYmFsIFdFQi1JTkYvbGliCiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS40IHJlbW92ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjQgcmVtb3ZlCiAgICAgICAgYnkKICAgICAgICBlZ2xpCiAgICAgICAgOgogICAgICAgIFsxLjRdIAogICAgICAgICAgICBSZW1vdmVkIGFzIGl0IGlzIG5vdCB1c2VkIGFueXdoZXJlIGFuZCBpcyB1bmRlciBNUEwgbGljZW5zZSwgc28gaXMKcHJvYmxlbWF0aWMgdG8ga2VlcCBpbiBDVlMgYW55d2F5LiBBbHNvIHRoZXJlIGFyZSBiZXR0ZXIgdmVyc2lvbnMgb2YKdGhpcyBzdHlsZXNoZWV0IEAgd3d3Lm9wZW5vZmZpY2Uub3JnLgogRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuNCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS40IHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgZ3JlZ29yCiAgICAgICAgOgogICAgICAgIFsxLjRdIAogICAgICAgICAgICBtYWtlIHN1cmUgdGhlIHNjaGVkdWxlciBkZWZhdWx0IHRpbWUgaXMgaW4gdGhlIGZ1dHVyZSA6KQogRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuNCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS40IHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgZ3JlZ29yCiAgICAgICAgOgogICAgICAgIFsxLjRdIAogICAgICAgICAgICBmaXggYXNzZXQgLyBpbWFnZSBsaXN0cwogRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuNCByZW1vdmU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS40IHJlbW92ZQogICAgICAgIGJ5CiAgICAgICAgZ3JlZ29yCiAgICAgICAgOgogICAgICAgIFsxLjRdIAogICAgICAgICAgICBlcG96IC0mZ3Q7IGt1cHUKIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjQgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuNCB1cGRhdGUKICAgICAgICBieQogICAgICAgIG1pY2hpCiAgICAgICAgOgogICAgICAgIFsxLjRdIAogICAgICAgICAgICBVc2FnZSBhZGRlZAogRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuNCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS40IHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgbWljaGkKICAgICAgICA6CiAgICAgICAgWzEuNF0gCiAgICAgICAgICAgIGJldHRlciBpbnN0YWxsIGluc3RydWN0aW9ucyBhZGRlZAogRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuNCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS40IHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgbWljaGkKICAgICAgICA6CiAgICAgICAgWzEuNF0gCiAgICAgICAgICAgIGJldHRlciBpbnN0YWxsIGluc3RydWN0aW9ucyBhZGRlZAogRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuNCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS40IHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgbWljaGkKICAgICAgICA6CiAgICAgICAgWzEuNF0gCiAgICAgICAgICAgIGZvcm1hdHRpbmcgZml4ZWQKIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjQgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuNCB1cGRhdGUKICAgICAgICBieQogICAgICAgIGVnbGkKICAgICAgICA6CiAgICAgICAgWzEuNF0gCiAgICAgICAgICAgIEluc2VydCBBU0wgMi4wCiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS40IHJlbW92ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjQgcmVtb3ZlCiAgICAgICAgYnkKICAgICAgICBlZ2xpCiAgICAgICAgOgogICAgICAgIFsxLjRdIAogICAgICAgICAgICBSZW1vdmUgZGVhZCBjb2RlLgogRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuNCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS40IHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgZWdsaQogICAgICAgIDoKICAgICAgICBbMS40XSAKICAgICAgICAgICAgSW5zZXJ0IEFTTCAyLjAKIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjQgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuNCB1cGRhdGUKICAgICAgICBieQogICAgICAgIGVnbGkKICAgICAgICA6CiAgICAgICAgWzEuNF0gCiAgICAgICAgICAgIEluc2VydCBBU0wgMi4wCiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS40IHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjQgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBlZ2xpCiAgICAgICAgOgogICAgICAgIFsxLjRdIAogICAgICAgICAgICBJbnNlcnQgQVNMIDIuMAogRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuNCByZW1vdmU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS40IHJlbW92ZQogICAgICAgIGJ5CiAgICAgICAgZWdsaQogICAgICAgIDoKICAgICAgICBbMS40XSAKICAgICAgICAgICAgUmVtb3ZlIHRoZXNlIGVudGl0aWVzIGFzIHRoZXkgYXJlIG91dGRhdGVkIGFuZCBhcmUgb2ZmaWNpYWxseQpwcm92aWRlZCBieSBodHRwOi8veG1sLm9wZW5vZmZpY2Uub3JnL3N4Mm1sCiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS40IHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjQgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBlZ2xpCiAgICAgICAgOgogICAgICAgIFsxLjRdIAogICAgICAgICAgICBJbnNlcnQgQVNMIDIuMAogRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuNCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS40IHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgZWdsaQogICAgICAgIDoKICAgICAgICBbMS40XSAKICAgICAgICAgICAgSW5zZXJ0IEFTTCAyLjAKIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjQgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuNCB1cGRhdGUKICAgICAgICBieQogICAgICAgIGdyZWdvcgogICAgICAgIDoKICAgICAgICBbMS40XSAKICAgICAgICAgICAgbWlzc2luZyByZXNvdXJjZQpQUjoKT2J0YWluZWQgZnJvbToKU3VibWl0dGVkIGJ5OgkKUmV2aWV3ZWQgYnk6CQpDVlM6IC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KQ1ZTOiBQUjoKQ1ZTOiAgIElmIHRoaXMgY2hhbmdlIGFkZHJlc3NlcyBhIFBSIGluIHRoZSBwcm9ibGVtIHJlcG9ydCB0cmFja2luZwpDVlM6ICAgZGF0YWJhc2UsIHRoZW4gZW50ZXIgdGhlIFBSIG51bWJlcihzKSBoZXJlLgpDVlM6IE9idGFpbmVkIGZyb206CkNWUzogICBJZiB0aGlzIGNoYW5nZSBoYXMgYmVlbiB0YWtlbiBmcm9tIGFub3RoZXIgc3lzdGVtLCBzdWNoIGFzIE5DU0EsCkNWUzogICB0aGVuIG5hbWUgdGhlIHN5c3RlbSBpbiB0aGlzIGxpbmUsIG90aGVyd2lzZSBkZWxldGUgaXQuCkNWUzogU3VibWl0dGVkIGJ5OgpDVlM6ICAgSWYgdGhpcyBjb2RlIGhhcyBiZWVuIGNvbnRyaWJ1dGVkIHRvIEFwYWNoZSBieSBzb21lb25lIGVsc2U7IGkuZS4sCkNWUzogICB0aGV5IHNlbnQgdXMgYSBwYXRjaCBvciBhIG5ldyBtb2R1bGUsIHRoZW4gaW5jbHVkZSB0aGVpciBuYW1lL2VtYWlsCkNWUzogICBhZGRyZXNzIGhlcmUuIElmIHRoaXMgaXMgeW91ciB3b3JrIHRoZW4gZGVsZXRlIHRoaXMgbGluZS4KQ1ZTOiBSZXZpZXdlZCBieToKQ1ZTOiAgIElmIHdlIGFyZSBkb2luZyBwcmUtY29tbWl0IGNvZGUgcmV2aWV3cyBhbmQgc29tZW9uZSBlbHNlIGhhcwpDVlM6ICAgcmV2aWV3ZWQgeW91ciBjaGFuZ2VzLCBpbmNsdWRlIHRoZWlyIG5hbWUocykgaGVyZS4KQ1ZTOiAgIElmIHlvdSBoYXZlIG5vdCBoYWQgaXQgcmV2aWV3ZWQgdGhlbiBkZWxldGUgdGhpcyBsaW5lLgogRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuNCByZW1vdmU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS40IHJlbW92ZQogICAgICAgIGJ5CiAgICAgICAgZ3JlZ29yCiAgICAgICAgOgogICAgICAgIFsxLjRdIAogICAgICAgICAgICBwdWJsaXNoaW5nIG9mIGFydGljbGVzCiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS40IHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjQgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBlZ2xpCiAgICAgICAgOgogICAgICAgIFsxLjRdIAogICAgICAgICAgICBJZiBhIHNjcmlwdCBpcyBwYXNzZWQgYXMgYW4gYXJndW1lbnQsIGFkZCBpdCB0byB0aGUgZmlsZXMgc2VjdGlvbi4KIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjQgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuNCB1cGRhdGUKICAgICAgICBieQogICAgICAgIHJva3UKICAgICAgICA6CiAgICAgICAgWzEuNF0gCiAgICAgICAgICAgIEZpeGVkIEVwb3otJmd0O0t1cHUgcmVuYW1pbmcuCk9sZCBFcG96IHdpbGwgbm90IHdvcmsgYW55bW9yZS4KIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjQgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuNCB1cGRhdGUKICAgICAgICBieQogICAgICAgIGdyZWdvcgogICAgICAgIDoKICAgICAgICBbMS40XSAKICAgICAgICAgICAgbW9yZSBpZSA2IHNjcmlwdCB0YWcgbWFkbmVzcwogRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuNCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS40IHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgbWljaGkKICAgICAgICA6CiAgICAgICAgWzEuNF0gCiAgICAgICAgICAgIGV4Y2VwdGlvbiBtZXNzYWdlIGltcHJvdmVkCiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS40IHJlbW92ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjQgcmVtb3ZlCiAgICAgICAgYnkKICAgICAgICBncmVnb3IKICAgICAgICA6CiAgICAgICAgWzEuNF0gCiAgICAgICAgICAgIHdoZW4gd2lsbCBwZW9wbGUgZmluYWxseSB1c2UgdGhlIHByb3BlciBsb2NhdGlvbiBmb3IgZmlsZXM/IGdlZXouCiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS40IHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjQgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICByb2t1CiAgICAgICAgOgogICAgICAgIFsxLjRdIAogICAgICAgICAgICBBcyByZXBvcnRlZCBieSBncmVnb3IgdGhlcmUgYXJlIHByb2JsZW1zIGlmIGkxOG4gZGlyIGlzIG5vdCBleGlzdGluZwppbiBwdWIgc3BhY2UuIEkgZHVubm8gd2h5IGl0IGhhcyBzdGggdG8gZG8gd2l0aCBub25jYWNoaW5nIHN0dWZmLgpSZXZlcnRpbmcuCiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS40IHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjQgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICByb2t1CiAgICAgICAgOgogICAgICAgIFsxLjRdIAogICAgICAgICAgICBGaW5pc2hlZCBpMThuLgogRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuNCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS40IHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgcm9rdQogICAgICAgIDoKICAgICAgICBbMS40XSAKICAgICAgICAgICAgQWRkZWQgaTE4biBzdXBwb3J0IGZvciBBc3NldCBEaWFsb2cgKEJYRSkKIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjQgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuNCB1cGRhdGUKICAgICAgICBieQogICAgICAgIGVkaXRoCiAgICAgICAgOgogICAgICAgIFsxLjRdIAogICAgICAgICAgICBmaXggdGhlIHJjIG5hbWVzcGFjZQogRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuNCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS40IHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgZWRpdGgKICAgICAgICA6CiAgICAgICAgWzEuNF0gCiAgICAgICAgICAgIHJlaW5zZXJ0IG5lZWRlZCB0cmFuc2Zvcm1hdGlvbiB7ZG9jdHlwZXN9dG94aHRtbAogRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuNCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS40IHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgcm9rdQogICAgICAgIDoKICAgICAgICBbMS40XSAKICAgICAgICAgICAgQWRkZWQgaTE4biB0cmFuc2Zvcm1hdGlvbi4KIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjQgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuNCB1cGRhdGUKICAgICAgICBieQogICAgICAgIHJva3UKICAgICAgICA6CiAgICAgICAgWzEuNF0gCiAgICAgICAgICAgIFN0YXJ0ZWQgd2l0aCBpMThuLgogRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuNCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS40IHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgcm9rdQogICAgICAgIDoKICAgICAgICBbMS40XSAKICAgICAgICAgICAgUmVtb3ZlZCB0eXBlPSJub25jYWNoaW5nIi4gSSBoYWQgcHJvYmxlbXMgZWFybGllciB3aGVuIG5vdCB1c2luZyBub25jYWNoaW5nLgpNYXliZSBJIGhhdmUgdG8gcmV2b2tlIHRoaXMgY2hhbmdlIGxhdGVyLgpMZXRzIHNlZS4KIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjQgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuNCB1cGRhdGUKICAgICAgICBieQogICAgICAgIGdyZWdvcgogICAgICAgIDoKICAgICAgICBbMS40XSAKICAgICAgICAgICAgbmV3IGxlbnlhIGxpdmUgc2l0ZXMKIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjQgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuNCB1cGRhdGUKICAgICAgICBieQogICAgICAgIHJva3UKICAgICAgICA6CiAgICAgICAgWzEuNF0gCiAgICAgICAgICAgIEZpeGVkIGN2cyBrZXl3b3JkCiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS40IHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjQgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICByb2t1CiAgICAgICAgOgogICAgICAgIFsxLjRdIAogICAgICAgICAgICBGaXhlZCBjb21tZW50cwogRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuNCBhZGQ8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS40IGFkZAogICAgICAgIGJ5CiAgICAgICAgcm9rdQogICAgICAgIDoKICAgICAgICBbMS40XSAKICAgICAgICAgICAgTW92ZWQgaTE4biBoYW5kbGluZyB0byBhIHNlcGFyYXRlIHNpdGVtYXAgaW4gb3JkZXIgdG86Ci0gYXZvaWQgcG90ZW50aWFsIGVuZGxlc3MgbG9vcHMgY2F1c2VkIGJ5IHN1YiBzaXRlbWFwIG1vdW50cwotIGF2b2lkIHVuZXNzYWNhcnJ5IFJlc291cmNlQnVuZGxlIGxvZ2dpbmdzIGluIGNvcmUubG9nIGlmIGEgZGljdCBmaWxlIGlzIG5vdCBmb3VuZAogRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuNCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS40IHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgcm9rdQogICAgICAgIDoKICAgICAgICBbMS40XSAKICAgICAgICAgICAgRml4IGZvcgpodHRwOi8vbmFnb3lhLmFwYWNoZS5vcmcvYnVnemlsbGEvc2hvd19idWcuY2dpP2lkPTI3NjQ0CklzIHJlbGF0ZWQgdG8gZmlsZSBsZW55YS94c2x0L25hdmlnYXRpb24vc2l0ZXRyZWUybmF2LnhzbAogRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuNCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS40IHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgZ3JlZ29yCiAgICAgICAgOgogICAgICAgIFsxLjRdIAogICAgICAgICAgICBwcmV2ZW50IGNvbGxhcHNpbmcgb2Ygc2NyaXB0IHRhZwogRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuNCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS40IHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgZ3JlZ29yCiAgICAgICAgOgogICAgICAgIFsxLjRdIAogICAgICAgICAgICBmaXggbnMgcHJvYmxlbSB3aXRoIGltcG9ydGVkIGpzCiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS40IHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjQgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBncmVnb3IKICAgICAgICA6CiAgICAgICAgWzEuNF0gCiAgICAgICAgICAgIHdlIGRvbid0IG5lZWQgYXhpcy4KIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjQgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuNCB1cGRhdGUKICAgICAgICBieQogICAgICAgIGdyZWdvcgogICAgICAgIDoKICAgICAgICBbMS40XSAKICAgICAgICAgICAgbWFrZSBzaXRlbWFwcyBtb3JlIHJlYWRhYmxlCgp4c2x0IHRyYW5zZm9ybWVyIHdhcyBkZWZpbmVkIHR3aWNlLCBnbyBmaWd1cmUKCnJlbW92ZSB3c3Byb3h5ICh1bm5lZWRlZCkKIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjQgYWRkPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuNCBhZGQKICAgICAgICBieQogICAgICAgIGdyZWdvcgogICAgICAgIDoKICAgICAgICBbMS40XSAKICAgICAgICAgICAgdGhlIGVjbGlwc2UtcHJvamVjdCB0YXJnZXQgaXMgbm93IGFibGUgdG8gY3JlYXRlIGFuIGVjbGlwc2UgcHJvamVjdCBmb3IgbGVueWEuCgpzb21lIG5ldyBwcm9wZXJ0aWVzIGluIGJ1aWxkLnByb3BlcnRpZXM6Cgpjb2Nvb24uZGlyCmlkZS5lY2xpcHNlLm91dHB1dGRpcgppZGUuZWNsaXBzZS5leHBvcnQubGlicwogRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuNCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS40IHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgZ3JlZ29yCiAgICAgICAgOgogICAgICAgIFsxLjRdIAogICAgICAgICAgICB1cGRhdGVkIHJlcXVpcmVtZW50cwogRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuNCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS40IHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgZ3JlZ29yCiAgICAgICAgOgogICAgICAgIFsxLjRdIAogICAgICAgICAgICBidWlsZCBzeXN0ZW0gdXBkYXRlZCB0byB1c2UgdGhlIGFudCAxLjYgaW1wb3J0IHRhc2sKICAtJmd0OyB5b3UgbmVlZCBhbnQgMS42IG9yIGhpZ2hlciAKYXBwbGllZCBBU0wgMi4wCiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS40IHJlbW92ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjQgcmVtb3ZlCiAgICAgICAgYnkKICAgICAgICBncmVnb3IKICAgICAgICA6CiAgICAgICAgWzEuNF0gCiAgICAgICAgICAgIHVwZ3JhZGUgdG8gamV0dHkgNC4yLjE5CiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS40IHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjQgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBncmVnb3IKICAgICAgICA6CiAgICAgICAgWzEuNF0gCiAgICAgICAgICAgIGNhbGN1bGF0ZSBzaXplIGZvciBhbiBhc3NldCBjb3JyZWN0bHkuIHRoYW5rcyB0byB0cmFwby4KCndlIHdpbGwgaGF2ZSB0byByZXZpc2l0IHRoaXMgb25jZSB3ZSB0YWNrbGUgIzI2NTc2CiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS40IHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjQgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBncmVnb3IKICAgICAgICA6CiAgICAgICAgWzEuNF0gCiAgICAgICAgICAgIGFkZGVkIHN1cHBvcnQgZm9yIGgxLCBhc3NldCBhbmQgb2JqZWN0IHRvIGZvcm1zIGVkaXRvcgogRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuNCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS40IHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgZ3JlZ29yCiAgICAgICAgOgogICAgICAgIFsxLjRdIAogICAgICAgICAgICBtYWtlIG9uZSBmb3JtIGVkaXRvciB1dGlsaXplIHRoZSB3aG9sZSBzY3JlZW4KIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjQgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuNCB1cGRhdGUKICAgICAgICBieQogICAgICAgIGdyZWdvcgogICAgICAgIDoKICAgICAgICBbMS40XSAKICAgICAgICAgICAgdHlwbyBmaXgKIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjQgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuNCB1cGRhdGUKICAgICAgICBieQogICAgICAgIGdyZWdvcgogICAgICAgIDoKICAgICAgICBbMS40XSAKICAgICAgICAgICAgQVNMIDIuMApyZW1vdmVkIHVzZSBvZiBEYXRlVXRpbCAodGhhbmtzIHRvIERhbGUgQ2hyaXN0KQogRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuNCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS40IHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgZ3JlZ29yCiAgICAgICAgOgogICAgICAgIFsxLjRdIAogICAgICAgICAgICBBU0wgMi4wCkBhdXRob3IgcmVtb3ZlZAogRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuNCByZW1vdmU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS40IHJlbW92ZQogICAgICAgIGJ5CiAgICAgICAgZ3JlZ29yCiAgICAgICAgOgogICAgICAgIFsxLjRdIAogICAgICAgICAgICBubyBsb25nZXIgbmVlZGVkCiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS40IHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjQgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBtaWNoaQogICAgICAgIDoKICAgICAgICBbMS40XSAKICAgICAgICAgICAgb2Jzb2xldGUgdmFyaWFibGVzIHJlbW92ZWQKIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjQgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuNCB1cGRhdGUKICAgICAgICBieQogICAgICAgIG1pY2hpCiAgICAgICAgOgogICAgICAgIFsxLjRdIAogICAgICAgICAgICB6aXAgdGFyZ2V0IGFkZGVkIGluIG9yZGVyIHRvIGRlcGxveSB3ZWJhcHAKIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjQgcmVtb3ZlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuNCByZW1vdmUKICAgICAgICBieQogICAgICAgIGdyZWdvcgogICAgICAgIDoKICAgICAgICBbMS40XSAKICAgICAgICAgICAgbm8gbG9uZ2VyIG5lZWRlZCAoaXRzIGZyb20gdGhlIG9sZCBiaXRmbHV4IGVkaXRvcikKIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjQgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuNCB1cGRhdGUKICAgICAgICBieQogICAgICAgIG1pY2hpCiAgICAgICAgOgogICAgICAgIFsxLjRdIAogICAgICAgICAgICBlbmNvZGluZyBmaXhlZAogRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuNCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS40IHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgZ3JlZ29yCiAgICAgICAgOgogICAgICAgIFsxLjRdIAogICAgICAgICAgICB3ZSBub3cgdXNlIG5pY2UgZXJyb3Igc2NyZWVucy4KCmNvbnZlcnRlZCBmcm9tIGRlcHJlY2F0ZWQgdHlwZT01MDAgZXJyb3IgaGFuZGxpbmcgdG8gbmV3IGhhbmRsaW5nIHdpdGggZXhjZXB0aW9uIHNlbGVjdG9yCgp0aGlzIG1lYW5zIHlvdSBzaG91bGQgbmV2ZXIgZXZlciBnZXQgdWdseSBzdGFjayB0cmFjZXMgYWdhaW4uCiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS40IHJlbW92ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjQgcmVtb3ZlCiAgICAgICAgYnkKICAgICAgICBncmVnb3IKICAgICAgICA6CiAgICAgICAgWzEuNF0gCiAgICAgICAgICAgIG5vIGxvbmdlciBuZWVkZWQuIHRoaXMgaXMgcHJvdmlkZWQgYnkgdGhlIGNvY29vbiB3ZWJhcHAKIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjQgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuNCB1cGRhdGUKICAgICAgICBieQogICAgICAgIG1pY2hpCiAgICAgICAgOgogICAgICAgIFsxLjRdIAogICAgICAgICAgICBmaWVsZHMgZml4ZWQKIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjQgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuNCB1cGRhdGUKICAgICAgICBieQogICAgICAgIG1pY2hpCiAgICAgICAgOgogICAgICAgIFsxLjRdIAogICAgICAgICAgICBjb250ZW50cyBmaWVsZCBhcyBkZWZhdWx0CiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS40IHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjQgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBtaWNoaQogICAgICAgIDoKICAgICAgICBbMS40XSAKICAgICAgICAgICAgUGlwZWxpbmUgc3BsaXQgd2hpY2ggYWxsb3dzIGJldHRlciBjdXN0b21pemluZwogRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuNCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS40IHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgZ3JlZ29yCiAgICAgICAgOgogICAgICAgIFsxLjRdIAogICAgICAgICAgICByZS1lbmFibGUgcmVzb3VyY2Vub3Rmb3VuZCBleGNlcHRpb24KIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjQgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuNCB1cGRhdGUKICAgICAgICBieQogICAgICAgIGVnbGkKICAgICAgICA6CiAgICAgICAgWzEuNF0gCiAgICAgICAgICAgIFRoZSBwcmV2aXVvcyBjaGVja2luIGJyb2tlIHRoZSB2YWxpZGF0b3JBY3Rpb24uIFRoaXMgY2hhbmdlIG1ha2VzIGl0CndvcmsgYWdhaW4gYW5kIGRvZXMgYW4gYXR0ZW1wdCBhdCBzb21lIGNsZWFuLXVwLgogRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuNCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS40IHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgbWljaGkKICAgICAgICA6CiAgICAgICAgWzEuNF0gCiAgICAgICAgICAgIGNvcHlyaWdodCBzdGF0ZW1lbnQgcmVtb3ZlZAogRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuNCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS40IHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgbWljaGkKICAgICAgICA6CiAgICAgICAgWzEuNF0gCiAgICAgICAgICAgIDI0IGhvdXJzIGZpeAogRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuNCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS40IHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgZ3JlZ29yCiAgICAgICAgOgogICAgICAgIFsxLjRdIAogICAgICAgICAgICBtb3ZlIGxpY2Vuc2UgaW5zaWRlIHJvb3QgZWxlbWVudCB0byBtYWtlIHNvdXJjZSB3cml0aW5nIHRyYW5zZm9ybWVyIGhhcHB5CgojMjc2NTAKIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjQgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuNCB1cGRhdGUKICAgICAgICBieQogICAgICAgIG1pY2hpCiAgICAgICAgOgogICAgICAgIFsxLjRdIAogICAgICAgICAgICBjaGVjayBpZiBkaXJlY3RvcnkgZXhpc3RzCiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS40IHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjQgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBncmVnb3IKICAgICAgICA6CiAgICAgICAgWzEuNF0gCiAgICAgICAgICAgIHZhbGlkYXRlYWN0aW9uIGRpZG50IHRha2UgZW5jb2RpbmcgaW50byBhY2NvdW50LiAjMjcyNjIKIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjQgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuNCB1cGRhdGUKICAgICAgICBieQogICAgICAgIG1pY2hpCiAgICAgICAgOgogICAgICAgIFsxLjRdIAogICAgICAgICAgICBsb2dnaW5nIGFkZGVkCiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS40IGFkZDwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjQgYWRkCiAgICAgICAgYnkKICAgICAgICBtaWNoaQogICAgICAgIDoKICAgICAgICBbMS40XSAKICAgICAgICAgICAgbG9nZ2luZyBmb3Igc2hlbGwgc2NyaXB0cyBhbmQgYmF0Y2ggZmlsZXMKIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjQgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuNCB1cGRhdGUKICAgICAgICBieQogICAgICAgIG1pY2hpCiAgICAgICAgOgogICAgICAgIFsxLjRdIAogICAgICAgICAgICBOb3RlIGFib3V0IHBvdGVudGlhbCB4bWxkYiBjb25mbGljdAogRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuNCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS40IHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgZ3JlZ29yCiAgICAgICAgOgogICAgICAgIFsxLjRdIAogICAgICAgICAgICB0eXBvCiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS40IHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjQgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBncmVnb3IKICAgICAgICA6CiAgICAgICAgWzEuNF0gCiAgICAgICAgICAgIGJlZ2lubmluZyBvZiBTU0wgRW5jcnlwdGlvbiBkb2N1bWVudGF0aW9uCiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS40IHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjQgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBncmVnb3IKICAgICAgICA6CiAgICAgICAgWzEuNF0gCiAgICAgICAgICAgIGZpcnN0IGN1dCBvZiBTU0wgc3VwcG9ydC4KCnRoZSBTaW1wbGVMaW5rVHJhbnNmb3JtZXIgbm93IGNoZWNrcyBpZiBhIGxpbmsgaXMgcHJvdGVjdGVkIGJ5IFNTTCAoaGFzIHRoZSBTU0wgcHJvcGVydHkgc2V0IGluIGl0cyBwb2xpY3kpIGFuZCBwcmVwZW5kcyBhIFNTTCBwcmVmaXguCgp0aGlzIGFsbG93cyB5b3UgdG8gc2VsZWN0aXZlbHkgc2VydmUgcGFnZXMgb2YgeW91ciBzaXRlIHRocm91Z2ggU1NMLiBpJ2xsIHdyaXRlIHNvbWUgZG9jdW1lbnRhdGlvbiB0byBvdXRsaW5lIHRoZSBzZXR1cCB3aXRoIG1vZF9wcm94eSBhbmQgZnJpZW5kcy4KIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjQgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuNCB1cGRhdGUKICAgICAgICBieQogICAgICAgIG1pY2hpCiAgICAgICAgOgogICAgICAgIFsxLjRdIAogICAgICAgICAgICBDb21tZW50IHBsYWNlZCBhbmQgbG9nZ2luZyBmaXhlZAogRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuNCBhZGQ8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS40IGFkZAogICAgICAgIGJ5CiAgICAgICAgbWljaGkKICAgICAgICA6CiAgICAgICAgWzEuNF0gCiAgICAgICAgICAgIFVwbG9hZEhlbHBlciBhZGRlZAogRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuNCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS40IHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgZWdsaQogICAgICAgIDoKICAgICAgICBbMS40XSAKICAgICAgICAgICAgTWFrZSB0aGUgc2VhcmNoIGJ1dHRvbiBsb29rIG1vcmUgbGlrZSB0aGUgcmVzdCBvZiB0aGUgbmF2aWdhdGlvbi4KIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjQgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuNCB1cGRhdGUKICAgICAgICBieQogICAgICAgIHJva3UKICAgICAgICA6CiAgICAgICAgWzEuNF0gCiAgICAgICAgICAgIEZpeGVkIHBhdGggZm9yIGFuIGVwb3ogeHNsLgpUaGUgZmlsZSBlcG96Y29udGVudC14aHJtbC54c2wgaXMgaW5jbHVkZWQgaW4gZXBveiByZWxlYXNlLgogRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuNCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS40IHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgcm9rdQogICAgICAgIDoKICAgICAgICBbMS40XSAKICAgICAgICAgICAgRml4ZWQgYSBzbWFsbCB0eXBvCiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS40IHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjQgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICByb2t1CiAgICAgICAgOgogICAgICAgIFsxLjRdIAogICAgICAgICAgICBBIGZvcmdvdHRlbiBjb21taXQgOikKU29ycnkgZm9yIGFueSBpbmNvdmluaWVuY2UuCiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS40IHJlbW92ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjQgcmVtb3ZlCiAgICAgICAgYnkKICAgICAgICBncmVnb3IKICAgICAgICA6CiAgICAgICAgWzEuNF0gCiAgICAgICAgICAgIHJlbW92ZSB0cmFjZXMgb2Ygb2xkIGRvY3VtZW50YXRpb24KIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjQgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuNCB1cGRhdGUKICAgICAgICBieQogICAgICAgIGdyZWdvcgogICAgICAgIDoKICAgICAgICBbMS40XSAKICAgICAgICAgICAgdXBkYXRlIHRvIEFTTCAyLjAKIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjQgcmVtb3ZlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuNCByZW1vdmUKICAgICAgICBieQogICAgICAgIGdyZWdvcgogICAgICAgIDoKICAgICAgICBbMS40XSAKICAgICAgICAgICAgZ290IHJpZCBvZiBvbGQgc2NoZW1hcwogRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuNCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS40IHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgZ3JlZ29yCiAgICAgICAgOgogICAgICAgIFsxLjRdIAogICAgICAgICAgICB1cGRhdGUgdG8gQVNMIDIuMAogRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuNCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS40IHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgZ3JlZ29yCiAgICAgICAgOgogICAgICAgIFsxLjRdIAogICAgICAgICAgICB1cGRhdGUgdG8gQVNMIDIuMAogRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuNCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS40IHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgZ3JlZ29yCiAgICAgICAgOgogICAgICAgIFsxLjRdIAogICAgICAgICAgICB1cGRhdGUgdG8gQVNMIDIuMAogRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuNCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS40IHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgZ3JlZ29yCiAgICAgICAgOgogICAgICAgIFsxLjRdIAogICAgICAgICAgICB1cGRhdGUgdG8gQVNMIDIuMAogRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuNCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS40IHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgZ3JlZ29yCiAgICAgICAgOgogICAgICAgIFsxLjRdIAogICAgICAgICAgICB1cGRhdGUgdG8gQVNMIDIuMAogRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuNCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS40IHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgcm9rdQogICAgICAgIDoKICAgICAgICBbMS40XSAKICAgICAgICAgICAgTWlub3IgZml4LgogRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuNCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS40IHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgcm9rdQogICAgICAgIDoKICAgICAgICBbMS40XSAKICAgICAgICAgICAgY29tcGxldGVkIGkxOG4gZm9yIGNyZWF0ZSBkb2MgYW5kIGNyZWF0ZSBsYW5ndWFnZSBzY3JlZW5zLgogRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuNCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS40IHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgcm9rdQogICAgICAgIDoKICAgICAgICBbMS40XSAKICAgICAgICAgICAgaTE4biBzdXBwb3J0IGZvciBjbGllbnQgc2lkZSBqYXZhc2NyaXB0IHBvcHVwIG1lc3NhZ2VzLgpUaGlzIHNob3VsZCBhbGwgYmUgZG9uZSB3aXRoIHdvb2R5IGFrYSBjZm9ybXMgaW4gdGhlIGZ1dHVyZS4KIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjQgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuNCB1cGRhdGUKICAgICAgICBieQogICAgICAgIHJva3UKICAgICAgICA6CiAgICAgICAgWzEuNF0gCiAgICAgICAgICAgIFNvbWUgaTE4biBwaXBlbGluZSBmaXhlcy4KIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjQgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuNCB1cGRhdGUKICAgICAgICBieQogICAgICAgIHJva3UKICAgICAgICA6CiAgICAgICAgWzEuNF0gCiAgICAgICAgICAgIFNvbWUgaTE4biBwaXBlbGluZSBmaXhlcy4KIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjQgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuNCB1cGRhdGUKICAgICAgICBieQogICAgICAgIHJva3UKICAgICAgICA6CiAgICAgICAgWzEuNF0gCiAgICAgICAgICAgIFN0YXJ0ZWQgaTE4bidpbmcKIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjQgYWRkPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuNCBhZGQKICAgICAgICBieQogICAgICAgIHJva3UKICAgICAgICA6CiAgICAgICAgWzEuNF0gCiAgICAgICAgICAgIEFkZGVkIHB1YiBsb2NhbCBpMThuIGNhdGFsb2d1ZSBmaWxlcy4KIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjQgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuNCB1cGRhdGUKICAgICAgICBieQogICAgICAgIHJva3UKICAgICAgICA6CiAgICAgICAgWzEuNF0gCiAgICAgICAgICAgIEZpeGVkIHRlc3QgaWYgcHViIGxvY2FsIGNhdCBleGlzdHMuIFVzaW5nIFNvdXJjZS5leGlzdHMoU3RyaW5nKSBub3cKIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjQgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuNCB1cGRhdGUKICAgICAgICBieQogICAgICAgIHJva3UKICAgICAgICA6CiAgICAgICAgWzEuNF0gCiAgICAgICAgICAgIEFkZGVkIG1lc3NhZ2VzLgogRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuNCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS40IHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgcm9rdQogICAgICAgIDoKICAgICAgICBbMS40XSAKICAgICAgICAgICAgLSBNb3ZlZCBYSW5jbHVkZSB0cmFuc2Zvcm1lciB0byBzaXRlbWFwLnhtYXAsIGJlY2F1c2UgSSBuZWVkIHRvIHVzZSBpdCB0aGVyZSBmb3IgaTE4biBjYXRhbG9ndWUgbWVyZ2luZwotIEFkZGVkIHN1cHBvcnQgZm9yIHRoZSBpMTgtY2F0YWxvZ3VlIHBpcGVsaW5lIHRvIG1lcmdlIGxvY2FsIHdpdGggZ2xvYmFsIGkxOG4gY2F0YWxvZ3VlCiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS40IGFkZDwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjQgYWRkCiAgICAgICAgYnkKICAgICAgICByb2t1CiAgICAgICAgOgogICAgICAgIFsxLjRdIAogICAgICAgICAgICBNZXJnZXMgcHViIGxvY2FsIGkxOG4gY2F0YWxvZ3VlIHdpdGggZ2xvYmFsIGkxOG4gY2F0YWxvZ3VlLgogRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuNCByZW1vdmU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS40IHJlbW92ZQogICAgICAgIGJ5CiAgICAgICAgcm9rdQogICAgICAgIDoKICAgICAgICBbMS40XSAKICAgICAgICAgICAgbWVyZ2UgZGljdHMgbm90ICBuZWVkZWQgYW55bW9yZQogRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuNCBhZGQ8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS40IGFkZAogICAgICAgIGJ5CiAgICAgICAgcm9rdQogICAgICAgIDoKICAgICAgICBbMS40XSAKICAgICAgICAgICAgVXNlZCB0byBtZXJnZSBwdWIgbG9jYWwgbWVzc2FnZSBjYXRhbG9ndWUgd2l0aCBnbG9iYWwgb25lLgogRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuNCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS40IHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgcm9rdQogICAgICAgIDoKICAgICAgICBbMS40XSAKICAgICAgICAgICAgUmVtb3ZlZCB1c2VsZXNzIGNoYXIuCiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS40IHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjQgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICByb2t1CiAgICAgICAgOgogICAgICAgIFsxLjRdIAogICAgICAgICAgICBVc2luZyBhIHBpcGVsaW5lIHRvIGFnZ3JlZ2F0ZSBwdWIgZGljdHMgd2l0aCBnbG9iYWwgZGljdHM6KQogRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuNCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS40IHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgcm9rdQogICAgICAgIDoKICAgICAgICBbMS40XSAKICAgICAgICAgICAgUmVtb3ZlZCBhbGwgSTE4blRyYW5zZm9tZXIgZGVjbHMuIFdlIGNhbiB1c2UgdGhlIGdsb2JhbCBvbmUuCiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS40IGFkZDwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjQgYWRkCiAgICAgICAgYnkKICAgICAgICBlZ2xpCiAgICAgICAgOgogICAgICAgIFsxLjRdIAogICAgICAgICAgICBBZGRlZCBhIG5ldyB1c2Ugc3RlcCBpbiB0aGUgcHVibGlzaCB1c2VjYXNlIG5hbWVkCiJzaG93LXJlZmVyZW5jZWQtZG9jdW1lbnRzIiB3aGljaCBhbGxvd3MgeW91IHRvIGRvd25sb2FkIHRoZSBsaXN0IG9mCnJlZmVyZW5jZWQgZG9jdW1lbnRzIGFzIGEgdGV4dC9wbGFpbiBmaWxlLgogRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuNCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS40IHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgcm9rdQogICAgICAgIDoKICAgICAgICBbMS40XSAKICAgICAgICAgICAgQXBwbGllZCBzaXRlbWFwIHJlZmFjdG9yaW5nOiBFeHRyYWN0IHJlc291cmNlIGkxOG4uCiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS40IHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjQgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICByb2t1CiAgICAgICAgOgogICAgICAgIFsxLjRdIAogICAgICAgICAgICBBZGRlZCBpMThuIGZvciBpbmZvIHNpZGV0cmVlLgogRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuNCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS40IHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgcm9rdQogICAgICAgIDoKICAgICAgICBbMS40XSAKICAgICAgICAgICAgLSBNb3ZlZCBpMThuIHRyYW5zZm9tcmF0aW9uIGludG8gYSByZXNvdXJjZSBjYWxsZWQgaTE4bgotIEFkZGVkIGkxOG4gZm9yIGluZm8gdHJlZQogRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuNCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS40IHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgZWdsaQogICAgICAgIDoKICAgICAgICBbMS40XSAKICAgICAgICAgICAgQWRkZWQgdGhlIGxpbmstcmV3cml0ZSB0cmFuc2ZvbWVyIHRvIGVuYWJsZSBpbnRlcm5hbCBsaW5rIHJld3JpdGluZyBpbgp0aGUgZGVmYXVsdCBwdWJsaWNhdGlvbi4gVGhpcyBhbHNvIGVudGFpbHMgbGluayBkaXNhYmxpbmcgaW4gdGhlIGxpdmUKYXJlYSBpZiB0aGUgbGluayB0YXJnZXQgaXMgbm90IGluIGxpdmUuCiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS40IHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjQgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBlZ2xpCiAgICAgICAgOgogICAgICAgIFsxLjRdIAogICAgICAgICAgICBNb3ZlZCB0aGUgU2ltcGxlTGlua1Jld3JpdGluZ1RyYW5zZm9ybWVyIHRvIHRoZSBjb3JlLgogRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuNCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS40IHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgZWdsaQogICAgICAgIDoKICAgICAgICBbMS40XSAKICAgICAgICAgICAgSWYgYSBsaXZlIGRvY3VtZW50IGNvbnRhaW5zIChpbnRlcm5hbCkgbGlua3MgdG8gYW5vdGhlciBkb2N1bWVudCB3aXRoCmlzIG5vdCBpbiBsaXZlIHlldCwgdGhlbiB0aGUgbGluayB3aWxsIGJlIGRlYWN0aXZhdGVkLCBpLmUuIHRoZQp0cmFuc2Zvcm1lciB3aWxsIGRyb3AgdGhlICZsdDthJmd0OyBlbGVtZW50IGFuZCBqdXN0IHBhc3MgdGhlIHRleHQgbm9kZSBvZgp0aGUgJmx0O2EmZ3Q7IGVsZW1lbnQuCiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS40IHJlbW92ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjQgcmVtb3ZlCiAgICAgICAgYnkKICAgICAgICBncmVnb3IKICAgICAgICA6CiAgICAgICAgWzEuNF0gCiAgICAgICAgICAgIHJlbW92ZWQgZm9ycmVzdCBibG9hdAogRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuNCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS40IHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgZ3JlZ29yCiAgICAgICAgOgogICAgICAgIFsxLjRdIAogICAgICAgICAgICB0ZW1wb3JhcmlseSBkaXNhYmxlIGRlbGV0aW9uIG9mIHNjaGVkdWxlciBlbnRyaWVzIHVudGlsIHdlIGZpZ3VyZSBvdXQgdGhlIHJvb3QgY2F1c2UuCgojMjcyNTIKIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjQgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuNCB1cGRhdGUKICAgICAgICBieQogICAgICAgIGdyZWdvcgogICAgICAgIDoKICAgICAgICBbMS40XSAKICAgICAgICAgICAgZm9ybSBlZGl0b3IgbGF5b3V0IGltcHJvdmVtZW50cy4gdGhhbmtzIHRvIGphbiBmb3JyZXIgZm9yIHRoZSBwYXRjaC4KIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjQgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuNCB1cGRhdGUKICAgICAgICBieQogICAgICAgIG1pY2hpCiAgICAgICAgOgogICAgICAgIFsxLjRdIAogICAgICAgICAgICB3ZWxsLWZvcm1lZG5lc3MgZml4ZWQKIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjQgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuNCB1cGRhdGUKICAgICAgICBieQogICAgICAgIGdyZWdvcgogICAgICAgIDoKICAgICAgICBbMS40XSAKICAgICAgICAgICAgbWFrZSB3YXJuaW5nIG1lc3NhZ2UgbW9yZSBsZWdpYmxlIGZvciB3cm9uZyBmaWxldHlwZSB3YXJuaW5nCiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS40IHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjQgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBncmVnb3IKICAgICAgICA6CiAgICAgICAgWzEuNF0gCiAgICAgICAgICAgIGhpZ2hsaWdodCB3b3JrZmxvdyBzdGF0ZSBtb3JlIHByb21pbmVudGx5CiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS40IHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjQgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBncmVnb3IKICAgICAgICA6CiAgICAgICAgWzEuNF0gCiAgICAgICAgICAgIGllIGRpZG50IGxpa2UgdGhlIGZvbnQtc2l6ZTogeC1zbWFsbDsgc3ludGF4LCBhbmQgdGhlIGNzcyB3YXMgbm90IHZhbGlkIGFueXdheS4KIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjQgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuNCB1cGRhdGUKICAgICAgICBieQogICAgICAgIGdyZWdvcgogICAgICAgIDoKICAgICAgICBbMS40XSAKICAgICAgICAgICAgc3RvcmUgaW1hZ2UgdGl0bGUgaW4gdGhlIHRpdGxlIGF0dHJpYnV0ZSwgbm90IG5hbWUuCiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS40IHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjQgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBncmVnb3IKICAgICAgICA6CiAgICAgICAgWzEuNF0gCiAgICAgICAgICAgIHR5cG8KIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjQgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuNCB1cGRhdGUKICAgICAgICBieQogICAgICAgIGVkaXRoCiAgICAgICAgOgogICAgICAgIFsxLjRdIAogICAgICAgICAgICBvdmVycmlkZSB6aGUgc2F2ZSBtZXRob2QsIHRvIHNldCB0aGUgeGxpbmsgbmFtZXNwYWNlIGluIHRoZSB4bWwgZG9jdW1lbnQKIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjQgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuNCB1cGRhdGUKICAgICAgICBieQogICAgICAgIGVkaXRoCiAgICAgICAgOgogICAgICAgIFsxLjRdIAogICAgICAgICAgICBzZXQgdGhlIGF0dHJpYnV0ZSBkb2N1bWVuIGlkLCBpZiBpdCBhbHJlYWR5IGRvZXNuJ3QgZXhpc3QKIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjQgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuNCB1cGRhdGUKICAgICAgICBieQogICAgICAgIG1pY2hpCiAgICAgICAgOgogICAgICAgIFsxLjRdIAogICAgICAgICAgICBYbXggYWRkZWQKIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjQgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuNCB1cGRhdGUKICAgICAgICBieQogICAgICAgIGVnbGkKICAgICAgICA6CiAgICAgICAgWzEuNF0gCiAgICAgICAgICAgIFVzYWJpbGl0eSBmaXhlcyB0byB0aGUgb25lZm9ybSBlZGl0b3I6CgoqIEFkZGVkIGkxOG4KKiBBZGRlZCBhIGJveCB3aGljaCBzaG93cyB0aGUgZG9jdW1lbnQtaWQgYW5kIHRoZSBsYW5ndWFnZSBvZiB0aGUKICBkb2N1bWVudCB0aGF0IGlzIGN1cnJlbnRseSBiZWVpbmcgZWRpdGVkIChzaW1pbGFyIHRvIHRoZSBmb3JtcwogIGVkaXRvcikuCiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS40IHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjQgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBtaWNoaQogICAgICAgIDoKICAgICAgICBbMS40XSAKICAgICAgICAgICAgdGl0bGVzIGltcHJvdmVkCiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS40IHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjQgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBtaWNoaQogICAgICAgIDoKICAgICAgICBbMS40XSAKICAgICAgICAgICAgWEluY2x1ZGUgUHJvY2Vzc29yIGRvY3VtZW50YXRpb24gYWRkZWQKIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjQgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuNCB1cGRhdGUKICAgICAgICBieQogICAgICAgIGVnbGkKICAgICAgICA6CiAgICAgICAgWzEuNF0gCiAgICAgICAgICAgIFJlbW92ZSB0aGUgZG9jdW1lbnQgdGl0bGUgZmllbGQgdG8gbWFrZSBpdCBjb25zaXN0ZW50IHdpdGggdGhlIGNyZWF0ZQpzY3JlZW4uIEl0IGNvdWxkIGJlIHRoYXQgdGhpcyBoYXMgdG8gYmUgYWRkZWQgbGF0ZXIsIGJ1dCBpdCB3aWxsIGhhdmUKdG8gYmUgYWRkZWQgY29uc2lzdGVudGx5IGluIGJvdGggc2NyZWVucyBhbmQgdGhlIGRjIG1ldGFkYXRhIGhhbmRsaW5nCndpbGwgaGF2ZSB0byBiZSBpbnRlZ3JhdGVkLgogRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuNCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS40IHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgcm9rdQogICAgICAgIDoKICAgICAgICBbMS40XSAKICAgICAgICAgICAgUmVtb3ZlZCBkYXRlIHRyYW5zbGF0aW9uIGR1ZSB0byBkeW5hbWljIHNyYy1mb3JtYXRzIG9mIGRhdGUuCldpbGwgYmUgZml4ZWQgYWZ0ZXIgMS4yLgogRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuNCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS40IHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgbWljaGkKICAgICAgICA6CiAgICAgICAgWzEuNF0gCiAgICAgICAgICAgIHNlYXJjaCBhcyB0ZXh0IGlucHV0IGZpZWxkIGFkZGVkCiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS40IHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjQgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBncmVnb3IKICAgICAgICA6CiAgICAgICAgWzEuNF0gCiAgICAgICAgICAgIGFjMiAtJmd0OyBhYyBwYWNrYWdlIHJlbmFtZQogRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuNCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS40IHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgZ3JlZ29yCiAgICAgICAgOgogICAgICAgIFsxLjRdIAogICAgICAgICAgICB0eXBvIGZpeGVzLCBhbmQgbGlua3MgdG8gYWMyIGZpeGVkCiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS40IHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjQgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBlZ2xpCiAgICAgICAgOgogICAgICAgIFsxLjRdIAogICAgICAgICAgICBPcHRpbWl6ZWQgdGhlIGxheW91dCBvZiB0aGUgc2VhcmNoIGJveC4KIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjQgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuNCB1cGRhdGUKICAgICAgICBieQogICAgICAgIG1pY2hpCiAgICAgICAgOgogICAgICAgIFsxLjRdIAogICAgICAgICAgICBzZWFyY2ggY29uZmlndXJhdGlvbiB3aXRoaW4gYWRtaW4KIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjQgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuNCB1cGRhdGUKICAgICAgICBieQogICAgICAgIG1pY2hpCiAgICAgICAgOgogICAgICAgIFsxLjRdIAogICAgICAgICAgICBYUGF0aERpcmVjdG9yeUdlbmVyYXRvciBhZGRlZAogRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuNCBhZGQ8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS40IGFkZAogICAgICAgIGJ5CiAgICAgICAgZWdsaQogICAgICAgIDoKICAgICAgICBbMS40XSAKICAgICAgICAgICAgU2VhcmNoIGlzIG5vdyBoYW5kbGVkIGluIGEgc2VwYXJhdGUgeHNsLgogRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuNCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS40IHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgZWdsaQogICAgICAgIDoKICAgICAgICBbMS40XSAKICAgICAgICAgICAgUGxhY2UgdGhlIHNlYXJjaCBib3ggcmVsYXRpdmUgdG8gdGhlIGJyZWFkY3J1bWIgcGF0aCAoYmFzaWNhbGx5IHRvIHRoZQpyaWdodCBvZiB0aGUgYnJlYWRjcnVtYikKIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjQgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuNCB1cGRhdGUKICAgICAgICBieQogICAgICAgIGVnbGkKICAgICAgICA6CiAgICAgICAgWzEuNF0gCiAgICAgICAgICAgIFBsYWNlIHRoZSBzZWFyY2ggYm94IGFmdGVyIHRoZSBicmVhZGNydW1iIHBhdGguCiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS40IHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjQgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBlZ2xpCiAgICAgICAgOgogICAgICAgIFsxLjRdIAogICAgICAgICAgICBXaGVuIGFnZ3JlZ2F0aW5nIHRoZSBuYXZpZ2F0aW9uIGFsc28gcHVsbCBpbiB0aGUgc2VhcmNoIGJveC4KIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjQgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuNCB1cGRhdGUKICAgICAgICBieQogICAgICAgIGVnbGkKICAgICAgICA6CiAgICAgICAgWzEuNF0gCiAgICAgICAgICAgIFJldmVydGVkIGFzIHRoZSBzZWFyY2ggaXMgbm93IGluIGEgc2VwYXJhdGUgeHNsLgogRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuNCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS40IHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgZ3JlZ29yCiAgICAgICAgOgogICAgICAgIFsxLjRdIAogICAgICAgICAgICBhZGRpbmcgc2VhcmNoIGxpbmsgdG8gZGVmYXVsdCBwdWIgbGF5b3V0LgoKIzI2OTQ1CiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS40IHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjQgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBncmVnb3IKICAgICAgICA6CiAgICAgICAgWzEuNF0gCiAgICAgICAgICAgIG1ha2Ugd29ya2Zsb3cgcm9sZXMgY29uc2lzdGVudAogRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuNCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS40IHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgZ3JlZ29yCiAgICAgICAgOgogICAgICAgIFsxLjRdIAogICAgICAgICAgICByZW1vdmUgdW5pemggcmVmZXJlbmNlcwoKIzI3MDM1CiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS40IHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjQgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBncmVnb3IKICAgICAgICA6CiAgICAgICAgWzEuNF0gCiAgICAgICAgICAgIHJlbW92ZSB1bml6aCByZWZlcmVuY2VzCgojMjcwMzUKIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjQgYWRkPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuNCBhZGQKICAgICAgICBieQogICAgICAgIGdyZWdvcgogICAgICAgIDoKICAgICAgICBbMS40XSAKICAgICAgICAgICAgcHJlLXBvcHVsYXRlIGx1Y2VuZSBpbmRleCBmb3IgYXV0aG9yaW5nIGFyZWEgYXMgd2VsbC4KCm1pY2hpLCBwbGVhc2UgdXBkYXRlIGJvdGggaW5kZXhlcyBiZWZvcmUgcmVsZWFzZQoKIzI2OTQ1CiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS40IHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjQgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBtaWNoaQogICAgICAgIDoKICAgICAgICBbMS40XSAKICAgICAgICAgICAgdXNhZ2UgYWRkZWQKIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjQgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuNCB1cGRhdGUKICAgICAgICBieQogICAgICAgIG1pY2hpCiAgICAgICAgOgogICAgICAgIFsxLjRdIAogICAgICAgICAgICBkbyBub3QgY3Jhd2wgVVJMcyB3aXRoIHF1ZXJ5IHN0cmluZ3MKIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjQgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuNCB1cGRhdGUKICAgICAgICBieQogICAgICAgIG1pY2hpCiAgICAgICAgOgogICAgICAgIFsxLjRdIAogICAgICAgICAgICBJbmRleE91dE9mUmFuZ2UgYnVnIGZpeGVkCiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS40IHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjQgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBtaWNoaQogICAgICAgIDoKICAgICAgICBbMS40XSAKICAgICAgICAgICAgbmFzdHkgYnVnIHJlIC4uLy4vIGZpeGVkCiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS40IHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjQgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBtaWNoaQogICAgICAgIDoKICAgICAgICBbMS40XSAKICAgICAgICAgICAgY3JlYXRlIG5ldyBkb2N0eXBlIHBhZ2UgYWRkZWQgdG8gVHV0b3JpYWwKIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjQgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuNCB1cGRhdGUKICAgICAgICBieQogICAgICAgIGdyZWdvcgogICAgICAgIDoKICAgICAgICBbMS40XSAKICAgICAgICAgICAgamF2YXNjcmlwdCBlcnJvcnMgZHVlIHRvIGVtcHR5IHZhbHVlcy4gdGhhbmtzIHRvIHNoYXJvbiBmb3IgdGhlIGZpeAogRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuNCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS40IHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgZWdsaQogICAgICAgIDoKICAgICAgICBbMS40XSAKICAgICAgICAgICAgU2luY2UgdGhlIHJvbGUgbmFtZXMgaGF2ZSBjaGFuZ2VkIGluIG90aGVyIHBsYWNlcyB0aGlzIGZpbGUgbmVlZHMgdG8KYmUgY2hhbmdlZCBhcyB3ZWxsLgoKTm93IHRoZSBtZW51ZXMgd29yayBhZ2Fpbi4KIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjQgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuNCB1cGRhdGUKICAgICAgICBieQogICAgICAgIG1pY2hpCiAgICAgICAgOgogICAgICAgIFsxLjRdIAogICAgICAgICAgICB4cGRmIGludG8gY29uZmlnIGZpbGUgbW92ZWQKIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjQgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuNCB1cGRhdGUKICAgICAgICBieQogICAgICAgIG1pY2hpCiAgICAgICAgOgogICAgICAgIFsxLjRdIAogICAgICAgICAgICBjcmF3bGluZyBkb2N1bWVudGVkIGJldHRlcgogRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuNCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS40IHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgbWljaGkKICAgICAgICA6CiAgICAgICAgWzEuNF0gCiAgICAgICAgICAgIGVsZW1lbnRFeGlzdHMgbWV0aG9kIGFkZGVkCiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS40IHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjQgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBtaWNoaQogICAgICAgIDoKICAgICAgICBbMS40XSAKICAgICAgICAgICAgcm9ib3RzLnR4dCBtYWRlIGNvbmZpZ3VyYWJsZQogRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuNCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS40IHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgbWljaGkKICAgICAgICA6CiAgICAgICAgWzEuNF0gCiAgICAgICAgICAgIFVzYWdlIGFkZGVkCiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS40IHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjQgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBncmVnb3IKICAgICAgICA6CiAgICAgICAgWzEuNF0gCiAgICAgICAgICAgIG1ha2UgZ2VuZXJpYyByb2xlIG5hbWVzIGNvbnNpc3RlbnQuCgpyb2xlczogZWRpdCwgdmlzaXQsIGFkbWluLCByZXZpZXcKZ3JvdXBzOiBlZGl0b3IsIHZpc2l0b3IsIHJldmlld2VyLCBhZG1pbgoKdGhpcyBmaXhlcyBhbiBpc3N1ZSByZXBvcnRlZCBieSBwZXRlciBzaGlwbGV5IChlbXB0eSBub3RpZmljYXRpb24gZHJvcGRvd25zIGluIHB1Ymxpc2ggc2NyZWVuKQogRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuNCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS40IHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgZ3JlZ29yCiAgICAgICAgOgogICAgICAgIFsxLjRdIAogICAgICAgICAgICBzZXQgZW5kb3JzZWQgZGlyIGZvciBqZXR0eSB0byBXRUItSU5GL2xpYi9lbmRvcnNlZAoKaXQgd2FzIHBvaW50aW5nIHRvIGEgZGlyZWN0b3J5IHRoYXQgd2UgZG8gbm90IHNoaXAgaW4gdGhlIGJpbmFyaWVzLi4KIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjQgcmVtb3ZlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuNCByZW1vdmUKICAgICAgICBieQogICAgICAgIGdyZWdvcgogICAgICAgIDoKICAgICAgICBbMS40XSAKICAgICAgICAgICAgcmVtb3ZlIHVudXNlZCBuYXZpZ2F0aW9uIGV4cGVyaW1lbnRzCiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS40IHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjQgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBncmVnb3IKICAgICAgICA6CiAgICAgICAgWzEuNF0gCiAgICAgICAgICAgIHRoZSBsZW55YS11dGlsIGxvZ2ljc2hlZXQgaXMgbm8gbW9yZS4KIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjQgcmVtb3ZlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuNCByZW1vdmUKICAgICAgICBieQogICAgICAgIGdyZWdvcgogICAgICAgIDoKICAgICAgICBbMS40XSAKICAgICAgICAgICAgdXNlbGVzcwogRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuNCByZW1vdmU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS40IHJlbW92ZQogICAgICAgIGJ5CiAgICAgICAgZ3JlZ29yCiAgICAgICAgOgogICAgICAgIFsxLjRdIAogICAgICAgICAgICByZW1vdmUgdW51c2VkIHVzZWNhc2VzICh1bnVzZWNhc2VzPykKIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjQgcmVtb3ZlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuNCByZW1vdmUKICAgICAgICBieQogICAgICAgIGdyZWdvcgogICAgICAgIDoKICAgICAgICBbMS40XSAKICAgICAgICAgICAgc3VwZXJjZWRlZCBieSBwYWdlZW52ZWxvcGVtb2R1bGUKIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjQgcmVtb3ZlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuNCByZW1vdmUKICAgICAgICBieQogICAgICAgIGdyZWdvcgogICAgICAgIDoKICAgICAgICBbMS40XSAKICAgICAgICAgICAgcmVtb3ZlIHVuc3VzZWQgbWVudQogRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuNCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS40IHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgZWdsaQogICAgICAgIDoKICAgICAgICBbMS40XSAKICAgICAgICAgICAgTW92ZWQgdG8gQVNMIDIuMAogRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuNCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS40IHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgZWRpdGgKICAgICAgICA6CiAgICAgICAgWzEuNF0gCiAgICAgICAgICAgIHNhdmUgbWV0aG9kIG1hZGUgcHVibGljCiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS40IGFkZDwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjQgYWRkCiAgICAgICAgYnkKICAgICAgICBlZGl0aAogICAgICAgIDoKICAgICAgICBbMS40XSAKICAgICAgICAgICAgSW1wbGVtZW50YXRpb24gZm9yIGEgY29sbGVjdGlvbiwgc28gdGhhdCB4bGluayBhcmUgaW5zZXJ0ZWQgaW4gdGhlIGNvbGxlY3Rpb24KIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjQgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuNCB1cGRhdGUKICAgICAgICBieQogICAgICAgIGdyZWdvcgogICAgICAgIDoKICAgICAgICBbMS40XSAKICAgICAgICAgICAgd2FzIHN0aWxsIHJlZmVyZW5jaW5nIHJlbW92ZWQgeHNsdAogRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuNCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS40IHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgcm9rdQogICAgICAgIDoKICAgICAgICBbMS40XSAKICAgICAgICAgICAgZGljdCBpcyBjYWNoZWFibGUgbm93CiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS40IHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjQgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBncmVnb3IKICAgICAgICA6CiAgICAgICAgWzEuNF0gCiAgICAgICAgICAgIHJlbW92ZSB1bml6aCByZWZlcmVuY2UKIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjQgcmVtb3ZlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuNCByZW1vdmUKICAgICAgICBieQogICAgICAgIGdyZWdvcgogICAgICAgIDoKICAgICAgICBbMS40XSAKICAgICAgICAgICAgZXBveiBpbnRlZ3JhdGlvbiBwcmVwYXJlZCBmb3IgZXBveiAxLjAuMiByZWxlYXNlCgoqIGVwb3ogbm93IGFsc28gcnVucyBpbiBqZXR0eQoqIHJlbW92ZWQgZXBveiBmaWxlcyBmcm9tIGxlbnlhICh3ZSB1c2UgdGhlIG9yaWdpbmFscyBub3cpCiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS40IHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjQgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICByb2t1CiAgICAgICAgOgogICAgICAgIFsxLjRdIAogICAgICAgICAgICBSZW1vdmVkIHNwYWNlcyBhZnRlciBhIG1lc3NhZ2UuIENhdXNlZCBhIHdlaXJkIGJ1Zy4KU29ycnkuCiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS40IHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjQgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBncmVnb3IKICAgICAgICA6CiAgICAgICAgWzEuNF0gCiAgICAgICAgICAgIHBhc3MgcHVibGljYXRpb24gaWQgdG8gbHVjZW5lIHN0eWxlc2hlZXRzCiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS40IHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjQgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBncmVnb3IKICAgICAgICA6CiAgICAgICAgWzEuNF0gCiAgICAgICAgICAgIHVwZGF0ZWQgdG8gQVNMIDIuMAphZGRlZCBDVlMgSUQgd2hlcmUgbmVjZXNzYXJ5CiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS40IHJlbW92ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjQgcmVtb3ZlCiAgICAgICAgYnkKICAgICAgICBncmVnb3IKICAgICAgICA6CiAgICAgICAgWzEuNF0gCiAgICAgICAgICAgIExJQ0VOU0UudHh0IGlzIG5vdyBpbiByb290CiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS40IHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjQgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBncmVnb3IKICAgICAgICA6CiAgICAgICAgWzEuNF0gCiAgICAgICAgICAgIHJlbGF0ZWQgcHJvamVjdHMgdXBkYXRlZCwgbGluayBmaXhlZAogRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuNCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS40IHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgZWdsaQogICAgICAgIDoKICAgICAgICBbMS40XSAKICAgICAgICAgICAgUmV2ZXJ0IHRvIG9sZCBsaWNlbnNlcyBhcyB0aGUgamFycyB0aGF0IHdlIGluY2x1ZGUgYXJlIHN0aWxsIHVuZGVyIHRoZQpvbGQgbGljZW5zZSBkZXNwaXRlIG91ciBvd24gbGljZW5zZSBjaGFuZ2UuCiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS40IHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjQgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBncmVnb3IKICAgICAgICA6CiAgICAgICAgWzEuNF0gCiAgICAgICAgICAgIHVwZGF0ZWQgdG8gQVNMIDIuMAogRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuNCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS40IHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgZ3JlZ29yCiAgICAgICAgOgogICAgICAgIFsxLjRdIAogICAgICAgICAgICBkb2N1bWVudGF0aW9uIHVwZGF0ZWQgZm9yIDFmb3JtIGFuZCBmb3JtcyBlZGl0b3IKIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjQgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuNCB1cGRhdGUKICAgICAgICBieQogICAgICAgIHJva3UKICAgICAgICA6CiAgICAgICAgWzEuNF0gCiAgICAgICAgICAgIEFkZGVkIGkxOG4gc3VwcG9ydCBmb3IgZ2xvYmFsIENyZWF0ZSBEb2Mgc2NyZWVuLgogRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuNCBhZGQ8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS40IGFkZAogICAgICAgIGJ5CiAgICAgICAgbWljaGkKICAgICAgICA6CiAgICAgICAgWzEuNF0gCiAgICAgICAgICAgIFR1dG9yaWFsIG9uIGhvdyBhIG5ldyBkb2N0eXBlIGNhbiBiZSBjcmVhdGVkCiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS40IHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjQgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBtaWNoaQogICAgICAgIDoKICAgICAgICBbMS40XSAKICAgICAgICAgICAgVE9ETyBub3RlIGFkZGVkCiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS40IHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjQgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBtaWNoaQogICAgICAgIDoKICAgICAgICBbMS40XSAKICAgICAgICAgICAgYmV0dGVyIGhpbnQgYWRkZWQKIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjQgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuNCB1cGRhdGUKICAgICAgICBieQogICAgICAgIG1pY2hpCiAgICAgICAgOgogICAgICAgIFsxLjRdIAogICAgICAgICAgICBwYXJhbWV0ZXIgbmFtZXMgZml4ZWQKIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjQgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuNCB1cGRhdGUKICAgICAgICBieQogICAgICAgIGVnbGkKICAgICAgICA6CiAgICAgICAgWzEuNF0gCiAgICAgICAgICAgIEZpeGVkIGEgdHlwbywgaS5lLiBzb21lIG1pc3Npbmcgd2hpdGUgc3BhY2UuCiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS40IHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjQgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBtaWNoaQogICAgICAgIDoKICAgICAgICBbMS40XSAKICAgICAgICAgICAgYXV0aG9yIHJlbW92ZWQKIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjQgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuNCB1cGRhdGUKICAgICAgICBieQogICAgICAgIG1pY2hpCiAgICAgICAgOgogICAgICAgIFsxLjRdIAogICAgICAgICAgICB2ZXJzaW9uIG1vdmVkIGFuZCBhdXRob3IgYWRkZWQKIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjQgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuNCB1cGRhdGUKICAgICAgICBieQogICAgICAgIG1pY2hpCiAgICAgICAgOgogICAgICAgIFsxLjRdIAogICAgICAgICAgICBBcmNoaXZlIGxpbmtzIGFkZGVkCiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS40IHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjQgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBlZ2xpCiAgICAgICAgOgogICAgICAgIFsxLjRdIAogICAgICAgICAgICBJZiB0aGUgc2l0ZXRyZWUgbm9kZSBhbHJlYWR5IHNwZWNpZmllcyBhIGhyZWYgYXR0cmlidXRlIGNvcHkgdGhpcyBpbnRvCnRoZSBocmVmIGF0dHJpYnV0ZSBvZiB0aGUgbmF2aWdhdGlvbiBub2RlIHZlcmJhdGltLgogRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuNCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS40IHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgZ3JlZ29yCiAgICAgICAgOgogICAgICAgIFsxLjRdIAogICAgICAgICAgICAqIGNoYW5nZWQgdG8gQVNMIDIuMAoqIG1vdmVkIGF0dHJpYnV0aW9ucyBmcm9tIENSRURJVFMgdG8gTk9USUNFCiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS40IHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjQgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBhbmRyZWFzCiAgICAgICAgOgogICAgICAgIFsxLjRdIAogICAgICAgICAgICB1c2luZyBnZW5lcmljIHBhdHRlcm4gZm9yIGNvcHlpbmcgWGVyY2VzCiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS40IHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjQgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBncmVnb3IKICAgICAgICA6CiAgICAgICAgWzEuNF0gCiAgICAgICAgICAgICogQVNMIDIuMCBhcHBsaWVkCiogQ1ZTIElEIGFkZGVkIHdoZXJlIGl0IHdhcyBtaXNzaW5nCiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS40IHJlbW92ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjQgcmVtb3ZlCiAgICAgICAgYnkKICAgICAgICBncmVnb3IKICAgICAgICA6CiAgICAgICAgWzEuNF0gCiAgICAgICAgICAgIG5vIGxvbmdlciB1c2VkIGFueXdoZXJlCiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS40IHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjQgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBlZ2xpCiAgICAgICAgOgogICAgICAgIFsxLjRdIAogICAgICAgICAgICBXaGVuIGNyZWF0aW5nIGEgbmV3IGRvY3VtZW50IHJlZGlyZWN0IHRvIGl0IGFmdGVyIGNyZWF0aW5nIGl0IGFuZCBtYWtlCnN1cmUgeW91IHRha2UgdGhlIGxhbmd1YWdlIGludG8gYWNjb3VudC4KIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjQgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuNCB1cGRhdGUKICAgICAgICBieQogICAgICAgIGVnbGkKICAgICAgICA6CiAgICAgICAgWzEuNF0gCiAgICAgICAgICAgIFJlc3RyaWN0IGxhbmd1YWdlIHNlbGVjdGlvbiB0byB0aGUgbGFuZ3VhZ2VzIHNwZWNpZmllZCBmb3IgdGhpcwpwdWJsaWNhdGlvbiB1c2luZyBhIGh0bWwgZm9ybSBzZWxlY3QuCiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS40IHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjQgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBlZ2xpCiAgICAgICAgOgogICAgICAgIFsxLjRdIAogICAgICAgICAgICBSZW1vdmUgbGFzdCB0cmFjZXMgb2YgdW5pdmVyc2l0eSBvZiB6dWVyaWNoLgogRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuNCByZW1vdmU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS40IHJlbW92ZQogICAgICAgIGJ5CiAgICAgICAgYW5kcmVhcwogICAgICAgIDoKICAgICAgICBbMS40XSAKICAgICAgICAgICAgcmVtb3ZlZCB1bm5lY2Vzc2FyeSBjbGFzcwogRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuNCByZW1vdmU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS40IHJlbW92ZQogICAgICAgIGJ5CiAgICAgICAgZ3JlZ29yCiAgICAgICAgOgogICAgICAgIFsxLjRdIAogICAgICAgICAgICByZW1vdmUgZGVwcmVjYXRlZCBwYWdlZW52ZWxvcGVhY3Rpb24KIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjQgcmVtb3ZlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuNCByZW1vdmUKICAgICAgICBieQogICAgICAgIGdyZWdvcgogICAgICAgIDoKICAgICAgICBbMS40XSAKICAgICAgICAgICAgdGhlc2UgdHdvIGFyZSBubyBsb25nZXIgdXNlZCBhbnl3aGVyZQogRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuNCByZW1vdmU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS40IHJlbW92ZQogICAgICAgIGJ5CiAgICAgICAgZ3JlZ29yCiAgICAgICAgOgogICAgICAgIFsxLjRdIAogICAgICAgICAgICB0aGVzZSB0d28gYXJlIG5vIGxvbmdlciB1c2VkIGFueXdoZXJlCiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS40IHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjQgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBhbmRyZWFzCiAgICAgICAgOgogICAgICAgIFsxLjRdIAogICAgICAgICAgICBhZGRlZCBqYXZhZG9jcwogRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuNCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS40IHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgYW5kcmVhcwogICAgICAgIDoKICAgICAgICBbMS40XSAKICAgICAgICAgICAgYWRkZWQgamF2YWRvY3MKIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjQgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuNCB1cGRhdGUKICAgICAgICBieQogICAgICAgIGVnbGkKICAgICAgICA6CiAgICAgICAgWzEuNF0gCiAgICAgICAgICAgIEFkZGVkIHNvbWUgZml4bWVzLgogRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuNCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS40IHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgbWljaGkKICAgICAgICA6CiAgICAgICAgWzEuNF0gCiAgICAgICAgICAgIENyYXdsZXIgYW5kIEluZGV4ZXIgYWRkZWQKIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjQgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuNCB1cGRhdGUKICAgICAgICBieQogICAgICAgIG1pY2hpCiAgICAgICAgOgogICAgICAgIFsxLjRdIAogICAgICAgICAgICBsb2dnaW5nIGFuZCBvdXRwdXQgbW9kaWZpZWQKIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjQgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuNCB1cGRhdGUKICAgICAgICBieQogICAgICAgIG1pY2hpCiAgICAgICAgOgogICAgICAgIFsxLjRdIAogICAgICAgICAgICBjaGVjayBpZiBzYW1wbGUgZmlsZSBleGlzdHMKIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjQgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuNCB1cGRhdGUKICAgICAgICBieQogICAgICAgIG1pY2hpCiAgICAgICAgOgogICAgICAgIFsxLjRdIAogICAgICAgICAgICB2ZXJzaW9uIG1vdmVkCiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS40IHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjQgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBtaWNoaQogICAgICAgIDoKICAgICAgICBbMS40XSAKICAgICAgICAgICAgVXNhZ2UgYWRkZWQKIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjQgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuNCB1cGRhdGUKICAgICAgICBieQogICAgICAgIG1pY2hpCiAgICAgICAgOgogICAgICAgIFsxLjRdIAogICAgICAgICAgICBNYWlsaW5nIExpc3RzIGxpbmsgZml4ZWQKIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjQgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuNCB1cGRhdGUKICAgICAgICBieQogICAgICAgIGFuZHJlYXMKICAgICAgICA6CiAgICAgICAgWzEuNF0gCiAgICAgICAgICAgIHJlc3RvcmVkIHhzbHQgYXMgZGVmYXVsdCB0cmFuc2Zvcm1lciAoc29ycnkpCiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS40IHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjQgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBncmVnb3IKICAgICAgICA6CiAgICAgICAgWzEuNF0gCiAgICAgICAgICAgIHR5cG8KIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjQgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuNCB1cGRhdGUKICAgICAgICBieQogICAgICAgIGdyZWdvcgogICAgICAgIDoKICAgICAgICBbMS40XSAKICAgICAgICAgICAgdHlwbyAoeWVhaCBoaXQgbWUpCiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS40IHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjQgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBncmVnb3IKICAgICAgICA6CiAgICAgICAgWzEuNF0gCiAgICAgICAgICAgIHR5cG8KIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjQgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuNCB1cGRhdGUKICAgICAgICBieQogICAgICAgIGdyZWdvcgogICAgICAgIDoKICAgICAgICBbMS40XSAKICAgICAgICAgICAgc3R5bGVzaGVldCBmb3Igb2JqZWN0IHRhZyB3YXMgbWlzc2luZy4uLgogRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuNCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS40IHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgZ3JlZ29yCiAgICAgICAgOgogICAgICAgIFsxLjRdIAogICAgICAgICAgICBwYXNzIGluIGNvbnRleHQgcHJlZml4CiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS40IHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjQgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBncmVnb3IKICAgICAgICA6CiAgICAgICAgWzEuNF0gCiAgICAgICAgICAgIHRoZSBibG9nIHB1YmxpY2F0aW9uIHdhcyB1c2luZyBhIGRlcHJlY2F0ZWQgcmVzb3VyY2UgbWF0Y2hlci4uLgogRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuNCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS40IHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgZ3JlZ29yCiAgICAgICAgOgogICAgICAgIFsxLjRdIAogICAgICAgICAgICByZW1vdmUgdW5pemggcmVmZXJlbmNlCiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS40IHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjQgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBncmVnb3IKICAgICAgICA6CiAgICAgICAgWzEuNF0gCiAgICAgICAgICAgIHJlbW92ZSBvdXRkYXRlZCBpbmZvcm1hdGlvbgogRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuNCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS40IHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgYW5kcmVhcwogICAgICAgIDoKICAgICAgICBbMS40XSAKICAgICAgICAgICAgcmVtb3ZlZCBKWFRlbXBsYXRlR2VuZXJhdG9yIGRlY2xhcmF0aW9uCiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS40IHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjQgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBhbmRyZWFzCiAgICAgICAgOgogICAgICAgIFsxLjRdIAogICAgICAgICAgICBmaXhlZCBzb21lIGxheW91dCBpc3N1ZXMKIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjQgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuNCB1cGRhdGUKICAgICAgICBieQogICAgICAgIGVnbGkKICAgICAgICA6CiAgICAgICAgWzEuNF0gCiAgICAgICAgICAgIEFkZCBhIGRlZmF1bHQgdmFsdWUgZm9yIHRoZSBldmVudCAoaW4gc29tZSBjYXNlcyB0aGUgcmVxdWVzdCBwYXJhbWV0ZXIKZG9lc24ndCBzZWVtIHRvIGJlIHBhc3NlZCBpbikuCiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS40IHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjQgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBncmVnb3IKICAgICAgICA6CiAgICAgICAgWzEuNF0gCiAgICAgICAgICAgIGRvaC4KIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjQgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuNCB1cGRhdGUKICAgICAgICBieQogICAgICAgIG1pY2hpCiAgICAgICAgOgogICAgICAgIFsxLjRdIAogICAgICAgICAgICBOdWxsUG9pbnRlckV4Y2VwdGlvbiBmaXhlZCBhbmQgbG9nZ2luZyBpbXByb3ZlZAogRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuNCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS40IHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgbWljaGkKICAgICAgICA6CiAgICAgICAgWzEuNF0gCiAgICAgICAgICAgIFJvYm90RXhjbHVzaW9uIHBhdGNoZWQgc3VjaCB0aGF0IGFsc28gbG9jYWwgcm9ib3RzLnR4dCBhcmUgcG9zc2libGUKIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjQgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuNCB1cGRhdGUKICAgICAgICBieQogICAgICAgIG1pY2hpCiAgICAgICAgOgogICAgICAgIFsxLjRdIAogICAgICAgICAgICBjbGFzcyBuYW1lIGZpeGVkCiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS40IHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjQgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICByb2t1CiAgICAgICAgOgogICAgICAgIFsxLjRdIAogICAgICAgICAgICBTbWFsbCBpMThuIGZpeC4KIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjQgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuNCB1cGRhdGUKICAgICAgICBieQogICAgICAgIHJva3UKICAgICAgICA6CiAgICAgICAgWzEuNF0gCiAgICAgICAgICAgIEFkZGVkIHRyYW5zbGF0aW9uIGZvciB0aW1lLgogRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuNCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS40IHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgcm9rdQogICAgICAgIDoKICAgICAgICBbMS40XSAKICAgICAgICAgICAgQWRkZWQgaTE4biBzdXBwb3J0IGZvciBzY2hlZHVsZXIgdXNlY2FzZS4KIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjQgcmVtb3ZlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuNCByZW1vdmUKICAgICAgICBieQogICAgICAgIGVnbGkKICAgICAgICA6CiAgICAgICAgWzEuNF0gCiAgICAgICAgICAgIFRoaXMgY2xhc3MgaGFzIG92ZXJzdGF5ZWQgaXRzIHdlbGNvbWUgYW5kIGlzIHJlcGxhY2VkCmJ5IGpha2FydGEgY29tbW9ucyBTdHJpbmdVdGlscy4KIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjQgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuNCB1cGRhdGUKICAgICAgICBieQogICAgICAgIGVnbGkKICAgICAgICA6CiAgICAgICAgWzEuNF0gCiAgICAgICAgICAgIFVzZSB0aGUgU3RyaW5nVXRpbHMgY2xhc3MgZnJvbSBqYWthcnRhIGNvbW1vbnMgdG8gcmV2ZXJzZSBzdHJpbmdzCnJhdGhlciB0aGFuIHRoZSBjbGFzcyBmcm9tIGxlbnlhLnV0aWwuCiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS40IHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjQgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBtaWNoaQogICAgICAgIDoKICAgICAgICBbMS40XSAKICAgICAgICAgICAgbm90ZSBhYm91dCBTdHJpbmdVdGlscyB3aXRoaW4gY29tbW9ucwogRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuNCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS40IHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgZWdsaQogICAgICAgIDoKICAgICAgICBbMS40XSAKICAgICAgICAgICAgZW1iYXJyYXNzaW5nOiB0aGUgdHJlZSBpbiB0aGUgc2l0ZSB0YWIgd2FzIGhhcmQgY29kZWQgdG8gc2hvdyBlbiBhbmQKZGUuIEl0IG5vdyB1c2VzIGdldHMgdGhlIGxhbmd1YWdlcyBpbmZvIGZvciB0aGUgY3VycmVudCBwdWJsaWNhdGlvbgpmcm9tIHRoZSBwYWdlLWVudmVsb3BlIGFuZCBidWlsZHMgdGhlIHRhYnMgZHluYW1pY2FsbHkuCiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS40IHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjQgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBtaWNoaQogICAgICAgIDoKICAgICAgICBbMS40XSAKICAgICAgICAgICAgcmVkaXJlY3QgdG8gc2hlbGwgc2NyaXB0IGJlY2F1c2Ugb2YgbGlua2FnZSBlcnJvcgogRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuNCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS40IHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgbWljaGkKICAgICAgICA6CiAgICAgICAgWzEuNF0gCiAgICAgICAgICAgIGNyYXdsIHRhcmdldCBhZGRlZAogRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuNCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS40IHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgbWljaGkKICAgICAgICA6CiAgICAgICAgWzEuNF0gCiAgICAgICAgICAgIGRvbWFpbiB1cGRhdGVkCiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS40IHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjQgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBtaWNoaQogICAgICAgIDoKICAgICAgICBbMS40XSAKICAgICAgICAgICAgbG9nZ2luZyBpbXByb3ZlZAogRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuNCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS40IHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgZWdsaQogICAgICAgIDoKICAgICAgICBbMS40XSAKICAgICAgICAgICAgQWRkZWQgY29kZSB0byByZXR1cm4gYSBjc3YgbGlzdCBvZiB0aGUgcHVibGljYXRpb24gbGFuZ3VhZ2VzLgogRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuNCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS40IHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgZWdsaQogICAgICAgIDoKICAgICAgICBbMS40XSAKICAgICAgICAgICAgKiBBZGRlZCBjb2RlIHRvIHJldHVybiBhIGNzdiBsaXN0IG9mIHRoZSBwdWJsaWNhdGlvbiBsYW5ndWFnZXMKKiBSZWZhY3RvcmVkIHNvbWUgY29kZSB0byB1c2UgU3RyaW5nVXRpbHMgZnJvbSBqYWthcnRhIGNvbW1vbnMgdG8KICBjcmVhdGUgY3N2IHN0cmluZ3MuCiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS40IHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjQgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBncmVnb3IKICAgICAgICA6CiAgICAgICAgWzEuNF0gCiAgICAgICAgICAgIHByZXBlbmQgaG9zdG5hbWUgb25seSBmb3IgaW50ZXJuYWwgbGlua3MKIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjQgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuNCB1cGRhdGUKICAgICAgICBieQogICAgICAgIGVkaXRoCiAgICAgICAgOgogICAgICAgIFsxLjRdIAogICAgICAgICAgICB3aGVuIGNvbGxlY3Rpb24gaXMgc2F2ZWQsIGFkZGl0aW9uYWwgWE1MIGlzIHByZXNlcnZlZAogRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuNCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS40IHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgbWljaGkKICAgICAgICA6CiAgICAgICAgWzEuNF0gCiAgICAgICAgICAgIFVzYWdlIGFkZGVkCiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS40IHJlbW92ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjQgcmVtb3ZlCiAgICAgICAgYnkKICAgICAgICBncmVnb3IKICAgICAgICA6CiAgICAgICAgWzEuNF0gCiAgICAgICAgICAgIG5vIGxvbmdlciBuZWVkZWQKIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjQgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuNCB1cGRhdGUKICAgICAgICBieQogICAgICAgIHJva3UKICAgICAgICA6CiAgICAgICAgWzEuNF0gCiAgICAgICAgICAgIGNoYW5nZWQgZW5jb2RpbmcgdG8gdXRmLTgKIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjQgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuNCB1cGRhdGUKICAgICAgICBieQogICAgICAgIGdyZWdvcgogICAgICAgIDoKICAgICAgICBbMS40XSAKICAgICAgICAgICAgYXNzZXQgbWdtdCBkb2MgdXBkYXRlCiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS40IHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjQgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICByb2t1CiAgICAgICAgOgogICAgICAgIFsxLjRdIAogICAgICAgICAgICBpMThuIHN0dWZmCiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS40IHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjQgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBhbmRyZWFzCiAgICAgICAgOgogICAgICAgIFsxLjRdIAogICAgICAgICAgICByZWZhY3RvcmluZwogRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuNCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS40IHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgYW5kcmVhcwogICAgICAgIDoKICAgICAgICBbMS40XSAKICAgICAgICAgICAgaW1wcm92ZWQgamF2YWRvY3MsIHNvbWUgcmVmYWN0b3JpbmcKIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjQgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuNCB1cGRhdGUKICAgICAgICBieQogICAgICAgIHJva3UKICAgICAgICA6CiAgICAgICAgWzEuNF0gCiAgICAgICAgICAgIGkxOG4gZml4ZXMuCiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS40IHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjQgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICByb2t1CiAgICAgICAgOgogICAgICAgIFsxLjRdIAogICAgICAgICAgICBpMThuIHN0dWZmCiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS40IHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjQgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBtaWNoaQogICAgICAgIDoKICAgICAgICBbMS40XSAKICAgICAgICAgICAgQ29jb29uIDIuMS41LWRldiBtZW50aW9uZWQKIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjQgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuNCB1cGRhdGUKICAgICAgICBieQogICAgICAgIHJva3UKICAgICAgICA6CiAgICAgICAgWzEuNF0gCiAgICAgICAgICAgIEFkZGVkIGkxOG4gc3VwcG9ydCBvbiBjb3B5IGRvYyBzY3JlZW4uCiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS40IHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjQgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBncmVnb3IKICAgICAgICA6CiAgICAgICAgWzEuNF0gCiAgICAgICAgICAgIGRpc2FibGUtb3V0cHV0LWVzY2FwaW5nIHdhcyBpbGxlZ2FsIG9uIHRoZSAmbHQ7c3R5bGVzaGVldCZndDsgZWxlbWVudAogRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuNCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS40IHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgbWljaGkKICAgICAgICA6CiAgICAgICAgWzEuNF0gCiAgICAgICAgICAgIG5vIHN1Y2ggc2NoZW1hIG1vZGlmaWVkCiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS40IHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjQgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBtaWNoaQogICAgICAgIDoKICAgICAgICBbMS40XSAKICAgICAgICAgICAgY29uZmlndXJhdGlvbiBpbXByb3ZlZAogRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuNCBhZGQ8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS40IGFkZAogICAgICAgIGJ5CiAgICAgICAgbWljaGkKICAgICAgICA6CiAgICAgICAgWzEuNF0gCiAgICAgICAgICAgIGNvbmZpZ3VyYXRpb24gaW1wcm92ZWQKIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjQgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuNCB1cGRhdGUKICAgICAgICBieQogICAgICAgIHJva3UKICAgICAgICA6CiAgICAgICAgWzEuNF0gCiAgICAgICAgICAgIC0gUGFyYW1ldHJpemVkIHRyYW5zbGF0aW9ucwotIFNtYWxsIHRleHQgY2hhbmdlcwogRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuNCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS40IHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgcm9rdQogICAgICAgIDoKICAgICAgICBbMS40XSAKICAgICAgICAgICAgUGFyYW1ldHJpemVkIHNvbWUgdHJhbnNsYXRpb25zLgogRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuNCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS40IHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgcm9rdQogICAgICAgIDoKICAgICAgICBbMS40XSAKICAgICAgICAgICAgaTE4biBzdXBwb3J0IGZvciBhcmNoaXZlIHNjcmVlbgogRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuNCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS40IHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgcm9rdQogICAgICAgIDoKICAgICAgICBbMS40XSAKICAgICAgICAgICAgLSBBZGRlZCB0cmFuc2xhdGlvbnMgKHVzZWxlc3MpIGZvciBtb3ZlIGRvd24uCi0gU21hbGwgZml4ZXMKIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjQgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuNCB1cGRhdGUKICAgICAgICBieQogICAgICAgIHJva3UKICAgICAgICA6CiAgICAgICAgWzEuNF0gCiAgICAgICAgICAgIEFkZGVkIGkxOG4gc3VwcG9ydC4gSXMgdGhpcyBmaWxlIHJlYWxseSB1c2VkPyBpZiBub3QsIHdlIHNvdWxkIHJlbW92ZSBpdC4KIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjQgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuNCB1cGRhdGUKICAgICAgICBieQogICAgICAgIGFuZHJlYXMKICAgICAgICA6CiAgICAgICAgWzEuNF0gCiAgICAgICAgICAgIGFkZGVkIGdldFJlcXVlc3QoKSBtZXRob2QKIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjQgcmVtb3ZlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuNCByZW1vdmUKICAgICAgICBieQogICAgICAgIGFuZHJlYXMKICAgICAgICA6CiAgICAgICAgWzEuNF0gCiAgICAgICAgICAgIHJlbW92ZWQgU2l0ZW1hcCBjbGFzcyAobm8gcmVmZXJlbmNlcyBpbiBjb3JlKQogRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuNCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS40IHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgcm9rdQogICAgICAgIDoKICAgICAgICBbMS40XSAKICAgICAgICAgICAgaTE4biBzdXBwb3J0IGZvciBkZWFjdGl2YXRlIGFuZCBkZWxldGUgc2NyZWVucy4KIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjQgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuNCB1cGRhdGUKICAgICAgICBieQogICAgICAgIHJva3UKICAgICAgICA6CiAgICAgICAgWzEuNF0gCiAgICAgICAgICAgIEFkZGVkIGkxOG4gc3VwcG9ydCBmb3IgaW5mby9zY2hlZHVsZXIgc2NyZWVuLgogRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuNCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS40IHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgcm9rdQogICAgICAgIDoKICAgICAgICBbMS40XSAKICAgICAgICAgICAgSSBkaWQgaXQgYWdhaW46IE1vcmUgaTE4biBmb3IgaW5mbyBzY3JlZW5zLgooIFRoaXMgaXMgc2hpdCBib3Jpbmcgd29yayA6KQogRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuNCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS40IHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgcm9rdQogICAgICAgIDoKICAgICAgICBbMS40XSAKICAgICAgICAgICAgQWRkZWQgZGF0ZS1pMThuIHdpdGggaXNvIGZvcm1hdCBhcyBwcm9wb3NlZCBieSBub2JieSBpbiBsZW55YS1kZXYuCiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS40IHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjQgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICByb2t1CiAgICAgICAgOgogICAgICAgIFsxLjRdIAogICAgICAgICAgICBpMThuIHN0dWZmLgogRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuNCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS40IHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgcm9rdQogICAgICAgIDoKICAgICAgICBbMS40XSAKICAgICAgICAgICAgU21hbGwgaTE4biBmaXguCiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS40IHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjQgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICByb2t1CiAgICAgICAgOgogICAgICAgIFsxLjRdIAogICAgICAgICAgICBTbWFsbCBpMThuIGZpeC4KIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjQgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuNCB1cGRhdGUKICAgICAgICBieQogICAgICAgIHJva3UKICAgICAgICA6CiAgICAgICAgWzEuNF0gCiAgICAgICAgICAgIEFkZGVkIGkxOG4gc3VwcG9ydCBmb3IgaW5mbyBzY3JlZW5zLgogRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuNCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS40IHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgcm9rdQogICAgICAgIDoKICAgICAgICBbMS40XSAKICAgICAgICAgICAgU21hbGwgaTE4biBmaXguCiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS40IHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjQgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICByb2t1CiAgICAgICAgOgogICAgICAgIFsxLjRdIAogICAgICAgICAgICBBZGRlZCBpMThuIHN1cHBvcnQvdHJhbnNmb3JtYXRpb24gZm9yIGluZm8gc2NyZWVucwogRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuNCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS40IHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgcm9rdQogICAgICAgIDoKICAgICAgICBbMS40XSAKICAgICAgICAgICAgTWlub3IgaTE4biBrZXkgZml4LgogRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuNCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS40IHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgcm9rdQogICAgICAgIDoKICAgICAgICBbMS40XSAKICAgICAgICAgICAgVXVwcy4gQWRkZWQgIm1pdCIgYWdhaW4gOikKIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjQgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuNCB1cGRhdGUKICAgICAgICBieQogICAgICAgIHJva3UKICAgICAgICA6CiAgICAgICAgWzEuNF0gCiAgICAgICAgICAgIEFkZGVkIGkxOG4gc3VwcG9ydCBmb3IgYWRtaW4gc2l0ZXRyZWUuCiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS40IHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjQgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICByb2t1CiAgICAgICAgOgogICAgICAgIFsxLjRdIAogICAgICAgICAgICBSZXZlcnRpbmc6IFRvIG1hbnkgcHJvYmxlbXMgd2l0aCBub3JtYWwgbGFuZ3VhZ2Ugc2VsZWN0aW9uIHNjaGVtZS4KIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjQgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuNCB1cGRhdGUKICAgICAgICBieQogICAgICAgIHJva3UKICAgICAgICA6CiAgICAgICAgWzEuNF0gCiAgICAgICAgICAgIFVzaW5nIHJlcXVlc3Q6bG9jYWxlIGFzIGRlZmF1bHQgbGFuZ3VhZ2UgZm9yIHNpdGV0cmVlMm5hdiBpbiBsZW55YS94c2x0KiouCkxhbmd1YWdlIHNlbGVjdGlvbiBhZG1pbiBuYXZpZ2F0aW9uIHdvcmtzIG5vdy4KIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjQgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuNCB1cGRhdGUKICAgICAgICBieQogICAgICAgIG1pY2hpCiAgICAgICAgOgogICAgICAgIFsxLjRdIAogICAgICAgICAgICBsZW55YSBwcmVmaXggYWRkZWQKIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjQgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuNCB1cGRhdGUKICAgICAgICBieQogICAgICAgIG1pY2hpCiAgICAgICAgOgogICAgICAgIFsxLjRdIAogICAgICAgICAgICB2YWxpZGF0aW9uIGJlZm9yZSBzYXZpbmcgdG1wIHZlcnNpb24KIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjQgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuNCB1cGRhdGUKICAgICAgICBieQogICAgICAgIG1pY2hpCiAgICAgICAgOgogICAgICAgIFsxLjRdIAogICAgICAgICAgICB3YXJuIGJ5IGluZm8gY2F0ZWdvcnkgcmVwbGFjZWQKIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjQgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuNCB1cGRhdGUKICAgICAgICBieQogICAgICAgIG1pY2hpCiAgICAgICAgOgogICAgICAgIFsxLjRdIAogICAgICAgICAgICBhdHRyaWJ1dGVzIGJ1ZyBmaXhlZAogRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuNCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS40IHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgZ3JlZ29yCiAgICAgICAgOgogICAgICAgIFsxLjRdIAogICAgICAgICAgICB1bm5lY2Vzc2FyeSB2YXJpYWJsZQogRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuNCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS40IHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgbWljaGkKICAgICAgICA6CiAgICAgICAgWzEuNF0gCiAgICAgICAgICAgIGVzY2FwaW5nIG9mIHNwZWNpYWwgY2hhcmFjdGVycyBvZiBhdHRyaWJ1dGVzCiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS40IHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjQgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBncmVnb3IKICAgICAgICA6CiAgICAgICAgWzEuNF0gCiAgICAgICAgICAgIGF0dGFjayB0aGUgY2xhc3MgZnJvbSBoZWxsIGFuZCByZW1vdmUgdW5uZWNlc3NhcnkgZmllbGRzIGFuZCBtZXRob2RzLgogRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuNCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS40IHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgZ3JlZ29yCiAgICAgICAgOgogICAgICAgIFsxLjRdIAogICAgICAgICAgICBjb25maWd1cmF0aW9uZmlsZSB3YXMgbmV2ZXIgcmVhZAogRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuNCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS40IHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgZ3JlZ29yCiAgICAgICAgOgogICAgICAgIFsxLjRdIAogICAgICAgICAgICBwcml2YXRlIG1haW4oKSBpcyBuZXZlciB1c2VkCiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS40IHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjQgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBncmVnb3IKICAgICAgICA6CiAgICAgICAgWzEuNF0gCiAgICAgICAgICAgIGZpeCBkYyBkZXByZWNhdGlvbiB3YXJuaW5nCiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS40IHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjQgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBncmVnb3IKICAgICAgICA6CiAgICAgICAgWzEuNF0gCiAgICAgICAgICAgIHVubmVjZXNzYXJ5IDsgYWNjb3JkaW5nIHRvIGVjbGlwc2UKIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjQgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuNCB1cGRhdGUKICAgICAgICBieQogICAgICAgIG1pY2hpCiAgICAgICAgOgogICAgICAgIFsxLjRdIAogICAgICAgICAgICBjdXJyZW50IHdvcmtpbmcgdmVyc2lvbnMgYWRkZWQKIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjQgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuNCB1cGRhdGUKICAgICAgICBieQogICAgICAgIGdyZWdvcgogICAgICAgIDoKICAgICAgICBbMS40XSAKICAgICAgICAgICAgZml4IGRlcHJlY2F0aW9uIHdhcm5pbmdzIHdpdGggaHR0cGNsaWVudCAyLjAKIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjQgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuNCB1cGRhdGUKICAgICAgICBieQogICAgICAgIGFuZHJlYXMKICAgICAgICA6CiAgICAgICAgWzEuNF0gCiAgICAgICAgICAgIHJlbW92ZWQgdW51c2VkIGZpZWxkCiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS40IHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjQgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBncmVnb3IKICAgICAgICA6CiAgICAgICAgWzEuNF0gCiAgICAgICAgICAgIHJlbW92ZSB1bnVzZWQgaW1wb3J0cwogRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuNCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS40IHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgZ3JlZ29yCiAgICAgICAgOgogICAgICAgIFsxLjRdIAogICAgICAgICAgICByZW1vdmUgdW5uZWNlc3NhcnkgY2FzdHMKIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjQgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuNCB1cGRhdGUKICAgICAgICBieQogICAgICAgIGVnbGkKICAgICAgICA6CiAgICAgICAgWzEuNF0gCiAgICAgICAgICAgIENvbW1lbnQgb3V0IHRoZSBleGFtcGxlLgogRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuNCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS40IHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgZWdsaQogICAgICAgIDoKICAgICAgICBbMS40XSAKICAgICAgICAgICAgZW5hYmxlIHRoZSBwaXBlbGluZSB0aGF0IHRha2VzIHRoZSBjc3MgZnJvbSBhbiB4bWwgYW5kIGRvZXMgc29tZQpjb250ZXh0LXByZWZpeCB0cmFuc2Zvcm1hdGlvbiBvbiBpdC4KIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjQgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuNCB1cGRhdGUKICAgICAgICBieQogICAgICAgIGFuZHJlYXMKICAgICAgICA6CiAgICAgICAgWzEuNF0gCiAgICAgICAgICAgIHJlbW92ZSB1bnVzZWQgcHJpdmF0ZSBmaWVsZAogRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuNCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS40IHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgYW5kcmVhcwogICAgICAgIDoKICAgICAgICBbMS40XSAKICAgICAgICAgICAgY2hhbmdlZCBwcmVyZXFzIHRvIENvY29vbiAyLjEuNAogRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuNCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS40IHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgZ3JlZ29yCiAgICAgICAgOgogICAgICAgIFsxLjRdIAogICAgICAgICAgICBmdXJ0aGVyIGRvY3MtbmV3IGNsZWFudXAKIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjQgcmVtb3ZlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuNCByZW1vdmUKICAgICAgICBieQogICAgICAgIGdyZWdvcgogICAgICAgIDoKICAgICAgICBbMS40XSAKICAgICAgICAgICAgd2Ugbm8gbG9uZ2VyIHVzZSBvdXIgb3duIGZvcnJlc3Rib3QgYW5kIHRoZXJlZm9yZSBkbyBub3QgbmVlZCB0aGVzZSBsaWJyYXJpZXMuCiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS40IHJlbW92ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjQgcmVtb3ZlCiAgICAgICAgYnkKICAgICAgICBncmVnb3IKICAgICAgICA6CiAgICAgICAgWzEuNF0gCiAgICAgICAgICAgIHJlZHVjaW5nIGRvY3MtbmV3IHRvIHhkb2Mgc2VydmluZwogRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuNCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS40IHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgZ3JlZ29yCiAgICAgICAgOgogICAgICAgIFsxLjRdIAogICAgICAgICAgICBieWUgYnllIHhvcHVzCiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS40IHJlbW92ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjQgcmVtb3ZlCiAgICAgICAgYnkKICAgICAgICBncmVnb3IKICAgICAgICA6CiAgICAgICAgWzEuNF0gCiAgICAgICAgICAgIGxvZzRqIGlzIHByb3ZpZGVkIGJ5IHRoZSBkZWxpIGJsb2NrCiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS40IHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjQgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBncmVnb3IKICAgICAgICA6CiAgICAgICAgWzEuNF0gCiAgICAgICAgICAgIGFsc28gZXhjbHVkZSBvYmogYW5kIHJlcG9zaXRvcnkgYmxvY2tzCiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS40IHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjQgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBncmVnb3IKICAgICAgICA6CiAgICAgICAgWzEuNF0gCiAgICAgICAgICAgIHN5bmNoZWQgd2l0aCAyLjEuNS1kZXYKCndlIG5vdyBleGNsdWRlIHRoZSBsaW5vdHlwZSwgam1zLCBtYWlsLCBwYXJhbm9pZCwgcG9ydGFsLWZ3LCBwcmVjZXB0LCBzbGlkZSBhbmQgd2ViZGF2IGJsb2NrcwogRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuNCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS40IHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgYW5kcmVhcwogICAgICAgIDoKICAgICAgICBbMS40XSAKICAgICAgICAgICAgcmVtb3ZlZCByZWZlcmVuY2UgdG8gcGF0Y2hlZCBSZXF1ZXN0UGFyYW1BY3Rpb24KIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjQgcmVtb3ZlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuNCByZW1vdmUKICAgICAgICBieQogICAgICAgIGFuZHJlYXMKICAgICAgICA6CiAgICAgICAgWzEuNF0gCiAgICAgICAgICAgIHJlbW92ZWQgb2Jzb2xldGUgUmVxdWVzdFBhcmFtQWN0aW9uCiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS40IHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjQgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBhbmRyZWFzCiAgICAgICAgOgogICAgICAgIFsxLjRdIAogICAgICAgICAgICBhZGRlZCBkdWJsaW4gY29yZSBtb2R1bGUgZGVjbGFyYXRpb24KIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjQgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuNCB1cGRhdGUKICAgICAgICBieQogICAgICAgIGFuZHJlYXMKICAgICAgICA6CiAgICAgICAgWzEuNF0gCiAgICAgICAgICAgIHVzaW5nIGR1YmxpbiBjb3JlIG1vZHVsZSBpbnN0ZWFkIG9mIHBhZ2UgZW52ZWxvcGUgREMgYXR0cmlidXRlcwogRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuNCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS40IHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgZ3JlZ29yCiAgICAgICAgOgogICAgICAgIFsxLjRdIAogICAgICAgICAgICBkb3dubG9hZCBsaW5rIGdlbmVyYWxpemVkCiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS40IGFkZDwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjQgYWRkCiAgICAgICAgYnkKICAgICAgICBhbmRyZWFzCiAgICAgICAgOgogICAgICAgIFsxLjRdIAogICAgICAgICAgICBhZGRlZCBkdWJsaW4gY29yZSBtb2R1bGUKIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjQgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuNCB1cGRhdGUKICAgICAgICBieQogICAgICAgIGFuZHJlYXMKICAgICAgICA6CiAgICAgICAgWzEuNF0gCiAgICAgICAgICAgIHNldCBkdWJsaW4gY29yZSBrZXlzIHRvIGRlcHJlY2F0ZWQKIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjQgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuNCB1cGRhdGUKICAgICAgICBieQogICAgICAgIGFuZHJlYXMKICAgICAgICA6CiAgICAgICAgWzEuNF0gCiAgICAgICAgICAgIHJldHVybiB0ZXJtcyB3aXRoIGdldEZpcnN0VmFsdWUoKQogRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuNCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS40IHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgbWljaGkKICAgICAgICA6CiAgICAgICAgWzEuNF0gCiAgICAgICAgICAgIG1pdCBhZGRlZAogRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuNCByZW1vdmU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS40IHJlbW92ZQogICAgICAgIGJ5CiAgICAgICAgYW5kcmVhcwogICAgICAgIDoKICAgICAgICBbMS40XSAKICAgICAgICAgICAgcmVwbGFjZWQgWG9wdXNNb2R1bGUgd2l0aCBEZWZhdWx0c01ldGFNb2R1bGUKIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjQgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuNCB1cGRhdGUKICAgICAgICBieQogICAgICAgIGdyZWdvcgogICAgICAgIDoKICAgICAgICBbMS40XSAKICAgICAgICAgICAgcmVkdWNlIHZlcmJvc2l0eQogRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuNCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS40IHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgYW5kcmVhcwogICAgICAgIDoKICAgICAgICBbMS40XSAKICAgICAgICAgICAgYWRkZWQgeG9wdXMgY29udGV4dCBjb25maWd1cmF0aW9uCiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS40IHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjQgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBhbmRyZWFzCiAgICAgICAgOgogICAgICAgIFsxLjRdIAogICAgICAgICAgICByZW1vdmVkIGNvbW1lbnRlZC1vdXQgY29kZQogRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuNCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS40IHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgYW5kcmVhcwogICAgICAgIDoKICAgICAgICBbMS40XSAKICAgICAgICAgICAgY29uZmlndXJpbmcgeG9wdXMgdXNpbmcgaW5wdXQgbW9kdWxlCiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS40IHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjQgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBhbmRyZWFzCiAgICAgICAgOgogICAgICAgIFsxLjRdIAogICAgICAgICAgICBwYXRjaGluZyBjb2Nvb24ueGNvbmYgd2l0aCB4b3B1cyBtb2R1bGUKIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjQgYWRkPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuNCBhZGQKICAgICAgICBieQogICAgICAgIGFuZHJlYXMKICAgICAgICA6CiAgICAgICAgWzEuNF0gCiAgICAgICAgICAgIGFkZGVkIHhvcHVzIGNvbmZpZyBtb2R1bGUKIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjQgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuNCB1cGRhdGUKICAgICAgICBieQogICAgICAgIGFuZHJlYXMKICAgICAgICA6CiAgICAgICAgWzEuNF0gCiAgICAgICAgICAgIHJlbW92ZWQgdXNhZ2Ugb2YgZGVwcmVjYXRlZCBjb2RlCiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS40IHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjQgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBtaWNoaQogICAgICAgIDoKICAgICAgICBbMS40XSAKICAgICAgICAgICAgZG9uJ3QgY29weSB0aGUgZmlsZXMKIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjQgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuNCB1cGRhdGUKICAgICAgICBieQogICAgICAgIG1pY2hpCiAgICAgICAgOgogICAgICAgIFsxLjRdIAogICAgICAgICAgICBkZWJ1Z2dpbmcgcXVlcnkgc3RyaW5nIHJlIGVuY29kaW5nCiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS40IHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjQgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBhbmRyZWFzCiAgICAgICAgOgogICAgICAgIFsxLjRdIAogICAgICAgICAgICByZW1vdmVkIHVzYWdlIG9mIGRlcHJlY2F0ZWQgbWV0aG9kcwogRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuNCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS40IHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgYW5kcmVhcwogICAgICAgIDoKICAgICAgICBbMS40XSAKICAgICAgICAgICAgcmVtb3ZlZCB1c2FnZSBvZiBkZXByZWNhdGVkIG1ldGhvZHMKIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjQgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuNCB1cGRhdGUKICAgICAgICBieQogICAgICAgIGFuZHJlYXMKICAgICAgICA6CiAgICAgICAgWzEuNF0gCiAgICAgICAgICAgIHNldCBzcGVjaWZpYyBkdWJsaW4gY29yZSBtZXRob2RzIHRvIEBkZXByZWNhdGVkCiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS40IHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjQgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBhbmRyZWFzCiAgICAgICAgOgogICAgICAgIFsxLjRdIAogICAgICAgICAgICBkb24ndCBzaG93IGluaGVyaXRlZCByaWdodHMgZm9yIHRvcC1sZXZlbCBVUkxzCiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS40IHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjQgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBhbmRyZWFzCiAgICAgICAgOgogICAgICAgIFsxLjRdIAogICAgICAgICAgICBzcGVjaWZpYyBBQyBoYW5kbGluZyBmb3IgYXJjaGl2ZSBhbmQgdHJhc2gKIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjQgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuNCB1cGRhdGUKICAgICAgICBieQogICAgICAgIGFuZHJlYXMKICAgICAgICA6CiAgICAgICAgWzEuNF0gCiAgICAgICAgICAgIHJlbW92ZWQgdW51c2VkIHByaXZhdGUgZmllbGQKIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjQgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuNCB1cGRhdGUKICAgICAgICBieQogICAgICAgIGFuZHJlYXMKICAgICAgICA6CiAgICAgICAgWzEuNF0gCiAgICAgICAgICAgIHJlbW92ZWQgdW51c2VkIGltcG9ydAogRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuNCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS40IHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgYW5kcmVhcwogICAgICAgIDoKICAgICAgICBbMS40XSAKICAgICAgICAgICAgYWRkZWQgamF2YWRvY3MKIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjQgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuNCB1cGRhdGUKICAgICAgICBieQogICAgICAgIGFuZHJlYXMKICAgICAgICA6CiAgICAgICAgWzEuNF0gCiAgICAgICAgICAgIHJlbW92ZWQgdXNhZ2Ugb2YgZGVwcmVjYXRlZCBBdmFsb24gY29tcG9uZW50cwogRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuNCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS40IHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgYW5kcmVhcwogICAgICAgIDoKICAgICAgICBbMS40XSAKICAgICAgICAgICAgZml4ZWQgeGxpbmsgbmFtZXNwYWNlCiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS40IHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjQgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBhbmRyZWFzCiAgICAgICAgOgogICAgICAgIFsxLjRdIAogICAgICAgICAgICBmaXhlZCB4bGluayBuYW1lc3BhY2UKIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjQgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuNCB1cGRhdGUKICAgICAgICBieQogICAgICAgIGFuZHJlYXMKICAgICAgICA6CiAgICAgICAgWzEuNF0gCiAgICAgICAgICAgIGZpeGVkIFhMaW5rIG5hbWVzcGFjZSBoYW5kbGluZwogRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuNCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS40IHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgYW5kcmVhcwogICAgICAgIDoKICAgICAgICBbMS40XSAKICAgICAgICAgICAgZml4ZWQgWExpbmsgbmFtZXNwYWNlIGhhbmRsaW5nCiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS40IHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjQgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBhbmRyZWFzCiAgICAgICAgOgogICAgICAgIFsxLjRdIAogICAgICAgICAgICAtIHJlZmFjdG9yaW5nCi0gcmVtb3ZlZCBzb21lIHByZW1hdHVyZSBtZXRob2RzCiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS40IHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjQgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBtaWNoaQogICAgICAgIDoKICAgICAgICBbMS40XSAKICAgICAgICAgICAgc2VhcmNoIHRhcmdldCBhZGRlZAogRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuNCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS40IHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgbWljaGkKICAgICAgICA6CiAgICAgICAgWzEuNF0gCiAgICAgICAgICAgIHNlYXJjaCBtb3ZlZCBpbnRvIG93biBtZXRob2QKIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjQgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuNCB1cGRhdGUKICAgICAgICBieQogICAgICAgIG1pY2hpCiAgICAgICAgOgogICAgICAgIFsxLjRdIAogICAgICAgICAgICBsaWJyYXJpZXMgdXBkYXRlZCBhbmQgZGVidWcgYXJndW1lbnQgcmVtb3ZlZAogRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuNCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS40IHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgbWljaGkKICAgICAgICA6CiAgICAgICAgWzEuNF0gCiAgICAgICAgICAgIGJldHRlciBpbnRyb3NwZWN0aW9uIHN1cHBvcnQgYWRkZWQKIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjQgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuNCB1cGRhdGUKICAgICAgICBieQogICAgICAgIG1pY2hpCiAgICAgICAgOgogICAgICAgIFsxLjRdIAogICAgICAgICAgICBJbmRleGVyIGFkZGVkIGFuZCBmb3J1bSBDcmVhdG9yIHJlbW92ZWQKIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjQgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuNCB1cGRhdGUKICAgICAgICBieQogICAgICAgIG1pY2hpCiAgICAgICAgOgogICAgICAgIFsxLjRdIAogICAgICAgICAgICBJbmRleGluZyBpbXByb3ZlZAogRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuNCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS40IHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgbWljaGkKICAgICAgICA6CiAgICAgICAgWzEuNF0gCiAgICAgICAgICAgIFRvbWNhdCBiaW5hcnkgaW5zdGFsbGF0aW9uIGFkZGVkCiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS40IHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjQgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBtaWNoaQogICAgICAgIDoKICAgICAgICBbMS40XSAKICAgICAgICAgICAgdHlwbyBmaXhlZAogRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuNCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS40IHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgbWljaGkKICAgICAgICA6CiAgICAgICAgWzEuNF0gCiAgICAgICAgICAgIHJlbW92ZWQgZWRpdCBlbnRyeQogRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuNCBhZGQ8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS40IGFkZAogICAgICAgIGJ5CiAgICAgICAgbWljaGkKICAgICAgICA6CiAgICAgICAgWzEuNF0gCiAgICAgICAgICAgIGFkZGluZyBlZGl0IGVudHJ5CiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS40IHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjQgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICByb2t1CiAgICAgICAgOgogICAgICAgIFsxLjRdIAogICAgICAgICAgICBBZGRlZCBpMThuIHN1cHBvcnQgZm9yIElQIFJhbmdlIGFkbWluIHNjcmVlbnMuCiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS40IHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjQgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBhbmRyZWFzCiAgICAgICAgOgogICAgICAgIFsxLjRdIAogICAgICAgICAgICBhZGRlZCBEb2N1bWVudFNldFZpc2l0b3IKIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjQgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuNCB1cGRhdGUKICAgICAgICBieQogICAgICAgIGFuZHJlYXMKICAgICAgICA6CiAgICAgICAgWzEuNF0gCiAgICAgICAgICAgIHNvbWUgbGl0dGxlIHJlZmFjdG9yaW5nCiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS40IHJlbW92ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjQgcmVtb3ZlCiAgICAgICAgYnkKICAgICAgICBncmVnb3IKICAgICAgICA6CiAgICAgICAgWzEuNF0gCiAgICAgICAgICAgIG9ic29sZXRlIHNhbXBsZQogRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuNCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS40IHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgcm9rdQogICAgICAgIDoKICAgICAgICBbMS40XSAKICAgICAgICAgICAgQ29tcGxldGVkIGkxOG4gb2YgdXNlciBhZG1pbiBzY3JlZW5zLgogRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuNCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS40IHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgZ3JlZ29yCiAgICAgICAgOgogICAgICAgIFsxLjRdIAogICAgICAgICAgICB1cGRhdGUgVE9ETwogRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuNCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS40IHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgYW5kcmVhcwogICAgICAgIDoKICAgICAgICBbMS40XSAKICAgICAgICAgICAgdXBncmFkZSB0byBDb2Nvb24gMi4xLjQ6IFJlc291cmNlRXhpc3RzU2VsZWN0b3IKIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjQgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuNCB1cGRhdGUKICAgICAgICBieQogICAgICAgIGFuZHJlYXMKICAgICAgICA6CiAgICAgICAgWzEuNF0gCiAgICAgICAgICAgIHN3aXRjaGVkIHRvIHhlcmNlcyBqYXIgb2YgQ29jb29uIDIuMS40CiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS40IHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjQgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBhbmRyZWFzCiAgICAgICAgOgogICAgICAgIFsxLjRdIAogICAgICAgICAgICBjYXN0aW5nIG1hbmFnZXIgdG8gb2JqZWN0IHRvIGF2b2lkIGNsYXNoCiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS40IHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjQgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBhbmRyZWFzCiAgICAgICAgOgogICAgICAgIFsxLjRdIAogICAgICAgICAgICBhZGRlZCBjYXN0IGZvciBjb21wb25lbnQvc2VydmljZSBtYW5hZ2VyCiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS40IHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjQgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBtaWNoaQogICAgICAgIDoKICAgICAgICBbMS40XSAKICAgICAgICAgICAgY3JlYXRlIGFuZCBlZGl0IGVudHJ5IGFkZGVkCiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS40IHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjQgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICByb2t1CiAgICAgICAgOgogICAgICAgIFsxLjRdIAogICAgICAgICAgICAuLi5tb3JlIGkxOG4gZm9yIHVzZXIgYWRtaW4gc2NyZWVuLgogRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuNCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS40IHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgcm9rdQogICAgICAgIDoKICAgICAgICBbMS40XSAKICAgICAgICAgICAgTW9yZSBpMThuIGZvciB1c2VyIGFkbWluIHNjcmVlbnMgYW5kIGEgZml4IGZvciBncm91cCBhZG1pbiBzY3JlZW5zLgogRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuNCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS40IHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgcm9rdQogICAgICAgIDoKICAgICAgICBbMS40XSAKICAgICAgICAgICAgQWRkZWQgbW9yZSBpMThuIGZvciBncm91cCBhZG1pbiBzY3JlZW4uCiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS40IHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjQgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBhbmRyZWFzCiAgICAgICAgOgogICAgICAgIFsxLjRdIAogICAgICAgICAgICBtYWRlIGl0IGNvbXBhdGlibGUgd2l0aCBDb2Nvb24gMi4xLjQKIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjQgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuNCB1cGRhdGUKICAgICAgICBieQogICAgICAgIGVnbGkKICAgICAgICA6CiAgICAgICAgWzEuNF0gCiAgICAgICAgICAgIENsZWFuIHVwIHRoZSBEdWJsaW4gQ29yZSBpbnRlcmZhY2U6CgoqIFRoZSBpbnN0YW5jZSgpIGlzIHByb3RlY3RlZCBhZ2FpbiAoYXMgaW4gdGhlIEdvRiBwcm94eQogIHBhdHRlcm4pCiogVGhlIHJlZnJlc2goKSBtZXRob2QgaXMgZ29uZSBhbmQgaXMgcmVwbGFjZWQgYnkgdGhlCiAgcmVwbGFjZUJ5KCkgbWV0aG9kCiogVGhlcmUgaXMgYSBuZXcgbWV0aG9kIHJlcGxhY2VCeSgpIHdoaWNoIGxldHMgeW91CiAgcmVwbGFjZSB0aGUgY29udGVudCBvZiBhIGR1YmxpbiBjb3JlIGJ5IGFub3RoZXIuCiogVGhlIEZpbGVQdWJsaWNhdGlvbiBjbGFzcyBub3cgdXNlcyB0aGUgcmVwbGFjZUJ5KCkKICBtZXRob2QgYW5kIG5vIGxvbmdlciByZXF1aXJlcyBpbnRlcm5hbCBrbm93bGVkZ2Ugb2YgdGhlCiAgZHVibGluIGNvcmUgaW1wbGVtZW50YXRpb24uCiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS40IHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjQgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBhbmRyZWFzCiAgICAgICAgOgogICAgICAgIFsxLjRdIAogICAgICAgICAgICByZXZlcnRpbmcgY2hhbmdlcyAoZGlkbid0IHdvcmsgd2l0aCAyLjEuMikKIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjQgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuNCB1cGRhdGUKICAgICAgICBieQogICAgICAgIGFuZHJlYXMKICAgICAgICA6CiAgICAgICAgWzEuNF0gCiAgICAgICAgICAgIC0gcmVwbGFjZWQgZGVwcmVjYXRlZCBDb25maWd1cmFibGVDb21wb3NlckFjdGlvbiBieSBDb25maWd1cmFibGVTZXJ2aWNhYmxlQWN0aW9uCi0gYWRkZWQgamF2YWRvY3MKIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjQgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuNCB1cGRhdGUKICAgICAgICBieQogICAgICAgIGFuZHJlYXMKICAgICAgICA6CiAgICAgICAgWzEuNF0gCiAgICAgICAgICAgIHJlcGxhY2VkIGNvbW1hbmRsaW5lbG9nZ2VyIGJ5IGxvZzRqCiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS40IHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjQgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBhbmRyZWFzCiAgICAgICAgOgogICAgICAgIFsxLjRdIAogICAgICAgICAgICBwcmV0dGlmaWVkIGphdmFkb2NzCiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS40IHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjQgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBhbmRyZWFzCiAgICAgICAgOgogICAgICAgIFsxLjRdIAogICAgICAgICAgICBjb21wbGV0ZWQgamF2YWRvY3MKIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjQgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuNCB1cGRhdGUKICAgICAgICBieQogICAgICAgIHJva3UKICAgICAgICA6CiAgICAgICAgWzEuNF0gCiAgICAgICAgICAgIE1pbm9yIGkxOG4gZml4LgogRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuNCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS40IHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgcm9rdQogICAgICAgIDoKICAgICAgICBbMS40XSAKICAgICAgICAgICAgQWRkZWQgaTE4biBzdXBwb3J0IGZvciBncm91cCBhZG1pbmlzdHJhdGlvbi4KIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjQgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuNCB1cGRhdGUKICAgICAgICBieQogICAgICAgIHJva3UKICAgICAgICA6CiAgICAgICAgWzEuNF0gCiAgICAgICAgICAgIEFkZGVkIGkxOG4gc3VwcG9ydC4KIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjQgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuNCB1cGRhdGUKICAgICAgICBieQogICAgICAgIHJva3UKICAgICAgICA6CiAgICAgICAgWzEuNF0gCiAgICAgICAgICAgIERpZCBnZXJtYW4gdHJhbnNsYXRpb24gZm9yIHNpdGV0cmVlIG5vZGVzLgogRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuNCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS40IHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgcm9rdQogICAgICAgIDoKICAgICAgICBbMS40XSAKICAgICAgICAgICAgRml4ZWQgc21hbGwgInR5cG8iIHdoZW4gY2FsbGluZyBjb25maXJtLWRlbGV0ZS54c2wKIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjQgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuNCB1cGRhdGUKICAgICAgICBieQogICAgICAgIHJva3UKICAgICAgICA6CiAgICAgICAgWzEuNF0gCiAgICAgICAgICAgIFNtYWxsIGkxOG4gZml4ZXMuCiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS40IHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjQgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICByb2t1CiAgICAgICAgOgogICAgICAgIFsxLjRdIAogICAgICAgICAgICBBZGRlZCBpMThuIHN1cHBvcnQgZm9yIGFkbWluIHRyYXNoIHNjcmVlbiBhbmQgbWVudWJhcgogRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuNCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS40IHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgcm9rdQogICAgICAgIDoKICAgICAgICBbMS40XSAKICAgICAgICAgICAgQWRkZWQgaTE4biBzdXBwb3J0CiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS40IHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjQgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICByb2t1CiAgICAgICAgOgogICAgICAgIFsxLjRdIAogICAgICAgICAgICBBZGRlZCB0cmFuc2xhdGlvbnMgZm9yIGFkbWluIHNjcmVlbnMKIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjQgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuNCB1cGRhdGUKICAgICAgICBieQogICAgICAgIHJva3UKICAgICAgICA6CiAgICAgICAgWzEuNF0gCiAgICAgICAgICAgIEFkZGVkIGkxOG4gdHJhbnNmb3JtYXRpb24gdG8gYWRtaW4gc2NyZWVucwogRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuNCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS40IHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgYW5kcmVhcwogICAgICAgIDoKICAgICAgICBbMS40XSAKICAgICAgICAgICAgYWRkZWQgeGluY2x1ZGUgcHJlcGFyYXRpb24gc3RlcAogRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuNCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS40IHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgYW5kcmVhcwogICAgICAgIDoKICAgICAgICBbMS40XSAKICAgICAgICAgICAgcmVwbGFjZSBvbmx5IGxhdGVzdCB0cmFuc2Zvcm1hdGlvbiBzb3VyY2UKIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjQgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuNCB1cGRhdGUKICAgICAgICBieQogICAgICAgIG1pY2hpCiAgICAgICAgOgogICAgICAgIFsxLjRdIAogICAgICAgICAgICBwYXJlbnQgZWxlbWVudCBidWcgZml4ZWQgd2hlcmVhcyBhdHRyaWJ1dGVzIG5lZWQgdG8gYmUgZml4ZWQgYXMgd2VsbAogRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuNCBhZGQ8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS40IGFkZAogICAgICAgIGJ5CiAgICAgICAgbWljaGkKICAgICAgICA6CiAgICAgICAgWzEuNF0gCiAgICAgICAgICAgIHV0aWxpdHkgbWV0aG9kcyBmb3IgU3RyaW5nIG1hbmlwdWxhdGlvbgogRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuNCByZW1vdmU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS40IHJlbW92ZQogICAgICAgIGJ5CiAgICAgICAgZ3JlZ29yCiAgICAgICAgOgogICAgICAgIFsxLjRdIAogICAgICAgICAgICByZW1vdmVkIHdpbmRvd3MgZmlsZQogRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuNCBhZGQ8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS40IGFkZAogICAgICAgIGJ5CiAgICAgICAgZ3JlZ29yCiAgICAgICAgOgogICAgICAgIFsxLjRdIAogICAgICAgICAgICBzcGFuaXNoIHRyYW5zbGF0aW9uIGNvdXJ0ZXN5IG9mIGpvcmdlIGd1dGllcnJlegogRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuNCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS40IHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgZ3JlZ29yCiAgICAgICAgOgogICAgICAgIFsxLjRdIAogICAgICAgICAgICBmb3JtYXR0aW5nIGFuZCBjb21tZW50cwogRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuNCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS40IHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgZ3JlZ29yCiAgICAgICAgOgogICAgICAgIFsxLjRdIAogICAgICAgICAgICBmb3JtYXR0aW5nIGFuZCBjb21tZW50cwogRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuNCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS40IHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgbWljaGkKICAgICAgICA6CiAgICAgICAgWzEuNF0gCiAgICAgICAgICAgIGVkaXRpbmcgYXR0cmlidXRlcwogRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuNCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS40IHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgZ3JlZ29yCiAgICAgICAgOgogICAgICAgIFsxLjRdIAogICAgICAgICAgICBmb3JtYXR0aW5nIGFuZCBjb21tZW50cwogRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuNCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS40IHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgbWljaGkKICAgICAgICA6CiAgICAgICAgWzEuNF0gCiAgICAgICAgICAgIGF0dHJpYnV0ZXMgY2FuIGFsc28gYmUgdXBkYXRlZCBub3cKIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjQgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuNCB1cGRhdGUKICAgICAgICBieQogICAgICAgIGdyZWdvcgogICAgICAgIDoKICAgICAgICBbMS40XSAKICAgICAgICAgICAgaW1wcm92ZWQgZG9jdW1lbnRhdGlvbgogRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuNCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS40IHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgbWljaGkKICAgICAgICA6CiAgICAgICAgWzEuNF0gCiAgICAgICAgICAgIGNsZWFuZWQgdXAgdmVyc2lvbgogRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuNCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS40IHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgYW5kcmVhcwogICAgICAgIDoKICAgICAgICBbMS40XSAKICAgICAgICAgICAgcmVzdG9yZWQgdHJlZSB2aWV3IHBpcGVsaW5lCiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS40IHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjQgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBncmVnb3IKICAgICAgICA6CiAgICAgICAgWzEuNF0gCiAgICAgICAgICAgIGkgdGhvdWdodCBpIGhhZCBmaXhlZCB0aGF0IGFscmVhZHk/IHhzbDp0ZXh0IGNhbm5vdCBoYXZlIG1peGVkIGNvbnRlbnQgb2YgY291cnNlCiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS40IHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjQgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBncmVnb3IKICAgICAgICA6CiAgICAgICAgWzEuNF0gCiAgICAgICAgICAgIHNvbWUgdXNhYmlsaXR5IHJlbmFtZXMKIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjQgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuNCB1cGRhdGUKICAgICAgICBieQogICAgICAgIHJva3UKICAgICAgICA6CiAgICAgICAgWzEuNF0gCiAgICAgICAgICAgIEFkZGVkIHRyYW5zbGF0aW9uIGZvciB3b3JrZmxvdyBzdGF0ZXMKIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjQgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuNCB1cGRhdGUKICAgICAgICBieQogICAgICAgIGVnbGkKICAgICAgICA6CiAgICAgICAgWzEuNF0gCiAgICAgICAgICAgIFBhc3MgdGhlIGRvY3VtZW50LXR5cGUgdG8gdGhlIHBhZ2UyeGh0bWwgdHJhbnNmb3JtZXIuCiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS40IHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjQgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBncmVnb3IKICAgICAgICA6CiAgICAgICAgWzEuNF0gCiAgICAgICAgICAgIGRpc2FsbG93IF8gaW4gZG9jdW1lbnQgaWRzLiB3YXMgbGVhZGluZyB0byBwcm9ibGVtcyB3aXRoIHRoZSBsYW5ndWFnZSBkZWxpbWl0ZXIKIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjQgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuNCB1cGRhdGUKICAgICAgICBieQogICAgICAgIGdyZWdvcgogICAgICAgIDoKICAgICAgICBbMS40XSAKICAgICAgICAgICAgdXNhYmlsaXR5OiBhZGp1c3QgYXNzZXRzIGxpc3QKIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjQgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuNCB1cGRhdGUKICAgICAgICBieQogICAgICAgIGdyZWdvcgogICAgICAgIDoKICAgICAgICBbMS40XSAKICAgICAgICAgICAgcHJlcGVuZCBjb250ZXh0cHJlZml4IHB1YmxpY2F0aW9uIGFuZCBhcmVhCiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS40IHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjQgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBncmVnb3IKICAgICAgICA6CiAgICAgICAgWzEuNF0gCiAgICAgICAgICAgIGRpc2FsbG93IHRoZSBjYXB0aW9uIGVsZW1lbnQgaW4gYnhlCiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS40IHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjQgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBncmVnb3IKICAgICAgICA6CiAgICAgICAgWzEuNF0gCiAgICAgICAgICAgIGJ4ZSBub3cgaGFzIGEgcG9wdXAgZm9yIGxpbmtzIHRoYXQgbGV0cyB5b3Ugc2VsZWN0IGFuIGludGVybmFsIGxpbmsgZnJvbSB0aGUgc2l0ZXRyZWUKIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjQgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuNCB1cGRhdGUKICAgICAgICBieQogICAgICAgIGdyZWdvcgogICAgICAgIDoKICAgICAgICBbMS40XSAKICAgICAgICAgICAgZm9yIHNvbWUgc3RyYW5nZSByZWFzb24sIHhodG1sIHN0cmljdCBkaWQgbm90IGFsbG93IGEgYXMgYSBjaGlsZCBvZiBwIGFuZCBvdGhlciBwcm9ibGVtcy4KdGhpcyBtYWRlIGJ4ZSBwcmV0dHkgdXNlbGVzcy4gZml4ZWQgdG8gdXNlIHhodG1sIHRyYW5zaXRpb25hbAogRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuNCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS40IHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgcm9rdQogICAgICAgIDoKICAgICAgICBbMS40XSAKICAgICAgICAgICAgUmVtb3ZlZCAiQmFjayB0byBQYWdlIiBidXR0b24uCiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS40IHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjQgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBncmVnb3IKICAgICAgICA6CiAgICAgICAgWzEuNF0gCiAgICAgICAgICAgIHRoZSBieGUgaW1hZ2UgLyBhc3NldCB1cGxvYWQgc2NyZWVucyB3ZXJlIG5vdCBnZXR0aW5nIHRoZSB1c2VyIG5hbWUgYW5kIGN1cnJlbnQgZGF0ZSBjb3JyZWN0bHkKIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjQgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuNCB1cGRhdGUKICAgICAgICBieQogICAgICAgIHJva3UKICAgICAgICA6CiAgICAgICAgWzEuNF0gCiAgICAgICAgICAgIENvbXBsZXRlZCB0cmFuc2xhdGlvbnMuClRPRE86IFRyYW5zbGF0ZSBpbWFnZXMgZm9yIExpdmUsQWRtaW4sU2l0ZSBldGMuIHRhYnMKIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjQgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuNCB1cGRhdGUKICAgICAgICBieQogICAgICAgIGdyZWdvcgogICAgICAgIDoKICAgICAgICBbMS40XSAKICAgICAgICAgICAgb3ZlcndyaXR0ZW4gdGl0bGUgaGFzIHByZWNlZGVuY2Ugb3ZlciBkYzp0aXRsZSBmb3IgYW4gYXNzZXQKIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjQgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuNCB1cGRhdGUKICAgICAgICBieQogICAgICAgIHJva3UKICAgICAgICA6CiAgICAgICAgWzEuNF0gCiAgICAgICAgICAgIEZpeGVkIGEgc21hbGwgYnVnIEkgaW50cm9kdWNlZCBlYXJsaWVyIHdpdGggaTE4bgogRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuNCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS40IHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgZ3JlZ29yCiAgICAgICAgOgogICAgICAgIFsxLjRdIAogICAgICAgICAgICBkZWZhdWx0IGZvciBkYzpyaWdodHMgYWRkZWQKIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjQgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuNCB1cGRhdGUKICAgICAgICBieQogICAgICAgIHJva3UKICAgICAgICA6CiAgICAgICAgWzEuNF0gCiAgICAgICAgICAgIEFkZGVkIGkxOG4gc3VwcG9ydCBmb3IgY21zIHRhYnMgKGluY29tcGxldGUpLgpUT0RPOiBXZSBuZWVkIHRvIHRyYW5zbGF0ZSB0aGUgdGFiIGltYWdlcyEKIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjQgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuNCB1cGRhdGUKICAgICAgICBieQogICAgICAgIHJva3UKICAgICAgICA6CiAgICAgICAgWzEuNF0gCiAgICAgICAgICAgIC0gRmluaXNoZWQgY21zIG1lbnUgdHJhbnNsYXRpb25zCi0gRml4ZWQgdHJhbnNsYXRpb25zIGluIGxvZ291dCBzY3JlZW4KIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjQgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuNCB1cGRhdGUKICAgICAgICBieQogICAgICAgIHJva3UKICAgICAgICA6CiAgICAgICAgWzEuNF0gCiAgICAgICAgICAgIEZpeGVkIGEgdHJhbnNsYXRpb24uCiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS40IHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjQgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICByb2t1CiAgICAgICAgOgogICAgICAgIFsxLjRdIAogICAgICAgICAgICBBZGRlZCBpMThuIHN1cHBvcnQgZm9yIGNtcyBtZW51LgogRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuNCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS40IHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgcm9rdQogICAgICAgIDoKICAgICAgICBbMS40XSAKICAgICAgICAgICAgTW92ZWQgaTE4biB0cmFuc2Zvcm1lciB0byB1c2VjYXNlLnhtYXAuCiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS40IHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjQgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICByb2t1CiAgICAgICAgOgogICAgICAgIFsxLjRdIAogICAgICAgICAgICBSZW1vdmVkIHVzZWxlc3MgY3ZzIGtleXdvcmQKIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjQgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuNCB1cGRhdGUKICAgICAgICBieQogICAgICAgIHJva3UKICAgICAgICA6CiAgICAgICAgWzEuNF0gCiAgICAgICAgICAgIEFkZGVkIHN1cHBvcnQgZm9yIGkxOG4gb24gcmVqZWN0IHNjcmVlbi4KIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjQgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuNCB1cGRhdGUKICAgICAgICBieQogICAgICAgIHJva3UKICAgICAgICA6CiAgICAgICAgWzEuNF0gCiAgICAgICAgICAgIFJlbW92ZWQgc3BhY2VzCiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS40IHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjQgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICByb2t1CiAgICAgICAgOgogICAgICAgIFsxLjRdIAogICAgICAgICAgICBGaXhlZCBjb3B5cmlnaHQuIEl0J3MgY2FsbGVkIFRoZSBBcGFjaGUgU29mdHdhcmUgRm91bmRhdGlvbiBhbmQgbm90IEFwYWNoZSBTb2Z0d2FyZSBGb3VuZGF0aW9uCiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS40IHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjQgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBncmVnb3IKICAgICAgICA6CiAgICAgICAgWzEuNF0gCiAgICAgICAgICAgIHVzYWJpbGl0eTogcmVtb3ZlIHVybCBwcmludG91dCBpbiBpbmZvIGFyZWEKIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjQgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuNCB1cGRhdGUKICAgICAgICBieQogICAgICAgIHJva3UKICAgICAgICA6CiAgICAgICAgWzEuNF0gCiAgICAgICAgICAgIEFkZGVkIGEgdHJhbnNsYXRpb24KIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjQgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuNCB1cGRhdGUKICAgICAgICBieQogICAgICAgIHJva3UKICAgICAgICA6CiAgICAgICAgWzEuNF0gCiAgICAgICAgICAgIEFkZGVkIGkxOG4gc3VwcG9ydCBmb3IgbG9nb3V0IHNjcmVlbi4KIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjQgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuNCB1cGRhdGUKICAgICAgICBieQogICAgICAgIHJva3UKICAgICAgICA6CiAgICAgICAgWzEuNF0gCiAgICAgICAgICAgIEFkZGVkIGkxOG4gc3VwcG9ydC4KIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjQgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuNCB1cGRhdGUKICAgICAgICBieQogICAgICAgIHJva3UKICAgICAgICA6CiAgICAgICAgWzEuNF0gCiAgICAgICAgICAgIEFkZGVkIHRyYW5zbGF0aW9ucyBmb3IgbG9naW4gc2NyZWVuCiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS40IHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjQgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICByb2t1CiAgICAgICAgOgogICAgICAgIFsxLjRdIAogICAgICAgICAgICBBZGRlZCBpMThuIHRyYW5zZm9ybWF0aW9uIGZvciBsb2dpbiBzY3JlZW4uCkFsc28gc2VlIGh0dHA6Ly9uYWdveWEuYXBhY2hlLm9yZy9idWd6aWxsYS9zaG93X2J1Zy5jZ2k/aWQ9MjY5MzMKIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjQgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuNCB1cGRhdGUKICAgICAgICBieQogICAgICAgIHJva3UKICAgICAgICA6CiAgICAgICAgWzEuNF0gCiAgICAgICAgICAgIE5vdyBwYWdlOnRpdGxlIGlzIHRyYW5zbGF0ZWQgYXMgd2VsbC4gTm93IHRoZSAxOG4gdHJhbnNmb3JtYXRpb24gaXMgZG9uZSBmaXJzdC4KIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjQgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuNCB1cGRhdGUKICAgICAgICBieQogICAgICAgIHJva3UKICAgICAgICA6CiAgICAgICAgWzEuNF0gCiAgICAgICAgICAgIEZpeGVkIGEgdHJhbnNsYXRpb24KIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjQgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuNCB1cGRhdGUKICAgICAgICBieQogICAgICAgIHJva3UKICAgICAgICA6CiAgICAgICAgWzEuNF0gCiAgICAgICAgICAgIFN0YXJ0ZWQgd2l0aCBpMThuLgpTdGlsbCB0aGUgcHJvYmxlbSB0aGF0IHRleHQgd2l0aGluICZsdDtwYWdlOnRpdGxlJmd0OyBpcyBub3QgdHJhbnNsYXRlZC4KIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjQgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuNCB1cGRhdGUKICAgICAgICBieQogICAgICAgIHJva3UKICAgICAgICA6CiAgICAgICAgWzEuNF0gCiAgICAgICAgICAgIEFkZGVkIHNvbWUgdHJhbnNsYXRpb25zIGZvciBwdWJsaXNoIHNjcmVlbgogRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuNCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS40IHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgcm9rdQogICAgICAgIDoKICAgICAgICBbMS40XSAKICAgICAgICAgICAgVXNpbmcgdXRmIGNvZGVzIGZvciB1bWxhdXRzIG5vdy4KIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjQgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuNCB1cGRhdGUKICAgICAgICBieQogICAgICAgIHJva3UKICAgICAgICA6CiAgICAgICAgWzEuNF0gCiAgICAgICAgICAgIEFkZGVkIEFTRiBsaWNlbnNlIGluZm8gYW5kIG1vcmUgdHJhbnNsYXRpb25zCiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS40IHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjQgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICByb2t1CiAgICAgICAgOgogICAgICAgIFsxLjRdIAogICAgICAgICAgICBJbml0aWFsIGkxOG4KIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjQgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuNCB1cGRhdGUKICAgICAgICBieQogICAgICAgIHJva3UKICAgICAgICA6CiAgICAgICAgWzEuNF0gCiAgICAgICAgICAgIEFkZGVkIHVzZSBvZiBpMThuIHRyYW5zZm9ybWVyIGZvciBjbXMgcGFnZXMvc2NyZWVucwogRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuNCBhZGQ8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS40IGFkZAogICAgICAgIGJ5CiAgICAgICAgcm9rdQogICAgICAgIDoKICAgICAgICBbMS40XSAKICAgICAgICAgICAgCkRpY3Rpb25hcnkgZmlsZXMgZm9yIExlbnlhIENNUyBzY3JlZW5zLiBMYW5ndWFnZXMgZGUsZW4gd2l0aCBlbiBhcyBkZWZhdWx0IGRpY3QuCiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS40IHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjQgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICByb2t1CiAgICAgICAgOgogICAgICAgIFsxLjRdIAogICAgICAgICAgICBBZGRlZCBpMThuIFRyYW5zZm9ybWVyIGNhbGxlZCBpMThuIHdpdGggaW5pdGlhbCBjYXRhbG9ndWVzLgogRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuNCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS40IHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgZ3JlZ29yCiAgICAgICAgOgogICAgICAgIFsxLjRdIAogICAgICAgICAgICB1c2FiaWxpdHk6IGRvbid0IG1peCByZWFkLW9ubHkgd2l0aCB3cml0YWJsZSBmb3JtIGZpZWxkcwogRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuNCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS40IHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgZ3JlZ29yCiAgICAgICAgOgogICAgICAgIFsxLjRdIAogICAgICAgICAgICB1c2FiaWxpdHk6IHVzZSB0ZXh0YXJlYSBmb3IgZGMgZGVzY3JpcHRpb24KIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjQgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuNCB1cGRhdGUKICAgICAgICBieQogICAgICAgIGFuZHJlYXMKICAgICAgICA6CiAgICAgICAgWzEuNF0gCiAgICAgICAgICAgIHJlZnJlc2hpbmcgZHVibGluIGNvcmUgYWZ0ZXIgY29waW5nIGEgZG9jdW1lbnQKIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjQgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuNCB1cGRhdGUKICAgICAgICBieQogICAgICAgIGFuZHJlYXMKICAgICAgICA6CiAgICAgICAgWzEuNF0gCiAgICAgICAgICAgIG5vdyBjb21wYXRpYmxlIHdpdGggQ29jb29uIDIuMS4yIGFuZCBDb2Nvb24gMi4xLjQgKGZpeCkKIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjQgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuNCB1cGRhdGUKICAgICAgICBieQogICAgICAgIGFuZHJlYXMKICAgICAgICA6CiAgICAgICAgWzEuNF0gCiAgICAgICAgICAgIG5vdyBjb21wYXRpYmxlIHdpdGggQ29jb29uIDIuMS4yIGFuZCBDb2Nvb24gMi4xLjQKIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjQgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuNCB1cGRhdGUKICAgICAgICBieQogICAgICAgIGFuZHJlYXMKICAgICAgICA6CiAgICAgICAgWzEuNF0gCiAgICAgICAgICAgIG5vdyBjb21wYXRpYmxlIHdpdGggQ29jb29uIDIuMS4yIGFuZCBDb2Nvb24gMi4xLjQKIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjQgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuNCB1cGRhdGUKICAgICAgICBieQogICAgICAgIGFuZHJlYXMKICAgICAgICA6CiAgICAgICAgWzEuNF0gCiAgICAgICAgICAgIGZhY3RvcmVkIG91dCBDb2Nvb24tcmVsYXRlZCBtZXRob2RzIHRvIGNvY29vbiBwYWNrYWdlCiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS40IHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjQgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBncmVnb3IKICAgICAgICA6CiAgICAgICAgWzEuNF0gCiAgICAgICAgICAgIGV4cGxpY2l0bHkgc3BlY2lmeSB0aGUgbnMgZm9yIHRoZSBzY3JpcHQgdGFnCiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS40IHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjQgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBncmVnb3IKICAgICAgICA6CiAgICAgICAgWzEuNF0gCiAgICAgICAgICAgIGZvciBzb21lIHJlYXNvbiwgYXNzZXRzIGFyZSBzb3J0ZWQgZGlmZmVyZW50bHkgZGVwZW5kaW5nIG9uIHRoZSBwbGF0Zm9ybSAoZHVlIHRvIHRoZSBSZXNvdXJjZXNNYW5hZ2VyKQoKYWRkZWQgYSBzb3J0IHN0YXRlbWVudCB0byBrZWVwIHRoZW0gY29uc2lzdGVudAogRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuNCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS40IHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgYW5kcmVhcwogICAgICAgIDoKICAgICAgICBbMS40XSAKICAgICAgICAgICAgYWRkZWQgZGVsZXRlSGlzdG9yeSgpIG1ldGhvZAogRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuNCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS40IHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgZ3JlZ29yCiAgICAgICAgOgogICAgICAgIFsxLjRdIAogICAgICAgICAgICBtYWtlIHdvcmtmbG93IGhpc3Rvcnkgc29ydCBvcmRlciBjb25zaXN0ZW50IHdpdGggcmV2aXNpb24gc29ydCBvcmRlcgogRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuNCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS40IHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgZ3JlZ29yCiAgICAgICAgOgogICAgICAgIFsxLjRdIAogICAgICAgICAgICByZXN0cmljdGVkIGFjY2VzcyB0byB0aGUgYWRtaW4gYXJlYSB0byBtZW1iZXJzIG9mIHRoZSBhZG1pbiBncm91cC4KCnRoYW5rcyB0byBkb3VnIGNoZXN0bnV0IGZvciB0aGUgc3VnZ2VzdGlvbgogRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuNCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS40IHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgZ3JlZ29yCiAgICAgICAgOgogICAgICAgIFsxLjRdIAogICAgICAgICAgICByZW1vdmUgdW51c2VkIG11bHRpcGFydGh0dHBzZXJ2bGV0cmVxdWVzdGFjdGlvbiAKCmZpeGVzICMyNjgzMAogRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuNCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS40IHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgYW5kcmVhcwogICAgICAgIDoKICAgICAgICBbMS40XSAKICAgICAgICAgICAgYWRkZWQgcmV2aXNpb24gY29udHJvbCBmb3IgeG9wdXMKIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjQgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuNCB1cGRhdGUKICAgICAgICBieQogICAgICAgIGFuZHJlYXMKICAgICAgICA6CiAgICAgICAgWzEuNF0gCiAgICAgICAgICAgIHJlbW92ZWQgc29tZSB1c2VsZXNzIGxpbmVzCiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS40IHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjQgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBhbmRyZWFzCiAgICAgICAgOgogICAgICAgIFsxLjRdIAogICAgICAgICAgICBpbXByb3ZlZCBqYXZhZG9jcwogRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuNCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS40IHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgYW5kcmVhcwogICAgICAgIDoKICAgICAgICBbMS40XSAKICAgICAgICAgICAgZm9ybWF0dGVkCiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS40IHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjQgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBhbmRyZWFzCiAgICAgICAgOgogICAgICAgIFsxLjRdIAogICAgICAgICAgICByZW1vdmVkIGRlYWQgY29kZQogRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuNCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS40IHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgYW5kcmVhcwogICAgICAgIDoKICAgICAgICBbMS40XSAKICAgICAgICAgICAgbWFkZSBzb21lIG1ldGhvZHMgcHVibGljCiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS40IHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjQgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBhbmRyZWFzCiAgICAgICAgOgogICAgICAgIFsxLjRdIAogICAgICAgICAgICByZWZhY3RvcmVkIHJldmlzaW9uIGNvbnRyb2xsZXIKIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjQgcmVtb3ZlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuNCByZW1vdmUKICAgICAgICBieQogICAgICAgIGdyZWdvcgogICAgICAgIDoKICAgICAgICBbMS40XSAKICAgICAgICAgICAgbm8gbG9uZ2VyIG5lZWRlZAogRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuNCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS40IHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgYW5kcmVhcwogICAgICAgIDoKICAgICAgICBbMS40XSAKICAgICAgICAgICAgcmVtb3ZlZCB1bnVzZWQgaW1wb3J0CiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS40IHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjQgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBhbmRyZWFzCiAgICAgICAgOgogICAgICAgIFsxLjRdIAogICAgICAgICAgICByZXBsYWNlZCBET000aiArIGRlcHJlY2F0ZWQgbGVueWEueG1sIHN0dWZmIGJ5IEpBWFAKIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjQgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuNCB1cGRhdGUKICAgICAgICBieQogICAgICAgIGdyZWdvcgogICAgICAgIDoKICAgICAgICBbMS40XSAKICAgICAgICAgICAgZGVwcmVjYXRlZAogRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuNCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS40IHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgZ3JlZ29yCiAgICAgICAgOgogICAgICAgIFsxLjRdIAogICAgICAgICAgICBoaWRlIG9ic2N1cmUgaHRtbCBhdHRyaWJ1dGVzIGluIGJ4ZQogRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuNCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS40IHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgZ3JlZ29yCiAgICAgICAgOgogICAgICAgIFsxLjRdIAogICAgICAgICAgICBjcmFwIHJlbW92YWwKIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjQgcmVtb3ZlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuNCByZW1vdmUKICAgICAgICBieQogICAgICAgIGdyZWdvcgogICAgICAgIDoKICAgICAgICBbMS40XSAKICAgICAgICAgICAgbm8gbG9uZ2VyIG5lZWRlZAogRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuNCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS40IHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgZ3JlZ29yCiAgICAgICAgOgogICAgICAgIFsxLjRdIAogICAgICAgICAgICB0aGlzIHNob3VsZCBiZSB0aGUgbGFzdCBvZiB0aGUgdWdseSBzY3JlZW5zLiB0aGUgbmV4dCBwZXJzb24gd2hvIGZhaWxzIHRvIHVzZSB0aGUgcHJvcGVyIGRlc2lnbiBlbGVtZW50cyB3aWxsIGJlIHNob3QuCiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS40IHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjQgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBncmVnb3IKICAgICAgICA6CiAgICAgICAgWzEuNF0gCiAgICAgICAgICAgIGNyYXAgcmVtb3ZhbAogRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuNCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS40IHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgZ3JlZ29yCiAgICAgICAgOgogICAgICAgIFsxLjRdIAogICAgICAgICAgICBhZGRlZCBsdWNlbmUgaW5kZXggY3JlYXRpb24gZ3VpICh3YXMgaGlkZGVuIGluIHRoZSBsdWNlbmUgc2l0ZW1hcCkKaXQgaXMgbm90IHdvcmtpbmcgeWV0CiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS40IHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjQgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICByb2t1CiAgICAgICAgOgogICAgICAgIFsxLjRdIAogICAgICAgICAgICBQYXNzaW5nIHZhcmlhYmxlcyByb290LCBkb2N1bWVudC1pZCwgdXJsIGZyb20gcHVibGljYXRpb24tc2l0ZW1hcCB0byBwYWdlMnhodG1sCiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS40IHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjQgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBhbmRyZWFzCiAgICAgICAgOgogICAgICAgIFsxLjRdIAogICAgICAgICAgICBpbXByb3ZlZCBqYXZhZG9jcwogRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuNCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS40IHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgYW5kcmVhcwogICAgICAgIDoKICAgICAgICBbMS40XSAKICAgICAgICAgICAgYWRkZWQgc29tZSBsaW5lYnJlYWtzICh0b28gd2lkZSBpbiBicm93c2VyKQogRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuNCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS40IHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgZ3JlZ29yCiAgICAgICAgOgogICAgICAgIFsxLjRdIAogICAgICAgICAgICBub3cgc2hvdyBhc3NldHMgY29ycmVjdGx5CiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS40IHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjQgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBhbmRyZWFzCiAgICAgICAgOgogICAgICAgIFsxLjRdIAogICAgICAgICAgICBtYXJrZWQgcmVxdWlyZWQgZmllbGRzICh0aGFua3MgdG8gSmFuIE1ldHpuZXIpCiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS40IHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjQgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBhbmRyZWFzCiAgICAgICAgOgogICAgICAgIFsxLjRdIAogICAgICAgICAgICBmb3Jnb3QgdG8gcmUtcmVuYW1lIGEgbWV0aG9kIGNhbGwKIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjQgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuNCB1cGRhdGUKICAgICAgICBieQogICAgICAgIGFuZHJlYXMKICAgICAgICA6CiAgICAgICAgWzEuNF0gCiAgICAgICAgICAgIHJlcGxhY2VkIERPTVBhcnNlckZhY3Rvcnkgd2l0aCBEb2N1bWVudEhlbHBlcgogRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuNCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS40IHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgYW5kcmVhcwogICAgICAgIDoKICAgICAgICBbMS40XSAKICAgICAgICAgICAgZml4ZWQgaGFyZC1jb2RlZCBjb250ZXh0IHByZWZpeAogRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuNCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS40IHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgYW5kcmVhcwogICAgICAgIDoKICAgICAgICBbMS40XSAKICAgICAgICAgICAgZml4ZWQgImRlbGV0ZSB1c2VyIiBidWcKIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjQgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuNCB1cGRhdGUKICAgICAgICBieQogICAgICAgIGFuZHJlYXMKICAgICAgICA6CiAgICAgICAgWzEuNF0gCiAgICAgICAgICAgIGZpeGVkIGhhcmQtY29kZWQgY29udGV4dCBwcmVmaXgKIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjQgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuNCB1cGRhdGUKICAgICAgICBieQogICAgICAgIGFuZHJlYXMKICAgICAgICA6CiAgICAgICAgWzEuNF0gCiAgICAgICAgICAgIHJlbW92ZWQgcHVibGljYXRpb24tYnVpbGQueG1sCiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS40IHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjQgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBhbmRyZWFzCiAgICAgICAgOgogICAgICAgIFsxLjRdIAogICAgICAgICAgICAtIHJlbW92ZWQgb2Jzb2xldGUgWFNMVAotIHJlbW92ZWQgaGFyZC1jb2RlZCBjb250ZXh0IHByZWZpeAogRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuNCByZW1vdmU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS40IHJlbW92ZQogICAgICAgIGJ5CiAgICAgICAgYW5kcmVhcwogICAgICAgIDoKICAgICAgICBbMS40XSAKICAgICAgICAgICAgcmVtb3ZlZCBmb3JyZXN0IHB1YmxpY2F0aW9uIHRlbXBsYXRlCiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS40IHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjQgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBncmVnb3IKICAgICAgICA6CiAgICAgICAgWzEuNF0gCiAgICAgICAgICAgIGhpZGUgdGhpcyBwdWJsaWNhdGlvbiBieSBkZWZhdWx0IGJlY2F1c2UgaXQgcGVycGV0cmF0ZXMgb2Jzb2xldGUgd2F5cyB0byBzZXQgdXAgYSBsZW55YSBwdWJsaWNhdGlvbiBhbmQgc2hvdWxkIHRoZXJlZm9yZSBub3QgYmUgdXNlZCBhcyBhIHNhbXBsZSB0byBsZWFybiBmcm9tLgoKdGhlIG9zY29tIHB1YmxpY2F0aW9uIHdpbGwgYmUgcmVtb3ZlZCBmcm9tIGxlbnlhIGluIHRoZSBmdXR1cmUuCiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS40IHJlbW92ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjQgcmVtb3ZlCiAgICAgICAgYnkKICAgICAgICBncmVnb3IKICAgICAgICA6CiAgICAgICAgWzEuNF0gCiAgICAgICAgICAgIHRoZXNlIHBhcmFtZXRlcnMgYXJlIG5vdyBpbiB0aGUgY29yZS4gaSB3b25kZXIgd2h5IHRoZXkgd2VyZSBkdXBsaWNhdGVkIGluIHRoZSBmaXJzdCBwbGFjZT8KIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjQgcmVtb3ZlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuNCByZW1vdmUKICAgICAgICBieQogICAgICAgIGdyZWdvcgogICAgICAgIDoKICAgICAgICBbMS40XSAKICAgICAgICAgICAgbm8gbG9uZ2VyIG5lZWRlZAogRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuNCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS40IHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgZ3JlZ29yCiAgICAgICAgOgogICAgICAgIFsxLjRdIAogICAgICAgICAgICBodWg/IHRoZSBsaW5rZWQgc3R5bGVzaGVldCBuZXZlciB3b3JrZWQuCiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS40IHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjQgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBncmVnb3IKICAgICAgICA6CiAgICAgICAgWzEuNF0gCiAgICAgICAgICAgIGNsZWFudXAuCgovbWUgZ2V0dGluZyB0aXJlZCBvZiBwZW9wbGUgd2hvIGRvIG5vdCB1bmRlcnN0YW5kIENWUyBhbmQgYWJ1c2UgY29tbWVudHMgZm9yICJvbGQgY29kZSIKIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjQgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuNCB1cGRhdGUKICAgICAgICBieQogICAgICAgIGdyZWdvcgogICAgICAgIDoKICAgICAgICBbMS40XSAKICAgICAgICAgICAgY2hhbmdlZCByZWZlcmVuY2VzIHRvIG9ic29sZXRlIHN0dWZmCgp0aGlzIHB1YmxpY2F0aW9uIGlzIG9uIHRoZSB3YXkgb3V0IGFueXdheQogRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuNCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS40IHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgZ3JlZ29yCiAgICAgICAgOgogICAgICAgIFsxLjRdIAogICAgICAgICAgICB0aGUgbmV4dCBwZXJzb24gd2hvIGNvbW1pdHMgbmV3IGNtcyBzY3JlZW5zIHRoYXQgZG8gbm90IHVzZSB0aGUgc3RhbmRhcmQgbGF5b3V0IHdpbGwgYmUgc2hvdC4KIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjQgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuNCB1cGRhdGUKICAgICAgICBieQogICAgICAgIGdyZWdvcgogICAgICAgIDoKICAgICAgICBbMS40XSAKICAgICAgICAgICAgbW92ZWQgb2Jzb2xldGUgY3JlYXRvcnMgZGlyZWN0bHkgaW50byB0aGUgYmxvZyBwdWJsaWNhdGlvbgogRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuNCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS40IHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgZ3JlZ29yCiAgICAgICAgOgogICAgICAgIFsxLjRdIAogICAgICAgICAgICBjbGVhbnVwOgoKbm8gbW9yZSB4c3AtbGVueWEKIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjQgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuNCB1cGRhdGUKICAgICAgICBieQogICAgICAgIGdyZWdvcgogICAgICAgIDoKICAgICAgICBbMS40XSAKICAgICAgICAgICAgeHNsdCBiZWxvbmcgaW4gdGhlIHhzbHQgZGlyCiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS40IHJlbW92ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjQgcmVtb3ZlCiAgICAgICAgYnkKICAgICAgICBncmVnb3IKICAgICAgICA6CiAgICAgICAgWzEuNF0gCiAgICAgICAgICAgIG1vdmVkIG9ic29sZXRlIGNyZWF0b3JzIGRpcmVjdGx5IGludG8gdGhlIG9zY29tIHB1YmxpY2F0aW9uCiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS40IHJlbW92ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjQgcmVtb3ZlCiAgICAgICAgYnkKICAgICAgICBncmVnb3IKICAgICAgICA6CiAgICAgICAgWzEuNF0gCiAgICAgICAgICAgIG1vdmVkIG9ic29sZXRlIHB1Ymxpc2hpbmcgc2NyZWVucyBvdXQgb2YgdGhlIGNvcmUgYW5kIGludG8gdGhlIG9zY29tIHB1YmxpY2F0aW9uLgogRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuNCByZW1vdmU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS40IHJlbW92ZQogICAgICAgIGJ5CiAgICAgICAgZ3JlZ29yCiAgICAgICAgOgogICAgICAgIFsxLjRdIAogICAgICAgICAgICB0aGlzIHdhcyBuZXZlciB1c2VkCiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS40IHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjQgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBncmVnb3IKICAgICAgICA6CiAgICAgICAgWzEuNF0gCiAgICAgICAgICAgIHhzbHQgbW92ZWQgdG8gaXRzIHByb3BlciBwbGFjZQogRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuNCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS40IHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgYW5kcmVhcwogICAgICAgIDoKICAgICAgICBbMS40XSAKICAgICAgICAgICAgZml4ZWQgaHR0cDovL25hZ295YS5hcGFjaGUub3JnL2J1Z3ppbGxhL3Nob3dfYnVnLmNnaT9pZD0yNjcxMAogRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuNCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS40IHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgYW5kcmVhcwogICAgICAgIDoKICAgICAgICBbMS40XSAKICAgICAgICAgICAgYWRkZWQgbG9naW4gbGluayB0byBsb2dvdXQgc2NyZWVuCiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS40IHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjQgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBtaWNoaQogICAgICAgIDoKICAgICAgICBbMS40XSAKICAgICAgICAgICAgRklYTUUgYWRkZWQKIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjQgcmVtb3ZlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuNCByZW1vdmUKICAgICAgICBieQogICAgICAgIGFuZHJlYXMKICAgICAgICA6CiAgICAgICAgWzEuNF0gCiAgICAgICAgICAgIHJlbW92ZWQgZGVwcmVjYXRlZCBhbmQgdW5zdXBwb3J0ZWQgbWVudSBYU0xUcwogRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuNCByZW1vdmU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS40IHJlbW92ZQogICAgICAgIGJ5CiAgICAgICAgYW5kcmVhcwogICAgICAgIDoKICAgICAgICBbMS40XSAKICAgICAgICAgICAgcmVtb3ZlZCBkZXByZWNhdGVkIGFuZCB1bnN1cHBvcnRlZCBtZW51IHJlc291cmNlcwogRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuNCByZW1vdmU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS40IHJlbW92ZQogICAgICAgIGJ5CiAgICAgICAgZ3JlZ29yCiAgICAgICAgOgogICAgICAgIFsxLjRdIAogICAgICAgICAgICBubyBsb25nZXIgbmVlZGVkCiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS40IHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjQgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBncmVnb3IKICAgICAgICA6CiAgICAgICAgWzEuNF0gCiAgICAgICAgICAgIHdoaWxlIHRoaXMgeHNwIHNob3VsZCBwcm9iYWJseSBkaWUsIGkgZml4ZWQgYSBidWcgYW55d2F5LiB0aGUgbWV0aG9kIHRvIGdldCB0aGUgdXNlciBuYW1lIGNoYW5nZWQKIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjQgYWRkPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuNCBhZGQKICAgICAgICBieQogICAgICAgIGdyZWdvcgogICAgICAgIDoKICAgICAgICBbMS40XSAKICAgICAgICAgICAgbW92ZSBpbWFnZSAvIGFzc2V0IHVwbG9hZCBzY3JlZW5zIGZvciBieGVuZyB0byB0aGUgY29yZQogRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuNCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS40IHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgbWljaGkKICAgICAgICA6CiAgICAgICAgWzEuNF0gCiAgICAgICAgICAgIG5vbi1icmVha2luZyBzcGFjZSBhZGRlZAogRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuNCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS40IHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgZWdsaQogICAgICAgIDoKICAgICAgICBbMS40XSAKICAgICAgICAgICAgSW4gb3JkZXIgdG8gYXZvaWQgYSBwcm9ibGVtIHdpdGggcHVibGljYXRpb24gc3BlY2lmaWMgY3NzIGZvciB0ZCBJCmFkZGVkIGEgY2xhc3MgZm9yIHRoZSB0ZCB3aGljaCBob2xkcyB0aGUgbGVmdG1vc3QgcGFydCBvZiB0aGUgbGVueWEKbWVudS4KIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjQgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuNCB1cGRhdGUKICAgICAgICBieQogICAgICAgIG1pY2hpCiAgICAgICAgOgogICAgICAgIFsxLjRdIAogICAgICAgICAgICBleGNsdWRlIEJYRSBhbmQgRXBvegogRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuNCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS40IHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgbWljaGkKICAgICAgICA6CiAgICAgICAgWzEuNF0gCiAgICAgICAgICAgIEJYRSBsb2FkaW5nIGZpeGVkCiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS40IHJlbW92ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjQgcmVtb3ZlCiAgICAgICAgYnkKICAgICAgICBncmVnb3IKICAgICAgICA6CiAgICAgICAgWzEuNF0gCiAgICAgICAgICAgIG1vdmVkIGJ4ZW5nIGFzc2V0IGFuZCBpbWFnZSB1cGxvYWQgY2FsbGJhY2tzIHRvIHRoZSBjb3JlCiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS40IHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjQgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBhbmRyZWFzCiAgICAgICAgOgogICAgICAgIFsxLjRdIAogICAgICAgICAgICBhZGRlZCBwcmVyZXF1aXNpdGVzCiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS40IHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjQgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBhbmRyZWFzCiAgICAgICAgOgogICAgICAgIFsxLjRdIAogICAgICAgICAgICBmaXhlZCAmbHQ7dWwmZ3Q7IHByb2Nlc3NpbmcKIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjQgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuNCB1cGRhdGUKICAgICAgICBieQogICAgICAgIGFuZHJlYXMKICAgICAgICA6CiAgICAgICAgWzEuNF0gCiAgICAgICAgICAgIHVzaW5nIGdlbmVyYXRlZCBpbnN0YWxsYXRpb24gaW5zdHJ1Y3Rpb25zCiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS40IHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjQgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBhbmRyZWFzCiAgICAgICAgOgogICAgICAgIFsxLjRdIAogICAgICAgICAgICAtIGFkZGVkIG5vdGUgdG8gdHh0IHN0eWxlc2hlZXQKLSBhZGRlZCBUZXh0IHZlcnNpb24gbGluayB0byBodG1sIHN0eWxlc2hlZXQKIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjQgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuNCB1cGRhdGUKICAgICAgICBieQogICAgICAgIGFuZHJlYXMKICAgICAgICA6CiAgICAgICAgWzEuNF0gCiAgICAgICAgICAgIGFkZGVkIFRYVCBnZW5lcmF0aW9uCiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS40IHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjQgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBhbmRyZWFzCiAgICAgICAgOgogICAgICAgIFsxLjRdIAogICAgICAgICAgICBjaGFuZ2VkIGluZm8gbWVzc2FnZXMgdG8gZGVidWcKIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjQgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuNCB1cGRhdGUKICAgICAgICBieQogICAgICAgIGVnbGkKICAgICAgICA6CiAgICAgICAgWzEuNF0gCiAgICAgICAgICAgIE1ha2Ugc3VyZSB0aGUgdGQgd2hpY2ggdGhlIHNlcnZlciB0aW1lIGlzIGluIGhhcyBhIGNsYXNzLCBzbyB0aGF0IGl0CmlzIG5vdCBvdmVyd3JpdHRlbiBieSBwdWJsaWNhdGlvbiBzcGVjaWZpYyB0ZCBjc3MgZGVmaW5pdGlvbnMuCiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS40IHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjQgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBncmVnb3IKICAgICAgICA6CiAgICAgICAgWzEuNF0gCiAgICAgICAgICAgIG9vcHMgd2FzIG5vdCB3ZWxsIGZvcm1lZAogRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuNCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS40IHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgZ3JlZ29yCiAgICAgICAgOgogICAgICAgIFsxLjRdIAogICAgICAgICAgICBtb3ZlZCBpbnRyb2R1Y3Rpb24gYW5kICIiIG1hdGNoZXJzIHRvIHRoZSBjb3JlCiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS40IHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjQgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBncmVnb3IKICAgICAgICA6CiAgICAgICAgWzEuNF0gCiAgICAgICAgICAgIG1ha2UgYnhlX3hwYXRoIGNvbmRpdGlvbmFsCiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS40IHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjQgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBncmVnb3IKICAgICAgICA6CiAgICAgICAgWzEuNF0gCiAgICAgICAgICAgIHBpcGVsaW5lIGRlc2MgaW1wcm92ZWQKIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjQgYWRkPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuNCBhZGQKICAgICAgICBieQogICAgICAgIGdyZWdvcgogICAgICAgIDoKICAgICAgICBbMS40XSAKICAgICAgICAgICAgYnhlbmcgc3VwcG9ydCBmb3IgZGVmYXVsdCBwdWIgaW1wcm92ZWQKCiogaW1hZ2UgdXBsb2FkCiogYXNzZXQgdXBsb2FkCiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS40IHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjQgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBncmVnb3IKICAgICAgICA6CiAgICAgICAgWzEuNF0gCiAgICAgICAgICAgIHNob3VsZCBiZSB0eXBlLCBub3QgbWltZS10eXBlCgp0aGFua3MgdG8gcGV0ZXIgc2hpcGxleQogRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuNCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS40IHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgZ3JlZ29yCiAgICAgICAgOgogICAgICAgIFsxLjRdIAogICAgICAgICAgICByZWplY3QgLyBzdWJtaXQgc2NyZWVuIHVzYWJpbGl0eSBpbXByb3ZlbWVudHMKCnRoYW5rcyB0byB0cmFwbyBmb3IgdGhlIHN1Z2dlc3Rpb25zCiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS40IHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjQgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBncmVnb3IKICAgICAgICA6CiAgICAgICAgWzEuNF0gCiAgICAgICAgICAgIHhtbCBkZWNsYXJhdGlvbiB3YXMgbWlzc2luZwogRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuNCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS40IHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgZ3JlZ29yCiAgICAgICAgOgogICAgICAgIFsxLjRdIAogICAgICAgICAgICBvbmUgZm9ybSBlZGl0b3IgY2xlYW51cC4KCnVzZXMgY29ycmVjdCBlbmNvZGluZyBub3cKIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjQgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuNCB1cGRhdGUKICAgICAgICBieQogICAgICAgIGFuZHJlYXMKICAgICAgICA6CiAgICAgICAgWzEuNF0gCiAgICAgICAgICAgIGNoZWNraW5nICJub3JtYWwiIHBhcmFtZXRlciB0b28gaW4gZ2V0SW1hZ2VQYXJhbWV0ZXJWYWx1ZSgpCiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS40IHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjQgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBlZ2xpCiAgICAgICAgOgogICAgICAgIFsxLjRdIAogICAgICAgICAgICBBZGFwdGVkIHRvIHRoZSBuZXcgbWV0aG9kIGdldEFic29sdXRlSWQoKS4KIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjQgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuNCB1cGRhdGUKICAgICAgICBieQogICAgICAgIGVnbGkKICAgICAgICA6CiAgICAgICAgWzEuNF0gCiAgICAgICAgICAgIFJlbW92ZSByZWFkIGNvZGUuCiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS40IHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjQgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBlZ2xpCiAgICAgICAgOgogICAgICAgIFsxLjRdIAogICAgICAgICAgICBSZW1vdmVkIHNvbWUgY29kZSBzbWVsbCBieSByZXBsYWNpbmcgb2NjdXJlbmNlcyBvZgoKU3RyaW5nIHBhcmVudGlkID0gbm9kZS5nZXRBYnNvbHV0ZVBhcmVudElkKCk7ClN0cmluZyBzcmNEb2N1bWVudGlkID0gcGFyZW50aWQgKyAiLyIgKyBub2RlLmdldElkKCk7CgpieQoKU3RyaW5nIHNyY0RvY3VtZW50aWQgPSBub2RlLmdldEFic29sdXRlSWQoKTsKIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjQgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuNCB1cGRhdGUKICAgICAgICBieQogICAgICAgIGVnbGkKICAgICAgICA6CiAgICAgICAgWzEuNF0gCiAgICAgICAgICAgIEFkZGVkIGEgbWV0aG9kIGdldEFic29sdXRlSWQoKSB0byBnZXQgdGhlIGFic29sdXRlIGlkIG9mIGEgbm9kZS4KIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjQgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuNCB1cGRhdGUKICAgICAgICBieQogICAgICAgIGVnbGkKICAgICAgICA6CiAgICAgICAgWzEuNF0gCiAgICAgICAgICAgICogQWRkZWQgYSBtZXRob2QgZ2V0QWJzb2x1dGVJZCgpIHRvIGdldCB0aGUgYWJzb2x1dGUgaWQgb2YgYSBub2RlLgoKKiBSZWltcGxlbWVudGVkIGdldEFic29sdXRlUGFyZW50SWQgd2l0aCB0aGUgaGVscCBvZiBhYm92ZSBtZXRob2QgYW5kCiAgZGVwcmVjYXRlZCBpdCAoeW91IHNob3VsZCB1c2UgZ2V0UGFyZW50KCkuZ2V0QWJzb2x1dGVJZCgpIGluc3RlYWQuCgoqIGRlcHJlY2F0ZWQgZ2V0UGFyZW50SWQgKGFzIHlvdSBzaG91bGQgdXNlIGdldFBhcmVudCgpLmdldElkKCkKICBpbnN0ZWFkLgogRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuNCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS40IHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgZWdsaQogICAgICAgIDoKICAgICAgICBbMS40XSAKICAgICAgICAgICAgSW1wcm92ZWQgdGhlIHdvcmRpbmcgYmFzZWQgb24gYSBzdWdnZXN0aW9uIGJ5IFBldGVyIFNoaXBsZXkuCiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS40IHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjQgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBhbmRyZWFzCiAgICAgICAgOgogICAgICAgIFsxLjRdIAogICAgICAgICAgICBhZGRlZCBzdXBwb3J0IGZvciBibG9jayB0aXRsZXMKIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjQgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuNCB1cGRhdGUKICAgICAgICBieQogICAgICAgIGFuZHJlYXMKICAgICAgICA6CiAgICAgICAgWzEuNF0gCiAgICAgICAgICAgIGNoYW5nZWQgZXJyb3IgbG9nIG1lc3NhZ2VzIHRvIGRlYnVnCiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS40IHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjQgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBhbmRyZWFzCiAgICAgICAgOgogICAgICAgIFsxLjRdIAogICAgICAgICAgICB1c2luZyBtdWx0aXBsZSBkYzoqIGVsZW1lbnRzIGluc3RlYWQgb2YgZGM6dmFsdWUgZWxlbWVudHMKIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjQgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuNCB1cGRhdGUKICAgICAgICBieQogICAgICAgIGdyZWdvcgogICAgICAgIDoKICAgICAgICBbMS40XSAKICAgICAgICAgICAgd2VpcmQgdGhpbmdzIGdvaW5nIG9uIHdpdGggc3RyYXkgbmFtZXNwYWNlcy4gdGhlIHhodG1sLXN0cmljdCBzZXJpYWxpemVyIGRvZXMgbm90IHN0cmlwIHRoZW0gc29tZXRpbWVzCiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS40IHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjQgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBhbmRyZWFzCiAgICAgICAgOgogICAgICAgIFsxLjRdIAogICAgICAgICAgICBhZGRlZCBzdXBwb3J0IGZvciBtdWx0aXBsZSBkdWJsaW4gY29yZSB2YWx1ZXMKIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjQgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuNCB1cGRhdGUKICAgICAgICBieQogICAgICAgIGdyZWdvcgogICAgICAgIDoKICAgICAgICBbMS40XSAKICAgICAgICAgICAgYWRkIHN1cHBvcnQgZm9yIGxvYWRpbmcgb2YganMgaW4gbGVueWEgY21zIHNjcmVlbnMKIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjQgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuNCB1cGRhdGUKICAgICAgICBieQogICAgICAgIGdyZWdvcgogICAgICAgIDoKICAgICAgICBbMS40XSAKICAgICAgICAgICAgdHlwbyBmaXgKIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjQgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuNCB1cGRhdGUKICAgICAgICBieQogICAgICAgIGdyZWdvcgogICAgICAgIDoKICAgICAgICBbMS40XSAKICAgICAgICAgICAgd2VyZSBub3Qgd2VsbC1mb3JtZWQKIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjQgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuNCB1cGRhdGUKICAgICAgICBieQogICAgICAgIGVkaXRoCiAgICAgICAgOgogICAgICAgIFsxLjRdIAogICAgICAgICAgICBzZXQgdGhlIHdvcmtmbG93IHRvIGVkaXQsIHdoaWxlIGluc2VydGluZyBhbiBhbHJlYWR5IGV4aXN0aW5nIGltYWdlL2Fzc2V0CiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS40IHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjQgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBzdGVmYW5vCiAgICAgICAgOgogICAgICAgIFsxLjRdIAogICAgICAgICAgICBQcmV0dGlmeWluZwogRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuNCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS40IHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgc3RlZmFubwogICAgICAgIDoKICAgICAgICBbMS40XSAKICAgICAgICAgICAgT3JnYW5pemVkIGltcG9ydHMKIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjQgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuNCB1cGRhdGUKICAgICAgICBieQogICAgICAgIHN0ZWZhbm8KICAgICAgICA6CiAgICAgICAgWzEuNF0gCiAgICAgICAgICAgIGRvd25ncmFkaW5nIHRvIHNlcnZsZXQgMi4yIGNhbGxzCiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS40IHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjQgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBzdGVmYW5vCiAgICAgICAgOgogICAgICAgIFsxLjRdIAogICAgICAgICAgICBmaXhpbmcgbGljZW5zZQogRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0ICB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+IHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgCiAgICAgICAgOgogICAgICAgIFtdIAogICAgICAgICAgICBUaGlzIGNvbW1pdCB3YXMgbWFudWZhY3R1cmVkIGJ5IGN2czJzdm4gdG8gY3JlYXRlIHRhZwonUkVMRUFTRV8xXzJfUkNfMicuIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjQgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuNCB1cGRhdGUKICAgICAgICBieQogICAgICAgIGdyZWdvcgogICAgICAgIDoKICAgICAgICBbMS40XSAKICAgICAgICAgICAgYWxzbyBjb3B5IENSRURJVFMKIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjQgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuNCB1cGRhdGUKICAgICAgICBieQogICAgICAgIGdyZWdvcgogICAgICAgIDoKICAgICAgICBbMS40XSAKICAgICAgICAgICAgdGFyZ2V0IHdhcyBvdXQgb2Ygc3luYyB3aXRoIHJvb3QtbGV2ZWwgY29udGVudHMKIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjQgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuNCB1cGRhdGUKICAgICAgICBieQogICAgICAgIGdyZWdvcgogICAgICAgIDoKICAgICAgICBbMS40XSAKICAgICAgICAgICAgY2Fubm90IGhhdmUgbWl4ZWQgY29udGVudCBpbiB4c2w6dGV4dAogRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuNCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS40IHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgZ3JlZ29yCiAgICAgICAgOgogICAgICAgIFsxLjRdIAogICAgICAgICAgICBvb3BzIGhhZCBvbGQgY29weXJpZ2h0CiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS40IHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjQgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBncmVnb3IKICAgICAgICA6CiAgICAgICAgWzEuNF0gCiAgICAgICAgICAgIGhpZGUgaW1hZ2UgdXBsb2FkIHdpdGggZG90cyB1bnRpbCBzb21lb25lIHBvcnRzIHRoZSByZXN0IG9mIHRoZSBwaXBlbGluZXMKIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjQgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuNCB1cGRhdGUKICAgICAgICBieQogICAgICAgIGdyZWdvcgogICAgICAgIDoKICAgICAgICBbMS40XSAKICAgICAgICAgICAgZm9yIHNvbWUgcmVhc29uLCB4c2x0YyBjcmFwcyBvdXQgb24gamV0dHkuIGphbGFuLWogd29ya3MgdGhvdWdoLgogRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuNCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS40IHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgZ3JlZ29yCiAgICAgICAgOgogICAgICAgIFsxLjRdIAogICAgICAgICAgICBlbGltaW5hdGUgdGhlICJ0ZXh0IGJlZm9yZSByb290IGVsZW1lbnQiIHdhcm5pbmcKIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjQgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuNCB1cGRhdGUKICAgICAgICBieQogICAgICAgIGdyZWdvcgogICAgICAgIDoKICAgICAgICBbMS40XSAKICAgICAgICAgICAgdXNlIGN2cyBhcyBpdCBpcyBpbnRlbmRlZAogRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuNCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS40IHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgZ3JlZ29yCiAgICAgICAgOgogICAgICAgIFsxLjRdIAogICAgICAgICAgICByZW1vdmUgc3VwZXJmbG91cyBidXR0b25zCiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS40IHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjQgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBncmVnb3IKICAgICAgICA6CiAgICAgICAgWzEuNF0gCiAgICAgICAgICAgIHRoZXJlIHdhcyBhIG5hbWVzcGFjZSBwcm9ibGVtIHRoYXQgYnJva2UgdGhlIHRyYW5zZm9ybQogRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuNCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS40IHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgZ3JlZ29yCiAgICAgICAgOgogICAgICAgIFsxLjRdIAogICAgICAgICAgICBleHBvcnQgc3VwcG9ydCBhZGRlZAogRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuNCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS40IHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgYW5kcmVhcwogICAgICAgIDoKICAgICAgICBbMS40XSAKICAgICAgICAgICAgcmVtb3ZlIGVtcHR5IERDIGVsZW1lbnRzIHdoZW4gc2F2aW5nCiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS40IHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjQgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBncmVnb3IKICAgICAgICA6CiAgICAgICAgWzEuNF0gCiAgICAgICAgICAgIGNvbnRhaW5lci1pbmRlcGVuZGVudCBlcG96LiBlcG96bWFjcm9zLmh0bWwgc3RpbGwgdG8gZG8KIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjQgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuNCB1cGRhdGUKICAgICAgICBieQogICAgICAgIGdyZWdvcgogICAgICAgIDoKICAgICAgICBbMS40XSAKICAgICAgICAgICAgdXBkYXRlZCBpbnN0cnVjdGlvbnMuIHNpbXBsaWZpZWQKIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjQgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuNCB1cGRhdGUKICAgICAgICBieQogICAgICAgIG1pY2hpCiAgICAgICAgOgogICAgICAgIFsxLjRdIAogICAgICAgICAgICBFcG96IHBpcGVsaW5lIGFkZGVkCiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS40IHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjQgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBtaWNoaQogICAgICAgIDoKICAgICAgICBbMS40XSAKICAgICAgICAgICAgQlhFIGludGVyZmFjZSBpbmRlcGVuZGVudCBvZiBjb250ZXh0UGF0aAogRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuNCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS40IHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgbWljaGkKICAgICAgICA6CiAgICAgICAgWzEuNF0gCiAgICAgICAgICAgIGJ4ZSByZXBsYWNlZCBieSBieGVuZwogRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuNCByZW1vdmU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS40IHJlbW92ZQogICAgICAgIGJ5CiAgICAgICAgbWljaGkKICAgICAgICA6CiAgICAgICAgWzEuNF0gCiAgICAgICAgICAgIHVzZWNhc2UgYnhlbmcgcmVuYW1lZAogRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuNCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS40IHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgZ3JlZ29yCiAgICAgICAgOgogICAgICAgIFsxLjRdIAogICAgICAgICAgICBzb21lIHdlcmUgYmluYXJ5CiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS40IHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjQgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBncmVnb3IKICAgICAgICA6CiAgICAgICAgWzEuNF0gCiAgICAgICAgICAgICoqKiBrZXl3b3JkIHN1YnN0aXR1dGlvbiBjaGFuZ2UgKioqCiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS40IHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjQgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBtaWNoaQogICAgICAgIDoKICAgICAgICBbMS40XSAKICAgICAgICAgICAgSGFydG1hbiBDTVMgTWF0cml4IGFkZGVkCiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS40IHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjQgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBncmVnb3IKICAgICAgICA6CiAgICAgICAgWzEuNF0gCiAgICAgICAgICAgIHJlaW5zdGF0ZSB0aGUgc2NoZWR1bGVyLi4gV09IT09PCiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS40IHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjQgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBncmVnb3IKICAgICAgICA6CiAgICAgICAgWzEuNF0gCiAgICAgICAgICAgIGRvaCwgd2FzIG5vdCB3ZWxsLWZvcm1lZAogRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuNCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS40IHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgbWljaGkKICAgICAgICA6CiAgICAgICAgWzEuNF0gCiAgICAgICAgICAgIGNvbnRlbnQgdXBkYXRlZAogRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuNCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS40IHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgbWljaGkKICAgICAgICA6CiAgICAgICAgWzEuNF0gCiAgICAgICAgICAgIGxpbmtzIHVwZGF0ZWQKIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjQgYWRkPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuNCBhZGQKICAgICAgICBieQogICAgICAgIG1pY2hpCiAgICAgICAgOgogICAgICAgIFsxLjRdIAogICAgICAgICAgICBNYWdub2xpYSBhZGRlZAogRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuNCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS40IHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgbWljaGkKICAgICAgICA6CiAgICAgICAgWzEuNF0gCiAgICAgICAgICAgIE5PVEUgYWJvdXQgZGlzdCBhbmQgc25hcHNob3QgYWRkZWQKIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjQgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuNCB1cGRhdGUKICAgICAgICBieQogICAgICAgIG1pY2hpCiAgICAgICAgOgogICAgICAgIFsxLjRdIAogICAgICAgICAgICBkZWJ1ZyB0ZXh0IHJlbW92ZWQKIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjQgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuNCB1cGRhdGUKICAgICAgICBieQogICAgICAgIG1pY2hpCiAgICAgICAgOgogICAgICAgIFsxLjRdIAogICAgICAgICAgICBpZGVudGl0aWVzIHNob3VsZCBub3QgYmUgZGVsZXRlZCBvciBvdmVyd3JpdHRlbiBkdXJpbmcgcmVzZXQgb3IgaW5zdGFsbAogRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuNCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS40IHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgbWljaGkKICAgICAgICA6CiAgICAgICAgWzEuNF0gCiAgICAgICAgICAgIFB1Ymxpc2hpbmcgYWxsIGZpeGVkCiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS40IGFkZDwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjQgYWRkCiAgICAgICAgYnkKICAgICAgICBlZGl0aAogICAgICAgIDoKICAgICAgICBbMS40XSAKICAgICAgICAgICAgc3R5bGVzaGVldCB0byBjaGFuZ2UgdGhlIHJjIGJhY2t1cCB4bWwgaW4gdGhlIGRlc2lyZWQgZG9jdHlwZSdzIHhtbAogRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuNCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS40IHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgZWRpdGgKICAgICAgICA6CiAgICAgICAgWzEuNF0gCiAgICAgICAgICAgIHJjIHZpZXcgZm9yIHRoZSBkb2N0eXBlIGVudHJ5CiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS40IHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjQgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBlZGl0aAogICAgICAgIDoKICAgICAgICBbMS40XSAKICAgICAgICAgICAgaW50cm9kdWNlZCByYy1yZXZpc2lvbnMgaW4gbWVudQogRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuNCBhZGQ8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS40IGFkZAogICAgICAgIGJ5CiAgICAgICAgZ3JlZ29yCiAgICAgICAgOgogICAgICAgIFsxLjRdIAogICAgICAgICAgICB3aGlsZSB3ZSBkbyBub3QgaGF2ZSBieGVuZyBhbmQgZXBveiBpbiBDVlMsIHdlIHNoaXAgb3VyIGJpbmFyaWVzIHdpdGggdGhlbS4gCgphZGRpbmcgdGhlIGxpY2Vuc2VzIGhlcmUgc2VlbXMgcHJ1ZGVudC4KIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjQgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuNCB1cGRhdGUKICAgICAgICBieQogICAgICAgIGdyZWdvcgogICAgICAgIDoKICAgICAgICBbMS40XSAKICAgICAgICAgICAgYml0Zmx1eCwgZXBveiBjcmVkaXRzIGFkZGVkCiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS40IHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjQgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBncmVnb3IKICAgICAgICA6CiAgICAgICAgWzEuNF0gCiAgICAgICAgICAgIHJlYWRtZSB1cGRhdGVkCiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS40IHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjQgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBncmVnb3IKICAgICAgICA6CiAgICAgICAgWzEuNF0gCiAgICAgICAgICAgIHdvcmRpbmcgaW1wcm92ZWQKIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjQgYWRkPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuNCBhZGQKICAgICAgICBieQogICAgICAgIGdyZWdvcgogICAgICAgIDoKICAgICAgICBbMS40XSAKICAgICAgICAgICAgYWRkZWQgd29yZCAxMSBpbXBvcnQsIGFuZCByZW9yZ2FuaXplZCB0aGUgb3Blbm9mZmljZSBpbXBvcnQKIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjQgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuNCB1cGRhdGUKICAgICAgICBieQogICAgICAgIGdyZWdvcgogICAgICAgIDoKICAgICAgICBbMS40XSAKICAgICAgICAgICAgY2hhbmdlIHRvIHVzZWNhc2UKIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjQgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuNCB1cGRhdGUKICAgICAgICBieQogICAgICAgIG1pY2hpCiAgICAgICAgOgogICAgICAgIFsxLjRdIAogICAgICAgICAgICBYT1BVU19QUkVGSVggYWRkZWQKIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjQgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuNCB1cGRhdGUKICAgICAgICBieQogICAgICAgIG1pY2hpCiAgICAgICAgOgogICAgICAgIFsxLjRdIAogICAgICAgICAgICBYb3B1cyBhcmVhIGdlbmVyYWxpemVkCiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS40IGFkZDwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjQgYWRkCiAgICAgICAgYnkKICAgICAgICBncmVnb3IKICAgICAgICA6CiAgICAgICAgWzEuNF0gCiAgICAgICAgICAgIGJldHRlciB1cGxvYWQgaW1hZ2VzCiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS40IHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjQgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBlZGl0aAogICAgICAgIDoKICAgICAgICBbMS40XSAKICAgICAgICAgICAgcmVwbGFjZSB0aGUgYW50IGRlbGV0ZSBieSBvd24gZGVsZXRlIGFudCB0YXNrcy4gKEZvciB3aW5kb3dzIHByb2JsZW0pCiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS40IHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjQgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBlZGl0aAogICAgICAgIDoKICAgICAgICBbMS40XSAKICAgICAgICAgICAgY2hhbmdlIHRoZSBsYXlvdXQgdG8gdGhpcyBvZiBhIGxlbnlhIHNjcmVlbgogRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuNCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS40IHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgZWRpdGgKICAgICAgICA6CiAgICAgICAgWzEuNF0gCiAgICAgICAgICAgIGZpeCB0aGUgcmVkaXJlY3QgZm9yIHRoZSByZW5hbWUuIFJlZGlyZWN0IHRvIHRoZSBwYXJlbnQKIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjQgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuNCB1cGRhdGUKICAgICAgICBieQogICAgICAgIG1pY2hpCiAgICAgICAgOgogICAgICAgIFsxLjRdIAogICAgICAgICAgICByZWRpcmVjdCBmaXhlZAogRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuNCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS40IHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgbWljaGkKICAgICAgICA6CiAgICAgICAgWzEuNF0gCiAgICAgICAgICAgIGRvY3VtZW50IG5hbWUgYWRkZWQKIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjQgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuNCB1cGRhdGUKICAgICAgICBieQogICAgICAgIG1pY2hpCiAgICAgICAgOgogICAgICAgIFsxLjRdIAogICAgICAgICAgICBkb2N1bWVudCBuYW1lIGFkZGVkCiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS40IHJlbW92ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjQgcmVtb3ZlCiAgICAgICAgYnkKICAgICAgICBtaWNoaQogICAgICAgIDoKICAgICAgICBbMS40XSAKICAgICAgICAgICAgb2Jzb2xldGUKIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjQgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuNCB1cGRhdGUKICAgICAgICBieQogICAgICAgIG1pY2hpCiAgICAgICAgOgogICAgICAgIFsxLjRdIAogICAgICAgICAgICB3M2MgTUQ1IHJlcGxhY2VkIGJ5IGphdmEuc2VjdXJpdHkuTWVzc2FnZURpZ2VzdAogRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuNCByZW1vdmU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS40IHJlbW92ZQogICAgICAgIGJ5CiAgICAgICAgbWljaGkKICAgICAgICA6CiAgICAgICAgWzEuNF0gCiAgICAgICAgICAgIHNlY3VyaXR5IGhvbGUKIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjQgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuNCB1cGRhdGUKICAgICAgICBieQogICAgICAgIG1pY2hpCiAgICAgICAgOgogICAgICAgIFsxLjRdIAogICAgICAgICAgICBFZGl0IGxpbmsgZml4ZWQKIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjQgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuNCB1cGRhdGUKICAgICAgICBieQogICAgICAgIG1pY2hpCiAgICAgICAgOgogICAgICAgIFsxLjRdIAogICAgICAgICAgICBlZGl0b3IgYWRkZWQKIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjQgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuNCB1cGRhdGUKICAgICAgICBieQogICAgICAgIG1pY2hpCiAgICAgICAgOgogICAgICAgIFsxLjRdIAogICAgICAgICAgICBwYXJhbWV0ZXIgYnVnIGZpeGVkCiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS40IGFkZDwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjQgYWRkCiAgICAgICAgYnkKICAgICAgICBlZ2xpCiAgICAgICAgOgogICAgICAgIFsxLjRdIAogICAgICAgICAgICBBZGRlZCBsaWNlbmNlIGZvciB3M2MtY3J5cHQuCiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS40IGFkZDwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjQgYWRkCiAgICAgICAgYnkKICAgICAgICBlZ2xpCiAgICAgICAgOgogICAgICAgIFsxLjRdIAogICAgICAgICAgICBBZGRlZCBhIGZpcnN0IGN1dCBvZiBhIGNyZWRpdHMgZmlsZSBhcyBzdWdnZXN0ZWQgYnkgTmljb2xhLiBNb3N0bHkKY29weSBhbmQgcGFzdGUgZnJvbSB0aGUgY3JlZGl0cyBwYWdlIGZyb20gdGhlIGNvbW11bml0eSBzZWN0aW9uIG9mIHRoZQpMZW55YSB3ZWIgcGFnZS4KIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjQgYWRkPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuNCBhZGQKICAgICAgICBieQogICAgICAgIGVnbGkKICAgICAgICA6CiAgICAgICAgWzEuNF0gCiAgICAgICAgICAgIEFkZGVkIHRoZSBsaWNlbnNlIGZpbGVzIGZyb20gdGhlIHhtbC1mb3JyZXN0IHByb2plY3QgYXMgdGhleSBhcmUKaW5jbHVkZWQgaW4gdGhlIGRpdHJpYnV0aW9uLgogRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuNCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS40IHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgbWljaGkKICAgICAgICA6CiAgICAgICAgWzEuNF0gCiAgICAgICAgICAgIFBsYW5ldCBPU0NPTSBsaW5rIGZpeGVkCiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS40IHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjQgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBtaWNoaQogICAgICAgIDoKICAgICAgICBbMS40XSAKICAgICAgICAgICAgTmF2aWdhdGlvbiBmaXhlZAogRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuNCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS40IHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgbWljaGkKICAgICAgICA6CiAgICAgICAgWzEuNF0gCiAgICAgICAgICAgIEVwb3ogaW50ZWdyYXRpb24gdXBkYXRlZAogRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuNCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS40IHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgbWljaGkKICAgICAgICA6CiAgICAgICAgWzEuNF0gCiAgICAgICAgICAgIGluc3RhbGxhdGlvbiBpbnN0cnVjdGlvbnMgdXBkYXRlZAogRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuNCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS40IHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgZ3JlZ29yCiAgICAgICAgOgogICAgICAgIFsxLjRdIAogICAgICAgICAgICByZW1vdmUgc2NoZWR1bGVyIGZyb20gZGVmYXVsdCBwdWJsaWNhdGlvbiBtZW51CgojMjYzMzkKIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjQgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuNCB1cGRhdGUKICAgICAgICBieQogICAgICAgIGdyZWdvcgogICAgICAgIDoKICAgICAgICBbMS40XSAKICAgICAgICAgICAgc2ltcGxpZmllZCB0aGUgaW5zdGFsbGF0aW9uIGluc3RydWN0aW9ucyBmb3IgdGhlIGJpbmFyeSB2ZXJzaW9uLgoKIzI2MzQ4CiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS40IHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjQgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBtaWNoaQogICAgICAgIDoKICAgICAgICBbMS40XSAKICAgICAgICAgICAgcmVkaXJlY3QtdG8gYWRkZWQKIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjQgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuNCB1cGRhdGUKICAgICAgICBieQogICAgICAgIG1pY2hpCiAgICAgICAgOgogICAgICAgIFsxLjRdIAogICAgICAgICAgICByZWRpcmVjdC10bwogRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuNCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS40IHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgbWljaGkKICAgICAgICA6CiAgICAgICAgWzEuNF0gCiAgICAgICAgICAgIFNhdmUgYW5kIEV4aXQgaW1wbGVtZW50ZWQKIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjQgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuNCB1cGRhdGUKICAgICAgICBieQogICAgICAgIG1pY2hpCiAgICAgICAgOgogICAgICAgIFsxLjRdIAogICAgICAgICAgICBMYXlvdXQgZml4ZWQKIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjQgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuNCB1cGRhdGUKICAgICAgICBieQogICAgICAgIG1pY2hpCiAgICAgICAgOgogICAgICAgIFsxLjRdIAogICAgICAgICAgICBGSVhNRSBhZGRlZCByZSByZWxvYWRzcmMgYXR0cmlidXRlCiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS40IGFkZDwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjQgYWRkCiAgICAgICAgYnkKICAgICAgICBtaWNoaQogICAgICAgIDoKICAgICAgICBbMS40XSAKICAgICAgICAgICAgbGl2ZSB1cGRhdGVkCiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS40IGFkZDwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjQgYWRkCiAgICAgICAgYnkKICAgICAgICBtaWNoaQogICAgICAgIDoKICAgICAgICBbMS40XSAKICAgICAgICAgICAgRXBveiBhZGRlZAogRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuNCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS40IHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgbWljaGkKICAgICAgICA6CiAgICAgICAgWzEuNF0gCiAgICAgICAgICAgIHByb3h5IGVuYWJsaW5nIGZvciBBcGFjaGUgMiBhZGRlZAogRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuNCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS40IHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgYW5kcmVhcwogICAgICAgIDoKICAgICAgICBbMS40XSAKICAgICAgICAgICAgZXh0ZW5kZWQgbG9nZ2luZwogRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuNCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS40IHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgYW5kcmVhcwogICAgICAgIDoKICAgICAgICBbMS40XSAKICAgICAgICAgICAgZml4ZWQgcHVibGlzaCAmYW1wOyBkZWFjdGl2YXRlCiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS40IHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjQgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBtaWNoaQogICAgICAgIDoKICAgICAgICBbMS40XSAKICAgICAgICAgICAgRklYTUUgYWRkZWQKIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjQgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuNCB1cGRhdGUKICAgICAgICBieQogICAgICAgIG1pY2hpCiAgICAgICAgOgogICAgICAgIFsxLjRdIAogICAgICAgICAgICBYSFRNTCBhbmQgRXBveiByZWFkZGVkCiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS40IHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjQgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBhbmRyZWFzCiAgICAgICAgOgogICAgICAgIFsxLjRdIAogICAgICAgICAgICByZXZlcnRpbmcgYWNjaWRlbnRpYWwgY2hhbmdlcwogRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuNCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS40IHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgYW5kcmVhcwogICAgICAgIDoKICAgICAgICBbMS40XSAKICAgICAgICAgICAgcGFzc2luZyBkZWZhdWx0IHBhcmFtZXRlcnMgdG8gWG9wdXMgc3R5bGVzaGVldAogRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuNCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS40IHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgbWljaGkKICAgICAgICA6CiAgICAgICAgWzEuNF0gCiAgICAgICAgICAgIHhodG1sIFhTTFRzIGZpeGVkCiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS40IHJlbW92ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjQgcmVtb3ZlCiAgICAgICAgYnkKICAgICAgICBtaWNoaQogICAgICAgIDoKICAgICAgICBbMS40XSAKICAgICAgICAgICAgb2Jzb2xldGUKIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjQgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuNCB1cGRhdGUKICAgICAgICBieQogICAgICAgIG1pY2hpCiAgICAgICAgOgogICAgICAgIFsxLjRdIAogICAgICAgICAgICBwdWJsaXNoIHRhc2sgZml4ZWQKIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjQgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuNCB1cGRhdGUKICAgICAgICBieQogICAgICAgIG1pY2hpCiAgICAgICAgOgogICAgICAgIFsxLjRdIAogICAgICAgICAgICB2ZXJzaW9uIGZpeGVkCiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS40IHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjQgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBlZGl0aAogICAgICAgIDoKICAgICAgICBbMS40XSAKICAgICAgICAgICAgcmV2ZXJ0CiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS40IHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjQgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBlZGl0aAogICAgICAgIDoKICAgICAgICBbMS40XSAKICAgICAgICAgICAgZGVsZXRlIGhpc3RvcnkgZmlsZSBieSBtb3ZlIHdvcmtmbG93IGhpc3RvcnkKIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjQgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuNCB1cGRhdGUKICAgICAgICBieQogICAgICAgIGVkaXRoCiAgICAgICAgOgogICAgICAgIFsxLjRdIAogICAgICAgICAgICBjYXRjaCBkZWxldGUgZXhjZXB0aW9uLCBzbyB0aGF0IHRoZSBtb3ZlIGRvbid0IGNyYXNoIHVuZGVyIHdpbmRvd3MKIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjQgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuNCB1cGRhdGUKICAgICAgICBieQogICAgICAgIGVkaXRoCiAgICAgICAgOgogICAgICAgIFsxLjRdIAogICAgICAgICAgICBhY2NlcHRSZXNlcnZlU3VidHJlZSBtZXRob2QgZm9yIHRoZSB2aXNpdG9yIHBhdHRlcm4KIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjQgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuNCB1cGRhdGUKICAgICAgICBieQogICAgICAgIGVkaXRoCiAgICAgICAgOgogICAgICAgIFsxLjRdIAogICAgICAgICAgICBkZWxldGUgbWV0YSBmaWxlcyBhbmQgcmVzb3VyY2VzIGZpbGUKIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjQgYWRkPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuNCBhZGQKICAgICAgICBieQogICAgICAgIGVkaXRoCiAgICAgICAgOgogICAgICAgIFsxLjRdIAogICAgICAgICAgICByZXBsYWNlIHRoZSBhbnQgZGVsZXRlIHdpdGggb3duIGFudCB0YXNrCiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS40IHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjQgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBhbmRyZWFzCiAgICAgICAgOgogICAgICAgIFsxLjRdIAogICAgICAgICAgICBmaXhlZCBzb21lIGJyb2tlbiBsaW5rcwogRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuNCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS40IHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgYW5kcmVhcwogICAgICAgIDoKICAgICAgICBbMS40XSAKICAgICAgICAgICAgLSBmaXhlZCBUb21jYXQgbGluawotIHJlbW92ZWQgIm9yIGxhdGVyIiBmb3IgY29jb29uIDIuMS4yCiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS40IHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjQgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBncmVnb3IKICAgICAgICA6CiAgICAgICAgWzEuNF0gCiAgICAgICAgICAgIGxkYXAgd29ya3MKIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjQgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuNCB1cGRhdGUKICAgICAgICBieQogICAgICAgIGdyZWdvcgogICAgICAgIDoKICAgICAgICBbMS40XSAKICAgICAgICAgICAgc2hvdyBwdWJsaWNhdGlvbiBuYW1lIGZvciBsb2dpbiBhbmQgbG9nb3V0IHNjcmVlbnMKIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjQgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuNCB1cGRhdGUKICAgICAgICBieQogICAgICAgIG1pY2hpCiAgICAgICAgOgogICAgICAgIFsxLjRdIAogICAgICAgICAgICBjZW50ZXIgZml4ZWQKIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjQgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuNCB1cGRhdGUKICAgICAgICBieQogICAgICAgIGdyZWdvcgogICAgICAgIDoKICAgICAgICBbMS40XSAKICAgICAgICAgICAgYWxzbyBnZXQgJmx0O2xpbmsmZ3Q7IGVsZW1lbnRzLCBzdWNoIGFzIENTUwoKIzI2MTA5CiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS40IHJlbW92ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjQgcmVtb3ZlCiAgICAgICAgYnkKICAgICAgICBncmVnb3IKICAgICAgICA6CiAgICAgICAgWzEuNF0gCiAgICAgICAgICAgIHJlbW92ZWQgZHVwbGljYXRlIGxpYgoKIzI2Mjc3CiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS40IHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjQgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBncmVnb3IKICAgICAgICA6CiAgICAgICAgWzEuNF0gCiAgICAgICAgICAgIG5vIG1vcmUgZGVmYXVsdCBjYXB0aW9uCiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS40IHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjQgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBncmVnb3IKICAgICAgICA6CiAgICAgICAgWzEuNF0gCiAgICAgICAgICAgIG9ubHkgc2hvdyBpbWFnZXMgaW4gdGhlIGltYWdlcyBkcm9wZG93bgogRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuNCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS40IHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgZ3JlZ29yCiAgICAgICAgOgogICAgICAgIFsxLjRdIAogICAgICAgICAgICBhZGQgImFsbCByaWdodHMgcmVzZXJ2ZWQiIGFzIGRlZmF1bHQKIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjQgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuNCB1cGRhdGUKICAgICAgICBieQogICAgICAgIGdyZWdvcgogICAgICAgIDoKICAgICAgICBbMS40XSAKICAgICAgICAgICAgc2hvdyB1c2VyIG5hbWUgaW5zdGVhZCBvZiB1c2VyIGlkIG9uIGFzc2V0IHNjcmVlbnMKIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjQgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuNCB1cGRhdGUKICAgICAgICBieQogICAgICAgIGdyZWdvcgogICAgICAgIDoKICAgICAgICBbMS40XSAKICAgICAgICAgICAgcm91bmR0cmlwcGluZyB3YXMgYnJva2VuCiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS40IHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjQgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBtaWNoaQogICAgICAgIDoKICAgICAgICBbMS40XSAKICAgICAgICAgICAgaW50cm9kdWN0aW9uIHRleHQgdXBkYXRlZAogRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuNCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS40IHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgbWljaGkKICAgICAgICA6CiAgICAgICAgWzEuNF0gCiAgICAgICAgICAgIGZvciBhbGwgdG9tY2F0IHByb3BlcnRpZXMgYSBub3RlIGFkZGVkIHJlIHJlbGF0aXZlIHBhdGgKIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjQgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuNCB1cGRhdGUKICAgICAgICBieQogICAgICAgIGdyZWdvcgogICAgICAgIDoKICAgICAgICBbMS40XSAKICAgICAgICAgICAgbm90ZSBhYm91dCByZWxhdGl2ZSBwYXRocyBhZGRlZC4gdGhhbmtzIHRvIGRhbGUgY2hyaXN0IGZvciB0aGUgaGludAogRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuNCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS40IHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgYW5kcmVhcwogICAgICAgIDoKICAgICAgICBbMS40XSAKICAgICAgICAgICAgZGVsZXRlRG9jdW1lbnQoKSB0aHJvd3MgZXhjZXB0aW9uIHdoZW4gdGhlIGRvY3VtZW50IGRvZXMgbm90IGV4aXN0CiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS40IHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjQgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBhbmRyZWFzCiAgICAgICAgOgogICAgICAgIFsxLjRdIAogICAgICAgICAgICBhZGRlZCBtZXRob2QgYXMgd29ya2Fyb3VuZCBmb3IgSUUgJmx0O2lucHV0IHR5cGU9ImltYWdlIiZndDsgYnVnCiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS40IHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjQgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBhbmRyZWFzCiAgICAgICAgOgogICAgICAgIFsxLjRdIAogICAgICAgICAgICByZXBsYWNlZCAvbGVueWEgYnkge3JlcXVlc3Q6Y29udGV4dFBhdGh9CiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS40IHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjQgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBhbmRyZWFzCiAgICAgICAgOgogICAgICAgIFsxLjRdIAogICAgICAgICAgICByZXBsYWNlZCAvbGVueWEgYnkge3JlcXVlc3Q6Y29udGV4dFBhdGh9CiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS40IHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjQgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBtaWNoaQogICAgICAgIDoKICAgICAgICBbMS40XSAKICAgICAgICAgICAgdHlwZSBmaXhlZAogRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuNCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS40IHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgZ3JlZ29yCiAgICAgICAgOgogICAgICAgIFsxLjRdIAogICAgICAgICAgICB2YWxpZGF0aW9uIHdhcyB0b28gZHJhY29uaWFuCiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS40IHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjQgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBncmVnb3IKICAgICAgICA6CiAgICAgICAgWzEuNF0gCiAgICAgICAgICAgIG9uZSBkYXksIHBlb3BsZSB3aWxsIGxlYXJuIHRoYXQgeG1sIGNvbW1lbnRzIGFyZSBub3QgYSBkdW1waW5nIGdyb3VuZCBmb3Igb2xkIGNyYXAKIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjQgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuNCB1cGRhdGUKICAgICAgICBieQogICAgICAgIGFuZHJlYXMKICAgICAgICA6CiAgICAgICAgWzEuNF0gCiAgICAgICAgICAgIGZpeGVkIGNlbnRlcmluZyBmb3IgTGVueWEgY21zYm9keQogRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuNCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS40IHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgbWljaGkKICAgICAgICA6CiAgICAgICAgWzEuNF0gCiAgICAgICAgICAgIGV4cG9ydCBocmVmIGZpeGVkCiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS40IHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjQgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBncmVnb3IKICAgICAgICA6CiAgICAgICAgWzEuNF0gCiAgICAgICAgICAgIGdyYXkgb3V0IGluZm8gYXJlYSBvcGVyYXRpb25zIGZvciBvYmplY3RzIGluIHRoZSB0cmFzaCBvciBpbiB0aGUgYXJjaGl2ZS4KIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjQgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuNCB1cGRhdGUKICAgICAgICBieQogICAgICAgIG1pY2hpCiAgICAgICAgOgogICAgICAgIFsxLjRdIAogICAgICAgICAgICB2ZXJzaW9uICBhbmQgYXV0aG9yIGZpeGVkCiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS40IHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjQgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBtaWNoaQogICAgICAgIDoKICAgICAgICBbMS40XSAKICAgICAgICAgICAgc2VkIG5hdGl2ZSBjYWxsIGJ5IFNFRCBjbGFzcyByZXBsYWNlZAogRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuNCBhZGQ8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS40IGFkZAogICAgICAgIGJ5CiAgICAgICAgbWljaGkKICAgICAgICA6CiAgICAgICAgWzEuNF0gCiAgICAgICAgICAgIHV0aWxpdHkgY2xhc3Mgc2ltaWxpYXIgdG8gVU5JWCBzZWQgYWRkZWQKIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjQgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuNCB1cGRhdGUKICAgICAgICBieQogICAgICAgIGdyZWdvcgogICAgICAgIDoKICAgICAgICBbMS40XSAKICAgICAgICAgICAgdXNhYmlsaXR5IGltcHJvdmVtZW50cwogRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuNCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS40IHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgbWljaGkKICAgICAgICA6CiAgICAgICAgWzEuNF0gCiAgICAgICAgICAgIGRlYnVnZ2luZyBpbXByb3ZlZAogRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuNCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS40IHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgZ3JlZ29yCiAgICAgICAgOgogICAgICAgIFsxLjRdIAogICAgICAgICAgICByZWRpcmVjdCB0byB0aGUgbmV3IHVybCBhZnRlciBhIGRvY3VtZW50IHJlbmFtZQogRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuNCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS40IHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgbWljaGkKICAgICAgICA6CiAgICAgICAgWzEuNF0gCiAgICAgICAgICAgIGV4cG9ydCBmaXhlZAogRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuNCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS40IHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgbWljaGkKICAgICAgICA6CiAgICAgICAgWzEuNF0gCiAgICAgICAgICAgIFNpZGViYXIgZml4ZWQKIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjQgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuNCB1cGRhdGUKICAgICAgICBieQogICAgICAgIGdyZWdvcgogICAgICAgIDoKICAgICAgICBbMS40XSAKICAgICAgICAgICAgdGlnaHRlbiB0aGluZ3MgZnVydGhlciBzbyB0aGF0IHlvdSBjYW5ub3QgY3JlYXRlIGRvY3VtZW50cyB3aXRoIHN0dXBpZCBpZHMKIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjQgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuNCB1cGRhdGUKICAgICAgICBieQogICAgICAgIGFuZHJlYXMKICAgICAgICA6CiAgICAgICAgWzEuNF0gCiAgICAgICAgICAgIGFkZGVkIG1ldGhvZCB0byBvYnRhaW4gcmVxdWVzdCBVUkwKIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjQgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuNCB1cGRhdGUKICAgICAgICBieQogICAgICAgIGdyZWdvcgogICAgICAgIDoKICAgICAgICBbMS40XSAKICAgICAgICAgICAgcmVzdHJpY3QgcmVuYW1lcyB0byBhLXosIEEtWiwgMC05LCBfIGFuZCAtCiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS40IHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjQgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBncmVnb3IKICAgICAgICA6CiAgICAgICAgWzEuNF0gCiAgICAgICAgICAgIHZhbGlkYXRlIHJlcXVpcmVkIGZpZWxkcwogRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuNCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS40IHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgZ3JlZ29yCiAgICAgICAgOgogICAgICAgIFsxLjRdIAogICAgICAgICAgICBtYWtlIGl0IGhhcmRlciBmb3IgdXNlcnMgdG8gc2hvb3QgdGhlbXNlbHZlcyBpbiB0aGUgZm9vdC4gbm8gbW9yZSByZW5hbWVzIHdpdGggc3BhY2VzIG9yIC8gaW4gdGhlIGRvY3VtZW50IGlkCiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS40IHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjQgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBtaWNoaQogICAgICAgIDoKICAgICAgICBbMS40XSAKICAgICAgICAgICAgbWV0aG9kIGFkZGVkCiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS40IHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjQgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBncmVnb3IKICAgICAgICA6CiAgICAgICAgWzEuNF0gCiAgICAgICAgICAgIHRoZXNlIGV4Y2VwdGlvbnMgYXJlIGZhciB0b28gdmVyYm9zZSwgc2NhcmluZyB1bnN1c3BlY3RpbmcgdXNlcnMKIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjQgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuNCB1cGRhdGUKICAgICAgICBieQogICAgICAgIGdyZWdvcgogICAgICAgIDoKICAgICAgICBbMS40XSAKICAgICAgICAgICAgbW9yZSBvcHRpb25zIGZvciBieGUgdG9vbGJhcgogRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuNCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS40IHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgZ3JlZ29yCiAgICAgICAgOgogICAgICAgIFsxLjRdIAogICAgICAgICAgICB3YXMgbG9va2luZyBmb3IgdGhlIG9sZCBieGUsIGRvaCEKIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjQgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuNCB1cGRhdGUKICAgICAgICBieQogICAgICAgIGdyZWdvcgogICAgICAgIDoKICAgICAgICBbMS40XSAKICAgICAgICAgICAgbWFrZSBzdXJlIGFkbWlucyBjYW5ub3Qgc2V0IGVtcHR5IHBhc3N3b3JkcwogRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuNCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS40IHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgZ3JlZ29yCiAgICAgICAgOgogICAgICAgIFsxLjRdIAogICAgICAgICAgICB1c2FiaWxpdHkgaW1wcm92ZW1lbnRzLiBncmF5IG91dCBpbmFwcHJvcHJpYXRlIG9wdGlvbnMsIGxpa2UgbW92ZSB1cCAvIGRvd24gZm9yIG5vZGVzIGluIHRoZSB0cmFzaC4KIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjQgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuNCB1cGRhdGUKICAgICAgICBieQogICAgICAgIGdyZWdvcgogICAgICAgIDoKICAgICAgICBbMS40XSAKICAgICAgICAgICAgd2VsbC1mb3JtZWRuZXNzIGZpeAogRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuNCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS40IHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgZ3JlZ29yCiAgICAgICAgOgogICAgICAgIFsxLjRdIAogICAgICAgICAgICBzeW5jIGFudCB0YXNrcyB3aXRoIG1vcmUgcmVjZW50IGRldmVsb3BtZW50cwogRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuNCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS40IHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgZ3JlZ29yCiAgICAgICAgOgogICAgICAgIFsxLjRdIAogICAgICAgICAgICB0eXBvIGZpeAogRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuNCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS40IHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgbWljaGkKICAgICAgICA6CiAgICAgICAgWzEuNF0gCiAgICAgICAgICAgIHB1YmxpYyBtZXRob2QgdG8gZ2V0IHNvdXJjZSBhZGRlZAogRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuNCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS40IHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgZ3JlZ29yCiAgICAgICAgOgogICAgICAgIFsxLjRdIAogICAgICAgICAgICByZW1vdmVkIHN1cGVyZmxvdXMgdHJhbnNmb3JtLiB2aWV3IHJldmlzaW9ucyBzaG91bGQgbm93IHdvcmsuCgpmaXhlcyAjMjU0NzYKIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjQgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuNCB1cGRhdGUKICAgICAgICBieQogICAgICAgIGdyZWdvcgogICAgICAgIDoKICAgICAgICBbMS40XSAKICAgICAgICAgICAgd2hhdCBpcyB0aGlzIGNyYXA6Cgp2YWx1ZT0iTEVOWUEiCiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS40IGFkZDwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjQgYWRkCiAgICAgICAgYnkKICAgICAgICBncmVnb3IKICAgICAgICA6CiAgICAgICAgWzEuNF0gCiAgICAgICAgICAgIGFkZCByZWxheCBuZyBzY2hlbWEgZm9yIHNpZGViYXIKCnRoZXJlIGFyZSBzdGlsbCBzb21lIGdsaXRjaGVzIGluIHRoZSBlZGl0b3IuLiBwbGVhc2UgcmV2aWV3Cgp0aGlzIGZpeGVzICMyNjExMQogRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuNCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS40IHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgZ3JlZ29yCiAgICAgICAgOgogICAgICAgIFsxLjRdIAogICAgICAgICAgICBhZGRlZCBkY3Rlcm1zIG5zIHRvIHNhbXBsZXMuIHRoaXMgc2hvdWxkIGZpeCAjMjU1NzAKIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjQgYWRkPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuNCBhZGQKICAgICAgICBieQogICAgICAgIGdyZWdvcgogICAgICAgIDoKICAgICAgICBbMS40XSAKICAgICAgICAgICAgdGhpbmdzIG91Z2h0IHRvIGJlIGluIGRpZmZlcmVudCBwbGFjZXMKIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjQgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuNCB1cGRhdGUKICAgICAgICBieQogICAgICAgIGdyZWdvcgogICAgICAgIDoKICAgICAgICBbMS40XSAKICAgICAgICAgICAgKiByZXBsYWNlIHVnbHkgaHRtbCB3aXRoIGxlbnlhIGNtcyBzY3JlZW4KKiByZW1vdmUgcGxhdGZvcm0gYmlhcyB3aGVyZSBhcHByb3ByaWF0ZQoqIGFkZCBqZXR0eSBub3RlCgpoZXJlcyB0byBob3BpbmcgdGhhdCBubyBvbmUgY2hlY2tzIGluIGFueSBtb3JlIHBsYWluIGh0bWwgc2NyZWVucy4KIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjQgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuNCB1cGRhdGUKICAgICAgICBieQogICAgICAgIGdyZWdvcgogICAgICAgIDoKICAgICAgICBbMS40XSAKICAgICAgICAgICAgYWRkIHdhcm5pbmcgaWYgYnhlIGlzIG1pc3NpbmcKCmZpeGVzICMyNTU2OQogRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuNCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS40IHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgbWljaGkKICAgICAgICA6CiAgICAgICAgWzEuNF0gCiAgICAgICAgICAgIEZJWE1FIHJlIHVwZGF0aW5nIGF0dHJpYnV0ZSBhZGRlZAogRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuNCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS40IHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgbWljaGkKICAgICAgICA6CiAgICAgICAgWzEuNF0gCiAgICAgICAgICAgIE5vdGUgYWRkZWQKIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjQgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuNCB1cGRhdGUKICAgICAgICBieQogICAgICAgIG1pY2hpCiAgICAgICAgOgogICAgICAgIFsxLjRdIAogICAgICAgICAgICBjaGFuZ2VkIHRvIFVURi04CiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS40IGFkZDwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjQgYWRkCiAgICAgICAgYnkKICAgICAgICBtaWNoaQogICAgICAgIDoKICAgICAgICBbMS40XSAKICAgICAgICAgICAgb25lIGZvcm0gZml4ZWQKIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjQgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuNCB1cGRhdGUKICAgICAgICBieQogICAgICAgIGVkaXRoCiAgICAgICAgOgogICAgICAgIFsxLjRdIAogICAgICAgICAgICByZXNldCB0aGUgZW5jb2RpbmcgZm9yIHJlc291cmNlICJzdHlsZS1jbXMtcGFnZSIgdG8gaXNvLTg4NTktMQogRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuNCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS40IHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgZ3JlZ29yCiAgICAgICAgOgogICAgICAgIFsxLjRdIAogICAgICAgICAgICBzb21ldGltZXMsIGkgYW0gYW5hbCByZXRlbnRpdmUuCiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS40IHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjQgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBlZGl0aAogICAgICAgIDoKICAgICAgICBbMS40XSAKICAgICAgICAgICAgY3JlYXRlIGZpbGUgd2l0aCBJT1V0aWxzLmNyZWF0ZUZpbGUgaW5zdGVhZCBvZiBmaWxlLmNyZWF0ZU5ld0ZpbGUgYmVjYXVzZSBvZiB1bml4IHByb2JsZW1zCiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS40IGFkZDwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjQgYWRkCiAgICAgICAgYnkKICAgICAgICBhbmRyZWFzCiAgICAgICAgOgogICAgICAgIFsxLjRdIAogICAgICAgICAgICBzZXJ2aW5nIHNoYXJlZCByZXNvdXJjZXMKIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjQgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuNCB1cGRhdGUKICAgICAgICBieQogICAgICAgIGVkaXRoCiAgICAgICAgOgogICAgICAgIFsxLjRdIAogICAgICAgICAgICBSQyBmb3IgYXNzZXRzIGFuZCBpbWFnZXMKIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjQgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuNCB1cGRhdGUKICAgICAgICBieQogICAgICAgIGVkaXRoCiAgICAgICAgOgogICAgICAgIFsxLjRdIAogICAgICAgICAgICBSQyBidWlsZCBpbiBmb3IgdGhlIGltYWdlcyBhbmQgYXNzZXRzCiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS40IHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjQgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBlZGl0aAogICAgICAgIDoKICAgICAgICBbMS40XSAKICAgICAgICAgICAgZml4IHRoZSBwYXRoIGZvciBib290b21iZy5naWYKIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjQgcmVtb3ZlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuNCByZW1vdmUKICAgICAgICBieQogICAgICAgIGVkaXRoCiAgICAgICAgOgogICAgICAgIFsxLjRdIAogICAgICAgICAgICBObyBtb3JlIG5lZWRlZC4KIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjQgYWRkPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuNCBhZGQKICAgICAgICBieQogICAgICAgIGVkaXRoCiAgICAgICAgOgogICAgICAgIFsxLjRdIAogICAgICAgICAgICBBbnQgdGFzayB0byBpbml0IHRoZSBSQyBmb3IgdGhlIGRlc3RpbmF0aW9uIGZpbGVzIChmb3IgaW5zdGFuY2Ugd2hpbGUgY29weWluZykKIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjQgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuNCB1cGRhdGUKICAgICAgICBieQogICAgICAgIG1pY2hpCiAgICAgICAgOgogICAgICAgIFsxLjRdIAogICAgICAgICAgICB3M2MtY3J5cHQgamFyIGFkZGVkCiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS40IHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjQgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBtaWNoaQogICAgICAgIDoKICAgICAgICBbMS40XSAKICAgICAgICAgICAgbWljaGkgcmVtb3ZlZAogRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuNCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS40IHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgbWljaGkKICAgICAgICA6CiAgICAgICAgWzEuNF0gCiAgICAgICAgICAgIEZJWE1FcyBhZGRlZAogRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuNCByZW1vdmU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS40IHJlbW92ZQogICAgICAgIGJ5CiAgICAgICAgbWljaGkKICAgICAgICA6CiAgICAgICAgWzEuNF0gCiAgICAgICAgICAgIG1vdmVkIHRvIGphcgogRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuNCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS40IHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgbWljaGkKICAgICAgICA6CiAgICAgICAgWzEuNF0gCiAgICAgICAgICAgIGRpcmVjdG9yeSBzdHJ1Y3R1cmUgdXBkYXRlZCBhbmQgc291cmNlIGFkZGVkCiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS40IHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjQgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBncmVnb3IKICAgICAgICA6CiAgICAgICAgWzEuNF0gCiAgICAgICAgICAgIGltcHJvdmUgZm9ybSBlZGl0b3IgZm9yIHhodG1sIGRvY3R5cGUKIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjQgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuNCB1cGRhdGUKICAgICAgICBieQogICAgICAgIGdyZWdvcgogICAgICAgIDoKICAgICAgICBbMS40XSAKICAgICAgICAgICAgcmVtb3ZlIHVuaXpoIHJlZmVyZW5jZXMKIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjQgcmVtb3ZlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuNCByZW1vdmUKICAgICAgICBieQogICAgICAgIGdyZWdvcgogICAgICAgIDoKICAgICAgICBbMS40XSAKICAgICAgICAgICAgcmVtb3ZlIHNpbXBsZSBkb2N0eXBlCiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS40IGFkZDwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjQgYWRkCiAgICAgICAgYnkKICAgICAgICBncmVnb3IKICAgICAgICA6CiAgICAgICAgWzEuNF0gCiAgICAgICAgICAgIGNvbnZlcnQgdzNjIGNyeXB0IGludG8gYSBqYXIKIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjQgcmVtb3ZlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuNCByZW1vdmUKICAgICAgICBieQogICAgICAgIGdyZWdvcgogICAgICAgIDoKICAgICAgICBbMS40XSAKICAgICAgICAgICAgcmVtb3ZlIG9ic29sZXRlIHNjaGVtYQogRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuNCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS40IHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgZ3JlZ29yCiAgICAgICAgOgogICAgICAgIFsxLjRdIAogICAgICAgICAgICBhZGQgc3VwcG9ydCBmb3IgZWRpdGluZyBvZiBzaWRlYmFyLgoKdGhhbmtzIHRvIGRhbGUgY2hyaXN0CiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS40IHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjQgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBncmVnb3IKICAgICAgICA6CiAgICAgICAgWzEuNF0gCiAgICAgICAgICAgIHJlbW92ZSBub24gZXhpc3RpbmcgeG1sIHVwbG9hZAogRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuNCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS40IHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgZ3JlZ29yCiAgICAgICAgOgogICAgICAgIFsxLjRdIAogICAgICAgICAgICByZW1vdmVkIGRvY3R5cGUgZGVjbGFyYXRpb24gdG8gYXZvaWQgbmFzdHkgZW50aXR5IHJlc29sdmVyIGlzc3VlcwogRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuNCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS40IHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgZ3JlZ29yCiAgICAgICAgOgogICAgICAgIFsxLjRdIAogICAgICAgICAgICBhZGRlZCB2YWxpZGF0aW9uIG9mIHJlcXVpcmVkIGZpZWxkcwppbXByb3ZlZCB3b3JkaW5nCiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS40IHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjQgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBncmVnb3IKICAgICAgICA6CiAgICAgICAgWzEuNF0gCiAgICAgICAgICAgIGVuYWJsZSBhcmNoaXZlIGFuZCBkZWxldGUgZm9yIGRlZmF1bHQgcHVibGljYXRpb24uCgp0aGFua3MgdG8gZG91ZyBjaGVzdG51dAogRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuNCBhZGQ8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS40IGFkZAogICAgICAgIGJ5CiAgICAgICAgZ3JlZ29yCiAgICAgICAgOgogICAgICAgIFsxLjRdIAogICAgICAgICAgICBpbXByb3ZlIHNlcnZpbmcgb2Ygc3RhdGljIHJlc291cmNlczoKCiogdGFrZSBhcmVhIGludG8gYWNjb3VudAoqIGV4dGVuZCBvdXQgb2YgdGhlIGJveCBtaW1lIHR5cGVzCiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS40IHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjQgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBncmVnb3IKICAgICAgICA6CiAgICAgICAgWzEuNF0gCiAgICAgICAgICAgIGEgZG9jIHR5cGUgd2FzIG1pc3BlbHQKIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjQgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuNCB1cGRhdGUKICAgICAgICBieQogICAgICAgIG1pY2hpCiAgICAgICAgOgogICAgICAgIFsxLjRdIAogICAgICAgICAgICBXYXJuaW5nIHByZXR0aWZpZWQKIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjQgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuNCB1cGRhdGUKICAgICAgICBieQogICAgICAgIG1pY2hpCiAgICAgICAgOgogICAgICAgIFsxLjRdIAogICAgICAgICAgICB1dGlsaXR5IG1ldGhvZCBhZGRlZAogRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuNCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS40IHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgZ3JlZ29yCiAgICAgICAgOgogICAgICAgIFsxLjRdIAogICAgICAgICAgICBhZGQgcGRmIHRvIGFsbG93ZWQgdXBsb2FkIHR5cGVzCiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS40IHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjQgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBhbmRyZWFzCiAgICAgICAgOgogICAgICAgIFsxLjRdIAogICAgICAgICAgICB1c2luZyB0ZW1wbGF0ZSBmb3IgcHVibGljYXRpb25zIHRlc3QgYnVpbGRmaWxlIChhdm9pZCBtdWx0aXBsZSBwYXRjaGluZykKIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjQgYWRkPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuNCBhZGQKICAgICAgICBieQogICAgICAgIGFuZHJlYXMKICAgICAgICA6CiAgICAgICAgWzEuNF0gCiAgICAgICAgICAgIGFkZGVkIHB1YmxpY2F0aW9uIHRlc3QgZnJhbWV3b3JrCiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS40IHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjQgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBtaWNoaQogICAgICAgIDoKICAgICAgICBbMS40XSAKICAgICAgICAgICAgQ01GUyB1cGRhdGVkCiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS40IHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjQgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBncmVnb3IKICAgICAgICA6CiAgICAgICAgWzEuNF0gCiAgICAgICAgICAgIG5vIG5lZWQgdG8gbGVhdmUgZGVidWcgc3RhdGVtZW50cyBpbgogRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuNCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS40IHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgZ3JlZ29yCiAgICAgICAgOgogICAgICAgIFsxLjRdIAogICAgICAgICAgICB3aGl0ZXNwYWNlCiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS40IHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjQgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBncmVnb3IKICAgICAgICA6CiAgICAgICAgWzEuNF0gCiAgICAgICAgICAgIHRoZSB2YWxpZGF0aW9uIGFjdGlvbiB3YXMgdmFsaWRhdGluZyBhbiBlbXB0eSBmaWxlIGZvciBzb21lIHJlYXNvbi4gCgplZGl0aCwgcGxlYXNlIGRvdWJsZS1jaGVjay4KCnNob3VsZCBmaXggIzYyMgogRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuNCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS40IHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgZ3JlZ29yCiAgICAgICAgOgogICAgICAgIFsxLjRdIAogICAgICAgICAgICBpbmRleCBpdGVyYXRvciBoYWQgYSB3cm9uZyBjb21wYXJpc29uLiB3b3JrcyBhZ2FpbiBub3cuCiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS40IHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjQgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBncmVnb3IKICAgICAgICA6CiAgICAgICAgWzEuNF0gCiAgICAgICAgICAgIGxlbnlhIHZlcnNpb24gdXBkYXRlZAogRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuNCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS40IHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgbWljaGkKICAgICAgICA6CiAgICAgICAgWzEuNF0gCiAgICAgICAgICAgIFBERiBkb2N1IGFkZGVkCiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS40IHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjQgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBhbmRyZWFzCiAgICAgICAgOgogICAgICAgIFsxLjRdIAogICAgICAgICAgICBkZWxldGluZyBzY2hlZHVsZXIgZW50cnkgd2hlbiBkb2N1bWVudCBpcyBtb3ZlZAogRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuNCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS40IHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgZ3JlZ29yCiAgICAgICAgOgogICAgICAgIFsxLjRdIAogICAgICAgICAgICBtYWtlIHhwZGYgcGF0aCBpbmRlcGVuZGVudCBvZiB2ZXJzaW9uIGNoYW5nZXMKIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjQgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuNCB1cGRhdGUKICAgICAgICBieQogICAgICAgIGdyZWdvcgogICAgICAgIDoKICAgICAgICBbMS40XSAKICAgICAgICAgICAgdXBncmFkZSB0byBsdWNlbmUgMS4zIGZpbmFsCiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS40IHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjQgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBtaWNoaQogICAgICAgIDoKICAgICAgICBbMS40XSAKICAgICAgICAgICAgY3Jhd2wgcmVtb3ZlZAogRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuNCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS40IHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgbWljaGkKICAgICAgICA6CiAgICAgICAgWzEuNF0gCiAgICAgICAgICAgIEFkb2JlIFBERiBjb252ZXJzaW9uIHRhcmdldCBhZGRlZAogRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuNCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS40IHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgbWljaGkKICAgICAgICA6CiAgICAgICAgWzEuNF0gCiAgICAgICAgICAgIGNsZWFuZWQKIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjQgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuNCB1cGRhdGUKICAgICAgICBieQogICAgICAgIG1pY2hpCiAgICAgICAgOgogICAgICAgIFsxLjRdIAogICAgICAgICAgICB4cGRmIGltcGxlbWVudGVkCiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS40IHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjQgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBtaWNoaQogICAgICAgIDoKICAgICAgICBbMS40XSAKICAgICAgICAgICAgeHBkZiBhcyB0YXJnZXQgYWRkZWQKIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjQgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuNCB1cGRhdGUKICAgICAgICBieQogICAgICAgIGdyZWdvcgogICAgICAgIDoKICAgICAgICBbMS40XSAKICAgICAgICAgICAgcmVtb3ZlIHVudXNlZCBhbnQgdGFzawogRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuNCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS40IHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgZ3JlZ29yCiAgICAgICAgOgogICAgICAgIFsxLjRdIAogICAgICAgICAgICBhc3NldCBidXR0b24KIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjQgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuNCB1cGRhdGUKICAgICAgICBieQogICAgICAgIGdyZWdvcgogICAgICAgIDoKICAgICAgICBbMS40XSAKICAgICAgICAgICAgZWxlbWVudCBpcyBub3cgY2FsbGVkIGNoaWxkcmVuLCB3YXMgaW5kZXguIHRoaXMgZml4ZXMgIzU5MwogRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuNCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS40IHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgbWljaGkKICAgICAgICA6CiAgICAgICAgWzEuNF0gCiAgICAgICAgICAgIGR0ZCB0cm91YmxlcyBpZiBvZmZsaW5lCiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS40IHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjQgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBtaWNoaQogICAgICAgIDoKICAgICAgICBbMS40XSAKICAgICAgICAgICAgY2FsbCBkZWZhdWx0LnhzcCBmcm9tIGNvcmUKIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjQgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuNCB1cGRhdGUKICAgICAgICBieQogICAgICAgIG1pY2hpCiAgICAgICAgOgogICAgICAgIFsxLjRdIAogICAgICAgICAgICB0ZXh0L3hodG1sIHJlcGxhY2VkIGJ5IGFwcGxpY2F0aW9uL3hodG1sK3htbAogRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuNCByZW1vdmU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS40IHJlbW92ZQogICAgICAgIGJ5CiAgICAgICAgbWljaGkKICAgICAgICA6CiAgICAgICAgWzEuNF0gCiAgICAgICAgICAgIG1vdmVkIGludG8gY29yZQogRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuNCBhZGQ8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS40IGFkZAogICAgICAgIGJ5CiAgICAgICAgbWljaGkKICAgICAgICA6CiAgICAgICAgWzEuNF0gCiAgICAgICAgICAgIG1vdmVkIGZyb20gZGVmYXVsdCBwdWJsaWNhdGlvbiBpbnRvIHRoZSBjb3JlCiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS40IHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjQgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBlZ2xpCiAgICAgICAgOgogICAgICAgIFsxLjRdIAogICAgICAgICAgICBGaXhlZCBhIGJ1ZyB0aGF0IHNob3dzIHVwIGluIHNvbWUgY29ybmVyIGNhc2VzOiBXaGVuIGRlYWN0aXZhdGluZyBhCmRvY3VtZW50IHRoZSByZWZlcmVuY2VzIHVzZWQgdG8gYmUgY2hlY2tlZCBpbiBhIGxhbmd1YWdlIGFnbm9zdGljIHdheSwKaS5lLiB5b3Ugd291bGQgZ2V0IHdhcm5pbmdzIHRoYXQgd2VyZSBub3QgdHJ1ZS4gVGhpcyBpcyBmaXhlZCBzbyB0aGF0CnRoZSBkb2N1bWVudCBiYXIgW2VuXSBvbmx5IGludm9rZXMgYSB3YXJuaW5nIHdoZW4gZGVhY3RpdmF0aW5nIGlmZgoxLiB0aGUgbGluayBpcyB0byBiYXJfZW4KMi4gb3IgdGhlIGxpbmsgaXMgdG8gYmFyIGFuZCBlbiBpcyB0aGUgZGVmYXVsdCBsYW5ndWFnZS4KIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjQgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuNCB1cGRhdGUKICAgICAgICBieQogICAgICAgIGdyZWdvcgogICAgICAgIDoKICAgICAgICBbMS40XSAKICAgICAgICAgICAgd29ya2luZyBkaXIgZm9yIGpldHR5IHdhcyB3cm9uZyAoaW4gdGhlIHN0YXJ0IG1lbnUgc2hvcnRjdXQpCgp0aGlzIGZpeGVzICMyNTU2NQogRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuNCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS40IHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgZ3JlZ29yCiAgICAgICAgOgogICAgICAgIFsxLjRdIAogICAgICAgICAgICBnZXQgcmlkIG9mIDEuMi1kZXYgbGFiZWwKCmZpeGVzICMyNTY4MgogRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuNCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS40IHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgZWdsaQogICAgICAgIDoKICAgICAgICBbMS40XSAKICAgICAgICAgICAgRmFjdG9yZWQgb3V0IHRoZSBjb25zdGFudHMgZm9yIGZpbGUgbmFtZSAiaW5kZXgiIGFuZCBzdWZmaXggIi54bWwiLgogRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuNCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS40IHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgZWdsaQogICAgICAgIDoKICAgICAgICBbMS40XSAKICAgICAgICAgICAgUmVtb3ZlZCB1bnVzZWQgdmFyaWFibGUuCiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS40IHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjQgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBlZGl0aAogICAgICAgIDoKICAgICAgICBbMS40XSAKICAgICAgICAgICAgVGhlIHZhbGlkYXRpb24gZm9yIDFmb3JtIGVkaXRvciBidWlsdAogRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuNCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS40IHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgZWRpdGgKICAgICAgICA6CiAgICAgICAgWzEuNF0gCiAgICAgICAgICAgIHJlcHJlc2VudGF0aW9uIG9mIGVycm9yIG1lc3NhZ2VzCiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS40IGFkZDwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjQgYWRkCiAgICAgICAgYnkKICAgICAgICBlZGl0aAogICAgICAgIDoKICAgICAgICBbMS40XSAKICAgICAgICAgICAgYWN0aW9uIHRvIHZhbGlkYXRlIGEgZG9jdW1lbnQKIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjQgYWRkPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuNCBhZGQKICAgICAgICBieQogICAgICAgIGFuZHJlYXMKICAgICAgICA6CiAgICAgICAgWzEuNF0gCiAgICAgICAgICAgIHJlZmFjdG9yZWQgc2NoZWR1bGVyLCBhZGRlZCB0YXNrIHRvIG1vdmUgc2NoZWR1bGVyIGVudHJ5CiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS40IHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjQgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBlZ2xpCiAgICAgICAgOgogICAgICAgIFsxLjRdIAogICAgICAgICAgICBVbmRlciB3aW5ibG93cyB0aGUgYmFja3NsYXNoZXMgaW4gdGhlIGZpbGVuYW1lIGhhdmUgdG8gYmUgcmVwbGFjZWQKd2l0aCAnLycgdG8gbWFrZSB1cCBhIGRlY2VudCBkb2N1bWVudElkLiBUaGlzIHNob3VsZCByZWFsbHkgZml4ICM0NzIuCiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS40IHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjQgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBlZ2xpCiAgICAgICAgOgogICAgICAgIFsxLjRdIAogICAgICAgICAgICBGaXhlZCBhIFVuaXhpc20gKHVzaW5nIEZpbGUuc2VwYXJhdG9yIGluc3RlYWQgb2YgIi8iKS4gVGhpcyBmaXhlcwojNDcyLgogRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuNCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS40IHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgZWRpdGgKICAgICAgICA6CiAgICAgICAgWzEuNF0gCiAgICAgICAgICAgIGZpeCB0aGUgdGhlIHBhcmVudCBpZCwgY29tcHV0ZWQgZnJvbSB0aGUgZGM6aWRlbnRpZmllcgogRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuNCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS40IHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgZWdsaQogICAgICAgIDoKICAgICAgICBbMS40XSAKICAgICAgICAgICAgTWFrZSBzdXJlIHRoZSBkb2N0eXBlIGlzIHBhc3NlZCB0aHJvdWdoIHRvIHRoZSBlcnJvciBzY3JlZW4uClRoaXMgZml4ZXMgIzYwNgogRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuNCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS40IHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgbWljaGkKICAgICAgICA6CiAgICAgICAgWzEuNF0gCiAgICAgICAgICAgIGhhdW50ZWQgYnkgcGhhbnRvbSBsb29wCiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS40IHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjQgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBlZGl0aAogICAgICAgIDoKICAgICAgICBbMS40XSAKICAgICAgICAgICAgZml4IHRoZSBidWcgZm9yIHRoZSBkZXN0aW5hdGlvbiBpZCAiLy9iYXIiCiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS40IHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjQgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBlZ2xpCiAgICAgICAgOgogICAgICAgIFsxLjRdIAogICAgICAgICAgICByZW1vdmVkIHVudXNlZCBpbXBvcnRzLgogRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuNCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS40IHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgZWRpdGgKICAgICAgICA6CiAgICAgICAgWzEuNF0gCiAgICAgICAgICAgIHNldCB0aGUgYmFja3VwIHBhcmFtZXRlciBmb3IgdGhlIGNoZWNraW4KIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjQgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuNCB1cGRhdGUKICAgICAgICBieQogICAgICAgIGVkaXRoCiAgICAgICAgOgogICAgICAgIFsxLjRdIAogICAgICAgICAgICBpbnRyb2R1Y3Rpb24gb2YgYmFja3VwIHBhcmFtZXRlciBpbiB0aGUgc2hlY2tpbiBwaXBlbGluZTsKZml4IHRoZSBjaGVja2luIGZvciB0aGUgRm9ybXMgZWRpdG9yczsKZml4IHRoZSBjYW5jZWwgZm90IHRoZSAxIGZvcm0gZWRpdG9yCiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS40IHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjQgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBncmVnb3IKICAgICAgICA6CiAgICAgICAgWzEuNF0gCiAgICAgICAgICAgIGN2cyB0YWdzIGFkZGVkCiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS40IHJlbW92ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjQgcmVtb3ZlCiAgICAgICAgYnkKICAgICAgICBncmVnb3IKICAgICAgICA6CiAgICAgICAgWzEuNF0gCiAgICAgICAgICAgIG1pZGFzIHJlbW92ZWQuIHdlIGhhdmUgZXBveiBub3cKIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjQgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuNCB1cGRhdGUKICAgICAgICBieQogICAgICAgIGVnbGkKICAgICAgICA6CiAgICAgICAgWzEuNF0gCiAgICAgICAgICAgIElmIHRoZSBpbnRlcm5hbCByZWZlcmVuY2UgZG9lcyBub3Qgc3BlY2lmeSBhIGxhbmd1YWdlIHVzZSB0aGUgZGVmYXVsdApsYW5ndWFnZSAod2l0aCB0aGUgaGVscCBvZiB0aGUgZG9jdW1lbnQgYnVpbGRlcikuCiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS40IHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjQgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBlZ2xpCiAgICAgICAgOgogICAgICAgIFsxLjRdIAogICAgICAgICAgICBTaW1wbGlmaWVkIHRoZSBjb2RlIGFuZCBmaXhlZCBhIGJ1ZyBpbiBnZXRMYW5ndWFnZS4KCkZpeGVzICM1NjIuCiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS40IHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjQgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBlZ2xpCiAgICAgICAgOgogICAgICAgIFsxLjRdIAogICAgICAgICAgICBBZGRlZCBhIGZpeG1lIGFib3V0IHNpbXBseWZ5aW5nIHRoZSBib29sZWFuIGV4cHJlc3Npb24gdGhhdCBpcyB1c2VkIGluCmdldExhYmVsLiBUaGlzIGNhbiBiZSBzaW1weWZpZWQgc2luY2UgdGhlIGxhbmd1YWdlIG9mIGEgbGFiZWwgc2hvdWxkCm5vdyBuZXZlciBiZSBudWxsLgogRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuNCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS40IHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgbWljaGkKICAgICAgICA6CiAgICAgICAgWzEuNF0gCiAgICAgICAgICAgIERDIFRlcm0gaXNSZWZlcmVuY2VkQnkgYWRkZWQKIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjQgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuNCB1cGRhdGUKICAgICAgICBieQogICAgICAgIGdyZWdvcgogICAgICAgIDoKICAgICAgICBbMS40XSAKICAgICAgICAgICAgYWRkZWQgZXh0ZW5zaW9uIGNoZWNrIGZvciBmaWxlIHVwbG9hZHMuIGN1cnJlbnRseSBjb25maWd1cmFibGUgdGhyb3VnaCB4c2wgcGFyYW1ldGVyLgogRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuNCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS40IHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgbWljaGkKICAgICAgICA6CiAgICAgICAgWzEuNF0gCiAgICAgICAgICAgIEZJWE1FIHJlIE51bGxQb2ludGVyRXhjZXB0aW9uCiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS40IHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjQgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBncmVnb3IKICAgICAgICA6CiAgICAgICAgWzEuNF0gCiAgICAgICAgICAgIGltcHJvdmUgd29yZGluZyB0byBmaXggIzYwMgogRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuNCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS40IHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgYW5kcmVhcwogICAgICAgIDoKICAgICAgICBbMS40XSAKICAgICAgICAgICAgdXBkYXRlZCBtZXRob2Qgc2lnbmF0dXJlCiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS4wIHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjAgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBtaWNoaQogICAgICAgIDoKICAgICAgICBbMS4wXSAKICAgICAgICAgICAgcHVibGljIGNvbnN0cnVjdG9ycyBlbHNlIG9uZSBuZWVkcyB0byBleHRlbmQgdGhpcyBjbGFzcyBhbHdheXMKIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjAgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuMCB1cGRhdGUKICAgICAgICBieQogICAgICAgIGdyZWdvcgogICAgICAgIDoKICAgICAgICBbMS4wXSAKICAgICAgICAgICAgYWRkIHdvcmtmbG93IHRyYW5zaXRpb24uIGFuIGltYWdlIHVwbG9hZCBwdXRzIGEgZG9jdW1lbnQgYmFjayBpbnRvIGF1dGhvcmluZy4KIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjAgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuMCB1cGRhdGUKICAgICAgICBieQogICAgICAgIGdyZWdvcgogICAgICAgIDoKICAgICAgICBbMS4wXSAKICAgICAgICAgICAgamF2YWRvYyBmaXgKIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjAgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuMCB1cGRhdGUKICAgICAgICBieQogICAgICAgIGdyZWdvcgogICAgICAgIDoKICAgICAgICBbMS4wXSAKICAgICAgICAgICAgbWFrZSBzdXJlIHRlbXBvcmFyeSBmaWxlcyBhcmUgY3JlYXRlZCBpbiB0aGUgd29yayBkaXJlY3RvcnkKIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjAgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuMCB1cGRhdGUKICAgICAgICBieQogICAgICAgIG1pY2hpCiAgICAgICAgOgogICAgICAgIFsxLjBdIAogICAgICAgICAgICBzZWFyY2ggbGluayBmaXhlZAogRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuMCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS4wIHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgbWljaGkKICAgICAgICA6CiAgICAgICAgWzEuMF0gCiAgICAgICAgICAgIGludHJvc3BlY3Rpb24gYWRkZWQKIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjAgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuMCB1cGRhdGUKICAgICAgICBieQogICAgICAgIG1pY2hpCiAgICAgICAgOgogICAgICAgIFsxLjBdIAogICAgICAgICAgICBzZXR1cCBpbmZvIGFkZGVkCiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS4wIHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjAgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBtaWNoaQogICAgICAgIDoKICAgICAgICBbMS4wXSAKICAgICAgICAgICAgWG9wdXMgbWVudSBpdGVtIGFkZGVkCiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS4wIHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjAgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBtaWNoaQogICAgICAgIDoKICAgICAgICBbMS4wXSAKICAgICAgICAgICAgc2F2ZSBhbmQgZXhpdCBpbXBsZW1lbnRlZAogRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuMCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS4wIHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgbWljaGkKICAgICAgICA6CiAgICAgICAgWzEuMF0gCiAgICAgICAgICAgIHNhdmluZyBmb3IgWG9wdXMgaW1wbGVtZW50ZWQKIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjAgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuMCB1cGRhdGUKICAgICAgICBieQogICAgICAgIG1pY2hpCiAgICAgICAgOgogICAgICAgIFsxLjBdIAogICAgICAgICAgICBzYXZlIGFuZCBjb25maWd1cmF0aW9uIGFkZGVkCiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS4wIHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjAgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBtaWNoaQogICAgICAgIDoKICAgICAgICBbMS4wXSAKICAgICAgICAgICAgRXBveiBhbmQgWG9wdXMgZG9jdSBhZGRlZAogRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuMCBhZGQ8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS4wIGFkZAogICAgICAgIGJ5CiAgICAgICAgbWljaGkKICAgICAgICA6CiAgICAgICAgWzEuMF0gCiAgICAgICAgICAgIGRvY3Ugb24gRXBveiBhbmQgWG9wdXMgc3RhcnRlZAogRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuMCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS4wIHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgbWljaGkKICAgICAgICA6CiAgICAgICAgWzEuMF0gCiAgICAgICAgICAgIHZlcnNpb24gYW5kIGFja25vd2xlZGdlbWVudHMgZml4ZWQKIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjAgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuMCB1cGRhdGUKICAgICAgICBieQogICAgICAgIG1pY2hpCiAgICAgICAgOgogICAgICAgIFsxLjBdIAogICAgICAgICAgICBSb2xsYmFjayB2aWV3IGFkZGVkCiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS4wIHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjAgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBtaWNoaQogICAgICAgIDoKICAgICAgICBbMS4wXSAKICAgICAgICAgICAgbG9nZ2luZyBmaXhlZAogRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuMCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS4wIHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgbWljaGkKICAgICAgICA6CiAgICAgICAgWzEuMF0gCiAgICAgICAgICAgIGJhY2t1cCBmbGFnIGFkZGVkCiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS4wIHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjAgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBtaWNoaQogICAgICAgIDoKICAgICAgICBbMS4wXSAKICAgICAgICAgICAgYXJjaGl2ZXMgaGlkZGVuCiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS4wIHJlbW92ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjAgcmVtb3ZlCiAgICAgICAgYnkKICAgICAgICBtaWNoaQogICAgICAgIDoKICAgICAgICBbMS4wXSAKICAgICAgICAgICAgc3RhcnQgd2l0aCBhIHdoaXRlIHNoZWV0IG9mIHBhcGVyCiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS4wIHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjAgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBlZGl0aAogICAgICAgIDoKICAgICAgICBbMS4wXSAKICAgICAgICAgICAgdGhlIGRvY3VtZW50IGlzIGNoZWNrZWQgaW4gYW5kIGJhY2tlZCB1cCBhZnRlciBpdHMgY3JlYXRpb24KIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjAgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuMCB1cGRhdGUKICAgICAgICBieQogICAgICAgIGVkaXRoCiAgICAgICAgOgogICAgICAgIFsxLjBdIAogICAgICAgICAgICBmaXhlZCB0aGUgYmFja3VwOgotaW4gdGhlIHJldmlzaW9uIHZpZXcgYXBwZWFycyBvbmx5IHRoZSBleGlzdGluZyB2ZXJzaW9ucwotdGltZSB2ZXJzaW9uCiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS4wIHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjAgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBtaWNoaQogICAgICAgIDoKICAgICAgICBbMS4wXSAKICAgICAgICAgICAgYnVpbGQgcHJvY2VzcyBzaW1wbGlmaWVkIGFuZCBlbmRvcnNlZCBsaWJyYXJpZXMgYWRkZWQKIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjAgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuMCB1cGRhdGUKICAgICAgICBieQogICAgICAgIGVkaXRoCiAgICAgICAgOgogICAgICAgIFsxLjBdIAogICAgICAgICAgICBmaXhlZCByZWRpcmVjdCB0byBqYXZhZG9jIGVycm9yIGZpbGUKIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjAgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuMCB1cGRhdGUKICAgICAgICBieQogICAgICAgIGdyZWdvcgogICAgICAgIDoKICAgICAgICBbMS4wXSAKICAgICAgICAgICAgaHJlZiBmaXhlZAogRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuMCBhZGQ8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS4wIGFkZAogICAgICAgIGJ5CiAgICAgICAgbWljaGkKICAgICAgICA6CiAgICAgICAgWzEuMF0gCiAgICAgICAgICAgIFhhbGFuIDIuNS4wIHdvcmtzIGZpbmUKIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjAgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuMCB1cGRhdGUKICAgICAgICBieQogICAgICAgIG1pY2hpCiAgICAgICAgOgogICAgICAgIFsxLjBdIAogICAgICAgICAgICByZWRpcmVjdHMgYW5kIGJhbm5lciBmaXhlZAogRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuMCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS4wIHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgbWljaGkKICAgICAgICA6CiAgICAgICAgWzEuMF0gCiAgICAgICAgICAgIGltYWdlIHBhdGggZml4ZWQKIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjAgcmVtb3ZlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuMCByZW1vdmUKICAgICAgICBieQogICAgICAgIG1pY2hpCiAgICAgICAgOgogICAgICAgIFsxLjBdIAogICAgICAgICAgICBvYnNvbGV0ZQogRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuMCBhZGQ8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS4wIGFkZAogICAgICAgIGJ5CiAgICAgICAgbWljaGkKICAgICAgICA6CiAgICAgICAgWzEuMF0gCiAgICAgICAgICAgIGFjdHVhbCBsYXlvdXQgcmVhZGRlZAogRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuMCByZW1vdmU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS4wIHJlbW92ZQogICAgICAgIGJ5CiAgICAgICAgbWljaGkKICAgICAgICA6CiAgICAgICAgWzEuMF0gCiAgICAgICAgICAgIG9ic29sZXRlCiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS4wIHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjAgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBtaWNoaQogICAgICAgIDoKICAgICAgICBbMS4wXSAKICAgICAgICAgICAgYXV0aG9yaW5nIGFuZCBsaXZlIGFyZWEgbWVyZ2VkCiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS4wIHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjAgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBtaWNoaQogICAgICAgIDoKICAgICAgICBbMS4wXSAKICAgICAgICAgICAgYXV0aG9yaW5nIHNpdGVtYXAgY2xlYW5lZCBhbmQgZml4ZWQKIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjAgYWRkPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuMCBhZGQKICAgICAgICBieQogICAgICAgIG1pY2hpCiAgICAgICAgOgogICAgICAgIFsxLjBdIAogICAgICAgICAgICBuYXZpZ2F0aW9uIHJlYWRkZWQsIGVsc2UgaXQncyBoYXJkIHRvIG5hdmlnYXRlCiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS4wIHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjAgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBncmVnb3IKICAgICAgICA6CiAgICAgICAgWzEuMF0gCiAgICAgICAgICAgIGhpZGUgZG9jdW1lbnRhdGlvbiBwdWJsaWNhdGlvbgogRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuMCByZW1vdmU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS4wIHJlbW92ZQogICAgICAgIGJ5CiAgICAgICAgbWljaGkKICAgICAgICA6CiAgICAgICAgWzEuMF0gCiAgICAgICAgICAgIG9ic29sZXRlCiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS4wIHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjAgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBtaWNoaQogICAgICAgIDoKICAgICAgICBbMS4wXSAKICAgICAgICAgICAgWG9wdXMgaXRlbXMgYWRkZWQgKGhpZGRlbikKIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjAgYWRkPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuMCBhZGQKICAgICAgICBieQogICAgICAgIG1pY2hpCiAgICAgICAgOgogICAgICAgIFsxLjBdIAogICAgICAgICAgICBNYXRyaXggZW50cnkgZWRpdGFibGUgd2l0aCBYb3B1cwogRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuMCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS4wIHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgbWljaGkKICAgICAgICA6CiAgICAgICAgWzEuMF0gCiAgICAgICAgICAgIGdyb3VwIGVkaXRvcm1hdHJpYyBkb2Vzbid0IGV4aXN0IGFueW1vcmUKIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjAgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuMCB1cGRhdGUKICAgICAgICBieQogICAgICAgIG1pY2hpCiAgICAgICAgOgogICAgICAgIFsxLjBdIAogICAgICAgICAgICByZWZhY3RvcmVkIHZlcnNpb24gb2YgWG9wdXMgaW50ZXJmYWNlIGFkZGVkCiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS4wIHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjAgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBtaWNoaQogICAgICAgIDoKICAgICAgICBbMS4wXSAKICAgICAgICAgICAgaHRtbCBzZXJpYWxpemVyIHdpdGhvdXQgYWRkaW5nIERURAogRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuMCBhZGQ8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS4wIGFkZAogICAgICAgIGJ5CiAgICAgICAgbWljaGkKICAgICAgICA6CiAgICAgICAgWzEuMF0gCiAgICAgICAgICAgIFhvcHVzIGV4YW1wbGUgd2l0aGluIEJsb2cgcHViYmxpY2F0aW9uIGFkZGVkCiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS4wIGFkZDwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjAgYWRkCiAgICAgICAgYnkKICAgICAgICBtaWNoaQogICAgICAgIDoKICAgICAgICBbMS4wXSAKICAgICAgICAgICAgWG9wdXMgaW50ZXJmYWNlIHJlZmFjdG9yZWQKIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjAgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuMCB1cGRhdGUKICAgICAgICBieQogICAgICAgIG1pY2hpCiAgICAgICAgOgogICAgICAgIFsxLjBdIAogICAgICAgICAgICBjb3B5IGFsc28geG1sIGZpbGVzCiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS4wIHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjAgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBtaWNoaQogICAgICAgIDoKICAgICAgICBbMS4wXSAKICAgICAgICAgICAgZGVidWdnaW5nIGZpeGVkCiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS4wIGFkZDwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjAgYWRkCiAgICAgICAgYnkKICAgICAgICBhbmRyZWFzCiAgICAgICAgOgogICAgICAgIFsxLjBdIAogICAgICAgICAgICBhbGxvdyBmb3JtYXR0aW5nIG9mIENNUyBzY3JlZW5zIHVzaW5nIGNvY29vbjovL2xlbnlhLXNjcmVlbi54c2wKIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjAgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuMCB1cGRhdGUKICAgICAgICBieQogICAgICAgIG1pY2hpCiAgICAgICAgOgogICAgICAgIFsxLjBdIAogICAgICAgICAgICBtaWNoaSBkZWxldGVkCiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS4wIHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjAgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBtaWNoaQogICAgICAgIDoKICAgICAgICBbMS4wXSAKICAgICAgICAgICAgdmVyc2lvbiBmaXhlZAogRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuMCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS4wIHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgbWljaGkKICAgICAgICA6CiAgICAgICAgWzEuMF0gCiAgICAgICAgICAgIEVwb3ogc2hvdWxkIG9ubHkgYmUgYXZhaWxhYmxlIGZvciB4aHRtbCBkb2N0eXBlcwogRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuMCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS4wIHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgbWljaGkKICAgICAgICA6CiAgICAgICAgWzEuMF0gCiAgICAgICAgICAgIEZJWE1FIHJlIHRleHQvaHRtbCBhZGRlZAogRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuMCBhZGQ8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS4wIGFkZAogICAgICAgIGJ5CiAgICAgICAgbWljaGkKICAgICAgICA6CiAgICAgICAgWzEuMF0gCiAgICAgICAgICAgIEVwb3ogc2F2ZSBhZGRlZAogRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuMCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS4wIHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgZ3JlZ29yCiAgICAgICAgOgogICAgICAgIFsxLjBdIAogICAgICAgICAgICBmaXhlZCBkb3dubG9hZCBsaW5rIHRvIHVzZSBtaXJyb3JzCiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS4wIHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjAgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBhbmRyZWFzCiAgICAgICAgOgogICAgICAgIFsxLjBdIAogICAgICAgICAgICByZXBsYWNlZCBGT01fQ29jb29uIG1ldGhvZHMgd2l0aCBGbG93SGVscGVyIChTb0MpCiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS4wIHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjAgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBhbmRyZWFzCiAgICAgICAgOgogICAgICAgIFsxLjBdIAogICAgICAgICAgICAtIHJlbW92ZWQgYnVpbGRDb2xsZWN0aW9uKCkgZnJvbSBEb2N1bWVudEJ1aWxkZXIKLSBhZGRlZCBsYXp5IGxvYWRpbmcgdG8gQ29sbGVjdGlvbkltcGwKIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjAgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuMCB1cGRhdGUKICAgICAgICBieQogICAgICAgIG1pY2hpCiAgICAgICAgOgogICAgICAgIFsxLjBdIAogICAgICAgICAgICB0aXRsZSB1cGRhdGVkCiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS4wIGFkZDwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjAgYWRkCiAgICAgICAgYnkKICAgICAgICBtaWNoaQogICAgICAgIDoKICAgICAgICBbMS4wXSAKICAgICAgICAgICAgRXBveiBhZGRlZAogRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuMCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS4wIHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgbWljaGkKICAgICAgICA6CiAgICAgICAgWzEuMF0gCiAgICAgICAgICAgIGRvd25sb2FkIHBhZ2UgcHJldHRpZmllZAogRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuMCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS4wIHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgbWljaGkKICAgICAgICA6CiAgICAgICAgWzEuMF0gCiAgICAgICAgICAgIG1pY2hpIHJlbW92ZWQKIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjAgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuMCB1cGRhdGUKICAgICAgICBieQogICAgICAgIG1pY2hpCiAgICAgICAgOgogICAgICAgIFsxLjBdIAogICAgICAgICAgICBuYW1lc3BhY2UgZml4ZWQKIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjAgcmVtb3ZlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuMCByZW1vdmUKICAgICAgICBieQogICAgICAgIG1pY2hpCiAgICAgICAgOgogICAgICAgIFsxLjBdIAogICAgICAgICAgICBvYnNvbGV0ZQogRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuMCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS4wIHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgCiAgICAgICAgOgogICAgICAgIFsxLjBdIAogICAgICAgICAgICBUaGlzIGNvbW1pdCB3YXMgbWFudWZhY3R1cmVkIGJ5IGN2czJzdm4gdG8gY3JlYXRlIHRhZwonUkVMRUFTRV8xXzJfUkNfMScuIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjAgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuMCB1cGRhdGUKICAgICAgICBieQogICAgICAgIGdyZWdvcgogICAgICAgIDoKICAgICAgICBbMS4wXSAKICAgICAgICAgICAgYnVtcCB2ZXJzaW9uIHVwIHRvIDEuMi1yYzEKIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjAgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuMCB1cGRhdGUKICAgICAgICBieQogICAgICAgIGVkaXRoCiAgICAgICAgOgogICAgICAgIFsxLjBdIAogICAgICAgICAgICBmaXggdGhlIHBpcGVsaW5lIGZvciB0aGUgcm5nCiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS4wIHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjAgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBlZGl0aAogICAgICAgIDoKICAgICAgICBbMS4wXSAKICAgICAgICAgICAgcmVsYXggbmcgc2NoZW1hIGdlbmVyYXRlZCB3aXRoIHRyYW5nIHRvIGJlIGFibGUgdG8gc2F2ZSB3aXRoIGJpdGZsdXgKIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjAgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuMCB1cGRhdGUKICAgICAgICBieQogICAgICAgIGVkaXRoCiAgICAgICAgOgogICAgICAgIFsxLjBdIAogICAgICAgICAgICBjbG9zZSB0aGUgb3V0cHV0c3RyZWFtCmNoYW5nZSByZW5hbWVUbyB3aGljaCBkb2Vzbid0IHdvcmsgZm9yIHdpbmRvd3MKIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjAgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuMCB1cGRhdGUKICAgICAgICBieQogICAgICAgIGFuZHJlYXMKICAgICAgICA6CiAgICAgICAgWzEuMF0gCiAgICAgICAgICAgIGFkZGVkIGZsb3dzY3JpcHQgbWV0aG9kcyB0byBmYWN0b3JpZXMKIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjAgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuMCB1cGRhdGUKICAgICAgICBieQogICAgICAgIGFuZHJlYXMKICAgICAgICA6CiAgICAgICAgWzEuMF0gCiAgICAgICAgICAgIGFkZGVkIGdldEZpcnN0UG9zaXRpb24oKSBtZXRob2QKIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjAgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuMCB1cGRhdGUKICAgICAgICBieQogICAgICAgIHN0ZWZhbm8KICAgICAgICA6CiAgICAgICAgWzEuMF0gCiAgICAgICAgICAgIHJlbW92ZWQgdGhlIGZpbmFsbHkgYmVjYXVzZSBlY2xpcHNlIGNvbXBsYWlucwogRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuMCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS4wIHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgZ3JlZ29yCiAgICAgICAgOgogICAgICAgIFsxLjBdIAogICAgICAgICAgICAqIG1vdmVkIGEgdGVzdCB0byB0ZXN0IGRpcgoqIHJlcGxhY2VkIHNvbWUgaGFyZGNvZGVkIC9ob21lLyB2YWx1ZXMKIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjAgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuMCB1cGRhdGUKICAgICAgICBieQogICAgICAgIG1pY2hpCiAgICAgICAgOgogICAgICAgIFsxLjBdIAogICAgICAgICAgICBjYW5jZWwgYnVnIGZpeGVkCiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS4wIHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjAgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBtaWNoaQogICAgICAgIDoKICAgICAgICBbMS4wXSAKICAgICAgICAgICAgYXJjaGl2ZSBmaXhlZAogRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuMCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS4wIHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgbWljaGkKICAgICAgICA6CiAgICAgICAgWzEuMF0gCiAgICAgICAgICAgIG5vdCBlbnRyaWVzIHlldAogRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuMCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS4wIHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgbWljaGkKICAgICAgICA6CiAgICAgICAgWzEuMF0gCiAgICAgICAgICAgIG5vIGVudHJpZXMgZGlyZWN0b3J5CiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS4wIHJlbW92ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjAgcmVtb3ZlCiAgICAgICAgYnkKICAgICAgICBncmVnb3IKICAgICAgICA6CiAgICAgICAgWzEuMF0gCiAgICAgICAgICAgIG9zY29tIHB1YiBub3cgbWlycm9ycyB3aGF0IGlzIGluIHVzZSBhdCBvc2NvbS5vcmcvbWF0cml4CiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS4wIHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjAgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBtaWNoaQogICAgICAgIDoKICAgICAgICBbMS4wXSAKICAgICAgICAgICAgZG91YmxlIGVzY2FwaW5nIGZpeGVkCiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS4wIHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjAgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBncmVnb3IKICAgICAgICA6CiAgICAgICAgWzEuMF0gCiAgICAgICAgICAgIGZ1cnRoZXIgY2xlYW51cAoKKiBjaGFuZ2VkIHRvIHhhbGFuCiogY2xlYW5lZCBtZW51cwoqIGNsZWFuZWQgbHVjZW5lIHNpdGVtYXAKIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjAgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuMCB1cGRhdGUKICAgICAgICBieQogICAgICAgIG1pY2hpCiAgICAgICAgOgogICAgICAgIFsxLjBdIAogICAgICAgICAgICBzaXRlbWFwIGlzIHdlbGwtZm9ybWVkIGFnYWluCiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS4wIHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjAgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBtaWNoaQogICAgICAgIDoKICAgICAgICBbMS4wXSAKICAgICAgICAgICAgUGF0aE1hcHBlciByZXBsYWNlZAogRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuMCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS4wIHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgbWljaGkKICAgICAgICA6CiAgICAgICAgWzEuMF0gCiAgICAgICAgICAgIG5hbWVzcGFjZXMgZml4ZWQKIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjAgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuMCB1cGRhdGUKICAgICAgICBieQogICAgICAgIG1pY2hpCiAgICAgICAgOgogICAgICAgIFsxLjBdIAogICAgICAgICAgICBuYW1lc3BhY2UgeGluY2x1ZGUgYnVnIGZpeGVkCiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS4wIHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjAgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBlZ2xpCiAgICAgICAgOgogICAgICAgIFsxLjBdIAogICAgICAgICAgICBBZGRlZCBhIG5vdGUgYWJvdXQgdGhlIGZhY3QgdGhhdCB5b3UgaGF2ZSB0byB1c2UgdGhlCmxvY2FsLioucHJvcGVydGllcyBmcm9tIC4vc3JjL2NvY29vbiB0byBidWlsZCB5b3VyIGNvY29vbi4gT3RoZXJ3aXNlCnlvdSdsbCBnZXQgcHJvYmxlbXMgd2l0aCB0aGUgY3JvbiBibG9jay4KVGhpcyBmaXhlcyAjMjQ3MzguCiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS4wIHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjAgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBlZ2xpCiAgICAgICAgOgogICAgICAgIFsxLjBdIAogICAgICAgICAgICBNZXJnZWQgc29tZSB1c2FiaWxpdHkgZml4ZXMgZnJvbSB0aGUgdW5pY29tIHB1YiBvdmVyOgoqIHJlcXVyZWQgZmllbGRzCiogbm90ZSBhYm91dCBhbGxvd2VkIHZhbHVlcwoqIHdhcm5pbmcgYWJvdXQgZHVwbGljYXRlIGRvY3VtZW50LWlkcwogRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuMCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS4wIHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgZWdsaQogICAgICAgIDoKICAgICAgICBbMS4wXSAKICAgICAgICAgICAgQWRkZWQgYSB3YXJuaW5nIGluIHRoZSBzY3JlZW4gdGhhdCBubyBzcGVjaWFsIGNoYXJzIGFyZSBhbGxvd2VkIHdoZW4KcmVuYW1pbmcgYSBkb2N1bWVudCAoIGEgJy8nIGluIHRoZSBuZXcgZG9jdW1lbnQtaWQgd2lsbCBsZWFkIHRvIGFuCmV4Y2VwdGlvbikuClRoaXMgaXMgYSB3b3JrYXJvdW5kIGZvciBidWcgIzI0NjEwIHdoaWNoIGlzIG5vbi10cml2aWFsIHRvIGZpeCBhbmQKd2lsbCB0aGVyZWZvcmUgYmUgcHVudGVkIHRvIDEuNAogRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuMCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS4wIHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgZWdsaQogICAgICAgIDoKICAgICAgICBbMS4wXSAKICAgICAgICAgICAgUmVuYW1lIHRoZSBzdWJtaXQgbWVudSB0byAiU3VibWl0IGZvciByZXZpZXciLgogRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuMCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS4wIHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgYW5kcmVhcwogICAgICAgIDoKICAgICAgICBbMS4wXSAKICAgICAgICAgICAgdXNpbmcgRE9NU291cmNlIGFuZCBEb2N1bWVudEJ1aWxkZXIgd2l0aCBFbnRpdHlSZXNvbHZlciB0byBhdm9pZCBleHRlcm5hbCBIVFRQIGxvb2t1cAogRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuMCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS4wIHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgYW5kcmVhcwogICAgICAgIDoKICAgICAgICBbMS4wXSAKICAgICAgICAgICAgY2hlY2tpbmcgaWYgdmlzaXRvciByb2xlIGV4aXN0cwogRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuMCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS4wIHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgZWdsaQogICAgICAgIDoKICAgICAgICBbMS4wXSAKICAgICAgICAgICAgQWRkZWQgZGN0ZXJtcyB0byBleGNsdWRlLXJlc3VsdC1wcmVmaXhlcyBzbyB0aGF0IGl0IGlzIG5vIGxvbmdlciB0aGF0CnplYWxvdXMgd2l0aCBuYW1lc3BhY2VzLgpGaXhlcyAjMjQ2MTgKIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjAgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuMCB1cGRhdGUKICAgICAgICBieQogICAgICAgIGVnbGkKICAgICAgICA6CiAgICAgICAgWzEuMF0gCiAgICAgICAgICAgIEFkYXB0ZWQgdGhlIHR1dG9yaWFsIHRvIHRoZSBuZXcgbWVudSBzdHJ1Y3R1cmUgYW5kIGFkZGVkIGEgdXNlciBhbGljZQphcyBhbiByZXZpZXdlci4gVGhpcyB3aWxsIGdpdmUgYSBuaWNlIGJhbGFuY2UgYXMgd2UgaGF2ZSBhIG1hbiAobGVueWEpCmRvaW5nIHRoZSBhdXRob3JpbmcgYW5kIGEgd29tYW4gZG9pbmcgdGhlIHJldmlld2luZy4KIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjAgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuMCB1cGRhdGUKICAgICAgICBieQogICAgICAgIGVnbGkKICAgICAgICA6CiAgICAgICAgWzEuMF0gCiAgICAgICAgICAgIFJlbW92ZSB0aGUgc2NoZWR1bGVyIG1lbnUgZW50cnkgZnJvbSB0aGUgSGVscCBzZWN0aW9uIHNpbmNlIHRoZQpmdW5jdGlvbmFsaXR5IGlzIG5vdyBpbiB0aGUgc2NoZWR1bGVyIHRhYiBpbiB0aGUgc2l0ZSBhcmVhIGFuZCBzaW5jZSBhCmNsaWNrIG9uIHRoZSBtZW51IGNhdXNlcyBhbiBleGNlcHRpb24uCiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS4wIHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjAgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBlZ2xpCiAgICAgICAgOgogICAgICAgIFsxLjBdIAogICAgICAgICAgICBUaGUgcHVibGlzaGluZyB1c2VjYXNlIG5vdyB1c2VzIHRoZSBmYWxsYmFjayBtb2R1bGUgdG8gZmluZCB0aGUKeHNsdC4gVGhpcyBhbGxvd3MgZm9yIHB1YmxpY2F0aW9uIHNwZWNpZmljIHB1Ymxpc2hpbmcgeHNsdHMuIFRoaXMgaXMKdXNlZCBlLmcuIGluIHRoZSBibG9naW5nIHB1YiB0byByZW1vdmUgdGhlIHNjaGVkdWxpbmcgcGFydHMgb2YgdGhlCnNjcmVlbi4KRml4ZXMgIzI0ODU3CiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS4wIHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjAgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBlZ2xpCiAgICAgICAgOgogICAgICAgIFsxLjBdIAogICAgICAgICAgICBBZGFwdGVkIGEgcmVsYXRpdmUgcGF0aCB0byBtYWtlIHN1cmUgaXQgYWxzbyB3b3JrcyBpbiB0aGUgY29udGV4dCBvZiBhCnB1YmxpY2F0aW9uLgogRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuMCBhZGQ8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS4wIGFkZAogICAgICAgIGJ5CiAgICAgICAgZWdsaQogICAgICAgIDoKICAgICAgICBbMS4wXSAKICAgICAgICAgICAgTW92ZWQgdGhlIHB1YmxpY2F0aW9uIHNwZWNpZmljIHB1YmxpY2F0aW9uIHNjcmVlbiBmcm9tIHhzbHQvcHVibGlzaGluZwp0byBsZW55YS94c2x0L3B1Ymxpc2hpbmcuCiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS4wIHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjAgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBlZ2xpCiAgICAgICAgOgogICAgICAgIFsxLjBdIAogICAgICAgICAgICBNb3ZlZCB0aGUgb25lLWZvcm0gZWRpdG9yIHRvIGEgc2VwYXJhdGUgcGlwZWxpbmUgc28gd2UgY2FuIGRvIHNwZWNpZmljCmVycm9yIGhhbmRsaW5nIGZvciBpdC4gVGhlIHNheC1wYXJzaW5nIGV4Y2VwdGlvbiAodGhhdCBjYW4gb2NjdXIgaWYKeW91IGVudGVyIG5vbi12YWxpZGF0aW5nIHhtbCBpbiB0aGUgb25lLWZvcm0gZWRpdG9yKSBpcyBub3cgaGFuZGxlZAphbmQgYSBuaWNlIGVycm9yIHNjcmVlbiBpcyByZW5kZXJlZC4KIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjAgYWRkPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuMCBhZGQKICAgICAgICBieQogICAgICAgIGVnbGkKICAgICAgICA6CiAgICAgICAgWzEuMF0gCiAgICAgICAgICAgIEFkZCBhbiBlcnJvciBzY3JlZW4gZm9yIHRoZSBzYXgtcGFyc2luZyBleGNlcHRpb24gd2hpY2ggY2FuIGhhcHBlbiBpbgp0aGUgb25lIGZvcm0gZWRpdG9yIGlmIG5vbi12YWxpZGF0aW5nIHhtbCBpcyBlbnRlcmVkLgogRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuMCBhZGQ8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS4wIGFkZAogICAgICAgIGJ5CiAgICAgICAgZWdsaQogICAgICAgIDoKICAgICAgICBbMS4wXSAKICAgICAgICAgICAgQWRkZWQgYSBzcGVjaWZpYyBwdWJsaXNoaW5nIHNjcmVlbiB0byB0aGUgYmxvZyBwdWIgd2hpY2ggZG9lcyBub3QgaGF2ZQp0aGUgc2NoZWR1bGVyIHN0dWZmIGluIGl0LgogRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuMCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS4wIHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgZWdsaQogICAgICAgIDoKICAgICAgICBbMS4wXSAKICAgICAgICAgICAgUmVwbGFjZSAiL2hvbWUvdXNlcm5hbWUiIGJ5ICIkSE9NRSIgYW5kICJ1c2VybmFtZSIgYnkgIiRVU0VSIi4KIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjAgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuMCB1cGRhdGUKICAgICAgICBieQogICAgICAgIGVnbGkKICAgICAgICA6CiAgICAgICAgWzEuMF0gCiAgICAgICAgICAgIFJlbW92ZWQgdGhlIG9ic29sZXRlIHVzZWNhc2UgdXBsb2FkICh3aGljaCBpcyBvbmx5IHVzZWQgaW4gdW5pcHVibGljKSwKdXBkYXRlZCB0aGUgdXNlY2FzZSBkb2N1IGFuZCB1cGRhdGVkIHRoZSBkZWZhdWx0IHB1YiB0byByZWZlciB0byB0aGUKYXNzZXQgdXBsb2FkIHVzZWNhc2UuCiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS4wIHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjAgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBlZ2xpCiAgICAgICAgOgogICAgICAgIFsxLjBdIAogICAgICAgICAgICBTb21lIHByZXR0eWZpY2F0aW9uIChpbmRlbnRlZCwgZXRjLikKIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjAgcmVtb3ZlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuMCByZW1vdmUKICAgICAgICBieQogICAgICAgIGdyZWdvcgogICAgICAgIDoKICAgICAgICBbMS4wXSAKICAgICAgICAgICAgb2xkIGJ4ZSByZW1vdmVkCm1vcmUgb2xkIGNyYXAgcmVtb3ZlZAoKJmx0OyEtLSBpcyBub3QgYSBDVlMgcmVwbGFjZW1lbnQuLgogRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuMCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS4wIHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgZ3JlZ29yCiAgICAgICAgOgogICAgICAgIFsxLjBdIAogICAgICAgICAgICBpbXByb3ZlIGNvbXBsaWFuY2Ugd2l0aCBodG1sIDQgdHJhbnNpdGlvbmFsIGZvciBvdXRwdXQuIHN0aWxsIGEgbG9uZyB3YXkgYmVmb3JlIG91ciBtZW51IHZhbGlkYXRlcy4KIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjAgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuMCB1cGRhdGUKICAgICAgICBieQogICAgICAgIGdyZWdvcgogICAgICAgIDoKICAgICAgICBbMS4wXSAKICAgICAgICAgICAgdHlwbwogRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuMCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS4wIHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgYW5kcmVhcwogICAgICAgIDoKICAgICAgICBbMS4wXSAKICAgICAgICAgICAgcmV2ZXJ0aW5nIGNoYW5nZXMgKGV2ZW50IGhhcyB0byBiZSBzdXBwbGllZCkKIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjAgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuMCB1cGRhdGUKICAgICAgICBieQogICAgICAgIGFuZHJlYXMKICAgICAgICA6CiAgICAgICAgWzEuMF0gCiAgICAgICAgICAgIHVzaW5nIGF1dGhvcmluZyB3b3JrZmxvdyBoaXN0b3J5IGFsc28gZm9yIHN0YWdpbmcgYW5kIGxpdmUgZG9jdW1lbnRzCiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS4wIHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjAgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBhbmRyZWFzCiAgICAgICAgOgogICAgICAgIFsxLjBdIAogICAgICAgICAgICBpbnZva2luZyB3b3JrZmxvdyBvbmx5IGlmIGV2ZW50IG5hbWUgaXMgcHJvdmlkZWQKIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjAgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuMCB1cGRhdGUKICAgICAgICBieQogICAgICAgIGFuZHJlYXMKICAgICAgICA6CiAgICAgICAgWzEuMF0gCiAgICAgICAgICAgIGFkZGVkIGNsZWFyKCkgdG8gQ29sbGVjdGlvbgogRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuMCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS4wIHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgYW5kcmVhcwogICAgICAgIDoKICAgICAgICBbMS4wXSAKICAgICAgICAgICAgYWRkZWQgbW92ZURvY3VtZW50KCkgdG8gcHVibGljYXRpb24gQVBJCiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS4wIHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjAgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBncmVnb3IKICAgICAgICA6CiAgICAgICAgWzEuMF0gCiAgICAgICAgICAgIHNsaWdodGx5IHJlYXJyYW5nZSB0aGluZ3MKIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjAgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuMCB1cGRhdGUKICAgICAgICBieQogICAgICAgIGFuZHJlYXMKICAgICAgICA6CiAgICAgICAgWzEuMF0gCiAgICAgICAgICAgIHNpdGV0cmVlIGlzIG5vdyBvcHRpb25hbAogRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuMCBhZGQ8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS4wIGFkZAogICAgICAgIGJ5CiAgICAgICAgZ3JlZ29yCiAgICAgICAgOgogICAgICAgIFsxLjBdIAogICAgICAgICAgICBzdHJheSB4c2wgaXMgYmFjayB3aGVyZSBpdCBiZWxvbmdzCiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS4wIHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjAgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBncmVnb3IKICAgICAgICA6CiAgICAgICAgWzEuMF0gCiAgICAgICAgICAgIHJlbW92ZWQgb2Jzb2xldGUgaWZyYW1lCiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS4wIHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjAgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBncmVnb3IKICAgICAgICA6CiAgICAgICAgWzEuMF0gCiAgICAgICAgICAgIGRvY3VtZW50LW5vZGUtaWQgYWRkZWQKIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjAgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuMCB1cGRhdGUKICAgICAgICBieQogICAgICAgIGdyZWdvcgogICAgICAgIDoKICAgICAgICBbMS4wXSAKICAgICAgICAgICAgcGxheWluZyBqYW5pdG9yIAoKdGhpcyBwdWJsaWNhdGlvbiBpcyBzdGlsbCB3YXkgc3ViIHBhci4KCiogZG9lcyBub3QgdXNlIGxlbnlhIHNjcmVlbnMKKiBkb2VzIG5vdCB1c2Ugc2l0ZW1hcCBzdHJ1Y3R1cmUKKiBpcyBhIGJpZyBYU0xUIG1lc3MKZXRjCiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS4wIHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjAgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBtaWNoaQogICAgICAgIDoKICAgICAgICBbMS4wXSAKICAgICAgICAgICAgQlhFIHNlZW1zIHRvIGhhdmUgcHJvYmxlbXMgd2l0aCBvcHRpb25hbCBlbGVtZW50cwogRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuMCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS4wIHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgbWljaGkKICAgICAgICA6CiAgICAgICAgWzEuMF0gCiAgICAgICAgICAgIEVycm9yIGhhbmRsaW5nIGltcHJvdmVkCiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS4wIHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjAgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBhbmRyZWFzCiAgICAgICAgOgogICAgICAgIFsxLjBdIAogICAgICAgICAgICBkb24ndCBsb2FkIFhNTCBkb2N1bWVudCBhZ2FpbiBiZWZvcmUgc2F2aW5nCiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS4wIHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjAgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBhbmRyZWFzCiAgICAgICAgOgogICAgICAgIFsxLjBdIAogICAgICAgICAgICBsb29raW5nIGlmIGZpbGUgZXhpc3RzIGluIERvY3VtZW50LmV4aXN0cygpIChGSVhNRSkKIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjAgYWRkPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuMCBhZGQKICAgICAgICBieQogICAgICAgIGFuZHJlYXMKICAgICAgICA6CiAgICAgICAgWzEuMF0gCiAgICAgICAgICAgIGFkZGVkIGNvbGxlY3Rpb25zCiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS4wIHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjAgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBhbmRyZWFzCiAgICAgICAgOgogICAgICAgIFsxLjBdIAogICAgICAgICAgICBhZGRlZCBuYW1lc3BhY2Ugc3VwcG9ydCBmb3IgZWxlbWVudHMKIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjAgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuMCB1cGRhdGUKICAgICAgICBieQogICAgICAgIGFuZHJlYXMKICAgICAgICA6CiAgICAgICAgWzEuMF0gCiAgICAgICAgICAgIGNoYW5nZWQgJmx0O3N1cGVyJmd0OyB0byAmbHQ7c3VwJmd0OwogRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuMCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS4wIHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgZ3JlZ29yCiAgICAgICAgOgogICAgICAgIFsxLjBdIAogICAgICAgICAgICByZWxhdGVkIHByb2plY3RzIG1vdmVkLiB0aGlzIGZpeGVzICMyNTA4MQogRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuMCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS4wIHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgbWljaGkKICAgICAgICA6CiAgICAgICAgWzEuMF0gCiAgICAgICAgICAgIGluc2VydC1iZWZvcmUgYW5kIHNjaGVtYSBmaXhlZAogRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuMCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS4wIHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgbWljaGkKICAgICAgICA6CiAgICAgICAgWzEuMF0gCiAgICAgICAgICAgIGxvZ2dpbmcgZml4ZWQKIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjAgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuMCB1cGRhdGUKICAgICAgICBieQogICAgICAgIG1pY2hpCiAgICAgICAgOgogICAgICAgIFsxLjBdIAogICAgICAgICAgICBBYnNvbHV0ZVBhdGggcmVwbGFjZWQgYnkgQ2Fub25pY2FsUGF0aCBiZWNhdXNlIG9mIFNvZnRsaW5rIHByb2JsZW0KIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjAgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuMCB1cGRhdGUKICAgICAgICBieQogICAgICAgIG1pY2hpCiAgICAgICAgOgogICAgICAgIFsxLjBdIAogICAgICAgICAgICBsb2dnaW5nIGZpeGVkCiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS4wIHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjAgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBtaWNoaQogICAgICAgIDoKICAgICAgICBbMS4wXSAKICAgICAgICAgICAgc2FtcGxlIGFuZCBzY2hlbWEgZml4ZWQKIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjAgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuMCB1cGRhdGUKICAgICAgICBieQogICAgICAgIG1pY2hpCiAgICAgICAgOgogICAgICAgIFsxLjBdIAogICAgICAgICAgICByb2xsYmFjayBhZGRlZAogRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuMCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS4wIHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgYW5kcmVhcwogICAgICAgIDoKICAgICAgICBbMS4wXSAKICAgICAgICAgICAgYXBwbHlpbmcgU2FuZHJhJ3MgcGF0Y2gKIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjAgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuMCB1cGRhdGUKICAgICAgICBieQogICAgICAgIGVkaXRoCiAgICAgICAgOgogICAgICAgIFsxLjBdIAogICAgICAgICAgICBhZGQgYSBDYXRhbG9nIFJlc29sdmVyIHRvIHRoZSBwYXJzZXIKIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjAgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuMCB1cGRhdGUKICAgICAgICBieQogICAgICAgIG1pY2hpCiAgICAgICAgOgogICAgICAgIFsxLjBdIAogICAgICAgICAgICBrZXlvcmRzIGFkZGVkCiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS4wIHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjAgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBtaWNoaQogICAgICAgIDoKICAgICAgICBbMS4wXSAKICAgICAgICAgICAgYXJncyBhZGRlZAogRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuMCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS4wIHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgbWljaGkKICAgICAgICA6CiAgICAgICAgWzEuMF0gCiAgICAgICAgICAgIHNoZWxsIHNjcmlwdCBhZGRlZCAgYmVjYXVzZSBvZiBsaW5rYWdlIGVycm9yCiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS4wIHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjAgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBtaWNoaQogICAgICAgIDoKICAgICAgICBbMS4wXSAKICAgICAgICAgICAgZXJyb3IgcmVwbGFjZWQgYnkgZGVidWcKIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjAgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuMCB1cGRhdGUKICAgICAgICBieQogICAgICAgIG1pY2hpCiAgICAgICAgOgogICAgICAgIFsxLjBdIAogICAgICAgICAgICBrZXl3b3JkcyBhZGRlZAogRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuMCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS4wIHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgYW5kcmVhcwogICAgICAgIDoKICAgICAgICBbMS4wXSAKICAgICAgICAgICAgdXBkYXRlZCBzY2hlZHVsZXIgc2NyZWVuIHBpcGVsaW5lCiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS4wIHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjAgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBhbmRyZWFzCiAgICAgICAgOgogICAgICAgIFsxLjBdIAogICAgICAgICAgICBpbXBsZW1lbnRpbmcgdXNlZnVsIHRvU3RyaW5nKCkgbWV0aG9kCiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS4wIHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjAgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBhbmRyZWFzCiAgICAgICAgOgogICAgICAgIFsxLjBdIAogICAgICAgICAgICBhZGRlZCBsb2cgbWVzc2FnZXMKIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjAgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuMCB1cGRhdGUKICAgICAgICBieQogICAgICAgIGFuZHJlYXMKICAgICAgICA6CiAgICAgICAgWzEuMF0gCiAgICAgICAgICAgIGFwcGxpZWQgY2hyZWd1cyBwYXRjaCBhZ2FpbiAoIkRhbWl0IHNvbGx0ZSBkYW5uIG1hbiB0YWJlbGxlbiAmIzY1NTMzO2JlciBkYXMgY29udGV4dCBtZW4mIzY1NTMzOyBtaXQgIkFwcGVuZCBUYWJsZSIgZWluZiYjNjU1MzM7Z2VuIGsmIzY1NTMzO25uZW4uIikKIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjAgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuMCB1cGRhdGUKICAgICAgICBieQogICAgICAgIGFuZHJlYXMKICAgICAgICA6CiAgICAgICAgWzEuMF0gCiAgICAgICAgICAgIG1ha2UgRG9jdW1lbnRCdWlsZGVyIGNvbmZpZ3VyYXRpb24gb3B0aW9uYWwKIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjAgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuMCB1cGRhdGUKICAgICAgICBieQogICAgICAgIG1pY2hpCiAgICAgICAgOgogICAgICAgIFsxLjBdIAogICAgICAgICAgICBzdW1tYXJ5IGFzIG9wdGlvbmFsCiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS4wIHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjAgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBtaWNoaQogICAgICAgIDoKICAgICAgICBbMS4wXSAKICAgICAgICAgICAgSUUgQnVnIGZpeGVkCiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS4wIHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjAgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBhbmRyZWFzCiAgICAgICAgOgogICAgICAgIFsxLjBdIAogICAgICAgICAgICBhcHBsaWVkIGNocmVndXMgcGF0Y2ggKHRhYmVsbGVuICYjNjU1MzM7YmVyIGRhcyBjb250ZXh0IG1lbiYjNjU1MzM7IG1pdCAiQXBwZW5kIFRhYmxlIikKIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjAgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuMCB1cGRhdGUKICAgICAgICBieQogICAgICAgIGFuZHJlYXMKICAgICAgICA6CiAgICAgICAgWzEuMF0gCiAgICAgICAgICAgIGZpeGVkIGxhYmVscyBhc3NpZ25tZW50IGJ1ZwogRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuMCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS4wIHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgYW5kcmVhcwogICAgICAgIDoKICAgICAgICBbMS4wXSAKICAgICAgICAgICAgY2hlY2tpbmcgaWYgZGlyZWN0b3J5IGV4aXN0cyBiZWZvcmUgdHJ5aW5nIHRvIHJlc29sdmUgZmlsZSBsaXN0CiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS4wIHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjAgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBhbmRyZWFzCiAgICAgICAgOgogICAgICAgIFsxLjBdIAogICAgICAgICAgICB1c2luZyBmYWxsYmFjayBmb3IgImRlYWN0aXZhdGUiIGZpbGVzCiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS4wIHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjAgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBhbmRyZWFzCiAgICAgICAgOgogICAgICAgIFsxLjBdIAogICAgICAgICAgICBhZGRlZCAicm9sZS1pZHMiIGF0dHJpYnV0ZQogRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuMCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS4wIHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgYW5kcmVhcwogICAgICAgIDoKICAgICAgICBbMS4wXSAKICAgICAgICAgICAgLSBleHRlbmRlZCBwdWJsaWNhdGlvbiBBUEkKLSBkZWxldGluZyByZXNvdXJjZXMgYnkgUmVzb3VyY2VzTWFuYWdlcgogRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuMCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS4wIHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgbWljaGkKICAgICAgICA6CiAgICAgICAgWzEuMF0gCiAgICAgICAgICAgIHZlcnNpb24gY29udHJvbCBpbXBsZW1lbnRlZAogRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuMCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS4wIHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgbWljaGkKICAgICAgICA6CiAgICAgICAgWzEuMF0gCiAgICAgICAgICAgIGdyb3VwIGFkbWluIGluc3RlYWQgb2YgdXNlciBsZW55YQogRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuMCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS4wIHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgbWljaGkKICAgICAgICA6CiAgICAgICAgWzEuMF0gCiAgICAgICAgICAgIHNjaGVtYSB2YWxpZGF0aW9uIGltcGxlbWVudGVkCiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS4wIHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjAgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBncmVnb3IKICAgICAgICA6CiAgICAgICAgWzEuMF0gCiAgICAgICAgICAgIG1ha2UgYnhlIHdvcmsgaW4gZGVmYXVsdCBwdWJsaWNhdGlvbi4gdGhhbmtzIHRvIHRob21hcyB3YXNzZXJiZXJnIGZvciB0aGUgaGludC4KIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjAgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuMCB1cGRhdGUKICAgICAgICBieQogICAgICAgIG1pY2hpCiAgICAgICAgOgogICAgICAgIFsxLjBdIAogICAgICAgICAgICBpbnRyb3NwZWN0aW9uIGxpbmsgYWRkZWQKIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjAgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuMCB1cGRhdGUKICAgICAgICBieQogICAgICAgIG1pY2hpCiAgICAgICAgOgogICAgICAgIFsxLjBdIAogICAgICAgICAgICB2YWxpZGF0aW9uIGFkZGVkCiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS4wIHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjAgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBtaWNoaQogICAgICAgIDoKICAgICAgICBbMS4wXSAKICAgICAgICAgICAgZGF0ZSB0eXBlIG1vZGlmaWVkCiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS4wIHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjAgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBtaWNoaQogICAgICAgIDoKICAgICAgICBbMS4wXSAKICAgICAgICAgICAgRklYTUUgcmUgSmluZyBhZGRlZAogRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuMCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS4wIHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgbWljaGkKICAgICAgICA6CiAgICAgICAgWzEuMF0gCiAgICAgICAgICAgIHZhbGlkYXRpb24gYWRkZWQKIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjAgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuMCB1cGRhdGUKICAgICAgICBieQogICAgICAgIG1pY2hpCiAgICAgICAgOgogICAgICAgIFsxLjBdIAogICAgICAgICAgICBjbGVhbnVwIHN0eWxlc2hlZXQKIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjAgYWRkPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuMCBhZGQKICAgICAgICBieQogICAgICAgIG1pY2hpCiAgICAgICAgOgogICAgICAgIFsxLjBdIAogICAgICAgICAgICBhZGQgcmVjZW50IHZlcnNpb24gb2YgSmluZyBiZWNhdXNlIENvY29vbiAyLjEuMiBpcyBtaXNzaW5nIGl0CiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS4wIGFkZDwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjAgYWRkCiAgICAgICAgYnkKICAgICAgICBhbmRyZWFzCiAgICAgICAgOgogICAgICAgIFsxLjBdIAogICAgICAgICAgICBpbXBsZW1lbnRlZCBkb2N1bWVudCB0cmFuc2ZlciBpbiBzaXRlIHRyZWUgdGVzdAogRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuMCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS4wIHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgYW5kcmVhcwogICAgICAgIDoKICAgICAgICBbMS4wXSAKICAgICAgICAgICAgaW1wbGVtZW50ZWQgZG9jdW1lbnQgdHJhbnNmZXIgaW4gc2l0ZSB0cmVlCiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS4wIHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjAgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBhbmRyZWFzCiAgICAgICAgOgogICAgICAgIFsxLjBdIAogICAgICAgICAgICBoYW5kbGUgb25seSBkb2N1bWVudCBzb3VyY2UgaW4gcmVwb3NpdG9yeS1zcGVjaWZpYyBwdWJsaWNhdGlvbiBjbGFzcwogRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuMCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS4wIHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgZWdsaQogICAgICAgIDoKICAgICAgICBbMS4wXSAKICAgICAgICAgICAgTWFrZSBzdXJlIHRoZSB0YWcgYXQgdGhlIHNwZWNpZmllZCB4cGF0aCBpcyByZXBsYWNlZCBpZiBpbnNlcnRSZXBsYWNlCmlzIHRydWUuCiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS4wIHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjAgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBlZ2xpCiAgICAgICAgOgogICAgICAgIFsxLjBdIAogICAgICAgICAgICBQYXNzIHRoZSBpbnNlcnRUZW1wbGF0ZSBhbmQgdGhlIGluc2VydFJlcGxhY2UgcmVxdWVzdCBwYXJhbWV0ZXJzIG9uIHRvCnRoZSBhbnQgaW5zZXJ0IHRhc2suCiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS4wIHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjAgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBtaWNoaQogICAgICAgIDoKICAgICAgICBbMS4wXSAKICAgICAgICAgICAgdGltZXpvbmUgZml4ZWQKIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjAgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuMCB1cGRhdGUKICAgICAgICBieQogICAgICAgIG1pY2hpCiAgICAgICAgOgogICAgICAgIFsxLjBdIAogICAgICAgICAgICBmZWVkdmFsaWRhdG9yIGFkZGVkCiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS4wIHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjAgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBtaWNoaQogICAgICAgIDoKICAgICAgICBbMS4wXSAKICAgICAgICAgICAgc2NoZW1hIHVwZGF0ZWQKIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjAgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuMCB1cGRhdGUKICAgICAgICBieQogICAgICAgIG1pY2hpCiAgICAgICAgOgogICAgICAgIFsxLjBdIAogICAgICAgICAgICBlbnRyeSBmaXhlZCBhY2NvcmRpbmcgdG8gc2NoZW1hCiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS4wIHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjAgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBtaWNoaQogICAgICAgIDoKICAgICAgICBbMS4wXSAKICAgICAgICAgICAgZmVlZHZhbGlkYXRvciBVUkwgYWRkZWQKIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjAgcmVtb3ZlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuMCByZW1vdmUKICAgICAgICBieQogICAgICAgIG1pY2hpCiAgICAgICAgOgogICAgICAgIFsxLjBdIAogICAgICAgICAgICBtb3ZlZAogRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuMCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS4wIHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgbWljaGkKICAgICAgICA6CiAgICAgICAgWzEuMF0gCiAgICAgICAgICAgIHJlbGF4IG5nIGZvciBlbnRyeSBtb3ZlZAogRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuMCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS4wIHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgZ3JlZ29yCiAgICAgICAgOgogICAgICAgIFsxLjBdIAogICAgICAgICAgICBlYXQgbGVueWEgdGFncy4gZml4ZXMgIzI0ODk1CiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS4wIHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjAgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBlZ2xpCiAgICAgICAgOgogICAgICAgIFsxLjBdIAogICAgICAgICAgICBNYWtlIHN1cmUgaW50ZXJuYWwgY2FsbHMgY29tbWluZyBmcm9tIHRoZSB1c2VjYXNlIHNpdGVtYXAgYXJlIGRpcmVjdGx5CmhhbmRsZWQgYnkgdGhlIHB1YmxpY2F0aW9uIHNpdGVtYXAuCiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS4wIHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjAgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBlZ2xpCiAgICAgICAgOgogICAgICAgIFsxLjBdIAogICAgICAgICAgICBUaGVyZSBpcyBub3cgYW4gYWRkaXRpb25hbCBzdGVwIGluIHRoZSBhc3NldCB1c2VjYXNlIChjYWxsZWQKInNob3dkb3RzIikgd2hpY2ggZG9lcyBhbiBpbnRlcm5hbCBjYWxsIHRvCmNvY29vbjovL3twdWJsaWNhdGlvbi1pZH0vbGVueWEtaW1hZ2UtdXBsb2FkL3thcmVhfS97dXJpfS4KVGhpcyBpbnRlcm5hbCAoYW5kIHB1YmxpY2F0aW9uIHNwZWNpZmljKSBwaXBlbGluZSBpcyB0aGVuIHJlc3BvbnNpYmxlCmZvciBkaXNwbGF5aW5nIHRoZSBpbWFnZSB1cGxvYWQgZG90cy4KIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjAgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuMCB1cGRhdGUKICAgICAgICBieQogICAgICAgIGFuZHJlYXMKICAgICAgICA6CiAgICAgICAgWzEuMF0gCiAgICAgICAgICAgIGFkZGVkIGRvY3VtZW50IGRlcGVuZGVuY3kgbWV0aG9kcwogRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuMCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS4wIHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgYW5kcmVhcwogICAgICAgIDoKICAgICAgICBbMS4wXSAKICAgICAgICAgICAgYWRkZWQgdGhlIG5vdGlvbiBvZiB0YXNrIHN1Y2Nlc3Mgb3IgZmFpbHVyZQogRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuMCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS4wIHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgYW5kcmVhcwogICAgICAgIDoKICAgICAgICBbMS4wXSAKICAgICAgICAgICAgbWFkZSBibG9jayB2aXNpYmlsaXR5IG1vcmUgZ2VuZXJpYwogRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuMCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS4wIHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgZ3JlZ29yCiAgICAgICAgOgogICAgICAgIFsxLjBdIAogICAgICAgICAgICBjaGFuZ2UgdGhlIGltYWdlIC8gYXNzZXQgdXBsb2FkIHVzZWNhc2VzCiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS4wIGFkZDwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjAgYWRkCiAgICAgICAgYnkKICAgICAgICBhbmRyZWFzCiAgICAgICAgOgogICAgICAgIFsxLjBdIAogICAgICAgICAgICByZWZhY3RvcmluZyBwdWJsaWNhdGlvbiBBUEkKIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjAgYWRkPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuMCBhZGQKICAgICAgICBieQogICAgICAgIGFuZHJlYXMKICAgICAgICA6CiAgICAgICAgWzEuMF0gCiAgICAgICAgICAgIGFkZGluZyBjaGVja3N0eWxlIGNvbmZpZyBmaWxlCiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS4wIHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjAgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBlZ2xpCiAgICAgICAgOgogICAgICAgIFsxLjBdIAogICAgICAgICAgICBUaGUgZXhjZXB0aW9uIGhhbmRsaW5nIGlzIG5vdyBtZXJnZWQgZnJvbSB0aGUgdW5pY29tIHB1YmxpY2F0aW9uLAppLmUuIHlvdSdsbCBnZXQgYSBuaWNlIGVycm9yIHBhZ2UgaWYgYSBkb2N1bWVudCBoYXMgbm90IGJlZW4gcHVibGlzaGVkCnlldCBhbmQgeW91J2xsIGdldCB0aGUgbm9ybWFsIGV4Y2VwdGlvbiBzdGFjayB0cmFjZSBpbiBhbGwgb3RoZXIgY2FzZXMKKHdoZXJlIHdlIGFyZSBsb29raW5nIGF0IHJlYWwgYnVncykuCkZpeGVzICMyNDIyNC4KIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjAgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuMCB1cGRhdGUKICAgICAgICBieQogICAgICAgIGFuZHJlYXMKICAgICAgICA6CiAgICAgICAgWzEuMF0gCiAgICAgICAgICAgIGNoZWNrIGlmIGhyZWYgYXR0cmlidXRlIGV4aXN0cyBiZWZvcmUgbWFuaXB1bGF0aW5nIGl0CiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS4wIHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjAgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBhbmRyZWFzCiAgICAgICAgOgogICAgICAgIFsxLjBdIAogICAgICAgICAgICBtYWtpbmcgJmx0O3N1YiZndDsgYW5kICZsdDtzdXBlciZndDsgdGFncyB3b3JrCiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS4wIHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjAgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBhbmRyZWFzCiAgICAgICAgOgogICAgICAgIFsxLjBdIAogICAgICAgICAgICBjb21tZW50ZWQgb3V0IHN0cmlrZXRocm91Z2ggYW5kIHVuZGVybGluZSBidXR0b25zCiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS4wIHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjAgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBhbmRyZWFzCiAgICAgICAgOgogICAgICAgIFsxLjBdIAogICAgICAgICAgICBhZGRlZCBzb21lIGlzRGVidWdFbmFibGVkKCkgc3RhdGVtZW50cwogRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuMCByZW1vdmU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS4wIHJlbW92ZQogICAgICAgIGJ5CiAgICAgICAgZWdsaQogICAgICAgIDoKICAgICAgICBbMS4wXSAKICAgICAgICAgICAgUmVtb3ZlZCBiaXRmbHV4IGxpY2Vuc2UgYW5kIGJpdGZsdXggY3JlZGl0LgogRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuMCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS4wIHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgZWdsaQogICAgICAgIDoKICAgICAgICBbMS4wXSAKICAgICAgICAgICAgQWRkZWQgc3RhdGVtZW50cyBsaWtlICJUaGlzIHByb2R1Y3QgaW5jbHVkZXMgc29mdHdhcmUgZGV2ZWxvcGVkIGJ5IHRoZQpBcGFjaGUgU29mdHdhcmUgRm91bmRhdGlvbiAoaHR0cDovL3d3dy5hcGFjaGUub3JnLykuIiBhcyB3ZSBhcmUKcmVxdWlyZWQgdG8gZG8gc28gYnkgdGhlIGxpY2Vuc2UgcmVxdWlyZW1lbnRzLgogRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuMCBhZGQ8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS4wIGFkZAogICAgICAgIGJ5CiAgICAgICAgZWdsaQogICAgICAgIDoKICAgICAgICBbMS4wXSAKICAgICAgICAgICAgQWRkZWQgbGljZW5zZSBmaWxlIGZvciBiaXRmbHV4IGVkaXRvci4KIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjAgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuMCB1cGRhdGUKICAgICAgICBieQogICAgICAgIG1pY2hpCiAgICAgICAgOgogICAgICAgIFsxLjBdIAogICAgICAgICAgICBleHRlbnNpb25zIGFyZSBub3cgY29uZmlndXJhYmxlCiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS4wIHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjAgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBtaWNoaQogICAgICAgIDoKICAgICAgICBbMS4wXSAKICAgICAgICAgICAgbW9yZSBmaWVsZHMgdG8gTWF0cml4IHNlYXJjaCBhZGRlZAogRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuMCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS4wIHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgZWdsaQogICAgICAgIDoKICAgICAgICBbMS4wXSAKICAgICAgICAgICAgVXNlIHRoZSBuYW1lc3BhY2Ugb2YgdGhlIGRvY3VtZW50LWVsZW1lbnQgaW5zdGVhZCBvZiB0aGUKZG9jdW1lbnQtZGVjbGFyYXRpb24gKHdoaWNoIGlzIHJlbW92ZWQgYnkgdGhlIGFkZE1ldGFEYXRhIHhzbHQpLiBUaGlzCmZpeGVzIGJ1ZyAjMjQ2MTcuCiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS4wIHJlbW92ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjAgcmVtb3ZlCiAgICAgICAgYnkKICAgICAgICBlZ2xpCiAgICAgICAgOgogICAgICAgIFsxLjBdIAogICAgICAgICAgICBBZGRlZCBhIG5ldyB2ZXJzaW9uIG9mIHhtbC1mb3JyZXN0LWNvbXBvbmVudHMuamFyIChwbHVzIExpY2Vuc2UgZmlsZSkKd2hpY2ggY29udGFpbnMgdGhlIFNvdXJjZVR5cGVBY3Rpb24sIHdoaWNoIGlzIG5lZWRlZCB0byBkZXRlcm1pbmUgdGhlCmRvY3VtZW50LXR5cGUuCgpBbHNvIHJlbW92ZWQgdGhlIG9sZCB2ZXJzaW9uIG9mIHhtbC1mb3JyZXN0LWNvbXBvbmVudHMuamFyIGluIHRoZQpkb2NzLW5ldy9XRUItSU5GIGRpcmVjdG9yeS4KIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjAgYWRkPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuMCBhZGQKICAgICAgICBieQogICAgICAgIGFuZHJlYXMKICAgICAgICA6CiAgICAgICAgWzEuMF0gCiAgICAgICAgICAgIGFkZGluZyBzdGFnaW5nIHRhYiBpbWFnZXMKIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjAgcmVtb3ZlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuMCByZW1vdmUKICAgICAgICBieQogICAgICAgIGVnbGkKICAgICAgICA6CiAgICAgICAgWzEuMF0gCiAgICAgICAgICAgIFJlbW92ZWQgYXMgd2UgY2Fubm90IGxlZ2FseSByZWRpc3RpYnV0ZSBhbmQgdGhlcmUgaXMgYSBmcmVlIChhcyBpbgpzcGVlY2gpIHJlcGxhY2VtZW50IGluY2x1ZGVkIGluIENvY29vbi4KIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjAgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuMCB1cGRhdGUKICAgICAgICBieQogICAgICAgIGFuZHJlYXMKICAgICAgICA6CiAgICAgICAgWzEuMF0gCiAgICAgICAgICAgIGFkZGluZyBzdGFnaW5nIHRhYgogRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuMCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS4wIHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgZWdsaQogICAgICAgIDoKICAgICAgICBbMS4wXSAKICAgICAgICAgICAgQWRkZWQgc29tZSBtb3JlIGluZm9ybWF0aW9uIHRvIHRoZSBhc3NldCBzY3JlZW4gc3VjaCBhcyBmaWxlIHNpemUgYW5kIGNyZWF0aW9uIGRhdGUuCiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS4wIHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjAgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBtaWNoaQogICAgICAgIDoKICAgICAgICBbMS4wXSAKICAgICAgICAgICAgbXVsdGlwbGUgZmllbGRzIGFkZGVkCiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS4wIHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjAgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBtaWNoaQogICAgICAgIDoKICAgICAgICBbMS4wXSAKICAgICAgICAgICAgbXVsdGlwbGUgZmllbGRzIGFzIGNoZWNrYm94ZXMgYWRkZWQKIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjAgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuMCB1cGRhdGUKICAgICAgICBieQogICAgICAgIG1pY2hpCiAgICAgICAgOgogICAgICAgIFsxLjBdIAogICAgICAgICAgICBsaWNlbnNlIGFzIGFub3RoZXIgZmllbGQgYWRkZWQKIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjAgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuMCB1cGRhdGUKICAgICAgICBieQogICAgICAgIG1pY2hpCiAgICAgICAgOgogICAgICAgIFsxLjBdIAogICAgICAgICAgICBtZXRob2QgYW5kIGxpbmUgbnVtYmVyIGFkZGVkCiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS4wIGFkZDwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjAgYWRkCiAgICAgICAgYnkKICAgICAgICBlZ2xpCiAgICAgICAgOgogICAgICAgIFsxLjBdIAogICAgICAgICAgICBQb3J0ZWQgdGhlIHJlbWFpbmluZyBkZXBlbmRlbmNpZXMgZnJvbSB1bml6aCB0byB0aGUgY29yZToKKiBhZGQgbWV0YSBkYXRhCiogbGluayByZXdyaXRpbmcKIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjAgYWRkPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuMCBhZGQKICAgICAgICBieQogICAgICAgIGVnbGkKICAgICAgICA6CiAgICAgICAgWzEuMF0gCiAgICAgICAgICAgIEFkZGVkIExJQ0VOQ0UgZmlsZXMgZm9yIGFsbCBqYXJzIHdoaWNoIGFyZSBpbmNsdWRlZCBpbiB0aGUgLi9saWIgZGlyLgogRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuMCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS4wIHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgYW5kcmVhcwogICAgICAgIDoKICAgICAgICBbMS4wXSAKICAgICAgICAgICAgYXV0aG9yaXphdGlvbiBjYW4gZmFpbCBub3cKIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjAgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuMCB1cGRhdGUKICAgICAgICBieQogICAgICAgIGVnbGkKICAgICAgICA6CiAgICAgICAgWzEuMF0gCiAgICAgICAgICAgIE1hZGUgdGhlIHNoZWxsIHNjcmlwdCBpbmRlcGVuZGVudCBvZiBhbnlvbmUgdXNlcnMgaG9tZSBkaXIuCiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS4wIGFkZDwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjAgYWRkCiAgICAgICAgYnkKICAgICAgICBhbmRyZWFzCiAgICAgICAgOgogICAgICAgIFsxLjBdIAogICAgICAgICAgICBhZGRpbmcgY2Fub28gd2VidGVzdCBmaWxlcwogRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuMCByZW1vdmU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS4wIHJlbW92ZQogICAgICAgIGJ5CiAgICAgICAgYW5kcmVhcwogICAgICAgIDoKICAgICAgICBbMS4wXSAKICAgICAgICAgICAgbW92aW5nIHB1YmxpY2F0aW9uIHRlc3RzIHRvIHB1YmxpY2F0aW9uIGRpcmVjdG9yeQogRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuMCBhZGQ8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS4wIGFkZAogICAgICAgIGJ5CiAgICAgICAgYW5kcmVhcwogICAgICAgIDoKICAgICAgICBbMS4wXSAKICAgICAgICAgICAgc3RhcnRpbmcgYW50ZWF0ZXIgdGVzdHMKIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjAgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuMCB1cGRhdGUKICAgICAgICBieQogICAgICAgIGFuZHJlYXMKICAgICAgICA6CiAgICAgICAgWzEuMF0gCiAgICAgICAgICAgIHJlbW92ZWQgdW51c2VkIGltcG9ydHMKIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjAgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuMCB1cGRhdGUKICAgICAgICBieQogICAgICAgIGFuZHJlYXMKICAgICAgICA6CiAgICAgICAgWzEuMF0gCiAgICAgICAgICAgIHJlbW92ZWQgdW51c2VkIGltcG9ydAogRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuMCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS4wIHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgZWdsaQogICAgICAgIDoKICAgICAgICBbMS4wXSAKICAgICAgICAgICAgQ2hhbmdlZCB0aGUgZGMgdGl0bGUgdG8gbWFrZSBpdCBtb3JlIHBhbGF0YWJsZS4KIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjAgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuMCB1cGRhdGUKICAgICAgICBieQogICAgICAgIG1pY2hpCiAgICAgICAgOgogICAgICAgIFsxLjBdIAogICAgICAgICAgICBtdWx0aXBsZSBzZWFyY2ggZmllbGRzCiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS4wIHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjAgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBtaWNoaQogICAgICAgIDoKICAgICAgICBbMS4wXSAKICAgICAgICAgICAgYWRtaW4gYW5kIGxpdmUgdGFiZSBhcmUgbm93IGNvbmZpZ3VyYWJsZQogRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuMCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS4wIHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgbWljaGkKICAgICAgICA6CiAgICAgICAgWzEuMF0gCiAgICAgICAgICAgIGNvbnRlbnQgZGlyIGlzIGtpbmQgb2YgY29uZmlndXJhYmxlCiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS4wIHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjAgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBtaWNoaQogICAgICAgIDoKICAgICAgICBbMS4wXSAKICAgICAgICAgICAgbWl4ZWQgY29udGVudCB3aXRoIGJldHRlciBuYW1lc3BhY2Ugc3VwcG9ydAogRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuMCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS4wIHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgZ3JlZ29yCiAgICAgICAgOgogICAgICAgIFsxLjBdIAogICAgICAgICAgICBhYm91dCBwYWdlIGFkZGVkCmxpbmsgdG8gc3RhcnQgcGFnZSBhZGRlZAogRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuMCByZW1vdmU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS4wIHJlbW92ZQogICAgICAgIGJ5CiAgICAgICAgbWljaGkKICAgICAgICA6CiAgICAgICAgWzEuMF0gCiAgICAgICAgICAgIG9ic29sZXRlCiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS4wIHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjAgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBtaWNoaQogICAgICAgIDoKICAgICAgICBbMS4wXSAKICAgICAgICAgICAgT1NDT00gY2xlYW5lZAogRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuMCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS4wIHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgbWljaGkKICAgICAgICA6CiAgICAgICAgWzEuMF0gCiAgICAgICAgICAgIGJyZWFrIGFuZCB2YWxpZ24gZml4ZWQKIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjAgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuMCB1cGRhdGUKICAgICAgICBieQogICAgICAgIGdyZWdvcgogICAgICAgIDoKICAgICAgICBbMS4wXSAKICAgICAgICAgICAgc3RhcnQgcGFnZSBjbGVhbnVwCiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS4wIHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjAgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBncmVnb3IKICAgICAgICA6CiAgICAgICAgWzEuMF0gCiAgICAgICAgICAgIG1vcmUgZ3VtcCBkZXNjcmlwdG9yIHR3ZWFrcwogRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuMCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS4wIHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgZ3JlZ29yCiAgICAgICAgOgogICAgICAgIFsxLjBdIAogICAgICAgICAgICByZW1vdmVkIHNvbWUgY29tbWVudGVkLW91dCBsaW5lcyB0aGF0IHdlcmUgc3VwZXJmbG91cwogRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuMCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS4wIHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgZ3JlZ29yCiAgICAgICAgOgogICAgICAgIFsxLjBdIAogICAgICAgICAgICBkZS11Z2xpZmllZCBvbmUgZm9ybSBlZGl0b3IKIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjAgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuMCB1cGRhdGUKICAgICAgICBieQogICAgICAgIG1pY2hpCiAgICAgICAgOgogICAgICAgIFsxLjBdIAogICAgICAgICAgICBOdWxsUG9pbnRlckV4Y2VwdGlvbiBmaXhlZAogRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuMCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS4wIHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgbWljaGkKICAgICAgICA6CiAgICAgICAgWzEuMF0gCiAgICAgICAgICAgIGFkZGVkIGFkdmFuY2VkIG1hdHJpeCBzZWFyY2gKIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjAgcmVtb3ZlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuMCByZW1vdmUKICAgICAgICBieQogICAgICAgIG1pY2hpCiAgICAgICAgOgogICAgICAgIFsxLjBdIAogICAgICAgICAgICBvYnNvbGV0ZQogRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuMCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS4wIHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgbWljaGkKICAgICAgICA6CiAgICAgICAgWzEuMF0gCiAgICAgICAgICAgIGltYWdlcyBwYXRoIGZpeGVkCiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS4wIHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjAgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBtaWNoaQogICAgICAgIDoKICAgICAgICBbMS4wXSAKICAgICAgICAgICAgY2xlYW5lZAogRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuMCBhZGQ8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS4wIGFkZAogICAgICAgIGJ5CiAgICAgICAgbWljaGkKICAgICAgICA6CiAgICAgICAgWzEuMF0gCiAgICAgICAgICAgIGluZGV4IG1vdmVkCiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS4wIHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjAgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBtaWNoaQogICAgICAgIDoKICAgICAgICBbMS4wXSAKICAgICAgICAgICAgbGljZW5zZSBmaWVsZCBhZGRlZAogRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuMCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS4wIHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgbWljaGkKICAgICAgICA6CiAgICAgICAgWzEuMF0gCiAgICAgICAgICAgIGFzIGFsdGVybmF0aXZlIHRvIHRoZSBhbnQgd2hpY2ggc2VlbXMgdG8gaGF2ZSBhIGNsYXNzIGxvYWRpbmcgcHJvYmxlbQogRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuMCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS4wIHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgbWljaGkKICAgICAgICA6CiAgICAgICAgWzEuMF0gCiAgICAgICAgICAgIHNlYXJjaCBmaWVsZHMgZGVwZW5kaW5nIG9uIHRoZSBpbmRleCBhZGRlZAogRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuMCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS4wIHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgbWljaGkKICAgICAgICA6CiAgICAgICAgWzEuMF0gCiAgICAgICAgICAgIGFsc28gY29weSBwcm9wZXJ0aWVzIGZpbGVzCiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS4wIHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjAgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBtaWNoaQogICAgICAgIDoKICAgICAgICBbMS4wXSAKICAgICAgICAgICAgcmVsb2FkIGphdmEgY2xhc3NlcwogRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuMCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS4wIHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgbWljaGkKICAgICAgICA6CiAgICAgICAgWzEuMF0gCiAgICAgICAgICAgIGluZGV4IG9mIE1hdHJpeCBhZGRlZAogRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuMCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS4wIHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgbWljaGkKICAgICAgICA6CiAgICAgICAgWzEuMF0gCiAgICAgICAgICAgIHNlYXJjaCBmaWVsZHMgYWRkZWQKIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjAgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuMCB1cGRhdGUKICAgICAgICBieQogICAgICAgIG1pY2hpCiAgICAgICAgOgogICAgICAgIFsxLjBdIAogICAgICAgICAgICBGaWVsZHMgcGFyYW1ldGVyIGFkZGVkCiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS4wIHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjAgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBtaWNoaQogICAgICAgIDoKICAgICAgICBbMS4wXSAKICAgICAgICAgICAgaGFyZGNvZGVkIGZpbGVuYW1lIGZpeGVkCiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS4wIHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjAgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBtaWNoaQogICAgICAgIDoKICAgICAgICBbMS4wXSAKICAgICAgICAgICAgZmlsZW5hbWUgZml4ZWQKIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjAgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuMCB1cGRhdGUKICAgICAgICBieQogICAgICAgIG1pY2hpCiAgICAgICAgOgogICAgICAgIFsxLjBdIAogICAgICAgICAgICBhbm90aGVyIGNvbW1hbmQgbGluZSB1c2FnZQogRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuMCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS4wIHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgbWljaGkKICAgICAgICA6CiAgICAgICAgWzEuMF0gCiAgICAgICAgICAgIG5hbWVzcGFjZSBmaXhlZAogRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuMCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS4wIHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgbWljaGkKICAgICAgICA6CiAgICAgICAgWzEuMF0gCiAgICAgICAgICAgIG5hbWVzcGFjZSBmaXhlZAogRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuMCBhZGQ8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS4wIGFkZAogICAgICAgIGJ5CiAgICAgICAgbWljaGkKICAgICAgICA6CiAgICAgICAgWzEuMF0gCiAgICAgICAgICAgIENvbmZpZyBvZiBjb25maWd1cmFibGUgaW5kZXhlciBhZGRlZAogRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuMCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS4wIHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgbWljaGkKICAgICAgICA6CiAgICAgICAgWzEuMF0gCiAgICAgICAgICAgIE51bGxQb2ludGVyRXhjZXB0aW9uIGZpeGVkCiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS4wIHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjAgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBtaWNoaQogICAgICAgIDoKICAgICAgICBbMS4wXSAKICAgICAgICAgICAgbWljaGkgcmVtb3ZlZAogRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuMCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS4wIHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgbWljaGkKICAgICAgICA6CiAgICAgICAgWzEuMF0gCiAgICAgICAgICAgIGNvbmZpZ3VyYWJsZSBkb2N1bWVudCBjcmVhdG9yIGZpeGVkCiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS4wIHJlbW92ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjAgcmVtb3ZlCiAgICAgICAgYnkKICAgICAgICBtaWNoaQogICAgICAgIDoKICAgICAgICBbMS4wXSAKICAgICAgICAgICAgb2Jzb2xldGUKIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjAgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuMCB1cGRhdGUKICAgICAgICBieQogICAgICAgIGFuZHJlYXMKICAgICAgICA6CiAgICAgICAgWzEuMF0gCiAgICAgICAgICAgIC0gcmVmYWN0b3JpbmcgYWNjZXNzIGNvbnRyb2wKLSByZW1vdmVkIG9ic29sZXRlIGZpbGUKIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjAgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuMCB1cGRhdGUKICAgICAgICBieQogICAgICAgIGFuZHJlYXMKICAgICAgICA6CiAgICAgICAgWzEuMF0gCiAgICAgICAgICAgIHJlZmFjdG9yaW5nIGFjY2VzcyBjb250cm9sIHBhY2thZ2Ugc3RydWN0dXJlCiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS4wIHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjAgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBhbmRyZWFzCiAgICAgICAgOgogICAgICAgIFsxLjBdIAogICAgICAgICAgICBnZXRQYXJlbnREb2N1bWVudCgpIHJldHVybnMgUHJvY2Vzc2luZ0V4Y2VwdGlvbgogRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuMCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS4wIHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgYW5kcmVhcwogICAgICAgIDoKICAgICAgICBbMS4wXSAKICAgICAgICAgICAgLSByZWZhY3RvcmluZyBhY2Nlc3MgY29udHJvbCBwYWNrYWdlIHN0cnVjdHVyZQotIHJlbW92ZWQgb2Jzb2xldGUgYWN0aW9ucwogRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuMCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS4wIHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgYW5kcmVhcwogICAgICAgIDoKICAgICAgICBbMS4wXSAKICAgICAgICAgICAgcmVtb3ZlZCBzb21lIHVudXNlZCBjb2RlCiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS4wIHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjAgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBtaWNoaQogICAgICAgIDoKICAgICAgICBbMS4wXSAKICAgICAgICAgICAgVVJMIGZpeGVkCiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS4wIHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjAgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBtaWNoaQogICAgICAgIDoKICAgICAgICBbMS4wXSAKICAgICAgICAgICAgdXBwZXIgdG8gbG93ZXIgY2FzZSBmb3IgbWlncmF0aW9uIG9mIGxlZ2FjeSBIVE1MCiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS4wIHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjAgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBncmVnb3IKICAgICAgICA6CiAgICAgICAgWzEuMF0gCiAgICAgICAgICAgIHVwZGF0ZWQgdGhlIHJlcXVpcmVtZW50cywgc3RyZW5naHRlbmVkIHRoZSBsYW5ndWFnZS4KIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjAgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuMCB1cGRhdGUKICAgICAgICBieQogICAgICAgIGdyZWdvcgogICAgICAgIDoKICAgICAgICBbMS4wXSAKICAgICAgICAgICAgYWRkZWQgaW1hZ2UgYW5kIGFzc2V0IGhvb2tzLgogRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuMCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS4wIHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgYW5kcmVhcwogICAgICAgIDoKICAgICAgICBbMS4wXSAKICAgICAgICAgICAgY29ycmVjdGVkIGEgamF2YWRvYyBjb21tZW50CiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS4wIHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjAgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBhbmRyZWFzCiAgICAgICAgOgogICAgICAgIFsxLjBdIAogICAgICAgICAgICBmaXhlZCAiYmFjayB0byBwYWdlIiBidXR0b24gZm9yIElFCiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS4wIHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjAgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBtaWNoaQogICAgICAgIDoKICAgICAgICBbMS4wXSAKICAgICAgICAgICAgbHVjZW5lIHNpdGVtYXAgY2xlYW51cAogRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuMCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS4wIHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgbWljaGkKICAgICAgICA6CiAgICAgICAgWzEuMF0gCiAgICAgICAgICAgIGx1Y2VuZSBtb3ZlZCBpbnRvIG92ZXJ3cml0aW5nIHNpdGVtYXAKIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjAgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuMCB1cGRhdGUKICAgICAgICBieQogICAgICAgIG1pY2hpCiAgICAgICAgOgogICAgICAgIFsxLjBdIAogICAgICAgICAgICBsdWNlbmUgbW91bnRpbmcgZml4ZWQKIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjAgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuMCB1cGRhdGUKICAgICAgICBieQogICAgICAgIG1pY2hpCiAgICAgICAgOgogICAgICAgIFsxLjBdIAogICAgICAgICAgICBsdWNlbmUgbW91bnRpbmcgZ2VuZXJhbGl6ZWQKIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjAgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuMCB1cGRhdGUKICAgICAgICBieQogICAgICAgIGFuZHJlYXMKICAgICAgICA6CiAgICAgICAgWzEuMF0gCiAgICAgICAgICAgIGZpeGVkIGZpbGUgcGF0aCByZWdleHAgYnVnCiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS4wIHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjAgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBhbmRyZWFzCiAgICAgICAgOgogICAgICAgIFsxLjBdIAogICAgICAgICAgICBjaGFuZ2VkIGVkaXRvciBidXR0b25zCiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS4wIGFkZDwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjAgYWRkCiAgICAgICAgYnkKICAgICAgICBhbmRyZWFzCiAgICAgICAgOgogICAgICAgIFsxLjBdIAogICAgICAgICAgICBhZGRlZCBlZGl0b3IgYnV0dG9ucwogRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuMCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS4wIHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgbWljaGkKICAgICAgICA6CiAgICAgICAgWzEuMF0gCiAgICAgICAgICAgIEJYRSBieXBhc3MgcGlwZWxpbmUgYWRkZWQKIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjAgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuMCB1cGRhdGUKICAgICAgICBieQogICAgICAgIGdyZWdvcgogICAgICAgIDoKICAgICAgICBbMS4wXSAKICAgICAgICAgICAgZml4ZWQgdGhlIGZvcm0gZWRpdG9yCiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS4wIHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjAgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBtaWNoaQogICAgICAgIDoKICAgICAgICBbMS4wXSAKICAgICAgICAgICAgT25lIGZvcm0gZWRpdG9yIGFkZGVkCiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS4wIHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjAgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBncmVnb3IKICAgICAgICA6CiAgICAgICAgWzEuMF0gCiAgICAgICAgICAgIGxlbnlhIHNlcnZsZXQgaXMgbm93IHRoZSBkZWZhdWx0IGFjdGlvbi4gYSBkb3VibGUgY2xpY2sgd2lsbCBub3cgbGF1bmNoIGxlbnlhIHByb3Blcmx5CiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS4wIHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjAgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBncmVnb3IKICAgICAgICA6CiAgICAgICAgWzEuMF0gCiAgICAgICAgICAgIGluc3RhbGxlciBub3cgc2hvd3MgbGljZW5zZSBpbnN0ZWFkIG9mIHJlYWRtZQogRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuMCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS4wIHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgZ3JlZ29yCiAgICAgICAgOgogICAgICAgIFsxLjBdIAogICAgICAgICAgICBjbGFyaWZpZWQgaW5zdGFsbCBpbnN0cnVjdGlvbnMKIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjAgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuMCB1cGRhdGUKICAgICAgICBieQogICAgICAgIGdyZWdvcgogICAgICAgIDoKICAgICAgICBbMS4wXSAKICAgICAgICAgICAgdXBkYXRlZCBndW1wIGRlY3JpcHRvcgogRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuMCBhZGQ8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS4wIGFkZAogICAgICAgIGJ5CiAgICAgICAgZ3JlZ29yCiAgICAgICAgOgogICAgICAgIFsxLjBdIAogICAgICAgICAgICBtb3JlIGxpY2Vuc2VzIGFkZGVkCiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS4wIHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjAgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBncmVnb3IKICAgICAgICA6CiAgICAgICAgWzEuMF0gCiAgICAgICAgICAgIGFkZGVkIG11bHRpbGluZ3VhbCBmZWF0dXJlcyB0byBtZW51CnNhbml0aXplZCBtZW51CiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS4wIHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjAgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBtaWNoaQogICAgICAgIDoKICAgICAgICBbMS4wXSAKICAgICAgICAgICAgaW5zZXJ0IHZpYSBzZWxlY3Qgb3B0aW9uIGFkZGVkCiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS4wIHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjAgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBtaWNoaQogICAgICAgIDoKICAgICAgICBbMS4wXSAKICAgICAgICAgICAgc2VsZWN0IGFuZCBvcHRpb24gYWRkZWQKIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjAgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuMCB1cGRhdGUKICAgICAgICBieQogICAgICAgIG1pY2hpCiAgICAgICAgOgogICAgICAgIFsxLjBdIAogICAgICAgICAgICBGSVhNRSByZSBDREFUQSBhZGRlZAogRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuMCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS4wIHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgbWljaGkKICAgICAgICA6CiAgICAgICAgWzEuMF0gCiAgICAgICAgICAgIGNvbnRleHQgcHJlZml4IGZpeGVkCiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS4wIHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjAgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBtaWNoaQogICAgICAgIDoKICAgICAgICBbMS4wXSAKICAgICAgICAgICAgc3RhbmRhbG9uZSBwYXRoIGFkZGVkCiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS4wIHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjAgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBtaWNoaQogICAgICAgIDoKICAgICAgICBbMS4wXSAKICAgICAgICAgICAgZG8gbm90IHNob3cgZXhjZXB0aW9uIHJlIHBydW5lCiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS4wIHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjAgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBncmVnb3IKICAgICAgICA6CiAgICAgICAgWzEuMF0gCiAgICAgICAgICAgIHdoZW4gY29tcGlsZWQgd2l0aCBodHRwOi8vbnNpcy5zZi5uZXQsIHRoaXMgbm93IGNyZWF0ZXMgYSB3b3JraW5nIGluc3RhbGxlciBmb3Igd2luZG93cy4KIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjAgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuMCB1cGRhdGUKICAgICAgICBieQogICAgICAgIGdyZWdvcgogICAgICAgIDoKICAgICAgICBbMS4wXSAKICAgICAgICAgICAgdGhlIHJlcG9zaXRvcnkgbmFtZSBpcyBzdGlsbCBjb2Nvb24tMi4xCiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS4wIGFkZDwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjAgYWRkCiAgICAgICAgYnkKICAgICAgICBncmVnb3IKICAgICAgICA6CiAgICAgICAgWzEuMF0gCiAgICAgICAgICAgIGhhdmUgZnVuLCBraWRzCgpqZXR0eSBzdXBwb3J0IGZvciBsaW51eAogRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuMCBhZGQ8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS4wIGFkZAogICAgICAgIGJ5CiAgICAgICAgbWljaGkKICAgICAgICA6CiAgICAgICAgWzEuMF0gCiAgICAgICAgICAgIHJlbGF4bmcgYWRkZWQKIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjAgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuMCB1cGRhdGUKICAgICAgICBieQogICAgICAgIG1pY2hpCiAgICAgICAgOgogICAgICAgIFsxLjBdIAogICAgICAgICAgICBDb2Nvb24gdmVyc2lvbiB1cGRhdGVkCiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS4wIHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjAgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBtaWNoaQogICAgICAgIDoKICAgICAgICBbMS4wXSAKICAgICAgICAgICAgcmVuYW1lZCBjb2Nvb24gZGlyIHBhcmFtZXRlcgogRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuMCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS4wIHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgYW5kcmVhcwogICAgICAgIDoKICAgICAgICBbMS4wXSAKICAgICAgICAgICAgcmVwbGFjZWQgaGFyZC1jb2RlZCBjb250ZXh0IHByZWZpeCBieSBwYXJhbWV0ZXIKIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjAgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuMCB1cGRhdGUKICAgICAgICBieQogICAgICAgIGFuZHJlYXMKICAgICAgICA6CiAgICAgICAgWzEuMF0gCiAgICAgICAgICAgIGFkZGVkIGNhbmNlbCBidXR0b24KIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjAgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuMCB1cGRhdGUKICAgICAgICBieQogICAgICAgIGdyZWdvcgogICAgICAgIDoKICAgICAgICBbMS4wXSAKICAgICAgICAgICAgcmVpbnN0YXRlZCB0ZXh0L2NzcyBtaW1lIHR5cGUKIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjAgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuMCB1cGRhdGUKICAgICAgICBieQogICAgICAgIGdyZWdvcgogICAgICAgIDoKICAgICAgICBbMS4wXSAKICAgICAgICAgICAgYWRkIHN1cHBvcnQgZm9yIGluc2VydCBhc3NldCBob29rCiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS4wIHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjAgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBtaWNoaQogICAgICAgIDoKICAgICAgICBbMS4wXSAKICAgICAgICAgICAgbGF5b3V0IGZpeGVkCiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS4wIHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjAgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBtaWNoaQogICAgICAgIDoKICAgICAgICBbMS4wXSAKICAgICAgICAgICAgbmFtZXNwYWNlIHdvcmthcm91bmQgYWRkZWQKIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjAgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuMCB1cGRhdGUKICAgICAgICBieQogICAgICAgIG1pY2hpCiAgICAgICAgOgogICAgICAgIFsxLjBdIAogICAgICAgICAgICBzZWxlY3QgYWRkZWQKIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjAgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuMCB1cGRhdGUKICAgICAgICBieQogICAgICAgIG1pY2hpCiAgICAgICAgOgogICAgICAgIFsxLjBdIAogICAgICAgICAgICBzZWxlY3QgYWRkZWQKIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjAgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuMCB1cGRhdGUKICAgICAgICBieQogICAgICAgIG1pY2hpCiAgICAgICAgOgogICAgICAgIFsxLjBdIAogICAgICAgICAgICBzcGVjaWFsIGNoYXJhY3RlcnMgYWRkZWQKIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjAgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuMCB1cGRhdGUKICAgICAgICBieQogICAgICAgIG1pY2hpCiAgICAgICAgOgogICAgICAgIFsxLjBdIAogICAgICAgICAgICBjb3B5LW1peGVkLWNvbnRlbnQgbW92ZWQgdG8gYSBsYXRlciBzdGFnZQogRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuMCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS4wIHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgYW5kcmVhcwogICAgICAgIDoKICAgICAgICBbMS4wXSAKICAgICAgICAgICAgZml4ZWQgbWlzc2luZyBkZWNyZW1lbnQgYnVnCiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS4wIGFkZDwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjAgYWRkCiAgICAgICAgYnkKICAgICAgICBhbmRyZWFzCiAgICAgICAgOgogICAgICAgIFsxLjBdIAogICAgICAgICAgICBkeW5hbWljIENTUyBnZW5lcmF0aW9uIHRvIGluY2x1ZGUgY29udGV4dCBwcmVmaXgKIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjAgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuMCB1cGRhdGUKICAgICAgICBieQogICAgICAgIGFuZHJlYXMKICAgICAgICA6CiAgICAgICAgWzEuMF0gCiAgICAgICAgICAgIHJlbW92ZWQgaGFyZC1jb2RlZCBjb250ZXh0IHByZWZpeAogRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuMCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS4wIHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgYW5kcmVhcwogICAgICAgIDoKICAgICAgICBbMS4wXSAKICAgICAgICAgICAgdXNpbmcgQ01TIHNjcmVlbiBsYXlvdXQgZm9yIGZvcm0gZWRpdG9yCiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS4wIGFkZDwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjAgYWRkCiAgICAgICAgYnkKICAgICAgICBncmVnb3IKICAgICAgICA6CiAgICAgICAgWzEuMF0gCiAgICAgICAgICAgIGpldHR5IHN1cHBvcnQKIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjAgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuMCB1cGRhdGUKICAgICAgICBieQogICAgICAgIGdyZWdvcgogICAgICAgIDoKICAgICAgICBbMS4wXSAKICAgICAgICAgICAgd2Ugd2lsbCB1c2UgamV0dHkgZm9yIHRoZSBpbnN0YWxsZXIsIHRoaXMgc2ltcGxpZmllcyB0aGluZ3MgYSBsb3QKIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjAgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuMCB1cGRhdGUKICAgICAgICBieQogICAgICAgIG1pY2hpCiAgICAgICAgOgogICAgICAgIFsxLjBdIAogICAgICAgICAgICBlZGl0IG9ubHkgb25lIGZpZWxkCiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS4wIGFkZDwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjAgYWRkCiAgICAgICAgYnkKICAgICAgICBhbmRyZWFzCiAgICAgICAgOgogICAgICAgIFsxLjBdIAogICAgICAgICAgICBhZGRlZCBzb21lIHdvcmtmbG93IGRvY3VtZW50YXRpb24KIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjAgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuMCB1cGRhdGUKICAgICAgICBieQogICAgICAgIG1pY2hpCiAgICAgICAgOgogICAgICAgIFsxLjBdIAogICAgICAgICAgICBuYW1lc3BhY2Ugd29ya2Fyb3VuZCBmb3IgZm9ybWVkaXRvciBmaXhlZAogRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuMCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS4wIHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgbWljaGkKICAgICAgICA6CiAgICAgICAgWzEuMF0gCiAgICAgICAgICAgIGxheW91dCBsYXllciBpbnRyb2R1Y2VkCiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS4wIHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjAgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBhbmRyZWFzCiAgICAgICAgOgogICAgICAgIFsxLjBdIAogICAgICAgICAgICBhZGRlZCBzb21lIG1lbnViYXIgZG9jdW1lbnRhdGlvbgogRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuMCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS4wIHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgYW5kcmVhcwogICAgICAgIDoKICAgICAgICBbMS4wXSAKICAgICAgICAgICAgYWRkZWQgZ2V0RXhpc3RpbmdMYW5ndWFnZVZlcnNpb24oZG9jdW1lbnQpIG1ldGhvZAogRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuMCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS4wIHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgYW5kcmVhcwogICAgICAgIDoKICAgICAgICBbMS4wXSAKICAgICAgICAgICAgcGF0Y2hpbmcgY29jb29uLnhjb25mIGZvciBwdWJsaWNhdGlvbnMKIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjAgYWRkPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuMCBhZGQKICAgICAgICBieQogICAgICAgIGFuZHJlYXMKICAgICAgICA6CiAgICAgICAgWzEuMF0gCiAgICAgICAgICAgIGFkZGluZyB4cGF0Y2ggdGFzawogRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuMCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS4wIHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgbWljaGkKICAgICAgICA6CiAgICAgICAgWzEuMF0gCiAgICAgICAgICAgIHZlcnNpb24gYWRkZWQgYW5kIHVwZGF0ZWQKIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjAgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuMCB1cGRhdGUKICAgICAgICBieQogICAgICAgIGFuZHJlYXMKICAgICAgICA6CiAgICAgICAgWzEuMF0gCiAgICAgICAgICAgIGZpeGVkIGxlbnlhLnh0ZXN0CmZpeGVkIERvY3VtZW50RGVhY3RpdmF0ZVRlc3QKIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjAgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuMCB1cGRhdGUKICAgICAgICBieQogICAgICAgIGFuZHJlYXMKICAgICAgICA6CiAgICAgICAgWzEuMF0gCiAgICAgICAgICAgIHNldHRpbmcgY29udGV4dC1wcmVmaXggcGFyYW1ldGVyCiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS4wIHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjAgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBhbmRyZWFzCiAgICAgICAgOgogICAgICAgIFsxLjBdIAogICAgICAgICAgICAtIHVzaW5nIG5hbWVzcGFjZQotIHNvbWUgY29kZSBzaW1wbGlmaWNhdGlvbnMKIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjAgYWRkPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuMCBhZGQKICAgICAgICBieQogICAgICAgIG1pY2hpCiAgICAgICAgOgogICAgICAgIFsxLjBdIAogICAgICAgICAgICB0eXBvIGFuZCBidWcgZml4ZWQKIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjAgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuMCB1cGRhdGUKICAgICAgICBieQogICAgICAgIG1pY2hpCiAgICAgICAgOgogICAgICAgIFsxLjBdIAogICAgICAgICAgICByZW5hbWVkIGFuZCB0eXBvIGZpeGVkCiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS4wIHJlbW92ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjAgcmVtb3ZlCiAgICAgICAgYnkKICAgICAgICBtaWNoaQogICAgICAgIDoKICAgICAgICBbMS4wXSAKICAgICAgICAgICAgcmVuYW1lZCBhbmQgdHlwbyBmaXhlZAogRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuMCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS4wIHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgbWljaGkKICAgICAgICA6CiAgICAgICAgWzEuMF0gCiAgICAgICAgICAgIGVkaXQgaXRlbXMgZml4ZWQKIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjAgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuMCB1cGRhdGUKICAgICAgICBieQogICAgICAgIG1pY2hpCiAgICAgICAgOgogICAgICAgIFsxLjBdIAogICAgICAgICAgICBGSVhNRSBhZGRlZAogRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuMCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS4wIHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgbWljaGkKICAgICAgICA6CiAgICAgICAgWzEuMF0gCiAgICAgICAgICAgIHhhbGFuLTIuNS4xIHdvcmthcm91bmQKIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjAgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuMCB1cGRhdGUKICAgICAgICBieQogICAgICAgIGFuZHJlYXMKICAgICAgICA6CiAgICAgICAgWzEuMF0gCiAgICAgICAgICAgIHRocm93aW5nIEV4Y2VwdGlvbiB3aGVuIGNvbnRleHQgZGlyZWN0b3J5IGlzIGludmFsaWQKIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjAgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuMCB1cGRhdGUKICAgICAgICBieQogICAgICAgIGFuZHJlYXMKICAgICAgICA6CiAgICAgICAgWzEuMF0gCiAgICAgICAgICAgIGFkZGVkIHNvbWUgYWNjZXNzIGNvbnRyb2wgZG9jdW1lbnRhdGlvbgogRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuMCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS4wIHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgYW5kcmVhcwogICAgICAgIDoKICAgICAgICBbMS4wXSAKICAgICAgICAgICAgcmVtb3ZlZCB1bnVzZWQgY29kZQogRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuMCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS4wIHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgYW5kcmVhcwogICAgICAgIDoKICAgICAgICBbMS4wXSAKICAgICAgICAgICAgZml4ZWQgbGl2ZS1zaXRlcyBsaW5rCiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS4wIHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjAgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBhbmRyZWFzCiAgICAgICAgOgogICAgICAgIFsxLjBdIAogICAgICAgICAgICBkb24ndCBpbnNlcnQgYnhlX3hwYXRoIGF0dHJpYnV0ZXMgd2hlbiBwYWdlIGlzIG5vdCBlZGl0ZWQKIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjAgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuMCB1cGRhdGUKICAgICAgICBieQogICAgICAgIGFuZHJlYXMKICAgICAgICA6CiAgICAgICAgWzEuMF0gCiAgICAgICAgICAgIGRvbid0IGFwcGx5IGVtcHR5IGRjOiogdGFncwogRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuMCBhZGQ8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS4wIGFkZAogICAgICAgIGJ5CiAgICAgICAgZ3JlZ29yCiAgICAgICAgOgogICAgICAgIFsxLjBdIAogICAgICAgICAgICBiZWdpbiB3b3JrIG9uIHdpbmRvd3MgaW5zdGFsbGVyIGZvciBsZW55YSwgc3RhcnRpbmcgZnJvbSB0aGUgdG9tY2F0IDUuMCBpbnN0YWxsZXIgY29kZQogRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuMCBhZGQ8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS4wIGFkZAogICAgICAgIGJ5CiAgICAgICAgZ3JlZ29yCiAgICAgICAgOgogICAgICAgIFsxLjBdIAogICAgICAgICAgICBhZGRlZCBtaXNzaW5nIHNpdGV0cmVlIHRvIG1ha2UgbGlmZSBlYXNpZXIgZm9yIGZpcnN0IHRpbWUgdXNlcnMKIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjAgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuMCB1cGRhdGUKICAgICAgICBieQogICAgICAgIG1pY2hpCiAgICAgICAgOgogICAgICAgIFsxLjBdIAogICAgICAgICAgICBuYW1lc3BhY2UgYnVnIGZpeGVkIGFuZCBpbmRlbnRpbmcKIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjAgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuMCB1cGRhdGUKICAgICAgICBieQogICAgICAgIG1pY2hpCiAgICAgICAgOgogICAgICAgIFsxLjBdIAogICAgICAgICAgICBuYW1lc3BhY2UgYnVnIGFuZCBpbmRlbnRpbmcgZml4ZWQKIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjAgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuMCB1cGRhdGUKICAgICAgICBieQogICAgICAgIGVnbGkKICAgICAgICA6CiAgICAgICAgWzEuMF0gCiAgICAgICAgICAgIE1ha2Ugc3VyZSB0aGUgY2FzZSB3aGVyZSB0aGVyZSBpcyBubyBsYW5ndWFnZSBzcGVjaWZpZWQgaW4gdGhlCnJlZmVyZW5jZSBpcyBoYW5kbGVkIGNvcnJlY3RseS4KIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjAgYWRkPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuMCBhZGQKICAgICAgICBieQogICAgICAgIGVnbGkKICAgICAgICA6CiAgICAgICAgWzEuMF0gCiAgICAgICAgICAgIENvbXBsZXRlZCB0aGUgbXVsdGlsaW5ndWFsIGRvY3UuCiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS4wIHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjAgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBlZ2xpCiAgICAgICAgOgogICAgICAgIFsxLjBdIAogICAgICAgICAgICBQcmV2ZW50IGEgTnVsbFBvaW50ZXJFeGNlcHRpb24gaW4gdGhlIGNhc2Ugd2hlcmUgdGhlIGxpbmsgaGFzIG5vCmxhbmd1YWdlLgogRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuMCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS4wIHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgZWdsaQogICAgICAgIDoKICAgICAgICBbMS4wXSAKICAgICAgICAgICAgQWRkZWQgc29tZSBwdW5jdHVhdGlvbi4KIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjAgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuMCB1cGRhdGUKICAgICAgICBieQogICAgICAgIGVnbGkKICAgICAgICA6CiAgICAgICAgWzEuMF0gCiAgICAgICAgICAgIEFkYXB0ZWQgdG8gbmV3IERvY3VtZW50UmVmZXJlbmNlc0hlbHBlciBpbnRlcmZhY2UuCiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS4wIHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjAgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBlZ2xpCiAgICAgICAgOgogICAgICAgIFsxLjBdIAogICAgICAgICAgICBBZGRlZCBsaW5rcyB0byBtZXRhIGRhdGEgYW5kIHRvIG11bHRpbGluZ3VhbCBkb2N1bWVudCBoYW5kbGluZy4KIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjAgYWRkPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuMCBhZGQKICAgICAgICBieQogICAgICAgIGVnbGkKICAgICAgICA6CiAgICAgICAgWzEuMF0gCiAgICAgICAgICAgIENvbXBsZXRlZCB0aGUgbWV0YSBkYXRhIGRvY3UuCiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS4wIHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjAgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBlZ2xpCiAgICAgICAgOgogICAgICAgIFsxLjBdIAogICAgICAgICAgICBGaXhlZCBhIHR5cG8gYW5kIGFkZGVkIHNvbWUgRklYTUU6cyBhYm91dCBzdHVmZiB0aGF0IGhhcyB0byBiZQptaWdyYXRlZCBmcm9tIHVuaXpoIHRvIHRoZSBjb3JlLgogRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuMCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS4wIHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgYW5kcmVhcwogICAgICAgIDoKICAgICAgICBbMS4wXSAKICAgICAgICAgICAgYWRkZWQgc29tZSBwb2xpY3kgZG9jdW1lbnRhdGlvbgogRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuMCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS4wIHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgZWdsaQogICAgICAgIDoKICAgICAgICBbMS4wXSAKICAgICAgICAgICAgQWRkZWQgbGluayBtYW5hZ2VtZW50LgogRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuMCBhZGQ8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS4wIGFkZAogICAgICAgIGJ5CiAgICAgICAgZWdsaQogICAgICAgIDoKICAgICAgICBbMS4wXSAKICAgICAgICAgICAgQ29tcGxldGVkIHRoZSBsaW5rIG1hbmFnZW1lbnQgZG9jdS4KIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjAgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuMCB1cGRhdGUKICAgICAgICBieQogICAgICAgIGVnbGkKICAgICAgICA6CiAgICAgICAgWzEuMF0gCiAgICAgICAgICAgIENvbXBsZXRlZCB0aGUgYXNzZXQgbWFuYWdlbWVudCBkb2N1LgogRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuMCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS4wIHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgZWdsaQogICAgICAgIDoKICAgICAgICBbMS4wXSAKICAgICAgICAgICAgRml4ZWQgYSB0eXBvIGluIHRoZSBqYXZhIGRvYy4KIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjAgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuMCB1cGRhdGUKICAgICAgICBieQogICAgICAgIGFuZHJlYXMKICAgICAgICA6CiAgICAgICAgWzEuMF0gCiAgICAgICAgICAgIGZpeGVkIHNvdXJjZXMgcGFyYW1ldGVyIGZvciBwdWJsaXNoCiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS4wIHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjAgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBtaWNoaQogICAgICAgIDoKICAgICAgICBbMS4wXSAKICAgICAgICAgICAgZGVzY3JpcHRpb24gZml4ZWQKIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjAgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuMCB1cGRhdGUKICAgICAgICBieQogICAgICAgIGdyZWdvcgogICAgICAgIDoKICAgICAgICBbMS4wXSAKICAgICAgICAgICAgaW1hZ2UgdXBsb2FkIGNhbGxiYWNrIGFkZGVkCiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS4wIHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjAgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBhbmRyZWFzCiAgICAgICAgOgogICAgICAgIFsxLjBdIAogICAgICAgICAgICBmaXhlZCBieGVuZyBjc3MKIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjAgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuMCB1cGRhdGUKICAgICAgICBieQogICAgICAgIGFuZHJlYXMKICAgICAgICA6CiAgICAgICAgWzEuMF0gCiAgICAgICAgICAgIGFkZGVkIGJ4ZSBjc3MgaGFuZGxlcgogRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuMCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS4wIHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgYW5kcmVhcwogICAgICAgIDoKICAgICAgICBbMS4wXSAKICAgICAgICAgICAgYWRkZWQgeGh0bWwgY3NzCiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS4wIGFkZDwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjAgYWRkCiAgICAgICAgYnkKICAgICAgICBhbmRyZWFzCiAgICAgICAgOgogICAgICAgIFsxLjBdIAogICAgICAgICAgICBhZGRlZCBzaW1wbGUgZG9jdHlwZSBzY2hlbWEgcGxhY2Vob2xkZXIKIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjAgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuMCB1cGRhdGUKICAgICAgICBieQogICAgICAgIGFuZHJlYXMKICAgICAgICA6CiAgICAgICAgWzEuMF0gCiAgICAgICAgICAgIGFkZGVkIEJYRSBmb3IgWEhUTUwKIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjAgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuMCB1cGRhdGUKICAgICAgICBieQogICAgICAgIGFuZHJlYXMKICAgICAgICA6CiAgICAgICAgWzEuMF0gCiAgICAgICAgICAgIG1hZGUgZG9jdW1lbnQgYnVpbGRlciBjb25maWd1cmFibGUKIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjAgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuMCB1cGRhdGUKICAgICAgICBieQogICAgICAgIGFuZHJlYXMKICAgICAgICA6CiAgICAgICAgWzEuMF0gCiAgICAgICAgICAgIGFkZGVkIGRvY3VtZW50IGJ1aWxkZXIgY29uZmlndXJhdGlvbgogRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuMCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS4wIHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgYW5kcmVhcwogICAgICAgIDoKICAgICAgICBbMS4wXSAKICAgICAgICAgICAgcmVtb3ZlZCB1bnVzZWQgaW1wb3J0CiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS4wIHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjAgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBhbmRyZWFzCiAgICAgICAgOgogICAgICAgIFsxLjBdIAogICAgICAgICAgICBidWlsZCBkb2N1bWVudCBvbmx5IGFzIGl0IHdhcyByZXF1ZXN0ZWQKIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjAgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuMCB1cGRhdGUKICAgICAgICBieQogICAgICAgIG1pY2hpCiAgICAgICAgOgogICAgICAgIFsxLjBdIAogICAgICAgICAgICB0ZXN0cyBmaXhlZAogRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuMCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS4wIHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgbWljaGkKICAgICAgICA6CiAgICAgICAgWzEuMF0gCiAgICAgICAgICAgIGxvZ291dCBmaXhlZAogRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuMCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS4wIHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgYW5kcmVhcwogICAgICAgIDoKICAgICAgICBbMS4wXSAKICAgICAgICAgICAgcmVmbGVjdGluZyBjaGFuZ2VzIHRvIGFjY2VzcyBjb250cm9sCiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS4wIHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjAgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBtaWNoaQogICAgICAgIDoKICAgICAgICBbMS4wXSAKICAgICAgICAgICAgQUMgY29uZmlndXJhdGlvbiB1cGRhdGVkCiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS4wIHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjAgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBlZ2xpCiAgICAgICAgOgogICAgICAgIFsxLjBdIAogICAgICAgICAgICBQcm9wZXJseSBidWlsZCB0aGUgZG9jdW1lbnQgaWYgdGhlIGxhbmd1YWdlIGlzIG51bGwuCiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS4wIHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjAgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBlZ2xpCiAgICAgICAgOgogICAgICAgIFsxLjBdIAogICAgICAgICAgICBBZGFwdGVkIHRvIHRoZSBjaGFuZ2VkIGludGVyZmFjZSBpbiBEb2N1bWVudFJlZmVyZW5jZXNIZWxwZXIuCiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS4wIHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjAgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBlZ2xpCiAgICAgICAgOgogICAgICAgIFsxLjBdIAogICAgICAgICAgICBUaGUgRG9jdW1lbnRSZWZlcmVuY2VzSGVscGVyIG5vdyBjb3JyZWN0bHkgaGFuZGxlcyBtdWx0aWxpbmd1YWwKZG9jdW1lbnRzIHdoZW4gdHJ5aW5nIHRvIGZpbmQgb3V0IGFuIGludGVybmFsIGxpbmsgaXMgbm90IHB1Ymxpc2hlZAp5ZXQgYW5kIHdoZW4gYSByZWZlcmVuY2VkIGRvY3VtZW50IGlzIGRlYWN0aXZhdGVkLgogRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuMCBhZGQ8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS4wIGFkZAogICAgICAgIGJ5CiAgICAgICAgbWljaGkKICAgICAgICA6CiAgICAgICAgWzEuMF0gCiAgICAgICAgICAgIHRlc3RzIHNlcGFyYXRlZAogRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuMCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS4wIHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgZWdsaQogICAgICAgIDoKICAgICAgICBbMS4wXSAKICAgICAgICAgICAgQWRkZWQgbW9yZSBqYXZhZG9jcy4KIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjAgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuMCB1cGRhdGUKICAgICAgICBieQogICAgICAgIGFuZHJlYXMKICAgICAgICA6CiAgICAgICAgWzEuMF0gCiAgICAgICAgICAgIHJlZmxlY3RpbmcgY2hhbmdlcyB0byBhY2Nlc3MgY29udHJvbAogRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuMCByZW1vdmU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS4wIHJlbW92ZQogICAgICAgIGJ5CiAgICAgICAgYW5kcmVhcwogICAgICAgIDoKICAgICAgICBbMS4wXSAKICAgICAgICAgICAgLSBhZGRlZCBwb2xpY3kgY2xlYW4tdXAgd2hlbiBhY2NyZWRpdGFibGVzIGFyZSByZW1vdmVkCi0gaW1wcm92ZWQgUG9saWN5TWFuYWdlciB0eXBlIGhpZXJhcmNoeQogRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuMCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS4wIHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgZWdsaQogICAgICAgIDoKICAgICAgICBbMS4wXSAKICAgICAgICAgICAgQWRkZWQgYSBnZXRMYW5ndWFnZSBtZXRob2Qgd2hpY2ggYWxsb3dzIHlvdSB0byBxdWVyeSB0aGUgbGFuZ3VhZ2Ugb2YgYQpnaXZlbiBkb2N1bWVudCBmaWxlLgogRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuMCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS4wIHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgZWdsaQogICAgICAgIDoKICAgICAgICBbMS4wXSAKICAgICAgICAgICAgTWFrZSBzdXJlIHRoZSBsYW5ndWFnZSBwYXJ0IG9mIHRoZSBVUkwgaXMgbm90IHNpbXBseSBzd2FsbG93ZWQuCiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS4wIGFkZDwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjAgYWRkCiAgICAgICAgYnkKICAgICAgICBtaWNoaQogICAgICAgIDoKICAgICAgICBbMS4wXSAKICAgICAgICAgICAgVGVzdCBhZGRlZAogRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuMCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS4wIHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgbWljaGkKICAgICAgICA6CiAgICAgICAgWzEuMF0gCiAgICAgICAgICAgIHZlcnNpb24gbW92ZWQKIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjAgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuMCB1cGRhdGUKICAgICAgICBieQogICAgICAgIGVnbGkKICAgICAgICA6CiAgICAgICAgWzEuMF0gCiAgICAgICAgICAgIEZpeGVkIHRoZSByZWd1bGFyIGV4cHJlc3Npb24gc28gdGhhdCBsaW5rIGNoZWNraW5nIG9uIHB1Ymxpc2hpbmcgYW5kCmRlYWN0aXZhdGUgYWN0dWFsbHkgd29ya3MuCiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS4wIHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjAgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBlZ2xpCiAgICAgICAgOgogICAgICAgIFsxLjBdIAogICAgICAgICAgICBSZW1vdmVkIGFuIHVudXNlZCBpbXBvcnQuCiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS4wIHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjAgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBtaWNoaQogICAgICAgIDoKICAgICAgICBbMS4wXSAKICAgICAgICAgICAgbWl4ZWQgY29udGVudCBnZW5lcmFsaXplZAogRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuMCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS4wIHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgbWljaGkKICAgICAgICA6CiAgICAgICAgWzEuMF0gCiAgICAgICAgICAgIG1peGVkIGNvbnRlbnQgZml4ZWQgYW5kIGdlbmVyYWxpemVkCiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS4wIHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjAgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBhbmRyZWFzCiAgICAgICAgOgogICAgICAgIFsxLjBdIAogICAgICAgICAgICBpbnZva2luZyB3b3JrZmxvdyBvbiByb2xsYmFjawogRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuMCByZW1vdmU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS4wIHJlbW92ZQogICAgICAgIGJ5CiAgICAgICAgYW5kcmVhcwogICAgICAgIDoKICAgICAgICBbMS4wXSAKICAgICAgICAgICAgcmVwbGFjZWQgcmVkaXJlY3QtbGFuZ3VhZ2Ugd2l0aCByZWRpcmVjdC1kb2N1bWVudAogRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuMCBhZGQ8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS4wIGFkZAogICAgICAgIGJ5CiAgICAgICAgYW5kcmVhcwogICAgICAgIDoKICAgICAgICBbMS4wXSAKICAgICAgICAgICAgYWRkZWQgcmVkaXJlY3QtZG9jdW1lbnQgWFNQIGFuZCBYU0xUCiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS4wIHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjAgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBhbmRyZWFzCiAgICAgICAgOgogICAgICAgIFsxLjBdIAogICAgICAgICAgICByZWRpcmVjdGluZyB0byBuZXcgZG9jdW1lbnQgYWZ0ZXIgImNyZWF0ZSIKIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjAgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuMCB1cGRhdGUKICAgICAgICBieQogICAgICAgIGFuZHJlYXMKICAgICAgICA6CiAgICAgICAgWzEuMF0gCiAgICAgICAgICAgIGFkZGVkIGdldERvY3VtZW50VXJsKCkgbWV0aG9kCiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS4wIHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjAgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBhbmRyZWFzCiAgICAgICAgOgogICAgICAgIFsxLjBdIAogICAgICAgICAgICBtb3ZlZCBEb2N1bWVudEhlbHBlciB0byBwdWJsaWNhdGlvbiBwYWNrYWdlCiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS4wIGFkZDwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjAgYWRkCiAgICAgICAgYnkKICAgICAgICBhbmRyZWFzCiAgICAgICAgOgogICAgICAgIFsxLjBdIAogICAgICAgICAgICBtb3ZlZCBEb2N1bWVudEhlbHBlcgogRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuMCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS4wIHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgYW5kcmVhcwogICAgICAgIDoKICAgICAgICBbMS4wXSAKICAgICAgICAgICAgc2ltcGxpZmllZCBnZXRMYW5ndWFnZVZlcnNpb24oKSBtZXRob2QKIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjAgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuMCB1cGRhdGUKICAgICAgICBieQogICAgICAgIGFuZHJlYXMKICAgICAgICA6CiAgICAgICAgWzEuMF0gCiAgICAgICAgICAgIC0gZml4ZWQgc29tZSBqYXZhZG9jcwotIG9idGFpbmluZyBjb3JyZWN0IHBhcmVudCBpbiBEb2N1bWVudEhlbHBlcgotIG1vdmluZyBEb2N1bWVudEhlbHBlciB0byBwdWJsaWNhdGlvbiBwYWNrYWdlCiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS4wIGFkZDwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjAgYWRkCiAgICAgICAgYnkKICAgICAgICBlZGl0aAogICAgICAgIDoKICAgICAgICBbMS4wXSAKICAgICAgICAgICAgRG9jdSBmb3IgdGhlIHNpdGUgbWFuYWdlbWVudAogRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuMCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS4wIHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgZWRpdGgKICAgICAgICA6CiAgICAgICAgWzEuMF0gCiAgICAgICAgICAgIHJlbW92ZSB0aGUgcmVzb3VyY2UgZGlyIHByb3BlcnR5CiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS4wIHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjAgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBlZGl0aAogICAgICAgIDoKICAgICAgICBbMS4wXSAKICAgICAgICAgICAgamF2YSBkb2MKIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjAgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuMCB1cGRhdGUKICAgICAgICBieQogICAgICAgIGVkaXRoCiAgICAgICAgOgogICAgICAgIFsxLjBdIAogICAgICAgICAgICBjaGVjayBzdHlsZSBhbmQgamF2YSBkb2MKIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjAgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuMCB1cGRhdGUKICAgICAgICBieQogICAgICAgIHN0ZWZhbm8KICAgICAgICA6CiAgICAgICAgWzEuMF0gCiAgICAgICAgICAgIG1ha2UgaXQgY29tcGlsZSBhZ2FpbnN0IHRoZSBsYXRlc3QgZXhjYWxpYnVyLXhtbHV0aWwgc2hpcHBlZCBpbiBjb2Nvb24KIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjAgYWRkPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuMCBhZGQKICAgICAgICBieQogICAgICAgIAogICAgICAgIDoKICAgICAgICBbMS4wXSAKICAgICAgICAgICAgVGhpcyBjb21taXQgd2FzIG1hbnVmYWN0dXJlZCBieSBjdnMyc3ZuIHRvIGNyZWF0ZSB0YWcgJ1ZfMjAwMy0xMC0yOCcuIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjAgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuMCB1cGRhdGUKICAgICAgICBieQogICAgICAgIG1pY2hpCiAgICAgICAgOgogICAgICAgIFsxLjBdIAogICAgICAgICAgICB3ZWJkYXYgYW5kIHNsaWRlIGFuZCBsaW5vdHlwZSBpbmNsdWRlZAogRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuMCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS4wIHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgbWljaGkKICAgICAgICA6CiAgICAgICAgWzEuMF0gCiAgICAgICAgICAgIElQIGFkZHJlc3MgY2hlY2sgZml4ZWQKIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjAgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuMCB1cGRhdGUKICAgICAgICBieQogICAgICAgIG1pY2hpCiAgICAgICAgOgogICAgICAgIFsxLjBdIAogICAgICAgICAgICBJUCBhZGRyZXNzIGNoZWNrIGZpeGVkCiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS4wIHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjAgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBtaWNoaQogICAgICAgIDoKICAgICAgICBbMS4wXSAKICAgICAgICAgICAgT25lIEZvcm0gRWRpdG9yIGludGVncmF0ZWQKIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjAgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuMCB1cGRhdGUKICAgICAgICBieQogICAgICAgIG1pY2hpCiAgICAgICAgOgogICAgICAgIFsxLjBdIAogICAgICAgICAgICBlbXB0eSB0YWcgcHJvYmxlbSBmaXhlZAogRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuMCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS4wIHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgYW5kcmVhcwogICAgICAgIDoKICAgICAgICBbMS4wXSAKICAgICAgICAgICAgZml4ZWQgZGVhY3RpdmF0ZSBzY2hlZHVsZXIgZm9ybQogRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuMCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS4wIHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgYW5kcmVhcwogICAgICAgIDoKICAgICAgICBbMS4wXSAKICAgICAgICAgICAgaW5jcmVhc2luZyBwYXJ0IGluIGxvb3AKIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjAgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuMCB1cGRhdGUKICAgICAgICBieQogICAgICAgIGFuZHJlYXMKICAgICAgICA6CiAgICAgICAgWzEuMF0gCiAgICAgICAgICAgIGFkZGVkIGphdmFkb2NzIGFuZCBmaXhtZQogRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuMCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS4wIHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgYW5kcmVhcwogICAgICAgIDoKICAgICAgICBbMS4wXSAKICAgICAgICAgICAgY29tbWVudGVkIG91dCBMREFQIHVzZXIgY2hlY2sKIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjAgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuMCB1cGRhdGUKICAgICAgICBieQogICAgICAgIGVnbGkKICAgICAgICA6CiAgICAgICAgWzEuMF0gCiAgICAgICAgICAgIEFkZGVkIGxpbmsgdG8gYXNzZXQgbWFuYWdlbWVudC4KIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjAgYWRkPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuMCBhZGQKICAgICAgICBieQogICAgICAgIGVnbGkKICAgICAgICA6CiAgICAgICAgWzEuMF0gCiAgICAgICAgICAgIEFkZGVkIGZpcnN0IGRyYWZ0IG9mIGFzc2V0IG1hbmFnZW1lbnQgZG9jdS4KIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjAgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuMCB1cGRhdGUKICAgICAgICBieQogICAgICAgIGFuZHJlYXMKICAgICAgICA6CiAgICAgICAgWzEuMF0gCiAgICAgICAgICAgIGNvbnZlcnRpbmcgY29uZmlnRGlyIHRvIEZpbGUKIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjAgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuMCB1cGRhdGUKICAgICAgICBieQogICAgICAgIGFuZHJlYXMKICAgICAgICA6CiAgICAgICAgWzEuMF0gCiAgICAgICAgICAgIGNvbnZlcnRpbmcgY29uZmlnRGlyIHRvIEZpbGUKIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjAgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuMCB1cGRhdGUKICAgICAgICBieQogICAgICAgIGFuZHJlYXMKICAgICAgICA6CiAgICAgICAgWzEuMF0gCiAgICAgICAgICAgIGNvbnZlcnRpbmcgY29uZmlnRGlyIHRvIFN0cmluZwogRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuMCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS4wIHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgYW5kcmVhcwogICAgICAgIDoKICAgICAgICBbMS4wXSAKICAgICAgICAgICAgYWRkZWQgY3RvciB3aXRoIGNvbmZpZ3VyYXRpb24gZGlyZWN0b3J5CiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS4wIHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjAgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBhbmRyZWFzCiAgICAgICAgOgogICAgICAgIFsxLjBdIAogICAgICAgICAgICBjb25maWd1cmluZyBMREFQIHVzZXIKIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjAgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuMCB1cGRhdGUKICAgICAgICBieQogICAgICAgIGFuZHJlYXMKICAgICAgICA6CiAgICAgICAgWzEuMF0gCiAgICAgICAgICAgIGNoZWNraW5nIGlmIGNvbnRleHQgaXMgbnVsbAogRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuMCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS4wIHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgYW5kcmVhcwogICAgICAgIDoKICAgICAgICBbMS4wXSAKICAgICAgICAgICAgYWRkZWQgUGFja2FnZXMgc3RhdGVtZW50IGZvciBMREFQIHVzZXIKIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjAgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuMCB1cGRhdGUKICAgICAgICBieQogICAgICAgIGVnbGkKICAgICAgICA6CiAgICAgICAgWzEuMF0gCiAgICAgICAgICAgIEFkZGVkIGEgaGludCBhcyB0byBob3cgdGhlIGV4dGVybmFsIGFuZCB0aGUgaW50ZXJuYWwgbGlua3MgaGF2ZSB0bwpsb29rIGxpa2UuCiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS4wIHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjAgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBhbmRyZWFzCiAgICAgICAgOgogICAgICAgIFsxLjBdIAogICAgICAgICAgICBmaXhlZCB1bnRlcm1pbmF0ZWQgc3RyaW5nIGxpdGVyYWwKIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjAgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuMCB1cGRhdGUKICAgICAgICBieQogICAgICAgIGFuZHJlYXMKICAgICAgICA6CiAgICAgICAgWzEuMF0gCiAgICAgICAgICAgIGVzY2FwaW5nIGRvdCBpbiByZWdleHAKIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjAgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuMCB1cGRhdGUKICAgICAgICBieQogICAgICAgIGFuZHJlYXMKICAgICAgICA6CiAgICAgICAgWzEuMF0gCiAgICAgICAgICAgIGNoZWNraW5nIGlmIExEQVAgdXNlciBleGlzdHMKIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjAgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuMCB1cGRhdGUKICAgICAgICBieQogICAgICAgIGFuZHJlYXMKICAgICAgICA6CiAgICAgICAgWzEuMF0gCiAgICAgICAgICAgIGFkZGVkIGV4aXN0c1VzZXIoKSBtZXRob2QKIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjAgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuMCB1cGRhdGUKICAgICAgICBieQogICAgICAgIGVnbGkKICAgICAgICA6CiAgICAgICAgWzEuMF0gCiAgICAgICAgICAgIEZpeGVkIHRoZSBwcm9ibGVtIGluIHRoZSByZXNvdXJjZSBwdWJsaXNoZXIgdGhhdCBpdCB3b3VsZCBvbmx5IHB1Ymxpc2gKcmVzb3VyY2VzIHdpdGhvdXQgdGhlIGFzc29jaWF0ZWQgbWV0YSBkYXRhIGZpbGVzLgogRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuMCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS4wIHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgZWdsaQogICAgICAgIDoKICAgICAgICBbMS4wXSAKICAgICAgICAgICAgRml4ZWQgdGhlIHJlZGlyZWN0aW9uIGZvciBhc3NldCB1cGxvYWQgaW4gdGhlIHVzZWNhc2Ugc2l0ZW1hcCBzbyB0aGF0Cml0IHJlZGlyZWN0cyBiYWNrIHRvIHRoZSBhc3NldCBzY3JlZW4uCiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS4wIHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjAgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBhbmRyZWFzCiAgICAgICAgOgogICAgICAgIFsxLjBdIAogICAgICAgICAgICBmb3J3YXJkaW5nIGxlbnlhLmV2ZW50IGZvciByZW5hbWUtbGFiZWwKIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjAgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuMCB1cGRhdGUKICAgICAgICBieQogICAgICAgIGVnbGkKICAgICAgICA6CiAgICAgICAgWzEuMF0gCiAgICAgICAgICAgIEZpeGVkIGEgc3BlbGxpbmcgcHJvYmxlbSBpbiB0aGUgIkRlZmF1bHQgQ2FwdGlvbiIuCiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS4wIHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjAgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBhbmRyZWFzCiAgICAgICAgOgogICAgICAgIFsxLjBdIAogICAgICAgICAgICBjaGVja2luZyBhbGwgYWRkcmVzcyBwYXJ0cwogRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuMCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS4wIHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgbWljaGkKICAgICAgICA6CiAgICAgICAgWzEuMF0gCiAgICAgICAgICAgIG9uZSBmb3JtIGVkaXRvciBhZGRlZAogRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuMCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS4wIHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgbWljaGkKICAgICAgICA6CiAgICAgICAgWzEuMF0gCiAgICAgICAgICAgIGNsYXNzIGNsZWFuZWQgdXAKIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjAgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuMCB1cGRhdGUKICAgICAgICBieQogICAgICAgIGFuZHJlYXMKICAgICAgICA6CiAgICAgICAgWzEuMF0gCiAgICAgICAgICAgIHVzaW5nIGxlbnlhLmV2ZW50IHJlcXVlc3QgcGFyYW1ldGVyIGlmIHdvcmtmbG93LmV2ZW50IHdhcyBub3QgZm91bmQKIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjAgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuMCB1cGRhdGUKICAgICAgICBieQogICAgICAgIGFuZHJlYXMKICAgICAgICA6CiAgICAgICAgWzEuMF0gCiAgICAgICAgICAgIHVzaW5nIGNvbXBsZXRlIGFyZWEKIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjAgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuMCB1cGRhdGUKICAgICAgICBieQogICAgICAgIGFuZHJlYXMKICAgICAgICA6CiAgICAgICAgWzEuMF0gCiAgICAgICAgICAgIHJlZGlyZWN0aW5nIHRvIHBhcmVudCBVUkwgYWZ0ZXIgZGVsZXRlIGFuZCBhcmNoaXZlCiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS4wIHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjAgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBhbmRyZWFzCiAgICAgICAgOgogICAgICAgIFsxLjBdIAogICAgICAgICAgICBhZGRlZCBnZXRDb21wbGV0ZUFyZWEoKQogRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuMCBhZGQ8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS4wIGFkZAogICAgICAgIGJ5CiAgICAgICAgYW5kcmVhcwogICAgICAgIDoKICAgICAgICBbMS4wXSAKICAgICAgICAgICAgYWRkZWQgRG9jdW1lbnRIZWxwZXIKIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjAgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuMCB1cGRhdGUKICAgICAgICBieQogICAgICAgIGFuZHJlYXMKICAgICAgICA6CiAgICAgICAgWzEuMF0gCiAgICAgICAgICAgIHJlZGlyZWN0aW5nIHRvIHBhcmVudCBVUkwgYWZ0ZXIgZGVsZXRlIGFuZCBhcmNoaXZlCiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS4wIHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjAgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBhbmRyZWFzCiAgICAgICAgOgogICAgICAgIFsxLjBdIAogICAgICAgICAgICBvbmx5IHdoaXRlc3BhY2UgY2hhbmdlcwogRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuMCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS4wIHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgYW5kcmVhcwogICAgICAgIDoKICAgICAgICBbMS4wXSAKICAgICAgICAgICAgcmVtb3ZpbmcgZW1wdHkgY3JlZGVudGlhbCBmcm9tIHBvbGljeQogRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuMCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS4wIHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgYW5kcmVhcwogICAgICAgIDoKICAgICAgICBbMS4wXSAKICAgICAgICAgICAgcmVkZXNpZ25lZCBzY2hlZHVsZXIgaW50ZXJmYWNlCiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS4wIHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjAgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBhbmRyZWFzCiAgICAgICAgOgogICAgICAgIFsxLjBdIAogICAgICAgICAgICBpbXByb3ZlZCBsb2dnaW5nCiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS4wIGFkZDwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjAgYWRkCiAgICAgICAgYnkKICAgICAgICBhbmRyZWFzCiAgICAgICAgOgogICAgICAgIFsxLjBdIAogICAgICAgICAgICAtIGltcHJvdmVkIGxvZ2dpbmcKLSBkb24ndCB0aHJvdyBleGNlcHRpb24gd2hlbiBUYXNrSm9iIGV4ZWN1dGlvbiBmYWlscwogRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuMCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS4wIHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgYW5kcmVhcwogICAgICAgIDoKICAgICAgICBbMS4wXSAKICAgICAgICAgICAgb25seSB3aGl0ZXNwYWNlIGNoYW5nZXMKIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjAgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuMCB1cGRhdGUKICAgICAgICBieQogICAgICAgIGFuZHJlYXMKICAgICAgICA6CiAgICAgICAgWzEuMF0gCiAgICAgICAgICAgIGNoZWNraW5nIGlmICZsdDt1c2VyJmd0OyBlbG1lbnQgZXhpc3RzIHdoZW4gcmVzdG9yaW5nIHZlcnNpb24KIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjAgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuMCB1cGRhdGUKICAgICAgICBieQogICAgICAgIG1pY2hpCiAgICAgICAgOgogICAgICAgIFsxLjBdIAogICAgICAgICAgICBhdXRob3IgbGluayBmaXhlZAogRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuMCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS4wIHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgbWljaGkKICAgICAgICA6CiAgICAgICAgWzEuMF0gCiAgICAgICAgICAgIG1vcmUgbWVhbmluZy1mdWxsIGRhdGEgYWRkZWQKIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjAgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuMCB1cGRhdGUKICAgICAgICBieQogICAgICAgIG1pY2hpCiAgICAgICAgOgogICAgICAgIFsxLjBdIAogICAgICAgICAgICBzb21lIG1lYW5pbmdmdWwgZGF0YSBhZGRlZAogRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuMCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS4wIHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgbWljaGkKICAgICAgICA6CiAgICAgICAgWzEuMF0gCiAgICAgICAgICAgIGF1dGhvciBsaW5rIGZpeGVkCiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS4wIGFkZDwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjAgYWRkCiAgICAgICAgYnkKICAgICAgICBtaWNoaQogICAgICAgIDoKICAgICAgICBbMS4wXSAKICAgICAgICAgICAgQ29jb29uIGJ1aWxkIHByb3BlcnRpZXMgZmlsZXMKIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjAgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuMCB1cGRhdGUKICAgICAgICBieQogICAgICAgIG1pY2hpCiAgICAgICAgOgogICAgICAgIFsxLjBdIAogICAgICAgICAgICByZXF1ZXN0IHBhcmFtZXRlciByZW5hbWVkIHRvIGZvcm0KIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjAgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuMCB1cGRhdGUKICAgICAgICBieQogICAgICAgIG1pY2hpCiAgICAgICAgOgogICAgICAgIFsxLjBdIAogICAgICAgICAgICBhbHNvIGV4cG9ydCBmZWVkCiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS4wIGFkZDwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjAgYWRkCiAgICAgICAgYnkKICAgICAgICBhbmRyZWFzCiAgICAgICAgOgogICAgICAgIFsxLjBdIAogICAgICAgICAgICAtIGltcGxlbWVudGVkIEJYRSBhcyB1c2VjYXNlCi0gYWRkZWQgWEhUTUwgaGFuZGxpbmcgZm9yIEJYRQogRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuMCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS4wIHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgYW5kcmVhcwogICAgICAgIDoKICAgICAgICBbMS4wXSAKICAgICAgICAgICAgcmVuYW1lZCBzdGF0ZSAicmVkYWt0aW9uIiB0byAiYXV0aG9yaW5nIgogRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuMCBhZGQ8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS4wIGFkZAogICAgICAgIGJ5CiAgICAgICAgYW5kcmVhcwogICAgICAgIDoKICAgICAgICBbMS4wXSAKICAgICAgICAgICAgYWRkaW5nIHdvcmtmbG93IGhpc3RvcnkgZmlsZXMKIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjAgYWRkPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuMCBhZGQKICAgICAgICBieQogICAgICAgIGFuZHJlYXMKICAgICAgICA6CiAgICAgICAgWzEuMF0gCiAgICAgICAgICAgIGFkZGVkIFhIVE1MIDEuMSBEVEQKIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjAgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuMCB1cGRhdGUKICAgICAgICBieQogICAgICAgIG1pY2hpCiAgICAgICAgOgogICAgICAgIFsxLjBdIAogICAgICAgICAgICBtaWNoaSByZW1vdmVkCiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS4wIHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjAgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBtaWNoaQogICAgICAgIDoKICAgICAgICBbMS4wXSAKICAgICAgICAgICAgbWljaGkgYW5kIG1pY2hpaWkgcmVtb3ZlZAogRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuMCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS4wIHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgbWljaGkKICAgICAgICA6CiAgICAgICAgWzEuMF0gCiAgICAgICAgICAgIG5ldHdvcmsgYWRkcmVzcyBhbmQgbWFzayBhZGRlZAogRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuMCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS4wIHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgc3RlZmFubwogICAgICAgIDoKICAgICAgICBbMS4wXSAKICAgICAgICAgICAgY2xlYW5pbmcgdXAgdW51c2VkIGltcG9ydHMKIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjAgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuMCB1cGRhdGUKICAgICAgICBieQogICAgICAgIGdyZWdvcgogICAgICAgIDoKICAgICAgICBbMS4wXSAKICAgICAgICAgICAgcmVtb3ZlIHVuZWNjZXNhcnkgZnVuY3Rpb24KIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjAgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuMCB1cGRhdGUKICAgICAgICBieQogICAgICAgIGdyZWdvcgogICAgICAgIDoKICAgICAgICBbMS4wXSAKICAgICAgICAgICAgbWFkZSBjb250ZW50IHVwbG9hZCB3b3JrIGZvciBkaWZmZXJlbnQgcGF0aCBtYXBwaW5ncwogRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuMCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS4wIHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgbWljaGkKICAgICAgICA6CiAgICAgICAgWzEuMF0gCiAgICAgICAgICAgIG1pZ3JhdGVkIHRvIG5ldyBtZW51IGdlbmVyYXRpb24KIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjAgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuMCB1cGRhdGUKICAgICAgICBieQogICAgICAgIG1pY2hpCiAgICAgICAgOgogICAgICAgIFsxLjBdIAogICAgICAgICAgICBpbmZvL3NpdGUgdGFiIGlzIG5vdyBjb25maWd1cmFibGUKIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjAgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuMCB1cGRhdGUKICAgICAgICBieQogICAgICAgIGVkaXRoCiAgICAgICAgOgogICAgICAgIFsxLjBdIAogICAgICAgICAgICBjb3B5IG1ldGEKIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjAgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuMCB1cGRhdGUKICAgICAgICBieQogICAgICAgIGVnbGkKICAgICAgICA6CiAgICAgICAgWzEuMF0gCiAgICAgICAgICAgIEludGVybmFsIGxpbmsgbm93IGJ5IGRlZmluaXRpb24gbm8gbG9uZ2VyIGNvbnRhaW4gdGhlCmh0dHA6Ly9zZXJ2ZXJOYW1lOnNlcnZlclBvcnQgcGFydCwgYnV0IHNpbXBseQovJGNvbnRleHQtcHJlZml4LyRwdWJsaWNhdGlvbi1pZC8uLi4uCiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS4wIHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjAgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBlZ2xpCiAgICAgICAgOgogICAgICAgIFsxLjBdIAogICAgICAgICAgICBNYWtlIHN1cmUgdGhlIGNvbnRleHQtcHJlZml4IHRoYXQgaXMgcmV0dXJuZWQgYnkgdGhlCkRlZmF1bHRUYXNrV3JhcHBlciBpcyB0aGUgc2FtZSBhcyB0aGUgY29udGV4dC1wcmVmaXggdGhhdCBpcyByZXR1cm5lZApieSB0aGUgUGFnZUVudmVsb3BlLgogRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuMCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS4wIHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgZWdsaQogICAgICAgIDoKICAgICAgICBbMS4wXSAKICAgICAgICAgICAgUGFzcyB0aGUgY29udGV4dC1wcmVmaXggdG8gdGhlIFB1YmxpY2F0aW9uVGFzay4KIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjAgYWRkPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuMCBhZGQKICAgICAgICBieQogICAgICAgIGVnbGkKICAgICAgICA6CiAgICAgICAgWzEuMF0gCiAgICAgICAgICAgIEFkZGVkIGEgdGFzayB0aGF0IHRha2VzIGNhcmUgb2YgaW50ZXJuYWwgbGluayByZXdyaXRpbmcgdXBvbgpjdXQnbidwYXN0ZS4KIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjAgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuMCB1cGRhdGUKICAgICAgICBieQogICAgICAgIGVnbGkKICAgICAgICA6CiAgICAgICAgWzEuMF0gCiAgICAgICAgICAgIERvY3VtZW50YXRpb24gZml4ZXMuCiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS4wIGFkZDwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjAgYWRkCiAgICAgICAgYnkKICAgICAgICBtaWNoaQogICAgICAgIDoKICAgICAgICBbMS4wXSAKICAgICAgICAgICAgbWlncmF0ZWQgdG8gbmV3IG1lbnUgZ2VuZXJhdGlvbiBtZXRob2QKIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjAgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuMCB1cGRhdGUKICAgICAgICBieQogICAgICAgIGVkaXRoCiAgICAgICAgOgogICAgICAgIFsxLjBdIAogICAgICAgICAgICBSQyBkb2N1bWVudGF0aW9uCiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS4wIGFkZDwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjAgYWRkCiAgICAgICAgYnkKICAgICAgICBlZGl0aAogICAgICAgIDoKICAgICAgICBbMS4wXSAKICAgICAgICAgICAgRG9jdW1lbnRhdGlvbiBmb3IgdGhlIFJDCiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS4wIHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjAgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBlZGl0aAogICAgICAgIDoKICAgICAgICBbMS4wXSAKICAgICAgICAgICAgSmF2YSBkb2MKY2FsbCBvZiBwcnVuZUVudGl0aWVzKHJjYmFja0RpcmVjdG9yeSkgYWZ0ZXIgY2hlY2tpbgogRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuMCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS4wIHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgZWRpdGgKICAgICAgICA6CiAgICAgICAgWzEuMF0gCiAgICAgICAgICAgIEphdmEgZG9jCnBydW5lRW50aXRpZXMoU3RyaW5nIHJjYmFja0RpcmVjdG9yeSkKIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjAgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuMCB1cGRhdGUKICAgICAgICBieQogICAgICAgIGFuZHJlYXMKICAgICAgICA6CiAgICAgICAgWzEuMF0gCiAgICAgICAgICAgIGFkZGVkIGVycm9yIGhhbmRsaW5nCiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS4wIHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjAgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBhbmRyZWFzCiAgICAgICAgOgogICAgICAgIFsxLjBdIAogICAgICAgICAgICBhZGRlZCBFeGNlcHRpb25TZWxlY3RvciBkZWNsYXJhdGlvbgogRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuMCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS4wIHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgYW5kcmVhcwogICAgICAgIDoKICAgICAgICBbMS4wXSAKICAgICAgICAgICAgY2hhbmdlZCBpbmZvIGxpbmUgZm9udCwgZmFjdG9yZWQgb3V0IHRvIENTUwogRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuMCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS4wIHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgYW5kcmVhcwogICAgICAgIDoKICAgICAgICBbMS4wXSAKICAgICAgICAgICAgYWRkZWQgbXlzZWxmIGFzIGF1dGhvcgogRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuMCBhZGQ8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS4wIGFkZAogICAgICAgIGJ5CiAgICAgICAgYW5kcmVhcwogICAgICAgIDoKICAgICAgICBbMS4wXSAKICAgICAgICAgICAgYWRkZWQgcGFnZSBwcm9jZXNzaW5nIGRpYWdyYW0KIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjAgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuMCB1cGRhdGUKICAgICAgICBieQogICAgICAgIGFuZHJlYXMKICAgICAgICA6CiAgICAgICAgWzEuMF0gCiAgICAgICAgICAgIGFkZGVkIHNvbWUgbWVudWJhciBkb2N1bWVudGF0aW9uCiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS4wIHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjAgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBhbmRyZWFzCiAgICAgICAgOgogICAgICAgIFsxLjBdIAogICAgICAgICAgICByZW1vdmVkIGluaXRpYWxpemF0aW9uIG9mIERvY3VtZW50SWRUb1BhdGhNYXBwZXIKIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjAgcmVtb3ZlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuMCByZW1vdmUKICAgICAgICBieQogICAgICAgIG1pY2hpCiAgICAgICAgOgogICAgICAgIFsxLjBdIAogICAgICAgICAgICBvYnNvbGV0ZSBhbmQgcmVwbGFjZWQgYnkgdXRpbC54bWwKIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjAgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuMCB1cGRhdGUKICAgICAgICBieQogICAgICAgIG1pY2hpCiAgICAgICAgOgogICAgICAgIFsxLjBdIAogICAgICAgICAgICBsZW55YSBtZW51YmFyIGRvY3UgYWRkZWQKIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjAgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuMCB1cGRhdGUKICAgICAgICBieQogICAgICAgIG1pY2hpCiAgICAgICAgOgogICAgICAgIFsxLjBdIAogICAgICAgICAgICBub3RlIGFib3V0IGVuZG9yc2VkIGxpYnJhcmllcyBhZGRlZAogRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuMCByZW1vdmU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS4wIHJlbW92ZQogICAgICAgIGJ5CiAgICAgICAgbWljaGkKICAgICAgICA6CiAgICAgICAgWzEuMF0gCiAgICAgICAgICAgIGJhY2t1cCByZW1vdmVkCiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS4wIHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjAgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBhbmRyZWFzCiAgICAgICAgOgogICAgICAgIFsxLjBdIAogICAgICAgICAgICByZWRpcmVjdGluZyB0byBzYW1lIGFyZWEgYWZ0ZXIgcmVtb3ZpbmcgbGFuZ3VhZ2UgdmVyc2lvbgogRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuMCBhZGQ8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS4wIGFkZAogICAgICAgIGJ5CiAgICAgICAgYW5kcmVhcwogICAgICAgIDoKICAgICAgICBbMS4wXSAKICAgICAgICAgICAgcmVkaXJlY3RpbmcgdG8gbmV3IGxhbmd1YWdlIHZlcnNpb24gYWZ0ZXIgY3JlYXRlLWxhbmd1YWdlCiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS4wIHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjAgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBhbmRyZWFzCiAgICAgICAgOgogICAgICAgIFsxLjBdIAogICAgICAgICAgICByZW1vdmVkIHVubmVjZXNzYXJ5IGNhc3RzL3ZhcmlhYmxlcwogRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuMCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS4wIHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgYW5kcmVhcwogICAgICAgIDoKICAgICAgICBbMS4wXSAKICAgICAgICAgICAgZml4ZWQgYnVpbGRDYW5vbmljYWxVcmwoKSBhbmQgYnVpbGRMYW5ndWFnZVZlcnNpb24oKSBidWdzCiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS4wIHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjAgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBtaWNoaQogICAgICAgIDoKICAgICAgICBbMS4wXSAKICAgICAgICAgICAgaW5zdHJ1Y3Rpb25zIGZvciBiaW5hcnkgaW5zdGFsbGF0aW9uIGFkZGVkCiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS4wIHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjAgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBncmVnb3IKICAgICAgICA6CiAgICAgICAgWzEuMF0gCiAgICAgICAgICAgIG1hZGUgbG9nZ2luZyBsZXNzIHZlcmJvc2UgYnkgZGVmYXVsdAphZGRlZCBzb21lIG1vcmUgY29tbWVudHMKIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjAgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuMCB1cGRhdGUKICAgICAgICBieQogICAgICAgIG1pY2hpCiAgICAgICAgOgogICAgICAgIFsxLjBdIAogICAgICAgICAgICBtZXNzYWdlIG9mIGV4Y2VwdGlvbiBzbGlnaHRseSBpbXByb3ZlZAogRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuMCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS4wIHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgbWljaGkKICAgICAgICA6CiAgICAgICAgWzEuMF0gCiAgICAgICAgICAgIGluc3RhbGwgaW5zdHJ1Y3Rpb25zIGFkZGVkCiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS4wIHJlbW92ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjAgcmVtb3ZlCiAgICAgICAgYnkKICAgICAgICBncmVnb3IKICAgICAgICA6CiAgICAgICAgWzEuMF0gCiAgICAgICAgICAgIHJlbW92ZSBvbGQgYml0Zmx1eAogRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuMCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS4wIHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgZ3JlZ29yCiAgICAgICAgOgogICAgICAgIFsxLjBdIAogICAgICAgICAgICBhZGRlZCBzYW1wbGUgY29uZmlndXJhdGlvbiBmb3Igd2luZG93cwogRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuMCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS4wIHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgZ3JlZ29yCiAgICAgICAgOgogICAgICAgIFsxLjBdIAogICAgICAgICAgICByZW1vdmVkIG9ic29sZXRlIGRvY3MKIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjAgcmVtb3ZlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuMCByZW1vdmUKICAgICAgICBieQogICAgICAgIGdyZWdvcgogICAgICAgIDoKICAgICAgICBbMS4wXSAKICAgICAgICAgICAgcmVtb3ZlIG9sZCBpbWFnZSB1cGxvYWQKIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjAgYWRkPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuMCBhZGQKICAgICAgICBieQogICAgICAgIGdyZWdvcgogICAgICAgIDoKICAgICAgICBbMS4wXSAKICAgICAgICAgICAgbWFrZSB1cGxvYWQgYWN0aW9uIG1vcmUgZ2VuZXJpYwogRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuMCByZW1vdmU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS4wIHJlbW92ZQogICAgICAgIGJ5CiAgICAgICAgZ3JlZ29yCiAgICAgICAgOgogICAgICAgIFsxLjBdIAogICAgICAgICAgICByZW1vdmUgdW5pcHVibGljIGZyb20gbGVueWEgY3ZzIGJlY2F1c2UgaXQgaXMgbGVnYWN5IGNvZGUKCml0IHdpbGwgYmUgYXZhaWxhYmxlIGZyb20gd3lvbmEub3JnIGZyb20gbm93IG9uCiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS4wIHJlbW92ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjAgcmVtb3ZlCiAgICAgICAgYnkKICAgICAgICBncmVnb3IKICAgICAgICA6CiAgICAgICAgWzEuMF0gCiAgICAgICAgICAgIHJlbW92ZSB4b3B1cyBhbmQgb2xkIGJpdGZsdXggZnJvbSBkb2NzIHB1YmxpY2F0aW9uCiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS4wIHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjAgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBhbmRyZWFzCiAgICAgICAgOgogICAgICAgIFsxLjBdIAogICAgICAgICAgICBtYWRlIGdldEluc3RhbmNlKCkgcHVibGljIGFnYWluCiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS4wIHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjAgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBhbmRyZWFzCiAgICAgICAgOgogICAgICAgIFsxLjBdIAogICAgICAgICAgICByZXBsYWNpbmcgRGVmYXVsdERvY3VtZW50YnVpbGRlciB3aXRoIHB1YmxpY2F0aW9uLmdldERvY3VtZW50QnVpbGRlcigpCiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS4wIHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjAgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBhbmRyZWFzCiAgICAgICAgOgogICAgICAgIFsxLjBdIAogICAgICAgICAgICBzYXZpbmcgJmFtcDsgbG9hZGluZyBJUCByYW5nZXMKIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjAgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuMCB1cGRhdGUKICAgICAgICBieQogICAgICAgIGFuZHJlYXMKICAgICAgICA6CiAgICAgICAgWzEuMF0gCiAgICAgICAgICAgIGFkZGVkIGxvZzRqIGxvZ2dpbmcKIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjAgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuMCB1cGRhdGUKICAgICAgICBieQogICAgICAgIG1pY2hpCiAgICAgICAgOgogICAgICAgIFsxLjBdIAogICAgICAgICAgICBhbGwgZmllbGRzIGFkZGVkCiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS4wIHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjAgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBtaWNoaQogICAgICAgIDoKICAgICAgICBbMS4wXSAKICAgICAgICAgICAgbWl4ZWQgY29udGVudCB0byBzaWRlYmFyIGFkZGVkCiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS4wIHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjAgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBhbmRyZWFzCiAgICAgICAgOgogICAgICAgIFsxLjBdIAogICAgICAgICAgICBwcm9wZXIgbmFtZSBmb3IgY29jb29uY2VudGVyCiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS4wIHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjAgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBtaWNoaQogICAgICAgIDoKICAgICAgICBbMS4wXSAKICAgICAgICAgICAgc3VtbWFyeSBhbmQgeGh0bWwgY29udGVudCBmaXhlZAogRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuMCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS4wIHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgbWljaGkKICAgICAgICA6CiAgICAgICAgWzEuMF0gCiAgICAgICAgICAgIFhIVE1MIGNvbnRlbnQgZmllbGQgYWRkZWQKIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjAgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuMCB1cGRhdGUKICAgICAgICBieQogICAgICAgIG1pY2hpCiAgICAgICAgOgogICAgICAgIFsxLjBdIAogICAgICAgICAgICBYVXBkYXRlVXBkYXRlIHdvcmthcm91bmQgZml4ZWQKIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjAgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuMCB1cGRhdGUKICAgICAgICBieQogICAgICAgIG1pY2hpCiAgICAgICAgOgogICAgICAgIFsxLjBdIAogICAgICAgICAgICBzdWJ0aXRsZSByZW1vdmVkCiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS4wIHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjAgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBtaWNoaQogICAgICAgIDoKICAgICAgICBbMS4wXSAKICAgICAgICAgICAgZm9vdGVyIGFkZGVkCiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS4wIHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjAgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBtaWNoaQogICAgICAgIDoKICAgICAgICBbMS4wXSAKICAgICAgICAgICAgSmF2YSBEb2NzIGhvd3RvIGFkZGVkCiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS4wIHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjAgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBtaWNoaQogICAgICAgIDoKICAgICAgICBbMS4wXSAKICAgICAgICAgICAgZG9tYWluIHN1ZmZpeCBmaXhlZAogRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuMCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS4wIHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgYW5kcmVhcwogICAgICAgIDoKICAgICAgICBbMS4wXSAKICAgICAgICAgICAgbW92ZWQgY2hvaWNlIG9mIGV4aXN0aW5nIGxhbmd1YWdlIGxhYmVsIHRvIHNpdGV0cmVlMm5hdi54c2wKIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjAgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuMCB1cGRhdGUKICAgICAgICBieQogICAgICAgIG1pY2hpCiAgICAgICAgOgogICAgICAgIFsxLjBdIAogICAgICAgICAgICBlY2hvIHN0YXRlbWVudCBmaXhlZAogRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuMCBhZGQ8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS4wIGFkZAogICAgICAgIGJ5CiAgICAgICAgZWdsaQogICAgICAgIDoKICAgICAgICBbMS4wXSAKICAgICAgICAgICAgVGhpcyBzaW1wbGUgbGluayByZXdyaXRpbmcgdHJhbnNmb3JtZXIgaXMgdXNlZCBmb3IgTGluawpNYW5hZ2VtZW50LiBMaW5rcyB0aGF0IGxvb2sgbGlrZSBpbnRlcm5hbCBsaW5rcyAoY3VycmVudGx5Cmh0dHA6Ly8kaG9zdG5hbWU6JHBvcnRuYW1lLyRjb250ZXh0LXByZWZpeC8kcHVibGljYXRpb24taWQvYXV0aG9yaW5nLyRkb2N1bWVudC1pZAphcmUgcmV3cml0dGVuIGZvciB0aGUgYXBwcm9wcmlhdGUgYXJlYS4KIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjAgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuMCB1cGRhdGUKICAgICAgICBieQogICAgICAgIG1pY2hpCiAgICAgICAgOgogICAgICAgIFsxLjBdIAogICAgICAgICAgICBzZXJ2ZXIgcG9ydCBhbmQgY29udGV4dCBwYXRoIGFkZGVkCiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS4wIHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjAgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBhbmRyZWFzCiAgICAgICAgOgogICAgICAgIFsxLjBdIAogICAgICAgICAgICBjaGVja2luZyBpZiBtZXNzYWdlcyBsaXN0IGlzIG51bGwgKG5vdCB1c2VkIGluICJjaGFuZ2UgcHJvZmlsZSIgc2NyZWVuKQogRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuMCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS4wIHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgZ3JlZ29yCiAgICAgICAgOgogICAgICAgIFsxLjBdIAogICAgICAgICAgICBhZGQgbWlzc2luZyB0cmFpbGluZyBzbGFzaGVzLiBzaG91bGQgZml4IHRoZSBuYXZpZ2F0aW9uIGZvciB0aGUgZG9jcwogRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuMCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS4wIHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgYW5kcmVhcwogICAgICAgIDoKICAgICAgICBbMS4wXSAKICAgICAgICAgICAgc2V0IGhvdmVyIHN0eWxlIG9ubHkgZm9yICZsdDthJmd0OyBpdGVtcwogRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuMCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS4wIHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgZWdsaQogICAgICAgIDoKICAgICAgICBbMS4wXSAKICAgICAgICAgICAgQWRkZWQgbW9yZSBkb2N1IHRvIHRoZSBGSVhNRToKIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjAgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuMCB1cGRhdGUKICAgICAgICBieQogICAgICAgIGVnbGkKICAgICAgICA6CiAgICAgICAgWzEuMF0gCiAgICAgICAgICAgIExpbmsgTWFuYWdlbWVudCBub3cgYXNzdW1lcyB0aGF0IGludGVybmFsIGxpbmtzIGFyZSBvZiB0aGUgZm9ybQpocmVmPSJodHRwOi8vJFNFUlZFUl9OQU1FOiRTRVJWRVJfUE9SVC8kQ09OVEVYVF9QUkVGSVgvJFBVQkxJQ0FUSU9OX0lELyRBUkVBJERPQ1VNRU5UX0lEKF9bYS16XVthLXpdKT8uaHRtbApJZiB0aGVyZSBpcyBhIG1hdGNoIGluIGEgZG9jdW1lbnQgZmlsZSBpdCBpcyBhc3N1bWVkIHRoYXQgdGhpcyBpcyBhbgppbnRlcm5hbCBsaW5rIGFuZCBpcyB0cmVhdGVkIGFzIHN1Y2ggKHdhcm5pbmcgaWYgcHVibGlzaCB3aXRoCnVucHVibGlzaGVkIGludGVybmFsIGxpbmtzIGFuZCB3YXJuaW5nIGlmIGRlYWN0aXZhdGUgd2l0aCBpbnRlcm5hbApyZWZlcmVuY2VzKS4KCkhvd2V2ZXIgdGhpcyBpcyBub3QgY29vcmRpbmF0ZWQgd2l0aCB0aGUgRG9jdW1lbnRUb1BhdGhNYXBwZXIgYW5kIHdpbGwKcHJvYmFibHkgZmFpbCBpZiB0aGUgVVJMIGxvb2tzIGRpZmZlcmVudC4KIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjAgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuMCB1cGRhdGUKICAgICAgICBieQogICAgICAgIGVnbGkKICAgICAgICA6CiAgICAgICAgWzEuMF0gCiAgICAgICAgICAgIEphdmFkb2MgZml4LgogRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuMCBhZGQ8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS4wIGFkZAogICAgICAgIGJ5CiAgICAgICAgZ3JlZ29yCiAgICAgICAgOgogICAgICAgIFsxLjBdIAogICAgICAgICAgICBjb250aW51ZWQgZG9jcyByZXN0cnVjdHVyaW5nCiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS4wIHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjAgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBncmVnb3IKICAgICAgICA6CiAgICAgICAgWzEuMF0gCiAgICAgICAgICAgIHJlbW92ZWQgeG9wdXMKcmVtb3ZlZCBvbGQgYml0Zmx1eCBlZGl0b3IKcmVtb3ZlZCBvYnNvbGV0ZSBzdHlsZXNoZWV0cwpvdGhlciBjbGVhbnVwcwogRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuMCByZW1vdmU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS4wIHJlbW92ZQogICAgICAgIGJ5CiAgICAgICAgZ3JlZ29yCiAgICAgICAgOgogICAgICAgIFsxLjBdIAogICAgICAgICAgICByZW9yZ2FuaXplZCBkb2Mgc3RydWN0dXJlCiAobm93IG1pcnJvcnMgdGhlIGFjdHVhbCBjb21wb25lbnRzIHdpdGhpbiBsZW55YSkKICBnb3QgcmlkIG9mIGRvY3VtZW50YXRpb24gZGVhZCBlbmRzCiAgY29uc29saWRhdGVkIHN0cnVjdHVyZQphZGRlZCBsaXZlIHNpdGVzIGRvY3VtZW50CmltcHJvdmVkIHdlYnNpdGUgdXBkYXRlIGRvY3VtZW50YXRpb24KcmVtb3ZlZCBzb21lIHhvcHVzIHJlZmVyZW5jZXMKbWFkZSBtb2RfcHJveHkgdGV4dCBsZXNzIGNyeXB0aWMKIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjAgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuMCB1cGRhdGUKICAgICAgICBieQogICAgICAgIGFuZHJlYXMKICAgICAgICA6CiAgICAgICAgWzEuMF0gCiAgICAgICAgICAgIG5ldyBsYXlvdXQgZm9yIGRlZmF1bHQgcHVibGljYXRpb24KIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjAgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuMCB1cGRhdGUKICAgICAgICBieQogICAgICAgIGFuZHJlYXMKICAgICAgICA6CiAgICAgICAgWzEuMF0gCiAgICAgICAgICAgIHJlbmFtZWQgd29ya2Zsb3cgdmFyaWFibGUgdG8gaXNfbGl2ZQphZGRlZCBkZWFjdGl2YXRlIG1lbnUgaXRlbQogRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuMCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS4wIHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgYW5kcmVhcwogICAgICAgIDoKICAgICAgICBbMS4wXSAKICAgICAgICAgICAgYWRkZWQgaW5pdHdvcmtmbG93IHVzZWNhc2UKIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjAgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuMCB1cGRhdGUKICAgICAgICBieQogICAgICAgIGFuZHJlYXMKICAgICAgICA6CiAgICAgICAgWzEuMF0gCiAgICAgICAgICAgIC0gYWRkZWQgaW5pdHdvcmtmbG93IHRhc2sKLSByZW1vdmVkIGJyb2tlbiB0YXNrIGRlZmluaXRpb25zCiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS4wIHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjAgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBhbmRyZWFzCiAgICAgICAgOgogICAgICAgIFsxLjBdIAogICAgICAgICAgICBhZGRlZCBpbml0d29ya2Zsb3cgbWVudSBpdGVtCiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS4wIHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjAgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBhbmRyZWFzCiAgICAgICAgOgogICAgICAgIFsxLjBdIAogICAgICAgICAgICB0aHJvd2luZyBleGNlcHRpb24gd2hlbiBhdHRyaWJ1dGUgaXMgbm90IHN1cHBvcnRlZAogRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuMCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS4wIHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgYW5kcmVhcwogICAgICAgIDoKICAgICAgICBbMS4wXSAKICAgICAgICAgICAgdGhyb3dpbmcgZXhjZXB0aW9uIHdoZW4gYXR0cmlidXRlIGlzIG5vdCBzdXBwb3J0ZWQKIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjAgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuMCB1cGRhdGUKICAgICAgICBieQogICAgICAgIGFuZHJlYXMKICAgICAgICA6CiAgICAgICAgWzEuMF0gCiAgICAgICAgICAgIC0gdXNpbmcgYXV0aG9yaXplcnMgaW4gZGVjbGFyZWQgb3JkZXIKLSBhZGRlZCBzb21lIGxvZyBtZXNzYWdlcwogRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuMCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS4wIHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgYW5kcmVhcwogICAgICAgIDoKICAgICAgICBbMS4wXSAKICAgICAgICAgICAgcmVtb3ZlZCAiZXhwZXJpbWVudGFsIHZlcnNpb24iIHRleHQKIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjAgYWRkPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuMCBhZGQKICAgICAgICBieQogICAgICAgIGFuZHJlYXMKICAgICAgICA6CiAgICAgICAgWzEuMF0gCiAgICAgICAgICAgIGFkZGluZyBmaXJzdCB3b3JrZmxvdyBkb2N1bWVudGF0aW9uCiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS4wIHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjAgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBhbmRyZWFzCiAgICAgICAgOgogICAgICAgIFsxLjBdIAogICAgICAgICAgICBjb21tZW50aW5nIG91dCBmb3JyZXN0IHRlbXBsYXRlIGNvbmZpZ3VyYXRpb24KIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjAgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuMCB1cGRhdGUKICAgICAgICBieQogICAgICAgIGFuZHJlYXMKICAgICAgICA6CiAgICAgICAgWzEuMF0gCiAgICAgICAgICAgIFJlZmluZWQgZXhjZXB0aW9uIG1lc3NhZ2UgZm9yICJSZXF1ZXN0IGRvZXMgbm90IGNvbnRhaW4gcm9sZXMiCiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS4wIHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjAgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBtaWNoaQogICAgICAgIDoKICAgICAgICBbMS4wXSAKICAgICAgICAgICAgYXJndW1lbnQgYWRkZWQgdG8ganRpZHkgdGFyZ2V0CiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS4wIHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjAgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBlZ2xpCiAgICAgICAgOgogICAgICAgIFsxLjBdIAogICAgICAgICAgICBUaGUgY3JlYXRpb24gb2YgdGhlIG1ldGEgZGF0YSBmaWxlcyBub3cgbm8gbG9uZ2VyIHVzZXMgZG9tNGogYnV0Ck5hbWVTcGFjZUhlbHBlciBpbnN0ZWFkLiBUaGUgbWV0YSBmaWxlcyBhcmUgbm93IHByb3Blcmx5IHdyYXBwZWQgaW4KdGhlIGRjIG5hbWVzcGFjZS4KIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjAgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuMCB1cGRhdGUKICAgICAgICBieQogICAgICAgIG1pY2hpCiAgICAgICAgOgogICAgICAgIFsxLjBdIAogICAgICAgICAgICB2ZXJzaW9uIHJlcGxhY2VkIGJ5IENWUyBpbnN0cnVjdGlvbgogRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuMCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS4wIHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgbWljaGkKICAgICAgICA6CiAgICAgICAgWzEuMF0gCiAgICAgICAgICAgIHdvcmthcm91bmQgZm9yIG1peGVkIGNvbnRlbnQKIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjAgcmVtb3ZlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuMCByZW1vdmUKICAgICAgICBieQogICAgICAgIG1pY2hpCiAgICAgICAgOgogICAgICAgIFsxLjBdIAogICAgICAgICAgICByZXBsYWNlZCBieSAyMDAzLTEwLTE0CiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS4wIGFkZDwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjAgYWRkCiAgICAgICAgYnkKICAgICAgICBtaWNoaQogICAgICAgIDoKICAgICAgICBbMS4wXSAKICAgICAgICAgICAgeHVwZGF0ZSBidWdzIHJlIG1peGVkIGNvbnRlbnQgZml4ZWQKIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjAgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuMCB1cGRhdGUKICAgICAgICBieQogICAgICAgIG1pY2hpCiAgICAgICAgOgogICAgICAgIFsxLjBdIAogICAgICAgICAgICBtaXhlZCBjb250ZW50IGFkZGVkCiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS4wIHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjAgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBtaWNoaQogICAgICAgIDoKICAgICAgICBbMS4wXSAKICAgICAgICAgICAgY2xhc3NlcyBhZGRlZCB0byBpbXBvcnQgYW5kIE51bGxQb2ludGVyRXhjZXB0aW9uIG1lc3NhZ2UgZml4ZWQKIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjAgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuMCB1cGRhdGUKICAgICAgICBieQogICAgICAgIG1pY2hpCiAgICAgICAgOgogICAgICAgIFsxLjBdIAogICAgICAgICAgICByZXBsYWNlIHByZWRpZmluZWQgZW50aXRpZXMgYWxzbyBkdXJpbmcgbG9vcAogRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuMCBhZGQ8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS4wIGFkZAogICAgICAgIGJ5CiAgICAgICAgbWljaGkKICAgICAgICA6CiAgICAgICAgWzEuMF0gCiAgICAgICAgICAgIG1peGVkIGNvbnRlbnQgZW5hYmxlZAogRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuMCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS4wIHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgbWljaGkKICAgICAgICA6CiAgICAgICAgWzEuMF0gCiAgICAgICAgICAgIG1ldGhvZCBuYW1lcyB0byBsb2cgc3RhdGVtZW50cyBhZGRlZAogRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuMCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS4wIHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgbWljaGkKICAgICAgICA6CiAgICAgICAgWzEuMF0gCiAgICAgICAgICAgIGVycm9yIHJlcGxhY2VkIGJ5IHdhcm4KIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjAgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuMCB1cGRhdGUKICAgICAgICBieQogICAgICAgIGVkaXRoCiAgICAgICAgOgogICAgICAgIFsxLjBdIAogICAgICAgICAgICBEZWFjdGl2YXRpb24gb2YgY2hpbGRyZW4gaXMgb25seSBuZWNlc3Nhcnkgd2hlbiBubyBtb3JlIHBhcmVudCB2ZXJzaW9uIGlzIGxpdmUKIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjAgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuMCB1cGRhdGUKICAgICAgICBieQogICAgICAgIGVkaXRoCiAgICAgICAgOgogICAgICAgIFsxLjBdIAogICAgICAgICAgICBhZGQgbGFuZ3VhZ2UgaW4gdGhlIGRlc2NyaXRwaW9uIG9mIGRvY3VtZW50CiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS4wIHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjAgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBlZGl0aAogICAgICAgIDoKICAgICAgICBbMS4wXSAKICAgICAgICAgICAgRGVhY3RpdmF0ZSBvbmx5IG9uZSBsYW5ndWFnZSB2ZXJzaW9uIG9mIGEgZG9jdW1lbnQKIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjAgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuMCB1cGRhdGUKICAgICAgICBieQogICAgICAgIG1pY2hpCiAgICAgICAgOgogICAgICAgIFsxLjBdIAogICAgICAgICAgICBtaXhlZCBjb250ZW50IGFkZGVkCiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS4wIHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjAgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBtaWNoaQogICAgICAgIDoKICAgICAgICBbMS4wXSAKICAgICAgICAgICAgY29weWluZyBtaXhlZCBjb250ZW50CiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS4wIHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjAgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBlZ2xpCiAgICAgICAgOgogICAgICAgIFsxLjBdIAogICAgICAgICAgICBBZGRlZCBiYWNrIGEgbGluZSB0aGF0IHdhcyBkZWxldGVkIGluYWR2ZXJ0ZWRseSBpbiB2ZXJzaW9uIDEuMTUgYW5kCmNhdXNlZCBhIGxvdCBvZiBncmllZiAodGhlIGFzc2V0IHVwbG9hZCB3b3VsZCBzaW1wbHkgbm90IHdvcmsKYW55bW9yZSkuCiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS4wIHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjAgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBncmVnb3IKICAgICAgICA6CiAgICAgICAgWzEuMF0gCiAgICAgICAgICAgIGFoZW0KIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjAgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuMCB1cGRhdGUKICAgICAgICBieQogICAgICAgIGdyZWdvcgogICAgICAgIDoKICAgICAgICBbMS4wXSAKICAgICAgICAgICAgZml4ZWQgc29tZSBlcnJvcnMgYW5kIG9ic29sZXRlIGluc3RydWN0aW9ucyBpbiB0aGUgaW5zdGFsbCBkb2NzCiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS4wIHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjAgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBtaWNoaQogICAgICAgIDoKICAgICAgICBbMS4wXSAKICAgICAgICAgICAgZWRpdGluZyByZXBsYWNlZCBieSBlZGl0b3JzCiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS4wIHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjAgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBhbmRyZWFzCiAgICAgICAgOgogICAgICAgIFsxLjBdIAogICAgICAgICAgICBhZGRpbmcgQWNjZXNzQ29udHJvbFNpdGV0cmVlVHJhbnNmb3JtZXIKIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjAgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuMCB1cGRhdGUKICAgICAgICBieQogICAgICAgIG1pY2hpCiAgICAgICAgOgogICAgICAgIFsxLjBdIAogICAgICAgICAgICBCWEVORyByZW5hbWVkIHRvIEJYRQogRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuMCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS4wIHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgZWdsaQogICAgICAgIDoKICAgICAgICBbMS4wXSAKICAgICAgICAgICAgQ2hlY2sgaWYgdGhlIGZpbGUgdGhhdCBpcyBiZWluZyB1cGxvYWRlZCBoYXMgbm8gZXh0ZW5zaW9uLiBJZiB5ZXMgZG8Kbm90IHVwbG9hZCBhbmQgcHJlc2VudCB0aGUgdXBsb2FkIHNjcmVlbiBhZ2FpbiB3aXRoIGEgd2FybmluZy4KIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjAgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuMCB1cGRhdGUKICAgICAgICBieQogICAgICAgIG1pY2hpCiAgICAgICAgOgogICAgICAgIFsxLjBdIAogICAgICAgICAgICBjcmF3bGluZyBpbnN0cnVjdGlvbiBhZGRlZAogRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuMCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS4wIHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgZWdsaQogICAgICAgIDoKICAgICAgICBbMS4wXSAKICAgICAgICAgICAgQWRkZWQgYSBsaXR0bGUgbm90IHRvIHRoZSBmaWxlIHVwbG9hZCBmaWxlIHNheWluZyB0aGF0IGZpbGVzIHNob3VsZApub3QgaGF2ZSB3aGl0ZXNwYWNlIGFuZCB3ZWlyZCBwdW5jdHVhdGlvbiAoI0AhIGV0Yy4pIGluIHRoZWlyIG5hbWVzLgogRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuMCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS4wIHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgZWdsaQogICAgICAgIDoKICAgICAgICBbMS4wXSAKICAgICAgICAgICAgR28gYmFjayB0byB0aGUgYXNzZXQgdXBsb2FkIHNjcmVlbiBpZiB0aGUgdXBsb2FkIGFjdGlvbiBmYWlsZWQuCiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS4wIHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjAgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBlZ2xpCiAgICAgICAgOgogICAgICAgIFsxLjBdIAogICAgICAgICAgICBQYXNzIG9yaWdpbmFsIHJlcXVlc3QgcGFyYW1zIHN1Y2ggYXMgJ2luc2VydCcgb3IgJ2luc2VydEltYWdlJyBhbG9uZwpzbyB0aGF0IGFuIGVycm9yIHNjcmVlbiBjYW4gcmVwcm9kdWNlIHRoZSB1cGxvYWQgc2NyZWVuIGFzIGlmIGl0IHdhcwpkaXJlY3RseSBpbnZva2VkLgogRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuMCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS4wIHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgZWdsaQogICAgICAgIDoKICAgICAgICBbMS4wXSAKICAgICAgICAgICAgRGlzcGxheSBhbiBlcnJvciBtZXNzYWdlIGlmIHRoZSBlcnJvciBwYXJhbSBpcyB0cnVlLgogRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuMCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS4wIHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgYW5kcmVhcwogICAgICAgIDoKICAgICAgICBbMS4wXSAKICAgICAgICAgICAgY2hhbmdlZCBwYXNzd29yZCBwYXJhbWV0ZXIgbmFtZSB0byBhdm9pZCBicm93c2VyIGF1dG8tZmlsbC1pbgogRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuMCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS4wIHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgZWdsaQogICAgICAgIDoKICAgICAgICBbMS4wXSAKICAgICAgICAgICAgQWRkZWQgYSB0ZXN0IHRoYXQgbWFrZXMgc3VyZSB0aGUgZmlsZW5hbWUgZG9lcyBub3QgY29udGFpbiBhbnkKY2hhcmFjdGVycyBvdXRzaWRlIHRoZSByYW5nZSBvZiAiYS16QS1aMC05Li1fIgogRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuMCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS4wIHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgZWdsaQogICAgICAgIDoKICAgICAgICBbMS4wXSAKICAgICAgICAgICAgVGhlIGNhcHRpb24gb2YgYWJzdHJhY3Qgc2hvdWxkIGJlICdkZXNjcmlwdGlvbicgYXMgaW4gdGhlIG1ldGEgZGF0YQpzY3JlZW4uCiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS4wIHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjAgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBhbmRyZWFzCiAgICAgICAgOgogICAgICAgIFsxLjBdIAogICAgICAgICAgICBhZGRlZCBvcHRpb24gW25vIG5vdGlmaWNhdGlvbl0gZm9yIGNvbWJvYm94CiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS4wIHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjAgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBhbmRyZWFzCiAgICAgICAgOgogICAgICAgIFsxLjBdIAogICAgICAgICAgICB2YWxpZGF0aW5nIHBhc3N3b3JkIG9ubHkgZm9yIG5vbi1sZGFwIHVzZXJzCiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS4wIHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjAgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBhbmRyZWFzCiAgICAgICAgOgogICAgICAgIFsxLjBdIAogICAgICAgICAgICAtIGNoZWNraW5nIGlmIHBhc3N3b3JkIGFuZCBlbWFpbCBjb21wbHkgY2VydGFpbiBjb25kaXRpb25zCiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS4wIHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjAgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBlZGl0aAogICAgICAgIDoKICAgICAgICBbMS4wXSAKICAgICAgICAgICAgQmVmb3JlIGRlYWN0aXZhdGluZywgbG9vayBpZiBhbGwgY2hpbGRyZW4ncyB2ZXJzaW9ucyBhcmUgbm8gbW9yZSBsaXZlCiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS4wIHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjAgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBhbmRyZWFzCiAgICAgICAgOgogICAgICAgIFsxLjBdIAogICAgICAgICAgICBhZGRlZCBmYWxsYmFjayB0byBleGlzdGluZyBsYW5ndWFnZSB2ZXJzaW9uIGlmIGRlZmF1bHQgbGFuZ3VhZ2UgdmVyc2lvbiBpcyBub3QgcHJlc2VudAogRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuMCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS4wIHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgYW5kcmVhcwogICAgICAgIDoKICAgICAgICBbMS4wXSAKICAgICAgICAgICAgcHJldHRpZmllZCAicmVtb3ZlIGxhbmd1YWdlIHZlcnNpb24iIHNjcmVlbgogRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuMCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS4wIHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgYW5kcmVhcwogICAgICAgIDoKICAgICAgICBbMS4wXSAKICAgICAgICAgICAgYWRkZWQgZHJhZnQgZm9yIGFzc2V0IHVwbG9hZCBlcnJvciBzY3JlZW4KIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjAgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuMCB1cGRhdGUKICAgICAgICBieQogICAgICAgIGFuZHJlYXMKICAgICAgICA6CiAgICAgICAgWzEuMF0gCiAgICAgICAgICAgIC0gZXNjYXBpbmcgcXVvdGF0aW9uIG1hcmtzIGluIHN0cmluZ3MKLSBmaXhlZCBjb2xvciB2YWx1ZXMKIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjAgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuMCB1cGRhdGUKICAgICAgICBieQogICAgICAgIGFuZHJlYXMKICAgICAgICA6CiAgICAgICAgWzEuMF0gCiAgICAgICAgICAgIGNyZWF0aW5nIGRvY3R5cGUgb25seSB3aGVuIGRvY3VtZW50IGV4aXN0cwogRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuMCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS4wIHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgYW5kcmVhcwogICAgICAgIDoKICAgICAgICBbMS4wXSAKICAgICAgICAgICAgW2FkZCB1c2VyXSBjaGVja2luZyBwYXNzd29yZCBvbmx5IGZvciBub24tbGRhcCB1c2VyCiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS4wIHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjAgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBtaWNoaQogICAgICAgIDoKICAgICAgICBbMS4wXSAKICAgICAgICAgICAgTm90ZSBpbiBpbmN1YmF0aW9uIGFkZGVkCiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS4wIHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjAgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBtaWNoaQogICAgICAgIDoKICAgICAgICBbMS4wXSAKICAgICAgICAgICAgYWRkZWQgbm90ZSBvbiBpbmN1YmF0aW9uCiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS4wIHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjAgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBhbmRyZWFzCiAgICAgICAgOgogICAgICAgIFsxLjBdIAogICAgICAgICAgICBhZGRlZCAic3VibWl0IiBtZW51IGl0ZW0KIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjAgcmVtb3ZlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuMCByZW1vdmUKICAgICAgICBieQogICAgICAgIGFuZHJlYXMKICAgICAgICA6CiAgICAgICAgWzEuMF0gCiAgICAgICAgICAgIHJlbW92ZWQgb2xkIGJpdGZsdXgKIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjAgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuMCB1cGRhdGUKICAgICAgICBieQogICAgICAgIGFuZHJlYXMKICAgICAgICA6CiAgICAgICAgWzEuMF0gCiAgICAgICAgICAgIGFkZGVkIEZhbGxiYWNrTW9kdWxlIGRlY2xhcmF0aW9uCiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS4wIHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjAgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBhbmRyZWFzCiAgICAgICAgOgogICAgICAgIFsxLjBdIAogICAgICAgICAgICBleHRyYWN0ZWQgaW50ZXJmYWNlIGZyb20gU3luY2hyb25pemVkV29ya2Zsb3dJbnN0YW5jZXMKIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjAgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuMCB1cGRhdGUKICAgICAgICBieQogICAgICAgIGFuZHJlYXMKICAgICAgICA6CiAgICAgICAgWzEuMF0gCiAgICAgICAgICAgIGludHJvZHVjaW5nIEFic3RyYWN0UGFnZUVudmVsb3BlTW9kdWxlIGFuZCBGYWxsYmFja01vZHVsZQogRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuMCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS4wIHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgbWljaGkKICAgICAgICA6CiAgICAgICAgWzEuMF0gCiAgICAgICAgICAgIENvY29vbiBHbWFuZSBhZGRlZAogRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuMCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS4wIHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgbWljaGkKICAgICAgICA6CiAgICAgICAgWzEuMF0gCiAgICAgICAgICAgIFhvcHVzIHJlbW92ZWQgYW5kIEhUTUwgRm9ybSBlZGl0b3IgYWRkZWQKIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjAgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuMCB1cGRhdGUKICAgICAgICBieQogICAgICAgIHN0ZWZhbm8KICAgICAgICA6CiAgICAgICAgWzEuMF0gCiAgICAgICAgICAgIHJlbW92aW5nIGFzc2VydGlvbnMgZnJvbSB0ZXN0ICh3ZSBzaG91bGQgYWltIGF0IDEuMyBjb21wYXRpYmlsaXR5KQogRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuMCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS4wIHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgc3RlZmFubwogICAgICAgIDoKICAgICAgICBbMS4wXSAKICAgICAgICAgICAgY2xlYW5pbmcgdXAgdW51c2VkIGltcG9ydHMKIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjAgYWRkPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuMCBhZGQKICAgICAgICBieQogICAgICAgIG1pY2hpCiAgICAgICAgOgogICAgICAgIFsxLjBdIAogICAgICAgICAgICBpbmRleCBjb25maWd1cmF0aW9uCiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS4wIGFkZDwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjAgYWRkCiAgICAgICAgYnkKICAgICAgICBtaWNoaQogICAgICAgIDoKICAgICAgICBbMS4wXSAKICAgICAgICAgICAgc2FtcGxlIGZpbGUKIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjAgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuMCB1cGRhdGUKICAgICAgICBieQogICAgICAgIG1pY2hpCiAgICAgICAgOgogICAgICAgIFsxLjBdIAogICAgICAgICAgICBsaWJyYXJpZXMgdXBkYXRlZAogRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuMCBhZGQ8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS4wIGFkZAogICAgICAgIGJ5CiAgICAgICAgbWljaGkKICAgICAgICA6CiAgICAgICAgWzEuMF0gCiAgICAgICAgICAgIG1pbmltYWwgaW5kZXggYWRkZWQKIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjAgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuMCB1cGRhdGUKICAgICAgICBieQogICAgICAgIG1pY2hpCiAgICAgICAgOgogICAgICAgIFsxLjBdIAogICAgICAgICAgICBhbnQgdGFyZ2V0IGRvY3VtZW50ZWQKIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjAgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuMCB1cGRhdGUKICAgICAgICBieQogICAgICAgIG1pY2hpCiAgICAgICAgOgogICAgICAgIFsxLjBdIAogICAgICAgICAgICBzZWFyY2ggYXJlYSBhZGRlZAogRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuMCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS4wIHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgbWljaGkKICAgICAgICA6CiAgICAgICAgWzEuMF0gCiAgICAgICAgICAgIHNlYXJjaCBhZGRlZCB0byB0ZXN0cwogRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuMCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS4wIHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgbWljaGkKICAgICAgICA6CiAgICAgICAgWzEuMF0gCiAgICAgICAgICAgIHNlYXJjaCBhdXRob3JpbmcgYW5kIGxpdmUgaW50cm9kdWNlZAogRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuMCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS4wIHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgbWljaGkKICAgICAgICA6CiAgICAgICAgWzEuMF0gCiAgICAgICAgICAgIFNlYXJjaCB3aXRoIEx1Y2VuZSBkb2N1IHN0YXJ0ZWQKIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjAgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuMCB1cGRhdGUKICAgICAgICBieQogICAgICAgIG1pY2hpCiAgICAgICAgOgogICAgICAgIFsxLjBdIAogICAgICAgICAgICBjb21tZW50cyBpbXByb3ZlZAogRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuMCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS4wIHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgZWdsaQogICAgICAgIDoKICAgICAgICBbMS4wXSAKICAgICAgICAgICAgQWRkZWQgYSBkZWZhdWx0IHRleHQgdG8gdGhlIGNhcHRpb24uCiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS4wIHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjAgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBlZ2xpCiAgICAgICAgOgogICAgICAgIFsxLjBdIAogICAgICAgICAgICBBZGRlZCBlcnJvciBoYW5kbGluZyBpbiBjYXNlIG9mIGZhaWx1cmUsIGkuZS4gd2hlbiB0aGUgZG9jdW1lbnQgY2Fubm90CmJlIGNoZWNrZWQgb3V0LgogRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuMCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS4wIHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgZWdsaQogICAgICAgIDoKICAgICAgICBbMS4wXSAKICAgICAgICAgICAgQWRkZWQgcmVzZXJ2ZWQgY2hlY2tpbiBhbmQgY2hlY2tvdXQgdG8gdGhlIHVwZGF0ZSBvZiBtZXRhIGRhdGEuCiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS4wIHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjAgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBlZGl0aAogICAgICAgIDoKICAgICAgICBbMS4wXSAKICAgICAgICAgICAgSWYgdGhlcmUgYXJlIG5vIGZpbGVzIGZvciB0aGUgY2hpbGRyZW4gaW4gdGhlIGxhbmd1YWdlIG9mCnRoZSBwYXJlbnQgZG9jdW1lbnQgYW5kIG5vIHZlcnNpb24gaW4gZGVmYXVsdCBsYW5ndWFnZSwgdGhlbgphbnkgb3RoZXIgZXhpc3RlbnQgdmVyc2lvbiBpcyBjb25zaWRlcmVkCiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS4wIHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjAgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBlZ2xpCiAgICAgICAgOgogICAgICAgIFsxLjBdIAogICAgICAgICAgICBSZW1vdmVkIHVubmVlZGVkIGltcG9ydCBzdGF0ZW1lbnQuCiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS4wIHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjAgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBlZ2xpCiAgICAgICAgOgogICAgICAgIFsxLjBdIAogICAgICAgICAgICBSZW1vdmVkIHRoZSBtYWlsaW5nLWxpc3QgYXJjaGl2ZXMgYXMgdGhleSBkaWQgbm90IHByb3Blcmx5IGFyY2hpdmUgdGhlCm1haWxpbmctbGlzdHMuCiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS4wIHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjAgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBhbmRyZWFzCiAgICAgICAgOgogICAgICAgIFsxLjBdIAogICAgICAgICAgICBhZGRpbmcgZG9jdW1lbnQgYnkgZGVmYXVsdAogRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuMCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS4wIHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgbWljaGkKICAgICAgICA6CiAgICAgICAgWzEuMF0gCiAgICAgICAgICAgIERvY3VtZW50IFR5cGUgYWRkZWQKIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjAgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuMCB1cGRhdGUKICAgICAgICBieQogICAgICAgIG1pY2hpCiAgICAgICAgOgogICAgICAgIFsxLjBdIAogICAgICAgICAgICB4aHRtbCBkb2N0eXBlIGFkZGVkCiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS4wIHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjAgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBhbmRyZWFzCiAgICAgICAgOgogICAgICAgIFsxLjBdIAogICAgICAgICAgICB1cGdyYWRpbmcgdG8gQ29jb29uIDIuMS1SZWxlYXNlCiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS4wIHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjAgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBhbmRyZWFzCiAgICAgICAgOgogICAgICAgIFsxLjBdIAogICAgICAgICAgICBzdGFydGluZyBCWEVORyBpbXBsZW1lbnRhdGlvbgogRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuMCBhZGQ8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS4wIGFkZAogICAgICAgIGJ5CiAgICAgICAgYW5kcmVhcwogICAgICAgIDoKICAgICAgICBbMS4wXSAKICAgICAgICAgICAgYWRkaW5nIHhodG1sIHJlbGF4IG5nIHNjaGVtYQogRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuMCBhZGQ8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS4wIGFkZAogICAgICAgIGJ5CiAgICAgICAgYW5kcmVhcwogICAgICAgIDoKICAgICAgICBbMS4wXSAKICAgICAgICAgICAgcmUtYWRkaW5nIG5hdmlnYXRpb24gc2l0ZW1hcAogRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuMCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS4wIHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgYW5kcmVhcwogICAgICAgIDoKICAgICAgICBbMS4wXSAKICAgICAgICAgICAgZml4ZWQgcGF0Y2ggc3R5bGVzaGVldCBuYW1lCiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS4wIHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjAgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBhbmRyZWFzCiAgICAgICAgOgogICAgICAgIFsxLjBdIAogICAgICAgICAgICByZS1mb3JtYXR0ZWQgZG9jdW1lbnQgaWQKIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjAgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuMCB1cGRhdGUKICAgICAgICBieQogICAgICAgIG1pY2hpCiAgICAgICAgOgogICAgICAgIFsxLjBdIAogICAgICAgICAgICBCdWcgVHJhY2tlciBMaW5rIGZpeGVkCiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS4wIHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjAgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBtaWNoaQogICAgICAgIDoKICAgICAgICBbMS4wXSAKICAgICAgICAgICAgcGF0aCBmaXhlZAogRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuMCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS4wIHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgbWljaGkKICAgICAgICA6CiAgICAgICAgWzEuMF0gCiAgICAgICAgICAgIEJYRU5HIGFkZGVkCiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS4wIHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjAgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBtaWNoaQogICAgICAgIDoKICAgICAgICBbMS4wXSAKICAgICAgICAgICAgaW5hY3RpdmUgY29tbWl0dGVycyBhZGRlZAogRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuMCBhZGQ8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS4wIGFkZAogICAgICAgIGJ5CiAgICAgICAgbWljaGkKICAgICAgICA6CiAgICAgICAgWzEuMF0gCiAgICAgICAgICAgIENTUyBhbmQgbmFtZXNwYWNlIGZpbGUgZm9yIEJYRU5HCiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS4wIHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjAgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBtaWNoaQogICAgICAgIDoKICAgICAgICBbMS4wXSAKICAgICAgICAgICAgQlhFTkcgY29uZmlndXJlZCBmb3IgZGVmYXVsdCBwdWIKIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjAgYWRkPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuMCBhZGQKICAgICAgICBieQogICAgICAgIG1pY2hpCiAgICAgICAgOgogICAgICAgIFsxLjBdIAogICAgICAgICAgICBCWEVORyBkb2N1bWVudGF0aW9uIHN0YXJ0ZWQKIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjAgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuMCB1cGRhdGUKICAgICAgICBieQogICAgICAgIG1pY2hpCiAgICAgICAgOgogICAgICAgIFsxLjBdIAogICAgICAgICAgICBCWEVORyBhZGRlZAogRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuMCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS4wIHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgYW5kcmVhcwogICAgICAgIDoKICAgICAgICBbMS4wXSAKICAgICAgICAgICAgcmVwbGFjZWQgd3lvbmEgaW1hZ2UgYnkgbGVueWEgaW1hZ2UKIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjAgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuMCB1cGRhdGUKICAgICAgICBieQogICAgICAgIG1pY2hpCiAgICAgICAgOgogICAgICAgIFsxLjBdIAogICAgICAgICAgICBFcnJvciBwcmV0dGlmaWVkCiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS4wIHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjAgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBtaWNoaQogICAgICAgIDoKICAgICAgICBbMS4wXSAKICAgICAgICAgICAgREMgVGl0bGUgYWRkZWQKIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjAgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuMCB1cGRhdGUKICAgICAgICBieQogICAgICAgIGFuZHJlYXMKICAgICAgICA6CiAgICAgICAgWzEuMF0gCiAgICAgICAgICAgIHdoZW4gcmVzdG9yaW5nIGpvYnMsIGNoZWNrIGlmIHRyaWdnZXIgZGF0ZSBoYXMgZXhwaXJlZAogRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuMCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS4wIHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgYW5kcmVhcwogICAgICAgIDoKICAgICAgICBbMS4wXSAKICAgICAgICAgICAgYWRkZWQgbGFiZWwgIkluaGVyaXRlZCBSaWdodHMiIHRvIHRoZSBpbmhlcml0ZWQgcHJpdmlsZWdlcyBncm91cAogRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuMCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS4wIHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgYW5kcmVhcwogICAgICAgIDoKICAgICAgICBbMS4wXSAKICAgICAgICAgICAgc2V0dGluZyBmdWxsbmFtZSBmb3Igbm9uLUxEQVAgdXNlciBpbnN0ZWFkIG9mIExEQVAgdXNlcgogRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuMCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS4wIHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgYW5kcmVhcwogICAgICAgIDoKICAgICAgICBbMS4wXSAKICAgICAgICAgICAgc2hvd2luZyBwYXNzd29yZCBmaWVsZHMgb25seSBmb3Igbm9uLUxEQVAgdXNlcnMKIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjAgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuMCB1cGRhdGUKICAgICAgICBieQogICAgICAgIGFuZHJlYXMKICAgICAgICA6CiAgICAgICAgWzEuMF0gCiAgICAgICAgICAgIGRvbid0IHNldCBwYXNzd29yZCB3aGVuIGNyZWF0aW5nIG5ldyBMREFQIHVzZXIKIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjAgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuMCB1cGRhdGUKICAgICAgICBieQogICAgICAgIGFuZHJlYXMKICAgICAgICA6CiAgICAgICAgWzEuMF0gCiAgICAgICAgICAgIGZpeGVkICJjYW5jZWwgZG9lcyBub3Qgd29yayIgYnVnCiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS4wIHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjAgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBhbmRyZWFzCiAgICAgICAgOgogICAgICAgIFsxLjBdIAogICAgICAgICAgICBmaXhlZCAiY2FuY2VsIGRvZXMgbm90IHdvcmsiIGJ1ZwogRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuMCByZW1vdmU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS4wIHJlbW92ZQogICAgICAgIGJ5CiAgICAgICAgZWdsaQogICAgICAgIDoKICAgICAgICBbMS4wXSAKICAgICAgICAgICAgSGFzIGJlZW4gc3VwZXJjZWRlZCBieSB0aGUgU2luZ2xlTGFuZ3VhZ2VJZGVudGl0eU1hcHBlci4KIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjAgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuMCB1cGRhdGUKICAgICAgICBieQogICAgICAgIGVnbGkKICAgICAgICA6CiAgICAgICAgWzEuMF0gCiAgICAgICAgICAgIFJlcGxhY2VkIHRoZSBCbG9nRG9jdW1lbnRJZFRvUGF0aE1hcHBlciBieSB0aGUKU2luZ2xlTGFuZ3VhZ2VJZGVudGl0eU1hcHBlciAod2hpY2ggY29tZXMgd2l0aCB0aGUgY29yZSkuCiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS4wIHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjAgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBtaWNoaQogICAgICAgIDoKICAgICAgICBbMS4wXSAKICAgICAgICAgICAgdGFzayBpZCBwdWJsaXNoIGFkZGVkCiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS4wIHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjAgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBtaWNoaQogICAgICAgIDoKICAgICAgICBbMS4wXSAKICAgICAgICAgICAgRm9ybSBFZGl0b3IgYWRkZWQKIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjAgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuMCB1cGRhdGUKICAgICAgICBieQogICAgICAgIGdyZWdvcgogICAgICAgIDoKICAgICAgICBbMS4wXSAKICAgICAgICAgICAgdXBkYXRlZCByb2FkbWFwCiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS4wIHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjAgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBncmVnb3IKICAgICAgICA6CiAgICAgICAgWzEuMF0gCiAgICAgICAgICAgIGdvdCByaWQgb2YgRE9DVFlQRSB0byBldmFkZSBhbGwgc29ydHMgb2YgY2F0YWxvZyBpc3N1ZXMKIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjAgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuMCB1cGRhdGUKICAgICAgICBieQogICAgICAgIGFuZHJlYXMKICAgICAgICA6CiAgICAgICAgWzEuMF0gCiAgICAgICAgICAgIGFkZGluZyBleGlzdGluZyBsYW5ndWFnZSB0byBuYXZpZ2F0aW9uIHRyZWUgaWYgcmVxdWVzdGVkIGxhbmd1YWdlIGRvZXMgbm90IGV4aXN0CiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS4wIHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjAgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBhbmRyZWFzCiAgICAgICAgOgogICAgICAgIFsxLjBdIAogICAgICAgICAgICBBc3NpZ25pbmcgcm9sZSAidmlzaXQiIG9yICJ2aXNpdG9yIiB3aGVuIG5vIHBvbGljeSBpcyBkZWZpbmVkLgpUaGlzIGFsbG93cyAicHJvdGVjdGlvbiBvbiBkZW1hbmQiLCBlLmcuIGZvciB0aGUgbGl2ZSBhcmVhLgogRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuMCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS4wIHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgYW5kcmVhcwogICAgICAgIDoKICAgICAgICBbMS4wXSAKICAgICAgICAgICAgYWRkZWQgaXNFbXB0eSgpIG1ldGhvZAogRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuMCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS4wIHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgYW5kcmVhcwogICAgICAgIDoKICAgICAgICBbMS4wXSAKICAgICAgICAgICAgZGVidWcgbWVzc2FnZXMgb25seSB3aGVuIGlzRGVidWdFbmFibGVkKCkKIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjAgYWRkPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuMCBhZGQKICAgICAgICBieQogICAgICAgIGFuZHJlYXMKICAgICAgICA6CiAgICAgICAgWzEuMF0gCiAgICAgICAgICAgIGFkZGVkIERvY3VtZW50U2V0IGFuZCBMYW5ndWFnZVZlcnNpb25zCiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS4wIHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjAgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBhbmRyZWFzCiAgICAgICAgOgogICAgICAgIFsxLjBdIAogICAgICAgICAgICB1c2luZyB3b3JrZmxvdyBzeW5jaHJvbml6YXRpb24KIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjAgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuMCB1cGRhdGUKICAgICAgICBieQogICAgICAgIGFuZHJlYXMKICAgICAgICA6CiAgICAgICAgWzEuMF0gCiAgICAgICAgICAgIGFkZGVkIHN5bmNocm9uaXphdGlvbiBsYXllciB0byB3b3JrZmxvdwogRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuMCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS4wIHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgbWljaGkKICAgICAgICA6CiAgICAgICAgWzEuMF0gCiAgICAgICAgICAgIEZlYXR1cmVzIGFkZGVkCiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS4wIHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjAgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBtaWNoaQogICAgICAgIDoKICAgICAgICBbMS4wXSAKICAgICAgICAgICAgbGVueWE6c2hvdyBmaXhlZAogRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuMCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS4wIHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgZWdsaQogICAgICAgIDoKICAgICAgICBbMS4wXSAKICAgICAgICAgICAgRGlzcGxheSBhIHdhcm5pbmcgaWYgdGhlcmUgYXJlIHJlZmVyZW5jZXMgdG8gZG9jdW1lbnRzIHdoaWNoIGhhdmUgbm90CmJlZW4gcHVibGlzaGVkIHlldC4KIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjAgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuMCB1cGRhdGUKICAgICAgICBieQogICAgICAgIGVnbGkKICAgICAgICA6CiAgICAgICAgWzEuMF0gCiAgICAgICAgICAgIFVzZSB0aGUgRG9jdW1lbnRSZWZlcmVuY2VzSGVscGVyIHRvIHByb2R1Y2UgYSBsaXN0IG9mIGFsbApub24tcHVibGlzaGVkIGRvY3VtZW50cyB3aGljaCBhcmUgcmVmZXJlbmNlZCBpbiB0aGUgY3VycmVudCBkb2N1bWVudC4KIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjAgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuMCB1cGRhdGUKICAgICAgICBieQogICAgICAgIGVnbGkKICAgICAgICA6CiAgICAgICAgWzEuMF0gCiAgICAgICAgICAgIEFkZGVkIGEgbWV0aG9kIHRvIGZpbmQgYWxsIGludGVybmFsIHJlZmVybmNlcyBpbiB0aGUgY3VycmVudCBkb2N1bWVudC4KIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjAgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuMCB1cGRhdGUKICAgICAgICBieQogICAgICAgIGVnbGkKICAgICAgICA6CiAgICAgICAgWzEuMF0gCiAgICAgICAgICAgIEFkZGVkIGEgbWV0aG9kIHRvIGZpbmQgYWxsIG9jY3VyZW5jZXMgb2YgYSBwYXR0ZXJuLgogRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuMCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS4wIHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgbWljaGkKICAgICAgICA6CiAgICAgICAgWzEuMF0gCiAgICAgICAgICAgIFhvcHVzIHJlbW92ZWQgYW5kIEZvcm0gRWRpdG9yIGZpeGVkCiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS4wIHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjAgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBtaWNoaQogICAgICAgIDoKICAgICAgICBbMS4wXSAKICAgICAgICAgICAgQXR0cmlidXRlIE5hbWVzcGFjZSBwcm9ibGVtIGZpeGVkCiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS4wIHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjAgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBlZGl0aAogICAgICAgIDoKICAgICAgICBbMS4wXSAKICAgICAgICAgICAgQ2hhbmdlIHRoZSBlcnJvciBtZXNzYWdlCiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS4wIHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjAgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBlZGl0aAogICAgICAgIDoKICAgICAgICBbMS4wXSAKICAgICAgICAgICAgcmVtb3ZlIHRoZSBhdHRyaWJ1dGUgKGRvY3VtZW50LWlkKSBmcm9tIHRoZSBzZXNzaW9uIGFmdGVyIHBhc3RpbmcgaW4gY2FzZSBvZiBjdXQKIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjAgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuMCB1cGRhdGUKICAgICAgICBieQogICAgICAgIGVnbGkKICAgICAgICA6CiAgICAgICAgWzEuMF0gCiAgICAgICAgICAgIEluZGVudGluZyBmaXhlcy4KIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjAgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuMCB1cGRhdGUKICAgICAgICBieQogICAgICAgIG1pY2hpCiAgICAgICAgOgogICAgICAgIFsxLjBdIAogICAgICAgICAgICByZWRpcmVjdHMgYWRkZWQKIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjAgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuMCB1cGRhdGUKICAgICAgICBieQogICAgICAgIGVkaXRoCiAgICAgICAgOgogICAgICAgIFsxLjBdIAogICAgICAgICAgICByZXBsYWNlIG1ldGhvZGUgcmVuYW1lVG8gd2l0aCBjb3B5IGFuZCBkZWxldGUsIGJlY2F1c2UgcmVuYW1lVG8gZmFpbHMgb24gd2luZG93cwogRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuMCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS4wIHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgZWdsaQogICAgICAgIDoKICAgICAgICBbMS4wXSAKICAgICAgICAgICAgV2hpbGUgSSB3YXMgYXQgaXQgSSBhbHNvIHJlbW92ZWQgc29tZSBib2lsZXJwbGF0ZSBjb21tZW50cyBmcm9tCkVjbGlwc2UuCiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS4wIHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjAgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBlZ2xpCiAgICAgICAgOgogICAgICAgIFsxLjBdIAogICAgICAgICAgICBSZW1vdmVkIHVudXNlZCB2YXJpYWJsZS4KIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjAgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuMCB1cGRhdGUKICAgICAgICBieQogICAgICAgIGVnbGkKICAgICAgICA6CiAgICAgICAgWzEuMF0gCiAgICAgICAgICAgIEFkZGVkIG1vcmUgSmF2YWRvYyBhbmQgZml4ZWQgZXhpc3RpbmcgSmF2YWRvYy4KIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjAgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuMCB1cGRhdGUKICAgICAgICBieQogICAgICAgIGVnbGkKICAgICAgICA6CiAgICAgICAgWzEuMF0gCiAgICAgICAgICAgIEFkZGVkIHRoZSBkaXNwbGF5IG9mIGEgd2FybmluZyBpZiB0aGVyZSBhcmUgcmVmZXJlbmNlcyB0byB0aGUgZG9jdW1lbnQKd2hpY2ggaXMgYmVpbmcgYXJjaGl2ZWQvZGVsZXRlZC4KIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjAgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuMCB1cGRhdGUKICAgICAgICBieQogICAgICAgIGVnbGkKICAgICAgICA6CiAgICAgICAgWzEuMF0gCiAgICAgICAgICAgIEFkZGVkIHRoZSBmdW5jdGlvbmFsaXR5IHRvIGZpbmQgcmVmZXJlbmNlcyB0byB0aGUgY3VycmVudCBkb2N1bWVudAood2hpY2ggY2FuIGJlIHVzZWQgdG8gd2FybiBhIHVzZXIgYmVmb3JlIGRlbGV0aW5nIG9yIGFyY2hpdmluZykgdXNpbmcKdGhlIERvY3VtZW50UmVmZXJlbmNlc0hlbHBlciBoZWxwZXIgY2xhc3MuCiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS4wIHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjAgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBlZ2xpCiAgICAgICAgOgogICAgICAgIFsxLjBdIAogICAgICAgICAgICBNb3ZlZCBhIGxvdCBvZiBmdW5jdGlvbmFsaXR5IGludG8gYSBoZWxwZXIgY2xhc3MgZm9yIGVhc2llciByZXVzZSBpbgpvdGhlciB4c3BzLgogRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuMCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS4wIHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgZWRpdGgKICAgICAgICA6CiAgICAgICAgWzEuMF0gCiAgICAgICAgICAgIEluc2VydGlvbiBvZiBSZXNlcnZlZENoZWNrb3V0VGVzdEFjdGlvbgogRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuMCBhZGQ8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS4wIGFkZAogICAgICAgIGJ5CiAgICAgICAgZWRpdGgKICAgICAgICA6CiAgICAgICAgWzEuMF0gCiAgICAgICAgICAgIGFjdGlvbiB0byB0ZXN0IHRoZSBjaGVja091dCBvZiBhIGRvY3VtZW50CiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS4wIHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjAgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBlZ2xpCiAgICAgICAgOgogICAgICAgIFsxLjBdIAogICAgICAgICAgICBUaGUgY29kZSB0aGF0IHdhcyBjb21tZW50ZWQgb3V0IGlzIG5lZWRlZCB3aGVuIGRlbGV0aW5nIGEgbGFuZ3VhZ2UKdmVyc2lvbiB3aGVuIHdlIG5lZWQgdG8gcmVkaXJlY3QgdG8gYW5vdGhlciBsYW5ndWFnZSB2ZXJzaW9uIG9mIHRoZQpkb2N1bWVudCAod2UgY2Fubm90IGJsaW5kbHkgcmVkaXJlY3QgdG8gdGhlIGRlZmF1bHQgbGFuZ3VhZ2UgYXMgaXQKbWlnaHQgaGF2ZSBiZWVuIGRlbGV0ZWQgYXMgd2VsbCkuCiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS4wIHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjAgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBlZ2xpCiAgICAgICAgOgogICAgICAgIFsxLjBdIAogICAgICAgICAgICBNYWtlIHN1cmUgdG8gY2hlY2sgYWxsIG90aGVyIGZpbGVzIGluIHRoZSBsaXZlIGFyZWEgZm9yIGxpbmtzIHRvIHRoZQpjdXJyZW50IGRvY3VtZW50IGJlZm9yZSBkZWFjdGl2YXRpbmcuIElzc3VlIGEgd2FybmluZyBpZiBhbnkgb3RoZXIKZmlsZXMgZG8gY29udGFpbiByZWZlcmVuY2VzLgogRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuMCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS4wIHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgZWdsaQogICAgICAgIDoKICAgICAgICBbMS4wXSAKICAgICAgICAgICAgVGhlIERlZmF1bHREb2N1bWVudElkVG9QYXRoTWFwcGVyIG5vdyBhbHNvIGltcGxlbWVudHMgdGhlClBhdGhUb0RvY3VtZW50SWRNYXBwZXIgaW50ZXJmYWNlLCBpLmUuIGl0IGNhbiBiZSB1c2VkIHRvIHF1ZXJ5IGZvciBhCmRvY3VtZW50LWlkIGdpdmVuIGEgZmlsZSwgYW4gYXJlYSBhbmQgYSBwdWJsaWNhdGlvbi4KIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjAgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuMCB1cGRhdGUKICAgICAgICBieQogICAgICAgIGVnbGkKICAgICAgICA6CiAgICAgICAgWzEuMF0gCiAgICAgICAgICAgIEluZGVudGluZyBmaXhlcy4KIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjAgYWRkPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuMCBhZGQKICAgICAgICBieQogICAgICAgIGVnbGkKICAgICAgICA6CiAgICAgICAgWzEuMF0gCiAgICAgICAgICAgIEludGVyZmFjZSB0aGF0IG9mZmVycyBhIG1ldGhvZCB0byBmZXRjaCB0aGUgZG9jdW1lbnQtaWQgZm9yIGEgZ2l2ZW4KZmlsZSAocHVibGljYXRpb24gYW5kIGFyZWEpLgogRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuMCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS4wIHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgZWdsaQogICAgICAgIDoKICAgICAgICBbMS4wXSAKICAgICAgICAgICAgQWRhcHRlZCB0byB0aGUgbmVlZHMgb2YgZGVhY3RpdmF0ZSBpbiB0aGUgaW5mbyBhcmVhIHdoaWNoIGlzIG9ubHkKaW50ZXJlc3RlZCBpZiBhIGZpbGUgY29udGFpbnMgYSBjZXJ0YWluIHBhdHRlcm4uCiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS4wIHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjAgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBtaWNoaQogICAgICAgIDoKICAgICAgICBbMS4wXSAKICAgICAgICAgICAgWEluY2x1ZGUgZml4ZWQKIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjAgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuMCB1cGRhdGUKICAgICAgICBieQogICAgICAgIGVnbGkKICAgICAgICA6CiAgICAgICAgWzEuMF0gCiAgICAgICAgICAgIFJlbW92ZWQgdW51c2VkIHZhcmlhYmxlLgogRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuMCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS4wIHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgZWdsaQogICAgICAgIDoKICAgICAgICBbMS4wXSAKICAgICAgICAgICAgQWRkZWQgYSBtZXRob2QgdG8gZmV0Y2ggdGhlIGNvbnRlbnQgZGlyZWN0b3J5LgogRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuMCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS4wIHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgZWdsaQogICAgICAgIDoKICAgICAgICBbMS4wXSAKICAgICAgICAgICAgSmF2YWRvYyBmaXhlcy4KIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjAgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuMCB1cGRhdGUKICAgICAgICBieQogICAgICAgIGFuZHJlYXMKICAgICAgICA6CiAgICAgICAgWzEuMF0gCiAgICAgICAgICAgIHJlcGxhY2VkICJ1c2VyLWlkIiB3aXRoICJncm91cC1pZCIKKGZpeGVzIGJ1ZyAjMzU5KQogRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuMCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS4wIHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgZWdsaQogICAgICAgIDoKICAgICAgICBbMS4wXSAKICAgICAgICAgICAgQWRkZWQgdGhlIGNyZWRpdHMgc2VjdGlvbiB3aGljaCBOaWNvbGEgaGFzIGFscmFlZHkgYWRkZWQgdG8gdGhlIGxpdmUKc2l0ZS4KIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjAgcmVtb3ZlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuMCByZW1vdmUKICAgICAgICBieQogICAgICAgIGFuZHJlYXMKICAgICAgICA6CiAgICAgICAgWzEuMF0gCiAgICAgICAgICAgIHJlbW92ZWQgdW5uZWNlc3NhcnkgZmlsZXMKIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjAgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuMCB1cGRhdGUKICAgICAgICBieQogICAgICAgIGFuZHJlYXMKICAgICAgICA6CiAgICAgICAgWzEuMF0gCiAgICAgICAgICAgIGFkZGVkIHJlZmVyZW5jZSB0byBwdWJsaWNhdGlvbiBidWlsZGZpbGUKIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjAgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuMCB1cGRhdGUKICAgICAgICBieQogICAgICAgIGFuZHJlYXMKICAgICAgICA6CiAgICAgICAgWzEuMF0gCiAgICAgICAgICAgIHVzaW5nICJza2luLWRvY3MiIGF0dHJpYnV0ZSBmb3IgZG9jcy1uZXcgc2tpbgogRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuMCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS4wIHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgYW5kcmVhcwogICAgICAgIDoKICAgICAgICBbMS4wXSAKICAgICAgICAgICAgcmVtb3ZlZCBzb21lIGJsYW5rIGxpbmVzCiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS4wIHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjAgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBhbmRyZWFzCiAgICAgICAgOgogICAgICAgIFsxLjBdIAogICAgICAgICAgICB1c2luZyAibGVueWEtbWVudWJhciIgcHJlZml4IGZvciBtZW51IENTUyBjbGFzcwogRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuMCBhZGQ8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS4wIGFkZAogICAgICAgIGJ5CiAgICAgICAgYW5kcmVhcwogICAgICAgIDoKICAgICAgICBbMS4wXSAKICAgICAgICAgICAgYWRkZWQgZm9ycmVzdCBidWlsZCB0YXJnZXQgYW5kIHRlbXBsYXRlCiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS4wIHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjAgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBhbmRyZWFzCiAgICAgICAgOgogICAgICAgIFsxLjBdIAogICAgICAgICAgICB1c2luZyBJU08gZm9ybWF0IGZvciBsYXN0LW1vZGlmaWVkIGRhdGUKIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjAgYWRkPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuMCBhZGQKICAgICAgICBieQogICAgICAgIGdyZWdvcgogICAgICAgIDoKICAgICAgICBbMS4wXSAKICAgICAgICAgICAgZmlyc3QgY3V0IGF0IGEgZ3JlcCB1dGlsCiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS4wIHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjAgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBhbmRyZWFzCiAgICAgICAgOgogICAgICAgIFsxLjBdIAogICAgICAgICAgICBjb21tZW50ZWQgb3V0IGJyZWFkY3J1bWIgcHJlZml4CiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS4wIHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjAgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBhbmRyZWFzCiAgICAgICAgOgogICAgICAgIFsxLjBdIAogICAgICAgICAgICBmaXhlZCBsaW5rIGZyb20gaW5mby9hdXRob3JpbmcvIHRvIG90aGVyIGFyZWFzCiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS4wIHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjAgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBhbmRyZWFzCiAgICAgICAgOgogICAgICAgIFsxLjBdIAogICAgICAgICAgICBwYXNzaW5nIGRvY3VtZW50IGlkIHRvIG1lbnUyeGh0bWwgc3R5bGVzaGVldAogRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuMCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS4wIHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgYW5kcmVhcwogICAgICAgIDoKICAgICAgICBbMS4wXSAKICAgICAgICAgICAgYWRkZWQgbGVueWEuZXZlbnQgaGlkZGVuIGlucHV0IGZpZWxkIHRvIG1ldGFkYXRhIGZvcm0KIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjAgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuMCB1cGRhdGUKICAgICAgICBieQogICAgICAgIGFuZHJlYXMKICAgICAgICA6CiAgICAgICAgWzEuMF0gCiAgICAgICAgICAgIGZvcm0gZWRpdG9yIHRyaWdnZXJzIHdvcmtmbG93CiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS4wIHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjAgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBhbmRyZWFzCiAgICAgICAgOgogICAgICAgIFsxLjBdIAogICAgICAgICAgICByZW1vdmluZyBhbGwgZXh0ZW5zaW9ucyBmcm9tIHRoZSBVUkwKIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjAgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuMCB1cGRhdGUKICAgICAgICBieQogICAgICAgIGdyZWdvcgogICAgICAgIDoKICAgICAgICBbMS4wXSAKICAgICAgICAgICAgY3ZzIHJlZmxlY3RzIGxlbnlhIDEuMgogRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuMCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS4wIHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgZWdsaQogICAgICAgIDoKICAgICAgICBbMS4wXSAKICAgICAgICAgICAgUmVtb3ZlIHRoZSBjcmVhdGUtd29ya2Zsb3cgdXNlY2FzZSBhcyBhbGwgdGhlIGVuaGFuY2VtZW50cyBoYXZlIGJlZW4KcG9ydGVkIGJhY2sgdG8gdGhlIGNyZWF0ZSB1c2VjYXNlLCBzbyBpdCB3YXMgYmFzaWNhbGx5IGEgZHVwbGljYXRlIG9mCnRoZSBjcmVhdGUgd29ya2Zsb3cuCiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS4wIHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjAgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBtaWNoaQogICAgICAgIDoKICAgICAgICBbMS4wXSAKICAgICAgICAgICAgTWlkYXMgZml4ZWQKIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjAgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuMCB1cGRhdGUKICAgICAgICBieQogICAgICAgIG1pY2hpCiAgICAgICAgOgogICAgICAgIFsxLjBdIAogICAgICAgICAgICBtZW50aW9uaW5nIENEQVRBCiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS4wIHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjAgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBtaWNoaQogICAgICAgIDoKICAgICAgICBbMS4wXSAKICAgICAgICAgICAgbm90ZSByZSBwcmVkZWZpbmVkIGVudGl0aWVzIGFkZGVkCiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS4wIHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjAgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBtaWNoaQogICAgICAgIDoKICAgICAgICBbMS4wXSAKICAgICAgICAgICAgbG9nZ2luZyBpbXByb3ZlZCBhbmQgdW5uZWNlc3NhcnkgbWV0aG9kIHJlbW92ZWQKIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjAgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuMCB1cGRhdGUKICAgICAgICBieQogICAgICAgIGVkaXRoCiAgICAgICAgOgogICAgICAgIFsxLjBdIAogICAgICAgICAgICBhZGQgYSBwcm9wZXJ0eSBmb3IgdGhlIHJlZmVuY2Ugbm9kZSwgc28gdGhhdCB0aGUgbm9kZSBpcyBubyBtb3JlIG1vdmVkIHdoaWxlIHJlbmFtaW5nCiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS4wIHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjAgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBlZGl0aAogICAgICAgIDoKICAgICAgICBbMS4wXSAKICAgICAgICAgICAgYWRkIGEgcmVmRG9jdW1lbnRJZCB0byB0aGUgbWV0aG9kIGltcG9ydFN1YnRyZWUKIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjAgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuMCB1cGRhdGUKICAgICAgICBieQogICAgICAgIGVkaXRoCiAgICAgICAgOgogICAgICAgIFsxLjBdIAogICAgICAgICAgICBmaXhlZCBwcm9ibGVtIHdpdGggdGhlIHN1ZmZpeCAtCiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS4wIHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjAgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBlZGl0aAogICAgICAgIDoKICAgICAgICBbMS4wXSAKICAgICAgICAgICAgYWRkZWQgbWV0aG9kIGdldE5leHRTaWJsaW5Eb2N1bWVudElkCiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS4wIHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjAgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBlZGl0aAogICAgICAgIDoKICAgICAgICBbMS4wXSAKICAgICAgICAgICAgY2hhbmdlIGxvZyBtZXNzYWdlcwogRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuMCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS4wIHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgZWRpdGgKICAgICAgICA6CiAgICAgICAgWzEuMF0gCiAgICAgICAgICAgIGNoYW5nZSB0aGUgbG9ncyBtZXNzYWdlcwogRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuMCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS4wIHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgYW5kcmVhcwogICAgICAgIDoKICAgICAgICBbMS4wXSAKICAgICAgICAgICAgY2hlY2tpbmcgaWYgc2l0ZXRyZWUgbm9kZSBleGlzdHMKIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjAgYWRkPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuMCBhZGQKICAgICAgICBieQogICAgICAgIG1pY2hpCiAgICAgICAgOgogICAgICAgIFsxLjBdIAogICAgICAgICAgICBIVE1MIEZvcm0gRWRpdG9yIGRvY3Ugc3RhcnRlZAogRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuMCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS4wIHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgCiAgICAgICAgOgogICAgICAgIFsxLjBdIAogICAgICAgICAgICBUaGlzIGNvbW1pdCB3YXMgbWFudWZhY3R1cmVkIGJ5IGN2czJzdm4gdG8gY3JlYXRlIHRhZyAnVl8yMDAzLTA5LTIzJy4gRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuMCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS4wIHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgYW5kcmVhcwogICAgICAgIDoKICAgICAgICBbMS4wXSAKICAgICAgICAgICAgZ29pbmcgdG8gaW5kZXguaHRtbCBhZnRlciBkZWxldGUgdHJhc2gKIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjAgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuMCB1cGRhdGUKICAgICAgICBieQogICAgICAgIGFuZHJlYXMKICAgICAgICA6CiAgICAgICAgWzEuMF0gCiAgICAgICAgICAgIGFkZGVkIGNhbmNlbCBidXR0b24KIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjAgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuMCB1cGRhdGUKICAgICAgICBieQogICAgICAgIGFuZHJlYXMKICAgICAgICA6CiAgICAgICAgWzEuMF0gCiAgICAgICAgICAgIGZvcndhcmRpbmcgbGVueWEuZXZlbnQgcmVxdWVzdCBwYXJhbWV0ZXIKIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjAgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuMCB1cGRhdGUKICAgICAgICBieQogICAgICAgIGdyZWdvcgogICAgICAgIDoKICAgICAgICBbMS4wXSAKICAgICAgICAgICAgZml4aW5nIGxhbmd1YWdlCiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS4wIHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjAgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICAKICAgICAgICA6CiAgICAgICAgWzEuMF0gCiAgICAgICAgICAgIFRoaXMgY29tbWl0IHdhcyBtYW51ZmFjdHVyZWQgYnkgY3ZzMnN2biB0byBjcmVhdGUgdGFnICdWXzIwMDMtMDktMjInLiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS4wIHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjAgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBhbmRyZWFzCiAgICAgICAgOgogICAgICAgIFsxLjBdIAogICAgICAgICAgICBjaGVja2luZyBpZiBldmVudCBpcyBub3QgbnVsbCBpbiB3b3JrZmxvdyBoaXN0b3J5IGxvb3AKIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjAgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuMCB1cGRhdGUKICAgICAgICBieQogICAgICAgIGFuZHJlYXMKICAgICAgICA6CiAgICAgICAgWzEuMF0gCiAgICAgICAgICAgIGFsbG93aW5nIG11bHRpcGxlIHJvbGUgSURzIGluIFJvbGVDb25kaXRpb24KIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjAgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuMCB1cGRhdGUKICAgICAgICBieQogICAgICAgIGFuZHJlYXMKICAgICAgICA6CiAgICAgICAgWzEuMF0gCiAgICAgICAgICAgIGFkZGVkIHBhc3N3b3JkIGZpZWxkcyB0byAiYWRkIHVzZXIiIHNjcmVlbgogRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuMCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS4wIHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgbWljaGkKICAgICAgICA6CiAgICAgICAgWzEuMF0gCiAgICAgICAgICAgIGNoZWNraW5nIGZvciBCWEVORwogRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuMCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS4wIHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgbWljaGkKICAgICAgICA6CiAgICAgICAgWzEuMF0gCiAgICAgICAgICAgIEJYRU5HIGFkZGVkIHRvIHRoZSBGaWxlIG1lbnUKIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjAgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuMCB1cGRhdGUKICAgICAgICBieQogICAgICAgIGFuZHJlYXMKICAgICAgICA6CiAgICAgICAgWzEuMF0gCiAgICAgICAgICAgIGNoYW5nZWQgY29uc3RydWN0b3IgdG8gc3RhdGljIGV4dHJhY3RQYXJhbWV0ZXJzIG1ldGhvZAogRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuMCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS4wIHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgYW5kcmVhcwogICAgICAgIDoKICAgICAgICBbMS4wXSAKICAgICAgICAgICAgYWx3YXlzIGNyZWF0aW5nIHdvcmtmbG93IGludm9rZXIKIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjAgYWRkPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuMCBhZGQKICAgICAgICBieQogICAgICAgIGFuZHJlYXMKICAgICAgICA6CiAgICAgICAgWzEuMF0gCiAgICAgICAgICAgIGFkZGVkIFdvcmtmbG93SW52b2tlckFjdGlvbgogRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuMCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS4wIHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgYW5kcmVhcwogICAgICAgIDoKICAgICAgICBbMS4wXSAKICAgICAgICAgICAgZGVjbGFyaW5nIHdvcmtmbG93IGludm9rZXIgYWN0aW9uCiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS4wIHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjAgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBhbmRyZWFzCiAgICAgICAgOgogICAgICAgIFsxLjBdIAogICAgICAgICAgICAtIHVzaW5nIFNpdGV0cmVlTW9kdWxlIHRvIG9idGFpbiBzaXRldHJlZSBub2RlCi0gZml4ZWQgdmVyc2lvbiBsb29wIGJ1ZwogRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuMCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS4wIHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgZmVsaXgKICAgICAgICA6CiAgICAgICAgWzEuMF0gCiAgICAgICAgICAgIGZpeGVkIHBhc3N3b3JkIHRlbXBsYXRlIGJ1ZwogRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuMCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS4wIHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgZmVsaXgKICAgICAgICA6CiAgICAgICAgWzEuMF0gCiAgICAgICAgICAgIHBhc3NpbmcgImxkYXAiIHZhcmlhYmxlIGZyb20gZmxvd3NjcmlwdCB0byB4c3AKIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjAgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuMCB1cGRhdGUKICAgICAgICBieQogICAgICAgIGFuZHJlYXMKICAgICAgICA6CiAgICAgICAgWzEuMF0gCiAgICAgICAgICAgIGFwcGx5aW5nIHNjaGVkdWxlciBzdHlsZXNoZWV0IHRvIGRlYWN0aXZhdGUgc2NyZWVuCiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS4wIHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjAgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBhbmRyZWFzCiAgICAgICAgOgogICAgICAgIFsxLjBdIAogICAgICAgICAgICAtIGFkYXB0ZWQgbGF5b3V0IHRvIHB1Ymxpc2ggc2NyZWVuCi0gaW5jbHVkaW5nIHNjaGVkdWxlciBmb3JtCiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS4wIHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjAgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBhbmRyZWFzCiAgICAgICAgOgogICAgICAgIFsxLjBdIAogICAgICAgICAgICB1c2luZyBTaXRldHJlZU1vZHVsZSB0byBvYnRhaW4gbGl2ZSB0cmVlCiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS4wIHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjAgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBhbmRyZWFzCiAgICAgICAgOgogICAgICAgIFsxLjBdIAogICAgICAgICAgICBjb21tZW50ZWQgb3V0IGFsZXJ0IGJveAogRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuMCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS4wIHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgYW5kcmVhcwogICAgICAgIDoKICAgICAgICBbMS4wXSAKICAgICAgICAgICAgcmVtb3ZlZCB1bnVzZWQgaW1wb3J0CiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS4wIHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjAgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBhbmRyZWFzCiAgICAgICAgOgogICAgICAgIFsxLjBdIAogICAgICAgICAgICBmaXhlZCBlbXB0eSBleHByZXNzaW9uIGJ1ZwogRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuMCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS4wIHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgYW5kcmVhcwogICAgICAgIDoKICAgICAgICBbMS4wXSAKICAgICAgICAgICAgYWRkZWQgbGFuZ3VhZ2Utc3VmZml4IGF0dHJpYnV0ZSB0byBuYXZpZ2F0aW9uIHRyZWUgbm9kZXMKIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjAgYWRkPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuMCBhZGQKICAgICAgICBieQogICAgICAgIGVkaXRoCiAgICAgICAgOgogICAgICAgIFsxLjBdIAogICAgICAgICAgICBUYXNrIHRvIGNvcHkgdGhlIHBvbGljaWVzIGZpbGVzCiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS4wIGFkZDwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjAgYWRkCiAgICAgICAgYnkKICAgICAgICBhbmRyZWFzCiAgICAgICAgOgogICAgICAgIFsxLjBdIAogICAgICAgICAgICBhZGRlZCBTaXRldHJlZU1vZHVsZQogRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuMCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS4wIHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgYW5kcmVhcwogICAgICAgIDoKICAgICAgICBbMS4wXSAKICAgICAgICAgICAgc2ltcGxpZmllZCBzb21lIGNvZGUgc25pcHBldHMKIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjAgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuMCB1cGRhdGUKICAgICAgICBieQogICAgICAgIGFuZHJlYXMKICAgICAgICA6CiAgICAgICAgWzEuMF0gCiAgICAgICAgICAgIHNob3dpbmcgcGFzc3dvcmQgZm9ybSBvbmx5IGZvciBub24tTERBUCB1c2VycwogRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuMCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS4wIHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgYW5kcmVhcwogICAgICAgIDoKICAgICAgICBbMS4wXSAKICAgICAgICAgICAgYWRkZWQgbGRhcCBhdHRyaWJ1dGUKIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjAgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuMCB1cGRhdGUKICAgICAgICBieQogICAgICAgIGFuZHJlYXMKICAgICAgICA6CiAgICAgICAgWzEuMF0gCiAgICAgICAgICAgIC0gZml4ZWQgdXNlciBpZCBidWcKLSBzaG93aW5nIG5hbWUgb25seSBmb3Igbm9uLUxEQVAgdXNlcnMKIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjAgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuMCB1cGRhdGUKICAgICAgICBieQogICAgICAgIGFuZHJlYXMKICAgICAgICA6CiAgICAgICAgWzEuMF0gCiAgICAgICAgICAgIGNoYW5nZWQgbGl2ZSByb2xlIGZyb20gInZpc2l0b3IiIHRvICJ2aXNpdCIKIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjAgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuMCB1cGRhdGUKICAgICAgICBieQogICAgICAgIG1pY2hpCiAgICAgICAgOgogICAgICAgIFsxLjBdIAogICAgICAgICAgICBhdG9tIGFwaSBkZWJ1Z2dpbmcgYWRkZWQKIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjAgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuMCB1cGRhdGUKICAgICAgICBieQogICAgICAgIG1pY2hpCiAgICAgICAgOgogICAgICAgIFsxLjBdIAogICAgICAgICAgICBDREFUQSB3b3JrcyBub3cKIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjAgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuMCB1cGRhdGUKICAgICAgICBieQogICAgICAgIGFuZHJlYXMKICAgICAgICA6CiAgICAgICAgWzEuMF0gCiAgICAgICAgICAgIGxpbmsgcG9pbnRpbmcgZnJvbSBwdWJsaXNoaW5nIHNjcmVlbiB0byBzY2hlZHVsZXIgaW5mbyB0YWIKIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjAgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuMCB1cGRhdGUKICAgICAgICBieQogICAgICAgIGFuZHJlYXMKICAgICAgICA6CiAgICAgICAgWzEuMF0gCiAgICAgICAgICAgIHNob3dpbmcgZXJyb3IgbWVzc2FnZSB3aGVuIHB1Ymxpc2hpbmcgaXMgbm90IHBvc3NpYmxlCiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS4wIHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjAgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBhbmRyZWFzCiAgICAgICAgOgogICAgICAgIFsxLjBdIAogICAgICAgICAgICBhZGRlZCBnZXRQYXJlbnQoKSBhbmQgZ2V0UGFyZW50KGxhbmd1YWdlKQogRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuMCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS4wIHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgYW5kcmVhcwogICAgICAgIDoKICAgICAgICBbMS4wXSAKICAgICAgICAgICAgZml4ZWQgbGlua3MgdG8gZ3JvdXBzCiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS4wIHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjAgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBhbmRyZWFzCiAgICAgICAgOgogICAgICAgIFsxLjBdIAogICAgICAgICAgICByZW1vdmVkICZsdDtlbSZndDsgdGFncyBmb3IgZ3JvdXBzIGxpc3QKIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjAgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuMCB1cGRhdGUKICAgICAgICBieQogICAgICAgIGFuZHJlYXMKICAgICAgICA6CiAgICAgICAgWzEuMF0gCiAgICAgICAgICAgIGZpeGVkIGxpbmVicmVha3MgaW4gbWVtYmVycyBsaXN0CiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS4wIHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjAgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBhbmRyZWFzCiAgICAgICAgOgogICAgICAgIFsxLjBdIAogICAgICAgICAgICBzaG93aW5nIGVycm9yIG1lc3NhZ2UgaWYgY2hpbGQgZG9jdW1lbnRzIGFyZSBsaXZlCiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS4wIHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjAgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBhbmRyZWFzCiAgICAgICAgOgogICAgICAgIFsxLjBdIAogICAgICAgICAgICBhZGRlZCBtZXRob2QgdG8gb2J0YWluIHdlYmFwcCBVUkwgYmFzZWQgb24gY29udGV4dCBhbmQgcmVxdWVzdCBVUkkKIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjAgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuMCB1cGRhdGUKICAgICAgICBieQogICAgICAgIGFuZHJlYXMKICAgICAgICA6CiAgICAgICAgWzEuMF0gCiAgICAgICAgICAgIGFkZGVkIG1ldGhvZCB0byBvYnRhaW4gb25seSB0aGUgY2hpbGRyZW4gZm9yIGEgY2VydGFpbiBsYW5ndWFnZQogRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuMCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS4wIHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgZWdsaQogICAgICAgIDoKICAgICAgICBbMS4wXSAKICAgICAgICAgICAgVGhlIGxkYXBpZCB3YXMgaGFyZCBjb2RlZCB3aGVuIGRvaW5nIHRoZSBsZGFwIGxvb2t1cC4gVGhpcyBpcyBmaXhlZApub3cuCiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS4wIHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjAgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBhbmRyZWFzCiAgICAgICAgOgogICAgICAgIFsxLjBdIAogICAgICAgICAgICAtIGFkZGVkIHNldExhYmVsKCkgbWV0aG9kIHRvIHNpdGV0cmVlIGFuZCBzaXRldHJlZW5vZGUKLSBmaXhlZCBsYWJlbCBwdWJsaXNoaW5nIGJ1ZwogRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuMCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS4wIHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgZWdsaQogICAgICAgIDoKICAgICAgICBbMS4wXSAKICAgICAgICAgICAgTWFrZSBzdXJlIHRoZSBvdmVyd3JpdGUtdXBsb2FkcyBwYXJhbWV0ZXIgaXMgc2V0IHRvIGFsbG93IHNvIHRoYXQKcmVwZWF0ZWQgdXBsb2FkcyBhcmUgbm90IHJlbmFtZWQuCiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS4wIGFkZDwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjAgYWRkCiAgICAgICAgYnkKICAgICAgICBlZ2xpCiAgICAgICAgOgogICAgICAgIFsxLjBdIAogICAgICAgICAgICBBZGRlZCBhbiBhY3Rpb24gdGhhdCBjaGVja3MgZm9yIHRoZSBleGlzdGVuY2Ugb2YgYSBkb2N1bWVudC1pZCBpbiB0aGUKYXV0aG9yaW5nIHNpdGUgdHJlZS4gVGhpcyBpcyB1c2VkIGluIHRoZSBjcmVhdGlvbiB1c2VjYXNlLiBJZiBhCmNoaWxkLWlkIGlzIGFscmVhZHkgdGFrZW4gcmVkaXJlY3QgYmFjayB0byB0aGUgY3JlYXRpb24gc2NyZWVuIGFuZApkaXNwbGV5IGFuIGVycm9yIG1lc3NhZ2UuCiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS4wIHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjAgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBlZGl0aAogICAgICAgIDoKICAgICAgICBbMS4wXSAKICAgICAgICAgICAgdGhlIG5vZGUgaXMgaW5zZXJ0ZWQgaW4gdGhlIGxpdmUgdHJlZSBhdCB0aGUgcmlnaHQgcGxhY2UKY2FsbCBtZXRob2QgYWRkTm9kZSB3aXRoIHRoZSBkb2N1bWVudCBpZCBjb3JyZXNwb25kaW5nIHRvIHRoZQpuZXh0IHNpYmxpbmcgbm9kZQogRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuMCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS4wIHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgZWRpdGgKICAgICAgICA6CiAgICAgICAgWzEuMF0gCiAgICAgICAgICAgIG1ldGhvZCBnZXROZXh0U2libGluZ3MgYWRkZWQKIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjAgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuMCB1cGRhdGUKICAgICAgICBieQogICAgICAgIGVkaXRoCiAgICAgICAgOgogICAgICAgIFsxLjBdIAogICAgICAgICAgICBhZGRlZCBtZXRob2RzIHRvIGluc2VydCBhIG5vZGUgYmVmb3JlIGFub3RoZXIgcmVmZXJlbmNlIG5vZGUKIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjAgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuMCB1cGRhdGUKICAgICAgICBieQogICAgICAgIGFuZHJlYXMKICAgICAgICA6CiAgICAgICAgWzEuMF0gCiAgICAgICAgICAgIHJldHVybmluZyBudWxsIHdoZW4gcmVxdWVzdGVkIHZhcmlhYmxlIGRvZXMgbm90IGV4aXN0IChub3QgdGhyb3dpbmcgZXhjZXB0aW9uKQogRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuMCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS4wIHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgYW5kcmVhcwogICAgICAgIDoKICAgICAgICBbMS4wXSAKICAgICAgICAgICAgcmVwbGFjZWQgZmVhdGhlciB3aXRoICJhZG1pbiIgdGV4dAogRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuMCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS4wIHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgbWljaGkKICAgICAgICA6CiAgICAgICAgWzEuMF0gCiAgICAgICAgICAgIGxhbmd1YWdlIGJ1ZyBmaXhlZCB3aGljaCBvY2N1cmVkIGR1cmluZyB3b3JrZmxvdyBpbml0aWFsaXphdGlvbgogRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuMCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS4wIHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgZWRpdGgKICAgICAgICA6CiAgICAgICAgWzEuMF0gCiAgICAgICAgICAgIERlY2xhcmF0aW9uIG9mIHRoZSBEb2N1bWVudEluZGV4VHJhbnNmb3JtZXIKIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjAgYWRkPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuMCBhZGQKICAgICAgICBieQogICAgICAgIGVkaXRoCiAgICAgICAgOgogICAgICAgIFsxLjBdIAogICAgICAgICAgICBUcmFuc2Zvcm1lciB0byBsaXN0IHRoZSBjaGlsZHJlbiBvZiBhIGRvY3VtZW50CiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS4wIHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjAgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBtaWNoaQogICAgICAgIDoKICAgICAgICBbMS4wXSAKICAgICAgICAgICAgaXNfbGl2ZSBpcyBub3QgcmVhbGx5IG5lY2Vzc2FyeQogRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuMCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS4wIHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgYW5kcmVhcwogICAgICAgIDoKICAgICAgICBbMS4wXSAKICAgICAgICAgICAgb25seSB3aGl0ZXNwYWNlIGNoYW5nZXMKIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjAgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuMCB1cGRhdGUKICAgICAgICBieQogICAgICAgIGFuZHJlYXMKICAgICAgICA6CiAgICAgICAgWzEuMF0gCiAgICAgICAgICAgIHJlbW92ZWQgaXRlbXMgZnJvbSB1bnVzZWQgbWVudXMKIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjAgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuMCB1cGRhdGUKICAgICAgICBieQogICAgICAgIGFuZHJlYXMKICAgICAgICA6CiAgICAgICAgWzEuMF0gCiAgICAgICAgICAgIGRpc2FibGluZyBlbXB0eSBtZW51cwogRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuMCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS4wIHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgYW5kcmVhcwogICAgICAgIDoKICAgICAgICBbMS4wXSAKICAgICAgICAgICAgcmVtb3ZlZCB0YWJzCiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS4wIHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjAgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBhbmRyZWFzCiAgICAgICAgOgogICAgICAgIFsxLjBdIAogICAgICAgICAgICBvcGVuIG5ldyBicm93c2VyIHdpbmRvdyBmb3IgbGl2ZSB0YWIKIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjAgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuMCB1cGRhdGUKICAgICAgICBieQogICAgICAgIGFuZHJlYXMKICAgICAgICA6CiAgICAgICAgWzEuMF0gCiAgICAgICAgICAgIHVzaW5nIEBjdXJyZW50ID0gJ3RydWUnIGF0dHJpYnV0ZSB0byBjaGVjayBmb3IgY3VycmVudGx5IHNlbGVjdGVkIG5vZGUKIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjAgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuMCB1cGRhdGUKICAgICAgICBieQogICAgICAgIGFuZHJlYXMKICAgICAgICA6CiAgICAgICAgWzEuMF0gCiAgICAgICAgICAgIG9ubHkgd2hpdGVzcGFjZSBjaGFuZ2VzCiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS4wIHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjAgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBhbmRyZWFzCiAgICAgICAgOgogICAgICAgIFsxLjBdIAogICAgICAgICAgICBjaGFuZ2VkIG91dHB1dCBtZXRob2QgdG8gWE1MIChvdGhlcndpc2UgYSBjb21tZW50cy9DREFUQSBwcm9ibGVtIG9jY3VycykKIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjAgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuMCB1cGRhdGUKICAgICAgICBieQogICAgICAgIGFuZHJlYXMKICAgICAgICA6CiAgICAgICAgWzEuMF0gCiAgICAgICAgICAgIG9ubHkgd2hpdGVzcGFjZSBjaGFuZ2VzCiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS4wIHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjAgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBlZ2xpCiAgICAgICAgOgogICAgICAgIFsxLjBdIAogICAgICAgICAgICBNYWtlIHN1cmUgdGhlIGNhbmNlbCBidXR0b24gd29ya3MuCiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS4wIHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjAgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBhbmRyZWFzCiAgICAgICAgOgogICAgICAgIFsxLjBdIAogICAgICAgICAgICByZXZlcnRpbmcgYWNjaWRlbnRpYWwgY29tbWl0CiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS4wIHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjAgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBlZ2xpCiAgICAgICAgOgogICAgICAgIFsxLjBdIAogICAgICAgICAgICBBZGRlZCBhIEZJWE1FIGFib3V0IHRoZSBmYWN0IHRoYXQgaXQgd291bGQgYmUgbmljZXIgaWYgdGhlIHJlbmFtZSBvZiBhCmxhYmVsIHdvdWxkIG5vdCBmaXJzdCByZW1vdmUgYW5kIHRoZW4gcmVhZGQgdGhlIGxhYmVsLgogRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuMCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS4wIHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgZWdsaQogICAgICAgIDoKICAgICAgICBbMS4wXSAKICAgICAgICAgICAgRml4ZWQgdGhlIENhbmNlbCBidXR0b24uCiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS4wIHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjAgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBlZ2xpCiAgICAgICAgOgogICAgICAgIFsxLjBdIAogICAgICAgICAgICBBZGRlZCByZWZlcmVyIHRvIGJlIHVzZWQgaW4gY2FzZSBvZiBhICdDYW5jZWwnCiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS4wIHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjAgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBhbmRyZWFzCiAgICAgICAgOgogICAgICAgIFsxLjBdIAogICAgICAgICAgICBmaXhlZCBsaW5rcyBmcm9tIGFkbWluIHRvIG90aGVyIGFyZWFzCiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS4wIGFkZDwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjAgYWRkCiAgICAgICAgYnkKICAgICAgICBlZ2xpCiAgICAgICAgOgogICAgICAgIFsxLjBdIAogICAgICAgICAgICBBZGRlZCBhbiBhbnQgdGFzayB0byByZW5hbWUgdGhlIGxhYmVsLgogRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuMCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS4wIHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgZWdsaQogICAgICAgIDoKICAgICAgICBbMS4wXSAKICAgICAgICAgICAgKiAiRml4ZWQiIHRoZSBwYXJhbSBuYW1lcyB0byBjb250YWluIG5vICctJy4gQXBwYXJlbnRseSB0aGlzIHN0aWxsCiAgY2F1c2VzIHByb2JsZW1zIHVuZGVyIExpbnV4IHdpdGggeHNscy4KKiBQYXNzIHRoZSBhcmVhIGZyb20gdGhlIHBhZ2UtZW52ZWxvcGUgYXMgdGhlIHNpdGVtYXAgYXJlYSBjYW4gY29udGFpbgogICJpbmZvLSIuCiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS4wIHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjAgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBlZ2xpCiAgICAgICAgOgogICAgICAgIFsxLjBdIAogICAgICAgICAgICAqIENoYW5nZWQgdGhlIG5hbWUgb2YgdGhlIHNjcmVlbiB0byBtYXRjaCB0aGUgbWVudSBlbnRyeS4KKiAiRml4ZWQiIHRoZSBwYXJhbSBuYW1lcyB0byBjb250YWluIG5vICctJy4gQXBwYXJlbnRseSB0aGlzIHN0aWxsCiAgY2F1c2VzIHByb2JsZW1zIHVuZGVyIExpbnV4IHdpdGggeHNscy4KKiBBZGRlZCBhIHBhcmFtIGZvciB0aGUgbGFuZ3VhZ2Ugb2YgdGhlIGxhYmVsIHRoYXQgaXMgdG8gYmUgY2hhbmdlZC4KIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjAgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuMCB1cGRhdGUKICAgICAgICBieQogICAgICAgIGVnbGkKICAgICAgICA6CiAgICAgICAgWzEuMF0gCiAgICAgICAgICAgIEZpeGVkIHRoZSBpbmRlbnRpbmcuCiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS4wIHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjAgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBlZ2xpCiAgICAgICAgOgogICAgICAgIFsxLjBdIAogICAgICAgICAgICBSZW1vdmVkIGFuIHVudXNlZCB2YXJpYWJsZS4KIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjAgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuMCB1cGRhdGUKICAgICAgICBieQogICAgICAgIGVnbGkKICAgICAgICA6CiAgICAgICAgWzEuMF0gCiAgICAgICAgICAgIEFkZGVkIHNvbWUgbW9yZSBkb2N1bWVudGF0aW9uIHRvIGEgZG9jc3RyaW5nLgogRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuMCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS4wIHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgZWdsaQogICAgICAgIDoKICAgICAgICBbMS4wXSAKICAgICAgICAgICAgQWRkZWQgYSBtZXRob2QgdG8gc2V0IChpLmUuIGNoYW5nZSkgdGhlIGxhYmVsLgpDb21wbGV0ZWQgYWxsIHRoZSBkb2Mgc3RyaW5ncy4KIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjAgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuMCB1cGRhdGUKICAgICAgICBieQogICAgICAgIGFuZHJlYXMKICAgICAgICA6CiAgICAgICAgWzEuMF0gCiAgICAgICAgICAgIGdldHRpbmcgZG9jdHlwZSBmcm9tIHBhZ2UgZW52ZWxvcGUKIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjAgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuMCB1cGRhdGUKICAgICAgICBieQogICAgICAgIGFuZHJlYXMKICAgICAgICA6CiAgICAgICAgWzEuMF0gCiAgICAgICAgICAgIGFkZGVkIFVSSVBhcmFtZXRlcml6ZXIgY29tcG9uZW50CiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS4wIHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjAgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBhbmRyZWFzCiAgICAgICAgOgogICAgICAgIFsxLjBdIAogICAgICAgICAgICBhZGRlZCBVUklQYXJhbWV0ZXJpemVyIHJvbGUKIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjAgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuMCB1cGRhdGUKICAgICAgICBieQogICAgICAgIGFuZHJlYXMKICAgICAgICA6CiAgICAgICAgWzEuMF0gCiAgICAgICAgICAgIG9ubHkgd2hpdGVzcGFjZSBjaGFuZ2VzCiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS4wIGFkZDwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjAgYWRkCiAgICAgICAgYnkKICAgICAgICBhbmRyZWFzCiAgICAgICAgOgogICAgICAgIFsxLjBdIAogICAgICAgICAgICAtIGZhY3RvcmVkIG91dCBVUklQYXJhbWV0ZXJpemVyIGZyb20gYWN0aW9uCi0gYWRkZWQgZG9jdW1lbnQtdHlwZSBwYXJhbWV0ZXIgdG8gcGFnZSBlbnZlbG9wZSBtb2R1bGUKIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjAgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuMCB1cGRhdGUKICAgICAgICBieQogICAgICAgIG1pY2hpCiAgICAgICAgOgogICAgICAgIFsxLjBdIAogICAgICAgICAgICBhZGRlZCBBdG9tIGFzIG5hbWUKIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjAgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuMCB1cGRhdGUKICAgICAgICBieQogICAgICAgIG1pY2hpCiAgICAgICAgOgogICAgICAgIFsxLjBdIAogICAgICAgICAgICBhZGRlZCB0aGUgbGVnYWwgZGlyZWN0b3J5IHRvIHRoZSBidWlsZCBwcm9jZXNzCiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS4wIHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjAgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBhbmRyZWFzCiAgICAgICAgOgogICAgICAgIFsxLjBdIAogICAgICAgICAgICByZXBsYWNlZCAiSW5mbyIgd2l0aCAiU2l0ZSIKIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjAgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuMCB1cGRhdGUKICAgICAgICBieQogICAgICAgIGFuZHJlYXMKICAgICAgICA6CiAgICAgICAgWzEuMF0gCiAgICAgICAgICAgIC0gcmVtb3ZlZCBvYnNvbGV0ZSB0YWdzCi0gcHJldHR5IHByaW50aW5nCiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS4wIHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjAgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBhbmRyZWFzCiAgICAgICAgOgogICAgICAgIFsxLjBdIAogICAgICAgICAgICBtb3ZlZCB3b3JrZmxvdyBoYW5kbGluZyB0byBjb3JlCiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS4wIHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjAgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBhbmRyZWFzCiAgICAgICAgOgogICAgICAgIFsxLjBdIAogICAgICAgICAgICAtIHNpbXBsaWZpZWQgc29tZSBwaXBlbGluZXMKLSB3b3JrYXJvdW5kIGZvciB4c2x0IHBhcmFtIGh5cGhlbiBidWcKIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjAgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuMCB1cGRhdGUKICAgICAgICBieQogICAgICAgIGFuZHJlYXMKICAgICAgICA6CiAgICAgICAgWzEuMF0gCiAgICAgICAgICAgIGltcGxlbWVudGluZyBuZXcgbWVudSBoYW5kbGluZyBpbiBhZG1pbiBhcmVhCiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS4wIHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjAgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBhbmRyZWFzCiAgICAgICAgOgogICAgICAgIFsxLjBdIAogICAgICAgICAgICBmaXhlZCBhZG1pbiBhcmVhIENTUyBwcm9ibGVtCiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS4wIHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjAgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBhbmRyZWFzCiAgICAgICAgOgogICAgICAgIFsxLjBdIAogICAgICAgICAgICAtIHJlcGFpcmVkIHNvbWUgVVJMcwotIGNvbW1lbnRlZCBvdXQgaGFuZGxlLWVycm9ycyAod2UgY2FuIHJlbW92ZSB0aGUgY29tbWVudCBpbiB0aGUgcmVsZWFzZSkKIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjAgYWRkPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuMCBhZGQKICAgICAgICBieQogICAgICAgIGVnbGkKICAgICAgICA6CiAgICAgICAgWzEuMF0gCiAgICAgICAgICAgIEFkZGVkIGEgcGlwZWxpbmUgZm9yIHJlbmFtaW5nIG9mIGxhYmVscyBhbmQgdGhlIGNvcnJlc3BvbmRpbmcgeHNsIHRvCmNyZWF0ZSB0aGUgcmVuYW1lIGxhYmVsIHNjcmVlbi4KIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjAgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuMCB1cGRhdGUKICAgICAgICBieQogICAgICAgIGVnbGkKICAgICAgICA6CiAgICAgICAgWzEuMF0gCiAgICAgICAgICAgIEZpeCB0eXBvIGluIGRvY3VtZW50YXRpb24uCiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS4wIHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjAgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBlZ2xpCiAgICAgICAgOgogICAgICAgIFsxLjBdIAogICAgICAgICAgICBFeHBvcnQgdGhlIGdldExhYmVsIG1ldGhvZCBvZiB0aGUgZG9jdW1lbnQgdGhyb3VnaCB0aGUgcGFnZSBlbnZlbG9wZQptb2R1bGUuCiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS4wIHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjAgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBlZ2xpCiAgICAgICAgOgogICAgICAgIFsxLjBdIAogICAgICAgICAgICBBZGRlZCBhIG1ldGhvZCB0byBxdWVyeSB0aGUgYXNzb2NpYXRlZCBsYWJlbCBvZiBhIGRvY3VtZW50LgogRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuMCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS4wIHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgZWdsaQogICAgICAgIDoKICAgICAgICBbMS4wXSAKICAgICAgICAgICAgSW1wbGVtZW50ZWQgYSBtZXRob2QgdG8gcXVlcnkgdGhlIGFzc29jaWF0ZWQgbGFiZWwgb2YgYSBkb2N1bWVudC4KIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjAgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuMCB1cGRhdGUKICAgICAgICBieQogICAgICAgIGFuZHJlYXMKICAgICAgICA6CiAgICAgICAgWzEuMF0gCiAgICAgICAgICAgIHByZXR0eSBwcmludGluZwogRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuMCByZW1vdmU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS4wIHJlbW92ZQogICAgICAgIGJ5CiAgICAgICAgYW5kcmVhcwogICAgICAgIDoKICAgICAgICBbMS4wXSAKICAgICAgICAgICAgLSByZWZsZWN0aW5nIGNoYW5nZXMgdG8gbGVueWEgcGFnZSBwcm9jZXNzaW5nCi0gcmVtb3ZlZCBvYnNvbGV0ZSBzdHlsZXNoZWV0cwogRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuMCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS4wIHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgYW5kcmVhcwogICAgICAgIDoKICAgICAgICBbMS4wXSAKICAgICAgICAgICAgLSBlbmFibGluZyBhc3NlcnRpb25zCi0gZGlzYWJsaW5nIG1pbWUtdHlwZSBjaGVjawogRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuMCBhZGQ8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS4wIGFkZAogICAgICAgIGJ5CiAgICAgICAgYW5kcmVhcwogICAgICAgIDoKICAgICAgICBbMS4wXSAKICAgICAgICAgICAgaW1wbGVtZW50ZWQgbmV3IExlbnlhIHBhZ2UgcHJvY2Vzc2luZwogRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuMCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS4wIHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgYW5kcmVhcwogICAgICAgIDoKICAgICAgICBbMS4wXSAKICAgICAgICAgICAgYWRkZWQgc3R5bGUgaW5mb3JtYXRpb24gZm9yIGxlbnlhLW1lbnViYXIgYW5kIGxlbnlhLWNtc2JvZHkKIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjAgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuMCB1cGRhdGUKICAgICAgICBieQogICAgICAgIGFuZHJlYXMKICAgICAgICA6CiAgICAgICAgWzEuMF0gCiAgICAgICAgICAgIHJlZmxlY3RpbmcgY2hhbmdlcyB0byBsZW55YSBwYWdlIHByb2Nlc3NpbmcKIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjAgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuMCB1cGRhdGUKICAgICAgICBieQogICAgICAgIGFuZHJlYXMKICAgICAgICA6CiAgICAgICAgWzEuMF0gCiAgICAgICAgICAgIC0gYWRkZWQgbWVudSBuYW1lc3BhY2UKLSByZW1vdmVkIHVybC1pbmZvCi0gcmVtb3ZlZCBsZW55YSB1dGlsIGxvZ2ljc2hlZXQKIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjAgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuMCB1cGRhdGUKICAgICAgICBieQogICAgICAgIG1pY2hpCiAgICAgICAgOgogICAgICAgIFsxLjBdIAogICAgICAgICAgICBUZXN0aW5nIHdlYnNpdGUgYWRkZWQKIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjAgYWRkPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuMCBhZGQKICAgICAgICBieQogICAgICAgIG1pY2hpCiAgICAgICAgOgogICAgICAgIFsxLjBdIAogICAgICAgICAgICBleGNlcHRpb24gbWVzc2FnZQogRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuMCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS4wIHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgbWljaGkKICAgICAgICA6CiAgICAgICAgWzEuMF0gCiAgICAgICAgICAgIHNlYXJjaC1yZXN1bHRzIG9uIHRoZSBmbHkKIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjAgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuMCB1cGRhdGUKICAgICAgICBieQogICAgICAgIG1pY2hpCiAgICAgICAgOgogICAgICAgIFsxLjBdIAogICAgICAgICAgICB3c3Byb3h5IGFkZGVkCiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS4wIHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjAgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBncmVnb3IKICAgICAgICA6CiAgICAgICAgWzEuMF0gCiAgICAgICAgICAgIG1vcmUgd29yayBvbiB0aGUgYXRvbSBhcGkKIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjAgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuMCB1cGRhdGUKICAgICAgICBieQogICAgICAgIG1pY2hpCiAgICAgICAgOgogICAgICAgIFsxLjBdIAogICAgICAgICAgICBQVVQgZm9yIHVwZGF0aW5nIGFkZGVkCiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS4wIHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjAgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBtaWNoaQogICAgICAgIDoKICAgICAgICBbMS4wXSAKICAgICAgICAgICAgc29tZSBkZWJ1Z2dpbmcgaW5zdHJ1Y3Rpb25zIGFkZGVkCiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS4wIHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjAgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBhbmRyZWFzCiAgICAgICAgOgogICAgICAgIFsxLjBdIAogICAgICAgICAgICBhdm9pZGluZyBleGNlcHRpb24gd2hlbiBubyByZXNvdXJjZSBmaWxlcyBleGlzdAogRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuMCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS4wIHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgZmVsaXgKICAgICAgICA6CiAgICAgICAgWzEuMF0gCiAgICAgICAgICAgIEFkYXB0aW5nIGNoYW5nZXMgaW4gQlhFTkcKIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjAgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuMCB1cGRhdGUKICAgICAgICBieQogICAgICAgIGFuZHJlYXMKICAgICAgICA6CiAgICAgICAgWzEuMF0gCiAgICAgICAgICAgIHJlbW92ZWQgdW5uZWNlc3NhcnkgdGFzayBhY3Rpb24gcGFyYW1ldGVycwogRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuMCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS4wIHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgYW5kcmVhcwogICAgICAgIDoKICAgICAgICBbMS4wXSAKICAgICAgICAgICAgZ2V0SGlzdG9yeVBhdGgoKSBidWdmaXgKIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjAgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuMCB1cGRhdGUKICAgICAgICBieQogICAgICAgIGVnbGkKICAgICAgICA6CiAgICAgICAgWzEuMF0gCiAgICAgICAgICAgIENvZGUgY2xlYW51cDoKKiBVc2UgZG9jdW1lbnQtbm9kZS1pZCBmcm9tIHRoZSBwYWdlIGVudmVsb3BlIGlucHV0IG1vZHVsZSBpbnN0ZWFkIG9mCiAgc3BsaXR0aW5nIHRoZSBkb2N1bWVudC1pZCBtYW51YWxseS4KKiBSZW5hbWVkIHRoZSBpbGwtbmFtZWQgZmlyc3QtIGFuZCBsYXN0RG9jdW1lbnRJZCB0byBzb3VyY2UtIGFuZAogIGRlc3RpbmF0aW9uRG9jdW1lbnRJZC4KIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjAgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuMCB1cGRhdGUKICAgICAgICBieQogICAgICAgIGFuZHJlYXMKICAgICAgICA6CiAgICAgICAgWzEuMF0gCiAgICAgICAgICAgIGluY2x1ZGluZyBvbmx5IG1lbnUuY3NzCiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS4wIHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjAgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBhbmRyZWFzCiAgICAgICAgOgogICAgICAgIFsxLjBdIAogICAgICAgICAgICByZW1vdmVkIEZJWE1FIGNvbW1lbnQKIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjAgYWRkPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuMCBhZGQKICAgICAgICBieQogICAgICAgIGFuZHJlYXMKICAgICAgICA6CiAgICAgICAgWzEuMF0gCiAgICAgICAgICAgIGFkZGVkIFJlc291cmNlUHVibGlzaGVyCiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS4wIHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjAgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBhbmRyZWFzCiAgICAgICAgOgogICAgICAgIFsxLjBdIAogICAgICAgICAgICBhZGRlZCBnZXRQYXRoRnJvbVB1YmxpY2F0aW9uKCkKIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjAgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuMCB1cGRhdGUKICAgICAgICBieQogICAgICAgIG1pY2hpCiAgICAgICAgOgogICAgICAgIFsxLjBdIAogICAgICAgICAgICB3ZWJkYXYgVGVzdCBhZGRlZAogRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuMCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS4wIHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgbWljaGkKICAgICAgICA6CiAgICAgICAgWzEuMF0gCiAgICAgICAgICAgIEVudHJpZXMgYWRkZWQKIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjAgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuMCB1cGRhdGUKICAgICAgICBieQogICAgICAgIG1pY2hpCiAgICAgICAgOgogICAgICAgIFsxLjBdIAogICAgICAgICAgICBzaWRlYmFyIGFyY2hpdmUgZml4ZWQKIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjAgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuMCB1cGRhdGUKICAgICAgICBieQogICAgICAgIG1pY2hpCiAgICAgICAgOgogICAgICAgIFsxLjBdIAogICAgICAgICAgICBuYW1lc3BhY2VzIGZpeGVkCiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS4wIHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjAgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBncmVnb3IKICAgICAgICA6CiAgICAgICAgWzEuMF0gCiAgICAgICAgICAgIHJlcGxhY2VkIG9sZCBhdG9tIG5hbWVzcGFjZQogRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuMCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS4wIHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgbWljaGkKICAgICAgICA6CiAgICAgICAgWzEuMF0gCiAgICAgICAgICAgIFBhZ2UgWE1MIFZpZXcgYWRkZWQKIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjAgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuMCB1cGRhdGUKICAgICAgICBieQogICAgICAgIG1pY2hpCiAgICAgICAgOgogICAgICAgIFsxLjBdIAogICAgICAgICAgICBzZWFyY2gtZW50cmllcyBhbmQgaW50cm9zcGVjdGlvbiBpbXBsZW1lbnRlZAogRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuMCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS4wIHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgbWljaGkKICAgICAgICA6CiAgICAgICAgWzEuMF0gCiAgICAgICAgICAgIHRlc3RzIGFuZCBzcGVjIGxpbmtzIGFkZGVkCiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS4wIHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjAgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBlZ2xpCiAgICAgICAgOgogICAgICAgIFsxLjBdIAogICAgICAgICAgICBVc2UgdGhlIGh0bWwtaXNvLTg4NTktMSBzZXJpYWxpemVyIHRvIGVuc3VyZSB0aGUgZm9ybXMgYXJlIGluCmlzby04ODU5LTEgc28gdGhhdCB0aGVyZSBhcmUgbm8gcHJvYmxlbXMgd2l0aCB1bWxhdXRzLgogRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuMCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS4wIHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgZWRpdGgKICAgICAgICA6CiAgICAgICAgWzEuMF0gCiAgICAgICAgICAgIHNldCBsb2cgdG8gZGVidWcKIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjAgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuMCB1cGRhdGUKICAgICAgICBieQogICAgICAgIGVkaXRoCiAgICAgICAgOgogICAgICAgIFsxLjBdIAogICAgICAgICAgICBSQyBleGNlcHRpb24gd2l0aCBuZXcgbGF5b3V0CiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS4wIHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjAgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBhbmRyZWFzCiAgICAgICAgOgogICAgICAgIFsxLjBdIAogICAgICAgICAgICBvbmx5IHdoaXRlc3BhY2UgY2hhbmdlcwogRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuMCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS4wIHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgYW5kcmVhcwogICAgICAgIDoKICAgICAgICBbMS4wXSAKICAgICAgICAgICAgZGlmZmVyZW50IG5hdmlnYXRpb24gc3R5bGVzaGVldHMgZm9yIGFkbWluIGFyZWEKIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjAgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuMCB1cGRhdGUKICAgICAgICBieQogICAgICAgIGVkaXRoCiAgICAgICAgOgogICAgICAgIFsxLjBdIAogICAgICAgICAgICBmaXggdGhlIHJlZGlyZWN0IGZvciB0aGUgcmV2aXNpb24ncyB2aWV3IGJlY2F1c2Ugb2YgdGhlIGluZm8tYXV0aG9yaW5nIGFyZWEKIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjAgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuMCB1cGRhdGUKICAgICAgICBieQogICAgICAgIGVkaXRoCiAgICAgICAgOgogICAgICAgIFsxLjBdIAogICAgICAgICAgICBGaXggdGhlIHZpZXcgYW5kIHRoZSByb2xsYmFjayB2ZXJzaW9uIGZvciB0aGUgcmV2aXNpb25zCiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS4wIHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjAgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBtaWNoaQogICAgICAgIDoKICAgICAgICBbMS4wXSAKICAgICAgICAgICAgcGlwZWxpbmUgc2ltcGxpZmllZAogRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuMCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS4wIHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgbWljaGkKICAgICAgICA6CiAgICAgICAgWzEuMF0gCiAgICAgICAgICAgIGF0b21hcGkgaW1wbGVtZW50YXRpb24gc3RhcnRlZAogRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuMCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS4wIHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgbWljaGkKICAgICAgICA6CiAgICAgICAgWzEuMF0gCiAgICAgICAgICAgIHN1YnRpdGxlIGJhciBhZGRlZAogRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuMCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS4wIHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgbWljaGkKICAgICAgICA6CiAgICAgICAgWzEuMF0gCiAgICAgICAgICAgIG5hbWVzcGFjZSBwcm9ibGVtIGZpeGVkCiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS4wIHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjAgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBtaWNoaQogICAgICAgIDoKICAgICAgICBbMS4wXSAKICAgICAgICAgICAgd29ya2Zsb3dtZW51IHRyYW5zZm9ybWF0aW9uIGFkZGVkIGJ1dCBkaWQgbm90IHNvbHZlIHRoZSBtZW51IGl0ZW0gcHJvYmxlbQogRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuMCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS4wIHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgbWljaGkKICAgICAgICA6CiAgICAgICAgWzEuMF0gCiAgICAgICAgICAgIHZlcnNpb24gdG8gZmVlZCBhZGRlZAogRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuMCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS4wIHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgZ3JlZ29yCiAgICAgICAgOgogICAgICAgIFsxLjBdIAogICAgICAgICAgICByZW1vdmUgb2Jzb2xldGUgZWxlbWVudHMKIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjAgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuMCB1cGRhdGUKICAgICAgICBieQogICAgICAgIG1pY2hpCiAgICAgICAgOgogICAgICAgIFsxLjBdIAogICAgICAgICAgICBBdG9tIFNvZnR3YXJlIExpbmtzIGFkZGVkCiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS4wIHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjAgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBncmVnb3IKICAgICAgICA6CiAgICAgICAgWzEuMF0gCiAgICAgICAgICAgIGZpeGVzIHRvIG1ha2UgdGhlIGJsb2cgZmVlZCBjb21wbHkgd2l0aCBhdG9tIDAuMiBhcyBwZXIgZmVlZHZhbGlkYXRvci5vcmcKIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjAgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuMCB1cGRhdGUKICAgICAgICBieQogICAgICAgIGFuZHJlYXMKICAgICAgICA6CiAgICAgICAgWzEuMF0gCiAgICAgICAgICAgIGZvcm1hdHRpbmcKIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjAgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuMCB1cGRhdGUKICAgICAgICBieQogICAgICAgIGVnbGkKICAgICAgICA6CiAgICAgICAgWzEuMF0gCiAgICAgICAgICAgIFJlbmFtZWQgdGhlIHhzbHMgbm90X3B1Ymxpc2hlZF95ZXQgYW5kIHBhcmVudF9ub2RlX25vdF9mb3VuZCB0bwpub3QtcHVibGlzaGVkLXlldCBhbmQgcGFyZW50LW5vZGUtbm90LWZvdW5kIHJlc3BlY3RpdmVseSBhY2NvcmRpbmcgdG8KbmFtaW5nIGNvbnZlY3Rpb24gZGlzY3Vzc2lvbnMgaW4gdGhlIG1haWxpbmcgbGlzdC4KIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjAgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuMCB1cGRhdGUKICAgICAgICBieQogICAgICAgIGFuZHJlYXMKICAgICAgICA6CiAgICAgICAgWzEuMF0gCiAgICAgICAgICAgIGFkZGluZyBkb2N1bWVudCBVUkwgdG8gbm90aWZpY2F0aW9uIG1lc3NhZ2UKIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjAgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuMCB1cGRhdGUKICAgICAgICBieQogICAgICAgIGFuZHJlYXMKICAgICAgICA6CiAgICAgICAgWzEuMF0gCiAgICAgICAgICAgIHJlbW92ZWQgcG9saWNpZXMgc2l0ZW1hcAphZGRlZCBtZW51IHNpdGVtYXAKIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjAgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuMCB1cGRhdGUKICAgICAgICBieQogICAgICAgIGFuZHJlYXMKICAgICAgICA6CiAgICAgICAgWzEuMF0gCiAgICAgICAgICAgIG9ubHkgd2hpdGVzcGFjZSBjaGFuZ2VzCiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS4wIHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjAgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBlZ2xpCiAgICAgICAgOgogICAgICAgIFsxLjBdIAogICAgICAgICAgICBJbnN0ZWFkIG9mIGhhdmluZyBhIGJvb2xlYW4gdmFyaWFibGUgJ2luc2VydEJlZm9yZScgdGhlcmUgaXMgbm93IGEKdmFyaWFibGUgJ2luc2VydFdoZXJlJyB3aGljaCBjYW4gYmUgJ2JlZm9yZScsICdhZnRlcicgb3IKJ2luc2lkZScuIEZvciB0aGUgdmFsdWVzICdiZWZvcmUnIGFuZCAnYWZ0ZXInIHRoZSB0YWdzIGFyZSBhZGRlZApiZWZvcmUgb3IgYWZ0ZXIgdGhlIG9yaWdpbmFsIHRhZy4gRm9yIHRoZSB2YWx1ZSBpbnNpZGUgdGhlIG5ldyB0YWcgaXMKaW5zZXJ0ZWQgaW5zaWRlIHRoZSBvcmlnaW5hbCB0YWcuCiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS4wIHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjAgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBlZ2xpCiAgICAgICAgOgogICAgICAgIFsxLjBdIAogICAgICAgICAgICBJbnN0ZWFkIG9mIGhhdmluZyBhIGJvb2xlYW4gdmFyaWFibGUgJ2luc2VydEJlZm9yZScgdGhlcmUgaXMgbm93IGEKdmFyaWFibGUgJ2luc2VydFdoZXJlJyB3aGljaCBjYW4gYmUgJ2JlZm9yZScsICdhZnRlcicgb3IKJ2luc2lkZScuIFRoaXMgdmFyaWFibGUgaXMgcGFzc2VkIHRvIHRoZSBhbnQgdGFzayB3aGljaCBhY3RzCmFjY29yZGluZ2x5LgogRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuMCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS4wIHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgZWdsaQogICAgICAgIDoKICAgICAgICBbMS4wXSAKICAgICAgICAgICAgVXNlIHRoZSB0ZXh0LWlzby04ODU5LTEgc2VyaWFsaXplciB3aGVuIHJldHVybmluZyB0aGUgbmF2aWdhdGlvbiBmb3IKdGhlIGluZm8gYXJlYS4KIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjAgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuMCB1cGRhdGUKICAgICAgICBieQogICAgICAgIGVnbGkKICAgICAgICA6CiAgICAgICAgWzEuMF0gCiAgICAgICAgICAgIEFkZGVkIGEgdGV4dCBzZXJpYWxpemVyIHRoYXQgdXNlcyBpc28tODg1OS0xIGFzIGVuY29kaW5nLgogRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuMCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS4wIHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgZWRpdGgKICAgICAgICA6CiAgICAgICAgWzEuMF0gCiAgICAgICAgICAgIGV4dGVuZHMgZnJvbSBUd29Eb3VjbWVudE9wZXJhdGlvblRhc2sKIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjAgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuMCB1cGRhdGUKICAgICAgICBieQogICAgICAgIGVkaXRoCiAgICAgICAgOgogICAgICAgIFsxLjBdIAogICAgICAgICAgICBleHRlbmRzIGZyb20gVHdvRG9jdW1lbnRzT3BlcmF0aW9uVGFzawogRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuMCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS4wIHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgYW5kcmVhcwogICAgICAgIDoKICAgICAgICBbMS4wXSAKICAgICAgICAgICAgYWRkZWQgc2NoZWR1bGVyIHBpcGVsaW5lCiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS4wIGFkZDwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjAgYWRkCiAgICAgICAgYnkKICAgICAgICBhbmRyZWFzCiAgICAgICAgOgogICAgICAgIFsxLjBdIAogICAgICAgICAgICBtb3ZlZCBzY2hlZHVsZXIgc2NyZWVuIHRvIGluZm8gYXJlYQogRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuMCByZW1vdmU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS4wIHJlbW92ZQogICAgICAgIGJ5CiAgICAgICAgYW5kcmVhcwogICAgICAgIDoKICAgICAgICBbMS4wXSAKICAgICAgICAgICAgcmVtb3ZlZCB1bnVzZWQgdGFicyBqYXZhc2NyaXB0CiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS4wIHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjAgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBhbmRyZWFzCiAgICAgICAgOgogICAgICAgIFsxLjBdIAogICAgICAgICAgICBhZGRlZCBzb21lIGxvZyBtZXNzYWdlcwogRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuMCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS4wIHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgZWRpdGgKICAgICAgICA6CiAgICAgICAgWzEuMF0gCiAgICAgICAgICAgIGludHJvZHVjdGlvbiBvZiB0aGUgcGFyYW1ldGVycyB1c2VyLWlkIGFuZCBpcGFkcmVzcyBuZWVkZWQgYnkgdGhlIGluaXRpYWxpc2F0aW9uIG9mIHRoZSB3b3JrZmxvdyBpbiBjYXNlIG9mIGNvcHlpbmcKIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjAgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuMCB1cGRhdGUKICAgICAgICBieQogICAgICAgIGVkaXRoCiAgICAgICAgOgogICAgICAgIFsxLjBdIAogICAgICAgICAgICBHaXZlIHRoZSBzaXR1YXRpb24gdG8gdGhlIGluaXRIaXN0b3J5IG1ldGhvZAogRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuMCByZW1vdmU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS4wIHJlbW92ZQogICAgICAgIGJ5CiAgICAgICAgZWRpdGgKICAgICAgICA6CiAgICAgICAgWzEuMF0gCiAgICAgICAgICAgIGRlbGV0ZWQuIFJlcGxhY2UgYnkgQ29weUNvbnRlbnRUYXNrLCBDb3B5UmVzb3VyY2VUYXNrLCAuLi4KIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjAgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuMCB1cGRhdGUKICAgICAgICBieQogICAgICAgIGVkaXRoCiAgICAgICAgOgogICAgICAgIFsxLjBdIAogICAgICAgICAgICBGaXggdGhlIHdvcmtmbG93IHRhc2sgZm9yIGNvcHkgYW5kIG1vdmUKIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjAgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuMCB1cGRhdGUKICAgICAgICBieQogICAgICAgIGFuZHJlYXMKICAgICAgICA6CiAgICAgICAgWzEuMF0gCiAgICAgICAgICAgIGFkZGVkIHJlcXVlc3QgcGFyYW1ldGVyIGZvcndhcmRpbmcgdG8gZGVsZXRlIHVzZWNhc2Ugc3R5bGVzaGVldAogRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuMCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS4wIHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgYW5kcmVhcwogICAgICAgIDoKICAgICAgICBbMS4wXSAKICAgICAgICAgICAgZml4ZWQgbGluayBmcm9tIGFkbWluIHRvIGluZm8KIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjAgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuMCB1cGRhdGUKICAgICAgICBieQogICAgICAgIGFuZHJlYXMKICAgICAgICA6CiAgICAgICAgWzEuMF0gCiAgICAgICAgICAgIGZvcndhcmRpbmcgcmVxdWVzdCBwYXJhbWV0ZXJzIGZvciBkZWFjdGl2YXRlIHNjcmVlbgogRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuMCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS4wIHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgYW5kcmVhcwogICAgICAgIDoKICAgICAgICBbMS4wXSAKICAgICAgICAgICAgZm9yd2FyZGluZyBsZW55YS5zdGVwIHBhcmFtZXRlcgogRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuMCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS4wIHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgYW5kcmVhcwogICAgICAgIDoKICAgICAgICBbMS4wXSAKICAgICAgICAgICAgY2hhbmdlZCByb2xlIElEIChtYW5hZ2VyIC0mZ3Q7IHJldmlldykKIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjAgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuMCB1cGRhdGUKICAgICAgICBieQogICAgICAgIGFuZHJlYXMKICAgICAgICA6CiAgICAgICAgWzEuMF0gCiAgICAgICAgICAgIGFkZGVkIGxvZ2dpbmcKIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjAgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuMCB1cGRhdGUKICAgICAgICBieQogICAgICAgIGVkaXRoCiAgICAgICAgOgogICAgICAgIFsxLjBdIAogICAgICAgICAgICBoYWNrIGZvciB0aGUgZmlsZW5hbWUgZm9yIHRoZSBiaXRmbHV4IGVkaXRvcgogRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuMCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS4wIHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgYW5kcmVhcwogICAgICAgIDoKICAgICAgICBbMS4wXSAKICAgICAgICAgICAgc3dpdGNoZWQgdG8gZ2xvYmFsIG1lbnUgaGFuZGxpbmcKIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjAgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuMCB1cGRhdGUKICAgICAgICBieQogICAgICAgIGFuZHJlYXMKICAgICAgICA6CiAgICAgICAgWzEuMF0gCiAgICAgICAgICAgIGFkZGVkIG1lbnUgcGlwZWxpbmVzCiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS4wIHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjAgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBhbmRyZWFzCiAgICAgICAgOgogICAgICAgIFsxLjBdIAogICAgICAgICAgICBhZGRlZCBhcmVhIGhhbmRsaW5nIGZvciBibG9ja3MgYW5kIGl0ZW1zCiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS4wIHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjAgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBlZ2xpCiAgICAgICAgOgogICAgICAgIFsxLjBdIAogICAgICAgICAgICBNYWtlIHN1cmUgdGhlIGNhcHRpb24gZmllbGQgaXMgbm90IGRpc3BsYXllZCBpbiB0aGUgY2FzZSBvZiBhc3NldAp1cGxvYWQuCiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS4wIHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjAgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBlZ2xpCiAgICAgICAgOgogICAgICAgIFsxLjBdIAogICAgICAgICAgICBUaGUgc2VyaWFsaXplciB4aHRtbC1ieGVuZyBoYXMgYmVlbiByZW5hbWVkIHRvIHhodG1sLWlzby04ODU5LTEuCiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS4wIHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjAgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBlZ2xpCiAgICAgICAgOgogICAgICAgIFsxLjBdIAogICAgICAgICAgICBNYWtlIHN1cmUgdGhlIHt4aHRtbHxodG1sfS1pc28tODg1OS0xIHNlcmlhbGl6ZXJzIGFyZSB1c2VkIHRvIHByb2R1Y2UKdGhlIGluZm8gYW5kIHVzZSBjYXNlIGZvcm1zIHNvIHRoYXQgdGhlIGZvcm0gZGF0YSBpcyBzZW50IGNvcnJlY3RseSB0bwp0aGUgc2VydmVyLgogRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuMCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS4wIHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgZWdsaQogICAgICAgIDoKICAgICAgICBbMS4wXSAKICAgICAgICAgICAgQWRkZWQgYSBuZXcgc2VyaWFsaXplciBmb3IgaHRtbCB3aGljaCB1c2VzIHRoZSBJU08tODg1OS0xIGVuY29kaW5nClJlbmFtZWQgdGhlIHhodG1sLWJ4ZW5nIHNlcmlhbGl6ZXIgdG8geGh0bWwtaXNvLTg4NTktMS4KIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjAgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuMCB1cGRhdGUKICAgICAgICBieQogICAgICAgIGVnbGkKICAgICAgICA6CiAgICAgICAgWzEuMF0gCiAgICAgICAgICAgIFJlbW92ZSB0aGUgeHNsOm91dHB1dCBzdGF0ZW1lbnQuCiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS4wIHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjAgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBhbmRyZWFzCiAgICAgICAgOgogICAgICAgIFsxLjBdIAogICAgICAgICAgICBzaG93aW5nIGl0ZW0gIlBhc3RlIiBvbmx5IHdoZW4gY2xpcGJvYXJkIGlzIG5vdCBlbXB0eQogRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuMCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS4wIHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgYW5kcmVhcwogICAgICAgIDoKICAgICAgICBbMS4wXSAKICAgICAgICAgICAgZml4ZWQgYXJjaGl2ZSB1c2VjYXNlIHJlZGlyZWN0CiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS4wIHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjAgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBhbmRyZWFzCiAgICAgICAgOgogICAgICAgIFsxLjBdIAogICAgICAgICAgICByZWRpcmVjdGluZyB0byBhcmVhIFVSTCBhZnRlciByZW5hbWUKIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjAgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuMCB1cGRhdGUKICAgICAgICBieQogICAgICAgIGFuZHJlYXMKICAgICAgICA6CiAgICAgICAgWzEuMF0gCiAgICAgICAgICAgIHJlZGlyZWN0aW5nIHRvIGFyZWEgVVJMIGFmdGVyIHJlc3RvcmUKIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjAgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuMCB1cGRhdGUKICAgICAgICBieQogICAgICAgIGFuZHJlYXMKICAgICAgICA6CiAgICAgICAgWzEuMF0gCiAgICAgICAgICAgIGJ1Z2ZpeCBmb3IgYXJlYSBVUkwgaGFuZGxpbmcKIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjAgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuMCB1cGRhdGUKICAgICAgICBieQogICAgICAgIGFuZHJlYXMKICAgICAgICA6CiAgICAgICAgWzEuMF0gCiAgICAgICAgICAgIC0gbGF5b3V0IGNoYW5nZXMKLSByZWZsZWN0aW5nIGNoYW5nZXMgdG8gWFNQcwogRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuMCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS4wIHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgYW5kcmVhcwogICAgICAgIDoKICAgICAgICBbMS4wXSAKICAgICAgICAgICAgLSBkaWZmZXJlbnQgc3R5bGUgZm9yIGN1dHRlZCBzaXRldHJlZSBub2RlCi0gYnVnZml4ZXMgZm9yIGFyZWEgbm9kZXMKIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjAgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuMCB1cGRhdGUKICAgICAgICBieQogICAgICAgIGFuZHJlYXMKICAgICAgICA6CiAgICAgICAgWzEuMF0gCiAgICAgICAgICAgIGFkZGVkIHN0eWxlIGZvciBjdXR0ZWQgc2l0ZXRyZWUgbm9kZQogRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuMCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS4wIHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgYW5kcmVhcwogICAgICAgIDoKICAgICAgICBbMS4wXSAKICAgICAgICAgICAgcmVmbGVjdGluZyBjaGFuZ2VzOgpjb252ZXJ0ZWQgTW92ZVNpdGVUcmVlTm9kZVRhc2sgdG8gQW50IHRhc2sKIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjAgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuMCB1cGRhdGUKICAgICAgICBieQogICAgICAgIGFuZHJlYXMKICAgICAgICA6CiAgICAgICAgWzEuMF0gCiAgICAgICAgICAgIHJlbW92ZWQgc2Vzc2lvbiB1c2FnZQogRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuMCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS4wIHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgYW5kcmVhcwogICAgICAgIDoKICAgICAgICBbMS4wXSAKICAgICAgICAgICAgZml4ZWQgamF2YWRvY3MKIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjAgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuMCB1cGRhdGUKICAgICAgICBieQogICAgICAgIGFuZHJlYXMKICAgICAgICA6CiAgICAgICAgWzEuMF0gCiAgICAgICAgICAgIGFkZGVkIGdldEluZm9VcmwoKSBtZXRob2QKIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjAgYWRkPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuMCBhZGQKICAgICAgICBieQogICAgICAgIGFuZHJlYXMKICAgICAgICA6CiAgICAgICAgWzEuMF0gCiAgICAgICAgICAgIGNvbnZlcnRlZCBNb3ZlU2l0ZVRyZWVOb2RlVGFzayB0byBBbnQgdGFzawogRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuMCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS4wIHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgYW5kcmVhcwogICAgICAgIDoKICAgICAgICBbMS4wXSAKICAgICAgICAgICAgLSB1c2luZyBleGlzdHNJbkFueUxhbmd1YWdlKCkgdG8gY2hlY2sgZm9yIGRvY3VtZW50Ci0gaW1wcm92ZWQgbG9nZ2luZyBwZXJmb3JtYW5jZQogRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuMCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS4wIHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgYW5kcmVhcwogICAgICAgIDoKICAgICAgICBbMS4wXSAKICAgICAgICAgICAgYWRkZWQgbmJzcCBmb3IgQUMtKiB0YWJzCiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS4wIHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjAgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBhbmRyZWFzCiAgICAgICAgOgogICAgICAgIFsxLjBdIAogICAgICAgICAgICBpbnRyb2R1Y2VkICJpbmZvLSIgcHJlZml4IGZvciBpbmZvIGFyZWEKIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjAgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuMCB1cGRhdGUKICAgICAgICBieQogICAgICAgIGFuZHJlYXMKICAgICAgICA6CiAgICAgICAgWzEuMF0gCiAgICAgICAgICAgIHByZXR0aWZpZWQgd29ya2Zsb3cgaGFuZGxpbmcKIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjAgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuMCB1cGRhdGUKICAgICAgICBieQogICAgICAgIGFuZHJlYXMKICAgICAgICA6CiAgICAgICAgWzEuMF0gCiAgICAgICAgICAgIGNvbW1lbnRlZC1vdXQgb3ZlcnZpZXcvY3VycmVudC1sYW5ndWFnZQogRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuMCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS4wIHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgYW5kcmVhcwogICAgICAgIDoKICAgICAgICBbMS4wXSAKICAgICAgICAgICAgcmVwbGFjZWQgaW5saW5lIHN0eWxlIHdpdGggQ1NTCiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS4wIHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjAgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBhbmRyZWFzCiAgICAgICAgOgogICAgICAgIFsxLjBdIAogICAgICAgICAgICBpbXBsZW1lbnRlZCBtaXNzaW5nIGxhbmd1YWdlIGFuZCBhcmVhIGhhbmRsaW5nCiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS4wIHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjAgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBhbmRyZWFzCiAgICAgICAgOgogICAgICAgIFsxLjBdIAogICAgICAgICAgICBpbXBsZW1lbnRlZCBtaXNzaW5nIGxhbmd1YWdlIGhhbmRsaW5nCiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS4wIHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjAgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBhbmRyZWFzCiAgICAgICAgOgogICAgICAgIFsxLjBdIAogICAgICAgICAgICBjaGVja2luZyBpZCBhdHRyaWJ1dGUgZm9yICIiCiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS4wIHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjAgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBlZ2xpCiAgICAgICAgOgogICAgICAgIFsxLjBdIAogICAgICAgICAgICBNaWdyYXRlZCB0byB0aGUgbmV3IHdheSBvZiBmZXRjaGluZyB0aGUgc2l0ZSB0cmVlIGJ5IHdheQpvZiBhc2tpbmcgdGhlIFB1YmxpY2F0aW9uIGZvciBpdCBpbnN0ZWFkIG9mIGNyZWF0aW5nIG9uZQpieSBwYXNzaW5nIGluIHRoZSBwYXRoIHRvIHRoZSB4bWwgdHJlZSBmaWxlLgogRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuMCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS4wIHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgYW5kcmVhcwogICAgICAgIDoKICAgICAgICBbMS4wXSAKICAgICAgICAgICAgZml4ZWQgInVwZGF0ZSBtZXRhZGF0YSIgYnVnCiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS4wIHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjAgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBhbmRyZWFzCiAgICAgICAgOgogICAgICAgIFsxLjBdIAogICAgICAgICAgICBmaXhlZCBtZW51IHN0eWxlCiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS4wIHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjAgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBlZ2xpCiAgICAgICAgOgogICAgICAgIFsxLjBdIAogICAgICAgICAgICBNYWtlIHN1cmUgdGhlIHVwZGF0ZSBzdGVwIG1hdGNoZXIgaGFzIGEgY2hhbmNlIHRvIGdldCBtYXRjaGVkLgogRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuMCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS4wIHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgZWdsaQogICAgICAgIDoKICAgICAgICBbMS4wXSAKICAgICAgICAgICAgRml4ZWQgdGhlIHJlZGlyZWN0IGFmdGVyIGxhbmd1YWdlIHJlbW92YWwuCiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS4wIHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjAgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBhbmRyZWFzCiAgICAgICAgOgogICAgICAgIFsxLjBdIAogICAgICAgICAgICBwcmV0dGlmaWVkIGltYWdlcwogRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuMCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS4wIHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgbWljaGkKICAgICAgICA6CiAgICAgICAgWzEuMF0gCiAgICAgICAgICAgIEZJWE1FIGFkZGVkIGZvciBYVXBkYXRlCiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS4wIHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjAgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBtaWNoaQogICAgICAgIDoKICAgICAgICBbMS4wXSAKICAgICAgICAgICAgTGV4dXMgWFVwZGF0ZSBpbnRlZ3JhdGVkCiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS4wIHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjAgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBlZ2xpCiAgICAgICAgOgogICAgICAgIFsxLjBdIAogICAgICAgICAgICBNYWtlIHN1cmUgbm8gc3B1cmlvdXMgbmFtZXNwYWNlcyBhcmUgaW5zZXJ0ZWQuCiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS4wIGFkZDwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjAgYWRkCiAgICAgICAgYnkKICAgICAgICBtaWNoaQogICAgICAgIDoKICAgICAgICBbMS4wXSAKICAgICAgICAgICAgTGV4dXMgYWRkZWQKIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjAgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuMCB1cGRhdGUKICAgICAgICBieQogICAgICAgIGVnbGkKICAgICAgICA6CiAgICAgICAgWzEuMF0gCiAgICAgICAgICAgIEZpeCB0aGUgZ2V0Tm9kZUlkIG1ldGhvZC4KIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjAgYWRkPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuMCBhZGQKICAgICAgICBieQogICAgICAgIGFuZHJlYXMKICAgICAgICA6CiAgICAgICAgWzEuMF0gCiAgICAgICAgICAgIGFkZGVkIG5ldyBsb2dvIGltYWdlCiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS4wIHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjAgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBhbmRyZWFzCiAgICAgICAgOgogICAgICAgIFsxLjBdIAogICAgICAgICAgICBwcmV0dGlmaWVkIG1lbnUKIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjAgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuMCB1cGRhdGUKICAgICAgICBieQogICAgICAgIGFuZHJlYXMKICAgICAgICA6CiAgICAgICAgWzEuMF0gCiAgICAgICAgICAgIGNoYW5nZWQgbWVudSBzZXBhcmF0b3JzCiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS4wIHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjAgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBhbmRyZWFzCiAgICAgICAgOgogICAgICAgIFsxLjBdIAogICAgICAgICAgICB1cGRhdGVkIG1lbnUgbGF5b3V0CiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS4wIGFkZDwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjAgYWRkCiAgICAgICAgYnkKICAgICAgICBlZ2xpCiAgICAgICAgOgogICAgICAgIFsxLjBdIAogICAgICAgICAgICBUaGUgbWlzc2luZy1sYW5ndWFnZSBzY3JlZW4gbm93IGFsbG93cyB0aGUgdXNlciB0byBkaXJlY3RseQpjbGljayBvbiBvbmUgb2YgdGhlIGF2YWlsYWJsZSBsYW5ndWFnZXMuIEluIG9yZGVyIHRvIGRvIHRoYXQKdGhlIG1pc3NpbmctbGFuZ3VhZ2UgeHNwIHVzZXMgYSBoZWxwZXIgY2xhc3MgRG9jdW1lbnRMYW5ndWFnZXNIZWxwZXIKd2hpY2ggY2FuIGNvbXB1dGUgYW4gVVJMIGdpdmVuIGFuIG9iamVjdE1vZGVsIGFuZCBhIGxhbmd1YWdlLgogRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuMCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS4wIHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgYW5kcmVhcwogICAgICAgIDoKICAgICAgICBbMS4wXSAKICAgICAgICAgICAgZGlzcGxheWluZyBpc19saXZlIHZhcmlhYmxlCiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS4wIHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjAgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBhbmRyZWFzCiAgICAgICAgOgogICAgICAgIFsxLjBdIAogICAgICAgICAgICBmaXhlZCBpbmZvIGFyZWEgdGFiIGhpZ2hsaWdodGluZwogRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuMCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS4wIHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgZWdsaQogICAgICAgIDoKICAgICAgICBbMS4wXSAKICAgICAgICAgICAgUmVtb3ZlZCBhIHNlcmlhbGl6ZSB0aGF0IHdhcyBuZXZlciByZWFjaGVkLgogRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuMCBhZGQ8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS4wIGFkZAogICAgICAgIGJ5CiAgICAgICAgZWdsaQogICAgICAgIDoKICAgICAgICBbMS4wXSAKICAgICAgICAgICAgQnVpbGQgYW4gZXJyb3Igc2NyZWVuIGluIHRoZSBjYXNlIHdoZW4gdGhlIGRvY3VtZW50IGRvZXNuJ3QKZXhpc3QuCiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS4wIHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjAgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBlZ2xpCiAgICAgICAgOgogICAgICAgIFsxLjBdIAogICAgICAgICAgICBFeHBvcnQgdGhlIG5vZGVJZCBvZiBhIGRvY3VtZW50IG9yIHRoZSBiYXNlbmFtZSBvZiB0aGUKZG9jdW1lbnQtaWQgdGhyb3VnaCB0aGUgRG9jdW1lbnQgaW50ZXJmYWNlIGFuZCB0aHJvdWdoCnRoZSBwYWdlLWVudmVsb3BlIG1vZHVsZS4KIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjAgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuMCB1cGRhdGUKICAgICAgICBieQogICAgICAgIGVnbGkKICAgICAgICA6CiAgICAgICAgWzEuMF0gCiAgICAgICAgICAgIElmIHRoZSBkb2N1bWVudCBkb2VzIG5vdCBleGlzdCB0aHJvdyBhIERvY3VtZW50RG9lc05vdEV4aXN0CmV4Y2VwdGlvbiBpbnN0ZWFkIG9mIGp1c3QgcmV0dXJuaW5nIG51bGwuCiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS4wIHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjAgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBlZ2xpCiAgICAgICAgOgogICAgICAgIFsxLjBdIAogICAgICAgICAgICBSZW1vdmUgdW51c2VkIGltcG9ydHMuCiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS4wIHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjAgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBhbmRyZWFzCiAgICAgICAgOgogICAgICAgIFsxLjBdIAogICAgICAgICAgICAtIGNvcnBvcmF0ZSBkZXNpZ24gZm9yIHNpdGV0cmVlCi0gZml4ZWQgbGFuZ3VhZ2UgbGlua3MKLSBhZGRlZCBkb2N1bWVudCBVUkwgYWJvdmUgdGFicwogRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuMCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS4wIHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgYW5kcmVhcwogICAgICAgIDoKICAgICAgICBbMS4wXSAKICAgICAgICAgICAgaW1wcm92ZWQgdGFiIHN0eWxpbmcKIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjAgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuMCB1cGRhdGUKICAgICAgICBieQogICAgICAgIGFuZHJlYXMKICAgICAgICA6CiAgICAgICAgWzEuMF0gCiAgICAgICAgICAgIGZpeGVkIGNoZWNrIGlmIHdvcmtmbG93IGV4aXN0cwogRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuMCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS4wIHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgYW5kcmVhcwogICAgICAgIDoKICAgICAgICBbMS4wXSAKICAgICAgICAgICAgY29ycG9yYXRlIGRlc2lnbiBmb3IgdHJlZQogRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuMCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS4wIHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgYW5kcmVhcwogICAgICAgIDoKICAgICAgICBbMS4wXSAKICAgICAgICAgICAgZ2V0dGluZyBjaG9zZW5sYW5ndWFnZSBmcm9tIHBhZ2UgZW52ZWxvcGUKIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjAgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuMCB1cGRhdGUKICAgICAgICBieQogICAgICAgIGFuZHJlYXMKICAgICAgICA6CiAgICAgICAgWzEuMF0gCiAgICAgICAgICAgIGphdmFzY3JpcHQgYnVnZml4CiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS4wIHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjAgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBhbmRyZWFzCiAgICAgICAgOgogICAgICAgIFsxLjBdIAogICAgICAgICAgICAtIGNoYW5nZWQgc2l0ZXRyZWUgY3NzCi0gcmVtb3ZlZCBpbnRlcmZlcmVuY2VzIGZyb20gTGVueWEgbWVudSB0byBwYWdlCiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS4wIHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjAgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBmZWxpeAogICAgICAgIDoKICAgICAgICBbMS4wXSAKICAgICAgICAgICAgQ29tbWVudGVkIG91dCAiTGFzdCBlZGl0ZWQgYnkiIG9uIG92ZXJ2aWV3IHRhYgogRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuMCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS4wIHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgYW5kcmVhcwogICAgICAgIDoKICAgICAgICBbMS4wXSAKICAgICAgICAgICAgcmVtb3ZpbmcgcHJldmlvdXMgdXNlciBmcm9tIHNlc3Npb24gd2hlbiBuZXcgdXNlciBsb2dzIGluCiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS4wIHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjAgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBhbmRyZWFzCiAgICAgICAgOgogICAgICAgIFsxLjBdIAogICAgICAgICAgICB1cGRhdGVkIGluZm8gdGFiIFVSTAogRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuMCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS4wIHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgYW5kcmVhcwogICAgICAgIDoKICAgICAgICBbMS4wXSAKICAgICAgICAgICAgcmVtb3ZlZCBpZnJhbWVzCiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS4wIHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjAgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBhbmRyZWFzCiAgICAgICAgOgogICAgICAgIFsxLjBdIAogICAgICAgICAgICAtIG1vdmVkIGluZm8gdXNlY2FzZXMgZnJvbSB1c2VjYXNlLnhtYXAgdG8gaW5mby54bWFwCi0gcmVzdHJ1Y3R1cmVkIGluZm8gc2l0ZW1hcAogRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuMCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS4wIHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgYW5kcmVhcwogICAgICAgIDoKICAgICAgICBbMS4wXSAKICAgICAgICAgICAgY2hlY2tpbmcgaWYgZXZlbnQgYXR0cmlidXRlIGV4aXN0cyAoaXMgbm90IHRoZSBlbXB0eSBzdHJpbmcpCiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS4wIHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjAgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBhbmRyZWFzCiAgICAgICAgOgogICAgICAgIFsxLjBdIAogICAgICAgICAgICBjaGVja2luZyBpZiBldmVudCBhdHRyaWJ1dGUgZXhpc3RzCiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS4wIHJlbW92ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjAgcmVtb3ZlCiAgICAgICAgYnkKICAgICAgICBmZWxpeAogICAgICAgIDoKICAgICAgICBbMS4wXSAKICAgICAgICAgICAgQ2hhbmdlZCBibHVlIGRvdCBpbWFnZQogRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuMCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS4wIHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgZWdsaQogICAgICAgIDoKICAgICAgICBbMS4wXSAKICAgICAgICAgICAgTWFrZSBzdXJlIHRoZSBkZWZhdWx0IGVuY29kaW5nIGZvciB0aGUgaHRtbCBzZXJpYWxpemVyIGlzIFVURi04LgogRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuMCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS4wIHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgZWdsaQogICAgICAgIDoKICAgICAgICBbMS4wXSAKICAgICAgICAgICAgTWFrZSBzdXJlIHRoYXQgaWYgdGhlIGRvY3VtZW50IGRvZXNuJ3QgZXhpc3QgKGFzIGlzIHRoZSBjYXNlIGZvciB0cmFzaAphbmQgYXJjaGl2ZSBub2RlcyBpbiBzaXRlIHRyZWUgaW4gaW5mbyBhcmVhKSBubyBhdHRlbXB0IGlzIG1hZGUgdG8KZmV0Y2ggdGhlIGR1YmxpbiBjb3JlIG1ldGEgZGF0YSAod2hpY2ggd291bGQgbGVhZCB0byBhbiBleGNlcHRpb24pCiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS4wIHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjAgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBhbmRyZWFzCiAgICAgICAgOgogICAgICAgIFsxLjBdIAogICAgICAgICAgICBmaXhlZCB0aXRsZSB2YWx1ZQogRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuMCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS4wIHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgYW5kcmVhcwogICAgICAgIDoKICAgICAgICBbMS4wXSAKICAgICAgICAgICAgc2hvd2luZyBJRCBhbmQgbmFtZSBpbiBtZW1iZXJzIGxpc3QKIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjAgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuMCB1cGRhdGUKICAgICAgICBieQogICAgICAgIGFuZHJlYXMKICAgICAgICA6CiAgICAgICAgWzEuMF0gCiAgICAgICAgICAgIHVzaW5nIHdvcmtmbG93IGlucHV0IG1vZHVsZSB0byByZXNvbHZlIGhpc3RvcnkgcGF0aAogRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuMCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS4wIHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgYW5kcmVhcwogICAgICAgIDoKICAgICAgICBbMS4wXSAKICAgICAgICAgICAgcmVmbGVjdGluZyBjaGFuZ2VzIHRvIHdvcmtmbG93IGNsYXNzZXMKIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjAgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuMCB1cGRhdGUKICAgICAgICBieQogICAgICAgIGFuZHJlYXMKICAgICAgICA6CiAgICAgICAgWzEuMF0gCiAgICAgICAgICAgIGFkZGVkIGhpc3RvcnkgcGF0aCBhdHRyaWJ1dGUgdG8gd29ya2Zsb3cgbW9kdWxlCiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS4wIHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjAgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBhbmRyZWFzCiAgICAgICAgOgogICAgICAgIFsxLjBdIAogICAgICAgICAgICB1cGRhdGVkIHdvcmtmbG93IGhhbmRsaW5nCiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS4wIHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjAgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBhbmRyZWFzCiAgICAgICAgOgogICAgICAgIFsxLjBdIAogICAgICAgICAgICBzaG93aW5nIHdvcmtmbG93IHN0YXRlCiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS4wIHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjAgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBhbmRyZWFzCiAgICAgICAgOgogICAgICAgIFsxLjBdIAogICAgICAgICAgICBhZGRpbmcgd29ya2Zsb3cgc3RhdGUKIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjAgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuMCB1cGRhdGUKICAgICAgICBieQogICAgICAgIGFuZHJlYXMKICAgICAgICA6CiAgICAgICAgWzEuMF0gCiAgICAgICAgICAgIHJlbmFtZWQgIkNvbnRlbnQiIHRvICJEZWxldGUgVHJhc2giCiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS4wIHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjAgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBhbmRyZWFzCiAgICAgICAgOgogICAgICAgIFsxLjBdIAogICAgICAgICAgICAtIGFkZGVkIEJvb2xlYW5WYXJpYWJsZUNvbmRpdGlvbgotIGZpeGVkIGphdmFkb2NzCiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS4wIHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjAgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBhbmRyZWFzCiAgICAgICAgOgogICAgICAgIFsxLjBdIAogICAgICAgICAgICBjYXRjaCBhbmQgbG9nIGV4Y2VwdGlvbgogRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuMCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS4wIHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgYW5kcmVhcwogICAgICAgIDoKICAgICAgICBbMS4wXSAKICAgICAgICAgICAgcmVtb3ZlZCBpbnNlcnRpb24gb2Ygc3RhdGUgYW5kIGlzX2xpdmUgdmFyaWFibGUgdmFsdWUKIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjAgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuMCB1cGRhdGUKICAgICAgICBieQogICAgICAgIGFuZHJlYXMKICAgICAgICA6CiAgICAgICAgWzEuMF0gCiAgICAgICAgICAgIHJlLWZvcm1hdHRpbmcKIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjAgYWRkPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuMCBhZGQKICAgICAgICBieQogICAgICAgIGFuZHJlYXMKICAgICAgICA6CiAgICAgICAgWzEuMF0gCiAgICAgICAgICAgIGFkZGVkIFdvcmtmbG93TW9kdWxlCiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS4wIHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjAgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBhbmRyZWFzCiAgICAgICAgOgogICAgICAgIFsxLjBdIAogICAgICAgICAgICBhZGRlZCBhcmVhIHRvIGluZm8td29ya2Zsb3cgUmVzb3VyY2VFeGlzdHNBY3Rpb24gcGF0aAogRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuMCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS4wIHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgYW5kcmVhcwogICAgICAgIDoKICAgICAgICBbMS4wXSAKICAgICAgICAgICAgd3JpdGluZyBpbml0aWFsIHN0YXRlIG9uIGhpc3RvcnkgaW5pdGlhbGl6YXRpb24KIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjAgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuMCB1cGRhdGUKICAgICAgICBieQogICAgICAgIGFuZHJlYXMKICAgICAgICA6CiAgICAgICAgWzEuMF0gCiAgICAgICAgICAgIGFkZGVkIElQX0FERFJFU1MgcGFyYW1ldGVyCiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS4wIHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjAgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBhbmRyZWFzCiAgICAgICAgOgogICAgICAgIFsxLjBdIAogICAgICAgICAgICB1c2luZyBtZXRhLXN0eWxlc2hlZXQgZm9yIHNjaGVkdWxlcgogRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuMCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS4wIHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgYW5kcmVhcwogICAgICAgIDoKICAgICAgICBbMS4wXSAKICAgICAgICAgICAgY2hhbmdlZCBsYXlvdXQKIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjAgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuMCB1cGRhdGUKICAgICAgICBieQogICAgICAgIGFuZHJlYXMKICAgICAgICA6CiAgICAgICAgWzEuMF0gCiAgICAgICAgICAgIGFkZGVkIHNjaGVkdWxlciBjc3MgdGFnCiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS4wIHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjAgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBhbmRyZWFzCiAgICAgICAgOgogICAgICAgIFsxLjBdIAogICAgICAgICAgICBmYWN0b3JlZCBvdXQgc2NoZWR1bGVyIGZ1bmN0aW9uYWxpdHkgdG8gZXh0ZXJuYWwgWFNQCiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS4wIHJlbW92ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjAgcmVtb3ZlCiAgICAgICAgYnkKICAgICAgICBlZGl0aAogICAgICAgIDoKICAgICAgICBbMS4wXSAKICAgICAgICAgICAgUmVuYW1lIFNpdGVUcmVlSW5pdGlhbGlzYXRpb25UYXNrIHRvIFNpdGVUcmVlUmVzZXRUYXNrCiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS4wIHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjAgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBlZGl0aAogICAgICAgIDoKICAgICAgICBbMS4wXSAKICAgICAgICAgICAgV29ya2Zsb3cgZXZlbnQgaW5zZXJ0ZWQKIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjAgYWRkPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuMCBhZGQKICAgICAgICBieQogICAgICAgIGVkaXRoCiAgICAgICAgOgogICAgICAgIFsxLjBdIAogICAgICAgICAgICBDb3B5L21vdmUgZ2VuZXJhbGlzYXRpb25zIChObyBtb3JlIGRlcGVuZGVudCBvZiBmaWxlIHN0cnVjdHVyZSkKV29yayBpbiBwcm9ncmVzcwogRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuMCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS4wIHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgbWljaGkKICAgICAgICA6CiAgICAgICAgWzEuMF0gCiAgICAgICAgICAgIHJlbGF0aXZlIHBhdGggcHJvYmxlbSBzaW1wbGlmaWVkCiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS4wIGFkZDwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjAgYWRkCiAgICAgICAgYnkKICAgICAgICBtaWNoaQogICAgICAgIDoKICAgICAgICBbMS4wXSAKICAgICAgICAgICAgYXJjaGl2ZXMgaW1wbGVtZW50ZWQKIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjAgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuMCB1cGRhdGUKICAgICAgICBieQogICAgICAgIG1pY2hpCiAgICAgICAgOgogICAgICAgIFsxLjBdIAogICAgICAgICAgICBBcmNoaXZlcyBnZW5lcmF0ZXMgWE1MCiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS4wIHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjAgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBhbmRyZWFzCiAgICAgICAgOgogICAgICAgIFsxLjBdIAogICAgICAgICAgICAtIGFkZGVkIGxvZ2dpbmcKLSBhZGRpbmcgbGVhZGluZyBzbGFzaCB0byB3ZWJhcHAgVVJMCiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS4wIHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjAgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBhbmRyZWFzCiAgICAgICAgOgogICAgICAgIFsxLjBdIAogICAgICAgICAgICBhZGRlZCBta2RpcnMoKSB0byB3cml0ZURvY3VtZW50KCkKIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjAgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuMCB1cGRhdGUKICAgICAgICBieQogICAgICAgIGFuZHJlYXMKICAgICAgICA6CiAgICAgICAgWzEuMF0gCiAgICAgICAgICAgIC0gYWRkZWQgbG9nZ2luZwotIG1ha2UgdXNlIG9mIFNlcnZsZXRIZWxwZXIKIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjAgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuMCB1cGRhdGUKICAgICAgICBieQogICAgICAgIGFuZHJlYXMKICAgICAgICA6CiAgICAgICAgWzEuMF0gCiAgICAgICAgICAgIHVzaW5nIFNlcnZsZXRIZWxwZXIgdG8gY29tcHV0ZSB3ZWJhcHAgVVJMCiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS4wIHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjAgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBhbmRyZWFzCiAgICAgICAgOgogICAgICAgIFsxLjBdIAogICAgICAgICAgICBpbXByb3ZlZCBsb2cgbWVzc2FnZXMgc2xpZ2h0bHkKIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjAgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuMCB1cGRhdGUKICAgICAgICBieQogICAgICAgIGFuZHJlYXMKICAgICAgICA6CiAgICAgICAgWzEuMF0gCiAgICAgICAgICAgIGFkZGVkICJleHBvcnQiIHRhcmdldAogRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuMCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS4wIHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgYW5kcmVhcwogICAgICAgIDoKICAgICAgICBbMS4wXSAKICAgICAgICAgICAgYWRkZWQgcGFja2FnZSBpbXBvcnRzCiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS4wIHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjAgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBhbmRyZWFzCiAgICAgICAgOgogICAgICAgIFsxLjBdIAogICAgICAgICAgICBzZXR0aW5nIHdvcmtmbG93IGVuYWJsZWQgb25seSB3aGVuIGFjY2VzcyBjb250cm9sIGlzIGVuYWJsZWQKIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjAgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuMCB1cGRhdGUKICAgICAgICBieQogICAgICAgIG1pY2hpCiAgICAgICAgOgogICAgICAgIFsxLjBdIAogICAgICAgICAgICBBdG9tIGFkZGVkCiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS4wIHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjAgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBtaWNoaQogICAgICAgIDoKICAgICAgICBbMS4wXSAKICAgICAgICAgICAgQXJjaGl2ZXMgc3RhcnRlZCB0byBhZGQKIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjAgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuMCB1cGRhdGUKICAgICAgICBieQogICAgICAgIG1pY2hpCiAgICAgICAgOgogICAgICAgIFsxLjBdIAogICAgICAgICAgICBzaWRlYmFyIGVkaXRhYmxlCiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS4wIHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjAgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBtaWNoaQogICAgICAgIDoKICAgICAgICBbMS4wXSAKICAgICAgICAgICAgaHRtbCBmb3JtIGVkaXRvciByZWRpcmVjdCBmaXhlZAogRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuMCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS4wIHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgbWljaGkKICAgICAgICA6CiAgICAgICAgWzEuMF0gCiAgICAgICAgICAgIEZJWE1FIGZvciBIVE1MIEZvcm0gRWRpdG9yIGFkZGVkCiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS4wIHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjAgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBtaWNoaQogICAgICAgIDoKICAgICAgICBbMS4wXSAKICAgICAgICAgICAgU2lkZWJhciBpcyBlZGl0YWJsZQogRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuMCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS4wIHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgbWljaGkKICAgICAgICA6CiAgICAgICAgWzEuMF0gCiAgICAgICAgICAgIGNvbG9ycyBwcmV0dGlmaWVkCiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS4wIHJlbW92ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjAgcmVtb3ZlCiAgICAgICAgYnkKICAgICAgICBhbmRyZWFzCiAgICAgICAgOgogICAgICAgIFsxLjBdIAogICAgICAgICAgICByZWRlc2lnbmVkIHNjaGVkdWxlciBwaXBlbGluZXMKIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjAgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuMCB1cGRhdGUKICAgICAgICBieQogICAgICAgIG1pY2hpCiAgICAgICAgOgogICAgICAgIFsxLjBdIAogICAgICAgICAgICByZWxheG5nIGFkZGVkCiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS4wIHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjAgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBhbmRyZWFzCiAgICAgICAgOgogICAgICAgIFsxLjBdIAogICAgICAgICAgICBjb21tZW50ZWQgb3V0IHVudXNlZCBjb21wb25lbnQgZGVjbGFyYXRpb25zCiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS4wIHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjAgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBhbmRyZWFzCiAgICAgICAgOgogICAgICAgIFsxLjBdIAogICAgICAgICAgICAtIHJlZmxlY3Rpbmcgc2NoZWR1bGVyIGNoYW5nZXMKLSByZW1vdmVkIHVudXNlZCBwaXBlbGluZXMKLSBub3RpZmljYXRpb246IGZhbGxiYWNrIHRvIGRlZmF1bHQgY29uZmlnIGZpbGUKIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjAgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuMCB1cGRhdGUKICAgICAgICBieQogICAgICAgIGFuZHJlYXMKICAgICAgICA6CiAgICAgICAgWzEuMF0gCiAgICAgICAgICAgIHJlZmxlY3Rpbmcgc2NoZWR1bGVyIGNoYW5nZXMKIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjAgcmVtb3ZlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuMCByZW1vdmUKICAgICAgICBieQogICAgICAgIGFuZHJlYXMKICAgICAgICA6CiAgICAgICAgWzEuMF0gCiAgICAgICAgICAgIHJlbW92ZWQgdW51c2VkIGZpbGVzCiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS4wIHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjAgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBhbmRyZWFzCiAgICAgICAgOgogICAgICAgIFsxLjBdIAogICAgICAgICAgICBubyBzdWZmaXggZm9yIGRlZmF1bHQgbGFuZ3VhZ2UKIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjAgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuMCB1cGRhdGUKICAgICAgICBieQogICAgICAgIGFuZHJlYXMKICAgICAgICA6CiAgICAgICAgWzEuMF0gCiAgICAgICAgICAgIGFkZGluZyBub3RpZmljYXRpb24KIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjAgcmVtb3ZlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuMCByZW1vdmUKICAgICAgICBieQogICAgICAgIGFuZHJlYXMKICAgICAgICA6CiAgICAgICAgWzEuMF0gCiAgICAgICAgICAgIHJlbW92ZWQgdW51c2VkIHNjaGVkdWxlciBYU1BzCiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS4wIGFkZDwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjAgYWRkCiAgICAgICAgYnkKICAgICAgICBhbmRyZWFzCiAgICAgICAgOgogICAgICAgIFsxLjBdIAogICAgICAgICAgICBhZGRlZCBkZWZhdWx0IG5vdGlmaWNhdGlvbiBmaWxlCiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS4wIHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjAgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBhbmRyZWFzCiAgICAgICAgOgogICAgICAgIFsxLjBdIAogICAgICAgICAgICAtIGFkZGVkIG1vZGlmeUpvYigpCi0gc29tZSByZWZhY3RvcmluZyBhbmQgc2ltcGxpZmljYXRpb24KIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjAgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuMCB1cGRhdGUKICAgICAgICBieQogICAgICAgIGFuZHJlYXMKICAgICAgICA6CiAgICAgICAgWzEuMF0gCiAgICAgICAgICAgIHVzaW5nIG1vZGlmeUpvYigpIGluc3RlYWQgb2YgZGVsZXRlK2FkZAogRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuMCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS4wIHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgbWljaGkKICAgICAgICA6CiAgICAgICAgWzEuMF0gCiAgICAgICAgICAgIGNvbmZpZyBmaXhlZAogRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuMCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS4wIHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgZmVsaXgKICAgICAgICA6CiAgICAgICAgWzEuMF0gCiAgICAgICAgICAgIEFkZGluZyB1c2Ugb2YgeGh0bWwgaW5zdGVhZCBvZiB4c2x0IGZvciBCWEVORwogRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuMCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS4wIHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgYW5kcmVhcwogICAgICAgIDoKICAgICAgICBbMS4wXSAKICAgICAgICAgICAgcGFzc2luZyBtb2RpZmlhYmxlIG1hcCB0byBXb3JrZmxvd0ludm9rZXIKIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjAgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuMCB1cGRhdGUKICAgICAgICBieQogICAgICAgIG1pY2hpCiAgICAgICAgOgogICAgICAgIFsxLjBdIAogICAgICAgICAgICBjb3B5IG9ubHkgY2hpbGRyZW4KIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjAgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuMCB1cGRhdGUKICAgICAgICBieQogICAgICAgIG1pY2hpCiAgICAgICAgOgogICAgICAgIFsxLjBdIAogICAgICAgICAgICB4aHRtbCBzZXJpYWxpemVyIGZvciBCWEVORyBhZGRlZCBiZWNhdXNlIElTTy04ODU5LTEgaXMgbmVjZXNzYXJ5CiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS4wIHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjAgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBtaWNoaQogICAgICAgIDoKICAgICAgICBbMS4wXSAKICAgICAgICAgICAgdW5uZWNlc3NhcnkgY29tcG9uZW50cyByZW1vdmVkCiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS4wIHJlbW92ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjAgcmVtb3ZlCiAgICAgICAgYnkKICAgICAgICBtaWNoaQogICAgICAgIDoKICAgICAgICBbMS4wXSAKICAgICAgICAgICAgcmVuYW1lZCB0byB4aHRtbAogRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuMCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS4wIHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgbWljaGkKICAgICAgICA6CiAgICAgICAgWzEuMF0gCiAgICAgICAgICAgIGluZGV4LnhodG1sIGlzIG5vdyBjb25maWd1cmFibGUKIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjAgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuMCB1cGRhdGUKICAgICAgICBieQogICAgICAgIGFuZHJlYXMKICAgICAgICA6CiAgICAgICAgWzEuMF0gCiAgICAgICAgICAgIHJlbW92ZWQgdW51c2VkIHZhcmlhYmxlcwogRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuMCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS4wIHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgYW5kcmVhcwogICAgICAgIDoKICAgICAgICBbMS4wXSAKICAgICAgICAgICAgLSBjaGFuZ2VkIG5vdGlmaWNhdGlvbiBwcmVmaXgKLSBnZXRQYXJhbWV0ZXJzKCkgcmV0dXJucyB1bm1vZGlmaWFibGUgbWFwCiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS4wIHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjAgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBhbmRyZWFzCiAgICAgICAgOgogICAgICAgIFsxLjBdIAogICAgICAgICAgICByZW1vdmVkIGRlYWQgY29kZQogRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuMCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS4wIHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgYW5kcmVhcwogICAgICAgIDoKICAgICAgICBbMS4wXSAKICAgICAgICAgICAgbG9nIG1lc3NhZ2VzLCBzbWFsbCBjb2RlIGNsZWFudXBzCiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS4wIHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjAgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBhbmRyZWFzCiAgICAgICAgOgogICAgICAgIFsxLjBdIAogICAgICAgICAgICBjaGFuZ2VkIG5vdGlmaWNhdGlvbiBwcmVmaXgKIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjAgYWRkPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuMCBhZGQKICAgICAgICBieQogICAgICAgIGVnbGkKICAgICAgICA6CiAgICAgICAgWzEuMF0gCiAgICAgICAgICAgIEFkZGVkIGFuIGFjdGlvbiB0aGF0IGFsbG93cyBjaGVja2luZyBpZiBhIGRvY3VtZW50IGV4aXN0cyBpbiB0aGUgZ2l2ZW4KbGFuZ3VhZ2UuCiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS4wIHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjAgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBlZ2xpCiAgICAgICAgOgogICAgICAgIFsxLjBdIAogICAgICAgICAgICBBZGRlZCB0d28gbWV0aG9kcyBmb3IgY2hlY2tpbmcKCjEuIGlmIGEgZG9jdW1lbnQgZXhpc3RzIChleGlzdHMoKSkKMi4gaWYgYSBkb2N1bWVudCB3aXRoIHRoZSBnaXZlbiBkb2N1bWVudC1pZCBhbmQgYXJlYSAocmVnYXJkbGVzcyBvZgogICB0aGUgbGFuZ3VhZ2UpIGV4aXN0cyAoZXhpc3RzSW5BbnlMYW5ndWFnZSgpKQogRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuMCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS4wIHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgZWdsaQogICAgICAgIDoKICAgICAgICBbMS4wXSAKICAgICAgICAgICAgQWRkZWQgYW4gZW5jb2RpbmcgdGFnLgogRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuMCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS4wIHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgZWdsaQogICAgICAgIDoKICAgICAgICBbMS4wXSAKICAgICAgICAgICAgUmVtb3ZlZCB1bmVlZGVkIHhzbDpvdXRwdXQgdGFnLgogRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuMCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS4wIHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgZWdsaQogICAgICAgIDoKICAgICAgICBbMS4wXSAKICAgICAgICAgICAgU2ltcGxpZmllZCB0aGUgc2l0ZW1hcCBieSBpbnRyb2R1Y2luZyBhIHJlc291cmNlIHdoaWNoIHNoYXJlcyBzb21lCmNvbW1vbiBmdW5jdGlvbmFsaXR5LgogRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuMCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS4wIHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgbWljaGkKICAgICAgICA6CiAgICAgICAgWzEuMF0gCiAgICAgICAgICAgIFBVVCBhZGRlZAogRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuMCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS4wIHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgYW5kcmVhcwogICAgICAgIDoKICAgICAgICBbMS4wXSAKICAgICAgICAgICAgcmVuYW1lZCB0YXJnZXQgIm1haWwiIHRvICJub3RpZmljYXRpb24iCiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS4wIHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjAgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBhbmRyZWFzCiAgICAgICAgOgogICAgICAgIFsxLjBdIAogICAgICAgICAgICBvbmx5IHdoaXRlc3BhY2UgY2hhbmdlcwogRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuMCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS4wIHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgYW5kcmVhcwogICAgICAgIDoKICAgICAgICBbMS4wXSAKICAgICAgICAgICAgcmVmbGVjdGluZyBjaGFuZ2VzIHRvIG90aGVyIHNjaGVkdWxlciBjbGFzc2VzCiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS4wIHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjAgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBhbmRyZWFzCiAgICAgICAgOgogICAgICAgIFsxLjBdIAogICAgICAgICAgICB1c2luZyBNYXAgaW5zdGVhZCBvZiBQYXJhbWV0ZXJzCiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS4wIHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjAgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBhbmRyZWFzCiAgICAgICAgOgogICAgICAgIFsxLjBdIAogICAgICAgICAgICBhZGRlZCBzZXRTZXJ2bGV0Q29udGV4dFBhdGgoKSBtZXRob2QKIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjAgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuMCB1cGRhdGUKICAgICAgICBieQogICAgICAgIGFuZHJlYXMKICAgICAgICA6CiAgICAgICAgWzEuMF0gCiAgICAgICAgICAgIGNoZWNraW5nIHRhc2staWQgb25seSB3aGVuIHRhc2sgaXMgZXhlY3V0ZWQKIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjAgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuMCB1cGRhdGUKICAgICAgICBieQogICAgICAgIGFuZHJlYXMKICAgICAgICA6CiAgICAgICAgWzEuMF0gCiAgICAgICAgICAgIHNpbXBsaWZpZWQgcGFyYW1ldGVyIGhhbmRsaW5nCiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS4wIHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjAgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBhbmRyZWFzCiAgICAgICAgOgogICAgICAgIFsxLjBdIAogICAgICAgICAgICB1c2luZyBhdHRyaWJ1dGVzIGluc3RlYWQgb2YgcGFyYW1ldGVyIGVsZW1lbnRzIHRvIHN0b3JlIGpvYi1zcGVjaWZpYyBpbmZvcm1hdGlvbgogRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuMCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS4wIHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgbWljaGkKICAgICAgICA6CiAgICAgICAgWzEuMF0gCiAgICAgICAgICAgIGJ1dHRvbnMgYWRkZWQKIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjAgcmVtb3ZlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuMCByZW1vdmUKICAgICAgICBieQogICAgICAgIGFuZHJlYXMKICAgICAgICA6CiAgICAgICAgWzEuMF0gCiAgICAgICAgICAgIHJlcGxhY2VkIEpvYkRhdGFNYXBXcmFwcGVyIGJ5IE5hbWVzcGFjZU1hcAogRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuMCBhZGQ8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS4wIGFkZAogICAgICAgIGJ5CiAgICAgICAgYW5kcmVhcwogICAgICAgIDoKICAgICAgICBbMS4wXSAKICAgICAgICAgICAgYWRkZWQgU2luZ2xlTGFuZ3VhZ2VJZGVudGl0eU1hcHBlcgogRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuMCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS4wIHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgYW5kcmVhcwogICAgICAgIDoKICAgICAgICBbMS4wXSAKICAgICAgICAgICAgLSB1c2luZyBNYXBzIGluc3RlYWQgb2YgUGFyYW1ldGVycwotIGNoYW5nZWQgZG9jdW1lbnQtdXJsIHBhcmFtZXRlciBwcmVmaXgKIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjAgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuMCB1cGRhdGUKICAgICAgICBieQogICAgICAgIG1pY2hpCiAgICAgICAgOgogICAgICAgIFsxLjBdIAogICAgICAgICAgICBub3RpZmljYXRpb24gZGlzYWJsZWQKIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjAgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuMCB1cGRhdGUKICAgICAgICBieQogICAgICAgIG1pY2hpCiAgICAgICAgOgogICAgICAgIFsxLjBdIAogICAgICAgICAgICBub3RlcyBhZGRlZAogRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuMCBhZGQ8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS4wIGFkZAogICAgICAgIGJ5CiAgICAgICAgZWdsaQogICAgICAgIDoKICAgICAgICBbMS4wXSAKICAgICAgICAgICAgQWRkZWQgYW4geHNwIGFuZCBhbiB4c2wgZm9yIHRoZSBtaXNzaW5nIGxhbmd1YWdlIHNjcmVlbi4KIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjAgYWRkPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuMCBhZGQKICAgICAgICBieQogICAgICAgIG1pY2hpCiAgICAgICAgOgogICAgICAgIFsxLjBdIAogICAgICAgICAgICBub3RpZmljYXRpb24gYWRkZWQKIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjAgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuMCB1cGRhdGUKICAgICAgICBieQogICAgICAgIG1pY2hpCiAgICAgICAgOgogICAgICAgIFsxLjBdIAogICAgICAgICAgICBzaWRlYmFyIGZvciBvdmVydmlldyBmaXhlZAogRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuMCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS4wIHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgbWljaGkKICAgICAgICA6CiAgICAgICAgWzEuMF0gCiAgICAgICAgICAgIHNpZGViYXIgYWRkZWQgdG8gb3ZlcnZpZXcKIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjAgcmVtb3ZlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuMCByZW1vdmUKICAgICAgICBieQogICAgICAgIG1pY2hpCiAgICAgICAgOgogICAgICAgIFsxLjBdIAogICAgICAgICAgICBub3QgbmVlZGVkIGFueW1vcmUKIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjAgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuMCB1cGRhdGUKICAgICAgICBieQogICAgICAgIG1pY2hpCiAgICAgICAgOgogICAgICAgIFsxLjBdIAogICAgICAgICAgICBzaWRlYmFyIGFzIFhNTCBpbnN0ZWFkIFhTTFQKIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjAgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuMCB1cGRhdGUKICAgICAgICBieQogICAgICAgIGVnbGkKICAgICAgICA6CiAgICAgICAgWzEuMF0gCiAgICAgICAgICAgIFJlbW92ZWQgdW51c2VkIHZhcmlhYmxlcy4KIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjAgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuMCB1cGRhdGUKICAgICAgICBieQogICAgICAgIGVnbGkKICAgICAgICA6CiAgICAgICAgWzEuMF0gCiAgICAgICAgICAgIE1hZGUgdGhlIGNsYXNzIGRlcHJlY2F0ZWQgYXMgaXQgaGFzIGJlZW4gc3VwZXJjZWRlZCBieSB0aGUKcGFnZS1lbnZlbG9wZSBpbnB1dCBtb2R1bGUuCiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS4wIHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjAgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBlZ2xpCiAgICAgICAgOgogICAgICAgIFsxLjBdIAogICAgICAgICAgICBTZXQgdGhpcyBhY3Rpb24gdG8gZGVwcmVjYXRlZCBhcyBpdCBoYXMgYmVlbiBzdXBlcmNlZGVkIGJ5CnRoZSBkb2N1bWVudCByZW1vdmUgYW50IHRhc2suCiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS4wIHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjAgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBlZ2xpCiAgICAgICAgOgogICAgICAgIFsxLjBdIAogICAgICAgICAgICBSZW1vdmUgdW51c2VkIHZhcmlhYmxlcyBhbmQgbWV0aG9kcy4KIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjAgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuMCB1cGRhdGUKICAgICAgICBieQogICAgICAgIGVnbGkKICAgICAgICA6CiAgICAgICAgWzEuMF0gCiAgICAgICAgICAgIEV4Y2VwdGlvbnMgaW4gdGhlIHNldHRlciBtZXRob2RzIG9mIER1YmxpbkNvcmUgYXJlIG5vIGxvbmdlciBzaWxlbnRseQpjYXVnaHQsIGJ1dCBhcmUgbm93IHBhc3NlZCBvbi4KIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjAgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuMCB1cGRhdGUKICAgICAgICBieQogICAgICAgIGFuZHJlYXMKICAgICAgICA6CiAgICAgICAgWzEuMF0gCiAgICAgICAgICAgIHVwZGF0ZWQgc2NoZWR1bGVyIHVzZWNhc2UKIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjAgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuMCB1cGRhdGUKICAgICAgICBieQogICAgICAgIGFuZHJlYXMKICAgICAgICA6CiAgICAgICAgWzEuMF0gCiAgICAgICAgICAgIHVzaW5nIGxvZ2ljc2hlZXQtZ2VuZXJhdGVkIHBhcmFtZXRlcnMKIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjAgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuMCB1cGRhdGUKICAgICAgICBieQogICAgICAgIGFuZHJlYXMKICAgICAgICA6CiAgICAgICAgWzEuMF0gCiAgICAgICAgICAgIHJlLWFycmFuZ2VkIHBhcmFtZXRlcnMsIGltcHJvdmVkIG5vdGlmaWNhdGlvbiBHVUkKIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjAgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuMCB1cGRhdGUKICAgICAgICBieQogICAgICAgIGFuZHJlYXMKICAgICAgICA6CiAgICAgICAgWzEuMF0gCiAgICAgICAgICAgIG1vcmUgZmxleGlibGUgbm90aWZpY2F0aW9uIEdVSQogRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuMCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS4wIHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgbWljaGkKICAgICAgICA6CiAgICAgICAgWzEuMF0gCiAgICAgICAgICAgIFhNTCBmcm9tIHdlYmRhdiBmb2xkZXIKIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjAgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuMCB1cGRhdGUKICAgICAgICBieQogICAgICAgIGFuZHJlYXMKICAgICAgICA6CiAgICAgICAgWzEuMF0gCiAgICAgICAgICAgIHNob3dpbmcgaXNfbGl2ZSB2YXJpYWJsZSB2YWx1ZQogRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuMCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS4wIHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgbWljaGkKICAgICAgICA6CiAgICAgICAgWzEuMF0gCiAgICAgICAgICAgIHJlZGlyZWN0IGZvciBpbmRleC5odG1sIGFkZGVkCiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS4wIHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjAgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBhbmRyZWFzCiAgICAgICAgOgogICAgICAgIFsxLjBdIAogICAgICAgICAgICBjaGFuZ2VkIGxheW91dAogRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuMCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS4wIHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgbWljaGkKICAgICAgICA6CiAgICAgICAgWzEuMF0gCiAgICAgICAgICAgIExlbnlhIHRpdGxlIGxpbmtlZAogRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuMCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS4wIHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgYW5kcmVhcwogICAgICAgIDoKICAgICAgICBbMS4wXSAKICAgICAgICAgICAgYWRkZWQgZ2V0VmFyaWFibGVOYW1lcygpCiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS4wIHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjAgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBhbmRyZWFzCiAgICAgICAgOgogICAgICAgIFsxLjBdIAogICAgICAgICAgICBhbGxvd2luZyBPYmplY3QgdmFsdWVzCiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS4wIHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjAgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBhbmRyZWFzCiAgICAgICAgOgogICAgICAgIFsxLjBdIAogICAgICAgICAgICBpbXByb3ZlZCBwYXJhbWV0ZXIgaGFuZGxpbmcKIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjAgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuMCB1cGRhdGUKICAgICAgICBieQogICAgICAgIGFuZHJlYXMKICAgICAgICA6CiAgICAgICAgWzEuMF0gCiAgICAgICAgICAgIHRhc2sgd3JhcHBlciBidWdmaXgsIGltcHJvdmVkIGxvZyBtZXNzYWdlcwogRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuMCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS4wIHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgYW5kcmVhcwogICAgICAgIDoKICAgICAgICBbMS4wXSAKICAgICAgICAgICAgdXNpbmcgd2ViYXBwIFVSTCBpbnN0ZWFkIG9mIGRvY3VtZW50IFVSTAogRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuMCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS4wIHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgYW5kcmVhcwogICAgICAgIDoKICAgICAgICBbMS4wXSAKICAgICAgICAgICAgY29kZSBjbGVhbnVwCiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS4wIHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjAgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBhbmRyZWFzCiAgICAgICAgOgogICAgICAgIFsxLjBdIAogICAgICAgICAgICBhZGRlZCBnZXREYXRlKCkgbWV0aG9kCiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS4wIGFkZDwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjAgYWRkCiAgICAgICAgYnkKICAgICAgICBhbmRyZWFzCiAgICAgICAgOgogICAgICAgIFsxLjBdIAogICAgICAgICAgICBhZGRlZCBJZGVudGl0eURvY3VtZW50SWRUb1BhdGhNYXBwZXIKIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjAgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuMCB1cGRhdGUKICAgICAgICBieQogICAgICAgIGFuZHJlYXMKICAgICAgICA6CiAgICAgICAgWzEuMF0gCiAgICAgICAgICAgIG9ubHkgd2hpdGVzcGFjZSBjaGFuZ2VzCiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS4wIHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjAgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBhbmRyZWFzCiAgICAgICAgOgogICAgICAgIFsxLjBdIAogICAgICAgICAgICBhZGRpbmcgaXNfbGl2ZSB2YXJpYWJsZSB0byBYTUwKIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjAgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuMCB1cGRhdGUKICAgICAgICBieQogICAgICAgIGFuZHJlYXMKICAgICAgICA6CiAgICAgICAgWzEuMF0gCiAgICAgICAgICAgIHNvbWUgYnVnZml4ZXMsIGltcHJvdmVkIGxvZyBtZXNzYWdlcwogRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuMCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS4wIHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgYW5kcmVhcwogICAgICAgIDoKICAgICAgICBbMS4wXSAKICAgICAgICAgICAgdXNpbmcgU2NoZWR1bGVySGVscGVyIHRvIGFkZCBwYXJhbWV0ZXJzCiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS4wIHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjAgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBhbmRyZWFzCiAgICAgICAgOgogICAgICAgIFsxLjBdIAogICAgICAgICAgICByZW1vdmVkIHVudXNlZCBjYXN0CiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS4wIHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjAgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBhbmRyZWFzCiAgICAgICAgOgogICAgICAgIFsxLjBdIAogICAgICAgICAgICByZW1vdmVkIHVudXNlZCB2YXJpYWJsZQogRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuMCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS4wIHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgYW5kcmVhcwogICAgICAgIDoKICAgICAgICBbMS4wXSAKICAgICAgICAgICAgcmVtb3ZlZCB1bnVzZWQgZmllbGQKIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjAgYWRkPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuMCBhZGQKICAgICAgICBieQogICAgICAgIGVnbGkKICAgICAgICA6CiAgICAgICAgWzEuMF0gCiAgICAgICAgICAgIEpVbml0IGNsYXNzIGZvciB0aGUgRHVibGluIENvcmUgY2xhc3NlcyAoSW50ZXJmYWNlLCBJbXBsZW1lbnRhdGlvbiBhbmQKUHJveHkpLgogRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuMCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS4wIHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgZWdsaQogICAgICAgIDoKICAgICAgICBbMS4wXSAKICAgICAgICAgICAgVGhlIER1YmxpbiBDb3JlIGNsYXNzIGhhcyBiZWVuIHJld3JpdHRlbiB0byBtYWtlIHByb3BlciB1c2Ugb2YgdGhlIEdvRgpQcm94eSBQYXR0ZXJuLiBUaGUgb2xkICdjbGV2ZXInIGFsZ29yaXRobSBoYWQgc2V2ZXJlIHRpbWluZyBmbGF3cywKd2hlcmVhcyB0aGUgbmV3IGFsZ29yaXRobSBpcyBiYXNlZCBvbiB0cmllZCBhbmQgcHJvdmVuIHRlY2hub2xvZ3kuClNvIHRoZSBEdWJsaW5Db3JlIGNsYXNzIGhhcyBiZWVuIHRyYW5zZm9ybWVkIGludG8gYW4gaW50ZXJmYWNlLCBhCnByb3h5IGFuZCBhbiBhY3R1YWwgaW1wbGVtZW50YXRpb24gd2hpY2ggaXMgdXNlZCBieSB0aGUgcHJveHkuCiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS4wIHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjAgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBlZ2xpCiAgICAgICAgOgogICAgICAgIFsxLjBdIAogICAgICAgICAgICBSZW1vdmVkIHVudXNlZCB2YXJpYWJsZXMuCiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS4wIHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjAgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBlZ2xpCiAgICAgICAgOgogICAgICAgIFsxLjBdIAogICAgICAgICAgICBNYWtlIHN1cmUgdGhlIHBhcmFtZXRlciBuYW1lcyBtYXRjaCB0aGUgbmFtZXMgb2YgdGhlIHBhcmFtcyB0aGF0IHRoZQphbnQgdGFzayBpcyBleHBlY3RpbmcuCiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS4wIHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjAgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBtaWNoaQogICAgICAgIDoKICAgICAgICBbMS4wXSAKICAgICAgICAgICAgUFVUIGlzIGhhbmRsZWQgYnkgV2ViREFWIHNpdGVtYXAKIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjAgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuMCB1cGRhdGUKICAgICAgICBieQogICAgICAgIGVnbGkKICAgICAgICA6CiAgICAgICAgWzEuMF0gCiAgICAgICAgICAgIFJldm92ZWQgdW51c2VkIHZhcmlhYmxlCiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS4wIHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjAgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBlZ2xpCiAgICAgICAgOgogICAgICAgIFsxLjBdIAogICAgICAgICAgICBSZW1vdmVkIHVudXNlZCB2YXJpYWJsZS4KIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjAgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuMCB1cGRhdGUKICAgICAgICBieQogICAgICAgIGVnbGkKICAgICAgICA6CiAgICAgICAgWzEuMF0gCiAgICAgICAgICAgIFJldm92ZWQgdW51c2VkIHZhcmlhYmxlCiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS4wIHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjAgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBlZ2xpCiAgICAgICAgOgogICAgICAgIFsxLjBdIAogICAgICAgICAgICBGaXhlZCBhIGJ1ZyB3aGVyZSB0aGUgZ2V0UmVzb3VyY2VzIG1ldGhvZCB3b3VsZCBhbHNvCnJldHVybiBzdWJkaXJzLgpBZGRlZCBhIG1ldGhvZCB0byBmZXRjaCBtZXRhIGRhdGEuCiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS4wIHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjAgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBtaWNoaQogICAgICAgIDoKICAgICAgICBbMS4wXSAKICAgICAgICAgICAgUFVUIHRvIFdlYkRBViBzaXRlbWFwIGFkZGVkLCBidXQgdGhlcmUgc2VlbXMgdG8gYmUgYSBwcm9ibGVtCiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS4wIHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjAgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBlZ2xpCiAgICAgICAgOgogICAgICAgIFsxLjBdIAogICAgICAgICAgICBBZGRlZCBzb21lIGphdmFkb2NzLgogRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuMCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS4wIHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgZWdsaQogICAgICAgIDoKICAgICAgICBbMS4wXSAKICAgICAgICAgICAgUmVtb3ZlZCB1bnVzZWQgdmFyaWFibGUgYW5kIHVudXNlZCBjYXN0LgogRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuMCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS4wIHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgZWdsaQogICAgICAgIDoKICAgICAgICBbMS4wXSAKICAgICAgICAgICAgUmVtb3ZlZCB1bmVjZXNzYXJ5IGNhc3QuCiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS4wIHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjAgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBlZ2xpCiAgICAgICAgOgogICAgICAgIFsxLjBdIAogICAgICAgICAgICBSZW1vdmVkIGFuIHVudXNlZCB2YXJpYWJsZS4KIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjAgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuMCB1cGRhdGUKICAgICAgICBieQogICAgICAgIG1pY2hpCiAgICAgICAgOgogICAgICAgIFsxLjBdIAogICAgICAgICAgICBnZXRsYXN0bW9kaWZpZWQgYW5kIGdldGNvbnRlbnRsZW5ndGggaW1wcm92ZWQKIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjAgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuMCB1cGRhdGUKICAgICAgICBieQogICAgICAgIGVnbGkKICAgICAgICA6CiAgICAgICAgWzEuMF0gCiAgICAgICAgICAgIEltcG9ydmVkIEphdmFkb2MgdG8gY2xhcmlmeSB0aGUgZmFjdCB0aGF0IHRoZXJlIGlzIG9uZSBsYW5ndWFnZQphc3NvY2lhdGVkIHdpdGggYSBkb2N1bWVudCBidXQgdGhlcmUgYXJlIHBvc3NpYmx5IGEgbnVtYmVyCm9mIGxhbmd1YWdlcyBmb3Igd2hpY2ggdGhlcmUgYXJlIGFsc28gZG9jdW1lbnRzIHdpdGggdGhlCnNhbWUgZG9jdW1lbnQtaWQuCiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS4wIHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjAgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBlZ2xpCiAgICAgICAgOgogICAgICAgIFsxLjBdIAogICAgICAgICAgICBNYWtlIHN1cmUgdGhlIG1ldGEgZGF0YSB1cGRhdGUgcmVkaXJlY3RzIGJhY2sgdG8gdGhlIGluZm8Kc2NyZWVuLgogRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuMCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS4wIHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgbWljaGkKICAgICAgICA6CiAgICAgICAgWzEuMF0gCiAgICAgICAgICAgIExpbmsgb24gdGl0bGUKIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjAgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuMCB1cGRhdGUKICAgICAgICBieQogICAgICAgIG1pY2hpCiAgICAgICAgOgogICAgICAgIFsxLjBdIAogICAgICAgICAgICBGaWxlcyBpbSYjNjU1MzM7cGxlbWVudGVkCiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS4wIHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjAgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBtaWNoaQogICAgICAgIDoKICAgICAgICBbMS4wXSAKICAgICAgICAgICAgV2ViREFWIHNpdGVtYXAgYWRkZWQKIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjAgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuMCB1cGRhdGUKICAgICAgICBieQogICAgICAgIGVkaXRoCiAgICAgICAgOgogICAgICAgIFsxLjBdIAogICAgICAgICAgICBmaXggdGhlIHJvbGxiYWNrIGFuZCB0aGUgdmlldwpUaGUgZG9jdW1lbnQtaWQgaXMgbm8gbW9yZSBuZWNlc3NhcnkgYXMgYSByZXF1ZXN0IHBhcmFtZXRlcgogRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuMCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS4wIHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgZWRpdGgKICAgICAgICA6CiAgICAgICAgWzEuMF0gCiAgICAgICAgICAgIGZpeCB0aGUgcm9sbGJhY2svdmlldwpnZXQgdGhlIHBhcmFtZXRlcnMgZnJvbSB0aGUgcGFnZSBlbnZlbG9wZQogRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuMCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS4wIHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgZWRpdGgKICAgICAgICA6CiAgICAgICAgWzEuMF0gCiAgICAgICAgICAgIGZpeCB0aGUgUm9sbGJhY2sKIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjAgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuMCB1cGRhdGUKICAgICAgICBieQogICAgICAgIGVkaXRoCiAgICAgICAgOgogICAgICAgIFsxLjBdIAogICAgICAgICAgICBjaGFuZ2UgZmlsZSAgcGF0aAogRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuMCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS4wIHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgZWdsaQogICAgICAgIDoKICAgICAgICBbMS4wXSAKICAgICAgICAgICAgTWFrZSBzdXJlIHRoZSBhc3NldCByZW1vdmUgcmVkaXJlY3RzIGJhY2sgdG8gdGhlIGluZm8Kc2NyZWVuLgogRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuMCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS4wIHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgZWdsaQogICAgICAgIDoKICAgICAgICBbMS4wXSAKICAgICAgICAgICAgTWFrZSBzdXJlIHRoZSBhc3NldCB1cGxvYWQgcmVkaXJlY3RzIGJhY2sgdG8gdGhlIGluZm8gc2NyZWVuLgogRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuMCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS4wIHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgZWdsaQogICAgICAgIDoKICAgICAgICBbMS4wXSAKICAgICAgICAgICAgTWFrZSBzdXJlIHRoZSBjb3JyZWN0IHVzZWNhc2UgaXMgc2VudCB0byB0aGUgc2VydmVyIGluIHRoZSBjYXNlCndoZW4gd2UgYXJlIGRvaW5nIGEgc2ltcGxlIHVwbG9hZC4KIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjAgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuMCB1cGRhdGUKICAgICAgICBieQogICAgICAgIGVnbGkKICAgICAgICA6CiAgICAgICAgWzEuMF0gCiAgICAgICAgICAgIEFkYXB0IHRoZSB0aXRsZSBvZiB0aGUgdXBsb2FkIHNjcmVlbiBpZiB0aGUgdXBsb2FkL2luc2VydAppcyBmb3IgYW4gaW1hZ2UuCk1ha2Ugc3VyZSB0aGUgY3JlYXRvciBpcyBlZGl0ZWFibGUgKHRoZSBjcmVhdG9yIG9mIHRoZSBhc3NldAppcyBub3QgbmVjZXNzYXJpbHkgdGhlIHBlcnNvbiBsb2dnZW4gaW4gY3VycmVudGx5KS4KIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjAgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuMCB1cGRhdGUKICAgICAgICBieQogICAgICAgIG1pY2hpCiAgICAgICAgOgogICAgICAgIFsxLjBdIAogICAgICAgICAgICByb290IHBhdGggZml4ZWQKIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjAgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuMCB1cGRhdGUKICAgICAgICBieQogICAgICAgIG1pY2hpCiAgICAgICAgOgogICAgICAgIFsxLjBdIAogICAgICAgICAgICBXZWJEQVYgaW1wbGVtZW50ZWQKIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjAgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuMCB1cGRhdGUKICAgICAgICBieQogICAgICAgIGVkaXRoCiAgICAgICAgOgogICAgICAgIFsxLjBdIAogICAgICAgICAgICBmaXggdGhlIHJvbGxiYWNrIHZpZXcKIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjAgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuMCB1cGRhdGUKICAgICAgICBieQogICAgICAgIGVkaXRoCiAgICAgICAgOgogICAgICAgIFsxLjBdIAogICAgICAgICAgICBmaXggdGhlIHZpZXcgZm9yIHJvbGxiYWNrCiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS4wIHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjAgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBlZGl0aAogICAgICAgIDoKICAgICAgICBbMS4wXSAKICAgICAgICAgICAgc2V0IG1ldGhvZCBtb3ZlSGlzdG9yeSB0byBzdGF0aWMKIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjAgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuMCB1cGRhdGUKICAgICAgICBieQogICAgICAgIGVkaXRoCiAgICAgICAgOgogICAgICAgIFsxLjBdIAogICAgICAgICAgICBpbnNlcnQgdGhlIGFyZWEgdG8gY29tcHV0ZSB0aGUgcGF0aCBvZiB0aGUgd29ya2Zsb3cgaGlzdG9yeSBmaWxlcwogRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuMCBhZGQ8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS4wIGFkZAogICAgICAgIGJ5CiAgICAgICAgZWRpdGgKICAgICAgICA6CiAgICAgICAgWzEuMF0gCiAgICAgICAgICAgIGFudCB0YXNrIGZvciB0aGUgb3BlcmF0aW9uIG1vdmUgYSBkb2N1bWVudCAKbW92ZSB3b3JrZmxvdyBmaWxlcwogRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuMCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS4wIHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgZWdsaQogICAgICAgIDoKICAgICAgICBbMS4wXSAKICAgICAgICAgICAgVGhlIHBhcmFtIGZvciB0aGUgZmlsZSB0aGF0IGlzIHRvIGJlIHVwbG9hZGVkIGlzIG5vdyBjYWxsZWQKcHJvcGVydGllcy5hc3NldC5kYXRhCiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS4wIHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjAgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBlZ2xpCiAgICAgICAgOgogICAgICAgIFsxLjBdIAogICAgICAgICAgICBBZGQgYSBwaXBlbGluZSB0aGF0IGhhbmRsZXMgYm90aCBhc3NldCB1cGxvYWQgYW5kIGluc2VydC4KIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjAgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuMCB1cGRhdGUKICAgICAgICBieQogICAgICAgIGVnbGkKICAgICAgICA6CiAgICAgICAgWzEuMF0gCiAgICAgICAgICAgIE1ha2UgdGhlIHVwbG9hZCBhbmQgaW5zZXJ0IHNjcmVlbiB3b3JrLgogRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuMCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS4wIHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgYW5kcmVhcwogICAgICAgIDoKICAgICAgICBbMS4wXSAKICAgICAgICAgICAgcmVtb3ZlZCBzZW5zZWxlc3MgdXNlY2FzZW1lbnUgYW5kIHdvcmtmbG93bWVudSB0cmFuc2Zvcm1hdGlvbnMKIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjAgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuMCB1cGRhdGUKICAgICAgICBieQogICAgICAgIGVnbGkKICAgICAgICA6CiAgICAgICAgWzEuMF0gCiAgICAgICAgICAgIE9ubHkgd2hpdGVzcGFjZSBjaGFuZ2VzLCBpLmUuIGluZGVudGluZy4KIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjAgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuMCB1cGRhdGUKICAgICAgICBieQogICAgICAgIGVnbGkKICAgICAgICA6CiAgICAgICAgWzEuMF0gCiAgICAgICAgICAgIFRoZSBjYXB0aW9uIGlzIGFsc28gbmVlZGVkIGluIHRoZSBjYXNlIHdoZXJlIHRoZSB1cGxvYWQgaXMKbm90IGFuIGltYWdlLgogRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuMCBhZGQ8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS4wIGFkZAogICAgICAgIGJ5CiAgICAgICAgZWdsaQogICAgICAgIDoKICAgICAgICBbMS4wXSAKICAgICAgICAgICAgYmx1ZSBkb3QgaW1hZ2UgZm9yIGFzc2V0IHVwbG9hZC4KIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjAgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuMCB1cGRhdGUKICAgICAgICBieQogICAgICAgIGVkaXRoCiAgICAgICAgOgogICAgICAgIFsxLjBdIAogICAgICAgICAgICBjaGFuZ2UgIl8iIGludG8gIi0iIHRvIGhhdmUgbm8gY29uZmxpY3Qgd2l0aCB0aGUgbGFuZ3VhZ2Ugc3VmZml4CiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS4wIHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjAgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBlZGl0aAogICAgICAgIDoKICAgICAgICBbMS4wXSAKICAgICAgICAgICAgbWV0aG9kIHJlbW92ZSBjaGlsZHJlbgogRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuMCBhZGQ8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS4wIGFkZAogICAgICAgIGJ5CiAgICAgICAgZWRpdGgKICAgICAgICA6CiAgICAgICAgWzEuMF0gCiAgICAgICAgICAgIGFudCB0YXNrIHRvIGluaXRpYWxpemUgdGhlIHNpdGV0cmVlIHhtbCBmaWxlIChyZW1vdmUgYWxsIGNoaWxkcmVuIG9mIHRoZSByb290IG5vZGUpCiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS4wIHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjAgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBlZ2xpCiAgICAgICAgOgogICAgICAgIFsxLjBdIAogICAgICAgICAgICBPbmx5IHdoaXRlc3BhY2UgY2hhbmdlcywgaS5lLiBpbmRlbnRpbmcuCiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS4wIGFkZDwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjAgYWRkCiAgICAgICAgYnkKICAgICAgICBlZ2xpCiAgICAgICAgOgogICAgICAgIFsxLjBdIAogICAgICAgICAgICBNZXRhIHN0eWxlc2hlZXQgdGhhdCBnZW5lcmF0ZXMgYSBzdHlsZXNoZWV0IHdoaWNoIGluc2VydHMKYXNzZXQgdGFncyBpbiB0aGUgeG1sIGRvY3VtZW50cy4KIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjAgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuMCB1cGRhdGUKICAgICAgICBieQogICAgICAgIGVnbGkKICAgICAgICA6CiAgICAgICAgWzEuMF0gCiAgICAgICAgICAgIEFkZGVkIGZpZWxkcyBmb3IgY2FwdGlvbiBhbmQgbGluayB0aGF0IGFyZSBzaG93biBpbiB0aGUKY2FzZSBvZiBhbiBpbWFnZSB1cGxvYWQuCiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS4wIHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjAgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBlZ2xpCiAgICAgICAgOgogICAgICAgIFsxLjBdIAogICAgICAgICAgICBBZGRlZCBwYXJhbXMgbGlrZSBhcmVhLCBkb2N1bWVudC1pZCBhbmQgbGFuZ3VhZ2UuCiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS4wIHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjAgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBlZ2xpCiAgICAgICAgOgogICAgICAgIFsxLjBdIAogICAgICAgICAgICBGaXhlZCBKYXZhZG9jIHR5cG8uCiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS4wIHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjAgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBlZ2xpCiAgICAgICAgOgogICAgICAgIFsxLjBdIAogICAgICAgICAgICBTZXQgdG8gZGVwcmVjYXRlZCBhcyBpdCBpcyB2ZXJ5IHNwZWNpZmljIGZvciB1bmlwdWJsaWMgYW5kIGhhcyBiZWVuCnN1cGVyY2VkZWQgYnkgQXNzZXRVcGxvYWRBY3Rpb24uCiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS4wIHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjAgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBhbmRyZWFzCiAgICAgICAgOgogICAgICAgIFsxLjBdIAogICAgICAgICAgICByZW1vdmVkIHVudXNlZCBpbXBvcnQKIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjAgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuMCB1cGRhdGUKICAgICAgICBieQogICAgICAgIGFuZHJlYXMKICAgICAgICA6CiAgICAgICAgWzEuMF0gCiAgICAgICAgICAgIGFkZGVkIGdldFBhcmFtZXRlck1hcCgpIG1ldGhvZAogRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuMCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS4wIHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgYW5kcmVhcwogICAgICAgIDoKICAgICAgICBbMS4wXSAKICAgICAgICAgICAgc3BsaXR0aW5nIFRhc2tXcmFwcGVyUGFyYW1ldGVycyBpbnRvIHNlcGFyYXRlIG1vZHVsZXMKIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjAgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuMCB1cGRhdGUKICAgICAgICBieQogICAgICAgIGFuZHJlYXMKICAgICAgICA6CiAgICAgICAgWzEuMF0gCiAgICAgICAgICAgIHJlbW92ZWQgY29uZmlndXJhYmlsaXR5CiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS4wIHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjAgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBhbmRyZWFzCiAgICAgICAgOgogICAgICAgIFsxLjBdIAogICAgICAgICAgICBhZGRlZCBzb21lIGphdmFkb2NzCiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS4wIHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjAgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBhbmRyZWFzCiAgICAgICAgOgogICAgICAgIFsxLjBdIAogICAgICAgICAgICByZW1vdmVkIG9ic29sZXRlICJ0cmFuc2l0aW9uLWFudCIgcGlwZWxpbmUKIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjAgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuMCB1cGRhdGUKICAgICAgICBieQogICAgICAgIGFuZHJlYXMKICAgICAgICA6CiAgICAgICAgWzEuMF0gCiAgICAgICAgICAgIGltcHJvdmVkIG5vdGlmaWNhdGlvbiBoYW5kbGluZwogRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuMCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS4wIHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgYW5kcmVhcwogICAgICAgIDoKICAgICAgICBbMS4wXSAKICAgICAgICAgICAgYWRkZWQgcHV0QWxsKCkgbWV0aG9kCiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS4wIHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjAgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBhbmRyZWFzCiAgICAgICAgOgogICAgICAgIFsxLjBdIAogICAgICAgICAgICB1c2luZyBhY2Nlc3MgY29udHJvbCBJRHMgaW5zdGVhZCBvZiBvYmplY3RzIChlbmFibGVzIHNjaGVkdWxlciBqb2IgcGVyc2lzdGFuY2UpCiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS4wIHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjAgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBhbmRyZWFzCiAgICAgICAgOgogICAgICAgIFsxLjBdIAogICAgICAgICAgICBhZGRlZCBuYW1lc3BhY2UgYW5kIHBhcmFtZXRlcnMgYXJyYXkKIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjAgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuMCB1cGRhdGUKICAgICAgICBieQogICAgICAgIGFuZHJlYXMKICAgICAgICA6CiAgICAgICAgWzEuMF0gCiAgICAgICAgICAgIHVzaW5nIFRhc2tXcmFwcGVyIHRvIGV4ZWN1dGUgdGFzawogRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuMCBhZGQ8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS4wIGFkZAogICAgICAgIGJ5CiAgICAgICAgYW5kcmVhcwogICAgICAgIDoKICAgICAgICBbMS4wXSAKICAgICAgICAgICAgYWRkZWQgVGFza1dyYXBwZXIgY2xhc3NlcwogRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuMCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS4wIHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgYW5kcmVhcwogICAgICAgIDoKICAgICAgICBbMS4wXSAKICAgICAgICAgICAgYWRkZWQgd29ya2Zsb3dtZW51IGFuZCB1c2VjYXNlbWVudSB0cmFuc2Zvcm1hdGlvbnMKIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjAgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuMCB1cGRhdGUKICAgICAgICBieQogICAgICAgIG1pY2hpCiAgICAgICAgOgogICAgICAgIFsxLjBdIAogICAgICAgICAgICB1bm5lY2Vzc2FyeSBuYW1lc3BhY2VzIHJlbW92ZWQKIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjAgcmVtb3ZlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuMCByZW1vdmUKICAgICAgICBieQogICAgICAgIG1pY2hpCiAgICAgICAgOgogICAgICAgIFsxLjBdIAogICAgICAgICAgICBqdXN0IGZvciB0ZXN0aW5nLCBub3QgbmVjZXNzYXJ5IGFueW1vcmUKIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjAgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuMCB1cGRhdGUKICAgICAgICBieQogICAgICAgIGVnbGkKICAgICAgICA6CiAgICAgICAgWzEuMF0gCiAgICAgICAgICAgIEZpeCB0aGUgcGFyYW1ldGVyIG5hbWVzIGZvciBhc3NldCBkZWxldGlvbi4KIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjAgYWRkPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuMCBhZGQKICAgICAgICBieQogICAgICAgIGVnbGkKICAgICAgICA6CiAgICAgICAgWzEuMF0gCiAgICAgICAgICAgIFNpbXBsZSB1cGxvYWQgYWN0aW9uIHdoaWNoIGp1c3QgdXBsb2FkcyBhbiBhc3NldC4gSXQgZG9lcyBub3QKZG8gYW55IGluc2VydGluZyBvZiB0YWdzIGluIHhtbCBmaWxlcyBhcyB0aGUgSW1hZ2VVcGxvYWRDcmVhdG9yQWN0aW9uCmFuZCBpcyB0aGVyZWZvcmUgbW9yZSBnZW5lcmljLgogRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuMCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS4wIHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgZWdsaQogICAgICAgIDoKICAgICAgICBbMS4wXSAKICAgICAgICAgICAgU2VuZCByZXF1ZXN0IGFzIHBvc3QgcmVxdWVzdCBhbmQgbWFrZSBzb21lIGZpZWxkcyBub24tZWRpdGFibGUuCiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS4wIHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjAgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBlZ2xpCiAgICAgICAgOgogICAgICAgIFsxLjBdIAogICAgICAgICAgICBGZXRjaCB2YWx1ZXMgZm9yIGNyZWF0b3IgYW5kIHJlZmVyZXIuCiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS4wIHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjAgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBlZ2xpCiAgICAgICAgOgogICAgICAgIFsxLjBdIAogICAgICAgICAgICBBZGRlZCB0aGUgdXBsb2FkIHVzZWNhc2UgbWF0Y2hlci4KUmVtb3ZlZCB0aGUgcGlwZWxpbmVzIGZvciByZXNvdXJjZW5vdGZvdW5kIGFuZCBzYXggaW4gdGhlCmhhbmRsZS1lcnJvciBwaXBlbGluZSBiZWNhdXNlIHRoZXkgc2hvdWxkIG5vdCBvY2N1ciBpbiB0aGUKdXNlY2FzZSBtYWNoZXIgdW5sZXNzIHRoZXJlIGlzIGEgZ2VudWluZSBlcnJvci4gSW4gdGhhdApjYXNlIHdlIHdhbnQgdG8gc2VlIHRoZSBzdGFjayB0cmFjZS4KIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjAgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuMCB1cGRhdGUKICAgICAgICBieQogICAgICAgIGVnbGkKICAgICAgICA6CiAgICAgICAgWzEuMF0gCiAgICAgICAgICAgIERvIG5vdCByZXR1cm4gdGhlIG1ldGEgZmlsZXMgd2hlbiBhc2tlZCBmb3IgdGhlIHJlc291cmNlcywKaS5lLiBmaWx0ZXIgb3V0IHRoZSBtZXRhIGZpbGVzLgogRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuMCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS4wIHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgYW5kcmVhcwogICAgICAgIDoKICAgICAgICBbMS4wXSAKICAgICAgICAgICAgb25seSB3aGl0ZXNwYWNlIGNoYW5nZQogRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuMCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS4wIHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgYW5kcmVhcwogICAgICAgIDoKICAgICAgICBbMS4wXSAKICAgICAgICAgICAgZG9uJ3QgYWRkIG1pc3NpbmcgaHJlZiBhdHRyaWJ1dGUKIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjAgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuMCB1cGRhdGUKICAgICAgICBieQogICAgICAgIG1pY2hpCiAgICAgICAgOgogICAgICAgIFsxLjBdIAogICAgICAgICAgICBDU1MgZXhoYW5jZWQKIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjAgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuMCB1cGRhdGUKICAgICAgICBieQogICAgICAgIG1pY2hpCiAgICAgICAgOgogICAgICAgIFsxLjBdIAogICAgICAgICAgICBjb25maWcgbWFkZSBjb25maWd1cmFibGUKIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjAgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuMCB1cGRhdGUKICAgICAgICBieQogICAgICAgIGdyZWdvcgogICAgICAgIDoKICAgICAgICBbMS4wXSAKICAgICAgICAgICAgQ1NTIHN0eWxlcyBuZWVkIHRvIGJlIGRlZmluZWQgaW5saW5lIGJlY2F1c2UgdGhlIGluZm8gYXJlYSAob3IgYW55IGFyZWEgd2hlcmUgdGhlIG1lbnUgaXMgc2hvd24pIGlzIHRhZyBzb3VwLgogRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuMCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS4wIHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgZ3JlZ29yCiAgICAgICAgOgogICAgICAgIFsxLjBdIAogICAgICAgICAgICByZWZsZWN0IHRoZSBjaGFuZ2VzIHRvIHRoZSBpbmxpbmUgc3R5bGUgaW4gdGhlIGluZm8gYXJlYQogRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuMCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS4wIHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgZ3JlZ29yCiAgICAgICAgOgogICAgICAgIFsxLjBdIAogICAgICAgICAgICBDU1Mgc3R5bGVzIG5lZWQgdG8gYmUgZGVmaW5lZCBpbmxpbmUgYmVjYXVzZSB0aGUgaW5mbyBhcmVhIChvciBhbnkgYXJlYSB3aGVyZSB0aGUgbWVudSBpcyBzaG93bikgaXMgdGFnIHNvdXAuCiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS4wIHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjAgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBncmVnb3IKICAgICAgICA6CiAgICAgICAgWzEuMF0gCiAgICAgICAgICAgIGZpeCBlcnJvciB3aGVuIGNsaWNraW5nIG9uIGxhbmd1YWdlIHRhYgogRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuMCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS4wIHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgbWljaGkKICAgICAgICA6CiAgICAgICAgWzEuMF0gCiAgICAgICAgICAgIHNhdmUgYW5kIGV4aXQgYWRkZWQKIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjAgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuMCB1cGRhdGUKICAgICAgICBieQogICAgICAgIG1pY2hpCiAgICAgICAgOgogICAgICAgIFsxLjBdIAogICAgICAgICAgICBQVVQgaW1wbGVtZW50ZWQKIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjAgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuMCB1cGRhdGUKICAgICAgICBieQogICAgICAgIG1pY2hpCiAgICAgICAgOgogICAgICAgIFsxLjBdIAogICAgICAgICAgICBQVVQgaW1wbGVtZW50ZWQKIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjAgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuMCB1cGRhdGUKICAgICAgICBieQogICAgICAgIG1pY2hpCiAgICAgICAgOgogICAgICAgIFsxLjBdIAogICAgICAgICAgICBDU1MgaXMgcGF0aCBpbmRlcGVuZGVudAogRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuMCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS4wIHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgbWljaGkKICAgICAgICA6CiAgICAgICAgWzEuMF0gCiAgICAgICAgICAgIEhUVFAgUFVUIGFkZGVkCiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS4wIGFkZDwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjAgYWRkCiAgICAgICAgYnkKICAgICAgICBtaWNoaQogICAgICAgIDoKICAgICAgICBbMS4wXSAKICAgICAgICAgICAgbW9kX3Byb3h5IGRvY3UgYWRkZWQKIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjAgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuMCB1cGRhdGUKICAgICAgICBieQogICAgICAgIGdyZWdvcgogICAgICAgIDoKICAgICAgICBbMS4wXSAKICAgICAgICAgICAgIzE2MyAKCml0IGlzIG5vdyBwb3NzaWJsZSB0byBsaW5rIGludG8gc3BlY2lmaWMgdGFicyBpbiB0aGUgaW5mbyBhcmVhIGZyb20gb3V0c2lkZS4KCmFwcGVuZCBsZW55YS50YWI9bWV0YSBvciBhbm90aGVyIHN1aXRhYmxlIHRhYi4gZGVmYXVsdHMgdG8gb3ZlcnZpZXcKCi0mZ3Q7IGNoYW5nZWQgdG8gbGVueWEuaW5mby10YWIgdG8gbWFrZSBpdCBtb3JlIHNwZWNpZmljCiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS4wIHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjAgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBncmVnb3IKICAgICAgICA6CiAgICAgICAgWzEuMF0gCiAgICAgICAgICAgICMxNjMgCgppdCBpcyBub3cgcG9zc2libGUgdG8gbGluayBpbnRvIHNwZWNpZmljIHRhYnMgaW4gdGhlIGluZm8gYXJlYSBmcm9tIG91dHNpZGUuCgphcHBlbmQgbGVueWEudGFiPW1ldGEgb3IgYW5vdGhlciBzdWl0YWJsZSB0YWIuIGRlZmF1bHRzIHRvIG92ZXJ2aWV3CiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS4wIHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjAgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBncmVnb3IKICAgICAgICA6CiAgICAgICAgWzEuMF0gCiAgICAgICAgICAgIGdldCByZWFsIGFyZWEuIGNvaW5jaWRlcyB3aXRoIHJlY2VudCBwYXRjaCB0byBzaG93IHJlYWwgYXJlYSBmb3IgaW5mbyB0YWJzCiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS4wIHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjAgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBhbmRyZWFzCiAgICAgICAgOgogICAgICAgIFsxLjBdIAogICAgICAgICAgICByZW5hbWVkIHB1Ymxpc2hpbmcvc2NyZWVuLnhzbCB0byBwdWJsaXNoaW5nL3B1Ymxpc2gtc2NyZWVuLnhzbAogRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuMCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS4wIHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgZ3JlZ29yCiAgICAgICAgOgogICAgICAgIFsxLjBdIAogICAgICAgICAgICAjMTMwIGRldGFpbHMgb2Ygc2VsZWN0ZWQgcGFnZXMgYXJlIG5vdCB2aXNpYmxlIGluIE1TSUUgNi4wCgp0dXJucyBvdXQgSUUgY2FuJ3QgaGFuZGxlICZsdDt0aXRsZS8mZ3Q7IGV2ZW4gdGhvdWdoIHRoYXQgaXMgdmFsaWQgWEhUTUwgdHJhbnNpdGlvbmFsLgogRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuMCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS4wIHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgZWdsaQogICAgICAgIDoKICAgICAgICBbMS4wXSAKICAgICAgICAgICAgRml4ZWQgYSBjaGVja3N0eWxlIHdhcm5pbmcuCiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS4wIHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjAgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBlZ2xpCiAgICAgICAgOgogICAgICAgIFsxLjBdIAogICAgICAgICAgICBUaGUgZG9jdW1lbnQtaWQsIHRoZSBhcmVhIGFuZCB0aGUgbGFuZ3VhZ2UgbmVlZCB0byBiZQpwYXNzZWQgdG8gdGhlIHRhc2sgdGhhdCBpcyB3cml0dGluZyB0aGUgZHVibGluIGNvcmUgZGF0YS4KIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjAgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuMCB1cGRhdGUKICAgICAgICBieQogICAgICAgIGVnbGkKICAgICAgICA6CiAgICAgICAgWzEuMF0gCiAgICAgICAgICAgIEFkZGVkIGRvY3VtZW50IGV4dGVuc2lvbiB0byB0aGUgZXhwb3J0ZWQgZmllbGRzLgogRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuMCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS4wIHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgZWdsaQogICAgICAgIDoKICAgICAgICBbMS4wXSAKICAgICAgICAgICAgQ2hhbmdlIGNvbmZpcm0gbWVzc2FnZSB0byBmaXggIzE4NgogRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuMCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS4wIHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgYW5kcmVhcwogICAgICAgIDoKICAgICAgICBbMS4wXSAKICAgICAgICAgICAgYWRkZWQgc29tZSBsb2cgbWVzc2FnZXMKIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjAgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuMCB1cGRhdGUKICAgICAgICBieQogICAgICAgIGFuZHJlYXMKICAgICAgICA6CiAgICAgICAgWzEuMF0gCiAgICAgICAgICAgIGFkZGVkIERPQ1VNRU5UX0xBTkdVQUdFU19DU1YKIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjAgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuMCB1cGRhdGUKICAgICAgICBieQogICAgICAgIGFuZHJlYXMKICAgICAgICA6CiAgICAgICAgWzEuMF0gCiAgICAgICAgICAgIGZldGNoaW5nIExEQVAgbmFtZSBpbiBjb25zdHJ1Y3RvcgogRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuMCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS4wIHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgZWdsaQogICAgICAgIDoKICAgICAgICBbMS4wXSAKICAgICAgICAgICAgU29tZSBvZiB0aGUgY29kZSByZWZvcm1hdGVkIHRvIG1ha2UgbW9yZSBsZWdpYmxlLgogRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuMCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS4wIHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgZWdsaQogICAgICAgIDoKICAgICAgICBbMS4wXSAKICAgICAgICAgICAgSmF2YWRvYyBmaXhlcy4KIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjAgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuMCB1cGRhdGUKICAgICAgICBieQogICAgICAgIGdyZWdvcgogICAgICAgIDoKICAgICAgICBbMS4wXSAKICAgICAgICAgICAgY2xpY2tpbmcgb24gZm9sZGVycyBub3cgYWxzbyByZXdyaXRlcyB0aGUgbGFuZ3VhZ2UgYW5kIGFyZWEgdGFicwogRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuMCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS4wIHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgZ3JlZ29yCiAgICAgICAgOgogICAgICAgIFsxLjBdIAogICAgICAgICAgICBhZGQgYXJjaGl2ZSBhbmQgdHJhc2ggYXJlYXMgdG8gdGhlIHZhbGlkIGFyZWFzCiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS4wIHJlbW92ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjAgcmVtb3ZlCiAgICAgICAgYnkKICAgICAgICBhbmRyZWFzCiAgICAgICAgOgogICAgICAgIFsxLjBdIAogICAgICAgICAgICByZW5hbWVkIHNjcmVlbi54c2wgdG8gcHVibGlzaC1zY3JlZW4ueHNsCiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS4wIHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjAgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBhbmRyZWFzCiAgICAgICAgOgogICAgICAgIFsxLjBdIAogICAgICAgICAgICBtb3ZlZCBzY2hlZHVsZXIgY29uZmlnIGZpbGUgdG8gL2NvbmZpZwogRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuMCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS4wIHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgYW5kcmVhcwogICAgICAgIDoKICAgICAgICBbMS4wXSAKICAgICAgICAgICAgYWRkZWQgc3VibWl0LCByZWplY3QsIGFuZCBub3RpZmljYXRpb24KIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjAgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuMCB1cGRhdGUKICAgICAgICBieQogICAgICAgIGFuZHJlYXMKICAgICAgICA6CiAgICAgICAgWzEuMF0gCiAgICAgICAgICAgIGFkZGVkIHByaW50LWxpc3Qtc2ltcGxlIHRlbXBsYXRlCiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS4wIHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjAgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBhbmRyZWFzCiAgICAgICAgOgogICAgICAgIFsxLjBdIAogICAgICAgICAgICB1c2luZyBsb3dlcmNhc2UgYWN0aW9uCiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS4wIGFkZDwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjAgYWRkCiAgICAgICAgYnkKICAgICAgICBhbmRyZWFzCiAgICAgICAgOgogICAgICAgIFsxLjBdIAogICAgICAgICAgICBhZGRlZCBub3RpZmljYXRpb24gc3R5bGVzaGVldHMKIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjAgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuMCB1cGRhdGUKICAgICAgICBieQogICAgICAgIGFuZHJlYXMKICAgICAgICA6CiAgICAgICAgWzEuMF0gCiAgICAgICAgICAgIHJlZmxlY3RpbmcgdGFiIHNlcGFyYXRpb24gaW4gYWNjZXNzIGNvbnRyb2wgdGFicwogRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuMCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS4wIHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgYW5kcmVhcwogICAgICAgIDoKICAgICAgICBbMS4wXSAKICAgICAgICAgICAgaW50cm9kdWNlZCB1YzoqIGF0dHJpYnV0ZXMKIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjAgYWRkPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuMCBhZGQKICAgICAgICBieQogICAgICAgIGFuZHJlYXMKICAgICAgICA6CiAgICAgICAgWzEuMF0gCiAgICAgICAgICAgIGFkZGVkIHJlamVjdC1zY3JlZW4gYW5kIHN1Ym1pdC1zY3JlZW4KIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjAgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuMCB1cGRhdGUKICAgICAgICBieQogICAgICAgIGFuZHJlYXMKICAgICAgICA6CiAgICAgICAgWzEuMF0gCiAgICAgICAgICAgIHJlbW92ZWQgb2xkIGlkZW50aXR5CiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS4wIHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjAgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBhbmRyZWFzCiAgICAgICAgOgogICAgICAgIFsxLjBdIAogICAgICAgICAgICBidWdmaXggKGV2ZW50cyB3ZXJlIG5vdCBhZGRlZCB0byB3b3JrZmxvdykKIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjAgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuMCB1cGRhdGUKICAgICAgICBieQogICAgICAgIGFuZHJlYXMKICAgICAgICA6CiAgICAgICAgWzEuMF0gCiAgICAgICAgICAgIGFkZGVkIGdldFZlcnNpb25zKCkKIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjAgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuMCB1cGRhdGUKICAgICAgICBieQogICAgICAgIGFuZHJlYXMKICAgICAgICA6CiAgICAgICAgWzEuMF0gCiAgICAgICAgICAgIGNyZWF0aW5nIGhyZWYgYXR0cmlidXRlIGlmIGl0IGRvZXMgbm90IGV4aXN0CiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS4wIHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjAgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBhbmRyZWFzCiAgICAgICAgOgogICAgICAgIFsxLjBdIAogICAgICAgICAgICBhZGRlZCBnZXRVc2Vyc1dpdGhSb2xlKFN0cmluZykKIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjAgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuMCB1cGRhdGUKICAgICAgICBieQogICAgICAgIGZlbGl4CiAgICAgICAgOgogICAgICAgIFsxLjBdIAogICAgICAgICAgICBDaGFuZ2VkIHdvcmRpbmcgb2YgJ2xhbmd1YWdlcycgaW4gb3ZlcnZpZXcgdGFiCiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS4wIHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjAgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBlZGl0aAogICAgICAgIDoKICAgICAgICBbMS4wXSAKICAgICAgICAgICAgd29ya2Zsb3cKcmVzdG9yZSBidXR0b24KIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjAgcmVtb3ZlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuMCByZW1vdmUKICAgICAgICBieQogICAgICAgIG1pY2hpCiAgICAgICAgOgogICAgICAgIFsxLjBdIAogICAgICAgICAgICBkaXJlY3RvcnkgbW92ZWQKIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjAgYWRkPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuMCBhZGQKICAgICAgICBieQogICAgICAgIG1pY2hpCiAgICAgICAgOgogICAgICAgIFsxLjBdIAogICAgICAgICAgICBkaXJlY3RvcnkgbW92ZWQKIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjAgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuMCB1cGRhdGUKICAgICAgICBieQogICAgICAgIGVkaXRoCiAgICAgICAgOgogICAgICAgIFsxLjBdIAogICAgICAgICAgICByZXN0b3JlIHVzZWNhc2UKIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjAgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuMCB1cGRhdGUKICAgICAgICBieQogICAgICAgIGVkaXRoCiAgICAgICAgOgogICAgICAgIFsxLjBdIAogICAgICAgICAgICBnZXQgdGhlIHNpdGV0cmVlIHRocm91Z2ggdGhlIHB1YmxpY2F0aW9uOiB0aGUgYXJlYSBpcyBuZWVkZWQgaW5zdGVhZCBvZiB0aGUgYWJzb2x1dGV0cmVlcGF0aAogRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuMCBhZGQ8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS4wIGFkZAogICAgICAgIGJ5CiAgICAgICAgZWRpdGgKICAgICAgICA6CiAgICAgICAgWzEuMF0gCiAgICAgICAgICAgIGZhY2FkZSB0byBnZXQgdGhlIER1YmxpbkNvcmUKIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjAgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuMCB1cGRhdGUKICAgICAgICBieQogICAgICAgIGdyZWdvcgogICAgICAgIDoKICAgICAgICBbMS4wXSAKICAgICAgICAgICAgIzE2MSBwcmVzZXJ2ZSBub2RlIHdoZW4gc3dpdGNoaW5nIGZyb20gaW5mbyBhcmVhIHRvIGF1dGhvcmluZyBvciBsaXZlCiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS4wIHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjAgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBlZGl0aAogICAgICAgIDoKICAgICAgICBbMS4wXSAKICAgICAgICAgICAgc2V0IHRoZSBpZGVudGlmaWVyIG9ubHkgZm9yIHRoZSBkb2N1bWVudHMgY29ycmVzcG9uZGluZyB0byB0aGUgZG9jdW1lbnQgaWQKIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjAgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuMCB1cGRhdGUKICAgICAgICBieQogICAgICAgIG1pY2hpCiAgICAgICAgOgogICAgICAgIFsxLjBdIAogICAgICAgICAgICBuYW1lc3BhY2UgcHJvYmxlbSB3b3JrYXJvdW5kCiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS4wIHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjAgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBncmVnb3IKICAgICAgICA6CiAgICAgICAgWzEuMF0gCiAgICAgICAgICAgICMxNTYgcmVtYWluIG9uIHNhbWUgbm9kZSBvbiBsYW5ndWFnZSBjaGFuZ2UgaW4gaW5mbyBhcmVhCiMxNTcgbWFrZSBhdXRob3JpbmcgLyBhcmNoaXZlIC8gdHJhc2ggcG9saWNpZXMgZWRpdGFibGUKIzEzMiBsb2FkIGluZm8gdGFicyBkaXJlY3RseSBmcm9tIGF1dGhvcmluZyBhcmVhCgp2YXJpb3VzIHNtYWxsIHBlcmZvcm1hbmNlIGltcHJvdmVtZW50cyBpbiBpbmZvIGFyZWEKIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjAgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuMCB1cGRhdGUKICAgICAgICBieQogICAgICAgIGVkaXRoCiAgICAgICAgOgogICAgICAgIFsxLjBdIAogICAgICAgICAgICBtZXRob2RzIHRvIGJ1aWxkIGFuIHVybCBjb3JyZXNwb25kaW5nIHRvIGEgY21zIGRvY3VtZW50IGZyb20gdGhlIHBhcmFtZXRlcnM6IHB1YmxpY2F0aW9uLCBhcmVhLCBkb2N1bWVudCBpZCwgbGFuZ3VhZ2UKIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjAgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuMCB1cGRhdGUKICAgICAgICBieQogICAgICAgIG1pY2hpCiAgICAgICAgOgogICAgICAgIFsxLjBdIAogICAgICAgICAgICBGSVhNRSBmb3IgZGVidWdnaW5nIG1lc3NhZ2VzCiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS4wIHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjAgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBtaWNoaQogICAgICAgIDoKICAgICAgICBbMS4wXSAKICAgICAgICAgICAgRXhjZXB0aW9uIG1lc3NhZ2VzIGFyZSBiZWluZyBzaG93bgogRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuMCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS4wIHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgbWljaGkKICAgICAgICA6CiAgICAgICAgWzEuMF0gCiAgICAgICAgICAgIGh0bWwgZm9ybSBlZGl0b3IgcGlwZWxpbmVzIGdlbmVyYWxpemVkCiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS4wIHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjAgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBlZ2xpCiAgICAgICAgOgogICAgICAgIFsxLjBdIAogICAgICAgICAgICBNYWtlIHN1cmUgdGhlIGNyZWF0b3IgZmllbGQgY2Fubm90IGJlIG1vZGlmaWVkLgogRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuMCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS4wIHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgZWdsaQogICAgICAgIDoKICAgICAgICBbMS4wXSAKICAgICAgICAgICAgRml4ZWQgYnVnICMxNjcgd2hlcmUgdGhlIHB1Ymxpc2hlciB3YXMgd3JvbmcgaW4gdGhlIG1ldGEKZGF0YSBzY3JlZW4uCiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS4wIHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjAgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBtaWNoaQogICAgICAgIDoKICAgICAgICBbMS4wXSAKICAgICAgICAgICAgZGlzcGxheSBibG9ja3MgYWRkZWQKIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjAgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuMCB1cGRhdGUKICAgICAgICBieQogICAgICAgIGFuZHJlYXMKICAgICAgICA6CiAgICAgICAgWzEuMF0gCiAgICAgICAgICAgIGxvZ2dpbmcgZXhjZXB0aW9uIHN0YWNrIHRyYWNlcwogRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuMCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS4wIHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgYW5kcmVhcwogICAgICAgIDoKICAgICAgICBbMS4wXSAKICAgICAgICAgICAgc3RhdGljIGZpbmFsIGRlY2xhcmF0aW9uIG9mIGFjdGlvbiBjb21tYW5kcwogRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuMCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS4wIHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgYW5kcmVhcwogICAgICAgIDoKICAgICAgICBbMS4wXSAKICAgICAgICAgICAgYnVpbGRpbmcgc3VidHJlZSBwb2xpY3kgd2hlbiBzYXZpbmcgU1NMIHByb3RlY3Rpb24KIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjAgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuMCB1cGRhdGUKICAgICAgICBieQogICAgICAgIG1pY2hpCiAgICAgICAgOgogICAgICAgIFsxLjBdIAogICAgICAgICAgICBOT1RFIGFuZCBleGNlcHRpb24gaGFuZGxpbmcgYWRkZWQKIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjAgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuMCB1cGRhdGUKICAgICAgICBieQogICAgICAgIG1pY2hpCiAgICAgICAgOgogICAgICAgIFsxLjBdIAogICAgICAgICAgICBDU1MgZm9yIEJYRU5HIGVudHJ5IGFkZGVkCiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS4wIHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjAgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBlZ2xpCiAgICAgICAgOgogICAgICAgIFsxLjBdIAogICAgICAgICAgICBQYXNzIHRoZSBpbnNlcnQ9ZmFsc2UgcGFyYW1ldGVyIHRvIHRoZSBhc3NldCB1cGxvYWQgc2NyZWVuLgogRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuMCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS4wIHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgZWdsaQogICAgICAgIDoKICAgICAgICBbMS4wXSAKICAgICAgICAgICAgQWRkIGFuIGFkZGl0aW9uYWwgcmVxdWVzdCBwYXJhbSB3aGljaCBjdXN0b21pemVzIHRoZSBzY3JlZW4KZGVwZW5kaW5nIG9uIHdoZXRoZXIgdGhlIHVzZXIgaXMgaW5zZXJ0aW5nIGFuIGFzc2V0IG9yCmp1c3QgdXBsb2FkaW5nIG9uZSBmb3IgbGF0ZXIgaW5zZXJ0aW9uLgogRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuMCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS4wIHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgbWljaGkKICAgICAgICA6CiAgICAgICAgWzEuMF0gCiAgICAgICAgICAgIG9sZCBpbnN0YWxsYXRpb24gaW5zdHJ1Y3Rpb24gcmVtb3ZlZAogRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuMCBhZGQ8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS4wIGFkZAogICAgICAgIGJ5CiAgICAgICAgbWljaGkKICAgICAgICA6CiAgICAgICAgWzEuMF0gCiAgICAgICAgICAgIERvY3VtZW50SWRUb1BhdGhNYXBwZXIgZm9yIE9TQ09NIGFuZCBCbG9nIHB1YmxpY2F0aW9uIGFkZGVkCiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS4wIHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjAgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBlZ2xpCiAgICAgICAgOgogICAgICAgIFsxLjBdIAogICAgICAgICAgICBBZGQgYSBzdGVwIHRvIHJlbW92ZSBhbiBhc3NldCB0byB0aGUgYXNzZXQgdXNlY2FzZSBwaXBlbGluZS4KIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjAgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuMCB1cGRhdGUKICAgICAgICBieQogICAgICAgIGVnbGkKICAgICAgICA6CiAgICAgICAgWzEuMF0gCiAgICAgICAgICAgIE1ha2UgdGhlIG1ldGEgZGF0YSBzY3JlZW4gYW5kIHRoZSBhc3NldHMgc2NyZWVuIG1vcmUgZnVuY3Rpb25hbAphbmQgcHJldHRpZXIuCiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS4wIHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjAgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBlZ2xpCiAgICAgICAgOgogICAgICAgIFsxLjBdIAogICAgICAgICAgICBGZXRjaCB0aGUgcmVzb3VyY2VzIGZyb20gdGhlIFJlc291cmNlTWFuYWdlci4KIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjAgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuMCB1cGRhdGUKICAgICAgICBieQogICAgICAgIGVnbGkKICAgICAgICA6CiAgICAgICAgWzEuMF0gCiAgICAgICAgICAgIE1ha2Ugc3VyZSB0aGUgYXJlYSBpcyB0YWtlbiBpbnRvIGFjY291bnQgd2hlbiBjYWxjdWxhdGluZwp0aGUgcmVzb3VyY2UgcGF0aC4KIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjAgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuMCB1cGRhdGUKICAgICAgICBieQogICAgICAgIGVkaXRoCiAgICAgICAgOgogICAgICAgIFsxLjBdIAogICAgICAgICAgICBwcm9wYWdhdGUgdG8gdGhlIHNlc3Npb24gdGhlIGFyZWEgcGFyYW1ldGVyIGZvciBjb3B5CiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS4wIHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjAgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBtaWNoaQogICAgICAgIDoKICAgICAgICBbMS4wXSAKICAgICAgICAgICAgZW50cmllcyBieGVuZ2FibGUKIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjAgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuMCB1cGRhdGUKICAgICAgICBieQogICAgICAgIGVkaXRoCiAgICAgICAgOgogICAgICAgIFsxLjBdIAogICAgICAgICAgICBmaXggdGhlIGFyZWEgcGFyYW1ldGVyIChTZXQgdG8gdHJhc2gpCiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS4wIHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjAgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBlZGl0aAogICAgICAgIDoKICAgICAgICBbMS4wXSAKICAgICAgICAgICAgR2V0IHRoZSBhcmVhIHBhcmFtZXRlciBmcm9tIHRoZSBzZXNzaW9uCiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS4wIHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjAgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBlZGl0aAogICAgICAgIDoKICAgICAgICBbMS4wXSAKICAgICAgICAgICAgU2V0IHRoZSBhcmVhJ3MgcGFyYW1ldGVycwogRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuMCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS4wIHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgZWRpdGgKICAgICAgICA6CiAgICAgICAgWzEuMF0gCiAgICAgICAgICAgIEludHJvZHVjdGlvbiBvZiB0aGUgc2F2ZSBtZXRob2QgaW4gdGhlIFNpdGV0cmVlIGludGVyZmFjZQogRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuMCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS4wIHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgZWRpdGgKICAgICAgICA6CiAgICAgICAgWzEuMF0gCiAgICAgICAgICAgIFJlcGxhY2UgdGhlIGRlcHJlY2F0ZWQgRGVmYXVsdFNpdGV0cmVlCiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS4wIHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjAgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBlZ2xpCiAgICAgICAgOgogICAgICAgIFsxLjBdIAogICAgICAgICAgICBBZGRlZCBhIHNob3dzY3JlZW4gc3RlcCB0byB0aGUgYXNzZXQgdXNlY2FzZSBwaXBlbGluZS4KIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjAgYWRkPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuMCBhZGQKICAgICAgICBieQogICAgICAgIGVnbGkKICAgICAgICA6CiAgICAgICAgWzEuMF0gCiAgICAgICAgICAgIEFkZGVkIGEgc2NyZWVuIGZvciByZXNvdXJjZSB1cGxvYWQgb3Igc2VsZWN0aW9uLgogRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuMCBhZGQ8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS4wIGFkZAogICAgICAgIGJ5CiAgICAgICAgZWdsaQogICAgICAgIDoKICAgICAgICBbMS4wXSAKICAgICAgICAgICAgQWRkZWQgTWFuYWdlciB0byBrZWVwIHRyYWNrIG9mIHJlc291cmNlcyBmb3IgYSBnaXZlbiBkb2N1bWVudC4KIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjAgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuMCB1cGRhdGUKICAgICAgICBieQogICAgICAgIGVnbGkKICAgICAgICA6CiAgICAgICAgWzEuMF0gCiAgICAgICAgICAgIFRoZSBkb2N1bWVudCBwcm9wZXIgaXMgbm93IGFsc28gZXhwb3J0ZWQgdGhyb3VnaCB0aGUgUGFnZUVudmVsb3BlLgogRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuMCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS4wIHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgYW5kcmVhcwogICAgICAgIDoKICAgICAgICBbMS4wXSAKICAgICAgICAgICAgcHJldHRpZmllZCBzY2hlZHVsZXIgWFNMCiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS4wIHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjAgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBhbmRyZWFzCiAgICAgICAgOgogICAgICAgIFsxLjBdIAogICAgICAgICAgICBhZGRpbmcgcHVibGljYXRpb24taWQgYW5kIGRvY3VtZW50LXVybAogRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuMCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS4wIHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgYW5kcmVhcwogICAgICAgIDoKICAgICAgICBbMS4wXSAKICAgICAgICAgICAgdXBkYXRlZCBzY2hlZHVsZXIgbG9naWNzaGVldCB0YWcKIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjAgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuMCB1cGRhdGUKICAgICAgICBieQogICAgICAgIG1pY2hpCiAgICAgICAgOgogICAgICAgIFsxLjBdIAogICAgICAgICAgICBHRVQgYW5kIFBVVCBydW5zIHRocm91Z2ggdGhlIHNhbWUgcGlwZWxpbmUKIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjAgcmVtb3ZlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuMCByZW1vdmUKICAgICAgICBieQogICAgICAgIGFuZHJlYXMKICAgICAgICA6CiAgICAgICAgWzEuMF0gCiAgICAgICAgICAgIG1vdmVkIHNjaGVkdWxlci54Y29uZiBmcm9tIGNvbnRlbnQgdG8gY29uZmlnCiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS4wIHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjAgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBhbmRyZWFzCiAgICAgICAgOgogICAgICAgIFsxLjBdIAogICAgICAgICAgICBjb2RlIGFuZCBqYXZhZG9jIGNsZWFudXAKIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjAgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuMCB1cGRhdGUKICAgICAgICBieQogICAgICAgIGFuZHJlYXMKICAgICAgICA6CiAgICAgICAgWzEuMF0gCiAgICAgICAgICAgIGNoZWNraW5nIGZvciBjb25maWcgZmlsZSBpbiBleGlzdHNQdWJsaWNhdGlvbigpCiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS4wIHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjAgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBhbmRyZWFzCiAgICAgICAgOgogICAgICAgIFsxLjBdIAogICAgICAgICAgICBzaW1wbGlmaWVkIG9idGFpbmluZyBjb25maWcgZmlsZQogRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuMCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS4wIHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgZWdsaQogICAgICAgIDoKICAgICAgICBbMS4wXSAKICAgICAgICAgICAgUmVzb3VyY2VOb3RGb3VuZEV4Y2VwdGlvbiBzaG91bGQgbm90IG9jY3VyIGFuZCBoZW5jZSBzaG91bGQKbm90IGJlIGNhdWdodC4KIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjAgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuMCB1cGRhdGUKICAgICAgICBieQogICAgICAgIGVnbGkKICAgICAgICA6CiAgICAgICAgWzEuMF0gCiAgICAgICAgICAgIENoYW5nZWQgdG8gbWFrZSB1c2Ugb2YgdGhlIHBhZ2UyaHRtbCB0cmFuc2Zvcm1lciBhbmQgaGVuY2UKYmVhdXR5ZmllZC4KIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjAgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuMCB1cGRhdGUKICAgICAgICBieQogICAgICAgIGFuZHJlYXMKICAgICAgICA6CiAgICAgICAgWzEuMF0gCiAgICAgICAgICAgIGNsZWFuZWQgdXAgY29kZSBhbmQgamF2YWRvY3MKIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjAgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuMCB1cGRhdGUKICAgICAgICBieQogICAgICAgIGFuZHJlYXMKICAgICAgICA6CiAgICAgICAgWzEuMF0gCiAgICAgICAgICAgIGNsZWFuZWQgdXAgY29kZSBhbmQgamF2YWRvY3MKIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjAgYWRkPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuMCBhZGQKICAgICAgICBieQogICAgICAgIG1pY2hpCiAgICAgICAgOgogICAgICAgIFsxLjBdIAogICAgICAgICAgICBYU0xUIGZvciBieGVuZyBlbnRyeQogRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuMCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS4wIHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgbWljaGkKICAgICAgICA6CiAgICAgICAgWzEuMF0gCiAgICAgICAgICAgIEJYRU5HIGdldCBpcyB3b3JraW5nIG5vdwogRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuMCBhZGQ8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS4wIGFkZAogICAgICAgIGJ5CiAgICAgICAgZWdsaQogICAgICAgIDoKICAgICAgICBbMS4wXSAKICAgICAgICAgICAgQWRkZWQgdGhlIEV4Y2VwdGlvbiBzZWxlY3RvciB0byB0aGUgc2l0ZW1hcCB3aGljaCBjYXRjaGVzCnRoZSBQYXJlbnROb3RGb3VuZEV4Y2VwdGlvbiBhbmQgcmV0dXJucyBhIG5pY2UgZXJyb3IgbWVzc2FnZQp3aGVuIGEgZG9jdW1lbnQgaXMgcHVibGlzaGVkIHdob3NlIHBhcmVudCBkb2MgaGFzbid0IGJlZW4KcHVibGlzaGVkLgoKQWRkZWQgYSBuaWNlIGVycm9yIHNjcmVlbiBpbiB0aGUgbGVueWEgbG9vay4KCkFkZGVkIHVzZWNhc2UgcGlwZWxpbmVzIGZvciBpbmZvLW1ldGEgc2F2aW5nLgogRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuMCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS4wIHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgZWdsaQogICAgICAgIDoKICAgICAgICBbMS4wXSAKICAgICAgICAgICAgVGhlIHB1Ymxpc2hlciBub3cgcmV0dXJucyBhIHNwZWNpYWwgRXhjZXB0aW9uIGlmIHRoZSBwaWJsaXNoaW5nCmZhaWxlZCBiZWNhdXNlIHRoZSBwYXJlbnQgbm9kZSBjb3VsZCBub3QgYmUgbG9jYXRlZCBpbiB0aGUKbGl2ZSB0cmVlLCBpLmUuIHdoZW4gdGhlIHVzZXIgcHVibGlzaGVzIGEgZG9jdW1lbnQgd2hvc2UKcGFyZW50IGRvY3VtZW50IGhhcyBub3QgYmVlbiBwdWJsaXNoZWQuCiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS4wIHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjAgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBtaWNoaQogICAgICAgIDoKICAgICAgICBbMS4wXSAKICAgICAgICAgICAgQlhFTkcgaW50ZWdyYXRpb24KIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjAgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuMCB1cGRhdGUKICAgICAgICBieQogICAgICAgIG1pY2hpCiAgICAgICAgOgogICAgICAgIFsxLjBdIAogICAgICAgICAgICBNaWRhcyBhbmQgQlhFTkcgb3V0LWNvbW1lbnRlZAogRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuMCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS4wIHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgbWljaGkKICAgICAgICA6CiAgICAgICAgWzEuMF0gCiAgICAgICAgICAgIHhzbHQgYXMgcGFyYW1ldGVyIGFkZGVkCiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS4wIHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjAgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBhbmRyZWFzCiAgICAgICAgOgogICAgICAgIFsxLjBdIAogICAgICAgICAgICByZW1vdmVkIG9sZCBDU1MgZW50cmllcwogRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuMCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS4wIHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgYW5kcmVhcwogICAgICAgIDoKICAgICAgICBbMS4wXSAKICAgICAgICAgICAgdXNpbmcgTGVueWEgQ1NTCiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS4wIGFkZDwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjAgYWRkCiAgICAgICAgYnkKICAgICAgICBhbmRyZWFzCiAgICAgICAgOgogICAgICAgIFsxLjBdIAogICAgICAgICAgICBhZGRlZCBzY2hlZHVsZXIgbG9naWNzaGVldAogRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuMCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS4wIHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgYW5kcmVhcwogICAgICAgIDoKICAgICAgICBbMS4wXSAKICAgICAgICAgICAgZGVjbGFyaW5nIHNjaGVkdWxlciBsb2dpY3NoZWV0CiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS4wIHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjAgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBhbmRyZWFzCiAgICAgICAgOgogICAgICAgIFsxLjBdIAogICAgICAgICAgICB1c2luZyBMZW55YSBDU1MKIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjAgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuMCB1cGRhdGUKICAgICAgICBieQogICAgICAgIGFuZHJlYXMKICAgICAgICA6CiAgICAgICAgWzEuMF0gCiAgICAgICAgICAgIC0gaW5jbHVkaW5nIHNjaGVkdWxlciBDU1MKLSB1c2luZyBsZW55YSBwcmVmaXggZm9yIHNjaGVkdWxlciBDU1MgY2xhc3NlcwogRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuMCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS4wIHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgYW5kcmVhcwogICAgICAgIDoKICAgICAgICBbMS4wXSAKICAgICAgICAgICAgdXNpbmcgc2NoZWR1bGVyIGxvZ2ljc2hlZXQKIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjAgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuMCB1cGRhdGUKICAgICAgICBieQogICAgICAgIGFuZHJlYXMKICAgICAgICA6CiAgICAgICAgWzEuMF0gCiAgICAgICAgICAgIGNvcnJlY3RlZCBmb3JtYXR0aW5nCiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS4wIHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjAgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBhbmRyZWFzCiAgICAgICAgOgogICAgICAgIFsxLjBdIAogICAgICAgICAgICB1c2luZyBzdGFuZGFyZGl6ZWQgcmVzb3VyY2UgY2FsbHMgZm9yIHB1Ymxpc2hpbmcgYW5kIGNyZWF0aW5nIHVzZWNhc2VzCiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS4wIGFkZDwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjAgYWRkCiAgICAgICAgYnkKICAgICAgICBhbmRyZWFzCiAgICAgICAgOgogICAgICAgIFsxLjBdIAogICAgICAgICAgICByZW5hbWVkIHB1Ymxpc2gtc2NyZWVuLXVzZWNhc2UueHNwIHRvIHNjcmVlbi54c3AKIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjAgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuMCB1cGRhdGUKICAgICAgICBieQogICAgICAgIGFuZHJlYXMKICAgICAgICA6CiAgICAgICAgWzEuMF0gCiAgICAgICAgICAgIGNvbXBsZXRlZCB3b3JrZmxvdyBoaXN0b3J5IHByZXNlbnRhdGlvbgogRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuMCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS4wIHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgYW5kcmVhcwogICAgICAgIDoKICAgICAgICBbMS4wXSAKICAgICAgICAgICAgc2hvd2luZyBtZXNzYWdlIHdoZW4gZG9jdW1lbnQgaGFzIG5vIHdvcmtmbG93CiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS4wIHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjAgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBhbmRyZWFzCiAgICAgICAgOgogICAgICAgIFsxLjBdIAogICAgICAgICAgICBhZGRpbmcgZGF0ZSB0byBoaXN0b3J5CiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS4wIHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjAgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBhbmRyZWFzCiAgICAgICAgOgogICAgICAgIFsxLjBdIAogICAgICAgICAgICBpbXByb3ZlZCBidWlsZFNpdHVhdGlvbigpCiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS4wIHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjAgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBhbmRyZWFzCiAgICAgICAgOgogICAgICAgIFsxLjBdIAogICAgICAgICAgICBhZGQgaWRlbnRpdHkgdG8gc2l0dWF0aW9uCiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS4wIHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjAgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBhbmRyZWFzCiAgICAgICAgOgogICAgICAgIFsxLjBdIAogICAgICAgICAgICBhZGRpbmcgaWRlbnRpdHkgaW5mb3JtYXRpb24gdG8gaGlzdG9yeQogRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuMCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS4wIHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgYW5kcmVhcwogICAgICAgIDoKICAgICAgICBbMS4wXSAKICAgICAgICAgICAgdXNpbmcgV29ya2Zsb3dGYWN0b3J5IHRvIG9idGFpbiByb2xlcyBmcm9tIHJlcXVlc3QKIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjAgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuMCB1cGRhdGUKICAgICAgICBieQogICAgICAgIGFuZHJlYXMKICAgICAgICA6CiAgICAgICAgWzEuMF0gCiAgICAgICAgICAgIGFkZGVkIG1ldGhvZCBmb3Igc2Vzc2lvbiBhY2Nlc3MKIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjAgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuMCB1cGRhdGUKICAgICAgICBieQogICAgICAgIGFuZHJlYXMKICAgICAgICA6CiAgICAgICAgWzEuMF0gCiAgICAgICAgICAgIGltcHJvdmVkIGdldElwKCkgYW5kIHRvU3RyaW5nKCkKIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjAgYWRkPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuMCBhZGQKICAgICAgICBieQogICAgICAgIG1pY2hpCiAgICAgICAgOgogICAgICAgIFsxLjBdIAogICAgICAgICAgICBCWEVORyBVUkwgY29uZmlnCiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS4wIHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjAgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBtaWNoaQogICAgICAgIDoKICAgICAgICBbMS4wXSAKICAgICAgICAgICAgc3RhcnRlZCB0byBpbXBsZW1lbnQgQlhFTkcKIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjAgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuMCB1cGRhdGUKICAgICAgICBieQogICAgICAgIGFuZHJlYXMKICAgICAgICA6CiAgICAgICAgWzEuMF0gCiAgICAgICAgICAgIGltcHJvdmVkIGxvZ2dpbmcgbWVzc2FnZXMKIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjAgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuMCB1cGRhdGUKICAgICAgICBieQogICAgICAgIGFuZHJlYXMKICAgICAgICA6CiAgICAgICAgWzEuMF0gCiAgICAgICAgICAgIGZpeGVkIHBhdGggc3BsaXR0aW5nIGJ1ZwogRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuMCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS4wIHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgYW5kcmVhcwogICAgICAgIDoKICAgICAgICBbMS4wXSAKICAgICAgICAgICAgcmVtb3ZlZCB1bnVzZWQgaW1wb3J0CiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS4wIHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjAgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBhbmRyZWFzCiAgICAgICAgOgogICAgICAgIFsxLjBdIAogICAgICAgICAgICBmb3JtYXR0aW5nCiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS4wIGFkZDwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjAgYWRkCiAgICAgICAgYnkKICAgICAgICBhbmRyZWFzCiAgICAgICAgOgogICAgICAgIFsxLjBdIAogICAgICAgICAgICBpbXBsZW1lbnRlZCB3b3JrZmxvdyBoaXN0b3J5IGluIGluZm8gYXJlYQogRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuMCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS4wIHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgbWljaGkKICAgICAgICA6CiAgICAgICAgWzEuMF0gCiAgICAgICAgICAgIHR5cG8gZml4ZWQKIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjAgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuMCB1cGRhdGUKICAgICAgICBieQogICAgICAgIGVnbGkKICAgICAgICA6CiAgICAgICAgWzEuMF0gCiAgICAgICAgICAgIEFkZCB0aGUgcHVibGlzaGVyIHRvIHRoZSBzY3JlZW4uCiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS4wIHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjAgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBlZ2xpCiAgICAgICAgOgogICAgICAgIFsxLjBdIAogICAgICAgICAgICBGZXRjaCBtZXRhIGRhdGEgZnJvbSBwYWdlIGVudmVsb3BlCiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS4wIHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjAgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBlZ2xpCiAgICAgICAgOgogICAgICAgIFsxLjBdIAogICAgICAgICAgICBBZGRlZCBzdXBwb3J0IGZvciBwdWJsaXNoZXIgYW5kIGRhdGUgY3JlYXRlZC4KIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjAgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuMCB1cGRhdGUKICAgICAgICBieQogICAgICAgIGVnbGkKICAgICAgICA6CiAgICAgICAgWzEuMF0gCiAgICAgICAgICAgIEFkZGVkIGNvbnN0YW50cyBmb3IgcHVibGlzaGVyIGFuZCBkYXRlIGNyZWF0ZWQuCiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS4wIHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjAgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBlZ2xpCiAgICAgICAgOgogICAgICAgIFsxLjBdIAogICAgICAgICAgICBnZXQgYW5kIHNldCBkYXRlUHVibGlzaGVkIGlzIGdvbmUsIHNpbmNlIGl0IGlzIG5vdCBpbiB0aGUKZHVibGluIGNvcmUgc3RhbmRhcmQuIEluc3RlYWQgd2Ugc2hvdWxkIHVzZSBkYXRlSXNzdWVkIGluc3RlYWQuCgpBbHNvIGFkZGVkIGRhdGVDcmVhdGVkLgogRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuMCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS4wIHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgZWdsaQogICAgICAgIDoKICAgICAgICBbMS4wXSAKICAgICAgICAgICAgUHJvdmlkZSBhIGJldHRlciBtZXNzYWdlIGluIHRoZSBFeGNlcHRpb24uCiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS4wIHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjAgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBlZ2xpCiAgICAgICAgOgogICAgICAgIFsxLjBdIAogICAgICAgICAgICBEb250IGFsbG93IHNldHRpbmcgYW55IG9mIHRoZSBkYXRlcyBhcyB0aGV5IGFyZSBzZXQgYnkgaW50ZXJuYWwKcHJvY2Vzc2VzLgogRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuMCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS4wIHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgYW5kcmVhcwogICAgICAgIDoKICAgICAgICBbMS4wXSAKICAgICAgICAgICAgLSBkb24ndCBjb3B5IGxvZ2tpdC54Y29uZgotIGRvbid0IGNvcHkgcGF0Y2ggc3R5bGVzaGVldHMKIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjAgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuMCB1cGRhdGUKICAgICAgICBieQogICAgICAgIGFuZHJlYXMKICAgICAgICA6CiAgICAgICAgWzEuMF0gCiAgICAgICAgICAgIGFkZGVkIHRlcm1zIGhhbmRsaW5nCiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS4wIHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjAgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBhbmRyZWFzCiAgICAgICAgOgogICAgICAgIFsxLjBdIAogICAgICAgICAgICBhZGRlZCBuYW1lc3BhY2UgZmllbGRzCiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS4wIGFkZDwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjAgYWRkCiAgICAgICAgYnkKICAgICAgICBlZ2xpCiAgICAgICAgOgogICAgICAgIFsxLjBdIAogICAgICAgICAgICBBbnQgdGFzayB0byB3cml0ZSB0aGUgZHVibGluIGNvcmUgdmFsdWVzLgogRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuMCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS4wIHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgZWdsaQogICAgICAgIDoKICAgICAgICBbMS4wXSAKICAgICAgICAgICAgVGhlIGR1YmxpYyBjb3JlIGNsYXNzIGhhcyBiZWVuIGNoYW5nZWQgdG8gYmUgbW9yZSBlZmZpY2llbnQuCkl0IG5vIGxvbmdlciBwYXJzZXMgdGhlIGRvY3VtZW50IHhtbCBmb3IgZWFjaCBxdWVyeS4KRHVlIHRvIHRoZSBjaGFuZ2Ugc29tZSBkaWZmZXJlbnQgRXhjZXB0aW9ucyBhcmUgdGhyb3duIGFuZCB0aGlzCm1hZGUgYSBjaGFuZ2UgdG8gc29tZSBvdGhlciBjbGFzc2VzIGFuZCBpbnRlcmZhY2VzIG5lY2Vzc2FyeS4KIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjAgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuMCB1cGRhdGUKICAgICAgICBieQogICAgICAgIGFuZHJlYXMKICAgICAgICA6CiAgICAgICAgWzEuMF0gCiAgICAgICAgICAgIGNoYW5nZWQgbGlua3MgZnJvbSBhZG1pbiB0YWIgdG8gb3RoZXIgdGFicyB0byAvaW5kZXguaHRtbAogRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuMCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS4wIHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgZ3JlZ29yCiAgICAgICAgOgogICAgICAgIFsxLjBdIAogICAgICAgICAgICBtYWRlIG5hdmlnYXRpb24gZWxlbWVudHMgcGljayB1cCB0aGUgcmlnaHQgbGFuZ3VhZ2UKIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjAgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuMCB1cGRhdGUKICAgICAgICBieQogICAgICAgIGFuZHJlYXMKICAgICAgICA6CiAgICAgICAgWzEuMF0gCiAgICAgICAgICAgIGZpeGVkIGhpZGRlbiBwYXJhbWV0ZXIgbGlua3MKIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjAgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuMCB1cGRhdGUKICAgICAgICBieQogICAgICAgIGVnbGkKICAgICAgICA6CiAgICAgICAgWzEuMF0gCiAgICAgICAgICAgIEFkZGVkIHNvbWUgbW9yZSBsb2dnaW5nIGluZm8uCiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS4wIHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjAgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBlZ2xpCiAgICAgICAgOgogICAgICAgIFsxLjBdIAogICAgICAgICAgICBUaGUgYWN0dWFsIGNyZWF0aW9uIG9mIHRoZSBuZXcgbGFuZ3VhZ2UgdmVyc2lvbiBuZWVkcyB0bwpwYXNzIHRoZSBkb2N0eXBlIHRvIHRoZSB0YXNrIHdoaWNoIGNhbiBvbmx5IGJlIHF1ZXJpZWQgd2l0aAp0aGUgdXJpcGFyYW1ldHJpemVyLiBTbyBhZGRlZCB0aGUgdXJpcGFyYW1ldHJpemVyIHRvIHRoZQpzdGVwICJjcmVhdGUiIG9mIHRoZSAiY3JlYXRlLWxhbmd1YWdlIiB1c2VjYXNlLgpjcmVhdGUtbGFuZ3VhZ2Ugc2hvdWxkIHByb3Blcmx5IGluaXRpYWxpemUgdGhlIHdvcmtmbG93IG5vdy4KIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjAgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuMCB1cGRhdGUKICAgICAgICBieQogICAgICAgIGFuZHJlYXMKICAgICAgICA6CiAgICAgICAgWzEuMF0gCiAgICAgICAgICAgIGNoYW5nZWQgcGF0aCBjb21wdXRhdGlvbiBmb3IgYmV0dGVyIHBlcmZvcm1hbmNlCiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS4wIHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjAgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBhbmRyZWFzCiAgICAgICAgOgogICAgICAgIFsxLjBdIAogICAgICAgICAgICBjaGFuZ2VkIHBhdGggY29tcHV0YXRpb24gZm9yIGJldHRlciBwZXJmb3JtYW5jZQogRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuMCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS4wIHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgYW5kcmVhcwogICAgICAgIDoKICAgICAgICBbMS4wXSAKICAgICAgICAgICAgZmFjdG9yZWQgb3V0IGdldFB1YmxpY2F0aW9uSWQoKQogRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuMCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS4wIHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgZWdsaQogICAgICAgIDoKICAgICAgICBbMS4wXSAKICAgICAgICAgICAgVGhlIGluaXQtaGlzdG9yeSB0YXNrIG5vdyBhbHNvIHRha2VzIHRoZSBsYW5ndWFnZSBhcyBhbiBhcmd1bWVudC4KIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjAgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuMCB1cGRhdGUKICAgICAgICBieQogICAgICAgIGFuZHJlYXMKICAgICAgICA6CiAgICAgICAgWzEuMF0gCiAgICAgICAgICAgIG1vdmVkIHNlc3Npb24gaW5pdGlhbGl6YXRpb24gZnJvbSByZXZpc2lvbnMgdG8gb3ZlcnZpZXcgdGFiCiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS4wIHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjAgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBlZ2xpCiAgICAgICAgOgogICAgICAgIFsxLjBdIAogICAgICAgICAgICBUaGUgaW5pdCB3b3JrZmxvdyB0YXNrIG5vdyBhbHNvIGFjY2VwdHMgdGhlIGxhbmdhdWVnIGFzIGEKcGFyYW1ldGVyLiBTbyBpdCBjYW4gaW5pdGlhbGl6ZSBkaWZmZXJlbnQgd29ya2Zsb3dzIGZvciB0aGUKc2FtZSBkb2N1bWVudCB3aXRoIGRpZmZlcmVudCBsYW5ndWFnZXMuCiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS4wIHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjAgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBlZ2xpCiAgICAgICAgOgogICAgICAgIFsxLjBdIAogICAgICAgICAgICBKYXZhZG9jIGZpeC4KIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjAgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuMCB1cGRhdGUKICAgICAgICBieQogICAgICAgIGFuZHJlYXMKICAgICAgICA6CiAgICAgICAgWzEuMF0gCiAgICAgICAgICAgIHNpbXBsaWZpZWQgZXhpc3RzUHVibGljYXRpb24oKQogRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuMCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS4wIHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgYW5kcmVhcwogICAgICAgIDoKICAgICAgICBbMS4wXSAKICAgICAgICAgICAgLSBpbml0aWFsaXppbmcgY29udGV4dCBmaWxlIG9ubHkgb25jZQotIHJlc29sdmluZyBwdWJsaWNhdGlvbiBJRCBhcyBrZXkgaW5zdGVhZCBvZiBidWlsZGluZyBwdWJsaWNhdGlvbgogRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuMCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS4wIHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgbWljaGkKICAgICAgICA6CiAgICAgICAgWzEuMF0gCiAgICAgICAgICAgIHBvbGljaWVzIGZpeGVkCiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS4wIHJlbW92ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjAgcmVtb3ZlCiAgICAgICAgYnkKICAgICAgICBtaWNoaQogICAgICAgIDoKICAgICAgICBbMS4wXSAKICAgICAgICAgICAgb2xkIGFjY2VzcyBjb250cm9sbGVyIHBvbGljaWVzIHJlbW92ZWQKIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjAgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuMCB1cGRhdGUKICAgICAgICBieQogICAgICAgIG1pY2hpCiAgICAgICAgOgogICAgICAgIFsxLjBdIAogICAgICAgICAgICBDREFUQSBzZWN0aW9uIG9mIHNhbXBsZSBpbXByb3ZlZAogRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuMCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS4wIHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgbWljaGkKICAgICAgICA6CiAgICAgICAgWzEuMF0gCiAgICAgICAgICAgIENEQVRBIGltcGxlbWVudGVkCiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS4wIHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjAgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBncmVnb3IKICAgICAgICA6CiAgICAgICAgWzEuMF0gCiAgICAgICAgICAgIGFkZGVkIDEuMHJjMSByZWxlYXNlIHRvIGRvd25sb2FkIHNlY3Rpb24KcmVtb3ZlZCBtaXNsZWFkaW5nIHRleHQgaW4gcmVjb21tZW5kZWQgc29mdHdhcmUKIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjAgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuMCB1cGRhdGUKICAgICAgICBieQogICAgICAgIGdyZWdvcgogICAgICAgIDoKICAgICAgICBbMS4wXSAKICAgICAgICAgICAgcmVwbGFjZWQgaW5mby54c3AgYnkgb3ZlcnZpZXcueHNwCiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS4wIHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjAgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBtaWNoaQogICAgICAgIDoKICAgICAgICBbMS4wXSAKICAgICAgICAgICAgYWRkaW5nIHBhcmVudCBhbmQgcmVxdWlyZWQgY2hpbGRyZW4gc3RhcnRlZCB0byBpbXBsZW1lbnQKIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjAgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuMCB1cGRhdGUKICAgICAgICBieQogICAgICAgIGdyZWdvcgogICAgICAgIDoKICAgICAgICBbMS4wXSAKICAgICAgICAgICAgbWFkZSBuYXZpZ2F0aW9uIGVsZW1lbnRzIHBpY2sgdXAgdGhlIHJpZ2h0IGxhbmd1YWdlCiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS4wIHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjAgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBlZ2xpCiAgICAgICAgOgogICAgICAgIFsxLjBdIAogICAgICAgICAgICBGaXggYSBudWxsUG9pbnRlckV4Y2VwdGlvbiBieSBxdWVyeWluZyB0aGUgbm9kZSBmb3IgIT0gbnVsbApiZWZvcmUgYXNraW5nIGl0IGZvciBpdCdzIGxhbmd1YWdlcy4KIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjAgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuMCB1cGRhdGUKICAgICAgICBieQogICAgICAgIG1pY2hpCiAgICAgICAgOgogICAgICAgIFsxLjBdIAogICAgICAgICAgICBkZWxldGUgYW5kIGFkZCBpbXBsZW1lbnRlZAogRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuMCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS4wIHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgYW5kcmVhcwogICAgICAgIDoKICAgICAgICBbMS4wXSAKICAgICAgICAgICAgZml4ZWQgbGlua3MgZnJvbSB1c2VjYXNlPWluZm8gdG8gdXNlY2FzZT1pbmZvLW92ZXJ2aWV3CiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS4wIHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjAgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBhbmRyZWFzCiAgICAgICAgOgogICAgICAgIFsxLjBdIAogICAgICAgICAgICBhZGRpbmcgU291cmNlQ2FjaGUgZGVjbGFyYXRpb25zCiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS4wIHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjAgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBhbmRyZWFzCiAgICAgICAgOgogICAgICAgIFsxLjBdIAogICAgICAgICAgICBqYXZhZG9jcywgZm9ybWF0dGluZwogRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuMCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS4wIHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgYW5kcmVhcwogICAgICAgIDoKICAgICAgICBbMS4wXSAKICAgICAgICAgICAgLSB1c2luZyBBQyByZXNvbHZlciB0byBnZXQgYXV0aG9yaXplcgotIHJlZmxlY3RpbmcgY2hhbmdlcyB0byB1c2VjYXNlIGF1dGhvcml6ZXIKIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjAgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuMCB1cGRhdGUKICAgICAgICBieQogICAgICAgIGFuZHJlYXMKICAgICAgICA6CiAgICAgICAgWzEuMF0gCiAgICAgICAgICAgIG5vdCByZWxlYXNpbmcgYWNjZXNzIGNvbnRyb2xsZXIgKGNhY2hlZCBieSBhYyByZXNvbHZlcikKIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjAgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuMCB1cGRhdGUKICAgICAgICBieQogICAgICAgIGFuZHJlYXMKICAgICAgICA6CiAgICAgICAgWzEuMF0gCiAgICAgICAgICAgIG1ha2luZyBnZXRBdXRob3JpemVycygpIHB1YmxpYwogRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuMCBhZGQ8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS4wIGFkZAogICAgICAgIGJ5CiAgICAgICAgYW5kcmVhcwogICAgICAgIDoKICAgICAgICBbMS4wXSAKICAgICAgICAgICAgdXNpbmcgY2FjaGluZyBmb3IgdXNlY2FzZSByb2xlIGNvbmZpZ3VyYXRpb24KIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjAgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuMCB1cGRhdGUKICAgICAgICBieQogICAgICAgIGFuZHJlYXMKICAgICAgICA6CiAgICAgICAgWzEuMF0gCiAgICAgICAgICAgIG1ha2luZyBQb2xpY3lCdWlsZGVyIGR5bmFtaWMgKG5lZWRlZCBmb3IgU291cmNlQ2FjaGUpCiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS4wIGFkZDwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjAgYWRkCiAgICAgICAgYnkKICAgICAgICBhbmRyZWFzCiAgICAgICAgOgogICAgICAgIFsxLjBdIAogICAgICAgICAgICByZXBsYWNlZCBQb2xpY3lDYWNoZSBieSBtb3JlIGdlbmVyaWMgU291cmNlQ2FjaGUKIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjAgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuMCB1cGRhdGUKICAgICAgICBieQogICAgICAgIGVnbGkKICAgICAgICA6CiAgICAgICAgWzEuMF0gCiAgICAgICAgICAgIEJlIGEgbGl0dGxlIGJpdCBtb3JlIGNsZXZlciB3aGVuIGl0IGNvbWVzIHRvIHBpY2tpbmcgYQpsYW5ndWFnZSBpZiBub25lIGlzIHNwZWNpZmllZC4gSXQgdXNlZCB0byBzaW1wbHkgY2hvb3NlIHRoZQpkZWZhdWx0IGxhbmd1YWdlLCBidXQgdGhhdCBtaWdodCBub3QgZXhpc3QgZm9yIHRoaXMgZG9jdW1lbnQuClNvIGNoZWNrIGlmIHRoZSBkb2N1bWVudCBoYXMgYSB2ZXJzaW9uIGluIHRoZSBkZWZhdWx0IGxhbmcsCmlmIG5vdCBwaWNrIHRoZSBmaXJzdCBvbmUgZnJvbSB0aGUgbGlzdCBvZiBsYW5ncyB0aGF0IHRoZQpkb2N1bWVudCBoYXMuCiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS4wIHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjAgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBlZ2xpCiAgICAgICAgOgogICAgICAgIFsxLjBdIAogICAgICAgICAgICBUaGUgaW1wbGVtZW50YXRpb24gb2YgZ2V0TGFuZ3VhZ2VzIG5vdyBjaGVja3MgdGhlIHNpdGUgdHJlZQppbnN0ZWFkIG9mIHRoZSBmaWxlIHN5c3RlbSBhbmQgc2hvdWxkIHRoZXJlZm9yZSBiZSBtdWNoCmZhc3Rlci4KIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjAgYWRkPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuMCBhZGQKICAgICAgICBieQogICAgICAgIGVnbGkKICAgICAgICA6CiAgICAgICAgWzEuMF0gCiAgICAgICAgICAgIEFkZGVkIGFuIEV4Y2VwdGlvbiBjbGFzcyBmb3IgZG9jdW1lbnQgc3BlY2lmaWMgZXhjZXB0aW9ucy4KIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjAgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuMCB1cGRhdGUKICAgICAgICBieQogICAgICAgIG1pY2hpCiAgICAgICAgOgogICAgICAgIFsxLjBdIAogICAgICAgICAgICBkZWxldGUgc3RhcnRlZCB0byBpbXBsZW1lbnQKIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjAgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuMCB1cGRhdGUKICAgICAgICBieQogICAgICAgIG1pY2hpCiAgICAgICAgOgogICAgICAgIFsxLjBdIAogICAgICAgICAgICB2ZXJzaW9uIGFuZCBhdXRob3IgZml4ZWQKIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjAgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuMCB1cGRhdGUKICAgICAgICBieQogICAgICAgIG1pY2hpCiAgICAgICAgOgogICAgICAgIFsxLjBdIAogICAgICAgICAgICBub3QgZGVwcmVjYXRlZCBiZWNhdXNlIGNlcnRhaW4gbWV0aG9kcyBhcmUgbWlzc2luZyBmcm9tIGFsdGVybmF0aXZlIHZlcnNpb25zCiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS4wIHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjAgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBlZ2xpCiAgICAgICAgOgogICAgICAgIFsxLjBdIAogICAgICAgICAgICBUaGUgc2V0dGVyIGZvciB0aGUgYXJlYSBzaG91bGQgb2YgY291cnNlIGJlIGNhbGxlZCBzZXRBcmVhCihhcyBvcHBvc2VkIHRvIHNldEFic29sdXRldHJlZXBhdGggOi0oKS4KIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjAgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuMCB1cGRhdGUKICAgICAgICBieQogICAgICAgIG1pY2hpCiAgICAgICAgOgogICAgICAgIFsxLjBdIAogICAgICAgICAgICBpbnNlcnQgYW5kIGRlbGV0ZSBhZGRlZAogRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuMCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS4wIHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgbWljaGkKICAgICAgICA6CiAgICAgICAgWzEuMF0gCiAgICAgICAgICAgIG9ubHkgaW5zZXJ0IGZvciB0aGUgbW9tZW50CiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS4wIHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjAgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBtaWNoaQogICAgICAgIDoKICAgICAgICBbMS4wXSAKICAgICAgICAgICAgdXBkYXRlIGN5Y2xlIGZpeGVkCiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS4wIHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjAgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBtaWNoaQogICAgICAgIDoKICAgICAgICBbMS4wXSAKICAgICAgICAgICAgdXBkYXRlIGN5Y2xlIGltcGxlbWVudGVkCiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS4wIHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjAgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBhbmRyZWFzCiAgICAgICAgOgogICAgICAgIFsxLjBdIAogICAgICAgICAgICBub3QgdG91Y2hpbmcgb3JpZ2luYWwgY2F0ZWdvcmllcwogRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuMCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS4wIHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgYW5kcmVhcwogICAgICAgIDoKICAgICAgICBbMS4wXSAKICAgICAgICAgICAgYXR0cmlidXRlIHZhbHVlIHRlbXBsYXRlIGJ1Z2ZpeAogRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuMCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS4wIHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgYW5kcmVhcwogICAgICAgIDoKICAgICAgICBbMS4wXSAKICAgICAgICAgICAgY2hhbmdlZCBsb2cgbGV2ZWwgdG8gSU5GTwogRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuMCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS4wIHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgYW5kcmVhcwogICAgICAgIDoKICAgICAgICBbMS4wXSAKICAgICAgICAgICAgYnVnZml4IGluIGlzRG9jdW1lbnQoKSBtZXRob2QKIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjAgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuMCB1cGRhdGUKICAgICAgICBieQogICAgICAgIGFuZHJlYXMKICAgICAgICA6CiAgICAgICAgWzEuMF0gCiAgICAgICAgICAgIHBhdGNoaW5nIGxvZ2tpdC54Y29uZgogRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuMCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS4wIHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgYW5kcmVhcwogICAgICAgIDoKICAgICAgICBbMS4wXSAKICAgICAgICAgICAgZml4ZWQgYnVnICh1c2VkIHdyb25nIFVSTCBwb2xpY3kgcGF0aCkKIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjAgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuMCB1cGRhdGUKICAgICAgICBieQogICAgICAgIGFuZHJlYXMKICAgICAgICA6CiAgICAgICAgWzEuMF0gCiAgICAgICAgICAgIGNoZWNraW5nIGlmIFVSTCByZXByZXNlbnRzIGRvY3VtZW50CiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS4wIHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjAgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBtaWNoaQogICAgICAgIDoKICAgICAgICBbMS4wXSAKICAgICAgICAgICAgZWRpdG9yIGZvcm0gZ2VuZXJhbGl6ZWQKIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjAgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuMCB1cGRhdGUKICAgICAgICBieQogICAgICAgIGFuZHJlYXMKICAgICAgICA6CiAgICAgICAgWzEuMF0gCiAgICAgICAgICAgIGFkZGVkIG5ldyBUZXN0U2V0LCBidWdmaXgKIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjAgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuMCB1cGRhdGUKICAgICAgICBieQogICAgICAgIGFuZHJlYXMKICAgICAgICA6CiAgICAgICAgWzEuMF0gCiAgICAgICAgICAgIHVzaW5nIERFRkFVTFRfUkVTT0xWRVIgZnJvbSBBY2Nlc3NDb250cm9sbGVyUmVzb2x2ZXIKIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjAgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuMCB1cGRhdGUKICAgICAgICBieQogICAgICAgIGFuZHJlYXMKICAgICAgICA6CiAgICAgICAgWzEuMF0gCiAgICAgICAgICAgIHVzaW5nIGV4Y2FsaWJ1ci5Tb3VyY2VVdGlsIGluc3RlYWQgb2YgamF2YS5uZXQuVVJJCiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS4wIHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjAgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBhbmRyZWFzCiAgICAgICAgOgogICAgICAgIFsxLjBdIAogICAgICAgICAgICBmaXhlZCBzaW5nbGV0b24gYnVnCiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS4wIHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjAgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBhbmRyZWFzCiAgICAgICAgOgogICAgICAgIFsxLjBdIAogICAgICAgICAgICBzd2l0Y2hlZCBmcm9tIGZpbGVzIHRvIGlucHV0IHN0cmVhbXMKIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjAgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuMCB1cGRhdGUKICAgICAgICBieQogICAgICAgIGFuZHJlYXMKICAgICAgICA6CiAgICAgICAgWzEuMF0gCiAgICAgICAgICAgIGFkZGVkIGFjY2VzcyBjb250cm9sbGVyIGNhY2hpbmcKIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjAgYWRkPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuMCBhZGQKICAgICAgICBieQogICAgICAgIGFuZHJlYXMKICAgICAgICA6CiAgICAgICAgWzEuMF0gCiAgICAgICAgICAgIC0gaW1wcm92ZWQgcG9saWN5IGNhY2hpbmcKLSB1c2luZyBkb2N1bWVudC1pZCBmb3IgcG9saWN5IHJlc29sdmluZwogRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuMCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS4wIHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgYW5kcmVhcwogICAgICAgIDoKICAgICAgICBbMS4wXSAKICAgICAgICAgICAgYWRkZWQgc29tZSBqYXZhZG9jcwogRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuMCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS4wIHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgbWljaGkKICAgICAgICA6CiAgICAgICAgWzEuMF0gCiAgICAgICAgICAgIGRlbGV0ZSBGZWF0dXJlIGFkZGVkCiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS4wIHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjAgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBlZ2xpCiAgICAgICAgOgogICAgICAgIFsxLjBdIAogICAgICAgICAgICBXaGVuIGNyZWF0aW5nIHRoZSB0YXNrLWlkIHNob3VsZCBiZSAiY3JlYXRlIiBpbnN0ZWFkIG9mCiJjcmVhdGUtd29ya2Zsb3ciLgogRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuMCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS4wIHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgZWdsaQogICAgICAgIDoKICAgICAgICBbMS4wXSAKICAgICAgICAgICAgQWRkIGFzdGVyaXggdG8gdGhlIG1hbmRhdG9yeSBmaWVsZHMuCiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS4wIHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjAgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBlZ2xpCiAgICAgICAgOgogICAgICAgIFsxLjBdIAogICAgICAgICAgICBNYWtlIHN1cmUgdGhlIGN1cnJlbnQgZGF0ZSBpcyBwYXNzZWQgdGhyb3VnaC4KIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjAgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuMCB1cGRhdGUKICAgICAgICBieQogICAgICAgIGVnbGkKICAgICAgICA6CiAgICAgICAgWzEuMF0gCiAgICAgICAgICAgIEFkZGVkIHRoZSBtaXNzaW5nIHdvcmtmbG93IGRlZmluaXRpb24uCiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS4wIHJlbW92ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjAgcmVtb3ZlCiAgICAgICAgYnkKICAgICAgICBtaWNoaQogICAgICAgIDoKICAgICAgICBbMS4wXSAKICAgICAgICAgICAgdXNlY2FzZSBlZGl0IGdlbmVyYWxpemVkCiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS4wIHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjAgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBlZ2xpCiAgICAgICAgOgogICAgICAgIFsxLjBdIAogICAgICAgICAgICBXaGVuIHN1Y2Nlc3NmdWxseSByZW1vdmluZyBhIGxhYmVsIGRvIG5vdCByZWRpcmVjdCB0byB0aGUKb3JpZ2luYWwgcGFnZSBhbnltb3JlIChiZWNhdXNlIGl0IGRvZXNuJ3QgZXhpc3QgYW55bW9yZSkuCkluc3RlYWQgcmVkaXJlY3QgdG8gdGhlIFVSTCB3aXRob3V0IHRoZSBsYW5ndWFnZSAod2hpY2ggaXMKbm93IGV4cG9ydGVkIGJ5IHRoZSBwYWdlIGVudmVsb3BlIG1vZHVsZSkuCiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS4wIHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjAgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBlZ2xpCiAgICAgICAgOgogICAgICAgIFsxLjBdIAogICAgICAgICAgICBGaXggdGhlIHRhc2sgaWQuCiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS4wIHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjAgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBlZ2xpCiAgICAgICAgOgogICAgICAgIFsxLjBdIAogICAgICAgICAgICBGaXggdGhlIHBhcmFtZXRlciBuYW1lcyB0byBtYXRjaCB0aGUgbmFtZXMgaW4gdGhlIGFudCBmaWxlCmFuZCBtYWtlIHRoZSB1c2VyIHF1ZXN0aW9uIG1vcmUgdmVyYm9zZS4KIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjAgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuMCB1cGRhdGUKICAgICAgICBieQogICAgICAgIGVnbGkKICAgICAgICA6CiAgICAgICAgWzEuMF0gCiAgICAgICAgICAgIE1ha2Ugc3VyZSB0aGUgZG9jdW1lbnRzIGNvbWxldGVVUkxXaXRob3V0TGFuZ3VhZ2UgaXMgZXhwb3J0ZWQKdmlhIHRoZSBwYWdlIGVudmVsb3BlIG1vZHVsZS4KIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjAgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuMCB1cGRhdGUKICAgICAgICBieQogICAgICAgIGVnbGkKICAgICAgICA6CiAgICAgICAgWzEuMF0gCiAgICAgICAgICAgIEFkZGVkIGEgbWV0aG9kIHRvIHF1ZXJ5IHRoZSBjb21wbGV0ZSBVUkwgd2l0aG91dCB0aGUKbGFuZ3VhZ2Ugc3VmZml4LgogRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuMCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS4wIHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgZWdsaQogICAgICAgIDoKICAgICAgICBbMS4wXSAKICAgICAgICAgICAgQWRkZWQgYSBzZXR0ZXIgZm9yIHRoZSBhcmVhLgogRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuMCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS4wIHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgZWdsaQogICAgICAgIDoKICAgICAgICBbMS4wXSAKICAgICAgICAgICAgUmVtb3ZlZCBhbiB1bnVzZWQgaW1wb3J0LgogRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuMCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS4wIHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgZWdsaQogICAgICAgIDoKICAgICAgICBbMS4wXSAKICAgICAgICAgICAgQWRkZWQgdXNlY2FzZSBmb3IgcmVtb3ZlTGFiZWwuCiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS4wIGFkZDwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjAgYWRkCiAgICAgICAgYnkKICAgICAgICBlZ2xpCiAgICAgICAgOgogICAgICAgIFsxLjBdIAogICAgICAgICAgICBBZGRlZCBhbiBBbnQgdGFzayBhbmQgc2NyZWVucyB0byBhbGxvdyBkZWxldGlvbiBvZiBhIGxhbmd1YWdlCm5vZGUgb2YgYSBkb2N1bWVudC4KIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjAgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuMCB1cGRhdGUKICAgICAgICBieQogICAgICAgIGVnbGkKICAgICAgICA6CiAgICAgICAgWzEuMF0gCiAgICAgICAgICAgIEFkYXB0ZWQgdG8gdGhlIG5ldyBpbnRlcmZhY2Ugb2YgRGVsZXRlTm9kZVRhc2suCiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS4wIHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjAgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBlZ2xpCiAgICAgICAgOgogICAgICAgIFsxLjBdIAogICAgICAgICAgICBSZW1vdmVkIHRoZSBkZXByZWNhdGVkIHVzYWdlIG9mIHRoZSBEZWZhdWx0U2l0ZVRyZWUgY29uc3RydWN0b3IuCiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS4wIHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjAgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBlZ2xpCiAgICAgICAgOgogICAgICAgIFsxLjBdIAogICAgICAgICAgICBBZGRlZCBqYXZhZG9jIGZpeGVzIGFuZCBmaXhlZCBzb21lIGNoZWNrc3R5bGUgd2FybmluZ3MuCiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS4wIHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjAgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBtaWNoaQogICAgICAgIDoKICAgICAgICBbMS4wXSAKICAgICAgICAgICAgRGF0ZSBjcmVhdGVkIGFkZGVkCiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS4wIHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjAgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBtaWNoaQogICAgICAgIDoKICAgICAgICBbMS4wXSAKICAgICAgICAgICAgZGF0ZWxpbiBhZGRlZAogRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuMCByZW1vdmU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS4wIHJlbW92ZQogICAgICAgIGJ5CiAgICAgICAgbWljaGkKICAgICAgICA6CiAgICAgICAgWzEuMF0gCiAgICAgICAgICAgIG1vdmVkIHRvIGdlbmVyaWMgbG9jYXRpb24KIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjAgcmVtb3ZlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuMCByZW1vdmUKICAgICAgICBieQogICAgICAgIG1pY2hpCiAgICAgICAgOgogICAgICAgIFsxLjBdIAogICAgICAgICAgICByZXBsYWNlZCBieSBnZW5lcmljIGV4Y2VwdGlvbiBYU0xUCiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS4wIHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjAgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBtaWNoaQogICAgICAgIDoKICAgICAgICBbMS4wXSAKICAgICAgICAgICAgaXNzdWVkIHByZXR0aWZpZWQKIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjAgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuMCB1cGRhdGUKICAgICAgICBieQogICAgICAgIGFuZHJlYXMKICAgICAgICA6CiAgICAgICAgWzEuMF0gCiAgICAgICAgICAgIGphdmFkb2MgLyByZW1vdmVkIHVudXNlZCBpbXBvcnQKIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjAgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuMCB1cGRhdGUKICAgICAgICBieQogICAgICAgIGFuZHJlYXMKICAgICAgICA6CiAgICAgICAgWzEuMF0gCiAgICAgICAgICAgIGZvcm1hdHRpbmcgKHRhYnMgdG8gc3BhY2VzKQogRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuMCBhZGQ8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS4wIGFkZAogICAgICAgIGJ5CiAgICAgICAgbWljaGkKICAgICAgICA6CiAgICAgICAgWzEuMF0gCiAgICAgICAgICAgIEhUTUwgRm9ybSBFZGl0b3IgaW5zZXJ0IGFuZCBkZWxldGUgaWNvbnMgYWRkZWQKIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjAgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuMCB1cGRhdGUKICAgICAgICBieQogICAgICAgIG1pY2hpCiAgICAgICAgOgogICAgICAgIFsxLjBdIAogICAgICAgICAgICBpbnNlcnQgYW5kIGRlbGV0ZSBzdGFydGVkCiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS4wIHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjAgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBhbmRyZWFzCiAgICAgICAgOgogICAgICAgIFsxLjBdIAogICAgICAgICAgICAtIGRlY2xhcmluZyBBYnN0cmFjdEFjY2Vzc0NvbnRyb2xsZXJSZXNvbHZlciBhcyBUaHJlYWRTYWZlCi0gdXNpbmcgQWNjZXNzQ29udHJvbGxlciBjYWNoaW5nCiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS4wIHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjAgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBtaWNoaQogICAgICAgIDoKICAgICAgICBbMS4wXSAKICAgICAgICAgICAgQ0RBVEEgc3RhcnRlZCB0byBpbXBsZW1lbnQKIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjAgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuMCB1cGRhdGUKICAgICAgICBieQogICAgICAgIG1pY2hpCiAgICAgICAgOgogICAgICAgIFsxLjBdIAogICAgICAgICAgICBodG1sIGZvcm0gZWRpdG9yIGdlbmVyYWxpemVkCiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS4wIHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjAgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBtaWNoaQogICAgICAgIDoKICAgICAgICBbMS4wXSAKICAgICAgICAgICAgaHRtbCBmb3JtIGVkaXRvciBnZW5lcmFsaXplZAogRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuMCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS4wIHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgZ3JlZ29yCiAgICAgICAgOgogICAgICAgIFsxLjBdIAogICAgICAgICAgICBzdGFydGVkIGJyZWFkY3J1bWItcHJlZml4IHN1cHBvcnQKCnRoaXMgYWxsb3dzIHRvIGhhdmUgYSBwcmVmaXggcGVyIHB1YmxpY2F0aW9uIHRoYXQgZ2V0cyBwcmVwZW5kZWQgdG8gdGhlIGJyZWFkY3J1bWIgcGF0aC4gdXNlZnVsIGZvciBwdWJsaWNhdGlvbnMgdGhhdCBhcmUgcGFydCBvZiBhIGxhcmdlciBzaXRlCiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS4wIGFkZDwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjAgYWRkCiAgICAgICAgYnkKICAgICAgICBncmVnb3IKICAgICAgICA6CiAgICAgICAgWzEuMF0gCiAgICAgICAgICAgIHNwbGl0IGluZm8gdGFicyBpbnRvIHNlcGVyYXRlIHBhZ2VzCiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS4wIHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjAgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBlZ2xpCiAgICAgICAgOgogICAgICAgIFsxLjBdIAogICAgICAgICAgICBQYXNzIHRoZSBsYW5ndWFnZSBhbG9uZyB0aGUgcmV1cWVzdC4KIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjAgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuMCB1cGRhdGUKICAgICAgICBieQogICAgICAgIGVnbGkKICAgICAgICA6CiAgICAgICAgWzEuMF0gCiAgICAgICAgICAgIEFkYXB0ZWQgdG8gdGhlIG5ldyBUcmVlUHVibGlzaGVyIGludGVyZmFjZSB3aGVyZSB5b3Ugbm8KbG9uZ2VyIGhhdmUgdG8gc3BlY2lmeSB0aGUgcGF0aCB0byB0aGUgc2l0ZSB0cmVlcyBhbmQgbm93CmhhdmUgdG8gc3BlY2lmeSB0aGUgbGFuZ3VhZ2UgdGhhdCB5b3Ugd2FudCB0byBwdWJsaXNoLgogRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuMCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS4wIHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgZWdsaQogICAgICAgIDoKICAgICAgICBbMS4wXSAKICAgICAgICAgICAgVGhlIHNvdXJjZSB0byBiZSBwdWJsaXNoZWQgaXMgYWN0dWFsbHkgdGhlIGRvY3VtZW50LXBhdGgKYXMgcmV0dXJuZWQgYnkgdGhlIHBhZ2UgZW52ZWxvcGUgaW5wdXQgbW9kdWxlLiBObyBtb3JlCmZpZGRsaW5nIHdpdGggdGhlIFVSTCAod2hpY2ggaGFkIGFzc3VwdGlvbnMgdGhhdCBubyBsb25nZXIKd2hlcmUgdHJ1ZSB3aXRoIG11bHRpbGluZ3VhbCBVUkxzKS4KIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjAgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuMCB1cGRhdGUKICAgICAgICBieQogICAgICAgIGVnbGkKICAgICAgICA6CiAgICAgICAgWzEuMF0gCiAgICAgICAgICAgIFRoZSBUcmVlUHVibGlzaGVyIG5vIGxvbmdlciBuZWVkcyB0aGUgcGF0aCB0byB0aGUgYXV0aG9yaW5nCmFuZCB0aGUgbGl2ZSB0cmVlcy4gSXQgc2ltcGx5IGFza3MgdGhlIHB1YmxpY2F0aW9uIGZvciB0aGUKc2l0ZSB0cmVlcyBmb3IgdGhlIGF1dGhvcmluZyBhbmQgdGhlIGxpdmUgYXJlYS4KSXQgYWxzbyBub3cgdGFrZXMgdGhlIGxhbmd1YWdlIGludG8gYWNjb3VudCB3aGVuIHB1Ymxpc2hpbmcuCiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS4wIHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjAgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBtaWNoaQogICAgICAgIDoKICAgICAgICBbMS4wXSAKICAgICAgICAgICAgb3B0aW9uYWwgZWxlbWVudHMKIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjAgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuMCB1cGRhdGUKICAgICAgICBieQogICAgICAgIG1pY2hpCiAgICAgICAgOgogICAgICAgIFsxLjBdIAogICAgICAgICAgICBub3QgcHVibGlzaGVkIHlldCBleGNlcHRpb24gYWRkZWQKIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjAgcmVtb3ZlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuMCByZW1vdmUKICAgICAgICBieQogICAgICAgIG1pY2hpCiAgICAgICAgOgogICAgICAgIFsxLjBdIAogICAgICAgICAgICByZXBsYWNlZCBieSBtb3JlIGdlbmVyaWMgU2F2ZUFjdGlvbgogRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuMCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS4wIHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgZWdsaQogICAgICAgIDoKICAgICAgICBbMS4wXSAKICAgICAgICAgICAgUmVtb3ZlZCB0aGUgZGVwcmVjYXRlZCB1c2FnZSBvZiB0aGUgU2l0ZVRyZWUgY29uc3RydWN0b3JzLgogRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuMCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS4wIHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgZWdsaQogICAgICAgIDoKICAgICAgICBbMS4wXSAKICAgICAgICAgICAgRml4ZWQgSmF2YWRvY3MuCiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS4wIHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjAgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBlZ2xpCiAgICAgICAgOgogICAgICAgIFsxLjBdIAogICAgICAgICAgICBUaGUgdW5pdCB0ZXN0IGNhc2UgZm9yIHRoZSBwdWJsaXNoZXIgaGFkIG1hbnkgdGhpbmdzIGhhcmQgY29kZWQKYW5kIGFib3ZlIGFsbCBkaWQgbm90IHdvcmsgYW55bW9yZS4KTWFkZSBpdCBtb3JlIGdlbmVyYWwgKHdpdGggdGhlIHBhdGggbWFwcGVyKSBhbmQgbWFkZSBpdCB3b3JrcyBhZ2Fpbi4KIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjAgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuMCB1cGRhdGUKICAgICAgICBieQogICAgICAgIGdyZWdvcgogICAgICAgIDoKICAgICAgICBbMS4wXSAKICAgICAgICAgICAgdXNlIGRlZmF1bHQgbGFuZ3VhZ2UgZnJvbSBwYWdlIGVudmVsb3BlCiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS4wIHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjAgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBncmVnb3IKICAgICAgICA6CiAgICAgICAgWzEuMF0gCiAgICAgICAgICAgIHVzZSBkZWZhdWx0IGxhbmd1YWdlIGZyb20gcGFnZSBlbnZlbG9wZQogRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuMCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS4wIHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgZ3JlZ29yCiAgICAgICAgOgogICAgICAgIFsxLjBdIAogICAgICAgICAgICBleHBvc2UgZGVmYXVsdCBsYW5ndWFnZSB0aHJvdWdoIHBhZ2UgZW52ZWxvcGUKIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjAgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuMCB1cGRhdGUKICAgICAgICBieQogICAgICAgIG1pY2hpCiAgICAgICAgOgogICAgICAgIFsxLjBdIAogICAgICAgICAgICBibG9nIGVkaXQgZ2VuZXJhbGl6ZWQKIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjAgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuMCB1cGRhdGUKICAgICAgICBieQogICAgICAgIG1pY2hpCiAgICAgICAgOgogICAgICAgIFsxLjBdIAogICAgICAgICAgICBlZGl0aW5nIGN5Y2xlIGltcGxlbWVudGVkCiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS4wIHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjAgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBlZ2xpCiAgICAgICAgOgogICAgICAgIFsxLjBdIAogICAgICAgICAgICBUaGlzIHRhc2sgaXMgbm93IGRlcml2ZWQgZnJvbSBQdWJsaWNhdGlvblRhc2sgYW5kIG5vIGxvbmdlcgpuZWVkcyB0aGUgcGF0aCBvZiB0aGUgc2l0ZSB0cmVlLiBJbnN0ZWFkIHlvdSBjYW4gcGFzcyB0aGUKYXJlYSBpbiBhbmQgaXQgd2lsbCBmaW5kIHRoZSBhc3NvY2lhdGVkIHNpdGUgdHJlZS4KIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjAgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuMCB1cGRhdGUKICAgICAgICBieQogICAgICAgIGVnbGkKICAgICAgICA6CiAgICAgICAgWzEuMF0gCiAgICAgICAgICAgIEFkZGVkIEphdmFkb2NzLgogRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuMCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS4wIHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgZ3JlZ29yCiAgICAgICAgOgogICAgICAgIFsxLjBdIAogICAgICAgICAgICByZW1vdmUgZm9ydW0gcHVibGljYXRpb24KIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjAgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuMCB1cGRhdGUKICAgICAgICBieQogICAgICAgIG1pY2hpCiAgICAgICAgOgogICAgICAgIFsxLjBdIAogICAgICAgICAgICB1bmlxdWUgbnVtYmVyaW5nIGFuZCB0ZW1wb3Jhcnkgc291cmNlIHdyaXRpbmcgaW1wbGVtZW50ZWQKIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjAgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuMCB1cGRhdGUKICAgICAgICBieQogICAgICAgIGVnbGkKICAgICAgICA6CiAgICAgICAgWzEuMF0gCiAgICAgICAgICAgIFRoZSBpbnRlcmZhY2UgdG8gdGhlIGNyZWF0b3IgaGFzIGNoYW5nZWQgc28gdGhlIHVuaXQgdGVzdApuZWVkcyB0byBhZGFwdC4gQWxzbyBzaW5jZSB0aGUgbGFuZ3VhZ2UgaXMgYXBwZW5kZWQgbm93CnRvIHRoZSB4bWwgZmlsZSB0aGUgYXNzdXB0aW9uIG9uIHRoZSBmaWxlIGhhcyBjaGFuZ2UgYW5kIHNvCnRoaXMgYXNzZXJ0aW9uIG5lZWRlZCB0byBiZSBjaGFuZ2VkLgpUaGUgY3JlYXRvciB0ZXN0IHdvcmtzIGFnYWluLgogRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuMCByZW1vdmU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS4wIHJlbW92ZQogICAgICAgIGJ5CiAgICAgICAgZ3JlZ29yCiAgICAgICAgOgogICAgICAgIFsxLjBdIAogICAgICAgICAgICBnbyBiYWNrIHRvIGFkbWluIG92ZXJ2aWV3IGlmIGNhbmNlbAogRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuMCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS4wIHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgZWRpdGgKICAgICAgICA6CiAgICAgICAgWzEuMF0gCiAgICAgICAgICAgIG1ldGhvZCB0byBzZXQgYW5kIGdldCB0aGUgaWRlbnRpZmllcgogRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuMCBhZGQ8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS4wIGFkZAogICAgICAgIGJ5CiAgICAgICAgZWRpdGgKICAgICAgICA6CiAgICAgICAgWzEuMF0gCiAgICAgICAgICAgIHdvcmsgaW4gcHJvZ3Jlc3MKIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjAgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuMCB1cGRhdGUKICAgICAgICBieQogICAgICAgIGVkaXRoCiAgICAgICAgOgogICAgICAgIFsxLjBdIAogICAgICAgICAgICBkb2N0eXBlIHBhcmFtZXRlciByZW1vdmUgZm9yIGNvcHlpbmcKIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjAgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuMCB1cGRhdGUKICAgICAgICBieQogICAgICAgIGVnbGkKICAgICAgICA6CiAgICAgICAgWzEuMF0gCiAgICAgICAgICAgIEphdmFkb2MgZml4CiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS4wIHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjAgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBlZ2xpCiAgICAgICAgOgogICAgICAgIFsxLjBdIAogICAgICAgICAgICBJbnN0ZWFkIG9mIGhhcmRjb2RpbmcgaXQgdXNlIHRoZSBDT05URU5UX1BBVEggZnJvbSB0aGUKUHVibGljYXRpb24uCiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS4wIHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjAgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBlZ2xpCiAgICAgICAgOgogICAgICAgIFsxLjBdIAogICAgICAgICAgICBDT05URU5UX1BBVEggKD0gImNvbnRlbnQiKSBpcyBub3cgYSBjb25zdGFudCBvZiB0aGUgcHVibGljYXRpb24uCgpJbml0aWFsaXplIHRoZSBzaXRlVHJlZXMgc3RhdGljYWxseSBpbnN0ZWFkIG9mIGR5bmFtaWNhbGx5LgogRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuMCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS4wIHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgZ3JlZ29yCiAgICAgICAgOgogICAgICAgIFsxLjBdIAogICAgICAgICAgICBnbyBiYWNrIHRvIGFkbWluIG92ZXJ2aWV3IGlmIGNhbmNlbAogRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuMCBhZGQ8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS4wIGFkZAogICAgICAgIGJ5CiAgICAgICAgZ3JlZ29yCiAgICAgICAgOgogICAgICAgIFsxLjBdIAogICAgICAgICAgICBhZGQgZGVsZXRlIHRyYXNoIHRvIGFkbWluIGFyZWEKIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjAgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuMCB1cGRhdGUKICAgICAgICBieQogICAgICAgIGdyZWdvcgogICAgICAgIDoKICAgICAgICBbMS4wXSAKICAgICAgICAgICAgd2UgbmVlZCB0byBzZXQgdGhlIGFyZWEgYmVmb3JlIHdlIGNhbGwgdGhlIER1YmxpbkNvcmUgY29uc3RydWN0b3Igb3Igd2UnbGwgZ2V0IGEgTlBFCiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS4wIHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjAgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBlZGl0aAogICAgICAgIDoKICAgICAgICBbMS4wXSAKICAgICAgICAgICAgIGNoYW5nZSB0aGUgaW5pdGlhbGlzYXRpb24gb2Ygd29ya2Zsb3cgaW4gY2FzZSBvZiBjb3B5aW5nLCBzbyByZW1vdmUgdGhlIHVyaXBhcmFtZXRyaXplcgogRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuMCBhZGQ8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS4wIGFkZAogICAgICAgIGJ5CiAgICAgICAgZWRpdGgKICAgICAgICA6CiAgICAgICAgWzEuMF0gCiAgICAgICAgICAgIFZpc2l0b3IgaW50ZXJmYWNlIGZvciB0aGUgb3BlcmF0aW9ucyBwZXJmb3JtZWQgb24gc2l0ZXRyZWVub2RlcwogRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuMCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS4wIHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgZWRpdGgKICAgICAgICA6CiAgICAgICAgWzEuMF0gCiAgICAgICAgICAgIGFjY3BldCBtZXRob2QgZm9yIHRoZSB2aXNpdGFibGUgc2l0ZXRyZWVub2RlIChWaXNpdG9yIHBhdHRlcm4pCiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS4wIHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjAgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBlZGl0aAogICAgICAgIDoKICAgICAgICBbMS4wXSAKICAgICAgICAgICAgaW5zdGFuY2llcnVuZyBvZiB0aGUgc2l0ZXRyZWUgSGFzaE1hcAogRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuMCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS4wIHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgZWRpdGgKICAgICAgICA6CiAgICAgICAgWzEuMF0gCiAgICAgICAgICAgIGFkZGVkIGNvbnRlbnQgaW4gdGhlIHNpdGV0cmVlIHBhdGgKIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjAgYWRkPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuMCBhZGQKICAgICAgICBieQogICAgICAgIGVkaXRoCiAgICAgICAgOgogICAgICAgIFsxLjBdIAogICAgICAgICAgICBjb3B5IGltcGxlbWVudGVkIHdpdGggdGhlIFZpc2l0b3IgcGF0dGVybi4KY29weSBjb250ZW50IHhtbCBmaWxlcyBhbmQgd29ya2Zsb3cuCiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS4wIGFkZDwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjAgYWRkCiAgICAgICAgYnkKICAgICAgICBlZ2xpCiAgICAgICAgOgogICAgICAgIFsxLjBdIAogICAgICAgICAgICBBbnQgdGFzayB0byBpbnNlcnQgYSBsYWJlbCBpbnRvIGFuIGV4aXN0aW5nIG5vZGUgaW4gdGhlCnNpdGV0cmVlLgogRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuMCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS4wIHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgZWdsaQogICAgICAgIDoKICAgICAgICBbMS4wXSAKICAgICAgICAgICAgQWRhcHRlZCB0byB0aGUgbmV3IGludGVyZmFjZSBvZiBEb2N1bWVudENyZWF0b3JUYXNrICh3aGljaApubyBsb25nZXIgdXNlcyB0aGUgZGVwcmVjYXRlZCBTaXRlVHJlZSBjb25zdHJ1Y3RvcikKIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjAgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuMCB1cGRhdGUKICAgICAgICBieQogICAgICAgIGVnbGkKICAgICAgICA6CiAgICAgICAgWzEuMF0gCiAgICAgICAgICAgIEFkZGVkIHRoZSBjcmVhdGUtbGFuZ3VhZ2UgdXNlY2FzZS4KIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjAgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuMCB1cGRhdGUKICAgICAgICBieQogICAgICAgIGVnbGkKICAgICAgICA6CiAgICAgICAgWzEuMF0gCiAgICAgICAgICAgIENoYW5nZWQgdGhlIGludGVyZmFjZSB0byBubyBsb25nZXIgdXNlIHRoZSBkZXByZWNhdGVkIGludGVyZmFjZQpvZiBTaXRlVHJlZS4KIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjAgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuMCB1cGRhdGUKICAgICAgICBieQogICAgICAgIG1pY2hpCiAgICAgICAgOgogICAgICAgIFsxLjBdIAogICAgICAgICAgICBGb3JtIEVkaXRvciBpbXBsZW1lbnRlZCBpbnRvIE9TQ09NIHB1YgogRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuMCBhZGQ8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS4wIGFkZAogICAgICAgIGJ5CiAgICAgICAgbWljaGkKICAgICAgICA6CiAgICAgICAgWzEuMF0gCiAgICAgICAgICAgIEhUTUwgRm9ybSBTYXZlIEFjdGlvbiBzdGFydGVkCiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS4wIHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjAgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBhbmRyZWFzCiAgICAgICAgOgogICAgICAgIFsxLjBdIAogICAgICAgICAgICByZWRpcmVjdGluZyAiIiB0byAiaW5kZXguaHRtbCIKIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjAgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuMCB1cGRhdGUKICAgICAgICBieQogICAgICAgIGVnbGkKICAgICAgICA6CiAgICAgICAgWzEuMF0gCiAgICAgICAgICAgIEFkYXB0ZWQgdG8gdGhlIGNoYW5nZXMgaW4gdGhlIFNpdGVUcmVlIGNvbnN0cnVjdG9yIHNpZ25hdHVyZS4KIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjAgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuMCB1cGRhdGUKICAgICAgICBieQogICAgICAgIGVnbGkKICAgICAgICA6CiAgICAgICAgWzEuMF0gCiAgICAgICAgICAgIEFkYXB0ZWQgdG8gdGhlIGNoYW5nZXMgaW4gdGhlIFNpdGVUcmVlIGNvbnN0cnVjdG9yIHNpZ25hdHVyZS4KIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjAgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuMCB1cGRhdGUKICAgICAgICBieQogICAgICAgIGVnbGkKICAgICAgICA6CiAgICAgICAgWzEuMF0gCiAgICAgICAgICAgIEFkZGVkIGEgbmV3IGNvbnN0cnVjdG9yIHRvIERlZmF1bHRTaXRlVHJlZSB3aGljaCBkb2Vzbid0CnJlcXVpcmUgeW91IHRvIHNwZWNpZnkgYSBmaWxlbmFtZS4KSW5zdGVhZCBpdCBhc2tzIGZvciBhIHB1YiBkaXIgYW5kIGFuIGFyZWEuCgpUaGUgb3RoZXIgY29uc3RydWN0b3JzIGFyZSBkZXByZWNhdGVkLgoKQWxzbyB0aGUgcHVibGljYXRpb24gbm93IGhhcyBhIGdldHRlciBtZXRob2Qgd2hpY2ggYWxsb3dzCnlvdSB0byByZXF1ZXN0IHRoZSBzaXRldHJlZSBmb3IgYSBzcGVjaWZpYyBhcmVhLgogRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuMCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS4wIHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgbWljaGkKICAgICAgICA6CiAgICAgICAgWzEuMF0gCiAgICAgICAgICAgIHNpdGVtYXAgYWNjZXNzIGNvbnRyb2xsZXIgYnVnIGZpeGVkCiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS4wIHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjAgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBncmVnb3IKICAgICAgICA6CiAgICAgICAgWzEuMF0gCiAgICAgICAgICAgIHBlci1wdWJsaWNhdGlvbiBvdmVycmlkZSB3YXMgdXNpbmcgd3JvbmcgcGF0aAogRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuMCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS4wIHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgYW5kcmVhcwogICAgICAgIDoKICAgICAgICBbMS4wXSAKICAgICAgICAgICAgc2F2aW5nIG1lbWJlcnMgYWZ0ZXIgZGVsZXRpbmcgZ3JvdXAKIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjAgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuMCB1cGRhdGUKICAgICAgICBieQogICAgICAgIGFuZHJlYXMKICAgICAgICA6CiAgICAgICAgWzEuMF0gCiAgICAgICAgICAgICJkZWxldGUgdXNlciIgYnVnZml4CiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS4wIHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjAgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBhbmRyZWFzCiAgICAgICAgOgogICAgICAgIFsxLjBdIAogICAgICAgICAgICBvbmx5IHdoaXRlc3BhY2UgY2hhbmdlcwogRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuMCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS4wIHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgYW5kcmVhcwogICAgICAgIDoKICAgICAgICBbMS4wXSAKICAgICAgICAgICAgY2hlY2tpbmcgaWYgaWRlbnRpdHkgY29udGFpbnMgdXNlciBiZWZvcmUgYWRkaW5nCiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS4wIHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjAgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBhbmRyZWFzCiAgICAgICAgOgogICAgICAgIFsxLjBdIAogICAgICAgICAgICBhZGRlZCBqYXZhZG9jcwogRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuMCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS4wIHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgYW5kcmVhcwogICAgICAgIDoKICAgICAgICBbMS4wXSAKICAgICAgICAgICAgZW1wdHkgc3RyaW5nIGFzIGRlZmF1bHQgZS1tYWlsIGFkZHJlc3Mgd2hlbiBsb2FkaW5nCiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS4wIHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjAgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBhbmRyZWFzCiAgICAgICAgOgogICAgICAgIFsxLjBdIAogICAgICAgICAgICBtb3ZlZCBpZGVudGl0eSBpbml0aWFsaXphdGlvbiB0byBBY2Nlc3NDb250cm9sQWN0aW9uCnRoaXMgbWVhbnMgdGhhdCBhbHNvIHRoZSBhdXRoZW50aWNhdG9yIGluaXRpYWxpemVzIHRoZSBpZGVudGl0eQoobm8gY3Jhc2ggd2hlbiB0cnlpbmcgdG8gbG9naW4gd2l0aG91dCBhdXRocm9yaXphdGlvbiBhZnRlciBhIFRvbWNhdCByZXN0YXJ0KQogRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuMCBhZGQ8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS4wIGFkZAogICAgICAgIGJ5CiAgICAgICAgbWljaGkKICAgICAgICA6CiAgICAgICAgWzEuMF0gCiAgICAgICAgICAgIHVzZWNhc2UgcG9saWNpZXMgYWRkZWQKIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjAgcmVtb3ZlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuMCByZW1vdmUKICAgICAgICBieQogICAgICAgIGFuZHJlYXMKICAgICAgICA6CiAgICAgICAgWzEuMF0gCiAgICAgICAgICAgIHJlbW92ZWQgb2Jzb2xldGUgZmlsZXMKIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjAgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuMCB1cGRhdGUKICAgICAgICBieQogICAgICAgIGFuZHJlYXMKICAgICAgICA6CiAgICAgICAgWzEuMF0gCiAgICAgICAgICAgIGNoZWNraW5nIGlmIElEIGlzIHZhbGlkCiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS4wIHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjAgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBhbmRyZWFzCiAgICAgICAgOgogICAgICAgIFsxLjBdIAogICAgICAgICAgICBtYWRlIGlzVmFsaWRJZCgpIHN0YXRpYyBhbmQgcmVtb3ZlZCBpdCBmcm9tIHRoZSBJdGVtIGludGVyZmFjZQogRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuMCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS4wIHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgZ3JlZ29yCiAgICAgICAgOgogICAgICAgIFsxLjBdIAogICAgICAgICAgICBhZGRlZCBtZWRpYSBhdHRyaWJ1dGUKIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjAgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuMCB1cGRhdGUKICAgICAgICBieQogICAgICAgIGFuZHJlYXMKICAgICAgICA6CiAgICAgICAgWzEuMF0gCiAgICAgICAgICAgIGFkZGVkIFNTTCBwcm90ZWN0aW9uIGhhbmRsaW5nCiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS4wIHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjAgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBhbmRyZWFzCiAgICAgICAgOgogICAgICAgIFsxLjBdIAogICAgICAgICAgICBhZGRlZCBzb21lIGRlYnVnIG1lc3NhZ2VzCiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS4wIHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjAgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBlZ2xpCiAgICAgICAgOgogICAgICAgIFsxLjBdIAogICAgICAgICAgICBtYWtlIHRoZSBsb2cgaW5zdGFuY2UgdmFyaWFibGUgcHJpdmF0ZSB0byBzYXRpc2Z5IGNoZWNrc3R5bGUuCiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS4wIHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjAgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBlZ2xpCiAgICAgICAgOgogICAgICAgIFsxLjBdIAogICAgICAgICAgICBGaXhlZCBhIGJ1ZyBpbiB0aGUgZG9jdW1lbnRhdGlvbi4KIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjAgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuMCB1cGRhdGUKICAgICAgICBieQogICAgICAgIG1pY2hpCiAgICAgICAgOgogICAgICAgIFsxLjBdIAogICAgICAgICAgICBDb3B5aW5nIHB1YmxpY2F0aW9uIHNwZWNpZmljIEphdmEgY2xhc3NlcyBmaXhlZAogRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuMCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS4wIHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgbWljaGkKICAgICAgICA6CiAgICAgICAgWzEuMF0gCiAgICAgICAgICAgIHVzZWNhc2UgcG9saWNpZXMgZml4ZWQKIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjAgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuMCB1cGRhdGUKICAgICAgICBieQogICAgICAgIGFuZHJlYXMKICAgICAgICA6CiAgICAgICAgWzEuMF0gCiAgICAgICAgICAgIGFkZGVkIHNvbWUgamF2YWRvY3MKIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjAgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuMCB1cGRhdGUKICAgICAgICBieQogICAgICAgIGFuZHJlYXMKICAgICAgICA6CiAgICAgICAgWzEuMF0gCiAgICAgICAgICAgIGZpeGVkIGxvb3AgdmFyaWFibGUgYnVnCiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS4wIHJlbW92ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjAgcmVtb3ZlCiAgICAgICAgYnkKICAgICAgICBlZ2xpCiAgICAgICAgOgogICAgICAgIFsxLjBdIAogICAgICAgICAgICBSZXBsYWNlZCBieSBhIG5ld2VyIGphci4KIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjAgYWRkPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuMCBhZGQKICAgICAgICBieQogICAgICAgIGVnbGkKICAgICAgICA6CiAgICAgICAgWzEuMF0gCiAgICAgICAgICAgIEFkZGVkIHRoZSBvcHRpb25hbC5qYXIgZnJvbSB0aGUgYW50IGRpc3RyaWJ1dGlvbi4gU2luY2UgaXQKcHJvYmFibHkgbWFrZXMgc2Vuc2UgdG8gaGF2ZSB0aGUgYW50LmphciBhbmQgdGhlIG9wdGlvbmFsLmphcgp0byBiZSBmcm9tIHRoZSBzYW1lIChuaWdobHkpIHNuYXBzaG90IGFuZCB0aGVyZSBpcyBubyB3YXkKSSBjb3VsZCBmaW5kIG91dCBmcm9tIHdoaWNoIHNuYXBzaG90IHRoZSBvbGQgamFyIHdhcyBJIHJlcGxhY2VkCnRoZSBhbnQuamFyIHdpdGggdGhlIGphciBmcm9tIHRoZSBzYW1lIHNuYXBzaG90IGFzIHRoZSBvcHRpb25hbC5qYXIuCiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS4wIHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjAgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBlZ2xpCiAgICAgICAgOgogICAgICAgIFsxLjBdIAogICAgICAgICAgICBqYXZhZG9jIGZpeGVzIHRvIG1ha2UgY2hlY2tzdHlsZSBoYXBweS4KIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjAgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuMCB1cGRhdGUKICAgICAgICBieQogICAgICAgIGVnbGkKICAgICAgICA6CiAgICAgICAgWzEuMF0gCiAgICAgICAgICAgIGphdmFkb2MgZml4ZXMgdG8gbWFrZSBjaGVja3N0eWxlIGhhcHB5LgogRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuMCBhZGQ8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS4wIGFkZAogICAgICAgIGJ5CiAgICAgICAgbWljaGkKICAgICAgICA6CiAgICAgICAgWzEuMF0gCiAgICAgICAgICAgIHVzZWNhc2UgcG9saWNpZXMgYWRkZWQKIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjAgYWRkPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuMCBhZGQKICAgICAgICBieQogICAgICAgIAogICAgICAgIDoKICAgICAgICBbMS4wXSAKICAgICAgICAgICAgVGhpcyBjb21taXQgd2FzIG1hbnVmYWN0dXJlZCBieSBjdnMyc3ZuIHRvIGNyZWF0ZSB0YWcgJ3N0YXJ0Jy4gRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuMCByZW1vdmU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS4wIHJlbW92ZQogICAgICAgIGJ5CiAgICAgICAgCiAgICAgICAgOgogICAgICAgIFsxLjBdIAogICAgICAgICAgICBUaGlzIGNvbW1pdCB3YXMgbWFudWZhY3R1cmVkIGJ5IGN2czJzdm4gdG8gY3JlYXRlIGJyYW5jaCAnbWljaGknLiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS4wIGFkZDwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjAgYWRkCiAgICAgICAgYnkKICAgICAgICBtaWNoaQogICAgICAgIDoKICAgICAgICBbMS4wXSAKICAgICAgICAgICAgSW5pdGlhbCByZXZpc2lvbgogRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuMCBhZGQ8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS4wIGFkZAogICAgICAgIGJ5CiAgICAgICAgZWdsaQogICAgICAgIDoKICAgICAgICBbMS4wXSAKICAgICAgICAgICAgQW50IHNuaXBwZXQgdG8gZ2V0IHRoZSBmaWxlbmFtZSBmb3IgYSBwYXJ0aWN1bGFyIGRvY3VtZW50LWlkCnVzaW5nIHRoZSBkb2N1bWVudFRvUGF0aG1hcHBlci4KIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjAgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuMCB1cGRhdGUKICAgICAgICBieQogICAgICAgIGVnbGkKICAgICAgICA6CiAgICAgICAgWzEuMF0gCiAgICAgICAgICAgIGphdmFkb2MgZml4ZXMgdG8gbWFrZSBjaGVja3N0eWxlIGhhcHB5LgogRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuMCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS4wIHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgYW5kcmVhcwogICAgICAgIDoKICAgICAgICBbMS4wXSAKICAgICAgICAgICAgY2hhbmdlZCBzb21lIGxvZ2dlciBJRHMKIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjAgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuMCB1cGRhdGUKICAgICAgICBieQogICAgICAgIGFuZHJlYXMKICAgICAgICA6CiAgICAgICAgWzEuMF0gCiAgICAgICAgICAgIGNoYW5nZWQgaHJlZiBhbmQgdWM6KiBhdHRyaWJ1dGUgaGFuZGxpbmcKIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjAgYWRkPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuMCBhZGQKICAgICAgICBieQogICAgICAgIGFuZHJlYXMKICAgICAgICA6CiAgICAgICAgWzEuMF0gCiAgICAgICAgICAgIGFkZGVkIFVzZWNhc2VNZW51VHJhbnNmb3JtZXIKIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjAgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuMCB1cGRhdGUKICAgICAgICBieQogICAgICAgIGFuZHJlYXMKICAgICAgICA6CiAgICAgICAgWzEuMF0gCiAgICAgICAgICAgIGFkZGVkIGNvbmZpZ3VyYWJsZSBBY2Nlc3NDb250cm9sbGVyUmVzb2x2ZXIKIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjAgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuMCB1cGRhdGUKICAgICAgICBieQogICAgICAgIGFuZHJlYXMKICAgICAgICA6CiAgICAgICAgWzEuMF0gCiAgICAgICAgICAgIC0gYWRkZWQgbWV0aG9kIHRvIG1vdmUgaGlzdG9yeSBmaWxlCi0gdXNpbmcgUG9saWN5QXV0aG9yaXplciB0byBvYnRhaW4gcm9sZXMgZnJvbSByZXF1ZXN0CiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS4wIHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjAgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBhbmRyZWFzCiAgICAgICAgOgogICAgICAgIFsxLjBdIAogICAgICAgICAgICBhZGRlZCBQVUJMSUNBVElPTl9QUkVGSVhfVVJJCiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS4wIHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjAgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBhbmRyZWFzCiAgICAgICAgOgogICAgICAgIFsxLjBdIAogICAgICAgICAgICBzaW1wbGlmaWVkIGF1dGhvcml6ZXIgaW50ZXJmYWNlCiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS4wIHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjAgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBhbmRyZWFzCiAgICAgICAgOgogICAgICAgIFsxLjBdIAogICAgICAgICAgICBtb3ZlZCBERUZBVUxUX1JFU09MVkVSIHRvIEFjY2Vzc0NvbnRyb2xsZXJSZXNvbHZlcgogRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuMCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS4wIHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgYW5kcmVhcwogICAgICAgIDoKICAgICAgICBbMS4wXSAKICAgICAgICAgICAgYWJhbmRvbmVkIHVzZWNhc2UgcG9saWN5IGZpbGUgY29uZmlndXJhYmlsaXR5CiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS4wIHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjAgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBhbmRyZWFzCiAgICAgICAgOgogICAgICAgIFsxLjBdIAogICAgICAgICAgICB1c2luZyBvbmx5IDIgbGFzdCBsZXR0ZXJzIGZvciBsYW5ndWFnZSBzdWZmaXgKIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjAgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuMCB1cGRhdGUKICAgICAgICBieQogICAgICAgIGFuZHJlYXMKICAgICAgICA6CiAgICAgICAgWzEuMF0gCiAgICAgICAgICAgIGFkZGVkIGdldFdvcmtmbG93SWQoKSBtZXRob2RzCiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS4wIHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjAgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBhbmRyZWFzCiAgICAgICAgOgogICAgICAgIFsxLjBdIAogICAgICAgICAgICBhZGRlZCBtZXRob2QgdG8gaW5pdGlhbGl6ZSBhIHdvcmtmbG93IGhpc3RvcnkgYmFzZWQgb24gYW4gZXhpc3RpbmcgZG9jdW1lbnQKIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjAgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuMCB1cGRhdGUKICAgICAgICBieQogICAgICAgIGFuZHJlYXMKICAgICAgICA6CiAgICAgICAgWzEuMF0gCiAgICAgICAgICAgIHJlbGVhc2luZyBzb3VyY2UKIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjAgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuMCB1cGRhdGUKICAgICAgICBieQogICAgICAgIGFuZHJlYXMKICAgICAgICA6CiAgICAgICAgWzEuMF0gCiAgICAgICAgICAgIGFkZGVkIHNvbWUgamF2YWRvY3MKIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjAgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuMCB1cGRhdGUKICAgICAgICBieQogICAgICAgIGFuZHJlYXMKICAgICAgICA6CiAgICAgICAgWzEuMF0gCiAgICAgICAgICAgIG5ldyBtZXRob2QgaW4gUHVibGljYXRpb25GYWN0b3J5CiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS4wIHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjAgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBncmVnb3IKICAgICAgICA6CiAgICAgICAgWzEuMF0gCiAgICAgICAgICAgIHJlIGVuYWJsZWQgYWxsIHRhYnMKIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjAgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuMCB1cGRhdGUKICAgICAgICBieQogICAgICAgIGVnbGkKICAgICAgICA6CiAgICAgICAgWzEuMF0gCiAgICAgICAgICAgIEZpeGVkIEphdmFkb2MgdHlwb3MuCiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS4wIHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjAgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBlZ2xpCiAgICAgICAgOgogICAgICAgIFsxLjBdIAogICAgICAgICAgICBKYXZhZG9jIGZpeGVzIHRvIHNhdGlzZnkgY2hlY2tzdHlsZS4KIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjAgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuMCB1cGRhdGUKICAgICAgICBieQogICAgICAgIGdyZWdvcgogICAgICAgIDoKICAgICAgICBbMS4wXSAKICAgICAgICAgICAgcmVwbGFjZSBKYXZhRmlsZW5hbWVGaWx0ZXIgd2l0aCBSZWdleEZpbGVuYW1lRmlsdGVyCiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS4wIHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjAgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBlZ2xpCiAgICAgICAgOgogICAgICAgIFsxLjBdIAogICAgICAgICAgICBBZGRlZCBhcHByb3ByaWF0ZSBpbXBvcnQgc3RhdGVtZW50cyB0byBtYWtlIGl0IGNvbXBpbGUuCiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS4wIHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjAgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBlZ2xpCiAgICAgICAgOgogICAgICAgIFsxLjBdIAogICAgICAgICAgICBBZGRlZCBhIG1ldGhvZCAoZ2V0TGFuZ3VhZ2VTdWZmaXgpIHRvIGNhbGN1bGF0ZSB0aGUgbGFuZ3VhZ2UKc3VmZml4LiBJZiB0aGUgbGFuZ3VhZ2UgaXMgbnVsbCBpdCByZXR1cm5zIGFuIGVtcHR5IHN0cmluZy4KVGhpcyBtZXRob2QgaXMgdXNlZCBpbiBzdWJjbGFzc2VzIHdoZW4gY2FsY3VsYXRpbmcgdGhlCmZpbGUgbmFtZSBvZiB0aGUgbmV3IGRvY3VtZW50LgogRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuMCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS4wIHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgZWdsaQogICAgICAgIDoKICAgICAgICBbMS4wXSAKICAgICAgICAgICAgT25seSBhZGQgdGhlIGxhbmd1YWdlIHN1ZmZpeCBpZiB0aGUgbGFuZ3VhZ2Ugc3RyaW5nIGlzCm5vdCBlcXVhbCBudWxsLgogRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuMCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS4wIHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgYW5kcmVhcwogICAgICAgIDoKICAgICAgICBbMS4wXSAKICAgICAgICAgICAgYWRkZWQgc29tZSBkb2NzCiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS4wIHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjAgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBhbmRyZWFzCiAgICAgICAgOgogICAgICAgIFsxLjBdIAogICAgICAgICAgICBjb21tZW50ZWQgb3V0IG5vbi1leGlzdGluZyBncm91cHMKIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjAgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuMCB1cGRhdGUKICAgICAgICBieQogICAgICAgIGFuZHJlYXMKICAgICAgICA6CiAgICAgICAgWzEuMF0gCiAgICAgICAgICAgIGFkZGVkIHNvbWUgZG9jcwogRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuMCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS4wIHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgYW5kcmVhcwogICAgICAgIDoKICAgICAgICBbMS4wXSAKICAgICAgICAgICAgYWRkZWQgc29tZSBkb2NzCiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS4wIHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjAgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBncmVnb3IKICAgICAgICA6CiAgICAgICAgWzEuMF0gCiAgICAgICAgICAgIGltcGxlbWVudGVkIHdyaXRhYmxlIG1ldGFkYXRhCiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS4wIGFkZDwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjAgYWRkCiAgICAgICAgYnkKICAgICAgICBhbmRyZWFzCiAgICAgICAgOgogICAgICAgIFsxLjBdIAogICAgICAgICAgICBpbml0aWFsIGNoZWNraW4gb2YgYWNjZXNzIGNvbnRyb2wgZG9jdW1lbnRhdGlvbgogRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuMCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS4wIHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgZ3JlZ29yCiAgICAgICAgOgogICAgICAgIFsxLjBdIAogICAgICAgICAgICByZW1vdmVkIGNvb2tpZSBhZGRpdGlvbnMKIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjAgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuMCB1cGRhdGUKICAgICAgICBieQogICAgICAgIGdyZWdvcgogICAgICAgIDoKICAgICAgICBbMS4wXSAKICAgICAgICAgICAgc3luY2hyb25pemluZyB0cmVlIHdpZGdldHMgd2l0aCB0aGUgZW50ZXJlZCBVUkwgc2hvdWxkIG5vdyB3b3JrIGFnYWluCiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS4wIHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjAgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBhbmRyZWFzCiAgICAgICAgOgogICAgICAgIFsxLjBdIAogICAgICAgICAgICByZW1vdmVkIHVudXNlZCBpbXBvcnRzCiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS4wIHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjAgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBhbmRyZWFzCiAgICAgICAgOgogICAgICAgIFsxLjBdIAogICAgICAgICAgICBjbGFyaWZpZWQgZ3JvdXAgdGVzdAogRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuMCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS4wIHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgYW5kcmVhcwogICAgICAgIDoKICAgICAgICBbMS4wXSAKICAgICAgICAgICAgc2F2aW5nIG1lbWJlciBpbnN0ZWFkIG9mIGdyb3VwIChhZmZpbGlhdGlvbiBpcyBzdG9yZWQgaW4gbWVtYmVyKQogRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuMCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS4wIHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgYW5kcmVhcwogICAgICAgIDoKICAgICAgICBbMS4wXSAKICAgICAgICAgICAgcmVtb3ZpbmcgbWVtYmVycyBiZWZvcmUgZGVsZXRpbmcgZ3JvdXAKIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjAgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuMCB1cGRhdGUKICAgICAgICBieQogICAgICAgIG1pY2hpCiAgICAgICAgOgogICAgICAgIFsxLjBdIAogICAgICAgICAgICB1cGRhdGUgdHJlZSBpc29sYXRlZAogRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuMCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS4wIHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgbWljaGkKICAgICAgICA6CiAgICAgICAgWzEuMF0gCiAgICAgICAgICAgIHB1Ymxpc2ggc2NyZWVuIHByZXR0aWZpZWQKIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjAgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuMCB1cGRhdGUKICAgICAgICBieQogICAgICAgIGFuZHJlYXMKICAgICAgICA6CiAgICAgICAgWzEuMF0gCiAgICAgICAgICAgIGNvbW1lbnRlZCBvdXQgbm9uLXdvcmtpbmcgaXRlbXMKIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjAgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuMCB1cGRhdGUKICAgICAgICBieQogICAgICAgIGdyZWdvcgogICAgICAgIDoKICAgICAgICBbMS4wXSAKICAgICAgICAgICAgb25lIG1vcmUgZGVmYXVsdGxhbmd1YWdlID0gZGUKIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjAgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuMCB1cGRhdGUKICAgICAgICBieQogICAgICAgIGFuZHJlYXMKICAgICAgICA6CiAgICAgICAgWzEuMF0gCiAgICAgICAgICAgIHNob3cgImlkIChuYW1lKSIgaW4gc2VsZWN0aW9uIGJveGVzCiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS4wIHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjAgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBhbmRyZWFzCiAgICAgICAgOgogICAgICAgIFsxLjBdIAogICAgICAgICAgICBmaXhlZCBuZXctcGFzc3dvcmQgZm9yd2FyZGluZwogRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuMCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS4wIHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgYW5kcmVhcwogICAgICAgIDoKICAgICAgICBbMS4wXSAKICAgICAgICAgICAgZml4ZWQgbGlua3MKIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjAgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuMCB1cGRhdGUKICAgICAgICBieQogICAgICAgIG1pY2hpCiAgICAgICAgOgogICAgICAgIFsxLjBdIAogICAgICAgICAgICBBUEkgZml4ZWQKIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjAgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuMCB1cGRhdGUKICAgICAgICBieQogICAgICAgIGFuZHJlYXMKICAgICAgICA6CiAgICAgICAgWzEuMF0gCiAgICAgICAgICAgIGFkZGVkIHBpcGVsaW5lIGZvciBpdGVtIGVkaXRpbmcgZmxvdyBwYWdlcwogRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuMCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS4wIHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgYW5kcmVhcwogICAgICAgIDoKICAgICAgICBbMS4wXSAKICAgICAgICAgICAgZml4ZWQgbGlua3MKIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjAgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuMCB1cGRhdGUKICAgICAgICBieQogICAgICAgIGFuZHJlYXMKICAgICAgICA6CiAgICAgICAgWzEuMF0gCiAgICAgICAgICAgIHB1dHRpbmcgd29ya2Zsb3cgaGlzdG9yeSBmaWxlcyBpbiBjb250ZW50L3dvcmtmbG93L2hpc3RvcnkKIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjAgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuMCB1cGRhdGUKICAgICAgICBieQogICAgICAgIGdyZWdvcgogICAgICAgIDoKICAgICAgICBbMS4wXSAKICAgICAgICAgICAgYWRkIGRlbGV0ZSBUcmFzaCB0byBpbmZvIG1lbnUKIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjAgcmVtb3ZlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuMCByZW1vdmUKICAgICAgICBieQogICAgICAgIGdyZWdvcgogICAgICAgIDoKICAgICAgICBbMS4wXSAKICAgICAgICAgICAgcmVuYW1lZCBEb2N1bWVudFVybCB0byBEb2N1bWVudFVSTAogRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuMCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS4wIHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgbWljaGkKICAgICAgICA6CiAgICAgICAgWzEuMF0gCiAgICAgICAgICAgIGdldCBzb3VyY2VzIGFuZCB1cmlzIGZyb20gbWVudSBpdGVtCiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS4wIHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjAgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBncmVnb3IKICAgICAgICA6CiAgICAgICAgWzEuMF0gCiAgICAgICAgICAgIHJlbmFtZWQgRG9jdW1lbnRVcmwgdG8gRG9jdW1lbnRVUkwKIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjAgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuMCB1cGRhdGUKICAgICAgICBieQogICAgICAgIGVnbGkKICAgICAgICA6CiAgICAgICAgWzEuMF0gCiAgICAgICAgICAgIGluZGVudGluZyBmaXguCiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS4wIHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjAgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBlZ2xpCiAgICAgICAgOgogICAgICAgIFsxLjBdIAogICAgICAgICAgICBBZGRlZCBwcm92aXNpb25zIHNvIHRoYXQgdGhlIGNyZWF0ZSBwcm9jZXNzIG5vdyBjcmVhdGVzCmZpbGVzIHdpdGggYSBsYW5ndWFnZSBzdWZmaXggYWNjb3JkaW5nIHRvIHRoZSBsYW5ndWFnZS4KIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjAgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuMCB1cGRhdGUKICAgICAgICBieQogICAgICAgIGdyZWdvcgogICAgICAgIDoKICAgICAgICBbMS4wXSAKICAgICAgICAgICAgbm9kZSBpcyBuZWVkZWQgYWZ0ZXIgYWxsbAogRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuMCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS4wIHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgYW5kcmVhcwogICAgICAgIDoKICAgICAgICBbMS4wXSAKICAgICAgICAgICAgZ3JhbnRpbmcgYWNjZXNzIGZvciBsb2NhbGhvc3QKIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjAgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuMCB1cGRhdGUKICAgICAgICBieQogICAgICAgIGVnbGkKICAgICAgICA6CiAgICAgICAgWzEuMF0gCiAgICAgICAgICAgIEZpeGVkIGNoZWNrc3R5bGUgd2FybmluZ3MgYnkgcmVtb3ZpbmcgcmVkdW5kYW50ICJwdWJsaWMiIHN0YXRlbWVudHMuCiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS4wIHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjAgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBhbmRyZWFzCiAgICAgICAgOgogICAgICAgIFsxLjBdIAogICAgICAgICAgICAtIHJlbW92ZWQgZ3JvdXAgcm9sZXMKLSBhZGRlZCBsb2NhbGhvc3QgSVBSYW5nZQogRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuMCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS4wIHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgZWdsaQogICAgICAgIDoKICAgICAgICBbMS4wXSAKICAgICAgICAgICAgUmVtb3ZlZCB1bnVzZWQgaW1wb3J0cy4KIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjAgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuMCB1cGRhdGUKICAgICAgICBieQogICAgICAgIGFuZHJlYXMKICAgICAgICA6CiAgICAgICAgWzEuMF0gCiAgICAgICAgICAgIHVzaW5nIElQUmFuZ2UgaW5zdGVhZCBvZiBNYWNoaW5lCiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS4wIHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjAgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBncmVnb3IKICAgICAgICA6CiAgICAgICAgWzEuMF0gCiAgICAgICAgICAgIGFkZGVkIFJlZ2V4RmlsdGVyIHRvIGZpbHRlciBmaWxlcyBpbiBhIGRpcmVjdG9yeQppbXBsZW1lbnRlZCBsb29rdXAgZm9yIG90aGVyIGxhbmd1YWdlcyBpbiBpbmZvIHRhYgoKcmVmYWN0b3JlZCBwYWdlIGVudmVsb3BlIChyZW1vdmVkIHJlZHVuZGFudCBtZXRob2QgZGVmaW5pdGlvbnMpCnJlbmFtZWQgRG9jdW1lbnRVcmwgdG8gRG9jdW1lbnRVUkwKIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjAgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuMCB1cGRhdGUKICAgICAgICBieQogICAgICAgIGdyZWdvcgogICAgICAgIDoKICAgICAgICBbMS4wXSAKICAgICAgICAgICAgcmVtb3ZlZCBzdXBlcmZsb3VzIG1ldGF0YWdzCiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS4wIGFkZDwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjAgYWRkCiAgICAgICAgYnkKICAgICAgICBhbmRyZWFzCiAgICAgICAgOgogICAgICAgIFsxLjBdIAogICAgICAgICAgICAtIHJlbW92ZWQgb2xkIGFjY2VzcyBjb250cm9sIGFjdGlvbnMKLSBhZGRlZCBhYy54Y29uZiBhbmQgYXV0aG9yaW5nIHBvbGljeQoodXNpbmcgYWNjcmVkaXRhYmxlcyBmcm9tIGRlZmF1bHQgcHVibGljYXRpb24pCiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS4wIHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjAgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBncmVnb3IKICAgICAgICA6CiAgICAgICAgWzEuMF0gCiAgICAgICAgICAgIGJlZ2lubmluZyBvZiBsaW5rbWFuYWdlbWVudC4gYW50IHRhc2sgdG8gc2VhcmNoIC8gcmVwbGFjZQogRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuMCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS4wIHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgZ3JlZ29yCiAgICAgICAgOgogICAgICAgIFsxLjBdIAogICAgICAgICAgICBjbGVhbiB1cCBhbnQgdGFyZ2V0CiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS4wIHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjAgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBhbmRyZWFzCiAgICAgICAgOgogICAgICAgIFsxLjBdIAogICAgICAgICAgICBhZGRlZCB1c2VjYXNlIGF1dGhvcml6ZXIgY29uZmlndXJhdGlvbgogRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuMCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS4wIHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgYW5kcmVhcwogICAgICAgIDoKICAgICAgICBbMS4wXSAKICAgICAgICAgICAgc2hvd2luZyAiaWQgKG5hbWUpIiBmb3IgbWVtYmVycwogRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuMCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS4wIHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgYW5kcmVhcwogICAgICAgIDoKICAgICAgICBbMS4wXSAKICAgICAgICAgICAgLSB1c2VjYXNlYXV0aG9yaXplciBidWdmaXhlcwotIGFjY2Vzc2NvbnRyb2xsZXIgY29uZmlndXJlcyBhdXRob3JpemVycwogRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuMCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS4wIHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgYW5kcmVhcwogICAgICAgIDoKICAgICAgICBbMS4wXSAKICAgICAgICAgICAgdXNpbmcgZG9jdW1lbnRJZCB0byBzYXZlIHBvbGljeSBmaWxlCiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS4wIHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjAgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBhbmRyZWFzCiAgICAgICAgOgogICAgICAgIFsxLjBdIAogICAgICAgICAgICBzZXBhcmF0ZWQgdGVtcGxhdGVzIGZvciB1c2VycyArIG1hY2hpbmVzCiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS4wIHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjAgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBhbmRyZWFzCiAgICAgICAgOgogICAgICAgIFsxLjBdIAogICAgICAgICAgICBub3QgdXNpbmcgQGhyZWYgYXMgYmFzZS11cmwgZm9yIGNoaWxkcmVuCiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS4wIHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjAgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBlZGl0aAogICAgICAgIDoKICAgICAgICBbMS4wXSAKICAgICAgICAgICAgZ2V0IHRoZSBkb2N0eXBlIGZvciBjb3B5aW5nCiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS4wIHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjAgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBhbmRyZWFzCiAgICAgICAgOgogICAgICAgIFsxLjBdIAogICAgICAgICAgICB1c2luZyBocmVmIGF0dHJpYnV0ZXMgdG8gYXZvaWQgbGFuZ3VhZ2UgcHJvYmxlbQogRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuMCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS4wIHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgZWRpdGgKICAgICAgICA6CiAgICAgICAgWzEuMF0gCiAgICAgICAgICAgIGdldCB0aGUgZG9jdHlwZQogRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuMCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS4wIHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgZWRpdGgKICAgICAgICA6CiAgICAgICAgWzEuMF0gCiAgICAgICAgICAgIGdldCB0aGUgYXJlYSBwYXJhbWV0ZXIgdG8gY2FsbCB0aGUgc2FtZSBhbnQgdGFzayBsaWtlIGZvciBtb3ZpbmcKIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjAgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuMCB1cGRhdGUKICAgICAgICBieQogICAgICAgIGVkaXRoCiAgICAgICAgOgogICAgICAgIFsxLjBdIAogICAgICAgICAgICBOZXcgcGF0aCBmb3IgdGhlIHdvcmtmbG93IGhpc3RvcnkgZmlsZXMKIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjAgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuMCB1cGRhdGUKICAgICAgICBieQogICAgICAgIGVkaXRoCiAgICAgICAgOgogICAgICAgIFsxLjBdIAogICAgICAgICAgICBXcml0ZSBpbiB0aGUgd29ya2Zsb3cgaGlzdG9yeSBiZWZvcmUgdGhlIHRyYW5zYWN0aW9uIGlzIGZpbmlzaGVkCiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS4wIHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjAgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBlZGl0aAogICAgICAgIDoKICAgICAgICBbMS4wXSAKICAgICAgICAgICAgZ2l2ZSB0aGUgcGFydCBvZiBkaXJlY3RvcnkgZnJvbSB0aGUgcHViCk5vIHRpbWUgdG8gZml4IGl0IHRvdGFsbHkgOiBKYXZhIGRvY3MsIGFyZWEgaXMgbm8gbW9yZSBuZWVkZWQgLCAuLi4uCiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS4wIHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjAgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBhbmRyZWFzCiAgICAgICAgOgogICAgICAgIFsxLjBdIAogICAgICAgICAgICBjaGFuZ2VkICJNYWNoaW5lcyIgdG8gIklQIHJhbmdlcyIKIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjAgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuMCB1cGRhdGUKICAgICAgICBieQogICAgICAgIGFuZHJlYXMKICAgICAgICA6CiAgICAgICAgWzEuMF0gCiAgICAgICAgICAgIG1vdmVkIG1hY2hpbmUgc2V0dXAgdG8gYWNjZXNzIGNvbnRyb2xsZXIKIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjAgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuMCB1cGRhdGUKICAgICAgICBieQogICAgICAgIGFuZHJlYXMKICAgICAgICA6CiAgICAgICAgWzEuMF0gCiAgICAgICAgICAgIHNlcGFyYXRlIHRlbXBsYXRlIGZvciBncm91cCBib3gKIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjAgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuMCB1cGRhdGUKICAgICAgICBieQogICAgICAgIGFuZHJlYXMKICAgICAgICA6CiAgICAgICAgWzEuMF0gCiAgICAgICAgICAgIGRpc2FibGluZyAiYWRkIiBidXR0b24gaWYgc2VsZWN0aW9uIGJveCBpcyBlbXB0eQogRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuMCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS4wIHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgYW5kcmVhcwogICAgICAgIDoKICAgICAgICBbMS4wXSAKICAgICAgICAgICAgZml4ZWQgSVAgcmFuZ2UgSUQgZm9yd2FyZGluZwogRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuMCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS4wIHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgZ3JlZ29yCiAgICAgICAgOgogICAgICAgIFsxLjBdIAogICAgICAgICAgICBjaGFuZ2UgZGVmYXVsdCBsYW5ndWFnZSB0byBnZXJtYW4gZm9yIG5vdwogRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuMCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS4wIHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgbWljaGkKICAgICAgICA6CiAgICAgICAgWzEuMF0gCiAgICAgICAgICAgIGRlZmF1bHQgbGFuZ3VhZ2UgY2hhbmdlZAogRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuMCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS4wIHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgYW5kcmVhcwogICAgICAgIDoKICAgICAgICBbMS4wXSAKICAgICAgICAgICAgdXNpbmcgb3JpZ2luYWwgVVJMIGFzIGRvY3VtZW50LXVybAogRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuMCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS4wIHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgZ3JlZ29yCiAgICAgICAgOgogICAgICAgIFsxLjBdIAogICAgICAgICAgICBhZGQgeG1sOmxhbmcgdG8gYWRtaW4gc2l0ZXRyZWUKIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjAgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuMCB1cGRhdGUKICAgICAgICBieQogICAgICAgIGdyZWdvcgogICAgICAgIDoKICAgICAgICBbMS4wXSAKICAgICAgICAgICAgZGlzYWJsZSBzb21lIG9mIHRoZSBub3QgeWV0IGZpbmlzaGVkIHRhYnMuIGF0IHNvbWUgbGF0ZXIgZGF0ZSwgdGhlICMgb2YgdGFicyBzaG91bGQgYmUgbWFkZSBpbnRvIGFuIGFyZ3VtZW50LCBub3QgaGFyZGNvZGVkIGludG8gdGhpcyBmaWxlLi4KIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjAgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuMCB1cGRhdGUKICAgICAgICBieQogICAgICAgIGdyZWdvcgogICAgICAgIDoKICAgICAgICBbMS4wXSAKICAgICAgICAgICAgYWRkIG1pc3NpbmcgZG9jdW1lbnQtdXJsIHRvIGFkbWluIGFyZWEgbWVudQogRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuMCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS4wIHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgZ3JlZ29yCiAgICAgICAgOgogICAgICAgIFsxLjBdIAogICAgICAgICAgICBkaXNwbGF5IHByb3BlciBsYWJlbCBpbiB0YWJzLCBicmVhZGNydW1icyBkZXBlbmRpbmcgb24gbGFuZ3VhZ2UKIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjAgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuMCB1cGRhdGUKICAgICAgICBieQogICAgICAgIGFuZHJlYXMKICAgICAgICA6CiAgICAgICAgWzEuMF0gCiAgICAgICAgICAgIGFkZGVkIExEQVAgSUQgaGFuZGxpbmcKIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjAgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuMCB1cGRhdGUKICAgICAgICBieQogICAgICAgIGFuZHJlYXMKICAgICAgICA6CiAgICAgICAgWzEuMF0gCiAgICAgICAgICAgIHVzaW5nIGRvY3VtZW50LXBhdGggaW5zdGVhZCBvZiBkb2N1bWVudC1pZCBmb3Igc291cmNldHlwZSBhY3Rpb24KIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjAgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuMCB1cGRhdGUKICAgICAgICBieQogICAgICAgIGFuZHJlYXMKICAgICAgICA6CiAgICAgICAgWzEuMF0gCiAgICAgICAgICAgIGFkZGVkIFVzZWNhc2VBdXRob3JpemVyIHJvbGUKIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjAgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuMCB1cGRhdGUKICAgICAgICBieQogICAgICAgIGFuZHJlYXMKICAgICAgICA6CiAgICAgICAgWzEuMF0gCiAgICAgICAgICAgIHVzaW5nIGFjLk1hY2hpbmUgaW5zdGVhZCBvZiBhYzIuTWFjaGluZQogRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuMCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS4wIHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgYW5kcmVhcwogICAgICAgIDoKICAgICAgICBbMS4wXSAKICAgICAgICAgICAgaW1wbGVtZW50ZWQgYXV0aG9yaXplKCkgbWV0aG9kCiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS4wIHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjAgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBhbmRyZWFzCiAgICAgICAgOgogICAgICAgIFsxLjBdIAogICAgICAgICAgICBhdXRob3JpemluZyBtYWNoaW5lCiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS4wIHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjAgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBhbmRyZWFzCiAgICAgICAgOgogICAgICAgIFsxLjBdIAogICAgICAgICAgICBhZGRlZCBnZXRNYWNoaW5lKCkgbWV0aG9kCiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS4wIHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjAgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBhbmRyZWFzCiAgICAgICAgOgogICAgICAgIFsxLjBdIAogICAgICAgICAgICByZW1vdmVkIGFjMi5NYWNoaW5lCmFkZGVkIElQUmFuZ2UgaGFuZGxpbmcgdG8gYWMuTWFjaGluZQogRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuMCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS4wIHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgYW5kcmVhcwogICAgICAgIDoKICAgICAgICBbMS4wXSAKICAgICAgICAgICAgZG9uJ3QgaW5oZXJpdCBmcm9tIFBvbGljeUF1dGhvcml6ZXIKIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjAgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuMCB1cGRhdGUKICAgICAgICBieQogICAgICAgIGFuZHJlYXMKICAgICAgICA6CiAgICAgICAgWzEuMF0gCiAgICAgICAgICAgIGdldHRpbmcgcm9sZXMgZnJvbSByZXF1ZXN0IGluc3RlYWQgb2YgZnJvbSBzZXNzaW9uCiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS4wIHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjAgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBhbmRyZWFzCiAgICAgICAgOgogICAgICAgIFsxLjBdIAogICAgICAgICAgICB1c2luZyBkZWZhdWx0IGxhbmd1YWdlIGZvciBkb2N1bWVudCBpZiBVUkkgY29udGFpbnMgbm8gbGFuZ3VhZ2UKIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjAgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuMCB1cGRhdGUKICAgICAgICBieQogICAgICAgIGdyZWdvcgogICAgICAgIDoKICAgICAgICBbMS4wXSAKICAgICAgICAgICAgZml4ZWQgbWVudSB1cmxzCiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS4wIHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjAgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBncmVnb3IKICAgICAgICA6CiAgICAgICAgWzEuMF0gCiAgICAgICAgICAgIGFkYXB0ZWQgc2l0ZXRyZWUgdG8gc2hvdyBsYW5ndWFnZSBmYWxsYmFjayBmb3IgdGhlIGNvbmNlcHQgbm9kZQogRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuMCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS4wIHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgZ3JlZ29yCiAgICAgICAgOgogICAgICAgIFsxLjBdIAogICAgICAgICAgICBmaXhlZCBEVEQgZGVjbGFyYXRpb24KIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjAgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuMCB1cGRhdGUKICAgICAgICBieQogICAgICAgIGdyZWdvcgogICAgICAgIDoKICAgICAgICBbMS4wXSAKICAgICAgICAgICAgbWFkZSByZXZpc2lvbnMgd29yayBmb3IgaW5mbyBhcmVhIHRhYnMKZml4ZWQgc2l0ZXRyZWUybmF2LnhzbCB0byB0YWtlIHRoZSBjb3JyZWN0IHhtbDpsYW5nIHZhbHVlcyBpbnRvIGFjY291bnQKYWRkZWQgbmV3IGNvbnN0cnVjdG9yIHRvIERlZmF1bHREb2N1bWVudCB0byBjb3JyZWN0bHkgcGFzcyBsYW5ndWFnZSBhdCBjcmVhdGlvbiB0aW1lCgpkaXNhYmxlZCB1bmZpbmlzaGVkIHRhYnMKIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjAgYWRkPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuMCBhZGQKICAgICAgICBieQogICAgICAgIGdyZWdvcgogICAgICAgIDoKICAgICAgICBbMS4wXSAKICAgICAgICAgICAgYWRkZWQgZ2VybWFuIHNhbXBsZSBkb2N1bWVudHMKIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjAgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuMCB1cGRhdGUKICAgICAgICBieQogICAgICAgIGdyZWdvcgogICAgICAgIDoKICAgICAgICBbMS4wXSAKICAgICAgICAgICAgdGhhdCBtYWRlIGl0IG11Y2ggd29yc2UuIHJldmVydGVkLiB0aGlzIGNvZGUgc2hvdWxkIGJlIHRha2VuIGJlaGluZCB0aGUgYmFybiBhbmQgc2hvdAogRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuMCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS4wIHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgZWRpdGgKICAgICAgICA6CiAgICAgICAgWzEuMF0gCiAgICAgICAgICAgIHRoZSBtb3ZlIGFudCB0YXNrIHJlcXVpcmVzIHR3byB0cmVlcywgd2hpY2ggY2FuIGJlbG9uZyB0byBkaWZmZXJlbnQgYXJlYXMKIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjAgYWRkPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuMCBhZGQKICAgICAgICBieQogICAgICAgIGVkaXRoCiAgICAgICAgOgogICAgICAgIFsxLjBdIAogICAgICAgICAgICBhbnQgdGFzayB0byBzZXQgaW4gdGhlIHByb2plY3QgdGhlIGFyZWEgcHJvcGVydGllcyBkZXBlbmRlbnQgb2YgdGhlIGFyZWEKIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjAgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuMCB1cGRhdGUKICAgICAgICBieQogICAgICAgIGdyZWdvcgogICAgICAgIDoKICAgICAgICBbMS4wXSAKICAgICAgICAgICAgc29tZXdoZXJlIGluIHRoZSBsaXphcmQgYnJhaW4gb2YgbGVueWEsIGl0IGtlZXBzIGFjY2Vzc2luZyB0aGlzIGZpbGUuLiB1bmNvbW1lbnRlZCBhIGxpbmUgc28gdGhhdCBpdCBkb2VzbnQgc2hvd2VyIGxvZzRqLmxvZyB3aXRoIGNyYXAKIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjAgcmVtb3ZlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuMCByZW1vdmUKICAgICAgICBieQogICAgICAgIGdyZWdvcgogICAgICAgIDoKICAgICAgICBbMS4wXSAKICAgICAgICAgICAgYWRkZWQgbGFuZ3VhZ2UgbGFiZWwgdG8gYWxsIGRvY3VtZW50cwphZGRlZCBhcmNoaXZlIGFuZCB0cmFzaCBhcmVhcyAvIHNpdGV0cmVlcwogRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuMCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS4wIHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgZ3JlZ29yCiAgICAgICAgOgogICAgICAgIFsxLjBdIAogICAgICAgICAgICBhZGQgZGVsZXRlIHRyYXNoIGZ1bmN0aW9uIHRvIGFkbWluIGFyZWEgKG5lZWRzIHRvIGJlIGhvb2tlZCB1cCBzdGlsbCkKIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjAgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuMCB1cGRhdGUKICAgICAgICBieQogICAgICAgIGdyZWdvcgogICAgICAgIDoKICAgICAgICBbMS4wXSAKICAgICAgICAgICAgYWRkIGxlbnlhLmFyZWEgdG8gaW5kaWNhdGUgdGhlIGFyZWEgb2YgYW4gaXRlbSBpbiB0aGUgc2l0ZXRyZWUKIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjAgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuMCB1cGRhdGUKICAgICAgICBieQogICAgICAgIGdyZWdvcgogICAgICAgIDoKICAgICAgICBbMS4wXSAKICAgICAgICAgICAgaW5jcmVhc2UgZnJlZSBtZW1vcnkgZGlyZWN0aXZlIHRvIHByZXZlbnQgb3V0IG9mIG1lbW9yeSBlcnJvcnMKIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjAgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuMCB1cGRhdGUKICAgICAgICBieQogICAgICAgIGVkaXRoCiAgICAgICAgOgogICAgICAgIFsxLjBdIAogICAgICAgICAgICBSZXByZXNlbnRhdGlvbiBvZiB0aGUgYXJjaGl2ZSBhbmQgdHJhc2ggdHJlZSBvbiBpbmZvIHBhZ2UKIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjAgcmVtb3ZlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuMCByZW1vdmUKICAgICAgICBieQogICAgICAgIGVkaXRoCiAgICAgICAgOgogICAgICAgIFsxLjBdIAogICAgICAgICAgICBjaGFuZ2UgbmFtZQogRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuMCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS4wIHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgbWljaGkKICAgICAgICA6CiAgICAgICAgWzEuMF0gCiAgICAgICAgICAgIFJFQURNRSBjb3B5IGZpeGVkCiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS4wIHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjAgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBtaWNoaQogICAgICAgIDoKICAgICAgICBbMS4wXSAKICAgICAgICAgICAgc2Vzc2lvbiBOdWxsUG9pbnRlckV4Y2VwdGlvbiBmaXhlZAogRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuMCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS4wIHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgYW5kcmVhcwogICAgICAgIDoKICAgICAgICBbMS4wXSAKICAgICAgICAgICAgZml4ZWQgc2l0ZXRyZWUgbGlua3MgKHVzaW5nIHNpdGV0cmVlMm5hdi54c2wpCiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS4wIGFkZDwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjAgYWRkCiAgICAgICAgYnkKICAgICAgICBlZGl0aAogICAgICAgIDoKICAgICAgICBbMS4wXSAKICAgICAgICAgICAgVGFzayBkZWxldGUgVHJhc2gKIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjAgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuMCB1cGRhdGUKICAgICAgICBieQogICAgICAgIGVkaXRoCiAgICAgICAgOgogICAgICAgIFsxLjBdIAogICAgICAgICAgICBUaGUgcGFyYW1ldGVyIGRvY3VtZW50LWlkIGlzIGdldCBmcm9tIHRoZSBzZXNzaW9uIChmb3IgY29weSwgbW92ZSAsLi4pCmNhbGwgb2YgdGhlIHRhc2sgZGVsZXRlRG9jdW1lbnQgIApjYWxsIG9mIHRoZSB0YXNrIGRlbGV0ZVRyYXNoCiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS4wIHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjAgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBlZGl0aAogICAgICAgIDoKICAgICAgICBbMS4wXSAKICAgICAgICAgICAgZml4IHRoZSBjb3B5IHRhc2sgCmNhbGwgdGhlIG1vdmUgdGFzayB3aXRoIHR3byBkaWZmZXJlbnQgdHJlZXMKIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjAgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuMCB1cGRhdGUKICAgICAgICBieQogICAgICAgIGVkaXRoCiAgICAgICAgOgogICAgICAgIFsxLjBdIAogICAgICAgICAgICBpbnNlcnQgb2YgdGFzayByZW5hbWUgRG9jdW1lbnQKIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjAgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuMCB1cGRhdGUKICAgICAgICBieQogICAgICAgIGVkaXRoCiAgICAgICAgOgogICAgICAgIFsxLjBdIAogICAgICAgICAgICBnZXQgcGFyYW1ldGVyIGRvY3VtZW50LWlkIGZyb20gdGhlIHNlc3Npb24gaW5zdGVhZCBmcm9tIGEgY29va2llCiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS4wIHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjAgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBlZGl0aAogICAgICAgIDoKICAgICAgICBbMS4wXSAKICAgICAgICAgICAgRGVsZXRlIERvY3VtZW50IFRhc2sKIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjAgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuMCB1cGRhdGUKICAgICAgICBieQogICAgICAgIGVkaXRoCiAgICAgICAgOgogICAgICAgIFsxLjBdIAogICAgICAgICAgICBjYWxsIG9mIG1ldGhvZCBpbXBvcnRTdWJ0cmVlIHRvIGNvcHkgYSBub2RlIGFuZCBpdHMgY2hpbGRyZW4KIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjAgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuMCB1cGRhdGUKICAgICAgICBieQogICAgICAgIG1pY2hpCiAgICAgICAgOgogICAgICAgIFsxLjBdIAogICAgICAgICAgICB0Y3Btb24gZG9jdW1lbnRhdGlvbiBpbXByb3ZlZAogRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuMCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS4wIHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgZ3JlZ29yCiAgICAgICAgOgogICAgICAgIFsxLjBdIAogICAgICAgICAgICB0eXBvIGZpeGVzCiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS4wIHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjAgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBncmVnb3IKICAgICAgICA6CiAgICAgICAgWzEuMF0gCiAgICAgICAgICAgIHR5cG8gZml4ZXMKIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjAgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuMCB1cGRhdGUKICAgICAgICBieQogICAgICAgIGdyZWdvcgogICAgICAgIDoKICAgICAgICBbMS4wXSAKICAgICAgICAgICAgc3RhcnRlZCB0byBmYWN0b3Igb3V0IHJjIHVuaXQgdGVzdHMKIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjAgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuMCB1cGRhdGUKICAgICAgICBieQogICAgICAgIG1pY2hpCiAgICAgICAgOgogICAgICAgIFsxLjBdIAogICAgICAgICAgICBPU0NPTSBpbmZvIGFuZCBhZG1pbiBhcmVhIHByb3RlY3RlZAogRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuMCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS4wIHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgbWljaGkKICAgICAgICA6CiAgICAgICAgWzEuMF0gCiAgICAgICAgICAgIFVua25vd24gUHVibGljYXRpb24gcmVtb3ZlZAogRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuMCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS4wIHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgbWljaGkKICAgICAgICA6CiAgICAgICAgWzEuMF0gCiAgICAgICAgICAgIGxvZ2ljc2hlZXQgdG8gaW5mbyBtZW51IGFkZGVkCiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS4wIHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjAgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBtaWNoaQogICAgICAgIDoKICAgICAgICBbMS4wXSAKICAgICAgICAgICAgc2VydmxldF9jb250ZXh0X3BhdGggZml4ZWQKIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjAgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuMCB1cGRhdGUKICAgICAgICBieQogICAgICAgIGVkaXRoCiAgICAgICAgOgogICAgICAgIFsxLjBdIAogICAgICAgICAgICBjYWxsIG9mIGFudCB0YXNrIGFyY2hpdmUKIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjAgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuMCB1cGRhdGUKICAgICAgICBieQogICAgICAgIGVkaXRoCiAgICAgICAgOgogICAgICAgIFsxLjBdIAogICAgICAgICAgICAqKiogZW1wdHkgbG9nIG1lc3NhZ2UgKioqCiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS4wIHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjAgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBlZGl0aAogICAgICAgIDoKICAgICAgICBbMS4wXSAKICAgICAgICAgICAgYXJjaGl2aW5nIHdvcmtzCiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS4wIHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjAgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBlZGl0aAogICAgICAgIDoKICAgICAgICBbMS4wXSAKICAgICAgICAgICAgSnVuaXQgdGVzdCBjYXNlIGZvciBhcmNoaXZpbmcKIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjAgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuMCB1cGRhdGUKICAgICAgICBieQogICAgICAgIGVkaXRoCiAgICAgICAgOgogICAgICAgIFsxLjBdIAogICAgICAgICAgICBtZXRob2QgZ2V0Q2hpbGRyZW4oKQogRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuMCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS4wIHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgZWRpdGgKICAgICAgICA6CiAgICAgICAgWzEuMF0gCiAgICAgICAgICAgIG1ldGhvZCBpbXBvcnRTdWJ0cmVlCiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS4wIGFkZDwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjAgYWRkCiAgICAgICAgYnkKICAgICAgICBlZGl0aAogICAgICAgIDoKICAgICAgICBbMS4wXSAKICAgICAgICAgICAgY29tcHV0ZSB0aGUgaWQgZm9yIHRoZSBkZXN0aW5hdGlvbiBub2RlIGluIGNhc2Ugb2YgYXJjaGl2aW5nCiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS4wIHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjAgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBlZGl0aAogICAgICAgIDoKICAgICAgICBbMS4wXSAKICAgICAgICAgICAgQ2hhbmdlIEZpbGUuc2VwYXJhdG9yIGludG8gLwogRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuMCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS4wIHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgZWRpdGgKICAgICAgICA6CiAgICAgICAgWzEuMF0gCiAgICAgICAgICAgIEludHJvZHVjdGlvbiBvZiBhIHNlY29uZCB0cmVlIChleCBhcmNoaXYpCiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS4wIHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjAgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBtaWNoaQogICAgICAgIDoKICAgICAgICBbMS4wXSAKICAgICAgICAgICAgc3RhdHVzIGFkZGVkCiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS4wIHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjAgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBtaWNoaQogICAgICAgIDoKICAgICAgICBbMS4wXSAKICAgICAgICAgICAgUHVibGlzaGluZyBmaXhlZAogRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuMCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS4wIHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgZ3JlZ29yCiAgICAgICAgOgogICAgICAgIFsxLjBdIAogICAgICAgICAgICBhZGRlZCBhYnN0cmFjdCB0byBwYWdlIGVudmVsb3BlIGFuZCBpbmZvIGFyZWEKIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjAgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuMCB1cGRhdGUKICAgICAgICBieQogICAgICAgIGdyZWdvcgogICAgICAgIDoKICAgICAgICBbMS4wXSAKICAgICAgICAgICAgdXBkYXRlZCBzYW1wbGUgZG9jdW1lbnRzIHdpdGggREMgbWV0YWRhdGEKIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjAgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuMCB1cGRhdGUKICAgICAgICBieQogICAgICAgIG1pY2hpCiAgICAgICAgOgogICAgICAgIFsxLjBdIAogICAgICAgICAgICBEb2N1bWVudGF0aW9uIGxpbmtzIHVwZGF0ZWQKIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjAgYWRkPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuMCBhZGQKICAgICAgICBieQogICAgICAgIG1pY2hpCiAgICAgICAgOgogICAgICAgIFsxLjBdIAogICAgICAgICAgICBQb2xpY2llcyBmb3IgaW5mbyBhbmQgYWRtaW4gYXJlYSBhZGRlZAogRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuMCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS4wIHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgbWljaGkKICAgICAgICA6CiAgICAgICAgWzEuMF0gCiAgICAgICAgICAgIEF0b20vRWNobyBtYWlsaW5nIGxpc3QgYWRkZWQKIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjAgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuMCB1cGRhdGUKICAgICAgICBieQogICAgICAgIGdyZWdvcgogICAgICAgIDoKICAgICAgICBbMS4wXSAKICAgICAgICAgICAgc3RvcmUgZG9jdW1lbnQgaWQgaW4gc2Vzc2lvbiBmb3IgbGF0ZXIgcmV0cmlldmFsIGJ5IGluZm8gbWVudSBpdGVtcwogRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuMCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS4wIHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgbWljaGkKICAgICAgICA6CiAgICAgICAgWzEuMF0gCiAgICAgICAgICAgIGxpdmUgbGlua3MgZml4ZWQKIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjAgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuMCB1cGRhdGUKICAgICAgICBieQogICAgICAgIG1pY2hpCiAgICAgICAgOgogICAgICAgIFsxLjBdIAogICAgICAgICAgICBOdWxsUG9pbnRlckV4Y2VwdGlvbiBmaXhlZAogRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuMCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS4wIHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgYW5kcmVhcwogICAgICAgIDoKICAgICAgICBbMS4wXSAKICAgICAgICAgICAgYWRkZWQgcG9saWN5IEdVSQogRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuMCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS4wIHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgYW5kcmVhcwogICAgICAgIDoKICAgICAgICBbMS4wXSAKICAgICAgICAgICAgdW4tY29tbWVudGVkIG91dCBpbmZvIGFyZWEgdHJhbnNmb3JtYXRpb24KIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjAgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuMCB1cGRhdGUKICAgICAgICBieQogICAgICAgIGdyZWdvcgogICAgICAgIDoKICAgICAgICBbMS4wXSAKICAgICAgICAgICAgbWFkZSBvdmVydmlldyBhbmQgbWV0YSB0YWJzIGZ1bmN0aW9uYWwuIG5lZWQgdG8gZGVhbCB3aXRoIGVtcHR5IHZhbHVlcyBiZXR0ZXIuCiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS4wIHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjAgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBhbmRyZWFzCiAgICAgICAgOgogICAgICAgIFsxLjBdIAogICAgICAgICAgICBhZGRlZCBzb21lIGNsYXNzZXMgYW5kIG1ldGhvZHMgbmVlZGVkIGZvciBwb2xpY3kgR1VJCiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS4wIHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjAgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBtaWNoaQogICAgICAgIDoKICAgICAgICBbMS4wXSAKICAgICAgICAgICAgRmlsZSBtZW51IGl0ZW1zIHJlLWdyb3VwZWQKIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjAgYWRkPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuMCBhZGQKICAgICAgICBieQogICAgICAgIG1pY2hpCiAgICAgICAgOgogICAgICAgIFsxLjBdIAogICAgICAgICAgICBwb2xpY2llcyBmaXhlZAogRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuMCByZW1vdmU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS4wIHJlbW92ZQogICAgICAgIGJ5CiAgICAgICAgbWljaGkKICAgICAgICA6CiAgICAgICAgWzEuMF0gCiAgICAgICAgICAgIGRlcHJlY2F0ZWQKIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjAgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuMCB1cGRhdGUKICAgICAgICBieQogICAgICAgIG1pY2hpCiAgICAgICAgOgogICAgICAgIFsxLjBdIAogICAgICAgICAgICB0ZXN0aW5nIC4uLgogRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuMCBhZGQ8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS4wIGFkZAogICAgICAgIGJ5CiAgICAgICAgbWljaGkKICAgICAgICA6CiAgICAgICAgWzEuMF0gCiAgICAgICAgICAgIGNvbnRhaW5zIGltcGxlbWVudGVkCiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS4wIHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjAgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBtaWNoaQogICAgICAgIDoKICAgICAgICBbMS4wXSAKICAgICAgICAgICAgTm8gc3VjaCB1c2VyIGltcGxlbWVudGVkCiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS4wIHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjAgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBhbmRyZWFzCiAgICAgICAgOgogICAgICAgIFsxLjBdIAogICAgICAgICAgICBpbml0aWFsIGNoZWNraW4gb2YgcG9saWN5IEdVSQogRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuMCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS4wIHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgYW5kcmVhcwogICAgICAgIDoKICAgICAgICBbMS4wXSAKICAgICAgICAgICAgcmVhZGluZyBkb2N1bWVudCBmcm9tIGF1dGhvcmluZyBkaXJlY3RvcnkKIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjAgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuMCB1cGRhdGUKICAgICAgICBieQogICAgICAgIG1pY2hpCiAgICAgICAgOgogICAgICAgIFsxLjBdIAogICAgICAgICAgICBSb2xlcyByZW1vdmVkIGZyb20gZ3JvdXAKIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjAgYWRkPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuMCBhZGQKICAgICAgICBieQogICAgICAgIG1pY2hpCiAgICAgICAgOgogICAgICAgIFsxLjBdIAogICAgICAgICAgICBMb2dpbiBhbmQgTG9nb3V0IGluZm8KIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjAgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuMCB1cGRhdGUKICAgICAgICBieQogICAgICAgIG1pY2hpCiAgICAgICAgOgogICAgICAgIFsxLjBdIAogICAgICAgICAgICBVc2VyIEd1aWRlIGFkZGVkCiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS4wIHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjAgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBtaWNoaQogICAgICAgIDoKICAgICAgICBbMS4wXSAKICAgICAgICAgICAgTG9nb3V0IGxpbmsgZml4ZWQKIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjAgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuMCB1cGRhdGUKICAgICAgICBieQogICAgICAgIG1pY2hpCiAgICAgICAgOgogICAgICAgIFsxLjBdIAogICAgICAgICAgICBjbGFzc2VzIHJlbW92ZWQKIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjAgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuMCB1cGRhdGUKICAgICAgICBieQogICAgICAgIG1pY2hpCiAgICAgICAgOgogICAgICAgIFsxLjBdIAogICAgICAgICAgICBtb3JlIGRldGFpbHMgYWRkZWQKIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjAgcmVtb3ZlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuMCByZW1vdmUKICAgICAgICBieQogICAgICAgIG1pY2hpCiAgICAgICAgOgogICAgICAgIFsxLjBdIAogICAgICAgICAgICBub3QgbmVjZXNzYXJ5CiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS4wIHJlbW92ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjAgcmVtb3ZlCiAgICAgICAgYnkKICAgICAgICBtaWNoaQogICAgICAgIDoKICAgICAgICBbMS4wXSAKICAgICAgICAgICAgb2xkIHJlcGxhY2VkIGJ5IG5ldwogRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuMCBhZGQ8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS4wIGFkZAogICAgICAgIGJ5CiAgICAgICAgbWljaGkKICAgICAgICA6CiAgICAgICAgWzEuMF0gCiAgICAgICAgICAgIHBvbGljeSBmaXhlZAogRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuMCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS4wIHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgbWljaGkKICAgICAgICA6CiAgICAgICAgWzEuMF0gCiAgICAgICAgICAgIGxvZzRqIGNvbmZpZ3VyYWJsZQogRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuMCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS4wIHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgYW5kcmVhcwogICAgICAgIDoKICAgICAgICBbMS4wXSAKICAgICAgICAgICAgYWRkZWQgc2tlbGV0b24gZm9yIGlzVmFsaWRTdWJuZXQoKQogRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuMCBhZGQ8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS4wIGFkZAogICAgICAgIGJ5CiAgICAgICAgYW5kcmVhcwogICAgICAgIDoKICAgICAgICBbMS4wXSAKICAgICAgICAgICAgYWRkaW5nIHVzZWNhc2UgcG9saWN5IGZpbGUKIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjAgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuMCB1cGRhdGUKICAgICAgICBieQogICAgICAgIGFuZHJlYXMKICAgICAgICA6CiAgICAgICAgWzEuMF0gCiAgICAgICAgICAgIGFkZGVkIG5ldC1hZGRyZXNzICsgc3VibmV0LW1hc2sgZWRpdGluZwogRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuMCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS4wIHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgYW5kcmVhcwogICAgICAgIDoKICAgICAgICBbMS4wXSAKICAgICAgICAgICAgY29ycmVjdGVkIGRvY3VtZW50IHBhdGggaGFuZGxpbmcKIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjAgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuMCB1cGRhdGUKICAgICAgICBieQogICAgICAgIGFuZHJlYXMKICAgICAgICA6CiAgICAgICAgWzEuMF0gCiAgICAgICAgICAgIGV4dGVuZGVkIElQIHJhbmdlcwogRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuMCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS4wIHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgYW5kcmVhcwogICAgICAgIDoKICAgICAgICBbMS4wXSAKICAgICAgICAgICAgY29ycmVjdGVkIGluY29tcGF0aWJsZSBleGNlcHRpb25zCiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS4wIHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjAgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBtaWNoaQogICAgICAgIDoKICAgICAgICBbMS4wXSAKICAgICAgICAgICAgYWMyLklkZW50aXR5IGltcGxlbWVudGVkCiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS4wIHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjAgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBtaWNoaQogICAgICAgIDoKICAgICAgICBbMS4wXSAKICAgICAgICAgICAgYWMyLklkZW50aXR5IGltcGxlbWVudGVkCiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS4wIHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjAgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBncmVnb3IKICAgICAgICA6CiAgICAgICAgWzEuMF0gCiAgICAgICAgICAgIHVzZSBjYW5vbmljYWwgZHVibGluIGNvcmUgbmFtZXNwYWNlCiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS4wIHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjAgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBncmVnb3IKICAgICAgICA6CiAgICAgICAgWzEuMF0gCiAgICAgICAgICAgIC0gcGVyZm9ybWVkIG5hbWVzcGFjZSBzdXJnZXJ5CiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS4wIHJlbW92ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjAgcmVtb3ZlCiAgICAgICAgYnkKICAgICAgICBncmVnb3IKICAgICAgICA6CiAgICAgICAgWzEuMF0gCiAgICAgICAgICAgIHJlcGxhY2VkIGFudCAxLjUuMyB3aXRoIGFudCAxLjZhCiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS4wIGFkZDwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjAgYWRkCiAgICAgICAgYnkKICAgICAgICBncmVnb3IKICAgICAgICA6CiAgICAgICAgWzEuMF0gCiAgICAgICAgICAgIHNrZWxldG9uIGZvciBidWlsZGluZyB0aGUgY2F0YWxvZyBkdXJpbmcgaW5zdGFsbC4gbmVlZHMgdG8gYmUgYWRhcHRlZCB0byB4Y2F0CiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS4wIHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjAgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBncmVnb3IKICAgICAgICA6CiAgICAgICAgWzEuMF0gCiAgICAgICAgICAgIGJpbmFyeSB0byBhc2NpaQogRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuMCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS4wIHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgZ3JlZ29yCiAgICAgICAgOgogICAgICAgIFsxLjBdIAogICAgICAgICAgICAtIHBlcmZvcm1lZCBuYW1lc3BhY2Ugc3VyZ2VyeQotIGZpeGVkIGhlYWRlcnMgdG8gcmVwb3J0IGNvcnJlY3QgQ1ZTIElEIHRhZwotIHN0YXJ0ZWQgZHVibGluIGNvcmUgaW1wbGVtZW50YXRpb24KLSBmaXhlZCBicm9rZW4gbWF0Y2hlcnMgaW4gaW5mbyBzaXRlbWFwCiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS4wIHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjAgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBhbmRyZWFzCiAgICAgICAgOgogICAgICAgIFsxLjBdIAogICAgICAgICAgICBhZGRlZCBnZXREb2N1bWVudEZpbGUoKSB0byBwYWdlZW52ZWxvcGUgYW5kIC1tb2R1bGUKY2hhbmdlZCBnZXREb2N1bWVudFBhdGgoKSB0byBwYXRoIGluc3RlYWQgb2YgZmlsZQogRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuMCBhZGQ8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS4wIGFkZAogICAgICAgIGJ5CiAgICAgICAgZ3JlZ29yCiAgICAgICAgOgogICAgICAgIFsxLjBdIAogICAgICAgICAgICBhZG9wdGVkIGRvY3MtbmV3IHRvIG5ldyBhY2Nlc3MgY29udHJvbCBmcmFtZXdvcmsKIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjAgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuMCB1cGRhdGUKICAgICAgICBieQogICAgICAgIGFuZHJlYXMKICAgICAgICA6CiAgICAgICAgWzEuMF0gCiAgICAgICAgICAgIHJlZmluZWQgbG9nZ2VyCiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS4wIHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjAgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBhbmRyZWFzCiAgICAgICAgOgogICAgICAgIFsxLjBdIAogICAgICAgICAgICBhZGRlZCBJUCByYW5nZXMgKyBtYW5hZ2VtZW50CiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS4wIHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjAgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBlZGl0aAogICAgICAgIDoKICAgICAgICBbMS4wXSAKICAgICAgICAgICAgQ2FsbCBvZiB0aGUgYW50IFRhc2sgZm9yIGRlYWN0aXZhdGUgYSBkb2N1bWVudAogRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuMCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS4wIHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgZWRpdGgKICAgICAgICA6CiAgICAgICAgWzEuMF0gCiAgICAgICAgICAgIERlYWN0aXZhdGUgYSBkb2N1bWVudAogRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuMCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS4wIHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgZWRpdGgKICAgICAgICA6CiAgICAgICAgWzEuMF0gCiAgICAgICAgICAgIERlYWN0aXZhdGUgRG9jdW1lbnQgdGVzdAogRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuMCBhZGQ8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS4wIGFkZAogICAgICAgIGJ5CiAgICAgICAgZWRpdGgKICAgICAgICA6CiAgICAgICAgWzEuMF0gCiAgICAgICAgICAgIEp1bml0IHRlc3QgZm9yIHRoZSAiRGVhY3RpdmF0ZSBhIGRvY3VtZW50IiB0YXNrCiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS4wIGFkZDwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjAgYWRkCiAgICAgICAgYnkKICAgICAgICBlZGl0aAogICAgICAgIDoKICAgICAgICBbMS4wXSAKICAgICAgICAgICAgCkFudCB0YXNrIHRvIGRlbGV0ZSBhIG5vZGUgb2YgYSB0cmVlCiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS4wIGFkZDwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjAgYWRkCiAgICAgICAgYnkKICAgICAgICBncmVnb3IKICAgICAgICA6CiAgICAgICAgWzEuMF0gCiAgICAgICAgICAgIGFkZGVkIHB1YmxpY2F0aW9uLnhjb25mIHRvIHZhcmlvdXMgcHVibGljYXRpb25zIGFuZCByZW1vdmVkIHdvcmthcm91bmQgdG8gZ28gb24gZXZlbiBpZiB0aGVyZSB3YXMgbm8gcHVibGljYXRpb24ueGNvbmYKIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjAgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuMCB1cGRhdGUKICAgICAgICBieQogICAgICAgIG1pY2hpCiAgICAgICAgOgogICAgICAgIFsxLjBdIAogICAgICAgICAgICBlbmFibGUgdXBsb2FkcyBpbXBsZW1lbnRlZAogRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuMCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS4wIHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgbWljaGkKICAgICAgICA6CiAgICAgICAgWzEuMF0gCiAgICAgICAgICAgIGVuYWJsZSB1cGxvYWRzIG1hZGUgY29uZmlndXJhYmxlCiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS4wIHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjAgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBncmVnb3IKICAgICAgICA6CiAgICAgICAgWzEuMF0gCiAgICAgICAgICAgIGRlcHJlY2F0ZWQgc29tZSB4bWwgY2xhc3NlcwogRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuMCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS4wIHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgYW5kcmVhcwogICAgICAgIDoKICAgICAgICBbMS4wXSAKICAgICAgICAgICAgcmVtb3ZlZCB1bnVzZWQgaW1wb3J0cwogRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuMCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS4wIHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgYW5kcmVhcwogICAgICAgIDoKICAgICAgICBbMS4wXSAKICAgICAgICAgICAgYWRkZWQgLyBjb3JyZWN0ZWQgZGVsZXRlIG1ldGhvZHMKIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjAgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuMCB1cGRhdGUKICAgICAgICBieQogICAgICAgIGVkaXRoCiAgICAgICAgOgogICAgICAgIFsxLjBdIAogICAgICAgICAgICBQdWJsaWNhdGlvbiBnZXQgZnJvbSBwYWdlLWVudmVsb3BlIGlucHV0IG1vZHVsZQogRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuMCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS4wIHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgYW5kcmVhcwogICAgICAgIDoKICAgICAgICBbMS4wXSAKICAgICAgICAgICAgcmVtb3ZlZCBsZW55YS11dGlsIHVzYWdlCiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS4wIHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjAgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBhbmRyZWFzCiAgICAgICAgOgogICAgICAgIFsxLjBdIAogICAgICAgICAgICBmaXhlZCBnZXRVc2VyKCkgYnVnCiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS4wIHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjAgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBhbmRyZWFzCiAgICAgICAgOgogICAgICAgIFsxLjBdIAogICAgICAgICAgICBidWdmaXggZm9yIFdvcmtmbG93QXV0aG9yaXplciAtIGRvbid0IGNoZWNrIGF1dGhvcml6YXRpb24gaWYgdGhlIHVybCBkb2VzIG5vdApjb3JyZXNwb25kIHRvIGEgQ01TIGRvY3VtZW50CiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS4wIHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjAgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBhbmRyZWFzCiAgICAgICAgOgogICAgICAgIFsxLjBdIAogICAgICAgICAgICBhZGRlZCBjb250ZXh0IHBhdGggdG8gaGlzdG9yeSBVUkxzCiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS4wIHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjAgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBhbmRyZWFzCiAgICAgICAgOgogICAgICAgIFsxLjBdIAogICAgICAgICAgICB1c2luZyBsZW55YSBwYWdlIGZvciBsb2dvdXQgc2NyZWVuCiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS4wIHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjAgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBtaWNoaQogICAgICAgIDoKICAgICAgICBbMS4wXSAKICAgICAgICAgICAgbG9naW4gc2NyZWVuZWQgcHJldHRpZmllZAogRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuMCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS4wIHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgbWljaGkKICAgICAgICA6CiAgICAgICAgWzEuMF0gCiAgICAgICAgICAgIGN1cnJlbnQgdXNlcm5hbWUgZml4ZWQKIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjAgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuMCB1cGRhdGUKICAgICAgICBieQogICAgICAgIGFuZHJlYXMKICAgICAgICA6CiAgICAgICAgWzEuMF0gCiAgICAgICAgICAgIC0gcmVtb3ZlZCByZWZlcmVuY2UgdG8gYWMuSWRlbnRpdHkKLSByZW1vdmVkIGxlbnlhIHV0aWwgbG9naWNzaGVldAogRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuMCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS4wIHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgYW5kcmVhcwogICAgICAgIDoKICAgICAgICBbMS4wXSAKICAgICAgICAgICAgLSByZW1vdmVkIGZvcnJlc3QgcHVibGljYXRpb24gY2F0YWxvZyBlbnRyeQotIHVzaW5nIGRvY3MtbmV3IGNhdGFsb2cgd2l0aCByZWxhdGl2ZSBwYXRoCiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS4wIHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjAgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBhbmRyZWFzCiAgICAgICAgOgogICAgICAgIFsxLjBdIAogICAgICAgICAgICAtIHJlbW92ZWQgdW51c2VkIERlZmF1bHRBdXRoZW50aWNhdG9yQWN0aW9uCi0gbWFya2VkIG9sZCBhY2Nlc3MgY29udHJvbCBhY3Rpb25zIGFzIGRlcHJlY2F0ZWQKIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjAgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuMCB1cGRhdGUKICAgICAgICBieQogICAgICAgIGFuZHJlYXMKICAgICAgICA6CiAgICAgICAgWzEuMF0gCiAgICAgICAgICAgIHJlbW92ZWQgbGVueWEtdXRpbCB1c2FnZQogRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuMCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS4wIHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgYW5kcmVhcwogICAgICAgIDoKICAgICAgICBbMS4wXSAKICAgICAgICAgICAgcmVtb3ZlZCBwdWJsaWNhdGlvbi1pZCBwYXJhbWV0ZXIKIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjAgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuMCB1cGRhdGUKICAgICAgICBieQogICAgICAgIGFuZHJlYXMKICAgICAgICA6CiAgICAgICAgWzEuMF0gCiAgICAgICAgICAgIC0gaW50cm9kdWNpbmcgZ2xvYmFsIGFjY2VzcyBjb250cm9sIHNpdGVtYXAKLSByZWZsZWN0aW5nIGFjY2VzcyBjb250cm9sIGNoYW5nZXMgaW4gZGVmYXVsdCBhbmQgb3Njb20gcHVibGljYXRpb25zCiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS4wIHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjAgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBhbmRyZWFzCiAgICAgICAgOgogICAgICAgIFsxLjBdIAogICAgICAgICAgICByZWZsZWN0aW5nIGFjY2VzcyBjb250cm9sIGNoYW5nZXMKIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjAgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuMCB1cGRhdGUKICAgICAgICBieQogICAgICAgIGFuZHJlYXMKICAgICAgICA6CiAgICAgICAgWzEuMF0gCiAgICAgICAgICAgIGFkZGVkIHNvbWUgcmVhZERvY3VtZW50KC4uLikgbWV0aG9kcwogRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuMCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS4wIHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgYW5kcmVhcwogICAgICAgIDoKICAgICAgICBbMS4wXSAKICAgICAgICAgICAgLSByZWZhY3RvcmVkIHBvbGljeSBtYW5hZ2VyCi0gaW50cm9kdWNlZCBJbmhlcml0aW5nUG9saWN5TWFuYWdlcgotIHZhcmlvdXMgYnVnZml4ZXMKIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjAgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuMCB1cGRhdGUKICAgICAgICBieQogICAgICAgIGFuZHJlYXMKICAgICAgICA6CiAgICAgICAgWzEuMF0gCiAgICAgICAgICAgIHVzZXJuYW1lIC8gdXNlcmlkIGJ1Z2ZpeAogRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuMCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS4wIHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgZ3JlZ29yCiAgICAgICAgOgogICAgICAgIFsxLjBdIAogICAgICAgICAgICBsYXN0IG1vZGlmaWVkIGFkZGVkIHRvIHBhZ2UgZW52ZWxvcGUgYW5kIHRvIGRvY3VtZW50IGNsYXNzCiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS4wIHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjAgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBncmVnb3IKICAgICAgICA6CiAgICAgICAgWzEuMF0gCiAgICAgICAgICAgIGV4dGVuZCBwYWdlIGVudmVsb3BlIHdpdGggbWV0YWRhdGEKIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjAgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuMCB1cGRhdGUKICAgICAgICBieQogICAgICAgIGdyZWdvcgogICAgICAgIDoKICAgICAgICBbMS4wXSAKICAgICAgICAgICAgc3luY2hyb25pemUgbm9kZSBoaWdobGlnaHRpbmcgaW4gdHJlZSB3aWRnZXQgd2l0aCBVUkwKIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjAgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuMCB1cGRhdGUKICAgICAgICBieQogICAgICAgIGVnbGkKICAgICAgICA6CiAgICAgICAgWzEuMF0gCiAgICAgICAgICAgIEFkZGVkIGFuIGdldHRlciBtZXRob2QgdG8gZmV0Y2ggYWxsIGxhbmd1YWdlcyBmb3IgdGhpcwpwdWJsaWNhdGlvbi4KIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjAgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuMCB1cGRhdGUKICAgICAgICBieQogICAgICAgIGVnbGkKICAgICAgICA6CiAgICAgICAgWzEuMF0gCiAgICAgICAgICAgIFRoZSBjcmVhdG9yIGZvciB0aGUgZGVmYXVsdCBwdWJsaWNhdGlvbiBpcyBvYnZpb3VzbHkgbm90IHRoZSBVbmkKWnVlcmljaC4KIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjAgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuMCB1cGRhdGUKICAgICAgICBieQogICAgICAgIGVnbGkKICAgICAgICA6CiAgICAgICAgWzEuMF0gCiAgICAgICAgICAgIFRyYW5zZm9ybSB0aGUgZGF0YSBmcm9tIHRoZSB4c3AgcmVnYXJkaW5nIHRoZSBkdWJsaW4gY29yZQpmaWVsZHMuCiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS4wIHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjAgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBlZ2xpCiAgICAgICAgOgogICAgICAgIFsxLjBdIAogICAgICAgICAgICBGZXRjaCB0aGUgdXNlci1uYW1lIGluc3RlYWQgb2YgdGhlIHVzZXItaWQuCiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS4wIHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjAgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBlZ2xpCiAgICAgICAgOgogICAgICAgIFsxLjBdIAogICAgICAgICAgICBTZXQgdGhlIGRlZmF1bHQgbGFuZ3VhZ2UgdG8gImVuIi4KIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjAgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuMCB1cGRhdGUKICAgICAgICBieQogICAgICAgIGVnbGkKICAgICAgICA6CiAgICAgICAgWzEuMF0gCiAgICAgICAgICAgIFNpbmNlIGdldE5hbWUoKSByZXR1cm5zIHRoZSBzYW1lIGFzIGdldEZ1bGxOYW1lKCkgYW5kCmdldEZ1bGxOYW1lKCkgaGFzIGJlZW4gZGVwcmVjYXRlZCBpdCBpcyBubyBsb25nZXIgcmV0dXJuZWQKYnkgdGhlIGFjY2Vzcy1jb250cm9sIGlucHV0IG1vZHVsZQogRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuMCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS4wIHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgZWdsaQogICAgICAgIDoKICAgICAgICBbMS4wXSAKICAgICAgICAgICAgUmVtb3ZlZCBhbiB1bnVzZWQgaW1wb3J0LgogRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuMCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS4wIHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgZWdsaQogICAgICAgIDoKICAgICAgICBbMS4wXSAKICAgICAgICAgICAgU2luY2UgZ2V0RnVsbE5hbWUgc2ltcGx5IHJldHVybnMgZ2V0TmFtZSgpIHRoZSBnZXRGdWxsTmFtZQptZXRob2QgaGFzIGJlZW4gZGVwcmVjYXRlZCBpbiBmYXZvdXIgb2YgdGhlIGdldE5hbWUgbWV0aG9kLgpUaGlzIG9mIGNvdXJzZSBpbXBsaWVzIGNoYW5nZXMgaW4gdGhlIExEQVBVc2VyIHdoZXJlCmdldEZ1bGxuYW1lIHdhcyBvdmVyd3JpdHRlbiBhbmQgaW4gdGhlIHVuaXQgdGVzdCBjYXNlcy4KIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjAgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuMCB1cGRhdGUKICAgICAgICBieQogICAgICAgIGVnbGkKICAgICAgICA6CiAgICAgICAgWzEuMF0gCiAgICAgICAgICAgIERlcHJlY2F0ZWQgc2luY2UgYWxsIG9mIHRoaXMgY2FuIGJlIGRvbmUgYmV0dGVyIHdpdGgKamF2YS50ZXh0LkRhdGVGb3JtYXQgYW5kIGphdmEudGV4dC5TaW1wbGVEYXRlRm9ybWF0LgogRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuMCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS4wIHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgZWdsaQogICAgICAgIDoKICAgICAgICBbMS4wXSAKICAgICAgICAgICAgQWRkZWQgbW9yZSBmaWVsZHMgdG8gdGhlIG1vZHVsZSwgaS5lLiB1c2VyLW5hbWUsIHVzZXItZnVsbG5hbWUsCnVzZXItZW1haWwuCiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS4wIHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjAgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBlZ2xpCiAgICAgICAgOgogICAgICAgIFsxLjBdIAogICAgICAgICAgICBGaXhlZCBjaGVja3N0eWxlIHdhcm5pbmdzIGJ5IG1ha2luZyBpbnN0YW5jZSB2YXJzIHByaXZhdGUKYW5kIGFkZGluZyBwcm90ZWN0ZWQgZ2V0dGVycy4KIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjAgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuMCB1cGRhdGUKICAgICAgICBieQogICAgICAgIGVnbGkKICAgICAgICA6CiAgICAgICAgWzEuMF0gCiAgICAgICAgICAgIEFkZGVkIGphdmFkb2NzIHRvIGZpeCBjaGVja3N0eWxlIHdhcm5pbmdzLgogRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuMCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS4wIHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgZWdsaQogICAgICAgIDoKICAgICAgICBbMS4wXSAKICAgICAgICAgICAgVXNlIHRoZSBjcmVhdGUtd29ya2Zsb3cgdXNlY2FzZSBmb3IgY3JlYXRpbmcgZG9jdW1lbnRzLgogRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuMCBhZGQ8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS4wIGFkZAogICAgICAgIGJ5CiAgICAgICAgZWdsaQogICAgICAgIDoKICAgICAgICBbMS4wXSAKICAgICAgICAgICAgV2hlbiBvdmVycmlkaW5nIHhzbHRzIHRoYXQgYXJlIGRlZmluZWQgYWxzbyBnbG9iYWxseQp0aGUgb3ZlcnJpZGluZyBmaWxlcyBzaG91bGQgYmUgaW4Ke3B1YmxpY2F0aW9uLWlkfS9sZW55YS94c2x0Ly4uLgogRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuMCByZW1vdmU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS4wIHJlbW92ZQogICAgICAgIGJ5CiAgICAgICAgZWdsaQogICAgICAgIDoKICAgICAgICBbMS4wXSAKICAgICAgICAgICAgV2hlbiBvdmVycmlkaW5nIHNlcnZlcnBhZ2VzIHRoYXQgYXJlIGRlZmluZWQgYWxzbyBnbG9iYWxseQp0aGUgb3ZlcnJpZGluZyBmaWxlcyBzaG91bGQgYmUgaW4Ke3B1YmxpY2F0aW9uLWlkfS9sZW55YS9jb250ZW50Ly4uLgogRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuMCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS4wIHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgZWdsaQogICAgICAgIDoKICAgICAgICBbMS4wXSAKICAgICAgICAgICAgVGhlIHB1YmxpY2F0aW9uLXNwZWNpZmljIHNlcnZlcnBhZ2VzIHNob3VsZCBiZSBpbgpsZW55YS9wdWJzL3twdWJsaWNhdGlvbi1pZH0vbGVueWEvY29udGVudC97c2VydmVycGFnZX0uCiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS4wIHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjAgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBlZ2xpCiAgICAgICAgOgogICAgICAgIFsxLjBdIAogICAgICAgICAgICBSZW1vdmUgdGhlIGNyZWF0aW9uIG9mIGEgcHVibGljYXRpb24gKHdoaWNoIHdhcyB0aHJvd2luZwphIHVuY2F1Z2h0IGV4Y2VwdGlvbikgYmVjYXVzZSBpdCBpcyBuZXZlciB1c2VkIGFmdGVyLgogRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuMCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS4wIHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgZWdsaQogICAgICAgIDoKICAgICAgICBbMS4wXSAKICAgICAgICAgICAgQWRkZWQgYW4gaW5wdXQgbW9kdWxlIHRoYXQgYWxsb3dzIGFjY2VzcyB0byBhY2Nlc3MtY29udHJvbAppbmZvcm1hdGlvbiBzdWNoIGFzIHVzZXItaWQsIHVzZXItbmFtZSwgZXRjLgpDdXJyZW50bHkgaW1wbGVtZW50ZWQgaXMgdXNlci1pZC4KIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjAgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuMCB1cGRhdGUKICAgICAgICBieQogICAgICAgIGVnbGkKICAgICAgICA6CiAgICAgICAgWzEuMF0gCiAgICAgICAgICAgIEFkZGVkIGEgRklYTUU6IGNvbW1lbnQgdG8gc29tZSBjb2RlIHRoYXQgaXMgY29tbWVudGVkIG91dAppbnRlbnRpb25hbHkuCiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS4wIHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjAgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBhbmRyZWFzCiAgICAgICAgOgogICAgICAgIFsxLjBdIAogICAgICAgICAgICBjYXRjaGluZyBQdWJsaWNhdGlvbkV4Y2VwdGlvbgogRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuMCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS4wIHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgZ3JlZ29yCiAgICAgICAgOgogICAgICAgIFsxLjBdIAogICAgICAgICAgICBsb2FkIGluZm8gcGFuZSBjb25jdXJyZW50bHkgd2l0aCB0cmVlIHdpZGdldCB1cG9uIHBhZ2UgbG9hZAogRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuMCBhZGQ8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS4wIGFkZAogICAgICAgIGJ5CiAgICAgICAgZWdsaQogICAgICAgIDoKICAgICAgICBbMS4wXSAKICAgICAgICAgICAgQWRkZWQgYSBwdWJsaWNhdGlvbi54Y29uZi4KIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjAgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuMCB1cGRhdGUKICAgICAgICBieQogICAgICAgIGVnbGkKICAgICAgICA6CiAgICAgICAgWzEuMF0gCiAgICAgICAgICAgIEFkZGVkIGEgY29uc3RhbnQgdG8gcG9pbnQgdG8gdGhlIGNvbmZpZyBkaXJlY3RvcnkKRml4ZWQgYSBidWcgd2l0aCByZWFkaW5nIHRoZSBkZWZhdWx0IGxhbmd1YWdlIGZyb20gdGhlIGNvbmZpZy4KIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjAgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuMCB1cGRhdGUKICAgICAgICBieQogICAgICAgIGVnbGkKICAgICAgICA6CiAgICAgICAgWzEuMF0gCiAgICAgICAgICAgIEFkZGVkIGEgRklYTUU6IGNvbW1lbnQgYWJvdXQgdGhlIGZhY3QgdGhhdCB0aGUgaW5pdAptZXRob2QgY291bGQgYmUgbW92ZWQgYmFjayB0byB0aGUgY29uc3RydWN0b3IgaWYgdGhlCmRlcHJlY2F0ZWQgbWV0aG9kIHdhcyByZW1vdmVkLgogRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuMCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS4wIHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgZWdsaQogICAgICAgIDoKICAgICAgICBbMS4wXSAKICAgICAgICAgICAgVGhlIHB1YmxpY2F0aW9uIG5vdyAob3B0aW9uYWxseSBmb3IgYmFja3dhcmRzIGNvbXBhdGliaWxpdHkpCmxvb2tzIGZvciBhIGNvbmZpZyBmaWxlIG5hbWVkIHB1YmxpY2F0aW9uLnhjb25mIGFuZCBmZXRjaGVzCnRoZSBsYW5ndWFnZXMsIHRoZSBkZWZhdWx0IGxhbmd1YWdlIGFuZCB0aGUgRG9jdW1lbnRUb1BhdGhNYXBwZXIKZnJvbSBpdC4KClNpbmNlIHRoZSBDb25zdHJ1Y3RvciBvZiBQdWJsaWNhdGlvbiBjYW4gdGhyb3cgYW4gUHVibGljYXRpb25FeGNlcHRpb24Kbm93IGEgbG90IG9mIGZpbGVzIGhhdmUgdG8gYmUgYWRhcHRlZC4KCkluIG9yZGVyIHRvIGhhbmRsZSB0aGF0IHRoZSBjb25zdHJ1Y3RvciBmdW5jdGlvbmFsaXR5IG5lZWRlZCB0byBiZQpmYWN0b3JlZCBvdXQgaW50byB0aGUgaW5pdCBtZXRob2QuCgpUaGlzIGlzIHBvc3NpYmx5IG5vdCBuZWVkZWQgYW55bW9yZSBpZiB0aGUgZGVwcmVjYXRlZCBjb25zdHJ1Y3RvcgppcyByZW1vdmVkLgogRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuMCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS4wIHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgZWdsaQogICAgICAgIDoKICAgICAgICBbMS4wXSAKICAgICAgICAgICAgVGhlIHB1YmxpY2F0aW9uIG5vdyAob3B0aW9uYWxseSBmb3IgYmFja3dhcmRzIGNvbXBhdGliaWxpdHkpCmxvb2tzIGZvciBhIGNvbmZpZyBmaWxlIG5hbWVkIHB1YmxpY2F0aW9uLnhjb25mIGFuZCBmZXRjaGVzCnRoZSBsYW5ndWFnZXMsIHRoZSBkZWZhdWx0IGxhbmd1YWdlIGFuZCB0aGUgRG9jdW1lbnRUb1BhdGhNYXBwZXIKZnJvbSBpdC4KClNpbmNlIHRoZSBDb25zdHJ1Y3RvciBvZiBQdWJsaWNhdGlvbiBjYW4gdGhyb3cgYW4gUHVibGljYXRpb25FeGNlcHRpb24Kbm93IGEgbG90IG9mIGZpbGVzIGhhdmUgdG8gYmUgYWRhcHRlZC4KIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjAgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuMCB1cGRhdGUKICAgICAgICBieQogICAgICAgIGVnbGkKICAgICAgICA6CiAgICAgICAgWzEuMF0gCiAgICAgICAgICAgIEZpeGVkIGEgdHlwby4KIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjAgYWRkPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuMCBhZGQKICAgICAgICBieQogICAgICAgIGFuZHJlYXMKICAgICAgICA6CiAgICAgICAgWzEuMF0gCiAgICAgICAgICAgIGFkZGVkIGV4Y2FsaWJ1ciB0ZXN0IGxpYnJhcnkKIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjAgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuMCB1cGRhdGUKICAgICAgICBieQogICAgICAgIGVnbGkKICAgICAgICA6CiAgICAgICAgWzEuMF0gCiAgICAgICAgICAgIEVuaGFuY2VkIHRoZSBjcmVhdG9yIHRvb2wgY2hhaW4gKGphdmEsIHhzcCBhbmQgeHNsdCkgdG8KYmUgYWJsZSB0byBoYW5kbGUgbXVsdGktbGluZ3VhbCBjcmVhdGVzLgogRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuMCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS4wIHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgYW5kcmVhcwogICAgICAgIDoKICAgICAgICBbMS4wXSAKICAgICAgICAgICAgYWRkZWQgamF2YWRvY3MKIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjAgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuMCB1cGRhdGUKICAgICAgICBieQogICAgICAgIGFuZHJlYXMKICAgICAgICA6CiAgICAgICAgWzEuMF0gCiAgICAgICAgICAgIGFkZGVkIGF1dGhlbnRpY2F0b3IKIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjAgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuMCB1cGRhdGUKICAgICAgICBieQogICAgICAgIGFuZHJlYXMKICAgICAgICA6CiAgICAgICAgWzEuMF0gCiAgICAgICAgICAgIHJlZmxlY3RpbmcgY2hhbmdlcyB0byBhY2Nlc3MgY29udHJvbGxlcgogRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuMCBhZGQ8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS4wIGFkZAogICAgICAgIGJ5CiAgICAgICAgYW5kcmVhcwogICAgICAgIDoKICAgICAgICBbMS4wXSAKICAgICAgICAgICAgLSBhZGRlZCBBdXRoZW50aWNhdG9yCi0gYWRkZWQgYXV0aGVudGljYXRvciBhY3Rpb24KIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjAgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuMCB1cGRhdGUKICAgICAgICBieQogICAgICAgIGFuZHJlYXMKICAgICAgICA6CiAgICAgICAgWzEuMF0gCiAgICAgICAgICAgIGFkZGVkIGV4aXN0c1B1YmxpY2F0aW9uKCkgbWV0aG9kCiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS4wIHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjAgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBlZ2xpCiAgICAgICAgOgogICAgICAgIFsxLjBdIAogICAgICAgICAgICBUaGUgZG9jdW1lbnQgY3JlYXRvciBjYW4gbm93IGhhbmRsZSBtdWx0aS1saW5ndWFsIGRvY3VtZW50cy4KIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjAgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuMCB1cGRhdGUKICAgICAgICBieQogICAgICAgIGVnbGkKICAgICAgICA6CiAgICAgICAgWzEuMF0gCiAgICAgICAgICAgIFJlbW92ZWQgdGhlIHB1YmxpY2F0aW9uIGFzIGl0IHdhcyBuZXZlciB1c2VkLgogRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuMCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS4wIHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgZWdsaQogICAgICAgIDoKICAgICAgICBbMS4wXSAKICAgICAgICAgICAgRml4ZWQgSmF2YWRvYyBwcm9ibGVtcyB0aGF0IHdlcmUgaW5kaWNhdGVkIGJ5IGNoZWNrc3R5bGUuCiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS4wIHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjAgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBlZ2xpCiAgICAgICAgOgogICAgICAgIFsxLjBdIAogICAgICAgICAgICBGaXhlZCBKYXZhZG9jIHByb2JsZW1zIHRoYXQgd2VyZSBpbmRpY2F0ZWQgYnkgY2hlY2tzdHlsZS4KIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjAgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuMCB1cGRhdGUKICAgICAgICBieQogICAgICAgIGVnbGkKICAgICAgICA6CiAgICAgICAgWzEuMF0gCiAgICAgICAgICAgIEZpeGVkIEphdmFkb2MgcHJvYmxlbXMgdGhhdCB3ZXJlIGluZGljYXRlZCBieSBjaGVja3N0eWxlLgogRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuMCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS4wIHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgZWdsaQogICAgICAgIDoKICAgICAgICBbMS4wXSAKICAgICAgICAgICAgRml4ZWQgSmF2YWRvYyBwcm9ibGVtcyB0aGF0IHdlcmUgaW5kaWNhdGVkIGJ5IGNoZWNrc3R5bGUuCiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS4wIHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjAgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBlZ2xpCiAgICAgICAgOgogICAgICAgIFsxLjBdIAogICAgICAgICAgICBGaXhlZCBKYXZhZG9jIHByb2JsZW1zIHRoYXQgd2VyZSBpbmRpY2F0ZWQgYnkgY2hlY2tzdHlsZS4KIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjAgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuMCB1cGRhdGUKICAgICAgICBieQogICAgICAgIGVnbGkKICAgICAgICA6CiAgICAgICAgWzEuMF0gCiAgICAgICAgICAgIEZpeGVkIGNoZWNrc3R5bGUgd2FybmluZ3MKIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjAgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuMCB1cGRhdGUKICAgICAgICBieQogICAgICAgIGVnbGkKICAgICAgICA6CiAgICAgICAgWzEuMF0gCiAgICAgICAgICAgIEZpeGVkIGNoZWNrc3R5bGUgd2FybmluZ3MKIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjAgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuMCB1cGRhdGUKICAgICAgICBieQogICAgICAgIGdyZWdvcgogICAgICAgIDoKICAgICAgICBbMS4wXSAKICAgICAgICAgICAgYWRkZWQgRHVibGluIENvcmUgQ2xhc3MgdG8gZG9jdW1lbnQgY2xhc3MKIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjAgYWRkPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuMCBhZGQKICAgICAgICBieQogICAgICAgIGFuZHJlYXMKICAgICAgICA6CiAgICAgICAgWzEuMF0gCiAgICAgICAgICAgIGFkZGluZyBhY2Nlc3MgY29udHJvbCBjb25maWcgZmlsZQogRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuMCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS4wIHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgYW5kcmVhcwogICAgICAgIDoKICAgICAgICBbMS4wXSAKICAgICAgICAgICAgcmVmbGVjdGluZyBhY2Nlc3MgY29udHJvbCBjaGFuZ2VzCiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS4wIHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjAgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBhbmRyZWFzCiAgICAgICAgOgogICAgICAgIFsxLjBdIAogICAgICAgICAgICB1c2luZyBleGNhbGlidXIgdGVzdCBmb3IgYWNjZXNzIGNvbnRyb2wgY29tcG9uZW50cwogRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuMCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS4wIHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgYW5kcmVhcwogICAgICAgIDoKICAgICAgICBbMS4wXSAKICAgICAgICAgICAgaW50cm9kdWNlZCBhY2Nlc3MgY29udHJvbGxlciByZXNvbHZlcgogRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuMCBhZGQ8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS4wIGFkZAogICAgICAgIGJ5CiAgICAgICAgYW5kcmVhcwogICAgICAgIDoKICAgICAgICBbMS4wXSAKICAgICAgICAgICAgLSBhZGRlZCBhY2Nlc3Njb250cm9sbGVyIHJlc29sdmVyCi0gZHJhZnRzIGZvciBzZXZlcmFsIGFjY2Vzc2NvbnRyb2xsZXIgYW5kIGFjLXJlc29sdmVyIHR5cGVzCiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS4wIHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjAgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBhbmRyZWFzCiAgICAgICAgOgogICAgICAgIFsxLjBdIAogICAgICAgICAgICByZWZsZWN0aW5nIHBvbGljeW1hbmFnZXIgY2hhbmdlcwogRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuMCBhZGQ8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS4wIGFkZAogICAgICAgIGJ5CiAgICAgICAgYW5kcmVhcwogICAgICAgIDoKICAgICAgICBbMS4wXSAKICAgICAgICAgICAgYWRkZWQgUHVibGljYXRpb25GaWxlUG9saWN5TWFuYWdlcgogRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuMCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS4wIHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgYW5kcmVhcwogICAgICAgIDoKICAgICAgICBbMS4wXSAKICAgICAgICAgICAgaW1wcm92ZWQgU291cmNlUmVzb2x2ZXIgaGFuZGxpbmcKIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjAgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuMCB1cGRhdGUKICAgICAgICBieQogICAgICAgIG1pY2hpCiAgICAgICAgOgogICAgICAgIFsxLjBdIAogICAgICAgICAgICByZXR1cm4gYWRkZWQKIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjAgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuMCB1cGRhdGUKICAgICAgICBieQogICAgICAgIGdyZWdvcgogICAgICAgIDoKICAgICAgICBbMS4wXSAKICAgICAgICAgICAgYWRkZGVkIGVtcHR5IG1ldGhvZHMgdG8gc3luYyB3aXRoIGludGVyZmFjZQogRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuMCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS4wIHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgZWdsaQogICAgICAgIDoKICAgICAgICBbMS4wXSAKICAgICAgICAgICAgRml4ZWQgSmF2YWRvYyBwcm9ibGVtcyB0aGF0IHdlcmUgaW5kaWNhdGVkIGJ5IGNoZWNrc3R5bGUuCiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS4wIHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjAgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBlZ2xpCiAgICAgICAgOgogICAgICAgIFsxLjBdIAogICAgICAgICAgICBGaXhlZCBjaGVja3N0eWxlIHdhcm5pbmdzIGJ5IG1ha2luZyBpbnN0YW5jZSB2YXJzIHByaXZhdGUKYW5kIGFkZGluZyBhY2Nlc3NvciBtZXRob2RzLgogRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuMCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS4wIHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgZ3JlZ29yCiAgICAgICAgOgogICAgICAgIFsxLjBdIAogICAgICAgICAgICBleHRlbmQgZG9jdW1lbnQgaW50ZXJmYWNlIHdpdGggZ2V0dGVycyBmb3IgdGhlIGRjIG1ldGFkYXRhIHByb3BlcnRpZXMKIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjAgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuMCB1cGRhdGUKICAgICAgICBieQogICAgICAgIG1pY2hpCiAgICAgICAgOgogICAgICAgIFsxLjBdIAogICAgICAgICAgICBXb3JrZmxvdyBIaXN0b3J5IFBpcGVsaW5lIGFkZGVkCiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS4wIHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjAgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBlZ2xpCiAgICAgICAgOgogICAgICAgIFsxLjBdIAogICAgICAgICAgICBGaXhlZCBKYXZhZG9jIHByb2JsZW1zIHRoYXQgd2VyZSBpbmRpY2F0ZWQgYnkgY2hlY2tzdHlsZS4KIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjAgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuMCB1cGRhdGUKICAgICAgICBieQogICAgICAgIGVnbGkKICAgICAgICA6CiAgICAgICAgWzEuMF0gCiAgICAgICAgICAgIEZpeGVkIEphdmFkb2MgcHJvYmxlbXMgdGhhdCB3ZXJlIGluZGljYXRlZCBieSBjaGVja3N0eWxlLgogRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuMCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS4wIHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgZ3JlZ29yCiAgICAgICAgOgogICAgICAgIFsxLjBdIAogICAgICAgICAgICBsYW5ndWFnZSBzd2l0Y2hpbmcgbm93IHdvcmtzIGluIHRoZSBzaXRldHJlZS4KaWYgdGhlIGNob3NlbiBsYW5ndWFnZSBpcyBub3QgZm91bmQsIHRoZSBkZWZhdWx0IGxhbmd1YWdlIGlzIHRha2VuLgogRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuMCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS4wIHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgYW5kcmVhcwogICAgICAgIDoKICAgICAgICBbMS4wXSAKICAgICAgICAgICAgY29ycmVjdGVkIGxpY2Vuc2UgaGVhZGVycwogRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuMCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS4wIHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgYW5kcmVhcwogICAgICAgIDoKICAgICAgICBbMS4wXSAKICAgICAgICAgICAgdXNpbmcgZGVmYXVsdCBhY2Nlc3MgY29udHJvbGxlcgogRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuMCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS4wIHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgYW5kcmVhcwogICAgICAgIDoKICAgICAgICBbMS4wXSAKICAgICAgICAgICAgcmVmbGVjdGluZyBhY2Nlc3MgY29udHJvbCBjaGFuZ2VzCiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS4wIHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjAgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBhbmRyZWFzCiAgICAgICAgOgogICAgICAgIFsxLjBdIAogICAgICAgICAgICBvbmx5IHdoaXRlc3BhY2UgY2hhbmdlcwogRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuMCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS4wIHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgYW5kcmVhcwogICAgICAgIDoKICAgICAgICBbMS4wXSAKICAgICAgICAgICAgY2hlY2tpbmcgaWYgaWRlbnRpdHkgYmVsb25ncyB0byBjb3JyZWN0IEFjY3JlZGl0YWJsZU1hbmFnZXIKIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjAgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuMCB1cGRhdGUKICAgICAgICBieQogICAgICAgIGFuZHJlYXMKICAgICAgICA6CiAgICAgICAgWzEuMF0gCiAgICAgICAgICAgIC0gYWRkZWQgYmVsb25nc1RvKEFjY3JlZGlhYmxlTWFuYWdlcikgbWV0aG9kCi0gcmVtb3ZlZCBjb2RlIHNtZWxsIGZyb20gZ2V0VXNlcigpCiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS4wIHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjAgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBtaWNoaQogICAgICAgIDoKICAgICAgICBbMS4wXSAKICAgICAgICAgICAgbWV0aG9kIGdldFVzZXIgYWRkZWQKIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjAgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuMCB1cGRhdGUKICAgICAgICBieQogICAgICAgIGVkaXRoCiAgICAgICAgOgogICAgICAgIFsxLjBdIAogICAgICAgICAgICBmaXggdGhlIHBhdGggb2YgdGhlIHN0eWxlc2hlZXQgZm9yIGNoZWNraW4vb3V0IGVycm9ycwogRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuMCBhZGQ8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS4wIGFkZAogICAgICAgIGJ5CiAgICAgICAgZWRpdGgKICAgICAgICA6CiAgICAgICAgWzEuMF0gCiAgICAgICAgICAgIFRhc2sgdG8gbW92ZSB1cCBhbmQgbW92ZSBkb3duIGEgbm9kZSB1bmRlciBpdHMgc2libGluZ3MKIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjAgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuMCB1cGRhdGUKICAgICAgICBieQogICAgICAgIGVkaXRoCiAgICAgICAgOgogICAgICAgIFsxLjBdIAogICAgICAgICAgICBDb3B5LCBNb3ZlIGFuZCBSZW5hbWUKIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjAgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuMCB1cGRhdGUKICAgICAgICBieQogICAgICAgIGVkaXRoCiAgICAgICAgOgogICAgICAgIFsxLjBdIAogICAgICAgICAgICB0ZXN0IGZvciBtb3ZlVXAgYW5kIG1vdmVEb3duCiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS4wIHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjAgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBlZGl0aAogICAgICAgIDoKICAgICAgICBbMS4wXSAKICAgICAgICAgICAgTWV0aG9kIE1vdmVVcCBhbmQgTW92ZURvd24KIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjAgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuMCB1cGRhdGUKICAgICAgICBieQogICAgICAgIGFuZHJlYXMKICAgICAgICA6CiAgICAgICAgWzEuMF0gCiAgICAgICAgICAgIHJlZmxlY3RpbmcgYWNjZXNzIGNvbnRyb2wgY2hhbmdlcwogRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuMCByZW1vdmU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS4wIHJlbW92ZQogICAgICAgIGJ5CiAgICAgICAgYW5kcmVhcwogICAgICAgIDoKICAgICAgICBbMS4wXSAKICAgICAgICAgICAgcmVtb3ZlZCBnZW5lcmljLXdvcmtmbG93IG1lbnUKIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjAgYWRkPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuMCBhZGQKICAgICAgICBieQogICAgICAgIGFuZHJlYXMKICAgICAgICA6CiAgICAgICAgWzEuMF0gCiAgICAgICAgICAgIGFkZGVkIHNpdGVtYXAgcG9saWN5IG1hbmFnZXIgKHdvcmsgaW4gcHJvZ3Jlc3MpCiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS4wIHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjAgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBhbmRyZWFzCiAgICAgICAgOgogICAgICAgIFsxLjBdIAogICAgICAgICAgICByZWRlc2lnbmVkIGFjY2VzcyBjb250cm9sOgotIEFjY2VzcyBjb250cm9sbGVyIGlzIHRoZSBtYWluIGNvbXBvbmVudAotIEFjY3JlZGl0YWJsZU1hbmFnZXIgaXMgZm9ybWVyIEFjY2Vzc0NvbnRyb2xsZXIKIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjAgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuMCB1cGRhdGUKICAgICAgICBieQogICAgICAgIG1pY2hpCiAgICAgICAgOgogICAgICAgIFsxLjBdIAogICAgICAgICAgICBwYXJhbWV0ZXIgZml4ZWQKIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjAgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuMCB1cGRhdGUKICAgICAgICBieQogICAgICAgIG1pY2hpCiAgICAgICAgOgogICAgICAgIFsxLjBdIAogICAgICAgICAgICBkZW1vIGNvbW1lbnRlZCBvdXQgZnJvbSBuYXZpZ2F0aW9uCiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS4wIHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjAgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBncmVnb3IKICAgICAgICA6CiAgICAgICAgWzEuMF0gCiAgICAgICAgICAgIGZpcnN0IHBhc3MgYXQgbGFuZ3VhZ2Ugc3dpdGNoaW5nIHZpYSB0YWIgaW4gdGhlIGluZm8gYXJlYS4gc3RpbGwgaGFzIGEgbGl0dGxlIGJ1ZyB0aGF0IG1ha2VzIGhpZ2hsaWdodGluZyBmYWlsIGFmdGVyIGEgY291cGxlIGNsaWNrcyBiYWNrIGFuZCBmb3J0aC4KIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjAgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuMCB1cGRhdGUKICAgICAgICBieQogICAgICAgIGFuZHJlYXMKICAgICAgICA6CiAgICAgICAgWzEuMF0gCiAgICAgICAgICAgIGJpbmFyeSB0byBhc2NpaQogRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuMCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS4wIHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgZ3JlZ29yCiAgICAgICAgOgogICAgICAgIFsxLjBdIAogICAgICAgICAgICBiZWdpbiBtdWx0aWxhbmd1YWdlIHN1cHBvcnQgaW4gc2l0ZXRyZWUgYW5kIGluZm8gYXJlYQoKLSBzaXRldHJlZSBzYW1wbGUgd2l0aCBtdWxpbGluZ3VhbCBsYWJlbHMKLSBjb25jZXB0cyBvZiBkZWZhdWx0bGFuZ3VhZ2UgLyBsYW5ndWFnZQotIGhpZ2hsaWdodCB0aGUgcHJvcGVyIGxhbmd1YWdlIHRhYiBpbiBpbmZvCiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS4wIHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjAgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBtaWNoaQogICAgICAgIDoKICAgICAgICBbMS4wXSAKICAgICAgICAgICAgZW5hYmxlLXVwbG9hZHMgYWRkZWQKIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjAgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuMCB1cGRhdGUKICAgICAgICBieQogICAgICAgIGFuZHJlYXMKICAgICAgICA6CiAgICAgICAgWzEuMF0gCiAgICAgICAgICAgIGluaXRpYWxpemluZyB3b3JrZmxvdyBoaXN0b3J5IGluIGNyZWF0b3IgdGFzawogRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuMCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS4wIHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgYW5kcmVhcwogICAgICAgIDoKICAgICAgICBbMS4wXSAKICAgICAgICAgICAgcmVtb3ZpbmcgYWMyLklkZW50aXR5IGZyb20gc2Vzc2lvbgogRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuMCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS4wIHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgYW5kcmVhcwogICAgICAgIDoKICAgICAgICBbMS4wXSAKICAgICAgICAgICAgY29ycmVjdGVkIHVyaSBwcmVmaXggZm9yIG1vdW50aW5nCiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS4wIHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjAgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBhbmRyZWFzCiAgICAgICAgOgogICAgICAgIFsxLjBdIAogICAgICAgICAgICBhZGRlZCBhdXRob3JpemVycyBpbml0aWFsaXphdGlvbgogRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuMCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS4wIHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgYW5kcmVhcwogICAgICAgIDoKICAgICAgICBbMS4wXSAKICAgICAgICAgICAgdXNpbmcgZmFsbGJhY2sgZm9yIHhzcCArIHhzbHQKIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjAgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuMCB1cGRhdGUKICAgICAgICBieQogICAgICAgIGFuZHJlYXMKICAgICAgICA6CiAgICAgICAgWzEuMF0gCiAgICAgICAgICAgIG1vdW50aW5nIG9ubHkgdXNlY2FzZS1zcGVjaWZpYyBzaXRlbWFwcyAobW9pbnQgPSBwb2ludCBvZiBubyByZXR1cm4pCiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS4wIHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjAgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBhbmRyZWFzCiAgICAgICAgOgogICAgICAgIFsxLjBdIAogICAgICAgICAgICBhZGRlZCBhdXRob3JpemVyIHJvbGVzCiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS4wIHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjAgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBhbmRyZWFzCiAgICAgICAgOgogICAgICAgIFsxLjBdIAogICAgICAgICAgICBhbGxvd2luZyBtaXNzaW5nIHRhc2tzLnhtbCBmaWxlCiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS4wIHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjAgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBhbmRyZWFzCiAgICAgICAgOgogICAgICAgIFsxLjBdIAogICAgICAgICAgICBjYXRjaGluZyBUYXNrTWFuYWdlciBleGNlcHRpb25zCiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS4wIHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjAgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBhbmRyZWFzCiAgICAgICAgOgogICAgICAgIFsxLjBdIAogICAgICAgICAgICBjaGVja2luZyBmb3Igd29ya2Zsb3cgaGlzdG9yeSBiZWZvcmUgZXhlY3V0aW5nIHRhc2sKIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjAgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuMCB1cGRhdGUKICAgICAgICBieQogICAgICAgIGFuZHJlYXMKICAgICAgICA6CiAgICAgICAgWzEuMF0gCiAgICAgICAgICAgIC0gYXV0aG9yaXplciBpcyBhdmFsb24gY29tcG9uZW50CiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS4wIHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjAgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBhbmRyZWFzCiAgICAgICAgOgogICAgICAgIFsxLjBdIAogICAgICAgICAgICAtIGF1dGhvcml6ZXIgaXMgYXZhbG9uIGNvbXBvbmVudAotIHB1dHRpbmcgcm9sZXMgaW4gc2Vzc2lvbiAoVE9ETzogb25seSB1bnRpbCB1c2VjYXNlLnhtYXAgaXMgdW5kZXIgYWNjZXNzIGNvbnRyb2whKQogRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuMCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS4wIHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgZWRpdGgKICAgICAgICA6CiAgICAgICAgWzEuMF0gCiAgICAgICAgICAgIApwdWJsaWNhdGlvbiBwYXRoIGdldCBmcm9tIHRoZSBQdWJsaWNhdGlvbiB0aHJvdWdoIHRoZSBwYWdlLWVudmVsb3BlIG1vZHVsZQogRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuMCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS4wIHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgbWljaGkKICAgICAgICA6CiAgICAgICAgWzEuMF0gCiAgICAgICAgICAgIG11bHRpcGFydCByZXF1ZXN0cyBpbnN0cnVjdGlvbiBhZGRlZAogRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuMCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS4wIHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgZWdsaQogICAgICAgIDoKICAgICAgICBbMS4wXSAKICAgICAgICAgICAgRml4ZWQgbW9yZSBqYXZhZG9jcyB0byBnZXQgcmlkIG9mIHRoZSBjaGVja3N0eWxlIHdhcm5pbmdzLgoyMDQ1IHRvIGdvLi4uCiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS4wIHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjAgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBtaWNoaQogICAgICAgIDoKICAgICAgICBbMS4wXSAKICAgICAgICAgICAgYXV0aG9yaW5nIHRhYiBmaXhlZAogRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuMCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS4wIHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgbWljaGkKICAgICAgICA6CiAgICAgICAgWzEuMF0gCiAgICAgICAgICAgIGxpdmUgbGluayBmaXhlZAogRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuMCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS4wIHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgbWljaGkKICAgICAgICA6CiAgICAgICAgWzEuMF0gCiAgICAgICAgICAgIGxpdmUgcmVhZGRlZCB0byBVUkkgc3BhY2UKIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjAgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuMCB1cGRhdGUKICAgICAgICBieQogICAgICAgIGVnbGkKICAgICAgICA6CiAgICAgICAgWzEuMF0gCiAgICAgICAgICAgIFB1Ymxpc2ggc2hvdWxkIG5vdyBjb3JyZWNseSBoYW5kbGUgdGhlIG11bHRpbGluZ3VhbCBjYXNlLAppLmUuIG9ubHkgdGhlIHJlcXVlc3RlZCBsYWJlbCBpcyBwdWJsaXNoZWQgZnJvbSB0aGUgYXV0aG9yaW5nCnRvIHRoZSBsaXZlIHRyZWUuCiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS4wIHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjAgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBlZ2xpCiAgICAgICAgOgogICAgICAgIFsxLjBdIAogICAgICAgICAgICBNYWtlIHN1cmUgZ2V0TGFiZWwgY2FuIGFsc28gaGFuZGxlICIiIGFzIGEgeG1sTGFuZ3VhZ2UKd2hlbiBpbiByZWFsbGl0eSBpdCBpcyBudWxsLgogRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuMCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS4wIHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgbWljaGkKICAgICAgICA6CiAgICAgICAgWzEuMF0gCiAgICAgICAgICAgIHRhYnMgZml4ZWQKIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjAgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuMCB1cGRhdGUKICAgICAgICBieQogICAgICAgIGdyZWdvcgogICAgICAgIDoKICAgICAgICBbMS4wXSAKICAgICAgICAgICAgd2FzIGJpaW5hcnkuLgogRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuMCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS4wIHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgZ3JlZ29yCiAgICAgICAgOgogICAgICAgIFsxLjBdIAogICAgICAgICAgICBub3cgZm9yd2FyZHMgc2l0ZW1hcCBwYXJhbWV0ZXJzIHRvIHRhc2sKIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjAgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuMCB1cGRhdGUKICAgICAgICBieQogICAgICAgIG1pY2hpCiAgICAgICAgOgogICAgICAgIFsxLjBdIAogICAgICAgICAgICB0YWJzIGZpeGVkCiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS4wIHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjAgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBtaWNoaQogICAgICAgIDoKICAgICAgICBbMS4wXSAKICAgICAgICAgICAgUmV2aXNpb24gQ29udHJvbGxlciB0byB0b3AgbGV2ZWwgc2l0ZW1hcCBtb3ZlZAogRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuMCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS4wIHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgZWdsaQogICAgICAgIDoKICAgICAgICBbMS4wXSAKICAgICAgICAgICAgQWRkZWQgbW9yZSBqYXZhZG9jcy4KIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjAgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuMCB1cGRhdGUKICAgICAgICBieQogICAgICAgIGVnbGkKICAgICAgICA6CiAgICAgICAgWzEuMF0gCiAgICAgICAgICAgIFJlbW92ZWQgdW51c2VkIGltcG9ydC4KIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjAgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuMCB1cGRhdGUKICAgICAgICBieQogICAgICAgIGVkaXRoCiAgICAgICAgOgogICAgICAgIFsxLjBdIAogICAgICAgICAgICBUaGUgZmlsZW5hbWUgdG8gcGFzcyB0byB0aGUgUmV2aXNpb24gQ29udHJvbGxlciBzaG91bGQgYmUgOgpjb250ZW50L2F1dGhvcmluZy8uLi4uL2luZGV4LnhtbAogRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuMCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS4wIHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgYW5kcmVhcwogICAgICAgIDoKICAgICAgICBbMS4wXSAKICAgICAgICAgICAgYWRkZWQgcmVtb3ZlQWxsTWVtYmVycygpIHRlc3QKIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjAgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuMCB1cGRhdGUKICAgICAgICBieQogICAgICAgIGFuZHJlYXMKICAgICAgICA6CiAgICAgICAgWzEuMF0gCiAgICAgICAgICAgIG5leHQgdmVyc2lvbiBvZiB1c2VyICsgZ3JvdXAgYWRtaW5pc3RyYXRpb24KIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjAgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuMCB1cGRhdGUKICAgICAgICBieQogICAgICAgIGVnbGkKICAgICAgICA6CiAgICAgICAgWzEuMF0gCiAgICAgICAgICAgIEFkZGVkIHdvcmtmbG93IGV2ZW50cyB0byB0aGUgbWVudS4KIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjAgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuMCB1cGRhdGUKICAgICAgICBieQogICAgICAgIGFuZHJlYXMKICAgICAgICA6CiAgICAgICAgWzEuMF0gCiAgICAgICAgICAgIHVwZGF0ZWQgYWNjZXNzIGNvbnRyb2wgZmlsZXMKIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjAgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuMCB1cGRhdGUKICAgICAgICBieQogICAgICAgIGVnbGkKICAgICAgICA6CiAgICAgICAgWzEuMF0gCiAgICAgICAgICAgIEZpeGVkIHRoZSBwYXJhbWV0ZXIgbmFtZXMgZm9yIHRoZSBjcmVhdG9yIHNvIHRoYXQgY3JlYXRpb24KYWN0dWFsbHkgd29ya3MuCiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS4wIGFkZDwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjAgYWRkCiAgICAgICAgYnkKICAgICAgICBhbmRyZWFzCiAgICAgICAgOgogICAgICAgIFsxLjBdIAogICAgICAgICAgICBhZGRlZCBhY2Nlc3MgY29udHJvbCBzY3JpcHQKIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjAgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuMCB1cGRhdGUKICAgICAgICBieQogICAgICAgIGVnbGkKICAgICAgICA6CiAgICAgICAgWzEuMF0gCiAgICAgICAgICAgIEFkZGVkIG1vcmUgamF2YWRvY3MuCiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS4wIHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjAgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBhbmRyZWFzCiAgICAgICAgOgogICAgICAgIFsxLjBdIAogICAgICAgICAgICBhZGRlZCBncm91cCArIGFjY2Vzcy1jb250cm9sIHNjcmlwdHMKIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjAgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuMCB1cGRhdGUKICAgICAgICBieQogICAgICAgIGFuZHJlYXMKICAgICAgICA6CiAgICAgICAgWzEuMF0gCiAgICAgICAgICAgIG5leHQgdmVyc2lvbiBvZiB1c2VyICsgZ3JvdXAgYWRtaW5pc3RyYXRpb24KIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjAgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuMCB1cGRhdGUKICAgICAgICBieQogICAgICAgIGFuZHJlYXMKICAgICAgICA6CiAgICAgICAgWzEuMF0gCiAgICAgICAgICAgIC0gYWRkZWQgcmVmZXJlbmNlIHRvIHJvbGVzIGZpbGUKLSBhZGRlZCBhY2Nlc3MgY29udHJvbGxlciBjb21wb25lbnQgZGVjbGFyYXRpb24KIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjAgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuMCB1cGRhdGUKICAgICAgICBieQogICAgICAgIGFuZHJlYXMKICAgICAgICA6CiAgICAgICAgWzEuMF0gCiAgICAgICAgICAgIHJlZGVzaWduZWQgQWNjZXNzQ29udHJvbGxlciBhcyBBdmFsb24gY29tcG9uZW50CiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS4wIHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjAgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBhbmRyZWFzCiAgICAgICAgOgogICAgICAgIFsxLjBdIAogICAgICAgICAgICBjb3B5aW5nIEF2YWxvbiByb2xlcyBmaWxlCiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS4wIHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjAgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBlZ2xpCiAgICAgICAgOgogICAgICAgIFsxLjBdIAogICAgICAgICAgICBVc2UgdGhlIGNyZWF0b3IgYW50IHRhc2sgaW5zdGVhZCBvZiB0aGUgRGVmYXVsdENyZWF0b3IuCiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS4wIHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjAgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBhbmRyZWFzCiAgICAgICAgOgogICAgICAgIFsxLjBdIAogICAgICAgICAgICBhZGRlZCBwdWJsaWNhdGlvbiB0ZXN0CiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS4wIGFkZDwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjAgYWRkCiAgICAgICAgYnkKICAgICAgICBhbmRyZWFzCiAgICAgICAgOgogICAgICAgIFsxLjBdIAogICAgICAgICAgICBhZGRlZCBBdmFsb24gcm9sZSBkZWZpbml0aW9uIGZpbGUKIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjAgYWRkPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuMCBhZGQKICAgICAgICBieQogICAgICAgIGFuZHJlYXMKICAgICAgICA6CiAgICAgICAgWzEuMF0gCiAgICAgICAgICAgIGFkZGVkIE1hY2hpbmUgY2xhc3MKIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjAgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuMCB1cGRhdGUKICAgICAgICBieQogICAgICAgIGFuZHJlYXMKICAgICAgICA6CiAgICAgICAgWzEuMF0gCiAgICAgICAgICAgIHJlZGVzaWduZWQgQWNjZXNzQ29udHJvbGxlciBhcyBBdmFsb24gY29tcG9uZW50CiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS4wIHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjAgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBhbmRyZWFzCiAgICAgICAgOgogICAgICAgIFsxLjBdIAogICAgICAgICAgICB0aHJvd2luZyBleGNlcHRpb24gd2hlbiBjb25maWd1cmF0aW9uIGRpcmVjdG9yeSBpcyBub3QgdmFsaWQKIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjAgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuMCB1cGRhdGUKICAgICAgICBieQogICAgICAgIGFuZHJlYXMKICAgICAgICA6CiAgICAgICAgWzEuMF0gCiAgICAgICAgICAgIGFkZGVkIHJlbW92ZUFsbE1lbWJlcnMoKSBtZXRob2QKIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjAgcmVtb3ZlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuMCByZW1vdmUKICAgICAgICBieQogICAgICAgIGdyZWdvcgogICAgICAgIDoKICAgICAgICBbMS4wXSAKICAgICAgICAgICAgaG9vayB1cCBsYW5ndWFnZSBkaXNwbGF5IHRvIGluZm8gdGFiCiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS4wIHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjAgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBncmVnb3IKICAgICAgICA6CiAgICAgICAgWzEuMF0gCiAgICAgICAgICAgIGhvb2sgdXAgbGFuZ3VhZ2UgZGlzcGxheSB0byBpbmZvIHRhYgogRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuMCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS4wIHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgZWdsaQogICAgICAgIDoKICAgICAgICBbMS4wXSAKICAgICAgICAgICAgRml4ZWQgYSBidWcgaW4gdGhlIHBhcmFtZXRlciBwYXNzaW5nIHRvIHRoZSB1c2VjYXNlLWNyZWF0ZQpyZXNvdXJjZS4KIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjAgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuMCB1cGRhdGUKICAgICAgICBieQogICAgICAgIGVnbGkKICAgICAgICA6CiAgICAgICAgWzEuMF0gCiAgICAgICAgICAgIFByb3BlciBpbmRlbnRpbmcuCiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS4wIHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjAgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBlZ2xpCiAgICAgICAgOgogICAgICAgIFsxLjBdIAogICAgICAgICAgICBBZGRlZCBkb2N1bWVudGF0aW9uIGZvciBkb2N1bWVudC1wYXRoIGFuZCBkb2N1bWVudC1sYW5ndWFnZS4KIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjAgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuMCB1cGRhdGUKICAgICAgICBieQogICAgICAgIGdyZWdvcgogICAgICAgIDoKICAgICAgICBbMS4wXSAKICAgICAgICAgICAgLSBpbXByb3ZlZCB0cmVlIHdpZGdldCB0byBzYXZlIHN0YXRlCi0gZml4ZWQgYnVnIHdoZXJlIHRyZWUgd2lkZ2V0IHdhcyB1bmFibGUgdG8gcmVvcGVuIHN1YnRyZWVzCi0gYWRkZWQgaG92ZXIgZWZmZWN0IHRvIHRyZWUgd2lkZ2V0Ci0gYWRkZWQgbGFuZ3VhZ2UgdGFicyB0byB0cmVlIHdpZGdldAotIGNvbnNvbGlkYXRlZCBtZW51LmNzcywgaW5mbyBjc3MgYW5kIGRlZmF1bHQgY3NzCi0gZml4ZWQgQ1NTIHZhbGlkYXRpb24gZXJyb3JzCi0gaW1wcm92ZWQgYnJlYWRjcnVtYiBnZW5lcmF0aW9uIGluIGh0bWwgdGl0bGUKLSBmaXhlZCB0eXBvIGluIGludHJvZHVjdGlvbgogRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuMCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS4wIHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgZ3JlZ29yCiAgICAgICAgOgogICAgICAgIFsxLjBdIAogICAgICAgICAgICBsb2dpbiBzY3JlZW4gZGUtdWdseWZpY2F0aW9uCiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS4wIHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjAgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBlZ2xpCiAgICAgICAgOgogICAgICAgIFsxLjBdIAogICAgICAgICAgICBBZGRlZCBsYW5ndWFnZSB0YWcuCiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS4wIHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjAgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBlZ2xpCiAgICAgICAgOgogICAgICAgIFsxLjBdIAogICAgICAgICAgICBBZGRkZWQgYSBjb21tZW50IHRvIG5vdGlmeSB0aGF0IHRoaXMgeHNwIGhhcyBiZWVuIGRlcHJlY2F0ZWQuCgpSZXBsYWNlZCB1c2FnZSBvZiB4c3AtbGVueWEgbG9naWMgc2hlZXQgd2l0aCB4c3AtcmVxdWVzdCwKeHNwLXNlc3Npb24gYW5kIHBhZ2UgZW52ZWxvcGUgaW5wdXQgbW9kdWxlLgogRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuMCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS4wIHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgZWdsaQogICAgICAgIDoKICAgICAgICBbMS4wXSAKICAgICAgICAgICAgQWRkZWQgdGhlIGRvY3VtZW50IGxhbmd1YWdlIHRvIHRoZSBwYWdlZW52ZWxvcGUgYW5kIHRvIHRoZQpwYWdlIGVudmVsb3BlIGlucHV0IG1vZHVsZS4KIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjAgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuMCB1cGRhdGUKICAgICAgICBieQogICAgICAgIG1pY2hpCiAgICAgICAgOgogICAgICAgIFsxLjBdIAogICAgICAgICAgICB4cGF0aCBidWcgZml4ZWQKIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjAgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuMCB1cGRhdGUKICAgICAgICBieQogICAgICAgIG1pY2hpCiAgICAgICAgOgogICAgICAgIFsxLjBdIAogICAgICAgICAgICBlcnJvciBoYW5kbGluZyBpbXByb3ZlZAogRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuMCByZW1vdmU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS4wIHJlbW92ZQogICAgICAgIGJ5CiAgICAgICAgZWdsaQogICAgICAgIDoKICAgICAgICBbMS4wXSAKICAgICAgICAgICAgSGFzIGJlZW4gc3VwZXJjZWRlZCBieSBEZWZhdWx0U2l0ZVRyZWVUZXN0LgogRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuMCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS4wIHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgZWdsaQogICAgICAgIDoKICAgICAgICBbMS4wXSAKICAgICAgICAgICAgQWRkZWQgbW9yZSBqYXZhZG9jcy4KIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjAgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuMCB1cGRhdGUKICAgICAgICBieQogICAgICAgIGVnbGkKICAgICAgICA6CiAgICAgICAgWzEuMF0gCiAgICAgICAgICAgIEFkZGVkIG1vcmUgamF2YWRvY3MuCiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS4wIHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjAgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBlZ2xpCiAgICAgICAgOgogICAgICAgIFsxLjBdIAogICAgICAgICAgICBBZGRlZCBtb3JlIHRlc3QgY2FzZXMuCiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS4wIHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjAgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBlZ2xpCiAgICAgICAgOgogICAgICAgIFsxLjBdIAogICAgICAgICAgICBBZGRlZCBtb3JlIHRlc3QgY2FzZXMuCiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS4wIGFkZDwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjAgYWRkCiAgICAgICAgYnkKICAgICAgICBlZ2xpCiAgICAgICAgOgogICAgICAgIFsxLjBdIAogICAgICAgICAgICBBZGRlZCB0ZXN0IGNhc2VzIGZvciBEZWZhdWx0U2l0ZVRyZWUgYW5kIFNpdGVUcmVlTm9kZUltcGwuCiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS4wIHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjAgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBlZ2xpCiAgICAgICAgOgogICAgICAgIFsxLjBdIAogICAgICAgICAgICBBZGRlZCBtb3JlIGphdmFkb2NzLgogRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuMCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS4wIHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgZWdsaQogICAgICAgIDoKICAgICAgICBbMS4wXSAKICAgICAgICAgICAgQWRkZWQgbWV0aG9kcyB0byBhbGxvdyBhZGRpbmcgYW5kIHJlbW92aW5nIGxhYmVscyB0bwpleGlzdGluZyBub2Rlcy4gVGhpcyBpcyBuZWVkZWQgZm9yIGhhbmRsaW5nIG9mCm11bHRpbGluZ3VhbCBkb2N1bWVudHMuCiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS4wIHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjAgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBlZ2xpCiAgICAgICAgOgogICAgICAgIFsxLjBdIAogICAgICAgICAgICBBZGRlZCBtZXRob2RzIHRvIGFkZCBhbmQgcmVtb3ZlIGEgbGFiZWwgdG8gYSBzaXRlVHJlZSBub2RlLgpUaGlzIGlzIGluIHByZXBhcmF0aW9uIGZvciB0aGUgbXVsdGlsaW5ndWFsIHN0dWZmLgoKQWxzbyBhZGRlZCBjb21wbGV0ZSBqYXZhIGRvY3MgYW5kIGZpeGVkIGEgcHJvYmxlbSBpbiBnZXRMYWJlbAp3aGVyZSBpdCB3b3VsZCBub3QgY29ycmVjdGx5IGhhbmRsZSBlbXB0eSBsYW5ndWFnZSBhdHRyaWJ1dGVzLgogRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuMCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS4wIHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgZWdsaQogICAgICAgIDoKICAgICAgICBbMS4wXSAKICAgICAgICAgICAgQWRkZWQgdG9TdHJpbmcsIGVxdWFscyBhbmQgaGFzaENvZGUgbWV0aG9kcy4KIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjAgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuMCB1cGRhdGUKICAgICAgICBieQogICAgICAgIGdyZWdvcgogICAgICAgIDoKICAgICAgICBbMS4wXSAKICAgICAgICAgICAgLSBtYWRlIENTUyB2YWxpZAotIHNpbXBsaWZpZWQgbWVudSBjb2RlCi0gYWRkZWQgYnJlYWRjcnVtYiBpbiB0aXRsZQotIHJlbW92ZWQgbGVnYWN5IGphdmFzY3JpcHQKIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjAgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuMCB1cGRhdGUKICAgICAgICBieQogICAgICAgIGdyZWdvcgogICAgICAgIDoKICAgICAgICBbMS4wXSAKICAgICAgICAgICAgLSBtYWRlIENTUyB2YWxpZAotIHNpbXBsaWZpZWQgbWVudSBjb2RlCi0gYWRkZWQgYnJlYWRjcnVtYiBpbiB0aXRsZQotIHJlbW92ZWQgbGVnYWN5IGphdmFzY3JpcHQKIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjAgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuMCB1cGRhdGUKICAgICAgICBieQogICAgICAgIG1pY2hpCiAgICAgICAgOgogICAgICAgIFsxLjBdIAogICAgICAgICAgICB0YWJzIGZpeGVkCiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS4wIHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjAgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBtaWNoaQogICAgICAgIDoKICAgICAgICBbMS4wXSAKICAgICAgICAgICAgbGl2ZSByZWludHJvZHVjZWQKIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjAgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuMCB1cGRhdGUKICAgICAgICBieQogICAgICAgIG1pY2hpCiAgICAgICAgOgogICAgICAgIFsxLjBdIAogICAgICAgICAgICBBdXRob3JpbmcgYW5kIExpdmUgVVJMIGZpeGVkCiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS4wIHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjAgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBncmVnb3IKICAgICAgICA6CiAgICAgICAgWzEuMF0gCiAgICAgICAgICAgIGJ1bXBlZCB2ZXJzaW9uIHRvIDEuMAphZGRlZCBlbnRpdGllcyBwcm9wZXJ0aWVzCnd5b25hIC0mZ3Q7IGxlbnlhCiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS4wIHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjAgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBncmVnb3IKICAgICAgICA6CiAgICAgICAgWzEuMF0gCiAgICAgICAgICAgIGJ1bXBlZCB2ZXJzaW9uIHRvIDEuMAoKYWRkZWQgZW50aXRpZXMgY29weSB0YXNrIChkaXNhYmxlZCBmb3Igbm93KQogRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuMCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS4wIHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgZ3JlZ29yCiAgICAgICAgOgogICAgICAgIFsxLjBdIAogICAgICAgICAgICByZWZsZWN0ZWQgcHJvcGVyIGZpbGVuYW1lIGV4dGVuc2lvbiBpbiBidWlsZCBmaWxlCiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS4wIHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjAgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBncmVnb3IKICAgICAgICA6CiAgICAgICAgWzEuMF0gCiAgICAgICAgICAgIGNoYW5nZWQgImJ1aWxkLmNvbXBpbGVyIiBmcm9tIGNsYXNzaWMgdG8gbW9kZXJuLiB0aGlzIHVzZXMgdGhlIDEuMyBqYXZhYyBpbnN0ZWFkIG9mIHRoZSAxLjIgb25lLgogRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuMCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS4wIHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgYW5kcmVhcwogICAgICAgIDoKICAgICAgICBbMS4wXSAKICAgICAgICAgICAgYWRhcHRlZCB0ZXN0cyB0byBuZXcgYWNjZXNzIGNvbnRyb2wgZGVzaWduCiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS4wIHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjAgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBhbmRyZWFzCiAgICAgICAgOgogICAgICAgIFsxLjBdIAogICAgICAgICAgICBzb21lIGlkL25hbWUtcmVsYXRlZCBidWdmaXhlcwogRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuMCBhZGQ8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS4wIGFkZAogICAgICAgIGJ5CiAgICAgICAgYW5kcmVhcwogICAgICAgIDoKICAgICAgICBbMS4wXSAKICAgICAgICAgICAgcmUtZGVzaWduZWQgYWMgb2JqZWN0cyAoaWQrbmFtZStkZXNjcmlwdGlvbiBmb3IgYWxsIG9iamVjdHMpCiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS4wIHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjAgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBlZ2xpCiAgICAgICAgOgogICAgICAgIFsxLjBdIAogICAgICAgICAgICBUaGUgcHVibGlzaGVyIGNsYXNzZXMgaGF2ZSBiZWVuIHN1cGVyY2VkZWQgYnkgdGhlIHB1Ymxpc2gKYW50IHRhc2sgYW5kIGFyZSBub3cgZGVwcmVjYXRlZC4KIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjAgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuMCB1cGRhdGUKICAgICAgICBieQogICAgICAgIGVnbGkKICAgICAgICA6CiAgICAgICAgWzEuMF0gCiAgICAgICAgICAgIEZpeGVkIGNoZWNrc3R5bGUgd2FybmluZ3MuCiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS4wIHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjAgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBhbmRyZWFzCiAgICAgICAgOgogICAgICAgIFsxLjBdIAogICAgICAgICAgICBjaGFuZ2VzIGR1ZSB0byBhYnN0cmFjdCBSb2xlIGNsYXNzCiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS4wIHJlbW92ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjAgcmVtb3ZlCiAgICAgICAgYnkKICAgICAgICBhbmRyZWFzCiAgICAgICAgOgogICAgICAgIFsxLjBdIAogICAgICAgICAgICByZW1vdmVkIHVzZXIgYWRtaW4gYWN0aW9ucwogRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuMCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS4wIHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgbWljaGkKICAgICAgICA6CiAgICAgICAgWzEuMF0gCiAgICAgICAgICAgIHR5cG8gZml4ZWQKIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjAgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuMCB1cGRhdGUKICAgICAgICBieQogICAgICAgIG1pY2hpCiAgICAgICAgOgogICAgICAgIFsxLjBdIAogICAgICAgICAgICB0YWJzIGZpeGVkCiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS4wIHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjAgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBlZ2xpCiAgICAgICAgOgogICAgICAgIFsxLjBdIAogICAgICAgICAgICBBZGRkZSBKYXZhZG9jcyBhbmQgZml4ZWQgY2hlY2tzdHlsZSB3YXJuaW5ncy4KIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjAgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuMCB1cGRhdGUKICAgICAgICBieQogICAgICAgIGVnbGkKICAgICAgICA6CiAgICAgICAgWzEuMF0gCiAgICAgICAgICAgIEZpeGVkIGNoZWNrc3R5bGUgd2FybmluZ3MuCiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS4wIHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjAgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBlZ2xpCiAgICAgICAgOgogICAgICAgIFsxLjBdIAogICAgICAgICAgICBNYWtlIHN1cmUgdGhlIGhhbmRsZS1lcnJvcnMgY29udGFpbnMgYSBzZXJpYWxpemUgc28gdGhhdApleGNlcHRpb24gc3RhY2sgdHJhY2VzIGFyZSBzaG93bi4KIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjAgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuMCB1cGRhdGUKICAgICAgICBieQogICAgICAgIGVnbGkKICAgICAgICA6CiAgICAgICAgWzEuMF0gCiAgICAgICAgICAgIEltYWdlIHVwbG9hZCBmb3IgdW5pIHB1YmxpYyB3b3JrcyBhZ2Fpbi4gVGhlIGZvbGxvd2luZwpjaGFuZ2VzIGhhZCB0byBiZSBhcHBsaWVkOgoKVGhlIHNpdGVtYXAgcGF0aCB3YXMgbm90IHBvaW50aW5nIGF0IHRoZSBwdWJsaWNhdGlvbiBzaXRlbWFwCmFueW1vcmUgc2luY2UgdGhlIHVzZWNhc2Ugc3R1ZmYgaGFzIGJlZW4gbW92ZWQgdG8gdGhlIHJvb3QKc2l0ZW1hcC4gU28gdGhlIFBhZ2VFbnZlbG9wZSBpcyB1c2VkIHRvIGZpbmQgdGhlIHB1YmxpY2F0aW9uCmRpcmVjdG9yeS4KCkluIHRoZSBvbGRlbiBkYXlzICh3aGVuIHVuaSBwdWJsaWMgd2FzIGNyZWF0ZWQpIHRoZQpkb2N1bWVudC1pZCB1c2VkIHRvIGNvbnRhaW4gdGhlIHN1ZmZpeCBvZiB0aGUgZG9jdW1lbnQgYXMKd2VsbC4gVGhpcyBpcyBubyBsb25nZXIgdGhlIGNhc2UsIHNvIHRoZSBpbWFnZSB1cGxvYWQgaGFkIHRvCmJlIGFkanVzdGVkLgogRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuMCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS4wIHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgZWdsaQogICAgICAgIDoKICAgICAgICBbMS4wXSAKICAgICAgICAgICAgQWRkZWQgY29tcGxldGUgSmF2YWRvY3MuCiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS4wIHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjAgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBlZ2xpCiAgICAgICAgOgogICAgICAgIFsxLjBdIAogICAgICAgICAgICBBZGRlZCBjb21wbGV0ZSBKYXZhZG9jcy4KIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjAgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuMCB1cGRhdGUKICAgICAgICBieQogICAgICAgIGFuZHJlYXMKICAgICAgICA6CiAgICAgICAgWzEuMF0gCiAgICAgICAgICAgIC0gY29ycmVjdGVkIHBpcGVsaW5lIG9yZGVyIGluIGFkbWluLnhtYXAKLSByZW1vdmVkIHVzZXIgYWRtaW4gZnJvbSB1c2VjYXNlLnhtYXAKIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjAgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuMCB1cGRhdGUKICAgICAgICBieQogICAgICAgIGVkaXRoCiAgICAgICAgOgogICAgICAgIFsxLjBdIAogICAgICAgICAgICBpbnNlcnRpb24gb2YgdGhlIHBhZ2UgdGFnCiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS4wIHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjAgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBlZGl0aAogICAgICAgIDoKICAgICAgICBbMS4wXSAKICAgICAgICAgICAgZ2V0IHRoZSBkaXJlY3RvcnkgZm9yIGEgZ2l2ZW4gZG9jdW1lbnRpZCBmb3IgY29weS9tb3ZlCiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS4wIHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjAgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBlZ2xpCiAgICAgICAgOgogICAgICAgIFsxLjBdIAogICAgICAgICAgICBBZGRlZCB0aGUgdXBsb2FkIHVzZWNhc2UgbWF0Y2hlcnMuCiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS4wIHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjAgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBhbmRyZWFzCiAgICAgICAgOgogICAgICAgIFsxLjBdIAogICAgICAgICAgICBpbXBsZW1lbnRlZCBhZGQvZGVsZXRlIHVzZXJzCiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS4wIHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjAgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBhbmRyZWFzCiAgICAgICAgOgogICAgICAgIFsxLjBdIAogICAgICAgICAgICAtIGFkZGVkIHVzZXIvZ3JvdXAgYWRkL2RlbGV0ZSB1c2VjYXNlCi0gdXNpbmcgKiogZm9yIG1hdGNoaW5nIGFsbCBub24tZXhpc3RlbnQgcGFnZXMKIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjAgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuMCB1cGRhdGUKICAgICAgICBieQogICAgICAgIGVnbGkKICAgICAgICA6CiAgICAgICAgWzEuMF0gCiAgICAgICAgICAgIEFkZGVkIG1vcmUgSmF2YWRvY3MuCldpdGggdXAtdG8tZGF0ZSBDb2Nvb24gdGhlIHJlcXVlc3QgaXMgbm8gbG9uZ2VyIGEgbXVsdGlwYXJ0CnJlcXVlc3QsIHNvIGNoZWNraW5nIGZvciBtdWx0aXBhcnQgcmVxdWVzdCBpcyBubyBsb25nZXIKbmVlZGVkLgogRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuMCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS4wIHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgZWdsaQogICAgICAgIDoKICAgICAgICBbMS4wXSAKICAgICAgICAgICAgVGhlIHVwbG9hZGltYWdlIHVzZWNhc2UgaGFzIGJlZW4gcmVuYW1lZCB0byB1cGxvYWQuCiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS4wIHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjAgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBlZ2xpCiAgICAgICAgOgogICAgICAgIFsxLjBdIAogICAgICAgICAgICBNYWtlIHN1cmUgdGhlIGRvY3VtZW50LWlkIGlzIHdyYXBwZWQgdGlnaGx5IGluIHRoZQpzdXJvdW5kaW5nIHRhZ3MuIE90aGVyd2lzZSB3aGl0ZXNwYWNlIHNlZW1zIHRvIGJlIHBhc3NlZAphbG9uZyBhbmQgY29uZnVzZSB0aGUgaW1hZ2UgdXBsb2FkLgogRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuMCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS4wIHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgZWdsaQogICAgICAgIDoKICAgICAgICBbMS4wXSAKICAgICAgICAgICAgQWRhcHRlZCB0byB0aGUgbmV3IGludGVyZmFjZSBvZiBEb2N1bWVudElkVG9QYXRoTWFwcGVyICh3aXRoCnRoZSBsYW5ndWFnZSkKIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjAgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuMCB1cGRhdGUKICAgICAgICBieQogICAgICAgIGVnbGkKICAgICAgICA6CiAgICAgICAgWzEuMF0gCiAgICAgICAgICAgIENvbXBsZXRlIEphdmFkb2NzIGFuZCByZW1vdmVkIGRlYWQgY29kZS4KIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjAgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuMCB1cGRhdGUKICAgICAgICBieQogICAgICAgIGVnbGkKICAgICAgICA6CiAgICAgICAgWzEuMF0gCiAgICAgICAgICAgIEFkZGVkIGNvbXBsZXRlIEphdmFkb2NzIGFuZCBpbiB0aGUgY291cnNlIGdvdCByaWQgb2YgYWJvdXQKMzAgY2hlY2tzdHlsZSB3YXJuaW5ncy4KIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjAgYWRkPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuMCBhZGQKICAgICAgICBieQogICAgICAgIGVkaXRoCiAgICAgICAgOgogICAgICAgIFsxLjBdIAogICAgICAgICAgICBKdW5pdCB0ZXN0IGZvciBtb3ZlIGEgZG9jdW1lbnQgYW5kIHJlbmFtZSBhIGRvY3VtZW50CiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS4wIHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjAgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBlZGl0aAogICAgICAgIDoKICAgICAgICBbMS4wXSAKICAgICAgICAgICAgZGVsZXRlIHJjbWwvcmNiYWsgdGVzdAogRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuMCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS4wIHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgYW5kcmVhcwogICAgICAgIDoKICAgICAgICBbMS4wXSAKICAgICAgICAgICAgYWRkZWQgdXNlciBkZXNjcmlwdGlvbgogRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuMCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS4wIHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgYW5kcmVhcwogICAgICAgIDoKICAgICAgICBbMS4wXSAKICAgICAgICAgICAgYWRkZWQgdXNlciBkZXNjcmlwdGlvbiBmaWVsZAogRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuMCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS4wIHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgYW5kcmVhcwogICAgICAgIDoKICAgICAgICBbMS4wXSAKICAgICAgICAgICAgYWRkZWQgZGVzY3JpcHRpb24gZmllbGQKIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjAgYWRkPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuMCBhZGQKICAgICAgICBieQogICAgICAgIGFuZHJlYXMKICAgICAgICA6CiAgICAgICAgWzEuMF0gCiAgICAgICAgICAgIC0gYWRkZWQgZ3JvdXBzIG92ZXJ2aWV3Ci0gc29ydGluZyB1c2VycyBieSBpZAogRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuMCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS4wIHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgYW5kcmVhcwogICAgICAgIDoKICAgICAgICBbMS4wXSAKICAgICAgICAgICAgZ2VuZXJhbGl6ZWQgdXNlciBhZG1pbiBwaXBlbGluZXMKIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjAgYWRkPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuMCBhZGQKICAgICAgICBieQogICAgICAgIGFuZHJlYXMKICAgICAgICA6CiAgICAgICAgWzEuMF0gCiAgICAgICAgICAgIG1vdmVkIHVzZXItYWRtaW4gZmlsZXMgZnJvbSBhYyB0byBhZG1pbgogRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuMCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS4wIHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgYW5kcmVhcwogICAgICAgIDoKICAgICAgICBbMS4wXSAKICAgICAgICAgICAgcmVtb3ZlZCB1c2VyIGFkbWluIHBpcGVsaW5lcwogRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuMCBhZGQ8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS4wIGFkZAogICAgICAgIGJ5CiAgICAgICAgYW5kcmVhcwogICAgICAgIDoKICAgICAgICBbMS4wXSAKICAgICAgICAgICAgYWRkZWQgY29tbW9uIGNyZWF0b3Igc3R5bGVzaGVldAogRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuMCBhZGQ8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS4wIGFkZAogICAgICAgIGJ5CiAgICAgICAgYW5kcmVhcwogICAgICAgIDoKICAgICAgICBbMS4wXSAKICAgICAgICAgICAgcmVuYW1lZCBwYWdlLnhzbCB0byBwYWdlMnhodG1sLnhzbAogRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuMCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS4wIHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgYW5kcmVhcwogICAgICAgIDoKICAgICAgICBbMS4wXSAKICAgICAgICAgICAgYm9sZCBmb250IGZvciBzZWxlY3RlZCBtZW51YmxvY2tzCiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS4wIHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjAgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBhbmRyZWFzCiAgICAgICAgOgogICAgICAgIFsxLjBdIAogICAgICAgICAgICB1c2luZyAvdXNlcnMvIHN0ZXAgaW4gZmxvdyBVUklzIHRvIGVuYWJsZSBtZW51IGl0ZW0gaGlnaGxpZ2h0aW5nCiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS4wIHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjAgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBhbmRyZWFzCiAgICAgICAgOgogICAgICAgIFsxLjBdIAogICAgICAgICAgICByZXN0cnVjdHVyZWQgdXNlciBhZG1pbmlzdHJhdGlvbgogRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuMCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS4wIHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgZ3JlZ29yCiAgICAgICAgOgogICAgICAgIFsxLjBdIAogICAgICAgICAgICB0cmVlIG5vZGVzIGJlbG93IHRoZSB0b3AgbGV2ZWwgb25lcyB3ZXJlIG5vdCBtYXRjaGVkIHByb3Blcmx5LiB0aGlzIHNob3VsZCBmaXggdGhlIHdpZXJkIGxheW91dAogRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuMCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS4wIHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgZ3JlZ29yCiAgICAgICAgOgogICAgICAgIFsxLjBdIAogICAgICAgICAgICBmaXhlZCBzbWFsbCBpc3N1ZSB3aGVyZSBzb21ldGltZXMgLy8gd2FzIGdlbmVyYXRlZCBpbnN0ZWFkIG9mIC8KIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjAgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuMCB1cGRhdGUKICAgICAgICBieQogICAgICAgIGdyZWdvcgogICAgICAgIDoKICAgICAgICBbMS4wXSAKICAgICAgICAgICAgYWRkZWQgcGVybWlzc2lvbnMgdGFiCnN0eWxlZCB0YWJzIHdpdGggY3NzIGNsYXNzZXMKIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjAgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuMCB1cGRhdGUKICAgICAgICBieQogICAgICAgIGFuZHJlYXMKICAgICAgICA6CiAgICAgICAgWzEuMF0gCiAgICAgICAgICAgIGFic29sdXRlIHBhdGggZm9yIHJlc291cmNlLWV4aXN0cyBzZWxlY3RvcgogRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuMCBhZGQ8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS4wIGFkZAogICAgICAgIGJ5CiAgICAgICAgZWRpdGgKICAgICAgICA6CiAgICAgICAgWzEuMF0gCiAgICAgICAgICAgIGFudCB0YXNrIHRvIGdldCB0aGUgcGF0aCBvZiBhIGZpbGUgZnJvbSB0aGUgZG9jdW1lbnQgaWQKIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjAgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuMCB1cGRhdGUKICAgICAgICBieQogICAgICAgIGVkaXRoCiAgICAgICAgOgogICAgICAgIFsxLjBdIAogICAgICAgICAgICByZW5hbWUgd29ya3MKIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjAgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuMCB1cGRhdGUKICAgICAgICBieQogICAgICAgIGVkaXRoCiAgICAgICAgOgogICAgICAgIFsxLjBdIAogICAgICAgICAgICBjaGFuZ2UgdGhlIGNhbmNlbCBidXR0b24KIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjAgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuMCB1cGRhdGUKICAgICAgICBieQogICAgICAgIGVkaXRoCiAgICAgICAgOgogICAgICAgIFsxLjBdIAogICAgICAgICAgICBwdXQgJmx0O3BhZ2UmZ3Q7IHRhZyB0byBoYXZlIHNvIGJlYXV0aWZ1bCBmb3JtIGFsc28KIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjAgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuMCB1cGRhdGUKICAgICAgICBieQogICAgICAgIGFuZHJlYXMKICAgICAgICA6CiAgICAgICAgWzEuMF0gCiAgICAgICAgICAgIGFsbG93aW5nIHB1Yi1pbmRlcGVuZGVudCBzaXRldHJlZXMgKHVzZWQgZm9yIGFkbWluIGFyZWEpCiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS4wIHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjAgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBhbmRyZWFzCiAgICAgICAgOgogICAgICAgIFsxLjBdIAogICAgICAgICAgICBjaGFuZ2VkIHBhZ2UgYWdncmVnYXRpb24gc3RydWN0dXJlCiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS4wIHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjAgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBhbmRyZWFzCiAgICAgICAgOgogICAgICAgIFsxLjBdIAogICAgICAgICAgICBidWdmaXggZm9yICZsdDtkaXYmZ3Q7IGNvcHlpbmcKIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjAgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuMCB1cGRhdGUKICAgICAgICBieQogICAgICAgIGFuZHJlYXMKICAgICAgICA6CiAgICAgICAgWzEuMF0gCiAgICAgICAgICAgIGNoYW5nZWQgcGFnZSBzdHJ1Y3R1cmUgKG1lbnUgaW5zaWRlIGxlbnlhLXNpZGViYXIpCiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS4wIHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjAgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBhbmRyZWFzCiAgICAgICAgOgogICAgICAgIFsxLjBdIAogICAgICAgICAgICB1c2luZyB4aHRtbCBuYW1lc3BhY2UgaW5zaWRlIGNtc2JvZHkKIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjAgYWRkPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuMCBhZGQKICAgICAgICBieQogICAgICAgIGFuZHJlYXMKICAgICAgICA6CiAgICAgICAgWzEuMF0gCiAgICAgICAgICAgIGFkZGVkIG5hdmlnYXRpb24gQ1NTICh1c2VkIGZvciBhZG1pbiBhcmVhIG1lbnUpCiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS4wIGFkZDwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjAgYWRkCiAgICAgICAgYnkKICAgICAgICBhbmRyZWFzCiAgICAgICAgOgogICAgICAgIFsxLjBdIAogICAgICAgICAgICBhZGRlZCBhZG1pbiBhcmVhIHNpdGV0cmVlCiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS4wIHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjAgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBlZGl0aAogICAgICAgIDoKICAgICAgICBbMS4wXSAKICAgICAgICAgICAgZnJvbSBmb3IgcmVuYW1lIHdvcmtzCiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS4wIHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjAgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBlZGl0aAogICAgICAgIDoKICAgICAgICBbMS4wXSAKICAgICAgICAgICAgZ2V0IHRoZSBkb2N1bWVudCBpZCBvZiB0aGUgcGFyZW50IG9mIHRoZSBkZXN0aW5hdGlvbiBpbiB0aGUgY29va2llCiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS4wIHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjAgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBlZGl0aAogICAgICAgIDoKICAgICAgICBbMS4wXSAKICAgICAgICAgICAgZ2V0IHRoZSBkb2N1bWVudCBpZCBvZiB0aGUgZmlsZSB0byByZW5hbWUgaW4gdGhlIHNlc3Npb24KIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjAgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuMCB1cGRhdGUKICAgICAgICBieQogICAgICAgIGVkaXRoCiAgICAgICAgOgogICAgICAgIFsxLjBdIAogICAgICAgICAgICBhbnQgdGFzayB0byBjb21wdXRlIHRoZSBkaWZmZXJlbnQgZG9jdW1lbnQgaWRzIG9mIHRoZSBkZXN0aW5hdGlvbiBpbiBjYXNlIG9mIGNvcHksIG1vdmUgYW5kIHJlbmFtZQogRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuMCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS4wIHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgYW5kcmVhcwogICAgICAgIDoKICAgICAgICBbMS4wXSAKICAgICAgICAgICAgYWRkZWQgaG9tZXBhZ2UgcGlwZWxpbmUKIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjAgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuMCB1cGRhdGUKICAgICAgICBieQogICAgICAgIGFuZHJlYXMKICAgICAgICA6CiAgICAgICAgWzEuMF0gCiAgICAgICAgICAgIGZpeGVkIGxlbnlhLXNpZGViYXIgY29sdW1uIHdpZGgKIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjAgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuMCB1cGRhdGUKICAgICAgICBieQogICAgICAgIGFuZHJlYXMKICAgICAgICA6CiAgICAgICAgWzEuMF0gCiAgICAgICAgICAgIGNoYW5nZWQgYWRtaW4gYXJlYSBsaW5rCiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS4wIGFkZDwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjAgYWRkCiAgICAgICAgYnkKICAgICAgICBhbmRyZWFzCiAgICAgICAgOgogICAgICAgIFsxLjBdIAogICAgICAgICAgICBhZGRlZCBhZG1pbiBhcmVhIG5hdmlnYXRpb24KIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjAgcmVtb3ZlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuMCByZW1vdmUKICAgICAgICBieQogICAgICAgIGFuZHJlYXMKICAgICAgICA6CiAgICAgICAgWzEuMF0gCiAgICAgICAgICAgIHJlbW92ZWQgb2Jzb2xldGUgZmlsZXMKIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjAgYWRkPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuMCBhZGQKICAgICAgICBieQogICAgICAgIGFuZHJlYXMKICAgICAgICA6CiAgICAgICAgWzEuMF0gCiAgICAgICAgICAgIGFkZGVkIGFkbWluIGFyZWEgaG9tZXBhZ2UKIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjAgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuMCB1cGRhdGUKICAgICAgICBieQogICAgICAgIGVnbGkKICAgICAgICA6CiAgICAgICAgWzEuMF0gCiAgICAgICAgICAgIFJlcGxhY2VkIHRoZSB1dGlsIGxvZ2ljc2hlZXQgd2l0aCBhbiBpbnZvY2F0aW9uIG9mIHRoZQpwYWdlIGVudmVsb3BlIGlucHV0IG1vZHVsZS4KIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjAgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuMCB1cGRhdGUKICAgICAgICBieQogICAgICAgIG1pY2hpCiAgICAgICAgOgogICAgICAgIFsxLjBdIAogICAgICAgICAgICBsaWJyYXJpZXMgdXBkYXRlZAogRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuMCBhZGQ8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS4wIGFkZAogICAgICAgIGJ5CiAgICAgICAgYW5kcmVhcwogICAgICAgIDoKICAgICAgICBbMS4wXSAKICAgICAgICAgICAgcmVkZXNpZ25lZCB1c2VyIGFkbWluaXN0cmF0aW9uIHdpdGggZmxvdwogRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuMCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS4wIHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgYW5kcmVhcwogICAgICAgIDoKICAgICAgICBbMS4wXSAKICAgICAgICAgICAgdXNpbmcgQ01TIHNjcmVlbiBjb25jZXB0CiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS4wIHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjAgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBhbmRyZWFzCiAgICAgICAgOgogICAgICAgIFsxLjBdIAogICAgICAgICAgICBzb21lIGxheW91dCBhZGRpdGlvbnMKIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjAgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuMCB1cGRhdGUKICAgICAgICBieQogICAgICAgIGFuZHJlYXMKICAgICAgICA6CiAgICAgICAgWzEuMF0gCiAgICAgICAgICAgIGNoYW5nZWQgdXNlciBhZG1pbmlzdHJhdGlvbiBsaW5rcwogRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuMCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS4wIHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgYW5kcmVhcwogICAgICAgIDoKICAgICAgICBbMS4wXSAKICAgICAgICAgICAgYWRkZWQgYWMgY29uZmlndXJhdGlvbiBmaWxlcwogRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuMCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS4wIHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgYW5kcmVhcwogICAgICAgIDoKICAgICAgICBbMS4wXSAKICAgICAgICAgICAgYWRkZWQgbWV0aG9kIGdldFB1YmxpY2F0aW9uKHJlcXVlc3QsIGNvbnRleHQpCiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS4wIHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjAgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBhbmRyZWFzCiAgICAgICAgOgogICAgICAgIFsxLjBdIAogICAgICAgICAgICBhZGRlZCBhZG1pbiBhcmVhCiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS4wIHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjAgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBhbmRyZWFzCiAgICAgICAgOgogICAgICAgIFsxLjBdIAogICAgICAgICAgICBtYWRlIGNvbnRhaW5zKCkgcHVibGljCiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS4wIHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjAgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBtaWNoaQogICAgICAgIDoKICAgICAgICBbMS4wXSAKICAgICAgICAgICAgdGl0bGVzIGZpeGVkCiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS4wIHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjAgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBlZGl0aAogICAgICAgIDoKICAgICAgICBbMS4wXSAKICAgICAgICAgICAgR2V0IHBhcmFtZXRlcnMgZnJvbSBHVUkgdGhyb3VnaCBjb29raWVzIGFuZCBzZXNzaW9uCiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS4wIHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjAgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBncmVnb3IKICAgICAgICA6CiAgICAgICAgWzEuMF0gCiAgICAgICAgICAgIGFkZGVkIGZ1bGwgZG9jdW1lbnQgaWQgdG8gdHJlZQpmaXhlZCBsYXlvdXQgZm9yIGxhcmdlIHRyZWVzCnN0cmlwcGVkIHJlcXVlc3QgcGFyYW1ldGVycyBmcm9tIGRvY3VtZW50IGlkIGZvciB0aGUgY29va2llCiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS4wIHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjAgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBtaWNoaQogICAgICAgIDoKICAgICAgICBbMS4wXSAKICAgICAgICAgICAgZG8gbm90IHRocm93IGV4Y2VwdGlvbgogRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuMCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS4wIHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgZ3JlZ29yCiAgICAgICAgOgogICAgICAgIFsxLjBdIAogICAgICAgICAgICBhcHBhcmVudGx5IG5vdCBhbGwgeHNsdCBwcm9jZXNzb3JzIGFyZSBhbGlrZS4uIHNob3VsZCBub3cgd29yayB3aXRoIHhhbGFuIHRvby4KIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjAgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuMCB1cGRhdGUKICAgICAgICBieQogICAgICAgIGdyZWdvcgogICAgICAgIDoKICAgICAgICBbMS4wXSAKICAgICAgICAgICAgbWFkZSBzaXRldHJlZSB3b3JrIHByb3Blcmx5LiB0aGFua3MgdG8gbWljaGkgZm9yIHRoZSBoaW50CiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS4wIHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjAgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBtaWNoaQogICAgICAgIDoKICAgICAgICBbMS4wXSAKICAgICAgICAgICAgamF2YWRvYyBhZGRlZCBhbmQgZXhjZXB0aW9uIHRocm93biBpbiBjYXNlIG9mIGVycm9yCiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS4wIHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjAgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBhbmRyZWFzCiAgICAgICAgOgogICAgICAgIFsxLjBdIAogICAgICAgICAgICBhZGRlZCBpbmZvIGFyZWEgdG8gdmFsaWQgYXJlYXMKIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjAgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuMCB1cGRhdGUKICAgICAgICBieQogICAgICAgIGFuZHJlYXMKICAgICAgICA6CiAgICAgICAgWzEuMF0gCiAgICAgICAgICAgIHVzaW5nIGNhY2hlIGZvciBwb2xpY2llcyBhbmQgVVJJIHBhcmFtZXRlcnMKIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjAgYWRkPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuMCBhZGQKICAgICAgICBieQogICAgICAgIG1pY2hpCiAgICAgICAgOgogICAgICAgIFsxLjBdIAogICAgICAgICAgICBVdGlsaXR5IHRvIHJ1biBwcm9jZXNzZXMKIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjAgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuMCB1cGRhdGUKICAgICAgICBieQogICAgICAgIGVnbGkKICAgICAgICA6CiAgICAgICAgWzEuMF0gCiAgICAgICAgICAgIEFkZGVkIGNvbXBsZXRlIGphdmEgZG9jcwogRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuMCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS4wIHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgYW5kcmVhcwogICAgICAgIDoKICAgICAgICBbMS4wXSAKICAgICAgICAgICAgY2FjaGluZyBVUkkgcGFyYW1ldGVycyAocGVyZm9ybWFuY2UgaW1wcm92ZW1lbnQpCiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS4wIHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjAgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBhbmRyZWFzCiAgICAgICAgOgogICAgICAgIFsxLjBdIAogICAgICAgICAgICByZW1vdmVkIGRlYWQgY29kZQogRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuMCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS4wIHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgYW5kcmVhcwogICAgICAgIDoKICAgICAgICBbMS4wXSAKICAgICAgICAgICAgUkMgZW52aXJvbm1lbnQgY3JlYXRlZCBvbmx5IG9uY2UgZm9yIGV2ZXJ5IGNvbnRleHQKIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjAgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuMCB1cGRhdGUKICAgICAgICBieQogICAgICAgIGFuZHJlYXMKICAgICAgICA6CiAgICAgICAgWzEuMF0gCiAgICAgICAgICAgIGFkZGVkIGNvY29vbiBsaWNlbnNlIGhlYWRlcgogRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuMCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS4wIHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgYW5kcmVhcwogICAgICAgIDoKICAgICAgICBbMS4wXSAKICAgICAgICAgICAgYWRkZWQgY29jb29uIGxpY2Vuc2UgaGVhZGVyCiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS4wIHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjAgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBhbmRyZWFzCiAgICAgICAgOgogICAgICAgIFsxLjBdIAogICAgICAgICAgICAtIGphbG9weSBmb3JtYXR0aW5nCi0gdXNpbmcgQ29jb29uIGxpY2Vuc2UgaGVhZGVyCiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS4wIHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjAgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBhbmRyZWFzCiAgICAgICAgOgogICAgICAgIFsxLjBdIAogICAgICAgICAgICBhZGRlZCBsYW5ndWFnZSBzdWZmaXggdG8gaGlzdG9yeSBmaWxlCiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS4wIHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjAgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBhbmRyZWFzCiAgICAgICAgOgogICAgICAgIFsxLjBdIAogICAgICAgICAgICB1c2luZyBkb2N1bWVudGJ1aWxkZXIgaW5zdGVhZCBvZiBkb2N1bWVudCBjdG9yCiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS4wIHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjAgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBhbmRyZWFzCiAgICAgICAgOgogICAgICAgIFsxLjBdIAogICAgICAgICAgICByZWZsZWN0ZWQgY2hhbmdlcyB0byBQYWdlRW52ZWxvcGUKIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjAgYWRkPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuMCBhZGQKICAgICAgICBieQogICAgICAgIGFuZHJlYXMKICAgICAgICA6CiAgICAgICAgWzEuMF0gCiAgICAgICAgICAgIGFkZGVkIGRvY3VtZW50IHRlc3RzCiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS4wIGFkZDwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjAgYWRkCiAgICAgICAgYnkKICAgICAgICBhbmRyZWFzCiAgICAgICAgOgogICAgICAgIFsxLjBdIAogICAgICAgICAgICBhZGRlZCBhY2Nlc3MgY29udHJvbGxlciB0ZXN0CiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS4wIGFkZDwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjAgYWRkCiAgICAgICAgYnkKICAgICAgICBhbmRyZWFzCiAgICAgICAgOgogICAgICAgIFsxLjBdIAogICAgICAgICAgICBhZGRlZCBhYzItc3BlY2lmaWMgYWNjZXNzIGNvbnRyb2wgdGVzdCBiYXNlIGNsYXNzCiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS4wIHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjAgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBhbmRyZWFzCiAgICAgICAgOgogICAgICAgIFsxLjBdIAogICAgICAgICAgICBleHRlbmRlZCBwb2xpY3kgdGVzdAogRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuMCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS4wIHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgYW5kcmVhcwogICAgICAgIDoKICAgICAgICBbMS4wXSAKICAgICAgICAgICAgY29ycmVjdGVkIGV4Y2VwdGlvbiBtZXNzYWdlCiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS4wIHJlbW92ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjAgcmVtb3ZlCiAgICAgICAgYnkKICAgICAgICBhbmRyZWFzCiAgICAgICAgOgogICAgICAgIFsxLjBdIAogICAgICAgICAgICByZW1vdmVkIHNlbnNlbGVzcyBjbGFzcwogRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuMCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS4wIHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgYW5kcmVhcwogICAgICAgIDoKICAgICAgICBbMS4wXSAKICAgICAgICAgICAgLSB1c2luZyBkb2N1bWVudCBpbnN0ZWFkIG9mIHNldmVyYWwgYXR0cmlidXRlcwotIHJlbW92ZWQgZGVwcmVjYXRlZCBjdG9yCiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS4wIGFkZDwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjAgYWRkCiAgICAgICAgYnkKICAgICAgICBhbmRyZWFzCiAgICAgICAgOgogICAgICAgIFsxLjBdIAogICAgICAgICAgICBhZGRlZCBEb2N1bWVudEJ1aWxkZXIKIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjAgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuMCB1cGRhdGUKICAgICAgICBieQogICAgICAgIGFuZHJlYXMKICAgICAgICA6CiAgICAgICAgWzEuMF0gCiAgICAgICAgICAgIGFkZGVkIG5ldyBtZXRob2RzIHRvIGRvY3VtZW50IGludGVyZmFjZQogRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuMCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS4wIHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgYW5kcmVhcwogICAgICAgIDoKICAgICAgICBbMS4wXSAKICAgICAgICAgICAgdXNpbmcgZmFjdG9yeSBpbnN0ZWFkIG9mIHBhZ2VlbnZlbG9wZSBjdG9yCiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS4wIHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjAgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBhbmRyZWFzCiAgICAgICAgOgogICAgICAgIFsxLjBdIAogICAgICAgICAgICB1c2luZyBwdWJsaWNhdGlvbit1cmwgaW5zdGVhZCBvZiBwYWdlIGVudmVsb3BlIChhbGxvd3MgQUMgZm9yIG5vbi1kb2N1bWVudCBwYWdlcywgaW1hZ2VzIGV0Yy4pCiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS4wIHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjAgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBhbmRyZWFzCiAgICAgICAgOgogICAgICAgIFsxLjBdIAogICAgICAgICAgICB1c2luZyBEZWZhdWx0RG9jdW1lbnRCdWlsZGVyIGluc3RlYWQgb2YgRGVmYXVsdERvY3VtZW50IGN0b3IKIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjAgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuMCB1cGRhdGUKICAgICAgICBieQogICAgICAgIGFuZHJlYXMKICAgICAgICA6CiAgICAgICAgWzEuMF0gCiAgICAgICAgICAgIHVzaW5nIHB1YmxpY2F0aW9uK3VybCBpbnN0ZWFkIG9mIHBhZ2UgZW52ZWxvcGUgKGFsbG93cyBBQyBmb3Igbm9uLWRvY3VtZW50IHBhZ2VzLCBpbWFnZXMgZXRjLikKIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjAgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuMCB1cGRhdGUKICAgICAgICBieQogICAgICAgIGFuZHJlYXMKICAgICAgICA6CiAgICAgICAgWzEuMF0gCiAgICAgICAgICAgIGNvbXBsZXRlZCBwb2xpY3kgY29tcHV0YXRpb24KIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjAgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuMCB1cGRhdGUKICAgICAgICBieQogICAgICAgIGFuZHJlYXMKICAgICAgICA6CiAgICAgICAgWzEuMF0gCiAgICAgICAgICAgIC0gamF2YWRvY3MgY29tcGxldGVkCi0gYXNzZXJ0aW9uIGFkZGVkIGZvciB1cmwgIi8iCiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS4wIHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjAgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBhbmRyZWFzCiAgICAgICAgOgogICAgICAgIFsxLjBdIAogICAgICAgICAgICBwcmV0dHkgcHJpbnRlZAogRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuMCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS4wIHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgYW5kcmVhcwogICAgICAgIDoKICAgICAgICBbMS4wXSAKICAgICAgICAgICAgc3RvcmluZyByb2xlcyBpbiByZXF1ZXN0LCBub3QgaW4gc2Vzc2lvbiAodGhleSBjaGFuZ2Ugd2l0aCB0aGUgVVJJKQogRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuMCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS4wIHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgYW5kcmVhcwogICAgICAgIDoKICAgICAgICBbMS4wXSAKICAgICAgICAgICAgZ2V0dGluZyByb2xlcyBmcm9tIHNlc3Npb24KIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjAgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuMCB1cGRhdGUKICAgICAgICBieQogICAgICAgIGFuZHJlYXMKICAgICAgICA6CiAgICAgICAgWzEuMF0gCiAgICAgICAgICAgIHVzaW5nIGZhY3RvcnkgdG8gZ2V0IHBhZ2UgZW52ZWxvcGUKIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjAgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuMCB1cGRhdGUKICAgICAgICBieQogICAgICAgIGFuZHJlYXMKICAgICAgICA6CiAgICAgICAgWzEuMF0gCiAgICAgICAgICAgIHdoaXRlc3BhY2UgcmVtb3ZlZAogRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuMCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS4wIHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgYW5kcmVhcwogICAgICAgIDoKICAgICAgICBbMS4wXSAKICAgICAgICAgICAgc3RvcmluZyByb2xlcyBpbiBzZXNzaW9uCiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS4wIHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjAgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBhbmRyZWFzCiAgICAgICAgOgogICAgICAgIFsxLjBdIAogICAgICAgICAgICBmaXhlZCBnZXRJbnN0YW5jZSgpIGJ1ZwogRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuMCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS4wIHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgYW5kcmVhcwogICAgICAgIDoKICAgICAgICBbMS4wXSAKICAgICAgICAgICAgZm9yd2FyZGluZyByZXF1ZXN0IHBhcmFtZXRlcnMgdG8gQ01TIHNjcmVlbiBzdHlsZXNoZWV0CiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS4wIHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjAgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBhbmRyZWFzCiAgICAgICAgOgogICAgICAgIFsxLjBdIAogICAgICAgICAgICByZW1vdmVkIGNvbW1lbnRlZC1vdXQgcGFyYW1ldGVyCiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS4wIHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjAgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBhbmRyZWFzCiAgICAgICAgOgogICAgICAgIFsxLjBdIAogICAgICAgICAgICB1c2luZyBSZXNvdXJjZUV4aXN0c1NlbGVjdG9yIGZvciBDTVMgc2NyZWVucwogRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuMCBhZGQ8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS4wIGFkZAogICAgICAgIGJ5CiAgICAgICAgbWljaGkKICAgICAgICA6CiAgICAgICAgWzEuMF0gCiAgICAgICAgICAgIFN0YXR1cyBQYWdlIGFkZGVkCiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS4wIHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjAgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBlZGl0aAogICAgICAgIDoKICAgICAgICBbMS4wXSAKICAgICAgICAgICAgY29weS9jdXQvcmVuYW1lL3Bhc3RlIHVzZWNhc2VzCiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS4wIHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjAgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBlZGl0aAogICAgICAgIDoKICAgICAgICBbMS4wXSAKICAgICAgICAgICAgd29yayBpbiBwcm9ncmVzcwogRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuMCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS4wIHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgZWRpdGgKICAgICAgICA6CiAgICAgICAgWzEuMF0gCiAgICAgICAgICAgIGRlY2xhcmF0aW9uIG9mIHRoZSBTZXNzaW9uUHJvcGFnYXRvckFjdGlvbgogRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuMCBhZGQ8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS4wIGFkZAogICAgICAgIGJ5CiAgICAgICAgZWRpdGgKICAgICAgICA6CiAgICAgICAgWzEuMF0gCiAgICAgICAgICAgIHRlc3QgY2xhc3MgZm9yIHRoZSBjb3B5aW5nIG9mIGEgZG9jdW1lbnQKIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjAgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuMCB1cGRhdGUKICAgICAgICBieQogICAgICAgIGVkaXRoCiAgICAgICAgOgogICAgICAgIFsxLjBdIAogICAgICAgICAgICBpbnRyb2R1Y3Rpb24gb2YgYSBwcmVwYXJlVGVzdCgpIG1ldGhvZAogRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuMCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS4wIHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgZWRpdGgKICAgICAgICA6CiAgICAgICAgWzEuMF0gCiAgICAgICAgICAgIGZpeAogRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuMCBhZGQ8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS4wIGFkZAogICAgICAgIGJ5CiAgICAgICAgZWRpdGgKICAgICAgICA6CiAgICAgICAgWzEuMF0gCiAgICAgICAgICAgIGFudCB0YXNrIHRvIGNvbXB1dGUgdGhlIGRvY3VtZW50IGlkIG9mIHRoZSBjb3B5IGZpbGUKIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjAgcmVtb3ZlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuMCByZW1vdmUKICAgICAgICBieQogICAgICAgIGVkaXRoCiAgICAgICAgOgogICAgICAgIFsxLjBdIAogICAgICAgICAgICByZXBsYWNlIGJ5IENvbXB1dGVDb3B5RG9jdW1lbnRJZAogRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuMCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS4wIHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgbWljaGkKICAgICAgICA6CiAgICAgICAgWzEuMF0gCiAgICAgICAgICAgIHVzZWNhc2Ugc2l0ZW1hcCBtb3ZlZCBiZWxvdyBtaWRhcyBwaXBlbGluZQogRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuMCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS4wIHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgZ3JlZ29yCiAgICAgICAgOgogICAgICAgIFsxLjBdIAogICAgICAgICAgICB0b28gdGlyZWQgdG8gbWFrZSB0aGlzIHdvcmsKIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjAgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuMCB1cGRhdGUKICAgICAgICBieQogICAgICAgIGFuZHJlYXMKICAgICAgICA6CiAgICAgICAgWzEuMF0gCiAgICAgICAgICAgIGFkZGVkIGFjY2VzcyBjb250cm9sIHRlc3RzCiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS4wIHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjAgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBhbmRyZWFzCiAgICAgICAgOgogICAgICAgIFsxLjBdIAogICAgICAgICAgICAtIGNvdXBsaW5nIGFjY2VzcyBjb250cm9sIHRlc3RzIHdpdGggQWNjZXNzQ29udHJvbFRlc3QgY2xhcwotIHJlZmxlY3RpbmcgY2hhbmdlcyB0byBhY2Nlc3MgY29udHJvbCBBUEkKIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjAgYWRkPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuMCBhZGQKICAgICAgICBieQogICAgICAgIGFuZHJlYXMKICAgICAgICA6CiAgICAgICAgWzEuMF0gCiAgICAgICAgICAgIGluaXRpYWwgY2hlY2tpbiBvZiBuZXcgYWNjZXNzIGNvbnRyb2wgaW1wbGVtZW50YXRpb24KIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjAgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuMCB1cGRhdGUKICAgICAgICBieQogICAgICAgIGFuZHJlYXMKICAgICAgICA6CiAgICAgICAgWzEuMF0gCiAgICAgICAgICAgIHJlZmxlY3RpbmcgYWNjZXNzIGNvbnRyb2xsZXIgY2hhbmdlcwogRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuMCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS4wIHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgYW5kcmVhcwogICAgICAgIDoKICAgICAgICBbMS4wXSAKICAgICAgICAgICAgY29tcGxldGVkIGphdmFkb2MKIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjAgYWRkPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuMCBhZGQKICAgICAgICBieQogICAgICAgIGFuZHJlYXMKICAgICAgICA6CiAgICAgICAgWzEuMF0gCiAgICAgICAgICAgIGFkZGVkIGNsYXNzIGZvciBjb25zdHJ1Y3RpbmcgdGVzIHBhZ2UgZW52ZWxvcGVzCiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS4wIHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjAgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBhbmRyZWFzCiAgICAgICAgOgogICAgICAgIFsxLjBdIAogICAgICAgICAgICBlbXB0eSBkaWZmICg/KQogRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuMCBhZGQ8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS4wIGFkZAogICAgICAgIGJ5CiAgICAgICAgYW5kcmVhcwogICAgICAgIDoKICAgICAgICBbMS4wXSAKICAgICAgICAgICAgaW5pdGlhbCBjaGVja2luIG9mIG5ldyBhY2Nlc3MgY29udHJvbCBpbXBsZW1lbnRhdGlvbgogRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuMCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS4wIHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgYW5kcmVhcwogICAgICAgIDoKICAgICAgICBbMS4wXSAKICAgICAgICAgICAgdXNpbmcgY29uZmlndXJhdGlvbiBkaXJlY3RvcnkgaW5zdGVhZCBvZiBwdWJsaWNhdGlvbiAoY2hhbmdlZCBhY2Nlc3MgY29udHJvbGxlciBBUEkpCiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS4wIGFkZDwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjAgYWRkCiAgICAgICAgYnkKICAgICAgICBhbmRyZWFzCiAgICAgICAgOgogICAgICAgIFsxLjBdIAogICAgICAgICAgICBpbml0aWFsIGNoZWNraW4gb2YgbmV3IGFjY2VzcyBjb250cm9sIGltcGxlbWVudGF0aW9uCiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS4wIGFkZDwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjAgYWRkCiAgICAgICAgYnkKICAgICAgICBhbmRyZWFzCiAgICAgICAgOgogICAgICAgIFsxLjBdIAogICAgICAgICAgICBhZGRlZCBHcm91cGFibGUKIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjAgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuMCB1cGRhdGUKICAgICAgICBieQogICAgICAgIGFuZHJlYXMKICAgICAgICA6CiAgICAgICAgWzEuMF0gCiAgICAgICAgICAgIGNoYW5nZWQgY29udHJhY3Q6IGl0ZW1zIG11c3Qgbm90IGhhdmUgYSAocHVibGljYXRpb24sIGNvbmZpZ3VyYXRpb24pIGNvbnN0cnVjdG9yLCBidXQgaW1wbGVtZW50IHRoZSBJdGVtIGludGVyZmFjZQogRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuMCBhZGQ8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS4wIGFkZAogICAgICAgIGJ5CiAgICAgICAgYW5kcmVhcwogICAgICAgIDoKICAgICAgICBbMS4wXSAKICAgICAgICAgICAgYWRkZWQgQWJzdHJhY3RHcm91cGFibGUKIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjAgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuMCB1cGRhdGUKICAgICAgICBieQogICAgICAgIGFuZHJlYXMKICAgICAgICA6CiAgICAgICAgWzEuMF0gCiAgICAgICAgICAgIC0gYXJlYXMgYXMgY29uc3RhbnRzCi0gYWRkZWQgZG9jSWRUb1BhdGhNYXBwZXIKIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjAgYWRkPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuMCBhZGQKICAgICAgICBieQogICAgICAgIGFuZHJlYXMKICAgICAgICA6CiAgICAgICAgWzEuMF0gCiAgICAgICAgICAgIGFkZGVkIHBhZ2UgZW52ZWxvcGUgZmFjdG9yeQogRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuMCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS4wIHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgYW5kcmVhcwogICAgICAgIDoKICAgICAgICBbMS4wXSAKICAgICAgICAgICAgLSBkZXByZWNhdGVkIHB1YmxpYyBjdG9ycwotIGFkZGVkIHNldHRlcnMgdG8gYmUgdXNlZCBieSBzdWJjbGFzc2VzCiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS4wIHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjAgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBhbmRyZWFzCiAgICAgICAgOgogICAgICAgIFsxLjBdIAogICAgICAgICAgICBpbXBsZW1lbnRlZCBnZXRGaWxlKCkKIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjAgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuMCB1cGRhdGUKICAgICAgICBieQogICAgICAgIGFuZHJlYXMKICAgICAgICA6CiAgICAgICAgWzEuMF0gCiAgICAgICAgICAgIGFkZGVkIGZpbGUgZ2V0dGVycwogRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuMCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS4wIHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgbWljaGkKICAgICAgICA6CiAgICAgICAgWzEuMF0gCiAgICAgICAgICAgIGxpbmsgdG8gV2lraSBhZGRlZAogRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuMCBhZGQ8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS4wIGFkZAogICAgICAgIGJ5CiAgICAgICAgZ3JlZ29yCiAgICAgICAgOgogICAgICAgIFsxLjBdIAogICAgICAgICAgICBhZGRlZCBzdGFydCBwYWdlIHRvIGxpdmUgYXJlYSBieSBkZWZhdWx0IHRvIHByZXZlbnQgZXJyb3JzLiBvdGhlciBwYWdlcyBuZWVkIHRvIGJlIHB1Ymxpc2hlZCBvZiBjb3Vyc2UuCiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS4wIHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjAgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBncmVnb3IKICAgICAgICA6CiAgICAgICAgWzEuMF0gCiAgICAgICAgICAgIG1hZGUgaW5mbyBzaXRldHJlZSBwdWJsaWNhdGlvbi1pbmRlcGVuZGFudAogRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuMCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS4wIHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgZWdsaQogICAgICAgIDoKICAgICAgICBbMS4wXSAKICAgICAgICAgICAgVGhyb3cgYW4gZXhjZXB0aW9uIGluc3RlYWQgb2YganVzdCBzaWxlbnRseSBpZ25vcmluZyBpdC4KIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjAgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuMCB1cGRhdGUKICAgICAgICBieQogICAgICAgIGVnbGkKICAgICAgICA6CiAgICAgICAgWzEuMF0gCiAgICAgICAgICAgIEFkZGVkIGNvbXBsZXRlIGphdmFkb2MgdG8gYWxsIG1ldGhvZHMgdG8gbWFrZSBjaGVja3N0dWxlIGhhcHB5LgogRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuMCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS4wIHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgZWdsaQogICAgICAgIDoKICAgICAgICBbMS4wXSAKICAgICAgICAgICAgQWRkZWQgc29tZSBqYXZhZG9jLgogRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuMCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS4wIHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgZWdsaQogICAgICAgIDoKICAgICAgICBbMS4wXSAKICAgICAgICAgICAgQWRkZWQgY29tcGxldGUgamF2YWRvYyB0byBhbGwgbWV0aG9kcyB0byBtYWtlIGNoZWNrc3R1bGUgaGFwcHkuCiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS4wIHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjAgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBlZ2xpCiAgICAgICAgOgogICAgICAgIFsxLjBdIAogICAgICAgICAgICBBZGRlZCBqYXZhZG9jIHRvIGFsbCBtZXRob2RzIHRvIG1ha2UgY2hlY2tzdHVsZSBoYXBweS4KIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjAgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuMCB1cGRhdGUKICAgICAgICBieQogICAgICAgIGVnbGkKICAgICAgICA6CiAgICAgICAgWzEuMF0gCiAgICAgICAgICAgIEFkZGVkIHRoZSAuY2hlY2tzdHlsZSBmaWxlIHRvIHRoZSBsaXN0IG9mIGZpbGVzIHRoYXQgYXJlCnRvIGJlIGlnbm9yZWQgYnkgQ1ZTLgogRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuMCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS4wIHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgZWdsaQogICAgICAgIDoKICAgICAgICBbMS4wXSAKICAgICAgICAgICAgQWRkZWQgamF2YWRvYyB0byBhbGwgbWV0aG9kcyB0byBtYWtlIGNoZWNrc3R1bGUgaGFwcHkuCiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS4wIHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjAgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBtaWNoaQogICAgICAgIDoKICAgICAgICBbMS4wXSAKICAgICAgICAgICAgSFNRTERCIHBvcnQgYnVnIGZpeGVkCiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS4wIHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjAgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBncmVnb3IKICAgICAgICA6CiAgICAgICAgWzEuMF0gCiAgICAgICAgICAgIG1hZGUgaW5mbyBzaXRldHJlZSBwdWJsaWNhdGlvbi1pbmRlcGVuZGFudAogRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuMCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS4wIHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgZmVsaXgKICAgICAgICA6CiAgICAgICAgWzEuMF0gCiAgICAgICAgICAgIEFkZGVkIGEgbWV0aG9kIHRvIHRlc3QgZ2V0RnVsbE5hbWUoKS4KIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjAgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuMCB1cGRhdGUKICAgICAgICBieQogICAgICAgIGZlbGl4CiAgICAgICAgOgogICAgICAgIFsxLjBdIAogICAgICAgICAgICBXaGVuIGZldGNoaW5nIHRoZSBmdWxsbmFtZSB3ZSBuZWVkIHRvIHF1ZXJ5IHRoZSBhdHRyaWJ1dGUgd2l0aAp0aGUgZ2V0KCkgbWV0aG9kIChub3QgdGhlIGdldElkKCkgbWV0aG9kKS4gVGhhdCdzIHdoeSB0aGUgTERBUFVzZXIKY29uc2lzdGVudGx5IGNsYWltZWQgdGhhdCBpdHMgZnVsbG5hbWUgd2FzICJnZWNvcyIgOi0pLgogRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuMCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS4wIHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgbWljaGkKICAgICAgICA6CiAgICAgICAgWzEuMF0gCiAgICAgICAgICAgIG1lbnViYXIgZml4ZWQKIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjAgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuMCB1cGRhdGUKICAgICAgICBieQogICAgICAgIG1pY2hpCiAgICAgICAgOgogICAgICAgIFsxLjBdIAogICAgICAgICAgICBkb2NzIHJlbW92ZWQgZnJvbSBidWlsZAogRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuMCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS4wIHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgbWljaGkKICAgICAgICA6CiAgICAgICAgWzEuMF0gCiAgICAgICAgICAgIFJlc291cmNlRXhpc3RzQWN0aW9uIHBhdGNoZWQKIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjAgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuMCB1cGRhdGUKICAgICAgICBieQogICAgICAgIGdyZWdvcgogICAgICAgIDoKICAgICAgICBbMS4wXSAKICAgICAgICAgICAgZGVwcmVjYXRlZCB3eW9uYSBkb2N1bWVudGF0aW9uIG1vdmVkIHRvIHdpa2kgdG8gYWxsb3cgZm9yIGVhc2llciByZWZhY3RvcmluZy4KIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjAgcmVtb3ZlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuMCByZW1vdmUKICAgICAgICBieQogICAgICAgIGdyZWdvcgogICAgICAgIDoKICAgICAgICBbMS4wXSAKICAgICAgICAgICAgZGVwcmVjYXRlZCB3eW9uYSBkb2N1bWVudGF0aW9uIG1vdmVkIHRvIHdpa2kgdG8gYWxsb3cgZm9yIGVhc2llciByZWZhY3RvcmluZy4KIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjAgcmVtb3ZlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuMCByZW1vdmUKICAgICAgICBieQogICAgICAgIGdyZWdvcgogICAgICAgIDoKICAgICAgICBbMS4wXSAKICAgICAgICAgICAgZGVwcmVjYXRlZCB0aGUgY29tcHV0ZXJ3b3JsZCBwdWJsaWNhdGlvbi4gaXQgd2lsbCBiZSBhdmFpbGFibGUgZnJvbSB3eW9uYS5vcmcgKHVubWFpbnRhaW5lZCkgaW4gdGhlIGZ1dHVyZS4gKGFzIHdlbGwgYXMgaW4gdGhlIENWUyBoaXN0b3J5IGhlcmUpCiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS4wIHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjAgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBncmVnb3IKICAgICAgICA6CiAgICAgICAgWzEuMF0gCiAgICAgICAgICAgIHN0b3JlIHRoZSB1cmwgb2YgdGhlIGNsaWNrZWQgbm9kZSBpbiB0aGUgdHJlZXZpZXcgaW4gYSBjb29raWUgdmFyOgogb3JnLmFwYWNoZS5sZW55YS5jbXMuaW5mby50YXJnZXQKIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjAgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuMCB1cGRhdGUKICAgICAgICBieQogICAgICAgIGdyZWdvcgogICAgICAgIDoKICAgICAgICBbMS4wXSAKICAgICAgICAgICAgZml4IHF1aXJreSB3b3JkaW5nCiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS4wIHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjAgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBtaWNoaQogICAgICAgIDoKICAgICAgICBbMS4wXSAKICAgICAgICAgICAgY2hlY2sgb25seSBmaWxlcyBhbmQgbm90IGRpcmVjdG9yaWVzCiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS4wIGFkZDwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjAgYWRkCiAgICAgICAgYnkKICAgICAgICBtaWNoaQogICAgICAgIDoKICAgICAgICBbMS4wXSAKICAgICAgICAgICAgY2hlY2sgb25seSBmaWxlIGFuZCBub3QgZGlyZWN0b3J5CiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS4wIHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjAgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBhbmRyZWFzCiAgICAgICAgOgogICAgICAgIFsxLjBdIAogICAgICAgICAgICBjb21wbGV0ZWQgamF2YWRvY3MKIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjAgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuMCB1cGRhdGUKICAgICAgICBieQogICAgICAgIGFuZHJlYXMKICAgICAgICA6CiAgICAgICAgWzEuMF0gCiAgICAgICAgICAgIGRlY2xhcmVkIGFzIGZpbmFsCiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS4wIGFkZDwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjAgYWRkCiAgICAgICAgYnkKICAgICAgICBtaWNoaQogICAgICAgIDoKICAgICAgICBbMS4wXSAKICAgICAgICAgICAgTGljZW5zZXMgYWRkZWQKIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjAgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuMCB1cGRhdGUKICAgICAgICBieQogICAgICAgIGFuZHJlYXMKICAgICAgICA6CiAgICAgICAgWzEuMF0gCiAgICAgICAgICAgIHNob3dpbmcgZXJyb3IgcGFnZSB3aGVuIGphdmFkb2NzIGFyZSBub3QgeWV0IGdlbmVyYXRlZAogRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuMCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS4wIHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgbWljaGkKICAgICAgICA6CiAgICAgICAgWzEuMF0gCiAgICAgICAgICAgIGphdmFkb2MgYWRkZWQKIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjAgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuMCB1cGRhdGUKICAgICAgICBieQogICAgICAgIG1pY2hpCiAgICAgICAgOgogICAgICAgIFsxLjBdIAogICAgICAgICAgICB1c2VyIGFkbWluaXN0cmF0aW9uIHRvIGFkbWluIGFyZWEgYWRkZWQKIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjAgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuMCB1cGRhdGUKICAgICAgICBieQogICAgICAgIGVnbGkKICAgICAgICA6CiAgICAgICAgWzEuMF0gCiAgICAgICAgICAgIE1hZGUgaXQgd2VsbCBmb3JtZWQgYnkgcmVtb3ZpbmcgYSBzcHVyaW91cyAmbHQ7L21hcDphY3QmZ3Q7CiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS4wIGFkZDwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjAgYWRkCiAgICAgICAgYnkKICAgICAgICBlZ2xpCiAgICAgICAgOgogICAgICAgIFsxLjBdIAogICAgICAgICAgICBBdXRoZW50aWNhdG9yIHdoaWNoIGRlbGVnYXRlcyB0aGUgYXV0aGVudGljYXRpb24gdG8gdGhlIFVzZXIKY2xhc3MuIFRoZSB1c2VyIGNsYXNzIGtub3dzIGhvdyB0byBhdXRoZW50aWNhdGUsIGUuZy4gRmlsZVVzZXIKY29tcGFyZXMgd2l0aCBlbmNyeXB0ZWQgc3RyaW5nIGluIGZpbGUsIExEQVBVc2VyIG1ha2VzIGEKcmVxdWVzdCB0byBhbiBsZGFwIHNlcnZlci4KIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjAgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuMCB1cGRhdGUKICAgICAgICBieQogICAgICAgIGVnbGkKICAgICAgICA6CiAgICAgICAgWzEuMF0gCiAgICAgICAgICAgIE5lZWQgdG8gYWNjZXNzIHRoZSBpZGVudGl0eSBkb2MgZnJvbSB0aGUgc3ViY2xhc3MuIE1hZGUKZ2V0dGVyIHByb3RlY3RlZC4KIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjAgYWRkPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuMCBhZGQKICAgICAgICBieQogICAgICAgIGVnbGkKICAgICAgICA6CiAgICAgICAgWzEuMF0gCiAgICAgICAgICAgIFVuaXQgdGVzdHMgZm9yIExEQVBVc2VyCiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS4wIHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjAgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBlZ2xpCiAgICAgICAgOgogICAgICAgIFsxLjBdIAogICAgICAgICAgICBSZWFkIHRoZSBsZGFwIHByb3BlcnRpZXMgZnJvbSBhIGZpbGUuCiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS4wIHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjAgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBlZ2xpCiAgICAgICAgOgogICAgICAgIFsxLjBdIAogICAgICAgICAgICBNYWtlIHRoZSBwdWJsaWNhdGlvbiBwcml2YXRlIGFuZCBhZGQgYSBwcm90ZWN0ZWQgZ2V0dGVyLgogRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuMCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS4wIHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgZWdsaQogICAgICAgIDoKICAgICAgICBbMS4wXSAKICAgICAgICAgICAgVGhlIHB1YmxpY2F0aW9uIG5lZWRzIHRvIGJlIHByb3RlY3RlZCBzbyB0aGUgU3ViQ2xhc3NlcyBjYW4KYWNjZXNzIGl0LgpTb21lIG9mIHRoZSBjb25maWcgZmllbGRzIG5lZWQgdG8gYmUgb3B0aW9uYWwgKGkuZS4gd2l0aApkZWZhdWx0IHBhcmFtcykuIFRoZSBzdWJjbGFzcyBtaWdodCBub3QgcHJvdmlkZSBpdC4KIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjAgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuMCB1cGRhdGUKICAgICAgICBieQogICAgICAgIGFuZHJlYXMKICAgICAgICA6CiAgICAgICAgWzEuMF0gCiAgICAgICAgICAgIG1vdmVkIHNpZGJhciB0byB0aGUgbGVmdCBzaWRlCiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS4wIHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjAgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBlZ2xpCiAgICAgICAgOgogICAgICAgIFsxLjBdIAogICAgICAgICAgICBUaGUgbGRhcCB1c2VyIG5vdyBhY3R1YWxseSBhdXRoZW50aWNhdGVzIHZpYSBMREFQCmFuZCBhbHNvIGZldGNoZXMgdGhlIGZ1bGxOYW1lIGZyb20gdGhlIExEQVAgZGlyZWN0b3J5LgogRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuMCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS4wIHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgZWRpdGgKICAgICAgICA6CiAgICAgICAgWzEuMF0gCiAgICAgICAgICAgIGNhbGwgb2YgdGhlIGFudCB0YXNrIGZvciB0aGUgcGFzdGUgY2FzZQogRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuMCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS4wIHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgZWRpdGgKICAgICAgICA6CiAgICAgICAgWzEuMF0gCiAgICAgICAgICAgIGEgcHJlcGFyZVRlc3QgbWV0aG9kIHRvIGZpeCBzb21lIGNvbmRpdGlvbnMgYmVmb3JlIHJ1bm5pbmcgdGhlIHRlc3QKIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjAgYWRkPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuMCBhZGQKICAgICAgICBieQogICAgICAgIGVkaXRoCiAgICAgICAgOgogICAgICAgIFsxLjBdIAogICAgICAgICAgICBjb21wdXRlIGEgbmV3IGlkIGZvciBhIGRvY3VtZW50IGlmIHRoZXJlIGlzIGFscmVhZHkgYSBub2RlIGZvciBhIGRvY3VtZW50IHdpdGggdGhpcyBpZAogRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuMCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS4wIHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgYW5kcmVhcwogICAgICAgIDoKICAgICAgICBbMS4wXSAKICAgICAgICAgICAgY2hhbmdlZCBqYXZhZG9jcyBkZXN0aW5hdGlvbiB0byBkb2NzLW5ldwogRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuMCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS4wIHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgYW5kcmVhcwogICAgICAgIDoKICAgICAgICBbMS4wXSAKICAgICAgICAgICAgLSBhZGRlZCBqYXZhZG9jcyBtZW51IGl0ZW0KLSBhZGRlZCBqYXZhZG9jcyBwaXBlbGluZQogRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuMCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS4wIHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgYW5kcmVhcwogICAgICAgIDoKICAgICAgICBbMS4wXSAKICAgICAgICAgICAgbW92ZWQgTkFNRVNQQUNFIGFuZCBERUZBVUxUX1BSRUZJWCBmcm9tIFdvcmtmbG93QnVpbGRlciB0byBXb3JrZmxvdwogRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuMCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS4wIHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgYW5kcmVhcwogICAgICAgIDoKICAgICAgICBbMS4wXSAKICAgICAgICAgICAgYWRkZWQgcHVibGlzaGVyIHRlc3QKIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjAgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuMCB1cGRhdGUKICAgICAgICBieQogICAgICAgIGFuZHJlYXMKICAgICAgICA6CiAgICAgICAgWzEuMF0gCiAgICAgICAgICAgIENvbXBsZXRlZCBKYXZhRG9jLgogRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuMCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS4wIHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgYW5kcmVhcwogICAgICAgIDoKICAgICAgICBbMS4wXSAKICAgICAgICAgICAgYWRkZWQgZGVmYXVsdCBBbnRUYXNrCiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS4wIHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjAgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBhbmRyZWFzCiAgICAgICAgOgogICAgICAgIFsxLjBdIAogICAgICAgICAgICAtIGltcHJvdmVkIHJldXNhYmlsaXR5Ci0gdXNpbmcgdGFyZ2V0IGluc3RlYWQgb2YgdGFzayBJRCBmb3IgY29uZmlndXJhdGlvbgogRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuMCBhZGQ8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS4wIGFkZAogICAgICAgIGJ5CiAgICAgICAgYW5kcmVhcwogICAgICAgIDoKICAgICAgICBbMS4wXSAKICAgICAgICAgICAgYWRkZWQgcHVibGlzaGVyIHRlc3QKIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjAgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuMCB1cGRhdGUKICAgICAgICBieQogICAgICAgIGFuZHJlYXMKICAgICAgICA6CiAgICAgICAgWzEuMF0gCiAgICAgICAgICAgIGFkZGVkIGNvcnJlY3QgbGljZW5jZSBoZWFkZXIKIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjAgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuMCB1cGRhdGUKICAgICAgICBieQogICAgICAgIGFuZHJlYXMKICAgICAgICA6CiAgICAgICAgWzEuMF0gCiAgICAgICAgICAgIGFsbG93aW5nIHRvIHBhc3MgdGhlIHRhc2sgSUQgYXMgYSBjb21tYW5kLWxpbmUgcGFyYW1ldGVyCiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS4wIHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjAgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBhbmRyZWFzCiAgICAgICAgOgogICAgICAgIFsxLjBdIAogICAgICAgICAgICBhbGxvd2luZyBldmFsdWF0ZVRlc3QoKSB0byB0aHJvdyBhbnkgZXhjZXB0aW9uCiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS4wIHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjAgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBhbmRyZWFzCiAgICAgICAgOgogICAgICAgIFsxLjBdIAogICAgICAgICAgICB1c2luZyB0ZW1wbGF0ZSBtZXRob2QgdG8gc2ltcGxpZnkgcmV1c2UKIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjAgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuMCB1cGRhdGUKICAgICAgICBieQogICAgICAgIGVnbGkKICAgICAgICA6CiAgICAgICAgWzEuMF0gCiAgICAgICAgICAgIFRoZSBpbnRlcmZhY2UgZm9yIHF1ZXJ5aW5nIHRoZSBkb2N1bWVudC1wYXRoIGhhcyB0byBiZQplbmhhbmNlZCB0byBiZSBhYmxlIHRvIGhhbmRsZSBsYW5ndWFnZXMuCiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS4wIHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjAgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBtaWNoaQogICAgICAgIDoKICAgICAgICBbMS4wXSAKICAgICAgICAgICAgcmV2ZXJzZWQgdG8gcHJldmlvdXMgdmVyc2lvbgogRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuMCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS4wIHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgbWljaGkKICAgICAgICA6CiAgICAgICAgWzEuMF0gCiAgICAgICAgICAgIG1vcmUgZGV0YWkmIzY1NTMzOyYjNjU1MzM7bHMgYWRkZWQKIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjAgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuMCB1cGRhdGUKICAgICAgICBieQogICAgICAgIG1pY2hpCiAgICAgICAgOgogICAgICAgIFsxLjBdIAogICAgICAgICAgICBvbGQgZG9tYWluIHJlcGxhY2VkIGJ5IG5ldyBkb21haW4KIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjAgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuMCB1cGRhdGUKICAgICAgICBieQogICAgICAgIG1pY2hpCiAgICAgICAgOgogICAgICAgIFsxLjBdIAogICAgICAgICAgICBvbGQgZG9tYWluIGJ5IG5ldyBkb21haW4gcmVwbGFjZWQKIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjAgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuMCB1cGRhdGUKICAgICAgICBieQogICAgICAgIGdyZWdvcgogICAgICAgIDoKICAgICAgICBbMS4wXSAKICAgICAgICAgICAgZml4ZWQgc2V2ZXJhbCBzbWFsbCBpc3N1ZXMgd2l0aCB0aGUgaW5mbyBhcmVhIHBhbmUKCi0gamF2YXNjcmlwdCBub3cgbG9hZHMgb24gZXZlcnkgVVJJCi0gcGFuZSBpcyBub3QgcGFzc2VkIHRocm91Z2ggc3R5bGUtY21zLXBhZ2UKIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjAgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuMCB1cGRhdGUKICAgICAgICBieQogICAgICAgIG1pY2hpCiAgICAgICAgOgogICAgICAgIFsxLjBdIAogICAgICAgICAgICB4bWwuYXBhY2hlLm9yZyByZXBsYWNlZCBieSBjb2Nvb24uYXBhY2hlLm9yZwogRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuMCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS4wIHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgZ3JlZ29yCiAgICAgICAgOgogICAgICAgIFsxLjBdIAogICAgICAgICAgICBhcHBseSBzdHlsZS1jbXMtcGFnZSB0byBpbmZvIGFyZWEgc2NyZWVucwoKaHR0cDovL3dpa2kuY29jb29uZGV2Lm9yZy9XaWtpLmpzcD9wYWdlPUxlbnlhQ01TU2NyZWVucwogRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuMCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS4wIHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgZ3JlZ29yCiAgICAgICAgOgogICAgICAgIFsxLjBdIAogICAgICAgICAgICBhZGp1c3RlZCBzY3JlZW5zIHRvIGNvbXBseSB3aXRoIExlbnlhIHNjcmVlbiBsYXlvdXRzCgpodHRwOi8vd2lraS5jb2Nvb25kZXYub3JnL1dpa2kuanNwP3BhZ2U9TGVueWFDTVNTY3JlZW5zCiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS4wIHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjAgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBncmVnb3IKICAgICAgICA6CiAgICAgICAgWzEuMF0gCiAgICAgICAgICAgIG1hZGUgdHJlZSBpbWFnZXMgc2hvdyB1cCBhZ2FpbgogRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuMCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS4wIHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgYW5kcmVhcwogICAgICAgIDoKICAgICAgICBbMS4wXSAKICAgICAgICAgICAgY2hhbmdlZCBzdHlsZSBvZiBuYXZpZ2F0aW9uICsgY29udGVudCAmbHQ7ZGl2Jmd0O3MKIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjAgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuMCB1cGRhdGUKICAgICAgICBieQogICAgICAgIGFuZHJlYXMKICAgICAgICA6CiAgICAgICAgWzEuMF0gCiAgICAgICAgICAgIHVzaW5nIGNsYXNzTmFtZSBpbnN0ZWFkIG9mIGNvbG9yIChjaGFuZ2luZyBDU1MgY2xhc3MpCiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS4wIHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjAgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBhbmRyZWFzCiAgICAgICAgOgogICAgICAgIFsxLjBdIAogICAgICAgICAgICB1cGRhdGVkIHRhYiBzdHlsZXMKIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjAgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuMCB1cGRhdGUKICAgICAgICBieQogICAgICAgIGFuZHJlYXMKICAgICAgICA6CiAgICAgICAgWzEuMF0gCiAgICAgICAgICAgIHJlbW92ZWQgY2xhc3MgbGVueWEtcGFkCiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS4wIHJlbW92ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjAgcmVtb3ZlCiAgICAgICAgYnkKICAgICAgICBncmVnb3IKICAgICAgICA6CiAgICAgICAgWzEuMF0gCiAgICAgICAgICAgIHJlbW92ZWQgY29jb29uc2FtcGxlcyBkaXIKIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjAgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuMCB1cGRhdGUKICAgICAgICBieQogICAgICAgIGdyZWdvcgogICAgICAgIDoKICAgICAgICBbMS4wXSAKICAgICAgICAgICAgbW92ZWQgaW5mbyBhbmQgYWRtaW4gc2l0ZW1hcHMgYWZ0ZXIgdXNlY2FzZSBzaXRlbWFwLiB0aGV5IHdlcmUgYmVmb3JlIHdoaWNoIHByZXZlbnRlZCB1c2VjYXNlcyBmcm9tIGJlaW5nIG1hdGNoZWQKIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjAgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuMCB1cGRhdGUKICAgICAgICBieQogICAgICAgIGdyZWdvcgogICAgICAgIDoKICAgICAgICBbMS4wXSAKICAgICAgICAgICAgbW92ZWQgaW5mbyBhbmQgYWRtaW4gc2l0ZW1hcHMgYWZ0ZXIgdXNlY2FzZSBzaXRlbWFwLiB0aGV5IHdlcmUgYmVmb3JlIHdoaWNoIHByZXZlbnRlZCB1c2VjYXNlcyBmcm9tIGJlaW5nIG1hdGNoZWQKIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjAgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuMCB1cGRhdGUKICAgICAgICBieQogICAgICAgIGFuZHJlYXMKICAgICAgICA6CiAgICAgICAgWzEuMF0gCiAgICAgICAgICAgIGNoYW5nZWQgQ01TIHNjcmVlbiBuYW1lc3BhY2UgVVJJCiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS4wIHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjAgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBlZ2xpCiAgICAgICAgOgogICAgICAgIFsxLjBdIAogICAgICAgICAgICBBZGRlZCBhIFRPRE8gaXRlbS4KIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjAgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuMCB1cGRhdGUKICAgICAgICBieQogICAgICAgIGVnbGkKICAgICAgICA6CiAgICAgICAgWzEuMF0gCiAgICAgICAgICAgIEZpeGVkIGEgcHJvYmxlbSB3aXRoIGEgbnVsbHBvaW50ZXJleGNlcHRpb24gaW4gZ2V0TGFiZWwgYW5kCmZpeGVkIHRoZSBpbmRlbnRpbmcuCiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS4wIHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjAgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBhbmRyZWFzCiAgICAgICAgOgogICAgICAgIFsxLjBdIAogICAgICAgICAgICBhZGRlZCBpbmN1YmF0b3IgbWVzc2FnZQogRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuMCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS4wIHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgYW5kcmVhcwogICAgICAgIDoKICAgICAgICBbMS4wXSAKICAgICAgICAgICAgcmVtb3ZlZCAmbHQ7cCZndDsgb3V0c2lkZSBvZiAmbHQ7c291cmNlJmd0OwogRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuMCBhZGQ8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS4wIGFkZAogICAgICAgIGJ5CiAgICAgICAgYW5kcmVhcwogICAgICAgIDoKICAgICAgICBbMS4wXSAKICAgICAgICAgICAgLSBhZGRlZCBjcmVhdG9yIHRlc3QKLSB1c2luZyBwcm9wZXJ0eSBmb3IgdGVzdCBjbGFzc3BhdGgKIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjAgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuMCB1cGRhdGUKICAgICAgICBieQogICAgICAgIGFuZHJlYXMKICAgICAgICA6CiAgICAgICAgWzEuMF0gCiAgICAgICAgICAgIGNvcnJlY3RlZCB0aCBidWcKIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjAgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuMCB1cGRhdGUKICAgICAgICBieQogICAgICAgIGVnbGkKICAgICAgICA6CiAgICAgICAgWzEuMF0gCiAgICAgICAgICAgIFRoZSBhdXRoZW50aWNhdGlvbiBpbiB0aGUgSU1MQXV0aGVudGljYXRvciBpcyBub3cgZG9uZSB3aXRoCnRoZSBoZWxwIG9mIHRoZSBVc2VyIGNsYXNzLiBUaGF0IHdheSB3ZSBjYW4gdHJhbnNwYXJlbnRseQphdXRoZW50aWNhdGUgTERBUCB1c2Vycy4KRm9yIHRoYXQgdG8gd29yayBJIGhhZCB0byBjaGFuZ2UgdGhlIGludGVyZmFjZXMgYW5kIHBhc3MKdGhlIHB1YmxpY2F0aW9uIHRyb3VnaCBmcm9tIHRoZSB0b3AgQXV0aGVudGljYXRvciBhY3Rpb24uCiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS4wIGFkZDwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjAgYWRkCiAgICAgICAgYnkKICAgICAgICBlZ2xpCiAgICAgICAgOgogICAgICAgIFsxLjBdIAogICAgICAgICAgICBBZGRlZCBhIGNsYXNzIHRvIGhhbmRsZSBMREFQIHVzZXJzLgogRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuMCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS4wIHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgZWdsaQogICAgICAgIDoKICAgICAgICBbMS4wXSAKICAgICAgICAgICAgU2V0IHRoZSBlbmNyeXB0ZWQgcGFzc3dvcmQgZGlyZWN0bHkuIE90aGVyd2lzZSB0aGUgZW5jcnlwdGVkCnBhc3N3b3JkIGZyb20gdGhlIGNvbmZpZ3VyYXRpb24gd2lsbCBiZSBlbmNyeXB0ZWQgYWdhaW4uCiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS4wIHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjAgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBlZ2xpCiAgICAgICAgOgogICAgICAgIFsxLjBdIAogICAgICAgICAgICBBZGQgYW4gYXV0aGVudGljYXRlIG1ldGhvZC4KQWRkIGEgbWV0aG9kIHRoYXQgYWxsb3dzIHN1YmNsYXNzZXMgdG8gc2V0IHRoZSBlbmNyeXB0ZWQKcGFzc3dvcmQgZGlyZWN0bHkuCiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS4wIHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjAgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBlZ2xpCiAgICAgICAgOgogICAgICAgIFsxLjBdIAogICAgICAgICAgICBBZGRlZCBhIHRlc3QgZm9yIGF1dGhlbnRpY2F0ZQogRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuMCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS4wIHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgYW5kcmVhcwogICAgICAgIDoKICAgICAgICBbMS4wXSAKICAgICAgICAgICAgdXNpbmcgbGVueWEgQ01TIHNjcmVlbnMgZm9yIHVzZXIgYWRtaW4gdXNlY2FzZXMKIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjAgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuMCB1cGRhdGUKICAgICAgICBieQogICAgICAgIGFuZHJlYXMKICAgICAgICA6CiAgICAgICAgWzEuMF0gCiAgICAgICAgICAgIHNpbXBsaWZpZWQgc3RydWN0dXJlIChhbGwgYm9keSBjb250ZW50cyBhcmUgZm9yd2FyZGVkKQogRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuMCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS4wIHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgYW5kcmVhcwogICAgICAgIDoKICAgICAgICBbMS4wXSAKICAgICAgICAgICAgdXNpbmcgbGVueWEgY3NzCiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS4wIGFkZDwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjAgYWRkCiAgICAgICAgYnkKICAgICAgICBhbmRyZWFzCiAgICAgICAgOgogICAgICAgIFsxLjBdIAogICAgICAgICAgICAtIGFkZGVkIGZvcm0gY3NzCi0gYWRkZWQgdGFibGUgY3NzCi0gZmFjdG9yZWQgc29tZSB0aGluZ3Mgb3V0IG9mIGRlZmF1bHQuY3NzCiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS4wIHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjAgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBncmVnb3IKICAgICAgICA6CiAgICAgICAgWzEuMF0gCiAgICAgICAgICAgIGhvb2tlZCB1cCBuZXcgSURFIHRhcmdldHMuCiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS4wIHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjAgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBhbmRyZWFzCiAgICAgICAgOgogICAgICAgIFsxLjBdIAogICAgICAgICAgICBleHRlbmRlZCB3b3JrZmxvdyB2ZXJzaW9uCiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS4wIHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjAgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBhbmRyZWFzCiAgICAgICAgOgogICAgICAgIFsxLjBdIAogICAgICAgICAgICByZWxvYWRpbmcgaW5zdGFuY2UgZm9yIGV2ZXJ5IHRyYW5zaXRpb24KIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjAgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuMCB1cGRhdGUKICAgICAgICBieQogICAgICAgIGFuZHJlYXMKICAgICAgICA6CiAgICAgICAgWzEuMF0gCiAgICAgICAgICAgIHVzaW5nIFB1YmxpY2F0aW9uSGVscGVyIGZvciBpZGVudGl0eSB0ZXN0CiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS4wIHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjAgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBhbmRyZWFzCiAgICAgICAgOgogICAgICAgIFsxLjBdIAogICAgICAgICAgICB1c2luZyBQdWJsaWNhdGlvbkhlbHBlcgogRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuMCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS4wIHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgYW5kcmVhcwogICAgICAgIDoKICAgICAgICBbMS4wXSAKICAgICAgICAgICAgdXNpbmcgcHJvcGVydGllcyBmb3IgcHVibGljYXRpb24gaWRzCiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS4wIHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjAgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBhbmRyZWFzCiAgICAgICAgOgogICAgICAgIFsxLjBdIAogICAgICAgICAgICBhZGRlZCBQdWJsaWNhdGlvbkhlbHBlcgogRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuMCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS4wIHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgYW5kcmVhcwogICAgICAgIDoKICAgICAgICBbMS4wXSAKICAgICAgICAgICAgcmVmYWN0b3JlZCB0ZXN0IGJ1aWxkZmlsZToKLSBhZGRlZCB0YXJnZXQgdGVzdC5wdWIucHJlcGFyZQotIHNpbmdsZSB0YXJnZXRzIGZvciB0ZXN0cwogRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuMCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS4wIHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgZ3JlZ29yCiAgICAgICAgOgogICAgICAgIFsxLjBdIAogICAgICAgICAgICB3cmVzdGxlZCB3aXRoIGNzcyB0byBicmluZyBpdCBjbG9zZXIgdG8gYmVpbmcgdmFsaWQKIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjAgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuMCB1cGRhdGUKICAgICAgICBieQogICAgICAgIGdyZWdvcgogICAgICAgIDoKICAgICAgICBbMS4wXSAKICAgICAgICAgICAgaW5mbyB1c2VjYXNlIGFkZGVkIChmb3IgaW5mbyB0YWIgcGFuZXMpCiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS4wIHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjAgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBncmVnb3IKICAgICAgICA6CiAgICAgICAgWzEuMF0gCiAgICAgICAgICAgIGFwcGVuZGVkIHVzZSBjYXNlcyB0byBsaW5rcyBpbiB0cmVlIHdpZGdldAogRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuMCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS4wIHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgZ3JlZ29yCiAgICAgICAgOgogICAgICAgIFsxLjBdIAogICAgICAgICAgICBtYWRlIHRhYiBzd2l0Y2hpbmcgd29yayBpbiB0aGUgbWVudWJhci4KCmkgZGlkbnQgZnVzcyBhcm91bmQgd2l0aCB0aGUgaWNvbnMgdG9vIG11Y2gsIGltIHN1cmUgc29tZW9uZSBlbHNlIGNhbiBkbyBiZXR0ZXIKIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjAgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuMCB1cGRhdGUKICAgICAgICBieQogICAgICAgIGVnbGkKICAgICAgICA6CiAgICAgICAgWzEuMF0gCiAgICAgICAgICAgIEluZGVudGluZyBmaXguCiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS4wIHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjAgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBlZGl0aAogICAgICAgIDoKICAgICAgICBbMS4wXSAKICAgICAgICAgICAgYWRkIG1ldGhvZCB0byByZW1vdmUgYSBub2RlCmFkZCBhIG1ldGhvZCB0byBhZGQgdGhlIG5vZGUgYnkgaXRzIGRvY3VtZW50IGlkCiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS4wIGFkZDwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjAgYWRkCiAgICAgICAgYnkKICAgICAgICBlZGl0aAogICAgICAgIDoKICAgICAgICBbMS4wXSAKICAgICAgICAgICAgQ29weS9Nb3ZlIGEgbm9kZSBpbiB0aGUgc2l0ZXRyZWUKIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjAgYWRkPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuMCBhZGQKICAgICAgICBieQogICAgICAgIGVnbGkKICAgICAgICA6CiAgICAgICAgWzEuMF0gCiAgICAgICAgICAgIEFkZGVkIHRoZSBkb2N1bWVudC1wYXRoIHRvIHRoZSBQYWdlRW52ZWxvcGUgYW5kIHRvIHRoZQpQYWdlRW52ZWxvcGVNb2R1bGUuIFRoZSBkb2N1bWVudC1wYXRoIGlzIGNhbGN1bGF0ZWQgYnkgYQpjbGFzcyB0aGF0IGltcGxlbWVudHMgdGhlIGludGVyZmFjZSBEb2N1bWVudElkVG9QYXRoTWFwcGVyLgogRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuMCBhZGQ8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS4wIGFkZAogICAgICAgIGJ5CiAgICAgICAgZ3JlZ29yCiAgICAgICAgOgogICAgICAgIFsxLjBdIAogICAgICAgICAgICBhZGRlZCBtZW51IHRvIGFkbWluIGFyZWEKIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjAgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuMCB1cGRhdGUKICAgICAgICBieQogICAgICAgIG1pY2hpCiAgICAgICAgOgogICAgICAgIFsxLjBdIAogICAgICAgICAgICBvbmUgbW9yZSBleGNlcHRpb24gYWRkZWQKIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjAgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuMCB1cGRhdGUKICAgICAgICBieQogICAgICAgIG1pY2hpCiAgICAgICAgOgogICAgICAgIFsxLjBdIAogICAgICAgICAgICBUQ1BNb25pdG9yIGFkZGVkCiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS4wIHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjAgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBlZ2xpCiAgICAgICAgOgogICAgICAgIFsxLjBdIAogICAgICAgICAgICBNYWtlIHN1cmUgdGhlc2UgZmlsZXMgYXJlIG5vdCB0cmVhdGVkIGFzIGJpbmFyeSBmaWxlcwogRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuMCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS4wIHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgZWdsaQogICAgICAgIDoKICAgICAgICBbMS4wXSAKICAgICAgICAgICAgTWFrZSBzdXJlIHRoZSBuZXcgZ3JvdXBzIGhhdmUgcmVhZCBhY2Nlc3MuCiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS4wIHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjAgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBlZ2xpCiAgICAgICAgOgogICAgICAgIFsxLjBdIAogICAgICAgICAgICBJbmRlbnRpbmcgZml4LgogRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuMCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS4wIHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgZWdsaQogICAgICAgIDoKICAgICAgICBbMS4wXSAKICAgICAgICAgICAgQ3JlYXRlZCBHcm91cCBhbmQgUm9sZSBmaWxlcyB0byBnbyB3aXRoIHRoZSBVc2VyIChpbWwpIGZpbGVzLgpBbHNvIGFkYXB0ZWQgdGhlIHVzZXIgZmlsZXMgdG8gYmUgaW4gZ3JvdXBzIGZvciB3aGljaCB0aGVyZSBpcwphIGdyb3VwIGZpbGUuCiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS4wIHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjAgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBlZ2xpCiAgICAgICAgOgogICAgICAgIFsxLjBdIAogICAgICAgICAgICBCZWNhdXNlIHRoZSBwYXJpYWwgY29uc3RydWN0b3JzIGZvciBVc2VyIGFyZSBnb25lIG5vdywgd2UKaGF2ZSB0byBwcm92aWRlIGFsbCB0aGUgaW5mbyB3aGVuIGNyZWF0aW5nIGEgbmV3IFVzZXIuCiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS4wIHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjAgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBlZ2xpCiAgICAgICAgOgogICAgICAgIFsxLjBdIAogICAgICAgICAgICBSZW1vdmVkIHRoZSBjb25zdHJ1Y3RvciB3aGljaCBvbmx5IHByb3ZpZGVzCnBhcnRpYWwgaW5mb3JtYXRpb24uClVzZSB0aGUgY29uc3RydWN0b3IgZnJvbSB0aGUgc3VwZXIgY2xhc3MgdG8gYXNzaWduIHRoZQp2YWx1ZXMgZnJvbSB0aGUgY29uZmlndXJhdGlvbi4KIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjAgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuMCB1cGRhdGUKICAgICAgICBieQogICAgICAgIGVnbGkKICAgICAgICA6CiAgICAgICAgWzEuMF0gCiAgICAgICAgICAgIFJlbW92ZWQgdGhlIGNvbnN0cnVjdG9ycyB3aGljaCBvbmx5IHByb3ZpZGUgcGFydCBvZgphbGwgdGhlIGluZm9ybWF0aW9uLgpBbHNvIG1ha2Ugc3VyZSB0aGF0IHRoZSBjb25zdHJ1Y3RvciB1c2VzIHNldFBhc3N3b3JkIHNvIHRoYXQKb25seSB0aGUgZW5jcnlwdGVkIHBhc3N3ZCBpcyBzdG9yZWQuCiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS4wIHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjAgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBhbmRyZWFzCiAgICAgICAgOgogICAgICAgIFsxLjBdIAogICAgICAgICAgICBhZGRlZCB1c2VjYXNlICJ0cmFuc2l0aW9uIiBmb3IgdHJhbnNpdGlvbnMgd2l0aG91dCBhY3Rpb25zCiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS4wIHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjAgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBhbmRyZWFzCiAgICAgICAgOgogICAgICAgIFsxLjBdIAogICAgICAgICAgICBkaXNhYmxlZCBpdGVtcyBhcmUgZ3JleQogRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuMCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS4wIHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgYW5kcmVhcwogICAgICAgIDoKICAgICAgICBbMS4wXSAKICAgICAgICAgICAgYWRkZWQgRW1wdHlUYXNrICh1c2VkIHRvIHRyaWdnZXIgdHJhbnNpdGlvbnMgd2l0aG91dCBhY3Rpb25zKQogRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuMCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS4wIHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgYW5kcmVhcwogICAgICAgIDoKICAgICAgICBbMS4wXSAKICAgICAgICAgICAgaW1wbGVtZW50ZWQgdG9TdHJpbmcoKQogRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuMCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS4wIHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgYW5kcmVhcwogICAgICAgIDoKICAgICAgICBbMS4wXSAKICAgICAgICAgICAgLSBpbnZvY2F0aW9uIGNoZWNrIGJ1ZyBmaXhlZAogRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuMCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS4wIHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgYW5kcmVhcwogICAgICAgIDoKICAgICAgICBbMS4wXSAKICAgICAgICAgICAgYWRkaW5nIHZhcmlhYmxlIGVsZW1lbnRzIG9ubHkgd2hlbiB0cmFuc2l0aW9uIGZpcmVkCiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS4wIHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjAgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBncmVnb3IKICAgICAgICA6CiAgICAgICAgWzEuMF0gCiAgICAgICAgICAgIHhzbCBub3cgc3VjZXNzZnVsbHkgcG9wdWxhdGVzIHRoZSB0cmVlIHdpZGdldAogRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuMCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS4wIHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgZWdsaQogICAgICAgIDoKICAgICAgICBbMS4wXSAKICAgICAgICAgICAgTWFrZSB0aGUgY29tbWVudCBmaWVsZCBvcHRpb25hbC4KIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjAgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuMCB1cGRhdGUKICAgICAgICBieQogICAgICAgIGVnbGkKICAgICAgICA6CiAgICAgICAgWzEuMF0gCiAgICAgICAgICAgIEZpeGVkIGEgcHJvYmxlbSBpbiBhIHRlc3QgY2FzZS4KIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjAgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuMCB1cGRhdGUKICAgICAgICBieQogICAgICAgIGVnbGkKICAgICAgICA6CiAgICAgICAgWzEuMF0gCiAgICAgICAgICAgIFJlbW92ZWQgYSB0aHJvd3MgZGVjbGFyYXRpb24gd2hlcmUgaXQgd2Fzbid0IG5lZWRlZC4KIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjAgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuMCB1cGRhdGUKICAgICAgICBieQogICAgICAgIGVnbGkKICAgICAgICA6CiAgICAgICAgWzEuMF0gCiAgICAgICAgICAgIEZpeGVkIGEgdHlwbyBpbiB0aGUgeG1sIGdlbmVyYXRpb24uCiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS4wIHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjAgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBhbmRyZWFzCiAgICAgICAgOgogICAgICAgIFsxLjBdIAogICAgICAgICAgICAtIGFkZGVkIC9sZW55YSByZXNvdXJjZSBtYXRjaGVyCi0gYWRkZWQgYXJlYSB3aWxkY2FyZCB0byBwdWJsaWNhdGlvbiByZXNvdXJjZSBwYXR0ZXJuCiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS4wIHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjAgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBhbmRyZWFzCiAgICAgICAgOgogICAgICAgIFsxLjBdIAogICAgICAgICAgICAtIGFkZGVkIC9sZW55YSBtYXRjaGVycwotIGFkZGVkIGFyZWEgd2lsZGNhcmQgdG8gcHVibGljYXRpb24gcGF0dGVybnMKIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjAgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuMCB1cGRhdGUKICAgICAgICBieQogICAgICAgIGFuZHJlYXMKICAgICAgICA6CiAgICAgICAgWzEuMF0gCiAgICAgICAgICAgIHJlbmFtZWQgY29udGV4dCB0byBjb250ZXh0cHJlZml4CiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS4wIGFkZDwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjAgYWRkCiAgICAgICAgYnkKICAgICAgICBhbmRyZWFzCiAgICAgICAgOgogICAgICAgIFsxLjBdIAogICAgICAgICAgICBhZGRlZCB1bml0IHRlc3RzIGRvY3MKIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjAgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuMCB1cGRhdGUKICAgICAgICBieQogICAgICAgIGFuZHJlYXMKICAgICAgICA6CiAgICAgICAgWzEuMF0gCiAgICAgICAgICAgIGFkZGVkIGNyZWF0b3IgdGFzawogRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuMCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS4wIHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgYW5kcmVhcwogICAgICAgIDoKICAgICAgICBbMS4wXSAKICAgICAgICAgICAgYWRkZWQgY3JlYXRvciB0YXJnZXQKIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjAgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuMCB1cGRhdGUKICAgICAgICBieQogICAgICAgIGFuZHJlYXMKICAgICAgICA6CiAgICAgICAgWzEuMF0gCiAgICAgICAgICAgIC0gYWRkZWQgbWVudSBmaWx0ZXIKLSBhZGRlZCBhcmVhIHRvIHBhZ2UyeGh0bWwgcm9vdAogRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuMCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS4wIHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgYW5kcmVhcwogICAgICAgIDoKICAgICAgICBbMS4wXSAKICAgICAgICAgICAgYWRkZWQgc2V0VmFsdWUodmFyaWFibGVOYW1lLCB2YWx1ZSkKIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjAgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuMCB1cGRhdGUKICAgICAgICBieQogICAgICAgIGFuZHJlYXMKICAgICAgICA6CiAgICAgICAgWzEuMF0gCiAgICAgICAgICAgIGFkZGVkIHN0YXRlIHZhcmlhYmxlIHBlcnNpc3RlbmNlCiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS4wIHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjAgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBlZ2xpCiAgICAgICAgOgogICAgICAgIFsxLjBdIAogICAgICAgICAgICBUaGUgcGFzc3dvcmQgaXMgbm93IHN0b3JlZCBvbmx5IGluIGVuY3J5cHRlZCBmb3JtLgogRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuMCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS4wIHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgZWdsaQogICAgICAgIDoKICAgICAgICBbMS4wXSAKICAgICAgICAgICAgTWFrZSBzdXJlIHRoZSB1c2VyIGlkIGNhbid0IGJlIGNoYW5nZWQgd2hlbiBtb2RpZnlpbmcgdXNlcgpkYXRhLgogRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuMCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS4wIHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgZWdsaQogICAgICAgIDoKICAgICAgICBbMS4wXSAKICAgICAgICAgICAgV2hlbiBtb2RpZnlpbmcgYSB1c2VyIHRoZSBvcHRpb24gc2hvdWQgc2hvdyBhbGwgcG9zc2libGUKZ3JvdXBzLCBub3QganVzdCB0aGUgb25lcyB0aGF0IHRoZSB1c2VyIGFscmVhZHkgaGFzLgogRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuMCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS4wIHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgZ3JlZ29yCiAgICAgICAgOgogICAgICAgIFsxLjBdIAogICAgICAgICAgICBtYWRlIHRoZSB0YWJzIGluIHRoZSBpbmZvIGFyZWEgd29yawogRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuMCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS4wIHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgZWdsaQogICAgICAgIDoKICAgICAgICBbMS4wXSAKICAgICAgICAgICAgQWRkZWQgc29tZSBjb25zaXN0ZW5jeSBjaGVja3MuCiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS4wIHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjAgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBtaWNoaQogICAgICAgIDoKICAgICAgICBbMS4wXSAKICAgICAgICAgICAgZGVmYXVsdCBjc3MgYWRkZWQKIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjAgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuMCB1cGRhdGUKICAgICAgICBieQogICAgICAgIGFuZHJlYXMKICAgICAgICA6CiAgICAgICAgWzEuMF0gCiAgICAgICAgICAgIHJlbmFtZWQgY29udGV4dC1wcmVmaXggdG8gY29udGV4dHByZWZpeCAoc29tZSBoeXBoZW4gYnVnKQogRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuMCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS4wIHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgZ3JlZ29yCiAgICAgICAgOgogICAgICAgIFsxLjBdIAogICAgICAgICAgICB3aXJlZCB1cCB0aGUgbWVudSBiYXIgZm9yIHRoZSBpbmZvIGFyZWEuCiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS4wIHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjAgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBhbmRyZWFzCiAgICAgICAgOgogICAgICAgIFsxLjBdIAogICAgICAgICAgICB1bi1jb21tZW50ZWQgaW5mby54bWwKIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjAgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuMCB1cGRhdGUKICAgICAgICBieQogICAgICAgIGFuZHJlYXMKICAgICAgICA6CiAgICAgICAgWzEuMF0gCiAgICAgICAgICAgIHJlbW92ZWQgbG9naWNzaGVldCB1c2FnZQogRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuMCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS4wIHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgYW5kcmVhcwogICAgICAgIDoKICAgICAgICBbMS4wXSAKICAgICAgICAgICAgLSBzaW1wbGlmaWVkIHB1YmxpY2F0aW9uIGlkIHJlc29sdmluZwotIG51bGwgY29udGV4dFBhdGggaXMgaGFuZGxlZAogRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuMCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS4wIHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgYW5kcmVhcwogICAgICAgIDoKICAgICAgICBbMS4wXSAKICAgICAgICAgICAgLSBiZXR0ZXIgZXhjZXB0aW9uIG1lc3NhZ2VzCi0gcGxhdXNpYmlsaXR5IGNoZWNrCiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS4wIHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjAgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBlZ2xpCiAgICAgICAgOgogICAgICAgIFsxLjBdIAogICAgICAgICAgICBXaGVuIGluaXRpYWxpemVkIChpbiB0aGUgY29uc3RydWN0b3IpIHdpdGggYSBwdWJsaWNhdGlvbiwgZG8KdHJ5IHRvIHJlbWVtYmVyIGl0LCBpLmUuIGZvcmdvdCB0byBzdG9yZSB0aGUgcHVibGljYXRpb24sIHNvCndoZW4gdHJ5aW5nIHRvIGRlbGV0ZSBsYXRlciBpdCBmYWlsZWQgd2l0aCBOdWxsUG9pbnRlckV4Y2VwdGlvbi4KIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjAgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuMCB1cGRhdGUKICAgICAgICBieQogICAgICAgIGVnbGkKICAgICAgICA6CiAgICAgICAgWzEuMF0gCiAgICAgICAgICAgIEluIGNhc2Ugb2YgZmFpbHVyZSBvZiB0aGUgZGVsZXRlIHVzZWNhc2UsIHJlZGlyZWN0IGJhY2sgdG8KdGhlIGRlbGV0ZSB1c2VjYXNlIG5vdCB0byB0aGUgYWRkIHVzZWNhc2UuCiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS4wIHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjAgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBlZ2xpCiAgICAgICAgOgogICAgICAgIFsxLjBdIAogICAgICAgICAgICBNYWtlIHN1cmUgdGhlIHVzZXItaWQgaXMgYWN0dWFsbHkgcGFzc2VkIGFzIGEgaGlkZGVuIGZpZWxkLgogRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuMCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS4wIHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgZWdsaQogICAgICAgIDoKICAgICAgICBbMS4wXSAKICAgICAgICAgICAgSGFuZGxlIHRoZSBjYXNlIHdoZXJlIHRoZSByZXF1ZXN0IHRyaWVzIHRvIGRlbGV0ZSBhIG5vbi1leGlzdGluZwp1c2VyLgogRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuMCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS4wIHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgZWdsaQogICAgICAgIDoKICAgICAgICBbMS4wXSAKICAgICAgICAgICAgUE9TVCBpbiBmb3JtcyBzZWVtcyB0byBiZSBhIHByb2JsZW0gd2l0aCB0aGUgdXNlY2FzZSBtYXRjaGVyCmV2ZW4gZm9yIENvY29vbi0yLjEgTTIuClNvIHVzZSBHRVQgaW5zdGVhZC4KIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjAgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuMCB1cGRhdGUKICAgICAgICBieQogICAgICAgIGVnbGkKICAgICAgICA6CiAgICAgICAgWzEuMF0gCiAgICAgICAgICAgIEFkZCBzZXBhcmF0ZSBmb3JtcyB0byBlYWNoIGJ1dHRvbiBzbyB0aGF0IHRoZSBhcHByb3ByaWF0ZQp1c2VjYXNlIHZhbHVlcyBjYW4gYmUgcGFzc2VkIGZvciBlYWNoIHVzZXIuCiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS4wIHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjAgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBlZ2xpCiAgICAgICAgOgogICAgICAgIFsxLjBdIAogICAgICAgICAgICBXaGVuIGxvb2tpbmcgZm9yIGEgc3BlY2lmaWMgdXNlciBzdG9wIGxvb2tpbmcgb25jZSB5b3UKZm91bmQgaXQuCiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS4wIHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjAgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBlZ2xpCiAgICAgICAgOgogICAgICAgIFsxLjBdIAogICAgICAgICAgICBBZGRlZCBhIHRlc3QgZm9yIGRlbGV0aW9uIGFuZCBmaXhlZCBhIGJ1ZyBpbiB0aGUgc2V0dXAgbWV0aG9kCmNyZWF0ZUFuZFNhdmVVc2VyLgogRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuMCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS4wIHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgZ3JlZ29yCiAgICAgICAgOgogICAgICAgIFsxLjBdIAogICAgICAgICAgICBmaXJzdCBjdXQgb2YgaW5mbyBhcmVhIHNjcmVlbnMKCmZpcnN0IGN1dCBvZiB4c3AgZm9yIGluZm8gYXJlYSBzY3JlZW5zCiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS4wIGFkZDwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjAgYWRkCiAgICAgICAgYnkKICAgICAgICBncmVnb3IKICAgICAgICA6CiAgICAgICAgWzEuMF0gCiAgICAgICAgICAgIGFkZGVkIGJldHRlciBmZWF0aGVyIGljb24gdG8gbWVudSAodGhhbmtzIGRpYW5hKQogRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuMCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS4wIHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgZ3JlZ29yCiAgICAgICAgOgogICAgICAgIFsxLjBdIAogICAgICAgICAgICAqKioga2V5d29yZCBzdWJzdGl0dXRpb24gY2hhbmdlICoqKgogRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuMCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS4wIHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgZ3JlZ29yCiAgICAgICAgOgogICAgICAgIFsxLjBdIAogICAgICAgICAgICBpbnRlZ3JhdGVkIHByb3BlcnR5IHRhYnMgaW50byBpbmZvIGFyZWEuCiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS4wIHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjAgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBlZ2xpCiAgICAgICAgOgogICAgICAgIFsxLjBdIAogICAgICAgICAgICBVc2luZyB0aGUgUHVibGljYXRpb25GYWN0b3J5IHRvIGdldCB0aGUgcHVibGljYXRpb24gaW5zdGVhZApvZiB0aGUgUGFnZUVudmVsb3BlIGFzIGl0J3Mgbm90IHVzZWQgb3RoZXJ3aXNlLgogRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuMCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS4wIHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgZWdsaQogICAgICAgIDoKICAgICAgICBbMS4wXSAKICAgICAgICAgICAgRml4ZWQgYSBwcm9ibGVtIHdpdGggdGhlIHJlZGlyZWN0IGluIHRoZSB1c2VyIGFkbWluIHBpcGVsaW5lcwogRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuMCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS4wIHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgYW5kcmVhcwogICAgICAgIDoKICAgICAgICBbMS4wXSAKICAgICAgICAgICAgLSBtYXJrZWQgcmVzb2x2ZXIgY29uc3RydWN0b3IgYXMgZGVwcmVjYXRlZAotIHByb3ZpZGVkIG9iamVjdG1vZGVsIGNvbnN0cnVjdG9yCiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS4wIHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjAgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBhbmRyZWFzCiAgICAgICAgOgogICAgICAgIFsxLjBdIAogICAgICAgICAgICByZW1vdmVkIGRlcHJlY2F0ZWQgUGFnZUVudmVsb3BlIGNvbnN0cnVjdG9yCiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS4wIHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjAgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBncmVnb3IKICAgICAgICA6CiAgICAgICAgWzEuMF0gCiAgICAgICAgICAgICoqKiBrZXl3b3JkIHN1YnN0aXR1dGlvbiBjaGFuZ2UgKioqCiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS4wIHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjAgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBhbmRyZWFzCiAgICAgICAgOgogICAgICAgIFsxLjBdIAogICAgICAgICAgICBhbGwgdXNlY2FzZXMgcmVkaXJlY3RlZCB0byB1c2VjYXNlLnhtYXAKIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjAgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuMCB1cGRhdGUKICAgICAgICBieQogICAgICAgIGFuZHJlYXMKICAgICAgICA6CiAgICAgICAgWzEuMF0gCiAgICAgICAgICAgIC0gb25seSBvbmUgdXNlY2FzZSBwaXBlbGluZQotIHVzaW5nIHJlcXVlc3QgcGFyYW1ldGVycyBmb3IgY3JlYXRvciBYU0xUCi0gYWRkZWQgY3JlYXRlLXdvcmtmbG93IHVzZWNhc2UKIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjAgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuMCB1cGRhdGUKICAgICAgICBieQogICAgICAgIGFuZHJlYXMKICAgICAgICA6CiAgICAgICAgWzEuMF0gCiAgICAgICAgICAgIGNyZWF0aW5nIGRpcmVjdG9yeSB3aGVuIGluaXRpYWxpemluZyBoaXN0b3J5IGZpbGUKIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjAgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuMCB1cGRhdGUKICAgICAgICBieQogICAgICAgIGFuZHJlYXMKICAgICAgICA6CiAgICAgICAgWzEuMF0gCiAgICAgICAgICAgIFRhc2tNYW5hZ2VyIHRocm93cyBleGNlcHRpb24gd2hlbiB0YXNrIG5vdCBmb3VuZAogRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuMCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS4wIHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgYW5kcmVhcwogICAgICAgIDoKICAgICAgICBbMS4wXSAKICAgICAgICAgICAgdGhyb3dpbmcgZXhjZXB0aW9uIHdoZW4gbm8gdGFzayBJRCBpcyBzZXQgKGluc3RlYWQgb2YgbG9nZ2luZykKIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjAgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuMCB1cGRhdGUKICAgICAgICBieQogICAgICAgIGVnbGkKICAgICAgICA6CiAgICAgICAgWzEuMF0gCiAgICAgICAgICAgIFRoZSB1c2VjYXNlIG1hdGNoZXIgZG9lc24ndCBzZWVtIHRvIHdvcmsgd2l0aCBhIHBvc3QgcmVxdWVzdC4KU28gcGFzcyB0aGUgYXJndW1lbnRzIGluIGEgR0VUIHJlcXVlc3QuCiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS4wIHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjAgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBlZ2xpCiAgICAgICAgOgogICAgICAgIFsxLjBdIAogICAgICAgICAgICBSZW1vdmUgZW1wdHkgdGVzdHMuCiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS4wIHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjAgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBlZ2xpCiAgICAgICAgOgogICAgICAgIFsxLjBdIAogICAgICAgICAgICBSZW5hbWVkIHRoZSByZXF1ZXN0IHBhcmFtZXRlciBmb3IgZ3JvdXBzIHRvIEdST1VQUy4KIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjAgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuMCB1cGRhdGUKICAgICAgICBieQogICAgICAgIGVnbGkKICAgICAgICA6CiAgICAgICAgWzEuMF0gCiAgICAgICAgICAgIEZldGNoIHRoZSBwdWJsaWNhdGlvbiB3aXRoIHRoZSBoZWxwIG9mIGEgUHVibGljYXRpb25GYWN0b3J5LAppLmUuIG5vIGxvbmdlciB3aXRoIGEgUGFnZUVudmVsb3BlIGFzIHRoaXMgZG9lc24ndCBzZWVtCnRvIHdvcmsgaW4gYSBnbG9iYWwgc2l0ZW1hcC4KIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjAgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuMCB1cGRhdGUKICAgICAgICBieQogICAgICAgIGVnbGkKICAgICAgICA6CiAgICAgICAgWzEuMF0gCiAgICAgICAgICAgIEFkZCB0aGUgdXNlciB0byB0aGUgVXNlck1hbmFnZXIgd2hlbiBzYXZpbmcuCiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS4wIHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjAgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBncmVnb3IKICAgICAgICA6CiAgICAgICAgWzEuMF0gCiAgICAgICAgICAgICoqKiBrZXl3b3JkIHN1YnN0aXR1dGlvbiBjaGFuZ2UgKioqCiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS4wIHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjAgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBncmVnb3IKICAgICAgICA6CiAgICAgICAgWzEuMF0gCiAgICAgICAgICAgIHN0YXJ0aW5nIHRvIGJlYXQgdGhlIGluZm8gYXJlYSBpbnRvIHNoYXBlLgogRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuMCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS4wIHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgYW5kcmVhcwogICAgICAgIDoKICAgICAgICBbMS4wXSAKICAgICAgICAgICAgcHJldHR5IHByaW50ZWQKIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjAgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuMCB1cGRhdGUKICAgICAgICBieQogICAgICAgIGFuZHJlYXMKICAgICAgICA6CiAgICAgICAgWzEuMF0gCiAgICAgICAgICAgIHJlbW92ZWQgZG9jdW1lbnQgdHlwZQogRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuMCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS4wIHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgZWdsaQogICAgICAgIDoKICAgICAgICBbMS4wXSAKICAgICAgICAgICAgQWRkIHRoZSBhY3Rpb24gY29tcG9uZW50cyBmb3IgdGhlIHVzZXIgYWRtaW4gYWN0aW9ucyBhbmQKaW5jb3Jwb3JhdGUgdGhlbSBpbiB0aGUgcGlwZWxpbmVzLgogRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuMCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS4wIHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgZWdsaQogICAgICAgIDoKICAgICAgICBbMS4wXSAKICAgICAgICAgICAgQWRkZWQgdGhlIGhpZGRlbiBmaWVsZHMgdGhhdCBhcmUgbmVlZGVkIGZvciB0aGUgYWN0aW9uCihsZW55YS51c2VjYXNlIGFuZCBsZW55YS5zdGVwKQogRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuMCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS4wIHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgZWdsaQogICAgICAgIDoKICAgICAgICBbMS4wXSAKICAgICAgICAgICAgQWRkZWQgZGVsZXRlIG1ldGhvZCB0byBkZWxldGUgYSB1c2VyIGFuZCBhIG1ldGhvZCB0bwpyZW1vdmUgYWxsIGdyb3Vwcy4KIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjAgYWRkPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuMCBhZGQKICAgICAgICBieQogICAgICAgIGVnbGkKICAgICAgICA6CiAgICAgICAgWzEuMF0gCiAgICAgICAgICAgIEFkZGVkIGFjdGlvbnMgZm9yIHVzZXIgYWRtaW5pc3RyYXRpb24uCiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS4wIGFkZDwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjAgYWRkCiAgICAgICAgYnkKICAgICAgICBncmVnb3IKICAgICAgICA6CiAgICAgICAgWzEuMF0gCiAgICAgICAgICAgIHdpcmVkIHVwIGFkbWluIGFyZWEgaW4gdGhlIG1lbnUgYmFyLiBleGN1c2UgdGhlIGJ1dHQtdWdseSBpY29uLCBhIHNraWxsZnVsbHkgY3JhZnRlZCBvbmUgaGFzIGJlZW4gY29taXNzaW9uZWQuCiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS4wIHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjAgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBhbmRyZWFzCiAgICAgICAgOgogICAgICAgIFsxLjBdIAogICAgICAgICAgICBzaG93aW5nIHdvcmtmbG93IHN0YXRlCiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS4wIHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjAgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBhbmRyZWFzCiAgICAgICAgOgogICAgICAgIFsxLjBdIAogICAgICAgICAgICBhZGRlZCBkZWZhdWx0IG5hbWVzcGFjZSBzY2hlbWUKIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjAgcmVtb3ZlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuMCByZW1vdmUKICAgICAgICBieQogICAgICAgIGFuZHJlYXMKICAgICAgICA6CiAgICAgICAgWzEuMF0gCiAgICAgICAgICAgIHJlbW92ZWQgd29ya2Zsb3cgaGlzdG9yeQogRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuMCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS4wIHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgYW5kcmVhcwogICAgICAgIDoKICAgICAgICBbMS4wXSAKICAgICAgICAgICAgYWRkZWQgdHJhbnNpdGlvbgogRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuMCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS4wIHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgYW5kcmVhcwogICAgICAgIDoKICAgICAgICBbMS4wXSAKICAgICAgICAgICAgbW92ZWQgd29ya2Zsb3cgZGVmaW5pdGlvbiBmcm9tIHNpbmdsZSBkb2N0eXBlIGZpbGVzIHRvIGRvY3R5cGVzLnhjb25mCiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS4wIHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjAgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBhbmRyZWFzCiAgICAgICAgOgogICAgICAgIFsxLjBdIAogICAgICAgICAgICBhZGRlZCB3b3JrZmxvdyBoaXN0b3J5IGhhbmRsaW5nCiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS4wIGFkZDwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjAgYWRkCiAgICAgICAgYnkKICAgICAgICBhbmRyZWFzCiAgICAgICAgOgogICAgICAgIFsxLjBdIAogICAgICAgICAgICBhZGRlZCBoaXN0b3J5CiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS4wIHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjAgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBhbmRyZWFzCiAgICAgICAgOgogICAgICAgIFsxLjBdIAogICAgICAgICAgICBhZGRlZCB3b3JrZmxvdyBhbmQgY3JlYXRvciBoYW5kbGluZwogRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuMCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS4wIHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgYW5kcmVhcwogICAgICAgIDoKICAgICAgICBbMS4wXSAKICAgICAgICAgICAgb25seSB3aGl0ZXNwYWNlCiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS4wIHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjAgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBhbmRyZWFzCiAgICAgICAgOgogICAgICAgIFsxLjBdIAogICAgICAgICAgICBhZGRlZCB3b3JrZmxvdyB0cmFuc2l0aW9uIGhhbmRsaW5nCiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS4wIHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjAgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBhbmRyZWFzCiAgICAgICAgOgogICAgICAgIFsxLjBdIAogICAgICAgICAgICBhZGRlZCBnZXRQdWJsaWNhdGlvbigpCmFkZGVkIGFzc2VydFN0cmluZygpCiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS4wIGFkZDwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjAgYWRkCiAgICAgICAgYnkKICAgICAgICBhbmRyZWFzCiAgICAgICAgOgogICAgICAgIFsxLjBdIAogICAgICAgICAgICBhZGRlZCBEb2N1bWVudENyZWF0b3IgYXMgQW50VGFzawogRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuMCBhZGQ8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS4wIGFkZAogICAgICAgIGJ5CiAgICAgICAgZWdsaQogICAgICAgIDoKICAgICAgICBbMS4wXSAKICAgICAgICAgICAgUmVuYW1lZCBmcm9tIHVzZXItZWRpdC54c2wKIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjAgYWRkPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuMCBhZGQKICAgICAgICBieQogICAgICAgIGVnbGkKICAgICAgICA6CiAgICAgICAgWzEuMF0gCiAgICAgICAgICAgIHhzbCBmb3IgdGhlIHVzZXIgZGVsZXRlIGNvbmZpcm1hdGlvbiBzY3JlZW4uCiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS4wIGFkZDwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjAgYWRkCiAgICAgICAgYnkKICAgICAgICBlZ2xpCiAgICAgICAgOgogICAgICAgIFsxLjBdIAogICAgICAgICAgICB4c2wgZm9yIHRoZSB1c2VyIGFkZCBzY3JlZW4uCiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS4wIHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjAgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBlZ2xpCiAgICAgICAgOgogICAgICAgIFsxLjBdIAogICAgICAgICAgICBSZW1vdmVkIGEgZml4bWUgd2hpY2ggaXMgbm8gbG9uZ2VyIHJlbGV2YW50LgogRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuMCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS4wIHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgZWdsaQogICAgICAgIDoKICAgICAgICBbMS4wXSAKICAgICAgICAgICAgUmVtb3ZlIHVubmVjZXNzYXJ5IGltcG9ydHMuCiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS4wIGFkZDwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjAgYWRkCiAgICAgICAgYnkKICAgICAgICBlZ2xpCiAgICAgICAgOgogICAgICAgIFsxLjBdIAogICAgICAgICAgICBBZGRlZCBzY3JlZW4gZm9yIG1vZGlmeWluZyBhbiBleGlzdGluZyB1c2VyLgogRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuMCBhZGQ8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS4wIGFkZAogICAgICAgIGJ5CiAgICAgICAgZWdsaQogICAgICAgIDoKICAgICAgICBbMS4wXSAKICAgICAgICAgICAgQWRkZWQgc2NyZWVuIGZvciBhZGRpbmcgYSBuZXcgdXNlci4KIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjAgcmVtb3ZlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuMCByZW1vdmUKICAgICAgICBieQogICAgICAgIGVnbGkKICAgICAgICA6CiAgICAgICAgWzEuMF0gCiAgICAgICAgICAgIFJlbmFtZWQgdG8gdXNlci1tb2RpZnkueHNsCiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS4wIHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjAgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBlZ2xpCiAgICAgICAgOgogICAgICAgIFsxLjBdIAogICAgICAgICAgICBUaGUgdXNlci1hZG1pbiB1c2VjYXNlIGhhcyBiZWVuIHNwbGl0IGludG8gc2V2ZXJhbCB1c2VjYXNlcwpBZGRlZCB0aGUgbW91bnQgc3RhdGVtZW50cyBmb3IgdGhlbS4KIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjAgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuMCB1cGRhdGUKICAgICAgICBieQogICAgICAgIGVnbGkKICAgICAgICA6CiAgICAgICAgWzEuMF0gCiAgICAgICAgICAgIEFkZGVkIHRoZSBtaXNzaW5nIGNsb3NlIHRhZ3MgZm9yIG1hcDptYXRjaApBZGRlZCBtb3JlIHBpcGVsaW5lc2ZvciB1c2VyIGFkbWluCiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS4wIHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjAgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBlZ2xpCiAgICAgICAgOgogICAgICAgIFsxLjBdIAogICAgICAgICAgICBBZGRlZCB0aGUgdXNlciBhZG1pbiB1c2VjYXNlcy4KIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjAgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuMCB1cGRhdGUKICAgICAgICBieQogICAgICAgIGVnbGkKICAgICAgICA6CiAgICAgICAgWzEuMF0gCiAgICAgICAgICAgIEZvciBub3cgdGhlIGNvbW1lbnQgZmllbGQgbmVlZHMgdG8gZ28gYmFjayBpbi4gT3RoZXJ3aXNlIHRoZQpsb2dpbiBwcm9jZXNzIGZhaWxzLiBOZWVkIHRvIGNoYW5nZSB0aGUgSWRlbnRpdHkgY2xhc3MKZmlyc3QuCiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS4wIHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjAgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBlZ2xpCiAgICAgICAgOgogICAgICAgIFsxLjBdIAogICAgICAgICAgICBBZGRlZCBwaXBlbGluZXMgZm9yIHVzZXIgYWRtaW4uCiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS4wIGFkZDwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjAgYWRkCiAgICAgICAgYnkKICAgICAgICBlZ2xpCiAgICAgICAgOgogICAgICAgIFsxLjBdIAogICAgICAgICAgICBBZGRlZCB4c3AgYW5kIHhzbCBmb3IgdXNlciBhZG1pbi4KIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjAgYWRkPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuMCBhZGQKICAgICAgICBieQogICAgICAgIGdyZWdvcgogICAgICAgIDoKICAgICAgICBbMS4wXSAKICAgICAgICAgICAgeHNsIHN0dWJzIGZvciBJbmZvIEFyZWEgc2NyZWVucwpYU0wgc3R1YnMgZm9yIHdvcmtmbG93CiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS4wIGFkZDwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjAgYWRkCiAgICAgICAgYnkKICAgICAgICBncmVnb3IKICAgICAgICA6CiAgICAgICAgWzEuMF0gCiAgICAgICAgICAgIHhzcCBzdHVicyBmb3IgSW5mbyBBcmVhIHNjcmVlbnMKeHNwIHN0dWJzIGZvciB3b3JrZmxvdwogRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuMCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS4wIHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgZ3JlZ29yCiAgICAgICAgOgogICAgICAgIFsxLjBdIAogICAgICAgICAgICAtIGRlZmluZWQgdXNlIGNhc2VzIGZvciBJbmZvIGFyZWEKLSB1cGRhdGVkIGRvY3VtZW50YXRpb24gdG8gcmVmbGVjdCBuZXcgdXNlIGNhc2VzCi0gYWRkZWQgbmV3IHVzZSBjYXNlcyB0byB1c2VjYXNlLnhtYXAKIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjAgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuMCB1cGRhdGUKICAgICAgICBieQogICAgICAgIGVnbGkKICAgICAgICA6CiAgICAgICAgWzEuMF0gCiAgICAgICAgICAgIEFkZGVkIGEgbW91bnQgZm9yIHVzZXIgYWRtaW4uCiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS4wIHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjAgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBlZ2xpCiAgICAgICAgOgogICAgICAgIFsxLjBdIAogICAgICAgICAgICBGaXhlZCBhIHByb2JsZW0gd2hlcmUgZnVsbE5hbWUsIGVtYWlsIGFuZCBwYXNzd29yZCB3b3VsZG4ndApiZSByZWFkIHByb3Blcmx5LgogRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuMCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS4wIHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgZWdsaQogICAgICAgIDoKICAgICAgICBbMS4wXSAKICAgICAgICAgICAgVGhlIHRlc3RzIGRpZG4ndCBjb3ZlciB0aGUgY2FzZSB3aGVyZSB0aGUgZGF0YSBpcyBzYXZlZAphbmQgcmVhZCBiYWNrIGZyb20gdGhlIGZpbGUuCiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS4wIHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjAgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBlZ2xpCiAgICAgICAgOgogICAgICAgIFsxLjBdIAogICAgICAgICAgICBBZGRlZCBuZXcgZWxlbWVudHMgc3VjaCBhcyBmdWxsbmFtZSBhbmQgZW1haWwuCiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS4wIHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjAgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBlZ2xpCiAgICAgICAgOgogICAgICAgIFsxLjBdIAogICAgICAgICAgICBSZXBsYWNlZCB1c2FnZSBvZiBkZXByZWNhdGVkIG9yZy5hcGFjaGUuY29jb29uLmVudmlyb25tZW50LlNvdXJjZQogRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuMCBhZGQ8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS4wIGFkZAogICAgICAgIGJ5CiAgICAgICAgZ3JlZ29yCiAgICAgICAgOgogICAgICAgIFsxLjBdIAogICAgICAgICAgICBzdGFydGVkIHdvcmsgb24gSW5mbyBBcmVhIChzaXRlbWFwcywgbWVudSB0YWIsIG1lbnUgZGVmaW5pdGlvbikKCm1vdmVkIHNpdGUgZGlyIHRvIGluZm8gZGlyCiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS4wIHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjAgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBlZ2xpCiAgICAgICAgOgogICAgICAgIFsxLjBdIAogICAgICAgICAgICBUaGUgUGFnZUVudmVsb3BlTW9kdWxlIGFsc28gcHJvdmlkZXMgdGhlIHB1YmxpY2F0aW9uLgpTb21laG93IHRoaXMgbmV2ZXIgbWFkZSBpdCBpbnRvIHRoZSBkb2N1bWVudGF0aW9uLgogRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuMCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS4wIHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgZWdsaQogICAgICAgIDoKICAgICAgICBbMS4wXSAKICAgICAgICAgICAgU2xpZ2h0IG9wdGltaXphdGlvbjogcmVwbGFjZWQgYSBjb25zZXF1dGl2ZSBzZXJpZXMgb2YgaWYKd2l0aCBlbHNlIGlmLgogRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuMCBhZGQ8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS4wIGFkZAogICAgICAgIGJ5CiAgICAgICAgZ3JlZ29yCiAgICAgICAgOgogICAgICAgIFsxLjBdIAogICAgICAgICAgICBBZGRlZCBUcmVlIFdpZGdldCAoSmF2YXNjcmlwdCwgSW1hZ2VzLCBDU1MpIGFuZCBhIFhTTCB0byBjb252ZXJ0IGEgc2l0ZXRyZWUgdG8gYSBKYXZhc2NyaXB0IGFycmF5IHN1aXRhYmxlIGZvciB0aGUgdHJlZSB3aWRnZXQuCiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS4wIGFkZDwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjAgYWRkCiAgICAgICAgYnkKICAgICAgICBncmVnb3IKICAgICAgICA6CiAgICAgICAgWzEuMF0gCiAgICAgICAgICAgIEFkZGVkIFNpdGUgLyBNZXRhIGFyZWEgc2NyZWVuLCBDU1MgYW5kIEphdmFzY3JpcHQKIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjAgYWRkPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuMCBhZGQKICAgICAgICBieQogICAgICAgIGdyZWdvcgogICAgICAgIDoKICAgICAgICBbMS4wXSAKICAgICAgICAgICAgc3RhcnRlZCB3b3JrIG9uIFNpdGUgLyBNZXRhIGFyZWEKIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjAgYWRkPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuMCBhZGQKICAgICAgICBieQogICAgICAgIGVnbGkKICAgICAgICA6CiAgICAgICAgWzEuMF0gCiAgICAgICAgICAgIEFkZGVkIHRlc3RzIGZvciB0aGUgZmlsZVVzZXIgY2xhc3MKIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjAgcmVtb3ZlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuMCByZW1vdmUKICAgICAgICBieQogICAgICAgIGVnbGkKICAgICAgICA6CiAgICAgICAgWzEuMF0gCiAgICAgICAgICAgIFJlbW92ZWQgYXMgaXQgaGFkIG5vIHRlc3RzIGluIGl0IGFuZCBubyBwbGFuIHRvIHdoZXJlIGl0CndvdWxkIGJlIGdvaW5nLgogRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuMCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS4wIHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgZWdsaQogICAgICAgIDoKICAgICAgICBbMS4wXSAKICAgICAgICAgICAgUmVtb3ZlIGFuIHVudXNlZCBpbnN0YW5jZSB2YXJpYWJsZS4KIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjAgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuMCB1cGRhdGUKICAgICAgICBieQogICAgICAgIGVnbGkKICAgICAgICA6CiAgICAgICAgWzEuMF0gCiAgICAgICAgICAgIE1ha2UgdGhlIFBBVEggY29uc3RhbnQgcHVibGljIChzbyBpdCBjYW4gYmUgdXNlZCBpbgp0aGUgVW5pdFRlc3RzKS4KIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjAgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuMCB1cGRhdGUKICAgICAgICBieQogICAgICAgIGVnbGkKICAgICAgICA6CiAgICAgICAgWzEuMF0gCiAgICAgICAgICAgIEFkZGVkIGNvbnN0cnVjdG9yLgogRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuMCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS4wIHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgZWdsaQogICAgICAgIDoKICAgICAgICBbMS4wXSAKICAgICAgICAgICAgLnByb2plY3QgYW5kIC5jbGFzc3BhdGggZmlsZXMgdGhhdCBhcmUgZ2VuZXJhdGVkIGJ5IEVjbGlwc2UKY2FuIGJlIGlnbm9yZWQuCiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS4wIHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjAgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBhbmRyZWFzCiAgICAgICAgOgogICAgICAgIFsxLjBdIAogICAgICAgICAgICAtIGFkZGVkIGhhc1dvcmtmbG93KCkKLSBhZGRlZCBidWlsZFNpdHVhdGlvbihPYmplY3RNb2RlbCkKIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjAgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuMCB1cGRhdGUKICAgICAgICBieQogICAgICAgIGFuZHJlYXMKICAgICAgICA6CiAgICAgICAgWzEuMF0gCiAgICAgICAgICAgIHRocm93aW5nIGFwcHJvcHJpYXRlIGV4Y2VwdGlvbiB3aGVuIGhpc3RvcnkgZmlsZSBpcyBtaXNzaW5nCiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS4wIHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjAgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBhbmRyZWFzCiAgICAgICAgOgogICAgICAgIFsxLjBdIAogICAgICAgICAgICAtIGFkZGVkIHdvcmtmbG93LXN0YXRlIGVsZW1lbnQKLSBjaGVja2luZyBpZiBkb2N1bWVudCBoYXMgd29ya2Zsb3cKIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjAgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuMCB1cGRhdGUKICAgICAgICBieQogICAgICAgIGVnbGkKICAgICAgICA6CiAgICAgICAgWzEuMF0gCiAgICAgICAgICAgIE5lZWQgdG8ga2VlcCB0aGUgcHVibGljYXRpb24gc28gaXQgY2FuIGJlIHBhc3NlZCB0byB0aGUgR3JvdXAsIFVzZXIgYW5kIFJvbGUgY29uc3RydWN0b3JzLgogRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuMCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS4wIHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgZWdsaQogICAgICAgIDoKICAgICAgICBbMS4wXSAKICAgICAgICAgICAgKiBGYWN0b3Igb3V0IHRoZSBmZXRjaGluZyBvZiB0aGUgcHVibGljYXRpb24KKiBBZGQgbW9yZSB0ZXN0Y2FzZXMgKGUuZy4gZm9yIGxvYWRpbmcpCiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS4wIHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjAgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBlZ2xpCiAgICAgICAgOgogICAgICAgIFsxLjBdIAogICAgICAgICAgICBUaGUgY29uc3RydWN0b3IgZm9yIEZpbGVVc2VyIG5vdyByZXF1aXJlcyBhIHB1YmxpY2F0aW9uLgogRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuMCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS4wIHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgZWdsaQogICAgICAgIDoKICAgICAgICBbMS4wXSAKICAgICAgICAgICAgQWRkIGVxdWFscyBhbmQgaGFzaGNvZGUgbWV0aG9kcy4KIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjAgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuMCB1cGRhdGUKICAgICAgICBieQogICAgICAgIGVnbGkKICAgICAgICA6CiAgICAgICAgWzEuMF0gCiAgICAgICAgICAgIFVzZSBnZXR0ZXJzIHdoZW4gYWNjZXNpbmcgcHJpdmF0ZSB2YXJzLgogRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuMCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS4wIHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgZWdsaQogICAgICAgIDoKICAgICAgICBbMS4wXSAKICAgICAgICAgICAgTG9nIGFuIGVycm9yIGlmIHRoZSBjb25maWd1cmF0aW9uIHdoaWNoIHRoZSBGaWxlVXNlciBpcwpjb25zdHJ1Y3RlZCB3aXRoIG9zIG1pc3NpbmcgZ3JvdXBzIG9yIHJvbGVzIHJlc3BlY3RpdmVseS4KIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjAgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuMCB1cGRhdGUKICAgICAgICBieQogICAgICAgIGFuZHJlYXMKICAgICAgICA6CiAgICAgICAgWzEuMF0gCiAgICAgICAgICAgIC0gYWRkaW5nIG5ldyBDTVMgc2NyZWVuIGhhbmRsaW5nCi0gYWRkaW5nIENTUywgcHJvamVjdCBsb2dvcwogRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuMCBhZGQ8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS4wIGFkZAogICAgICAgIGJ5CiAgICAgICAgZWdsaQogICAgICAgIDoKICAgICAgICBbMS4wXSAKICAgICAgICAgICAgQWRkZWQgdGVzdCBjYXNlcyBmb3IgRmlsZUdyb3VwLCBGaWxlUm9sZSwgR3JvdXBNYW5hZ2VyIGFuZCBSb2xlTWFuYWdlci4KIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjAgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuMCB1cGRhdGUKICAgICAgICBieQogICAgICAgIGVnbGkKICAgICAgICA6CiAgICAgICAgWzEuMF0gCiAgICAgICAgICAgIFRoZSBHcm91cCBjb25zdHJ1Y3RvciBub3cgc2FrcyBmb3IgYSBuYW1lIG9mIHRoZSBHcm91cC4KIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjAgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuMCB1cGRhdGUKICAgICAgICBieQogICAgICAgIGVnbGkKICAgICAgICA6CiAgICAgICAgWzEuMF0gCiAgICAgICAgICAgIEFkZGVkIGEgY29uc3RydWN0b3IuCiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS4wIHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjAgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBlZ2xpCiAgICAgICAgOgogICAgICAgIFsxLjBdIAogICAgICAgICAgICBUaGUgY29uc3RydWN0b3IgZm9yIHRoZSBjbGFzc2VzIGhhcyBjaGFuZ2VkIGFzIHlvdSBub3cgaGF2ZQp0byBwYXNzIHRoZSBQdWJsaWNhdGlvbiBhbmQgdGhlIENvbmZpZ3VyYXRpb24uCiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS4wIHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjAgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBlZ2xpCiAgICAgICAgOgogICAgICAgIFsxLjBdIAogICAgICAgICAgICBUaGUgUHVibGljYXRpb24gbmVlZHMgdG8gYmUgcGFzc2VkIGluIGluIHRoZSBjb25zdHJ1Y3RvciBpbgpvcmRlciBmb3IgdGhlIGNvbnN0cnVjdG9yIHRvIGJlIGFibGUgdG8gZmluZCB0aGUgb3RoZXIgSXRlbU1hbmFnZXJzLgpUaGF0IGlzIHJlcXVpcmVkIHNvIHRoYXQgc3ViaXRlbXMgKGkuZS4gUm9sZXMgZm9yIEdyb3VwcykKY2FuIGJlIGZvdW5kLgogRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuMCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS4wIHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgYW5kcmVhcwogICAgICAgIDoKICAgICAgICBbMS4wXSAKICAgICAgICAgICAgcmVtb3ZlZCBXb3JrZmxvd0ZhY3RvcnkuYnVpbGRFdmVudCgpIG1ldGhvZAogRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuMCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS4wIHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgYW5kcmVhcwogICAgICAgIDoKICAgICAgICBbMS4wXSAKICAgICAgICAgICAgcmVtb3ZlZCBidWlsZEV2ZW50KCkgbWV0aG9kCiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS4wIHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjAgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBhbmRyZWFzCiAgICAgICAgOgogICAgICAgIFsxLjBdIAogICAgICAgICAgICBhZGRlZCB2YXJpYWJsZSArIGFzc2lnbm1lbnQKIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjAgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuMCB1cGRhdGUKICAgICAgICBieQogICAgICAgIGFuZHJlYXMKICAgICAgICA6CiAgICAgICAgWzEuMF0gCiAgICAgICAgICAgIGFkZGVkIG5hbWVzcGFjZSBwcmVmaXgKIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjAgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuMCB1cGRhdGUKICAgICAgICBieQogICAgICAgIGFuZHJlYXMKICAgICAgICA6CiAgICAgICAgWzEuMF0gCiAgICAgICAgICAgIGV4dGVuZGVkIHRlc3QgdG8gY29tcGxldGUgd29ya2Zsb3cgc2VxdWVuY2UKIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjAgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuMCB1cGRhdGUKICAgICAgICBieQogICAgICAgIGFuZHJlYXMKICAgICAgICA6CiAgICAgICAgWzEuMF0gCiAgICAgICAgICAgIHVzaW5nIFB1YmxpY2F0aW9uRmFjdG9yeSBpbnN0ZWFkIG9mIFB1YmxpY2F0aW9uIGNvbnN0cnVjdG9yCiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS4wIHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjAgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBhbmRyZWFzCiAgICAgICAgOgogICAgICAgIFsxLjBdIAogICAgICAgICAgICBhZGRlZCBldmVudCArIHZhcmlhYmxlIGhhbmRsaW5nCiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS4wIHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjAgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBhbmRyZWFzCiAgICAgICAgOgogICAgICAgIFsxLjBdIAogICAgICAgICAgICBhZGRlZCB2YXJpYWJsZXMgKyBhc3NpZ25tZW50IGhhbmRsaW5nCiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS4wIHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjAgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBhbmRyZWFzCiAgICAgICAgOgogICAgICAgIFsxLjBdIAogICAgICAgICAgICBjaGFuZ2VkIFdvcmtmbG93QnVpbGRFeGNlcHRpb24gdG8gV29ya2Zsb3dFeGNlcHRpb24KIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjAgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuMCB1cGRhdGUKICAgICAgICBieQogICAgICAgIGFuZHJlYXMKICAgICAgICA6CiAgICAgICAgWzEuMF0gCiAgICAgICAgICAgIC0gY2hhbmdlZCBnZXRFeGVjdXRhYmxlVHJhbnNpdGlvbnMoKSB0byBnZXRFeGVjdXRhYmxlRXZlbnRzKCkKLSBhZGRlZCBnZXRWYWx1ZSh2YXJpYWJsZSkKIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjAgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuMCB1cGRhdGUKICAgICAgICBieQogICAgICAgIGFuZHJlYXMKICAgICAgICA6CiAgICAgICAgWzEuMF0gCiAgICAgICAgICAgIHVzaW5nIFN0YXRlSW1wbCBpbnN0ZWFkIG9mIFN0YXRlCiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS4wIHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjAgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBhbmRyZWFzCiAgICAgICAgOgogICAgICAgIFsxLjBdIAogICAgICAgICAgICByZW5hbWVkIGdldENvbW1hbmQoKSB0byBnZXROYW1lKCkgKG1vcmUgZ2VuZXJhbCkKIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjAgYWRkPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuMCBhZGQKICAgICAgICBieQogICAgICAgIGFuZHJlYXMKICAgICAgICA6CiAgICAgICAgWzEuMF0gCiAgICAgICAgICAgIGFkZGVkIEJvb2xlYW5WYXJpYWJsZUFzc2lnbm1lbnQKIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjAgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuMCB1cGRhdGUKICAgICAgICBieQogICAgICAgIGFuZHJlYXMKICAgICAgICA6CiAgICAgICAgWzEuMF0gCiAgICAgICAgICAgIGFkZGVkIGV4ZWN1dGUoKSBtZXRob2QKIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjAgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuMCB1cGRhdGUKICAgICAgICBieQogICAgICAgIGFuZHJlYXMKICAgICAgICA6CiAgICAgICAgWzEuMF0gCiAgICAgICAgICAgIGFkZGVkIGdldEluaXRpYWxWYWx1ZSgpIG1ldGhvZAogRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuMCByZW1vdmU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS4wIHJlbW92ZQogICAgICAgIGJ5CiAgICAgICAgYW5kcmVhcwogICAgICAgIDoKICAgICAgICBbMS4wXSAKICAgICAgICAgICAgcmVtb3ZlZCBXb3JrZmxvd0ZhY3RvcnkgYW5kIFdvcmtmbG93QnVpbGRFeGNlcHRpb24KIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjAgYWRkPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuMCBhZGQKICAgICAgICBieQogICAgICAgIGFuZHJlYXMKICAgICAgICA6CiAgICAgICAgWzEuMF0gCiAgICAgICAgICAgIGFkZGVkIFdvcmtmbG93RmFjdG9yeQogRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuMCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS4wIHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgYW5kcmVhcwogICAgICAgIDoKICAgICAgICBbMS4wXSAKICAgICAgICAgICAgLSBjb3JyZWN0ZWQgd29ya2Zsb3cgY3JlYXRpb24KLSBjb21wbGV0ZWQgdHJhbnNhY3Rpb24gaW52b2NhdGlvbgogRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuMCByZW1vdmU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS4wIHJlbW92ZQogICAgICAgIGJ5CiAgICAgICAgYW5kcmVhcwogICAgICAgIDoKICAgICAgICBbMS4wXSAKICAgICAgICAgICAgcmVtb3ZpbmcgQ29tbWFuZEZpbHRlciBhbmQgV29ya2Zsb3dGYWN0b3J5SW1wbAogRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuMCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS4wIHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgYW5kcmVhcwogICAgICAgIDoKICAgICAgICBbMS4wXSAKICAgICAgICAgICAgdXNpbmcgUHVibGljYXRpb25GYWN0b3J5IGluc3RlYWQgb2YgUHVibGljYXRpb24gY29uc3RydWN0b3IKIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjAgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuMCB1cGRhdGUKICAgICAgICBieQogICAgICAgIGFuZHJlYXMKICAgICAgICA6CiAgICAgICAgWzEuMF0gCiAgICAgICAgICAgIHJlbW92ZWQgQ29tbWFuZEZpbHRlciB1c2FnZQogRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuMCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS4wIHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgYW5kcmVhcwogICAgICAgIDoKICAgICAgICBbMS4wXSAKICAgICAgICAgICAgdGhyb3dpbmcgQ29uZmlndXJhdGlvbkV4Y2VwdGlvbiBpbnN0ZWFkIG9mIGxvZ2dpbmcKIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjAgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuMCB1cGRhdGUKICAgICAgICBieQogICAgICAgIGFuZHJlYXMKICAgICAgICA6CiAgICAgICAgWzEuMF0gCiAgICAgICAgICAgIC0gdXNpbmcgSGFzaE1hcCB0byBzdG9yZSBwdWJsaWNhdGlvbnMKLSBhZGRlZCBnZXRQdWJsaWNhdGlvbihTdHJpbmcsIFN0cmluZykgbWV0aG9kCiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS4wIHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjAgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBhbmRyZWFzCiAgICAgICAgOgogICAgICAgIFsxLjBdIAogICAgICAgICAgICBjaGFuZ2VkIGNvbnN0cnVjdG9yIGZyb20gcHVibGljIHRvIHByb3RlY3RlZCAodXNlIFB1YmxpY2F0aW9uRmFjdG9yeSBpbnN0ZWFkKQogRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuMCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS4wIHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgYW5kcmVhcwogICAgICAgIDoKICAgICAgICBbMS4wXSAKICAgICAgICAgICAgYWRkZWQgc29tZSBhc3NlcnRpb25zCiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS4wIHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjAgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBlZ2xpCiAgICAgICAgOgogICAgICAgIFsxLjBdIAogICAgICAgICAgICBUaGUgc2F2ZSBtZXRob2QgbmVlZHMgdG8gYmUgcGFzc2VkIHRoZSBwdWJsaWNhdGlvbiBzbyBpdCBjYW4KYXNrIHRoZSBNYW5hZ2VyIGZvciB0aGUgcGF0aCB3aGVyZSB0aGUgZmlsZXMgYXJlIHN1cHBvc2VkCnRvIGJlIHNhdmVkLgogRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuMCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS4wIHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgZWdsaQogICAgICAgIDoKICAgICAgICBbMS4wXSAKICAgICAgICAgICAgUmVvcmdhbml6ZSB0aGUgaW5zdGFudGlhdGlvbm9mIHRoZSBjbGFzc2VzIHNvIHRoYXQgdGhlIHByb3BlcgppbnN0YW5jZXMgYXJlIGNyZWF0ZWQgYW5kIHRoZSByaWdodCBmaWxlcyBhcmUgZmV0Y2hlZC4KIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjAgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuMCB1cGRhdGUKICAgICAgICBieQogICAgICAgIGFuZHJlYXMKICAgICAgICA6CiAgICAgICAgWzEuMF0gCiAgICAgICAgICAgIGFkZGVkICJXZWJzaXRlIFVwZGF0ZSIgZG9jdW1lbnRhdGlvbgogRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuMCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS4wIHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgZWdsaQogICAgICAgIDoKICAgICAgICBbMS4wXSAKICAgICAgICAgICAgVGhlIGltbCBmaWxlcyBub3cgbmVlZCB0byBrbm93IHdoaWNoIGNsYXNzIG5lZWRzIHRvIGJlCmluc3RhbmNpYXRlZC4gVGhpcyBpcyBhZGRlZCBhcyBhbiBhZGRpdGlvbmFsIGF0dHJpYnV0ZSBjbGFzcy4KIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjAgYWRkPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuMCBhZGQKICAgICAgICBieQogICAgICAgIGVnbGkKICAgICAgICA6CiAgICAgICAgWzEuMF0gCiAgICAgICAgICAgIEFkZGVkIHNrZWxldGFsIHZlcnNpb25zIG9mIFVuaXQgVGVzdCBjYXNlcy4KIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjAgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuMCB1cGRhdGUKICAgICAgICBieQogICAgICAgIGVnbGkKICAgICAgICA6CiAgICAgICAgWzEuMF0gCiAgICAgICAgICAgIFJlbW92ZWQgdGhlIGNvbmZpZ3VyYXRpb24gbWV0aG9kLgogRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuMCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS4wIHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgZWdsaQogICAgICAgIDoKICAgICAgICBbMS4wXSAKICAgICAgICAgICAgUmVwbGFjZWQgdGhlIGNvbmZpZ3VyYXRpb24gbWV0aG9kIHdpdGggYSBjb25zdHJ1Y3Rvcgp0aGF0IGFjY2VwdHMgYSBjb25maWd1cmF0aW9uLgogRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuMCBhZGQ8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS4wIGFkZAogICAgICAgIGJ5CiAgICAgICAgZWdsaQogICAgICAgIDoKICAgICAgICBbMS4wXSAKICAgICAgICAgICAgQWRkZWQgYSBzdWJjbGFzcyB0byBHcm91cCB3aGljaCBoYW5kbGVzIGxvYWRpbmcgYW5kIHNhdmluZwp0byB4bWwgZmlsZS4KIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjAgYWRkPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuMCBhZGQKICAgICAgICBieQogICAgICAgIGVnbGkKICAgICAgICA6CiAgICAgICAgWzEuMF0gCiAgICAgICAgICAgIEFkZCBhIHN1YmNsYXNzIHRvIFJvbGUgd2hpY2ggaGFuZGxlcyBzYXZpbmcgYW5kIGxvYWRpbmcgZnJvbSB4bWwgZmlsZS4KIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjAgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuMCB1cGRhdGUKICAgICAgICBieQogICAgICAgIGVnbGkKICAgICAgICA6CiAgICAgICAgWzEuMF0gCiAgICAgICAgICAgIE1ha2UgdGhlIG5hbWUgaW5zdGFuY2UgdmFyIHByb3RlY3RlZCBhZ2FpbiBzbyB0aGF0IGl0IGlzIHZpc2libGUKaW4gdGhlIGRlcml2ZWQgY2xhc3MuCiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS4wIGFkZDwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjAgYWRkCiAgICAgICAgYnkKICAgICAgICBlZ2xpCiAgICAgICAgOgogICAgICAgIFsxLjBdIAogICAgICAgICAgICBBZGRlZCBhIGNvbW1vbiBzdXBlcmNsYXNzIEl0ZW1NYW5hZ2VyIHdoaWNoIGltcGxlbWVudHMgdGhlIHNpbmdsZXRvbgpmb3IgYWxsIHRoZSBvdGhlciBtYW5hZ2VyIGNsYXNzZXMgKFVzZXJNYW5hZ2VyLCBHcm91cE1hbmFnZXIgYW5kClJvbGVNYW5hZ2VyKQogRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuMCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS4wIHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgYW5kcmVhcwogICAgICAgIDoKICAgICAgICBbMS4wXSAKICAgICAgICAgICAgZml4ZWQgZG9jdW1lbnQgc3RydWN0dXJlIChkaWRuJ3QgdmFsaWRhdGUpCiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS4wIHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjAgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBtaWNoaQogICAgICAgIDoKICAgICAgICBbMS4wXSAKICAgICAgICAgICAgbGluayB0byBpbnN0YWxsYXRpb24gbW9kaWZpZWQKIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjAgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuMCB1cGRhdGUKICAgICAgICBieQogICAgICAgIG1pY2hpCiAgICAgICAgOgogICAgICAgIFsxLjBdIAogICAgICAgICAgICByZWxlYXNlIGNhbmRpZGF0ZSBhZGRlZAogRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuMCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS4wIHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgbWljaGkKICAgICAgICA6CiAgICAgICAgWzEuMF0gCiAgICAgICAgICAgIHR5cG8gbWljaGlpaSBmaXhlZAogRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuMCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS4wIHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgbWljaGkKICAgICAgICA6CiAgICAgICAgWzEuMF0gCiAgICAgICAgICAgIEFwYWNoZSAyIGFkZGVkCiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS4wIHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjAgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBtaWNoaQogICAgICAgIDoKICAgICAgICBbMS4wXSAKICAgICAgICAgICAgTWVkaWFTZWxlY3RvciBoYXMgY2hhbmdlZCBpdHMgcGFja2FnZSBuYW1lCiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS4wIHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjAgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBtaWNoaQogICAgICAgIDoKICAgICAgICBbMS4wXSAKICAgICAgICAgICAgQXBhY2hlIDIgYWRkZWQKIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjAgYWRkPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuMCBhZGQKICAgICAgICBieQogICAgICAgIG1pY2hpCiAgICAgICAgOgogICAgICAgIFsxLjBdIAogICAgICAgICAgICB3ZWJkYXYgZG9jIGFkZGVkCiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS4wIHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjAgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBhbmRyZWFzCiAgICAgICAgOgogICAgICAgIFsxLjBdIAogICAgICAgICAgICBjb3JyZWN0ZWQgc29tZSBjb2Rpbmcgc3R5bGUgaXNzdWVzCiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS4wIHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjAgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBhbmRyZWFzCiAgICAgICAgOgogICAgICAgIFsxLjBdIAogICAgICAgICAgICBjb3JyZWN0ZWQgc29tZSBjb2Rpbmcgc3R5bGUgaXNzdWVzCiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS4wIHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjAgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBhbmRyZWFzCiAgICAgICAgOgogICAgICAgIFsxLjBdIAogICAgICAgICAgICByZW1vdmVkIGRlcHJlY2F0aW9uIHVzYWdlCiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS4wIHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjAgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBhbmRyZWFzCiAgICAgICAgOgogICAgICAgIFsxLjBdIAogICAgICAgICAgICBjaGFuZ2VkIGZpZWxkIG1vZGlmaWVyZXMgZnJvbSBwcm90ZWN0ZWQgdG8gcHJpdmF0ZQogRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuMCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS4wIHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgYW5kcmVhcwogICAgICAgIDoKICAgICAgICBbMS4wXSAKICAgICAgICAgICAgY2FsbGluZyBidWlsZFdvcmtmbG93KCkgaW4gYSBzdGF0aWMgd2F5CiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS4wIHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjAgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBhbmRyZWFzCiAgICAgICAgOgogICAgICAgIFsxLjBdIAogICAgICAgICAgICBmaXhlZCBzb21lIGNvZGluZyBzdHlsZSBwcm9ibGVtcwogRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuMCBhZGQ8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS4wIGFkZAogICAgICAgIGJ5CiAgICAgICAgYW5kcmVhcwogICAgICAgIDoKICAgICAgICBbMS4wXSAKICAgICAgICAgICAgcmVmYWN0b3JlZCB3b3JrZmxvdyBwYWNrYWdlIHN0cnVjdHVyZSAoYmV0dGVyIFNvYykKIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjAgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuMCB1cGRhdGUKICAgICAgICBieQogICAgICAgIGFuZHJlYXMKICAgICAgICA6CiAgICAgICAgWzEuMF0gCiAgICAgICAgICAgIGFkZGVkIEFudFRhc2tUZXN0KFN0cmluZykgY29uc3RydWN0b3IKIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjAgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuMCB1cGRhdGUKICAgICAgICBieQogICAgICAgIGFuZHJlYXMKICAgICAgICA6CiAgICAgICAgWzEuMF0gCiAgICAgICAgICAgIGFjY2Vzc2luZyBJZGVudGl0eS5nZXRQYXNzd29yZCgpIGluIGEgc3RhdGljIHdheQogRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuMCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS4wIHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgYW5kcmVhcwogICAgICAgIDoKICAgICAgICBbMS4wXSAKICAgICAgICAgICAgcmVkdWNpbmcgdmlzaWJpbGl0eSB0byBwcm90ZWN0ZWQgdG8gZm9yY2UgZW5jYXBzdWxhdGVkIHVzYWdlCiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS4wIHJlbW92ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjAgcmVtb3ZlCiAgICAgICAgYnkKICAgICAgICBhbmRyZWFzCiAgICAgICAgOgogICAgICAgIFsxLjBdIAogICAgICAgICAgICByZW1vdmVkIHVubmVlZGVkIGVuZ2luZSBpbnRlcmZhY2UKIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjAgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuMCB1cGRhdGUKICAgICAgICBieQogICAgICAgIGFuZHJlYXMKICAgICAgICA6CiAgICAgICAgWzEuMF0gCiAgICAgICAgICAgIGZvcm1hdHRpbmcgY2hhbmdlZAogRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuMCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS4wIHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgZmVsaXgKICAgICAgICA6CiAgICAgICAgWzEuMF0gCiAgICAgICAgICAgIEFkZGVkIHByZXNzIHJlbGVhc2UgYW5kIGRvd25sb2FkIGZvciAxLjByYzEKIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjAgYWRkPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuMCBhZGQKICAgICAgICBieQogICAgICAgIGZlbGl4CiAgICAgICAgOgogICAgICAgIFsxLjBdIAogICAgICAgICAgICBBZGRlZCBwcmVzcyByZWxlYXNlIGZvciAxLjByYzEKIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjAgYWRkPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuMCBhZGQKICAgICAgICBieQogICAgICAgIGFuZHJlYXMKICAgICAgICA6CiAgICAgICAgWzEuMF0gCiAgICAgICAgICAgIGFkZGVkIHdvcmtmbG93LWVuYWJsZWQgbWVudQogRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuMCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS4wIHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgYW5kcmVhcwogICAgICAgIDoKICAgICAgICBbMS4wXSAKICAgICAgICAgICAgYWRkZWQgV29ya2Zsb3dNZW51VHJhbnNmb3JtZXIKIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjAgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuMCB1cGRhdGUKICAgICAgICBieQogICAgICAgIGFuZHJlYXMKICAgICAgICA6CiAgICAgICAgWzEuMF0gCiAgICAgICAgICAgIGFkZGVkIGFzc2VydGlvbgogRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuMCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS4wIHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgYW5kcmVhcwogICAgICAgIDoKICAgICAgICBbMS4wXSAKICAgICAgICAgICAgY29kZSBzaW1wbGlmaWNhdGlvbgogRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuMCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS4wIHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgYW5kcmVhcwogICAgICAgIDoKICAgICAgICBbMS4wXSAKICAgICAgICAgICAgYWRkZWQgc29tZSBhc3NlcnRpb25zCiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS4wIGFkZDwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjAgYWRkCiAgICAgICAgYnkKICAgICAgICBhbmRyZWFzCiAgICAgICAgOgogICAgICAgIFsxLjBdIAogICAgICAgICAgICBhZGRlZCBXb3JrZmxvd1Rlc3QKIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjAgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuMCB1cGRhdGUKICAgICAgICBieQogICAgICAgIGFuZHJlYXMKICAgICAgICA6CiAgICAgICAgWzEuMF0gCiAgICAgICAgICAgIGNhdGNoaW5nIFNpdGVUcmVlRXhjZXB0aW9uCiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS4wIGFkZDwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjAgYWRkCiAgICAgICAgYnkKICAgICAgICBhbmRyZWFzCiAgICAgICAgOgogICAgICAgIFsxLjBdIAogICAgICAgICAgICBhZGRlZCBXb3JrZmxvd01lbnVUcmFuc2Zvcm1lcgogRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuMCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS4wIHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgYW5kcmVhcwogICAgICAgIDoKICAgICAgICBbMS4wXSAKICAgICAgICAgICAgbWFuYWdpbmcgc3RhdGVzIHNlcGFyYXRlbHkKIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjAgYWRkPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuMCBhZGQKICAgICAgICBieQogICAgICAgIGFuZHJlYXMKICAgICAgICA6CiAgICAgICAgWzEuMF0gCiAgICAgICAgICAgIGFkZGVkIFdvcmtmbG93YWJsZQogRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuMCBhZGQ8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS4wIGFkZAogICAgICAgIGJ5CiAgICAgICAgYW5kcmVhcwogICAgICAgIDoKICAgICAgICBbMS4wXSAKICAgICAgICAgICAgYWRkZWQgV29ya2Zsb3dEb2N1bWVudAogRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuMCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS4wIHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgYW5kcmVhcwogICAgICAgIDoKICAgICAgICBbMS4wXSAKICAgICAgICAgICAgdGhyb3dpbmcgV29ya2Zsb3dFeGNlcHRpb24gZm9yIGludm9rZSgpCiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS4wIHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjAgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBhbmRyZWFzCiAgICAgICAgOgogICAgICAgIFsxLjBdIAogICAgICAgICAgICBhZGRlZCBXb3JrZmxvd2FibGUgYnVpbGQgbWV0aG9kCiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS4wIGFkZDwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjAgYWRkCiAgICAgICAgYnkKICAgICAgICBhbmRyZWFzCiAgICAgICAgOgogICAgICAgIFsxLjBdIAogICAgICAgICAgICBhZGRlZCBXb3JrZmxvd0V4Y2VwdGlvbgogRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuMCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS4wIHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgYW5kcmVhcwogICAgICAgIDoKICAgICAgICBbMS4wXSAKICAgICAgICAgICAgYWRkZWQgRE9DVFlQRV9ESVJFQ1RPUlkgZmllbGQKIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjAgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuMCB1cGRhdGUKICAgICAgICBieQogICAgICAgIGFuZHJlYXMKICAgICAgICA6CiAgICAgICAgWzEuMF0gCiAgICAgICAgICAgIGRvY3VtZW50IGhhcyBwdWJsaWNhdGlvbiArIGlkIGluc3RlYWQgb2YgZG9jdHlwZQogRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuMCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS4wIHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgYW5kcmVhcwogICAgICAgIDoKICAgICAgICBbMS4wXSAKICAgICAgICAgICAgLSBjb21tZW50ZWQgb3V0IGlkZW50aXR5IHRlc3QgKG5vdCB3b3JraW5nKQotIGFkZGVkIHBhcmFtZXRlciB0byBBbnRUYXNrIHRlc3QKLSBhZGRlZCB3b3JrZmxvdyB0ZXN0CiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS4wIHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjAgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBhbmRyZWFzCiAgICAgICAgOgogICAgICAgIFsxLjBdIAogICAgICAgICAgICB1c2luZyBzZXJ2bGV0Y29udGV4dHBhdGggcGFyYW1ldGVyIGZvciB0ZXN0aW5nCiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS4wIHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjAgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBhbmRyZWFzCiAgICAgICAgOgogICAgICAgIFsxLjBdIAogICAgICAgICAgICBhZGRlZCBBbnRUYXNrIHRlc3QgdGFzawogRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuMCBhZGQ8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS4wIGFkZAogICAgICAgIGJ5CiAgICAgICAgYW5kcmVhcwogICAgICAgIDoKICAgICAgICBbMS4wXSAKICAgICAgICAgICAgYWRkZWQgd29ya2Zsb3cgZGVmaW5pdGlvbiBhbmQgaGlzdG9yeSB0ZXN0IGZpbGVzCiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS4wIGFkZDwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjAgYWRkCiAgICAgICAgYnkKICAgICAgICBhbmRyZWFzCiAgICAgICAgOgogICAgICAgIFsxLjBdIAogICAgICAgICAgICBhZGRlZCBzaW1wbGUtZG9jdW1lbnQgZG9jdHlwZSBkZWZpbml0aW9uIGZpbGUKIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjAgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuMCB1cGRhdGUKICAgICAgICBieQogICAgICAgIGFuZHJlYXMKICAgICAgICA6CiAgICAgICAgWzEuMF0gCiAgICAgICAgICAgIHNpbXBsaWZpZWQgImluc3RhbGwiIG1lbnUgc3RydWN0dXJlCiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS4wIHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjAgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBhbmRyZWFzCiAgICAgICAgOgogICAgICAgIFsxLjBdIAogICAgICAgICAgICBjaGFuZ2VkIG5hbWVzcGFjZSBVUkkgdG8gYXBhY2hlLm9yZy9jb2Nvb24vLi4uCiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS4wIHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjAgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBhbmRyZWFzCiAgICAgICAgOgogICAgICAgIFsxLjBdIAogICAgICAgICAgICBjb3JyZWN0ZWQgdXNlclJvbGVzID0gbnVsbCBpbml0aWFsaXphdGlvbgogRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuMCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS4wIHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgZWdsaQogICAgICAgIDoKICAgICAgICBbMS4wXSAKICAgICAgICAgICAgKiBUaHJvdyBhbiBleGNlcHRpb24gaWYgYSB1c2VyIGNvdWxkIG5vdCBiZSBpbnN0YXRpYXRlZC4KKiBBZGQgbWV0aG9kcyBmb3IgYWRkaW5nLCByZW1vdmluZyBhbmQgcmV0cmlldmluZyB1c2VycwogIHdpdGggYSBnaXZlbiB1c2VySWQuCiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS4wIHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjAgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBlZ2xpCiAgICAgICAgOgogICAgICAgIFsxLjBdIAogICAgICAgICAgICBBZGRlZCBlcXVhbHMgYW5kIGhhc2hDb2RlIG1ldGhvZHMKIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjAgYWRkPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuMCBhZGQKICAgICAgICBieQogICAgICAgIGVnbGkKICAgICAgICA6CiAgICAgICAgWzEuMF0gCiAgICAgICAgICAgIEZpcnN0IGN1dCBhdCBVc2VyTWFuYWdlci4gU3RpbGwgbWlzc2luZyBzb21lIGNydWNpYWwgbWV0aG9kcy4KIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjAgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuMCB1cGRhdGUKICAgICAgICBieQogICAgICAgIGVnbGkKICAgICAgICA6CiAgICAgICAgWzEuMF0gCiAgICAgICAgICAgIFJlcGxhY2UgZGVwcmVjYXRlZCB1c2FnZSBvZgpvcmcuYXBhY2hlLmNvY29vbi5lbnZpcm9ubWVudC5Tb3VyY2UgYnkKb3JnLmFwYWNoZS5leGNhbGlidXIuc291cmNlLlNvdXJjZQogRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuMCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS4wIHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgYW5kcmVhcwogICAgICAgIDoKICAgICAgICBbMS4wXSAKICAgICAgICAgICAgYWNjZXNzaW5nIFhQYXRoQVBJIG1ldGhvZCBpbiBzdGF0aWMgd2F5CiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS4wIHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjAgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBhbmRyZWFzCiAgICAgICAgOgogICAgICAgIFsxLjBdIAogICAgICAgICAgICBhY2Nlc3NpbmcgU1VNTUFSWV9MRU5HVEggaW4gYSBzdGF0aWMgd2F5CiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS4wIHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjAgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBlZ2xpCiAgICAgICAgOgogICAgICAgIFsxLjBdIAogICAgICAgICAgICBSZXBsYWNlIGRlcHJlY2F0ZWQgdXNhZ2Ugb2YKb3JnLmFwYWNoZS5jb2Nvb24uZW52aXJvbm1lbnQuU291cmNlIGJ5Cm9yZy5hcGFjaGUuZXhjYWxpYnVyLnNvdXJjZS5Tb3VyY2UKIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjAgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuMCB1cGRhdGUKICAgICAgICBieQogICAgICAgIGVnbGkKICAgICAgICA6CiAgICAgICAgWzEuMF0gCiAgICAgICAgICAgIFJlbW92ZWQgdW51c2VkIGltcG9ydHMKIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjAgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuMCB1cGRhdGUKICAgICAgICBieQogICAgICAgIGFuZHJlYXMKICAgICAgICA6CiAgICAgICAgWzEuMF0gCiAgICAgICAgICAgIGRlY291cGxlZCB3b3JrZmxvdyBmcm9tIHB1YmxpY2F0aW9uCmFkZGVkIGFzc2VydGlvbiBmb3Igc2V0Q3VycmVudFN0YXRlKFN0YXRlKQogRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuMCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS4wIHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgYW5kcmVhcwogICAgICAgIDoKICAgICAgICBbMS4wXSAKICAgICAgICAgICAgYWRkZWQgY29udGFpbnNTdGF0ZShTdGF0ZSkKIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjAgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuMCB1cGRhdGUKICAgICAgICBieQogICAgICAgIGFuZHJlYXMKICAgICAgICA6CiAgICAgICAgWzEuMF0gCiAgICAgICAgICAgIGZvcm1hdHRpbmcgY2hhbmdlZAogRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuMCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS4wIHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgYW5kcmVhcwogICAgICAgIDoKICAgICAgICBbMS4wXSAKICAgICAgICAgICAgZm9ybWF0dGluZyBjaGFuZ2VkCmFkZGVkIHRvU3RyaW5nKCkKIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjAgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuMCB1cGRhdGUKICAgICAgICBieQogICAgICAgIGFuZHJlYXMKICAgICAgICA6CiAgICAgICAgWzEuMF0gCiAgICAgICAgICAgIGZvcm1hdHRpbmcgY2hhbmdlZAphZGRlZCBlcXVhbHMoKSBhbmQgaGFzaENvZGUoKQogRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuMCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS4wIHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgYW5kcmVhcwogICAgICAgIDoKICAgICAgICBbMS4wXSAKICAgICAgICAgICAgZm9ybWF0dGluZyBjaGFuZ2VkCiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS4wIHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjAgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBhbmRyZWFzCiAgICAgICAgOgogICAgICAgIFsxLjBdIAogICAgICAgICAgICBmb3JtYXR0aW5nIGNoYW5nZWQKIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjAgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuMCB1cGRhdGUKICAgICAgICBieQogICAgICAgIGFuZHJlYXMKICAgICAgICA6CiAgICAgICAgWzEuMF0gCiAgICAgICAgICAgIGFkZGVkIHRvU3RyaW5nKCkgbWV0aG9kCiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS4wIGFkZDwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjAgYWRkCiAgICAgICAgYnkKICAgICAgICBhbmRyZWFzCiAgICAgICAgOgogICAgICAgIFsxLjBdIAogICAgICAgICAgICBhZGRlZCBzb21lIG5ldyB3b3JrZmxvdyBpbXBsZW1lbnRhdGlvbiBjbGFzc2VzCiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS4wIHJlbW92ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjAgcmVtb3ZlCiAgICAgICAgYnkKICAgICAgICBhbmRyZWFzCiAgICAgICAgOgogICAgICAgIFsxLjBdIAogICAgICAgICAgICByZW1vdmVkIHVubmVlZGVkIHdvcmtmbG93IGNsYXNzZXMKIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjAgYWRkPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuMCBhZGQKICAgICAgICBieQogICAgICAgIGFuZHJlYXMKICAgICAgICA6CiAgICAgICAgWzEuMF0gCiAgICAgICAgICAgIGFkZGVkIHdvcmtmbG93IFVJIGNsYXNzZXMKIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjAgYWRkPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuMCBhZGQKICAgICAgICBieQogICAgICAgIGFuZHJlYXMKICAgICAgICA6CiAgICAgICAgWzEuMF0gCiAgICAgICAgICAgIGFkZGVkIHNvbWUgbmV3IHdvcmtmbG93IGNsYXNzZXMKIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjAgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuMCB1cGRhdGUKICAgICAgICBieQogICAgICAgIGFuZHJlYXMKICAgICAgICA6CiAgICAgICAgWzEuMF0gCiAgICAgICAgICAgIGRlY291cGxlZCB3b3JrZmxvdyBmcm9tIHB1YmxpY2F0aW9uCiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS4wIHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjAgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBhbmRyZWFzCiAgICAgICAgOgogICAgICAgIFsxLjBdIAogICAgICAgICAgICBpbmRlbnRhdGlvbiBjaGFuZ2UKIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjAgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuMCB1cGRhdGUKICAgICAgICBieQogICAgICAgIGFuZHJlYXMKICAgICAgICA6CiAgICAgICAgWzEuMF0gCiAgICAgICAgICAgIGFkZGVkIGdldENvbW1hbmQoKSBtZXRob2QKIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjAgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuMCB1cGRhdGUKICAgICAgICBieQogICAgICAgIGFuZHJlYXMKICAgICAgICA6CiAgICAgICAgWzEuMF0gCiAgICAgICAgICAgIGFkZGVkIGFzc2VydGlvbiBmb3IgZ2V0VGFzayhTdHJpbmcpCiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS4wIHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjAgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBhbmRyZWFzCiAgICAgICAgOgogICAgICAgIFsxLjBdIAogICAgICAgICAgICBtYWtpbmcgZGF0ZSBmb3JtYXQgcHVibGljIHN0YXRpYyBmaW5hbAogRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuMCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS4wIHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgYW5kcmVhcwogICAgICAgIDoKICAgICAgICBbMS4wXSAKICAgICAgICAgICAgY29tcGxldGVkIEphdmFkb2MKIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjAgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuMCB1cGRhdGUKICAgICAgICBieQogICAgICAgIGFuZHJlYXMKICAgICAgICA6CiAgICAgICAgWzEuMF0gCiAgICAgICAgICAgIGRlY291cGxlZCB3b3JrZmxvdyBmcm9tIHB1YmxpY2F0aW9uCiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS4wIGFkZDwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjAgYWRkCiAgICAgICAgYnkKICAgICAgICBlZ2xpCiAgICAgICAgOgogICAgICAgIFsxLjBdIAogICAgICAgICAgICBBZGRlZCB0aGUgbmV3IFVzZXIgZnJhbWV3b3JrLiBUaGlzIGFsbG93cyBmb3IgYWRkaW5nIGFuZApkZWxldGluZyB1c2Vycy4gVGhlcmUgaXMgYSBjbGFzcyB3aGljaCBtYXBzIHRoZSB1c2VycyB0bwp0aGUgaWRlbnRpdHkgeG1sIGZpbGVzIGZvcm1hdC4KIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjAgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuMCB1cGRhdGUKICAgICAgICBieQogICAgICAgIGFuZHJlYXMKICAgICAgICA6CiAgICAgICAgWzEuMF0gCiAgICAgICAgICAgIGNvbXBsZXRlZCBKYXZhZG9jCiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS4wIHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjAgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBhbmRyZWFzCiAgICAgICAgOgogICAgICAgIFsxLjBdIAogICAgICAgICAgICBjb21wbGV0ZWQgSmF2YWRvYwppbmRlbnRhdGlvbiBjaGFuZ2VkCiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS4wIHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjAgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBhbmRyZWFzCiAgICAgICAgOgogICAgICAgIFsxLjBdIAogICAgICAgICAgICBjb21wbGV0ZWQgSmF2YWRvYwogRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuMCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS4wIHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgZWdsaQogICAgICAgIDoKICAgICAgICBbMS4wXSAKICAgICAgICAgICAgRml4ZWQgYSB0eXBvCiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS4wIHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjAgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBlZ2xpCiAgICAgICAgOgogICAgICAgIFsxLjBdIAogICAgICAgICAgICBBZGQgSmF2YURvYy4KIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjAgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuMCB1cGRhdGUKICAgICAgICBieQogICAgICAgIGVnbGkKICAgICAgICA6CiAgICAgICAgWzEuMF0gCiAgICAgICAgICAgIEFkZCBtb3JlIEphdmFEb2MuCiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS4wIHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjAgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBlZ2xpCiAgICAgICAgOgogICAgICAgIFsxLjBdIAogICAgICAgICAgICBBZGRlZCBKYXZhRG9jLgogRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuMCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS4wIHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgZWdsaQogICAgICAgIDoKICAgICAgICBbMS4wXSAKICAgICAgICAgICAgUmVuYW1lIHRoZSBzZXJpYWxpemUgbWV0aG9kIHRvIHNhdmUgKGFzIHNlcmlhbGl6ZSBpcyBhbHJlYWR5CnVzZWQgaW4gdGhlIHNlcmlhbGl6YWJsZSBpbnRlcmZhY2UpLgogRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuMCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS4wIHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgZWdsaQogICAgICAgIDoKICAgICAgICBbMS4wXSAKICAgICAgICAgICAgRml4ZWQgYSB0eXBvIGluIHRoZSBjb21tZW50CiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS4wIHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjAgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBtaWNoaQogICAgICAgIDoKICAgICAgICBbMS4wXSAKICAgICAgICAgICAgZG9jdW1lbnQgY3JlYXRvciB1cGRhdGVkCiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS4wIHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjAgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBtaWNoaQogICAgICAgIDoKICAgICAgICBbMS4wXSAKICAgICAgICAgICAgY29udGVudCBjcmVhdG9yIGFkZGVkCiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS4wIHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjAgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBtaWNoaQogICAgICAgIDoKICAgICAgICBbMS4wXSAKICAgICAgICAgICAgZGVwcmVjYXRlZCB0eHRzCiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS4wIGFkZDwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjAgYWRkCiAgICAgICAgYnkKICAgICAgICBtaWNoaQogICAgICAgIDoKICAgICAgICBbMS4wXSAKICAgICAgICAgICAgY29udGVudCBjcmVhdG9yIGFkZGVkCiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS4wIHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjAgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBtaWNoaQogICAgICAgIDoKICAgICAgICBbMS4wXSAKICAgICAgICAgICAgQ1ZTV2ViIGxpbmsgdXBkYXRlZAogRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuMCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS4wIHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgZWdsaQogICAgICAgIDoKICAgICAgICBbMS4wXSAKICAgICAgICAgICAgUmVtb3ZlZCB1bnVzZWQgaW1wb3J0cwogRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuMCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS4wIHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgZWdsaQogICAgICAgIDoKICAgICAgICBbMS4wXSAKICAgICAgICAgICAgUmVwbGFjZSBkZXByZWNhdGVkIHVzYWdlIG9mCm9yZy5hcGFjaGUuY29jb29uLmVudmlyb25tZW50LlNvdXJjZQogRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuMCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS4wIHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgZWdsaQogICAgICAgIDoKICAgICAgICBbMS4wXSAKICAgICAgICAgICAgUmVtb3ZlZCB1bnVzZWQgaW1wb3J0cwogRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuMCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS4wIHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgZWdsaQogICAgICAgIDoKICAgICAgICBbMS4wXSAKICAgICAgICAgICAgRml4ZWQgYSB3YXJuaW5nICh1c2FnZSBvZiBFY2xpcHNlIHN0YXJ0cyB0byBwYXkgb2YgOi0pKQogRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuMCByZW1vdmU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS4wIHJlbW92ZQogICAgICAgIGJ5CiAgICAgICAgZWdsaQogICAgICAgIDoKICAgICAgICBbMS4wXSAKICAgICAgICAgICAgUmVtb3ZlZCBhcyBpdCB3YXMganVzdCBhIGZpbGUgZm9yIHRlc3RpbmcKIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjAgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuMCB1cGRhdGUKICAgICAgICBieQogICAgICAgIG1pY2hpCiAgICAgICAgOgogICAgICAgIFsxLjBdIAogICAgICAgICAgICBPU0NPTSBsaW5rcyB1cGRhdGVkCiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS4wIHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjAgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBtaWNoaQogICAgICAgIDoKICAgICAgICBbMS4wXSAKICAgICAgICAgICAgTWlkYXMgaW50ZWdyYXRpb24gc3RpbGwgd2lwCiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS4wIHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjAgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBtaWNoaQogICAgICAgIDoKICAgICAgICBbMS4wXSAKICAgICAgICAgICAgQ1ZTIG1haWxpbmcgbGlzdCBhZGRlZAogRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuMCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS4wIHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgbWljaGkKICAgICAgICA6CiAgICAgICAgWzEuMF0gCiAgICAgICAgICAgIENWUyBpbnN0cnVjdGlvbnMgdXBkYXRlZAogRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuMCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS4wIHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgbWljaGkKICAgICAgICA6CiAgICAgICAgWzEuMF0gCiAgICAgICAgICAgIENWUyBpbnN0cnVjdGlvbnMgdXBkYXRlZAogRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuMCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS4wIHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgZWdsaQogICAgICAgIDoKICAgICAgICBbMS4wXSAKICAgICAgICAgICAgRml4ZWQgc29tZSBjb2RlIGxheW91dCBwcm9ibGVtcy4KQ1ZTOiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCkNWUzogUFI6CkNWUzogICBJZiB0aGlzIGNoYW5nZSBhZGRyZXNzZXMgYSBQUiBpbiB0aGUgcHJvYmxlbSByZXBvcnQgdHJhY2tpbmcKQ1ZTOiAgIGRhdGFiYXNlLCB0aGVuIGVudGVyIHRoZSBQUiBudW1iZXIocykgaGVyZS4KQ1ZTOiBPYnRhaW5lZCBmcm9tOgpDVlM6ICAgSWYgdGhpcyBjaGFuZ2UgaGFzIGJlZW4gdGFrZW4gZnJvbSBhbm90aGVyIHN5c3RlbSwgc3VjaCBhcyBOQ1NBLApDVlM6ICAgdGhlbiBuYW1lIHRoZSBzeXN0ZW0gaW4gdGhpcyBsaW5lLCBvdGhlcndpc2UgZGVsZXRlIGl0LgpDVlM6IFN1Ym1pdHRlZCBieToKQ1ZTOiAgIElmIHRoaXMgY29kZSBoYXMgYmVlbiBjb250cmlidXRlZCB0byBBcGFjaGUgYnkgc29tZW9uZSBlbHNlOyBpLmUuLApDVlM6ICAgdGhleSBzZW50IHVzIGEgcGF0Y2ggb3IgYSBuZXcgbW9kdWxlLCB0aGVuIGluY2x1ZGUgdGhlaXIgbmFtZS9lbWFpbApDVlM6ICAgYWRkcmVzcyBoZXJlLiBJZiB0aGlzIGlzIHlvdXIgd29yayB0aGVuIGRlbGV0ZSB0aGlzIGxpbmUuCkNWUzogUmV2aWV3ZWQgYnk6CkNWUzogICBJZiB3ZSBhcmUgZG9pbmcgcHJlLWNvbW1pdCBjb2RlIHJldmlld3MgYW5kIHNvbWVvbmUgZWxzZSBoYXMKQ1ZTOiAgIHJldmlld2VkIHlvdXIgY2hhbmdlcywgaW5jbHVkZSB0aGVpciBuYW1lKHMpIGhlcmUuCkNWUzogICBJZiB5b3UgaGF2ZSBub3QgaGFkIGl0IHJldmlld2VkIHRoZW4gZGVsZXRlIHRoaXMgbGluZS4KIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjAgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuMCB1cGRhdGUKICAgICAgICBieQogICAgICAgIAogICAgICAgIDoKICAgICAgICBbMS4wXSAKICAgICAgICAgICAgVGhpcyBjb21taXQgd2FzIG1hbnVmYWN0dXJlZCBieSBjdnMyc3ZuIHRvIGNyZWF0ZSBicmFuY2ggJ1JFTEVBU0VfMV8wJy4gRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuMCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS4wIHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgZ3JlZ29yCiAgICAgICAgOgogICAgICAgIFsxLjBdIAogICAgICAgICAgICB0eXBvIGZpeAogRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuMCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS4wIHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgZ3JlZ29yCiAgICAgICAgOgogICAgICAgIFsxLjBdIAogICAgICAgICAgICBhZGRlZCBzdXBwb3J0IGZvciBidWxsZXQgbGlzdHMKIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjAgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuMCB1cGRhdGUKICAgICAgICBieQogICAgICAgIGFuZHJlYXMKICAgICAgICA6CiAgICAgICAgWzEuMF0gCiAgICAgICAgICAgIHJlY292ZXJlZCB2YWxkaXR5ICgmbHQ7bGluayZndDsgZm9yICZsdDthJmd0OywgRFREIDEuMikKIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjAgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuMCB1cGRhdGUKICAgICAgICBieQogICAgICAgIGdyZWdvcgogICAgICAgIDoKICAgICAgICBbMS4wXSAKICAgICAgICAgICAgbWFkZSBiaXRmbHV4IHdvcmsgYWdhaW4KYml0Zmx1eCB4c2x0IGRvbnQgbmVlZCAmbHQ7aHRtbCZndDsmbHQ7aGVhZCZndDsgYW5kIHNvIG9uCiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS4wIHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjAgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBncmVnb3IKICAgICAgICA6CiAgICAgICAgWzEuMF0gCiAgICAgICAgICAgIG1lcmdlZCBpbiBsYXRlc3QgYml0Zmx1eCBlZGl0b3IgZnJvbSBieGUgY3ZzCnRoaXMgc3RhcnRzIHhzOnNlcXVlbmNlIHN1cHBvcnQKIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjAgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuMCB1cGRhdGUKICAgICAgICBieQogICAgICAgIG1pY2hpCiAgICAgICAgOgogICAgICAgIFsxLjBdIAogICAgICAgICAgICBqdGlkeSBhZGRlZAogRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuMCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS4wIHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgbWljaGkKICAgICAgICA6CiAgICAgICAgWzEuMF0gCiAgICAgICAgICAgIE1pZGFzIHdpcAogRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuMCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS4wIHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgbWljaGkKICAgICAgICA6CiAgICAgICAgWzEuMF0gCiAgICAgICAgICAgIGVycm9yIHhzbHQgcmVtb3ZlZCBiZWNhdXNlIGl0IGlzIHZlcnkgY29uZnVzaW5nCiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS4wIGFkZDwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjAgYWRkCiAgICAgICAgYnkKICAgICAgICBtaWNoaQogICAgICAgIDoKICAgICAgICBbMS4wXSAKICAgICAgICAgICAgeGh0bWwgZHRkIGFkZGVkCiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS4wIHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjAgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBncmVnb3IKICAgICAgICA6CiAgICAgICAgWzEuMF0gCiAgICAgICAgICAgIGNvbW1lbnRlZCBvdXQgc2NoZWR1bGVyIGluIGNvbXB1dGVyd29ybGQKYWRkZWQgdHlwZT01MDAgdG8gZXJyb3IgaGFuZGxlcgogRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuMCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS4wIHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgZ3JlZ29yCiAgICAgICAgOgogICAgICAgIFsxLjBdIAogICAgICAgICAgICBtYWRlIHB1YmxpY2F0aW9uIG5hbWUgc2hvcnRlciB0byBtYWtlIGl0IGZpdCBpbnRvIG5ldyBsYXlvdXQKIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjAgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuMCB1cGRhdGUKICAgICAgICBieQogICAgICAgIGdyZWdvcgogICAgICAgIDoKICAgICAgICBbMS4wXSAKICAgICAgICAgICAgbWFkZSB4b3B1cyB3b3JrIGFnYWluLgoKdGhlIG5vdGlvbiBvZiBzaW1wbGUuaHRtbCA9IHNpbXBsZS9pbmRleC54bWwgYnJlYWtzIGNvZGUgJmFtcDsgYXNzdW1wdGlvbnMgaW4gc28gbWFueSBwbGFjZXMgaXRzIG5vdCBldmVuIGZ1bm55LiB0aGF0J3Mgd2h5IHRoZSBmaW5hbCByZWRpcmVjdCB1cG9uIHNhdmluZyBpbiB4b3B1cyBmYWlscy4gaXRzIGp1c3QgdG9vIG11Y2ggb2YgYSBoYWNrIHRvIGNvbnN0YW50bHkgY29udmVydCBiYWNrIGFuZCBmb3J0aC4gYWxhcwogRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuMCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS4wIHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgZWdsaQogICAgICAgIDoKICAgICAgICBbMS4wXSAKICAgICAgICAgICAgKiBDb21tZW50ZWQgc29tZSBvZiB0aGUgcGlwZWxpbmVzCiogTW92ZWQgdHJhbnNmb3JtYXRpb25zIGZyb20gbWFpbiBwaXBlbGluZSB0byB3aGVyZSB0aGV5IGJlbG9uZy4KIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjAgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuMCB1cGRhdGUKICAgICAgICBieQogICAgICAgIGVnbGkKICAgICAgICA6CiAgICAgICAgWzEuMF0gCiAgICAgICAgICAgIENoYW5nZWQgZG9jdHlwZSBmcm9tIHhodG1sIHRvIHNpbXBsZS4KIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjAgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuMCB1cGRhdGUKICAgICAgICBieQogICAgICAgIGVnbGkKICAgICAgICA6CiAgICAgICAgWzEuMF0gCiAgICAgICAgICAgICogQWRkZWQgTWVudSBmb3IgQ3JlYXRpbmcgYSBzaW1wbGUgZG9jdHlwZSBkb2N1bWVudAoqIFJlbW92ZWQgbWVudSBlbnRyaWVzIGZvciBkZXByZWNhdGVkIGRvY3VtZW50YXRpb24KIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjAgYWRkPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuMCBhZGQKICAgICAgICBieQogICAgICAgIGVkaXRoCiAgICAgICAgOgogICAgICAgIFsxLjBdIAogICAgICAgICAgICBTZWNvbmQgdXNlcgogRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuMCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS4wIHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgZWRpdGgKICAgICAgICA6CiAgICAgICAgWzEuMF0gCiAgICAgICAgICAgIFJldmlzaW9uIENvbnRyb2xsZXIgZm9yIHRoZSBkZWZhdWx0IHB1YmxpY2F0aW9uIHdvcmtzCiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS4wIHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjAgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBncmVnb3IKICAgICAgICA6CiAgICAgICAgWzEuMF0gCiAgICAgICAgICAgIHJlbW92ZWQgZGVhZCBjb2RlCiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS4wIHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjAgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBncmVnb3IKICAgICAgICA6CiAgICAgICAgWzEuMF0gCiAgICAgICAgICAgIHJlYXJyYW5nZWQgbWVudXMKIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjAgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuMCB1cGRhdGUKICAgICAgICBieQogICAgICAgIGVnbGkKICAgICAgICA6CiAgICAgICAgWzEuMF0gCiAgICAgICAgICAgIFNpdGVtYXAgY2xlYW51cDoKCiogUmVwbGFjZWQgcGFnZS1lbnZlbG9wZSBhY3Rpb24gYnkgcGFnZS1lbnZlbG9wZSBpbnB1dCBtb2R1bGUuCiogUmVtb3ZlZCB1bnVzZWQgY29kZS4KIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjAgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuMCB1cGRhdGUKICAgICAgICBieQogICAgICAgIGVnbGkKICAgICAgICA6CiAgICAgICAgWzEuMF0gCiAgICAgICAgICAgIFNpdGVtYXAgY2xlYW51cDogcmVtb3ZlZCB1bnVzZWQgY29kZS4KIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjAgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuMCB1cGRhdGUKICAgICAgICBieQogICAgICAgIGFuZHJlYXMKICAgICAgICA6CiAgICAgICAgWzEuMF0gCiAgICAgICAgICAgIGNoYW5nZWQgbGljZW5zZSB0byBBU0wKIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjAgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuMCB1cGRhdGUKICAgICAgICBieQogICAgICAgIGVnbGkKICAgICAgICA6CiAgICAgICAgWzEuMF0gCiAgICAgICAgICAgIFJlYWRkZWQgYSBzdGVwIG1hdGNoZXIgdGhhdCBzaG91bGQgbm90IGhhdmUgYmVlbiBkZWxldGVkIGluIHRoZQpwcmV2aW91cyBjaGVja2luLgogRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuMCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS4wIHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgbWljaGkKICAgICAgICA6CiAgICAgICAgWzEuMF0gCiAgICAgICAgICAgIHRpdGxlIGFkZGVkCiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS4wIHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjAgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBtaWNoaQogICAgICAgIDoKICAgICAgICBbMS4wXSAKICAgICAgICAgICAgTW96aWxlIGFkZGVkIHRvIG1lbnUKIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjAgYWRkPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuMCBhZGQKICAgICAgICBieQogICAgICAgIG1pY2hpCiAgICAgICAgOgogICAgICAgIFsxLjBdIAogICAgICAgICAgICBNb3ppbGxhIE1pZGFzIGFkZGVkCiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS4wIHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjAgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBlZ2xpCiAgICAgICAgOgogICAgICAgIFsxLjBdIAogICAgICAgICAgICBBcyB0aGlzIGFjdGlvbiBpcyBub3cgaW52b2tlZCBmcm9tIHRoZSB1c2VjYXNlIHNpdGVtYXAgdGhlIG9sZCB0cmljawp0byBmaW5kIHRoZSBzaXRlbWFwIHBhdGggZG9lc24ndCB3b3JrLiBVc2UgYSBQdWJsaWNhdGlvbiBhbmQgdGhlClB1YmxpY2F0aW9uRmFjdG9yeSBpbnN0ZWFkLgogRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuMCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS4wIHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgZWdsaQogICAgICAgIDoKICAgICAgICBbMS4wXSAKICAgICAgICAgICAgUmVtb3ZlZCB0aGUgdXNhZ2Ugb2YgdXRpbC54c2wgYXMgaXQgZGlkbid0IHdvcmsgd2hlbiBpbnZva2VkIGZyb20gdGhlCmdsb2JhbCBzaXRlbWFwLiBVc2UgdGhlIFBhZ2VFbnZlbG9wZSBpbnB1dCBtb2R1bGUgaW5zdGVhZC4KIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjAgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuMCB1cGRhdGUKICAgICAgICBieQogICAgICAgIGVnbGkKICAgICAgICA6CiAgICAgICAgWzEuMF0gCiAgICAgICAgICAgIE1vdmVkIHRoZSBjcmVhdG9yIHBpcGVsaW5lcyB0byB0aGUgdXNlY2FzZSBzaXRlbWFwLgogRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuMCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS4wIHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgbWljaGkKICAgICAgICA6CiAgICAgICAgWzEuMF0gCiAgICAgICAgICAgIG5ldyBkb2N1bWVudGF0aW9uIGFkZGVkCiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS4wIHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjAgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBlZGl0aAogICAgICAgIDoKICAgICAgICBbMS4wXSAKICAgICAgICAgICAgUmV2aXNpb24gQ29udHJvbGxlcjogd29yayBpbiBwcm9ncmVzcwogRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuMCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS4wIHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgZWRpdGgKICAgICAgICA6CiAgICAgICAgWzEuMF0gCiAgICAgICAgICAgIFJldmlzaW9uIENvbnRyb2xsZXIgaW4gdGhlIHVzZWNhc2Ugc2l0ZW1hcAogRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuMCByZW1vdmU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS4wIHJlbW92ZQogICAgICAgIGJ5CiAgICAgICAgZWdsaQogICAgICAgIDoKICAgICAgICBbMS4wXSAKICAgICAgICAgICAgVGhlc2UgZmlsZXMgaGF2ZSBiZWVuIG1vdmVkIG91dCBvZiB0aGUgdHV0b3JpYWwgYW5kIG5vdyBoYXZlIHRoZWlyIG93bgpzZWN0aW9uLgogRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuMCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS4wIHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgYW5kcmVhcwogICAgICAgIDoKICAgICAgICBbMS4wXSAKICAgICAgICAgICAgY2hhbmdlZCByZWZlcmVuY2VzIHRvIHd3dy5sZW55YS5vcmcgdG8gY29jb29uLmFwYWNoZS5vcmcvbGVueWEKIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjAgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuMCB1cGRhdGUKICAgICAgICBieQogICAgICAgIGVnbGkKICAgICAgICA6CiAgICAgICAgWzEuMF0gCiAgICAgICAgICAgIEFkZGVkIGEgc2VjdGlvbiBhYm91dCByb2xsYmFjay4KIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjAgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuMCB1cGRhdGUKICAgICAgICBieQogICAgICAgIGVnbGkKICAgICAgICA6CiAgICAgICAgWzEuMF0gCiAgICAgICAgICAgIFNpbXBsaWZpZWQgYnkgdXNpbmcgdGhlIHhzcC1yZXF1ZXN0IGxvZ2ljIHNoZWV0LgogRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuMCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS4wIHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgZWdsaQogICAgICAgIDoKICAgICAgICBbMS4wXSAKICAgICAgICAgICAgVXBkYXRlZCB0byB1c2UgdGhlIFNvdXJjZVV0aWwudG9TQVggc3RhdGljIG1ldGhvZC4KIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjAgYWRkPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuMCBhZGQKICAgICAgICBieQogICAgICAgIGFuZHJlYXMKICAgICAgICA6CiAgICAgICAgWzEuMF0gCiAgICAgICAgICAgIGFkZGVkIGdlbmVyaWMgcHVibGlzaGluZyBYU1AKIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjAgYWRkPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuMCBhZGQKICAgICAgICBieQogICAgICAgIGFuZHJlYXMKICAgICAgICA6CiAgICAgICAgWzEuMF0gCiAgICAgICAgICAgIGFkZGVkIHB1YmxpY2F0aW9uLWRlcGVuZGVudCBwdWJsaXNoaW5nIFhTUAogRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuMCBhZGQ8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS4wIGFkZAogICAgICAgIGJ5CiAgICAgICAgYW5kcmVhcwogICAgICAgIDoKICAgICAgICBbMS4wXSAKICAgICAgICAgICAgYWRkZWQgcmVkaXJlY3QgcGFnZSBzdHlsZXNoZWV0CiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS4wIHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjAgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBhbmRyZWFzCiAgICAgICAgOgogICAgICAgIFsxLjBdIAogICAgICAgICAgICBjaGFuZ2VkIGxlbnlhLnN0ZXAgZnJvbSBzaG93c2NyZWVuIHRvIGFkZAogRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuMCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS4wIHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgYW5kcmVhcwogICAgICAgIDoKICAgICAgICBbMS4wXSAKICAgICAgICAgICAgLSBjb3JyZWN0ZWQgaGFyZC1jb2RlZCBzZXJ2bGV0IGNvbnRleHQKLSBhZGRlZCBzY2hlZHVsZXIgImFkZCBqb2IiIHBpcGVsaW5lIHdpdGggcmVkaXJlY3QgdG8gb3JpZ2luYWwgcGFnZQogRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuMCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS4wIHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgZWdsaQogICAgICAgIDoKICAgICAgICBbMS4wXSAKICAgICAgICAgICAgQWRkZWQgc3VwcG9ydCBmb3IgaW1hZ2UgdXBsb2FkIHJlZCBkb3RzLiBDdXJyZW50bHkgaXQgaXMgZGlzYWJsZWQgYXMKdGhlIGltYWdlIHVwbG9hZCBkb2Vzbid0IHdvcmsgYmVjYXVzZSBvZiBzb21lIFJlcXVlc3RQYXJhbWV0ZXJNYXRjaGVyCnByb2JsZW1zLgogRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuMCByZW1vdmU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS4wIHJlbW92ZQogICAgICAgIGJ5CiAgICAgICAgZWdsaQogICAgICAgIDoKICAgICAgICBbMS4wXSAKICAgICAgICAgICAgVGhlIGNvbnRlbnQgb2YgdGhlc2UgZG9jdW1lbnRzIGhhcyBiZWVuIG1vdmVkIHRvIHRoZSBkb2N0eXBlIHNlY3Rpb24uCiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS4wIHJlbW92ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjAgcmVtb3ZlCiAgICAgICAgYnkKICAgICAgICBlZ2xpCiAgICAgICAgOgogICAgICAgIFsxLjBdIAogICAgICAgICAgICBUaGUgY29udGVudCBvZiB0aGVzZSBkb2N1bWVudHMgaGFzIGJlZW4gbW92ZWQgdG8gdGhlIGRvY3R5cGUgc2V0Y2lvbi4KIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjAgcmVtb3ZlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuMCByZW1vdmUKICAgICAgICBieQogICAgICAgIGVnbGkKICAgICAgICA6CiAgICAgICAgWzEuMF0gCiAgICAgICAgICAgIFRoaXMgZG9jdW1lbnQgaXMgbm90IG5lZWRlZCBhbnltb3JlLgogRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuMCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS4wIHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgZWdsaQogICAgICAgIDoKICAgICAgICBbMS4wXSAKICAgICAgICAgICAgQWRkZWQgdGhlIGNvbnRlbnQgb2YgdGhlIGRlZmF1bHQgcHVibGljYXRpb246CiogYSBoYW5kcy1vbiB0dXRvcmlhbAoqIGEgZmVhdHVyZSBsaXN0CiogYSBsaXN0IG9mIGNvbmNlcHQKKiBleGFtcGxlcyBvZiB0aGUgdHdvIGRvY3R5cGVzCiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS4wIGFkZDwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjAgYWRkCiAgICAgICAgYnkKICAgICAgICBhbmRyZWFzCiAgICAgICAgOgogICAgICAgIFsxLjBdIAogICAgICAgICAgICBhZGRlZCBzZXBhcmF0ZSB1c2VjYXNlIGRvY3VtZW50YXRpb24gZmlsZQogRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuMCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS4wIHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgYW5kcmVhcwogICAgICAgIDoKICAgICAgICBbMS4wXSAKICAgICAgICAgICAgLSByZWZhY3RvcmVkIHB1Ymxpc2hpbmcgcGlwZWxpbmUgZm9yIGZhbGxiYWNrCi0gYWRkZWQgcHVibGljYXRpb24gdXNlY2FzZSBzaXRlbWFwIHN1cHBvcnQKIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjAgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuMCB1cGRhdGUKICAgICAgICBieQogICAgICAgIGdyZWdvcgogICAgICAgIDoKICAgICAgICBbMS4wXSAKICAgICAgICAgICAgeG9wdXMgZG9lcyBub3Qgc2VlbSB0byBzdXBwb3J0IHhzbDppbXBvcnQuIHJlcGxhY2VkIGJ5IHhzbDppbmNsdWRlCgp4b3B1cyBhbmQgYml0Zmx1eCBub3cgbG9hZC4KIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjAgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuMCB1cGRhdGUKICAgICAgICBieQogICAgICAgIGdyZWdvcgogICAgICAgIDoKICAgICAgICBbMS4wXSAKICAgICAgICAgICAgYnhlIG5hbWVzcGFjZSBkZWNsYXJhdGlvbiB3YXMgbWlzc2luZy4uIGRvaAogRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuMCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS4wIHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgbWljaGkKICAgICAgICA6CiAgICAgICAgWzEuMF0gCiAgICAgICAgICAgIGVycm9yIHR5cGUgYWRkZWQKIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjAgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuMCB1cGRhdGUKICAgICAgICBieQogICAgICAgIG1pY2hpCiAgICAgICAgOgogICAgICAgIFsxLjBdIAogICAgICAgICAgICBzaW5nbGUgcHVibGljYXRpb25zIGNhbiBiZSBzcGVjaWZpZWQKIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjAgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuMCB1cGRhdGUKICAgICAgICBieQogICAgICAgIGdyZWdvcgogICAgICAgIDoKICAgICAgICBbMS4wXSAKICAgICAgICAgICAgYml0Zmx1eCBzdXBwb3J0IGlzIGV0Y2hpbmcgY2xvc2VyLiBtb3JlIGVsZW1lbnRzIGFkZGVkIHRvIGNzcywgaW1wcm92ZWQgeHNsdAogRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuMCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS4wIHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgbWljaGkKICAgICAgICA6CiAgICAgICAgWzEuMF0gCiAgICAgICAgICAgIHhzbHQgZm9yIGxpc3RpbmcgcHVibGljYXRpb25zIGltcHJvdmVkCiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS4wIHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjAgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBhbmRyZWFzCiAgICAgICAgOgogICAgICAgIFsxLjBdIAogICAgICAgICAgICAtIHJlbW92ZWQgc2VjdGlvbiB0YWdzIChkaWQgbm90IHZhbGlkYXRlKQotIHVzaW5nIGRvYy12MS4yCiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS4wIHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjAgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBhbmRyZWFzCiAgICAgICAgOgogICAgICAgIFsxLjBdIAogICAgICAgICAgICBjb3JyZWN0ZWQgc2NoZWR1bGVyIHBhcmFtZXRlciBoYW5kbGluZwogRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuMCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS4wIHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgYW5kcmVhcwogICAgICAgIDoKICAgICAgICBbMS4wXSAKICAgICAgICAgICAgLSBmb3JtYXR0ZWQgVHJlZVB1Ymxpc2hlcgotIGFkZGVkIGFzc2VydGlvbiBpbiBEZWZhdWx0U2l0ZVRyZWUKLSBOdW1iZXJGb3JtYXRFeGNlcHRpb24gb25seSBmb3IgYWRkL21vZGlmeSBpbiBMb2FkUXVhcnR6U2VydmxldAotIHVzaW5nIFB1YmxpY2F0aW9uIGluIFRhc2tKb2IKIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjAgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuMCB1cGRhdGUKICAgICAgICBieQogICAgICAgIGdyZWdvcgogICAgICAgIDoKICAgICAgICBbMS4wXSAKICAgICAgICAgICAgaW1wcm92ZWQgbGFuZ3VhZ2Ugb24gbGVueWEub3JnIG1haW4gcGFnZQphZGRlZCBibHVyYiBmb3IgZG9jdW1lbnRhdGlvbiBhbmQgY29tbXVuaXR5CiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS4wIHJlbW92ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjAgcmVtb3ZlCiAgICAgICAgYnkKICAgICAgICBhbmRyZWFzCiAgICAgICAgOgogICAgICAgIFsxLjBdIAogICAgICAgICAgICBtb3ZlZCBjb250ZW50IG9mIHNjaGVkdWxlci54bWFwIHRvIHVzZWNhc2UueG1hcAogRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuMCByZW1vdmU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS4wIHJlbW92ZQogICAgICAgIGJ5CiAgICAgICAgYW5kcmVhcwogICAgICAgIDoKICAgICAgICBbMS4wXSAKICAgICAgICAgICAgcmVwbGFjZWQgd29ya2Zsb3cueG1hcCBieSB1c2VjYXNlLnhtYXAKIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjAgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuMCB1cGRhdGUKICAgICAgICBieQogICAgICAgIGFuZHJlYXMKICAgICAgICA6CiAgICAgICAgWzEuMF0gCiAgICAgICAgICAgIHJlbW92ZWQgInRhc2siIGNvbHVtbiBmcm9tICJhZGQgam9iIiB0YWJsZQogRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuMCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS4wIHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgYW5kcmVhcwogICAgICAgIDoKICAgICAgICBbMS4wXSAKICAgICAgICAgICAgLSB1cGRhdGVkIHNjaGVkdWxpbmcgbWVudSBlbnRyeQotIGJ1Z2ZpeGVzIGluIHNjaGVkdWxlciBYU0xUcwotIGNvcnJlY3RlZCBzY2hlZHVsZXIgdXNlY2FzZSBwYXR0ZXJuIGluIHNpdGVtYXAueG1hcAogRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuMCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS4wIHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgYW5kcmVhcwogICAgICAgIDoKICAgICAgICBbMS4wXSAKICAgICAgICAgICAgLSByZW1vdmVkIHB1Ymxpc2hpbmcgZnJvbSBkZWZhdWx0L3B1YmxpY2F0aW9uLXNpdGVtYXAueG1hcAotIGFkZGVkIGVycm9yIGhhbmRsaW5nIHRvIHVzZWNhc2UueG1hcAogRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuMCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS4wIHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgYW5kcmVhcwogICAgICAgIDoKICAgICAgICBbMS4wXSAKICAgICAgICAgICAgLSBhZGRlZCBQYWdlRW52ZWxvcGVNb2R1bGUgZG9jcwotIGFkZGVkIFBFTSB0byBjb2Nvb24ueGNvbmYKLSBtb3ZlZCB3b3JrZmxvdy54bWFwIHRvIHVzZWNhc2UueG1hcAotIGFkZGVkIGNvbW1vbiBwdWJsaXNoaW5nIHBpcGVsaW5lICsgeHNwICsgeHNsdAotIGFkZGVkIHNoYXJlZCBzY2hlZHVsaW5nIFhTUAogRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuMCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS4wIHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgYW5kcmVhcwogICAgICAgIDoKICAgICAgICBbMS4wXSAKICAgICAgICAgICAgdXNpbmcgUHVibGljYXRpb25GYWN0b3J5IHRvIHJlc29sdmUgdGhlIHB1YmxpY2F0aW9uCiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS4wIGFkZDwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjAgYWRkCiAgICAgICAgYnkKICAgICAgICBhbmRyZWFzCiAgICAgICAgOgogICAgICAgIFsxLjBdIAogICAgICAgICAgICAtIGFkZGVkIFBhZ2VFbnZlbG9wZU1vZHVsZQotIFB1YmxpY2F0aW9uRmFjdG9yeSBmb3IgY3JlYXRpbmcgUHVibGljYXRpb24gb2JqZWN0cwogRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuMCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS4wIHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgZ3JlZ29yCiAgICAgICAgOgogICAgICAgIFsxLjBdIAogICAgICAgICAgICByZXdvcmtlZCBiaXRmbHV4IHN0eWxlc2hlZXQKIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjAgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuMCB1cGRhdGUKICAgICAgICBieQogICAgICAgIGdyZWdvcgogICAgICAgIDoKICAgICAgICBbMS4wXSAKICAgICAgICAgICAgYWRkZWQgYnhlIGV4dGVuc2lvbnMgdG8gc2NoZW1hCiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS4wIHJlbW92ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjAgcmVtb3ZlCiAgICAgICAgYnkKICAgICAgICBlZ2xpCiAgICAgICAgOgogICAgICAgIFsxLjBdIAogICAgICAgICAgICBUaGlzIGZpbGUgaGFzIGJlZW4gc3VwZXJjZWRlZCBieSBzaW1wbGUyeGh0bWwueHNsLgogRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuMCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS4wIHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgZWdsaQogICAgICAgIDoKICAgICAgICBbMS4wXSAKICAgICAgICAgICAgKiBTaW1wbGlmaWVkIHRoZSBwdWJsaXNoIHBpcGVsaW5lIGJ5IHVzaW5nIHRoZSByZXF1ZXN0OiBhbmQgdGhlCiAgcmVxdWVzdC1wYXJhbTogaW5wdXQgbW9kdWxlcy4KCiogQWRkZWQgYSB2ZXJ5IHNpbXBsZSBoYW5kbGUtZXJyb3JzIHRvIHRoZSAqKi5odG1sIHBpcGVsaW5lIHdoaWNoCiAgZ2l2ZXMgeW91IGEgY3J1ZGUgd2luZG93IHN1Z2dlc3RpbmcgdGhhdCB5b3UgbWlnaHQgbm90IGhhdmUKICBwdWJsaXNoZWQgdGhlIGRvY3VtZW50LgogRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuMCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS4wIHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgbWljaGkKICAgICAgICA6CiAgICAgICAgWzEuMF0gCiAgICAgICAgICAgIHVybCBpbmZvIGFkZGVkIHRvIGRlZmF1bHQgZW52ZWxvcGUKIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjAgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuMCB1cGRhdGUKICAgICAgICBieQogICAgICAgIGVnbGkKICAgICAgICA6CiAgICAgICAgWzEuMF0gCiAgICAgICAgICAgIFRoZSBYTUwgZmlsZXMgaW4gY29udGVudCBhcmUgbm93IHN0b3JlZCBhY2NvcmRpbmcgdG8gdGhlIGZvbGxvd2luZwpzY2hlbWUgZm9vLmh0bWwgaXMgc3RvcmVkIGluIGZvby9pbmRleC54bWwsIGkuZS4gZm9yIGVhY2ggZG9jdW1lbnQgYQpkaXJlY3RvcnkgaXMgY3JlYXRlZC4gVGhpcyBoYXMgdGhlIGZvbGxvd2luZyBpbXBsaWNhdGlvbnM6CgpUaGUgeG1sU291cmNlcyBmb3IgcHVibGlzaGluZyBoYXZlIHRvIGJlIGNhbGN1bGF0ZWQgZGlmZmVyZW50bHk6CnJlcGxhY2UgIlxcLmh0bWwiIGluIHRoZSB4c3BfbGVueWFfcHViX3VybCBieSBGaWxlLnNlcGFyYXRvciArCiJpbmRleC54bWwiLgogRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuMCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS4wIHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgZWdsaQogICAgICAgIDoKICAgICAgICBbMS4wXSAKICAgICAgICAgICAgbWFrZSBzdXJlIHRoZSBwdWJsaXNoaW5nIHRhc2sgZG9lc24ndCBmYWlsIGlmCnJlc291cmNlcy9pbWFnZXMvYXV0aG9yaW5nIGRvZXNuJ3QgZXhpc3QuCiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS4wIHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjAgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBlZ2xpCiAgICAgICAgOgogICAgICAgIFsxLjBdIAogICAgICAgICAgICBUaGUgWE1MIGZpbGVzIGluIGNvbnRlbnQgYXJlIG5vdyBzdG9yZWQgYWNjb3JkaW5nIHRvIHRoZSBmb2xsb3dpbmcKc2NoZW1lIGZvby5odG1sIGlzIHN0b3JlZCBpbiBmb28vaW5kZXgueG1sLCBpLmUuIGZvciBlYWNoIGRvY3VtZW50IGEKZGlyZWN0b3J5IGlzIGNyZWF0ZWQuIFRoaXMgaGFzIHRoZSBmb2xsb3dpbmcgaW1wbGljYXRpb25zOgoKMS4gVGhlIGNvbnRlbnQgZmlsZXMgdGhlbXNlbHZlcyBhcmUgbW92ZWQgZnJvbSBjb250ZW50L2F1dGhvcmluZy8qLnhtbAogICB0byBjb250ZW50L2F1dGhvcmluZy8qL2luZGV4LnhtbC4KMi4gVGhlIGRvY3R5cGUgc2l0ZW1hcCBub3cgZ2VuZXJhdGVzIHRoZSBjb250ZW50IGZyb20KICAge2RvY3VtZW50LWlkfS9pbmRleC54bWwuCjMuIFRoZSBwYXJhbWV0ZXItZG9jdHlwZS54bWFwIGNoZWNrcyB0aGUgZmlsZSBpbgogICB7ZG9jdW1lbnQtaWR9L2luZGV4LnhtbCBmb3IgaXRzIGRvY3R5cGUuCjQuIFRoZSBjcmVhdG9yIG5vdyB1c2VzIHRoZSBCcmFuY2hDcmVhdG9yIGluc3RlYWQgb2YgdGhlIExlYWZDcmVhdG9yLgogRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuMCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS4wIHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgZWdsaQogICAgICAgIDoKICAgICAgICBbMS4wXSAKICAgICAgICAgICAgRml4ZWQgYSBidWcgaW4gRWRpdGhzIGNoZWNraW4gd2hlcmUgc2hlIGhhZCBwbGFjZWQgdGhlIGNvbW1lbnRzIHdyb25nLgogRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuMCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS4wIHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgYW5kcmVhcwogICAgICAgIDoKICAgICAgICBbMS4wXSAKICAgICAgICAgICAgYWRkZWQgY29kaW5nIGd1aWRlbGluZXMKIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjAgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuMCB1cGRhdGUKICAgICAgICBieQogICAgICAgIGFuZHJlYXMKICAgICAgICA6CiAgICAgICAgWzEuMF0gCiAgICAgICAgICAgIGNvcnJlY3RlZCBzY2hlZHVsaW5nLmh0bWwgbGluawogRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuMCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS4wIHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgYW5kcmVhcwogICAgICAgIDoKICAgICAgICBbMS4wXSAKICAgICAgICAgICAganVzdCBtb3ZlZCBhIHNwYWNlCiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS4wIHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjAgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBhbmRyZWFzCiAgICAgICAgOgogICAgICAgIFsxLjBdIAogICAgICAgICAgICBhZGRlZCBzZWN0aW9uIHRvIHNjaGVkdWxpbmcueG1sCiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS4wIHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjAgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBhbmRyZWFzCiAgICAgICAgOgogICAgICAgIFsxLjBdIAogICAgICAgICAgICBjb3JyZWN0ZWQgbGlua3MKIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjAgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuMCB1cGRhdGUKICAgICAgICBieQogICAgICAgIGVnbGkKICAgICAgICA6CiAgICAgICAgWzEuMF0gCiAgICAgICAgICAgIE1ham9yIGNvZGUgY2xlYW51cCBhbmQgYnVnZml4IHdpdGggcmVnYXJkcyB0byB4c3BfbGVueWFfcHJlZml4LgogRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuMCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS4wIHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgZWRpdGgKICAgICAgICA6CiAgICAgICAgWzEuMF0gCiAgICAgICAgICAgIEhhbmRsZSBlcnJvcjogd29yayBpbiBwcm9ncmVzcwogRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuMCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS4wIHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgZWdsaQogICAgICAgIDoKICAgICAgICBbMS4wXSAKICAgICAgICAgICAgVGhlIGNoZWNrIHdoZXRoZXIgYSBub2RlIGFscmVhZHkgZXhpc3RzIGRpZCBub3Qgd29yay4gVXNpbmcgdGhlIG5ldwptZXRob2QgZ2V0QWJzb2x1dGVQYXJlbnRJZCBpdCBpcyBmaXhlZCBub3cuCiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS4wIHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjAgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBlZ2xpCiAgICAgICAgOgogICAgICAgIFsxLjBdIAogICAgICAgICAgICBBZGRlZCBhIG5ldyBtZXRob2QgZ2V0QWJzb2x1dGVQYXJlbnRJZCB3aGljaCByZXR1cm5zIHRoZSBlbnRpcmUKcGFyZW50SWQuIFRoaXMgaXMgdXNlZCBmb3IgaW5lcnRpbmcgbm9kZXMgaW50byB0aGUgc2l0ZXRyZWUgd2hlcmUgd2UKaGF2ZSB0byBzcGVjaWZ5IHRoZSB3aG9sZSBwYXJlbnRpZC4KIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjAgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuMCB1cGRhdGUKICAgICAgICBieQogICAgICAgIG1pY2hpCiAgICAgICAgOgogICAgICAgIFsxLjBdIAogICAgICAgICAgICBNaWRhcyBpbnRlZ3JhdGlvbiBzdGFydGVkCiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS4wIGFkZDwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjAgYWRkCiAgICAgICAgYnkKICAgICAgICBtaWNoaQogICAgICAgIDoKICAgICAgICBbMS4wXSAKICAgICAgICAgICAgdG9jIHJlYWRkZWQKIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjAgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuMCB1cGRhdGUKICAgICAgICBieQogICAgICAgIGVkaXRoCiAgICAgICAgOgogICAgICAgIFsxLjBdIAogICAgICAgICAgICBMaXZlIFRhYiBsaW5rIGZpeGVkCiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS4wIHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjAgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBhbmRyZWFzCiAgICAgICAgOgogICAgICAgIFsxLjBdIAogICAgICAgICAgICAtIGFkZGVkIFhTTFQgZm9yIGxlbnlhIGhlYWRlcgotIGlubGluZSBtYXJrdXAgZm9yIHNpbXBsZSBkb2N0eXBlCiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS4wIHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjAgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBhbmRyZWFzCiAgICAgICAgOgogICAgICAgIFsxLjBdIAogICAgICAgICAgICBhZGRlZCB0cmFuc2FjdGlvbiBtYW5hZ2VtZW50IGZvciBSMS40CiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS4wIHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjAgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBlZ2xpCiAgICAgICAgOgogICAgICAgIFsxLjBdIAogICAgICAgICAgICBBZGRlZCBvcGVuT2ZmaWNlIHByb3Bvc2FsLgogRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuMCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS4wIHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgZWRpdGgKICAgICAgICA6CiAgICAgICAgWzEuMF0gCiAgICAgICAgICAgIEFudCBUYXNrIFB1Ymxpc2hlciBmb3IgZGVmYXVsdCBwdWJsaWNhdGlvbgogRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuMCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS4wIHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgZWRpdGgKICAgICAgICA6CiAgICAgICAgWzEuMF0gCiAgICAgICAgICAgIENyZWF0ZSB0aGUgdHJlZSBhbmQgYWRkIG5vZGUgb25seSBvbmNlCiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS4wIHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjAgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBlZGl0aAogICAgICAgIDoKICAgICAgICBbMS4wXSAKICAgICAgICAgICAgUGFyZW50IGlkIGlzIC8gaW5zdGVhZCBvZiBudWxsIChmb3IgQW50IFRhc2sgUHVibGlzaGVyKQogRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuMCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS4wIHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgZWRpdGgKICAgICAgICA6CiAgICAgICAgWzEuMF0gCiAgICAgICAgICAgIEFudCBUYXNrIFB1Ymxpc2hlciBmb3IgZGVmYXVsdCBwdWJsaWNhdGlvbgogRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuMCBhZGQ8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS4wIGFkZAogICAgICAgIGJ5CiAgICAgICAgZWRpdGgKICAgICAgICA6CiAgICAgICAgWzEuMF0gCiAgICAgICAgICAgIEFudCBUYXNrIFB1Ymxpc2hlciBmb3IgZGVmYXVsdCBwdWJsaWNhdGlvbgogRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuMCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS4wIHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgZWdsaQogICAgICAgIDoKICAgICAgICBbMS4wXSAKICAgICAgICAgICAgRml4ZWQgYSBjb21tZW50LgogRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuMCBhZGQ8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS4wIGFkZAogICAgICAgIGJ5CiAgICAgICAgZWdsaQogICAgICAgIDoKICAgICAgICBbMS4wXSAKICAgICAgICAgICAgQWRkZWQgc3R5bGVzaGVldCBmb3IgeGh0bWwgaW4gdGhlIGxpdmUgYXJlYS4KIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjAgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuMCB1cGRhdGUKICAgICAgICBieQogICAgICAgIGVnbGkKICAgICAgICA6CiAgICAgICAgWzEuMF0gCiAgICAgICAgICAgIE1ha2Ugc3VyZSB0aGVzZSBmaWxlcyBoYXZlIHVuaXggbGluZSBlbmRpbmdzLgogRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuMCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS4wIHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgbWljaGkKICAgICAgICA6CiAgICAgICAgWzEuMF0gCiAgICAgICAgICAgIGVkaXRpbmcgd2l0aCBYb3B1cwogRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuMCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS4wIHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgYW5kcmVhcwogICAgICAgIDoKICAgICAgICBbMS4wXSAKICAgICAgICAgICAgLSBhZGRlZCBuZXcgcHJvamVjdCBsb2dvCi0gdXNpbmcgdGFibGVzIGluc3RlYWQgb2YgQ1NTIGZsb2F0aW5nIGRpdnMgKE1vemlsbGEgcHJvYmxlbXMpCi0gY29tcGxldGVkIHNpbXBsZS1kb2N0eXBlIFhTTFQKLSBwcmV0dHktcHJpbnRlZCBzaW1wbGUtZG9jdW1lbnQueG1sCiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS4wIHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjAgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBlZ2xpCiAgICAgICAgOgogICAgICAgIFsxLjBdIAogICAgICAgICAgICBUaGFua3MgdG8gdGhlIGZhY3QgdGhhdCBpdCBpcyBub3cgcG9zc2libGUgdG8gdXNlIGNvbnN0cnVjdHMgbGlrZQp7cmVxdWVzdDpyZXF1ZXN0VVJJfSBpbiB0aGUgc2l0ZW1hcCBhbmQgdGhhbmtzIHRvIHRoZSBmYWN0IHRoYXQgdGhlCnJlcXVlc3RVUkkgZm9yIGEgY3JlYXRpb24gcmVxdWVzdCBjb250YWlucyB0aGUgVVJMIG9mIHRoZSByZXF1ZXN0aW5nCmRvY3VtZW50IHdlIG5vIGxvbmdlciBuZWVkIHRvIHB1dCB0aGUgcmVmZXJlciBpbnRvIHRoZSBzZXNzaW9uLgoKV2hlbiB0aGUgY3JlYXRpb24gd2FzIHN1Y2Nlc3NmdWwgd2Ugc2ltcGx5IHJlZGlyZWN0IGJhY2sgdG8gdGhlCnJlcXVlc3RVUkkuCiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS4wIHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjAgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBlZ2xpCiAgICAgICAgOgogICAgICAgIFsxLjBdIAogICAgICAgICAgICBTaW1wbGlmaWVkIGJ5IHVzaW5nIHJlcXVlc3QgYW5kIHNlc3Npb24gbG9naWNzaGVldHMuCiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS4wIHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjAgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBncmVnb3IKICAgICAgICA6CiAgICAgICAgWzEuMF0gCiAgICAgICAgICAgIGFkYXB0ZWQgYml0Zmx1eCBzdHlsZXNoZWV0cyB0byBlZGl0IHNpbXBsZSBkb2N1bWVudHMKIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjAgYWRkPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuMCBhZGQKICAgICAgICBieQogICAgICAgIGdyZWdvcgogICAgICAgIDoKICAgICAgICBbMS4wXSAKICAgICAgICAgICAgY3NzIGZvciBiaXRmbHV4IGVkaXRvcgogRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuMCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS4wIHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgZ3JlZ29yCiAgICAgICAgOgogICAgICAgIFsxLjBdIAogICAgICAgICAgICBtb3VudGVkIGJpdGZsdXggc2l0ZW1hcAogRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuMCBhZGQ8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS4wIGFkZAogICAgICAgIGJ5CiAgICAgICAgZ3JlZ29yCiAgICAgICAgOgogICAgICAgIFsxLjBdIAogICAgICAgICAgICBiaXRmbHV4IHN0eWxlc2hlZXRzIGZvciBkZWZhdWx0IHB1YmxpY2F0aW9uCiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS4wIGFkZDwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjAgYWRkCiAgICAgICAgYnkKICAgICAgICBncmVnb3IKICAgICAgICA6CiAgICAgICAgWzEuMF0gCiAgICAgICAgICAgIGJpdGZsdXggc2l0ZW1hcCBmb3IgZGVmYXVsdCBwdWJsaWNhdGlvbgogRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuMCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS4wIHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgZWdsaQogICAgICAgIDoKICAgICAgICBbMS4wXSAKICAgICAgICAgICAgTm8gbG9uZ2VyIHRyaW0gImluZGV4IiBmcm9tIHRoZSBkb2N1bWVudC1pZC4KIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjAgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuMCB1cGRhdGUKICAgICAgICBieQogICAgICAgIG1pY2hpCiAgICAgICAgOgogICAgICAgIFsxLjBdIAogICAgICAgICAgICBjb3B5cmlnaHQgdXBkYXRlZAogRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuMCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS4wIHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgbWljaGkKICAgICAgICA6CiAgICAgICAgWzEuMF0gCiAgICAgICAgICAgIGxpbmsgY2hhbmdlZAogRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuMCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS4wIHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgYW5kcmVhcwogICAgICAgIDoKICAgICAgICBbMS4wXSAKICAgICAgICAgICAgLSByZXBsYWNlZCBzY2hlZHVsZXIueG1hcCBieSB3b3JrZmxvdy54bWFwCiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS4wIGFkZDwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjAgYWRkCiAgICAgICAgYnkKICAgICAgICBhbmRyZWFzCiAgICAgICAgOgogICAgICAgIFsxLjBdIAogICAgICAgICAgICBhZGRlZCBhbnRsb2cgQ1NTIGZpbGUKIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjAgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuMCB1cGRhdGUKICAgICAgICBieQogICAgICAgIGFuZHJlYXMKICAgICAgICA6CiAgICAgICAgWzEuMF0gCiAgICAgICAgICAgIC0gY2hhbmdlZCB0YXNrIGxvZyB2aWV3IGhhbmRsaW5nCi0gcmVwbGFjZWQgc2NoZWR1bGVyLnhtYXAgYnkgd29ya2Zsb3cueG1hcAotIGNoYW5nZWQgaGVhZGxpbmUgZm9ybWF0dGluZyBpbiBkb2NzLW5ldwotIGFkZGVkIGFudGxvZyBjc3MgaW1wb3J0IGluIGRlZmF1bHQuY3NzCi0KIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjAgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuMCB1cGRhdGUKICAgICAgICBieQogICAgICAgIGFuZHJlYXMKICAgICAgICA6CiAgICAgICAgWzEuMF0gCiAgICAgICAgICAgIGFkZGVkIG5ldyBkb2N1bWVudGF0aW9uIG1lbnUgaXRlbQogRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuMCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS4wIHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgYW5kcmVhcwogICAgICAgIDoKICAgICAgICBbMS4wXSAKICAgICAgICAgICAgYWRkZWQgc2NoZWR1bGVyIHBpcGVsaW5lCiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS4wIHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjAgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBncmVnb3IKICAgICAgICA6CiAgICAgICAgWzEuMF0gCiAgICAgICAgICAgIHRoZSBtZW51cyBvbmx5IHdvcmsgaWYgdGhlaXIgbGFiZWxzIGFyZSBGSUxFIFNFQVJDSCBIRUxQIERFQlVHCgppbiB0aGF0IG9yZGVyLiBubywgaW0gbm90IGtpZGRpbmcuCiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS4wIHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjAgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBhbmRyZWFzCiAgICAgICAgOgogICAgICAgIFsxLjBdIAogICAgICAgICAgICB3YXJuaW5nIGluc3RlYWQgb2YgZXhjZXB0aW9uIHdoZW4gcHVibGlzaGluZyBjb25maWd1cmF0aW9uIGZpbGUgbm90IGZvdW5kCiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS4wIGFkZDwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjAgYWRkCiAgICAgICAgYnkKICAgICAgICBlZ2xpCiAgICAgICAgOgogICAgICAgIFsxLjBdIAogICAgICAgICAgICBBZGRlZCBhbiBFeGNlcHRpb24gdG8gdGhlIFNpdGVUcmVlIHRoYXQgaXMgdGhyb3duIGlmIHRoZSBhZGROb2RlCm1ldGhvZCBmYWlscywgdXN1YWxseSBiZWNhdXNlIHRoZSBwYXJlbnQgbm9kZSBkb2Vzbid0IGV4aXN0LgogRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuMCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS4wIHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgYW5kcmVhcwogICAgICAgIDoKICAgICAgICBbMS4wXSAKICAgICAgICAgICAgcmVtb3ZlZCBmYXZpY29uLmljbwogRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuMCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS4wIHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgYW5kcmVhcwogICAgICAgIDoKICAgICAgICBbMS4wXSAKICAgICAgICAgICAgbG9nZ2luZyBleGNlcHRpb24gc3RhY2t0cmFjZQogRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuMCBhZGQ8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS4wIGFkZAogICAgICAgIGJ5CiAgICAgICAgYW5kcmVhcwogICAgICAgIDoKICAgICAgICBbMS4wXSAKICAgICAgICAgICAgYWRkZWQgbmV3IHN0eWxlc2hlZXQgZm9yIENNUyBzY3JlZW5zCiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS4wIGFkZDwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjAgYWRkCiAgICAgICAgYnkKICAgICAgICBhbmRyZWFzCiAgICAgICAgOgogICAgICAgIFsxLjBdIAogICAgICAgICAgICBzY2hlZHVsZXI6Ci0gYWRkZWQgc2l0ZW1hcCwgbmV3IFhTUCwgbmV3IFhTTFRzCi0gY2hhbmdlZCBDU1MKIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjAgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuMCB1cGRhdGUKICAgICAgICBieQogICAgICAgIGdyZWdvcgogICAgICAgIDoKICAgICAgICBbMS4wXSAKICAgICAgICAgICAgYWRkaW5nIHR5cGU9NTAwIHRvIGVycm9yIGhhbmRsZXJzCiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS4wIHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjAgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBncmVnb3IKICAgICAgICA6CiAgICAgICAgWzEuMF0gCiAgICAgICAgICAgIGdldHRpbmcgdGlyZWQgb2YgdGhpcyB4b3B1cyBidXNpbmVzcy4uCiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS4wIHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjAgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBhbmRyZWFzCiAgICAgICAgOgogICAgICAgIFsxLjBdIAogICAgICAgICAgICBhZGRlZCBsYWJlbCBmb3IgcHVibGlzaCB0YXNrCiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS4wIHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjAgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBhbmRyZWFzCiAgICAgICAgOgogICAgICAgIFsxLjBdIAogICAgICAgICAgICBhZGRlZCBzY2hlZHVsZXIgbWVudSBpdGVtCiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS4wIHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjAgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBhbmRyZWFzCiAgICAgICAgOgogICAgICAgIFsxLjBdIAogICAgICAgICAgICBhZGRlZCBleGNsdWRlLXJlc3VsdC1wcmVmaXhlcwogRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuMCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS4wIHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgZWdsaQogICAgICAgIDoKICAgICAgICBbMS4wXSAKICAgICAgICAgICAgQWRkIHNvbWUgY2hlY2tzIHRvIGhhbmRsZSB0aGUgY2FzZSB3aGVuIHRoZXJlIGlzIG5vIHBhcmVudC4KIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjAgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuMCB1cGRhdGUKICAgICAgICBieQogICAgICAgIGdyZWdvcgogICAgICAgIDoKICAgICAgICBbMS4wXSAKICAgICAgICAgICAgZ2V0dGluZyB0aXJlZCBvZiB0aGlzIHhvcHVzIGJ1c2luZXNzLi4KIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjAgYWRkPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuMCBhZGQKICAgICAgICBieQogICAgICAgIGdyZWdvcgogICAgICAgIDoKICAgICAgICBbMS4wXSAKICAgICAgICAgICAgKioqIGVtcHR5IGxvZyBtZXNzYWdlICoqKgogRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuMCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS4wIHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgZWdsaQogICAgICAgIDoKICAgICAgICBbMS4wXSAKICAgICAgICAgICAgRml4ZWQgdGhlIGNyZWF0b3IgbWVudSBlbnRyeSAoIk5ldyBEb2N1bWVudCIpIHRvIGludm9rZSB0aGUgY3JlYXRvcgp3aXRoIHRoZSB1c2VjYXNlIFVSSSBzY2hlbWUgYW5kIGludm9rZSBpdCB3aXRoIHRoZSBzaW1wbGUgZG9jdHlwZS4KIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjAgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuMCB1cGRhdGUKICAgICAgICBieQogICAgICAgIGVnbGkKICAgICAgICA6CiAgICAgICAgWzEuMF0gCiAgICAgICAgICAgIENvZGUgY2xlYW51cC4KIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjAgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuMCB1cGRhdGUKICAgICAgICBieQogICAgICAgIGdyZWdvcgogICAgICAgIDoKICAgICAgICBbMS4wXSAKICAgICAgICAgICAgZnVydGhlciB3b3JrIG9uIHhvcHVzIHN1cHBvcnQgZm9yIHRoZSBkZWZhdWx0IHB1YmxpY2F0aW9uLgoKc2luY2Ugb3VyIGRvY3VtZW50cyBub3cgY29udGFpbiBuYW1lc3BhY2VzLCB0aGUgbWF0Y2hlcnMgaGF2ZSB0byBjaGFuZ2UuIHNlZSB4c2x0L2F1dGhvcmluZy94b3B1czItc2ltcGxlLnhzbAogRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuMCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS4wIHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgZWdsaQogICAgICAgIDoKICAgICAgICBbMS4wXSAKICAgICAgICAgICAgU2l0ZVRyZWUgaW50ZXJmYWNlIG5vdyB1c2VzIHRoZSBTaXRlVHJlZU5vZGUgbm93IGluc3RlYWQgb2YgdGhlIHBsYWluCnczYy5kb20uTm9kZSAoaW4gdGhlIG1ldGhvZHMgZ2V0Tm9kZSBhbmQgYWRkTm9kZSkuCiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS4wIGFkZDwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjAgYWRkCiAgICAgICAgYnkKICAgICAgICBlZ2xpCiAgICAgICAgOgogICAgICAgIFsxLjBdIAogICAgICAgICAgICBBZGRlZCBhbiBJbnRlcmZhY2UgYW5kIEltcGxlbWVudGF0aW9uIGZvciBTaXRlVHJlZU5vZGVzLgogRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuMCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS4wIHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgYW5kcmVhcwogICAgICAgIDoKICAgICAgICBbMS4wXSAKICAgICAgICAgICAgYWRkZWQgc2l0ZXRyZWUgbmFtZXNwYWNlCiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS4wIHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjAgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBhbmRyZWFzCiAgICAgICAgOgogICAgICAgIFsxLjBdIAogICAgICAgICAgICBjaGFuZ2VkIHByb2plY3QgVVJMIHRvIHd3dy5sZW55YS5vcmcKIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjAgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuMCB1cGRhdGUKICAgICAgICBieQogICAgICAgIG1pY2hpCiAgICAgICAgOgogICAgICAgIFsxLjBdIAogICAgICAgICAgICBsaW5rIHRvIFd5b25hIGFkZGVkCiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS4wIGFkZDwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjAgYWRkCiAgICAgICAgYnkKICAgICAgICBhbmRyZWFzCiAgICAgICAgOgogICAgICAgIFsxLjBdIAogICAgICAgICAgICBhZGRlZCBuYW1lc3BhY2VzIHNwZWNzIGRvY3VtZW50CiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS4wIHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjAgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBhbmRyZWFzCiAgICAgICAgOgogICAgICAgIFsxLjBdIAogICAgICAgICAgICB1bi1jb21tZW50ZWQgc29tZSBkb2N1bWVudGF0aW9uIHBhZ2VzCiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS4wIHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjAgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBhbmRyZWFzCiAgICAgICAgOgogICAgICAgIFsxLjBdIAogICAgICAgICAgICBzZXR0aW5nIGRvY3R5cGUgdG8gMS4yICgxLjEgd2FzIG5vdCB2YWxpZCkKIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjAgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuMCB1cGRhdGUKICAgICAgICBieQogICAgICAgIG1pY2hpCiAgICAgICAgOgogICAgICAgIFsxLjBdIAogICAgICAgICAgICBib29tdGNoYWsgYWRkZWQKIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjAgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuMCB1cGRhdGUKICAgICAgICBieQogICAgICAgIGFuZHJlYXMKICAgICAgICA6CiAgICAgICAgWzEuMF0gCiAgICAgICAgICAgIGFkZGVkIGV4cG9ydCB0YXJnZXQgYnVpbGRmaWxlCiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS4wIGFkZDwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjAgYWRkCiAgICAgICAgYnkKICAgICAgICBhbmRyZWFzCiAgICAgICAgOgogICAgICAgIFsxLjBdIAogICAgICAgICAgICBhZGRlZCBzdGF0aWMgSFRNTCBleHBvcnQgYnVpbGRmaWxlCiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS4wIHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjAgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBtaWNoaQogICAgICAgIDoKICAgICAgICBbMS4wXSAKICAgICAgICAgICAgRklYTUUgYWRkZWQKIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjAgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuMCB1cGRhdGUKICAgICAgICBieQogICAgICAgIGVnbGkKICAgICAgICA6CiAgICAgICAgWzEuMF0gCiAgICAgICAgICAgIEFkZGVkIGp1c3QgYSBmZXcgbW9yZSBvdXRwdXRQcm9wZXJ0aWVzIHRvIHRoZSB0cmFuc2Zvcm1lciBhbmQgbm93CmZpbmFsbHkgdGhlIERURCBkZWZpbml0aW9uIGlzIGFsc28gaW4gdGhlIG91dHB1dCBmaWxlLgogRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuMCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS4wIHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgYW5kcmVhcwogICAgICAgIDoKICAgICAgICBbMS4wXSAKICAgICAgICAgICAgYWRkZWQgKiB0byBsZW55YWJvZHkgbWF0Y2hlcgogRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuMCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS4wIHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgYW5kcmVhcwogICAgICAgIDoKICAgICAgICBbMS4wXSAKICAgICAgICAgICAgLSBjaGFuZ2VkIHBhZ2UyeGh0bWwgdG8gd29yayB3aXRoIC9sZW55YS9jbXNib2R5Ci0gcmVwbGFjZWQgc3R5bGVzaGVldCBpbmNsdXNpb24gYnkgcGlwZWxpbmUgc3RlcAogRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuMCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS4wIHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgbWljaGkKICAgICAgICA6CiAgICAgICAgWzEuMF0gCiAgICAgICAgICAgIGRvbndsb2FkaW5nIGFuZCBpbnN0YWxsaW5nIHVwZGF0ZWQKIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjAgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuMCB1cGRhdGUKICAgICAgICBieQogICAgICAgIGVnbGkKICAgICAgICA6CiAgICAgICAgWzEuMF0gCiAgICAgICAgICAgIFRoZSBsb2cuZXJyb3Igc3RtbnRzIHNob3VsZCByZWFsbHkgYmUgbG9nLmRlYnVnLgogRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuMCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS4wIHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgZWdsaQogICAgICAgIDoKICAgICAgICBbMS4wXSAKICAgICAgICAgICAgQWRkZWQgdHdvIG1vcmUgbWV0aG9kcyB0byBmaW5kIGEgbm9kZSBnaXZlbiBhIGRvY3VtZW50LWlkIGFuZCB0byBhZGQgYQpOb2RlIGdpdmVuIGFuIGV4aXN0aW5nIE5vZGUuIFRoaXMgaXMgdXNlZnVsbCBmb3IgcHVibGlzaGluZyB3aGVyZSB5b3UKbmVlZCB0byByZXBsaWNhdGUgbm9kZXMuCiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS4wIHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjAgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBtaWNoaQogICAgICAgIDoKICAgICAgICBbMS4wXSAKICAgICAgICAgICAgZG9ud2xvYWRpbmcgYW5kIGluc3RhbGxpbmcgdXBkYXRlZAogRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuMCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS4wIHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgYW5kcmVhcwogICAgICAgIDoKICAgICAgICBbMS4wXSAKICAgICAgICAgICAgYWRkZWQgdGFzayBsb2dzIG1lbnUgaXRlbQogRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuMCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS4wIHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgbWljaGkKICAgICAgICA6CiAgICAgICAgWzEuMF0gCiAgICAgICAgICAgIGRvbndsb2FkaW5nIGFuZCBpbnN0YWxsaW5nIHVwZGF0ZWQKIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjAgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuMCB1cGRhdGUKICAgICAgICBieQogICAgICAgIGFuZHJlYXMKICAgICAgICA6CiAgICAgICAgWzEuMF0gCiAgICAgICAgICAgIGNoYW5nZWQgInhvcHVzIiBtYXRjaGVyIHRvICJhdXRob3JpbmcveG9wdXMiCiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS4wIHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjAgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBtaWNoaQogICAgICAgIDoKICAgICAgICBbMS4wXSAKICAgICAgICAgICAgSVJDIGRvY3UgYWRkZWQKIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjAgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuMCB1cGRhdGUKICAgICAgICBieQogICAgICAgIG1pY2hpCiAgICAgICAgOgogICAgICAgIFsxLjBdIAogICAgICAgICAgICBkb253bG9hZGluZyBhbmQgaW5zdGFsbGluZyB1cGRhdGVkCiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS4wIGFkZDwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjAgYWRkCiAgICAgICAgYnkKICAgICAgICBncmVnb3IKICAgICAgICA6CiAgICAgICAgWzEuMF0gCiAgICAgICAgICAgIHN1cHBvcnQgZm9yIG1vcmUgZG9jdHlwZXMgaW4gdGhlIGRlZmF1bHQgcHVibGljYXRpb24KIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjAgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuMCB1cGRhdGUKICAgICAgICBieQogICAgICAgIGFuZHJlYXMKICAgICAgICA6CiAgICAgICAgWzEuMF0gCiAgICAgICAgICAgIHVzaW5nIGxpZ2h0IGZvbnQgbG9nbwogRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuMCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS4wIHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgbWljaGkKICAgICAgICA6CiAgICAgICAgWzEuMF0gCiAgICAgICAgICAgIGRlcHJlY2F0ZWQgZG9jdW1lbnRhdGlvbgogRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuMCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS4wIHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgbWljaGkKICAgICAgICA6CiAgICAgICAgWzEuMF0gCiAgICAgICAgICAgIHJlY29tbWVuZGVkIGNvbWJpbmF0aW9uIHVwZGF0ZWQKIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjAgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuMCB1cGRhdGUKICAgICAgICBieQogICAgICAgIGFuZHJlYXMKICAgICAgICA6CiAgICAgICAgWzEuMF0gCiAgICAgICAgICAgIGNoYW5nZWQgZW5jb2RpbmcgdG8gVVRGLTgKIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjAgYWRkPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuMCBhZGQKICAgICAgICBieQogICAgICAgIGFuZHJlYXMKICAgICAgICA6CiAgICAgICAgWzEuMF0gCiAgICAgICAgICAgIGFkZGVkIGJvb2sueG1sIGFnYWluCiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS4wIHJlbW92ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjAgcmVtb3ZlCiAgICAgICAgYnkKICAgICAgICBhbmRyZWFzCiAgICAgICAgOgogICAgICAgIFsxLjBdIAogICAgICAgICAgICByZW1vdmVkIGJvb2sueG1sCiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS4wIHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjAgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBhbmRyZWFzCiAgICAgICAgOgogICAgICAgIFsxLjBdIAogICAgICAgICAgICBhZGRlZCBzb21lIHdoaXRlc3BhY2UgKGxhc3QgY29tbWl0IHdhcyBub3QgcmVjb2duaXplZCBieSBDVlMpCiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS4wIHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjAgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBncmVnb3IKICAgICAgICA6CiAgICAgICAgWzEuMF0gCiAgICAgICAgICAgIG1lbnUgZm9yIGRlZmF1bHQgcHVibGljYXRpb24sIHhvcHVzIHdvcmsKCm1vdmVkIG1vcmUgc3R1ZmYgdG8gcm9vdCBzaXRlbWFwCiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS4wIGFkZDwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjAgYWRkCiAgICAgICAgYnkKICAgICAgICBhbmRyZWFzCiAgICAgICAgOgogICAgICAgIFsxLjBdIAogICAgICAgICAgICBhZGRlZCBmb3JyZXN0IHByb3BlcnRpZXMgZmlsZSAobmVlZGVkIGZvciBzdGF0aWMgZXhwb3J0KQogRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuMCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS4wIHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgYW5kcmVhcwogICAgICAgIDoKICAgICAgICBbMS4wXSAKICAgICAgICAgICAgYWRkZWQgdW5peCBpbnN0YWxsYXRpb24gbm90ZQogRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuMCBhZGQ8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS4wIGFkZAogICAgICAgIGJ5CiAgICAgICAgYW5kcmVhcwogICAgICAgIDoKICAgICAgICBbMS4wXSAKICAgICAgICAgICAgLSByZW1vdmVkIHNwZWNpYWwgbWVudSBwaXBlbGluZQotIGFkZGVkIGJvb2sueG1sIGZvciBob21lcGFnZQogRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuMCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS4wIHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgYW5kcmVhcwogICAgICAgIDoKICAgICAgICBbMS4wXSAKICAgICAgICAgICAgZml4ZWQgdmFsaWRhdGlvbiBidWdzCiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS4wIHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjAgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBhbmRyZWFzCiAgICAgICAgOgogICAgICAgIFsxLjBdIAogICAgICAgICAgICByZW1vdmVkIHRlbXBsYXRlIHNraW4KIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjAgcmVtb3ZlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuMCByZW1vdmUKICAgICAgICBieQogICAgICAgIGFuZHJlYXMKICAgICAgICA6CiAgICAgICAgWzEuMF0gCiAgICAgICAgICAgIHJlbW92ZWQgc2l0ZW1hcC54bWFwIGZyb20gc2tpbgogRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuMCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS4wIHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgYW5kcmVhcwogICAgICAgIDoKICAgICAgICBbMS4wXSAKICAgICAgICAgICAgLSBmb3JtYXR0aW5nIG9mIHJvYWRtYXAgY2hhbmdlZAotIGhvbWVwYWdlLXNwZWNpZmljIGZvcnJlc3QgcGlwZWxpbmVzCi0gaG9tZXBhZ2Utc3BlY2lmaWMgdGFiIGNoYW5nZXMKIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjAgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuMCB1cGRhdGUKICAgICAgICBieQogICAgICAgIGFuZHJlYXMKICAgICAgICA6CiAgICAgICAgWzEuMF0gCiAgICAgICAgICAgIC0gcmVtb3ZlZCBjbGFzc3BhdGggZnJvbSB0YXNrIGRlZmluaXRpb24KLSBjb3JyZWN0ZWQgbWVueSBsYXlvdXQKIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjAgYWRkPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuMCBhZGQKICAgICAgICBieQogICAgICAgIGFuZHJlYXMKICAgICAgICA6CiAgICAgICAgWzEuMF0gCiAgICAgICAgICAgIGFkZGVkIGxlbnlhIGxvZ28gd2l0aCBsaWdodCAiYXBhY2hlIiBmb250CiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS4wIHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjAgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBhbmRyZWFzCiAgICAgICAgOgogICAgICAgIFsxLjBdIAogICAgICAgICAgICByZW1vdmVkIGNsYXNzcGF0aCBmcm9tIHRhc2sgZGVmaW5pdGlvbgogRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuMCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS4wIHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgYW5kcmVhcwogICAgICAgIDoKICAgICAgICBbMS4wXSAKICAgICAgICAgICAgY3JlYXRpbmcgbG9nIGRpcmVjdG9yeSBpZiBpdCBkb2VzIG5vdCBleGlzdAogRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuMCBhZGQ8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS4wIGFkZAogICAgICAgIGJ5CiAgICAgICAgYW5kcmVhcwogICAgICAgIDoKICAgICAgICBbMS4wXSAKICAgICAgICAgICAgYWRkZWQgYW50IGxpYnJhcnkKIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjAgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuMCB1cGRhdGUKICAgICAgICBieQogICAgICAgIG1pY2hpCiAgICAgICAgOgogICAgICAgIFsxLjBdIAogICAgICAgICAgICBNZW51IGludGVncmF0ZWQKIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjAgcmVtb3ZlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuMCByZW1vdmUKICAgICAgICBieQogICAgICAgIGFuZHJlYXMKICAgICAgICA6CiAgICAgICAgWzEuMF0gCiAgICAgICAgICAgIHJlbW92ZWQgZm9ycmVzdC1zaXRlIHNraW4KIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjAgcmVtb3ZlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuMCByZW1vdmUKICAgICAgICBieQogICAgICAgIGFuZHJlYXMKICAgICAgICA6CiAgICAgICAgWzEuMF0gCiAgICAgICAgICAgIHJlbW92ZWQgSmF2YVNjcmlwdHMKIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjAgcmVtb3ZlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuMCByZW1vdmUKICAgICAgICBieQogICAgICAgIGFuZHJlYXMKICAgICAgICA6CiAgICAgICAgWzEuMF0gCiAgICAgICAgICAgIHJlbW92ZWQga3J5c2FsaXMtc2l0ZSBza2luCiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS4wIHJlbW92ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjAgcmVtb3ZlCiAgICAgICAgYnkKICAgICAgICBhbmRyZWFzCiAgICAgICAgOgogICAgICAgIFsxLjBdIAogICAgICAgICAgICByZW1vdmVkIGF2YWxvbi10aWdyaXMgc2tpbgogRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuMCByZW1vdmU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS4wIHJlbW92ZQogICAgICAgIGJ5CiAgICAgICAgYW5kcmVhcwogICAgICAgIDoKICAgICAgICBbMS4wXSAKICAgICAgICAgICAgLSByZW1vdmVkIHVubmVjZXNzYXJ5IGZpbGVzCi0gcmVuYW1lZCBzaXRlLWJhY2t1cC54bWwgdG8gc2l0ZS54bWwuYmFja3VwIGJlY2F1c2UgdGhhdCBjYXVzZXMgcHJvYmxlbXMgd2hlbiBleHBvcnRpbmcgdGhlIHNpdGUgd2l0aCBGb3JyZXN0CiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS4wIHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjAgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBmZWxpeAogICAgICAgIDoKICAgICAgICBbMS4wXSAKICAgICAgICAgICAgRXh0ZW5kZWQgdGhlIHNhbXBsZSBmaWxlIGZvciB0aGUgc2ltcGxlIGRvY3VtZW50IGRvY3R5cGUKIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjAgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuMCB1cGRhdGUKICAgICAgICBieQogICAgICAgIGFuZHJlYXMKICAgICAgICA6CiAgICAgICAgWzEuMF0gCiAgICAgICAgICAgIHVzaW5nIEZvcnJlc3QgZG9jdW1lbnQtdjEyIERURDoKLSBhZGRlZCBEVEQKLSB1cGRhdGVkIGNhdGFsb2cKLSBjaGFuZ2VkIGRvY3R5cGVzCiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS4wIHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjAgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBlZ2xpCiAgICAgICAgOgogICAgICAgIFsxLjBdIAogICAgICAgICAgICBBZGRlZCBkb2N0eXBlIGhhbmRsaW5nIHRvIHRoZSB3cml0ZXIgbWV0aG9kcy4gVGhlIGRvY3R5cGUgaXMgcXVlcmllZApmcm9tIHRoZSBkb2N1bWVudCBhbmQgY29uc2VxdWVudGx5IHRoZSB0cmFuc2Zvcm1lciAod2hpY2ggaXMgbmVlZGVkCmZvciB3cml0aW5nKSBpcyBjb25maWd1cmVkIHdpdGggdGhlIGRvY3R5cGUuCiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS4wIHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjAgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBlZ2xpCiAgICAgICAgOgogICAgICAgIFsxLjBdIAogICAgICAgICAgICBOb3cgdXNlIERvY3VtZW50SGVscGVyIGZvciB3cml0aW5nLgogRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuMCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS4wIHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgYW5kcmVhcwogICAgICAgIDoKICAgICAgICBbMS4wXSAKICAgICAgICAgICAgdmFsaWRhdGVkIGFuZCBjb3JyZWN0ZWQgZG9jdW1lbnRhdGlvbiBYTUwKIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjAgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuMCB1cGRhdGUKICAgICAgICBieQogICAgICAgIGVnbGkKICAgICAgICA6CiAgICAgICAgWzEuMF0gCiAgICAgICAgICAgIFRoZSBwYXJlbnR1cmkgaXMgbm9ybWFseSBjYWxjdWxhdGVkIHRocm91Z2ggdGhlIFBhZ2VFbnZlbG9wZSBpbiB0aGUKdXRpbCBsb2dpY3NoZWV0LiBIb3dldmVyIEkgbm93IGFkZGVkIHRoZSBwb3NzaWJpbGl0eSB0byBvdmVycmlkZSB0aGlzCndpdGggYSByZXF1ZXN0IHBhcmFtZXRlci4KIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjAgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuMCB1cGRhdGUKICAgICAgICBieQogICAgICAgIGVnbGkKICAgICAgICA6CiAgICAgICAgWzEuMF0gCiAgICAgICAgICAgIEFkZGVkIHNvbWUgbW9yZSBoZXVyaXN0aWNzIHRvIHRoZSBjb21wdXRhdGlvbiBvZiB0aGUgZG9jdW1lbnQtaWQ6IGlmCnRoZSByZXF1ZXN0VVJJIGVuZHMgaW4gImluZGV4IiBjaG9wIGl0IG9mLgogRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuMCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS4wIHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgYW5kcmVhcwogICAgICAgIDoKICAgICAgICBbMS4wXSAKICAgICAgICAgICAgLSBub2RlIHJlY3Vyc2lvbiBidWdmaXggaW4gc2l0ZXRyZWUybmF2Ci0gaW5kZW50IGZvciBtZW51aXRlbTMgY2hhbmdlZAogRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuMCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS4wIHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgZWdsaQogICAgICAgIDoKICAgICAgICBbMS4wXSAKICAgICAgICAgICAgQWRkZWQgdGhlIGRlZmF1bHQgbmFtZXNwYWNlLgogRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuMCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS4wIHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgZWdsaQogICAgICAgIDoKICAgICAgICBbMS4wXSAKICAgICAgICAgICAgQWRkZWQgcGlwZWxpbmVzIGZvciBjcmVhdG9yICh1c2luZyB0aGUgbGVueWEudXNlY2FzZSBzY2hlbWUgZnJvbSB0aGUKVVJJIHNjaGVtZSBzdGFuZGFyZCkuCiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS4wIHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjAgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBtaWNoaQogICAgICAgIDoKICAgICAgICBbMS4wXSAKICAgICAgICAgICAgTWFpbGluZyBsaXN0cyB1cGRhdGVkCiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS4wIGFkZDwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjAgYWRkCiAgICAgICAgYnkKICAgICAgICBhbmRyZWFzCiAgICAgICAgOgogICAgICAgIFsxLjBdIAogICAgICAgICAgICAtIGFkZGVkIGxvZ29zCi0gYWRkZWQgdGFiIGNvcm5lciBpbWFnZXMKLSBsYXlvdXQgY2hhbmdlcwogRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuMCBhZGQ8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS4wIGFkZAogICAgICAgIGJ5CiAgICAgICAgYW5kcmVhcwogICAgICAgIDoKICAgICAgICBbMS4wXSAKICAgICAgICAgICAgYWRkZWQgY29tbXVuaXR5IHRhYgogRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuMCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS4wIHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgYW5kcmVhcwogICAgICAgIDoKICAgICAgICBbMS4wXSAKICAgICAgICAgICAgYWRkZWQgbmFtZXNwYWNlIGZvciByb290IG1hdGNoZXIgJmx0O2FwcGx5LXRlbXBsYXRlcyZndDsKIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjAgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuMCB1cGRhdGUKICAgICAgICBieQogICAgICAgIG1pY2hpCiAgICAgICAgOgogICAgICAgIFsxLjBdIAogICAgICAgICAgICBlbWFpbCBhcyBlbGVtZW50IGluc3RlYWQgYXMgYXR0cmlidXRlCiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS4wIHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjAgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBlZ2xpCiAgICAgICAgOgogICAgICAgIFsxLjBdIAogICAgICAgICAgICBBY2NvcmRpbmcgdG8gdGhlIHVyaSBzY2hlbWUgc3RhbmRhcmQgdGhlIHJlcXVlc3QgcGFyYW1ldGVycyBmb3IKdXNlY2FzZSBhbmQgc3RlcCBhcmUgbmFtZWQgImxlbnlhLnVzZWNhc2UiIGFuZCAibGVueWEuc3RlcCIuIFRoaXMgaXMKbm93IGNvcnJlY3RlZCBmb3IgYWxsIHB1YmxpY2F0aW9ucyBhbmQgaW4gdGhlIHJvb3Qgc2l0ZW1hcC4KIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjAgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuMCB1cGRhdGUKICAgICAgICBieQogICAgICAgIG1pY2hpCiAgICAgICAgOgogICAgICAgIFsxLjBdIAogICAgICAgICAgICBIVE1MIGVkaXRvciBjb21wYXJpc29uIHJlbW92ZWQKIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjAgYWRkPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuMCBhZGQKICAgICAgICBieQogICAgICAgIGVnbGkKICAgICAgICA6CiAgICAgICAgWzEuMF0gCiAgICAgICAgICAgIFNrZWxldGFsIGJlZ2lubmluZ3Mgb2YgYSB1bml0IHRlc3QgZm9yIERlZmF1bHRTaXRlVHJlZS4KIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjAgYWRkPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuMCBhZGQKICAgICAgICBieQogICAgICAgIGVnbGkKICAgICAgICA6CiAgICAgICAgWzEuMF0gCiAgICAgICAgICAgIEFkZGVkIGEgbmV3IGRlZmF1bHQgY3JlYXRvciBhY3Rpb24uIFVubGlrZSB0aGUKcGFyZW50Q2hpbGRDcmVhdG9yQWN0aW9uIHRoaXMgYWN0aW9uIGRlbGVnYXRlcyB0aGUgaGFuZGxpbmcgb2YgdGhlCnNpdGV0cmVlIHRvIGEgc2VwYXJhdGUgY2xhc3MgKGFuZCBjYW4gdGhlcmVmb3JlIHdvcmsgd2l0aCB0aGUgbmV3CnNpdGV0cmVlIGZvcm1hdCkuCiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS4wIGFkZDwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjAgYWRkCiAgICAgICAgYnkKICAgICAgICBlZ2xpCiAgICAgICAgOgogICAgICAgIFsxLjBdIAogICAgICAgICAgICBBZGRlZCB4c3AgYW5kIHhzbCBmb3IgRGVmYXVsdENyZWF0b3Igc2NyZWVuLgogRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuMCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS4wIHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgbWljaGkKICAgICAgICA6CiAgICAgICAgWzEuMF0gCiAgICAgICAgICAgIGludHJvZHVjdGlvbiB1cGRhdGVkCiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS4wIHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjAgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBtaWNoaQogICAgICAgIDoKICAgICAgICBbMS4wXSAKICAgICAgICAgICAgUHJvZ3JhbW1pbmcgTGFuZ3VhZ2UgYWRkZWQgdG8gU2NoZW1hCiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS4wIHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjAgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBlZ2xpCiAgICAgICAgOgogICAgICAgIFsxLjBdIAogICAgICAgICAgICBUaGUgdXRpbC54c2wgbm93IHVzZXMgdGhlIFBhZ2VFbnZlbG9wZSBjbGFzcyB0aGUgZ2V0IG1vc3Qgb2YgaXRzCmluZm9ybWF0aW9uLiBJdCBjb3VsZCBiZSBjbGVhbmVkIHVwIHZlcnkgbXVjaCBub3cuClRoZXJlIGFyZSBuZXcgdGFncyB0aGF0IGl0J2xsIHJlY29nbml6ZSBub3cuIFRoZXkgYXJlIGJhc2VkIG9uIHRoZQpuYW1pbmcgZm9yIHRoZSBVUkkgc2NoZW1lOgoKeHNwLWxlbnlhOmNvbnRleHQtcHJlZml4CnhzcC1sZW55YTpwdWJsaWNhdGlvbi1pZAp4c3AtbGVueWE6YXJlYQp4c3AtbGVueWE6ZG9jdW1lbnQtaWQKCkFsbCB0aGUgb3RoZXIgc3R1ZmZzaG91bGQgYmUgZGVwcmVjYXRlZC4KIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjAgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuMCB1cGRhdGUKICAgICAgICBieQogICAgICAgIGVnbGkKICAgICAgICA6CiAgICAgICAgWzEuMF0gCiAgICAgICAgICAgIEFkZGVkIGNvZGUgdG8gcmV0dXJuIHRoZSBkb2N1bWVudC1pZC4gVGhlIGFsZ29yaXRobSB0byBjYWxjdWxhdGUgdGhlCmRvY3VtZW50LWlkIGlzIGJhc2VkIG9uIGFuIGFzc3VtcHRpb24gd2hpY2ggZG9lc24ndCBuZWNlc3NhcmlseSBob2xkCnRydWUgdW5kZXIgYWxsIGNpcmN1bXN0YW5jZXMuIFRoYXQncyB3aGF0IHRoZSB1cmlwYXJhbWV0cml6ZXIgd2FzCm1lYW50IHRvIHNvbHZlLiBUaGlzIGNvZGUgc2hvdWxkIHByb2JhYmx5IGJlIHVzZWQgaGVyZS4gSXQganVzdCBkb2VuJ3MKZmVlbCByaWdodCB0byBpbnZva2UgYW5vdGhlciBjb2Nvb246IHJlcXVlc3Qgd2l0aCBldmVyeSBpbnZvY2F0aW9uIG9mClBhZ2VFbnZlbG9wZSAoYW5kIHV0aWwueHNsKS4KIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjAgYWRkPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuMCBhZGQKICAgICAgICBieQogICAgICAgIGdyZWdvcgogICAgICAgIDoKICAgICAgICBbMS4wXSAKICAgICAgICAgICAgc3RhcnRlZCBzaXRlbWFwcyBkb2N1bWVudGF0aW9uCiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS4wIHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjAgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBlZGl0aAogICAgICAgIDoKICAgICAgICBbMS4wXSAKICAgICAgICAgICAgQ2xhc3NwYXRoCiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS4wIGFkZDwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjAgYWRkCiAgICAgICAgYnkKICAgICAgICBlZGl0aAogICAgICAgIDoKICAgICAgICBbMS4wXSAKICAgICAgICAgICAgUHVibGlzaGVyIGZvciBkZWZhdWx0IHdpdGggQW50dGFzazogd29yayBpbiBwcm9ncmVzcwogRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuMCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS4wIHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgYW5kcmVhcwogICAgICAgIDoKICAgICAgICBbMS4wXSAKICAgICAgICAgICAgLSBhZGRlZCBqYXZhZG9jcwotIHVzaW5nIEoyU0UgMS40IEV4Y2VwdGlvbiBjb25zdHJ1Y3RvcgogRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuMCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS4wIHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgYW5kcmVhcwogICAgICAgIDoKICAgICAgICBbMS4wXSAKICAgICAgICAgICAgYWRkZWQgamF2YWRvY3MKIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjAgYWRkPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuMCBhZGQKICAgICAgICBieQogICAgICAgIGVnbGkKICAgICAgICA6CiAgICAgICAgWzEuMF0gCiAgICAgICAgICAgIEFkZGVkIGRvY3R5cGUgc2FtcGxlcyBmb3Igc2ltcGxlIGFuZCB4aHRtbCBkb2N0eXBlLgogRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuMCBhZGQ8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS4wIGFkZAogICAgICAgIGJ5CiAgICAgICAgZWdsaQogICAgICAgIDoKICAgICAgICBbMS4wXSAKICAgICAgICAgICAgQWRkZWQgZG9jdHlwZXMgY29uZmlndXJhdGlvbiBmb3IgZGVmYXVsdCBwdWJsaWNhdGlvbi4KIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjAgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuMCB1cGRhdGUKICAgICAgICBieQogICAgICAgIGVnbGkKICAgICAgICA6CiAgICAgICAgWzEuMF0gCiAgICAgICAgICAgIEZpeGVkIGEgYnVnIHRvIGRvIHdpdGggZW1wdHkgc3RyaW5nIG5hbWVzcGFjZSBwcmVmaXhlcy4KIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjAgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuMCB1cGRhdGUKICAgICAgICBieQogICAgICAgIGVnbGkKICAgICAgICA6CiAgICAgICAgWzEuMF0gCiAgICAgICAgICAgIENhbid0IGdldCBkb200aiB0byB3b3JrIHdpdGggbmFtZXNwYWNlcy4gRm9yIHRoYXQgcmVhc29uIGRvbTRqIGlzIG5vdwpnb25lLCBub3cgbG9uZ2VyIGlzIHRoZSBwYXJlbnQgbm9kZSBmb3VuZCB3aXRoIHhwYXRoIGJ1dCB3aXRoIGEgc2ltcGxlCmFuZCBzdHJhaWdodC1mb3J3YXJkIHJlY3Vyc2l2ZSB0cmF2ZXJzYWwuIEFsbCB0aGUgb3RoZXIgeG1sCm1hbmlwdWxhdGlvbnMgYXJlIG5vdyBkb25lIHdpdGggb3JnLnczYy5kb20uKiBhbmQgdGhlIERvY3VtZW50LSBhbmQKTmFtZXNwYWNlSGVscGVyIGNsYXNzZXMuCiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS4wIHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjAgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBlZ2xpCiAgICAgICAgOgogICAgICAgIFsxLjBdIAogICAgICAgICAgICBPbmx5IGFjdCBvbiBjb25maWd1cmF0aW9uIHBhcmFtZXRlcnMgd2hpY2ggYXJlIG5vbi1udWxsLgogRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuMCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS4wIHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgYW5kcmVhcwogICAgICAgIDoKICAgICAgICBbMS4wXSAKICAgICAgICAgICAgLSBtb3ZlZCBsZW55YS5wbmcgdG8gYXBhY2hlLWxlbnlhLnBuZwotIGFkZGVkIGxlbnlhIGxvZ28gd2l0aG91dCAiYXBhY2hlIgotIGNoYW5nZWQgbG9nbyBwb3NpdGlvbnMKLSByZW1vdmVkIGNvbW1lbnRlZC1vdXQgYXV0aG9yIG5hbWVzCiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS4wIGFkZDwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjAgYWRkCiAgICAgICAgYnkKICAgICAgICBhbmRyZWFzCiAgICAgICAgOgogICAgICAgIFsxLjBdIAogICAgICAgICAgICAtIGFkZGVkICJBcGFjaGUgY29jb29uIHByb2plY3QiIGxvZ28KLSByZW1vdmVkIGF1dGhvciBuYW1lcyBmcm9tIGxlbnlhLXNpdGUgc2tpbgotIGNoYW5nZWQgbG9nbyBzcGFjaW5nIGluIGNzcwotIGFkZGVkIG5ldyBsZW55YSBsb2dvCi0gcmVtb3ZlZCBmb250IHNpemUgYnV0dG9ucwogRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuMCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS4wIHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgYW5kcmVhcwogICAgICAgIDoKICAgICAgICBbMS4wXSAKICAgICAgICAgICAgdXNpbmcgbGVueWEtc2l0ZSBza2luIGFnYWluCiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS4wIGFkZDwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjAgYWRkCiAgICAgICAgYnkKICAgICAgICBhbmRyZWFzCiAgICAgICAgOgogICAgICAgIFsxLjBdIAogICAgICAgICAgICAtIGFkZGVkIGNvY29vbiBsb2dvCi0gbW92ZWQgZ3JvdXAtbG9nby5naWYgdG8gYXBhY2hlLXhtbC5naWYKLSB1c2luZyBncm91cCBsb2dvIGFnYWluIChza2luY29uZi54bWwsIHNpdGUyeGh0bWwueHNsKQogRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuMCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS4wIHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgYW5kcmVhcwogICAgICAgIDoKICAgICAgICBbMS4wXSAKICAgICAgICAgICAgYWRkZWQgRm9ycmVzdCBoaW50CiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS4wIHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjAgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBhbmRyZWFzCiAgICAgICAgOgogICAgICAgIFsxLjBdIAogICAgICAgICAgICBjb3JyZWN0ZWQgdGFyLmd6IG1hdGNoZXIKIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjAgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuMCB1cGRhdGUKICAgICAgICBieQogICAgICAgIGFuZHJlYXMKICAgICAgICA6CiAgICAgICAgWzEuMF0gCiAgICAgICAgICAgIGFkZGVkIC50YXIuZ3ogbWF0Y2hlcgogRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuMCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS4wIHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgYW5kcmVhcwogICAgICAgIDoKICAgICAgICBbMS4wXSAKICAgICAgICAgICAgY29ycmVjdGVkIGRvd25sb2FkIGxpbmtzCiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS4wIHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjAgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBhbmRyZWFzCiAgICAgICAgOgogICAgICAgIFsxLjBdIAogICAgICAgICAgICBhZGRlZCBkb3dubG9hZCBsaW5rcwogRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuMCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS4wIHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgYW5kcmVhcwogICAgICAgIDoKICAgICAgICBbMS4wXSAKICAgICAgICAgICAgLSBtb3VudGluZyBwdWJsaWNhdGlvbiBzaXRlbWFwIGZvciAiKi8iIGJlZm9yZSByZXNvdXJjZXMueG1hcAogRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuMCBhZGQ8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS4wIGFkZAogICAgICAgIGJ5CiAgICAgICAgZWdsaQogICAgICAgIDoKICAgICAgICBbMS4wXSAKICAgICAgICAgICAgQWRkZWQgc29tZSBjbGFzc2VzIHRoYXQgaGVscCBtYW5pcHVsYXRpbmcgYSBzaXRldHJlZS4KIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjAgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuMCB1cGRhdGUKICAgICAgICBieQogICAgICAgIGFuZHJlYXMKICAgICAgICA6CiAgICAgICAgWzEuMF0gCiAgICAgICAgICAgIHJlbW92ZWQgY2FsbCBvZiBnZXRQdWJsaWNhdGlvbigpCiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS4wIHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjAgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBhbmRyZWFzCiAgICAgICAgOgogICAgICAgIFsxLjBdIAogICAgICAgICAgICBhZGRlZCBwYXJhbWV0ZXIgZm9yd2FyZGluZyBmb3IgQW50LWJhc2VkIFN0YXRpY0hUTUxFeHBvcnRlcgogRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuMCBhZGQ8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS4wIGFkZAogICAgICAgIGJ5CiAgICAgICAgYW5kcmVhcwogICAgICAgIDoKICAgICAgICBbMS4wXSAKICAgICAgICAgICAgLSBhZGRlZCB0YXNrIGNvbmZpZ3VyYXRpb24gZmlsZXMKLSBhZGRlZCBwdWJsaXNoaW5nIHBpcGVsaW5lCi0gYWRkZWQgcHVibGlzaGluZyBtZW51IGVudHJ5Ci0gY2hhbmdlZCBpbnN0YWxsYXRpb24gaW5zdHJ1Y3Rpb25zIGluIHNpdGV0cmVlCiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS4wIGFkZDwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjAgYWRkCiAgICAgICAgYnkKICAgICAgICBhbmRyZWFzCiAgICAgICAgOgogICAgICAgIFsxLjBdIAogICAgICAgICAgICAtIGFkZGVkIG5ldyBwcm9qZWN0IHBhcmFtZXRlcnMgdG8gQW50VGFzawotIGFkZGVkIFB1YmxpY2F0aW9uVGFzayBhbmQgQW50LWJhc2VkIFN0YXRpY0hUTUxFeHBvcnRlcgogRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuMCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS4wIHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgYW5kcmVhcwogICAgICAgIDoKICAgICAgICBbMS4wXSAKICAgICAgICAgICAgLSBhZGRlZCBzb21lIGNvbnRlbnQgKGFib3V0IGRlZmF1bHQgcHVibGljYXRpb24pCi0gYWRkZWQgdGVtcGxhdGVzIHRvIHNpbXBsZSBkb2N0eXBlIHN0eWxlc2hlZXQKLSBhZGRlZCBhZ2dyZWdhdGlvbiB2aWV3IHRvIHNpdGVtYXAueG1hcAotIGNvcnJlY3RlZCBpbmRlbnRhdGlvbiBpbiBzaW1wbGUyaHRtbC54c2wKIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjAgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuMCB1cGRhdGUKICAgICAgICBieQogICAgICAgIGVnbGkKICAgICAgICA6CiAgICAgICAgWzEuMF0gCiAgICAgICAgICAgIEFkZGVkIHR5cGU9IjUwMCIgdG8gJmx0O21hcDpoYW5kbGUtZXJyb3ImZ3Q7IGZvciBiYWNrd2FyZHMgY29tcGF0aWJpbGl0eS4KIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjAgYWRkPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuMCBhZGQKICAgICAgICBieQogICAgICAgIGFuZHJlYXMKICAgICAgICA6CiAgICAgICAgWzEuMF0gCiAgICAgICAgICAgIGFkZGVkIHJlbGF0ZWQgcHJvamVjdHMKIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjAgYWRkPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuMCBhZGQKICAgICAgICBieQogICAgICAgIGFuZHJlYXMKICAgICAgICA6CiAgICAgICAgWzEuMF0gCiAgICAgICAgICAgIGFkZGVkIGluZGV4LnhtbCBhZ2FpbgogRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuMCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS4wIHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgZWdsaQogICAgICAgIDoKICAgICAgICBbMS4wXSAKICAgICAgICAgICAgQWRkZWQgdHlwZT0iNTAwIiB0byAmbHQ7bWFwOmhhbmRsZS1lcnJvciZndDsgZm9yIGJhY2t3YXJkcyBjb21wYXRpYmlsaXR5LgogRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuMCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS4wIHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgYW5kcmVhcwogICAgICAgIDoKICAgICAgICBbMS4wXSAKICAgICAgICAgICAgLSBjb2Nvb25jZW50ZXIgYXMgZGVmYXVsdCBkb2NzLW5ldyBza2luCi0gcmVtb3ZlZCAiV2VsY29tZSB0byBMZW55YSIgc2VjdGlvbiB0aXRsZQogRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuMCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS4wIHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgYW5kcmVhcwogICAgICAgIDoKICAgICAgICBbMS4wXSAKICAgICAgICAgICAgLSBjb21tZW50ZWQgb3V0IGJyZWFkY3J1bWIgcGF0aAotIGNsYXNzICJ3aWRlIiBmb3IgdS1saXN0cwogRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuMCByZW1vdmU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS4wIHJlbW92ZQogICAgICAgIGJ5CiAgICAgICAgYW5kcmVhcwogICAgICAgIDoKICAgICAgICBbMS4wXSAKICAgICAgICAgICAgcmVtb3ZlZCBkb3dubG9hZCBkb2NzCiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS4wIGFkZDwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjAgYWRkCiAgICAgICAgYnkKICAgICAgICBhbmRyZWFzCiAgICAgICAgOgogICAgICAgIFsxLjBdIAogICAgICAgICAgICBhZGRlZCBpbnN0YWxsYXRpb24gZG9jcwogRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuMCByZW1vdmU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS4wIHJlbW92ZQogICAgICAgIGJ5CiAgICAgICAgYW5kcmVhcwogICAgICAgIDoKICAgICAgICBbMS4wXSAKICAgICAgICAgICAgbW92ZWQgaW5zdGFsbGF0aW9uIGRvY3MgdG8gLi4vLi9pbnN0YWxsYXRpb24KIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjAgYWRkPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuMCBhZGQKICAgICAgICBieQogICAgICAgIGFuZHJlYXMKICAgICAgICA6CiAgICAgICAgWzEuMF0gCiAgICAgICAgICAgIHVwZGF0ZWQgaW5zdGFsbGF0aW9uIGluc3RydWN0aW9ucwogRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuMCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS4wIHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgZWRpdGgKICAgICAgICA6CiAgICAgICAgWzEuMF0gCiAgICAgICAgICAgIFJvbGxiYWNrIGFuZCBSZXZpc2lvbiBDb250cm9sbGVyCiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS4wIHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjAgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBlZ2xpCiAgICAgICAgOgogICAgICAgIFsxLjBdIAogICAgICAgICAgICBNaWdyYXRlZCBkb2N1IGZvciBzdGFuZGFyZCBVUkkgc2NoZW1lLgogRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuMCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS4wIHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgYW5kcmVhcwogICAgICAgIDoKICAgICAgICBbMS4wXSAKICAgICAgICAgICAgY29tbWVudGVkIG91dCBjcmVkaXRzCiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS4wIHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjAgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBhbmRyZWFzCiAgICAgICAgOgogICAgICAgIFsxLjBdIAogICAgICAgICAgICByZW1vdmVkIHN0cmFuZ2UgZW1wdHkgYm94ZXMKIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjAgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuMCB1cGRhdGUKICAgICAgICBieQogICAgICAgIG1pY2hpCiAgICAgICAgOgogICAgICAgIFsxLjBdIAogICAgICAgICAgICBzYW1wbGUgYWNjb3JkaW5nIHRvIFhNTCBzY2hlbWEKIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjAgYWRkPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuMCBhZGQKICAgICAgICBieQogICAgICAgIGFuZHJlYXMKICAgICAgICA6CiAgICAgICAgWzEuMF0gCiAgICAgICAgICAgIC0gcmVzdHJ1Y3R1cmVkIGRvY3VtZW50YXRpb24KLSBuZXcgImluc3RhbGxhdGlvbiIgZGlyZWN0b3J5Ci0gbmV3ICJwcm9qZWN0IiBkaXJlY3RvcnkKIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjAgYWRkPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuMCBhZGQKICAgICAgICBieQogICAgICAgIGFuZHJlYXMKICAgICAgICA6CiAgICAgICAgWzEuMF0gCiAgICAgICAgICAgIGFkZGVkIGluc3RhbGxhdGlvbiBkb2N1bWVudGF0aW9uIChjdnMsIHByZXJlcXMpCiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS4wIHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjAgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBtaWNoaQogICAgICAgIDoKICAgICAgICBbMS4wXSAKICAgICAgICAgICAgY29udGV4dF9wcmVmaXggaGFyZGNvZGVkCiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS4wIHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjAgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBtaWNoaQogICAgICAgIDoKICAgICAgICBbMS4wXSAKICAgICAgICAgICAgbWVudXMgY2xlYW5lZAogRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuMCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS4wIHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgbWljaGkKICAgICAgICA6CiAgICAgICAgWzEuMF0gCiAgICAgICAgICAgIFNjaGVtYSBtb2RpZmllZAogRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuMCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS4wIHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgbWljaGkKICAgICAgICA6CiAgICAgICAgWzEuMF0gCiAgICAgICAgICAgIHR5cGUgYWRkZWQKIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjAgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuMCB1cGRhdGUKICAgICAgICBieQogICAgICAgIGFuZHJlYXMKICAgICAgICA6CiAgICAgICAgWzEuMF0gCiAgICAgICAgICAgIGNvcnJlY3RlZCBpbmRlbnRhdGlvbgogRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuMCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS4wIHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgYW5kcmVhcwogICAgICAgIDoKICAgICAgICBbMS4wXSAKICAgICAgICAgICAgY29ycmVjdGVkIGRvd25sb2FkK2luc3RhbGwgbGluawogRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuMCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS4wIHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgYW5kcmVhcwogICAgICAgIDoKICAgICAgICBbMS4wXSAKICAgICAgICAgICAgZGlzcGxheWluZyBvbmx5IHRoZSBsb2dvIG9uIHRvcCBvZiB0aGUgcGFnZQogRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuMCByZW1vdmU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS4wIHJlbW92ZQogICAgICAgIGJ5CiAgICAgICAgYW5kcmVhcwogICAgICAgIDoKICAgICAgICBbMS4wXSAKICAgICAgICAgICAgcmVtb3ZlZCBkZXByZWNhdGVkIGxpYnJhcmllcyAoQ29jb29uIGNvbWVzIHdpdGggbW9yZSByZWNlbnQgb25lcykKIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjAgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuMCB1cGRhdGUKICAgICAgICBieQogICAgICAgIGFuZHJlYXMKICAgICAgICA6CiAgICAgICAgWzEuMF0gCiAgICAgICAgICAgIG5vdCBjb3B5aW5nIGxpYnMgZnJvbSBkZWZhdWx0IHB1YmxpY2F0aW9uCiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS4wIHJlbW92ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjAgcmVtb3ZlCiAgICAgICAgYnkKICAgICAgICBhbmRyZWFzCiAgICAgICAgOgogICAgICAgIFsxLjBdIAogICAgICAgICAgICByZW1vdmVkIGRlcHJlY2F0ZWQgRm9ycmVzdCBsaWJyYXJ5CiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS4wIHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjAgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBhbmRyZWFzCiAgICAgICAgOgogICAgICAgIFsxLjBdIAogICAgICAgICAgICBzZXJpYWxpemluZyBhcyBIVE1MIChYSFRNTCBjYXVzZXMgcHJvYmxlbXMgb24gSUUpCiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS4wIHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjAgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBhbmRyZWFzCiAgICAgICAgOgogICAgICAgIFsxLjBdIAogICAgICAgICAgICAtIHNwcmVhZCB0YXNrIGRvY3Mgb3ZlciBtb3JlIGZpbGVzCi0gY2xlYW5lZCBzaXRldHJlZSwgYWRkZWQgYmFja3VwCiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS4wIHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjAgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBhbmRyZWFzCiAgICAgICAgOgogICAgICAgIFsxLjBdIAogICAgICAgICAgICBhZGRlZCBDb2Nvb24gTWlsZXN0b25lIDEgY29tcGF0aWJsZSBGb3JyZXN0IGxpYnJhcmllcwogRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuMCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS4wIHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgYW5kcmVhcwogICAgICAgIDoKICAgICAgICBbMS4wXSAKICAgICAgICAgICAgY29tcGF0aWJpbGl0eSB0byBDb2Nvb24gTWlsZXN0b25lIDEgKHVzaW5nIFBhcnQgaW5zdGVhZCBvZiBGaWxlUGFydCkKIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjAgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuMCB1cGRhdGUKICAgICAgICBieQogICAgICAgIGVnbGkKICAgICAgICA6CiAgICAgICAgWzEuMF0gCiAgICAgICAgICAgIEZpeGVkIHRoZSBpbmRlbnRpbmcuCiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS4wIHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjAgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBtaWNoaQogICAgICAgIDoKICAgICAgICBbMS4wXSAKICAgICAgICAgICAgcmVtb3ZlZCBzb21lIGRlYWQgY29kZQogRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuMCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS4wIHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgbWljaGkKICAgICAgICA6CiAgICAgICAgWzEuMF0gCiAgICAgICAgICAgIHN0YXJ0IGFuZCBzdG9wIHNob3VsZCBiZSB3b3JraW5nIG5vdwogRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuMCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS4wIHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgbWljaGkKICAgICAgICA6CiAgICAgICAgWzEuMF0gCiAgICAgICAgICAgIFNlcmlhbGl6ZXIgcmVwbGFjZWQgYnkgRE9NV3JpdGVyCiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS4wIHJlbW92ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjAgcmVtb3ZlCiAgICAgICAgYnkKICAgICAgICBlZ2xpCiAgICAgICAgOgogICAgICAgIFsxLjBdIAogICAgICAgICAgICBSZW1vdmUgdGhlc2UgY2xhc3NlcyBhcyB0aGV5IGFyZSBzaGlwcGVkIHdpdGggdGhlIGZvcnJlc3QgamFycy4KIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjAgYWRkPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuMCBhZGQKICAgICAgICBieQogICAgICAgIGVnbGkKICAgICAgICA6CiAgICAgICAgWzEuMF0gCiAgICAgICAgICAgIFJlcGxhY2UgdGhlIGZvcnJlc3QgamFyICh3aGljaCBjb250YWlucyB0aGUgc291cmNldHlwZSBhY3Rpb24pIHdoaXRoIGEKbmV3ZXIgdmVyc2lvbiB3aGljaCBoYXMgY2hhbmdlZCBpdHMgbmFtZSAoJ2NhdXNlIGlzIG5vIGxvbmdlciBpbiB0aGUKc2NyYXRjaHBhZCkuCiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS4wIHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjAgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBtaWNoaQogICAgICAgIDoKICAgICAgICBbMS4wXSAKICAgICAgICAgICAgZGVmYXVsdCBidWlsZCBwcm9wZXJ0aWVzIGFkZGVkCiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS4wIHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjAgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBtaWNoaQogICAgICAgIDoKICAgICAgICBbMS4wXSAKICAgICAgICAgICAgZGVmYXVsdCBwcm9wZXJ0eSBzZXQKIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjAgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuMCB1cGRhdGUKICAgICAgICBieQogICAgICAgIG1pY2hpCiAgICAgICAgOgogICAgICAgIFsxLjBdIAogICAgICAgICAgICBtYXRyaXggcG9saWNpZXMgYWRkZWQKIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjAgYWRkPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuMCBhZGQKICAgICAgICBieQogICAgICAgIG1pY2hpCiAgICAgICAgOgogICAgICAgIFsxLjBdIAogICAgICAgICAgICBUb21jYXQgaW5pdC5kICBzdGFydCBhbmQgc3RvcCBzY3JpcHQKIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjAgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuMCB1cGRhdGUKICAgICAgICBieQogICAgICAgIG1pY2hpCiAgICAgICAgOgogICAgICAgIFsxLjBdIAogICAgICAgICAgICBlYWNoIHByb2plY3QgY2FuIGVkaXQgaXRzIG93biBkYXRhCiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS4wIGFkZDwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjAgYWRkCiAgICAgICAgYnkKICAgICAgICBhbmRyZWFzCiAgICAgICAgOgogICAgICAgIFsxLjBdIAogICAgICAgICAgICBhZGRlZCBwcm9qZWN0IGxvZ28KIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjAgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuMCB1cGRhdGUKICAgICAgICBieQogICAgICAgIGFuZHJlYXMKICAgICAgICA6CiAgICAgICAgWzEuMF0gCiAgICAgICAgICAgIGNoYW5nZWQgYnJlYWRjcnVtYiBhbmQgbWVudSBsYXlvdXQKIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjAgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuMCB1cGRhdGUKICAgICAgICBieQogICAgICAgIGFuZHJlYXMKICAgICAgICA6CiAgICAgICAgWzEuMF0gCiAgICAgICAgICAgIG1vZGlmaWVkIGNzcwogRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuMCBhZGQ8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS4wIGFkZAogICAgICAgIGJ5CiAgICAgICAgYW5kcmVhcwogICAgICAgIDoKICAgICAgICBbMS4wXSAKICAgICAgICAgICAgYWRkZWQgdHV0b3JpYWwgZmlsZXMKIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjAgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuMCB1cGRhdGUKICAgICAgICBieQogICAgICAgIGVkaXRoCiAgICAgICAgOgogICAgICAgIFsxLjBdIAogICAgICAgICAgICBSb2xsYmFjayBnZW5lcmljCiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS4wIHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjAgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBlZGl0aAogICAgICAgIDoKICAgICAgICBbMS4wXSAKICAgICAgICAgICAgQ2hlY2tpbiBmaXhlZAogRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuMCBhZGQ8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS4wIGFkZAogICAgICAgIGJ5CiAgICAgICAgYW5kcmVhcwogICAgICAgIDoKICAgICAgICBbMS4wXSAKICAgICAgICAgICAgYWRkZWQgcGFyYW1ldGVyIFhTUHMKIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjAgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuMCB1cGRhdGUKICAgICAgICBieQogICAgICAgIGFuZHJlYXMKICAgICAgICA6CiAgICAgICAgWzEuMF0gCiAgICAgICAgICAgIC0gYWRkZWQgbmF2aWdhdGlvbiBkaWFncmFtCi0gYWRkZWQgbmV3IHByb2plY3QgbG9nbwogRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuMCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS4wIHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgZWRpdGgKICAgICAgICA6CiAgICAgICAgWzEuMF0gCiAgICAgICAgICAgIEZvcnVtIGZpeGVkCiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS4wIGFkZDwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjAgYWRkCiAgICAgICAgYnkKICAgICAgICBhbmRyZWFzCiAgICAgICAgOgogICAgICAgIFsxLjBdIAogICAgICAgICAgICBhZGRlZCBkb2N1bWVudC1pZCBwYXJhbWV0ZXIgWFNQCiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS4wIHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjAgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBhbmRyZWFzCiAgICAgICAgOgogICAgICAgIFsxLjBdIAogICAgICAgICAgICAtIGluZGV4LnhtbCBjb250ZW50IGFkZGVkCi0gc2l0ZXRyZWUgYWRhcHRlZCB0byBkaXNjdXNzaW9uIHJlc3VsdHMKLSBsYXlvdXQgY2hhbmdlcyBpbiBjc3MKIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjAgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuMCB1cGRhdGUKICAgICAgICBieQogICAgICAgIGFuZHJlYXMKICAgICAgICA6CiAgICAgICAgWzEuMF0gCiAgICAgICAgICAgIC0gaW50cm9kdWNpbmcgc2l0ZXRyZWUybmF2LnhzbAotIHVzaW5nIHNlcGFyYXRlIHNpdGV0cmVlIHBpcGVsaW5lCi0gcmVzb3VyY2UgZm9yIGZhbGxiYWNrIHRyYW5zZm9ybWF0aW9uCiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS4wIHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjAgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBhbmRyZWFzCiAgICAgICAgOgogICAgICAgIFsxLjBdIAogICAgICAgICAgICAtIGludHJvZHVjaW5nIHNpdGV0cmVlMm5hdi54c2wKLSB0aGlzIG1ha2VzIHV0aWwueHNsIG9ic29sZXRlCiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS4wIHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjAgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBlZ2xpCiAgICAgICAgOgogICAgICAgIFsxLjBdIAogICAgICAgICAgICBGaXhlZCBhIGJ1ZyB3aGVyZSAnJmFtcDsnIHdhcyB1c2VkIGluIGEgZXhwcmVzc2lvbiBhcyBvcHBvc2VkIHRvICcmYW1wOyZhbXA7Jy4KIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjAgYWRkPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuMCBhZGQKICAgICAgICBieQogICAgICAgIGdyZWdvcgogICAgICAgIDoKICAgICAgICBbMS4wXSAKICAgICAgICAgICAgaW5pdGlhbCB4b3B1cyBzdXBwb3J0CiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS4wIGFkZDwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjAgYWRkCiAgICAgICAgYnkKICAgICAgICBncmVnb3IKICAgICAgICA6CiAgICAgICAgWzEuMF0gCiAgICAgICAgICAgIGluaXRpYWwgc2NoZW1hcyBmb3IgZGVmYXVsdCBwdWJsaWNhdGlvbgogRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuMCBhZGQ8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS4wIGFkZAogICAgICAgIGJ5CiAgICAgICAgYW5kcmVhcwogICAgICAgIDoKICAgICAgICBbMS4wXSAKICAgICAgICAgICAgYWRkZWQgc3R5bGVzaGVldHMKIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjAgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuMCB1cGRhdGUKICAgICAgICBieQogICAgICAgIGFuZHJlYXMKICAgICAgICA6CiAgICAgICAgWzEuMF0gCiAgICAgICAgICAgIHZhcmlvdXMgY2hhbmdlcyAobGF5b3V0LCBzaXRlbWFwcykKIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjAgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuMCB1cGRhdGUKICAgICAgICBieQogICAgICAgIGFuZHJlYXMKICAgICAgICA6CiAgICAgICAgWzEuMF0gCiAgICAgICAgICAgIHNldmVyYWwgY2hhbmdlcwogRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuMCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS4wIHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgZWRpdGgKICAgICAgICA6CiAgICAgICAgWzEuMF0gCiAgICAgICAgICAgIHJvbGxiYWNrIHRlc3QKIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjAgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuMCB1cGRhdGUKICAgICAgICBieQogICAgICAgIGVnbGkKICAgICAgICA6CiAgICAgICAgWzEuMF0gCiAgICAgICAgICAgIFRoZSBhZ2dyZWdhdGlvbiBvZiB0aGUgbmF2aWdhdGlvbiBpcyBub3cgZG9uZSBpbiB0aGUKcHVibGljYXRpb24tc2l0ZW1hcC54bWFwIGFuZCB0aGUgZG9jdHlwZXMueG1hcCBzb2xlbHkgdGFrZXMgY2FyZSBvZgpyZW5kZXJpbmcgdGhlIGJvZHkgcGFydCBvZiB0aGUgcGFnZS4KIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjAgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuMCB1cGRhdGUKICAgICAgICBieQogICAgICAgIGFuZHJlYXMKICAgICAgICA6CiAgICAgICAgWzEuMF0gCiAgICAgICAgICAgIHNpdGV0cmVlIGNoYW5nZWQsIFVSSVBhcmFtZXRlcml6ZXJBY3Rpb24gY2hhbmdlZAogRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuMCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS4wIHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgYW5kcmVhcwogICAgICAgIDoKICAgICAgICBbMS4wXSAKICAgICAgICAgICAgY2hhbmdlZCBzaXRldHJlZQogRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuMCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS4wIHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgYW5kcmVhcwogICAgICAgIDoKICAgICAgICBbMS4wXSAKICAgICAgICAgICAgY2hhbmdlZCBzY2hlbWEKIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjAgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuMCB1cGRhdGUKICAgICAgICBieQogICAgICAgIGFuZHJlYXMKICAgICAgICA6CiAgICAgICAgWzEuMF0gCiAgICAgICAgICAgIGNoYW5nZWQgVVJJIHBhcmFtZXRlciBtYXRjaGVyCiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS4wIHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjAgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBhbmRyZWFzCiAgICAgICAgOgogICAgICAgIFsxLjBdIAogICAgICAgICAgICB1c2luZyBzcmMgcGFyYW1ldGVyIGluc3RlYWQgb2YgcmVxdWVzdCBVUkkKIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjAgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuMCB1cGRhdGUKICAgICAgICBieQogICAgICAgIGdyZWdvcgogICAgICAgIDoKICAgICAgICBbMS4wXSAKICAgICAgICAgICAgcHJlcGFyZWQgZm9yIG5ldyBtZW51CiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS4wIHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjAgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBncmVnb3IKICAgICAgICA6CiAgICAgICAgWzEuMF0gCiAgICAgICAgICAgIG1lcmdlZCBsZW55YS5vcmcgYW5kIGRvY3VtZW50YXRpb24gcHVibGljYXRpb25zCiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS4wIGFkZDwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjAgYWRkCiAgICAgICAgYnkKICAgICAgICBncmVnb3IKICAgICAgICA6CiAgICAgICAgWzEuMF0gCiAgICAgICAgICAgIG1lcmdlZCBsZW55YS5vcmcgYW5kIGRvY3VtZW50YXRpb24gcHVibGljYXRpb25zCiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS4wIHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjAgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBncmVnb3IKICAgICAgICA6CiAgICAgICAgWzEuMF0gCiAgICAgICAgICAgIHByZXR0eWZpZWQgbmV3IG1lbnUKIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjAgYWRkPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuMCBhZGQKICAgICAgICBieQogICAgICAgIGdyZWdvcgogICAgICAgIDoKICAgICAgICBbMS4wXSAKICAgICAgICAgICAgcHJldHR5ZmllZCBuZXcgbWVudQogRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuMCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS4wIHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgbWljaGkKICAgICAgICA6CiAgICAgICAgWzEuMF0gCiAgICAgICAgICAgIFJvbGxiYWNrIHRvIE9TQ09NIGFkZGVkCiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS4wIHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjAgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBtaWNoaQogICAgICAgIDoKICAgICAgICBbMS4wXSAKICAgICAgICAgICAgUm9sbGJhY2sgZ2VuZXJhbGl6ZWQKIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjAgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuMCB1cGRhdGUKICAgICAgICBieQogICAgICAgIGVnbGkKICAgICAgICA6CiAgICAgICAgWzEuMF0gCiAgICAgICAgICAgIFJlbW92ZWQgdGhlIHN0YWxlIGxpbmsgdG8gc2NyYXRjaHBhZC4KIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjAgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuMCB1cGRhdGUKICAgICAgICBieQogICAgICAgIGFuZHJlYXMKICAgICAgICA6CiAgICAgICAgWzEuMF0gCiAgICAgICAgICAgIGNvcnJlY3RlZCB7M30gcGFyYW1ldGVycwogRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuMCBhZGQ8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS4wIGFkZAogICAgICAgIGJ5CiAgICAgICAgYW5kcmVhcwogICAgICAgIDoKICAgICAgICBbMS4wXSAKICAgICAgICAgICAgYWRkZWQgQW50VGFzayB0ZXN0CiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS4wIHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjAgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBlZ2xpCiAgICAgICAgOgogICAgICAgIFsxLjBdIAogICAgICAgICAgICBGaXhlZCBidWcgIzM5IChXcm9uZyBsaW5rIG9uICJQZXJmb3JtYW5jZSIgcGFnZSkuCiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS4wIHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjAgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBmZWxpeAogICAgICAgIDoKICAgICAgICBbMS4wXSAKICAgICAgICAgICAgQ2hhbmdlZCBjb21tZW50OiB0aGUgaW5zdGFsbCBkaXIgaGFzIHRvIGJlIGFuIGFic29sdXRlIHBhdGgsIG90aGVyd2lzZSB0aGUgY2F0YWxvZ3MgYW5kIGhlbmNlIHRoZSBkdGQncyB3aWxsIG5vdCBiZSBmb3VuZAogRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuMCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS4wIHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgYW5kcmVhcwogICAgICAgIDoKICAgICAgICBbMS4wXSAKICAgICAgICAgICAgZm9yd2FyZGluZyBib3RoIHNvdXJjZXMgYW5kIHByb3BlcnRpZXMucHVibGlzaC5zb3VyY2VzCiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS4wIHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjAgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBhbmRyZWFzCiAgICAgICAgOgogICAgICAgIFsxLjBdIAogICAgICAgICAgICByZW5hbWVkIHByb3BlcnRpZXMucHVibGlzaC5zb3VyY2VzIGJhY2sgdG8gc291cmNlcwogRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuMCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS4wIHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgZWRpdGgKICAgICAgICA6CiAgICAgICAgWzEuMF0gCiAgICAgICAgICAgIFNjaGVkdWxlciBuZXcgY29uZmlnIGZpbGUKIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjAgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuMCB1cGRhdGUKICAgICAgICBieQogICAgICAgIGVnbGkKICAgICAgICA6CiAgICAgICAgWzEuMF0gCiAgICAgICAgICAgIEFkZGVkIGEgZG9jdW1lbnQgKHdpdGggdGhlIGRvY3R5cGUgInNpbXBsZSBkb2N1bWVudCIpCiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS4wIHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjAgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBlZ2xpCiAgICAgICAgOgogICAgICAgIFsxLjBdIAogICAgICAgICAgICBBZGRlZCB0ZW1wb3JhcnkgbmFtZXNwYWNlcy4KIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjAgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuMCB1cGRhdGUKICAgICAgICBieQogICAgICAgIGVnbGkKICAgICAgICA6CiAgICAgICAgWzEuMF0gCiAgICAgICAgICAgIE1ha2Ugc3VyZSB0aGUgc291cmNldHlwZSBhY3Rpb24gY2FuIGFsc28gZGVhbCB3aXRoICZsdDtzaW1wbGUtZG9jdW1lbnQmZ3Q7CnJvb3QgZWxlbWVudHMuCiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS4wIHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjAgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBlZ2xpCiAgICAgICAgOgogICAgICAgIFsxLjBdIAogICAgICAgICAgICBUaGUgbmFtZSBvZiB0aGUgcGFyYW1ldGVyIGZvciB0aGUgc291cmNlcyBoYXMgYmVlbiBjaGFuZ2VkIGFuZCB3YXMKZGVmaW5lZCBsb2NhbGx5LiBJdCBub3cgdXNlcyB0aGUgY29uc3RhbnQgZGVmaW5pdGlvbiBmcm9tIHRoZQpEZWZhdWx0RmlsZVB1Ymxpc2hlci4KIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjAgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuMCB1cGRhdGUKICAgICAgICBieQogICAgICAgIG1pY2hpCiAgICAgICAgOgogICAgICAgIFsxLjBdIAogICAgICAgICAgICBDaGVja2luIGZpeGVkCiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS4wIGFkZDwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjAgYWRkCiAgICAgICAgYnkKICAgICAgICBncmVnb3IKICAgICAgICA6CiAgICAgICAgWzEuMF0gCiAgICAgICAgICAgIHN0YXJ0ZWQgbWVudSBmb3IgZGVmYXVsdCBwdWJsaWNhdGlvbgogRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuMCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS4wIHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgbWljaGkKICAgICAgICA6CiAgICAgICAgWzEuMF0gCiAgICAgICAgICAgIGFydGljbGVzIGFyZSBiZWluZyBjaGVja2VkIG91dAogRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuMCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS4wIHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgbWljaGkKICAgICAgICA6CiAgICAgICAgWzEuMF0gCiAgICAgICAgICAgIFhvcHVzIGZpeGVkCiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS4wIHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjAgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBtaWNoaQogICAgICAgIDoKICAgICAgICBbMS4wXSAKICAgICAgICAgICAgdHdvIG1vcmUgZmlsZXMgdG8gY29uZmlndXJlIGR1cmluZyBkZXBsb3ltZW50CiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS4wIHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjAgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBtaWNoaQogICAgICAgIDoKICAgICAgICBbMS4wXSAKICAgICAgICAgICAgYXRyaXggcG9saWN5IGFkZGVkCiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS4wIHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjAgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBtaWNoaQogICAgICAgIDoKICAgICAgICBbMS4wXSAKICAgICAgICAgICAgY29uZmlnIG1vdmVkCiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS4wIHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjAgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBtaWNoaQogICAgICAgIDoKICAgICAgICBbMS4wXSAKICAgICAgICAgICAgbWF0cml4IHNjaGVtYSBmaXhlZAogRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuMCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS4wIHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgbWljaGkKICAgICAgICA6CiAgICAgICAgWzEuMF0gCiAgICAgICAgICAgIGRlcHJlY2F0ZWQgZWxlbWVudHMgcmVtb3ZlZAogRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuMCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS4wIHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgbWljaGkKICAgICAgICA6CiAgICAgICAgWzEuMF0gCiAgICAgICAgICAgIExlbnlhIFBhZ2UgdXBkYXRlZAogRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuMCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS4wIHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgbWljaGkKICAgICAgICA6CiAgICAgICAgWzEuMF0gCiAgICAgICAgICAgIHJlbW92ZWQgc29tZSBmdW50aW9uYWxpdHkgZnJvbSBPU0NPTSBob21lCiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS4wIGFkZDwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjAgYWRkCiAgICAgICAgYnkKICAgICAgICBmZWxpeAogICAgICAgIDoKICAgICAgICBbMS4wXSAKICAgICAgICAgICAgQWRkZWQgZHJhZnRzIGZvciBzaW1wbGUgZG9jdW1lbnQgYW5kIHN0YW5kYXJkIGRvY3VtZW50CiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS4wIHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjAgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBtaWNoaQogICAgICAgIDoKICAgICAgICBbMS4wXSAKICAgICAgICAgICAgY3Jhd2xpbmcgYW5kIGluZGV4aW5nIGZpeGVkCiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS4wIHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjAgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBncmVnb3IKICAgICAgICA6CiAgICAgICAgWzEuMF0gCiAgICAgICAgICAgIG1vdmVkIHJldmlzaW9uIGNvbnRyb2xsZXIgYWN0aW9uIHRvIHJvb3Qgc2l0ZW1hcAogRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuMCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS4wIHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgbWljaGkKICAgICAgICA6CiAgICAgICAgWzEuMF0gCiAgICAgICAgICAgIGdlbmVyaWMgc2VhcmNoIGZpeGVkCiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS4wIHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjAgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBtaWNoaQogICAgICAgIDoKICAgICAgICBbMS4wXSAKICAgICAgICAgICAgc2VhcmNoaW5nIGZpeGVkCiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS4wIHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjAgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBtaWNoaQogICAgICAgIDoKICAgICAgICBbMS4wXSAKICAgICAgICAgICAgUHVibGlzaGluZyBhbmQgVGFza3MgZml4ZWQKIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjAgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuMCB1cGRhdGUKICAgICAgICBieQogICAgICAgIGdyZWdvcgogICAgICAgIDoKICAgICAgICBbMS4wXSAKICAgICAgICAgICAgbW92ZWQgY29uZmlnIGZpbGVzIG91dCBvZiAvY29udGVudCBpbnRvIC9jb25maWcKIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjAgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuMCB1cGRhdGUKICAgICAgICBieQogICAgICAgIGdyZWdvcgogICAgICAgIDoKICAgICAgICBbMS4wXSAKICAgICAgICAgICAgbW92ZWQgY29uZmlnIGZpbGVzIG91dCBvZiAvY29udGVudCBpbnRvIC9jb25maWcKIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjAgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuMCB1cGRhdGUKICAgICAgICBieQogICAgICAgIGdyZWdvcgogICAgICAgIDoKICAgICAgICBbMS4wXSAKICAgICAgICAgICAgcmVwbGFjZWQgb3JnLmxlbnlhIHdpdGggb3JnLmFwYWNoZS5sZW55YQogRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuMCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS4wIHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgbWljaGkKICAgICAgICA6CiAgICAgICAgWzEuMF0gCiAgICAgICAgICAgIHBhY2thZ2UgbmFtZSBmaXhlZAogRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuMCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS4wIHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgZ3JlZ29yCiAgICAgICAgOgogICAgICAgIFsxLjBdIAogICAgICAgICAgICByZXBsYWNlZCBvcmcubGVueWEgd2l0aCBvcmcuYXBhY2hlLmxlbnlhCiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS4wIHJlbW92ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjAgcmVtb3ZlCiAgICAgICAgYnkKICAgICAgICBtaWNoaQogICAgICAgIDoKICAgICAgICBbMS4wXSAKICAgICAgICAgICAgc2hvdWxkIG5vdCBoYXZlIGJlZW4gY2hlY2tlZCBpbgogRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuMCBhZGQ8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS4wIGFkZAogICAgICAgIGJ5CiAgICAgICAgbWljaGkKICAgICAgICA6CiAgICAgICAgWzEuMF0gCiAgICAgICAgICAgIG1vdmVkIHRvIGF1dGhvcmluZwogRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuMCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS4wIHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgbWljaGkKICAgICAgICA6CiAgICAgICAgWzEuMF0gCiAgICAgICAgICAgIG5ldyBwdWJsaXNoaW5nIFhTTFQgYWRkZWQKIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjAgYWRkPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuMCBhZGQKICAgICAgICBieQogICAgICAgIGVkaXRoCiAgICAgICAgOgogICAgICAgIFsxLjBdIAogICAgICAgICAgICBFeGNlcHRpb24gZm9yIGVudmVsb3BlIHBhZ2UKIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjAgYWRkPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuMCBhZGQKICAgICAgICBieQogICAgICAgIGVkaXRoCiAgICAgICAgOgogICAgICAgIFsxLjBdIAogICAgICAgICAgICBOZXcgQ29uZmlkdXJhdGlvbiBmb3IgUmV2aXNpb25Db250cm9sbGVyCiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS4wIHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjAgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBlZGl0aAogICAgICAgIDoKICAgICAgICBbMS4wXSAKICAgICAgICAgICAgUmV2aXNpb24gQ29udHJvbGxlciBuZXcgQ29uZmlndXJhdGlvbiBhbmQgY2xlYW5lZCB1cAogRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuMCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS4wIHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgZ3JlZ29yCiAgICAgICAgOgogICAgICAgIFsxLjBdIAogICAgICAgICAgICBkb2N1bWVudGVkIHNlcnZpbmcgb2Ygc3RhdGljIHJlc291cmNlcwogRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuMCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS4wIHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgbWljaGkKICAgICAgICA6CiAgICAgICAgWzEuMF0gCiAgICAgICAgICAgIGdlbmVyaWMgc2l0ZW1hcCBmb3IgcmVzb3VyY2UgYWRkZWQKIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjAgYWRkPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuMCBhZGQKICAgICAgICBieQogICAgICAgIG1pY2hpCiAgICAgICAgOgogICAgICAgIFsxLjBdIAogICAgICAgICAgICBnZW5lcmljIHNpdGVtYXAgZm9yIHJlc291cmNlcwogRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuMCByZW1vdmU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS4wIHJlbW92ZQogICAgICAgIGJ5CiAgICAgICAgbWljaGkKICAgICAgICA6CiAgICAgICAgWzEuMF0gCiAgICAgICAgICAgIHJlcGxhY2VkIGJ5IHJlc291cmNlcy54bWFwCiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS4wIHJlbW92ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjAgcmVtb3ZlCiAgICAgICAgYnkKICAgICAgICBlZ2xpCiAgICAgICAgOgogICAgICAgIFsxLjBdIAogICAgICAgICAgICBUaGUgcHVibGljYXRpb24ueGNvbmYgZmlsZSBoYXMgYmVlbiBtb3ZlZCB0byBjb25maWcvcHVibGlzaGluZyBhbmQgaGFzCmJlZW4gcmVuYW1lZCB0byBwdWJsaXNoZXIueGNvbmYuCiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS4wIHJlbW92ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjAgcmVtb3ZlCiAgICAgICAgYnkKICAgICAgICBlZ2xpCiAgICAgICAgOgogICAgICAgIFsxLjBdIAogICAgICAgICAgICBUaGlzIGZpbGUgaGFzIGJlZW4gcmVuYW1lZCB0byBwdWJsaXNoZXIueGNvbmYuCiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS4wIGFkZDwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjAgYWRkCiAgICAgICAgYnkKICAgICAgICBncmVnb3IKICAgICAgICA6CiAgICAgICAgWzEuMF0gCiAgICAgICAgICAgIGFkZGVkIHNpdGVtYXAgZm9yIHN0YXRpYyBmaWxlcyAoaW1hZ2VzLCBwZGYgZXRjKQogRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuMCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS4wIHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgZWRpdGgKICAgICAgICA6CiAgICAgICAgWzEuMF0gCiAgICAgICAgICAgIEhhbmRsZSBlcnJvcgogRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuMCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS4wIHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgbWljaGkKICAgICAgICA6CiAgICAgICAgWzEuMF0gCiAgICAgICAgICAgIHBhc3N3ZCBmaW5pc2hlZAogRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuMCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS4wIHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgbWljaGkKICAgICAgICA6CiAgICAgICAgWzEuMF0gCiAgICAgICAgICAgIHBhc3N3ZCBmaW5pc2hlZAogRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuMCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS4wIHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgbWljaGkKICAgICAgICA6CiAgICAgICAgWzEuMF0gCiAgICAgICAgICAgIEF1dGhlbnRpY2F0b3IgaWQgdXNlZAogRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuMCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS4wIHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgbWljaGkKICAgICAgICA6CiAgICAgICAgWzEuMF0gCiAgICAgICAgICAgIHNpdGVtYXAgcGF0aCBpcyBub3cgYmVpbmcgcmVzb2x2ZWQKIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjAgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuMCB1cGRhdGUKICAgICAgICBieQogICAgICAgIG1pY2hpCiAgICAgICAgOgogICAgICAgIFsxLjBdIAogICAgICAgICAgICBpbXBsZW1lbnRpbmcgcGFzc3dkCiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS4wIHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjAgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBtaWNoaQogICAgICAgIDoKICAgICAgICBbMS4wXSAKICAgICAgICAgICAgQWNjZXNzIENvbnRyb2xsaW5nIHJlZmFjdG9yZWQKIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjAgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuMCB1cGRhdGUKICAgICAgICBieQogICAgICAgIG1pY2hpCiAgICAgICAgOgogICAgICAgIFsxLjBdIAogICAgICAgICAgICBmaXJzdCB1c2VmdWwganVuaXQgdGVzdCBzdWl0ZQogRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuMCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS4wIHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgbWljaGkKICAgICAgICA6CiAgICAgICAgWzEuMF0gCiAgICAgICAgICAgIHVzZXJuYW1lIGZpeGVkCiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS4wIGFkZDwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjAgYWRkCiAgICAgICAgYnkKICAgICAgICBncmVnb3IKICAgICAgICA6CiAgICAgICAgWzEuMF0gCiAgICAgICAgICAgIE9QTUwgdG8gc2l0ZS54bWwgdHJhbnNsYXRvcgoKdXNlZnVsIGZvciBkcmFmdGluZyBhIHNpdGUgc3RydWN0dXJlIGluIGFuIG91dGxpbmVyCiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS4wIHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjAgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBtaWNoaQogICAgICAgIDoKICAgICAgICBbMS4wXSAKICAgICAgICAgICAgY2hhbmdlUGFzc3dvcmQgbWV0aG9kIGFkZGVkCiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS4wIGFkZDwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjAgYWRkCiAgICAgICAgYnkKICAgICAgICBtaWNoaQogICAgICAgIDoKICAgICAgICBbMS4wXSAKICAgICAgICAgICAgdGVtcG9yYXJ5IGFkbWluIHdlbGNvbWUgc2NyZWVuCiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS4wIHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjAgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBtaWNoaQogICAgICAgIDoKICAgICAgICBbMS4wXSAKICAgICAgICAgICAgcGFzc3dkIGFkZGVkCiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS4wIHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjAgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBtaWNoaQogICAgICAgIDoKICAgICAgICBbMS4wXSAKICAgICAgICAgICAgZ2VuZXJpYyBhZG1pbiBhcmVhIGFkZGVkCiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS4wIGFkZDwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjAgYWRkCiAgICAgICAgYnkKICAgICAgICBtaWNoaQogICAgICAgIDoKICAgICAgICBbMS4wXSAKICAgICAgICAgICAgZmlyc3Qgc3RlcHMgd2l0aCBmbG93c2NyaXB0LCBwYXNzd2QKIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjAgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuMCB1cGRhdGUKICAgICAgICBieQogICAgICAgIG1pY2hpCiAgICAgICAgOgogICAgICAgIFsxLjBdIAogICAgICAgICAgICBzb21lIG1vcmUgdHlwb3MgZml4ZWQKIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjAgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuMCB1cGRhdGUKICAgICAgICBieQogICAgICAgIG1pY2hpCiAgICAgICAgOgogICAgICAgIFsxLjBdIAogICAgICAgICAgICBzb21lIGJ1Z3MgZml4ZWQKIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjAgYWRkPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuMCBhZGQKICAgICAgICBieQogICAgICAgIG1pY2hpCiAgICAgICAgOgogICAgICAgIFsxLjBdIAogICAgICAgICAgICBzaGVsbCBzY3JpcHQgZm9yIGJ1aWxkaW5nIHRoZSBPU0NPTSBpbmRpY2VzCiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS4wIHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjAgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBtaWNoaQogICAgICAgIDoKICAgICAgICBbMS4wXSAKICAgICAgICAgICAgaW5kZXhlciBhZGRlZAogRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuMCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS4wIHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgbWljaGkKICAgICAgICA6CiAgICAgICAgWzEuMF0gCiAgICAgICAgICAgIGx1Y2VuZSBjb25maWcgdXBkYXRlZAogRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuMCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS4wIHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgbWljaGkKICAgICAgICA6CiAgICAgICAgWzEuMF0gCiAgICAgICAgICAgIGNyYXdsZXIgZmlsZXMgdXBkYXRlZAogRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuMCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS4wIHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgbWljaGkKICAgICAgICA6CiAgICAgICAgWzEuMF0gCiAgICAgICAgICAgIHJlZGlyZWN0IGZpeGVkCiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS4wIHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjAgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBtaWNoaQogICAgICAgIDoKICAgICAgICBbMS4wXSAKICAgICAgICAgICAgc2V0dXAganVuaXQgdGVzdGluZyBmcmFtZXdvcmsKIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjAgcmVtb3ZlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuMCByZW1vdmUKICAgICAgICBieQogICAgICAgIG1pY2hpCiAgICAgICAgOgogICAgICAgIFsxLjBdIAogICAgICAgICAgICBtb3ZlZAogRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuMCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS4wIHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgZWdsaQogICAgICAgIDoKICAgICAgICBbMS4wXSAKICAgICAgICAgICAgSW4gdGhlIGRlZmF1bHQgcHVibGljYXRpb24gdGhlIHRyZWUgaXMgY2FsbGVkICJzaXRldHJlZSIuCiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS4wIHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjAgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBlZ2xpCiAgICAgICAgOgogICAgICAgIFsxLjBdIAogICAgICAgICAgICBUaGUgZ3JlYXQgInN0YWdlIiB0byAiYXJlYSIgcmVuYW1pbmcuCiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS4wIHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjAgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBtaWNoaQogICAgICAgIDoKICAgICAgICBbMS4wXSAKICAgICAgICAgICAgc3RhdGljIGV4cG9ydGVyIHVwZGF0ZWQKIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjAgYWRkPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuMCBhZGQKICAgICAgICBieQogICAgICAgIG1pY2hpCiAgICAgICAgOgogICAgICAgIFsxLjBdIAogICAgICAgICAgICBQREYgZm9yIHRlc3RpbmcgTHVjZW5lCiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS4wIHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjAgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBtaWNoaQogICAgICAgIDoKICAgICAgICBbMS4wXSAKICAgICAgICAgICAgZXhwb3J0IG9mIHN0YXRpYyBmaWxlcyBpbXByb3ZlZAogRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuMCBhZGQ8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS4wIGFkZAogICAgICAgIGJ5CiAgICAgICAgZWdsaQogICAgICAgIDoKICAgICAgICBbMS4wXSAKICAgICAgICAgICAgQWRkZWQgYSBwdWJsaWNhdGlvbiBjb25maWcgZmlsZS4KIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjAgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuMCB1cGRhdGUKICAgICAgICBieQogICAgICAgIGVnbGkKICAgICAgICA6CiAgICAgICAgWzEuMF0gCiAgICAgICAgICAgIFRlcm1pbm9sb2d5IGZpeDogInN0YWdlIiBpcyBub3cgY2FsbGVkICJhcmVhIgogRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuMCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS4wIHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgZWdsaQogICAgICAgIDoKICAgICAgICBbMS4wXSAKICAgICAgICAgICAgKiBVc2UgdGhlIFNvdXJjZXR5cGVBY3Rpb24gdG8gZGV0ZXJtaW5lIHRoZSBkb2N0eXBlIG5vdy4KKiBUZXJtaW5vbG9neSBmaXg6ICJzdGFnZSIgaXMgbm93IGNhbGxlZCAiYXJlYSIKIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjAgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuMCB1cGRhdGUKICAgICAgICBieQogICAgICAgIGVnbGkKICAgICAgICA6CiAgICAgICAgWzEuMF0gCiAgICAgICAgICAgIFRoZSBhcnRpY2xlICJkb2N0eXBlIiBoYXMgYmVlbiByZXBsYWNlZCBieSBhICJzaW1wbGUiIGRvY3R5cGUuCiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS4wIHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjAgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBlZ2xpCiAgICAgICAgOgogICAgICAgIFsxLjBdIAogICAgICAgICAgICBSZXZpc2VkIHRoZSBuYW1pbmcgZm9yIHRoZSBwYXJ0cyBvZiBhIFVSSS4KIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjAgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuMCB1cGRhdGUKICAgICAgICBieQogICAgICAgIGVnbGkKICAgICAgICA6CiAgICAgICAgWzEuMF0gCiAgICAgICAgICAgIEFkZGVkIHNvbWUgaW5mb3JtYXRpb24gb24gaG93IHRvIGZpbmQgdGhlIG9yaWdpbmFsIEZvcnJlc3Qgc291cmNlcyB0bwp0aGUgcmVhZG1lLgogRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuMCBhZGQ8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS4wIGFkZAogICAgICAgIGJ5CiAgICAgICAgZWdsaQogICAgICAgIDoKICAgICAgICBbMS4wXSAKICAgICAgICAgICAgQWRkZWQgdGhlIHNvdXJjZSB0eXBlIGNsYXNzZXMgZnJvbSBGb3JyZXN0LgogRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuMCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS4wIHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgbWljaGkKICAgICAgICA6CiAgICAgICAgWzEuMF0gCiAgICAgICAgICAgIGxpYnJhcmllcyBmb3IgZGVmYXVsdCBwdWJsaWNhdGlvbiBhZGRlZAogRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuMCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS4wIHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgbWljaGkKICAgICAgICA6CiAgICAgICAgWzEuMF0gCiAgICAgICAgICAgIHByb2plY3QgbmFtZSByZXNldCBhbmQgcmVtb3ZlIHRlc3QgZGlyIHRvIGNsZWFuIHRhcmdldCBhZGRlZAogRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuMCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS4wIHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgZWdsaQogICAgICAgIDoKICAgICAgICBbMS4wXSAKICAgICAgICAgICAgKiBIYWNrZWQgYXJvdW5kIHRoZSAiZmlsZTovIiB2cyAiZmlsZTovLyIgcHJvYmxlbQoqIEFkZGVkIHNvbWUgY29kZSB0byBtYWtlIHN1cmUgdGhlIHN0YWdlIHZhcmlhYmxlIG5vdyBhY3R1YWxseSByZXR1cm5zCiAgdGhlIHN0YWdlLiBUaGlzIGlzIGRvbmUgYnkgdGFraW5nIHRoZSByZXF1ZXN0IFVSSSBhbmQgdXNpbmcgc29tZQogIGJsYXRhbnQgYXNzdW1wdGlvbnMgKGkuZS4gdGhlIFVSSSBpcyBvZiB0aGUgZm9ybQogIC9jb250ZXh0LXByZWZpeC9wdWJsaWNhdGlvbi1pZC9zdGFnZSkgdG8gZXh0cmFjdCB0aGUgc3RhZ2UuCiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS4wIGFkZDwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjAgYWRkCiAgICAgICAgYnkKICAgICAgICBncmVnb3IKICAgICAgICA6CiAgICAgICAgWzEuMF0gCiAgICAgICAgICAgIHJlZmFjdG9yZWQgYnVpbGQgc3lzdGVtLgoKYnVpbGQgdGFyZ2V0cyBub3cgcmVzaWRlIHVuZGVyIHNyYy90YXJnZXRzIGFuZCBhcmUgaW5jbHVkZWQgd2l0aCBYTUwgZW50aXRpdGllcy4KCmFsc28gYWRkZWQgdGVzdCB0YXJnZXRzCiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS4wIGFkZDwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjAgYWRkCiAgICAgICAgYnkKICAgICAgICBlZ2xpCiAgICAgICAgOgogICAgICAgIFsxLjBdIAogICAgICAgICAgICBBZGRlZCBhIGR1bW15IGNvbnRlbnQgZmlsZS4KIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjAgYWRkPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuMCBhZGQKICAgICAgICBieQogICAgICAgIG1pY2hpCiAgICAgICAgOgogICAgICAgIFsxLjBdIAogICAgICAgICAgICB0ZXN0aW5nIGZyYW1ld29yayBzdGFydGVkCiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS4wIGFkZDwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjAgYWRkCiAgICAgICAgYnkKICAgICAgICBlZ2xpCiAgICAgICAgOgogICAgICAgIFsxLjBdIAogICAgICAgICAgICBBZGRlZCBhIHBhc3N3ZCBmaWxlIGZvciB0aGUgbGVueWEgdXNlci4KIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjAgYWRkPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuMCBhZGQKICAgICAgICBieQogICAgICAgIGdyZWdvcgogICAgICAgIDoKICAgICAgICBbMS4wXSAKICAgICAgICAgICAgZW1icnlvbmljIHVuaXQgdGVzdGluZyBza2VsZXRvbi4KCmFrYTogaXQgZG9lcyBub3RoaW5nIHVzZWZ1bCB5ZXQuCiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS4wIHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjAgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBlZ2xpCiAgICAgICAgOgogICAgICAgIFsxLjBdIAogICAgICAgICAgICBGaXhlZCBhIHR5cG8uCiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS4wIGFkZDwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjAgYWRkCiAgICAgICAgYnkKICAgICAgICBlZ2xpCiAgICAgICAgOgogICAgICAgIFsxLjBdIAogICAgICAgICAgICAicGF0aCIgaGFzIGJlZW4gcmVuYW1lZCB0byAiZG9jdW1lbnQtaWQiIGFuZCAiY29udGV4dCIgaXMgbm93CiJjb250ZXh0LXByZWZpeCIgYWNjb3JkaW5nIHRvIFVSSSBzdGFuZGFyZC4KIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjAgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuMCB1cGRhdGUKICAgICAgICBieQogICAgICAgIGVnbGkKICAgICAgICA6CiAgICAgICAgWzEuMF0gCiAgICAgICAgICAgIHBhdGggaGFzIGJlZW4gcmVuYW1lZCB0byBkb2N1bWVudC1pZCBhY2NvcmRpbmcgdG8gVVJJIHN0YW5kYXJkLgogRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuMCBhZGQ8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS4wIGFkZAogICAgICAgIGJ5CiAgICAgICAgZWdsaQogICAgICAgIDoKICAgICAgICBbMS4wXSAKICAgICAgICAgICAgQWRkZWQgcG9saWN5IGZpbGVzLgogRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuMCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS4wIHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgZWdsaQogICAgICAgIDoKICAgICAgICBbMS4wXSAKICAgICAgICAgICAgTW92ZWQgdGhlIGRvY3R5cGUgcGlwZWxpbmUgaW50byBhIHNlcGFyYXRlIHNpdGVtYXAuCiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS4wIHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjAgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBlZ2xpCiAgICAgICAgOgogICAgICAgIFsxLjBdIAogICAgICAgICAgICBSZW1vdmVkIHRoZSBkZWJ1Z2dpbmcgcGlwZWxpbmUgYW5kIGVuYWJsZWQgYWNjZXNzIGNvbnRyb2wuCiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS4wIGFkZDwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjAgYWRkCiAgICAgICAgYnkKICAgICAgICBncmVnb3IKICAgICAgICA6CiAgICAgICAgWzEuMF0gCiAgICAgICAgICAgIGFkZGVkIGJpdGZsdXggZWxlbWVudHMgdG8geGRvYyBzY2hlbWEKYWRkZWQgbW9yZSBiaXRmbHV4LXNwZWNpZmljIGhlbHBlciBmaWxlcwogRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuMCBhZGQ8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS4wIGFkZAogICAgICAgIGJ5CiAgICAgICAgcGllcgogICAgICAgIDoKICAgICAgICBbMS4wXSAKICAgICAgICAgICAgVGVzdC4KClBSOgogRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuMCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS4wIHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgZWdsaQogICAgICAgIDoKICAgICAgICBbMS4wXSAKICAgICAgICAgICAgTWFqb3IgY2xlYW51cCBhbmQgYWRkaXRpb24gb2Ygc29tZSBkb2N1bWVudGF0aW9uLgogRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuMCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS4wIHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgZWdsaQogICAgICAgIDoKICAgICAgICBbMS4wXSAKICAgICAgICAgICAgKiBFbmhhbmNlZCB0byBtYWtlIGl0IGFsc28gd290ayB3aXRoIHN0YWdlcyAoYXV0aG9yaW5nLCBsaXZlLCBldGMuKQoqIEFkZGVkIHRoZSBib2R5IHRvIHRoZSBhZ2dyZWdhdGlvbgogRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuMCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS4wIHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgZWdsaQogICAgICAgIDoKICAgICAgICBbMS4wXSAKICAgICAgICAgICAgTWFrZSBzdXJlIHRoZSBwYXJhbWV0ZXIgc2l0ZW1hcCBvbmx5IHJldHVybnMgdGhlIHBhdGggcHJvcGVyLAppLmUuIHdpdGhvdXQgcHViLWlkIGFuZCBzdGFnZS4KIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjAgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuMCB1cGRhdGUKICAgICAgICBieQogICAgICAgIGVnbGkKICAgICAgICA6CiAgICAgICAgWzEuMF0gCiAgICAgICAgICAgIEVuaGFuY2VkIHRoZSBzaXRlbWFwcyBzbyB0aGF0IHRoZXkgbm93IGFsc28gaGFuZGxlIHN0YWdlCihlLmcuIGF1dGhvcmluZywgbGl2ZSwgZXRjLikKIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjAgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuMCB1cGRhdGUKICAgICAgICBieQogICAgICAgIGVnbGkKICAgICAgICA6CiAgICAgICAgWzEuMF0gCiAgICAgICAgICAgIEZpeGVkIGEgcHJvYmxlbSB3aXRoIHRoZSBsb2dnaW5nIGNvZGUuCiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS4wIHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjAgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBlZ2xpCiAgICAgICAgOgogICAgICAgIFsxLjBdIAogICAgICAgICAgICBBZGRlZCBzdGFnZSAoZS5nLiAiYXV0aG9yaW5nIiwgImxpdmUiKSBhcyBhbiBhZGRpdGlvbmFsIHBhcmFtZXRlciB0bwp0aGUgUGFnZSBFbnZlbG9wZS4KIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjAgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuMCB1cGRhdGUKICAgICAgICBieQogICAgICAgIGVkaXRoCiAgICAgICAgOgogICAgICAgIFsxLjBdIAogICAgICAgICAgICBTYXZlIHdpdGhvdXQgY2hlY2tpbgogRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuMCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS4wIHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgZWdsaQogICAgICAgIDoKICAgICAgICBbMS4wXSAKICAgICAgICAgICAgVGhlIGxpbmtzIG5vdyB1c2Ugc2VtYW50aWMgbGlua2luZy4KIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjAgYWRkPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuMCBhZGQKICAgICAgICBieQogICAgICAgIGVnbGkKICAgICAgICA6CiAgICAgICAgWzEuMF0gCiAgICAgICAgICAgICogQWRkZWQgc2l0ZSB0cmVlIHByb3Bvc2FsIHRvIHRoZSBwcm9wb3NhbCBzZWN0aW9uCiogQWRkZWQgZG9jdSBmb3IgVVJJUGFyYW1ldGVyIGFjdGlvbiB0byBjb21wb25lbnRzIHNlY3Rpb24KKiBtb3ZlZCB4aHRtbHRlbXBsYXRpbmcgdG8gY29uY2VwdHMuCiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS4wIGFkZDwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjAgYWRkCiAgICAgICAgYnkKICAgICAgICBlZ2xpCiAgICAgICAgOgogICAgICAgIFsxLjBdIAogICAgICAgICAgICBBZGRlZCB0aGUgc2l0ZSB0cmVlIGZyYW1ld29yayBwcm9wb3NhbC4gVGhlIGFjdHVhbCBpbXBsZW1lbnRhdGlvbgpkZXNjcmlwdGlvbiBnb2VzIGluIHRoZSBjb25jZXB0IHNlY3Rpb24uCiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS4wIHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjAgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBlZ2xpCiAgICAgICAgOgogICAgICAgIFsxLjBdIAogICAgICAgICAgICBBZGRlZCBhbiBpbnRyb2R1Y3Rpb24gdG8gdGhlIHByb3Bvc2FsIHNlY3Rpb24uCiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS4wIGFkZDwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjAgYWRkCiAgICAgICAgYnkKICAgICAgICBlZ2xpCiAgICAgICAgOgogICAgICAgIFsxLjBdIAogICAgICAgICAgICBSZW5hbWVkIHhodG1sIGRvY3VtZW50YXRpb24gZnJvbSAqLmh0bWwgdG8gKi54bWwuCiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS4wIHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjAgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBlZ2xpCiAgICAgICAgOgogICAgICAgIFsxLjBdIAogICAgICAgICAgICBSZW1vdmVkIHRoZSB1bmVlZGVkIHBuZyBhbmQgZ2lmIHBpcGVsaW5lLiBUaGlzIGlzIHRha2VuIGNhcmUgb2YKYWxyZWFkeSBpbiB0aGUgc3RhdGljIHBpcGVsaW5lLgogRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuMCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS4wIHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgZWdsaQogICAgICAgIDoKICAgICAgICBbMS4wXSAKICAgICAgICAgICAgRml4ZWQgYSB0eXBvIGluIHRoZSBkb2N1bWVudGF0aW9uLgogRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuMCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS4wIHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgZWdsaQogICAgICAgIDoKICAgICAgICBbMS4wXSAKICAgICAgICAgICAgRml4ZWQgaW5kZW50aW5nLgogRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuMCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS4wIHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgZWdsaQogICAgICAgIDoKICAgICAgICBbMS4wXSAKICAgICAgICAgICAgRml4ZWQgYSB0eXBvLgogRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuMCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS4wIHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgbWljaGkKICAgICAgICA6CiAgICAgICAgWzEuMF0gCiAgICAgICAgICAgIHB1Ymxpc2hpbmcgYnVnIGZpeGVkCiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS4wIHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjAgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBncmVnb3IKICAgICAgICA6CiAgICAgICAgWzEuMF0gCiAgICAgICAgICAgIGZpbmlzaGluZyB0b3VjaGVzIGZvciBuZXcgbWVudSAoZm9yIG5vdykKIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjAgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuMCB1cGRhdGUKICAgICAgICBieQogICAgICAgIGFuZHJlYXMKICAgICAgICA6CiAgICAgICAgWzEuMF0gCiAgICAgICAgICAgIHZhcmlvdXMgY2hhbmdlcwogRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuMCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS4wIHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgYW5kcmVhcwogICAgICAgIDoKICAgICAgICBbMS4wXSAKICAgICAgICAgICAgYWRkZWQgc2VwYXJhdGUgc2l0ZXRyZWUgcGlwZWxpbmUgKGRvZXMgbm90IHdvcmsgeWV0KQogRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuMCBhZGQ8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS4wIGFkZAogICAgICAgIGJ5CiAgICAgICAgYW5kcmVhcwogICAgICAgIDoKICAgICAgICBbMS4wXSAKICAgICAgICAgICAgbmV4dCBzdGVwIGluIHVyaS1wYXJhbWV0ZXJzIGZyYW1ld29yawogRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuMCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS4wIHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgYW5kcmVhcwogICAgICAgIDoKICAgICAgICBbMS4wXSAKICAgICAgICAgICAgZml4ZWQgdXJpLXBhcmFtZXRlciBwaXBlbGluZQogRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuMCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS4wIHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgYW5kcmVhcwogICAgICAgIDoKICAgICAgICBbMS4wXSAKICAgICAgICAgICAgdXNpbmcgcGFyYW1ldGVycyBpbnN0ZWFkIG9mIGNvbmZpZ3VyYXRpb24KIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjAgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuMCB1cGRhdGUKICAgICAgICBieQogICAgICAgIGdyZWdvcgogICAgICAgIDoKICAgICAgICBbMS4wXSAKICAgICAgICAgICAgZGlzYWJsZSBzdWJtZW51cyBhbmQgYmxvY2tzIGZvciBub3cKIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjAgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuMCB1cGRhdGUKICAgICAgICBieQogICAgICAgIGVnbGkKICAgICAgICA6CiAgICAgICAgWzEuMF0gCiAgICAgICAgICAgIEFkZGVkIGNvbmZpZ3VyYXRpb24gcGFyYW1ldGVycyBmb3IgVVJJUGFyYW1ldHJpemVyIGFjdGlvbi4KIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjAgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuMCB1cGRhdGUKICAgICAgICBieQogICAgICAgIGVnbGkKICAgICAgICA6CiAgICAgICAgWzEuMF0gCiAgICAgICAgICAgIE1ha2UgdGhlIGFjdGlvbiBjb25maWd1cmFibGUuCiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS4wIHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjAgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBncmVnb3IKICAgICAgICA6CiAgICAgICAgWzEuMF0gCiAgICAgICAgICAgIG1lcmdlZCBpbiBjb2RlIGZvciBtZW51cwogRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuMCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS4wIHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgZ3JlZ29yCiAgICAgICAgOgogICAgICAgIFsxLjBdIAogICAgICAgICAgICBtZW51IGNvZGUgc3VwcG9ydHMgbWVudXMgbm93IDopCiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS4wIHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjAgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBncmVnb3IKICAgICAgICA6CiAgICAgICAgWzEuMF0gCiAgICAgICAgICAgIGFkYXB0ZWQgeHNsdCB0byBnZW5lcmF0ZSBtZW51IGphdmFzY3JpcHQgYXJyYXkKIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjAgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuMCB1cGRhdGUKICAgICAgICBieQogICAgICAgIGFuZHJlYXMKICAgICAgICA6CiAgICAgICAgWzEuMF0gCiAgICAgICAgICAgIGFkZGVkIG5hdmlnYXRpb24gZG9jcwogRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuMCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS4wIHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgZ3JlZ29yCiAgICAgICAgOgogICAgICAgIFsxLjBdIAogICAgICAgICAgICBtb3JlIG1lbnUgd29yawogRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuMCBhZGQ8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS4wIGFkZAogICAgICAgIGJ5CiAgICAgICAgZWdsaQogICAgICAgIDoKICAgICAgICBbMS4wXSAKICAgICAgICAgICAgRmlyc3QgY3V0IGF0IFVSSSBwYXJhbWV0cml6ZXIgYWN0aW9uLgogRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuMCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS4wIHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgZWdsaQogICAgICAgIDoKICAgICAgICBbMS4wXSAKICAgICAgICAgICAgQWRkZWQgcGlwZWxpbmVzIGZvciB0aGUgVVJJUGFyYW1ldHJpemVyLgogRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuMCBhZGQ8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS4wIGFkZAogICAgICAgIGJ5CiAgICAgICAgZWdsaQogICAgICAgIDoKICAgICAgICBbMS4wXSAKICAgICAgICAgICAgQWRkZWQgc2l0ZW1hcHMgd2hpY2ggYXJlIHVzZWQgZm9yIHRoZSBVUklQYXJhbWV0cml6ZXIuCiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS4wIHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjAgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBlZ2xpCiAgICAgICAgOgogICAgICAgIFsxLjBdIAogICAgICAgICAgICBBZGQgYSBtb3VudCBmb3IgdGhlIHVyaS1wYXJhbWV0ZXIgc2l0ZW1hcC4KIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjAgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuMCB1cGRhdGUKICAgICAgICBieQogICAgICAgIGdyZWdvcgogICAgICAgIDoKICAgICAgICBbMS4wXSAKICAgICAgICAgICAgcmVtb3ZlZCBtZXRob2Q9Imh0bWwiCgooaXQgaXMgaWxsZWdhbCB3aXRoIGNvY29vbiAyLjEpCiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS4wIGFkZDwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjAgYWRkCiAgICAgICAgYnkKICAgICAgICBncmVnb3IKICAgICAgICA6CiAgICAgICAgWzEuMF0gCiAgICAgICAgICAgIGRyYWZ0IG9mIG5ldyBsZW55YSBtZW51LiBtdWNoIHJlbWFpbnMgdG8gYmUgZG9uZQogRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuMCBhZGQ8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS4wIGFkZAogICAgICAgIGJ5CiAgICAgICAgYW5kcmVhcwogICAgICAgIDoKICAgICAgICBbMS4wXSAKICAgICAgICAgICAgYWRkZWQgc2l0ZXRyZWUgc2NoZW1hCiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS4wIGFkZDwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjAgYWRkCiAgICAgICAgYnkKICAgICAgICBtaWNoaQogICAgICAgIDoKICAgICAgICBbMS4wXSAKICAgICAgICAgICAgU2VydmVyIFNpZGUgSW5jbHVkZSBhZGRlZAogRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuMCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS4wIHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgbWljaGkKICAgICAgICA6CiAgICAgICAgWzEuMF0gCiAgICAgICAgICAgIFhvcHVzMi4wLjAuOCBhZGRlZAogRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuMCBhZGQ8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS4wIGFkZAogICAgICAgIGJ5CiAgICAgICAgYW5kcmVhcwogICAgICAgIDoKICAgICAgICBbMS4wXSAKICAgICAgICAgICAgYWRkZWQgc3R5bGVzaGVldHMgYW5kIGNzcwogRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuMCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS4wIHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgbWljaGkKICAgICAgICA6CiAgICAgICAgWzEuMF0gCiAgICAgICAgICAgIG1vcmUgZXJyb3IgbWVzc2FnZXMKIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjAgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuMCB1cGRhdGUKICAgICAgICBieQogICAgICAgIGFuZHJlYXMKICAgICAgICA6CiAgICAgICAgWzEuMF0gCiAgICAgICAgICAgIGNoYW5nZWQgcGlwZWxpbmVzCiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS4wIGFkZDwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjAgYWRkCiAgICAgICAgYnkKICAgICAgICBhbmRyZWFzCiAgICAgICAgOgogICAgICAgIFsxLjBdIAogICAgICAgICAgICBhZGRlZCB1dGlsIHN0eWxlc2hlZXQKIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjAgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuMCB1cGRhdGUKICAgICAgICBieQogICAgICAgIGFuZHJlYXMKICAgICAgICA6CiAgICAgICAgWzEuMF0gCiAgICAgICAgICAgIGFkZGVkIG5hdmlnYXRpb24gZnJhbWV3b3JrIGNvbXBvbmVudHMKIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjAgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuMCB1cGRhdGUKICAgICAgICBieQogICAgICAgIGFuZHJlYXMKICAgICAgICA6CiAgICAgICAgWzEuMF0gCiAgICAgICAgICAgIGFkZGVkIG5hdmlnYXRpb24gZnJhbWV3b3JrIGRyYWZ0CiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS4wIGFkZDwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjAgYWRkCiAgICAgICAgYnkKICAgICAgICBhbmRyZWFzCiAgICAgICAgOgogICAgICAgIFsxLjBdIAogICAgICAgICAgICBhZGRlZCBQYWdlRW52ZWxvcGVBY3Rpb24KIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjAgYWRkPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuMCBhZGQKICAgICAgICBieQogICAgICAgIGFuZHJlYXMKICAgICAgICA6CiAgICAgICAgWzEuMF0gCiAgICAgICAgICAgIGFkZGVkIFBhZ2VFbnZlbG9wZQogRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuMCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS4wIHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgYW5kcmVhcwogICAgICAgIDoKICAgICAgICBbMS4wXSAKICAgICAgICAgICAgYWRkZWQgcmVzb3VyY2UtZXhpc3RzIGZvciBzZWFyY2gtYW5kLXJlc3VsdHMueHNsCmNoYW5nZWQgbmF2aWdhdGlvbiBwaXBlbGluZQogRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuMCBhZGQ8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS4wIGFkZAogICAgICAgIGJ5CiAgICAgICAgZ3JlZ29yCiAgICAgICAgOgogICAgICAgIFsxLjBdIAogICAgICAgICAgICBpbml0aWFsIGd1bXAgZGVzY3JpcHRvcgoKLSZndDsgaW5jb21wbGV0ZSwgbmVlZHMgaGVscCBmcm9tIGtub3dsZWRnYWJsZSBwZW9wbGUKIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjAgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuMCB1cGRhdGUKICAgICAgICBieQogICAgICAgIG1pY2hpCiAgICAgICAgOgogICAgICAgIFsxLjBdIAogICAgICAgICAgICBiZXR0ZXIgZXJyb3IgZGVzY3JpcHRpb24KIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjAgYWRkPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuMCBhZGQKICAgICAgICBieQogICAgICAgIGFuZHJlYXMKICAgICAgICA6CiAgICAgICAgWzEuMF0gCiAgICAgICAgICAgIGFkZGVkIG5hdmlnYXRpb24ueG1hcCBkcmFmdAogRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuMCBhZGQ8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS4wIGFkZAogICAgICAgIGJ5CiAgICAgICAgYW5kcmVhcwogICAgICAgIDoKICAgICAgICBbMS4wXSAKICAgICAgICAgICAgYWRkZWQgbmF2aWdhdGlvbiBzdHlsZXNoZWV0IGRyYWZ0cwogRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuMCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS4wIHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgYW5kcmVhcwogICAgICAgIDoKICAgICAgICBbMS4wXSAKICAgICAgICAgICAgbW91bnRpbmcgbmF2aWdhdGlvbiBzaXRlbWFwCiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS4wIHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjAgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBncmVnb3IKICAgICAgICA6CiAgICAgICAgWzEuMF0gCiAgICAgICAgICAgIHJlbW92ZSBsZWdhY3kgc2VwYXJhdG9yIGl0ZW0gZnJvbSBtZW51CiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS4wIHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjAgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBhbmRyZWFzCiAgICAgICAgOgogICAgICAgIFsxLjBdIAogICAgICAgICAgICBjb3JyZWN0IGhhbmRsaW5nIG9mIGVsZW1lbnQgb3JkZXIKIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjAgcmVtb3ZlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuMCByZW1vdmUKICAgICAgICBieQogICAgICAgIGVnbGkKICAgICAgICA6CiAgICAgICAgWzEuMF0gCiAgICAgICAgICAgIE1vdmVkIHRoZSB4aHRtbCBkb2N1IHRvIGEgZGlmZmVyZW50IHBsYWNlLCBzbyB0aGF0IHRoZSBtZW51IHdvcmtzCmNvcnJlY3RseS4KIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjAgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuMCB1cGRhdGUKICAgICAgICBieQogICAgICAgIGVnbGkKICAgICAgICA6CiAgICAgICAgWzEuMF0gCiAgICAgICAgICAgIFJlbW92ZWQgIkhlbGxvIFdvcmxkIiBmcm9tIHRoZSBkZWJ1Z2dpbmcgbWVudS4KIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjAgYWRkPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuMCBhZGQKICAgICAgICBieQogICAgICAgIGFuZHJlYXMKICAgICAgICA6CiAgICAgICAgWzEuMF0gCiAgICAgICAgICAgIGFkZGVkIG1pc3NpbmcgaW1hZ2VzCiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS4wIGFkZDwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjAgYWRkCiAgICAgICAgYnkKICAgICAgICBhbmRyZWFzCiAgICAgICAgOgogICAgICAgIFsxLjBdIAogICAgICAgICAgICBhZGRlZCBsZW55YS1zaXRlIHNraW4gYWdhaW4KIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjAgYWRkPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuMCBhZGQKICAgICAgICBieQogICAgICAgIGFuZHJlYXMKICAgICAgICA6CiAgICAgICAgWzEuMF0gCiAgICAgICAgICAgIGFkZGVkIGNvY29vbmNlbnRlciBza2luCiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS4wIGFkZDwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjAgYWRkCiAgICAgICAgYnkKICAgICAgICBhbmRyZWFzCiAgICAgICAgOgogICAgICAgIFsxLjBdIAogICAgICAgICAgICBhZGRlZCBkaXJlY3Rvcnkgc3RydWN0dXJlCiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS4wIHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjAgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBhbmRyZWFzCiAgICAgICAgOgogICAgICAgIFsxLjBdIAogICAgICAgICAgICB0b1N0cmluZygpIGltcGxlbWVudGVkCiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS4wIHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjAgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBhbmRyZWFzCiAgICAgICAgOgogICAgICAgIFsxLjBdIAogICAgICAgICAgICBidWdmaXgKIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjAgYWRkPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuMCBhZGQKICAgICAgICBieQogICAgICAgIGFuZHJlYXMKICAgICAgICA6CiAgICAgICAgWzEuMF0gCiAgICAgICAgICAgIGFkZGVkIFVzZXIgYW5kIFJvbGUgY2xhc3NlcwogRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuMCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS4wIHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgYW5kcmVhcwogICAgICAgIDoKICAgICAgICBbMS4wXSAKICAgICAgICAgICAgdXNpbmcgbGVueWEgU01UUCBpbnN0ZWFkIG9mIGphdmEubWFpbCBBUEkKIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjAgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuMCB1cGRhdGUKICAgICAgICBieQogICAgICAgIGFuZHJlYXMKICAgICAgICA6CiAgICAgICAgWzEuMF0gCiAgICAgICAgICAgIGNoYW5nZWQgc210cCBzZXJ2ZXIKIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjAgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuMCB1cGRhdGUKICAgICAgICBieQogICAgICAgIGdyZWdvcgogICAgICAgIDoKICAgICAgICBbMS4wXSAKICAgICAgICAgICAgYWRkZWQgYml0Zmx1eCBlbGVtZW50cyB0byB4ZG9jIHNjaGVtYQphZGRlZCBtb3JlIGJpdGZsdXgtc3BlY2lmaWMgaGVscGVyIGZpbGVzCiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS4wIGFkZDwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjAgYWRkCiAgICAgICAgYnkKICAgICAgICBhbmRyZWFzCiAgICAgICAgOgogICAgICAgIFsxLjBdIAogICAgICAgICAgICBhZGRlZCBiaXRmbHV4IHNpdGVtYXAKIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjAgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuMCB1cGRhdGUKICAgICAgICBieQogICAgICAgIGdyZWdvcgogICAgICAgIDoKICAgICAgICBbMS4wXSAKICAgICAgICAgICAgc3RhcnRlZCBiaXRmbHV4IGVkaXRvciBzdXBwb3J0CiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS4wIHJlbW92ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjAgcmVtb3ZlCiAgICAgICAgYnkKICAgICAgICBhbmRyZWFzCiAgICAgICAgOgogICAgICAgIFsxLjBdIAogICAgICAgICAgICByZW1vdmVkIGFjY2lkZW5pYWxseSBhZGRlZCBjbGFzcyBmaWxlcwogRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuMCBhZGQ8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS4wIGFkZAogICAgICAgIGJ5CiAgICAgICAgYW5kcmVhcwogICAgICAgIDoKICAgICAgICBbMS4wXSAKICAgICAgICAgICAgYWRkZWQgZmlyc3Qgd29ya2Zsb3cgdmVyc2lvbgogRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuMCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS4wIHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgYW5kcmVhcwogICAgICAgIDoKICAgICAgICBbMS4wXSAKICAgICAgICAgICAgYWRkZWQgc291cmNlPSIxLjQiIGF0dHJpYnV0ZXMgZm9yIGphdmFjIGFuZCBqYXZhZG9jCiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS4wIHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjAgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBlZGl0aAogICAgICAgIDoKICAgICAgICBbMS4wXSAKICAgICAgICAgICAgY2xlYW4gb2YgZnJvbnRwYWdlCiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS4wIHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjAgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBhbmRyZWFzCiAgICAgICAgOgogICAgICAgIFsxLjBdIAogICAgICAgICAgICBhZGRlZCB3aW5kb3dzIGluc3RhbGxhdGlvbgogRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuMCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS4wIHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgZWRpdGgKICAgICAgICA6CiAgICAgICAgWzEuMF0gCiAgICAgICAgICAgIHhvcHVzaGFuZGxlciBhY3Rpb24gaXMgZm9yIHRoZSBtb21lbnQgY29tbWVudGVkIG91dAogRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuMCBhZGQ8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS4wIGFkZAogICAgICAgIGJ5CiAgICAgICAgZ3JlZ29yCiAgICAgICAgOgogICAgICAgIFsxLjBdIAogICAgICAgICAgICBhZGRlZCBkb2NzIG9uIFhIVE1MIHRlbXBsYXRpbmcuCiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS4wIHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjAgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBlZ2xpCiAgICAgICAgOgogICAgICAgIFsxLjBdIAogICAgICAgICAgICBGaXhlZCB0eXBvcy4KIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjAgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuMCB1cGRhdGUKICAgICAgICBieQogICAgICAgIGZlbGl4CiAgICAgICAgOgogICAgICAgIFsxLjBdIAogICAgICAgICAgICBBZGRlZCB3YXJuaW5nIGFib3V0IHVuaXB1YmxpYy1zcGVjaWZpYyBCaXRmbHV4IGNvbmZpZ3VyYXRpb24KIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjAgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuMCB1cGRhdGUKICAgICAgICBieQogICAgICAgIGZlbGl4CiAgICAgICAgOgogICAgICAgIFsxLjBdIAogICAgICAgICAgICBBZGRlZCBjb21tZW50ZWQtb3V0IHVuaXB1YmxpYy1zcGVjaWZpYyBjb25maWd1cmF0aW9uCiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS4wIHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjAgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBhbGV4CiAgICAgICAgOgogICAgICAgIFsxLjBdIAogICAgICAgICAgICBUeXBvIGNvcnJlY3RlZCB3aXRoIGluY29ycmVjdCBYTUwKIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjAgcmVtb3ZlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuMCByZW1vdmUKICAgICAgICBieQogICAgICAgIGFuZHJlYXMKICAgICAgICA6CiAgICAgICAgWzEuMF0gCiAgICAgICAgICAgIG1vdmVkIGZpbGVzIHRvIHJlc291cmNlcy9lbnRpdGllcwogRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuMCBhZGQ8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS4wIGFkZAogICAgICAgIGJ5CiAgICAgICAgZWdsaQogICAgICAgIDoKICAgICAgICBbMS4wXSAKICAgICAgICAgICAgbW92ZSB0YXNrIGRvY3VtZW50YXRpb24uCiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS4wIHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjAgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBlZ2xpCiAgICAgICAgOgogICAgICAgIFsxLjBdIAogICAgICAgICAgICBBZGRlZCBwYWdlIGVudmVsb3BlIGFuZCBzdGUgdHJlZSBmcmFtZXdvcmsuCiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS4wIGFkZDwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjAgYWRkCiAgICAgICAgYnkKICAgICAgICBlZ2xpCiAgICAgICAgOgogICAgICAgIFsxLjBdIAogICAgICAgICAgICBNaWdyYXRlZCBmcm9tIG9sZCBkb2MuCiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS4wIHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjAgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBncmVnb3IKICAgICAgICA6CiAgICAgICAgWzEuMF0gCiAgICAgICAgICAgIG1vdmVkIG1vcmUgYWN0aW9ucyBpbnRvIHRoZSBsZW55YSBzaXRlbWFwCgp0byBiZSBkb25lOiBtb3ZlIHhvcHVzYWN0aW9uLCByb2xsYmFjayBhcyBzb29uIGFzIHdlIHNldHRsZSBvbiB0aGUgZmluYWwgZGlyZWN0b3J5IHN0cnVjdHVyZQogRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuMCBhZGQ8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS4wIGFkZAogICAgICAgIGJ5CiAgICAgICAgZWdsaQogICAgICAgIDoKICAgICAgICBbMS4wXSAKICAgICAgICAgICAgQ29uY2VwdCBmb3Igc2l0ZVRyZWUgZnJhbWV3b3JrLgogRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuMCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS4wIHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgZWdsaQogICAgICAgIDoKICAgICAgICBbMS4wXSAKICAgICAgICAgICAgQWRkZWQgYSBwaXBlbGluZSBmb3IgaW1hZ2VzLgogRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuMCByZW1vdmU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS4wIHJlbW92ZQogICAgICAgIGJ5CiAgICAgICAgZWdsaQogICAgICAgIDoKICAgICAgICBbMS4wXSAKICAgICAgICAgICAgTW92ZWQgdGhlIHRhc2sgZG9jdSB1bmRlciBjb25jZXB0cy4KIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjAgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuMCB1cGRhdGUKICAgICAgICBieQogICAgICAgIGFuZHJlYXMKICAgICAgICA6CiAgICAgICAgWzEuMF0gCiAgICAgICAgICAgIGNoYW5nZWQgYnVpbGRmaWxlIGxvY2F0aW9uCiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS4wIHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjAgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBncmVnb3IKICAgICAgICA6CiAgICAgICAgWzEuMF0gCiAgICAgICAgICAgIGFkZGVkIHhvcHVzIGFjdGlvbiB0byBsZW55YSBzaXRlbWFwCnZpc3VhbGx5IHNlcGVyYXRlZCBsZW55YSBpbnNlcnRpb25zIGZyb20gY29jb29uIHN0dWZmCiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS4wIHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjAgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBncmVnb3IKICAgICAgICA6CiAgICAgICAgWzEuMF0gCiAgICAgICAgICAgIGZsZXNoZWQgb3V0IGRlZmF1bHQgcHVibGljYXRpb24KIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjAgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuMCB1cGRhdGUKICAgICAgICBieQogICAgICAgIGdyZWdvcgogICAgICAgIDoKICAgICAgICBbMS4wXSAKICAgICAgICAgICAgYWRkZWQgcGFyZW50IGNoaWxkIGFjdGlvbiB0byBsZW55YSBzaXRlbWFwCiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS4wIGFkZDwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjAgYWRkCiAgICAgICAgYnkKICAgICAgICBncmVnb3IKICAgICAgICA6CiAgICAgICAgWzEuMF0gCiAgICAgICAgICAgIGluaXRpYWwgc3VwcG9ydCBmb3IgYWRkaW5nIG5ldyB4ZG9jIGRvY3VtZW50cyB0aHJvdWdoIGxlbnlhCiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS4wIHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjAgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBlZGl0aAogICAgICAgIDoKICAgICAgICBbMS4wXSAKICAgICAgICAgICAgRml4IG9mIGFzc2lnbmF0aW9uIG9mIGFydGljbGUgdG8gZG9zc2llcgogRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuMCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS4wIHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgYW5kcmVhcwogICAgICAgIDoKICAgICAgICBbMS4wXSAKICAgICAgICAgICAgY2hhbmdlZCBmb3JyZXN0IHNraW4gdG8gbGVueWEtc2l0ZQogRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuMCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS4wIHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgYW5kcmVhcwogICAgICAgIDoKICAgICAgICBbMS4wXSAKICAgICAgICAgICAgYWRkZWQgbGVueWEtc2l0ZSBza2luCiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS4wIGFkZDwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjAgYWRkCiAgICAgICAgYnkKICAgICAgICBncmVnb3IKICAgICAgICA6CiAgICAgICAgWzEuMF0gCiAgICAgICAgICAgIHN0YXJ0ZWQgbmV3IGRlZmF1bHQgcHVibGljYXRpb24KIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjAgYWRkPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuMCBhZGQKICAgICAgICBieQogICAgICAgIGFuZHJlYXMKICAgICAgICA6CiAgICAgICAgWzEuMF0gCiAgICAgICAgICAgIGFkZGVkIHRhc2sgY29uZmlndXJhdGlvbgogRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuMCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS4wIHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgYW5kcmVhcwogICAgICAgIDoKICAgICAgICBbMS4wXSAKICAgICAgICAgICAgYWRkZWQgbG9nZmlsZSBoaXN0b3J5CiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS4wIGFkZDwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjAgYWRkCiAgICAgICAgYnkKICAgICAgICBhbmRyZWFzCiAgICAgICAgOgogICAgICAgIFsxLjBdIAogICAgICAgICAgICBhZGRlZCB0YXNrIGRvY3VtZW50YXRpb24gZmlsZXMKIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjAgYWRkPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuMCBhZGQKICAgICAgICBieQogICAgICAgIGFuZHJlYXMKICAgICAgICA6CiAgICAgICAgWzEuMF0gCiAgICAgICAgICAgIGFkZGVkIGxvZ2ZpbGUgc3R5bGVzaGVldHMKIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjAgcmVtb3ZlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuMCByZW1vdmUKICAgICAgICBieQogICAgICAgIGFuZHJlYXMKICAgICAgICA6CiAgICAgICAgWzEuMF0gCiAgICAgICAgICAgIHJlbW92ZWQgbG9nLnhzbAogRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuMCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS4wIHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgbWljaGkKICAgICAgICA6CiAgICAgICAgWzEuMF0gCiAgICAgICAgICAgIGFic29sdXRlIHBhdGhzIGFyZSBhbHNvIHBvc3NpYmxlIG5vdwogRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuMCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS4wIHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgZWRpdGgKICAgICAgICA6CiAgICAgICAgWzEuMF0gCiAgICAgICAgICAgIENsZWFuIG9mIHJvbGxiYWNrCiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS4wIHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjAgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBncmVnb3IKICAgICAgICA6CiAgICAgICAgWzEuMF0gCiAgICAgICAgICAgIG1hZGUgbGVueWEgbWVudSBzdHJldGNoIGFjcm9zcyB3aG9sZSB3aW5kb3cuCiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS4wIHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjAgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBtaWNoaQogICAgICAgIDoKICAgICAgICBbMS4wXSAKICAgICAgICAgICAgUmVkaXJlY3QgYWRkZWQKIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjAgYWRkPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuMCBhZGQKICAgICAgICBieQogICAgICAgIG1pY2hpCiAgICAgICAgOgogICAgICAgIFsxLjBdIAogICAgICAgICAgICBGb3JyZXN0IHB1YmxpY2F0aW9uIGZpeGVkCiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS4wIHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjAgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBtaWNoaQogICAgICAgIDoKICAgICAgICBbMS4wXSAKICAgICAgICAgICAgc29tZSB3aGl0ZXNwYWNlcyBhZGRlZAogRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuMCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS4wIHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgYW5kcmVhcwogICAgICAgIDoKICAgICAgICBbMS4wXSAKICAgICAgICAgICAgYWRkZWQgSFNRTERCIHNlcnZlciBwb3J0IHByb3BlcnR5CiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS4wIGFkZDwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjAgYWRkCiAgICAgICAgYnkKICAgICAgICBhbmRyZWFzCiAgICAgICAgOgogICAgICAgIFsxLjBdIAogICAgICAgICAgICBhZGRlZCBzb21lIHRlbXBvcmFyeSBmaWxlcwogRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuMCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS4wIHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgYW5kcmVhcwogICAgICAgIDoKICAgICAgICBbMS4wXSAKICAgICAgICAgICAgYWRkZWQgd2ViLnhtbCBlbnRpdHkgY2F0YWxvZwogRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuMCBhZGQ8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS4wIGFkZAogICAgICAgIGJ5CiAgICAgICAgYW5kcmVhcwogICAgICAgIDoKICAgICAgICBbMS4wXSAKICAgICAgICAgICAgYWRkZWQgd2ViYXBwIERURAogRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuMCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS4wIHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgbWljaGkKICAgICAgICA6CiAgICAgICAgWzEuMF0gCiAgICAgICAgICAgIGxpdmUgcmVtb3ZlZCBmcm9tIHRhYiBhbmQgcHVibGlzaAogRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuMCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS4wIHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgbWljaGkKICAgICAgICA6CiAgICAgICAgWzEuMF0gCiAgICAgICAgICAgIHR5cG8gZml4ZWQKIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjAgYWRkPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuMCBhZGQKICAgICAgICBieQogICAgICAgIG1pY2hpCiAgICAgICAgOgogICAgICAgIFsxLjBdIAogICAgICAgICAgICByZXNwb25zZS54c2wgbW92ZWQgb3V0IG9mIHB1YmxpY2F0aW9ucyBpbnRvIGxlbnlhCiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS4wIHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjAgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBncmVnb3IKICAgICAgICA6CiAgICAgICAgWzEuMF0gCiAgICAgICAgICAgIHJlc29sdmVkIGJpdGZsdXggNDA0IGR1ZSB0byByZW5hbWluZyBpbmRleC5odG1sIHRvIGluZGV4LnhtbAogRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuMCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS4wIHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgZ3JlZ29yCiAgICAgICAgOgogICAgICAgIFsxLjBdIAogICAgICAgICAgICBtb3ZlZCBzdGVwIGFuZCB1c2VjYXNlIG1hdGNoZXJzIHRvIHRoZSByb290IHNpdGVtYXAKIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjAgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuMCB1cGRhdGUKICAgICAgICBieQogICAgICAgIGdyZWdvcgogICAgICAgIDoKICAgICAgICBbMS4wXSAKICAgICAgICAgICAgd3JhcHBlZCBwdWJsaWNhdGlvbiBpbiBhY2Nlc3MgY29udHJvbAogRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuMCBhZGQ8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS4wIGFkZAogICAgICAgIGJ5CiAgICAgICAgZ3JlZ29yCiAgICAgICAgOgogICAgICAgIFsxLjBdIAogICAgICAgICAgICBhZGRlZCBhdXRoZW50aWNhdGlvbiB0byBmb3JyZXN0IHB1YmxpY2F0aW9uCm1vdmVkIG9yaWdpbmFsIGZvcmVzdCBzaXRlbWFwIHRvIGZvcnJlc3Qtc2l0ZW1hcC54bWFwCiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS4wIGFkZDwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjAgYWRkCiAgICAgICAgYnkKICAgICAgICBncmVnb3IKICAgICAgICA6CiAgICAgICAgWzEuMF0gCiAgICAgICAgICAgIGF1dGhlbnRpY2F0aW9uIGZvciBmb3JyZXN0IHB1YmxpY2F0aW9uCiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS4wIHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjAgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBncmVnb3IKICAgICAgICA6CiAgICAgICAgWzEuMF0gCiAgICAgICAgICAgIG1vdmVkIHhvcHVzIGFuZCBiaXRmbHV4IHJlc3BvbnNlIGZpbGVzIHRvIHJvb3QgY29udGV4dAogRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuMCBhZGQ8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS4wIGFkZAogICAgICAgIGJ5CiAgICAgICAgZ3JlZ29yCiAgICAgICAgOgogICAgICAgIFsxLjBdIAogICAgICAgICAgICBtb3ZlIGJpdGZsdXggdG8gcm9vdAogRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuMCBhZGQ8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS4wIGFkZAogICAgICAgIGJ5CiAgICAgICAgZ3JlZ29yCiAgICAgICAgOgogICAgICAgIFsxLjBdIAogICAgICAgICAgICBtb3ZlIHhvcHVzIHN0dWZmIHRvIHJvb3QKIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjAgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuMCB1cGRhdGUKICAgICAgICBieQogICAgICAgIGFuZHJlYXMKICAgICAgICA6CiAgICAgICAgWzEuMF0gCiAgICAgICAgICAgIGNoYW5nZWQgYW50LWxvZy5odG1sIFVSSQogRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuMCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS4wIHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgYW5kcmVhcwogICAgICAgIDoKICAgICAgICBbMS4wXSAKICAgICAgICAgICAgYWRkZWQgcHViLmRpciBwcm9wZXJ0eQogRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuMCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS4wIHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgYW5kcmVhcwogICAgICAgIDoKICAgICAgICBbMS4wXSAKICAgICAgICAgICAgdW4tY29tbWVudGVkIE5hbWVzcGFjZU1hcAogRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuMCBhZGQ8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS4wIGFkZAogICAgICAgIGJ5CiAgICAgICAgYW5kcmVhcwogICAgICAgIDoKICAgICAgICBbMS4wXSAKICAgICAgICAgICAgYWRkZWQgTmFtZXNwYWNlTWFwCiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS4wIHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjAgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBtaWNoaQogICAgICAgIDoKICAgICAgICBbMS4wXSAKICAgICAgICAgICAgY2F0Y2ggaW5kZXhPZiAtMSBleGNlcHRpb24KIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjAgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuMCB1cGRhdGUKICAgICAgICBieQogICAgICAgIG1pY2hpCiAgICAgICAgOgogICAgICAgIFsxLjBdIAogICAgICAgICAgICBhZGRlZCBkZWJ1ZyBpbmZvcm1hdGlvbiBhbmQgbWFkZSBpdCBzYXZlYWJsZQogRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuMCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS4wIHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgbWljaGkKICAgICAgICA6CiAgICAgICAgWzEuMF0gCiAgICAgICAgICAgIE5hbWVzcGFjZU1hcCBpcyBjdXJyZW50bHkgbWlzc2luZyBmcm9tIENWUwogRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuMCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS4wIHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgYW5kcmVhcwogICAgICAgIDoKICAgICAgICBbMS4wXSAKICAgICAgICAgICAgYWRkZWQgYW50IGxvZyBwaXBlbGluZQogRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuMCBhZGQ8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS4wIGFkZAogICAgICAgIGJ5CiAgICAgICAgYW5kcmVhcwogICAgICAgIDoKICAgICAgICBbMS4wXSAKICAgICAgICAgICAgYWRkZWQgbG9nLnhzbCBmb3IgYW50IGxvZyBmaWxlcwogRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuMCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS4wIHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgYW5kcmVhcwogICAgICAgIDoKICAgICAgICBbMS4wXSAKICAgICAgICAgICAgY2hhbmdlZCBqYXZhZG9jCiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS4wIHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjAgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBhbmRyZWFzCiAgICAgICAgOgogICAgICAgIFsxLjBdIAogICAgICAgICAgICBjaGFuZ2VkIHRvIDEuNCBjb25zdHJ1Y3RvcnMKIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjAgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuMCB1cGRhdGUKICAgICAgICBieQogICAgICAgIGFuZHJlYXMKICAgICAgICA6CiAgICAgICAgWzEuMF0gCiAgICAgICAgICAgIGFkZGVkIGdldFB1YmxpY2F0aW9uRGlyZWN0b3J5KCkgbWV0aG9kCiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS4wIHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjAgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBhbmRyZWFzCiAgICAgICAgOgogICAgICAgIFsxLjBdIAogICAgICAgICAgICBpbXBsZW1lbnRlZCBleGVjdXRlQW50VGFyZ2V0KCkKIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjAgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuMCB1cGRhdGUKICAgICAgICBieQogICAgICAgIGdyZWdvcgogICAgICAgIDoKICAgICAgICBbMS4wXSAKICAgICAgICAgICAgd2Ugbm93IHRyYWNrIHRoZSB4ZG9jIGR0ZCBtb3JlIGNsb3NlbHkuIHRoZSBvbmx5IGRpZmZlcmVuY2UgaXMgeG1sOnNwYWNlIHdoaWNoIGxlZCB0byBwcm9ibGVtcywgYW5kIHdhcyByZW1vdmVkLgogRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuMCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS4wIHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgZ3JlZ29yCiAgICAgICAgOgogICAgICAgIFsxLjBdIAogICAgICAgICAgICBtb3JlIGNoYW5nZXMgdG8gZ2V0IHhkb2MgZWRpdGluZyB3b3JraW5nIGluIHhvcHVzCiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS4wIHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjAgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBtaWNoaQogICAgICAgIDoKICAgICAgICBbMS4wXSAKICAgICAgICAgICAgWG9wdXNJbnRlcmZhY2UgZXhjZXB0aW9uIGhhbmRsaW5nIHNsaWdodGx5IGltcHJvdmVkCiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS4wIHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjAgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBtaWNoaQogICAgICAgIDoKICAgICAgICBbMS4wXSAKICAgICAgICAgICAgWG9wdXMgbmVhcmx5IGZpeGVkIGZvciBGb3JyZXN0CiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS4wIGFkZDwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjAgYWRkCiAgICAgICAgYnkKICAgICAgICBhbmRyZWFzCiAgICAgICAgOgogICAgICAgIFsxLjBdIAogICAgICAgICAgICBBbnRUYXNrIG91dGxpbmUgYWRkZWQKIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjAgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuMCB1cGRhdGUKICAgICAgICBieQogICAgICAgIG1pY2hpCiAgICAgICAgOgogICAgICAgIFsxLjBdIAogICAgICAgICAgICBYb3B1cyBhZGRlZAogRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuMCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS4wIHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgbWljaGkKICAgICAgICA6CiAgICAgICAgWzEuMF0gCiAgICAgICAgICAgIGVkaXRvciBtYXRyaXggZml4ZWQKIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjAgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuMCB1cGRhdGUKICAgICAgICBieQogICAgICAgIGdyZWdvcgogICAgICAgIDoKICAgICAgICBbMS4wXSAKICAgICAgICAgICAgbWljcm8gc3RlcHMgdG93YXJkcyB4b3B1cyBzdXBwb3J0CiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS4wIHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjAgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBncmVnb3IKICAgICAgICA6CiAgICAgICAgWzEuMF0gCiAgICAgICAgICAgIG1vcmUgYXV0aG9yaW5nIGNoYW5nZXMKIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjAgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuMCB1cGRhdGUKICAgICAgICBieQogICAgICAgIG1pY2hpCiAgICAgICAgOgogICAgICAgIFsxLjBdIAogICAgICAgICAgICBvcGVuc291cmNlY21zIGFkZGVkCiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS4wIGFkZDwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjAgYWRkCiAgICAgICAgYnkKICAgICAgICBncmVnb3IKICAgICAgICA6CiAgICAgICAgWzEuMF0gCiAgICAgICAgICAgIGNoYW5nZXMgdG8gbWFrZSBhdXRob3JpbmcgbWVudSBhcHBlYXIKIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjAgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuMCB1cGRhdGUKICAgICAgICBieQogICAgICAgIG1pY2hpCiAgICAgICAgOgogICAgICAgIFsxLjBdIAogICAgICAgICAgICBtb3JlIGRlcGxveSBkb2N1IGFkZGVkCiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS4wIGFkZDwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjAgYWRkCiAgICAgICAgYnkKICAgICAgICBtaWNoaQogICAgICAgIDoKICAgICAgICBbMS4wXSAKICAgICAgICAgICAgcGFzc3dkIHRhcmdldAogRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuMCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS4wIHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgbWljaGkKICAgICAgICA6CiAgICAgICAgWzEuMF0gCiAgICAgICAgICAgIG5vdCB1c2VkIHN0dWZmIHJlbW92ZWQKIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjAgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuMCB1cGRhdGUKICAgICAgICBieQogICAgICAgIG1pY2hpCiAgICAgICAgOgogICAgICAgIFsxLjBdIAogICAgICAgICAgICBBcGFjaGUgbGluayBoaWdobGlnaHRlZAogRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuMCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS4wIHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgbWljaGkKICAgICAgICA6CiAgICAgICAgWzEuMF0gCiAgICAgICAgICAgIG1vcmUgcGF0aHMgZml4ZWQKIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjAgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuMCB1cGRhdGUKICAgICAgICBieQogICAgICAgIG1pY2hpCiAgICAgICAgOgogICAgICAgIFsxLjBdIAogICAgICAgICAgICBsaW5rIHRvIGF1dGhvcmluZyBhZGRlZAogRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuMCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS4wIHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgbWljaGkKICAgICAgICA6CiAgICAgICAgWzEuMF0gCiAgICAgICAgICAgIGNyYXdsZXIgYW5kIGluZGV4ZXIgY29uZmlnIGZpeGVkCiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS4wIHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjAgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBtaWNoaQogICAgICAgIDoKICAgICAgICBbMS4wXSAKICAgICAgICAgICAgZGVhZCBjb2RlIHJlbW92ZWQKIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjAgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuMCB1cGRhdGUKICAgICAgICBieQogICAgICAgIG1pY2hpCiAgICAgICAgOgogICAgICAgIFsxLjBdIAogICAgICAgICAgICBwYXRocyBmaXhlZAogRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuMCBhZGQ8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS4wIGFkZAogICAgICAgIGJ5CiAgICAgICAgYW5kcmVhcwogICAgICAgIDoKICAgICAgICBbMS4wXSAKICAgICAgICAgICAgYWRkZWQgcHJlLXBhcnNlciAod29ya2Fyb3VuZCBmb3IgSlZNIGJ1ZykKIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjAgcmVtb3ZlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuMCByZW1vdmUKICAgICAgICBieQogICAgICAgIGVnbGkKICAgICAgICA6CiAgICAgICAgWzEuMF0gCiAgICAgICAgICAgIFRoZSBzYW1wbGVSZXNvdXJjZU5hbWUgY2FuIG5vdyBiZSBzcGVjaWZpZWQgaW4gdGhlIGRvY3R5cGVzIHJlc291cmNlCmZpbGUgYXMgJmx0O3NhbXBsZS1uYW1lJmd0OyBlbGVtZW50IHdoaWNoIGlzIGEgY2hpbGQgb2YgdGhlIGNyZWF0b3IKZWxlbWVudC4gU28gdGhlIGNvbnN0cnVjdG9yIGluIE5ld0FydGljbGVDcmVhdG9yIGlzIG5vdCBuZWVkZWQKYW55bW9yZSwgYWN0dWFsbHkgdGhlIHdob2xlIGNsYXNzIGlzbid0IG5lZWRlZCBhbnltb3JlIHNpbmNlIGl0CmNvbnNpc3RzIG9mIG5vdGhpbmcgYnV0IGEgY29uc3RydWN0b3IuCiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS4wIHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjAgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBlZ2xpCiAgICAgICAgOgogICAgICAgIFsxLjBdIAogICAgICAgICAgICBUaGUgc2FtcGxlUmVzb3VyY2VOYW1lIGNhbiBub3cgYmUgc3BlY2lmaWVkIGluIHRoZSBkb2N0eXBlcyByZXNvdXJjZQpmaWxlIGFzICZsdDtzYW1wbGUtbmFtZSZndDsgZWxlbWVudCB3aGljaCBpcyBhIGNoaWxkIG9mIHRoZSBjcmVhdG9yCmVsZW1lbnQuIFNvIHRoZSBjb25zdHJ1Y3RvciBpbiBOZXdBcnRpY2xlQ3JlYXRvciBpcyBnb25lICh0aGUgd2hvbGUKY2xhc3MgaXNuJ3QgbmVlZGVkIGFueW1vcmUgc2luY2UgaXQgY29uc2lzdHMgb2Ygbm90aGluZyBidXQgYQpjb25zdHJ1Y3RvcikgYW5kIGEgc2FtcGxlLW5hbWUgZWxlbWVudCBpcyBhZGRlZCB0byBkb2N0eXBlcy54Y29uZiBmb3IKZWFjaCBkb2N0eXBlLgogRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuMCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS4wIHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgYW5kcmVhcwogICAgICAgIDoKICAgICAgICBbMS4wXSAKICAgICAgICAgICAgdXNpbmcgc2VwYXJhdGUgcGlwZWxpbmUgZm9yIGh0dHAgcmVxdWVzdAogRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuMCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS4wIHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgZWdsaQogICAgICAgIDoKICAgICAgICBbMS4wXSAKICAgICAgICAgICAgVGhlIHNhbXBsZVJlc291cmNlTmFtZSBjYW4gbm93IGJlIHNwZWNpZmllZCBpbiB0aGUgZG9jdHlwZXMgcmVzb3VyY2UKZmlsZSBhcyAmbHQ7c2FtcGxlLW5hbWUmZ3Q7IGVsZW1lbnQgd2hpY2ggaXMgYSBjaGlsZCBvZiB0aGUgY3JlYXRvcgplbGVtZW50LiBTbyB0aGUgY29uc3RydWN0b3IgaW4gQ01GUHJvamVjdENyZWF0b3IsIENNU1Byb2plY3RDcmVhdG9yCmFuZCBFZGl0b3JQcm9qZWN0Q3JlYXRvcmlzIGdvbmUgYW5kIGEgc2FtcGxlLW5hbWUgZWxlbWVudCBpcyBhZGRlZCB0bwpkb2N0eXBlcy54Y29uZiBmb3IgZWFjaCBkb2N0eXBlLgogRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuMCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS4wIHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgZWdsaQogICAgICAgIDoKICAgICAgICBbMS4wXSAKICAgICAgICAgICAgQWRkZWQgYSBsb2dnZXIgdG8gcGFyZW50LWNoaWxkIGFjdGlvbi4KIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjAgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuMCB1cGRhdGUKICAgICAgICBieQogICAgICAgIGVnbGkKICAgICAgICA6CiAgICAgICAgWzEuMF0gCiAgICAgICAgICAgIFRoZSBzYW1wbGVSZXNvdXJjZU5hbWUgY2FuIG5vdyBiZSBzcGVjaWZpZWQgaW4gdGhlIGRvY3R5cGVzIHJlc291cmNlCmZpbGUgYXMgJmx0O3NhbXBsZS1uYW1lJmd0OyBlbGVtZW50IHdoaWNoIGlzIGEgY2hpbGQgb2YgdGhlIGNyZWF0b3IKZWxlbWVudC4gU28gdGhlIGNvbnN0cnVjdG9yICBpbiBOZXdBcnRpY2xlQ3JlYXRvciBpcyBnb25lIGFuZCBhCnNhbXBsZS1uYW1lIGVsZW1lbnQgaXMgYWRkZWQgdG8gZG9jdHlwZXMueGNvbmYuCiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS4wIHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjAgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBlZ2xpCiAgICAgICAgOgogICAgICAgIFsxLjBdIAogICAgICAgICAgICBUaGUgc2FtcGxlUmVzb3VyY2VOYW1lIGNhbiBub3cgYmUgc3BlY2lmaWVkIGluIHRoZSBkb2N0eXBlcyByZXNvdXJjZQpmaWxlIGFzICZsdDtzYW1wbGUtbmFtZSZndDsgZWxlbWVudCB3aGljaCBpcyBhIGNoaWxkIG9mIHRoZSBjcmVhdG9yCmVsZW1lbnQuIFNvIHRoZSBjb25zdHJ1Y3RvciAgaW4gQXJ0aWNsZUNyZWF0b3IgaXMgZ29uZSBhbmQgYQpzYW1wbGUtbmFtZSBlbGVtZW50IGlzIGFkZGVkIHRvIGRvY3R5cGVzLnhjb25mLgogRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuMCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS4wIHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgZWdsaQogICAgICAgIDoKICAgICAgICBbMS4wXSAKICAgICAgICAgICAgVGhlIERlZmF1bHRDcmVhdG9yIGlzIG5vdyBpbnZva2VkIHByb3Blcmx5IGZyb20gdGhlClBhcmVudENoaWxkQ3JlYXRvckFjdGlvbiwgaS5lLiB0aGUgY29uZmlndXJhdGlvbiBpcyBwYXJzZWQgZnJvbSB0aGUKZG9jdHlwZXMgZmlsZSBhbmQgcGFzc2VkIHRvIHRoZSBDcmVhdG9yLgogRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuMCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS4wIHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgbWljaGkKICAgICAgICA6CiAgICAgICAgWzEuMF0gCiAgICAgICAgICAgIGVkaXRvciBtYXRyaXggZml4ZWQKIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjAgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuMCB1cGRhdGUKICAgICAgICBieQogICAgICAgIG1pY2hpCiAgICAgICAgOgogICAgICAgIFsxLjBdIAogICAgICAgICAgICBsYXlvdXQgZml4ZWQKIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjAgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuMCB1cGRhdGUKICAgICAgICBieQogICAgICAgIG1pY2hpCiAgICAgICAgOgogICAgICAgIFsxLjBdIAogICAgICAgICAgICBPU0NPTSBsYXlvdXQgcHJvYmxlbXMgZml4ZWQKIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjAgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuMCB1cGRhdGUKICAgICAgICBieQogICAgICAgIG1pY2hpCiAgICAgICAgOgogICAgICAgIFsxLjBdIAogICAgICAgICAgICBhdXRob3Jpbmcgd2lwCiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS4wIHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjAgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBhbmRyZWFzCiAgICAgICAgOgogICAgICAgIFsxLjBdIAogICAgICAgICAgICBidWdmaXhlcyBpbiBlbXBoYXNpemVBc1hNTAogRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuMCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS4wIHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgYW5kcmVhcwogICAgICAgIDoKICAgICAgICBbMS4wXSAKICAgICAgICAgICAgcmVtb3ZlZCBjb21tZW50ZWQtb3V0IGZvcnJlc3Qgc2VjdGlvbgogRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuMCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS4wIHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgYW5kcmVhcwogICAgICAgIDoKICAgICAgICBbMS4wXSAKICAgICAgICAgICAgYWRkZWQgZm9ycmVzdCBwdWJsaWNhdGlvbiBwYXJhbWV0ZXIKIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjAgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuMCB1cGRhdGUKICAgICAgICBieQogICAgICAgIG1pY2hpCiAgICAgICAgOgogICAgICAgIFsxLjBdIAogICAgICAgICAgICBPU0NPTSBsYXlvdXQgZml4ZWQKIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjAgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuMCB1cGRhdGUKICAgICAgICBieQogICAgICAgIGFuZHJlYXMKICAgICAgICA6CiAgICAgICAgWzEuMF0gCiAgICAgICAgICAgIGFkZGVkIGZvcnJlc3Qgc3R1ZmYKIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjAgYWRkPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuMCBhZGQKICAgICAgICBieQogICAgICAgIGFuZHJlYXMKICAgICAgICA6CiAgICAgICAgWzEuMF0gCiAgICAgICAgICAgIGFkZGVkIG1vcmUgZm9ycmVzdCBmaWxlcwogRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuMCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS4wIHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgZ3JlZ29yCiAgICAgICAgOgogICAgICAgIFsxLjBdIAogICAgICAgICAgICBtb3JlIGVmZm9ydHMgdG8gbW92ZSBzdHVmZiB0byB0aGUgcm9vdCBzaXRlbWFwOgoKLSB2aWV3cyAobm90IHN1cmUgaWYgdGhpcyB3b3JrcyAxMDAlKQotIGV2ZW50dWFsbHksIGxlbnlhIGFjdGlvbnMKIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjAgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuMCB1cGRhdGUKICAgICAgICBieQogICAgICAgIGdyZWdvcgogICAgICAgIDoKICAgICAgICBbMS4wXSAKICAgICAgICAgICAgdGhpcyBvbmUgYWN0dWFsbHkgYnVpbGRzIGEgbmF2aWdhdGlvbiA6KQogRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuMCBhZGQ8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS4wIGFkZAogICAgICAgIGJ5CiAgICAgICAgYW5kcmVhcwogICAgICAgIDoKICAgICAgICBbMS4wXSAKICAgICAgICAgICAgYWRkZWQgZmlsZXMgSSBmb3Jnb3QKIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjAgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuMCB1cGRhdGUKICAgICAgICBieQogICAgICAgIGdyZWdvcgogICAgICAgIDoKICAgICAgICBbMS4wXSAKICAgICAgICAgICAgY2hhbmdlcyB0byBnZXQgYXV0aG9yaW5nIHdvcmtpbmcgd2l0aCBmb3JyZXN0CiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS4wIGFkZDwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjAgYWRkCiAgICAgICAgYnkKICAgICAgICBncmVnb3IKICAgICAgICA6CiAgICAgICAgWzEuMF0gCiAgICAgICAgICAgIGluaXRpYWwgY29tbWl0IG9mIHhkb2MgeG1sIHNjaGVtYXMgZm9yIHhvcHVzCiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS4wIHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjAgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBlZGl0aAogICAgICAgIDoKICAgICAgICBbMS4wXSAKICAgICAgICAgICAgQ29uZmlndXJhdGlvbiBvZiBuZXcgbWFpbCBzZXJ2ZXIKIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjAgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuMCB1cGRhdGUKICAgICAgICBieQogICAgICAgIGVkaXRoCiAgICAgICAgOgogICAgICAgIFsxLjBdIAogICAgICAgICAgICBDbGVhbiBvZiBzdHlsZXNoZWV0cyBmb3IgbmV3IENvY29vbgogRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuMCBhZGQ8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS4wIGFkZAogICAgICAgIGJ5CiAgICAgICAgYW5kcmVhcwogICAgICAgIDoKICAgICAgICBbMS4wXSAKICAgICAgICAgICAgYWRkZWQgRm9ycmVzdCBsaWJyYXJpZXMKIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjAgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuMCB1cGRhdGUKICAgICAgICBieQogICAgICAgIGFuZHJlYXMKICAgICAgICA6CiAgICAgICAgWzEuMF0gCiAgICAgICAgICAgIGFkZGVkIEZvcnJlc3QgZW50cmllcwogRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuMCBhZGQ8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS4wIGFkZAogICAgICAgIGJ5CiAgICAgICAgYW5kcmVhcwogICAgICAgIDoKICAgICAgICBbMS4wXSAKICAgICAgICAgICAgYWRkZWQgRm9ycmVzdCBmaWxlcwogRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuMCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS4wIHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgZWRpdGgKICAgICAgICA6CiAgICAgICAgWzEuMF0gCiAgICAgICAgICAgIHRvIGJ1aWxkIHRoZSBDT0NPT05fSE9NRS9XRUItSU5GL3dlYi54bWwKIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjAgYWRkPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuMCBhZGQKICAgICAgICBieQogICAgICAgIGVkaXRoCiAgICAgICAgOgogICAgICAgIFsxLjBdIAogICAgICAgICAgICBEZWNsYXJlIHRoZSBRdWFydHpTY2hlZHVsZXJTZXJ2bGV0IHRvIGJlIGxvYWRlZCBpbiBDb2Nvb24gd2ViYXBwCiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS4wIHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjAgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBhbmRyZWFzCiAgICAgICAgOgogICAgICAgIFsxLjBdIAogICAgICAgICAgICB1c2luZyBHRVQgbWV0aG9kICh3b3JrYXJvdW5kIGZvciBDb2Nvb24gYnVnKQogRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuMCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS4wIHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgZ3JlZ29yCiAgICAgICAgOgogICAgICAgIFsxLjBdIAogICAgICAgICAgICAtIGNvbnNvbGlkYXRlIGxlbnlhIGNzcyBpbiBsZW55YSBzaXRlbWFwCi0gY29uc29saWRhdGUgbGVueWEgaW1hZ2VzIGluIGxlbnlhIHNpdGVtYXAKIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjAgYWRkPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuMCBhZGQKICAgICAgICBieQogICAgICAgIGVnbGkKICAgICAgICA6CiAgICAgICAgWzEuMF0gCiAgICAgICAgICAgIFRlc3QgT3Blbk9mZmljZSBkb2N1bWVudCB0byB0ZXN0IHRoZSBPcGVuT2ZmaWNlIHBpcGVsaW5lcwogRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuMCBhZGQ8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS4wIGFkZAogICAgICAgIGJ5CiAgICAgICAgZWdsaQogICAgICAgIDoKICAgICAgICBbMS4wXSAKICAgICAgICAgICAgR2VuZXJhbGl6ZWQgcGlwZWxpbmVzIGZvciBPcGVuT2ZmaWNlLgogRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuMCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS4wIHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgZWdsaQogICAgICAgIDoKICAgICAgICBbMS4wXSAKICAgICAgICAgICAgQWRkIHBpcGVsaW5lcyBmb3IgZGlzcGxheSBvZiBPcGVuT2ZmaWNlIGRvY3VtZW50cy4KIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjAgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuMCB1cGRhdGUKICAgICAgICBieQogICAgICAgIGdyZWdvcgogICAgICAgIDoKICAgICAgICBbMS4wXSAKICAgICAgICAgICAgcmVtb3ZlZCB0ZXN0IGxvZ2ljc2hlZXQuCnB1cmdlZCBkZWFkIGNvZGUgZnJvbSBtZW51cwogRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuMCBhZGQ8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS4wIGFkZAogICAgICAgIGJ5CiAgICAgICAgZmVsaXgKICAgICAgICA6CiAgICAgICAgWzEuMF0gCiAgICAgICAgICAgIENyZWF0ZWQgbmV3IHB1YmxpY2F0aW9uIGZvciB0aGUgbmV3IGRvY3VtZW50YXRpb24gKG9ubHkgVG9DIHNvIGZhcikKIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjAgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuMCB1cGRhdGUKICAgICAgICBieQogICAgICAgIGVnbGkKICAgICAgICA6CiAgICAgICAgWzEuMF0gCiAgICAgICAgICAgIENvbW1lbnRpbmcgb3V0IHRoZSBkcmF3OnRleHQtYm94IGVsZW1lbnRzIGJlY2F1c2UgdGhlIHBhcnNlciBzZWVtcyB0bwp0aGluayB0aGVyZSBpcyBhIHByb2JsZW0uCiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS4wIHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjAgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBncmVnb3IKICAgICAgICA6CiAgICAgICAgWzEuMF0gCiAgICAgICAgICAgIGZpcnN0IHN0ZXBzIHRvd2FyZHMgYSBwYWdlIGVudmVsb3BlLgoKLSBjZW50cmFsaXplZCBjb2xsZWN0aW9uIG9mIGh0dHAgaGVhZGVycwotIHJld29ya2VkIHhzcCB0byBtYWtlIHVzZSBvZiB0aGVzZSBzeXN0ZW0td2lkZSB2YXJpYWJsZXMKLSBhZGFwdGVkIHBhZ2UgZW52ZWxvcGUgZG9jdW1lbnRhdGlvbgogRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuMCBhZGQ8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS4wIGFkZAogICAgICAgIGJ5CiAgICAgICAgZWdsaQogICAgICAgIDoKICAgICAgICBbMS4wXSAKICAgICAgICAgICAgQWRkZWQgc3R5bGVzaGVldCB0byB0cmFuc2Zvcm0gT3Blbk9mZmljZSB0byBodG1sLgogRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuMCBhZGQ8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS4wIGFkZAogICAgICAgIGJ5CiAgICAgICAgZWdsaQogICAgICAgIDoKICAgICAgICBbMS4wXSAKICAgICAgICAgICAgQWRkZWQgT3Blbk9mZmljZSBEVERzIGFuZCBjYXRhbG9nLgogRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuMCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS4wIHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgZWRpdGgKICAgICAgICA6CiAgICAgICAgWzEuMF0gCiAgICAgICAgICAgIENsZWFuIG9mIHN0eWxlc2hlZXQKIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjAgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuMCB1cGRhdGUKICAgICAgICBieQogICAgICAgIGVkaXRoCiAgICAgICAgOgogICAgICAgIFsxLjBdIAogICAgICAgICAgICBDbGVhbiBvZiBzdHlsZXNoZWV0cyBmb3IgdGhlIGFydGljbGUKIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjAgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuMCB1cGRhdGUKICAgICAgICBieQogICAgICAgIGVkaXRoCiAgICAgICAgOgogICAgICAgIFsxLjBdIAogICAgICAgICAgICBOYW1lc3BhY2UgZm9yIExpdmUgU2VjdGlvbgogRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuMCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS4wIHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgZWRpdGgKICAgICAgICA6CiAgICAgICAgWzEuMF0gCiAgICAgICAgICAgIFNlY3Rpb24gYnV0dG9uCiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS4wIHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjAgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBncmVnb3IKICAgICAgICA6CiAgICAgICAgWzEuMF0gCiAgICAgICAgICAgIHVudXNlZCBpbXBvcnRzIHJlbW92ZWQKIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjAgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuMCB1cGRhdGUKICAgICAgICBieQogICAgICAgIG1pY2hpCiAgICAgICAgOgogICAgICAgIFsxLjBdIAogICAgICAgICAgICBuZXcgaW5kZXhlciBhcyBkZWZhdWx0CiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS4wIHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjAgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBtaWNoaQogICAgICAgIDoKICAgICAgICBbMS4wXSAKICAgICAgICAgICAgaW5jcmVtZW10YWwgaW5kZXhpbmcgaW1wcm92ZWQKIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjAgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuMCB1cGRhdGUKICAgICAgICBieQogICAgICAgIG1pY2hpCiAgICAgICAgOgogICAgICAgIFsxLjBdIAogICAgICAgICAgICBoYXJkY29kZWQgcGF0aHMgcmVtb3ZlZAogRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuMCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS4wIHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgbWljaGkKICAgICAgICA6CiAgICAgICAgWzEuMF0gCiAgICAgICAgICAgIEVkaXRoIGhhcyBmaXhlZCB0aGUgbmFtZXNwYWNlIHByb2JsZW0gd2l0aGluIFhTUHMKIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjAgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuMCB1cGRhdGUKICAgICAgICBieQogICAgICAgIG1pY2hpCiAgICAgICAgOgogICAgICAgIFsxLjBdIAogICAgICAgICAgICBkZWFkIGNvZGUgcmVtb3ZlZAogRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuMCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS4wIHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgbWljaGkKICAgICAgICA6CiAgICAgICAgWzEuMF0gCiAgICAgICAgICAgIGRlYnVnZ2luZyBpbmZvIGltcHJvdmVkCiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS4wIHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjAgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBncmVnb3IKICAgICAgICA6CiAgICAgICAgWzEuMF0gCiAgICAgICAgICAgIHJlbW92ZWQgdW51c2VkIGltcG9ydHMKIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjAgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuMCB1cGRhdGUKICAgICAgICBieQogICAgICAgIG1pY2hpCiAgICAgICAgOgogICAgICAgIFsxLjBdIAogICAgICAgICAgICBtZXRob2QgaHRtbCByZW1vdmVkCiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS4wIHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjAgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBtaWNoaQogICAgICAgIDoKICAgICAgICBbMS4wXSAKICAgICAgICAgICAgZGVmYXVsdCBodG1sIGZvciBuYXZpZ2F0aW9uCiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS4wIHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjAgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBlZ2xpCiAgICAgICAgOgogICAgICAgIFsxLjBdIAogICAgICAgICAgICBJdCBzZWVtcyB0aGF0IEkgKGFuZCBlY2xpcHNlKSB3YXMgdG8gZWFnZXIgd2hlbiBkZWxldGluZyB1bnVzZWQKY29kZS4gTWVyZ2VkIGluIHNvbWUgb2xkIHN0dWZmIGZyb20gdmVyc2lvbiAxLjYKIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjAgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuMCB1cGRhdGUKICAgICAgICBieQogICAgICAgIG1pY2hpCiAgICAgICAgOgogICAgICAgIFsxLjBdIAogICAgICAgICAgICBkZWFkIGNvZGUgcmVtb3ZlZAogRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuMCByZW1vdmU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS4wIHJlbW92ZQogICAgICAgIGJ5CiAgICAgICAgbWljaGkKICAgICAgICA6CiAgICAgICAgWzEuMF0gCiAgICAgICAgICAgIHJlcGxhY2VkIGJ5IENyYXdsZXJDb25maWd1cmF0aW9uCiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS4wIHJlbW92ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjAgcmVtb3ZlCiAgICAgICAgYnkKICAgICAgICBtaWNoaQogICAgICAgIDoKICAgICAgICBbMS4wXSAKICAgICAgICAgICAgcmVwbGFjZWQgYnkgSW5kZXhDb25maWd1cmF0aW9uCiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS4wIHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjAgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBtaWNoaQogICAgICAgIDoKICAgICAgICBbMS4wXSAKICAgICAgICAgICAgaW5kZXhlciBhZGRlZAogRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuMCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS4wIHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgbWljaGkKICAgICAgICA6CiAgICAgICAgWzEuMF0gCiAgICAgICAgICAgIEluZGV4RW52aXJvbm1lbnQgcmVwbGFjZWQgYnkgSW5kZXhDb25maWd1cmF0aW9uCiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS4wIHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjAgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBlZGl0aAogICAgICAgIDoKICAgICAgICBbMS4wXSAKICAgICAgICAgICAgQ2hhbmdlIHBhcmFtZXRlciBpZCB0byBJZAogRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuMCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS4wIHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgZmVsaXgKICAgICAgICA6CiAgICAgICAgWzEuMF0gCiAgICAgICAgICAgIEFkZGVkIHRlc3RzIHRvIHVuaXB1YmxpYwogRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuMCBhZGQ8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS4wIGFkZAogICAgICAgIGJ5CiAgICAgICAgbWljaGkKICAgICAgICA6CiAgICAgICAgWzEuMF0gCiAgICAgICAgICAgIHJvb3QgdGVtcGxhdGUgZm9yIExpdmUgYXJlYQogRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuMCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS4wIHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgbWljaGkKICAgICAgICA6CiAgICAgICAgWzEuMF0gCiAgICAgICAgICAgIGFkZGVkIFNlYXJjaCB0byB0ZXN0cwogRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuMCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS4wIHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgbWljaGkKICAgICAgICA6CiAgICAgICAgWzEuMF0gCiAgICAgICAgICAgIE9TQ09NIFNlYXJjaCBJbnRlcmZhY2UgcHJldGlmaWVkCiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS4wIHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjAgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBtaWNoaQogICAgICAgIDoKICAgICAgICBbMS4wXSAKICAgICAgICAgICAgdHJ5IEFuZHJlYXMgSW5kZXhlcgogRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuMCBhZGQ8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS4wIGFkZAogICAgICAgIGJ5CiAgICAgICAgbWljaGkKICAgICAgICA6CiAgICAgICAgWzEuMF0gCiAgICAgICAgICAgIHBhcnNpbmcgYW5kIGluZGV4aW5nIGdlbmVyYWxpemVkIGJ5IEFuZHJlYXMKIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjAgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuMCB1cGRhdGUKICAgICAgICBieQogICAgICAgIG1pY2hpCiAgICAgICAgOgogICAgICAgIFsxLjBdIAogICAgICAgICAgICBVc2FnZSBmaXhlZAogRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuMCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS4wIHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgbWljaGkKICAgICAgICA6CiAgICAgICAgWzEuMF0gCiAgICAgICAgICAgIHByb2JsZW0gcmVwb3J0ZWQgYnkgQWxleCBjb25jZXJuaW5nIG5vbi1leGlzdGluZyBwdWJzIGRpcmVjdG9yeQogRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuMCBhZGQ8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS4wIGFkZAogICAgICAgIGJ5CiAgICAgICAgbWljaGkKICAgICAgICA6CiAgICAgICAgWzEuMF0gCiAgICAgICAgICAgIHNpdGV0cmVlIGFuZCBuYXZpZ2F0aW9uIGZyYW1ld29yayBzdGFydGVkCiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS4wIHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjAgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBtaWNoaQogICAgICAgIDoKICAgICAgICBbMS4wXSAKICAgICAgICAgICAgaW5kZXhlciBtYWRlIGNvbmZpZ3VyYWJsZQogRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuMCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS4wIHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgbWljaGkKICAgICAgICA6CiAgICAgICAgWzEuMF0gCiAgICAgICAgICAgIHR5cG8gZml4ZWQgYW5kIGNvbmNlcHRzIHRvIG5hdmlnYXRpb24gYWRkZWQKIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjAgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuMCB1cGRhdGUKICAgICAgICBieQogICAgICAgIG1pY2hpCiAgICAgICAgOgogICAgICAgIFsxLjBdIAogICAgICAgICAgICBMZW55YSBkb2N1bWVudGF0aW9uIHdpbGwgYWx3YXlzIGJlIGNvcGllZCBhcyBhIHB1YmxpY2F0aW9uCiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS4wIHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjAgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBtaWNoaQogICAgICAgIDoKICAgICAgICBbMS4wXSAKICAgICAgICAgICAgcmVtb3ZlZCB0aGUgZHVtbXkgbGlua3MKIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjAgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuMCB1cGRhdGUKICAgICAgICBieQogICAgICAgIG1pY2hpCiAgICAgICAgOgogICAgICAgIFsxLjBdIAogICAgICAgICAgICByZWRpcmVjdHMgYWRkZWQgd2hpY2ggbmVlZCB0byBiZSBmaXhlZCB3aXRoaW4gY2VydGFpbiBwdWJsaWNhdGlvbnMKIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjAgYWRkPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuMCBhZGQKICAgICAgICBieQogICAgICAgIG1pY2hpCiAgICAgICAgOgogICAgICAgIFsxLjBdIAogICAgICAgICAgICBkZWZhdWx0IG1lbnViYXIgYWRkZWQKIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjAgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuMCB1cGRhdGUKICAgICAgICBieQogICAgICAgIG1pY2hpCiAgICAgICAgOgogICAgICAgIFsxLjBdIAogICAgICAgICAgICBwdWJfdXJsIGFkZGVkCiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS4wIHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjAgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBtaWNoaQogICAgICAgIDoKICAgICAgICBbMS4wXSAKICAgICAgICAgICAgcGF0aHMgc2V0IHRvIHJlbGF0aXZlCiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS4wIHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjAgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBlZ2xpCiAgICAgICAgOgogICAgICAgIFsxLjBdIAogICAgICAgICAgICBBZGRlZCB0aGUgZGVzY3JpcHRpb24gb24gaG93IHRvIGNvbmZpZ3VyZSBTbGlkZSB0byBlbmFibGUgYSBiYXNpYwpmdW5jdGlvbmFsaXR5LgogRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuMCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS4wIHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgbWljaGkKICAgICAgICA6CiAgICAgICAgWzEuMF0gCiAgICAgICAgICAgIENvbmZlcmVuY2VzIHJlcGxhY2VkIGJ5IENhbWJyaWRnZQogRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuMCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS4wIHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgbWljaGkKICAgICAgICA6CiAgICAgICAgWzEuMF0gCiAgICAgICAgICAgIGFudCBzZWFyY2ggdXNhZ2UKIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjAgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuMCB1cGRhdGUKICAgICAgICBieQogICAgICAgIG1pY2hpCiAgICAgICAgOgogICAgICAgIFsxLjBdIAogICAgICAgICAgICBpbmRleCBhbGwgT1NDT00KIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjAgYWRkPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuMCBhZGQKICAgICAgICBieQogICAgICAgIG1pY2hpCiAgICAgICAgOgogICAgICAgIFsxLjBdIAogICAgICAgICAgICBTZWFyY2ggZm9yIE9TQ09NIGZpbmlzaGVkCiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS4wIGFkZDwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjAgYWRkCiAgICAgICAgYnkKICAgICAgICBlZ2xpCiAgICAgICAgOgogICAgICAgIFsxLjBdIAogICAgICAgICAgICBBZGRlZCB0aGUgZGVzY3JpcHRpb24gaG93IHRvIGludGVncmF0ZSBPcGVuT2ZmaWNlIGFuZCBXZWJEQVYgaW50bwpMZW55YS4KIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjAgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuMCB1cGRhdGUKICAgICAgICBieQogICAgICAgIGVkaXRoCiAgICAgICAgOgogICAgICAgIFsxLjBdIAogICAgICAgICAgICBUYXNrLWlkIGZvciBwdWJsaXNoaW5nCiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS4wIHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjAgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBlZ2xpCiAgICAgICAgOgogICAgICAgIFsxLjBdIAogICAgICAgICAgICBBcnRpY2xlcyBhbmQgZG9zc2llcnMgbmVlZCB0byBiZSBwdWJsaXNoZWQgd2l0aCB0aGUKUmVzb3VyY2VGaWxlUHVibGlzaGVyIHNvIHRoYXQgdGhlaXIgcmVzb3VyY2VzIGFyZSBhbHNvIHB1Ymxpc2hlZC4KIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjAgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuMCB1cGRhdGUKICAgICAgICBieQogICAgICAgIGVnbGkKICAgICAgICA6CiAgICAgICAgWzEuMF0gCiAgICAgICAgICAgIEFkZGVkIGNvbmZpZyB2YWx1ZXMgZm9yIHJlc291cmNlcyBwdWJsaXNoaW5nLgogRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuMCBhZGQ8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS4wIGFkZAogICAgICAgIGJ5CiAgICAgICAgZWdsaQogICAgICAgIDoKICAgICAgICBbMS4wXSAKICAgICAgICAgICAgKiBUaGUgcHVibGlzaGluZyBwcm9jZXNzIG5vdyBvcHRpb25hbGx5IGFsc28gcHVibGlzaGVzIHJlc291cmNlcwogIChlLmcuIGltYWdlcykKCiogVG8gdGhpcyBlZmZlY3QgdGhlcmUgYXJlIHR3byBuZXcgY2xhc3NlcyBSZXNvdXJjZUZpbGVQdWJsaXNoZXIgYW5kCiAgUmVzb3VyY2VQdWJsaXNoaW5nRW52aXJvbm1lbnQgd2hpY2ggY2FuIGJlIHVzZWQgaW4gdGhlIHRhc2tzLnhjb25mCiAgYXMgYSBwdWJsaXNoZXIuCgoqIFJlc291cmNlRmlsZVB1Ymxpc2hlciBpcyBhIHN1YmxjbGFzcyBvZiBEZWZhdWx0RmlsZVB1Ymxpc2hlciB3aGljaAogIGFsc28gcHVibGlzaGVzIHJlc291cmNlcwoKKiBSZXNvdXJjZVB1Ymxpc2hpbmdFbnZpcm9ubWVudCBpcyBhIHN1YmNsYXNzIG9mIFB1Ymxpc2hpbmdFbnZpcm9ubWVudAogIHdoaWNoIHJlYWRzIGFkZGl0aW9uYWwgcGFyYW1ldGVycyAoJmx0O3Jlc291cmNlIGhyZWY9IiIvJmd0OykgZnJvbQogIHB1YmxpY2F0aW9uLnhjb25mLgoKKiBUaGUgcHVibGlzaGVyIGludGVyZmFjZSBoYXMgYmVlbiBleHRlbmRlZCB0byBhbGxvdyBmb3IgcGFzc2luZyBvZgogIHBhcmFtZXRlcnMgcmVsYXRlZCB0byByZXNvdXJjZSBwdWJsaXNoaW5nLgogRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuMCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS4wIHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgZWRpdGgKICAgICAgICA6CiAgICAgICAgWzEuMF0gCiAgICAgICAgICAgIGNsZWFuIG9mIHNpdGVtYXBzCiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS4wIHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjAgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBlZGl0aAogICAgICAgIDoKICAgICAgICBbMS4wXSAKICAgICAgICAgICAgY2xlYW4gb2Ygc2l0ZW1hcAogRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuMCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS4wIHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgZWRpdGgKICAgICAgICA6CiAgICAgICAgWzEuMF0gCiAgICAgICAgICAgIGNsZWFuIG9mIHRoZSBzaXRlbWFwCiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS4wIHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjAgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBlZGl0aAogICAgICAgIDoKICAgICAgICBbMS4wXSAKICAgICAgICAgICAgbm8gbW9yZSBtZXRob2Q9aHRtbCBmb3IgdGhlIG91dHB1dCBpbiB0aGUgeHNsdAogRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuMCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS4wIHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgZWRpdGgKICAgICAgICA6CiAgICAgICAgWzEuMF0gCiAgICAgICAgICAgIGNsZWFuIG9mIHRoZSBzaXRlbWFwCiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS4wIGFkZDwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjAgYWRkCiAgICAgICAgYnkKICAgICAgICBtaWNoaQogICAgICAgIDoKICAgICAgICBbMS4wXSAKICAgICAgICAgICAgZG9jcyBmaXhlZCBhbmQgdXBkYXRlZCB0byBGb3JyZXN0IHYxMQogRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuMCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS4wIHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgZ3JlZ29yCiAgICAgICAgOgogICAgICAgIFsxLjBdIAogICAgICAgICAgICBzZXQgdGFyZ2V0LnZtIHRvIDEuNAogRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuMCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS4wIHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgZ3JlZ29yCiAgICAgICAgOgogICAgICAgIFsxLjBdIAogICAgICAgICAgICBIT1NTQSEKCndlIGFyZSBhdCAwLjggbm93LgogRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuMCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS4wIHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgbWljaGkKICAgICAgICA6CiAgICAgICAgWzEuMF0gCiAgICAgICAgICAgIGNyYXdsIHZpYSBhbnQKIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjAgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuMCB1cGRhdGUKICAgICAgICBieQogICAgICAgIG1pY2hpCiAgICAgICAgOgogICAgICAgIFsxLjBdIAogICAgICAgICAgICBjcmVhdGUgbG9ncyBkaXJlY3RvcnkgZm9yIGxvZzRqCiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS4wIHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjAgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBtaWNoaQogICAgICAgIDoKICAgICAgICBbMS4wXSAKICAgICAgICAgICAgc2VhcmNoIHZpYSBhbnQKIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjAgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuMCB1cGRhdGUKICAgICAgICBieQogICAgICAgIG1pY2hpCiAgICAgICAgOgogICAgICAgIFsxLjBdIAogICAgICAgICAgICB1c2VzIGN1cnJlbnRseSBIVE1MUGFyc2VyCiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS4wIGFkZDwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjAgYWRkCiAgICAgICAgYnkKICAgICAgICBtaWNoaQogICAgICAgIDoKICAgICAgICBbMS4wXSAKICAgICAgICAgICAgU0FYIGJhc2VkIENvbnRlbnRIYW5kbGVyCiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS4wIHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjAgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBtaWNoaQogICAgICAgIDoKICAgICAgICBbMS4wXSAKICAgICAgICAgICAgRGVmYXVsdEhhbmRsZXIgYWRkZWQKIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjAgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuMCB1cGRhdGUKICAgICAgICBieQogICAgICAgIG1pY2hpCiAgICAgICAgOgogICAgICAgIFsxLjBdIAogICAgICAgICAgICBvbGQgUGFyc2VyIGRlZmluaXRpb24gcmVtb3ZlZAogRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuMCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS4wIHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgbWljaGkKICAgICAgICA6CiAgICAgICAgWzEuMF0gCiAgICAgICAgICAgIFBhcnNlciByZW5hbWVkIHRvIERPTVBhcnNlcgogRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuMCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS4wIHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgZWdsaQogICAgICAgIDoKICAgICAgICBbMS4wXSAKICAgICAgICAgICAgUmVtb3ZlZCBkZWFkIGNvZGUuCiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS4wIHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjAgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBlZGl0aAogICAgICAgIDoKICAgICAgICBbMS4wXSAKICAgICAgICAgICAgY2xlYW4gb2YgY3Jvc3MgaW5jbHVkZQogRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuMCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS4wIHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgZWRpdGgKICAgICAgICA6CiAgICAgICAgWzEuMF0gCiAgICAgICAgICAgIGNsZWFuIHRoZSBzaXRlbWFwCiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS4wIHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjAgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBtaWNoaQogICAgICAgIDoKICAgICAgICBbMS4wXSAKICAgICAgICAgICAgdGVzdCBjYW4gYmUgbWl4ZWQgY29udGVudAogRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuMCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS4wIHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgbWljaGkKICAgICAgICA6CiAgICAgICAgWzEuMF0gCiAgICAgICAgICAgIHhzbHRjIGFzIGRlZmF1bHQKIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjAgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuMCB1cGRhdGUKICAgICAgICBieQogICAgICAgIG1pY2hpCiAgICAgICAgOgogICAgICAgIFsxLjBdIAogICAgICAgICAgICBjcmF3bCBhbmQgaW5kZXggZml4ZWQKIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjAgYWRkPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuMCBhZGQKICAgICAgICBieQogICAgICAgIGdyZWdvcgogICAgICAgIDoKICAgICAgICBbMS4wXSAKICAgICAgICAgICAgc2FtcGxlIGRhdGEgZm9yIG5ldyBjbXMgbWF0cml4CiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS4wIHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjAgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBtaWNoaQogICAgICAgIDoKICAgICAgICBbMS4wXSAKICAgICAgICAgICAgU2VhcmNoIGluZGV4Lmh0bWwgZml4ZWQKIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjAgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuMCB1cGRhdGUKICAgICAgICBieQogICAgICAgIGZlbGl4CiAgICAgICAgOgogICAgICAgIFsxLjBdIAogICAgICAgICAgICBGaXhlZCBwYXNzd29yZAogRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuMCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS4wIHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgbWljaGkKICAgICAgICA6CiAgICAgICAgWzEuMF0gCiAgICAgICAgICAgIG1pZ3JhdGlvbiBwcm9ibGVtcyBmaXhlZAogRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuMCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS4wIHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgYW5kcmVhcwogICAgICAgIDoKICAgICAgICBbMS4wXSAKICAgICAgICAgICAgYWRkZWQgbmFtZXNwYWNlIGZvciB3ZWxjb21lIHBhZ2UKIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjAgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuMCB1cGRhdGUKICAgICAgICBieQogICAgICAgIG1pY2hpCiAgICAgICAgOgogICAgICAgIFsxLjBdIAogICAgICAgICAgICBYb3B1cyBmaXhlZCBmb3IgT1NDT00KIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjAgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuMCB1cGRhdGUKICAgICAgICBieQogICAgICAgIGFuZHJlYXMKICAgICAgICA6CiAgICAgICAgWzEuMF0gCiAgICAgICAgICAgIGFkZGVkIHhodG1sIG5hbWVzcGFjZQogRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuMCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS4wIHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgYW5kcmVhcwogICAgICAgIDoKICAgICAgICBbMS4wXSAKICAgICAgICAgICAgYWRkZWQgbmFtZXNwYWNlcwogRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuMCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS4wIHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgbWljaGkKICAgICAgICA6CiAgICAgICAgWzEuMF0gCiAgICAgICAgICAgIE1haWxpbmcgTGlzdHMgcGFnZSBmaXhlZAogRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuMCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS4wIHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgbWljaGkKICAgICAgICA6CiAgICAgICAgWzEuMF0gCiAgICAgICAgICAgIExlbnlhIFhJbmNsdWRlIFRyYW5zZm9ybWVyLCBiZWNhdXNlIHhwb2ludGVyIHdvcmtzIHdpdGggaXQKIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjAgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuMCB1cGRhdGUKICAgICAgICBieQogICAgICAgIG1pY2hpCiAgICAgICAgOgogICAgICAgIFsxLjBdIAogICAgICAgICAgICB4c2w6Y29tbWVudCBmb3IgY3NzIGZpeGVkCiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS4wIHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjAgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBtaWNoaQogICAgICAgIDoKICAgICAgICBbMS4wXSAKICAgICAgICAgICAgYWdncmVncmF0ZSB2aWV3IGFkZGVkCiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS4wIHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjAgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBtaWNoaQogICAgICAgIDoKICAgICAgICBbMS4wXSAKICAgICAgICAgICAgbGVueWEgbmFtZXNwYWNlIGZpeGVkCiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS4wIHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjAgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBtaWNoaQogICAgICAgIDoKICAgICAgICBbMS4wXSAKICAgICAgICAgICAgVGVzdCBsaXN0IGZvciBPU0NPTSBzdGFydGVkCiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS4wIHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjAgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBtaWNoaQogICAgICAgIDoKICAgICAgICBbMS4wXSAKICAgICAgICAgICAgeHNsOmNvbW1lbnQgZml4ZWQgZm9yIGNzcwogRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuMCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS4wIHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgZWdsaQogICAgICAgIDoKICAgICAgICBbMS4wXSAKICAgICAgICAgICAgKiBBZGRlZCBhIG5ldyBzZWN0aW9uIGZvciBjb25jZXB0IHBhcGVycyBzdWNoIGFzICJQYWdlIEVudmVsb3BlIiBhbmQKICAiU3RhbmRhcmQgVVJJIHNjaGVtZSIuCiogQWRkZWQgbGlua3MgdG8gdGhlIG5ldyBwYWdlcyAiUGFnZSBFbnZlbG9wZSIgYW5kICJTdGFuZGFyZCBVUkkKICBzY2hlbWUiLgoqIE1vdmVkICJTdHJhbmdlIEVmZmVjdHMiIHRvIHRoZSBlbmQgb2YgdGhlIHJlc3BlY3RpdmUgc2VjdGlvbi4KIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjAgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuMCB1cGRhdGUKICAgICAgICBieQogICAgICAgIGVnbGkKICAgICAgICA6CiAgICAgICAgWzEuMF0gCiAgICAgICAgICAgIEFkZGVkIG1vcmUgc2VjdGlvbnMgZm9yIHN0YXRpYyBVUklzIGZvciBpbnRlcm5hbCBwaXBlbGluZXMsIGUuZy4gZm9yCm1lbnVzLCBjc3Mgb3IgZWRpdG9yIHJlc291cmNlcy4KIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjAgYWRkPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuMCBhZGQKICAgICAgICBieQogICAgICAgIGVnbGkKICAgICAgICA6CiAgICAgICAgWzEuMF0gCiAgICAgICAgICAgIEFkZGVkIGNvbmNlcHQgcGFwZXJzIGZvciBwYWdlIGVudmVsb3BlIGFuZCBTdGFuZGFyZCBVUkkgc2NoZW1lLgogRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuMCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS4wIHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgZ3JlZ29yCiAgICAgICAgOgogICAgICAgIFsxLjBdIAogICAgICAgICAgICBiZWF1dGlmaWVkIHNjcmVlbnMKIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjAgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuMCB1cGRhdGUKICAgICAgICBieQogICAgICAgIGVnbGkKICAgICAgICA6CiAgICAgICAgWzEuMF0gCiAgICAgICAgICAgIFRoZSBjb2Nvb24gc291cmNlIGlzIG5vdyBsb2NhdGVkIGluIC4uL2NvY29vbi0yLjEKIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjAgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuMCB1cGRhdGUKICAgICAgICBieQogICAgICAgIG1pY2hpCiAgICAgICAgOgogICAgICAgIFsxLjBdIAogICAgICAgICAgICBUZXN0cyB0byBDb21wdXRlcndvcmxkIGFkZGVkCiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS4wIHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjAgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBlZ2xpCiAgICAgICAgOgogICAgICAgIFsxLjBdIAogICAgICAgICAgICBXaXRoIHRoZSBzcGxpdCBvZiB0aGUgQ29jb29uIGN2cyB0aGUgaW5zdHJ1Y3Rpb25zIGhvdyB0byBnZXQgdGhlCkNvY29vbiBzb3VyY2VzIGZyb20gQ1ZTIGhhdmUgY2hhbmdlZC4KIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjAgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuMCB1cGRhdGUKICAgICAgICBieQogICAgICAgIG1pY2hpCiAgICAgICAgOgogICAgICAgIFsxLjBdIAogICAgICAgICAgICB4aW5jbHVkZSB2ZXJzaW9uIGFkZGVkCiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS4wIHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjAgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBtaWNoaQogICAgICAgIDoKICAgICAgICBbMS4wXSAKICAgICAgICAgICAgZmlyc3Qgc3RlcCB0byBkb20gbGV2ZWwgMgogRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuMCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS4wIHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgbWljaGkKICAgICAgICA6CiAgICAgICAgWzEuMF0gCiAgICAgICAgICAgIEFic3RyYWN0RE9NVHJhbnNmb3JtZXIgcGF0Y2hlZAogRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuMCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS4wIHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgbWljaGkKICAgICAgICA6CiAgICAgICAgWzEuMF0gCiAgICAgICAgICAgIHhpbmNsdWRlIGxpbmtzIGZpeGVkCiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS4wIHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjAgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBtaWNoaQogICAgICAgIDoKICAgICAgICBbMS4wXSAKICAgICAgICAgICAgRE9NIHBhY2thZ2UgYWRkZWQKIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjAgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuMCB1cGRhdGUKICAgICAgICBieQogICAgICAgIG1pY2hpCiAgICAgICAgOgogICAgICAgIFsxLjBdIAogICAgICAgICAgICBkZWZhdWx0IGNvY29vbiB3ZWJhcHAgZGlyZWN0b3J5IHNwZWNpZmllZAogRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuMCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS4wIHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgbWljaGkKICAgICAgICA6CiAgICAgICAgWzEuMF0gCiAgICAgICAgICAgIHRvb2xzIGRpcmVjdG9yeSBtb3ZlZAogRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuMCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS4wIHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgbWljaGkKICAgICAgICA6CiAgICAgICAgWzEuMF0gCiAgICAgICAgICAgIG5ldyBjb2Nvb24gbW9kdWxlIG5hbWUgc3BlY2lmaWVkCiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS4wIHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjAgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBtaWNoaQogICAgICAgIDoKICAgICAgICBbMS4wXSAKICAgICAgICAgICAgc2l0ZW1hcCBmcm9tIG5ldyBjb2Nvb24gY29waWVkCiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS4wIHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjAgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBtaWNoaQogICAgICAgIDoKICAgICAgICBbMS4wXSAKICAgICAgICAgICAgcGF0aCB0byBnZW5lcmljIHNlYXJjaCB4c2x0IGZpeGVkCiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS4wIGFkZDwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjAgYWRkCiAgICAgICAgYnkKICAgICAgICBncmVnb3IKICAgICAgICA6CiAgICAgICAgWzEuMF0gCiAgICAgICAgICAgIGFkZGVkIHRhYnMgZm9yIGZvcnJlc3QKIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjAgYWRkPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuMCBhZGQKICAgICAgICBieQogICAgICAgIGdyZWdvcgogICAgICAgIDoKICAgICAgICBbMS4wXSAKICAgICAgICAgICAgc3RhcnQgdGhlIG1vdmUgdG8gZm9ycmVzdCBmb3IgZG9jdW1lbnRhdGlvbgogRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuMCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS4wIHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgbWljaGkKICAgICAgICA6CiAgICAgICAgWzEuMF0gCiAgICAgICAgICAgIEx1Y2VuZSByZWFkZGVkCiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS4wIHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjAgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBtaWNoaQogICAgICAgIDoKICAgICAgICBbMS4wXSAKICAgICAgICAgICAgcm9vdCBzaXRlbWFwIGZpeGVkCiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS4wIHJlbW92ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjAgcmVtb3ZlCiAgICAgICAgYnkKICAgICAgICBtaWNoaQogICAgICAgIDoKICAgICAgICBbMS4wXSAKICAgICAgICAgICAgcmVtb3ZlZCBmb3IgZ29vZAogRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuMCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS4wIHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgZ3JlZ29yCiAgICAgICAgOgogICAgICAgIFsxLjBdIAogICAgICAgICAgICBUSEUgUk9BRCBUTyBMRU5ZQQp+fn5+fn5+fn5+fn5+fn5+CgpXeW9uYSAtJmd0OyBMZW55YQpXWU9OQSAtJmd0OyBMRU5ZQQoKZnVuIGZ1biBmdW4sIGFuZCBub3RoaW5nIHRvIGRvLi4KIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjAgcmVtb3ZlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuMCByZW1vdmUKICAgICAgICBieQogICAgICAgIGFuZHJlYXMKICAgICAgICA6CiAgICAgICAgWzEuMF0gCiAgICAgICAgICAgIHJlbW92ZWQgbG9nNGoucHJvcGVydGllcwogRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuMCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS4wIHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgYW5kcmVhcwogICAgICAgIDoKICAgICAgICBbMS4wXSAKICAgICAgICAgICAgY3JlYXRpbmcgbG9nNGoucHJvcGVydGllcyBhdXRvbWF0aWNhbGx5CiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS4wIGFkZDwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjAgYWRkCiAgICAgICAgYnkKICAgICAgICBhbmRyZWFzCiAgICAgICAgOgogICAgICAgIFsxLjBdIAogICAgICAgICAgICByZW1vdmVkIHNpbmdsZSBxdW90ZXMgZnJvbSBwYXRoCiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS4wIHJlbW92ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjAgcmVtb3ZlCiAgICAgICAgYnkKICAgICAgICBhbmRyZWFzCiAgICAgICAgOgogICAgICAgIFsxLjBdIAogICAgICAgICAgICBuZXdlc3QgQ29jb29uIENWUyB2ZXJzaW9uIGludGVncmF0ZWQKIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjAgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuMCB1cGRhdGUKICAgICAgICBieQogICAgICAgIG1pY2hpCiAgICAgICAgOgogICAgICAgIFsxLjBdIAogICAgICAgICAgICBwYXRoIGZpeGVkCiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS4wIHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjAgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBtaWNoaQogICAgICAgIDoKICAgICAgICBbMS4wXSAKICAgICAgICAgICAgZG91YmxlIHNsYXNoZXMgcmVtb3ZlZAogRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuMCBhZGQ8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS4wIGFkZAogICAgICAgIGJ5CiAgICAgICAgbWljaGkKICAgICAgICA6CiAgICAgICAgWzEuMF0gCiAgICAgICAgICAgIGNvcGllZCBmcm9tIHd5b25hCiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS4wIHJlbW92ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjAgcmVtb3ZlCiAgICAgICAgYnkKICAgICAgICBtaWNoaQogICAgICAgIDoKICAgICAgICBbMS4wXSAKICAgICAgICAgICAgcmVuYW1lZCB0byBsZW55YQogRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuMCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS4wIHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgbWljaGkKICAgICAgICA6CiAgICAgICAgWzEuMF0gCiAgICAgICAgICAgIFNlYXJjaCBhbmQgUmVzdWx0IHNjcmVlbiBmaXhlZAogRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuMCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS4wIHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgbWljaGkKICAgICAgICA6CiAgICAgICAgWzEuMF0gCiAgICAgICAgICAgIHBhdGhzIGZvciBUYXNrTWFuYWdlciBhbmQgUHVibGlzaGluZ1Rhc2sgZml4ZWQKIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjAgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuMCB1cGRhdGUKICAgICAgICBieQogICAgICAgIGdyZWdvcgogICAgICAgIDoKICAgICAgICBbMS4wXSAKICAgICAgICAgICAgVEhFIFJPQUQgVE8gTEVOWUEKKysrKysrKysrKysrKysrKysrKwoKeWV0IG1vcmUgb3ZlcnNpZ2h0cy4gd2UgYXJlIGdldHRpbmcgdGhlcmUuLgogRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuMCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS4wIHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgZ3JlZ29yCiAgICAgICAgOgogICAgICAgIFsxLjBdIAogICAgICAgICAgICBUSEUgUk9BRCBUTyBMRU5ZQQorKysrKysrKysrKysrKysrKysrCgp2YXJpb3VzIGZpeGVzIGkgbWlzc2VkIGxhc3QgbmlnaHQuLgogRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuMCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS4wIHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgbWljaGkKICAgICAgICA6CiAgICAgICAgWzEuMF0gCiAgICAgICAgICAgIGRpcmVjdG9yeSBzdHJ1Y3R1cmUgZml4ZWQKIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjAgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuMCB1cGRhdGUKICAgICAgICBieQogICAgICAgIG1pY2hpCiAgICAgICAgOgogICAgICAgIFsxLjBdIAogICAgICAgICAgICBkaXJlY3Rvcnkgc3RydWN0dXJlIG1vZGlmaWVkCiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS4wIHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjAgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBncmVnb3IKICAgICAgICA6CiAgICAgICAgWzEuMF0gCiAgICAgICAgICAgIFRIRSBNT1ZFIFRPIExFTllBCj09PT09PT09PT09PT09PT09PT0KCnZhcmlvdXMgc21hbGxlciBjbGVhbnVwcy4uCiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS4wIHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjAgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBncmVnb3IKICAgICAgICA6CiAgICAgICAgWzEuMF0gCiAgICAgICAgICAgIFRIRSBNT1ZFIFRPIExFTllBCj09PT09PT09PT09PT09PT09PT0KCgpzdGVwIDE0KSBhY2Nlc3MtY29udHJvbC8gLSZndDsgYWMvCnN0ZXAgMTUpIGRvY3MvcHVibGljYXRpb24vIC0mZ3Q7IGNvbnRlbnQvCnN0ZXAgMTYpIC4uL3N0eWxlc2hlZXRzL2Ntcy9tZW51LyAtJmd0OyAuLi94c2x0L21lbnUvCnN0ZXAgMTcpIC4uLy4uL3N0eWxlc2hlZXRzL2Ntcy8gLSZndDsgLi4vLi4veHNsdC8Kc3RlcCAxOCkgcmVzb3VyY2VzL3B1YmxpY2F0aW9uLyAtJmd0OyByZXNvdXJjZXMvCiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS4wIHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjAgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBncmVnb3IKICAgICAgICA6CiAgICAgICAgWzEuMF0gCiAgICAgICAgICAgIFRIRSBNT1ZFIFRPIExFTllBCj09PT09PT09PT09PT09PT09PT0KCnN0ZXAgIDUpIHN0eWxlc2hlZXRzL3B1YmxpY2F0aW9uLyAtJmd0OyB4c2x0LwpzdGVwICA2KSBQYWdlLyAtJmd0OyAoZ29uZSkKc3RlcCAgNykgbGVueWEvc3R5bGVzaGVldHMvY21zLyAtJmd0OyBsZW55YS94c2x0LwpzdGVwICA4KSBsZW55YS9kb2NzL2Ntcy8gLSZndDsgbGVueWEvY29udGVudC8Kc3RlcCAgOSkgcmVzb3VyY2VzL2Ntcy9taXNjLyAtJmd0OyByZXNvdXJjZXMvbWlzYy8Kc3RlcCAxMCkgcmVzb3VyY2VzL3N0eWxlcy8gLSZndDsgcmVzb3VyY2VzL2Nzcy8Kc3RlcCAxMSkgd3lvbmEueG1hcCAtJmd0OyBsZW55YS54bWFwCnN0ZXAgMTIpIGJpdGZsdXhlZGl0b3IgLSZndDsgYml0Zmx1eApzdGVwIDEzKSByZXBsYWNlIEFMTCBvY2N1cmVuY2VzIG9mIHd5b25hIHdpdGggbGVueWEKIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjAgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuMCB1cGRhdGUKICAgICAgICBieQogICAgICAgIGdyZWdvcgogICAgICAgIDoKICAgICAgICBbMS4wXSAKICAgICAgICAgICAgVEhFIE1PVkUgVE8gTEVOWUEKPT09PT09PT09PT09PT09PT09PQoKc3RlcCA0KSByZW5hbWUgd3lvbmEvY21zLyB0byBsZW55YS8KIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjAgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuMCB1cGRhdGUKICAgICAgICBieQogICAgICAgIGdyZWdvcgogICAgICAgIDoKICAgICAgICBbMS4wXSAKICAgICAgICAgICAgVEhFIE1PVkUgVE8gTEVOWUEKPT09PT09PT09PT09PT09PT09PQoKc3RlcCAzKSByZW5hbWUgd3lvbmEtY21zIHRvIGxlbnlhCiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS4wIHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjAgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBncmVnb3IKICAgICAgICA6CiAgICAgICAgWzEuMF0gCiAgICAgICAgICAgIFRIRSBNT1ZFIFRPIExFTllBCj09PT09PT09PT09PT09PT09PT0KCnN0ZXAgMSkgcmVuYW1lIG9yZy53eW9uYSB0byBvcmcubGVueWEKc3RlcCAyKSBhZGp1c3QgYnVpbGQgZmlsZXMgZm9yIG5ldyBsZW55YSByb290CiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS4wIHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjAgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICAKICAgICAgICA6CiAgICAgICAgWzEuMF0gCiAgICAgICAgICAgIFRoaXMgY29tbWl0IHdhcyBtYW51ZmFjdHVyZWQgYnkgY3ZzMnN2biB0byBjcmVhdGUgdGFnCidiZWZvcmUtbGVueWEtcmVuYW1lJy4gRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuMCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS4wIHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgZ3JlZ29yCiAgICAgICAgOgogICAgICAgIFsxLjBdIAogICAgICAgICAgICByZW1vdmVkIGRlcHJlY2F0ZWQgZG9jCiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS4wIHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjAgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBncmVnb3IKICAgICAgICA6CiAgICAgICAgWzEuMF0gCiAgICAgICAgICAgIGRvY3VtZW50YXRpb24gaXMgbm93IGluIHZhbGlkIHhkb2MgZm9ybWF0LiBuZXh0IHN0ZXA6IGltcG9ydCBpbnRvIGZvcnJlc3QKIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjAgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuMCB1cGRhdGUKICAgICAgICBieQogICAgICAgIG1pY2hpCiAgICAgICAgOgogICAgICAgIFsxLjBdIAogICAgICAgICAgICBQdWJsaWNhdGlvbiBQYWdlIGFuZCBidWlsZCBpbXByb3ZlZAogRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuMCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS4wIHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgZWdsaQogICAgICAgIDoKICAgICAgICBbMS4wXSAKICAgICAgICAgICAgQWRkZWQgc29tZSBqYXZhIGRvY3MuCiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS4wIGFkZDwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjAgYWRkCiAgICAgICAgYnkKICAgICAgICBlZ2xpCiAgICAgICAgOgogICAgICAgIFsxLjBdIAogICAgICAgICAgICBBZGRlZCBjb2RpbmcgZ3VpZGVsaW5lcyBmb3IgdGhlIHd5b25hL2xlbnlhIHByb2plY3QuCiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS4wIHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjAgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBtaWNoaQogICAgICAgIDoKICAgICAgICBbMS4wXSAKICAgICAgICAgICAgUm9sbGJhY2sgZml4ZWQKIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjAgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuMCB1cGRhdGUKICAgICAgICBieQogICAgICAgIGVnbGkKICAgICAgICA6CiAgICAgICAgWzEuMF0gCiAgICAgICAgICAgIFJldm92ZWQgc29tZSBzcHVyaW91cyB3aGl0ZXNwYWNlLgogRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuMCBhZGQ8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS4wIGFkZAogICAgICAgIGJ5CiAgICAgICAgbWljaGkKICAgICAgICA6CiAgICAgICAgWzEuMF0gCiAgICAgICAgICAgIGFib3V0IHB1YmxpY2F0aW9ucyBmaW5pc2hlZAogRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuMCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS4wIHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgbWljaGkKICAgICAgICA6CiAgICAgICAgWzEuMF0gCiAgICAgICAgICAgIHJlZ2V4cCByZXBsYWNlZCBieSBjdXN0b20gdGFnCiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS4wIHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjAgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBtaWNoaQogICAgICAgIDoKICAgICAgICBbMS4wXSAKICAgICAgICAgICAgdHJhbnNsYXRlIHBhdGhzIHRvIG5hdGl2ZSBmb3JtYXQKIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjAgYWRkPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuMCBhZGQKICAgICAgICBieQogICAgICAgIG1pY2hpCiAgICAgICAgOgogICAgICAgIFsxLjBdIAogICAgICAgICAgICBwdWJsaWNhdGlvbnMgYXJlIHB1bGxlZCBpbnRvIHdlbGNvbWUgcGFnZQogRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuMCBhZGQ8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS4wIGFkZAogICAgICAgIGJ5CiAgICAgICAgbWljaGkKICAgICAgICA6CiAgICAgICAgWzEuMF0gCiAgICAgICAgICAgIEFudCBUYXNrIGZvciBDb3B5aW5nIEphdmEgQ2xhc3NlcyBmcm9tIHB1YmxpY2F0aW9ucyBpbnRvIGJ1aWxkIGRpcgogRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuMCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS4wIHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgZWdsaQogICAgICAgIDoKICAgICAgICBbMS4wXSAKICAgICAgICAgICAgSW5zdGVhZCBvZCBqdXN0IGNvbXBsYWluaW5nIEkganVzdCBmaXhlZCB0aGUgcHJvYmxlbSBJIHdhcyBjb21wbGFpbmluZwphYm91dDogZGVhZCBjb2RlLgogRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuMCByZW1vdmU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS4wIHJlbW92ZQogICAgICAgIGJ5CiAgICAgICAgZ3JlZ29yCiAgICAgICAgOgogICAgICAgIFsxLjBdIAogICAgICAgICAgICByZW1vdmVkIG9ic29sZXRlIGNvZGUKIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjAgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuMCB1cGRhdGUKICAgICAgICBieQogICAgICAgIG1pY2hpCiAgICAgICAgOgogICAgICAgIFsxLjBdIAogICAgICAgICAgICBjcmVhdG9ycyBmaXhlZAogRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuMCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS4wIHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgbWljaGkKICAgICAgICA6CiAgICAgICAgWzEuMF0gCiAgICAgICAgICAgIHBhcmFtZXRlciBwcm9qZWN0X3VybCBmaXhlZAogRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuMCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS4wIHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgZ3JlZ29yCiAgICAgICAgOgogICAgICAgIFsxLjBdIAogICAgICAgICAgICByZW1vdmVkIG9ic29sZXRlIFJDU2VydmxldCwgcmVtb3ZlZCBvYnNvbGV0ZSByYyBjb25maWd1cmF0aW9uIHBhcmFtZXRlcnMKIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjAgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuMCB1cGRhdGUKICAgICAgICBieQogICAgICAgIGVnbGkKICAgICAgICA6CiAgICAgICAgWzEuMF0gCiAgICAgICAgICAgIFJlbW92ZWQgbW9yZSBkZWFkIGNvZGUgKG9uIGFkdmljZSBmcm9tIEVjbGlwc2UpLgogRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuMCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS4wIHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgZWdsaQogICAgICAgIDoKICAgICAgICBbMS4wXSAKICAgICAgICAgICAgQ2hhbmdlZCB0aGUgaW50ZXJmYWNlIG9mIFBhcmVudENoaWxkQ3JlYXRvckludGVyZmFjZTogVGhlIGNyZWF0ZQptZXRob2Qgbm8gbG9uZ2VyIHRha2VzIGEgUGFyYW1ldGVyIGFyZ3VtZW50IGJ1dCBhIG1vcmUgZ2VuZXJhbApNYXAuIFRoaXMgd2F5IHRoZSBhY3Rpb24gY2FuIHBhc3MgaW4gYXJiaXRyYXJ5IE9iamVjdHMgdG8gdGhlIGNyZWF0ZQptZXRob2QgYW5kIHVsdGltYXRpdmVseSB0byB0aGUgdHJhbnNmb3JtWE1MIG1ldGhvZHMuCgpUaGUgYWN0aW9uIG5vdyBncmFicyBhbGwgcmVxdWVzdCwgc2l0ZW1hcCBhbmQgc2Vzc2lvbiBwYXJhbWV0ZXIgYW5kCmZpbGxzIHRoZW0gaW50byBhIG1hcCB3aGljaCBpcyB0aGVuIHBhc3NlZCBhbG9uZyB0byB0aGUgY3JlYXRlIG1ldGhvZAp3aGljaCBoYW5kcyBpdCBkb3duIHRvIHRoZSB0cmFuc2Zvcm0gbWV0aG9kLiBUaGlzIHdheSB0aGUgdHJhbnNmb3JtCm1ldGhvZCBjYW4gZmlsbCwgZS5nLiB0aGUgdXNlciAoZnJvbSB0aGUgc2Vzc2lvbikgaW50byBhIG5ldyBkb2N1bWVudC4KIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjAgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuMCB1cGRhdGUKICAgICAgICBieQogICAgICAgIG1pY2hpCiAgICAgICAgOgogICAgICAgIFsxLjBdIAogICAgICAgICAgICB0ZXN0IHBhcmFtZXRlcnMKIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjAgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuMCB1cGRhdGUKICAgICAgICBieQogICAgICAgIG1pY2hpCiAgICAgICAgOgogICAgICAgIFsxLjBdIAogICAgICAgICAgICBwdWJsaWNhdGlvbnMgb24gd2VsY29tZSBwYWdlCiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS4wIHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjAgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBlZ2xpCiAgICAgICAgOgogICAgICAgIFsxLjBdIAogICAgICAgICAgICBSZW1vdmVkIGRlYWQgY29kZS4KIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjAgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuMCB1cGRhdGUKICAgICAgICBieQogICAgICAgIGVnbGkKICAgICAgICA6CiAgICAgICAgWzEuMF0gCiAgICAgICAgICAgIEFkZGVkIHNvbWUgbW9yZSBkZWJ1ZyBzdGF0ZW1lbnRzLgogRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuMCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS4wIHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgZWdsaQogICAgICAgIDoKICAgICAgICBbMS4wXSAKICAgICAgICAgICAgQWRkZWQgYSBsb2dnZXIgdG8gdGhlIGFjdGlvbiBkZWZpbml0aW9uIG9mIFBhcmVudENoaWxkQ3JlYXRvckFjdGlvbi4KIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjAgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuMCB1cGRhdGUKICAgICAgICBieQogICAgICAgIGVnbGkKICAgICAgICA6CiAgICAgICAgWzEuMF0gCiAgICAgICAgICAgIFRoZSB0cmFuc2Zvcm1hdGlvbiBmb3IgdGhlIGNvbXB1dGVyd29ybGQgY29uc2lzdHMgb2Ygc2ltcGx5IGFkZGluZyB0aGUKdGl0bGUgdG8gdGhlIGFydGljbGUuIFRoZXJlIHdhcyBzb21lIHJlZmVyZW5jZSB0byBhIG5vbi1leGlzdGluZyB4cGF0aAp3aGljaCBtYWRlIHRoZSB0cmFuc2Zvcm1hdGlvbiBub3Qgd29yay4KRml4ZWQgbm93LgogRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuMCByZW1vdmU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS4wIHJlbW92ZQogICAgICAgIGJ5CiAgICAgICAgZWdsaQogICAgICAgIDoKICAgICAgICBbMS4wXSAKICAgICAgICAgICAgVGhpcyBmaWxlIGhhcyBiZWVuIG1vdmVkIHRvIHRoZSBqYXZhIGRpciBpbiB0aGUgZm9ydW0gcHVibGljYXRpb24uCiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS4wIHJlbW92ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjAgcmVtb3ZlCiAgICAgICAgYnkKICAgICAgICBncmVnb3IKICAgICAgICA6CiAgICAgICAgWzEuMF0gCiAgICAgICAgICAgIHJlbW92ZSBkZWFkIGNvZGUKIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjAgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuMCB1cGRhdGUKICAgICAgICBieQogICAgICAgIGVnbGkKICAgICAgICA6CiAgICAgICAgWzEuMF0gCiAgICAgICAgICAgIFRoZSB0cmFuc2Zvcm1YTUwgbWV0aG9kIHNpZ25hdHVyZSBoYXMgY2hhbmdlZDogV2UgcGFzcyB0aGUgcGFyYW1ldGVycwpmb3IgY2hpbGRpZCwgY2hpbGRuYW1lIGFuZCBjaGlsZHR5cGUgbm93IGRpcmVjdGx5IGFuZCBubyBsb25nZXIgdmlhCnRoZSBwYXJhbWV0ZXJzIGFyZ3VtZW50LgogRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuMCByZW1vdmU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS4wIHJlbW92ZQogICAgICAgIGJ5CiAgICAgICAgbWljaGkKICAgICAgICA6CiAgICAgICAgWzEuMF0gCiAgICAgICAgICAgIG1vdmVkIHRvIHB1YmxpY2F0aW9uCiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS4wIHJlbW92ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjAgcmVtb3ZlCiAgICAgICAgYnkKICAgICAgICBtaWNoaQogICAgICAgIDoKICAgICAgICBbMS4wXSAKICAgICAgICAgICAgTW92ZWQgdG8gcHVibGljYXRpb24KIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjAgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuMCB1cGRhdGUKICAgICAgICBieQogICAgICAgIG1pY2hpCiAgICAgICAgOgogICAgICAgIFsxLjBdIAogICAgICAgICAgICBGaWxlLnNlcGFyYXRvciBmaXhlZAogRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuMCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS4wIHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgbWljaGkKICAgICAgICA6CiAgICAgICAgWzEuMF0gCiAgICAgICAgICAgIGJyb2tlbiB4b3B1cyBmaXhlZAogRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuMCByZW1vdmU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS4wIHJlbW92ZQogICAgICAgIGJ5CiAgICAgICAgZWdsaQogICAgICAgIDoKICAgICAgICBbMS4wXSAKICAgICAgICAgICAgVGhlIGNyZWF0b3IgaGllcmFyY2h5IGhhcyBiZWVuIHJlZmFjdG9yZWQuCgoxLiBUaGVyZSBpcyBub3cgYW4gaW50ZXJmYWNlIChQYXJlbnRDaGlsZENyZWF0b3JJbnRlcmZhY2UpIHdoaWNoCiAgIGRlZmluZXMgaG93IGNyZWF0b3JzIGNhbiBiZSBpbnZva2VkLgoyLiBUaGVyZSBpcyBvbmUgZGVmYXVsdCBjbGFzcyAoRGVmYXVsdENyZWF0b3IpIHdoaWNoIGltcGxlbWVudHMgdGhlCiAgIGludGVyZmFjZSBhbmQgaW1wbGVtZW50cyB0aGUgc3RhbmRhcmQgYmVoYXZpb3VyLiBUaGlzIGNsYXNzCiAgIHJlcGxhY2VzIHRoZSBjbGFzc2VzIEFic3RyYWN0UGFyZW50Q2hpbGRDcmVhdG9yIGFuZAogICBEZWZhdWx0UGFyZW50Q2hpbGRDcmVhdG9yCiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS4wIHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjAgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBlZ2xpCiAgICAgICAgOgogICAgICAgIFsxLjBdIAogICAgICAgICAgICBUaGUgY3JlYXRvciBoaWVyYXJjaHkgaGFzIGJlZW4gcmVmYWN0b3JlZC4KClRoZXJlIGlzIG9uZSBkZWZhdWx0IGNsYXNzIChEZWZhdWx0Q3JlYXRvcikgd2hpY2ggaW1wbGVtZW50cyB0aGUKaW50ZXJmYWNlIGFuZCBpbXBsZW1lbnRzIHRoZSBzdGFuZGFyZCBiZWhhdmlvdXIuCiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS4wIHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjAgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBlZ2xpCiAgICAgICAgOgogICAgICAgIFsxLjBdIAogICAgICAgICAgICBUaGUgY3JlYXRvciBoaWVyYXJjaHkgaGFzIGJlZW4gcmVmYWN0b3JlZC4KCjEuIFRoZXJlIGlzIG5vdyBhbiBpbnRlcmZhY2UgKFBhcmVudENoaWxkQ3JlYXRvckludGVyZmFjZSkgd2hpY2gKICAgZGVmaW5lcyBob3cgY3JlYXRvcnMgY2FuIGJlIGludm9rZWQuCjIuIFRoZXJlIGlzIG9uZSBkZWZhdWx0IGNsYXNzIChEZWZhdWx0Q3JlYXRvcikgd2hpY2ggaW1wbGVtZW50cyB0aGUKICAgaW50ZXJmYWNlIGFuZCBpbXBsZW1lbnRzIHRoZSBzdGFuZGFyZCBiZWhhdmlvdXIuIEl0IHVzZXMgdGhlCiAgIHRlbXBsYXRlIHBhdHRlcm4sIGUuZy4gdGhlIGNyZWF0ZSBtZXRob2QgYmFzaWNhbGx5IGp1c3QgcmVhZHMgdGhlCiAgIHRlbXBsYXRlIGZpbGUgaW52b2tlcyBhbiAoZW1wdHkpIHRyYW5zZm9ybSBtZXRob2Qgb24gdGhlIERPTSBub2RlCiAgIGFuZCBmaW5hbGx5IHdyaXRlcyBpdCBiYWNrLiBTbyBzdWJjbGFzc2VzIGNhbiBzcGVjaWZ5IGEgdHJhbnNmb3JtCiAgIG1ldGhvZCBlLmcuIHJlcGxhY2UgdGhlIHRpdGxlIHdpdGggdGhlIGNoaWxkTmFtZSBldGMuCjMuIEFsbCBjbGFzc2VzIG1ha2UgdXNlIG9mIHRoaXMgYW5kIGFyZSB0aGVyZWZvcmUgbXVjaCBzbWFsbGVyLgo0LiBUaGUgY3JlYXRlIG1ldGhvZCBub3cgdGFrZXMgYW4gYWRkaXRpb25hbCBhcmd1bWVudCAncGFyYW1ldGVycycKICAgd2hpY2ggY2FuIGJlIHVzZWQgdG8gcGFzcyBhcmJpdHJhcnkgYXJndW1lbnRzLiBUaGlzIGFyZyBpcyBwYXNzZWQKICAgdG8gdGhlIHRyYW5zZm9ybSBtZXRob2Qgd2hlcmUgaXQgY291bGQgYmUgdXNlZCB0byByZWFkIHRoaW5ncyBsaWtlCiAgIHRoZSBjdXJyZW50IHVzZXIsIGV0Yy4KIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjAgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuMCB1cGRhdGUKICAgICAgICBieQogICAgICAgIGVnbGkKICAgICAgICA6CiAgICAgICAgWzEuMF0gCiAgICAgICAgICAgIFRoZSBjcmVhdG9yIGhpZXJhcmNoeSBoYXMgYmVlbiByZWZhY3RvcmVkLgoKMS4gVGhlcmUgaXMgbm93IGFuIGludGVyZmFjZSAoUGFyZW50Q2hpbGRDcmVhdG9ySW50ZXJmYWNlKSB3aGljaAogICBkZWZpbmVzIGhvdyBjcmVhdG9ycyBjYW4gYmUgaW52b2tlZC4KMi4gVGhlcmUgaXMgb25lIGRlZmF1bHQgY2xhc3MgKERlZmF1bHRDcmVhdG9yKSB3aGljaCBpbXBsZW1lbnRzIHRoZQogICBpbnRlcmZhY2UgYW5kIGltcGxlbWVudHMgdGhlIHN0YW5kYXJkIGJlaGF2aW91ci4gSXQgdXNlcyB0aGUKICAgdGVtcGxhdGUgcGF0dGVybiwgZS5nLiB0aGUgY3JlYXRlIG1ldGhvZCBiYXNpY2FsbHkganVzdCByZWFkcyB0aGUKICAgdGVtcGxhdGUgZmlsZSBpbnZva2VzIGFuIChlbXB0eSkgdHJhbnNmb3JtIG1ldGhvZCBvbiB0aGUgRE9NIG5vZGUKICAgYW5kIGZpbmFsbHkgd3JpdGVzIGl0IGJhY2suIFNvIHN1YmNsYXNzZXMgY2FuIHNwZWNpZnkgYSB0cmFuc2Zvcm0KICAgbWV0aG9kIGUuZy4gcmVwbGFjZSB0aGUgdGl0bGUgd2l0aCB0aGUgY2hpbGROYW1lIGV0Yy4KMy4gQWxsIGNsYXNzZXMgbWFrZSB1c2Ugb2YgdGhpcyBhbmQgYXJlIHRoZXJlZm9yZSBtdWNoIHNtYWxsZXIuCjQuIFRoZSBjcmVhdGUgbWV0aG9kIG5vdyB0YWtlcyBhbiBhZGRpdGlvbmFsIGFyZ3VtZW50ICdwYXJhbWV0ZXJzJwogICB3aGljaCBjYW4gYmUgdXNlZCB0byBwYXNzIGFyYml0cmFyeSBhcmd1bWVudHMuIFRoaXMgYXJnIGlzIHBhc3NlZAogICB0byB0aGUgdHJhbnNmb3JtIG1ldGhvZCB3aGVyZSBpdCBjb3VsZCBiZSB1c2VkIHRvIHJlYWQgdGhpbmdzIGxpa2UKICAgdGhlIGN1cnJlbnQgdXNlciwgZXRjLgogRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuMCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS4wIHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgbWljaGkKICAgICAgICA6CiAgICAgICAgWzEuMF0gCiAgICAgICAgICAgIGNyYXdsIGFuZCBpbmRleCBhcyBhbnQgdGFyZ2V0cywgYnV0IHByb2JsZW1zIHdpdGggamF4cAogRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuMCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS4wIHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgZWdsaQogICAgICAgIDoKICAgICAgICBbMS4wXSAKICAgICAgICAgICAgRml4ZWQgKEVjbGlwc2UpIHdhcm5pbmdzIGFib3V0IGFjY2Vzc2luZyBzdGF0aWMgbWVtYmVycyBpbiBhIGR5bmFtaWMKd2F5LgogRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuMCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS4wIHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgZ3JlZ29yCiAgICAgICAgOgogICAgICAgIFsxLjBdIAogICAgICAgICAgICBhbHdheXMgcmVtb3ZlIGxlYWRpbmcgd2hpdGVzcGFjZSB0byBtYWtlIHRoZSB1cmxzIGNvcnJlY3QuIHRoaXMgZml4ZXMgdGhlIGNhc2Ugd2hlcmUgcmV0dXJucyBpbiB0aGUgbWVudSB4c3Agd291bGQgbGVhZCB0byBicm9rZW4gdXJscyBpbiB0aGUgb3V0cHV0LgoKYWxzbyBmaXhlZCBzb21lIG1vcmUgZXRoeiByZWZlcmVuY2VzLgogRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuMCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS4wIHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgZWdsaQogICAgICAgIDoKICAgICAgICBbMS4wXSAKICAgICAgICAgICAgRml4ZWQgKEVjbGlwc2UpIHdhcm5pbmdzIGFib3V0IGFjY2Vzc2luZyBzdGF0aWMgbWVtYmVycyBpbiBhIGR5bmFtaWMKd2F5LgogRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuMCBhZGQ8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS4wIGFkZAogICAgICAgIGJ5CiAgICAgICAgbWljaGkKICAgICAgICA6CiAgICAgICAgWzEuMF0gCiAgICAgICAgICAgIE9TQ09NIGNyZWF0b3JzIG1vdmVkIHRvIE9TQ09NIHB1YmxpY2F0aW9uCiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS4wIHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjAgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBtaWNoaQogICAgICAgIDoKICAgICAgICBbMS4wXSAKICAgICAgICAgICAgZGlyZWN0b3J5IHJlbmFtZWQKIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjAgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuMCB1cGRhdGUKICAgICAgICBieQogICAgICAgIG1pY2hpCiAgICAgICAgOgogICAgICAgIFsxLjBdIAogICAgICAgICAgICBwdWJsaWNhdGlvbnMgbWVyZ2VkIHdpdGggTGVueWEgc291cmNlIHRyZWUgZHVyaW5nIGJ1aWxkIHByb2Nlc3MKIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjAgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuMCB1cGRhdGUKICAgICAgICBieQogICAgICAgIGdyZWdvcgogICAgICAgIDoKICAgICAgICBbMS4wXSAKICAgICAgICAgICAgbWFzc2l2ZSBwYXRoIHJlZmFjdG9yaW5nLiBhbGwgcGF0aHMgaW4gdGhlIHJvb3QgZG9jcyBhbmQgc3R5bGVzaGVldHMgc2hvdWxkIG5vdyBmb2xsbG93IHRoZQpqYXZhIHBhY2thZ2UgaGllcmFyY2h5IG5hbWluZyBzdGFuZGFyZHMuCgp0aGlzIGlzIGEgYmlnIG9uZSwgZXhwZWN0IHNvbWUgYnJlYWthZ2UuLgogRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuMCBhZGQ8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS4wIGFkZAogICAgICAgIGJ5CiAgICAgICAgZ3JlZ29yCiAgICAgICAgOgogICAgICAgIFsxLjBdIAogICAgICAgICAgICBwYXRoIHJlZmFjdG9yaW5nCiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS4wIGFkZDwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjAgYWRkCiAgICAgICAgYnkKICAgICAgICBncmVnb3IKICAgICAgICA6CiAgICAgICAgWzEuMF0gCiAgICAgICAgICAgIGV2ZW4gbW9yZSBzdHlsZXNoZWV0IHJlZmFjdG9yaW5nCiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS4wIGFkZDwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjAgYWRkCiAgICAgICAgYnkKICAgICAgICBncmVnb3IKICAgICAgICA6CiAgICAgICAgWzEuMF0gCiAgICAgICAgICAgIGNvbnRpbnVlIHJlZmFjdG9yaW5nIG9mIHN0eWxlc2hlZXRzCiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS4wIGFkZDwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjAgYWRkCiAgICAgICAgYnkKICAgICAgICBncmVnb3IKICAgICAgICA6CiAgICAgICAgWzEuMF0gCiAgICAgICAgICAgIGNvbnRpbnVlIHRvIHJlZmFjdG9yIHRvIG1hdGNoIGphdmEgcGFja2FnZSBoaWVyYXJjaHkKIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjAgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuMCB1cGRhdGUKICAgICAgICBieQogICAgICAgIG1pY2hpCiAgICAgICAgOgogICAgICAgIFsxLjBdIAogICAgICAgICAgICBwdWJzLmRpciBwYXJhbWV0ZXIgYWRkZWQKIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjAgYWRkPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuMCBhZGQKICAgICAgICBieQogICAgICAgIGdyZWdvcgogICAgICAgIDoKICAgICAgICBbMS4wXSAKICAgICAgICAgICAgY29udGludWVkIHRvIHJlZmFjdG9yIGRvY3MgdG8gaGF2ZSB0aGUgamF2YSBwYWNrYWdlIGhpZXJhcmNoeQogRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuMCBhZGQ8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS4wIGFkZAogICAgICAgIGJ5CiAgICAgICAgZ3JlZ29yCiAgICAgICAgOgogICAgICAgIFsxLjBdIAogICAgICAgICAgICByZWZhY3RvcmVkIGxvZ2luIHhzcCB0byBtYXRjaCBqYXZhIHBhY2thZ2UgaGllcmFyY2h5LgoKdGhpcyBpcyBhIGNhbmRpZGF0ZSB0byBiZSBtb3ZlZCBvdXQgb2YgYSBwdWJsaWNhdGlvbnMgc2l0ZW1hcCB0byBiZSBoYW5kbGVkIGdsb2JhbGx5LgogRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuMCBhZGQ8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS4wIGFkZAogICAgICAgIGJ5CiAgICAgICAgZ3JlZ29yCiAgICAgICAgOgogICAgICAgIFsxLjBdIAogICAgICAgICAgICBzdGFydCByZWZhY3RvcmluZyBnbG9iYWwgc3R5bGVzaGVldHMgKG1ha2UgdGhlbSByZWZsZWN0IHRoZSBqYXZhIHBhY2thZ2VzKQogRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuMCBhZGQ8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS4wIGFkZAogICAgICAgIGJ5CiAgICAgICAgZ3JlZ29yCiAgICAgICAgOgogICAgICAgIFsxLjBdIAogICAgICAgICAgICBhZGRlZCBwdWJsaWNhdGlvbiBtZXRhZGF0YQogRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuMCBhZGQ8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS4wIGFkZAogICAgICAgIGJ5CiAgICAgICAgZ3JlZ29yCiAgICAgICAgOgogICAgICAgIFsxLjBdIAogICAgICAgICAgICBzdGFydCB0byBpbXBsZW1lbnQgcGVyLXB1YmxpY2F0aW9uIHBhY2thZ2luZyBpbmZvcm1hdGlvbgogRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuMCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS4wIHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgbWljaGkKICAgICAgICA6CiAgICAgICAgWzEuMF0gCiAgICAgICAgICAgIGphdmFkb2MgbW92ZWQgdG8gZG9jcyBkaXJlY3RvcnkKIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjAgcmVtb3ZlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuMCByZW1vdmUKICAgICAgICBieQogICAgICAgIGdyZWdvcgogICAgICAgIDoKICAgICAgICBbMS4wXSAKICAgICAgICAgICAgcmVtb3ZlZCBkdXBsaWNhdGUgaW1hZ2VzCgpmaXhlZCBoYXJjb2RlZCBsaW5rCiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS4wIHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjAgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBncmVnb3IKICAgICAgICA6CiAgICAgICAgWzEuMF0gCiAgICAgICAgICAgIGZ1cnRoZXIgaW5yb2FkcyBvbiB0aGUgd3lvbmEgZGUtdWdsaWZpY2F0aW9uIGZyb250LgogRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuMCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS4wIHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgZ3JlZ29yCiAgICAgICAgOgogICAgICAgIFsxLjBdIAogICAgICAgICAgICBkb2N1bWVudGF0aW9uIG5vIGxvbmdlciBpcyBhIHNwZWNpYWwgcHVibGljYXRpb24uCgpyZW5hbWluZyBmcm9tIHd5b25hLWNtcy1kb2NzIHRvIGRvY3MgYWxsb3dzIHRvIHNpbXBsaWZ5IHRoZSByb290IHNpdGVtYXAuCiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS4wIGFkZDwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjAgYWRkCiAgICAgICAgYnkKICAgICAgICBncmVnb3IKICAgICAgICA6CiAgICAgICAgWzEuMF0gCiAgICAgICAgICAgIGRvY3VtZW50YXRpb24gbm8gbG9uZ2VyIGlzIGEgc3BlY2lhbCBwdWJsaWNhdGlvbi4KCnJlbmFtaW5nIGZyb20gd3lvbmEtY21zLWRvY3MgdG8gZG9jcyBhbGxvd3MgdG8gc2ltcGxpZnkgdGhlIHJvb3Qgc2l0ZW1hcC4KIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjAgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuMCB1cGRhdGUKICAgICAgICBieQogICAgICAgIGdyZWdvcgogICAgICAgIDoKICAgICAgICBbMS4wXSAKICAgICAgICAgICAgc3RhcnRlZCB0aGUgcHVzaCBmb3IgcHJldHRpZXIgR1VJcyBieSBhZGRpbmcgQ1NTIHRvIG91ciBzY3JlZW5zLgogRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuMCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS4wIHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgZ3JlZ29yCiAgICAgICAgOgogICAgICAgIFsxLjBdIAogICAgICAgICAgICBtb3ZlZCB3eW9uYSBtZW51IG91dCBvZiBldGh6IHB1YmxpY2F0aW9uCgppdCBub3cgcmVzaWRlcyB1bmRlciAvd3lvbmEtY21zL3d5b25hL21lbnUvICh3aGVyZSBpdCBiZWxvbmdzKQogRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuMCBhZGQ8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS4wIGFkZAogICAgICAgIGJ5CiAgICAgICAgZ3JlZ29yCiAgICAgICAgOgogICAgICAgIFsxLjBdIAogICAgICAgICAgICBzdGFydCBtb3Zpbmcgd3lvbmEgbWVudSBvdXQgb2YgZXRoeiBwdWJsaWNhdGlvbgogRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuMCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS4wIHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgZ3JlZ29yCiAgICAgICAgOgogICAgICAgIFsxLjBdIAogICAgICAgICAgICByZW1vdmVkIHVudXNlZCBpbXBvcnQgc3RhdGVtZW50cy4KIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjAgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuMCB1cGRhdGUKICAgICAgICBieQogICAgICAgIGVnbGkKICAgICAgICA6CiAgICAgICAgWzEuMF0gCiAgICAgICAgICAgIFJlbW92ZWQgZGVhZCBjb2RlIG9yIG1hcmtlZCBpdCB3aXRoIGEgRklYTUU6CiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS4wIHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjAgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBtaWNoaQogICAgICAgIDoKICAgICAgICBbMS4wXSAKICAgICAgICAgICAgdHh0IHZlcnNpb24gYWRkZWQKIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjAgYWRkPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuMCBhZGQKICAgICAgICBieQogICAgICAgIG1pY2hpCiAgICAgICAgOgogICAgICAgIFsxLjBdIAogICAgICAgICAgICBNdWx0aXBsZSBJbmRpY2VzIGVuYWJsZWQKIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjAgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuMCB1cGRhdGUKICAgICAgICBieQogICAgICAgIGVnbGkKICAgICAgICA6CiAgICAgICAgWzEuMF0gCiAgICAgICAgICAgIFJlbW92ZWQgZGVhZCBjb2RlIGFuZCBtYXJrZWQgaXQgd2l0aCBhIGZpeG1lLgogRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuMCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS4wIHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgZWdsaQogICAgICAgIDoKICAgICAgICBbMS4wXSAKICAgICAgICAgICAgUmVtb3ZlZCByZWFkIGNvZGUKUmVlbmFibGUgYSBtYXBwaW5nIGZvciBhYWN1dGUgd2hpY2ggd2FzIGNvbW1lbnRlZCBvdXQgZm9yIHVua25vd24KcmVhc29ucy4KIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjAgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuMCB1cGRhdGUKICAgICAgICBieQogICAgICAgIGVnbGkKICAgICAgICA6CiAgICAgICAgWzEuMF0gCiAgICAgICAgICAgIEVpdGhlciByZW1vdmVkIGRlYWQgY29kZSBvciB0YWdnZWQgaXQgd2l0aCBhIEZJWE1FOgogRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuMCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS4wIHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgZWdsaQogICAgICAgIDoKICAgICAgICBbMS4wXSAKICAgICAgICAgICAgUmVtb3ZlZCB2ZXJ5IGRlYWQgY29kZS4KIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjAgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuMCB1cGRhdGUKICAgICAgICBieQogICAgICAgIG1pY2hpCiAgICAgICAgOgogICAgICAgIFsxLjBdIAogICAgICAgICAgICBNdWx0aXBsZSBpbmRpY2VzCiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS4wIHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjAgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBlZ2xpCiAgICAgICAgOgogICAgICAgIFsxLjBdIAogICAgICAgICAgICBSZW1vdmVkIGFuIGltcG9ydCBzdGF0ZW1lbnQgb2Ygd3lvbmEudXRpbHMuU3RhY2sgc2luY2UgaXQgZG9lc24ndCBldmVuCnVzZSBpdC4KIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjAgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuMCB1cGRhdGUKICAgICAgICBieQogICAgICAgIGVnbGkKICAgICAgICA6CiAgICAgICAgWzEuMF0gCiAgICAgICAgICAgIFJlbW92ZWQgZGVhZCBjb2RlLgogRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuMCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS4wIHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgZWdsaQogICAgICAgIDoKICAgICAgICBbMS4wXSAKICAgICAgICAgICAgUmVtb3ZlZCBkZWFkIGNvZGUuCiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS4wIHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjAgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBlZ2xpCiAgICAgICAgOgogICAgICAgIFsxLjBdIAogICAgICAgICAgICBSZW1vdmVkIGRlYWQgY29kZS4KIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjAgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuMCB1cGRhdGUKICAgICAgICBieQogICAgICAgIGVnbGkKICAgICAgICA6CiAgICAgICAgWzEuMF0gCiAgICAgICAgICAgIFJlbW92ZWQgZGVhZCBjb2RlLgogRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuMCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS4wIHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgZWdsaQogICAgICAgIDoKICAgICAgICBbMS4wXSAKICAgICAgICAgICAgUmVtb3ZlZCBkZWFkIGNvZGUuCiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS4wIHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjAgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBlZ2xpCiAgICAgICAgOgogICAgICAgIFsxLjBdIAogICAgICAgICAgICBSZW1vdmVkIGRlYWQgY29kZS4KIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjAgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuMCB1cGRhdGUKICAgICAgICBieQogICAgICAgIG1pY2hpCiAgICAgICAgOgogICAgICAgIFsxLjBdIAogICAgICAgICAgICBTdGVwIFR3byBPdmVydmlldyBhZGRlZAogRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuMCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS4wIHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgbWljaGkKICAgICAgICA6CiAgICAgICAgWzEuMF0gCiAgICAgICAgICAgIFNlYXJjaCBpbXByb3ZlZAogRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuMCBhZGQ8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS4wIGFkZAogICAgICAgIGJ5CiAgICAgICAgbWljaGkKICAgICAgICA6CiAgICAgICAgWzEuMF0gCiAgICAgICAgICAgIEx1Y2VuZSBUZXN0IEZpbGVzIGFkZGVkCiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS4wIHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjAgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBtaWNoaQogICAgICAgIDoKICAgICAgICBbMS4wXSAKICAgICAgICAgICAgc2VhcmNoIGN1c3RvbWl6ZWQgZm9yIE9TQ09NCiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS4wIHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjAgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBtaWNoaQogICAgICAgIDoKICAgICAgICBbMS4wXSAKICAgICAgICAgICAgbHVjZW5lIGluZGV4IHRhZyBpbXBsZW1lbnRlZAogRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuMCBhZGQ8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS4wIGFkZAogICAgICAgIGJ5CiAgICAgICAgbWljaGkKICAgICAgICA6CiAgICAgICAgWzEuMF0gCiAgICAgICAgICAgIFNlYXJjaCBjdXN0b21pemVkIGZvciBPU0NPTQogRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuMCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS4wIHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgYW5kcmVhcwogICAgICAgIDoKICAgICAgICBbMS4wXSAKICAgICAgICAgICAgbm90IHVzaW5nIHF1b3RlZCBwcmludGFibGUgZW5jb2RpbmcgKFNNVFBNZXNzYWdlIGluc3RlYWQgb2YgTWltZU1lc3NhZ2UpCiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS4wIHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjAgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBhbmRyZWFzCiAgICAgICAgOgogICAgICAgIFsxLjBdIAogICAgICAgICAgICBhZGRlZCB0YXJnZXQgImRlcHJlY2F0aW9uIgogRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuMCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS4wIHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgYW5kcmVhcwogICAgICAgIDoKICAgICAgICBbMS4wXSAKICAgICAgICAgICAgcmVtb3ZlZCBkZXByZWNhdGVkIEFQSSB1c2FnZQogRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuMCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS4wIHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgYW5kcmVhcwogICAgICAgIDoKICAgICAgICBbMS4wXSAKICAgICAgICAgICAgcmVtb3ZlZCBkZXByZWNhdGVkIEFQSSB1c2FnZQogRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuMCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS4wIHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgYW5kcmVhcwogICAgICAgIDoKICAgICAgICBbMS4wXSAKICAgICAgICAgICAgcmVtb3ZlZCBkZXByZWNhdGVkIEFQSSB1c2FnZXMKIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjAgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuMCB1cGRhdGUKICAgICAgICBieQogICAgICAgIGFuZHJlYXMKICAgICAgICA6CiAgICAgICAgWzEuMF0gCiAgICAgICAgICAgIGNvbXBhdGliaWxpdHkgdG8gSkRLIDEuMyByZXN0b3JlZAogRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuMCBhZGQ8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS4wIGFkZAogICAgICAgIGJ5CiAgICAgICAgYW5kcmVhcwogICAgICAgIDoKICAgICAgICBbMS4wXSAKICAgICAgICAgICAgaW5pdGlhbCB2ZXJzaW9uCiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS4wIHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjAgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBhbmRyZWFzCiAgICAgICAgOgogICAgICAgIFsxLjBdIAogICAgICAgICAgICAtIHJlbW92ZWQgdW51c2VkIGNvZGUKLSBhZGRlZCBleGNlcHRpb25zIGZvciB0YXNrcwogRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuMCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS4wIHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgYW5kcmVhcwogICAgICAgIDoKICAgICAgICBbMS4wXSAKICAgICAgICAgICAgZ2V0IHB1YmxpY2F0aW9uIElEIGZyb20gc2Vzc2lvbiBhZ2FpbgogRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuMCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS4wIHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgYW5kcmVhcwogICAgICAgIDoKICAgICAgICBbMS4wXSAKICAgICAgICAgICAgZ2V0U25hcHNob3QoKSBidWdmaXgKIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjAgcmVtb3ZlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuMCByZW1vdmUKICAgICAgICBieQogICAgICAgIGFuZHJlYXMKICAgICAgICA6CiAgICAgICAgWzEuMF0gCiAgICAgICAgICAgIHJlbW92ZWQgRE9NNGogZnJvbSBTY2hlZHVsZXIKYWRkZWQgc29tZSBtZXRob2RzIHRvIFhNTCBoZWxwZXJzCiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS4wIGFkZDwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjAgYWRkCiAgICAgICAgYnkKICAgICAgICBtaWNoaWNtcwogICAgICAgIDoKICAgICAgICBbMS4wXSAKICAgICAgICAgICAgRE9NNEogcmVwbGFjZWQKIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjAgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuMCB1cGRhdGUKICAgICAgICBieQogICAgICAgIGVnbGl3eW9uYQogICAgICAgIDoKICAgICAgICBbMS4wXSAKICAgICAgICAgICAgUmVtb3ZlZCBsb2c0aiBkZXBlbmRlbmN5LgogRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuMCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS4wIHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgZWdsaXd5b25hCiAgICAgICAgOgogICAgICAgIFsxLjBdIAogICAgICAgICAgICBSZW1vdmVkIGxvZzRqIGRlcGVuZGVuY3kuCiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS4wIHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjAgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBlZ2xpd3lvbmEKICAgICAgICA6CiAgICAgICAgWzEuMF0gCiAgICAgICAgICAgIFRoZSBzaWduYXR1cmUgb2YgdGhlIGNyZWF0ZSBtZXRob2Qgb2YgdGhlIHBhcmVudCBjbGFzcyBoYWQKY2hhbmdlZC4gVGhhdCdzIHdoeSBjbGllbnQncyB3b3VsZCBpbnZva2UgdGhlIGNyZWF0ZSBvZiB0aGUgcGFyZW50CmNsYXNzIHdoaWNoIGRvZXMgbm90aGluZy4gQWRhcHRlZCB0aGUgY3JlYXRlIG1ldGhvZCB0byBtYXRjaCB0aGUKc2lnbmF0dXJlLgogRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuMCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS4wIHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgYWgKICAgICAgICA6CiAgICAgICAgWzEuMF0gCiAgICAgICAgICAgIG1ldGhvZCBhZGRlZAogRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuMCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS4wIHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgYWgKICAgICAgICA6CiAgICAgICAgWzEuMF0gCiAgICAgICAgICAgIGNvZGUgZm9ybWF0dGVkCiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS4wIHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjAgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBtaWNoaWNtcwogICAgICAgIDoKICAgICAgICBbMS4wXSAKICAgICAgICAgICAgVVJJIHJlcGxhY2VkIGJ5IFVSTAogRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuMCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS4wIHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgbWljaGljbXMKICAgICAgICA6CiAgICAgICAgWzEuMF0gCiAgICAgICAgICAgIGxvZyBsb2NhdGlvbiBhZGRlZAogRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuMCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS4wIHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgbWljaGljbXMKICAgICAgICA6CiAgICAgICAgWzEuMF0gCiAgICAgICAgICAgIGZpbGVwYXRoIGJ1ZyBob3BlZnVsbHkgZml4ZWQKIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjAgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuMCB1cGRhdGUKICAgICAgICBieQogICAgICAgIGFoCiAgICAgICAgOgogICAgICAgIFsxLjBdIAogICAgICAgICAgICBhZGRlZCBtZXRob2QgYW5kIGphdmFkb2MKIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjAgYWRkPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuMCBhZGQKICAgICAgICBieQogICAgICAgIGFoCiAgICAgICAgOgogICAgICAgIFsxLjBdIAogICAgICAgICAgICBpbml0aWFsIHZlcnNpb24KIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjAgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuMCB1cGRhdGUKICAgICAgICBieQogICAgICAgIGFoCiAgICAgICAgOgogICAgICAgIFsxLjBdIAogICAgICAgICAgICBqYXZhIGNvZGUgcmVmb3JtYXR0ZWQKIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjAgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuMCB1cGRhdGUKICAgICAgICBieQogICAgICAgIGFoCiAgICAgICAgOgogICAgICAgIFsxLjBdIAogICAgICAgICAgICAtIEphdmEgY29kZSByZWZvcm1hdHRpbmcKLSBhZGRlZCBsaWNlbnNlIGhlYWRlcgogRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuMCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS4wIHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgCiAgICAgICAgOgogICAgICAgIFsxLjBdIAogICAgICAgICAgICBUaGlzIGNvbW1pdCB3YXMgbWFudWZhY3R1cmVkIGJ5IGN2czJzdm4gdG8gY3JlYXRlIHRhZwonQmVmb3JlX0phdmFfUmVmb3JtYXR0aW5nJy4gRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuMCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS4wIHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgbWljaGljbXMKICAgICAgICA6CiAgICAgICAgWzEuMF0gCiAgICAgICAgICAgIGNhdGNoIGV4Y2VwdGlvbgogRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuMCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS4wIHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgbWljaGljbXMKICAgICAgICA6CiAgICAgICAgWzEuMF0gCiAgICAgICAgICAgIHVzaW5nIEh0bWxEb2N1bWVudAogRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuMCBhZGQ8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS4wIGFkZAogICAgICAgIGJ5CiAgICAgICAgbWljaGljbXMKICAgICAgICA6CiAgICAgICAgWzEuMF0gCiAgICAgICAgICAgIG1vdmVkIGhlcmUKIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjAgcmVtb3ZlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuMCByZW1vdmUKICAgICAgICBieQogICAgICAgIG1pY2hpY21zCiAgICAgICAgOgogICAgICAgIFsxLjBdIAogICAgICAgICAgICBtb3ZlZCB0byBodG1sIGRpcgogRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuMCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS4wIHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgZ3JlZ29yY21zCiAgICAgICAgOgogICAgICAgIFsxLjBdIAogICAgICAgICAgICBjbGVhbmVkIHVwIGF1dGhvcmluZyBzaXRlbWFwCiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS4wIHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjAgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBlZ2xpd3lvbmEKICAgICAgICA6CiAgICAgICAgWzEuMF0gCiAgICAgICAgICAgICogTWFkZSB0aGUgbWtkaXJzIGludm9jYXRpb25zIGNvbnNpc3RlbnQsIGkuZS4gc28gdGhleSBkbyB0aGUgc2FtZQogIHRoaW5nIGZvciBpbWFnZXMgYW5kIGZvciBtZXRhIGZpbGVzLgoqIE1hZGUgdGhlIGNvZGluZyBzdHlsZSBjb25zaXRlbnQgd2l0aCB0aGUgcmVzdCBvZiB0aGUgZmlsZS4KIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjAgYWRkPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuMCBhZGQKICAgICAgICBieQogICAgICAgIG1pY2hpY21zCiAgICAgICAgOgogICAgICAgIFsxLjBdIAogICAgICAgICAgICBzZWFyY2ggbGF5b3V0IGluaGVyaXRlZAogRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuMCBhZGQ8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS4wIGFkZAogICAgICAgIGJ5CiAgICAgICAgbWljaGljbXMKICAgICAgICA6CiAgICAgICAgWzEuMF0gCiAgICAgICAgICAgIENNUyBhbmQgQ01GIENyZWF0b3IgYWRkZWQKIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjAgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuMCB1cGRhdGUKICAgICAgICBieQogICAgICAgIG1pY2hpY21zCiAgICAgICAgOgogICAgICAgIFsxLjBdIAogICAgICAgICAgICBGaXhlZCBhbm90aGVyIGJ1ZyB3aXRoaW4gQXJ0aWNsZUltYWdlVXBsb2FkQ3JlYXRvckFjdGlvbgogRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuMCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS4wIHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgZ3JlZ29yY21zCiAgICAgICAgOgogICAgICAgIFsxLjBdIAogICAgICAgICAgICBhZGRlZCBvcGVuIGluIG5ldyB3aW5kb3cKIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjAgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuMCB1cGRhdGUKICAgICAgICBieQogICAgICAgIGVnbGl3eW9uYQogICAgICAgIDoKICAgICAgICBbMS4wXSAKICAgICAgICAgICAgVW5kaWQgdGhlIGxhc3QgY2hlY2tpbiBhcyBpdCBzZWVtcyB0byBicmVhayB1bmlwdWJsaWMuCiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS4wIHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjAgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBncmVnb3JjbXMKICAgICAgICA6CiAgICAgICAgWzEuMF0gCiAgICAgICAgICAgIGFkZCBob3VycyAvIG1pbiB0byBoZWFkbGluZXMKIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjAgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuMCB1cGRhdGUKICAgICAgICBieQogICAgICAgIGdyZWdvcmNtcwogICAgICAgIDoKICAgICAgICBbMS4wXSAKICAgICAgICAgICAgcmVtb3ZlZCBpbWcgaGVpZ2h0CiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS4wIHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjAgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBncmVnb3JjbXMKICAgICAgICA6CiAgICAgICAgWzEuMF0gCiAgICAgICAgICAgIG1hZGUgZGF0ZSBzaG9ydGVyCiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS4wIGFkZDwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjAgYWRkCiAgICAgICAgYnkKICAgICAgICBncmVnb3JjbXMKICAgICAgICA6CiAgICAgICAgWzEuMF0gCiAgICAgICAgICAgIGFkZCBtYWdhemluZQogRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuMCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS4wIHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgZ3JlZ29yY21zCiAgICAgICAgOgogICAgICAgIFsxLjBdIAogICAgICAgICAgICBhZGRlZCBtYWdhemluZSBsaW5rCiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS4wIGFkZDwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjAgYWRkCiAgICAgICAgYnkKICAgICAgICBncmVnb3JjbXMKICAgICAgICA6CiAgICAgICAgWzEuMF0gCiAgICAgICAgICAgIGFkZCBtYWdhemluZQogRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuMCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS4wIHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgZ3JlZ29yY21zCiAgICAgICAgOgogICAgICAgIFsxLjBdIAogICAgICAgICAgICBmaXggZXJyb3IgcGFnZQogRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuMCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS4wIHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgZ3JlZ29yY21zCiAgICAgICAgOgogICAgICAgIFsxLjBdIAogICAgICAgICAgICBmaXggZXJyb3IgcGFnZQogRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuMCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS4wIHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgZ3JlZ29yY21zCiAgICAgICAgOgogICAgICAgIFsxLjBdIAogICAgICAgICAgICBhZGRlZCA0MDQgaGFuZGxpbmcKIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjAgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuMCB1cGRhdGUKICAgICAgICBieQogICAgICAgIG1pY2hpY21zCiAgICAgICAgOgogICAgICAgIFsxLjBdIAogICAgICAgICAgICBvayBub3cKIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjAgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuMCB1cGRhdGUKICAgICAgICBieQogICAgICAgIG1pY2hpY21zCiAgICAgICAgOgogICAgICAgIFsxLjBdIAogICAgICAgICAgICBSZXNvdXJjZSBFeGlzdHMgYWRkZWQKIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjAgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuMCB1cGRhdGUKICAgICAgICBieQogICAgICAgIGdyZWdvcmNtcwogICAgICAgIDoKICAgICAgICBbMS4wXSAKICAgICAgICAgICAgdGlnaHRlbmVkIHRoZSBsYXlvdXQKIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjAgYWRkPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuMCBhZGQKICAgICAgICBieQogICAgICAgIGdyZWdvcmNtcwogICAgICAgIDoKICAgICAgICBbMS4wXSAKICAgICAgICAgICAgYWRkZWQgbWlzc2luZyBsaW5lcwogRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuMCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS4wIHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgZ3JlZ29yY21zCiAgICAgICAgOgogICAgICAgIFsxLjBdIAogICAgICAgICAgICBhZGQgbWlzc2luZyBzcGFjZXIgaW4gYXJ0aWNsZXMKIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjAgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuMCB1cGRhdGUKICAgICAgICBieQogICAgICAgIGdyZWdvcmNtcwogICAgICAgIDoKICAgICAgICBbMS4wXSAKICAgICAgICAgICAgZml4IHByZXZpZXcgZm9ybWF0dGluZyBpc3N1ZXMKIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjAgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuMCB1cGRhdGUKICAgICAgICBieQogICAgICAgIGdyZWdvcmNtcwogICAgICAgIDoKICAgICAgICBbMS4wXSAKICAgICAgICAgICAgZml4IHByZXZpZXcgZm9ybWF0dGluZyBpc3N1ZXMKIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjAgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuMCB1cGRhdGUKICAgICAgICBieQogICAgICAgIGdyZWdvcmNtcwogICAgICAgIDoKICAgICAgICBbMS4wXSAKICAgICAgICAgICAgY29tbWVudCBvdXQgd2VpdGVyIGxpbmsKIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjAgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuMCB1cGRhdGUKICAgICAgICBieQogICAgICAgIGdyZWdvcmNtcwogICAgICAgIDoKICAgICAgICBbMS4wXSAKICAgICAgICAgICAgY29tbWVudCBvdXQgd2VpdGVyIGxpbmsKIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjAgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuMCB1cGRhdGUKICAgICAgICBieQogICAgICAgIGdyZWdvcmNtcwogICAgICAgIDoKICAgICAgICBbMS4wXSAKICAgICAgICAgICAgYWRkIGxpbmVicmVhayBzdXBwb3J0IGZvciBhcnRpY2xlIGltYWdlIGNhcHRpb25zCiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS4wIHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjAgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBncmVnb3JjbXMKICAgICAgICA6CiAgICAgICAgWzEuMF0gCiAgICAgICAgICAgIGZpeCBpdC1zdGVsbGVuIGRvdWJsZSBwcm9jZXNzaW5nCiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS4wIHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjAgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBncmVnb3JjbXMKICAgICAgICA6CiAgICAgICAgWzEuMF0gCiAgICAgICAgICAgIHNob3cgZW1waGFzaXplLCBib2xkLCBoeXBlcmxpbmtzIGV0YwogRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuMCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS4wIHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgZ3JlZ29yY21zCiAgICAgICAgOgogICAgICAgIFsxLjBdIAogICAgICAgICAgICBpbXByb3ZlZCBtZW51IHVzYWJpbGl0eSwgZmlyc3QgY3V0IG9mIGVycm9yIGhhbmRsaW5nCiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS4wIHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjAgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBncmVnb3JjbXMKICAgICAgICA6CiAgICAgICAgWzEuMF0gCiAgICAgICAgICAgIGltcHJvdmVkIGJpdGZsdXggc2NoZW1hcywgYWRkZWQgcGFnZSB0aXRsZSB0byBpdC1zdGVsbGVuIC8gaXQta2FsZW5kZXIKIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjAgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuMCB1cGRhdGUKICAgICAgICBieQogICAgICAgIGdyZWdvcmNtcwogICAgICAgIDoKICAgICAgICBbMS4wXSAKICAgICAgICAgICAgaW1wcm92ZWQgYml0Zmx1eCBzY2hlbWFzLCBhZGRlZCBtb3JlIHN0eWxlcwogRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuMCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS4wIHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgZmVsaXhjbXMKICAgICAgICA6CiAgICAgICAgWzEuMF0gCiAgICAgICAgICAgIFJlbW92aW5nIHdoaXRlIGJhY2tncm91bmQgb2YgYmFubmVyIGNlbGxzCiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS4wIHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjAgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBmZWxpeGNtcwogICAgICAgIDoKICAgICAgICBbMS4wXSAKICAgICAgICAgICAgUmV2ZXJ0aW5nIGxpdmUgdG8gL3d5b25hLWNtcy9jb21wdXRlcndvcmxkLwogRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuMCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS4wIHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgbWljaGljbXMKICAgICAgICA6CiAgICAgICAgWzEuMF0gCiAgICAgICAgICAgIEpUaWR5IGFkZGVkCiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS4wIHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjAgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBtaWNoaWNtcwogICAgICAgIDoKICAgICAgICBbMS4wXSAKICAgICAgICAgICAgbHVjZW5lLW5vLWluZGV4IGFkZGVkCiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS4wIHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjAgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBhaAogICAgICAgIDoKICAgICAgICBbMS4wXSAKICAgICAgICAgICAgY2hhbmdlZCBwYXJhbWV0ZXIgZG9jdW1lbnRVcmkgYmFjayBmcm9tIHRhc2sudXJpcyB0byBkb2N1bWVudFVyaQogRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuMCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS4wIHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgYWgKICAgICAgICA6CiAgICAgICAgWzEuMF0gCiAgICAgICAgICAgIHJlbW92ZWQgbGluZWJyZWFrcyAoY2F1c2UgZXJyb3Igb24gV2luZG93cyksCmFkZGVkIGRvY3VtZW50VXJpIHBhcmFtZXRlciB0byBhcnRpY2xlIHNjaGVkdWxlciBtZW51IGVudHJ5CiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS4wIHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjAgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBncmVnb3JjbXMKICAgICAgICA6CiAgICAgICAgWzEuMF0gCiAgICAgICAgICAgIHJlLWFkZGVkIG1pc3NpbmcgYmFubmVyIHRhZwogRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuMCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS4wIHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgZ3JlZ29yY21zCiAgICAgICAgOgogICAgICAgIFsxLjBdIAogICAgICAgICAgICByZS1hZGRlZCBtaXNzaW5nIGJhbm5lciB0YWcKIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjAgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuMCB1cGRhdGUKICAgICAgICBieQogICAgICAgIGFoCiAgICAgICAgOgogICAgICAgIFsxLjBdIAogICAgICAgICAgICByZW1vdmVkIGxpbmVicmVha3MgKGNhdXNlZCBlcnJvcnMgdW5kZXIgV2luZG93cykKIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjAgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuMCB1cGRhdGUKICAgICAgICBieQogICAgICAgIGZlbGl4Y21zCiAgICAgICAgOgogICAgICAgIFsxLjBdIAogICAgICAgICAgICBGaXhlZCBidWc6IGV4Y2hhbmdpbmcgb2YgdGVhc2VyIGltYWdlcyBub3cgcG9zc2libGUgKHNlcXVlbmNlIG9mIGluc2VydGluZykKIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjAgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuMCB1cGRhdGUKICAgICAgICBieQogICAgICAgIGZlbGl4Y21zCiAgICAgICAgOgogICAgICAgIFsxLjBdIAogICAgICAgICAgICBSZXZlcnQgY29tbWl0CiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS4wIHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjAgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBmZWxpeGNtcwogICAgICAgIDoKICAgICAgICBbMS4wXSAKICAgICAgICAgICAgUXVpY2sgZml4IG9mIHVtbGF1dHMgcHJvYmxlbSBpbiBmb3JtIGlucHV0IGZpZWxkIG9mIGFydGljbGUgY3JlYXRvcjogcmVtb3ZlZCB0aXRsZSBmaWVsZAogRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuMCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS4wIHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgZmVsaXhjbXMKICAgICAgICA6CiAgICAgICAgWzEuMF0gCiAgICAgICAgICAgIFJlYXJyYW5nZWQgbWVudXMKIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjAgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuMCB1cGRhdGUKICAgICAgICBieQogICAgICAgIGZlbGl4Y21zCiAgICAgICAgOgogICAgICAgIFsxLjBdIAogICAgICAgICAgICBNYWRlIHNjaGVkdWxpbmcgd29yayBmb3IgYXJ0aWNsZTogdGFzayBjb25maWd1cmF0aW9uCiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS4wIHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjAgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBmZWxpeGNtcwogICAgICAgIDoKICAgICAgICBbMS4wXSAKICAgICAgICAgICAgRWRpdGluZyBvZiBNYWdhemluZSB3b3JraW5nIGFnYWluCiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS4wIHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjAgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBncmVnb3JjbXMKICAgICAgICA6CiAgICAgICAgWzEuMF0gCiAgICAgICAgICAgIGZpeCBnaWxsZXMgY3NzIHNjcmV3dXAgOikKIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjAgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuMCB1cGRhdGUKICAgICAgICBieQogICAgICAgIGdyZWdvcmNtcwogICAgICAgIDoKICAgICAgICBbMS4wXSAKICAgICAgICAgICAgY3NzIHVwZGF0ZWQKIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjAgYWRkPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuMCBhZGQKICAgICAgICBieQogICAgICAgIGdyZWdvcmNtcwogICAgICAgIDoKICAgICAgICBbMS4wXSAKICAgICAgICAgICAgYWRkZWQgbWVkaWFkYXRlbgogRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuMCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS4wIHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgZmVsaXhjbXMKICAgICAgICA6CiAgICAgICAgWzEuMF0gCiAgICAgICAgICAgIFJldmVydGVkIGxpdmUgdXJsIGJhY2ssIGNvcnJlY3RlZCBiYWNrLXVybCBwYXJhbSBmb3IgYml0Zmx1eAogRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuMCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS4wIHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgZ3JlZ29yY21zCiAgICAgICAgOgogICAgICAgIFsxLjBdIAogICAgICAgICAgICBGSVhNRTogdW5pcHVibGljLXNwZWNpZmljIEJYRSBjaGFuZ2VzIHJldmVydGVkIGZvciBjb21wdXRlcndvcmxkCiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS4wIGFkZDwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjAgYWRkCiAgICAgICAgYnkKICAgICAgICBncmVnb3JjbXMKICAgICAgICA6CiAgICAgICAgWzEuMF0gCiAgICAgICAgICAgIHN1cHBvcnQgYWNjb3VudAogRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuMCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS4wIHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgZ3JlZ29yY21zCiAgICAgICAgOgogICAgICAgIFsxLjBdIAogICAgICAgICAgICBURU1QT1JBUlkgRklYLiBSZXZpc2lvbiBDb250cm9sbGVyIG5lZWRzIHRvIGJlIGZpeGVkIHByb3Blcmx5LgogRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuMCBhZGQ8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS4wIGFkZAogICAgICAgIGJ5CiAgICAgICAgZ3JlZ29yY21zCiAgICAgICAgOgogICAgICAgIFsxLjBdIAogICAgICAgICAgICBmdXJ0aGVyIGxheW91dCBmaXhlcwogRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuMCBhZGQ8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS4wIGFkZAogICAgICAgIGJ5CiAgICAgICAgZ3JlZ29yY21zCiAgICAgICAgOgogICAgICAgIFsxLjBdIAogICAgICAgICAgICBsYXlvdXQgY2hhbmdlcywgbW92ZWQgZG9zc2llciB0byBzY2h3ZXJwdW5rdGUKIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjAgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuMCB1cGRhdGUKICAgICAgICBieQogICAgICAgIG1pY2hpY21zCiAgICAgICAgOgogICAgICAgIFsxLjBdIAogICAgICAgICAgICBzb21lIGRhdGEgdXBkYXRlZAogRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuMCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS4wIHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgbWljaGljbXMKICAgICAgICA6CiAgICAgICAgWzEuMF0gCiAgICAgICAgICAgIFJvYm90RXhjbHVzaW9uIGFkZGVkCiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS4wIHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjAgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBtaWNoaWNtcwogICAgICAgIDoKICAgICAgICBbMS4wXSAKICAgICAgICAgICAgRXhwb3J0IGFsbCBDTVMgcHJvamVjdHMKIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjAgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuMCB1cGRhdGUKICAgICAgICBieQogICAgICAgIG1pY2hpY21zCiAgICAgICAgOgogICAgICAgIFsxLjBdIAogICAgICAgICAgICBSb2JvdEV4Y2x1c2lvbiBhZGRlZAogRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuMCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS4wIHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgbWljaGljbXMKICAgICAgICA6CiAgICAgICAgWzEuMF0gCiAgICAgICAgICAgIE5ldyBPU0NPTSBsYXlvdXQKIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjAgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuMCB1cGRhdGUKICAgICAgICBieQogICAgICAgIGZlbGl4Y21zCiAgICAgICAgOgogICAgICAgIFsxLjBdIAogICAgICAgICAgICBJbWFnZXMgYXJlIGRpc3BsYXllZCBpbiBCaXRmbHV4IG5vdyArIGNoYW5nZSBvZiBpbnNlcnRpbmcgb3JkZXIKIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjAgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuMCB1cGRhdGUKICAgICAgICBieQogICAgICAgIGdyZWdvcmNtcwogICAgICAgIDoKICAgICAgICBbMS4wXSAKICAgICAgICAgICAgZG9oLiBmb3Jnb3Qgc3RhdGljIG1lbnUKIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjAgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuMCB1cGRhdGUKICAgICAgICBieQogICAgICAgIGdyZWdvcmNtcwogICAgICAgIDoKICAgICAgICBbMS4wXSAKICAgICAgICAgICAgc2xpZ2h0bHkgcmVhcnJhbmdlZCwgY2hhbmdlZCBsaXZlIFVSSQogRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuMCBhZGQ8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS4wIGFkZAogICAgICAgIGJ5CiAgICAgICAgZ3JlZ29yY21zCiAgICAgICAgOgogICAgICAgIFsxLjBdIAogICAgICAgICAgICByZXBsaWNhdGUgc2NyaXB0IGFkZGVkIChpbiBwdWJsaWNhdGlvbiwgd2hlcmUgaXQgbWFrZXMgc2Vuc2UuLikKIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjAgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuMCB1cGRhdGUKICAgICAgICBieQogICAgICAgIGdyZWdvcmNtcwogICAgICAgIDoKICAgICAgICBbMS4wXSAKICAgICAgICAgICAgYWRhcHRlZCBmb3IgbGl2ZSBzZXJ2ZXIgVVJMcwogRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuMCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS4wIHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgYWgKICAgICAgICA6CiAgICAgICAgWzEuMF0gCiAgICAgICAgICAgIENvbW1lbnRlZCBvdXQgU3RhdGljSFRNTEV4cG9ydGVyIHRhc2sKIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjAgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuMCB1cGRhdGUKICAgICAgICBieQogICAgICAgIGFoCiAgICAgICAgOgogICAgICAgIFsxLjBdIAogICAgICAgICAgICBJbmNsdWRlZCB1cmlzIHBhcmFtZXRlciBhZ2FpbgogRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuMCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS4wIHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgYWgKICAgICAgICA6CiAgICAgICAgWzEuMF0gCiAgICAgICAgICAgIFdvcmthcm91bmQ6IHVzaW5nIHRhc2sudXJpcyBpbnN0ZWFkIG9mIGRvY3VtZW50VVJJLCBoYXZlIHRvIGNoYW5nZSB0aGF0LgogRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuMCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS4wIHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgZmVsaXhjbXMKICAgICAgICA6CiAgICAgICAgWzEuMF0gCiAgICAgICAgICAgIFF1aWNrIGZpeCBvZiBwdWJsaXNoaW5nIHByb2JsZW06IHJlbW92ZWQgdXJpc1BhcmFtZXRlciBzbyB0aGF0IHRoZXJlIGlzIG5vIHdnZXQgaGFuZ2luZwogRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuMCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS4wIHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgbWljaGljbXMKICAgICAgICA6CiAgICAgICAgWzEuMF0gCiAgICAgICAgICAgIG5ldyBsYXlvdXQgaW1hZ2VzIGFkZGVkCiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS4wIGFkZDwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjAgYWRkCiAgICAgICAgYnkKICAgICAgICBtaWNoaWNtcwogICAgICAgIDoKICAgICAgICBbMS4wXSAKICAgICAgICAgICAgSlRpZHkKIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjAgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuMCB1cGRhdGUKICAgICAgICBieQogICAgICAgIG1pY2hpY21zCiAgICAgICAgOgogICAgICAgIFsxLjBdIAogICAgICAgICAgICBOZXcgTGF5b3V0IGFkZGVkCiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS4wIHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjAgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBtaWNoaWNtcwogICAgICAgIDoKICAgICAgICBbMS4wXSAKICAgICAgICAgICAgbmV3IGxheW91dCBpbWFnZXMgYWRkZWQKIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjAgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuMCB1cGRhdGUKICAgICAgICBieQogICAgICAgIG1pY2hpY21zCiAgICAgICAgOgogICAgICAgIFsxLjBdIAogICAgICAgICAgICBDcmF3bGluZyBhbmQgaW5kZXhpbmcgaW1wcm92ZWQKIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjAgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuMCB1cGRhdGUKICAgICAgICBieQogICAgICAgIGdyZWdvcmNtcwogICAgICAgIDoKICAgICAgICBbMS4wXSAKICAgICAgICAgICAgYnVnZml4ZXMgZm9yIGl0LXN0ZWxsZW4gLyBpdC1rYWxlbmRlcgogRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuMCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS4wIHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgZ3JlZ29yY21zCiAgICAgICAgOgogICAgICAgIFsxLjBdIAogICAgICAgICAgICBmaXJzdCBjdXQgb2YgaXQtc3RlbGxlbiAvIGl0LWthbGVuZGFyCiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS4wIGFkZDwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjAgYWRkCiAgICAgICAgYnkKICAgICAgICBtaWNoaWNtcwogICAgICAgIDoKICAgICAgICBbMS4wXSAKICAgICAgICAgICAgTmV3IE9TQ09NIGxheW91dAogRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuMCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS4wIHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgbWljaGljbXMKICAgICAgICA6CiAgICAgICAgWzEuMF0gCiAgICAgICAgICAgIEV4Y2VycHRzIGFkZGVkCiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS4wIHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjAgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBmZWxpeGNtcwogICAgICAgIDoKICAgICAgICBbMS4wXSAKICAgICAgICAgICAgRml4ZWQgYnVnIHdpdGggaW1nIFVSTHMgKGluc2VydGluZyBvZiBuZXdzLykKIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjAgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuMCB1cGRhdGUKICAgICAgICBieQogICAgICAgIGdyZWdvcmNtcwogICAgICAgIDoKICAgICAgICBbMS4wXSAKICAgICAgICAgICAgRE9IIHJlZGlyZWN0IGFjdHVhbGx5IG5ldmVyIHdvcmtlZCAod2FzIG1hc2tlZCBieSBtYXRjaGVycykuIHZhcmlhYmxlcyBpbiB0aGUgc2l0ZW1hcCBhcmUge3Zhcn0sIG5vdCB7fQogRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuMCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS4wIHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgZ3JlZ29yY21zCiAgICAgICAgOgogICAgICAgIFsxLjBdIAogICAgICAgICAgICBhbHRlcm5hdGluZyBjb2xvcnMsIG5ld3MvbmV3cyBwcm9ibGVtIGZpeGVkCiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS4wIHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjAgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBmZWxpeGNtcwogICAgICAgIDoKICAgICAgICBbMS4wXSAKICAgICAgICAgICAgRml4ZWQgbm90IHNhdmluZyBvZiBoZWFkbGluZXMgYnVnCiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS4wIHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjAgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBncmVnb3JjbXMKICAgICAgICA6CiAgICAgICAgWzEuMF0gCiAgICAgICAgICAgIGRvaC4gZml4ZWQgbW9yZSBpbWFnZSBwb3NpdGlvbmluZyBwcm9ibGVtcy4KIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjAgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuMCB1cGRhdGUKICAgICAgICBieQogICAgICAgIGdyZWdvcmNtcwogICAgICAgIDoKICAgICAgICBbMS4wXSAKICAgICAgICAgICAgcmVtb3ZlIG9ic29sZXRlIG1lZGlhIHRhZwogRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuMCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS4wIHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgZ3JlZ29yY21zCiAgICAgICAgOgogICAgICAgIFsxLjBdIAogICAgICAgICAgICByZW1vdmVkIHd5b25hIGFjY291bnQKIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjAgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuMCB1cGRhdGUKICAgICAgICBieQogICAgICAgIGdyZWdvcmNtcwogICAgICAgIDoKICAgICAgICBbMS4wXSAKICAgICAgICAgICAgYWRkZWQgbW9yZSBzY2hlZHVsZXJzIHRvIG1lbnUsIG1hZGUgbWVudXMgbW9yZSB1c2VyLWZyaWVuZGx5CiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS4wIHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjAgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBtaWNoaWNtcwogICAgICAgIDoKICAgICAgICBbMS4wXSAKICAgICAgICAgICAgU291cmNlIFJlcGxpY2F0aW9uIGFkZGVkCiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS4wIHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjAgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBtaWNoaWNtcwogICAgICAgIDoKICAgICAgICBbMS4wXSAKICAgICAgICAgICAgcGFnZW5pbmcgaW1wcm92ZWQKIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjAgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuMCB1cGRhdGUKICAgICAgICBieQogICAgICAgIGdyZWdvcmNtcwogICAgICAgIDoKICAgICAgICBbMS4wXSAKICAgICAgICAgICAgc3RhdGljIGZpbGVzIGFkZGVkLCBpbWcgcGF0aHMgZml4ZWQKIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjAgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuMCB1cGRhdGUKICAgICAgICBieQogICAgICAgIGdyZWdvcmNtcwogICAgICAgIDoKICAgICAgICBbMS4wXSAKICAgICAgICAgICAgYWRkZWQgbWVudSBmb3Igc3RhdGljIGNvbnRlbnQKIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjAgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuMCB1cGRhdGUKICAgICAgICBieQogICAgICAgIGdyZWdvcmNtcwogICAgICAgIDoKICAgICAgICBbMS4wXSAKICAgICAgICAgICAgcmVkaXJlY3QgZml4CiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS4wIHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjAgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBncmVnb3JjbXMKICAgICAgICA6CiAgICAgICAgWzEuMF0gCiAgICAgICAgICAgIHN0eWxpc3RpYyB1cGRhdGVzCiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS4wIHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjAgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBtaWNoaWNtcwogICAgICAgIDoKICAgICAgICBbMS4wXSAKICAgICAgICAgICAgRmllbGRzIGFkZGVkCiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS4wIHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjAgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBtaWNoaWNtcwogICAgICAgIDoKICAgICAgICBbMS4wXSAKICAgICAgICAgICAgY3Jhd2xpbmcgYWN0aXZhdGVkCiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS4wIHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjAgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBtaWNoaWNtcwogICAgICAgIDoKICAgICAgICBbMS4wXSAKICAgICAgICAgICAgQnVncyBmaXhlZAogRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuMCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS4wIHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgZ3JlZ29yY21zCiAgICAgICAgOgogICAgICAgIFsxLjBdIAogICAgICAgICAgICBieWxpbmUgYWRkZWQsIGJldHRlciBzb3J0IGluIGFydGljbGVzIG92ZXJ2aWV3CiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS4wIGFkZDwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjAgYWRkCiAgICAgICAgYnkKICAgICAgICBtaWNoaWNtcwogICAgICAgIDoKICAgICAgICBbMS4wXSAKICAgICAgICAgICAgYW5vdGhlciBwcm9qZWN0CiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS4wIGFkZDwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjAgYWRkCiAgICAgICAgYnkKICAgICAgICBtaWNoaWNtcwogICAgICAgIDoKICAgICAgICBbMS4wXSAKICAgICAgICAgICAgTmV3cyBhYm91dCBSZXZpc2lvbiBDb250cm9sbGVyCiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS4wIHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjAgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBmZWxpeGNtcwogICAgICAgIDoKICAgICAgICBbMS4wXSAKICAgICAgICAgICAgQ2hhbmdlZCBzaXplIG9mIGlucHV0IGZpZWxkCiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS4wIHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjAgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBmZWxpeGNtcwogICAgICAgIDoKICAgICAgICBbMS4wXSAKICAgICAgICAgICAgQ2hhbmdlZCBtZW51IGVudHJpZXMKIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjAgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuMCB1cGRhdGUKICAgICAgICBieQogICAgICAgIGZlbGl4Y21zCiAgICAgICAgOgogICAgICAgIFsxLjBdIAogICAgICAgICAgICBDaGFuZ2VkIHJlZGlyZWN0cyBmcm9tIHllYXIgMjAwMiB0byB5ZWFyIDIwMDMKIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjAgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuMCB1cGRhdGUKICAgICAgICBieQogICAgICAgIGdyZWdvcmNtcwogICAgICAgIDoKICAgICAgICBbMS4wXSAKICAgICAgICAgICAgd3JhcHBlciBhZGRlZCB0byBhdXRob3JpbmcsIHB1Ymxpc2ggbmF2aWdhdGlvbiBhZGRlZCwgcHVibGlzaCB0aGlzIHBhZ2Ugc3RhcnRlZAogRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuMCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS4wIHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgZmVsaXhjbXMKICAgICAgICA6CiAgICAgICAgWzEuMF0gCiAgICAgICAgICAgIEZpeGVkIGJ1ZyB3aXRoIHdlYnBlcmxzL2Rvc3NpZXJrYXN0ZW4gYW5kIHJldmlzaW9uIGNvbnRyb2xsZXIKIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjAgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuMCB1cGRhdGUKICAgICAgICBieQogICAgICAgIGZlbGl4Y21zCiAgICAgICAgOgogICAgICAgIFsxLjBdIAogICAgICAgICAgICBGaXhlZCBwcm9ibGVtIHdpdGggeHNsOmlmCiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS4wIHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjAgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBncmVnb3JjbXMKICAgICAgICA6CiAgICAgICAgWzEuMF0gCiAgICAgICAgICAgIG5hdmlnYXRpb24gaW1wcm92ZWQKIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjAgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuMCB1cGRhdGUKICAgICAgICBieQogICAgICAgIGdyZWdvcmNtcwogICAgICAgIDoKICAgICAgICBbMS4wXSAKICAgICAgICAgICAgYmVhdXRpZmljYXRpb24KIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjAgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuMCB1cGRhdGUKICAgICAgICBieQogICAgICAgIGdyZWdvcmNtcwogICAgICAgIDoKICAgICAgICBbMS4wXSAKICAgICAgICAgICAgcmVzZXQgaGVhZGxpbmVzLnhtbCB0byBzdGFydCBlbXB0eQogRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuMCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS4wIHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgZ3JlZ29yY21zCiAgICAgICAgOgogICAgICAgIFsxLjBdIAogICAgICAgICAgICByZW1vdmVkIG9sZCBmaWxlcywgZml4ZWQgdG9kYXlzIGRhdGUsIGZvcm1hdHRpbmcgaXNzdWVzCiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS4wIHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjAgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBncmVnb3JjbXMKICAgICAgICA6CiAgICAgICAgWzEuMF0gCiAgICAgICAgICAgIG1hZGUgaGVhZGxpbmVzIGF3YXJlIG9mIGltYWdlcwogRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuMCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS4wIHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgbWljaGljbXMKICAgICAgICA6CiAgICAgICAgWzEuMF0gCiAgICAgICAgICAgIGltYWdlcyBtZXRhIGRpcmVjdG9yeSBhbmQgYnVnIGZpeGVkCiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS4wIHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjAgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBtaWNoaWNtcwogICAgICAgIDoKICAgICAgICBbMS4wXSAKICAgICAgICAgICAgQXJ0aWNsZSBwdWJsaXNoaW5nIGZpeGVkCiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS4wIHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjAgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBtaWNoaWNtcwogICAgICAgIDoKICAgICAgICBbMS4wXSAKICAgICAgICAgICAgbG93ZXIgY2FzZQogRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuMCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS4wIHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgbWljaGljbXMKICAgICAgICA6CiAgICAgICAgWzEuMF0gCiAgICAgICAgICAgIGN1cnJlbnQgZGF0ZQogRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuMCBhZGQ8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS4wIGFkZAogICAgICAgIGJ5CiAgICAgICAgZ3JlZ29yY21zCiAgICAgICAgOgogICAgICAgIFsxLjBdIAogICAgICAgICAgICBhZGRlZCB3eW9uYSByb290IG1hdGNoZXIgZm9yIGltZywgbWVudXMgZXRjLgogRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuMCBhZGQ8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS4wIGFkZAogICAgICAgIGJ5CiAgICAgICAgZ3JlZ29yY21zCiAgICAgICAgOgogICAgICAgIFsxLjBdIAogICAgICAgICAgICB0ZW1wbGF0ZXMgYWRkZWQKIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjAgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuMCB1cGRhdGUKICAgICAgICBieQogICAgICAgIGdyZWdvcmNtcwogICAgICAgIDoKICAgICAgICBbMS4wXSAKICAgICAgICAgICAgcmVtb3ZlZCBvYnNvbGV0ZSB4c2x0CiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS4wIHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjAgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBncmVnb3JjbXMKICAgICAgICA6CiAgICAgICAgWzEuMF0gCiAgICAgICAgICAgIGFkZGVkIGRhdGUgZ2VuZXJhdGlvbiwgbWlzYyBmaXhlcwogRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuMCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS4wIHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgbWljaGljbXMKICAgICAgICA6CiAgICAgICAgWzEuMF0gCiAgICAgICAgICAgIEhlYWRsaW5lcyBCdWcgZml4ZWQKIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjAgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuMCB1cGRhdGUKICAgICAgICBieQogICAgICAgIG1pY2hpY21zCiAgICAgICAgOgogICAgICAgIFsxLjBdIAogICAgICAgICAgICBCdWcgd2l0aGluIEhUTUxQYXJzZXIgZml4ZWQgLi4uCiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS4wIHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjAgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBncmVnb3JjbXMKICAgICAgICA6CiAgICAgICAgWzEuMF0gCiAgICAgICAgICAgIGZpeCB2YXJpb3VzIEJYRSBidWdzIHJlbGF0ZWQgdG8gaW5jb21wbGV0ZSBzY2hlbWFzIGFuZCAmbHQ7Ym9keSZndDsgZWxlbWVudHMgaW4geW91ciB4bWwKIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjAgYWRkPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuMCBhZGQKICAgICAgICBieQogICAgICAgIGdyZWdvcmNtcwogICAgICAgIDoKICAgICAgICBbMS4wXSAKICAgICAgICAgICAgdXBkYXRlcwogRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuMCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS4wIHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgZ3JlZ29yY21zCiAgICAgICAgOgogICAgICAgIFsxLjBdIAogICAgICAgICAgICB1cGRhdGVzCiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS4wIGFkZDwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjAgYWRkCiAgICAgICAgYnkKICAgICAgICBncmVnb3JjbXMKICAgICAgICA6CiAgICAgICAgWzEuMF0gCiAgICAgICAgICAgIHVwZGF0ZXMKIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjAgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuMCB1cGRhdGUKICAgICAgICBieQogICAgICAgIGdyZWdvcmNtcwogICAgICAgIDoKICAgICAgICBbMS4wXSAKICAgICAgICAgICAgdXBkYXRlcwogRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuMCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS4wIHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgZ3JlZ29yY21zCiAgICAgICAgOgogICAgICAgIFsxLjBdIAogICAgICAgICAgICB1cGRhdGVzCiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS4wIHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjAgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBtaWNoaWNtcwogICAgICAgIDoKICAgICAgICBbMS4wXSAKICAgICAgICAgICAgc2VsZWN0ZWQgYW5kIGFsbCBmaXhlZAogRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuMCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS4wIHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgZ3JlZ29yY21zCiAgICAgICAgOgogICAgICAgIFsxLjBdIAogICAgICAgICAgICB1cGRhdGVzCiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS4wIHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjAgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBncmVnb3JjbXMKICAgICAgICA6CiAgICAgICAgWzEuMF0gCiAgICAgICAgICAgIHVwZGF0ZXAKIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjAgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuMCB1cGRhdGUKICAgICAgICBieQogICAgICAgIGdyZWdvcmNtcwogICAgICAgIDoKICAgICAgICBbMS4wXSAKICAgICAgICAgICAgdXBkYXRlcwogRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuMCBhZGQ8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS4wIGFkZAogICAgICAgIGJ5CiAgICAgICAgZ3JlZ29yY21zCiAgICAgICAgOgogICAgICAgIFsxLjBdIAogICAgICAgICAgICBuZXcgdXNlcnMKIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjAgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuMCB1cGRhdGUKICAgICAgICBieQogICAgICAgIG1pY2hpY21zCiAgICAgICAgOgogICAgICAgIFsxLjBdIAogICAgICAgICAgICBQREYgaW5kZXhpbmcgYWRkZWQKIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjAgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuMCB1cGRhdGUKICAgICAgICBieQogICAgICAgIG1pY2hpY21zCiAgICAgICAgOgogICAgICAgIFsxLjBdIAogICAgICAgICAgICBQREYgaW5kZXhpbmcgYWRkZWQKIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjAgYWRkPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuMCBhZGQKICAgICAgICBieQogICAgICAgIG1pY2hpY21zCiAgICAgICAgOgogICAgICAgIFsxLjBdIAogICAgICAgICAgICBhbnQgYnVpbGQgZm9yIGNyYXdsIGFuZCBzZWFyY2ggc3RhcnRlZAogRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuMCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS4wIHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgbWljaGljbXMKICAgICAgICA6CiAgICAgICAgWzEuMF0gCiAgICAgICAgICAgIHByZWZpeCB1bmlwdWJsaWMgYWRkZWQKIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjAgYWRkPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuMCBhZGQKICAgICAgICBieQogICAgICAgIG1pY2hpY21zCiAgICAgICAgOgogICAgICAgIFsxLjBdIAogICAgICAgICAgICBOZXcgaW5kZXggYWRkZWQKIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjAgcmVtb3ZlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuMCByZW1vdmUKICAgICAgICBieQogICAgICAgIG1pY2hpY21zCiAgICAgICAgOgogICAgICAgIFsxLjBdIAogICAgICAgICAgICBybQogRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuMCBhZGQ8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS4wIGFkZAogICAgICAgIGJ5CiAgICAgICAgbWljaGljbXMKICAgICAgICA6CiAgICAgICAgWzEuMF0gCiAgICAgICAgICAgIENyYXdsZXIgYW5kIEx1Y2VuZSBjb25maWd1cmF0aW9uIGFkZGVkCiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS4wIGFkZDwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjAgYWRkCiAgICAgICAgYnkKICAgICAgICBtaWNoaWNtcwogICAgICAgIDoKICAgICAgICBbMS4wXSAKICAgICAgICAgICAgbmV3IGluZGV4IGFkZGVkCiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS4wIHJlbW92ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjAgcmVtb3ZlCiAgICAgICAgYnkKICAgICAgICBtaWNoaWNtcwogICAgICAgIDoKICAgICAgICBbMS4wXSAKICAgICAgICAgICAgcm0KIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjAgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuMCB1cGRhdGUKICAgICAgICBieQogICAgICAgIG1pY2hpY21zCiAgICAgICAgOgogICAgICAgIFsxLjBdIAogICAgICAgICAgICBjb25maWd1cmF0aW9uIGltcHJvdmVkCiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS4wIGFkZDwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjAgYWRkCiAgICAgICAgYnkKICAgICAgICBtaWNoaWNtcwogICAgICAgIDoKICAgICAgICBbMS4wXSAKICAgICAgICAgICAgbmV3IHByb2plY3RzIGFkZGVkCiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS4wIHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjAgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBtaWNoaWNtcwogICAgICAgIDoKICAgICAgICBbMS4wXSAKICAgICAgICAgICAgQ29ycmVjdCBjb25mZXJlbmNlIGRhdGVzIGFkZGVkCiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS4wIHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjAgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBncmVnb3JjbXMKICAgICAgICA6CiAgICAgICAgWzEuMF0gCiAgICAgICAgICAgIHVwZGF0ZXMKIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjAgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuMCB1cGRhdGUKICAgICAgICBieQogICAgICAgIGdyZWdvcmNtcwogICAgICAgIDoKICAgICAgICBbMS4wXSAKICAgICAgICAgICAgdXBkYXRlcwogRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuMCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS4wIHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgZ3JlZ29yY21zCiAgICAgICAgOgogICAgICAgIFsxLjBdIAogICAgICAgICAgICAKdXBkYXRlcyAgICAgICAgICAgICAmbHQ7bWE6cGkKIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjAgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuMCB1cGRhdGUKICAgICAgICBieQogICAgICAgIG1pY2hpY21zCiAgICAgICAgOgogICAgICAgIFsxLjBdIAogICAgICAgICAgICBQdWJsaXNoZXIgYWRkZWQKIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjAgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuMCB1cGRhdGUKICAgICAgICBieQogICAgICAgIG1pY2hpY21zCiAgICAgICAgOgogICAgICAgIFsxLjBdIAogICAgICAgICAgICBQYXJhbWV0ZXIgYWRkZWQgZm9yIFJDTUwgYW5kIFJDQkFLCiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS4wIHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjAgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBtaWNoaWNtcwogICAgICAgIDoKICAgICAgICBbMS4wXSAKICAgICAgICAgICAgb3Njb20ucmRmIGFkZGVkCiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS4wIHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjAgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBtaWNoaWNtcwogICAgICAgIDoKICAgICAgICBbMS4wXSAKICAgICAgICAgICAgaHRtbCBwaXBlbGluZSBmb3IgdXBkYXRlZCBYb3B1cyBhZGRlZAogRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuMCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS4wIHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgbWljaGljbXMKICAgICAgICA6CiAgICAgICAgWzEuMF0gCiAgICAgICAgICAgIFNvbWUgc3R1ZmYgZml4ZWQKIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjAgYWRkPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuMCBhZGQKICAgICAgICBieQogICAgICAgIGZlbGl4Y21zCiAgICAgICAgOgogICAgICAgIFsxLjBdIAogICAgICAgICAgICBBZGRlZCBuZXcgdXNlci9wb2xpY3kgZm9yIGEgZ3Vlc3QgdXNlciB3aG8gaXMgb25seSBhbGxvd2VkIHRvIHNlZSB0aGUgcGFnZXMgaW4gdGhlIGF1dGhvcmluZyBhcmVhLCBidXQgbm90IHRvIGVkaXQsIHB1Ymxpc2gsIGNyZWF0ZSwgZXRjLgogRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuMCBhZGQ8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS4wIGFkZAogICAgICAgIGJ5CiAgICAgICAgZ3JlZ29yY21zCiAgICAgICAgOgogICAgICAgIFsxLjBdIAogICAgICAgICAgICAqKiogZW1wdHkgbG9nIG1lc3NhZ2UgKioqCiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS4wIGFkZDwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjAgYWRkCiAgICAgICAgYnkKICAgICAgICBncmVnb3JjbXMKICAgICAgICA6CiAgICAgICAgWzEuMF0gCiAgICAgICAgICAgICoqKiBlbXB0eSBsb2cgbWVzc2FnZSAqKioKIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjAgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuMCB1cGRhdGUKICAgICAgICBieQogICAgICAgIGdyZWdvcmNtcwogICAgICAgIDoKICAgICAgICBbMS4wXSAKICAgICAgICAgICAgCiAgICAgICAgICAgICAmbHQ7bWFwOnBpCiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS4wIHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjAgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBlZ2xpd3lvbmEKICAgICAgICA6CiAgICAgICAgWzEuMF0gCiAgICAgICAgICAgIEZpeGVkIGEgYnJvd24gcGFwZXIgYmFnIGJ1ZywgaS5lLiBzaXRlbWFwIHBhdGggd2FzIG5vdCBhZGRlZCB0bwpyZXNvdXJjZXMgcGF0aC4KIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjAgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuMCB1cGRhdGUKICAgICAgICBieQogICAgICAgIGVnbGl3eW9uYQogICAgICAgIDoKICAgICAgICBbMS4wXSAKICAgICAgICAgICAgRml4ZWQgYSBwcm9ibGVtIHdpdGggdGhlIGZpbGUgcGF0aCBjb21wdXRhdGlvbiBmb3IgbWV0YSBkYXRhIGFuZCB0aGUKaW1hZ2UgZmlsZSB3aGVuIHRoZSBkb2N1bWVudElkIGhhcyBubyBwYXJlbnQsIGkuZS4gaXMgZGlyZWN0bHkgaW4gdGhlCnJvb3QgcGF0aC4KIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjAgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuMCB1cGRhdGUKICAgICAgICBieQogICAgICAgIGdyZWdvcmNtcwogICAgICAgIDoKICAgICAgICBbMS4wXSAKICAgICAgICAgICAgY29tcHV0ZXJ3b3JsZCB1cGRhdGVzCiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS4wIGFkZDwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjAgYWRkCiAgICAgICAgYnkKICAgICAgICAKICAgICAgICA6CiAgICAgICAgWzEuMF0gCiAgICAgICAgICAgIFRoaXMgY29tbWl0IHdhcyBtYW51ZmFjdHVyZWQgYnkgY3ZzMnN2biB0byBjcmVhdGUgdGFnICdNQUlOJy4gRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuMCByZW1vdmU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS4wIHJlbW92ZQogICAgICAgIGJ5CiAgICAgICAgCiAgICAgICAgOgogICAgICAgIFsxLjBdIAogICAgICAgICAgICBUaGlzIGNvbW1pdCB3YXMgbWFudWZhY3R1cmVkIGJ5IGN2czJzdm4gdG8gY3JlYXRlIGJyYW5jaCAnVkVORCcuIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjAgYWRkPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuMCBhZGQKICAgICAgICBieQogICAgICAgIGdyZWdvcmNtcwogICAgICAgIDoKICAgICAgICBbMS4wXSAKICAgICAgICAgICAgSW5pdGlhbCByZXZpc2lvbgogRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuMCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS4wIHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgbWljaGljbXMKICAgICAgICA6CiAgICAgICAgWzEuMF0gCiAgICAgICAgICAgIE9TQ09NIEJsb2cgYWRkZWQKIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjAgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuMCB1cGRhdGUKICAgICAgICBieQogICAgICAgIG1pY2hpY21zCiAgICAgICAgOgogICAgICAgIFsxLjBdIAogICAgICAgICAgICBPdXRPZk1lbW9yeUV4Y2VwdGlvbiBmaXhlZAogRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuMCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS4wIHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgZWdsaXd5b25hCiAgICAgICAgOgogICAgICAgIFsxLjBdIAogICAgICAgICAgICBNYWtlIHRoZSBjb2RlIG1vcmUgcm9idXN0IGFnYWluc3Qgd3JvbmcgcmVxdWVzdCBwYXJhbWV0ZXJzLCBpLmUuIHJlYWN0CmdyYWNlZnVsbHkgaWYgdGhlIGltYWdlWHBhdGggY2FuJ3QgYmUgZm91bmQgb3IgdGhlIGltYWdlWHBhdGggZG9lc24ndApoYXZlIGEgcGFyZW50IG5vZGUuCiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS4wIHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjAgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBtaWNoaWNtcwogICAgICAgIDoKICAgICAgICBbMS4wXSAKICAgICAgICAgICAgSW5kZXhFbnZpcm9ubWVudCBhZGRlZAogRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuMCBhZGQ8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS4wIGFkZAogICAgICAgIGJ5CiAgICAgICAgbWljaGljbXMKICAgICAgICA6CiAgICAgICAgWzEuMF0gCiAgICAgICAgICAgIFNsaWRlcyBpbXByb3ZlZAogRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuMCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS4wIHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgbWljaGljbXMKICAgICAgICA6CiAgICAgICAgWzEuMF0gCiAgICAgICAgICAgIFNvcnQgdG8gU2VhcmNoIGFkZGVkCiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS4wIHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjAgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBmZWxpeGNtcwogICAgICAgIDoKICAgICAgICBbMS4wXSAKICAgICAgICAgICAgRml4ZWQgc2NoZWR1bGVyIGJ1ZyAoeWVhciAyMDAyIHdhcyBoYXJkY29kZWQpCiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS4wIHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjAgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBtaWNoaWNtcwogICAgICAgIDoKICAgICAgICBbMS4wXSAKICAgICAgICAgICAgcHVibGljYXRpb24gaWQgYWRkZWQKIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjAgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuMCB1cGRhdGUKICAgICAgICBieQogICAgICAgIG1pY2hpY21zCiAgICAgICAgOgogICAgICAgIFsxLjBdIAogICAgICAgICAgICBJUCBhbmQgUG9ydCByZW1vdmVkCiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS4wIHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjAgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBtaWNoaWNtcwogICAgICAgIDoKICAgICAgICBbMS4wXSAKICAgICAgICAgICAgUkNPIGFuZCBSQ0kgaW1wbGVtZW50ZWQKIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjAgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuMCB1cGRhdGUKICAgICAgICBieQogICAgICAgIG1pY2hpY21zCiAgICAgICAgOgogICAgICAgIFsxLjBdIAogICAgICAgICAgICBTZWFyY2ggaW1wcm92ZWQKIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjAgYWRkPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuMCBhZGQKICAgICAgICBieQogICAgICAgIG1pY2hpY21zCiAgICAgICAgOgogICAgICAgIFsxLjBdIAogICAgICAgICAgICBDcmF3bGVyIGNvbmZpZ3VyYWJsZQogRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuMCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS4wIHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgZmVsaXhjbXMKICAgICAgICA6CiAgICAgICAgWzEuMF0gCiAgICAgICAgICAgIEZpeGluZyBzY2hlbWEgYnVnICh3YXMgbm90IHdvcmtpbmcgd2l0aCBYb3B1cykKIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjAgYWRkPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuMCBhZGQKICAgICAgICBieQogICAgICAgIG1pY2hpY21zCiAgICAgICAgOgogICAgICAgIFsxLjBdIAogICAgICAgICAgICBsdWNlbmUgMS4zIGFkZGVkCiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS4wIHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjAgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBtaWNoaWNtcwogICAgICAgIDoKICAgICAgICBbMS4wXSAKICAgICAgICAgICAgSW1wcm92ZWQgU2VhcmNoCiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS4wIGFkZDwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjAgYWRkCiAgICAgICAgYnkKICAgICAgICBtaWNoaWNtcwogICAgICAgIDoKICAgICAgICBbMS4wXSAKICAgICAgICAgICAgYWRkIHNhbXBsZSBpbmRleAogRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuMCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS4wIHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgbWljaGljbXMKICAgICAgICA6CiAgICAgICAgWzEuMF0gCiAgICAgICAgICAgIFNlYXJjaCBpbXByb3ZlZAogRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuMCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS4wIHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgbWljaGljbXMKICAgICAgICA6CiAgICAgICAgWzEuMF0gCiAgICAgICAgICAgIGhhcmRjb2RlZCBhcnRpY2xlIHJlbW92ZWQsIHdoZXJlIHB1YmxpY2F0aW9uIGlzIHN0aWxsIGhhcmRjb2RlZAogRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuMCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS4wIHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgZWdsaXd5b25hCiAgICAgICAgOgogICAgICAgIFsxLjBdIAogICAgICAgICAgICBUaGUgcGF0aCB0byB3aGVyZSB0aGUgbWV0YSBkYXRhIGlzIHN0b3JlZCBpcyBub3cgY2FsY3VsYXRlZCBpbiBhCnNpbWlsYXIgd2F5IGFzIHRoZSBpbWFnZSBwYXRoIGlzIGNhbGN1bGF0ZWQuIFRoaXMgZml4ZXMgIzE1LgogRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuMCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS4wIHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgZmVsaXhjbXMKICAgICAgICA6CiAgICAgICAgWzEuMF0gCiAgICAgICAgICAgIEJ1ZyBmaXhlZDogYWRkZWQgeWVhciB0byBwdWJsaXNoaW5nIHVyaXMKIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjAgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuMCB1cGRhdGUKICAgICAgICBieQogICAgICAgIG1pY2hpY21zCiAgICAgICAgOgogICAgICAgIFsxLjBdIAogICAgICAgICAgICBSZXZpc2lvbiBDb250cm9sbGVyIHRvIEJpdGZsdXggYWRkZWQKIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjAgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuMCB1cGRhdGUKICAgICAgICBieQogICAgICAgIGZlbGl4Y21zCiAgICAgICAgOgogICAgICAgIFsxLjBdIAogICAgICAgICAgICAvZG9zc2llcnMvaW5kZXguaHRtbCBpcyBleHBvcnRlZCBhcyB3ZWxsIHdoZW4gYSBEb3NzaWVyIGlzIHB1Ymxpc2hlZAogRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuMCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS4wIHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgbWljaGljbXMKICAgICAgICA6CiAgICAgICAgWzEuMF0gCiAgICAgICAgICAgIG5pdHR5IGdyaXR0eQogRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuMCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS4wIHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgbWljaGljbXMKICAgICAgICA6CiAgICAgICAgWzEuMF0gCiAgICAgICAgICAgIFJldmlzaW9uIENvbnRyb2xsZXIgYWRkZWQKIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjAgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuMCB1cGRhdGUKICAgICAgICBieQogICAgICAgIG1pY2hpY21zCiAgICAgICAgOgogICAgICAgIFsxLjBdIAogICAgICAgICAgICBSZXNlcnZlZCBDaGVja0luIGFkZGVkCiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS4wIGFkZDwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjAgYWRkCiAgICAgICAgYnkKICAgICAgICBtaWNoaWNtcwogICAgICAgIDoKICAgICAgICBbMS4wXSAKICAgICAgICAgICAgQ01TIE9tZWdhQ01TIGFkZGVkCiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS4wIHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjAgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBtaWNoaWNtcwogICAgICAgIDoKICAgICAgICBbMS4wXSAKICAgICAgICAgICAgUmV2aXNpb24gQ29udHJvbGxlciB0byBYb3B1cyBhZGRlZAogRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuMCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS4wIHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgbWljaGljbXMKICAgICAgICA6CiAgICAgICAgWzEuMF0gCiAgICAgICAgICAgIGRlYnVnZ2luZyBpbXByb3ZlZAogRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuMCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS4wIHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgbWljaGljbXMKICAgICAgICA6CiAgICAgICAgWzEuMF0gCiAgICAgICAgICAgIFBhdWwncyB3aXNoZXMgaW1wbGVtZW50ZWQKIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjAgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuMCB1cGRhdGUKICAgICAgICBieQogICAgICAgIG1pY2hpY21zCiAgICAgICAgOgogICAgICAgIFsxLjBdIAogICAgICAgICAgICBEZWZhdWx0IHZhbHVlcyBhZGRlZAogRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuMCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS4wIHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgbWljaGljbXMKICAgICAgICA6CiAgICAgICAgWzEuMF0gCiAgICAgICAgICAgIFN0cmluZyBjaGlsZE5hbWUgYWRkZWQKIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjAgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuMCB1cGRhdGUKICAgICAgICBieQogICAgICAgIG1pY2hpY21zCiAgICAgICAgOgogICAgICAgIFsxLjBdIAogICAgICAgICAgICB4aW5jbHVkZSBieSB4bGluayByZXBsYWNlZAogRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDAuOCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MC44IHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgZWdsaXd5b25hCiAgICAgICAgOgogICAgICAgIFswLjhdIAogICAgICAgICAgICBUbyBmaXggcHJvYmxlbSBodHRwOi8vY3ZzLnd5b25hLm9yZy9idWdzL3Nob3dfYnVnLmNnaT9pZD0yMiBJIGluc2VydGVkCmEgYWNjZXB0LWNoYXJzZXQgaW4gdGhlIGZvcm0sIGhvcGluZyB0aGlzIHdpbGwgZml4IHRoZSBwcm9ibGVtLgogRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDAuOCBhZGQ8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MC44IGFkZAogICAgICAgIGJ5CiAgICAgICAgbWljaGljbXMKICAgICAgICA6CiAgICAgICAgWzAuOF0gCiAgICAgICAgICAgIFJlZCBIYXQgQ0NNIGFkZGVkCiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMC44IHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4wLjggdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBtaWNoaWNtcwogICAgICAgIDoKICAgICAgICBbMC44XSAKICAgICAgICAgICAgY21zd2F0Y2ggcmVhZGRlZCBhbmQgcmVkaGF0CiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMC44IHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4wLjggdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBtaWNoaWNtcwogICAgICAgIDoKICAgICAgICBbMC44XSAKICAgICAgICAgICAgZXhjbHVkZSBmb3IgaW5zdGFsbCBhbmQgcmVzZXQgdGFyZ2V0CiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMC44IGFkZDwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4wLjggYWRkCiAgICAgICAgYnkKICAgICAgICBtaWNoaWNtcwogICAgICAgIDoKICAgICAgICBbMC44XSAKICAgICAgICAgICAgRWRpdG9yIFByb2plY3QgQ3JlYXRvciBhZGRlZAogRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDAuOCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MC44IHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgbWljaGljbXMKICAgICAgICA6CiAgICAgICAgWzAuOF0gCiAgICAgICAgICAgIE5ldyBFZGl0b3IgUHJvamVjdCBidXR0b24gYWRkZWQKIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAwLjggdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjAuOCB1cGRhdGUKICAgICAgICBieQogICAgICAgIG1pY2hpY21zCiAgICAgICAgOgogICAgICAgIFswLjhdIAogICAgICAgICAgICBMb2dnaW5nIGltcHJvdmVkCiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMC44IHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4wLjggdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBmZWxpeGNtcwogICAgICAgIDoKICAgICAgICBbMC44XSAKICAgICAgICAgICAgQWRkaW5nIHVyaSB1bml6aC1oZWFkbGluZS50eHQgdG8gJ1NjaGVkdWxlIGhlYWRsaW5lcycKIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAwLjggdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjAuOCB1cGRhdGUKICAgICAgICBieQogICAgICAgIGZlbGl4Y21zCiAgICAgICAgOgogICAgICAgIFswLjhdIAogICAgICAgICAgICBzc2ktaW5jbHVkZSBmb3IgdGhlIGhvbWVwYWdlIG9mIHRoZSBVbml2ZXJzaXR5IG9mIFp1cmljaCAod3d3LnVuaXpoLmNoKQogRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDAuOCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MC44IHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgbWljaGljbXMKICAgICAgICA6CiAgICAgICAgWzAuOF0gCiAgICAgICAgICAgIHNvbWUgZHVzdCByZW1vdmVkCiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMC44IHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4wLjggdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBtaWNoaWNtcwogICAgICAgIDoKICAgICAgICBbMC44XSAKICAgICAgICAgICAgY29udGVudCB1cGRhdGVkCiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMC44IGFkZDwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4wLjggYWRkCiAgICAgICAgYnkKICAgICAgICBtaWNoaWNtcwogICAgICAgIDoKICAgICAgICBbMC44XSAKICAgICAgICAgICAgR2V0dGluZyBleGNlcnB0cwogRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDAuOCBhZGQ8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MC44IGFkZAogICAgICAgIGJ5CiAgICAgICAgbWljaGljbXMKICAgICAgICA6CiAgICAgICAgWzAuOF0gCiAgICAgICAgICAgIEJ1Z3ppbGxhIGFuZCBjdnN3ZWIgYW5ub3VuY2VkCiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMC44IGFkZDwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4wLjggYWRkCiAgICAgICAgYnkKICAgICAgICBtaWNoaWNtcwogICAgICAgIDoKICAgICAgICBbMC44XSAKICAgICAgICAgICAgRWRpdG9yIG1hdHJpeCByZWFkeSBmb3IgcmV2aWV3CiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMC44IHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4wLjggdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBmZWxpeGNtcwogICAgICAgIDoKICAgICAgICBbMC44XSAKICAgICAgICAgICAgRml4ZWQgYnVnICMzMTogZmlyc3QtcHVibGlzaGVkIGRhdGUgb2YgYXJ0aWNsZQogRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDAuOCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MC44IHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgZmVsaXhjbXMKICAgICAgICA6CiAgICAgICAgWzAuOF0gCiAgICAgICAgICAgIEZpeGVkIGJ1ZyAjMjkgKGZlYXR1cmUpOiBBZGRlZCBiY2MgdG8gbmV3c2xldHRlciBhbmQgTWFpbFRhc2sKIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAwLjggdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjAuOCB1cGRhdGUKICAgICAgICBieQogICAgICAgIGZlbGl4Y21zCiAgICAgICAgOgogICAgICAgIFswLjhdIAogICAgICAgICAgICBGaXhlZCBidWcgIzI2IChzaXplIG9mIGlucHV0IGZpZWxkcykKIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAwLjggdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjAuOCB1cGRhdGUKICAgICAgICBieQogICAgICAgIGZlbGl4Y21zCiAgICAgICAgOgogICAgICAgIFswLjhdIAogICAgICAgICAgICBGaXhlZCBidWcgIzI2IChDYW1wdXMgaW1nKQogRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDAuOCBhZGQ8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MC44IGFkZAogICAgICAgIGJ5CiAgICAgICAgYWgKICAgICAgICA6CiAgICAgICAgWzAuOF0gCiAgICAgICAgICAgIEZpeGVkIGJ1ZyAjNyAoc2NoZWR1bGVyKQogRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDAuOCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MC44IHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgYWgKICAgICAgICA6CiAgICAgICAgWzAuOF0gCiAgICAgICAgICAgIEZpeGVkIGJ1ZyAjNyAoc2NoZWR1bGVyKQogRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDAuOCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MC44IHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgYWgKICAgICAgICA6CiAgICAgICAgWzAuOF0gCiAgICAgICAgICAgIEdvaW5nIGJhY2s6IFVtbGF1dHMgc2hvdWxkIGJlIHdvcmtpbmcgYWdhaW4KIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAwLjggdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjAuOCB1cGRhdGUKICAgICAgICBieQogICAgICAgIG1pY2hpY21zCiAgICAgICAgOgogICAgICAgIFswLjhdIAogICAgICAgICAgICBldGh6LW1hdCBhdXRvbW91bnRlZAogRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDAuOCBhZGQ8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MC44IGFkZAogICAgICAgIGJ5CiAgICAgICAgbWljaGljbXMKICAgICAgICA6CiAgICAgICAgWzAuOF0gCiAgICAgICAgICAgIEVkaXRvciBNYXRyaXggbmVhcmx5IGZpbmlzaGVkCiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMC44IHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4wLjggdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBtaWNoaWNtcwogICAgICAgIDoKICAgICAgICBbMC44XSAKICAgICAgICAgICAgaW50cm9kdWN0aW9uIGZvciB3eW9uYS5vcmcgcHVibGljYXRpb24KIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAwLjggYWRkPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjAuOCBhZGQKICAgICAgICBieQogICAgICAgIG1pY2hpY21zCiAgICAgICAgOgogICAgICAgIFswLjhdIAogICAgICAgICAgICBFZGl0b3IgTWVudWJhciBhZGRlZAogRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDAuOCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MC44IHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgbWljaGljbXMKICAgICAgICA6CiAgICAgICAgWzAuOF0gCiAgICAgICAgICAgIG1hZGUgYWxsIHB1YnMgZXF1YWwKIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAwLjggdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjAuOCB1cGRhdGUKICAgICAgICBieQogICAgICAgIGFoCiAgICAgICAgOgogICAgICAgIFswLjhdIAogICAgICAgICAgICBCdWcgMjEgZml4ZWQKIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAwLjggdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjAuOCB1cGRhdGUKICAgICAgICBieQogICAgICAgIG1pY2hpY21zCiAgICAgICAgOgogICAgICAgIFswLjhdIAogICAgICAgICAgICBzZXJ2bGV0LWNvbnRleHQgbm90IHJlcXVpcmVkIGZvciBTY2hlZHVsZXIgYW55IG1vcmUKIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAwLjggdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjAuOCB1cGRhdGUKICAgICAgICBieQogICAgICAgIGZlbGl4Y21zCiAgICAgICAgOgogICAgICAgIFswLjhdIAogICAgICAgICAgICBDb21tZW50ZWQgb3V0IEhlbGxvIFdvcmxkIGpvYgogRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDAuOCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MC44IHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgYWgKICAgICAgICA6CiAgICAgICAgWzAuOF0gCiAgICAgICAgICAgIGZpbGU6Ly8gcHJvdG9jb2wgYWRkZWQgZm9yIHVyaSByZWFkaW5nCiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMC44IHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4wLjggdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBhaAogICAgICAgIDoKICAgICAgICBbMC44XSAKICAgICAgICAgICAgc2VydmxldC1jb250ZXh0IHBhcmFtZXRlciByZXBsYWNlZCBieSBTY2hlZHVsZXJXcmFwcGVyCiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMC44IGFkZDwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4wLjggYWRkCiAgICAgICAgYnkKICAgICAgICBtaWNoaWNtcwogICAgICAgIDoKICAgICAgICBbMC44XSAKICAgICAgICAgICAgRWRpdG9yIExpc3QgaW1wcm92ZWQKIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAwLjggYWRkPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjAuOCBhZGQKICAgICAgICBieQogICAgICAgIGZlbGl4Y21zCiAgICAgICAgOgogICAgICAgIFswLjhdIAogICAgICAgICAgICBGaXhlZCBidWcgIzI1OiBkaXNwbGF5aW5nIGxpbmtzIGluIHJlbGF0ZWQgY29udGVudCBvZiBkb3NzaWVycwogRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDAuOCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MC44IHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgZmVsaXhjbXMKICAgICAgICA6CiAgICAgICAgWzAuOF0gCiAgICAgICAgICAgIEFkZGVkIHdhcm5pbmcgYWJvdXQgZmlsZW5hbWVzIChidWcgIzI0KQogRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDAuOCBhZGQ8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MC44IGFkZAogICAgICAgIGJ5CiAgICAgICAgbWljaGljbXMKICAgICAgICA6CiAgICAgICAgWzAuOF0gCiAgICAgICAgICAgIEVkaXRvciBNYXRyaXggc3RhcnRlZAogRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDAuOCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MC44IHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgbWljaGljbXMKICAgICAgICA6CiAgICAgICAgWzAuOF0gCiAgICAgICAgICAgIEV4Y2VwdGlvbiBIYW5kbGluZyBpbXByb3ZlZAogRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDAuOCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MC44IHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgbWljaGljbXMKICAgICAgICA6CiAgICAgICAgWzAuOF0gCiAgICAgICAgICAgIGdldCBMaW5rcyBhbmQgSW1hZ2VzIGZyb20gSFRNTCBmaXhlZAogRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDAuOCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MC44IHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgbWljaGljbXMKICAgICAgICA6CiAgICAgICAgWzAuOF0gCiAgICAgICAgICAgIExpbmsgdG8gUGF1bCBCcm93bmluZyBMaXN0CiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMC44IHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4wLjggdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBtaWNoaWNtcwogICAgICAgIDoKICAgICAgICBbMC44XSAKICAgICAgICAgICAgRXhjZXB0aW9uIGNhdWdodAogRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDAuOCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MC44IHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgZmVsaXhjbXMKICAgICAgICA6CiAgICAgICAgWzAuOF0gCiAgICAgICAgICAgIEZpeGVkIGJ1ZyAjMTg6IEFkZGluZyB5ZWFyIDIwMDMKIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAwLjggdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjAuOCB1cGRhdGUKICAgICAgICBieQogICAgICAgIGZlbGl4Y21zCiAgICAgICAgOgogICAgICAgIFswLjhdIAogICAgICAgICAgICBGaXhlZCBidWcgIzE3OiBIVE1MIHRpdGxlcyBjb3JyZWN0ZWQKIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAwLjggdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjAuOCB1cGRhdGUKICAgICAgICBieQogICAgICAgIGZlbGl4Y21zCiAgICAgICAgOgogICAgICAgIFswLjhdIAogICAgICAgICAgICBGaXhlZCBidWcgIzE5OiBjaGFuZ2VkIG5hdmlnYXRpb24gbGlua3MKIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAwLjggdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjAuOCB1cGRhdGUKICAgICAgICBieQogICAgICAgIGZlbGl4Y21zCiAgICAgICAgOgogICAgICAgIFswLjhdIAogICAgICAgICAgICBGaXhpbmcgYnVnICMxNDogcmVuYW1pbmcgZGlyICdnZWlzdCcgdG8gJ2dlc2VsbHNjaGFmdCcgYW5kICdyZWNodCcgdG8gJ3dpcnRzY2hhZnQnCiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMC44IHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4wLjggdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBtaWNoaWNtcwogICAgICAgIDoKICAgICAgICBbMC44XSAKICAgICAgICAgICAgRG93bmxvYWQgaW1hZ2VzIGV0YwogRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDAuOCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MC44IHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgYWgKICAgICAgICA6CiAgICAgICAgWzAuOF0gCiAgICAgICAgICAgIFRyYW5zZm9ybWVyIGNvbmZpZwogRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDAuOCBhZGQ8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MC44IGFkZAogICAgICAgIGJ5CiAgICAgICAgZmVsaXhjbXMKICAgICAgICA6CiAgICAgICAgWzAuOF0gCiAgICAgICAgICAgIEZpeGluZyBidWcgIzE0OiByZW5hbWluZyBkaXIgJ2dlaXN0JyB0byAnZ2VzZWxsc2NoYWZ0JyBhbmQgJ3JlY2h0JyB0byAnd2lydHNjaGFmdCcKIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAwLjggdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjAuOCB1cGRhdGUKICAgICAgICBieQogICAgICAgIGFoCiAgICAgICAgOgogICAgICAgIFswLjhdIAogICAgICAgICAgICBPdXRwdXRTdHJlYW0gZm9yIGdldE5vZGVWYWx1ZSgpCiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMC44IHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4wLjggdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBhaAogICAgICAgIDoKICAgICAgICBbMC44XSAKICAgICAgICAgICAgZGVidWc6IGRvY3VtZW50IGR1bXAKIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAwLjggcmVtb3ZlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjAuOCByZW1vdmUKICAgICAgICBieQogICAgICAgIGZlbGl4Y21zCiAgICAgICAgOgogICAgICAgIFswLjhdIAogICAgICAgICAgICBGaXhpbmcgYnVnICMxNDogcmVuYW1pbmcgZGlyICdnZWlzdCcgdG8gJ2dlc2VsbHNjaGFmdCcgYW5kICdyZWNodCcgdG8gJ3dpcnRzY2hhZnQnCiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMC44IHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4wLjggdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBhaAogICAgICAgIDoKICAgICAgICBbMC44XSAKICAgICAgICAgICAgdHJ5aW5nIFdyaXRlciBmb3IgVGV4dC5nZXROb2RlVmFsdWUoKQogRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDAuOCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MC44IHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgYWgKICAgICAgICA6CiAgICAgICAgWzAuOF0gCiAgICAgICAgICAgICoqKiBlbXB0eSBsb2cgbWVzc2FnZSAqKioKIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAwLjggdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjAuOCB1cGRhdGUKICAgICAgICBieQogICAgICAgIG1pY2hpY21zCiAgICAgICAgOgogICAgICAgIFswLjhdIAogICAgICAgICAgICBMaW5rcyBhbmQgU291cmNlcyBhcmUgbm93IGV4dHJhY3RlZAogRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDAuOCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MC44IHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgbWljaGljbXMKICAgICAgICA6CiAgICAgICAgWzAuOF0gCiAgICAgICAgICAgIExpbmtzIGFuZCBTb3VyY2VzIGFyZSBub3cgZXh0cmFjdGVkCiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMC44IHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4wLjggdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBmZWxpeGNtcwogICAgICAgIDoKICAgICAgICBbMC44XSAKICAgICAgICAgICAgRml4ZWQgYnVnICMxMzogcmVwbGFjZWQgd3JvbmcgJ3R5cGUnIGF0dHJpYnV0ZSBpbiB4c2w6b3V0cHV0IGVsZW1lbnQKIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAwLjggdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjAuOCB1cGRhdGUKICAgICAgICBieQogICAgICAgIGZlbGl4Y21zCiAgICAgICAgOgogICAgICAgIFswLjhdIAogICAgICAgICAgICBGaXhlZCBidWcgIzEwOiBhZGRlZCB0ZW1wbGF0ZSBmb3IgJmx0O2JyLyZndDsKIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAwLjggdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjAuOCB1cGRhdGUKICAgICAgICBieQogICAgICAgIGZlbGl4Y21zCiAgICAgICAgOgogICAgICAgIFswLjhdIAogICAgICAgICAgICBGaXhlZCBidWcgIzggYW5kICMxMTogY2hlY2tpbmcgaWYgcmVsYXRlZCBjb250ZW50IGlzIGVtcHR5IGFuZCBsaW5rcyBpbiByZWxhdGVkIGNvbnRlbnQKIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAwLjggdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjAuOCB1cGRhdGUKICAgICAgICBieQogICAgICAgIGZlbGl4Y21zCiAgICAgICAgOgogICAgICAgIFswLjhdIAogICAgICAgICAgICBSZW1vdmVkICdib2xkJyBmcm9tIGZpcnN0IHJvdyBvZiBhIHRhYmxlIC0gZml4ZWQgYnVnICM5CiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMC44IHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4wLjggdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBhaAogICAgICAgIDoKICAgICAgICBbMC44XSAKICAgICAgICAgICAgdmFsaWRhdGlvbiBkaXNhYmxlZAogRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDAuOCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MC44IHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgYWgKICAgICAgICA6CiAgICAgICAgWzAuOF0gCiAgICAgICAgICAgIERvY3VtZW50QnVpbGRlckZhY3RvcnkgZGVidWdnaW5nCiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMC44IHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4wLjggdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBhaAogICAgICAgIDoKICAgICAgICBbMC44XSAKICAgICAgICAgICAgQ29jb29uIEVudGl0eXJlc29sdmVyIHRlc3QKIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAwLjggdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjAuOCB1cGRhdGUKICAgICAgICBieQogICAgICAgIG1pY2hpY21zCiAgICAgICAgOgogICAgICAgIFswLjhdIAogICAgICAgICAgICBTRlRQIHNob3VsZCBiZSBvayBub3cKIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAwLjggdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjAuOCB1cGRhdGUKICAgICAgICBieQogICAgICAgIGFoCiAgICAgICAgOgogICAgICAgIFswLjhdIAogICAgICAgICAgICBFbnRpdHlSZXNvbHZlciBzZXQgdG8gRGVmYXVsdEhhbmRsZXIKIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAwLjggdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjAuOCB1cGRhdGUKICAgICAgICBieQogICAgICAgIGFoCiAgICAgICAgOgogICAgICAgIFswLjhdIAogICAgICAgICAgICBMb2dnZXIgY2xhc3MgY2hhbmdlZAogRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDAuOCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MC44IHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgbWljaGljbXMKICAgICAgICA6CiAgICAgICAgWzAuOF0gCiAgICAgICAgICAgIExpbmtzIGFuZCBTb3VyY2VzIGFyZSBub3cgZXh0cmFjdGVkCiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMC44IHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4wLjggdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBmZWxpeGNtcwogICAgICAgIDoKICAgICAgICBbMC44XSAKICAgICAgICAgICAgRml4ZWQgYSBidWcgd2l0aCB0aGUgbGl2ZSB1cmkgKG5ld2xpbmUgd2l0aGluIHRoZSBlbGVtZW50IGFkZGVkIHN0cmFuZ2UgY2hhcmFjdGVycykKIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAwLjggYWRkPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjAuOCBhZGQKICAgICAgICBieQogICAgICAgIG1pY2hpY21zCiAgICAgICAgOgogICAgICAgIFswLjhdIAogICAgICAgICAgICBIVE1MIFV0aWxpdHkgY2xhc3MKIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAwLjggdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjAuOCB1cGRhdGUKICAgICAgICBieQogICAgICAgIG1pY2hpY21zCiAgICAgICAgOgogICAgICAgIFswLjhdIAogICAgICAgICAgICBQZXJjZW50IGFkZGVkCiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMC44IHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4wLjggdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBtaWNoaWNtcwogICAgICAgIDoKICAgICAgICBbMC44XSAKICAgICAgICAgICAgVXNhZ2Ugb2YgbmV0c3RhdCBvbiBTb2xhcmlzCiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMC44IHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4wLjggdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBtaWNoaWNtcwogICAgICAgIDoKICAgICAgICBbMC44XSAKICAgICAgICAgICAgYW5vdGhlciBnZXQgbGlua3MgbWV0aG9kCiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMC44IHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4wLjggdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBtaWNoaWNtcwogICAgICAgIDoKICAgICAgICBbMC44XSAKICAgICAgICAgICAgbm8gbW9yZSBwYWdlMmh0bWwueHNsCiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMC44IHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4wLjggdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBtaWNoaWNtcwogICAgICAgIDoKICAgICAgICBbMC44XSAKICAgICAgICAgICAgT3V0cHV0IFN0cmVhbSBjbG9zZWQKIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAwLjggYWRkPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjAuOCBhZGQKICAgICAgICBieQogICAgICAgIG1pY2hpY21zCiAgICAgICAgOgogICAgICAgIFswLjhdIAogICAgICAgICAgICBDTVMgcHJvamVjdHMgYWNjZXNzIGNvbnRyb2xsaW5nCiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMC44IHJlbW92ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4wLjggcmVtb3ZlCiAgICAgICAgYnkKICAgICAgICBtaWNoaWNtcwogICAgICAgIDoKICAgICAgICBbMC44XSAKICAgICAgICAgICAgbWF5YmUgbGF0ZXIKIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAwLjggcmVtb3ZlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjAuOCByZW1vdmUKICAgICAgICBieQogICAgICAgIG1pY2hpY21zCiAgICAgICAgOgogICAgICAgIFswLjhdIAogICAgICAgICAgICB3aWxsIGJlIGdlbmVyYXRlZCBkeW5hbWljYWxseQogRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDAuOCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MC44IHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgbWljaGljbXMKICAgICAgICA6CiAgICAgICAgWzAuOF0gCiAgICAgICAgICAgIGNvbnRlbnQgc2VwYXJhdGVkIGZyb20gbGF5b3V0CiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMC44IHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4wLjggdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBtaWNoaWNtcwogICAgICAgIDoKICAgICAgICBbMC44XSAKICAgICAgICAgICAgdGl0bGUgYWRkZWQKIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAwLjggYWRkPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjAuOCBhZGQKICAgICAgICBieQogICAgICAgIG1pY2hpY21zCiAgICAgICAgOgogICAgICAgIFswLjhdIAogICAgICAgICAgICBJdGVyYXRpdmUgSFRNTCBDcmF3bGVyCiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMC44IHJlbW92ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4wLjggcmVtb3ZlCiAgICAgICAgYnkKICAgICAgICBtaWNoaWNtcwogICAgICAgIDoKICAgICAgICBbMC44XSAKICAgICAgICAgICAgbW92ZWQgdG8gY3Jhd2xlciBhbmQgaW1wcm92ZWQKIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAwLjggcmVtb3ZlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjAuOCByZW1vdmUKICAgICAgICBieQogICAgICAgIG1pY2hpY21zCiAgICAgICAgOgogICAgICAgIFswLjhdIAogICAgICAgICAgICByZW1vdmVkIGJlY2F1c2UgaXQgZG9lcyBub3Qgd29yayByZWN1cnNpdmVseSBiZWNhdXNlIG9mIFN0YWNrIE92ZXJmbG93CiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMC44IHJlbW92ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4wLjggcmVtb3ZlCiAgICAgICAgYnkKICAgICAgICBtaWNoaWNtcwogICAgICAgIDoKICAgICAgICBbMC44XSAKICAgICAgICAgICAgbW92ZWQgdG8gY3Jhd2xlcgogRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDAuOCBhZGQ8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MC44IGFkZAogICAgICAgIGJ5CiAgICAgICAgbWljaGljbXMKICAgICAgICA6CiAgICAgICAgWzAuOF0gCiAgICAgICAgICAgIEl0ZXJhdGl2ZSBpcyBiZXR0ZXIgdGhhbiBSZWN1cnNpdmUKIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAwLjggYWRkPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjAuOCBhZGQKICAgICAgICBieQogICAgICAgIG1pY2hpY21zCiAgICAgICAgOgogICAgICAgIFswLjhdIAogICAgICAgICAgICBDcmF3bGVyIGFkZGVkCiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMC44IHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4wLjggdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBtaWNoaWNtcwogICAgICAgIDoKICAgICAgICBbMC44XSAKICAgICAgICAgICAgb25lIG1vcmUgcHJvYmxlbQogRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDAuOCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MC44IHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgbWljaGljbXMKICAgICAgICA6CiAgICAgICAgWzAuOF0gCiAgICAgICAgICAgIGNyb24gZXhwcmVzc2lvbnMgbW9kaWZpZWQKIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAwLjggdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjAuOCB1cGRhdGUKICAgICAgICBieQogICAgICAgIG1pY2hpY21zCiAgICAgICAgOgogICAgICAgIFswLjhdIAogICAgICAgICAgICBGVU5DVElPTiBkb3dubG9hZFJTUyBpbXBsZW1lbnRlZAogRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDAuOCByZW1vdmU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MC44IHJlbW92ZQogICAgICAgIGJ5CiAgICAgICAgbWljaGljbXMKICAgICAgICA6CiAgICAgICAgWzAuOF0gCiAgICAgICAgICAgIGRpcmVjdGx5IHJldHJpZXZlZCBmcm9tIFd5b25hIE5ld3MgYW5kIENvbW1lbnRzCiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMC44IHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4wLjggdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBtaWNoaWNtcwogICAgICAgIDoKICAgICAgICBbMC44XSAKICAgICAgICAgICAgRGVwbG95bWVudCBhZGRlZAogRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDAuOCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MC44IHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgbWljaGljbXMKICAgICAgICA6CiAgICAgICAgWzAuOF0gCiAgICAgICAgICAgIHdyb25nIHJlbW90ZSBob3N0IGZpeGVkCiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMC44IHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4wLjggdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBtaWNoaWNtcwogICAgICAgIDoKICAgICAgICBbMC44XSAKICAgICAgICAgICAgQ3JvbiBFeHByZXNzaW9uIGltcGxlbWVudGVkCiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMC44IHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4wLjggdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBtaWNoaWNtcwogICAgICAgIDoKICAgICAgICBbMC44XSAKICAgICAgICAgICAgUlNTIERvd25sb2FkIGFuZCBPU0NPTSBFeHBvcnQKIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAwLjggcmVtb3ZlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjAuOCByZW1vdmUKICAgICAgICBieQogICAgICAgIG1pY2hpY21zCiAgICAgICAgOgogICAgICAgIFswLjhdIAogICAgICAgICAgICByZW5hbWVkIHRvIENvbW1hbmRMaW5lVGFzawogRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDAuOCBhZGQ8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MC44IGFkZAogICAgICAgIGJ5CiAgICAgICAgbWljaGljbXMKICAgICAgICA6CiAgICAgICAgWzAuOF0gCiAgICAgICAgICAgIEJldHRlciBTZWFyY2gKIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAwLjggYWRkPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjAuOCBhZGQKICAgICAgICBieQogICAgICAgIG1pY2hpY21zCiAgICAgICAgOgogICAgICAgIFswLjhdIAogICAgICAgICAgICBMdWNlbmUgU3RhbmRhcmQgU2VhcmNoIGFkZGVkCiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMC44IHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4wLjggdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBmZWxpeGNtcwogICAgICAgIDoKICAgICAgICBbMC44XSAKICAgICAgICAgICAgUmVtb3ZlZCBodG1sIHRpdGxlCiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMC44IHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4wLjggdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBmZWxpeGNtcwogICAgICAgIDoKICAgICAgICBbMC44XSAKICAgICAgICAgICAgQ2hhbmdlZCB0aGUgbWVudSBzdHJ1Y3R1cmUKIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAwLjggdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjAuOCB1cGRhdGUKICAgICAgICBieQogICAgICAgIGZlbGl4Y21zCiAgICAgICAgOgogICAgICAgIFswLjhdIAogICAgICAgICAgICBGaXhlZCBhIGJ1ZyAodGVhc2VyIGltYWdlIHdhcyBub3QgZGlzcGxheWVkIGluIGxpdmUpCiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMC44IHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4wLjggdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBmZWxpeGNtcwogICAgICAgIDoKICAgICAgICBbMC44XSAKICAgICAgICAgICAgRml4ZWQgdGhlIHJlcXVlc3QgcGFyYW1ldGVycyBmb3IgcHVibGlzaGluZyBXZWJwZXJsZW4gYW5kIERvc3NpZXJrYXN0ZW4KIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAwLjggdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjAuOCB1cGRhdGUKICAgICAgICBieQogICAgICAgIGZlbGl4Y21zCiAgICAgICAgOgogICAgICAgIFswLjhdIAogICAgICAgICAgICBGaXhlZCBhIGJ1ZyB3aXRoIHRoZSBEb3NzaWVyCiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMC44IHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4wLjggdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBmZWxpeGNtcwogICAgICAgIDoKICAgICAgICBbMC44XSAKICAgICAgICAgICAgSGFkIHRvIGNoYW5nZSBhdHRyaWJ1dGUgbmFtZXMgZnJvbSAiZGlyIiB0byAiaWQiIGR1ZSB0byBhIEJpdGZsdXhlZGl0b3IgYnVnIHRoYXQgcmVtb3ZlcyB0aGUgY29udGVudCBvZiAiZGlyIiBhdHRyaWJ1dGVzCiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMC44IHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4wLjggdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBmZWxpeGNtcwogICAgICAgIDoKICAgICAgICBbMC44XSAKICAgICAgICAgICAgSGFkIHRvIGNoYW5nZSBhdHRyaWJ1dGUgbmFtZXMgZnJvbSAiZGlyIiB0byAiaWQiIGR1ZSB0byBhIEJpdGZsdXhlZGl0b3IgYnVnIHRoYXQgcmVtb3ZlcyB0aGUgY29udGVudCBvZiAiZGlyIiBhdHRyaWJ1dGVzCiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMC44IHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4wLjggdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBmZWxpeGNtcwogICAgICAgIDoKICAgICAgICBbMC44XSAKICAgICAgICAgICAgRml4ZWQgYSBidWcgd2l0aCB0aGUgVVJMIG9mIHRoZSBhcnRpY2xlCiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMC44IHJlbW92ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4wLjggcmVtb3ZlCiAgICAgICAgYnkKICAgICAgICBmZWxpeGNtcwogICAgICAgIDoKICAgICAgICBbMC44XSAKICAgICAgICAgICAgTm90IG5lZWRlZAogRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDAuOCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MC44IHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgZmVsaXhjbXMKICAgICAgICA6CiAgICAgICAgWzAuOF0gCiAgICAgICAgICAgIE1hZGUgTmV3c2xldHRlciBlZGl0YWJsZSB3aXRoIEJpdGZsdXggKGFkZGVkIHNwYW4gdGFnIHdpdGggZWRpdGFibGUtYXR0cmlidXRlKQogRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDAuOCBhZGQ8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MC44IGFkZAogICAgICAgIGJ5CiAgICAgICAgZmVsaXhjbXMKICAgICAgICA6CiAgICAgICAgWzAuOF0gCiAgICAgICAgICAgIE1hZGUgTmV3c2xldHRlciBlZGl0YWJsZSB3aXRoIEJpdGZsdXgKIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAwLjggdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjAuOCB1cGRhdGUKICAgICAgICBieQogICAgICAgIG1pY2hpY21zCiAgICAgICAgOgogICAgICAgIFswLjhdIAogICAgICAgICAgICBuZWFybHkgZmluaXNoZWQsIGhvcGVmdWxseQogRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDAuOCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MC44IHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgbWljaGljbXMKICAgICAgICA6CiAgICAgICAgWzAuOF0gCiAgICAgICAgICAgIGxzIHJlcGxhY2VkIGJ5IGRhdGUKIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAwLjggdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjAuOCB1cGRhdGUKICAgICAgICBieQogICAgICAgIG1pY2hpY21zCiAgICAgICAgOgogICAgICAgIFswLjhdIAogICAgICAgICAgICBDb21tYW5kTGluZSBKb2IgYWRkZWQKIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAwLjggdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjAuOCB1cGRhdGUKICAgICAgICBieQogICAgICAgIGZlbGl4Y21zCiAgICAgICAgOgogICAgICAgIFswLjhdIAogICAgICAgICAgICBNYWRlIGhlYWRsaW5lcywgd2VicGVybHMsIGRvc3NpZXJrYXN0ZW4gb24gdGhlIGZyb250cGFnZSBlZGl0YWJsZSB3aXRoIGJpdGZsdXgKIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAwLjggdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjAuOCB1cGRhdGUKICAgICAgICBieQogICAgICAgIGZlbGl4Y21zCiAgICAgICAgOgogICAgICAgIFswLjhdIAogICAgICAgICAgICBVcGRhdGUgb2YgQml0Zmx1eGVkaXRvciAoYnVnZml4IGZvciBjaGFuZ2luZyB1cHBlci1jYXNlIHRvIGxvd2VyLWNhc2UgaW4gZWxlbWVudCBuYW1lcykKIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAwLjggdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjAuOCB1cGRhdGUKICAgICAgICBieQogICAgICAgIGFoCiAgICAgICAgOgogICAgICAgIFswLjhdIAogICAgICAgICAgICBIdHRwQ2xpZW50IFdvcmthcm91bmQ6IFBhc3NpbmcgYWxsIG9sZCByZXF1ZXN0IGhlYWRlcnMgdG8gbmV3IEhUVFAgbWV0aG9kCiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMC44IHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4wLjggdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBhaAogICAgICAgIDoKICAgICAgICBbMC44XSAKICAgICAgICAgICAgU2VydmxldEdlbmVyYXRvciByZW1vdmVkCiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMC44IHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4wLjggdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBhaAogICAgICAgIDoKICAgICAgICBbMC44XSAKICAgICAgICAgICAgVHJ5aW5nIFNlcnZsZXRHZW5lcmF0b3IKIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAwLjggdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjAuOCB1cGRhdGUKICAgICAgICBieQogICAgICAgIGFoCiAgICAgICAgOgogICAgICAgIFswLjhdIAogICAgICAgICAgICBUcnlpbmcgU2VydmxldEdlbmVyYXRvcgogRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDAuOCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MC44IHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgYWgKICAgICAgICA6CiAgICAgICAgWzAuOF0gCiAgICAgICAgICAgIGxvZyBtZXNzYWdlcyBjaGFuZ2VkCiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMC44IHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4wLjggdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBhaAogICAgICAgIDoKICAgICAgICBbMC44XSAKICAgICAgICAgICAgbG9nIG1lc3NhZ2VzCiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMC44IHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4wLjggdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBhaAogICAgICAgIDoKICAgICAgICBbMC44XSAKICAgICAgICAgICAgbG9nZ2luZyBjaGFuZ2VkCiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMC44IHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4wLjggdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBhaAogICAgICAgIDoKICAgICAgICBbMC44XSAKICAgICAgICAgICAgcmVtb3ZlZCBsb2cgbWVzc2FnZXMKIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAwLjggdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjAuOCB1cGRhdGUKICAgICAgICBieQogICAgICAgIGFoCiAgICAgICAgOgogICAgICAgIFswLjhdIAogICAgICAgICAgICBsb2cgbWVzc2FnZXMgaW5zZXJ0ZWQKIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAwLjggdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjAuOCB1cGRhdGUKICAgICAgICBieQogICAgICAgIGFoCiAgICAgICAgOgogICAgICAgIFswLjhdIAogICAgICAgICAgICBlbXB0eSBlbGVtZW50cyBhbGxvd2VkCiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMC44IHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4wLjggdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBhaAogICAgICAgIDoKICAgICAgICBbMC44XSAKICAgICAgICAgICAgbG9nIG1lc3NhZ2UgaW5zZXJ0ZWQKIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAwLjggdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjAuOCB1cGRhdGUKICAgICAgICBieQogICAgICAgIGFoCiAgICAgICAgOgogICAgICAgIFswLjhdIAogICAgICAgICAgICBwYXJhbWV0ZXIgbmFtZSBjaGFuZ2VkCiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMC44IGFkZDwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4wLjggYWRkCiAgICAgICAgYnkKICAgICAgICBtaWNoaWNtcwogICAgICAgIDoKICAgICAgICBbMC44XSAKICAgICAgICAgICAgc2Z0cCBuZWFybHkgZmluaXNoZWQKIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAwLjggdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjAuOCB1cGRhdGUKICAgICAgICBieQogICAgICAgIGFoCiAgICAgICAgOgogICAgICAgIFswLjhdIAogICAgICAgICAgICBFbXB0eSBuZXdzbGV0dGVyIGZpbGUKIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAwLjggYWRkPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjAuOCBhZGQKICAgICAgICBieQogICAgICAgIGFoCiAgICAgICAgOgogICAgICAgIFswLjhdIAogICAgICAgICAgICBzY2hlZHVsZXIgc3R5bGVzaGVldCB1dGlsaXR5IGFkZGVkCiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMC44IHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4wLjggdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBhaAogICAgICAgIDoKICAgICAgICBbMC44XSAKICAgICAgICAgICAgUGFyYW1ldGVyIG5hbWUgY2hhbmdlZCBmcm9tICdjb250ZXh0LXBhdGgnIHRvICdzZXJ2bGV0LWNvbnRleHQnCiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMC44IHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4wLjggdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBhaAogICAgICAgIDoKICAgICAgICBbMC44XSAKICAgICAgICAgICAgU2NoZWR1bGVyIEFkbWluIHVwZGF0ZWQKIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAwLjggdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjAuOCB1cGRhdGUKICAgICAgICBieQogICAgICAgIGFoCiAgICAgICAgOgogICAgICAgIFswLjhdIAogICAgICAgICAgICBBZG1pbmlzdHJhdG9yIGNoYW5nZWQKIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAwLjggdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjAuOCB1cGRhdGUKICAgICAgICBieQogICAgICAgIGFoCiAgICAgICAgOgogICAgICAgIFswLjhdIAogICAgICAgICAgICBzY2hlZHVsZXIgYWRtaW4gbWVudSBjaGFuZ2VkCiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMC44IHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4wLjggdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBhaAogICAgICAgIDoKICAgICAgICBbMC44XSAKICAgICAgICAgICAgJ2VtcHR5IGxpc3QnIGJ1ZyBmaXhlZAogRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDAuOCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MC44IHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgYWgKICAgICAgICA6CiAgICAgICAgWzAuOF0gCiAgICAgICAgICAgIG5ld3NsZXR0ZXIgcGFyYW1ldGVyICh1cmkpIGNoYW5nZWQKIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAwLjggdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjAuOCB1cGRhdGUKICAgICAgICBieQogICAgICAgIGFoCiAgICAgICAgOgogICAgICAgIFswLjhdIAogICAgICAgICAgICBUYXNrOiBzZXZlcmFsIGNoYW5nZXMKIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAwLjggdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjAuOCB1cGRhdGUKICAgICAgICBieQogICAgICAgIG1pY2hpY21zCiAgICAgICAgOgogICAgICAgIFswLjhdIAogICAgICAgICAgICBzZnRwIHNoZWxsIHNjcmlwdAogRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDAuOCBhZGQ8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MC44IGFkZAogICAgICAgIGJ5CiAgICAgICAgbWljaGljbXMKICAgICAgICA6CiAgICAgICAgWzAuOF0gCiAgICAgICAgICAgIHNmdHAgc2hlbGwgc2NyaXB0CiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMC44IHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4wLjggdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBtaWNoaWNtcwogICAgICAgIDoKICAgICAgICBbMC44XSAKICAgICAgICAgICAgU01UUCBob3N0bmFtZSBzZXQKIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAwLjggdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjAuOCB1cGRhdGUKICAgICAgICBieQogICAgICAgIG1pY2hpY21zCiAgICAgICAgOgogICAgICAgIFswLjhdIAogICAgICAgICAgICBTZWFyY2ggYWRkZWQgdG8gdW5pcHVibGljCiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMC44IHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4wLjggdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBtaWNoaWNtcwogICAgICAgIDoKICAgICAgICBbMC44XSAKICAgICAgICAgICAgU2VhcmNoIGFkZGVkCiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMC44IHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4wLjggdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBtaWNoaWNtcwogICAgICAgIDoKICAgICAgICBbMC44XSAKICAgICAgICAgICAgbW9yZSBDTVNzIGFkZGVkCiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMC44IHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4wLjggdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBhaAogICAgICAgIDoKICAgICAgICBbMC44XSAKICAgICAgICAgICAgTmV3c2xldHRlciBkaXNwYXRjaGluZyArIGNsZWFyaW5nIGFkZGVkCiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMC44IGFkZDwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4wLjggYWRkCiAgICAgICAgYnkKICAgICAgICBhaAogICAgICAgIDoKICAgICAgICBbMC44XSAKICAgICAgICAgICAgc2Vzc2lvbi1hdHRyaWJ1dGVzLnhzcCBhZGRlZAogRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDAuOCBhZGQ8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MC44IGFkZAogICAgICAgIGJ5CiAgICAgICAgYWgKICAgICAgICA6CiAgICAgICAgWzAuOF0gCiAgICAgICAgICAgIE1haWxUYXNrIGFkZGVkCiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMC44IGFkZDwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4wLjggYWRkCiAgICAgICAgYnkKICAgICAgICBhaAogICAgICAgIDoKICAgICAgICBbMC44XSAKICAgICAgICAgICAgamF4cCBhZGRlZAogRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDAuOCBhZGQ8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MC44IGFkZAogICAgICAgIGJ5CiAgICAgICAgYWgKICAgICAgICA6CiAgICAgICAgWzAuOF0gCiAgICAgICAgICAgIENsZWFyTmV3c2xldHRlclRhc2sgYWRkZWQKIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAwLjggcmVtb3ZlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjAuOCByZW1vdmUKICAgICAgICBieQogICAgICAgIGFoCiAgICAgICAgOgogICAgICAgIFswLjhdIAogICAgICAgICAgICBTZW5kTWFpbFRyYW5zZm9ybWVyIHJlbW92ZWQKIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAwLjggYWRkPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjAuOCBhZGQKICAgICAgICBieQogICAgICAgIG1pY2hpY21zCiAgICAgICAgOgogICAgICAgIFswLjhdIAogICAgICAgICAgICBtYWlsLmphciB3YXMgbWlzc2luZyBhbmQgbm90IEpESyAxLjQKIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAwLjggcmVtb3ZlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjAuOCByZW1vdmUKICAgICAgICBieQogICAgICAgIG1pY2hpY21zCiAgICAgICAgOgogICAgICAgIFswLjhdIAogICAgICAgICAgICBOZWVkcyBKREsgMS40CiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMC44IHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4wLjggdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBtaWNoaWNtcwogICAgICAgIDoKICAgICAgICBbMC44XSAKICAgICAgICAgICAgRm9ydW0gZml4ZWQKIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAwLjggdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjAuOCB1cGRhdGUKICAgICAgICBieQogICAgICAgIG1pY2hpY21zCiAgICAgICAgOgogICAgICAgIFswLjhdIAogICAgICAgICAgICBjb21taXQgdW5kb25lCiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMC44IGFkZDwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4wLjggYWRkCiAgICAgICAgYnkKICAgICAgICBtaWNoaWNtcwogICAgICAgIDoKICAgICAgICBbMC44XSAKICAgICAgICAgICAgTmV3IFB1Ymxpc2hlciBhbmQgRXhwb3J0ZXIgYWRkZWQKIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAwLjggYWRkPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjAuOCBhZGQKICAgICAgICBieQogICAgICAgIGFoCiAgICAgICAgOgogICAgICAgIFswLjhdIAogICAgICAgICAgICBBZGRlZDogbmV3c2xldHRlciBtZW51CiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMC44IGFkZDwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4wLjggYWRkCiAgICAgICAgYnkKICAgICAgICBhaAogICAgICAgIDoKICAgICAgICBbMC44XSAKICAgICAgICAgICAgCkFkZGVkOiB1bmlwdWJsaWMgbmV3c2xldHRlciBkaXNwYXRjaGluZwogRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDAuOCBhZGQ8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MC44IGFkZAogICAgICAgIGJ5CiAgICAgICAgbWljaGljbXMKICAgICAgICA6CiAgICAgICAgWzAuOF0gCiAgICAgICAgICAgIFNpbXBsZSBTTVRQIGNsaWVudAogRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDAuOCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MC44IHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgbWljaGljbXMKICAgICAgICA6CiAgICAgICAgWzAuOF0gCiAgICAgICAgICAgIFNvbWV0aGluZyBpcyB3cm9uZyB3aXRoIEx1Y2VuZSBhbmQgUlNTCiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMC44IHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4wLjggdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBtaWNoaWNtcwogICAgICAgIDoKICAgICAgICBbMC44XSAKICAgICAgICAgICAgZmlsdGVyIGxpbmtzIGFkZGVkIGFuZCBvc2NvbSBpbmRleAogRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDAuOCBhZGQ8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MC44IGFkZAogICAgICAgIGJ5CiAgICAgICAgYWgKICAgICAgICA6CiAgICAgICAgWzAuOF0gCiAgICAgICAgICAgIE5ld3NsZXR0ZXI6IHN0eWxlc2hlZXRzLCBzaXRlbWFwCiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMC44IHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4wLjggdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBhaAogICAgICAgIDoKICAgICAgICBbMC44XSAKICAgICAgICAgICAgRXhhbXBsZSB1cGRhdGVkCiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMC44IHJlbW92ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4wLjggcmVtb3ZlCiAgICAgICAgYnkKICAgICAgICBmZWxpeGNtcwogICAgICAgIDoKICAgICAgICBbMC44XSAKICAgICAgICAgICAgTm90IG5lZWRlZCBhbnkgbW9yZQogRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDAuOCBhZGQ8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MC44IGFkZAogICAgICAgIGJ5CiAgICAgICAgYWgKICAgICAgICA6CiAgICAgICAgWzAuOF0gCiAgICAgICAgICAgIHNjaGVkdWxlciAvIHB1Ymxpc2hlciBYU0xUIHV0aWxpdHkgYWRkZWQKIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAwLjggdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjAuOCB1cGRhdGUKICAgICAgICBieQogICAgICAgIGFoCiAgICAgICAgOgogICAgICAgIFswLjhdIAogICAgICAgICAgICBQdWJsaXNoL21haW46IHRhc2sgSUQgYXMgcmVxdWVzdCBwYXJhbWV0ZXIKU2NoZWR1bGVyOiBsYXlvdXQgcmVkZXNpZ24KIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAwLjggdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjAuOCB1cGRhdGUKICAgICAgICBieQogICAgICAgIGFoCiAgICAgICAgOgogICAgICAgIFswLjhdIAogICAgICAgICAgICBQdWJsaXNoaW5nOiB0YXNrIElEIGFzIHJlcXVlc3QgcGFyYW1ldGVyCiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMC44IHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4wLjggdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBhaAogICAgICAgIDoKICAgICAgICBbMC44XSAKICAgICAgICAgICAgVGFza0FjdGlvbjogQnVnZml4CiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMC44IGFkZDwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4wLjggYWRkCiAgICAgICAgYnkKICAgICAgICBhaAogICAgICAgIDoKICAgICAgICBbMC44XSAKICAgICAgICAgICAgCkFydGljbGUgVGFzazogVGl0bGUgaW5jbHVkZWQKSW5zZXJ0RG9zc2llclRhc2sgYWRkZWQKIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAwLjggYWRkPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjAuOCBhZGQKICAgICAgICBieQogICAgICAgIGZlbGl4Y21zCiAgICAgICAgOgogICAgICAgIFswLjhdIAogICAgICAgICAgICBTYW1wbGUgWE1MIGZvciBOZXdzbGV0dGVyCiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMC44IHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4wLjggdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBmZWxpeGNtcwogICAgICAgIDoKICAgICAgICBbMC44XSAKICAgICAgICAgICAgQWRkZWQgZG9jdHlwZSBOZXdzbGV0dGVyCiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMC44IHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4wLjggdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBtaWNoaWNtcwogICAgICAgIDoKICAgICAgICBbMC44XSAKICAgICAgICAgICAgUHVibGlzaGluZyBhbmQgSW1hZ2UgZml4ZWQKIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAwLjggdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjAuOCB1cGRhdGUKICAgICAgICBieQogICAgICAgIG1pY2hpY21zCiAgICAgICAgOgogICAgICAgIFswLjhdIAogICAgICAgICAgICBDcm9uVHJpZ2dlciBhZGRlZAogRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDAuOCBhZGQ8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MC44IGFkZAogICAgICAgIGJ5CiAgICAgICAgbWljaGljbXMKICAgICAgICA6CiAgICAgICAgWzAuOF0gCiAgICAgICAgICAgIEV4aXN0aW5nIGpvYgogRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDAuOCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MC44IHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgbWljaGljbXMKICAgICAgICA6CiAgICAgICAgWzAuOF0gCiAgICAgICAgICAgIFNlcnZlciBQb3J0IEJ1ZyBNeXN0ZXJ5CiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMC44IHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4wLjggdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBtaWNoaWNtcwogICAgICAgIDoKICAgICAgICBbMC44XSAKICAgICAgICAgICAgRGF0ZSBmaXhlZAogRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDAuOCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MC44IHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgZmVsaXhjbXMKICAgICAgICA6CiAgICAgICAgWzAuOF0gCiAgICAgICAgICAgIFVwZGF0ZSBvZiBCaXRmbHV4IEVkaXRvciAoQnVnZml4IHJlbW92aW5nIG9mIGVtcHR5IGVsZW1lbnRzIHdpdGggYXR0cmlidXRlcykKIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAwLjggdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjAuOCB1cGRhdGUKICAgICAgICBieQogICAgICAgIGZlbGl4Y21zCiAgICAgICAgOgogICAgICAgIFswLjhdIAogICAgICAgICAgICBBZGRlZCB3b3JrYXJvdW5kIGZvciBCaXRmbHV4IGJ1ZyBvZiByZW1vdmluZyBlbXB0eSBlbGVtZW50cyB3aXRoIG5vIGF0dHJpYnV0ZXM6IGFkZGVkIGZvbyBhdHRyaWJ1dGUgdG8gYXJ0aWNsZXMgZWxlbWVudAogRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDAuOCBhZGQ8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MC44IGFkZAogICAgICAgIGJ5CiAgICAgICAgYWgKICAgICAgICA6CiAgICAgICAgWzAuOF0gCiAgICAgICAgICAgICoqKiBlbXB0eSBsb2cgbWVzc2FnZSAqKioKIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAwLjggdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjAuOCB1cGRhdGUKICAgICAgICBieQogICAgICAgIGFoCiAgICAgICAgOgogICAgICAgIFswLjhdIAogICAgICAgICAgICBhcnRpY2xlIHBhdGggYnVnZml4CiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMC44IHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4wLjggdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBhaAogICAgICAgIDoKICAgICAgICBbMC44XSAKICAgICAgICAgICAgYnVnZml4IHRhc2staWQKIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAwLjggdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjAuOCB1cGRhdGUKICAgICAgICBieQogICAgICAgIGFoCiAgICAgICAgOgogICAgICAgIFswLjhdIAogICAgICAgICAgICBzY2hlZHVsZXIgYnVnZml4ZXMKIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAwLjggdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjAuOCB1cGRhdGUKICAgICAgICBieQogICAgICAgIGFoCiAgICAgICAgOgogICAgICAgIFswLjhdIAogICAgICAgICAgICBwdWJsaWNhdGlvbi1pZCBmaXhlZAogRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDAuOCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MC44IHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgYWgKICAgICAgICA6CiAgICAgICAgWzAuOF0gCiAgICAgICAgICAgIENoYW5nZWQgcGFyYW1ldGVyIGhhbmRsaW5nCiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMC44IHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4wLjggdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBhaAogICAgICAgIDoKICAgICAgICBbMC44XSAKICAgICAgICAgICAgY2hhbmdlZCBUYXNrQWN0aW9uIHBhcmFtZXRlcnMKIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAwLjggdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjAuOCB1cGRhdGUKICAgICAgICBieQogICAgICAgIGFoCiAgICAgICAgOgogICAgICAgIFswLjhdIAogICAgICAgICAgICBGaXhlZCBzb21lIGVycm9ycwogRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDAuOCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MC44IHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgYWgKICAgICAgICA6CiAgICAgICAgWzAuOF0gCiAgICAgICAgICAgICJQdWJsaXNoIERvc3NpZXJzIiB1cGRhdGVkCiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMC44IGFkZDwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4wLjggYWRkCiAgICAgICAgYnkKICAgICAgICBhaAogICAgICAgIDoKICAgICAgICBbMC44XSAKICAgICAgICAgICAgdXBkYXRlZCBPU0NPTSB0byB0YXNrIGNvbmNlcHQsCmFkbWluRG9jdW1lbnQKIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAwLjggdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjAuOCB1cGRhdGUKICAgICAgICBieQogICAgICAgIGFoCiAgICAgICAgOgogICAgICAgIFswLjhdIAogICAgICAgICAgICAidW5pcHVibGljIiByZW1vdmVkCiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMC44IHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4wLjggdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBhaAogICAgICAgIDoKICAgICAgICBbMC44XSAKICAgICAgICAgICAgIlB1Ymxpc2ggV2VicGVybHMiIHVwZGF0ZWQKIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAwLjggdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjAuOCB1cGRhdGUKICAgICAgICBieQogICAgICAgIGFoCiAgICAgICAgOgogICAgICAgIFswLjhdIAogICAgICAgICAgICAiUHVibGlzaCBIZWFkbGluZXMiIG1lbnUgaXRlbSB1cGRhdGVkCiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMC44IHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4wLjggdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBhaAogICAgICAgIDoKICAgICAgICBbMC44XSAKICAgICAgICAgICAgU3RyaW5nLnJlcGxhY2VBbGwgcmVtb3ZlZCAobm90IDEuMyBjb21wYXRpYmxlKQogRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDAuOCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MC44IHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgYWgKICAgICAgICA6CiAgICAgICAgWzAuOF0gCiAgICAgICAgICAgIFRhc2sgYW5kIFNjaGVkdWxlciBzdHlsZXNoZWV0cyBtb2RpZmllZAogRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDAuOCBhZGQ8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MC44IGFkZAogICAgICAgIGJ5CiAgICAgICAgYWgKICAgICAgICA6CiAgICAgICAgWzAuOF0gCiAgICAgICAgICAgIFRhc2sgYW5kIFNjaGVkdWxlciBmaWxlcwogRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDAuOCBhZGQ8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MC44IGFkZAogICAgICAgIGJ5CiAgICAgICAgYWgKICAgICAgICA6CiAgICAgICAgWzAuOF0gCiAgICAgICAgICAgIERvc3NpZXIgYWRkZWQKUHVibGlzaCByZW1vdmVkICh1c2VzIGRlZmF1bHQgcHVibGlzaCBzY3JlZW4gbm93KQogRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDAuOCBhZGQ8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MC44IGFkZAogICAgICAgIGJ5CiAgICAgICAgYWgKICAgICAgICA6CiAgICAgICAgWzAuOF0gCiAgICAgICAgICAgIEFkZGVkIHRhc2ssIHNjaGVkdWxlciBhbmQgcHVibGlzaGluZyBjbGFzc2VzCiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMC44IGFkZDwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4wLjggYWRkCiAgICAgICAgYnkKICAgICAgICBhaAogICAgICAgIDoKICAgICAgICBbMC44XSAKICAgICAgICAgICAgCkFkZGVkIEZpbGVzOgogCXNyYy9qYXZhL2NoL3VuaXpoL3VuaXB1YmxpYy93eW9uYS9jbXMvQXJ0aWNsZVRhc2suamF2YQogCXNyYy9qYXZhL2NoL3VuaXpoL3VuaXB1YmxpYy93eW9uYS9jbXMvRG9zc2llckFjdGlvbi5qYXZhCiBSZW1vdmVkIEZpbGVzOgogCXNyYy9qYXZhL2NoL3VuaXpoL3VuaXB1YmxpYy93eW9uYS9jbXMvQXJ0aWNsZVB1Ymxpc2hlckFjdGlvbi5qYXZhCiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMC44IHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4wLjggdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBtaWNoaWNtcwogICAgICAgIDoKICAgICAgICBbMC44XSAKICAgICAgICAgICAgbGl2ZSByZW1vdmVkCiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMC44IHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4wLjggdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBtaWNoaWNtcwogICAgICAgIDoKICAgICAgICBbMC44XSAKICAgICAgICAgICAgSG9tZXBhZ2UgdXBkYXRlZAogRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDAuOCBhZGQ8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MC44IGFkZAogICAgICAgIGJ5CiAgICAgICAgZmVsaXhjbXMKICAgICAgICA6CiAgICAgICAgWzAuOF0gCiAgICAgICAgICAgIFZlcnkgc2ltcGxlIHJlc3BvbnNlIHhtbCB0aGF0IGlzIHNlbnQgdG8gQml0Zmx1eC4gQml0Zmx1eCBvbmx5IGxvb2tzIGZvciAnJmx0O3Jlc3BvbnNlIHN0YXR1cz0nb2snLyZndDsKIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAwLjggdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjAuOCB1cGRhdGUKICAgICAgICBieQogICAgICAgIGZlbGl4Y21zCiAgICAgICAgOgogICAgICAgIFswLjhdIAogICAgICAgICAgICBCdWdmaXhpbmc6IHJlbW92ZWQgdW51c2VkIGFuZCBoYXJkY29kZWQgYXR0cmlidXRlcyBpbiB0aGUgQml0Zmx1eCByZXNwb25zZSB4bWwgKCZsdDtyZXNwb25zZSBpZD0mZ3Q7Jmx0O2RhdGEgaWQ9Jmd0OykgYW5kIHRoZSBhY2NvcmRpbmcgcGFyYW1ldGVycyBpbiB0aGUgYWN0aW9uIGFuZCBzaXRlbWFwCiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMC44IHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4wLjggdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBtaWNoaWNtcwogICAgICAgIDoKICAgICAgICBbMC44XSAKICAgICAgICAgICAgbW9udGhzIGFuZCBkYXlzIGFkZGVkCiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMC44IHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4wLjggdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBtaWNoaWNtcwogICAgICAgIDoKICAgICAgICBbMC44XSAKICAgICAgICAgICAgdmlld3MgYWRkZWQKIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAwLjggdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjAuOCB1cGRhdGUKICAgICAgICBieQogICAgICAgIG1pY2hpY21zCiAgICAgICAgOgogICAgICAgIFswLjhdIAogICAgICAgICAgICB5ZWFyLGhvdXIsIG1pbnV0ZSBhZGRlZAogRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDAuOCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MC44IHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgbWljaGljbXMKICAgICAgICA6CiAgICAgICAgWzAuOF0gCiAgICAgICAgICAgIGNoaWxkbmFtZSBhcyBoaWRkZW4gdmFsdWUKIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAwLjggdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjAuOCB1cGRhdGUKICAgICAgICBieQogICAgICAgIG1pY2hpY21zCiAgICAgICAgOgogICAgICAgIFswLjhdIAogICAgICAgICAgICBnZXRDaGlsZE5hbWUgYWRkZWQKIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAwLjggdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjAuOCB1cGRhdGUKICAgICAgICBieQogICAgICAgIG1pY2hpY21zCiAgICAgICAgOgogICAgICAgIFswLjhdIAogICAgICAgICAgICBYb3B1czEgcmVtb3ZlZAogRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDAuOCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MC44IHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgbWljaGljbXMKICAgICAgICA6CiAgICAgICAgWzAuOF0gCiAgICAgICAgICAgIHJlbmFtZWQKIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAwLjggdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjAuOCB1cGRhdGUKICAgICAgICBieQogICAgICAgIG1pY2hpY21zCiAgICAgICAgOgogICAgICAgIFswLjhdIAogICAgICAgICAgICByZW5hbWVkCiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMC44IHJlbW92ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4wLjggcmVtb3ZlCiAgICAgICAgYnkKICAgICAgICBtaWNoaWNtcwogICAgICAgIDoKICAgICAgICBbMC44XSAKICAgICAgICAgICAgcmVuYW1lZCB0byBib2R5X3d5b25hLnhzbAogRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDAuOCBhZGQ8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MC44IGFkZAogICAgICAgIGJ5CiAgICAgICAgbWljaGljbXMKICAgICAgICA6CiAgICAgICAgWzAuOF0gCiAgICAgICAgICAgIENhbXBzaXRlIGFkZGVkCiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMC44IHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4wLjggdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBmZWxpeGNtcwogICAgICAgIDoKICAgICAgICBbMC44XSAKICAgICAgICAgICAgQnVnIGZpeGluZzogUmVtb3ZlZCAnYXJ0aWNsZXMnIGZyb20gcGF0aHMKIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAwLjggdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjAuOCB1cGRhdGUKICAgICAgICBieQogICAgICAgIG1pY2hpY21zCiAgICAgICAgOgogICAgICAgIFswLjhdIAogICAgICAgICAgICBGSVhNRTogc29tZXRoaW5nIHdpdGhpbiBSU1MgY2F1c2VzIHRyb3VibGUgZm9yIEx1Y2VuZQogRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDAuOCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MC44IHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgbWljaGljbXMKICAgICAgICA6CiAgICAgICAgWzAuOF0gCiAgICAgICAgICAgIEZpcnN0IGNyZWF0ZSBhbmQgU2VhcmNoIHNlY29uZAogRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDAuOCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MC44IHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgbWljaGljbXMKICAgICAgICA6CiAgICAgICAgWzAuOF0gCiAgICAgICAgICAgIEZJWE1FOiBPU0NPTSBSU1Mgc2VlbXMgdG8gY2F1c2UgdHJvdWJsZSB3aXRoIHJlZ2FyZCB0byB2aWV3IGxpbmtzCiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMC44IHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4wLjggdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBtaWNoaWNtcwogICAgICAgIDoKICAgICAgICBbMC44XSAKICAgICAgICAgICAgTHVjZW5lIGFkZGVkCiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMC44IGFkZDwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4wLjggYWRkCiAgICAgICAgYnkKICAgICAgICBtaWNoaWNtcwogICAgICAgIDoKICAgICAgICBbMC44XSAKICAgICAgICAgICAgZ2VuZXJpYyBzZWFyY2ggeHNsdCBhZGRlZAogRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDAuOCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MC44IHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgbWljaGljbXMKICAgICAgICA6CiAgICAgICAgWzAuOF0gCiAgICAgICAgICAgIHNlYXJjaCBhZGRlZAogRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDAuOCBhZGQ8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MC44IGFkZAogICAgICAgIGJ5CiAgICAgICAgbWljaGljbXMKICAgICAgICA6CiAgICAgICAgWzAuOF0gCiAgICAgICAgICAgIFNlYXJjaCBhZGRlZAogRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDAuOCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MC44IHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgbWljaGljbXMKICAgICAgICA6CiAgICAgICAgWzAuOF0gCiAgICAgICAgICAgIGluaXQgcGFyYW1zIGFkZGVkOiBzY2hlZHVsZXIgY29uZmlndXJhdGlvbnMKIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAwLjggdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjAuOCB1cGRhdGUKICAgICAgICBieQogICAgICAgIGVnbGl3eW9uYQogICAgICAgIDoKICAgICAgICBbMC44XSAKICAgICAgICAgICAgVGhlIGNvZGUgaGFzIGJlZW4gc2ltcGxpZmllZCBkdWUgdG8gdGhlIGZhY3QgdGhhdCB0aGUgZG9jdW1lbnQgYW5kCnJlc291cmNlIHJvb3QgaXMgbm93IHBhc3NlZCBhcyBjb25maWd1cmUgcGFyYW1ldGVycy4gVGhpcyB3YXkgd2UgY2FuCmNvbnN0cnVjdCB0aGUgcGF0aCB3aGVyZSB0aGUgaW1hZ2UgaXMgdG8gYmUgc3RvcmVkIHdlcnkgZWFzaWx5LgoKVGhpcyBhbHNvIG9ic29sZXRlcyB0aGUgc3ViY2xhc3Mgd2hpY2ggaGFkIHNwZWNpYWwga25vd2xlZGdlIHdoZXJlIHRoZQpyZXNvdXJjZSByb290IHdhcy4KIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAwLjggdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjAuOCB1cGRhdGUKICAgICAgICBieQogICAgICAgIGVnbGl3eW9uYQogICAgICAgIDoKICAgICAgICBbMC44XSAKICAgICAgICAgICAgKiBSZW1vdmVkIHRoZSBhcnRpY2xlcyBkaXJlY3RvcnkgZnJvbSB0aGUgbWFnYXppbiBhbmQgY2FtcHVzCiAgZGlyZWN0b3J5LiBUaGUgMjAwMiBkaXJlY3RvcmllcyBhcmUgbm93IGRpcmVjdGx5IHVuZGVyIGdlaXN0LAogIGdlc3VuZGhlaXQsIGV0Yy4KCiAgVGhpcyBpbXBsaWVzIHF1aXRlIGEgZmV3IGNoYW5nZXMgaW4gdGhlIHN0eWxlc2hlZXRzLgoKKiBUaGUgaW1hZ2UgdXBsb2FkIGhhcyBjaGFuZ2VkIHRoZSBjb25maWcgcGFyYW1zLiBXZSBub3cgbmVlZCB0byBwYXNzCiAgdGhlIGRvY3VtZW50IHJvb3QgYW5kIHRoZSByZXNvdXJjZSByb290LiBJdCBpcyBubyBsb25nZXIKICBndWVzc3RpbWF0ZWQgYnkgdGhlIGltYWdlIHVwbG9hZC4KIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAwLjggdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjAuOCB1cGRhdGUKICAgICAgICBieQogICAgICAgIGVnbGl3eW9uYQogICAgICAgIDoKICAgICAgICBbMC44XSAKICAgICAgICAgICAgUmVtb3ZlZCB0aGUgYXJ0aWNsZXMgZGlyZWN0b3J5IGZyb20gdGhlIG1hZ2F6aW4gYW5kIGNhbXB1cwpkaXJlY3RvcnkuIFRoZSAyMDAyIGRpcmVjdG9yaWVzIGFyZSBub3cgZGlyZWN0bHkgdW5kZXIgZ2Vpc3QsCmdlc3VuZGhlaXQsIGV0Yy4KClRoaXMgaW1wbGllcyBxdWl0ZSBhIGZldyBjaGFuZ2VzIGluIHRoZSBzdHlsZXNoZWV0cy4KIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAwLjggdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjAuOCB1cGRhdGUKICAgICAgICBieQogICAgICAgIGVnbGl3eW9uYQogICAgICAgIDoKICAgICAgICBbMC44XSAKICAgICAgICAgICAgRml4ZWQgYSBidWcgd2hlcmUgaXQgd2FzIGluY2x1ZGluZyBhIG5vbi1leGlzdGluZyB4c2wuCiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMC44IHJlbW92ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4wLjggcmVtb3ZlCiAgICAgICAgYnkKICAgICAgICBlZ2xpd3lvbmEKICAgICAgICA6CiAgICAgICAgWzAuOF0gCiAgICAgICAgICAgIE1vdmVkIHRoZSAyMDAyIGRpciBvbmUgdXAgYW5kIGdvdCByaWQgb2YgdGhlIGFydGljbGVzIGRpcmVjdG9yeQogRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDAuOCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MC44IHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgbWljaGljbXMKICAgICAgICA6CiAgICAgICAgWzAuOF0gCiAgICAgICAgICAgIEF1dGhvcmluZyBhcmVhIGFkZGVkCiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMC44IGFkZDwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4wLjggYWRkCiAgICAgICAgYnkKICAgICAgICBtaWNoaWNtcwogICAgICAgIDoKICAgICAgICBbMC44XSAKICAgICAgICAgICAgRHJ1cGFsIGFuZCBCcmljb2xhZ2UgYWRkZWQKIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAwLjggYWRkPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjAuOCBhZGQKICAgICAgICBieQogICAgICAgIGZlbGl4Y21zCiAgICAgICAgOgogICAgICAgIFswLjhdIAogICAgICAgICAgICBTYW1wbGUgeG1sIGZvciBkb2N0eXBlIERvc3NpZXIKIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAwLjggdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjAuOCB1cGRhdGUKICAgICAgICBieQogICAgICAgIG1pY2hpY21zCiAgICAgICAgOgogICAgICAgIFswLjhdIAogICAgICAgICAgICBDbHVlZnVsIENvbnN1bHRpbmcgYWRkZWQKIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAwLjggdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjAuOCB1cGRhdGUKICAgICAgICBieQogICAgICAgIG1pY2hpY21zCiAgICAgICAgOgogICAgICAgIFswLjhdIAogICAgICAgICAgICBVc2FnZSBvZiBuZXRzdGF0IGFkZGVkCiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMC44IHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4wLjggdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBtaWNoaWNtcwogICAgICAgIDoKICAgICAgICBbMC44XSAKICAgICAgICAgICAgV3lvbmEgUlNTIGFkZGVkIGFuZCBleHBvcnQgSG9tZSBMaXZlIHZlcnNpb24KIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAwLjggcmVtb3ZlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjAuOCByZW1vdmUKICAgICAgICBieQogICAgICAgIGZlbGl4Y21zCiAgICAgICAgOgogICAgICAgIFswLjhdIAogICAgICAgICAgICBVc2luZyBkZWZhdWx0IHNjcmVlbiBub3cgKG5ldy1kb2N1bWVudC54c2wpCiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMC44IHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4wLjggdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBmZWxpeGNtcwogICAgICAgIDoKICAgICAgICBbMC44XSAKICAgICAgICAgICAgTmV3ICdwYWdlLWNyZWF0b3Igc2NyZWVuJyBmb3IgRGVmYXVsdENyZWF0b3IKIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAwLjggdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjAuOCB1cGRhdGUKICAgICAgICBieQogICAgICAgIG1pY2hpY21zCiAgICAgICAgOgogICAgICAgIFswLjhdIAogICAgICAgICAgICBlZGl0b3IgYW5kIGVtYWlsIGFkZGVkCiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMC44IHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4wLjggdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBtaWNoaWNtcwogICAgICAgIDoKICAgICAgICBbMC44XSAKICAgICAgICAgICAgWE1MIGZpeGVkIGFjY29yZGluZyB0byB0aGUgU2NoZW1hCiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMC44IHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4wLjggdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBmZWxpeGNtcwogICAgICAgIDoKICAgICAgICBbMC44XSAKICAgICAgICAgICAgQ3JlYXRpbmcgb2YgbmV3IERvc3NpZXJzIGlzIHBvc3NpYmxlIG5vdyAodXNpbmcgRGVmYXVsdENyZWF0b3IpCiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMC44IHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4wLjggdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBmZWxpeGNtcwogICAgICAgIDoKICAgICAgICBbMC44XSAKICAgICAgICAgICAgQWRkZWQgYSByZXF1ZXN0IHBhcmFtZXRlciBkb2N0eXBlCiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMC44IHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4wLjggdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBmZWxpeGNtcwogICAgICAgIDoKICAgICAgICBbMC44XSAKICAgICAgICAgICAgQ2hhbmdlZCB0aGUgZmlsZSBzdWZmaXggZnJvbSAueGh0bWwgdG8gLnhtbAogRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDAuOCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MC44IHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgbWljaGljbXMKICAgICAgICA6CiAgICAgICAgWzAuOF0gCiAgICAgICAgICAgIFNjaGVtYSBlbmhhbmNlZCBhbmQgQml0Zmx1eCBQcm9qZWN0IGZpeGVkCiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMC44IHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4wLjggdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBtaWNoaWNtcwogICAgICAgIDoKICAgICAgICBbMC44XSAKICAgICAgICAgICAgTm8gbGluayBmb3IgbGljZW5zZSBvbiBvdmVydmlldwogRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDAuOCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MC44IHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgbWljaGljbXMKICAgICAgICA6CiAgICAgICAgWzAuOF0gCiAgICAgICAgICAgIE9TQ09NIENNUy9GIE1hdHJpeCBwcm90b3R5cGUgZmluaXNoZWQKIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAwLjggYWRkPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjAuOCBhZGQKICAgICAgICBieQogICAgICAgIG1pY2hpY21zCiAgICAgICAgOgogICAgICAgIFswLjhdIAogICAgICAgICAgICBwcm9ibGVtcyB3aXRoIFhJbmNsdWRlCiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMC44IHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4wLjggdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBtaWNoaWNtcwogICAgICAgIDoKICAgICAgICBbMC44XSAKICAgICAgICAgICAgQ01TL0YgTWF0cml4IHByb3RvdHlwZSBmaW5pc2hlZAogRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDAuOCBhZGQ8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MC44IGFkZAogICAgICAgIGJ5CiAgICAgICAgZmVsaXhjbXMKICAgICAgICA6CiAgICAgICAgWzAuOF0gCiAgICAgICAgICAgIE5ldyBmaWxlcwogRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDAuOCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MC44IHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgZmVsaXhjbXMKICAgICAgICA6CiAgICAgICAgWzAuOF0gCiAgICAgICAgICAgIFVwZGF0ZSBvZiBCaXRmbHV4IGVkaXRvciAoYnVnIGZpeGVzKQogRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDAuOCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MC44IHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgbWljaGljbXMKICAgICAgICA6CiAgICAgICAgWzAuOF0gCiAgICAgICAgICAgIE1hdHJpeCBYb3B1c2FibGUgc3RhcnRlZAogRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDAuOCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MC44IHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgbWljaGljbXMKICAgICAgICA6CiAgICAgICAgWzAuOF0gCiAgICAgICAgICAgIFN0eWxlc2hlZXRzIGltcHJvdmVkCiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMC44IHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4wLjggdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBmZWxpeGNtcwogICAgICAgIDoKICAgICAgICBbMC44XSAKICAgICAgICAgICAgcmVsYXRlZC1jb250ZW50IGFuZCBpbWFnZXMgZWRpdGFibGUgd2l0aCBCaXRmbHV4CiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMC44IHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4wLjggdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBmZWxpeGNtcwogICAgICAgIDoKICAgICAgICBbMC44XSAKICAgICAgICAgICAgVXBkYXRlIG9mIEJpdGZsdXggRWRpdG9yIChidWcgZml4ZXMsIHNhdmUmYW1wO2V4aXQgYnV0dG9uKQogRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDAuOCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MC44IHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgZmVsaXhjbXMKICAgICAgICA6CiAgICAgICAgWzAuOF0gCiAgICAgICAgICAgIHJlbGF0ZWQtY29udGVudCBhbmQgaW1hZ2VzIGVkaXRhYmxlIHdpdGggQml0Zmx1eHNyYy93ZWJhcHAvd3lvbmEvY21zL3B1YnMvdW5pcHVibGljL2RvY3MvcHVibGljYXRpb24vZG9jdHlwZXMvc2NoZW1hcy9hcnRpY2xlLWJpdGZsdXgueHNkCiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMC44IGFkZDwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4wLjggYWRkCiAgICAgICAgYnkKICAgICAgICBmZWxpeGNtcwogICAgICAgIDoKICAgICAgICBbMC44XSAKICAgICAgICAgICAgQml0Zmx1eCBwcmUtIGFuZCBwb3N0LXByb2Nlc3Npbmcgb2YgWE1MIGZvciByZWxhdGVkIGNvbnRlbnQgYW5kIGltYWdlcwogRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDAuOCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MC44IHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgZmVsaXhjbXMKICAgICAgICA6CiAgICAgICAgWzAuOF0gCiAgICAgICAgICAgIFBhcmFtZXRlciB1cmwtYmFjayB3YXMgYWRkZWQgZm9yIHRoZSBzYXZlJmFtcDtleGl0IGJ1dHRvbgogRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDAuOCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MC44IHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgZmVsaXhjbXMKICAgICAgICA6CiAgICAgICAgWzAuOF0gCiAgICAgICAgICAgIE1hZGUgRG9zc2llciBlZGl0YWJsZSB0aHJvdWdoIEJpdGZsdXgKIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAwLjggYWRkPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjAuOCBhZGQKICAgICAgICBieQogICAgICAgIGZlbGl4Y21zCiAgICAgICAgOgogICAgICAgIFswLjhdIAogICAgICAgICAgICBVcGRhdGUgb2YgQml0Zmx1eCBFZGl0b3IgKGJ1ZyBmaXhlcywgc2F2ZSZhbXA7ZXhpdCBidXR0b24pCiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMC44IHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4wLjggdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBmZWxpeGNtcwogICAgICAgIDoKICAgICAgICBbMC44XSAKICAgICAgICAgICAgVXBkYXRlIG9mIEJpdGZsdXggRWRpdG9yIChidWcgZml4ZXMpCiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMC44IHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4wLjggdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBtaWNoaWNtcwogICAgICAgIDoKICAgICAgICBbMC44XSAKICAgICAgICAgICAgTGl2ZSBNYXRyaXggT3ZlcnZpZXcKIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAwLjggdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjAuOCB1cGRhdGUKICAgICAgICBieQogICAgICAgIG1pY2hpY21zCiAgICAgICAgOgogICAgICAgIFswLjhdIAogICAgICAgICAgICBTeXN0ZW0uZXhpdCByZW1vdmVkLCBiZWNhdXNlIGl0IHNodXRzIGRvd24gVG9tY2F0CiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMC44IGFkZDwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4wLjggYWRkCiAgICAgICAgYnkKICAgICAgICBtaWNoaWNtcwogICAgICAgIDoKICAgICAgICBbMC44XSAKICAgICAgICAgICAgYWRkIHByb2plY3RzCiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMC44IHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4wLjggdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBtaWNoaWNtcwogICAgICAgIDoKICAgICAgICBbMC44XSAKICAgICAgICAgICAgTWF0cml4IHdpbGwgYmUgc29ydGVkCiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMC44IHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4wLjggdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBtaWNoaWNtcwogICAgICAgIDoKICAgICAgICBbMC44XSAKICAgICAgICAgICAgTWF0cml4IGFkZGVkIHRvIExpdmUgU2l0ZQogRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDAuOCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MC44IHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgZmVsaXhjbXMKICAgICAgICA6CiAgICAgICAgWzAuOF0gCiAgICAgICAgICAgIE1ha2luZyBEb3NzaWVyIGVkaXRhYmxlCiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMC44IHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4wLjggdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBmZWxpeGNtcwogICAgICAgIDoKICAgICAgICBbMC44XSAKICAgICAgICAgICAgTmV3IGJhY2tncm91bmQgaW1hZ2UKIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAwLjggYWRkPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjAuOCBhZGQKICAgICAgICBieQogICAgICAgIG1pY2hpY21zCiAgICAgICAgOgogICAgICAgIFswLjhdIAogICAgICAgICAgICBDTVMvRiBNYXRyaXggbmVhcmx5IGZpbmlzaGVkCiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMC44IHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4wLjggdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBmZWxpeGNtcwogICAgICAgIDoKICAgICAgICBbMC44XSAKICAgICAgICAgICAgQWRkZWQgb3B0aW9uYWwgcmVxdWVzdCBwYXJhbWV0ZXIgJ2luc2VydEJlZm9yZScgdG8gdGhlIGltYWdlIHVwbG9hZCB0byBvdmVyd3JpdGUgdGhlIGNvbmZpZ3VyZWQgYmVoYXZpaW91cgogRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDAuOCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MC44IHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgZmVsaXhjbXMKICAgICAgICA6CiAgICAgICAgWzAuOF0gCiAgICAgICAgICAgIEFkZGVkIHVzZSBvZiBhIHRlYXNlcnRleHQKIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAwLjggdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjAuOCB1cGRhdGUKICAgICAgICBieQogICAgICAgIGZlbGl4Y21zCiAgICAgICAgOgogICAgICAgIFswLjhdIAogICAgICAgICAgICBDaGFuZ2VkIGluY2x1ZGUgZnJvbSBhcnRpY2xlLnhzbCB0byAuLi9hcnRpY2xlcy54c2wKIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAwLjggdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjAuOCB1cGRhdGUKICAgICAgICBieQogICAgICAgIGZlbGl4Y21zCiAgICAgICAgOgogICAgICAgIFswLjhdIAogICAgICAgICAgICBDaGFuZ2VkIGhhbmRsaW5nIG9mIGhsMiAoaXMgYmVpbmcgZGlzcGxheWVkIG5vdyB3aGVyZSBldmVyIGl0IGFwcGVhcnMpLCBhZGRlZCAnQmlsZDonIHRvIGF1dGhvcmxpbmUsIGV0Yy4KIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAwLjggdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjAuOCB1cGRhdGUKICAgICAgICBieQogICAgICAgIGZlbGl4Y21zCiAgICAgICAgOgogICAgICAgIFswLjhdIAogICAgICAgICAgICBSZW1vdmVkIEZJWE1FCiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMC44IGFkZDwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4wLjggYWRkCiAgICAgICAgYnkKICAgICAgICBtaWNoaWNtcwogICAgICAgIDoKICAgICAgICBbMC44XSAKICAgICAgICAgICAgbW9yZSBzYW1wbGUgYXJ0aWNsZXMgYWRkZWQKIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAwLjggdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjAuOCB1cGRhdGUKICAgICAgICBieQogICAgICAgIG1pY2hpY21zCiAgICAgICAgOgogICAgICAgIFswLjhdIAogICAgICAgICAgICBub3QgeWV0IHB1Ymxpc2hlZCBzY3JlZW4gaW50cm9kdWNlZAogRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDAuOCBhZGQ8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MC44IGFkZAogICAgICAgIGJ5CiAgICAgICAgbWljaGljbXMKICAgICAgICA6CiAgICAgICAgWzAuOF0gCiAgICAgICAgICAgIG1vcmUgc2FtcGxlIGFydGljbGVzIGFkZGVkCiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMC44IHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4wLjggdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBtaWNoaWNtcwogICAgICAgIDoKICAgICAgICBbMC44XSAKICAgICAgICAgICAgYXR0cmlidXRlIGFsdGVybmF0ZS10ZXh0IG1hZGUgb3B0aW9uYWwsIGNhdXRpb24gY29ubGZpY3QgYmV0d2VlbiB1cGxvYWQgaW1hZ2UgYW5kIHNjaGVtYQogRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDAuOCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MC44IHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgbWljaGljbXMKICAgICAgICA6CiAgICAgICAgWzAuOF0gCiAgICAgICAgICAgIGV4aXQgMCByZW1vdmVkCiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMC44IHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4wLjggdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBtaWNoaWNtcwogICAgICAgIDoKICAgICAgICBbMC44XSAKICAgICAgICAgICAgU2NoZW1hIGltcHJvdmVkLCByZWxhdGVkIGNvbnRlbnQgYWRkZWQKIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAwLjggdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjAuOCB1cGRhdGUKICAgICAgICBieQogICAgICAgIG1pY2hpY21zCiAgICAgICAgOgogICAgICAgIFswLjhdIAogICAgICAgICAgICBQYXVsIGFuZCBSb2dlciBhZGRlZAogRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDAuOCBhZGQ8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MC44IGFkZAogICAgICAgIGJ5CiAgICAgICAgbWljaGljbXMKICAgICAgICA6CiAgICAgICAgWzAuOF0gCiAgICAgICAgICAgIG5ldyBhcnRpY2xlcyBhbmQgc2FtcGxlIGltcHJvdmVkCiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMC44IHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4wLjggdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBtaWNoaWNtcwogICAgICAgIDoKICAgICAgICBbMC44XSAKICAgICAgICAgICAgYmV0dGVyIG5vdCBwdWJsaXNoZWQgeWV0IGRpYWxvZwogRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDAuOCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MC44IHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgbWljaGljbXMKICAgICAgICA6CiAgICAgICAgWzAuOF0gCiAgICAgICAgICAgIFB1Ymxpc2hlciBtYWRlIGV2ZW4gd29yc2UKIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAwLjggdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjAuOCB1cGRhdGUKICAgICAgICBieQogICAgICAgIG1pY2hpY21zCiAgICAgICAgOgogICAgICAgIFswLjhdIAogICAgICAgICAgICBmb3J1bSBhZGRlZCBmb3IgcmVwbGljYXRpb24KIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAwLjggdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjAuOCB1cGRhdGUKICAgICAgICBieQogICAgICAgIG1pY2hpY21zCiAgICAgICAgOgogICAgICAgIFswLjhdIAogICAgICAgICAgICBESFRNTCBNZW51cyBhZGRlZCBhbmQgZXhwb3J0IHRvIE9TQ09NCiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMC44IHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4wLjggdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBtaWNoaWNtcwogICAgICAgIDoKICAgICAgICBbMC44XSAKICAgICAgICAgICAgbGluayBmaXhlZAogRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDAuOCBhZGQ8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MC44IGFkZAogICAgICAgIGJ5CiAgICAgICAgbWljaGljbXMKICAgICAgICA6CiAgICAgICAgWzAuOF0gCiAgICAgICAgICAgIG1vcmUgbmV3cyBhZGRlZAogRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDAuOCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MC44IHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgbWljaGljbXMKICAgICAgICA6CiAgICAgICAgWzAuOF0gCiAgICAgICAgICAgIGluaXRpYWxpemluZyBTY2hlZHVsZXIgZnJvbSBjb25mIGZpbGUKIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAwLjggdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjAuOCB1cGRhdGUKICAgICAgICBieQogICAgICAgIG1pY2hpY21zCiAgICAgICAgOgogICAgICAgIFswLjhdIAogICAgICAgICAgICBmYXRhbCByZXBsYWNlZCBieSBkZWJ1ZwogRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDAuOCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MC44IHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgbWljaGljbXMKICAgICAgICA6CiAgICAgICAgWzAuOF0gCiAgICAgICAgICAgIGZhdGFsIHJlcGxhY2VkIGJ5IGRlYnVnCiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMC44IHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4wLjggdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBtaWNoaWNtcwogICAgICAgIDoKICAgICAgICBbMC44XSAKICAgICAgICAgICAgU2VydmxldCBDb250ZXh0IFBhdGggYWRkZWQgZm9yIHJlYWRpbmcgY29uZmlndXJhdGlvbgogRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDAuOCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MC44IHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgbWljaGljbXMKICAgICAgICA6CiAgICAgICAgWzAuOF0gCiAgICAgICAgICAgIE15U291cmNlIGFkZGVkCiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMC44IHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4wLjggdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBtaWNoaWNtcwogICAgICAgIDoKICAgICAgICBbMC44XSAKICAgICAgICAgICAgaGFyZGNvZGVkIHByZWZpeCBzdWJzdGl0dXRlcyByZW1vdmVkCiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMC44IHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4wLjggdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBtaWNoaWNtcwogICAgICAgIDoKICAgICAgICBbMC44XSAKICAgICAgICAgICAgU2NoZWR1bGVyIGltcHJvdmVkLCBDcm9uVHJpZ2dlciBhZGRlZAogRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDAuOCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MC44IHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgbWljaGljbXMKICAgICAgICA6CiAgICAgICAgWzAuOF0gCiAgICAgICAgICAgIEFlZ2lyIENNUyBhZGRlZAogRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDAuOCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MC44IHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgbWljaGljbXMKICAgICAgICA6CiAgICAgICAgWzAuOF0gCiAgICAgICAgICAgIHllYXIgMjAwMiB0byBGcm9udHBhZ2UgYWRkZWQKIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAwLjggdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjAuOCB1cGRhdGUKICAgICAgICBieQogICAgICAgIG1pY2hpY21zCiAgICAgICAgOgogICAgICAgIFswLjhdIAogICAgICAgICAgICBleHBvcnQgc3RhdGljIEhUTUwgaW1wcm92ZWQKIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAwLjggdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjAuOCB1cGRhdGUKICAgICAgICBieQogICAgICAgIG1pY2hpY21zCiAgICAgICAgOgogICAgICAgIFswLjhdIAogICAgICAgICAgICBBZWdpciBtb3ZlZCB0byBmaXJzdCBwbGFjZSBhbmQgQml0Zmx1eCBVUkwgYWRkZWQKIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAwLjggdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjAuOCB1cGRhdGUKICAgICAgICBieQogICAgICAgIG1pY2hpY21zCiAgICAgICAgOgogICAgICAgIFswLjhdIAogICAgICAgICAgICBBZWdpciBDTVMgYWRkZWQKIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAwLjggYWRkPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjAuOCBhZGQKICAgICAgICBieQogICAgICAgIG1pY2hpY21zCiAgICAgICAgOgogICAgICAgIFswLjhdIAogICAgICAgICAgICBHZXQgbWlsbGlzZWNvbmRzCiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMC44IGFkZDwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4wLjggYWRkCiAgICAgICAgYnkKICAgICAgICBtaWNoaWNtcwogICAgICAgIDoKICAgICAgICBbMC44XSAKICAgICAgICAgICAgcmVwbGljYXRpb24gc2NyaXB0CiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMC44IHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4wLjggdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBtaWNoaWNtcwogICAgICAgIDoKICAgICAgICBbMC44XSAKICAgICAgICAgICAgZXhwb3J0IHN0YXRpYyBhcnRpY2xlCiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMC44IHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4wLjggdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBtaWNoaWNtcwogICAgICAgIDoKICAgICAgICBbMC44XSAKICAgICAgICAgICAgbWF0Y2hlcyBzZXBhcmF0ZWQgYnkgcGlwZWxpbmUKIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAwLjggdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjAuOCB1cGRhdGUKICAgICAgICBieQogICAgICAgIG1pY2hpY21zCiAgICAgICAgOgogICAgICAgIFswLjhdIAogICAgICAgICAgICBkaXJlY3RvcnkgcGVuZGluZyB0byBleHBvcnQgYWRkZWQKIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAwLjggdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjAuOCB1cGRhdGUKICAgICAgICBieQogICAgICAgIG1pY2hpY21zCiAgICAgICAgOgogICAgICAgIFswLjhdIAogICAgICAgICAgICBleHBvcnQgb2Ygc3RhdGljIEhUTUwsIGEgcmVhbCB1Z2x5IGhhY2ssIGJ1dCBpdCB3b3JrcwogRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDAuOCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MC44IHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgbWljaGljbXMKICAgICAgICA6CiAgICAgICAgWzAuOF0gCiAgICAgICAgICAgIEJvYXJkLCBPdmVydmlldyB1cGRhdGVkCiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMC44IGFkZDwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4wLjggYWRkCiAgICAgICAgYnkKICAgICAgICBtaWNoaWNtcwogICAgICAgIDoKICAgICAgICBbMC44XSAKICAgICAgICAgICAgV2Vla2x5IENvbHVtbiBhZGRlZAogRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDAuOCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MC44IHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgbWljaGljbXMKICAgICAgICA6CiAgICAgICAgWzAuOF0gCiAgICAgICAgICAgIFVwZGF0ZWQgQm9hcmQgYW5kIE5hdmlnYXRpb24gYW5kIE1lbnVzCiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMC44IHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4wLjggdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBtaWNoaWNtcwogICAgICAgIDoKICAgICAgICBbMC44XSAKICAgICAgICAgICAgaW50ZWdyYXRpb24gc3RhcnRlZCBmb3IgZXhwb3J0IG9mIHN0YXRpYyBIVE1MCiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMC44IGFkZDwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4wLjggYWRkCiAgICAgICAgYnkKICAgICAgICBmZWxpeGNtcwogICAgICAgIDoKICAgICAgICBbMC44XSAKICAgICAgICAgICAgQWRvcHRlZCBzcmVlbnMgZm9yIGltYWdlIHVwbG9hZCBhbmQgYWRkZWQgZG9zc2llciB0byBhcnRpY2xlCiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMC44IHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4wLjggdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBmZWxpeGNtcwogICAgICAgIDoKICAgICAgICBbMC44XSAKICAgICAgICAgICAgQ2hhbmdlZCB4bWwgZm9yIGRvc3NpZXIgaWQgaW4gYXJ0aWNsZSBhbmQgdGVhc2VyIGltYWdlIGluIGRvc3NpZXIKIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAwLjggdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjAuOCB1cGRhdGUKICAgICAgICBieQogICAgICAgIGZlbGl4Y21zCiAgICAgICAgOgogICAgICAgIFswLjhdIAogICAgICAgICAgICBBZGRlZCB0ZWFzZXIgaW1hZ2UgdXBsb2FkIHRvIGRvc3NpZXIKIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAwLjggdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjAuOCB1cGRhdGUKICAgICAgICBieQogICAgICAgIGZlbGl4Y21zCiAgICAgICAgOgogICAgICAgIFswLjhdIAogICAgICAgICAgICBBZGRlZCBkaXNwbGF5IG9mIGRvc3NpZXIgdG8gYXJ0aWNsZSBhbmQgdGVhc2VyIGltYWdlIHVwbG9hZCB0byBkb3NzaWVyCiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMC44IHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4wLjggdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBmZWxpeGNtcwogICAgICAgIDoKICAgICAgICBbMC44XSAKICAgICAgICAgICAgRml4ZWQgJ05vY2ggbmllIHB1YmxpemllcnQnCiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMC44IHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4wLjggdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBlZ2xpd3lvbmEKICAgICAgICA6CiAgICAgICAgWzAuOF0gCiAgICAgICAgICAgIE1pbWV0eXBlIGlzIG5vdyB0aGUgZW1wdHkgc3RyaW5nIGFuZCBubyBsb25nZXIgdGhlIHN0cmluZwoiRklYTUU6Ii4gSG93ZXZlciBpdCBpcyBzdGlsbCBwcmVmZXJhYmxlIHRvIGZpeCBpdCBwcm9wZXJseS4KIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAwLjggdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjAuOCB1cGRhdGUKICAgICAgICBieQogICAgICAgIGZlbGl4Y21zCiAgICAgICAgOgogICAgICAgIFswLjhdIAogICAgICAgICAgICBDaGFuZ2VkIHJlZCBkb3QgaW1hZ2UKIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAwLjggdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjAuOCB1cGRhdGUKICAgICAgICBieQogICAgICAgIGZlbGl4Y21zCiAgICAgICAgOgogICAgICAgIFswLjhdIAogICAgICAgICAgICBBZGRlZCBlbGVtZW50cyBib2xkLCBlbXBoYXNpemUsIHN1cGVyc2NyaXB0LCBzdWJzY3JpcHQsIGl0ZW1pemVkbGlzdCwgbGlzdGl0ZW0sIHVsaW5rLCB0YWJsZSwgdGJvZHksIHJvdywgZW50cnkKIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAwLjggdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjAuOCB1cGRhdGUKICAgICAgICBieQogICAgICAgIGpiaWdhbGtlCiAgICAgICAgOgogICAgICAgIFswLjhdIAogICAgICAgICAgICBjb2RpbmcgdG8gZXZhbHVhdGUgZG9jdHlwZXMsIGkuZS4gYWRkZWQgbGluZTogY3JlYXRvci5pbml0KGNyZWF0b3JOb2RlKQogRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDAuOCBhZGQ8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MC44IGFkZAogICAgICAgIGJ5CiAgICAgICAgamJpZ2Fsa2UKICAgICAgICA6CiAgICAgICAgWzAuOF0gCiAgICAgICAgICAgIGFkZGVkIERlZmF1bHRDcmVhdG9yCiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMC44IHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4wLjggdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBqYmlnYWxrZQogICAgICAgIDoKICAgICAgICBbMC44XSAKICAgICAgICAgICAgYWRkZWQgbWV0aG9kIGluaXQoKQogRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDAuOCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MC44IHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgbWljaGljbXMKICAgICAgICA6CiAgICAgICAgWzAuOF0gCiAgICAgICAgICAgIFJleGV4cCBhZGRlZAogRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDAuOCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MC44IHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgbWljaGljbXMKICAgICAgICA6CiAgICAgICAgWzAuOF0gCiAgICAgICAgICAgIEV4cG9ydCBIVE1MIGFkZGVkCiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMC44IGFkZDwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4wLjggYWRkCiAgICAgICAgYnkKICAgICAgICBtaWNoaWNtcwogICAgICAgIDoKICAgICAgICBbMC44XSAKICAgICAgICAgICAgSFRNTCBFeHBvcnQgYWRkZWQKIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAwLjggdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjAuOCB1cGRhdGUKICAgICAgICBieQogICAgICAgIGZlbGl4Y21zCiAgICAgICAgOgogICAgICAgIFswLjhdIAogICAgICAgICAgICBDb3JyZWN0ZWQgcHJvYmxlbSB3aXRoIGZvb3RlciBkYXRlIGluIGxpdmUgYW5kIHdpdGggZGlzcGxheQogRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDAuOCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MC44IHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgZmVsaXhjbXMKICAgICAgICA6CiAgICAgICAgWzAuOF0gCiAgICAgICAgICAgIEFkZGVkIHNvcnRpbmcgdG8gRG9zc2llcgogRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDAuOCBhZGQ8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MC44IGFkZAogICAgICAgIGJ5CiAgICAgICAgZmVsaXhjbXMKICAgICAgICA6CiAgICAgICAgWzAuOF0gCiAgICAgICAgICAgIEFkZGVkIERvc3NpZXIgeG1sIHRvIExpdmUKIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAwLjggYWRkPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjAuOCBhZGQKICAgICAgICBieQogICAgICAgIGZlbGl4Y21zCiAgICAgICAgOgogICAgICAgIFswLjhdIAogICAgICAgICAgICBDcmVhdGVkIG1lbnUgZm9yIERvc3NpZXJzCiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMC44IHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4wLjggdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBmZWxpeGNtcwogICAgICAgIDoKICAgICAgICBbMC44XSAKICAgICAgICAgICAgRG9zc2llciB0ZWFzZXIgb24gc2VjdGlvbiBwYWdlcyBpcyB3b3JraW5nIGNvcnJlY3RseSBub3cKIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAwLjggYWRkPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjAuOCBhZGQKICAgICAgICBieQogICAgICAgIG1pY2hpY21zCiAgICAgICAgOgogICAgICAgIFswLjhdIAogICAgICAgICAgICBPbmUgbW9yZSBhcnRpY2xlIGFkZGVkCiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMC44IHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4wLjggdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBtaWNoaWNtcwogICAgICAgIDoKICAgICAgICBbMC44XSAKICAgICAgICAgICAgTWVudXMgZm9yIHVuaXB1YmxpYyBpbXByb3ZlZAogRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDAuOCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MC44IHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgbWljaGljbXMKICAgICAgICA6CiAgICAgICAgWzAuOF0gCiAgICAgICAgICAgIERlYnVnIHhtbCwgeHNsdCwgeHNkCiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMC44IHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4wLjggdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBtaWNoaWNtcwogICAgICAgIDoKICAgICAgICBbMC44XSAKICAgICAgICAgICAgREhUTUwgbWVudXMgYWRkZWQKIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAwLjggYWRkPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjAuOCBhZGQKICAgICAgICBieQogICAgICAgIG1pY2hpY21zCiAgICAgICAgOgogICAgICAgIFswLjhdIAogICAgICAgICAgICBPU0NPTSBIb21lIGlzIGJpdGZsdXhhYmxlCiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMC44IHJlbW92ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4wLjggcmVtb3ZlCiAgICAgICAgYnkKICAgICAgICBtaWNoaWNtcwogICAgICAgIDoKICAgICAgICBbMC44XSAKICAgICAgICAgICAgcmVuYW1lZCB0byBhcnRpY2xlLWJpdGZsdXguY3NzCiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMC44IHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4wLjggdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBtaWNoaWNtcwogICAgICAgIDoKICAgICAgICBbMC44XSAKICAgICAgICAgICAgT1NDT00gSG9tZSBpcyB4b3B1c2FibGUKIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAwLjggYWRkPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjAuOCBhZGQKICAgICAgICBieQogICAgICAgIG1pY2hpY21zCiAgICAgICAgOgogICAgICAgIFswLjhdIAogICAgICAgICAgICBtb3JlIGFydGljbGVzIGFkZGVkCiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMC44IHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4wLjggdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBtaWNoaWNtcwogICAgICAgIDoKICAgICAgICBbMC44XSAKICAgICAgICAgICAgbWlsbGlzIGNvcnJlY3RlZAogRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDAuOCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MC44IHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgbWljaGljbXMKICAgICAgICA6CiAgICAgICAgWzAuOF0gCiAgICAgICAgICAgIEFyYml0cmFyeSBmaWxlcyBjYW4gYmUgc2F2ZWQgbm93CiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMC44IGFkZDwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4wLjggYWRkCiAgICAgICAgYnkKICAgICAgICBtaWNoaWNtcwogICAgICAgIDoKICAgICAgICBbMC44XSAKICAgICAgICAgICAgQml0Zmx1eCBhY3Rpb24gYWRkZWQKIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAwLjggdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjAuOCB1cGRhdGUKICAgICAgICBieQogICAgICAgIG1pY2hpY21zCiAgICAgICAgOgogICAgICAgIFswLjhdIAogICAgICAgICAgICBSZXZpc2lvbklkIGFkZGVkCiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMC44IHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4wLjggdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBtaWNoaWNtcwogICAgICAgIDoKICAgICAgICBbMC44XSAKICAgICAgICAgICAgU2NoZW1hIGFuZCBYb3B1cyBYU0xUIGZpeGVkCiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMC44IGFkZDwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4wLjggYWRkCiAgICAgICAgYnkKICAgICAgICBtaWNoaWNtcwogICAgICAgIDoKICAgICAgICBbMC44XSAKICAgICAgICAgICAgQml0Zmx1eCBlZGl0b3IgYWRkZWQKIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAwLjggYWRkPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjAuOCBhZGQKICAgICAgICBieQogICAgICAgIG1pY2hpY21zCiAgICAgICAgOgogICAgICAgIFswLjhdIAogICAgICAgICAgICBCaXRmbHV4IGVkaXRvciBhZGRlZAogRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDAuOCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MC44IHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgZmVsaXhjbXMKICAgICAgICA6CiAgICAgICAgWzAuOF0gCiAgICAgICAgICAgIEFkb3B0ZWQgY2hhbmdlZCB4bWwKIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAwLjggdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjAuOCB1cGRhdGUKICAgICAgICBieQogICAgICAgIGZlbGl4Y21zCiAgICAgICAgOgogICAgICAgIFswLjhdIAogICAgICAgICAgICBEcmF3IGNvbW1hIG9ubHkgaWYgdGhlcmUgaXMgYSBkYXRlCiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMC44IHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4wLjggdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBmZWxpeGNtcwogICAgICAgIDoKICAgICAgICBbMC44XSAKICAgICAgICAgICAgQ2hhbmdlZCB4bWwKIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAwLjggdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjAuOCB1cGRhdGUKICAgICAgICBieQogICAgICAgIGZlbGl4Y21zCiAgICAgICAgOgogICAgICAgIFswLjhdIAogICAgICAgICAgICBBZGRlZCBkb2N0eXBlIGRvc3NpZXJzCiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMC44IGFkZDwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4wLjggYWRkCiAgICAgICAgYnkKICAgICAgICBmZWxpeGNtcwogICAgICAgIDoKICAgICAgICBbMC44XSAKICAgICAgICAgICAgTmV3IGRvY3R5cGUgRG9zc2llcnMKIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAwLjggYWRkPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjAuOCBhZGQKICAgICAgICBieQogICAgICAgIGZlbGl4Y21zCiAgICAgICAgOgogICAgICAgIFswLjhdIAogICAgICAgICAgICBOZXcgc2FtcGxlIHhtbAogRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDAuOCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MC44IHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgbWljaGljbXMKICAgICAgICA6CiAgICAgICAgWzAuOF0gCiAgICAgICAgICAgIEJpdGZsdXggZWRpdG9yIGFkZGVkIHRvIHVuaXB1YmxpYwogRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDAuOCByZW1vdmU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MC44IHJlbW92ZQogICAgICAgIGJ5CiAgICAgICAgbWljaGljbXMKICAgICAgICA6CiAgICAgICAgWzAuOF0gCiAgICAgICAgICAgIHJlbmFtZWQgdG8gYXJ0aWNsZS1iaXRmbHV4LmNzcwogRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDAuOCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MC44IHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgZmVsaXhjbXMKICAgICAgICA6CiAgICAgICAgWzAuOF0gCiAgICAgICAgICAgIENvcnJlY3RlZCBzYW1wbGUgeG1sCiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMC44IGFkZDwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4wLjggYWRkCiAgICAgICAgYnkKICAgICAgICBmZWxpeGNtcwogICAgICAgIDoKICAgICAgICBbMC44XSAKICAgICAgICAgICAgU2FtcGxlIHhtbCBmb3IgZG9zc2llcgogRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDAuOCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MC44IHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgZmVsaXhjbXMKICAgICAgICA6CiAgICAgICAgWzAuOF0gCiAgICAgICAgICAgIEFkZGVkIGRvc3NpZXIgc3R5bGUgY2xhc3MKIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAwLjggdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjAuOCB1cGRhdGUKICAgICAgICBieQogICAgICAgIGZlbGl4Y21zCiAgICAgICAgOgogICAgICAgIFswLjhdIAogICAgICAgICAgICBFeHRlbmRlZCB4bWwgZm9yIGRvc3NpZXIKIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAwLjggdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjAuOCB1cGRhdGUKICAgICAgICBieQogICAgICAgIGZlbGl4Y21zCiAgICAgICAgOgogICAgICAgIFswLjhdIAogICAgICAgICAgICBBZGRlZCBkb2N0eXBlIGRvc3NpZXIKIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAwLjggYWRkPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjAuOCBhZGQKICAgICAgICBieQogICAgICAgIGZlbGl4Y21zCiAgICAgICAgOgogICAgICAgIFswLjhdIAogICAgICAgICAgICBOZXcgaW1hZ2UKIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAwLjggYWRkPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjAuOCBhZGQKICAgICAgICBieQogICAgICAgIGZlbGl4Y21zCiAgICAgICAgOgogICAgICAgIFswLjhdIAogICAgICAgICAgICBOZXcgaW1hZ2UKIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAwLjggdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjAuOCB1cGRhdGUKICAgICAgICBieQogICAgICAgIGZlbGl4Y21zCiAgICAgICAgOgogICAgICAgIFswLjhdIAogICAgICAgICAgICBBZGRlZCBhcnRpY2xlcy54c2wgZXRjLgogRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDAuOCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MC44IHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgZmVsaXhjbXMKICAgICAgICA6CiAgICAgICAgWzAuOF0gCiAgICAgICAgICAgIENyZWF0ZWQgbGF5b3V0IGZvciBEb3NzaWVyCiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMC44IGFkZDwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4wLjggYWRkCiAgICAgICAgYnkKICAgICAgICBmZWxpeGNtcwogICAgICAgIDoKICAgICAgICBbMC44XSAKICAgICAgICAgICAgTmV3IHN0eWxlc2hlZXQgZm9yIERvc3NpZXIKIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAwLjggdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjAuOCB1cGRhdGUKICAgICAgICBieQogICAgICAgIGZlbGl4Y21zCiAgICAgICAgOgogICAgICAgIFswLjhdIAogICAgICAgICAgICBDaGFuZ2VkIERvc3NpZXIgcGFydCBvZiBuYXZpZ2F0aW9uIChtb3JlIHRoYW4gb25lIERvc3NpZXIgcG9zc2libGUpCiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMC44IHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4wLjggdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBmZWxpeGNtcwogICAgICAgIDoKICAgICAgICBbMC44XSAKICAgICAgICAgICAgQ2hhbmdlZC9Db3JyZWN0ZWQgSFRNTCBhY2NvcmRpbmcgdG8gVGhvbWFzIFBvcHBlbndpbW1lcgogRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDAuOCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MC44IHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgZmVsaXhjbXMKICAgICAgICA6CiAgICAgICAgWzAuOF0gCiAgICAgICAgICAgIENoYW5nZWQvQ29ycmVjdGVkIEhUTUwgYWNjb3JkaW5nIHRvIFRob21hcyBQb3BwZW53aW1tZXIKIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAwLjggdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjAuOCB1cGRhdGUKICAgICAgICBieQogICAgICAgIGZlbGl4Y21zCiAgICAgICAgOgogICAgICAgIFswLjhdIAogICAgICAgICAgICBDaGFuZ2VkL0NvcnJlY3RlZCBIVE1MIGFjY29yZGluZyB0byBUaG9tYXMgUG9wcGVud2ltbWVyCiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMC44IHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4wLjggdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBtaWNoaWNtcwogICAgICAgIDoKICAgICAgICBbMC44XSAKICAgICAgICAgICAgSWRzIGNvcnJlY3RlZAogRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDAuOCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MC44IHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgZmVsaXhjbXMKICAgICAgICA6CiAgICAgICAgWzAuOF0gCiAgICAgICAgICAgIHdvcmsgaW4gcHJvZ3Jlc3MKIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAwLjggdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjAuOCB1cGRhdGUKICAgICAgICBieQogICAgICAgIGZlbGl4Y21zCiAgICAgICAgOgogICAgICAgIFswLjhdIAogICAgICAgICAgICBjaGFuZ2VkIGh0bWwsIHNpbXBsaWZpZWQgdG8gb25lIGZvb3RlcmZvciBhbGwgZG9jdW1lbnRzCiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMC44IHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4wLjggdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBmZWxpeGNtcwogICAgICAgIDoKICAgICAgICBbMC44XSAKICAgICAgICAgICAgbmV3IHZlcnNpb24KIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAwLjggYWRkPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjAuOCBhZGQKICAgICAgICBieQogICAgICAgIGZlbGl4Y21zCiAgICAgICAgOgogICAgICAgIFswLjhdIAogICAgICAgICAgICBuZXcgaW1hZ2VzCiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMC44IGFkZDwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4wLjggYWRkCiAgICAgICAgYnkKICAgICAgICBmZWxpeGNtcwogICAgICAgIDoKICAgICAgICBbMC44XSAKICAgICAgICAgICAgTmV3IGltYWdlcwogRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDAuOCBhZGQ8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MC44IGFkZAogICAgICAgIGJ5CiAgICAgICAgbWljaGljbXMKICAgICAgICA6CiAgICAgICAgWzAuOF0gCiAgICAgICAgICAgIHNlcnZlck5hbWUgYW5kIHNlcnZlclBvcnQgYWRkZWQgdG8gUmVxdWVzdFBhcmFtQWN0aW9uCiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMC44IHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4wLjggdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBtaWNoaWNtcwogICAgICAgIDoKICAgICAgICBbMC44XSAKICAgICAgICAgICAgZGlmZmVyZW50aWF0ZSBiZXR3ZWVuIGF1dGhvcmluZyBhbmQgbGl2ZSBmb3IgbG9nbyBocmVmCiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMC44IHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4wLjggdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBtaWNoaWNtcwogICAgICAgIDoKICAgICAgICBbMC44XSAKICAgICAgICAgICAgYXJ0aWNsZXMgYXJlIHNvcnRlZCBieSBmaWxlbmFtZQogRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDAuOCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MC44IHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgbWljaGljbXMKICAgICAgICA6CiAgICAgICAgWzAuOF0gCiAgICAgICAgICAgIERlZmF1bHQgeG1sbnMgYWRkZWQKIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAwLjggdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjAuOCB1cGRhdGUKICAgICAgICBieQogICAgICAgIG1pY2hpY21zCiAgICAgICAgOgogICAgICAgIFswLjhdIAogICAgICAgICAgICBSU1MgaW1wcm92ZWQgYW5kIG5vIHJlZGlyZWN0IHdpdGhpbiBBdXRob3JpbmcKIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAwLjggdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjAuOCB1cGRhdGUKICAgICAgICBieQogICAgICAgIG1pY2hpY21zCiAgICAgICAgOgogICAgICAgIFswLjhdIAogICAgICAgICAgICBSREYgcmVuYW1lZCB0byBSU1MKIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAwLjggdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjAuOCB1cGRhdGUKICAgICAgICBieQogICAgICAgIG1pY2hpY21zCiAgICAgICAgOgogICAgICAgIFswLjhdIAogICAgICAgICAgICBkYXkgYW5kIG1vbnRoIGFkZGVkIHRvIFNjaGVtYQogRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDAuOCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MC44IHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgbWljaGljbXMKICAgICAgICA6CiAgICAgICAgWzAuOF0gCiAgICAgICAgICAgIEZvcnVtIHB1YmxpY2F0aW9uIGZlYXR1cmVkCiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMC44IGFkZDwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4wLjggYWRkCiAgICAgICAgYnkKICAgICAgICBtaWNoaWNtcwogICAgICAgIDoKICAgICAgICBbMC44XSAKICAgICAgICAgICAgQmV0dGVyIGNvbnRlbnQgYWRkZWQKIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAwLjggdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjAuOCB1cGRhdGUKICAgICAgICBieQogICAgICAgIG1pY2hpY21zCiAgICAgICAgOgogICAgICAgIFswLjhdIAogICAgICAgICAgICBYb3B1cyBkb2N1bWVudGF0aW9uIGltcHJvdmVkIGEgYml0IGFuZCBhZGRlZCB0byBIZWxwCiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMC44IGFkZDwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4wLjggYWRkCiAgICAgICAgYnkKICAgICAgICBtaWNoaWNtcwogICAgICAgIDoKICAgICAgICBbMC44XSAKICAgICAgICAgICAgWG9wdXMgYWRkZWQKIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAwLjggdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjAuOCB1cGRhdGUKICAgICAgICBieQogICAgICAgIG1pY2hpY21zCiAgICAgICAgOgogICAgICAgIFswLjhdIAogICAgICAgICAgICBYb3B1cyBhZGRlZAogRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDAuOCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MC44IHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgbWljaGljbXMKICAgICAgICA6CiAgICAgICAgWzAuOF0gCiAgICAgICAgICAgIEVkaXQgd2l0aCBYb3B1czIgdXBkYXRlZAogRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDAuOCBhZGQ8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MC44IGFkZAogICAgICAgIGJ5CiAgICAgICAgbWljaGljbXMKICAgICAgICA6CiAgICAgICAgWzAuOF0gCiAgICAgICAgICAgIFNjaGVkdWxlciBKb2IgdG8gZmV0Y2ggUlNTCiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMC44IGFkZDwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4wLjggYWRkCiAgICAgICAgYnkKICAgICAgICBtaWNoaWNtcwogICAgICAgIDoKICAgICAgICBbMC44XSAKICAgICAgICAgICAgdXBkYXRlZCB0aGUgdW5pcHVibGljIGRvY3VtZW50YXRpb24KIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAwLjggdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjAuOCB1cGRhdGUKICAgICAgICBieQogICAgICAgIGVnbGl3eW9uYQogICAgICAgIDoKICAgICAgICBbMC44XSAKICAgICAgICAgICAgQWRkZWQgbW9yZSBjb21tZW50cyB0byB0aGUgbWF0Y2hlciB0aGF0IGRlYWxzIHdpdGggZmlsZSAoaW1hZ2UpCnVwbG9hZC4KXQogRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDAuOCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MC44IHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgbWljaGljbXMKICAgICAgICA6CiAgICAgICAgWzAuOF0gCiAgICAgICAgICAgIERvc3NpZXIgYWRkZWQKIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAwLjggcmVtb3ZlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjAuOCByZW1vdmUKICAgICAgICBieQogICAgICAgIG1pY2hpY21zCiAgICAgICAgOgogICAgICAgIFswLjhdIAogICAgICAgICAgICByZW1vdmVkIGZvciBnb29kCiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMC44IHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4wLjggdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBlZ2xpd3lvbmEKICAgICAgICA6CiAgICAgICAgWzAuOF0gCiAgICAgICAgICAgIE1ha2Ugc3VyZSB0aGUgaW1hZ2VzIGFyZSBpbnNlcnRlZCBhZnRlciB0aGUgeHBhdGggYnkgY29uZmlndXJpbmcgaXQgaW4KdGhlIHBhcmFtZXRlcnMgZm9yIHRoZSBmaWxlLXVwbG9hZCBhY3Rpb24uCiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMC44IHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4wLjggdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBlZ2xpd3lvbmEKICAgICAgICA6CiAgICAgICAgWzAuOF0gCiAgICAgICAgICAgIFdoZW4gd3JpdGluZyB0aGUgYmFjayB0aGUgeG1sIGZpbGUgKHVzaW5nIGFuIFhNTFdyaXRlcikgYWZ0ZXIgaGF2aW5nCmluc2VydGVkIHRoZSBtZWRpYSB0YWcgZG8gbm90IHVzZSB0aGUgcHJldHR5LXByaW50IGZvcm1hdHRlci4gVXNlIGEgdmVyeQpzaW1wbGUgYW5kIHBsYWluIGZvcm1hdHRlciB0aGF0IGxlYXZlcyB0aGUgeG1sIGludGFjdCBhcyBpdCB3YXMuCiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMC44IHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4wLjggdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBlZ2xpd3lvbmEKICAgICAgICA6CiAgICAgICAgWzAuOF0gCiAgICAgICAgICAgICogTWFrZSBzdXJlIHRoZSByZWQgZG90IGlzIGluc2VydGVkIGFmdGVyIHRoZSBwLgoqIFRoZSB4cGF0aCBvZiB0aGUgcCBhZnRlciB3aGljaCB0aGUgaW1hZ2UgaXMgdG8gYmUgaW5zZXJ0ZWQgd2FzCiAgY2FsY3VsYXRlZCB3cm9uZ2x5LiBXZSBjYW5ub3Qgc2ltcGx5IHVzZSBwb3NpdGlvbigpIGJ1dCBpbnN0ZWFkIGhhdmUKICB0byB1c2UgY291bnQocHJlY2VkaW5nLXNpYmxpbmc6OnApLgogRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDAuOCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MC44IHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgbWljaGljbXMKICAgICAgICA6CiAgICAgICAgWzAuOF0gCiAgICAgICAgICAgIEJhbm5lciByZW1vdmVkCiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMC44IGFkZDwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4wLjggYWRkCiAgICAgICAgYnkKICAgICAgICBtaWNoaWNtcwogICAgICAgIDoKICAgICAgICBbMC44XSAKICAgICAgICAgICAgU2NoZWR1bGVyIGFkZGVkCiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMC44IHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4wLjggdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBlZ2xpd3lvbmEKICAgICAgICA6CiAgICAgICAgWzAuOF0gCiAgICAgICAgICAgIElmIGFkZCB0aGUgZHVibGluIGNvcmUgZGVzY3JpcHRpb24gYXMgdGhlIGltYWdlIGNhcHRpb24gaWYgaXQgaXMKbm9uLWVtcHR5LgogRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDAuOCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MC44IHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgbWljaGljbXMKICAgICAgICA6CiAgICAgICAgWzAuOF0gCiAgICAgICAgICAgIG5ldyBjb25mZXJlbmNlIHNpdGUgbGF5b3V0IGFkZGVkCiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMC44IHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4wLjggdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBlZ2xpd3lvbmEKICAgICAgICA6CiAgICAgICAgWzAuOF0gCiAgICAgICAgICAgIFJldHVybiBudWxsIGluIGNvcm5lciBjYXNlcyAoZS5nLiB0aGUgdXBsb2FkIGZpbGUgaXMgbnVsbCBvciB0aGUKcGFyYW1ldGVyIHVwbG9hZEZpbGUgaXMgbm90IG9mIHR5cGUgRmlsZVBhcnQpLgogRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDAuOCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MC44IHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgZWdsaXd5b25hCiAgICAgICAgOgogICAgICAgIFswLjhdIAogICAgICAgICAgICBXZSBubyBsb25nZXIgdXNlIHRoZSBEZWZhdWx0IGltcGxlbWVudGF0aW9uIG9mIHRoZSBmaWxlLXVwbG9hZCBhY3Rpb24KYnV0IGEgdW5pcHVibGljIHNwZWNpZmljIGV4dGVuc2lvbiBvZiBpdC4KIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAwLjggdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjAuOCB1cGRhdGUKICAgICAgICBieQogICAgICAgIGVnbGl3eW9uYQogICAgICAgIDoKICAgICAgICBbMC44XSAKICAgICAgICAgICAgKiBDb2RlIGNsZWFudXAKKiBOZXcgbWV0aG9kIGdldEltYWdlUGF0aCB0aGF0IGNvbnN0cnVjdHMgdGhlIGltYWdlIHBhdGguIFRoZSBkZWZhdWx0CiAgaW1wbGVtZW50YXRpb24gc2ltcGx5IGNvbmNhdGVuYXRlcyB0aGUgc2l0ZW1hcFBhdGggYW5kCiAgdXBsb2FkRGlyTmFtZS4gU3ViY2xhc3NlcyBjYW4gc3BlY2lmeSB0aGlzIGZ1cnRoZXIgYW5kIGFkZCBvdGhlcgogIHNjaGVtZXMgYXMgdG8gd2hlcmUgdGhleSB0aGluayBpbWFnZXMgc2hvdWxkIGJlIHN0b3JlZC4KIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAwLjggdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjAuOCB1cGRhdGUKICAgICAgICBieQogICAgICAgIGVnbGl3eW9uYQogICAgICAgIDoKICAgICAgICBbMC44XSAKICAgICAgICAgICAgVGhlIGZpbGVuYW1lIGlzIG5vIGxvbmdlciBzaW1wbHkgdGFrZXMgZnJvbSB0aGUgaWRlbnRpZmllciArIHRoZQpleHRlbnNpb24gb2YgdGhlIHVwbG9hZGVkIGZpbGUuIElmIHRoZSBpZGVudGlmaWVyIGlzIG5vbi1lbXB0eSB0aGlzCm1ldGhvZCBpcyBzdGlsbCB1c2VkLiBPdGhlcndpc2UgdGhlIG5hbWUgb2YgdGhlIHVwbG9hZGVkIGZpbGUgaXMgdGFrZW4uCiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMC44IHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4wLjggdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBlZ2xpd3lvbmEKICAgICAgICA6CiAgICAgICAgWzAuOF0gCiAgICAgICAgICAgIEFkZGVkIHNvbWUgbW9yZSBqYXZhZG9jIGNvbW1lbnRzLgogRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDAuOCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MC44IHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgZWdsaXd5b25hCiAgICAgICAgOgogICAgICAgIFswLjhdIAogICAgICAgICAgICBUaGVyZSBpcyBub3cgYSBuZXcgdmFyaWFibGUgaW5zZXJ0SW1hZ2VCZWZvcmUgd2hpY2ggc3BlY2lmaWVzIGlmIHRoZQptZWRpYSB0YWcgaXMgaW5zZXJ0ZWQgYmVmb3JlIG9yIGFmdGVyIHRoZSB4cGF0aC4gVGhpcyB2YXJpYWJsZSBjYW4gYmUKc3BlY2lmaWVkIGluIHRoZSBzaXRlbWFwIChhcyBhIHBhcmFtZXRlciB0byB0aGUgYWN0aW9uKS4KIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAwLjggdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjAuOCB1cGRhdGUKICAgICAgICBieQogICAgICAgIGVnbGl3eW9uYQogICAgICAgIDoKICAgICAgICBbMC44XSAKICAgICAgICAgICAgKiBSZW5hbWVkIHRoZSBjb25maWd1cmF0aW9uIHBhcmFtZXRlcnMgb2YgdGhlIGZpbGUtdXBsb2FkIGFjdGlvbiBmcm9tCiAgInBhcmFtZXRlciIgdG8gYSBtb3JlIHNlbnNpYmxlIG5hbWUsIGUuZy4gImltYWdlcy1kaXIiCiogQWRkZWQgYW4gYWRkaXRpb25hbCBjb25maWd1cmF0aW9uIHBhcmFtZXRlcnMgImluc2VydC1pbWFnZS1iZWZvcmUiLgogRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDAuOCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MC44IHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgbWljaGljbXMKICAgICAgICA6CiAgICAgICAgWzAuOF0gCiAgICAgICAgICAgIEJhbm5lciBhZGRlZCB0byBIb21lcGFnZQogRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDAuOCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MC44IHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgZWdsaXd5b25hCiAgICAgICAgOgogICAgICAgIFswLjhdIAogICAgICAgICAgICAqIENoYW5nZWQgdGhlIGxvZ2dlciBmb3IgZmlsZS11cGxvYWQuIFlvdSBjYW4gbm93IHNwZWNpZnkgeW91ciBvd24KICBsb2dnaW5nIHRhcmdldCBpbiBsb2draXQueGNvbmYgZm9yIHRoZSBmaWxlLXVwbG9hZCBhY3Rpb24uCiogVGhlIHBpcGVsaW5lIGZvciB1cGxvYWQgbm93IGRvZXMgYSByZWRpcmVjdCBiYWNrIHRvIHRoZSByZWZlcmVyIGlmCiAgdGhlIGFjdGlvbiB3YXMgc3VjY2VzZnVsbC4KIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAwLjggYWRkPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjAuOCBhZGQKICAgICAgICBieQogICAgICAgIG1pY2hpY21zCiAgICAgICAgOgogICAgICAgIFswLjhdIAogICAgICAgICAgICBieWxhd3MgYWRkZWQKIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAwLjggdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjAuOCB1cGRhdGUKICAgICAgICBieQogICAgICAgIGVnbGl3eW9uYQogICAgICAgIDoKICAgICAgICBbMC44XSAKICAgICAgICAgICAgVGhlIHJlZmVyZXIgaXMgbm93IHBhc3NlZCBiYWNrIHRvIHRoZSBzaXRlbWFwIGZvciByZWRpcmVjdGluZwpwdXJwb3Nlcy4KIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAwLjggYWRkPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjAuOCBhZGQKICAgICAgICBieQogICAgICAgIG1pY2hpY21zCiAgICAgICAgOgogICAgICAgIFswLjhdIAogICAgICAgICAgICBmaWxsZWQgaW4gc29tZSBsaWNlbnNlcwogRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDAuOCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MC44IHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgZWdsaXd5b25hCiAgICAgICAgOgogICAgICAgIFswLjhdIAogICAgICAgICAgICAqIFRoZSAiaW52YWxpZCBieXRlIDIgb2YgMy1ieXRlIFVURi04IHNlcXVlbmNlIiBleGNlcHRpb24gaXMgZml4ZWQKICBub3cuIEl0IHdhcyBhIHByb2JsZW0gd2l0aCB1c2luZyBhIHBsYWluIEZpbGV3cml0ZXIgaW5zdGVhZCBvZiB1c2luZwogIGFuIFhNTFdyaXRlciB0byB3cml0ZSB0aGUgeG1sIGJhY2sgdG8gZGlzay4KKiBvbmx5IHRoZSBmaWxlbmFtZSBpcyBpbnNlcnRlZCBpbiB0aGUgbWVkaWEgdGFnIGFzIHBlciBmZWxpeCByZXF1ZXN0LgoqIHRoZSBtZWRpYSB0YWcgaXMgbm93IGluc2VydGVkIGJlZm9yZSB0aGUgaW1hZ2VYUGF0aC4KIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAwLjggdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjAuOCB1cGRhdGUKICAgICAgICBieQogICAgICAgIG1pY2hpY21zCiAgICAgICAgOgogICAgICAgIFswLjhdIAogICAgICAgICAgICBsb2c0aiByZW1vdmVkCiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMC44IGFkZDwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4wLjggYWRkCiAgICAgICAgYnkKICAgICAgICBtaWNoaWNtcwogICAgICAgIDoKICAgICAgICBbMC44XSAKICAgICAgICAgICAgU2VydmxldFByb3h5R2VuZXJhdG9yIHJlbmFtZWQKIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAwLjggcmVtb3ZlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjAuOCByZW1vdmUKICAgICAgICBieQogICAgICAgIG1pY2hpY21zCiAgICAgICAgOgogICAgICAgIFswLjhdIAogICAgICAgICAgICBIZWxsb1dvcmxkIHJlbmFtZWQKIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAwLjggcmVtb3ZlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjAuOCByZW1vdmUKICAgICAgICBieQogICAgICAgIG1pY2hpY21zCiAgICAgICAgOgogICAgICAgIFswLjhdIAogICAgICAgICAgICByZW1vdmVkLCB3YXMgb25seSBnb29kIGZvciBwbGF5aW5nIGFyb3VuZCB3aXRoCiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMC44IHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4wLjggdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBtaWNoaWNtcwogICAgICAgIDoKICAgICAgICBbMC44XSAKICAgICAgICAgICAgRW5jb2RpbmcgcHJvYmxlbSBmaXhlZAogRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDAuOCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MC44IHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgbWljaGljbXMKICAgICAgICA6CiAgICAgICAgWzAuOF0gCiAgICAgICAgICAgIGJhY2sgdG8gMS41CiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMC44IHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4wLjggdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBtaWNoaWNtcwogICAgICAgIDoKICAgICAgICBbMC44XSAKICAgICAgICAgICAgYmFjayB0byAxLjE4CiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMC44IHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4wLjggdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBtaWNoaWNtcwogICAgICAgIDoKICAgICAgICBbMC44XSAKICAgICAgICAgICAgYmFjayB0byAxLjIKIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAwLjggdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjAuOCB1cGRhdGUKICAgICAgICBieQogICAgICAgIG1pY2hpY21zCiAgICAgICAgOgogICAgICAgIFswLjhdIAogICAgICAgICAgICBDVlMgYWRkZWQgdG8gbmF2aWdhdGlvbgogRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDAuOCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MC44IHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgbWljaGljbXMKICAgICAgICA6CiAgICAgICAgWzAuOF0gCiAgICAgICAgICAgIHBzZXJ2ZXIgcmVwbGFjZWQgYnkgc3NoCiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMC44IGFkZDwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4wLjggYWRkCiAgICAgICAgYnkKICAgICAgICBtaWNoaWNtcwogICAgICAgIDoKICAgICAgICBbMC44XSAKICAgICAgICAgICAgT3ZlcnZpZXcgQm9keSBhZGRlZAogRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDAuOCBhZGQ8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MC44IGFkZAogICAgICAgIGJ5CiAgICAgICAgbWljaGljbXMKICAgICAgICA6CiAgICAgICAgWzAuOF0gCiAgICAgICAgICAgIE5vdCBmdWxseSBtaWdyYXRlZCBhcnRpY2xlcyBhZGRlZAogRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDAuOCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MC44IHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgbWljaGljbXMKICAgICAgICA6CiAgICAgICAgWzAuOF0gCiAgICAgICAgICAgIExpbmtzIGFuZCBhIGxvdCBvZiBvdGhlciBzdHVmZiBmaXhlZAogRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDAuOCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MC44IHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgbWljaGljbXMKICAgICAgICA6CiAgICAgICAgWzAuOF0gCiAgICAgICAgICAgIE51bGxQb2ludEV4Y2VwdGlvbiBidWcgZml4ZWQKIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAwLjggdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjAuOCB1cGRhdGUKICAgICAgICBieQogICAgICAgIG1pY2hpY21zCiAgICAgICAgOgogICAgICAgIFswLjhdIAogICAgICAgICAgICBKYXZhZG9jIHN5bnRheCBmaXhlZAogRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDAuOCBhZGQ8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MC44IGFkZAogICAgICAgIGJ5CiAgICAgICAgbWljaGljbXMKICAgICAgICA6CiAgICAgICAgWzAuOF0gCiAgICAgICAgICAgIEV4dHJhY3RlZCBQdWJsaXNoZXIgYWRkZWQKIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAwLjggYWRkPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjAuOCBhZGQKICAgICAgICBieQogICAgICAgIG1pY2hpY21zCiAgICAgICAgOgogICAgICAgIFswLjhdIAogICAgICAgICAgICBTY2hlZHVsZXIgYWRkZWQKIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAwLjggdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjAuOCB1cGRhdGUKICAgICAgICBieQogICAgICAgIG1pY2hpY21zCiAgICAgICAgOgogICAgICAgIFswLjhdIAogICAgICAgICAgICBTb21lIHJlcXVlc3QgaW5mbyBhZGRlZAogRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDAuOCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MC44IHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgbWljaGljbXMKICAgICAgICA6CiAgICAgICAgWzAuOF0gCiAgICAgICAgICAgIFpJUCBjb2RlIG1vZGlmaWVkCiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMC44IGFkZDwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4wLjggYWRkCiAgICAgICAgYnkKICAgICAgICBtaWNoaWNtcwogICAgICAgIDoKICAgICAgICBbMC44XSAKICAgICAgICAgICAgTG9jYXRpb24gYW5kIExvY2FsIEluZm8gYWRkZWQgdG8gQXV0aG9yaW5nCiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMC44IHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4wLjggdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBtaWNoaWNtcwogICAgICAgIDoKICAgICAgICBbMC44XSAKICAgICAgICAgICAgVGVkIHJlcGxhY2VkIGJ5IENoYXJsZXMKIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAwLjggdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjAuOCB1cGRhdGUKICAgICAgICBieQogICAgICAgIG1pY2hpY21zCiAgICAgICAgOgogICAgICAgIFswLjhdIAogICAgICAgICAgICBsb2NhdGlvbiBKdWxpYSByZXBsYWNlZCBieSBMYXdyZW5jZQogRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDAuOCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MC44IHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgbWljaGljbXMKICAgICAgICA6CiAgICAgICAgWzAuOF0gCiAgICAgICAgICAgIGl0ZXJvcCBhZGRlZAogRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDAuOCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MC44IHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgbWljaGljbXMKICAgICAgICA6CiAgICAgICAgWzAuOF0gCiAgICAgICAgICAgIENvb2tpZXMgc2hvdWxkIGJlIGZvcndhcmRlZCBub3cKIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAwLjggdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjAuOCB1cGRhdGUKICAgICAgICBieQogICAgICAgIG1pY2hpY21zCiAgICAgICAgOgogICAgICAgIFswLjhdIAogICAgICAgICAgICBIU1FMREIgUG9ydCBzZXR0aW5nCiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMC44IHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4wLjggdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBtaWNoaWNtcwogICAgICAgIDoKICAgICAgICBbMC44XSAKICAgICAgICAgICAgQXJ0aWNsZSBYU0xUIG9mIExpdmUgdmVyc2lvbiBmaXhlZAogRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDAuOCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MC44IHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgbWljaGljbXMKICAgICAgICA6CiAgICAgICAgWzAuOF0gCiAgICAgICAgICAgIFJvZ2VyIEZpc2NoZXIgYWRkZWQgdG8gb2MtMQogRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDAuOCBhZGQ8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MC44IGFkZAogICAgICAgIGJ5CiAgICAgICAgbWljaGljbXMKICAgICAgICA6CiAgICAgICAgWzAuOF0gCiAgICAgICAgICAgIFNwb25zb3JpbmcgYWRkZWQKIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAwLjggdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjAuOCB1cGRhdGUKICAgICAgICBieQogICAgICAgIGVnbGl3eW9uYQogICAgICAgIDoKICAgICAgICBbMC44XSAKICAgICAgICAgICAgKiBJbXBsZW1lbnRlZCB0aGUgcmVxdWlyZW1lbnQgdGhhdCB0aGUgdXBsb2FkZWQgZmlsZSBhcyBpdCBpcyBzdG9yZWQgb24KICB0aGUgc2VydmVyIHNob3VsZCBiZSBuYW1lZCB1c2luZyB0aGUgaWRlbnRpZmllciBnaXZlbiBieSB0aGUgdXNlciBpbgogIHRoZSByZXF1ZXN0ICsgdGhlIGV4dGVuc2lvbiBvZiB0aGUgb3JpZ2luYWwgdXBsb2FkZWQgZmlsZS4KKiBHZW5lcmFsIGNsZWFudXAgb2YgZGVidWcgc3RhdGVtZW50cy4KIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAwLjggdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjAuOCB1cGRhdGUKICAgICAgICBieQogICAgICAgIGVnbGl3eW9uYQogICAgICAgIDoKICAgICAgICBbMC44XSAKICAgICAgICAgICAgQWRkZWQgZG9jdW1lbnRhdGlvbiB0ZW1wbGF0ZXMgdG8gdGhlIG1ldGhvZHMuCiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMC44IHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4wLjggdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBmZWxpeGNtcwogICAgICAgIDoKICAgICAgICBbMC44XSAKICAgICAgICAgICAgQ29tbWVudGVkIG91dCBicm93c2VyIHNlbGVjdGlvbiBmb3IgYXJ0aWNsZQogRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDAuOCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MC44IHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgZmVsaXhjbXMKICAgICAgICA6CiAgICAgICAgWzAuOF0gCiAgICAgICAgICAgIEFkZGVkIGRvY3VtZW50aWQKIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAwLjggdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjAuOCB1cGRhdGUKICAgICAgICBieQogICAgICAgIGVnbGl3eW9uYQogICAgICAgIDoKICAgICAgICBbMC44XSAKICAgICAgICAgICAgR2VuZXJhbCBjbGVhbnVwIGFuZCBjb21wbGV0aW9uLgpUaGUgZG9jdW1lbnRpZCBpcyBub3cgcGFzc2VkIHRocm91Z2ggYXMgYSByZXF1ZXN0IHBhcmFtZXRlci4KVGhlIGZpbGUgaXMgdXBsb2FkZWQgd2l0aCB0aGUgbmFtZSBvZiB0aGUgImlkZW50aWZpZXIiIHBhcmFtZXRlci4KIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAwLjggdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjAuOCB1cGRhdGUKICAgICAgICBieQogICAgICAgIGZlbGl4Y21zCiAgICAgICAgOgogICAgICAgIFswLjhdIAogICAgICAgICAgICBBZGRlZCByZWQgZG90cyBhbmQgY29ycmVjdCB4cGF0aAogRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDAuOCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MC44IHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgZmVsaXhjbXMKICAgICAgICA6CiAgICAgICAgWzAuOF0gCiAgICAgICAgICAgIEFkZGVkIG1hdGNoZXIgZm9yIGZpbGUgdXBsb2FkCiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMC44IGFkZDwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4wLjggYWRkCiAgICAgICAgYnkKICAgICAgICBmZWxpeGNtcwogICAgICAgIDoKICAgICAgICBbMC44XSAKICAgICAgICAgICAgSW1hZ2UgZm9yIGluc2VydGluZyBpbWFnZXMKIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAwLjggYWRkPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjAuOCBhZGQKICAgICAgICBieQogICAgICAgIG1pY2hpY21zCiAgICAgICAgOgogICAgICAgIFswLjhdIAogICAgICAgICAgICBVcGxvYWQgRmlsZSB0byBTY3JhdGNocGFkIGFkZGVkCiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMC44IHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4wLjggdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBtaWNoaWNtcwogICAgICAgIDoKICAgICAgICBbMC44XSAKICAgICAgICAgICAgbW9yZSBkZXRhaWxlZCBDVlMgaW5zdHJ1Y3Rpb24KIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAwLjggdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjAuOCB1cGRhdGUKICAgICAgICBieQogICAgICAgIG1pY2hpY21zCiAgICAgICAgOgogICAgICAgIFswLjhdIAogICAgICAgICAgICBWZXJkYW5hIGFkZGVkCiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMC44IGFkZDwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4wLjggYWRkCiAgICAgICAgYnkKICAgICAgICBtaWNoaWNtcwogICAgICAgIDoKICAgICAgICBbMC44XSAKICAgICAgICAgICAgSW50ZXJvcCBhbmQgQ1ZTIGFkZGVkCiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMC44IHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4wLjggdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBtaWNoaWNtcwogICAgICAgIDoKICAgICAgICBbMC44XSAKICAgICAgICAgICAgTWFpbGluZyBMaXN0cyBhbmQgTG9jYWwgSW5mbyB1cGRhdGVkCiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMC44IHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4wLjggdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBmZWxpeGNtcwogICAgICAgIDoKICAgICAgICBbMC44XSAKICAgICAgICAgICAgV29ya2luZyBvbiB1cGxvYWQgaW1hZ2UgZnVuY3Rpb25hbGl0eQogRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDAuOCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MC44IHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgZWdsaXd5b25hCiAgICAgICAgOgogICAgICAgIFswLjhdIAogICAgICAgICAgICBSZW1vdmVkIHVubmVjZXNzYXJ5IGltcG9ydHMuCiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMC44IHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4wLjggdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBtaWNoaWNtcwogICAgICAgIDoKICAgICAgICBbMC44XSAKICAgICAgICAgICAgVXBsb2FkIEltYWdlIFNjcmVlbiBhZGRlZAogRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDAuOCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MC44IHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgbWljaGljbXMKICAgICAgICA6CiAgICAgICAgWzAuOF0gCiAgICAgICAgICAgIGhhcmRjb2RlZCBwYXRoIHJlbW92ZWQKIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAwLjggdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjAuOCB1cGRhdGUKICAgICAgICBieQogICAgICAgIG1pY2hpY21zCiAgICAgICAgOgogICAgICAgIFswLjhdIAogICAgICAgICAgICBSb2xsYmFjayBoYXMgX21pY2hpXyBoYXJkY29kZWQgd2l0aGluIHBhdGgsIHJlbWFpbnMgdG8gYmUgZml4ZWQKIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAwLjggdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjAuOCB1cGRhdGUKICAgICAgICBieQogICAgICAgIG1pY2hpY21zCiAgICAgICAgOgogICAgICAgIFswLjhdIAogICAgICAgICAgICBBdHRyaWJ1dGUgbWlsbGlzIGFkZGVkIHRvIHNjaGVtYQogRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDAuOCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MC44IHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgbWljaGljbXMKICAgICAgICA6CiAgICAgICAgWzAuOF0gCiAgICAgICAgICAgIEFuY2hvcnMgZml4ZWQKIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAwLjggdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjAuOCB1cGRhdGUKICAgICAgICBieQogICAgICAgIG1pY2hpY21zCiAgICAgICAgOgogICAgICAgIFswLjhdIAogICAgICAgICAgICBBbm90aGVyIFdpa2kKIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAwLjggdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjAuOCB1cGRhdGUKICAgICAgICBieQogICAgICAgIG1pY2hpY21zCiAgICAgICAgOgogICAgICAgIFswLjhdIAogICAgICAgICAgICBXaXNoIExpc3QgZnJvbSBPdmlkdQogRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDAuOCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MC44IHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgbWljaGljbXMKICAgICAgICA6CiAgICAgICAgWzAuOF0gCiAgICAgICAgICAgIHNvbWUgc21hbGwgbW9kaWZpY2F0aW9ucwogRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDAuOCByZW1vdmU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MC44IHJlbW92ZQogICAgICAgIGJ5CiAgICAgICAgZmVsaXhjbXMKICAgICAgICA6CiAgICAgICAgWzAuOF0gCiAgICAgICAgICAgIFJlbW92ZWQgc2luY2Ugc2VwYXJhdGVkIGZvciBhdXRob3JpbmcgYW5kIGxpdmUKIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAwLjggdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjAuOCB1cGRhdGUKICAgICAgICBieQogICAgICAgIGZlbGl4Y21zCiAgICAgICAgOgogICAgICAgIFswLjhdIAogICAgICAgICAgICBBZGRlZCBhdHRyaWJ1dGUgbWlsbGlzIHRvIHN0b3J5LmRhdGUKIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAwLjggdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjAuOCB1cGRhdGUKICAgICAgICBieQogICAgICAgIGZlbGl4Y21zCiAgICAgICAgOgogICAgICAgIFswLjhdIAogICAgICAgICAgICBBZGRlZCBhdHRyaWJ1dGUgbWlsbGlzIHRvIHN0b3J5LmRhdGUKIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAwLjggdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjAuOCB1cGRhdGUKICAgICAgICBieQogICAgICAgIGZlbGl4Y21zCiAgICAgICAgOgogICAgICAgIFswLjhdIAogICAgICAgICAgICBBZGRlZC9jaGFuZ2VkIGVsZW1lbnQgc3RvcnkuZGF0ZQogRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDAuOCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MC44IHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgZmVsaXhjbXMKICAgICAgICA6CiAgICAgICAgWzAuOF0gCiAgICAgICAgICAgIENoYW5nZWQgZWxlbWVudCBzdG9yeS5kYXRlCiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMC44IHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4wLjggdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBmZWxpeGNtcwogICAgICAgIDoKICAgICAgICBbMC44XSAKICAgICAgICAgICAgQWRkZWQgZWxlbWVudCBzdG9yeS5kYXRlCiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMC44IHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4wLjggdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBmZWxpeGNtcwogICAgICAgIDoKICAgICAgICBbMC44XSAKICAgICAgICAgICAgU2VwYXJhdGVkIEF1dGhvcmluZy9MaXZlIGFuZCBhZGRlZCAnTm9jaCBuaWUgcHVibGl6aWVydCcKIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAwLjggdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjAuOCB1cGRhdGUKICAgICAgICBieQogICAgICAgIG1pY2hpY21zCiAgICAgICAgOgogICAgICAgIFswLjhdIAogICAgICAgICAgICBMb2NhbCBJbmZvIGFkZGVkIGFuZCBFcmljIGFzIGhvc3Qgb24gc2Vjb25kIGRheQogRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDAuOCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MC44IHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgbWljaGljbXMKICAgICAgICA6CiAgICAgICAgWzAuOF0gCiAgICAgICAgICAgIE5hdmlnYXRpb24gbW9kaWZpZWQKIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAwLjggdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjAuOCB1cGRhdGUKICAgICAgICBieQogICAgICAgIGVkaXRoY21zCiAgICAgICAgOgogICAgICAgIFswLjhdIAogICAgICAgICAgICBkb2N1bWVudGF0aW9uIG9mIHRoZSBzZWN0aW9uJ3MgZ2VuZXJhdGlvbiBmb3IgdGhlIHVuaQogRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDAuOCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MC44IHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgZWRpdGhjbXMKICAgICAgICA6CiAgICAgICAgWzAuOF0gCiAgICAgICAgICAgIFZpZXcgb2Ygcm9sbGJhY2sgdmVyc2lvbnMgd2l0aCBzZXJ2ZXJwYWdlcyBpbnN0ZWFkIG9mIGFuIGFjdGlvbgogRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDAuOCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MC44IHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgZWRpdGhjbXMKICAgICAgICA6CiAgICAgICAgWzAuOF0gCiAgICAgICAgICAgIFJvbGxiYWNrIGFuZCB2aWV3IG9mIGJhayB2ZXJzaW9ucwogRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDAuOCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MC44IHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgZWdsaXd5b25hCiAgICAgICAgOgogICAgICAgIFswLjhdIAogICAgICAgICAgICBDaGFuZ2VkIHRoZSBsYXlvdXQgdG8gY29uZm9ybSB0byBjb2Nvb24gc291cmNlcy4KIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAwLjggdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjAuOCB1cGRhdGUKICAgICAgICBieQogICAgICAgIGVkaXRoY21zCiAgICAgICAgOgogICAgICAgIFswLjhdIAogICAgICAgICAgICBSb2xsYmFjayBzY3JlZW4gd2l0aCB4c3AKIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAwLjggdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjAuOCB1cGRhdGUKICAgICAgICBieQogICAgICAgIG1pY2hpY21zCiAgICAgICAgOgogICAgICAgIFswLjhdIAogICAgICAgICAgICB1bmlwdWJsaWMgYWRkZWQgdG8gamF2YWRvYwogRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDAuOCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MC44IHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgbWljaGljbXMKICAgICAgICA6CiAgICAgICAgWzAuOF0gCiAgICAgICAgICAgIExpbmsgdG8gV2lraSBhZGRlZAogRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDAuOCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MC44IHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgZWdsaXd5b25hCiAgICAgICAgOgogICAgICAgIFswLjhdIAogICAgICAgICAgICBDaGFuZ2VkIHRoZSBpbmRlbnRpbmcgdG8gQXBhY2hlIHN0eWxlLgpBZGRlZCBjb21tZW50cyB0byBhbGwgbWV0aG9kcy4KIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAwLjggdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjAuOCB1cGRhdGUKICAgICAgICBieQogICAgICAgIG1pY2hpY21zCiAgICAgICAgOgogICAgICAgIFswLjhdIAogICAgICAgICAgICB4bWwgZGVjbGFyYXRpb24gaW5zZXJ0ZWQKIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAwLjggdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjAuOCB1cGRhdGUKICAgICAgICBieQogICAgICAgIGVkaXRoY21zCiAgICAgICAgOgogICAgICAgIFswLjhdIAogICAgICAgICAgICBTb3J0cyBBcnRpY2xlcyBpbiB0aGUgc2VjdGlvbgogRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDAuOCBhZGQ8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MC44IGFkZAogICAgICAgIGJ5CiAgICAgICAgZWRpdGhjbXMKICAgICAgICA6CiAgICAgICAgWzAuOF0gCiAgICAgICAgICAgIEFydGljbGVzIGluIHRoZSBzZWN0aW9uIGFyZSBzb3J0ZWQKIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAwLjggdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjAuOCB1cGRhdGUKICAgICAgICBieQogICAgICAgIG1pY2hpY21zCiAgICAgICAgOgogICAgICAgIFswLjhdIAogICAgICAgICAgICBSb2xsYmFjawogRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDAuOCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MC44IHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgZWRpdGhjbXMKICAgICAgICA6CiAgICAgICAgWzAuOF0gCiAgICAgICAgICAgIFB1Ymxpc2hlZCBhcnRpY2xlcwogRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDAuOCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MC44IHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgZWRpdGhjbXMKICAgICAgICA6CiAgICAgICAgWzAuOF0gCiAgICAgICAgICAgIFB1Ymxpc2hkYXRlCiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMC44IHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4wLjggdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBlZGl0aGNtcwogICAgICAgIDoKICAgICAgICBbMC44XSAKICAgICAgICAgICAgUHVibGlzaCBBcnRpa2VsIHdpdGhvdXQgYW4gaW1hZ2UKIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAwLjggdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjAuOCB1cGRhdGUKICAgICAgICBieQogICAgICAgIG1pY2hpY21zCiAgICAgICAgOgogICAgICAgIFswLjhdIAogICAgICAgICAgICBTZXJ2bGV0UHJveHkgaXMgbm93IHVzYWJsZS4gRXhjZXB0aW9uIEhhbmRsaW5nIHNob3VsZCBiZSBpbXByb3ZlZCB0aG91Z2gKIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAwLjggdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjAuOCB1cGRhdGUKICAgICAgICBieQogICAgICAgIG1pY2hpY21zCiAgICAgICAgOgogICAgICAgIFswLjhdIAogICAgICAgICAgICBTZXJ2bGV0UHJveHlHZW5lcmF0b3IgbmVhcmx5IGZpbmlzaGVkCiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMC44IHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4wLjggdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBtaWNoaWNtcwogICAgICAgIDoKICAgICAgICBbMC44XSAKICAgICAgICAgICAgU2VydmxldFByb3h5IGZ1cnRoZXIgaW1wcm92ZWQKIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAwLjggdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjAuOCB1cGRhdGUKICAgICAgICBieQogICAgICAgIG1pY2hpY21zCiAgICAgICAgOgogICAgICAgIFswLjhdIAogICAgICAgICAgICBzZXJ2bGV0LmphciBkb2N1bWVudGVkCiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMC44IHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4wLjggdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBtaWNoaWNtcwogICAgICAgIDoKICAgICAgICBbMC44XSAKICAgICAgICAgICAgU2VydmxldFByb3h5IG5lYXJseSBmaW5pc2hlZAogRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDAuOCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MC44IHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgbWljaGljbXMKICAgICAgICA6CiAgICAgICAgWzAuOF0gCiAgICAgICAgICAgIGdhcmJhZ2UgcmVtb3ZlZAogRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDAuOCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MC44IHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgbWljaGljbXMKICAgICAgICA6CiAgICAgICAgWzAuOF0gCiAgICAgICAgICAgIGVtYWlsIGFkZHJlc3MgdG8gY29tcGxhaW4gb24gc3BhbSBhZGRlZAogRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDAuOCBhZGQ8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MC44IGFkZAogICAgICAgIGJ5CiAgICAgICAgbWljaGljbXMKICAgICAgICA6CiAgICAgICAgWzAuOF0gCiAgICAgICAgICAgIGVtYWlsIGFkZHJlc3NlcyBjaGFuZ2VkIHRvIG9zY29tLm9yZwogRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDAuOCBhZGQ8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MC44IGFkZAogICAgICAgIGJ5CiAgICAgICAgZWRpdGhjbXMKICAgICAgICA6CiAgICAgICAgWzAuOF0gCiAgICAgICAgICAgIFJlbmFtZSB0aGUgc2VjdGlvbidzIGltYWdlcyBmb3IgdGhlIGhlYWRsaW5lcyBvbiB0aGUgZnJvbnRwYWdlCiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMC44IGFkZDwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4wLjggYWRkCiAgICAgICAgYnkKICAgICAgICBlZGl0aGNtcwogICAgICAgIDoKICAgICAgICBbMC44XSAKICAgICAgICAgICAgUHVibGlzaGVkIGFydGljbGUgYXJlIGluc2VydGVkIG9uY2UgYXQgdGhlIHRvcCBvZiB0aGUgZnJvbnRwYWdlLiBQdWJsaXNoZWRkYXRlIGFuZCBSZXZpc2lvbmRhdGUKIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAwLjggdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjAuOCB1cGRhdGUKICAgICAgICBieQogICAgICAgIG1pY2hpY21zCiAgICAgICAgOgogICAgICAgIFswLjhdIAogICAgICAgICAgICBiciByZW1vdmVkCiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMC44IGFkZDwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4wLjggYWRkCiAgICAgICAgYnkKICAgICAgICBtaWNoaWNtcwogICAgICAgIDoKICAgICAgICBbMC44XSAKICAgICAgICAgICAgSGVsbG9Xb3JsZCBmb3IgdGVzdGluZyBTZXJ2bGV0UHJveHkKIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAwLjggdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjAuOCB1cGRhdGUKICAgICAgICBieQogICAgICAgIG1pY2hpY21zCiAgICAgICAgOgogICAgICAgIFswLjhdIAogICAgICAgICAgICBTY3JhdGNocGFkIGFuZCBTZXJ2bGV0UHJveHlHZW5lcmF0b3IgYWRkZWQKIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAwLjggdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjAuOCB1cGRhdGUKICAgICAgICBieQogICAgICAgIG1pY2hpY21zCiAgICAgICAgOgogICAgICAgIFswLjhdIAogICAgICAgICAgICBmb3IgaGlzdG9yeQogRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDAuOCBhZGQ8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MC44IGFkZAogICAgICAgIGJ5CiAgICAgICAgbWljaGljbXMKICAgICAgICA6CiAgICAgICAgWzAuOF0gCiAgICAgICAgICAgIFJlYWR5IHRvIHJ1bWJsZQogRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDAuOCBhZGQ8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MC44IGFkZAogICAgICAgIGJ5CiAgICAgICAgbWljaGljbXMKICAgICAgICA6CiAgICAgICAgWzAuOF0gCiAgICAgICAgICAgIFhvcHVzMiBpbnRlZ3JhdGlvbiBmdXJ0aGVyIGltcHJvdmVkCiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMC44IHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4wLjggdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBtaWNoaWNtcwogICAgICAgIDoKICAgICAgICBbMC44XSAKICAgICAgICAgICAgUHJlc3MgUmVsZWFzZQogRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDAuOCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MC44IHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgbWljaGljbXMKICAgICAgICA6CiAgICAgICAgWzAuOF0gCiAgICAgICAgICAgIGJldHRlciBncm91cGluZyBvZiB0aGUgbWVudXMKIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAwLjggYWRkPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjAuOCBhZGQKICAgICAgICBieQogICAgICAgIGVkaXRoY21zCiAgICAgICAgOgogICAgICAgIFswLjhdIAogICAgICAgICAgICBPdmVyd3JpdGUgZ2VuZXJpYyBwdWJsaXNoIHNjcmVlbgogRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDAuOCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MC44IHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgZWRpdGhjbXMKICAgICAgICA6CiAgICAgICAgWzAuOF0gCiAgICAgICAgICAgIEluc2VydCB0aGUgcHVibGlzaGVkIGFydGljbGUgaW4gdGhlIGhlYWRsaW5lcyBhdCB0aGUgdG9wCiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMC44IHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4wLjggdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBtaWNoaWNtcwogICAgICAgIDoKICAgICAgICBbMC44XSAKICAgICAgICAgICAgc29tZSBuaXR0eSBncml0dHkKIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAwLjggdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjAuOCB1cGRhdGUKICAgICAgICBieQogICAgICAgIG1pY2hpY21zCiAgICAgICAgOgogICAgICAgIFswLjhdIAogICAgICAgICAgICBMaW5rIHRvIE1hdGhNTCBjaGFuZ2VkCiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMC44IGFkZDwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4wLjggYWRkCiAgICAgICAgYnkKICAgICAgICBtaWNoaWNtcwogICAgICAgIDoKICAgICAgICBbMC44XSAKICAgICAgICAgICAgZml4ZWQgc29tZSBzdHVmZgogRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDAuOCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MC44IHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgbWljaGljbXMKICAgICAgICA6CiAgICAgICAgWzAuOF0gCiAgICAgICAgICAgIFhvcHVzMiBpbnRlZ3JhdGVkCiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMC44IHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4wLjggdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBtaWNoaWNtcwogICAgICAgIDoKICAgICAgICBbMC44XSAKICAgICAgICAgICAgQXJ0aWNsZSBQdWJsaXNoZXIgYWRkZWQgYW5kIGN1c3RvbWl6ZWQKIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAwLjggdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjAuOCB1cGRhdGUKICAgICAgICBieQogICAgICAgIG1pY2hpY21zCiAgICAgICAgOgogICAgICAgIFswLjhdIAogICAgICAgICAgICBKUEYgYW5kIE1hdGhNTCBhZGRlZAogRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDAuOCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MC44IHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgbWljaGljbXMKICAgICAgICA6CiAgICAgICAgWzAuOF0gCiAgICAgICAgICAgIEhUVFAgUE9TVCB0byBhcmJpdHJhcnkgc2VydmxldAogRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDAuOCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MC44IHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgbWljaGljbXMKICAgICAgICA6CiAgICAgICAgWzAuOF0gCiAgICAgICAgICAgIG9uZSBzdGVwIGZ1cnRoZXIgd2l0aCBYb3B1czEgaW50ZWdyYXRpb24KIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAwLjggdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjAuOCB1cGRhdGUKICAgICAgICBieQogICAgICAgIG1pY2hpY21zCiAgICAgICAgOgogICAgICAgIFswLjhdIAogICAgICAgICAgICBSZWFkeSBmb3IgcHJlc3MgcmVsZWFzZQogRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDAuOCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MC44IHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgbWljaGljbXMKICAgICAgICA6CiAgICAgICAgWzAuOF0gCiAgICAgICAgICAgIFRpdGxlIGFkZGVkIGZvciBXZWJsb2cKIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAwLjggdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjAuOCB1cGRhdGUKICAgICAgICBieQogICAgICAgIGVkaXRoY21zCiAgICAgICAgOgogICAgICAgIFswLjhdIAogICAgICAgICAgICBOZXcgWWVhcgogRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDAuOCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MC44IHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgZWRpdGhjbXMKICAgICAgICA6CiAgICAgICAgWzAuOF0gCiAgICAgICAgICAgIENsZWFuIHVwIHRoZSB2YXJpYWJsZXMgZm9yIHRoZSBzdHlsZXNoZWV0CiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMC44IHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4wLjggdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBlZGl0aGNtcwogICAgICAgIDoKICAgICAgICBbMC44XSAKICAgICAgICAgICAgQ3JlYXRpb24gb2YgYSBuZXcgQXJ0aWNsZQogRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDAuOCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MC44IHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgZWRpdGhjbXMKICAgICAgICA6CiAgICAgICAgWzAuOF0gCiAgICAgICAgICAgIHBhcmVudGlkIGZvciB0aGUgY3JlYXRpb24gb2YgdGhlIGFydGljbGUKIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAwLjggdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjAuOCB1cGRhdGUKICAgICAgICBieQogICAgICAgIGVnbGl3eW9uYQogICAgICAgIDoKICAgICAgICBbMC44XSAKICAgICAgICAgICAgUmVtb3ZlZCBAY3JlYXRlZCB0YWdzIGZyb20gdGhlIGNvbW1lbnRzIGFzIHRoZXkgZ2l2ZSB3YXJuaW5ncyB3aGVuCmJ1aWxkaW5nIHRoZSBqYXZhZG9jcyB3aXRoIGpkayAxLjQuCiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMC44IHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4wLjggdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBlZ2xpd3lvbmEKICAgICAgICA6CiAgICAgICAgWzAuOF0gCiAgICAgICAgICAgIFJlbW92ZWQgdGhlIGNyZWF0ZWQgdGFncyBmcm9tIHRoZSBjb21tZW50cyBhcyB0aGV5IGdpdmUgd2FybmluZ3Mgd2hlbgpidWlsZGluZyB0aGUgamF2YWRvY3Mgd2l0aCBqZGsgMS40LgogRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDAuOCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MC44IHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgbWljaGljbXMKICAgICAgICA6CiAgICAgICAgWzAuOF0gCiAgICAgICAgICAgIHRlbnRhdGl2ZSBwcm9ncmFtIGFkZGVkCiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMC44IHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4wLjggdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBtaWNoaWNtcwogICAgICAgIDoKICAgICAgICBbMC44XSAKICAgICAgICAgICAgbmJzcCBhZGRlZAogRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDAuOCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MC44IHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgbWljaGljbXMKICAgICAgICA6CiAgICAgICAgWzAuOF0gCiAgICAgICAgICAgIEphdmFkb2MgaW1wcm92ZWQKIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAwLjggYWRkPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjAuOCBhZGQKICAgICAgICBieQogICAgICAgIG1pY2hpY21zCiAgICAgICAgOgogICAgICAgIFswLjhdIAogICAgICAgICAgICBOZXcgQXJ0aWNsZSBDcmVhdG9yIGFkZGVkCiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMC44IHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4wLjggdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBtaWNoaWNtcwogICAgICAgIDoKICAgICAgICBbMC44XSAKICAgICAgICAgICAgUmVtb3ZlZCBYb3B1cyBCYXIgZnJvbSBHZW5lcmljIFBhZ2VzCiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMC44IGFkZDwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4wLjggYWRkCiAgICAgICAgYnkKICAgICAgICBtaWNoaWNtcwogICAgICAgIDoKICAgICAgICBbMC44XSAKICAgICAgICAgICAgU2VydmxldCBQcm94eQogRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDAuOCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MC44IHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgbWljaGljbXMKICAgICAgICA6CiAgICAgICAgWzAuOF0gCiAgICAgICAgICAgIGdhcmJhZ2UgY29sbGVjdGVkCiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMC44IHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4wLjggdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBtaWNoaWNtcwogICAgICAgIDoKICAgICAgICBbMC44XSAKICAgICAgICAgICAgUHVibGljYXRpb24gd3lvbmEub3JnIHN0YXJ0ZWQKIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAwLjggdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjAuOCB1cGRhdGUKICAgICAgICBieQogICAgICAgIGVkaXRoY21zCiAgICAgICAgOgogICAgICAgIFswLjhdIAogICAgICAgICAgICBQdWJsaXNoIGZyb250cGFnZQogRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDAuOCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MC44IHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgZWRpdGhjbXMKICAgICAgICA6CiAgICAgICAgWzAuOF0gCiAgICAgICAgICAgIENoZWNraW4sIGNoZWNrb3V0IGFuZCBwdWJsaXNoCiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMC44IHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4wLjggdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBlZGl0aGNtcwogICAgICAgIDoKICAgICAgICBbMC44XSAKICAgICAgICAgICAgRGVmaW5pdGlvbiBvZiBzdWJjbGFzc2VzIGFjdGlvbiBmb3IgY2hlY2tpbiBhbmQgIGNoZWNrb3V0CiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMC44IGFkZDwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4wLjggYWRkCiAgICAgICAgYnkKICAgICAgICBlZGl0aGNtcwogICAgICAgIDoKICAgICAgICBbMC44XSAKICAgICAgICAgICAgQ2hlY2tpbiwgY2hlY2tvdXQKIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAwLjggYWRkPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjAuOCBhZGQKICAgICAgICBieQogICAgICAgIG1pY2hpY21zCiAgICAgICAgOgogICAgICAgIFswLjhdIAogICAgICAgICAgICBSREYgYWRkZWQKIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAwLjggdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjAuOCB1cGRhdGUKICAgICAgICBieQogICAgICAgIGVkaXRoY21zCiAgICAgICAgOgogICAgICAgIFswLjhdIAogICAgICAgICAgICBqYXZhIGRvY3MKIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAwLjggdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjAuOCB1cGRhdGUKICAgICAgICBieQogICAgICAgIG1pY2hpY21zCiAgICAgICAgOgogICAgICAgIFswLjhdIAogICAgICAgICAgICBhcnRpY2xlIHRvIHRlc3QgWG9wdXMyCiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMC44IGFkZDwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4wLjggYWRkCiAgICAgICAgYnkKICAgICAgICBtaWNoaWNtcwogICAgICAgIDoKICAgICAgICBbMC44XSAKICAgICAgICAgICAgSW50ZWdyYXRpb24gb2YgWG9wdXMyIHN0YXJ0ZWQKIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAwLjggdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjAuOCB1cGRhdGUKICAgICAgICBieQogICAgICAgIG1pY2hpY21zCiAgICAgICAgOgogICAgICAgIFswLjhdIAogICAgICAgICAgICB6aXAgZm9yIHNuYXBzaG90IGFkZGVkCiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMC44IHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4wLjggdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBtaWNoaWNtcwogICAgICAgIDoKICAgICAgICBbMC44XSAKICAgICAgICAgICAgcGFnZS54c2wgcmVwbGFjZWQgYnkgcGFnZV93eW9uYS54c2wKIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAwLjggYWRkPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjAuOCBhZGQKICAgICAgICBieQogICAgICAgIG1pY2hpY21zCiAgICAgICAgOgogICAgICAgIFswLjhdIAogICAgICAgICAgICBhZGRlZCBzb21lIG1vcmUgZW1wdHkgZmlsZXMKIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAwLjggcmVtb3ZlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjAuOCByZW1vdmUKICAgICAgICBieQogICAgICAgIG1pY2hpY21zCiAgICAgICAgOgogICAgICAgIFswLjhdIAogICAgICAgICAgICBwYWdlIGFuZCBib2R5IG1vdmVkIHRvIHBhZ2Vfd3lvbmEgYW5kIGJvZHlfd3lvbmEKIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAwLjggYWRkPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjAuOCBhZGQKICAgICAgICBieQogICAgICAgIG1pY2hpY21zCiAgICAgICAgOgogICAgICAgIFswLjhdIAogICAgICAgICAgICBRNDIgTGF5b3V0IGFkZGVkCiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMC44IHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4wLjggdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBtaWNoaWNtcwogICAgICAgIDoKICAgICAgICBbMC44XSAKICAgICAgICAgICAgQnVnIGZpeGVkOiBRdWVyeVN0cmluZyB3aWxsIGFsc28gYmUgY29waWVkCiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMC44IHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4wLjggdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBtaWNoaWNtcwogICAgICAgIDoKICAgICAgICBbMC44XSAKICAgICAgICAgICAgcGFja2FnZXMgZm9yIGphdmFkb2MgYWRkZWQ6IGNoLmV0aHosIG9yZy53M2MKIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAwLjggYWRkPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjAuOCBhZGQKICAgICAgICBieQogICAgICAgIG1pY2hpY21zCiAgICAgICAgOgogICAgICAgIFswLjhdIAogICAgICAgICAgICBBdXRob3JpbmcgaW1wcm92ZWQKIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAwLjggdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjAuOCB1cGRhdGUKICAgICAgICBieQogICAgICAgIG1pY2hpY21zCiAgICAgICAgOgogICAgICAgIFswLjhdIAogICAgICAgICAgICBDTVNJbmZvIGFkZGVkCiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMC44IHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4wLjggdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBlZGl0aGNtcwogICAgICAgIDoKICAgICAgICBbMC44XSAKICAgICAgICAgICAgQ2hlY2sgb3V0IG9mIGFuIGFydGljbGUKIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAwLjggYWRkPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjAuOCBhZGQKICAgICAgICBieQogICAgICAgIG1pY2hpY21zCiAgICAgICAgOgogICAgICAgIFswLjhdIAogICAgICAgICAgICBUZW50YXRpdmUgUHJvZ3JhbSBhZGRlZAogRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDAuOCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MC44IHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgbWljaGljbXMKICAgICAgICA6CiAgICAgICAgWzAuOF0gCiAgICAgICAgICAgIFRlbnRhdGl2ZSBwcm9ncmFtIGFkZGVkCiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMC44IHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4wLjggdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBtaWNoaWNtcwogICAgICAgIDoKICAgICAgICBbMC44XSAKICAgICAgICAgICAgUmV2aXNpb24gQ29udHJvbGxlciBpbmNvcnBvcmF0ZWQgaW50byBVbmlwdWJsaWMKIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAwLjggdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjAuOCB1cGRhdGUKICAgICAgICBieQogICAgICAgIGVnbGl3eW9uYQogICAgICAgIDoKICAgICAgICBbMC44XSAKICAgICAgICAgICAgQ2hhbmdlZCB0aGUgaW5mb3JtYXRpb24gb24gaG93IHRvIGRvd25sb2FkLiBVc2VkIGN2cy53eW9uYS5vcmcgaW5zdGVhZApvZiBpcCBudW1iZXJzLgogRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDAuOCBhZGQ8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MC44IGFkZAogICAgICAgIGJ5CiAgICAgICAgbWljaGljbXMKICAgICAgICA6CiAgICAgICAgWzAuOF0gCiAgICAgICAgICAgIFJldmlzaW9uIENvbnRyb2xsZXIgYWN0aW9uIGFkZGVkCiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMC44IHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4wLjggdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBtaWNoaWNtcwogICAgICAgIDoKICAgICAgICBbMC44XSAKICAgICAgICAgICAgUGFnZXMgdG8gc2NoZWR1bGUKIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAwLjggdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjAuOCB1cGRhdGUKICAgICAgICBieQogICAgICAgIGVkaXRoY21zCiAgICAgICAgOgogICAgICAgIFswLjhdIAogICAgICAgICAgICBDaGFuZ2UgbG9nIG1lc3NhZ2VzCiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMC44IHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4wLjggdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBlZGl0aGNtcwogICAgICAgIDoKICAgICAgICBbMC44XSAKICAgICAgICAgICAgQ2hhbmdlIHRoZSBiYWNrdXAgZmlsZSBuYW1lCiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMC44IHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4wLjggdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBlZGl0aGNtcwogICAgICAgIDoKICAgICAgICBbMC44XSAKICAgICAgICAgICAgTWVudXMgZm9yIHRoZSBhcnRpY2xlIGluIGF1dGhvcmluZwogRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDAuOCBhZGQ8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MC44IGFkZAogICAgICAgIGJ5CiAgICAgICAgbWljaGljbXMKICAgICAgICA6CiAgICAgICAgWzAuOF0gCiAgICAgICAgICAgIEJpdGZsdXggRWRpdG9yIGludGVncmF0aW9uCiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMC44IHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4wLjggdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBtaWNoaWNtcwogICAgICAgIDoKICAgICAgICBbMC44XSAKICAgICAgICAgICAgU3RhcnRlZCB0byBjb25uZWN0IEJpdGZsdXggRWRpdG9yCiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMC44IGFkZDwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4wLjggYWRkCiAgICAgICAgYnkKICAgICAgICBtaWNoaWNtcwogICAgICAgIDoKICAgICAgICBbMC44XSAKICAgICAgICAgICAgUmV2aXNpb24gQ29udHJvbGxlciBhZGRlZAogRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDAuOCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MC44IHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgbWljaGljbXMKICAgICAgICA6CiAgICAgICAgWzAuOF0gCiAgICAgICAgICAgIGNvbW1lbnRzIGFyb3VuZCBGQVRBTAogRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDAuOCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MC44IHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgbWljaGljbXMKICAgICAgICA6CiAgICAgICAgWzAuOF0gCiAgICAgICAgICAgIE1lbnVzIG1vZGlmaWVkCiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMC44IHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4wLjggdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBtaWNoaWNtcwogICAgICAgIDoKICAgICAgICBbMC44XSAKICAgICAgICAgICAgQXJ0aWNsZSBhdXRob3JpemFibGUKIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAwLjggYWRkPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjAuOCBhZGQKICAgICAgICBieQogICAgICAgIG1pY2hpY21zCiAgICAgICAgOgogICAgICAgIFswLjhdIAogICAgICAgICAgICBTZWN0aW9uIGF1dGhvcml6YWJsZQogRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDAuOCByZW1vdmU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MC44IHJlbW92ZQogICAgICAgIGJ5CiAgICAgICAgbWljaGljbXMKICAgICAgICA6CiAgICAgICAgWzAuOF0gCiAgICAgICAgICAgIE1vdmVkIG9uZSBkaXJlY3RvcnkgaGlnaGVyCiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMC44IHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4wLjggdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBtaWNoaWNtcwogICAgICAgIDoKICAgICAgICBbMC44XSAKICAgICAgICAgICAgRW1haWwgZXh0ZW5kZWQgYnkgc3ViamVjdCBhbmQgYm9keQogRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDAuOCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MC44IHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgbWljaGljbXMKICAgICAgICA6CiAgICAgICAgWzAuOF0gCiAgICAgICAgICAgIEF1dGhvcmluZyBhZGRlZCB0byB1bmlwdWJsaWMKIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAwLjggdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjAuOCB1cGRhdGUKICAgICAgICBieQogICAgICAgIG1pY2hpY21zCiAgICAgICAgOgogICAgICAgIFswLjhdIAogICAgICAgICAgICBtaWNoYWVsIHJlcGxhY2VkIGJ5IGVtYWlsCiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMC44IGFkZDwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4wLjggYWRkCiAgICAgICAgYnkKICAgICAgICBtaWNoaWNtcwogICAgICAgIDoKICAgICAgICBbMC44XSAKICAgICAgICAgICAgU3BlYWtlcnMgYWRkZWQKIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAwLjggdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjAuOCB1cGRhdGUKICAgICAgICBieQogICAgICAgIG1pY2hpY21zCiAgICAgICAgOgogICAgICAgIFswLjhdIAogICAgICAgICAgICBEb2N1bWVudGF0aW9uIHdpdGggeGRvYyBzdGFydGVkCiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMC44IHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4wLjggdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBtaWNoaWNtcwogICAgICAgIDoKICAgICAgICBbMC44XSAKICAgICAgICAgICAgUHVibGlzaGVyIHdvcmsgaW4gcHJvZ3Jlc3MKIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAwLjggdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjAuOCB1cGRhdGUKICAgICAgICBieQogICAgICAgIG1pY2hpY21zCiAgICAgICAgOgogICAgICAgIFswLjhdIAogICAgICAgICAgICBSZXBsaWNhdGlvbiBRdWV1ZSBzdGFydGVkIHRvIGltcGxlbWVudAogRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDAuOCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MC44IHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgbWljaGljbXMKICAgICAgICA6CiAgICAgICAgWzAuOF0gCiAgICAgICAgICAgIHJlbW92ZWQgTGFycnkgTGVzc2lnCiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMC44IHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4wLjggdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBtaWNoaWNtcwogICAgICAgIDoKICAgICAgICBbMC44XSAKICAgICAgICAgICAgQ29uc29sZSBBcHBlbmRlciBhY3RpdmF0ZWQKIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAwLjggdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjAuOCB1cGRhdGUKICAgICAgICBieQogICAgICAgIG1pY2hpY21zCiAgICAgICAgOgogICAgICAgIFswLjhdIAogICAgICAgICAgICBQYXVsIGFkZGVkCiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMC44IHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4wLjggdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBtaWNoaWNtcwogICAgICAgIDoKICAgICAgICBbMC44XSAKICAgICAgICAgICAgQnVnIGZpeGVkIHdpdGhpbiBOZXdBcnRpY2xlQ3JlYXRvcgogRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDAuOCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MC44IHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgbWljaGljbXMKICAgICAgICA6CiAgICAgICAgWzAuOF0gCiAgICAgICAgICAgIFNvbWUgWFNMVHMgaW1wcm92ZWQKIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAwLjggYWRkPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjAuOCBhZGQKICAgICAgICBieQogICAgICAgIG1pY2hpY21zCiAgICAgICAgOgogICAgICAgIFswLjhdIAogICAgICAgICAgICBjdXN0b21pemVkIHNjcmVlbgogRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDAuOCBhZGQ8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MC44IGFkZAogICAgICAgIGJ5CiAgICAgICAgbWljaGljbXMKICAgICAgICA6CiAgICAgICAgWzAuOF0gCiAgICAgICAgICAgIE5ldyBBcnRpY2xlIENyZWF0b3IgZm9yIEZvcnVtCiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMC44IHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4wLjggdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBtaWNoaWNtcwogICAgICAgIDoKICAgICAgICBbMC44XSAKICAgICAgICAgICAgZXJyb3IgcmVwbGFjZWQgYnkgZGVidWcKIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAwLjggdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjAuOCB1cGRhdGUKICAgICAgICBieQogICAgICAgIG1pY2hpY21zCiAgICAgICAgOgogICAgICAgIFswLjhdIAogICAgICAgICAgICBOZXcgQXJ0aWNsZSBDb250ZW50IENyZWF0b3IKIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAwLjggYWRkPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjAuOCBhZGQKICAgICAgICBieQogICAgICAgIG1pY2hpY21zCiAgICAgICAgOgogICAgICAgIFswLjhdIAogICAgICAgICAgICBkaXJlY3RvcmllcyBtdXN0IGV4aXN0CiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMC44IHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4wLjggdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBtaWNoaWNtcwogICAgICAgIDoKICAgICAgICBbMC44XSAKICAgICAgICAgICAgRGlzY3Vzc2lvbiBGb3J1bSBhZGRlZAogRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDAuOCBhZGQ8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MC44IGFkZAogICAgICAgIGJ5CiAgICAgICAgbWljaGljbXMKICAgICAgICA6CiAgICAgICAgWzAuOF0gCiAgICAgICAgICAgIGRpc2N1c3Npb24gZm9ydW0gcHVibGljYXRpb24gY3JlYXRlZAogRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDAuOCBhZGQ8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MC44IGFkZAogICAgICAgIGJ5CiAgICAgICAgbWljaGljbXMKICAgICAgICA6CiAgICAgICAgWzAuOF0gCiAgICAgICAgICAgIE5vdCBwdWJsaXNoZWQgeWV0IEV4Y2VwdGlvbiBjcmVhdGVkCiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMC44IHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4wLjggdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBtaWNoaWNtcwogICAgICAgIDoKICAgICAgICBbMC44XSAKICAgICAgICAgICAgYmVhdXR5IHN0dWZmCiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMC44IHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4wLjggdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBtaWNoaWNtcwogICAgICAgIDoKICAgICAgICBbMC44XSAKICAgICAgICAgICAgdXNhZ2UgYWRkZWQKIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAwLjggdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjAuOCB1cGRhdGUKICAgICAgICBieQogICAgICAgIG1pY2hpY21zCiAgICAgICAgOgogICAgICAgIFswLjhdIAogICAgICAgICAgICBjb3RleHRfcHVibGljYXRpb24gZml4ZWQKIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAwLjggdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjAuOCB1cGRhdGUKICAgICAgICBieQogICAgICAgIG1pY2hpY21zCiAgICAgICAgOgogICAgICAgIFswLjhdIAogICAgICAgICAgICBEaXNjdXNzaW9uIEZvcnVtIGFkZGVkCiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMC44IHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4wLjggdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBtaWNoaWNtcwogICAgICAgIDoKICAgICAgICBbMC44XSAKICAgICAgICAgICAgc3ZnMnBuZyBhZGRlZCBhbmQgcmVtb3ZlZAogRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDAuOCBhZGQ8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MC44IGFkZAogICAgICAgIGJ5CiAgICAgICAgbWljaGljbXMKICAgICAgICA6CiAgICAgICAgWzAuOF0gCiAgICAgICAgICAgIFhJbmNsdWRlL1hMaW5rIFByb2Nlc3NvciBtaWdyYXRlZAogRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDAuOCBhZGQ8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MC44IGFkZAogICAgICAgIGJ5CiAgICAgICAgbWljaGljbXMKICAgICAgICA6CiAgICAgICAgWzAuOF0gCiAgICAgICAgICAgIFhJbmNsdWRlL1hMaW5rIFByb2Nlc3NvciBtaWdyYXRlZAogRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDAuOCBhZGQ8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MC44IGFkZAogICAgICAgIGJ5CiAgICAgICAgbWFyZ3JpdGNtcwogICAgICAgIDoKICAgICAgICBbMC44XSAKICAgICAgICAgICAgIERvY3VtYW50YXRpb24KIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAwLjggdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjAuOCB1cGRhdGUKICAgICAgICBieQogICAgICAgIG1hcmdyaXRjbXMKICAgICAgICA6CiAgICAgICAgWzAuOF0gCiAgICAgICAgICAgIERvY3VtZW50YXRpb24KIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAwLjggYWRkPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjAuOCBhZGQKICAgICAgICBieQogICAgICAgIG1hcmdyaXRjbXMKICAgICAgICA6CiAgICAgICAgWzAuOF0gCiAgICAgICAgICAgIE1vZHVsYXJpc2F0aW9uCiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMC44IHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4wLjggdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBtYXJncml0Y21zCiAgICAgICAgOgogICAgICAgIFswLjhdIAogICAgICAgICAgICBncmVlbiBMaW5lIGFmdGVyIGZpcnN0IHR3byBoZWFkbGluZXMKIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAwLjggdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjAuOCB1cGRhdGUKICAgICAgICBieQogICAgICAgIG1hcmdyaXRjbXMKICAgICAgICA6CiAgICAgICAgWzAuOF0gCiAgICAgICAgICAgIGNvc21ldGljIGFuZCBNb2R1bGFyaXNhdGlvbgogRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDAuOCBhZGQ8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MC44IGFkZAogICAgICAgIGJ5CiAgICAgICAgbWljaGljbXMKICAgICAgICA6CiAgICAgICAgWzAuOF0gCiAgICAgICAgICAgIEdlbmVyaWMgdHlwZSBpcyBlZGl0YWJsZQogRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDAuOCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MC44IHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgbWFyZ3JpdGNtcwogICAgICAgIDoKICAgICAgICBbMC44XSAKICAgICAgICAgICAgd29yayBpbiBwcm9ncmVzcwogRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDAuOCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MC44IHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgbWFyZ3JpdGNtcwogICAgICAgIDoKICAgICAgICBbMC44XSAKICAgICAgICAgICAgYWRqdXN0ZWQKIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAwLjggdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjAuOCB1cGRhdGUKICAgICAgICBieQogICAgICAgIG1hcmdyaXRjbXMKICAgICAgICA6CiAgICAgICAgWzAuOF0gCiAgICAgICAgICAgIEFydGljbGUgZG9uZSB3aXRoIHhzcAogRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDAuOCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MC44IHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgZWdsaXd5b25hCiAgICAgICAgOgogICAgICAgIFswLjhdIAogICAgICAgICAgICBGaXhlZCBhIHNtYWxsIGdyYW1tYXRpY2FsIGVycm9yLgogRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDAuOCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MC44IHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgbWljaGljbXMKICAgICAgICA6CiAgICAgICAgWzAuOF0gCiAgICAgICAgICAgIFNlY3Rpb24gbW9kaWZpZWQKIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAwLjggdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjAuOCB1cGRhdGUKICAgICAgICBieQogICAgICAgIG1pY2hpY21zCiAgICAgICAgOgogICAgICAgIFswLjhdIAogICAgICAgICAgICBTaXRlbWFwIG1vZGlmaWVkCiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMC44IHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4wLjggdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBlZGl0aGNtcwogICAgICAgIDoKICAgICAgICBbMC44XSAKICAgICAgICAgICAgTG9naWNhbCB0cmFuc2Zvcm1hdGlvbiBmb3IgdGhlIG5hdmlnYXRpb24gb2YgdGhlIHNlY3Rpb25zCiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMC44IHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4wLjggdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBlZGl0aGNtcwogICAgICAgIDoKICAgICAgICBbMC44XSAKICAgICAgICAgICAgQWxsIGNoYW5uZWxzIG11c3QgYXBwZWFyIGluIHRoZSBuYXZpZ2F0aW9uIG9mIHRoZSBzZWN0aW9uCiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMC44IHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4wLjggdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBlZGl0aGNtcwogICAgICAgIDoKICAgICAgICBbMC44XSAKICAgICAgICAgICAgVGhlIGJ1dHRvbiBjYW4gYmUgaGlnaGxpZ2h0ZWQKIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAwLjggdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjAuOCB1cGRhdGUKICAgICAgICBieQogICAgICAgIGVkaXRoY21zCiAgICAgICAgOgogICAgICAgIFswLjhdIAogICAgICAgICAgICBJbnRyb2R1Y3Rpb24gb2YgYSBhdHRpcmJ1dGUgaGlnaGxpZ2h0ZWQKIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAwLjggYWRkPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjAuOCBhZGQKICAgICAgICBieQogICAgICAgIGVkaXRoY21zCiAgICAgICAgOgogICAgICAgIFswLjhdIAogICAgICAgICAgICBMb2dpYyBzdHlsZXNoZWV0cyBmb3IgdGhlIG5hdmlnYXRpb24gaW4gdGhlIFNlY3Rpb24uIEhpZ2hsaWdodGVkIEJ1dHRvbnMKIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAwLjggYWRkPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjAuOCBhZGQKICAgICAgICBieQogICAgICAgIGVkaXRoY21zCiAgICAgICAgOgogICAgICAgIFswLjhdIAogICAgICAgICAgICBOZXcgbmFtZSBmb3IgdGhlIGhpZ2hsaWdodGVkIGdpZnMgb2YgdGhlIG5hdmlnYXRpb24KIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAwLjggdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjAuOCB1cGRhdGUKICAgICAgICBieQogICAgICAgIG1pY2hpY21zCiAgICAgICAgOgogICAgICAgIFswLjhdIAogICAgICAgICAgICBQdWJsaXNoIHRvIEhvbWUgb2YgT1NDT00gYWRkZWQKIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAwLjggdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjAuOCB1cGRhdGUKICAgICAgICBieQogICAgICAgIGVkaXRoY21zCiAgICAgICAgOgogICAgICAgIFswLjhdIAogICAgICAgICAgICBDaGFuZ2VzIGJlY2F1c2Ugb2YgdGhlIG5hdmlnYXRpb24KIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAwLjggYWRkPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjAuOCBhZGQKICAgICAgICBieQogICAgICAgIG1pY2hpY21zCiAgICAgICAgOgogICAgICAgIFswLjhdIAogICAgICAgICAgICBYb3B1cyBhZGRlZCB0byBPU0NPTQogRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDAuOCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MC44IHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgbWFyZ3JpdGNtcwogICAgICAgIDoKICAgICAgICBbMC44XSAKICAgICAgICAgICAgTW9kdWxhcmlzYXRpb24KIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAwLjggdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjAuOCB1cGRhdGUKICAgICAgICBieQogICAgICAgIG1hcmdyaXRjbXMKICAgICAgICA6CiAgICAgICAgWzAuOF0gCiAgICAgICAgICAgIEZyb250IE1vZHVsYXJpc2F0aW9uCiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMC44IHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4wLjggdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBtaWNoaWNtcwogICAgICAgIDoKICAgICAgICBbMC44XSAKICAgICAgICAgICAgTGluayB0byBkZXNpZ24gdGVtcGxhdGVzIGFkZGVkCiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMC44IHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4wLjggdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBtYXJncml0Y21zCiAgICAgICAgOgogICAgICAgIFswLjhdIAogICAgICAgICAgICBGcm9udHBhZ2UgYWp1c3RlZAogRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDAuOCBhZGQ8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MC44IGFkZAogICAgICAgIGJ5CiAgICAgICAgbWFyZ3JpdGNtcwogICAgICAgIDoKICAgICAgICBbMC44XSAKICAgICAgICAgICAgbmV3IGltYWdlcwogRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDAuOCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MC44IHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgZWRpdGhjbXMKICAgICAgICA6CiAgICAgICAgWzAuOF0gCiAgICAgICAgICAgIE5hdmlnYXRpb24gZm9yIHRoZSBvdmVydmlldwogRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDAuOCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MC44IHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgZWRpdGhjbXMKICAgICAgICA6CiAgICAgICAgWzAuOF0gCiAgICAgICAgICAgIGdlbmVyYWxpemF0aW9uCiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMC44IHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4wLjggdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBlZGl0aGNtcwogICAgICAgIDoKICAgICAgICBbMC44XSAKICAgICAgICAgICAgSWQgZ2UmIzY1NTMzO25kZXJ0IHVtIExpbmsgYXVmIHJpY2h0aWdlIFNlaXRlIHNldHplbgogRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDAuOCBhZGQ8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MC44IGFkZAogICAgICAgIGJ5CiAgICAgICAgZWRpdGhjbXMKICAgICAgICA6CiAgICAgICAgWzAuOF0gCiAgICAgICAgICAgIEJpbGRlciB3dXJkZW4gdW1iZW5vbm5lbgogRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDAuOCBhZGQ8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MC44IGFkZAogICAgICAgIGJ5CiAgICAgICAgbWljaGljbXMKICAgICAgICA6CiAgICAgICAgWzAuOF0gCiAgICAgICAgICAgIG1lbnUgbGl2ZSBhcmVhCiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMC44IHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4wLjggdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBtaWNoaWNtcwogICAgICAgIDoKICAgICAgICBbMC44XSAKICAgICAgICAgICAgTGlua3MgdG8gRG9jdW1lbnRhdGlvbiBmaXhlZAogRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDAuOCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MC44IHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgbWljaGljbXMKICAgICAgICA6CiAgICAgICAgWzAuOF0gCiAgICAgICAgICAgIFhNTCBXZWIgR1VJIGFuZCBTcXVpc2hkb3QgbGluayBhZGRlZAogRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDAuOCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MC44IHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgbWljaGljbXMKICAgICAgICA6CiAgICAgICAgWzAuOF0gCiAgICAgICAgICAgIExpdmUgbGluayBmaXhlZAogRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDAuOCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MC44IHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgbWFyZ3JpdGNtcwogICAgICAgIDoKICAgICAgICBbMC44XSAKICAgICAgICAgICAgTGluayBmb3IgTmV3c2xldHRlciBhZGRlZAogRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDAuOCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MC44IHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgbWFyZ3JpdGNtcwogICAgICAgIDoKICAgICAgICBbMC44XSAKICAgICAgICAgICAgYmFja2dyb3VuZCBjb2xvciB3aGl0ZQogRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDAuOCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MC44IHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgbWFyZ3JpdGNtcwogICAgICAgIDoKICAgICAgICBbMC44XSAKICAgICAgICAgICAgZmlsZXMgYWRqdXN0ZWQgdG8gbmV3IHhtbCBhbmQgeHNsdCBmaWxlcwogRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDAuOCBhZGQ8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MC44IGFkZAogICAgICAgIGJ5CiAgICAgICAgbWFyZ3JpdGNtcwogICAgICAgIDoKICAgICAgICBbMC44XSAKICAgICAgICAgICAgbmV3IHhzbCBmaWxlcwogRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDAuOCBhZGQ8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MC44IGFkZAogICAgICAgIGJ5CiAgICAgICAgbWFyZ3JpdGNtcwogICAgICAgIDoKICAgICAgICBbMC44XSAKICAgICAgICAgICAgcmVuYW1lZCBmb3IgY29uc2lzdGVuY2UKIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAwLjggYWRkPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjAuOCBhZGQKICAgICAgICBieQogICAgICAgIG1hcmdyaXRjbXMKICAgICAgICA6CiAgICAgICAgWzAuOF0gCiAgICAgICAgICAgIG5ldyB4bWwgZmlsZXMKIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAwLjggdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjAuOCB1cGRhdGUKICAgICAgICBieQogICAgICAgIG1pY2hpY21zCiAgICAgICAgOgogICAgICAgIFswLjhdIAogICAgICAgICAgICBzZWxlY3Qgc2VjdGlvbiBuYW1lCiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMC44IHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4wLjggdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBtYXJncml0Y21zCiAgICAgICAgOgogICAgICAgIFswLjhdIAogICAgICAgICAgICBkb3NzaWVyIGFkZGVkIHRvIGZyb250cGFnZQogRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDAuOCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MC44IHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgbWljaGljbXMKICAgICAgICA6CiAgICAgICAgWzAuOF0gCiAgICAgICAgICAgIFJ1YnJpayBOYXZpZ2F0aW9uCiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMC44IHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4wLjggdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBtaWNoaWNtcwogICAgICAgIDoKICAgICAgICBbMC44XSAKICAgICAgICAgICAgTmF2aWdhdGlvbiBhZGRlZAogRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDAuOCByZW1vdmU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MC44IHJlbW92ZQogICAgICAgIGJ5CiAgICAgICAgbWFyZ3JpdGNtcwogICAgICAgIDoKICAgICAgICBbMC44XSAKICAgICAgICAgICAgbm90IHVzZWQKIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAwLjggdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjAuOCB1cGRhdGUKICAgICAgICBieQogICAgICAgIG1hcmdyaXRjbXMKICAgICAgICA6CiAgICAgICAgWzAuOF0gCiAgICAgICAgICAgIHdvcmsgaW4gcHJvZ3JlcwogRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDAuOCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MC44IHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgbWFyZ3JpdGNtcwogICAgICAgIDoKICAgICAgICBbMC44XSAKICAgICAgICAgICAgTWFpbiBOYXZpZ2F0aW9uIG9uIEZyb250cGFnZSBkb25lCiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMC44IGFkZDwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4wLjggYWRkCiAgICAgICAgYnkKICAgICAgICBtYXJncml0Y21zCiAgICAgICAgOgogICAgICAgIFswLjhdIAogICAgICAgICAgICByZW5hbWluZwogRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDAuOCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MC44IHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgbWljaGljbXMKICAgICAgICA6CiAgICAgICAgWzAuOF0gCiAgICAgICAgICAgIGxvZ2luIGFuZCBsb2dvdXQKIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAwLjggYWRkPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjAuOCBhZGQKICAgICAgICBieQogICAgICAgIG1pY2hpY21zCiAgICAgICAgOgogICAgICAgIFswLjhdIAogICAgICAgICAgICBBY2Nlc3MgQ29udHJvbGxlciBCdWcKIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAwLjggdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjAuOCB1cGRhdGUKICAgICAgICBieQogICAgICAgIG1pY2hpY21zCiAgICAgICAgOgogICAgICAgIFswLjhdIAogICAgICAgICAgICBBY2Nlc3MgQ29udHJvbGxlciBCdWdzcmMvamF2YS9vcmcvd3lvbmEvY21zL2NvY29vbi9hY3RpbmcvUE1MQXV0aG9yaXplckFjdGlvbi5qYXZhCiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMC44IHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4wLjggdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBtaWNoaWNtcwogICAgICAgIDoKICAgICAgICBbMC44XSAKICAgICAgICAgICAgbmV1IHJlbW92ZWQKIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAwLjggdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjAuOCB1cGRhdGUKICAgICAgICBieQogICAgICAgIG1hcmdyaXRjbXMKICAgICAgICA6CiAgICAgICAgWzAuOF0gCiAgICAgICAgICAgIG1vZHVsYXJpc2F0aW9uCiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMC44IGFkZDwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4wLjggYWRkCiAgICAgICAgYnkKICAgICAgICBtYXJncml0Y21zCiAgICAgICAgOgogICAgICAgIFswLjhdIAogICAgICAgICAgICBuZXcgZmlsZXMKIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAwLjggYWRkPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjAuOCBhZGQKICAgICAgICBieQogICAgICAgIG1pY2hpY21zCiAgICAgICAgOgogICAgICAgIFswLjhdIAogICAgICAgICAgICBHbG9zc2FyeSwgT3ZlcnZpZXcsIFNhbiBGcmFuY2lzY28KIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAwLjggYWRkPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjAuOCBhZGQKICAgICAgICBieQogICAgICAgIG1pY2hpY21zCiAgICAgICAgOgogICAgICAgIFswLjhdIAogICAgICAgICAgICB4bWwgYW5kIHhodG1sCiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMC44IGFkZDwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4wLjggYWRkCiAgICAgICAgYnkKICAgICAgICBtaWNoaWNtcwogICAgICAgIDoKICAgICAgICBbMC44XSAKICAgICAgICAgICAgbmF2aWdhdGlvbiBhbmQgc2FuZnJhbmNpc2NvCiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMC44IHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4wLjggdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBtaWNoaWNtcwogICAgICAgIDoKICAgICAgICBbMC44XSAKICAgICAgICAgICAgY29jb29uLnhjb25mIG1vdmVkIGludG8gV0VCLUlORgogRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDAuOCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MC44IHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgbWljaGljbXMKICAgICAgICA6CiAgICAgICAgWzAuOF0gCiAgICAgICAgICAgIHRlbXBvcmFyeSBjb250ZXh0X3ByZWZpeCBzZXQKIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAwLjggdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjAuOCB1cGRhdGUKICAgICAgICBieQogICAgICAgIG1hcmdyaXRjbXMKICAgICAgICA6CiAgICAgICAgWzAuOF0gCiAgICAgICAgICAgIFhzbHQgTW9kdWxhcmlzYXRpb24KIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAwLjggdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjAuOCB1cGRhdGUKICAgICAgICBieQogICAgICAgIG1hcmdyaXRjbXMKICAgICAgICA6CiAgICAgICAgWzAuOF0gCiAgICAgICAgICAgIEZyb250cGFnZSB4bWwgYW5kIHhzbHQKIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAwLjggdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjAuOCB1cGRhdGUKICAgICAgICBieQogICAgICAgIG1pY2hpY21zCiAgICAgICAgOgogICAgICAgIFswLjhdIAogICAgICAgICAgICBvc2NvbSB1cGRhdGVkCiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMC44IGFkZDwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4wLjggYWRkCiAgICAgICAgYnkKICAgICAgICBtaWNoaWNtcwogICAgICAgIDoKICAgICAgICBbMC44XSAKICAgICAgICAgICAgR2VuZXJpYyBYSFRNTCBhbmQgQ2ZQCiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMC44IHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4wLjggdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBtaWNoaWNtcwogICAgICAgIDoKICAgICAgICBbMC44XSAKICAgICAgICAgICAgY29udGV4dCBwcmVmaXggZHluYW1pY2FsbHkKIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAwLjggYWRkPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjAuOCBhZGQKICAgICAgICBieQogICAgICAgIG1pY2hpY21zCiAgICAgICAgOgogICAgICAgIFswLjhdIAogICAgICAgICAgICBtZW51IGltYWdlcwogRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDAuOCBhZGQ8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MC44IGFkZAogICAgICAgIGJ5CiAgICAgICAgbWljaGljbXMKICAgICAgICA6CiAgICAgICAgWzAuOF0gCiAgICAgICAgICAgIG1lbnVzIGFkZGVkCiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMC44IGFkZDwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4wLjggYWRkCiAgICAgICAgYnkKICAgICAgICBtaWNoaWNtcwogICAgICAgIDoKICAgICAgICBbMC44XSAKICAgICAgICAgICAgR2xvc3NhcnkKIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAwLjggdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjAuOCB1cGRhdGUKICAgICAgICBieQogICAgICAgIG1pY2hpY21zCiAgICAgICAgOgogICAgICAgIFswLjhdIAogICAgICAgICAgICB3aGl0ZSBzcGFjZQogRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDAuOCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MC44IHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgbWljaGljbXMKICAgICAgICA6CiAgICAgICAgWzAuOF0gCiAgICAgICAgICAgIG1lbnUgaW1wcm92ZWQKIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAwLjggdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjAuOCB1cGRhdGUKICAgICAgICBieQogICAgICAgIG1pY2hpY21zCiAgICAgICAgOgogICAgICAgIFswLjhdIAogICAgICAgICAgICBnZW5lcmFsIHJvb3QueHNsCiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMC44IGFkZDwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4wLjggYWRkCiAgICAgICAgYnkKICAgICAgICBtYXJncml0Y21zCiAgICAgICAgOgogICAgICAgIFswLjhdIAogICAgICAgICAgICAgd29yayBpbiBwcm9ncmVzcwogRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDAuOCByZW1vdmU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MC44IHJlbW92ZQogICAgICAgIGJ5CiAgICAgICAgbWFyZ3JpdGNtcwogICAgICAgIDoKICAgICAgICBbMC44XSAKICAgICAgICAgICAgcmVuYW1lZCBGaWxlCiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMC44IHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4wLjggdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBtaWNoaWNtcwogICAgICAgIDoKICAgICAgICBbMC44XSAKICAgICAgICAgICAgQXV0aG9yaW5nIE9TQ09NOiB0ZW1wb3JhcnkKIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAwLjggYWRkPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjAuOCBhZGQKICAgICAgICBieQogICAgICAgIG1pY2hpY21zCiAgICAgICAgOgogICAgICAgIFswLjhdIAogICAgICAgICAgICBBdXRob3Jpbmcgc3RhcnRlZAogRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDAuOCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MC44IHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgbWFyZ3JpdGNtcwogICAgICAgIDoKICAgICAgICBbMC44XSAKICAgICAgICAgICAgd29yayBpbiBwcm9ncmVzcwogRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDAuOCBhZGQ8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MC44IGFkZAogICAgICAgIGJ5CiAgICAgICAgbWFyZ3JpdGNtcwogICAgICAgIDoKICAgICAgICBbMC44XSAKICAgICAgICAgICAgd29yayBpbiBwcm9ncmVzcwogRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDAuOCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MC44IHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgbWFyZ3JpdGNtcwogICAgICAgIDoKICAgICAgICBbMC44XSAKICAgICAgICAgICAgd29yayBpbiBwcm9ncmVzCiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMC44IGFkZDwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4wLjggYWRkCiAgICAgICAgYnkKICAgICAgICBtYXJncml0Y21zCiAgICAgICAgOgogICAgICAgIFswLjhdIAogICAgICAgICAgICBuZXcgZmlsZQogRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDAuOCBhZGQ8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MC44IGFkZAogICAgICAgIGJ5CiAgICAgICAgbWFyZ3JpdGNtcwogICAgICAgIDoKICAgICAgICBbMC44XSAKICAgICAgICAgICAgbmV3IGFydGljbGVzIGFkZGVkCiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMC44IHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4wLjggdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBtYXJncml0Y21zCiAgICAgICAgOgogICAgICAgIFswLjhdIAogICAgICAgICAgICB3b3JrIGluIHByb2dyZXNzCiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMC44IGFkZDwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4wLjggYWRkCiAgICAgICAgYnkKICAgICAgICBtYXJncml0Y21zCiAgICAgICAgOgogICAgICAgIFswLjhdIAogICAgICAgICAgICBuZXcgZmlsZSBBcmNoaXRlY3R1cmUgb2YgeG1sCiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMC44IHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4wLjggdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBtYXJncml0Y21zCiAgICAgICAgOgogICAgICAgIFswLjhdIAogICAgICAgICAgICB3b3JrIGluIHByb2dyZXNzCiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMC44IHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4wLjggdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBtaWNoaWNtcwogICAgICAgIDoKICAgICAgICBbMC44XSAKICAgICAgICAgICAgcHJpdmF0ZSBtYWlsaW5nIGxpc3RzIHJlbW92ZWQKIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAwLjggYWRkPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjAuOCBhZGQKICAgICAgICBieQogICAgICAgIG1pY2hpY21zCiAgICAgICAgOgogICAgICAgIFswLjhdIAogICAgICAgICAgICBtb3JlIGFydGljbGVzIGFuZCBzZWN0aW9uIHN0YXJ0ZWQKIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAwLjggdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjAuOCB1cGRhdGUKICAgICAgICBieQogICAgICAgIG1hcmdyaXRjbXMKICAgICAgICA6CiAgICAgICAgWzAuOF0gCiAgICAgICAgICAgIHdvcmsgaW4gcHJvZ3Jlc3MKIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAwLjggYWRkPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjAuOCBhZGQKICAgICAgICBieQogICAgICAgIG1pY2hpY21zCiAgICAgICAgOgogICAgICAgIFswLjhdIAogICAgICAgICAgICBtb3ZlZCBhIGZldyB0aGluZ3MKIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAwLjggdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjAuOCB1cGRhdGUKICAgICAgICBieQogICAgICAgIG1hcmdyaXRjbXMKICAgICAgICA6CiAgICAgICAgWzAuOF0gCiAgICAgICAgICAgIHdpcAogRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDAuOCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MC44IHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgbWFyZ3JpdGNtcwogICAgICAgIDoKICAgICAgICBbMC44XSAKICAgICAgICAgICAgd29yayBpbiBwcm9ncmVzcwogRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDAuOCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MC44IHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgbWljaGljbXMKICAgICAgICA6CiAgICAgICAgWzAuOF0gCiAgICAgICAgICAgIEVkaXRvciBPdmVydmlldyBhZGRlZAogRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDAuOCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MC44IHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgbWljaGljbXMKICAgICAgICA6CiAgICAgICAgWzAuOF0gCiAgICAgICAgICAgIEdyZWdvcgogRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDAuOCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MC44IHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgbWFyZ3JpdGNtcwogICAgICAgIDoKICAgICAgICBbMC44XSAKICAgICAgICAgICAgYWRqdXN0ZWQKIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAwLjggYWRkPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjAuOCBhZGQKICAgICAgICBieQogICAgICAgIG1pY2hpY21zCiAgICAgICAgOgogICAgICAgIFswLjhdIAogICAgICAgICAgICBtYWlsaW5nIGxpc3QgYW5kIGJvYXJkIHBhZ2UKIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAwLjggYWRkPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjAuOCBhZGQKICAgICAgICBieQogICAgICAgIG1pY2hpY21zCiAgICAgICAgOgogICAgICAgIFswLjhdIAogICAgICAgICAgICBCZXR0ZXIgWFNMVCBzdHJ1Y3R1cmUKIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAwLjggdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjAuOCB1cGRhdGUKICAgICAgICBieQogICAgICAgIG1pY2hpY21zCiAgICAgICAgOgogICAgICAgIFswLjhdIAogICAgICAgICAgICBCZXR0ZXIgWFNMVCBzdHJ1Y3R1cmUKIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAwLjggYWRkPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjAuOCBhZGQKICAgICAgICBieQogICAgICAgIG1pY2hpY21zCiAgICAgICAgOgogICAgICAgIFswLjhdIAogICAgICAgICAgICBNb3JlIE9TQ09NIHN0dWZmCiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMC44IHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4wLjggdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBtaWNoaWNtcwogICAgICAgIDoKICAgICAgICBbMC44XSAKICAgICAgICAgICAgcHJvYmxlbSB3aXRoIG5vdCB3ZWxsLWZvcm1lZCBzbGFzaGRvdCBYTUwKIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAwLjggdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjAuOCB1cGRhdGUKICAgICAgICBieQogICAgICAgIG1hcmdyaXRjbXMKICAgICAgICA6CiAgICAgICAgWzAuOF0gCiAgICAgICAgICAgIGFkanVzdGVkCiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMC44IHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4wLjggdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBtYXJncml0Y21zCiAgICAgICAgOgogICAgICAgIFswLjhdIAogICAgICAgICAgICBhZGp1c3RlZAogRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDAuOCBhZGQ8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MC44IGFkZAogICAgICAgIGJ5CiAgICAgICAgbWFyZ3JpdGNtcwogICAgICAgIDoKICAgICAgICBbMC44XSAKICAgICAgICAgICAgYWRkZWQKIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAwLjggdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjAuOCB1cGRhdGUKICAgICAgICBieQogICAgICAgIG1pY2hpY21zCiAgICAgICAgOgogICAgICAgIFswLjhdIAogICAgICAgICAgICBsb2dpc2hlZXQgYWRkZWQKIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAwLjggcmVtb3ZlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjAuOCByZW1vdmUKICAgICAgICBieQogICAgICAgIG1pY2hpY21zCiAgICAgICAgOgogICAgICAgIFswLjhdIAogICAgICAgICAgICBsb2draXQgcmVtb3ZlZCBmcm9tIFd5b25hCiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMC44IGFkZDwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4wLjggYWRkCiAgICAgICAgYnkKICAgICAgICBtaWNoaWNtcwogICAgICAgIDoKICAgICAgICBbMC44XSAKICAgICAgICAgICAgQ29jb29uIGxvZ2ljc2hlZXRzCiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMC44IGFkZDwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4wLjggYWRkCiAgICAgICAgYnkKICAgICAgICBtaWNoaWNtcwogICAgICAgIDoKICAgICAgICBbMC44XSAKICAgICAgICAgICAgaGVsbG8gd29ybGQgbG9naWNzaGVldAogRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDAuOCBhZGQ8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MC44IGFkZAogICAgICAgIGJ5CiAgICAgICAgbWljaGljbXMKICAgICAgICA6CiAgICAgICAgWzAuOF0gCiAgICAgICAgICAgIGNsb25lIHB1YmxpY2F0aW86IHNjcmlwdCBpcyBqdXN0IHRlbXBvcmFyeQogRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDAuOCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MC44IHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgbWljaGljbXMKICAgICAgICA6CiAgICAgICAgWzAuOF0gCiAgICAgICAgICAgIG15IGZpcnN0IGxvZ2ljc2hlZXRzc3JjL2phdmEvb3JnL3d5b25hL2Ntcy9jb2Nvb24vbG9naWNzaGVldHMvaGVsbG93b3JsZC54c2wKIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAwLjggYWRkPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjAuOCBhZGQKICAgICAgICBieQogICAgICAgIG1pY2hpY21zCiAgICAgICAgOgogICAgICAgIFswLjhdIAogICAgICAgICAgICBPU0NPTSBhZGRlZAogRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDAuOCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MC44IHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgbWljaGljbXMKICAgICAgICA6CiAgICAgICAgWzAuOF0gCiAgICAgICAgICAgIGxpdmUgYXJlYSBtb3ZlZAogRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDAuOCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MC44IHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgbWljaGljbXMKICAgICAgICA6CiAgICAgICAgWzAuOF0gCiAgICAgICAgICAgIGFydGljbGUgYWRkZWQKIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAwLjggdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjAuOCB1cGRhdGUKICAgICAgICBieQogICAgICAgIG1hcmdyaXRjbXMKICAgICAgICA6CiAgICAgICAgWzAuOF0gCiAgICAgICAgICAgIGFkanVzdGVkCiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMC44IHJlbW92ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4wLjggcmVtb3ZlCiAgICAgICAgYnkKICAgICAgICBtYXJncml0Y21zCiAgICAgICAgOgogICAgICAgIFswLjhdIAogICAgICAgICAgICBGaWxlIG1vdmVkIHRvIGRvY3VtZW50YXRpb24vLgogRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDAuOCBhZGQ8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MC44IGFkZAogICAgICAgIGJ5CiAgICAgICAgbWFyZ3JpdGNtcwogICAgICAgIDoKICAgICAgICBbMC44XSAKICAgICAgICAgICAgRG9rdW1lbnRhdGlvbgogRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDAuOCBhZGQ8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MC44IGFkZAogICAgICAgIGJ5CiAgICAgICAgbWljaGljbXMKICAgICAgICA6CiAgICAgICAgWzAuOF0gCiAgICAgICAgICAgIE15IGZpcnN0IGxvZ2ljc2hlZXQKIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAwLjggdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjAuOCB1cGRhdGUKICAgICAgICBieQogICAgICAgIG1hcmdyaXRjbXMKICAgICAgICA6CiAgICAgICAgWzAuOF0gCiAgICAgICAgICAgIHhzbHQgd3JpdHRlbiwgZXZlcnl0aGluZyBpbiBpdAogRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDAuOCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MC44IHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgbWFyZ3JpdGNtcwogICAgICAgIDoKICAgICAgICBbMC44XSAKICAgICAgICAgICAgc2l0ZW1hcCBhZGp1c3RlZAogRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDAuOCBhZGQ8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MC44IGFkZAogICAgICAgIGJ5CiAgICAgICAgbWFyZ3JpdGNtcwogICAgICAgIDoKICAgICAgICBbMC44XSAKICAgICAgICAgICAgTmV3IGZpbGVzCiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMC44IGFkZDwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4wLjggYWRkCiAgICAgICAgYnkKICAgICAgICBtYXJncml0Y21zCiAgICAgICAgOgogICAgICAgIFswLjhdIAogICAgICAgICAgICBuZXcgZmlsZXMKIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAwLjggYWRkPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjAuOCBhZGQKICAgICAgICBieQogICAgICAgIG1hcmdyaXRjbXMKICAgICAgICA6CiAgICAgICAgWzAuOF0gCiAgICAgICAgICAgIE5ldyBJbWFnZXMKIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAwLjggdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjAuOCB1cGRhdGUKICAgICAgICBieQogICAgICAgIG1pY2hpY21zCiAgICAgICAgOgogICAgICAgIFswLjhdIAogICAgICAgICAgICBPU0NPTSBhbmQgY29jb29uY2VudGVyIGFkZGVkCiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMC44IGFkZDwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4wLjggYWRkCiAgICAgICAgYnkKICAgICAgICBtaWNoaWNtcwogICAgICAgIDoKICAgICAgICBbMC44XSAKICAgICAgICAgICAgT1NDT00gYWRkZWQKIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAwLjggYWRkPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjAuOCBhZGQKICAgICAgICBieQogICAgICAgIG1pY2hpY21zCiAgICAgICAgOgogICAgICAgIFswLjhdIAogICAgICAgICAgICBBZGQgc3Vic2l0ZW1hcHMKIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAwLjggYWRkPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjAuOCBhZGQKICAgICAgICBieQogICAgICAgIG1pY2hpY21zCiAgICAgICAgOgogICAgICAgIFswLjhdIAogICAgICAgICAgICBEZWZhdWx0IENvY29vbiBzaXRlbWFwCiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMC44IHJlbW92ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4wLjggcmVtb3ZlCiAgICAgICAgYnkKICAgICAgICBtaWNoaWNtcwogICAgICAgIDoKICAgICAgICBbMC44XSAKICAgICAgICAgICAgcmVuYW1lZCB0byBjb2Nvb24ueG1hcAogRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDAuOCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MC44IHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgZ2lhY29tbwogICAgICAgIDoKICAgICAgICBbMC44XSAKICAgICAgICAgICAgdXBkYXRlZCBuZXcgY29jb29uIHZlcnNpb24KIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAwLjggdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjAuOCB1cGRhdGUKICAgICAgICBieQogICAgICAgIAogICAgICAgIDoKICAgICAgICBbMC44XSAKICAgICAgICAgICAgVGhpcyBjb21taXQgd2FzIG1hbnVmYWN0dXJlZCBieSBjdnMyc3ZuIHRvIGNyZWF0ZSB0YWcKJ2NvY29vbjJfMF8xX2RldicuIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAwLjggYWRkPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjAuOCBhZGQKICAgICAgICBieQogICAgICAgIG1pY2hpY21zCiAgICAgICAgOgogICAgICAgIFswLjhdIAogICAgICAgICAgICBKVGlkeSBjb21tYW5kIGxpbmUgY2xhc3MKIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAwLjggYWRkPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjAuOCBhZGQKICAgICAgICBieQogICAgICAgIG1hcmdyaXRjbXMKICAgICAgICA6CiAgICAgICAgWzAuOF0gCiAgICAgICAgICAgIE5ldyBJbWFnZXMKIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAwLjggYWRkPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjAuOCBhZGQKICAgICAgICBieQogICAgICAgIG1hcmdyaXRjbXMKICAgICAgICA6CiAgICAgICAgWzAuOF0gCiAgICAgICAgICAgIE5ldyBJbWFnZXMKIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAwLjggdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjAuOCB1cGRhdGUKICAgICAgICBieQogICAgICAgIG1pY2hpY21zCiAgICAgICAgOgogICAgICAgIFswLjhdIAogICAgICAgICAgICBGcm9udHBhZ2UgYXMgSFRNTAogRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDAuOCBhZGQ8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MC44IGFkZAogICAgICAgIGJ5CiAgICAgICAgbWFyZ3JpdGNtcwogICAgICAgIDoKICAgICAgICBbMC44XSAKICAgICAgICAgICAgTmV3IEltYWdlcwogRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDAuOCBhZGQ8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MC44IGFkZAogICAgICAgIGJ5CiAgICAgICAgbWljaGljbXMKICAgICAgICA6CiAgICAgICAgWzAuOF0gCiAgICAgICAgICAgIGNzcyBhZGRlZAogRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDAuOCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MC44IHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgbWljaGljbXMKICAgICAgICA6CiAgICAgICAgWzAuOF0gCiAgICAgICAgICAgIGluc3RhbGxhdGlvbiBpbnN0cnVjdGlvbiB1cGRhdGVkCiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMC44IGFkZDwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4wLjggYWRkCiAgICAgICAgYnkKICAgICAgICBtaWNoaWNtcwogICAgICAgIDoKICAgICAgICBbMC44XSAKICAgICAgICAgICAgVW5pcHVibGljIGFkZGVkCiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMC44IHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4wLjggdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBtaWNoaWNtcwogICAgICAgIDoKICAgICAgICBbMC44XSAKICAgICAgICAgICAgVW5pcHVibGljIGFkZGVkCiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMC44IHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4wLjggdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBtaWNoaWNtcwogICAgICAgIDoKICAgICAgICBbMC44XSAKICAgICAgICAgICAgUG9ydHMgYmV0dGVyIHNwZWNpZmllZAogRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDAuOCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MC44IHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgbWljaGljbXMKICAgICAgICA6CiAgICAgICAgWzAuOF0gCiAgICAgICAgICAgIFNsaWRlcyBpbnNlcnRlZAogRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDAuOCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MC44IHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgbWljaGljbXMKICAgICAgICA6CiAgICAgICAgWzAuOF0gCiAgICAgICAgICAgIENvbmZlcmVuY2UgU2xpZGVzCiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMC44IHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4wLjggdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBtaWNoaWNtcwogICAgICAgIDoKICAgICAgICBbMC44XSAKICAgICAgICAgICAgUGVyZm9ybWFuY2UgdGlwcyBhbmQgcG9ydHMgcmVjb25maWd1cmF0aW9uCiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMC44IGFkZDwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4wLjggYWRkCiAgICAgICAgYnkKICAgICAgICBtaWNoaWNtcwogICAgICAgIDoKICAgICAgICBbMC44XSAKICAgICAgICAgICAgRGVsZXRlIGRvY3VtZW50IGZyb20gdHJlZQogRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDAuOCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MC44IHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgbWVtbwogICAgICAgIDoKICAgICAgICBbMC44XSAKICAgICAgICAgICAgQ2hlY2sgZm9yIHdlbGwtZm9ybWVkbmVzcyBvZiBpbnB1dCBmaWVsZHMgKGh0bWwgZWRpdG9yKSBpbXBsZW1lbnRlZC4KU2VlIGFsc286IHRoZSBkZXZlbG9wZXIgZG9jdW1lbnRhdGlvbiBvbiB0aGUgSFRNTCBFZGl0b3IuCiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMC44IHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4wLjggdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBtaWNoaWNtcwogICAgICAgIDoKICAgICAgICBbMC44XSAKICAgICAgICAgICAgUGFyZW50IENoaWxkIENyZWF0b3IgRXhjZXB0aW9uIEhhbmRsaW5nIGltcHJvdmVkCiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMC44IHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4wLjggdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBtaWNoaWNtcwogICAgICAgIDoKICAgICAgICBbMC44XSAKICAgICAgICAgICAgWG9wdXMgaW50ZWdyYXRlZCBpbnRvIERlcGFydG1lbnQKIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAwLjggdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjAuOCB1cGRhdGUKICAgICAgICBieQogICAgICAgIG1lbW8KICAgICAgICA6CiAgICAgICAgWzAuOF0gCiAgICAgICAgICAgIFhvcHVzIGludGVncmF0aW9uIDkwJSBmaW5pc2hlZAogRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDAuOCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MC44IHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgbWljaGljbXMKICAgICAgICA6CiAgICAgICAgWzAuOF0gCiAgICAgICAgICAgIHhvcHVzIG5lYXJseSBmaW5pc2hlZAogRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDAuOCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MC44IHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgbWVtbwogICAgICAgIDoKICAgICAgICBbMC44XSAKICAgICAgICAgICAgWG9wdXMgaW50ZWdyYXRpb24gODAlIGZpbmlzaGVkCihub3RlOiB0aGUgODAtMjAgcnVsZSBoYXMgYmVlbiBpbnZhbGlkYXRlZCBmb3IgdGhlIHNjb3BlIG9mIHRoaXMgcHJvamVjdCkKIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAwLjggdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjAuOCB1cGRhdGUKICAgICAgICBieQogICAgICAgIG1lbW8KICAgICAgICA6CiAgICAgICAgWzAuOF0gCiAgICAgICAgICAgIHhvcHVzIHN0dWZmOiB3cml0aW5nIHRlbXBmaWxlIHRvOiB7dG9tY2F0ZGlyfS9iaW4veG9wdXN0bXAKIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAwLjggdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjAuOCB1cGRhdGUKICAgICAgICBieQogICAgICAgIG1lbW8KICAgICAgICA6CiAgICAgICAgWzAuOF0gCiAgICAgICAgICAgIHhvcHVzIHN0dWZmLCBub3Qgd29ya2luZyEKIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAwLjggdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjAuOCB1cGRhdGUKICAgICAgICBieQogICAgICAgIG1pY2hpY21zCiAgICAgICAgOgogICAgICAgIFswLjhdIAogICAgICAgICAgICBQYXJlbnQgQ2hpbGQgQ3JlYXRvciBmaW5pc2hlZAogRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDAuOCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MC44IHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgbWVtbwogICAgICAgIDoKICAgICAgICBbMC44XSAKICAgICAgICAgICAgcmVtb3ZlZCByZWZlcmVuY2UgdG8gcHJpdmF0ZSBmaWxlIChvb3BzISkKc2hvdWxkIGNvbXBpbGUgYW5kIHJ1biBub3cKIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAwLjggYWRkPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjAuOCBhZGQKICAgICAgICBieQogICAgICAgIG1lbW8KICAgICAgICA6CiAgICAgICAgWzAuOF0gCiAgICAgICAgICAgIGFkZGVkIGphdmF4LnNlcnZsZXQgcGFja2FnZSB0byBsaWIgZm9yIGNvbXBpbGluZyBwdXJwb3NlcwogRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDAuOCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MC44IHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgbWVtbwogICAgICAgIDoKICAgICAgICBbMC44XSAKICAgICAgICAgICAgeG9wdXMgaW50ZXJmYWNlIHdvcmtpbmcgNzUlCiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMC44IHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4wLjggdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBtaWNoaWNtcwogICAgICAgIDoKICAgICAgICBbMC44XSAKICAgICAgICAgICAgQ2hpbGQgVHlwZSBhZGRlZAogRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDAuOCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MC44IHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgZ2lhY29tbwogICAgICAgIDoKICAgICAgICBbMC44XSAKICAgICAgICAgICAgcmV2ZXJ0IGxhc3QgY2hhbmdlIGFzIGl0IGlzIG5vdCBuZWVkZWQKIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAwLjggdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjAuOCB1cGRhdGUKICAgICAgICBieQogICAgICAgIGdpYWNvbW8KICAgICAgICA6CiAgICAgICAgWzAuOF0gCiAgICAgICAgICAgIG1ha2UgaXQgY29tcGlsZSB3aXRoIHRoZSBQb3N0SW5wdXRTdHJlYW0KIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAwLjggYWRkPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjAuOCBhZGQKICAgICAgICBieQogICAgICAgIG1pY2hpY21zCiAgICAgICAgOgogICAgICAgIFswLjhdIAogICAgICAgICAgICBQYXJlbnQgQ2hpbGQgQ3JlYXRpb24gbmVhcmx5IGZpbmlzaGVkCiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMC44IHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4wLjggdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBtaWNoaWNtcwogICAgICAgIDoKICAgICAgICBbMC44XSAKICAgICAgICAgICAgQ29uY3JldGUgY3JlYXRvciBpbXBsZW1lbnRlZAogRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDAuOCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MC44IHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgbWljaGljbXMKICAgICAgICA6CiAgICAgICAgWzAuOF0gCiAgICAgICAgICAgIGJ1ZyBub3QgcmVhbGx5IGZpeGVkIGJ1dCB0aGUgY2xhc3MgY2FuIGJlIGNvbXBpbGVkCiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMC44IHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4wLjggdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBtZW1vCiAgICAgICAgOgogICAgICAgIFswLjhdIAogICAgICAgICAgICB4b3B1czogZ2V0dGluZyBjbG9zZXIsIGJ1dCBzdGlsbCBub3QgdGhlcmUKIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAwLjggdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjAuOCB1cGRhdGUKICAgICAgICBieQogICAgICAgIG1pY2hpY21zCiAgICAgICAgOgogICAgICAgIFswLjhdIAogICAgICAgICAgICBQYXJlbnQgY2hpbGQgbmVhcmx5IGZpbmlzaGVkCiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMC44IHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4wLjggdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBtZW1vCiAgICAgICAgOgogICAgICAgIFswLjhdIAogICAgICAgICAgICBhIGJpZyBzdGVwIGZvciBtZW1vLCBidXQgb25seSBhIHNtYWxsIHN0ZXAgZm9yIHRoZSB3eW9uYSBjbXMgOi0pCiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMC44IHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4wLjggdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBtaWNoaWNtcwogICAgICAgIDoKICAgICAgICBbMC44XSAKICAgICAgICAgICAgKioqIGVtcHR5IGxvZyBtZXNzYWdlICoqKgogRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDAuOCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MC44IHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgbWljaGljbXMKICAgICAgICA6CiAgICAgICAgWzAuOF0gCiAgICAgICAgICAgIEV4dGVuc2lvbiAueG1sIHJlbW92ZWQKIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAwLjggdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjAuOCB1cGRhdGUKICAgICAgICBieQogICAgICAgIG1pY2hpY21zCiAgICAgICAgOgogICAgICAgIFswLjhdIAogICAgICAgICAgICBIYXJkd2FyZSBSZXF1aXJlbWVudHMgYWRkZWQKIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAwLjggYWRkPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjAuOCBhZGQKICAgICAgICBieQogICAgICAgIG1lbW8KICAgICAgICA6CiAgICAgICAgWzAuOF0gCiAgICAgICAgICAgIHhvcHVzIGludGVncmF0aW9uOiBzb21lIHRpbnkgYmVnaW5uaW5ncywgc29tZSB0aWR5aW5nIHVwIHRoZSBkaXJlY3Rvcmllcywgc29tZSBleHBlcmltZW50aW5nIHdpdGggdGhlIHNpdGVtYXAKIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAwLjggYWRkPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjAuOCBhZGQKICAgICAgICBieQogICAgICAgIG1lbW8KICAgICAgICA6CiAgICAgICAgWzAuOF0gCiAgICAgICAgICAgIGFjdGlvbiBza2VsZXRvbiBmb3IgeG1sLWNoZWNraW5nICh3aWxsIGNvbnRpbnVlIHdvcmsgd2hlbiB4b3B1cyBpcyBkb25lKQogRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDAuOCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MC44IHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgdWlkNTIzCiAgICAgICAgOgogICAgICAgIFswLjhdIAogICAgICAgICAgICBjb3NtZXRpYwogRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDAuOCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MC44IHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgbWVtbwogICAgICAgIDoKICAgICAgICBbMC44XSAKICAgICAgICAgICAgc3RpbGwgbm90IGRvaW5nIGFueXRoaW5nIHVzZWZ1bGwsIGJ1dCBhdCBsZWFzdCBjb21waWxpbmchCiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMC44IHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4wLjggdXBkYXRlCiAgICAgICAgYnkKICAgICAgICB1aWQ1MjMKICAgICAgICA6CiAgICAgICAgWzAuOF0gCiAgICAgICAgICAgIGFkZGVkIGRvd25sb2FkIHNlY3Rpb24sIGluY2x1ZGluZyBhbm9ueW1vdXMgQ1ZTCiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMC44IGFkZDwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4wLjggYWRkCiAgICAgICAgYnkKICAgICAgICBtZW1vCiAgICAgICAgOgogICAgICAgIFswLjhdIAogICAgICAgICAgICBVdGlsaXR5IGZvciBwYXJzaW5nL2NoZWNraW5nIHhtbCBmaWxlcyAodXNlcyBKYXhwL1hlcmNlcykKIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAwLjggdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjAuOCB1cGRhdGUKICAgICAgICBieQogICAgICAgIG1pY2hpY21zCiAgICAgICAgOgogICAgICAgIFswLjhdIAogICAgICAgICAgICB0YWlsIGFuZCBncmVwCiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMC44IHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4wLjggdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBtZW1vCiAgICAgICAgOgogICAgICAgIFswLjhdIAogICAgICAgICAgICBSZXNldCB0YXJnZXQgYWRkZWQgZm9yIGVhc3kgZGVwbG95bWVudCBkdXJpbmcgZGV2ZWxvcG1lbnQKIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAwLjggdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjAuOCB1cGRhdGUKICAgICAgICBieQogICAgICAgIHVpZDUyMwogICAgICAgIDoKICAgICAgICBbMC44XSAKICAgICAgICAgICAgYWRkZWQgamF2YWRvYwpyZWZvcm1hdHRlZCBzb3VyY2UgY29kZQogRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDAuOCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MC44IHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgdWlkNTIzCiAgICAgICAgOgogICAgICAgIFswLjhdIAogICAgICAgICAgICB0aGUgZWRpdG9yIG5vdyBpcyBjb21wbGV0ZWx5IGltcGxlbWVudGVkIHdpdGggYWN0aW9ucyBhbmQgWFNMVAppLmUuIG5vIGZpbGUgYXJlIHN0b3JlZCB3aXRoIFhTTFQKIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAwLjggdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjAuOCB1cGRhdGUKICAgICAgICBieQogICAgICAgIG1pY2hpY21zCiAgICAgICAgOgogICAgICAgIFswLjhdIAogICAgICAgICAgICBkb2NzIGxpbmtlZAogRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDAuOCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MC44IHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgbWljaGljbXMKICAgICAgICA6CiAgICAgICAgWzAuOF0gCiAgICAgICAgICAgIENvcHlpbmcgYWxsIGRvY3MKIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAwLjggdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjAuOCB1cGRhdGUKICAgICAgICBieQogICAgICAgIG1pY2hpY21zCiAgICAgICAgOgogICAgICAgIFswLjhdIAogICAgICAgICAgICB4bWxoYWNrIGFkZGVkCiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMC44IGFkZDwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4wLjggYWRkCiAgICAgICAgYnkKICAgICAgICBtaWNoaWNtcwogICAgICAgIDoKICAgICAgICBbMC44XSAKICAgICAgICAgICAgRmlsZXN5c3RlbSBQdWJsaXNoZXIKIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAwLjggdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjAuOCB1cGRhdGUKICAgICAgICBieQogICAgICAgIG1pY2hpY21zCiAgICAgICAgOgogICAgICAgIFswLjhdIAogICAgICAgICAgICBEb2N1bWVudGF0aW9uIG1vdmVkCiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMC44IHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4wLjggdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBtaWNoaWNtcwogICAgICAgIDoKICAgICAgICBbMC44XSAKICAgICAgICAgICAgdGFyZ2V0IGphdmFkb2NzIGFkZGVkIHRvIHRhcmdldCB3ZWJhcHAKIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAwLjggdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjAuOCB1cGRhdGUKICAgICAgICBieQogICAgICAgIHVpZDUyMwogICAgICAgIDoKICAgICAgICBbMC44XSAKICAgICAgICAgICAgbm93IGJ1aWxkcyB1cG9uIHRoZSBzb3VyY2VyZXNvbHZlciBtZWNoYW5pc20KIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAwLjggdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjAuOCB1cGRhdGUKICAgICAgICBieQogICAgICAgIG1pY2hpY21zCiAgICAgICAgOgogICAgICAgIFswLjhdIAogICAgICAgICAgICBIYXJkY29kZWQgcGF0aCByZW1vdmVkCiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMC44IHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4wLjggdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBtaWNoaWNtcwogICAgICAgIDoKICAgICAgICBbMC44XSAKICAgICAgICAgICAgRXJyb3IgcmVwbGFjZWQgYnkgRGVidWcKIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAwLjggYWRkPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjAuOCBhZGQKICAgICAgICBieQogICAgICAgIG1pY2hpY21zCiAgICAgICAgOgogICAgICAgIFswLjhdIAogICAgICAgICAgICBQYXJlbnQgQ2hpbGQgQ3JlYXRvcgogRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDAuOCBhZGQ8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MC44IGFkZAogICAgICAgIGJ5CiAgICAgICAgbWljaGljbXMKICAgICAgICA6CiAgICAgICAgWzAuOF0gCiAgICAgICAgICAgIE5vIFBhc3N3b3JkIFdpemFyZAogRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDAuOCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MC44IHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgbWljaGljbXMKICAgICAgICA6CiAgICAgICAgWzAuOF0gCiAgICAgICAgICAgIGVkaXQtb24gUHJvCiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMC44IHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4wLjggdXBkYXRlCiAgICAgICAgYnkKICAgICAgICB0aW51d3lvbmFjbXMKICAgICAgICA6CiAgICAgICAgWzAuOF0gCiAgICAgICAgICAgIHB1cmdlZCBmcm9tIGdhcmJhZ2UKIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAwLjggdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjAuOCB1cGRhdGUKICAgICAgICBieQogICAgICAgIG1pY2hpY21zCiAgICAgICAgOgogICAgICAgIFswLjhdIAogICAgICAgICAgICBibGFibGEKIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAwLjggdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjAuOCB1cGRhdGUKICAgICAgICBieQogICAgICAgIG1pY2hpY21zCiAgICAgICAgOgogICAgICAgIFswLjhdIAogICAgICAgICAgICBQYXJlbnQgQ2hpbGQgTGluayBhZGRlZAogRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDAuOCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MC44IHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgbWljaGljbXMKICAgICAgICA6CiAgICAgICAgWzAuOF0gCiAgICAgICAgICAgIFJlbW92ZWQgRWRpdG9yIFRlc3RpbmcKIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAwLjggdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjAuOCB1cGRhdGUKICAgICAgICBieQogICAgICAgIG1pY2hpY21zCiAgICAgICAgOgogICAgICAgIFswLjhdIAogICAgICAgICAgICBBZ2dyZWdhdGlvbgogRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDAuOCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MC44IHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgbWljaGljbXMKICAgICAgICA6CiAgICAgICAgWzAuOF0gCiAgICAgICAgICAgIFJlbW92ZSBnYXJiYWdlIGZyb20gd29yawogRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDAuOCBhZGQ8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MC44IGFkZAogICAgICAgIGJ5CiAgICAgICAgdGludXd5b25hY21zCiAgICAgICAgOgogICAgICAgIFswLjhdIAogICAgICAgICAgICBzdHJpbmcgcmVwbGFjZW1lbnQgdXRpbGl0eSBmdW50aW9uCiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMC44IHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4wLjggdXBkYXRlCiAgICAgICAgYnkKICAgICAgICB0aW51d3lvbmFjbXMKICAgICAgICA6CiAgICAgICAgWzAuOF0gCiAgICAgICAgICAgIGFkZGVkIHRoZSByZXBsYWNlbWVudCAoJmFtcDtndDsgdG8gJmd0OykgaW4gdGhlIFhNTCBvdXRwdXQKIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAwLjggdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjAuOCB1cGRhdGUKICAgICAgICBieQogICAgICAgIG1pY2hpY21zCiAgICAgICAgOgogICAgICAgIFswLjhdIAogICAgICAgICAgICBJQk1KYXZhMi0xMyByZXBsYWNlZCBieSBqZGsxLjMuMQogRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDAuOCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MC44IHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgbWljaGljbXMKICAgICAgICA6CiAgICAgICAgWzAuOF0gCiAgICAgICAgICAgIFR1dG9yaWFsIHVwZGF0ZWQKIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAwLjggYWRkPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjAuOCBhZGQKICAgICAgICBieQogICAgICAgIHRpbnV3eW9uYWNtcwogICAgICAgIDoKICAgICAgICBbMC44XSAKICAgICAgICAgICAgaW50aWFsIHZlcnNpb24gZm9yIHRoZSBuZXcgSFRNTCBGb3JtdWxhciBlZGl0b3IKVGhlc2UgYWN0aW9ucyBhcmUgdXNlZCBpbiB0aGUgaHRtbC1mb3JtLWVkaXRvci54bWFwIHNpdGVtYXAKIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAwLjggcmVtb3ZlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjAuOCByZW1vdmUKICAgICAgICBieQogICAgICAgIHRpbnV3eW9uYWNtcwogICAgICAgIDoKICAgICAgICBbMC44XSAKICAgICAgICAgICAgb2Jzb2xldGUKIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAwLjggdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjAuOCB1cGRhdGUKICAgICAgICBieQogICAgICAgIGdpYWNvbW8KICAgICAgICA6CiAgICAgICAgWzAuOF0gCiAgICAgICAgICAgIGZpeGVkIGRpc3QgdGFyZ2V0cwogRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDAuOCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MC44IHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgbWljaGljbXMKICAgICAgICA6CiAgICAgICAgWzAuOF0gCiAgICAgICAgICAgIGNvY29vbiByZXBsYWNlZCBieSB3eW9uYS1jbXMKIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAwLjggdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjAuOCB1cGRhdGUKICAgICAgICBieQogICAgICAgIGdpYWNvbW8KICAgICAgICA6CiAgICAgICAgWzAuOF0gCiAgICAgICAgICAgIHNvbWUgaW1wcm92ZW1lbnRzIGNvbmNlcm5pbmcgQXV0aC4uLi5BY3Rpb25zCiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMC44IHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4wLjggdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBnaWFjb21vCiAgICAgICAgOgogICAgICAgIFswLjhdIAogICAgICAgICAgICBhZGRlZCBzbmFwc2hvdC1zcmMgdGFyZ2V0CiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMC44IHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4wLjggdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBnaWFjb21vCiAgICAgICAgOgogICAgICAgIFswLjhdIAogICAgICAgICAgICBhZGRlZCBzbmFwc2hvdCB0YXJnZXQKIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAwLjggdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjAuOCB1cGRhdGUKICAgICAgICBieQogICAgICAgIG1pY2hpY21zCiAgICAgICAgOgogICAgICAgIFswLjhdIAogICAgICAgICAgICBJbnN0YWxsYXRpb24gcGFja2VkIGludG8gSU5TVEFMTC0qCiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMC44IGFkZDwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4wLjggYWRkCiAgICAgICAgYnkKICAgICAgICBtaWNoaWNtcwogICAgICAgIDoKICAgICAgICBbMC44XSAKICAgICAgICAgICAgSW5zdGFsbGF0aW9uIEluc3RydWN0aW9ucyBmb3Igc291cmNlIHZlcnNpb24KIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAwLjggYWRkPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjAuOCBhZGQKICAgICAgICBieQogICAgICAgIG1pY2hpY21zCiAgICAgICAgOgogICAgICAgIFswLjhdIAogICAgICAgICAgICBJbnN0YWxsYXRpb24gSW5zdHJ1Y3Rpb25zIGZvciBiaW5hcnkgdmVyc2lvbiAod2FyKQogRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDAuOCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MC44IHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgbWljaGljbXMKICAgICAgICA6CiAgICAgICAgWzAuOF0gCiAgICAgICAgICAgIGFkZGVkIHNuYXBzaG90IHRhcmdldAogRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDAuOCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MC44IHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgbWljaGljbXMKICAgICAgICA6CiAgICAgICAgWzAuOF0gCiAgICAgICAgICAgIExpbmsgdG8gV29ya2Zsb3cgTWFuYWdlbWVudAogRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDAuOCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MC44IHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgbWljaGljbXMKICAgICAgICA6CiAgICAgICAgWzAuOF0gCiAgICAgICAgICAgIFR1dG9yaWFsIHVwZGF0ZWQKIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAwLjggYWRkPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjAuOCBhZGQKICAgICAgICBieQogICAgICAgIG1pY2hpY21zCiAgICAgICAgOgogICAgICAgIFswLjhdIAogICAgICAgICAgICBFZGl0b3IgQWN0aW9uIE1pY2hpIFNhbXBsZQogRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDAuOCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MC44IHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgbWljaGljbXMKICAgICAgICA6CiAgICAgICAgWzAuOF0gCiAgICAgICAgICAgIERvY3UgdXBkYXRlZAogRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDAuOCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MC44IHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgdGludXd5b25hY21zCiAgICAgICAgOgogICAgICAgIFswLjhdIAogICAgICAgICAgICBmb3JtZWRpdG9yIGYmIzY1NTMzO3IgRVRICiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMC44IHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4wLjggdXBkYXRlCiAgICAgICAgYnkKICAgICAgICB0aW51d3lvbmFjbXMKICAgICAgICA6CiAgICAgICAgWzAuOF0gCiAgICAgICAgICAgIGZvcm11bGFyLWVkaXRvciBmdWVyIEVUSFotTUFUCiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMC44IHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4wLjggdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBnaWFjb21vCiAgICAgICAgOgogICAgICAgIFswLjhdIAogICAgICAgICAgICBtYWRlIHRoZSB0b29scy5qYXIgY29waWVkIGZyb20gdGhlIGxvY2FsIGluc3RhbGxhdGlvbgogRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDAuOCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MC44IHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgbWljaGljbXMKICAgICAgICA6CiAgICAgICAgWzAuOF0gCiAgICAgICAgICAgIHN0cmFuZ2UgZWZmZWN0cyB1cGRhdGVkCiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMC44IGFkZDwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4wLjggYWRkCiAgICAgICAgYnkKICAgICAgICBnaWFjb21vCiAgICAgICAgOgogICAgICAgIFswLjhdIAogICAgICAgICAgICBzeXN0ZW0gZXJyb3Igc3R5bGVzaGVldAogRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDAuOCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MC44IHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgZ2lhY29tbwogICAgICAgIDoKICAgICAgICBbMC44XSAKICAgICAgICAgICAgcmFpc2VkIGxvZ2xldmUgb2Ygc3RvcmUtamFuaXRvciB0byBJTkZPCiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMC44IHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4wLjggdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBtaWNoaWNtcwogICAgICAgIDoKICAgICAgICBbMC44XSAKICAgICAgICAgICAgcHJvamVjdGhlbHAKIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAwLjggdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjAuOCB1cGRhdGUKICAgICAgICBieQogICAgICAgIG1pY2hpY21zCiAgICAgICAgOgogICAgICAgIFswLjhdIAogICAgICAgICAgICB3eW9uYS1jbXMgcmVwbGFjZWQgYnkgY29jb29uCiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMC44IHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4wLjggdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBtaWNoaWNtcwogICAgICAgIDoKICAgICAgICBbMC44XSAKICAgICAgICAgICAgREVCVUcgcmVwbGFjZWQgYnkgRVJST1IKIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAwLjggdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjAuOCB1cGRhdGUKICAgICAgICBieQogICAgICAgIG1pY2hpY21zCiAgICAgICAgOgogICAgICAgIFswLjhdIAogICAgICAgICAgICBBIGxvdCBvZiBibGFibGEKIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAwLjggdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjAuOCB1cGRhdGUKICAgICAgICBieQogICAgICAgIG1pY2hpY21zCiAgICAgICAgOgogICAgICAgIFswLjhdIAogICAgICAgICAgICByZXF1ZXN0IGdlbmVyYXRvciBhZGRlZAogRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDAuOCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MC44IHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgbWljaGljbXMKICAgICAgICA6CiAgICAgICAgWzAuOF0gCiAgICAgICAgICAgIGFudCBpbnN0YWxsIGFuZCBOb3RlcyBpbmNsdWRlZAogRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDAuOCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MC44IHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgZ2lhY29tbwogICAgICAgIDoKICAgICAgICBbMC44XSAKICAgICAgICAgICAgLSBmaXhlZCBoYXJkY29kZWQgcmVkaXJlY3QgaW4gc2l0ZW1hcHMgKGV0aHotbWF0IG9ubHkpCi0gc2l0ZW1hcHMgb3B0aW1pemVkCiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMC44IHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4wLjggdXBkYXRlCiAgICAgICAgYnkKICAgICAgICB0aW51d3lvbmFjbXMKICAgICAgICA6CiAgICAgICAgWzAuOF0gCiAgICAgICAgICAgICoqKiBlbXB0eSBsb2cgbWVzc2FnZSAqKioKIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAwLjggdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjAuOCB1cGRhdGUKICAgICAgICBieQogICAgICAgIHRpbnV3eW9uYWNtcwogICAgICAgIDoKICAgICAgICBbMC44XSAKICAgICAgICAgICAgdGVzdGluZwogRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDAuOCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MC44IHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgdGludXd5b25hY21zCiAgICAgICAgOgogICAgICAgIFswLjhdIAogICAgICAgICAgICB0ZXN0aW5nIG1haWwgbm90aWZpY2F0aW9uCiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMC44IGFkZDwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4wLjggYWRkCiAgICAgICAgYnkKICAgICAgICB0aW51d3lvbmFjbXMKICAgICAgICA6CiAgICAgICAgWzAuOF0gCiAgICAgICAgICAgIGluaXRpYWwgaW1wb3J0LCBwYXJ0IG9mIHRoZSBmb3JtLWVkaXRvcgogRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDAuOCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MC44IHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgZ2lhY29tbwogICAgICAgIDoKICAgICAgICBbMC44XSAKICAgICAgICAgICAgY2hhbmdlZCBjb21tZW50cwogRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDAuOCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MC44IHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgZ2lhY29tbwogICAgICAgIDoKICAgICAgICBbMC44XSAKICAgICAgICAgICAgbWlub3IgYnVpbGQgZml4ZXMKIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAwLjggYWRkPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjAuOCBhZGQKICAgICAgICBieQogICAgICAgIGdpYWNvbW8KICAgICAgICA6CiAgICAgICAgWzAuOF0gCiAgICAgICAgICAgIHJlYWRkZWQgY29jb29uLnhjb25mIHdpdGggc3luY2hyb24gc2l0ZW1hcCByZWJ1aWxkaW5nCiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMC44IHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4wLjggdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBnaWFjb21vCiAgICAgICAgOgogICAgICAgIFswLjhdIAogICAgICAgICAgICAtIHJlbW92ZWQgamF2YWRvYyBmaWxlcyB3aXRoaW4gdGhlIHdlYmFwcCBzb3VyY2UgZGlyZWN0b3J5LSBhZGRlZCBhIC5jdnNpZ25vcmUgZmlsZSBmb3IgY29udmVuaWVuY2VzIC0gYWRkZWQgYSBidWlsZC5wcm9wZXJ0aWVzLnNhbXBsZSBmaWxlIHRvIHR3ZWFrIGluc3RhbGxhdGlvbi9idWlsZCBwcm9jZXNzIC0gZW5oYW5jZWQgcm9vdCBzaXRlbWFwIGFjY29yZGluZyB0byB0aGUgbmV3ZXN0IENvY29vbiB2ZXJzaW9uCiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMC44IHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4wLjggdXBkYXRlCiAgICAgICAgYnkKICAgICAgICB0aW51d3lvbmFjbXMKICAgICAgICA6CiAgICAgICAgWzAuOF0gCiAgICAgICAgICAgIHRlc3RpbmcKIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAwLjggdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjAuOCB1cGRhdGUKICAgICAgICBieQogICAgICAgIHRpbnV3eW9uYWNtcwogICAgICAgIDoKICAgICAgICBbMC44XSAKICAgICAgICAgICAgdGVzdGluZwogRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDAuOCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MC44IHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgdGludXd5b25hY21zCiAgICAgICAgOgogICAgICAgIFswLjhdIAogICAgICAgICAgICB0ZXN0aW5nCiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMC44IHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4wLjggdXBkYXRlCiAgICAgICAgYnkKICAgICAgICB0aW51d3lvbmFjbXMKICAgICAgICA6CiAgICAgICAgWzAuOF0gCiAgICAgICAgICAgIHRlc3RpbmcKIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAwLjggdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjAuOCB1cGRhdGUKICAgICAgICBieQogICAgICAgIHRpbnV3eW9uYWNtcwogICAgICAgIDoKICAgICAgICBbMC44XSAKICAgICAgICAgICAgdGVzdGluZwogRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDAuOCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MC44IHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgdGludXd5b25hY21zCiAgICAgICAgOgogICAgICAgIFswLjhdIAogICAgICAgICAgICB0ZXN0aW5nCiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMC44IHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4wLjggdXBkYXRlCiAgICAgICAgYnkKICAgICAgICB0aW51d3lvbmFjbXMKICAgICAgICA6CiAgICAgICAgWzAuOF0gCiAgICAgICAgICAgIHRlc3RpbmcKIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAwLjggdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjAuOCB1cGRhdGUKICAgICAgICBieQogICAgICAgIHRpbnV3eW9uYWNtcwogICAgICAgIDoKICAgICAgICBbMC44XSAKICAgICAgICAgICAgdGVzdGluZwogRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDAuOCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MC44IHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgdGludXd5b25hY21zCiAgICAgICAgOgogICAgICAgIFswLjhdIAogICAgICAgICAgICB0ZXN0aW5nCiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMC44IHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4wLjggdXBkYXRlCiAgICAgICAgYnkKICAgICAgICB0aW51d3lvbmFjbXMKICAgICAgICA6CiAgICAgICAgWzAuOF0gCiAgICAgICAgICAgIHRlc3RpbmcKIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAwLjggdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjAuOCB1cGRhdGUKICAgICAgICBieQogICAgICAgIHRpbnV3eW9uYWNtcwogICAgICAgIDoKICAgICAgICBbMC44XSAKICAgICAgICAgICAgdGVzdGluZwogRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDAuOCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MC44IHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgZ2lhY29tbwogICAgICAgIDoKICAgICAgICBbMC44XSAKICAgICAgICAgICAgaW50ZWdyYXRlZCBjb2Nvb24KIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAwLjggdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjAuOCB1cGRhdGUKICAgICAgICBieQogICAgICAgIHRpbnV3eW9uYWNtcwogICAgICAgIDoKICAgICAgICBbMC44XSAKICAgICAgICAgICAgdGVzdCBjb21taXQKIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAwLjggdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjAuOCB1cGRhdGUKICAgICAgICBieQogICAgICAgIGdpYWNvbW8KICAgICAgICA6CiAgICAgICAgWzAuOF0gCiAgICAgICAgICAgIHNvbWUgY29udmVuaWVuY2VzCiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMC44IHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4wLjggdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBnaWFjb21vCiAgICAgICAgOgogICAgICAgIFswLjhdIAogICAgICAgICAgICBmaXhlZCBqYXZhZG9jcyBkZXN0aW5hdGlvbiBwYXRoCiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMC44IHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4wLjggdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBtaWNoaWNtcwogICAgICAgIDoKICAgICAgICBbMC44XSAKICAgICAgICAgICAgNCByZXBsYWNlZCBieSA1CiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMC44IHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4wLjggdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBtaWNoaWNtcwogICAgICAgIDoKICAgICAgICBbMC44XSAKICAgICAgICAgICAgQUMtUG9saWNpZXMgY2FuIGJlIHJlYWQgYnkgbG9jYWxob3N0CiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMC44IHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4wLjggdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBtaWNoaWNtcwogICAgICAgIDoKICAgICAgICBbMC44XSAKICAgICAgICAgICAgR2V0IGFuZCBpbnN0YWxsIEFudAogRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDAuOCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MC44IHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgbWljaGljbXMKICAgICAgICA6CiAgICAgICAgWzAuOF0gCiAgICAgICAgICAgIGFzeW5jaHJvbiByZXBsYWNlZCBieSBzeW5jaHJvbgogRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDAuOCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MC44IHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgZ2lhY29tbwogICAgICAgIDoKICAgICAgICBbMC44XSAKICAgICAgICAgICAgYWRkZWQgQW50IHByZXJlcXVpc2l0ZQogRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDAuOCBhZGQ8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MC44IGFkZAogICAgICAgIGJ5CiAgICAgICAgZ2lhY29tbwogICAgICAgIDoKICAgICAgICBbMC44XSAKICAgICAgICAgICAgcmV3cml0dGVuIGJ1aWxkLnhtbAogRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDAuOCB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MC44IHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgdGludXd5b25hY21zCiAgICAgICAgOgogICAgICAgIFswLjhdIAogICAgICAgICAgICBjaGFuZ2VkIHRoZSB0aXRsZSBpbiBvcmRlciB0byBmaXQgbm9ybWFsIHRlcm1pbmFscwogRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDAuOCBhZGQ8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MC44IGFkZAogICAgICAgIGJ5CiAgICAgICAgCiAgICAgICAgOgogICAgICAgIFswLjhdIAogICAgICAgICAgICBUaGlzIGNvbW1pdCB3YXMgbWFudWZhY3R1cmVkIGJ5IGN2czJzdm4gdG8gY3JlYXRlIHRhZyAnVjJfMCcuIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAwLjggYWRkPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjAuOCBhZGQKICAgICAgICBieQogICAgICAgIAogICAgICAgIDoKICAgICAgICBbMC44XSAKICAgICAgICAgICAgVGhpcyBjb21taXQgd2FzIG1hbnVmYWN0dXJlZCBieSBjdnMyc3ZuIHRvIGNyZWF0ZSBicmFuY2ggJ1dZT05BJy4gRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDAuOCBhZGQ8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MC44IGFkZAogICAgICAgIGJ5CiAgICAgICAgdGludWNtcwogICAgICAgIDoKICAgICAgICBbMC44XSAKICAgICAgICAgICAgSW5pdGlhbCByZXZpc2lvbgogRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDAuOCBhZGQ8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MC44IGFkZAogICAgICAgIGJ5CiAgICAgICAgCiAgICAgICAgOgogICAgICAgIFswLjhdIAogICAgICAgICAgICBOZXcgcmVwb3NpdG9yeSBpbml0aWFsaXplZCBieSBjdnMyc3ZuLiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS4yIHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjIgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBhbnRvbmlvCiAgICAgICAgOgogICAgICAgIFsxLjJdIAogICAgICAgICAgICBEb24ndCBjaGVjayAyIHRpbWUgZXhwcmVzc2lvbiAnY2llICE9IG51bGwnLiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS4yIHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjIgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBhbnRvbmlvCiAgICAgICAgOgogICAgICAgIFsxLjJdIAogICAgICAgICAgICBEb24ndCBjcmVhdGUgdW5uZWNlc2FyeSBMb25nIE9iamVjdHMuIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjIgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuMiB1cGRhdGUKICAgICAgICBieQogICAgICAgIGFudG9uaW8KICAgICAgICA6CiAgICAgICAgWzEuMl0gCiAgICAgICAgICAgIEZvcm1hdHRpbmcuIERpZmYgPC9kZXNjcmlwdGlvbj48L2l0ZW0+PGl0ZW0+PHRpdGxlPk15UHJvamVjdCAxLjIgdXBkYXRlPC90aXRsZT48bGluaz5odHRwOi8vbXlwcm9qLm15Z3JvdXAub3JnLy9jaGFuZ2VzLmh0bWw8L2xpbms+PGRlc2NyaXB0aW9uPjEuMiB1cGRhdGUKICAgICAgICBieQogICAgICAgIGFudG9uaW8KICAgICAgICA6CiAgICAgICAgWzEuMl0gCiAgICAgICAgICAgIENvZGUgZm9ybWF0dGluZy4gUmVtb3ZlIHVudXNlZCBpbXBvcnRzIGFuZCBVc2UgaW1wb3J0cy4gRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuMiB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS4yIHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgYW50b25pbwogICAgICAgIDoKICAgICAgICBbMS4yXSAKICAgICAgICAgICAgRG9uJ3QgY3JlYXRlIHVubmVjZXNhcnkgTG9uZyBPYmplY3RzLiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjxpdGVtPjx0aXRsZT5NeVByb2plY3QgMS40IHVwZGF0ZTwvdGl0bGU+PGxpbms+aHR0cDovL215cHJvai5teWdyb3VwLm9yZy8vY2hhbmdlcy5odG1sPC9saW5rPjxkZXNjcmlwdGlvbj4xLjQgdXBkYXRlCiAgICAgICAgYnkKICAgICAgICBjaGVzdG51dAogICAgICAgIDoKICAgICAgICBbMS40XSAKICAgICAgICAgICAgYWxsb3cgY2xpZW50IGVkaXRvcnMgdG8gc2F2ZSAoc2hvdWxkIGFsbG93IGt1cHUgdG8gc2F2ZSkgRGlmZiA8L2Rlc2NyaXB0aW9uPjwvaXRlbT48aXRlbT48dGl0bGU+TXlQcm9qZWN0IDEuMiB1cGRhdGU8L3RpdGxlPjxsaW5rPmh0dHA6Ly9teXByb2oubXlncm91cC5vcmcvL2NoYW5nZXMuaHRtbDwvbGluaz48ZGVzY3JpcHRpb24+MS4yIHVwZGF0ZQogICAgICAgIGJ5CiAgICAgICAgYW50b25pbwogICAgICAgIDoKICAgICAgICBbMS4yXSAKICAgICAgICAgICAgVXNlIFN0cmluZ0J1ZmZlciBpbnNpZGUgY3ljbGVzLiBEaWZmIDwvZGVzY3JpcHRpb24+PC9pdGVtPjwvY2hhbm5lbD48L3Jzcz4=