ZGlmZiAtLWdpdCBhL2luZGV4UmVsZWFzZS5waHAgYi9pbmRleFJlbGVhc2UucGhwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjc4MGMwODAKLS0tIC9kZXYvbnVsbAorKysgYi9pbmRleFJlbGVhc2UucGhwCkBAIC0wLDAgKzEsMTQzIEBACis8P3BocCAgCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQlyZXF1aXJlX29uY2UoJF9TRVJWRVJbJ0RPQ1VNRU5UX1JPT1QnXSAuICIvZWNsaXBzZS5vcmctY29tbW9uL3N5c3RlbS9hcHAuY2xhc3MucGhwIik7CXJlcXVpcmVfb25jZSgkX1NFUlZFUlsnRE9DVU1FTlRfUk9PVCddIC4gIi9lY2xpcHNlLm9yZy1jb21tb24vc3lzdGVtL25hdi5jbGFzcy5waHAiKTsgCXJlcXVpcmVfb25jZSgkX1NFUlZFUlsnRE9DVU1FTlRfUk9PVCddIC4gIi9lY2xpcHNlLm9yZy1jb21tb24vc3lzdGVtL21lbnUuY2xhc3MucGhwIik7IAkkQXBwIAk9IG5ldyBBcHAoKTsJJE5hdgk9IG5ldyBOYXYoKTsJJE1lbnUgCT0gbmV3IE1lbnUoKTsJCWluY2x1ZGUoJEFwcC0+Z2V0UHJvamVjdENvbW1vbigpKTsgICAgIyBBbGwgb24gdGhlIHNhbWUgbGluZSB0byB1bmNsdXR0ZXIgdGhlIHVzZXIncyBkZXNrdG9wJworCQorCSMqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorCSMKKwkjIHRlbXBsYXRlLnBocAorCSMKKwkjIEF1dGhvcjogCQlEZW5pcyBSb3kKKwkjIERhdGU6CQkJMjAwNS0wNi0xNgorCSMKKwkjIERlc2NyaXB0aW9uOiBUeXBlIHlvdXIgcGFnZSBjb21tZW50cyBoZXJlIC0gdGhlc2UgYXJlIG5vdCBzZW50IHRvIHRoZSBicm93c2VyCisJIworCSMKKwkjKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorCSRkb2N1bWVudFJvb3QgPSAkX1NFUlZFUlsnRE9DVU1FTlRfUk9PVCddOworCS8vcmVxdWlyZV9vbmNlICgkZG9jdW1lbnRSb290IC4nL2V1cm9wYS9zY3JpcHRzL3Byb2plY3RzVGFibGUucGhwJyk7CisJLy9yZXF1aXJlX29uY2UgKCRkb2N1bWVudFJvb3QgLiAnL3Jlc291cmNlcy9zY3JpcHRzL3Jlc291cmNlc19odG1sLnBocCcpOwkKKwlyZXF1aXJlX29uY2UgKCRkb2N1bWVudFJvb3QgLiAnL2V1cm9wYS9zY3JpcHRzL3doYXRzbmV3LnBocCcpOworCSMKKwkjIEJlZ2luOiBwYWdlLXNwZWNpZmljIHNldHRpbmdzLiAgQ2hhbmdlIHRoZXNlLiAKKwkkcGFnZVRpdGxlIAkJPSAiRWNsaXBzZSBFdXJvcGEgUmVsZWFzZSI7CisJJHBhZ2VLZXl3b3Jkcwk9ICJFY2xpcHNlIEV1cm9wYSBTaW11bHRhbmVvdXMgUmVsZWFzZSI7CisJJHBhZ2VBdXRob3IJCT0gIk5hdGhhbiBHZXJ2YWlzIjsKKwkKKwkjIEFkZCBwYWdlLXNwZWNpZmljIE5hdiBiYXJzIGhlcmUKKwkjIEZvcm1hdCBpcyBMaW5rIHRleHQsIGxpbmsgVVJMIChjYW4gYmUgaHR0cDovL3d3dy5zb21lb3RoZXJzaXRlLmNvbS8pLCB0YXJnZXQgKF9zZWxmLCBfYmxhbmspLCBsZXZlbCAoMSwgMiBvciAzKQorCSMgJE5hdi0+YWRkTmF2U2VwYXJhdG9yKCJNeSBQYWdlIExpbmtzIiwgCSJkb3dubG9hZHMucGhwIik7CisJIyAkTmF2LT5hZGRDdXN0b21OYXYoIk15IExpbmsiLCAibXlwYWdlLnBocCIsICJfc2VsZiIsIDEpOworCSMgJE5hdi0+YWRkQ3VzdG9tTmF2KCJHb29nbGUiLCAiaHR0cDovL3d3dy5nb29nbGUuY29tLyIsICJfYmxhbmsiLCAxKTsKKworCSMgRW5kOiBwYWdlLXNwZWNpZmljIHNldHRpbmdzCisJIworCS8vIFRoaXMgZmlsZSBpcyBsaW5rZWQgdG8gZnJvbSBsb3RzIG9mIGRpZmZlcmVudCBwbGFjZXMuCisJLy8gVXNlIGFic29sdXRlIHBhdGhzIHRvIG1ha2Ugc3VyZSB0aGF0IHdlIGNhbiBhY3R1YWxseSB0ZXN0CisJLy8gdGhhdCB0aGUgZmlsZSByZW5kZXJzIHByb3Blcmx5IChpLmUuIHRlc3RpbmcgdXNpbmcpICIvaW5kZXgucGhwIiwKKwkvLyBhbmQgIi9ob21lL2luZGV4LnBocCIgYm90aCB3b3JrLgorCSMgUGFzdGUgeW91ciBIVE1MIGNvbnRlbnQgYmV0d2VlbiB0aGUgRU9IVE1MIG1hcmtlcnMhCisJCisJCisJJHdoYXRzbmV3ID0gcnNzX3RvX3NpZGVpdGVtX2h0bWwoJy9jb21tdW5pdHkvbmV3cy8yMDA1aW50aGVuZXdzYXJjaGl2ZScsIDMsICJldXJvcGEiKTsJCisJJHJlc291cmNlX2ZpbHRlciA9ICJFdXJvcGEiOworCS8vJGRpc3BsYXlUYWJzID0gZGlzcGxheVRhYnMoKTsJCQorCS8vJHJlc291cmNlc190YWJsZSA9ICRSZXNvdXJjZXNfSFRNTC0+Z2V0X3BpbGxhcl9yZXNvdXJjZXNfdGFibGUoJHJlc291cmNlX2ZpbHRlcik7CisJIAorCW9iX3N0YXJ0KCk7CisJPz4KKwk8bWFwIG5hbWU9ImRldmVsb3BlckJhck1hcCI+CisJCTxhcmVhIHNoYXBlPSJyZWN0IiBhbHQ9IiIgY29vcmRzPSI2MzMsMCw4MDAsNjkiIGhyZWY9Ii9kb3dubG9hZHMvZGlzdHJvcy5waHAiPgorCQk8YXJlYSBzaGFwZT0icmVjdCIgYWx0PSIiIGNvb3Jkcz0iNDY1LDAsNjMzLDY5IiBocmVmPSIvZG93bmxvYWRzL21vcmVpbmZvLnBocD9pbmZvPXJjcCI+CisJCTxhcmVhIHNoYXBlPSJyZWN0IiBhbHQ9IiIgY29vcmRzPSIzMDcsMCw0NjUsNjkiIGhyZWY9Ii9kb3dubG9hZHMvbW9yZWluZm8ucGhwP2luZm89YyI+CisJCTxhcmVhIHNoYXBlPSJyZWN0IiBhbHQ9IiIgY29vcmRzPSIxNDQsMCwzMDcsNjkiIGhyZWY9Ii9kb3dubG9hZHMvbW9yZWluZm8ucGhwP2luZm89amVlIj4KKwkJPGFyZWEgc2hhcGU9InJlY3QiIGFsdD0iIiBjb29yZHM9IjAsMCwxNDQsNjkiIGhyZWY9Ii9kb3dubG9hZHMvbW9yZWluZm8ucGhwP2luZm89amF2YSIgPgorCTwvbWFwPgkJCisJPHNjcmlwdCBsYW5ndWFnZT0iamF2YXNjcmlwdCIgdHlwZT0idGV4dC9qYXZhc2NyaXB0IiBzcmM9InNjcmlwdHMvY291bnRkb3duLmpzIj48L3NjcmlwdD4KKwk8bGluayByZWw9InN0eWxlc2hlZXQiIHR5cGU9InRleHQvY3NzIiBocmVmPSJsYXlvdXQuY3NzIiBtZWRpYT0ic2NyZWVuIiAvPgorCTxkaXYgaWQ9Im1pZGNvbHVtbiI+CisJCTxkaXYgaWQ9ImhlYWRlckJHIj4KKwkJCTx0YWJsZSBjZWxsc3BhY2luZz0wIGNsYXNzPSJoZWFkZXJCYXIiPgorCSAgICAgICAgCTx0cj4KKwkgICAgICAgIAkJPHRkIGFsaWduPSJyaWdodCI+PGltZyBzcmM9ImltYWdlcy90YWJEYXRlLmdpZiIgYWxpZ249InJpZ2h0IiBpZD0iZGF0ZVRhYiIiPjwvdGQ+CisJCQkJPC90cj4JCQkJCisJCQk8L3RhYmxlPgorCQk8L2Rpdj4KKwkJPHA+CisJCQkJRWNsaXBzZSBFdXJvcGEgaXMgdGhlIGFubnVhbCByZWxlYXNlIG9mIEVjbGlwc2UgcHJvamVjdHMuICBMaWtlIGxhc3QgeWVhcpJzIENhbGxpc3RvIHJlbGVhc2UsIHRoZSBFdXJvcGEgcmVsZWFzZSBpcyBhIGNvb3JkaW5hdGUgcmVsZWFzZSBvZiBkaWZmZXJlbnQgRWNsaXBzZSBwcm9qZWN0IHRlYW1zLiAgIFRoaXMgeWVhciwgdGhlIGFubnVhbCByZWxlYXNlIGluY2x1ZGVzIDxhIGhyZWY9InByb2plY3RzLnBocCI+MjEgcHJvamVjdHMuPC9hPiAgIEJ5IHJlbGVhc2luZyB0aGVzZSBwcm9qZWN0cyBhdCB0aGUgc2FtZSB0aW1lLCB0aGUgZ29hbCBpcyB0byBlbGltaW5hdGUgdW5jZXJ0YWludHkgYWJvdXQgdmVyc2lvbiBjb21wYXRpYmlsaXR5IGFuZCBtYWtlIGl0IGVhc2llciB0byBpbmNvcnBvcmF0ZSBtdWx0aXBsZSBwcm9qZWN0cyBpbnRvIHlvdXIgZW52aXJvbm1lbnQuCisJCSAgICAgICAgPGJyIC8+PGJyIC8+CisJCSAgICAgICAgICAgICAgCisJCSAgICAgICAgPGVtPldoaWxlIEV1cm9wYSBpcyBhYm91dCB0aGUgc2ltdWx0YW5lb3VzIHJlbGVhc2Ugb2YgPGEgaHJlZj0icHJvamVjdHMucGhwIj50d2VudHkgb25lIHByb2plY3RzPC9hPiwgaXQgaXMKKwkJICAgICAgICBub3QgYSB1bmlmaWNhdGlvbiBvZiB0aGUgcHJvamVjdHMgLSBlYWNoIHByb2plY3QgcmVtYWlucyBhIHNlcGFyYXRlIG9wZW4gc291cmNlIHByb2plY3Qgb3BlcmF0aW5nIHdpdGggaXRzIG93biBwcm9qZWN0IGxlYWRlcnNoaXAsIGl0cyBvd24gY29tbWl0dGVycywgYW5kIGl0cyBvd24gcHJvamVjdCBwbGFuLjwvZW0+CisJCQkJPGJyLz4KKwkJCQk8YnIvPgorCQkJCTxpbWcgc3JjPSJpbWFnZXMvZGV2ZWxvcGVyQmFyLmpwZyIgdXNlTWFwPSIjZGV2ZWxvcGVyQmFyTWFwIj48YnIvPjxici8+CisJCQkJPCEtLSA8c3BhbiBjbGFzcz0iZXVyb3BhTGluayI+SGVscCBQcm9tb3RlIEVjbGlwc2UgRXVyb3BhPC9zcGFuPjxici8+CisJCQkJVmlzaXQgb3VyIDxhIGhyZWY9ImZyaWVuZHMucGhwIj5GcmllbmRzIG9mIEV1cm9wYTwvYT4gcGFnZSBhbmQgaW5jbHVkZSBvbmUgb2YgdGhlIGltYWdlcyBvbiB5b3VyIHNpdGUuPGJyLz48YnIvPgorCQkJCTxzcGFuIGNsYXNzPSJldXJvcGFMaW5rIj5UZXN0IERyaXZlIHRoZSBMYXRlc3QgRWNsaXBzZSBFdXJvcGEgUmVsZWFzZSBDYW5kaWRhdGVzIChSQyk8L3NwYW4+PGJyLz4KKwkJCQlUaGUgRWNsaXBzZSBFdXJvcGEgdXBkYXRlIHNpdGUgY2FuIGJlIGZvdW5kIGF0OiBodHRwOi8vZG93bmxvYWQuZWNsaXBzZS5vcmcvcmVsZWFzZXMvZXVyb3BhL3NpdGUueG1sPGJyLz5UbyB1c2UgdGhlIHVwZGF0ZSBzaXRlIGNvcHkgdGhlIFVSTCBhYm92ZSBhbmQgcGFzdGUgaXQgaW50byB0aGUgRWNsaXBzZSBVcGRhdGUgTWFuYWdlci48YnIvPjxici8+CisJCQkJPHNwYW4gY2xhc3M9ImV1cm9wYUxpbmsiPkZvbGxvdyB0aGUgRWNsaXBzZSBFdXJvcGEgRGV2ZWxvcG1lbnQgQ29vcmRpbmF0aW9uPC9zcGFuPjxici8+CisJCQkJQ2hlY2sgb3V0IHRoZSA8YSBocmVmPSJodHRwOi8vd2lraS5lY2xpcHNlLm9yZy9pbmRleC5waHAvRXVyb3BhX1NpbXVsdGFuZW91c19SZWxlYXNlIj5FY2xpcHNlIEV1cm9wYSBXaWtpIFBhZ2U8L2E+IHRvIGNoZWNrIG91dCB0aGUgc3RhdHVzIG9mIEV1cm9wYTwvYnI+PGJyLz4gLS0+CisJCTwvcD4KKwkKKwkKKyAgICAgICAgCisgICAgICAgIDxkaXYgY2xhc3M9ImhvbWVpdGVtIG5vTWFyZ2luTGVmdCI+CisgICAgICAgIDxoMz5MZWFybiBtb3JlPC9oMz4KKyAgICAgICAgPHVsPgorICAgICAgICAJPGxpPjxhIGhyZWY9ImV1cm9wYXRhZ3MucGhwIj5FdXJvcGEgRXhwZXJpZW5jZXM8L2E+IGZyb20gdGhlIEJsb2dzcGhlcmU8L2xpPgorICAgICAgICAJPGxpPkNoZWNrIG91dCB0aGUgbGF0ZXN0IDxhIGhyZWY9Imh0dHA6Ly9saXZlLmVjbGlwc2Uub3JnL3NlYXJjaC9ub2RlL2V1cm9wYSI+V2ViaW5hcnM8L2E+IGF0IDxhIGhyZWY9Imh0dHA6Ly9saXZlLmVjbGlwc2Uub3JnIj5FY2xpcHNlIExpdmU8L2E+PC9saT4KKyAgICAgICAgCTxsaT5JU1ZzIGFkb3B0aW5nIDxhIGhyZWY9ImV1cm9wYWVmZmVjdC5waHAiPkV1cm9wYSBwcm9qZWN0czwvYT48L2xpPgorICAgICAgICAJPGxpPiBMaXN0ZW4gdG8gdGhlIDxhIGhyZWY9Imh0dHA6Ly93d3cuZWNsaXBzZXpvbmUuY29tL3BvZGNhc3RzLmpzcCIgdGFyZ2V0PSJibGFuayI+RWNsaXBzZVpvbmUgRXVyb3BhIFBvZGNhc3RzPC9hPgorICAgICAgICA8L3VsPgorICAgICAgICA8L2Rpdj4JCisKKwkJPD89JHdoYXRzbmV3Oz8+CisJCTxici8+CisJCTw/IC8qPHRhYmxlIHdpZHRoPSIxMDAlIiBjZWxsc3BhY2luZz0wIGNlbGxwYWRkaW5nPTA+CisJCQk8dHI+CisJCQkJPHRkIGNvbHNwYW49IjIiPgkJCQkKKwkJCQkJPGRpdiBpZD0idGVjaG5pY2FsUmVzb3VyY2VzIj4KKwkJCQkJCTw/PSRyZXNvdXJjZXNfdGFibGU7Pz4KKwkJCQkJPC9kaXY+CisJCQkJPC90ZD4KKwkJCTwvdHI+CisJCQk8L3RhYmxlPiAqLyA/PgkJCisKKwkJPHA+Jm5ic3A7PC9wPgorCisJPC9kaXY+CisKKwk8ZGl2IGlkPSJyaWdodGNvbHVtbiI+CisJCTxkaXYgY2xhc3M9InNpZGVpdGVtIj4KKwkJCTxoNj5SZWxhdGVkIExpbmtzPC9oNj4KKwkJCQk8dWw+CisJCQkJCTxsaT48YSBocmVmPSJmcmllbmRzLnBocCI+RnJpZW5kcyBvZiBFdXJvcGE8L2E+PC9saT4KKwkJCQkJPGxpPjxhIGhyZWY9InByb2plY3RzLnBocCI+RXVyb3BhIFByb2plY3RzPC9hPjwvbGk+CisJCQkJPC91bD4KKwkJPC9kaXY+CisJCQorCQk8ZGl2IGNsYXNzPSJzaWRlaXRlbSI+CisJCQk8aDY+Q291bnRkb3duIHRvIEV1cm9wYTwvaDY+CisJCQk8ZGl2IGlkPSJjb3VudGRvd24iPgorCQkJCisJCQk8L2Rpdj4KKwkJPC9kaXY+CisJICAgPD8gLyo8ZGl2IGNsYXNzPSJzaWRlaXRlbSI+CisJCQkJPD89JHdoYXRzbmV3Oz8+CQorCQk8L2Rpdj4KKwkJCisJCTxkaXYgY2xhc3M9InNpZGVpdGVtIj4KKwkJCTxoNj5SZWxhdGVkIExpbmtzPC9oNj4KKwkJCTx1bD4KKwkJCQk8bGk+PGEgaHJlZj0iZnJpZW5kcy5waHAiPkZyaWVuZHMgb2YgRXVyb3BhPC9hPjwvbGk+CisJCQk8L3VsPgorCQk8L2Rpdj4KKwkJICovID8+IAorCTwvZGl2PgorCis8PyAKKyRodG1sID0gb2JfZ2V0X2NvbnRlbnRzKCk7CitvYl9lbmRfY2xlYW4oKTsKKworCSMgR2VuZXJhdGUgdGhlIHdlYiBwYWdlCisJJEFwcC0+Z2VuZXJhdGVQYWdlKCR0aGVtZSwgJE1lbnUsICROYXYsICRwYWdlQXV0aG9yLCAkcGFnZUtleXdvcmRzLCAkcGFnZVRpdGxlLCAkaHRtbCk7Cis/PgorCg==