ZGlmZiAtLWdpdCBhLzBfOV8wL3BvbS54bWwgYi8wXzlfMC9wb20ueG1sCmluZGV4IDJhZjljNjguLjcxN2VhY2QgMTAwNjQ0Ci0tLSBhLzBfOV8wL3BvbS54bWwKKysrIGIvMF85XzAvcG9tLnhtbApAQCAtNzAsNyArNzAsNiBAQAogICAgIDxpbmNlcHRpb25ZZWFyPjIwMTA8L2luY2VwdGlvblllYXI+DQogDQogICAgIDxtb2R1bGVzPg0KLSAgICAgICAgPG1vZHVsZT5zaXRlPC9tb2R1bGU+DQogICAgICAgICA8bW9kdWxlPm1hdmVuLXV0aWxzPC9tb2R1bGU+DQogICAgICAgICA8bW9kdWxlPmNvcmU8L21vZHVsZT4NCiAgICAgICAgIDxtb2R1bGU+amVlLW1vZHVsZXM8L21vZHVsZT4NCmRpZmYgLS1naXQgYS8wXzlfMC9zaXRlL3BvbS54bWwgYi8wXzlfMC9zaXRlL3BvbS54bWwKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDIwNDVhYzEuLjAwMDAwMDAKLS0tIGEvMF85XzAvc2l0ZS9wb20ueG1sCisrKyAvZGV2L251bGwKQEAgLTEsNDEgKzAsMCBAQAotPD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiPz4NCi08IS0tDQotICAgIExpY2Vuc2VkIHRvIHRoZSBBcGFjaGUgU29mdHdhcmUgRm91bmRhdGlvbiAoQVNGKSB1bmRlciBvbmUNCi0gICAgb3IgbW9yZSBjb250cmlidXRvciBsaWNlbnNlIGFncmVlbWVudHMuICBTZWUgdGhlIE5PVElDRSBmaWxlDQotICAgIGRpc3RyaWJ1dGVkIHdpdGggdGhpcyB3b3JrIGZvciBhZGRpdGlvbmFsIGluZm9ybWF0aW9uDQotICAgIHJlZ2FyZGluZyBjb3B5cmlnaHQgb3duZXJzaGlwLiAgVGhlIEFTRiBsaWNlbnNlcyB0aGlzIGZpbGUNCi0gICAgdG8geW91IHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZQ0KLSAgICAiTGljZW5zZSIpOyB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlDQotICAgIHdpdGggdGhlIExpY2Vuc2UuICBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXQNCi0NCi0gICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wDQotDQotICAgIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywNCi0gICAgc29mdHdhcmUgZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4NCi0gICAgIkFTIElTIiBCQVNJUywgV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZDQotICAgIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuICBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZQ0KLSAgICBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kIGxpbWl0YXRpb25zDQotICAgIHVuZGVyIHRoZSBMaWNlbnNlLg0KLS0tPg0KLTwhLS0NCi0gIC0gUGFyZW50IHBvbSBvZiBhbGwgdGhlIG15ZmFjZXMgZXh0ZW5zaW9ucyBjZGkgc3VicHJvamVjdHMgDQotICAgIHRoYXQgaGVscCB0byBidWlsZCBvdGhlciBteWZhY2VzIHByb2plY3RzLg0KLSAgLS0+DQotPHByb2plY3QgeG1sbnM9Imh0dHA6Ly9tYXZlbi5hcGFjaGUub3JnL1BPTS80LjAuMCINCi0gICAgICAgICB4bWxuczp4c2k9Imh0dHA6Ly93d3cudzMub3JnLzIwMDEvWE1MU2NoZW1hLWluc3RhbmNlIg0KLSAgICAgICAgIHhzaTpzY2hlbWFMb2NhdGlvbj0iaHR0cDovL21hdmVuLmFwYWNoZS5vcmcvUE9NLzQuMC4wIGh0dHA6Ly9tYXZlbi5hcGFjaGUub3JnL21hdmVuLXY0XzBfMC54c2QiPg0KLSAgICA8bW9kZWxWZXJzaW9uPjQuMC4wPC9tb2RlbFZlcnNpb24+DQotDQotICAgIDxwYXJlbnQ+DQotICAgICAgICA8Z3JvdXBJZD5vcmcuYXBhY2hlLm15ZmFjZXMuZXh0ZW5zaW9ucy5jZGk8L2dyb3VwSWQ+DQotICAgICAgICA8YXJ0aWZhY3RJZD5teWZhY2VzLWV4dGNkaS1wYXJlbnQ8L2FydGlmYWN0SWQ+DQotICAgICAgICA8dmVyc2lvbj4xLjAuMC1TTkFQU0hPVDwvdmVyc2lvbj4NCi0gICAgPC9wYXJlbnQ+DQotDQotICAgIDxncm91cElkPm9yZy5hcGFjaGUubXlmYWNlcy5leHRlbnNpb25zLmNkaTwvZ3JvdXBJZD4NCi0gICAgPGFydGlmYWN0SWQ+bXlmYWNlcy1leHRjZGktc2l0ZTwvYXJ0aWZhY3RJZD4NCi0gICAgPHBhY2thZ2luZz5wb208L3BhY2thZ2luZz4NCi0gICAgPG5hbWU+QXBhY2hlIE15RmFjZXMgRXh0ZW5zaW9ucy1DREkgU2l0ZSBQcm9qZWN0PC9uYW1lPg0KLSAgICA8dXJsPmh0dHA6Ly9teWZhY2VzLmFwYWNoZS5vcmcvZXh0ZW5zaW9ucy9DREk8L3VybD4NCi0NCi08L3Byb2plY3Q+DQpkaWZmIC0tZ2l0IGEvMF85XzAvc2l0ZS9zcmMvc2l0ZS9hcHQvaW5kZXguYXB0IGIvMF85XzAvc2l0ZS9zcmMvc2l0ZS9hcHQvaW5kZXguYXB0CmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBiNTc3ZDFjLi4wMDAwMDAwCi0tLSBhLzBfOV8wL3NpdGUvc3JjL3NpdGUvYXB0L2luZGV4LmFwdAorKysgL2Rldi9udWxsCkBAIC0xLDcgKzAsMCBAQAotIC0tLS0tLQ0KLU92ZXJ2aWV3DQotIC0tLS0tLQ0KLQ0KLUFwYWNoZSBNeUZhY2VzIEV4dGVuc2lvbnMgQ0RJIGZvciBKU0YgMS4yDQotDQotICBBcGFjaGUgTXlGYWNlcyBFeHRlbnNpb25zIENESSBwcm92aWRlcyB2ZXJzaW9ucyBmb3IgSlNGIDEuMisNCmRpZmYgLS1naXQgYS8wXzlfMC9zaXRlL3NyYy9zaXRlL2FwdC9qYXZhZG9jLmFwdCBiLzBfOV8wL3NpdGUvc3JjL3NpdGUvYXB0L2phdmFkb2MuYXB0CmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA1MWQ1ZmQ5Li4wMDAwMDAwCi0tLSBhLzBfOV8wL3NpdGUvc3JjL3NpdGUvYXB0L2phdmFkb2MuYXB0CisrKyAvZGV2L251bGwKQEAgLTEsMTEgKzAsMCBAQAotIC0tLS0tLQ0KLUphdmFkb2MNCi0gLS0tLS0tDQotDQotSmF2YWRvYw0KLQ0KLSAgICBIZXJlIHlvdSBjYW4gZmluZCB0aGUgamF2YWRvYyBvZiBwcmV2aW91cyBDT0RJIHZlcnNpb25zLg0KLQ0KLSAgICAqIHt7e2h0dHA6Ly9teWZhY2VzLmFwYWNoZS5vcmcvZXh0ZW5zaW9ucy9jZGkxMi9teWZhY2VzLUNPREktY29yZS9hcGlkb2NzLTEuMi4xL2luZGV4Lmh0bWx9TXlmYWNlcyBDT0RJIENvcmUgVmVyc2lvbiAxLjIuMX19DQotDQotICAgICoge3t7aHR0cDovL215ZmFjZXMuYXBhY2hlLm9yZy9leHRlbnNpb25zL2NkaTEyL3ZhbGlkYXRpb24tbW9kdWxlcy1wcm9qZWN0L215ZmFjZXMtQ09ESS1qc2YtbW9kdWxlL2FwaWRvY3MtMS4yLjEvaW5kZXguaHRtbH1NeWZhY2VzIENPREkgVmVyc2lvbiAxLjIuMX19DQpkaWZmIC0tZ2l0IGEvMF85XzAvc2l0ZS9zcmMvc2l0ZS9zaXRlLnhtbCBiLzBfOV8wL3NpdGUvc3JjL3NpdGUvc2l0ZS54bWwKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGU1YTRmZjMuLjAwMDAwMDAKLS0tIGEvMF85XzAvc2l0ZS9zcmMvc2l0ZS9zaXRlLnhtbAorKysgL2Rldi9udWxsCkBAIC0xLDc4ICswLDAgQEAKLTw/eG1sIHZlcnNpb249IjEuMCIgZW5jb2Rpbmc9IklTTy04ODU5LTEiPz4NCi08IS0tDQotICogTGljZW5zZWQgdG8gdGhlIEFwYWNoZSBTb2Z0d2FyZSBGb3VuZGF0aW9uIChBU0YpIHVuZGVyIG9uZSBvciBtb3JlDQotICogY29udHJpYnV0b3IgbGljZW5zZSBhZ3JlZW1lbnRzLiAgU2VlIHRoZSBOT1RJQ0UgZmlsZSBkaXN0cmlidXRlZCB3aXRoDQotICogdGhpcyB3b3JrIGZvciBhZGRpdGlvbmFsIGluZm9ybWF0aW9uIHJlZ2FyZGluZyBjb3B5cmlnaHQgb3duZXJzaGlwLg0KLSAqIFRoZSBBU0YgbGljZW5zZXMgdGhpcyBmaWxlIHRvIFlvdSB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wDQotICogKHRoZSAiTGljZW5zZSIpOyB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGgNCi0gKiB0aGUgTGljZW5zZS4gIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdA0KLSAqDQotICogICAgICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjANCi0gKg0KLSAqIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmUNCi0gKiBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiAiQVMgSVMiIEJBU0lTLA0KLSAqIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLg0KLSAqIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmQNCi0gKiBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS4NCi0tLT4NCi0NCi08cHJvamVjdCBuYW1lPSJBcGFjaGUgTXlGYWNlcyBFeHRlbnNpb25zIFZhbGlkYXRvciI+DQotICA8YmFubmVyTGVmdD4NCi0gICAgPG5hbWU+QXBhY2hlIE15RmFjZXMgRXh0VmFsPC9uYW1lPg0KLSAgICA8c3JjPmltYWdlcy9leHR2YWxfbG9nby5wbmc8L3NyYz4NCi0gICAgPGhyZWY+aHR0cDovL215ZmFjZXMuYXBhY2hlLm9yZy9leHRlbnNpb25zL3ZhbGlkYXRvci9pbmRleC5odG1sPC9ocmVmPg0KLSAgPC9iYW5uZXJMZWZ0Pg0KLQ0KLSAgPGJhbm5lclJpZ2h0Pg0KLSAgICA8bmFtZT5BcGFjaGUgTXlGYWNlczwvbmFtZT4NCi0gICAgPHNyYz5pbWcvYmFubmVycy9NeUZhY2VzX2xvZ28uanBnPC9zcmM+DQotICAgIDxocmVmPmh0dHA6Ly9teWZhY2VzLmFwYWNoZS5vcmcvaW5kZXguaHRtbDwvaHJlZj4NCi0gIDwvYmFubmVyUmlnaHQ+DQotDQotICA8cHVibGlzaERhdGUgZm9ybWF0PSJkZCBNTU0geXl5eSIvPg0KLQ0KLSAgPHNraW4+DQotICAgIDxncm91cElkPm9yZy5hcGFjaGUubXlmYWNlcy5tYXZlbjwvZ3JvdXBJZD4NCi0gICAgPGFydGlmYWN0SWQ+bXlmYWNlcy1zaXRlLXNraW48L2FydGlmYWN0SWQ+DQotICAgIDx2ZXJzaW9uPjEtU05BUFNIT1Q8L3ZlcnNpb24+DQotICA8L3NraW4+DQotDQotICA8Ym9keT4NCi0gICAgPGxpbmtzPg0KLSAgICAgIDxpdGVtIG5hbWU9IkFwYWNoZSIgaHJlZj0iaHR0cDovL3d3dy5hcGFjaGUub3JnIi8+DQotICAgICAgPGl0ZW0gbmFtZT0iTXlGYWNlcyIgaHJlZj0iaHR0cDovL215ZmFjZXMuYXBhY2hlLm9yZy9pbmRleC5odG1sIi8+DQotICAgICAgPGl0ZW0gbmFtZT0iRG93bmxvYWQgTXlmYWNlcyBFeHRWYWwiIGhyZWY9Imh0dHA6Ly9teWZhY2VzLmFwYWNoZS5vcmcvZXh0ZW5zaW9ucy92YWxpZGF0b3IvZG93bmxvYWQuaHRtbCIvPg0KLSAgICA8L2xpbmtzPg0KLQ0KLSAgICA8bWVudSBuYW1lPSJBcGFjaGUgTXlGYWNlcyIgaW5oZXJpdD0idG9wIj4NCi0gICAgICA8aXRlbSBuYW1lPSJPdmVydmlldyIgICAgICAgaHJlZj0iaHR0cDovL215ZmFjZXMuYXBhY2hlLm9yZy9pbmRleC5odG1sIi8+DQotICAgICAgPGl0ZW0gbmFtZT0iRG93bmxvYWQiICAgICAgIGhyZWY9Imh0dHA6Ly9teWZhY2VzLmFwYWNoZS5vcmcvZG93bmxvYWQuaHRtbCIvPg0KLSAgICA8L21lbnU+DQotDQotICAgIDxtZW51IG5hbWU9IkNvbnRlbnRzIiBpbmhlcml0PSJ0b3AiPg0KLSAgICAgICAgPGl0ZW0gbmFtZT0iTWFpbiBTaXRlIiAgICAgICAgIGhyZWY9Imh0dHA6Ly9teWZhY2VzLmFwYWNoZS5vcmcvZXh0ZW5zaW9ucy92YWxpZGF0b3IvaW5kZXguaHRtbCIvPg0KLSAgICAgICAgPGl0ZW0gbmFtZT0iRXh0VmFsIGZvciBKU0YgMS4xIiAgICAgICBocmVmPSJodHRwOi8vbXlmYWNlcy5hcGFjaGUub3JnL2V4dGVuc2lvbnMvdmFsaWRhdG9yMTEvaW5kZXguaHRtbCIgY29sbGFwc2U9InRydWUiPg0KLSAgICAgICAgICAgIDxpdGVtIG5hbWU9ImR1bW15IiAgICAgICAgaHJlZj0iZHVtbXkiLz4NCi0gICAgICAgIDwvaXRlbT4NCi0gICAgICAgIDxpdGVtIG5hbWU9IkV4dFZhbCBmb3IgSlNGIDEuMiIgICBocmVmPSJodHRwOi8vbXlmYWNlcy5hcGFjaGUub3JnL2V4dGVuc2lvbnMvdmFsaWRhdG9yMTIvaW5kZXguaHRtbCI+DQotICAgICAgICAgICAgICA8aXRlbSBuYW1lPSJDb3JlIE1vZHVsZSIgICAgICAgICAgIGhyZWY9Imh0dHA6Ly9teWZhY2VzLmFwYWNoZS5vcmcvZXh0ZW5zaW9ucy92YWxpZGF0b3IxMi9teWZhY2VzLWV4dHZhbC1jb3JlL2luZGV4Lmh0bWwiLz4NCi0gICAgICAgICAgICAgIDxpdGVtIG5hbWU9IlByb3BlcnR5IFZhbGlkYXRpb24iICAgaHJlZj0iaHR0cDovL215ZmFjZXMuYXBhY2hlLm9yZy9leHRlbnNpb25zL3ZhbGlkYXRvcjEyL3ZhbGlkYXRpb24tbW9kdWxlcy1wcm9qZWN0L215ZmFjZXMtZXh0dmFsLXByb3BlcnR5LXZhbGlkYXRpb24vaW5kZXguaHRtbCIvPg0KLSAgICAgICAgICAgICAgPGl0ZW0gbmFtZT0iVHJpbmlkYWQgU3VwcG9ydCIgICAgICBocmVmPSJodHRwOi8vbXlmYWNlcy5hcGFjaGUub3JnL2V4dGVuc2lvbnMvdmFsaWRhdG9yMTIvY29tcG9uZW50LXN1cHBvcnQtbW9kdWxlcy1wcm9qZWN0L215ZmFjZXMtZXh0dmFsLXRyaW5pZGFkLXN1cHBvcnQvaW5kZXguaHRtbCIvPg0KLSAgICAgICAgICAgICAgPGl0ZW0gbmFtZT0iR2VuZXJpYyBTdXBwb3J0IiAgICAgICBocmVmPSJodHRwOi8vbXlmYWNlcy5hcGFjaGUub3JnL2V4dGVuc2lvbnMvdmFsaWRhdG9yMTIvY29tcG9uZW50LXN1cHBvcnQtbW9kdWxlcy1wcm9qZWN0L215ZmFjZXMtZXh0dmFsLWdlbmVyaWMtc3VwcG9ydC9pbmRleC5odG1sIi8+DQotICAgICAgICA8L2l0ZW0+DQotICAgIDwvbWVudT4NCi0JDQotICAgIDxtZW51IG5hbWU9IkRvY3VtZW50YXRpb24iPg0KLSAgICAgIDxpdGVtIG5hbWU9Ildpa2kiICAgICAgICAgaHJlZj0iaHR0cDovL3dpa2kuYXBhY2hlLm9yZy9teWZhY2VzL0V4dGVuc2lvbnMvVmFsaWRhdG9yLyIvPg0KLSAgICAgIDxpdGVtIG5hbWU9IkphdmFkb2MiICAgICAgaHJlZj0iaHR0cDovL215ZmFjZXMuYXBhY2hlLm9yZy9leHRlbnNpb25zL3ZhbGlkYXRvcjEyL2phdmFkb2MuaHRtbCIvPg0KLSAgICA8L21lbnU+DQotDQotICAgIDxtZW51IHJlZj0icmVwb3J0cyIvPg0KLQ0KLSAgICA8bWVudSBuYW1lPSJGb3VuZGF0aW9uIiBpbmhlcml0PSJib3R0b20iPg0KLSAgICAgIDxpdGVtIG5hbWU9IkFTRiIgICAgICAgICAgICBocmVmPSJodHRwOi8vd3d3LmFwYWNoZS5vcmcvIiAvPg0KLSAgICAgIDxpdGVtIG5hbWU9IlNwb25zb3JzaGlwIiAgICBocmVmPSJodHRwOi8vd3d3LmFwYWNoZS5vcmcvZm91bmRhdGlvbi9zcG9uc29yc2hpcC5odG1sIiAvPg0KLSAgICAgIDxpdGVtIG5hbWU9IlRoYW5rcyIgICAgICAgICBocmVmPSJodHRwOi8vd3d3LmFwYWNoZS5vcmcvZm91bmRhdGlvbi90aGFua3MuaHRtbCIgLz4NCi0gICAgPC9tZW51Pg0KLSAgPC9ib2R5Pg0KLTwvcHJvamVjdD4NCmRpZmYgLS1naXQgYS8wXzlfMC9zcmMvc2l0ZS9hcHQvaW5kZXguYXB0IGIvMF85XzAvc3JjL3NpdGUvYXB0L2luZGV4LmFwdApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4xMDYzYTIzCi0tLSAvZGV2L251bGwKKysrIGIvMF85XzAvc3JjL3NpdGUvYXB0L2luZGV4LmFwdApAQCAtMCwwICsxLDE4IEBACisgLS0tLS0tDQorIE15ZmFjZXMgQ09ESQ0KKyAtLS0tLS0NCisNCitEZXNjcmlwdGlvbg0KKw0KKyAgTXlGYWNlcyBDT0RJIGlzIHlvdXIgYmVzdCBmcmllbmQgZm9yIENESSBiYXNlZCBwcm9qZWN0cy4NCisNCisgIFRoZSBBcGFjaGUgTXlGYWNlcyBFeHRlbnNpb25zIENESSBwcm9qZWN0IChha2EgQ09ESSkgaG9zdHMgcG9ydGFibGUgZXh0ZW5zaW9ucyBmb3IgQ29udGV4dHMNCisgIGFuZCBEZXBlbmRlbmN5IEluamVjdGlvbiAoQ0RJIC0gSlNSIDI5OSkgZm9yIHRoZSBKYXZhLVBsYXRmb3JtIChTRSBhbmQgRUUpLiBDT0RJIGlzIGEgdG9vbGJveA0KKyAgZm9yIHlvdXIgQ0RJIGFwcGxpY2F0aW9uIChpdCBwcm92aWRlcyBhZHZhbmNlZCBhbmQgY29udmVuaWVudCBmZWF0dXJlcyBlLmcuIGZvciBKU0YgYW5kIEJlYW4tVmFsaWRhdGlvbikuDQorICBMaWtlIENESSBpdHNlbGYgQ09ESSBpcyBmb2N1c2VkIG9uIHR5cGUtc2FmZXR5LiBJdCBpcyBhIG1vZHVsYXJpemVkIGFuZCBleHRlbnNpYmxlIGZyYW1ld29yay4NCisgIFNvIGl01XMgZWFzeSB0byBjaG9vc2UgdGhlIG5lZWRlZCBwYXJ0cyB0byBmYWNpbGl0YXRlIHRoZSBkYWlseSB3b3JrIGluIHlvdXIgcHJvamVjdC4NCisNCisgIFRoZSBtYWluIGZvY3VzIGlzIHRvIHByb3ZpZGUgc3VwZXJpb3IgdG9vbHMgd2hpY2ggd2lsbCBzdXBwb3J0IHlvdSBvbiBzb2x2aW5nIHlvdXIgZGFpbHkgbmVlZHMgb2Ygc29mdHdhcmUNCisgIGRldmVsb3BtZW50IHdpdGggQ0RJLCBKU0YsIEJWIGFuZCBKUEEuIEhvd2V2ZXIsIHlvdSB3aWxsIGFsc28gZmluZCBtb2R1bGVzIHdoaWNoIGFyZSBpbmRlcGVuZGVudCBvZiBKU0YgYXMNCisgIHdlbGwgYXMgbW9kdWxlcyB3aGljaCBpbXByb3ZlIHRoZSBjb21wYXRpYmlsaXR5IHdpdGggb3RoZXIgTXlGYWNlcyBmcmFtZXdvcmtzIGxpa2UgTXlGYWNlcyBFeHRWYWwuIE1heWJlDQorICB0aGUgbW9zdCBpbXBvcnRhbnQgZmVhdHVyZSBvZiBNeUZhY2VzIENPREkgaXMgdGhhdCBpdCBhbGxvd3MgeW91IHRvIGJ1aWxkIGEgY29uY2lzZSBhbmQgZWZmaWNpZW50IGFwcGxpY2F0aW9uLWFyY2hpdGVjdHVyZS4NCmRpZmYgLS1naXQgYS8wXzlfMC9zcmMvc2l0ZS9zaXRlLnhtbCBiLzBfOV8wL3NyYy9zaXRlL3NpdGUueG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmYyYmNlZjQKLS0tIC9kZXYvbnVsbAorKysgYi8wXzlfMC9zcmMvc2l0ZS9zaXRlLnhtbApAQCAtMCwwICsxLDY5IEBACis8P3htbCB2ZXJzaW9uPSIxLjAiIGVuY29kaW5nPSJJU08tODg1OS0xIj8+DQorPCEtLQ0KKyAqIExpY2Vuc2VkIHRvIHRoZSBBcGFjaGUgU29mdHdhcmUgRm91bmRhdGlvbiAoQVNGKSB1bmRlciBvbmUgb3IgbW9yZQ0KKyAqIGNvbnRyaWJ1dG9yIGxpY2Vuc2UgYWdyZWVtZW50cy4gIFNlZSB0aGUgTk9USUNFIGZpbGUgZGlzdHJpYnV0ZWQgd2l0aA0KKyAqIHRoaXMgd29yayBmb3IgYWRkaXRpb25hbCBpbmZvcm1hdGlvbiByZWdhcmRpbmcgY29weXJpZ2h0IG93bmVyc2hpcC4NCisgKiBUaGUgQVNGIGxpY2Vuc2VzIHRoaXMgZmlsZSB0byBZb3UgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMA0KKyAqICh0aGUgIkxpY2Vuc2UiKTsgeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoDQorICogdGhlIExpY2Vuc2UuICBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXQNCisgKg0KKyAqICAgICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wDQorICoNCisgKiBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlDQorICogZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gIkFTIElTIiBCQVNJUywNCisgKiBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC4NCisgKiBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kDQorICogbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuDQorLS0+DQorDQorPHByb2plY3QgbmFtZT0iQXBhY2hlIE15RmFjZXMgRXh0ZW5zaW9ucyBDREkiPg0KKyAgICANCisgICAgPGJhbm5lckxlZnQ+DQorICAgICAgICA8bmFtZT5BcGFjaGUgTXlGYWNlcyBDT0RJPC9uYW1lPg0KKyAgICAgICAgPHNyYz5pbWcvYmFubmVycy9NeUZhY2VzX2xvZ28uanBnPC9zcmM+DQorICAgICAgICA8aHJlZj5odHRwOi8vbXlmYWNlcy5hcGFjaGUub3JnL2V4dGVuc2lvbnMvY2RpL2luZGV4Lmh0bWw8L2hyZWY+DQorICAgIDwvYmFubmVyTGVmdD4NCisNCisgICAgPGJhbm5lclJpZ2h0Pg0KKyAgICAgICAgPG5hbWU+QXBhY2hlIEJhbm5lcjwvbmFtZT4NCisgICAgICAgIDxzcmM+aW1nL2Jhbm5lcnMvYXBhY2hlX2Jhbm5lci5wbmc8L3NyYz4NCisgICAgICAgIDxocmVmPmh0dHA6Ly93d3cuYXBhY2hlLm9yZzwvaHJlZj4NCisgICAgPC9iYW5uZXJSaWdodD4NCisNCisgICAgPHB1Ymxpc2hEYXRlIGZvcm1hdD0iZGQgTU1NIHl5eXkiIC8+DQorDQorICAgIDxza2luPg0KKyAgICAgICAgPGdyb3VwSWQ+b3JnLmFwYWNoZS5teWZhY2VzLm1hdmVuPC9ncm91cElkPg0KKyAgICAgICAgPGFydGlmYWN0SWQ+bXlmYWNlcy1zaXRlLXNraW48L2FydGlmYWN0SWQ+DQorICAgICAgICA8dmVyc2lvbj4xPC92ZXJzaW9uPg0KKyAgICA8L3NraW4+DQorDQorICAgIDxib2R5Pg0KKyAgICAgICAgPGxpbmtzPg0KKyAgICAgICAgICAgIDxpdGVtIG5hbWU9IkFwYWNoZSIgaHJlZj0iaHR0cDovL3d3dy5hcGFjaGUub3JnIi8+DQorICAgICAgICAgICAgPGl0ZW0gbmFtZT0iTXlGYWNlcyIgaHJlZj0iaHR0cDovL215ZmFjZXMuYXBhY2hlLm9yZy9pbmRleC5odG1sIi8+DQorICAgICAgICAgICAgPGl0ZW0gbmFtZT0iRG93bmxvYWQgTXlmYWNlcyBFeHRWYWwiIGhyZWY9Imh0dHA6Ly9teWZhY2VzLmFwYWNoZS5vcmcvZXh0ZW5zaW9ucy92YWxpZGF0b3IvZG93bmxvYWQuaHRtbCIvPg0KKyAgICAgICAgPC9saW5rcz4NCisNCisgICAgICAgIDxtZW51IG5hbWU9IkFwYWNoZSBNeUZhY2VzIiBpbmhlcml0PSJ0b3AiPg0KKyAgICAgICAgICAgIDxpdGVtIG5hbWU9Ik92ZXJ2aWV3IiBocmVmPSJodHRwOi8vbXlmYWNlcy5hcGFjaGUub3JnL2luZGV4Lmh0bWwiLz4NCisgICAgICAgICAgICA8aXRlbSBuYW1lPSJEb3dubG9hZCIgaHJlZj0iaHR0cDovL215ZmFjZXMuYXBhY2hlLm9yZy9kb3dubG9hZC5odG1sIi8+DQorICAgICAgICA8L21lbnU+DQorDQorICAgICAgICA8bWVudSBuYW1lPSJDb250ZW50cyIgaW5oZXJpdD0idG9wIj4NCisgICAgICAgICAgICA8aXRlbSBuYW1lPSJNYWluIFNpdGUiIGhyZWY9Imh0dHA6Ly9teWZhY2VzLmFwYWNoZS5vcmcvZXh0ZW5zaW9ucy9jZGkvaW5kZXguaHRtbCIvPg0KKyAgICAgICAgPC9tZW51Pg0KKw0KKyAgICAgICAgPG1lbnUgbmFtZT0iRG9jdW1lbnRhdGlvbiI+DQorICAgICAgICAgICAgPGl0ZW0gbmFtZT0iV2lraSIgaHJlZj0iaHR0cHM6Ly9jd2lraS5hcGFjaGUub3JnL2NvbmZsdWVuY2UvZGlzcGxheS9FWFRDREkvSW5kZXgiLz4NCisgICAgICAgIDwvbWVudT4NCisNCisgICAgICAgIDxtZW51IHJlZj0icmVwb3J0cyIvPg0KKw0KKyAgICAgICAgPG1lbnUgbmFtZT0iRm91bmRhdGlvbiIgaW5oZXJpdD0iYm90dG9tIj4NCisgICAgICAgICAgPGl0ZW0gbmFtZT0iQVNGIiAgICAgICAgICAgIGhyZWY9Imh0dHA6Ly93d3cuYXBhY2hlLm9yZy8iIC8+DQorICAgICAgICAgIDxpdGVtIG5hbWU9IlNwb25zb3JzaGlwIiAgICBocmVmPSJodHRwOi8vd3d3LmFwYWNoZS5vcmcvZm91bmRhdGlvbi9zcG9uc29yc2hpcC5odG1sIiAvPg0KKyAgICAgICAgICA8aXRlbSBuYW1lPSJUaGFua3MiICAgICAgICAgaHJlZj0iaHR0cDovL3d3dy5hcGFjaGUub3JnL2ZvdW5kYXRpb24vdGhhbmtzLmh0bWwiIC8+DQorICAgICAgICA8L21lbnU+DQorICAgIDwvYm9keT4NCis8L3Byb2plY3Q+DQo=