PD9waHAgIAkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCXJlcXVpcmVfb25jZSgkX1NFUlZFUlsnRE9DVU1FTlRfUk9PVCddIC4gIi9lY2xpcHNlLm9yZy1jb21tb24vc3lzdGVtL2FwcC5jbGFzcy5waHAiKTsJcmVxdWlyZV9vbmNlKCRfU0VSVkVSWydET0NVTUVOVF9ST09UJ10gLiAiL2VjbGlwc2Uub3JnLWNvbW1vbi9zeXN0ZW0vbmF2LmNsYXNzLnBocCIpOyAJcmVxdWlyZV9vbmNlKCRfU0VSVkVSWydET0NVTUVOVF9ST09UJ10gLiAiL2VjbGlwc2Uub3JnLWNvbW1vbi9zeXN0ZW0vbWVudS5jbGFzcy5waHAiKTsgCSRBcHAgCT0gbmV3IEFwcCgpOwkkTmF2CT0gbmV3IE5hdigpOwkkTWVudSAJPSBuZXcgTWVudSgpOwkJaW5jbHVkZSgkQXBwLT5nZXRQcm9qZWN0Q29tbW9uKCkpOyAgICAjIEFsbCBvbiB0aGUgc2FtZSBsaW5lIHRvIHVuY2x1dHRlciB0aGUgdXNlcidzIGRlc2t0b3AnCgoJIyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCgkjCgkjIHJlZmVyZW5jZXMucGhwCgkjCgkjIEF1dGhvcjogCQlNYXJjb3MgRGlkb25ldCBEZWwgRmFicm8KCSMgRGF0ZToJCQkyMDA2LTA4LTI4CgkjCgkjIERlc2NyaXB0aW9uOiBUaGlzIHBhZ2UgbGlzdHMgYSBzZXQgb2YgYXJ0aWNsZXMgdGhhdCBtYWtlIHJlZmVyZW5jZSB0byBBTVcuCgkjICAgICAgICAgICAgICAKCSMKCSMqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCgkKCSMKCSMgQmVnaW46IHBhZ2Utc3BlY2lmaWMgc2V0dGluZ3MuICBDaGFuZ2UgdGhlc2UuIAoJJHBhZ2VUaXRsZSAJCT0gIkFNVyAtIEV4dGVybmFsIFJlZmVyZW5jZXMiOwoJJHBhZ2VLZXl3b3Jkcwk9ICIiOwoJJHBhZ2VBdXRob3IJCT0gIk1hcmNvcyBEaWRvbmV0IERlbCBGYWJybyI7CgkKCSMgUGFzdGUgeW91ciBIVE1MIGNvbnRlbnQgYmV0d2VlbiB0aGUgRU9IVE1MIG1hcmtlcnMhCQoJJGh0bWwgPSA8PDxFT0hUTUwKCjwhLS0gTWFpbiBwYXJ0IC0tPgoJPGRpdiBpZD0ibWlkY29sdW1uIj4KCQk8dGFibGUgd2lkdGg9IjEwMCUiPgoJCQk8dHI+CgkJCQk8dGQgd2lkdGg9IjUwJSI+CgkJCQkJPGgxPiRwYWdlVGl0bGU8L2gxPgoJCQkJPC90ZD4KCQkJCTx0ZCBhbGlnbj0icmlnaHQiPgoJCQkJCTxpbWcgYWx0PSJBTVcgTG9nbyIgc3JjPSJyZXNvdXJjZXMvYW13TG9nby5wbmciIHZhbGlnbj0idG9wIiAvPgoJCQkJPC90ZD4KCQkJPC90cj4KCQk8L3RhYmxlPgoJCTxwLz4KCgoJPHVsIGNsYXNzPSJtaWRsaXN0Ij4KCTxsaT4KCQkKCQlUaGlzIHBhZ2UgbGlzdHMgYSBzZXQgb2YgYXJ0aWNsZXMsIHByZXNlbnRhdGlvbnMsIGdlbmVyYWwgd29yaywgZXRjLiB0aGF0IHJlZmVycyB0byB0aGUgQVRMQVMgTW9kZWwgV2VhdmVyIHByb2plY3QuPHAvPgoJCUFueW9uZSB0aGF0IGlzIGludGVyZXN0ZWQgdG8gYWRkIGl0cyB3b3JrIG1heSBjb250YWN0IDxhIGhyZWY9Im1haWx0bzptYXJjb3MuZGlkb25ldC1kZWwtZmFicm9fYXRfdW5pdi1uYW50ZXMuZnIiPm1hcmNvcy5kaWRvbmV0LWRlbC1mYWJybyBhdCB1bml2LW5hbnRlcy5mcjwvYT4uIDxwLz4KCQkKCQlUaGUgQU1XIFB1YmxpY2F0aW9ucyBhcmUgYXZhaWxhYmxlIGluIHRoZSA8YSBocmVmPSJwdWJsaWNhdGlvbi5waHAiPlB1YmxpY2F0aW9ucyBwYWdlPC9hPi4KCTwvbGk+CgkKICAgCSAgICA8aDQ+MjAwNzwvaDQ+ICAJIAogICAgICAgICAgICAgICAgPGxpPgogICAgICAgICAgICAgICAgICBbPGEgaHJlZj0iaHR0cDovL3d3dy5zY2llbmNlcy51bml2LW5hbnRlcy5mci9saW5hL2F0bC9iaWJsaW9ncmFwaHkvZXh0X0hJQ1NTMDciPkhJQ1NTMDc8L2E+XSAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICBXaW1tZXIsIE0sIFN0cm9tbWVyLCBNLCBLYXJnbCwgSCwgYW5kIEtyYW1sZXIsIEcgOiAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgVG93YXJkcyBNb2RlbCBUcmFuc2Zvcm1hdGlvbiBHZW5lcmF0aW9uIEJ5LUV4YW1wbGUuICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgIEluIHByb2MuIG9mICBISUNTUy00MCBIYXdhaWkgSW50ZXJuYXRpb25hbCBDb25mZXJlbmNlIG9uIFN5c3RlbSBTY2llbmNlcywgSGF3YWlpLCBVU0EuIFRvIGFwcGVhci4gCiAgICAgICAgICAgICAgICAgICAgICAyMDA3LiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICA8YSBocmVmPSJodHRwOi8vd3d3LmJpZy50dXdpZW4uYWMuYXQvcmVzZWFyY2gvcHVibGljYXRpb25zLzIwMDYvMjgwNi5wZGYiPihsaW5rKTwvYT4gCiAgICAgICAgICAgICAgICA8L2xpPgogICAgCiAgICAKICAgICAgICAgIAogICAJICAJPGg0PjIwMDY8L2g0PgoJCQkJPGxpPgoJCQkJCVs8YSBocmVmPSJodHRwOi8vd3d3LnNjaWVuY2VzLnVuaXYtbmFudGVzLmZyL2xpbmEvYXRsL2JpYmxpb2dyYXBoeS9leHRfTU9ERUxTMDYiPk1PREVMUzA2PC9hPl0JCQkJCQoJCQkJCUthcHBlbCwgRywgS2Fwc2FtbWVyLCBFLCBLYXJnbCwgSCwgS3JhbWxlciwgRywgUmVpdGVyLCBULCBSZXRzY2hpdHplZ2dlciwgVywgU2Nod2luZ2VyLCBXLCBhbmQgV2ltbWVyLCBNIDoKCQkJCQkgTGlmdGluZyBtZXRhbW9kZWxzIHRvIG9udG9sb2dpZXMgLSBhIHN0ZXAgdG8gdGhlIHNlbWFudGljIGludGVncmF0aW9uIG9mIG1vZGVsaW5nIGxhbmd1YWdlcy4gCgkJCQkJIEluOiBBQ00vSUVFRSA5dGggSW50ZXJuYXRpb25hbCBDb25mZXJlbmNlIG9uIE1vZGVsIERyaXZlbiBFbmdpbmVlcmluZyBMYW5ndWFnZXMgYW5kIFN5c3RlbXMgKE1PREVMUycwNikuIDIwMDYuIAogICAgICAgICAgCQk8L2xpPgogICAgICAgICAgICA8cC8+CiAgICAgICAgICAgICA8bGk+CiAgICAgICAgICAgIFs8YSBocmVmPSJodHRwOi8vd3d3LnNjaWVuY2VzLnVuaXYtbmFudGVzLmZyL2xpbmEvYXRsL2JpYmxpb2dyYXBoeS9leHRfRURPQzA2Ij5FRE9DMDY8L2E+XSBTdGVmYW5vdiwgViwgYW5kIExpc3QsIEIgOiAKICAgICAgICAgICAgCUJ1c2luZXNzIE1ldGFkYXRhIGZvciB0aGUgRGF0YSBXYXJlaG91c2UgLSBXZWF2aW5nIEVudGVycHJpc2UgR29hbHMgYW5kIE11bHRpZGltZW5zaW9uYWwgTW9kZWxzLiAKICAgICAgICAgICAgCUluOiBJbnRlcm5hdGlvbmFsIFdvcmtzaG9wIG9uIE1vZGVscyBmb3IgRW50ZXJwcmlzZSBDb21wdXRpbmcgKElXTUVDKSBhdCB0aGUgMTB0aCBJbnRlcm5hdGlvbmFsIEVudGVycHJpc2UgCiAgICAgICAgICAgIAlEaXN0cmlidXRlZCBPYmplY3QgQ29tcHV0aW5nIENvbmZlcmVuY2UgKEVET0MgMjAwNikuIDIwMDYuICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAJCTwvbGk+CiAgICAgICAgICAgIDxwLz4KCQkJCTxsaT4gICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICBbPGEgaHJlZj0iaHR0cDovL3d3dy5zY2llbmNlcy51bml2LW5hbnRlcy5mci9saW5hL2F0bC9iaWJsaW9ncmFwaHkvZXh0X0VDQlMwNiI+RUNCUzA2PC9hPl0gICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgIERpIFJ1c2NpbywgRCwgTXVjY2luaSwgSCwgUGVsbGljY2lvbmUsIFAsIGFuZCBQaWVyYW50b25pbywgQSA6CiAgICAgICAgICAgICAgICAgICAgVG93YXJkcyBXZWF2aW5nIFNvZnR3YXJlIEFyY2hpdGVjdHVyZSBNb2RlbHMuCiAgICAgICAgICAgICAgICAgICAgICBNQkQtTU9NUEVTIDIwMDYgV29ya3Nob3AgdG8gYmUgaGVsZCBhdCBFQ0JTIDIwMDYsIFBvdHNkYW0sIEdlcm1hbnkuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAyMDA2LgogICAgICAgICAgICAgICAgICAgIDxhIGhyZWY9Imh0dHA6Ly9zZTJjLnVuaS5sdS90aWtpL3NlMmMtYmliX2Rvd25sb2FkLnBocD9pZD0xOTY5Ij4obGluayk8L2E+IAoJCQkJPC9saT4gICAgICAgICAgICAgIAoJCQkJPHAvPiAgICAgICAKCQkJCTxsaT4gICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICBbPGEgaHJlZj0iaHR0cDovL3d3dy5zY2llbmNlcy51bml2LW5hbnRlcy5mci9saW5hL2F0bC9iaWJsaW9ncmFwaHkvZXh0X1NBQzA2Ij5TQUMwNjwvYT5dICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICBDaWNjaGV0dGksIEEsIERpIFJ1c2NpbywgRCwgYW5kIFBpZXJhbnRvbmlvLCBBIDogV2VhdmluZyBDb25jZXJucyBpbiBNb2RlbCBCYXNlZCBEZXZlbG9wbWVudCBvZiAKICAgICAgICAgICAgICAgICAgICAgIERhdGEgSW50ZW5zaXZlIFdlYiBBcHBsaWNhdGlvbnMuIEFDTSBTQUMgKFN5bXBvc2l1bSBvbiBBcHBsaWVkIENvbXB1dGluZykgLSBNb2RlbCBUcmFuc2Zvcm1hdGlvbiBUcmFjayA6MTI1NiAtIDEyNjEuIDIwMDYKICAgICAgICAgICAgICAgICAgICA8YSBocmVmPSJodHRwOi8vcG9ydGFsLmFjbS5vcmcvY2l0YXRpb24uY2ZtP2lkPTExNDEyNzcuMTE0MTU3MSZjb2xsPUdVSURFJmRsPUdVSURFJnR5cGU9c2VyaWVzJmlkeD0xMTQxMjc3JnBhcnQ9c2VyaWVzJldhbnRUeXBlPXNlcmllcyZ0aXRsZT1TeW1wb3NpdW0lMjBvbiUyMEFwcGxpZWQlMjBDb21wdXRpbmcmQ0ZJRD0xNTE1MTUxNSZDRlRPS0VOPTYxODQ2MTgiPihsaW5rKTwvYT4gCgkJCQk8L2xpPiAgICAgICAgICAgICAgCgkJCQk8cC8+ICAgICAgIAoJCQkJICAgICAgIAoJCQk8bGk+ICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgIFs8YSBocmVmPSJodHRwOi8vd3d3LnNjaWVuY2VzLnVuaXYtbmFudGVzLmZyL2xpbmEvYXRsL2JpYmxpb2dyYXBoeS9leHRfQU1NQTA2YSI+QU1NQTA2YTwvYT5dCiAgICAgICAgICAgICAgICAgICAgICBTY2h3YXJ6ZXIsIFIgOgogICAgICAgICAgICAgICAgICAgIEFUTEFTIE1vZGVsIE1hbmFnZW1lbnQgQXJjaGl0ZWN0dXJlLgogICAgICAgICAgICAgICAgICAgICAgTWlzY2VsbGFuZW91cyBwdWJsaWNhdGlvbi4KICAgICAgICAgICAgICAgICAgICAgIDIwMDYuCiAgICAgICAgICAgICAgICAgICAgPGEgaHJlZj0iaHR0cDovL2JpczIuaW5mb3JtYXRpay51bmktbGVpcHppZy5kZS9zdHVkaXVtL3NlbWluYXJlLzIwMDVfd3MvbWRzZC8yMDA1MTIyMS9zY2h3YXJ6ZXIucGRmIj4obGluayk8L2E+IAogICAgICAgICAgICAgIAoJCQk8L2xpPiAgICAgICAgICAgICAgCgkJCTxwLz4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgIDxsaT4KICAgICAgICAgICAgICAgICAgWzxhIGhyZWY9Imh0dHA6Ly93d3cuc2NpZW5jZXMudW5pdi1uYW50ZXMuZnIvbGluYS9hdGwvYmlibGlvZ3JhcGh5L2V4dF9DSVRTQTA2Ij5DSVRTQTA2PC9hPl0KICAgICAgICAgICAgICAgICAgICAgIEthcHNhbW1lciAsIEUsIFJlaXRlciAsIFQsIGFuZCBTY2h3aW5nZXIsIFcgOgogICAgICAgICAgICAgICAgICAgIE1vZGVsLUJhc2VkIFRvb2wgSW50ZWdyYXRpb24gLSBTdGF0ZSBvZiB0aGUgQXJ0IGFuZCBGdXR1cmUgUGVyc3BlY3RpdmVzLgogICAgICAgICAgICAgICAgICAgICAgSW4gcHJvYy4gb2YgdGhlIDNyZCBJbnRlcm5hdGlvbmFsIENvbmZlcmVuY2Ugb24gQ3liZXJuZXRpY3MgYW5kIEluZm9ybWF0aW9uIFRlY2hub2xvZ2llcywgU3lzdGVtcyBhbmQgQXBwbGljYXRpb25zIChDSVRTQSAyMDA2KSwgMjAtMjMsIE9ybGFuZG8sIFVTQS4KICAgICAgICAgICAgICAgICAgICAgIDIwMDYuCiAgICAgICAgICAgICAgICAgICAgPGEgaHJlZj0iaHR0cDovL3d3dy5iaW9pbmYuamt1LmF0L3B1YmxpY2F0aW9ucy8yMDA2LzA3MDYucGRmIj4obGluayk8L2E+IAoJCQk8L2xpPiAgICAgICAgICAgIAoJCQk8cC8+CgkJCTxsaT4gICAgICAgICAgCiAgICAgICAgICAgICAgICAgIFs8YSBocmVmPSJodHRwOi8vd3d3LnNjaWVuY2VzLnVuaXYtbmFudGVzLmZyL2xpbmEvYXRsL2JpYmxpb2dyYXBoeS9leHRfT0NDRUxMTzA2Ij5PQ0NFTExPMDY8L2E+XQogICAgICAgICAgICAgICAgICAgICAgT2NjZWxsbywgQSA6CiAgICAgICAgICAgICAgICAgICAgQ2FwaXRhbGl6aW5nIHNhZmV0eSBvZiBhcHBsaWNhdGlvbnMgYmVpbmcgYWRhcHRlZCBkeW5hbWljYWxseTogdGhlIFNhdGluIGV4ZWN1dGFibGUgbW9kZWwuCiAgICAgICAgICAgICAgICAgICAgICBQaGQgdGhlc2lzLCBVbml2ZXJzaXTpIGRlIE5pY2UtU29waGlhIEFudGlwb2xpcy4KICAgICAgICAgICAgICAgICAgICAgIDIwMDYuCiAgICAgICAgICAgICAgICAgICAgPGEgaHJlZj0iaHR0cDovL3d3dy5lc3NpLmZyL35vY2NlbGxvL2RvYy9yYXBwb3J0RmluYWxfT2NjZWxsby5wZGYiPihsaW5rKTwvYT4gCgkJCTwvbGk+ICAgICAgICAgICAgICAKCQkJPHAvPgoJCQk8bGk+CiAgICAgICAgICAgICAgICAgIFs8YSBocmVmPSJodHRwOi8vd3d3LnNjaWVuY2VzLnVuaXYtbmFudGVzLmZyL2xpbmEvYXRsL2JpYmxpb2dyYXBoeS9leHRfU01PTElLMDYiPlNNT0xJSzA2PC9hPl0KICAgICAgICAgICAgICAgICAgICAgIFNtb2xpaywgUFMgOgogICAgICAgICAgICAgICAgICAgIE1BTUJPIE1ldGFtb2RlbGluZyBFbnZpcm9ubWVudC4KICAgICAgICAgICAgICAgICAgICAgIFBoZCB0aGVzaXMsIEJybm8gVW5pdmVyc2l0eSBvZiBUZWNobm9sb2d5IC0gRmFjdWx0eSBvZiBJbmZvcm1hdGlvbiBUZWNobm9sb2d5LgogICAgICAgICAgICAgICAgICAgICAgMjAwNi4KICAgICAgICAgICAgICAgICAgICA8YSBocmVmPSJodHRwOi8vd3d3Lm1hbWJvbWRlLmluZm8vTWFtYm9NREUucGRmIj4obGluayk8L2E+IAoJCQk8L2xpPiAgICAgICAgICAgICAgCgkJCTxwLz4KICAgICAgICAgICAgIDxsaT4KICAgICAgICAgICAgICAgICAgWzxhIGhyZWY9Imh0dHA6Ly93d3cuc2NpZW5jZXMudW5pdi1uYW50ZXMuZnIvbGluYS9hdGwvYmlibGlvZ3JhcGh5L2V4dF9WSUVOTkEwNiI+VklFTk5BMDY8L2E+XQogICAgICAgICAgICAgICAgICAgICAgV2ltbWVyLCBNLCBTY2hhdWVyaHViZXIsIEEsIEthcHNhbW1lciwgRSwgYW5kIEtyYW1sZXIsIEcgOiAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgRnJvbSBEb2N1bWVudCBUeXBlIERlZmluaXRpb25zIHRvIE1ldGFtb2RlbHM6IFRoZSBXZWJNTCBDYXNlIFN0dWR5LiAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICBWaWVubmEgVW5pdmVyc2l0eSBvZiBUZWNobm9sb2d5LgogICAgICAgICAgICAgICAgICAgICAgMjAwNi4KICAgICAgICAgICAgICAgICAgICA8YSBocmVmPSJodHRwOi8vd3d3LmJpZy50dXdpZW4uYWMuYXQvcHJvamVjdHMvd2VibWwvRFREMk1PRl9XaW1tZXJfU2NoYXVlcmh1YmVyMDYucGRmIj4obGluayk8L2E+IAoJCQk8L2xpPiAgICAgICAgICAgICAgCgkJCTxwLz4KCQkJPGxpPgoJCQkgICAgICBbPGEgaHJlZj0iaHR0cDovL3d3dy5zY2llbmNlcy51bml2LW5hbnRlcy5mci9saW5hL2F0bC9iaWJsaW9ncmFwaHkvZXh0X0dBTU1BMDZiIj5HQU1NQTA2YjwvYT5dCiAgICAgICAgICAgICAgICAgICAgICBLYXBwZWwsIEcsIEthcHNhbW1lciwgRSwgS3JhbWxlciwgRywgUmVpdGVyLCBULCBSZXRzY2hpdHplZ2dlciwgVywgYW5kIFNjaHdpbmdlciwgVyA6CiAgICAgICAgICAgICAgICAgICAgVG93YXJkcyBhIHNlbWFudGljIGluZnJhc3RydWN0dXJlIHN1cHBvcnRpbmcgbW9kZWwtYmFzZWQgdG9vbCBpbnRlZ3JhdGlvbi4KICAgICAgICAgICAgICAgICAgICAgIEluIHByb2MuIG9mIHRoZSAxc3QgSW50ZXJuYXRpb25hbCBXb3Jrc2hvcCBvbiBHbG9iYWwgaW50ZWdyYXRlZCBNb2RlbCBNYW5hZ2VtZW50IChHYU1NYTIwMDYpLCBTaGFuZ2hhaS4KICAgICAgICAgICAgICAgICAgICAgIDIwMDYuCiAgICAgICAgICAgICAgICAgICAgPGEgaHJlZj0iaHR0cDovL3d3dy5iaW9pbmYuamt1LmF0L3B1YmxpY2F0aW9ucy8yMDA2LzA1MDYucGRmIj4obGluayk8L2E+IAoJCQk8L2xpPiAgICAgICAgICAgICAgCgkJCTxwLz4KCgkJCTxsaT4KICAgICAgICAgICAgICAgICAgWzxhIGhyZWY9Imh0dHA6Ly93d3cuc2NpZW5jZXMudW5pdi1uYW50ZXMuZnIvbGluYS9hdGwvYmlibGlvZ3JhcGh5L2V4dF9DQUlTRTA2Ij5DQUlTRTA2PC9hPl0KICAgICAgICAgICAgICAgICAgICAgIFN0ZWZhbm92LCBWIDoKICAgICAgICAgICAgICAgICAgICBCcmlkZ2luZyB0aGUgR2FwIGJldHdlZW4gRGF0YSBXYXJlaG91c2VzIGFuZCBPcmdhbml6YXRpb25zLgogICAgICAgICAgICAgICAgICAgICAgSW4gcHJvYy4gb2YgV29ya3Nob3BzIGFuZCBEb2N0b3JhbCBDb25zb3J0aXVtLCAxOHRoIENvbmZlcmVuY2Ugb24gQWR2YW5jZWQgSW5mb3JtYXRpb24gU3lzdGVtIEVuZ2luZWVyaW5nIChDQWlTRScwNiksIE5hbXVyIFVuaXZlcnNpdHkgUHJlc3MuCiAgICAgICAgICAgICAgICAgICAgICAyMDA2LgogICAgICAgICAgICAgICAgICAgIDxhIGhyZWY9Imh0dHA6Ly93aXQudHV3aWVuLmFjLmF0L3Blb3BsZS9zdGVmYW5vdi9kb2N1bWVudHMvY2Fpc2UwNl9kb2N0b3JhbF9jb25zb3J0aXVtX3N0ZWZhbm92LnBkZiI+KGxpbmspPC9hPiAKCQkJPC9saT4gICAKCQkJPHAvPiAgICAgICAgICAgCiAgICAgICAgICAgIDxsaT4KICAgICAgICAgICAgICAgICAgWzxhIGhyZWY9Imh0dHA6Ly93d3cuc2NpZW5jZXMudW5pdi1uYW50ZXMuZnIvbGluYS9hdGwvYmlibGlvZ3JhcGh5L2V4dF9HQU1NQTA2Ij5HQU1NQTA2PC9hPl0KICAgICAgICAgICAgICAgICAgICAgIEtvbG92b3MsIERTLCBQYWlnZSwgUkYsIGFuZCBQb2xhY2ssIEZBIDoKICAgICAgICAgICAgICAgICAgICBNb2RlbCBDb21wYXJpc29uOiBhIEZvdW5kYXRpb24gZm9yIE1vZGVsIENvbXBvc2l0aW9uIGFuZCBNb2RlbCBUcmFuc2Zvcm1hdGlvbiBUZXN0aW5nLgogICAgICAgICAgICAgICAgICAgICAgSW4gUHJvYy4gRmlyc3QgSW50ZXJuYXRpb25hbCBXb3Jrc2hvcCBvbiBHbG9iYWwgSW50ZWdyYXRlZCBNb2RlbCBNYW5hZ2VtZW50IChHQE1NQSkgOjEzLTIwLgogICAgICAgICAgICAgICAgICAgICAgMjAwNi4KICAgICAgICAgICAgICAgICAgICA8YSBocmVmPSJodHRwOi8vcG9ydGFsLmFjbS5vcmcvY2l0YXRpb24uY2ZtP2RvaWQ9MTEzODMwNC4xMTM4MzA4Ij4obGluayk8L2E+IAoJCQk8L2xpPiAgICAgICAgICAgICAgCgkJCTxwLz4KCQkJPGxpPgogICAgICAgICAgICAgICAgICBbPGEgaHJlZj0iaHR0cDovL3d3dy5zY2llbmNlcy51bml2LW5hbnRlcy5mci9saW5hL2F0bC9iaWJsaW9ncmFwaHkvZXh0X0VDTURBMDYiPkVDTURBMDY8L2E+XQogICAgICAgICAgICAgICAgICAgICAgS29sb3ZvcywgRFMsIFBhaWdlLCBSRiwgYW5kIFBvbGFjaywgRkEgOgogICAgICAgICAgICAgICAgICAgIE9uLURlbWFuZCBNZXJnaW5nIG9mIFRyYWNlYWJpbGl0eSBMaW5rcyB3aXRoIE1vZGVscy4KICAgICAgICAgICAgICAgICAgICAgIEluIFByb2MuIDJuZCBFQy1NREEgV29ya3Nob3Agb24gVHJhY2VhYmlsaXR5LCBCaWxiYW8sIFNwYWluLgogICAgICAgICAgICAgICAgICAgICAgMjAwNi4KICAgICAgICAgICAgICAgICAgICA8YSBocmVmPSJodHRwOi8vbW9kZWxiYXNlZC5uZXQvZWNtZGEtdHJhY2VhYmlsaXR5L2ltYWdlcy9wYXBlcnMvMl9ka29sb3Zvcy50cmFjZWFiaWxpdHkwNi5jYW1lcmEtcmVhZHkucGRmIj4obGluayk8L2E+CgkJCQk8L2xpPiAgICAgICAgICAgICAgICAgICAgCgkJCQk8cC8+CgkJCQk8bGk+CiAgICAgICAgICAgICAgICAgIFs8YSBocmVmPSJodHRwOi8vd3d3LnNjaWVuY2VzLnVuaXYtbmFudGVzLmZyL2xpbmEvYXRsL2JpYmxpb2dyYXBoeS9leHRfRUNNREEwNmIiPkVDTURBMDZiPC9hPl0KICAgICAgICAgICAgICAgICAgICAgIEtvbG92b3MsIERTLCBQYWlnZSwgUkYsIGFuZCBQb2xhY2ssIEZBIDoKICAgICAgICAgICAgICAgICAgICBUaGUgRXBzaWxvbiBPYmplY3QgTGFuZ3VhZ2UgKEVPTCkuCiAgICAgICAgICAgICAgICAgICAgICBJbiBwcm9jLiBvZiBFdXJvcGVhbiBDb25mZXJlbmNlIGluIE1vZGVsIERyaXZlbiBBcmNoaXRlY3R1cmUgKEVDLU1EQSkgQmlsYmFvLCBTcGFpbjoxMjgtMTQyLgogICAgICAgICAgICAgICAgICAgICAgMjAwNi4KICAgICAgICAgICAgICAgICAgICA8YSBocmVmPSJodHRwOi8vd3d3LnNwcmluZ2VybGluay5jb20vY29udGVudC9yMjYyNDY4OTYyMDE3MjY2LyI+KGxpbmspPC9hPiAKCQkJPC9saT4gICAgICAgICAgICAgIAoJCQk8cC8+CgkJCQoJCQk8aDQ+MjAwNTwvaDQ+CgkJCQoJCQk8bGk+CgkJCSAgICAgICBbPGEgaHJlZj0iaHR0cDovL3d3dy5zY2llbmNlcy51bml2LW5hbnRlcy5mci9saW5hL2F0bC9iaWJsaW9ncmFwaHkvZXh0X01EV0UwNSI+TURXRTA1PC9hPl0KICAgICAgICAgICAgICAgICAgICAgIFJlaXRlciwgVCwgS2Fwc2FtbWVyLCBFLCBSZXRzY2hpdHplZ2dlciAsIFcsIGFuZCBTY2h3aW5nZXIsIFcgOgogICAgICAgICAgICAgICAgICAgIE1vZGVsIEludGVncmF0aW9uIFRocm91Z2ggTWVnYSBPcGVyYXRpb25zLgogICAgICAgICAgICAgICAgICAgICAgV29ya3Nob3Agb24gTW9kZWwtZHJpdmVuIFdlYiBFbmdpbmVlcmluZyAoMjAwNSkuCiAgICAgICAgICAgICAgICAgICAgICAyMDA1LgogICAgICAgICAgICAgICAgICAgIDxhIGhyZWY9Imh0dHA6Ly93d3cubGNjLnVtYS5lcy9+YXYvbWR3ZTIwMDUvY2FtZXJhLXJlYWR5LzMtTURXRTIwMDVfTWVnYU9wZXJhdGlvbnNfQ2FtZXJhUmVhZHkucGRmIj4obGluayk8L2E+IAoJCQk8L2xpPgoJCQkgPHAvPgkJCSAgICAgICAgICAgICAgCgkJCTxsaT4KICAgICAgICAgICAgICAgICAgWzxhIGhyZWY9Imh0dHA6Ly93d3cuc2NpZW5jZXMudW5pdi1uYW50ZXMuZnIvbGluYS9hdGwvYmlibGlvZ3JhcGh5L2V4dF9NT0RFTFMwNWEiPk1PREVMUzA1YTwvYT5dCiAgICAgICAgICAgICAgICAgICAgICBNdXJ6ZWssIE0sIEthcHBlbCwgRywgYW5kIEtyYW1sZXIsIEcgOgogICAgICAgICAgICAgICAgICAgIE1vZGVsIFRyYW5zZm9ybWF0aW9ucyBpbiBQcmFjdGljZSBVc2luZyB0aGUgQk9DIE1vZGVsIFRyYW5zZm9ybWVyIC4KICAgICAgICAgICAgICAgICAgICAgIEluIHByb2MuIG9mIFdvcmtzaG9wICYjODIyMDtNb2RlbCBUcmFuc2Zvcm1hdGlvbiBpbiBQcmFjdGljZSYjODIyMTsgYXQgTW9ERUxTIDIwMDUsIE1vbnRlZ28gQmF5LCBKYW1haWNhLgogICAgICAgICAgICAgICAgICAgICAgMjAwNS4KICAgICAgICAgICAgICAgICAgICA8YSBocmVmPSJodHRwOi8vd3d3LndpdC5hdC9wZW9wbGUvbXVyemVrL3B1YmxpY2F0aW9ucy8yMDA1MTAwM19NVElQX3VzaW5nX0JNVC5wZGYiPihsaW5rKTwvYT4gCiAgICAgICAgICAgICA8L2xpPgogICAgICAgICAgICAgPHAvPgogICAgICAgICAgICAgPGxpPgogICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgIFs8YSBocmVmPSJodHRwOi8vd3d3LnNjaWVuY2VzLnVuaXYtbmFudGVzLmZyL2xpbmEvYXRsL2JpYmxpb2dyYXBoeS9leHRfSkZETFBBMDUiPkpGRExQQTA1PC9hPl0KICAgICAgICAgICAgICAgICAgICAgIENyZXNjZW56byAsIFAsIGFuZCBMYWhpcmUsIFAgOgogICAgICAgICAgICAgICAgICAgIFVuZSBhcHByb2NoZSBwb3VyIGFt6Wxpb3JlciBsYSBy6XV0aWxpc2FiaWxpdOkgZGVzIG1vZOhsZXMgbel0aWVycy4KICAgICAgICAgICAgICAgICAgICAgIDLobWUgSm91cm7pZSBGcmFuY29waG9uZSBzdXIgbGUgROl2ZWxvcHBlbWVudCBkZSBMb2dpY2llbHMgUGFyIEFzcGVjdHMgKEpGRExQQSAyMDA1KS48L3NwYW4+CiAgICAgICAgICAgICAgICAgICAgICAyMDA1LgogICAgICAgICAgICAgICAgICAgIDxhIGhyZWY9Imh0dHA6Ly93d3cyLmxpZmwuZnIvamZkbHBhMDUvY3Jlc2NlbnpvLnBkZiI+KGxpbmspPC9hPiAKCQkJCTwvbGk+ICAgICAgICAgICAgICAKICAgICAgICAgICAgIDxwLz4KICAgICAgICAgICAgICA8bGk+CiAgICAgICAgICAgICAgICAgIFs8YSBocmVmPSJodHRwOi8vd3d3LnNjaWVuY2VzLnVuaXYtbmFudGVzLmZyL2xpbmEvYXRsL2JpYmxpb2dyYXBoeS9leHRfR1JBWklBREVJMDUiPkdSQVpJQURFSTA1PC9hPl0KICAgICAgICAgICAgICAgICAgICAgIEdyYXppYWRlaSwgVFIgOgogICAgICAgICAgICAgICAgICAgICBBc3BlY3QgT3JpZW50ZWQgTW9kZWwgV2VhdmVyIC4KICAgICAgICAgICAgICAgICAgICAgIE1hc3RlcnMgdGhlc2lzLCBGYWNoaG9jaHNjaHVsZSBWb3JhcmxiZXJnIEdtYkguIEluIHRoZSBEZWdyZWUgUHJvZ3JhbS48L3NwYW4+CiAgICAgICAgICAgICAgICAgICAgICAyMDA1LgogICAgICAgICAgICAgICAgICAgIDxhIGhyZWY9Imh0dHA6Ly93d3cyLmFsdW1uaS5maC12b3JhcmxiZXJnLmFjLmF0L350Z3I4MzQ1L3RoZXNpcy9UaGVzaXMucGRmICI+KGxpbmspPC9hPiAKCQkJCTwvbGk+CiAgICAgICAgICAgICA8cC8+CgkJPC91bD4KCQk8cC8+CgoJPC9kaXY+CgkKRU9IVE1MOwoKCgkjIEdlbmVyYXRlIHRoZSB3ZWIgcGFnZQoJJEFwcC0+Z2VuZXJhdGVQYWdlKCR0aGVtZSwgJE1lbnUsICROYXYsICRwYWdlQXV0aG9yLCAkcGFnZUtleXdvcmRzLCAkcGFnZVRpdGxlLCAkaHRtbCk7Cj8+Cg==