[3.14] gh-151942: Fix all Sphinx nitpicks in the Python 2.6 What's New (GH-154550) (#154953)
StanFromIreland <[email protected]> Fri, 31 Jul 2026 13:36:50 -0400 (EDT)
| Newsgroups | gmane.comp.python.cvs |
|---|---|
| Message-ID | <[email protected]> |
aHR0cHM6Ly9naXRodWIuY29tL3B5dGhvbi9jcHl0aG9uL2NvbW1pdC84MDJhMmM4YjdhOTFkNzAw YzhiZjM0MmEyN2NkMDk2YWM0NDRhZjQxDQpjb21taXQ6IDgwMmEyYzhiN2E5MWQ3MDBjOGJmMzQy YTI3Y2QwOTZhYzQ0NGFmNDENCmJyYW5jaDogMy4xNA0KYXV0aG9yOiBNaXNzIElzbGluZ3RvbiAo Ym90KSA8MzE0ODg5MDkrbWlzcy1pc2xpbmd0b25AdXNlcnMubm9yZXBseS5naXRodWIuY29tPg0K Y29tbWl0dGVyOiBTdGFuRnJvbUlyZWxhbmQgPHN0YW5AcHl0aG9uLm9yZz4NCmRhdGU6IDIwMjYt MDctMzFUMTc6MzU6MDNaDQpzdW1tYXJ5Og0KDQpbMy4xNF0gZ2gtMTUxOTQyOiBGaXggYWxsIFNw aGlueCBuaXRwaWNrcyBpbiB0aGUgUHl0aG9uIDIuNiBXaGF0J3MgTmV3IChHSC0xNTQ1NTApICgj MTU0OTUzKQ0KDQooY2hlcnJ5IHBpY2tlZCBmcm9tIGNvbW1pdCA0MzIwYmJlOTI0YTU0MjgyNmFm NTk4Y2NkOWNkYjZjNWJiMjk4YWJlKQ0KDQpDby1hdXRob3JlZC1ieTogU3RhbiBVbGJyeWNoIDxz dGFuQHB5dGhvbi5vcmc+DQoNCmZpbGVzOg0KTSBEb2MvdG9vbHMvLm5pdGlnbm9yZQ0KTSBEb2Mv d2hhdHNuZXcvMi42LnJzdA0KDQpkaWZmIC0tZ2l0IGEvRG9jL3Rvb2xzLy5uaXRpZ25vcmUgYi9E b2MvdG9vbHMvLm5pdGlnbm9yZQ0KaW5kZXggNDFhYjJkODk0YTQ1ZGJlLi5jMzVlZjBmYjIzMTE4 Y2QgMTAwNjQ0DQotLS0gYS9Eb2MvdG9vbHMvLm5pdGlnbm9yZQ0KKysrIGIvRG9jL3Rvb2xzLy5u aXRpZ25vcmUNCkBAIC0zMyw0ICszMywzIEBAIERvYy9saWJyYXJ5L3htbC5zYXgucmVhZGVyLnJz dA0KIERvYy9saWJyYXJ5L3htbC5zYXgucnN0DQogRG9jL2xpYnJhcnkveG1scnBjLmNsaWVudC5y c3QNCiBEb2MvbGlicmFyeS94bWxycGMuc2VydmVyLnJzdA0KLURvYy93aGF0c25ldy8yLjYucnN0 DQpkaWZmIC0tZ2l0IGEvRG9jL3doYXRzbmV3LzIuNi5yc3QgYi9Eb2Mvd2hhdHNuZXcvMi42LnJz dA0KaW5kZXggODY0YzNjM2QyOWZiMDQxLi5kYjViNDFiNDBmZWNhYmEgMTAwNjQ0DQotLS0gYS9E b2Mvd2hhdHNuZXcvMi42LnJzdA0KKysrIGIvRG9jL3doYXRzbmV3LzIuNi5yc3QNCkBAIC0xMDEs MTAgKzEwMSwxMCBAQCB0byBicmVhaywgdGhleSd2ZSBiZWVuIGJhY2twb3J0ZWQgdG8gMi42IGFu ZCBhcmUgZGVzY3JpYmVkIGluIHRoaXMNCiBkb2N1bWVudCBpbiB0aGUgYXBwcm9wcmlhdGUgcGxh Y2UuICBTb21lIG9mIHRoZSAzLjAtZGVyaXZlZCBmZWF0dXJlcw0KIGFyZToNCiANCi0qIEEgOm1l dGg6YF9fY29tcGxleF9fYCBtZXRob2QgZm9yIGNvbnZlcnRpbmcgb2JqZWN0cyB0byBhIGNvbXBs ZXggbnVtYmVyLg0KKyogQSA6bWV0aDpgfm9iamVjdC5fX2NvbXBsZXhfX2AgbWV0aG9kIGZvciBj b252ZXJ0aW5nIG9iamVjdHMgdG8gYSBjb21wbGV4IG51bWJlci4NCiAqIEFsdGVybmF0ZSBzeW50 YXggZm9yIGNhdGNoaW5nIGV4Y2VwdGlvbnM6IGBgZXhjZXB0IFR5cGVFcnJvciBhcyBleGNgYC4N CiAqIFRoZSBhZGRpdGlvbiBvZiA6ZnVuYzpgZnVuY3Rvb2xzLnJlZHVjZWAgYXMgYSBzeW5vbnlt IGZvciB0aGUgYnVpbHQtaW4NCi0gIDpmdW5jOmByZWR1Y2VgIGZ1bmN0aW9uLg0KKyAgOmZ1bmM6 YCFyZWR1Y2VgIGZ1bmN0aW9uLg0KIA0KIFB5dGhvbiAzLjAgYWRkcyBzZXZlcmFsIG5ldyBidWls dC1pbiBmdW5jdGlvbnMgYW5kIGNoYW5nZXMgdGhlDQogc2VtYW50aWNzIG9mIHNvbWUgZXhpc3Rp bmcgYnVpbHRpbnMuICBGdW5jdGlvbnMgdGhhdCBhcmUgbmV3IGluIDMuMA0KQEAgLTExNDUsNyAr MTE0NSw3IEBAIGNvbnN0cmFpbnRzIHVwb24gdGhlIG1lbW9yeSByZXR1cm5lZC4gIFNvbWUgZXhh bXBsZXMgYXJlOg0KIA0KICogOmM6bWFjcm86YFB5QlVGX1dSSVRBQkxFYCBpbmRpY2F0ZXMgdGhh dCB0aGUgbWVtb3J5IG11c3QgYmUgd3JpdGFibGUuDQogDQotKiA6YzptYWNybzpgUHlCVUZfTE9D S2AgcmVxdWVzdHMgYSByZWFkLW9ubHkgb3IgZXhjbHVzaXZlIGxvY2sgb24gdGhlIG1lbW9yeS4N CisqIDpjOm1hY3JvOmAhUHlCVUZfTE9DS2AgcmVxdWVzdHMgYSByZWFkLW9ubHkgb3IgZXhjbHVz aXZlIGxvY2sgb24gdGhlIG1lbW9yeS4NCiANCiAqIDpjOm1hY3JvOmBQeUJVRl9DX0NPTlRJR1VP VVNgIGFuZCA6YzptYWNybzpgUHlCVUZfRl9DT05USUdVT1VTYA0KICAgcmVxdWVzdHMgYSBDLWNv bnRpZ3VvdXMgKGxhc3QgZGltZW5zaW9uIHZhcmllcyB0aGUgZmFzdGVzdCkgb3INCkBAIC0xMzM5 LDcgKzEzMzksNyBAQCBidWlsdGluIHJldHVybnMgdGhlIGJpbmFyeSByZXByZXNlbnRhdGlvbiBm b3IgYSBudW1iZXI6Og0KICAgICA+Pj4gYmluKDE3MykNCiAgICAgJzBiMTAxMDExMDEnDQogDQot VGhlIDpmdW5jOmBpbnRgIGFuZCA6ZnVuYzpgbG9uZ2AgYnVpbHRpbnMgd2lsbCBub3cgYWNjZXB0 IHRoZSAiMG8iDQorVGhlIDpmdW5jOmBpbnRgIGFuZCA6ZnVuYzpgIWxvbmdgIGJ1aWx0aW5zIHdp bGwgbm93IGFjY2VwdCB0aGUgIjBvIg0KIGFuZCAiMGIiIHByZWZpeGVzIHdoZW4gYmFzZS04IG9y IGJhc2UtMiBhcmUgcmVxdWVzdGVkLCBvciB3aGVuIHRoZQ0KICpiYXNlKiBhcmd1bWVudCBpcyB6 ZXJvIChzaWduYWxsaW5nIHRoYXQgdGhlIGJhc2UgdXNlZCBzaG91bGQgYmUNCiBkZXRlcm1pbmVk IGZyb20gdGhlIHN0cmluZyk6Og0KQEAgLTEzOTIsMzUgKzEzOTIsMzYgQEAgVGhpcyBpcyBlcXVp dmFsZW50IHRvOjoNCiAuLiBfcGVwLTMxNDE6DQogDQogUEVQIDMxNDE6IEEgVHlwZSBIaWVyYXJj aHkgZm9yIE51bWJlcnMNCi09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PQ0KKz09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09DQog DQogUHl0aG9uIDMuMCBhZGRzIHNldmVyYWwgYWJzdHJhY3QgYmFzZSBjbGFzc2VzIGZvciBudW1l cmljIHR5cGVzDQogaW5zcGlyZWQgYnkgU2NoZW1lJ3MgbnVtZXJpYyB0b3dlci4gIFRoZXNlIGNs YXNzZXMgd2VyZSBiYWNrcG9ydGVkIHRvDQogMi42IGFzIHRoZSA6bW9kOmBudW1iZXJzYCBtb2R1 bGUuDQogDQotVGhlIG1vc3QgZ2VuZXJhbCBBQkMgaXMgOmNsYXNzOmBOdW1iZXJgLiAgSXQgZGVm aW5lcyBubyBvcGVyYXRpb25zIGF0DQorVGhlIG1vc3QgZ2VuZXJhbCBBQkMgaXMgOmNsYXNzOmB+ bnVtYmVycy5OdW1iZXJgLiAgSXQgZGVmaW5lcyBubyBvcGVyYXRpb25zIGF0DQogYWxsLCBhbmQg b25seSBleGlzdHMgdG8gYWxsb3cgY2hlY2tpbmcgaWYgYW4gb2JqZWN0IGlzIGEgbnVtYmVyIGJ5 DQogZG9pbmcgYGBpc2luc3RhbmNlKG9iaiwgTnVtYmVyKWBgLg0KIA0KLTpjbGFzczpgQ29tcGxl eGAgaXMgYSBzdWJjbGFzcyBvZiA6Y2xhc3M6YE51bWJlcmAuICBDb21wbGV4IG51bWJlcnMNCis6 Y2xhc3M6YH5udW1iZXJzLkNvbXBsZXhgIGlzIGEgc3ViY2xhc3Mgb2YgOmNsYXNzOmB+bnVtYmVy cy5OdW1iZXJgLiAgQ29tcGxleCBudW1iZXJzDQogY2FuIHVuZGVyZ28gdGhlIGJhc2ljIG9wZXJh dGlvbnMgb2YgYWRkaXRpb24sIHN1YnRyYWN0aW9uLA0KIG11bHRpcGxpY2F0aW9uLCBkaXZpc2lv biwgYW5kIGV4cG9uZW50aWF0aW9uLCBhbmQgeW91IGNhbiByZXRyaWV2ZSB0aGUNCiByZWFsIGFu ZCBpbWFnaW5hcnkgcGFydHMgYW5kIG9idGFpbiBhIG51bWJlcidzIGNvbmp1Z2F0ZS4gIFB5dGhv bidzIGJ1aWx0LWluDQotY29tcGxleCB0eXBlIGlzIGFuIGltcGxlbWVudGF0aW9uIG9mIDpjbGFz czpgQ29tcGxleGAuDQorY29tcGxleCB0eXBlIGlzIGFuIGltcGxlbWVudGF0aW9uIG9mIDpjbGFz czpgfm51bWJlcnMuQ29tcGxleGAuDQogDQotOmNsYXNzOmBSZWFsYCBmdXJ0aGVyIGRlcml2ZXMg ZnJvbSA6Y2xhc3M6YENvbXBsZXhgLCBhbmQgYWRkcw0KLW9wZXJhdGlvbnMgdGhhdCBvbmx5IHdv cmsgb24gcmVhbCBudW1iZXJzOiA6ZnVuYzpgZmxvb3JgLCA6ZnVuYzpgdHJ1bmNgLA0KKzpjbGFz czpgfm51bWJlcnMuUmVhbGAgZnVydGhlciBkZXJpdmVzIGZyb20gOmNsYXNzOmB+bnVtYmVycy5D b21wbGV4YCwgYW5kIGFkZHMNCitvcGVyYXRpb25zIHRoYXQgb25seSB3b3JrIG9uIHJlYWwgbnVt YmVyczogOmZ1bmM6YH5tYXRoLmZsb29yYCwgOmZ1bmM6YH5tYXRoLnRydW5jYCwNCiByb3VuZGlu ZywgdGFraW5nIHRoZSByZW1haW5kZXIgbW9kIE4sIGZsb29yIGRpdmlzaW9uLA0KIGFuZCBjb21w YXJpc29ucy4NCiANCi06Y2xhc3M6YFJhdGlvbmFsYCBudW1iZXJzIGRlcml2ZSBmcm9tIDpjbGFz czpgUmVhbGAsIGhhdmUNCi06YXR0cjpgbnVtZXJhdG9yYCBhbmQgOmF0dHI6YGRlbm9taW5hdG9y YCBwcm9wZXJ0aWVzLCBhbmQgY2FuIGJlDQorOmNsYXNzOmB+bnVtYmVycy5SYXRpb25hbGAgbnVt YmVycyBkZXJpdmUgZnJvbSA6Y2xhc3M6YH5udW1iZXJzLlJlYWxgLCBoYXZlDQorOmF0dHI6YH5u dW1iZXJzLlJhdGlvbmFsLm51bWVyYXRvcmAgYW5kIDphdHRyOmB+bnVtYmVycy5SYXRpb25hbC5k ZW5vbWluYXRvcmANCitwcm9wZXJ0aWVzLCBhbmQgY2FuIGJlDQogY29udmVydGVkIHRvIGZsb2F0 cy4gIFB5dGhvbiAyLjYgYWRkcyBhIHNpbXBsZSByYXRpb25hbC1udW1iZXIgY2xhc3MsDQotOmNs YXNzOmBGcmFjdGlvbmAsIGluIHRoZSA6bW9kOmBmcmFjdGlvbnNgIG1vZHVsZS4gIChJdCdzIGNh bGxlZA0KLTpjbGFzczpgRnJhY3Rpb25gIGluc3RlYWQgb2YgOmNsYXNzOmBSYXRpb25hbGAgdG8g YXZvaWQNCis6Y2xhc3M6YH5mcmFjdGlvbnMuRnJhY3Rpb25gLCBpbiB0aGUgOm1vZDpgZnJhY3Rp b25zYCBtb2R1bGUuICAoSXQncyBjYWxsZWQNCis6Y2xhc3M6YH5mcmFjdGlvbnMuRnJhY3Rpb25g IGluc3RlYWQgb2YgYGBSYXRpb25hbGBgIHRvIGF2b2lkDQogYSBuYW1lIGNsYXNoIHdpdGggOmNs YXNzOmBudW1iZXJzLlJhdGlvbmFsYC4pDQogDQotOmNsYXNzOmBJbnRlZ3JhbGAgbnVtYmVycyBk ZXJpdmUgZnJvbSA6Y2xhc3M6YFJhdGlvbmFsYCwgYW5kDQorOmNsYXNzOmB+bnVtYmVycy5JbnRl Z3JhbGAgbnVtYmVycyBkZXJpdmUgZnJvbSA6Y2xhc3M6YH5udW1iZXJzLlJhdGlvbmFsYCwgYW5k DQogY2FuIGJlIHNoaWZ0ZWQgbGVmdCBhbmQgcmlnaHQgd2l0aCBgYDw8YGAgYW5kIGBgPj5gYCwN CiBjb21iaW5lZCB1c2luZyBiaXR3aXNlIG9wZXJhdGlvbnMgc3VjaCBhcyBgYCZgYCBhbmQgYGB8 YGAsDQogYW5kIGNhbiBiZSB1c2VkIGFzIGFycmF5IGluZGV4ZXMgYW5kIHNsaWNlIGJvdW5kYXJp ZXMuDQpAQCAtMTQyOSw3ICsxNDMwLDcgQEAgSW4gUHl0aG9uIDMuMCwgdGhlIFBFUCBzbGlnaHRs eSByZWRlZmluZXMgdGhlIGV4aXN0aW5nIGJ1aWx0aW5zDQogOmZ1bmM6YHJvdW5kYCwgOmZ1bmM6 YG1hdGguZmxvb3JgLCA6ZnVuYzpgbWF0aC5jZWlsYCwgYW5kIGFkZHMgYSBuZXcNCiBvbmUsIDpm dW5jOmBtYXRoLnRydW5jYCwgdGhhdCdzIGJlZW4gYmFja3BvcnRlZCB0byBQeXRob24gMi42Lg0K IDpmdW5jOmBtYXRoLnRydW5jYCByb3VuZHMgdG93YXJkIHplcm8sIHJldHVybmluZyB0aGUgY2xv c2VzdA0KLTpjbGFzczpgSW50ZWdyYWxgIHRoYXQncyBiZXR3ZWVuIHRoZSBmdW5jdGlvbidzIGFy Z3VtZW50IGFuZCB6ZXJvLg0KKzpjbGFzczpgfm51bWJlcnMuSW50ZWdyYWxgIHRoYXQncyBiZXR3 ZWVuIHRoZSBmdW5jdGlvbidzIGFyZ3VtZW50IGFuZCB6ZXJvLg0KIA0KIC4uIHNlZWFsc286Og0K IA0KQEAgLTE0NDIsNyArMTQ0Myw3IEBAIG9uZSwgOmZ1bmM6YG1hdGgudHJ1bmNgLCB0aGF0J3Mg YmVlbiBiYWNrcG9ydGVkIHRvIFB5dGhvbiAyLjYuDQogDQogDQogVGhlIDptb2Q6YGZyYWN0aW9u c2AgTW9kdWxlDQotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0NCistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0NCiANCiBUbyBmaWxsIG91dCB0aGUg aGllcmFyY2h5IG9mIG51bWVyaWMgdHlwZXMsIHRoZSA6bW9kOmBmcmFjdGlvbnNgDQogbW9kdWxl IHByb3ZpZGVzIGEgcmF0aW9uYWwtbnVtYmVyIGNsYXNzLiAgUmF0aW9uYWwgbnVtYmVycyBzdG9y ZSB0aGVpcg0KQEAgLTE0NTAsNyArMTQ1MSw3IEBAIHZhbHVlcyBhcyBhIG51bWVyYXRvciBhbmQg ZGVub21pbmF0b3IgZm9ybWluZyBhIGZyYWN0aW9uLCBhbmQgY2FuDQogZXhhY3RseSByZXByZXNl bnQgbnVtYmVycyBzdWNoIGFzIGBgMi8zYGAgdGhhdCBmbG9hdGluZy1wb2ludCBudW1iZXJzDQog Y2FuIG9ubHkgYXBwcm94aW1hdGUuDQogDQotVGhlIDpjbGFzczpgRnJhY3Rpb25gIGNvbnN0cnVj dG9yIHRha2VzIHR3byA6Y2xhc3M6YEludGVncmFsYCB2YWx1ZXMNCitUaGUgOmNsYXNzOmB+ZnJh Y3Rpb25zLkZyYWN0aW9uYCBjb25zdHJ1Y3RvciB0YWtlcyB0d28gOmNsYXNzOmB+bnVtYmVycy5J bnRlZ3JhbGAgdmFsdWVzDQogdGhhdCB3aWxsIGJlIHRoZSBudW1lcmF0b3IgYW5kIGRlbm9taW5h dG9yIG9mIHRoZSByZXN1bHRpbmcgZnJhY3Rpb24uIDo6DQogDQogICAgID4+PiBmcm9tIGZyYWN0 aW9ucyBpbXBvcnQgRnJhY3Rpb24NCkBAIC0xNDY0LDcgKzE0NjUsNyBAQCB0aGF0IHdpbGwgYmUg dGhlIG51bWVyYXRvciBhbmQgZGVub21pbmF0b3Igb2YgdGhlIHJlc3VsdGluZyBmcmFjdGlvbi4g OjoNCiAgICAgRnJhY3Rpb24oNSwgMykNCiANCiBGb3IgY29udmVydGluZyBmbG9hdGluZy1wb2lu dCBudW1iZXJzIHRvIHJhdGlvbmFscywNCi10aGUgZmxvYXQgdHlwZSBub3cgaGFzIGFuIDptZXRo OmBhc19pbnRlZ2VyX3JhdGlvYCBtZXRob2QgdGhhdCByZXR1cm5zDQordGhlIGZsb2F0IHR5cGUg bm93IGhhcyBhbiA6bWV0aDpgfmZsb2F0LmFzX2ludGVnZXJfcmF0aW9gIG1ldGhvZCB0aGF0IHJl dHVybnMNCiB0aGUgbnVtZXJhdG9yIGFuZCBkZW5vbWluYXRvciBmb3IgYSBmcmFjdGlvbiB0aGF0 IGV2YWx1YXRlcyB0byB0aGUgc2FtZQ0KIGZsb2F0aW5nLXBvaW50IHZhbHVlOjoNCiANCkBAIC0x NDk5LDcgKzE1MDAsNyBAQCBTb21lIHNtYWxsZXIgY2hhbmdlcyBtYWRlIHRvIHRoZSBjb3JlIFB5 dGhvbiBsYW5ndWFnZSBhcmU6DQogICA6aXNzdWU6YDE3Mzk0NjhgLikNCiANCiAqIFRoZSA6ZnVu YzpgaGFzYXR0cmAgZnVuY3Rpb24gd2FzIGNhdGNoaW5nIGFuZCBpZ25vcmluZyBhbGwgZXJyb3Jz LA0KLSAgdW5kZXIgdGhlIGFzc3VtcHRpb24gdGhhdCB0aGV5IG1lYW50IGEgOm1ldGg6YF9fZ2V0 YXR0cl9fYCBtZXRob2QNCisgIHVuZGVyIHRoZSBhc3N1bXB0aW9uIHRoYXQgdGhleSBtZWFudCBh IDptZXRoOmB+b2JqZWN0Ll9fZ2V0YXR0cl9fYCBtZXRob2QNCiAgIHdhcyBmYWlsaW5nIHNvbWVo b3cgYW5kIHRoZSByZXR1cm4gdmFsdWUgb2YgOmZ1bmM6YGhhc2F0dHJgIHdvdWxkDQogICB0aGVy ZWZvcmUgYmUgYGBGYWxzZWBgLiAgVGhpcyBsb2dpYyBzaG91bGRuJ3QgYmUgYXBwbGllZCB0bw0K ICAgOmV4YzpgS2V5Ym9hcmRJbnRlcnJ1cHRgIGFuZCA6ZXhjOmBTeXN0ZW1FeGl0YCwgaG93ZXZl cjsgUHl0aG9uIDIuNg0KQEAgLTE1ODYsMTAgKzE1ODcsMTAgQEAgU29tZSBzbWFsbGVyIGNoYW5n ZXMgbWFkZSB0byB0aGUgY29yZSBQeXRob24gbGFuZ3VhZ2UgYXJlOg0KICAgICAgICAgICAgIHNl bGYuX3ggPSB2YWx1ZSAvIDINCiANCiAqIFNldmVyYWwgbWV0aG9kcyBvZiB0aGUgYnVpbHQtaW4g c2V0IHR5cGVzIG5vdyBhY2NlcHQgbXVsdGlwbGUgaXRlcmFibGVzOg0KLSAgOm1ldGg6YGludGVy c2VjdGlvbmAsDQotICA6bWV0aDpgaW50ZXJzZWN0aW9uX3VwZGF0ZWAsDQotICA6bWV0aDpgdW5p b25gLCA6bWV0aDpgdXBkYXRlYCwNCi0gIDptZXRoOmBkaWZmZXJlbmNlYCBhbmQgOm1ldGg6YGRp ZmZlcmVuY2VfdXBkYXRlYC4NCisgIDptZXRoOmB+c2V0LmludGVyc2VjdGlvbmAsDQorICA6bWV0 aDpgfnNldC5pbnRlcnNlY3Rpb25fdXBkYXRlYCwNCisgIDptZXRoOmB+c2V0LnVuaW9uYCwgOm1l dGg6YH5zZXQudXBkYXRlYCwNCisgIDptZXRoOmB+c2V0LmRpZmZlcmVuY2VgIGFuZCA6bWV0aDpg fnNldC5kaWZmZXJlbmNlX3VwZGF0ZWAuDQogDQogICA6Og0KIA0KQEAgLTE2MDcsOCArMTYwOCw4 IEBAIFNvbWUgc21hbGxlciBjaGFuZ2VzIG1hZGUgdG8gdGhlIGNvcmUgUHl0aG9uIGxhbmd1YWdl IGFyZToNCiAgIHBvc2l0aXZlIG9yIG5lZ2F0aXZlIGluZmluaXR5LiAgVGhpcyB3b3JrcyBvbiBh bnkgcGxhdGZvcm0gd2l0aA0KICAgSUVFRSA3NTQgc2VtYW50aWNzLiAgKENvbnRyaWJ1dGVkIGJ5 IENocmlzdGlhbiBIZWltZXM7IDppc3N1ZTpgMTYzNWAuKQ0KIA0KLSAgT3RoZXIgZnVuY3Rpb25z IGluIHRoZSA6bW9kOmBtYXRoYCBtb2R1bGUsIDpmdW5jOmBpc2luZmAgYW5kDQotICA6ZnVuYzpg aXNuYW5gLCByZXR1cm4gdHJ1ZSBpZiB0aGVpciBmbG9hdGluZy1wb2ludCBhcmd1bWVudCBpcw0K KyAgT3RoZXIgZnVuY3Rpb25zIGluIHRoZSA6bW9kOmBtYXRoYCBtb2R1bGUsIDpmdW5jOmB+bWF0 aC5pc2luZmAgYW5kDQorICA6ZnVuYzpgfm1hdGguaXNuYW5gLCByZXR1cm4gdHJ1ZSBpZiB0aGVp ciBmbG9hdGluZy1wb2ludCBhcmd1bWVudCBpcw0KICAgaW5maW5pdGUgb3IgTm90IEEgTnVtYmVy LiAgKDppc3N1ZTpgMTY0MGApDQogDQogICBDb252ZXJzaW9uIGZ1bmN0aW9ucyB3ZXJlIGFkZGVk IHRvIGNvbnZlcnQgZmxvYXRpbmctcG9pbnQgbnVtYmVycw0KQEAgLTE2MzMsMTcgKzE2MzQsMTcg QEAgU29tZSBzbWFsbGVyIGNoYW5nZXMgbWFkZSB0byB0aGUgY29yZSBQeXRob24gbGFuZ3VhZ2Ug YXJlOg0KICAgOmZ1bmM6YGNvbXBsZXhgIGNvbnN0cnVjdG9yIHdpbGwgbm93IHByZXNlcnZlIHRo ZSBzaWduDQogICBvZiB0aGUgemVyby4gIChGaXhlZCBieSBNYXJrIFQuIERpY2tpbnNvbjsgOmlz c3VlOmAxNTA3YC4pDQogDQotKiBDbGFzc2VzIHRoYXQgaW5oZXJpdCBhIDptZXRoOmBfX2hhc2hf X2AgbWV0aG9kIGZyb20gYSBwYXJlbnQgY2xhc3MNCisqIENsYXNzZXMgdGhhdCBpbmhlcml0IGEg Om1ldGg6YH5vYmplY3QuX19oYXNoX19gIG1ldGhvZCBmcm9tIGEgcGFyZW50IGNsYXNzDQogICBj YW4gc2V0IGBgX19oYXNoX18gPSBOb25lYGAgdG8gaW5kaWNhdGUgdGhhdCB0aGUgY2xhc3MgaXNu J3QNCiAgIGhhc2hhYmxlLiAgVGhpcyB3aWxsIG1ha2UgYGBoYXNoKG9iailgYCByYWlzZSBhIDpl eGM6YFR5cGVFcnJvcmANCiAgIGFuZCB0aGUgY2xhc3Mgd2lsbCBub3QgYmUgaW5kaWNhdGVkIGFz IGltcGxlbWVudGluZyB0aGUNCiAgIDpjbGFzczpgSGFzaGFibGVgIEFCQy4NCiANCi0gIFlvdSBz aG91bGQgZG8gdGhpcyB3aGVuIHlvdSd2ZSBkZWZpbmVkIGEgOm1ldGg6YF9fY21wX19gIG9yDQot ICA6bWV0aDpgX19lcV9fYCBtZXRob2QgdGhhdCBjb21wYXJlcyBvYmplY3RzIGJ5IHRoZWlyIHZh bHVlIHJhdGhlcg0KKyAgWW91IHNob3VsZCBkbyB0aGlzIHdoZW4geW91J3ZlIGRlZmluZWQgYSA6 bWV0aDpgIV9fY21wX19gIG9yDQorICA6bWV0aDpgfm9iamVjdC5fX2VxX19gIG1ldGhvZCB0aGF0 IGNvbXBhcmVzIG9iamVjdHMgYnkgdGhlaXIgdmFsdWUgcmF0aGVyDQogICB0aGFuIGJ5IGlkZW50 aXR5LiAgQWxsIG9iamVjdHMgaGF2ZSBhIGRlZmF1bHQgaGFzaCBtZXRob2QgdGhhdCB1c2VzDQog ICBgYGlkKG9iailgYCBhcyB0aGUgaGFzaCB2YWx1ZS4gIFRoZXJlJ3Mgbm8gdGlkeSB3YXkgdG8g cmVtb3ZlIHRoZQ0KLSAgOm1ldGg6YF9faGFzaF9fYCBtZXRob2QgaW5oZXJpdGVkIGZyb20gYSBw YXJlbnQgY2xhc3MsIHNvDQorICA6bWV0aDpgfm9iamVjdC5fX2hhc2hfX2AgbWV0aG9kIGluaGVy aXRlZCBmcm9tIGEgcGFyZW50IGNsYXNzLCBzbw0KICAgYXNzaWduaW5nIGBgTm9uZWBgIHdhcyBp bXBsZW1lbnRlZCBhcyBhbiBvdmVycmlkZS4gIEF0IHRoZQ0KICAgQyBsZXZlbCwgZXh0ZW5zaW9u cyBjYW4gc2V0IGBgdHBfaGFzaGBgIHRvDQogICA6YzpmdW5jOmBQeU9iamVjdF9IYXNoTm90SW1w bGVtZW50ZWRgLg0KQEAgLTE2NTUsNyArMTY1Niw3IEBAIFNvbWUgc21hbGxlciBjaGFuZ2VzIG1h ZGUgdG8gdGhlIGNvcmUgUHl0aG9uIGxhbmd1YWdlIGFyZToNCiAgIHdpbGwgbm90IGluYWR2ZXJ0 ZW50bHkgY2F0Y2ggOmV4YzpgR2VuZXJhdG9yRXhpdGAuDQogICAoQ29udHJpYnV0ZWQgYnkgQ2hh ZCBBdXN0aW47IDppc3N1ZTpgMTUzN2AuKQ0KIA0KLSogR2VuZXJhdG9yIG9iamVjdHMgbm93IGhh dmUgYSA6YXR0cjpgZ2lfY29kZWAgYXR0cmlidXRlIHRoYXQgcmVmZXJzIHRvDQorKiBHZW5lcmF0 b3Igb2JqZWN0cyBub3cgaGF2ZSBhIDphdHRyOmAhZ2lfY29kZWAgYXR0cmlidXRlIHRoYXQgcmVm ZXJzIHRvDQogICB0aGUgb3JpZ2luYWwgY29kZSBvYmplY3QgYmFja2luZyB0aGUgZ2VuZXJhdG9y Lg0KICAgKENvbnRyaWJ1dGVkIGJ5IENvbGxpbiBXaW50ZXI7IDppc3N1ZTpgMTQ3MzI1N2AuKQ0K IA0KQEAgLTE2NjgsMTcgKzE2NjksMTcgQEAgU29tZSBzbWFsbGVyIGNoYW5nZXMgbWFkZSB0byB0 aGUgY29yZSBQeXRob24gbGFuZ3VhZ2UgYXJlOg0KICAgd2lsbCBub3cgcm91bmQtdHJpcCB2YWx1 ZXMuICBGb3IgZXhhbXBsZSwgYGBjb21wbGV4KCcoMys0aiknKWBgDQogICBub3cgcmV0dXJucyB0 aGUgdmFsdWUgKDMrNGopLiAgKDppc3N1ZTpgMTQ5MTg2NmApDQogDQotKiBUaGUgc3RyaW5nIDpt ZXRoOmB0cmFuc2xhdGVgIG1ldGhvZCBub3cgYWNjZXB0cyBgYE5vbmVgYCBhcyB0aGUNCisqIFRo ZSBzdHJpbmcgOm1ldGg6YH5zdHIudHJhbnNsYXRlYCBtZXRob2Qgbm93IGFjY2VwdHMgYGBOb25l YGAgYXMgdGhlDQogICB0cmFuc2xhdGlvbiB0YWJsZSBwYXJhbWV0ZXIsIHdoaWNoIGlzIHRyZWF0 ZWQgYXMgdGhlIGlkZW50aXR5DQogICB0cmFuc2Zvcm1hdGlvbi4gICBUaGlzIG1ha2VzIGl0IGVh c2llciB0byBjYXJyeSBvdXQgb3BlcmF0aW9ucw0KICAgdGhhdCBvbmx5IGRlbGV0ZSBjaGFyYWN0 ZXJzLiAgKENvbnRyaWJ1dGVkIGJ5IEJlbmd0IFJpY2h0ZXIgYW5kDQogICBpbXBsZW1lbnRlZCBi eSBSYXltb25kIEhldHRpbmdlcjsgOmlzc3VlOmAxMTkzMTI4YC4pDQogDQotKiBUaGUgYnVpbHQt aW4gOmZ1bmM6YGRpcmAgZnVuY3Rpb24gbm93IGNoZWNrcyBmb3IgYSA6bWV0aDpgX19kaXJfX2AN CisqIFRoZSBidWlsdC1pbiA6ZnVuYzpgZGlyYCBmdW5jdGlvbiBub3cgY2hlY2tzIGZvciBhIDpt ZXRoOmB+b2JqZWN0Ll9fZGlyX19gDQogICBtZXRob2Qgb24gdGhlIG9iamVjdHMgaXQgcmVjZWl2 ZXMuICBUaGlzIG1ldGhvZCBtdXN0IHJldHVybiBhIGxpc3QNCiAgIG9mIHN0cmluZ3MgY29udGFp bmluZyB0aGUgbmFtZXMgb2YgdmFsaWQgYXR0cmlidXRlcyBmb3IgdGhlIG9iamVjdCwNCiAgIGFu ZCBsZXRzIHRoZSBvYmplY3QgY29udHJvbCB0aGUgdmFsdWUgdGhhdCA6ZnVuYzpgZGlyYCBwcm9k dWNlcy4NCi0gIE9iamVjdHMgdGhhdCBoYXZlIDptZXRoOmBfX2dldGF0dHJfX2Agb3IgOm1ldGg6 YF9fZ2V0YXR0cmlidXRlX19gDQorICBPYmplY3RzIHRoYXQgaGF2ZSA6bWV0aDpgfm9iamVjdC5f X2dldGF0dHJfX2Agb3IgOm1ldGg6YH5vYmplY3QuX19nZXRhdHRyaWJ1dGVfX2ANCiAgIG1ldGhv ZHMgY2FuIHVzZSB0aGlzIHRvIGFkdmVydGlzZSBwc2V1ZG8tYXR0cmlidXRlcyB0aGV5IHdpbGwg aG9ub3IuDQogICAoOmlzc3VlOmAxNTkxNjY1YCkNCiANCkBAIC0xNzM5LDggKzE3NDAsOCBAQCBP cHRpbWl6YXRpb25zDQogICBvbmUgb2YgdGhlc2UgdHlwZXMuICAoQ29udHJpYnV0ZWQgYnkgTmVh bCBOb3J3aXR6LikNCiANCiAqIFVuaWNvZGUgc3RyaW5ncyBub3cgdXNlIGZhc3RlciBjb2RlIGZv ciBkZXRlY3RpbmcNCi0gIHdoaXRlc3BhY2UgYW5kIGxpbmUgYnJlYWtzOyB0aGlzIHNwZWVkcyB1 cCB0aGUgOm1ldGg6YHNwbGl0YCBtZXRob2QNCi0gIGJ5IGFib3V0IDI1JSBhbmQgOm1ldGg6YHNw bGl0bGluZXNgIGJ5IDM1JS4NCisgIHdoaXRlc3BhY2UgYW5kIGxpbmUgYnJlYWtzOyB0aGlzIHNw ZWVkcyB1cCB0aGUgOm1ldGg6YH5zdHIuc3BsaXRgIG1ldGhvZA0KKyAgYnkgYWJvdXQgMjUlIGFu ZCA6bWV0aDpgfnN0ci5zcGxpdGxpbmVzYCBieSAzNSUuDQogICAoQ29udHJpYnV0ZWQgYnkgQW50 b2luZSBQaXRyb3UuKSAgTWVtb3J5IHVzYWdlIGlzIHJlZHVjZWQNCiAgIGJ5IHVzaW5nIHB5bWFs bG9jIGZvciB0aGUgVW5pY29kZSBzdHJpbmcncyBkYXRhLg0KIA0KQEAgLTE3NTYsNyArMTc1Nyw3 IEBAIE9wdGltaXphdGlvbnMNCiAuLiBfbmV3LTI2LWludGVycHJldGVyOg0KIA0KIEludGVycHJl dGVyIENoYW5nZXMNCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tDQorLS0tLS0tLS0t LS0tLS0tLS0tLQ0KIA0KIFR3byBjb21tYW5kLWxpbmUgb3B0aW9ucyBoYXZlIGJlZW4gcmVzZXJ2 ZWQgZm9yIHVzZSBieSBvdGhlciBQeXRob24NCiBpbXBsZW1lbnRhdGlvbnMuICBUaGUgOm9wdGlv bjpgIS1KYCBzd2l0Y2ggaGFzIGJlZW4gcmVzZXJ2ZWQgZm9yIHVzZSBieQ0KQEAgLTE4MDAsMTUg KzE4MDEsMTUgQEAgY2hhbmdlcywgb3IgbG9vayB0aHJvdWdoIHRoZSBTdWJ2ZXJzaW9uIGxvZ3Mg Zm9yIGFsbCB0aGUgZGV0YWlscy4NCiAgIHdlcmUgYXBwbGllZC4gIChNYWludGFpbmVkIGJ5IEpv c2lhaCBDYXJsc29uOyBzZWUgOmlzc3VlOmAxNzM2MTkwYCBmb3INCiAgIG9uZSBwYXRjaC4pDQog DQotKiBUaGUgOm1vZDpgYnNkZGJgIG1vZHVsZSBhbHNvIGhhcyBhIG5ldyBtYWludGFpbmVyLCBK ZXPDunMgQ2VhIEF2acOzbiwgYW5kIHRoZSBwYWNrYWdlDQotICBpcyBub3cgYXZhaWxhYmxlIGFz IGEgc3RhbmRhbG9uZSBwYWNrYWdlLiAgVGhlIHdlYiBwYWdlIGZvciB0aGUgcGFja2FnZSBpcw0K LSAgYHd3dy5qY2VhLmVzL3Byb2dyYW1hY2lvbi9weWJzZGRiLmh0bQ0KKyogVGhlIDptb2Q6YCFi c2RkYmAgbW9kdWxlIGFsc28gaGFzIGEgbmV3IG1haW50YWluZXIsIEplc8O6cyBDZWEgQXZpw7Nu LCBhbmQgdGhlDQorICBwYWNrYWdlIGlzIG5vdyBhdmFpbGFibGUgYXMgYSBzdGFuZGFsb25lIHBh Y2thZ2UuICBUaGUgd2ViIHBhZ2UgZm9yIHRoZSBwYWNrYWdlDQorICBpcyBgd3d3LmpjZWEuZXMv cHJvZ3JhbWFjaW9uL3B5YnNkZGIuaHRtDQogICA8aHR0cHM6Ly93d3cuamNlYS5lcy9wcm9ncmFt YWNpb24vcHlic2RkYi5odG0+YF9fLg0KICAgVGhlIHBsYW4gaXMgdG8gcmVtb3ZlIHRoZSBwYWNr YWdlIGZyb20gdGhlIHN0YW5kYXJkIGxpYnJhcnkNCiAgIGluIFB5dGhvbiAzLjAsIGJlY2F1c2Ug aXRzIHBhY2Ugb2YgcmVsZWFzZXMgaXMgbXVjaCBtb3JlIGZyZXF1ZW50IHRoYW4NCiAgIFB5dGhv bidzLg0KIA0KLSAgVGhlIDptb2Q6YGJzZGRiLmRic2hlbHZlYCBtb2R1bGUgbm93IHVzZXMgdGhl IGhpZ2hlc3QgcGlja2xpbmcgcHJvdG9jb2wNCisgIFRoZSA6bW9kOmAhYnNkZGIuZGJzaGVsdmVg IG1vZHVsZSBub3cgdXNlcyB0aGUgaGlnaGVzdCBwaWNrbGluZyBwcm90b2NvbA0KICAgYXZhaWxh YmxlLCBpbnN0ZWFkIG9mIHJlc3RyaWN0aW5nIGl0c2VsZiB0byBwcm90b2NvbCAxLg0KICAgKENv bnRyaWJ1dGVkIGJ5IFcuIEJhcm5lcy4pDQogDQpAQCAtMTgxOCw5ICsxODE5LDkgQEAgY2hhbmdl cywgb3IgbG9vayB0aHJvdWdoIHRoZSBTdWJ2ZXJzaW9uIGxvZ3MgZm9yIGFsbCB0aGUgZGV0YWls cy4NCiAgICIvY2dpLWJpbi9hZGQucHk/Y2F0ZWdvcnk9MSIuICAoQ29udHJpYnV0ZWQgYnkgQWxl eGFuZHJlIEZpb3JpIGFuZA0KICAgTnViaXM7IDppc3N1ZTpgMTgxN2AuKQ0KIA0KLSAgVGhlIDpm dW5jOmBwYXJzZV9xc2AgYW5kIDpmdW5jOmBwYXJzZV9xc2xgIGZ1bmN0aW9ucyBoYXZlIGJlZW4N Ci0gIHJlbG9jYXRlZCBmcm9tIHRoZSA6bW9kOmAhY2dpYCBtb2R1bGUgdG8gdGhlIDptb2Q6YHVy bHBhcnNlIDx1cmxsaWIucGFyc2U+YCBtb2R1bGUuDQotICBUaGUgdmVyc2lvbnMgc3RpbGwgYXZh aWxhYmxlIGluIHRoZSA6bW9kOmAhY2dpYCBtb2R1bGUgd2lsbA0KKyAgVGhlIDpmdW5jOmB+dXJs bGliLnBhcnNlLnBhcnNlX3FzYCBhbmQgOmZ1bmM6YH51cmxsaWIucGFyc2UucGFyc2VfcXNsYCBm dW5jdGlvbnMNCisgIGhhdmUgYmVlbiByZWxvY2F0ZWQgZnJvbSB0aGUgOm1vZDpgIWNnaWAgbW9k dWxlIHRvIHRoZSA6bW9kOmB1cmxwYXJzZSA8dXJsbGliLnBhcnNlPmANCisgIG1vZHVsZS4gVGhl IHZlcnNpb25zIHN0aWxsIGF2YWlsYWJsZSBpbiB0aGUgOm1vZDpgIWNnaWAgbW9kdWxlIHdpbGwN CiAgIHRyaWdnZXIgOmV4YzpgUGVuZGluZ0RlcHJlY2F0aW9uV2FybmluZ2AgbWVzc2FnZXMgaW4g Mi42DQogICAoOmlzc3VlOmA2MDAzNjJgKS4NCiANCkBAIC0xODI4LDI3ICsxODI5LDI3IEBAIGNo YW5nZXMsIG9yIGxvb2sgdGhyb3VnaCB0aGUgU3VidmVyc2lvbiBsb2dzIGZvciBhbGwgdGhlIGRl dGFpbHMuDQogICBjb250cmlidXRlZCBieSBNYXJrIERpY2tpbnNvbiBhbmQgQ2hyaXN0aWFuIEhl aW1lcy4NCiAgIEZpdmUgbmV3IGZ1bmN0aW9ucyB3ZXJlIGFkZGVkOg0KIA0KLSAgKiA6ZnVuYzpg cG9sYXJgIGNvbnZlcnRzIGEgY29tcGxleCBudW1iZXIgdG8gcG9sYXIgZm9ybSwgcmV0dXJuaW5n DQorICAqIDpmdW5jOmB+Y21hdGgucG9sYXJgIGNvbnZlcnRzIGEgY29tcGxleCBudW1iZXIgdG8g cG9sYXIgZm9ybSwgcmV0dXJuaW5nDQogICAgIHRoZSBtb2R1bHVzIGFuZCBhcmd1bWVudCBvZiB0 aGUgY29tcGxleCBudW1iZXIuDQogDQotICAqIDpmdW5jOmByZWN0YCBkb2VzIHRoZSBvcHBvc2l0 ZSwgdHVybmluZyBhIG1vZHVsdXMsIGFyZ3VtZW50IHBhaXINCisgICogOmZ1bmM6YH5jbWF0aC5y ZWN0YCBkb2VzIHRoZSBvcHBvc2l0ZSwgdHVybmluZyBhIG1vZHVsdXMsIGFyZ3VtZW50IHBhaXIN CiAgICAgYmFjayBpbnRvIHRoZSBjb3JyZXNwb25kaW5nIGNvbXBsZXggbnVtYmVyLg0KIA0KLSAg KiA6ZnVuYzpgcGhhc2VgIHJldHVybnMgdGhlIGFyZ3VtZW50IChhbHNvIGNhbGxlZCB0aGUgYW5n bGUpIG9mIGEgY29tcGxleA0KKyAgKiA6ZnVuYzpgfmNtYXRoLnBoYXNlYCByZXR1cm5zIHRoZSBh cmd1bWVudCAoYWxzbyBjYWxsZWQgdGhlIGFuZ2xlKSBvZiBhIGNvbXBsZXgNCiAgICAgbnVtYmVy Lg0KIA0KLSAgKiA6ZnVuYzpgaXNuYW5gIHJldHVybnMgVHJ1ZSBpZiBlaXRoZXINCisgICogOmZ1 bmM6YH5jbWF0aC5pc25hbmAgcmV0dXJucyBUcnVlIGlmIGVpdGhlcg0KICAgICB0aGUgcmVhbCBv ciBpbWFnaW5hcnkgcGFydCBvZiBpdHMgYXJndW1lbnQgaXMgYSBOYU4uDQogDQotICAqIDpmdW5j OmBpc2luZmAgcmV0dXJucyBUcnVlIGlmIGVpdGhlciB0aGUgcmVhbCBvciBpbWFnaW5hcnkgcGFy dCBvZg0KKyAgKiA6ZnVuYzpgfmNtYXRoLmlzaW5mYCByZXR1cm5zIFRydWUgaWYgZWl0aGVyIHRo ZSByZWFsIG9yIGltYWdpbmFyeSBwYXJ0IG9mDQogICAgIGl0cyBhcmd1bWVudCBpcyBpbmZpbml0 ZS4NCiANCiAgIFRoZSByZXZpc2lvbnMgYWxzbyBpbXByb3ZlZCB0aGUgbnVtZXJpY2FsIHNvdW5k bmVzcyBvZiB0aGUNCiAgIDptb2Q6YGNtYXRoYCBtb2R1bGUuICBGb3IgYWxsIGZ1bmN0aW9ucywg dGhlIHJlYWwgYW5kIGltYWdpbmFyeQ0KICAgcGFydHMgb2YgdGhlIHJlc3VsdHMgYXJlIGFjY3Vy YXRlIHRvIHdpdGhpbiBhIGZldyB1bml0cyBvZiBsZWFzdA0KICAgcHJlY2lzaW9uICh1bHBzKSB3 aGVuZXZlciBwb3NzaWJsZS4gIFNlZSA6aXNzdWU6YDEzODFgIGZvciB0aGUNCi0gIGRldGFpbHMu ICBUaGUgYnJhbmNoIGN1dHMgZm9yIDpmdW5jOmBhc2luaGAsIDpmdW5jOmBhdGFuaGA6IGFuZA0K LSAgOmZ1bmM6YGF0YW5gIGhhdmUgYWxzbyBiZWVuIGNvcnJlY3RlZC4NCisgIGRldGFpbHMuICBU aGUgYnJhbmNoIGN1dHMgZm9yIDpmdW5jOmB+Y21hdGguYXNpbmhgLCA6ZnVuYzpgfmNtYXRoLmF0 YW5oYCwgYW5kDQorICA6ZnVuYzpgfmNtYXRoLmF0YW5gIGhhdmUgYWxzbyBiZWVuIGNvcnJlY3Rl ZC4NCiANCiAgIFRoZSB0ZXN0cyBmb3IgdGhlIG1vZHVsZSBoYXZlIGJlZW4gZ3JlYXRseSBleHBh bmRlZDsgbmVhcmx5IDIwMDAgbmV3DQogICB0ZXN0IGNhc2VzIGV4ZXJjaXNlIHRoZSBhbGdlYnJh aWMgZnVuY3Rpb25zLg0KQEAgLTE4ODAsMTQgKzE4ODEsMTQgQEAgY2hhbmdlcywgb3IgbG9vayB0 aHJvdWdoIHRoZSBTdWJ2ZXJzaW9uIGxvZ3MgZm9yIGFsbCB0aGUgZGV0YWlscy4NCiAgICAgIHZh cmlhYmxlKGlkPTEsIG5hbWU9J2FtcGxpdHVkZScsIHR5cGU9J2ludCcsIHNpemU9NCkNCiANCiAg IFNldmVyYWwgcGxhY2VzIGluIHRoZSBzdGFuZGFyZCBsaWJyYXJ5IHRoYXQgcmV0dXJuZWQgdHVw bGVzIGhhdmUNCi0gIGJlZW4gbW9kaWZpZWQgdG8gcmV0dXJuIDpmdW5jOmBuYW1lZHR1cGxlYCBp bnN0YW5jZXMuICBGb3IgZXhhbXBsZSwNCi0gIHRoZSA6bWV0aDpgRGVjaW1hbC5hc190dXBsZWAg bWV0aG9kIG5vdyByZXR1cm5zIGEgbmFtZWQgdHVwbGUgd2l0aA0KLSAgOmF0dHI6YHNpZ25gLCA6 YXR0cjpgZGlnaXRzYCwgYW5kIDphdHRyOmBleHBvbmVudGAgZmllbGRzLg0KKyAgYmVlbiBtb2Rp ZmllZCB0byByZXR1cm4gOmZ1bmM6YH5jb2xsZWN0aW9ucy5uYW1lZHR1cGxlYCBpbnN0YW5jZXMu ICBGb3IgZXhhbXBsZSwNCisgIHRoZSA6bWV0aDpgZGVjaW1hbC5EZWNpbWFsLmFzX3R1cGxlYCBt ZXRob2Qgbm93IHJldHVybnMgYSBuYW1lZCB0dXBsZSB3aXRoDQorICA6YXR0cjpgIXNpZ25gLCA6 YXR0cjpgIWRpZ2l0c2AsIGFuZCA6YXR0cjpgIWV4cG9uZW50YCBmaWVsZHMuDQogDQogICAoQ29u dHJpYnV0ZWQgYnkgUmF5bW9uZCBIZXR0aW5nZXIuKQ0KIA0KICogQW5vdGhlciBjaGFuZ2UgdG8g dGhlIDptb2Q6YGNvbGxlY3Rpb25zYCBtb2R1bGUgaXMgdGhhdCB0aGUNCi0gIDpjbGFzczpgZGVx dWVgIHR5cGUgbm93IHN1cHBvcnRzIGFuIG9wdGlvbmFsICptYXhsZW4qIHBhcmFtZXRlcjsNCisg IDpjbGFzczpgfmNvbGxlY3Rpb25zLmRlcXVlYCB0eXBlIG5vdyBzdXBwb3J0cyBhbiBvcHRpb25h bCAqbWF4bGVuKiBwYXJhbWV0ZXI7DQogICBpZiBzdXBwbGllZCwgdGhlIGRlcXVlJ3Mgc2l6ZSB3 aWxsIGJlIHJlc3RyaWN0ZWQgdG8gbm8gbW9yZQ0KICAgdGhhbiAqbWF4bGVuKiBpdGVtcy4gIEFk ZGluZyBtb3JlIGl0ZW1zIHRvIGEgZnVsbCBkZXF1ZSBjYXVzZXMNCiAgIG9sZCBpdGVtcyB0byBi ZSBkaXNjYXJkZWQuDQpAQCAtMTkxMyw3ICsxOTE0LDcgQEAgY2hhbmdlcywgb3IgbG9vayB0aHJv dWdoIHRoZSBTdWJ2ZXJzaW9uIGxvZ3MgZm9yIGFsbCB0aGUgZGV0YWlscy4NCiAgIChDb250cmli dXRlZCBieSBBcnZpbiBTY2huZWxsOyA6aXNzdWU6YDE2MzgwMzNgLikNCiANCiAqIEEgbmV3IHdp bmRvdyBtZXRob2QgaW4gdGhlIDptb2Q6YGN1cnNlc2AgbW9kdWxlLA0KLSAgOm1ldGg6YGNoZ2F0 YCwgY2hhbmdlcyB0aGUgZGlzcGxheSBhdHRyaWJ1dGVzIGZvciBhIGNlcnRhaW4gbnVtYmVyIG9m DQorICA6bWV0aDpgfmN1cnNlcy53aW5kb3cuY2hnYXRgLCBjaGFuZ2VzIHRoZSBkaXNwbGF5IGF0 dHJpYnV0ZXMgZm9yIGEgY2VydGFpbiBudW1iZXIgb2YNCiAgIGNoYXJhY3RlcnMgb24gYSBzaW5n bGUgbGluZS4gIChDb250cmlidXRlZCBieSBGYWJpYW4gS3JldXR6LikNCiANCiAgIDo6DQpAQCAt MTkyMiwyMCArMTkyMywyMCBAQCBjaGFuZ2VzLCBvciBsb29rIHRocm91Z2ggdGhlIFN1YnZlcnNp b24gbG9ncyBmb3IgYWxsIHRoZSBkZXRhaWxzLg0KICAgICAgIyBhbmQgYWZmZWN0aW5nIHRoZSBy ZXN0IG9mIHRoZSBsaW5lLg0KICAgICAgc3Rkc2NyLmNoZ2F0KDAsIDIxLCBjdXJzZXMuQV9CT0xE KQ0KIA0KLSAgVGhlIDpjbGFzczpgVGV4dGJveGAgY2xhc3MgaW4gdGhlIDptb2Q6YGN1cnNlcy50 ZXh0cGFkYCBtb2R1bGUNCisgIFRoZSA6Y2xhc3M6YH5jdXJzZXMudGV4dHBhZC5UZXh0Ym94YCBj bGFzcyBpbiB0aGUgOm1vZDpgY3Vyc2VzLnRleHRwYWRgIG1vZHVsZQ0KICAgbm93IHN1cHBvcnRz IGVkaXRpbmcgaW4gaW5zZXJ0IG1vZGUgYXMgd2VsbCBhcyBvdmVyd3JpdGUgbW9kZS4NCiAgIElu c2VydCBtb2RlIGlzIGVuYWJsZWQgYnkgc3VwcGx5aW5nIGEgdHJ1ZSB2YWx1ZSBmb3IgdGhlICpp bnNlcnRfbW9kZSoNCi0gIHBhcmFtZXRlciB3aGVuIGNyZWF0aW5nIHRoZSA6Y2xhc3M6YFRleHRi b3hgIGluc3RhbmNlLg0KKyAgcGFyYW1ldGVyIHdoZW4gY3JlYXRpbmcgdGhlIDpjbGFzczpgfmN1 cnNlcy50ZXh0cGFkLlRleHRib3hgIGluc3RhbmNlLg0KIA0KLSogVGhlIDptb2Q6YGRhdGV0aW1l YCBtb2R1bGUncyA6bWV0aDpgc3RyZnRpbWVgIG1ldGhvZHMgbm93IHN1cHBvcnQgYQ0KLSAgYGAl ZmBgIGZvcm1hdCBjb2RlIHRoYXQgZXhwYW5kcyB0byB0aGUgbnVtYmVyIG9mIG1pY3Jvc2Vjb25k cyBpbiB0aGUNCisqIFRoZSA6bW9kOmBkYXRldGltZWAgbW9kdWxlJ3MgOm1ldGg6YH5kYXRldGlt ZS5kYXRldGltZS5zdHJmdGltZWAgbWV0aG9kcyBub3cNCisgIHN1cHBvcnQgYSBgYCVmYGAgZm9y bWF0IGNvZGUgdGhhdCBleHBhbmRzIHRvIHRoZSBudW1iZXIgb2YgbWljcm9zZWNvbmRzIGluIHRo ZQ0KICAgb2JqZWN0LCB6ZXJvLXBhZGRlZCBvbg0KICAgdGhlIGxlZnQgdG8gc2l4IHBsYWNlcy4g IChDb250cmlidXRlZCBieSBTa2lwIE1vbnRhbmFybzsgOmlzc3VlOmAxMTU4YC4pDQogDQogKiBU aGUgOm1vZDpgZGVjaW1hbGAgbW9kdWxlIHdhcyB1cGRhdGVkIHRvIHZlcnNpb24gMS42NiBvZg0K ICAgYHRoZSBHZW5lcmFsIERlY2ltYWwgU3BlY2lmaWNhdGlvbiA8aHR0cHM6Ly9zcGVsZW90cm92 ZS5jb20vZGVjaW1hbC9kZWNhcml0aC5odG1sPmBfXy4gIE5ldyBmZWF0dXJlcw0KICAgaW5jbHVk ZSBzb21lIG1ldGhvZHMgZm9yIHNvbWUgYmFzaWMgbWF0aGVtYXRpY2FsIGZ1bmN0aW9ucyBzdWNo IGFzDQotICA6bWV0aDpgZXhwYCBhbmQgOm1ldGg6YGxvZzEwYDo6DQorICA6bWV0aDpgfmRlY2lt YWwuRGVjaW1hbC5leHBgIGFuZCA6bWV0aDpgfmRlY2ltYWwuRGVjaW1hbC5sb2cxMGA6Og0KIA0K ICAgICA+Pj4gRGVjaW1hbCgxKS5leHAoKQ0KICAgICBEZWNpbWFsKCIyLjcxODI4MTgyODQ1OTA0 NTIzNTM2MDI4NzQ3MSIpDQpAQCAtMTk0NCwyOCArMTk0NSwyOSBAQCBjaGFuZ2VzLCBvciBsb29r IHRocm91Z2ggdGhlIFN1YnZlcnNpb24gbG9ncyBmb3IgYWxsIHRoZSBkZXRhaWxzLg0KICAgICA+ Pj4gRGVjaW1hbCgxMDAwKS5sb2cxMCgpDQogICAgIERlY2ltYWwoIjMiKQ0KIA0KLSAgVGhlIDpt ZXRoOmBhc190dXBsZWAgbWV0aG9kIG9mIDpjbGFzczpgRGVjaW1hbGAgb2JqZWN0cyBub3cgcmV0 dXJucyBhDQotICBuYW1lZCB0dXBsZSB3aXRoIDphdHRyOmBzaWduYCwgOmF0dHI6YGRpZ2l0c2As IGFuZCA6YXR0cjpgZXhwb25lbnRgIGZpZWxkcy4NCisgIFRoZSA6bWV0aDpgfmRlY2ltYWwuRGVj aW1hbC5hc190dXBsZWAgbWV0aG9kIG9mIDpjbGFzczpgfmRlY2ltYWwuRGVjaW1hbGANCisgIG9i amVjdHMgbm93IHJldHVybnMgYSBuYW1lZCB0dXBsZSB3aXRoIDphdHRyOmAhc2lnbmAsIDphdHRy OmAhZGlnaXRzYCwgYW5kDQorICA6YXR0cjpgIWV4cG9uZW50YCBmaWVsZHMuDQogDQogICAoSW1w bGVtZW50ZWQgYnkgRmFjdW5kbyBCYXRpc3RhIGFuZCBNYXJrIERpY2tpbnNvbi4gIE5hbWVkIHR1 cGxlDQogICBzdXBwb3J0IGFkZGVkIGJ5IFJheW1vbmQgSGV0dGluZ2VyLikNCiANCi0qIFRoZSA6 bW9kOmBkaWZmbGliYCBtb2R1bGUncyA6Y2xhc3M6YFNlcXVlbmNlTWF0Y2hlcmAgY2xhc3MNCisq IFRoZSA6bW9kOmBkaWZmbGliYCBtb2R1bGUncyA6Y2xhc3M6YH5kaWZmbGliLlNlcXVlbmNlTWF0 Y2hlcmAgY2xhc3MNCiAgIG5vdyByZXR1cm5zIG5hbWVkIHR1cGxlcyByZXByZXNlbnRpbmcgbWF0 Y2hlcywNCi0gIHdpdGggOmF0dHI6YGFgLCA6YXR0cjpgYmAsIGFuZCA6YXR0cjpgc2l6ZWAgYXR0 cmlidXRlcy4NCisgIHdpdGggOmF0dHI6YCFhYCwgOmF0dHI6YCFiYCwgYW5kIDphdHRyOmAhc2l6 ZWAgYXR0cmlidXRlcy4NCiAgIChDb250cmlidXRlZCBieSBSYXltb25kIEhldHRpbmdlci4pDQog DQogKiBBbiBvcHRpb25hbCBgYHRpbWVvdXRgYCBwYXJhbWV0ZXIsIHNwZWNpZnlpbmcgYSB0aW1l b3V0IG1lYXN1cmVkIGluDQogICBzZWNvbmRzLCB3YXMgYWRkZWQgdG8gdGhlIDpjbGFzczpgZnRw bGliLkZUUGAgY2xhc3MgY29uc3RydWN0b3IgYXMNCi0gIHdlbGwgYXMgdGhlIDptZXRoOmBjb25u ZWN0YCBtZXRob2QuICAoQWRkZWQgYnkgRmFjdW5kbyBCYXRpc3RhLikNCi0gIEFsc28sIHRoZSA6 Y2xhc3M6YEZUUGAgY2xhc3MncyA6bWV0aDpgc3RvcmJpbmFyeWAgYW5kDQotICA6bWV0aDpgc3Rv cmxpbmVzYCBub3cgdGFrZSBhbiBvcHRpb25hbCAqY2FsbGJhY2sqIHBhcmFtZXRlciB0aGF0DQor ICB3ZWxsIGFzIHRoZSA6bWV0aDpgfmZ0cGxpYi5GVFAuY29ubmVjdGAgbWV0aG9kLiAgKEFkZGVk IGJ5IEZhY3VuZG8gQmF0aXN0YS4pDQorICBBbHNvLCB0aGUgOmNsYXNzOmB+ZnRwbGliLkZUUGAg Y2xhc3MncyA6bWV0aDpgfmZ0cGxpYi5GVFAuc3RvcmJpbmFyeWAgYW5kDQorICA6bWV0aDpgfmZ0 cGxpYi5GVFAuc3RvcmxpbmVzYCBub3cgdGFrZSBhbiBvcHRpb25hbCAqY2FsbGJhY2sqIHBhcmFt ZXRlciB0aGF0DQogICB3aWxsIGJlIGNhbGxlZCB3aXRoIGVhY2ggYmxvY2sgb2YgZGF0YSBhZnRl ciB0aGUgZGF0YSBoYXMgYmVlbiBzZW50Lg0KICAgKENvbnRyaWJ1dGVkIGJ5IFBoaWwgU2Nod2Fy dHo7IDppc3N1ZTpgMTIyMTU5OGAuKQ0KIA0KLSogVGhlIDpmdW5jOmByZWR1Y2VgIGJ1aWx0LWlu IGZ1bmN0aW9uIGlzIGFsc28gYXZhaWxhYmxlIGluIHRoZQ0KKyogVGhlIDpmdW5jOmAhcmVkdWNl YCBidWlsdC1pbiBmdW5jdGlvbiBpcyBhbHNvIGF2YWlsYWJsZSBpbiB0aGUNCiAgIDptb2Q6YGZ1 bmN0b29sc2AgbW9kdWxlLiAgSW4gUHl0aG9uIDMuMCwgdGhlIGJ1aWx0aW4gaGFzIGJlZW4NCi0g IGRyb3BwZWQgYW5kIDpmdW5jOmByZWR1Y2VgIGlzIG9ubHkgYXZhaWxhYmxlIGZyb20gOm1vZDpg ZnVuY3Rvb2xzYDsNCisgIGRyb3BwZWQgYW5kIDpmdW5jOmB+ZnVuY3Rvb2xzLnJlZHVjZWAgaXMg b25seSBhdmFpbGFibGUgZnJvbSA6bW9kOmBmdW5jdG9vbHNgOw0KICAgY3VycmVudGx5IHRoZXJl IGFyZSBubyBwbGFucyB0byBkcm9wIHRoZSBidWlsdGluIGluIHRoZSAyLnggc2VyaWVzLg0KICAg KFBhdGNoZWQgYnkgQ2hyaXN0aWFuIEhlaW1lczsgOmlzc3VlOmAxNzM5OTA2YC4pDQogDQpAQCAt MTk4OSw4ICsxOTkxLDggQEAgY2hhbmdlcywgb3IgbG9vayB0aHJvdWdoIHRoZSBTdWJ2ZXJzaW9u IGxvZ3MgZm9yIGFsbCB0aGUgZGV0YWlscy4NCiANCiAgIEFub3RoZXIgbmV3IGZ1bmN0aW9uLCBg YGhlYXBwdXNocG9wKGhlYXAsIGl0ZW0pYGAsDQogICBwdXNoZXMgKml0ZW0qIG9udG8gKmhlYXAq LCB0aGVuIHBvcHMgb2ZmIGFuZCByZXR1cm5zIHRoZSBzbWFsbGVzdCBpdGVtLg0KLSAgVGhpcyBp cyBtb3JlIGVmZmljaWVudCB0aGFuIG1ha2luZyBhIGNhbGwgdG8gOmZ1bmM6YGhlYXBwdXNoYCBh bmQgdGhlbg0KLSAgOmZ1bmM6YGhlYXBwb3BgLg0KKyAgVGhpcyBpcyBtb3JlIGVmZmljaWVudCB0 aGFuIG1ha2luZyBhIGNhbGwgdG8gOmZ1bmM6YH5oZWFwcS5oZWFwcHVzaGAgYW5kIHRoZW4NCisg IDpmdW5jOmB+aGVhcHEuaGVhcHBvcGAuDQogDQogICA6bW9kOmBoZWFwcWAgaXMgbm93IGltcGxl bWVudGVkIHRvIG9ubHkgdXNlIGxlc3MtdGhhbiBjb21wYXJpc29uLA0KICAgaW5zdGVhZCBvZiB0 aGUgbGVzcy10aGFuLW9yLWVxdWFsIGNvbXBhcmlzb24gaXQgcHJldmlvdXNseSB1c2VkLg0KQEAg LTIwMDQsMTQgKzIwMDYsMTQgQEAgY2hhbmdlcywgb3IgbG9vayB0aHJvdWdoIHRoZSBTdWJ2ZXJz aW9uIGxvZ3MgZm9yIGFsbCB0aGUgZGV0YWlscy4NCiAgIEJhdGlzdGEuKQ0KIA0KICogTW9zdCBv ZiB0aGUgOm1vZDpgaW5zcGVjdGAgbW9kdWxlJ3MgZnVuY3Rpb25zLCBzdWNoIGFzDQotICA6ZnVu YzpgZ2V0bW9kdWxlaW5mb2AgYW5kIDpmdW5jOmBnZXRhcmdzYCwgbm93IHJldHVybiBuYW1lZCB0 dXBsZXMuDQorICA6ZnVuYzpgIWdldG1vZHVsZWluZm9gIGFuZCA6ZnVuYzpgIWdldGFyZ3NgLCBu b3cgcmV0dXJuIG5hbWVkIHR1cGxlcy4NCiAgIEluIGFkZGl0aW9uIHRvIGJlaGF2aW5nIGxpa2Ug dHVwbGVzLCB0aGUgZWxlbWVudHMgb2YgdGhlICByZXR1cm4gdmFsdWUNCiAgIGNhbiBhbHNvIGJl IGFjY2Vzc2VkIGFzIGF0dHJpYnV0ZXMuDQogICAoQ29udHJpYnV0ZWQgYnkgUmF5bW9uZCBIZXR0 aW5nZXIuKQ0KIA0KICAgU29tZSBuZXcgZnVuY3Rpb25zIGluIHRoZSBtb2R1bGUgaW5jbHVkZQ0K LSAgOmZ1bmM6YGlzZ2VuZXJhdG9yYCwgOmZ1bmM6YGlzZ2VuZXJhdG9yZnVuY3Rpb25gLA0KLSAg YW5kIDpmdW5jOmBpc2Fic3RyYWN0YC4NCisgIDpmdW5jOmB+aW5zcGVjdC5pc2dlbmVyYXRvcmAs IDpmdW5jOmB+aW5zcGVjdC5pc2dlbmVyYXRvcmZ1bmN0aW9uYCwNCisgIGFuZCA6ZnVuYzpgfmlu c3BlY3QuaXNhYnN0cmFjdGAuDQogDQogKiBUaGUgOm1vZDpgaXRlcnRvb2xzYCBtb2R1bGUgZ2Fp bmVkIHNldmVyYWwgbmV3IGZ1bmN0aW9ucy4NCiANCkBAIC0yMDcyLDcgKzIwNzQsNyBAQCBjaGFu Z2VzLCBvciBsb29rIHRocm91Z2ggdGhlIFN1YnZlcnNpb24gbG9ncyBmb3IgYWxsIHRoZSBkZXRh aWxzLg0KICAgYGBpdGVydG9vbHMuY2hhaW4oKml0ZXJhYmxlcylgYCBpcyBhbiBleGlzdGluZyBm dW5jdGlvbiBpbg0KICAgOm1vZDpgaXRlcnRvb2xzYCB0aGF0IGdhaW5lZCBhIG5ldyBjb25zdHJ1 Y3RvciBpbiBQeXRob24gMi42Lg0KICAgYGBpdGVydG9vbHMuY2hhaW4uZnJvbV9pdGVyYWJsZShp dGVyYWJsZSlgYCB0YWtlcyBhIHNpbmdsZQ0KLSAgaXRlcmFibGUgdGhhdCBzaG91bGQgcmV0dXJu IG90aGVyIGl0ZXJhYmxlcy4gIDpmdW5jOmBjaGFpbmAgd2lsbA0KKyAgaXRlcmFibGUgdGhhdCBz aG91bGQgcmV0dXJuIG90aGVyIGl0ZXJhYmxlcy4gIDpmdW5jOmB+aXRlcnRvb2xzLmNoYWluYCB3 aWxsDQogICB0aGVuIHJldHVybiBhbGwgdGhlIGVsZW1lbnRzIG9mIHRoZSBmaXJzdCBpdGVyYWJs ZSwgdGhlbg0KICAgYWxsIHRoZSBlbGVtZW50cyBvZiB0aGUgc2Vjb25kLCBhbmQgc28gb24uIDo6 DQogDQpAQCAtMjA4MSwxNCArMjA4MywxNSBAQCBjaGFuZ2VzLCBvciBsb29rIHRocm91Z2ggdGhl IFN1YnZlcnNpb24gbG9ncyBmb3IgYWxsIHRoZSBkZXRhaWxzLg0KIA0KICAgKEFsbCBjb250cmli dXRlZCBieSBSYXltb25kIEhldHRpbmdlci4pDQogDQotKiBUaGUgOm1vZDpgbG9nZ2luZ2AgbW9k dWxlJ3MgOmNsYXNzOmBGaWxlSGFuZGxlcmAgY2xhc3MNCi0gIGFuZCBpdHMgc3ViY2xhc3NlcyA6 Y2xhc3M6YFdhdGNoZWRGaWxlSGFuZGxlcmAsIDpjbGFzczpgUm90YXRpbmdGaWxlSGFuZGxlcmAs DQotICBhbmQgOmNsYXNzOmBUaW1lZFJvdGF0aW5nRmlsZUhhbmRsZXJgIG5vdw0KKyogVGhlIDpt b2Q6YGxvZ2dpbmdgIG1vZHVsZSdzIDpjbGFzczpgfmxvZ2dpbmcuRmlsZUhhbmRsZXJgIGNsYXNz DQorICBhbmQgaXRzIHN1YmNsYXNzZXMgOmNsYXNzOmB+bG9nZ2luZy5oYW5kbGVycy5XYXRjaGVk RmlsZUhhbmRsZXJgLA0KKyAgOmNsYXNzOmB+bG9nZ2luZy5oYW5kbGVycy5Sb3RhdGluZ0ZpbGVI YW5kbGVyYCwNCisgIGFuZCA6Y2xhc3M6YH5sb2dnaW5nLmhhbmRsZXJzLlRpbWVkUm90YXRpbmdG aWxlSGFuZGxlcmAgbm93DQogICBoYXZlIGFuIG9wdGlvbmFsICpkZWxheSogcGFyYW1ldGVyIHRv IHRoZWlyIGNvbnN0cnVjdG9ycy4gIElmICpkZWxheSoNCiAgIGlzIHRydWUsIG9wZW5pbmcgb2Yg dGhlIGxvZyBmaWxlIGlzIGRlZmVycmVkIHVudGlsIHRoZSBmaXJzdA0KLSAgOm1ldGg6YGVtaXRg IGNhbGwgaXMgbWFkZS4gIChDb250cmlidXRlZCBieSBWaW5heSBTYWppcC4pDQorICA6bWV0aDpg fmxvZ2dpbmcuRmlsZUhhbmRsZXIuZW1pdGAgY2FsbCBpcyBtYWRlLiAgKENvbnRyaWJ1dGVkIGJ5 IFZpbmF5IFNhamlwLikNCiANCi0gIDpjbGFzczpgVGltZWRSb3RhdGluZ0ZpbGVIYW5kbGVyYCBh bHNvIGhhcyBhICp1dGMqIGNvbnN0cnVjdG9yDQorICA6Y2xhc3M6YH5sb2dnaW5nLmhhbmRsZXJz LlRpbWVkUm90YXRpbmdGaWxlSGFuZGxlcmAgYWxzbyBoYXMgYSAqdXRjKiBjb25zdHJ1Y3Rvcg0K ICAgcGFyYW1ldGVyLiAgSWYgdGhlIGFyZ3VtZW50IGlzIHRydWUsIFVUQyB0aW1lIHdpbGwgYmUg dXNlZA0KICAgaW4gZGV0ZXJtaW5pbmcgd2hlbiBtaWRuaWdodCBvY2N1cnMgYW5kIGluIGdlbmVy YXRpbmcgZmlsZW5hbWVzOw0KICAgb3RoZXJ3aXNlIGxvY2FsIHRpbWUgd2lsbCBiZSB1c2VkLg0K QEAgLTIxMTcsOCArMjEyMCw4IEBAIGNoYW5nZXMsIG9yIGxvb2sgdGhyb3VnaCB0aGUgU3VidmVy c2lvbiBsb2dzIGZvciBhbGwgdGhlIGRldGFpbHMuDQogICAqIDpmdW5jOmB+bWF0aC5sb2cxcGAg cmV0dXJucyB0aGUgbmF0dXJhbCBsb2dhcml0aG0gb2YgKjEreCoNCiAgICAgKGJhc2UgKmUqKS4N CiANCi0gICogOmZ1bmM6YHRydW5jYCByb3VuZHMgYSBudW1iZXIgdG93YXJkIHplcm8sIHJldHVy bmluZyB0aGUgY2xvc2VzdA0KLSAgICA6Y2xhc3M6YEludGVncmFsYCB0aGF0J3MgYmV0d2VlbiB0 aGUgZnVuY3Rpb24ncyBhcmd1bWVudCBhbmQgemVyby4NCisgICogOmZ1bmM6YH5tYXRoLnRydW5j YCByb3VuZHMgYSBudW1iZXIgdG93YXJkIHplcm8sIHJldHVybmluZyB0aGUgY2xvc2VzdA0KKyAg ICA6Y2xhc3M6YH5udW1iZXJzLkludGVncmFsYCB0aGF0J3MgYmV0d2VlbiB0aGUgZnVuY3Rpb24n cyBhcmd1bWVudCBhbmQgemVyby4NCiAgICAgQWRkZWQgYXMgcGFydCBvZiB0aGUgYmFja3BvcnQg b2YNCiAgICAgYFBFUCAzMTQxJ3MgdHlwZSBoaWVyYXJjaHkgZm9yIG51bWJlcnMgPCNwZXAtMzE0 MT5gX18uDQogDQpAQCAtMjEzOCwxNCArMjE0MSwxNSBAQCBjaGFuZ2VzLCBvciBsb29rIHRocm91 Z2ggdGhlIFN1YnZlcnNpb24gbG9ncyBmb3IgYWxsIHRoZSBkZXRhaWxzLg0KIA0KICAgKENvbnRy aWJ1dGVkIGJ5IENocmlzdGlhbiBIZWltZXMgYW5kIE1hcmsgRGlja2luc29uLikNCiANCi0qIDpj bGFzczpgfm1tYXAubW1hcGAgb2JqZWN0cyBub3cgaGF2ZSBhIDptZXRoOmByZmluZGAgbWV0aG9k IHRoYXQgc2VhcmNoZXMgZm9yIGENCisqIDpjbGFzczpgfm1tYXAubW1hcGAgb2JqZWN0cyBub3cg aGF2ZSBhIDptZXRoOmB+bW1hcC5tbWFwLnJmaW5kYCBtZXRob2QgdGhhdA0KKyAgc2VhcmNoZXMg Zm9yIGENCiAgIHN1YnN0cmluZyBiZWdpbm5pbmcgYXQgdGhlIGVuZCBvZiB0aGUgc3RyaW5nIGFu ZCBzZWFyY2hpbmcNCi0gIGJhY2t3YXJkcy4gIFRoZSA6bWV0aDpgZmluZGAgbWV0aG9kIGFsc28g Z2FpbmVkIGFuICplbmQqIHBhcmFtZXRlcg0KKyAgYmFja3dhcmRzLiAgVGhlIDptZXRoOmB+bW1h cC5tbWFwLmZpbmRgIG1ldGhvZCBhbHNvIGdhaW5lZCBhbiAqZW5kKiBwYXJhbWV0ZXINCiAgIGdp dmluZyBhbiBpbmRleCBhdCB3aGljaCB0byBzdG9wIHNlYXJjaGluZy4NCiAgIChDb250cmlidXRl ZCBieSBKb2huIExlbnRvbi4pDQogDQogKiBUaGUgOm1vZDpgb3BlcmF0b3JgIG1vZHVsZSBnYWlu ZWQgYQ0KLSAgOmZ1bmM6YG1ldGhvZGNhbGxlcmAgZnVuY3Rpb24gdGhhdCB0YWtlcyBhIG5hbWUg YW5kIGFuIG9wdGlvbmFsDQorICA6ZnVuYzpgfm9wZXJhdG9yLm1ldGhvZGNhbGxlcmAgZnVuY3Rp b24gdGhhdCB0YWtlcyBhIG5hbWUgYW5kIGFuIG9wdGlvbmFsDQogICBzZXQgb2YgYXJndW1lbnRz LCByZXR1cm5pbmcgYSBjYWxsYWJsZSB0aGF0IHdpbGwgY2FsbA0KICAgdGhlIG5hbWVkIGZ1bmN0 aW9uIG9uIGFueSBhcmd1bWVudHMgcGFzc2VkIHRvIGl0LiAgRm9yIGV4YW1wbGU6Og0KIA0KQEAg LTIxNTYsNyArMjE2MCw3IEBAIGNoYW5nZXMsIG9yIGxvb2sgdGhyb3VnaCB0aGUgU3VidmVyc2lv biBsb2dzIGZvciBhbGwgdGhlIGRldGFpbHMuDQogDQogICAoQ29udHJpYnV0ZWQgYnkgR2Vvcmcg QnJhbmRsLCBhZnRlciBhIHN1Z2dlc3Rpb24gYnkgR3JlZ29yeSBQZXRyb3N5YW4uKQ0KIA0KLSAg VGhlIDpmdW5jOmBhdHRyZ2V0dGVyYCBmdW5jdGlvbiBub3cgYWNjZXB0cyBkb3R0ZWQgbmFtZXMg YW5kIHBlcmZvcm1zDQorICBUaGUgOmZ1bmM6YH5vcGVyYXRvci5hdHRyZ2V0dGVyYCBmdW5jdGlv biBub3cgYWNjZXB0cyBkb3R0ZWQgbmFtZXMgYW5kIHBlcmZvcm1zDQogICB0aGUgY29ycmVzcG9u ZGluZyBhdHRyaWJ1dGUgbG9va3Vwczo6DQogDQogICAgID4+PiBpbnN0X25hbWUgPSBvcGVyYXRv ci5hdHRyZ2V0dGVyKA0KQEAgLTIxNzQsMTIgKzIxNzgsMTIgQEAgY2hhbmdlcywgb3IgbG9vayB0 aHJvdWdoIHRoZSBTdWJ2ZXJzaW9uIGxvZ3MgZm9yIGFsbCB0aGUgZGV0YWlscy4NCiAgIHRoZSBt b2RlIG9mIGEgc3ltbGluay4gIChDb250cmlidXRlZCBieSBHZW9yZyBCcmFuZGwgYW5kIENocmlz dGlhbg0KICAgSGVpbWVzLikNCiANCi0gIDpmdW5jOmBjaGZsYWdzYCBhbmQgOmZ1bmM6YGxjaGZs YWdzYCBhcmUgd3JhcHBlcnMgZm9yIHRoZQ0KKyAgOmZ1bmM6YH5vcy5jaGZsYWdzYCBhbmQgOmZ1 bmM6YH5vcy5sY2hmbGFnc2AgYXJlIHdyYXBwZXJzIGZvciB0aGUNCiAgIGNvcnJlc3BvbmRpbmcg c3lzdGVtIGNhbGxzICh3aGVyZSB0aGV5J3JlIGF2YWlsYWJsZSksIGNoYW5naW5nIHRoZQ0KICAg ZmxhZ3Mgc2V0IG9uIGEgZmlsZS4gIENvbnN0YW50cyBmb3IgdGhlIGZsYWcgdmFsdWVzIGFyZSBk ZWZpbmVkIGluDQogICB0aGUgOm1vZDpgc3RhdGAgbW9kdWxlOyBzb21lIHBvc3NpYmxlIHZhbHVl cyBpbmNsdWRlDQotICA6Y29uc3Q6YFVGX0lNTVVUQUJMRWAgdG8gc2lnbmFsIHRoZSBmaWxlIG1h eSBub3QgYmUgY2hhbmdlZCBhbmQNCi0gIDpjb25zdDpgVUZfQVBQRU5EYCB0byBpbmRpY2F0ZSB0 aGF0IGRhdGEgY2FuIG9ubHkgYmUgYXBwZW5kZWQgdG8gdGhlDQorICA6Y29uc3Q6YH5zdGF0LlVG X0lNTVVUQUJMRWAgdG8gc2lnbmFsIHRoZSBmaWxlIG1heSBub3QgYmUgY2hhbmdlZCBhbmQNCisg IDpjb25zdDpgfnN0YXQuVUZfQVBQRU5EYCB0byBpbmRpY2F0ZSB0aGF0IGRhdGEgY2FuIG9ubHkg YmUgYXBwZW5kZWQgdG8gdGhlDQogICBmaWxlLiAgKENvbnRyaWJ1dGVkIGJ5IE0uIExldmluc29u LikNCiANCiAgIGBgb3MuY2xvc2VyYW5nZShsb3csIGhpZ2gpYGAgZWZmaWNpZW50bHkgY2xvc2Vz IGFsbCBmaWxlIGRlc2NyaXB0b3JzDQpAQCAtMjE4Nyw3ICsyMTkxLDcgQEAgY2hhbmdlcywgb3Ig bG9vayB0aHJvdWdoIHRoZSBTdWJ2ZXJzaW9uIGxvZ3MgZm9yIGFsbCB0aGUgZGV0YWlscy4NCiAg IFRoaXMgZnVuY3Rpb24gaXMgbm93IHVzZWQgYnkgdGhlIDptb2Q6YHN1YnByb2Nlc3NgIG1vZHVs ZSB0byBtYWtlIHN0YXJ0aW5nDQogICBwcm9jZXNzZXMgZmFzdGVyLiAgKENvbnRyaWJ1dGVkIGJ5 IEdlb3JnIEJyYW5kbDsgOmlzc3VlOmAxNjYzMzI5YC4pDQogDQotKiBUaGUgYGBvcy5lbnZpcm9u YGAgb2JqZWN0J3MgOm1ldGg6YGNsZWFyYCBtZXRob2Qgd2lsbCBub3cgdW5zZXQgdGhlDQorKiBU aGUgYGBvcy5lbnZpcm9uYGAgb2JqZWN0J3MgOm1ldGg6YCFjbGVhcmAgbWV0aG9kIHdpbGwgbm93 IHVuc2V0IHRoZQ0KICAgZW52aXJvbm1lbnQgdmFyaWFibGVzIHVzaW5nIDpmdW5jOmBvcy51bnNl dGVudmAgaW4gYWRkaXRpb24gdG8gY2xlYXJpbmcNCiAgIHRoZSBvYmplY3QncyBrZXlzLiAgKENv bnRyaWJ1dGVkIGJ5IE1hcnRpbiBIb3JjaWNrYTsgOmlzc3VlOmAxMTgxYC4pDQogDQpAQCAtMjE5 OCw3ICsyMjAyLDcgQEAgY2hhbmdlcywgb3IgbG9vayB0aHJvdWdoIHRoZSBTdWJ2ZXJzaW9uIGxv Z3MgZm9yIGFsbCB0aGUgZGV0YWlscy4NCiAgIGludG8gYW4gaW5maW5pdGUgcmVjdXJzaW9uIGlm IHRoZXJlJ3MgYSBzeW1saW5rIHRoYXQgcG9pbnRzIHRvIGENCiAgIHBhcmVudCBkaXJlY3Rvcnku ICAoOmlzc3VlOmAxMjczODI5YCkNCiANCi0qIEluIHRoZSA6bW9kOmBvcy5wYXRoYCBtb2R1bGUs IHRoZSA6ZnVuYzpgc3BsaXRleHRgIGZ1bmN0aW9uDQorKiBJbiB0aGUgOm1vZDpgb3MucGF0aGAg bW9kdWxlLCB0aGUgOmZ1bmM6YH5vcy5wYXRoLnNwbGl0ZXh0YCBmdW5jdGlvbg0KICAgaGFzIGJl ZW4gY2hhbmdlZCB0byBub3Qgc3BsaXQgb24gbGVhZGluZyBwZXJpb2QgY2hhcmFjdGVycy4NCiAg IFRoaXMgcHJvZHVjZXMgYmV0dGVyIHJlc3VsdHMgd2hlbiBvcGVyYXRpbmcgb24gVW5peCdzIGRv dC1maWxlcy4NCiAgIEZvciBleGFtcGxlLCBgYG9zLnBhdGguc3BsaXRleHQoJy5pcHl0aG9uJylg YA0KQEAgLTIyMjUsMTIgKzIyMjksMTIgQEAgY2hhbmdlcywgb3IgbG9vayB0aHJvdWdoIHRoZSBT dWJ2ZXJzaW9uIGxvZ3MgZm9yIGFsbCB0aGUgZGV0YWlscy4NCiAgIGlmIG5vIHRyYWNlYmFjayBp cyBzdXBwbGllZC4gICAoQ29udHJpYnV0ZWQgYnkgRmFjdW5kbyBCYXRpc3RhOw0KICAgOmlzc3Vl OmAxMTA2MzE2YC4pDQogDQotKiBUaGUgOm1vZDpgcGlja2xldG9vbHNgIG1vZHVsZSBub3cgaGFz IGFuIDpmdW5jOmBvcHRpbWl6ZWAgZnVuY3Rpb24NCisqIFRoZSA6bW9kOmBwaWNrbGV0b29sc2Ag bW9kdWxlIG5vdyBoYXMgYW4gOmZ1bmM6YH5waWNrbGV0b29scy5vcHRpbWl6ZWAgZnVuY3Rpb24N CiAgIHRoYXQgdGFrZXMgYSBzdHJpbmcgY29udGFpbmluZyBhIHBpY2tsZSBhbmQgcmVtb3ZlcyBz b21lIHVudXNlZA0KICAgb3Bjb2RlcywgcmV0dXJuaW5nIGEgc2hvcnRlciBwaWNrbGUgdGhhdCBj b250YWlucyB0aGUgc2FtZSBkYXRhIHN0cnVjdHVyZS4NCiAgIChDb250cmlidXRlZCBieSBSYXlt b25kIEhldHRpbmdlci4pDQogDQotKiBBIDpmdW5jOmBnZXRfZGF0YWAgZnVuY3Rpb24gd2FzIGFk ZGVkIHRvIHRoZSA6bW9kOmBwa2d1dGlsYA0KKyogQSA6ZnVuYzpgfnBrZ3V0aWwuZ2V0X2RhdGFg IGZ1bmN0aW9uIHdhcyBhZGRlZCB0byB0aGUgOm1vZDpgcGtndXRpbGANCiAgIG1vZHVsZSB0aGF0 IHJldHVybnMgdGhlIGNvbnRlbnRzIG9mIHJlc291cmNlIGZpbGVzIGluY2x1ZGVkDQogICB3aXRo IGFuIGluc3RhbGxlZCBQeXRob24gcGFja2FnZS4gIEZvciBleGFtcGxlOjoNCiANCkBAIC0yMjQ3 LDIyICsyMjUxLDIyIEBAIGNoYW5nZXMsIG9yIGxvb2sgdGhyb3VnaCB0aGUgU3VidmVyc2lvbiBs b2dzIGZvciBhbGwgdGhlIGRldGFpbHMuDQogDQogICAoQ29udHJpYnV0ZWQgYnkgUGF1bCBNb29y ZTsgOmlzc3VlOmAyNDM5YC4pDQogDQotKiBUaGUgOm1vZDpgcHlleHBhdGAgbW9kdWxlJ3MgOmNs YXNzOmBQYXJzZXJgIG9iamVjdHMgbm93IGFsbG93IHNldHRpbmcNCi0gIHRoZWlyIDphdHRyOmBi dWZmZXJfc2l6ZWAgYXR0cmlidXRlIHRvIGNoYW5nZSB0aGUgc2l6ZSBvZiB0aGUgYnVmZmVyDQor KiBUaGUgOm1vZDpgIXB5ZXhwYXRgIG1vZHVsZSdzIDpjbGFzczpgIVBhcnNlcmAgb2JqZWN0cyBu b3cgYWxsb3cgc2V0dGluZw0KKyAgdGhlaXIgOmF0dHI6YCFidWZmZXJfc2l6ZWAgYXR0cmlidXRl IHRvIGNoYW5nZSB0aGUgc2l6ZSBvZiB0aGUgYnVmZmVyDQogICB1c2VkIHRvIGhvbGQgY2hhcmFj dGVyIGRhdGEuDQogICAoQ29udHJpYnV0ZWQgYnkgQWNoaW0gR2FlZGtlOyA6aXNzdWU6YDExMzdg LikNCiANCi0qIFRoZSA6bW9kOmBRdWV1ZWAgbW9kdWxlIG5vdyBwcm92aWRlcyBxdWV1ZSB2YXJp YW50cyB0aGF0IHJldHJpZXZlIGVudHJpZXMNCi0gIGluIGRpZmZlcmVudCBvcmRlcnMuICBUaGUg OmNsYXNzOmBQcmlvcml0eVF1ZXVlYCBjbGFzcyBzdG9yZXMNCisqIFRoZSA6bW9kOmBxdWV1ZWAg bW9kdWxlIG5vdyBwcm92aWRlcyBxdWV1ZSB2YXJpYW50cyB0aGF0IHJldHJpZXZlIGVudHJpZXMN CisgIGluIGRpZmZlcmVudCBvcmRlcnMuICBUaGUgOmNsYXNzOmB+cXVldWUuUHJpb3JpdHlRdWV1 ZWAgY2xhc3Mgc3RvcmVzDQogICBxdWV1ZWQgaXRlbXMgaW4gYSBoZWFwIGFuZCByZXRyaWV2ZXMg dGhlbSBpbiBwcmlvcml0eSBvcmRlciwNCi0gIGFuZCA6Y2xhc3M6YExpZm9RdWV1ZWAgcmV0cmll dmVzIHRoZSBtb3N0IHJlY2VudGx5IGFkZGVkIGVudHJpZXMgZmlyc3QsDQorICBhbmQgOmNsYXNz OmB+cXVldWUuTGlmb1F1ZXVlYCByZXRyaWV2ZXMgdGhlIG1vc3QgcmVjZW50bHkgYWRkZWQgZW50 cmllcyBmaXJzdCwNCiAgIG1lYW5pbmcgdGhhdCBpdCBiZWhhdmVzIGxpa2UgYSBzdGFjay4NCiAg IChDb250cmlidXRlZCBieSBSYXltb25kIEhldHRpbmdlci4pDQogDQotKiBUaGUgOm1vZDpgcmFu ZG9tYCBtb2R1bGUncyA6Y2xhc3M6YFJhbmRvbWAgb2JqZWN0cyBjYW4NCisqIFRoZSA6bW9kOmBy YW5kb21gIG1vZHVsZSdzIDpjbGFzczpgfnJhbmRvbS5SYW5kb21gIG9iamVjdHMgY2FuDQogICBu b3cgYmUgcGlja2xlZCBvbiBhIDMyLWJpdCBzeXN0ZW0gYW5kIHVucGlja2xlZCBvbiBhIDY0LWJp dA0KICAgc3lzdGVtLCBhbmQgdmljZSB2ZXJzYS4gIFVuZm9ydHVuYXRlbHksIHRoaXMgY2hhbmdl IGFsc28gbWVhbnMNCi0gIHRoYXQgUHl0aG9uIDIuNidzIDpjbGFzczpgUmFuZG9tYCBvYmplY3Rz IGNhbid0IGJlIHVucGlja2xlZCBjb3JyZWN0bHkNCisgIHRoYXQgUHl0aG9uIDIuNidzIDpjbGFz czpgfnJhbmRvbS5SYW5kb21gIG9iamVjdHMgY2FuJ3QgYmUgdW5waWNrbGVkIGNvcnJlY3RseQ0K ICAgb24gZWFybGllciB2ZXJzaW9ucyBvZiBQeXRob24uDQogICAoQ29udHJpYnV0ZWQgYnkgU2hh d24gTGlnb2NraTsgOmlzc3VlOmAxNzI3NzgwYC4pDQogDQpAQCAtMjI4NSwxMSArMjI4OSwxMSBA QCBjaGFuZ2VzLCBvciBsb29rIHRocm91Z2ggdGhlIFN1YnZlcnNpb24gbG9ncyBmb3IgYWxsIHRo ZSBkZXRhaWxzLg0KICAgKENvbnRyaWJ1dGVkIGJ5IEd1aWRvIHZhbiBSb3NzdW0gZnJvbSB3b3Jr IGZvciBHb29nbGUgQXBwIEVuZ2luZTsNCiAgIDppc3N1ZTpgMzQ4N2AuKQ0KIA0KLSogVGhlIDpt b2Q6YHJsY29tcGxldGVyYCBtb2R1bGUncyA6bWV0aDpgQ29tcGxldGVyLmNvbXBsZXRlYCBtZXRo b2QNCisqIFRoZSA6bW9kOmBybGNvbXBsZXRlcmAgbW9kdWxlJ3MgOm1ldGg6YH5ybGNvbXBsZXRl ci5Db21wbGV0ZXIuY29tcGxldGVgIG1ldGhvZA0KICAgd2lsbCBub3cgaWdub3JlIGV4Y2VwdGlv bnMgdHJpZ2dlcmVkIHdoaWxlIGV2YWx1YXRpbmcgYSBuYW1lLg0KICAgKEZpeGVkIGJ5IExvcmVu eiBRdWFjazsgOmlzc3VlOmAyMjUwYC4pDQogDQotKiBUaGUgOm1vZDpgc2NoZWRgIG1vZHVsZSdz IDpjbGFzczpgc2NoZWR1bGVyYCBpbnN0YW5jZXMgbm93DQorKiBUaGUgOm1vZDpgc2NoZWRgIG1v ZHVsZSdzIDpjbGFzczpgfnNjaGVkLnNjaGVkdWxlcmAgaW5zdGFuY2VzIG5vdw0KICAgaGF2ZSBh IHJlYWQtb25seSA6YXR0cjpgcXVldWVgIGF0dHJpYnV0ZSB0aGF0IHJldHVybnMgdGhlDQogICBj b250ZW50cyBvZiB0aGUgc2NoZWR1bGVyJ3MgcXVldWUsIHJlcHJlc2VudGVkIGFzIGEgbGlzdCBv Zg0KICAgbmFtZWQgdHVwbGVzIHdpdGggdGhlIGZpZWxkcyBgYCh0aW1lLCBwcmlvcml0eSwgYWN0 aW9uLCBhcmd1bWVudClgYC4NCkBAIC0yMjk3LDcgKzIzMDEsNyBAQCBjaGFuZ2VzLCBvciBsb29r IHRocm91Z2ggdGhlIFN1YnZlcnNpb24gbG9ncyBmb3IgYWxsIHRoZSBkZXRhaWxzLg0KIA0KICog VGhlIDptb2Q6YHNlbGVjdGAgbW9kdWxlIG5vdyBoYXMgd3JhcHBlciBmdW5jdGlvbnMNCiAgIGZv ciB0aGUgTGludXggOmM6ZnVuYzpgIWVwb2xsYCBhbmQgQlNEIDpjOmZ1bmM6YCFrcXVldWVgIHN5 c3RlbSBjYWxscy4NCi0gIDptZXRoOmBtb2RpZnlgIG1ldGhvZCB3YXMgYWRkZWQgdG8gdGhlIGV4 aXN0aW5nIDpjbGFzczpgcG9sbGANCisgIDptZXRoOmB+c2VsZWN0LnBvbGwubW9kaWZ5YCBtZXRo b2Qgd2FzIGFkZGVkIHRvIHRoZSBleGlzdGluZyBgYHBvbGxgYA0KICAgb2JqZWN0czsgYGBwb2xs b2JqLm1vZGlmeShmZCwgZXZlbnRtYXNrKWBgIHRha2VzIGEgZmlsZSBkZXNjcmlwdG9yDQogICBv ciBmaWxlIG9iamVjdCBhbmQgYW4gZXZlbnQgbWFzaywgbW9kaWZ5aW5nIHRoZSByZWNvcmRlZCBl dmVudCBtYXNrDQogICBmb3IgdGhhdCBmaWxlLg0KQEAgLTIzMDgsOCArMjMxMiw4IEBAIGNoYW5n ZXMsIG9yIGxvb2sgdGhyb3VnaCB0aGUgU3VidmVyc2lvbiBsb2dzIGZvciBhbGwgdGhlIGRldGFp bHMuDQogICBhbmQgYSBsaXN0IG9mIHRoZSBkaXJlY3RvcnkncyBjb250ZW50cywgYW5kIHJldHVy bnMgYSBsaXN0IG9mIG5hbWVzIHRoYXQNCiAgIHdpbGwgYmUgaWdub3JlZCwgbm90IGNvcGllZC4N CiANCi0gIFRoZSA6bW9kOmBzaHV0aWxgIG1vZHVsZSBhbHNvIHByb3ZpZGVzIGFuIDpmdW5jOmBp Z25vcmVfcGF0dGVybnNgDQotICBmdW5jdGlvbiBmb3IgdXNlIHdpdGggdGhpcyBuZXcgcGFyYW1l dGVyLiAgOmZ1bmM6YGlnbm9yZV9wYXR0ZXJuc2ANCisgIFRoZSA6bW9kOmBzaHV0aWxgIG1vZHVs ZSBhbHNvIHByb3ZpZGVzIGFuIDpmdW5jOmB+c2h1dGlsLmlnbm9yZV9wYXR0ZXJuc2ANCisgIGZ1 bmN0aW9uIGZvciB1c2Ugd2l0aCB0aGlzIG5ldyBwYXJhbWV0ZXIuICA6ZnVuYzpgfnNodXRpbC5p Z25vcmVfcGF0dGVybnNgDQogICB0YWtlcyBhbiBhcmJpdHJhcnkgbnVtYmVyIG9mIGdsb2Itc3R5 bGUgcGF0dGVybnMgYW5kIHJldHVybnMgYQ0KICAgY2FsbGFibGUgdGhhdCB3aWxsIGlnbm9yZSBh bnkgZmlsZXMgYW5kIGRpcmVjdG9yaWVzIHRoYXQgbWF0Y2ggYW55DQogICBvZiB0aGVzZSBwYXR0 ZXJucy4gIFRoZSBmb2xsb3dpbmcgZXhhbXBsZSBjb3BpZXMgYSBkaXJlY3RvcnkgdHJlZSwNCkBA IC0yMzMzLDcgKzIzMzcsNyBAQCBjaGFuZ2VzLCBvciBsb29rIHRocm91Z2ggdGhlIFN1YnZlcnNp b24gbG9ncyBmb3IgYWxsIHRoZSBkZXRhaWxzLg0KIA0KICAgRXZlbnQgbG9vcHMgd2lsbCB1c2Ug dGhpcyBieSBvcGVuaW5nIGEgcGlwZSB0byBjcmVhdGUgdHdvIGRlc2NyaXB0b3JzLA0KICAgb25l IGZvciByZWFkaW5nIGFuZCBvbmUgZm9yIHdyaXRpbmcuICBUaGUgd3JpdGFibGUgZGVzY3JpcHRv cg0KLSAgd2lsbCBiZSBwYXNzZWQgdG8gOmZ1bmM6YHNldF93YWtldXBfZmRgLCBhbmQgdGhlIHJl YWRhYmxlIGRlc2NyaXB0b3INCisgIHdpbGwgYmUgcGFzc2VkIHRvIDpmdW5jOmB+c2lnbmFsLnNl dF93YWtldXBfZmRgLCBhbmQgdGhlIHJlYWRhYmxlIGRlc2NyaXB0b3INCiAgIHdpbGwgYmUgYWRk ZWQgdG8gdGhlIGxpc3Qgb2YgZGVzY3JpcHRvcnMgbW9uaXRvcmVkIGJ5IHRoZSBldmVudCBsb29w IHZpYQ0KICAgOmM6ZnVuYzpgIXNlbGVjdGAgb3IgOmM6ZnVuYzpgIXBvbGxgLg0KICAgT24gcmVj ZWl2aW5nIGEgc2lnbmFsLCBhIGJ5dGUgd2lsbCBiZSB3cml0dGVuIGFuZCB0aGUgbWFpbiBldmVu dCBsb29wDQpAQCAtMjM0MSwyMCArMjM0NSwyMCBAQCBjaGFuZ2VzLCBvciBsb29rIHRocm91Z2gg dGhlIFN1YnZlcnNpb24gbG9ncyBmb3IgYWxsIHRoZSBkZXRhaWxzLg0KIA0KICAgKENvbnRyaWJ1 dGVkIGJ5IEFkYW0gT2xzZW47IDppc3N1ZTpgMTU4M2AuKQ0KIA0KLSAgVGhlIDpmdW5jOmBzaWdp bnRlcnJ1cHRgIGZ1bmN0aW9uIGlzIG5vdyBhdmFpbGFibGUgZnJvbSBQeXRob24gY29kZSwNCisg IFRoZSA6ZnVuYzpgfnNpZ25hbC5zaWdpbnRlcnJ1cHRgIGZ1bmN0aW9uIGlzIG5vdyBhdmFpbGFi bGUgZnJvbSBQeXRob24gY29kZSwNCiAgIGFuZCBhbGxvd3MgY2hhbmdpbmcgd2hldGhlciBzaWdu YWxzIGNhbiBpbnRlcnJ1cHQgc3lzdGVtIGNhbGxzIG9yIG5vdC4NCiAgIChDb250cmlidXRlZCBi eSBSYWxmIFNjaG1pdHQuKQ0KIA0KLSAgVGhlIDpmdW5jOmBzZXRpdGltZXJgIGFuZCA6ZnVuYzpg Z2V0aXRpbWVyYCBmdW5jdGlvbnMgaGF2ZSBhbHNvIGJlZW4NCi0gIGFkZGVkICh3aGVyZSB0aGV5 J3JlIGF2YWlsYWJsZSkuICA6ZnVuYzpgc2V0aXRpbWVyYA0KKyAgVGhlIDpmdW5jOmB+c2lnbmFs LnNldGl0aW1lcmAgYW5kIDpmdW5jOmB+c2lnbmFsLmdldGl0aW1lcmAgZnVuY3Rpb25zIGhhdmUg YWxzbyBiZWVuDQorICBhZGRlZCAod2hlcmUgdGhleSdyZSBhdmFpbGFibGUpLiAgOmZ1bmM6YH5z aWduYWwuc2V0aXRpbWVyYA0KICAgYWxsb3dzIHNldHRpbmcgaW50ZXJ2YWwgdGltZXJzIHRoYXQg d2lsbCBjYXVzZSBhIHNpZ25hbCB0byBiZQ0KICAgZGVsaXZlcmVkIHRvIHRoZSBwcm9jZXNzIGFm dGVyIGEgc3BlY2lmaWVkIHRpbWUsIG1lYXN1cmVkIGluDQogICB3YWxsLWNsb2NrIHRpbWUsIGNv bnN1bWVkIHByb2Nlc3MgdGltZSwgb3IgY29tYmluZWQgcHJvY2VzcytzeXN0ZW0NCiAgIHRpbWUu ICAoQ29udHJpYnV0ZWQgYnkgR3VpbGhlcm1lIFBvbG87IDppc3N1ZTpgMjI0MGAuKQ0KIA0KICog VGhlIDptb2Q6YHNtdHBsaWJgIG1vZHVsZSBub3cgc3VwcG9ydHMgU01UUCBvdmVyIFNTTCB0aGFu a3MgdG8gdGhlDQotICBhZGRpdGlvbiBvZiB0aGUgOmNsYXNzOmBTTVRQX1NTTGAgY2xhc3MuIFRo aXMgY2xhc3Mgc3VwcG9ydHMgYW4NCi0gIGludGVyZmFjZSBpZGVudGljYWwgdG8gdGhlIGV4aXN0 aW5nIDpjbGFzczpgU01UUGAgY2xhc3MuDQorICBhZGRpdGlvbiBvZiB0aGUgOmNsYXNzOmB+c210 cGxpYi5TTVRQX1NTTGAgY2xhc3MuIFRoaXMgY2xhc3Mgc3VwcG9ydHMgYW4NCisgIGludGVyZmFj ZSBpZGVudGljYWwgdG8gdGhlIGV4aXN0aW5nIDpjbGFzczpgfnNtdHBsaWIuU01UUGAgY2xhc3Mu DQogICAoQ29udHJpYnV0ZWQgYnkgTW9udHkgVGF5bG9yLikgIEJvdGggY2xhc3MgY29uc3RydWN0 b3JzIGFsc28gaGF2ZSBhbg0KICAgb3B0aW9uYWwgYGB0aW1lb3V0YGAgcGFyYW1ldGVyIHRoYXQg c3BlY2lmaWVzIGEgdGltZW91dCBmb3IgdGhlDQogICBpbml0aWFsIGNvbm5lY3Rpb24gYXR0ZW1w dCwgbWVhc3VyZWQgaW4gc2Vjb25kcy4gIChDb250cmlidXRlZCBieQ0KQEAgLTIzNjUsNyArMjM2 OSw3IEBAIGNoYW5nZXMsIG9yIGxvb2sgdGhyb3VnaCB0aGUgU3VidmVyc2lvbiBsb2dzIGZvciBh bGwgdGhlIGRldGFpbHMuDQogICBlLW1haWwgYmV0d2VlbiBhZ2VudHMgdGhhdCBkb24ndCBtYW5h Z2UgYSBtYWlsIHF1ZXVlLiAgKExNVFANCiAgIGltcGxlbWVudGVkIGJ5IExlaWYgSGVkc3Ryb207 IDppc3N1ZTpgOTU3MDAzYC4pDQogDQotICA6bWV0aDpgU01UUC5zdGFydHRsc2Agbm93IGNvbXBs aWVzIHdpdGggOnJmYzpgMzIwN2AgYW5kIGZvcmdldHMgYW55DQorICA6bWV0aDpgc210cGxpYi5T TVRQLnN0YXJ0dGxzYCBub3cgY29tcGxpZXMgd2l0aCA6cmZjOmAzMjA3YCBhbmQgZm9yZ2V0cyBh bnkNCiAgIGtub3dsZWRnZSBvYnRhaW5lZCBmcm9tIHRoZSBzZXJ2ZXIgbm90IG9idGFpbmVkIGZy b20gdGhlIFRMUw0KICAgbmVnb3RpYXRpb24gaXRzZWxmLiAgKFBhdGNoIGNvbnRyaWJ1dGVkIGJ5 IEJpbGwgRmVubmVyOw0KICAgOmlzc3VlOmA4Mjk5NTFgLikNCkBAIC0yMzc1LDExICsyMzc5LDEx IEBAIGNoYW5nZXMsIG9yIGxvb2sgdGhyb3VnaCB0aGUgU3VidmVyc2lvbiBsb2dzIGZvciBhbGwg dGhlIGRldGFpbHMuDQogICBlbnZpcm9ubWVudHMuICBUSVBDIGFkZHJlc3NlcyBhcmUgNC0gb3Ig NS10dXBsZXMuDQogICAoQ29udHJpYnV0ZWQgYnkgQWxiZXJ0byBCZXJ0b2dsaTsgOmlzc3VlOmAx NjQ2YC4pDQogDQotICBBIG5ldyBmdW5jdGlvbiwgOmZ1bmM6YGNyZWF0ZV9jb25uZWN0aW9uYCwg dGFrZXMgYW4gYWRkcmVzcyBhbmQNCisgIEEgbmV3IGZ1bmN0aW9uLCA6ZnVuYzpgfnNvY2tldC5j cmVhdGVfY29ubmVjdGlvbmAsIHRha2VzIGFuIGFkZHJlc3MgYW5kDQogICBjb25uZWN0cyB0byBp dCB1c2luZyBhbiBvcHRpb25hbCB0aW1lb3V0IHZhbHVlLCByZXR1cm5pbmcgdGhlDQogICBjb25u ZWN0ZWQgc29ja2V0IG9iamVjdC4gIFRoaXMgZnVuY3Rpb24gYWxzbyBsb29rcyB1cCB0aGUgYWRk cmVzcydzDQogICB0eXBlIGFuZCBjb25uZWN0cyB0byBpdCB1c2luZyBJUHY0IG9yIElQdjYgYXMg YXBwcm9wcmlhdGUuICBDaGFuZ2luZw0KLSAgeW91ciBjb2RlIHRvIHVzZSA6ZnVuYzpgY3JlYXRl X2Nvbm5lY3Rpb25gIGluc3RlYWQgb2YNCisgIHlvdXIgY29kZSB0byB1c2UgOmZ1bmM6YH5zb2Nr ZXQuY3JlYXRlX2Nvbm5lY3Rpb25gIGluc3RlYWQgb2YNCiAgIGBgc29ja2V0KHNvY2tldC5BRl9J TkVULCAuLi4pYGAgbWF5IGJlIGFsbCB0aGF0J3MgcmVxdWlyZWQgdG8gbWFrZQ0KICAgeW91ciBj b2RlIHdvcmsgd2l0aCBJUHY2Lg0KIA0KQEAgLTI0MDcsMTUgKzI0MTEsMTUgQEAgY2hhbmdlcywg b3IgbG9vayB0aHJvdWdoIHRoZSBTdWJ2ZXJzaW9uIGxvZ3MgZm9yIGFsbCB0aGUgZGV0YWlscy4N CiAgIDpjOmZ1bmM6YCFUZXJtaW5hdGVQcm9jZXNzYC4NCiAgIChDb250cmlidXRlZCBieSBDaHJp c3RpYW4gSGVpbWVzLikNCiANCi0qIEEgbmV3IHZhcmlhYmxlIGluIHRoZSA6bW9kOmBzeXNgIG1v ZHVsZSwgOmF0dHI6YGZsb2F0X2luZm9gLCBpcyBhbg0KKyogQSBuZXcgdmFyaWFibGUgaW4gdGhl IDptb2Q6YHN5c2AgbW9kdWxlLCA6ZGF0YTpgfnN5cy5mbG9hdF9pbmZvYCwgaXMgYW4NCiAgIG9i amVjdCBjb250YWluaW5nIGluZm9ybWF0aW9uIGRlcml2ZWQgZnJvbSB0aGUgOmZpbGU6YGZsb2F0 LmhgIGZpbGUNCiAgIGFib3V0IHRoZSBwbGF0Zm9ybSdzIGZsb2F0aW5nLXBvaW50IHN1cHBvcnQu ICBBdHRyaWJ1dGVzIG9mIHRoaXMNCi0gIG9iamVjdCBpbmNsdWRlIDphdHRyOmBtYW50X2RpZ2Ag KG51bWJlciBvZiBkaWdpdHMgaW4gdGhlIG1hbnRpc3NhKSwNCi0gIDphdHRyOmBlcHNpbG9uYCAo c21hbGxlc3QgZGlmZmVyZW5jZSBiZXR3ZWVuIDEuMCBhbmQgdGhlIG5leHQNCisgIG9iamVjdCBp bmNsdWRlIDphdHRyOmB+c3lzLmZsb2F0X2luZm8ubWFudF9kaWdgIChudW1iZXIgb2YgZGlnaXRz IGluIHRoZSBtYW50aXNzYSksDQorICA6YXR0cjpgfnN5cy5mbG9hdF9pbmZvLmVwc2lsb25gIChz bWFsbGVzdCBkaWZmZXJlbmNlIGJldHdlZW4gMS4wIGFuZCB0aGUgbmV4dA0KICAgbGFyZ2VzdCB2 YWx1ZSByZXByZXNlbnRhYmxlKSwgYW5kIHNldmVyYWwgb3RoZXJzLiAgKENvbnRyaWJ1dGVkIGJ5 DQogICBDaHJpc3RpYW4gSGVpbWVzOyA6aXNzdWU6YDE1MzRgLikNCiANCi0gIEFub3RoZXIgbmV3 IHZhcmlhYmxlLCA6YXR0cjpgZG9udF93cml0ZV9ieXRlY29kZWAsIGNvbnRyb2xzIHdoZXRoZXIg UHl0aG9uDQorICBBbm90aGVyIG5ldyB2YXJpYWJsZSwgOmRhdGE6YH5zeXMuZG9udF93cml0ZV9i eXRlY29kZWAsIGNvbnRyb2xzIHdoZXRoZXIgUHl0aG9uDQogICB3cml0ZXMgYW55IDpmaWxlOmAu cHljYCBvciA6ZmlsZTpgLnB5b2AgZmlsZXMgb24gaW1wb3J0aW5nIGEgbW9kdWxlLg0KICAgSWYg dGhpcyB2YXJpYWJsZSBpcyB0cnVlLCB0aGUgY29tcGlsZWQgZmlsZXMgYXJlIG5vdCB3cml0dGVu LiAgVGhlDQogICB2YXJpYWJsZSBpcyBpbml0aWFsbHkgc2V0IG9uIHN0YXJ0LXVwIGJ5IHN1cHBs eWluZyB0aGUgOm9wdGlvbjpgLUJgDQpAQCAtMjQyOCwxNiArMjQzMiwxNiBAQCBjaGFuZ2VzLCBv ciBsb29rIHRocm91Z2ggdGhlIFN1YnZlcnNpb24gbG9ncyBmb3IgYWxsIHRoZSBkZXRhaWxzLg0K IA0KICAgSW5mb3JtYXRpb24gYWJvdXQgdGhlIGNvbW1hbmQtbGluZSBhcmd1bWVudHMgc3VwcGxp ZWQgdG8gdGhlIFB5dGhvbg0KICAgaW50ZXJwcmV0ZXIgaXMgYXZhaWxhYmxlIGJ5IHJlYWRpbmcg YXR0cmlidXRlcyBvZiBhIG5hbWVkDQotICB0dXBsZSBhdmFpbGFibGUgYXMgYGBzeXMuZmxhZ3Ng YC4gIEZvciBleGFtcGxlLCB0aGUgOmF0dHI6YHZlcmJvc2VgDQorICB0dXBsZSBhdmFpbGFibGUg YXMgYGBzeXMuZmxhZ3NgYC4gIEZvciBleGFtcGxlLCB0aGUgOmF0dHI6YH5zeXMuZmxhZ3MudmVy Ym9zZWANCiAgIGF0dHJpYnV0ZSBpcyB0cnVlIGlmIFB5dGhvbg0KLSAgd2FzIGV4ZWN1dGVkIGlu IHZlcmJvc2UgbW9kZSwgOmF0dHI6YGRlYnVnYCBpcyB0cnVlIGluIGRlYnVnZ2luZyBtb2RlLCBl dGMuDQorICB3YXMgZXhlY3V0ZWQgaW4gdmVyYm9zZSBtb2RlLCA6YXR0cjpgfnN5cy5mbGFncy5k ZWJ1Z2AgaXMgdHJ1ZSBpbiBkZWJ1Z2dpbmcgbW9kZSwgZXRjLg0KICAgVGhlc2UgYXR0cmlidXRl cyBhcmUgYWxsIHJlYWQtb25seS4NCiAgIChDb250cmlidXRlZCBieSBDaHJpc3RpYW4gSGVpbWVz LikNCiANCi0gIEEgbmV3IGZ1bmN0aW9uLCA6ZnVuYzpgZ2V0c2l6ZW9mYCwgdGFrZXMgYSBQeXRo b24gb2JqZWN0IGFuZCByZXR1cm5zDQorICBBIG5ldyBmdW5jdGlvbiwgOmZ1bmM6YH5zeXMuZ2V0 c2l6ZW9mYCwgdGFrZXMgYSBQeXRob24gb2JqZWN0IGFuZCByZXR1cm5zDQogICB0aGUgYW1vdW50 IG9mIG1lbW9yeSB1c2VkIGJ5IHRoZSBvYmplY3QsIG1lYXN1cmVkIGluIGJ5dGVzLiAgQnVpbHQt aW4NCiAgIG9iamVjdHMgcmV0dXJuIGNvcnJlY3QgcmVzdWx0czsgdGhpcmQtcGFydHkgZXh0ZW5z aW9ucyBtYXkgbm90LA0KLSAgYnV0IGNhbiBkZWZpbmUgYSA6bWV0aDpgX19zaXplb2ZfX2AgbWV0 aG9kIHRvIHJldHVybiB0aGUNCisgIGJ1dCBjYW4gZGVmaW5lIGEgOm1ldGg6YCFfX3NpemVvZl9f YCBtZXRob2QgdG8gcmV0dXJuIHRoZQ0KICAgb2JqZWN0J3Mgc2l6ZS4NCiAgIChDb250cmlidXRl ZCBieSBSb2JlcnQgU2NodXBwZW5pZXM7IDppc3N1ZTpgMjg5OGAuKQ0KIA0KQEAgLTI0NjEsMTIg KzI0NjUsMTIgQEAgY2hhbmdlcywgb3IgbG9vayB0aHJvdWdoIHRoZSBTdWJ2ZXJzaW9uIGxvZ3Mg Zm9yIGFsbCB0aGUgZGV0YWlscy4NCiAgIHRoZWlyIFVURi04IHJlcHJlc2VudGF0aW9uLiAgKENo YXJhY3RlciBjb252ZXJzaW9ucyBvY2N1ciBiZWNhdXNlIHRoZQ0KICAgUEFYIGZvcm1hdCBzdXBw b3J0cyBVbmljb2RlIGZpbGVuYW1lcywgZGVmYXVsdGluZyB0byBVVEYtOCBlbmNvZGluZy4pDQog DQotICBUaGUgOm1ldGg6YFRhckZpbGUuYWRkYCBtZXRob2Qgbm93IGFjY2VwdHMgYW4gYGBleGNs dWRlYGAgYXJndW1lbnQgdGhhdCdzDQorICBUaGUgOm1ldGg6YHRhcmZpbGUuVGFyRmlsZS5hZGRg IG1ldGhvZCBub3cgYWNjZXB0cyBhbiBgYGV4Y2x1ZGVgYCBhcmd1bWVudCB0aGF0J3MNCiAgIGEg ZnVuY3Rpb24gdGhhdCBjYW4gYmUgdXNlZCB0byBleGNsdWRlIGNlcnRhaW4gZmlsZW5hbWVzIGZy b20NCiAgIGFuIGFyY2hpdmUuDQogICBUaGUgZnVuY3Rpb24gbXVzdCB0YWtlIGEgZmlsZW5hbWUg YW5kIHJldHVybiB0cnVlIGlmIHRoZSBmaWxlDQogICBzaG91bGQgYmUgZXhjbHVkZWQgb3IgZmFs c2UgaWYgaXQgc2hvdWxkIGJlIGFyY2hpdmVkLg0KLSAgVGhlIGZ1bmN0aW9uIGlzIGFwcGxpZWQg dG8gYm90aCB0aGUgbmFtZSBpbml0aWFsbHkgcGFzc2VkIHRvIDptZXRoOmBhZGRgDQorICBUaGUg ZnVuY3Rpb24gaXMgYXBwbGllZCB0byBib3RoIHRoZSBuYW1lIGluaXRpYWxseSBwYXNzZWQgdG8g Om1ldGg6YH50YXJmaWxlLlRhckZpbGUuYWRkYA0KICAgYW5kIHRvIHRoZSBuYW1lcyBvZiBmaWxl cyBpbiByZWN1cnNpdmVseSBhZGRlZCBkaXJlY3Rvcmllcy4NCiANCiAgIChBbGwgY2hhbmdlcyBj b250cmlidXRlZCBieSBMYXJzIEd1c3TDpGJlbCkuDQpAQCAtMjQ4MCwxMiArMjQ4NCwxMyBAQCBj aGFuZ2VzLCBvciBsb29rIHRocm91Z2ggdGhlIFN1YnZlcnNpb24gbG9ncyBmb3IgYWxsIHRoZSBk ZXRhaWxzLg0KICAgYmVoYXZpb3VyIGNhbiBub3cgYmUgY2hhbmdlZCBieSBwYXNzaW5nIGBgZGVs ZXRlPUZhbHNlYGAgdG8gdGhlDQogICBjb25zdHJ1Y3Rvci4gIChDb250cmlidXRlZCBieSBEYW1p ZW4gTWlsbGVyOyA6aXNzdWU6YDE1Mzc4NTBgLikNCiANCi0gIEEgbmV3IGNsYXNzLCA6Y2xhc3M6 YFNwb29sZWRUZW1wb3JhcnlGaWxlYCwgYmVoYXZlcyBsaWtlDQorICBBIG5ldyBjbGFzcywgOmNs YXNzOmB+dGVtcGZpbGUuU3Bvb2xlZFRlbXBvcmFyeUZpbGVgLCBiZWhhdmVzIGxpa2UNCiAgIGEg dGVtcG9yYXJ5IGZpbGUgYnV0IHN0b3JlcyBpdHMgZGF0YSBpbiBtZW1vcnkgdW50aWwgYSBtYXhp bXVtIHNpemUgaXMNCiAgIGV4Y2VlZGVkLiAgT24gcmVhY2hpbmcgdGhhdCBsaW1pdCwgdGhlIGNv bnRlbnRzIHdpbGwgYmUgd3JpdHRlbiB0bw0KICAgYW4gb24tZGlzayB0ZW1wb3JhcnkgZmlsZS4g IChDb250cmlidXRlZCBieSBEdXN0aW4gSi4gTWl0Y2hlbGwuKQ0KIA0KLSAgVGhlIDpjbGFzczpg TmFtZWRUZW1wb3JhcnlGaWxlYCBhbmQgOmNsYXNzOmBTcG9vbGVkVGVtcG9yYXJ5RmlsZWAgY2xh c3Nlcw0KKyAgVGhlIDpjbGFzczpgfnRlbXBmaWxlLk5hbWVkVGVtcG9yYXJ5RmlsZWAgYW5kDQor ICA6Y2xhc3M6YH50ZW1wZmlsZS5TcG9vbGVkVGVtcG9yYXJ5RmlsZWAgY2xhc3Nlcw0KICAgYm90 aCB3b3JrIGFzIGNvbnRleHQgbWFuYWdlcnMsIHNvIHlvdSBjYW4gd3JpdGUNCiAgIGBgd2l0aCB0 ZW1wZmlsZS5OYW1lZFRlbXBvcmFyeUZpbGUoKSBhcyB0bXA6IC4uLmBgLg0KICAgKENvbnRyaWJ1 dGVkIGJ5IEFsZXhhbmRlciBCZWxvcG9sc2t5OyA6aXNzdWU6YDIwMjFgLikNCkBAIC0yNDk2LDcg KzI1MDEsNyBAQCBjaGFuZ2VzLCBvciBsb29rIHRocm91Z2ggdGhlIFN1YnZlcnNpb24gbG9ncyBm b3IgYWxsIHRoZSBkZXRhaWxzLg0KICAgY29udGV4dCBtYW5hZ2VyIHRoYXQgdGVtcG9yYXJpbHkg Y2hhbmdlcyBlbnZpcm9ubWVudCB2YXJpYWJsZXMgYW5kDQogICBhdXRvbWF0aWNhbGx5IHJlc3Rv cmVzIHRoZW0gdG8gdGhlaXIgb2xkIHZhbHVlcy4NCiANCi0gIEFub3RoZXIgY29udGV4dCBtYW5h Z2VyLCA6Y2xhc3M6YFRyYW5zaWVudFJlc291cmNlYCwgY2FuIHN1cnJvdW5kIGNhbGxzDQorICBB bm90aGVyIGNvbnRleHQgbWFuYWdlciwgOmNsYXNzOmAhVHJhbnNpZW50UmVzb3VyY2VgLCBjYW4g c3Vycm91bmQgY2FsbHMNCiAgIHRvIHJlc291cmNlcyB0aGF0IG1heSBvciBtYXkgbm90IGJlIGF2 YWlsYWJsZTsgaXQgd2lsbCBjYXRjaCBhbmQNCiAgIGlnbm9yZSBhIHNwZWNpZmllZCBsaXN0IG9m IGV4Y2VwdGlvbnMuICBGb3IgZXhhbXBsZSwNCiAgIGEgbmV0d29yayB0ZXN0IG1heSBpZ25vcmUg Y2VydGFpbiBmYWlsdXJlcyB3aGVuIGNvbm5lY3RpbmcgdG8gYW4NCkBAIC0yNTA3LDkgKzI1MTIs OSBAQCBjaGFuZ2VzLCBvciBsb29rIHRocm91Z2ggdGhlIFN1YnZlcnNpb24gbG9ncyBmb3IgYWxs IHRoZSBkZXRhaWxzLg0KICAgICAgICAgICBmID0gdXJsbGliLnVybG9wZW4oJ2h0dHBzOi8vc2Yu bmV0JykNCiAgICAgICAgICAgLi4uDQogDQotICBGaW5hbGx5LCA6ZnVuYzpgY2hlY2tfd2Fybmlu Z3NgIHJlc2V0cyB0aGUgOm1vZDpgd2FybmluZ2AgbW9kdWxlJ3MNCi0gIHdhcm5pbmcgZmlsdGVy cyBhbmQgcmV0dXJucyBhbiBvYmplY3QgdGhhdCB3aWxsIHJlY29yZCBhbGwgd2FybmluZw0KLSAg bWVzc2FnZXMgdHJpZ2dlcmVkICg6aXNzdWU6YDM3ODFgKTo6DQorICBGaW5hbGx5LCA6ZnVuYzpg fnRlc3Quc3VwcG9ydC53YXJuaW5nc19oZWxwZXIuY2hlY2tfd2FybmluZ3NgIHJlc2V0cyB0aGUN CisgIDptb2Q6YHdhcm5pbmdzYCBtb2R1bGUncyB3YXJuaW5nIGZpbHRlcnMgYW5kIHJldHVybnMg YW4gb2JqZWN0IHRoYXQgd2lsbCByZWNvcmQNCisgIGFsbCB3YXJuaW5nIG1lc3NhZ2VzIHRyaWdn ZXJlZCAoOmlzc3VlOmAzNzgxYCk6Og0KIA0KICAgICAgIHdpdGggdGVzdF9zdXBwb3J0LmNoZWNr X3dhcm5pbmdzKCkgYXMgd3JlYzoNCiAgICAgICAgICAgd2FybmluZ3Muc2ltcGxlZmlsdGVyKCJh bHdheXMiKQ0KQEAgLTI1NDEsMzEgKzI1NDYsMzEgQEAgY2hhbmdlcywgb3IgbG9vayB0aHJvdWdo IHRoZSBTdWJ2ZXJzaW9uIGxvZ3MgZm9yIGFsbCB0aGUgZGV0YWlscy4NCiAgIChDb250cmlidXRl ZCBieSBEd2F5bmUgQmFpbGV5OyA6aXNzdWU6YDE1ODEwNzNgLikNCiANCiAqIFRoZSA6bW9kOmB0 aHJlYWRpbmdgIG1vZHVsZSBBUEkgaXMgYmVpbmcgY2hhbmdlZCB0byB1c2UgcHJvcGVydGllcw0K LSAgc3VjaCBhcyA6YXR0cjpgZGFlbW9uYCBpbnN0ZWFkIG9mIDptZXRoOmBzZXREYWVtb25gIGFu ZA0KLSAgOm1ldGg6YGlzRGFlbW9uYCBtZXRob2RzLCBhbmQgc29tZSBtZXRob2RzIGhhdmUgYmVl biByZW5hbWVkIHRvIHVzZQ0KKyAgc3VjaCBhcyA6YXR0cjpgfnRocmVhZGluZy5UaHJlYWQuZGFl bW9uYCBpbnN0ZWFkIG9mIDptZXRoOmAhc2V0RGFlbW9uYCBhbmQNCisgIDptZXRoOmAhaXNEYWVt b25gIG1ldGhvZHMsIGFuZCBzb21lIG1ldGhvZHMgaGF2ZSBiZWVuIHJlbmFtZWQgdG8gdXNlDQog ICB1bmRlcnNjb3JlcyBpbnN0ZWFkIG9mIGNhbWVsLWNhc2U7IGZvciBleGFtcGxlLCB0aGUNCi0g IDptZXRoOmBhY3RpdmVDb3VudGAgbWV0aG9kIGlzIHJlbmFtZWQgdG8gOm1ldGg6YGFjdGl2ZV9j b3VudGAuICBCb3RoDQorICA6bWV0aDpgIWFjdGl2ZUNvdW50YCBtZXRob2QgaXMgcmVuYW1lZCB0 byA6ZnVuYzpgfnRocmVhZGluZy5hY3RpdmVfY291bnRgLiAgQm90aA0KICAgdGhlIDIuNiBhbmQg My4wIHZlcnNpb25zIG9mIHRoZSBtb2R1bGUgc3VwcG9ydCB0aGUgc2FtZSBwcm9wZXJ0aWVzDQog ICBhbmQgcmVuYW1lZCBtZXRob2RzLCBidXQgZG9uJ3QgcmVtb3ZlIHRoZSBvbGQgbWV0aG9kcy4g IE5vIGRhdGUgaGFzIGJlZW4gc2V0DQogICBmb3IgdGhlIGRlcHJlY2F0aW9uIG9mIHRoZSBvbGQg QVBJcyBpbiBQeXRob24gMy54OyB0aGUgb2xkIEFQSXMgd29uJ3QNCiAgIGJlIHJlbW92ZWQgaW4g YW55IDIueCB2ZXJzaW9uLg0KICAgKENhcnJpZWQgb3V0IGJ5IHNldmVyYWwgcGVvcGxlLCBtb3N0 IG5vdGFibHkgQmVuamFtaW4gUGV0ZXJzb24uKQ0KIA0KLSAgVGhlIDptb2Q6YHRocmVhZGluZ2Ag bW9kdWxlJ3MgOmNsYXNzOmBUaHJlYWRgIG9iamVjdHMNCi0gIGdhaW5lZCBhbiA6YXR0cjpgaWRl bnRgIHByb3BlcnR5IHRoYXQgcmV0dXJucyB0aGUgdGhyZWFkJ3MNCisgIFRoZSA6bW9kOmB0aHJl YWRpbmdgIG1vZHVsZSdzIDpjbGFzczpgfnRocmVhZGluZy5UaHJlYWRgIG9iamVjdHMNCisgIGdh aW5lZCBhbiA6YXR0cjpgfnRocmVhZGluZy5UaHJlYWQuaWRlbnRgIHByb3BlcnR5IHRoYXQgcmV0 dXJucyB0aGUgdGhyZWFkJ3MNCiAgIGlkZW50aWZpZXIsIGEgbm9uemVybyBpbnRlZ2VyLiAgKENv bnRyaWJ1dGVkIGJ5IEdyZWdvcnkgUC4gU21pdGg7DQogICA6aXNzdWU6YDI4NzFgLikNCiANCiAq IFRoZSA6bW9kOmB0aW1laXRgIG1vZHVsZSBub3cgYWNjZXB0cyBjYWxsYWJsZXMgYXMgd2VsbCBh cyBzdHJpbmdzDQogICBmb3IgdGhlIHN0YXRlbWVudCBiZWluZyB0aW1lZCBhbmQgZm9yIHRoZSBz ZXR1cCBjb2RlLg0KICAgVHdvIGNvbnZlbmllbmNlIGZ1bmN0aW9ucyB3ZXJlIGFkZGVkIGZvciBj cmVhdGluZw0KLSAgOmNsYXNzOmBUaW1lcmAgaW5zdGFuY2VzOg0KKyAgOmNsYXNzOmB+dGltZWl0 LlRpbWVyYCBpbnN0YW5jZXM6DQogICBgYHJlcGVhdChzdG10LCBzZXR1cCwgdGltZSwgcmVwZWF0 LCBudW1iZXIpYGAgYW5kDQogICBgYHRpbWVpdChzdG10LCBzZXR1cCwgdGltZSwgbnVtYmVyKWBg IGNyZWF0ZSBhbiBpbnN0YW5jZSBhbmQgY2FsbA0KICAgdGhlIGNvcnJlc3BvbmRpbmcgbWV0aG9k LiAoQ29udHJpYnV0ZWQgYnkgRXJpayBEZW1haW5lOw0KICAgOmlzc3VlOmAxNTMzOTA5YC4pDQog DQotKiBUaGUgOm1vZDpgVGtpbnRlcmAgbW9kdWxlIG5vdyBhY2NlcHRzIGxpc3RzIGFuZCB0dXBs ZXMgZm9yIG9wdGlvbnMsDQorKiBUaGUgOm1vZDpgdGtpbnRlcmAgbW9kdWxlIG5vdyBhY2NlcHRz IGxpc3RzIGFuZCB0dXBsZXMgZm9yIG9wdGlvbnMsDQogICBzZXBhcmF0aW5nIHRoZSBlbGVtZW50 cyBieSBzcGFjZXMgYmVmb3JlIHBhc3NpbmcgdGhlIHJlc3VsdGluZyB2YWx1ZSB0bw0KICAgVGNs L1RrLg0KICAgKENvbnRyaWJ1dGVkIGJ5IEd1aWxoZXJtZSBQb2xvOyA6aXNzdWU6YDI5MDZgLikN CkBAIC0yNTc0LDExICsyNTc5LDExIEBAIGNoYW5nZXMsIG9yIGxvb2sgdGhyb3VnaCB0aGUgU3Vi dmVyc2lvbiBsb2dzIGZvciBhbGwgdGhlIGRldGFpbHMuDQogICBHcmVnb3IgTGluZ2wuICBOZXcg ZmVhdHVyZXMgaW4gdGhlIG1vZHVsZSBpbmNsdWRlOg0KIA0KICAgKiBCZXR0ZXIgYW5pbWF0aW9u IG9mIHR1cnRsZSBtb3ZlbWVudCBhbmQgcm90YXRpb24uDQotICAqIENvbnRyb2wgb3ZlciB0dXJ0 bGUgbW92ZW1lbnQgdXNpbmcgdGhlIG5ldyA6bWV0aDpgZGVsYXlgLA0KLSAgICA6bWV0aDpgdHJh Y2VyYCwgYW5kIDptZXRoOmBzcGVlZGAgbWV0aG9kcy4NCisgICogQ29udHJvbCBvdmVyIHR1cnRs ZSBtb3ZlbWVudCB1c2luZyB0aGUgbmV3IDpmdW5jOmB+dHVydGxlLmRlbGF5YCwNCisgICAgOmZ1 bmM6YH50dXJ0bGUudHJhY2VyYCwgYW5kIDpmdW5jOmB+dHVydGxlLnNwZWVkYCBtZXRob2RzLg0K ICAgKiBUaGUgYWJpbGl0eSB0byBzZXQgbmV3IHNoYXBlcyBmb3IgdGhlIHR1cnRsZSwgYW5kIHRv DQogICAgIGRlZmluZSBhIG5ldyBjb29yZGluYXRlIHN5c3RlbS4NCi0gICogVHVydGxlcyBub3cg aGF2ZSBhbiA6bWV0aDpgdW5kb2AgbWV0aG9kIHRoYXQgY2FuIHJvbGwgYmFjayBhY3Rpb25zLg0K KyAgKiBUdXJ0bGVzIG5vdyBoYXZlIGFuIDpmdW5jOmB+dHVydGxlLnVuZG9gIG1ldGhvZCB0aGF0 IGNhbiByb2xsIGJhY2sgYWN0aW9ucy4NCiAgICogU2ltcGxlIHN1cHBvcnQgZm9yIHJlYWN0aW5n IHRvIGlucHV0IGV2ZW50cyBzdWNoIGFzIG1vdXNlIGFuZCBrZXlib2FyZA0KICAgICBhY3Rpdml0 eSwgbWFraW5nIGl0IHBvc3NpYmxlIHRvIHdyaXRlIHNpbXBsZSBnYW1lcy4NCiAgICogQSA6Zmls ZTpgdHVydGxlLmNmZ2AgZmlsZSBjYW4gYmUgdXNlZCB0byBjdXN0b21pemUgdGhlIHN0YXJ0aW5n IGFwcGVhcmFuY2UNCkBAIC0yNTkwLDcgKzI1OTUsNyBAQCBjaGFuZ2VzLCBvciBsb29rIHRocm91 Z2ggdGhlIFN1YnZlcnNpb24gbG9ncyBmb3IgYWxsIHRoZSBkZXRhaWxzLg0KIA0KICogQW4gb3B0 aW9uYWwgYGB0aW1lb3V0YGAgcGFyYW1ldGVyIHdhcyBhZGRlZCB0byB0aGUNCiAgIDpmdW5jOmB1 cmxsaWIudXJsb3BlbiA8dXJsbGliLnJlcXVlc3QudXJsb3Blbj5gIGZ1bmN0aW9uIGFuZCB0aGUN Ci0gIDpjbGFzczpgdXJsbGliLmZ0cHdyYXBwZXJgIGNsYXNzIGNvbnN0cnVjdG9yLCBhcyB3ZWxs IGFzIHRoZQ0KKyAgOmNsYXNzOmAhdXJsbGliLmZ0cHdyYXBwZXJgIGNsYXNzIGNvbnN0cnVjdG9y LCBhcyB3ZWxsIGFzIHRoZQ0KICAgOmZ1bmM6YHVybGxpYjIudXJsb3BlbiA8dXJsbGliLnJlcXVl c3QudXJsb3Blbj5gIGZ1bmN0aW9uLiAgVGhlIHBhcmFtZXRlciBzcGVjaWZpZXMgYSB0aW1lb3V0 DQogICBtZWFzdXJlZCBpbiBzZWNvbmRzLiAgIEZvciBleGFtcGxlOjoNCiANCkBAIC0yNjA3LDEy ICsyNjEyLDEzIEBAIGNoYW5nZXMsIG9yIGxvb2sgdGhyb3VnaCB0aGUgU3VidmVyc2lvbiBsb2dz IGZvciBhbGwgdGhlIGRldGFpbHMuDQogICBoYXMgYmVlbiB1cGRhdGVkIHRvIHZlcnNpb24gNS4x LjAuICAoVXBkYXRlZCBieQ0KICAgTWFydGluIHZvbiBMw7Z3aXM7IDppc3N1ZTpgMzgxMWAuKQ0K IA0KLSogVGhlIDptb2Q6YHdhcm5pbmdzYCBtb2R1bGUncyA6ZnVuYzpgZm9ybWF0d2FybmluZ2Ag YW5kIDpmdW5jOmBzaG93d2FybmluZ2ANCisqIFRoZSA6bW9kOmB3YXJuaW5nc2AgbW9kdWxlJ3Mg OmZ1bmM6YH53YXJuaW5ncy5mb3JtYXR3YXJuaW5nYCBhbmQNCisgIDpmdW5jOmB+d2FybmluZ3Mu c2hvd3dhcm5pbmdgDQogICBnYWluZWQgYW4gb3B0aW9uYWwgKmxpbmUqIGFyZ3VtZW50IHRoYXQg Y2FuIGJlIHVzZWQgdG8gc3VwcGx5IHRoZQ0KICAgbGluZSBvZiBzb3VyY2UgY29kZS4gIChBZGRl ZCBhcyBwYXJ0IG9mIDppc3N1ZTpgMTYzMTE3MWAsIHdoaWNoIHJlLWltcGxlbWVudGVkDQogICBw YXJ0IG9mIHRoZSA6bW9kOmB3YXJuaW5nc2AgbW9kdWxlIGluIEMgY29kZS4pDQogDQotICBBIG5l dyBmdW5jdGlvbiwgOmZ1bmM6YGNhdGNoX3dhcm5pbmdzYCwgaXMgYSBjb250ZXh0IG1hbmFnZXIN CisgIEEgbmV3IGZ1bmN0aW9uLCA6ZnVuYzpgfndhcm5pbmdzLmNhdGNoX3dhcm5pbmdzYCwgaXMg YSBjb250ZXh0IG1hbmFnZXINCiAgIGludGVuZGVkIGZvciB0ZXN0aW5nIHB1cnBvc2VzIHRoYXQg bGV0cyB5b3UgdGVtcG9yYXJpbHkgbW9kaWZ5IHRoZQ0KICAgd2FybmluZyBmaWx0ZXJzIGFuZCB0 aGVuIHJlc3RvcmUgdGhlaXIgb3JpZ2luYWwgdmFsdWVzICg6aXNzdWU6YDM3ODFgKS4NCiANCkBA IC0yNjIwLDEyICsyNjI2LDEzIEBAIGNoYW5nZXMsIG9yIGxvb2sgdGhyb3VnaCB0aGUgU3VidmVy c2lvbiBsb2dzIGZvciBhbGwgdGhlIGRldGFpbHMuDQogICBjbGFzc2VzIGNhbiBub3cgYmUgcHJl dmVudGVkIGZyb20gaW1tZWRpYXRlbHkgb3BlbmluZyBhbmQgYmluZGluZyB0bw0KICAgdGhlaXIg c29ja2V0IGJ5IHBhc3NpbmcgYGBGYWxzZWBgIGFzIHRoZSAqYmluZF9hbmRfYWN0aXZhdGUqDQog ICBjb25zdHJ1Y3RvciBwYXJhbWV0ZXIuICBUaGlzIGNhbiBiZSB1c2VkIHRvIG1vZGlmeSB0aGUg aW5zdGFuY2Uncw0KLSAgOmF0dHI6YGFsbG93X3JldXNlX2FkZHJlc3NgIGF0dHJpYnV0ZSBiZWZv cmUgY2FsbGluZyB0aGUNCi0gIDptZXRoOmBzZXJ2ZXJfYmluZGAgYW5kIDptZXRoOmBzZXJ2ZXJf YWN0aXZhdGVgIG1ldGhvZHMgdG8NCisgIDphdHRyOmB+c29ja2V0c2VydmVyLkJhc2VTZXJ2ZXIu YWxsb3dfcmV1c2VfYWRkcmVzc2AgYXR0cmlidXRlIGJlZm9yZSBjYWxsaW5nIHRoZQ0KKyAgOm1l dGg6YH5zb2NrZXRzZXJ2ZXIuQmFzZVNlcnZlci5zZXJ2ZXJfYmluZGAgYW5kDQorICA6bWV0aDpg fnNvY2tldHNlcnZlci5CYXNlU2VydmVyLnNlcnZlcl9hY3RpdmF0ZWAgbWV0aG9kcyB0bw0KICAg b3BlbiB0aGUgc29ja2V0IGFuZCBiZWdpbiBsaXN0ZW5pbmcgZm9yIGNvbm5lY3Rpb25zLg0KICAg KENvbnRyaWJ1dGVkIGJ5IFBldGVyIFBhcmVudGU7IDppc3N1ZTpgMTU5OTg0NWAuKQ0KIA0KLSAg OmNsYXNzOmBTaW1wbGVYTUxSUENTZXJ2ZXJgIGFsc28gaGFzIGEgOmF0dHI6YF9zZW5kX3RyYWNl YmFja19oZWFkZXJgDQorICA6Y2xhc3M6YH54bWxycGMuc2VydmVyLlNpbXBsZVhNTFJQQ1NlcnZl cmAgYWxzbyBoYXMgYSA6YXR0cjpgIV9zZW5kX3RyYWNlYmFja19oZWFkZXJgDQogICBhdHRyaWJ1 dGU7IGlmIHRydWUsIHRoZSBleGNlcHRpb24gYW5kIGZvcm1hdHRlZCB0cmFjZWJhY2sgYXJlIHJl dHVybmVkDQogICBhcyBIVFRQIGhlYWRlcnMgIlgtRXhjZXB0aW9uIiBhbmQgIlgtVHJhY2ViYWNr Ii4gIFRoaXMgZmVhdHVyZSBpcw0KICAgZm9yIGRlYnVnZ2luZyBwdXJwb3NlcyBvbmx5IGFuZCBz aG91bGQgbm90IGJlIHVzZWQgb24gcHJvZHVjdGlvbiBzZXJ2ZXJzDQpAQCAtMjYzNywxNCArMjY0 NCwxNSBAQCBjaGFuZ2VzLCBvciBsb29rIHRocm91Z2ggdGhlIFN1YnZlcnNpb24gbG9ncyBmb3Ig YWxsIHRoZSBkZXRhaWxzLg0KICAgOmNsYXNzOmBkYXRldGltZS5kYXRlYCBhbmQgOmNsYXNzOmBk YXRldGltZS50aW1lYCB0byB0aGUNCiAgIDpjbGFzczpgeG1scnBjbGliLkRhdGVUaW1lIDx4bWxy cGMuY2xpZW50LkRhdGVUaW1lPmAgdHlwZTsgdGhlIGNvbnZlcnNpb24gc2VtYW50aWNzIHdlcmUN CiAgIG5vdCBuZWNlc3NhcmlseSBjb3JyZWN0IGZvciBhbGwgYXBwbGljYXRpb25zLiAgQ29kZSB1 c2luZw0KLSAgOm1vZDpgIXhtbHJwY2xpYmAgc2hvdWxkIGNvbnZlcnQgOmNsYXNzOmBkYXRlYCBh bmQgOmNsYXNzOmB+ZGF0ZXRpbWUudGltZWANCisgIDptb2Q6YCF4bWxycGNsaWJgIHNob3VsZCBj b252ZXJ0IDpjbGFzczpgfmRhdGV0aW1lLmRhdGVgIGFuZCA6Y2xhc3M6YH5kYXRldGltZS50aW1l YA0KICAgaW5zdGFuY2VzLiAoOmlzc3VlOmAxMzMwNTM4YCkgIFRoZSBjb2RlIGNhbiBhbHNvIGhh bmRsZQ0KICAgZGF0ZXMgYmVmb3JlIDE5MDAgKGNvbnRyaWJ1dGVkIGJ5IFJhbGYgU2NobWl0dDsg Omlzc3VlOmAyMDE0YCkNCiAgIGFuZCA2NC1iaXQgaW50ZWdlcnMgcmVwcmVzZW50ZWQgYnkgdXNp bmcgYGA8aTg+YGAgaW4gWE1MLVJQQyByZXNwb25zZXMNCiAgIChjb250cmlidXRlZCBieSBSaWt1 IExpbmRibGFkOyA6aXNzdWU6YDI5ODVgKS4NCiANCi0qIFRoZSA6bW9kOmB6aXBmaWxlYCBtb2R1 bGUncyA6Y2xhc3M6YFppcEZpbGVgIGNsYXNzIG5vdyBoYXMNCi0gIDptZXRoOmBleHRyYWN0YCBh bmQgOm1ldGg6YGV4dHJhY3RhbGxgIG1ldGhvZHMgdGhhdCB3aWxsIHVucGFjaw0KKyogVGhlIDpt b2Q6YHppcGZpbGVgIG1vZHVsZSdzIDpjbGFzczpgfnppcGZpbGUuWmlwRmlsZWAgY2xhc3Mgbm93 IGhhcw0KKyAgOm1ldGg6YH56aXBmaWxlLlppcEZpbGUuZXh0cmFjdGAgYW5kIDptZXRoOmB+emlw ZmlsZS5aaXBGaWxlLmV4dHJhY3RhbGxgDQorICBtZXRob2RzIHRoYXQgd2lsbCB1bnBhY2sNCiAg IGEgc2luZ2xlIGZpbGUgb3IgYWxsIHRoZSBmaWxlcyBpbiB0aGUgYXJjaGl2ZSB0byB0aGUgY3Vy cmVudCBkaXJlY3RvcnksIG9yDQogICB0byBhIHNwZWNpZmllZCBkaXJlY3Rvcnk6Og0KIA0KQEAg LTI2NTksOCArMjY2Nyw5IEBAIGNoYW5nZXMsIG9yIGxvb2sgdGhyb3VnaCB0aGUgU3VidmVyc2lv biBsb2dzIGZvciBhbGwgdGhlIGRldGFpbHMuDQogDQogICAoQ29udHJpYnV0ZWQgYnkgQWxhbiBN Y0ludHlyZTsgOmlzc3VlOmA0Njc5MjRgLikNCiANCi0gIFRoZSA6bWV0aDpgb3BlbmAsIDptZXRo OmByZWFkYCBhbmQgOm1ldGg6YGV4dHJhY3RgIG1ldGhvZHMgY2FuIG5vdw0KLSAgdGFrZSBlaXRo ZXIgYSBmaWxlbmFtZSBvciBhIDpjbGFzczpgWmlwSW5mb2Agb2JqZWN0LiAgVGhpcyBpcyB1c2Vm dWwgd2hlbiBhbg0KKyAgVGhlIDptZXRoOmB+emlwZmlsZS5aaXBGaWxlLm9wZW5gLCA6bWV0aDpg fnppcGZpbGUuWmlwRmlsZS5yZWFkYCBhbmQNCisgIDptZXRoOmB+emlwZmlsZS5aaXBGaWxlLmV4 dHJhY3RgIG1ldGhvZHMgY2FuIG5vdw0KKyAgdGFrZSBlaXRoZXIgYSBmaWxlbmFtZSBvciBhIDpj bGFzczpgfnppcGZpbGUuWmlwSW5mb2Agb2JqZWN0LiAgVGhpcyBpcyB1c2VmdWwgd2hlbiBhbg0K ICAgYXJjaGl2ZSBhY2NpZGVudGFsbHkgY29udGFpbnMgYSBkdXBsaWNhdGVkIGZpbGVuYW1lLg0K ICAgKENvbnRyaWJ1dGVkIGJ5IEdyYWhhbSBIb3JsZXI7IDppc3N1ZTpgMTc3NTAyNWAuKQ0KIA0K QEAgLTI2NzEsNyArMjY4MCw3IEBAIGNoYW5nZXMsIG9yIGxvb2sgdGhyb3VnaCB0aGUgU3VidmVy c2lvbiBsb2dzIGZvciBhbGwgdGhlIGRldGFpbHMuDQogLi4gd2hvbGUgbmV3IG1vZHVsZXMgZ2V0 IGRlc2NyaWJlZCBpbiBzdWJzZWN0aW9ucyBoZXJlDQogDQogVGhlIDptb2Q6YGFzdGAgbW9kdWxl DQotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQ0KKy0tLS0tLS0tLS0tLS0tLS0tLS0tLQ0KIA0KIFRo ZSA6bW9kOmBhc3RgIG1vZHVsZSBwcm92aWRlcyBhbiBBYnN0cmFjdCBTeW50YXggVHJlZQ0KIHJl cHJlc2VudGF0aW9uIG9mIFB5dGhvbiBjb2RlLCBhbmQgQXJtaW4gUm9uYWNoZXINCkBAIC0yNjgw LDggKzI2ODksOCBAQCBjb21tb24gdGFza3MuICBUaGVzZSB3aWxsIGJlIHVzZWZ1bCBmb3IgSFRN TCB0ZW1wbGF0aW5nDQogcGFja2FnZXMsIGNvZGUgYW5hbHl6ZXJzLCBhbmQgc2ltaWxhciB0b29s cyB0aGF0IHByb2Nlc3MNCiBQeXRob24gY29kZS4NCiANCi1UaGUgOmZ1bmM6YHBhcnNlYCBmdW5j dGlvbiB0YWtlcyBhbiBleHByZXNzaW9uIGFuZCByZXR1cm5zIGFuIEFTVC4NCi1UaGUgOmZ1bmM6 YGR1bXBgIGZ1bmN0aW9uIG91dHB1dHMgYSByZXByZXNlbnRhdGlvbiBvZiBhIHRyZWUsIHN1aXRh YmxlDQorVGhlIDpmdW5jOmB+YXN0LnBhcnNlYCBmdW5jdGlvbiB0YWtlcyBhbiBleHByZXNzaW9u IGFuZCByZXR1cm5zIGFuIEFTVC4NCitUaGUgOmZ1bmM6YH5hc3QuZHVtcGAgZnVuY3Rpb24gb3V0 cHV0cyBhIHJlcHJlc2VudGF0aW9uIG9mIGEgdHJlZSwgc3VpdGFibGUNCiBmb3IgZGVidWdnaW5n OjoNCiANCiAgICAgaW1wb3J0IGFzdA0KQEAgLTI3MjcsMTMgKzI3MzYsMTMgQEAgVGhpcyBvdXRw dXRzIGEgZGVlcGx5IG5lc3RlZCB0cmVlOjoNCiAgICAgICAgXSwgbmw9VHJ1ZSkNCiAgICAgIF0p DQogDQotVGhlIDpmdW5jOmBsaXRlcmFsX2V2YWxgIG1ldGhvZCB0YWtlcyBhIHN0cmluZyBvciBh biBBU1QNCitUaGUgOmZ1bmM6YH5hc3QubGl0ZXJhbF9ldmFsYCBtZXRob2QgdGFrZXMgYSBzdHJp bmcgb3IgYW4gQVNUDQogcmVwcmVzZW50aW5nIGEgbGl0ZXJhbCBleHByZXNzaW9uLCBwYXJzZXMg YW5kIGV2YWx1YXRlcyBpdCwgYW5kDQogcmV0dXJucyB0aGUgcmVzdWx0aW5nIHZhbHVlLiAgQSBs aXRlcmFsIGV4cHJlc3Npb24gaXMgYSBQeXRob24NCiBleHByZXNzaW9uIGNvbnRhaW5pbmcgb25s eSBzdHJpbmdzLCBudW1iZXJzLCBkaWN0aW9uYXJpZXMsDQogZXRjLiBidXQgbm8gc3RhdGVtZW50 cyBvciBmdW5jdGlvbiBjYWxscy4gIElmIHlvdSBuZWVkIHRvDQogZXZhbHVhdGUgYW4gZXhwcmVz c2lvbiBidXQgY2Fubm90IGFjY2VwdCB0aGUgc2VjdXJpdHkgcmlzayBvZiB1c2luZyBhbg0KLTpm dW5jOmBldmFsYCBjYWxsLCA6ZnVuYzpgbGl0ZXJhbF9ldmFsYCB3aWxsIGhhbmRsZSBpdCBzYWZl bHk6Og0KKzpmdW5jOmBldmFsYCBjYWxsLCA6ZnVuYzpgfmFzdC5saXRlcmFsX2V2YWxgIHdpbGwg aGFuZGxlIGl0IHNhZmVseTo6DQogDQogICAgID4+PiBsaXRlcmFsID0gJygiYSIsICJiIiwgezI6 NCwgMzo4LCAxOjJ9KScNCiAgICAgPj4+IHByaW50IGFzdC5saXRlcmFsX2V2YWwobGl0ZXJhbCkN CkBAIC0yNzQzLDE1ICsyNzUyLDE1IEBAIGV2YWx1YXRlIGFuIGV4cHJlc3Npb24gYnV0IGNhbm5v dCBhY2NlcHQgdGhlIHNlY3VyaXR5IHJpc2sgb2YgdXNpbmcgYW4NCiAgICAgICAuLi4NCiAgICAg VmFsdWVFcnJvcjogbWFsZm9ybWVkIHN0cmluZw0KIA0KLVRoZSBtb2R1bGUgYWxzbyBpbmNsdWRl cyA6Y2xhc3M6YE5vZGVWaXNpdG9yYCBhbmQNCi06Y2xhc3M6YE5vZGVUcmFuc2Zvcm1lcmAgY2xh c3NlcyBmb3IgdHJhdmVyc2luZyBhbmQgbW9kaWZ5aW5nIGFuIEFTVCwNCitUaGUgbW9kdWxlIGFs c28gaW5jbHVkZXMgOmNsYXNzOmB+YXN0Lk5vZGVWaXNpdG9yYCBhbmQNCis6Y2xhc3M6YH5hc3Qu Tm9kZVRyYW5zZm9ybWVyYCBjbGFzc2VzIGZvciB0cmF2ZXJzaW5nIGFuZCBtb2RpZnlpbmcgYW4g QVNULA0KIGFuZCBmdW5jdGlvbnMgZm9yIGNvbW1vbiB0cmFuc2Zvcm1hdGlvbnMgc3VjaCBhcyBj aGFuZ2luZyBsaW5lDQogbnVtYmVycy4NCiANCiAuLiA9PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09DQogDQogVGhlIDpt b2Q6YCFmdXR1cmVfYnVpbHRpbnNgIG1vZHVsZQ0KLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tDQorLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQ0KIA0KIFB5 dGhvbiAzLjAgbWFrZXMgbWFueSBjaGFuZ2VzIHRvIHRoZSByZXBlcnRvaXJlIG9mIGJ1aWx0LWlu DQogZnVuY3Rpb25zLCBhbmQgbW9zdCBvZiB0aGUgY2hhbmdlcyBjYW4ndCBiZSBpbnRyb2R1Y2Vk IGluIHRoZSBQeXRob24NCkBAIC0yNzcxLDE1ICsyNzgwLDE1IEBAIFRoZSBmdW5jdGlvbnMgaW4g dGhpcyBtb2R1bGUgY3VycmVudGx5IGluY2x1ZGU6DQogICByZXR1cm4gaXRlcmF0b3JzLCB1bmxp a2UgdGhlIDIueCBidWlsdGlucyB3aGljaCByZXR1cm4gbGlzdHMuDQogDQogKiBgYGhleCh2YWx1 ZSlgYCwgYGBvY3QodmFsdWUpYGA6IGluc3RlYWQgb2YgY2FsbGluZyB0aGUNCi0gIDptZXRoOmBf X2hleF9fYCBvciA6bWV0aDpgX19vY3RfX2AgbWV0aG9kcywgdGhlc2UgdmVyc2lvbnMgd2lsbA0K LSAgY2FsbCB0aGUgOm1ldGg6YF9faW5kZXhfX2AgbWV0aG9kIGFuZCBjb252ZXJ0IHRoZSByZXN1 bHQgdG8gaGV4YWRlY2ltYWwNCisgIDptZXRoOmAhX19oZXhfX2Agb3IgOm1ldGg6YCFfX29jdF9f YCBtZXRob2RzLCB0aGVzZSB2ZXJzaW9ucyB3aWxsDQorICBjYWxsIHRoZSA6bWV0aDpgfm9iamVj dC5fX2luZGV4X19gIG1ldGhvZCBhbmQgY29udmVydCB0aGUgcmVzdWx0IHRvIGhleGFkZWNpbWFs DQogICBvciBvY3RhbC4gIDpmdW5jOmBvY3RgIHdpbGwgdXNlIHRoZSBuZXcgYGAwb2BgIG5vdGF0 aW9uIGZvciBpdHMNCiAgIHJlc3VsdC4NCiANCiAuLiA9PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09DQogDQogVGhlIDpt b2Q6YGpzb25gIG1vZHVsZTogSmF2YVNjcmlwdCBPYmplY3QgTm90YXRpb24NCi0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LQ0KKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tDQog DQogVGhlIG5ldyA6bW9kOmBqc29uYCBtb2R1bGUgc3VwcG9ydHMgdGhlIGVuY29kaW5nIGFuZCBk ZWNvZGluZyBvZiBQeXRob24gdHlwZXMgaW4NCiBKU09OIChKYXZhc2NyaXB0IE9iamVjdCBOb3Rh dGlvbikuIEpTT04gaXMgYSBsaWdodHdlaWdodCBpbnRlcmNoYW5nZSBmb3JtYXQNCkBAIC0yODQ2 LDEyICsyODU1LDEyIEBAIFVzaW5nIHRoZSBtb2R1bGUgaXMgc2ltcGxlOjoNCiAuLiA9PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09DQogDQogY3R5cGVzIEVuaGFuY2VtZW50cw0KLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tDQorLS0tLS0tLS0tLS0tLS0tLS0tLQ0KIA0KIFRo b21hcyBIZWxsZXIgY29udGludWVkIHRvIG1haW50YWluIGFuZCBlbmhhbmNlIHRoZQ0KIDptb2Q6 YGN0eXBlc2AgbW9kdWxlLg0KIA0KLTptb2Q6YGN0eXBlc2Agbm93IHN1cHBvcnRzIGEgOmNsYXNz OmBjX2Jvb2xgIGRhdGF0eXBlDQorOm1vZDpgY3R5cGVzYCBub3cgc3VwcG9ydHMgYSA6Y2xhc3M6 YH5jdHlwZXMuY19ib29sYCBkYXRhdHlwZQ0KIHRoYXQgcmVwcmVzZW50cyB0aGUgQzk5IGBgYm9v bGBgIHR5cGUuICAoQ29udHJpYnV0ZWQgYnkgRGF2aWQgUmVtYWhsOw0KIDppc3N1ZTpgMTY0OTE5 MGAuKQ0KIA0KQEAgLTI4NjMsMTEgKzI4NzIsMTEgQEAgd2hlcmUgdmFyaW91cyBjb21iaW5hdGlv bnMgb2YgYGAoc3RhcnQsIHN0b3AsIHN0ZXApYGAgYXJlIHN1cHBsaWVkLg0KIC4uIFJldmlzaW9u IDU3NzY5DQogDQogQWxsIDptb2Q6YGN0eXBlc2AgZGF0YSB0eXBlcyBub3cgc3VwcG9ydA0KLTpt ZXRoOmBmcm9tX2J1ZmZlcmAgYW5kIDptZXRoOmBmcm9tX2J1ZmZlcl9jb3B5YA0KKzptZXRoOmB+ Y3R5cGVzLl9DRGF0YS5mcm9tX2J1ZmZlcmAgYW5kIDptZXRoOmB+Y3R5cGVzLl9DRGF0YS5mcm9t X2J1ZmZlcl9jb3B5YA0KIG1ldGhvZHMgdGhhdCBjcmVhdGUgYSBjdHlwZXMgaW5zdGFuY2UgYmFz ZWQgb24gYQ0KLXByb3ZpZGVkIGJ1ZmZlciBvYmplY3QuICA6bWV0aDpgZnJvbV9idWZmZXJfY29w eWAgY29waWVzDQorcHJvdmlkZWQgYnVmZmVyIG9iamVjdC4gIDptZXRoOmB+Y3R5cGVzLl9DRGF0 YS5mcm9tX2J1ZmZlcl9jb3B5YCBjb3BpZXMNCiB0aGUgY29udGVudHMgb2YgdGhlIG9iamVjdCwN Ci13aGlsZSA6bWV0aDpgZnJvbV9idWZmZXJgIHdpbGwgc2hhcmUgdGhlIHNhbWUgbWVtb3J5IGFy ZWEuDQord2hpbGUgOm1ldGg6YH5jdHlwZXMuX0NEYXRhLmZyb21fYnVmZmVyYCB3aWxsIHNoYXJl IHRoZSBzYW1lIG1lbW9yeSBhcmVhLg0KIA0KIEEgbmV3IGNhbGxpbmcgY29udmVudGlvbiB0ZWxs cyA6bW9kOmBjdHlwZXNgIHRvIGNsZWFyIHRoZSBgYGVycm5vYGAgb3INCiBXaW4zMiBMYXN0RXJy b3IgdmFyaWFibGVzIGF0IHRoZSBvdXRzZXQgb2YgZWFjaCB3cmFwcGVkIGNhbGwuDQpAQCAtMjg3 NSwyNCArMjg4NCwyNCBAQCBXaW4zMiBMYXN0RXJyb3IgdmFyaWFibGVzIGF0IHRoZSBvdXRzZXQg b2YgZWFjaCB3cmFwcGVkIGNhbGwuDQogDQogWW91IGNhbiBub3cgcmV0cmlldmUgdGhlIFVuaXgg YGBlcnJub2BgIHZhcmlhYmxlIGFmdGVyIGEgZnVuY3Rpb24NCiBjYWxsLiAgV2hlbiBjcmVhdGlu ZyBhIHdyYXBwZWQgZnVuY3Rpb24sIHlvdSBjYW4gc3VwcGx5DQotYGB1c2VfZXJybm89VHJ1ZWBg IGFzIGEga2V5d29yZCBwYXJhbWV0ZXIgdG8gdGhlIDpmdW5jOmBETExgIGZ1bmN0aW9uDQotYW5k IHRoZW4gY2FsbCB0aGUgbW9kdWxlLWxldmVsIG1ldGhvZHMgOm1ldGg6YHNldF9lcnJub2AgYW5k DQotOm1ldGg6YGdldF9lcnJub2AgdG8gc2V0IGFuZCByZXRyaWV2ZSB0aGUgZXJyb3IgdmFsdWUu DQorYGB1c2VfZXJybm89VHJ1ZWBgIGFzIGEga2V5d29yZCBwYXJhbWV0ZXIgdG8gdGhlIGBgRExM YGAgZnVuY3Rpb24NCithbmQgdGhlbiBjYWxsIHRoZSBtb2R1bGUtbGV2ZWwgbWV0aG9kcyA6ZnVu YzpgfmN0eXBlcy5zZXRfZXJybm9gIGFuZA0KKzpmdW5jOmB+Y3R5cGVzLmdldF9lcnJub2AgdG8g c2V0IGFuZCByZXRyaWV2ZSB0aGUgZXJyb3IgdmFsdWUuDQogDQogVGhlIFdpbjMyIExhc3RFcnJv ciB2YXJpYWJsZSBpcyBzaW1pbGFybHkgc3VwcG9ydGVkIGJ5DQotdGhlIDpmdW5jOmBETExgLCA6 ZnVuYzpgT2xlRExMYCwgYW5kIDpmdW5jOmBXaW5ETExgIGZ1bmN0aW9ucy4NCit0aGUgYGBETExg YCwgOmZ1bmM6YH5jdHlwZXMuT2xlRExMYCwgYW5kIDpmdW5jOmB+Y3R5cGVzLldpbkRMTGAgZnVu Y3Rpb25zLg0KIFlvdSBzdXBwbHkgYGB1c2VfbGFzdF9lcnJvcj1UcnVlYGAgYXMgYSBrZXl3b3Jk IHBhcmFtZXRlcg0KLWFuZCB0aGVuIGNhbGwgdGhlIG1vZHVsZS1sZXZlbCBtZXRob2RzIDptZXRo OmBzZXRfbGFzdF9lcnJvcmANCi1hbmQgOm1ldGg6YGdldF9sYXN0X2Vycm9yYC4NCithbmQgdGhl biBjYWxsIHRoZSBtb2R1bGUtbGV2ZWwgbWV0aG9kcyA6ZnVuYzpgfmN0eXBlcy5zZXRfbGFzdF9l cnJvcmANCithbmQgOmZ1bmM6YH5jdHlwZXMuZ2V0X2xhc3RfZXJyb3JgLg0KIA0KLVRoZSA6ZnVu YzpgYnlyZWZgIGZ1bmN0aW9uLCB1c2VkIHRvIHJldHJpZXZlIGEgcG9pbnRlciB0byBhIGN0eXBl cw0KK1RoZSA6ZnVuYzpgfmN0eXBlcy5ieXJlZmAgZnVuY3Rpb24sIHVzZWQgdG8gcmV0cmlldmUg YSBwb2ludGVyIHRvIGEgY3R5cGVzDQogaW5zdGFuY2UsIG5vdyBoYXMgYW4gb3B0aW9uYWwgKm9m ZnNldCogcGFyYW1ldGVyIHRoYXQgaXMgYSBieXRlDQogY291bnQgdGhhdCB3aWxsIGJlIGFkZGVk IHRvIHRoZSByZXR1cm5lZCBwb2ludGVyLg0KIA0KIC4uID09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0NCiANCiBJbXBy b3ZlZCBTU0wgU3VwcG9ydA0KLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tDQorLS0tLS0tLS0tLS0tLS0tLS0tLS0NCiANCiBCaWxsIEphbnNzZW4gbWFk ZSBleHRlbnNpdmUgaW1wcm92ZW1lbnRzIHRvIFB5dGhvbiAyLjYncyBzdXBwb3J0IGZvcg0KIHRo ZSBTZWN1cmUgU29ja2V0cyBMYXllciBieSBhZGRpbmcgYSBuZXcgbW9kdWxlLCA6bW9kOmBzc2xg LCB0aGF0J3MNCkBAIC0yOTA0LDkgKzI5MTMsOSBAQCBpbiB0aGUgOm1vZDpgc29ja2V0YCBtb2R1 bGUgaGFzbid0IGJlZW4gcmVtb3ZlZCBhbmQgY29udGludWVzIHRvIHdvcmssDQogdGhvdWdoIGl0 IHdpbGwgYmUgcmVtb3ZlZCBpbiBQeXRob24gMy4wLg0KIA0KIFRvIHVzZSB0aGUgbmV3IG1vZHVs ZSwgeW91IG11c3QgZmlyc3QgY3JlYXRlIGEgVENQIGNvbm5lY3Rpb24gaW4gdGhlDQotdXN1YWwg d2F5IGFuZCB0aGVuIHBhc3MgaXQgdG8gdGhlIDpmdW5jOmBzc2wud3JhcF9zb2NrZXRgIGZ1bmN0 aW9uLg0KK3VzdWFsIHdheSBhbmQgdGhlbiBwYXNzIGl0IHRvIHRoZSA6ZnVuYzpgIXNzbC53cmFw X3NvY2tldGAgZnVuY3Rpb24uDQogSXQncyBwb3NzaWJsZSB0byBzcGVjaWZ5IHdoZXRoZXIgYSBj ZXJ0aWZpY2F0ZSBpcyByZXF1aXJlZCwgYW5kIHRvDQotb2J0YWluIGNlcnRpZmljYXRlIGluZm8g YnkgY2FsbGluZyB0aGUgOm1ldGg6YGdldHBlZXJjZXJ0YCBtZXRob2QuDQorb2J0YWluIGNlcnRp ZmljYXRlIGluZm8gYnkgY2FsbGluZyB0aGUgOm1ldGg6YH5zc2wuU1NMU29ja2V0LmdldHBlZXJj ZXJ0YCBtZXRob2QuDQogDQogLi4gc2VlYWxzbzo6DQogDQpAQCAtMzAzMiw3ICszMDQxLDcgQEAg Q2hhbmdlcyB0byBQeXRob24ncyBidWlsZCBwcm9jZXNzIGFuZCB0byB0aGUgQyBBUEkgaW5jbHVk ZToNCiANCiAqIFRoZSBCZXJrZWxleURCIG1vZHVsZSBub3cgaGFzIGEgQyBBUEkgb2JqZWN0LCBh dmFpbGFibGUgYXMNCiAgIGBgYnNkZGIuZGIuYXBpYGAuICAgVGhpcyBvYmplY3QgY2FuIGJlIHVz ZWQgYnkgb3RoZXIgQyBleHRlbnNpb25zDQotICB0aGF0IHdpc2ggdG8gdXNlIHRoZSA6bW9kOmBi c2RkYmAgbW9kdWxlIGZvciB0aGVpciBvd24gcHVycG9zZXMuDQorICB0aGF0IHdpc2ggdG8gdXNl IHRoZSA6bW9kOmAhYnNkZGJgIG1vZHVsZSBmb3IgdGhlaXIgb3duIHB1cnBvc2VzLg0KICAgKENv bnRyaWJ1dGVkIGJ5IER1bmNhbiBHcmlzYnkuKQ0KIA0KICogVGhlIG5ldyBidWZmZXIgaW50ZXJm YWNlLCBwcmV2aW91c2x5IGRlc2NyaWJlZCBpbg0KQEAgLTMwNzQsNyArMzA4Myw3IEBAIENoYW5n ZXMgdG8gUHl0aG9uJ3MgYnVpbGQgcHJvY2VzcyBhbmQgdG8gdGhlIEMgQVBJIGluY2x1ZGU6DQog DQogKiBDIGZ1bmN0aW9ucyBhbmQgbWV0aG9kcyB0aGF0IHVzZQ0KICAgOmM6ZnVuYzpgUHlDb21w bGV4X0FzQ0NvbXBsZXhgIHdpbGwgbm93IGFjY2VwdCBhcmd1bWVudHMgdGhhdA0KLSAgaGF2ZSBh IDptZXRoOmBfX2NvbXBsZXhfX2AgbWV0aG9kLiAgSW4gcGFydGljdWxhciwgdGhlIGZ1bmN0aW9u cyBpbiB0aGUNCisgIGhhdmUgYSA6bWV0aDpgfm9iamVjdC5fX2NvbXBsZXhfX2AgbWV0aG9kLiAg SW4gcGFydGljdWxhciwgdGhlIGZ1bmN0aW9ucyBpbiB0aGUNCiAgIDptb2Q6YGNtYXRoYCBtb2R1 bGUgd2lsbCBub3cgYWNjZXB0IG9iamVjdHMgd2l0aCB0aGlzIG1ldGhvZC4NCiAgIFRoaXMgaXMg YSBiYWNrcG9ydCBvZiBhIFB5dGhvbiAzLjAgY2hhbmdlLg0KICAgKENvbnRyaWJ1dGVkIGJ5IE1h cmsgRGlja2luc29uOyA6aXNzdWU6YDE2NzU0MjNgLikNCkBAIC0zMTI3LDcgKzMxMzYsNyBAQCBD aGFuZ2VzIHRvIFB5dGhvbidzIGJ1aWxkIHByb2Nlc3MgYW5kIHRvIHRoZSBDIEFQSSBpbmNsdWRl Og0KIC4uID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT0NCiANCiBQb3J0LVNwZWNpZmljIENoYW5nZXM6IFdpbmRvd3MN Ci0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQ0KKy0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLQ0KIA0KICogVGhlIHN1cHBvcnQgZm9yIFdpbmRvd3MgOTUsIDk4LCBNRSBh bmQgTlQ0IGhhcyBiZWVuIGRyb3BwZWQuDQogICBQeXRob24gMi42IHJlcXVpcmVzIGF0IGxlYXN0 IFdpbmRvd3MgMjAwMCBTUDQuDQpAQCAtMzE1Myw3ICszMTYyLDcgQEAgUG9ydC1TcGVjaWZpYyBD aGFuZ2VzOiBXaW5kb3dzDQogDQogKiBUaGUgOm1vZDpgc29ja2V0YCBtb2R1bGUncyBzb2NrZXQg b2JqZWN0cyBub3cgaGF2ZSBhbg0KICAgOm1ldGg6YH5zb2NrZXQuc29ja2V0LmlvY3RsYCBtZXRo b2QgdGhhdCBwcm92aWRlcyBhIGxpbWl0ZWQgaW50ZXJmYWNlIHRvIHRoZQ0KLSAgOmM6ZnVuYzpg V1NBSW9jdGxgIHN5c3RlbSBpbnRlcmZhY2UuDQorICA6YzpmdW5jOmAhV1NBSW9jdGxgIHN5c3Rl bSBpbnRlcmZhY2UuDQogDQogKiBUaGUgOm1vZDpgX3dpbnJlZyA8d2lucmVnPmAgbW9kdWxlIG5v dyBoYXMgYSBmdW5jdGlvbiwNCiAgIDpmdW5jOmB+d2lucmVnLkV4cGFuZEVudmlyb25tZW50U3Ry aW5nc2AsDQpAQCAtMzE3Niw3ICszMTg1LDcgQEAgUG9ydC1TcGVjaWZpYyBDaGFuZ2VzOiBXaW5k b3dzDQogLi4gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PQ0KIA0KIFBvcnQtU3BlY2lmaWMgQ2hhbmdlczogTWFjIE9T IFgNCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQ0KKy0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0NCiANCiAqIFdoZW4gY29tcGlsaW5nIGEgZnJhbWV3b3JrIGJ1aWxk IG9mIFB5dGhvbiwgeW91IGNhbiBub3cgc3BlY2lmeSB0aGUNCiAgIGZyYW1ld29yayBuYW1lIHRv IGJlIHVzZWQgYnkgcHJvdmlkaW5nIHRoZQ0KQEAgLTMyMzAsNyArMzIzOSw3IEBAIFBvcnQtU3Bl Y2lmaWMgQ2hhbmdlczogTWFjIE9TIFgNCiAuLiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09DQogDQogUG9ydC1TcGVj aWZpYyBDaGFuZ2VzOiBJUklYDQotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0N CistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0NCiANCiBBIG51bWJlciBvZiBvbGQgSVJJWC1z cGVjaWZpYyBtb2R1bGVzIHdlcmUgZGVwcmVjYXRlZCBhbmQgd2lsbA0KIGJlIHJlbW92ZWQgaW4g UHl0aG9uIDMuMDoNCkBAIC0zMjc0LDcgKzMyODMsNyBAQCB0aGF0IG1heSByZXF1aXJlIGNoYW5n ZXMgdG8geW91ciBjb2RlOg0KICogU3RyaW5nIGV4Y2VwdGlvbnMgaGF2ZSBiZWVuIHJlbW92ZWQu ICBBdHRlbXB0aW5nIHRvIHVzZSB0aGVtIHJhaXNlcyBhDQogICA6ZXhjOmBUeXBlRXJyb3JgLg0K IA0KLSogVGhlIDptZXRoOmBfX2luaXRfX2AgbWV0aG9kIG9mIDpjbGFzczpgY29sbGVjdGlvbnMu ZGVxdWVgDQorKiBUaGUgOm1ldGg6YCFfX2luaXRfX2AgbWV0aG9kIG9mIDpjbGFzczpgY29sbGVj dGlvbnMuZGVxdWVgDQogICBub3cgY2xlYXJzIGFueSBleGlzdGluZyBjb250ZW50cyBvZiB0aGUg ZGVxdWUNCiAgIGJlZm9yZSBhZGRpbmcgZWxlbWVudHMgZnJvbSB0aGUgaXRlcmFibGUuICBUaGlz IGNoYW5nZSBtYWtlcyB0aGUNCiAgIGJlaGF2aW9yIG1hdGNoIGBgbGlzdC5fX2luaXRfXygpYGAu DQpAQCAtMzI4MiwxNiArMzI5MSwxNiBAQCB0aGF0IG1heSByZXF1aXJlIGNoYW5nZXMgdG8geW91 ciBjb2RlOg0KICogOm1ldGg6YG9iamVjdC5fX2luaXRfX2AgcHJldmlvdXNseSBhY2NlcHRlZCBh cmJpdHJhcnkgYXJndW1lbnRzIGFuZA0KICAga2V5d29yZCBhcmd1bWVudHMsIGlnbm9yaW5nIHRo ZW0uICBJbiBQeXRob24gMi42LCB0aGlzIGlzIG5vIGxvbmdlcg0KICAgYWxsb3dlZCBhbmQgd2ls bCByZXN1bHQgaW4gYSA6ZXhjOmBUeXBlRXJyb3JgLiAgVGhpcyB3aWxsIGFmZmVjdA0KLSAgOm1l dGg6YF9faW5pdF9fYCBtZXRob2RzIHRoYXQgZW5kIHVwIGNhbGxpbmcgdGhlIGNvcnJlc3BvbmRp bmcNCisgIDptZXRoOmAhX19pbml0X19gIG1ldGhvZHMgdGhhdCBlbmQgdXAgY2FsbGluZyB0aGUg Y29ycmVzcG9uZGluZw0KICAgbWV0aG9kIG9uIDpjbGFzczpgb2JqZWN0YCAocGVyaGFwcyB0aHJv dWdoIHVzaW5nIDpmdW5jOmBzdXBlcmApLg0KICAgU2VlIDppc3N1ZTpgMTY4MzM2OGAgZm9yIGRp c2N1c3Npb24uDQogDQotKiBUaGUgOmNsYXNzOmBEZWNpbWFsYCBjb25zdHJ1Y3RvciBub3cgYWNj ZXB0cyBsZWFkaW5nIGFuZCB0cmFpbGluZw0KKyogVGhlIDpjbGFzczpgfmRlY2ltYWwuRGVjaW1h bGAgY29uc3RydWN0b3Igbm93IGFjY2VwdHMgbGVhZGluZyBhbmQgdHJhaWxpbmcNCiAgIHdoaXRl c3BhY2Ugd2hlbiBwYXNzZWQgYSBzdHJpbmcuICBQcmV2aW91c2x5IGl0IHdvdWxkIHJhaXNlIGFu DQotICA6ZXhjOmBJbnZhbGlkT3BlcmF0aW9uYCBleGNlcHRpb24uICBPbiB0aGUgb3RoZXIgaGFu ZCwgdGhlDQotICA6bWV0aDpgY3JlYXRlX2RlY2ltYWxgIG1ldGhvZCBvZiA6Y2xhc3M6YENvbnRl eHRgIG9iamVjdHMgbm93DQorICA6ZXhjOmB+ZGVjaW1hbC5JbnZhbGlkT3BlcmF0aW9uYCBleGNl cHRpb24uICBPbiB0aGUgb3RoZXIgaGFuZCwgdGhlDQorICA6bWV0aDpgfmRlY2ltYWwuQ29udGV4 dC5jcmVhdGVfZGVjaW1hbGAgbWV0aG9kIG9mIDpjbGFzczpgfmRlY2ltYWwuQ29udGV4dGAgb2Jq ZWN0cyBub3cNCiAgIGV4cGxpY2l0bHkgZGlzYWxsb3dzIGV4dHJhIHdoaXRlc3BhY2UsIHJhaXNp bmcgYQ0KLSAgOmV4YzpgQ29udmVyc2lvblN5bnRheGAgZXhjZXB0aW9uLg0KKyAgOmV4YzpgIUNv bnZlcnNpb25TeW50YXhgIGV4Y2VwdGlvbi4NCiANCiAqIER1ZSB0byBhbiBpbXBsZW1lbnRhdGlv biBhY2NpZGVudCwgaWYgeW91IHBhc3NlZCBhIGZpbGUgcGF0aCB0bw0KICAgdGhlIGJ1aWx0LWlu ICA6ZnVuYzpgX19pbXBvcnRfX2AgZnVuY3Rpb24sIGl0IHdvdWxkIGFjdHVhbGx5IGltcG9ydA0K QEAgLTMzMDksMTQgKzMzMTgsMTQgQEAgdGhhdCBtYXkgcmVxdWlyZSBjaGFuZ2VzIHRvIHlvdXIg Y29kZToNCiANCiAqIFRoZSA6bW9kOmBzb2NrZXRgIG1vZHVsZSBleGNlcHRpb24gOmV4Yzpgc29j a2V0LmVycm9yYCBub3cgaW5oZXJpdHMNCiAgIGZyb20gOmV4YzpgSU9FcnJvcmAuICBQcmV2aW91 c2x5IGl0IHdhc24ndCBhIHN1YmNsYXNzIG9mDQotICA6ZXhjOmBTdGFuZGFyZEVycm9yYCBidXQg bm93IGl0IGlzLCB0aHJvdWdoIDpleGM6YElPRXJyb3JgLg0KKyAgOmV4YzpgIVN0YW5kYXJkRXJy b3JgIGJ1dCBub3cgaXQgaXMsIHRocm91Z2ggOmV4YzpgSU9FcnJvcmAuDQogICAoSW1wbGVtZW50 ZWQgYnkgR3JlZ29yeSBQLiBTbWl0aDsgOmlzc3VlOmAxNzA2ODE1YC4pDQogDQogKiBUaGUgOm1v ZDpgeG1scnBjbGliIDx4bWxycGMuY2xpZW50PmAgbW9kdWxlIG5vIGxvbmdlciBhdXRvbWF0aWNh bGx5IGNvbnZlcnRzDQogICA6Y2xhc3M6YGRhdGV0aW1lLmRhdGVgIGFuZCA6Y2xhc3M6YGRhdGV0 aW1lLnRpbWVgIHRvIHRoZQ0KICAgOmNsYXNzOmB4bWxycGNsaWIuRGF0ZVRpbWUgPHhtbHJwYy5j bGllbnQuRGF0ZVRpbWU+YCB0eXBlOyB0aGUgY29udmVyc2lvbiBzZW1hbnRpY3Mgd2VyZQ0KICAg bm90IG5lY2Vzc2FyaWx5IGNvcnJlY3QgZm9yIGFsbCBhcHBsaWNhdGlvbnMuICBDb2RlIHVzaW5n DQotICA6bW9kOmAheG1scnBjbGliYCBzaG91bGQgY29udmVydCA6Y2xhc3M6YGRhdGVgIGFuZCA6 Y2xhc3M6YH5kYXRldGltZS50aW1lYA0KKyAgOm1vZDpgIXhtbHJwY2xpYmAgc2hvdWxkIGNvbnZl cnQgOmNsYXNzOmB+ZGF0ZXRpbWUuZGF0ZWAgYW5kIDpjbGFzczpgfmRhdGV0aW1lLnRpbWVgDQog ICBpbnN0YW5jZXMuICg6aXNzdWU6YDEzMzA1MzhgKQ0KIA0KICogKDMuMC13YXJuaW5nIG1vZGUp IFRoZSA6Y2xhc3M6YEV4Y2VwdGlvbmAgY2xhc3Mgbm93IHdhcm5zDQoNCl9fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fClB5dGhvbi1jaGVja2lucyBtYWlsaW5n IGxpc3QgLS0gcHl0aG9uLWNoZWNraW5zQHB5dGhvbi5vcmcKVG8gdW5zdWJzY3JpYmUgc2VuZCBh biBlbWFpbCB0byBweXRob24tY2hlY2tpbnMtbGVhdmVAcHl0aG9uLm9yZwpodHRwczovL21haWwu cHl0aG9uLm9yZy9tYWlsbWFuMy8vbGlzdHMvcHl0aG9uLWNoZWNraW5zLnB5dGhvbi5vcmcKTWVt YmVyIGFkZHJlc3M6IHB5dGhvbi1weXRob24tY2hlY2tpbnNAbS5nbWFuZS1teC5vcmcK