From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from goliath.siemens.de (goliath.siemens.de [192.35.17.28]) by mail.openembedded.org (Postfix) with ESMTP id EEA5F71AB3 for ; Mon, 6 Nov 2017 07:36:51 +0000 (UTC) Received: from mail1.sbs.de (mail1.sbs.de [192.129.41.35]) by goliath.siemens.de (8.15.2/8.15.2) with ESMTPS id vA67apZ6015520 (version=TLSv1.2 cipher=DHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK) for ; Mon, 6 Nov 2017 08:36:52 +0100 Received: from [192.168.253.100] ([163.242.56.100]) by mail1.sbs.de (8.15.2/8.15.2) with ESMTPS id vA67aoKU001315 (version=TLSv1.2 cipher=DHE-RSA-AES256-SHA bits=256 verify=NO) for ; Mon, 6 Nov 2017 08:36:51 +0100 To: "openembedded-core@lists.openembedded.org" References: <1507530577-30993-1-git-send-email-andrej.valek@siemens.com> <1509693132-18303-1-git-send-email-andrej.valek@siemens.com> From: Andrej Valek Message-ID: <2641194f-34ea-ba36-a07d-e00c8aef0b52@siemens.com> Date: Mon, 6 Nov 2017 08:37:10 +0100 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:52.0) Gecko/20100101 Thunderbird/52.3.0 MIME-Version: 1.0 In-Reply-To: <1509693132-18303-1-git-send-email-andrej.valek@siemens.com> Subject: Re: [PATCH v6] libxml2: 2.9.4 -> 2.9.7 X-BeenThere: openembedded-core@lists.openembedded.org X-Mailman-Version: 2.1.12 Precedence: list List-Id: Patches and discussions about the oe-core layer List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 06 Nov 2017 07:36:53 -0000 Content-Type: text/plain; charset=utf-8 Content-Language: en-US Content-Transfer-Encoding: base64 VGhpcyBwYXRjaCBpcyBvYnNvbGV0ZSwgZHVlIHRvIG1lcmdlZCB1cGdyYWRlIHRvIHZlcnNp b24gMi45LjUgLg0KSSBoYXZlIHNlbnQgdGhlIG5ldyBvbmUsIHdoaWNoIHVwZ3JhZGVzIHZl cnNpb24gdG8gMi45LjcNCg0KaHR0cDovL2xpc3RzLm9wZW5lbWJlZGRlZC5vcmcvcGlwZXJt YWlsL29wZW5lbWJlZGRlZC1jb3JlLzIwMTctTm92ZW1iZXIvMTQzOTczLmh0bWwNCg0KQW5k cmVqDQoNCk9uIDExLzAzLzIwMTcgMDg6MTIgQU0sIEFuZHJlaiBWYWxlayB3cm90ZToNCj4g LSByZW1vdmUgYmFja3BvcnRlZCBwYXRjaGVzIChDVkUtKiBhbmQgZml4LSopDQo+IC0gYWRh cHQgY2hhbmdlcyBmcm9tIDIuOS41KyB2ZXJzaW9uIGludG8gcHRlc3QgcGF0Y2gNCj4gDQo+ IFNpZ25lZC1vZmYtYnk6IEFuZHJlaiBWYWxlayA8YW5kcmVqLnZhbGVrQHNpZW1lbnMuY29t Pg0KPiAtLS0NCj4gIC4uLi9saWJ4bWwvbGlieG1sMi9saWJ4bWwtbTQtdXNlLXBrZ2NvbmZp Zy5wYXRjaCAgIHwgICAyICstDQo+ICAuLi4vbGlieG1sL2xpYnhtbDIvbGlieG1sMi1DVkUt MjAxNi00NjU4LnBhdGNoICAgICB8IDI2OSAtLS0tLS0tLS0tDQo+ICAuLi4vbGlieG1sL2xp YnhtbDIvbGlieG1sMi1DVkUtMjAxNi01MTMxLnBhdGNoICAgICB8IDE4MCAtLS0tLS0tDQo+ ICAuLi4vbGlieG1sL2xpYnhtbDIvbGlieG1sMi1DVkUtMjAxNy0wNjYzLnBhdGNoICAgICB8 ICA0MCAtLQ0KPiAgLi4uL2xpYnhtbC9saWJ4bWwyL2xpYnhtbDItQ1ZFLTIwMTctNTk2OS5w YXRjaCAgICAgfCAgNjIgLS0tDQo+ICAuLi4vbGlieG1sL2xpYnhtbDIvbGlieG1sMi1DVkUt MjAxNy04ODcyLnBhdGNoICAgICB8ICAzNyAtLQ0KPiAgLi4uL2xpYnhtbDItQ1ZFLTIwMTct OTA0N19DVkUtMjAxNy05MDQ4LnBhdGNoICAgICAgfCAxMDMgLS0tLQ0KPiAgLi4uL2xpYnht bDItQ1ZFLTIwMTctOTA0OV9DVkUtMjAxNy05MDUwLnBhdGNoICAgICAgfCAyOTEgLS0tLS0t LS0tLQ0KPiAgLi4uL2xpYnhtbDIvbGlieG1sMi1maXhfTlVMTF9wb2ludGVyX2RlcmVmcy5w YXRjaCAgfCAgNDUgLS0NCj4gIC4uLmlieG1sMi1maXhfYW5kX3NpbXBsaWZ5X3htbFBhcnNl U3RhcnRUYWcyLnBhdGNoIHwgNTkwIC0tLS0tLS0tLS0tLS0tLS0tLS0tLQ0KPiAgLi4uL2xp YnhtbDIvbGlieG1sMi1maXhfbm9kZV9jb21wYXJpc29uLnBhdGNoICAgICAgfCAgNjcgLS0t DQo+ICBtZXRhL3JlY2lwZXMtY29yZS9saWJ4bWwvbGlieG1sMi9ydW50ZXN0LnBhdGNoICAg ICB8ICAzNCArLQ0KPiAgLi4uL2xpYnhtbC97bGlieG1sMl8yLjkuNC5iYiA9PiBsaWJ4bWwy XzIuOS43LmJifSAgfCAgMTggKy0NCj4gIDEzIGZpbGVzIGNoYW5nZWQsIDE1IGluc2VydGlv bnMoKyksIDE3MjMgZGVsZXRpb25zKC0pDQo+ICBkZWxldGUgbW9kZSAxMDA2NDQgbWV0YS9y ZWNpcGVzLWNvcmUvbGlieG1sL2xpYnhtbDIvbGlieG1sMi1DVkUtMjAxNi00NjU4LnBhdGNo DQo+ICBkZWxldGUgbW9kZSAxMDA2NDQgbWV0YS9yZWNpcGVzLWNvcmUvbGlieG1sL2xpYnht bDIvbGlieG1sMi1DVkUtMjAxNi01MTMxLnBhdGNoDQo+ICBkZWxldGUgbW9kZSAxMDA2NDQg bWV0YS9yZWNpcGVzLWNvcmUvbGlieG1sL2xpYnhtbDIvbGlieG1sMi1DVkUtMjAxNy0wNjYz LnBhdGNoDQo+ICBkZWxldGUgbW9kZSAxMDA2NDQgbWV0YS9yZWNpcGVzLWNvcmUvbGlieG1s L2xpYnhtbDIvbGlieG1sMi1DVkUtMjAxNy01OTY5LnBhdGNoDQo+ICBkZWxldGUgbW9kZSAx MDA2NDQgbWV0YS9yZWNpcGVzLWNvcmUvbGlieG1sL2xpYnhtbDIvbGlieG1sMi1DVkUtMjAx Ny04ODcyLnBhdGNoDQo+ICBkZWxldGUgbW9kZSAxMDA2NDQgbWV0YS9yZWNpcGVzLWNvcmUv bGlieG1sL2xpYnhtbDIvbGlieG1sMi1DVkUtMjAxNy05MDQ3X0NWRS0yMDE3LTkwNDgucGF0 Y2gNCj4gIGRlbGV0ZSBtb2RlIDEwMDY0NCBtZXRhL3JlY2lwZXMtY29yZS9saWJ4bWwvbGli eG1sMi9saWJ4bWwyLUNWRS0yMDE3LTkwNDlfQ1ZFLTIwMTctOTA1MC5wYXRjaA0KPiAgZGVs ZXRlIG1vZGUgMTAwNjQ0IG1ldGEvcmVjaXBlcy1jb3JlL2xpYnhtbC9saWJ4bWwyL2xpYnht bDItZml4X05VTExfcG9pbnRlcl9kZXJlZnMucGF0Y2gNCj4gIGRlbGV0ZSBtb2RlIDEwMDY0 NCBtZXRhL3JlY2lwZXMtY29yZS9saWJ4bWwvbGlieG1sMi9saWJ4bWwyLWZpeF9hbmRfc2lt cGxpZnlfeG1sUGFyc2VTdGFydFRhZzIucGF0Y2gNCj4gIGRlbGV0ZSBtb2RlIDEwMDY0NCBt ZXRhL3JlY2lwZXMtY29yZS9saWJ4bWwvbGlieG1sMi9saWJ4bWwyLWZpeF9ub2RlX2NvbXBh cmlzb24ucGF0Y2gNCj4gIHJlbmFtZSBtZXRhL3JlY2lwZXMtY29yZS9saWJ4bWwve2xpYnht bDJfMi45LjQuYmIgPT4gbGlieG1sMl8yLjkuNy5iYn0gKDg2JSkNCj4gDQo+IGRpZmYgLS1n aXQgYS9tZXRhL3JlY2lwZXMtY29yZS9saWJ4bWwvbGlieG1sMi9saWJ4bWwtbTQtdXNlLXBr Z2NvbmZpZy5wYXRjaCBiL21ldGEvcmVjaXBlcy1jb3JlL2xpYnhtbC9saWJ4bWwyL2xpYnht bC1tNC11c2UtcGtnY29uZmlnLnBhdGNoDQo+IGluZGV4IDMyNzcxNjUuLmQ5ZWQxNTEgMTAw NjQ0DQo+IC0tLSBhL21ldGEvcmVjaXBlcy1jb3JlL2xpYnhtbC9saWJ4bWwyL2xpYnhtbC1t NC11c2UtcGtnY29uZmlnLnBhdGNoDQo+ICsrKyBiL21ldGEvcmVjaXBlcy1jb3JlL2xpYnht bC9saWJ4bWwyL2xpYnhtbC1tNC11c2UtcGtnY29uZmlnLnBhdGNoDQo+IEBAIC0xODMsNyAr MTgzLDcgQEAgaW5kZXggNjhjZDgyNC4uNWZhMGE5YiAxMDA2NDQNCj4gIC0gICAgICAgICAg ZWNobyAiKioqIElmIHlvdSBoYXZlIGFuIG9sZCB2ZXJzaW9uIGluc3RhbGxlZCwgaXQgaXMg YmVzdCB0byByZW1vdmUgaXQsIGFsdGhvdWdoIg0KPiAgLSAgICAgICAgICBlY2hvICIqKiog eW91IG1heSBhbHNvIGJlIGFibGUgdG8gZ2V0IHRoaW5ncyB0byB3b3JrIGJ5IG1vZGlmeWlu ZyBMRF9MSUJSQVJZX1BBVEgiIF0sDQo+ICAtICAgICAgICBbIGVjaG8gIioqKiBUaGUgdGVz dCBwcm9ncmFtIGZhaWxlZCB0byBjb21waWxlIG9yIGxpbmsuIFNlZSB0aGUgZmlsZSBjb25m aWcubG9nIGZvciB0aGUiDQo+IC0tICAgICAgICAgIGVjaG8gIioqKiBleGFjdCBlcnJvciB0 aGF0IG9jY3VyZWQuIFRoaXMgdXN1YWxseSBtZWFucyBMSUJYTUwgd2FzIGluY29ycmVjdGx5 IGluc3RhbGxlZCINCj4gKy0gICAgICAgICAgZWNobyAiKioqIGV4YWN0IGVycm9yIHRoYXQg b2NjdXJyZWQuIFRoaXMgdXN1YWxseSBtZWFucyBMSUJYTUwgd2FzIGluY29ycmVjdGx5IGlu c3RhbGxlZCINCj4gIC0gICAgICAgICAgZWNobyAiKioqIG9yIHRoYXQgeW91IGhhdmUgbW92 ZWQgTElCWE1MIHNpbmNlIGl0IHdhcyBpbnN0YWxsZWQuIEluIHRoZSBsYXR0ZXIgY2FzZSwg eW91Ig0KPiAgLSAgICAgICAgICBlY2hvICIqKiogbWF5IHdhbnQgdG8gZWRpdCB0aGUgeG1s Mi1jb25maWcgc2NyaXB0OiAkWE1MMl9DT05GSUciIF0pDQo+ICAtICAgICAgICAgIENQUEZM QUdTPSIkYWNfc2F2ZV9DUFBGTEFHUyINCj4gZGlmZiAtLWdpdCBhL21ldGEvcmVjaXBlcy1j b3JlL2xpYnhtbC9saWJ4bWwyL2xpYnhtbDItQ1ZFLTIwMTYtNDY1OC5wYXRjaCBiL21ldGEv cmVjaXBlcy1jb3JlL2xpYnhtbC9saWJ4bWwyL2xpYnhtbDItQ1ZFLTIwMTYtNDY1OC5wYXRj aA0KPiBkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQNCj4gaW5kZXggYmI1NWVlZC4uMDAwMDAw MA0KPiAtLS0gYS9tZXRhL3JlY2lwZXMtY29yZS9saWJ4bWwvbGlieG1sMi9saWJ4bWwyLUNW RS0yMDE2LTQ2NTgucGF0Y2gNCj4gKysrIC9kZXYvbnVsbA0KPiBAQCAtMSwyNjkgKzAsMCBA QA0KPiAtbGlieG1sMi0yLjkuNDogRml4IENWRS0yMDE2LTQ2NTgNCj4gLQ0KPiAtW05vIHVw c3RyZWFtIHRyYWNraW5nXSAtLSBodHRwczovL2J1Z3ppbGxhLnJlZGhhdC5jb20vc2hvd19i dWcuY2dpP2lkPUNWRS0yMDE2LTQ2NTgNCj4gLQ0KPiAteHBvaW50ZXI6IERpc2FsbG93IG5h bWVzcGFjZSBub2RlcyBpbiBYUG9pbnRlciBwb2ludHMgYW5kIHJhbmdlcw0KPiAtDQo+IC1O YW1lc3BhY2Ugbm9kZXMgbXVzdCBiZSBjb3BpZWQgdG8gYXZvaWQgdXNlLWFmdGVyLWZyZWUg ZXJyb3JzLg0KPiAtQnV0IHRoZXkgZG9uJ3QgbmVjZXNzYXJpbHkgaGF2ZSBhIHBoeXNpY2Fs IHJlcHJlc2VudGF0aW9uIGluIGENCj4gLWRvY3VtZW50LCBzbyBzaW1wbHkgZGlzYWxsb3cg dGhlbSBpbiBYUG9pbnRlciByYW5nZXMuDQo+IC0NCj4gLVVwc3RyZWFtLVN0YXR1czogQmFj a3BvcnQNCj4gLSAtIFtodHRwczovL2dpdC5nbm9tZS5vcmcvYnJvd3NlL2xpYnhtbDIvY29t bWl0Lz9pZD1jMWQxZjcxMjExOTQwMzY2MDhiZjU1NWYwOGQzMDYyYTM2ZmQzNDRiXQ0KPiAt IC0gW2h0dHBzOi8vZ2l0Lmdub21lLm9yZy9icm93c2UvbGlieG1sMi9jb21taXQvP2lkPTNm OGE5MTAzNmQzMzhlNTFjMDU5ZDU0Mzk3YTQyZDY0NWYwMTljNjVdDQo+IC1DVkU6IENWRS0y MDE2LTQ2NTgNCj4gLVNpZ25lZC1vZmYtYnk6IEFuZHJlaiBWYWxlayA8YW5kcmVqLnZhbGVr QHNpZW1lbnMuY29tPg0KPiAtU2lnbmVkLW9mZi1ieTogUGFzY2FsIEJhY2ggPHBhc2NhbC5i YWNoQHNpZW1lbnMuY29tPg0KPiAtDQo+IC1kaWZmIC0tZ2l0IGEveHBvaW50ZXIuYyBiL3hw b2ludGVyLmMNCj4gLWluZGV4IDY3NmM1MTAuLjkxMTY4MGQgMTAwNjQ0DQo+IC0tLS0gYS94 cG9pbnRlci5jDQo+IC0rKysgYi94cG9pbnRlci5jDQo+IC1AQCAtMzIwLDYgKzMyMCw0NSBA QCB4bWxYUHRyUmFuZ2VzRXF1YWwoeG1sWFBhdGhPYmplY3RQdHIgcmFuZ2UxLCB4bWxYUGF0 aE9iamVjdFB0ciByYW5nZTIpIHsNCj4gLSB9DQo+IC0gDQo+IC0gLyoqDQo+IC0rICogeG1s WFB0ck5ld1JhbmdlSW50ZXJuYWw6DQo+IC0rICogQHN0YXJ0OiAgdGhlIHN0YXJ0aW5nIG5v ZGUNCj4gLSsgKiBAc3RhcnRpbmRleDogIHRoZSBzdGFydCBpbmRleA0KPiAtKyAqIEBlbmQ6 ICB0aGUgZW5kaW5nIHBvaW50DQo+IC0rICogQGVuZGluZGV4OiAgdGhlIGVuZGluZyBpbmRl eA0KPiAtKyAqDQo+IC0rICogSW50ZXJuYWwgZnVuY3Rpb24gdG8gY3JlYXRlIGEgbmV3IHht bFhQYXRoT2JqZWN0UHRyIG9mIHR5cGUgcmFuZ2UNCj4gLSsgKg0KPiAtKyAqIFJldHVybnMg dGhlIG5ld2x5IGNyZWF0ZWQgb2JqZWN0Lg0KPiAtKyAqLw0KPiAtK3N0YXRpYyB4bWxYUGF0 aE9iamVjdFB0cg0KPiAtK3htbFhQdHJOZXdSYW5nZUludGVybmFsKHhtbE5vZGVQdHIgc3Rh cnQsIGludCBzdGFydGluZGV4LA0KPiAtKyAgICAgICAgICAgICAgICAgICAgICAgIHhtbE5v ZGVQdHIgZW5kLCBpbnQgZW5kaW5kZXgpIHsNCj4gLSsgICAgeG1sWFBhdGhPYmplY3RQdHIg cmV0Ow0KPiAtKw0KPiAtKyAgICAvKg0KPiAtKyAgICAgKiBOYW1lc3BhY2Ugbm9kZXMgbXVz dCBiZSBjb3BpZWQgKHNlZSB4bWxYUGF0aE5vZGVTZXREdXBOcykuDQo+IC0rICAgICAqIERp c2FsbG93IHRoZW0gZm9yIG5vdy4NCj4gLSsgICAgICovDQo+IC0rICAgIGlmICgoc3RhcnQg IT0gTlVMTCkgJiYgKHN0YXJ0LT50eXBlID09IFhNTF9OQU1FU1BBQ0VfREVDTCkpDQo+IC0r CXJldHVybihOVUxMKTsNCj4gLSsgICAgaWYgKChlbmQgIT0gTlVMTCkgJiYgKGVuZC0+dHlw ZSA9PSBYTUxfTkFNRVNQQUNFX0RFQ0wpKQ0KPiAtKwlyZXR1cm4oTlVMTCk7DQo+IC0rDQo+ IC0rICAgIHJldCA9ICh4bWxYUGF0aE9iamVjdFB0cikgeG1sTWFsbG9jKHNpemVvZih4bWxY UGF0aE9iamVjdCkpOw0KPiAtKyAgICBpZiAocmV0ID09IE5VTEwpIHsNCj4gLSsgICAgICAg IHhtbFhQdHJFcnJNZW1vcnkoImFsbG9jYXRpbmcgcmFuZ2UiKTsNCj4gLSsJcmV0dXJuKE5V TEwpOw0KPiAtKyAgICB9DQo+IC0rICAgIG1lbXNldChyZXQsIDAsIHNpemVvZih4bWxYUGF0 aE9iamVjdCkpOw0KPiAtKyAgICByZXQtPnR5cGUgPSBYUEFUSF9SQU5HRTsNCj4gLSsgICAg cmV0LT51c2VyID0gc3RhcnQ7DQo+IC0rICAgIHJldC0+aW5kZXggPSBzdGFydGluZGV4Ow0K PiAtKyAgICByZXQtPnVzZXIyID0gZW5kOw0KPiAtKyAgICByZXQtPmluZGV4MiA9IGVuZGlu ZGV4Ow0KPiAtKyAgICByZXR1cm4ocmV0KTsNCj4gLSt9DQo+IC0rDQo+IC0rLyoqDQo+IC0g ICogeG1sWFB0ck5ld1JhbmdlOg0KPiAtICAqIEBzdGFydDogIHRoZSBzdGFydGluZyBub2Rl DQo+IC0gICogQHN0YXJ0aW5kZXg6ICB0aGUgc3RhcnQgaW5kZXgNCj4gLUBAIC0zNDQsMTcg KzM4Myw3IEBAIHhtbFhQdHJOZXdSYW5nZSh4bWxOb2RlUHRyIHN0YXJ0LCBpbnQgc3RhcnRp bmRleCwNCj4gLSAgICAgaWYgKGVuZGluZGV4IDwgMCkNCj4gLSAJcmV0dXJuKE5VTEwpOw0K PiAtIA0KPiAtLSAgICByZXQgPSAoeG1sWFBhdGhPYmplY3RQdHIpIHhtbE1hbGxvYyhzaXpl b2YoeG1sWFBhdGhPYmplY3QpKTsNCj4gLS0gICAgaWYgKHJldCA9PSBOVUxMKSB7DQo+IC0t ICAgICAgICB4bWxYUHRyRXJyTWVtb3J5KCJhbGxvY2F0aW5nIHJhbmdlIik7DQo+IC0tCXJl dHVybihOVUxMKTsNCj4gLS0gICAgfQ0KPiAtLSAgICBtZW1zZXQocmV0LCAwICwgKHNpemVf dCkgc2l6ZW9mKHhtbFhQYXRoT2JqZWN0KSk7DQo+IC0tICAgIHJldC0+dHlwZSA9IFhQQVRI X1JBTkdFOw0KPiAtLSAgICByZXQtPnVzZXIgPSBzdGFydDsNCj4gLS0gICAgcmV0LT5pbmRl eCA9IHN0YXJ0aW5kZXg7DQo+IC0tICAgIHJldC0+dXNlcjIgPSBlbmQ7DQo+IC0tICAgIHJl dC0+aW5kZXgyID0gZW5kaW5kZXg7DQo+IC0rICAgIHJldCA9IHhtbFhQdHJOZXdSYW5nZUlu dGVybmFsKHN0YXJ0LCBzdGFydGluZGV4LCBlbmQsIGVuZGluZGV4KTsNCj4gLSAgICAgeG1s WFB0clJhbmdlQ2hlY2tPcmRlcihyZXQpOw0KPiAtICAgICByZXR1cm4ocmV0KTsNCj4gLSB9 DQo+IC1AQCAtMzgxLDE3ICs0MTAsOCBAQCB4bWxYUHRyTmV3UmFuZ2VQb2ludHMoeG1sWFBh dGhPYmplY3RQdHIgc3RhcnQsIHhtbFhQYXRoT2JqZWN0UHRyIGVuZCkgew0KPiAtICAgICBp ZiAoZW5kLT50eXBlICE9IFhQQVRIX1BPSU5UKQ0KPiAtIAlyZXR1cm4oTlVMTCk7DQo+IC0g DQo+IC0tICAgIHJldCA9ICh4bWxYUGF0aE9iamVjdFB0cikgeG1sTWFsbG9jKHNpemVvZih4 bWxYUGF0aE9iamVjdCkpOw0KPiAtLSAgICBpZiAocmV0ID09IE5VTEwpIHsNCj4gLS0gICAg ICAgIHhtbFhQdHJFcnJNZW1vcnkoImFsbG9jYXRpbmcgcmFuZ2UiKTsNCj4gLS0JcmV0dXJu KE5VTEwpOw0KPiAtLSAgICB9DQo+IC0tICAgIG1lbXNldChyZXQsIDAgLCAoc2l6ZV90KSBz aXplb2YoeG1sWFBhdGhPYmplY3QpKTsNCj4gLS0gICAgcmV0LT50eXBlID0gWFBBVEhfUkFO R0U7DQo+IC0tICAgIHJldC0+dXNlciA9IHN0YXJ0LT51c2VyOw0KPiAtLSAgICByZXQtPmlu ZGV4ID0gc3RhcnQtPmluZGV4Ow0KPiAtLSAgICByZXQtPnVzZXIyID0gZW5kLT51c2VyOw0K PiAtLSAgICByZXQtPmluZGV4MiA9IGVuZC0+aW5kZXg7DQo+IC0rICAgIHJldCA9IHhtbFhQ dHJOZXdSYW5nZUludGVybmFsKHN0YXJ0LT51c2VyLCBzdGFydC0+aW5kZXgsIGVuZC0+dXNl ciwNCj4gLSsJCQkJICBlbmQtPmluZGV4KTsNCj4gLSAgICAgeG1sWFB0clJhbmdlQ2hlY2tP cmRlcihyZXQpOw0KPiAtICAgICByZXR1cm4ocmV0KTsNCj4gLSB9DQo+IC1AQCAtNDE2LDE3 ICs0MzYsNyBAQCB4bWxYUHRyTmV3UmFuZ2VQb2ludE5vZGUoeG1sWFBhdGhPYmplY3RQdHIg c3RhcnQsIHhtbE5vZGVQdHIgZW5kKSB7DQo+IC0gICAgIGlmIChzdGFydC0+dHlwZSAhPSBY UEFUSF9QT0lOVCkNCj4gLSAJcmV0dXJuKE5VTEwpOw0KPiAtIA0KPiAtLSAgICByZXQgPSAo eG1sWFBhdGhPYmplY3RQdHIpIHhtbE1hbGxvYyhzaXplb2YoeG1sWFBhdGhPYmplY3QpKTsN Cj4gLS0gICAgaWYgKHJldCA9PSBOVUxMKSB7DQo+IC0tICAgICAgICB4bWxYUHRyRXJyTWVt b3J5KCJhbGxvY2F0aW5nIHJhbmdlIik7DQo+IC0tCXJldHVybihOVUxMKTsNCj4gLS0gICAg fQ0KPiAtLSAgICBtZW1zZXQocmV0LCAwICwgKHNpemVfdCkgc2l6ZW9mKHhtbFhQYXRoT2Jq ZWN0KSk7DQo+IC0tICAgIHJldC0+dHlwZSA9IFhQQVRIX1JBTkdFOw0KPiAtLSAgICByZXQt PnVzZXIgPSBzdGFydC0+dXNlcjsNCj4gLS0gICAgcmV0LT5pbmRleCA9IHN0YXJ0LT5pbmRl eDsNCj4gLS0gICAgcmV0LT51c2VyMiA9IGVuZDsNCj4gLS0gICAgcmV0LT5pbmRleDIgPSAt MTsNCj4gLSsgICAgcmV0ID0geG1sWFB0ck5ld1JhbmdlSW50ZXJuYWwoc3RhcnQtPnVzZXIs IHN0YXJ0LT5pbmRleCwgZW5kLCAtMSk7DQo+IC0gICAgIHhtbFhQdHJSYW5nZUNoZWNrT3Jk ZXIocmV0KTsNCj4gLSAgICAgcmV0dXJuKHJldCk7DQo+IC0gfQ0KPiAtQEAgLTQ1MywxNyAr NDYzLDcgQEAgeG1sWFB0ck5ld1JhbmdlTm9kZVBvaW50KHhtbE5vZGVQdHIgc3RhcnQsIHht bFhQYXRoT2JqZWN0UHRyIGVuZCkgew0KPiAtICAgICBpZiAoZW5kLT50eXBlICE9IFhQQVRI X1BPSU5UKQ0KPiAtIAlyZXR1cm4oTlVMTCk7DQo+IC0gDQo+IC0tICAgIHJldCA9ICh4bWxY UGF0aE9iamVjdFB0cikgeG1sTWFsbG9jKHNpemVvZih4bWxYUGF0aE9iamVjdCkpOw0KPiAt LSAgICBpZiAocmV0ID09IE5VTEwpIHsNCj4gLS0gICAgICAgIHhtbFhQdHJFcnJNZW1vcnko ImFsbG9jYXRpbmcgcmFuZ2UiKTsNCj4gLS0JcmV0dXJuKE5VTEwpOw0KPiAtLSAgICB9DQo+ IC0tICAgIG1lbXNldChyZXQsIDAgLCAoc2l6ZV90KSBzaXplb2YoeG1sWFBhdGhPYmplY3Qp KTsNCj4gLS0gICAgcmV0LT50eXBlID0gWFBBVEhfUkFOR0U7DQo+IC0tICAgIHJldC0+dXNl ciA9IHN0YXJ0Ow0KPiAtLSAgICByZXQtPmluZGV4ID0gLTE7DQo+IC0tICAgIHJldC0+dXNl cjIgPSBlbmQtPnVzZXI7DQo+IC0tICAgIHJldC0+aW5kZXgyID0gZW5kLT5pbmRleDsNCj4g LSsgICAgcmV0ID0geG1sWFB0ck5ld1JhbmdlSW50ZXJuYWwoc3RhcnQsIC0xLCBlbmQtPnVz ZXIsIGVuZC0+aW5kZXgpOw0KPiAtICAgICB4bWxYUHRyUmFuZ2VDaGVja09yZGVyKHJldCk7 DQo+IC0gICAgIHJldHVybihyZXQpOw0KPiAtIH0NCj4gLUBAIC00ODYsMTcgKzQ4Niw3IEBA IHhtbFhQdHJOZXdSYW5nZU5vZGVzKHhtbE5vZGVQdHIgc3RhcnQsIHhtbE5vZGVQdHIgZW5k KSB7DQo+IC0gICAgIGlmIChlbmQgPT0gTlVMTCkNCj4gLSAJcmV0dXJuKE5VTEwpOw0KPiAt IA0KPiAtLSAgICByZXQgPSAoeG1sWFBhdGhPYmplY3RQdHIpIHhtbE1hbGxvYyhzaXplb2Yo eG1sWFBhdGhPYmplY3QpKTsNCj4gLS0gICAgaWYgKHJldCA9PSBOVUxMKSB7DQo+IC0tICAg ICAgICB4bWxYUHRyRXJyTWVtb3J5KCJhbGxvY2F0aW5nIHJhbmdlIik7DQo+IC0tCXJldHVy bihOVUxMKTsNCj4gLS0gICAgfQ0KPiAtLSAgICBtZW1zZXQocmV0LCAwICwgKHNpemVfdCkg c2l6ZW9mKHhtbFhQYXRoT2JqZWN0KSk7DQo+IC0tICAgIHJldC0+dHlwZSA9IFhQQVRIX1JB TkdFOw0KPiAtLSAgICByZXQtPnVzZXIgPSBzdGFydDsNCj4gLS0gICAgcmV0LT5pbmRleCA9 IC0xOw0KPiAtLSAgICByZXQtPnVzZXIyID0gZW5kOw0KPiAtLSAgICByZXQtPmluZGV4MiA9 IC0xOw0KPiAtKyAgICByZXQgPSB4bWxYUHRyTmV3UmFuZ2VJbnRlcm5hbChzdGFydCwgLTEs IGVuZCwgLTEpOw0KPiAtICAgICB4bWxYUHRyUmFuZ2VDaGVja09yZGVyKHJldCk7DQo+IC0g ICAgIHJldHVybihyZXQpOw0KPiAtIH0NCj4gLUBAIC01MTYsMTcgKzUwNiw3IEBAIHhtbFhQ dHJOZXdDb2xsYXBzZWRSYW5nZSh4bWxOb2RlUHRyIHN0YXJ0KSB7DQo+IC0gICAgIGlmIChz dGFydCA9PSBOVUxMKQ0KPiAtIAlyZXR1cm4oTlVMTCk7DQo+IC0gDQo+IC0tICAgIHJldCA9 ICh4bWxYUGF0aE9iamVjdFB0cikgeG1sTWFsbG9jKHNpemVvZih4bWxYUGF0aE9iamVjdCkp Ow0KPiAtLSAgICBpZiAocmV0ID09IE5VTEwpIHsNCj4gLS0gICAgICAgIHhtbFhQdHJFcnJN ZW1vcnkoImFsbG9jYXRpbmcgcmFuZ2UiKTsNCj4gLS0JcmV0dXJuKE5VTEwpOw0KPiAtLSAg ICB9DQo+IC0tICAgIG1lbXNldChyZXQsIDAgLCAoc2l6ZV90KSBzaXplb2YoeG1sWFBhdGhP YmplY3QpKTsNCj4gLS0gICAgcmV0LT50eXBlID0gWFBBVEhfUkFOR0U7DQo+IC0tICAgIHJl dC0+dXNlciA9IHN0YXJ0Ow0KPiAtLSAgICByZXQtPmluZGV4ID0gLTE7DQo+IC0tICAgIHJl dC0+dXNlcjIgPSBOVUxMOw0KPiAtLSAgICByZXQtPmluZGV4MiA9IC0xOw0KPiAtKyAgICBy ZXQgPSB4bWxYUHRyTmV3UmFuZ2VJbnRlcm5hbChzdGFydCwgLTEsIE5VTEwsIC0xKTsNCj4g LSAgICAgcmV0dXJuKHJldCk7DQo+IC0gfQ0KPiAtIA0KPiAtQEAgLTU0MSw2ICs1MjEsOCBA QCB4bWxYUHRyTmV3Q29sbGFwc2VkUmFuZ2UoeG1sTm9kZVB0ciBzdGFydCkgew0KPiAtICAq Lw0KPiAtIHhtbFhQYXRoT2JqZWN0UHRyDQo+IC0geG1sWFB0ck5ld1JhbmdlTm9kZU9iamVj dCh4bWxOb2RlUHRyIHN0YXJ0LCB4bWxYUGF0aE9iamVjdFB0ciBlbmQpIHsNCj4gLSsgICAg eG1sTm9kZVB0ciBlbmROb2RlOw0KPiAtKyAgICBpbnQgZW5kSW5kZXg7DQo+IC0gICAgIHht bFhQYXRoT2JqZWN0UHRyIHJldDsNCj4gLSANCj4gLSAgICAgaWYgKHN0YXJ0ID09IE5VTEwp DQo+IC1AQCAtNTQ5LDcgKzUzMSwxMiBAQCB4bWxYUHRyTmV3UmFuZ2VOb2RlT2JqZWN0KHht bE5vZGVQdHIgc3RhcnQsIHhtbFhQYXRoT2JqZWN0UHRyIGVuZCkgew0KPiAtIAlyZXR1cm4o TlVMTCk7DQo+IC0gICAgIHN3aXRjaCAoZW5kLT50eXBlKSB7DQo+IC0gCWNhc2UgWFBBVEhf UE9JTlQ6DQo+IC0rCSAgICBlbmROb2RlID0gZW5kLT51c2VyOw0KPiAtKwkgICAgZW5kSW5k ZXggPSBlbmQtPmluZGV4Ow0KPiAtKwkgICAgYnJlYWs7DQo+IC0gCWNhc2UgWFBBVEhfUkFO R0U6DQo+IC0rCSAgICBlbmROb2RlID0gZW5kLT51c2VyMjsNCj4gLSsJICAgIGVuZEluZGV4 ID0gZW5kLT5pbmRleDI7DQo+IC0gCSAgICBicmVhazsNCj4gLSAJY2FzZSBYUEFUSF9OT0RF U0VUOg0KPiAtIAkgICAgLyoNCj4gLUBAIC01NTcsMzkgKzU0NCwxNSBAQCB4bWxYUHRyTmV3 UmFuZ2VOb2RlT2JqZWN0KHhtbE5vZGVQdHIgc3RhcnQsIHhtbFhQYXRoT2JqZWN0UHRyIGVu ZCkgew0KPiAtIAkgICAgICovDQo+IC0gCSAgICBpZiAoZW5kLT5ub2Rlc2V0dmFsLT5ub2Rl TnIgPD0gMCkNCj4gLSAJCXJldHVybihOVUxMKTsNCj4gLSsJICAgIGVuZE5vZGUgPSBlbmQt Pm5vZGVzZXR2YWwtPm5vZGVUYWJbZW5kLT5ub2Rlc2V0dmFsLT5ub2RlTnIgLSAxXTsNCj4g LSsJICAgIGVuZEluZGV4ID0gLTE7DQo+IC0gCSAgICBicmVhazsNCj4gLSAJZGVmYXVsdDoN Cj4gLSAJICAgIC8qIFRPRE8gKi8NCj4gLSAJICAgIHJldHVybihOVUxMKTsNCj4gLSAgICAg fQ0KPiAtIA0KPiAtLSAgICByZXQgPSAoeG1sWFBhdGhPYmplY3RQdHIpIHhtbE1hbGxvYyhz aXplb2YoeG1sWFBhdGhPYmplY3QpKTsNCj4gLS0gICAgaWYgKHJldCA9PSBOVUxMKSB7DQo+ IC0tICAgICAgICB4bWxYUHRyRXJyTWVtb3J5KCJhbGxvY2F0aW5nIHJhbmdlIik7DQo+IC0t CXJldHVybihOVUxMKTsNCj4gLS0gICAgfQ0KPiAtLSAgICBtZW1zZXQocmV0LCAwICwgKHNp emVfdCkgc2l6ZW9mKHhtbFhQYXRoT2JqZWN0KSk7DQo+IC0tICAgIHJldC0+dHlwZSA9IFhQ QVRIX1JBTkdFOw0KPiAtLSAgICByZXQtPnVzZXIgPSBzdGFydDsNCj4gLS0gICAgcmV0LT5p bmRleCA9IC0xOw0KPiAtLSAgICBzd2l0Y2ggKGVuZC0+dHlwZSkgew0KPiAtLQljYXNlIFhQ QVRIX1BPSU5UOg0KPiAtLQkgICAgcmV0LT51c2VyMiA9IGVuZC0+dXNlcjsNCj4gLS0JICAg IHJldC0+aW5kZXgyID0gZW5kLT5pbmRleDsNCj4gLS0JICAgIGJyZWFrOw0KPiAtLQljYXNl IFhQQVRIX1JBTkdFOg0KPiAtLQkgICAgcmV0LT51c2VyMiA9IGVuZC0+dXNlcjI7DQo+IC0t CSAgICByZXQtPmluZGV4MiA9IGVuZC0+aW5kZXgyOw0KPiAtLQkgICAgYnJlYWs7DQo+IC0t CWNhc2UgWFBBVEhfTk9ERVNFVDogew0KPiAtLQkgICAgcmV0LT51c2VyMiA9IGVuZC0+bm9k ZXNldHZhbC0+bm9kZVRhYltlbmQtPm5vZGVzZXR2YWwtPm5vZGVOciAtIDFdOw0KPiAtLQkg ICAgcmV0LT5pbmRleDIgPSAtMTsNCj4gLS0JICAgIGJyZWFrOw0KPiAtLQl9DQo+IC0tCWRl ZmF1bHQ6DQo+IC0tCSAgICBTVFJBTkdFDQo+IC0tCSAgICByZXR1cm4oTlVMTCk7DQo+IC0t ICAgIH0NCj4gLSsgICAgcmV0ID0geG1sWFB0ck5ld1JhbmdlSW50ZXJuYWwoc3RhcnQsIC0x LCBlbmROb2RlLCBlbmRJbmRleCk7DQo+IC0gICAgIHhtbFhQdHJSYW5nZUNoZWNrT3JkZXIo cmV0KTsNCj4gLSAgICAgcmV0dXJuKHJldCk7DQo+IC0gfQ0KPiAtQEAgLTE4MzUsOCArMTc5 OCw4IEBAIHhtbFhQdHJTdGFydFBvaW50RnVuY3Rpb24oeG1sWFBhdGhQYXJzZXJDb250ZXh0 UHRyIGN0eHQsIGludCBuYXJncykgew0KPiAtIAkJY2FzZSBYUEFUSF9SQU5HRTogew0KPiAt IAkJICAgIHhtbE5vZGVQdHIgbm9kZSA9IHRtcC0+dXNlcjsNCj4gLSAJCSAgICBpZiAobm9k ZSAhPSBOVUxMKSB7DQo+IC0tCQkJaWYgKG5vZGUtPnR5cGUgPT0gWE1MX0FUVFJJQlVURV9O T0RFKSB7DQo+IC0tCQkJICAgIC8qIFRPRE86IE5hbWVzcGFjZSBOb2RlcyA/Pz8gKi8NCj4g LSsJCQlpZiAoKG5vZGUtPnR5cGUgPT0gWE1MX0FUVFJJQlVURV9OT0RFKSB8fA0KPiAtKwkJ CSAgICAgKG5vZGUtPnR5cGUgPT0gWE1MX05BTUVTUEFDRV9ERUNMKSkgew0KPiAtIAkJCSAg ICB4bWxYUGF0aEZyZWVPYmplY3Qob2JqKTsNCj4gLSAJCQkgICAgeG1sWFB0ckZyZWVMb2Nh dGlvblNldChuZXdzZXQpOw0KPiAtIAkJCSAgICBYUF9FUlJPUihYUFRSX1NZTlRBWF9FUlJP Uik7DQo+IC1AQCAtMTkzMSw4ICsxODk0LDggQEAgeG1sWFB0ckVuZFBvaW50RnVuY3Rpb24o eG1sWFBhdGhQYXJzZXJDb250ZXh0UHRyIGN0eHQsIGludCBuYXJncykgew0KPiAtIAkJY2Fz ZSBYUEFUSF9SQU5HRTogew0KPiAtIAkJICAgIHhtbE5vZGVQdHIgbm9kZSA9IHRtcC0+dXNl cjI7DQo+IC0gCQkgICAgaWYgKG5vZGUgIT0gTlVMTCkgew0KPiAtLQkJCWlmIChub2RlLT50 eXBlID09IFhNTF9BVFRSSUJVVEVfTk9ERSkgew0KPiAtLQkJCSAgICAvKiBUT0RPOiBOYW1l c3BhY2UgTm9kZXMgPz8/ICovDQo+IC0rCQkJaWYgKChub2RlLT50eXBlID09IFhNTF9BVFRS SUJVVEVfTk9ERSkgfHwNCj4gLSsJCQkgICAgIChub2RlLT50eXBlID09IFhNTF9OQU1FU1BB Q0VfREVDTCkpIHsNCj4gLSAJCQkgICAgeG1sWFBhdGhGcmVlT2JqZWN0KG9iaik7DQo+IC0g CQkJICAgIHhtbFhQdHJGcmVlTG9jYXRpb25TZXQobmV3c2V0KTsNCj4gLSAJCQkgICAgWFBf RVJST1IoWFBUUl9TWU5UQVhfRVJST1IpOw0KPiBkaWZmIC0tZ2l0IGEvbWV0YS9yZWNpcGVz LWNvcmUvbGlieG1sL2xpYnhtbDIvbGlieG1sMi1DVkUtMjAxNi01MTMxLnBhdGNoIGIvbWV0 YS9yZWNpcGVzLWNvcmUvbGlieG1sL2xpYnhtbDIvbGlieG1sMi1DVkUtMjAxNi01MTMxLnBh dGNoDQo+IGRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NA0KPiBpbmRleCA5ZDQ3ZDAyLi4wMDAw MDAwDQo+IC0tLSBhL21ldGEvcmVjaXBlcy1jb3JlL2xpYnhtbC9saWJ4bWwyL2xpYnhtbDIt Q1ZFLTIwMTYtNTEzMS5wYXRjaA0KPiArKysgL2Rldi9udWxsDQo+IEBAIC0xLDE4MCArMCww IEBADQo+IC1Gcm9tIDlhYjAxYTI3N2Q3MWY1NGQzMTQzYzJjZjMzM2M1YzJlOWFhZWRkOWUg TW9uIFNlcCAxNyAwMDowMDowMCAyMDAxDQo+IC1Gcm9tOiBOaWNrIFdlbGxuaG9mZXIgPHdl bGxuaG9mZXJAYWV2dW0uZGU+DQo+IC1EYXRlOiBUdWUsIDI4IEp1biAyMDE2IDE0OjIyOjIz ICswMjAwDQo+IC1TdWJqZWN0OiBbUEFUQ0hdIEZpeCBYUG9pbnRlciBwYXRocyBiZWdpbm5p bmcgd2l0aCByYW5nZS10bw0KPiAtDQo+IC1UaGUgb2xkIGNvZGUgd291bGQgaW52b2tlIHRo ZSBicm9rZW4geG1sWFB0clJhbmdlVG9GdW5jdGlvbi4gcmFuZ2UtdG8NCj4gLWlzbid0IHJl YWxseSBhIGZ1bmN0aW9uIGJ1dCBhIHNwZWNpYWwga2luZCBvZiBsb2NhdGlvbiBzdGVwLiBS ZW1vdmUNCj4gLXRoaXMgZnVuY3Rpb24gYW5kIGFsd2F5cyBoYW5kbGUgcmFuZ2UtdG8gaW4g dGhlIFhQYXRoIGNvZGUuDQo+IC0NCj4gLVRoZSBvbGQgeG1sWFB0clJhbmdlVG9GdW5jdGlv biBjb3VsZCBhbHNvIGJlIGFidXNlZCB0byB0cmlnZ2VyIGENCj4gLXVzZS1hZnRlci1mcmVl IGVycm9yIHdpdGggdGhlIHBvdGVudGlhbCBmb3IgcmVtb3RlIGNvZGUgZXhlY3V0aW9uLg0K PiAtDQo+IC1Gb3VuZCB3aXRoIGFmbC1mdXp6Lg0KPiAtDQo+IC1GaXhlcyBDVkUtMjAxNi01 MTMxLg0KPiAtDQo+IC1DVkU6IENWRS0yMDE2LTUxMzENCj4gLVVwc3RyZWFtLVN0YXR1czog QmFja3BvcnQNCj4gLWh0dHBzOi8vZ2l0Lmdub21lLm9yZy9icm93c2UvbGlieG1sMi9jb21t aXQvP2lkPTlhYjAxYTI3N2Q3MWY1NGQzMTQzYzJjZjMzM2M1YzJlOWFhZWRkOWUNCj4gLQ0K PiAtU2lnbmVkLW9mZi1ieTogWWkgWmhhbyA8eWkuemhhb0B3aW5kaXJ2ZXIuY29tPg0KPiAt LS0tDQo+IC0gcmVzdWx0L1hQYXRoL3hwdHIvdmlkYmFzZSB8IDEzICsrKysrKysrDQo+IC0g dGVzdC9YUGF0aC94cHRyL3ZpZGJhc2UgICB8ICAxICsNCj4gLSB4cGF0aC5jICAgICAgICAg ICAgICAgICAgIHwgIDcgKysrKy0NCj4gLSB4cG9pbnRlci5jICAgICAgICAgICAgICAgIHwg NzYgKysrKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0NCj4g LSA0IGZpbGVzIGNoYW5nZWQsIDI2IGluc2VydGlvbnMoKyksIDcxIGRlbGV0aW9ucygtKQ0K PiAtDQo+IC1kaWZmIC0tZ2l0IGEvcmVzdWx0L1hQYXRoL3hwdHIvdmlkYmFzZSBiL3Jlc3Vs dC9YUGF0aC94cHRyL3ZpZGJhc2UNCj4gLWluZGV4IDhiOWU5MmQuLmYxOTE5M2UgMTAwNjQ0 DQo+IC0tLS0gYS9yZXN1bHQvWFBhdGgveHB0ci92aWRiYXNlDQo+IC0rKysgYi9yZXN1bHQv WFBhdGgveHB0ci92aWRiYXNlDQo+IC1AQCAtMTcsMyArMTcsMTYgQEAgT2JqZWN0IGlzIGEg TG9jYXRpb24gU2V0Og0KPiAtICAgVG8gbm9kZQ0KPiAtICAgICBFTEVNRU5UIHANCj4gLSAN Cj4gLSsNCj4gLSs9PT09PT09PT09PT09PT09PT09PT09PT0NCj4gLStFeHByZXNzaW9uOiB4 cG9pbnRlcihyYW5nZS10byhpZCgnY2hhcHRlcjInKSkpDQo+IC0rT2JqZWN0IGlzIGEgTG9j YXRpb24gU2V0Og0KPiAtKzEgOiAgIE9iamVjdCBpcyBhIHJhbmdlIDoNCj4gLSsgIEZyb20g bm9kZQ0KPiAtKyAgICAgLw0KPiAtKyAgVG8gbm9kZQ0KPiAtKyAgICBFTEVNRU5UIGNoYXB0 ZXINCj4gLSsgICAgICBBVFRSSUJVVEUgaWQNCj4gLSsgICAgICAgIFRFWFQNCj4gLSsgICAg ICAgICAgY29udGVudD1jaGFwdGVyMg0KPiAtKw0KPiAtZGlmZiAtLWdpdCBhL3Rlc3QvWFBh dGgveHB0ci92aWRiYXNlIGIvdGVzdC9YUGF0aC94cHRyL3ZpZGJhc2UNCj4gLWluZGV4IGIx NDYzODMuLjg4NGIxMDYgMTAwNjQ0DQo+IC0tLS0gYS90ZXN0L1hQYXRoL3hwdHIvdmlkYmFz ZQ0KPiAtKysrIGIvdGVzdC9YUGF0aC94cHRyL3ZpZGJhc2UNCj4gLUBAIC0xLDIgKzEsMyBA QA0KPiAtIHhwb2ludGVyKGlkKCdjaGFwdGVyMScpL3ApDQo+IC0geHBvaW50ZXIoaWQoJ2No YXB0ZXIxJykvcFsxXS9yYW5nZS10byhmb2xsb3dpbmctc2libGluZzo6cFsyXSkpDQo+IC0r eHBvaW50ZXIocmFuZ2UtdG8oaWQoJ2NoYXB0ZXIyJykpKQ0KPiAtZGlmZiAtLWdpdCBhL3hw YXRoLmMgYi94cGF0aC5jDQo+IC1pbmRleCBkOTkyODQxLi41YTAxYjFiIDEwMDY0NA0KPiAt LS0tIGEveHBhdGguYw0KPiAtKysrIGIveHBhdGguYw0KPiAtQEAgLTEwNjkxLDEzICsxMDY5 MSwxOCBAQCB4bWxYUGF0aENvbXBQYXRoRXhwcih4bWxYUGF0aFBhcnNlckNvbnRleHRQdHIg Y3R4dCkgew0KPiAtIAkJICAgIGxjID0gMTsNCj4gLSAJCSAgICBicmVhazsNCj4gLSAJCX0g ZWxzZSBpZiAoKE5YVChsZW4pID09ICcoJykpIHsNCj4gLS0JCSAgICAvKiBOb3RlIFR5cGUg b3IgRnVuY3Rpb24gKi8NCj4gLSsJCSAgICAvKiBOb2RlIFR5cGUgb3IgRnVuY3Rpb24gKi8N Cj4gLSAJCSAgICBpZiAoeG1sWFBhdGhJc05vZGVUeXBlKG5hbWUpKSB7DQo+IC0gI2lmZGVm IERFQlVHX1NURVANCj4gLSAJCSAgICAgICAgeG1sR2VuZXJpY0Vycm9yKHhtbEdlbmVyaWNF cnJvckNvbnRleHQsDQo+IC0gCQkJCSJQYXRoRXhwcjogVHlwZSBzZWFyY2hcbiIpOw0KPiAt ICNlbmRpZg0KPiAtIAkJCWxjID0gMTsNCj4gLSsjaWZkZWYgTElCWE1MX1hQVFJfRU5BQkxF RA0KPiAtKyAgICAgICAgICAgICAgICAgICAgfSBlbHNlIGlmIChjdHh0LT54cHRyICYmDQo+ IC0rICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHhtbFN0ckVxdWFsKG5hbWUsIEJB RF9DQVNUICJyYW5nZS10byIpKSB7DQo+IC0rICAgICAgICAgICAgICAgICAgICAgICAgbGMg PSAxOw0KPiAtKyNlbmRpZg0KPiAtIAkJICAgIH0gZWxzZSB7DQo+IC0gI2lmZGVmIERFQlVH X1NURVANCj4gLSAJCSAgICAgICAgeG1sR2VuZXJpY0Vycm9yKHhtbEdlbmVyaWNFcnJvckNv bnRleHQsDQo+IC1kaWZmIC0tZ2l0IGEveHBvaW50ZXIuYyBiL3hwb2ludGVyLmMNCj4gLWlu ZGV4IDY3NmM1MTAuLmQ3NDE3NGEgMTAwNjQ0DQo+IC0tLS0gYS94cG9pbnRlci5jDQo+IC0r KysgYi94cG9pbnRlci5jDQo+IC1AQCAtMTMzMiw4ICsxMzMyLDYgQEAgeG1sWFB0ck5ld0Nv bnRleHQoeG1sRG9jUHRyIGRvYywgeG1sTm9kZVB0ciBoZXJlLCB4bWxOb2RlUHRyIG9yaWdp bikgew0KPiAtICAgICByZXQtPmhlcmUgPSBoZXJlOw0KPiAtICAgICByZXQtPm9yaWdpbiA9 IG9yaWdpbjsNCj4gLSANCj4gLS0gICAgeG1sWFBhdGhSZWdpc3RlckZ1bmMocmV0LCAoeG1s Q2hhciAqKSJyYW5nZS10byIsDQo+IC0tCSAgICAgICAgICAgICAgICAgeG1sWFB0clJhbmdl VG9GdW5jdGlvbik7DQo+IC0gICAgIHhtbFhQYXRoUmVnaXN0ZXJGdW5jKHJldCwgKHhtbENo YXIgKikicmFuZ2UiLA0KPiAtIAkgICAgICAgICAgICAgICAgIHhtbFhQdHJSYW5nZUZ1bmN0 aW9uKTsNCj4gLSAgICAgeG1sWFBhdGhSZWdpc3RlckZ1bmMocmV0LCAoeG1sQ2hhciAqKSJy YW5nZS1pbnNpZGUiLA0KPiAtQEAgLTIyNDMsNzYgKzIyNDEsMTQgQEAgeG1sWFB0clJhbmdl SW5zaWRlRnVuY3Rpb24oeG1sWFBhdGhQYXJzZXJDb250ZXh0UHRyIGN0eHQsIGludCBuYXJn cykgew0KPiAtICAqIEBuYXJnczogIHRoZSBudW1iZXIgb2YgYXJncw0KPiAtICAqDQo+IC0g ICogSW1wbGVtZW50IHRoZSByYW5nZS10bygpIFhQb2ludGVyIGZ1bmN0aW9uDQo+IC0rICoN Cj4gLSsgKiBPYnNvbGV0ZS4gcmFuZ2UtdG8gaXMgbm90IGEgcmVhbCBmdW5jdGlvbiBidXQg YSBzcGVjaWFsIHR5cGUgb2YgbG9jYXRpb24NCj4gLSsgKiBzdGVwIHdoaWNoIGlzIGhhbmRs ZWQgaW4geHBhdGguYy4NCj4gLSAgKi8NCj4gLSB2b2lkDQo+IC0teG1sWFB0clJhbmdlVG9G dW5jdGlvbih4bWxYUGF0aFBhcnNlckNvbnRleHRQdHIgY3R4dCwgaW50IG5hcmdzKSB7DQo+ IC0tICAgIHhtbFhQYXRoT2JqZWN0UHRyIHJhbmdlOw0KPiAtLSAgICBjb25zdCB4bWxDaGFy ICpjdXI7DQo+IC0tICAgIHhtbFhQYXRoT2JqZWN0UHRyIHJlcywgb2JqOw0KPiAtLSAgICB4 bWxYUGF0aE9iamVjdFB0ciB0bXA7DQo+IC0tICAgIHhtbExvY2F0aW9uU2V0UHRyIG5ld3Nl dCA9IE5VTEw7DQo+IC0tICAgIHhtbE5vZGVTZXRQdHIgb2xkc2V0Ow0KPiAtLSAgICBpbnQg aTsNCj4gLS0NCj4gLS0gICAgaWYgKGN0eHQgPT0gTlVMTCkgcmV0dXJuOw0KPiAtLSAgICBD SEVDS19BUklUWSgxKTsNCj4gLS0gICAgLyoNCj4gLS0gICAgICogU2F2ZSB0aGUgZXhwcmVz c2lvbiBwb2ludGVyIHNpbmNlIHdlIHdpbGwgaGF2ZSB0byBldmFsdWF0ZQ0KPiAtLSAgICAg KiBpdCBtdWx0aXBsZSB0aW1lcy4gSW5pdGlhbGl6ZSB0aGUgbmV3IHNldC4NCj4gLS0gICAg ICovDQo+IC0tICAgIENIRUNLX1RZUEUoWFBBVEhfTk9ERVNFVCk7DQo+IC0tICAgIG9iaiA9 IHZhbHVlUG9wKGN0eHQpOw0KPiAtLSAgICBvbGRzZXQgPSBvYmotPm5vZGVzZXR2YWw7DQo+ IC0tICAgIGN0eHQtPmNvbnRleHQtPm5vZGUgPSBOVUxMOw0KPiAtLQ0KPiAtLSAgICBjdXIg PSBjdHh0LT5jdXI7DQo+IC0tICAgIG5ld3NldCA9IHhtbFhQdHJMb2NhdGlvblNldENyZWF0 ZShOVUxMKTsNCj4gLS0NCj4gLS0gICAgZm9yIChpID0gMDsgaSA8IG9sZHNldC0+bm9kZU5y OyBpKyspIHsNCj4gLS0JY3R4dC0+Y3VyID0gY3VyOw0KPiAtLQ0KPiAtLQkvKg0KPiAtLQkg KiBSdW4gdGhlIGV2YWx1YXRpb24gd2l0aCBhIG5vZGUgbGlzdCBtYWRlIG9mIGEgc2luZ2xl IGl0ZW0NCj4gLS0JICogaW4gdGhlIG5vZGVzZXQuDQo+IC0tCSAqLw0KPiAtLQljdHh0LT5j b250ZXh0LT5ub2RlID0gb2xkc2V0LT5ub2RlVGFiW2ldOw0KPiAtLQl0bXAgPSB4bWxYUGF0 aE5ld05vZGVTZXQoY3R4dC0+Y29udGV4dC0+bm9kZSk7DQo+IC0tCXZhbHVlUHVzaChjdHh0 LCB0bXApOw0KPiAtLQ0KPiAtLQl4bWxYUGF0aEV2YWxFeHByKGN0eHQpOw0KPiAtLQlDSEVD S19FUlJPUjsNCj4gLS0NCj4gLS0JLyoNCj4gLS0JICogVGhlIHJlc3VsdCBvZiB0aGUgZXZh bHVhdGlvbiBuZWVkIHRvIGJlIHRlc3RlZCB0bw0KPiAtLQkgKiBkZWNpZGVkIHdoZXRoZXIg dGhlIGZpbHRlciBzdWNjZWVkZWQgb3Igbm90DQo+IC0tCSAqLw0KPiAtLQlyZXMgPSB2YWx1 ZVBvcChjdHh0KTsNCj4gLS0JcmFuZ2UgPSB4bWxYUHRyTmV3UmFuZ2VOb2RlT2JqZWN0KG9s ZHNldC0+bm9kZVRhYltpXSwgcmVzKTsNCj4gLS0JaWYgKHJhbmdlICE9IE5VTEwpIHsNCj4g LS0JICAgIHhtbFhQdHJMb2NhdGlvblNldEFkZChuZXdzZXQsIHJhbmdlKTsNCj4gLS0JfQ0K PiAtLQ0KPiAtLQkvKg0KPiAtLQkgKiBDbGVhbnVwDQo+IC0tCSAqLw0KPiAtLQlpZiAocmVz ICE9IE5VTEwpDQo+IC0tCSAgICB4bWxYUGF0aEZyZWVPYmplY3QocmVzKTsNCj4gLS0JaWYg KGN0eHQtPnZhbHVlID09IHRtcCkgew0KPiAtLQkgICAgcmVzID0gdmFsdWVQb3AoY3R4dCk7 DQo+IC0tCSAgICB4bWxYUGF0aEZyZWVPYmplY3QocmVzKTsNCj4gLS0JfQ0KPiAtLQ0KPiAt LQljdHh0LT5jb250ZXh0LT5ub2RlID0gTlVMTDsNCj4gLS0gICAgfQ0KPiAtLQ0KPiAtLSAg ICAvKg0KPiAtLSAgICAgKiBUaGUgcmVzdWx0IGlzIHVzZWQgYXMgdGhlIG5ldyBldmFsdWF0 aW9uIHNldC4NCj4gLS0gICAgICovDQo+IC0tICAgIHhtbFhQYXRoRnJlZU9iamVjdChvYmop Ow0KPiAtLSAgICBjdHh0LT5jb250ZXh0LT5ub2RlID0gTlVMTDsNCj4gLS0gICAgY3R4dC0+ Y29udGV4dC0+Y29udGV4dFNpemUgPSAtMTsNCj4gLS0gICAgY3R4dC0+Y29udGV4dC0+cHJv eGltaXR5UG9zaXRpb24gPSAtMTsNCj4gLS0gICAgdmFsdWVQdXNoKGN0eHQsIHhtbFhQdHJX cmFwTG9jYXRpb25TZXQobmV3c2V0KSk7DQo+IC0reG1sWFB0clJhbmdlVG9GdW5jdGlvbih4 bWxYUGF0aFBhcnNlckNvbnRleHRQdHIgY3R4dCwNCj4gLSsgICAgICAgICAgICAgICAgICAg ICAgIGludCBuYXJncyBBVFRSSUJVVEVfVU5VU0VEKSB7DQo+IC0rICAgIFhQX0VSUk9SKFhQ QVRIX0VYUFJfRVJST1IpOw0KPiAtIH0NCj4gLSANCj4gLSAvKioNCj4gLS0tIA0KPiAtMi43 LjQNCj4gLQ0KPiBkaWZmIC0tZ2l0IGEvbWV0YS9yZWNpcGVzLWNvcmUvbGlieG1sL2xpYnht bDIvbGlieG1sMi1DVkUtMjAxNy0wNjYzLnBhdGNoIGIvbWV0YS9yZWNpcGVzLWNvcmUvbGli eG1sL2xpYnhtbDIvbGlieG1sMi1DVkUtMjAxNy0wNjYzLnBhdGNoDQo+IGRlbGV0ZWQgZmls ZSBtb2RlIDEwMDY0NA0KPiBpbmRleCAwMTA4MjY1Li4wMDAwMDAwDQo+IC0tLSBhL21ldGEv cmVjaXBlcy1jb3JlL2xpYnhtbC9saWJ4bWwyL2xpYnhtbDItQ1ZFLTIwMTctMDY2My5wYXRj aA0KPiArKysgL2Rldi9udWxsDQo+IEBAIC0xLDQwICswLDAgQEANCj4gLWxpYnhtbDI6IEZp eCBDVkUtMjAxNy0wNjYzDQo+IC0NCj4gLVtObyB1cHN0cmVhbSB0cmFja2luZ10gLS0gaHR0 cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTc4MDIyOA0KPiAtDQo+ IC12YWxpZDogRml4IHR5cGUgY29uZnVzaW9uIGluIHhtbFZhbGlkYXRlT25lTmFtZXNwYWNl DQo+IC0NCj4gLUNvbW1lbnQgb3V0IGNvZGUgdGhhdCBjYXN0cyB4bWxOc1B0ciB0byB4bWxB dHRyUHRyLiBJRCB0eXBlcw0KPiAtb24gbmFtZXNwYWNlIGRlY2xhcmF0aW9ucyBtYWtlIG5v IHByYWN0aWNhbCBzZW5zZSBhbnl3YXkuDQo+IC0NCj4gLUZpeGVzIGJ1ZyA3ODAyMjgNCj4g LQ0KPiAtVXBzdHJlYW0tU3RhdHVzOiBCYWNrcG9ydCBbaHR0cHM6Ly9naXQuZ25vbWUub3Jn L2Jyb3dzZS9saWJ4bWwyL2NvbW1pdC8/aWQ9OTJiOWU4YzhiMzc4NzA2ODU2NWExODIwYmE1 NzVkMDQyZjllZWM2Nl0NCj4gLUNWRTogQ1ZFLTIwMTctMDY2Mw0KPiAtU2lnbmVkLW9mZi1i eTogQW5kcmVqIFZhbGVrIDxhbmRyZWoudmFsZWtAc2llbWVucy5jb20+DQo+IC0NCj4gLWRp ZmYgLS1naXQgYS92YWxpZC5jIGIvdmFsaWQuYw0KPiAtaW5kZXggMTlmODRiOC4uZTAzZDM1 ZSAxMDA2NDQNCj4gLS0tLSBhL3ZhbGlkLmMNCj4gLSsrKyBiL3ZhbGlkLmMNCj4gLUBAIC00 NjIxLDYgKzQ2MjEsMTIgQEAgeG1sTm9kZVB0ciBlbGVtLCBjb25zdCB4bWxDaGFyICpwcmVm aXgsIHhtbE5zUHRyIG5zLCBjb25zdCB4bWxDaGFyICp2YWx1ZSkgew0KPiAtIAl9DQo+IC0g ICAgIH0NCj4gLSANCj4gLSsgICAgLyoNCj4gLSsgICAgICogQ2FzdGluZyBucyB0byB4bWxB dHRyUHRyIGlzIHdyb25nLiBXZSdkIG5lZWQgc2VwYXJhdGUgZnVuY3Rpb25zDQo+IC0rICAg ICAqIHhtbEFkZElEIGFuZCB4bWxBZGRSZWYgZm9yIG5hbWVzcGFjZSBkZWNsYXJhdGlvbnMs IGJ1dCBpdCBtYWtlcw0KPiAtKyAgICAgKiBubyBwcmFjdGljYWwgc2Vuc2UgdG8gdXNlIElE IHR5cGVzIGFueXdheS4NCj4gLSsgICAgICovDQo+IC0rI2lmIDANCj4gLSAgICAgLyogVmFs aWRpdHkgQ29uc3RyYWludDogSUQgdW5pcXVlbmVzcyAqLw0KPiAtICAgICBpZiAoYXR0ckRl Y2wtPmF0eXBlID09IFhNTF9BVFRSSUJVVEVfSUQpIHsNCj4gLSAgICAgICAgIGlmICh4bWxB ZGRJRChjdHh0LCBkb2MsIHZhbHVlLCAoeG1sQXR0clB0cikgbnMpID09IE5VTEwpDQo+IC1A QCAtNDYzMiw2ICs0NjM4LDcgQEAgeG1sTm9kZVB0ciBlbGVtLCBjb25zdCB4bWxDaGFyICpw cmVmaXgsIHhtbE5zUHRyIG5zLCBjb25zdCB4bWxDaGFyICp2YWx1ZSkgew0KPiAtICAgICAg ICAgaWYgKHhtbEFkZFJlZihjdHh0LCBkb2MsIHZhbHVlLCAoeG1sQXR0clB0cikgbnMpID09 IE5VTEwpDQo+IC0gCSAgICByZXQgPSAwOw0KPiAtICAgICB9DQo+IC0rI2VuZGlmDQo+IC0g DQo+IC0gICAgIC8qIFZhbGlkaXR5IENvbnN0cmFpbnQ6IE5vdGF0aW9uIEF0dHJpYnV0ZXMg Ki8NCj4gLSAgICAgaWYgKGF0dHJEZWNsLT5hdHlwZSA9PSBYTUxfQVRUUklCVVRFX05PVEFU SU9OKSB7DQo+IGRpZmYgLS1naXQgYS9tZXRhL3JlY2lwZXMtY29yZS9saWJ4bWwvbGlieG1s Mi9saWJ4bWwyLUNWRS0yMDE3LTU5NjkucGF0Y2ggYi9tZXRhL3JlY2lwZXMtY29yZS9saWJ4 bWwvbGlieG1sMi9saWJ4bWwyLUNWRS0yMDE3LTU5NjkucGF0Y2gNCj4gZGVsZXRlZCBmaWxl IG1vZGUgMTAwNjQ0DQo+IGluZGV4IDU3MWIwNWMuLjAwMDAwMDANCj4gLS0tIGEvbWV0YS9y ZWNpcGVzLWNvcmUvbGlieG1sL2xpYnhtbDIvbGlieG1sMi1DVkUtMjAxNy01OTY5LnBhdGNo DQo+ICsrKyAvZGV2L251bGwNCj4gQEAgLTEsNjIgKzAsMCBAQA0KPiAtbGlieG1sMi0yLjku NDogRml4IENWRS0yMDE3LTU5NjkNCj4gLQ0KPiAtW05vIHVwc3RyZWFtIHRyYWNraW5nXSAt LSBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzU4NDIyDQo+ IC0NCj4gLXZhbGlkOiBGaXggTlVMTCBwb2ludGVyIGRlcmVmIGluIHhtbER1bXBFbGVtZW50 Q29udGVudA0KPiAtDQo+IC1DYW4gb25seSBiZSB0cmlnZ2VyZWQgaW4gcmVjb3ZlcnkgbW9k ZS4NCj4gLQ0KPiAtRml4ZXMgYnVnIDc1ODQyMg0KPiAtDQo+IC1VcHN0cmVhbS1TdGF0dXM6 IEJhY2twb3J0IC0gW2h0dHBzOi8vZ2l0Lmdub21lLm9yZy9icm93c2UvbGlieG1sMi9jb21t aXQvP2lkPTk0NjkxZGM4ODRkMWE4YWRhMzlmMDczNDA4YjRiYjkyZmU3ZmU4ODJdDQo+IC1D VkU6IENWRS0yMDE3LTU5NjkNCj4gLVNpZ25lZC1vZmYtYnk6IEFuZHJlaiBWYWxlayA8YW5k cmVqLnZhbGVrQHNpZW1lbnMuY29tPg0KPiAtDQo+IC1kaWZmIC0tZ2l0IGEvdmFsaWQuYyBi L3ZhbGlkLmMNCj4gLWluZGV4IDE5Zjg0YjguLjBhOGU1OGEgMTAwNjQ0DQo+IC0tLS0gYS92 YWxpZC5jDQo+IC0rKysgYi92YWxpZC5jDQo+IC1AQCAtMTE3MiwyOSArMTE3MiwzMyBAQCB4 bWxEdW1wRWxlbWVudENvbnRlbnQoeG1sQnVmZmVyUHRyIGJ1ZiwgeG1sRWxlbWVudENvbnRl bnRQdHIgY29udGVudCwgaW50IGdsb2IpDQo+IC0gCSAgICB4bWxCdWZmZXJXcml0ZUNIQVIo YnVmLCBjb250ZW50LT5uYW1lKTsNCj4gLSAJICAgIGJyZWFrOw0KPiAtIAljYXNlIFhNTF9F TEVNRU5UX0NPTlRFTlRfU0VROg0KPiAtLQkgICAgaWYgKChjb250ZW50LT5jMS0+dHlwZSA9 PSBYTUxfRUxFTUVOVF9DT05URU5UX09SKSB8fA0KPiAtLQkgICAgICAgIChjb250ZW50LT5j MS0+dHlwZSA9PSBYTUxfRUxFTUVOVF9DT05URU5UX1NFUSkpDQo+IC0rCSAgICBpZiAoKGNv bnRlbnQtPmMxICE9IE5VTEwpICYmDQo+IC0rCSAgICAgICAgKChjb250ZW50LT5jMS0+dHlw ZSA9PSBYTUxfRUxFTUVOVF9DT05URU5UX09SKSB8fA0KPiAtKwkgICAgICAgICAoY29udGVu dC0+YzEtPnR5cGUgPT0gWE1MX0VMRU1FTlRfQ09OVEVOVF9TRVEpKSkNCj4gLSAJCXhtbER1 bXBFbGVtZW50Q29udGVudChidWYsIGNvbnRlbnQtPmMxLCAxKTsNCj4gLSAJICAgIGVsc2UN Cj4gLSAJCXhtbER1bXBFbGVtZW50Q29udGVudChidWYsIGNvbnRlbnQtPmMxLCAwKTsNCj4g LSAgICAgICAgICAgICB4bWxCdWZmZXJXcml0ZUNoYXIoYnVmLCAiICwgIik7DQo+IC0tCSAg ICBpZiAoKGNvbnRlbnQtPmMyLT50eXBlID09IFhNTF9FTEVNRU5UX0NPTlRFTlRfT1IpIHx8 DQo+IC0tCSAgICAgICAgKChjb250ZW50LT5jMi0+dHlwZSA9PSBYTUxfRUxFTUVOVF9DT05U RU5UX1NFUSkgJiYNCj4gLS0JCSAoY29udGVudC0+YzItPm9jdXIgIT0gWE1MX0VMRU1FTlRf Q09OVEVOVF9PTkNFKSkpDQo+IC0rCSAgICBpZiAoKGNvbnRlbnQtPmMyICE9IE5VTEwpICYm DQo+IC0rCSAgICAgICAgKChjb250ZW50LT5jMi0+dHlwZSA9PSBYTUxfRUxFTUVOVF9DT05U RU5UX09SKSB8fA0KPiAtKwkgICAgICAgICAoKGNvbnRlbnQtPmMyLT50eXBlID09IFhNTF9F TEVNRU5UX0NPTlRFTlRfU0VRKSAmJg0KPiAtKwkJICAoY29udGVudC0+YzItPm9jdXIgIT0g WE1MX0VMRU1FTlRfQ09OVEVOVF9PTkNFKSkpKQ0KPiAtIAkJeG1sRHVtcEVsZW1lbnRDb250 ZW50KGJ1ZiwgY29udGVudC0+YzIsIDEpOw0KPiAtIAkgICAgZWxzZQ0KPiAtIAkJeG1sRHVt cEVsZW1lbnRDb250ZW50KGJ1ZiwgY29udGVudC0+YzIsIDApOw0KPiAtIAkgICAgYnJlYWs7 DQo+IC0gCWNhc2UgWE1MX0VMRU1FTlRfQ09OVEVOVF9PUjoNCj4gLS0JICAgIGlmICgoY29u dGVudC0+YzEtPnR5cGUgPT0gWE1MX0VMRU1FTlRfQ09OVEVOVF9PUikgfHwNCj4gLS0JICAg ICAgICAoY29udGVudC0+YzEtPnR5cGUgPT0gWE1MX0VMRU1FTlRfQ09OVEVOVF9TRVEpKQ0K PiAtKwkgICAgaWYgKChjb250ZW50LT5jMSAhPSBOVUxMKSAmJg0KPiAtKwkgICAgICAgICgo Y29udGVudC0+YzEtPnR5cGUgPT0gWE1MX0VMRU1FTlRfQ09OVEVOVF9PUikgfHwNCj4gLSsJ ICAgICAgICAgKGNvbnRlbnQtPmMxLT50eXBlID09IFhNTF9FTEVNRU5UX0NPTlRFTlRfU0VR KSkpDQo+IC0gCQl4bWxEdW1wRWxlbWVudENvbnRlbnQoYnVmLCBjb250ZW50LT5jMSwgMSk7 DQo+IC0gCSAgICBlbHNlDQo+IC0gCQl4bWxEdW1wRWxlbWVudENvbnRlbnQoYnVmLCBjb250 ZW50LT5jMSwgMCk7DQo+IC0gICAgICAgICAgICAgeG1sQnVmZmVyV3JpdGVDaGFyKGJ1Ziwg IiB8ICIpOw0KPiAtLQkgICAgaWYgKChjb250ZW50LT5jMi0+dHlwZSA9PSBYTUxfRUxFTUVO VF9DT05URU5UX1NFUSkgfHwNCj4gLS0JICAgICAgICAoKGNvbnRlbnQtPmMyLT50eXBlID09 IFhNTF9FTEVNRU5UX0NPTlRFTlRfT1IpICYmDQo+IC0tCQkgKGNvbnRlbnQtPmMyLT5vY3Vy ICE9IFhNTF9FTEVNRU5UX0NPTlRFTlRfT05DRSkpKQ0KPiAtKwkgICAgaWYgKChjb250ZW50 LT5jMiAhPSBOVUxMKSAmJg0KPiAtKwkgICAgICAgICgoY29udGVudC0+YzItPnR5cGUgPT0g WE1MX0VMRU1FTlRfQ09OVEVOVF9TRVEpIHx8DQo+IC0rCSAgICAgICAgICgoY29udGVudC0+ YzItPnR5cGUgPT0gWE1MX0VMRU1FTlRfQ09OVEVOVF9PUikgJiYNCj4gLSsJCSAgKGNvbnRl bnQtPmMyLT5vY3VyICE9IFhNTF9FTEVNRU5UX0NPTlRFTlRfT05DRSkpKSkNCj4gLSAJCXht bER1bXBFbGVtZW50Q29udGVudChidWYsIGNvbnRlbnQtPmMyLCAxKTsNCj4gLSAJICAgIGVs c2UNCj4gLSAJCXhtbER1bXBFbGVtZW50Q29udGVudChidWYsIGNvbnRlbnQtPmMyLCAwKTsN Cj4gZGlmZiAtLWdpdCBhL21ldGEvcmVjaXBlcy1jb3JlL2xpYnhtbC9saWJ4bWwyL2xpYnht bDItQ1ZFLTIwMTctODg3Mi5wYXRjaCBiL21ldGEvcmVjaXBlcy1jb3JlL2xpYnhtbC9saWJ4 bWwyL2xpYnhtbDItQ1ZFLTIwMTctODg3Mi5wYXRjaA0KPiBkZWxldGVkIGZpbGUgbW9kZSAx MDA2NDQNCj4gaW5kZXggMjY3NzlhYS4uMDAwMDAwMA0KPiAtLS0gYS9tZXRhL3JlY2lwZXMt Y29yZS9saWJ4bWwvbGlieG1sMi9saWJ4bWwyLUNWRS0yMDE3LTg4NzIucGF0Y2gNCj4gKysr IC9kZXYvbnVsbA0KPiBAQCAtMSwzNyArMCwwIEBADQo+IC1Gcm9tIGQyZjg3M2E1NDFjNzJi MGY2N2UxNTU2MjgxOWJmOThiODg0YjMwYjcgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxDQo+ IC1Gcm9tOiBIb25neHUgSmlhIDxob25neHUuamlhQHdpbmRyaXZlci5jb20+DQo+IC1EYXRl OiBXZWQsIDIzIEF1ZyAyMDE3IDE2OjA0OjQ5ICswODAwDQo+IC1TdWJqZWN0OiBbUEFUQ0hd IGZpeCBDVkUtMjAxNy04ODcyDQo+IC0NCj4gLXRoaXMgbWFrZXMgeG1sSGFsdFBhcnNlciAi ZW1wdHkiIHRoZSBidWZmZXIsIGFzIGl0IHJlc2V0cyBjdXIgYW5kIGF2YQ0KPiAtaWwgdG9v IGhlcmUuDQo+IC0NCj4gLXRoaXMgc2VlbXMgdG8gY3VyZSB0aGlzIHNwZWNpZmljIGlzc3Vl LCBhbmQgYWxzbyBwYXNzZXMgdGhlIHRlc3RzdWl0ZQ0KPiAtDQo+IC1TaWduZWQtb2ZmLWJ5 OiBNYXJjdXMgTWVpc3NuZXIgPG1laXNzbmVyQHN1c2UuZGU+DQo+IC0NCj4gLWh0dHBzOi8v YnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03NzUyMDANCj4gLVVwc3RyZWFt LVN0YXR1czogQmFja3BvcnQgW2h0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL2F0dGFjaG1l bnQuY2dpP2lkPTM1NTUyNyZhY3Rpb249ZGlmZl0NCj4gLVNpZ25lZC1vZmYtYnk6IEhvbmd4 dSBKaWEgPGhvbmd4dS5qaWFAd2luZHJpdmVyLmNvbT4NCj4gLS0tLQ0KPiAtIHBhcnNlci5j IHwgNCArKysrDQo+IC0gMSBmaWxlIGNoYW5nZWQsIDQgaW5zZXJ0aW9ucygrKQ0KPiAtDQo+ IC1kaWZmIC0tZ2l0IGEvcGFyc2VyLmMgYi9wYXJzZXIuYw0KPiAtaW5kZXggOTUwNmVhZC4u NmMwN2ZmZCAxMDA2NDQNCj4gLS0tLSBhL3BhcnNlci5jDQo+IC0rKysgYi9wYXJzZXIuYw0K PiAtQEAgLTEyNjY0LDYgKzEyNjY0LDEwIEBAIHhtbEhhbHRQYXJzZXIoeG1sUGFyc2VyQ3R4 dFB0ciBjdHh0KSB7DQo+IC0gCX0NCj4gLSAJY3R4dC0+aW5wdXQtPmN1ciA9IEJBRF9DQVNU IiI7DQo+IC0gCWN0eHQtPmlucHV0LT5iYXNlID0gY3R4dC0+aW5wdXQtPmN1cjsNCj4gLSsJ aWYgKGN0eHQtPmlucHV0LT5idWYpIHsNCj4gLSsJCXhtbEJ1ZkVtcHR5IChjdHh0LT5pbnB1 dC0+YnVmLT5idWZmZXIpOw0KPiAtKwl9IGVsc2UNCj4gLSsJCWN0eHQtPmlucHV0LT5sZW5n dGggPSAwOw0KPiAtICAgICB9DQo+IC0gfQ0KPiAtIA0KPiAtLS0gDQo+IC0yLjcuNA0KPiAt DQo+IGRpZmYgLS1naXQgYS9tZXRhL3JlY2lwZXMtY29yZS9saWJ4bWwvbGlieG1sMi9saWJ4 bWwyLUNWRS0yMDE3LTkwNDdfQ1ZFLTIwMTctOTA0OC5wYXRjaCBiL21ldGEvcmVjaXBlcy1j b3JlL2xpYnhtbC9saWJ4bWwyL2xpYnhtbDItQ1ZFLTIwMTctOTA0N19DVkUtMjAxNy05MDQ4 LnBhdGNoDQo+IGRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NA0KPiBpbmRleCA4YjAzNDU2Li4w MDAwMDAwDQo+IC0tLSBhL21ldGEvcmVjaXBlcy1jb3JlL2xpYnhtbC9saWJ4bWwyL2xpYnht bDItQ1ZFLTIwMTctOTA0N19DVkUtMjAxNy05MDQ4LnBhdGNoDQo+ICsrKyAvZGV2L251bGwN Cj4gQEAgLTEsMTAzICswLDAgQEANCj4gLWxpYnhtbDItMi45LjQ6IEZpeCBDVkUtMjAxNy05 MDQ3IGFuZCBDVkUtMjAxNy05MDQ4DQo+IC0NCj4gLVtObyB1cHN0cmVhbSB0cmFja2luZ10g LS0gaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTc4MTMzMw0K PiAtIC0tIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03ODE3 MDENCj4gLQ0KPiAtdmFsaWQ6IEZpeCBidWZmZXIgc2l6ZSBjaGVja3MgaW4geG1sU25wcmlu dGZFbGVtZW50Q29udGVudA0KPiAtDQo+IC14bWxTbnByaW50ZkVsZW1lbnRDb250ZW50IGZh aWxlZCB0byBjb3JyZWN0bHkgY2hlY2sgdGhlIGF2YWlsYWJsZQ0KPiAtYnVmZmVyIHNwYWNl IGluIHR3byBsb2NhdGlvbnMuDQo+IC0NCj4gLUZpeGVzIGJ1ZyA3ODEzMzMgYW5kIGJ1ZyA3 ODE3MDENCj4gLQ0KPiAtVXBzdHJlYW0tU3RhdHVzOiBCYWNrcG9ydCBbaHR0cHM6Ly9naXQu Z25vbWUub3JnL2Jyb3dzZS9saWJ4bWwyL2NvbW1pdC8/aWQ9OTMyY2M5ODk2YWI0MTQ3NWQ0 YWE0MjljMjdkOWFmZDE3NTk1OWQ3NF0NCj4gLUNWRTogQ1ZFLTIwMTctOTA0NyBDVkUtMjAx Ny05MDQ4DQo+IC1TaWduZWQtb2ZmLWJ5OiBBbmRyZWogVmFsZWsgPGFuZHJlai52YWxla0Bz aWVtZW5zLmNvbT4NCj4gLQ0KPiAtZGlmZiAtLWdpdCBhL3Jlc3VsdC92YWxpZC83ODEzMzMu eG1sIGIvcmVzdWx0L3ZhbGlkLzc4MTMzMy54bWwNCj4gLW5ldyBmaWxlIG1vZGUgMTAwNjQ0 DQo+IC1pbmRleCAwMDAwMDAwLi4wMWJhZjExDQo+IC0tLS0gL2Rldi9udWxsDQo+IC0rKysg Yi9yZXN1bHQvdmFsaWQvNzgxMzMzLnhtbA0KPiAtQEAgLTAsMCArMSw1IEBADQo+IC0rPD94 bWwgdmVyc2lvbj0iMS4wIj8+DQo+IC0rPCFET0NUWVBFIGEgWw0KPiAtKzwhRUxFTUVOVCBh IChwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBw cHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBw cHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBw cHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBw cHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBw cHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBw cHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBw cHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBw cHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBw cHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBw cHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBw cHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBw cHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBw cHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBw cHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBw cHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBw cHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBw cHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBw cHBwcHBwcHBwcHBwcA0KPiAgcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBw cHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBw cHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBw cHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBw cHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBw cHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBw cHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBw cHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBw cHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBw cHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBw cHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBw cHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBw cHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBw cHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBw cHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBw cHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBw cHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBw cHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBw cHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcA0KPiAgcHBwcHBw cHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBw cHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBw cHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBw cHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBw cHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBw cHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBw cHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBw cHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBw cHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBw cHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBw cHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBw cHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBw cHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBw cHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBw cHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBw cHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBw cHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBw cHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBw cHBwcHBwcHBwcHBwcHBwcHBwcA0KPiAgcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBw cHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBw cHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBw cHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBw cHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBw cHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBw cHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBw cHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBw cHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBw cHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBw cHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBw cHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBw cHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBw cHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBw cHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBw cHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBw cHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBw cHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBw cHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcA0KPiAg cHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHA6bGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxs bGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxs bGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxs bGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxs bGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxs bGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxs bGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxs bGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxs bGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxs bGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxs bGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxs bGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxs bGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxs bGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxs bGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxs bGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxs bGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxs bGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxs bGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbA0KPiAgbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxs bGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxs bGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxs bGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxs bGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxs bGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxs bGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxs bGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxs bGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxs bGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxs bGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxs bGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxs bGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxs bGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxs bGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxs bGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxs bGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxs bGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxs bGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxs bA0KPiAgbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsKT4NCj4gLStdPg0KPiAt KzxhLz4NCj4gLWRpZmYgLS1naXQgYS9yZXN1bHQvdmFsaWQvNzgxMzMzLnhtbC5lcnIgYi9y ZXN1bHQvdmFsaWQvNzgxMzMzLnhtbC5lcnINCj4gLW5ldyBmaWxlIG1vZGUgMTAwNjQ0DQo+ IC1pbmRleCAwMDAwMDAwLi4yMTc2MjAwDQo+IC0tLS0gL2Rldi9udWxsDQo+IC0rKysgYi9y ZXN1bHQvdmFsaWQvNzgxMzMzLnhtbC5lcnINCj4gLUBAIC0wLDAgKzEsMyBAQA0KPiAtKy4v dGVzdC92YWxpZC83ODEzMzMueG1sOjQ6IGVsZW1lbnQgYTogdmFsaWRpdHkgZXJyb3IgOiBF bGVtZW50IGEgY29udGVudCBkb2VzIG5vdCBmb2xsb3cgdGhlIERURCwgZXhwZWN0aW5nICgg Li4uLCBnb3QgDQo+IC0rPGEvPg0KPiAtKyAgICBeDQo+IC1kaWZmIC0tZ2l0IGEvcmVzdWx0 L3ZhbGlkLzc4MTMzMy54bWwuZXJyLnJkciBiL3Jlc3VsdC92YWxpZC83ODEzMzMueG1sLmVy ci5yZHINCj4gLW5ldyBmaWxlIG1vZGUgMTAwNjQ0DQo+IC1pbmRleCAwMDAwMDAwLi4xMTk1 YTA0DQo+IC0tLS0gL2Rldi9udWxsDQo+IC0rKysgYi9yZXN1bHQvdmFsaWQvNzgxMzMzLnht bC5lcnIucmRyDQo+IC1AQCAtMCwwICsxLDYgQEANCj4gLSsuL3Rlc3QvdmFsaWQvNzgxMzMz LnhtbDo0OiBlbGVtZW50IGE6IHZhbGlkaXR5IGVycm9yIDogRWxlbWVudCBhIGNvbnRlbnQg ZG9lcyBub3QgZm9sbG93IHRoZSBEVEQsIGV4cGVjdGluZyAoIC4uLiwgZ290IA0KPiAtKzxh Lz4NCj4gLSsgICAgXg0KPiAtKy4vdGVzdC92YWxpZC83ODEzMzMueG1sOjU6IGVsZW1lbnQg YTogdmFsaWRpdHkgZXJyb3IgOiBFbGVtZW50IGEgY29udGVudCBkb2VzIG5vdCBmb2xsb3cg dGhlIERURCwgRXhwZWN0aW5nIG1vcmUgY2hpbGQNCj4gLSsNCj4gLSteDQo+IC1kaWZmIC0t Z2l0IGEvdGVzdC92YWxpZC83ODEzMzMueG1sIGIvdGVzdC92YWxpZC83ODEzMzMueG1sDQo+ IC1uZXcgZmlsZSBtb2RlIDEwMDY0NA0KPiAtaW5kZXggMDAwMDAwMC4uYmNlYWM5Yw0KPiAt LS0tIC9kZXYvbnVsbA0KPiAtKysrIGIvdGVzdC92YWxpZC83ODEzMzMueG1sDQo+IC1AQCAt MCwwICsxLDQgQEANCj4gLSs8IURPQ1RZUEUgYSBbDQo+IC0rICAgIDwhRUxFTUVOVCBhIChw cHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBw cHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBw cHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBw cHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBw cHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBw cHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBw cHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBw cHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBw cHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBw cHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBw cHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBw cHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBw cHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBw cHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBw cHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBw cHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBw cHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBw cHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBw cHBwcHBwDQo+ICBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBw cHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBw cHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBw cHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBw cHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBw cHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBw cHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBw cHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBw cHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBw cHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBw cHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBw cHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBw cHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBw cHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBw cHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBw cHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBw cHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBw cHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBw cHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwDQo+ICBwcHBwcHBwcHBwcHBw cHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBw cHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBw cHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBw cHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBw cHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBw cHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBw cHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBw cHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBw cHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBw cHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBw cHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBw cHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBw cHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBw cHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBw cHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBw cHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBw cHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBw cHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBw cHBwcHBwcHBwcHBwDQo+ICBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBw cHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBw cHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBw cHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBw cHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBw cHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBw cHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBw cHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBw cHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBw cHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBw cHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBw cHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBw cHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBw cHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBw cHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBw cHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBw cHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBw cHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBw cHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwDQo+ICBwcHBwcHBw cHBwcHBwcHBwcHBwcHBwcHBwcHBwcHA6bGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxs bGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxs bGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxs bGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxs bGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxs bGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxs bGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxs bGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxs bGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxs bGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxs bGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxs bGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxs bGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxs bGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxs bGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxs bGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxs bGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxs bGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxs bGxsbGxsbGxsbGxsbGxsbGxsDQo+ICBsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxs bGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxs bGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxs bGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxs bGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxs bGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxs bGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxs bGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxs bGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxs bGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxs bGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxs bGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxs bGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxs bGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxs bGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxs bGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxs bGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxs bGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxs bGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsDQo+ICBs bGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsKT4NCj4gLStdPg0KPiAtKzxh Lz4NCj4gLWRpZmYgLS1naXQgYS92YWxpZC5jIGIvdmFsaWQuYw0KPiAtaW5kZXggMTlmODRi OC4uYWFhMzBmNiAxMDA2NDQNCj4gLS0tLSBhL3ZhbGlkLmMNCj4gLSsrKyBiL3ZhbGlkLmMN Cj4gLUBAIC0xMjYyLDIyICsxMjYyLDIzIEBAIHhtbFNucHJpbnRmRWxlbWVudENvbnRlbnQo Y2hhciAqYnVmLCBpbnQgc2l6ZSwgeG1sRWxlbWVudENvbnRlbnRQdHIgY29udGVudCwgaW50 DQo+IC0gICAgICAgICBjYXNlIFhNTF9FTEVNRU5UX0NPTlRFTlRfUENEQVRBOg0KPiAtICAg ICAgICAgICAgIHN0cmNhdChidWYsICIjUENEQVRBIik7DQo+IC0gCSAgICBicmVhazsNCj4g LS0JY2FzZSBYTUxfRUxFTUVOVF9DT05URU5UX0VMRU1FTlQ6DQo+IC0rCWNhc2UgWE1MX0VM RU1FTlRfQ09OVEVOVF9FTEVNRU5UOiB7DQo+IC0rICAgICAgICAgICAgaW50IHFuYW1lTGVu ID0geG1sU3RybGVuKGNvbnRlbnQtPm5hbWUpOw0KPiAtKw0KPiAtKwkgICAgaWYgKGNvbnRl bnQtPnByZWZpeCAhPSBOVUxMKQ0KPiAtKyAgICAgICAgICAgICAgICBxbmFtZUxlbiArPSB4 bWxTdHJsZW4oY29udGVudC0+cHJlZml4KSArIDE7DQo+IC0rCSAgICBpZiAoc2l6ZSAtIGxl biA8IHFuYW1lTGVuICsgMTApIHsNCj4gLSsJCXN0cmNhdChidWYsICIgLi4uIik7DQo+IC0r CQlyZXR1cm47DQo+IC0rCSAgICB9DQo+IC0gCSAgICBpZiAoY29udGVudC0+cHJlZml4ICE9 IE5VTEwpIHsNCj4gLS0JCWlmIChzaXplIC0gbGVuIDwgeG1sU3RybGVuKGNvbnRlbnQtPnBy ZWZpeCkgKyAxMCkgew0KPiAtLQkJICAgIHN0cmNhdChidWYsICIgLi4uIik7DQo+IC0tCQkg ICAgcmV0dXJuOw0KPiAtLQkJfQ0KPiAtIAkJc3RyY2F0KGJ1ZiwgKGNoYXIgKikgY29udGVu dC0+cHJlZml4KTsNCj4gLSAJCXN0cmNhdChidWYsICI6Iik7DQo+IC0gCSAgICB9DQo+IC0t CSAgICBpZiAoc2l6ZSAtIGxlbiA8IHhtbFN0cmxlbihjb250ZW50LT5uYW1lKSArIDEwKSB7 DQo+IC0tCQlzdHJjYXQoYnVmLCAiIC4uLiIpOw0KPiAtLQkJcmV0dXJuOw0KPiAtLQkgICAg fQ0KPiAtIAkgICAgaWYgKGNvbnRlbnQtPm5hbWUgIT0gTlVMTCkNCj4gLSAJCXN0cmNhdChi dWYsIChjaGFyICopIGNvbnRlbnQtPm5hbWUpOw0KPiAtIAkgICAgYnJlYWs7DQo+IC0rCX0N Cj4gLSAJY2FzZSBYTUxfRUxFTUVOVF9DT05URU5UX1NFUToNCj4gLSAJICAgIGlmICgoY29u dGVudC0+YzEtPnR5cGUgPT0gWE1MX0VMRU1FTlRfQ09OVEVOVF9PUikgfHwNCj4gLSAJICAg ICAgICAoY29udGVudC0+YzEtPnR5cGUgPT0gWE1MX0VMRU1FTlRfQ09OVEVOVF9TRVEpKQ0K PiAtQEAgLTEzMTksNiArMTMyMCw3IEBAIHhtbFNucHJpbnRmRWxlbWVudENvbnRlbnQoY2hh ciAqYnVmLCBpbnQgc2l6ZSwgeG1sRWxlbWVudENvbnRlbnRQdHIgY29udGVudCwgaW50DQo+ IC0gCQl4bWxTbnByaW50ZkVsZW1lbnRDb250ZW50KGJ1Ziwgc2l6ZSwgY29udGVudC0+YzIs IDApOw0KPiAtIAkgICAgYnJlYWs7DQo+IC0gICAgIH0NCj4gLSsgICAgaWYgKHNpemUgLSBz dHJsZW4oYnVmKSA8PSAyKSByZXR1cm47DQo+IC0gICAgIGlmIChlbmdsb2IpDQo+IC0gICAg ICAgICBzdHJjYXQoYnVmLCAiKSIpOw0KPiAtICAgICBzd2l0Y2ggKGNvbnRlbnQtPm9jdXIp IHsNCj4gZGlmZiAtLWdpdCBhL21ldGEvcmVjaXBlcy1jb3JlL2xpYnhtbC9saWJ4bWwyL2xp YnhtbDItQ1ZFLTIwMTctOTA0OV9DVkUtMjAxNy05MDUwLnBhdGNoIGIvbWV0YS9yZWNpcGVz LWNvcmUvbGlieG1sL2xpYnhtbDIvbGlieG1sMi1DVkUtMjAxNy05MDQ5X0NWRS0yMDE3LTkw NTAucGF0Y2gNCj4gZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0DQo+IGluZGV4IDU5MTA3NWQu LjAwMDAwMDANCj4gLS0tIGEvbWV0YS9yZWNpcGVzLWNvcmUvbGlieG1sL2xpYnhtbDIvbGli eG1sMi1DVkUtMjAxNy05MDQ5X0NWRS0yMDE3LTkwNTAucGF0Y2gNCj4gKysrIC9kZXYvbnVs bA0KPiBAQCAtMSwyOTEgKzAsMCBAQA0KPiAtbGlieG1sMi0yLjkuNDogRml4IENWRS0yMDE3 LTkwNDkgYW5kIENWRS0yMDE3LTkwNTANCj4gLQ0KPiAtW05vIHVwc3RyZWFtIHRyYWNraW5n XSAtLSBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzgxMjA1 DQo+IC0gLS0gaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTc4 MTM2MQ0KPiAtDQo+IC1wYXJzZXI6IEZpeCBoYW5kbGluZyBvZiBwYXJhbWV0ZXItZW50aXR5 IHJlZmVyZW5jZXMNCj4gLQ0KPiAtVGhlcmUgd2VyZSB0d28gYnVncyB3aGVyZSBwYXJhbWV0 ZXItZW50aXR5IHJlZmVyZW5jZXMgY291bGQgbGVhZCB0byBhbg0KPiAtdW5leHBlY3RlZCBj aGFuZ2Ugb2YgdGhlIGlucHV0IGJ1ZmZlciBpbiB4bWxQYXJzZU5hbWVDb21wbGV4IGFuZA0K PiAteG1sRGljdExvb2t1cCBiZWluZyBjYWxsZWQgd2l0aCBhbiBpbnZhbGlkIHBvaW50ZXIu DQo+IC0NCj4gLVBlcmNlbnQgc2lnbiBpbiBEVEQgTmFtZXMNCj4gLT09PT09PT09PT09PT09 PT09PT09PT09PT0NCj4gLQ0KPiAtVGhlIE5FWFRMIG1hY3JvIHVzZWQgdG8gY2FsbCB4bWxQ YXJzZXJIYW5kbGVQRVJlZmVyZW5jZS4gV2hlbiBwYXJzaW5nDQo+IC0iY29tcGxleCIgbmFt ZXMgaW5zaWRlIHRoZSBEVEQsIHRoaXMgY291bGQgcmVzdWx0IGluIGVudGl0eSBleHBhbnNp b24NCj4gLXdoaWNoIGNyZWF0ZWQgYSBuZXcgaW5wdXQgYnVmZmVyLiBUaGUgZml4IGlzIHRv IHNpbXBseSByZW1vdmUgdGhlIGNhbGwNCj4gLXRvIHhtbFBhcnNlckhhbmRsZVBFUmVmZXJl bmNlIGZyb20gdGhlIE5FWFRMIG1hY3JvLiBUaGlzIGlzIHNhZmUgYmVjYXVzZQ0KPiAtbm8g dXNlcnMgb2YgdGhlIG1hY3JvIHJlcXVpcmUgZXhwYW5zaW9uIG9mIHBhcmFtZXRlciBlbnRp dGllcy4NCj4gLQ0KPiAtLSB4bWxQYXJzZU5hbWVDb21wbGV4DQo+IC0tIHhtbFBhcnNlTkNO YW1lQ29tcGxleA0KPiAtLSB4bWxQYXJzZU5tdG9rZW4NCj4gLQ0KPiAtVGhlIHBlcmNlbnQg c2lnbiBpcyBub3QgYWxsb3dlZCBpbiBuYW1lcywgd2hpY2ggYXJlIGdyYW1tYXRpY2FsIHRv a2Vucy4NCj4gLQ0KPiAtLSB4bWxQYXJzZUVudGl0eVZhbHVlDQo+IC0NCj4gLVBhcmFtZXRl ci1lbnRpdHkgcmVmZXJlbmNlcyBpbiBlbnRpdHkgdmFsdWVzIGFyZSBleHBhbmRlZCBidXQg dGhpcw0KPiAtaGFwcGVucyBpbiBhIHNlcGFyYXRlIHN0ZXAgaW4gdGhpcyBmdW5jdGlvbi4N Cj4gLQ0KPiAtLSB4bWxQYXJzZVN5c3RlbUxpdGVyYWwNCj4gLQ0KPiAtUGFyYW1ldGVyLWVu dGl0eSByZWZlcmVuY2VzIGFyZSBpZ25vcmVkIGluIHRoZSBzeXN0ZW0gbGl0ZXJhbC4NCj4g LQ0KPiAtLSB4bWxQYXJzZUF0dFZhbHVlQ29tcGxleA0KPiAtLSB4bWxQYXJzZUNoYXJEYXRh Q29tcGxleA0KPiAtLSB4bWxQYXJzZUNvbW1lbnRDb21wbGV4DQo+IC0tIHhtbFBhcnNlUEkN Cj4gLS0geG1sUGFyc2VDRFNlY3QNCj4gLQ0KPiAtUGFyYW1ldGVyLWVudGl0eSByZWZlcmVu Y2VzIGFyZSBpZ25vcmVkIG91dHNpZGUgdGhlIERURC4NCj4gLQ0KPiAtLSB4bWxMb2FkRW50 aXR5Q29udGVudA0KPiAtDQo+IC1UaGlzIGZ1bmN0aW9uIGlzIG9ubHkgY2FsbGVkIGZyb20g eG1sU3RyaW5nTGVuRGVjb2RlRW50aXRpZXMgYW5kDQo+IC1lbnRpdGllcyBhcmUgcmVwbGFj ZWQgaW4gYSBzZXBhcmF0ZSBzdGVwIGltbWVkaWF0ZWx5IGFmdGVyIHRoZSBmdW5jdGlvbg0K PiAtY2FsbC4NCj4gLQ0KPiAtVGhpcyBidWcgY291bGQgYWxzbyBiZSB0cmlnZ2VyZWQgd2l0 aCBhbiBpbnRlcm5hbCBzdWJzZXQgYW5kIGRvdWJsZQ0KPiAtZW50aXR5IGV4cGFuc2lvbi4N Cj4gLQ0KPiAtVGhpcyBmaXhlcyBidWcgNzY2OTU2IGluaXRpYWxseSByZXBvcnRlZCBieSBX ZWkgTGVpIGFuZCBpbmRlcGVuZGVudGx5IGJ5DQo+IC1DaHJvbWl1bSdzIENsdXN0ZXJGdXp6 LCBIYW5ubyBCw7ZjaywgYW5kIE1hcmNvIEdyYXNzaS4gVGhhbmtzIHRvIGV2ZXJ5b25lDQo+ IC1pbnZvbHZlZC4NCj4gLQ0KPiAteG1sUGFyc2VOYW1lQ29tcGxleCB3aXRoIFhNTF9QQVJT RV9PTEQxMA0KPiAtPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQ0K PiAtDQo+IC1XaGVuIHBhcnNpbmcgTmFtZXMgaW5zaWRlIGFuIGV4cGFuZGVkIHBhcmFtZXRl ciBlbnRpdHkgd2l0aCB0aGUNCj4gLVhNTF9QQVJTRV9PTEQxMCBvcHRpb24sIHhtbFBhcnNl TmFtZUNvbXBsZXggd291bGQgY2FsbCB4bWxHUk9XIHZpYSB0aGUNCj4gLUdST1cgbWFjcm8g aWYgdGhlIGlucHV0IGJ1ZmZlciB3YXMgZXhoYXVzdGVkLiBBdCB0aGUgZW5kIG9mIHRoZQ0K PiAtcGFyYW1ldGVyIGVudGl0eSdzIHJlcGxhY2VtZW50IHRleHQsIHRoaXMgZnVuY3Rpb24g d291bGQgdGhlbiBjYWxsDQo+IC14bWxQb3BJbnB1dCB3aGljaCBpbnZhbGlkYXRlZCB0aGUg aW5wdXQgYnVmZmVyLg0KPiAtDQo+IC1UaGVyZSBzaG91bGQgYmUgbm8gbmVlZCB0byBpbnZv a2UgR1JPVyBpbiB0aGlzIHNpdHVhdGlvbiBiZWNhdXNlIHRoZQ0KPiAtYnVmZmVyIGlzIGdy b3duIHBlcmlvZGljYWxseSBldmVyeSBYTUxfUEFSU0VSX0NIVU5LX1NJWkUgY2hhcmFjdGVy cyBhbmQsDQo+IC1hdCBsZWFzdCBmb3IgVVRGLTgsIGluIHhtbEN1cnJlbnRDaGFyLiBUaGlz IGFsc28gbWF0Y2hlcyB0aGUgY29kZSBwYXRoDQo+IC1leGVjdXRlZCB3aGVuIFhNTF9QQVJT RV9PTEQxMCBpcyBub3Qgc2V0Lg0KPiAtDQo+IC1UaGlzIGZpeGVzIGJ1Z3MgNzgxMjA1IChD VkUtMjAxNy05MDQ5KSBhbmQgNzgxMzYxIChDVkUtMjAxNy05MDUwKS4NCj4gLVRoYW5rcyB0 byBNYXJjZWwgQsO2aG1lIGFuZCBUaHVhbiBQaGFtIGZvciB0aGUgcmVwb3J0Lg0KPiAtDQo+ IC1BZGRpdGlvbmFsIGhhcmRlbmluZw0KPiAtPT09PT09PT09PT09PT09PT09PT0NCj4gLQ0K PiAtQSBzZXBhcmF0ZSBjaGVjayB3YXMgYWRkZWQgaW4geG1sUGFyc2VOYW1lQ29tcGxleCB0 byB2YWxpZGF0ZSB0aGUNCj4gLWJ1ZmZlciBzaXplLg0KPiAtDQo+IC1GaXhlcyBidWcgNzgx MjA1IGFuZCBidWcgNzgxMzYxDQo+IC0NCj4gLVVwc3RyZWFtLVN0YXR1czogQmFja3BvcnQg W2h0dHBzOi8vZ2l0Lmdub21lLm9yZy9icm93c2UvbGlieG1sMi9jb21taXQvP2lkPTkzMmNj OTg5NmFiNDE0NzVkNGFhNDI5YzI3ZDlhZmQxNzU5NTlkNzRdDQo+IC1DVkU6IENWRS0yMDE3 LTkwNDkgQ1ZFLTIwMTctOTA1MA0KPiAtU2lnbmVkLW9mZi1ieTogQW5kcmVqIFZhbGVrIDxh bmRyZWoudmFsZWtAc2llbWVucy5jb20+DQo+IC0NCj4gLWRpZmYgLS1naXQgYS9NYWtlZmls ZS5hbSBiL01ha2VmaWxlLmFtDQo+IC1pbmRleCA5Zjk4OGIwLi5kYWIxNWE0IDEwMDY0NA0K PiAtLS0tIGEvTWFrZWZpbGUuYW0NCj4gLSsrKyBiL01ha2VmaWxlLmFtDQo+IC1AQCAtNDIy LDYgKzQyMiwyNCBAQCBFcnJ0ZXN0cyA6IHhtbGxpbnQkKEVYRUVYVCkNCj4gLSAJICAgICAg aWYgWyAtbiAiJCRsb2ciIF0gOyB0aGVuIGVjaG8gJCRuYW1lIHJlc3VsdCA7IGVjaG8gJCRs b2cgOyBmaSA7IFwNCj4gLSAJICAgICAgcm0gcmVzdWx0LiQkbmFtZSBlcnJvci4kJG5hbWUg OyBcDQo+IC0gCSAgZmkgOyBmaSA7IGRvbmUpDQo+IC0rCUBlY2hvICIjIyBFcnJvciBjYXNl cyByZWdyZXNzaW9uIHRlc3RzIChvbGQgMS4wKSINCj4gLSsJLUAoZm9yIGkgaW4gJChzcmNk aXIpL3Rlc3QvZXJyb3JzMTAvKi54bWwgOyBkbyBcDQo+IC0rCSAgbmFtZT1gYmFzZW5hbWUg JCRpYDsgXA0KPiAtKwkgIGlmIFsgISAtZCAkJGkgXSA7IHRoZW4gXA0KPiAtKwkgIGlmIFsg ISAtZiAkKHNyY2RpcikvcmVzdWx0L2Vycm9yczEwLyQkbmFtZSBdIDsgdGhlbiBcDQo+IC0r CSAgICAgIGVjaG8gTmV3IHRlc3QgZmlsZSAkJG5hbWUgOyBcDQo+IC0rCSAgICAgICQoQ0hF Q0tFUikgJCh0b3BfYnVpbGRkaXIpL3htbGxpbnQgLS1vbGR4bWwxMCAkJGkgXA0KPiAtKwkg ICAgICAgICAyPiAkKHNyY2RpcikvcmVzdWx0L2Vycm9yczEwLyQkbmFtZS5lcnIgXA0KPiAt KwkJID4gJChzcmNkaXIpL3Jlc3VsdC9lcnJvcnMxMC8kJG5hbWUgOyBcDQo+IC0rCSAgICAg IGdyZXAgIk1PUlkgQUxMTyIgLm1lbWR1bXAgIHwgZ3JlcCAtdiAiTUVNT1JZIEFMTE9DQVRF RCA6IDAiOyBcDQo+IC0rCSAgZWxzZSBcDQo+IC0rCSAgICAgIGxvZz1gJChDSEVDS0VSKSAk KHRvcF9idWlsZGRpcikveG1sbGludCAtLW9sZHhtbDEwICQkaSAyPiBlcnJvci4kJG5hbWUg PiByZXN1bHQuJCRuYW1lIDsgXA0KPiAtKwkgICAgICBncmVwICJNT1JZIEFMTE8iIC5tZW1k dW1wICB8IGdyZXAgLXYgIk1FTU9SWSBBTExPQ0FURUQgOiAwIjsgXA0KPiAtKwkgICAgICBk aWZmICQoc3JjZGlyKS9yZXN1bHQvZXJyb3JzMTAvJCRuYW1lIHJlc3VsdC4kJG5hbWUgOyBc DQo+IC0rCSAgICAgIGRpZmYgJChzcmNkaXIpL3Jlc3VsdC9lcnJvcnMxMC8kJG5hbWUuZXJy IGVycm9yLiQkbmFtZWAgOyBcDQo+IC0rCSAgICAgIGlmIFsgLW4gIiQkbG9nIiBdIDsgdGhl biBlY2hvICQkbmFtZSByZXN1bHQgOyBlY2hvICIkJGxvZyIgOyBmaSA7IFwNCj4gLSsJICAg ICAgcm0gcmVzdWx0LiQkbmFtZSBlcnJvci4kJG5hbWUgOyBcDQo+IC0rCSAgZmkgOyBmaSA7 IGRvbmUpDQo+IC0gCUBlY2hvICIjIyBFcnJvciBjYXNlcyBzdHJlYW0gcmVncmVzc2lvbiB0 ZXN0cyINCj4gLSAJLUAoZm9yIGkgaW4gJChzcmNkaXIpL3Rlc3QvZXJyb3JzLyoueG1sIDsg ZG8gXA0KPiAtIAkgIG5hbWU9YGJhc2VuYW1lICQkaWA7IFwNCj4gLWRpZmYgLS1naXQgYS9w YXJzZXIuYyBiL3BhcnNlci5jDQo+IC1pbmRleCA2MDlhMjcwLi44ZTExYzEyIDEwMDY0NA0K PiAtLS0tIGEvcGFyc2VyLmMNCj4gLSsrKyBiL3BhcnNlci5jDQo+IC1AQCAtMjExNSw3ICsy MTE1LDYgQEAgc3RhdGljIHZvaWQgeG1sR1JPVyAoeG1sUGFyc2VyQ3R4dFB0ciBjdHh0KSB7 DQo+IC0gCWN0eHQtPmlucHV0LT5saW5lKys7IGN0eHQtPmlucHV0LT5jb2wgPSAxOwkJCVwN Cj4gLSAgICAgfSBlbHNlIGN0eHQtPmlucHV0LT5jb2wrKzsJCQkJCQlcDQo+IC0gICAgIGN0 eHQtPmlucHV0LT5jdXIgKz0gbDsJCQkJXA0KPiAtLSAgICBpZiAoKmN0eHQtPmlucHV0LT5j dXIgPT0gJyUnKSB4bWxQYXJzZXJIYW5kbGVQRVJlZmVyZW5jZShjdHh0KTsJXA0KPiAtICAg fSB3aGlsZSAoMCkNCj4gLSANCj4gLSAjZGVmaW5lIENVUl9DSEFSKGwpIHhtbEN1cnJlbnRD aGFyKGN0eHQsICZsKQ0KPiAtQEAgLTM0MDYsMTMgKzM0MDUsNiBAQCB4bWxQYXJzZU5hbWVD b21wbGV4KHhtbFBhcnNlckN0eHRQdHIgY3R4dCkgew0KPiAtIAkgICAgbGVuICs9IGw7DQo+ IC0gCSAgICBORVhUTChsKTsNCj4gLSAJICAgIGMgPSBDVVJfQ0hBUihsKTsNCj4gLS0JICAg IGlmIChjID09IDApIHsNCj4gLS0JCWNvdW50ID0gMDsNCj4gLS0JCUdST1c7DQo+IC0tICAg ICAgICAgICAgICAgIGlmIChjdHh0LT5pbnN0YXRlID09IFhNTF9QQVJTRVJfRU9GKQ0KPiAt LSAgICAgICAgICAgICAgICAgICAgcmV0dXJuKE5VTEwpOw0KPiAtLQkJYyA9IENVUl9DSEFS KGwpOw0KPiAtLQkgICAgfQ0KPiAtIAl9DQo+IC0gICAgIH0NCj4gLSAgICAgaWYgKChsZW4g PiBYTUxfTUFYX05BTUVfTEVOR1RIKSAmJg0KPiAtQEAgLTM0MjAsNiArMzQxMiwxNiBAQCB4 bWxQYXJzZU5hbWVDb21wbGV4KHhtbFBhcnNlckN0eHRQdHIgY3R4dCkgew0KPiAtICAgICAg ICAgeG1sRmF0YWxFcnIoY3R4dCwgWE1MX0VSUl9OQU1FX1RPT19MT05HLCAiTmFtZSIpOw0K PiAtICAgICAgICAgcmV0dXJuKE5VTEwpOw0KPiAtICAgICB9DQo+IC0rICAgIGlmIChjdHh0 LT5pbnB1dC0+Y3VyIC0gY3R4dC0+aW5wdXQtPmJhc2UgPCBsZW4pIHsNCj4gLSsgICAgICAg IC8qDQo+IC0rICAgICAgICAgKiBUaGVyZSB3ZXJlIGEgY291cGxlIG9mIGJ1Z3Mgd2hlcmUg UEVSZWZzIGxlYWQgdG8gdG8gYSBjaGFuZ2UNCj4gLSsgICAgICAgICAqIG9mIHRoZSBidWZm ZXIuIENoZWNrIHRoZSBidWZmZXIgc2l6ZSB0byBhdm9pZCBwYXNzaW5nIGFuIGludmFsaWQN Cj4gLSsgICAgICAgICAqIHBvaW50ZXIgdG8geG1sRGljdExvb2t1cC4NCj4gLSsgICAgICAg ICAqLw0KPiAtKyAgICAgICAgeG1sRmF0YWxFcnIoY3R4dCwgWE1MX0VSUl9JTlRFUk5BTF9F UlJPUiwNCj4gLSsgICAgICAgICAgICAgICAgICAgICJ1bmV4cGVjdGVkIGNoYW5nZSBvZiBp bnB1dCBidWZmZXIiKTsNCj4gLSsgICAgICAgIHJldHVybiAoTlVMTCk7DQo+IC0rICAgIH0N Cj4gLSAgICAgaWYgKCgqY3R4dC0+aW5wdXQtPmN1ciA9PSAnXG4nKSAmJiAoY3R4dC0+aW5w dXQtPmN1clstMV0gPT0gJ1xyJykpDQo+IC0gICAgICAgICByZXR1cm4oeG1sRGljdExvb2t1 cChjdHh0LT5kaWN0LCBjdHh0LT5pbnB1dC0+Y3VyIC0gKGxlbiArIDEpLCBsZW4pKTsNCj4g LSAgICAgcmV0dXJuKHhtbERpY3RMb29rdXAoY3R4dC0+ZGljdCwgY3R4dC0+aW5wdXQtPmN1 ciAtIGxlbiwgbGVuKSk7DQo+IC1kaWZmIC0tZ2l0IGEvcmVzdWx0L2Vycm9yczEwLzc4MTIw NS54bWwgYi9yZXN1bHQvZXJyb3JzMTAvNzgxMjA1LnhtbA0KPiAtbmV3IGZpbGUgbW9kZSAx MDA2NDQNCj4gLWluZGV4IDAwMDAwMDAuLmU2OWRlMjkNCj4gLWRpZmYgLS1naXQgYS9yZXN1 bHQvZXJyb3JzMTAvNzgxMjA1LnhtbC5lcnIgYi9yZXN1bHQvZXJyb3JzMTAvNzgxMjA1Lnht bC5lcnINCj4gLW5ldyBmaWxlIG1vZGUgMTAwNjQ0DQo+IC1pbmRleCAwMDAwMDAwLi5kYTE1 YzNmDQo+IC0tLS0gL2Rldi9udWxsDQo+IC0rKysgYi9yZXN1bHQvZXJyb3JzMTAvNzgxMjA1 LnhtbC5lcnINCj4gLUBAIC0wLDAgKzEsMjEgQEANCj4gLStFbnRpdHk6IGxpbmUgMTogcGFy c2VyIGVycm9yIDogaW50ZXJuYWwgZXJyb3I6IHhtbFBhcnNlSW50ZXJuYWxTdWJzZXQ6IGVy cm9yIGRldGVjdGVkIGluIE1hcmt1cCBkZWNsYXJhdGlvbg0KPiAtKw0KPiAtKyAlYTsgDQo+ IC0rICAgIF4NCj4gLStFbnRpdHk6IGxpbmUgMTogDQo+IC0rPDowMDAwDQo+IC0rXg0KPiAt K0VudGl0eTogbGluZSAxOiBwYXJzZXIgZXJyb3IgOiBET0NUWVBFIGltcHJvcGVybHkgdGVy bWluYXRlZA0KPiAtKyAlYTsgDQo+IC0rICAgIF4NCj4gLStFbnRpdHk6IGxpbmUgMTogDQo+ IC0rPDowMDAwDQo+IC0rXg0KPiAtK25hbWVzcGFjZSBlcnJvciA6IEZhaWxlZCB0byBwYXJz ZSBRTmFtZSAnOjAwMDAnDQo+IC0rICVhOyANCj4gLSsgICAgXg0KPiAtKzw6MDAwMA0KPiAt KyAgICAgIF4NCj4gLSsuL3Rlc3QvZXJyb3JzMTAvNzgxMjA1LnhtbDo0OiBwYXJzZXIgZXJy b3IgOiBDb3VsZG4ndCBmaW5kIGVuZCBvZiBTdGFydCBUYWcgOjAwMDAgbGluZSAxDQo+IC0r DQo+IC0rXg0KPiAtZGlmZiAtLWdpdCBhL3Jlc3VsdC9lcnJvcnMxMC83ODEzNjEueG1sIGIv cmVzdWx0L2Vycm9yczEwLzc4MTM2MS54bWwNCj4gLW5ldyBmaWxlIG1vZGUgMTAwNjQ0DQo+ IC1pbmRleCAwMDAwMDAwLi5lNjlkZTI5DQo+IC1kaWZmIC0tZ2l0IGEvcmVzdWx0L2Vycm9y czEwLzc4MTM2MS54bWwuZXJyIGIvcmVzdWx0L2Vycm9yczEwLzc4MTM2MS54bWwuZXJyDQo+ IC1uZXcgZmlsZSBtb2RlIDEwMDY0NA0KPiAtaW5kZXggMDAwMDAwMC4uNjU1ZjQxYQ0KPiAt LS0tIC9kZXYvbnVsbA0KPiAtKysrIGIvcmVzdWx0L2Vycm9yczEwLzc4MTM2MS54bWwuZXJy DQo+IC1AQCAtMCwwICsxLDEzIEBADQo+IC0rLi90ZXN0L2Vycm9yczEwLzc4MTM2MS54bWw6 NDogcGFyc2VyIGVycm9yIDogeG1sUGFyc2VFbGVtZW50RGVjbDogJ0VNUFRZJywgJ0FOWScg b3IgJygnIGV4cGVjdGVkDQo+IC0rDQo+IC0rXg0KPiAtKy4vdGVzdC9lcnJvcnMxMC83ODEz NjEueG1sOjQ6IHBhcnNlciBlcnJvciA6IGludGVybmFsIGVycm9yOiB4bWxQYXJzZUludGVy bmFsU3Vic2V0OiBlcnJvciBkZXRlY3RlZCBpbiBNYXJrdXAgZGVjbGFyYXRpb24NCj4gLSsN Cj4gLSsNCj4gLSteDQo+IC0rLi90ZXN0L2Vycm9yczEwLzc4MTM2MS54bWw6NDogcGFyc2Vy IGVycm9yIDogRE9DVFlQRSBpbXByb3Blcmx5IHRlcm1pbmF0ZWQNCj4gLSsNCj4gLSteDQo+ IC0rLi90ZXN0L2Vycm9yczEwLzc4MTM2MS54bWw6NDogcGFyc2VyIGVycm9yIDogU3RhcnQg dGFnIGV4cGVjdGVkLCAnPCcgbm90IGZvdW5kDQo+IC0rDQo+IC0rXg0KPiAtZGlmZiAtLWdp dCBhL3Jlc3VsdC92YWxpZC83NjY5NTYueG1sIGIvcmVzdWx0L3ZhbGlkLzc2Njk1Ni54bWwN Cj4gLW5ldyBmaWxlIG1vZGUgMTAwNjQ0DQo+IC1pbmRleCAwMDAwMDAwLi5lNjlkZTI5DQo+ IC1kaWZmIC0tZ2l0IGEvcmVzdWx0L3ZhbGlkLzc2Njk1Ni54bWwuZXJyIGIvcmVzdWx0L3Zh bGlkLzc2Njk1Ni54bWwuZXJyDQo+IC1uZXcgZmlsZSBtb2RlIDEwMDY0NA0KPiAtaW5kZXgg MDAwMDAwMC4uMzRiMWRhZQ0KPiAtLS0tIC9kZXYvbnVsbA0KPiAtKysrIGIvcmVzdWx0L3Zh bGlkLzc2Njk1Ni54bWwuZXJyDQo+IC1AQCAtMCwwICsxLDkgQEANCj4gLSt0ZXN0L3ZhbGlk L2R0ZHMvNzY2OTU2LmR0ZDoyOiBwYXJzZXIgZXJyb3IgOiBQRVJlZmVyZW5jZTogZXhwZWN0 aW5nICc7Jw0KPiAtKyXDpCVlbnQ7DQo+IC0rICAgXg0KPiAtK0VudGl0eTogbGluZSAxOiBw YXJzZXIgZXJyb3IgOiBDb250ZW50IGVycm9yIGluIHRoZSBleHRlcm5hbCBzdWJzZXQNCj4g LSsgJWVudDsgDQo+IC0rICAgICAgXg0KPiAtK0VudGl0eTogbGluZSAxOiANCj4gLSt2YWx1 ZQ0KPiAtK14NCj4gLWRpZmYgLS1naXQgYS9yZXN1bHQvdmFsaWQvNzY2OTU2LnhtbC5lcnIu cmRyIGIvcmVzdWx0L3ZhbGlkLzc2Njk1Ni54bWwuZXJyLnJkcg0KPiAtbmV3IGZpbGUgbW9k ZSAxMDA2NDQNCj4gLWluZGV4IDAwMDAwMDAuLjc3NjAzNDYNCj4gLS0tLSAvZGV2L251bGwN Cj4gLSsrKyBiL3Jlc3VsdC92YWxpZC83NjY5NTYueG1sLmVyci5yZHINCj4gLUBAIC0wLDAg KzEsMTAgQEANCj4gLSt0ZXN0L3ZhbGlkL2R0ZHMvNzY2OTU2LmR0ZDoyOiBwYXJzZXIgZXJy b3IgOiBQRVJlZmVyZW5jZTogZXhwZWN0aW5nICc7Jw0KPiAtKyXDpCVlbnQ7DQo+IC0rICAg Xg0KPiAtK0VudGl0eTogbGluZSAxOiBwYXJzZXIgZXJyb3IgOiBDb250ZW50IGVycm9yIGlu IHRoZSBleHRlcm5hbCBzdWJzZXQNCj4gLSsgJWVudDsgDQo+IC0rICAgICAgXg0KPiAtK0Vu dGl0eTogbGluZSAxOiANCj4gLSt2YWx1ZQ0KPiAtK14NCj4gLSsuL3Rlc3QvdmFsaWQvNzY2 OTU2LnhtbCA6IGZhaWxlZCB0byBwYXJzZQ0KPiAtZGlmZiAtLWdpdCBhL3J1bnRlc3QuYyBi L3J1bnRlc3QuYw0KPiAtaW5kZXggYmI3NGQyYS4uNjNlOGMyMCAxMDA2NDQNCj4gLS0tLSBh L3J1bnRlc3QuYw0KPiAtKysrIGIvcnVudGVzdC5jDQo+IC1AQCAtNDIwMiw2ICs0MjAyLDkg QEAgdGVzdERlc2MgdGVzdERlc2NyaXB0aW9uc1tdID0gew0KPiAtICAgICB7ICJFcnJvciBj YXNlcyByZWdyZXNzaW9uIHRlc3RzIiwNCj4gLSAgICAgICBlcnJQYXJzZVRlc3QsICIuL3Rl c3QvZXJyb3JzLyoueG1sIiwgInJlc3VsdC9lcnJvcnMvIiwgIiIsICIuZXJyIiwNCj4gLSAg ICAgICAwIH0sDQo+IC0rICAgIHsgIkVycm9yIGNhc2VzIHJlZ3Jlc3Npb24gdGVzdHMgKG9s ZCAxLjApIiwNCj4gLSsgICAgICBlcnJQYXJzZVRlc3QsICIuL3Rlc3QvZXJyb3JzMTAvKi54 bWwiLCAicmVzdWx0L2Vycm9yczEwLyIsICIiLCAiLmVyciIsDQo+IC0rICAgICAgWE1MX1BB UlNFX09MRDEwIH0sDQo+IC0gI2lmZGVmIExJQlhNTF9SRUFERVJfRU5BQkxFRA0KPiAtICAg ICB7ICJFcnJvciBjYXNlcyBzdHJlYW0gcmVncmVzc2lvbiB0ZXN0cyIsDQo+IC0gICAgICAg c3RyZWFtUGFyc2VUZXN0LCAiLi90ZXN0L2Vycm9ycy8qLnhtbCIsICJyZXN1bHQvZXJyb3Jz LyIsIE5VTEwsICIuc3RyIiwNCj4gLWRpZmYgLS1naXQgYS90ZXN0L2Vycm9yczEwLzc4MTIw NS54bWwgYi90ZXN0L2Vycm9yczEwLzc4MTIwNS54bWwNCj4gLW5ldyBmaWxlIG1vZGUgMTAw NjQ0DQo+IC1pbmRleCAwMDAwMDAwLi5kOWU5ZTgzDQo+IC0tLS0gL2Rldi9udWxsDQo+IC0r KysgYi90ZXN0L2Vycm9yczEwLzc4MTIwNS54bWwNCj4gLUBAIC0wLDAgKzEsMyBAQA0KPiAt KzwhRE9DVFlQRSBEIFsNCj4gLSsgIDwhRU5USVRZICUgYSAiPDowMDAwIj4NCj4gLSsgICVh Ow0KPiAtZGlmZiAtLWdpdCBhL3Rlc3QvZXJyb3JzMTAvNzgxMzYxLnhtbCBiL3Rlc3QvZXJy b3JzMTAvNzgxMzYxLnhtbA0KPiAtbmV3IGZpbGUgbW9kZSAxMDA2NDQNCj4gLWluZGV4IDAw MDAwMDAuLjY3NDc2YmMNCj4gLS0tLSAvZGV2L251bGwNCj4gLSsrKyBiL3Rlc3QvZXJyb3Jz MTAvNzgxMzYxLnhtbA0KPiAtQEAgLTAsMCArMSwzIEBADQo+IC0rPCFET0NUWVBFIGRvYyBb DQo+IC0rICA8IUVOVElUWSAlIGVsZW0gIjwhRUxFTUVOVCBlMDAwMDAwMDAwMCI+DQo+IC0r ICAlZWxlbTsNCj4gLWRpZmYgLS1naXQgYS90ZXN0L3ZhbGlkLzc2Njk1Ni54bWwgYi90ZXN0 L3ZhbGlkLzc2Njk1Ni54bWwNCj4gLW5ldyBmaWxlIG1vZGUgMTAwNjQ0DQo+IC1pbmRleCAw MDAwMDAwLi4xOWE5NWEwDQo+IC0tLS0gL2Rldi9udWxsDQo+IC0rKysgYi90ZXN0L3ZhbGlk Lzc2Njk1Ni54bWwNCj4gLUBAIC0wLDAgKzEsMiBAQA0KPiAtKzwhRE9DVFlQRSB0ZXN0IFNZ U1RFTSAiZHRkcy83NjY5NTYuZHRkIj4NCj4gLSs8dGVzdC8+DQo+IC1kaWZmIC0tZ2l0IGEv dGVzdC92YWxpZC9kdGRzLzc2Njk1Ni5kdGQgYi90ZXN0L3ZhbGlkL2R0ZHMvNzY2OTU2LmR0 ZA0KPiAtbmV3IGZpbGUgbW9kZSAxMDA2NDQNCj4gLWluZGV4IDAwMDAwMDAuLmRkZGRlNjgN Cj4gLS0tLSAvZGV2L251bGwNCj4gLSsrKyBiL3Rlc3QvdmFsaWQvZHRkcy83NjY5NTYuZHRk DQo+IC1AQCAtMCwwICsxLDIgQEANCj4gLSs8IUVOVElUWSAlIGVudCAidmFsdWUiPg0KPiAt KyXDpCVlbnQ7DQo+IGRpZmYgLS1naXQgYS9tZXRhL3JlY2lwZXMtY29yZS9saWJ4bWwvbGli eG1sMi9saWJ4bWwyLWZpeF9OVUxMX3BvaW50ZXJfZGVyZWZzLnBhdGNoIGIvbWV0YS9yZWNp cGVzLWNvcmUvbGlieG1sL2xpYnhtbDIvbGlieG1sMi1maXhfTlVMTF9wb2ludGVyX2RlcmVm cy5wYXRjaA0KPiBkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQNCj4gaW5kZXggYzYwZTMyZi4u MDAwMDAwMA0KPiAtLS0gYS9tZXRhL3JlY2lwZXMtY29yZS9saWJ4bWwvbGlieG1sMi9saWJ4 bWwyLWZpeF9OVUxMX3BvaW50ZXJfZGVyZWZzLnBhdGNoDQo+ICsrKyAvZGV2L251bGwNCj4g QEAgLTEsNDUgKzAsMCBAQA0KPiAtbGlieG1sMi0yLjkuNDogRml4IG1vcmUgTlVMTCBwb2lu dGVyIGRlcmVmcw0KPiAtDQo+IC14cG9pbnRlcjogRml4IG1vcmUgTlVMTCBwb2ludGVyIGRl cmVmcw0KPiAtDQo+IC1VcHN0cmVhbS1TdGF0dXM6IEJhY2twb3J0IFtodHRwczovL2dpdC5n bm9tZS5vcmcvYnJvd3NlL2xpYnhtbDIvY29tbWl0Lz9pZD1lOTA1ZjA4MTIzZTRhNmU3NzMx NTQ5ZTZmMDlkYWRmZjRjYWI2NWJkXQ0KPiAtU2lnbmVkLW9mZi1ieTogQW5kcmVqIFZhbGVr IDxhbmRyZWoudmFsZWtAc2llbWVucy5jb20+DQo+IC1TaWduZWQtb2ZmLWJ5OiBQYXNjYWwg QmFjaCA8cGFzY2FsLmJhY2hAc2llbWVucy5jb20+DQo+IC0NCj4gLWRpZmYgLS1naXQgYS94 cG9pbnRlci5jIGIveHBvaW50ZXIuYw0KPiAtaW5kZXggNjc2YzUxMC4uMDc0ZGIyNCAxMDA2 NDQNCj4gLS0tLSBhL3hwb2ludGVyLmMNCj4gLSsrKyBiL3hwb2ludGVyLmMNCj4gLUBAIC01 NTUsNyArNTU1LDcgQEAgeG1sWFB0ck5ld1JhbmdlTm9kZU9iamVjdCh4bWxOb2RlUHRyIHN0 YXJ0LCB4bWxYUGF0aE9iamVjdFB0ciBlbmQpIHsNCj4gLSAJICAgIC8qDQo+IC0gCSAgICAg KiBFbXB0eSBzZXQgLi4uDQo+IC0gCSAgICAgKi8NCj4gLS0JICAgIGlmIChlbmQtPm5vZGVz ZXR2YWwtPm5vZGVOciA8PSAwKQ0KPiAtKwkgICAgaWYgKChlbmQtPm5vZGVzZXR2YWwgPT0g TlVMTCkgfHwgKGVuZC0+bm9kZXNldHZhbC0+bm9kZU5yIDw9IDApKQ0KPiAtIAkJcmV0dXJu KE5VTEwpOw0KPiAtIAkgICAgYnJlYWs7DQo+IC0gCWRlZmF1bHQ6DQo+IC1AQCAtMTQwMCw3 ICsxNDAwLDcgQEAgeG1sWFB0ckV2YWwoY29uc3QgeG1sQ2hhciAqc3RyLCB4bWxYUGF0aENv bnRleHRQdHIgY3R4KSB7DQo+IC0gCQkgICAgICovDQo+IC0gCQkgICAgeG1sTm9kZVNldFB0 ciBzZXQ7DQo+IC0gCQkgICAgc2V0ID0gdG1wLT5ub2Rlc2V0dmFsOw0KPiAtLQkJICAgIGlm ICgoc2V0LT5ub2RlTnIgIT0gMSkgfHwNCj4gLSsJCSAgICBpZiAoKHNldCA9PSBOVUxMKSB8 fCAoc2V0LT5ub2RlTnIgIT0gMSkgfHwNCj4gLSAJCQkoc2V0LT5ub2RlVGFiWzBdICE9ICh4 bWxOb2RlUHRyKSBjdHgtPmRvYykpDQo+IC0gCQkJc3RhY2srKzsNCj4gLSAJCX0gZWxzZQ0K PiAtQEAgLTIwNzMsOSArMjA3MywxMSBAQCB4bWxYUHRyUmFuZ2VGdW5jdGlvbih4bWxYUGF0 aFBhcnNlckNvbnRleHRQdHIgY3R4dCwgaW50IG5hcmdzKSB7DQo+IC0gCXhtbFhQYXRoRnJl ZU9iamVjdChzZXQpOw0KPiAtICAgICAgICAgWFBfRVJST1IoWFBBVEhfTUVNT1JZX0VSUk9S KTsNCj4gLSAgICAgfQ0KPiAtLSAgICBmb3IgKGkgPSAwO2kgPCBvbGRzZXQtPmxvY05yO2kr Kykgew0KPiAtLQl4bWxYUHRyTG9jYXRpb25TZXRBZGQobmV3c2V0LA0KPiAtLQkJeG1sWFB0 ckNvdmVyaW5nUmFuZ2UoY3R4dCwgb2xkc2V0LT5sb2NUYWJbaV0pKTsNCj4gLSsgICAgaWYg KG9sZHNldCAhPSBOVUxMKSB7DQo+IC0rCWZvciAoaSA9IDA7aSA8IG9sZHNldC0+bG9jTnI7 aSsrKSB7DQo+IC0rCSAgeG1sWFB0ckxvY2F0aW9uU2V0QWRkKG5ld3NldCwNCj4gLSsJCSAg eG1sWFB0ckNvdmVyaW5nUmFuZ2UoY3R4dCwgb2xkc2V0LT5sb2NUYWJbaV0pKTsNCj4gLSsg ICAgICB9DQo+IC0gICAgIH0NCj4gLSANCj4gLSAgICAgLyoNCj4gZGlmZiAtLWdpdCBhL21l dGEvcmVjaXBlcy1jb3JlL2xpYnhtbC9saWJ4bWwyL2xpYnhtbDItZml4X2FuZF9zaW1wbGlm eV94bWxQYXJzZVN0YXJ0VGFnMi5wYXRjaCBiL21ldGEvcmVjaXBlcy1jb3JlL2xpYnhtbC9s aWJ4bWwyL2xpYnhtbDItZml4X2FuZF9zaW1wbGlmeV94bWxQYXJzZVN0YXJ0VGFnMi5wYXRj aA0KPiBkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQNCj4gaW5kZXggZmFhNTc3MC4uMDAwMDAw MA0KPiAtLS0gYS9tZXRhL3JlY2lwZXMtY29yZS9saWJ4bWwvbGlieG1sMi9saWJ4bWwyLWZp eF9hbmRfc2ltcGxpZnlfeG1sUGFyc2VTdGFydFRhZzIucGF0Y2gNCj4gKysrIC9kZXYvbnVs bA0KPiBAQCAtMSw1OTAgKzAsMCBAQA0KPiAtbGlieG1sMi0yLjkuNDogQXZvaWQgcmVwYXJz aW5nIGFuZCBzaW1wbGlmeSBjb250cm9sIGZsb3cgaW4geG1sUGFyc2VTdGFydFRhZzINCj4g LQ0KPiAtW05vIHVwc3RyZWFtIHRyYWNraW5nXQ0KPiAtDQo+IC1wYXJzZXI6IEF2b2lkIHJl cGFyc2luZyBpbiB4bWxQYXJzZVN0YXJ0VGFnMg0KPiAtDQo+IC1UaGUgY29kZSBpbiB4bWxQ YXJzZVN0YXJ0VGFnMiBtdXN0IGhhbmRsZSB0aGUgY2FzZSB0aGF0IHRoZSBpbnB1dA0KPiAt YnVmZmVyIHdhcyBncm93biBhbmQgcmVhbGxvY2F0ZWQgd2hpY2ggY2FuIGludmFsaWRhdGUg cG9pbnRlcnMgdG8NCj4gLWF0dHJpYnV0ZSB2YWx1ZXMuIEJlZm9yZSwgdGhpcyB3YXMgaGFu ZGxlZCBieSBkZXRlY3RpbmcgY2hhbmdlcyBvZg0KPiAtdGhlIGlucHV0IGJ1ZmZlciAiYmFz ZSIgcG9pbnRlciBhbmQsIGluIGNhc2Ugb2YgYSBjaGFuZ2UsIGp1bXBpbmcNCj4gLWJhY2sg dG8gdGhlIGJlZ2lubmluZyBvZiB0aGUgZnVuY3Rpb24gYW5kIHJlcGFyc2luZyB0aGUgc3Rh cnQgdGFnLg0KPiAtDQo+IC1UaGUgbWFqb3IgcHJvYmxlbSBvZiB0aGlzIGFwcHJvYWNoIGlz IHRoYXQgd2hldGhlciBhbiBpbnB1dCBidWZmZXIgaXMNCj4gLXJlYWxsb2NhdGVkIGlzIG5v bmRldGVybWluaXN0aWMsIHJlc3VsdGluZyBpbiBzZWVtaW5nbHkgcmFuZG9tIHRlc3QNCj4g LWZhaWx1cmVzLiBTZWUgdGhlIG1haWxpbmcgbGlzdCB0aHJlYWQgInJ1bnRlc3QgbXlzdGVy eSBidWc6IG5hbWUyLnhtbA0KPiAtZXJyb3IgY2FzZSByZWdyZXNzaW9uIHRlc3QiIGZyb20g MjAxMiwgZm9yIGV4YW1wbGUuDQo+IC0NCj4gLUlmIGEgcmVhbGxvY2F0aW9uIHdhcyBkZXRl Y3RlZCwgdGhlIGNvZGUgYWxzbyBtYWRlIG5vIGF0dGVtcHRzIHRvDQo+IC1jb250aW51ZSBw YXJzaW5nIGluIGNhc2Ugb2YgZXJyb3JzIHdoaWNoIG1ha2VzIGEgZGlmZmVyZW5jZSBpbg0K PiAtdGhlIGxheCAicmVjb3ZlciIgbW9kZS4NCj4gLQ0KPiAtTm93IHdlIHN0b3JlIHRoZSBj dXJyZW50IGlucHV0IGJ1ZmZlciAiYmFzZSIgcG9pbnRlciBmb3IgZWFjaCAobm90DQo+IC1z ZXBhcmF0ZWx5IGFsbG9jYXRlZCkgYXR0cmlidXRlIGluIHRoZSBuYW1lc3BhY2UgVVJJIGZp ZWxkLCB3aGljaCBpc24ndA0KPiAtdXNlZCB1bnRpbCBsYXRlci4gQWZ0ZXIgdGhlIHdob2xl IHN0YXJ0IHRhZyB3YXMgcGFyc2VkLCB0aGUgcG9pbnRlcnMgdG8NCj4gLXRoZSBhdHRyaWJ1 dGUgdmFsdWVzIGFyZSByZWNvbnN0cnVjdGVkIHVzaW5nIHRoZSBvZmZzZXQgYmV0d2VlbiB0 aGUNCj4gLW5ldyBhbmQgdGhlIG9sZCBpbnB1dCBidWZmZXIuIFRoaXMgcmVsaWVzIG9uIGFy aXRobWV0aWMgb24gZGFuZ2xpbmcNCj4gLXBvaW50ZXJzIHdoaWNoIGlzIHRlY2huaWNhbGx5 IHVuZGVmaW5lZCBiZWhhdmlvci4gQnV0IGl0IHNlZW1zIGxpa2UNCj4gLXRoZSBlYXNpZXN0 IGFuZCBtb3N0IGVmZmljaWVudCBmaXggYW5kIGEgc2ltaWxhciBhcHByb2FjaCBpcyB1c2Vk IGluDQo+IC14bWxQYXJzZXJJbnB1dEdyb3cuDQo+IC0NCj4gLVRoaXMgY2hhbmdlcyB0aGUg ZXJyb3Igb3V0cHV0IG9mIHNldmVyYWwgdGVzdHMsIHR5cGljYWxseSBtYWtpbmcgaXQNCj4g LW1vcmUgdmVyYm9zZSBiZWNhdXNlIHdlIHRyeSBoYXJkZXIgdG8gY29udGludWUgcGFyc2lu ZyBpbiBjYXNlIG9mIGVycm9ycy4NCj4gLQ0KPiAtKEFub3RoZXIgcG9zc2libGUgc29sdXRp b24gaXMgdG8gY2hlY2sgbm90IG9ubHkgdGhlICJiYXNlIiBwb2ludGVyDQo+IC1idXQgdGhl IHNpemUgb2YgdGhlIGlucHV0IGJ1ZmZlciBhcyB3ZWxsLiBCdXQgdGhpcyB3b3VsZCByZXN1 bHQgaW4NCj4gLWV2ZW4gbW9yZSByZXBhcnNpbmcuKQ0KPiAtDQo+IC1SZW1vdmUgc29tZSBn b3RvIGxhYmVscyBhbmQgZGVkdXBsaWNhdGUgYSBiaXQgb2YgY29kZSBhZnRlciBoYW5kbGlu Zw0KPiAtbmFtZXNwYWNlcy4NCj4gLQ0KPiAtVGhlcmUgd2VyZSB0d28gYnVncyB3aGVyZSBw YXJhbWV0ZXItZW50aXR5IHJlZmVyZW5jZXMgY291bGQgbGVhZCB0byBhbg0KPiAtdW5leHBl Y3RlZCBjaGFuZ2Ugb2YgdGhlIGlucHV0IGJ1ZmZlciBpbiB4bWxQYXJzZU5hbWVDb21wbGV4 IGFuZA0KPiAteG1sRGljdExvb2t1cCBiZWluZyBjYWxsZWQgd2l0aCBhbiBpbnZhbGlkIHBv aW50ZXIuDQo+IC0NCj4gLQ0KPiAtVXBzdHJlYW0tU3RhdHVzOiBCYWNrcG9ydA0KPiAtIC0g W2h0dHBzOi8vZ2l0Lmdub21lLm9yZy9icm93c2UvbGlieG1sMi9jb21taXQvP2lkPTA3Yjc0 MjhiNjljMzY4NjExZDIxNWExNDBmZTYzMGIyZDFlNjEzNDldDQo+IC0gLSBbaHR0cHM6Ly9n aXQuZ25vbWUub3JnL2Jyb3dzZS9saWJ4bWwyL2NvbW1pdC8/aWQ9ODU1YzE5ZWZiN2NkMzBk OTI3ZDY3M2IzNjU4NTYzYzQ5NTljYTZmMF0NCj4gLVNpZ25lZC1vZmYtYnk6IEFuZHJlaiBW YWxlayA8YW5kcmVqLnZhbGVrQHNpZW1lbnMuY29tPg0KPiAtDQo+IC1kaWZmIC0tZ2l0IGEv cGFyc2VyLmMgYi9wYXJzZXIuYw0KPiAtaW5kZXggNjA5YTI3MC4uNzQwMTZlMyAxMDA2NDQN Cj4gLS0tLSBhL3BhcnNlci5jDQo+IC0rKysgYi9wYXJzZXIuYw0KPiAtQEAgLTQzLDYgKzQz LDcgQEANCj4gLSAjaW5jbHVkZSA8bGltaXRzLmg+DQo+IC0gI2luY2x1ZGUgPHN0cmluZy5o Pg0KPiAtICNpbmNsdWRlIDxzdGRhcmcuaD4NCj4gLSsjaW5jbHVkZSA8c3RkZGVmLmg+DQo+ IC0gI2luY2x1ZGUgPGxpYnhtbC94bWxtZW1vcnkuaD4NCj4gLSAjaW5jbHVkZSA8bGlieG1s L3RocmVhZHMuaD4NCj4gLSAjaW5jbHVkZSA8bGlieG1sL2dsb2JhbHMuaD4NCj4gLUBAIC05 Mzc3LDggKzkzNzgsNyBAQCB4bWxQYXJzZVN0YXJ0VGFnMih4bWxQYXJzZXJDdHh0UHRyIGN0 eHQsIGNvbnN0IHhtbENoYXIgKipwcmVmLA0KPiAtICAgICBjb25zdCB4bWxDaGFyICoqYXR0 cyA9IGN0eHQtPmF0dHM7DQo+IC0gICAgIGludCBtYXhhdHRzID0gY3R4dC0+bWF4YXR0czsN Cj4gLSAgICAgaW50IG5yYXR0cywgbmJhdHRzLCBuYmRlZjsNCj4gLS0gICAgaW50IGksIGos IG5iTnMsIGF0dHZhbCwgb2xkbGluZSwgb2xkY29sLCBpbnB1dE5yOw0KPiAtLSAgICBjb25z dCB4bWxDaGFyICpiYXNlOw0KPiAtKyAgICBpbnQgaSwgaiwgbmJOcywgYXR0dmFsOw0KPiAt ICAgICB1bnNpZ25lZCBsb25nIGN1cjsNCj4gLSAgICAgaW50IG5zTnIgPSBjdHh0LT5uc05y Ow0KPiAtIA0KPiAtQEAgLTkzOTIsMTMgKzkzOTIsOCBAQCB4bWxQYXJzZVN0YXJ0VGFnMih4 bWxQYXJzZXJDdHh0UHRyIGN0eHQsIGNvbnN0IHhtbENoYXIgKipwcmVmLA0KPiAtICAgICAg KiAgICAgICBUaGUgU2hyaW5raW5nIGlzIG9ubHkgcG9zc2libGUgb25jZSB0aGUgZnVsbCBz ZXQgb2YgYXR0cmlidXRlDQo+IC0gICAgICAqICAgICAgIGNhbGxiYWNrcyBoYXZlIGJlZW4g ZG9uZS4NCj4gLSAgICAgICovDQo+IC0tcmVwYXJzZToNCj4gLSAgICAgU0hSSU5LOw0KPiAt LSAgICBiYXNlID0gY3R4dC0+aW5wdXQtPmJhc2U7DQo+IC0gICAgIGN1ciA9IGN0eHQtPmlu cHV0LT5jdXIgLSBjdHh0LT5pbnB1dC0+YmFzZTsNCj4gLS0gICAgaW5wdXROciA9IGN0eHQt PmlucHV0TnI7DQo+IC0tICAgIG9sZGxpbmUgPSBjdHh0LT5pbnB1dC0+bGluZTsNCj4gLS0g ICAgb2xkY29sID0gY3R4dC0+aW5wdXQtPmNvbDsNCj4gLSAgICAgbmJhdHRzID0gMDsNCj4g LSAgICAgbnJhdHRzID0gMDsNCj4gLSAgICAgbmJkZWYgPSAwOw0KPiAtQEAgLTk0MjIsOCAr OTQxNyw2IEBAIHJlcGFyc2U6DQo+IC0gICAgICAqLw0KPiAtICAgICBTS0lQX0JMQU5LUzsN Cj4gLSAgICAgR1JPVzsNCj4gLS0gICAgaWYgKChjdHh0LT5pbnB1dC0+YmFzZSAhPSBiYXNl KSB8fCAoaW5wdXROciAhPSBjdHh0LT5pbnB1dE5yKSkNCj4gLS0gICAgICAgIGdvdG8gYmFz ZV9jaGFuZ2VkOw0KPiAtIA0KPiAtICAgICB3aGlsZSAoKChSQVcgIT0gJz4nKSAmJg0KPiAt IAkgICAoKFJBVyAhPSAnLycpIHx8IChOWFQoMSkgIT0gJz4nKSkgJiYNCj4gLUBAIC05NDM0 LDIwMyArOTQyNywxNzQgQEAgcmVwYXJzZToNCj4gLSANCj4gLSAJYXR0bmFtZSA9IHhtbFBh cnNlQXR0cmlidXRlMihjdHh0LCBwcmVmaXgsIGxvY2FsbmFtZSwNCj4gLSAJICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAmYXByZWZpeCwgJmF0dHZhbHVlLCAmbGVuLCAmYWxsb2Mp Ow0KPiAtLQlpZiAoKGN0eHQtPmlucHV0LT5iYXNlICE9IGJhc2UpIHx8IChpbnB1dE5yICE9 IGN0eHQtPmlucHV0TnIpKSB7DQo+IC0tCSAgICBpZiAoKGF0dHZhbHVlICE9IE5VTEwpICYm IChhbGxvYyAhPSAwKSkNCj4gLS0JICAgICAgICB4bWxGcmVlKGF0dHZhbHVlKTsNCj4gLS0J ICAgIGF0dHZhbHVlID0gTlVMTDsNCj4gLS0JICAgIGdvdG8gYmFzZV9jaGFuZ2VkOw0KPiAt LQl9DQo+IC0tICAgICAgICBpZiAoKGF0dG5hbWUgIT0gTlVMTCkgJiYgKGF0dHZhbHVlICE9 IE5VTEwpKSB7DQo+IC0tCSAgICBpZiAobGVuIDwgMCkgbGVuID0geG1sU3RybGVuKGF0dHZh bHVlKTsNCj4gLS0gICAgICAgICAgICBpZiAoKGF0dG5hbWUgPT0gY3R4dC0+c3RyX3htbG5z KSAmJiAoYXByZWZpeCA9PSBOVUxMKSkgew0KPiAtLQkgICAgICAgIGNvbnN0IHhtbENoYXIg KlVSTCA9IHhtbERpY3RMb29rdXAoY3R4dC0+ZGljdCwgYXR0dmFsdWUsIGxlbik7DQo+IC0t CQl4bWxVUklQdHIgdXJpOw0KPiAtLQ0KPiAtLSAgICAgICAgICAgICAgICBpZiAoVVJMID09 IE5VTEwpIHsNCj4gLS0JCSAgICB4bWxFcnJNZW1vcnkoY3R4dCwgImRpY3Rpb25hcnkgYWxs b2NhdGlvbiBmYWlsdXJlIik7DQo+IC0tCQkgICAgaWYgKChhdHR2YWx1ZSAhPSBOVUxMKSAm JiAoYWxsb2MgIT0gMCkpDQo+IC0tCQkJeG1sRnJlZShhdHR2YWx1ZSk7DQo+IC0tCQkgICAg cmV0dXJuKE5VTEwpOw0KPiAtLQkJfQ0KPiAtLSAgICAgICAgICAgICAgICBpZiAoKlVSTCAh PSAwKSB7DQo+IC0tCQkgICAgdXJpID0geG1sUGFyc2VVUkkoKGNvbnN0IGNoYXIgKikgVVJM KTsNCj4gLS0JCSAgICBpZiAodXJpID09IE5VTEwpIHsNCj4gLS0JCQl4bWxOc0VycihjdHh0 LCBYTUxfV0FSX05TX1VSSSwNCj4gLS0JCQkgICAgICAgICAieG1sbnM6ICclcycgaXMgbm90 IGEgdmFsaWQgVVJJXG4iLA0KPiAtLQkJCQkJICAgVVJMLCBOVUxMLCBOVUxMKTsNCj4gLS0J CSAgICB9IGVsc2Ugew0KPiAtLQkJCWlmICh1cmktPnNjaGVtZSA9PSBOVUxMKSB7DQo+IC0t CQkJICAgIHhtbE5zV2FybihjdHh0LCBYTUxfV0FSX05TX1VSSV9SRUxBVElWRSwNCj4gLS0J CQkJICAgICAgInhtbG5zOiBVUkkgJXMgaXMgbm90IGFic29sdXRlXG4iLA0KPiAtLQkJCQkg ICAgICBVUkwsIE5VTEwsIE5VTEwpOw0KPiAtLQkJCX0NCj4gLS0JCQl4bWxGcmVlVVJJKHVy aSk7DQo+IC0tCQkgICAgfQ0KPiAtLQkJICAgIGlmIChVUkwgPT0gY3R4dC0+c3RyX3htbF9u cykgew0KPiAtLQkJCWlmIChhdHRuYW1lICE9IGN0eHQtPnN0cl94bWwpIHsNCj4gLS0JCQkg ICAgeG1sTnNFcnIoY3R4dCwgWE1MX05TX0VSUl9YTUxfTkFNRVNQQUNFLA0KPiAtLQkJCSAi eG1sIG5hbWVzcGFjZSBVUkkgY2Fubm90IGJlIHRoZSBkZWZhdWx0IG5hbWVzcGFjZVxuIiwN Cj4gLS0JCQkJICAgICBOVUxMLCBOVUxMLCBOVUxMKTsNCj4gLS0JCQl9DQo+IC0tCQkJZ290 byBza2lwX2RlZmF1bHRfbnM7DQo+IC0tCQkgICAgfQ0KPiAtLQkJICAgIGlmICgobGVuID09 IDI5KSAmJg0KPiAtLQkJCSh4bWxTdHJFcXVhbChVUkwsDQo+IC0tCQkJCSBCQURfQ0FTVCAi aHR0cDovL3d3dy53My5vcmcvMjAwMC94bWxucy8iKSkpIHsNCj4gLS0JCQl4bWxOc0Vycihj dHh0LCBYTUxfTlNfRVJSX1hNTF9OQU1FU1BBQ0UsDQo+IC0tCQkJICAgICAicmV1c2Ugb2Yg dGhlIHhtbG5zIG5hbWVzcGFjZSBuYW1lIGlzIGZvcmJpZGRlblxuIiwNCj4gLS0JCQkJIE5V TEwsIE5VTEwsIE5VTEwpOw0KPiAtLQkJCWdvdG8gc2tpcF9kZWZhdWx0X25zOw0KPiAtLQkJ ICAgIH0NCj4gLS0JCX0NCj4gLS0JCS8qDQo+IC0tCQkgKiBjaGVjayB0aGF0IGl0J3Mgbm90 IGEgZGVmaW5lZCBuYW1lc3BhY2UNCj4gLS0JCSAqLw0KPiAtLQkJZm9yIChqID0gMTtqIDw9 IG5iTnM7aisrKQ0KPiAtLQkJICAgIGlmIChjdHh0LT5uc1RhYltjdHh0LT5uc05yIC0gMiAq IGpdID09IE5VTEwpDQo+IC0tCQkJYnJlYWs7DQo+IC0tCQlpZiAoaiA8PSBuYk5zKQ0KPiAt LQkJICAgIHhtbEVyckF0dHJpYnV0ZUR1cChjdHh0LCBOVUxMLCBhdHRuYW1lKTsNCj4gLS0J CWVsc2UNCj4gLS0JCSAgICBpZiAobnNQdXNoKGN0eHQsIE5VTEwsIFVSTCkgPiAwKSBuYk5z Kys7DQo+IC0tc2tpcF9kZWZhdWx0X25zOg0KPiAtLQkJaWYgKChhdHR2YWx1ZSAhPSBOVUxM KSAmJiAoYWxsb2MgIT0gMCkpIHsNCj4gLS0JCSAgICB4bWxGcmVlKGF0dHZhbHVlKTsNCj4g LS0JCSAgICBhdHR2YWx1ZSA9IE5VTEw7DQo+IC0tCQl9DQo+IC0tCQlpZiAoKFJBVyA9PSAn PicpIHx8ICgoKFJBVyA9PSAnLycpICYmIChOWFQoMSkgPT0gJz4nKSkpKQ0KPiAtLQkJICAg IGJyZWFrOw0KPiAtLQkJaWYgKCFJU19CTEFOS19DSChSQVcpKSB7DQo+IC0tCQkgICAgeG1s RmF0YWxFcnJNc2coY3R4dCwgWE1MX0VSUl9TUEFDRV9SRVFVSVJFRCwNCj4gLS0JCQkJICAg ImF0dHJpYnV0ZXMgY29uc3RydWN0IGVycm9yXG4iKTsNCj4gLS0JCSAgICBicmVhazsNCj4g LS0JCX0NCj4gLS0JCVNLSVBfQkxBTktTOw0KPiAtLQkJaWYgKChjdHh0LT5pbnB1dC0+YmFz ZSAhPSBiYXNlKSB8fCAoaW5wdXROciAhPSBjdHh0LT5pbnB1dE5yKSkNCj4gLS0JCSAgICBn b3RvIGJhc2VfY2hhbmdlZDsNCj4gLS0JCWNvbnRpbnVlOw0KPiAtLQkgICAgfQ0KPiAtLSAg ICAgICAgICAgIGlmIChhcHJlZml4ID09IGN0eHQtPnN0cl94bWxucykgew0KPiAtLQkgICAg ICAgIGNvbnN0IHhtbENoYXIgKlVSTCA9IHhtbERpY3RMb29rdXAoY3R4dC0+ZGljdCwgYXR0 dmFsdWUsIGxlbik7DQo+IC0tCQl4bWxVUklQdHIgdXJpOw0KPiAtLQ0KPiAtLSAgICAgICAg ICAgICAgICBpZiAoYXR0bmFtZSA9PSBjdHh0LT5zdHJfeG1sKSB7DQo+IC0tCQkgICAgaWYg KFVSTCAhPSBjdHh0LT5zdHJfeG1sX25zKSB7DQo+IC0tCQkgICAgICAgIHhtbE5zRXJyKGN0 eHQsIFhNTF9OU19FUlJfWE1MX05BTUVTUEFDRSwNCj4gLS0JCQkgICAgICAgICAieG1sIG5h bWVzcGFjZSBwcmVmaXggbWFwcGVkIHRvIHdyb25nIFVSSVxuIiwNCj4gLS0JCQkgICAgICAg ICBOVUxMLCBOVUxMLCBOVUxMKTsNCj4gLS0JCSAgICB9DQo+IC0tCQkgICAgLyoNCj4gLS0J CSAgICAgKiBEbyBub3Qga2VlcCBhIG5hbWVzcGFjZSBkZWZpbml0aW9uIG5vZGUNCj4gLS0J CSAgICAgKi8NCj4gLS0JCSAgICBnb3RvIHNraXBfbnM7DQo+IC0tCQl9DQo+IC0rICAgICAg ICBpZiAoKGF0dG5hbWUgPT0gTlVMTCkgfHwgKGF0dHZhbHVlID09IE5VTEwpKQ0KPiAtKyAg ICAgICAgICAgIGdvdG8gbmV4dF9hdHRyOw0KPiAtKwlpZiAobGVuIDwgMCkgbGVuID0geG1s U3RybGVuKGF0dHZhbHVlKTsNCj4gLSsNCj4gLSsgICAgICAgIGlmICgoYXR0bmFtZSA9PSBj dHh0LT5zdHJfeG1sbnMpICYmIChhcHJlZml4ID09IE5VTEwpKSB7DQo+IC0rICAgICAgICAg ICAgY29uc3QgeG1sQ2hhciAqVVJMID0geG1sRGljdExvb2t1cChjdHh0LT5kaWN0LCBhdHR2 YWx1ZSwgbGVuKTsNCj4gLSsgICAgICAgICAgICB4bWxVUklQdHIgdXJpOw0KPiAtKw0KPiAt KyAgICAgICAgICAgIGlmIChVUkwgPT0gTlVMTCkgew0KPiAtKyAgICAgICAgICAgICAgICB4 bWxFcnJNZW1vcnkoY3R4dCwgImRpY3Rpb25hcnkgYWxsb2NhdGlvbiBmYWlsdXJlIik7DQo+ IC0rICAgICAgICAgICAgICAgIGlmICgoYXR0dmFsdWUgIT0gTlVMTCkgJiYgKGFsbG9jICE9 IDApKQ0KPiAtKyAgICAgICAgICAgICAgICAgICAgeG1sRnJlZShhdHR2YWx1ZSk7DQo+IC0r ICAgICAgICAgICAgICAgIHJldHVybihOVUxMKTsNCj4gLSsgICAgICAgICAgICB9DQo+IC0r ICAgICAgICAgICAgaWYgKCpVUkwgIT0gMCkgew0KPiAtKyAgICAgICAgICAgICAgICB1cmkg PSB4bWxQYXJzZVVSSSgoY29uc3QgY2hhciAqKSBVUkwpOw0KPiAtKyAgICAgICAgICAgICAg ICBpZiAodXJpID09IE5VTEwpIHsNCj4gLSsgICAgICAgICAgICAgICAgICAgIHhtbE5zRXJy KGN0eHQsIFhNTF9XQVJfTlNfVVJJLA0KPiAtKyAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgInhtbG5zOiAnJXMnIGlzIG5vdCBhIHZhbGlkIFVSSVxuIiwNCj4gLSsgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBVUkwsIE5VTEwsIE5VTEwpOw0KPiAtKyAg ICAgICAgICAgICAgICB9IGVsc2Ugew0KPiAtKyAgICAgICAgICAgICAgICAgICAgaWYgKHVy aS0+c2NoZW1lID09IE5VTEwpIHsNCj4gLSsgICAgICAgICAgICAgICAgICAgICAgICB4bWxO c1dhcm4oY3R4dCwgWE1MX1dBUl9OU19VUklfUkVMQVRJVkUsDQo+IC0rICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICJ4bWxuczogVVJJICVzIGlzIG5vdCBhYnNvbHV0ZVxu IiwNCj4gLSsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgVVJMLCBOVUxMLCBO VUxMKTsNCj4gLSsgICAgICAgICAgICAgICAgICAgIH0NCj4gLSsgICAgICAgICAgICAgICAg ICAgIHhtbEZyZWVVUkkodXJpKTsNCj4gLSsgICAgICAgICAgICAgICAgfQ0KPiAtICAgICAg ICAgICAgICAgICBpZiAoVVJMID09IGN0eHQtPnN0cl94bWxfbnMpIHsNCj4gLS0JCSAgICBp ZiAoYXR0bmFtZSAhPSBjdHh0LT5zdHJfeG1sKSB7DQo+IC0tCQkgICAgICAgIHhtbE5zRXJy KGN0eHQsIFhNTF9OU19FUlJfWE1MX05BTUVTUEFDRSwNCj4gLS0JCQkgICAgICAgICAieG1s IG5hbWVzcGFjZSBVUkkgbWFwcGVkIHRvIHdyb25nIHByZWZpeFxuIiwNCj4gLS0JCQkgICAg ICAgICBOVUxMLCBOVUxMLCBOVUxMKTsNCj4gLS0JCSAgICB9DQo+IC0tCQkgICAgZ290byBz a2lwX25zOw0KPiAtLQkJfQ0KPiAtLSAgICAgICAgICAgICAgICBpZiAoYXR0bmFtZSA9PSBj dHh0LT5zdHJfeG1sbnMpIHsNCj4gLS0JCSAgICB4bWxOc0VycihjdHh0LCBYTUxfTlNfRVJS X1hNTF9OQU1FU1BBQ0UsDQo+IC0tCQkJICAgICAicmVkZWZpbml0aW9uIG9mIHRoZSB4bWxu cyBwcmVmaXggaXMgZm9yYmlkZGVuXG4iLA0KPiAtLQkJCSAgICAgTlVMTCwgTlVMTCwgTlVM TCk7DQo+IC0tCQkgICAgZ290byBza2lwX25zOw0KPiAtLQkJfQ0KPiAtLQkJaWYgKChsZW4g PT0gMjkpICYmDQo+IC0tCQkgICAgKHhtbFN0ckVxdWFsKFVSTCwNCj4gLS0JCSAgICAgICAg ICAgICAgICAgQkFEX0NBU1QgImh0dHA6Ly93d3cudzMub3JnLzIwMDAveG1sbnMvIikpKSB7 DQo+IC0tCQkgICAgeG1sTnNFcnIoY3R4dCwgWE1MX05TX0VSUl9YTUxfTkFNRVNQQUNFLA0K PiAtLQkJCSAgICAgInJldXNlIG9mIHRoZSB4bWxucyBuYW1lc3BhY2UgbmFtZSBpcyBmb3Ji aWRkZW5cbiIsDQo+IC0tCQkJICAgICBOVUxMLCBOVUxMLCBOVUxMKTsNCj4gLS0JCSAgICBn b3RvIHNraXBfbnM7DQo+IC0tCQl9DQo+IC0tCQlpZiAoKFVSTCA9PSBOVUxMKSB8fCAoVVJM WzBdID09IDApKSB7DQo+IC0tCQkgICAgeG1sTnNFcnIoY3R4dCwgWE1MX05TX0VSUl9YTUxf TkFNRVNQQUNFLA0KPiAtLQkJICAgICAgICAgICAgICJ4bWxuczolczogRW1wdHkgWE1MIG5h bWVzcGFjZSBpcyBub3QgYWxsb3dlZFxuIiwNCj4gLS0JCQkgICAgICAgICAgYXR0bmFtZSwg TlVMTCwgTlVMTCk7DQo+IC0tCQkgICAgZ290byBza2lwX25zOw0KPiAtLQkJfSBlbHNlIHsN Cj4gLS0JCSAgICB1cmkgPSB4bWxQYXJzZVVSSSgoY29uc3QgY2hhciAqKSBVUkwpOw0KPiAt LQkJICAgIGlmICh1cmkgPT0gTlVMTCkgew0KPiAtLQkJCXhtbE5zRXJyKGN0eHQsIFhNTF9X QVJfTlNfVVJJLA0KPiAtLQkJCSAgICAgInhtbG5zOiVzOiAnJXMnIGlzIG5vdCBhIHZhbGlk IFVSSVxuIiwNCj4gLS0JCQkJCSAgIGF0dG5hbWUsIFVSTCwgTlVMTCk7DQo+IC0tCQkgICAg fSBlbHNlIHsNCj4gLS0JCQlpZiAoKGN0eHQtPnBlZGFudGljKSAmJiAodXJpLT5zY2hlbWUg PT0gTlVMTCkpIHsNCj4gLS0JCQkgICAgeG1sTnNXYXJuKGN0eHQsIFhNTF9XQVJfTlNfVVJJ X1JFTEFUSVZFLA0KPiAtLQkJCQkgICAgICAieG1sbnM6JXM6IFVSSSAlcyBpcyBub3QgYWJz b2x1dGVcbiIsDQo+IC0tCQkJCSAgICAgIGF0dG5hbWUsIFVSTCwgTlVMTCk7DQo+IC0tCQkJ fQ0KPiAtLQkJCXhtbEZyZWVVUkkodXJpKTsNCj4gLS0JCSAgICB9DQo+IC0tCQl9DQo+IC0t DQo+IC0tCQkvKg0KPiAtLQkJICogY2hlY2sgdGhhdCBpdCdzIG5vdCBhIGRlZmluZWQgbmFt ZXNwYWNlDQo+IC0tCQkgKi8NCj4gLS0JCWZvciAoaiA9IDE7aiA8PSBuYk5zO2orKykNCj4g LS0JCSAgICBpZiAoY3R4dC0+bnNUYWJbY3R4dC0+bnNOciAtIDIgKiBqXSA9PSBhdHRuYW1l KQ0KPiAtLQkJCWJyZWFrOw0KPiAtLQkJaWYgKGogPD0gbmJOcykNCj4gLS0JCSAgICB4bWxF cnJBdHRyaWJ1dGVEdXAoY3R4dCwgYXByZWZpeCwgYXR0bmFtZSk7DQo+IC0tCQllbHNlDQo+ IC0tCQkgICAgaWYgKG5zUHVzaChjdHh0LCBhdHRuYW1lLCBVUkwpID4gMCkgbmJOcysrOw0K PiAtLXNraXBfbnM6DQo+IC0tCQlpZiAoKGF0dHZhbHVlICE9IE5VTEwpICYmIChhbGxvYyAh PSAwKSkgew0KPiAtLQkJICAgIHhtbEZyZWUoYXR0dmFsdWUpOw0KPiAtLQkJICAgIGF0dHZh bHVlID0gTlVMTDsNCj4gLS0JCX0NCj4gLS0JCWlmICgoUkFXID09ICc+JykgfHwgKCgoUkFX ID09ICcvJykgJiYgKE5YVCgxKSA9PSAnPicpKSkpDQo+IC0tCQkgICAgYnJlYWs7DQo+IC0t CQlpZiAoIUlTX0JMQU5LX0NIKFJBVykpIHsNCj4gLS0JCSAgICB4bWxGYXRhbEVyck1zZyhj dHh0LCBYTUxfRVJSX1NQQUNFX1JFUVVJUkVELA0KPiAtLQkJCQkgICAiYXR0cmlidXRlcyBj b25zdHJ1Y3QgZXJyb3JcbiIpOw0KPiAtLQkJICAgIGJyZWFrOw0KPiAtLQkJfQ0KPiAtLQkJ U0tJUF9CTEFOS1M7DQo+IC0tCQlpZiAoKGN0eHQtPmlucHV0LT5iYXNlICE9IGJhc2UpIHx8 IChpbnB1dE5yICE9IGN0eHQtPmlucHV0TnIpKQ0KPiAtLQkJICAgIGdvdG8gYmFzZV9jaGFu Z2VkOw0KPiAtLQkJY29udGludWU7DQo+IC0tCSAgICB9DQo+IC0rICAgICAgICAgICAgICAg ICAgICBpZiAoYXR0bmFtZSAhPSBjdHh0LT5zdHJfeG1sKSB7DQo+IC0rICAgICAgICAgICAg ICAgICAgICAgICAgeG1sTnNFcnIoY3R4dCwgWE1MX05TX0VSUl9YTUxfTkFNRVNQQUNFLA0K PiAtKyAgICAgICAgICAgICAgICAgICAgICJ4bWwgbmFtZXNwYWNlIFVSSSBjYW5ub3QgYmUg dGhlIGRlZmF1bHQgbmFtZXNwYWNlXG4iLA0KPiAtKyAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIE5VTEwsIE5VTEwsIE5VTEwpOw0KPiAtKyAgICAgICAgICAgICAgICAgICAg fQ0KPiAtKyAgICAgICAgICAgICAgICAgICAgZ290byBuZXh0X2F0dHI7DQo+IC0rICAgICAg ICAgICAgICAgIH0NCj4gLSsgICAgICAgICAgICAgICAgaWYgKChsZW4gPT0gMjkpICYmDQo+ IC0rICAgICAgICAgICAgICAgICAgICAoeG1sU3RyRXF1YWwoVVJMLA0KPiAtKyAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgQkFEX0NBU1QgImh0dHA6Ly93d3cudzMub3JnLzIwMDAv eG1sbnMvIikpKSB7DQo+IC0rICAgICAgICAgICAgICAgICAgICB4bWxOc0VycihjdHh0LCBY TUxfTlNfRVJSX1hNTF9OQU1FU1BBQ0UsDQo+IC0rICAgICAgICAgICAgICAgICAgICAgICAg ICJyZXVzZSBvZiB0aGUgeG1sbnMgbmFtZXNwYWNlIG5hbWUgaXMgZm9yYmlkZGVuXG4iLA0K PiAtKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgTlVMTCwgTlVMTCwgTlVMTCk7DQo+ IC0rICAgICAgICAgICAgICAgICAgICBnb3RvIG5leHRfYXR0cjsNCj4gLSsgICAgICAgICAg ICAgICAgfQ0KPiAtKyAgICAgICAgICAgIH0NCj4gLSsgICAgICAgICAgICAvKg0KPiAtKyAg ICAgICAgICAgICAqIGNoZWNrIHRoYXQgaXQncyBub3QgYSBkZWZpbmVkIG5hbWVzcGFjZQ0K PiAtKyAgICAgICAgICAgICAqLw0KPiAtKyAgICAgICAgICAgIGZvciAoaiA9IDE7aiA8PSBu Yk5zO2orKykNCj4gLSsgICAgICAgICAgICAgICAgaWYgKGN0eHQtPm5zVGFiW2N0eHQtPm5z TnIgLSAyICogal0gPT0gTlVMTCkNCj4gLSsgICAgICAgICAgICAgICAgICAgIGJyZWFrOw0K PiAtKyAgICAgICAgICAgIGlmIChqIDw9IG5iTnMpDQo+IC0rICAgICAgICAgICAgICAgIHht bEVyckF0dHJpYnV0ZUR1cChjdHh0LCBOVUxMLCBhdHRuYW1lKTsNCj4gLSsgICAgICAgICAg ICBlbHNlDQo+IC0rICAgICAgICAgICAgICAgIGlmIChuc1B1c2goY3R4dCwgTlVMTCwgVVJM KSA+IDApIG5iTnMrKzsNCj4gLSsNCj4gLSsgICAgICAgIH0gZWxzZSBpZiAoYXByZWZpeCA9 PSBjdHh0LT5zdHJfeG1sbnMpIHsNCj4gLSsgICAgICAgICAgICBjb25zdCB4bWxDaGFyICpV UkwgPSB4bWxEaWN0TG9va3VwKGN0eHQtPmRpY3QsIGF0dHZhbHVlLCBsZW4pOw0KPiAtKyAg ICAgICAgICAgIHhtbFVSSVB0ciB1cmk7DQo+IC0rDQo+IC0rICAgICAgICAgICAgaWYgKGF0 dG5hbWUgPT0gY3R4dC0+c3RyX3htbCkgew0KPiAtKyAgICAgICAgICAgICAgICBpZiAoVVJM ICE9IGN0eHQtPnN0cl94bWxfbnMpIHsNCj4gLSsgICAgICAgICAgICAgICAgICAgIHhtbE5z RXJyKGN0eHQsIFhNTF9OU19FUlJfWE1MX05BTUVTUEFDRSwNCj4gLSsgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICJ4bWwgbmFtZXNwYWNlIHByZWZpeCBtYXBwZWQgdG8gd3Jvbmcg VVJJXG4iLA0KPiAtKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgTlVMTCwgTlVMTCwg TlVMTCk7DQo+IC0rICAgICAgICAgICAgICAgIH0NCj4gLSsgICAgICAgICAgICAgICAgLyoN Cj4gLSsgICAgICAgICAgICAgICAgICogRG8gbm90IGtlZXAgYSBuYW1lc3BhY2UgZGVmaW5p dGlvbiBub2RlDQo+IC0rICAgICAgICAgICAgICAgICAqLw0KPiAtKyAgICAgICAgICAgICAg ICBnb3RvIG5leHRfYXR0cjsNCj4gLSsgICAgICAgICAgICB9DQo+IC0rICAgICAgICAgICAg aWYgKFVSTCA9PSBjdHh0LT5zdHJfeG1sX25zKSB7DQo+IC0rICAgICAgICAgICAgICAgIGlm IChhdHRuYW1lICE9IGN0eHQtPnN0cl94bWwpIHsNCj4gLSsgICAgICAgICAgICAgICAgICAg IHhtbE5zRXJyKGN0eHQsIFhNTF9OU19FUlJfWE1MX05BTUVTUEFDRSwNCj4gLSsgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICJ4bWwgbmFtZXNwYWNlIFVSSSBtYXBwZWQgdG8gd3Jv bmcgcHJlZml4XG4iLA0KPiAtKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgTlVMTCwg TlVMTCwgTlVMTCk7DQo+IC0rICAgICAgICAgICAgICAgIH0NCj4gLSsgICAgICAgICAgICAg ICAgZ290byBuZXh0X2F0dHI7DQo+IC0rICAgICAgICAgICAgfQ0KPiAtKyAgICAgICAgICAg IGlmIChhdHRuYW1lID09IGN0eHQtPnN0cl94bWxucykgew0KPiAtKyAgICAgICAgICAgICAg ICB4bWxOc0VycihjdHh0LCBYTUxfTlNfRVJSX1hNTF9OQU1FU1BBQ0UsDQo+IC0rICAgICAg ICAgICAgICAgICAgICAgICAgICJyZWRlZmluaXRpb24gb2YgdGhlIHhtbG5zIHByZWZpeCBp cyBmb3JiaWRkZW5cbiIsDQo+IC0rICAgICAgICAgICAgICAgICAgICAgICAgIE5VTEwsIE5V TEwsIE5VTEwpOw0KPiAtKyAgICAgICAgICAgICAgICBnb3RvIG5leHRfYXR0cjsNCj4gLSsg ICAgICAgICAgICB9DQo+IC0rICAgICAgICAgICAgaWYgKChsZW4gPT0gMjkpICYmDQo+IC0r ICAgICAgICAgICAgICAgICh4bWxTdHJFcXVhbChVUkwsDQo+IC0rICAgICAgICAgICAgICAg ICAgICAgICAgICAgICBCQURfQ0FTVCAiaHR0cDovL3d3dy53My5vcmcvMjAwMC94bWxucy8i KSkpIHsNCj4gLSsgICAgICAgICAgICAgICAgeG1sTnNFcnIoY3R4dCwgWE1MX05TX0VSUl9Y TUxfTkFNRVNQQUNFLA0KPiAtKyAgICAgICAgICAgICAgICAgICAgICAgICAicmV1c2Ugb2Yg dGhlIHhtbG5zIG5hbWVzcGFjZSBuYW1lIGlzIGZvcmJpZGRlblxuIiwNCj4gLSsgICAgICAg ICAgICAgICAgICAgICAgICAgTlVMTCwgTlVMTCwgTlVMTCk7DQo+IC0rICAgICAgICAgICAg ICAgIGdvdG8gbmV4dF9hdHRyOw0KPiAtKyAgICAgICAgICAgIH0NCj4gLSsgICAgICAgICAg ICBpZiAoKFVSTCA9PSBOVUxMKSB8fCAoVVJMWzBdID09IDApKSB7DQo+IC0rICAgICAgICAg ICAgICAgIHhtbE5zRXJyKGN0eHQsIFhNTF9OU19FUlJfWE1MX05BTUVTUEFDRSwNCj4gLSsg ICAgICAgICAgICAgICAgICAgICAgICAgInhtbG5zOiVzOiBFbXB0eSBYTUwgbmFtZXNwYWNl IGlzIG5vdCBhbGxvd2VkXG4iLA0KPiAtKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAg IGF0dG5hbWUsIE5VTEwsIE5VTEwpOw0KPiAtKyAgICAgICAgICAgICAgICBnb3RvIG5leHRf YXR0cjsNCj4gLSsgICAgICAgICAgICB9IGVsc2Ugew0KPiAtKyAgICAgICAgICAgICAgICB1 cmkgPSB4bWxQYXJzZVVSSSgoY29uc3QgY2hhciAqKSBVUkwpOw0KPiAtKyAgICAgICAgICAg ICAgICBpZiAodXJpID09IE5VTEwpIHsNCj4gLSsgICAgICAgICAgICAgICAgICAgIHhtbE5z RXJyKGN0eHQsIFhNTF9XQVJfTlNfVVJJLA0KPiAtKyAgICAgICAgICAgICAgICAgICAgICAg ICAieG1sbnM6JXM6ICclcycgaXMgbm90IGEgdmFsaWQgVVJJXG4iLA0KPiAtKyAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGF0dG5hbWUsIFVSTCwgTlVMTCk7DQo+ IC0rICAgICAgICAgICAgICAgIH0gZWxzZSB7DQo+IC0rICAgICAgICAgICAgICAgICAgICBp ZiAoKGN0eHQtPnBlZGFudGljKSAmJiAodXJpLT5zY2hlbWUgPT0gTlVMTCkpIHsNCj4gLSsg ICAgICAgICAgICAgICAgICAgICAgICB4bWxOc1dhcm4oY3R4dCwgWE1MX1dBUl9OU19VUklf UkVMQVRJVkUsDQo+IC0rICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJ4bWxu czolczogVVJJICVzIGlzIG5vdCBhYnNvbHV0ZVxuIiwNCj4gLSsgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgYXR0bmFtZSwgVVJMLCBOVUxMKTsNCj4gLSsgICAgICAgICAg ICAgICAgICAgIH0NCj4gLSsgICAgICAgICAgICAgICAgICAgIHhtbEZyZWVVUkkodXJpKTsN Cj4gLSsgICAgICAgICAgICAgICAgfQ0KPiAtKyAgICAgICAgICAgIH0NCj4gLSANCj4gLS0J ICAgIC8qDQo+IC0tCSAgICAgKiBBZGQgdGhlIHBhaXIgdG8gYXR0cw0KPiAtLQkgICAgICov DQo+IC0tCSAgICBpZiAoKGF0dHMgPT0gTlVMTCkgfHwgKG5iYXR0cyArIDUgPiBtYXhhdHRz KSkgew0KPiAtLQkgICAgICAgIGlmICh4bWxDdHh0R3Jvd0F0dHJzKGN0eHQsIG5iYXR0cyAr IDUpIDwgMCkgew0KPiAtLQkJICAgIGlmIChhdHR2YWx1ZVtsZW5dID09IDApDQo+IC0tCQkJ eG1sRnJlZShhdHR2YWx1ZSk7DQo+IC0tCQkgICAgZ290byBmYWlsZWQ7DQo+IC0tCQl9DQo+ IC0tCSAgICAgICAgbWF4YXR0cyA9IGN0eHQtPm1heGF0dHM7DQo+IC0tCQlhdHRzID0gY3R4 dC0+YXR0czsNCj4gLS0JICAgIH0NCj4gLS0JICAgIGN0eHQtPmF0dGFsbG9jc1tucmF0dHMr K10gPSBhbGxvYzsNCj4gLS0JICAgIGF0dHNbbmJhdHRzKytdID0gYXR0bmFtZTsNCj4gLS0J ICAgIGF0dHNbbmJhdHRzKytdID0gYXByZWZpeDsNCj4gLS0JICAgIGF0dHNbbmJhdHRzKytd ID0gTlVMTDsgLyogdGhlIFVSSSB3aWxsIGJlIGZldGNoZWQgbGF0ZXIgKi8NCj4gLS0JICAg IGF0dHNbbmJhdHRzKytdID0gYXR0dmFsdWU7DQo+IC0tCSAgICBhdHR2YWx1ZSArPSBsZW47 DQo+IC0tCSAgICBhdHRzW25iYXR0cysrXSA9IGF0dHZhbHVlOw0KPiAtLQkgICAgLyoNCj4g LS0JICAgICAqIHRhZyBpZiBzb21lIGRlYWxsb2NhdGlvbiBpcyBuZWVkZWQNCj4gLS0JICAg ICAqLw0KPiAtLQkgICAgaWYgKGFsbG9jICE9IDApIGF0dHZhbCA9IDE7DQo+IC0tCX0gZWxz ZSB7DQo+IC0tCSAgICBpZiAoKGF0dHZhbHVlICE9IE5VTEwpICYmIChhdHR2YWx1ZVtsZW5d ID09IDApKQ0KPiAtLQkJeG1sRnJlZShhdHR2YWx1ZSk7DQo+IC0tCX0NCj4gLSsgICAgICAg ICAgICAvKg0KPiAtKyAgICAgICAgICAgICAqIGNoZWNrIHRoYXQgaXQncyBub3QgYSBkZWZp bmVkIG5hbWVzcGFjZQ0KPiAtKyAgICAgICAgICAgICAqLw0KPiAtKyAgICAgICAgICAgIGZv ciAoaiA9IDE7aiA8PSBuYk5zO2orKykNCj4gLSsgICAgICAgICAgICAgICAgaWYgKGN0eHQt Pm5zVGFiW2N0eHQtPm5zTnIgLSAyICogal0gPT0gYXR0bmFtZSkNCj4gLSsgICAgICAgICAg ICAgICAgICAgIGJyZWFrOw0KPiAtKyAgICAgICAgICAgIGlmIChqIDw9IG5iTnMpDQo+IC0r ICAgICAgICAgICAgICAgIHhtbEVyckF0dHJpYnV0ZUR1cChjdHh0LCBhcHJlZml4LCBhdHRu YW1lKTsNCj4gLSsgICAgICAgICAgICBlbHNlDQo+IC0rICAgICAgICAgICAgICAgIGlmIChu c1B1c2goY3R4dCwgYXR0bmFtZSwgVVJMKSA+IDApIG5iTnMrKzsNCj4gLSsNCj4gLSsgICAg ICAgIH0gZWxzZSB7DQo+IC0rICAgICAgICAgICAgLyoNCj4gLSsgICAgICAgICAgICAgKiBB ZGQgdGhlIHBhaXIgdG8gYXR0cw0KPiAtKyAgICAgICAgICAgICAqLw0KPiAtKyAgICAgICAg ICAgIGlmICgoYXR0cyA9PSBOVUxMKSB8fCAobmJhdHRzICsgNSA+IG1heGF0dHMpKSB7DQo+ IC0rICAgICAgICAgICAgICAgIGlmICh4bWxDdHh0R3Jvd0F0dHJzKGN0eHQsIG5iYXR0cyAr IDUpIDwgMCkgew0KPiAtKyAgICAgICAgICAgICAgICAgICAgZ290byBuZXh0X2F0dHI7DQo+ IC0rICAgICAgICAgICAgICAgIH0NCj4gLSsgICAgICAgICAgICAgICAgbWF4YXR0cyA9IGN0 eHQtPm1heGF0dHM7DQo+IC0rICAgICAgICAgICAgICAgIGF0dHMgPSBjdHh0LT5hdHRzOw0K PiAtKyAgICAgICAgICAgIH0NCj4gLSsgICAgICAgICAgICBjdHh0LT5hdHRhbGxvY3NbbnJh dHRzKytdID0gYWxsb2M7DQo+IC0rICAgICAgICAgICAgYXR0c1tuYmF0dHMrK10gPSBhdHRu YW1lOw0KPiAtKyAgICAgICAgICAgIGF0dHNbbmJhdHRzKytdID0gYXByZWZpeDsNCj4gLSsg ICAgICAgICAgICAvKg0KPiAtKyAgICAgICAgICAgICAqIFRoZSBuYW1lc3BhY2UgVVJJIGZp ZWxkIGlzIHVzZWQgdGVtcG9yYXJpbHkgdG8gcG9pbnQgYXQgdGhlDQo+IC0rICAgICAgICAg ICAgICogYmFzZSBvZiB0aGUgY3VycmVudCBpbnB1dCBidWZmZXIgZm9yIG5vbi1hbGxvY2Vk IGF0dHJpYnV0ZXMuDQo+IC0rICAgICAgICAgICAgICogV2hlbiB0aGUgaW5wdXQgYnVmZmVy IGlzIHJlYWxsb2NhdGVkLCBhbGwgdGhlIHBvaW50ZXJzIGJlY29tZQ0KPiAtKyAgICAgICAg ICAgICAqIGludmFsaWQsIGJ1dCB0aGV5IGNhbiBiZSByZWNvbnN0cnVjdGVkIGxhdGVyLg0K PiAtKyAgICAgICAgICAgICAqLw0KPiAtKyAgICAgICAgICAgIGlmIChhbGxvYykNCj4gLSsg ICAgICAgICAgICAgICAgYXR0c1tuYmF0dHMrK10gPSBOVUxMOw0KPiAtKyAgICAgICAgICAg IGVsc2UNCj4gLSsgICAgICAgICAgICAgICAgYXR0c1tuYmF0dHMrK10gPSBjdHh0LT5pbnB1 dC0+YmFzZTsNCj4gLSsgICAgICAgICAgICBhdHRzW25iYXR0cysrXSA9IGF0dHZhbHVlOw0K PiAtKyAgICAgICAgICAgIGF0dHZhbHVlICs9IGxlbjsNCj4gLSsgICAgICAgICAgICBhdHRz W25iYXR0cysrXSA9IGF0dHZhbHVlOw0KPiAtKyAgICAgICAgICAgIC8qDQo+IC0rICAgICAg ICAgICAgICogdGFnIGlmIHNvbWUgZGVhbGxvY2F0aW9uIGlzIG5lZWRlZA0KPiAtKyAgICAg ICAgICAgICAqLw0KPiAtKyAgICAgICAgICAgIGlmIChhbGxvYyAhPSAwKSBhdHR2YWwgPSAx Ow0KPiAtKyAgICAgICAgICAgIGF0dHZhbHVlID0gTlVMTDsgLyogbW92ZWQgaW50byBhdHRz ICovDQo+IC0rICAgICAgICB9DQo+IC0gDQo+IC0tZmFpbGVkOg0KPiAtK25leHRfYXR0cjoN Cj4gLSsgICAgICAgIGlmICgoYXR0dmFsdWUgIT0gTlVMTCkgJiYgKGFsbG9jICE9IDApKSB7 DQo+IC0rICAgICAgICAgICAgeG1sRnJlZShhdHR2YWx1ZSk7DQo+IC0rICAgICAgICAgICAg YXR0dmFsdWUgPSBOVUxMOw0KPiAtKyAgICAgICAgfQ0KPiAtIA0KPiAtIAlHUk9XDQo+IC0g ICAgICAgICBpZiAoY3R4dC0+aW5zdGF0ZSA9PSBYTUxfUEFSU0VSX0VPRikNCj4gLSAgICAg ICAgICAgICBicmVhazsNCj4gLS0JaWYgKChjdHh0LT5pbnB1dC0+YmFzZSAhPSBiYXNlKSB8 fCAoaW5wdXROciAhPSBjdHh0LT5pbnB1dE5yKSkNCj4gLS0JICAgIGdvdG8gYmFzZV9jaGFu Z2VkOw0KPiAtIAlpZiAoKFJBVyA9PSAnPicpIHx8ICgoKFJBVyA9PSAnLycpICYmIChOWFQo MSkgPT0gJz4nKSkpKQ0KPiAtIAkgICAgYnJlYWs7DQo+IC0gCWlmICghSVNfQkxBTktfQ0go UkFXKSkgew0KPiAtQEAgLTk2NDYsOCArOTYxMCwyMCBAQCBmYWlsZWQ6DQo+IC0gCSAgICBi cmVhazsNCj4gLSAJfQ0KPiAtICAgICAgICAgR1JPVzsNCj4gLS0JaWYgKChjdHh0LT5pbnB1 dC0+YmFzZSAhPSBiYXNlKSB8fCAoaW5wdXROciAhPSBjdHh0LT5pbnB1dE5yKSkNCj4gLS0J ICAgIGdvdG8gYmFzZV9jaGFuZ2VkOw0KPiAtKyAgICB9DQo+IC0rDQo+IC0rICAgIC8qIFJl Y29uc3RydWN0IGF0dHJpYnV0ZSB2YWx1ZSBwb2ludGVycy4gKi8NCj4gLSsgICAgZm9yIChp ID0gMCwgaiA9IDA7IGogPCBucmF0dHM7IGkgKz0gNSwgaisrKSB7DQo+IC0rICAgICAgICBp ZiAoYXR0c1tpKzJdICE9IE5VTEwpIHsNCj4gLSsgICAgICAgICAgICAvKg0KPiAtKyAgICAg ICAgICAgICAqIEFyaXRobWV0aWMgb24gZGFuZ2xpbmcgcG9pbnRlcnMgaXMgdGVjaG5pY2Fs bHkgdW5kZWZpbmVkDQo+IC0rICAgICAgICAgICAgICogYmVoYXZpb3IsIGJ1dCB3ZWxsLi4u DQo+IC0rICAgICAgICAgICAgICovDQo+IC0rICAgICAgICAgICAgcHRyZGlmZl90IG9mZnNl dCA9IGN0eHQtPmlucHV0LT5iYXNlIC0gYXR0c1tpKzJdOw0KPiAtKyAgICAgICAgICAgIGF0 dHNbaSsyXSAgPSBOVUxMOyAgICAvKiBSZXNldCByZXB1cnBvc2VkIG5hbWVzcGFjZSBVUkkg Ki8NCj4gLSsgICAgICAgICAgICBhdHRzW2krM10gKz0gb2Zmc2V0OyAgLyogdmFsdWUgKi8N Cj4gLSsgICAgICAgICAgICBhdHRzW2krNF0gKz0gb2Zmc2V0OyAgLyogdmFsdWVuZCAqLw0K PiAtKyAgICAgICAgfQ0KPiAtICAgICB9DQo+IC0gDQo+IC0gICAgIC8qDQo+IC1AQCAtOTgw NCwzNCArOTc4MCw2IEBAIGZhaWxlZDoNCj4gLSAgICAgfQ0KPiAtIA0KPiAtICAgICByZXR1 cm4obG9jYWxuYW1lKTsNCj4gLS0NCj4gLS1iYXNlX2NoYW5nZWQ6DQo+IC0tICAgIC8qDQo+ IC0tICAgICAqIHRoZSBhdHRyaWJ1dGUgc3RyaW5ncyBhcmUgdmFsaWQgaWlmIHRoZSBiYXNl IGRpZG4ndCBjaGFuZ2VkDQo+IC0tICAgICAqLw0KPiAtLSAgICBpZiAoYXR0dmFsICE9IDAp IHsNCj4gLS0JZm9yIChpID0gMyxqID0gMDsgaiA8IG5yYXR0cztpICs9IDUsaisrKQ0KPiAt LQkgICAgaWYgKChjdHh0LT5hdHRhbGxvY3Nbal0gIT0gMCkgJiYgKGF0dHNbaV0gIT0gTlVM TCkpDQo+IC0tCSAgICAgICAgeG1sRnJlZSgoeG1sQ2hhciAqKSBhdHRzW2ldKTsNCj4gLS0g ICAgfQ0KPiAtLQ0KPiAtLSAgICAvKg0KPiAtLSAgICAgKiBXZSBjYW4ndCBzd2l0Y2ggZnJv bSBvbmUgZW50aXR5IHRvIGFub3RoZXIgaW4gdGhlIG1pZGRsZQ0KPiAtLSAgICAgKiBvZiBh IHN0YXJ0IHRhZw0KPiAtLSAgICAgKi8NCj4gLS0gICAgaWYgKGlucHV0TnIgIT0gY3R4dC0+ aW5wdXROcikgew0KPiAtLSAgICAgICAgeG1sRmF0YWxFcnJNc2coY3R4dCwgWE1MX0VSUl9F TlRJVFlfQk9VTkRBUlksDQo+IC0tCQkgICAgIlN0YXJ0IHRhZyBkb2Vzbid0IHN0YXJ0IGFu ZCBzdG9wIGluIHRoZSBzYW1lIGVudGl0eVxuIik7DQo+IC0tCXJldHVybihOVUxMKTsNCj4g LS0gICAgfQ0KPiAtLQ0KPiAtLSAgICBjdHh0LT5pbnB1dC0+Y3VyID0gY3R4dC0+aW5wdXQt PmJhc2UgKyBjdXI7DQo+IC0tICAgIGN0eHQtPmlucHV0LT5saW5lID0gb2xkbGluZTsNCj4g LS0gICAgY3R4dC0+aW5wdXQtPmNvbCA9IG9sZGNvbDsNCj4gLS0gICAgaWYgKGN0eHQtPndl bGxGb3JtZWQgPT0gMSkgew0KPiAtLQlnb3RvIHJlcGFyc2U7DQo+IC0tICAgIH0NCj4gLS0g ICAgcmV0dXJuKE5VTEwpOw0KPiAtIH0NCj4gLSANCj4gLSAvKioNCj4gLWRpZmYgLS1naXQg YS9yZXN1bHQvZXJyb3JzLzc1OTM5OC54bWwuZXJyIGIvcmVzdWx0L2Vycm9ycy83NTkzOTgu eG1sLmVycg0KPiAtaW5kZXggZTA4ZDliZi4uZjYwMzZhMyAxMDA2NDQNCj4gLS0tLSBhL3Jl c3VsdC9lcnJvcnMvNzU5Mzk4LnhtbC5lcnINCj4gLSsrKyBiL3Jlc3VsdC9lcnJvcnMvNzU5 Mzk4LnhtbC5lcnINCj4gLUBAIC0xLDkgKzEsMTIgQEANCj4gLSAuL3Rlc3QvZXJyb3JzLzc1 OTM5OC54bWw6MjEwOiBwYXJzZXIgZXJyb3IgOiBTdGFydFRhZzogaW52YWxpZCBlbGVtZW50 IG5hbWUNCj4gLSBuZWVkIHRvIHdvcnJ5IGFib3V0IHBhcnNlcnMgd2hpPCEgZG9uJ3QgZXhw YW5kIFBFcmVmcyBmaW5kaW5nDQo+IC0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICBeDQo+IC0tLi90ZXN0L2Vycm9ycy83NTkzOTgueG1sOjMwOTogcGFyc2VyIGVycm9yIDog T3BlbmluZyBhbmQgZW5kaW5nIHRhZyBtaXNtYXRjaDogc3BlYyBsaW5lIDUwIGFuZCB0ZXJt ZGVmDQo+IC0rLi90ZXN0L2Vycm9ycy83NTkzOTgueG1sOjMwOTogcGFyc2VyIGVycm9yIDog T3BlbmluZyBhbmQgZW5kaW5nIHRhZyBtaXNtYXRjaDog4oSW4oSW4oSW4oSW4oSW4oSW4oSW 4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW 4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW 4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW 4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW 4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW 4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW 4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW 4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW 4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW 4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW 4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW 4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW 4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW 4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW 4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW 4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW 4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSWDQo+ICDihJbihJbihJbihJbihJbi hJbihJbihJbihJbihJbihJbihJbihJbihJbihJbihJbihJbihJbihJbihJbihJbihJbihJbi hJbihJbihJbihJbihJbihJbihJbihJbihJbihJbihJbihJbihJbihJbihJbihJbihJbihJbi hJbihJbihJbihJbihJbihJbihJbihJbihJbihJbihJbihJbihJbihJbihJbihJbihJbihJbi hJbihJbihJbihJbihJbihJbihJbihJbihJbihJbihJbihJbihJbihJbihJbihJbihJbihJbi hJbihJbihJbihJbihJbihJbihJbihJbihJbihJbihJbihJbihJbihJbihJbihJbihJbihJbi hJbihJbihJbihJbihJbihJbihJbihJbihJbihJbihJbihJbihJbihJbihJbihJbihJbihJbi hJbihJbihJbihJbihJbihJbihJbihJbihJbihJbihJbihJbihJbihJbihJbihJbihJbihJbi hJbihJbihJbihJbihJbihJbihJbihJbihJbihJbihJbihJbihJbihJbihJbihJbihJbihJbi hJbihJbihJbihJbihJbihJbihJbihJbihJbihJbihJbihJbihJbihJbihJbihJbihJbihJbi hJbihJbihJbihJbihJbihJbihJbihJbihJbihJbihJbihJbihJbihJbihJbihJbihJbihJbi hJbihJbihJbihJbihJbihJbihJbihJbihJbihJbihJbihJbihJbihJbihJbihJbihJbihJbi hJbihJbihJbihJbihJbihJbihJbihJbihJbihJbihJbihJbihJbihJbihJbihJbihJbihJbi hJbihJbihJbihJbihJbihJbihJbihJbihJbihJbihJbihJbihJbihJbihJbihJbihJbihJbi hJbihJbihJbihJbihJbihJbihJbihJbihJbihJbihJbihJbihJbihJbihJbihJbihJbihJbi hJbihJbihJbihJbihJbihJbihJbihJbihJbihJbihJbihJbihJbihJbihJbihJbihJbihJbi hJbihJbihJbihJbihJbihJbihJbihJbihJbihJbihJbihJbihJbihJbihJbihJbihJbihJbi hJbihJbihJbihJbihJbihJbihJbihJbihJbihJbihJbihJbihJbihJbihJbihJbihJbihJbi hJbihJbihJbihJbihJbihJbihJbihJbihJbihJbihJbihJbihJbihJbihJbihJbihJbihJbi hJbihJbihJbvv70NCj4gIO+/ve+/veKEluKEluKEluKEluKEluKEluKEluKEluKEluKEluKE luKEluKEluKEluKEluKEluKEluKEluKEluKEluKEluKEluKEluKEluKEluKEluKEluKEluKE luKEluKEluKEluKEluKEluKEluKEluKEluKEluKEluKEluKEluKEluKEluKEluKEluKEluKE luKEluKEluKEluKEluKEluKEluKEluKEluKEluKEluKEluKEluKEluKEluKEluKEluKEluKE luKEluKEluKEluKEluKEluKEluKEluKEluKEluKEluKEluKEluKEluKEluKEluKEluKEluKE luKEluKEluKEluKEluKEluKEluKEluKEluKEluKEluKEluKEluKEluKEluKEluKEluKEluKE luKEluKEluKEluKEluKEluKEluKEluKEluKEluKEluKEluKEluKEluKEluKEluKEluKEluKE luKEluKEluKEluKEluKEluKEluKEluKEluKEluKEluKEluKEluKEluKEluKEluKEluKEluKE luKEluKEluKEluKEluKEluKEluKEluKEluKEluKEluKEluKEluKEluKEluKEluKEluKEluKE luKEluKEluKEluKEluKEluKEluKEluKEluKEluKEluKEluKEluKEluKEluKEluKEluKEluKE luKEluKEluKEluKEluKEluKEluKEluKEluKEluKEluKEluKEluKEluKEluKEluKEluKEluKE luKEluKEluKEluKEluKEluKEluKEluKEluKEluKEluKEluKEluKEluKEluKEluKEluKEluKE luKEluKEluKEluKEluKEluKEluKEluKEluKEluKEluKEluKEluKEluKEluKEluKEluKEluKE luKEluKEluKEluKEluKEluKEluKEluKEluKEluKEluKEluKEluKEluKEluKEluKEluKEluKE luKEluKEluKEluKEluKEluKEluKEluKEluKEluKEluKEluKEluKEluKEluKEluKEluKEluKE luKEluKEluKEluKEluKEluKEluKEluKEluKEluKEluKEluKEluKEluKEluKEluKEluKEluKE luKEluKEluKEluKEluKEluKEluKEluKEluKEluKEluKEluKEluKEluKEluKEluKEluKEluKE luKEluKEluKEluKEluKEluKEluKEluKEluKEluKEluKEluKEluKEluKEluKEluKEluKEluKE luKEluKEluKEluKEluKEluKEluKEluKEluKEluKEluKEluKEluKEluKElu+/vQ0KPiAg77+9 4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW 4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW 4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW 4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW 4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW 4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW 4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW 4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSWbSBsaW5lIDMwOCBhbmQgdGVy bWRlZg0KPiAtIGFuZCBwcm92aWRlIGFjY2VzcyB0byB0aGVpciBjb250ZW50IGFuZCBzdHJ1 Y3R1cmUuPC90ZXJtZGVmPiA8dGVybWRlZg0KPiAtICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIF4NCj4gLS0uL3Rlc3QvZXJy b3JzLzc1OTM5OC54bWw6MzA5OiBwYXJzZXIgZXJyb3IgOiBFeHRyYSBjb250ZW50IGF0IHRo ZSBlbmQgb2YgdGhlIGRvY3VtZW50DQo+IC0tYW5kIHByb3ZpZGUgYWNjZXNzIHRvIHRoZWly IGNvbnRlbnQgYW5kIHN0cnVjdHVyZS48L3Rlcm1kZWY+IDx0ZXJtZGVmDQo+IC0tICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg IF4NCj4gLSsuL3Rlc3QvZXJyb3JzLzc1OTM5OC54bWw6MzE0OiBwYXJzZXIgZXJyb3IgOiBP cGVuaW5nIGFuZCBlbmRpbmcgdGFnIG1pc21hdGNoOiBzcGVjIGxpbmUgNTAgYW5kIHANCj4g LStkYXRhIGFuZCB0aGUgaW5mb3JtYXRpb24gaXQgbXVzdCBwcm92aWRlIHRvIHRoZSBhcHBs aWNhdGlvbi48L3A+DQo+IC0rICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIF4NCj4gLSsuL3Rlc3QvZXJyb3JzLzc1OTM5 OC54bWw6MzE2OiBwYXJzZXIgZXJyb3IgOiBFeHRyYSBjb250ZW50IGF0IHRoZSBlbmQgb2Yg dGhlIGRvY3VtZW50DQo+IC0rPGRpdjIgaWQ9J3NlYy1vcmlnaW4tZ29hbHMnPg0KPiAtK14N Cj4gLWRpZmYgLS1naXQgYS9yZXN1bHQvZXJyb3JzL2F0dHIxLnhtbC5lcnIgYi9yZXN1bHQv ZXJyb3JzL2F0dHIxLnhtbC5lcnINCj4gLWluZGV4IDRmMDg1MzguLmM0YzRmYzggMTAwNjQ0 DQo+IC0tLS0gYS9yZXN1bHQvZXJyb3JzL2F0dHIxLnhtbC5lcnINCj4gLSsrKyBiL3Jlc3Vs dC9lcnJvcnMvYXR0cjEueG1sLmVycg0KPiAtQEAgLTEsNiArMSw5IEBADQo+IC0gLi90ZXN0 L2Vycm9ycy9hdHRyMS54bWw6MjogcGFyc2VyIGVycm9yIDogQXR0VmFsdWU6ICcgZXhwZWN0 ZWQNCj4gLSANCj4gLSBeDQo+IC0tLi90ZXN0L2Vycm9ycy9hdHRyMS54bWw6MTogcGFyc2Vy IGVycm9yIDogRXh0cmEgY29udGVudCBhdCB0aGUgZW5kIG9mIHRoZSBkb2N1bWVudA0KPiAt LTxmb28gZm9vPSJvb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v b29vb29vb29vb29vb29vb29vb29vb29vb29vDQo+IC0tIF4NCj4gLSsuL3Rlc3QvZXJyb3Jz L2F0dHIxLnhtbDoyOiBwYXJzZXIgZXJyb3IgOiBhdHRyaWJ1dGVzIGNvbnN0cnVjdCBlcnJv cg0KPiAtKw0KPiAtK14NCj4gLSsuL3Rlc3QvZXJyb3JzL2F0dHIxLnhtbDoyOiBwYXJzZXIg ZXJyb3IgOiBDb3VsZG4ndCBmaW5kIGVuZCBvZiBTdGFydCBUYWcgZm9vIGxpbmUgMQ0KPiAt Kw0KPiAtK14NCj4gLWRpZmYgLS1naXQgYS9yZXN1bHQvZXJyb3JzL2F0dHIyLnhtbC5lcnIg Yi9yZXN1bHQvZXJyb3JzL2F0dHIyLnhtbC5lcnINCj4gLWluZGV4IGM4YTljN2QuLjc3ZTM0 MmUgMTAwNjQ0DQo+IC0tLS0gYS9yZXN1bHQvZXJyb3JzL2F0dHIyLnhtbC5lcnINCj4gLSsr KyBiL3Jlc3VsdC9lcnJvcnMvYXR0cjIueG1sLmVycg0KPiAtQEAgLTEsNiArMSw5IEBADQo+ IC0gLi90ZXN0L2Vycm9ycy9hdHRyMi54bWw6MjogcGFyc2VyIGVycm9yIDogQXR0VmFsdWU6 ICcgZXhwZWN0ZWQNCj4gLSANCj4gLSBeDQo+IC0tLi90ZXN0L2Vycm9ycy9hdHRyMi54bWw6 MTogcGFyc2VyIGVycm9yIDogRXh0cmEgY29udGVudCBhdCB0aGUgZW5kIG9mIHRoZSBkb2N1 bWVudA0KPiAtLTxmb28gZm9vPSI+b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vDQo+IC0tIF4NCj4gLSsuL3Rl c3QvZXJyb3JzL2F0dHIyLnhtbDoyOiBwYXJzZXIgZXJyb3IgOiBhdHRyaWJ1dGVzIGNvbnN0 cnVjdCBlcnJvcg0KPiAtKw0KPiAtK14NCj4gLSsuL3Rlc3QvZXJyb3JzL2F0dHIyLnhtbDoy OiBwYXJzZXIgZXJyb3IgOiBDb3VsZG4ndCBmaW5kIGVuZCBvZiBTdGFydCBUYWcgZm9vIGxp bmUgMQ0KPiAtKw0KPiAtK14NCj4gLWRpZmYgLS1naXQgYS9yZXN1bHQvZXJyb3JzL25hbWUy LnhtbC5lcnIgYi9yZXN1bHQvZXJyb3JzL25hbWUyLnhtbC5lcnINCj4gLWluZGV4IGE2NjQ5 YTEuLjhhNmFjZWUgMTAwNjQ0DQo+IC0tLS0gYS9yZXN1bHQvZXJyb3JzL25hbWUyLnhtbC5l cnINCj4gLSsrKyBiL3Jlc3VsdC9lcnJvcnMvbmFtZTIueG1sLmVycg0KPiAtQEAgLTEsNiAr MSw5IEBADQo+IC0gLi90ZXN0L2Vycm9ycy9uYW1lMi54bWw6MjogcGFyc2VyIGVycm9yIDog U3BlY2lmaWNhdGlvbiBtYW5kYXRlIHZhbHVlIGZvciBhdHRyaWJ1dGUgZm9vb29vb29vb29v b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vDQo+ICBvb29vb29vb29vb29v b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v b29vb29vb29vb29vDQo+ICBvb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vDQo+ICBvb29vb29v b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v b29vb29vb29vb29vb29vb29vDQo+ICBvb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vDQo+ICBv b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb28NCj4gLSANCj4gLSBeDQo+ IC0tLi90ZXN0L2Vycm9ycy9uYW1lMi54bWw6MTogcGFyc2VyIGVycm9yIDogRXh0cmEgY29u dGVudCBhdCB0aGUgZW5kIG9mIHRoZSBkb2N1bWVudA0KPiAtLTxmb28gZm9vb29vb29vb29v b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v b29vb29vb29vDQo+IC0tIF4NCj4gLSsuL3Rlc3QvZXJyb3JzL25hbWUyLnhtbDoyOiBwYXJz ZXIgZXJyb3IgOiBhdHRyaWJ1dGVzIGNvbnN0cnVjdCBlcnJvcg0KPiAtKw0KPiAtK14NCj4g LSsuL3Rlc3QvZXJyb3JzL25hbWUyLnhtbDoyOiBwYXJzZXIgZXJyb3IgOiBDb3VsZG4ndCBm aW5kIGVuZCBvZiBTdGFydCBUYWcgZm9vIGxpbmUgMQ0KPiAtKw0KPiAtK14NCj4gZGlmZiAt LWdpdCBhL21ldGEvcmVjaXBlcy1jb3JlL2xpYnhtbC9saWJ4bWwyL2xpYnhtbDItZml4X25v ZGVfY29tcGFyaXNvbi5wYXRjaCBiL21ldGEvcmVjaXBlcy1jb3JlL2xpYnhtbC9saWJ4bWwy L2xpYnhtbDItZml4X25vZGVfY29tcGFyaXNvbi5wYXRjaA0KPiBkZWxldGVkIGZpbGUgbW9k ZSAxMDA2NDQNCj4gaW5kZXggNjVmNmJlZi4uMDAwMDAwMA0KPiAtLS0gYS9tZXRhL3JlY2lw ZXMtY29yZS9saWJ4bWwvbGlieG1sMi9saWJ4bWwyLWZpeF9ub2RlX2NvbXBhcmlzb24ucGF0 Y2gNCj4gKysrIC9kZXYvbnVsbA0KPiBAQCAtMSw2NyArMCwwIEBADQo+IC1saWJ4bWwyLTIu OS40OiBGaXggY29tcGFyaXNvbiB3aXRoIHJvb3Qgbm9kZSBpbiB4bWxYUGF0aENtcE5vZGVz IGFuZCBOVUxMIHBvaW50ZXIgZGVyZWYgaW4gWFBvaW50ZXINCj4gLQ0KPiAteHBhdGg6DQo+ IC0gLSBDaGVjayBmb3IgZXJyb3JzIGFmdGVyIGV2YWx1YXRpbmcgZmlyc3Qgb3BlcmFuZC4N Cj4gLSAtIEFkZCBzYW5pdHkgY2hlY2sgZm9yIGVtcHR5IHN0YWNrLg0KPiAtIC0gSW5jbHVk ZSBjb21wYXJhdGlvbiBpbiBjaGFuZ2VzIGZyb20geG1sWFBhdGhDbXBOb2Rlc0V4dCB0byB4 bWxYUGF0aENtcE5vZGVzDQo+IC0NCj4gLVVwc3RyZWFtLVN0YXR1czogQmFja3BvcnQNCj4g LSAtIFtodHRwczovL2dpdC5nbm9tZS5vcmcvYnJvd3NlL2xpYnhtbDIvY29tbWl0Lz9pZD1j MWQxZjcxMjExOTQwMzY2MDhiZjU1NWYwOGQzMDYyYTM2ZmQzNDRiXQ0KPiAtIC0gW2h0dHBz Oi8vZ2l0Lmdub21lLm9yZy9icm93c2UvbGlieG1sMi9jb21taXQvP2lkPWEwMDUxOTkzMzBi ODZkYWRhMTlkMTYyY2FlMTVlZjliZGNiNmJhYThdDQo+IC1DVkU6IENWRS0yMDE2LTUxMzEN Cj4gLVNpZ25lZC1vZmYtYnk6IEFuZHJlaiBWYWxlayA8YW5kcmVqLnZhbGVrQHNpZW1lbnMu Y29tPg0KPiAtU2lnbmVkLW9mZi1ieTogUGFzY2FsIEJhY2ggPHBhc2NhbC5iYWNoQHNpZW1l bnMuY29tPg0KPiAtDQo+IC1kaWZmIC0tZ2l0IGEvcmVzdWx0L1hQYXRoL3hwdHIvdmlkZXJy b3IgYi9yZXN1bHQvWFBhdGgveHB0ci92aWRlcnJvcg0KPiAtbmV3IGZpbGUgbW9kZSAxMDA2 NDQNCj4gLWluZGV4IDAwMDAwMDAuLmQ1ODk4ODINCj4gLS0tLSAvZGV2L251bGwNCj4gLSsr KyBiL3Jlc3VsdC9YUGF0aC94cHRyL3ZpZGVycm9yDQo+IC1AQCAtMCwwICsxLDQgQEANCj4g LSsNCj4gLSs9PT09PT09PT09PT09PT09PT09PT09PT0NCj4gLStFeHByZXNzaW9uOiB4cG9p bnRlcihub24tZXhpc3RpbmctZm4oKS9yYW5nZS10byhpZCgnY2hhcHRlcjInKSkpDQo+IC0r T2JqZWN0IGlzIGVtcHR5IChOVUxMKQ0KPiAtZGlmZiAtLWdpdCBhL3Rlc3QvWFBhdGgveHB0 ci92aWRlcnJvciBiL3Rlc3QvWFBhdGgveHB0ci92aWRlcnJvcg0KPiAtbmV3IGZpbGUgbW9k ZSAxMDA2NDQNCj4gLWluZGV4IDAwMDAwMDAuLmRhOGM1M2INCj4gLS0tLSAvZGV2L251bGwN Cj4gLSsrKyBiL3Rlc3QvWFBhdGgveHB0ci92aWRlcnJvcg0KPiAtQEAgLTAsMCArMSBAQA0K PiAtK3hwb2ludGVyKG5vbi1leGlzdGluZy1mbigpL3JhbmdlLXRvKGlkKCdjaGFwdGVyMicp KSkNCj4gLWRpZmYgLS1naXQgYS94cGF0aC5jIGIveHBhdGguYw0KPiAtaW5kZXggMTEzYmNl Ni4uZDk5Mjg0MSAxMDA2NDQNCj4gLS0tLSBhL3hwYXRoLmMNCj4gLSsrKyBiL3hwYXRoLmMN Cj4gLUBAIC0zMzQyLDEzICszMzQyLDEzIEBAIHhtbFhQYXRoQ21wTm9kZXMoeG1sTm9kZVB0 ciBub2RlMSwgeG1sTm9kZVB0ciBub2RlMikgew0KPiAtICAgICAgKiBjb21wdXRlIGRlcHRo IHRvIHJvb3QNCj4gLSAgICAgICovDQo+IC0gICAgIGZvciAoZGVwdGgyID0gMCwgY3VyID0g bm9kZTI7Y3VyLT5wYXJlbnQgIT0gTlVMTDtjdXIgPSBjdXItPnBhcmVudCkgew0KPiAtLQlp ZiAoY3VyID09IG5vZGUxKQ0KPiAtKwlpZiAoY3VyLT5wYXJlbnQgPT0gbm9kZTEpDQo+IC0g CSAgICByZXR1cm4oMSk7DQo+IC0gCWRlcHRoMisrOw0KPiAtICAgICB9DQo+IC0gICAgIHJv b3QgPSBjdXI7DQo+IC0gICAgIGZvciAoZGVwdGgxID0gMCwgY3VyID0gbm9kZTE7Y3VyLT5w YXJlbnQgIT0gTlVMTDtjdXIgPSBjdXItPnBhcmVudCkgew0KPiAtLQlpZiAoY3VyID09IG5v ZGUyKQ0KPiAtKwlpZiAoY3VyLT5wYXJlbnQgPT0gbm9kZTIpDQo+IC0gCSAgICByZXR1cm4o LTEpOw0KPiAtIAlkZXB0aDErKzsNCj4gLSAgICAgfQ0KPiAtQEAgLTE0MDA1LDkgKzE0MDA1 LDE0IEBAIHhtbFhQYXRoQ29tcE9wRXZhbCh4bWxYUGF0aFBhcnNlckNvbnRleHRQdHIgY3R4 dCwgeG1sWFBhdGhTdGVwT3BQdHIgb3ApDQo+IC0gICAgICAgICAgICAgICAgIHhtbE5vZGVT ZXRQdHIgb2xkc2V0Ow0KPiAtICAgICAgICAgICAgICAgICBpbnQgaSwgajsNCj4gLSANCj4g LS0gICAgICAgICAgICAgICAgaWYgKG9wLT5jaDEgIT0gLTEpDQo+IC0rICAgICAgICAgICAg ICAgIGlmIChvcC0+Y2gxICE9IC0xKSB7DQo+IC0gICAgICAgICAgICAgICAgICAgICB0b3Rh bCArPQ0KPiAtICAgICAgICAgICAgICAgICAgICAgICAgIHhtbFhQYXRoQ29tcE9wRXZhbChj dHh0LCAmY29tcC0+c3RlcHNbb3AtPmNoMV0pOw0KPiAtKyAgICAgICAgICAgICAgICAgICAg Q0hFQ0tfRVJST1IwOw0KPiAtKyAgICAgICAgICAgICAgICB9DQo+IC0rICAgICAgICAgICAg ICAgIGlmIChjdHh0LT52YWx1ZSA9PSBOVUxMKSB7DQo+IC0rICAgICAgICAgICAgICAgICAg ICBYUF9FUlJPUjAoWFBBVEhfSU5WQUxJRF9PUEVSQU5EKTsNCj4gLSsgICAgICAgICAgICAg ICAgfQ0KPiAtICAgICAgICAgICAgICAgICBpZiAob3AtPmNoMiA9PSAtMSkNCj4gLSAgICAg ICAgICAgICAgICAgICAgIHJldHVybiAodG90YWwpOw0KPiAtIA0KPiBkaWZmIC0tZ2l0IGEv bWV0YS9yZWNpcGVzLWNvcmUvbGlieG1sL2xpYnhtbDIvcnVudGVzdC5wYXRjaCBiL21ldGEv cmVjaXBlcy1jb3JlL2xpYnhtbC9saWJ4bWwyL3J1bnRlc3QucGF0Y2gNCj4gaW5kZXggNmU1 Njg1Ny4uY2IxNzFkNSAxMDA2NDQNCj4gLS0tIGEvbWV0YS9yZWNpcGVzLWNvcmUvbGlieG1s L2xpYnhtbDIvcnVudGVzdC5wYXRjaA0KPiArKysgYi9tZXRhL3JlY2lwZXMtY29yZS9saWJ4 bWwvbGlieG1sMi9ydW50ZXN0LnBhdGNoDQo+IEBAIC0yLDQ3ICsyLDI5IEBAIEFkZCAnaW5z dGFsbC1wdGVzdCcgcnVsZS4NCj4gIFByaW50IGEgc3RhbmRhcmQgcmVzdWx0IGxpbmUgZm9y IGVhY2ggdGVzdC4NCj4gIA0KPiAgU2lnbmVkLW9mZi1ieTogTWloYWVsYSBTZW5kcmVhIDxt aWhhZWxhLnNlbmRyZWFAZW5lYS5jb20+DQo+IC1TaWduZWQtb2ZmLWJ5OiBBbmRyZWogVmFs ZWsgPGFuZHJlai52YWxla0BlbmVhLmNvbT4NCj4gK1NpZ25lZC1vZmYtYnk6IEFuZHJlaiBW YWxlayA8YW5kcmVqLnZhbGVrQHNpZW1lbnMuY29tPg0KPiAgVXBzdHJlYW0tU3RhdHVzOiBC YWNrcG9ydA0KPiAgDQo+ICBkaWZmIC11TnIgYS9NYWtlZmlsZS5hbSBiL01ha2VmaWxlLmFt DQo+IC0tLS0gYS9NYWtlZmlsZS5hbQkyMDE2LTA1LTIyIDAzOjQ5OjAyLjAwMDAwMDAwMCAr MDIwMA0KPiAtKysrIGIvTWFrZWZpbGUuYW0JMjAxNy0wNi0xNCAxMDozODo0My4zODEzMDUz ODUgKzAyMDANCj4gLUBAIC0yMDIsMTAgKzIwMiwyNCBAQA0KPiArLS0tIGEvTWFrZWZpbGUu YW0JMjAxNy0wOC0yOCAxNTowMToxNC4wMDAwMDAwMDAgKzAyMDANCj4gKysrKyBiL01ha2Vm aWxlLmFtCTIwMTctMDktMDUgMDg6MDY6MDUuNzUyMjg3MzIzICswMjAwDQo+ICtAQCAtMjAy LDYgKzIwMiwxNSBAQA0KPiAgICN0ZXN0T09NX0RFUEVOREVOQ0lFUyA9ICQoREVQUykNCj4g ICAjdGVzdE9PTV9MREFERD0gJChMREFERFMpDQo+ICAgDQo+ICAraW5zdGFsbC1wdGVzdDoN Cj4gICsJQChpZiBbIC1kIC5saWJzIF0gOyB0aGVuIGNkIC5saWJzOyBmaTsgXA0KPiAtKwlp bnN0YWxsICQobm9pbnN0X1BST0dSQU1TKSAkKERFU1RESVIpKQ0KPiArKwlpbnN0YWxsICQo Y2hlY2tfUFJPR1JBTVMpICQoREVTVERJUikpDQo+ICArCWNwIC1yICQoc3JjZGlyKS90ZXN0 ICQoREVTVERJUikNCj4gICsJY3AgLXIgJChzcmNkaXIpL3Jlc3VsdCAkKERFU1RESVIpDQo+ ICArCWNwIC1yICQoc3JjZGlyKS9weXRob24gJChERVNURElSKQ0KPiAgKwljcCBNYWtlZmls ZSAkKERFU1RESVIpDQo+ICArCXNlZCAtaSAtZSAnc3xeTWFrZWZpbGU6fF9NYWtlZmlsZTp8 JyAkKERFU1RESVIpL01ha2VmaWxlDQo+ICArDQo+IC0gcnVudGVzdHM6DQo+ICsgcnVudGVz dHM6IHJ1bnRlc3QkKEVYRUVYVCkgdGVzdHJlY3Vyc2UkKEVYRUVYVCkgdGVzdGFwaSQoRVhF RVhUKSBcDQo+ICsgICAgICAgICAgIHRlc3RjaGFyJChFWEVFWFQpIHRlc3RkaWN0JChFWEVF WFQpIHJ1bnhtbGNvbmYkKEVYRUVYVCkNCj4gICAJWyAtZCB0ZXN0ICAgXSB8fCAkKExOX1Mp ICQoc3JjZGlyKS90ZXN0ICAgLg0KPiAtIAlbIC1kIHJlc3VsdCBdIHx8ICQoTE5fUykgJChz cmNkaXIpL3Jlc3VsdCAuDQo+IC0tCSQoQ0hFQ0tFUikgLi9ydW50ZXN0JChFWEVFWFQpICYm ICQoQ0hFQ0tFUikgLi90ZXN0cmVjdXJzZSQoRVhFRVhUKSAmJiQoQ0hFQ0tFUikgLi90ZXN0 YXBpJChFWEVFWFQpICYmICQoQ0hFQ0tFUikgLi90ZXN0Y2hhciQoRVhFRVhUKSYmICQoQ0hF Q0tFUikgLi90ZXN0ZGljdCQoRVhFRVhUKSAmJiAkKENIRUNLRVIpIC4vcnVueG1sY29uZiQo RVhFRVhUKQ0KPiAtKwkkKENIRUNLRVIpIC4vcnVudGVzdCQoRVhFRVhUKSAmJiBcDQo+IC0r CSAgICAkKENIRUNLRVIpIC4vdGVzdHJlY3Vyc2UkKEVYRUVYVCkgJiYgXA0KPiAtKwkgICAg QVNBTl9PUFRJT05TPSIkJEFTQU5fT1BUSU9OUzpkZXRlY3RfbGVha3M9MCIgJChDSEVDS0VS KSAuL3Rlc3RhcGkkKEVYRUVYVCkgJiYgXA0KPiAtKwkgICAgJChDSEVDS0VSKSAuL3Rlc3Rj aGFyJChFWEVFWFQpICYmIFwNCj4gLSsJICAgICQoQ0hFQ0tFUikgLi90ZXN0ZGljdCQoRVhF RVhUKSAmJiBcDQo+IC0rCSAgICAkKENIRUNLRVIpIC4vcnVueG1sY29uZiQoRVhFRVhUKQ0K PiAtIAlAKGlmIFsgIiQoUFlUSE9OX1NVQkRJUikiICE9ICIiIF0gOyB0aGVuIGNkIHB5dGhv biA7IFwNCj4gLSAJICAgICQoTUFLRSkgdGVzdHMgOyBmaSkNCj4gLSANCj4gLUBAIC0yMjks NyArMjQzLDcgQEANCj4gLSANCj4gLSBBUEl0ZXN0czogdGVzdGFwaSQoRVhFRVhUKQ0KPiAt IAlAZWNobyAiIyMgUnVubmluZyB0aGUgQVBJIHJlZ3Jlc3Npb24gdGVzdHMgdGhpcyBtYXkg dGFrZSBhIGxpdHRsZSB3aGlsZSINCj4gLS0JLUAoJChDSEVDS0VSKSAkKHRvcF9idWlsZGRp cikvdGVzdGFwaSAtcSkNCj4gLSsJLUAoQVNBTl9PUFRJT05TPSIkJEFTQU5fT1BUSU9OUzpk ZXRlY3RfbGVha3M9MCIgJChDSEVDS0VSKSAkKHRvcF9idWlsZGRpcikvdGVzdGFwaSAtcSkN Cj4gLSANCj4gLSBIVE1MdGVzdHMgOiB0ZXN0SFRNTCQoRVhFRVhUKQ0KPiAtIAlAKGVjaG8g PiAubWVtZHVtcCkNCj4gKw0KPiAgZGlmZiAtdU5yIGEvcnVuc3VpdGUuYyBiL3J1bnN1aXRl LmMNCj4gIC0tLSBhL3J1bnN1aXRlLmMJMjAxMy0wNC0xMiAxNjoxNzoxMS40NjI4MjMyMzgg KzAyMDANCj4gICsrKyBiL3J1bnN1aXRlLmMJMjAxMy0wNC0xNyAxNDowNzoyNC4zNTI2OTMy MTEgKzAyMDANCj4gZGlmZiAtLWdpdCBhL21ldGEvcmVjaXBlcy1jb3JlL2xpYnhtbC9saWJ4 bWwyXzIuOS40LmJiIGIvbWV0YS9yZWNpcGVzLWNvcmUvbGlieG1sL2xpYnhtbDJfMi45Ljcu YmINCj4gc2ltaWxhcml0eSBpbmRleCA4NiUNCj4gcmVuYW1lIGZyb20gbWV0YS9yZWNpcGVz LWNvcmUvbGlieG1sL2xpYnhtbDJfMi45LjQuYmINCj4gcmVuYW1lIHRvIG1ldGEvcmVjaXBl cy1jb3JlL2xpYnhtbC9saWJ4bWwyXzIuOS43LmJiDQo+IGluZGV4IDlhZGIyOWMuLjk5NmU2 NzEgMTAwNjQ0DQo+IC0tLSBhL21ldGEvcmVjaXBlcy1jb3JlL2xpYnhtbC9saWJ4bWwyXzIu OS40LmJiDQo+ICsrKyBiL21ldGEvcmVjaXBlcy1jb3JlL2xpYnhtbC9saWJ4bWwyXzIuOS43 LmJiDQo+IEBAIC0xOSwyMSArMTksMTEgQEAgU1JDX1VSSSA9ICJodHRwOi8vd3d3LnhtbHNv ZnQub3JnL3NvdXJjZXMvbGlieG1sMi0ke1BWfS50YXIuZ3o7bmFtZT1saWJ0YXIgXA0KPiAg ICAgICAgICAgICBmaWxlOi8vcnVuLXB0ZXN0IFwNCj4gICAgICAgICAgICAgZmlsZTovL3B5 dGhvbi1zaXRlcGFja2FnZXMtZGlyLnBhdGNoIFwNCj4gICAgICAgICAgICAgZmlsZTovL2xp YnhtbC1tNC11c2UtcGtnY29uZmlnLnBhdGNoIFwNCj4gLSAgICAgICAgICAgZmlsZTovL2xp YnhtbDItZml4X25vZGVfY29tcGFyaXNvbi5wYXRjaCBcDQo+IC0gICAgICAgICAgIGZpbGU6 Ly9saWJ4bWwyLUNWRS0yMDE2LTUxMzEucGF0Y2ggXA0KPiAtICAgICAgICAgICBmaWxlOi8v bGlieG1sMi1DVkUtMjAxNi00NjU4LnBhdGNoIFwNCj4gLSAgICAgICAgICAgZmlsZTovL2xp YnhtbDItZml4X05VTExfcG9pbnRlcl9kZXJlZnMucGF0Y2ggXA0KPiAtICAgICAgICAgICBm aWxlOi8vbGlieG1sMi1maXhfYW5kX3NpbXBsaWZ5X3htbFBhcnNlU3RhcnRUYWcyLnBhdGNo IFwNCj4gLSAgICAgICAgICAgZmlsZTovL2xpYnhtbDItQ1ZFLTIwMTctOTA0N19DVkUtMjAx Ny05MDQ4LnBhdGNoIFwNCj4gLSAgICAgICAgICAgZmlsZTovL2xpYnhtbDItQ1ZFLTIwMTct OTA0OV9DVkUtMjAxNy05MDUwLnBhdGNoIFwNCj4gLSAgICAgICAgICAgZmlsZTovL2xpYnht bDItQ1ZFLTIwMTctNTk2OS5wYXRjaCBcDQo+IC0gICAgICAgICAgIGZpbGU6Ly9saWJ4bWwy LUNWRS0yMDE3LTA2NjMucGF0Y2ggXA0KPiAtICAgICAgICAgICBmaWxlOi8vbGlieG1sMi1D VkUtMjAxNy04ODcyLnBhdGNoIFwNCj4gICAgICAgICAgICAgZmlsZTovLzAwMDEtTWFrZS1w dGVzdC1ydW4tdGhlLXB5dGhvbi10ZXN0cy1pZi1weXRob24taXMtZW5hYmxlZC5wYXRjaCBc DQo+ICAgICAgICAgICAgICINCj4gIA0KPiAtU1JDX1VSSVtsaWJ0YXIubWQ1c3VtXSA9ICJh ZTI0OTE2NWMxNzNiMWZmMzg2ZWU4YWQ2NzY4MTVmNSINCj4gLVNSQ19VUklbbGlidGFyLnNo YTI1NnN1bV0gPSAiZmZiOTExMTkxZTUwOWI5NjZkZWI1NWRlNzA1Mzg3ZjE0MTU2ZTFhNTZi MjE4MjQzNTdjZGYwMDUzMjMzNjMzYyINCj4gK1NSQ19VUklbbGlidGFyLm1kNXN1bV0gPSAi ODk2NjA4NjQxYTA4YjQ2NTA5OGE0MGRkZjUxY2VmYmEiDQo+ICtTUkNfVVJJW2xpYnRhci5z aGEyNTZzdW1dID0gImY2M2M1ZTdkMzAzNjJlZDI4YjM4YmZhMWFjNjMxM2Y5YTgwMjMwNzIw YjdmYjZjODA1NzVlZWFiM2ZmNTkwMGMiDQo+ICBTUkNfVVJJW3Rlc3R0YXIubWQ1c3VtXSA9 ICJhZTNkMWViZTAwMGEzOTcyYWZhMTA0Y2E3ZjBlMWI0YSINCj4gIFNSQ19VUklbdGVzdHRh ci5zaGEyNTZzdW1dID0gIjk2MTUxNjg1Y2VjOTk3ZTFmOWYzMzg3ZTM2MjZkNjFlNjI4NGQ0 ZDZlNjZlMGU0NDBjMjA5Mjg2YzAzZTljYzciDQo+ICANCj4gQEAgLTgxLDYgKzcxLDEwIEBA IGRvX2NvbmZpZ3VyZV9wcmVwZW5kICgpIHsNCj4gIAlmaW5kICR7V09SS0RJUn0veG1sY29u Zi8gLXR5cGUgZiAtZXhlYyBjaG1vZCAteCB7fSBcKw0KPiAgfQ0KPiAgDQo+ICtkb19jb21w aWxlX3B0ZXN0KCkgew0KPiArCW9lX3J1bm1ha2UgY2hlY2stYW0NCj4gK30NCj4gKw0KPiAg ZG9faW5zdGFsbF9wdGVzdCAoKSB7DQo+ICAJY3AgLXIgJHtXT1JLRElSfS94bWxjb25mICR7 RH0ke1BURVNUX1BBVEh9DQo+ICAJaWYgWyAiJHtAYmIudXRpbHMuZmlsdGVyKCdQQUNLQUdF Q09ORklHJywgJ3B5dGhvbicsIGQpfSIgXTsgdGhlbg0KPiANCg==