ZGlmZiAtLWdpdCBhL2RvYy93aXovbWF0ZXJpYWwgYi9kb2Mvd2l6L21hdGVyaWFsCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmNiZjgwMjIKLS0tIC9kZXYvbnVsbAorKysgYi9kb2Mvd2l6L21hdGVyaWFsCkBAIC0wLDAgKzEsOTggQEAKK01hdGVyaWFsaWVuCis9PT09PT09PT09PQorCisgICAgIE1hdGVyaWFsaWVuIGluIE1vcmdlbmdyYXVlbiBrb2VubmVuIHVlYmVyIGRpZSBQcm9wZXJ0eSBQX01BVEVSSUFMIGplZGVtIAorICAgICBPYmpla3QgaW0gU3BpZWwgenVnZW9yZG5ldCB3ZXJkZW4uIFVlYmVyIGRpZSBNYXRlcmlhbGllbmRhdGVuYmFuayAKKyAgICAgc3RlaGVuIGRhZnVlciBqZWRlIE1lbmdlIE1hdGVyaWFsaWVuIHp1ciBWZXJmdWVndW5nLiBXZW5uIG1vZWdsaWNoLCAKKyAgICAgc29sbHRlbiBkaWVzZSBhdWNoIGJlbnV0enQgd2VyZGVuLCBlcyB3ZXJkZW4gRGVmYXVsdG1hdGVyaWFsaWVuIAorICAgICBnZXNldHp0LCBkaWVzZSBlbnRzcHJlY2hlbiBhYmVyIHNlbHRlbiBldXJlciBSZWFsaXRhZXQuCisKKyAgICAgRGllIE1hdGVyaWFsaWVuZGF0ZW5iYW5rIC9zZWN1cmUvbWF0ZXJpYWxkYi5jIGhhZWx0IHNhZW10bGljaGUgCisgICAgIEluZm9ybWF0aW9uZW4gdWViZXIgZGllIHZlcndlbmRiYXJlbiBNYXRlcmlhbGllbiwgZGllIHVudGVyIAorICAgICAvc3lzL3RoaW5nL21hdGVyaWFsLmggYXVmZ2VmdWVocnQgc2luZC4gRXMgZW1wZmllaGx0IHNpY2ggU0VIUiwgVmVyd2Vpc2UKKyAgICAgYXVmIGRpZSBNYXREQiBudXIgaW4gRm9ybSB2b24gTUFURVJJQUxEQiB6dSBmb3JtdWxpZXJlbi4KKyAgICAgU2llIHZlcndhbHRldCBhdWNoIGRpZSBFaWdlbnNjaGFmdGVuIGVpbnplbG5lciBNYXRlcmlhbGllbi4gRXMgZ2lidCAKKyAgICAgZGl2ZXJzZSBNYXRlcmlhbGllbmdydXBwZW4gd2llICJlbnRmbGFtbWJhciIsICJNZXRhbGwiLCAiYmlvbG9naXNjaGVzIAorICAgICBNYXRlcmlhbCIsIGRlbmVuIGRpZSBNYXRlcmlhbGllbiBlbnRzcHJlY2hlbmQgenVnZW9yZG5ldCBzaW5kLiBEaWVzZSAKKyAgICAgSW5mb3JtYXRpb25lbiBrb2VubmVuIG1pdCBlbnRzcHJlY2hlbmRlbiBNZXRob2RlbiBhYmdlcnVmZW4vYXVzZ2V3ZXJ0ZXQgCisgICAgIHdlcmRlbi4KKyAgICAgRGFydWViZXIgaGluYXVzIHNpbmQgTWF0ZXJpYWxpZW4gYmVpIGRlciBFcmtlbm51bmcgbWl0IGFuZGVyZW4gCisgICAgIE1hdGVyaWFsaWVuIHZlcndlY2hzZWxiYXIuIFdpZSBkYXMgZ2VuYXUgZnVua3Rpb25pZXJ0LCBpc3QgaW4gIm1hbiAKKyAgICAgbWF0ZXJpYWxlcmtlbm51bmciIGF1c2dlZnVlaHJ0LgorCisgICAgIFBfTUFURVJJQUw6CisgICAgICAgRGllIFByb3BlcnR5IFBfTUFURVJJQUwgaXN0IGdydW5kc2FldHpsaWNoIGVpbiBNYXBwaW5nLCBpbiBkZW0genUgCisgICAgICAgamVkZW0gTWF0ZXJpYWwgZGVyIEFudGVpbCBhbiBkZW0gT2JqZWt0IHN0ZWhlbiBzb2xsdGUsIFouQi4ga2FubiAKKyAgICAgICBlaW4gU3BlZXIgenUgODAlIGF1cyBIb2x6IHVuZCB6dSAyMCUgYXVzIE1ldGFsbCAoU3BlZXJzcGl0emUpIAorICAgICAgIGJlc3RlaGVuOgorCisJU2V0UHJvcChQX01BVEVSSUFMLCAoW01BVF9NSVNDX01FVEFMOjIwLE1BVF9NSVNDX1dPT0Q6ODBdKSkKKworICAgICAgIChadXIgVmVyZWluZmFjaHVuZyBpc3QgZXMgZXJsYXVidCwgYmVpIFNldFByb3AgZWluIGVpbnplbG5lcyBNYXRlcmlhbCAKKyAgICAgICAgb2RlciBlaW4gQXJyYXkgYXVzIE1hdGVyaWFsaWVuIGFuenVnZWJlbiwgYmVpZGVzIHdpcmQgYXV0b21hdGlzY2ggCisgICAgICAgIHVtZ2V3YW5kZWx0IGluIGVpbiBNYXBwaW5nIG1pdCBnbGVpY2hlbiBBbnRlaWxlbiBhbGxlciBNYXRlcmlhbGllbi4pCisKKyAgICAgRGVmYXVsdHMgZvxyIFBfTUFURVJJQUw6CisJV2FmZmVuIGdlbmVyZWxsOgkgICAoW01BVF9NSVNDX01FVEFMOjEwMF0pCisJU2Nod2VydGVyOgkJICAgKFtNQVRfTUlTQ19NRVRBTDoxMDBdKQorICAgIAlNZXNzZXI6CQkJICAgKFtNQVRfTUlTQ19NRVRBTDo4MCwgTUFUX01JU0NfV09PRDoyMF0pCisJQWV4dGU6CQkJICAgKFtNQVRfTUlTQ19NRVRBTDo1MCwgTUFUX01JU0NfV09PRDo1MF0pCisJU3BlZXJlOgkJCSAgIChbTUFUX01JU0NfTUVUQUw6MjAsIE1BVF9NSVNDX1dPT0Q6ODBdKQorCUtldWxlbjoJCQkgICAoW01BVF9NSVNDX1dPT0Q6MTAwXSkKKwlSdWVzdHVuZ2VuIGdlbmVyZWxsOgkgICAoW01BVF9MRUFUSEVSOjEwMF0pCisJS29lcnBlcnJ1ZXN0dW5nZW4sIEhlbG1lLAorCVJpbmdlLCBBbXVsZXR0ZSwgU2NoaWxkZTogIChbTUFUX01JU0NfTUVUQUw6MTAwXSkKKwlVbWhhZW5nZSwgSG9zZW46CSAgIChbTUFUX0NMT1RIOjEwMF0pCisJSGFuZHNjaHVoZSwgU2NodWhlOgkgICAoW01BVF9MRUFUSEVSOjEwMF0pCisJYW5kZXJlIERpbmdlOgkJICAgKFtNQVRfTUlTQzoxMDBdKQorCisgICAgICBVZWJlcnNpY2h0IHVlYmVyIGRpZSBNZXRob2RlbiBhbiBPYmpla3RlbiAoL3N0ZC90aGluZy9kZXNjcmlwdGlvbik6CisJaW50IFF1ZXJ5TWF0ZXJpYWwoc3RyaW5nIG1hdCk6CisJLSBnaWJ0ICUgZGVzIE1hdGVyaWFsYW50ZWlscyB2b24gbWF0IGFtIE9iamVrdCB6dXJ1ZWNrCisJaW50IFF1ZXJ5TWF0ZXJpYWxHcm91cChzdHJpbmcgZ3JwKToKKwktIGdpYnQgJSBkZXMgTWF0ZXJpYWxncnVwcGVuYW50ZWlscyB2b24gZ3JwIGFtIE9iamVrdCB6dXJ1ZWNrCisJc3RyaW5nIE1hdGVyaWFsTGlzdChpbnQgY2FzdXMsIG1peGVkIGlkaW5mKToKKwktIGdpYnQgU3RyaW5nIG1pdCBadXNhbW1lbnNldHp1bmcgZGVzIE9iamVrdGVzIHp1cnVlY2sKKworICAgICAgVWViZXJzaWNodCB1ZWJlciBkaWUgTWV0aG9kZW4gYW0gTWFzdGVyIChNQVRFUklBTERCKToKKwlzdHJpbmcgKkdldE1hdE1lbWJlcnNoaXAoc3RyaW5nIG1hdCk6CisJLSBhbGxlIEdydXBwZW4sIGluIGRlbmVuIGRhcyBNYXRlcmlhbCBtYXQgaXN0CisJc3RyaW5nICpHZXRHcm91cE1lbWJlcnMoc3RyaW5nIGdycCk6CisJLSBhbGxlIE1hdGVyaWFsaWVuLCBkaWUgaW4gZGVyIEdydXBwZSBncnAgc2luZAorCXN0cmluZyBNYXRlcmlhbE5hbWUoc3RyaW5nIG1hdCwgaW50IGNhc3VzLCBtaXhlZCBpZGluZik6CisJLSBlcmdpYnQgZGllIHNwaWVsZXJsZXNiYXJlIEFuZ2FiZSBlaW5lcyBNYXRlcmlhbHMgbWF0CisJc3RyaW5nIEdyb3VwTmFtZShzdHJpbmcgZ3JwKToKKwktIGVyZ2lidCBzcGllbGVybGVzYmFyZSBBbmdhYmUgZGVyIEdydXBwZSBncnAKKwlzdHJpbmcgQ29udk1hdGVyaWFsTGlzdChtaXhlZCBtYXRzLCBpbnQgY2FzdXMsIG1peGVkIGlkaW5mKToKKyAgCS0gd2lyZCB2b24gTWF0ZXJpYWxMaXN0KCkgbWl0IGRlbiBNYXRlcmlhbGllbiBkZXMgT2JqZWt0ZXMgZ2VydWZlbgorCXZvaWQgRHVtcCgpOgorICAJLSBzY2hyZWlidCBNYXRlcmlhbGllbiB1bmQgR3J1cHBlbiBpbiAvcC9kYWVtb24vc2F2ZS9NQVRFUklBTFMKKwlzdHJpbmcgKkFsbE1hdGVyaWFscygpOgorCS0gTGlzdGUgYWxsZXIgYWt0dWVsbGVuIE1hdGVyaWFsaWVuCisJc3RyaW5nICpBbGxHcm91cHMoKToKKwktIExpc3RlIGFsbGVyIGFrdHVlbGxlbiBHcnVwcGVuCisKKyAgICAgIEZhbGxzIGV1Y2ggZWluIE1hdGVyaWFsIGZlaGx0OgorCS0gZmFsbHMgZXMga2VpbiBnZW5hdSBwYXNzZW5kZXMgTWF0ZXJpYWwgZ2lidCwgc29sbHRlIG1hbiBkYXMgYW0gCisJICBlaGVzdGVuIHBhc3NlbmRlIE1BVF9NSVNDLU1hdGVyaWFsIHZlcndlbmRlbi4KKwktIGZhbGxzIGVzIHNpY2ggbG9obmVuIHd1ZXJkZSwgZGFzIGJpc2hlciBub2NoIG5pY2h0IGRlZmluaWVydGUgCisJICBNYXRlcmlhbCBlaW56dWJhdWVuICh3ZW5uIGVzIGhhZXVmaWcgZ2VudWcgdmVyd2VuZGV0IHdpcmQpLCBiaXR0ZSAKKwkgIE1haWwgYW4gZWluZW4gRU0gKC0+IG1hbiBBZGRNYXRlcmlhbCgpICkKKwktIHZlcnNjaGllZGVuZSBFaWdlbnNjaGFmdGVuIGxhc3NlbiBzaWNoIGtvbWJpbmllcmVuLiBaLkIuIGJlc3RlaHQgCisJICBlaW4gKHVuYmVrYW5udGVzKSBleHBsb3NpdmVzIEdhcyB6dSAxMDAlIGF1cyBHYXMgdW5kIHp1IDEwMCUgYXVzIAorCSAgZXhwbG9zaXZlbSBNYXRlcmlhbC4gSW5zb2Zlcm4ga2FubiBtYW4gZXMgbWl0CisgICAgICAgICAgU2V0UHJvcChQX01BVEVSSUFMLCAoW01BVF9NSVNDX0dBUzoxMDAsIE1BVF9NSVNDX0VYUExPU0lWRToxMDBdKSkKKyAgICAgICAgICB6dXNhbW1lbnNldHplbi4KKworU0lFSEUgQVVDSDoKKyAgICAgS29uemVwdGU6CSAgbWF0ZXJpYWxlcmtlbm51bmcKKyAgICAgR3J1bmRsZWdlbmQ6IFBfTUFURVJJQUwsIC9zeXMvdGhpbmcvbWF0ZXJpYWwuaAorICAgICBNZXRob2RlbjogICAgUXVlcnlNYXRlcmlhbCgpLCBRdWVyeU1hdGVyaWFsR3JvdXAoKSwgTWF0ZXJpYWxMaXN0KCksCisgICAgIExpc3RlbjoJICBBbGxNYXRlcmlhbHMoKSwgQWxsR3JvdXBzKCksIER1bXAoKQorCQkgIG1hdGVyaWFsbGlzdGUsIG1hdGVyaWFsZ3J1cHBlbgorICAgICBNYXN0ZXI6CSAgQWRkTWF0ZXJpYWwoKSwgQ29udk1hdGVyaWFsTGlzdCgpLCBNYXRlcmlhbEdyb3VwKCksCisJCSAgR3JvdXBOYW1lKCksIE1hdGVyaWFsTmFtZSgpLAorCQkgIEdldEdyb3VwTWVtYmVycygpLCBHZXRNYXRNZW1iZXJzaGlwKCkKKyAgICAgU29uc3RpZ2VzOgkgIFBfTUFURVJJQUxfS05PV0xFREdFCisKKzcuIE1haSAyMDA0IEdsb2luc29uCg==