From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from zg8tmtu5ljg5lje1ms4xmtka.icoremail.net (zg8tmtu5ljg5lje1ms4xmtka.icoremail.net [159.89.151.119]) by sourceware.org (Postfix) with ESMTP id 8B97F3858D3C for ; Mon, 6 Nov 2023 02:31:53 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.4.2 sourceware.org 8B97F3858D3C Authentication-Results: sourceware.org; dmarc=none (p=none dis=none) header.from=eswincomputing.com Authentication-Results: sourceware.org; spf=pass smtp.mailfrom=eswincomputing.com ARC-Filter: OpenARC Filter v1.0.0 sourceware.org 8B97F3858D3C Authentication-Results: server2.sourceware.org; arc=none smtp.remote-ip=159.89.151.119 ARC-Seal: i=1; a=rsa-sha256; d=sourceware.org; s=key; t=1699237925; cv=none; b=Zy2r3hOd3Q5XiiL5+CO/TQBTaF4qNic4t5esNwdTFzg/wnx14ZLUCi0l886Q0FPrpsk/cXcb7GY1lkCpBbruwlLTz8rwZ9Ne/xnVozRxSunRIOM2Sg6uhnFuVq6f0ByiYNNYPXEO+zaPqrFeqf+i44Lkid2Hvt1qZD1/RS5bpeQ= ARC-Message-Signature: i=1; a=rsa-sha256; d=sourceware.org; s=key; t=1699237925; c=relaxed/simple; bh=Cuq9UQHiMl8OLKo6OXH9549jIn9OVfI7tetZT2ResKg=; h=Date:From:To:Subject:Mime-Version:Message-ID; b=KcF0ZD46q1HYxDTZC0qL0boUh/ISIApnzcXPLktI0iQL7ZHWwB4CDtFLEwFHAUjUAgYgopU5s5BRWijc2SqdZ2ewnUhzHv2zYTErLeTd239tHtlBtvawfewFKr0GTrhy75ABqdIUfFkQ81wK3kfHk6oJd4fa0rZ+SZIKDmEIefY= ARC-Authentication-Results: i=1; server2.sourceware.org Received: from E0002559DT1 (unknown [123.157.234.42]) by app2 (Coremail) with SMTP id TQJkCgBHBUP7T0hlSCoCAA--.8607S2; Mon, 06 Nov 2023 10:31:24 +0800 (CST) Date: Mon, 6 Nov 2023 10:31:46 +0800 From: "Li Xu" To: juzhe.zhong Cc: gcc-patches , kito.cheng , palmer Subject: Re: Re: [PATCH v6] RISC-V: Implement RESOLVE_OVERLOADED_BUILTIN for RVV intrinsic References: <20231031090331.4208-1-xuli1@eswincomputing.com>, <0305AEF5F112B856+202310311707113330371@rivai.ai>, <6c0b56b1.14a3.18b8585c501.Coremail.xuli1@eswincomputing.com>, <626E247596C99754+202311060926177262440@rivai.ai> X-Priority: 3 X-GUID: 7DEA8001-6F0D-4B0E-B74D-CAF9E0BC7103 X-Has-Attach: no X-Mailer: Foxmail 7.2.23.121[cn] Mime-Version: 1.0 Message-ID: <2023110610314624554415@eswincomputing.com> Content-Type: multipart/alternative; boundary="----=_001_NextPart384443402771_=----" X-CM-TRANSID:TQJkCgBHBUP7T0hlSCoCAA--.8607S2 X-Coremail-Antispam: 1UD129KBjvAXoWDCrWftw4kuF48AFWxAr4fZrb_yoW7tw1xGo Z3ursYyFW3Ww1I9r15K34xWrs8Wr40krsrXFZ5Wry5GFn7Z3ZYkas3K3ykC3W3Wr43tFW3 W3sxZFW7ZF1vqF1rn29KB7ZKAUJUUUUU529EdanIXcx71UUUUU7v73VFW2AGmfu7bjvjm3 AaLaJ3UjIYCTnIWjp_UUU5w7k0a2IF6w4kM7kC6x804xWl1xkIjI8I6I8E6xAIw20EY4v2 0xvaj40_Wr0E3s1l8cAvFVAK0II2c7xJM28CjxkF64kEwVA0rcxSw2x7M28EF7xvwVC0I7 IYx2IY67AKxVWDJVCq3wA2z4x0Y4vE2Ix0cI8IcVCY1x0267AKxVW8Jr0_Cr1UM28EF7xv wVC2z280aVAFwI0_GcCE3s1l84ACjcxK6I8E87Iv6xkF7I0E14v26rxl6s0DM2AIxVAIcx kEcVAq07x20xvEncxIr21l5I8CrVCF0I0E4I0vr24lYx0E74AGY7Cv6cx26r4UJr1UJwAv 7VCY1x0262k0Y48FwI0_Jr0_Gr1lOx8S6xCaFVCjc4AY6r1j6r4UMxkIecxEwVAFwVW8Jw CF04k20xvE74AGY7Cv6cx26r4UJr1UJwCFx2IqxVCFs4IE7xkEbVWUJVW8JwC20s026c02 F40E14v26r106r1rMI8I3I0E7480Y4vE14v26r106r1rMI8E67AF67kF1VAFwI0_JF0_Jw 1lIxAIcVC0I7IYx2IY67AKxVWUJVWUCwCI42IY6xIIjxv20xvEc7CjxVAFwI0_Jr0_Gr1l IxAIcVCF04k26cxKx2IYs7xG6r1j6r1xMIIF0xvEx4A2jsIE14v26r1j6r4UMIIF0xvEx4 A2jsIEc7CjxVAFwI0_Jr0_GrUvcSsGvfC2KfnxnUUI43ZEXa7IUnpOJ5UUUUU== X-CM-SenderInfo: 50xoxi46hv4xpqfrz1xxwl0woofrz/ X-Spam-Status: No, score=-6.9 required=5.0 tests=BAYES_00,BODY_8BITS,GIT_PATCH_0,HTML_MESSAGE,KAM_DMARC_STATUS,KAM_SHORT,MIME_CHARSET_FARAWAY,RCVD_IN_MSPIKE_H4,RCVD_IN_MSPIKE_WL,SCC_10_SHORT_WORD_LINES,SCC_20_SHORT_WORD_LINES,SCC_35_SHORT_WORD_LINES,SCC_5_SHORT_WORD_LINES,SPF_HELO_NONE,SPF_PASS,TXREP,T_SCC_BODY_TEXT_LINE autolearn=ham autolearn_force=no version=3.4.6 X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on server2.sourceware.org List-Id: This is a multi-part message in MIME format. ------=_001_NextPart384443402771_=---- Content-Type: text/plain; charset="GB2312" Content-Transfer-Encoding: base64 Q29tbWl0dGVkLCB0aGFua3MganV6aGUuDQoNCg0KDQp4dWxpMUBlc3dpbmNv bXB1dGluZy5jb20NCiANCkZyb206IGp1emhlLnpob25nQHJpdmFpLmFpDQpE YXRlOiAyMDIzLTExLTA2IDA5OjI2DQpUbzogTGkgWHUNCkNDOiBnY2MtcGF0 Y2hlczsga2l0by5jaGVuZzsgcGFsbWVyDQpTdWJqZWN0OiBSZTogUmU6IFtQ QVRDSCB2Nl0gUklTQy1WOiBJbXBsZW1lbnQgUkVTT0xWRV9PVkVSTE9BREVE X0JVSUxUSU4gZm9yIFJWViBpbnRyaW5zaWMNCkhpLCBMaVh1LiBTZWVtcyBu byBvYmplY3Rpb24uIFlvdSBjYW4gY29tbWl0IGl0Lg0KVGhhbmtzIGZvciBz dXBwb3J0aW5nIGl0Lg0KDQoNCg0KanV6aGUuemhvbmdAcml2YWkuYWkNCiAN CkZyb206IExpIFh1DQpEYXRlOiAyMDIzLTEwLTMxIDE5OjM2DQpUbzoganV6 aGUuemhvbmdAcml2YWkuYWkNCkNDOiBnY2MtcGF0Y2hlczsga2l0by5jaGVu ZzsgcGFsbWVyDQpTdWJqZWN0OiBSZTogUmU6IFtQQVRDSCB2Nl0gUklTQy1W OiBJbXBsZW1lbnQgUkVTT0xWRV9PVkVSTE9BREVEX0JVSUxUSU4gZm9yIFJW ViBpbnRyaW5zaWMNCkFsbCBvdmVybG9hZCBhbmQgbm9uLW92ZXJsb2FkIGlu dHJpbnNpY3MgaGF2ZSBiZWVuIHRlc3RlZCBzdWNjZXNzZnVsbHkgb24gZ2Nj IGFuZCBnKysuDQogDQpUaGFua3MuDQogDQogDQo+IC0tLS0t1K3KvNPKvP4t LS0tLbeivP7IyzoianV6aGUuemhvbmdAcml2YWkuYWkiIDxqdXpoZS56aG9u Z0ByaXZhaS5haT63osvNyrG85DoyMDIzLTEwLTMxIDE3OjA3OjExICjQx8ba tv4pytW8/sjLOiJMaSBYdSIgPHh1bGkxQGVzd2luY29tcHV0aW5nLmNvbT4s IGdjYy1wYXRjaGVzIDxnY2MtcGF0Y2hlc0BnY2MuZ251Lm9yZz6zrcvNOiJr aXRvLmNoZW5nIiA8a2l0by5jaGVuZ0BnbWFpbC5jb20+LCBwYWxtZXIgPHBh bG1lckBkYWJiZWx0LmNvbT4sICJMaSBYdSIgPHh1bGkxQGVzd2luY29tcHV0 aW5nLmNvbT7W98ziOlJlOiBbUEFUQ0ggdjZdIFJJU0MtVjogSW1wbGVtZW50 IFJFU09MVkVfT1ZFUkxPQURFRF9CVUlMVElOIGZvciBSVlYgaW50cmluc2lj DQo+IA0KPiBMR1RNIGZyb20gbXkgc2lkZS4NCj4gDQo+IEdpdmUga2l0byBv bmUgbW9yZSBkYXkgdG8gcmV2aWV3IGl0Lg0KPiANCj4gVGhhbmtzIGZvciBz dXBwb3J0IHRoaXMgZmVhdHVyZSAhDQo+IA0KPiBqdXpoZS56aG9uZ0ByaXZh aS5haQ0KPiAgDQo+IEZyb206IExpIFh1DQo+IERhdGU6IDIwMjMtMTAtMzEg MTc6MDMNCj4gVG86IGdjYy1wYXRjaGVzDQo+IENDOiBraXRvLmNoZW5nOyBw YWxtZXI7IGp1emhlLnpob25nOyB4dWxpDQo+IFN1YmplY3Q6IFtQQVRDSCB2 Nl0gUklTQy1WOiBJbXBsZW1lbnQgUkVTT0xWRV9PVkVSTE9BREVEX0JVSUxU SU4gZm9yIFJWViBpbnRyaW5zaWMNCj4gRnJvbTogeHVsaSA8eHVsaTFAZXN3 aW5jb21wdXRpbmcuY29tPg0KPiAgDQo+IFVwZGF0ZSBpbiB2NjoNCj4gKiBS ZW5hbWUgbWF5YmVfcmVxdWlyZV9mcm1fcCB0byBtYXlfcmVxdWlyZV9mcm1f cC4NCj4gKiBSZW5hbWUgbWF5YmVfcmVxdWlyZV92eHJtX3AgdG8gbWF5X3Jl cXVpcmVfdnhybV9wLg0KPiAqIE1vdmUgbWF5X3JlcXVpcmVfZnJtX3AgYW5k IG1heV9yZXF1aXJlX3Z4cm1fcCB0byBmdW5jdGlvbl9iYXNlLg0KPiAgDQo+ IFVwZGF0ZSBpbiB2NToNCj4gKiBTcGxpdCBoYXNfdnhybV9vcl9mcm1fcCBp bnRvIG1heWJlX3JlcXVpcmVfZnJtX3AgYW5kDQo+ICAgbWF5YmVfcmVxdWly ZV92eHJtX3AuDQo+ICogQWRqdXN0IGNvbW1lbnRzLg0KPiAgDQo+IFVwZGF0 ZSBpbiB2NDoNCj4gKiBSZW1vdmUgY2xhc3MgZnVuY3Rpb25fcmVzb2x2ZXIu DQo+ICogUmVtb3ZlIGZ1bmN0aW9uIGdldF9ub25fb3ZlcmxvYWRlZF9pbnN0 YW5jZS4NCj4gKiBBZGQgb3ZlcmxvYWRlZCBoYXNoIHRyYWl0cyBmb3Igbm9u LW92ZXJsb2FkZWQgaW50cmluc2ljLg0KPiAqIEFsbCBvdmVybG9hZGVkIGlu dHJpbnNpY3MgYXJlIGltcGxlbWVudGVkLCBhbmQgdGhlIHRlc3RzIHBhc3Mu DQo+ICANCj4gVXBkYXRlIGluIHYzOg0KPiAgDQo+ICogUmV3cml0ZSBjb21t ZW50IGZvciBvdmVybG9hZGVkIGZ1bmN0aW9uIGFkZC4NCj4gKiBNb3ZlIGdl dF9ub25fb3ZlcmxvYWRlZF9pbnN0YW5jZSB0byBmdW5jdGlvbl9iYXNlLg0K PiAgDQo+IFVwZGF0ZSBpbiB2MjoNCj4gIA0KPiAqIEFkZCBnZXRfbm9uX292 ZXJsb2FkZWRfaW5zdGFuY2UgZm9yIGZ1bmN0aW9uIGluc3RhbmNlLg0KPiAq IEZpeCBvdmVybG9hZCBjaGVjayBmb3IgcG9saWN5IGZ1bmN0aW9uLg0KPiAq IEVucmljaCB0aGUgdGVzdCBjYXNlcyBjaGVjay4NCj4gIA0KPiBPcmlnaW5h bCBsb2c6DQo+ICANCj4gVGhpcyBwYXRjaCB3b3VsZCBsaWtlIGFkZCB0aGUg ZnJhbWV3b3JrIHRvIHN1cHBvcnQgdGhlIFJWViBvdmVybG9hZGVkDQo+IGlu dHJpbnNpYyBBUEkgaW4gcmlzY3YteHh4LXh4eC1nY2MsIGxpa2UgcmlzY3Yt eHh4LXh4eC1nKysgZGlkLg0KPiAgDQo+IEhvd2V2ZXIsIGl0IGFsbW9zdCBs ZXZlcmFnZSB0aGUgaG9vayBUQVJHRVRfUkVTT0xWRV9PVkVSTE9BREVEX0JV SUxUSU4NCj4gd2l0aCBiZWxvdyBzdGVwcy4NCj4gIA0KPiAqIFJlZ2lzdGVy IG92ZXJsb2FkZWQgZnVuY3Rpb25zLg0KPiAqIEFkZCBmdW5jdGlvbl9yZXNv bHZlciBmb3Igb3ZlcmxvYWRlZCBmdW5jdGlvbiByZXNvbHZpbmcuDQo+ICog QWRkIHJlc29sdmUgQVBJIGZvciBmdW5jdGlvbiBzaGFwZSB3aXRoIGRlZmF1 bHQgaW1wbGVtZW50YXRpb24uDQo+ICogSW1wbGVtZW50IEhPT0sgZm9yIG5h dmlnYXRpbmcgdGhlIG92ZXJsb2FkZWQgQVBJIHRvIG5vbi1vdmVybG9hZGVk IEFQSS4NCj4gIA0KPiBnY2MvQ2hhbmdlTG9nOg0KPiAgDQo+ICAgICAgICAg KiBjb25maWcvcmlzY3YvcmlzY3YtYy5jYyAocmlzY3ZfcmVzb2x2ZV9vdmVy bG9hZGVkX2J1aWx0aW4pOiBOZXcgZnVuY3Rpb24gZm9yIHRoZSBob29rLg0K PiAgICAgICAgIChyaXNjdl9yZWdpc3Rlcl9wcmFnbWFzKTogUmVnaXN0ZXIg dGhlIGhvb2suDQo+ICAgICAgICAgKiBjb25maWcvcmlzY3YvcmlzY3YtcHJv dG9zLmggKHJlc29sdmVfb3ZlcmxvYWRlZF9idWlsdGluKTogTmV3IGRlY2wu DQo+ICAgICAgICAgKiBjb25maWcvcmlzY3YvcmlzY3YtdmVjdG9yLWJ1aWx0 aW5zLWJhc2VzLmNjOiBOZXcgZnVuY3Rpb24gaW1wbC4NCj4gICAgICAgICAq IGNvbmZpZy9yaXNjdi9yaXNjdi12ZWN0b3ItYnVpbHRpbnMtc2hhcGVzLmNj IChidWlsZF9vbmUpOiBSZWdpc3RlciBvdmVybG9hZGVkIGZ1bmN0aW9uLg0K PiAgICAgICAgICogY29uZmlnL3Jpc2N2L3Jpc2N2LXZlY3Rvci1idWlsdGlu cy5jYyAoc3RydWN0IG5vbl9vdmVybG9hZGVkX3JlZ2lzdGVyZWRfZnVuY3Rp b25faGFzaGVyKTogTmV3IGhhc2ggdGFibGUuDQo+ICAgICAgICAgKGZ1bmN0 aW9uX2J1aWxkZXI6OmFkZF9mdW5jdGlvbik6IEFkZCBvdmVybG9hZGVkIGFy Zy4NCj4gICAgICAgICAoZnVuY3Rpb25fYnVpbGRlcjo6YWRkX3VuaXF1ZV9m dW5jdGlvbik6IE1hcCBvdmVybG9hZGVkIGZ1bmN0aW9uIHRvIG5vbi1vdmVy bG9hZGVkIGZ1bmN0aW9uLg0KPiAgICAgICAgIChmdW5jdGlvbl9idWlsZGVy OjphZGRfb3ZlcmxvYWRlZF9mdW5jdGlvbik6IE5ldyBBUEkgaW1wbC4NCj4g ICAgICAgICAocmVnaXN0ZXJlZF9mdW5jdGlvbjo6b3ZlcmxvYWRlZF9oYXNo KTogQ2FsY3VsYXRlIGhhc2ggdmFsdWUuDQo+ICAgICAgICAgKGhhc192eHJt X29yX2ZybV9wKTogTmV3IGZ1bmN0aW9uIGltcGwuDQo+ICAgICAgICAgKG5v bl9vdmVybG9hZGVkX3JlZ2lzdGVyZWRfZnVuY3Rpb25faGFzaGVyOjpoYXNo KTogRGl0dG8uDQo+ICAgICAgICAgKG5vbl9vdmVybG9hZGVkX3JlZ2lzdGVy ZWRfZnVuY3Rpb25faGFzaGVyOjplcXVhbCk6IERpdHRvLg0KPiAgICAgICAg IChoYW5kbGVfcHJhZ21hX3ZlY3Rvcik6IEFsbG9jYXRlIHNwYWNlIGZvciBo YXNoIHRhYmxlLg0KPiAgICAgICAgIChyZXNvbHZlX292ZXJsb2FkZWRfYnVp bHRpbik6IE5ldyBmdW5jdGlvbiBpbXBsLg0KPiAgICAgICAgICogY29uZmln L3Jpc2N2L3Jpc2N2LXZlY3Rvci1idWlsdGlucy5oIChmdW5jdGlvbl9iYXNl OjptYXlfcmVxdWlyZV9mcm1fcCk6IERpdHRvLg0KPiAgICAgICAgIChmdW5j dGlvbl9iYXNlOjptYXlfcmVxdWlyZV92eHJtX3ApOiBEaXR0by4NCj4gIA0K PiBnY2MvdGVzdHN1aXRlL0NoYW5nZUxvZzoNCj4gIA0KPiAgICAgICAgICog Z2NjLnRhcmdldC9yaXNjdi9ydnYvYmFzZS9vdmVybG9hZGVkX3J2MzJfdmFk ZC5jOiBOZXcgdGVzdC4NCj4gICAgICAgICAqIGdjYy50YXJnZXQvcmlzY3Yv cnZ2L2Jhc2Uvb3ZlcmxvYWRlZF9ydjMyX3ZmYWRkLmM6IE5ldyB0ZXN0Lg0K PiAgICAgICAgICogZ2NjLnRhcmdldC9yaXNjdi9ydnYvYmFzZS9vdmVybG9h ZGVkX3J2MzJfdmdldF92c2V0LmM6IE5ldyB0ZXN0Lg0KPiAgICAgICAgICog Z2NjLnRhcmdldC9yaXNjdi9ydnYvYmFzZS9vdmVybG9hZGVkX3J2MzJfdmxv eHNlZzJlaTE2LmM6IE5ldyB0ZXN0Lg0KPiAgICAgICAgICogZ2NjLnRhcmdl dC9yaXNjdi9ydnYvYmFzZS9vdmVybG9hZGVkX3J2MzJfdm12LmM6IE5ldyB0 ZXN0Lg0KPiAgICAgICAgICogZ2NjLnRhcmdldC9yaXNjdi9ydnYvYmFzZS9v dmVybG9hZGVkX3J2MzJfdnJlaW50ZXJwcmV0LmM6IE5ldyB0ZXN0Lg0KPiAg ICAgICAgICogZ2NjLnRhcmdldC9yaXNjdi9ydnYvYmFzZS9vdmVybG9hZGVk X3J2NjRfdmFkZC5jOiBOZXcgdGVzdC4NCj4gICAgICAgICAqIGdjYy50YXJn ZXQvcmlzY3YvcnZ2L2Jhc2Uvb3ZlcmxvYWRlZF9ydjY0X3ZmYWRkLmM6IE5l dyB0ZXN0Lg0KPiAgICAgICAgICogZ2NjLnRhcmdldC9yaXNjdi9ydnYvYmFz ZS9vdmVybG9hZGVkX3J2NjRfdmdldF92c2V0LmM6IE5ldyB0ZXN0Lg0KPiAg ICAgICAgICogZ2NjLnRhcmdldC9yaXNjdi9ydnYvYmFzZS9vdmVybG9hZGVk X3J2NjRfdmxveHNlZzJlaTE2LmM6IE5ldyB0ZXN0Lg0KPiAgICAgICAgICog Z2NjLnRhcmdldC9yaXNjdi9ydnYvYmFzZS9vdmVybG9hZGVkX3J2NjRfdm12 LmM6IE5ldyB0ZXN0Lg0KPiAgICAgICAgICogZ2NjLnRhcmdldC9yaXNjdi9y dnYvYmFzZS9vdmVybG9hZGVkX3J2NjRfdnJlaW50ZXJwcmV0LmM6IE5ldyB0 ZXN0Lg0KPiAgICAgICAgICogZ2NjLnRhcmdldC9yaXNjdi9ydnYvYmFzZS9v dmVybG9hZGVkX3ZhZGQuaDogTmV3IHRlc3QuDQo+ICAgICAgICAgKiBnY2Mu dGFyZ2V0L3Jpc2N2L3J2di9iYXNlL292ZXJsb2FkZWRfdmZhZGQuaDogTmV3 IHRlc3QuDQo+ICAgICAgICAgKiBnY2MudGFyZ2V0L3Jpc2N2L3J2di9iYXNl L292ZXJsb2FkZWRfdmdldF92c2V0Lmg6IE5ldyB0ZXN0Lg0KPiAgICAgICAg ICogZ2NjLnRhcmdldC9yaXNjdi9ydnYvYmFzZS9vdmVybG9hZGVkX3Zsb3hz ZWcyZWkxNi5oOiBOZXcgdGVzdC4NCj4gICAgICAgICAqIGdjYy50YXJnZXQv cmlzY3YvcnZ2L2Jhc2Uvb3ZlcmxvYWRlZF92bXYuaDogTmV3IHRlc3QuDQo+ ICAgICAgICAgKiBnY2MudGFyZ2V0L3Jpc2N2L3J2di9iYXNlL292ZXJsb2Fk ZWRfdnJlaW50ZXJwcmV0Lmg6IE5ldyB0ZXN0Lg0KPiAgDQo+IFNpZ25lZC1v ZmYtYnk6IExpIFh1IDx4dWxpMUBlc3dpbmNvbXB1dGluZy5jb20+DQo+IENv LUF1dGhvcmVkLUJ5OiBQYW4gTGkgPHBhbjIubGlAaW50ZWwuY29tPg0KPiAt LS0NCj4gZ2NjL2NvbmZpZy9yaXNjdi9yaXNjdi1jLmNjICAgICAgICAgICAg ICAgICAgIHwgIDM2ICsrLQ0KPiBnY2MvY29uZmlnL3Jpc2N2L3Jpc2N2LXBy b3Rvcy5oICAgICAgICAgICAgICAgfCAgIDEgKw0KPiAuLi4vcmlzY3Yvcmlz Y3YtdmVjdG9yLWJ1aWx0aW5zLWJhc2VzLmNjICAgICAgfCAgNjkgKysrKyst DQo+IC4uLi9yaXNjdi9yaXNjdi12ZWN0b3ItYnVpbHRpbnMtc2hhcGVzLmNj ICAgICB8ICAgMSArDQo+IGdjYy9jb25maWcvcmlzY3YvcmlzY3YtdmVjdG9y LWJ1aWx0aW5zLmNjICAgICB8IDIyNiArKysrKysrKysrKysrKysrKy0NCj4g Z2NjL2NvbmZpZy9yaXNjdi9yaXNjdi12ZWN0b3ItYnVpbHRpbnMuaCAgICAg IHwgIDI3ICsrLQ0KPiAuLi4vcmlzY3YvcnZ2L2Jhc2Uvb3ZlcmxvYWRlZF9y djMyX3ZhZGQuYyAgICAgfCAgMTIgKw0KPiAuLi4vcmlzY3YvcnZ2L2Jhc2Uv b3ZlcmxvYWRlZF9ydjMyX3ZmYWRkLmMgICAgfCAgMTIgKw0KPiAuLi4vcnZ2 L2Jhc2Uvb3ZlcmxvYWRlZF9ydjMyX3ZnZXRfdnNldC5jICAgICAgfCAgIDcg Kw0KPiAuLi4vcnZ2L2Jhc2Uvb3ZlcmxvYWRlZF9ydjMyX3Zsb3hzZWcyZWkx Ni5jICAgfCAgMTEgKw0KPiAuLi4vcmlzY3YvcnZ2L2Jhc2Uvb3ZlcmxvYWRl ZF9ydjMyX3Ztdi5jICAgICAgfCAgMTAgKw0KPiAuLi4vcnZ2L2Jhc2Uvb3Zl cmxvYWRlZF9ydjMyX3ZyZWludGVycHJldC5jICAgfCAgMTAgKw0KPiAuLi4v cmlzY3YvcnZ2L2Jhc2Uvb3ZlcmxvYWRlZF9ydjY0X3ZhZGQuYyAgICAgfCAg MTEgKw0KPiAuLi4vcmlzY3YvcnZ2L2Jhc2Uvb3ZlcmxvYWRlZF9ydjY0X3Zm YWRkLmMgICAgfCAgMTEgKw0KPiAuLi4vcnZ2L2Jhc2Uvb3ZlcmxvYWRlZF9y djY0X3ZnZXRfdnNldC5jICAgICAgfCAgIDYgKw0KPiAuLi4vcnZ2L2Jhc2Uv b3ZlcmxvYWRlZF9ydjY0X3Zsb3hzZWcyZWkxNi5jICAgfCAgMTAgKw0KPiAu Li4vcmlzY3YvcnZ2L2Jhc2Uvb3ZlcmxvYWRlZF9ydjY0X3Ztdi5jICAgICAg fCAgMTAgKw0KPiAuLi4vcnZ2L2Jhc2Uvb3ZlcmxvYWRlZF9ydjY0X3ZyZWlu dGVycHJldC5jICAgfCAgIDkgKw0KPiAuLi4vcmlzY3YvcnZ2L2Jhc2Uvb3Zl cmxvYWRlZF92YWRkLmggICAgICAgICAgfCAgNTkgKysrKysNCj4gLi4uL3Jp c2N2L3J2di9iYXNlL292ZXJsb2FkZWRfdmZhZGQuaCAgICAgICAgIHwgIDY3 ICsrKysrKw0KPiAuLi4vcmlzY3YvcnZ2L2Jhc2Uvb3ZlcmxvYWRlZF92Z2V0 X3ZzZXQuaCAgICAgfCAgMjcgKysrDQo+IC4uLi9yaXNjdi9ydnYvYmFzZS9v dmVybG9hZGVkX3Zsb3hzZWcyZWkxNi5oICB8ICAzOSArKysNCj4gLi4uL3Jp c2N2L3J2di9iYXNlL292ZXJsb2FkZWRfdm12LmggICAgICAgICAgIHwgIDI2 ICsrDQo+IC4uLi9yaXNjdi9ydnYvYmFzZS9vdmVybG9hZGVkX3ZyZWludGVy cHJldC5oICB8ICAyOSArKysNCj4gMjQgZmlsZXMgY2hhbmdlZCwgNzA4IGlu c2VydGlvbnMoKyksIDE4IGRlbGV0aW9ucygtKQ0KPiBjcmVhdGUgbW9kZSAx MDA2NDQgZ2NjL3Rlc3RzdWl0ZS9nY2MudGFyZ2V0L3Jpc2N2L3J2di9iYXNl L292ZXJsb2FkZWRfcnYzMl92YWRkLmMNCj4gY3JlYXRlIG1vZGUgMTAwNjQ0 IGdjYy90ZXN0c3VpdGUvZ2NjLnRhcmdldC9yaXNjdi9ydnYvYmFzZS9vdmVy bG9hZGVkX3J2MzJfdmZhZGQuYw0KPiBjcmVhdGUgbW9kZSAxMDA2NDQgZ2Nj L3Rlc3RzdWl0ZS9nY2MudGFyZ2V0L3Jpc2N2L3J2di9iYXNlL292ZXJsb2Fk ZWRfcnYzMl92Z2V0X3ZzZXQuYw0KPiBjcmVhdGUgbW9kZSAxMDA2NDQgZ2Nj L3Rlc3RzdWl0ZS9nY2MudGFyZ2V0L3Jpc2N2L3J2di9iYXNlL292ZXJsb2Fk ZWRfcnYzMl92bG94c2VnMmVpMTYuYw0KPiBjcmVhdGUgbW9kZSAxMDA2NDQg Z2NjL3Rlc3RzdWl0ZS9nY2MudGFyZ2V0L3Jpc2N2L3J2di9iYXNlL292ZXJs b2FkZWRfcnYzMl92bXYuYw0KPiBjcmVhdGUgbW9kZSAxMDA2NDQgZ2NjL3Rl c3RzdWl0ZS9nY2MudGFyZ2V0L3Jpc2N2L3J2di9iYXNlL292ZXJsb2FkZWRf cnYzMl92cmVpbnRlcnByZXQuYw0KPiBjcmVhdGUgbW9kZSAxMDA2NDQgZ2Nj L3Rlc3RzdWl0ZS9nY2MudGFyZ2V0L3Jpc2N2L3J2di9iYXNlL292ZXJsb2Fk ZWRfcnY2NF92YWRkLmMNCj4gY3JlYXRlIG1vZGUgMTAwNjQ0IGdjYy90ZXN0 c3VpdGUvZ2NjLnRhcmdldC9yaXNjdi9ydnYvYmFzZS9vdmVybG9hZGVkX3J2 NjRfdmZhZGQuYw0KPiBjcmVhdGUgbW9kZSAxMDA2NDQgZ2NjL3Rlc3RzdWl0 ZS9nY2MudGFyZ2V0L3Jpc2N2L3J2di9iYXNlL292ZXJsb2FkZWRfcnY2NF92 Z2V0X3ZzZXQuYw0KPiBjcmVhdGUgbW9kZSAxMDA2NDQgZ2NjL3Rlc3RzdWl0 ZS9nY2MudGFyZ2V0L3Jpc2N2L3J2di9iYXNlL292ZXJsb2FkZWRfcnY2NF92 bG94c2VnMmVpMTYuYw0KPiBjcmVhdGUgbW9kZSAxMDA2NDQgZ2NjL3Rlc3Rz dWl0ZS9nY2MudGFyZ2V0L3Jpc2N2L3J2di9iYXNlL292ZXJsb2FkZWRfcnY2 NF92bXYuYw0KPiBjcmVhdGUgbW9kZSAxMDA2NDQgZ2NjL3Rlc3RzdWl0ZS9n Y2MudGFyZ2V0L3Jpc2N2L3J2di9iYXNlL292ZXJsb2FkZWRfcnY2NF92cmVp bnRlcnByZXQuYw0KPiBjcmVhdGUgbW9kZSAxMDA2NDQgZ2NjL3Rlc3RzdWl0 ZS9nY2MudGFyZ2V0L3Jpc2N2L3J2di9iYXNlL292ZXJsb2FkZWRfdmFkZC5o DQo+IGNyZWF0ZSBtb2RlIDEwMDY0NCBnY2MvdGVzdHN1aXRlL2djYy50YXJn ZXQvcmlzY3YvcnZ2L2Jhc2Uvb3ZlcmxvYWRlZF92ZmFkZC5oDQo+IGNyZWF0 ZSBtb2RlIDEwMDY0NCBnY2MvdGVzdHN1aXRlL2djYy50YXJnZXQvcmlzY3Yv cnZ2L2Jhc2Uvb3ZlcmxvYWRlZF92Z2V0X3ZzZXQuaA0KPiBjcmVhdGUgbW9k ZSAxMDA2NDQgZ2NjL3Rlc3RzdWl0ZS9nY2MudGFyZ2V0L3Jpc2N2L3J2di9i YXNlL292ZXJsb2FkZWRfdmxveHNlZzJlaTE2LmgNCj4gY3JlYXRlIG1vZGUg MTAwNjQ0IGdjYy90ZXN0c3VpdGUvZ2NjLnRhcmdldC9yaXNjdi9ydnYvYmFz ZS9vdmVybG9hZGVkX3Ztdi5oDQo+IGNyZWF0ZSBtb2RlIDEwMDY0NCBnY2Mv dGVzdHN1aXRlL2djYy50YXJnZXQvcmlzY3YvcnZ2L2Jhc2Uvb3ZlcmxvYWRl ZF92cmVpbnRlcnByZXQuaA0KPiAgDQo+IGRpZmYgLS1naXQgYS9nY2MvY29u ZmlnL3Jpc2N2L3Jpc2N2LWMuY2MgYi9nY2MvY29uZmlnL3Jpc2N2L3Jpc2N2 LWMuY2MNCj4gaW5kZXggMjgzMDUyYWUzMTMuLmJlZGY3MjE3MzkwIDEwMDY0 NA0KPiAtLS0gYS9nY2MvY29uZmlnL3Jpc2N2L3Jpc2N2LWMuY2MNCj4gKysr IGIvZ2NjL2NvbmZpZy9yaXNjdi9yaXNjdi1jLmNjDQo+IEBAIC0yMTUsMTYg KzIxNSw1MCBAQCByaXNjdl9jaGVja19idWlsdGluX2NhbGwgKGxvY2F0aW9u X3QgbG9jLCB2ZWM8bG9jYXRpb25fdD4gYXJnX2xvYywgdHJlZSBmbmRlY2ws DQo+ICAgICAgY2FzZSBSSVNDVl9CVUlMVElOX1ZFQ1RPUjoNCj4gICAgICAg IHJldHVybiByaXNjdl92ZWN0b3I6OmNoZWNrX2J1aWx0aW5fY2FsbCAobG9j LCBhcmdfbG9jLCBzdWJjb2RlLA0KPiAtICAgICAgICBvcmlnX2ZuZGVjbCwg bmFyZ3MsIGFyZ3MpOw0KPiArICAgICAgICBmbmRlY2wsIG5hcmdzLCBhcmdz KTsNCj4gICAgICB9DQo+ICAgIGdjY191bnJlYWNoYWJsZSAoKTsNCj4gfQ0K PiArLyogSW1wbGVtZW50IFRBUkdFVF9SRVNPTFZFX09WRVJMT0FERURfQlVJ TFRJTi4gICovDQo+ICtzdGF0aWMgdHJlZQ0KPiArcmlzY3ZfcmVzb2x2ZV9v dmVybG9hZGVkX2J1aWx0aW4gKHVuc2lnbmVkIGludCB1bmNhc3RfbG9jYXRp b24sIHRyZWUgZm5kZWNsLA0KPiArICAgdm9pZCAqdW5jYXN0X2FyZ2xpc3Qp DQo+ICt7DQo+ICsgIHZlYzx0cmVlLCB2YV9nYz4gZW1wdHkgPSB7fTsNCj4g KyAgbG9jYXRpb25fdCBsb2MgPSAobG9jYXRpb25fdCkgdW5jYXN0X2xvY2F0 aW9uOw0KPiArICB2ZWM8dHJlZSwgdmFfZ2M+ICphcmdsaXN0ID0gKHZlYzx0 cmVlLCB2YV9nYz4gKikgdW5jYXN0X2FyZ2xpc3Q7DQo+ICsgIHVuc2lnbmVk IGludCBjb2RlID0gREVDTF9NRF9GVU5DVElPTl9DT0RFIChmbmRlY2wpOw0K PiArICB1bnNpZ25lZCBpbnQgc3ViY29kZSA9IGNvZGUgPj4gUklTQ1ZfQlVJ TFRJTl9TSElGVDsNCj4gKyAgdHJlZSBuZXdfZm5kZWNsID0gTlVMTF9UUkVF Ow0KPiArDQo+ICsgIGlmICghYXJnbGlzdCkNCj4gKyAgICBhcmdsaXN0ID0g JmVtcHR5Ow0KPiArDQo+ICsgIHN3aXRjaCAoY29kZSAmIFJJU0NWX0JVSUxU SU5fQ0xBU1MpDQo+ICsgICAgew0KPiArICAgIGNhc2UgUklTQ1ZfQlVJTFRJ Tl9HRU5FUkFMOg0KPiArICAgICAgYnJlYWs7DQo+ICsgICAgY2FzZSBSSVND Vl9CVUlMVElOX1ZFQ1RPUjoNCj4gKyAgICAgIG5ld19mbmRlY2wgPSByaXNj dl92ZWN0b3I6OnJlc29sdmVfb3ZlcmxvYWRlZF9idWlsdGluIChzdWJjb2Rl LCBhcmdsaXN0KTsNCj4gKyAgICAgIGJyZWFrOw0KPiArICAgIGRlZmF1bHQ6 DQo+ICsgICAgICBnY2NfdW5yZWFjaGFibGUgKCk7DQo+ICsgICAgfQ0KPiAr DQo+ICsgIGlmIChuZXdfZm5kZWNsID09IE5VTExfVFJFRSkNCj4gKyAgICBy ZXR1cm4gbmV3X2ZuZGVjbDsNCj4gKw0KPiArICByZXR1cm4gYnVpbGRfZnVu Y3Rpb25fY2FsbF92ZWMgKGxvYywgdk5VTEwsIG5ld19mbmRlY2wsIGFyZ2xp c3QsIE5VTEwsDQo+ICsgICBmbmRlY2wpOw0KPiArfQ0KPiArDQo+IC8qIElt cGxlbWVudCBSRUdJU1RFUl9UQVJHRVRfUFJBR01BUy4gICovDQo+IHZvaWQN Cj4gcmlzY3ZfcmVnaXN0ZXJfcHJhZ21hcyAodm9pZCkNCj4gew0KPiArICB0 YXJnZXRtLnJlc29sdmVfb3ZlcmxvYWRlZF9idWlsdGluID0gcmlzY3ZfcmVz b2x2ZV9vdmVybG9hZGVkX2J1aWx0aW47DQo+ICAgIHRhcmdldG0uY2hlY2tf YnVpbHRpbl9jYWxsID0gcmlzY3ZfY2hlY2tfYnVpbHRpbl9jYWxsOw0KPiAg ICBjX3JlZ2lzdGVyX3ByYWdtYSAoInJpc2N2IiwgImludHJpbnNpYyIsIHJp c2N2X3ByYWdtYV9pbnRyaW5zaWMpOw0KPiB9DQo+IGRpZmYgLS1naXQgYS9n Y2MvY29uZmlnL3Jpc2N2L3Jpc2N2LXByb3Rvcy5oIGIvZ2NjL2NvbmZpZy9y aXNjdi9yaXNjdi1wcm90b3MuaA0KPiBpbmRleCAyOTI2ZDVkNTBkNS4uNTgz NjMzM2JjNWQgMTAwNjQ0DQo+IC0tLSBhL2djYy9jb25maWcvcmlzY3Yvcmlz Y3YtcHJvdG9zLmgNCj4gKysrIGIvZ2NjL2NvbmZpZy9yaXNjdi9yaXNjdi1w cm90b3MuaA0KPiBAQCAtNDMwLDYgKzQzMCw3IEBAIGdpbXBsZSAqZ2ltcGxl X2ZvbGRfYnVpbHRpbiAodW5zaWduZWQgaW50LCBnaW1wbGVfc3RtdF9pdGVy YXRvciAqLCBnY2FsbCAqKTsNCj4gcnR4IGV4cGFuZF9idWlsdGluICh1bnNp Z25lZCBpbnQsIHRyZWUsIHJ0eCk7DQo+IGJvb2wgY2hlY2tfYnVpbHRpbl9j YWxsIChsb2NhdGlvbl90LCB2ZWM8bG9jYXRpb25fdD4sIHVuc2lnbmVkIGlu dCwNCj4gICAgdHJlZSwgdW5zaWduZWQgaW50LCB0cmVlICopOw0KPiArdHJl ZSByZXNvbHZlX292ZXJsb2FkZWRfYnVpbHRpbiAodW5zaWduZWQgaW50LCB2 ZWM8dHJlZSwgdmFfZ2M+ICopOw0KPiBib29sIGNvbnN0X3ZlY19hbGxfc2Ft ZV9pbl9yYW5nZV9wIChydHgsIEhPU1RfV0lERV9JTlQsIEhPU1RfV0lERV9J TlQpOw0KPiBib29sIGxlZ2l0aW1pemVfbW92ZSAocnR4LCBydHggKik7DQo+ IHZvaWQgZW1pdF92bG1heF92c2V0dmwgKG1hY2hpbmVfbW9kZSwgcnR4KTsN Cj4gZGlmZiAtLWdpdCBhL2djYy9jb25maWcvcmlzY3YvcmlzY3YtdmVjdG9y LWJ1aWx0aW5zLWJhc2VzLmNjIGIvZ2NjL2NvbmZpZy9yaXNjdi9yaXNjdi12 ZWN0b3ItYnVpbHRpbnMtYmFzZXMuY2MNCj4gaW5kZXggMGIxNDA5YTUyZTAu LjliYzJiZTJhNmRhIDEwMDY0NA0KPiAtLS0gYS9nY2MvY29uZmlnL3Jpc2N2 L3Jpc2N2LXZlY3Rvci1idWlsdGlucy1iYXNlcy5jYw0KPiArKysgYi9nY2Mv Y29uZmlnL3Jpc2N2L3Jpc2N2LXZlY3Rvci1idWlsdGlucy1iYXNlcy5jYw0K PiBAQCAtMjYyLDcgKzI2Miw4IEBAIHB1YmxpYzoNCj4gICAgIHZyZW11L3Zz YWRkL3ZzYWRkdS92c3N1Yi92c3N1YnUNCj4gICAgIHZmYWRkL3Zmc3ViLw0K PiAqLw0KPiAtdGVtcGxhdGU8cnR4X2NvZGUgQ09ERSwgZW51bSBmcm1fb3Bf dHlwZSBGUk1fT1AgPSBOT19GUk0+DQo+ICt0ZW1wbGF0ZSA8cnR4X2NvZGUg Q09ERSwgYm9vbCBNQVlfUkVRVUlSRV9GUk0gPSBmYWxzZSwNCj4gKyAgIGVu dW0gZnJtX29wX3R5cGUgRlJNX09QID0gTk9fRlJNPg0KPiBjbGFzcyBiaW5v cCA6IHB1YmxpYyBmdW5jdGlvbl9iYXNlDQo+IHsNCj4gcHVibGljOg0KPiBA QCAtMjcxLDYgKzI3Miw4IEBAIHB1YmxpYzoNCj4gICAgICByZXR1cm4gRlJN X09QID09IEhBU19GUk07DQo+ICAgIH0NCj4gKyAgYm9vbCBtYXlfcmVxdWly ZV9mcm1fcCAoKSBjb25zdCBvdmVycmlkZSB7IHJldHVybiBNQVlfUkVRVUlS RV9GUk07IH0NCj4gKw0KPiAgICBydHggZXhwYW5kIChmdW5jdGlvbl9leHBh bmRlciAmZSkgY29uc3Qgb3ZlcnJpZGUNCj4gICAgew0KPiAgICAgIHN3aXRj aCAoZS5vcF9pbmZvLT5vcCkNCj4gQEAgLTMwOCw2ICszMTEsOCBAQCBwdWJs aWM6DQo+ICAgICAgcmV0dXJuIEZSTV9PUCA9PSBIQVNfRlJNOw0KPiAgICB9 DQo+ICsgIGJvb2wgbWF5X3JlcXVpcmVfZnJtX3AgKCkgY29uc3Qgb3ZlcnJp ZGUgeyByZXR1cm4gdHJ1ZTsgfQ0KPiArDQo+ICAgIHJ0eCBleHBhbmQgKGZ1 bmN0aW9uX2V4cGFuZGVyICZlKSBjb25zdCBvdmVycmlkZQ0KPiAgICB7DQo+ ICAgICAgcmV0dXJuIGUudXNlX2V4YWN0X2luc24gKGNvZGVfZm9yX3ByZWQg KENPREUsIGUudmVjdG9yX21vZGUgKCkpKTsNCj4gQEAgLTM5Nyw2ICs0MDIs OCBAQCBwdWJsaWM6DQo+ICAgICAgcmV0dXJuIEZSTV9PUCA9PSBIQVNfRlJN Ow0KPiAgICB9DQo+ICsgIGJvb2wgbWF5X3JlcXVpcmVfZnJtX3AgKCkgY29u c3Qgb3ZlcnJpZGUgeyByZXR1cm4gdHJ1ZTsgfQ0KPiArDQo+ICAgIHJ0eCBl eHBhbmQgKGZ1bmN0aW9uX2V4cGFuZGVyICZlKSBjb25zdCBvdmVycmlkZQ0K PiAgICB7DQo+ICAgICAgc3dpdGNoIChlLm9wX2luZm8tPm9wKQ0KPiBAQCAt NjMwLDYgKzYzNyw4IEBAIGNsYXNzIHNhdF9vcCA6IHB1YmxpYyBmdW5jdGlv bl9iYXNlDQo+IHB1YmxpYzoNCj4gICAgYm9vbCBoYXNfcm91bmRpbmdfbW9k ZV9vcGVyYW5kX3AgKCkgY29uc3Qgb3ZlcnJpZGUgeyByZXR1cm4gdHJ1ZTsg fQ0KPiArICBib29sIG1heV9yZXF1aXJlX3Z4cm1fcCAoKSBjb25zdCBvdmVy cmlkZSB7IHJldHVybiB0cnVlOyB9DQo+ICsNCj4gICAgcnR4IGV4cGFuZCAo ZnVuY3Rpb25fZXhwYW5kZXIgJmUpIGNvbnN0IG92ZXJyaWRlDQo+ICAgIHsN Cj4gICAgICBzd2l0Y2ggKGUub3BfaW5mby0+b3ApDQo+IEBAIC02NTIsNiAr NjYxLDggQEAgY2xhc3Mgdm5jbGlwIDogcHVibGljIGZ1bmN0aW9uX2Jhc2UN Cj4gcHVibGljOg0KPiAgICBib29sIGhhc19yb3VuZGluZ19tb2RlX29wZXJh bmRfcCAoKSBjb25zdCBvdmVycmlkZSB7IHJldHVybiB0cnVlOyB9DQo+ICsg IGJvb2wgbWF5X3JlcXVpcmVfdnhybV9wICgpIGNvbnN0IG92ZXJyaWRlIHsg cmV0dXJuIHRydWU7IH0NCj4gKw0KPiAgICBydHggZXhwYW5kIChmdW5jdGlv bl9leHBhbmRlciAmZSkgY29uc3Qgb3ZlcnJpZGUNCj4gICAgew0KPiAgICAg IHN3aXRjaCAoZS5vcF9pbmZvLT5vcCkNCj4gQEAgLTEwMjQsNiArMTAzNSw4 IEBAIHB1YmxpYzoNCj4gICAgICByZXR1cm4gRlJNX09QID09IEhBU19GUk07 DQo+ICAgIH0NCj4gKyAgYm9vbCBtYXlfcmVxdWlyZV9mcm1fcCAoKSBjb25z dCBvdmVycmlkZSB7IHJldHVybiB0cnVlOyB9DQo+ICsNCj4gICAgcnR4IGV4 cGFuZCAoZnVuY3Rpb25fZXhwYW5kZXIgJmUpIGNvbnN0IG92ZXJyaWRlDQo+ ICAgIHsNCj4gICAgICByZXR1cm4gZS51c2VfZXhhY3RfaW5zbiAoDQo+IEBA IC0xMDQwLDYgKzEwNTMsOCBAQCBwdWJsaWM6DQo+ICAgICAgcmV0dXJuIEZS TV9PUCA9PSBIQVNfRlJNOw0KPiAgICB9DQo+ICsgIGJvb2wgbWF5X3JlcXVp cmVfZnJtX3AgKCkgY29uc3Qgb3ZlcnJpZGUgeyByZXR1cm4gdHJ1ZTsgfQ0K PiArDQo+ICAgIGJvb2wgaGFzX21lcmdlX29wZXJhbmRfcCAoKSBjb25zdCBv dmVycmlkZSB7IHJldHVybiBmYWxzZTsgfQ0KPiAgICBydHggZXhwYW5kIChm dW5jdGlvbl9leHBhbmRlciAmZSkgY29uc3Qgb3ZlcnJpZGUNCj4gQEAgLTEw NjQsNiArMTA3OSw4IEBAIHB1YmxpYzoNCj4gICAgICByZXR1cm4gRlJNX09Q ID09IEhBU19GUk07DQo+ICAgIH0NCj4gKyAgYm9vbCBtYXlfcmVxdWlyZV9m cm1fcCAoKSBjb25zdCBvdmVycmlkZSB7IHJldHVybiB0cnVlOyB9DQo+ICsN Cj4gICAgYm9vbCBoYXNfbWVyZ2Vfb3BlcmFuZF9wICgpIGNvbnN0IG92ZXJy aWRlIHsgcmV0dXJuIGZhbHNlOyB9DQo+ICAgIHJ0eCBleHBhbmQgKGZ1bmN0 aW9uX2V4cGFuZGVyICZlKSBjb25zdCBvdmVycmlkZQ0KPiBAQCAtMTA4Nyw2 ICsxMTA0LDggQEAgcHVibGljOg0KPiAgICAgIHJldHVybiBGUk1fT1AgPT0g SEFTX0ZSTTsNCj4gICAgfQ0KPiArICBib29sIG1heV9yZXF1aXJlX2ZybV9w ICgpIGNvbnN0IG92ZXJyaWRlIHsgcmV0dXJuIHRydWU7IH0NCj4gKw0KPiAg ICBib29sIGhhc19tZXJnZV9vcGVyYW5kX3AgKCkgY29uc3Qgb3ZlcnJpZGUg eyByZXR1cm4gZmFsc2U7IH0NCj4gICAgcnR4IGV4cGFuZCAoZnVuY3Rpb25f ZXhwYW5kZXIgJmUpIGNvbnN0IG92ZXJyaWRlDQo+IEBAIC0xMTExLDYgKzEx MzAsOCBAQCBwdWJsaWM6DQo+ICAgICAgcmV0dXJuIEZSTV9PUCA9PSBIQVNf RlJNOw0KPiAgICB9DQo+ICsgIGJvb2wgbWF5X3JlcXVpcmVfZnJtX3AgKCkg Y29uc3Qgb3ZlcnJpZGUgeyByZXR1cm4gdHJ1ZTsgfQ0KPiArDQo+ICAgIGJv b2wgaGFzX21lcmdlX29wZXJhbmRfcCAoKSBjb25zdCBvdmVycmlkZSB7IHJl dHVybiBmYWxzZTsgfQ0KPiAgICBydHggZXhwYW5kIChmdW5jdGlvbl9leHBh bmRlciAmZSkgY29uc3Qgb3ZlcnJpZGUNCj4gQEAgLTExMzQsNiArMTE1NSw4 IEBAIHB1YmxpYzoNCj4gICAgICByZXR1cm4gRlJNX09QID09IEhBU19GUk07 DQo+ICAgIH0NCj4gKyAgYm9vbCBtYXlfcmVxdWlyZV9mcm1fcCAoKSBjb25z dCBvdmVycmlkZSB7IHJldHVybiB0cnVlOyB9DQo+ICsNCj4gICAgYm9vbCBo YXNfbWVyZ2Vfb3BlcmFuZF9wICgpIGNvbnN0IG92ZXJyaWRlIHsgcmV0dXJu IGZhbHNlOyB9DQo+ICAgIHJ0eCBleHBhbmQgKGZ1bmN0aW9uX2V4cGFuZGVy ICZlKSBjb25zdCBvdmVycmlkZQ0KPiBAQCAtMTE1Nyw2ICsxMTgwLDggQEAg cHVibGljOg0KPiAgICAgIHJldHVybiBGUk1fT1AgPT0gSEFTX0ZSTTsNCj4g ICAgfQ0KPiArICBib29sIG1heV9yZXF1aXJlX2ZybV9wICgpIGNvbnN0IG92 ZXJyaWRlIHsgcmV0dXJuIHRydWU7IH0NCj4gKw0KPiAgICBib29sIGhhc19t ZXJnZV9vcGVyYW5kX3AgKCkgY29uc3Qgb3ZlcnJpZGUgeyByZXR1cm4gZmFs c2U7IH0NCj4gICAgcnR4IGV4cGFuZCAoZnVuY3Rpb25fZXhwYW5kZXIgJmUp IGNvbnN0IG92ZXJyaWRlDQo+IEBAIC0xMTgxLDYgKzEyMDYsOCBAQCBwdWJs aWM6DQo+ICAgICAgcmV0dXJuIEZSTV9PUCA9PSBIQVNfRlJNOw0KPiAgICB9 DQo+ICsgIGJvb2wgbWF5X3JlcXVpcmVfZnJtX3AgKCkgY29uc3Qgb3ZlcnJp ZGUgeyByZXR1cm4gdHJ1ZTsgfQ0KPiArDQo+ICAgIGJvb2wgaGFzX21lcmdl X29wZXJhbmRfcCAoKSBjb25zdCBvdmVycmlkZSB7IHJldHVybiBmYWxzZTsg fQ0KPiAgICBydHggZXhwYW5kIChmdW5jdGlvbl9leHBhbmRlciAmZSkgY29u c3Qgb3ZlcnJpZGUNCj4gQEAgLTEyMDQsNiArMTIzMSw4IEBAIHB1YmxpYzoN Cj4gICAgICByZXR1cm4gRlJNX09QID09IEhBU19GUk07DQo+ICAgIH0NCj4g KyAgYm9vbCBtYXlfcmVxdWlyZV9mcm1fcCAoKSBjb25zdCBvdmVycmlkZSB7 IHJldHVybiB0cnVlOyB9DQo+ICsNCj4gICAgYm9vbCBoYXNfbWVyZ2Vfb3Bl cmFuZF9wICgpIGNvbnN0IG92ZXJyaWRlIHsgcmV0dXJuIGZhbHNlOyB9DQo+ ICAgIHJ0eCBleHBhbmQgKGZ1bmN0aW9uX2V4cGFuZGVyICZlKSBjb25zdCBv dmVycmlkZQ0KPiBAQCAtMTIyOCw2ICsxMjU3LDggQEAgcHVibGljOg0KPiAg ICAgIHJldHVybiBGUk1fT1AgPT0gSEFTX0ZSTTsNCj4gICAgfQ0KPiArICBi b29sIG1heV9yZXF1aXJlX2ZybV9wICgpIGNvbnN0IG92ZXJyaWRlIHsgcmV0 dXJuIHRydWU7IH0NCj4gKw0KPiAgICBib29sIGhhc19tZXJnZV9vcGVyYW5k X3AgKCkgY29uc3Qgb3ZlcnJpZGUgeyByZXR1cm4gZmFsc2U7IH0NCj4gICAg cnR4IGV4cGFuZCAoZnVuY3Rpb25fZXhwYW5kZXIgJmUpIGNvbnN0IG92ZXJy aWRlDQo+IEBAIC0xMjUxLDYgKzEyODIsOCBAQCBwdWJsaWM6DQo+ICAgICAg cmV0dXJuIEZSTV9PUCA9PSBIQVNfRlJNOw0KPiAgICB9DQo+ICsgIGJvb2wg bWF5X3JlcXVpcmVfZnJtX3AgKCkgY29uc3Qgb3ZlcnJpZGUgeyByZXR1cm4g dHJ1ZTsgfQ0KPiArDQo+ICAgIGJvb2wgaGFzX21lcmdlX29wZXJhbmRfcCAo KSBjb25zdCBvdmVycmlkZSB7IHJldHVybiBmYWxzZTsgfQ0KPiAgICBydHgg ZXhwYW5kIChmdW5jdGlvbl9leHBhbmRlciAmZSkgY29uc3Qgb3ZlcnJpZGUN Cj4gQEAgLTEyNzQsNiArMTMwNyw4IEBAIHB1YmxpYzoNCj4gICAgICByZXR1 cm4gRlJNX09QID09IEhBU19GUk07DQo+ICAgIH0NCj4gKyAgYm9vbCBtYXlf cmVxdWlyZV9mcm1fcCAoKSBjb25zdCBvdmVycmlkZSB7IHJldHVybiB0cnVl OyB9DQo+ICsNCj4gICAgYm9vbCBoYXNfbWVyZ2Vfb3BlcmFuZF9wICgpIGNv bnN0IG92ZXJyaWRlIHsgcmV0dXJuIGZhbHNlOyB9DQo+ICAgIHJ0eCBleHBh bmQgKGZ1bmN0aW9uX2V4cGFuZGVyICZlKSBjb25zdCBvdmVycmlkZQ0KPiBA QCAtMTI5Nyw2ICsxMzMyLDggQEAgcHVibGljOg0KPiAgICAgIHJldHVybiBG Uk1fT1AgPT0gSEFTX0ZSTTsNCj4gICAgfQ0KPiArICBib29sIG1heV9yZXF1 aXJlX2ZybV9wICgpIGNvbnN0IG92ZXJyaWRlIHsgcmV0dXJuIHRydWU7IH0N Cj4gKw0KPiAgICBib29sIGhhc19tZXJnZV9vcGVyYW5kX3AgKCkgY29uc3Qg b3ZlcnJpZGUgeyByZXR1cm4gZmFsc2U7IH0NCj4gICAgcnR4IGV4cGFuZCAo ZnVuY3Rpb25fZXhwYW5kZXIgJmUpIGNvbnN0IG92ZXJyaWRlDQo+IEBAIC0x MzIxLDYgKzEzNTgsOCBAQCBwdWJsaWM6DQo+ICAgICAgcmV0dXJuIEZSTV9P UCA9PSBIQVNfRlJNOw0KPiAgICB9DQo+ICsgIGJvb2wgbWF5X3JlcXVpcmVf ZnJtX3AgKCkgY29uc3Qgb3ZlcnJpZGUgeyByZXR1cm4gdHJ1ZTsgfQ0KPiAr DQo+ICAgIHJ0eCBleHBhbmQgKGZ1bmN0aW9uX2V4cGFuZGVyICZlKSBjb25z dCBvdmVycmlkZQ0KPiAgICB7DQo+ICAgICAgaWYgKGUub3BfaW5mby0+b3Ag PT0gT1BfVFlQRV92ZikNCj4gQEAgLTEzOTIsNiArMTQzMSw4IEBAIHB1Ymxp YzoNCj4gICAgICByZXR1cm4gRlJNX09QID09IEhBU19GUk07DQo+ICAgIH0N Cj4gKyAgYm9vbCBtYXlfcmVxdWlyZV9mcm1fcCAoKSBjb25zdCBvdmVycmlk ZSB7IHJldHVybiB0cnVlOyB9DQo+ICsNCj4gICAgcnR4IGV4cGFuZCAoZnVu Y3Rpb25fZXhwYW5kZXIgJmUpIGNvbnN0IG92ZXJyaWRlDQo+ICAgIHsNCj4g ICAgICByZXR1cm4gZS51c2VfZXhhY3RfaW5zbiAoY29kZV9mb3JfcHJlZF9m Y3Z0X3hfZiAoVU5TUEVDLCBlLmFyZ19tb2RlICgwKSkpOw0KPiBAQCAtMTQx OCw2ICsxNDU5LDggQEAgcHVibGljOg0KPiAgICAgIHJldHVybiBGUk1fT1Ag PT0gSEFTX0ZSTTsNCj4gICAgfQ0KPiArICBib29sIG1heV9yZXF1aXJlX2Zy bV9wICgpIGNvbnN0IG92ZXJyaWRlIHsgcmV0dXJuIHRydWU7IH0NCj4gKw0K PiAgICBydHggZXhwYW5kIChmdW5jdGlvbl9leHBhbmRlciAmZSkgY29uc3Qg b3ZlcnJpZGUNCj4gICAgew0KPiAgICAgIGlmIChlLm9wX2luZm8tPm9wID09 IE9QX1RZUEVfeF92KQ0KPiBAQCAtMTQzOSw2ICsxNDgyLDggQEAgcHVibGlj Og0KPiAgICAgIHJldHVybiBGUk1fT1AgPT0gSEFTX0ZSTTsNCj4gICAgfQ0K PiArICBib29sIG1heV9yZXF1aXJlX2ZybV9wICgpIGNvbnN0IG92ZXJyaWRl IHsgcmV0dXJuIHRydWU7IH0NCj4gKw0KPiAgICBydHggZXhwYW5kIChmdW5j dGlvbl9leHBhbmRlciAmZSkgY29uc3Qgb3ZlcnJpZGUNCj4gICAgew0KPiAg ICAgIHJldHVybiBlLnVzZV9leGFjdF9pbnNuICgNCj4gQEAgLTE0ODMsNiAr MTUyOCw4IEBAIHB1YmxpYzoNCj4gICAgICByZXR1cm4gRlJNX09QID09IEhB U19GUk07DQo+ICAgIH0NCj4gKyAgYm9vbCBtYXlfcmVxdWlyZV9mcm1fcCAo KSBjb25zdCBvdmVycmlkZSB7IHJldHVybiB0cnVlOyB9DQo+ICsNCj4gICAg cnR4IGV4cGFuZCAoZnVuY3Rpb25fZXhwYW5kZXIgJmUpIGNvbnN0IG92ZXJy aWRlDQo+ICAgIHsNCj4gICAgICByZXR1cm4gZS51c2VfZXhhY3RfaW5zbiAo DQo+IEBAIC0xNTEwLDYgKzE1NTcsOCBAQCBwdWJsaWM6DQo+ICAgICAgcmV0 dXJuIEZSTV9PUCA9PSBIQVNfRlJNOw0KPiAgICB9DQo+ICsgIGJvb2wgbWF5 X3JlcXVpcmVfZnJtX3AgKCkgY29uc3Qgb3ZlcnJpZGUgeyByZXR1cm4gdHJ1 ZTsgfQ0KPiArDQo+ICAgIHJ0eCBleHBhbmQgKGZ1bmN0aW9uX2V4cGFuZGVy ICZlKSBjb25zdCBvdmVycmlkZQ0KPiAgICB7DQo+ICAgICAgaWYgKGUub3Bf aW5mby0+b3AgPT0gT1BfVFlQRV9mX3cpDQo+IEBAIC0xNTU1LDYgKzE2MDQs OCBAQCBwdWJsaWM6DQo+ICAgICAgcmV0dXJuIEZSTV9PUCA9PSBIQVNfRlJN Ow0KPiAgICB9DQo+ICsgIGJvb2wgbWF5X3JlcXVpcmVfZnJtX3AgKCkgY29u c3Qgb3ZlcnJpZGUgeyByZXR1cm4gdHJ1ZTsgfQ0KPiArDQo+ICAgIGJvb2wg YXBwbHlfbWFza19wb2xpY3lfcCAoKSBjb25zdCBvdmVycmlkZSB7IHJldHVy biBmYWxzZTsgfQ0KPiAgICBydHggZXhwYW5kIChmdW5jdGlvbl9leHBhbmRl ciAmZSkgY29uc3Qgb3ZlcnJpZGUNCj4gQEAgLTIxNjQsMjAgKzIyMTUsMjAg QEAgc3RhdGljIENPTlNURVhQUiBjb25zdCBtYXNrX21pc2M8VU5TUEVDX1ZN U0lGPiB2bXNpZl9vYmo7DQo+IHN0YXRpYyBDT05TVEVYUFIgY29uc3QgbWFz a19taXNjPFVOU1BFQ19WTVNPRj4gdm1zb2Zfb2JqOw0KPiBzdGF0aWMgQ09O U1RFWFBSIGNvbnN0IHZpb3RhIHZpb3RhX29iajsNCj4gc3RhdGljIENPTlNU RVhQUiBjb25zdCB2aWQgdmlkX29iajsNCj4gLXN0YXRpYyBDT05TVEVYUFIg Y29uc3QgYmlub3A8UExVUz4gdmZhZGRfb2JqOw0KPiAtc3RhdGljIENPTlNU RVhQUiBjb25zdCBiaW5vcDxNSU5VUz4gdmZzdWJfb2JqOw0KPiAtc3RhdGlj IENPTlNURVhQUiBjb25zdCBiaW5vcDxQTFVTLCBIQVNfRlJNPiB2ZmFkZF9m cm1fb2JqOw0KPiAtc3RhdGljIENPTlNURVhQUiBjb25zdCBiaW5vcDxNSU5V UywgSEFTX0ZSTT4gdmZzdWJfZnJtX29iajsNCj4gK3N0YXRpYyBDT05TVEVY UFIgY29uc3QgYmlub3A8UExVUywgdHJ1ZT4gdmZhZGRfb2JqOw0KPiArc3Rh dGljIENPTlNURVhQUiBjb25zdCBiaW5vcDxNSU5VUywgdHJ1ZT4gdmZzdWJf b2JqOw0KPiArc3RhdGljIENPTlNURVhQUiBjb25zdCBiaW5vcDxQTFVTLCB0 cnVlLCBIQVNfRlJNPiB2ZmFkZF9mcm1fb2JqOw0KPiArc3RhdGljIENPTlNU RVhQUiBjb25zdCBiaW5vcDxNSU5VUywgdHJ1ZSwgSEFTX0ZSTT4gdmZzdWJf ZnJtX29iajsNCj4gc3RhdGljIENPTlNURVhQUiBjb25zdCByZXZlcnNlX2Jp bm9wPE1JTlVTPiB2ZnJzdWJfb2JqOw0KPiBzdGF0aWMgQ09OU1RFWFBSIGNv bnN0IHJldmVyc2VfYmlub3A8TUlOVVMsIEhBU19GUk0+IHZmcnN1Yl9mcm1f b2JqOw0KPiBzdGF0aWMgQ09OU1RFWFBSIGNvbnN0IHdpZGVuX2Jpbm9wX2Zw PFBMVVM+IHZmd2FkZF9vYmo7DQo+IHN0YXRpYyBDT05TVEVYUFIgY29uc3Qg d2lkZW5fYmlub3BfZnA8UExVUywgSEFTX0ZSTT4gdmZ3YWRkX2ZybV9vYmo7 DQo+IHN0YXRpYyBDT05TVEVYUFIgY29uc3Qgd2lkZW5fYmlub3BfZnA8TUlO VVM+IHZmd3N1Yl9vYmo7DQo+IHN0YXRpYyBDT05TVEVYUFIgY29uc3Qgd2lk ZW5fYmlub3BfZnA8TUlOVVMsIEhBU19GUk0+IHZmd3N1Yl9mcm1fb2JqOw0K PiAtc3RhdGljIENPTlNURVhQUiBjb25zdCBiaW5vcDxNVUxUPiB2Zm11bF9v Ymo7DQo+IC1zdGF0aWMgQ09OU1RFWFBSIGNvbnN0IGJpbm9wPE1VTFQsIEhB U19GUk0+IHZmbXVsX2ZybV9vYmo7DQo+IC1zdGF0aWMgQ09OU1RFWFBSIGNv bnN0IGJpbm9wPERJVj4gdmZkaXZfb2JqOw0KPiAtc3RhdGljIENPTlNURVhQ UiBjb25zdCBiaW5vcDxESVYsIEhBU19GUk0+IHZmZGl2X2ZybV9vYmo7DQo+ ICtzdGF0aWMgQ09OU1RFWFBSIGNvbnN0IGJpbm9wPE1VTFQsIHRydWU+IHZm bXVsX29iajsNCj4gK3N0YXRpYyBDT05TVEVYUFIgY29uc3QgYmlub3A8TVVM VCwgIHRydWUsIEhBU19GUk0+IHZmbXVsX2ZybV9vYmo7DQo+ICtzdGF0aWMg Q09OU1RFWFBSIGNvbnN0IGJpbm9wPERJViwgdHJ1ZT4gdmZkaXZfb2JqOw0K PiArc3RhdGljIENPTlNURVhQUiBjb25zdCBiaW5vcDxESVYsICB0cnVlLCBI QVNfRlJNPiB2ZmRpdl9mcm1fb2JqOw0KPiBzdGF0aWMgQ09OU1RFWFBSIGNv bnN0IHJldmVyc2VfYmlub3A8RElWPiB2ZnJkaXZfb2JqOw0KPiBzdGF0aWMg Q09OU1RFWFBSIGNvbnN0IHJldmVyc2VfYmlub3A8RElWLCBIQVNfRlJNPiB2 ZnJkaXZfZnJtX29iajsNCj4gc3RhdGljIENPTlNURVhQUiBjb25zdCB3aWRl bl9iaW5vcF9mcDxNVUxUPiB2ZndtdWxfb2JqOw0KPiBkaWZmIC0tZ2l0IGEv Z2NjL2NvbmZpZy9yaXNjdi9yaXNjdi12ZWN0b3ItYnVpbHRpbnMtc2hhcGVz LmNjIGIvZ2NjL2NvbmZpZy9yaXNjdi9yaXNjdi12ZWN0b3ItYnVpbHRpbnMt c2hhcGVzLmNjDQo+IGluZGV4IDBiZGE5MzRhZTE2Li5lZTU3MDQ1OGNlOSAx MDA2NDQNCj4gLS0tIGEvZ2NjL2NvbmZpZy9yaXNjdi9yaXNjdi12ZWN0b3It YnVpbHRpbnMtc2hhcGVzLmNjDQo+ICsrKyBiL2djYy9jb25maWcvcmlzY3Yv cmlzY3YtdmVjdG9yLWJ1aWx0aW5zLXNoYXBlcy5jYw0KPiBAQCAtNDksNiAr NDksNyBAQCBidWlsZF9vbmUgKGZ1bmN0aW9uX2J1aWxkZXIgJmIsIGNvbnN0 IGZ1bmN0aW9uX2dyb3VwX2luZm8gJmdyb3VwLA0KPiAgICAgIGdyb3VwLm9w c19pbmZvcy50eXBlc1t2ZWNfdHlwZV9pZHhdLmluZGV4KTsNCj4gICAgYi5h bGxvY2F0ZV9hcmd1bWVudF90eXBlcyAoZnVuY3Rpb25faW5zdGFuY2UsIGFy Z3VtZW50X3R5cGVzKTsNCj4gICAgYi5hcHBseV9wcmVkaWNhdGlvbiAoZnVu Y3Rpb25faW5zdGFuY2UsIHJldHVybl90eXBlLCBhcmd1bWVudF90eXBlcyk7 DQo+ICsgIGIuYWRkX292ZXJsb2FkZWRfZnVuY3Rpb24gKGZ1bmN0aW9uX2lu c3RhbmNlLCAqZ3JvdXAuc2hhcGUpOw0KPiAgICBiLmFkZF91bmlxdWVfZnVu Y3Rpb24gKGZ1bmN0aW9uX2luc3RhbmNlLCAoKmdyb3VwLnNoYXBlKSwgcmV0 dXJuX3R5cGUsDQo+IGFyZ3VtZW50X3R5cGVzKTsNCj4gfQ0KPiBkaWZmIC0t Z2l0IGEvZ2NjL2NvbmZpZy9yaXNjdi9yaXNjdi12ZWN0b3ItYnVpbHRpbnMu Y2MgYi9nY2MvY29uZmlnL3Jpc2N2L3Jpc2N2LXZlY3Rvci1idWlsdGlucy5j Yw0KPiBpbmRleCA1ZDRkYzI2NGZhNi4uZTc1NjRiOWNmN2MgMTAwNjQ0DQo+ IC0tLSBhL2djYy9jb25maWcvcmlzY3YvcmlzY3YtdmVjdG9yLWJ1aWx0aW5z LmNjDQo+ICsrKyBiL2djYy9jb25maWcvcmlzY3YvcmlzY3YtdmVjdG9yLWJ1 aWx0aW5zLmNjDQo+IEBAIC04MCw2ICs4MCwzMiBAQCBwdWJsaWM6DQo+ICAg IC8qIFRoZSBkZWNsIGl0c2VsZi4gICovDQo+ICAgIHRyZWUgR1RZICgoc2tp cCkpIGRlY2w7DQo+ICsNCj4gKyAgLyogVGhlIG92ZXJsb2FkIGhhc2ggb2Yg bm9uLW92ZXJsb2FkZWQgaW50cmluc2ljIGlzIGRldGVybWluZWQgYnkNCj4g KyAgICAgdGhlIG92ZXJsb2FkIG5hbWUgYW5kIGFyZ3VtZW50IGxpc3QuIEFk ZGluZyB0aGUgb3ZlcmxvYWQgbmFtZSB0bw0KPiArICAgICB0aGUgaGFzaCBp cyBhbHNvIHRvIGFkZHJlc3MgdGhlIGZvbGxvd2luZyBzaXR1YXRpb25zOg0K PiArICAgICB2aW50MTZtZjRfdCAgX19yaXNjdl92cmVpbnRlcnByZXRfaTE2 bWY0ICh2ZmxvYXQxNm1mNF90IHNyYyk7DQo+ICsgICAgIHZ1aW50MTZtZjRf dCBfX3Jpc2N2X3ZyZWludGVycHJldF91MTZtZjQgKHZmbG9hdDE2bWY0X3Qg c3JjKTsNCj4gKyAgICAgVGhlIGJhc2UsIHNoYXBlIGFuZCBhcmd1bWVudCBs aXN0IG9mIHRoZSB2cmVpbnRlcnByZXQgaW5zdGFuY2UgYXJlDQo+ICsgICAg IHRoZSBzYW1lLCBvbmx5IHRoZSBvdmVybG9hZCBuYW1lIGlzIGRpZmZlcmVu dC4gVGhlcmVmb3JlLCBpdCBpcw0KPiArICAgICBlbm91Z2ggdG8gYWRkIG92 ZXJsb2FkX25hbWUgYW5kIGFyZ3VtZW50IGxpc3QgdG8gdGhlIGhhc2ggdmFs dWUuKi8NCj4gKyAgY29uc3QgY2hhciAqb3ZlcmxvYWRfbmFtZTsNCj4gKw0K PiArICAvKiBUaGUgYXJndW1lbnQgbGlzdCBwYXJ0IG9mIHRoZSBoYXNoIHZh bHVlLiBBZGQgdGhlIHVuc2lnbmVkL3NpZ25lZCB0eXBlDQo+ICsgICAgIGFu ZCBtYWNoaW5lIG1vZGUgb2YgZWFjaCBhcmd1bWVudCB0byB0aGUgaGFzaCB2 YWx1ZS4gKi8NCj4gKyAgdmVjPHRyZWU+IEdUWSAoKHNraXApKSBhcmd1bWVu dF90eXBlczsNCj4gKw0KPiArICAvKiBUcnVlIGlmIHRoZSBkZWNsIHJlcHJl c2VudHMgYW4gb3ZlcmxvYWRlZCBmdW5jdGlvbiB0aGF0IG5lZWRzIHRvIGJl DQo+ICsgICAgIHJlc29sdmVkLiAqLw0KPiArICBib29sIG92ZXJsb2FkZWRf cDsNCj4gKw0KPiArICAvKiBUaGUgaGFzaCB2YWx1ZSB0byBpbmRpY2F0ZSB0 aGUgbm9uLW92ZXJsb2FkZWQgZnVuY3Rpb24uIEdlbmVyYXRlIGhhc2ggdmFs dWUNCj4gKyAgICAgYmFzZWQgb24gb3ZlcmxvYWRfbmFtZSBhbmQgYXJndW1l bnRfdHlwZXMuICovDQo+ICsgIGhhc2h2YWxfdCBvdmVybG9hZGVkX2hhc2gg KCkgY29uc3Q7DQo+ICsNCj4gKyAgLyogR2VuZXJhdGUgaGFzaCB2YWx1ZSBi YXNlZCBvbiB0aGUgb3ZlcmxvYWRfbmFtZSBhbmQgdGhlIGFyZ3VtZW50IGxp c3QgcGFzc2VkDQo+ICsgICAgIGJ5IHRoZSB1c2VyIHdoZW4gY2FsbGluZy4g Ki8NCj4gKyAgaGFzaHZhbF90IG92ZXJsb2FkZWRfaGFzaCAoY29uc3QgdmVj PHRyZWUsIHZhX2djPiAmKTsNCj4gfTsNCj4gLyogSGFzaCB0cmFpdHMgZm9y IHJlZ2lzdGVyZWRfZnVuY3Rpb24uICAqLw0KPiBAQCAtOTEsNiArMTE3LDE0 IEBAIHN0cnVjdCByZWdpc3RlcmVkX2Z1bmN0aW9uX2hhc2hlciA6IG5vZnJl ZV9wdHJfaGFzaDxyZWdpc3RlcmVkX2Z1bmN0aW9uPg0KPiAgICBzdGF0aWMg Ym9vbCBlcXVhbCAodmFsdWVfdHlwZSwgY29uc3QgY29tcGFyZV90eXBlICYp Ow0KPiB9Ow0KPiArLyogSGFzaCB0cmFpdHMgZm9yIG92ZXJsb2FkIHJlZ2lz dGVyZWRfZnVuY3Rpb24uICovDQo+ICtzdHJ1Y3Qgbm9uX292ZXJsb2FkZWRf cmVnaXN0ZXJlZF9mdW5jdGlvbl9oYXNoZXINCj4gKyAgOiBub2ZyZWVfcHRy X2hhc2g8cmVnaXN0ZXJlZF9mdW5jdGlvbj4NCj4gK3sNCj4gKyAgc3RhdGlj IGhhc2h2YWxfdCBoYXNoICh2YWx1ZV90eXBlKTsNCj4gKyAgc3RhdGljIGJv b2wgZXF1YWwgKHZhbHVlX3R5cGUsIGNvbnN0IGNvbXBhcmVfdHlwZSAmKTsN Cj4gK307DQo+ICsNCj4gLyogU3RhdGljIGluZm9ybWF0aW9uIGFib3V0IGVh Y2ggUlZWIHR5cGUuICAqLw0KPiBzdGF0aWMgQ09OU1RFWFBSIGNvbnN0IHZl Y3Rvcl90eXBlX2luZm8gdmVjdG9yX3R5cGVzW10gPSB7DQo+ICNkZWZpbmUg REVGX1JWVl9UWVBFKE5BTUUsIE5DSEFSUywgQUJJX05BTUUsIEFSR1MuLi4p ICAgICAgICAgICAgICAgICAgICAgICAgICBcDQo+IEBAIC0yNjExLDYgKzI2 NDUsMTIgQEAgc3RhdGljIEdUWSAoKCkpIHZlYzxyZWdpc3RlcmVkX2Z1bmN0 aW9uICosIHZhX2djPiAqcmVnaXN0ZXJlZF9mdW5jdGlvbnM7DQo+ICAgICBv dmVybG9hZGVkIGZ1bmN0aW9ucy4gICovDQo+IHN0YXRpYyBoYXNoX3RhYmxl PHJlZ2lzdGVyZWRfZnVuY3Rpb25faGFzaGVyPiAqZnVuY3Rpb25fdGFibGU7 DQo+ICsvKiBBbGwgcmVnaXN0ZXJlZCBmdW5jdGlvbiBkZWNscywgaGFzaGVk IG9uIG92ZXJsb2FkX25hbWUgYW5kIGFyZ3VtZW50IGxpc3QNCj4gKyAgIG9m IHRoZSByZWdpc3RlcmVkX2Z1bmN0aW9uLiAgVGhpcyBpcyB1c2VkIGZvciBs b29raW5nIHVwIGltcGxlbWVudGF0aW9ucw0KPiArICAgb2Ygbm9uLW92ZXJs b2FkZWQgZnVuY3Rpb25zLiAqLw0KPiArc3RhdGljIGhhc2hfdGFibGU8bm9u X292ZXJsb2FkZWRfcmVnaXN0ZXJlZF9mdW5jdGlvbl9oYXNoZXI+DQo+ICsg ICpub25fb3ZlcmxvYWRlZF9mdW5jdGlvbl90YWJsZTsNCj4gKw0KPiAvKiBS QUlJIGNsYXNzIGZvciBlbmFibGluZyBlbm91Z2ggUlZWIGZlYXR1cmVzIHRv IGRlZmluZSB0aGUgYnVpbHQtaW4NCj4gICAgIHR5cGVzIGFuZCBpbXBsZW1l bnQgdGhlIHJpc2N2X3ZlY3Rvci5oIHByYWdtYS4NCj4gQEAgLTMzNjksNyAr MzQwOSw5IEBAIGZ1bmN0aW9uX2J1aWxkZXI6OmdldF9hdHRyaWJ1dGVzIChj b25zdCBmdW5jdGlvbl9pbnN0YW5jZSAmaW5zdGFuY2UpDQo+IHJlZ2lzdGVy ZWRfZnVuY3Rpb24gJg0KPiBmdW5jdGlvbl9idWlsZGVyOjphZGRfZnVuY3Rp b24gKGNvbnN0IGZ1bmN0aW9uX2luc3RhbmNlICZpbnN0YW5jZSwNCj4gY29u c3QgY2hhciAqbmFtZSwgdHJlZSBmbnR5cGUsIHRyZWUgYXR0cnMsDQo+IC0g Ym9vbCBwbGFjZWhvbGRlcl9wKQ0KPiArIGJvb2wgcGxhY2Vob2xkZXJfcCwg Y29uc3QgY2hhciAqb3ZlcmxvYWRfbmFtZSwNCj4gKyBjb25zdCB2ZWM8dHJl ZT4gJmFyZ3VtZW50X3R5cGVzLA0KPiArIGJvb2wgb3ZlcmxvYWRlZF9wID0g ZmFsc2UpDQo+IHsNCj4gICAgdW5zaWduZWQgaW50IGNvZGUgPSB2ZWNfc2Fm ZV9sZW5ndGggKHJlZ2lzdGVyZWRfZnVuY3Rpb25zKTsNCj4gICAgY29kZSA9 IChjb2RlIDw8IFJJU0NWX0JVSUxUSU5fU0hJRlQpICsgUklTQ1ZfQlVJTFRJ Tl9WRUNUT1I7DQo+IEBAIC0zMzk1LDYgKzM0MzcsOSBAQCBmdW5jdGlvbl9i dWlsZGVyOjphZGRfZnVuY3Rpb24gKGNvbnN0IGZ1bmN0aW9uX2luc3RhbmNl ICZpbnN0YW5jZSwNCj4gICAgcmVnaXN0ZXJlZF9mdW5jdGlvbiAmcmZuID0g KmdnY19hbGxvYzxyZWdpc3RlcmVkX2Z1bmN0aW9uPiAoKTsNCj4gICAgcmZu Lmluc3RhbmNlID0gaW5zdGFuY2U7DQo+ICAgIHJmbi5kZWNsID0gZGVjbDsN Cj4gKyAgcmZuLm92ZXJsb2FkX25hbWUgPSBvdmVybG9hZF9uYW1lID8geHN0 cmR1cCAob3ZlcmxvYWRfbmFtZSkgOiBOVUxMOw0KPiArICByZm4uYXJndW1l bnRfdHlwZXMgPSBhcmd1bWVudF90eXBlczsNCj4gKyAgcmZuLm92ZXJsb2Fk ZWRfcCA9IG92ZXJsb2FkZWRfcDsNCj4gICAgdmVjX3NhZmVfcHVzaCAocmVn aXN0ZXJlZF9mdW5jdGlvbnMsICZyZm4pOw0KPiAgICByZXR1cm4gcmZuOw0K PiBAQCAtMzQxNSw2ICszNDYwLDEwIEBAIGZ1bmN0aW9uX2J1aWxkZXI6OmFk ZF91bmlxdWVfZnVuY3Rpb24gKGNvbnN0IGZ1bmN0aW9uX2luc3RhbmNlICZp bnN0YW5jZSwNCj4gICAgaWYgKCFjaGVja19yZXF1aXJlZF9leHRlbnNpb25z IChpbnN0YW5jZSkpDQo+ICAgICAgcmV0dXJuOw0KPiArICAvKiBBbHNvIGFk ZCB0aGUgZnVuY3Rpb24gdW5kZXIgaXRzIG92ZXJsb2FkZWQgYWxpYXMsIGlm IHdlIHdhbnQNCj4gKyAgICAgYSBzZXBhcmF0ZSBkZWNsIGZvciBlYWNoIGlu c3RhbmNlIG9mIGFuIG92ZXJsb2FkZWQgZnVuY3Rpb24uICAqLw0KPiArICBj aGFyICpvdmVybG9hZF9uYW1lID0gc2hhcGUtPmdldF9uYW1lICgqdGhpcywg aW5zdGFuY2UsIHRydWUpOw0KPiArDQo+ICAgIC8qIEFkZCB0aGUgZnVuY3Rp b24gdW5kZXIgaXRzIGZ1bGwgKHVuaXF1ZSkgbmFtZS4gICovDQo+ICAgIGNo YXIgKm5hbWUgPSBzaGFwZS0+Z2V0X25hbWUgKCp0aGlzLCBpbnN0YW5jZSwg ZmFsc2UpOw0KPiAgICB0cmVlIGZudHlwZQ0KPiBAQCAtMzQyMiw3ICszNDcx LDggQEAgZnVuY3Rpb25fYnVpbGRlcjo6YWRkX3VuaXF1ZV9mdW5jdGlvbiAo Y29uc3QgZnVuY3Rpb25faW5zdGFuY2UgJmluc3RhbmNlLA0KPiBhcmd1bWVu dF90eXBlcy5hZGRyZXNzICgpKTsNCj4gICAgdHJlZSBhdHRycyA9IGdldF9h dHRyaWJ1dGVzIChpbnN0YW5jZSk7DQo+ICAgIHJlZ2lzdGVyZWRfZnVuY3Rp b24gJnJmbg0KPiAtICAgID0gYWRkX2Z1bmN0aW9uIChpbnN0YW5jZSwgbmFt ZSwgZm50eXBlLCBhdHRycywgZmFsc2UpOw0KPiArICAgID0gYWRkX2Z1bmN0 aW9uIChpbnN0YW5jZSwgbmFtZSwgZm50eXBlLCBhdHRycywgZmFsc2UsIG92 ZXJsb2FkX25hbWUsDQo+ICsgICAgIGFyZ3VtZW50X3R5cGVzLmNvcHkgKCkp Ow0KPiAgICAvKiBFbnRlciB0aGUgZnVuY3Rpb24gaW50byB0aGUgaGFzaCB0 YWJsZS4gICovDQo+ICAgIGhhc2h2YWxfdCBoYXNoID0gaW5zdGFuY2UuaGFz aCAoKTsNCj4gQEAgLTM0MzEsMTkgKzM0ODEsNDUgQEAgZnVuY3Rpb25fYnVp bGRlcjo6YWRkX3VuaXF1ZV9mdW5jdGlvbiAoY29uc3QgZnVuY3Rpb25faW5z dGFuY2UgJmluc3RhbmNlLA0KPiAgICBnY2NfYXNzZXJ0ICghKnJmbl9zbG90 KTsNCj4gICAgKnJmbl9zbG90ID0gJnJmbjsNCj4gLSAgLyogQWxzbyBhZGQg dGhlIGZ1bmN0aW9uIHVuZGVyIGl0cyBvdmVybG9hZGVkIGFsaWFzLCBpZiB3 ZSB3YW50DQo+IC0gICAgIGEgc2VwYXJhdGUgZGVjbCBmb3IgZWFjaCBpbnN0 YW5jZSBvZiBhbiBvdmVybG9hZGVkIGZ1bmN0aW9uLiAgKi8NCj4gLSAgY2hh ciAqb3ZlcmxvYWRfbmFtZSA9IHNoYXBlLT5nZXRfbmFtZSAoKnRoaXMsIGlu c3RhbmNlLCB0cnVlKTsNCj4gICAgaWYgKG92ZXJsb2FkX25hbWUpDQo+ICAg ICAgew0KPiAgICAgICAgLyogQXR0cmlidXRlIGxpc3RzIHNob3VsZG4ndCBi ZSBzaGFyZWQuICAqLw0KPiAgICAgICAgdHJlZSBhdHRycyA9IGdldF9hdHRy aWJ1dGVzIChpbnN0YW5jZSk7DQo+ICAgICAgICBib29sIHBsYWNlaG9sZGVy X3AgPSAhbV9kaXJlY3Rfb3ZlcmxvYWRzOw0KPiAtICAgICAgYWRkX2Z1bmN0 aW9uIChpbnN0YW5jZSwgb3ZlcmxvYWRfbmFtZSwgZm50eXBlLCBhdHRycywg cGxhY2Vob2xkZXJfcCk7DQo+ICsgICAgICBhZGRfZnVuY3Rpb24gKGluc3Rh bmNlLCBvdmVybG9hZF9uYW1lLCBmbnR5cGUsIGF0dHJzLCBwbGFjZWhvbGRl cl9wLCBOVUxMLA0KPiArICAgICB2TlVMTCk7DQo+ICsNCj4gKyAgICAgIC8q IEVudGVyIHRoZSBmdW5jdGlvbiBpbnRvIHRoZSBub24tb3ZlcmxvYWRlZCBo YXNoIHRhYmxlLiAgKi8NCj4gKyAgICAgIGhhc2ggPSByZm4ub3ZlcmxvYWRl ZF9oYXNoICgpOw0KPiArICAgICAgcmZuX3Nsb3QgPSBub25fb3ZlcmxvYWRl ZF9mdW5jdGlvbl90YWJsZS0+ZmluZF9zbG90X3dpdGhfaGFzaCAoJnJmbiwg aGFzaCwNCj4gKyAgICAgIElOU0VSVCk7DQo+ICsgICAgICBnY2NfYXNzZXJ0 ICghKnJmbl9zbG90KTsNCj4gKyAgICAgICpyZm5fc2xvdCA9ICZyZm47DQo+ ICAgICAgfQ0KPiAgICBvYnN0YWNrX2ZyZWUgKCZtX3N0cmluZ19vYnN0YWNr LCBuYW1lKTsNCj4gfQ0KPiArLyogQWRkIG92ZXJsb2FkZWQgZnVuY3Rpb24g Zm9yIGdjYy4gKi8NCj4gK3ZvaWQNCj4gK2Z1bmN0aW9uX2J1aWxkZXI6OmFk ZF9vdmVybG9hZGVkX2Z1bmN0aW9uIChjb25zdCBmdW5jdGlvbl9pbnN0YW5j ZSAmaW5zdGFuY2UsDQo+ICsgICAgY29uc3QgZnVuY3Rpb25fc2hhcGUgKnNo YXBlKQ0KPiArew0KPiArICBpZiAoIWNoZWNrX3JlcXVpcmVkX2V4dGVuc2lv bnMgKGluc3RhbmNlKSkNCj4gKyAgICByZXR1cm47DQo+ICsNCj4gKyAgY2hh ciAqbmFtZSA9IHNoYXBlLT5nZXRfbmFtZSAoKnRoaXMsIGluc3RhbmNlLCB0 cnVlKTsNCj4gKw0KPiArICBpZiAobmFtZSkNCj4gKyAgICB7DQo+ICsgICAg ICAvKiBUbyBhdm9pZCBBUEkgY29uZmxpY3RpbmcsIHRha2Ugdm9pZCByZXR1 cm4gdHlwZSBhbmQgdm9pZCBhcmd1bWVudA0KPiArIGZvciB0aGUgb3Zlcmxv YWRlZCBmdW5jdGlvbi4gICovDQo+ICsgICAgICB0cmVlIGZudHlwZSA9IGJ1 aWxkX2Z1bmN0aW9uX3R5cGUgKHZvaWRfdHlwZV9ub2RlLCB2b2lkX2xpc3Rf bm9kZSk7DQo+ICsgICAgICBhZGRfZnVuY3Rpb24gKGluc3RhbmNlLCBuYW1l LCBmbnR5cGUsIE5VTExfVFJFRSwgbV9kaXJlY3Rfb3ZlcmxvYWRzLCBuYW1l LA0KPiArICAgICB2TlVMTCwgdHJ1ZSk7DQo+ICsgICAgICBvYnN0YWNrX2Zy ZWUgKCZtX3N0cmluZ19vYnN0YWNrLCBuYW1lKTsNCj4gKyAgICB9DQo+ICt9 DQo+ICsNCj4gZnVuY3Rpb25fY2FsbF9pbmZvOjpmdW5jdGlvbl9jYWxsX2lu Zm8gKGxvY2F0aW9uX3QgbG9jYXRpb25faW4sDQo+IGNvbnN0IGZ1bmN0aW9u X2luc3RhbmNlICZpbnN0YW5jZV9pbiwNCj4gdHJlZSBmbmRlY2xfaW4pDQo+ IEBAIC0zOTkxLDYgKzQwNjcsMTIyIEBAIHJlZ2lzdGVyZWRfZnVuY3Rpb25f aGFzaGVyOjplcXVhbCAodmFsdWVfdHlwZSB2YWx1ZSwgY29uc3QgY29tcGFy ZV90eXBlICZrZXkpDQo+ICAgIHJldHVybiB2YWx1ZS0+aW5zdGFuY2UgPT0g a2V5Ow0KPiB9DQo+ICtoYXNodmFsX3QNCj4gK3JlZ2lzdGVyZWRfZnVuY3Rp b246Om92ZXJsb2FkZWRfaGFzaCAoKSBjb25zdA0KPiArew0KPiArICBpbmNo YXNoOjpoYXNoIGg7DQo+ICsgIHRyZWUgdHlwZTsNCj4gKyAgdW5zaWduZWQg aW50IHVuc2lnbmVkX3AsIG1vZGVfcDsNCj4gKyAgaC5hZGQgKG92ZXJsb2Fk X25hbWUsIHN0cmxlbiAob3ZlcmxvYWRfbmFtZSkpOw0KPiArICBmb3IgKHVu c2lnbmVkIGludCBpID0gMDsgaSA8IGFyZ3VtZW50X3R5cGVzLmxlbmd0aCAo KTsgaSsrKQ0KPiArICAgIHsNCj4gKyAgICAgIHR5cGUgPSBhcmd1bWVudF90 eXBlc1tpXTsNCj4gKyAgICAgIHVuc2lnbmVkX3AgPSBQT0lOVEVSX1RZUEVf UCAodHlwZSkgPyBUWVBFX1VOU0lHTkVEIChUUkVFX1RZUEUgKHR5cGUpKQ0K PiArIDogVFlQRV9VTlNJR05FRCAodHlwZSk7DQo+ICsgICAgICBtb2RlX3Ag PSBQT0lOVEVSX1RZUEVfUCAodHlwZSkgPyBUWVBFX01PREUgKFRSRUVfVFlQ RSAodHlwZSkpDQo+ICsgICAgICA6IFRZUEVfTU9ERSAodHlwZSk7DQo+ICsg ICAgICBoLmFkZF9pbnQgKHVuc2lnbmVkX3ApOw0KPiArICAgICAgaC5hZGRf aW50IChtb2RlX3ApOw0KPiArICAgIH0NCj4gKw0KPiArICByZXR1cm4gaC5l bmQgKCk7DQo+ICt9DQo+ICsNCj4gK2Jvb2wNCj4gK2hhc192eHJtX29yX2Zy bV9wIChmdW5jdGlvbl9pbnN0YW5jZSAmaW5zdGFuY2UsIGNvbnN0IHZlYzx0 cmVlLCB2YV9nYz4gJmFyZ2xpc3QpDQo+ICt7DQo+ICsgIGlmIChpbnN0YW5j ZS5iYXNlLT5tYXlfcmVxdWlyZV92eHJtX3AgKCkNCj4gKyAgICAgIHx8IChp bnN0YW5jZS5iYXNlLT5tYXlfcmVxdWlyZV9mcm1fcCAoKQ0KPiArICAgJiYg KFRSRUVfQ09ERSAoVFJFRV9UWVBFIChhcmdsaXN0W2FyZ2xpc3QubGVuZ3Ro ICgpIC0gMl0pKQ0KPiArICAgICAgID09IElOVEVHRVJfVFlQRSkpKQ0KPiAr ICAgIHJldHVybiB0cnVlOw0KPiArICByZXR1cm4gZmFsc2U7DQo+ICt9DQo+ ICsNCj4gK2hhc2h2YWxfdA0KPiArcmVnaXN0ZXJlZF9mdW5jdGlvbjo6b3Zl cmxvYWRlZF9oYXNoIChjb25zdCB2ZWM8dHJlZSwgdmFfZ2M+ICZhcmdsaXN0 KQ0KPiArew0KPiArICBhcmd1bWVudF90eXBlcyA9IHZOVUxMOw0KPiArICB1 bnNpZ25lZCBpbnQgbGVuID0gYXJnbGlzdC5sZW5ndGggKCk7DQo+ICsNCj4g KyAgZm9yICh1bnNpZ25lZCBpbnQgaSA9IDA7IGkgPCBsZW47IGkrKykNCj4g KyAgICB7DQo+ICsgICAgICAvKiB2aW50OG0xX3QgX19yaXNjdl92Z2V0X2k4 bTEodmludDhtMl90IHNyYywgc2l6ZV90IGluZGV4KTsNCj4gKyAgICAgIFdo ZW4gdGhlIHVzZXIgY2FsbHMgdmdldCBpbnRyaW5zaWMsIHRoZSBfX3Jpc2N2 X3ZnZXRfaThtMShzcmMsIDEpDQo+ICsgICAgICAgZm9ybSBpcyB1c2VkLiBU aGUgY29tcGlsZXIgcmVjb2duaXplcyB0aGF0IHRoZSBwYXJhbWV0ZXIgaW5k ZXggaXMgc2lnbmVkDQo+ICsgICAgICAgaW50LCB3aGljaCBpcyBpbmNvbnNp c3RlbnQgd2l0aCBzaXplX3QsIHNvIHRoZSBpbmRleCBpcyBjb252ZXJ0ZWQg dG8NCj4gKyAgICAgICBzaXplX3QgdHlwZSBpbiBvcmRlciB0byBnZXQgY29y cmVjdCBoYXNoIHZhbHVlLiB2aW50OG0yX3QNCj4gKyAgICAgICBfX3Jpc2N2 X3ZzZXQodmludDhtMl90IGRlc3QsIHNpemVfdCBpbmRleCwgdmludDhtMV90 IHZhbHVlKTsgVGhlIHJlYXNvbg0KPiArICAgICAgIGlzIHRoZSBzYW1lIGFz IGFib3ZlLiAqLw0KPiArICAgICAgaWYgKChpbnN0YW5jZS5iYXNlID09IGJh c2VzOjp2Z2V0ICYmIChpID09IChsZW4gLSAxKSkpDQo+ICsgICB8fCAoaW5z dGFuY2UuYmFzZSA9PSBiYXNlczo6dnNldCAmJiAoaSA9PSAobGVuIC0gMikp KSkNCj4gKyBhcmd1bWVudF90eXBlcy5zYWZlX3B1c2ggKHNpemVfdHlwZV9u b2RlKTsNCj4gKyAgICAgIC8qIFZlY3RvciBmaXhlZC1wb2ludCBhcml0aG1l dGljIGluc3RydWN0aW9ucyByZXF1aXJpbmcgYXJndW1lbnQgdnhybS4NCj4g KyAgICAgIEZvciBleGFtcGxlOiB2dWludDMybTRfdCBfX3Jpc2N2X3ZhYWRk dSh2dWludDMybTRfdCB2czIsDQo+ICsgICAgICB2dWludDMybTRfdCB2czEs IHVuc2lnbmVkIGludCB2eHJtLCBzaXplX3QgdmwpOyBUaGUgdXNlciBjYWxs cyB2YWFkZHUNCj4gKyAgICAgIGludHJpbnNpYyBpbiB0aGUgZm9ybSBvZiBf X3Jpc2N2X3ZhYWRkdSh2czIsIHZzMSwgMiwgdmwpLiBUaGUgY29tcGlsZXIN Cj4gKyAgICAgIHJlY29nbml6ZXMgdGhhdCB0aGUgcGFyYW1ldGVyIHZ4cm0g aXMgYSBzaWduZWQgaW50LCB3aGljaCBpcyBpbmNvbnNpc3RlbnQNCj4gKyAg ICAgIHdpdGggdGhlIHBhcmFtZXRlciB1bnNpZ25lZCBpbnQgdnhybSBkZWNs YXJlZCBieSBpbnRyaW5zaWMsIHNvIHRoZQ0KPiArICAgICAgcGFyYW1ldGVy IHZ4cm0gaXMgY29udmVydGVkIHRvIGFuIHVuc2lnbmVkIGludCB0eXBlIGlu IG9yZGVyIHRvIGdldA0KPiArICAgICAgY29ycmVjdCBoYXNoIHZhbHVlLg0K PiArDQo+ICsgICAgICBWZWN0b3IgRmxvYXRpbmctUG9pbnQgSW5zdHJ1Y3Rp b25zIHJlcXVpcmluZyBhcmd1bWVudCBmcm0uDQo+ICsgICAgICBERUZfUlZW X0ZVTkNUSU9OICh2ZmFkZCwgYWx1LCBmdWxsX3ByZWRzLCBmX3Z2dl9vcHMp DQo+ICsgICAgICBERUZfUlZWX0ZVTkNUSU9OICh2ZmFkZF9mcm0sIGFsdV9m cm0sIGZ1bGxfcHJlZHMsIGZfdnZ2X29wcykNCj4gKyAgICAgIFRha2luZyB2 ZmFkZCBhcyBhbiBleGFtcGxlLCB0aGVvcmV0aWNhbGx5IHdlIGNhbiBhZGQg YmFzZSBvciBzaGFwZSB0byB0aGUNCj4gKyAgICAgIGhhc2ggdmFsdWUgdG8g ZGlzdGluZ3Vpc2ggd2hldGhlciB0aGUgZnJtIHBhcmFtZXRlciBpcyByZXF1 aXJlZC4NCj4gKyAgICAgIHZmbG9hdDMybTFfdCBfX3Jpc2N2X3ZmYWRkKHZm bG9hdDMybTFfdCB2czIsIGZsb2F0MzJfdCByczEsIHNpemVfdCB2bCk7DQo+ ICsgICAgICB2ZmxvYXQzMm0xX3QgX19yaXNjdl92ZmFkZCh2ZmxvYXQzMm0x X3QgdnMyLCB2ZmxvYXQzMm0xX3QgdnMxLCB1bnNpZ25lZCBpbnQNCj4gKyAg ICAgIGZybSwgc2l6ZV90IHZsKTsNCj4gKw0KPiArICAgICBIb3dldmVyLCB0 aGUgY3VycmVudCByZWdpc3RyYXRpb24gbWVjaGFuaXNtIG9mIG92ZXJsb2Fk ZWQgaW50aW5zaWMgZm9yIGdjYw0KPiArICAgICAgbGltaXRzIHRoZSBpbnRy aW5zaWMgb2J0YWluZWQgYnkgZW50ZXJpbmcgdGhlIGhvb2sgdG8gYWx3YXlz IGJlIHZmYWRkLCBub3QNCj4gKyAgICAgIHZmYWRkX2ZybS4gVGhlcmVmb3Jl LCB0aGUgY29ycmVjdCBoYXNoIHZhbHVlIGNhbm5vdCBiZSBvYnRhaW5lZCB0 aHJvdWdoIHRoZQ0KPiArICAgICAgcGFyYW1ldGVyIGxpc3QgYW5kIG92ZXJs b2FkIG5hbWUsIGJhc2Ugb3Igc2hhcGUuDQo+ICsgICAgICArLS0tLS0tLS0r LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0t LS0rDQo+ICsgICAgICB8IGluZGV4ICB8IG5hbWUgICAgICAgICAgICAgICAg ICAgICAgfCBraW5kICAgICAgICAgICAgICB8DQo+ICsgICAgICArLS0tLS0t LS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0t LS0tLS0rDQo+ICsgICAgICB8IDEyNDczMyB8IF9fcmlzY3ZfdmZhZGQgICAg ICAgICAgICAgfCBPdmVybG9hZGVkICAgICAgICB8IDwtIEhvb2sgZnVuIGNv ZGUNCj4gKyAgICAgICstLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLSsNCj4gKyAgICAgIHwgMTI0NzM1 IHwgIF9fcmlzY3ZfdmZhZGRfdnZfZjMybTEgICB8IE5vbi1vdmVybG9hZGVk ICAgIHwNCj4gKyAgICAgICstLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLSsNCj4gKyAgICAgIHwgMTI0 NzM3IHwgX19yaXNjdl92ZmFkZCAgICAgICAgICAgICB8IFBsYWNlaG9sZGVy ICAgICAgIHwNCj4gKyAgICAgICstLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLSsNCj4gKyAgICAgIHwg Li4uICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIHwNCj4gKyAgICAgICstLS0tLS0tLSstLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLSsNCj4gKyAgICAg IHwgLi4uICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIHwNCj4gKyAgICAgICstLS0tLS0tLSstLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLSsNCj4gKyAg ICAgIHwgMTI1NzM5IHwgX19yaXNjdl92ZmFkZCAgICAgICAgICAgICB8IE92 ZXJsb2FkZWQgICAgICAgIHwNCj4gKyAgICAgICstLS0tLS0tLSstLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLSsNCj4g KyAgICAgIHwgMTI1NzQxIHwgX19yaXNjdl92ZmFkZF92dl9mMzJtMV9ybSB8 IE5vbi1vdmVybG9hZGVkICAgIHwNCj4gKyAgICAgICstLS0tLS0tLSstLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLSsN Cj4gKyAgICAgIHwgMTI1NzQzIHwgX19yaXNjdl92ZmFkZCAgICAgICAgICAg ICB8IFBsYWNlaG9sZGVyICAgICAgIHwNCj4gKyAgICAgICstLS0tLS0tLSst LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0t LSsNCj4gKw0KPiArICAgICBUaGVyZWZvcmUsIHRoZSBoYXNoIHZhbHVlIGNh bm5vdCBiZSBhZGRlZCB3aXRoIGJhc2Ugb3Igc2hhcGUsIGFuZCBuZWVkcw0K PiArICAgICAgdG8gYmUgZGlzdGluZ3Vpc2hlZCBieSB3aGV0aGVyIHRoZSBw ZW51bHRpbWF0ZSBwYXJhbWV0ZXIgaXMgSU5URUdFUl9UWVBFLiAqLw0KPiAr ICAgICAgZWxzZSBpZiAoaGFzX3Z4cm1fb3JfZnJtX3AgKGluc3RhbmNlLCBh cmdsaXN0KSAmJiAoaSA9PSAobGVuIC0gMikpKQ0KPiArIGFyZ3VtZW50X3R5 cGVzLnNhZmVfcHVzaCAodW5zaWduZWRfdHlwZV9ub2RlKTsNCj4gKyAgICAg IGVsc2UNCj4gKyBhcmd1bWVudF90eXBlcy5zYWZlX3B1c2ggKFRSRUVfVFlQ RSAoYXJnbGlzdFtpXSkpOw0KPiArICAgIH0NCj4gKyAgcmV0dXJuIG92ZXJs b2FkZWRfaGFzaCAoKTsNCj4gK30NCj4gKw0KPiAraW5saW5lIGhhc2h2YWxf dA0KPiArbm9uX292ZXJsb2FkZWRfcmVnaXN0ZXJlZF9mdW5jdGlvbl9oYXNo ZXI6Omhhc2ggKHZhbHVlX3R5cGUgdmFsdWUpDQo+ICt7DQo+ICsgIHJldHVy biB2YWx1ZS0+b3ZlcmxvYWRlZF9oYXNoICgpOw0KPiArfQ0KPiArDQo+ICtp bmxpbmUgYm9vbA0KPiArbm9uX292ZXJsb2FkZWRfcmVnaXN0ZXJlZF9mdW5j dGlvbl9oYXNoZXI6OmVxdWFsICh2YWx1ZV90eXBlIHZhbHVlLA0KPiArICAg Y29uc3QgY29tcGFyZV90eXBlICZrZXkpDQo+ICt7DQo+ICsgIHJldHVybiAo KHN0cmNtcCAodmFsdWUtPm92ZXJsb2FkX25hbWUsIGtleS0+b3ZlcmxvYWRf bmFtZSkgPT0gMCkNCj4gKyAgICYmIHZhbHVlLT5vdmVybG9hZGVkX2hhc2gg KCkgPT0ga2V5LT5vdmVybG9hZGVkX2hhc2ggKCkpOw0KPiArfQ0KPiArDQo+ IC8qIElmIFRZUEUgaXMgYSBidWlsdC1pbiB0eXBlIGRlZmluZWQgYnkgdGhl IFJWViBBQkksIHJldHVybiB0aGUgbWFuZ2xlZCBuYW1lLA0KPiAgICAgb3Ro ZXJ3aXNlIHJldHVybiBOVUxMLiAgKi8NCj4gY29uc3QgY2hhciAqDQo+IEBA IC00MTM5LDcgKzQzMzEsNyBAQCByZWdpc3Rlcl9mcm0gKCkNCj4gdm9pZA0K PiBoYW5kbGVfcHJhZ21hX3ZlY3RvciAoKQ0KPiB7DQo+IC0gIGlmIChmdW5j dGlvbl90YWJsZSkNCj4gKyAgaWYgKGZ1bmN0aW9uX3RhYmxlIHx8IG5vbl9v dmVybG9hZGVkX2Z1bmN0aW9uX3RhYmxlKQ0KPiAgICAgIHsNCj4gICAgICAg IGVycm9yICgiZHVwbGljYXRlIGRlZmluaXRpb24gb2YgJXFzIiwgInJpc2N2 X3ZlY3Rvci5oIik7DQo+ICAgICAgICByZXR1cm47DQo+IEBAIC00MTU2LDYg KzQzNDgsOCBAQCBoYW5kbGVfcHJhZ21hX3ZlY3RvciAoKQ0KPiAgICAvKiBE ZWZpbmUgdGhlIGZ1bmN0aW9ucy4gICovDQo+ICAgIGZ1bmN0aW9uX3RhYmxl ID0gbmV3IGhhc2hfdGFibGU8cmVnaXN0ZXJlZF9mdW5jdGlvbl9oYXNoZXI+ ICgxMDIzKTsNCj4gKyAgbm9uX292ZXJsb2FkZWRfZnVuY3Rpb25fdGFibGUN Cj4gKyAgICA9IG5ldyBoYXNoX3RhYmxlPG5vbl9vdmVybG9hZGVkX3JlZ2lz dGVyZWRfZnVuY3Rpb25faGFzaGVyPiAoMTAyMyk7DQo+ICAgIGZ1bmN0aW9u X2J1aWxkZXIgYnVpbGRlcjsNCj4gICAgZm9yICh1bnNpZ25lZCBpbnQgaSA9 IDA7IGkgPCBBUlJBWV9TSVpFIChmdW5jdGlvbl9ncm91cHMpOyArK2kpDQo+ ICAgICAgYnVpbGRlci5yZWdpc3Rlcl9mdW5jdGlvbl9ncm91cCAoZnVuY3Rp b25fZ3JvdXBzW2ldKTsNCj4gQEAgLTQyMDgsNiArNDQwMiwyNCBAQCBjaGVj a19idWlsdGluX2NhbGwgKGxvY2F0aW9uX3QgbG9jYXRpb24sIHZlYzxsb2Nh dGlvbl90PiwgdW5zaWduZWQgaW50IGNvZGUsDQo+ICAgIFRSRUVfVFlQRSAo cmZuLmRlY2wpLCBuYXJncywgYXJncykuY2hlY2sgKCk7DQo+IH0NCj4gK3Ry ZWUNCj4gK3Jlc29sdmVfb3ZlcmxvYWRlZF9idWlsdGluICh1bnNpZ25lZCBp bnQgY29kZSwgdmVjPHRyZWUsIHZhX2djPiAqYXJnbGlzdCkNCj4gK3sNCj4g KyAgaWYgKGNvZGUgPj0gdmVjX3NhZmVfbGVuZ3RoIChyZWdpc3RlcmVkX2Z1 bmN0aW9ucykpDQo+ICsgICAgcmV0dXJuIE5VTExfVFJFRTsNCj4gKw0KPiAr ICByZWdpc3RlcmVkX2Z1bmN0aW9uICpyZnVuID0gKCpyZWdpc3RlcmVkX2Z1 bmN0aW9ucylbY29kZV07DQo+ICsNCj4gKyAgaWYgKCFyZnVuIHx8ICFyZnVu LT5vdmVybG9hZGVkX3ApDQo+ICsgICAgcmV0dXJuIE5VTExfVFJFRTsNCj4g Kw0KPiArICBoYXNodmFsX3QgaGFzaCA9IHJmdW4tPm92ZXJsb2FkZWRfaGFz aCAoKmFyZ2xpc3QpOw0KPiArICByZWdpc3RlcmVkX2Z1bmN0aW9uICpyZm4N Cj4gKyAgICA9IG5vbl9vdmVybG9hZGVkX2Z1bmN0aW9uX3RhYmxlLT5maW5k X3dpdGhfaGFzaCAocmZ1biwgaGFzaCk7DQo+ICsgIGdjY19hc3NlcnQgKHJm bik7DQo+ICsgIHJldHVybiByZm4tPmRlY2w7DQo+ICt9DQo+ICsNCj4gZnVu Y3Rpb25faW5zdGFuY2UNCj4gZ2V0X3JlYWRfdmxfaW5zdGFuY2UgKHZvaWQp DQo+IHsNCj4gZGlmZiAtLWdpdCBhL2djYy9jb25maWcvcmlzY3YvcmlzY3Yt dmVjdG9yLWJ1aWx0aW5zLmggYi9nY2MvY29uZmlnL3Jpc2N2L3Jpc2N2LXZl Y3Rvci1idWlsdGlucy5oDQo+IGluZGV4IGUzNThhOGU0ZDkxLi5jZDhjY2Fi MTcyNCAxMDA2NDQNCj4gLS0tIGEvZ2NjL2NvbmZpZy9yaXNjdi9yaXNjdi12 ZWN0b3ItYnVpbHRpbnMuaA0KPiArKysgYi9nY2MvY29uZmlnL3Jpc2N2L3Jp c2N2LXZlY3Rvci1idWlsdGlucy5oDQo+IEBAIC0yNzcsNiArMjc3LDggQEAg cHVibGljOg0KPiAgICB2b2lkIGFwcGx5X3ByZWRpY2F0aW9uIChjb25zdCBm dW5jdGlvbl9pbnN0YW5jZSAmLCB0cmVlLCB2ZWM8dHJlZT4gJikgY29uc3Q7 DQo+ICAgIHZvaWQgYWRkX3VuaXF1ZV9mdW5jdGlvbiAoY29uc3QgZnVuY3Rp b25faW5zdGFuY2UgJiwgY29uc3QgZnVuY3Rpb25fc2hhcGUgKiwNCj4gICAg IHRyZWUsIHZlYzx0cmVlPiAmKTsNCj4gKyAgdm9pZCBhZGRfb3ZlcmxvYWRl ZF9mdW5jdGlvbiAoY29uc3QgZnVuY3Rpb25faW5zdGFuY2UgJiwNCj4gKyBj b25zdCBmdW5jdGlvbl9zaGFwZSAqKTsNCj4gICAgdm9pZCByZWdpc3Rlcl9m dW5jdGlvbl9ncm91cCAoY29uc3QgZnVuY3Rpb25fZ3JvdXBfaW5mbyAmKTsN Cj4gICAgdm9pZCBhcHBlbmRfbmFtZSAoY29uc3QgY2hhciAqKTsNCj4gICAg dm9pZCBhcHBlbmRfYmFzZV9uYW1lIChjb25zdCBjaGFyICopOw0KPiBAQCAt Mjg4LDcgKzI5MCw4IEBAIHByaXZhdGU6DQo+ICAgIHRyZWUgZ2V0X2F0dHJp YnV0ZXMgKGNvbnN0IGZ1bmN0aW9uX2luc3RhbmNlICYpOw0KPiAgICByZWdp c3RlcmVkX2Z1bmN0aW9uICZhZGRfZnVuY3Rpb24gKGNvbnN0IGZ1bmN0aW9u X2luc3RhbmNlICYsIGNvbnN0IGNoYXIgKiwNCj4gLSAgICAgIHRyZWUsIHRy ZWUsIGJvb2wpOw0KPiArICAgICAgdHJlZSwgdHJlZSwgYm9vbCwgY29uc3Qg Y2hhciAqLA0KPiArICAgICAgY29uc3QgdmVjPHRyZWU+ICYsIGJvb2wpOw0K PiAgICAvKiBUcnVlIGlmIHdlIHNob3VsZCBjcmVhdGUgYSBzZXBhcmF0ZSBk ZWNsIGZvciBlYWNoIGluc3RhbmNlIG9mIGFuDQo+ICAgICAgIG92ZXJsb2Fk ZWQgZnVuY3Rpb24sIGluc3RlYWQgb2YgdXNpbmcgZnVuY3Rpb25fYnVpbGRl ci4gICovDQo+IEBAIC00MTcsNiArNDIwLDEyIEBAIHB1YmxpYzoNCj4gICAg LyogUmV0dXJuIHRydWUgaWYgaW50cmluc2ljcyBoYXMgcm91bmRpbmcgbW9k ZSBvcGVyYW5kLiAgKi8NCj4gICAgdmlydHVhbCBib29sIGhhc19yb3VuZGlu Z19tb2RlX29wZXJhbmRfcCAoKSBjb25zdDsNCj4gKyAgLyogUmV0dXJuIHRy dWUgaWYgaW50cmluc2ljcyBtYXliZSByZXF1aXJlIHZ4cm0gb3BlcmFuZC4g ICovDQo+ICsgIHZpcnR1YWwgYm9vbCBtYXlfcmVxdWlyZV92eHJtX3AgKCkg Y29uc3Q7DQo+ICsNCj4gKyAgLyogUmV0dXJuIHRydWUgaWYgaW50cmluc2lj cyBtYXliZSByZXF1aXJlIGZybSBvcGVyYW5kLiAgKi8NCj4gKyAgdmlydHVh bCBib29sIG1heV9yZXF1aXJlX2ZybV9wICgpIGNvbnN0Ow0KPiArDQo+ICAg IC8qIFRyeSB0byBmb2xkIHRoZSBnaXZlbiBnaW1wbGUgY2FsbC4gIFJldHVy biB0aGUgbmV3IGdpbXBsZSBzdGF0ZW1lbnQNCj4gICAgICAgb24gc3VjY2Vz cywgb3RoZXJ3aXNlIHJldHVybiBudWxsLiAgKi8NCj4gICAgdmlydHVhbCBn aW1wbGUgKmZvbGQgKGdpbXBsZV9mb2xkZXIgJikgY29uc3QgeyByZXR1cm4g TlVMTDsgfQ0KPiBAQCAtNjc0LDYgKzY4MywyMiBAQCBmdW5jdGlvbl9iYXNl OjpoYXNfcm91bmRpbmdfbW9kZV9vcGVyYW5kX3AgKCkgY29uc3QNCj4gICAg cmV0dXJuIGZhbHNlOw0KPiB9DQo+ICsvKiBXZSBjaG9vc2UgdG8gcmV0dXJu IGZhbHNlIGJ5IGRlZmF1bHQgc2luY2UgbW9zdCBvZiB0aGUgaW50cmluc2lj cyBkb2VzDQo+ICsgICBub3QgbmVlZCBmcm0gb3BlcmFuZC4gICovDQo+ICtp bmxpbmUgYm9vbA0KPiArZnVuY3Rpb25fYmFzZTo6bWF5X3JlcXVpcmVfZnJt X3AgKCkgY29uc3QNCj4gK3sNCj4gKyAgcmV0dXJuIGZhbHNlOw0KPiArfQ0K PiArDQo+ICsvKiBXZSBjaG9vc2UgdG8gcmV0dXJuIGZhbHNlIGJ5IGRlZmF1 bHQgc2luY2UgbW9zdCBvZiB0aGUgaW50cmluc2ljcyBkb2VzDQo+ICsgICBu b3QgbmVlZCB2eHJtIG9wZXJhbmQuICAqLw0KPiAraW5saW5lIGJvb2wNCj4g K2Z1bmN0aW9uX2Jhc2U6Om1heV9yZXF1aXJlX3Z4cm1fcCAoKSBjb25zdA0K PiArew0KPiArICByZXR1cm4gZmFsc2U7DQo+ICt9DQo+ICsNCj4gLyogU2lu Y2UgbW9zdCBvZiBpbnRyaW5zaWNzIGNhbiBiZSBvdmVybG9hZGVkLCB3ZSBz ZXQgaXQgdHJ1ZSBieSBkZWZhdWx0LiAgKi8NCj4gaW5saW5lIGJvb2wNCj4g ZnVuY3Rpb25fYmFzZTo6Y2FuX2JlX292ZXJsb2FkZWRfcCAoZW51bSBwcmVk aWNhdGlvbl90eXBlX2luZGV4KSBjb25zdA0KPiBkaWZmIC0tZ2l0IGEvZ2Nj L3Rlc3RzdWl0ZS9nY2MudGFyZ2V0L3Jpc2N2L3J2di9iYXNlL292ZXJsb2Fk ZWRfcnYzMl92YWRkLmMgYi9nY2MvdGVzdHN1aXRlL2djYy50YXJnZXQvcmlz Y3YvcnZ2L2Jhc2Uvb3ZlcmxvYWRlZF9ydjMyX3ZhZGQuYw0KPiBuZXcgZmls ZSBtb2RlIDEwMDY0NA0KPiBpbmRleCAwMDAwMDAwMDAwMC4uNWYxMGFhOWJm MzUNCj4gLS0tIC9kZXYvbnVsbA0KPiArKysgYi9nY2MvdGVzdHN1aXRlL2dj Yy50YXJnZXQvcmlzY3YvcnZ2L2Jhc2Uvb3ZlcmxvYWRlZF9ydjMyX3ZhZGQu Yw0KPiBAQCAtMCwwICsxLDEyIEBADQo+ICsvKiB7IGRnLWRvIGNvbXBpbGUg fSAqLw0KPiArLyogeyBkZy1vcHRpb25zICItbWFyY2g9cnYzMmdjdl96dmZo IC1tYWJpPWlscDMyIC1PMyAtV25vLXBzYWJpIiB9ICovDQo+ICsNCj4gKyNp bmNsdWRlICJvdmVybG9hZGVkX3ZhZGQuaCINCj4gKw0KPiArLyogeyBkZy1m aW5hbCB7IHNjYW4tYXNzZW1ibGVyLXRpbWVzIHt2c2V0dmxpXHMremVybyxc cypbYXhdWzAtOV0rLFxzKmU4LFxzKm0xLFxzKnRhLFxzKm1hfSA0IH0gfSAq Lw0KPiArLyogeyBkZy1maW5hbCB7IHNjYW4tYXNzZW1ibGVyLXRpbWVzIHt2 c2V0dmxpXHMrW2F4XVswLTldKyxccyp6ZXJvLFxzKmU4LFxzKm0xLFxzKnRh LFxzKm1hfSA4IH0gfSAqLw0KPiArLyogeyBkZy1maW5hbCB7IHNjYW4tYXNz ZW1ibGVyLXRpbWVzIHt2c2V0dmxpXHMremVybyxccypbYXhdWzAtOV0rLFxz KmU4LFxzKm0xLFxzKnR1LFxzKm1hfSA0IH0gfSAqLw0KPiArLyogeyBkZy1m aW5hbCB7IHNjYW4tYXNzZW1ibGVyLXRpbWVzIHt2c2V0dmxpXHMremVybyxc cypbYXhdWzAtOV0rLFxzKmU4LFxzKm0xLFxzKnRhLFxzKm11fSAyIH0gfSAq Lw0KPiArLyogeyBkZy1maW5hbCB7IHNjYW4tYXNzZW1ibGVyLXRpbWVzIHt2 c2V0dmxpXHMremVybyxccypbYXhdWzAtOV0rLFxzKmU4LFxzKm0xLFxzKnR1 LFxzKm11fSAyIH0gfSAqLw0KPiArLyogeyBkZy1maW5hbCB7IHNjYW4tYXNz ZW1ibGVyLXRpbWVzIHt2YWRkXC52dlxzK3ZbMC05XSssXHMqdlswLTldKyxc cyp2WzAtOV0rfSA2IH0gfSAqLw0KPiArLyogeyBkZy1maW5hbCB7IHNjYW4t YXNzZW1ibGVyLXRpbWVzIHt2YWRkXC52eFxzK3ZbMC05XSssXHMqdlswLTld KyxccypbYXhdWzAtOV0rfSA2IH0gfSAqLw0KPiBkaWZmIC0tZ2l0IGEvZ2Nj L3Rlc3RzdWl0ZS9nY2MudGFyZ2V0L3Jpc2N2L3J2di9iYXNlL292ZXJsb2Fk ZWRfcnYzMl92ZmFkZC5jIGIvZ2NjL3Rlc3RzdWl0ZS9nY2MudGFyZ2V0L3Jp c2N2L3J2di9iYXNlL292ZXJsb2FkZWRfcnYzMl92ZmFkZC5jDQo+IG5ldyBm aWxlIG1vZGUgMTAwNjQ0DQo+IGluZGV4IDAwMDAwMDAwMDAwLi5iZWEzNWEx M2E3Yg0KPiAtLS0gL2Rldi9udWxsDQo+ICsrKyBiL2djYy90ZXN0c3VpdGUv Z2NjLnRhcmdldC9yaXNjdi9ydnYvYmFzZS9vdmVybG9hZGVkX3J2MzJfdmZh ZGQuYw0KPiBAQCAtMCwwICsxLDEyIEBADQo+ICsvKiB7IGRnLWRvIGNvbXBp bGUgfSAqLw0KPiArLyogeyBkZy1vcHRpb25zICItbWFyY2g9cnYzMmdjdl96 dmZoIC1tYWJpPWlscDMyIC1PMyAtV25vLXBzYWJpIiB9ICovDQo+ICsNCj4g KyNpbmNsdWRlICJvdmVybG9hZGVkX3ZmYWRkLmgiDQo+ICsNCj4gKy8qIHsg ZGctZmluYWwgeyBzY2FuLWFzc2VtYmxlci10aW1lcyB7dnNldHZsaVxzK1th eF1bMC05XSssXHMqemVybyxccyplMTYsXHMqbWY0LFxzKnRhLFxzKm1hfSAx NiB9IH0gKi8NCj4gKy8qIHsgZGctZmluYWwgeyBzY2FuLWFzc2VtYmxlci10 aW1lcyB7dnNldHZsaVxzK3plcm8sXHMqW2F4XVswLTldKyxccyplMTYsXHMq bWY0LFxzKnRhLFxzKm1hfSA0IH0gfSAqLw0KPiArLyogeyBkZy1maW5hbCB7 IHNjYW4tYXNzZW1ibGVyLXRpbWVzIHt2c2V0dmxpXHMrW2F4XVswLTldKyxc cyp6ZXJvLFxzKmU4LFxzKm1mOCxccyp0YSxccyptYX0gOCB9IH0gKi8NCj4g Ky8qIHsgZGctZmluYWwgeyBzY2FuLWFzc2VtYmxlci10aW1lcyB7dnNldHZs aVxzK3plcm8sXHMqW2F4XVswLTldKyxccyplMTYsXHMqbWY0LFxzKnR1LFxz Km1hfSA0IH0gfSAqLw0KPiArLyogeyBkZy1maW5hbCB7IHNjYW4tYXNzZW1i bGVyLXRpbWVzIHt2c2V0dmxpXHMremVybyxccypbYXhdWzAtOV0rLFxzKmUx NixccyptZjQsXHMqdHUsXHMqbXV9IDIgfSB9ICovDQo+ICsvKiB7IGRnLWZp bmFsIHsgc2Nhbi1hc3NlbWJsZXItdGltZXMge3ZzZXR2bGlccyt6ZXJvLFxz KltheF1bMC05XSssXHMqZTE2LFxzKm1mNCxccyp0YSxccyptdX0gMiB9IH0g Ki8NCj4gKy8qIHsgZGctZmluYWwgeyBzY2FuLWFzc2VtYmxlci10aW1lcyB7 dmZhZGRcLnZ2XHMrdlswLTldKyxccyp2WzAtOV0rLFxzKnZbMC05XSt9IDEy IH0gfSAqLw0KPiBkaWZmIC0tZ2l0IGEvZ2NjL3Rlc3RzdWl0ZS9nY2MudGFy Z2V0L3Jpc2N2L3J2di9iYXNlL292ZXJsb2FkZWRfcnYzMl92Z2V0X3ZzZXQu YyBiL2djYy90ZXN0c3VpdGUvZ2NjLnRhcmdldC9yaXNjdi9ydnYvYmFzZS9v dmVybG9hZGVkX3J2MzJfdmdldF92c2V0LmMNCj4gbmV3IGZpbGUgbW9kZSAx MDA2NDQNCj4gaW5kZXggMDAwMDAwMDAwMDAuLjZiMGJhMTQyYjkwDQo+IC0t LSAvZGV2L251bGwNCj4gKysrIGIvZ2NjL3Rlc3RzdWl0ZS9nY2MudGFyZ2V0 L3Jpc2N2L3J2di9iYXNlL292ZXJsb2FkZWRfcnYzMl92Z2V0X3ZzZXQuYw0K PiBAQCAtMCwwICsxLDcgQEANCj4gKy8qIHsgZGctZG8gY29tcGlsZSB9ICov DQo+ICsvKiB7IGRnLW9wdGlvbnMgIi1tYXJjaD1ydjMyZ2N2X3p2ZmggLW1h Ymk9aWxwMzIgLU8zIC1Xbm8tcHNhYmkiIH0gKi8NCj4gKw0KPiArI2luY2x1 ZGUgIm92ZXJsb2FkZWRfdmdldF92c2V0LmgiDQo+ICsNCj4gKy8qIHsgZGct ZmluYWwgeyBzY2FuLWFzc2VtYmxlci10aW1lcyB7dmxbMC05XStyZVswLTld K1wudlxzK3ZbMC05XSssXHMqMFwoW2F4XVswLTldK1wpfSAxNCB9IH0gKi8N Cj4gKy8qIHsgZGctZmluYWwgeyBzY2FuLWFzc2VtYmxlci10aW1lcyB7dnNb MC05XStyXC52XHMrdlswLTldKyxccyowXChbYXhdWzAtOV0rXCl9IDEzIH0g fSAqLw0KPiBkaWZmIC0tZ2l0IGEvZ2NjL3Rlc3RzdWl0ZS9nY2MudGFyZ2V0 L3Jpc2N2L3J2di9iYXNlL292ZXJsb2FkZWRfcnYzMl92bG94c2VnMmVpMTYu YyBiL2djYy90ZXN0c3VpdGUvZ2NjLnRhcmdldC9yaXNjdi9ydnYvYmFzZS9v dmVybG9hZGVkX3J2MzJfdmxveHNlZzJlaTE2LmMNCj4gbmV3IGZpbGUgbW9k ZSAxMDA2NDQNCj4gaW5kZXggMDAwMDAwMDAwMDAuLmEyMGU0YTNiYjRmDQo+ IC0tLSAvZGV2L251bGwNCj4gKysrIGIvZ2NjL3Rlc3RzdWl0ZS9nY2MudGFy Z2V0L3Jpc2N2L3J2di9iYXNlL292ZXJsb2FkZWRfcnYzMl92bG94c2VnMmVp MTYuYw0KPiBAQCAtMCwwICsxLDExIEBADQo+ICsvKiB7IGRnLWRvIGNvbXBp bGUgfSAqLw0KPiArLyogeyBkZy1vcHRpb25zICItbWFyY2g9cnYzMmdjdl96 dmZoIC1tYWJpPWlscDMyIC1PMyAtV25vLXBzYWJpIiB9ICovDQo+ICsNCj4g KyNpbmNsdWRlICJvdmVybG9hZGVkX3Zsb3hzZWcyZWkxNi5oIg0KPiArDQo+ ICsvKiB7IGRnLWZpbmFsIHsgc2Nhbi1hc3NlbWJsZXItdGltZXMge3ZzZXR2 bGlccyt6ZXJvLFxzKltheF1bMC05XSssXHMqZTY0LFxzKm00LFxzKnRhLFxz Km1hfSAyIH0gfSAqLw0KPiArLyogeyBkZy1maW5hbCB7IHNjYW4tYXNzZW1i bGVyLXRpbWVzIHt2c2V0dmxpXHMrW2F4XVswLTldKyxccyp6ZXJvLFxzKmU4 LFxzKm1mMixccyp0YSxccyptYX0gNCB9IH0gKi8NCj4gKy8qIHsgZGctZmlu YWwgeyBzY2FuLWFzc2VtYmxlci10aW1lcyB7dnNldHZsaVxzK3plcm8sXHMq W2F4XVswLTldKyxccyplNjQsXHMqbTQsXHMqdHUsXHMqbWF9IDIgfSB9ICov DQo+ICsvKiB7IGRnLWZpbmFsIHsgc2Nhbi1hc3NlbWJsZXItdGltZXMge3Zz ZXR2bGlccyt6ZXJvLFxzKltheF1bMC05XSssXHMqZTY0LFxzKm00LFxzKnR1 LFxzKm11fSAxIH0gfSAqLw0KPiArLyogeyBkZy1maW5hbCB7IHNjYW4tYXNz ZW1ibGVyLXRpbWVzIHt2c2V0dmxpXHMremVybyxccypbYXhdWzAtOV0rLFxz KmU2NCxccyptNCxccyp0YSxccyptdX0gMSB9IH0gKi8NCj4gKy8qIHsgZGct ZmluYWwgeyBzY2FuLWFzc2VtYmxlci10aW1lcyB7dmxveHNlZzJlaTE2XC52 XHMrdlswLTldKyxccypcKFtheF1bMC05XStcKSxccyp2WzAtOV0rfSA2IH0g fSAqLw0KPiBkaWZmIC0tZ2l0IGEvZ2NjL3Rlc3RzdWl0ZS9nY2MudGFyZ2V0 L3Jpc2N2L3J2di9iYXNlL292ZXJsb2FkZWRfcnYzMl92bXYuYyBiL2djYy90 ZXN0c3VpdGUvZ2NjLnRhcmdldC9yaXNjdi9ydnYvYmFzZS9vdmVybG9hZGVk X3J2MzJfdm12LmMNCj4gbmV3IGZpbGUgbW9kZSAxMDA2NDQNCj4gaW5kZXgg MDAwMDAwMDAwMDAuLjIzN2IzNGRiZTkxDQo+IC0tLSAvZGV2L251bGwNCj4g KysrIGIvZ2NjL3Rlc3RzdWl0ZS9nY2MudGFyZ2V0L3Jpc2N2L3J2di9iYXNl L292ZXJsb2FkZWRfcnYzMl92bXYuYw0KPiBAQCAtMCwwICsxLDEwIEBADQo+ ICsvKiB7IGRnLWRvIGNvbXBpbGUgfSAqLw0KPiArLyogeyBkZy1vcHRpb25z ICItbWFyY2g9cnYzMmdjdl96dmZoIC1tYWJpPWlscDMyIC1PMyAtV25vLXBz YWJpIiB9ICovDQo+ICsNCj4gKyNpbmNsdWRlICJvdmVybG9hZGVkX3Ztdi5o Ig0KPiArDQo+ICsvKiB7IGRnLWZpbmFsIHsgc2Nhbi1hc3NlbWJsZXItdGlt ZXMge3ZzZXR2bGlccyt6ZXJvLFxzKltheF1bMC05XSssXHMqZTgsXHMqbTEs XHMqdGEsXHMqbWF9IDEgfSB9ICovDQo+ICsvKiB7IGRnLWZpbmFsIHsgc2Nh bi1hc3NlbWJsZXItdGltZXMge3ZzZXR2bGlccyt6ZXJvLFxzKltheF1bMC05 XSssXHMqZTgsXHMqbTEsXHMqdHUsXHMqbWF9IDIgfSB9ICovDQo+ICsvKiB7 IGRnLWZpbmFsIHsgc2Nhbi1hc3NlbWJsZXItdGltZXMge3ZzZXR2bGlccyt6 ZXJvLFxzKltheF1bMC05XSssXHMqZTE2LFxzKm0xLFxzKnRhLFxzKm1hfSAx IH0gfSAqLw0KPiArLyogeyBkZy1maW5hbCB7IHNjYW4tYXNzZW1ibGVyLXRp bWVzIHt2c2V0dmxpXHMremVybyxccypbYXhdWzAtOV0rLFxzKmUxNixccypt MSxccyp0dSxccyptYX0gMSB9IH0gKi8NCj4gKy8qIHsgZGctZmluYWwgeyBz Y2FuLWFzc2VtYmxlci10aW1lcyB7dnNldGl2bGlccyt6ZXJvLFxzKjAsXHMq ZTgsXHMqbTEsXHMqdGEsXHMqbWF9IDEgfSB9ICovDQo+IGRpZmYgLS1naXQg YS9nY2MvdGVzdHN1aXRlL2djYy50YXJnZXQvcmlzY3YvcnZ2L2Jhc2Uvb3Zl cmxvYWRlZF9ydjMyX3ZyZWludGVycHJldC5jIGIvZ2NjL3Rlc3RzdWl0ZS9n Y2MudGFyZ2V0L3Jpc2N2L3J2di9iYXNlL292ZXJsb2FkZWRfcnYzMl92cmVp bnRlcnByZXQuYw0KPiBuZXcgZmlsZSBtb2RlIDEwMDY0NA0KPiBpbmRleCAw MDAwMDAwMDAwMC4uNDJkNTA1ODkyNDYNCj4gLS0tIC9kZXYvbnVsbA0KPiAr KysgYi9nY2MvdGVzdHN1aXRlL2djYy50YXJnZXQvcmlzY3YvcnZ2L2Jhc2Uv b3ZlcmxvYWRlZF9ydjMyX3ZyZWludGVycHJldC5jDQo+IEBAIC0wLDAgKzEs MTAgQEANCj4gKy8qIHsgZGctZG8gY29tcGlsZSB9ICovDQo+ICsvKiB7IGRn LW9wdGlvbnMgIi1tYXJjaD1ydjMyZ2N2X3p2ZmggLW1hYmk9aWxwMzIgLU8z IC1Xbm8tcHNhYmkiIH0gKi8NCj4gKw0KPiArI2luY2x1ZGUgIm92ZXJsb2Fk ZWRfdnJlaW50ZXJwcmV0LmgiDQo+ICsNCj4gKy8qIHsgZGctZmluYWwgeyBz Y2FuLWFzc2VtYmxlci10aW1lcyB7dnNldHZsaVxzK1theF1bMC05XSssXHMq emVybyxccyplOCxccyptNCxccyp0YSxccyptYX0gMSB9IH0gKi8NCj4gKy8q IHsgZGctZmluYWwgeyBzY2FuLWFzc2VtYmxlci10aW1lcyB7dnNldHZsaVxz K1theF1bMC05XSssXHMqemVybyxccyplOCxccyptMixccyp0YSxccyptYX0g MSB9IH0gKi8NCj4gKy8qIHsgZGctZmluYWwgeyBzY2FuLWFzc2VtYmxlci10 aW1lcyB7dnNldHZsaVxzK1theF1bMC05XSssXHMqemVybyxccyplOCxccypt ZjIsXHMqdGEsXHMqbWF9IDEgfSB9ICovDQo+ICsvKiB7IGRnLWZpbmFsIHsg c2Nhbi1hc3NlbWJsZXItdGltZXMge3ZzZXR2bGlccytbYXhdWzAtOV0rLFxz Knplcm8sXHMqZTE2LFxzKm1mMixccyp0YSxccyptYX0gMiB9IH0gKi8NCj4g Ky8qIHsgZGctZmluYWwgeyBzY2FuLWFzc2VtYmxlci10aW1lcyB7dnNldHZs aVxzK1theF1bMC05XSssXHMqemVybyxccyplMzIsXHMqbWYyLFxzKnRhLFxz Km1hfSAxIH0gfSAqLw0KPiBkaWZmIC0tZ2l0IGEvZ2NjL3Rlc3RzdWl0ZS9n Y2MudGFyZ2V0L3Jpc2N2L3J2di9iYXNlL292ZXJsb2FkZWRfcnY2NF92YWRk LmMgYi9nY2MvdGVzdHN1aXRlL2djYy50YXJnZXQvcmlzY3YvcnZ2L2Jhc2Uv b3ZlcmxvYWRlZF9ydjY0X3ZhZGQuYw0KPiBuZXcgZmlsZSBtb2RlIDEwMDY0 NA0KPiBpbmRleCAwMDAwMDAwMDAwMC4uYzQ1NTVlM2Y0NzcNCj4gLS0tIC9k ZXYvbnVsbA0KPiArKysgYi9nY2MvdGVzdHN1aXRlL2djYy50YXJnZXQvcmlz Y3YvcnZ2L2Jhc2Uvb3ZlcmxvYWRlZF9ydjY0X3ZhZGQuYw0KPiBAQCAtMCww ICsxLDExIEBADQo+ICsvKiB7IGRnLW9wdGlvbnMgIi1tYXJjaD1ydjY0Z2N2 X3p2ZmggLW1hYmk9bHA2NCAtTzMgLVduby1wc2FiaSIgfSAqLw0KPiArDQo+ ICsjaW5jbHVkZSAib3ZlcmxvYWRlZF92YWRkLmgiDQo+ICsNCj4gKy8qIHsg ZGctZmluYWwgeyBzY2FuLWFzc2VtYmxlci10aW1lcyB7dnNldHZsaVxzK3pl cm8sXHMqW2F4XVswLTldKyxccyplOCxccyptMSxccyp0YSxccyptYX0gNCB9 IH0gKi8NCj4gKy8qIHsgZGctZmluYWwgeyBzY2FuLWFzc2VtYmxlci10aW1l cyB7dnNldHZsaVxzK1theF1bMC05XSssXHMqemVybyxccyplOCxccyptMSxc cyp0YSxccyptYX0gOCB9IH0gKi8NCj4gKy8qIHsgZGctZmluYWwgeyBzY2Fu LWFzc2VtYmxlci10aW1lcyB7dnNldHZsaVxzK3plcm8sXHMqW2F4XVswLTld KyxccyplOCxccyptMSxccyp0dSxccyptYX0gNCB9IH0gKi8NCj4gKy8qIHsg ZGctZmluYWwgeyBzY2FuLWFzc2VtYmxlci10aW1lcyB7dnNldHZsaVxzK3pl cm8sXHMqW2F4XVswLTldKyxccyplOCxccyptMSxccyp0YSxccyptdX0gMiB9 IH0gKi8NCj4gKy8qIHsgZGctZmluYWwgeyBzY2FuLWFzc2VtYmxlci10aW1l cyB7dnNldHZsaVxzK3plcm8sXHMqW2F4XVswLTldKyxccyplOCxccyptMSxc cyp0dSxccyptdX0gMiB9IH0gKi8NCj4gKy8qIHsgZGctZmluYWwgeyBzY2Fu LWFzc2VtYmxlci10aW1lcyB7dmFkZFwudnZccyt2WzAtOV0rLFxzKnZbMC05 XSssXHMqdlswLTldK30gNiB9IH0gKi8NCj4gKy8qIHsgZGctZmluYWwgeyBz Y2FuLWFzc2VtYmxlci10aW1lcyB7dmFkZFwudnhccyt2WzAtOV0rLFxzKnZb MC05XSssXHMqW2F4XVswLTldK30gNiB9IH0gKi8NCj4gZGlmZiAtLWdpdCBh L2djYy90ZXN0c3VpdGUvZ2NjLnRhcmdldC9yaXNjdi9ydnYvYmFzZS9vdmVy bG9hZGVkX3J2NjRfdmZhZGQuYyBiL2djYy90ZXN0c3VpdGUvZ2NjLnRhcmdl dC9yaXNjdi9ydnYvYmFzZS9vdmVybG9hZGVkX3J2NjRfdmZhZGQuYw0KPiBu ZXcgZmlsZSBtb2RlIDEwMDY0NA0KPiBpbmRleCAwMDAwMDAwMDAwMC4uY2E5 ODEzNmNlOWINCj4gLS0tIC9kZXYvbnVsbA0KPiArKysgYi9nY2MvdGVzdHN1 aXRlL2djYy50YXJnZXQvcmlzY3YvcnZ2L2Jhc2Uvb3ZlcmxvYWRlZF9ydjY0 X3ZmYWRkLmMNCj4gQEAgLTAsMCArMSwxMSBAQA0KPiArLyogeyBkZy1vcHRp b25zICItbWFyY2g9cnY2NGdjdl96dmZoIC1tYWJpPWxwNjQgLU8zIC1Xbm8t cHNhYmkiIH0gKi8NCj4gKw0KPiArI2luY2x1ZGUgIm92ZXJsb2FkZWRfdmZh ZGQuaCINCj4gKw0KPiArLyogeyBkZy1maW5hbCB7IHNjYW4tYXNzZW1ibGVy LXRpbWVzIHt2c2V0dmxpXHMrW2F4XVswLTldKyxccyp6ZXJvLFxzKmUxNixc cyptZjQsXHMqdGEsXHMqbWF9IDE2IH0gfSAqLw0KPiArLyogeyBkZy1maW5h bCB7IHNjYW4tYXNzZW1ibGVyLXRpbWVzIHt2c2V0dmxpXHMremVybyxccypb YXhdWzAtOV0rLFxzKmUxNixccyptZjQsXHMqdGEsXHMqbWF9IDQgfSB9ICov DQo+ICsvKiB7IGRnLWZpbmFsIHsgc2Nhbi1hc3NlbWJsZXItdGltZXMge3Zz ZXR2bGlccytbYXhdWzAtOV0rLFxzKnplcm8sXHMqZTgsXHMqbWY4LFxzKnRh LFxzKm1hfSA4IH0gfSAqLw0KPiArLyogeyBkZy1maW5hbCB7IHNjYW4tYXNz ZW1ibGVyLXRpbWVzIHt2c2V0dmxpXHMremVybyxccypbYXhdWzAtOV0rLFxz KmUxNixccyptZjQsXHMqdHUsXHMqbWF9IDQgfSB9ICovDQo+ICsvKiB7IGRn LWZpbmFsIHsgc2Nhbi1hc3NlbWJsZXItdGltZXMge3ZzZXR2bGlccyt6ZXJv LFxzKltheF1bMC05XSssXHMqZTE2LFxzKm1mNCxccyp0dSxccyptdX0gMiB9 IH0gKi8NCj4gKy8qIHsgZGctZmluYWwgeyBzY2FuLWFzc2VtYmxlci10aW1l cyB7dnNldHZsaVxzK3plcm8sXHMqW2F4XVswLTldKyxccyplMTYsXHMqbWY0 LFxzKnRhLFxzKm11fSAyIH0gfSAqLw0KPiArLyogeyBkZy1maW5hbCB7IHNj YW4tYXNzZW1ibGVyLXRpbWVzIHt2ZmFkZFwudnZccyt2WzAtOV0rLFxzKnZb MC05XSssXHMqdlswLTldK30gMTIgfSB9ICovDQo+IGRpZmYgLS1naXQgYS9n Y2MvdGVzdHN1aXRlL2djYy50YXJnZXQvcmlzY3YvcnZ2L2Jhc2Uvb3Zlcmxv YWRlZF9ydjY0X3ZnZXRfdnNldC5jIGIvZ2NjL3Rlc3RzdWl0ZS9nY2MudGFy Z2V0L3Jpc2N2L3J2di9iYXNlL292ZXJsb2FkZWRfcnY2NF92Z2V0X3ZzZXQu Yw0KPiBuZXcgZmlsZSBtb2RlIDEwMDY0NA0KPiBpbmRleCAwMDAwMDAwMDAw MC4uMWNiNDIyNTA4NGMNCj4gLS0tIC9kZXYvbnVsbA0KPiArKysgYi9nY2Mv dGVzdHN1aXRlL2djYy50YXJnZXQvcmlzY3YvcnZ2L2Jhc2Uvb3ZlcmxvYWRl ZF9ydjY0X3ZnZXRfdnNldC5jDQo+IEBAIC0wLDAgKzEsNiBAQA0KPiArLyog eyBkZy1vcHRpb25zICItbWFyY2g9cnY2NGdjdl96dmZoIC1tYWJpPWxwNjQg LU8zIC1Xbm8tcHNhYmkiIH0gKi8NCj4gKw0KPiArI2luY2x1ZGUgIm92ZXJs b2FkZWRfdmdldF92c2V0LmgiDQo+ICsNCj4gKy8qIHsgZGctZmluYWwgeyBz Y2FuLWFzc2VtYmxlci10aW1lcyB7dmxbMC05XStyZVswLTldK1wudlxzK3Zb MC05XSssXHMqMFwoW2F4XVswLTldK1wpfSAxNCB9IH0gKi8NCj4gKy8qIHsg ZGctZmluYWwgeyBzY2FuLWFzc2VtYmxlci10aW1lcyB7dnNbMC05XStyXC52 XHMrdlswLTldKyxccyowXChbYXhdWzAtOV0rXCl9IDEzIH0gfSAqLw0KPiBk aWZmIC0tZ2l0IGEvZ2NjL3Rlc3RzdWl0ZS9nY2MudGFyZ2V0L3Jpc2N2L3J2 di9iYXNlL292ZXJsb2FkZWRfcnY2NF92bG94c2VnMmVpMTYuYyBiL2djYy90 ZXN0c3VpdGUvZ2NjLnRhcmdldC9yaXNjdi9ydnYvYmFzZS9vdmVybG9hZGVk X3J2NjRfdmxveHNlZzJlaTE2LmMNCj4gbmV3IGZpbGUgbW9kZSAxMDA2NDQN Cj4gaW5kZXggMDAwMDAwMDAwMDAuLmVhNzMxNzA0NDRkDQo+IC0tLSAvZGV2 L251bGwNCj4gKysrIGIvZ2NjL3Rlc3RzdWl0ZS9nY2MudGFyZ2V0L3Jpc2N2 L3J2di9iYXNlL292ZXJsb2FkZWRfcnY2NF92bG94c2VnMmVpMTYuYw0KPiBA QCAtMCwwICsxLDEwIEBADQo+ICsvKiB7IGRnLW9wdGlvbnMgIi1tYXJjaD1y djY0Z2N2X3p2ZmggLW1hYmk9bHA2NCAtTzMgLVduby1wc2FiaSIgfSAqLw0K PiArDQo+ICsjaW5jbHVkZSAib3ZlcmxvYWRlZF92bG94c2VnMmVpMTYuaCIN Cj4gKw0KPiArLyogeyBkZy1maW5hbCB7IHNjYW4tYXNzZW1ibGVyLXRpbWVz IHt2c2V0dmxpXHMremVybyxccypbYXhdWzAtOV0rLFxzKmU2NCxccyptNCxc cyp0YSxccyptYX0gMiB9IH0gKi8NCj4gKy8qIHsgZGctZmluYWwgeyBzY2Fu LWFzc2VtYmxlci10aW1lcyB7dnNldHZsaVxzK1theF1bMC05XSssXHMqemVy byxccyplOCxccyptZjIsXHMqdGEsXHMqbWF9IDQgfSB9ICovDQo+ICsvKiB7 IGRnLWZpbmFsIHsgc2Nhbi1hc3NlbWJsZXItdGltZXMge3ZzZXR2bGlccyt6 ZXJvLFxzKltheF1bMC05XSssXHMqZTY0LFxzKm00LFxzKnR1LFxzKm1hfSAy IH0gfSAqLw0KPiArLyogeyBkZy1maW5hbCB7IHNjYW4tYXNzZW1ibGVyLXRp bWVzIHt2c2V0dmxpXHMremVybyxccypbYXhdWzAtOV0rLFxzKmU2NCxccypt NCxccyp0dSxccyptdX0gMSB9IH0gKi8NCj4gKy8qIHsgZGctZmluYWwgeyBz Y2FuLWFzc2VtYmxlci10aW1lcyB7dnNldHZsaVxzK3plcm8sXHMqW2F4XVsw LTldKyxccyplNjQsXHMqbTQsXHMqdGEsXHMqbXV9IDEgfSB9ICovDQo+ICsv KiB7IGRnLWZpbmFsIHsgc2Nhbi1hc3NlbWJsZXItdGltZXMge3Zsb3hzZWcy ZWkxNlwudlxzK3ZbMC05XSssXHMqXChbYXhdWzAtOV0rXCksXHMqdlswLTld K30gNiB9IH0gKi8NCj4gZGlmZiAtLWdpdCBhL2djYy90ZXN0c3VpdGUvZ2Nj LnRhcmdldC9yaXNjdi9ydnYvYmFzZS9vdmVybG9hZGVkX3J2NjRfdm12LmMg Yi9nY2MvdGVzdHN1aXRlL2djYy50YXJnZXQvcmlzY3YvcnZ2L2Jhc2Uvb3Zl cmxvYWRlZF9ydjY0X3Ztdi5jDQo+IG5ldyBmaWxlIG1vZGUgMTAwNjQ0DQo+ IGluZGV4IDAwMDAwMDAwMDAwLi5jNWRhNmJiZmNhOA0KPiAtLS0gL2Rldi9u dWxsDQo+ICsrKyBiL2djYy90ZXN0c3VpdGUvZ2NjLnRhcmdldC9yaXNjdi9y dnYvYmFzZS9vdmVybG9hZGVkX3J2NjRfdm12LmMNCj4gQEAgLTAsMCArMSwx MCBAQA0KPiArLyogeyBkZy1kbyBjb21waWxlIH0gKi8NCj4gKy8qIHsgZGct b3B0aW9ucyAiLW1hcmNoPXJ2NjRnY3ZfenZmaCAtbWFiaT1scDY0IC1PMyAt V25vLXBzYWJpIiB9ICovDQo+ICsNCj4gKyNpbmNsdWRlICJvdmVybG9hZGVk X3Ztdi5oIg0KPiArDQo+ICsvKiB7IGRnLWZpbmFsIHsgc2Nhbi1hc3NlbWJs ZXItdGltZXMge3ZzZXR2bGlccyt6ZXJvLFxzKltheF1bMC05XSssXHMqZTgs XHMqbTEsXHMqdGEsXHMqbWF9IDEgfSB9ICovDQo+ICsvKiB7IGRnLWZpbmFs IHsgc2Nhbi1hc3NlbWJsZXItdGltZXMge3ZzZXR2bGlccyt6ZXJvLFxzKlth eF1bMC05XSssXHMqZTgsXHMqbTEsXHMqdHUsXHMqbWF9IDIgfSB9ICovDQo+ ICsvKiB7IGRnLWZpbmFsIHsgc2Nhbi1hc3NlbWJsZXItdGltZXMge3ZzZXR2 bGlccyt6ZXJvLFxzKltheF1bMC05XSssXHMqZTE2LFxzKm0xLFxzKnRhLFxz Km1hfSAxIH0gfSAqLw0KPiArLyogeyBkZy1maW5hbCB7IHNjYW4tYXNzZW1i bGVyLXRpbWVzIHt2c2V0dmxpXHMremVybyxccypbYXhdWzAtOV0rLFxzKmUx NixccyptMSxccyp0dSxccyptYX0gMSB9IH0gKi8NCj4gKy8qIHsgZGctZmlu YWwgeyBzY2FuLWFzc2VtYmxlci10aW1lcyB7dnNldGl2bGlccyt6ZXJvLFxz KjAsXHMqZTgsXHMqbTEsXHMqdGEsXHMqbWF9IDEgfSB9ICovDQo+IGRpZmYg LS1naXQgYS9nY2MvdGVzdHN1aXRlL2djYy50YXJnZXQvcmlzY3YvcnZ2L2Jh c2Uvb3ZlcmxvYWRlZF9ydjY0X3ZyZWludGVycHJldC5jIGIvZ2NjL3Rlc3Rz dWl0ZS9nY2MudGFyZ2V0L3Jpc2N2L3J2di9iYXNlL292ZXJsb2FkZWRfcnY2 NF92cmVpbnRlcnByZXQuYw0KPiBuZXcgZmlsZSBtb2RlIDEwMDY0NA0KPiBp bmRleCAwMDAwMDAwMDAwMC4uM2I4Mzk5YzEyNmQNCj4gLS0tIC9kZXYvbnVs bA0KPiArKysgYi9nY2MvdGVzdHN1aXRlL2djYy50YXJnZXQvcmlzY3YvcnZ2 L2Jhc2Uvb3ZlcmxvYWRlZF9ydjY0X3ZyZWludGVycHJldC5jDQo+IEBAIC0w LDAgKzEsOSBAQA0KPiArLyogeyBkZy1vcHRpb25zICItbWFyY2g9cnY2NGdj dl96dmZoIC1tYWJpPWxwNjQgLU8zIC1Xbm8tcHNhYmkiIH0gKi8NCj4gKw0K PiArI2luY2x1ZGUgIm92ZXJsb2FkZWRfdnJlaW50ZXJwcmV0LmgiDQo+ICsN Cj4gKy8qIHsgZGctZmluYWwgeyBzY2FuLWFzc2VtYmxlci10aW1lcyB7dnNl dHZsaVxzK1theF1bMC05XSssXHMqemVybyxccyplOCxccyptNCxccyp0YSxc cyptYX0gMSB9IH0gKi8NCj4gKy8qIHsgZGctZmluYWwgeyBzY2FuLWFzc2Vt Ymxlci10aW1lcyB7dnNldHZsaVxzK1theF1bMC05XSssXHMqemVybyxccypl OCxccyptMixccyp0YSxccyptYX0gMSB9IH0gKi8NCj4gKy8qIHsgZGctZmlu YWwgeyBzY2FuLWFzc2VtYmxlci10aW1lcyB7dnNldHZsaVxzK1theF1bMC05 XSssXHMqemVybyxccyplOCxccyptZjIsXHMqdGEsXHMqbWF9IDEgfSB9ICov DQo+ICsvKiB7IGRnLWZpbmFsIHsgc2Nhbi1hc3NlbWJsZXItdGltZXMge3Zz ZXR2bGlccytbYXhdWzAtOV0rLFxzKnplcm8sXHMqZTE2LFxzKm1mMixccyp0 YSxccyptYX0gMiB9IH0gKi8NCj4gKy8qIHsgZGctZmluYWwgeyBzY2FuLWFz c2VtYmxlci10aW1lcyB7dnNldHZsaVxzK1theF1bMC05XSssXHMqemVybyxc cyplMzIsXHMqbWYyLFxzKnRhLFxzKm1hfSAxIH0gfSAqLw0KPiBkaWZmIC0t Z2l0IGEvZ2NjL3Rlc3RzdWl0ZS9nY2MudGFyZ2V0L3Jpc2N2L3J2di9iYXNl L292ZXJsb2FkZWRfdmFkZC5oIGIvZ2NjL3Rlc3RzdWl0ZS9nY2MudGFyZ2V0 L3Jpc2N2L3J2di9iYXNlL292ZXJsb2FkZWRfdmFkZC5oDQo+IG5ldyBmaWxl IG1vZGUgMTAwNjQ0DQo+IGluZGV4IDAwMDAwMDAwMDAwLi4zYjQxY2ZmMWI2 Mg0KPiAtLS0gL2Rldi9udWxsDQo+ICsrKyBiL2djYy90ZXN0c3VpdGUvZ2Nj LnRhcmdldC9yaXNjdi9ydnYvYmFzZS9vdmVybG9hZGVkX3ZhZGQuaA0KPiBA QCAtMCwwICsxLDU5IEBADQo+ICsjaW5jbHVkZSAicmlzY3ZfdmVjdG9yLmgi DQo+ICsNCj4gK3ZpbnQ4bTFfdCB0ZXN0X3ZhZGRfdnZfaThtMSh2aW50OG0x X3QgdnMyLCB2aW50OG0xX3QgdnMxLCBzaXplX3QgdmwpIHsNCj4gKyAgcmV0 dXJuIF9fcmlzY3ZfdmFkZCh2czIsIHZzMSwgdmwpOw0KPiArfQ0KPiArDQo+ ICt2aW50OG0xX3QgdGVzdF92YWRkX3Z4X2k4bTEodmludDhtMV90IHZzMiwg aW50OF90IHJzMSwgc2l6ZV90IHZsKSB7DQo+ICsgIHJldHVybiBfX3Jpc2N2 X3ZhZGQodnMyLCByczEsIHZsKTsNCj4gK30NCj4gKw0KPiArdmludDhtMV90 IHRlc3RfdmFkZF92dl9pOG0xX20odmJvb2w4X3Qgdm0sIHZpbnQ4bTFfdCB2 czIsIHZpbnQ4bTFfdCB2czEsDQo+ICsgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICBzaXplX3QgdmwpIHsNCj4gKyAgcmV0dXJuIF9fcmlzY3ZfdmFk ZCh2bSwgdnMyLCB2czEsIHZsKTsNCj4gK30NCj4gKw0KPiArdmludDhtMV90 IHRlc3RfdmFkZF92eF9pOG0xX20odmJvb2w4X3Qgdm0sIHZpbnQ4bTFfdCB2 czIsIGludDhfdCByczEsDQo+ICsgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICBzaXplX3QgdmwpIHsNCj4gKyAgcmV0dXJuIF9fcmlzY3ZfdmFkZCh2 bSwgdnMyLCByczEsIHZsKTsNCj4gK30NCj4gKw0KPiArdmludDhtMV90IHRl c3RfdmFkZF92dl9pOG0xX3R1KHZpbnQ4bTFfdCB2ZCwgdmludDhtMV90IHZz MiwgdmludDhtMV90IHZzMSwNCj4gKyAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICBzaXplX3QgdmwpIHsNCj4gKyAgcmV0dXJuIF9fcmlzY3ZfdmFk ZF90dSh2ZCwgdnMyLCB2czEsIHZsKTsNCj4gK30NCj4gKw0KPiArdmludDht MV90IHRlc3RfdmFkZF92eF9pOG0xX3R1KHZpbnQ4bTFfdCB2ZCwgdmludDht MV90IHZzMiwgaW50OF90IHJzMSwNCj4gKyAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICBzaXplX3QgdmwpIHsNCj4gKyAgcmV0dXJuIF9fcmlzY3Zf dmFkZF90dSh2ZCwgdnMyLCByczEsIHZsKTsNCj4gK30NCj4gKw0KPiArdmlu dDhtMV90IHRlc3RfdmFkZF92dl9pOG0xX3R1bSh2Ym9vbDhfdCB2bSwgdmlu dDhtMV90IHZkLCB2aW50OG0xX3QgdnMyLA0KPiArICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICB2aW50OG0xX3QgdnMxLCBzaXplX3QgdmwpIHsN Cj4gKyAgcmV0dXJuIF9fcmlzY3ZfdmFkZF90dW0odm0sIHZkLCB2czIsIHZz MSwgdmwpOw0KPiArfQ0KPiArDQo+ICt2aW50OG0xX3QgdGVzdF92YWRkX3Z4 X2k4bTFfdHVtKHZib29sOF90IHZtLCB2aW50OG0xX3QgdmQsIHZpbnQ4bTFf dCB2czIsDQo+ICsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlu dDhfdCByczEsIHNpemVfdCB2bCkgew0KPiArICByZXR1cm4gX19yaXNjdl92 YWRkX3R1bSh2bSwgdmQsIHZzMiwgcnMxLCB2bCk7DQo+ICt9DQo+ICsNCj4g K3ZpbnQ4bTFfdCB0ZXN0X3ZhZGRfdnZfaThtMV9tdSh2Ym9vbDhfdCB2bSwg dmludDhtMV90IHZkLCB2aW50OG0xX3QgdnMyLA0KPiArICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgIHZpbnQ4bTFfdCB2czEsIHNpemVfdCB2bCkg ew0KPiArICByZXR1cm4gX19yaXNjdl92YWRkX211KHZtLCB2ZCwgdnMyLCB2 czEsIHZsKTsNCj4gK30NCj4gKw0KPiArdmludDhtMV90IHRlc3RfdmFkZF92 eF9pOG0xX211KHZib29sOF90IHZtLCB2aW50OG0xX3QgdmQsIHZpbnQ4bTFf dCB2czIsDQo+ICsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW50 OF90IHJzMSwgc2l6ZV90IHZsKSB7DQo+ICsgIHJldHVybiBfX3Jpc2N2X3Zh ZGRfbXUodm0sIHZkLCB2czIsIHJzMSwgdmwpOw0KPiArfQ0KPiArDQo+ICt2 aW50OG0xX3QgdGVzdF92YWRkX3Z2X2k4bTFfdHVtdSh2Ym9vbDhfdCB2bSwg dmludDhtMV90IHZkLCB2aW50OG0xX3QgdnMyLA0KPiArICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgdmludDhtMV90IHZzMSwgc2l6ZV90IHZs KSB7DQo+ICsgIHJldHVybiBfX3Jpc2N2X3ZhZGRfdHVtdSh2bSwgdmQsIHZz MiwgdnMxLCB2bCk7DQo+ICt9DQo+ICsNCj4gK3ZpbnQ4bTFfdCB0ZXN0X3Zh ZGRfdnhfaThtMV90dW11KHZib29sOF90IHZtLCB2aW50OG0xX3QgdmQsIHZp bnQ4bTFfdCB2czIsDQo+ICsgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICBpbnQ4X3QgcnMxLCBzaXplX3QgdmwpIHsNCj4gKyAgcmV0dXJuIF9f cmlzY3ZfdmFkZF90dW11KHZtLCB2ZCwgdnMyLCByczEsIHZsKTsNCj4gK30N Cj4gZGlmZiAtLWdpdCBhL2djYy90ZXN0c3VpdGUvZ2NjLnRhcmdldC9yaXNj di9ydnYvYmFzZS9vdmVybG9hZGVkX3ZmYWRkLmggYi9nY2MvdGVzdHN1aXRl L2djYy50YXJnZXQvcmlzY3YvcnZ2L2Jhc2Uvb3ZlcmxvYWRlZF92ZmFkZC5o DQo+IG5ldyBmaWxlIG1vZGUgMTAwNjQ0DQo+IGluZGV4IDAwMDAwMDAwMDAw Li43OThhZjQyMGYyZA0KPiAtLS0gL2Rldi9udWxsDQo+ICsrKyBiL2djYy90 ZXN0c3VpdGUvZ2NjLnRhcmdldC9yaXNjdi9ydnYvYmFzZS9vdmVybG9hZGVk X3ZmYWRkLmgNCj4gQEAgLTAsMCArMSw2NyBAQA0KPiArI2luY2x1ZGUgInJp c2N2X3ZlY3Rvci5oIg0KPiArDQo+ICt2ZmxvYXQxNm1mNF90IHRlc3RfdmZh ZGRfdnZfZjE2bWY0KHZmbG9hdDE2bWY0X3QgdnMyLCB2ZmxvYXQxNm1mNF90 IHZzMSwNCj4gKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg c2l6ZV90IHZsKSB7DQo+ICsgIHJldHVybiBfX3Jpc2N2X3ZmYWRkKHZzMiwg dnMxLCB2bCk7DQo+ICt9DQo+ICsNCj4gK3ZmbG9hdDE2bWY0X3QgdGVzdF92 ZmFkZF92dl9mMTZtZjRfbSh2Ym9vbDY0X3Qgdm0sIHZmbG9hdDE2bWY0X3Qg dnMyLA0KPiArICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg IHZmbG9hdDE2bWY0X3QgdnMxLCBzaXplX3QgdmwpIHsNCj4gKyAgcmV0dXJu IF9fcmlzY3ZfdmZhZGQodm0sIHZzMiwgdnMxLCB2bCk7DQo+ICt9DQo+ICsN Cj4gK3ZmbG9hdDE2bWY0X3QgdGVzdF92ZmFkZF92dl9mMTZtZjRfdHUodmZs b2F0MTZtZjRfdCB2ZCwgdmZsb2F0MTZtZjRfdCB2czIsDQo+ICsgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZmbG9hdDE2bWY0X3Qg dnMxLCBzaXplX3QgdmwpIHsNCj4gKyAgcmV0dXJuIF9fcmlzY3ZfdmZhZGRf dHUodmQsIHZzMiwgdnMxLCB2bCk7DQo+ICt9DQo+ICsNCj4gK3ZmbG9hdDE2 bWY0X3QgdGVzdF92ZmFkZF92dl9mMTZtZjRfdHVtKHZib29sNjRfdCB2bSwg dmZsb2F0MTZtZjRfdCB2ZCwNCj4gKyAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIHZmbG9hdDE2bWY0X3QgdnMyLCB2ZmxvYXQxNm1m NF90IHZzMSwNCj4gKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgIHNpemVfdCB2bCkgew0KPiArICByZXR1cm4gX19yaXNjdl92ZmFk ZF90dW0odm0sIHZkLCB2czIsIHZzMSwgdmwpOw0KPiArfQ0KPiArDQo+ICt2 ZmxvYXQxNm1mNF90IHRlc3RfdmZhZGRfdnZfZjE2bWY0X3R1bXUodmJvb2w2 NF90IHZtLCB2ZmxvYXQxNm1mNF90IHZkLA0KPiArICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIHZmbG9hdDE2bWY0X3QgdnMyLCB2 ZmxvYXQxNm1mNF90IHZzMSwNCj4gKyAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICBzaXplX3QgdmwpIHsNCj4gKyAgcmV0dXJuIF9f cmlzY3ZfdmZhZGRfdHVtdSh2bSwgdmQsIHZzMiwgdnMxLCB2bCk7DQo+ICt9 DQo+ICsNCj4gK3ZmbG9hdDE2bWY0X3QgdGVzdF92ZmFkZF92dl9mMTZtZjRf bXUodmJvb2w2NF90IHZtLCB2ZmxvYXQxNm1mNF90IHZkLA0KPiArICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2ZmxvYXQxNm1mNF90 IHZzMiwgdmZsb2F0MTZtZjRfdCB2czEsDQo+ICsgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIHNpemVfdCB2bCkgew0KPiArICByZXR1 cm4gX19yaXNjdl92ZmFkZF9tdSh2bSwgdmQsIHZzMiwgdnMxLCB2bCk7DQo+ ICt9DQo+ICsNCj4gK3ZmbG9hdDE2bWY0X3QgdGVzdF92ZmFkZF92dl9mMTZt ZjRfcm0odmZsb2F0MTZtZjRfdCB2czIsIHZmbG9hdDE2bWY0X3QgdnMxLA0K PiArICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzaXpl X3QgdmwpIHsNCj4gKyAgcmV0dXJuIF9fcmlzY3ZfdmZhZGQodnMyLCB2czEs IF9fUklTQ1ZfRlJNX1JORSwgdmwpOw0KPiArfQ0KPiArDQo+ICt2ZmxvYXQx Nm1mNF90IHRlc3RfdmZhZGRfdnZfZjE2bWY0X3JtX20odmJvb2w2NF90IHZt LCB2ZmxvYXQxNm1mNF90IHZzMiwNCj4gKyAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICB2ZmxvYXQxNm1mNF90IHZzMSwgc2l6ZV90 IHZsKSB7DQo+ICsgIHJldHVybiBfX3Jpc2N2X3ZmYWRkKHZtLCB2czIsIHZz MSwgX19SSVNDVl9GUk1fUk5FLCB2bCk7DQo+ICt9DQo+ICsNCj4gK3ZmbG9h dDE2bWY0X3QgdGVzdF92ZmFkZF92dl9mMTZtZjRfcm1fdHUodmZsb2F0MTZt ZjRfdCB2ZCwgdmZsb2F0MTZtZjRfdCB2czIsDQo+ICsgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZmbG9hdDE2bWY0X3QgdnMx LCBzaXplX3QgdmwpIHsNCj4gKyAgcmV0dXJuIF9fcmlzY3ZfdmZhZGRfdHUo dmQsIHZzMiwgdnMxLCBfX1JJU0NWX0ZSTV9STkUsIHZsKTsNCj4gK30NCj4g Kw0KPiArdmZsb2F0MTZtZjRfdCB0ZXN0X3ZmYWRkX3Z2X2YxNm1mNF9ybV90 dW0odmJvb2w2NF90IHZtLCB2ZmxvYXQxNm1mNF90IHZkLA0KPiArICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmZsb2F0MTZt ZjRfdCB2czIsIHZmbG9hdDE2bWY0X3QgdnMxLA0KPiArICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2l6ZV90IHZsKSB7DQo+ ICsgIHJldHVybiBfX3Jpc2N2X3ZmYWRkX3R1bSh2bSwgdmQsIHZzMiwgdnMx LCBfX1JJU0NWX0ZSTV9STkUsIHZsKTsNCj4gK30NCj4gKw0KPiArdmZsb2F0 MTZtZjRfdCB0ZXN0X3ZmYWRkX3Z2X2YxNm1mNF9ybV90dW11KHZib29sNjRf dCB2bSwgdmZsb2F0MTZtZjRfdCB2ZCwNCj4gKyAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICB2ZmxvYXQxNm1mNF90IHZzMiwg dmZsb2F0MTZtZjRfdCB2czEsDQo+ICsgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgc2l6ZV90IHZsKSB7DQo+ICsgIHJldHVy biBfX3Jpc2N2X3ZmYWRkX3R1bXUodm0sIHZkLCB2czIsIHZzMSwgX19SSVND Vl9GUk1fUk5FLCB2bCk7DQo+ICt9DQo+ICsNCj4gK3ZmbG9hdDE2bWY0X3Qg dGVzdF92ZmFkZF92dl9mMTZtZjRfcm1fbXUodmJvb2w2NF90IHZtLCB2Zmxv YXQxNm1mNF90IHZkLA0KPiArICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICB2ZmxvYXQxNm1mNF90IHZzMiwgdmZsb2F0MTZtZjRf dCB2czEsDQo+ICsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgIHNpemVfdCB2bCkgew0KPiArICByZXR1cm4gX19yaXNjdl92ZmFk ZF9tdSh2bSwgdmQsIHZzMiwgdnMxLCBfX1JJU0NWX0ZSTV9STkUsIHZsKTsN Cj4gK30NCj4gZGlmZiAtLWdpdCBhL2djYy90ZXN0c3VpdGUvZ2NjLnRhcmdl dC9yaXNjdi9ydnYvYmFzZS9vdmVybG9hZGVkX3ZnZXRfdnNldC5oIGIvZ2Nj L3Rlc3RzdWl0ZS9nY2MudGFyZ2V0L3Jpc2N2L3J2di9iYXNlL292ZXJsb2Fk ZWRfdmdldF92c2V0LmgNCj4gbmV3IGZpbGUgbW9kZSAxMDA2NDQNCj4gaW5k ZXggMDAwMDAwMDAwMDAuLjAxZTA3MmViMzhmDQo+IC0tLSAvZGV2L251bGwN Cj4gKysrIGIvZ2NjL3Rlc3RzdWl0ZS9nY2MudGFyZ2V0L3Jpc2N2L3J2di9i YXNlL292ZXJsb2FkZWRfdmdldF92c2V0LmgNCj4gQEAgLTAsMCArMSwyNyBA QA0KPiArI2luY2x1ZGUgInJpc2N2X3ZlY3Rvci5oIg0KPiArDQo+ICt2Zmxv YXQxNm0xX3QgdGVzdF92Z2V0X3ZfZjE2bTJfZjE2bTEodmZsb2F0MTZtMl90 IHNyYywgc2l6ZV90IGluZGV4KSB7DQo+ICsgIHJldHVybiBfX3Jpc2N2X3Zn ZXRfZjE2bTEoc3JjLCAwKTsNCj4gK30NCj4gKw0KPiArdmludDY0bTFfdCB0 ZXN0X3ZnZXRfdl9pNjRtNF9pNjRtMSh2aW50NjRtNF90IHNyYywgc2l6ZV90 IGluZGV4KSB7DQo+ICsgIHJldHVybiBfX3Jpc2N2X3ZnZXRfaTY0bTEoc3Jj LCAwKTsNCj4gK30NCj4gKw0KPiArdmZsb2F0MTZtMV90IHRlc3RfdmdldF92 X2YxNm0xeDRfZjE2bTEodmZsb2F0MTZtMXg0X3Qgc3JjLCBzaXplX3QgaW5k ZXgpIHsNCj4gKyAgcmV0dXJuIF9fcmlzY3ZfdmdldF9mMTZtMShzcmMsIDAp Ow0KPiArfQ0KPiArDQo+ICt2aW50OG0yX3QgdGVzdF92Z2V0X3ZfaThtMngz X2k4bTIodmludDhtMngzX3Qgc3JjLCBzaXplX3QgaW5kZXgpIHsNCj4gKyAg cmV0dXJuIF9fcmlzY3ZfdmdldF9pOG0yKHNyYywgMCk7DQo+ICt9DQo+ICsN Cj4gK3ZmbG9hdDE2bTJfdCB0ZXN0X3ZzZXRfdl9mMTZtMV9mMTZtMih2Zmxv YXQxNm0yX3QgZGVzdCwgc2l6ZV90IGluZGV4LA0KPiArICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIHZmbG9hdDE2bTFfdCB2YWx1ZSkg ew0KPiArICByZXR1cm4gX19yaXNjdl92c2V0KGRlc3QsIDAsIHZhbHVlKTsN Cj4gK30NCj4gKw0KPiArdmZsb2F0NjRtMXg3X3QgdGVzdF92c2V0X3ZfZjY0 bTFfZjY0bTF4Nyh2ZmxvYXQ2NG0xeDdfdCBkZXN0LCBzaXplX3QgaW5kZXgs DQo+ICsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg IHZmbG9hdDY0bTFfdCB2YWx1ZSkgew0KPiArICByZXR1cm4gX19yaXNjdl92 c2V0KGRlc3QsIDAsIHZhbHVlKTsNCj4gK30NCj4gZGlmZiAtLWdpdCBhL2dj Yy90ZXN0c3VpdGUvZ2NjLnRhcmdldC9yaXNjdi9ydnYvYmFzZS9vdmVybG9h ZGVkX3Zsb3hzZWcyZWkxNi5oIGIvZ2NjL3Rlc3RzdWl0ZS9nY2MudGFyZ2V0 L3Jpc2N2L3J2di9iYXNlL292ZXJsb2FkZWRfdmxveHNlZzJlaTE2LmgNCj4g bmV3IGZpbGUgbW9kZSAxMDA2NDQNCj4gaW5kZXggMDAwMDAwMDAwMDAuLjJl YmNkYjQxNzk1DQo+IC0tLSAvZGV2L251bGwNCj4gKysrIGIvZ2NjL3Rlc3Rz dWl0ZS9nY2MudGFyZ2V0L3Jpc2N2L3J2di9iYXNlL292ZXJsb2FkZWRfdmxv eHNlZzJlaTE2LmgNCj4gQEAgLTAsMCArMSwzOSBAQA0KPiArI2luY2x1ZGUg InJpc2N2X3ZlY3Rvci5oIg0KPiArDQo+ICt0eXBlZGVmIF9GbG9hdDE2IGZs b2F0MTZfdDsNCj4gK3R5cGVkZWYgZmxvYXQgZmxvYXQzMl90Ow0KPiArdHlw ZWRlZiBkb3VibGUgZmxvYXQ2NF90Ow0KPiArDQo+ICt2ZmxvYXQ2NG00eDJf dCB0ZXN0X3Zsb3hzZWcyZWkxNl92X2Y2NG00eDIoY29uc3QgZmxvYXQ2NF90 ICpyczEsDQo+ICsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgdnVpbnQxNm0xX3QgcnMyLCBzaXplX3QgdmwpIHsNCj4gKyAg cmV0dXJuIF9fcmlzY3ZfdmxveHNlZzJlaTE2KHJzMSwgcnMyLCB2bCk7DQo+ ICt9DQo+ICsNCj4gK3ZmbG9hdDY0bTR4Ml90IHRlc3RfdmxveHNlZzJlaTE2 X3ZfZjY0bTR4Ml9tKHZib29sMTZfdCB2bSwgY29uc3QgZmxvYXQ2NF90ICpy czEsDQo+ICsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICB2dWludDE2bTFfdCByczIsIHNpemVfdCB2bCkgew0KPiArICBy ZXR1cm4gX19yaXNjdl92bG94c2VnMmVpMTYodm0sIHJzMSwgcnMyLCB2bCk7 DQo+ICt9DQo+ICsNCj4gK3ZmbG9hdDY0bTR4Ml90IHRlc3RfdmxveHNlZzJl aTE2X3ZfZjY0bTR4Ml90dW0odmJvb2wxNl90IHZtLCB2ZmxvYXQ2NG00eDJf dCB2ZCwNCj4gKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgY29uc3QgZmxvYXQ2NF90ICpyczEsDQo+ICsgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZ1aW50 MTZtMV90IHJzMiwgc2l6ZV90IHZsKSB7DQo+ICsgIHJldHVybiBfX3Jpc2N2 X3Zsb3hzZWcyZWkxNl90dW0odm0sIHZkLCByczEsIHJzMiwgdmwpOw0KPiAr fQ0KPiArDQo+ICt2ZmxvYXQ2NG00eDJfdCB0ZXN0X3Zsb3hzZWcyZWkxNl92 X2Y2NG00eDJfdHVtdSh2Ym9vbDE2X3Qgdm0sIHZmbG9hdDY0bTR4Ml90IHZk LA0KPiArICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgY29uc3QgZmxvYXQ2NF90ICpyczEsDQo+ICsgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2dWludDE2 bTFfdCByczIsIHNpemVfdCB2bCkgew0KPiArICByZXR1cm4gX19yaXNjdl92 bG94c2VnMmVpMTZfdHVtdSh2bSwgdmQsIHJzMSwgcnMyLCB2bCk7DQo+ICt9 DQo+ICsNCj4gK3ZmbG9hdDY0bTR4Ml90IHRlc3RfdmxveHNlZzJlaTE2X3Zf ZjY0bTR4Ml9tdSh2Ym9vbDE2X3Qgdm0sIHZmbG9hdDY0bTR4Ml90IHZkLA0K PiArICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIGNvbnN0IGZsb2F0NjRfdCAqcnMxLA0KPiArICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZ1aW50MTZtMV90IHJz Miwgc2l6ZV90IHZsKSB7DQo+ICsgIHJldHVybiBfX3Jpc2N2X3Zsb3hzZWcy ZWkxNl9tdSh2bSwgdmQsIHJzMSwgcnMyLCB2bCk7DQo+ICt9DQo+ICsNCj4g K3ZmbG9hdDY0bTR4Ml90IHRlc3RfdmxveHNlZzJlaTE2X3ZfZjY0bTR4Ml90 dSh2ZmxvYXQ2NG00eDJfdCB2ZCwNCj4gKyAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBmbG9hdDY0X3QgKnJz MSwNCj4gKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICB2dWludDE2bTFfdCByczIsIHNpemVfdCB2bCkgew0KPiArICBy ZXR1cm4gX19yaXNjdl92bG94c2VnMmVpMTZfdHUodmQsIHJzMSwgcnMyLCB2 bCk7DQo+ICt9DQo+IGRpZmYgLS1naXQgYS9nY2MvdGVzdHN1aXRlL2djYy50 YXJnZXQvcmlzY3YvcnZ2L2Jhc2Uvb3ZlcmxvYWRlZF92bXYuaCBiL2djYy90 ZXN0c3VpdGUvZ2NjLnRhcmdldC9yaXNjdi9ydnYvYmFzZS9vdmVybG9hZGVk X3Ztdi5oDQo+IG5ldyBmaWxlIG1vZGUgMTAwNjQ0DQo+IGluZGV4IDAwMDAw MDAwMDAwLi5mZDNmMWQyOGMwYQ0KPiAtLS0gL2Rldi9udWxsDQo+ICsrKyBi L2djYy90ZXN0c3VpdGUvZ2NjLnRhcmdldC9yaXNjdi9ydnYvYmFzZS9vdmVy bG9hZGVkX3Ztdi5oDQo+IEBAIC0wLDAgKzEsMjYgQEANCj4gKyNpbmNsdWRl ICJyaXNjdl92ZWN0b3IuaCINCj4gKw0KPiArdmludDhtMV90IHRlc3Rfdm12 X3Zfdl9pOG0xICh2aW50OG0xX3QgdnMxLCBzaXplX3QgdmwpIHsNCj4gKyAg cmV0dXJuIF9fcmlzY3Zfdm12X3YgKHZzMSwgdmwpOw0KPiArfQ0KPiArDQo+ ICt2aW50OG0xX3QgdGVzdF92bXZfdl92X2k4bTFfdHUgKHZpbnQ4bTFfdCB2 ZCwgdmludDhtMV90IHZzMSwgc2l6ZV90IHZsKSB7DQo+ICsgIHJldHVybiBf X3Jpc2N2X3Ztdl92X3R1KHZkLCB2czEsIHZsKTsNCj4gK30NCj4gKw0KPiAr dmZsb2F0MTZtMV90IHRlc3Rfdm12X3Zfdl9mMTZtMSAodmZsb2F0MTZtMV90 IHZzMSwgc2l6ZV90IHZsKSB7DQo+ICsgIHJldHVybiBfX3Jpc2N2X3Ztdl92 ICh2czEsIHZsKTsNCj4gK30NCj4gKw0KPiArdmZsb2F0MTZtMV90IHRlc3Rf dm12X3Zfdl9mMTZtMV90dSAodmZsb2F0MTZtMV90IHZkLCB2ZmxvYXQxNm0x X3QgdnMxLA0KPiArICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICBzaXplX3QgdmwpIHsNCj4gKyAgcmV0dXJuIF9fcmlzY3Zfdm12X3ZfdHUg KHZkLCB2czEsIHZsKTsNCj4gK30NCj4gKw0KPiAraW50OF90IHRlc3Rfdm12 X3hfc19pOG0xX2k4KHZpbnQ4bTFfdCB2czEpIHsNCj4gKyAgcmV0dXJuIF9f cmlzY3Zfdm12X3ggKHZzMSk7DQo+ICt9DQo+ICsNCj4gK3ZpbnQ4bTFfdCB0 ZXN0X3Ztdl9zX3hfaThtMV90dSh2aW50OG0xX3QgdmQsIGludDhfdCByczEs IHNpemVfdCB2bCkgew0KPiArICByZXR1cm4gX19yaXNjdl92bXZfc190dSh2 ZCwgcnMxLCB2bCk7DQo+ICt9DQo+IGRpZmYgLS1naXQgYS9nY2MvdGVzdHN1 aXRlL2djYy50YXJnZXQvcmlzY3YvcnZ2L2Jhc2Uvb3ZlcmxvYWRlZF92cmVp bnRlcnByZXQuaCBiL2djYy90ZXN0c3VpdGUvZ2NjLnRhcmdldC9yaXNjdi9y dnYvYmFzZS9vdmVybG9hZGVkX3ZyZWludGVycHJldC5oDQo+IG5ldyBmaWxl IG1vZGUgMTAwNjQ0DQo+IGluZGV4IDAwMDAwMDAwMDAwLi45MDRiMGNlZWU3 Mg0KPiAtLS0gL2Rldi9udWxsDQo+ICsrKyBiL2djYy90ZXN0c3VpdGUvZ2Nj LnRhcmdldC9yaXNjdi9ydnYvYmFzZS9vdmVybG9hZGVkX3ZyZWludGVycHJl dC5oDQo+IEBAIC0wLDAgKzEsMjkgQEANCj4gKyNpbmNsdWRlICJyaXNjdl92 ZWN0b3IuaCINCj4gKw0KPiArdnVpbnQxNm0xX3QgdGVzdF92cmVpbnRlcnBy ZXRfdl9iMl91MTZtMSh2Ym9vbDJfdCBzcmMpIHsNCj4gKyAgcmV0dXJuIF9f cmlzY3ZfdnJlaW50ZXJwcmV0X3UxNm0xKHNyYyk7DQo+ICt9DQo+ICsNCj4g K3Zib29sNF90IHRlc3RfdnJlaW50ZXJwcmV0X3ZfaTMybTFfYjQodmludDMy bTFfdCBzcmMpIHsNCj4gKyAgcmV0dXJuIF9fcmlzY3ZfdnJlaW50ZXJwcmV0 X2I0KHNyYyk7DQo+ICt9DQo+ICsNCj4gK3ZpbnQ4bWYyX3QgdGVzdF92cmVp bnRlcnByZXRfdl9pMTZtZjJfaThtZjIodmludDE2bWYyX3Qgc3JjKSB7DQo+ ICsgIHJldHVybiBfX3Jpc2N2X3ZyZWludGVycHJldF9pOG1mMihzcmMpOw0K PiArfQ0KPiArDQo+ICt2aW50MzJtZjJfdCB0ZXN0X3ZyZWludGVycHJldF92 X2kxNm1mMl9pMzJtZjIodmludDE2bWYyX3Qgc3JjKSB7DQo+ICsgIHJldHVy biBfX3Jpc2N2X3ZyZWludGVycHJldF9pMzJtZjIoc3JjKTsNCj4gK30NCj4g Kw0KPiArdmludDMybTFfdCB0ZXN0X3ZyZWludGVycHJldF92X2kxNm0xX2kz Mm0xKHZpbnQxNm0xX3Qgc3JjKSB7DQo+ICsgIHJldHVybiBfX3Jpc2N2X3Zy ZWludGVycHJldF9pMzJtMShzcmMpOw0KPiArfQ0KPiArDQo+ICt2aW50OG00 X3QgdGVzdF92cmVpbnRlcnByZXRfdl9pMzJtNF9pOG00KHZpbnQzMm00X3Qg c3JjKSB7DQo+ICsgIHJldHVybiBfX3Jpc2N2X3ZyZWludGVycHJldF9pOG00 KHNyYyk7DQo+ICt9DQo+ICsNCj4gK3Z1aW50OG04X3QgdGVzdF92cmVpbnRl cnByZXRfdl91MzJtOF91OG04KHZ1aW50MzJtOF90IHNyYykgew0KPiArICBy ZXR1cm4gX19yaXNjdl92cmVpbnRlcnByZXRfdThtOChzcmMpOw0KPiArfQ0K PiAtLQ0KPiAyLjE3LjENCj4gIA0KPiAgDQo= ------=_001_NextPart384443402771_=------