ZGlmZiAtLWdpdCBhL2J1bmRsZXMvb3JnLmVjbGlwc2UuY2FwcmEuaGFuZGxlci5hcHA0bWMvLmNsYXNzcGF0aCBiL2J1bmRsZXMvb3JnLmVjbGlwc2UuY2FwcmEuaGFuZGxlci5hcHA0bWMvLmNsYXNzcGF0aApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5kMDZiOTQwCi0tLSAvZGV2L251bGwKKysrIGIvYnVuZGxlcy9vcmcuZWNsaXBzZS5jYXByYS5oYW5kbGVyLmFwcDRtYy8uY2xhc3NwYXRoCkBAIC0wLDAgKzEsNyBAQAorPD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiPz4KKzxjbGFzc3BhdGg+CisJPGNsYXNzcGF0aGVudHJ5IGtpbmQ9ImNvbiIgcGF0aD0ib3JnLmVjbGlwc2UuamR0LmxhdW5jaGluZy5KUkVfQ09OVEFJTkVSL29yZy5lY2xpcHNlLmpkdC5pbnRlcm5hbC5kZWJ1Zy51aS5sYXVuY2hlci5TdGFuZGFyZFZNVHlwZS9KYXZhU0UtMS44Ii8+CisJPGNsYXNzcGF0aGVudHJ5IGtpbmQ9InNyYyIgcGF0aD0ic3JjIi8+CisJPGNsYXNzcGF0aGVudHJ5IGtpbmQ9ImNvbiIgcGF0aD0ib3JnLmVjbGlwc2UucGRlLmNvcmUucmVxdWlyZWRQbHVnaW5zIi8+CisJPGNsYXNzcGF0aGVudHJ5IGtpbmQ9Im91dHB1dCIgcGF0aD0iYmluIi8+Cis8L2NsYXNzcGF0aD4KZGlmZiAtLWdpdCBhL2J1bmRsZXMvb3JnLmVjbGlwc2UuY2FwcmEuaGFuZGxlci5hcHA0bWMvLnByb2plY3QgYi9idW5kbGVzL29yZy5lY2xpcHNlLmNhcHJhLmhhbmRsZXIuYXBwNG1jLy5wcm9qZWN0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjcyYWJmMDIKLS0tIC9kZXYvbnVsbAorKysgYi9idW5kbGVzL29yZy5lY2xpcHNlLmNhcHJhLmhhbmRsZXIuYXBwNG1jLy5wcm9qZWN0CkBAIC0wLDAgKzEsMjggQEAKKzw/eG1sIHZlcnNpb249IjEuMCIgZW5jb2Rpbmc9IlVURi04Ij8+Cis8cHJvamVjdERlc2NyaXB0aW9uPgorCTxuYW1lPm9yZy5lY2xpcHNlLmNhcHJhLmhhbmRsZXIuYXBwNG1jPC9uYW1lPgorCTxjb21tZW50PjwvY29tbWVudD4KKwk8cHJvamVjdHM+CisJPC9wcm9qZWN0cz4KKwk8YnVpbGRTcGVjPgorCQk8YnVpbGRDb21tYW5kPgorCQkJPG5hbWU+b3JnLmVjbGlwc2UuamR0LmNvcmUuamF2YWJ1aWxkZXI8L25hbWU+CisJCQk8YXJndW1lbnRzPgorCQkJPC9hcmd1bWVudHM+CisJCTwvYnVpbGRDb21tYW5kPgorCQk8YnVpbGRDb21tYW5kPgorCQkJPG5hbWU+b3JnLmVjbGlwc2UucGRlLk1hbmlmZXN0QnVpbGRlcjwvbmFtZT4KKwkJCTxhcmd1bWVudHM+CisJCQk8L2FyZ3VtZW50cz4KKwkJPC9idWlsZENvbW1hbmQ+CisJCTxidWlsZENvbW1hbmQ+CisJCQk8bmFtZT5vcmcuZWNsaXBzZS5wZGUuU2NoZW1hQnVpbGRlcjwvbmFtZT4KKwkJCTxhcmd1bWVudHM+CisJCQk8L2FyZ3VtZW50cz4KKwkJPC9idWlsZENvbW1hbmQ+CisJPC9idWlsZFNwZWM+CisJPG5hdHVyZXM+CisJCTxuYXR1cmU+b3JnLmVjbGlwc2UuamR0LmNvcmUuamF2YW5hdHVyZTwvbmF0dXJlPgorCQk8bmF0dXJlPm9yZy5lY2xpcHNlLnBkZS5QbHVnaW5OYXR1cmU8L25hdHVyZT4KKwk8L25hdHVyZXM+Cis8L3Byb2plY3REZXNjcmlwdGlvbj4KZGlmZiAtLWdpdCBhL2J1bmRsZXMvb3JnLmVjbGlwc2UuY2FwcmEuaGFuZGxlci5hcHA0bWMvLnNldHRpbmdzL29yZy5lY2xpcHNlLmpkdC5jb3JlLnByZWZzIGIvYnVuZGxlcy9vcmcuZWNsaXBzZS5jYXByYS5oYW5kbGVyLmFwcDRtYy8uc2V0dGluZ3Mvb3JnLmVjbGlwc2UuamR0LmNvcmUucHJlZnMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uM2EyMTUzNwotLS0gL2Rldi9udWxsCisrKyBiL2J1bmRsZXMvb3JnLmVjbGlwc2UuY2FwcmEuaGFuZGxlci5hcHA0bWMvLnNldHRpbmdzL29yZy5lY2xpcHNlLmpkdC5jb3JlLnByZWZzCkBAIC0wLDAgKzEsMTEgQEAKK2VjbGlwc2UucHJlZmVyZW5jZXMudmVyc2lvbj0xCitvcmcuZWNsaXBzZS5qZHQuY29yZS5jb21waWxlci5jb2RlZ2VuLmlubGluZUpzckJ5dGVjb2RlPWVuYWJsZWQKK29yZy5lY2xpcHNlLmpkdC5jb3JlLmNvbXBpbGVyLmNvZGVnZW4udGFyZ2V0UGxhdGZvcm09MS44CitvcmcuZWNsaXBzZS5qZHQuY29yZS5jb21waWxlci5jb2RlZ2VuLnVudXNlZExvY2FsPXByZXNlcnZlCitvcmcuZWNsaXBzZS5qZHQuY29yZS5jb21waWxlci5jb21wbGlhbmNlPTEuOAorb3JnLmVjbGlwc2UuamR0LmNvcmUuY29tcGlsZXIuZGVidWcubGluZU51bWJlcj1nZW5lcmF0ZQorb3JnLmVjbGlwc2UuamR0LmNvcmUuY29tcGlsZXIuZGVidWcubG9jYWxWYXJpYWJsZT1nZW5lcmF0ZQorb3JnLmVjbGlwc2UuamR0LmNvcmUuY29tcGlsZXIuZGVidWcuc291cmNlRmlsZT1nZW5lcmF0ZQorb3JnLmVjbGlwc2UuamR0LmNvcmUuY29tcGlsZXIucHJvYmxlbS5hc3NlcnRJZGVudGlmaWVyPWVycm9yCitvcmcuZWNsaXBzZS5qZHQuY29yZS5jb21waWxlci5wcm9ibGVtLmVudW1JZGVudGlmaWVyPWVycm9yCitvcmcuZWNsaXBzZS5qZHQuY29yZS5jb21waWxlci5zb3VyY2U9MS44CmRpZmYgLS1naXQgYS9idW5kbGVzL29yZy5lY2xpcHNlLmNhcHJhLmhhbmRsZXIuYXBwNG1jL01FVEEtSU5GL01BTklGRVNULk1GIGIvYnVuZGxlcy9vcmcuZWNsaXBzZS5jYXByYS5oYW5kbGVyLmFwcDRtYy9NRVRBLUlORi9NQU5JRkVTVC5NRgpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi40ZmM1ZDQ3Ci0tLSAvZGV2L251bGwKKysrIGIvYnVuZGxlcy9vcmcuZWNsaXBzZS5jYXByYS5oYW5kbGVyLmFwcDRtYy9NRVRBLUlORi9NQU5JRkVTVC5NRgpAQCAtMCwwICsxLDExIEBACitNYW5pZmVzdC1WZXJzaW9uOiAxLjAKK0J1bmRsZS1NYW5pZmVzdFZlcnNpb246IDIKK0J1bmRsZS1Mb2NhbGl6YXRpb246IHBsdWdpbgorQnVuZGxlLU5hbWU6ICVCdW5kbGUtTmFtZQorQnVuZGxlLVZlbmRvcjogJUJ1bmRsZS1WZW5kb3IKK0J1bmRsZS1TeW1ib2xpY05hbWU6IG9yZy5lY2xpcHNlLmNhcHJhLmhhbmRsZXIuYXBwNG1jO3NpbmdsZXRvbjo9dHJ1ZQorQnVuZGxlLVZlcnNpb246IDAuNy4yLnF1YWxpZmllcgorQnVuZGxlLVJlcXVpcmVkRXhlY3V0aW9uRW52aXJvbm1lbnQ6IEphdmFTRS0xLjgKK0V4cG9ydC1QYWNrYWdlOiBvcmcuZWNsaXBzZS5jYXByYS5oYW5kbGVyLmFwcDRtYworUmVxdWlyZS1CdW5kbGU6IG9yZy5lY2xpcHNlLmNhcHJhLmNvcmUsCisgb3JnLmVjbGlwc2UuYXBwNG1jLmFtYWx0aGVhLm1vZGVsO2J1bmRsZS12ZXJzaW9uPSIwLjkuNSIKZGlmZiAtLWdpdCBhL2J1bmRsZXMvb3JnLmVjbGlwc2UuY2FwcmEuaGFuZGxlci5hcHA0bWMvYnVpbGQucHJvcGVydGllcyBiL2J1bmRsZXMvb3JnLmVjbGlwc2UuY2FwcmEuaGFuZGxlci5hcHA0bWMvYnVpbGQucHJvcGVydGllcwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi42ZDY0MTNmCi0tLSAvZGV2L251bGwKKysrIGIvYnVuZGxlcy9vcmcuZWNsaXBzZS5jYXByYS5oYW5kbGVyLmFwcDRtYy9idWlsZC5wcm9wZXJ0aWVzCkBAIC0wLDAgKzEsMTkgQEAKKyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMKKyMgQ29weXJpZ2h0IChjKSAyMDE2LCAyMDE5IENoYWxtZXJzIHwgVW5pdmVyc2l0eSBvZiBHb3RoZW5idXJnLCBydC1sYWJzIGFuZCBvdGhlcnMuCisjIEFsbCByaWdodHMgcmVzZXJ2ZWQuIFRoaXMgcHJvZ3JhbSBhbmQgdGhlIGFjY29tcGFueWluZyBtYXRlcmlhbHMKKyMgYXJlIG1hZGUgYXZhaWxhYmxlIHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgRWNsaXBzZSBQdWJsaWMgTGljZW5zZSB2Mi4wCisjIHdoaWNoIGFjY29tcGFuaWVzIHRoaXMgZGlzdHJpYnV0aW9uLCBhbmQgaXMgYXZhaWxhYmxlIGF0CisjIGh0dHA6Ly93d3cuZWNsaXBzZS5vcmcvbGVnYWwvZXBsLXYyMC5odG1sCisjICAKKyMgU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEVQTC0yLjAKKyMgIAorIyBDb250cmlidXRvcnM6CisjICAgICAgQ2hhbG1lcnMgfCBVbml2ZXJzaXR5IG9mIEdvdGhlbmJ1cmcgYW5kIHJ0LWxhYnMgLSBpbml0aWFsIEFQSSBhbmQgaW1wbGVtZW50YXRpb24gYW5kL29yIGluaXRpYWwgZG9jdW1lbnRhdGlvbgorIyAgICAgIENoYWxtZXJzIHwgVW5pdmVyc2l0eSBvZiBHb3RoZW5idXJnIC0gYWRkaXRpb25hbCBmZWF0dXJlcywgdXBkYXRlZCBBUEkKKyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMKK3NvdXJjZS4uID0gc3JjLworb3V0cHV0Li4gPSBiaW4vCitiaW4uaW5jbHVkZXMgPSAgTUVUQS1JTkYvLFwKKyAgICAgICAgICAgICAgIC4sXAorICAgICAgICAgICAgICAgcGx1Z2luLnhtbCxcCisgICAgICAgICAgICAgICBwbHVnaW4ucHJvcGVydGllcwpkaWZmIC0tZ2l0IGEvYnVuZGxlcy9vcmcuZWNsaXBzZS5jYXByYS5oYW5kbGVyLmFwcDRtYy9wbHVnaW4ucHJvcGVydGllcyBiL2J1bmRsZXMvb3JnLmVjbGlwc2UuY2FwcmEuaGFuZGxlci5hcHA0bWMvcGx1Z2luLnByb3BlcnRpZXMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNmUxZWFhNQotLS0gL2Rldi9udWxsCisrKyBiL2J1bmRsZXMvb3JnLmVjbGlwc2UuY2FwcmEuaGFuZGxlci5hcHA0bWMvcGx1Z2luLnByb3BlcnRpZXMKQEAgLTAsMCArMSwxNyBAQAorIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIworIyBDb3B5cmlnaHQgKGMpIDIwMTYsIDIwMTkgQ2hhbG1lcnMgfCBVbml2ZXJzaXR5IG9mIEdvdGhlbmJ1cmcsIHJ0LWxhYnMgYW5kIG90aGVycy4KKyMgQWxsIHJpZ2h0cyByZXNlcnZlZC4gVGhpcyBwcm9ncmFtIGFuZCB0aGUgYWNjb21wYW55aW5nIG1hdGVyaWFscworIyBhcmUgbWFkZSBhdmFpbGFibGUgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBFY2xpcHNlIFB1YmxpYyBMaWNlbnNlIHYyLjAKKyMgd2hpY2ggYWNjb21wYW5pZXMgdGhpcyBkaXN0cmlidXRpb24sIGFuZCBpcyBhdmFpbGFibGUgYXQKKyMgaHR0cDovL3d3dy5lY2xpcHNlLm9yZy9sZWdhbC9lcGwtdjIwLmh0bWwKKyMgIAorIyBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogRVBMLTIuMAorIyAgCisjIENvbnRyaWJ1dG9yczoKKyMgICAgICBDaGFsbWVycyB8IFVuaXZlcnNpdHkgb2YgR290aGVuYnVyZyBhbmQgcnQtbGFicyAtIGluaXRpYWwgQVBJIGFuZCBpbXBsZW1lbnRhdGlvbiBhbmQvb3IgaW5pdGlhbCBkb2N1bWVudGF0aW9uCisjICAgICAgQ2hhbG1lcnMgfCBVbml2ZXJzaXR5IG9mIEdvdGhlbmJ1cmcgLSBhZGRpdGlvbmFsIGZlYXR1cmVzLCB1cGRhdGVkIEFQSQorIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIworIworCitCdW5kbGUtTmFtZSA9IEVjbGlwc2UgQ2FwcmEgSGFuZGxlciBmb3IgQVBQNE1DIEFtYWx0aGVhIE1vZGVscworQnVuZGxlLVZlbmRvciA9IEVjbGlwc2UgQ2FwcmEKXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCmRpZmYgLS1naXQgYS9idW5kbGVzL29yZy5lY2xpcHNlLmNhcHJhLmhhbmRsZXIuYXBwNG1jL3BsdWdpbi54bWwgYi9idW5kbGVzL29yZy5lY2xpcHNlLmNhcHJhLmhhbmRsZXIuYXBwNG1jL3BsdWdpbi54bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uOTAzZTE1NAotLS0gL2Rldi9udWxsCisrKyBiL2J1bmRsZXMvb3JnLmVjbGlwc2UuY2FwcmEuaGFuZGxlci5hcHA0bWMvcGx1Z2luLnhtbApAQCAtMCwwICsxLDEyIEBACis8P3htbCB2ZXJzaW9uPSIxLjAiIGVuY29kaW5nPSJVVEYtOCI/PgorPD9lY2xpcHNlIHZlcnNpb249IjMuNCI/PgorPHBsdWdpbj4KKyAgIDxleHRlbnNpb24KKyAgICAgICAgIGlkPSJpZDEiCisgICAgICAgICBwb2ludD0ib3JnLmVjbGlwc2UuY2FwcmEuY29uZmlndXJhdGlvbi5hcnRpZmFjdEhhbmRsZXJzIj4KKyAgICAgIDxhcnRpZmFjdEhhbmRsZXIKKyAgICAgICAgICAgIGNsYXNzPSJvcmcuZWNsaXBzZS5jYXByYS5oYW5kbGVyLmFwcDRtYy5BUFA0TUNIYW5kbGVyIj4KKyAgICAgIDwvYXJ0aWZhY3RIYW5kbGVyPgorICAgPC9leHRlbnNpb24+CisKKzwvcGx1Z2luPgpkaWZmIC0tZ2l0IGEvYnVuZGxlcy9vcmcuZWNsaXBzZS5jYXByYS5oYW5kbGVyLmFwcDRtYy9wb20ueG1sIGIvYnVuZGxlcy9vcmcuZWNsaXBzZS5jYXByYS5oYW5kbGVyLmFwcDRtYy9wb20ueG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmMwN2NjZTYKLS0tIC9kZXYvbnVsbAorKysgYi9idW5kbGVzL29yZy5lY2xpcHNlLmNhcHJhLmhhbmRsZXIuYXBwNG1jL3BvbS54bWwKQEAgLTAsMCArMSwyNyBAQAorPD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiIHN0YW5kYWxvbmU9Im5vIj8+PCEtLQorICAgIENvcHlyaWdodCAoYykgMjAxNiwgMjAxOSBDaGFsbWVycyB8IFVuaXZlcnNpdHkgb2YgR290aGVuYnVyZywgcnQtbGFicyBhbmQgb3RoZXJzLgorICAgIEFsbCByaWdodHMgcmVzZXJ2ZWQuIFRoaXMgcHJvZ3JhbSBhbmQgdGhlIGFjY29tcGFueWluZyBtYXRlcmlhbHMKKyAgICBhcmUgbWFkZSBhdmFpbGFibGUgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBFY2xpcHNlIFB1YmxpYyBMaWNlbnNlIHYyLjAKKyAgICB3aGljaCBhY2NvbXBhbmllcyB0aGlzIGRpc3RyaWJ1dGlvbiwgYW5kIGlzIGF2YWlsYWJsZSBhdAorICAgIGh0dHA6Ly93d3cuZWNsaXBzZS5vcmcvbGVnYWwvZXBsLXYyMC5odG1sCisgICAgIAorICAgIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBFUEwtMi4wCisgICAgIAorICAgIENvbnRyaWJ1dG9yczoKKyAgICAgICAgIENoYWxtZXJzIHwgVW5pdmVyc2l0eSBvZiBHb3RoZW5idXJnIGFuZCBydC1sYWJzIC0gaW5pdGlhbCBBUEkgYW5kIGltcGxlbWVudGF0aW9uIGFuZC9vciBpbml0aWFsIGRvY3VtZW50YXRpb24KKyAgICAgICAgIENoYWxtZXJzIHwgVW5pdmVyc2l0eSBvZiBHb3RoZW5idXJnIC0gYWRkaXRpb25hbCBmZWF0dXJlcywgdXBkYXRlZCBBUEkKKyAtLT48cHJvamVjdCB4bWxucz0iaHR0cDovL21hdmVuLmFwYWNoZS5vcmcvUE9NLzQuMC4wIiB4bWxuczp4c2k9Imh0dHA6Ly93d3cudzMub3JnLzIwMDEvWE1MU2NoZW1hLWluc3RhbmNlIiB4c2k6c2NoZW1hTG9jYXRpb249Imh0dHA6Ly9tYXZlbi5hcGFjaGUub3JnL1BPTS80LjAuMCBodHRwOi8vbWF2ZW4uYXBhY2hlLm9yZy94c2QvbWF2ZW4tNC4wLjAueHNkIj4KKworCTxtb2RlbFZlcnNpb24+NC4wLjA8L21vZGVsVmVyc2lvbj4KKworCTxwYXJlbnQ+CisJCTxyZWxhdGl2ZVBhdGg+Li4vLi4vcG9tLnhtbDwvcmVsYXRpdmVQYXRoPgorCQk8Z3JvdXBJZD5vcmcuZWNsaXBzZS5jYXByYTwvZ3JvdXBJZD4KKwkJPGFydGlmYWN0SWQ+cGFyZW50PC9hcnRpZmFjdElkPgorCQk8dmVyc2lvbj4wLjcuMi1TTkFQU0hPVDwvdmVyc2lvbj4KKwk8L3BhcmVudD4KKworCTxhcnRpZmFjdElkPm9yZy5lY2xpcHNlLmNhcHJhLmhhbmRsZXIuYXBwNG1jPC9hcnRpZmFjdElkPgorCTxwYWNrYWdpbmc+ZWNsaXBzZS1wbHVnaW48L3BhY2thZ2luZz4KKworPC9wcm9qZWN0PgpcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUKZGlmZiAtLWdpdCBhL2J1bmRsZXMvb3JnLmVjbGlwc2UuY2FwcmEuaGFuZGxlci5hcHA0bWMvc3JjL29yZy9lY2xpcHNlL2NhcHJhL2hhbmRsZXIvYXBwNG1jL0FQUDRNQ0hhbmRsZXIuamF2YSBiL2J1bmRsZXMvb3JnLmVjbGlwc2UuY2FwcmEuaGFuZGxlci5hcHA0bWMvc3JjL29yZy9lY2xpcHNlL2NhcHJhL2hhbmRsZXIvYXBwNG1jL0FQUDRNQ0hhbmRsZXIuamF2YQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi44NmMyNTI2Ci0tLSAvZGV2L251bGwKKysrIGIvYnVuZGxlcy9vcmcuZWNsaXBzZS5jYXByYS5oYW5kbGVyLmFwcDRtYy9zcmMvb3JnL2VjbGlwc2UvY2FwcmEvaGFuZGxlci9hcHA0bWMvQVBQNE1DSGFuZGxlci5qYXZhCkBAIC0wLDAgKzEsODYgQEAKKy8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisgKiBDb3B5cmlnaHQgKGMpIDIwMTYsIDIwMTkgQ2hhbG1lcnMgfCBVbml2ZXJzaXR5IG9mIEdvdGhlbmJ1cmcsIHJ0LWxhYnMgYW5kIG90aGVycy4KKyAqIEFsbCByaWdodHMgcmVzZXJ2ZWQuIFRoaXMgcHJvZ3JhbSBhbmQgdGhlIGFjY29tcGFueWluZyBtYXRlcmlhbHMKKyAqIGFyZSBtYWRlIGF2YWlsYWJsZSB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEVjbGlwc2UgUHVibGljIExpY2Vuc2UgdjIuMAorICogd2hpY2ggYWNjb21wYW5pZXMgdGhpcyBkaXN0cmlidXRpb24sIGFuZCBpcyBhdmFpbGFibGUgYXQKKyAqIGh0dHA6Ly93d3cuZWNsaXBzZS5vcmcvbGVnYWwvZXBsLXYyMC5odG1sCisgKiAgCisgKiBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogRVBMLTIuMAorICogIAorICogQ29udHJpYnV0b3JzOgorICogICAgICBDaGFsbWVycyB8IFVuaXZlcnNpdHkgb2YgR290aGVuYnVyZyBhbmQgcnQtbGFicyAtIGluaXRpYWwgQVBJIGFuZCBpbXBsZW1lbnRhdGlvbiBhbmQvb3IgaW5pdGlhbCBkb2N1bWVudGF0aW9uCisgKiAgICAgIENoYWxtZXJzIHwgVW5pdmVyc2l0eSBvZiBHb3RoZW5idXJnIC0gYWRkaXRpb25hbCBmZWF0dXJlcywgdXBkYXRlZCBBUEkKKyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLworcGFja2FnZSBvcmcuZWNsaXBzZS5jYXByYS5oYW5kbGVyLmFwcDRtYzsKKworaW1wb3J0IGphdmEudXRpbC5BcnJheUxpc3Q7CitpbXBvcnQgamF2YS51dGlsLkFycmF5czsKK2ltcG9ydCBqYXZhLnV0aWwuTGlzdDsKKworaW1wb3J0IG9yZy5lY2xpcHNlLmFwcDRtYy5hbWFsdGhlYS5tb2RlbC5JTmFtZWQ7CitpbXBvcnQgb3JnLmVjbGlwc2UuY2FwcmEuY29yZS5hZGFwdGVycy5Db25uZWN0aW9uOworaW1wb3J0IG9yZy5lY2xpcHNlLmNhcHJhLmNvcmUuaGFuZGxlcnMuQWJzdHJhY3RBcnRpZmFjdEhhbmRsZXI7CitpbXBvcnQgb3JnLmVjbGlwc2UuY29yZS5yZXNvdXJjZXMuSVJlc291cmNlRGVsdGE7CitpbXBvcnQgb3JnLmVjbGlwc2UuZW1mLmVjb3JlLkVPYmplY3Q7CisKK3B1YmxpYyBjbGFzcyBBUFA0TUNIYW5kbGVyIGV4dGVuZHMgQWJzdHJhY3RBcnRpZmFjdEhhbmRsZXI8SU5hbWVkPiB7CisKKwlAT3ZlcnJpZGUKKwlwdWJsaWMgRU9iamVjdCBjcmVhdGVXcmFwcGVyKElOYW1lZCBhcnRpZmFjdCwgRU9iamVjdCBhcnRpZmFjdE1vZGVsKSB7CisJCXJldHVybiBhcnRpZmFjdDsKKwl9CisKKwlAT3ZlcnJpZGUKKwlwdWJsaWMgSU5hbWVkIHJlc29sdmVXcmFwcGVyKEVPYmplY3Qgd3JhcHBlcikgeworCQlyZXR1cm4gKElOYW1lZCkgd3JhcHBlcjsKKwl9CisKKwlAT3ZlcnJpZGUKKwlwdWJsaWMgU3RyaW5nIGdldERpc3BsYXlOYW1lKElOYW1lZCBhcnRpZmFjdCkgeworCQlyZXR1cm4gYXJ0aWZhY3QuZ2V0TmFtZSgpOworCX0KKworCUBPdmVycmlkZQorCXB1YmxpYyBTdHJpbmcgZ2VuZXJhdGVNYXJrZXJNZXNzYWdlKElSZXNvdXJjZURlbHRhIGRlbHRhLCBTdHJpbmcgd3JhcHBlclVyaSkgeworCQkvLyBUT0RPCisJCXJldHVybiBudWxsOworCX0KKworCUBPdmVycmlkZQorCXB1YmxpYyBib29sZWFuIGlzVGhlcmVBbkludGVybmFsVHJhY2VCZXR3ZWVuKEVPYmplY3QgZmlyc3QsIEVPYmplY3Qgc2Vjb25kKSB7CisJCWlmIChmaXJzdC5lcXVhbHMoc2Vjb25kKSkgeworCQkJcmV0dXJuIGZhbHNlOworCQl9IGVsc2UgaWYgKGZpcnN0IGluc3RhbmNlb2YgSU5hbWVkICYmIHNlY29uZCBpbnN0YW5jZW9mIElOYW1lZCkgeworCQkJaWYgKGZpcnN0LmVDcm9zc1JlZmVyZW5jZXMoKSAhPSBudWxsICYmIHNlY29uZC5lQ3Jvc3NSZWZlcmVuY2VzKCkgIT0gbnVsbCkgeworCQkJCWlmIChmaXJzdC5lQ3Jvc3NSZWZlcmVuY2VzKCkuY29udGFpbnMoc2Vjb25kKSB8fCBzZWNvbmQuZUNyb3NzUmVmZXJlbmNlcygpLmNvbnRhaW5zKGZpcnN0KSkgeworCQkJCQlyZXR1cm4gdHJ1ZTsKKwkJCQl9CisJCQl9CisJCX0KKwkJcmV0dXJuIGZhbHNlOworCX0KKworCUBPdmVycmlkZQorCXB1YmxpYyBMaXN0PENvbm5lY3Rpb24+IGFkZEludGVybmFsTGlua3MoRU9iamVjdCBpbnZlc3RpZ2F0ZWRFbGVtZW50LCBMaXN0PFN0cmluZz4gc2VsZWN0ZWRSZWxhdGlvbnNoaXBUeXBlcykgeworCQlMaXN0PENvbm5lY3Rpb24+IGNvbm5lY3Rpb25zID0gbmV3IEFycmF5TGlzdDxDb25uZWN0aW9uPigpOworCQlpZiAoaW52ZXN0aWdhdGVkRWxlbWVudCBpbnN0YW5jZW9mIElOYW1lZCkgeworCQkJSU5hbWVkIG5hbWVkID0gKElOYW1lZCkgaW52ZXN0aWdhdGVkRWxlbWVudDsKKwkJCWlmIChuYW1lZC5lQ3Jvc3NSZWZlcmVuY2VzKCkgIT0gbnVsbCkgeworCQkJCUxpc3Q8RU9iamVjdD4gcmVmcyA9IG5hbWVkLmVDcm9zc1JlZmVyZW5jZXMoKTsKKwkJCQlmb3IgKEVPYmplY3QgcmVmIDogcmVmcykgeworCQkJCQlpZiAoc2VsZWN0ZWRSZWxhdGlvbnNoaXBUeXBlcyAhPSBudWxsKSB7CisJCQkJCQlpZiAoc2VsZWN0ZWRSZWxhdGlvbnNoaXBUeXBlcy5zaXplKCkgPT0gMAorCQkJCQkJCQl8fCBzZWxlY3RlZFJlbGF0aW9uc2hpcFR5cGVzLmNvbnRhaW5zKHJlZi5lQ2xhc3MoKS5nZXROYW1lKCkpKSB7CisJCQkJCQkJY29ubmVjdGlvbnMuYWRkKG5ldyBDb25uZWN0aW9uKGludmVzdGlnYXRlZEVsZW1lbnQsIEFycmF5cy5hc0xpc3QocmVmKSwgcmVmKSk7CisJCQkJCQl9CisJCQkJCX0gZWxzZSB7Ly8gc2VsZWN0ZWRSZWxhdGlvbnNoaXBUeXBlcyBpcyBudWxsIGFuZCB0aGVyZWZvcmUgcmV0dXJuIGFsbCBjcm9zcyByZWZlcmVuY2VzCisJCQkJCQkvLyBhcyBpbnRlcm5hbCBsaW5rcworCQkJCQkJY29ubmVjdGlvbnMuYWRkKG5ldyBDb25uZWN0aW9uKGludmVzdGlnYXRlZEVsZW1lbnQsIEFycmF5cy5hc0xpc3QocmVmKSwgcmVmKSk7CisJCQkJCX0KKwkJCQl9CisJCQl9CisJCX0KKwkJcmV0dXJuIGNvbm5lY3Rpb25zOworCX0KKworfQpkaWZmIC0tZ2l0IGEvZmVhdHVyZXMvb3JnLmVjbGlwc2UuY2FwcmEuaGFuZGxlci5hcHA0bWMuZmVhdHVyZS8ucHJvamVjdCBiL2ZlYXR1cmVzL29yZy5lY2xpcHNlLmNhcHJhLmhhbmRsZXIuYXBwNG1jLmZlYXR1cmUvLnByb2plY3QKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNmI1ZjUxMAotLS0gL2Rldi9udWxsCisrKyBiL2ZlYXR1cmVzL29yZy5lY2xpcHNlLmNhcHJhLmhhbmRsZXIuYXBwNG1jLmZlYXR1cmUvLnByb2plY3QKQEAgLTAsMCArMSwxNyBAQAorPD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiPz4KKzxwcm9qZWN0RGVzY3JpcHRpb24+CisJPG5hbWU+b3JnLmVjbGlwc2UuY2FwcmEuaGFuZGxlci5hcHA0bWMuZmVhdHVyZTwvbmFtZT4KKwk8Y29tbWVudD48L2NvbW1lbnQ+CisJPHByb2plY3RzPgorCTwvcHJvamVjdHM+CisJPGJ1aWxkU3BlYz4KKwkJPGJ1aWxkQ29tbWFuZD4KKwkJCTxuYW1lPm9yZy5lY2xpcHNlLnBkZS5GZWF0dXJlQnVpbGRlcjwvbmFtZT4KKwkJCTxhcmd1bWVudHM+CisJCQk8L2FyZ3VtZW50cz4KKwkJPC9idWlsZENvbW1hbmQ+CisJPC9idWlsZFNwZWM+CisJPG5hdHVyZXM+CisJCTxuYXR1cmU+b3JnLmVjbGlwc2UucGRlLkZlYXR1cmVOYXR1cmU8L25hdHVyZT4KKwk8L25hdHVyZXM+Cis8L3Byb2plY3REZXNjcmlwdGlvbj4KZGlmZiAtLWdpdCBhL2ZlYXR1cmVzL29yZy5lY2xpcHNlLmNhcHJhLmhhbmRsZXIuYXBwNG1jLmZlYXR1cmUvYWJvdXQuaHRtbCBiL2ZlYXR1cmVzL29yZy5lY2xpcHNlLmNhcHJhLmhhbmRsZXIuYXBwNG1jLmZlYXR1cmUvYWJvdXQuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4yYjBiN2I4Ci0tLSAvZGV2L251bGwKKysrIGIvZmVhdHVyZXMvb3JnLmVjbGlwc2UuY2FwcmEuaGFuZGxlci5hcHA0bWMuZmVhdHVyZS9hYm91dC5odG1sCkBAIC0wLDAgKzEsMzMgQEAKKzwhRE9DVFlQRSBodG1sIFBVQkxJQyAiLS8vVzNDLy9EVEQgWEhUTUwgMS4wIFN0cmljdC8vRU4iICJodHRwOi8vd3d3LnczLm9yZy9UUi94aHRtbDEvRFREL3hodG1sMS1zdHJpY3QuZHRkIj4KKzxodG1sIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hodG1sIiBjbGFzcz0iZ3JfX2VjbGlwc2Vfb3JnIj48aGVhZD4KKzxtZXRhIGh0dHAtZXF1aXY9IkNvbnRlbnQtVHlwZSIgY29udGVudD0idGV4dC9odG1sOyBjaGFyc2V0PXdpbmRvd3MtMTI1MiI+Cis8dGl0bGU+QWJvdXQ8L3RpdGxlPgorPC9oZWFkPgorPGJvZHkgZGF0YS1nci1jLXMtbG9hZGVkPSJ0cnVlIiBsYW5nPSJFTi1VUyI+CisJPGgyPkFib3V0IFRoaXMgQ29udGVudDwvaDI+CisKKwk8cD5Ob3ZlbWJlciAzMCwgMjAxNzwvcD4KKwk8aDM+TGljZW5zZTwvaDM+CisKKwk8cD4KKwkJVGhlIEVjbGlwc2UgRm91bmRhdGlvbiBtYWtlcyBhdmFpbGFibGUgYWxsIGNvbnRlbnQgaW4gdGhpcyBwbHVnLWluCisJCSgiQ29udGVudCIpLiBVbmxlc3Mgb3RoZXJ3aXNlIGluZGljYXRlZCBiZWxvdywgdGhlIENvbnRlbnQKKwkJaXMgcHJvdmlkZWQgdG8geW91IHVuZGVyIHRoZSB0ZXJtcyBhbmQgY29uZGl0aW9ucyBvZiB0aGUgRWNsaXBzZQorCQlQdWJsaWMgTGljZW5zZSBWZXJzaW9uIDIuMCAoIkVQTCIpLiBBIGNvcHkgb2YgdGhlIEVQTCBpcworCQlhdmFpbGFibGUgYXQgPGEgaHJlZj0iaHR0cDovL3d3dy5lY2xpcHNlLm9yZy9sZWdhbC9lcGwtMi4wIj5odHRwOi8vd3d3LmVjbGlwc2Uub3JnL2xlZ2FsL2VwbC0yLjA8L2E+LgorCQlGb3IgcHVycG9zZXMgb2YgdGhlIEVQTCwgIlByb2dyYW0iIHdpbGwgbWVhbiB0aGUgQ29udGVudC4KKwk8L3A+CisKKwk8cD4KKwkJSWYgeW91IGRpZCBub3QgcmVjZWl2ZSB0aGlzIENvbnRlbnQgZGlyZWN0bHkgZnJvbSB0aGUgRWNsaXBzZQorCQlGb3VuZGF0aW9uLCB0aGUgQ29udGVudCBpcyBiZWluZyByZWRpc3RyaWJ1dGVkIGJ5IGFub3RoZXIgcGFydHkKKwkJKCJSZWRpc3RyaWJ1dG9yIikgYW5kIGRpZmZlcmVudCB0ZXJtcyBhbmQgY29uZGl0aW9ucyBtYXkKKwkJYXBwbHkgdG8geW91ciB1c2Ugb2YgYW55IG9iamVjdCBjb2RlIGluIHRoZSBDb250ZW50LiBDaGVjayB0aGUKKwkJUmVkaXN0cmlidXRvcidzIGxpY2Vuc2UgdGhhdCB3YXMgcHJvdmlkZWQgd2l0aCB0aGUgQ29udGVudC4gSWYgbm8gc3VjaAorCQlsaWNlbnNlIGV4aXN0cywgY29udGFjdCB0aGUgUmVkaXN0cmlidXRvci4gVW5sZXNzIG90aGVyd2lzZSBpbmRpY2F0ZWQKKwkJYmVsb3csIHRoZSB0ZXJtcyBhbmQgY29uZGl0aW9ucyBvZiB0aGUgRVBMIHN0aWxsIGFwcGx5IHRvIGFueSBzb3VyY2UKKwkJY29kZSBpbiB0aGUgQ29udGVudCBhbmQgc3VjaCBzb3VyY2UgY29kZSBtYXkgYmUgb2J0YWluZWQgYXQgPGEgaHJlZj0iaHR0cDovL3d3dy5lY2xpcHNlLm9yZy8iPmh0dHA6Ly93d3cuZWNsaXBzZS5vcmc8L2E+LgorCTwvcD4KKworCis8L2JvZHk+PC9odG1sPgpcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUKZGlmZiAtLWdpdCBhL2ZlYXR1cmVzL29yZy5lY2xpcHNlLmNhcHJhLmhhbmRsZXIuYXBwNG1jLmZlYXR1cmUvYnVpbGQucHJvcGVydGllcyBiL2ZlYXR1cmVzL29yZy5lY2xpcHNlLmNhcHJhLmhhbmRsZXIuYXBwNG1jLmZlYXR1cmUvYnVpbGQucHJvcGVydGllcwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5mYWE0MTZlCi0tLSAvZGV2L251bGwKKysrIGIvZmVhdHVyZXMvb3JnLmVjbGlwc2UuY2FwcmEuaGFuZGxlci5hcHA0bWMuZmVhdHVyZS9idWlsZC5wcm9wZXJ0aWVzCkBAIC0wLDAgKzEsMjQgQEAKKyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMKKyMgQ29weXJpZ2h0IChjKSAyMDE2LCAyMDE5IENoYWxtZXJzIHwgVW5pdmVyc2l0eSBvZiBHb3RoZW5idXJnLCBydC1sYWJzIGFuZCBvdGhlcnMuCisjIEFsbCByaWdodHMgcmVzZXJ2ZWQuIFRoaXMgcHJvZ3JhbSBhbmQgdGhlIGFjY29tcGFueWluZyBtYXRlcmlhbHMKKyMgYXJlIG1hZGUgYXZhaWxhYmxlIHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgRWNsaXBzZSBQdWJsaWMgTGljZW5zZSB2Mi4wCisjIHdoaWNoIGFjY29tcGFuaWVzIHRoaXMgZGlzdHJpYnV0aW9uLCBhbmQgaXMgYXZhaWxhYmxlIGF0CisjIGh0dHA6Ly93d3cuZWNsaXBzZS5vcmcvbGVnYWwvZXBsLXYyMC5odG1sCisjICAKKyMgU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEVQTC0yLjAKKyMgIAorIyBDb250cmlidXRvcnM6CisjICAgICAgQ2hhbG1lcnMgfCBVbml2ZXJzaXR5IG9mIEdvdGhlbmJ1cmcgYW5kIHJ0LWxhYnMgLSBpbml0aWFsIEFQSSBhbmQgaW1wbGVtZW50YXRpb24gYW5kL29yIGluaXRpYWwgZG9jdW1lbnRhdGlvbgorIyAgICAgIENoYWxtZXJzIHwgVW5pdmVyc2l0eSBvZiBHb3RoZW5idXJnIC0gYWRkaXRpb25hbCBmZWF0dXJlcywgdXBkYXRlZCBBUEkKKyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMKK2Jpbi5pbmNsdWRlcyA9IGZlYXR1cmUueG1sLFwKKyAgICAgICAgICAgICAgIGxpY2Vuc2UuaHRtbCxcCisgICAgICAgICAgICAgICBmZWF0dXJlLnByb3BlcnRpZXMsXAorICAgICAgICAgICAgICAgZXBsLXYyMC5odG1sLFwKKyAgICAgICAgICAgICAgIGFib3V0Lmh0bWwKKworc3JjLmluY2x1ZGVzID0gYWJvdXQuaHRtbCxcCisgICAgICAgICAgICAgICBlcGwtdjIwLmh0bWwsXAorICAgICAgICAgICAgICAgZmVhdHVyZS5wcm9wZXJ0aWVzLFwKKyAgICAgICAgICAgICAgIGZlYXR1cmUueG1sLFwKKyAgICAgICAgICAgICAgIGxpY2Vuc2UuaHRtbApkaWZmIC0tZ2l0IGEvZmVhdHVyZXMvb3JnLmVjbGlwc2UuY2FwcmEuaGFuZGxlci5hcHA0bWMuZmVhdHVyZS9lcGwtdjIwLmh0bWwgYi9mZWF0dXJlcy9vcmcuZWNsaXBzZS5jYXByYS5oYW5kbGVyLmFwcDRtYy5mZWF0dXJlL2VwbC12MjAuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5mNDgzNjM4Ci0tLSAvZGV2L251bGwKKysrIGIvZmVhdHVyZXMvb3JnLmVjbGlwc2UuY2FwcmEuaGFuZGxlci5hcHA0bWMuZmVhdHVyZS9lcGwtdjIwLmh0bWwKQEAgLTAsMCArMSwyOTkgQEAKKzwhRE9DVFlQRSBodG1sIFBVQkxJQyAiLS8vVzNDLy9EVEQgWEhUTUwgMS4wIFN0cmljdC8vRU4iICJodHRwOi8vd3d3LnczLm9yZy9UUi94aHRtbDEvRFREL3hodG1sMS1zdHJpY3QuZHRkIj4KKzxodG1sIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hodG1sIiB4bWw6bGFuZz0iZW4iIGNsYXNzPSJncl9fZWNsaXBzZV9vcmciIGxhbmc9ImVuIj48aGVhZD4KKyAgICA8bWV0YSBodHRwLWVxdWl2PSJDb250ZW50LVR5cGUiIGNvbnRlbnQ9InRleHQvaHRtbDsgY2hhcnNldD1VVEYtOCI+CisgICAgPHRpdGxlPkVjbGlwc2UgUHVibGljIExpY2Vuc2UgLSBWZXJzaW9uIDIuMDwvdGl0bGU+CisgICAgPHN0eWxlIHR5cGU9InRleHQvY3NzIj4KKyAgICAgIGJvZHkgeworICAgICAgICBtYXJnaW46IDEuNWVtIDNlbTsKKyAgICAgIH0KKyAgICAgIGgxeworICAgICAgICBmb250LXNpemU6MS41ZW07CisgICAgICB9CisgICAgICBoMnsKKyAgICAgICAgZm9udC1zaXplOjFlbTsKKyAgICAgICAgbWFyZ2luLWJvdHRvbTowLjVlbTsKKyAgICAgICAgbWFyZ2luLXRvcDoxZW07CisgICAgICB9CisgICAgICBwIHsKKyAgICAgICAgbWFyZ2luLXRvcDogIDAuNWVtOworICAgICAgICBtYXJnaW4tYm90dG9tOiAwLjVlbTsKKyAgICAgIH0KKyAgICAgIHVsLCBvbHsKKyAgICAgICAgbGlzdC1zdHlsZS10eXBlOm5vbmU7CisgICAgICB9CisgICAgPC9zdHlsZT4KKyAgPC9oZWFkPgorICA8Ym9keSBkYXRhLWdyLWMtcy1sb2FkZWQ9InRydWUiPgorICAgIDxoMT5FY2xpcHNlIFB1YmxpYyBMaWNlbnNlIC0gdiAyLjA8L2gxPgorICAgIDxwPlRIRSBBQ0NPTVBBTllJTkcgUFJPR1JBTSBJUyBQUk9WSURFRCBVTkRFUiBUSEUgVEVSTVMgT0YgVEhJUyBFQ0xJUFNFCisgICAgICBQVUJMSUMgTElDRU5TRSAo4oCcQUdSRUVNRU5U4oCdKS4gQU5ZIFVTRSwgUkVQUk9EVUNUSU9OIE9SIERJU1RSSUJVVElPTgorICAgICAgT0YgVEhFIFBST0dSQU0gQ09OU1RJVFVURVMgUkVDSVBJRU5UJ1MgQUNDRVBUQU5DRSBPRiBUSElTIEFHUkVFTUVOVC4KKyAgICA8L3A+CisgICAgPGgyIGlkPSJkZWZpbml0aW9ucyI+MS4gREVGSU5JVElPTlM8L2gyPgorICAgIDxwPuKAnENvbnRyaWJ1dGlvbuKAnSBtZWFuczo8L3A+CisgICAgPHVsPgorICAgICAgPGxpPmEpIGluIHRoZSBjYXNlIG9mIHRoZSBpbml0aWFsIENvbnRyaWJ1dG9yLCB0aGUgaW5pdGlhbCBjb250ZW50CisgICAgICAgIERpc3RyaWJ1dGVkIHVuZGVyIHRoaXMgQWdyZWVtZW50LCBhbmQKKyAgICAgIDwvbGk+CisgICAgICA8bGk+CisgICAgICAgIGIpIGluIHRoZSBjYXNlIG9mIGVhY2ggc3Vic2VxdWVudCBDb250cmlidXRvcjoKKyAgICAgICAgPHVsPgorICAgICAgICAgIDxsaT5pKSBjaGFuZ2VzIHRvIHRoZSBQcm9ncmFtLCBhbmQ8L2xpPgorICAgICAgICAgIDxsaT5paSkgYWRkaXRpb25zIHRvIHRoZSBQcm9ncmFtOzwvbGk+CisgICAgICAgIDwvdWw+CisgICAgICAgIHdoZXJlIHN1Y2ggY2hhbmdlcyBhbmQvb3IgYWRkaXRpb25zIHRvIHRoZSBQcm9ncmFtIG9yaWdpbmF0ZSBmcm9tCisgICAgICAgIGFuZCBhcmUgRGlzdHJpYnV0ZWQgYnkgdGhhdCBwYXJ0aWN1bGFyIENvbnRyaWJ1dG9yLiBBIENvbnRyaWJ1dGlvbgorICAgICAgICDigJxvcmlnaW5hdGVz4oCdIGZyb20gYSBDb250cmlidXRvciBpZiBpdCB3YXMgYWRkZWQgdG8gdGhlIFByb2dyYW0gYnkgc3VjaAorICAgICAgICBDb250cmlidXRvciBpdHNlbGYgb3IgYW55b25lIGFjdGluZyBvbiBzdWNoIENvbnRyaWJ1dG9yJ3MgYmVoYWxmLgorICAgICAgICBDb250cmlidXRpb25zIGRvIG5vdCBpbmNsdWRlIGNoYW5nZXMgb3IgYWRkaXRpb25zIHRvIHRoZSBQcm9ncmFtIHRoYXQKKyAgICAgICAgYXJlIG5vdCBNb2RpZmllZCBXb3Jrcy4KKyAgICAgIDwvbGk+CisgICAgPC91bD4KKyAgICA8cD7igJxDb250cmlidXRvcuKAnSBtZWFucyBhbnkgcGVyc29uIG9yIGVudGl0eSB0aGF0IERpc3RyaWJ1dGVzIHRoZSBQcm9ncmFtLjwvcD4KKyAgICA8cD7igJxMaWNlbnNlZCBQYXRlbnRz4oCdIG1lYW4gcGF0ZW50IGNsYWltcyBsaWNlbnNhYmxlIGJ5IGEgQ29udHJpYnV0b3Igd2hpY2gKKyAgICAgIGFyZSBuZWNlc3NhcmlseSBpbmZyaW5nZWQgYnkgdGhlIHVzZSBvciBzYWxlIG9mIGl0cyBDb250cmlidXRpb24gYWxvbmUKKyAgICAgIG9yIHdoZW4gY29tYmluZWQgd2l0aCB0aGUgUHJvZ3JhbS4KKyAgICA8L3A+CisgICAgPHA+4oCcUHJvZ3JhbeKAnSBtZWFucyB0aGUgQ29udHJpYnV0aW9ucyBEaXN0cmlidXRlZCBpbiBhY2NvcmRhbmNlIHdpdGggdGhpcworICAgICAgQWdyZWVtZW50LgorICAgIDwvcD4KKyAgICA8cD7igJxSZWNpcGllbnTigJ0gbWVhbnMgYW55b25lIHdobyByZWNlaXZlcyB0aGUgUHJvZ3JhbSB1bmRlciB0aGlzIEFncmVlbWVudAorICAgICAgb3IgYW55IFNlY29uZGFyeSBMaWNlbnNlIChhcyBhcHBsaWNhYmxlKSwgaW5jbHVkaW5nIENvbnRyaWJ1dG9ycy4KKyAgICA8L3A+CisgICAgPHA+4oCcRGVyaXZhdGl2ZSBXb3Jrc+KAnSBzaGFsbCBtZWFuIGFueSB3b3JrLCB3aGV0aGVyIGluIFNvdXJjZSBDb2RlIG9yIG90aGVyCisgICAgICBmb3JtLCB0aGF0IGlzIGJhc2VkIG9uIChvciBkZXJpdmVkIGZyb20pIHRoZSBQcm9ncmFtIGFuZCBmb3Igd2hpY2ggdGhlCisgICAgICBlZGl0b3JpYWwgcmV2aXNpb25zLCBhbm5vdGF0aW9ucywgZWxhYm9yYXRpb25zLCBvciBvdGhlciBtb2RpZmljYXRpb25zCisgICAgICByZXByZXNlbnQsIGFzIGEgd2hvbGUsIGFuIG9yaWdpbmFsIHdvcmsgb2YgYXV0aG9yc2hpcC4KKyAgICA8L3A+CisgICAgPHA+4oCcTW9kaWZpZWQgV29ya3PigJ0gc2hhbGwgbWVhbiBhbnkgd29yayBpbiBTb3VyY2UgQ29kZSBvciBvdGhlciBmb3JtIHRoYXQKKyAgICAgIHJlc3VsdHMgZnJvbSBhbiBhZGRpdGlvbiB0bywgZGVsZXRpb24gZnJvbSwgb3IgbW9kaWZpY2F0aW9uIG9mIHRoZQorICAgICAgY29udGVudHMgb2YgdGhlIFByb2dyYW0sIGluY2x1ZGluZywgZm9yIHB1cnBvc2VzIG9mIGNsYXJpdHkgYW55IG5ldyBmaWxlCisgICAgICBpbiBTb3VyY2UgQ29kZSBmb3JtIHRoYXQgY29udGFpbnMgYW55IGNvbnRlbnRzIG9mIHRoZSBQcm9ncmFtLiBNb2RpZmllZAorICAgICAgV29ya3Mgc2hhbGwgbm90IGluY2x1ZGUgd29ya3MgdGhhdCBjb250YWluIG9ubHkgZGVjbGFyYXRpb25zLCBpbnRlcmZhY2VzLAorICAgICAgdHlwZXMsIGNsYXNzZXMsIHN0cnVjdHVyZXMsIG9yIGZpbGVzIG9mIHRoZSBQcm9ncmFtIHNvbGVseSBpbiBlYWNoIGNhc2UKKyAgICAgIGluIG9yZGVyIHRvIGxpbmsgdG8sIGJpbmQgYnkgbmFtZSwgb3Igc3ViY2xhc3MgdGhlIFByb2dyYW0gb3IgTW9kaWZpZWQKKyAgICAgIFdvcmtzIHRoZXJlb2YuCisgICAgPC9wPgorICAgIDxwPuKAnERpc3RyaWJ1dGXigJ0gbWVhbnMgdGhlIGFjdHMgb2YgYSkgZGlzdHJpYnV0aW5nIG9yIGIpIG1ha2luZyBhdmFpbGFibGUKKyAgICAgIGluIGFueSBtYW5uZXIgdGhhdCBlbmFibGVzIHRoZSB0cmFuc2ZlciBvZiBhIGNvcHkuCisgICAgPC9wPgorICAgIDxwPuKAnFNvdXJjZSBDb2Rl4oCdIG1lYW5zIHRoZSBmb3JtIG9mIGEgUHJvZ3JhbSBwcmVmZXJyZWQgZm9yIG1ha2luZworICAgICAgbW9kaWZpY2F0aW9ucywgaW5jbHVkaW5nIGJ1dCBub3QgbGltaXRlZCB0byBzb2Z0d2FyZSBzb3VyY2UgY29kZSwKKyAgICAgIGRvY3VtZW50YXRpb24gc291cmNlLCBhbmQgY29uZmlndXJhdGlvbiBmaWxlcy4KKyAgICA8L3A+CisgICAgPHA+4oCcU2Vjb25kYXJ5IExpY2Vuc2XigJ0gbWVhbnMgZWl0aGVyIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSwKKyAgICAgIFZlcnNpb24gMi4wLCBvciBhbnkgbGF0ZXIgdmVyc2lvbnMgb2YgdGhhdCBsaWNlbnNlLCBpbmNsdWRpbmcgYW55CisgICAgICBleGNlcHRpb25zIG9yIGFkZGl0aW9uYWwgcGVybWlzc2lvbnMgYXMgaWRlbnRpZmllZCBieSB0aGUgaW5pdGlhbAorICAgICAgQ29udHJpYnV0b3IuCisgICAgPC9wPgorICAgIDxoMiBpZD0iZ3JhbnQtb2YtcmlnaHRzIj4yLiBHUkFOVCBPRiBSSUdIVFM8L2gyPgorICAgIDx1bD4KKyAgICAgIDxsaT5hKSBTdWJqZWN0IHRvIHRoZSB0ZXJtcyBvZiB0aGlzIEFncmVlbWVudCwgZWFjaCBDb250cmlidXRvciBoZXJlYnkKKyAgICAgICAgZ3JhbnRzIFJlY2lwaWVudCBhIG5vbi1leGNsdXNpdmUsIHdvcmxkd2lkZSwgcm95YWx0eS1mcmVlIGNvcHlyaWdodAorICAgICAgICBsaWNlbnNlIHRvIHJlcHJvZHVjZSwgcHJlcGFyZSBEZXJpdmF0aXZlIFdvcmtzIG9mLCBwdWJsaWNseSBkaXNwbGF5LAorICAgICAgICBwdWJsaWNseSBwZXJmb3JtLCBEaXN0cmlidXRlIGFuZCBzdWJsaWNlbnNlIHRoZSBDb250cmlidXRpb24gb2Ygc3VjaAorICAgICAgICBDb250cmlidXRvciwgaWYgYW55LCBhbmQgc3VjaCBEZXJpdmF0aXZlIFdvcmtzLgorICAgICAgPC9saT4KKyAgICAgIDxsaT5iKSBTdWJqZWN0IHRvIHRoZSB0ZXJtcyBvZiB0aGlzIEFncmVlbWVudCwgZWFjaCBDb250cmlidXRvciBoZXJlYnkKKyAgICAgICAgZ3JhbnRzIFJlY2lwaWVudCBhIG5vbi1leGNsdXNpdmUsIHdvcmxkd2lkZSwgcm95YWx0eS1mcmVlIHBhdGVudAorICAgICAgICBsaWNlbnNlIHVuZGVyIExpY2Vuc2VkIFBhdGVudHMgdG8gbWFrZSwgdXNlLCBzZWxsLCBvZmZlciB0byBzZWxsLAorICAgICAgICBpbXBvcnQgYW5kIG90aGVyd2lzZSB0cmFuc2ZlciB0aGUgQ29udHJpYnV0aW9uIG9mIHN1Y2ggQ29udHJpYnV0b3IsCisgICAgICAgIGlmIGFueSwgaW4gU291cmNlIENvZGUgb3Igb3RoZXIgZm9ybS4gVGhpcyBwYXRlbnQgbGljZW5zZSBzaGFsbAorICAgICAgICBhcHBseSB0byB0aGUgY29tYmluYXRpb24gb2YgdGhlIENvbnRyaWJ1dGlvbiBhbmQgdGhlIFByb2dyYW0gaWYsCisgICAgICAgIGF0IHRoZSB0aW1lIHRoZSBDb250cmlidXRpb24gaXMgYWRkZWQgYnkgdGhlIENvbnRyaWJ1dG9yLCBzdWNoCisgICAgICAgIGFkZGl0aW9uIG9mIHRoZSBDb250cmlidXRpb24gY2F1c2VzIHN1Y2ggY29tYmluYXRpb24gdG8gYmUgY292ZXJlZAorICAgICAgICBieSB0aGUgTGljZW5zZWQgUGF0ZW50cy4gVGhlIHBhdGVudCBsaWNlbnNlIHNoYWxsIG5vdCBhcHBseSB0byBhbnkKKyAgICAgICAgb3RoZXIgY29tYmluYXRpb25zIHdoaWNoIGluY2x1ZGUgdGhlIENvbnRyaWJ1dGlvbi4gTm8gaGFyZHdhcmUgcGVyCisgICAgICAgIHNlIGlzIGxpY2Vuc2VkIGhlcmV1bmRlci4KKyAgICAgIDwvbGk+CisgICAgICA8bGk+YykgUmVjaXBpZW50IHVuZGVyc3RhbmRzIHRoYXQgYWx0aG91Z2ggZWFjaCBDb250cmlidXRvciBncmFudHMgdGhlCisgICAgICAgIGxpY2Vuc2VzIHRvIGl0cyBDb250cmlidXRpb25zIHNldCBmb3J0aCBoZXJlaW4sIG5vIGFzc3VyYW5jZXMgYXJlCisgICAgICAgIHByb3ZpZGVkIGJ5IGFueSBDb250cmlidXRvciB0aGF0IHRoZSBQcm9ncmFtIGRvZXMgbm90IGluZnJpbmdlIHRoZQorICAgICAgICBwYXRlbnQgb3Igb3RoZXIgaW50ZWxsZWN0dWFsIHByb3BlcnR5IHJpZ2h0cyBvZiBhbnkgb3RoZXIgZW50aXR5LgorICAgICAgICBFYWNoIENvbnRyaWJ1dG9yIGRpc2NsYWltcyBhbnkgbGlhYmlsaXR5IHRvIFJlY2lwaWVudCBmb3IgY2xhaW1zCisgICAgICAgIGJyb3VnaHQgYnkgYW55IG90aGVyIGVudGl0eSBiYXNlZCBvbiBpbmZyaW5nZW1lbnQgb2YgaW50ZWxsZWN0dWFsCisgICAgICAgIHByb3BlcnR5IHJpZ2h0cyBvciBvdGhlcndpc2UuIEFzIGEgY29uZGl0aW9uIHRvIGV4ZXJjaXNpbmcgdGhlIHJpZ2h0cworICAgICAgICBhbmQgbGljZW5zZXMgZ3JhbnRlZCBoZXJldW5kZXIsIGVhY2ggUmVjaXBpZW50IGhlcmVieSBhc3N1bWVzIHNvbGUKKyAgICAgICAgcmVzcG9uc2liaWxpdHkgdG8gc2VjdXJlIGFueSBvdGhlciBpbnRlbGxlY3R1YWwgcHJvcGVydHkgcmlnaHRzIG5lZWRlZCwKKyAgICAgICAgaWYgYW55LiBGb3IgZXhhbXBsZSwgaWYgYSB0aGlyZCBwYXJ0eSBwYXRlbnQgbGljZW5zZSBpcyByZXF1aXJlZCB0bworICAgICAgICBhbGxvdyBSZWNpcGllbnQgdG8gRGlzdHJpYnV0ZSB0aGUgUHJvZ3JhbSwgaXQgaXMgUmVjaXBpZW50J3MKKyAgICAgICAgcmVzcG9uc2liaWxpdHkgdG8gYWNxdWlyZSB0aGF0IGxpY2Vuc2UgYmVmb3JlIGRpc3RyaWJ1dGluZyB0aGUgUHJvZ3JhbS4KKyAgICAgIDwvbGk+CisgICAgICA8bGk+ZCkgRWFjaCBDb250cmlidXRvciByZXByZXNlbnRzIHRoYXQgdG8gaXRzIGtub3dsZWRnZSBpdCBoYXMgc3VmZmljaWVudAorICAgICAgICBjb3B5cmlnaHQgcmlnaHRzIGluIGl0cyBDb250cmlidXRpb24sIGlmIGFueSwgdG8gZ3JhbnQgdGhlIGNvcHlyaWdodAorICAgICAgICBsaWNlbnNlIHNldCBmb3J0aCBpbiB0aGlzIEFncmVlbWVudC4KKyAgICAgIDwvbGk+CisgICAgICA8bGk+ZSkgTm90d2l0aHN0YW5kaW5nIHRoZSB0ZXJtcyBvZiBhbnkgU2Vjb25kYXJ5IExpY2Vuc2UsIG5vIENvbnRyaWJ1dG9yCisgICAgICAgIG1ha2VzIGFkZGl0aW9uYWwgZ3JhbnRzIHRvIGFueSBSZWNpcGllbnQgKG90aGVyIHRoYW4gdGhvc2Ugc2V0IGZvcnRoCisgICAgICAgIGluIHRoaXMgQWdyZWVtZW50KSBhcyBhIHJlc3VsdCBvZiBzdWNoIFJlY2lwaWVudCdzIHJlY2VpcHQgb2YgdGhlCisgICAgICAgIFByb2dyYW0gdW5kZXIgdGhlIHRlcm1zIG9mIGEgU2Vjb25kYXJ5IExpY2Vuc2UgKGlmIHBlcm1pdHRlZCB1bmRlcgorICAgICAgICB0aGUgdGVybXMgb2YgU2VjdGlvbiAzKS4KKyAgICAgIDwvbGk+CisgICAgPC91bD4KKyAgICA8aDIgaWQ9InJlcXVpcmVtZW50cyI+My4gUkVRVUlSRU1FTlRTPC9oMj4KKyAgICA8cD4zLjEgSWYgYSBDb250cmlidXRvciBEaXN0cmlidXRlcyB0aGUgUHJvZ3JhbSBpbiBhbnkgZm9ybSwgdGhlbjo8L3A+CisgICAgPHVsPgorICAgICAgPGxpPmEpIHRoZSBQcm9ncmFtIG11c3QgYWxzbyBiZSBtYWRlIGF2YWlsYWJsZSBhcyBTb3VyY2UgQ29kZSwgaW4KKyAgICAgICAgYWNjb3JkYW5jZSB3aXRoIHNlY3Rpb24gMy4yLCBhbmQgdGhlIENvbnRyaWJ1dG9yIG11c3QgYWNjb21wYW55CisgICAgICAgIHRoZSBQcm9ncmFtIHdpdGggYSBzdGF0ZW1lbnQgdGhhdCB0aGUgU291cmNlIENvZGUgZm9yIHRoZSBQcm9ncmFtCisgICAgICAgIGlzIGF2YWlsYWJsZSB1bmRlciB0aGlzIEFncmVlbWVudCwgYW5kIGluZm9ybXMgUmVjaXBpZW50cyBob3cgdG8KKyAgICAgICAgb2J0YWluIGl0IGluIGEgcmVhc29uYWJsZSBtYW5uZXIgb24gb3IgdGhyb3VnaCBhIG1lZGl1bSBjdXN0b21hcmlseQorICAgICAgICB1c2VkIGZvciBzb2Z0d2FyZSBleGNoYW5nZTsgYW5kCisgICAgICA8L2xpPgorICAgICAgPGxpPgorICAgICAgICBiKSB0aGUgQ29udHJpYnV0b3IgbWF5IERpc3RyaWJ1dGUgdGhlIFByb2dyYW0gdW5kZXIgYSBsaWNlbnNlCisgICAgICAgIGRpZmZlcmVudCB0aGFuIHRoaXMgQWdyZWVtZW50LCBwcm92aWRlZCB0aGF0IHN1Y2ggbGljZW5zZToKKyAgICAgICAgPHVsPgorICAgICAgICAgIDxsaT5pKSBlZmZlY3RpdmVseSBkaXNjbGFpbXMgb24gYmVoYWxmIG9mIGFsbCBvdGhlciBDb250cmlidXRvcnMgYWxsCisgICAgICAgICAgICB3YXJyYW50aWVzIGFuZCBjb25kaXRpb25zLCBleHByZXNzIGFuZCBpbXBsaWVkLCBpbmNsdWRpbmcgd2FycmFudGllcworICAgICAgICAgICAgb3IgY29uZGl0aW9ucyBvZiB0aXRsZSBhbmQgbm9uLWluZnJpbmdlbWVudCwgYW5kIGltcGxpZWQgd2FycmFudGllcworICAgICAgICAgICAgb3IgY29uZGl0aW9ucyBvZiBtZXJjaGFudGFiaWxpdHkgYW5kIGZpdG5lc3MgZm9yIGEgcGFydGljdWxhciBwdXJwb3NlOworICAgICAgICAgIDwvbGk+CisgICAgICAgICAgPGxpPmlpKSBlZmZlY3RpdmVseSBleGNsdWRlcyBvbiBiZWhhbGYgb2YgYWxsIG90aGVyIENvbnRyaWJ1dG9ycyBhbGwKKyAgICAgICAgICAgIGxpYWJpbGl0eSBmb3IgZGFtYWdlcywgaW5jbHVkaW5nIGRpcmVjdCwgaW5kaXJlY3QsIHNwZWNpYWwsIGluY2lkZW50YWwKKyAgICAgICAgICAgIGFuZCBjb25zZXF1ZW50aWFsIGRhbWFnZXMsIHN1Y2ggYXMgbG9zdCBwcm9maXRzOworICAgICAgICAgIDwvbGk+CisgICAgICAgICAgPGxpPmlpaSkgZG9lcyBub3QgYXR0ZW1wdCB0byBsaW1pdCBvciBhbHRlciB0aGUgcmVjaXBpZW50cycgcmlnaHRzIGluIHRoZQorICAgICAgICAgICAgU291cmNlIENvZGUgdW5kZXIgc2VjdGlvbiAzLjI7IGFuZAorICAgICAgICAgIDwvbGk+CisgICAgICAgICAgPGxpPml2KSByZXF1aXJlcyBhbnkgc3Vic2VxdWVudCBkaXN0cmlidXRpb24gb2YgdGhlIFByb2dyYW0gYnkgYW55IHBhcnR5CisgICAgICAgICAgICB0byBiZSB1bmRlciBhIGxpY2Vuc2UgdGhhdCBzYXRpc2ZpZXMgdGhlIHJlcXVpcmVtZW50cyBvZiB0aGlzIHNlY3Rpb24gMy4KKyAgICAgICAgICA8L2xpPgorICAgICAgICA8L3VsPgorICAgICAgPC9saT4KKyAgICA8L3VsPgorICAgIDxwPjMuMiBXaGVuIHRoZSBQcm9ncmFtIGlzIERpc3RyaWJ1dGVkIGFzIFNvdXJjZSBDb2RlOjwvcD4KKyAgICA8dWw+CisgICAgICA8bGk+YSkgaXQgbXVzdCBiZSBtYWRlIGF2YWlsYWJsZSB1bmRlciB0aGlzIEFncmVlbWVudCwgb3IgaWYgdGhlIFByb2dyYW0gKGkpCisgICAgICAgIGlzIGNvbWJpbmVkIHdpdGggb3RoZXIgbWF0ZXJpYWwgaW4gYSBzZXBhcmF0ZSBmaWxlIG9yIGZpbGVzIG1hZGUgYXZhaWxhYmxlCisgICAgICAgIHVuZGVyIGEgU2Vjb25kYXJ5IExpY2Vuc2UsIGFuZCAoaWkpIHRoZSBpbml0aWFsIENvbnRyaWJ1dG9yIGF0dGFjaGVkIHRvCisgICAgICAgIHRoZSBTb3VyY2UgQ29kZSB0aGUgbm90aWNlIGRlc2NyaWJlZCBpbiBFeGhpYml0IEEgb2YgdGhpcyBBZ3JlZW1lbnQsCisgICAgICAgIHRoZW4gdGhlIFByb2dyYW0gbWF5IGJlIG1hZGUgYXZhaWxhYmxlIHVuZGVyIHRoZSB0ZXJtcyBvZiBzdWNoCisgICAgICAgIFNlY29uZGFyeSBMaWNlbnNlcywgYW5kCisgICAgICA8L2xpPgorICAgICAgPGxpPmIpIGEgY29weSBvZiB0aGlzIEFncmVlbWVudCBtdXN0IGJlIGluY2x1ZGVkIHdpdGggZWFjaCBjb3B5IG9mIHRoZSBQcm9ncmFtLjwvbGk+CisgICAgPC91bD4KKyAgICA8cD4zLjMgQ29udHJpYnV0b3JzIG1heSBub3QgcmVtb3ZlIG9yIGFsdGVyIGFueSBjb3B5cmlnaHQsIHBhdGVudCwgdHJhZGVtYXJrLAorICAgICAgYXR0cmlidXRpb24gbm90aWNlcywgZGlzY2xhaW1lcnMgb2Ygd2FycmFudHksIG9yIGxpbWl0YXRpb25zIG9mIGxpYWJpbGl0eQorICAgICAgKOKAmG5vdGljZXPigJkpIGNvbnRhaW5lZCB3aXRoaW4gdGhlIFByb2dyYW0gZnJvbSBhbnkgY29weSBvZiB0aGUgUHJvZ3JhbSB3aGljaAorICAgICAgdGhleSBEaXN0cmlidXRlLCBwcm92aWRlZCB0aGF0IENvbnRyaWJ1dG9ycyBtYXkgYWRkIHRoZWlyIG93biBhcHByb3ByaWF0ZQorICAgICAgbm90aWNlcy4KKyAgICA8L3A+CisgICAgPGgyIGlkPSJjb21tZXJjaWFsLWRpc3RyaWJ1dGlvbiI+NC4gQ09NTUVSQ0lBTCBESVNUUklCVVRJT048L2gyPgorICAgIDxwPkNvbW1lcmNpYWwgZGlzdHJpYnV0b3JzIG9mIHNvZnR3YXJlIG1heSBhY2NlcHQgY2VydGFpbiByZXNwb25zaWJpbGl0aWVzCisgICAgICB3aXRoIHJlc3BlY3QgdG8gZW5kIHVzZXJzLCBidXNpbmVzcyBwYXJ0bmVycyBhbmQgdGhlIGxpa2UuIFdoaWxlIHRoaXMKKyAgICAgIGxpY2Vuc2UgaXMgaW50ZW5kZWQgdG8gZmFjaWxpdGF0ZSB0aGUgY29tbWVyY2lhbCB1c2Ugb2YgdGhlIFByb2dyYW0sIHRoZQorICAgICAgQ29udHJpYnV0b3Igd2hvIGluY2x1ZGVzIHRoZSBQcm9ncmFtIGluIGEgY29tbWVyY2lhbCBwcm9kdWN0IG9mZmVyaW5nIHNob3VsZAorICAgICAgZG8gc28gaW4gYSBtYW5uZXIgd2hpY2ggZG9lcyBub3QgY3JlYXRlIHBvdGVudGlhbCBsaWFiaWxpdHkgZm9yIG90aGVyCisgICAgICBDb250cmlidXRvcnMuIFRoZXJlZm9yZSwgaWYgYSBDb250cmlidXRvciBpbmNsdWRlcyB0aGUgUHJvZ3JhbSBpbiBhCisgICAgICBjb21tZXJjaWFsIHByb2R1Y3Qgb2ZmZXJpbmcsIHN1Y2ggQ29udHJpYnV0b3IgKOKAnENvbW1lcmNpYWwgQ29udHJpYnV0b3LigJ0pCisgICAgICBoZXJlYnkgYWdyZWVzIHRvIGRlZmVuZCBhbmQgaW5kZW1uaWZ5IGV2ZXJ5IG90aGVyIENvbnRyaWJ1dG9yCisgICAgICAo4oCcSW5kZW1uaWZpZWQgQ29udHJpYnV0b3LigJ0pIGFnYWluc3QgYW55IGxvc3NlcywgZGFtYWdlcyBhbmQgY29zdHMKKyAgICAgIChjb2xsZWN0aXZlbHkg4oCcTG9zc2Vz4oCdKSBhcmlzaW5nIGZyb20gY2xhaW1zLCBsYXdzdWl0cyBhbmQgb3RoZXIgbGVnYWwgYWN0aW9ucworICAgICAgYnJvdWdodCBieSBhIHRoaXJkIHBhcnR5IGFnYWluc3QgdGhlIEluZGVtbmlmaWVkIENvbnRyaWJ1dG9yIHRvIHRoZSBleHRlbnQKKyAgICAgIGNhdXNlZCBieSB0aGUgYWN0cyBvciBvbWlzc2lvbnMgb2Ygc3VjaCBDb21tZXJjaWFsIENvbnRyaWJ1dG9yIGluIGNvbm5lY3Rpb24KKyAgICAgIHdpdGggaXRzIGRpc3RyaWJ1dGlvbiBvZiB0aGUgUHJvZ3JhbSBpbiBhIGNvbW1lcmNpYWwgcHJvZHVjdCBvZmZlcmluZy4KKyAgICAgIFRoZSBvYmxpZ2F0aW9ucyBpbiB0aGlzIHNlY3Rpb24gZG8gbm90IGFwcGx5IHRvIGFueSBjbGFpbXMgb3IgTG9zc2VzIHJlbGF0aW5nCisgICAgICB0byBhbnkgYWN0dWFsIG9yIGFsbGVnZWQgaW50ZWxsZWN0dWFsIHByb3BlcnR5IGluZnJpbmdlbWVudC4gSW4gb3JkZXIgdG8KKyAgICAgIHF1YWxpZnksIGFuIEluZGVtbmlmaWVkIENvbnRyaWJ1dG9yIG11c3Q6IGEpIHByb21wdGx5IG5vdGlmeSB0aGUKKyAgICAgIENvbW1lcmNpYWwgQ29udHJpYnV0b3IgaW4gd3JpdGluZyBvZiBzdWNoIGNsYWltLCBhbmQgYikgYWxsb3cgdGhlIENvbW1lcmNpYWwKKyAgICAgIENvbnRyaWJ1dG9yIHRvIGNvbnRyb2wsIGFuZCBjb29wZXJhdGUgd2l0aCB0aGUgQ29tbWVyY2lhbCBDb250cmlidXRvciBpbiwKKyAgICAgIHRoZSBkZWZlbnNlIGFuZCBhbnkgcmVsYXRlZCBzZXR0bGVtZW50IG5lZ290aWF0aW9ucy4gVGhlIEluZGVtbmlmaWVkCisgICAgICBDb250cmlidXRvciBtYXkgcGFydGljaXBhdGUgaW4gYW55IHN1Y2ggY2xhaW0gYXQgaXRzIG93biBleHBlbnNlLgorICAgIDwvcD4KKyAgICA8cD5Gb3IgZXhhbXBsZSwgYSBDb250cmlidXRvciBtaWdodCBpbmNsdWRlIHRoZSBQcm9ncmFtCisgICAgICBpbiBhIGNvbW1lcmNpYWwgcHJvZHVjdCBvZmZlcmluZywgUHJvZHVjdCBYLiBUaGF0IENvbnRyaWJ1dG9yIGlzIHRoZW4gYQorICAgICAgQ29tbWVyY2lhbCBDb250cmlidXRvci4gSWYgdGhhdCBDb21tZXJjaWFsIENvbnRyaWJ1dG9yIHRoZW4gbWFrZXMgcGVyZm9ybWFuY2UKKyAgICAgIGNsYWltcywgb3Igb2ZmZXJzIHdhcnJhbnRpZXMgcmVsYXRlZCB0byBQcm9kdWN0IFgsIHRob3NlIHBlcmZvcm1hbmNlIGNsYWltcworICAgICAgYW5kIHdhcnJhbnRpZXMgYXJlIHN1Y2ggQ29tbWVyY2lhbCBDb250cmlidXRvcidzIHJlc3BvbnNpYmlsaXR5IGFsb25lLgorICAgICAgVW5kZXIgdGhpcyBzZWN0aW9uLCB0aGUgQ29tbWVyY2lhbCBDb250cmlidXRvciB3b3VsZCBoYXZlIHRvIGRlZmVuZCBjbGFpbXMKKyAgICAgIGFnYWluc3QgdGhlIG90aGVyIENvbnRyaWJ1dG9ycyByZWxhdGVkIHRvIHRob3NlIHBlcmZvcm1hbmNlIGNsYWltcyBhbmQKKyAgICAgIHdhcnJhbnRpZXMsIGFuZCBpZiBhIGNvdXJ0IHJlcXVpcmVzIGFueSBvdGhlciBDb250cmlidXRvciB0byBwYXkgYW55IGRhbWFnZXMKKyAgICAgIGFzIGEgcmVzdWx0LCB0aGUgQ29tbWVyY2lhbCBDb250cmlidXRvciBtdXN0IHBheSB0aG9zZSBkYW1hZ2VzLgorICAgIDwvcD4KKyAgICA8aDIgaWQ9IndhcnJhbnR5Ij41LiBOTyBXQVJSQU5UWTwvaDI+CisgICAgPHA+RVhDRVBUIEFTIEVYUFJFU1NMWSBTRVQgRk9SVEggSU4gVEhJUyBBR1JFRU1FTlQsIEFORCBUTyBUSEUgRVhURU5UIFBFUk1JVFRFRAorICAgICAgQlkgQVBQTElDQUJMRSBMQVcsIFRIRSBQUk9HUkFNIElTIFBST1ZJREVEIE9OIEFOIOKAnEFTIElT4oCdIEJBU0lTLCBXSVRIT1VUCisgICAgICBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIEVJVEhFUiBFWFBSRVNTIE9SIElNUExJRUQgSU5DTFVESU5HLAorICAgICAgV0lUSE9VVCBMSU1JVEFUSU9OLCBBTlkgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIFRJVExFLCBOT04tSU5GUklOR0VNRU5ULAorICAgICAgTUVSQ0hBTlRBQklMSVRZIE9SIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiBFYWNoIFJlY2lwaWVudCBpcworICAgICAgc29sZWx5IHJlc3BvbnNpYmxlIGZvciBkZXRlcm1pbmluZyB0aGUgYXBwcm9wcmlhdGVuZXNzIG9mIHVzaW5nIGFuZAorICAgICAgZGlzdHJpYnV0aW5nIHRoZSBQcm9ncmFtIGFuZCBhc3N1bWVzIGFsbCByaXNrcyBhc3NvY2lhdGVkIHdpdGggaXRzCisgICAgICBleGVyY2lzZSBvZiByaWdodHMgdW5kZXIgdGhpcyBBZ3JlZW1lbnQsIGluY2x1ZGluZyBidXQgbm90IGxpbWl0ZWQgdG8gdGhlCisgICAgICByaXNrcyBhbmQgY29zdHMgb2YgcHJvZ3JhbSBlcnJvcnMsIGNvbXBsaWFuY2Ugd2l0aCBhcHBsaWNhYmxlIGxhd3MsIGRhbWFnZQorICAgICAgdG8gb3IgbG9zcyBvZiBkYXRhLCBwcm9ncmFtcyBvciBlcXVpcG1lbnQsIGFuZCB1bmF2YWlsYWJpbGl0eSBvcgorICAgICAgaW50ZXJydXB0aW9uIG9mIG9wZXJhdGlvbnMuCisgICAgPC9wPgorICAgIDxoMiBpZD0iZGlzY2xhaW1lciI+Ni4gRElTQ0xBSU1FUiBPRiBMSUFCSUxJVFk8L2gyPgorICAgIDxwPkVYQ0VQVCBBUyBFWFBSRVNTTFkgU0VUIEZPUlRIIElOIFRISVMgQUdSRUVNRU5ULCBBTkQgVE8gVEhFIEVYVEVOVCBQRVJNSVRURUQKKyAgICAgIEJZIEFQUExJQ0FCTEUgTEFXLCBORUlUSEVSIFJFQ0lQSUVOVCBOT1IgQU5ZIENPTlRSSUJVVE9SUyBTSEFMTCBIQVZFIEFOWQorICAgICAgTElBQklMSVRZIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLAorICAgICAgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcgV0lUSE9VVCBMSU1JVEFUSU9OIExPU1QgUFJPRklUUyksCisgICAgICBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVAorICAgICAgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWQorICAgICAgT1VUIE9GIFRIRSBVU0UgT1IgRElTVFJJQlVUSU9OIE9GIFRIRSBQUk9HUkFNIE9SIFRIRSBFWEVSQ0lTRSBPRiBBTlkgUklHSFRTCisgICAgICBHUkFOVEVEIEhFUkVVTkRFUiwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRVMuCisgICAgPC9wPgorICAgIDxoMiBpZD0iZ2VuZXJhbCI+Ny4gR0VORVJBTDwvaDI+CisgICAgPHA+SWYgYW55IHByb3Zpc2lvbiBvZiB0aGlzIEFncmVlbWVudCBpcyBpbnZhbGlkIG9yIHVuZW5mb3JjZWFibGUgdW5kZXIKKyAgICAgIGFwcGxpY2FibGUgbGF3LCBpdCBzaGFsbCBub3QgYWZmZWN0IHRoZSB2YWxpZGl0eSBvciBlbmZvcmNlYWJpbGl0eSBvZiB0aGUKKyAgICAgIHJlbWFpbmRlciBvZiB0aGUgdGVybXMgb2YgdGhpcyBBZ3JlZW1lbnQsIGFuZCB3aXRob3V0IGZ1cnRoZXIgYWN0aW9uIGJ5IHRoZQorICAgICAgcGFydGllcyBoZXJldG8sIHN1Y2ggcHJvdmlzaW9uIHNoYWxsIGJlIHJlZm9ybWVkIHRvIHRoZSBtaW5pbXVtIGV4dGVudAorICAgICAgbmVjZXNzYXJ5IHRvIG1ha2Ugc3VjaCBwcm92aXNpb24gdmFsaWQgYW5kIGVuZm9yY2VhYmxlLgorICAgIDwvcD4KKyAgICA8cD5JZiBSZWNpcGllbnQgaW5zdGl0dXRlcyBwYXRlbnQgbGl0aWdhdGlvbiBhZ2FpbnN0IGFueSBlbnRpdHkgKGluY2x1ZGluZyBhCisgICAgICBjcm9zcy1jbGFpbSBvciBjb3VudGVyY2xhaW0gaW4gYSBsYXdzdWl0KSBhbGxlZ2luZyB0aGF0IHRoZSBQcm9ncmFtIGl0c2VsZgorICAgICAgKGV4Y2x1ZGluZyBjb21iaW5hdGlvbnMgb2YgdGhlIFByb2dyYW0gd2l0aCBvdGhlciBzb2Z0d2FyZSBvciBoYXJkd2FyZSkKKyAgICAgIGluZnJpbmdlcyBzdWNoIFJlY2lwaWVudCdzIHBhdGVudChzKSwgdGhlbiBzdWNoIFJlY2lwaWVudCdzIHJpZ2h0cyBncmFudGVkCisgICAgICB1bmRlciBTZWN0aW9uIDIoYikgc2hhbGwgdGVybWluYXRlIGFzIG9mIHRoZSBkYXRlIHN1Y2ggbGl0aWdhdGlvbiBpcyBmaWxlZC4KKyAgICA8L3A+CisgICAgPHA+QWxsIFJlY2lwaWVudCdzIHJpZ2h0cyB1bmRlciB0aGlzIEFncmVlbWVudCBzaGFsbCB0ZXJtaW5hdGUgaWYgaXQgZmFpbHMgdG8KKyAgICAgIGNvbXBseSB3aXRoIGFueSBvZiB0aGUgbWF0ZXJpYWwgdGVybXMgb3IgY29uZGl0aW9ucyBvZiB0aGlzIEFncmVlbWVudCBhbmQKKyAgICAgIGRvZXMgbm90IGN1cmUgc3VjaCBmYWlsdXJlIGluIGEgcmVhc29uYWJsZSBwZXJpb2Qgb2YgdGltZSBhZnRlciBiZWNvbWluZworICAgICAgYXdhcmUgb2Ygc3VjaCBub25jb21wbGlhbmNlLiBJZiBhbGwgUmVjaXBpZW50J3MgcmlnaHRzIHVuZGVyIHRoaXMgQWdyZWVtZW50CisgICAgICB0ZXJtaW5hdGUsIFJlY2lwaWVudCBhZ3JlZXMgdG8gY2Vhc2UgdXNlIGFuZCBkaXN0cmlidXRpb24gb2YgdGhlIFByb2dyYW0KKyAgICAgIGFzIHNvb24gYXMgcmVhc29uYWJseSBwcmFjdGljYWJsZS4gSG93ZXZlciwgUmVjaXBpZW50J3Mgb2JsaWdhdGlvbnMgdW5kZXIKKyAgICAgIHRoaXMgQWdyZWVtZW50IGFuZCBhbnkgbGljZW5zZXMgZ3JhbnRlZCBieSBSZWNpcGllbnQgcmVsYXRpbmcgdG8gdGhlCisgICAgICBQcm9ncmFtIHNoYWxsIGNvbnRpbnVlIGFuZCBzdXJ2aXZlLgorICAgIDwvcD4KKyAgICA8cD5FdmVyeW9uZSBpcyBwZXJtaXR0ZWQgdG8gY29weSBhbmQgZGlzdHJpYnV0ZSBjb3BpZXMgb2YgdGhpcyBBZ3JlZW1lbnQsCisgICAgICBidXQgaW4gb3JkZXIgdG8gYXZvaWQgaW5jb25zaXN0ZW5jeSB0aGUgQWdyZWVtZW50IGlzIGNvcHlyaWdodGVkIGFuZCBtYXkKKyAgICAgIG9ubHkgYmUgbW9kaWZpZWQgaW4gdGhlIGZvbGxvd2luZyBtYW5uZXIuIFRoZSBBZ3JlZW1lbnQgU3Rld2FyZCByZXNlcnZlcworICAgICAgdGhlIHJpZ2h0IHRvIHB1Ymxpc2ggbmV3IHZlcnNpb25zIChpbmNsdWRpbmcgcmV2aXNpb25zKSBvZiB0aGlzIEFncmVlbWVudAorICAgICAgZnJvbSB0aW1lIHRvIHRpbWUuIE5vIG9uZSBvdGhlciB0aGFuIHRoZSBBZ3JlZW1lbnQgU3Rld2FyZCBoYXMgdGhlIHJpZ2h0CisgICAgICB0byBtb2RpZnkgdGhpcyBBZ3JlZW1lbnQuIFRoZSBFY2xpcHNlIEZvdW5kYXRpb24gaXMgdGhlIGluaXRpYWwgQWdyZWVtZW50CisgICAgICBTdGV3YXJkLiBUaGUgRWNsaXBzZSBGb3VuZGF0aW9uIG1heSBhc3NpZ24gdGhlIHJlc3BvbnNpYmlsaXR5IHRvIHNlcnZlIGFzCisgICAgICB0aGUgQWdyZWVtZW50IFN0ZXdhcmQgdG8gYSBzdWl0YWJsZSBzZXBhcmF0ZSBlbnRpdHkuIEVhY2ggbmV3IHZlcnNpb24gb2YKKyAgICAgIHRoZSBBZ3JlZW1lbnQgd2lsbCBiZSBnaXZlbiBhIGRpc3Rpbmd1aXNoaW5nIHZlcnNpb24gbnVtYmVyLiBUaGUgUHJvZ3JhbQorICAgICAgKGluY2x1ZGluZyBDb250cmlidXRpb25zKSBtYXkgYWx3YXlzIGJlIERpc3RyaWJ1dGVkIHN1YmplY3QgdG8gdGhlIHZlcnNpb24KKyAgICAgIG9mIHRoZSBBZ3JlZW1lbnQgdW5kZXIgd2hpY2ggaXQgd2FzIHJlY2VpdmVkLiBJbiBhZGRpdGlvbiwgYWZ0ZXIgYSBuZXcKKyAgICAgIHZlcnNpb24gb2YgdGhlIEFncmVlbWVudCBpcyBwdWJsaXNoZWQsIENvbnRyaWJ1dG9yIG1heSBlbGVjdCB0byBEaXN0cmlidXRlCisgICAgICB0aGUgUHJvZ3JhbSAoaW5jbHVkaW5nIGl0cyBDb250cmlidXRpb25zKSB1bmRlciB0aGUgbmV3IHZlcnNpb24uCisgICAgPC9wPgorICAgIDxwPkV4Y2VwdCBhcyBleHByZXNzbHkgc3RhdGVkIGluIFNlY3Rpb25zIDIoYSkgYW5kIDIoYikgYWJvdmUsIFJlY2lwaWVudAorICAgICAgcmVjZWl2ZXMgbm8gcmlnaHRzIG9yIGxpY2Vuc2VzIHRvIHRoZSBpbnRlbGxlY3R1YWwgcHJvcGVydHkgb2YgYW55CisgICAgICBDb250cmlidXRvciB1bmRlciB0aGlzIEFncmVlbWVudCwgd2hldGhlciBleHByZXNzbHksIGJ5IGltcGxpY2F0aW9uLAorICAgICAgZXN0b3BwZWwgb3Igb3RoZXJ3aXNlLiBBbGwgcmlnaHRzIGluIHRoZSBQcm9ncmFtIG5vdCBleHByZXNzbHkgZ3JhbnRlZAorICAgICAgdW5kZXIgdGhpcyBBZ3JlZW1lbnQgYXJlIHJlc2VydmVkLiBOb3RoaW5nIGluIHRoaXMgQWdyZWVtZW50IGlzIGludGVuZGVkCisgICAgICB0byBiZSBlbmZvcmNlYWJsZSBieSBhbnkgZW50aXR5IHRoYXQgaXMgbm90IGEgQ29udHJpYnV0b3Igb3IgUmVjaXBpZW50LgorICAgICAgTm8gdGhpcmQtcGFydHkgYmVuZWZpY2lhcnkgcmlnaHRzIGFyZSBjcmVhdGVkIHVuZGVyIHRoaXMgQWdyZWVtZW50LgorICAgIDwvcD4KKyAgICA8aDIgaWQ9ImV4aGliaXQtYSI+RXhoaWJpdCBBIOKAkyBGb3JtIG9mIFNlY29uZGFyeSBMaWNlbnNlcyBOb3RpY2U8L2gyPgorICAgIDxwPuKAnFRoaXMgU291cmNlIENvZGUgbWF5IGFsc28gYmUgbWFkZSBhdmFpbGFibGUgdW5kZXIgdGhlIGZvbGxvd2luZyAKKyAgICAJU2Vjb25kYXJ5IExpY2Vuc2VzIHdoZW4gdGhlIGNvbmRpdGlvbnMgZm9yIHN1Y2ggYXZhaWxhYmlsaXR5IHNldCBmb3J0aCAKKyAgICAJaW4gdGhlIEVjbGlwc2UgUHVibGljIExpY2Vuc2UsIHYuIDIuMCBhcmUgc2F0aXNmaWVkOiB7bmFtZSBsaWNlbnNlKHMpLAorICAgIAl2ZXJzaW9uKHMpLCBhbmQgZXhjZXB0aW9ucyBvciBhZGRpdGlvbmFsIHBlcm1pc3Npb25zIGhlcmV9LuKAnQorICAgIDwvcD4KKyAgICA8YmxvY2txdW90ZT4KKyAgICAgIDxwPlNpbXBseSBpbmNsdWRpbmcgYSBjb3B5IG9mIHRoaXMgQWdyZWVtZW50LCBpbmNsdWRpbmcgdGhpcyBFeGhpYml0IEEKKyAgICAgICAgaXMgbm90IHN1ZmZpY2llbnQgdG8gbGljZW5zZSB0aGUgU291cmNlIENvZGUgdW5kZXIgU2Vjb25kYXJ5IExpY2Vuc2VzLgorICAgICAgPC9wPgorICAgICAgPHA+SWYgaXQgaXMgbm90IHBvc3NpYmxlIG9yIGRlc2lyYWJsZSB0byBwdXQgdGhlIG5vdGljZSBpbiBhIHBhcnRpY3VsYXIgZmlsZSwKKyAgICAgICAgdGhlbiBZb3UgbWF5IGluY2x1ZGUgdGhlIG5vdGljZSBpbiBhIGxvY2F0aW9uIChzdWNoIGFzIGEgTElDRU5TRSBmaWxlIGluIGEKKyAgICAgICAgcmVsZXZhbnQgZGlyZWN0b3J5KSB3aGVyZSBhIHJlY2lwaWVudCB3b3VsZCBiZSBsaWtlbHkgdG8gbG9vayBmb3IKKyAgICAgICAgc3VjaCBhIG5vdGljZS4KKyAgICAgIDwvcD4KKyAgICAgIDxwPllvdSBtYXkgYWRkIGFkZGl0aW9uYWwgYWNjdXJhdGUgbm90aWNlcyBvZiBjb3B5cmlnaHQgb3duZXJzaGlwLjwvcD4KKyAgICA8L2Jsb2NrcXVvdGU+CisgIAorPC9ib2R5PjwvaHRtbD4KXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCmRpZmYgLS1naXQgYS9mZWF0dXJlcy9vcmcuZWNsaXBzZS5jYXByYS5oYW5kbGVyLmFwcDRtYy5mZWF0dXJlL2ZlYXR1cmUucHJvcGVydGllcyBiL2ZlYXR1cmVzL29yZy5lY2xpcHNlLmNhcHJhLmhhbmRsZXIuYXBwNG1jLmZlYXR1cmUvZmVhdHVyZS5wcm9wZXJ0aWVzCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjkwMmJjNzYKLS0tIC9kZXYvbnVsbAorKysgYi9mZWF0dXJlcy9vcmcuZWNsaXBzZS5jYXByYS5oYW5kbGVyLmFwcDRtYy5mZWF0dXJlL2ZlYXR1cmUucHJvcGVydGllcwpAQCAtMCwwICsxLDkyIEBACisjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjCisjIENvcHlyaWdodCAoYykgMjAxNiwgMjAxOSBDaGFsbWVycyB8IFVuaXZlcnNpdHkgb2YgR290aGVuYnVyZywgcnQtbGFicyBhbmQgb3RoZXJzLgorIyBBbGwgcmlnaHRzIHJlc2VydmVkLiBUaGlzIHByb2dyYW0gYW5kIHRoZSBhY2NvbXBhbnlpbmcgbWF0ZXJpYWxzCisjIGFyZSBtYWRlIGF2YWlsYWJsZSB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEVjbGlwc2UgUHVibGljIExpY2Vuc2UgdjIuMAorIyB3aGljaCBhY2NvbXBhbmllcyB0aGlzIGRpc3RyaWJ1dGlvbiwgYW5kIGlzIGF2YWlsYWJsZSBhdAorIyBodHRwOi8vd3d3LmVjbGlwc2Uub3JnL2xlZ2FsL2VwbC12MjAuaHRtbAorIyAgCisjIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBFUEwtMi4wCisjICAKKyMgQ29udHJpYnV0b3JzOgorIyAgICAgIENoYWxtZXJzIHwgVW5pdmVyc2l0eSBvZiBHb3RoZW5idXJnIGFuZCBydC1sYWJzIC0gaW5pdGlhbCBBUEkgYW5kIGltcGxlbWVudGF0aW9uIGFuZC9vciBpbml0aWFsIGRvY3VtZW50YXRpb24KKyMgICAgICBDaGFsbWVycyB8IFVuaXZlcnNpdHkgb2YgR290aGVuYnVyZyAtIGFkZGl0aW9uYWwgZmVhdHVyZXMsIHVwZGF0ZWQgQVBJCisjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjCisKKyMgImZlYXR1cmVOYW1lIiBwcm9wZXJ0eSAtIG5hbWUgb2YgdGhlIGZlYXR1cmUKK2ZlYXR1cmVOYW1lPUVjbGlwc2UgQ2FwcmEgVHJhY2VhYmlsaXR5IGZvciBBUFA0TUMgQW1hbHRoZWEgbW9kZWxzCisKKyMgInByb3ZpZGVyTmFtZSIgcHJvcGVydHkgLSBuYW1lIG9mIHRoZSBjb21wYW55IHRoYXQgcHJvdmlkZXMgdGhlIGZlYXR1cmUKK3Byb3ZpZGVyTmFtZT1FY2xpcHNlIENhcHJhCisgCisjICJkZXNjcmlwdGlvbiIgcHJvcGVydHkgLSBkZXNjcmlwdGlvbiBvZiB0aGUgZmVhdHVyZQorZGVzY3JpcHRpb249U3VwcG9ydCBmb3IgY3JlYXRpbmcgdHJhY2UgbGlua3MgdG8gQVBQNE1DIEFtYWx0aGVhIG1vZGVscworZGVzY3JpcHRpb25VUkw9aHR0cHM6Ly9lY2xpcHNlLm9yZy9jYXByYQorCisjICJsaWNlbnNlVVJMIiBwcm9wZXJ0eSAtIFVSTCBvZiB0aGUgIkZlYXR1cmUgTGljZW5zZSIKKyMgZG8gbm90IHRyYW5zbGF0ZSB2YWx1ZSAtIGp1c3QgY2hhbmdlIHRvIHBvaW50IHRvIGEgbG9jYWxlLXNwZWNpZmljIEhUTUwgcGFnZQorbGljZW5zZVVSTD1saWNlbnNlLmh0bWwKKwordXBkYXRlTGFiZWw9CisKKyMgImxpY2Vuc2UiIHByb3BlcnR5IC0gdGV4dCBvZiB0aGUgIkZlYXR1cmUgVXBkYXRlIExpY2Vuc2UiCisjIHNob3VsZCBiZSBwbGFpbiB0ZXh0IHZlcnNpb24gb2YgbGljZW5zZSBhZ3JlZW1lbnQgcG9pbnRlZCB0byBiZSAibGljZW5zZVVSTCIKK2xpY2Vuc2U9XAorRWNsaXBzZSBGb3VuZGF0aW9uIFNvZnR3YXJlIFVzZXIgQWdyZWVtZW50XG5cCitcblwKK05vdmVtYmVyIDIyLCAyMDE3XG5cCitVc2FnZSBPZiBDb250ZW50XG5cCitcblwKK1RIRSBFQ0xJUFNFIEZPVU5EQVRJT04gTUFLRVMgQVZBSUxBQkxFIFNPRlRXQVJFLCBET0NVTUVOVEFUSU9OLCBJTkZPUk1BVElPTiBBTkQvT1IgT1RIRVIgTUFURVJJQUxTIEZPUiBPUEVOIFNPVVJDRSBQUk9KRUNUUyAoQ09MTEVDVElWRUxZICJDT05URU5UIikuIFVTRSBPRiBUSEUgQ09OVEVOVCBJUyBHT1ZFUk5FRCBCWSBUSEUgVEVSTVMgQU5EIENPTkRJVElPTlMgT0YgVEhJUyBBR1JFRU1FTlQgQU5EL09SIFRIRSBURVJNUyBBTkQgQ09ORElUSU9OUyBPRiBMSUNFTlNFIEFHUkVFTUVOVFMgT1IgTk9USUNFUyBJTkRJQ0FURUQgT1IgUkVGRVJFTkNFRCBCRUxPVy4gQlkgVVNJTkcgVEhFIENPTlRFTlQsIFlPVSBBR1JFRSBUSEFUIFlPVVIgVVNFIE9GIFRIRSBDT05URU5UIElTIEdPVkVSTkVEIEJZIFRISVMgQUdSRUVNRU5UIEFORC9PUiBUSEUgVEVSTVMgQU5EIENPTkRJVElPTlMgT0YgQU5ZIEFQUExJQ0FCTEUgTElDRU5TRSBBR1JFRU1FTlRTIE9SIE5PVElDRVMgSU5ESUNBVEVEIE9SIFJFRkVSRU5DRUQgQkVMT1cuIElGIFlPVSBETyBOT1QgQUdSRUUgVE8gVEhFIFRFUk1TIEFORCBDT05ESVRJT05TIE9GIFRISVMgQUdSRUVNRU5UIEFORCBUSEUgVEVSTVMgQU5EIENPTkRJVElPTlMgT0YgQU5ZIEFQUExJQ0FCTEUgTElDRU5TRSBBR1JFRU1FTlRTIE9SIE5PVElDRVMgSU5ESUNBVEVEIE9SIFJFRkVSRU5DRUQgQkVMT1csIFRIRU4gWU9VIE1BWSBOT1QgVVNFIFRIRSBDT05URU5ULlxuXAorQXBwbGljYWJsZSBMaWNlbnNlc1xuXAorXG5cCitVbmxlc3Mgb3RoZXJ3aXNlIGluZGljYXRlZCwgYWxsIENvbnRlbnQgbWFkZSBhdmFpbGFibGUgYnkgdGhlIEVjbGlwc2UgRm91bmRhdGlvbiBpcyBwcm92aWRlZCB0byB5b3UgdW5kZXIgdGhlIHRlcm1zIGFuZCBjb25kaXRpb25zIG9mIHRoZSBFY2xpcHNlIFB1YmxpYyBMaWNlbnNlIFZlcnNpb24gMi4wICgiRVBMIikuIEEgY29weSBvZiB0aGUgRVBMIGlzIHByb3ZpZGVkIHdpdGggdGhpcyBDb250ZW50IGFuZCBpcyBhbHNvIGF2YWlsYWJsZSBhdCBodHRwOi8vd3d3LmVjbGlwc2Uub3JnL2xlZ2FsL2VwbC0yLjAuIEZvciBwdXJwb3NlcyBvZiB0aGUgRVBMLCAiUHJvZ3JhbSIgd2lsbCBtZWFuIHRoZSBDb250ZW50LlxuXAorXG5cCitDb250ZW50IGluY2x1ZGVzLCBidXQgaXMgbm90IGxpbWl0ZWQgdG8sIHNvdXJjZSBjb2RlLCBvYmplY3QgY29kZSwgZG9jdW1lbnRhdGlvbiBhbmQgb3RoZXIgZmlsZXMgbWFpbnRhaW5lZCBpbiB0aGUgRWNsaXBzZSBGb3VuZGF0aW9uIHNvdXJjZSBjb2RlIHJlcG9zaXRvcnkgKCJSZXBvc2l0b3J5IikgaW4gc29mdHdhcmUgbW9kdWxlcyAoIk1vZHVsZXMiKSBhbmQgbWFkZSBhdmFpbGFibGUgYXMgZG93bmxvYWRhYmxlIGFyY2hpdmVzICgiRG93bmxvYWRzIikuXG5cCitcblwKKyAgICBDb250ZW50IG1heSBiZSBzdHJ1Y3R1cmVkIGFuZCBwYWNrYWdlZCBpbnRvIG1vZHVsZXMgdG8gZmFjaWxpdGF0ZSBkZWxpdmVyaW5nLCBleHRlbmRpbmcsIGFuZCB1cGdyYWRpbmcgdGhlIENvbnRlbnQuIFR5cGljYWwgbW9kdWxlcyBtYXkgaW5jbHVkZSBwbHVnLWlucyAoIlBsdWctaW5zIiksIHBsdWctaW4gZnJhZ21lbnRzICgiRnJhZ21lbnRzIiksIGFuZCBmZWF0dXJlcyAoIkZlYXR1cmVzIikuXG5cCisgICAgRWFjaCBQbHVnLWluIG9yIEZyYWdtZW50IG1heSBiZSBwYWNrYWdlZCBhcyBhIHN1Yi1kaXJlY3Rvcnkgb3IgSkFSIChKYXZhXHUyMTIyIEFSY2hpdmUpIGluIGEgZGlyZWN0b3J5IG5hbWVkICJwbHVnaW5zIi5cblwKKyAgICBBIEZlYXR1cmUgaXMgYSBidW5kbGUgb2Ygb25lIG9yIG1vcmUgUGx1Zy1pbnMgYW5kL29yIEZyYWdtZW50cyBhbmQgYXNzb2NpYXRlZCBtYXRlcmlhbC4gRWFjaCBGZWF0dXJlIG1heSBiZSBwYWNrYWdlZCBhcyBhIHN1Yi1kaXJlY3RvcnkgaW4gYSBkaXJlY3RvcnkgbmFtZWQgImZlYXR1cmVzIi4gV2l0aGluIGEgRmVhdHVyZSwgZmlsZXMgbmFtZWQgImZlYXR1cmUueG1sIiBtYXkgY29udGFpbiBhIGxpc3Qgb2YgdGhlIG5hbWVzIGFuZCB2ZXJzaW9uIG51bWJlcnMgb2YgdGhlIFBsdWctaW5zIGFuZC9vciBGcmFnbWVudHMgYXNzb2NpYXRlZCB3aXRoIHRoYXQgRmVhdHVyZS5cblwKKyAgICBGZWF0dXJlcyBtYXkgYWxzbyBpbmNsdWRlIG90aGVyIEZlYXR1cmVzICgiSW5jbHVkZWQgRmVhdHVyZXMiKS4gV2l0aGluIGEgRmVhdHVyZSwgZmlsZXMgbmFtZWQgImZlYXR1cmUueG1sIiBtYXkgY29udGFpbiBhIGxpc3Qgb2YgdGhlIG5hbWVzIGFuZCB2ZXJzaW9uIG51bWJlcnMgb2YgSW5jbHVkZWQgRmVhdHVyZXMuXG5cCitcblwKK1RoZSB0ZXJtcyBhbmQgY29uZGl0aW9ucyBnb3Zlcm5pbmcgUGx1Zy1pbnMgYW5kIEZyYWdtZW50cyBzaG91bGQgYmUgY29udGFpbmVkIGluIGZpbGVzIG5hbWVkICJhYm91dC5odG1sIiAoIkFib3V0cyIpLiBUaGUgdGVybXMgYW5kIGNvbmRpdGlvbnMgZ292ZXJuaW5nIEZlYXR1cmVzIGFuZCBJbmNsdWRlZCBGZWF0dXJlcyBzaG91bGQgYmUgY29udGFpbmVkIGluIGZpbGVzIG5hbWVkICJsaWNlbnNlLmh0bWwiICgiRmVhdHVyZSBMaWNlbnNlcyIpLiBBYm91dHMgYW5kIEZlYXR1cmUgTGljZW5zZXMgbWF5IGJlIGxvY2F0ZWQgaW4gYW55IGRpcmVjdG9yeSBvZiBhIERvd25sb2FkIG9yIE1vZHVsZSBpbmNsdWRpbmcsIGJ1dCBub3QgbGltaXRlZCB0byB0aGUgZm9sbG93aW5nIGxvY2F0aW9uczpcblwKK1xuXAorICAgIFRoZSB0b3AtbGV2ZWwgKHJvb3QpIGRpcmVjdG9yeVxuXAorICAgIFBsdWctaW4gYW5kIEZyYWdtZW50IGRpcmVjdG9yaWVzXG5cCisgICAgSW5zaWRlIFBsdWctaW5zIGFuZCBGcmFnbWVudHMgcGFja2FnZWQgYXMgSkFSc1xuXAorICAgIFN1Yi1kaXJlY3RvcmllcyBvZiB0aGUgZGlyZWN0b3J5IG5hbWVkICJzcmMiIG9mIGNlcnRhaW4gUGx1Zy1pbnNcblwKKyAgICBGZWF0dXJlIGRpcmVjdG9yaWVzXG5cCitcblwKK05vdGU6IGlmIGEgRmVhdHVyZSBtYWRlIGF2YWlsYWJsZSBieSB0aGUgRWNsaXBzZSBGb3VuZGF0aW9uIGlzIGluc3RhbGxlZCB1c2luZyB0aGUgUHJvdmlzaW9uaW5nIFRlY2hub2xvZ3kgKGFzIGRlZmluZWQgYmVsb3cpLCB5b3UgbXVzdCBhZ3JlZSB0byBhIGxpY2Vuc2UgKCJGZWF0dXJlIFVwZGF0ZSBMaWNlbnNlIikgZHVyaW5nIHRoZSBpbnN0YWxsYXRpb24gcHJvY2Vzcy4gSWYgdGhlIEZlYXR1cmUgY29udGFpbnMgSW5jbHVkZWQgRmVhdHVyZXMsIHRoZSBGZWF0dXJlIFVwZGF0ZSBMaWNlbnNlIHNob3VsZCBlaXRoZXIgcHJvdmlkZSB5b3Ugd2l0aCB0aGUgdGVybXMgYW5kIGNvbmRpdGlvbnMgZ292ZXJuaW5nIHRoZSBJbmNsdWRlZCBGZWF0dXJlcyBvciBpbmZvcm0geW91IHdoZXJlIHlvdSBjYW4gbG9jYXRlIHRoZW0uIEZlYXR1cmUgVXBkYXRlIExpY2Vuc2VzIG1heSBiZSBmb3VuZCBpbiB0aGUgImxpY2Vuc2UiIHByb3BlcnR5IG9mIGZpbGVzIG5hbWVkICJmZWF0dXJlLnByb3BlcnRpZXMiIGZvdW5kIHdpdGhpbiBhIEZlYXR1cmUuIFN1Y2ggQWJvdXRzLCBGZWF0dXJlIExpY2Vuc2VzLCBhbmQgRmVhdHVyZSBVcGRhdGUgTGljZW5zZXMgY29udGFpbiB0aGUgdGVybXMgYW5kIGNvbmRpdGlvbnMgKG9yIHJlZmVyZW5jZXMgdG8gc3VjaCB0ZXJtcyBhbmQgY29uZGl0aW9ucykgdGhhdCBnb3Zlcm4geW91ciB1c2Ugb2YgdGhlIGFzc29jaWF0ZWQgQ29udGVudCBpbiB0aGF0IGRpcmVjdG9yeS5cblwKK1xuXAorVEhFIEFCT1VUUywgRkVBVFVSRSBMSUNFTlNFUywgQU5EIEZFQVRVUkUgVVBEQVRFIExJQ0VOU0VTIE1BWSBSRUZFUiBUTyBUSEUgRVBMIE9SIE9USEVSIExJQ0VOU0UgQUdSRUVNRU5UUywgTk9USUNFUyBPUiBURVJNUyBBTkQgQ09ORElUSU9OUy4gU09NRSBPRiBUSEVTRSBPVEhFUiBMSUNFTlNFIEFHUkVFTUVOVFMgTUFZIElOQ0xVREUgKEJVVCBBUkUgTk9UIExJTUlURUQgVE8pOlxuXAorXG5cCisgICAgRWNsaXBzZSBQdWJsaWMgTGljZW5zZSBWZXJzaW9uIDEuMCAoYXZhaWxhYmxlIGF0IGh0dHA6Ly93d3cuZWNsaXBzZS5vcmcvbGVnYWwvZXBsLXYxMC5odG1sKVxuXAorICAgIEVjbGlwc2UgRGlzdHJpYnV0aW9uIExpY2Vuc2UgVmVyc2lvbiAxLjAgKGF2YWlsYWJsZSBhdCBodHRwOi8vd3d3LmVjbGlwc2Uub3JnL2xpY2Vuc2VzL2VkbC12MS4wLmh0bWwpXG5cCisgICAgQ29tbW9uIFB1YmxpYyBMaWNlbnNlIFZlcnNpb24gMS4wIChhdmFpbGFibGUgYXQgaHR0cDovL3d3dy5lY2xpcHNlLm9yZy9sZWdhbC9jcGwtdjEwLmh0bWwpXG5cCisgICAgQXBhY2hlIFNvZnR3YXJlIExpY2Vuc2UgMS4xIChhdmFpbGFibGUgYXQgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UpXG5cCisgICAgQXBhY2hlIFNvZnR3YXJlIExpY2Vuc2UgMi4wIChhdmFpbGFibGUgYXQgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wKVxuXAorICAgIE1vemlsbGEgUHVibGljIExpY2Vuc2UgVmVyc2lvbiAxLjEgKGF2YWlsYWJsZSBhdCBodHRwOi8vd3d3Lm1vemlsbGEub3JnL01QTC9NUEwtMS4xLmh0bWwpXG5cCitcblwKK0lUIElTIFlPVVIgT0JMSUdBVElPTiBUTyBSRUFEIEFORCBBQ0NFUFQgQUxMIFNVQ0ggVEVSTVMgQU5EIENPTkRJVElPTlMgUFJJT1IgVE8gVVNFIE9GIFRIRSBDT05URU5ULiBJZiBubyBBYm91dCwgRmVhdHVyZSBMaWNlbnNlLCBvciBGZWF0dXJlIFVwZGF0ZSBMaWNlbnNlIGlzIHByb3ZpZGVkLCBwbGVhc2UgY29udGFjdCB0aGUgRWNsaXBzZSBGb3VuZGF0aW9uIHRvIGRldGVybWluZSB3aGF0IHRlcm1zIGFuZCBjb25kaXRpb25zIGdvdmVybiB0aGF0IHBhcnRpY3VsYXIgQ29udGVudC5cblwKK1VzZSBvZiBQcm92aXNpb25pbmcgVGVjaG5vbG9neVxuXAorXG5cCitUaGUgRWNsaXBzZSBGb3VuZGF0aW9uIG1ha2VzIGF2YWlsYWJsZSBwcm92aXNpb25pbmcgc29mdHdhcmUsIGV4YW1wbGVzIG9mIHdoaWNoIGluY2x1ZGUsIGJ1dCBhcmUgbm90IGxpbWl0ZWQgdG8sIHAyIGFuZCB0aGUgRWNsaXBzZSBVcGRhdGUgTWFuYWdlciAoIlByb3Zpc2lvbmluZyBUZWNobm9sb2d5IikgZm9yIHRoZSBwdXJwb3NlIG9mIGFsbG93aW5nIHVzZXJzIHRvIGluc3RhbGwgc29mdHdhcmUsIGRvY3VtZW50YXRpb24sIGluZm9ybWF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgKGNvbGxlY3RpdmVseSAiSW5zdGFsbGFibGUgU29mdHdhcmUiKS4gVGhpcyBjYXBhYmlsaXR5IGlzIHByb3ZpZGVkIHdpdGggdGhlIGludGVudCBvZiBhbGxvd2luZyBzdWNoIHVzZXJzIHRvIGluc3RhbGwsIGV4dGVuZCBhbmQgdXBkYXRlIEVjbGlwc2UtYmFzZWQgcHJvZHVjdHMuIEluZm9ybWF0aW9uIGFib3V0IHBhY2thZ2luZyBJbnN0YWxsYWJsZSBTb2Z0d2FyZSBpcyBhdmFpbGFibGUgYXQgaHR0cDovL2VjbGlwc2Uub3JnL2VxdWlub3gvcDIvcmVwb3NpdG9yeV9wYWNrYWdpbmcuaHRtbCAoIlNwZWNpZmljYXRpb24iKS5cblwKK1xuXAorWW91IG1heSB1c2UgUHJvdmlzaW9uaW5nIFRlY2hub2xvZ3kgdG8gYWxsb3cgb3RoZXIgcGFydGllcyB0byBpbnN0YWxsIEluc3RhbGxhYmxlIFNvZnR3YXJlLiBZb3Ugc2hhbGwgYmUgcmVzcG9uc2libGUgZm9yIGVuYWJsaW5nIHRoZSBhcHBsaWNhYmxlIGxpY2Vuc2UgYWdyZWVtZW50cyByZWxhdGluZyB0byB0aGUgSW5zdGFsbGFibGUgU29mdHdhcmUgdG8gYmUgcHJlc2VudGVkIHRvLCBhbmQgYWNjZXB0ZWQgYnksIHRoZSB1c2VycyBvZiB0aGUgUHJvdmlzaW9uaW5nIFRlY2hub2xvZ3kgaW4gYWNjb3JkYW5jZSB3aXRoIHRoZSBTcGVjaWZpY2F0aW9uLiBCeSB1c2luZyBQcm92aXNpb25pbmcgVGVjaG5vbG9neSBpbiBzdWNoIGEgbWFubmVyIGFuZCBtYWtpbmcgaXQgYXZhaWxhYmxlIGluIGFjY29yZGFuY2Ugd2l0aCB0aGUgU3BlY2lmaWNhdGlvbiwgeW91IGZ1cnRoZXIgYWNrbm93bGVkZ2UgeW91ciBhZ3JlZW1lbnQgdG8sIGFuZCB0aGUgYWNxdWlzaXRpb24gb2YgYWxsIG5lY2Vzc2FyeSByaWdodHMgdG8gcGVybWl0IHRoZSBmb2xsb3dpbmc6XG5cCitcblwKKyAgICBBIHNlcmllcyBvZiBhY3Rpb25zIG1heSBvY2N1ciAoIlByb3Zpc2lvbmluZyBQcm9jZXNzIikgaW4gd2hpY2ggYSB1c2VyIG1heSBleGVjdXRlIHRoZSBQcm92aXNpb25pbmcgVGVjaG5vbG9neSBvbiBhIG1hY2hpbmUgKCJUYXJnZXQgTWFjaGluZSIpIHdpdGggdGhlIGludGVudCBvZiBpbnN0YWxsaW5nLCBleHRlbmRpbmcgb3IgdXBkYXRpbmcgdGhlIGZ1bmN0aW9uYWxpdHkgb2YgYW4gRWNsaXBzZS1iYXNlZCBwcm9kdWN0LlxuXAorICAgIER1cmluZyB0aGUgUHJvdmlzaW9uaW5nIFByb2Nlc3MsIHRoZSBQcm92aXNpb25pbmcgVGVjaG5vbG9neSBtYXkgY2F1c2UgdGhpcmQgcGFydHkgSW5zdGFsbGFibGUgU29mdHdhcmUgb3IgYSBwb3J0aW9uIHRoZXJlb2YgdG8gYmUgYWNjZXNzZWQgYW5kIGNvcGllZCB0byB0aGUgVGFyZ2V0IE1hY2hpbmUuXG5cCisgICAgUHVyc3VhbnQgdG8gdGhlIFNwZWNpZmljYXRpb24sIHlvdSB3aWxsIHByb3ZpZGUgdG8gdGhlIHVzZXIgdGhlIHRlcm1zIGFuZCBjb25kaXRpb25zIHRoYXQgZ292ZXJuIHRoZSB1c2Ugb2YgdGhlIEluc3RhbGxhYmxlIFNvZnR3YXJlICgiSW5zdGFsbGFibGUgU29mdHdhcmUgQWdyZWVtZW50IikgYW5kIHN1Y2ggSW5zdGFsbGFibGUgU29mdHdhcmUgQWdyZWVtZW50IHNoYWxsIGJlIGFjY2Vzc2VkIGZyb20gdGhlIFRhcmdldCBNYWNoaW5lIGluIGFjY29yZGFuY2Ugd2l0aCB0aGUgU3BlY2lmaWNhdGlvbi4gU3VjaCBJbnN0YWxsYWJsZSBTb2Z0d2FyZSBBZ3JlZW1lbnQgbXVzdCBpbmZvcm0gdGhlIHVzZXIgb2YgdGhlIHRlcm1zIGFuZCBjb25kaXRpb25zIHRoYXQgZ292ZXJuIHRoZSBJbnN0YWxsYWJsZSBTb2Z0d2FyZSBhbmQgbXVzdCBzb2xpY2l0IGFjY2VwdGFuY2UgYnkgdGhlIGVuZCB1c2VyIGluIHRoZSBtYW5uZXIgcHJlc2NyaWJlZCBpbiBzdWNoIEluc3RhbGxhYmxlIFNvZnR3YXJlIEFncmVlbWVudC4gVXBvbiBzdWNoIGluZGljYXRpb24gb2YgYWdyZWVtZW50IGJ5IHRoZSB1c2VyLCB0aGUgcHJvdmlzaW9uaW5nIFRlY2hub2xvZ3kgd2lsbCBjb21wbGV0ZSBpbnN0YWxsYXRpb24gb2YgdGhlIEluc3RhbGxhYmxlIFNvZnR3YXJlLlxuXAorXG5cCitDcnlwdG9ncmFwaHlcblwKK1xuXAorQ29udGVudCBtYXkgY29udGFpbiBlbmNyeXB0aW9uIHNvZnR3YXJlLiBUaGUgY291bnRyeSBpbiB3aGljaCB5b3UgYXJlIGN1cnJlbnRseSBtYXkgaGF2ZSByZXN0cmljdGlvbnMgb24gdGhlIGltcG9ydCwgcG9zc2Vzc2lvbiwgYW5kIHVzZSwgYW5kL29yIHJlLWV4cG9ydCB0byBhbm90aGVyIGNvdW50cnksIG9mIGVuY3J5cHRpb24gc29mdHdhcmUuIEJFRk9SRSB1c2luZyBhbnkgZW5jcnlwdGlvbiBzb2Z0d2FyZSwgcGxlYXNlIGNoZWNrIHRoZSBjb3VudHJ5J3MgbGF3cywgcmVndWxhdGlvbnMgYW5kIHBvbGljaWVzIGNvbmNlcm5pbmcgdGhlIGltcG9ydCwgcG9zc2Vzc2lvbiwgb3IgdXNlLCBhbmQgcmUtZXhwb3J0IG9mIGVuY3J5cHRpb24gc29mdHdhcmUsIHRvIHNlZSBpZiB0aGlzIGlzIHBlcm1pdHRlZC5cblwKK1xuXAorSmF2YSBhbmQgYWxsIEphdmEtYmFzZWQgdHJhZGVtYXJrcyBhcmUgdHJhZGVtYXJrcyBvZiBPcmFjbGUgQ29ycG9yYXRpb24gaW4gdGhlIFVuaXRlZCBTdGF0ZXMsIG90aGVyIGNvdW50cmllcywgb3IgYm90aC4KKworIyAiY29weXJpZ2h0IiBwcm9wZXJ0eSAtIHRleHQgb2YgdGhlICJGZWF0dXJlIFVwZGF0ZSBDb3B5cmlnaHQiCitjb3B5cmlnaHQ9Q29weXJpZ2h0IChjKSAyMDE2LTIwMTkgQ2hhbG1lcnMgfCBVbml2ZXJzaXR5IG9mIEdvdGhlbmJ1cmcsIHJ0LWxhYnMgYW5kIG90aGVycy5cblwKK0FsbCByaWdodHMgcmVzZXJ2ZWQuIFRoaXMgcHJvZ3JhbSBhbmQgdGhlIGFjY29tcGFueWluZyBtYXRlcmlhbHNcblwKK2FyZSBtYWRlIGF2YWlsYWJsZSB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEVjbGlwc2UgUHVibGljIExpY2Vuc2UgdjIuMFxuXAord2hpY2ggYWNjb21wYW5pZXMgdGhpcyBkaXN0cmlidXRpb24sIGFuZCBpcyBhdmFpbGFibGUgYXRcblwKK2h0dHBzOi8vd3d3LmVjbGlwc2Uub3JnL2xlZ2FsL2VwbC12MjAuaHRtbFxuXApkaWZmIC0tZ2l0IGEvZmVhdHVyZXMvb3JnLmVjbGlwc2UuY2FwcmEuaGFuZGxlci5hcHA0bWMuZmVhdHVyZS9mZWF0dXJlLnhtbCBiL2ZlYXR1cmVzL29yZy5lY2xpcHNlLmNhcHJhLmhhbmRsZXIuYXBwNG1jLmZlYXR1cmUvZmVhdHVyZS54bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMmI5OGFiYgotLS0gL2Rldi9udWxsCisrKyBiL2ZlYXR1cmVzL29yZy5lY2xpcHNlLmNhcHJhLmhhbmRsZXIuYXBwNG1jLmZlYXR1cmUvZmVhdHVyZS54bWwKQEAgLTAsMCArMSwyNiBAQAorPD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiPz4KKzxmZWF0dXJlCisgICAgICBpZD0ib3JnLmVjbGlwc2UuY2FwcmEuaGFuZGxlci5hcHA0bWMuZmVhdHVyZSIKKyAgICAgIGxhYmVsPSJBUFA0TUMgSGFuZGxlciIKKyAgICAgIHZlcnNpb249IjAuNy4yLnF1YWxpZmllciI+CisKKyAgIDxkZXNjcmlwdGlvbiB1cmw9IiV1cmwiPgorICAgICAgJWRlc2NyaXB0aW9uCisgICA8L2Rlc2NyaXB0aW9uPgorCisgICA8Y29weXJpZ2h0PgorICAgICAgJWNvcHlyaWdodAorICAgPC9jb3B5cmlnaHQ+CisKKyAgIDxsaWNlbnNlIHVybD0iJWxpY2Vuc2VVUkwiPgorICAgICAgJWxpY2Vuc2UKKyAgIDwvbGljZW5zZT4KKworICAgPHBsdWdpbgorICAgICAgICAgaWQ9Im9yZy5lY2xpcHNlLmNhcHJhLmhhbmRsZXIuYXBwNG1jIgorICAgICAgICAgZG93bmxvYWQtc2l6ZT0iMCIKKyAgICAgICAgIGluc3RhbGwtc2l6ZT0iMCIKKyAgICAgICAgIHZlcnNpb249IjAuMC4wIgorICAgICAgICAgdW5wYWNrPSJmYWxzZSIvPgorCis8L2ZlYXR1cmU+CmRpZmYgLS1naXQgYS9mZWF0dXJlcy9vcmcuZWNsaXBzZS5jYXByYS5oYW5kbGVyLmFwcDRtYy5mZWF0dXJlL2xpY2Vuc2UuaHRtbCBiL2ZlYXR1cmVzL29yZy5lY2xpcHNlLmNhcHJhLmhhbmRsZXIuYXBwNG1jLmZlYXR1cmUvbGljZW5zZS5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjY4OTA3YTQKLS0tIC9kZXYvbnVsbAorKysgYi9mZWF0dXJlcy9vcmcuZWNsaXBzZS5jYXByYS5oYW5kbGVyLmFwcDRtYy5mZWF0dXJlL2xpY2Vuc2UuaHRtbApAQCAtMCwwICsxLDE4MSBAQAorPCEtLT94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iSVNPLTg4NTktMSIgPy0tPgorPCFET0NUWVBFIGh0bWwgUFVCTElDICItLy9XM0MvL0RURCBYSFRNTCAxLjAgU3RyaWN0Ly9FTiIgImh0dHA6Ly93d3cudzMub3JnL1RSL3hodG1sMS9EVEQveGh0bWwxLXN0cmljdC5kdGQiPgorPGh0bWwgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkveGh0bWwiIGNsYXNzPSJncl9fZWNsaXBzZV9vcmciPjxoZWFkPgorPG1ldGEgaHR0cC1lcXVpdj0iQ29udGVudC1UeXBlIiBjb250ZW50PSJ0ZXh0L2h0bWw7IGNoYXJzZXQ9d2luZG93cy0xMjUyIj4KKzx0aXRsZT5FY2xpcHNlIEZvdW5kYXRpb24gU29mdHdhcmUgVXNlciBBZ3JlZW1lbnQ8L3RpdGxlPgorPC9oZWFkPgorCis8Ym9keSBkYXRhLWdyLWMtcy1sb2FkZWQ9InRydWUiIGxhbmc9IkVOLVVTIj4KKwk8aDI+RWNsaXBzZSBGb3VuZGF0aW9uIFNvZnR3YXJlIFVzZXIgQWdyZWVtZW50PC9oMj4KKwk8cD5Ob3ZlbWJlciAyMiwgMjAxNzwvcD4KKworCTxoMz5Vc2FnZSBPZiBDb250ZW50PC9oMz4KKworCTxwPlRIRSBFQ0xJUFNFIEZPVU5EQVRJT04gTUFLRVMgQVZBSUxBQkxFIFNPRlRXQVJFLCBET0NVTUVOVEFUSU9OLAorCQlJTkZPUk1BVElPTiBBTkQvT1IgT1RIRVIgTUFURVJJQUxTIEZPUiBPUEVOIFNPVVJDRSBQUk9KRUNUUworCQkoQ09MTEVDVElWRUxZICJDT05URU5UIikuIFVTRSBPRiBUSEUgQ09OVEVOVCBJUyBHT1ZFUk5FRCBCWQorCQlUSEUgVEVSTVMgQU5EIENPTkRJVElPTlMgT0YgVEhJUyBBR1JFRU1FTlQgQU5EL09SIFRIRSBURVJNUyBBTkQKKwkJQ09ORElUSU9OUyBPRiBMSUNFTlNFIEFHUkVFTUVOVFMgT1IgTk9USUNFUyBJTkRJQ0FURUQgT1IgUkVGRVJFTkNFRAorCQlCRUxPVy4gQlkgVVNJTkcgVEhFIENPTlRFTlQsIFlPVSBBR1JFRSBUSEFUIFlPVVIgVVNFIE9GIFRIRSBDT05URU5UIElTCisJCUdPVkVSTkVEIEJZIFRISVMgQUdSRUVNRU5UIEFORC9PUiBUSEUgVEVSTVMgQU5EIENPTkRJVElPTlMgT0YgQU5ZCisJCUFQUExJQ0FCTEUgTElDRU5TRSBBR1JFRU1FTlRTIE9SIE5PVElDRVMgSU5ESUNBVEVEIE9SIFJFRkVSRU5DRUQKKwkJQkVMT1cuIElGIFlPVSBETyBOT1QgQUdSRUUgVE8gVEhFIFRFUk1TIEFORCBDT05ESVRJT05TIE9GIFRISVMKKwkJQUdSRUVNRU5UIEFORCBUSEUgVEVSTVMgQU5EIENPTkRJVElPTlMgT0YgQU5ZIEFQUExJQ0FCTEUgTElDRU5TRQorCQlBR1JFRU1FTlRTIE9SIE5PVElDRVMgSU5ESUNBVEVEIE9SIFJFRkVSRU5DRUQgQkVMT1csIFRIRU4gWU9VIE1BWSBOT1QKKwkJVVNFIFRIRSBDT05URU5ULjwvcD4KKworCTxoMz5BcHBsaWNhYmxlIExpY2Vuc2VzPC9oMz4KKworCTxwPgorCQlVbmxlc3Mgb3RoZXJ3aXNlIGluZGljYXRlZCwgYWxsIENvbnRlbnQgbWFkZSBhdmFpbGFibGUgYnkgdGhlIEVjbGlwc2UKKwkJRm91bmRhdGlvbiBpcyBwcm92aWRlZCB0byB5b3UgdW5kZXIgdGhlIHRlcm1zIGFuZCBjb25kaXRpb25zIG9mIHRoZQorCQlFY2xpcHNlIFB1YmxpYyBMaWNlbnNlIFZlcnNpb24gMi4wICgiRVBMIikuIEEgY29weSBvZiB0aGUKKwkJRVBMIGlzIHByb3ZpZGVkIHdpdGggdGhpcyBDb250ZW50IGFuZCBpcyBhbHNvIGF2YWlsYWJsZSBhdCA8YSBocmVmPSJodHRwOi8vd3d3LmVjbGlwc2Uub3JnL2xlZ2FsL2VwbC0yLjAiPmh0dHA6Ly93d3cuZWNsaXBzZS5vcmcvbGVnYWwvZXBsLTIuMDwvYT4uCisJCUZvciBwdXJwb3NlcyBvZiB0aGUgRVBMLCAiUHJvZ3JhbSIgd2lsbCBtZWFuIHRoZSBDb250ZW50LgorCTwvcD4KKworCTxwPkNvbnRlbnQgaW5jbHVkZXMsIGJ1dCBpcyBub3QgbGltaXRlZCB0bywgc291cmNlIGNvZGUsIG9iamVjdAorCQljb2RlLCBkb2N1bWVudGF0aW9uIGFuZCBvdGhlciBmaWxlcyBtYWludGFpbmVkIGluIHRoZSBFY2xpcHNlCisJCUZvdW5kYXRpb24gc291cmNlIGNvZGUgcmVwb3NpdG9yeSAoIlJlcG9zaXRvcnkiKSBpbiBzb2Z0d2FyZQorCQltb2R1bGVzICgiTW9kdWxlcyIpIGFuZCBtYWRlIGF2YWlsYWJsZSBhcyBkb3dubG9hZGFibGUKKwkJYXJjaGl2ZXMgKCJEb3dubG9hZHMiKS48L3A+CisKKwk8dWw+CisJCTxsaT5Db250ZW50IG1heSBiZSBzdHJ1Y3R1cmVkIGFuZCBwYWNrYWdlZCBpbnRvIG1vZHVsZXMgdG8KKwkJCWZhY2lsaXRhdGUgZGVsaXZlcmluZywgZXh0ZW5kaW5nLCBhbmQgdXBncmFkaW5nIHRoZSBDb250ZW50LiBUeXBpY2FsCisJCQltb2R1bGVzIG1heSBpbmNsdWRlIHBsdWctaW5zICgiUGx1Zy1pbnMiKSwgcGx1Zy1pbgorCQkJZnJhZ21lbnRzICgiRnJhZ21lbnRzIiksIGFuZCBmZWF0dXJlcworCQkJKCJGZWF0dXJlcyIpLjwvbGk+CisJCTxsaT5FYWNoIFBsdWctaW4gb3IgRnJhZ21lbnQgbWF5IGJlIHBhY2thZ2VkIGFzIGEgc3ViLWRpcmVjdG9yeQorCQkJb3IgSkFSIChKYXZhmSBBUmNoaXZlKSBpbiBhIGRpcmVjdG9yeSBuYW1lZAorCQkJInBsdWdpbnMiLjwvbGk+CisJCTxsaT5BIEZlYXR1cmUgaXMgYSBidW5kbGUgb2Ygb25lIG9yIG1vcmUgUGx1Zy1pbnMgYW5kL29yCisJCQlGcmFnbWVudHMgYW5kIGFzc29jaWF0ZWQgbWF0ZXJpYWwuIEVhY2ggRmVhdHVyZSBtYXkgYmUgcGFja2FnZWQgYXMgYQorCQkJc3ViLWRpcmVjdG9yeSBpbiBhIGRpcmVjdG9yeSBuYW1lZCAiZmVhdHVyZXMiLiBXaXRoaW4gYQorCQkJRmVhdHVyZSwgZmlsZXMgbmFtZWQgImZlYXR1cmUueG1sIiBtYXkgY29udGFpbiBhIGxpc3Qgb2YKKwkJCXRoZSBuYW1lcyBhbmQgdmVyc2lvbiBudW1iZXJzIG9mIHRoZSBQbHVnLWlucyBhbmQvb3IgRnJhZ21lbnRzCisJCQlhc3NvY2lhdGVkIHdpdGggdGhhdCBGZWF0dXJlLjwvbGk+CisJCTxsaT5GZWF0dXJlcyBtYXkgYWxzbyBpbmNsdWRlIG90aGVyIEZlYXR1cmVzICgiSW5jbHVkZWQKKwkJCUZlYXR1cmVzIikuIFdpdGhpbiBhIEZlYXR1cmUsIGZpbGVzIG5hbWVkCisJCQkiZmVhdHVyZS54bWwiIG1heSBjb250YWluIGEgbGlzdCBvZiB0aGUgbmFtZXMgYW5kIHZlcnNpb24KKwkJCW51bWJlcnMgb2YgSW5jbHVkZWQgRmVhdHVyZXMuPC9saT4KKwk8L3VsPgorCisJPHA+VGhlIHRlcm1zIGFuZCBjb25kaXRpb25zIGdvdmVybmluZyBQbHVnLWlucyBhbmQgRnJhZ21lbnRzIHNob3VsZAorCQliZSBjb250YWluZWQgaW4gZmlsZXMgbmFtZWQgImFib3V0Lmh0bWwiCisJCSgiQWJvdXRzIikuIFRoZSB0ZXJtcyBhbmQgY29uZGl0aW9ucyBnb3Zlcm5pbmcgRmVhdHVyZXMgYW5kCisJCUluY2x1ZGVkIEZlYXR1cmVzIHNob3VsZCBiZSBjb250YWluZWQgaW4gZmlsZXMgbmFtZWQKKwkJImxpY2Vuc2UuaHRtbCIgKCJGZWF0dXJlIExpY2Vuc2VzIikuIEFib3V0cyBhbmQKKwkJRmVhdHVyZSBMaWNlbnNlcyBtYXkgYmUgbG9jYXRlZCBpbiBhbnkgZGlyZWN0b3J5IG9mIGEgRG93bmxvYWQgb3IKKwkJTW9kdWxlIGluY2x1ZGluZywgYnV0IG5vdCBsaW1pdGVkIHRvIHRoZSBmb2xsb3dpbmcgbG9jYXRpb25zOjwvcD4KKworCTx1bD4KKwkJPGxpPlRoZSB0b3AtbGV2ZWwgKHJvb3QpIGRpcmVjdG9yeTwvbGk+CisJCTxsaT5QbHVnLWluIGFuZCBGcmFnbWVudCBkaXJlY3RvcmllczwvbGk+CisJCTxsaT5JbnNpZGUgUGx1Zy1pbnMgYW5kIEZyYWdtZW50cyBwYWNrYWdlZCBhcyBKQVJzPC9saT4KKwkJPGxpPlN1Yi1kaXJlY3RvcmllcyBvZiB0aGUgZGlyZWN0b3J5IG5hbWVkICJzcmMiIG9mCisJCQljZXJ0YWluIFBsdWctaW5zPC9saT4KKwkJPGxpPkZlYXR1cmUgZGlyZWN0b3JpZXM8L2xpPgorCTwvdWw+CisKKwk8cD5Ob3RlOiBpZiBhIEZlYXR1cmUgbWFkZSBhdmFpbGFibGUgYnkgdGhlIEVjbGlwc2UgRm91bmRhdGlvbiBpcworCQlpbnN0YWxsZWQgdXNpbmcgdGhlIFByb3Zpc2lvbmluZyBUZWNobm9sb2d5IChhcyBkZWZpbmVkIGJlbG93KSwgeW91CisJCW11c3QgYWdyZWUgdG8gYSBsaWNlbnNlICgiRmVhdHVyZSBVcGRhdGUgTGljZW5zZSIpIGR1cmluZworCQl0aGUgaW5zdGFsbGF0aW9uIHByb2Nlc3MuIElmIHRoZSBGZWF0dXJlIGNvbnRhaW5zIEluY2x1ZGVkIEZlYXR1cmVzLAorCQl0aGUgRmVhdHVyZSBVcGRhdGUgTGljZW5zZSBzaG91bGQgZWl0aGVyIHByb3ZpZGUgeW91IHdpdGggdGhlIHRlcm1zCisJCWFuZCBjb25kaXRpb25zIGdvdmVybmluZyB0aGUgSW5jbHVkZWQgRmVhdHVyZXMgb3IgaW5mb3JtIHlvdSB3aGVyZSB5b3UKKwkJY2FuIGxvY2F0ZSB0aGVtLiBGZWF0dXJlIFVwZGF0ZSBMaWNlbnNlcyBtYXkgYmUgZm91bmQgaW4gdGhlCisJCSJsaWNlbnNlIiBwcm9wZXJ0eSBvZiBmaWxlcyBuYW1lZAorCQkiZmVhdHVyZS5wcm9wZXJ0aWVzIiBmb3VuZCB3aXRoaW4gYSBGZWF0dXJlLiBTdWNoIEFib3V0cywKKwkJRmVhdHVyZSBMaWNlbnNlcywgYW5kIEZlYXR1cmUgVXBkYXRlIExpY2Vuc2VzIGNvbnRhaW4gdGhlIHRlcm1zIGFuZAorCQljb25kaXRpb25zIChvciByZWZlcmVuY2VzIHRvIHN1Y2ggdGVybXMgYW5kIGNvbmRpdGlvbnMpIHRoYXQgZ292ZXJuCisJCXlvdXIgdXNlIG9mIHRoZSBhc3NvY2lhdGVkIENvbnRlbnQgaW4gdGhhdCBkaXJlY3RvcnkuPC9wPgorCisJPHA+VEhFIEFCT1VUUywgRkVBVFVSRSBMSUNFTlNFUywgQU5EIEZFQVRVUkUgVVBEQVRFIExJQ0VOU0VTIE1BWQorCQlSRUZFUiBUTyBUSEUgRVBMIE9SIE9USEVSIExJQ0VOU0UgQUdSRUVNRU5UUywgTk9USUNFUyBPUiBURVJNUyBBTkQKKwkJQ09ORElUSU9OUy4gU09NRSBPRiBUSEVTRSBPVEhFUiBMSUNFTlNFIEFHUkVFTUVOVFMgTUFZIElOQ0xVREUgKEJVVAorCQlBUkUgTk9UIExJTUlURUQgVE8pOjwvcD4KKworCTx1bD4KKwkJPGxpPkVjbGlwc2UgUHVibGljIExpY2Vuc2UgVmVyc2lvbiAxLjAgKGF2YWlsYWJsZSBhdCA8YSBocmVmPSJodHRwOi8vd3d3LmVjbGlwc2Uub3JnL2xlZ2FsL2VwbC12MTAuaHRtbCI+aHR0cDovL3d3dy5lY2xpcHNlLm9yZy9sZWdhbC9lcGwtdjEwLmh0bWw8L2E+KQorCQk8L2xpPgorCQk8bGk+RWNsaXBzZSBEaXN0cmlidXRpb24gTGljZW5zZSBWZXJzaW9uIDEuMCAoYXZhaWxhYmxlIGF0IDxhIGhyZWY9Imh0dHA6Ly93d3cuZWNsaXBzZS5vcmcvbGljZW5zZXMvZWRsLXYxMC5odG1sIj5odHRwOi8vd3d3LmVjbGlwc2Uub3JnL2xpY2Vuc2VzL2VkbC12MS4wLmh0bWw8L2E+KQorCQk8L2xpPgorCQk8bGk+Q29tbW9uIFB1YmxpYyBMaWNlbnNlIFZlcnNpb24gMS4wIChhdmFpbGFibGUgYXQgPGEgaHJlZj0iaHR0cDovL3d3dy5lY2xpcHNlLm9yZy9sZWdhbC9jcGwtdjEwLmh0bWwiPmh0dHA6Ly93d3cuZWNsaXBzZS5vcmcvbGVnYWwvY3BsLXYxMC5odG1sPC9hPikKKwkJPC9saT4KKwkJPGxpPkFwYWNoZSBTb2Z0d2FyZSBMaWNlbnNlIDEuMSAoYXZhaWxhYmxlIGF0IDxhIGhyZWY9Imh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFIj5odHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRTwvYT4pCisJCTwvbGk+CisJCTxsaT5BcGFjaGUgU29mdHdhcmUgTGljZW5zZSAyLjAgKGF2YWlsYWJsZSBhdCA8YSBocmVmPSJodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjAiPmh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMDwvYT4pCisJCTwvbGk+CisJCTxsaT5Nb3ppbGxhIFB1YmxpYyBMaWNlbnNlIFZlcnNpb24gMS4xIChhdmFpbGFibGUgYXQgPGEgaHJlZj0iaHR0cDovL3d3dy5tb3ppbGxhLm9yZy9NUEwvTVBMLTEuMS5odG1sIj5odHRwOi8vd3d3Lm1vemlsbGEub3JnL01QTC9NUEwtMS4xLmh0bWw8L2E+KQorCQk8L2xpPgorCTwvdWw+CisKKwk8cD5JVCBJUyBZT1VSIE9CTElHQVRJT04gVE8gUkVBRCBBTkQgQUNDRVBUIEFMTCBTVUNIIFRFUk1TIEFORAorCQlDT05ESVRJT05TIFBSSU9SIFRPIFVTRSBPRiBUSEUgQ09OVEVOVC4gSWYgbm8gQWJvdXQsIEZlYXR1cmUgTGljZW5zZSwKKwkJb3IgRmVhdHVyZSBVcGRhdGUgTGljZW5zZSBpcyBwcm92aWRlZCwgcGxlYXNlIGNvbnRhY3QgdGhlIEVjbGlwc2UKKwkJRm91bmRhdGlvbiB0byBkZXRlcm1pbmUgd2hhdCB0ZXJtcyBhbmQgY29uZGl0aW9ucyBnb3Zlcm4gdGhhdAorCQlwYXJ0aWN1bGFyIENvbnRlbnQuPC9wPgorCisKKwk8aDM+VXNlIG9mIFByb3Zpc2lvbmluZyBUZWNobm9sb2d5PC9oMz4KKworCTxwPgorCQlUaGUgRWNsaXBzZSBGb3VuZGF0aW9uIG1ha2VzIGF2YWlsYWJsZSBwcm92aXNpb25pbmcgc29mdHdhcmUsIGV4YW1wbGVzCisJCW9mIHdoaWNoIGluY2x1ZGUsIGJ1dCBhcmUgbm90IGxpbWl0ZWQgdG8sIHAyIGFuZCB0aGUgRWNsaXBzZSBVcGRhdGUKKwkJTWFuYWdlciAoIlByb3Zpc2lvbmluZyBUZWNobm9sb2d5IikgZm9yIHRoZSBwdXJwb3NlIG9mCisJCWFsbG93aW5nIHVzZXJzIHRvIGluc3RhbGwgc29mdHdhcmUsIGRvY3VtZW50YXRpb24sIGluZm9ybWF0aW9uIGFuZC9vcgorCQlvdGhlciBtYXRlcmlhbHMgKGNvbGxlY3RpdmVseSAiSW5zdGFsbGFibGUgU29mdHdhcmUiKS4gVGhpcworCQljYXBhYmlsaXR5IGlzIHByb3ZpZGVkIHdpdGggdGhlIGludGVudCBvZiBhbGxvd2luZyBzdWNoIHVzZXJzIHRvCisJCWluc3RhbGwsIGV4dGVuZCBhbmQgdXBkYXRlIEVjbGlwc2UtYmFzZWQgcHJvZHVjdHMuIEluZm9ybWF0aW9uIGFib3V0CisJCXBhY2thZ2luZyBJbnN0YWxsYWJsZSBTb2Z0d2FyZSBpcyBhdmFpbGFibGUgYXQgPGEgaHJlZj0iaHR0cDovL2VjbGlwc2Uub3JnL2VxdWlub3gvcDIvcmVwb3NpdG9yeV9wYWNrYWdpbmcuaHRtbCI+aHR0cDovL2VjbGlwc2Uub3JnL2VxdWlub3gvcDIvcmVwb3NpdG9yeV9wYWNrYWdpbmcuaHRtbDwvYT4KKwkJKCJTcGVjaWZpY2F0aW9uIikuCisJPC9wPgorCisJPHA+WW91IG1heSB1c2UgUHJvdmlzaW9uaW5nIFRlY2hub2xvZ3kgdG8gYWxsb3cgb3RoZXIgcGFydGllcyB0bworCQlpbnN0YWxsIEluc3RhbGxhYmxlIFNvZnR3YXJlLiBZb3Ugc2hhbGwgYmUgcmVzcG9uc2libGUgZm9yIGVuYWJsaW5nCisJCXRoZSBhcHBsaWNhYmxlIGxpY2Vuc2UgYWdyZWVtZW50cyByZWxhdGluZyB0byB0aGUgSW5zdGFsbGFibGUgU29mdHdhcmUKKwkJdG8gYmUgcHJlc2VudGVkIHRvLCBhbmQgYWNjZXB0ZWQgYnksIHRoZSB1c2VycyBvZiB0aGUgUHJvdmlzaW9uaW5nCisJCVRlY2hub2xvZ3kgaW4gYWNjb3JkYW5jZSB3aXRoIHRoZSBTcGVjaWZpY2F0aW9uLiBCeSB1c2luZyBQcm92aXNpb25pbmcKKwkJVGVjaG5vbG9neSBpbiBzdWNoIGEgbWFubmVyIGFuZCBtYWtpbmcgaXQgYXZhaWxhYmxlIGluIGFjY29yZGFuY2Ugd2l0aAorCQl0aGUgU3BlY2lmaWNhdGlvbiwgeW91IGZ1cnRoZXIgYWNrbm93bGVkZ2UgeW91ciBhZ3JlZW1lbnQgdG8sIGFuZCB0aGUKKwkJYWNxdWlzaXRpb24gb2YgYWxsIG5lY2Vzc2FyeSByaWdodHMgdG8gcGVybWl0IHRoZSBmb2xsb3dpbmc6PC9wPgorCisJPG9sPgorCQk8bGk+QSBzZXJpZXMgb2YgYWN0aW9ucyBtYXkgb2NjdXIgKCJQcm92aXNpb25pbmcKKwkJCVByb2Nlc3MiKSBpbiB3aGljaCBhIHVzZXIgbWF5IGV4ZWN1dGUgdGhlIFByb3Zpc2lvbmluZworCQkJVGVjaG5vbG9neSBvbiBhIG1hY2hpbmUgKCJUYXJnZXQgTWFjaGluZSIpIHdpdGggdGhlIGludGVudAorCQkJb2YgaW5zdGFsbGluZywgZXh0ZW5kaW5nIG9yIHVwZGF0aW5nIHRoZSBmdW5jdGlvbmFsaXR5IG9mIGFuCisJCQlFY2xpcHNlLWJhc2VkIHByb2R1Y3QuPC9saT4KKwkJPGxpPkR1cmluZyB0aGUgUHJvdmlzaW9uaW5nIFByb2Nlc3MsIHRoZSBQcm92aXNpb25pbmcgVGVjaG5vbG9neQorCQkJbWF5IGNhdXNlIHRoaXJkIHBhcnR5IEluc3RhbGxhYmxlIFNvZnR3YXJlIG9yIGEgcG9ydGlvbiB0aGVyZW9mIHRvIGJlCisJCQlhY2Nlc3NlZCBhbmQgY29waWVkIHRvIHRoZSBUYXJnZXQgTWFjaGluZS48L2xpPgorCQk8bGk+UHVyc3VhbnQgdG8gdGhlIFNwZWNpZmljYXRpb24sIHlvdSB3aWxsIHByb3ZpZGUgdG8gdGhlIHVzZXIKKwkJCXRoZSB0ZXJtcyBhbmQgY29uZGl0aW9ucyB0aGF0IGdvdmVybiB0aGUgdXNlIG9mIHRoZSBJbnN0YWxsYWJsZQorCQkJU29mdHdhcmUgKCJJbnN0YWxsYWJsZSBTb2Z0d2FyZSBBZ3JlZW1lbnQiKSBhbmQgc3VjaAorCQkJSW5zdGFsbGFibGUgU29mdHdhcmUgQWdyZWVtZW50IHNoYWxsIGJlIGFjY2Vzc2VkIGZyb20gdGhlIFRhcmdldAorCQkJTWFjaGluZSBpbiBhY2NvcmRhbmNlIHdpdGggdGhlIFNwZWNpZmljYXRpb24uIFN1Y2ggSW5zdGFsbGFibGUKKwkJCVNvZnR3YXJlIEFncmVlbWVudCBtdXN0IGluZm9ybSB0aGUgdXNlciBvZiB0aGUgdGVybXMgYW5kIGNvbmRpdGlvbnMKKwkJCXRoYXQgZ292ZXJuIHRoZSBJbnN0YWxsYWJsZSBTb2Z0d2FyZSBhbmQgbXVzdCBzb2xpY2l0IGFjY2VwdGFuY2UgYnkKKwkJCXRoZSBlbmQgdXNlciBpbiB0aGUgbWFubmVyIHByZXNjcmliZWQgaW4gc3VjaCBJbnN0YWxsYWJsZSBTb2Z0d2FyZQorCQkJQWdyZWVtZW50LiBVcG9uIHN1Y2ggaW5kaWNhdGlvbiBvZiBhZ3JlZW1lbnQgYnkgdGhlIHVzZXIsIHRoZQorCQkJcHJvdmlzaW9uaW5nIFRlY2hub2xvZ3kgd2lsbCBjb21wbGV0ZSBpbnN0YWxsYXRpb24gb2YgdGhlIEluc3RhbGxhYmxlCisJCQlTb2Z0d2FyZS48L2xpPgorCTwvb2w+CisKKwk8aDM+Q3J5cHRvZ3JhcGh5PC9oMz4KKworCTxwPkNvbnRlbnQgbWF5IGNvbnRhaW4gZW5jcnlwdGlvbiBzb2Z0d2FyZS4gVGhlIGNvdW50cnkgaW4gd2hpY2gKKwkJeW91IGFyZSBjdXJyZW50bHkgbWF5IGhhdmUgcmVzdHJpY3Rpb25zIG9uIHRoZSBpbXBvcnQsIHBvc3Nlc3Npb24sIGFuZAorCQl1c2UsIGFuZC9vciByZS1leHBvcnQgdG8gYW5vdGhlciBjb3VudHJ5LCBvZiBlbmNyeXB0aW9uIHNvZnR3YXJlLgorCQlCRUZPUkUgdXNpbmcgYW55IGVuY3J5cHRpb24gc29mdHdhcmUsIHBsZWFzZSBjaGVjayB0aGUgY291bnRyeSdzIGxhd3MsCisJCXJlZ3VsYXRpb25zIGFuZCBwb2xpY2llcyBjb25jZXJuaW5nIHRoZSBpbXBvcnQsIHBvc3Nlc3Npb24sIG9yIHVzZSwKKwkJYW5kIHJlLWV4cG9ydCBvZiBlbmNyeXB0aW9uIHNvZnR3YXJlLCB0byBzZWUgaWYgdGhpcyBpcyBwZXJtaXR0ZWQuPC9wPgorCisJPHA+CisJCTxzbWFsbD5KYXZhIGFuZCBhbGwgSmF2YS1iYXNlZCB0cmFkZW1hcmtzIGFyZSB0cmFkZW1hcmtzIG9mCisJCQlPcmFjbGUgQ29ycG9yYXRpb24gaW4gdGhlIFVuaXRlZCBTdGF0ZXMsIG90aGVyIGNvdW50cmllcywgb3IgYm90aC48L3NtYWxsPgorCTwvcD4KKworCis8L2JvZHk+PC9odG1sPgpcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUKZGlmZiAtLWdpdCBhL2ZlYXR1cmVzL29yZy5lY2xpcHNlLmNhcHJhLmhhbmRsZXIuYXBwNG1jLmZlYXR1cmUvcG9tLnhtbCBiL2ZlYXR1cmVzL29yZy5lY2xpcHNlLmNhcHJhLmhhbmRsZXIuYXBwNG1jLmZlYXR1cmUvcG9tLnhtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4zZGVkNjI3Ci0tLSAvZGV2L251bGwKKysrIGIvZmVhdHVyZXMvb3JnLmVjbGlwc2UuY2FwcmEuaGFuZGxlci5hcHA0bWMuZmVhdHVyZS9wb20ueG1sCkBAIC0wLDAgKzEsMjcgQEAKKzw/eG1sIHZlcnNpb249IjEuMCIgZW5jb2Rpbmc9IlVURi04IiBzdGFuZGFsb25lPSJubyI/PjwhLS0KKyAgICBDb3B5cmlnaHQgKGMpIDIwMTYsIDIwMTkgQ2hhbG1lcnMgfCBVbml2ZXJzaXR5IG9mIEdvdGhlbmJ1cmcsIHJ0LWxhYnMgYW5kIG90aGVycy4KKyAgICBBbGwgcmlnaHRzIHJlc2VydmVkLiBUaGlzIHByb2dyYW0gYW5kIHRoZSBhY2NvbXBhbnlpbmcgbWF0ZXJpYWxzCisgICAgYXJlIG1hZGUgYXZhaWxhYmxlIHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgRWNsaXBzZSBQdWJsaWMgTGljZW5zZSB2Mi4wCisgICAgd2hpY2ggYWNjb21wYW5pZXMgdGhpcyBkaXN0cmlidXRpb24sIGFuZCBpcyBhdmFpbGFibGUgYXQKKyAgICBodHRwOi8vd3d3LmVjbGlwc2Uub3JnL2xlZ2FsL2VwbC12MjAuaHRtbAorICAgICAKKyAgICBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogRVBMLTIuMAorICAgICAKKyAgICBDb250cmlidXRvcnM6CisgICAgICAgICBDaGFsbWVycyB8IFVuaXZlcnNpdHkgb2YgR290aGVuYnVyZyBhbmQgcnQtbGFicyAtIGluaXRpYWwgQVBJIGFuZCBpbXBsZW1lbnRhdGlvbiBhbmQvb3IgaW5pdGlhbCBkb2N1bWVudGF0aW9uCisgICAgICAgICBDaGFsbWVycyB8IFVuaXZlcnNpdHkgb2YgR290aGVuYnVyZyAtIGFkZGl0aW9uYWwgZmVhdHVyZXMsIHVwZGF0ZWQgQVBJCisgLS0+PHByb2plY3QgeG1sbnM9Imh0dHA6Ly9tYXZlbi5hcGFjaGUub3JnL1BPTS80LjAuMCIgeG1sbnM6eHNpPSJodHRwOi8vd3d3LnczLm9yZy8yMDAxL1hNTFNjaGVtYS1pbnN0YW5jZSIgeHNpOnNjaGVtYUxvY2F0aW9uPSJodHRwOi8vbWF2ZW4uYXBhY2hlLm9yZy9QT00vNC4wLjAgaHR0cDovL21hdmVuLmFwYWNoZS5vcmcveHNkL21hdmVuLTQuMC4wLnhzZCI+CisKKyAgICAgICAgPG1vZGVsVmVyc2lvbj40LjAuMDwvbW9kZWxWZXJzaW9uPgorCisgICAgICAgIDxwYXJlbnQ+CisgICAgICAgICAgICAgICAgPHJlbGF0aXZlUGF0aD4uLi8uLi9wb20ueG1sPC9yZWxhdGl2ZVBhdGg+CisgICAgICAgICAgICAgICAgPGdyb3VwSWQ+b3JnLmVjbGlwc2UuY2FwcmE8L2dyb3VwSWQ+CisgICAgICAgICAgICAgICAgPGFydGlmYWN0SWQ+cGFyZW50PC9hcnRpZmFjdElkPgorICAgICAgICAgICAgICAgIDx2ZXJzaW9uPjAuNy4yLVNOQVBTSE9UPC92ZXJzaW9uPgorICAgICAgICA8L3BhcmVudD4KKworICAgICAgICA8YXJ0aWZhY3RJZD5vcmcuZWNsaXBzZS5jYXByYS5oYW5kbGVyLmFwcDRtYy5mZWF0dXJlPC9hcnRpZmFjdElkPgorICAgICAgICA8cGFja2FnaW5nPmVjbGlwc2UtZmVhdHVyZTwvcGFja2FnaW5nPgorCis8L3Byb2plY3Q+CmRpZmYgLS1naXQgYS9wb20ueG1sIGIvcG9tLnhtbAppbmRleCBmYTUxN2JkLi5kZDA3YmI0IDEwMDY0NAotLS0gYS9wb20ueG1sCisrKyBiL3BvbS54bWwKQEAgLTIzLDYgKzIzLDcgQEAKIAkJPG1vZHVsZT5idW5kbGVzL29yZy5lY2xpcHNlLmNhcHJhLmdlbmVyaWMucHJpb3JpdHk8L21vZHVsZT4KIAkJPG1vZHVsZT5idW5kbGVzL29yZy5lY2xpcHNlLmNhcHJhLmdlbmVyaWMudHJhY2Vtb2RlbDwvbW9kdWxlPgogCQk8bW9kdWxlPmJ1bmRsZXMvb3JnLmVjbGlwc2UuY2FwcmEuZ2VuZXJpYy5hcnRpZmFjdG1vZGVsPC9tb2R1bGU+CisJCTxtb2R1bGU+YnVuZGxlcy9vcmcuZWNsaXBzZS5jYXByYS5oYW5kbGVyLmFwcDRtYzwvbW9kdWxlPgogCQk8bW9kdWxlPmJ1bmRsZXMvb3JnLmVjbGlwc2UuY2FwcmEuaGFuZGxlci5jZHQ8L21vZHVsZT4KIAkJPG1vZHVsZT5idW5kbGVzL29yZy5lY2xpcHNlLmNhcHJhLmhhbmRsZXIuZW1mPC9tb2R1bGU+CiAJCTxtb2R1bGU+YnVuZGxlcy9vcmcuZWNsaXBzZS5jYXByYS5oYW5kbGVyLmZpbGU8L21vZHVsZT4KQEAgLTYxLDYgKzYyLDcgQEAKIAkJPG1vZHVsZT5mZWF0dXJlcy9vcmcuZWNsaXBzZS5jYXByYS5mZWF0dXJlPC9tb2R1bGU+CiAJCTxtb2R1bGU+ZmVhdHVyZXMvb3JnLmVjbGlwc2UuY2FwcmEuY29yZS5mZWF0dXJlPC9tb2R1bGU+CiAJCTxtb2R1bGU+ZmVhdHVyZXMvb3JnLmVjbGlwc2UuY2FwcmEuZ2VuZXJpYy5mZWF0dXJlPC9tb2R1bGU+CisJCTxtb2R1bGU+ZmVhdHVyZXMvb3JnLmVjbGlwc2UuY2FwcmEuaGFuZGxlci5hcHA0bWMuZmVhdHVyZTwvbW9kdWxlPgogCQk8bW9kdWxlPmZlYXR1cmVzL29yZy5lY2xpcHNlLmNhcHJhLmhhbmRsZXIuY2R0LmZlYXR1cmU8L21vZHVsZT4KIAkJPG1vZHVsZT5mZWF0dXJlcy9vcmcuZWNsaXBzZS5jYXByYS5oYW5kbGVyLmh1ZHNvbi5mZWF0dXJlPC9tb2R1bGU+CiAJCTxtb2R1bGU+ZmVhdHVyZXMvb3JnLmVjbGlwc2UuY2FwcmEuaGFuZGxlci5vZmZpY2UuZmVhdHVyZTwvbW9kdWxlPgpkaWZmIC0tZ2l0IGEvcmVsZW5nL29yZy5lY2xpcHNlLmNhcHJhLnJlbGVuZy5wMi9jYXRlZ29yeS54bWwgYi9yZWxlbmcvb3JnLmVjbGlwc2UuY2FwcmEucmVsZW5nLnAyL2NhdGVnb3J5LnhtbAppbmRleCA1MjM1ZGFlLi4xNDNlY2JmIDEwMDY0NAotLS0gYS9yZWxlbmcvb3JnLmVjbGlwc2UuY2FwcmEucmVsZW5nLnAyL2NhdGVnb3J5LnhtbAorKysgYi9yZWxlbmcvb3JnLmVjbGlwc2UuY2FwcmEucmVsZW5nLnAyL2NhdGVnb3J5LnhtbApAQCAtMjcsNiArMjcsOSBAQAogICAgPGZlYXR1cmUgdXJsPSJmZWF0dXJlcy9vcmcuZWNsaXBzZS5jYXByYS5oYW5kbGVyLnBocC5mZWF0dXJlXzAuNy4yLnF1YWxpZmllci5qYXIiIGlkPSJvcmcuZWNsaXBzZS5jYXByYS5oYW5kbGVyLnBocC5mZWF0dXJlIiB2ZXJzaW9uPSIwLjcuMi5xdWFsaWZpZXIiPgogICAgICAgPGNhdGVnb3J5IG5hbWU9Im9yZy5lY2xpcHNlLmNhcHJhLmhhbmRsZXIiLz4KICAgIDwvZmVhdHVyZT4KKyAgIDxmZWF0dXJlIHVybD0iZmVhdHVyZXMvb3JnLmVjbGlwc2UuY2FwcmEuaGFuZGxlci5hcHA0bWMuZmVhdHVyZV8wLjcuMi5xdWFsaWZpZXIuamFyIiBpZD0ib3JnLmVjbGlwc2UuY2FwcmEuaGFuZGxlci5hcHA0bWMuZmVhdHVyZSIgdmVyc2lvbj0iMC43LjIucXVhbGlmaWVyIj4KKyAgICAgIDxjYXRlZ29yeSBuYW1lPSJvcmcuZWNsaXBzZS5jYXByYS5oYW5kbGVyIi8+CisgICA8L2ZlYXR1cmU+CiAgICA8ZmVhdHVyZSB1cmw9ImZlYXR1cmVzL29yZy5lY2xpcHNlLmNhcHJhLnVpLnBsYW50dW1sLmZlYXR1cmVfMC43LjIucXVhbGlmaWVyLmphciIgaWQ9Im9yZy5lY2xpcHNlLmNhcHJhLnVpLnBsYW50dW1sLmZlYXR1cmUiIHZlcnNpb249IjAuNy4yLnF1YWxpZmllciI+CiAgICAgICA8Y2F0ZWdvcnkgbmFtZT0ib3JnLmVjbGlwc2UuY2FwcmEudWkiLz4KICAgIDwvZmVhdHVyZT4KQEAgLTQ0LDcgKzQ3LDcgQEAKICAgICAgIDwvZGVzY3JpcHRpb24+CiAgICA8L2NhdGVnb3J5LWRlZj4KICAgIDxjYXRlZ29yeS1kZWYgbmFtZT0ib3JnLmVjbGlwc2UuY2FwcmEudWkiIGxhYmVsPSJFY2xpcHNlIENhcHJhIFRyYWNlYWJpbGl0eSBWaXN1YWxpc2F0aW9uIj4KLSAgIAk8ZGVzY3JpcHRpb24+CisgICAgICA8ZGVzY3JpcHRpb24+CiAgICAgICAgICBGZWF0dXJlcyB0byB2aXN1YWxpc2UgdHJhY2VhYmlsaXR5IGxpbmtzIGFuZCBwZXJmb3JtIGNoYW5nZSBpbXBhY3QgYW5hbHlzaXMuCiAgICAgICA8L2Rlc2NyaXB0aW9uPgogICAgPC9jYXRlZ29yeS1kZWY+CmRpZmYgLS1naXQgYS9yZWxlbmcvb3JnLmVjbGlwc2UuY2FwcmEucmVsZW5nLnRhcmdldC9lY2xpcHNlLWNhcHJhLWU0LjEwLnRhcmdldCBiL3JlbGVuZy9vcmcuZWNsaXBzZS5jYXByYS5yZWxlbmcudGFyZ2V0L2VjbGlwc2UtY2FwcmEtZTQuMTAudGFyZ2V0CmluZGV4IGM2M2M0MDQuLmE1ZWY4YzUgMTAwNjQ0Ci0tLSBhL3JlbGVuZy9vcmcuZWNsaXBzZS5jYXByYS5yZWxlbmcudGFyZ2V0L2VjbGlwc2UtY2FwcmEtZTQuMTAudGFyZ2V0CisrKyBiL3JlbGVuZy9vcmcuZWNsaXBzZS5jYXByYS5yZWxlbmcudGFyZ2V0L2VjbGlwc2UtY2FwcmEtZTQuMTAudGFyZ2V0CkBAIC0xLDcgKzEsNyBAQAogPD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiIHN0YW5kYWxvbmU9Im5vIj8+CiA8P3BkZT8+CiA8IS0tIGdlbmVyYXRlZCB3aXRoIGh0dHBzOi8vZ2l0aHViLmNvbS9lY2xpcHNlLWNiaS90YXJnZXRwbGF0Zm9ybS1kc2wgLS0+Ci08dGFyZ2V0IG5hbWU9ImVjbGlwc2UtY2FwcmEtZTQuMTAiIHNlcXVlbmNlTnVtYmVyPSIxNTY1NTkzNzk5Ij4KKzx0YXJnZXQgbmFtZT0iZWNsaXBzZS1jYXByYS1lNC4xMCIgc2VxdWVuY2VOdW1iZXI9IjE1Njc2ODkzMzciPgogICA8bG9jYXRpb25zPgogICAgIDxsb2NhdGlvbiBpbmNsdWRlTW9kZT0icGxhbm5lciIgaW5jbHVkZUFsbFBsYXRmb3Jtcz0iZmFsc2UiIGluY2x1ZGVTb3VyY2U9InRydWUiIGluY2x1ZGVDb25maWd1cmVQaGFzZT0iZmFsc2UiIHR5cGU9Ikluc3RhbGxhYmxlVW5pdCI+CiAgICAgICA8dW5pdCBpZD0ib3JnLmVjbGlwc2UuY2R0LnNkay5mZWF0dXJlLmdyb3VwIiB2ZXJzaW9uPSI5LjYuMC4yMDE4MTIxMTEyMTEiLz4KQEAgLTUwLDggKzUwLDggQEAKICAgICAgIDxyZXBvc2l0b3J5IGlkPSJlY2xpcHNlLW9yYml0LW1hcnMyIiBsb2NhdGlvbj0iaHR0cDovL2Rvd25sb2FkLmVjbGlwc2Uub3JnL3Rvb2xzL29yYml0L2Rvd25sb2Fkcy9kcm9wcy9SMjAxNjAyMjExOTIxNTgvcmVwb3NpdG9yeS8iLz4KICAgICA8L2xvY2F0aW9uPgogICAgIDxsb2NhdGlvbiBpbmNsdWRlTW9kZT0icGxhbm5lciIgaW5jbHVkZUFsbFBsYXRmb3Jtcz0iZmFsc2UiIGluY2x1ZGVTb3VyY2U9InRydWUiIGluY2x1ZGVDb25maWd1cmVQaGFzZT0iZmFsc2UiIHR5cGU9Ikluc3RhbGxhYmxlVW5pdCI+Ci0gICAgICA8dW5pdCBpZD0ib3JnLmVjbGlwc2Uuc3BoaW54LnNkay5mZWF0dXJlLmdyb3VwIiB2ZXJzaW9uPSIwLjguMS4yMDE0MDkxNzE0MjIiLz4KLSAgICAgIDxyZXBvc2l0b3J5IGxvY2F0aW9uPSJodHRwOi8vZG93bmxvYWQuZWNsaXBzZS5vcmcvc3BoaW54L3JlbGVhc2VzLzAuOC54Ii8+CisgICAgICA8dW5pdCBpZD0ib3JnLmVjbGlwc2Uuc3BoaW54LnNkay5mZWF0dXJlLmdyb3VwIiB2ZXJzaW9uPSIwLjkuMi4yMDE2MDEyMDA5MzIiLz4KKyAgICAgIDxyZXBvc2l0b3J5IGxvY2F0aW9uPSJodHRwOi8vZG93bmxvYWQuZWNsaXBzZS5vcmcvc3BoaW54L3JlbGVhc2VzLzAuOS54Ii8+CiAgICAgPC9sb2NhdGlvbj4KICAgICA8bG9jYXRpb24gaW5jbHVkZU1vZGU9InBsYW5uZXIiIGluY2x1ZGVBbGxQbGF0Zm9ybXM9ImZhbHNlIiBpbmNsdWRlU291cmNlPSJ0cnVlIiBpbmNsdWRlQ29uZmlndXJlUGhhc2U9ImZhbHNlIiB0eXBlPSJJbnN0YWxsYWJsZVVuaXQiPgogICAgICAgPHVuaXQgaWQ9Im9yZy5lY2xpcHNlLnJtZi5yZXFpZjEwLnNkay5mZWF0dXJlLmZlYXR1cmUuZ3JvdXAiIHZlcnNpb249IjAuMTMuMC4yMDE1MDkxNjEwNDIiLz4KQEAgLTYzLDggKzYzLDE2IEBACiAgICAgICA8cmVwb3NpdG9yeSBpZD0icGxhbnR1bWwiIGxvY2F0aW9uPSJodHRwOi8vaGFsbHZhcmQuZ2l0aHViLmlvL3BsYW50dW1sLyIvPgogICAgIDwvbG9jYXRpb24+CiAgICAgPGxvY2F0aW9uIGluY2x1ZGVNb2RlPSJwbGFubmVyIiBpbmNsdWRlQWxsUGxhdGZvcm1zPSJmYWxzZSIgaW5jbHVkZVNvdXJjZT0idHJ1ZSIgaW5jbHVkZUNvbmZpZ3VyZVBoYXNlPSJmYWxzZSIgdHlwZT0iSW5zdGFsbGFibGVVbml0Ij4KLSAgICAgIDx1bml0IGlkPSJkZS5vdmd1LmZlYXR1cmVpZGUuZmVhdHVyZW1vZGVsaW5nLmZlYXR1cmUuZ3JvdXAiIHZlcnNpb249IjMuNS41LjIwMTkwNjI4MjMyMSIvPgorICAgICAgPHVuaXQgaWQ9ImRlLm92Z3UuZmVhdHVyZWlkZS5mZWF0dXJlbW9kZWxpbmcuZmVhdHVyZS5ncm91cCIgdmVyc2lvbj0iMy42LjAuMjAxOTA4MzAyMjI3Ii8+CiAgICAgICA8cmVwb3NpdG9yeSBpZD0iZmVhdHVyZS1pZGUiIGxvY2F0aW9uPSJodHRwOi8vZmVhdHVyZWlkZS5jcy5vdmd1LmRlL3VwZGF0ZS92My8iLz4KICAgICA8L2xvY2F0aW9uPgorICAgIDxsb2NhdGlvbiBpbmNsdWRlTW9kZT0icGxhbm5lciIgaW5jbHVkZUFsbFBsYXRmb3Jtcz0iZmFsc2UiIGluY2x1ZGVTb3VyY2U9InRydWUiIGluY2x1ZGVDb25maWd1cmVQaGFzZT0iZmFsc2UiIHR5cGU9Ikluc3RhbGxhYmxlVW5pdCI+CisgICAgICA8dW5pdCBpZD0ib3JnLmVjbGlwc2UuYXBwNG1jLnBsYXRmb3JtLnNkay5mZWF0dXJlLmdyb3VwIiB2ZXJzaW9uPSIwLjkuNS4yMDE5MDczMTEyNDgiLz4KKyAgICAgIDxyZXBvc2l0b3J5IGlkPSJBUFA0TUMiIGxvY2F0aW9uPSJodHRwOi8vZG93bmxvYWQuZWNsaXBzZS5vcmcvYXBwNG1jL3VwZGF0ZXNpdGVzL3JlbGVhc2VzLzAuOS41LyIvPgorICAgIDwvbG9jYXRpb24+CisgICAgPGxvY2F0aW9uIGluY2x1ZGVNb2RlPSJwbGFubmVyIiBpbmNsdWRlQWxsUGxhdGZvcm1zPSJmYWxzZSIgaW5jbHVkZVNvdXJjZT0idHJ1ZSIgaW5jbHVkZUNvbmZpZ3VyZVBoYXNlPSJmYWxzZSIgdHlwZT0iSW5zdGFsbGFibGVVbml0Ij4KKyAgICAgIDx1bml0IGlkPSJJMjAxNzA5MjkyMDExLkNvcmUiIHZlcnNpb249IjEuMC4wLjA3SS1jTFR6NzY4SUU3QVk3Z0FlQU9HOSIvPgorICAgICAgPHJlcG9zaXRvcnkgaWQ9IkVBU0UiIGxvY2F0aW9uPSJodHRwOi8vZG93bmxvYWQuZWNsaXBzZS5vcmcvZWFzZS91cGRhdGUvcmVsZWFzZSIvPgorICAgIDwvbG9jYXRpb24+CiAgIDwvbG9jYXRpb25zPgogPC90YXJnZXQ+CmRpZmYgLS1naXQgYS9yZWxlbmcvb3JnLmVjbGlwc2UuY2FwcmEucmVsZW5nLnRhcmdldC9lY2xpcHNlLWNhcHJhLWU0LjEwLnRwZCBiL3JlbGVuZy9vcmcuZWNsaXBzZS5jYXByYS5yZWxlbmcudGFyZ2V0L2VjbGlwc2UtY2FwcmEtZTQuMTAudHBkCmluZGV4IDA1NTY3MTMuLjExYjgwMTggMTAwNjQ0Ci0tLSBhL3JlbGVuZy9vcmcuZWNsaXBzZS5jYXByYS5yZWxlbmcudGFyZ2V0L2VjbGlwc2UtY2FwcmEtZTQuMTAudHBkCisrKyBiL3JlbGVuZy9vcmcuZWNsaXBzZS5jYXByYS5yZWxlbmcudGFyZ2V0L2VjbGlwc2UtY2FwcmEtZTQuMTAudHBkCkBAIC00Niw3ICs0Niw3IEBACiAJb3JnLm1vcnRiYXkuamV0dHkuc2VydmVyCiB9CiAKLWxvY2F0aW9uICJodHRwOi8vZG93bmxvYWQuZWNsaXBzZS5vcmcvc3BoaW54L3JlbGVhc2VzLzAuOC54IiB7Citsb2NhdGlvbiAiaHR0cDovL2Rvd25sb2FkLmVjbGlwc2Uub3JnL3NwaGlueC9yZWxlYXNlcy8wLjkueCIgewogCW9yZy5lY2xpcHNlLnNwaGlueC5zZGsuZmVhdHVyZS5ncm91cAogfQogCkBAIC02MSw0ICs2MSwxMiBAQAogCiBsb2NhdGlvbiAiaHR0cDovL2ZlYXR1cmVpZGUuY3Mub3ZndS5kZS91cGRhdGUvdjMvIiBmZWF0dXJlLWlkZSB7CiAJZGUub3ZndS5mZWF0dXJlaWRlLmZlYXR1cmVtb2RlbGluZy5mZWF0dXJlLmdyb3VwIDMuNS40Cit9CisKK2xvY2F0aW9uICJodHRwOi8vZG93bmxvYWQuZWNsaXBzZS5vcmcvYXBwNG1jL3VwZGF0ZXNpdGVzL3JlbGVhc2VzLzAuOS41LyIgQVBQNE1DIHsKKwlvcmcuZWNsaXBzZS5hcHA0bWMucGxhdGZvcm0uc2RrLmZlYXR1cmUuZ3JvdXAKK30KKworbG9jYXRpb24gImh0dHA6Ly9kb3dubG9hZC5lY2xpcHNlLm9yZy9lYXNlL3VwZGF0ZS9yZWxlYXNlIiBFQVNFIHsKKwlJMjAxNzA5MjkyMDExLkNvcmUKIH0KXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCmRpZmYgLS1naXQgYS9yZWxlbmcvb3JnLmVjbGlwc2UuY2FwcmEucmVsZW5nLnRhcmdldC9lY2xpcHNlLWNhcHJhLWU0LjExLnRhcmdldCBiL3JlbGVuZy9vcmcuZWNsaXBzZS5jYXByYS5yZWxlbmcudGFyZ2V0L2VjbGlwc2UtY2FwcmEtZTQuMTEudGFyZ2V0CmluZGV4IGI3NTY1NDQuLjY0ZmU0NWYgMTAwNjQ0Ci0tLSBhL3JlbGVuZy9vcmcuZWNsaXBzZS5jYXByYS5yZWxlbmcudGFyZ2V0L2VjbGlwc2UtY2FwcmEtZTQuMTEudGFyZ2V0CisrKyBiL3JlbGVuZy9vcmcuZWNsaXBzZS5jYXByYS5yZWxlbmcudGFyZ2V0L2VjbGlwc2UtY2FwcmEtZTQuMTEudGFyZ2V0CkBAIC0xLDcgKzEsNyBAQAogPD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiIHN0YW5kYWxvbmU9Im5vIj8+CiA8P3BkZT8+CiA8IS0tIGdlbmVyYXRlZCB3aXRoIGh0dHBzOi8vZ2l0aHViLmNvbS9lY2xpcHNlLWNiaS90YXJnZXRwbGF0Zm9ybS1kc2wgLS0+Ci08dGFyZ2V0IG5hbWU9ImVjbGlwc2UtY2FwcmEtZTQuMTEiIHNlcXVlbmNlTnVtYmVyPSIxNTY1NTkzODg0Ij4KKzx0YXJnZXQgbmFtZT0iZWNsaXBzZS1jYXByYS1lNC4xMSIgc2VxdWVuY2VOdW1iZXI9IjE1Njc2OTAxMTEiPgogICA8bG9jYXRpb25zPgogICAgIDxsb2NhdGlvbiBpbmNsdWRlTW9kZT0icGxhbm5lciIgaW5jbHVkZUFsbFBsYXRmb3Jtcz0iZmFsc2UiIGluY2x1ZGVTb3VyY2U9InRydWUiIGluY2x1ZGVDb25maWd1cmVQaGFzZT0iZmFsc2UiIHR5cGU9Ikluc3RhbGxhYmxlVW5pdCI+CiAgICAgICA8dW5pdCBpZD0ib3JnLmVjbGlwc2UuY2R0LnNkay5mZWF0dXJlLmdyb3VwIiB2ZXJzaW9uPSI5LjcuMC4yMDE5MDMwOTIyNTEiLz4KQEAgLTUwLDggKzUwLDggQEAKICAgICAgIDxyZXBvc2l0b3J5IGlkPSJlY2xpcHNlLW9yYml0LW1hcnMyIiBsb2NhdGlvbj0iaHR0cDovL2Rvd25sb2FkLmVjbGlwc2Uub3JnL3Rvb2xzL29yYml0L2Rvd25sb2Fkcy9kcm9wcy9SMjAxNjAyMjExOTIxNTgvcmVwb3NpdG9yeS8iLz4KICAgICA8L2xvY2F0aW9uPgogICAgIDxsb2NhdGlvbiBpbmNsdWRlTW9kZT0icGxhbm5lciIgaW5jbHVkZUFsbFBsYXRmb3Jtcz0iZmFsc2UiIGluY2x1ZGVTb3VyY2U9InRydWUiIGluY2x1ZGVDb25maWd1cmVQaGFzZT0iZmFsc2UiIHR5cGU9Ikluc3RhbGxhYmxlVW5pdCI+Ci0gICAgICA8dW5pdCBpZD0ib3JnLmVjbGlwc2Uuc3BoaW54LnNkay5mZWF0dXJlLmdyb3VwIiB2ZXJzaW9uPSIwLjguMS4yMDE0MDkxNzE0MjIiLz4KLSAgICAgIDxyZXBvc2l0b3J5IGxvY2F0aW9uPSJodHRwOi8vZG93bmxvYWQuZWNsaXBzZS5vcmcvc3BoaW54L3JlbGVhc2VzLzAuOC54Ii8+CisgICAgICA8dW5pdCBpZD0ib3JnLmVjbGlwc2Uuc3BoaW54LnNkay5mZWF0dXJlLmdyb3VwIiB2ZXJzaW9uPSIwLjkuMi4yMDE2MDEyMDA5MzIiLz4KKyAgICAgIDxyZXBvc2l0b3J5IGxvY2F0aW9uPSJodHRwOi8vZG93bmxvYWQuZWNsaXBzZS5vcmcvc3BoaW54L3JlbGVhc2VzLzAuOS54Ii8+CiAgICAgPC9sb2NhdGlvbj4KICAgICA8bG9jYXRpb24gaW5jbHVkZU1vZGU9InBsYW5uZXIiIGluY2x1ZGVBbGxQbGF0Zm9ybXM9ImZhbHNlIiBpbmNsdWRlU291cmNlPSJ0cnVlIiBpbmNsdWRlQ29uZmlndXJlUGhhc2U9ImZhbHNlIiB0eXBlPSJJbnN0YWxsYWJsZVVuaXQiPgogICAgICAgPHVuaXQgaWQ9Im9yZy5lY2xpcHNlLnJtZi5yZXFpZjEwLnNkay5mZWF0dXJlLmZlYXR1cmUuZ3JvdXAiIHZlcnNpb249IjAuMTMuMC4yMDE1MDkxNjEwNDIiLz4KQEAgLTYzLDggKzYzLDE2IEBACiAgICAgICA8cmVwb3NpdG9yeSBpZD0icGxhbnR1bWwiIGxvY2F0aW9uPSJodHRwOi8vaGFsbHZhcmQuZ2l0aHViLmlvL3BsYW50dW1sLyIvPgogICAgIDwvbG9jYXRpb24+CiAgICAgPGxvY2F0aW9uIGluY2x1ZGVNb2RlPSJwbGFubmVyIiBpbmNsdWRlQWxsUGxhdGZvcm1zPSJmYWxzZSIgaW5jbHVkZVNvdXJjZT0idHJ1ZSIgaW5jbHVkZUNvbmZpZ3VyZVBoYXNlPSJmYWxzZSIgdHlwZT0iSW5zdGFsbGFibGVVbml0Ij4KLSAgICAgIDx1bml0IGlkPSJkZS5vdmd1LmZlYXR1cmVpZGUuZmVhdHVyZW1vZGVsaW5nLmZlYXR1cmUuZ3JvdXAiIHZlcnNpb249IjMuNS41LjIwMTkwNjI4MjMyMSIvPgorICAgICAgPHVuaXQgaWQ9ImRlLm92Z3UuZmVhdHVyZWlkZS5mZWF0dXJlbW9kZWxpbmcuZmVhdHVyZS5ncm91cCIgdmVyc2lvbj0iMy42LjAuMjAxOTA4MzAyMjI3Ii8+CiAgICAgICA8cmVwb3NpdG9yeSBpZD0iZmVhdHVyZS1pZGUiIGxvY2F0aW9uPSJodHRwOi8vZmVhdHVyZWlkZS5jcy5vdmd1LmRlL3VwZGF0ZS92My8iLz4KICAgICA8L2xvY2F0aW9uPgorICAgIDxsb2NhdGlvbiBpbmNsdWRlTW9kZT0icGxhbm5lciIgaW5jbHVkZUFsbFBsYXRmb3Jtcz0iZmFsc2UiIGluY2x1ZGVTb3VyY2U9InRydWUiIGluY2x1ZGVDb25maWd1cmVQaGFzZT0iZmFsc2UiIHR5cGU9Ikluc3RhbGxhYmxlVW5pdCI+CisgICAgICA8dW5pdCBpZD0ib3JnLmVjbGlwc2UuYXBwNG1jLnBsYXRmb3JtLnNkay5mZWF0dXJlLmdyb3VwIiB2ZXJzaW9uPSIwLjkuNS4yMDE5MDczMTEyNDgiLz4KKyAgICAgIDxyZXBvc2l0b3J5IGlkPSJBUFA0TUMiIGxvY2F0aW9uPSJodHRwOi8vZG93bmxvYWQuZWNsaXBzZS5vcmcvYXBwNG1jL3VwZGF0ZXNpdGVzL3JlbGVhc2VzLzAuOS41LyIvPgorICAgIDwvbG9jYXRpb24+CisgICAgPGxvY2F0aW9uIGluY2x1ZGVNb2RlPSJwbGFubmVyIiBpbmNsdWRlQWxsUGxhdGZvcm1zPSJmYWxzZSIgaW5jbHVkZVNvdXJjZT0idHJ1ZSIgaW5jbHVkZUNvbmZpZ3VyZVBoYXNlPSJmYWxzZSIgdHlwZT0iSW5zdGFsbGFibGVVbml0Ij4KKyAgICAgIDx1bml0IGlkPSJJMjAxNzA5MjkyMDExLkNvcmUiIHZlcnNpb249IjEuMC4wLjA3SS1jTFR6NzY4SUU3QVk3Z0FlQU9HOSIvPgorICAgICAgPHJlcG9zaXRvcnkgaWQ9IkVBU0UiIGxvY2F0aW9uPSJodHRwOi8vZG93bmxvYWQuZWNsaXBzZS5vcmcvZWFzZS91cGRhdGUvcmVsZWFzZSIvPgorICAgIDwvbG9jYXRpb24+CiAgIDwvbG9jYXRpb25zPgogPC90YXJnZXQ+CmRpZmYgLS1naXQgYS9yZWxlbmcvb3JnLmVjbGlwc2UuY2FwcmEucmVsZW5nLnRhcmdldC9lY2xpcHNlLWNhcHJhLWU0LjExLnRwZCBiL3JlbGVuZy9vcmcuZWNsaXBzZS5jYXByYS5yZWxlbmcudGFyZ2V0L2VjbGlwc2UtY2FwcmEtZTQuMTEudHBkCmluZGV4IDFkODZiNzIuLjhhOGY1Y2IgMTAwNjQ0Ci0tLSBhL3JlbGVuZy9vcmcuZWNsaXBzZS5jYXByYS5yZWxlbmcudGFyZ2V0L2VjbGlwc2UtY2FwcmEtZTQuMTEudHBkCisrKyBiL3JlbGVuZy9vcmcuZWNsaXBzZS5jYXByYS5yZWxlbmcudGFyZ2V0L2VjbGlwc2UtY2FwcmEtZTQuMTEudHBkCkBAIC00Niw3ICs0Niw3IEBACiAJb3JnLm1vcnRiYXkuamV0dHkuc2VydmVyCiB9CiAKLWxvY2F0aW9uICJodHRwOi8vZG93bmxvYWQuZWNsaXBzZS5vcmcvc3BoaW54L3JlbGVhc2VzLzAuOC54IiB7Citsb2NhdGlvbiAiaHR0cDovL2Rvd25sb2FkLmVjbGlwc2Uub3JnL3NwaGlueC9yZWxlYXNlcy8wLjkueCIgewogCW9yZy5lY2xpcHNlLnNwaGlueC5zZGsuZmVhdHVyZS5ncm91cAogfQogCkBAIC02MSw0ICs2MSwxMiBAQAogCiBsb2NhdGlvbiAiaHR0cDovL2ZlYXR1cmVpZGUuY3Mub3ZndS5kZS91cGRhdGUvdjMvIiBmZWF0dXJlLWlkZSB7CiAJZGUub3ZndS5mZWF0dXJlaWRlLmZlYXR1cmVtb2RlbGluZy5mZWF0dXJlLmdyb3VwIDMuNS40Cit9CisKK2xvY2F0aW9uICJodHRwOi8vZG93bmxvYWQuZWNsaXBzZS5vcmcvYXBwNG1jL3VwZGF0ZXNpdGVzL3JlbGVhc2VzLzAuOS41LyIgQVBQNE1DIHsKKwlvcmcuZWNsaXBzZS5hcHA0bWMucGxhdGZvcm0uc2RrLmZlYXR1cmUuZ3JvdXAKK30KKworbG9jYXRpb24gImh0dHA6Ly9kb3dubG9hZC5lY2xpcHNlLm9yZy9lYXNlL3VwZGF0ZS9yZWxlYXNlIiBFQVNFIHsKKwlJMjAxNzA5MjkyMDExLkNvcmUKIH0KXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCmRpZmYgLS1naXQgYS9yZWxlbmcvb3JnLmVjbGlwc2UuY2FwcmEucmVsZW5nLnRhcmdldC9lY2xpcHNlLWNhcHJhLWU0LjEyLnRhcmdldCBiL3JlbGVuZy9vcmcuZWNsaXBzZS5jYXByYS5yZWxlbmcudGFyZ2V0L2VjbGlwc2UtY2FwcmEtZTQuMTIudGFyZ2V0CmluZGV4IGUxZDM0YjYuLjY3MjkzOWUgMTAwNjQ0Ci0tLSBhL3JlbGVuZy9vcmcuZWNsaXBzZS5jYXByYS5yZWxlbmcudGFyZ2V0L2VjbGlwc2UtY2FwcmEtZTQuMTIudGFyZ2V0CisrKyBiL3JlbGVuZy9vcmcuZWNsaXBzZS5jYXByYS5yZWxlbmcudGFyZ2V0L2VjbGlwc2UtY2FwcmEtZTQuMTIudGFyZ2V0CkBAIC0xLDcgKzEsNyBAQAogPD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiIHN0YW5kYWxvbmU9Im5vIj8+CiA8P3BkZT8+CiA8IS0tIGdlbmVyYXRlZCB3aXRoIGh0dHBzOi8vZ2l0aHViLmNvbS9lY2xpcHNlLWNiaS90YXJnZXRwbGF0Zm9ybS1kc2wgLS0+Ci08dGFyZ2V0IG5hbWU9ImVjbGlwc2UtY2FwcmEtZTQuMTIiIHNlcXVlbmNlTnVtYmVyPSIxNTY1MTcwNjkzIj4KKzx0YXJnZXQgbmFtZT0iZWNsaXBzZS1jYXByYS1lNC4xMiIgc2VxdWVuY2VOdW1iZXI9IjE1Njc2ODg4NDUiPgogICA8bG9jYXRpb25zPgogICAgIDxsb2NhdGlvbiBpbmNsdWRlTW9kZT0icGxhbm5lciIgaW5jbHVkZUFsbFBsYXRmb3Jtcz0iZmFsc2UiIGluY2x1ZGVTb3VyY2U9InRydWUiIGluY2x1ZGVDb25maWd1cmVQaGFzZT0iZmFsc2UiIHR5cGU9Ikluc3RhbGxhYmxlVW5pdCI+CiAgICAgICA8dW5pdCBpZD0ib3JnLmVjbGlwc2UuY2R0LnNkay5mZWF0dXJlLmdyb3VwIiB2ZXJzaW9uPSI5LjguMC4yMDE5MDYwNzE3NTciLz4KQEAgLTUwLDggKzUwLDggQEAKICAgICAgIDxyZXBvc2l0b3J5IGlkPSJlY2xpcHNlLW9yYml0LW1hcnMyIiBsb2NhdGlvbj0iaHR0cDovL2Rvd25sb2FkLmVjbGlwc2Uub3JnL3Rvb2xzL29yYml0L2Rvd25sb2Fkcy9kcm9wcy9SMjAxNjAyMjExOTIxNTgvcmVwb3NpdG9yeS8iLz4KICAgICA8L2xvY2F0aW9uPgogICAgIDxsb2NhdGlvbiBpbmNsdWRlTW9kZT0icGxhbm5lciIgaW5jbHVkZUFsbFBsYXRmb3Jtcz0iZmFsc2UiIGluY2x1ZGVTb3VyY2U9InRydWUiIGluY2x1ZGVDb25maWd1cmVQaGFzZT0iZmFsc2UiIHR5cGU9Ikluc3RhbGxhYmxlVW5pdCI+Ci0gICAgICA8dW5pdCBpZD0ib3JnLmVjbGlwc2Uuc3BoaW54LnNkay5mZWF0dXJlLmdyb3VwIiB2ZXJzaW9uPSIwLjguMS4yMDE0MDkxNzE0MjIiLz4KLSAgICAgIDxyZXBvc2l0b3J5IGxvY2F0aW9uPSJodHRwOi8vZG93bmxvYWQuZWNsaXBzZS5vcmcvc3BoaW54L3JlbGVhc2VzLzAuOC54Ii8+CisgICAgICA8dW5pdCBpZD0ib3JnLmVjbGlwc2Uuc3BoaW54LnNkay5mZWF0dXJlLmdyb3VwIiB2ZXJzaW9uPSIwLjkuMi4yMDE2MDEyMDA5MzIiLz4KKyAgICAgIDxyZXBvc2l0b3J5IGxvY2F0aW9uPSJodHRwOi8vZG93bmxvYWQuZWNsaXBzZS5vcmcvc3BoaW54L3JlbGVhc2VzLzAuOS54Ii8+CiAgICAgPC9sb2NhdGlvbj4KICAgICA8bG9jYXRpb24gaW5jbHVkZU1vZGU9InBsYW5uZXIiIGluY2x1ZGVBbGxQbGF0Zm9ybXM9ImZhbHNlIiBpbmNsdWRlU291cmNlPSJ0cnVlIiBpbmNsdWRlQ29uZmlndXJlUGhhc2U9ImZhbHNlIiB0eXBlPSJJbnN0YWxsYWJsZVVuaXQiPgogICAgICAgPHVuaXQgaWQ9Im9yZy5lY2xpcHNlLnJtZi5yZXFpZjEwLnNkay5mZWF0dXJlLmZlYXR1cmUuZ3JvdXAiIHZlcnNpb249IjAuMTMuMC4yMDE1MDkxNjEwNDIiLz4KQEAgLTYzLDggKzYzLDE2IEBACiAgICAgICA8cmVwb3NpdG9yeSBpZD0icGxhbnR1bWwiIGxvY2F0aW9uPSJodHRwOi8vaGFsbHZhcmQuZ2l0aHViLmlvL3BsYW50dW1sLyIvPgogICAgIDwvbG9jYXRpb24+CiAgICAgPGxvY2F0aW9uIGluY2x1ZGVNb2RlPSJwbGFubmVyIiBpbmNsdWRlQWxsUGxhdGZvcm1zPSJmYWxzZSIgaW5jbHVkZVNvdXJjZT0idHJ1ZSIgaW5jbHVkZUNvbmZpZ3VyZVBoYXNlPSJmYWxzZSIgdHlwZT0iSW5zdGFsbGFibGVVbml0Ij4KLSAgICAgIDx1bml0IGlkPSJkZS5vdmd1LmZlYXR1cmVpZGUuZmVhdHVyZW1vZGVsaW5nLmZlYXR1cmUuZ3JvdXAiIHZlcnNpb249IjMuNS41LjIwMTkwNjI4MjMyMSIvPgorICAgICAgPHVuaXQgaWQ9ImRlLm92Z3UuZmVhdHVyZWlkZS5mZWF0dXJlbW9kZWxpbmcuZmVhdHVyZS5ncm91cCIgdmVyc2lvbj0iMy42LjAuMjAxOTA4MzAyMjI3Ii8+CiAgICAgICA8cmVwb3NpdG9yeSBpZD0iZmVhdHVyZS1pZGUiIGxvY2F0aW9uPSJodHRwOi8vZmVhdHVyZWlkZS5jcy5vdmd1LmRlL3VwZGF0ZS92My8iLz4KICAgICA8L2xvY2F0aW9uPgorICAgIDxsb2NhdGlvbiBpbmNsdWRlTW9kZT0icGxhbm5lciIgaW5jbHVkZUFsbFBsYXRmb3Jtcz0iZmFsc2UiIGluY2x1ZGVTb3VyY2U9InRydWUiIGluY2x1ZGVDb25maWd1cmVQaGFzZT0iZmFsc2UiIHR5cGU9Ikluc3RhbGxhYmxlVW5pdCI+CisgICAgICA8dW5pdCBpZD0ib3JnLmVjbGlwc2UuYXBwNG1jLnBsYXRmb3JtLnNkay5mZWF0dXJlLmdyb3VwIiB2ZXJzaW9uPSIwLjkuNS4yMDE5MDczMTEyNDgiLz4KKyAgICAgIDxyZXBvc2l0b3J5IGlkPSJBUFA0TUMiIGxvY2F0aW9uPSJodHRwOi8vZG93bmxvYWQuZWNsaXBzZS5vcmcvYXBwNG1jL3VwZGF0ZXNpdGVzL3JlbGVhc2VzLzAuOS41LyIvPgorICAgIDwvbG9jYXRpb24+CisgICAgPGxvY2F0aW9uIGluY2x1ZGVNb2RlPSJwbGFubmVyIiBpbmNsdWRlQWxsUGxhdGZvcm1zPSJmYWxzZSIgaW5jbHVkZVNvdXJjZT0idHJ1ZSIgaW5jbHVkZUNvbmZpZ3VyZVBoYXNlPSJmYWxzZSIgdHlwZT0iSW5zdGFsbGFibGVVbml0Ij4KKyAgICAgIDx1bml0IGlkPSJJMjAxNzA5MjkyMDExLkNvcmUiIHZlcnNpb249IjEuMC4wLjA3SS1jTFR6NzY4SUU3QVk3Z0FlQU9HOSIvPgorICAgICAgPHJlcG9zaXRvcnkgaWQ9IkVBU0UiIGxvY2F0aW9uPSJodHRwOi8vZG93bmxvYWQuZWNsaXBzZS5vcmcvZWFzZS91cGRhdGUvcmVsZWFzZSIvPgorICAgIDwvbG9jYXRpb24+CiAgIDwvbG9jYXRpb25zPgogPC90YXJnZXQ+CmRpZmYgLS1naXQgYS9yZWxlbmcvb3JnLmVjbGlwc2UuY2FwcmEucmVsZW5nLnRhcmdldC9lY2xpcHNlLWNhcHJhLWU0LjEyLnRwZCBiL3JlbGVuZy9vcmcuZWNsaXBzZS5jYXByYS5yZWxlbmcudGFyZ2V0L2VjbGlwc2UtY2FwcmEtZTQuMTIudHBkCmluZGV4IDIyOGZmZTguLjczOWRkMTIgMTAwNjQ0Ci0tLSBhL3JlbGVuZy9vcmcuZWNsaXBzZS5jYXByYS5yZWxlbmcudGFyZ2V0L2VjbGlwc2UtY2FwcmEtZTQuMTIudHBkCisrKyBiL3JlbGVuZy9vcmcuZWNsaXBzZS5jYXByYS5yZWxlbmcudGFyZ2V0L2VjbGlwc2UtY2FwcmEtZTQuMTIudHBkCkBAIC00Niw3ICs0Niw3IEBACiAJb3JnLm1vcnRiYXkuamV0dHkuc2VydmVyCiB9CiAKLWxvY2F0aW9uICJodHRwOi8vZG93bmxvYWQuZWNsaXBzZS5vcmcvc3BoaW54L3JlbGVhc2VzLzAuOC54IiB7Citsb2NhdGlvbiAiaHR0cDovL2Rvd25sb2FkLmVjbGlwc2Uub3JnL3NwaGlueC9yZWxlYXNlcy8wLjkueCIgewogCW9yZy5lY2xpcHNlLnNwaGlueC5zZGsuZmVhdHVyZS5ncm91cAogfQogCkBAIC02MSw0ICs2MSwxMiBAQAogCiBsb2NhdGlvbiAiaHR0cDovL2ZlYXR1cmVpZGUuY3Mub3ZndS5kZS91cGRhdGUvdjMvIiBmZWF0dXJlLWlkZSB7CiAJZGUub3ZndS5mZWF0dXJlaWRlLmZlYXR1cmVtb2RlbGluZy5mZWF0dXJlLmdyb3VwIDMuNS40Cit9CisKK2xvY2F0aW9uICJodHRwOi8vZG93bmxvYWQuZWNsaXBzZS5vcmcvYXBwNG1jL3VwZGF0ZXNpdGVzL3JlbGVhc2VzLzAuOS41LyIgQVBQNE1DIHsKKwlvcmcuZWNsaXBzZS5hcHA0bWMucGxhdGZvcm0uc2RrLmZlYXR1cmUuZ3JvdXAKK30KKworbG9jYXRpb24gImh0dHA6Ly9kb3dubG9hZC5lY2xpcHNlLm9yZy9lYXNlL3VwZGF0ZS9yZWxlYXNlIiBFQVNFIHsKKwlJMjAxNzA5MjkyMDExLkNvcmUKIH0KXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCmRpZmYgLS1naXQgYS9yZWxlbmcvb3JnLmVjbGlwc2UuY2FwcmEucmVsZW5nLnRhcmdldC9lY2xpcHNlLWNhcHJhLWU0LjgudGFyZ2V0IGIvcmVsZW5nL29yZy5lY2xpcHNlLmNhcHJhLnJlbGVuZy50YXJnZXQvZWNsaXBzZS1jYXByYS1lNC44LnRhcmdldAppbmRleCA4OTQyNWQ4Li41YTkzOTIzIDEwMDY0NAotLS0gYS9yZWxlbmcvb3JnLmVjbGlwc2UuY2FwcmEucmVsZW5nLnRhcmdldC9lY2xpcHNlLWNhcHJhLWU0LjgudGFyZ2V0CisrKyBiL3JlbGVuZy9vcmcuZWNsaXBzZS5jYXByYS5yZWxlbmcudGFyZ2V0L2VjbGlwc2UtY2FwcmEtZTQuOC50YXJnZXQKQEAgLTEsNyArMSw3IEBACiA8P3htbCB2ZXJzaW9uPSIxLjAiIGVuY29kaW5nPSJVVEYtOCIgc3RhbmRhbG9uZT0ibm8iPz4KIDw/cGRlPz4KIDwhLS0gZ2VuZXJhdGVkIHdpdGggaHR0cHM6Ly9naXRodWIuY29tL2VjbGlwc2UtY2JpL3RhcmdldHBsYXRmb3JtLWRzbCAtLT4KLTx0YXJnZXQgbmFtZT0iZWNsaXBzZS1jYXByYS1lNC44IiBzZXF1ZW5jZU51bWJlcj0iMTU2NTU5MzkwNSI+Cis8dGFyZ2V0IG5hbWU9ImVjbGlwc2UtY2FwcmEtZTQuOCIgc2VxdWVuY2VOdW1iZXI9IjE1Njc2OTY5MDEiPgogICA8bG9jYXRpb25zPgogICAgIDxsb2NhdGlvbiBpbmNsdWRlTW9kZT0icGxhbm5lciIgaW5jbHVkZUFsbFBsYXRmb3Jtcz0iZmFsc2UiIGluY2x1ZGVTb3VyY2U9InRydWUiIGluY2x1ZGVDb25maWd1cmVQaGFzZT0iZmFsc2UiIHR5cGU9Ikluc3RhbGxhYmxlVW5pdCI+CiAgICAgICA8dW5pdCBpZD0ib3JnLmVjbGlwc2UuY2R0LnNkay5mZWF0dXJlLmdyb3VwIiB2ZXJzaW9uPSI5LjUuMC4yMDE4MDYxNzA5MDgiLz4KQEAgLTUwLDggKzUwLDggQEAKICAgICAgIDxyZXBvc2l0b3J5IGlkPSJlY2xpcHNlLW9yYml0LW1hcnMyIiBsb2NhdGlvbj0iaHR0cDovL2Rvd25sb2FkLmVjbGlwc2Uub3JnL3Rvb2xzL29yYml0L2Rvd25sb2Fkcy9kcm9wcy9SMjAxNjAyMjExOTIxNTgvcmVwb3NpdG9yeS8iLz4KICAgICA8L2xvY2F0aW9uPgogICAgIDxsb2NhdGlvbiBpbmNsdWRlTW9kZT0icGxhbm5lciIgaW5jbHVkZUFsbFBsYXRmb3Jtcz0iZmFsc2UiIGluY2x1ZGVTb3VyY2U9InRydWUiIGluY2x1ZGVDb25maWd1cmVQaGFzZT0iZmFsc2UiIHR5cGU9Ikluc3RhbGxhYmxlVW5pdCI+Ci0gICAgICA8dW5pdCBpZD0ib3JnLmVjbGlwc2Uuc3BoaW54LnNkay5mZWF0dXJlLmdyb3VwIiB2ZXJzaW9uPSIwLjguMS4yMDE0MDkxNzE0MjIiLz4KLSAgICAgIDxyZXBvc2l0b3J5IGxvY2F0aW9uPSJodHRwOi8vZG93bmxvYWQuZWNsaXBzZS5vcmcvc3BoaW54L3JlbGVhc2VzLzAuOC54Ii8+CisgICAgICA8dW5pdCBpZD0ib3JnLmVjbGlwc2Uuc3BoaW54LnNkay5mZWF0dXJlLmdyb3VwIiB2ZXJzaW9uPSIwLjkuMi4yMDE2MDEyMDA5MzIiLz4KKyAgICAgIDxyZXBvc2l0b3J5IGxvY2F0aW9uPSJodHRwOi8vZG93bmxvYWQuZWNsaXBzZS5vcmcvc3BoaW54L3JlbGVhc2VzLzAuOS54Ii8+CiAgICAgPC9sb2NhdGlvbj4KICAgICA8bG9jYXRpb24gaW5jbHVkZU1vZGU9InBsYW5uZXIiIGluY2x1ZGVBbGxQbGF0Zm9ybXM9ImZhbHNlIiBpbmNsdWRlU291cmNlPSJ0cnVlIiBpbmNsdWRlQ29uZmlndXJlUGhhc2U9ImZhbHNlIiB0eXBlPSJJbnN0YWxsYWJsZVVuaXQiPgogICAgICAgPHVuaXQgaWQ9Im9yZy5lY2xpcHNlLnJtZi5yZXFpZjEwLnNkay5mZWF0dXJlLmZlYXR1cmUuZ3JvdXAiIHZlcnNpb249IjAuMTMuMC4yMDE1MDkxNjEwNDIiLz4KQEAgLTYzLDggKzYzLDE2IEBACiAgICAgICA8cmVwb3NpdG9yeSBpZD0icGxhbnR1bWwiIGxvY2F0aW9uPSJodHRwOi8vaGFsbHZhcmQuZ2l0aHViLmlvL3BsYW50dW1sLyIvPgogICAgIDwvbG9jYXRpb24+CiAgICAgPGxvY2F0aW9uIGluY2x1ZGVNb2RlPSJwbGFubmVyIiBpbmNsdWRlQWxsUGxhdGZvcm1zPSJmYWxzZSIgaW5jbHVkZVNvdXJjZT0idHJ1ZSIgaW5jbHVkZUNvbmZpZ3VyZVBoYXNlPSJmYWxzZSIgdHlwZT0iSW5zdGFsbGFibGVVbml0Ij4KLSAgICAgIDx1bml0IGlkPSJkZS5vdmd1LmZlYXR1cmVpZGUuZmVhdHVyZW1vZGVsaW5nLmZlYXR1cmUuZ3JvdXAiIHZlcnNpb249IjMuNS41LjIwMTkwNjI4MjMyMSIvPgorICAgICAgPHVuaXQgaWQ9ImRlLm92Z3UuZmVhdHVyZWlkZS5mZWF0dXJlbW9kZWxpbmcuZmVhdHVyZS5ncm91cCIgdmVyc2lvbj0iMy42LjAuMjAxOTA4MzAyMjI3Ii8+CiAgICAgICA8cmVwb3NpdG9yeSBpZD0iZmVhdHVyZS1pZGUiIGxvY2F0aW9uPSJodHRwOi8vZmVhdHVyZWlkZS5jcy5vdmd1LmRlL3VwZGF0ZS92My8iLz4KICAgICA8L2xvY2F0aW9uPgorICAgIDxsb2NhdGlvbiBpbmNsdWRlTW9kZT0icGxhbm5lciIgaW5jbHVkZUFsbFBsYXRmb3Jtcz0iZmFsc2UiIGluY2x1ZGVTb3VyY2U9InRydWUiIGluY2x1ZGVDb25maWd1cmVQaGFzZT0iZmFsc2UiIHR5cGU9Ikluc3RhbGxhYmxlVW5pdCI+CisgICAgICA8dW5pdCBpZD0ib3JnLmVjbGlwc2UuYXBwNG1jLnBsYXRmb3JtLnNkay5mZWF0dXJlLmdyb3VwIiB2ZXJzaW9uPSIwLjkuNS4yMDE5MDczMTEyNDgiLz4KKyAgICAgIDxyZXBvc2l0b3J5IGlkPSJBUFA0TUMiIGxvY2F0aW9uPSJodHRwOi8vZG93bmxvYWQuZWNsaXBzZS5vcmcvYXBwNG1jL3VwZGF0ZXNpdGVzL3JlbGVhc2VzLzAuOS41LyIvPgorICAgIDwvbG9jYXRpb24+CisgICAgPGxvY2F0aW9uIGluY2x1ZGVNb2RlPSJwbGFubmVyIiBpbmNsdWRlQWxsUGxhdGZvcm1zPSJmYWxzZSIgaW5jbHVkZVNvdXJjZT0idHJ1ZSIgaW5jbHVkZUNvbmZpZ3VyZVBoYXNlPSJmYWxzZSIgdHlwZT0iSW5zdGFsbGFibGVVbml0Ij4KKyAgICAgIDx1bml0IGlkPSJJMjAxNzA5MjkyMDExLkNvcmUiIHZlcnNpb249IjEuMC4wLjA3SS1jTFR6NzY4SUU3QVk3Z0FlQU9HOSIvPgorICAgICAgPHJlcG9zaXRvcnkgaWQ9IkVBU0UiIGxvY2F0aW9uPSJodHRwOi8vZG93bmxvYWQuZWNsaXBzZS5vcmcvZWFzZS91cGRhdGUvcmVsZWFzZSIvPgorICAgIDwvbG9jYXRpb24+CiAgIDwvbG9jYXRpb25zPgogPC90YXJnZXQ+CmRpZmYgLS1naXQgYS9yZWxlbmcvb3JnLmVjbGlwc2UuY2FwcmEucmVsZW5nLnRhcmdldC9lY2xpcHNlLWNhcHJhLWU0LjgudHBkIGIvcmVsZW5nL29yZy5lY2xpcHNlLmNhcHJhLnJlbGVuZy50YXJnZXQvZWNsaXBzZS1jYXByYS1lNC44LnRwZAppbmRleCBhMWY1ZWU5Li5lNTRmZWJhIDEwMDY0NAotLS0gYS9yZWxlbmcvb3JnLmVjbGlwc2UuY2FwcmEucmVsZW5nLnRhcmdldC9lY2xpcHNlLWNhcHJhLWU0LjgudHBkCisrKyBiL3JlbGVuZy9vcmcuZWNsaXBzZS5jYXByYS5yZWxlbmcudGFyZ2V0L2VjbGlwc2UtY2FwcmEtZTQuOC50cGQKQEAgLTQ2LDcgKzQ2LDcgQEAKIAlvcmcubW9ydGJheS5qZXR0eS5zZXJ2ZXIKIH0KIAotbG9jYXRpb24gImh0dHA6Ly9kb3dubG9hZC5lY2xpcHNlLm9yZy9zcGhpbngvcmVsZWFzZXMvMC44LngiIHsKK2xvY2F0aW9uICJodHRwOi8vZG93bmxvYWQuZWNsaXBzZS5vcmcvc3BoaW54L3JlbGVhc2VzLzAuOS54IiB7CiAJb3JnLmVjbGlwc2Uuc3BoaW54LnNkay5mZWF0dXJlLmdyb3VwCiB9CiAKQEAgLTYxLDQgKzYxLDEyIEBACiAKIGxvY2F0aW9uICJodHRwOi8vZmVhdHVyZWlkZS5jcy5vdmd1LmRlL3VwZGF0ZS92My8iIGZlYXR1cmUtaWRlIHsKIAlkZS5vdmd1LmZlYXR1cmVpZGUuZmVhdHVyZW1vZGVsaW5nLmZlYXR1cmUuZ3JvdXAgMy41LjQKK30KKworbG9jYXRpb24gImh0dHA6Ly9kb3dubG9hZC5lY2xpcHNlLm9yZy9hcHA0bWMvdXBkYXRlc2l0ZXMvcmVsZWFzZXMvMC45LjUvIiBBUFA0TUMgeworCW9yZy5lY2xpcHNlLmFwcDRtYy5wbGF0Zm9ybS5zZGsuZmVhdHVyZS5ncm91cAorfQorCitsb2NhdGlvbiAiaHR0cDovL2Rvd25sb2FkLmVjbGlwc2Uub3JnL2Vhc2UvdXBkYXRlL3JlbGVhc2UiIEVBU0UgeworCUkyMDE3MDkyOTIwMTEuQ29yZQogfQpcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUKZGlmZiAtLWdpdCBhL3JlbGVuZy9vcmcuZWNsaXBzZS5jYXByYS5yZWxlbmcudGFyZ2V0L2VjbGlwc2UtY2FwcmEtZTQuOS50YXJnZXQgYi9yZWxlbmcvb3JnLmVjbGlwc2UuY2FwcmEucmVsZW5nLnRhcmdldC9lY2xpcHNlLWNhcHJhLWU0LjkudGFyZ2V0CmluZGV4IDI0ZTgzNjcuLmViMzQwYjMgMTAwNjQ0Ci0tLSBhL3JlbGVuZy9vcmcuZWNsaXBzZS5jYXByYS5yZWxlbmcudGFyZ2V0L2VjbGlwc2UtY2FwcmEtZTQuOS50YXJnZXQKKysrIGIvcmVsZW5nL29yZy5lY2xpcHNlLmNhcHJhLnJlbGVuZy50YXJnZXQvZWNsaXBzZS1jYXByYS1lNC45LnRhcmdldApAQCAtMSw3ICsxLDcgQEAKIDw/eG1sIHZlcnNpb249IjEuMCIgZW5jb2Rpbmc9IlVURi04IiBzdGFuZGFsb25lPSJubyI/PgogPD9wZGU/PgogPCEtLSBnZW5lcmF0ZWQgd2l0aCBodHRwczovL2dpdGh1Yi5jb20vZWNsaXBzZS1jYmkvdGFyZ2V0cGxhdGZvcm0tZHNsIC0tPgotPHRhcmdldCBuYW1lPSJlY2xpcHNlLWNhcHJhLWU0LjkiIHNlcXVlbmNlTnVtYmVyPSIxNTY1NTkzOTEwIj4KKzx0YXJnZXQgbmFtZT0iZWNsaXBzZS1jYXByYS1lNC45IiBzZXF1ZW5jZU51bWJlcj0iMTU2NzY5NDM2NCI+CiAgIDxsb2NhdGlvbnM+CiAgICAgPGxvY2F0aW9uIGluY2x1ZGVNb2RlPSJwbGFubmVyIiBpbmNsdWRlQWxsUGxhdGZvcm1zPSJmYWxzZSIgaW5jbHVkZVNvdXJjZT0idHJ1ZSIgaW5jbHVkZUNvbmZpZ3VyZVBoYXNlPSJmYWxzZSIgdHlwZT0iSW5zdGFsbGFibGVVbml0Ij4KICAgICAgIDx1bml0IGlkPSJvcmcuZWNsaXBzZS5jZHQuc2RrLmZlYXR1cmUuZ3JvdXAiIHZlcnNpb249IjkuNS4zLjIwMTgwOTEyMTE0NiIvPgpAQCAtNTAsOCArNTAsOCBAQAogICAgICAgPHJlcG9zaXRvcnkgaWQ9ImVjbGlwc2Utb3JiaXQtbWFyczIiIGxvY2F0aW9uPSJodHRwOi8vZG93bmxvYWQuZWNsaXBzZS5vcmcvdG9vbHMvb3JiaXQvZG93bmxvYWRzL2Ryb3BzL1IyMDE2MDIyMTE5MjE1OC9yZXBvc2l0b3J5LyIvPgogICAgIDwvbG9jYXRpb24+CiAgICAgPGxvY2F0aW9uIGluY2x1ZGVNb2RlPSJwbGFubmVyIiBpbmNsdWRlQWxsUGxhdGZvcm1zPSJmYWxzZSIgaW5jbHVkZVNvdXJjZT0idHJ1ZSIgaW5jbHVkZUNvbmZpZ3VyZVBoYXNlPSJmYWxzZSIgdHlwZT0iSW5zdGFsbGFibGVVbml0Ij4KLSAgICAgIDx1bml0IGlkPSJvcmcuZWNsaXBzZS5zcGhpbnguc2RrLmZlYXR1cmUuZ3JvdXAiIHZlcnNpb249IjAuOC4xLjIwMTQwOTE3MTQyMiIvPgotICAgICAgPHJlcG9zaXRvcnkgbG9jYXRpb249Imh0dHA6Ly9kb3dubG9hZC5lY2xpcHNlLm9yZy9zcGhpbngvcmVsZWFzZXMvMC44LngiLz4KKyAgICAgIDx1bml0IGlkPSJvcmcuZWNsaXBzZS5zcGhpbnguc2RrLmZlYXR1cmUuZ3JvdXAiIHZlcnNpb249IjAuOS4yLjIwMTYwMTIwMDkzMiIvPgorICAgICAgPHJlcG9zaXRvcnkgbG9jYXRpb249Imh0dHA6Ly9kb3dubG9hZC5lY2xpcHNlLm9yZy9zcGhpbngvcmVsZWFzZXMvMC45LngiLz4KICAgICA8L2xvY2F0aW9uPgogICAgIDxsb2NhdGlvbiBpbmNsdWRlTW9kZT0icGxhbm5lciIgaW5jbHVkZUFsbFBsYXRmb3Jtcz0iZmFsc2UiIGluY2x1ZGVTb3VyY2U9InRydWUiIGluY2x1ZGVDb25maWd1cmVQaGFzZT0iZmFsc2UiIHR5cGU9Ikluc3RhbGxhYmxlVW5pdCI+CiAgICAgICA8dW5pdCBpZD0ib3JnLmVjbGlwc2Uucm1mLnJlcWlmMTAuc2RrLmZlYXR1cmUuZmVhdHVyZS5ncm91cCIgdmVyc2lvbj0iMC4xMy4wLjIwMTUwOTE2MTA0MiIvPgpAQCAtNjMsOCArNjMsMTYgQEAKICAgICAgIDxyZXBvc2l0b3J5IGlkPSJwbGFudHVtbCIgbG9jYXRpb249Imh0dHA6Ly9oYWxsdmFyZC5naXRodWIuaW8vcGxhbnR1bWwvIi8+CiAgICAgPC9sb2NhdGlvbj4KICAgICA8bG9jYXRpb24gaW5jbHVkZU1vZGU9InBsYW5uZXIiIGluY2x1ZGVBbGxQbGF0Zm9ybXM9ImZhbHNlIiBpbmNsdWRlU291cmNlPSJ0cnVlIiBpbmNsdWRlQ29uZmlndXJlUGhhc2U9ImZhbHNlIiB0eXBlPSJJbnN0YWxsYWJsZVVuaXQiPgotICAgICAgPHVuaXQgaWQ9ImRlLm92Z3UuZmVhdHVyZWlkZS5mZWF0dXJlbW9kZWxpbmcuZmVhdHVyZS5ncm91cCIgdmVyc2lvbj0iMy41LjUuMjAxOTA2MjgyMzIxIi8+CisgICAgICA8dW5pdCBpZD0iZGUub3ZndS5mZWF0dXJlaWRlLmZlYXR1cmVtb2RlbGluZy5mZWF0dXJlLmdyb3VwIiB2ZXJzaW9uPSIzLjYuMC4yMDE5MDgzMDIyMjciLz4KICAgICAgIDxyZXBvc2l0b3J5IGlkPSJmZWF0dXJlLWlkZSIgbG9jYXRpb249Imh0dHA6Ly9mZWF0dXJlaWRlLmNzLm92Z3UuZGUvdXBkYXRlL3YzLyIvPgogICAgIDwvbG9jYXRpb24+CisgICAgPGxvY2F0aW9uIGluY2x1ZGVNb2RlPSJwbGFubmVyIiBpbmNsdWRlQWxsUGxhdGZvcm1zPSJmYWxzZSIgaW5jbHVkZVNvdXJjZT0idHJ1ZSIgaW5jbHVkZUNvbmZpZ3VyZVBoYXNlPSJmYWxzZSIgdHlwZT0iSW5zdGFsbGFibGVVbml0Ij4KKyAgICAgIDx1bml0IGlkPSJvcmcuZWNsaXBzZS5hcHA0bWMucGxhdGZvcm0uc2RrLmZlYXR1cmUuZ3JvdXAiIHZlcnNpb249IjAuOS41LjIwMTkwNzMxMTI0OCIvPgorICAgICAgPHJlcG9zaXRvcnkgaWQ9IkFQUDRNQyIgbG9jYXRpb249Imh0dHA6Ly9kb3dubG9hZC5lY2xpcHNlLm9yZy9hcHA0bWMvdXBkYXRlc2l0ZXMvcmVsZWFzZXMvMC45LjUvIi8+CisgICAgPC9sb2NhdGlvbj4KKyAgICA8bG9jYXRpb24gaW5jbHVkZU1vZGU9InBsYW5uZXIiIGluY2x1ZGVBbGxQbGF0Zm9ybXM9ImZhbHNlIiBpbmNsdWRlU291cmNlPSJ0cnVlIiBpbmNsdWRlQ29uZmlndXJlUGhhc2U9ImZhbHNlIiB0eXBlPSJJbnN0YWxsYWJsZVVuaXQiPgorICAgICAgPHVuaXQgaWQ9IkkyMDE3MDkyOTIwMTEuQ29yZSIgdmVyc2lvbj0iMS4wLjAuMDdJLWNMVHo3NjhJRTdBWTdnQWVBT0c5Ii8+CisgICAgICA8cmVwb3NpdG9yeSBpZD0iRUFTRSIgbG9jYXRpb249Imh0dHA6Ly9kb3dubG9hZC5lY2xpcHNlLm9yZy9lYXNlL3VwZGF0ZS9yZWxlYXNlIi8+CisgICAgPC9sb2NhdGlvbj4KICAgPC9sb2NhdGlvbnM+CiA8L3RhcmdldD4KZGlmZiAtLWdpdCBhL3JlbGVuZy9vcmcuZWNsaXBzZS5jYXByYS5yZWxlbmcudGFyZ2V0L2VjbGlwc2UtY2FwcmEtZTQuOS50cGQgYi9yZWxlbmcvb3JnLmVjbGlwc2UuY2FwcmEucmVsZW5nLnRhcmdldC9lY2xpcHNlLWNhcHJhLWU0LjkudHBkCmluZGV4IDMxYjQzNWYuLmJlODIzYjYgMTAwNjQ0Ci0tLSBhL3JlbGVuZy9vcmcuZWNsaXBzZS5jYXByYS5yZWxlbmcudGFyZ2V0L2VjbGlwc2UtY2FwcmEtZTQuOS50cGQKKysrIGIvcmVsZW5nL29yZy5lY2xpcHNlLmNhcHJhLnJlbGVuZy50YXJnZXQvZWNsaXBzZS1jYXByYS1lNC45LnRwZApAQCAtNDYsNyArNDYsNyBAQAogCW9yZy5tb3J0YmF5LmpldHR5LnNlcnZlcgogfQogCi1sb2NhdGlvbiAiaHR0cDovL2Rvd25sb2FkLmVjbGlwc2Uub3JnL3NwaGlueC9yZWxlYXNlcy8wLjgueCIgeworbG9jYXRpb24gImh0dHA6Ly9kb3dubG9hZC5lY2xpcHNlLm9yZy9zcGhpbngvcmVsZWFzZXMvMC45LngiIHsKIAlvcmcuZWNsaXBzZS5zcGhpbnguc2RrLmZlYXR1cmUuZ3JvdXAKIH0KIApAQCAtNjEsNCArNjEsMTIgQEAKIAogbG9jYXRpb24gImh0dHA6Ly9mZWF0dXJlaWRlLmNzLm92Z3UuZGUvdXBkYXRlL3YzLyIgZmVhdHVyZS1pZGUgewogCWRlLm92Z3UuZmVhdHVyZWlkZS5mZWF0dXJlbW9kZWxpbmcuZmVhdHVyZS5ncm91cCAzLjUuNAorfQorCitsb2NhdGlvbiAiaHR0cDovL2Rvd25sb2FkLmVjbGlwc2Uub3JnL2FwcDRtYy91cGRhdGVzaXRlcy9yZWxlYXNlcy8wLjkuNS8iIEFQUDRNQyB7CisJb3JnLmVjbGlwc2UuYXBwNG1jLnBsYXRmb3JtLnNkay5mZWF0dXJlLmdyb3VwCit9CisKK2xvY2F0aW9uICJodHRwOi8vZG93bmxvYWQuZWNsaXBzZS5vcmcvZWFzZS91cGRhdGUvcmVsZWFzZSIgRUFTRSB7CisJSTIwMTcwOTI5MjAxMS5Db3JlCiB9ClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQpkaWZmIC0tZ2l0IGEvcmVsZW5nL29yZy5lY2xpcHNlLmNhcHJhLnJlbGVuZy50YXJnZXQvb3JnLmVjbGlwc2UuY2FwcmEucmVsZW5nLnRhcmdldC50YXJnZXQgYi9yZWxlbmcvb3JnLmVjbGlwc2UuY2FwcmEucmVsZW5nLnRhcmdldC9vcmcuZWNsaXBzZS5jYXByYS5yZWxlbmcudGFyZ2V0LnRhcmdldAppbmRleCAzZDJkYzkwLi5hOGE5NDU0IDEwMDY0NAotLS0gYS9yZWxlbmcvb3JnLmVjbGlwc2UuY2FwcmEucmVsZW5nLnRhcmdldC9vcmcuZWNsaXBzZS5jYXByYS5yZWxlbmcudGFyZ2V0LnRhcmdldAorKysgYi9yZWxlbmcvb3JnLmVjbGlwc2UuY2FwcmEucmVsZW5nLnRhcmdldC9vcmcuZWNsaXBzZS5jYXByYS5yZWxlbmcudGFyZ2V0LnRhcmdldApAQCAtMSw1ICsxLDYgQEAKIDw/eG1sIHZlcnNpb249IjEuMCIgZW5jb2Rpbmc9IlVURi04IiBzdGFuZGFsb25lPSJubyI/PgotPD9wZGUgdmVyc2lvbj0iMy44Ij8+PHRhcmdldCBuYW1lPSJOZW9uIiBzZXF1ZW5jZU51bWJlcj0iNjEiPgorPD9wZGUgdmVyc2lvbj0iMy44Ij8+Cis8dGFyZ2V0IG5hbWU9Ik5lb24iIHNlcXVlbmNlTnVtYmVyPSI2MiI+CiA8bG9jYXRpb25zPgogPGxvY2F0aW9uIGluY2x1ZGVBbGxQbGF0Zm9ybXM9ImZhbHNlIiBpbmNsdWRlQ29uZmlndXJlUGhhc2U9InRydWUiIGluY2x1ZGVNb2RlPSJwbGFubmVyIiBpbmNsdWRlU291cmNlPSJ0cnVlIiB0eXBlPSJJbnN0YWxsYWJsZVVuaXQiPgogPHVuaXQgaWQ9Im9yZy5lY2xpcHNlLmdlZjQuY29tbW9uLnNkay5mZWF0dXJlLmdyb3VwIiB2ZXJzaW9uPSIwLjAuMCIvPgpAQCAtNjYsNSArNjcsMTggQEAKIDx1bml0IGlkPSJuZXQuc291cmNlZm9yZ2UucGxhbnR1bWwuZmVhdHVyZS5mZWF0dXJlLmdyb3VwIiB2ZXJzaW9uPSIxLjEuMjMiLz4KIDxyZXBvc2l0b3J5IGxvY2F0aW9uPSJodHRwOi8vaGFsbHZhcmQuZ2l0aHViLmlvL3BsYW50dW1sLyIvPgogPC9sb2NhdGlvbj4KKwk8bG9jYXRpb24gaW5jbHVkZUFsbFBsYXRmb3Jtcz0iZmFsc2UiIGluY2x1ZGVDb25maWd1cmVQaGFzZT0idHJ1ZSIgaW5jbHVkZU1vZGU9InBsYW5uZXIiIGluY2x1ZGVTb3VyY2U9InRydWUiIHR5cGU9Ikluc3RhbGxhYmxlVW5pdCI+CisJCTxyZXBvc2l0b3J5IGxvY2F0aW9uPSJodHRwOi8vZG93bmxvYWQuZWNsaXBzZS5vcmcvZWFzZS91cGRhdGUvcmVsZWFzZSIvPgorCQk8dW5pdCBpZD0ib3JnLmVjbGlwc2UuZWFzZS5mZWF0dXJlLmZlYXR1cmUuZ3JvdXAiIHZlcnNpb249IjAuNi4wLkkyMDE4MDIyNzE1MzMiLz4KKwkJPHVuaXQgaWQ9Im9yZy5lY2xpcHNlLmVhc2UudWkuZmVhdHVyZS5mZWF0dXJlLmdyb3VwIiB2ZXJzaW9uPSIwLjYuMC5JMjAxODA0MjQxNjIxIi8+CisJPC9sb2NhdGlvbj4KKwk8bG9jYXRpb24gaW5jbHVkZUFsbFBsYXRmb3Jtcz0iZmFsc2UiIGluY2x1ZGVDb25maWd1cmVQaGFzZT0idHJ1ZSIgaW5jbHVkZU1vZGU9InBsYW5uZXIiIGluY2x1ZGVTb3VyY2U9InRydWUiIHR5cGU9Ikluc3RhbGxhYmxlVW5pdCI+CisJCTxyZXBvc2l0b3J5IGxvY2F0aW9uPSJodHRwOi8vZG93bmxvYWQuZWNsaXBzZS5vcmcvYXBwNG1jL3VwZGF0ZXNpdGVzL3JlbGVhc2VzLzAuOS41LyIvPgorCQk8dW5pdCBpZD0ib3JnLmVjbGlwc2UuYXBwNG1jLnBsYXRmb3JtLnNkay5mZWF0dXJlLmdyb3VwIiB2ZXJzaW9uPSIwLjkuNS4yMDE5MDczMTEyNDgiLz4KKwk8L2xvY2F0aW9uPgorCTxsb2NhdGlvbiBpbmNsdWRlQWxsUGxhdGZvcm1zPSJmYWxzZSIgaW5jbHVkZUNvbmZpZ3VyZVBoYXNlPSJ0cnVlIiBpbmNsdWRlTW9kZT0icGxhbm5lciIgaW5jbHVkZVNvdXJjZT0idHJ1ZSIgdHlwZT0iSW5zdGFsbGFibGVVbml0Ij4KKwkJPHJlcG9zaXRvcnkgbG9jYXRpb249Imh0dHA6Ly9kb3dubG9hZC5lY2xpcHNlLm9yZy90b29scy9vcmJpdC9SLWJ1aWxkcy9SMjAxNzAzMDcxODA2MzUvcmVwb3NpdG9yeSIvPgorCQk8dW5pdCBpZD0ib3JnLmFwYWNoZS5jb21tb25zLm1hdGgzIiB2ZXJzaW9uPSIzLjUuMC52MjAxNjAzMDEtMTExMCIvPgorCTwvbG9jYXRpb24+CiA8L2xvY2F0aW9ucz4KLTwvdGFyZ2V0PgorPC90YXJnZXQ+ClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQo=