From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from david.siemens.de (david.siemens.de [192.35.17.14]) by mail.openembedded.org (Postfix) with ESMTP id 2065E7839D for ; Mon, 6 Nov 2017 07:33:59 +0000 (UTC) Received: from mail1.sbs.de (mail1.sbs.de [192.129.41.35]) by david.siemens.de (8.15.2/8.15.2) with ESMTPS id vA67Y0pR021230 (version=TLSv1.2 cipher=DHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK) for ; Mon, 6 Nov 2017 08:34:00 +0100 Received: from [192.168.253.100] ([163.242.56.100]) by mail1.sbs.de (8.15.2/8.15.2) with ESMTPS id vA67XxOm027237 (version=TLSv1.2 cipher=DHE-RSA-AES256-SHA bits=256 verify=NO) for ; Mon, 6 Nov 2017 08:33:59 +0100 To: "openembedded-core@lists.openembedded.org" References: <1504593353-7409-1-git-send-email-andrej.valek@siemens.com> <1507274867-26612-1-git-send-email-andrej.valek@siemens.com> From: Andrej Valek Message-ID: <8949b63c-45ed-dd94-88dc-e8af7ee01bf2@siemens.com> Date: Mon, 6 Nov 2017 08:34:18 +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: <1507274867-26612-1-git-send-email-andrej.valek@siemens.com> Subject: Re: [PATCH v3] libxml2: 2.9.4 -> 2.9.6 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:34:00 -0000 Content-Type: text/plain; charset=utf-8 Content-Language: en-US Content-Transfer-Encoding: base64 VGhpcyBwYXRjaCBpcyBvYnNvbGV0ZSwgZHVlIHRvIG1lcmdlZCB1cGdyYWRlIHRvIHZlcnNp b24gMi45LjUgLg0KSSBoYXZlIHNlbnQgdGhlIG5ldyBvbmUsIHdoaWNoIHVwZ3JhZGVzIHZl cnNpb24gdG8gMi45LjcNCg0KaHR0cDovL2xpc3RzLm9wZW5lbWJlZGRlZC5vcmcvcGlwZXJt YWlsL29wZW5lbWJlZGRlZC1jb3JlLzIwMTctTm92ZW1iZXIvMTQzOTczLmh0bWwNCg0KQW5k cmVqDQoNCk9uIDEwLzA2LzIwMTcgMDk6MjcgQU0sIEFuZHJlaiBWYWxlayB3cm90ZToNCj4g U2lnbmVkLW9mZi1ieTogQW5kcmVqIFZhbGVrIDxhbmRyZWoudmFsZWtAc2llbWVucy5jb20+ DQo+IC0tLQ0KPiAgLi4uL2xpYnhtbC9saWJ4bWwyL2xpYnhtbC1tNC11c2UtcGtnY29uZmln LnBhdGNoICAgfCAgIDIgKy0NCj4gIC4uLi9saWJ4bWwvbGlieG1sMi9saWJ4bWwyLUNWRS0y MDE2LTQ2NTgucGF0Y2ggICAgIHwgMjY5IC0tLS0tLS0tLS0NCj4gIC4uLi9saWJ4bWwvbGli eG1sMi9saWJ4bWwyLUNWRS0yMDE2LTUxMzEucGF0Y2ggICAgIHwgMTgwIC0tLS0tLS0NCj4g IC4uLi9saWJ4bWwvbGlieG1sMi9saWJ4bWwyLUNWRS0yMDE3LTA2NjMucGF0Y2ggICAgIHwg IDQwIC0tDQo+ICAuLi4vbGlieG1sL2xpYnhtbDIvbGlieG1sMi1DVkUtMjAxNy01OTY5LnBh dGNoICAgICB8ICA2MiAtLS0NCj4gIC4uLi9saWJ4bWwvbGlieG1sMi9saWJ4bWwyLUNWRS0y MDE3LTg4NzIucGF0Y2ggICAgIHwgIDM3IC0tDQo+ICAuLi4vbGlieG1sMi1DVkUtMjAxNy05 MDQ3X0NWRS0yMDE3LTkwNDgucGF0Y2ggICAgICB8IDEwMyAtLS0tDQo+ICAuLi4vbGlieG1s Mi1DVkUtMjAxNy05MDQ5X0NWRS0yMDE3LTkwNTAucGF0Y2ggICAgICB8IDI5MSAtLS0tLS0t LS0tDQo+ICAuLi4vbGlieG1sMi9saWJ4bWwyLWZpeF9OVUxMX3BvaW50ZXJfZGVyZWZzLnBh dGNoICB8ICA0NSAtLQ0KPiAgLi4uaWJ4bWwyLWZpeF9hbmRfc2ltcGxpZnlfeG1sUGFyc2VT dGFydFRhZzIucGF0Y2ggfCA1OTAgLS0tLS0tLS0tLS0tLS0tLS0tLS0tDQo+ICAuLi4vbGli eG1sMi9saWJ4bWwyLWZpeF9ub2RlX2NvbXBhcmlzb24ucGF0Y2ggICAgICB8ICA2NyAtLS0N Cj4gIG1ldGEvcmVjaXBlcy1jb3JlL2xpYnhtbC9saWJ4bWwyL3J1bnRlc3QucGF0Y2ggICAg IHwgIDM0ICstDQo+ICAuLi4vbGlieG1sL3tsaWJ4bWwyXzIuOS40LmJiID0+IGxpYnhtbDJf Mi45LjYuYmJ9ICB8ICAxOCArLQ0KPiAgMTMgZmlsZXMgY2hhbmdlZCwgMTUgaW5zZXJ0aW9u cygrKSwgMTcyMyBkZWxldGlvbnMoLSkNCj4gIGRlbGV0ZSBtb2RlIDEwMDY0NCBtZXRhL3Jl Y2lwZXMtY29yZS9saWJ4bWwvbGlieG1sMi9saWJ4bWwyLUNWRS0yMDE2LTQ2NTgucGF0Y2gN Cj4gIGRlbGV0ZSBtb2RlIDEwMDY0NCBtZXRhL3JlY2lwZXMtY29yZS9saWJ4bWwvbGlieG1s Mi9saWJ4bWwyLUNWRS0yMDE2LTUxMzEucGF0Y2gNCj4gIGRlbGV0ZSBtb2RlIDEwMDY0NCBt ZXRhL3JlY2lwZXMtY29yZS9saWJ4bWwvbGlieG1sMi9saWJ4bWwyLUNWRS0yMDE3LTA2NjMu cGF0Y2gNCj4gIGRlbGV0ZSBtb2RlIDEwMDY0NCBtZXRhL3JlY2lwZXMtY29yZS9saWJ4bWwv bGlieG1sMi9saWJ4bWwyLUNWRS0yMDE3LTU5NjkucGF0Y2gNCj4gIGRlbGV0ZSBtb2RlIDEw MDY0NCBtZXRhL3JlY2lwZXMtY29yZS9saWJ4bWwvbGlieG1sMi9saWJ4bWwyLUNWRS0yMDE3 LTg4NzIucGF0Y2gNCj4gIGRlbGV0ZSBtb2RlIDEwMDY0NCBtZXRhL3JlY2lwZXMtY29yZS9s aWJ4bWwvbGlieG1sMi9saWJ4bWwyLUNWRS0yMDE3LTkwNDdfQ1ZFLTIwMTctOTA0OC5wYXRj aA0KPiAgZGVsZXRlIG1vZGUgMTAwNjQ0IG1ldGEvcmVjaXBlcy1jb3JlL2xpYnhtbC9saWJ4 bWwyL2xpYnhtbDItQ1ZFLTIwMTctOTA0OV9DVkUtMjAxNy05MDUwLnBhdGNoDQo+ICBkZWxl dGUgbW9kZSAxMDA2NDQgbWV0YS9yZWNpcGVzLWNvcmUvbGlieG1sL2xpYnhtbDIvbGlieG1s Mi1maXhfTlVMTF9wb2ludGVyX2RlcmVmcy5wYXRjaA0KPiAgZGVsZXRlIG1vZGUgMTAwNjQ0 IG1ldGEvcmVjaXBlcy1jb3JlL2xpYnhtbC9saWJ4bWwyL2xpYnhtbDItZml4X2FuZF9zaW1w bGlmeV94bWxQYXJzZVN0YXJ0VGFnMi5wYXRjaA0KPiAgZGVsZXRlIG1vZGUgMTAwNjQ0IG1l dGEvcmVjaXBlcy1jb3JlL2xpYnhtbC9saWJ4bWwyL2xpYnhtbDItZml4X25vZGVfY29tcGFy aXNvbi5wYXRjaA0KPiAgcmVuYW1lIG1ldGEvcmVjaXBlcy1jb3JlL2xpYnhtbC97bGlieG1s Ml8yLjkuNC5iYiA9PiBsaWJ4bWwyXzIuOS42LmJifSAoODUlKQ0KPiANCj4gZGlmZiAtLWdp dCBhL21ldGEvcmVjaXBlcy1jb3JlL2xpYnhtbC9saWJ4bWwyL2xpYnhtbC1tNC11c2UtcGtn Y29uZmlnLnBhdGNoIGIvbWV0YS9yZWNpcGVzLWNvcmUvbGlieG1sL2xpYnhtbDIvbGlieG1s LW00LXVzZS1wa2djb25maWcucGF0Y2gNCj4gaW5kZXggMzI3NzE2NS4uZDllZDE1MSAxMDA2 NDQNCj4gLS0tIGEvbWV0YS9yZWNpcGVzLWNvcmUvbGlieG1sL2xpYnhtbDIvbGlieG1sLW00 LXVzZS1wa2djb25maWcucGF0Y2gNCj4gKysrIGIvbWV0YS9yZWNpcGVzLWNvcmUvbGlieG1s L2xpYnhtbDIvbGlieG1sLW00LXVzZS1wa2djb25maWcucGF0Y2gNCj4gQEAgLTE4Myw3ICsx ODMsNyBAQCBpbmRleCA2OGNkODI0Li41ZmEwYTliIDEwMDY0NA0KPiAgLSAgICAgICAgICBl Y2hvICIqKiogSWYgeW91IGhhdmUgYW4gb2xkIHZlcnNpb24gaW5zdGFsbGVkLCBpdCBpcyBi ZXN0IHRvIHJlbW92ZSBpdCwgYWx0aG91Z2giDQo+ICAtICAgICAgICAgIGVjaG8gIioqKiB5 b3UgbWF5IGFsc28gYmUgYWJsZSB0byBnZXQgdGhpbmdzIHRvIHdvcmsgYnkgbW9kaWZ5aW5n IExEX0xJQlJBUllfUEFUSCIgXSwNCj4gIC0gICAgICAgIFsgZWNobyAiKioqIFRoZSB0ZXN0 IHByb2dyYW0gZmFpbGVkIHRvIGNvbXBpbGUgb3IgbGluay4gU2VlIHRoZSBmaWxlIGNvbmZp Zy5sb2cgZm9yIHRoZSINCj4gLS0gICAgICAgICAgZWNobyAiKioqIGV4YWN0IGVycm9yIHRo YXQgb2NjdXJlZC4gVGhpcyB1c3VhbGx5IG1lYW5zIExJQlhNTCB3YXMgaW5jb3JyZWN0bHkg aW5zdGFsbGVkIg0KPiArLSAgICAgICAgICBlY2hvICIqKiogZXhhY3QgZXJyb3IgdGhhdCBv Y2N1cnJlZC4gVGhpcyB1c3VhbGx5IG1lYW5zIExJQlhNTCB3YXMgaW5jb3JyZWN0bHkgaW5z dGFsbGVkIg0KPiAgLSAgICAgICAgICBlY2hvICIqKiogb3IgdGhhdCB5b3UgaGF2ZSBtb3Zl ZCBMSUJYTUwgc2luY2UgaXQgd2FzIGluc3RhbGxlZC4gSW4gdGhlIGxhdHRlciBjYXNlLCB5 b3UiDQo+ICAtICAgICAgICAgIGVjaG8gIioqKiBtYXkgd2FudCB0byBlZGl0IHRoZSB4bWwy LWNvbmZpZyBzY3JpcHQ6ICRYTUwyX0NPTkZJRyIgXSkNCj4gIC0gICAgICAgICAgQ1BQRkxB R1M9IiRhY19zYXZlX0NQUEZMQUdTIg0KPiBkaWZmIC0tZ2l0IGEvbWV0YS9yZWNpcGVzLWNv cmUvbGlieG1sL2xpYnhtbDIvbGlieG1sMi1DVkUtMjAxNi00NjU4LnBhdGNoIGIvbWV0YS9y ZWNpcGVzLWNvcmUvbGlieG1sL2xpYnhtbDIvbGlieG1sMi1DVkUtMjAxNi00NjU4LnBhdGNo DQo+IGRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NA0KPiBpbmRleCBiYjU1ZWVkLi4wMDAwMDAw DQo+IC0tLSBhL21ldGEvcmVjaXBlcy1jb3JlL2xpYnhtbC9saWJ4bWwyL2xpYnhtbDItQ1ZF LTIwMTYtNDY1OC5wYXRjaA0KPiArKysgL2Rldi9udWxsDQo+IEBAIC0xLDI2OSArMCwwIEBA DQo+IC1saWJ4bWwyLTIuOS40OiBGaXggQ1ZFLTIwMTYtNDY1OA0KPiAtDQo+IC1bTm8gdXBz dHJlYW0gdHJhY2tpbmddIC0tIGh0dHBzOi8vYnVnemlsbGEucmVkaGF0LmNvbS9zaG93X2J1 Zy5jZ2k/aWQ9Q1ZFLTIwMTYtNDY1OA0KPiAtDQo+IC14cG9pbnRlcjogRGlzYWxsb3cgbmFt ZXNwYWNlIG5vZGVzIGluIFhQb2ludGVyIHBvaW50cyBhbmQgcmFuZ2VzDQo+IC0NCj4gLU5h bWVzcGFjZSBub2RlcyBtdXN0IGJlIGNvcGllZCB0byBhdm9pZCB1c2UtYWZ0ZXItZnJlZSBl cnJvcnMuDQo+IC1CdXQgdGhleSBkb24ndCBuZWNlc3NhcmlseSBoYXZlIGEgcGh5c2ljYWwg cmVwcmVzZW50YXRpb24gaW4gYQ0KPiAtZG9jdW1lbnQsIHNvIHNpbXBseSBkaXNhbGxvdyB0 aGVtIGluIFhQb2ludGVyIHJhbmdlcy4NCj4gLQ0KPiAtVXBzdHJlYW0tU3RhdHVzOiBCYWNr cG9ydA0KPiAtIC0gW2h0dHBzOi8vZ2l0Lmdub21lLm9yZy9icm93c2UvbGlieG1sMi9jb21t aXQvP2lkPWMxZDFmNzEyMTE5NDAzNjYwOGJmNTU1ZjA4ZDMwNjJhMzZmZDM0NGJdDQo+IC0g LSBbaHR0cHM6Ly9naXQuZ25vbWUub3JnL2Jyb3dzZS9saWJ4bWwyL2NvbW1pdC8/aWQ9M2Y4 YTkxMDM2ZDMzOGU1MWMwNTlkNTQzOTdhNDJkNjQ1ZjAxOWM2NV0NCj4gLUNWRTogQ1ZFLTIw MTYtNDY1OA0KPiAtU2lnbmVkLW9mZi1ieTogQW5kcmVqIFZhbGVrIDxhbmRyZWoudmFsZWtA c2llbWVucy5jb20+DQo+IC1TaWduZWQtb2ZmLWJ5OiBQYXNjYWwgQmFjaCA8cGFzY2FsLmJh Y2hAc2llbWVucy5jb20+DQo+IC0NCj4gLWRpZmYgLS1naXQgYS94cG9pbnRlci5jIGIveHBv aW50ZXIuYw0KPiAtaW5kZXggNjc2YzUxMC4uOTExNjgwZCAxMDA2NDQNCj4gLS0tLSBhL3hw b2ludGVyLmMNCj4gLSsrKyBiL3hwb2ludGVyLmMNCj4gLUBAIC0zMjAsNiArMzIwLDQ1IEBA IHhtbFhQdHJSYW5nZXNFcXVhbCh4bWxYUGF0aE9iamVjdFB0ciByYW5nZTEsIHhtbFhQYXRo T2JqZWN0UHRyIHJhbmdlMikgew0KPiAtIH0NCj4gLSANCj4gLSAvKioNCj4gLSsgKiB4bWxY UHRyTmV3UmFuZ2VJbnRlcm5hbDoNCj4gLSsgKiBAc3RhcnQ6ICB0aGUgc3RhcnRpbmcgbm9k ZQ0KPiAtKyAqIEBzdGFydGluZGV4OiAgdGhlIHN0YXJ0IGluZGV4DQo+IC0rICogQGVuZDog IHRoZSBlbmRpbmcgcG9pbnQNCj4gLSsgKiBAZW5kaW5kZXg6ICB0aGUgZW5kaW5nIGluZGV4 DQo+IC0rICoNCj4gLSsgKiBJbnRlcm5hbCBmdW5jdGlvbiB0byBjcmVhdGUgYSBuZXcgeG1s WFBhdGhPYmplY3RQdHIgb2YgdHlwZSByYW5nZQ0KPiAtKyAqDQo+IC0rICogUmV0dXJucyB0 aGUgbmV3bHkgY3JlYXRlZCBvYmplY3QuDQo+IC0rICovDQo+IC0rc3RhdGljIHhtbFhQYXRo T2JqZWN0UHRyDQo+IC0reG1sWFB0ck5ld1JhbmdlSW50ZXJuYWwoeG1sTm9kZVB0ciBzdGFy dCwgaW50IHN0YXJ0aW5kZXgsDQo+IC0rICAgICAgICAgICAgICAgICAgICAgICAgeG1sTm9k ZVB0ciBlbmQsIGludCBlbmRpbmRleCkgew0KPiAtKyAgICB4bWxYUGF0aE9iamVjdFB0ciBy ZXQ7DQo+IC0rDQo+IC0rICAgIC8qDQo+IC0rICAgICAqIE5hbWVzcGFjZSBub2RlcyBtdXN0 IGJlIGNvcGllZCAoc2VlIHhtbFhQYXRoTm9kZVNldER1cE5zKS4NCj4gLSsgICAgICogRGlz YWxsb3cgdGhlbSBmb3Igbm93Lg0KPiAtKyAgICAgKi8NCj4gLSsgICAgaWYgKChzdGFydCAh PSBOVUxMKSAmJiAoc3RhcnQtPnR5cGUgPT0gWE1MX05BTUVTUEFDRV9ERUNMKSkNCj4gLSsJ cmV0dXJuKE5VTEwpOw0KPiAtKyAgICBpZiAoKGVuZCAhPSBOVUxMKSAmJiAoZW5kLT50eXBl ID09IFhNTF9OQU1FU1BBQ0VfREVDTCkpDQo+IC0rCXJldHVybihOVUxMKTsNCj4gLSsNCj4g LSsgICAgcmV0ID0gKHhtbFhQYXRoT2JqZWN0UHRyKSB4bWxNYWxsb2Moc2l6ZW9mKHhtbFhQ YXRoT2JqZWN0KSk7DQo+IC0rICAgIGlmIChyZXQgPT0gTlVMTCkgew0KPiAtKyAgICAgICAg eG1sWFB0ckVyck1lbW9yeSgiYWxsb2NhdGluZyByYW5nZSIpOw0KPiAtKwlyZXR1cm4oTlVM TCk7DQo+IC0rICAgIH0NCj4gLSsgICAgbWVtc2V0KHJldCwgMCwgc2l6ZW9mKHhtbFhQYXRo T2JqZWN0KSk7DQo+IC0rICAgIHJldC0+dHlwZSA9IFhQQVRIX1JBTkdFOw0KPiAtKyAgICBy ZXQtPnVzZXIgPSBzdGFydDsNCj4gLSsgICAgcmV0LT5pbmRleCA9IHN0YXJ0aW5kZXg7DQo+ IC0rICAgIHJldC0+dXNlcjIgPSBlbmQ7DQo+IC0rICAgIHJldC0+aW5kZXgyID0gZW5kaW5k ZXg7DQo+IC0rICAgIHJldHVybihyZXQpOw0KPiAtK30NCj4gLSsNCj4gLSsvKioNCj4gLSAg KiB4bWxYUHRyTmV3UmFuZ2U6DQo+IC0gICogQHN0YXJ0OiAgdGhlIHN0YXJ0aW5nIG5vZGUN Cj4gLSAgKiBAc3RhcnRpbmRleDogIHRoZSBzdGFydCBpbmRleA0KPiAtQEAgLTM0NCwxNyAr MzgzLDcgQEAgeG1sWFB0ck5ld1JhbmdlKHhtbE5vZGVQdHIgc3RhcnQsIGludCBzdGFydGlu ZGV4LA0KPiAtICAgICBpZiAoZW5kaW5kZXggPCAwKQ0KPiAtIAlyZXR1cm4oTlVMTCk7DQo+ IC0gDQo+IC0tICAgIHJldCA9ICh4bWxYUGF0aE9iamVjdFB0cikgeG1sTWFsbG9jKHNpemVv Zih4bWxYUGF0aE9iamVjdCkpOw0KPiAtLSAgICBpZiAocmV0ID09IE5VTEwpIHsNCj4gLS0g ICAgICAgIHhtbFhQdHJFcnJNZW1vcnkoImFsbG9jYXRpbmcgcmFuZ2UiKTsNCj4gLS0JcmV0 dXJuKE5VTEwpOw0KPiAtLSAgICB9DQo+IC0tICAgIG1lbXNldChyZXQsIDAgLCAoc2l6ZV90 KSBzaXplb2YoeG1sWFBhdGhPYmplY3QpKTsNCj4gLS0gICAgcmV0LT50eXBlID0gWFBBVEhf UkFOR0U7DQo+IC0tICAgIHJldC0+dXNlciA9IHN0YXJ0Ow0KPiAtLSAgICByZXQtPmluZGV4 ID0gc3RhcnRpbmRleDsNCj4gLS0gICAgcmV0LT51c2VyMiA9IGVuZDsNCj4gLS0gICAgcmV0 LT5pbmRleDIgPSBlbmRpbmRleDsNCj4gLSsgICAgcmV0ID0geG1sWFB0ck5ld1JhbmdlSW50 ZXJuYWwoc3RhcnQsIHN0YXJ0aW5kZXgsIGVuZCwgZW5kaW5kZXgpOw0KPiAtICAgICB4bWxY UHRyUmFuZ2VDaGVja09yZGVyKHJldCk7DQo+IC0gICAgIHJldHVybihyZXQpOw0KPiAtIH0N Cj4gLUBAIC0zODEsMTcgKzQxMCw4IEBAIHhtbFhQdHJOZXdSYW5nZVBvaW50cyh4bWxYUGF0 aE9iamVjdFB0ciBzdGFydCwgeG1sWFBhdGhPYmplY3RQdHIgZW5kKSB7DQo+IC0gICAgIGlm IChlbmQtPnR5cGUgIT0gWFBBVEhfUE9JTlQpDQo+IC0gCXJldHVybihOVUxMKTsNCj4gLSAN Cj4gLS0gICAgcmV0ID0gKHhtbFhQYXRoT2JqZWN0UHRyKSB4bWxNYWxsb2Moc2l6ZW9mKHht bFhQYXRoT2JqZWN0KSk7DQo+IC0tICAgIGlmIChyZXQgPT0gTlVMTCkgew0KPiAtLSAgICAg ICAgeG1sWFB0ckVyck1lbW9yeSgiYWxsb2NhdGluZyByYW5nZSIpOw0KPiAtLQlyZXR1cm4o TlVMTCk7DQo+IC0tICAgIH0NCj4gLS0gICAgbWVtc2V0KHJldCwgMCAsIChzaXplX3QpIHNp emVvZih4bWxYUGF0aE9iamVjdCkpOw0KPiAtLSAgICByZXQtPnR5cGUgPSBYUEFUSF9SQU5H RTsNCj4gLS0gICAgcmV0LT51c2VyID0gc3RhcnQtPnVzZXI7DQo+IC0tICAgIHJldC0+aW5k ZXggPSBzdGFydC0+aW5kZXg7DQo+IC0tICAgIHJldC0+dXNlcjIgPSBlbmQtPnVzZXI7DQo+ IC0tICAgIHJldC0+aW5kZXgyID0gZW5kLT5pbmRleDsNCj4gLSsgICAgcmV0ID0geG1sWFB0 ck5ld1JhbmdlSW50ZXJuYWwoc3RhcnQtPnVzZXIsIHN0YXJ0LT5pbmRleCwgZW5kLT51c2Vy LA0KPiAtKwkJCQkgIGVuZC0+aW5kZXgpOw0KPiAtICAgICB4bWxYUHRyUmFuZ2VDaGVja09y ZGVyKHJldCk7DQo+IC0gICAgIHJldHVybihyZXQpOw0KPiAtIH0NCj4gLUBAIC00MTYsMTcg KzQzNiw3IEBAIHhtbFhQdHJOZXdSYW5nZVBvaW50Tm9kZSh4bWxYUGF0aE9iamVjdFB0ciBz dGFydCwgeG1sTm9kZVB0ciBlbmQpIHsNCj4gLSAgICAgaWYgKHN0YXJ0LT50eXBlICE9IFhQ QVRIX1BPSU5UKQ0KPiAtIAlyZXR1cm4oTlVMTCk7DQo+IC0gDQo+IC0tICAgIHJldCA9ICh4 bWxYUGF0aE9iamVjdFB0cikgeG1sTWFsbG9jKHNpemVvZih4bWxYUGF0aE9iamVjdCkpOw0K PiAtLSAgICBpZiAocmV0ID09IE5VTEwpIHsNCj4gLS0gICAgICAgIHhtbFhQdHJFcnJNZW1v cnkoImFsbG9jYXRpbmcgcmFuZ2UiKTsNCj4gLS0JcmV0dXJuKE5VTEwpOw0KPiAtLSAgICB9 DQo+IC0tICAgIG1lbXNldChyZXQsIDAgLCAoc2l6ZV90KSBzaXplb2YoeG1sWFBhdGhPYmpl Y3QpKTsNCj4gLS0gICAgcmV0LT50eXBlID0gWFBBVEhfUkFOR0U7DQo+IC0tICAgIHJldC0+ dXNlciA9IHN0YXJ0LT51c2VyOw0KPiAtLSAgICByZXQtPmluZGV4ID0gc3RhcnQtPmluZGV4 Ow0KPiAtLSAgICByZXQtPnVzZXIyID0gZW5kOw0KPiAtLSAgICByZXQtPmluZGV4MiA9IC0x Ow0KPiAtKyAgICByZXQgPSB4bWxYUHRyTmV3UmFuZ2VJbnRlcm5hbChzdGFydC0+dXNlciwg c3RhcnQtPmluZGV4LCBlbmQsIC0xKTsNCj4gLSAgICAgeG1sWFB0clJhbmdlQ2hlY2tPcmRl cihyZXQpOw0KPiAtICAgICByZXR1cm4ocmV0KTsNCj4gLSB9DQo+IC1AQCAtNDUzLDE3ICs0 NjMsNyBAQCB4bWxYUHRyTmV3UmFuZ2VOb2RlUG9pbnQoeG1sTm9kZVB0ciBzdGFydCwgeG1s WFBhdGhPYmplY3RQdHIgZW5kKSB7DQo+IC0gICAgIGlmIChlbmQtPnR5cGUgIT0gWFBBVEhf UE9JTlQpDQo+IC0gCXJldHVybihOVUxMKTsNCj4gLSANCj4gLS0gICAgcmV0ID0gKHhtbFhQ YXRoT2JqZWN0UHRyKSB4bWxNYWxsb2Moc2l6ZW9mKHhtbFhQYXRoT2JqZWN0KSk7DQo+IC0t ICAgIGlmIChyZXQgPT0gTlVMTCkgew0KPiAtLSAgICAgICAgeG1sWFB0ckVyck1lbW9yeSgi YWxsb2NhdGluZyByYW5nZSIpOw0KPiAtLQlyZXR1cm4oTlVMTCk7DQo+IC0tICAgIH0NCj4g LS0gICAgbWVtc2V0KHJldCwgMCAsIChzaXplX3QpIHNpemVvZih4bWxYUGF0aE9iamVjdCkp Ow0KPiAtLSAgICByZXQtPnR5cGUgPSBYUEFUSF9SQU5HRTsNCj4gLS0gICAgcmV0LT51c2Vy ID0gc3RhcnQ7DQo+IC0tICAgIHJldC0+aW5kZXggPSAtMTsNCj4gLS0gICAgcmV0LT51c2Vy MiA9IGVuZC0+dXNlcjsNCj4gLS0gICAgcmV0LT5pbmRleDIgPSBlbmQtPmluZGV4Ow0KPiAt KyAgICByZXQgPSB4bWxYUHRyTmV3UmFuZ2VJbnRlcm5hbChzdGFydCwgLTEsIGVuZC0+dXNl ciwgZW5kLT5pbmRleCk7DQo+IC0gICAgIHhtbFhQdHJSYW5nZUNoZWNrT3JkZXIocmV0KTsN Cj4gLSAgICAgcmV0dXJuKHJldCk7DQo+IC0gfQ0KPiAtQEAgLTQ4NiwxNyArNDg2LDcgQEAg eG1sWFB0ck5ld1JhbmdlTm9kZXMoeG1sTm9kZVB0ciBzdGFydCwgeG1sTm9kZVB0ciBlbmQp IHsNCj4gLSAgICAgaWYgKGVuZCA9PSBOVUxMKQ0KPiAtIAlyZXR1cm4oTlVMTCk7DQo+IC0g DQo+IC0tICAgIHJldCA9ICh4bWxYUGF0aE9iamVjdFB0cikgeG1sTWFsbG9jKHNpemVvZih4 bWxYUGF0aE9iamVjdCkpOw0KPiAtLSAgICBpZiAocmV0ID09IE5VTEwpIHsNCj4gLS0gICAg ICAgIHhtbFhQdHJFcnJNZW1vcnkoImFsbG9jYXRpbmcgcmFuZ2UiKTsNCj4gLS0JcmV0dXJu KE5VTEwpOw0KPiAtLSAgICB9DQo+IC0tICAgIG1lbXNldChyZXQsIDAgLCAoc2l6ZV90KSBz aXplb2YoeG1sWFBhdGhPYmplY3QpKTsNCj4gLS0gICAgcmV0LT50eXBlID0gWFBBVEhfUkFO R0U7DQo+IC0tICAgIHJldC0+dXNlciA9IHN0YXJ0Ow0KPiAtLSAgICByZXQtPmluZGV4ID0g LTE7DQo+IC0tICAgIHJldC0+dXNlcjIgPSBlbmQ7DQo+IC0tICAgIHJldC0+aW5kZXgyID0g LTE7DQo+IC0rICAgIHJldCA9IHhtbFhQdHJOZXdSYW5nZUludGVybmFsKHN0YXJ0LCAtMSwg ZW5kLCAtMSk7DQo+IC0gICAgIHhtbFhQdHJSYW5nZUNoZWNrT3JkZXIocmV0KTsNCj4gLSAg ICAgcmV0dXJuKHJldCk7DQo+IC0gfQ0KPiAtQEAgLTUxNiwxNyArNTA2LDcgQEAgeG1sWFB0 ck5ld0NvbGxhcHNlZFJhbmdlKHhtbE5vZGVQdHIgc3RhcnQpIHsNCj4gLSAgICAgaWYgKHN0 YXJ0ID09IE5VTEwpDQo+IC0gCXJldHVybihOVUxMKTsNCj4gLSANCj4gLS0gICAgcmV0ID0g KHhtbFhQYXRoT2JqZWN0UHRyKSB4bWxNYWxsb2Moc2l6ZW9mKHhtbFhQYXRoT2JqZWN0KSk7 DQo+IC0tICAgIGlmIChyZXQgPT0gTlVMTCkgew0KPiAtLSAgICAgICAgeG1sWFB0ckVyck1l bW9yeSgiYWxsb2NhdGluZyByYW5nZSIpOw0KPiAtLQlyZXR1cm4oTlVMTCk7DQo+IC0tICAg IH0NCj4gLS0gICAgbWVtc2V0KHJldCwgMCAsIChzaXplX3QpIHNpemVvZih4bWxYUGF0aE9i amVjdCkpOw0KPiAtLSAgICByZXQtPnR5cGUgPSBYUEFUSF9SQU5HRTsNCj4gLS0gICAgcmV0 LT51c2VyID0gc3RhcnQ7DQo+IC0tICAgIHJldC0+aW5kZXggPSAtMTsNCj4gLS0gICAgcmV0 LT51c2VyMiA9IE5VTEw7DQo+IC0tICAgIHJldC0+aW5kZXgyID0gLTE7DQo+IC0rICAgIHJl dCA9IHhtbFhQdHJOZXdSYW5nZUludGVybmFsKHN0YXJ0LCAtMSwgTlVMTCwgLTEpOw0KPiAt ICAgICByZXR1cm4ocmV0KTsNCj4gLSB9DQo+IC0gDQo+IC1AQCAtNTQxLDYgKzUyMSw4IEBA IHhtbFhQdHJOZXdDb2xsYXBzZWRSYW5nZSh4bWxOb2RlUHRyIHN0YXJ0KSB7DQo+IC0gICov DQo+IC0geG1sWFBhdGhPYmplY3RQdHINCj4gLSB4bWxYUHRyTmV3UmFuZ2VOb2RlT2JqZWN0 KHhtbE5vZGVQdHIgc3RhcnQsIHhtbFhQYXRoT2JqZWN0UHRyIGVuZCkgew0KPiAtKyAgICB4 bWxOb2RlUHRyIGVuZE5vZGU7DQo+IC0rICAgIGludCBlbmRJbmRleDsNCj4gLSAgICAgeG1s WFBhdGhPYmplY3RQdHIgcmV0Ow0KPiAtIA0KPiAtICAgICBpZiAoc3RhcnQgPT0gTlVMTCkN Cj4gLUBAIC01NDksNyArNTMxLDEyIEBAIHhtbFhQdHJOZXdSYW5nZU5vZGVPYmplY3QoeG1s Tm9kZVB0ciBzdGFydCwgeG1sWFBhdGhPYmplY3RQdHIgZW5kKSB7DQo+IC0gCXJldHVybihO VUxMKTsNCj4gLSAgICAgc3dpdGNoIChlbmQtPnR5cGUpIHsNCj4gLSAJY2FzZSBYUEFUSF9Q T0lOVDoNCj4gLSsJICAgIGVuZE5vZGUgPSBlbmQtPnVzZXI7DQo+IC0rCSAgICBlbmRJbmRl eCA9IGVuZC0+aW5kZXg7DQo+IC0rCSAgICBicmVhazsNCj4gLSAJY2FzZSBYUEFUSF9SQU5H RToNCj4gLSsJICAgIGVuZE5vZGUgPSBlbmQtPnVzZXIyOw0KPiAtKwkgICAgZW5kSW5kZXgg PSBlbmQtPmluZGV4MjsNCj4gLSAJICAgIGJyZWFrOw0KPiAtIAljYXNlIFhQQVRIX05PREVT RVQ6DQo+IC0gCSAgICAvKg0KPiAtQEAgLTU1NywzOSArNTQ0LDE1IEBAIHhtbFhQdHJOZXdS YW5nZU5vZGVPYmplY3QoeG1sTm9kZVB0ciBzdGFydCwgeG1sWFBhdGhPYmplY3RQdHIgZW5k KSB7DQo+IC0gCSAgICAgKi8NCj4gLSAJICAgIGlmIChlbmQtPm5vZGVzZXR2YWwtPm5vZGVO ciA8PSAwKQ0KPiAtIAkJcmV0dXJuKE5VTEwpOw0KPiAtKwkgICAgZW5kTm9kZSA9IGVuZC0+ bm9kZXNldHZhbC0+bm9kZVRhYltlbmQtPm5vZGVzZXR2YWwtPm5vZGVOciAtIDFdOw0KPiAt KwkgICAgZW5kSW5kZXggPSAtMTsNCj4gLSAJICAgIGJyZWFrOw0KPiAtIAlkZWZhdWx0Og0K PiAtIAkgICAgLyogVE9ETyAqLw0KPiAtIAkgICAgcmV0dXJuKE5VTEwpOw0KPiAtICAgICB9 DQo+IC0gDQo+IC0tICAgIHJldCA9ICh4bWxYUGF0aE9iamVjdFB0cikgeG1sTWFsbG9jKHNp emVvZih4bWxYUGF0aE9iamVjdCkpOw0KPiAtLSAgICBpZiAocmV0ID09IE5VTEwpIHsNCj4g LS0gICAgICAgIHhtbFhQdHJFcnJNZW1vcnkoImFsbG9jYXRpbmcgcmFuZ2UiKTsNCj4gLS0J cmV0dXJuKE5VTEwpOw0KPiAtLSAgICB9DQo+IC0tICAgIG1lbXNldChyZXQsIDAgLCAoc2l6 ZV90KSBzaXplb2YoeG1sWFBhdGhPYmplY3QpKTsNCj4gLS0gICAgcmV0LT50eXBlID0gWFBB VEhfUkFOR0U7DQo+IC0tICAgIHJldC0+dXNlciA9IHN0YXJ0Ow0KPiAtLSAgICByZXQtPmlu ZGV4ID0gLTE7DQo+IC0tICAgIHN3aXRjaCAoZW5kLT50eXBlKSB7DQo+IC0tCWNhc2UgWFBB VEhfUE9JTlQ6DQo+IC0tCSAgICByZXQtPnVzZXIyID0gZW5kLT51c2VyOw0KPiAtLQkgICAg cmV0LT5pbmRleDIgPSBlbmQtPmluZGV4Ow0KPiAtLQkgICAgYnJlYWs7DQo+IC0tCWNhc2Ug WFBBVEhfUkFOR0U6DQo+IC0tCSAgICByZXQtPnVzZXIyID0gZW5kLT51c2VyMjsNCj4gLS0J ICAgIHJldC0+aW5kZXgyID0gZW5kLT5pbmRleDI7DQo+IC0tCSAgICBicmVhazsNCj4gLS0J Y2FzZSBYUEFUSF9OT0RFU0VUOiB7DQo+IC0tCSAgICByZXQtPnVzZXIyID0gZW5kLT5ub2Rl c2V0dmFsLT5ub2RlVGFiW2VuZC0+bm9kZXNldHZhbC0+bm9kZU5yIC0gMV07DQo+IC0tCSAg ICByZXQtPmluZGV4MiA9IC0xOw0KPiAtLQkgICAgYnJlYWs7DQo+IC0tCX0NCj4gLS0JZGVm YXVsdDoNCj4gLS0JICAgIFNUUkFOR0UNCj4gLS0JICAgIHJldHVybihOVUxMKTsNCj4gLS0g ICAgfQ0KPiAtKyAgICByZXQgPSB4bWxYUHRyTmV3UmFuZ2VJbnRlcm5hbChzdGFydCwgLTEs IGVuZE5vZGUsIGVuZEluZGV4KTsNCj4gLSAgICAgeG1sWFB0clJhbmdlQ2hlY2tPcmRlcihy ZXQpOw0KPiAtICAgICByZXR1cm4ocmV0KTsNCj4gLSB9DQo+IC1AQCAtMTgzNSw4ICsxNzk4 LDggQEAgeG1sWFB0clN0YXJ0UG9pbnRGdW5jdGlvbih4bWxYUGF0aFBhcnNlckNvbnRleHRQ dHIgY3R4dCwgaW50IG5hcmdzKSB7DQo+IC0gCQljYXNlIFhQQVRIX1JBTkdFOiB7DQo+IC0g CQkgICAgeG1sTm9kZVB0ciBub2RlID0gdG1wLT51c2VyOw0KPiAtIAkJICAgIGlmIChub2Rl ICE9IE5VTEwpIHsNCj4gLS0JCQlpZiAobm9kZS0+dHlwZSA9PSBYTUxfQVRUUklCVVRFX05P REUpIHsNCj4gLS0JCQkgICAgLyogVE9ETzogTmFtZXNwYWNlIE5vZGVzID8/PyAqLw0KPiAt KwkJCWlmICgobm9kZS0+dHlwZSA9PSBYTUxfQVRUUklCVVRFX05PREUpIHx8DQo+IC0rCQkJ ICAgICAobm9kZS0+dHlwZSA9PSBYTUxfTkFNRVNQQUNFX0RFQ0wpKSB7DQo+IC0gCQkJICAg IHhtbFhQYXRoRnJlZU9iamVjdChvYmopOw0KPiAtIAkJCSAgICB4bWxYUHRyRnJlZUxvY2F0 aW9uU2V0KG5ld3NldCk7DQo+IC0gCQkJICAgIFhQX0VSUk9SKFhQVFJfU1lOVEFYX0VSUk9S KTsNCj4gLUBAIC0xOTMxLDggKzE4OTQsOCBAQCB4bWxYUHRyRW5kUG9pbnRGdW5jdGlvbih4 bWxYUGF0aFBhcnNlckNvbnRleHRQdHIgY3R4dCwgaW50IG5hcmdzKSB7DQo+IC0gCQljYXNl IFhQQVRIX1JBTkdFOiB7DQo+IC0gCQkgICAgeG1sTm9kZVB0ciBub2RlID0gdG1wLT51c2Vy MjsNCj4gLSAJCSAgICBpZiAobm9kZSAhPSBOVUxMKSB7DQo+IC0tCQkJaWYgKG5vZGUtPnR5 cGUgPT0gWE1MX0FUVFJJQlVURV9OT0RFKSB7DQo+IC0tCQkJICAgIC8qIFRPRE86IE5hbWVz cGFjZSBOb2RlcyA/Pz8gKi8NCj4gLSsJCQlpZiAoKG5vZGUtPnR5cGUgPT0gWE1MX0FUVFJJ QlVURV9OT0RFKSB8fA0KPiAtKwkJCSAgICAgKG5vZGUtPnR5cGUgPT0gWE1MX05BTUVTUEFD RV9ERUNMKSkgew0KPiAtIAkJCSAgICB4bWxYUGF0aEZyZWVPYmplY3Qob2JqKTsNCj4gLSAJ CQkgICAgeG1sWFB0ckZyZWVMb2NhdGlvblNldChuZXdzZXQpOw0KPiAtIAkJCSAgICBYUF9F UlJPUihYUFRSX1NZTlRBWF9FUlJPUik7DQo+IGRpZmYgLS1naXQgYS9tZXRhL3JlY2lwZXMt Y29yZS9saWJ4bWwvbGlieG1sMi9saWJ4bWwyLUNWRS0yMDE2LTUxMzEucGF0Y2ggYi9tZXRh L3JlY2lwZXMtY29yZS9saWJ4bWwvbGlieG1sMi9saWJ4bWwyLUNWRS0yMDE2LTUxMzEucGF0 Y2gNCj4gZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0DQo+IGluZGV4IDlkNDdkMDIuLjAwMDAw MDANCj4gLS0tIGEvbWV0YS9yZWNpcGVzLWNvcmUvbGlieG1sL2xpYnhtbDIvbGlieG1sMi1D VkUtMjAxNi01MTMxLnBhdGNoDQo+ICsrKyAvZGV2L251bGwNCj4gQEAgLTEsMTgwICswLDAg QEANCj4gLUZyb20gOWFiMDFhMjc3ZDcxZjU0ZDMxNDNjMmNmMzMzYzVjMmU5YWFlZGQ5ZSBN b24gU2VwIDE3IDAwOjAwOjAwIDIwMDENCj4gLUZyb206IE5pY2sgV2VsbG5ob2ZlciA8d2Vs bG5ob2ZlckBhZXZ1bS5kZT4NCj4gLURhdGU6IFR1ZSwgMjggSnVuIDIwMTYgMTQ6MjI6MjMg KzAyMDANCj4gLVN1YmplY3Q6IFtQQVRDSF0gRml4IFhQb2ludGVyIHBhdGhzIGJlZ2lubmlu ZyB3aXRoIHJhbmdlLXRvDQo+IC0NCj4gLVRoZSBvbGQgY29kZSB3b3VsZCBpbnZva2UgdGhl IGJyb2tlbiB4bWxYUHRyUmFuZ2VUb0Z1bmN0aW9uLiByYW5nZS10bw0KPiAtaXNuJ3QgcmVh bGx5IGEgZnVuY3Rpb24gYnV0IGEgc3BlY2lhbCBraW5kIG9mIGxvY2F0aW9uIHN0ZXAuIFJl bW92ZQ0KPiAtdGhpcyBmdW5jdGlvbiBhbmQgYWx3YXlzIGhhbmRsZSByYW5nZS10byBpbiB0 aGUgWFBhdGggY29kZS4NCj4gLQ0KPiAtVGhlIG9sZCB4bWxYUHRyUmFuZ2VUb0Z1bmN0aW9u IGNvdWxkIGFsc28gYmUgYWJ1c2VkIHRvIHRyaWdnZXIgYQ0KPiAtdXNlLWFmdGVyLWZyZWUg ZXJyb3Igd2l0aCB0aGUgcG90ZW50aWFsIGZvciByZW1vdGUgY29kZSBleGVjdXRpb24uDQo+ IC0NCj4gLUZvdW5kIHdpdGggYWZsLWZ1enouDQo+IC0NCj4gLUZpeGVzIENWRS0yMDE2LTUx MzEuDQo+IC0NCj4gLUNWRTogQ1ZFLTIwMTYtNTEzMQ0KPiAtVXBzdHJlYW0tU3RhdHVzOiBC YWNrcG9ydA0KPiAtaHR0cHM6Ly9naXQuZ25vbWUub3JnL2Jyb3dzZS9saWJ4bWwyL2NvbW1p dC8/aWQ9OWFiMDFhMjc3ZDcxZjU0ZDMxNDNjMmNmMzMzYzVjMmU5YWFlZGQ5ZQ0KPiAtDQo+ IC1TaWduZWQtb2ZmLWJ5OiBZaSBaaGFvIDx5aS56aGFvQHdpbmRpcnZlci5jb20+DQo+IC0t LS0NCj4gLSByZXN1bHQvWFBhdGgveHB0ci92aWRiYXNlIHwgMTMgKysrKysrKysNCj4gLSB0 ZXN0L1hQYXRoL3hwdHIvdmlkYmFzZSAgIHwgIDEgKw0KPiAtIHhwYXRoLmMgICAgICAgICAg ICAgICAgICAgfCAgNyArKysrLQ0KPiAtIHhwb2ludGVyLmMgICAgICAgICAgICAgICAgfCA3 NiArKysrLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQ0KPiAt IDQgZmlsZXMgY2hhbmdlZCwgMjYgaW5zZXJ0aW9ucygrKSwgNzEgZGVsZXRpb25zKC0pDQo+ IC0NCj4gLWRpZmYgLS1naXQgYS9yZXN1bHQvWFBhdGgveHB0ci92aWRiYXNlIGIvcmVzdWx0 L1hQYXRoL3hwdHIvdmlkYmFzZQ0KPiAtaW5kZXggOGI5ZTkyZC4uZjE5MTkzZSAxMDA2NDQN Cj4gLS0tLSBhL3Jlc3VsdC9YUGF0aC94cHRyL3ZpZGJhc2UNCj4gLSsrKyBiL3Jlc3VsdC9Y UGF0aC94cHRyL3ZpZGJhc2UNCj4gLUBAIC0xNywzICsxNywxNiBAQCBPYmplY3QgaXMgYSBM b2NhdGlvbiBTZXQ6DQo+IC0gICBUbyBub2RlDQo+IC0gICAgIEVMRU1FTlQgcA0KPiAtIA0K PiAtKw0KPiAtKz09PT09PT09PT09PT09PT09PT09PT09PQ0KPiAtK0V4cHJlc3Npb246IHhw b2ludGVyKHJhbmdlLXRvKGlkKCdjaGFwdGVyMicpKSkNCj4gLStPYmplY3QgaXMgYSBMb2Nh dGlvbiBTZXQ6DQo+IC0rMSA6ICAgT2JqZWN0IGlzIGEgcmFuZ2UgOg0KPiAtKyAgRnJvbSBu b2RlDQo+IC0rICAgICAvDQo+IC0rICBUbyBub2RlDQo+IC0rICAgIEVMRU1FTlQgY2hhcHRl cg0KPiAtKyAgICAgIEFUVFJJQlVURSBpZA0KPiAtKyAgICAgICAgVEVYVA0KPiAtKyAgICAg ICAgICBjb250ZW50PWNoYXB0ZXIyDQo+IC0rDQo+IC1kaWZmIC0tZ2l0IGEvdGVzdC9YUGF0 aC94cHRyL3ZpZGJhc2UgYi90ZXN0L1hQYXRoL3hwdHIvdmlkYmFzZQ0KPiAtaW5kZXggYjE0 NjM4My4uODg0YjEwNiAxMDA2NDQNCj4gLS0tLSBhL3Rlc3QvWFBhdGgveHB0ci92aWRiYXNl DQo+IC0rKysgYi90ZXN0L1hQYXRoL3hwdHIvdmlkYmFzZQ0KPiAtQEAgLTEsMiArMSwzIEBA DQo+IC0geHBvaW50ZXIoaWQoJ2NoYXB0ZXIxJykvcCkNCj4gLSB4cG9pbnRlcihpZCgnY2hh cHRlcjEnKS9wWzFdL3JhbmdlLXRvKGZvbGxvd2luZy1zaWJsaW5nOjpwWzJdKSkNCj4gLSt4 cG9pbnRlcihyYW5nZS10byhpZCgnY2hhcHRlcjInKSkpDQo+IC1kaWZmIC0tZ2l0IGEveHBh dGguYyBiL3hwYXRoLmMNCj4gLWluZGV4IGQ5OTI4NDEuLjVhMDFiMWIgMTAwNjQ0DQo+IC0t LS0gYS94cGF0aC5jDQo+IC0rKysgYi94cGF0aC5jDQo+IC1AQCAtMTA2OTEsMTMgKzEwNjkx LDE4IEBAIHhtbFhQYXRoQ29tcFBhdGhFeHByKHhtbFhQYXRoUGFyc2VyQ29udGV4dFB0ciBj dHh0KSB7DQo+IC0gCQkgICAgbGMgPSAxOw0KPiAtIAkJICAgIGJyZWFrOw0KPiAtIAkJfSBl bHNlIGlmICgoTlhUKGxlbikgPT0gJygnKSkgew0KPiAtLQkJICAgIC8qIE5vdGUgVHlwZSBv ciBGdW5jdGlvbiAqLw0KPiAtKwkJICAgIC8qIE5vZGUgVHlwZSBvciBGdW5jdGlvbiAqLw0K PiAtIAkJICAgIGlmICh4bWxYUGF0aElzTm9kZVR5cGUobmFtZSkpIHsNCj4gLSAjaWZkZWYg REVCVUdfU1RFUA0KPiAtIAkJICAgICAgICB4bWxHZW5lcmljRXJyb3IoeG1sR2VuZXJpY0Vy cm9yQ29udGV4dCwNCj4gLSAJCQkJIlBhdGhFeHByOiBUeXBlIHNlYXJjaFxuIik7DQo+IC0g I2VuZGlmDQo+IC0gCQkJbGMgPSAxOw0KPiAtKyNpZmRlZiBMSUJYTUxfWFBUUl9FTkFCTEVE DQo+IC0rICAgICAgICAgICAgICAgICAgICB9IGVsc2UgaWYgKGN0eHQtPnhwdHIgJiYNCj4g LSsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgeG1sU3RyRXF1YWwobmFtZSwgQkFE X0NBU1QgInJhbmdlLXRvIikpIHsNCj4gLSsgICAgICAgICAgICAgICAgICAgICAgICBsYyA9 IDE7DQo+IC0rI2VuZGlmDQo+IC0gCQkgICAgfSBlbHNlIHsNCj4gLSAjaWZkZWYgREVCVUdf U1RFUA0KPiAtIAkJICAgICAgICB4bWxHZW5lcmljRXJyb3IoeG1sR2VuZXJpY0Vycm9yQ29u dGV4dCwNCj4gLWRpZmYgLS1naXQgYS94cG9pbnRlci5jIGIveHBvaW50ZXIuYw0KPiAtaW5k ZXggNjc2YzUxMC4uZDc0MTc0YSAxMDA2NDQNCj4gLS0tLSBhL3hwb2ludGVyLmMNCj4gLSsr KyBiL3hwb2ludGVyLmMNCj4gLUBAIC0xMzMyLDggKzEzMzIsNiBAQCB4bWxYUHRyTmV3Q29u dGV4dCh4bWxEb2NQdHIgZG9jLCB4bWxOb2RlUHRyIGhlcmUsIHhtbE5vZGVQdHIgb3JpZ2lu KSB7DQo+IC0gICAgIHJldC0+aGVyZSA9IGhlcmU7DQo+IC0gICAgIHJldC0+b3JpZ2luID0g b3JpZ2luOw0KPiAtIA0KPiAtLSAgICB4bWxYUGF0aFJlZ2lzdGVyRnVuYyhyZXQsICh4bWxD aGFyICopInJhbmdlLXRvIiwNCj4gLS0JICAgICAgICAgICAgICAgICB4bWxYUHRyUmFuZ2VU b0Z1bmN0aW9uKTsNCj4gLSAgICAgeG1sWFBhdGhSZWdpc3RlckZ1bmMocmV0LCAoeG1sQ2hh ciAqKSJyYW5nZSIsDQo+IC0gCSAgICAgICAgICAgICAgICAgeG1sWFB0clJhbmdlRnVuY3Rp b24pOw0KPiAtICAgICB4bWxYUGF0aFJlZ2lzdGVyRnVuYyhyZXQsICh4bWxDaGFyICopInJh bmdlLWluc2lkZSIsDQo+IC1AQCAtMjI0Myw3NiArMjI0MSwxNCBAQCB4bWxYUHRyUmFuZ2VJ bnNpZGVGdW5jdGlvbih4bWxYUGF0aFBhcnNlckNvbnRleHRQdHIgY3R4dCwgaW50IG5hcmdz KSB7DQo+IC0gICogQG5hcmdzOiAgdGhlIG51bWJlciBvZiBhcmdzDQo+IC0gICoNCj4gLSAg KiBJbXBsZW1lbnQgdGhlIHJhbmdlLXRvKCkgWFBvaW50ZXIgZnVuY3Rpb24NCj4gLSsgKg0K PiAtKyAqIE9ic29sZXRlLiByYW5nZS10byBpcyBub3QgYSByZWFsIGZ1bmN0aW9uIGJ1dCBh IHNwZWNpYWwgdHlwZSBvZiBsb2NhdGlvbg0KPiAtKyAqIHN0ZXAgd2hpY2ggaXMgaGFuZGxl ZCBpbiB4cGF0aC5jLg0KPiAtICAqLw0KPiAtIHZvaWQNCj4gLS14bWxYUHRyUmFuZ2VUb0Z1 bmN0aW9uKHhtbFhQYXRoUGFyc2VyQ29udGV4dFB0ciBjdHh0LCBpbnQgbmFyZ3MpIHsNCj4g LS0gICAgeG1sWFBhdGhPYmplY3RQdHIgcmFuZ2U7DQo+IC0tICAgIGNvbnN0IHhtbENoYXIg KmN1cjsNCj4gLS0gICAgeG1sWFBhdGhPYmplY3RQdHIgcmVzLCBvYmo7DQo+IC0tICAgIHht bFhQYXRoT2JqZWN0UHRyIHRtcDsNCj4gLS0gICAgeG1sTG9jYXRpb25TZXRQdHIgbmV3c2V0 ID0gTlVMTDsNCj4gLS0gICAgeG1sTm9kZVNldFB0ciBvbGRzZXQ7DQo+IC0tICAgIGludCBp Ow0KPiAtLQ0KPiAtLSAgICBpZiAoY3R4dCA9PSBOVUxMKSByZXR1cm47DQo+IC0tICAgIENI RUNLX0FSSVRZKDEpOw0KPiAtLSAgICAvKg0KPiAtLSAgICAgKiBTYXZlIHRoZSBleHByZXNz aW9uIHBvaW50ZXIgc2luY2Ugd2Ugd2lsbCBoYXZlIHRvIGV2YWx1YXRlDQo+IC0tICAgICAq IGl0IG11bHRpcGxlIHRpbWVzLiBJbml0aWFsaXplIHRoZSBuZXcgc2V0Lg0KPiAtLSAgICAg Ki8NCj4gLS0gICAgQ0hFQ0tfVFlQRShYUEFUSF9OT0RFU0VUKTsNCj4gLS0gICAgb2JqID0g dmFsdWVQb3AoY3R4dCk7DQo+IC0tICAgIG9sZHNldCA9IG9iai0+bm9kZXNldHZhbDsNCj4g LS0gICAgY3R4dC0+Y29udGV4dC0+bm9kZSA9IE5VTEw7DQo+IC0tDQo+IC0tICAgIGN1ciA9 IGN0eHQtPmN1cjsNCj4gLS0gICAgbmV3c2V0ID0geG1sWFB0ckxvY2F0aW9uU2V0Q3JlYXRl KE5VTEwpOw0KPiAtLQ0KPiAtLSAgICBmb3IgKGkgPSAwOyBpIDwgb2xkc2V0LT5ub2RlTnI7 IGkrKykgew0KPiAtLQljdHh0LT5jdXIgPSBjdXI7DQo+IC0tDQo+IC0tCS8qDQo+IC0tCSAq IFJ1biB0aGUgZXZhbHVhdGlvbiB3aXRoIGEgbm9kZSBsaXN0IG1hZGUgb2YgYSBzaW5nbGUg aXRlbQ0KPiAtLQkgKiBpbiB0aGUgbm9kZXNldC4NCj4gLS0JICovDQo+IC0tCWN0eHQtPmNv bnRleHQtPm5vZGUgPSBvbGRzZXQtPm5vZGVUYWJbaV07DQo+IC0tCXRtcCA9IHhtbFhQYXRo TmV3Tm9kZVNldChjdHh0LT5jb250ZXh0LT5ub2RlKTsNCj4gLS0JdmFsdWVQdXNoKGN0eHQs IHRtcCk7DQo+IC0tDQo+IC0tCXhtbFhQYXRoRXZhbEV4cHIoY3R4dCk7DQo+IC0tCUNIRUNL X0VSUk9SOw0KPiAtLQ0KPiAtLQkvKg0KPiAtLQkgKiBUaGUgcmVzdWx0IG9mIHRoZSBldmFs dWF0aW9uIG5lZWQgdG8gYmUgdGVzdGVkIHRvDQo+IC0tCSAqIGRlY2lkZWQgd2hldGhlciB0 aGUgZmlsdGVyIHN1Y2NlZWRlZCBvciBub3QNCj4gLS0JICovDQo+IC0tCXJlcyA9IHZhbHVl UG9wKGN0eHQpOw0KPiAtLQlyYW5nZSA9IHhtbFhQdHJOZXdSYW5nZU5vZGVPYmplY3Qob2xk c2V0LT5ub2RlVGFiW2ldLCByZXMpOw0KPiAtLQlpZiAocmFuZ2UgIT0gTlVMTCkgew0KPiAt LQkgICAgeG1sWFB0ckxvY2F0aW9uU2V0QWRkKG5ld3NldCwgcmFuZ2UpOw0KPiAtLQl9DQo+ IC0tDQo+IC0tCS8qDQo+IC0tCSAqIENsZWFudXANCj4gLS0JICovDQo+IC0tCWlmIChyZXMg IT0gTlVMTCkNCj4gLS0JICAgIHhtbFhQYXRoRnJlZU9iamVjdChyZXMpOw0KPiAtLQlpZiAo Y3R4dC0+dmFsdWUgPT0gdG1wKSB7DQo+IC0tCSAgICByZXMgPSB2YWx1ZVBvcChjdHh0KTsN Cj4gLS0JICAgIHhtbFhQYXRoRnJlZU9iamVjdChyZXMpOw0KPiAtLQl9DQo+IC0tDQo+IC0t CWN0eHQtPmNvbnRleHQtPm5vZGUgPSBOVUxMOw0KPiAtLSAgICB9DQo+IC0tDQo+IC0tICAg IC8qDQo+IC0tICAgICAqIFRoZSByZXN1bHQgaXMgdXNlZCBhcyB0aGUgbmV3IGV2YWx1YXRp b24gc2V0Lg0KPiAtLSAgICAgKi8NCj4gLS0gICAgeG1sWFBhdGhGcmVlT2JqZWN0KG9iaik7 DQo+IC0tICAgIGN0eHQtPmNvbnRleHQtPm5vZGUgPSBOVUxMOw0KPiAtLSAgICBjdHh0LT5j b250ZXh0LT5jb250ZXh0U2l6ZSA9IC0xOw0KPiAtLSAgICBjdHh0LT5jb250ZXh0LT5wcm94 aW1pdHlQb3NpdGlvbiA9IC0xOw0KPiAtLSAgICB2YWx1ZVB1c2goY3R4dCwgeG1sWFB0cldy YXBMb2NhdGlvblNldChuZXdzZXQpKTsNCj4gLSt4bWxYUHRyUmFuZ2VUb0Z1bmN0aW9uKHht bFhQYXRoUGFyc2VyQ29udGV4dFB0ciBjdHh0LA0KPiAtKyAgICAgICAgICAgICAgICAgICAg ICAgaW50IG5hcmdzIEFUVFJJQlVURV9VTlVTRUQpIHsNCj4gLSsgICAgWFBfRVJST1IoWFBB VEhfRVhQUl9FUlJPUik7DQo+IC0gfQ0KPiAtIA0KPiAtIC8qKg0KPiAtLS0gDQo+IC0yLjcu NA0KPiAtDQo+IGRpZmYgLS1naXQgYS9tZXRhL3JlY2lwZXMtY29yZS9saWJ4bWwvbGlieG1s Mi9saWJ4bWwyLUNWRS0yMDE3LTA2NjMucGF0Y2ggYi9tZXRhL3JlY2lwZXMtY29yZS9saWJ4 bWwvbGlieG1sMi9saWJ4bWwyLUNWRS0yMDE3LTA2NjMucGF0Y2gNCj4gZGVsZXRlZCBmaWxl IG1vZGUgMTAwNjQ0DQo+IGluZGV4IDAxMDgyNjUuLjAwMDAwMDANCj4gLS0tIGEvbWV0YS9y ZWNpcGVzLWNvcmUvbGlieG1sL2xpYnhtbDIvbGlieG1sMi1DVkUtMjAxNy0wNjYzLnBhdGNo DQo+ICsrKyAvZGV2L251bGwNCj4gQEAgLTEsNDAgKzAsMCBAQA0KPiAtbGlieG1sMjogRml4 IENWRS0yMDE3LTA2NjMNCj4gLQ0KPiAtW05vIHVwc3RyZWFtIHRyYWNraW5nXSAtLSBodHRw czovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzgwMjI4DQo+IC0NCj4g LXZhbGlkOiBGaXggdHlwZSBjb25mdXNpb24gaW4geG1sVmFsaWRhdGVPbmVOYW1lc3BhY2UN Cj4gLQ0KPiAtQ29tbWVudCBvdXQgY29kZSB0aGF0IGNhc3RzIHhtbE5zUHRyIHRvIHhtbEF0 dHJQdHIuIElEIHR5cGVzDQo+IC1vbiBuYW1lc3BhY2UgZGVjbGFyYXRpb25zIG1ha2Ugbm8g cHJhY3RpY2FsIHNlbnNlIGFueXdheS4NCj4gLQ0KPiAtRml4ZXMgYnVnIDc4MDIyOA0KPiAt DQo+IC1VcHN0cmVhbS1TdGF0dXM6IEJhY2twb3J0IFtodHRwczovL2dpdC5nbm9tZS5vcmcv YnJvd3NlL2xpYnhtbDIvY29tbWl0Lz9pZD05MmI5ZThjOGIzNzg3MDY4NTY1YTE4MjBiYTU3 NWQwNDJmOWVlYzY2XQ0KPiAtQ1ZFOiBDVkUtMjAxNy0wNjYzDQo+IC1TaWduZWQtb2ZmLWJ5 OiBBbmRyZWogVmFsZWsgPGFuZHJlai52YWxla0BzaWVtZW5zLmNvbT4NCj4gLQ0KPiAtZGlm ZiAtLWdpdCBhL3ZhbGlkLmMgYi92YWxpZC5jDQo+IC1pbmRleCAxOWY4NGI4Li5lMDNkMzVl IDEwMDY0NA0KPiAtLS0tIGEvdmFsaWQuYw0KPiAtKysrIGIvdmFsaWQuYw0KPiAtQEAgLTQ2 MjEsNiArNDYyMSwxMiBAQCB4bWxOb2RlUHRyIGVsZW0sIGNvbnN0IHhtbENoYXIgKnByZWZp eCwgeG1sTnNQdHIgbnMsIGNvbnN0IHhtbENoYXIgKnZhbHVlKSB7DQo+IC0gCX0NCj4gLSAg ICAgfQ0KPiAtIA0KPiAtKyAgICAvKg0KPiAtKyAgICAgKiBDYXN0aW5nIG5zIHRvIHhtbEF0 dHJQdHIgaXMgd3JvbmcuIFdlJ2QgbmVlZCBzZXBhcmF0ZSBmdW5jdGlvbnMNCj4gLSsgICAg ICogeG1sQWRkSUQgYW5kIHhtbEFkZFJlZiBmb3IgbmFtZXNwYWNlIGRlY2xhcmF0aW9ucywg YnV0IGl0IG1ha2VzDQo+IC0rICAgICAqIG5vIHByYWN0aWNhbCBzZW5zZSB0byB1c2UgSUQg dHlwZXMgYW55d2F5Lg0KPiAtKyAgICAgKi8NCj4gLSsjaWYgMA0KPiAtICAgICAvKiBWYWxp ZGl0eSBDb25zdHJhaW50OiBJRCB1bmlxdWVuZXNzICovDQo+IC0gICAgIGlmIChhdHRyRGVj bC0+YXR5cGUgPT0gWE1MX0FUVFJJQlVURV9JRCkgew0KPiAtICAgICAgICAgaWYgKHhtbEFk ZElEKGN0eHQsIGRvYywgdmFsdWUsICh4bWxBdHRyUHRyKSBucykgPT0gTlVMTCkNCj4gLUBA IC00NjMyLDYgKzQ2MzgsNyBAQCB4bWxOb2RlUHRyIGVsZW0sIGNvbnN0IHhtbENoYXIgKnBy ZWZpeCwgeG1sTnNQdHIgbnMsIGNvbnN0IHhtbENoYXIgKnZhbHVlKSB7DQo+IC0gICAgICAg ICBpZiAoeG1sQWRkUmVmKGN0eHQsIGRvYywgdmFsdWUsICh4bWxBdHRyUHRyKSBucykgPT0g TlVMTCkNCj4gLSAJICAgIHJldCA9IDA7DQo+IC0gICAgIH0NCj4gLSsjZW5kaWYNCj4gLSAN Cj4gLSAgICAgLyogVmFsaWRpdHkgQ29uc3RyYWludDogTm90YXRpb24gQXR0cmlidXRlcyAq Lw0KPiAtICAgICBpZiAoYXR0ckRlY2wtPmF0eXBlID09IFhNTF9BVFRSSUJVVEVfTk9UQVRJ T04pIHsNCj4gZGlmZiAtLWdpdCBhL21ldGEvcmVjaXBlcy1jb3JlL2xpYnhtbC9saWJ4bWwy L2xpYnhtbDItQ1ZFLTIwMTctNTk2OS5wYXRjaCBiL21ldGEvcmVjaXBlcy1jb3JlL2xpYnht bC9saWJ4bWwyL2xpYnhtbDItQ1ZFLTIwMTctNTk2OS5wYXRjaA0KPiBkZWxldGVkIGZpbGUg bW9kZSAxMDA2NDQNCj4gaW5kZXggNTcxYjA1Yy4uMDAwMDAwMA0KPiAtLS0gYS9tZXRhL3Jl Y2lwZXMtY29yZS9saWJ4bWwvbGlieG1sMi9saWJ4bWwyLUNWRS0yMDE3LTU5NjkucGF0Y2gN Cj4gKysrIC9kZXYvbnVsbA0KPiBAQCAtMSw2MiArMCwwIEBADQo+IC1saWJ4bWwyLTIuOS40 OiBGaXggQ1ZFLTIwMTctNTk2OQ0KPiAtDQo+IC1bTm8gdXBzdHJlYW0gdHJhY2tpbmddIC0t IGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03NTg0MjINCj4g LQ0KPiAtdmFsaWQ6IEZpeCBOVUxMIHBvaW50ZXIgZGVyZWYgaW4geG1sRHVtcEVsZW1lbnRD b250ZW50DQo+IC0NCj4gLUNhbiBvbmx5IGJlIHRyaWdnZXJlZCBpbiByZWNvdmVyeSBtb2Rl Lg0KPiAtDQo+IC1GaXhlcyBidWcgNzU4NDIyDQo+IC0NCj4gLVVwc3RyZWFtLVN0YXR1czog QmFja3BvcnQgLSBbaHR0cHM6Ly9naXQuZ25vbWUub3JnL2Jyb3dzZS9saWJ4bWwyL2NvbW1p dC8/aWQ9OTQ2OTFkYzg4NGQxYThhZGEzOWYwNzM0MDhiNGJiOTJmZTdmZTg4Ml0NCj4gLUNW RTogQ1ZFLTIwMTctNTk2OQ0KPiAtU2lnbmVkLW9mZi1ieTogQW5kcmVqIFZhbGVrIDxhbmRy ZWoudmFsZWtAc2llbWVucy5jb20+DQo+IC0NCj4gLWRpZmYgLS1naXQgYS92YWxpZC5jIGIv dmFsaWQuYw0KPiAtaW5kZXggMTlmODRiOC4uMGE4ZTU4YSAxMDA2NDQNCj4gLS0tLSBhL3Zh bGlkLmMNCj4gLSsrKyBiL3ZhbGlkLmMNCj4gLUBAIC0xMTcyLDI5ICsxMTcyLDMzIEBAIHht bER1bXBFbGVtZW50Q29udGVudCh4bWxCdWZmZXJQdHIgYnVmLCB4bWxFbGVtZW50Q29udGVu dFB0ciBjb250ZW50LCBpbnQgZ2xvYikNCj4gLSAJICAgIHhtbEJ1ZmZlcldyaXRlQ0hBUihi dWYsIGNvbnRlbnQtPm5hbWUpOw0KPiAtIAkgICAgYnJlYWs7DQo+IC0gCWNhc2UgWE1MX0VM RU1FTlRfQ09OVEVOVF9TRVE6DQo+IC0tCSAgICBpZiAoKGNvbnRlbnQtPmMxLT50eXBlID09 IFhNTF9FTEVNRU5UX0NPTlRFTlRfT1IpIHx8DQo+IC0tCSAgICAgICAgKGNvbnRlbnQtPmMx LT50eXBlID09IFhNTF9FTEVNRU5UX0NPTlRFTlRfU0VRKSkNCj4gLSsJICAgIGlmICgoY29u dGVudC0+YzEgIT0gTlVMTCkgJiYNCj4gLSsJICAgICAgICAoKGNvbnRlbnQtPmMxLT50eXBl ID09IFhNTF9FTEVNRU5UX0NPTlRFTlRfT1IpIHx8DQo+IC0rCSAgICAgICAgIChjb250ZW50 LT5jMS0+dHlwZSA9PSBYTUxfRUxFTUVOVF9DT05URU5UX1NFUSkpKQ0KPiAtIAkJeG1sRHVt cEVsZW1lbnRDb250ZW50KGJ1ZiwgY29udGVudC0+YzEsIDEpOw0KPiAtIAkgICAgZWxzZQ0K PiAtIAkJeG1sRHVtcEVsZW1lbnRDb250ZW50KGJ1ZiwgY29udGVudC0+YzEsIDApOw0KPiAt ICAgICAgICAgICAgIHhtbEJ1ZmZlcldyaXRlQ2hhcihidWYsICIgLCAiKTsNCj4gLS0JICAg IGlmICgoY29udGVudC0+YzItPnR5cGUgPT0gWE1MX0VMRU1FTlRfQ09OVEVOVF9PUikgfHwN Cj4gLS0JICAgICAgICAoKGNvbnRlbnQtPmMyLT50eXBlID09IFhNTF9FTEVNRU5UX0NPTlRF TlRfU0VRKSAmJg0KPiAtLQkJIChjb250ZW50LT5jMi0+b2N1ciAhPSBYTUxfRUxFTUVOVF9D T05URU5UX09OQ0UpKSkNCj4gLSsJICAgIGlmICgoY29udGVudC0+YzIgIT0gTlVMTCkgJiYN Cj4gLSsJICAgICAgICAoKGNvbnRlbnQtPmMyLT50eXBlID09IFhNTF9FTEVNRU5UX0NPTlRF TlRfT1IpIHx8DQo+IC0rCSAgICAgICAgICgoY29udGVudC0+YzItPnR5cGUgPT0gWE1MX0VM RU1FTlRfQ09OVEVOVF9TRVEpICYmDQo+IC0rCQkgIChjb250ZW50LT5jMi0+b2N1ciAhPSBY TUxfRUxFTUVOVF9DT05URU5UX09OQ0UpKSkpDQo+IC0gCQl4bWxEdW1wRWxlbWVudENvbnRl bnQoYnVmLCBjb250ZW50LT5jMiwgMSk7DQo+IC0gCSAgICBlbHNlDQo+IC0gCQl4bWxEdW1w RWxlbWVudENvbnRlbnQoYnVmLCBjb250ZW50LT5jMiwgMCk7DQo+IC0gCSAgICBicmVhazsN Cj4gLSAJY2FzZSBYTUxfRUxFTUVOVF9DT05URU5UX09SOg0KPiAtLQkgICAgaWYgKChjb250 ZW50LT5jMS0+dHlwZSA9PSBYTUxfRUxFTUVOVF9DT05URU5UX09SKSB8fA0KPiAtLQkgICAg ICAgIChjb250ZW50LT5jMS0+dHlwZSA9PSBYTUxfRUxFTUVOVF9DT05URU5UX1NFUSkpDQo+ IC0rCSAgICBpZiAoKGNvbnRlbnQtPmMxICE9IE5VTEwpICYmDQo+IC0rCSAgICAgICAgKChj b250ZW50LT5jMS0+dHlwZSA9PSBYTUxfRUxFTUVOVF9DT05URU5UX09SKSB8fA0KPiAtKwkg ICAgICAgICAoY29udGVudC0+YzEtPnR5cGUgPT0gWE1MX0VMRU1FTlRfQ09OVEVOVF9TRVEp KSkNCj4gLSAJCXhtbER1bXBFbGVtZW50Q29udGVudChidWYsIGNvbnRlbnQtPmMxLCAxKTsN Cj4gLSAJICAgIGVsc2UNCj4gLSAJCXhtbER1bXBFbGVtZW50Q29udGVudChidWYsIGNvbnRl bnQtPmMxLCAwKTsNCj4gLSAgICAgICAgICAgICB4bWxCdWZmZXJXcml0ZUNoYXIoYnVmLCAi IHwgIik7DQo+IC0tCSAgICBpZiAoKGNvbnRlbnQtPmMyLT50eXBlID09IFhNTF9FTEVNRU5U X0NPTlRFTlRfU0VRKSB8fA0KPiAtLQkgICAgICAgICgoY29udGVudC0+YzItPnR5cGUgPT0g WE1MX0VMRU1FTlRfQ09OVEVOVF9PUikgJiYNCj4gLS0JCSAoY29udGVudC0+YzItPm9jdXIg IT0gWE1MX0VMRU1FTlRfQ09OVEVOVF9PTkNFKSkpDQo+IC0rCSAgICBpZiAoKGNvbnRlbnQt PmMyICE9IE5VTEwpICYmDQo+IC0rCSAgICAgICAgKChjb250ZW50LT5jMi0+dHlwZSA9PSBY TUxfRUxFTUVOVF9DT05URU5UX1NFUSkgfHwNCj4gLSsJICAgICAgICAgKChjb250ZW50LT5j Mi0+dHlwZSA9PSBYTUxfRUxFTUVOVF9DT05URU5UX09SKSAmJg0KPiAtKwkJICAoY29udGVu dC0+YzItPm9jdXIgIT0gWE1MX0VMRU1FTlRfQ09OVEVOVF9PTkNFKSkpKQ0KPiAtIAkJeG1s RHVtcEVsZW1lbnRDb250ZW50KGJ1ZiwgY29udGVudC0+YzIsIDEpOw0KPiAtIAkgICAgZWxz ZQ0KPiAtIAkJeG1sRHVtcEVsZW1lbnRDb250ZW50KGJ1ZiwgY29udGVudC0+YzIsIDApOw0K PiBkaWZmIC0tZ2l0IGEvbWV0YS9yZWNpcGVzLWNvcmUvbGlieG1sL2xpYnhtbDIvbGlieG1s Mi1DVkUtMjAxNy04ODcyLnBhdGNoIGIvbWV0YS9yZWNpcGVzLWNvcmUvbGlieG1sL2xpYnht bDIvbGlieG1sMi1DVkUtMjAxNy04ODcyLnBhdGNoDQo+IGRlbGV0ZWQgZmlsZSBtb2RlIDEw MDY0NA0KPiBpbmRleCAyNjc3OWFhLi4wMDAwMDAwDQo+IC0tLSBhL21ldGEvcmVjaXBlcy1j b3JlL2xpYnhtbC9saWJ4bWwyL2xpYnhtbDItQ1ZFLTIwMTctODg3Mi5wYXRjaA0KPiArKysg L2Rldi9udWxsDQo+IEBAIC0xLDM3ICswLDAgQEANCj4gLUZyb20gZDJmODczYTU0MWM3MmIw ZjY3ZTE1NTYyODE5YmY5OGI4ODRiMzBiNyBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDENCj4g LUZyb206IEhvbmd4dSBKaWEgPGhvbmd4dS5qaWFAd2luZHJpdmVyLmNvbT4NCj4gLURhdGU6 IFdlZCwgMjMgQXVnIDIwMTcgMTY6MDQ6NDkgKzA4MDANCj4gLVN1YmplY3Q6IFtQQVRDSF0g Zml4IENWRS0yMDE3LTg4NzINCj4gLQ0KPiAtdGhpcyBtYWtlcyB4bWxIYWx0UGFyc2VyICJl bXB0eSIgdGhlIGJ1ZmZlciwgYXMgaXQgcmVzZXRzIGN1ciBhbmQgYXZhDQo+IC1pbCB0b28g aGVyZS4NCj4gLQ0KPiAtdGhpcyBzZWVtcyB0byBjdXJlIHRoaXMgc3BlY2lmaWMgaXNzdWUs IGFuZCBhbHNvIHBhc3NlcyB0aGUgdGVzdHN1aXRlDQo+IC0NCj4gLVNpZ25lZC1vZmYtYnk6 IE1hcmN1cyBNZWlzc25lciA8bWVpc3NuZXJAc3VzZS5kZT4NCj4gLQ0KPiAtaHR0cHM6Ly9i dWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTc3NTIwMA0KPiAtVXBzdHJlYW0t U3RhdHVzOiBCYWNrcG9ydCBbaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvYXR0YWNobWVu dC5jZ2k/aWQ9MzU1NTI3JmFjdGlvbj1kaWZmXQ0KPiAtU2lnbmVkLW9mZi1ieTogSG9uZ3h1 IEppYSA8aG9uZ3h1LmppYUB3aW5kcml2ZXIuY29tPg0KPiAtLS0tDQo+IC0gcGFyc2VyLmMg fCA0ICsrKysNCj4gLSAxIGZpbGUgY2hhbmdlZCwgNCBpbnNlcnRpb25zKCspDQo+IC0NCj4g LWRpZmYgLS1naXQgYS9wYXJzZXIuYyBiL3BhcnNlci5jDQo+IC1pbmRleCA5NTA2ZWFkLi42 YzA3ZmZkIDEwMDY0NA0KPiAtLS0tIGEvcGFyc2VyLmMNCj4gLSsrKyBiL3BhcnNlci5jDQo+ IC1AQCAtMTI2NjQsNiArMTI2NjQsMTAgQEAgeG1sSGFsdFBhcnNlcih4bWxQYXJzZXJDdHh0 UHRyIGN0eHQpIHsNCj4gLSAJfQ0KPiAtIAljdHh0LT5pbnB1dC0+Y3VyID0gQkFEX0NBU1Qi IjsNCj4gLSAJY3R4dC0+aW5wdXQtPmJhc2UgPSBjdHh0LT5pbnB1dC0+Y3VyOw0KPiAtKwlp ZiAoY3R4dC0+aW5wdXQtPmJ1Zikgew0KPiAtKwkJeG1sQnVmRW1wdHkgKGN0eHQtPmlucHV0 LT5idWYtPmJ1ZmZlcik7DQo+IC0rCX0gZWxzZQ0KPiAtKwkJY3R4dC0+aW5wdXQtPmxlbmd0 aCA9IDA7DQo+IC0gICAgIH0NCj4gLSB9DQo+IC0gDQo+IC0tLSANCj4gLTIuNy40DQo+IC0N Cj4gZGlmZiAtLWdpdCBhL21ldGEvcmVjaXBlcy1jb3JlL2xpYnhtbC9saWJ4bWwyL2xpYnht bDItQ1ZFLTIwMTctOTA0N19DVkUtMjAxNy05MDQ4LnBhdGNoIGIvbWV0YS9yZWNpcGVzLWNv cmUvbGlieG1sL2xpYnhtbDIvbGlieG1sMi1DVkUtMjAxNy05MDQ3X0NWRS0yMDE3LTkwNDgu cGF0Y2gNCj4gZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0DQo+IGluZGV4IDhiMDM0NTYuLjAw MDAwMDANCj4gLS0tIGEvbWV0YS9yZWNpcGVzLWNvcmUvbGlieG1sL2xpYnhtbDIvbGlieG1s Mi1DVkUtMjAxNy05MDQ3X0NWRS0yMDE3LTkwNDgucGF0Y2gNCj4gKysrIC9kZXYvbnVsbA0K PiBAQCAtMSwxMDMgKzAsMCBAQA0KPiAtbGlieG1sMi0yLjkuNDogRml4IENWRS0yMDE3LTkw NDcgYW5kIENWRS0yMDE3LTkwNDgNCj4gLQ0KPiAtW05vIHVwc3RyZWFtIHRyYWNraW5nXSAt LSBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzgxMzMzDQo+ IC0gLS0gaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTc4MTcw MQ0KPiAtDQo+IC12YWxpZDogRml4IGJ1ZmZlciBzaXplIGNoZWNrcyBpbiB4bWxTbnByaW50 ZkVsZW1lbnRDb250ZW50DQo+IC0NCj4gLXhtbFNucHJpbnRmRWxlbWVudENvbnRlbnQgZmFp bGVkIHRvIGNvcnJlY3RseSBjaGVjayB0aGUgYXZhaWxhYmxlDQo+IC1idWZmZXIgc3BhY2Ug aW4gdHdvIGxvY2F0aW9ucy4NCj4gLQ0KPiAtRml4ZXMgYnVnIDc4MTMzMyBhbmQgYnVnIDc4 MTcwMQ0KPiAtDQo+IC1VcHN0cmVhbS1TdGF0dXM6IEJhY2twb3J0IFtodHRwczovL2dpdC5n bm9tZS5vcmcvYnJvd3NlL2xpYnhtbDIvY29tbWl0Lz9pZD05MzJjYzk4OTZhYjQxNDc1ZDRh YTQyOWMyN2Q5YWZkMTc1OTU5ZDc0XQ0KPiAtQ1ZFOiBDVkUtMjAxNy05MDQ3IENWRS0yMDE3 LTkwNDgNCj4gLVNpZ25lZC1vZmYtYnk6IEFuZHJlaiBWYWxlayA8YW5kcmVqLnZhbGVrQHNp ZW1lbnMuY29tPg0KPiAtDQo+IC1kaWZmIC0tZ2l0IGEvcmVzdWx0L3ZhbGlkLzc4MTMzMy54 bWwgYi9yZXN1bHQvdmFsaWQvNzgxMzMzLnhtbA0KPiAtbmV3IGZpbGUgbW9kZSAxMDA2NDQN Cj4gLWluZGV4IDAwMDAwMDAuLjAxYmFmMTENCj4gLS0tLSAvZGV2L251bGwNCj4gLSsrKyBi L3Jlc3VsdC92YWxpZC83ODEzMzMueG1sDQo+IC1AQCAtMCwwICsxLDUgQEANCj4gLSs8P3ht bCB2ZXJzaW9uPSIxLjAiPz4NCj4gLSs8IURPQ1RZUEUgYSBbDQo+IC0rPCFFTEVNRU5UIGEg KHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBw 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 cHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBw cHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBw cHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBw cHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBw cHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBw cHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBw cHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBw cHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBw cHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBw cHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBw cHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBw cHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBw cHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBw cHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBw cHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBw cHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBw cHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBw cHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBw cHBwcHBwcHBwcHBwcHBwcHBwDQo+ICBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBw cHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBw cHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBw cHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBw cHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBw cHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBw cHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBw cHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBw cHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBw cHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBw cHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBw cHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBw cHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBw cHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBw cHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBw cHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBw cHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBw cHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBw cHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwDQo+ICBw cHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcDpsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxs bGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxs bGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxs bGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxs bGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxs bGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxs bGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxs bGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxs bGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxs bGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxs bGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxs bGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxs bGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxs bGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxs bGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxs bGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxs bGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxs bGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxs bGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsDQo+ICBsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxs bGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxs bGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxs bGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxs bGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxs bGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxs bGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxs bGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxs bGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxs bGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxs bGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxs bGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxs bGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxs bGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxs bGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxs bGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxs bGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxs bGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxs bGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxs DQo+ICBsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGwpPg0KPiAtK10+DQo+IC0r PGEvPg0KPiAtZGlmZiAtLWdpdCBhL3Jlc3VsdC92YWxpZC83ODEzMzMueG1sLmVyciBiL3Jl c3VsdC92YWxpZC83ODEzMzMueG1sLmVycg0KPiAtbmV3IGZpbGUgbW9kZSAxMDA2NDQNCj4g LWluZGV4IDAwMDAwMDAuLjIxNzYyMDANCj4gLS0tLSAvZGV2L251bGwNCj4gLSsrKyBiL3Jl c3VsdC92YWxpZC83ODEzMzMueG1sLmVycg0KPiAtQEAgLTAsMCArMSwzIEBADQo+IC0rLi90 ZXN0L3ZhbGlkLzc4MTMzMy54bWw6NDogZWxlbWVudCBhOiB2YWxpZGl0eSBlcnJvciA6IEVs ZW1lbnQgYSBjb250ZW50IGRvZXMgbm90IGZvbGxvdyB0aGUgRFRELCBleHBlY3RpbmcgKCAu Li4sIGdvdCANCj4gLSs8YS8+DQo+IC0rICAgIF4NCj4gLWRpZmYgLS1naXQgYS9yZXN1bHQv dmFsaWQvNzgxMzMzLnhtbC5lcnIucmRyIGIvcmVzdWx0L3ZhbGlkLzc4MTMzMy54bWwuZXJy LnJkcg0KPiAtbmV3IGZpbGUgbW9kZSAxMDA2NDQNCj4gLWluZGV4IDAwMDAwMDAuLjExOTVh MDQNCj4gLS0tLSAvZGV2L251bGwNCj4gLSsrKyBiL3Jlc3VsdC92YWxpZC83ODEzMzMueG1s LmVyci5yZHINCj4gLUBAIC0wLDAgKzEsNiBAQA0KPiAtKy4vdGVzdC92YWxpZC83ODEzMzMu eG1sOjQ6IGVsZW1lbnQgYTogdmFsaWRpdHkgZXJyb3IgOiBFbGVtZW50IGEgY29udGVudCBk b2VzIG5vdCBmb2xsb3cgdGhlIERURCwgZXhwZWN0aW5nICggLi4uLCBnb3QgDQo+IC0rPGEv Pg0KPiAtKyAgICBeDQo+IC0rLi90ZXN0L3ZhbGlkLzc4MTMzMy54bWw6NTogZWxlbWVudCBh OiB2YWxpZGl0eSBlcnJvciA6IEVsZW1lbnQgYSBjb250ZW50IGRvZXMgbm90IGZvbGxvdyB0 aGUgRFRELCBFeHBlY3RpbmcgbW9yZSBjaGlsZA0KPiAtKw0KPiAtK14NCj4gLWRpZmYgLS1n aXQgYS90ZXN0L3ZhbGlkLzc4MTMzMy54bWwgYi90ZXN0L3ZhbGlkLzc4MTMzMy54bWwNCj4g LW5ldyBmaWxlIG1vZGUgMTAwNjQ0DQo+IC1pbmRleCAwMDAwMDAwLi5iY2VhYzljDQo+IC0t LS0gL2Rldi9udWxsDQo+IC0rKysgYi90ZXN0L3ZhbGlkLzc4MTMzMy54bWwNCj4gLUBAIC0w LDAgKzEsNCBAQA0KPiAtKzwhRE9DVFlQRSBhIFsNCj4gLSsgICAgPCFFTEVNRU5UIGEgKHBw cHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBw cHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBw cHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBw cHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBw cHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBw cHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBw cHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBw cHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBw cHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBw cHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBw cHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBw cHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBw cHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBw cHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBw cHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBw cHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBw cHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBw cHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBw cHBwcHANCj4gIHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBw cHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBw cHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBw cHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBw cHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBw cHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBw cHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBw cHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBw cHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBw cHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBw cHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBw cHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBw cHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBw cHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBw cHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBw cHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBw cHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBw cHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBw cHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHANCj4gIHBwcHBwcHBwcHBwcHBw cHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBw cHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBw cHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBw cHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBw cHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBw cHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBw cHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBw cHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBw cHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBw cHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBw cHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBw cHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBw cHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBw cHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBw cHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBw cHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBw cHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBw cHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBw cHBwcHBwcHBwcHANCj4gIHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBw cHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBw cHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBw cHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBw cHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBw cHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBw cHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBw cHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBw cHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBw cHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBw cHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBw cHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBw cHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBw cHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBw cHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBw cHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBw cHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBw cHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBw cHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHANCj4gIHBwcHBwcHBw cHBwcHBwcHBwcHBwcHBwcHBwcHBwcDpsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxs bGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxs bGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxs bGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxs bGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxs bGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxs bGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxs bGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxs bGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxs bGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxs bGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxs bGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxs bGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxs bGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxs bGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxs bGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxs bGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxs bGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxs bGxsbGxsbGxsbGxsbGxsbGwNCj4gIGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxs bGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxs bGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxs bGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxs bGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxs bGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxs bGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxs bGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxs bGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxs bGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxs bGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxs bGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxs bGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxs bGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxs bGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxs bGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxs bGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxs bGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxs bGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGwNCj4gIGxs bGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGwpPg0KPiAtK10+DQo+IC0rPGEv Pg0KPiAtZGlmZiAtLWdpdCBhL3ZhbGlkLmMgYi92YWxpZC5jDQo+IC1pbmRleCAxOWY4NGI4 Li5hYWEzMGY2IDEwMDY0NA0KPiAtLS0tIGEvdmFsaWQuYw0KPiAtKysrIGIvdmFsaWQuYw0K PiAtQEAgLTEyNjIsMjIgKzEyNjIsMjMgQEAgeG1sU25wcmludGZFbGVtZW50Q29udGVudChj aGFyICpidWYsIGludCBzaXplLCB4bWxFbGVtZW50Q29udGVudFB0ciBjb250ZW50LCBpbnQN Cj4gLSAgICAgICAgIGNhc2UgWE1MX0VMRU1FTlRfQ09OVEVOVF9QQ0RBVEE6DQo+IC0gICAg ICAgICAgICAgc3RyY2F0KGJ1ZiwgIiNQQ0RBVEEiKTsNCj4gLSAJICAgIGJyZWFrOw0KPiAt LQljYXNlIFhNTF9FTEVNRU5UX0NPTlRFTlRfRUxFTUVOVDoNCj4gLSsJY2FzZSBYTUxfRUxF TUVOVF9DT05URU5UX0VMRU1FTlQ6IHsNCj4gLSsgICAgICAgICAgICBpbnQgcW5hbWVMZW4g PSB4bWxTdHJsZW4oY29udGVudC0+bmFtZSk7DQo+IC0rDQo+IC0rCSAgICBpZiAoY29udGVu dC0+cHJlZml4ICE9IE5VTEwpDQo+IC0rICAgICAgICAgICAgICAgIHFuYW1lTGVuICs9IHht bFN0cmxlbihjb250ZW50LT5wcmVmaXgpICsgMTsNCj4gLSsJICAgIGlmIChzaXplIC0gbGVu IDwgcW5hbWVMZW4gKyAxMCkgew0KPiAtKwkJc3RyY2F0KGJ1ZiwgIiAuLi4iKTsNCj4gLSsJ CXJldHVybjsNCj4gLSsJICAgIH0NCj4gLSAJICAgIGlmIChjb250ZW50LT5wcmVmaXggIT0g TlVMTCkgew0KPiAtLQkJaWYgKHNpemUgLSBsZW4gPCB4bWxTdHJsZW4oY29udGVudC0+cHJl Zml4KSArIDEwKSB7DQo+IC0tCQkgICAgc3RyY2F0KGJ1ZiwgIiAuLi4iKTsNCj4gLS0JCSAg ICByZXR1cm47DQo+IC0tCQl9DQo+IC0gCQlzdHJjYXQoYnVmLCAoY2hhciAqKSBjb250ZW50 LT5wcmVmaXgpOw0KPiAtIAkJc3RyY2F0KGJ1ZiwgIjoiKTsNCj4gLSAJICAgIH0NCj4gLS0J ICAgIGlmIChzaXplIC0gbGVuIDwgeG1sU3RybGVuKGNvbnRlbnQtPm5hbWUpICsgMTApIHsN Cj4gLS0JCXN0cmNhdChidWYsICIgLi4uIik7DQo+IC0tCQlyZXR1cm47DQo+IC0tCSAgICB9 DQo+IC0gCSAgICBpZiAoY29udGVudC0+bmFtZSAhPSBOVUxMKQ0KPiAtIAkJc3RyY2F0KGJ1 ZiwgKGNoYXIgKikgY29udGVudC0+bmFtZSk7DQo+IC0gCSAgICBicmVhazsNCj4gLSsJfQ0K PiAtIAljYXNlIFhNTF9FTEVNRU5UX0NPTlRFTlRfU0VROg0KPiAtIAkgICAgaWYgKChjb250 ZW50LT5jMS0+dHlwZSA9PSBYTUxfRUxFTUVOVF9DT05URU5UX09SKSB8fA0KPiAtIAkgICAg ICAgIChjb250ZW50LT5jMS0+dHlwZSA9PSBYTUxfRUxFTUVOVF9DT05URU5UX1NFUSkpDQo+ IC1AQCAtMTMxOSw2ICsxMzIwLDcgQEAgeG1sU25wcmludGZFbGVtZW50Q29udGVudChjaGFy ICpidWYsIGludCBzaXplLCB4bWxFbGVtZW50Q29udGVudFB0ciBjb250ZW50LCBpbnQNCj4g LSAJCXhtbFNucHJpbnRmRWxlbWVudENvbnRlbnQoYnVmLCBzaXplLCBjb250ZW50LT5jMiwg MCk7DQo+IC0gCSAgICBicmVhazsNCj4gLSAgICAgfQ0KPiAtKyAgICBpZiAoc2l6ZSAtIHN0 cmxlbihidWYpIDw9IDIpIHJldHVybjsNCj4gLSAgICAgaWYgKGVuZ2xvYikNCj4gLSAgICAg ICAgIHN0cmNhdChidWYsICIpIik7DQo+IC0gICAgIHN3aXRjaCAoY29udGVudC0+b2N1cikg ew0KPiBkaWZmIC0tZ2l0IGEvbWV0YS9yZWNpcGVzLWNvcmUvbGlieG1sL2xpYnhtbDIvbGli eG1sMi1DVkUtMjAxNy05MDQ5X0NWRS0yMDE3LTkwNTAucGF0Y2ggYi9tZXRhL3JlY2lwZXMt Y29yZS9saWJ4bWwvbGlieG1sMi9saWJ4bWwyLUNWRS0yMDE3LTkwNDlfQ1ZFLTIwMTctOTA1 MC5wYXRjaA0KPiBkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQNCj4gaW5kZXggNTkxMDc1ZC4u MDAwMDAwMA0KPiAtLS0gYS9tZXRhL3JlY2lwZXMtY29yZS9saWJ4bWwvbGlieG1sMi9saWJ4 bWwyLUNWRS0yMDE3LTkwNDlfQ1ZFLTIwMTctOTA1MC5wYXRjaA0KPiArKysgL2Rldi9udWxs DQo+IEBAIC0xLDI5MSArMCwwIEBADQo+IC1saWJ4bWwyLTIuOS40OiBGaXggQ1ZFLTIwMTct OTA0OSBhbmQgQ1ZFLTIwMTctOTA1MA0KPiAtDQo+IC1bTm8gdXBzdHJlYW0gdHJhY2tpbmdd IC0tIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03ODEyMDUN Cj4gLSAtLSBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9Nzgx MzYxDQo+IC0NCj4gLXBhcnNlcjogRml4IGhhbmRsaW5nIG9mIHBhcmFtZXRlci1lbnRpdHkg cmVmZXJlbmNlcw0KPiAtDQo+IC1UaGVyZSB3ZXJlIHR3byBidWdzIHdoZXJlIHBhcmFtZXRl ci1lbnRpdHkgcmVmZXJlbmNlcyBjb3VsZCBsZWFkIHRvIGFuDQo+IC11bmV4cGVjdGVkIGNo YW5nZSBvZiB0aGUgaW5wdXQgYnVmZmVyIGluIHhtbFBhcnNlTmFtZUNvbXBsZXggYW5kDQo+ IC14bWxEaWN0TG9va3VwIGJlaW5nIGNhbGxlZCB3aXRoIGFuIGludmFsaWQgcG9pbnRlci4N Cj4gLQ0KPiAtUGVyY2VudCBzaWduIGluIERURCBOYW1lcw0KPiAtPT09PT09PT09PT09PT09 PT09PT09PT09PQ0KPiAtDQo+IC1UaGUgTkVYVEwgbWFjcm8gdXNlZCB0byBjYWxsIHhtbFBh cnNlckhhbmRsZVBFUmVmZXJlbmNlLiBXaGVuIHBhcnNpbmcNCj4gLSJjb21wbGV4IiBuYW1l cyBpbnNpZGUgdGhlIERURCwgdGhpcyBjb3VsZCByZXN1bHQgaW4gZW50aXR5IGV4cGFuc2lv bg0KPiAtd2hpY2ggY3JlYXRlZCBhIG5ldyBpbnB1dCBidWZmZXIuIFRoZSBmaXggaXMgdG8g c2ltcGx5IHJlbW92ZSB0aGUgY2FsbA0KPiAtdG8geG1sUGFyc2VySGFuZGxlUEVSZWZlcmVu Y2UgZnJvbSB0aGUgTkVYVEwgbWFjcm8uIFRoaXMgaXMgc2FmZSBiZWNhdXNlDQo+IC1ubyB1 c2VycyBvZiB0aGUgbWFjcm8gcmVxdWlyZSBleHBhbnNpb24gb2YgcGFyYW1ldGVyIGVudGl0 aWVzLg0KPiAtDQo+IC0tIHhtbFBhcnNlTmFtZUNvbXBsZXgNCj4gLS0geG1sUGFyc2VOQ05h bWVDb21wbGV4DQo+IC0tIHhtbFBhcnNlTm10b2tlbg0KPiAtDQo+IC1UaGUgcGVyY2VudCBz aWduIGlzIG5vdCBhbGxvd2VkIGluIG5hbWVzLCB3aGljaCBhcmUgZ3JhbW1hdGljYWwgdG9r ZW5zLg0KPiAtDQo+IC0tIHhtbFBhcnNlRW50aXR5VmFsdWUNCj4gLQ0KPiAtUGFyYW1ldGVy LWVudGl0eSByZWZlcmVuY2VzIGluIGVudGl0eSB2YWx1ZXMgYXJlIGV4cGFuZGVkIGJ1dCB0 aGlzDQo+IC1oYXBwZW5zIGluIGEgc2VwYXJhdGUgc3RlcCBpbiB0aGlzIGZ1bmN0aW9uLg0K PiAtDQo+IC0tIHhtbFBhcnNlU3lzdGVtTGl0ZXJhbA0KPiAtDQo+IC1QYXJhbWV0ZXItZW50 aXR5IHJlZmVyZW5jZXMgYXJlIGlnbm9yZWQgaW4gdGhlIHN5c3RlbSBsaXRlcmFsLg0KPiAt DQo+IC0tIHhtbFBhcnNlQXR0VmFsdWVDb21wbGV4DQo+IC0tIHhtbFBhcnNlQ2hhckRhdGFD b21wbGV4DQo+IC0tIHhtbFBhcnNlQ29tbWVudENvbXBsZXgNCj4gLS0geG1sUGFyc2VQSQ0K PiAtLSB4bWxQYXJzZUNEU2VjdA0KPiAtDQo+IC1QYXJhbWV0ZXItZW50aXR5IHJlZmVyZW5j ZXMgYXJlIGlnbm9yZWQgb3V0c2lkZSB0aGUgRFRELg0KPiAtDQo+IC0tIHhtbExvYWRFbnRp dHlDb250ZW50DQo+IC0NCj4gLVRoaXMgZnVuY3Rpb24gaXMgb25seSBjYWxsZWQgZnJvbSB4 bWxTdHJpbmdMZW5EZWNvZGVFbnRpdGllcyBhbmQNCj4gLWVudGl0aWVzIGFyZSByZXBsYWNl ZCBpbiBhIHNlcGFyYXRlIHN0ZXAgaW1tZWRpYXRlbHkgYWZ0ZXIgdGhlIGZ1bmN0aW9uDQo+ IC1jYWxsLg0KPiAtDQo+IC1UaGlzIGJ1ZyBjb3VsZCBhbHNvIGJlIHRyaWdnZXJlZCB3aXRo IGFuIGludGVybmFsIHN1YnNldCBhbmQgZG91YmxlDQo+IC1lbnRpdHkgZXhwYW5zaW9uLg0K PiAtDQo+IC1UaGlzIGZpeGVzIGJ1ZyA3NjY5NTYgaW5pdGlhbGx5IHJlcG9ydGVkIGJ5IFdl aSBMZWkgYW5kIGluZGVwZW5kZW50bHkgYnkNCj4gLUNocm9taXVtJ3MgQ2x1c3RlckZ1enos IEhhbm5vIELDtmNrLCBhbmQgTWFyY28gR3Jhc3NpLiBUaGFua3MgdG8gZXZlcnlvbmUNCj4g LWludm9sdmVkLg0KPiAtDQo+IC14bWxQYXJzZU5hbWVDb21wbGV4IHdpdGggWE1MX1BBUlNF X09MRDEwDQo+IC09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09DQo+ IC0NCj4gLVdoZW4gcGFyc2luZyBOYW1lcyBpbnNpZGUgYW4gZXhwYW5kZWQgcGFyYW1ldGVy IGVudGl0eSB3aXRoIHRoZQ0KPiAtWE1MX1BBUlNFX09MRDEwIG9wdGlvbiwgeG1sUGFyc2VO YW1lQ29tcGxleCB3b3VsZCBjYWxsIHhtbEdST1cgdmlhIHRoZQ0KPiAtR1JPVyBtYWNybyBp ZiB0aGUgaW5wdXQgYnVmZmVyIHdhcyBleGhhdXN0ZWQuIEF0IHRoZSBlbmQgb2YgdGhlDQo+ IC1wYXJhbWV0ZXIgZW50aXR5J3MgcmVwbGFjZW1lbnQgdGV4dCwgdGhpcyBmdW5jdGlvbiB3 b3VsZCB0aGVuIGNhbGwNCj4gLXhtbFBvcElucHV0IHdoaWNoIGludmFsaWRhdGVkIHRoZSBp bnB1dCBidWZmZXIuDQo+IC0NCj4gLVRoZXJlIHNob3VsZCBiZSBubyBuZWVkIHRvIGludm9r ZSBHUk9XIGluIHRoaXMgc2l0dWF0aW9uIGJlY2F1c2UgdGhlDQo+IC1idWZmZXIgaXMgZ3Jv d24gcGVyaW9kaWNhbGx5IGV2ZXJ5IFhNTF9QQVJTRVJfQ0hVTktfU0laRSBjaGFyYWN0ZXJz IGFuZCwNCj4gLWF0IGxlYXN0IGZvciBVVEYtOCwgaW4geG1sQ3VycmVudENoYXIuIFRoaXMg YWxzbyBtYXRjaGVzIHRoZSBjb2RlIHBhdGgNCj4gLWV4ZWN1dGVkIHdoZW4gWE1MX1BBUlNF X09MRDEwIGlzIG5vdCBzZXQuDQo+IC0NCj4gLVRoaXMgZml4ZXMgYnVncyA3ODEyMDUgKENW RS0yMDE3LTkwNDkpIGFuZCA3ODEzNjEgKENWRS0yMDE3LTkwNTApLg0KPiAtVGhhbmtzIHRv IE1hcmNlbCBCw7ZobWUgYW5kIFRodWFuIFBoYW0gZm9yIHRoZSByZXBvcnQuDQo+IC0NCj4g LUFkZGl0aW9uYWwgaGFyZGVuaW5nDQo+IC09PT09PT09PT09PT09PT09PT09PQ0KPiAtDQo+ IC1BIHNlcGFyYXRlIGNoZWNrIHdhcyBhZGRlZCBpbiB4bWxQYXJzZU5hbWVDb21wbGV4IHRv IHZhbGlkYXRlIHRoZQ0KPiAtYnVmZmVyIHNpemUuDQo+IC0NCj4gLUZpeGVzIGJ1ZyA3ODEy MDUgYW5kIGJ1ZyA3ODEzNjENCj4gLQ0KPiAtVXBzdHJlYW0tU3RhdHVzOiBCYWNrcG9ydCBb aHR0cHM6Ly9naXQuZ25vbWUub3JnL2Jyb3dzZS9saWJ4bWwyL2NvbW1pdC8/aWQ9OTMyY2M5 ODk2YWI0MTQ3NWQ0YWE0MjljMjdkOWFmZDE3NTk1OWQ3NF0NCj4gLUNWRTogQ1ZFLTIwMTct OTA0OSBDVkUtMjAxNy05MDUwDQo+IC1TaWduZWQtb2ZmLWJ5OiBBbmRyZWogVmFsZWsgPGFu ZHJlai52YWxla0BzaWVtZW5zLmNvbT4NCj4gLQ0KPiAtZGlmZiAtLWdpdCBhL01ha2VmaWxl LmFtIGIvTWFrZWZpbGUuYW0NCj4gLWluZGV4IDlmOTg4YjAuLmRhYjE1YTQgMTAwNjQ0DQo+ IC0tLS0gYS9NYWtlZmlsZS5hbQ0KPiAtKysrIGIvTWFrZWZpbGUuYW0NCj4gLUBAIC00MjIs NiArNDIyLDI0IEBAIEVycnRlc3RzIDogeG1sbGludCQoRVhFRVhUKQ0KPiAtIAkgICAgICBp ZiBbIC1uICIkJGxvZyIgXSA7IHRoZW4gZWNobyAkJG5hbWUgcmVzdWx0IDsgZWNobyAkJGxv ZyA7IGZpIDsgXA0KPiAtIAkgICAgICBybSByZXN1bHQuJCRuYW1lIGVycm9yLiQkbmFtZSA7 IFwNCj4gLSAJICBmaSA7IGZpIDsgZG9uZSkNCj4gLSsJQGVjaG8gIiMjIEVycm9yIGNhc2Vz IHJlZ3Jlc3Npb24gdGVzdHMgKG9sZCAxLjApIg0KPiAtKwktQChmb3IgaSBpbiAkKHNyY2Rp cikvdGVzdC9lcnJvcnMxMC8qLnhtbCA7IGRvIFwNCj4gLSsJICBuYW1lPWBiYXNlbmFtZSAk JGlgOyBcDQo+IC0rCSAgaWYgWyAhIC1kICQkaSBdIDsgdGhlbiBcDQo+IC0rCSAgaWYgWyAh IC1mICQoc3JjZGlyKS9yZXN1bHQvZXJyb3JzMTAvJCRuYW1lIF0gOyB0aGVuIFwNCj4gLSsJ ICAgICAgZWNobyBOZXcgdGVzdCBmaWxlICQkbmFtZSA7IFwNCj4gLSsJICAgICAgJChDSEVD S0VSKSAkKHRvcF9idWlsZGRpcikveG1sbGludCAtLW9sZHhtbDEwICQkaSBcDQo+IC0rCSAg ICAgICAgIDI+ICQoc3JjZGlyKS9yZXN1bHQvZXJyb3JzMTAvJCRuYW1lLmVyciBcDQo+IC0r CQkgPiAkKHNyY2RpcikvcmVzdWx0L2Vycm9yczEwLyQkbmFtZSA7IFwNCj4gLSsJICAgICAg Z3JlcCAiTU9SWSBBTExPIiAubWVtZHVtcCAgfCBncmVwIC12ICJNRU1PUlkgQUxMT0NBVEVE IDogMCI7IFwNCj4gLSsJICBlbHNlIFwNCj4gLSsJICAgICAgbG9nPWAkKENIRUNLRVIpICQo dG9wX2J1aWxkZGlyKS94bWxsaW50IC0tb2xkeG1sMTAgJCRpIDI+IGVycm9yLiQkbmFtZSA+ IHJlc3VsdC4kJG5hbWUgOyBcDQo+IC0rCSAgICAgIGdyZXAgIk1PUlkgQUxMTyIgLm1lbWR1 bXAgIHwgZ3JlcCAtdiAiTUVNT1JZIEFMTE9DQVRFRCA6IDAiOyBcDQo+IC0rCSAgICAgIGRp ZmYgJChzcmNkaXIpL3Jlc3VsdC9lcnJvcnMxMC8kJG5hbWUgcmVzdWx0LiQkbmFtZSA7IFwN Cj4gLSsJICAgICAgZGlmZiAkKHNyY2RpcikvcmVzdWx0L2Vycm9yczEwLyQkbmFtZS5lcnIg ZXJyb3IuJCRuYW1lYCA7IFwNCj4gLSsJICAgICAgaWYgWyAtbiAiJCRsb2ciIF0gOyB0aGVu IGVjaG8gJCRuYW1lIHJlc3VsdCA7IGVjaG8gIiQkbG9nIiA7IGZpIDsgXA0KPiAtKwkgICAg ICBybSByZXN1bHQuJCRuYW1lIGVycm9yLiQkbmFtZSA7IFwNCj4gLSsJICBmaSA7IGZpIDsg ZG9uZSkNCj4gLSAJQGVjaG8gIiMjIEVycm9yIGNhc2VzIHN0cmVhbSByZWdyZXNzaW9uIHRl c3RzIg0KPiAtIAktQChmb3IgaSBpbiAkKHNyY2RpcikvdGVzdC9lcnJvcnMvKi54bWwgOyBk byBcDQo+IC0gCSAgbmFtZT1gYmFzZW5hbWUgJCRpYDsgXA0KPiAtZGlmZiAtLWdpdCBhL3Bh cnNlci5jIGIvcGFyc2VyLmMNCj4gLWluZGV4IDYwOWEyNzAuLjhlMTFjMTIgMTAwNjQ0DQo+ IC0tLS0gYS9wYXJzZXIuYw0KPiAtKysrIGIvcGFyc2VyLmMNCj4gLUBAIC0yMTE1LDcgKzIx MTUsNiBAQCBzdGF0aWMgdm9pZCB4bWxHUk9XICh4bWxQYXJzZXJDdHh0UHRyIGN0eHQpIHsN Cj4gLSAJY3R4dC0+aW5wdXQtPmxpbmUrKzsgY3R4dC0+aW5wdXQtPmNvbCA9IDE7CQkJXA0K PiAtICAgICB9IGVsc2UgY3R4dC0+aW5wdXQtPmNvbCsrOwkJCQkJCVwNCj4gLSAgICAgY3R4 dC0+aW5wdXQtPmN1ciArPSBsOwkJCQlcDQo+IC0tICAgIGlmICgqY3R4dC0+aW5wdXQtPmN1 ciA9PSAnJScpIHhtbFBhcnNlckhhbmRsZVBFUmVmZXJlbmNlKGN0eHQpOwlcDQo+IC0gICB9 IHdoaWxlICgwKQ0KPiAtIA0KPiAtICNkZWZpbmUgQ1VSX0NIQVIobCkgeG1sQ3VycmVudENo YXIoY3R4dCwgJmwpDQo+IC1AQCAtMzQwNiwxMyArMzQwNSw2IEBAIHhtbFBhcnNlTmFtZUNv bXBsZXgoeG1sUGFyc2VyQ3R4dFB0ciBjdHh0KSB7DQo+IC0gCSAgICBsZW4gKz0gbDsNCj4g LSAJICAgIE5FWFRMKGwpOw0KPiAtIAkgICAgYyA9IENVUl9DSEFSKGwpOw0KPiAtLQkgICAg aWYgKGMgPT0gMCkgew0KPiAtLQkJY291bnQgPSAwOw0KPiAtLQkJR1JPVzsNCj4gLS0gICAg ICAgICAgICAgICAgaWYgKGN0eHQtPmluc3RhdGUgPT0gWE1MX1BBUlNFUl9FT0YpDQo+IC0t ICAgICAgICAgICAgICAgICAgICByZXR1cm4oTlVMTCk7DQo+IC0tCQljID0gQ1VSX0NIQVIo bCk7DQo+IC0tCSAgICB9DQo+IC0gCX0NCj4gLSAgICAgfQ0KPiAtICAgICBpZiAoKGxlbiA+ IFhNTF9NQVhfTkFNRV9MRU5HVEgpICYmDQo+IC1AQCAtMzQyMCw2ICszNDEyLDE2IEBAIHht bFBhcnNlTmFtZUNvbXBsZXgoeG1sUGFyc2VyQ3R4dFB0ciBjdHh0KSB7DQo+IC0gICAgICAg ICB4bWxGYXRhbEVycihjdHh0LCBYTUxfRVJSX05BTUVfVE9PX0xPTkcsICJOYW1lIik7DQo+ IC0gICAgICAgICByZXR1cm4oTlVMTCk7DQo+IC0gICAgIH0NCj4gLSsgICAgaWYgKGN0eHQt PmlucHV0LT5jdXIgLSBjdHh0LT5pbnB1dC0+YmFzZSA8IGxlbikgew0KPiAtKyAgICAgICAg LyoNCj4gLSsgICAgICAgICAqIFRoZXJlIHdlcmUgYSBjb3VwbGUgb2YgYnVncyB3aGVyZSBQ RVJlZnMgbGVhZCB0byB0byBhIGNoYW5nZQ0KPiAtKyAgICAgICAgICogb2YgdGhlIGJ1ZmZl ci4gQ2hlY2sgdGhlIGJ1ZmZlciBzaXplIHRvIGF2b2lkIHBhc3NpbmcgYW4gaW52YWxpZA0K PiAtKyAgICAgICAgICogcG9pbnRlciB0byB4bWxEaWN0TG9va3VwLg0KPiAtKyAgICAgICAg ICovDQo+IC0rICAgICAgICB4bWxGYXRhbEVycihjdHh0LCBYTUxfRVJSX0lOVEVSTkFMX0VS Uk9SLA0KPiAtKyAgICAgICAgICAgICAgICAgICAgInVuZXhwZWN0ZWQgY2hhbmdlIG9mIGlu cHV0IGJ1ZmZlciIpOw0KPiAtKyAgICAgICAgcmV0dXJuIChOVUxMKTsNCj4gLSsgICAgfQ0K PiAtICAgICBpZiAoKCpjdHh0LT5pbnB1dC0+Y3VyID09ICdcbicpICYmIChjdHh0LT5pbnB1 dC0+Y3VyWy0xXSA9PSAnXHInKSkNCj4gLSAgICAgICAgIHJldHVybih4bWxEaWN0TG9va3Vw KGN0eHQtPmRpY3QsIGN0eHQtPmlucHV0LT5jdXIgLSAobGVuICsgMSksIGxlbikpOw0KPiAt ICAgICByZXR1cm4oeG1sRGljdExvb2t1cChjdHh0LT5kaWN0LCBjdHh0LT5pbnB1dC0+Y3Vy IC0gbGVuLCBsZW4pKTsNCj4gLWRpZmYgLS1naXQgYS9yZXN1bHQvZXJyb3JzMTAvNzgxMjA1 LnhtbCBiL3Jlc3VsdC9lcnJvcnMxMC83ODEyMDUueG1sDQo+IC1uZXcgZmlsZSBtb2RlIDEw MDY0NA0KPiAtaW5kZXggMDAwMDAwMC4uZTY5ZGUyOQ0KPiAtZGlmZiAtLWdpdCBhL3Jlc3Vs dC9lcnJvcnMxMC83ODEyMDUueG1sLmVyciBiL3Jlc3VsdC9lcnJvcnMxMC83ODEyMDUueG1s LmVycg0KPiAtbmV3IGZpbGUgbW9kZSAxMDA2NDQNCj4gLWluZGV4IDAwMDAwMDAuLmRhMTVj M2YNCj4gLS0tLSAvZGV2L251bGwNCj4gLSsrKyBiL3Jlc3VsdC9lcnJvcnMxMC83ODEyMDUu eG1sLmVycg0KPiAtQEAgLTAsMCArMSwyMSBAQA0KPiAtK0VudGl0eTogbGluZSAxOiBwYXJz ZXIgZXJyb3IgOiBpbnRlcm5hbCBlcnJvcjogeG1sUGFyc2VJbnRlcm5hbFN1YnNldDogZXJy b3IgZGV0ZWN0ZWQgaW4gTWFya3VwIGRlY2xhcmF0aW9uDQo+IC0rDQo+IC0rICVhOyANCj4g LSsgICAgXg0KPiAtK0VudGl0eTogbGluZSAxOiANCj4gLSs8OjAwMDANCj4gLSteDQo+IC0r RW50aXR5OiBsaW5lIDE6IHBhcnNlciBlcnJvciA6IERPQ1RZUEUgaW1wcm9wZXJseSB0ZXJt aW5hdGVkDQo+IC0rICVhOyANCj4gLSsgICAgXg0KPiAtK0VudGl0eTogbGluZSAxOiANCj4g LSs8OjAwMDANCj4gLSteDQo+IC0rbmFtZXNwYWNlIGVycm9yIDogRmFpbGVkIHRvIHBhcnNl IFFOYW1lICc6MDAwMCcNCj4gLSsgJWE7IA0KPiAtKyAgICBeDQo+IC0rPDowMDAwDQo+IC0r ICAgICAgXg0KPiAtKy4vdGVzdC9lcnJvcnMxMC83ODEyMDUueG1sOjQ6IHBhcnNlciBlcnJv ciA6IENvdWxkbid0IGZpbmQgZW5kIG9mIFN0YXJ0IFRhZyA6MDAwMCBsaW5lIDENCj4gLSsN Cj4gLSteDQo+IC1kaWZmIC0tZ2l0IGEvcmVzdWx0L2Vycm9yczEwLzc4MTM2MS54bWwgYi9y ZXN1bHQvZXJyb3JzMTAvNzgxMzYxLnhtbA0KPiAtbmV3IGZpbGUgbW9kZSAxMDA2NDQNCj4g LWluZGV4IDAwMDAwMDAuLmU2OWRlMjkNCj4gLWRpZmYgLS1naXQgYS9yZXN1bHQvZXJyb3Jz MTAvNzgxMzYxLnhtbC5lcnIgYi9yZXN1bHQvZXJyb3JzMTAvNzgxMzYxLnhtbC5lcnINCj4g LW5ldyBmaWxlIG1vZGUgMTAwNjQ0DQo+IC1pbmRleCAwMDAwMDAwLi42NTVmNDFhDQo+IC0t LS0gL2Rldi9udWxsDQo+IC0rKysgYi9yZXN1bHQvZXJyb3JzMTAvNzgxMzYxLnhtbC5lcnIN Cj4gLUBAIC0wLDAgKzEsMTMgQEANCj4gLSsuL3Rlc3QvZXJyb3JzMTAvNzgxMzYxLnhtbDo0 OiBwYXJzZXIgZXJyb3IgOiB4bWxQYXJzZUVsZW1lbnREZWNsOiAnRU1QVFknLCAnQU5ZJyBv ciAnKCcgZXhwZWN0ZWQNCj4gLSsNCj4gLSteDQo+IC0rLi90ZXN0L2Vycm9yczEwLzc4MTM2 MS54bWw6NDogcGFyc2VyIGVycm9yIDogaW50ZXJuYWwgZXJyb3I6IHhtbFBhcnNlSW50ZXJu YWxTdWJzZXQ6IGVycm9yIGRldGVjdGVkIGluIE1hcmt1cCBkZWNsYXJhdGlvbg0KPiAtKw0K PiAtKw0KPiAtK14NCj4gLSsuL3Rlc3QvZXJyb3JzMTAvNzgxMzYxLnhtbDo0OiBwYXJzZXIg ZXJyb3IgOiBET0NUWVBFIGltcHJvcGVybHkgdGVybWluYXRlZA0KPiAtKw0KPiAtK14NCj4g LSsuL3Rlc3QvZXJyb3JzMTAvNzgxMzYxLnhtbDo0OiBwYXJzZXIgZXJyb3IgOiBTdGFydCB0 YWcgZXhwZWN0ZWQsICc8JyBub3QgZm91bmQNCj4gLSsNCj4gLSteDQo+IC1kaWZmIC0tZ2l0 IGEvcmVzdWx0L3ZhbGlkLzc2Njk1Ni54bWwgYi9yZXN1bHQvdmFsaWQvNzY2OTU2LnhtbA0K PiAtbmV3IGZpbGUgbW9kZSAxMDA2NDQNCj4gLWluZGV4IDAwMDAwMDAuLmU2OWRlMjkNCj4g LWRpZmYgLS1naXQgYS9yZXN1bHQvdmFsaWQvNzY2OTU2LnhtbC5lcnIgYi9yZXN1bHQvdmFs aWQvNzY2OTU2LnhtbC5lcnINCj4gLW5ldyBmaWxlIG1vZGUgMTAwNjQ0DQo+IC1pbmRleCAw MDAwMDAwLi4zNGIxZGFlDQo+IC0tLS0gL2Rldi9udWxsDQo+IC0rKysgYi9yZXN1bHQvdmFs aWQvNzY2OTU2LnhtbC5lcnINCj4gLUBAIC0wLDAgKzEsOSBAQA0KPiAtK3Rlc3QvdmFsaWQv ZHRkcy83NjY5NTYuZHRkOjI6IHBhcnNlciBlcnJvciA6IFBFUmVmZXJlbmNlOiBleHBlY3Rp bmcgJzsnDQo+IC0rJcOkJWVudDsNCj4gLSsgICBeDQo+IC0rRW50aXR5OiBsaW5lIDE6IHBh cnNlciBlcnJvciA6IENvbnRlbnQgZXJyb3IgaW4gdGhlIGV4dGVybmFsIHN1YnNldA0KPiAt KyAlZW50OyANCj4gLSsgICAgICBeDQo+IC0rRW50aXR5OiBsaW5lIDE6IA0KPiAtK3ZhbHVl DQo+IC0rXg0KPiAtZGlmZiAtLWdpdCBhL3Jlc3VsdC92YWxpZC83NjY5NTYueG1sLmVyci5y ZHIgYi9yZXN1bHQvdmFsaWQvNzY2OTU2LnhtbC5lcnIucmRyDQo+IC1uZXcgZmlsZSBtb2Rl IDEwMDY0NA0KPiAtaW5kZXggMDAwMDAwMC4uNzc2MDM0Ng0KPiAtLS0tIC9kZXYvbnVsbA0K PiAtKysrIGIvcmVzdWx0L3ZhbGlkLzc2Njk1Ni54bWwuZXJyLnJkcg0KPiAtQEAgLTAsMCAr MSwxMCBAQA0KPiAtK3Rlc3QvdmFsaWQvZHRkcy83NjY5NTYuZHRkOjI6IHBhcnNlciBlcnJv ciA6IFBFUmVmZXJlbmNlOiBleHBlY3RpbmcgJzsnDQo+IC0rJcOkJWVudDsNCj4gLSsgICBe DQo+IC0rRW50aXR5OiBsaW5lIDE6IHBhcnNlciBlcnJvciA6IENvbnRlbnQgZXJyb3IgaW4g dGhlIGV4dGVybmFsIHN1YnNldA0KPiAtKyAlZW50OyANCj4gLSsgICAgICBeDQo+IC0rRW50 aXR5OiBsaW5lIDE6IA0KPiAtK3ZhbHVlDQo+IC0rXg0KPiAtKy4vdGVzdC92YWxpZC83NjY5 NTYueG1sIDogZmFpbGVkIHRvIHBhcnNlDQo+IC1kaWZmIC0tZ2l0IGEvcnVudGVzdC5jIGIv cnVudGVzdC5jDQo+IC1pbmRleCBiYjc0ZDJhLi42M2U4YzIwIDEwMDY0NA0KPiAtLS0tIGEv cnVudGVzdC5jDQo+IC0rKysgYi9ydW50ZXN0LmMNCj4gLUBAIC00MjAyLDYgKzQyMDIsOSBA QCB0ZXN0RGVzYyB0ZXN0RGVzY3JpcHRpb25zW10gPSB7DQo+IC0gICAgIHsgIkVycm9yIGNh c2VzIHJlZ3Jlc3Npb24gdGVzdHMiLA0KPiAtICAgICAgIGVyclBhcnNlVGVzdCwgIi4vdGVz dC9lcnJvcnMvKi54bWwiLCAicmVzdWx0L2Vycm9ycy8iLCAiIiwgIi5lcnIiLA0KPiAtICAg ICAgIDAgfSwNCj4gLSsgICAgeyAiRXJyb3IgY2FzZXMgcmVncmVzc2lvbiB0ZXN0cyAob2xk IDEuMCkiLA0KPiAtKyAgICAgIGVyclBhcnNlVGVzdCwgIi4vdGVzdC9lcnJvcnMxMC8qLnht bCIsICJyZXN1bHQvZXJyb3JzMTAvIiwgIiIsICIuZXJyIiwNCj4gLSsgICAgICBYTUxfUEFS U0VfT0xEMTAgfSwNCj4gLSAjaWZkZWYgTElCWE1MX1JFQURFUl9FTkFCTEVEDQo+IC0gICAg IHsgIkVycm9yIGNhc2VzIHN0cmVhbSByZWdyZXNzaW9uIHRlc3RzIiwNCj4gLSAgICAgICBz dHJlYW1QYXJzZVRlc3QsICIuL3Rlc3QvZXJyb3JzLyoueG1sIiwgInJlc3VsdC9lcnJvcnMv IiwgTlVMTCwgIi5zdHIiLA0KPiAtZGlmZiAtLWdpdCBhL3Rlc3QvZXJyb3JzMTAvNzgxMjA1 LnhtbCBiL3Rlc3QvZXJyb3JzMTAvNzgxMjA1LnhtbA0KPiAtbmV3IGZpbGUgbW9kZSAxMDA2 NDQNCj4gLWluZGV4IDAwMDAwMDAuLmQ5ZTllODMNCj4gLS0tLSAvZGV2L251bGwNCj4gLSsr KyBiL3Rlc3QvZXJyb3JzMTAvNzgxMjA1LnhtbA0KPiAtQEAgLTAsMCArMSwzIEBADQo+IC0r PCFET0NUWVBFIEQgWw0KPiAtKyAgPCFFTlRJVFkgJSBhICI8OjAwMDAiPg0KPiAtKyAgJWE7 DQo+IC1kaWZmIC0tZ2l0IGEvdGVzdC9lcnJvcnMxMC83ODEzNjEueG1sIGIvdGVzdC9lcnJv cnMxMC83ODEzNjEueG1sDQo+IC1uZXcgZmlsZSBtb2RlIDEwMDY0NA0KPiAtaW5kZXggMDAw MDAwMC4uNjc0NzZiYw0KPiAtLS0tIC9kZXYvbnVsbA0KPiAtKysrIGIvdGVzdC9lcnJvcnMx MC83ODEzNjEueG1sDQo+IC1AQCAtMCwwICsxLDMgQEANCj4gLSs8IURPQ1RZUEUgZG9jIFsN Cj4gLSsgIDwhRU5USVRZICUgZWxlbSAiPCFFTEVNRU5UIGUwMDAwMDAwMDAwIj4NCj4gLSsg ICVlbGVtOw0KPiAtZGlmZiAtLWdpdCBhL3Rlc3QvdmFsaWQvNzY2OTU2LnhtbCBiL3Rlc3Qv dmFsaWQvNzY2OTU2LnhtbA0KPiAtbmV3IGZpbGUgbW9kZSAxMDA2NDQNCj4gLWluZGV4IDAw MDAwMDAuLjE5YTk1YTANCj4gLS0tLSAvZGV2L251bGwNCj4gLSsrKyBiL3Rlc3QvdmFsaWQv NzY2OTU2LnhtbA0KPiAtQEAgLTAsMCArMSwyIEBADQo+IC0rPCFET0NUWVBFIHRlc3QgU1lT VEVNICJkdGRzLzc2Njk1Ni5kdGQiPg0KPiAtKzx0ZXN0Lz4NCj4gLWRpZmYgLS1naXQgYS90 ZXN0L3ZhbGlkL2R0ZHMvNzY2OTU2LmR0ZCBiL3Rlc3QvdmFsaWQvZHRkcy83NjY5NTYuZHRk DQo+IC1uZXcgZmlsZSBtb2RlIDEwMDY0NA0KPiAtaW5kZXggMDAwMDAwMC4uZGRkZGU2OA0K PiAtLS0tIC9kZXYvbnVsbA0KPiAtKysrIGIvdGVzdC92YWxpZC9kdGRzLzc2Njk1Ni5kdGQN Cj4gLUBAIC0wLDAgKzEsMiBAQA0KPiAtKzwhRU5USVRZICUgZW50ICJ2YWx1ZSI+DQo+IC0r JcOkJWVudDsNCj4gZGlmZiAtLWdpdCBhL21ldGEvcmVjaXBlcy1jb3JlL2xpYnhtbC9saWJ4 bWwyL2xpYnhtbDItZml4X05VTExfcG9pbnRlcl9kZXJlZnMucGF0Y2ggYi9tZXRhL3JlY2lw ZXMtY29yZS9saWJ4bWwvbGlieG1sMi9saWJ4bWwyLWZpeF9OVUxMX3BvaW50ZXJfZGVyZWZz LnBhdGNoDQo+IGRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NA0KPiBpbmRleCBjNjBlMzJmLi4w MDAwMDAwDQo+IC0tLSBhL21ldGEvcmVjaXBlcy1jb3JlL2xpYnhtbC9saWJ4bWwyL2xpYnht bDItZml4X05VTExfcG9pbnRlcl9kZXJlZnMucGF0Y2gNCj4gKysrIC9kZXYvbnVsbA0KPiBA QCAtMSw0NSArMCwwIEBADQo+IC1saWJ4bWwyLTIuOS40OiBGaXggbW9yZSBOVUxMIHBvaW50 ZXIgZGVyZWZzDQo+IC0NCj4gLXhwb2ludGVyOiBGaXggbW9yZSBOVUxMIHBvaW50ZXIgZGVy ZWZzDQo+IC0NCj4gLVVwc3RyZWFtLVN0YXR1czogQmFja3BvcnQgW2h0dHBzOi8vZ2l0Lmdu b21lLm9yZy9icm93c2UvbGlieG1sMi9jb21taXQvP2lkPWU5MDVmMDgxMjNlNGE2ZTc3MzE1 NDllNmYwOWRhZGZmNGNhYjY1YmRdDQo+IC1TaWduZWQtb2ZmLWJ5OiBBbmRyZWogVmFsZWsg PGFuZHJlai52YWxla0BzaWVtZW5zLmNvbT4NCj4gLVNpZ25lZC1vZmYtYnk6IFBhc2NhbCBC YWNoIDxwYXNjYWwuYmFjaEBzaWVtZW5zLmNvbT4NCj4gLQ0KPiAtZGlmZiAtLWdpdCBhL3hw b2ludGVyLmMgYi94cG9pbnRlci5jDQo+IC1pbmRleCA2NzZjNTEwLi4wNzRkYjI0IDEwMDY0 NA0KPiAtLS0tIGEveHBvaW50ZXIuYw0KPiAtKysrIGIveHBvaW50ZXIuYw0KPiAtQEAgLTU1 NSw3ICs1NTUsNyBAQCB4bWxYUHRyTmV3UmFuZ2VOb2RlT2JqZWN0KHhtbE5vZGVQdHIgc3Rh cnQsIHhtbFhQYXRoT2JqZWN0UHRyIGVuZCkgew0KPiAtIAkgICAgLyoNCj4gLSAJICAgICAq IEVtcHR5IHNldCAuLi4NCj4gLSAJICAgICAqLw0KPiAtLQkgICAgaWYgKGVuZC0+bm9kZXNl dHZhbC0+bm9kZU5yIDw9IDApDQo+IC0rCSAgICBpZiAoKGVuZC0+bm9kZXNldHZhbCA9PSBO VUxMKSB8fCAoZW5kLT5ub2Rlc2V0dmFsLT5ub2RlTnIgPD0gMCkpDQo+IC0gCQlyZXR1cm4o TlVMTCk7DQo+IC0gCSAgICBicmVhazsNCj4gLSAJZGVmYXVsdDoNCj4gLUBAIC0xNDAwLDcg KzE0MDAsNyBAQCB4bWxYUHRyRXZhbChjb25zdCB4bWxDaGFyICpzdHIsIHhtbFhQYXRoQ29u dGV4dFB0ciBjdHgpIHsNCj4gLSAJCSAgICAgKi8NCj4gLSAJCSAgICB4bWxOb2RlU2V0UHRy IHNldDsNCj4gLSAJCSAgICBzZXQgPSB0bXAtPm5vZGVzZXR2YWw7DQo+IC0tCQkgICAgaWYg KChzZXQtPm5vZGVOciAhPSAxKSB8fA0KPiAtKwkJICAgIGlmICgoc2V0ID09IE5VTEwpIHx8 IChzZXQtPm5vZGVOciAhPSAxKSB8fA0KPiAtIAkJCShzZXQtPm5vZGVUYWJbMF0gIT0gKHht bE5vZGVQdHIpIGN0eC0+ZG9jKSkNCj4gLSAJCQlzdGFjaysrOw0KPiAtIAkJfSBlbHNlDQo+ IC1AQCAtMjA3Myw5ICsyMDczLDExIEBAIHhtbFhQdHJSYW5nZUZ1bmN0aW9uKHhtbFhQYXRo UGFyc2VyQ29udGV4dFB0ciBjdHh0LCBpbnQgbmFyZ3MpIHsNCj4gLSAJeG1sWFBhdGhGcmVl T2JqZWN0KHNldCk7DQo+IC0gICAgICAgICBYUF9FUlJPUihYUEFUSF9NRU1PUllfRVJST1Ip Ow0KPiAtICAgICB9DQo+IC0tICAgIGZvciAoaSA9IDA7aSA8IG9sZHNldC0+bG9jTnI7aSsr KSB7DQo+IC0tCXhtbFhQdHJMb2NhdGlvblNldEFkZChuZXdzZXQsDQo+IC0tCQl4bWxYUHRy Q292ZXJpbmdSYW5nZShjdHh0LCBvbGRzZXQtPmxvY1RhYltpXSkpOw0KPiAtKyAgICBpZiAo b2xkc2V0ICE9IE5VTEwpIHsNCj4gLSsJZm9yIChpID0gMDtpIDwgb2xkc2V0LT5sb2NOcjtp KyspIHsNCj4gLSsJICB4bWxYUHRyTG9jYXRpb25TZXRBZGQobmV3c2V0LA0KPiAtKwkJICB4 bWxYUHRyQ292ZXJpbmdSYW5nZShjdHh0LCBvbGRzZXQtPmxvY1RhYltpXSkpOw0KPiAtKyAg ICAgIH0NCj4gLSAgICAgfQ0KPiAtIA0KPiAtICAgICAvKg0KPiBkaWZmIC0tZ2l0IGEvbWV0 YS9yZWNpcGVzLWNvcmUvbGlieG1sL2xpYnhtbDIvbGlieG1sMi1maXhfYW5kX3NpbXBsaWZ5 X3htbFBhcnNlU3RhcnRUYWcyLnBhdGNoIGIvbWV0YS9yZWNpcGVzLWNvcmUvbGlieG1sL2xp YnhtbDIvbGlieG1sMi1maXhfYW5kX3NpbXBsaWZ5X3htbFBhcnNlU3RhcnRUYWcyLnBhdGNo DQo+IGRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NA0KPiBpbmRleCBmYWE1NzcwLi4wMDAwMDAw DQo+IC0tLSBhL21ldGEvcmVjaXBlcy1jb3JlL2xpYnhtbC9saWJ4bWwyL2xpYnhtbDItZml4 X2FuZF9zaW1wbGlmeV94bWxQYXJzZVN0YXJ0VGFnMi5wYXRjaA0KPiArKysgL2Rldi9udWxs DQo+IEBAIC0xLDU5MCArMCwwIEBADQo+IC1saWJ4bWwyLTIuOS40OiBBdm9pZCByZXBhcnNp bmcgYW5kIHNpbXBsaWZ5IGNvbnRyb2wgZmxvdyBpbiB4bWxQYXJzZVN0YXJ0VGFnMg0KPiAt DQo+IC1bTm8gdXBzdHJlYW0gdHJhY2tpbmddDQo+IC0NCj4gLXBhcnNlcjogQXZvaWQgcmVw YXJzaW5nIGluIHhtbFBhcnNlU3RhcnRUYWcyDQo+IC0NCj4gLVRoZSBjb2RlIGluIHhtbFBh cnNlU3RhcnRUYWcyIG11c3QgaGFuZGxlIHRoZSBjYXNlIHRoYXQgdGhlIGlucHV0DQo+IC1i dWZmZXIgd2FzIGdyb3duIGFuZCByZWFsbG9jYXRlZCB3aGljaCBjYW4gaW52YWxpZGF0ZSBw b2ludGVycyB0bw0KPiAtYXR0cmlidXRlIHZhbHVlcy4gQmVmb3JlLCB0aGlzIHdhcyBoYW5k bGVkIGJ5IGRldGVjdGluZyBjaGFuZ2VzIG9mDQo+IC10aGUgaW5wdXQgYnVmZmVyICJiYXNl IiBwb2ludGVyIGFuZCwgaW4gY2FzZSBvZiBhIGNoYW5nZSwganVtcGluZw0KPiAtYmFjayB0 byB0aGUgYmVnaW5uaW5nIG9mIHRoZSBmdW5jdGlvbiBhbmQgcmVwYXJzaW5nIHRoZSBzdGFy dCB0YWcuDQo+IC0NCj4gLVRoZSBtYWpvciBwcm9ibGVtIG9mIHRoaXMgYXBwcm9hY2ggaXMg dGhhdCB3aGV0aGVyIGFuIGlucHV0IGJ1ZmZlciBpcw0KPiAtcmVhbGxvY2F0ZWQgaXMgbm9u ZGV0ZXJtaW5pc3RpYywgcmVzdWx0aW5nIGluIHNlZW1pbmdseSByYW5kb20gdGVzdA0KPiAt ZmFpbHVyZXMuIFNlZSB0aGUgbWFpbGluZyBsaXN0IHRocmVhZCAicnVudGVzdCBteXN0ZXJ5 IGJ1ZzogbmFtZTIueG1sDQo+IC1lcnJvciBjYXNlIHJlZ3Jlc3Npb24gdGVzdCIgZnJvbSAy MDEyLCBmb3IgZXhhbXBsZS4NCj4gLQ0KPiAtSWYgYSByZWFsbG9jYXRpb24gd2FzIGRldGVj dGVkLCB0aGUgY29kZSBhbHNvIG1hZGUgbm8gYXR0ZW1wdHMgdG8NCj4gLWNvbnRpbnVlIHBh cnNpbmcgaW4gY2FzZSBvZiBlcnJvcnMgd2hpY2ggbWFrZXMgYSBkaWZmZXJlbmNlIGluDQo+ IC10aGUgbGF4ICJyZWNvdmVyIiBtb2RlLg0KPiAtDQo+IC1Ob3cgd2Ugc3RvcmUgdGhlIGN1 cnJlbnQgaW5wdXQgYnVmZmVyICJiYXNlIiBwb2ludGVyIGZvciBlYWNoIChub3QNCj4gLXNl cGFyYXRlbHkgYWxsb2NhdGVkKSBhdHRyaWJ1dGUgaW4gdGhlIG5hbWVzcGFjZSBVUkkgZmll bGQsIHdoaWNoIGlzbid0DQo+IC11c2VkIHVudGlsIGxhdGVyLiBBZnRlciB0aGUgd2hvbGUg c3RhcnQgdGFnIHdhcyBwYXJzZWQsIHRoZSBwb2ludGVycyB0bw0KPiAtdGhlIGF0dHJpYnV0 ZSB2YWx1ZXMgYXJlIHJlY29uc3RydWN0ZWQgdXNpbmcgdGhlIG9mZnNldCBiZXR3ZWVuIHRo ZQ0KPiAtbmV3IGFuZCB0aGUgb2xkIGlucHV0IGJ1ZmZlci4gVGhpcyByZWxpZXMgb24gYXJp dGhtZXRpYyBvbiBkYW5nbGluZw0KPiAtcG9pbnRlcnMgd2hpY2ggaXMgdGVjaG5pY2FsbHkg dW5kZWZpbmVkIGJlaGF2aW9yLiBCdXQgaXQgc2VlbXMgbGlrZQ0KPiAtdGhlIGVhc2llc3Qg YW5kIG1vc3QgZWZmaWNpZW50IGZpeCBhbmQgYSBzaW1pbGFyIGFwcHJvYWNoIGlzIHVzZWQg aW4NCj4gLXhtbFBhcnNlcklucHV0R3Jvdy4NCj4gLQ0KPiAtVGhpcyBjaGFuZ2VzIHRoZSBl cnJvciBvdXRwdXQgb2Ygc2V2ZXJhbCB0ZXN0cywgdHlwaWNhbGx5IG1ha2luZyBpdA0KPiAt bW9yZSB2ZXJib3NlIGJlY2F1c2Ugd2UgdHJ5IGhhcmRlciB0byBjb250aW51ZSBwYXJzaW5n IGluIGNhc2Ugb2YgZXJyb3JzLg0KPiAtDQo+IC0oQW5vdGhlciBwb3NzaWJsZSBzb2x1dGlv biBpcyB0byBjaGVjayBub3Qgb25seSB0aGUgImJhc2UiIHBvaW50ZXINCj4gLWJ1dCB0aGUg c2l6ZSBvZiB0aGUgaW5wdXQgYnVmZmVyIGFzIHdlbGwuIEJ1dCB0aGlzIHdvdWxkIHJlc3Vs dCBpbg0KPiAtZXZlbiBtb3JlIHJlcGFyc2luZy4pDQo+IC0NCj4gLVJlbW92ZSBzb21lIGdv dG8gbGFiZWxzIGFuZCBkZWR1cGxpY2F0ZSBhIGJpdCBvZiBjb2RlIGFmdGVyIGhhbmRsaW5n DQo+IC1uYW1lc3BhY2VzLg0KPiAtDQo+IC1UaGVyZSB3ZXJlIHR3byBidWdzIHdoZXJlIHBh cmFtZXRlci1lbnRpdHkgcmVmZXJlbmNlcyBjb3VsZCBsZWFkIHRvIGFuDQo+IC11bmV4cGVj dGVkIGNoYW5nZSBvZiB0aGUgaW5wdXQgYnVmZmVyIGluIHhtbFBhcnNlTmFtZUNvbXBsZXgg YW5kDQo+IC14bWxEaWN0TG9va3VwIGJlaW5nIGNhbGxlZCB3aXRoIGFuIGludmFsaWQgcG9p bnRlci4NCj4gLQ0KPiAtDQo+IC1VcHN0cmVhbS1TdGF0dXM6IEJhY2twb3J0DQo+IC0gLSBb aHR0cHM6Ly9naXQuZ25vbWUub3JnL2Jyb3dzZS9saWJ4bWwyL2NvbW1pdC8/aWQ9MDdiNzQy OGI2OWMzNjg2MTFkMjE1YTE0MGZlNjMwYjJkMWU2MTM0OV0NCj4gLSAtIFtodHRwczovL2dp dC5nbm9tZS5vcmcvYnJvd3NlL2xpYnhtbDIvY29tbWl0Lz9pZD04NTVjMTllZmI3Y2QzMGQ5 MjdkNjczYjM2NTg1NjNjNDk1OWNhNmYwXQ0KPiAtU2lnbmVkLW9mZi1ieTogQW5kcmVqIFZh bGVrIDxhbmRyZWoudmFsZWtAc2llbWVucy5jb20+DQo+IC0NCj4gLWRpZmYgLS1naXQgYS9w YXJzZXIuYyBiL3BhcnNlci5jDQo+IC1pbmRleCA2MDlhMjcwLi43NDAxNmUzIDEwMDY0NA0K PiAtLS0tIGEvcGFyc2VyLmMNCj4gLSsrKyBiL3BhcnNlci5jDQo+IC1AQCAtNDMsNiArNDMs NyBAQA0KPiAtICNpbmNsdWRlIDxsaW1pdHMuaD4NCj4gLSAjaW5jbHVkZSA8c3RyaW5nLmg+ DQo+IC0gI2luY2x1ZGUgPHN0ZGFyZy5oPg0KPiAtKyNpbmNsdWRlIDxzdGRkZWYuaD4NCj4g LSAjaW5jbHVkZSA8bGlieG1sL3htbG1lbW9yeS5oPg0KPiAtICNpbmNsdWRlIDxsaWJ4bWwv dGhyZWFkcy5oPg0KPiAtICNpbmNsdWRlIDxsaWJ4bWwvZ2xvYmFscy5oPg0KPiAtQEAgLTkz NzcsOCArOTM3OCw3IEBAIHhtbFBhcnNlU3RhcnRUYWcyKHhtbFBhcnNlckN0eHRQdHIgY3R4 dCwgY29uc3QgeG1sQ2hhciAqKnByZWYsDQo+IC0gICAgIGNvbnN0IHhtbENoYXIgKiphdHRz ID0gY3R4dC0+YXR0czsNCj4gLSAgICAgaW50IG1heGF0dHMgPSBjdHh0LT5tYXhhdHRzOw0K PiAtICAgICBpbnQgbnJhdHRzLCBuYmF0dHMsIG5iZGVmOw0KPiAtLSAgICBpbnQgaSwgaiwg bmJOcywgYXR0dmFsLCBvbGRsaW5lLCBvbGRjb2wsIGlucHV0TnI7DQo+IC0tICAgIGNvbnN0 IHhtbENoYXIgKmJhc2U7DQo+IC0rICAgIGludCBpLCBqLCBuYk5zLCBhdHR2YWw7DQo+IC0g ICAgIHVuc2lnbmVkIGxvbmcgY3VyOw0KPiAtICAgICBpbnQgbnNOciA9IGN0eHQtPm5zTnI7 DQo+IC0gDQo+IC1AQCAtOTM5MiwxMyArOTM5Miw4IEBAIHhtbFBhcnNlU3RhcnRUYWcyKHht bFBhcnNlckN0eHRQdHIgY3R4dCwgY29uc3QgeG1sQ2hhciAqKnByZWYsDQo+IC0gICAgICAq ICAgICAgIFRoZSBTaHJpbmtpbmcgaXMgb25seSBwb3NzaWJsZSBvbmNlIHRoZSBmdWxsIHNl dCBvZiBhdHRyaWJ1dGUNCj4gLSAgICAgICogICAgICAgY2FsbGJhY2tzIGhhdmUgYmVlbiBk b25lLg0KPiAtICAgICAgKi8NCj4gLS1yZXBhcnNlOg0KPiAtICAgICBTSFJJTks7DQo+IC0t ICAgIGJhc2UgPSBjdHh0LT5pbnB1dC0+YmFzZTsNCj4gLSAgICAgY3VyID0gY3R4dC0+aW5w dXQtPmN1ciAtIGN0eHQtPmlucHV0LT5iYXNlOw0KPiAtLSAgICBpbnB1dE5yID0gY3R4dC0+ aW5wdXROcjsNCj4gLS0gICAgb2xkbGluZSA9IGN0eHQtPmlucHV0LT5saW5lOw0KPiAtLSAg ICBvbGRjb2wgPSBjdHh0LT5pbnB1dC0+Y29sOw0KPiAtICAgICBuYmF0dHMgPSAwOw0KPiAt ICAgICBucmF0dHMgPSAwOw0KPiAtICAgICBuYmRlZiA9IDA7DQo+IC1AQCAtOTQyMiw4ICs5 NDE3LDYgQEAgcmVwYXJzZToNCj4gLSAgICAgICovDQo+IC0gICAgIFNLSVBfQkxBTktTOw0K PiAtICAgICBHUk9XOw0KPiAtLSAgICBpZiAoKGN0eHQtPmlucHV0LT5iYXNlICE9IGJhc2Up IHx8IChpbnB1dE5yICE9IGN0eHQtPmlucHV0TnIpKQ0KPiAtLSAgICAgICAgZ290byBiYXNl X2NoYW5nZWQ7DQo+IC0gDQo+IC0gICAgIHdoaWxlICgoKFJBVyAhPSAnPicpICYmDQo+IC0g CSAgICgoUkFXICE9ICcvJykgfHwgKE5YVCgxKSAhPSAnPicpKSAmJg0KPiAtQEAgLTk0MzQs MjAzICs5NDI3LDE3NCBAQCByZXBhcnNlOg0KPiAtIA0KPiAtIAlhdHRuYW1lID0geG1sUGFy c2VBdHRyaWJ1dGUyKGN0eHQsIHByZWZpeCwgbG9jYWxuYW1lLA0KPiAtIAkgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICZhcHJlZml4LCAmYXR0dmFsdWUsICZsZW4sICZhbGxvYyk7 DQo+IC0tCWlmICgoY3R4dC0+aW5wdXQtPmJhc2UgIT0gYmFzZSkgfHwgKGlucHV0TnIgIT0g Y3R4dC0+aW5wdXROcikpIHsNCj4gLS0JICAgIGlmICgoYXR0dmFsdWUgIT0gTlVMTCkgJiYg KGFsbG9jICE9IDApKQ0KPiAtLQkgICAgICAgIHhtbEZyZWUoYXR0dmFsdWUpOw0KPiAtLQkg ICAgYXR0dmFsdWUgPSBOVUxMOw0KPiAtLQkgICAgZ290byBiYXNlX2NoYW5nZWQ7DQo+IC0t CX0NCj4gLS0gICAgICAgIGlmICgoYXR0bmFtZSAhPSBOVUxMKSAmJiAoYXR0dmFsdWUgIT0g TlVMTCkpIHsNCj4gLS0JICAgIGlmIChsZW4gPCAwKSBsZW4gPSB4bWxTdHJsZW4oYXR0dmFs dWUpOw0KPiAtLSAgICAgICAgICAgIGlmICgoYXR0bmFtZSA9PSBjdHh0LT5zdHJfeG1sbnMp ICYmIChhcHJlZml4ID09IE5VTEwpKSB7DQo+IC0tCSAgICAgICAgY29uc3QgeG1sQ2hhciAq VVJMID0geG1sRGljdExvb2t1cChjdHh0LT5kaWN0LCBhdHR2YWx1ZSwgbGVuKTsNCj4gLS0J CXhtbFVSSVB0ciB1cmk7DQo+IC0tDQo+IC0tICAgICAgICAgICAgICAgIGlmIChVUkwgPT0g TlVMTCkgew0KPiAtLQkJICAgIHhtbEVyck1lbW9yeShjdHh0LCAiZGljdGlvbmFyeSBhbGxv Y2F0aW9uIGZhaWx1cmUiKTsNCj4gLS0JCSAgICBpZiAoKGF0dHZhbHVlICE9IE5VTEwpICYm IChhbGxvYyAhPSAwKSkNCj4gLS0JCQl4bWxGcmVlKGF0dHZhbHVlKTsNCj4gLS0JCSAgICBy ZXR1cm4oTlVMTCk7DQo+IC0tCQl9DQo+IC0tICAgICAgICAgICAgICAgIGlmICgqVVJMICE9 IDApIHsNCj4gLS0JCSAgICB1cmkgPSB4bWxQYXJzZVVSSSgoY29uc3QgY2hhciAqKSBVUkwp Ow0KPiAtLQkJICAgIGlmICh1cmkgPT0gTlVMTCkgew0KPiAtLQkJCXhtbE5zRXJyKGN0eHQs IFhNTF9XQVJfTlNfVVJJLA0KPiAtLQkJCSAgICAgICAgICJ4bWxuczogJyVzJyBpcyBub3Qg YSB2YWxpZCBVUklcbiIsDQo+IC0tCQkJCQkgICBVUkwsIE5VTEwsIE5VTEwpOw0KPiAtLQkJ ICAgIH0gZWxzZSB7DQo+IC0tCQkJaWYgKHVyaS0+c2NoZW1lID09IE5VTEwpIHsNCj4gLS0J CQkgICAgeG1sTnNXYXJuKGN0eHQsIFhNTF9XQVJfTlNfVVJJX1JFTEFUSVZFLA0KPiAtLQkJ CQkgICAgICAieG1sbnM6IFVSSSAlcyBpcyBub3QgYWJzb2x1dGVcbiIsDQo+IC0tCQkJCSAg ICAgIFVSTCwgTlVMTCwgTlVMTCk7DQo+IC0tCQkJfQ0KPiAtLQkJCXhtbEZyZWVVUkkodXJp KTsNCj4gLS0JCSAgICB9DQo+IC0tCQkgICAgaWYgKFVSTCA9PSBjdHh0LT5zdHJfeG1sX25z KSB7DQo+IC0tCQkJaWYgKGF0dG5hbWUgIT0gY3R4dC0+c3RyX3htbCkgew0KPiAtLQkJCSAg ICB4bWxOc0VycihjdHh0LCBYTUxfTlNfRVJSX1hNTF9OQU1FU1BBQ0UsDQo+IC0tCQkJICJ4 bWwgbmFtZXNwYWNlIFVSSSBjYW5ub3QgYmUgdGhlIGRlZmF1bHQgbmFtZXNwYWNlXG4iLA0K PiAtLQkJCQkgICAgIE5VTEwsIE5VTEwsIE5VTEwpOw0KPiAtLQkJCX0NCj4gLS0JCQlnb3Rv IHNraXBfZGVmYXVsdF9uczsNCj4gLS0JCSAgICB9DQo+IC0tCQkgICAgaWYgKChsZW4gPT0g MjkpICYmDQo+IC0tCQkJKHhtbFN0ckVxdWFsKFVSTCwNCj4gLS0JCQkJIEJBRF9DQVNUICJo dHRwOi8vd3d3LnczLm9yZy8yMDAwL3htbG5zLyIpKSkgew0KPiAtLQkJCXhtbE5zRXJyKGN0 eHQsIFhNTF9OU19FUlJfWE1MX05BTUVTUEFDRSwNCj4gLS0JCQkgICAgICJyZXVzZSBvZiB0 aGUgeG1sbnMgbmFtZXNwYWNlIG5hbWUgaXMgZm9yYmlkZGVuXG4iLA0KPiAtLQkJCQkgTlVM TCwgTlVMTCwgTlVMTCk7DQo+IC0tCQkJZ290byBza2lwX2RlZmF1bHRfbnM7DQo+IC0tCQkg ICAgfQ0KPiAtLQkJfQ0KPiAtLQkJLyoNCj4gLS0JCSAqIGNoZWNrIHRoYXQgaXQncyBub3Qg YSBkZWZpbmVkIG5hbWVzcGFjZQ0KPiAtLQkJICovDQo+IC0tCQlmb3IgKGogPSAxO2ogPD0g bmJOcztqKyspDQo+IC0tCQkgICAgaWYgKGN0eHQtPm5zVGFiW2N0eHQtPm5zTnIgLSAyICog al0gPT0gTlVMTCkNCj4gLS0JCQlicmVhazsNCj4gLS0JCWlmIChqIDw9IG5iTnMpDQo+IC0t CQkgICAgeG1sRXJyQXR0cmlidXRlRHVwKGN0eHQsIE5VTEwsIGF0dG5hbWUpOw0KPiAtLQkJ ZWxzZQ0KPiAtLQkJICAgIGlmIChuc1B1c2goY3R4dCwgTlVMTCwgVVJMKSA+IDApIG5iTnMr KzsNCj4gLS1za2lwX2RlZmF1bHRfbnM6DQo+IC0tCQlpZiAoKGF0dHZhbHVlICE9IE5VTEwp ICYmIChhbGxvYyAhPSAwKSkgew0KPiAtLQkJICAgIHhtbEZyZWUoYXR0dmFsdWUpOw0KPiAt LQkJICAgIGF0dHZhbHVlID0gTlVMTDsNCj4gLS0JCX0NCj4gLS0JCWlmICgoUkFXID09ICc+ JykgfHwgKCgoUkFXID09ICcvJykgJiYgKE5YVCgxKSA9PSAnPicpKSkpDQo+IC0tCQkgICAg YnJlYWs7DQo+IC0tCQlpZiAoIUlTX0JMQU5LX0NIKFJBVykpIHsNCj4gLS0JCSAgICB4bWxG YXRhbEVyck1zZyhjdHh0LCBYTUxfRVJSX1NQQUNFX1JFUVVJUkVELA0KPiAtLQkJCQkgICAi YXR0cmlidXRlcyBjb25zdHJ1Y3QgZXJyb3JcbiIpOw0KPiAtLQkJICAgIGJyZWFrOw0KPiAt LQkJfQ0KPiAtLQkJU0tJUF9CTEFOS1M7DQo+IC0tCQlpZiAoKGN0eHQtPmlucHV0LT5iYXNl ICE9IGJhc2UpIHx8IChpbnB1dE5yICE9IGN0eHQtPmlucHV0TnIpKQ0KPiAtLQkJICAgIGdv dG8gYmFzZV9jaGFuZ2VkOw0KPiAtLQkJY29udGludWU7DQo+IC0tCSAgICB9DQo+IC0tICAg ICAgICAgICAgaWYgKGFwcmVmaXggPT0gY3R4dC0+c3RyX3htbG5zKSB7DQo+IC0tCSAgICAg ICAgY29uc3QgeG1sQ2hhciAqVVJMID0geG1sRGljdExvb2t1cChjdHh0LT5kaWN0LCBhdHR2 YWx1ZSwgbGVuKTsNCj4gLS0JCXhtbFVSSVB0ciB1cmk7DQo+IC0tDQo+IC0tICAgICAgICAg ICAgICAgIGlmIChhdHRuYW1lID09IGN0eHQtPnN0cl94bWwpIHsNCj4gLS0JCSAgICBpZiAo VVJMICE9IGN0eHQtPnN0cl94bWxfbnMpIHsNCj4gLS0JCSAgICAgICAgeG1sTnNFcnIoY3R4 dCwgWE1MX05TX0VSUl9YTUxfTkFNRVNQQUNFLA0KPiAtLQkJCSAgICAgICAgICJ4bWwgbmFt ZXNwYWNlIHByZWZpeCBtYXBwZWQgdG8gd3JvbmcgVVJJXG4iLA0KPiAtLQkJCSAgICAgICAg IE5VTEwsIE5VTEwsIE5VTEwpOw0KPiAtLQkJICAgIH0NCj4gLS0JCSAgICAvKg0KPiAtLQkJ ICAgICAqIERvIG5vdCBrZWVwIGEgbmFtZXNwYWNlIGRlZmluaXRpb24gbm9kZQ0KPiAtLQkJ ICAgICAqLw0KPiAtLQkJICAgIGdvdG8gc2tpcF9uczsNCj4gLS0JCX0NCj4gLSsgICAgICAg IGlmICgoYXR0bmFtZSA9PSBOVUxMKSB8fCAoYXR0dmFsdWUgPT0gTlVMTCkpDQo+IC0rICAg ICAgICAgICAgZ290byBuZXh0X2F0dHI7DQo+IC0rCWlmIChsZW4gPCAwKSBsZW4gPSB4bWxT dHJsZW4oYXR0dmFsdWUpOw0KPiAtKw0KPiAtKyAgICAgICAgaWYgKChhdHRuYW1lID09IGN0 eHQtPnN0cl94bWxucykgJiYgKGFwcmVmaXggPT0gTlVMTCkpIHsNCj4gLSsgICAgICAgICAg ICBjb25zdCB4bWxDaGFyICpVUkwgPSB4bWxEaWN0TG9va3VwKGN0eHQtPmRpY3QsIGF0dHZh bHVlLCBsZW4pOw0KPiAtKyAgICAgICAgICAgIHhtbFVSSVB0ciB1cmk7DQo+IC0rDQo+IC0r ICAgICAgICAgICAgaWYgKFVSTCA9PSBOVUxMKSB7DQo+IC0rICAgICAgICAgICAgICAgIHht bEVyck1lbW9yeShjdHh0LCAiZGljdGlvbmFyeSBhbGxvY2F0aW9uIGZhaWx1cmUiKTsNCj4g LSsgICAgICAgICAgICAgICAgaWYgKChhdHR2YWx1ZSAhPSBOVUxMKSAmJiAoYWxsb2MgIT0g MCkpDQo+IC0rICAgICAgICAgICAgICAgICAgICB4bWxGcmVlKGF0dHZhbHVlKTsNCj4gLSsg ICAgICAgICAgICAgICAgcmV0dXJuKE5VTEwpOw0KPiAtKyAgICAgICAgICAgIH0NCj4gLSsg ICAgICAgICAgICBpZiAoKlVSTCAhPSAwKSB7DQo+IC0rICAgICAgICAgICAgICAgIHVyaSA9 IHhtbFBhcnNlVVJJKChjb25zdCBjaGFyICopIFVSTCk7DQo+IC0rICAgICAgICAgICAgICAg IGlmICh1cmkgPT0gTlVMTCkgew0KPiAtKyAgICAgICAgICAgICAgICAgICAgeG1sTnNFcnIo Y3R4dCwgWE1MX1dBUl9OU19VUkksDQo+IC0rICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAieG1sbnM6ICclcycgaXMgbm90IGEgdmFsaWQgVVJJXG4iLA0KPiAtKyAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIFVSTCwgTlVMTCwgTlVMTCk7DQo+IC0rICAg ICAgICAgICAgICAgIH0gZWxzZSB7DQo+IC0rICAgICAgICAgICAgICAgICAgICBpZiAodXJp LT5zY2hlbWUgPT0gTlVMTCkgew0KPiAtKyAgICAgICAgICAgICAgICAgICAgICAgIHhtbE5z V2FybihjdHh0LCBYTUxfV0FSX05TX1VSSV9SRUxBVElWRSwNCj4gLSsgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgInhtbG5zOiBVUkkgJXMgaXMgbm90IGFic29sdXRlXG4i LA0KPiAtKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBVUkwsIE5VTEwsIE5V TEwpOw0KPiAtKyAgICAgICAgICAgICAgICAgICAgfQ0KPiAtKyAgICAgICAgICAgICAgICAg ICAgeG1sRnJlZVVSSSh1cmkpOw0KPiAtKyAgICAgICAgICAgICAgICB9DQo+IC0gICAgICAg ICAgICAgICAgIGlmIChVUkwgPT0gY3R4dC0+c3RyX3htbF9ucykgew0KPiAtLQkJICAgIGlm IChhdHRuYW1lICE9IGN0eHQtPnN0cl94bWwpIHsNCj4gLS0JCSAgICAgICAgeG1sTnNFcnIo Y3R4dCwgWE1MX05TX0VSUl9YTUxfTkFNRVNQQUNFLA0KPiAtLQkJCSAgICAgICAgICJ4bWwg bmFtZXNwYWNlIFVSSSBtYXBwZWQgdG8gd3JvbmcgcHJlZml4XG4iLA0KPiAtLQkJCSAgICAg ICAgIE5VTEwsIE5VTEwsIE5VTEwpOw0KPiAtLQkJICAgIH0NCj4gLS0JCSAgICBnb3RvIHNr aXBfbnM7DQo+IC0tCQl9DQo+IC0tICAgICAgICAgICAgICAgIGlmIChhdHRuYW1lID09IGN0 eHQtPnN0cl94bWxucykgew0KPiAtLQkJICAgIHhtbE5zRXJyKGN0eHQsIFhNTF9OU19FUlJf WE1MX05BTUVTUEFDRSwNCj4gLS0JCQkgICAgICJyZWRlZmluaXRpb24gb2YgdGhlIHhtbG5z IHByZWZpeCBpcyBmb3JiaWRkZW5cbiIsDQo+IC0tCQkJICAgICBOVUxMLCBOVUxMLCBOVUxM KTsNCj4gLS0JCSAgICBnb3RvIHNraXBfbnM7DQo+IC0tCQl9DQo+IC0tCQlpZiAoKGxlbiA9 PSAyOSkgJiYNCj4gLS0JCSAgICAoeG1sU3RyRXF1YWwoVVJMLA0KPiAtLQkJICAgICAgICAg ICAgICAgICBCQURfQ0FTVCAiaHR0cDovL3d3dy53My5vcmcvMjAwMC94bWxucy8iKSkpIHsN Cj4gLS0JCSAgICB4bWxOc0VycihjdHh0LCBYTUxfTlNfRVJSX1hNTF9OQU1FU1BBQ0UsDQo+ IC0tCQkJICAgICAicmV1c2Ugb2YgdGhlIHhtbG5zIG5hbWVzcGFjZSBuYW1lIGlzIGZvcmJp ZGRlblxuIiwNCj4gLS0JCQkgICAgIE5VTEwsIE5VTEwsIE5VTEwpOw0KPiAtLQkJICAgIGdv dG8gc2tpcF9uczsNCj4gLS0JCX0NCj4gLS0JCWlmICgoVVJMID09IE5VTEwpIHx8IChVUkxb MF0gPT0gMCkpIHsNCj4gLS0JCSAgICB4bWxOc0VycihjdHh0LCBYTUxfTlNfRVJSX1hNTF9O QU1FU1BBQ0UsDQo+IC0tCQkgICAgICAgICAgICAgInhtbG5zOiVzOiBFbXB0eSBYTUwgbmFt ZXNwYWNlIGlzIG5vdCBhbGxvd2VkXG4iLA0KPiAtLQkJCSAgICAgICAgICBhdHRuYW1lLCBO VUxMLCBOVUxMKTsNCj4gLS0JCSAgICBnb3RvIHNraXBfbnM7DQo+IC0tCQl9IGVsc2Ugew0K PiAtLQkJICAgIHVyaSA9IHhtbFBhcnNlVVJJKChjb25zdCBjaGFyICopIFVSTCk7DQo+IC0t CQkgICAgaWYgKHVyaSA9PSBOVUxMKSB7DQo+IC0tCQkJeG1sTnNFcnIoY3R4dCwgWE1MX1dB Ul9OU19VUkksDQo+IC0tCQkJICAgICAieG1sbnM6JXM6ICclcycgaXMgbm90IGEgdmFsaWQg VVJJXG4iLA0KPiAtLQkJCQkJICAgYXR0bmFtZSwgVVJMLCBOVUxMKTsNCj4gLS0JCSAgICB9 IGVsc2Ugew0KPiAtLQkJCWlmICgoY3R4dC0+cGVkYW50aWMpICYmICh1cmktPnNjaGVtZSA9 PSBOVUxMKSkgew0KPiAtLQkJCSAgICB4bWxOc1dhcm4oY3R4dCwgWE1MX1dBUl9OU19VUklf UkVMQVRJVkUsDQo+IC0tCQkJCSAgICAgICJ4bWxuczolczogVVJJICVzIGlzIG5vdCBhYnNv bHV0ZVxuIiwNCj4gLS0JCQkJICAgICAgYXR0bmFtZSwgVVJMLCBOVUxMKTsNCj4gLS0JCQl9 DQo+IC0tCQkJeG1sRnJlZVVSSSh1cmkpOw0KPiAtLQkJICAgIH0NCj4gLS0JCX0NCj4gLS0N Cj4gLS0JCS8qDQo+IC0tCQkgKiBjaGVjayB0aGF0IGl0J3Mgbm90IGEgZGVmaW5lZCBuYW1l c3BhY2UNCj4gLS0JCSAqLw0KPiAtLQkJZm9yIChqID0gMTtqIDw9IG5iTnM7aisrKQ0KPiAt LQkJICAgIGlmIChjdHh0LT5uc1RhYltjdHh0LT5uc05yIC0gMiAqIGpdID09IGF0dG5hbWUp DQo+IC0tCQkJYnJlYWs7DQo+IC0tCQlpZiAoaiA8PSBuYk5zKQ0KPiAtLQkJICAgIHhtbEVy ckF0dHJpYnV0ZUR1cChjdHh0LCBhcHJlZml4LCBhdHRuYW1lKTsNCj4gLS0JCWVsc2UNCj4g LS0JCSAgICBpZiAobnNQdXNoKGN0eHQsIGF0dG5hbWUsIFVSTCkgPiAwKSBuYk5zKys7DQo+ IC0tc2tpcF9uczoNCj4gLS0JCWlmICgoYXR0dmFsdWUgIT0gTlVMTCkgJiYgKGFsbG9jICE9 IDApKSB7DQo+IC0tCQkgICAgeG1sRnJlZShhdHR2YWx1ZSk7DQo+IC0tCQkgICAgYXR0dmFs dWUgPSBOVUxMOw0KPiAtLQkJfQ0KPiAtLQkJaWYgKChSQVcgPT0gJz4nKSB8fCAoKChSQVcg PT0gJy8nKSAmJiAoTlhUKDEpID09ICc+JykpKSkNCj4gLS0JCSAgICBicmVhazsNCj4gLS0J CWlmICghSVNfQkxBTktfQ0goUkFXKSkgew0KPiAtLQkJICAgIHhtbEZhdGFsRXJyTXNnKGN0 eHQsIFhNTF9FUlJfU1BBQ0VfUkVRVUlSRUQsDQo+IC0tCQkJCSAgICJhdHRyaWJ1dGVzIGNv bnN0cnVjdCBlcnJvclxuIik7DQo+IC0tCQkgICAgYnJlYWs7DQo+IC0tCQl9DQo+IC0tCQlT S0lQX0JMQU5LUzsNCj4gLS0JCWlmICgoY3R4dC0+aW5wdXQtPmJhc2UgIT0gYmFzZSkgfHwg KGlucHV0TnIgIT0gY3R4dC0+aW5wdXROcikpDQo+IC0tCQkgICAgZ290byBiYXNlX2NoYW5n ZWQ7DQo+IC0tCQljb250aW51ZTsNCj4gLS0JICAgIH0NCj4gLSsgICAgICAgICAgICAgICAg ICAgIGlmIChhdHRuYW1lICE9IGN0eHQtPnN0cl94bWwpIHsNCj4gLSsgICAgICAgICAgICAg ICAgICAgICAgICB4bWxOc0VycihjdHh0LCBYTUxfTlNfRVJSX1hNTF9OQU1FU1BBQ0UsDQo+ IC0rICAgICAgICAgICAgICAgICAgICAgInhtbCBuYW1lc3BhY2UgVVJJIGNhbm5vdCBiZSB0 aGUgZGVmYXVsdCBuYW1lc3BhY2VcbiIsDQo+IC0rICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgTlVMTCwgTlVMTCwgTlVMTCk7DQo+IC0rICAgICAgICAgICAgICAgICAgICB9 DQo+IC0rICAgICAgICAgICAgICAgICAgICBnb3RvIG5leHRfYXR0cjsNCj4gLSsgICAgICAg ICAgICAgICAgfQ0KPiAtKyAgICAgICAgICAgICAgICBpZiAoKGxlbiA9PSAyOSkgJiYNCj4g LSsgICAgICAgICAgICAgICAgICAgICh4bWxTdHJFcXVhbChVUkwsDQo+IC0rICAgICAgICAg ICAgICAgICAgICAgICAgICAgICBCQURfQ0FTVCAiaHR0cDovL3d3dy53My5vcmcvMjAwMC94 bWxucy8iKSkpIHsNCj4gLSsgICAgICAgICAgICAgICAgICAgIHhtbE5zRXJyKGN0eHQsIFhN TF9OU19FUlJfWE1MX05BTUVTUEFDRSwNCj4gLSsgICAgICAgICAgICAgICAgICAgICAgICAg InJldXNlIG9mIHRoZSB4bWxucyBuYW1lc3BhY2UgbmFtZSBpcyBmb3JiaWRkZW5cbiIsDQo+ IC0rICAgICAgICAgICAgICAgICAgICAgICAgICAgICBOVUxMLCBOVUxMLCBOVUxMKTsNCj4g LSsgICAgICAgICAgICAgICAgICAgIGdvdG8gbmV4dF9hdHRyOw0KPiAtKyAgICAgICAgICAg ICAgICB9DQo+IC0rICAgICAgICAgICAgfQ0KPiAtKyAgICAgICAgICAgIC8qDQo+IC0rICAg ICAgICAgICAgICogY2hlY2sgdGhhdCBpdCdzIG5vdCBhIGRlZmluZWQgbmFtZXNwYWNlDQo+ IC0rICAgICAgICAgICAgICovDQo+IC0rICAgICAgICAgICAgZm9yIChqID0gMTtqIDw9IG5i TnM7aisrKQ0KPiAtKyAgICAgICAgICAgICAgICBpZiAoY3R4dC0+bnNUYWJbY3R4dC0+bnNO ciAtIDIgKiBqXSA9PSBOVUxMKQ0KPiAtKyAgICAgICAgICAgICAgICAgICAgYnJlYWs7DQo+ IC0rICAgICAgICAgICAgaWYgKGogPD0gbmJOcykNCj4gLSsgICAgICAgICAgICAgICAgeG1s RXJyQXR0cmlidXRlRHVwKGN0eHQsIE5VTEwsIGF0dG5hbWUpOw0KPiAtKyAgICAgICAgICAg IGVsc2UNCj4gLSsgICAgICAgICAgICAgICAgaWYgKG5zUHVzaChjdHh0LCBOVUxMLCBVUkwp ID4gMCkgbmJOcysrOw0KPiAtKw0KPiAtKyAgICAgICAgfSBlbHNlIGlmIChhcHJlZml4ID09 IGN0eHQtPnN0cl94bWxucykgew0KPiAtKyAgICAgICAgICAgIGNvbnN0IHhtbENoYXIgKlVS TCA9IHhtbERpY3RMb29rdXAoY3R4dC0+ZGljdCwgYXR0dmFsdWUsIGxlbik7DQo+IC0rICAg ICAgICAgICAgeG1sVVJJUHRyIHVyaTsNCj4gLSsNCj4gLSsgICAgICAgICAgICBpZiAoYXR0 bmFtZSA9PSBjdHh0LT5zdHJfeG1sKSB7DQo+IC0rICAgICAgICAgICAgICAgIGlmIChVUkwg IT0gY3R4dC0+c3RyX3htbF9ucykgew0KPiAtKyAgICAgICAgICAgICAgICAgICAgeG1sTnNF cnIoY3R4dCwgWE1MX05TX0VSUl9YTUxfTkFNRVNQQUNFLA0KPiAtKyAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgInhtbCBuYW1lc3BhY2UgcHJlZml4IG1hcHBlZCB0byB3cm9uZyBV UklcbiIsDQo+IC0rICAgICAgICAgICAgICAgICAgICAgICAgICAgICBOVUxMLCBOVUxMLCBO VUxMKTsNCj4gLSsgICAgICAgICAgICAgICAgfQ0KPiAtKyAgICAgICAgICAgICAgICAvKg0K PiAtKyAgICAgICAgICAgICAgICAgKiBEbyBub3Qga2VlcCBhIG5hbWVzcGFjZSBkZWZpbml0 aW9uIG5vZGUNCj4gLSsgICAgICAgICAgICAgICAgICovDQo+IC0rICAgICAgICAgICAgICAg IGdvdG8gbmV4dF9hdHRyOw0KPiAtKyAgICAgICAgICAgIH0NCj4gLSsgICAgICAgICAgICBp ZiAoVVJMID09IGN0eHQtPnN0cl94bWxfbnMpIHsNCj4gLSsgICAgICAgICAgICAgICAgaWYg KGF0dG5hbWUgIT0gY3R4dC0+c3RyX3htbCkgew0KPiAtKyAgICAgICAgICAgICAgICAgICAg eG1sTnNFcnIoY3R4dCwgWE1MX05TX0VSUl9YTUxfTkFNRVNQQUNFLA0KPiAtKyAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgInhtbCBuYW1lc3BhY2UgVVJJIG1hcHBlZCB0byB3cm9u ZyBwcmVmaXhcbiIsDQo+IC0rICAgICAgICAgICAgICAgICAgICAgICAgICAgICBOVUxMLCBO VUxMLCBOVUxMKTsNCj4gLSsgICAgICAgICAgICAgICAgfQ0KPiAtKyAgICAgICAgICAgICAg ICBnb3RvIG5leHRfYXR0cjsNCj4gLSsgICAgICAgICAgICB9DQo+IC0rICAgICAgICAgICAg aWYgKGF0dG5hbWUgPT0gY3R4dC0+c3RyX3htbG5zKSB7DQo+IC0rICAgICAgICAgICAgICAg IHhtbE5zRXJyKGN0eHQsIFhNTF9OU19FUlJfWE1MX05BTUVTUEFDRSwNCj4gLSsgICAgICAg ICAgICAgICAgICAgICAgICAgInJlZGVmaW5pdGlvbiBvZiB0aGUgeG1sbnMgcHJlZml4IGlz IGZvcmJpZGRlblxuIiwNCj4gLSsgICAgICAgICAgICAgICAgICAgICAgICAgTlVMTCwgTlVM TCwgTlVMTCk7DQo+IC0rICAgICAgICAgICAgICAgIGdvdG8gbmV4dF9hdHRyOw0KPiAtKyAg ICAgICAgICAgIH0NCj4gLSsgICAgICAgICAgICBpZiAoKGxlbiA9PSAyOSkgJiYNCj4gLSsg ICAgICAgICAgICAgICAgKHhtbFN0ckVxdWFsKFVSTCwNCj4gLSsgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIEJBRF9DQVNUICJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3htbG5zLyIp KSkgew0KPiAtKyAgICAgICAgICAgICAgICB4bWxOc0VycihjdHh0LCBYTUxfTlNfRVJSX1hN TF9OQU1FU1BBQ0UsDQo+IC0rICAgICAgICAgICAgICAgICAgICAgICAgICJyZXVzZSBvZiB0 aGUgeG1sbnMgbmFtZXNwYWNlIG5hbWUgaXMgZm9yYmlkZGVuXG4iLA0KPiAtKyAgICAgICAg ICAgICAgICAgICAgICAgICBOVUxMLCBOVUxMLCBOVUxMKTsNCj4gLSsgICAgICAgICAgICAg ICAgZ290byBuZXh0X2F0dHI7DQo+IC0rICAgICAgICAgICAgfQ0KPiAtKyAgICAgICAgICAg IGlmICgoVVJMID09IE5VTEwpIHx8IChVUkxbMF0gPT0gMCkpIHsNCj4gLSsgICAgICAgICAg ICAgICAgeG1sTnNFcnIoY3R4dCwgWE1MX05TX0VSUl9YTUxfTkFNRVNQQUNFLA0KPiAtKyAg ICAgICAgICAgICAgICAgICAgICAgICAieG1sbnM6JXM6IEVtcHR5IFhNTCBuYW1lc3BhY2Ug aXMgbm90IGFsbG93ZWRcbiIsDQo+IC0rICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg YXR0bmFtZSwgTlVMTCwgTlVMTCk7DQo+IC0rICAgICAgICAgICAgICAgIGdvdG8gbmV4dF9h dHRyOw0KPiAtKyAgICAgICAgICAgIH0gZWxzZSB7DQo+IC0rICAgICAgICAgICAgICAgIHVy aSA9IHhtbFBhcnNlVVJJKChjb25zdCBjaGFyICopIFVSTCk7DQo+IC0rICAgICAgICAgICAg ICAgIGlmICh1cmkgPT0gTlVMTCkgew0KPiAtKyAgICAgICAgICAgICAgICAgICAgeG1sTnNF cnIoY3R4dCwgWE1MX1dBUl9OU19VUkksDQo+IC0rICAgICAgICAgICAgICAgICAgICAgICAg ICJ4bWxuczolczogJyVzJyBpcyBub3QgYSB2YWxpZCBVUklcbiIsDQo+IC0rICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYXR0bmFtZSwgVVJMLCBOVUxMKTsNCj4g LSsgICAgICAgICAgICAgICAgfSBlbHNlIHsNCj4gLSsgICAgICAgICAgICAgICAgICAgIGlm ICgoY3R4dC0+cGVkYW50aWMpICYmICh1cmktPnNjaGVtZSA9PSBOVUxMKSkgew0KPiAtKyAg ICAgICAgICAgICAgICAgICAgICAgIHhtbE5zV2FybihjdHh0LCBYTUxfV0FSX05TX1VSSV9S RUxBVElWRSwNCj4gLSsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgInhtbG5z OiVzOiBVUkkgJXMgaXMgbm90IGFic29sdXRlXG4iLA0KPiAtKyAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICBhdHRuYW1lLCBVUkwsIE5VTEwpOw0KPiAtKyAgICAgICAgICAg ICAgICAgICAgfQ0KPiAtKyAgICAgICAgICAgICAgICAgICAgeG1sRnJlZVVSSSh1cmkpOw0K PiAtKyAgICAgICAgICAgICAgICB9DQo+IC0rICAgICAgICAgICAgfQ0KPiAtIA0KPiAtLQkg ICAgLyoNCj4gLS0JICAgICAqIEFkZCB0aGUgcGFpciB0byBhdHRzDQo+IC0tCSAgICAgKi8N Cj4gLS0JICAgIGlmICgoYXR0cyA9PSBOVUxMKSB8fCAobmJhdHRzICsgNSA+IG1heGF0dHMp KSB7DQo+IC0tCSAgICAgICAgaWYgKHhtbEN0eHRHcm93QXR0cnMoY3R4dCwgbmJhdHRzICsg NSkgPCAwKSB7DQo+IC0tCQkgICAgaWYgKGF0dHZhbHVlW2xlbl0gPT0gMCkNCj4gLS0JCQl4 bWxGcmVlKGF0dHZhbHVlKTsNCj4gLS0JCSAgICBnb3RvIGZhaWxlZDsNCj4gLS0JCX0NCj4g LS0JICAgICAgICBtYXhhdHRzID0gY3R4dC0+bWF4YXR0czsNCj4gLS0JCWF0dHMgPSBjdHh0 LT5hdHRzOw0KPiAtLQkgICAgfQ0KPiAtLQkgICAgY3R4dC0+YXR0YWxsb2NzW25yYXR0cysr XSA9IGFsbG9jOw0KPiAtLQkgICAgYXR0c1tuYmF0dHMrK10gPSBhdHRuYW1lOw0KPiAtLQkg ICAgYXR0c1tuYmF0dHMrK10gPSBhcHJlZml4Ow0KPiAtLQkgICAgYXR0c1tuYmF0dHMrK10g PSBOVUxMOyAvKiB0aGUgVVJJIHdpbGwgYmUgZmV0Y2hlZCBsYXRlciAqLw0KPiAtLQkgICAg YXR0c1tuYmF0dHMrK10gPSBhdHR2YWx1ZTsNCj4gLS0JICAgIGF0dHZhbHVlICs9IGxlbjsN Cj4gLS0JICAgIGF0dHNbbmJhdHRzKytdID0gYXR0dmFsdWU7DQo+IC0tCSAgICAvKg0KPiAt LQkgICAgICogdGFnIGlmIHNvbWUgZGVhbGxvY2F0aW9uIGlzIG5lZWRlZA0KPiAtLQkgICAg ICovDQo+IC0tCSAgICBpZiAoYWxsb2MgIT0gMCkgYXR0dmFsID0gMTsNCj4gLS0JfSBlbHNl IHsNCj4gLS0JICAgIGlmICgoYXR0dmFsdWUgIT0gTlVMTCkgJiYgKGF0dHZhbHVlW2xlbl0g PT0gMCkpDQo+IC0tCQl4bWxGcmVlKGF0dHZhbHVlKTsNCj4gLS0JfQ0KPiAtKyAgICAgICAg ICAgIC8qDQo+IC0rICAgICAgICAgICAgICogY2hlY2sgdGhhdCBpdCdzIG5vdCBhIGRlZmlu ZWQgbmFtZXNwYWNlDQo+IC0rICAgICAgICAgICAgICovDQo+IC0rICAgICAgICAgICAgZm9y IChqID0gMTtqIDw9IG5iTnM7aisrKQ0KPiAtKyAgICAgICAgICAgICAgICBpZiAoY3R4dC0+ bnNUYWJbY3R4dC0+bnNOciAtIDIgKiBqXSA9PSBhdHRuYW1lKQ0KPiAtKyAgICAgICAgICAg ICAgICAgICAgYnJlYWs7DQo+IC0rICAgICAgICAgICAgaWYgKGogPD0gbmJOcykNCj4gLSsg ICAgICAgICAgICAgICAgeG1sRXJyQXR0cmlidXRlRHVwKGN0eHQsIGFwcmVmaXgsIGF0dG5h bWUpOw0KPiAtKyAgICAgICAgICAgIGVsc2UNCj4gLSsgICAgICAgICAgICAgICAgaWYgKG5z UHVzaChjdHh0LCBhdHRuYW1lLCBVUkwpID4gMCkgbmJOcysrOw0KPiAtKw0KPiAtKyAgICAg ICAgfSBlbHNlIHsNCj4gLSsgICAgICAgICAgICAvKg0KPiAtKyAgICAgICAgICAgICAqIEFk ZCB0aGUgcGFpciB0byBhdHRzDQo+IC0rICAgICAgICAgICAgICovDQo+IC0rICAgICAgICAg ICAgaWYgKChhdHRzID09IE5VTEwpIHx8IChuYmF0dHMgKyA1ID4gbWF4YXR0cykpIHsNCj4g LSsgICAgICAgICAgICAgICAgaWYgKHhtbEN0eHRHcm93QXR0cnMoY3R4dCwgbmJhdHRzICsg NSkgPCAwKSB7DQo+IC0rICAgICAgICAgICAgICAgICAgICBnb3RvIG5leHRfYXR0cjsNCj4g LSsgICAgICAgICAgICAgICAgfQ0KPiAtKyAgICAgICAgICAgICAgICBtYXhhdHRzID0gY3R4 dC0+bWF4YXR0czsNCj4gLSsgICAgICAgICAgICAgICAgYXR0cyA9IGN0eHQtPmF0dHM7DQo+ IC0rICAgICAgICAgICAgfQ0KPiAtKyAgICAgICAgICAgIGN0eHQtPmF0dGFsbG9jc1tucmF0 dHMrK10gPSBhbGxvYzsNCj4gLSsgICAgICAgICAgICBhdHRzW25iYXR0cysrXSA9IGF0dG5h bWU7DQo+IC0rICAgICAgICAgICAgYXR0c1tuYmF0dHMrK10gPSBhcHJlZml4Ow0KPiAtKyAg ICAgICAgICAgIC8qDQo+IC0rICAgICAgICAgICAgICogVGhlIG5hbWVzcGFjZSBVUkkgZmll bGQgaXMgdXNlZCB0ZW1wb3JhcmlseSB0byBwb2ludCBhdCB0aGUNCj4gLSsgICAgICAgICAg ICAgKiBiYXNlIG9mIHRoZSBjdXJyZW50IGlucHV0IGJ1ZmZlciBmb3Igbm9uLWFsbG9jZWQg YXR0cmlidXRlcy4NCj4gLSsgICAgICAgICAgICAgKiBXaGVuIHRoZSBpbnB1dCBidWZmZXIg aXMgcmVhbGxvY2F0ZWQsIGFsbCB0aGUgcG9pbnRlcnMgYmVjb21lDQo+IC0rICAgICAgICAg ICAgICogaW52YWxpZCwgYnV0IHRoZXkgY2FuIGJlIHJlY29uc3RydWN0ZWQgbGF0ZXIuDQo+ IC0rICAgICAgICAgICAgICovDQo+IC0rICAgICAgICAgICAgaWYgKGFsbG9jKQ0KPiAtKyAg ICAgICAgICAgICAgICBhdHRzW25iYXR0cysrXSA9IE5VTEw7DQo+IC0rICAgICAgICAgICAg ZWxzZQ0KPiAtKyAgICAgICAgICAgICAgICBhdHRzW25iYXR0cysrXSA9IGN0eHQtPmlucHV0 LT5iYXNlOw0KPiAtKyAgICAgICAgICAgIGF0dHNbbmJhdHRzKytdID0gYXR0dmFsdWU7DQo+ IC0rICAgICAgICAgICAgYXR0dmFsdWUgKz0gbGVuOw0KPiAtKyAgICAgICAgICAgIGF0dHNb bmJhdHRzKytdID0gYXR0dmFsdWU7DQo+IC0rICAgICAgICAgICAgLyoNCj4gLSsgICAgICAg ICAgICAgKiB0YWcgaWYgc29tZSBkZWFsbG9jYXRpb24gaXMgbmVlZGVkDQo+IC0rICAgICAg ICAgICAgICovDQo+IC0rICAgICAgICAgICAgaWYgKGFsbG9jICE9IDApIGF0dHZhbCA9IDE7 DQo+IC0rICAgICAgICAgICAgYXR0dmFsdWUgPSBOVUxMOyAvKiBtb3ZlZCBpbnRvIGF0dHMg Ki8NCj4gLSsgICAgICAgIH0NCj4gLSANCj4gLS1mYWlsZWQ6DQo+IC0rbmV4dF9hdHRyOg0K PiAtKyAgICAgICAgaWYgKChhdHR2YWx1ZSAhPSBOVUxMKSAmJiAoYWxsb2MgIT0gMCkpIHsN Cj4gLSsgICAgICAgICAgICB4bWxGcmVlKGF0dHZhbHVlKTsNCj4gLSsgICAgICAgICAgICBh dHR2YWx1ZSA9IE5VTEw7DQo+IC0rICAgICAgICB9DQo+IC0gDQo+IC0gCUdST1cNCj4gLSAg ICAgICAgIGlmIChjdHh0LT5pbnN0YXRlID09IFhNTF9QQVJTRVJfRU9GKQ0KPiAtICAgICAg ICAgICAgIGJyZWFrOw0KPiAtLQlpZiAoKGN0eHQtPmlucHV0LT5iYXNlICE9IGJhc2UpIHx8 IChpbnB1dE5yICE9IGN0eHQtPmlucHV0TnIpKQ0KPiAtLQkgICAgZ290byBiYXNlX2NoYW5n ZWQ7DQo+IC0gCWlmICgoUkFXID09ICc+JykgfHwgKCgoUkFXID09ICcvJykgJiYgKE5YVCgx KSA9PSAnPicpKSkpDQo+IC0gCSAgICBicmVhazsNCj4gLSAJaWYgKCFJU19CTEFOS19DSChS QVcpKSB7DQo+IC1AQCAtOTY0Niw4ICs5NjEwLDIwIEBAIGZhaWxlZDoNCj4gLSAJICAgIGJy ZWFrOw0KPiAtIAl9DQo+IC0gICAgICAgICBHUk9XOw0KPiAtLQlpZiAoKGN0eHQtPmlucHV0 LT5iYXNlICE9IGJhc2UpIHx8IChpbnB1dE5yICE9IGN0eHQtPmlucHV0TnIpKQ0KPiAtLQkg ICAgZ290byBiYXNlX2NoYW5nZWQ7DQo+IC0rICAgIH0NCj4gLSsNCj4gLSsgICAgLyogUmVj b25zdHJ1Y3QgYXR0cmlidXRlIHZhbHVlIHBvaW50ZXJzLiAqLw0KPiAtKyAgICBmb3IgKGkg PSAwLCBqID0gMDsgaiA8IG5yYXR0czsgaSArPSA1LCBqKyspIHsNCj4gLSsgICAgICAgIGlm IChhdHRzW2krMl0gIT0gTlVMTCkgew0KPiAtKyAgICAgICAgICAgIC8qDQo+IC0rICAgICAg ICAgICAgICogQXJpdGhtZXRpYyBvbiBkYW5nbGluZyBwb2ludGVycyBpcyB0ZWNobmljYWxs eSB1bmRlZmluZWQNCj4gLSsgICAgICAgICAgICAgKiBiZWhhdmlvciwgYnV0IHdlbGwuLi4N Cj4gLSsgICAgICAgICAgICAgKi8NCj4gLSsgICAgICAgICAgICBwdHJkaWZmX3Qgb2Zmc2V0 ID0gY3R4dC0+aW5wdXQtPmJhc2UgLSBhdHRzW2krMl07DQo+IC0rICAgICAgICAgICAgYXR0 c1tpKzJdICA9IE5VTEw7ICAgIC8qIFJlc2V0IHJlcHVycG9zZWQgbmFtZXNwYWNlIFVSSSAq Lw0KPiAtKyAgICAgICAgICAgIGF0dHNbaSszXSArPSBvZmZzZXQ7ICAvKiB2YWx1ZSAqLw0K PiAtKyAgICAgICAgICAgIGF0dHNbaSs0XSArPSBvZmZzZXQ7ICAvKiB2YWx1ZW5kICovDQo+ IC0rICAgICAgICB9DQo+IC0gICAgIH0NCj4gLSANCj4gLSAgICAgLyoNCj4gLUBAIC05ODA0 LDM0ICs5NzgwLDYgQEAgZmFpbGVkOg0KPiAtICAgICB9DQo+IC0gDQo+IC0gICAgIHJldHVy bihsb2NhbG5hbWUpOw0KPiAtLQ0KPiAtLWJhc2VfY2hhbmdlZDoNCj4gLS0gICAgLyoNCj4g LS0gICAgICogdGhlIGF0dHJpYnV0ZSBzdHJpbmdzIGFyZSB2YWxpZCBpaWYgdGhlIGJhc2Ug ZGlkbid0IGNoYW5nZWQNCj4gLS0gICAgICovDQo+IC0tICAgIGlmIChhdHR2YWwgIT0gMCkg ew0KPiAtLQlmb3IgKGkgPSAzLGogPSAwOyBqIDwgbnJhdHRzO2kgKz0gNSxqKyspDQo+IC0t CSAgICBpZiAoKGN0eHQtPmF0dGFsbG9jc1tqXSAhPSAwKSAmJiAoYXR0c1tpXSAhPSBOVUxM KSkNCj4gLS0JICAgICAgICB4bWxGcmVlKCh4bWxDaGFyICopIGF0dHNbaV0pOw0KPiAtLSAg ICB9DQo+IC0tDQo+IC0tICAgIC8qDQo+IC0tICAgICAqIFdlIGNhbid0IHN3aXRjaCBmcm9t IG9uZSBlbnRpdHkgdG8gYW5vdGhlciBpbiB0aGUgbWlkZGxlDQo+IC0tICAgICAqIG9mIGEg c3RhcnQgdGFnDQo+IC0tICAgICAqLw0KPiAtLSAgICBpZiAoaW5wdXROciAhPSBjdHh0LT5p bnB1dE5yKSB7DQo+IC0tICAgICAgICB4bWxGYXRhbEVyck1zZyhjdHh0LCBYTUxfRVJSX0VO VElUWV9CT1VOREFSWSwNCj4gLS0JCSAgICAiU3RhcnQgdGFnIGRvZXNuJ3Qgc3RhcnQgYW5k IHN0b3AgaW4gdGhlIHNhbWUgZW50aXR5XG4iKTsNCj4gLS0JcmV0dXJuKE5VTEwpOw0KPiAt LSAgICB9DQo+IC0tDQo+IC0tICAgIGN0eHQtPmlucHV0LT5jdXIgPSBjdHh0LT5pbnB1dC0+ YmFzZSArIGN1cjsNCj4gLS0gICAgY3R4dC0+aW5wdXQtPmxpbmUgPSBvbGRsaW5lOw0KPiAt LSAgICBjdHh0LT5pbnB1dC0+Y29sID0gb2xkY29sOw0KPiAtLSAgICBpZiAoY3R4dC0+d2Vs bEZvcm1lZCA9PSAxKSB7DQo+IC0tCWdvdG8gcmVwYXJzZTsNCj4gLS0gICAgfQ0KPiAtLSAg ICByZXR1cm4oTlVMTCk7DQo+IC0gfQ0KPiAtIA0KPiAtIC8qKg0KPiAtZGlmZiAtLWdpdCBh L3Jlc3VsdC9lcnJvcnMvNzU5Mzk4LnhtbC5lcnIgYi9yZXN1bHQvZXJyb3JzLzc1OTM5OC54 bWwuZXJyDQo+IC1pbmRleCBlMDhkOWJmLi5mNjAzNmEzIDEwMDY0NA0KPiAtLS0tIGEvcmVz dWx0L2Vycm9ycy83NTkzOTgueG1sLmVycg0KPiAtKysrIGIvcmVzdWx0L2Vycm9ycy83NTkz OTgueG1sLmVycg0KPiAtQEAgLTEsOSArMSwxMiBAQA0KPiAtIC4vdGVzdC9lcnJvcnMvNzU5 Mzk4LnhtbDoyMTA6IHBhcnNlciBlcnJvciA6IFN0YXJ0VGFnOiBpbnZhbGlkIGVsZW1lbnQg bmFtZQ0KPiAtIG5lZWQgdG8gd29ycnkgYWJvdXQgcGFyc2VycyB3aGk8ISBkb24ndCBleHBh bmQgUEVyZWZzIGZpbmRpbmcNCj4gLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg IF4NCj4gLS0uL3Rlc3QvZXJyb3JzLzc1OTM5OC54bWw6MzA5OiBwYXJzZXIgZXJyb3IgOiBP cGVuaW5nIGFuZCBlbmRpbmcgdGFnIG1pc21hdGNoOiBzcGVjIGxpbmUgNTAgYW5kIHRlcm1k ZWYNCj4gLSsuL3Rlc3QvZXJyb3JzLzc1OTM5OC54bWw6MzA5OiBwYXJzZXIgZXJyb3IgOiBP cGVuaW5nIGFuZCBlbmRpbmcgdGFnIG1pc21hdGNoOiDihJbihJbihJbihJbihJbihJbihJbi hJbihJbihJbihJbihJbihJbihJbihJbihJbihJbihJbihJbihJbihJbihJbihJbihJbihJbi hJbihJbihJbihJbihJbihJbihJbihJbihJbihJbihJbihJbihJbihJbihJbihJbihJbihJbi hJbihJbihJbihJbihJbihJbihJbihJbihJbihJbihJbihJbihJbihJbihJbihJbihJbihJbi hJbihJbihJbihJbihJbihJbihJbihJbihJbihJbihJbihJbihJbihJbihJbihJbihJbihJbi hJbihJbihJbihJbihJbihJbihJbihJbihJbihJbihJbihJbihJbihJbihJbihJbihJbihJbi hJbihJbihJbihJbihJbihJbihJbihJbihJbihJbihJbihJbihJbihJbihJbihJbihJbihJbi hJbihJbihJbihJbihJbihJbihJbihJbihJbihJbihJbihJbihJbihJbihJbihJbihJbihJbi hJbihJbihJbihJbihJbihJbihJbihJbihJbihJbihJbihJbihJbihJbihJbihJbihJbihJbi hJbihJbihJbihJbihJbihJbihJbihJbihJbihJbihJbihJbihJbihJbihJbihJbihJbihJbi hJbihJbihJbihJbihJbihJbihJbihJbihJbihJbihJbihJbihJbihJbihJbihJbihJbihJbi hJbihJbihJbihJbihJbihJbihJbihJbihJbihJbihJbihJbihJbihJbihJbihJbihJbihJbi hJbihJbihJbihJbihJbihJbihJbihJbihJbihJbihJbihJbihJbihJbihJbihJbihJbihJbi hJbihJbihJbihJbihJbihJbihJbihJbihJbihJbihJbihJbihJbihJbihJbihJbihJbihJbi hJbihJbihJbihJbihJbihJbihJbihJbihJbihJbihJbihJbihJbihJbihJbihJbihJbihJbi hJbihJbihJbihJbihJbihJbihJbihJbihJbihJbihJbihJbihJbihJbihJbihJbihJbihJbi hJbihJbihJbihJbihJbihJbihJbihJbihJbihJbihJbihJbihJbihJbihJbihJbihJbihJbi hJbihJbihJbihJbihJbihJbihJbihJbihJbihJbihJYNCj4gIOKEluKEluKEluKEluKEluKE luKEluKEluKEluKEluKEluKEluKEluKEluKEluKEluKEluKEluKEluKEluKEluKEluKEluKE luKEluKEluKEluKEluKEluKEluKEluKEluKEluKEluKEluKEluKEluKEluKEluKEluKEluKE luKEluKEluKEluKEluKEluKEluKEluKEluKEluKEluKEluKEluKEluKEluKEluKEluKEluKE luKEluKEluKEluKEluKEluKEluKEluKEluKEluKEluKEluKEluKEluKEluKEluKEluKEluKE luKEluKEluKEluKEluKEluKEluKEluKEluKEluKEluKEluKEluKEluKEluKEluKEluKEluKE luKEluKEluKEluKEluKEluKEluKEluKEluKEluKEluKEluKEluKEluKEluKEluKEluKEluKE luKEluKEluKEluKEluKEluKEluKEluKEluKEluKEluKEluKEluKEluKEluKEluKEluKEluKE luKEluKEluKEluKEluKEluKEluKEluKEluKEluKEluKEluKEluKEluKEluKEluKEluKEluKE luKEluKEluKEluKEluKEluKEluKEluKEluKEluKEluKEluKEluKEluKEluKEluKEluKEluKE luKEluKEluKEluKEluKEluKEluKEluKEluKEluKEluKEluKEluKEluKEluKEluKEluKEluKE luKEluKEluKEluKEluKEluKEluKEluKEluKEluKEluKEluKEluKEluKEluKEluKEluKEluKE luKEluKEluKEluKEluKEluKEluKEluKEluKEluKEluKEluKEluKEluKEluKEluKEluKEluKE luKEluKEluKEluKEluKEluKEluKEluKEluKEluKEluKEluKEluKEluKEluKEluKEluKEluKE luKEluKEluKEluKEluKEluKEluKEluKEluKEluKEluKEluKEluKEluKEluKEluKEluKEluKE luKEluKEluKEluKEluKEluKEluKEluKEluKEluKEluKEluKEluKEluKEluKEluKEluKEluKE luKEluKEluKEluKEluKEluKEluKEluKEluKEluKEluKEluKEluKEluKEluKEluKEluKEluKE luKEluKEluKEluKEluKEluKEluKEluKEluKEluKEluKEluKEluKEluKEluKEluKEluKEluKE luKEluKEluKEluKEluKEluKEluKEluKEluKEluKEluKEluKEluKEluKEluKEluKEluKEluKE luKEluKElu+/vQ0KPiAg77+977+94oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW 4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW 4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW 4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW 4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW 4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW 4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW 4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW 4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW 4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW 4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW 4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW 4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW 4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW 4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW 4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW 4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW 4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW 4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW4oSW77+9DQo+ICDvv73i hJbihJbihJbihJbihJbihJbihJbihJbihJbihJbihJbihJbihJbihJbihJbihJbihJbihJbi hJbihJbihJbihJbihJbihJbihJbihJbihJbihJbihJbihJbihJbihJbihJbihJbihJbihJbi hJbihJbihJbihJbihJbihJbihJbihJbihJbihJbihJbihJbihJbihJbihJbihJbihJbihJbi hJbihJbihJbihJbihJbihJbihJbihJbihJbihJbihJbihJbihJbihJbihJbihJbihJbihJbi hJbihJbihJbihJbihJbihJbihJbihJbihJbihJbihJbihJbihJbihJbihJbihJbihJbihJbi hJbihJbihJbihJbihJbihJbihJbihJbihJbihJbihJbihJbihJbihJbihJbihJbihJbihJbi hJbihJbihJbihJbihJbihJbihJbihJbihJbihJbihJbihJbihJbihJbihJbihJbihJbihJbi hJbihJbihJbihJbihJbihJbihJbihJbihJbihJbihJbihJZtIGxpbmUgMzA4IGFuZCB0ZXJt ZGVmDQo+IC0gYW5kIHByb3ZpZGUgYWNjZXNzIHRvIHRoZWlyIGNvbnRlbnQgYW5kIHN0cnVj dHVyZS48L3Rlcm1kZWY+IDx0ZXJtZGVmDQo+IC0gICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXg0KPiAtLS4vdGVzdC9lcnJv cnMvNzU5Mzk4LnhtbDozMDk6IHBhcnNlciBlcnJvciA6IEV4dHJhIGNvbnRlbnQgYXQgdGhl IGVuZCBvZiB0aGUgZG9jdW1lbnQNCj4gLS1hbmQgcHJvdmlkZSBhY2Nlc3MgdG8gdGhlaXIg Y29udGVudCBhbmQgc3RydWN0dXJlLjwvdGVybWRlZj4gPHRlcm1kZWYNCj4gLS0gICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg Xg0KPiAtKy4vdGVzdC9lcnJvcnMvNzU5Mzk4LnhtbDozMTQ6IHBhcnNlciBlcnJvciA6IE9w ZW5pbmcgYW5kIGVuZGluZyB0YWcgbWlzbWF0Y2g6IHNwZWMgbGluZSA1MCBhbmQgcA0KPiAt K2RhdGEgYW5kIHRoZSBpbmZvcm1hdGlvbiBpdCBtdXN0IHByb3ZpZGUgdG8gdGhlIGFwcGxp Y2F0aW9uLjwvcD4NCj4gLSsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgXg0KPiAtKy4vdGVzdC9lcnJvcnMvNzU5Mzk4 LnhtbDozMTY6IHBhcnNlciBlcnJvciA6IEV4dHJhIGNvbnRlbnQgYXQgdGhlIGVuZCBvZiB0 aGUgZG9jdW1lbnQNCj4gLSs8ZGl2MiBpZD0nc2VjLW9yaWdpbi1nb2Fscyc+DQo+IC0rXg0K PiAtZGlmZiAtLWdpdCBhL3Jlc3VsdC9lcnJvcnMvYXR0cjEueG1sLmVyciBiL3Jlc3VsdC9l cnJvcnMvYXR0cjEueG1sLmVycg0KPiAtaW5kZXggNGYwODUzOC4uYzRjNGZjOCAxMDA2NDQN Cj4gLS0tLSBhL3Jlc3VsdC9lcnJvcnMvYXR0cjEueG1sLmVycg0KPiAtKysrIGIvcmVzdWx0 L2Vycm9ycy9hdHRyMS54bWwuZXJyDQo+IC1AQCAtMSw2ICsxLDkgQEANCj4gLSAuL3Rlc3Qv ZXJyb3JzL2F0dHIxLnhtbDoyOiBwYXJzZXIgZXJyb3IgOiBBdHRWYWx1ZTogJyBleHBlY3Rl ZA0KPiAtIA0KPiAtIF4NCj4gLS0uL3Rlc3QvZXJyb3JzL2F0dHIxLnhtbDoxOiBwYXJzZXIg ZXJyb3IgOiBFeHRyYSBjb250ZW50IGF0IHRoZSBlbmQgb2YgdGhlIGRvY3VtZW50DQo+IC0t PGZvbyBmb289Im9vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v b29vb29vb29vb29vb29vb29vb29vb29vb28NCj4gLS0gXg0KPiAtKy4vdGVzdC9lcnJvcnMv YXR0cjEueG1sOjI6IHBhcnNlciBlcnJvciA6IGF0dHJpYnV0ZXMgY29uc3RydWN0IGVycm9y DQo+IC0rDQo+IC0rXg0KPiAtKy4vdGVzdC9lcnJvcnMvYXR0cjEueG1sOjI6IHBhcnNlciBl cnJvciA6IENvdWxkbid0IGZpbmQgZW5kIG9mIFN0YXJ0IFRhZyBmb28gbGluZSAxDQo+IC0r DQo+IC0rXg0KPiAtZGlmZiAtLWdpdCBhL3Jlc3VsdC9lcnJvcnMvYXR0cjIueG1sLmVyciBi L3Jlc3VsdC9lcnJvcnMvYXR0cjIueG1sLmVycg0KPiAtaW5kZXggYzhhOWM3ZC4uNzdlMzQy ZSAxMDA2NDQNCj4gLS0tLSBhL3Jlc3VsdC9lcnJvcnMvYXR0cjIueG1sLmVycg0KPiAtKysr IGIvcmVzdWx0L2Vycm9ycy9hdHRyMi54bWwuZXJyDQo+IC1AQCAtMSw2ICsxLDkgQEANCj4g LSAuL3Rlc3QvZXJyb3JzL2F0dHIyLnhtbDoyOiBwYXJzZXIgZXJyb3IgOiBBdHRWYWx1ZTog JyBleHBlY3RlZA0KPiAtIA0KPiAtIF4NCj4gLS0uL3Rlc3QvZXJyb3JzL2F0dHIyLnhtbDox OiBwYXJzZXIgZXJyb3IgOiBFeHRyYSBjb250ZW50IGF0IHRoZSBlbmQgb2YgdGhlIGRvY3Vt ZW50DQo+IC0tPGZvbyBmb289Ij5vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb28NCj4gLS0gXg0KPiAtKy4vdGVz dC9lcnJvcnMvYXR0cjIueG1sOjI6IHBhcnNlciBlcnJvciA6IGF0dHJpYnV0ZXMgY29uc3Ry dWN0IGVycm9yDQo+IC0rDQo+IC0rXg0KPiAtKy4vdGVzdC9lcnJvcnMvYXR0cjIueG1sOjI6 IHBhcnNlciBlcnJvciA6IENvdWxkbid0IGZpbmQgZW5kIG9mIFN0YXJ0IFRhZyBmb28gbGlu ZSAxDQo+IC0rDQo+IC0rXg0KPiAtZGlmZiAtLWdpdCBhL3Jlc3VsdC9lcnJvcnMvbmFtZTIu eG1sLmVyciBiL3Jlc3VsdC9lcnJvcnMvbmFtZTIueG1sLmVycg0KPiAtaW5kZXggYTY2NDlh MS4uOGE2YWNlZSAxMDA2NDQNCj4gLS0tLSBhL3Jlc3VsdC9lcnJvcnMvbmFtZTIueG1sLmVy cg0KPiAtKysrIGIvcmVzdWx0L2Vycm9ycy9uYW1lMi54bWwuZXJyDQo+IC1AQCAtMSw2ICsx LDkgQEANCj4gLSAuL3Rlc3QvZXJyb3JzL25hbWUyLnhtbDoyOiBwYXJzZXIgZXJyb3IgOiBT cGVjaWZpY2F0aW9uIG1hbmRhdGUgdmFsdWUgZm9yIGF0dHJpYnV0ZSBmb29vb29vb29vb29v b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb28NCj4gIG9vb29vb29vb29vb29v b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v b29vb29vb29vb28NCj4gIG9vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb28NCj4gIG9vb29vb29v b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v b29vb29vb29vb29vb29vb28NCj4gIG9vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb28NCj4gIG9v b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vbw0KPiAtIA0KPiAtIF4NCj4g LS0uL3Rlc3QvZXJyb3JzL25hbWUyLnhtbDoxOiBwYXJzZXIgZXJyb3IgOiBFeHRyYSBjb250 ZW50IGF0IHRoZSBlbmQgb2YgdGhlIGRvY3VtZW50DQo+IC0tPGZvbyBmb29vb29vb29vb29v b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v b29vb29vb28NCj4gLS0gXg0KPiAtKy4vdGVzdC9lcnJvcnMvbmFtZTIueG1sOjI6IHBhcnNl ciBlcnJvciA6IGF0dHJpYnV0ZXMgY29uc3RydWN0IGVycm9yDQo+IC0rDQo+IC0rXg0KPiAt Ky4vdGVzdC9lcnJvcnMvbmFtZTIueG1sOjI6IHBhcnNlciBlcnJvciA6IENvdWxkbid0IGZp bmQgZW5kIG9mIFN0YXJ0IFRhZyBmb28gbGluZSAxDQo+IC0rDQo+IC0rXg0KPiBkaWZmIC0t Z2l0IGEvbWV0YS9yZWNpcGVzLWNvcmUvbGlieG1sL2xpYnhtbDIvbGlieG1sMi1maXhfbm9k ZV9jb21wYXJpc29uLnBhdGNoIGIvbWV0YS9yZWNpcGVzLWNvcmUvbGlieG1sL2xpYnhtbDIv bGlieG1sMi1maXhfbm9kZV9jb21wYXJpc29uLnBhdGNoDQo+IGRlbGV0ZWQgZmlsZSBtb2Rl IDEwMDY0NA0KPiBpbmRleCA2NWY2YmVmLi4wMDAwMDAwDQo+IC0tLSBhL21ldGEvcmVjaXBl cy1jb3JlL2xpYnhtbC9saWJ4bWwyL2xpYnhtbDItZml4X25vZGVfY29tcGFyaXNvbi5wYXRj aA0KPiArKysgL2Rldi9udWxsDQo+IEBAIC0xLDY3ICswLDAgQEANCj4gLWxpYnhtbDItMi45 LjQ6IEZpeCBjb21wYXJpc29uIHdpdGggcm9vdCBub2RlIGluIHhtbFhQYXRoQ21wTm9kZXMg YW5kIE5VTEwgcG9pbnRlciBkZXJlZiBpbiBYUG9pbnRlcg0KPiAtDQo+IC14cGF0aDoNCj4g LSAtIENoZWNrIGZvciBlcnJvcnMgYWZ0ZXIgZXZhbHVhdGluZyBmaXJzdCBvcGVyYW5kLg0K PiAtIC0gQWRkIHNhbml0eSBjaGVjayBmb3IgZW1wdHkgc3RhY2suDQo+IC0gLSBJbmNsdWRl IGNvbXBhcmF0aW9uIGluIGNoYW5nZXMgZnJvbSB4bWxYUGF0aENtcE5vZGVzRXh0IHRvIHht bFhQYXRoQ21wTm9kZXMNCj4gLQ0KPiAtVXBzdHJlYW0tU3RhdHVzOiBCYWNrcG9ydA0KPiAt IC0gW2h0dHBzOi8vZ2l0Lmdub21lLm9yZy9icm93c2UvbGlieG1sMi9jb21taXQvP2lkPWMx ZDFmNzEyMTE5NDAzNjYwOGJmNTU1ZjA4ZDMwNjJhMzZmZDM0NGJdDQo+IC0gLSBbaHR0cHM6 Ly9naXQuZ25vbWUub3JnL2Jyb3dzZS9saWJ4bWwyL2NvbW1pdC8/aWQ9YTAwNTE5OTMzMGI4 NmRhZGExOWQxNjJjYWUxNWVmOWJkY2I2YmFhOF0NCj4gLUNWRTogQ1ZFLTIwMTYtNTEzMQ0K PiAtU2lnbmVkLW9mZi1ieTogQW5kcmVqIFZhbGVrIDxhbmRyZWoudmFsZWtAc2llbWVucy5j b20+DQo+IC1TaWduZWQtb2ZmLWJ5OiBQYXNjYWwgQmFjaCA8cGFzY2FsLmJhY2hAc2llbWVu cy5jb20+DQo+IC0NCj4gLWRpZmYgLS1naXQgYS9yZXN1bHQvWFBhdGgveHB0ci92aWRlcnJv ciBiL3Jlc3VsdC9YUGF0aC94cHRyL3ZpZGVycm9yDQo+IC1uZXcgZmlsZSBtb2RlIDEwMDY0 NA0KPiAtaW5kZXggMDAwMDAwMC4uZDU4OTg4Mg0KPiAtLS0tIC9kZXYvbnVsbA0KPiAtKysr IGIvcmVzdWx0L1hQYXRoL3hwdHIvdmlkZXJyb3INCj4gLUBAIC0wLDAgKzEsNCBAQA0KPiAt Kw0KPiAtKz09PT09PT09PT09PT09PT09PT09PT09PQ0KPiAtK0V4cHJlc3Npb246IHhwb2lu dGVyKG5vbi1leGlzdGluZy1mbigpL3JhbmdlLXRvKGlkKCdjaGFwdGVyMicpKSkNCj4gLStP YmplY3QgaXMgZW1wdHkgKE5VTEwpDQo+IC1kaWZmIC0tZ2l0IGEvdGVzdC9YUGF0aC94cHRy L3ZpZGVycm9yIGIvdGVzdC9YUGF0aC94cHRyL3ZpZGVycm9yDQo+IC1uZXcgZmlsZSBtb2Rl IDEwMDY0NA0KPiAtaW5kZXggMDAwMDAwMC4uZGE4YzUzYg0KPiAtLS0tIC9kZXYvbnVsbA0K PiAtKysrIGIvdGVzdC9YUGF0aC94cHRyL3ZpZGVycm9yDQo+IC1AQCAtMCwwICsxIEBADQo+ IC0reHBvaW50ZXIobm9uLWV4aXN0aW5nLWZuKCkvcmFuZ2UtdG8oaWQoJ2NoYXB0ZXIyJykp KQ0KPiAtZGlmZiAtLWdpdCBhL3hwYXRoLmMgYi94cGF0aC5jDQo+IC1pbmRleCAxMTNiY2U2 Li5kOTkyODQxIDEwMDY0NA0KPiAtLS0tIGEveHBhdGguYw0KPiAtKysrIGIveHBhdGguYw0K PiAtQEAgLTMzNDIsMTMgKzMzNDIsMTMgQEAgeG1sWFBhdGhDbXBOb2Rlcyh4bWxOb2RlUHRy IG5vZGUxLCB4bWxOb2RlUHRyIG5vZGUyKSB7DQo+IC0gICAgICAqIGNvbXB1dGUgZGVwdGgg dG8gcm9vdA0KPiAtICAgICAgKi8NCj4gLSAgICAgZm9yIChkZXB0aDIgPSAwLCBjdXIgPSBu b2RlMjtjdXItPnBhcmVudCAhPSBOVUxMO2N1ciA9IGN1ci0+cGFyZW50KSB7DQo+IC0tCWlm IChjdXIgPT0gbm9kZTEpDQo+IC0rCWlmIChjdXItPnBhcmVudCA9PSBub2RlMSkNCj4gLSAJ ICAgIHJldHVybigxKTsNCj4gLSAJZGVwdGgyKys7DQo+IC0gICAgIH0NCj4gLSAgICAgcm9v dCA9IGN1cjsNCj4gLSAgICAgZm9yIChkZXB0aDEgPSAwLCBjdXIgPSBub2RlMTtjdXItPnBh cmVudCAhPSBOVUxMO2N1ciA9IGN1ci0+cGFyZW50KSB7DQo+IC0tCWlmIChjdXIgPT0gbm9k ZTIpDQo+IC0rCWlmIChjdXItPnBhcmVudCA9PSBub2RlMikNCj4gLSAJICAgIHJldHVybigt MSk7DQo+IC0gCWRlcHRoMSsrOw0KPiAtICAgICB9DQo+IC1AQCAtMTQwMDUsOSArMTQwMDUs MTQgQEAgeG1sWFBhdGhDb21wT3BFdmFsKHhtbFhQYXRoUGFyc2VyQ29udGV4dFB0ciBjdHh0 LCB4bWxYUGF0aFN0ZXBPcFB0ciBvcCkNCj4gLSAgICAgICAgICAgICAgICAgeG1sTm9kZVNl dFB0ciBvbGRzZXQ7DQo+IC0gICAgICAgICAgICAgICAgIGludCBpLCBqOw0KPiAtIA0KPiAt LSAgICAgICAgICAgICAgICBpZiAob3AtPmNoMSAhPSAtMSkNCj4gLSsgICAgICAgICAgICAg ICAgaWYgKG9wLT5jaDEgIT0gLTEpIHsNCj4gLSAgICAgICAgICAgICAgICAgICAgIHRvdGFs ICs9DQo+IC0gICAgICAgICAgICAgICAgICAgICAgICAgeG1sWFBhdGhDb21wT3BFdmFsKGN0 eHQsICZjb21wLT5zdGVwc1tvcC0+Y2gxXSk7DQo+IC0rICAgICAgICAgICAgICAgICAgICBD SEVDS19FUlJPUjA7DQo+IC0rICAgICAgICAgICAgICAgIH0NCj4gLSsgICAgICAgICAgICAg ICAgaWYgKGN0eHQtPnZhbHVlID09IE5VTEwpIHsNCj4gLSsgICAgICAgICAgICAgICAgICAg IFhQX0VSUk9SMChYUEFUSF9JTlZBTElEX09QRVJBTkQpOw0KPiAtKyAgICAgICAgICAgICAg ICB9DQo+IC0gICAgICAgICAgICAgICAgIGlmIChvcC0+Y2gyID09IC0xKQ0KPiAtICAgICAg ICAgICAgICAgICAgICAgcmV0dXJuICh0b3RhbCk7DQo+IC0gDQo+IGRpZmYgLS1naXQgYS9t ZXRhL3JlY2lwZXMtY29yZS9saWJ4bWwvbGlieG1sMi9ydW50ZXN0LnBhdGNoIGIvbWV0YS9y ZWNpcGVzLWNvcmUvbGlieG1sL2xpYnhtbDIvcnVudGVzdC5wYXRjaA0KPiBpbmRleCA2ZTU2 ODU3Li5jYjE3MWQ1IDEwMDY0NA0KPiAtLS0gYS9tZXRhL3JlY2lwZXMtY29yZS9saWJ4bWwv bGlieG1sMi9ydW50ZXN0LnBhdGNoDQo+ICsrKyBiL21ldGEvcmVjaXBlcy1jb3JlL2xpYnht bC9saWJ4bWwyL3J1bnRlc3QucGF0Y2gNCj4gQEAgLTIsNDcgKzIsMjkgQEAgQWRkICdpbnN0 YWxsLXB0ZXN0JyBydWxlLg0KPiAgUHJpbnQgYSBzdGFuZGFyZCByZXN1bHQgbGluZSBmb3Ig ZWFjaCB0ZXN0Lg0KPiAgDQo+ICBTaWduZWQtb2ZmLWJ5OiBNaWhhZWxhIFNlbmRyZWEgPG1p aGFlbGEuc2VuZHJlYUBlbmVhLmNvbT4NCj4gLVNpZ25lZC1vZmYtYnk6IEFuZHJlaiBWYWxl ayA8YW5kcmVqLnZhbGVrQGVuZWEuY29tPg0KPiArU2lnbmVkLW9mZi1ieTogQW5kcmVqIFZh bGVrIDxhbmRyZWoudmFsZWtAc2llbWVucy5jb20+DQo+ICBVcHN0cmVhbS1TdGF0dXM6IEJh Y2twb3J0DQo+ICANCj4gIGRpZmYgLXVOciBhL01ha2VmaWxlLmFtIGIvTWFrZWZpbGUuYW0N Cj4gLS0tLSBhL01ha2VmaWxlLmFtCTIwMTYtMDUtMjIgMDM6NDk6MDIuMDAwMDAwMDAwICsw MjAwDQo+IC0rKysgYi9NYWtlZmlsZS5hbQkyMDE3LTA2LTE0IDEwOjM4OjQzLjM4MTMwNTM4 NSArMDIwMA0KPiAtQEAgLTIwMiwxMCArMjAyLDI0IEBADQo+ICstLS0gYS9NYWtlZmlsZS5h bQkyMDE3LTA4LTI4IDE1OjAxOjE0LjAwMDAwMDAwMCArMDIwMA0KPiArKysrIGIvTWFrZWZp bGUuYW0JMjAxNy0wOS0wNSAwODowNjowNS43NTIyODczMjMgKzAyMDANCj4gK0BAIC0yMDIs NiArMjAyLDE1IEBADQo+ICAgI3Rlc3RPT01fREVQRU5ERU5DSUVTID0gJChERVBTKQ0KPiAg ICN0ZXN0T09NX0xEQUREPSAkKExEQUREUykNCj4gICANCj4gICtpbnN0YWxsLXB0ZXN0Og0K PiAgKwlAKGlmIFsgLWQgLmxpYnMgXSA7IHRoZW4gY2QgLmxpYnM7IGZpOyBcDQo+IC0rCWlu c3RhbGwgJChub2luc3RfUFJPR1JBTVMpICQoREVTVERJUikpDQo+ICsrCWluc3RhbGwgJChj aGVja19QUk9HUkFNUykgJChERVNURElSKSkNCj4gICsJY3AgLXIgJChzcmNkaXIpL3Rlc3Qg JChERVNURElSKQ0KPiAgKwljcCAtciAkKHNyY2RpcikvcmVzdWx0ICQoREVTVERJUikNCj4g ICsJY3AgLXIgJChzcmNkaXIpL3B5dGhvbiAkKERFU1RESVIpDQo+ICArCWNwIE1ha2VmaWxl ICQoREVTVERJUikNCj4gICsJc2VkIC1pIC1lICdzfF5NYWtlZmlsZTp8X01ha2VmaWxlOnwn ICQoREVTVERJUikvTWFrZWZpbGUNCj4gICsNCj4gLSBydW50ZXN0czoNCj4gKyBydW50ZXN0 czogcnVudGVzdCQoRVhFRVhUKSB0ZXN0cmVjdXJzZSQoRVhFRVhUKSB0ZXN0YXBpJChFWEVF WFQpIFwNCj4gKyAgICAgICAgICAgdGVzdGNoYXIkKEVYRUVYVCkgdGVzdGRpY3QkKEVYRUVY VCkgcnVueG1sY29uZiQoRVhFRVhUKQ0KPiAgIAlbIC1kIHRlc3QgICBdIHx8ICQoTE5fUykg JChzcmNkaXIpL3Rlc3QgICAuDQo+IC0gCVsgLWQgcmVzdWx0IF0gfHwgJChMTl9TKSAkKHNy Y2RpcikvcmVzdWx0IC4NCj4gLS0JJChDSEVDS0VSKSAuL3J1bnRlc3QkKEVYRUVYVCkgJiYg JChDSEVDS0VSKSAuL3Rlc3RyZWN1cnNlJChFWEVFWFQpICYmJChDSEVDS0VSKSAuL3Rlc3Rh cGkkKEVYRUVYVCkgJiYgJChDSEVDS0VSKSAuL3Rlc3RjaGFyJChFWEVFWFQpJiYgJChDSEVD S0VSKSAuL3Rlc3RkaWN0JChFWEVFWFQpICYmICQoQ0hFQ0tFUikgLi9ydW54bWxjb25mJChF WEVFWFQpDQo+IC0rCSQoQ0hFQ0tFUikgLi9ydW50ZXN0JChFWEVFWFQpICYmIFwNCj4gLSsJ ICAgICQoQ0hFQ0tFUikgLi90ZXN0cmVjdXJzZSQoRVhFRVhUKSAmJiBcDQo+IC0rCSAgICBB U0FOX09QVElPTlM9IiQkQVNBTl9PUFRJT05TOmRldGVjdF9sZWFrcz0wIiAkKENIRUNLRVIp IC4vdGVzdGFwaSQoRVhFRVhUKSAmJiBcDQo+IC0rCSAgICAkKENIRUNLRVIpIC4vdGVzdGNo YXIkKEVYRUVYVCkgJiYgXA0KPiAtKwkgICAgJChDSEVDS0VSKSAuL3Rlc3RkaWN0JChFWEVF WFQpICYmIFwNCj4gLSsJICAgICQoQ0hFQ0tFUikgLi9ydW54bWxjb25mJChFWEVFWFQpDQo+ IC0gCUAoaWYgWyAiJChQWVRIT05fU1VCRElSKSIgIT0gIiIgXSA7IHRoZW4gY2QgcHl0aG9u IDsgXA0KPiAtIAkgICAgJChNQUtFKSB0ZXN0cyA7IGZpKQ0KPiAtIA0KPiAtQEAgLTIyOSw3 ICsyNDMsNyBAQA0KPiAtIA0KPiAtIEFQSXRlc3RzOiB0ZXN0YXBpJChFWEVFWFQpDQo+IC0g CUBlY2hvICIjIyBSdW5uaW5nIHRoZSBBUEkgcmVncmVzc2lvbiB0ZXN0cyB0aGlzIG1heSB0 YWtlIGEgbGl0dGxlIHdoaWxlIg0KPiAtLQktQCgkKENIRUNLRVIpICQodG9wX2J1aWxkZGly KS90ZXN0YXBpIC1xKQ0KPiAtKwktQChBU0FOX09QVElPTlM9IiQkQVNBTl9PUFRJT05TOmRl dGVjdF9sZWFrcz0wIiAkKENIRUNLRVIpICQodG9wX2J1aWxkZGlyKS90ZXN0YXBpIC1xKQ0K PiAtIA0KPiAtIEhUTUx0ZXN0cyA6IHRlc3RIVE1MJChFWEVFWFQpDQo+IC0gCUAoZWNobyA+ IC5tZW1kdW1wKQ0KPiArDQo+ICBkaWZmIC11TnIgYS9ydW5zdWl0ZS5jIGIvcnVuc3VpdGUu Yw0KPiAgLS0tIGEvcnVuc3VpdGUuYwkyMDEzLTA0LTEyIDE2OjE3OjExLjQ2MjgyMzIzOCAr MDIwMA0KPiAgKysrIGIvcnVuc3VpdGUuYwkyMDEzLTA0LTE3IDE0OjA3OjI0LjM1MjY5MzIx MSArMDIwMA0KPiBkaWZmIC0tZ2l0IGEvbWV0YS9yZWNpcGVzLWNvcmUvbGlieG1sL2xpYnht bDJfMi45LjQuYmIgYi9tZXRhL3JlY2lwZXMtY29yZS9saWJ4bWwvbGlieG1sMl8yLjkuNi5i Yg0KPiBzaW1pbGFyaXR5IGluZGV4IDg1JQ0KPiByZW5hbWUgZnJvbSBtZXRhL3JlY2lwZXMt Y29yZS9saWJ4bWwvbGlieG1sMl8yLjkuNC5iYg0KPiByZW5hbWUgdG8gbWV0YS9yZWNpcGVz LWNvcmUvbGlieG1sL2xpYnhtbDJfMi45LjYuYmINCj4gaW5kZXggMTA3NTM5Yi4uZmQ0ZTg1 YSAxMDA2NDQNCj4gLS0tIGEvbWV0YS9yZWNpcGVzLWNvcmUvbGlieG1sL2xpYnhtbDJfMi45 LjQuYmINCj4gKysrIGIvbWV0YS9yZWNpcGVzLWNvcmUvbGlieG1sL2xpYnhtbDJfMi45LjYu YmINCj4gQEAgLTE5LDIxICsxOSwxMSBAQCBTUkNfVVJJID0gImZ0cDovL3htbHNvZnQub3Jn L2xpYnhtbDIvbGlieG1sMi0ke1BWfS50YXIuZ3o7bmFtZT1saWJ0YXIgXA0KPiAgICAgICAg ICAgICBmaWxlOi8vcnVuLXB0ZXN0IFwNCj4gICAgICAgICAgICAgZmlsZTovL3B5dGhvbi1z aXRlcGFja2FnZXMtZGlyLnBhdGNoIFwNCj4gICAgICAgICAgICAgZmlsZTovL2xpYnhtbC1t NC11c2UtcGtnY29uZmlnLnBhdGNoIFwNCj4gLSAgICAgICAgICAgZmlsZTovL2xpYnhtbDIt Zml4X25vZGVfY29tcGFyaXNvbi5wYXRjaCBcDQo+IC0gICAgICAgICAgIGZpbGU6Ly9saWJ4 bWwyLUNWRS0yMDE2LTUxMzEucGF0Y2ggXA0KPiAtICAgICAgICAgICBmaWxlOi8vbGlieG1s Mi1DVkUtMjAxNi00NjU4LnBhdGNoIFwNCj4gLSAgICAgICAgICAgZmlsZTovL2xpYnhtbDIt Zml4X05VTExfcG9pbnRlcl9kZXJlZnMucGF0Y2ggXA0KPiAtICAgICAgICAgICBmaWxlOi8v bGlieG1sMi1maXhfYW5kX3NpbXBsaWZ5X3htbFBhcnNlU3RhcnRUYWcyLnBhdGNoIFwNCj4g LSAgICAgICAgICAgZmlsZTovL2xpYnhtbDItQ1ZFLTIwMTctOTA0N19DVkUtMjAxNy05MDQ4 LnBhdGNoIFwNCj4gLSAgICAgICAgICAgZmlsZTovL2xpYnhtbDItQ1ZFLTIwMTctOTA0OV9D VkUtMjAxNy05MDUwLnBhdGNoIFwNCj4gLSAgICAgICAgICAgZmlsZTovL2xpYnhtbDItQ1ZF LTIwMTctNTk2OS5wYXRjaCBcDQo+IC0gICAgICAgICAgIGZpbGU6Ly9saWJ4bWwyLUNWRS0y MDE3LTA2NjMucGF0Y2ggXA0KPiAtICAgICAgICAgICBmaWxlOi8vbGlieG1sMi1DVkUtMjAx Ny04ODcyLnBhdGNoIFwNCj4gICAgICAgICAgICAgZmlsZTovLzAwMDEtTWFrZS1wdGVzdC1y dW4tdGhlLXB5dGhvbi10ZXN0cy1pZi1weXRob24taXMtZW5hYmxlZC5wYXRjaCBcDQo+ICAg ICAgICAgICAgICINCj4gIA0KPiAtU1JDX1VSSVtsaWJ0YXIubWQ1c3VtXSA9ICJhZTI0OTE2 NWMxNzNiMWZmMzg2ZWU4YWQ2NzY4MTVmNSINCj4gLVNSQ19VUklbbGlidGFyLnNoYTI1NnN1 bV0gPSAiZmZiOTExMTkxZTUwOWI5NjZkZWI1NWRlNzA1Mzg3ZjE0MTU2ZTFhNTZiMjE4MjQz NTdjZGYwMDUzMjMzNjMzYyINCj4gK1NSQ19VUklbbGlidGFyLm1kNXN1bV0gPSAiZGJhZTgz MjdkODQ3MTk0MWJmMDQ3MmUyNzM0NzNlMzYiDQo+ICtTUkNfVVJJW2xpYnRhci5zaGEyNTZz dW1dID0gIjhiOTAzOGNjYTcyNDBlODgxZDQ2MmVhMzkxODgyMDkyZGZkYzZkNGY0ODNmNzI2 ODNlODE3YmUwOGRmNWViYmMiDQo+ICBTUkNfVVJJW3Rlc3R0YXIubWQ1c3VtXSA9ICJhZTNk MWViZTAwMGEzOTcyYWZhMTA0Y2E3ZjBlMWI0YSINCj4gIFNSQ19VUklbdGVzdHRhci5zaGEy NTZzdW1dID0gIjk2MTUxNjg1Y2VjOTk3ZTFmOWYzMzg3ZTM2MjZkNjFlNjI4NGQ0ZDZlNjZl MGU0NDBjMjA5Mjg2YzAzZTljYzciDQo+ICANCj4gQEAgLTgxLDYgKzcxLDEwIEBAIGRvX2Nv bmZpZ3VyZV9wcmVwZW5kICgpIHsNCj4gIAlmaW5kICR7V09SS0RJUn0veG1sY29uZi8gLXR5 cGUgZiAtZXhlYyBjaG1vZCAteCB7fSBcKw0KPiAgfQ0KPiAgDQo+ICtkb19jb21waWxlX3B0 ZXN0KCkgew0KPiArCW9lX3J1bm1ha2UgY2hlY2stYW0NCj4gK30NCj4gKw0KPiAgZG9faW5z dGFsbF9wdGVzdCAoKSB7DQo+ICAJY3AgLXIgJHtXT1JLRElSfS94bWxjb25mICR7RH0ke1BU RVNUX1BBVEh9DQo+ICAJaWYgWyAiJHtAYmIudXRpbHMuZmlsdGVyKCdQQUNLQUdFQ09ORklH JywgJ3B5dGhvbicsIGQpfSIgXTsgdGhlbg0KPiANCg==