ZGlmZiAtLWdpdCBhL2RvY3VtZW50YXRpb24vY29uZmlndXJpbmcuc2dtbCBiL2RvY3VtZW50YXRpb24vY29uZmlndXJpbmcuc2dtbAppbmRleCBkZmMzZWQ3Li4zNzEzYTRkIDEwMDY0NAotLS0gYS9kb2N1bWVudGF0aW9uL2NvbmZpZ3VyaW5nLnNnbWwKKysrIGIvZG9jdW1lbnRhdGlvbi9jb25maWd1cmluZy5zZ21sCkBAIC0xNjksMTIgKzE2OSw4IEBACiAJc2NyaXB0IGNhbGxlZCA8Y29tbWFuZD53aW5lY2hlY2s8L2NvbW1hbmQ+LCB0byBiZSBmb3VuZAogCWluIFdpbmUncyB0b29scy8gZGlyZWN0b3J5LiBJdCB0cmllcyB0byBjaGVjayB5b3VyCiAJY29uZmlndXJhdGlvbidzIGNvcnJlY3RuZXNzIGJ5IGNoZWNraW5nIGZvciBzb21lIHBvcHVsYXIKLQlwcm9ibGVtcy4KLQotCVRoZSBsYXRlc3QgdmVyc2lvbiBjYW4gYWx3YXlzIGJlIGZvdW5kIGF0Ci0JPHVsaW5rIHVybD0iaHR0cDovL2hvbWUuYXJjb3IuZGUvYW5kaS5tb2hyL2Rvd25sb2FkL3dpbmVjaGVjayI+aHR0cDovL2hvbWUuYXJjb3IuZGUvYW5kaS5tb2hyL2Rvd25sb2FkL3dpbmVjaGVjazwvdWxpbms+LgotCi0gICAgICAgIFRvIHJ1biBpdCwgcnVuIGluIGEgPGdsb3NzdGVybT50ZXJtaW5hbDwvZ2xvc3N0ZXJtPiBpbiB0aGUgV2luZSBzb3VyY2UgdHJlZSBkaXJlY3Rvcnk6CisJcHJvYmxlbXMuICBUbyBydW4gaXQsIHJ1biBpbiBhIDxnbG9zc3Rlcm0+dGVybWluYWw8L2dsb3NzdGVybT4gCisJaW4gdGhlIFdpbmUgc291cmNlIHRyZWUgZGlyZWN0b3J5OgogICAgICAgPC9wYXJhPgogICA8c2NyZWVuPgogICA8cHJvbXB0PiQgPC8+PHVzZXJpbnB1dD5jZCB0b29sczwvPgpAQCAtMTgyLDkgKzE3OCw4IEBACiAgIDwvc2NyZWVuPgogICAgICAgPHBhcmE+CiAJVGhlIHdpbmVjaGVjayBvdXRwdXQgd2lsbCBiZSBhIHBlcmNlbnRhZ2Ugc2NvcmUgaW5kaWNhdGluZyBXaW5lCi0JY29uZmlndXJhdGlvbiBjb3JyZWN0bmVzcy4KLQlOb3RlIHRoYXQgd2luZWNoZWNrIGlzIG9ubHkgYWxwaGEsIHNvIGl0J3Mgbm90IHZlcnkgY29tcGxldGUgb3IKLQkxMDAlIGFjY3VyYXRlLgorCWNvbmZpZ3VyYXRpb24gY29ycmVjdG5lc3MuICBQbGVhc2Ugbm90ZSB0aGF0IHdpbmVjaGVjayBpcyBub3QgCisgICAgICAgIDEwMCUgYWNjdXJhdGUuCiAgICAgICA8L3BhcmE+CiAKICAgICAgIDxwYXJhPgpAQCAtMjgzMCwxOTYgKzI4MjUsMTIgQEAKIDwvcHJvZ3JhbWxpc3Rpbmc+CiA8L3NlY3QxPgogCi08c2VjdDEgaWQ9ImNvbmZpZy1rZXlib2FyZCI+Ci08dGl0bGU+S2V5Ym9hcmQ8L3RpdGxlPgotCi08cGFyYT4KLVdpbmUgbm93IG5lZWRzIHRvIGtub3cgYWJvdXQgeW91ciBrZXlib2FyZCBsYXlvdXQuIFRoaXMKLXJlcXVpcmVtZW50IGNvbWVzIGZyb20gYSBuZWVkIGZyb20gbWFueSBhcHBzIHRvIGhhdmUgdGhlCi1jb3JyZWN0IHNjYW5jb2RlcyBhdmFpbGFibGUsIHNpbmNlIHRoZXkgcmVhZCB0aGVzZSBkaXJlY3RseSwKLWluc3RlYWQgb2YganVzdCB0YWtpbmcgdGhlIGNoYXJhY3RlcnMgcmV0dXJuZWQgYnkgdGhlIFgKLXNlcnZlci4gVGhpcyBtZWFucyB0aGF0IFdpbmUgbm93IG5lZWRzIHRvIGhhdmUgYSBtYXBwaW5nIGZyb20KLVgga2V5cyB0byB0aGUgc2NhbmNvZGVzIHRoZXNlIHByb2dyYW1zIGV4cGVjdC4KLTwvcGFyYT4KLTxwYXJhPgotT24gc3RhcnR1cCwgV2luZSB3aWxsIHRyeSB0byByZWNvZ25pemUgdGhlIGFjdGl2ZSBYIGxheW91dCBieQotc2VlaW5nIGlmIGl0IG1hdGNoZXMgYW55IG9mIHRoZSBkZWZpbmVkIHRhYmxlcy4gSWYgaXQgZG9lcywKLWV2ZXJ5dGhpbmcgaXMgYWxyaWdodC4gSWYgbm90LCB5b3UgbmVlZCB0byBkZWZpbmUgaXQuCi08L3BhcmE+Ci08cGFyYT4KLVRvIGRvIHRoaXMsIG9wZW4gdGhlIGZpbGUKLTxmaWxlbmFtZT5kbGxzL3gxMWRydi9rZXlib2FyZC5jPC9maWxlbmFtZT4gYW5kIHRha2UgYSBsb29rCi1hdCB0aGUgZXhpc3RpbmcgdGFibGVzLiBNYWtlIGEgYmFja3VwIGNvcHkgb2YgaXQsIGVzcGVjaWFsbHkKLWlmIHlvdSBkb24ndCB1c2UgQ1ZTLgotPC9wYXJhPgotPHBhcmE+Ci1XaGF0IHlvdSByZWFsbHkgd291bGQgbmVlZCB0byBkbywgaXMgZmluZCBvdXQgd2hpY2ggc2NhbmNvZGUKLWVhY2gga2V5IG5lZWRzIHRvIGdlbmVyYXRlLiAgRmluZCBpdCBpbiB0aGUKLTxmdW5jdGlvbj5tYWluX2tleV9zY2FuPC9mdW5jdGlvbj4gdGFibGUsIHdoaWNoIGxvb2tzIGxpa2UKLXRoaXM6Ci08L3BhcmE+Ci08cHJvZ3JhbWxpc3Rpbmc+Ci1zdGF0aWMgY29uc3QgaW50IG1haW5fa2V5X3NjYW5bTUFJTl9MRU5dID0KLXsKLS8qIHRoaXMgaXMgbXkgKDEwMi1rZXkpIGtleWJvYXJkIGxheW91dCwgc29ycnkgaWYgaXQgZG9lc24ndCBxdWl0ZSBtYXRjaCB5b3VycyAqLwotMHgyOSwweDAyLDB4MDMsMHgwNCwweDA1LDB4MDYsMHgwNywweDA4LDB4MDksMHgwQSwweDBCLDB4MEMsMHgwRCwKLTB4MTAsMHgxMSwweDEyLDB4MTMsMHgxNCwweDE1LDB4MTYsMHgxNywweDE4LDB4MTksMHgxQSwweDFCLAotMHgxRSwweDFGLDB4MjAsMHgyMSwweDIyLDB4MjMsMHgyNCwweDI1LDB4MjYsMHgyNywweDI4LDB4MkIsCi0weDJDLDB4MkQsMHgyRSwweDJGLDB4MzAsMHgzMSwweDMyLDB4MzMsMHgzNCwweDM1LAotMHg1NiAvKiB0aGUgMTAybmQga2V5IChhY3R1YWxseSB0byB0aGUgcmlnaHQgb2YgbC1zaGlmdCkgKi8KLX07Ci08L3Byb2dyYW1saXN0aW5nPgotPHBhcmE+Ci1OZXh0LCBhc3NpZ24gZWFjaCBzY2FuY29kZSB0aGUgY2hhcmFjdGVycyBpbXByaW50ZWQgb24gdGhlCi1rZXljYXBzLiBUaGlzIHdhcyBkb25lIChzb3J0IG9mKSBmb3IgdGhlIFVTIDEwMS1rZXkga2V5Ym9hcmQsCi13aGljaCB5b3UgY2FuIGZpbmQgbmVhciB0aGUgdG9wIGluCi08ZmlsZW5hbWU+a2V5Ym9hcmQuYzwvZmlsZW5hbWU+LiBJdCBhbHNvIHNob3dzIHRoYXQgaWYgdGhlcmUKLWlzIG5vIDEwMm5kIGtleSwgeW91IGNhbiBza2lwIHRoYXQuCi08L3BhcmE+Ci08cGFyYT4KLUhvd2V2ZXIsIGZvciBtb3N0IGludGVybmF0aW9uYWwgMTAyLWtleSBrZXlib2FyZHMsIHdlIGhhdmUKLWRvbmUgaXQgZWFzeSBmb3IgeW91LiBUaGUgc2NhbmNvZGUgbGF5b3V0IGZvciB0aGVzZSBhbHJlYWR5Ci1wcmV0dHkgbXVjaCBtYXRjaGVzIHRoZSBwaHlzaWNhbCBsYXlvdXQgaW4gdGhlCi08ZnVuY3Rpb24+bWFpbl9rZXlfc2NhbjwvZnVuY3Rpb24+LCBzbyBhbGwgeW91IG5lZWQgdG8gZG8gaXMKLXRvIGdvIHRocm91Z2ggYWxsIHRoZSBrZXlzIHRoYXQgZ2VuZXJhdGUgY2hhcmFjdGVycyBvbiB5b3VyCi1tYWluIGtleWJvYXJkIChleGNlcHQgc3BhY2ViYXIpLCBhbmQgc3R1ZmYgdGhvc2UgaW50byBhbgotYXBwcm9wcmlhdGUgdGFibGUuIFRoZSBvbmx5IGV4Y2VwdGlvbiBpcyB0aGF0IHRoZSAxMDJuZCBrZXksCi13aGljaCBpcyB1c3VhbGx5IHRvIHRoZSBsZWZ0IG9mIHRoZSBmaXJzdCBrZXkgb2YgdGhlIGxhc3QgbGluZQotKHVzdWFsbHkgPGtleWNhcD5aPC9rZXljYXA+KSwgbXVzdCBiZSBwbGFjZWQgb24gYSBzZXBhcmF0ZQotbGluZSBhZnRlciB0aGUgbGFzdCBsaW5lLgotPC9wYXJhPgotPHBhcmE+Ci1Gb3IgZXhhbXBsZSwgbXkgTm9yd2VnaWFuIGtleWJvYXJkIGxvb2tzIGxpa2UgdGhpcwotPC9wYXJhPgotPHNjcmVlbj4KLacgICEgICIgICMgIKQgICUgICYgIC8gICggICkgID0gID8gIGAgIEJhY2stCi18ICAxICAyQCAzoyA0JCA1ICA2ICA3eyA4WyA5XSAwfSArICBctCBzcGFjZQotCi1UYWIgUSAgVyAgRSAgUiAgVCAgWSAgVSAgSSAgTyAgUCAgxSAgXgotCQkJICAgICCofgotCQkJCUVudGVyCi1DYXBzIEEgIFMgIEQgIEYgIEcgIEggIEogIEsgIEwgINggIMYgICoKLUxvY2sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJwotCi1TaC0gPiBaICBYICBDICBWICBCICBOICBNICA7ICA6ICBfICBTaGlmdAotaWZ0ICZsdDsgICAgICAgICAgICAgICAgICAgICAgLCAgLiAgLQotCi1DdHJsICBBbHQgICAgICAgU3BhY2ViYXIgICAgICAgQWx0R3IgIEN0cmwKLTwvc2NyZWVuPgotPHBhcmE+Ci1Ob3RlIHRoZSAxMDJuZCBrZXksIHdoaWNoIGlzIHRoZSA8a2V5Y2FwPiZsdDs+PC9rZXljYXA+IGtleSwgdG8KLXRoZSBsZWZ0IG9mIDxrZXljYXA+Wjwva2V5Y2FwPi4gVGhlIGNoYXJhY3RlciB0byB0aGUgcmlnaHQgb2YKLXRoZSBtYWluIGNoYXJhY3RlciBpcyB0aGUgY2hhcmFjdGVyIGdlbmVyYXRlZCBieQotPGtleWNhcD5BbHRHcjwva2V5Y2FwPi4KLTwvcGFyYT4KLTxwYXJhPgotVGhpcyBrZXlib2FyZCBpcyBkZWZpbmVkIGFzIGZvbGxvd3M6Ci08L3BhcmE+Ci08cHJvZ3JhbWxpc3Rpbmc+Ci1zdGF0aWMgY29uc3QgY2hhciBtYWluX2tleV9OT1tNQUlOX0xFTl1bNF0gPQotewotInynIiwiMSEiLCIyXCJAIiwiMyOjIiwiNKQkIiwiNSUiLCI2JiIsIjcveyIsIjgoWyIsIjkpXSIsIjA9fSIsIis/IiwiXFy0IiwKLSJxUSIsIndXIiwiZUUiLCJyUiIsInRUIiwieVkiLCJ1VSIsImlJIiwib08iLCJwUCIsIuXFIiwiqF5+IiwKLSJhQSIsInNTIiwiZEQiLCJmRiIsImdHIiwiaEgiLCJqSiIsImtLIiwibEwiLCL42CIsIubGIiwiJyoiLAotInpaIiwieFgiLCJjQyIsInZWIiwiYkIiLCJuTiIsIm1NIiwiLDsiLCIuOiIsIi1fIiwKLSImbHQ7PiIKLX07Ci08L3Byb2dyYW1saXN0aW5nPgotPHBhcmE+Ci1FeGNlcHQgdGhhdCAiIGFuZCBcIG5lZWRzIHRvIGJlIHF1b3RlZCB3aXRoIGEgYmFja3NsYXNoLCBhbmQKLXRoYXQgdGhlIDEwMm5kIGtleSBpcyBvbiBhIHNlcGFyYXRlIGxpbmUsIGl0J3MgcHJldHR5Ci1zdHJhaWdodGZvcndhcmQuCi08L3BhcmE+Ci08cGFyYT4KLUFmdGVyIHlvdSBoYXZlIHdyaXR0ZW4gc3VjaCBhIHRhYmxlLCB5b3UgbmVlZCB0byBhZGQgaXQgdG8gdGhlCi08ZnVuY3Rpb24+bWFpbl9rZXlfdGFiW108L2Z1bmN0aW9uPiBsYXlvdXQgaW5kZXggdGFibGUuIFRoaXMKLXdpbGwgbG9vayBsaWtlIHRoaXM6Ci08L3BhcmE+Ci08cHJvZ3JhbWxpc3Rpbmc+Ci1zdGF0aWMgc3RydWN0IHsKLVdPUkQgbGFuZywgYW5zaV9jb2RlcGFnZSwgb2VtX2NvZGVwYWdlOwotY29uc3QgY2hhciAoKmtleSlbTUFJTl9MRU5dWzRdOwotfSBtYWluX2tleV90YWJbXT17Ci0uLi4KLS4uLgote01BS0VMQU5HSUQoTEFOR19OT1JXRUdJQU4sU1VCTEFOR19ERUZBVUxUKSwgIDEyNTIsIDg2NSwgJmFtcDttYWluX2tleV9OT30sCi0uLi4KLTwvcHJvZ3JhbWxpc3Rpbmc+Ci08cGFyYT4KLUFmdGVyIHlvdSBoYXZlIGFkZGVkIHlvdXIgdGFibGUsIHJlY29tcGlsZSBXaW5lIGFuZCB0ZXN0IHRoYXQKLWl0IHdvcmtzLiBJZiBpdCBmYWlscyB0byBkZXRlY3QgeW91ciB0YWJsZSwgdHJ5IHJ1bm5pbmcKLTwvcGFyYT4KLTxzY3JlZW4+Ci13aW5lIC0tZGVidWdtc2cgK2tleSwra2V5Ym9hcmQgPiYga2V5LmxvZwotICAgICAgPC9zY3JlZW4+Ci0gICAgICA8cGFyYT4KLSAgICAgICAgYW5kIGxvb2sgaW4gdGhlIHJlc3VsdGluZyA8ZmlsZW5hbWU+a2V5LmxvZzwvZmlsZW5hbWU+IGZpbGUgdG8KLSAgICAgICAgZmluZCB0aGUgZXJyb3IgbWVzc2FnZXMgaXQgZ2l2ZXMgZm9yIHlvdXIgbGF5b3V0LgotICAgICAgPC9wYXJhPgotICAgICAgPHBhcmE+Ci0gICAgICAgIE5vdGUgdGhhdCB0aGUgPGNvbnN0YW50PkxBTkdfKjwvY29uc3RhbnQ+IGFuZAotICAgICAgICA8Y29uc3RhbnQ+U1VCTEFOR18qPC9jb25zdGFudD4gZGVmaW5pdGlvbnMgYXJlIGluCi0gICAgICAgIDxmaWxlbmFtZT5pbmNsdWRlL3dpbm5scy5oPC9maWxlbmFtZT4sIHdoaWNoIHlvdSBtaWdodCBuZWVkIHRvCi0gICAgICAgIGtub3cgdG8gZmluZCBvdXQgd2hpY2ggbnVtYmVycyB5b3VyIGxhbmd1YWdlIGlzIGFzc2lnbmVkLCBhbmQKLSAgICAgICAgZmluZCBpdCBpbiB0aGUgZGVidWdtc2cgb3V0cHV0LiBUaGUgbnVtYmVycyB3aWxsIGJlCi0gICAgICAgIDxsaXRlcmFsPihTVUJMQU5HICogMHg0MDAgKyBMQU5HKTwvbGl0ZXJhbD4sIHNvLCBmb3IgZXhhbXBsZQotICAgICAgICB0aGUgY29tYmluYXRpb24gPGxpdGVyYWw+TEFOR19OT1JXRUdJQU4gKDB4MTQpPC9saXRlcmFsPiBhbmQKLSAgICAgICAgPGxpdGVyYWw+U1VCTEFOR19ERUZBVUxUICgweDEpPC9saXRlcmFsPiB3aWxsIGJlIChpbiBoZXgpCi0gICAgICAgIDxsaXRlcmFsPjE0ICsgMSo0MDAgPSA0MTQ8L2xpdGVyYWw+LCBzbyBzaW5jZSBJJ20gTm9yd2VnaWFuLCBJCi0gICAgICAgIGNvdWxkIGxvb2sgZm9yIDxsaXRlcmFsPjA0MTQ8L2xpdGVyYWw+IGluIHRoZSBkZWJ1Z21zZyBvdXRwdXQKLSAgICAgICAgdG8gZmluZCBvdXQgd2h5IG15IGtleWJvYXJkIHdvbid0IGRldGVjdC4KLSAgICAgIDwvcGFyYT4KLSAgICAgIDxwYXJhPgotICAgICAgICBPbmNlIGl0IHdvcmtzLCBzdWJtaXQgaXQgdG8gdGhlIFdpbmUgcHJvamVjdC4gSWYgeW91IHVzZSBDVlMsCi0gICAgICAgIHlvdSB3aWxsIGp1c3QgaGF2ZSB0byBkbwotICAgICAgPC9wYXJhPgotICAgICAgPHNjcmVlbj4KLWN2cyAtejMgZGlmZiAtdSBkbGxzL3gxMWRydi9rZXlib2FyZC5jID4gbGF5b3V0LmRpZmYKLSAgICAgIDwvc2NyZWVuPgotICAgICAgPHBhcmE+Ci0gICAgICAgIGZyb20geW91ciBtYWluIFdpbmUgZGlyZWN0b3J5LCB0aGVuIHN1Ym1pdAotICAgICAgICA8ZmlsZW5hbWU+bGF5b3V0LmRpZmY8L2ZpbGVuYW1lPiB0bwotICAgICAgICA8ZW1haWw+d2luZS1wYXRjaGVzQHdpbmVocS5vcmc8L2VtYWlsPiBhbG9uZyB3aXRoIGEgYnJpZWYgbm90ZQotICAgICAgICBvZiB3aGF0IGl0IGlzLgotICAgICAgPC9wYXJhPgotICAgICAgPHBhcmE+Ci0gICAgICAgIElmIHlvdSBkb24ndCB1c2UgQ1ZTLCB5b3UgbmVlZCB0byBkbwotICAgICAgPC9wYXJhPgotICAgICAgPHNjcmVlbj4KLWRpZmYgLXUgdGhlX2JhY2t1cF9maWxlX3lvdV9tYWRlIGRsbHMveDExZHJ2L2tleWJvYXJkLmMgPiBsYXlvdXQuZGlmZgotICAgICAgPC9zY3JlZW4+Ci0gICAgICA8cGFyYT4KLSAgICAgICAgYW5kIHN1Ym1pdCBpdCBhcyBleHBsYWluZWQgYWJvdmUuCi0gICAgICA8L3BhcmE+Ci0gICAgICA8cGFyYT4KLSAgICAgICAgSWYgeW91IGRpZCBpdCByaWdodCwgaXQgd2lsbCBiZSBpbmNsdWRlZCBpbiB0aGUgbmV4dCBXaW5lCi0gICAgICAgIHJlbGVhc2UsIGFuZCBhbGwgdGhlIHRyb3VibGVzb21lIHByb2dyYW1zIChlc3BlY2lhbGx5Ci0gICAgICAgIHJlbW90ZS1jb250cm9sIHByb2dyYW1zKSBhbmQgZ2FtZXMgdGhhdCB1c2Ugc2NhbmNvZGVzIHdpbGwKLSAgICAgICAgYmUgaGFwcGlseSB1c2luZyB5b3VyIGtleWJvYXJkIGxheW91dCwgYW5kIHlvdSB3b24ndCBnZXQgdGhvc2UKLSAgICAgICAgYW5ub3lpbmcgZml4bWUgbWVzc2FnZXMgZWl0aGVyLgotICAgICAgPC9wYXJhPgotICAgICAgPHBhcmE+Ci0gICAgICAgIEdvb2QgbHVjay4KLSAgICAgIDwvcGFyYT4KLSAgICA8L3NlY3QxPgotCiAgICAgPHNlY3QxIGlkPSJjb25maWctc2NzaS1zdXBwb3J0Ij4KICAgICAgIDx0aXRsZT5TQ1NJIFN1cHBvcnQ8L3RpdGxlPgogICAgICAgPHBhcmE+CiAgICAgICAgIFRoaXMgZmlsZSBkZXNjcmliZXMgc2V0dGluZyB1cCB0aGUgV2luZG93cyBBU1BJIGludGVyZmFjZS4KLSAgICAgIDwvcGFyYT4KLQotICAgICAgPHBhcmE+Ci0gICAgICAgIDx3YXJuaW5nPjx0aXRsZT5XYXJuaW5nL1dhcm5pbmcvV2FybmluZyEhISEhITwvdGl0bGU+Ci0gICAgICAgICAgPHBhcmE+VGhpcyBtYXkgdHJhc2ggeW91ciBzeXN0ZW0gaWYgdXNlZCBpbmNvcnJlY3RseS4gIEl0IG1heQotCQkgIGV2ZW4gdHJhc2ggeW91ciBzeXN0ZW0gd2hlbiB1c2VkIDxlbXBoYXNpcz5jb3JyZWN0bHk8Lz4hCi0gICAgICAgICAgPC9wYXJhPgotICAgICAgICA8L3dhcm5pbmc+Ci0gICAgICA8L3BhcmE+Ci0KLSAgICAgIDxwYXJhPgotICAgICAgICBOb3cgdGhhdCBJIGhhdmUgc2FpZCB0aGF0LiBBU1BJIGlzIGEgZGlyZWN0IGxpbmsgdG8gU0NTSSBkZXZpY2VzIGZyb20KLSAgICAgICAgd2luZG93cyBwcm9ncmFtcy4gQVNQSSBqdXN0IGZvcndhcmRzIHRoZSBTQ1NJIGNvbW1hbmRzIHRoYXQgcHJvZ3JhbXMgc2VuZAorICAgICAgICBBU1BJIGlzIGEgZGlyZWN0IGxpbmsgdG8gU0NTSSBkZXZpY2VzIGZyb20gd2luZG93cyBwcm9ncmFtcy4gCisJQVNQSSBqdXN0IGZvcndhcmRzIHRoZSBTQ1NJIGNvbW1hbmRzIHRoYXQgcHJvZ3JhbXMgc2VuZAogICAgICAgICB0byBpdCB0byB0aGUgU0NTSSBidXMuCiAgICAgICA8L3BhcmE+CiAgICAgICA8cGFyYT4KQEAgLTMwMzMsMjIgKzI4NDQsMTcgQEAKICAgICAgICAgaGF2ZSB0aGVpciBwZXJtaXNzaW9ucyBzZXQgYXMgcmVzdHJpY3RlZCBhcyBwb3NzaWJsZSEKICAgICAgIDwvcGFyYT4KIAotICAgICAgPHBhcmE+Ci0gICAgICAgIENvb2tib29rIGZvciBzZXR0aW5nIHVwIHNjYW5uZXI6IChBdCBsZWFzdCBob3cgbWluZSBpcyB0byB3b3JrKQotCSh3ZWxsLCBmb3Igb3RoZXIgZGV2aWNlcyBzdWNoIGFzIENEIGJ1cm5lcnMsIE1PIGRyaXZlcywgLi4uLCB0b28pCi0gICAgICA8L3BhcmE+Ci0KICAgICAgIDxzZWN0Mj4KICAgICAgICAgPHRpdGxlPldpbmRvd3MgcmVxdWlyZW1lbnRzPC90aXRsZT4KICAgICAgICAgPG9yZGVyZWRsaXN0PgogICAgICAgICAgIDxsaXN0aXRlbT4KICAgICAgICAgICAgIDxwYXJhPgotICAgICAgICAgICAgICBUaGUgc2Nhbm5lciBzb2Z0d2FyZSBuZWVkcyB0byB1c2UgdGhlICJBZGFwdGVjIgorICAgICAgICAgICAgICBUaGUgc29mdHdhcmUgbmVlZHMgdG8gdXNlIHRoZSAiQWRhcHRlYyIKICAgICAgICAgICAgICAgY29tcGF0aWJsZSBkcml2ZXJzIChBU1BJKS4gQXQgbGVhc3Qgd2l0aCBNdXN0ZWssIHRoZXkKICAgICAgICAgICAgICAgYWxsb3cgeW91IHRoZSBjaG9pY2Ugb2YgdXNpbmcgdGhlIGJ1aWx0LWluIGNhcmQgb3IgdGhlCiAgICAgICAgICAgICAgICJBZGFwdGVjIChBSEEpIiBjb21wYXRpYmxlIGRyaXZlcnMuIFRoaXMgd2lsbCBub3Qgd29yawogICAgICAgICAgICAgICBhbnkgb3RoZXIgd2F5LiBTb2Z0d2FyZSB0aGF0IGFjY2Vzc2VzIHRoZSBzY2FubmVyIHZpYSBhCi0gICAgICAgICAgICAgIERPUyBBU1BJIGRyaXZlciAoZS5nLiBBU1BJMkRPUykgaXMgc3VwcG9ydGVkLCB0b28uIFtBTV0KKyAgICAgICAgICAgICAgRE9TIEFTUEkgZHJpdmVyIChlLmcuIEFTUEkyRE9TKSBpcyBzdXBwb3J0ZWQsIHRvby4KICAgICAgICAgICAgIDwvcGFyYT4KICAgICAgICAgICA8L2xpc3RpdGVtPgogICAgICAgICAgIDxsaXN0aXRlbT4KQEAgLTMxMzYsMjggKzI5NDIsOSBAQAogICAgICAgPC9zZWN0Mj4KIAogICAgICAgPHNlY3QyPgotICAgICAgICA8dGl0bGU+R2VuZXJhbCBJbmZvcm1hdGlvbjwvdGl0bGU+Ci0gICAgICAgIDxwYXJhPgotICAgICAgICAgIFRoZSBtdXN0ZWsgc2Nhbm5lciBJIGhhdmUgd2FzIHNoaXBwZWQgd2l0aCBhIHBhY2thZ2UKLSAgICAgICAgICAiaXBwbHVzIi4gVGhpcyBwcm9ncmFtIHVzZXMgdGhlIFRXQUlOIGRyaXZlciBzcGVjaWZpY2F0aW9uCi0gICAgICAgICAgdG8gYWNjZXNzIHNjYW5uZXJzLgotICAgICAgICA8L3BhcmE+Ci0gICAgICAgIDxwYXJhPgotICAgICAgICAgIChUV0FJTiBNQU5BR0VSKQotICAgICAgICA8L3BhcmE+Ci0gICAgICAgIDxwYXJhPgotICAgICAgICAgIDxwcm9ncmFtbGlzdGluZz4KLWlwcGx1cy5leGUgJmx0Oy0mZ3Q7IChUV0FJTiBJTlRFUkZBQ0UpICZsdDstJmd0OyAoVFdBSU4gREFUQSBTT1VSQ0UuQVNQSSkgLSZndDsgV0lOQVNQSQotICAgICAgICAgIDwvcHJvZ3JhbWxpc3Rpbmc+Ci0gICAgICAgIDwvcGFyYT4KLSAgICAgIDwvc2VjdDI+Ci0KLSAgICAgIDxzZWN0Mj4KLSAgICAgICAgPHRpdGxlPk5PVEVTL0JVR1M8L3RpdGxlPgorICAgICAgICA8dGl0bGU+Tm90ZXM8L3RpdGxlPgogICAgICAgICA8cGFyYT4KICAgICAgICAgICBUaGUgYmlnZ2VzdCBkcmF3YmFjayBpcyB0aGF0IGl0IG9ubHkgd29ya3MgdW5kZXIgTGludXggYXQgdGhlIG1vbWVudC4KLSAgICAgICAgPC9wYXJhPgotICAgICAgICA8cGFyYT4KICAgICAgICAgICBUaGUgQVNQSSBjb2RlIGhhcyBvbmx5IGJlZW4gdGVzdGVkIHdpdGg6CiAgICAgICAgIDwvcGFyYT4KICAgICAgICAgPGl0ZW1pemVkbGlzdD4KQEAgLTMxODEsMTkgKzI5NjgsMTMgQEAKICAgICAgICAgICAgIDwvcGFyYT4KICAgICAgICAgICA8L2xpc3RpdGVtPgogICAgICAgICA8L2l0ZW1pemVkbGlzdD4KLSAgICAgICAgPHBhcmE+Ci0gICAgICAgICAgSSBtYWtlIG5vIHdhcnJhbnR5IHRvIHRoZSBBU1BJIGNvZGUuIEl0IG1ha2VzIG15IHNjYW5uZXIKLSAgICAgICAgICB3b3JrLiBZb3VyIGRldmljZXMgbWF5IGV4cGxvZGUuIEkgaGF2ZSBubyB3YXkgb2YgZGV0ZXJtaW5pbmcKLSAgICAgICAgICB0aGlzLiBJIHRha2UgemVybyByZXNwb25zaWJpbGl0eSEKLSAgICAgICAgPC9wYXJhPgogICAgICAgPC9zZWN0Mj4KICAgICA8L3NlY3QxPgogCiAgICAgPHNlY3QxIGlkPSJjb25maWctb2RiYyI+CiAgICAgICA8dGl0bGU+VXNpbmcgT0RCQzwvdGl0bGU+CiAgICAgICA8cGFyYT4KLSAgICAgICAgVGhpcyBzZWN0aW9uIGRlc2NyaWJlcyBob3cgT0RCQyB3b3JrcyB3aXRoaW4gV2luZSBhbmQgaG93IHRvIGNvbmZpZ3VyZQotICAgICAgICBpdCB0byBkbyB3aGF0IHlvdSB3YW50IChpZiBpdCBjYW4gZG8gd2hhdCB5b3Ugd2FudCkuCisgICAgICAgIFRoaXMgc2VjdGlvbiBkZXNjcmliZXMgaG93IE9EQkMgd29ya3Mgd2l0aGluIFdpbmUgYW5kIGhvdyB0byBjb25maWd1cmUgaXQuCiAgICAgICA8L3BhcmE+CiAgICAgICA8cGFyYT4KICAgICAgICAgVGhlIE9EQkMgc3lzdGVtIHdpdGhpbiBXaW5lLCBhcyB3aXRoIHRoZSBwcmludGluZyBzeXN0ZW0sIGlzIGRlc2lnbmVkCmRpZmYgLS1naXQgYS9kb2N1bWVudGF0aW9uL2ZvbnRzLnNnbWwgYi9kb2N1bWVudGF0aW9uL2ZvbnRzLnNnbWwKaW5kZXggYTFlMjAwMC4uYWMzYjFjNSAxMDA2NDQKLS0tIGEvZG9jdW1lbnRhdGlvbi9mb250cy5zZ21sCisrKyBiL2RvY3VtZW50YXRpb24vZm9udHMuc2dtbApAQCAtNDg5LDkgKzQ4OSw2IEBACiAgICAgICAgIDwvbGlzdGl0ZW0+CiAgICAgICA8L29yZGVyZWRsaXN0PgogCi0gICAgICA8cGFyYT4KLSAgICAgICAgSG9wZSB0aGlzIGhlbHBzLi4uCi0gICAgPC9wYXJhPgogICA8L3NlY3QyPgogCiA8L3NlY3QxPgpkaWZmIC0tZ2l0IGEvZG9jdW1lbnRhdGlvbi9pbXBsZW1lbnRhdGlvbi5zZ21sIGIvZG9jdW1lbnRhdGlvbi9pbXBsZW1lbnRhdGlvbi5zZ21sCmluZGV4IDRhY2UwMTguLjJhMWQwZGEgMTAwNjQ0Ci0tLSBhL2RvY3VtZW50YXRpb24vaW1wbGVtZW50YXRpb24uc2dtbAorKysgYi9kb2N1bWVudGF0aW9uL2ltcGxlbWVudGF0aW9uLnNnbWwKQEAgLTIsNiArMiwxNzcgQEAKICAgICA8dGl0bGU+TG93LWxldmVsIEltcGxlbWVudGF0aW9uPC90aXRsZT4KICAgICA8cGFyYT5EZXRhaWxzIG9mIFdpbmUncyBMb3ctbGV2ZWwgSW1wbGVtZW50YXRpb24uLi48L3BhcmE+CiAKKzxzZWN0MSBpZD0iY29uZmlnLWtleWJvYXJkIj4KKzx0aXRsZT5LZXlib2FyZDwvdGl0bGU+CisKKzxwYXJhPgorV2luZSBub3cgbmVlZHMgdG8ga25vdyBhYm91dCB5b3VyIGtleWJvYXJkIGxheW91dC4gVGhpcworcmVxdWlyZW1lbnQgY29tZXMgZnJvbSBhIG5lZWQgZnJvbSBtYW55IGFwcHMgdG8gaGF2ZSB0aGUKK2NvcnJlY3Qgc2NhbmNvZGVzIGF2YWlsYWJsZSwgc2luY2UgdGhleSByZWFkIHRoZXNlIGRpcmVjdGx5LAoraW5zdGVhZCBvZiBqdXN0IHRha2luZyB0aGUgY2hhcmFjdGVycyByZXR1cm5lZCBieSB0aGUgWAorc2VydmVyLiBUaGlzIG1lYW5zIHRoYXQgV2luZSBub3cgbmVlZHMgdG8gaGF2ZSBhIG1hcHBpbmcgZnJvbQorWCBrZXlzIHRvIHRoZSBzY2FuY29kZXMgdGhlc2UgcHJvZ3JhbXMgZXhwZWN0LgorPC9wYXJhPgorPHBhcmE+CitPbiBzdGFydHVwLCBXaW5lIHdpbGwgdHJ5IHRvIHJlY29nbml6ZSB0aGUgYWN0aXZlIFggbGF5b3V0IGJ5CitzZWVpbmcgaWYgaXQgbWF0Y2hlcyBhbnkgb2YgdGhlIGRlZmluZWQgdGFibGVzLiBJZiBpdCBkb2VzLAorZXZlcnl0aGluZyBpcyBhbHJpZ2h0LiBJZiBub3QsIHlvdSBuZWVkIHRvIGRlZmluZSBpdC4KKzwvcGFyYT4KKzxwYXJhPgorVG8gZG8gdGhpcywgb3BlbiB0aGUgZmlsZQorPGZpbGVuYW1lPmRsbHMveDExZHJ2L2tleWJvYXJkLmM8L2ZpbGVuYW1lPiBhbmQgdGFrZSBhIGxvb2sKK2F0IHRoZSBleGlzdGluZyB0YWJsZXMuIE1ha2UgYSBiYWNrdXAgY29weSBvZiBpdCwgZXNwZWNpYWxseQoraWYgeW91IGRvbid0IHVzZSBDVlMuCis8L3BhcmE+Cis8cGFyYT4KK1doYXQgeW91IHJlYWxseSB3b3VsZCBuZWVkIHRvIGRvLCBpcyBmaW5kIG91dCB3aGljaCBzY2FuY29kZQorZWFjaCBrZXkgbmVlZHMgdG8gZ2VuZXJhdGUuICBGaW5kIGl0IGluIHRoZQorPGZ1bmN0aW9uPm1haW5fa2V5X3NjYW48L2Z1bmN0aW9uPiB0YWJsZSwgd2hpY2ggbG9va3MgbGlrZQordGhpczoKKzwvcGFyYT4KKzxwcm9ncmFtbGlzdGluZz4KK3N0YXRpYyBjb25zdCBpbnQgbWFpbl9rZXlfc2NhbltNQUlOX0xFTl0gPQoreworLyogdGhpcyBpcyBteSAoMTAyLWtleSkga2V5Ym9hcmQgbGF5b3V0LCBzb3JyeSBpZiBpdCBkb2Vzbid0IHF1aXRlIG1hdGNoIHlvdXJzICovCisweDI5LDB4MDIsMHgwMywweDA0LDB4MDUsMHgwNiwweDA3LDB4MDgsMHgwOSwweDBBLDB4MEIsMHgwQywweDBELAorMHgxMCwweDExLDB4MTIsMHgxMywweDE0LDB4MTUsMHgxNiwweDE3LDB4MTgsMHgxOSwweDFBLDB4MUIsCisweDFFLDB4MUYsMHgyMCwweDIxLDB4MjIsMHgyMywweDI0LDB4MjUsMHgyNiwweDI3LDB4MjgsMHgyQiwKKzB4MkMsMHgyRCwweDJFLDB4MkYsMHgzMCwweDMxLDB4MzIsMHgzMywweDM0LDB4MzUsCisweDU2IC8qIHRoZSAxMDJuZCBrZXkgKGFjdHVhbGx5IHRvIHRoZSByaWdodCBvZiBsLXNoaWZ0KSAqLworfTsKKzwvcHJvZ3JhbWxpc3Rpbmc+Cis8cGFyYT4KK05leHQsIGFzc2lnbiBlYWNoIHNjYW5jb2RlIHRoZSBjaGFyYWN0ZXJzIGltcHJpbnRlZCBvbiB0aGUKK2tleWNhcHMuIFRoaXMgd2FzIGRvbmUgKHNvcnQgb2YpIGZvciB0aGUgVVMgMTAxLWtleSBrZXlib2FyZCwKK3doaWNoIHlvdSBjYW4gZmluZCBuZWFyIHRoZSB0b3AgaW4KKzxmaWxlbmFtZT5rZXlib2FyZC5jPC9maWxlbmFtZT4uIEl0IGFsc28gc2hvd3MgdGhhdCBpZiB0aGVyZQoraXMgbm8gMTAybmQga2V5LCB5b3UgY2FuIHNraXAgdGhhdC4KKzwvcGFyYT4KKzxwYXJhPgorSG93ZXZlciwgZm9yIG1vc3QgaW50ZXJuYXRpb25hbCAxMDIta2V5IGtleWJvYXJkcywgd2UgaGF2ZQorZG9uZSBpdCBlYXN5IGZvciB5b3UuIFRoZSBzY2FuY29kZSBsYXlvdXQgZm9yIHRoZXNlIGFscmVhZHkKK3ByZXR0eSBtdWNoIG1hdGNoZXMgdGhlIHBoeXNpY2FsIGxheW91dCBpbiB0aGUKKzxmdW5jdGlvbj5tYWluX2tleV9zY2FuPC9mdW5jdGlvbj4sIHNvIGFsbCB5b3UgbmVlZCB0byBkbyBpcwordG8gZ28gdGhyb3VnaCBhbGwgdGhlIGtleXMgdGhhdCBnZW5lcmF0ZSBjaGFyYWN0ZXJzIG9uIHlvdXIKK21haW4ga2V5Ym9hcmQgKGV4Y2VwdCBzcGFjZWJhciksIGFuZCBzdHVmZiB0aG9zZSBpbnRvIGFuCithcHByb3ByaWF0ZSB0YWJsZS4gVGhlIG9ubHkgZXhjZXB0aW9uIGlzIHRoYXQgdGhlIDEwMm5kIGtleSwKK3doaWNoIGlzIHVzdWFsbHkgdG8gdGhlIGxlZnQgb2YgdGhlIGZpcnN0IGtleSBvZiB0aGUgbGFzdCBsaW5lCisodXN1YWxseSA8a2V5Y2FwPlo8L2tleWNhcD4pLCBtdXN0IGJlIHBsYWNlZCBvbiBhIHNlcGFyYXRlCitsaW5lIGFmdGVyIHRoZSBsYXN0IGxpbmUuCis8L3BhcmE+Cis8cGFyYT4KK0ZvciBleGFtcGxlLCBteSBOb3J3ZWdpYW4ga2V5Ym9hcmQgbG9va3MgbGlrZSB0aGlzCis8L3BhcmE+Cis8c2NyZWVuPgorpyAgISAgIiAgIyAgpCAgJSAgJiAgLyAgKCAgKSAgPSAgPyAgYCAgQmFjay0KK3wgIDEgIDJAIDOjIDQkIDUgIDYgIDd7IDhbIDldIDB9ICsgIFy0IHNwYWNlCisKK1RhYiBRICBXICBFICBSICBUICBZICBVICBJICBPICBQICDFICBeCisJCQkgICAgIKh+CisJCQkJRW50ZXIKK0NhcHMgQSAgUyAgRCAgRiAgRyAgSCAgSiAgSyAgTCAg2CAgxiAgKgorTG9jayAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnCisKK1NoLSA+IFogIFggIEMgIFYgIEIgIE4gIE0gIDsgIDogIF8gIFNoaWZ0CitpZnQgJmx0OyAgICAgICAgICAgICAgICAgICAgICAsICAuICAtCisKK0N0cmwgIEFsdCAgICAgICBTcGFjZWJhciAgICAgICBBbHRHciAgQ3RybAorPC9zY3JlZW4+Cis8cGFyYT4KK05vdGUgdGhlIDEwMm5kIGtleSwgd2hpY2ggaXMgdGhlIDxrZXljYXA+Jmx0Oz48L2tleWNhcD4ga2V5LCB0bwordGhlIGxlZnQgb2YgPGtleWNhcD5aPC9rZXljYXA+LiBUaGUgY2hhcmFjdGVyIHRvIHRoZSByaWdodCBvZgordGhlIG1haW4gY2hhcmFjdGVyIGlzIHRoZSBjaGFyYWN0ZXIgZ2VuZXJhdGVkIGJ5Cis8a2V5Y2FwPkFsdEdyPC9rZXljYXA+LgorPC9wYXJhPgorPHBhcmE+CitUaGlzIGtleWJvYXJkIGlzIGRlZmluZWQgYXMgZm9sbG93czoKKzwvcGFyYT4KKzxwcm9ncmFtbGlzdGluZz4KK3N0YXRpYyBjb25zdCBjaGFyIG1haW5fa2V5X05PW01BSU5fTEVOXVs0XSA9Cit7CisifKciLCIxISIsIjJcIkAiLCIzI6MiLCI0pCQiLCI1JSIsIjYmIiwiNy97IiwiOChbIiwiOSldIiwiMD19IiwiKz8iLCJcXLQiLAorInFRIiwid1ciLCJlRSIsInJSIiwidFQiLCJ5WSIsInVVIiwiaUkiLCJvTyIsInBQIiwi5cUiLCKoXn4iLAorImFBIiwic1MiLCJkRCIsImZGIiwiZ0ciLCJoSCIsImpKIiwia0siLCJsTCIsIvjYIiwi5sYiLCInKiIsCisieloiLCJ4WCIsImNDIiwidlYiLCJiQiIsIm5OIiwibU0iLCIsOyIsIi46IiwiLV8iLAorIiZsdDs+IgorfTsKKzwvcHJvZ3JhbWxpc3Rpbmc+Cis8cGFyYT4KK0V4Y2VwdCB0aGF0ICIgYW5kIFwgbmVlZHMgdG8gYmUgcXVvdGVkIHdpdGggYSBiYWNrc2xhc2gsIGFuZAordGhhdCB0aGUgMTAybmQga2V5IGlzIG9uIGEgc2VwYXJhdGUgbGluZSwgaXQncyBwcmV0dHkKK3N0cmFpZ2h0Zm9yd2FyZC4KKzwvcGFyYT4KKzxwYXJhPgorQWZ0ZXIgeW91IGhhdmUgd3JpdHRlbiBzdWNoIGEgdGFibGUsIHlvdSBuZWVkIHRvIGFkZCBpdCB0byB0aGUKKzxmdW5jdGlvbj5tYWluX2tleV90YWJbXTwvZnVuY3Rpb24+IGxheW91dCBpbmRleCB0YWJsZS4gVGhpcword2lsbCBsb29rIGxpa2UgdGhpczoKKzwvcGFyYT4KKzxwcm9ncmFtbGlzdGluZz4KK3N0YXRpYyBzdHJ1Y3QgeworV09SRCBsYW5nLCBhbnNpX2NvZGVwYWdlLCBvZW1fY29kZXBhZ2U7Citjb25zdCBjaGFyICgqa2V5KVtNQUlOX0xFTl1bNF07Cit9IG1haW5fa2V5X3RhYltdPXsKKy4uLgorLi4uCit7TUFLRUxBTkdJRChMQU5HX05PUldFR0lBTixTVUJMQU5HX0RFRkFVTFQpLCAgMTI1MiwgODY1LCAmYW1wO21haW5fa2V5X05PfSwKKy4uLgorPC9wcm9ncmFtbGlzdGluZz4KKzxwYXJhPgorQWZ0ZXIgeW91IGhhdmUgYWRkZWQgeW91ciB0YWJsZSwgcmVjb21waWxlIFdpbmUgYW5kIHRlc3QgdGhhdAoraXQgd29ya3MuIElmIGl0IGZhaWxzIHRvIGRldGVjdCB5b3VyIHRhYmxlLCB0cnkgcnVubmluZworPC9wYXJhPgorPHNjcmVlbj4KK3dpbmUgLS1kZWJ1Z21zZyAra2V5LCtrZXlib2FyZCA+JiBrZXkubG9nCisgICAgICA8L3NjcmVlbj4KKyAgICAgIDxwYXJhPgorICAgICAgICBhbmQgbG9vayBpbiB0aGUgcmVzdWx0aW5nIDxmaWxlbmFtZT5rZXkubG9nPC9maWxlbmFtZT4gZmlsZSB0bworICAgICAgICBmaW5kIHRoZSBlcnJvciBtZXNzYWdlcyBpdCBnaXZlcyBmb3IgeW91ciBsYXlvdXQuCisgICAgICA8L3BhcmE+CisgICAgICA8cGFyYT4KKyAgICAgICAgTm90ZSB0aGF0IHRoZSA8Y29uc3RhbnQ+TEFOR18qPC9jb25zdGFudD4gYW5kCisgICAgICAgIDxjb25zdGFudD5TVUJMQU5HXyo8L2NvbnN0YW50PiBkZWZpbml0aW9ucyBhcmUgaW4KKyAgICAgICAgPGZpbGVuYW1lPmluY2x1ZGUvd2lubmxzLmg8L2ZpbGVuYW1lPiwgd2hpY2ggeW91IG1pZ2h0IG5lZWQgdG8KKyAgICAgICAga25vdyB0byBmaW5kIG91dCB3aGljaCBudW1iZXJzIHlvdXIgbGFuZ3VhZ2UgaXMgYXNzaWduZWQsIGFuZAorICAgICAgICBmaW5kIGl0IGluIHRoZSBkZWJ1Z21zZyBvdXRwdXQuIFRoZSBudW1iZXJzIHdpbGwgYmUKKyAgICAgICAgPGxpdGVyYWw+KFNVQkxBTkcgKiAweDQwMCArIExBTkcpPC9saXRlcmFsPiwgc28sIGZvciBleGFtcGxlCisgICAgICAgIHRoZSBjb21iaW5hdGlvbiA8bGl0ZXJhbD5MQU5HX05PUldFR0lBTiAoMHgxNCk8L2xpdGVyYWw+IGFuZAorICAgICAgICA8bGl0ZXJhbD5TVUJMQU5HX0RFRkFVTFQgKDB4MSk8L2xpdGVyYWw+IHdpbGwgYmUgKGluIGhleCkKKyAgICAgICAgPGxpdGVyYWw+MTQgKyAxKjQwMCA9IDQxNDwvbGl0ZXJhbD4sIHNvIHNpbmNlIEknbSBOb3J3ZWdpYW4sIEkKKyAgICAgICAgY291bGQgbG9vayBmb3IgPGxpdGVyYWw+MDQxNDwvbGl0ZXJhbD4gaW4gdGhlIGRlYnVnbXNnIG91dHB1dAorICAgICAgICB0byBmaW5kIG91dCB3aHkgbXkga2V5Ym9hcmQgd29uJ3QgZGV0ZWN0LgorICAgICAgPC9wYXJhPgorICAgICAgPHBhcmE+CisgICAgICAgIE9uY2UgaXQgd29ya3MsIHN1Ym1pdCBpdCB0byB0aGUgV2luZSBwcm9qZWN0LiBJZiB5b3UgdXNlIENWUywKKyAgICAgICAgeW91IHdpbGwganVzdCBoYXZlIHRvIGRvCisgICAgICA8L3BhcmE+CisgICAgICA8c2NyZWVuPgorY3ZzIC16MyBkaWZmIC11IGRsbHMveDExZHJ2L2tleWJvYXJkLmMgPiBsYXlvdXQuZGlmZgorICAgICAgPC9zY3JlZW4+CisgICAgICA8cGFyYT4KKyAgICAgICAgZnJvbSB5b3VyIG1haW4gV2luZSBkaXJlY3RvcnksIHRoZW4gc3VibWl0CisgICAgICAgIDxmaWxlbmFtZT5sYXlvdXQuZGlmZjwvZmlsZW5hbWU+IHRvCisgICAgICAgIDxlbWFpbD53aW5lLXBhdGNoZXNAd2luZWhxLm9yZzwvZW1haWw+IGFsb25nIHdpdGggYSBicmllZiBub3RlCisgICAgICAgIG9mIHdoYXQgaXQgaXMuCisgICAgICA8L3BhcmE+CisgICAgICA8cGFyYT4KKyAgICAgICAgSWYgeW91IGRvbid0IHVzZSBDVlMsIHlvdSBuZWVkIHRvIGRvCisgICAgICA8L3BhcmE+CisgICAgICA8c2NyZWVuPgorZGlmZiAtdSB0aGVfYmFja3VwX2ZpbGVfeW91X21hZGUgZGxscy94MTFkcnYva2V5Ym9hcmQuYyA+IGxheW91dC5kaWZmCisgICAgICA8L3NjcmVlbj4KKyAgICAgIDxwYXJhPgorICAgICAgICBhbmQgc3VibWl0IGl0IGFzIGV4cGxhaW5lZCBhYm92ZS4KKyAgICAgIDwvcGFyYT4KKyAgICAgIDxwYXJhPgorICAgICAgICBJZiB5b3UgZGlkIGl0IHJpZ2h0LCBpdCB3aWxsIGJlIGluY2x1ZGVkIGluIHRoZSBuZXh0IFdpbmUKKyAgICAgICAgcmVsZWFzZSwgYW5kIGFsbCB0aGUgdHJvdWJsZXNvbWUgcHJvZ3JhbXMgKGVzcGVjaWFsbHkKKyAgICAgICAgcmVtb3RlLWNvbnRyb2wgcHJvZ3JhbXMpIGFuZCBnYW1lcyB0aGF0IHVzZSBzY2FuY29kZXMgd2lsbAorICAgICAgICBiZSBoYXBwaWx5IHVzaW5nIHlvdXIga2V5Ym9hcmQgbGF5b3V0LCBhbmQgeW91IHdvbid0IGdldCB0aG9zZQorICAgICAgICBhbm5veWluZyBmaXhtZSBtZXNzYWdlcyBlaXRoZXIuCisgICAgICA8L3BhcmE+CisgICAgPC9zZWN0MT4KKworCiAgICAgPHNlY3QxIGlkPSJ1bmRvYy1mdW5jIj4KICAgICAgIDx0aXRsZT5VbmRvY3VtZW50ZWQgQVBJczwvdGl0bGU+CiAKZGlmZiAtLWdpdCBhL2RvY3VtZW50YXRpb24vcHJpbnRpbmcuc2dtbCBiL2RvY3VtZW50YXRpb24vcHJpbnRpbmcuc2dtbAppbmRleCA0NDFhNTdhLi42NWE5Y2Y2IDEwMDY0NAotLS0gYS9kb2N1bWVudGF0aW9uL3ByaW50aW5nLnNnbWwKKysrIGIvZG9jdW1lbnRhdGlvbi9wcmludGluZy5zZ21sCkBAIC0yMDgsNjEgKzIwOCw2IEBACiAJPC9zZWN0ND4KICAgICAgIDwvc2VjdDM+CiAKLSAgICAgIDxzZWN0Mz4KLSAgICAgICAgPHRpdGxlPlRPRE8gLyBCdWdzPC90aXRsZT4KLQotICAgICAgICA8aXRlbWl6ZWRsaXN0PgotICAgICAgICAgIDxsaXN0aXRlbT4KLSAgICAgICAgICAgIDxwYXJhPgotICAgICAgICAgICAgICBEcml2ZXIgZG9lcyByZWFkIFBQRCBmaWxlcywgYnV0IGlnbm9yZXMgYWxsIGNvbnN0cmFpbnRzCi0gICAgICAgICAgICAgIGFuZCBkb2Vzbid0IGxldCB5b3Ugc3BlY2lmeSB3aGV0aGVyIHlvdSBoYXZlIG9wdGlvbmFsCi0gICAgICAgICAgICAgIGV4dHJhcyBzdWNoIGFzIGVudmVsb3BlIGZlZWRlcnMuIFlvdSB3aWxsIHRoZXJlZm9yZSBmaW5kCi0gICAgICAgICAgICAgIGEgbGFyZ2VyIHRoYW4gbm9ybWFsIHNlbGVjdGlvbiBvZiBpbnB1dCBiaW5zIGluIHRoZQotICAgICAgICAgICAgICBwcmludCBzZXR1cCBkaWFsb2cgYm94LiBJJ3ZlIG9ubHkgcmVhbGx5IHRlc3RlZCBwcGQKLSAgICAgICAgICAgICAgcGFyc2luZyBvbiB0aGUgPGZpbGVuYW1lPmhwNG02X3YxLnBwZDwvZmlsZW5hbWU+IGZpbGUuCi0gICAgICAgICAgICA8L3BhcmE+Ci0gICAgICAgICAgPC9saXN0aXRlbT4KLSAgICAgICAgICA8bGlzdGl0ZW0+Ci0gICAgICAgICAgICA8cGFyYT4KLSAgICAgICAgICAgICAgTm8gVHJ1ZVR5cGUgZG93bmxvYWQuCi0gICAgICAgICAgICA8L3BhcmE+Ci0gICAgICAgICAgPC9saXN0aXRlbT4KLSAgICAgICAgICA8bGlzdGl0ZW0+Ci0gICAgICAgICAgICA8cGFyYT4KLSAgICAgICAgICAgICAgU3RyZXRjaERJQml0cyB1c2VzIGxldmVsIDIgUG9zdFNjcmlwdC4KLSAgICAgICAgICAgIDwvcGFyYT4KLSAgICAgICAgICA8L2xpc3RpdGVtPgotICAgICAgICAgIDxsaXN0aXRlbT4KLSAgICAgICAgICAgIDxwYXJhPgotICAgICAgICAgICAgICBBZHZhbmNlZFNldHVwIGRpYWxvZyBib3guCi0gICAgICAgICAgICA8L3BhcmE+Ci0gICAgICAgICAgPC9saXN0aXRlbT4KLSAgICAgICAgICA8bGlzdGl0ZW0+Ci0gICAgICAgICAgICA8cGFyYT4KLSAgICAgICAgICAgICAgTWFueSBwYXJ0aWFsbHkgaW1wbGVtZW50ZWQgZnVuY3Rpb25zLgotICAgICAgICAgICAgPC9wYXJhPgotICAgICAgICAgIDwvbGlzdGl0ZW0+Ci0gICAgICAgICAgPGxpc3RpdGVtPgotICAgICAgICAgICAgPHBhcmE+Ci0gICAgICAgICAgICAgIHBzLmMgaXMgYmVjb21pbmcgbWVzc3kuCi0gICAgICAgICAgICA8L3BhcmE+Ci0gICAgICAgICAgPC9saXN0aXRlbT4KLSAgICAgICAgICA8bGlzdGl0ZW0+Ci0gICAgICAgICAgICA8cGFyYT4KLSAgICAgICAgICAgICAgTm90ZXBhZCBvZnRlbiBzdGFydHMgdGV4dCB0b28gZmFyIHRvIHRoZSBsZWZ0IGRlcGVuZGluZwotICAgICAgICAgICAgICBvbiB0aGUgbWFyZ2luIHNldHRpbmdzLiBIb3dldmVyIHRoZSB3aW4zLjEKLSAgICAgICAgICAgICAgPGZpbGVuYW1lPnBzY3JpcHQuZHJ2PC9maWxlbmFtZT4gKHVuZGVyIHdpbmUpIGFsc28gZG9lcwotICAgICAgICAgICAgICB0aGlzLgotICAgICAgICAgICAgPC9wYXJhPgotICAgICAgICAgIDwvbGlzdGl0ZW0+Ci0gICAgICAgICAgPGxpc3RpdGVtPgotICAgICAgICAgICAgPHBhcmE+Ci0gICAgICAgICAgICAgIFByb2JhYmx5IG1hbnkgbW9yZS4uLgotICAgICAgICAgICAgPC9wYXJhPgotICAgICAgICAgIDwvbGlzdGl0ZW0+Ci0gICAgICAgIDwvaXRlbWl6ZWRsaXN0PgotCi0gICAgICA8L3NlY3QzPgogICAgIDwvc2VjdDI+CiAgIDwvc2VjdDE+CiAKZGlmZiAtLWdpdCBhL2RvY3VtZW50YXRpb24vcmVnaXN0cnkuc2dtbCBiL2RvY3VtZW50YXRpb24vcmVnaXN0cnkuc2dtbAppbmRleCAxYjc4Njg5Li44NzFiOTYxIDEwMDY0NAotLS0gYS9kb2N1bWVudGF0aW9uL3JlZ2lzdHJ5LnNnbWwKKysrIGIvZG9jdW1lbnRhdGlvbi9yZWdpc3RyeS5zZ21sCkBAIC0yLDEzICsyLDkgQEAKICAgICA8dGl0bGU+VGhlIFJlZ2lzdHJ5PC90aXRsZT4KIAogICAgIDxwYXJhPgotICAgICAgT3JpZ2luYWxseSB3cml0dGVuIGJ5IE92ZSBL5XZlbgotICAgIDwvcGFyYT4KLQotICAgIDxwYXJhPgogICAgICAgQWZ0ZXIgV2luMy54LCB0aGUgcmVnaXN0cnkgYmVjYW1lIGEgZnVuZGFtZW50YWwgcGFydCBvZiBXaW5kb3dzLgogICAgICAgSXQgaXMgdGhlIHBsYWNlIHdoZXJlIGJvdGggV2luZG93cyBpdHNlbGYsIGFuZCBhbGwKLSAgICAgIFdpbjk1Lzk4L05ULzIwMDAvd2hhdGV2ZXItY29tcGxpYW50IGFwcGxpY2F0aW9ucywgc3RvcmUKKyAgICAgIFdpbjk1Lzk4L05ULzIwMDAvWFAvZXRjLi1jb21wbGlhbnQgYXBwbGljYXRpb25zLCBzdG9yZQogICAgICAgY29uZmlndXJhdGlvbiBhbmQgc3RhdGUgZGF0YS4gV2hpbGUgbW9zdCBzYW5lIHN5c3RlbQogICAgICAgYWRtaW5pc3RyYXRvcnMgKGFuZCBXaW5lIGRldmVsb3BlcnMpIGN1cnNlIGJhZGx5IGF0IHRoZSB0d2lzdGVkCiAgICAgICBuYXR1cmUgb2YgdGhlIFdpbmRvd3MgcmVnaXN0cnksIGl0IGlzIHN0aWxsIG5lY2Vzc2FyeSBmb3IgV2luZQpkaWZmIC0tZ2l0IGEvZG9jdW1lbnRhdGlvbi9ydW5uaW5nLnNnbWwgYi9kb2N1bWVudGF0aW9uL3J1bm5pbmcuc2dtbAppbmRleCAyNzYyNmYzLi5kZmFiYWQyIDEwMDY0NAotLS0gYS9kb2N1bWVudGF0aW9uL3J1bm5pbmcuc2dtbAorKysgYi9kb2N1bWVudGF0aW9uL3J1bm5pbmcuc2dtbApAQCAtNywxNiArNyw2IEBACiAgICAgICBzdXBwb3J0IHByb2dyYW1zIGV0Yy4KICAgICA8L3BhcmE+CiAKLSAgICA8cGFyYT4KLSAgICAgIFRoaXMgY2hhcHRlciB3aWxsIGRlc2NyaWJlIGFsbCBhc3BlY3RzIG9mIHJ1bm5pbmcgV2luZSwgbGlrZSBlLmcuCi0gICAgICBiYXNpYyBXaW5lIGludm9jYXRpb24sIGNvbW1hbmQgbGluZSBwYXJhbWV0ZXJzIG9mIHZhcmlvdXMgV2luZQotICAgICAgc3VwcG9ydCBwcm9ncmFtcyBldGMuCi0gICAgPC9wYXJhPgotCi0gICAgPHBhcmE+Ci0KLSAgICA8L3BhcmE+Ci0KICAgICA8c2VjdDEgaWQ9ImJhc2ljLXVzYWdlIj4KICAgICAgIDx0aXRsZT5CYXNpYyB1c2FnZTogYXBwbGljYXRpb25zIGFuZCBjb250cm9sIHBhbmVsIGFwcGxldHM8L3RpdGxlPgogICAgICAgPHBhcmE+CkBAIC03NSwyMSArNjUsMTIgQEAKIAlyZW1lbWJlciB0byBpbmNsdWRlIHRoZSBkb3VibGUgcXVvdGVzLiAgU29tZSBwcm9ncmFtcyBkb24ndAogCWFsd2F5cyB1c2Ugb2J2aW91cyBuYW1pbmcgZm9yIHRoZWlyIGRpcmVjdG9yaWVzIGFuZCBFWEUgZmlsZXMsCiAJc28geW91IG1pZ2h0IGhhdmUgdG8gbG9vayBpbnNpZGUgdGhlIHByb2dyYW0gZmlsZXMgZGlyZWN0b3J5IHRvCi0Jc2VlIHdoYXQgaXQgcHV0IHdoZXJlLgorCXNlZSB3aGF0IHdhcyBwdXQgd2hlcmUuCiAgICAgICA8L3BhcmE+CiAgICAgPC9zZWN0MT4KIAogICAgIDxzZWN0MSBpZD0icnVubmluZy13aW5lIj4KICAgICAgIDx0aXRsZT5Ib3cgdG8gcnVuIFdpbmU8L3RpdGxlPgotICAgICAgPHBhcmE+Ci0gICAgICAgIFdpbmUgaXMgYSB2ZXJ5IGNvbXBsaWNhdGVkIHBpZWNlIG9mIHNvZnR3YXJlIHdpdGggbWFueSB3YXlzIHRvCi0gICAgICAgIGFkanVzdCBob3cgaXQgcnVucy4gIFdpdGggdmVyeSBmZXcgZXhjZXB0aW9ucywgeW91IGNhbgotICAgICAgICBhY3RpdmF0ZSB0aGUgc2FtZSBzZXQgb2YgZmVhdHVyZXMgdGhyb3VnaCB0aGUgPGxpbmsKLSAgICAgICAgbGlua2VuZD0iY29uZmlnLWZpbGUiPmNvbmZpZ3VyYXRpb24gZmlsZTwvbGluaz4gYXMgeW91IGNhbgotICAgICAgICB3aXRoIGNvbW1hbmQtbGluZSBwYXJhbWV0ZXJzLiAgSW4gdGhpcyBjaGFwdGVyLCB3ZSdsbCBicmllZmx5Ci0gICAgICAgIGRpc2N1c3MgdGhlc2UgcGFyYW1ldGVycywgYW5kIG1hdGNoIHRoZW0gdXAgd2l0aCB0aGVpcgotICAgICAgICBjb3JyZXNwb25kaW5nIGNvbmZpZ3VyYXRpb24gdmFyaWFibGVzLgotICAgICAgPC9wYXJhPgogCiAgICAgICA8cGFyYT4KICAgICAgICAgWW91IGNhbiBpbnZva2UgdGhlIDxjb21tYW5kPndpbmUgLS1oZWxwPC9jb21tYW5kPiBjb21tYW5kIHRvCg==