From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from ffbox0-bg.mplayerhq.hu (ffbox0-bg.ffmpeg.org [79.124.17.100]) by master.gitmailbox.com (Postfix) with ESMTP id 2713540295 for ; Mon, 20 Dec 2021 06:08:01 +0000 (UTC) Received: from [127.0.1.1] (localhost [127.0.0.1]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTP id 5AA7468A807; Mon, 20 Dec 2021 08:07:59 +0200 (EET) Received: from loongson.cn (mail.loongson.cn [114.242.206.163]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTP id 4B65D680B71 for ; Mon, 20 Dec 2021 08:07:51 +0200 (EET) Received: from [10.140.1.41] (unknown [36.33.26.144]) by mail.loongson.cn (Coremail) with SMTP id AQAAf9Dx2ZazHcBhmmMCAA--.6199S3; Mon, 20 Dec 2021 14:07:48 +0800 (CST) To: FFmpeg development discussions and patches , Jean-Baptiste Kempf References: <20211218142757.20710-1-chenhao@loongson.cn> <20211218142757.20710-3-chenhao@loongson.cn> From: Hao Chen Message-ID: <8acc5c65-556c-6cbd-d436-b5d9ad563cf3@loongson.cn> Date: Mon, 20 Dec 2021 14:07:47 +0800 User-Agent: Mozilla/5.0 (X11; Linux loongarch64; rv:68.0) Gecko/20100101 Thunderbird/68.7.0 MIME-Version: 1.0 In-Reply-To: Content-Language: en-US X-CM-TRANSID: AQAAf9Dx2ZazHcBhmmMCAA--.6199S3 X-Coremail-Antispam: 1UD129KBjvAXoWkJF43GrW5Zr15uw4rur4UJwb_yoWfJr1UWo W0k34kCwn7Gry293s8Jr95Jay7A3yYkryqyayUtr1Iv3WFvFyUCrZ8Zws5Jr4Dur4xu3W5 GF4fXrZYvwn0qrn5n29KB7ZKAUJUUUUU529EdanIXcx71UUUUU7v73VFW2AGmfu7bjvjm3 AaLaJ3UjIYCTnIWjp_UUU5a7k0a2IF6F4UM7kC6x804xWl14x267AKxVWUJVW8JwAFc2x0 x2IEx4CE42xK8VAvwI8IcIk0rVWrJVCq3wAFIxvE14AKwVWUJVWUGwA2ocxC64kIII0Yj4 1l84x0c7CEw4AK67xGY2AK021l84ACjcxK6xIIjxv20xvE14v26ryj6F1UM28EF7xvwVC0 I7IYx2IY6xkF7I0E14v26F4j6r4UJwA2z4x0Y4vEx4A2jsIE14v26rxl6s0DM28EF7xvwV C2z280aVCY1x0267AKxVW0oVCq3wAS0I0E0xvYzxvE52x082IY62kv0487Mc02F40EFcxC 0VAKzVAqx4xG6I80ewAv7VC0I7IYx2IY67AKxVWUXVWUAwAv7VC2z280aVAFwI0_Gr0_Cr 1lOx8S6xCaFVCjc4AY6r1j6r4UMxkIecxEwVAFwVW8AwCFx2IqxVCFs4IE7xkEbVWUJVW8 JwC20s026c02F40E14v26r1j6r18MI8I3I0E7480Y4vE14v26r106r1rMI8E67AF67kF1V AFwI0_Jrv_JF1lIxAIcVC0I7IYx2IY67AKxVWUJVWUCwCI42IY6xIIjxv20xvEc7CjxVAF wI0_Jr0_Gr1lIxAIcVCF04k26cxKx2IYs7xG6rW3Jr0E3s1lIxAIcVC2z280aVAFwI0_Jr 0_Gr1lIxAIcVC2z280aVCY1x0267AKxVWUJVW8JbIYCTnIWIevJa73UjIFyTuYvjxUIzuW DUUUU X-CM-SenderInfo: hfkh0xtdr6z05rqj20fqof0/ Subject: Re: [FFmpeg-devel] [PATCH 2/4] avcodec: [loongarch] Optimize vp9_mc/intra with LSX. X-BeenThere: ffmpeg-devel@ffmpeg.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: FFmpeg development discussions and patches List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Reply-To: FFmpeg development discussions and patches Content-Transfer-Encoding: base64 Content-Type: text/plain; charset="gbk"; Format="flowed" Errors-To: ffmpeg-devel-bounces@ffmpeg.org Sender: "ffmpeg-devel" Archived-At: List-Archive: List-Post: VGhhbmtzIGZvciB5b3VyIHF1ZXN0aW9ucy4gQXQgcHJlc2VudCwgd2UgZG9uJ3QgaGF2ZSBBU00g Zm9ybWF0IGNvZGUsIApidXQgd2UgaGF2ZSBwbGFucyB0byB1c2UgQVNNIGZvcm1hdCBjb2RlIHRv IHJlcGxhY2UgdGhlIGV4aXN0aW5nIGNvZGUuIApJdCB3aWxsIHRha2Ugc29tZSB0aW1lLgoKQmVz dCwKCtTaIDIwMjEvMTIvMTkgyc/O5zI6NDcsIEplYW4tQmFwdGlzdGUgS2VtcGYg0LS1wDoKPiBT b3JyeSB0byBhc2ssIGJ1dCBkb24ndCB5b3UgaGF2ZSBhbiBBU00gZm9ybWF0LCBpbnN0ZWFkIG9m IGludHJpbnNpY3M/Cj4KPiBCZXN0LAo+Cj4gT24gU2F0LCAxOCBEZWMgMjAyMSwgYXQgMTU6Mjcs IEhhbyBDaGVuIHdyb3RlOgo+PiBmZm1wZWcgLWkgLi4vMTBfdnA5XzEwODBwXzMwZnBzXzNNYnBz LndlYm0gLWYgcmF3dmlkZW8gLXkgL2Rldi9udWxsIC1hbgo+PiBiZWZvcmU6MTcwZnBzCj4+IGFm dGVyIDoyOTRmcHMKPj4gLS0tCj4+ICAgbGliYXZjb2RlYy9sb29uZ2FyY2gvTWFrZWZpbGUgICAg ICAgICAgICAgICAgfCAgICAzICsKPj4gICBsaWJhdmNvZGVjL2xvb25nYXJjaC92cDlfaW50cmFf bHN4LmMgICAgICAgICB8ICA2NTMgKysrKysKPj4gICBsaWJhdmNvZGVjL2xvb25nYXJjaC92cDlf bWNfbHN4LmMgICAgICAgICAgICB8IDI0ODAgKysrKysrKysrKysrKysrKysrCj4+ICAgbGliYXZj b2RlYy9sb29uZ2FyY2gvdnA5ZHNwX2luaXRfbG9vbmdhcmNoLmMgfCAgIDk3ICsKPj4gICBsaWJh dmNvZGVjL2xvb25nYXJjaC92cDlkc3BfbG9vbmdhcmNoLmggICAgICB8ICAxNDQgKwo+PiAgIGxp YmF2Y29kZWMvdnA5ZHNwLmMgICAgICAgICAgICAgICAgICAgICAgICAgIHwgICAgMSArCj4+ICAg bGliYXZjb2RlYy92cDlkc3AuaCAgICAgICAgICAgICAgICAgICAgICAgICAgfCAgICAxICsKPj4g ICA3IGZpbGVzIGNoYW5nZWQsIDMzNzkgaW5zZXJ0aW9ucygrKQo+PiAgIGNyZWF0ZSBtb2RlIDEw MDY0NCBsaWJhdmNvZGVjL2xvb25nYXJjaC92cDlfaW50cmFfbHN4LmMKPj4gICBjcmVhdGUgbW9k ZSAxMDA2NDQgbGliYXZjb2RlYy9sb29uZ2FyY2gvdnA5X21jX2xzeC5jCj4+ICAgY3JlYXRlIG1v ZGUgMTAwNjQ0IGxpYmF2Y29kZWMvbG9vbmdhcmNoL3ZwOWRzcF9pbml0X2xvb25nYXJjaC5jCj4+ ICAgY3JlYXRlIG1vZGUgMTAwNjQ0IGxpYmF2Y29kZWMvbG9vbmdhcmNoL3ZwOWRzcF9sb29uZ2Fy Y2guaAo+Pgo+PiBkaWZmIC0tZ2l0IGEvbGliYXZjb2RlYy9sb29uZ2FyY2gvTWFrZWZpbGUKPj4g Yi9saWJhdmNvZGVjL2xvb25nYXJjaC9NYWtlZmlsZQo+PiBpbmRleCA0ZTFkODI3ZTE5Li42ZmNl YmU0MGEzIDEwMDY0NAo+PiAtLS0gYS9saWJhdmNvZGVjL2xvb25nYXJjaC9NYWtlZmlsZQo+PiAr KysgYi9saWJhdmNvZGVjL2xvb25nYXJjaC9NYWtlZmlsZQo+PiBAQCAtMyw2ICszLDcgQEAgT0JK Uy0kKENPTkZJR19IMjY0UVBFTCkgICAgICAgICAgICAgICArPQo+PiBsb29uZ2FyY2gvaDI2NHFw ZWxfaW5pdF9sb29uZ2FyY2gubwo+PiAgIE9CSlMtJChDT05GSUdfSDI2NERTUCkgICAgICAgICAg ICAgICAgKz0KPj4gbG9vbmdhcmNoL2gyNjRkc3BfaW5pdF9sb29uZ2FyY2gubwo+PiAgIE9CSlMt JChDT05GSUdfSDI2NFBSRUQpICAgICAgICAgICAgICAgKz0KPj4gbG9vbmdhcmNoL2gyNjRfaW50 cmFwcmVkX2luaXRfbG9vbmdhcmNoLm8KPj4gICBPQkpTLSQoQ09ORklHX1ZQOF9ERUNPREVSKSAg ICAgICAgICAgICs9Cj4+IGxvb25nYXJjaC92cDhkc3BfaW5pdF9sb29uZ2FyY2gubwo+PiArT0JK Uy0kKENPTkZJR19WUDlfREVDT0RFUikgICAgICAgICAgICArPQo+PiBsb29uZ2FyY2gvdnA5ZHNw X2luaXRfbG9vbmdhcmNoLm8KPj4gICBMQVNYLU9CSlMtJChDT05GSUdfSDI2NENIUk9NQSkgICAg ICAgICs9IGxvb25nYXJjaC9oMjY0Y2hyb21hX2xhc3gubwo+PiAgIExBU1gtT0JKUy0kKENPTkZJ R19IMjY0UVBFTCkgICAgICAgICAgKz0gbG9vbmdhcmNoL2gyNjRxcGVsX2xhc3gubwo+PiAgIExB U1gtT0JKUy0kKENPTkZJR19IMjY0RFNQKSAgICAgICAgICAgKz0gbG9vbmdhcmNoL2gyNjRkc3Bf bGFzeC5vIFwKPj4gQEAgLTExLDMgKzEyLDUgQEAgTEFTWC1PQkpTLSQoQ09ORklHX0gyNjREU1Ap ICAgICAgICAgICArPQo+PiBsb29uZ2FyY2gvaDI2NGRzcF9sYXN4Lm8gXAo+PiAgIExBU1gtT0JK Uy0kKENPTkZJR19IMjY0UFJFRCkgICAgICAgICAgKz0KPj4gbG9vbmdhcmNoL2gyNjRfaW50cmFw cmVkX2xhc3gubwo+PiAgIExTWC1PQkpTLSQoQ09ORklHX1ZQOF9ERUNPREVSKSAgICAgICAgKz0g bG9vbmdhcmNoL3ZwOF9tY19sc3gubyBcCj4+ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICBsb29uZ2FyY2gvdnA4X2xwZl9sc3gubwo+PiArTFNYLU9CSlMtJChDT05G SUdfVlA5X0RFQ09ERVIpICAgICAgICArPSBsb29uZ2FyY2gvdnA5X21jX2xzeC5vIFwKPj4gKyAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbG9vbmdhcmNoL3ZwOV9pbnRy YV9sc3gubwo+PiBkaWZmIC0tZ2l0IGEvbGliYXZjb2RlYy9sb29uZ2FyY2gvdnA5X2ludHJhX2xz eC5jCj4+IGIvbGliYXZjb2RlYy9sb29uZ2FyY2gvdnA5X2ludHJhX2xzeC5jCj4+IG5ldyBmaWxl IG1vZGUgMTAwNjQ0Cj4+IGluZGV4IDAwMDAwMDAwMDAuLmQzZjMyNjQ2ZjMKPj4gLS0tIC9kZXYv bnVsbAo+PiArKysgYi9saWJhdmNvZGVjL2xvb25nYXJjaC92cDlfaW50cmFfbHN4LmMKPj4gQEAg LTAsMCArMSw2NTMgQEAKPj4gKy8qCj4+ICsgKiBDb3B5cmlnaHQgKGMpIDIwMjEgTG9vbmdzb24g VGVjaG5vbG9neSBDb3Jwb3JhdGlvbiBMaW1pdGVkCj4+ICsgKiBDb250cmlidXRlZCBieSBIYW8g Q2hlbiA8Y2hlbmhhb0Bsb29uZ3Nvbi5jbj4KPj4gKyAqCj4+ICsgKiBUaGlzIGZpbGUgaXMgcGFy dCBvZiBGRm1wZWcuCj4+ICsgKgo+PiArICogRkZtcGVnIGlzIGZyZWUgc29mdHdhcmU7IHlvdSBj YW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vcgo+PiArICogbW9kaWZ5IGl0IHVuZGVyIHRoZSB0ZXJt cyBvZiB0aGUgR05VIExlc3NlciBHZW5lcmFsIFB1YmxpYwo+PiArICogTGljZW5zZSBhcyBwdWJs aXNoZWQgYnkgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyCj4+ICsgKiB2ZXJz aW9uIDIuMSBvZiB0aGUgTGljZW5zZSwgb3IgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVy c2lvbi4KPj4gKyAqCj4+ICsgKiBGRm1wZWcgaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhh dCBpdCB3aWxsIGJlIHVzZWZ1bCwKPj4gKyAqIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0 aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mCj4+ICsgKiBNRVJDSEFOVEFCSUxJVFkg b3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlIEdOVQo+PiArICog TGVzc2VyIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KPj4gKyAqCj4+ ICsgKiBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgTGVzc2VyIEdl bmVyYWwgUHVibGljCj4+ICsgKiBMaWNlbnNlIGFsb25nIHdpdGggRkZtcGVnOyBpZiBub3QsIHdy aXRlIHRvIHRoZSBGcmVlIFNvZnR3YXJlCj4+ICsgKiBGb3VuZGF0aW9uLCBJbmMuLCA1MSBGcmFu a2xpbiBTdHJlZXQsIEZpZnRoIEZsb29yLCBCb3N0b24sIE1BCj4+IDAyMTEwLTEzMDEgVVNBCj4+ ICsgKi8KPj4gKwo+PiArI2luY2x1ZGUgImxpYmF2Y29kZWMvdnA5ZHNwLmgiCj4+ICsjaW5jbHVk ZSAibGliYXZ1dGlsL2xvb25nYXJjaC9sb29uZ3Nvbl9pbnRyaW5zaWNzLmgiCj4+ICsjaW5jbHVk ZSAidnA5ZHNwX2xvb25nYXJjaC5oIgo+PiArCj4+ICsjZGVmaW5lIExTWF9TVF84KF9kc3QwLCBf ZHN0MSwgX2RzdDIsIF9kc3QzLCBfZHN0NCwgICBcCj4+ICsgICAgICAgICAgICAgICAgIF9kc3Q1 LCBfZHN0NiwgX2RzdDcsIF9kc3QsIF9zdHJpZGUsICBcCj4+ICsgICAgICAgICAgICAgICAgIF9z dHJpZGUyLCBfc3RyaWRlMywgX3N0cmlkZTQpICAgICAgICBcCj4+ICt7ICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCj4+ICsgICAgX19sc3hfdnN0 KF9kc3QwLCBfZHN0LCAwKTsgICAgICAgICAgICAgICAgICAgICAgICBcCj4+ICsgICAgX19sc3hf dnN0eChfZHN0MSwgX2RzdCwgX3N0cmlkZSk7ICAgICAgICAgICAgICAgICBcCj4+ICsgICAgX19s c3hfdnN0eChfZHN0MiwgX2RzdCwgX3N0cmlkZTIpOyAgICAgICAgICAgICAgICBcCj4+ICsgICAg X19sc3hfdnN0eChfZHN0MywgX2RzdCwgX3N0cmlkZTMpOyAgICAgICAgICAgICAgICBcCj4+ICsg ICAgX2RzdCArPSBfc3RyaWRlNDsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCj4+ ICsgICAgX19sc3hfdnN0KF9kc3Q0LCBfZHN0LCAwKTsgICAgICAgICAgICAgICAgICAgICAgICBc Cj4+ICsgICAgX19sc3hfdnN0eChfZHN0NSwgX2RzdCwgX3N0cmlkZSk7ICAgICAgICAgICAgICAg ICBcCj4+ICsgICAgX19sc3hfdnN0eChfZHN0NiwgX2RzdCwgX3N0cmlkZTIpOyAgICAgICAgICAg ICAgICBcCj4+ICsgICAgX19sc3hfdnN0eChfZHN0NywgX2RzdCwgX3N0cmlkZTMpOyAgICAgICAg ICAgICAgICBcCj4+ICt9Cj4+ICsKPj4gKyNkZWZpbmUgTFNYX1NUXzhYMTYoX2RzdDAsIF9kc3Qx LCBfZHN0MiwgX2RzdDMsIF9kc3Q0LCAgIFwKPj4gKyAgICAgICAgICAgICAgICAgICAgX2RzdDUs IF9kc3Q2LCBfZHN0NywgX2RzdCwgX3N0cmlkZSkgIFwKPj4gK3sgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKPj4gKyAgICBfX2xzeF92c3Qo X2RzdDAsIF9kc3QsIDApOyAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKPj4gKyAgICBfX2xz eF92c3QoX2RzdDAsIF9kc3QsIDE2KTsgICAgICAgICAgICAgICAgICAgICAgICAgIFwKPj4gKyAg ICBfZHN0ICs9IF9zdHJpZGU7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwK Pj4gKyAgICBfX2xzeF92c3QoX2RzdDEsIF9kc3QsIDApOyAgICAgICAgICAgICAgICAgICAgICAg ICAgIFwKPj4gKyAgICBfX2xzeF92c3QoX2RzdDEsIF9kc3QsIDE2KTsgICAgICAgICAgICAgICAg ICAgICAgICAgIFwKPj4gKyAgICBfZHN0ICs9IF9zdHJpZGU7ICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIFwKPj4gKyAgICBfX2xzeF92c3QoX2RzdDIsIF9kc3QsIDApOyAgICAg ICAgICAgICAgICAgICAgICAgICAgIFwKPj4gKyAgICBfX2xzeF92c3QoX2RzdDIsIF9kc3QsIDE2 KTsgICAgICAgICAgICAgICAgICAgICAgICAgIFwKPj4gKyAgICBfZHN0ICs9IF9zdHJpZGU7ICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKPj4gKyAgICBfX2xzeF92c3QoX2Rz dDMsIF9kc3QsIDApOyAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKPj4gKyAgICBfX2xzeF92 c3QoX2RzdDMsIF9kc3QsIDE2KTsgICAgICAgICAgICAgICAgICAgICAgICAgIFwKPj4gKyAgICBf ZHN0ICs9IF9zdHJpZGU7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKPj4g KyAgICBfX2xzeF92c3QoX2RzdDQsIF9kc3QsIDApOyAgICAgICAgICAgICAgICAgICAgICAgICAg IFwKPj4gKyAgICBfX2xzeF92c3QoX2RzdDQsIF9kc3QsIDE2KTsgICAgICAgICAgICAgICAgICAg ICAgICAgIFwKPj4gKyAgICBfZHN0ICs9IF9zdHJpZGU7ICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIFwKPj4gKyAgICBfX2xzeF92c3QoX2RzdDUsIF9kc3QsIDApOyAgICAgICAg ICAgICAgICAgICAgICAgICAgIFwKPj4gKyAgICBfX2xzeF92c3QoX2RzdDUsIF9kc3QsIDE2KTsg ICAgICAgICAgICAgICAgICAgICAgICAgIFwKPj4gKyAgICBfZHN0ICs9IF9zdHJpZGU7ICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKPj4gKyAgICBfX2xzeF92c3QoX2RzdDYs IF9kc3QsIDApOyAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKPj4gKyAgICBfX2xzeF92c3Qo X2RzdDYsIF9kc3QsIDE2KTsgICAgICAgICAgICAgICAgICAgICAgICAgIFwKPj4gKyAgICBfZHN0 ICs9IF9zdHJpZGU7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKPj4gKyAg ICBfX2xzeF92c3QoX2RzdDcsIF9kc3QsIDApOyAgICAgICAgICAgICAgICAgICAgICAgICAgIFwK Pj4gKyAgICBfX2xzeF92c3QoX2RzdDcsIF9kc3QsIDE2KTsgICAgICAgICAgICAgICAgICAgICAg ICAgIFwKPj4gKyAgICBfZHN0ICs9IF9zdHJpZGU7ICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIFwKPj4gK30KPj4gKwo+PiArdm9pZCBmZl92ZXJ0XzE2eDE2X2xzeCh1aW50OF90 ICpkc3QsIHB0cmRpZmZfdCBkc3Rfc3RyaWRlLCBjb25zdAo+PiB1aW50OF90ICpsZWZ0LAo+PiAr ICAgICAgICAgICAgICAgICAgICAgICBjb25zdCB1aW50OF90ICpzcmMpCj4+ICt7Cj4+ICsgICAg X19tMTI4aSBzcmMwOwo+PiArICAgIHB0cmRpZmZfdCBzdHJpZGUyID0gZHN0X3N0cmlkZSA8PCAx Owo+PiArICAgIHB0cmRpZmZfdCBzdHJpZGUzID0gc3RyaWRlMiArIGRzdF9zdHJpZGU7Cj4+ICsg ICAgcHRyZGlmZl90IHN0cmlkZTQgPSBzdHJpZGUyIDw8IDE7Cj4+ICsgICAgc3JjMCA9IF9fbHN4 X3ZsZChzcmMsIDApOwo+PiArICAgIExTWF9TVF84KHNyYzAsIHNyYzAsIHNyYzAsIHNyYzAsIHNy YzAsIHNyYzAsIHNyYzAsIHNyYzAsIGRzdCwKPj4gKyAgICAgICAgICAgICBkc3Rfc3RyaWRlLCBz dHJpZGUyLCBzdHJpZGUzLCBzdHJpZGU0KTsKPj4gKyAgICBkc3QgKz0gc3RyaWRlNDsKPj4gKyAg ICBMU1hfU1RfOChzcmMwLCBzcmMwLCBzcmMwLCBzcmMwLCBzcmMwLCBzcmMwLCBzcmMwLCBzcmMw LCBkc3QsCj4+ICsgICAgICAgICAgICAgZHN0X3N0cmlkZSwgc3RyaWRlMiwgc3RyaWRlMywgc3Ry aWRlNCk7Cj4+ICt9Cj4+ICsKPj4gK3ZvaWQgZmZfdmVydF8zMngzMl9sc3godWludDhfdCAqZHN0 LCBwdHJkaWZmX3QgZHN0X3N0cmlkZSwgY29uc3QKPj4gdWludDhfdCAqbGVmdCwKPj4gKyAgICAg ICAgICAgICAgICAgICAgICAgY29uc3QgdWludDhfdCAqc3JjKQo+PiArewo+PiArICAgIHVpbnQz Ml90IHJvdzsKPj4gKyAgICBfX20xMjhpIHNyYzAsIHNyYzE7Cj4+ICsKPj4gKyAgICBEVVAyX0FS RzIoX19sc3hfdmxkLCBzcmMsIDAsIHNyYywgMTYsIHNyYzAsIHNyYzEpOwo+PiArICAgIGZvciAo cm93ID0gMzI7IHJvdy0tOykgewo+PiArICAgICAgICBfX2xzeF92c3Qoc3JjMCwgZHN0LCAwKTsK Pj4gKyAgICAgICAgX19sc3hfdnN0KHNyYzEsIGRzdCwgMTYpOwo+PiArICAgICAgICBkc3QgKz0g ZHN0X3N0cmlkZTsKPj4gKyAgICB9Cj4+ICt9Cj4+ICsKPj4gK3ZvaWQgZmZfaG9yXzE2eDE2X2xz eCh1aW50OF90ICpkc3QsIHB0cmRpZmZfdCBkc3Rfc3RyaWRlLCBjb25zdAo+PiB1aW50OF90ICpz cmMsCj4+ICsgICAgICAgICAgICAgICAgICAgICAgY29uc3QgdWludDhfdCAqdG9wKQo+PiArewo+ PiArICAgIF9fbTEyOGkgc3JjMCwgc3JjMSwgc3JjMiwgc3JjMywgc3JjNCwgc3JjNSwgc3JjNiwg c3JjNzsKPj4gKyAgICBfX20xMjhpIHNyYzgsIHNyYzksIHNyYzEwLCBzcmMxMSwgc3JjMTIsIHNy YzEzLCBzcmMxNCwgc3JjMTU7Cj4+ICsgICAgcHRyZGlmZl90IHN0cmlkZTIgPSBkc3Rfc3RyaWRl IDw8IDE7Cj4+ICsgICAgcHRyZGlmZl90IHN0cmlkZTMgPSBzdHJpZGUyICsgZHN0X3N0cmlkZTsK Pj4gKyAgICBwdHJkaWZmX3Qgc3RyaWRlNCA9IHN0cmlkZTIgPDwgMTsKPj4gKwo+PiArICAgIHNy YzE1ID0gX19sc3hfdmxkcmVwbF9iKHNyYywgMCk7Cj4+ICsgICAgc3JjMTQgPSBfX2xzeF92bGRy ZXBsX2Ioc3JjLCAxKTsKPj4gKyAgICBzcmMxMyA9IF9fbHN4X3ZsZHJlcGxfYihzcmMsIDIpOwo+ PiArICAgIHNyYzEyID0gX19sc3hfdmxkcmVwbF9iKHNyYywgMyk7Cj4+ICsgICAgc3JjMTEgPSBf X2xzeF92bGRyZXBsX2Ioc3JjLCA0KTsKPj4gKyAgICBzcmMxMCA9IF9fbHN4X3ZsZHJlcGxfYihz cmMsIDUpOwo+PiArICAgIHNyYzkgID0gX19sc3hfdmxkcmVwbF9iKHNyYywgNik7Cj4+ICsgICAg c3JjOCAgPSBfX2xzeF92bGRyZXBsX2Ioc3JjLCA3KTsKPj4gKyAgICBzcmM3ICA9IF9fbHN4X3Zs ZHJlcGxfYihzcmMsIDgpOwo+PiArICAgIHNyYzYgID0gX19sc3hfdmxkcmVwbF9iKHNyYywgOSk7 Cj4+ICsgICAgc3JjNSAgPSBfX2xzeF92bGRyZXBsX2Ioc3JjLCAxMCk7Cj4+ICsgICAgc3JjNCAg PSBfX2xzeF92bGRyZXBsX2Ioc3JjLCAxMSk7Cj4+ICsgICAgc3JjMyAgPSBfX2xzeF92bGRyZXBs X2Ioc3JjLCAxMik7Cj4+ICsgICAgc3JjMiAgPSBfX2xzeF92bGRyZXBsX2Ioc3JjLCAxMyk7Cj4+ ICsgICAgc3JjMSAgPSBfX2xzeF92bGRyZXBsX2Ioc3JjLCAxNCk7Cj4+ICsgICAgc3JjMCAgPSBf X2xzeF92bGRyZXBsX2Ioc3JjLCAxNSk7Cj4+ICsgICAgTFNYX1NUXzgoc3JjMCwgc3JjMSwgc3Jj Miwgc3JjMywgc3JjNCwgc3JjNSwgc3JjNiwgc3JjNywgZHN0LAo+PiArICAgICAgICAgICAgIGRz dF9zdHJpZGUsIHN0cmlkZTIsIHN0cmlkZTMsIHN0cmlkZTQpOwo+PiArICAgIGRzdCArPSBzdHJp ZGU0Owo+PiArICAgIExTWF9TVF84KHNyYzgsIHNyYzksIHNyYzEwLCBzcmMxMSwgc3JjMTIsIHNy YzEzLCBzcmMxNCwgc3JjMTUsIGRzdCwKPj4gKyAgICAgICAgICAgICBkc3Rfc3RyaWRlLCBzdHJp ZGUyLCBzdHJpZGUzLCBzdHJpZGU0KTsKPj4gK30KPj4gKwo+PiArdm9pZCBmZl9ob3JfMzJ4MzJf bHN4KHVpbnQ4X3QgKmRzdCwgcHRyZGlmZl90IGRzdF9zdHJpZGUsIGNvbnN0Cj4+IHVpbnQ4X3Qg KnNyYywKPj4gKyAgICAgICAgICAgICAgICAgICAgICBjb25zdCB1aW50OF90ICp0b3ApCj4+ICt7 Cj4+ICsgICAgX19tMTI4aSBzcmMwLCBzcmMxLCBzcmMyLCBzcmMzLCBzcmM0LCBzcmM1LCBzcmM2 LCBzcmM3Owo+PiArICAgIF9fbTEyOGkgc3JjOCwgc3JjOSwgc3JjMTAsIHNyYzExLCBzcmMxMiwg c3JjMTMsIHNyYzE0LCBzcmMxNTsKPj4gKyAgICBfX20xMjhpIHNyYzE2LCBzcmMxNywgc3JjMTgs IHNyYzE5LCBzcmMyMCwgc3JjMjEsIHNyYzIyLCBzcmMyMzsKPj4gKyAgICBfX20xMjhpIHNyYzI0 LCBzcmMyNSwgc3JjMjYsIHNyYzI3LCBzcmMyOCwgc3JjMjksIHNyYzMwLCBzcmMzMTsKPj4gKwo+ PiArICAgIHNyYzMxID0gX19sc3hfdmxkcmVwbF9iKHNyYywgMCk7Cj4+ICsgICAgc3JjMzAgPSBf X2xzeF92bGRyZXBsX2Ioc3JjLCAxKTsKPj4gKyAgICBzcmMyOSA9IF9fbHN4X3ZsZHJlcGxfYihz cmMsIDIpOwo+PiArICAgIHNyYzI4ID0gX19sc3hfdmxkcmVwbF9iKHNyYywgMyk7Cj4+ICsgICAg c3JjMjcgPSBfX2xzeF92bGRyZXBsX2Ioc3JjLCA0KTsKPj4gKyAgICBzcmMyNiA9IF9fbHN4X3Zs ZHJlcGxfYihzcmMsIDUpOwo+PiArICAgIHNyYzI1ID0gX19sc3hfdmxkcmVwbF9iKHNyYywgNik7 Cj4+ICsgICAgc3JjMjQgPSBfX2xzeF92bGRyZXBsX2Ioc3JjLCA3KTsKPj4gKyAgICBzcmMyMyA9 IF9fbHN4X3ZsZHJlcGxfYihzcmMsIDgpOwo+PiArICAgIHNyYzIyID0gX19sc3hfdmxkcmVwbF9i KHNyYywgOSk7Cj4+ICsgICAgc3JjMjEgPSBfX2xzeF92bGRyZXBsX2Ioc3JjLCAxMCk7Cj4+ICsg ICAgc3JjMjAgPSBfX2xzeF92bGRyZXBsX2Ioc3JjLCAxMSk7Cj4+ICsgICAgc3JjMTkgPSBfX2xz eF92bGRyZXBsX2Ioc3JjLCAxMik7Cj4+ICsgICAgc3JjMTggPSBfX2xzeF92bGRyZXBsX2Ioc3Jj LCAxMyk7Cj4+ICsgICAgc3JjMTcgPSBfX2xzeF92bGRyZXBsX2Ioc3JjLCAxNCk7Cj4+ICsgICAg c3JjMTYgPSBfX2xzeF92bGRyZXBsX2Ioc3JjLCAxNSk7Cj4+ICsgICAgc3JjMTUgPSBfX2xzeF92 bGRyZXBsX2Ioc3JjLCAxNik7Cj4+ICsgICAgc3JjMTQgPSBfX2xzeF92bGRyZXBsX2Ioc3JjLCAx Nyk7Cj4+ICsgICAgc3JjMTMgPSBfX2xzeF92bGRyZXBsX2Ioc3JjLCAxOCk7Cj4+ICsgICAgc3Jj MTIgPSBfX2xzeF92bGRyZXBsX2Ioc3JjLCAxOSk7Cj4+ICsgICAgc3JjMTEgPSBfX2xzeF92bGRy ZXBsX2Ioc3JjLCAyMCk7Cj4+ICsgICAgc3JjMTAgPSBfX2xzeF92bGRyZXBsX2Ioc3JjLCAyMSk7 Cj4+ICsgICAgc3JjOSAgPSBfX2xzeF92bGRyZXBsX2Ioc3JjLCAyMik7Cj4+ICsgICAgc3JjOCAg PSBfX2xzeF92bGRyZXBsX2Ioc3JjLCAyMyk7Cj4+ICsgICAgc3JjNyAgPSBfX2xzeF92bGRyZXBs X2Ioc3JjLCAyNCk7Cj4+ICsgICAgc3JjNiAgPSBfX2xzeF92bGRyZXBsX2Ioc3JjLCAyNSk7Cj4+ ICsgICAgc3JjNSAgPSBfX2xzeF92bGRyZXBsX2Ioc3JjLCAyNik7Cj4+ICsgICAgc3JjNCAgPSBf X2xzeF92bGRyZXBsX2Ioc3JjLCAyNyk7Cj4+ICsgICAgc3JjMyAgPSBfX2xzeF92bGRyZXBsX2Io c3JjLCAyOCk7Cj4+ICsgICAgc3JjMiAgPSBfX2xzeF92bGRyZXBsX2Ioc3JjLCAyOSk7Cj4+ICsg ICAgc3JjMSAgPSBfX2xzeF92bGRyZXBsX2Ioc3JjLCAzMCk7Cj4+ICsgICAgc3JjMCAgPSBfX2xz eF92bGRyZXBsX2Ioc3JjLCAzMSk7Cj4+ICsgICAgTFNYX1NUXzhYMTYoc3JjMCwgc3JjMSwgc3Jj Miwgc3JjMywgc3JjNCwgc3JjNSwgc3JjNiwgc3JjNywKPj4gKyAgICAgICAgICAgICAgICBkc3Qs IGRzdF9zdHJpZGUpOwo+PiArICAgIExTWF9TVF84WDE2KHNyYzgsIHNyYzksIHNyYzEwLCBzcmMx MSwgc3JjMTIsIHNyYzEzLCBzcmMxNCwgc3JjMTUsCj4+ICsgICAgICAgICAgICAgICAgZHN0LCBk c3Rfc3RyaWRlKTsKPj4gKyAgICBMU1hfU1RfOFgxNihzcmMxNiwgc3JjMTcsIHNyYzE4LCBzcmMx OSwgc3JjMjAsIHNyYzIxLCBzcmMyMiwgc3JjMjMsCj4+ICsgICAgICAgICAgICAgICAgZHN0LCBk c3Rfc3RyaWRlKTsKPj4gKyAgICBMU1hfU1RfOFgxNihzcmMyNCwgc3JjMjUsIHNyYzI2LCBzcmMy Nywgc3JjMjgsIHNyYzI5LCBzcmMzMCwgc3JjMzEsCj4+ICsgICAgICAgICAgICAgICAgZHN0LCBk c3Rfc3RyaWRlKTsKPj4gK30KPj4gKwo+PiArdm9pZCBmZl9kY180eDRfbHN4KHVpbnQ4X3QgKmRz dCwgcHRyZGlmZl90IGRzdF9zdHJpZGUsIGNvbnN0IHVpbnQ4X3QKPj4gKnNyY19sZWZ0LAo+PiAr ICAgICAgICAgICAgICAgICAgIGNvbnN0IHVpbnQ4X3QgKnNyY190b3ApCj4+ICt7Cj4+ICsgICAg X19tMTI4aSB0bXAwLCB0bXAxLCBkc3QwOwo+PiArCj4+ICsgICAgdG1wMCA9IF9fbHN4X3ZsZHJl cGxfdyhzcmNfdG9wLCAwKTsKPj4gKyAgICB0bXAxID0gX19sc3hfdmxkcmVwbF93KHNyY19sZWZ0 LCAwKTsKPj4gKyAgICBkc3QwID0gX19sc3hfdmlsdmxfdyh0bXAxLCB0bXAwKTsKPj4gKyAgICBk c3QwID0gX19sc3hfdmhhZGR3X2h1X2J1KGRzdDAsIGRzdDApOwo+PiArICAgIGRzdDAgPSBfX2xz eF92aGFkZHdfd3VfaHUoZHN0MCwgZHN0MCk7Cj4+ICsgICAgZHN0MCA9IF9fbHN4X3ZoYWRkd19k dV93dShkc3QwLCBkc3QwKTsKPj4gKyAgICBkc3QwID0gX19sc3hfdnNyYXJpX3coZHN0MCwgMyk7 Cj4+ICsgICAgZHN0MCA9IF9fbHN4X3ZzaHVmNGlfYihkc3QwLCAwKTsKPj4gKyAgICBfX2xzeF92 c3RlbG1fdyhkc3QwLCBkc3QsIDAsIDApOwo+PiArICAgIGRzdCArPSBkc3Rfc3RyaWRlOwo+PiAr ICAgIF9fbHN4X3ZzdGVsbV93KGRzdDAsIGRzdCwgMCwgMCk7Cj4+ICsgICAgZHN0ICs9IGRzdF9z dHJpZGU7Cj4+ICsgICAgX19sc3hfdnN0ZWxtX3coZHN0MCwgZHN0LCAwLCAwKTsKPj4gKyAgICBk c3QgKz0gZHN0X3N0cmlkZTsKPj4gKyAgICBfX2xzeF92c3RlbG1fdyhkc3QwLCBkc3QsIDAsIDAp Owo+PiArfQo+PiArCj4+ICsjZGVmaW5lIElOVFJBX0RDX1RMXzRYNChkaXIpCj4+ICAgXAo+PiAr dm9pZCBmZl9kY18jI2RpciMjXzR4NF9sc3godWludDhfdCAqZHN0LCBwdHJkaWZmX3QgZHN0X3N0 cmlkZSwKPj4gICBcCj4+ICsgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IHVpbnQ4X3Qg KmxlZnQsCj4+ICAgXAo+PiArICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCB1aW50OF90 ICp0b3ApCj4+ICAgXAo+PiArewo+PiAgIFwKPj4gKyAgICBfX20xMjhpIHRtcDAsIGRzdDA7Cj4+ ICAgXAo+PiArCj4+ICAgXAo+PiArICAgIHRtcDAgPSBfX2xzeF92bGRyZXBsX3coZGlyLCAwKTsK Pj4gICBcCj4+ICsgICAgZHN0MCA9IF9fbHN4X3ZoYWRkd19odV9idSh0bXAwLCB0bXAwKTsKPj4g ICBcCj4+ICsgICAgZHN0MCA9IF9fbHN4X3ZoYWRkd193dV9odShkc3QwLCBkc3QwKTsKPj4gICBc Cj4+ICsgICAgZHN0MCA9IF9fbHN4X3ZzcmFyaV93KGRzdDAsIDIpOwo+PiAgIFwKPj4gKyAgICBk c3QwID0gX19sc3hfdnNodWY0aV9iKGRzdDAsIDApOwo+PiAgIFwKPj4gKyAgICBfX2xzeF92c3Rl bG1fdyhkc3QwLCBkc3QsIDAsIDApOwo+PiAgIFwKPj4gKyAgICBkc3QgKz0gZHN0X3N0cmlkZTsK Pj4gICBcCj4+ICsgICAgX19sc3hfdnN0ZWxtX3coZHN0MCwgZHN0LCAwLCAwKTsKPj4gICBcCj4+ ICsgICAgZHN0ICs9IGRzdF9zdHJpZGU7Cj4+ICAgXAo+PiArICAgIF9fbHN4X3ZzdGVsbV93KGRz dDAsIGRzdCwgMCwgMCk7Cj4+ICAgXAo+PiArICAgIGRzdCArPSBkc3Rfc3RyaWRlOwo+PiAgIFwK Pj4gKyAgICBfX2xzeF92c3RlbG1fdyhkc3QwLCBkc3QsIDAsIDApOwo+PiAgIFwKPj4gK30KPj4g K0lOVFJBX0RDX1RMXzRYNCh0b3ApOwo+PiArSU5UUkFfRENfVExfNFg0KGxlZnQpOwo+PiArCj4+ ICt2b2lkIGZmX2RjXzh4OF9sc3godWludDhfdCAqZHN0LCBwdHJkaWZmX3QgZHN0X3N0cmlkZSwg Y29uc3QgdWludDhfdAo+PiAqc3JjX2xlZnQsCj4+ICsgICAgICAgICAgICAgICAgICAgY29uc3Qg dWludDhfdCAqc3JjX3RvcCkKPj4gK3sKPj4gKyAgICBfX20xMjhpIHRtcDAsIHRtcDEsIGRzdDA7 Cj4+ICsKPj4gKyAgICB0bXAwID0gX19sc3hfdmxkcmVwbF9kKHNyY190b3AsIDApOwo+PiArICAg IHRtcDEgPSBfX2xzeF92bGRyZXBsX2Qoc3JjX2xlZnQsIDApOwo+PiArICAgIGRzdDAgPSBfX2xz eF92aWx2bF9kKHRtcDEsIHRtcDApOwo+PiArICAgIGRzdDAgPSBfX2xzeF92aGFkZHdfaHVfYnUo ZHN0MCwgZHN0MCk7Cj4+ICsgICAgZHN0MCA9IF9fbHN4X3ZoYWRkd193dV9odShkc3QwLCBkc3Qw KTsKPj4gKyAgICBkc3QwID0gX19sc3hfdmhhZGR3X2R1X3d1KGRzdDAsIGRzdDApOwo+PiArICAg IGRzdDAgPSBfX2xzeF92aGFkZHdfcXVfZHUoZHN0MCwgZHN0MCk7Cj4+ICsgICAgZHN0MCA9IF9f bHN4X3ZzcmFyaV93KGRzdDAsIDQpOwo+PiArICAgIGRzdDAgPSBfX2xzeF92cmVwbHZlaV9iKGRz dDAsIDApOwo+PiArICAgIF9fbHN4X3ZzdGVsbV9kKGRzdDAsIGRzdCwgMCwgMCk7Cj4+ICsgICAg ZHN0ICs9IGRzdF9zdHJpZGU7Cj4+ICsgICAgX19sc3hfdnN0ZWxtX2QoZHN0MCwgZHN0LCAwLCAw KTsKPj4gKyAgICBkc3QgKz0gZHN0X3N0cmlkZTsKPj4gKyAgICBfX2xzeF92c3RlbG1fZChkc3Qw LCBkc3QsIDAsIDApOwo+PiArICAgIGRzdCArPSBkc3Rfc3RyaWRlOwo+PiArICAgIF9fbHN4X3Zz dGVsbV9kKGRzdDAsIGRzdCwgMCwgMCk7Cj4+ICsgICAgZHN0ICs9IGRzdF9zdHJpZGU7Cj4+ICsg ICAgX19sc3hfdnN0ZWxtX2QoZHN0MCwgZHN0LCAwLCAwKTsKPj4gKyAgICBkc3QgKz0gZHN0X3N0 cmlkZTsKPj4gKyAgICBfX2xzeF92c3RlbG1fZChkc3QwLCBkc3QsIDAsIDApOwo+PiArICAgIGRz dCArPSBkc3Rfc3RyaWRlOwo+PiArICAgIF9fbHN4X3ZzdGVsbV9kKGRzdDAsIGRzdCwgMCwgMCk7 Cj4+ICsgICAgZHN0ICs9IGRzdF9zdHJpZGU7Cj4+ICsgICAgX19sc3hfdnN0ZWxtX2QoZHN0MCwg ZHN0LCAwLCAwKTsKPj4gK30KPj4gKwo+PiArI2RlZmluZSBJTlRSQV9EQ19UTF84WDgoZGlyKQo+ PiAgICAgICAgIFwKPj4gK3ZvaWQgZmZfZGNfIyNkaXIjI184eDhfbHN4KHVpbnQ4X3QgKmRzdCwg cHRyZGlmZl90IGRzdF9zdHJpZGUsCj4+ICAgICAgICAgXAo+PiArICAgICAgICAgICAgICAgICAg ICAgICAgICAgY29uc3QgdWludDhfdCAqbGVmdCwKPj4gICAgICAgICBcCj4+ICsgICAgICAgICAg ICAgICAgICAgICAgICAgICBjb25zdCB1aW50OF90ICp0b3ApCj4+ICAgICAgICAgXAo+PiArewo+ PiAgICAgICAgIFwKPj4gKyAgICBfX20xMjhpIHRtcDAsIGRzdDA7Cj4+ICAgICAgICAgXAo+PiAr Cj4+ICAgICAgICAgXAo+PiArICAgIHRtcDAgPSBfX2xzeF92bGRyZXBsX2QoZGlyLCAwKTsKPj4g ICAgICAgICBcCj4+ICsgICAgZHN0MCA9IF9fbHN4X3ZoYWRkd19odV9idSh0bXAwLCB0bXAwKTsK Pj4gICAgICAgICBcCj4+ICsgICAgZHN0MCA9IF9fbHN4X3ZoYWRkd193dV9odShkc3QwLCBkc3Qw KTsKPj4gICAgICAgICBcCj4+ICsgICAgZHN0MCA9IF9fbHN4X3ZoYWRkd19kdV93dShkc3QwLCBk c3QwKTsKPj4gICAgICAgICBcCj4+ICsgICAgZHN0MCA9IF9fbHN4X3ZzcmFyaV93KGRzdDAsIDMp Owo+PiAgICAgICAgIFwKPj4gKyAgICBkc3QwID0gX19sc3hfdnJlcGx2ZWlfYihkc3QwLCAwKTsK Pj4gICAgICAgICBcCj4+ICsgICAgX19sc3hfdnN0ZWxtX2QoZHN0MCwgZHN0LCAwLCAwKTsKPj4g ICAgICAgICBcCj4+ICsgICAgZHN0ICs9IGRzdF9zdHJpZGU7Cj4+ICAgICAgICAgXAo+PiArICAg IF9fbHN4X3ZzdGVsbV9kKGRzdDAsIGRzdCwgMCwgMCk7Cj4+ICAgICAgICAgXAo+PiArICAgIGRz dCArPSBkc3Rfc3RyaWRlOwo+PiAgICAgICAgIFwKPj4gKyAgICBfX2xzeF92c3RlbG1fZChkc3Qw LCBkc3QsIDAsIDApOwo+PiAgICAgICAgIFwKPj4gKyAgICBkc3QgKz0gZHN0X3N0cmlkZTsKPj4g ICAgICAgICBcCj4+ICsgICAgX19sc3hfdnN0ZWxtX2QoZHN0MCwgZHN0LCAwLCAwKTsKPj4gICAg ICAgICBcCj4+ICsgICAgZHN0ICs9IGRzdF9zdHJpZGU7Cj4+ICAgICAgICAgXAo+PiArICAgIF9f bHN4X3ZzdGVsbV9kKGRzdDAsIGRzdCwgMCwgMCk7Cj4+ICAgICAgICAgXAo+PiArICAgIGRzdCAr PSBkc3Rfc3RyaWRlOwo+PiAgICAgICAgIFwKPj4gKyAgICBfX2xzeF92c3RlbG1fZChkc3QwLCBk c3QsIDAsIDApOwo+PiAgICAgICAgIFwKPj4gKyAgICBkc3QgKz0gZHN0X3N0cmlkZTsKPj4gICAg ICAgICBcCj4+ICsgICAgX19sc3hfdnN0ZWxtX2QoZHN0MCwgZHN0LCAwLCAwKTsKPj4gICAgICAg ICBcCj4+ICsgICAgZHN0ICs9IGRzdF9zdHJpZGU7Cj4+ICAgICAgICAgXAo+PiArICAgIF9fbHN4 X3ZzdGVsbV9kKGRzdDAsIGRzdCwgMCwgMCk7Cj4+ICAgICAgICAgXAo+PiArfQo+PiArCj4+ICtJ TlRSQV9EQ19UTF84WDgodG9wKTsKPj4gK0lOVFJBX0RDX1RMXzhYOChsZWZ0KTsKPj4gKwo+PiAr dm9pZCBmZl9kY18xNngxNl9sc3godWludDhfdCAqZHN0LCBwdHJkaWZmX3QgZHN0X3N0cmlkZSwK Pj4gKyAgICAgICAgICAgICAgICAgICAgIGNvbnN0IHVpbnQ4X3QgKnNyY19sZWZ0LCBjb25zdCB1 aW50OF90ICpzcmNfdG9wKQo+PiArewo+PiArICAgIF9fbTEyOGkgdG1wMCwgdG1wMSwgZHN0MDsK Pj4gKyAgICBwdHJkaWZmX3Qgc3RyaWRlMiA9IGRzdF9zdHJpZGUgPDwgMTsKPj4gKyAgICBwdHJk aWZmX3Qgc3RyaWRlMyA9IHN0cmlkZTIgKyBkc3Rfc3RyaWRlOwo+PiArICAgIHB0cmRpZmZfdCBz dHJpZGU0ID0gc3RyaWRlMiA8PCAxOwo+PiArCj4+ICsgICAgdG1wMCA9IF9fbHN4X3ZsZChzcmNf dG9wLCAwKTsKPj4gKyAgICB0bXAxID0gX19sc3hfdmxkKHNyY19sZWZ0LCAwKTsKPj4gKyAgICBE VVAyX0FSRzIoX19sc3hfdmhhZGR3X2h1X2J1LCB0bXAwLCB0bXAwLCB0bXAxLCB0bXAxLCB0bXAw LCB0bXAxKTsKPj4gKyAgICBkc3QwID0gX19sc3hfdmFkZF9oKHRtcDAsIHRtcDEpOwo+PiArICAg IGRzdDAgPSBfX2xzeF92aGFkZHdfd3VfaHUoZHN0MCwgZHN0MCk7Cj4+ICsgICAgZHN0MCA9IF9f bHN4X3ZoYWRkd19kdV93dShkc3QwLCBkc3QwKTsKPj4gKyAgICBkc3QwID0gX19sc3hfdmhhZGR3 X3F1X2R1KGRzdDAsIGRzdDApOwo+PiArICAgIGRzdDAgPSBfX2xzeF92c3Jhcmlfdyhkc3QwLCA1 KTsKPj4gKyAgICBkc3QwID0gX19sc3hfdnJlcGx2ZWlfYihkc3QwLCAwKTsKPj4gKyAgICBMU1hf U1RfOChkc3QwLCBkc3QwLCBkc3QwLCBkc3QwLCBkc3QwLCBkc3QwLCBkc3QwLCBkc3QwLCBkc3Qs Cj4+ICsgICAgICAgICAgICAgZHN0X3N0cmlkZSwgc3RyaWRlMiwgc3RyaWRlMywgc3RyaWRlNCk7 Cj4+ICsgICAgZHN0ICs9IHN0cmlkZTQ7Cj4+ICsgICAgTFNYX1NUXzgoZHN0MCwgZHN0MCwgZHN0 MCwgZHN0MCwgZHN0MCwgZHN0MCwgZHN0MCwgZHN0MCwgZHN0LAo+PiArICAgICAgICAgICAgIGRz dF9zdHJpZGUsIHN0cmlkZTIsIHN0cmlkZTMsIHN0cmlkZTQpOwo+PiArfQo+PiArCj4+ICsjZGVm aW5lIElOVFJBX0RDX1RMXzE2WDE2KGRpcikKPj4gICAgICAgICBcCj4+ICt2b2lkIGZmX2RjXyMj ZGlyIyNfMTZ4MTZfbHN4KHVpbnQ4X3QgKmRzdCwgcHRyZGlmZl90IGRzdF9zdHJpZGUsCj4+ICAg ICAgICAgXAo+PiArICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCB1aW50OF90ICps ZWZ0LAo+PiAgICAgICAgIFwKPj4gKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3Qg dWludDhfdCAqdG9wKQo+PiAgICAgICAgIFwKPj4gK3sKPj4gICAgICAgICBcCj4+ICsgICAgX19t MTI4aSB0bXAwLCBkc3QwOwo+PiAgICAgICAgIFwKPj4gKyAgICBwdHJkaWZmX3Qgc3RyaWRlMiA9 IGRzdF9zdHJpZGUgPDwgMTsKPj4gICAgICAgICBcCj4+ICsgICAgcHRyZGlmZl90IHN0cmlkZTMg PSBzdHJpZGUyICsgZHN0X3N0cmlkZTsKPj4gICAgICAgICBcCj4+ICsgICAgcHRyZGlmZl90IHN0 cmlkZTQgPSBzdHJpZGUyIDw8IDE7Cj4+ICAgICAgICAgXAo+PiArCj4+ICAgICAgICAgXAo+PiAr ICAgIHRtcDAgPSBfX2xzeF92bGQoZGlyLCAwKTsKPj4gICAgICAgICBcCj4+ICsgICAgZHN0MCA9 IF9fbHN4X3ZoYWRkd19odV9idSh0bXAwLCB0bXAwKTsKPj4gICAgICAgICBcCj4+ICsgICAgZHN0 MCA9IF9fbHN4X3ZoYWRkd193dV9odShkc3QwLCBkc3QwKTsKPj4gICAgICAgICBcCj4+ICsgICAg ZHN0MCA9IF9fbHN4X3ZoYWRkd19kdV93dShkc3QwLCBkc3QwKTsKPj4gICAgICAgICBcCj4+ICsg ICAgZHN0MCA9IF9fbHN4X3ZoYWRkd19xdV9kdShkc3QwLCBkc3QwKTsKPj4gICAgICAgICBcCj4+ ICsgICAgZHN0MCA9IF9fbHN4X3ZzcmFyaV93KGRzdDAsIDQpOwo+PiAgICAgICAgIFwKPj4gKyAg ICBkc3QwID0gX19sc3hfdnJlcGx2ZWlfYihkc3QwLCAwKTsKPj4gICAgICAgICBcCj4+ICsgICAg TFNYX1NUXzgoZHN0MCwgZHN0MCwgZHN0MCwgZHN0MCwgZHN0MCwgZHN0MCwgZHN0MCwgZHN0MCwg ZHN0LAo+PiAgICAgICAgIFwKPj4gKyAgICAgICAgICAgICBkc3Rfc3RyaWRlLCBzdHJpZGUyLCBz dHJpZGUzLCBzdHJpZGU0KTsKPj4gICAgICAgICBcCj4+ICsgICAgZHN0ICs9IHN0cmlkZTQ7Cj4+ ICAgICAgICAgXAo+PiArICAgIExTWF9TVF84KGRzdDAsIGRzdDAsIGRzdDAsIGRzdDAsIGRzdDAs IGRzdDAsIGRzdDAsIGRzdDAsIGRzdCwKPj4gICAgICAgICBcCj4+ICsgICAgICAgICAgICAgZHN0 X3N0cmlkZSwgc3RyaWRlMiwgc3RyaWRlMywgc3RyaWRlNCk7Cj4+ICAgICAgICAgXAo+PiArfQo+ PiArCj4+ICtJTlRSQV9EQ19UTF8xNlgxNih0b3ApOwo+PiArSU5UUkFfRENfVExfMTZYMTYobGVm dCk7Cj4+ICsKPj4gK3ZvaWQgZmZfZGNfMzJ4MzJfbHN4KHVpbnQ4X3QgKmRzdCwgcHRyZGlmZl90 IGRzdF9zdHJpZGUsCj4+ICsgICAgICAgICAgICAgICAgICAgICBjb25zdCB1aW50OF90ICpzcmNf bGVmdCwgY29uc3QgdWludDhfdCAqc3JjX3RvcCkKPj4gK3sKPj4gKyAgICBfX20xMjhpIHRtcDAs IHRtcDEsIHRtcDIsIHRtcDMsIGRzdDA7Cj4+ICsKPj4gKyAgICBEVVAyX0FSRzIoX19sc3hfdmxk LCBzcmNfdG9wLCAwLCBzcmNfdG9wLCAxNiwgdG1wMCwgdG1wMSk7Cj4+ICsgICAgRFVQMl9BUkcy KF9fbHN4X3ZsZCwgc3JjX2xlZnQsIDAsIHNyY19sZWZ0LCAxNiwgdG1wMiwgdG1wMyk7Cj4+ICsg ICAgRFVQNF9BUkcyKF9fbHN4X3ZoYWRkd19odV9idSwgdG1wMCwgdG1wMCwgdG1wMSwgdG1wMSwg dG1wMiwgdG1wMiwKPj4gKyAgICAgICAgICAgICAgdG1wMywgdG1wMywgdG1wMCwgdG1wMSwgdG1w MiwgdG1wMyk7Cj4+ICsgICAgRFVQMl9BUkcyKF9fbHN4X3ZhZGRfaCwgdG1wMCwgdG1wMSwgdG1w MiwgdG1wMywgdG1wMCwgdG1wMSk7Cj4+ICsgICAgZHN0MCA9IF9fbHN4X3ZhZGRfaCh0bXAwLCB0 bXAxKTsKPj4gKyAgICBkc3QwID0gX19sc3hfdmhhZGR3X3d1X2h1KGRzdDAsIGRzdDApOwo+PiAr ICAgIGRzdDAgPSBfX2xzeF92aGFkZHdfZHVfd3UoZHN0MCwgZHN0MCk7Cj4+ICsgICAgZHN0MCA9 IF9fbHN4X3ZoYWRkd19xdV9kdShkc3QwLCBkc3QwKTsKPj4gKyAgICBkc3QwID0gX19sc3hfdnNy YXJpX3coZHN0MCwgNik7Cj4+ICsgICAgZHN0MCA9IF9fbHN4X3ZyZXBsdmVpX2IoZHN0MCwgMCk7 Cj4+ICsgICAgTFNYX1NUXzhYMTYoZHN0MCwgZHN0MCwgZHN0MCwgZHN0MCwgZHN0MCwgZHN0MCwg ZHN0MCwgZHN0MCwKPj4gKyAgICAgICAgICAgICAgICBkc3QsIGRzdF9zdHJpZGUpOwo+PiArICAg IExTWF9TVF84WDE2KGRzdDAsIGRzdDAsIGRzdDAsIGRzdDAsIGRzdDAsIGRzdDAsIGRzdDAsIGRz dDAsCj4+ICsgICAgICAgICAgICAgICAgZHN0LCBkc3Rfc3RyaWRlKTsKPj4gKyAgICBMU1hfU1Rf OFgxNihkc3QwLCBkc3QwLCBkc3QwLCBkc3QwLCBkc3QwLCBkc3QwLCBkc3QwLCBkc3QwLAo+PiAr ICAgICAgICAgICAgICAgIGRzdCwgZHN0X3N0cmlkZSk7Cj4+ICsgICAgTFNYX1NUXzhYMTYoZHN0 MCwgZHN0MCwgZHN0MCwgZHN0MCwgZHN0MCwgZHN0MCwgZHN0MCwgZHN0MCwKPj4gKyAgICAgICAg ICAgICAgICBkc3QsIGRzdF9zdHJpZGUpOwo+PiArfQo+PiArCj4+ICsjZGVmaW5lIElOVFJBX0RD X1RMXzMyWDMyKGRpcikKPj4gICAgICAgIFwKPj4gK3ZvaWQgZmZfZGNfIyNkaXIjI18zMngzMl9s c3godWludDhfdCAqZHN0LCBwdHJkaWZmX3QgZHN0X3N0cmlkZSwKPj4gICAgICAgIFwKPj4gKyAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgdWludDhfdCAqbGVmdCwKPj4gICAgICAg IFwKPj4gKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgdWludDhfdCAqdG9wKQo+ PiAgICAgICAgXAo+PiArewo+PiAgICAgICAgXAo+PiArICAgIF9fbTEyOGkgdG1wMCwgdG1wMSwg ZHN0MDsKPj4gICAgICAgIFwKPj4gKwo+PiAgICAgICAgXAo+PiArICAgIERVUDJfQVJHMihfX2xz eF92bGQsIGRpciwgMCwgZGlyLCAxNiwgdG1wMCwgdG1wMSk7Cj4+ICAgICAgICBcCj4+ICsgICAg RFVQMl9BUkcyKF9fbHN4X3ZoYWRkd19odV9idSwgdG1wMCwgdG1wMCwgdG1wMSwgdG1wMSwgdG1w MCwgdG1wMSk7Cj4+ICAgICAgICBcCj4+ICsgICAgZHN0MCA9IF9fbHN4X3ZhZGRfaCh0bXAwLCB0 bXAxKTsKPj4gICAgICAgIFwKPj4gKyAgICBkc3QwID0gX19sc3hfdmhhZGR3X3d1X2h1KGRzdDAs IGRzdDApOwo+PiAgICAgICAgXAo+PiArICAgIGRzdDAgPSBfX2xzeF92aGFkZHdfZHVfd3UoZHN0 MCwgZHN0MCk7Cj4+ICAgICAgICBcCj4+ICsgICAgZHN0MCA9IF9fbHN4X3ZoYWRkd19xdV9kdShk c3QwLCBkc3QwKTsKPj4gICAgICAgIFwKPj4gKyAgICBkc3QwID0gX19sc3hfdnNyYXJpX3coZHN0 MCwgNSk7Cj4+ICAgICAgICBcCj4+ICsgICAgZHN0MCA9IF9fbHN4X3ZyZXBsdmVpX2IoZHN0MCwg MCk7Cj4+ICAgICAgICBcCj4+ICsgICAgTFNYX1NUXzhYMTYoZHN0MCwgZHN0MCwgZHN0MCwgZHN0 MCwgZHN0MCwgZHN0MCwgZHN0MCwgZHN0MCwKPj4gICAgICAgIFwKPj4gKyAgICAgICAgICAgICAg ICBkc3QsIGRzdF9zdHJpZGUpOwo+PiAgICAgICAgXAo+PiArICAgIExTWF9TVF84WDE2KGRzdDAs IGRzdDAsIGRzdDAsIGRzdDAsIGRzdDAsIGRzdDAsIGRzdDAsIGRzdDAsCj4+ICAgICAgICBcCj4+ ICsgICAgICAgICAgICAgICAgZHN0LCBkc3Rfc3RyaWRlKTsKPj4gICAgICAgIFwKPj4gKyAgICBM U1hfU1RfOFgxNihkc3QwLCBkc3QwLCBkc3QwLCBkc3QwLCBkc3QwLCBkc3QwLCBkc3QwLCBkc3Qw LAo+PiAgICAgICAgXAo+PiArICAgICAgICAgICAgICAgIGRzdCwgZHN0X3N0cmlkZSk7Cj4+ICAg ICAgICBcCj4+ICsgICAgTFNYX1NUXzhYMTYoZHN0MCwgZHN0MCwgZHN0MCwgZHN0MCwgZHN0MCwg ZHN0MCwgZHN0MCwgZHN0MCwKPj4gICAgICAgIFwKPj4gKyAgICAgICAgICAgICAgICBkc3QsIGRz dF9zdHJpZGUpOwo+PiAgICAgICAgXAo+PiArfQo+PiArCj4+ICtJTlRSQV9EQ19UTF8zMlgzMih0 b3ApOwo+PiArSU5UUkFfRENfVExfMzJYMzIobGVmdCk7Cj4+ICsKPj4gKyNkZWZpbmUgSU5UUkFf UFJFRElDVF9WQUxEQ18xNlgxNl9MU1godmFsKQo+PiBcCj4+ICt2b2lkIGZmX2RjXyMjdmFsIyNf MTZ4MTZfbHN4KHVpbnQ4X3QgKmRzdCwgcHRyZGlmZl90IGRzdF9zdHJpZGUsCj4+IFwKPj4gKyAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgdWludDhfdCAqbGVmdCwgY29uc3QgdWlu dDhfdCAqdG9wKQo+PiBcCj4+ICt7Cj4+IFwKPj4gKyAgICBfX20xMjhpIG91dCA9IF9fbHN4X3Zs ZGkodmFsKTsKPj4gXAo+PiArICAgIHB0cmRpZmZfdCBzdHJpZGUyID0gZHN0X3N0cmlkZSA8PCAx Owo+PiBcCj4+ICsgICAgcHRyZGlmZl90IHN0cmlkZTMgPSBzdHJpZGUyICsgZHN0X3N0cmlkZTsK Pj4gXAo+PiArICAgIHB0cmRpZmZfdCBzdHJpZGU0ID0gc3RyaWRlMiA8PCAxOwo+PiBcCj4+ICsK Pj4gXAo+PiArICAgIExTWF9TVF84KG91dCwgb3V0LCBvdXQsIG91dCwgb3V0LCBvdXQsIG91dCwg b3V0LCBkc3QsCj4+IFwKPj4gKyAgICAgICAgICAgICBkc3Rfc3RyaWRlLCBzdHJpZGUyLCBzdHJp ZGUzLCBzdHJpZGU0KTsKPj4gXAo+PiArICAgIGRzdCArPSBzdHJpZGU0Owo+PiBcCj4+ICsgICAg TFNYX1NUXzgob3V0LCBvdXQsIG91dCwgb3V0LCBvdXQsIG91dCwgb3V0LCBvdXQsIGRzdCwKPj4g XAo+PiArICAgICAgICAgICAgIGRzdF9zdHJpZGUsIHN0cmlkZTIsIHN0cmlkZTMsIHN0cmlkZTQp Owo+PiBcCj4+ICt9Cj4+ICsKPj4gK0lOVFJBX1BSRURJQ1RfVkFMRENfMTZYMTZfTFNYKDEyNyk7 Cj4+ICtJTlRSQV9QUkVESUNUX1ZBTERDXzE2WDE2X0xTWCgxMjgpOwo+PiArSU5UUkFfUFJFRElD VF9WQUxEQ18xNlgxNl9MU1goMTI5KTsKPj4gKwo+PiArI2RlZmluZSBJTlRSQV9QUkVESUNUX1ZB TERDXzMyWDMyX0xTWCh2YWwpCj4+ICAgIFwKPj4gK3ZvaWQgZmZfZGNfIyN2YWwjI18zMngzMl9s c3godWludDhfdCAqZHN0LCBwdHJkaWZmX3QgZHN0X3N0cmlkZSwKPj4gICAgXAo+PiArICAgICAg ICAgICAgICAgICAgICAgICAgICAgICBjb25zdCB1aW50OF90ICpsZWZ0LCBjb25zdCB1aW50OF90 ICp0b3ApCj4+ICAgIFwKPj4gK3sKPj4gICAgXAo+PiArICAgIF9fbTEyOGkgb3V0ID0gX19sc3hf dmxkaSh2YWwpOwo+PiAgICBcCj4+ICsKPj4gICAgXAo+PiArICAgIExTWF9TVF84WDE2KG91dCwg b3V0LCBvdXQsIG91dCwgb3V0LCBvdXQsIG91dCwgb3V0LCBkc3QsCj4+IGRzdF9zdHJpZGUpO1wK Pj4gKyAgICBMU1hfU1RfOFgxNihvdXQsIG91dCwgb3V0LCBvdXQsIG91dCwgb3V0LCBvdXQsIG91 dCwgZHN0LAo+PiBkc3Rfc3RyaWRlKTtcCj4+ICsgICAgTFNYX1NUXzhYMTYob3V0LCBvdXQsIG91 dCwgb3V0LCBvdXQsIG91dCwgb3V0LCBvdXQsIGRzdCwKPj4gZHN0X3N0cmlkZSk7XAo+PiArICAg IExTWF9TVF84WDE2KG91dCwgb3V0LCBvdXQsIG91dCwgb3V0LCBvdXQsIG91dCwgb3V0LCBkc3Qs Cj4+IGRzdF9zdHJpZGUpO1wKPj4gK30KPj4gKwo+PiArSU5UUkFfUFJFRElDVF9WQUxEQ18zMlgz Ml9MU1goMTI3KTsKPj4gK0lOVFJBX1BSRURJQ1RfVkFMRENfMzJYMzJfTFNYKDEyOCk7Cj4+ICtJ TlRSQV9QUkVESUNUX1ZBTERDXzMyWDMyX0xTWCgxMjkpOwo+PiArCj4+ICt2b2lkIGZmX3RtXzR4 NF9sc3godWludDhfdCAqZHN0LCBwdHJkaWZmX3QgZHN0X3N0cmlkZSwKPj4gKyAgICAgICAgICAg ICAgICAgICBjb25zdCB1aW50OF90ICpzcmNfbGVmdCwgY29uc3QgdWludDhfdCAqc3JjX3RvcF9w dHIpCj4+ICt7Cj4+ICsgICAgdWludDhfdCB0b3BfbGVmdCA9IHNyY190b3BfcHRyWy0xXTsKPj4g KyAgICBfX20xMjhpIHRtcDAsIHRtcDEsIHRtcDIsIHRtcDMsIHJlZzAsIHJlZzE7Cj4+ICsgICAg X19tMTI4aSBzcmMwLCBzcmMxLCBzcmMyLCBzcmMzOwo+PiArICAgIF9fbTEyOGkgZHN0MCwgZHN0 MSwgZHN0MiwgZHN0MzsKPj4gKwo+PiArICAgIHJlZzAgPSBfX2xzeF92cmVwbGdyMnZyX2godG9w X2xlZnQpOwo+PiArICAgIHJlZzEgPSBfX2xzeF92bGQoc3JjX3RvcF9wdHIsIDApOwo+PiArICAg IERVUDRfQVJHMihfX2xzeF92bGRyZXBsX2IsIHNyY19sZWZ0LCAwLCBzcmNfbGVmdCwgMSwgc3Jj X2xlZnQsIDIsCj4+IHNyY19sZWZ0LAo+PiArICAgICAgICAgICAgICAzLCB0bXAzLCB0bXAyLCB0 bXAxLCB0bXAwKTsKPj4gKyAgICBEVVA0X0FSRzIoX19sc3hfdmlsdmxfYiwgdG1wMCwgcmVnMSwg dG1wMSwgcmVnMSwgdG1wMiwgcmVnMSwgdG1wMywKPj4gcmVnMSwKPj4gKyAgICAgICAgICAgICAg c3JjMCwgc3JjMSwgc3JjMiwgc3JjMyk7Cj4+ICsgICAgRFVQNF9BUkcyKF9fbHN4X3ZoYWRkd19o dV9idSwgc3JjMCwgc3JjMCwgc3JjMSwgc3JjMSwgc3JjMiwgc3JjMiwKPj4gc3JjMywKPj4gKyAg ICAgICAgICAgICAgc3JjMywgZHN0MCwgZHN0MSwgZHN0MiwgZHN0Myk7Cj4+ICsgICAgRFVQNF9B UkcyKF9fbHN4X3Zzc3ViX2h1LCBkc3QwLCByZWcwLCBkc3QxLCByZWcwLCBkc3QyLCByZWcwLAo+ PiBkc3QzLCByZWcwLAo+PiArICAgICAgICAgICAgICBkc3QwLCBkc3QxLCBkc3QyLCBkc3QzKTsK Pj4gKyAgICBEVVA0X0FSRzIoX19sc3hfdnNhdF9odSwgZHN0MCwgNywgZHN0MSwgNywgZHN0Miwg NywgZHN0MywgNywKPj4gKyAgICAgICAgICAgICAgZHN0MCwgZHN0MSwgZHN0MiwgZHN0Myk7Cj4+ ICsgICAgRFVQMl9BUkcyKF9fbHN4X3ZwaWNrZXZfYiwgZHN0MSwgZHN0MCwgZHN0MywgZHN0Miwg ZHN0MCwgZHN0MSk7Cj4+ICsgICAgX19sc3hfdnN0ZWxtX3coZHN0MCwgZHN0LCAwLCAwKTsKPj4g KyAgICBkc3QgKz0gZHN0X3N0cmlkZTsKPj4gKyAgICBfX2xzeF92c3RlbG1fdyhkc3QwLCBkc3Qs IDAsIDIpOwo+PiArICAgIGRzdCArPSBkc3Rfc3RyaWRlOwo+PiArICAgIF9fbHN4X3ZzdGVsbV93 KGRzdDEsIGRzdCwgMCwgMCk7Cj4+ICsgICAgZHN0ICs9IGRzdF9zdHJpZGU7Cj4+ICsgICAgX19s c3hfdnN0ZWxtX3coZHN0MSwgZHN0LCAwLCAyKTsKPj4gK30KPj4gKwo+PiArdm9pZCBmZl90bV84 eDhfbHN4KHVpbnQ4X3QgKmRzdCwgcHRyZGlmZl90IGRzdF9zdHJpZGUsCj4+ICsgICAgICAgICAg ICAgICAgICAgY29uc3QgdWludDhfdCAqc3JjX2xlZnQsIGNvbnN0IHVpbnQ4X3QgKnNyY190b3Bf cHRyKQo+PiArewo+PiArICAgIHVpbnQ4X3QgdG9wX2xlZnQgPSBzcmNfdG9wX3B0clstMV07Cj4+ ICsgICAgX19tMTI4aSB0bXAwLCB0bXAxLCB0bXAyLCB0bXAzLCB0bXA0LCB0bXA1LCB0bXA2LCB0 bXA3Owo+PiArICAgIF9fbTEyOGkgc3JjMCwgc3JjMSwgc3JjMiwgc3JjMywgc3JjNCwgc3JjNSwg c3JjNiwgc3JjNzsKPj4gKyAgICBfX20xMjhpIHJlZzAsIHJlZzE7Cj4+ICsKPj4gKyAgICByZWcw ID0gX19sc3hfdnJlcGxncjJ2cl9oKHRvcF9sZWZ0KTsKPj4gKyAgICByZWcxID0gX19sc3hfdmxk KHNyY190b3BfcHRyLCAwKTsKPj4gKyAgICBEVVA0X0FSRzIoX19sc3hfdmxkcmVwbF9iLCBzcmNf bGVmdCwgMCwgc3JjX2xlZnQsIDEsIHNyY19sZWZ0LCAyLAo+PiBzcmNfbGVmdCwKPj4gKyAgICAg ICAgICAgICAgMywgdG1wNywgdG1wNiwgdG1wNSwgdG1wNCk7Cj4+ICsgICAgRFVQNF9BUkcyKF9f bHN4X3ZsZHJlcGxfYiwgc3JjX2xlZnQsIDQsIHNyY19sZWZ0LCA1LCBzcmNfbGVmdCwgNiwKPj4g c3JjX2xlZnQsCj4+ICsgICAgICAgICAgICAgIDcsIHRtcDMsIHRtcDIsIHRtcDEsIHRtcDApOwo+ PiArICAgIERVUDRfQVJHMihfX2xzeF92aWx2bF9iLCB0bXAwLCByZWcxLCB0bXAxLCByZWcxLCB0 bXAyLCByZWcxLCB0bXAzLAo+PiByZWcxLAo+PiArICAgICAgICAgICAgICBzcmMwLCBzcmMxLCBz cmMyLCBzcmMzKTsKPj4gKyAgICBEVVA0X0FSRzIoX19sc3hfdmlsdmxfYiwgdG1wNCwgcmVnMSwg dG1wNSwgcmVnMSwgdG1wNiwgcmVnMSwgdG1wNywKPj4gcmVnMSwKPj4gKyAgICAgICAgICAgICAg c3JjNCwgc3JjNSwgc3JjNiwgc3JjNyk7Cj4+ICsgICAgRFVQNF9BUkcyKF9fbHN4X3ZoYWRkd19o dV9idSwgc3JjMCwgc3JjMCwgc3JjMSwgc3JjMSwgc3JjMiwgc3JjMiwKPj4gc3JjMywKPj4gKyAg ICAgICAgICAgICAgc3JjMywgc3JjMCwgc3JjMSwgc3JjMiwgc3JjMyk7Cj4+ICsgICAgRFVQNF9B UkcyKF9fbHN4X3ZoYWRkd19odV9idSwgc3JjNCwgc3JjNCwgc3JjNSwgc3JjNSwgc3JjNiwgc3Jj NiwKPj4gc3JjNywKPj4gKyAgICAgICAgICAgICAgc3JjNywgc3JjNCwgc3JjNSwgc3JjNiwgc3Jj Nyk7Cj4+ICsgICAgRFVQNF9BUkcyKF9fbHN4X3Zzc3ViX2h1LCBzcmMwLCByZWcwLCBzcmMxLCBy ZWcwLCBzcmMyLCByZWcwLAo+PiBzcmMzLCByZWcwLAo+PiArICAgICAgICAgICAgICBzcmMwLCBz cmMxLCBzcmMyLCBzcmMzKTsKPj4gKyAgICBEVVA0X0FSRzIoX19sc3hfdnNzdWJfaHUsIHNyYzQs IHJlZzAsIHNyYzUsIHJlZzAsIHNyYzYsIHJlZzAsCj4+IHNyYzcsIHJlZzAsCj4+ICsgICAgICAg ICAgICAgIHNyYzQsIHNyYzUsIHNyYzYsIHNyYzcpOwo+PiArICAgIERVUDRfQVJHMihfX2xzeF92 c2F0X2h1LCBzcmMwLCA3LCBzcmMxLCA3LCBzcmMyLCA3LCBzcmMzLCA3LAo+PiArICAgICAgICAg ICAgICBzcmMwLCBzcmMxLCBzcmMyLCBzcmMzKTsKPj4gKyAgICBEVVA0X0FSRzIoX19sc3hfdnNh dF9odSwgc3JjNCwgNywgc3JjNSwgNywgc3JjNiwgNywgc3JjNywgNywKPj4gKyAgICAgICAgICAg ICAgc3JjNCwgc3JjNSwgc3JjNiwgc3JjNyk7Cj4+ICsgICAgRFVQNF9BUkcyKF9fbHN4X3ZwaWNr ZXZfYiwgc3JjMSwgc3JjMCwgc3JjMywgc3JjMiwgc3JjNSwgc3JjNCwKPj4gc3JjNywgc3JjNiwK Pj4gKyAgICAgICAgICAgICAgc3JjMCwgc3JjMSwgc3JjMiwgc3JjMyk7Cj4+ICsgICAgX19sc3hf dnN0ZWxtX2Qoc3JjMCwgZHN0LCAwLCAwKTsKPj4gKyAgICBkc3QgKz0gZHN0X3N0cmlkZTsKPj4g KyAgICBfX2xzeF92c3RlbG1fZChzcmMwLCBkc3QsIDAsIDEpOwo+PiArICAgIGRzdCArPSBkc3Rf c3RyaWRlOwo+PiArICAgIF9fbHN4X3ZzdGVsbV9kKHNyYzEsIGRzdCwgMCwgMCk7Cj4+ICsgICAg ZHN0ICs9IGRzdF9zdHJpZGU7Cj4+ICsgICAgX19sc3hfdnN0ZWxtX2Qoc3JjMSwgZHN0LCAwLCAx KTsKPj4gKyAgICBkc3QgKz0gZHN0X3N0cmlkZTsKPj4gKyAgICBfX2xzeF92c3RlbG1fZChzcmMy LCBkc3QsIDAsIDApOwo+PiArICAgIGRzdCArPSBkc3Rfc3RyaWRlOwo+PiArICAgIF9fbHN4X3Zz dGVsbV9kKHNyYzIsIGRzdCwgMCwgMSk7Cj4+ICsgICAgZHN0ICs9IGRzdF9zdHJpZGU7Cj4+ICsg ICAgX19sc3hfdnN0ZWxtX2Qoc3JjMywgZHN0LCAwLCAwKTsKPj4gKyAgICBkc3QgKz0gZHN0X3N0 cmlkZTsKPj4gKyAgICBfX2xzeF92c3RlbG1fZChzcmMzLCBkc3QsIDAsIDEpOwo+PiArfQo+PiAr Cj4+ICt2b2lkIGZmX3RtXzE2eDE2X2xzeCh1aW50OF90ICpkc3QsIHB0cmRpZmZfdCBkc3Rfc3Ry aWRlLAo+PiArICAgICAgICAgICAgICAgICAgICAgY29uc3QgdWludDhfdCAqc3JjX2xlZnQsIGNv bnN0IHVpbnQ4X3QKPj4gKnNyY190b3BfcHRyKQo+PiArewo+PiArICAgIHVpbnQ4X3QgdG9wX2xl ZnQgPSBzcmNfdG9wX3B0clstMV07Cj4+ICsgICAgX19tMTI4aSB0bXAwLCB0bXAxLCB0bXAyLCB0 bXAzLCB0bXA0LCB0bXA1LCB0bXA2LCB0bXA3Owo+PiArICAgIF9fbTEyOGkgdG1wOCwgdG1wOSwg dG1wMTAsIHRtcDExLCB0bXAxMiwgdG1wMTMsIHRtcDE0LCB0bXAxNTsKPj4gKyAgICBfX20xMjhp IHNyYzAsIHNyYzEsIHNyYzIsIHNyYzMsIHNyYzQsIHNyYzUsIHNyYzYsIHNyYzc7Cj4+ICsgICAg X19tMTI4aSByZWcwLCByZWcxOwo+PiArICAgIHB0cmRpZmZfdCBzdHJpZGUyID0gZHN0X3N0cmlk ZSA8PCAxOwo+PiArICAgIHB0cmRpZmZfdCBzdHJpZGUzID0gc3RyaWRlMiArIGRzdF9zdHJpZGU7 Cj4+ICsgICAgcHRyZGlmZl90IHN0cmlkZTQgPSBzdHJpZGUyIDw8IDE7Cj4+ICsKPj4gKyAgICBy ZWcwID0gX19sc3hfdnJlcGxncjJ2cl9oKHRvcF9sZWZ0KTsKPj4gKyAgICByZWcxID0gX19sc3hf dmxkKHNyY190b3BfcHRyLCAwKTsKPj4gKyAgICBEVVA0X0FSRzIoX19sc3hfdmxkcmVwbF9iLCBz cmNfbGVmdCwgMCwgc3JjX2xlZnQsIDEsIHNyY19sZWZ0LCAyLAo+PiBzcmNfbGVmdCwKPj4gKyAg ICAgICAgICAgICAgMywgdG1wMTUsIHRtcDE0LCB0bXAxMywgdG1wMTIpOwo+PiArICAgIERVUDRf QVJHMihfX2xzeF92bGRyZXBsX2IsIHNyY19sZWZ0LCA0LCBzcmNfbGVmdCwgNSwgc3JjX2xlZnQs IDYsCj4+IHNyY19sZWZ0LAo+PiArICAgICAgICAgICAgICA3LCB0bXAxMSwgdG1wMTAsIHRtcDks IHRtcDgpOwo+PiArICAgIERVUDRfQVJHMihfX2xzeF92bGRyZXBsX2IsIHNyY19sZWZ0LCA4LCBz cmNfbGVmdCwgOSwgc3JjX2xlZnQsIDEwLAo+PiArICAgICAgICAgICAgICBzcmNfbGVmdCwgMTEs IHRtcDcsIHRtcDYsIHRtcDUsIHRtcDQpOwo+PiArICAgIERVUDRfQVJHMihfX2xzeF92bGRyZXBs X2IsIHNyY19sZWZ0LCAxMiwgc3JjX2xlZnQsIDEzLCBzcmNfbGVmdCwKPj4gMTQsCj4+ICsgICAg ICAgICAgICAgIHNyY19sZWZ0LCAxNSwgdG1wMywgdG1wMiwgdG1wMSwgdG1wMCk7Cj4+ICsgICAg RFVQNF9BUkcyKF9fbHN4X3ZhZGR3ZXZfaF9idSwgdG1wMCwgcmVnMSwgdG1wMSwgcmVnMSwgdG1w MiwgcmVnMSwKPj4gdG1wMywKPj4gKyAgICAgICAgICAgICAgcmVnMSwgc3JjMCwgc3JjMSwgc3Jj Miwgc3JjMyk7Cj4+ICsgICAgRFVQNF9BUkcyKF9fbHN4X3ZhZGR3b2RfaF9idSwgdG1wMCwgcmVn MSwgdG1wMSwgcmVnMSwgdG1wMiwgcmVnMSwKPj4gdG1wMywKPj4gKyAgICAgICAgICAgICAgcmVn MSwgc3JjNCwgc3JjNSwgc3JjNiwgc3JjNyk7Cj4+ICsgICAgRFVQNF9BUkcyKF9fbHN4X3Zzc3Vi X2h1LCBzcmMwLCByZWcwLCBzcmMxLCByZWcwLCBzcmMyLCByZWcwLAo+PiBzcmMzLCByZWcwLAo+ PiArICAgICAgICAgICAgICBzcmMwLCBzcmMxLCBzcmMyLCBzcmMzKTsKPj4gKyAgICBEVVA0X0FS RzIoX19sc3hfdnNzdWJfaHUsIHNyYzQsIHJlZzAsIHNyYzUsIHJlZzAsIHNyYzYsIHJlZzAsCj4+ IHNyYzcsIHJlZzAsCj4+ICsgICAgICAgICAgICAgIHNyYzQsIHNyYzUsIHNyYzYsIHNyYzcpOwo+ PiArICAgIERVUDRfQVJHMihfX2xzeF92c2F0X2h1LCBzcmMwLCA3LCBzcmMxLCA3LCBzcmMyLCA3 LCBzcmMzLCA3LAo+PiArICAgICAgICAgICAgICBzcmMwLCBzcmMxLCBzcmMyLCBzcmMzKTsKPj4g KyAgICBEVVA0X0FSRzIoX19sc3hfdnNhdF9odSwgc3JjNCwgNywgc3JjNSwgNywgc3JjNiwgNywg c3JjNywgNywKPj4gKyAgICAgICAgICAgICAgc3JjNCwgc3JjNSwgc3JjNiwgc3JjNyk7Cj4+ICsg ICAgRFVQNF9BUkcyKF9fbHN4X3ZwYWNrZXZfYiwgc3JjNCwgc3JjMCwgc3JjNSwgc3JjMSwgc3Jj Niwgc3JjMiwKPj4gc3JjNywgc3JjMywKPj4gKyAgICAgICAgICAgICAgdG1wMCwgdG1wMSwgdG1w MiwgdG1wMyk7Cj4+ICsgICAgRFVQNF9BUkcyKF9fbHN4X3ZhZGR3ZXZfaF9idSwgdG1wNCwgcmVn MSwgdG1wNSwgcmVnMSwgdG1wNiwgcmVnMSwKPj4gdG1wNywKPj4gKyAgICAgICAgICAgICAgcmVn MSwgc3JjMCwgc3JjMSwgc3JjMiwgc3JjMyk7Cj4+ICsgICAgRFVQNF9BUkcyKF9fbHN4X3ZhZGR3 b2RfaF9idSwgdG1wNCwgcmVnMSwgdG1wNSwgcmVnMSwgdG1wNiwgcmVnMSwKPj4gdG1wNywKPj4g KyAgICAgICAgICAgICAgcmVnMSwgc3JjNCwgc3JjNSwgc3JjNiwgc3JjNyk7Cj4+ICsgICAgRFVQ NF9BUkcyKF9fbHN4X3Zzc3ViX2h1LCBzcmMwLCByZWcwLCBzcmMxLCByZWcwLCBzcmMyLCByZWcw LAo+PiBzcmMzLCByZWcwLAo+PiArICAgICAgICAgICAgICBzcmMwLCBzcmMxLCBzcmMyLCBzcmMz KTsKPj4gKyAgICBEVVA0X0FSRzIoX19sc3hfdnNzdWJfaHUsIHNyYzQsIHJlZzAsIHNyYzUsIHJl ZzAsIHNyYzYsIHJlZzAsCj4+IHNyYzcsIHJlZzAsCj4+ICsgICAgICAgICAgICAgIHNyYzQsIHNy YzUsIHNyYzYsIHNyYzcpOwo+PiArICAgIERVUDRfQVJHMihfX2xzeF92c2F0X2h1LCBzcmMwLCA3 LCBzcmMxLCA3LCBzcmMyLCA3LCBzcmMzLCA3LAo+PiArICAgICAgICAgICAgICBzcmMwLCBzcmMx LCBzcmMyLCBzcmMzKTsKPj4gKyAgICBEVVA0X0FSRzIoX19sc3hfdnNhdF9odSwgc3JjNCwgNywg c3JjNSwgNywgc3JjNiwgNywgc3JjNywgNywKPj4gKyAgICAgICAgICAgICAgc3JjNCwgc3JjNSwg c3JjNiwgc3JjNyk7Cj4+ICsgICAgRFVQNF9BUkcyKF9fbHN4X3ZwYWNrZXZfYiwgc3JjNCwgc3Jj MCwgc3JjNSwgc3JjMSwgc3JjNiwgc3JjMiwKPj4gc3JjNywgc3JjMywKPj4gKyAgICAgICAgICAg ICAgdG1wNCwgdG1wNSwgdG1wNiwgdG1wNyk7Cj4+ICsgICAgRFVQNF9BUkcyKF9fbHN4X3ZhZGR3 ZXZfaF9idSwgdG1wOCwgcmVnMSwgdG1wOSwgcmVnMSwgdG1wMTAsIHJlZzEsCj4+IHRtcDExLAo+ PiArICAgICAgICAgICAgICByZWcxLCBzcmMwLCBzcmMxLCBzcmMyLCBzcmMzKTsKPj4gKyAgICBE VVA0X0FSRzIoX19sc3hfdmFkZHdvZF9oX2J1LCB0bXA4LCByZWcxLCB0bXA5LCByZWcxLCB0bXAx MCwgcmVnMSwKPj4gdG1wMTEsCj4+ICsgICAgICAgICAgICAgIHJlZzEsIHNyYzQsIHNyYzUsIHNy YzYsIHNyYzcpOwo+PiArICAgIERVUDRfQVJHMihfX2xzeF92c3N1Yl9odSwgc3JjMCwgcmVnMCwg c3JjMSwgcmVnMCwgc3JjMiwgcmVnMCwKPj4gc3JjMywgcmVnMCwKPj4gKyAgICAgICAgICAgICAg c3JjMCwgc3JjMSwgc3JjMiwgc3JjMyk7Cj4+ICsgICAgRFVQNF9BUkcyKF9fbHN4X3Zzc3ViX2h1 LCBzcmM0LCByZWcwLCBzcmM1LCByZWcwLCBzcmM2LCByZWcwLAo+PiBzcmM3LCByZWcwLAo+PiAr ICAgICAgICAgICAgICBzcmM0LCBzcmM1LCBzcmM2LCBzcmM3KTsKPj4gKyAgICBEVVA0X0FSRzIo X19sc3hfdnNhdF9odSwgc3JjMCwgNywgc3JjMSwgNywgc3JjMiwgNywgc3JjMywgNywKPj4gKyAg ICAgICAgICAgICAgc3JjMCwgc3JjMSwgc3JjMiwgc3JjMyk7Cj4+ICsgICAgRFVQNF9BUkcyKF9f bHN4X3ZzYXRfaHUsIHNyYzQsIDcsIHNyYzUsIDcsIHNyYzYsIDcsIHNyYzcsIDcsCj4+ICsgICAg ICAgICAgICAgIHNyYzQsIHNyYzUsIHNyYzYsIHNyYzcpOwo+PiArICAgIERVUDRfQVJHMihfX2xz eF92cGFja2V2X2IsIHNyYzQsIHNyYzAsIHNyYzUsIHNyYzEsIHNyYzYsIHNyYzIsCj4+IHNyYzcs IHNyYzMsCj4+ICsgICAgICAgICAgICAgIHRtcDgsIHRtcDksIHRtcDEwLCB0bXAxMSk7Cj4+ICsg ICAgRFVQNF9BUkcyKF9fbHN4X3ZhZGR3ZXZfaF9idSwgdG1wMTIsIHJlZzEsIHRtcDEzLCByZWcx LCB0bXAxNCwKPj4gcmVnMSwKPj4gKyAgICAgICAgICAgICAgdG1wMTUsIHJlZzEsIHNyYzAsIHNy YzEsIHNyYzIsIHNyYzMpOwo+PiArICAgIERVUDRfQVJHMihfX2xzeF92YWRkd29kX2hfYnUsIHRt cDEyLCByZWcxLCB0bXAxMywgcmVnMSwgdG1wMTQsCj4+IHJlZzEsCj4+ICsgICAgICAgICAgICAg IHRtcDE1LCByZWcxLCBzcmM0LCBzcmM1LCBzcmM2LCBzcmM3KTsKPj4gKyAgICBEVVA0X0FSRzIo X19sc3hfdnNzdWJfaHUsIHNyYzAsIHJlZzAsIHNyYzEsIHJlZzAsIHNyYzIsIHJlZzAsCj4+IHNy YzMsIHJlZzAsCj4+ICsgICAgICAgICAgICAgIHNyYzAsIHNyYzEsIHNyYzIsIHNyYzMpOwo+PiAr ICAgIERVUDRfQVJHMihfX2xzeF92c3N1Yl9odSwgc3JjNCwgcmVnMCwgc3JjNSwgcmVnMCwgc3Jj NiwgcmVnMCwKPj4gc3JjNywgcmVnMCwKPj4gKyAgICAgICAgICAgICAgc3JjNCwgc3JjNSwgc3Jj Niwgc3JjNyk7Cj4+ICsgICAgRFVQNF9BUkcyKF9fbHN4X3ZzYXRfaHUsIHNyYzAsIDcsIHNyYzEs IDcsIHNyYzIsIDcsIHNyYzMsIDcsCj4+ICsgICAgICAgICAgICAgIHNyYzAsIHNyYzEsIHNyYzIs IHNyYzMpOwo+PiArICAgIERVUDRfQVJHMihfX2xzeF92c2F0X2h1LCBzcmM0LCA3LCBzcmM1LCA3 LCBzcmM2LCA3LCBzcmM3LCA3LAo+PiArICAgICAgICAgICAgICBzcmM0LCBzcmM1LCBzcmM2LCBz cmM3KTsKPj4gKyAgICBEVVA0X0FSRzIoX19sc3hfdnBhY2tldl9iLCBzcmM0LCBzcmMwLCBzcmM1 LCBzcmMxLCBzcmM2LCBzcmMyLAo+PiBzcmM3LCBzcmMzLAo+PiArICAgICAgICAgICAgICB0bXAx MiwgdG1wMTMsIHRtcDE0LCB0bXAxNSk7Cj4+ICsgICAgTFNYX1NUXzgodG1wMCwgdG1wMSwgdG1w MiwgdG1wMywgdG1wNCwgdG1wNSwgdG1wNiwgdG1wNywgZHN0LAo+PiArICAgICAgICAgICAgIGRz dF9zdHJpZGUsIHN0cmlkZTIsIHN0cmlkZTMsIHN0cmlkZTQpOwo+PiArICAgIGRzdCArPSBzdHJp ZGU0Owo+PiArICAgIExTWF9TVF84KHRtcDgsIHRtcDksIHRtcDEwLCB0bXAxMSwgdG1wMTIsIHRt cDEzLCB0bXAxNCwgdG1wMTUsIGRzdCwKPj4gKyAgICAgICAgICAgICBkc3Rfc3RyaWRlLCBzdHJp ZGUyLCBzdHJpZGUzLCBzdHJpZGU0KTsKPj4gK30KPj4gKwo+PiArdm9pZCBmZl90bV8zMngzMl9s c3godWludDhfdCAqZHN0LCBwdHJkaWZmX3QgZHN0X3N0cmlkZSwKPj4gKyAgICAgICAgICAgICAg ICAgICAgIGNvbnN0IHVpbnQ4X3QgKnNyY19sZWZ0LCBjb25zdCB1aW50OF90Cj4+ICpzcmNfdG9w X3B0cikKPj4gK3sKPj4gKyAgICB1aW50OF90IHRvcF9sZWZ0ID0gc3JjX3RvcF9wdHJbLTFdOwo+ PiArICAgIHVpbnQzMl90IGxvb3BfY250Owo+PiArICAgIF9fbTEyOGkgdG1wMCwgdG1wMSwgdG1w MiwgdG1wMywgcmVnMCwgcmVnMSwgcmVnMjsKPj4gKyAgICBfX20xMjhpIHNyYzAsIHNyYzEsIHNy YzIsIHNyYzMsIHNyYzQsIHNyYzUsIHNyYzYsIHNyYzc7Cj4+ICsgICAgX19tMTI4aSBkc3QwLCBk c3QxLCBkc3QyLCBkc3QzLCBkc3Q0LCBkc3Q1LCBkc3Q2LCBkc3Q3Owo+PiArCj4+ICsgICAgcmVn MCA9IF9fbHN4X3ZyZXBsZ3IydnJfaCh0b3BfbGVmdCk7Cj4+ICsgICAgRFVQMl9BUkcyKF9fbHN4 X3ZsZCwgc3JjX3RvcF9wdHIsIDAsIHNyY190b3BfcHRyLCAxNiwgcmVnMSwgcmVnMik7Cj4+ICsK Pj4gKyAgICBzcmNfbGVmdCArPSAyODsKPj4gKyAgICBmb3IgKGxvb3BfY250ID0gODsgbG9vcF9j bnQtLTspIHsKPj4gKyAgICAgICAgRFVQNF9BUkcyKF9fbHN4X3ZsZHJlcGxfYiwgc3JjX2xlZnQs IDAsIHNyY19sZWZ0LCAxLCBzcmNfbGVmdCwKPj4gMiwKPj4gKyAgICAgICAgICAgICAgICAgIHNy Y19sZWZ0LCAzLCB0bXAzLCB0bXAyLCB0bXAxLCB0bXAwKTsKPj4gKyAgICAgICAgc3JjX2xlZnQg LT0gNDsKPj4gKyAgICAgICAgRFVQNF9BUkcyKF9fbHN4X3ZhZGR3ZXZfaF9idSwgdG1wMCwgcmVn MSwgdG1wMSwgcmVnMSwgdG1wMiwKPj4gcmVnMSwKPj4gKyAgICAgICAgICAgICAgICAgIHRtcDMs IHJlZzEsIHNyYzAsIHNyYzEsIHNyYzIsIHNyYzMpOwo+PiArICAgICAgICBEVVA0X0FSRzIoX19s c3hfdmFkZHdvZF9oX2J1LCB0bXAwLCByZWcxLCB0bXAxLCByZWcxLCB0bXAyLAo+PiByZWcxLAo+ PiArICAgICAgICAgICAgICAgICAgdG1wMywgcmVnMSwgc3JjNCwgc3JjNSwgc3JjNiwgc3JjNyk7 Cj4+ICsgICAgICAgIERVUDRfQVJHMihfX2xzeF92c3N1Yl9odSwgc3JjMCwgcmVnMCwgc3JjMSwg cmVnMCwgc3JjMiwgcmVnMCwKPj4gc3JjMywKPj4gKyAgICAgICAgICAgICAgICAgIHJlZzAsIHNy YzAsIHNyYzEsIHNyYzIsIHNyYzMpOwo+PiArICAgICAgICBEVVA0X0FSRzIoX19sc3hfdnNzdWJf aHUsIHNyYzQsIHJlZzAsIHNyYzUsIHJlZzAsIHNyYzYsIHJlZzAsCj4+IHNyYzcsCj4+ICsgICAg ICAgICAgICAgICAgICByZWcwLCBzcmM0LCBzcmM1LCBzcmM2LCBzcmM3KTsKPj4gKyAgICAgICAg RFVQNF9BUkcyKF9fbHN4X3ZhZGR3ZXZfaF9idSwgdG1wMCwgcmVnMiwgdG1wMSwgcmVnMiwgdG1w MiwKPj4gcmVnMiwKPj4gKyAgICAgICAgICAgICAgICAgIHRtcDMsIHJlZzIsIGRzdDAsIGRzdDEs IGRzdDIsIGRzdDMpOwo+PiArICAgICAgICBEVVA0X0FSRzIoX19sc3hfdmFkZHdvZF9oX2J1LCB0 bXAwLCByZWcyLCB0bXAxLCByZWcyLCB0bXAyLAo+PiByZWcyLAo+PiArICAgICAgICAgICAgICAg ICAgdG1wMywgcmVnMiwgZHN0NCwgZHN0NSwgZHN0NiwgZHN0Nyk7Cj4+ICsgICAgICAgIERVUDRf QVJHMihfX2xzeF92c3N1Yl9odSwgZHN0MCwgcmVnMCwgZHN0MSwgcmVnMCwgZHN0MiwgcmVnMCwK Pj4gZHN0MywKPj4gKyAgICAgICAgICAgICAgICAgIHJlZzAsIGRzdDAsIGRzdDEsIGRzdDIsIGRz dDMpOwo+PiArICAgICAgICBEVVA0X0FSRzIoX19sc3hfdnNzdWJfaHUsIGRzdDQsIHJlZzAsIGRz dDUsIHJlZzAsIGRzdDYsIHJlZzAsCj4+IGRzdDcsCj4+ICsgICAgICAgICAgICAgICAgICByZWcw LCBkc3Q0LCBkc3Q1LCBkc3Q2LCBkc3Q3KTsKPj4gKyAgICAgICAgRFVQNF9BUkcyKF9fbHN4X3Zz YXRfaHUsIHNyYzAsIDcsIHNyYzEsIDcsIHNyYzIsIDcsIHNyYzMsIDcsCj4+ICsgICAgICAgICAg ICAgICAgICBzcmMwLCBzcmMxLCBzcmMyLCBzcmMzKTsKPj4gKyAgICAgICAgRFVQNF9BUkcyKF9f bHN4X3ZzYXRfaHUsIHNyYzQsIDcsIHNyYzUsIDcsIHNyYzYsIDcsIHNyYzcsIDcsCj4+ICsgICAg ICAgICAgICAgICAgICBzcmM0LCBzcmM1LCBzcmM2LCBzcmM3KTsKPj4gKyAgICAgICAgRFVQNF9B UkcyKF9fbHN4X3ZzYXRfaHUsIGRzdDAsIDcsIGRzdDEsIDcsIGRzdDIsIDcsIGRzdDMsIDcsCj4+ ICsgICAgICAgICAgICAgICAgICBkc3QwLCBkc3QxLCBkc3QyLCBkc3QzKTsKPj4gKyAgICAgICAg RFVQNF9BUkcyKF9fbHN4X3ZzYXRfaHUsIGRzdDQsIDcsIGRzdDUsIDcsIGRzdDYsIDcsIGRzdDcs IDcsCj4+ICsgICAgICAgICAgICAgICAgICBkc3Q0LCBkc3Q1LCBkc3Q2LCBkc3Q3KTsKPj4gKyAg ICAgICAgRFVQNF9BUkcyKF9fbHN4X3ZwYWNrZXZfYiwgc3JjNCwgc3JjMCwgc3JjNSwgc3JjMSwg c3JjNiwgc3JjMiwKPj4gc3JjNywKPj4gKyAgICAgICAgICAgICAgICAgIHNyYzMsIHNyYzAsIHNy YzEsIHNyYzIsIHNyYzMpOwo+PiArICAgICAgICBEVVA0X0FSRzIoX19sc3hfdnBhY2tldl9iLCBk c3Q0LCBkc3QwLCBkc3Q1LCBkc3QxLCBkc3Q2LCBkc3QyLAo+PiBkc3Q3LAo+PiArICAgICAgICAg ICAgICAgICAgZHN0MywgZHN0MCwgZHN0MSwgZHN0MiwgZHN0Myk7Cj4+ICsgICAgICAgIF9fbHN4 X3ZzdChzcmMwLCBkc3QsIDApOwo+PiArICAgICAgICBfX2xzeF92c3QoZHN0MCwgZHN0LCAxNik7 Cj4+ICsgICAgICAgIGRzdCArPSBkc3Rfc3RyaWRlOwo+PiArICAgICAgICBfX2xzeF92c3Qoc3Jj MSwgZHN0LCAwKTsKPj4gKyAgICAgICAgX19sc3hfdnN0KGRzdDEsIGRzdCwgMTYpOwo+PiArICAg ICAgICBkc3QgKz0gZHN0X3N0cmlkZTsKPj4gKyAgICAgICAgX19sc3hfdnN0KHNyYzIsIGRzdCwg MCk7Cj4+ICsgICAgICAgIF9fbHN4X3ZzdChkc3QyLCBkc3QsIDE2KTsKPj4gKyAgICAgICAgZHN0 ICs9IGRzdF9zdHJpZGU7Cj4+ICsgICAgICAgIF9fbHN4X3ZzdChzcmMzLCBkc3QsIDApOwo+PiAr ICAgICAgICBfX2xzeF92c3QoZHN0MywgZHN0LCAxNik7Cj4+ICsgICAgICAgIGRzdCArPSBkc3Rf c3RyaWRlOwo+PiArICAgIH0KPj4gK30KPj4gZGlmZiAtLWdpdCBhL2xpYmF2Y29kZWMvbG9vbmdh cmNoL3ZwOV9tY19sc3guYwo+PiBiL2xpYmF2Y29kZWMvbG9vbmdhcmNoL3ZwOV9tY19sc3guYwo+ PiBuZXcgZmlsZSBtb2RlIDEwMDY0NAo+PiBpbmRleCAwMDAwMDAwMDAwLi5jNjc0NmZkODdmCj4+ IC0tLSAvZGV2L251bGwKPj4gKysrIGIvbGliYXZjb2RlYy9sb29uZ2FyY2gvdnA5X21jX2xzeC5j Cj4+IEBAIC0wLDAgKzEsMjQ4MCBAQAo+PiArLyoKPj4gKyAqIENvcHlyaWdodCAoYykgMjAyMSBM b29uZ3NvbiBUZWNobm9sb2d5IENvcnBvcmF0aW9uIExpbWl0ZWQKPj4gKyAqIENvbnRyaWJ1dGVk IGJ5IEhhbyBDaGVuIDxjaGVuaGFvQGxvb25nc29uLmNuPgo+PiArICoKPj4gKyAqIFRoaXMgZmls ZSBpcyBwYXJ0IG9mIEZGbXBlZy4KPj4gKyAqCj4+ICsgKiBGRm1wZWcgaXMgZnJlZSBzb2Z0d2Fy ZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yCj4+ICsgKiBtb2RpZnkgaXQgdW5kZXIg dGhlIHRlcm1zIG9mIHRoZSBHTlUgTGVzc2VyIEdlbmVyYWwgUHVibGljCj4+ICsgKiBMaWNlbnNl IGFzIHB1Ymxpc2hlZCBieSB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOyBlaXRoZXIKPj4g KyAqIHZlcnNpb24gMi4xIG9mIHRoZSBMaWNlbnNlLCBvciAoYXQgeW91ciBvcHRpb24pIGFueSBs YXRlciB2ZXJzaW9uLgo+PiArICoKPj4gKyAqIEZGbXBlZyBpcyBkaXN0cmlidXRlZCBpbiB0aGUg aG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLAo+PiArICogYnV0IFdJVEhPVVQgQU5ZIFdBUlJB TlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKPj4gKyAqIE1FUkNIQU5U QUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUgR05V Cj4+ICsgKiBMZXNzZXIgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLgo+ PiArICoKPj4gKyAqIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBM ZXNzZXIgR2VuZXJhbCBQdWJsaWMKPj4gKyAqIExpY2Vuc2UgYWxvbmcgd2l0aCBGRm1wZWc7IGlm IG5vdCwgd3JpdGUgdG8gdGhlIEZyZWUgU29mdHdhcmUKPj4gKyAqIEZvdW5kYXRpb24sIEluYy4s IDUxIEZyYW5rbGluIFN0cmVldCwgRmlmdGggRmxvb3IsIEJvc3RvbiwgTUEKPj4gMDIxMTAtMTMw MSBVU0EKPj4gKyAqLwo+PiArCj4+ICsjaW5jbHVkZSAibGliYXZjb2RlYy92cDlkc3AuaCIKPj4g KyNpbmNsdWRlICJsaWJhdnV0aWwvbG9vbmdhcmNoL2xvb25nc29uX2ludHJpbnNpY3MuaCIKPj4g KyNpbmNsdWRlICJ2cDlkc3BfbG9vbmdhcmNoLmgiCj4+ICsKPj4gK3N0YXRpYyBjb25zdCB1aW50 OF90IG1jX2ZpbHRfbWFza19hcnJbMTYgKiAzXSA9IHsKPj4gKyAgICAvKiA4IHdpZHRoIGNhc2Vz ICovCj4+ICsgICAgMCwgMSwgMSwgMiwgMiwgMywgMywgNCwgNCwgNSwgNSwgNiwgNiwgNywgNywg OCwKPj4gKyAgICAvKiA0IHdpZHRoIGNhc2VzICovCj4+ICsgICAgMCwgMSwgMSwgMiwgMiwgMywg MywgNCwgMTYsIDE3LCAxNywgMTgsIDE4LCAxOSwgMTksIDIwLAo+PiArICAgIC8qIDQgd2lkdGgg Y2FzZXMgKi8KPj4gKyAgICA4LCA5LCA5LCAxMCwgMTAsIDExLCAxMSwgMTIsIDI0LCAyNSwgMjUs IDI2LCAyNiwgMjcsIDI3LCAyOAo+PiArfTsKPj4gKwo+PiArCj4+ICsjZGVmaW5lIEhPUklaXzhU QVBfNFdJRF80VkVDU19GSUxUKF9zcmMwLCBfc3JjMSwgX3NyYzIsIF9zcmMzLAo+PiAgICAgICAg ICBcCj4+ICsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIF9tYXNrMCwgX21hc2sx LCBfbWFzazIsIF9tYXNrMywKPj4gICAgICAgICAgXAo+PiArICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICBfZmlsdGVyMCwgX2ZpbHRlcjEsIF9maWx0ZXIyLAo+PiBfZmlsdGVyMywg ICAgIFwKPj4gKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgX291dDAsIF9vdXQx KQo+PiAgICAgICAgICBcCj4+ICt7Cj4+ICAgICAgICAgIFwKPj4gKyAgICBfX20xMjhpIF90bXAw LCBfdG1wMSwgX3RtcDIsIF90bXAzLCBfdG1wNCwgX3RtcDUsIF90bXA2LCBfdG1wNzsKPj4gICAg ICAgICAgXAo+PiArICAgIF9fbTEyOGkgX3JlZzAsIF9yZWcxLCBfcmVnMiwgX3JlZzM7Cj4+ICAg ICAgICAgIFwKPj4gKwo+PiAgICAgICAgICBcCj4+ICsgICAgRFVQMl9BUkczKF9fbHN4X3ZzaHVm X2IsIF9zcmMxLCBfc3JjMCwgX21hc2swLCBfc3JjMywgX3NyYzIsCj4+IF9tYXNrMCwgICAgICAg XAo+PiArICAgICAgICAgICAgICBfdG1wMCwgX3RtcDEpOwo+PiAgICAgICAgICBcCj4+ICsgICAg RFVQMl9BUkcyKF9fbHN4X3ZkcDJfaF9iLCBfdG1wMCwgX2ZpbHRlcjAsIF90bXAxLCBfZmlsdGVy MCwgX3JlZzAsCj4+IF9yZWcxKTsgXAo+PiArICAgIERVUDJfQVJHMyhfX2xzeF92c2h1Zl9iLCBf c3JjMSwgX3NyYzAsIF9tYXNrMSwgX3NyYzMsIF9zcmMyLAo+PiBfbWFzazEsICAgICAgIFwKPj4g KyAgICAgICAgICAgICAgIF90bXAyLCBfdG1wMyk7Cj4+ICAgICAgICAgIFwKPj4gKyAgICBEVVAy X0FSRzMoX19sc3hfdmRwMmFkZF9oX2IsIF9yZWcwLCBfdG1wMiwgX2ZpbHRlcjEsIF9yZWcxLCBf dG1wMywKPj4gICAgICAgICAgXAo+PiArICAgICAgICAgICAgICBfZmlsdGVyMSwgX3JlZzAsIF9y ZWcxKTsKPj4gICAgICAgICAgXAo+PiArICAgIERVUDJfQVJHMyhfX2xzeF92c2h1Zl9iLCBfc3Jj MSwgX3NyYzAsIF9tYXNrMiwgX3NyYzMsIF9zcmMyLAo+PiBfbWFzazIsICAgICAgIFwKPj4gKyAg ICAgICAgICAgICAgIF90bXA0LCBfdG1wNSk7Cj4+ICAgICAgICAgIFwKPj4gKyAgICBEVVAyX0FS RzIoX19sc3hfdmRwMl9oX2IsIF90bXA0LCBfZmlsdGVyMiwgX3RtcDUsIF9maWx0ZXIyLCBfcmVn MiwKPj4gX3JlZzMpOyBcCj4+ICsgICAgRFVQMl9BUkczKF9fbHN4X3ZzaHVmX2IsIF9zcmMxLCBf c3JjMCwgX21hc2szLCBfc3JjMywgX3NyYzIsCj4+IF9tYXNrMywgICAgICAgXAo+PiArICAgICAg ICAgICAgICAgX3RtcDYsIF90bXA3KTsKPj4gICAgICAgICAgXAo+PiArICAgIERVUDJfQVJHMyhf X2xzeF92ZHAyYWRkX2hfYiwgX3JlZzIsIF90bXA2LCBfZmlsdGVyMywgX3JlZzMsIF90bXA3LAo+ PiAgICAgICAgICBcCj4+ICsgICAgICAgICAgICAgIF9maWx0ZXIzLCBfcmVnMiwgX3JlZzMpOwo+ PiAgICAgICAgICBcCj4+ICsgICAgRFVQMl9BUkcyKF9fbHN4X3ZzYWRkX2gsIF9yZWcwLCBfcmVn MiwgX3JlZzEsIF9yZWczLCBfb3V0MCwKPj4gX291dDEpOyAgICAgICAgXAo+PiArfQo+PiArCj4+ ICsjZGVmaW5lIEhPUklaXzhUQVBfOFdJRF80VkVDU19GSUxUKF9zcmMwLCBfc3JjMSwgX3NyYzIs IF9zcmMzLAo+PiAgICAgICAgICBcCj4+ICsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIF9tYXNrMCwgX21hc2sxLCBfbWFzazIsIF9tYXNrMywKPj4gICAgICAgICAgXAo+PiArICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBfZmlsdGVyMCwgX2ZpbHRlcjEsIF9maWx0 ZXIyLAo+PiBfZmlsdGVyMywgICAgIFwKPj4gKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgX291dDAsIF9vdXQxLCBfb3V0MiwgX291dDMpCj4+ICAgICAgICAgIFwKPj4gK3sKPj4g ICAgICAgICAgXAo+PiArICAgIF9fbTEyOGkgX3RtcDAsIF90bXAxLCBfdG1wMiwgX3RtcDMsIF90 bXA0LCBfdG1wNSwgX3RtcDYsIF90bXA3Owo+PiAgICAgICAgICBcCj4+ICsgICAgX19tMTI4aSBf cmVnMCwgX3JlZzEsIF9yZWcyLCBfcmVnMywgX3JlZzQsIF9yZWc1LCBfcmVnNiwgX3JlZzc7Cj4+ ICAgICAgICAgIFwKPj4gKwo+PiAgICAgICAgICBcCj4+ICsgICAgRFVQNF9BUkczKF9fbHN4X3Zz aHVmX2IsIF9zcmMwLCBfc3JjMCwgX21hc2swLCBfc3JjMSwgX3NyYzEsCj4+IF9tYXNrMCwgX3Ny YzIsXAo+PiArICAgICAgICAgICAgICBfc3JjMiwgX21hc2swLCBfc3JjMywgX3NyYzMsIF9tYXNr MCwgX3RtcDAsIF90bXAxLAo+PiBfdG1wMiwgX3RtcDMpO1wKPj4gKyAgICBEVVA0X0FSRzIoX19s c3hfdmRwMl9oX2IsIF90bXAwLCBfZmlsdGVyMCwgX3RtcDEsIF9maWx0ZXIwLCBfdG1wMiwKPj4g ICAgICAgICAgXAo+PiArICAgICAgICAgICAgICBfZmlsdGVyMCwgX3RtcDMsIF9maWx0ZXIwLCBf cmVnMCwgX3JlZzEsIF9yZWcyLCBfcmVnMyk7Cj4+ICAgICAgICAgIFwKPj4gKyAgICBEVVA0X0FS RzMoX19sc3hfdnNodWZfYiwgX3NyYzAsIF9zcmMwLCBfbWFzazIsIF9zcmMxLCBfc3JjMSwKPj4g X21hc2syLCBfc3JjMixcCj4+ICsgICAgICAgICAgICAgIF9zcmMyLCBfbWFzazIsIF9zcmMzLCBf c3JjMywgX21hc2syLCBfdG1wMCwgX3RtcDEsCj4+IF90bXAyLCBfdG1wMyk7XAo+PiArICAgIERV UDRfQVJHMihfX2xzeF92ZHAyX2hfYiwgX3RtcDAsIF9maWx0ZXIyLCBfdG1wMSwgX2ZpbHRlcjIs IF90bXAyLAo+PiAgICAgICAgICBcCj4+ICsgICAgICAgICAgICAgIF9maWx0ZXIyLCBfdG1wMywg X2ZpbHRlcjIsIF9yZWc0LCBfcmVnNSwgX3JlZzYsIF9yZWc3KTsKPj4gICAgICAgICAgXAo+PiAr ICAgIERVUDRfQVJHMyhfX2xzeF92c2h1Zl9iLCBfc3JjMCwgX3NyYzAsIF9tYXNrMSwgX3NyYzEs IF9zcmMxLAo+PiBfbWFzazEsIF9zcmMyLFwKPj4gKyAgICAgICAgICAgICAgX3NyYzIsIF9tYXNr MSwgX3NyYzMsIF9zcmMzLCBfbWFzazEsIF90bXA0LCBfdG1wNSwKPj4gX3RtcDYsIF90bXA3KTtc Cj4+ICsgICAgRFVQNF9BUkczKF9fbHN4X3ZkcDJhZGRfaF9iLCBfcmVnMCwgX3RtcDQsIF9maWx0 ZXIxLCBfcmVnMSwgX3RtcDUsCj4+ICAgICAgICAgIFwKPj4gKyAgICAgICAgICAgICAgX2ZpbHRl cjEsIF9yZWcyLCBfdG1wNiwgX2ZpbHRlcjEsIF9yZWczLCBfdG1wNywKPj4gX2ZpbHRlcjEsIF9y ZWcwLCBcCj4+ICsgICAgICAgICAgICAgIF9yZWcxLCBfcmVnMiwgX3JlZzMpOwo+PiAgICAgICAg ICBcCj4+ICsgICAgRFVQNF9BUkczKF9fbHN4X3ZzaHVmX2IsIF9zcmMwLCBfc3JjMCwgX21hc2sz LCBfc3JjMSwgX3NyYzEsCj4+IF9tYXNrMywgX3NyYzIsXAo+PiArICAgICAgICAgICAgICBfc3Jj MiwgX21hc2szLCBfc3JjMywgX3NyYzMsIF9tYXNrMywgX3RtcDQsIF90bXA1LAo+PiBfdG1wNiwg X3RtcDcpO1wKPj4gKyAgICBEVVA0X0FSRzMoX19sc3hfdmRwMmFkZF9oX2IsIF9yZWc0LCBfdG1w NCwgX2ZpbHRlcjMsIF9yZWc1LCBfdG1wNSwKPj4gICAgICAgICAgXAo+PiArICAgICAgICAgICAg ICBfZmlsdGVyMywgX3JlZzYsIF90bXA2LCBfZmlsdGVyMywgX3JlZzcsIF90bXA3LAo+PiBfZmls dGVyMywgX3JlZzQsIFwKPj4gKyAgICAgICAgICAgICAgX3JlZzUsIF9yZWc2LCBfcmVnNyk7Cj4+ ICAgICAgICAgIFwKPj4gKyAgICBEVVA0X0FSRzIoX19sc3hfdnNhZGRfaCwgX3JlZzAsIF9yZWc0 LCBfcmVnMSwgX3JlZzUsIF9yZWcyLCBfcmVnNiwKPj4gX3JlZzMsICBcCj4+ICsgICAgICAgICAg ICAgIF9yZWc3LCBfb3V0MCwgX291dDEsIF9vdXQyLCBfb3V0Myk7Cj4+ICAgICAgICAgIFwKPj4g K30KPj4gKwo+PiArI2RlZmluZSBGSUxUXzhUQVBfRFBBRERfU19IKF9yZWcwLCBfcmVnMSwgX3Jl ZzIsIF9yZWczLAo+PiAgICAgICAgICBcCj4+ICsgICAgICAgICAgICAgICAgICAgICAgICAgICAg IF9maWx0ZXIwLCBfZmlsdGVyMSwgX2ZpbHRlcjIsIF9maWx0ZXIzKQo+PiAgICAgICAgICBcCj4+ ICsoIHsKPj4gICAgICAgICAgXAo+PiArICAgIF9fbTEyOGkgX3ZlYzAsIF92ZWMxOwo+PiAgICAg ICAgICBcCj4+ICsKPj4gICAgICAgICAgXAo+PiArICAgIF92ZWMwID0gX19sc3hfdmRwMl9oX2Io X3JlZzAsIF9maWx0ZXIwKTsKPj4gICAgICAgICAgXAo+PiArICAgIF92ZWMwID0gX19sc3hfdmRw MmFkZF9oX2IoX3ZlYzAsIF9yZWcxLCBfZmlsdGVyMSk7Cj4+ICAgICAgICAgIFwKPj4gKyAgICBf dmVjMSA9IF9fbHN4X3ZkcDJfaF9iKF9yZWcyLCBfZmlsdGVyMik7Cj4+ICAgICAgICAgIFwKPj4g KyAgICBfdmVjMSA9IF9fbHN4X3ZkcDJhZGRfaF9iKF92ZWMxLCBfcmVnMywgX2ZpbHRlcjMpOwo+ PiAgICAgICAgICBcCj4+ICsgICAgX3ZlYzAgPSBfX2xzeF92c2FkZF9oKF92ZWMwLCBfdmVjMSk7 Cj4+ICAgICAgICAgIFwKPj4gKwo+PiAgICAgICAgICBcCj4+ICsgICAgX3ZlYzA7Cj4+ICAgICAg ICAgIFwKPj4gK30gKQo+PiArCj4+ICsjZGVmaW5lIEhPUklaXzhUQVBfRklMVChfc3JjMCwgX3Ny YzEsIF9tYXNrMCwgX21hc2sxLCBfbWFzazIsIF9tYXNrMywKPj4gICAgICAgICAgXAo+PiArICAg ICAgICAgICAgICAgICAgICAgICAgX2ZpbHRfaDAsIF9maWx0X2gxLCBfZmlsdF9oMiwgX2ZpbHRf aDMpCj4+ICAgICAgICAgIFwKPj4gKyggewo+PiAgICAgICAgICBcCj4+ICsgICAgX19tMTI4aSBf dG1wMCwgX3RtcDEsIF90bXAyLCBfdG1wMzsKPj4gICAgICAgICAgXAo+PiArICAgIF9fbTEyOGkg X291dDsKPj4gICAgICAgICAgXAo+PiArCj4+ICAgICAgICAgIFwKPj4gKyAgICBEVVA0X0FSRzMo X19sc3hfdnNodWZfYiwgX3NyYzEsIF9zcmMwLCBfbWFzazAsIF9zcmMxLCBfc3JjMCwKPj4gX21h c2sxLCBfc3JjMSxcCj4+ICsgICAgICAgICAgICAgIF9zcmMwLCBfbWFzazIsIF9zcmMxLCBfc3Jj MCwgX21hc2szLCBfdG1wMCwgX3RtcDEsCj4+IF90bXAyLCBfdG1wMyk7XAo+PiArICAgIF9vdXQg PSBGSUxUXzhUQVBfRFBBRERfU19IKF90bXAwLCBfdG1wMSwgX3RtcDIsIF90bXAzLCBfZmlsdF9o MCwKPj4gX2ZpbHRfaDEsIFwKPj4gKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBfZmls dF9oMiwgX2ZpbHRfaDMpOwo+PiAgICAgICAgICBcCj4+ICsgICAgX291dCA9IF9fbHN4X3ZzcmFy aV9oKF9vdXQsIDcpOwo+PiAgICAgICAgICBcCj4+ICsgICAgX291dCA9IF9fbHN4X3ZzYXRfaChf b3V0LCA3KTsKPj4gICAgICAgICAgXAo+PiArCj4+ICAgICAgICAgIFwKPj4gKyAgICBfb3V0Owo+ PiAgICAgICAgICBcCj4+ICt9ICkKPj4gKwo+PiArI2RlZmluZSBMU1hfTERfNChfc3JjLCBfc3Ry aWRlLCBfc3JjMCwgX3NyYzEsIF9zcmMyLCBfc3JjMykKPj4gICAgIFwKPj4gK3sKPj4gICAgIFwK Pj4gKyAgICBfc3JjMCA9IF9fbHN4X3ZsZChfc3JjLCAwKTsKPj4gICAgIFwKPj4gKyAgICBfc3Jj ICs9IF9zdHJpZGU7Cj4+ICAgICBcCj4+ICsgICAgX3NyYzEgPSBfX2xzeF92bGQoX3NyYywgMCk7 Cj4+ICAgICBcCj4+ICsgICAgX3NyYyArPSBfc3RyaWRlOwo+PiAgICAgXAo+PiArICAgIF9zcmMy ID0gX19sc3hfdmxkKF9zcmMsIDApOwo+PiAgICAgXAo+PiArICAgIF9zcmMgKz0gX3N0cmlkZTsK Pj4gICAgIFwKPj4gKyAgICBfc3JjMyA9IF9fbHN4X3ZsZChfc3JjLCAwKTsKPj4gICAgIFwKPj4g K30KPj4gKwo+PiArc3RhdGljIHZvaWQgY29tbW9uX2h6Xzh0XzR4NF9sc3goY29uc3QgdWludDhf dCAqc3JjLCBpbnQzMl90Cj4+IHNyY19zdHJpZGUsCj4+ICsgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICB1aW50OF90ICpkc3QsIGludDMyX3QgZHN0X3N0cmlkZSwKPj4gKyAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IGludDhfdCAqZmlsdGVyKQo+PiArewo+PiAr ICAgIF9fbTEyOGkgc3JjMCwgc3JjMSwgc3JjMiwgc3JjMzsKPj4gKyAgICBfX20xMjhpIGZpbHRl cjAsIGZpbHRlcjEsIGZpbHRlcjIsIGZpbHRlcjM7Cj4+ICsgICAgX19tMTI4aSBtYXNrMCwgbWFz azEsIG1hc2syLCBtYXNrMzsKPj4gKyAgICBfX20xMjhpIG91dCwgb3V0MCwgb3V0MTsKPj4gKwo+ PiArICAgIG1hc2swID0gX19sc3hfdmxkKG1jX2ZpbHRfbWFza19hcnIsIDE2KTsKPj4gKyAgICBz cmMgLT0gMzsKPj4gKyAgICBEVVA0X0FSRzIoX19sc3hfdmxkcmVwbF9oLCBmaWx0ZXIsIDAsIGZp bHRlciwgMiwgZmlsdGVyLCA0LAo+PiBmaWx0ZXIsIDYsCj4+ICsgICAgICAgICAgICAgIGZpbHRl cjAsIGZpbHRlcjEsIGZpbHRlcjIsIGZpbHRlcjMpOwo+PiArICAgIERVUDJfQVJHMihfX2xzeF92 YWRkaV9idSwgbWFzazAsIDIsIG1hc2swLCA0LCBtYXNrMSwgbWFzazIpOwo+PiArICAgIG1hc2sz ID0gX19sc3hfdmFkZGlfYnUobWFzazAsIDYpOwo+PiArCj4+ICsgICAgTFNYX0xEXzQoc3JjLCBz cmNfc3RyaWRlLCBzcmMwLCBzcmMxLCBzcmMyLCBzcmMzKTsKPj4gKyAgICBEVVA0X0FSRzIoX19s c3hfdnhvcmlfYiwgc3JjMCwgMTI4LCBzcmMxLCAxMjgsIHNyYzIsIDEyOCwgc3JjMywKPj4gMTI4 LAo+PiArICAgICAgICAgICAgICBzcmMwLCBzcmMxLCBzcmMyLCBzcmMzKTsKPj4gKyAgICBIT1JJ Wl84VEFQXzRXSURfNFZFQ1NfRklMVChzcmMwLCBzcmMxLCBzcmMyLCBzcmMzLCBtYXNrMCwgbWFz azEsCj4+IG1hc2syLAo+PiArICAgICAgICAgICAgICAgICAgICAgbWFzazMsIGZpbHRlcjAsIGZp bHRlcjEsIGZpbHRlcjIsIGZpbHRlcjMsIG91dDAsCj4+IG91dDEpOwo+PiArICAgIG91dCA9IF9f bHN4X3Zzc3Jhcm5pX2JfaChvdXQxLCBvdXQwLCA3KTsKPj4gKyAgICBvdXQgPSBfX2xzeF92eG9y aV9iKG91dCwgMTI4KTsKPj4gKyAgICBfX2xzeF92c3RlbG1fdyhvdXQsIGRzdCwgMCwgMCk7Cj4+ ICsgICAgZHN0ICs9IGRzdF9zdHJpZGU7Cj4+ICsgICAgX19sc3hfdnN0ZWxtX3cob3V0LCBkc3Qs IDAsIDEpOwo+PiArICAgIGRzdCArPSBkc3Rfc3RyaWRlOwo+PiArICAgIF9fbHN4X3ZzdGVsbV93 KG91dCwgZHN0LCAwLCAyKTsKPj4gKyAgICBkc3QgKz0gZHN0X3N0cmlkZTsKPj4gKyAgICBfX2xz eF92c3RlbG1fdyhvdXQsIGRzdCwgMCwgMyk7Cj4+ICt9Cj4+ICsKPj4gK3N0YXRpYyB2b2lkIGNv bW1vbl9oel84dF80eDhfbHN4KGNvbnN0IHVpbnQ4X3QgKnNyYywgaW50MzJfdAo+PiBzcmNfc3Ry aWRlLAo+PiArICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdWludDhfdCAqZHN0LCBp bnQzMl90IGRzdF9zdHJpZGUsCj4+ICsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBj b25zdCBpbnQ4X3QgKmZpbHRlcikKPj4gK3sKPj4gKyAgICBpbnQzMl90IHNyY19zdHJpZGUyID0g c3JjX3N0cmlkZSA8PCAxOwo+PiArICAgIGludDMyX3Qgc3JjX3N0cmlkZTMgPSBzcmNfc3RyaWRl ICsgc3JjX3N0cmlkZTI7Cj4+ICsgICAgaW50MzJfdCBzcmNfc3RyaWRlNCA9IHNyY19zdHJpZGUy IDw8IDE7Cj4+ICsgICAgX19tMTI4aSBzcmMwLCBzcmMxLCBzcmMyLCBzcmMzOwo+PiArICAgIF9f bTEyOGkgZmlsdGVyMCwgZmlsdGVyMSwgZmlsdGVyMiwgZmlsdGVyMzsKPj4gKyAgICBfX20xMjhp IG1hc2swLCBtYXNrMSwgbWFzazIsIG1hc2szOwo+PiArICAgIF9fbTEyOGkgb3V0MCwgb3V0MSwg b3V0Miwgb3V0MzsKPj4gKyAgICB1aW50OF90ICpfc3JjID0gKHVpbnQ4X3QqKXNyYyAtIDM7Cj4+ ICsKPj4gKyAgICBtYXNrMCA9IF9fbHN4X3ZsZChtY19maWx0X21hc2tfYXJyLCAxNik7Cj4+ICsg ICAgRFVQMl9BUkcyKF9fbHN4X3ZhZGRpX2J1LCBtYXNrMCwgMiwgbWFzazAsIDQsIG1hc2sxLCBt YXNrMik7Cj4+ICsgICAgbWFzazMgPSBfX2xzeF92YWRkaV9idShtYXNrMCwgNik7Cj4+ICsgICAg RFVQNF9BUkcyKF9fbHN4X3ZsZHJlcGxfaCwgZmlsdGVyLCAwLCBmaWx0ZXIsIDIsIGZpbHRlciwg NCwKPj4gZmlsdGVyLCA2LAo+PiArICAgICAgICAgICAgICBmaWx0ZXIwLCBmaWx0ZXIxLCBmaWx0 ZXIyLCBmaWx0ZXIzKTsKPj4gKwo+PiArICAgIHNyYzAgPSBfX2xzeF92bGQoX3NyYywgMCk7Cj4+ ICsgICAgRFVQMl9BUkcyKF9fbHN4X3ZsZHgsIF9zcmMsIHNyY19zdHJpZGUsIF9zcmMsIHNyY19z dHJpZGUyLCBzcmMxLAo+PiBzcmMyKTsKPj4gKyAgICBzcmMzID0gX19sc3hfdmxkeChfc3JjLCBz cmNfc3RyaWRlMyk7Cj4+ICsgICAgX3NyYyArPSBzcmNfc3RyaWRlNDsKPj4gKyAgICBEVVA0X0FS RzIoX19sc3hfdnhvcmlfYiwgc3JjMCwgMTI4LCBzcmMxLCAxMjgsIHNyYzIsIDEyOCwgc3JjMywK Pj4gMTI4LAo+PiArICAgICAgICAgICAgICBzcmMwLCBzcmMxLCBzcmMyLCBzcmMzKTsKPj4gKyAg ICBIT1JJWl84VEFQXzRXSURfNFZFQ1NfRklMVChzcmMwLCBzcmMxLCBzcmMyLCBzcmMzLCBtYXNr MCwgbWFzazEsCj4+IG1hc2syLAo+PiArICAgICAgICAgICAgICAgICAgICAgbWFzazMsIGZpbHRl cjAsIGZpbHRlcjEsIGZpbHRlcjIsIGZpbHRlcjMsIG91dDAsCj4+IG91dDEpOwo+PiArICAgIHNy YzAgPSBfX2xzeF92bGQoX3NyYywgMCk7Cj4+ICsgICAgRFVQMl9BUkcyKF9fbHN4X3ZsZHgsIF9z cmMsIHNyY19zdHJpZGUsIF9zcmMsIHNyY19zdHJpZGUyLCBzcmMxLAo+PiBzcmMyKTsKPj4gKyAg ICBzcmMzID0gX19sc3hfdmxkeChfc3JjLCBzcmNfc3RyaWRlMyk7Cj4+ICsgICAgRFVQNF9BUkcy KF9fbHN4X3Z4b3JpX2IsIHNyYzAsIDEyOCwgc3JjMSwgMTI4LCBzcmMyLCAxMjgsIHNyYzMsCj4+ IDEyOCwKPj4gKyAgICAgICAgICAgICAgc3JjMCwgc3JjMSwgc3JjMiwgc3JjMyk7Cj4+ICsgICAg SE9SSVpfOFRBUF80V0lEXzRWRUNTX0ZJTFQoc3JjMCwgc3JjMSwgc3JjMiwgc3JjMywgbWFzazAs IG1hc2sxLAo+PiBtYXNrMiwKPj4gKyAgICAgICAgICAgICAgICAgICAgIG1hc2szLCBmaWx0ZXIw LCBmaWx0ZXIxLCBmaWx0ZXIyLCBmaWx0ZXIzLCBvdXQyLAo+PiBvdXQzKTsKPj4gKyAgICBEVVAy X0FSRzMoX19sc3hfdnNzcmFybmlfYl9oLCBvdXQxLCBvdXQwLCA3LCBvdXQzLCBvdXQyLCA3LCBv dXQwLAo+PiBvdXQxKTsKPj4gKyAgICBEVVAyX0FSRzIoX19sc3hfdnhvcmlfYiwgb3V0MCwgMTI4 LCBvdXQxLCAxMjgsIG91dDAsIG91dDEpOwo+PiArICAgIF9fbHN4X3ZzdGVsbV93KG91dDAsIGRz dCwgMCwgMCk7Cj4+ICsgICAgZHN0ICs9IGRzdF9zdHJpZGU7Cj4+ICsgICAgX19sc3hfdnN0ZWxt X3cob3V0MCwgZHN0LCAwLCAxKTsKPj4gKyAgICBkc3QgKz0gZHN0X3N0cmlkZTsKPj4gKyAgICBf X2xzeF92c3RlbG1fdyhvdXQwLCBkc3QsIDAsIDIpOwo+PiArICAgIGRzdCArPSBkc3Rfc3RyaWRl Owo+PiArICAgIF9fbHN4X3ZzdGVsbV93KG91dDAsIGRzdCwgMCwgMyk7Cj4+ICsgICAgZHN0ICs9 IGRzdF9zdHJpZGU7Cj4+ICsgICAgX19sc3hfdnN0ZWxtX3cob3V0MSwgZHN0LCAwLCAwKTsKPj4g KyAgICBkc3QgKz0gZHN0X3N0cmlkZTsKPj4gKyAgICBfX2xzeF92c3RlbG1fdyhvdXQxLCBkc3Qs IDAsIDEpOwo+PiArICAgIGRzdCArPSBkc3Rfc3RyaWRlOwo+PiArICAgIF9fbHN4X3ZzdGVsbV93 KG91dDEsIGRzdCwgMCwgMik7Cj4+ICsgICAgZHN0ICs9IGRzdF9zdHJpZGU7Cj4+ICsgICAgX19s c3hfdnN0ZWxtX3cob3V0MSwgZHN0LCAwLCAzKTsKPj4gK30KPj4gKwo+PiArc3RhdGljIHZvaWQg Y29tbW9uX2h6Xzh0XzR3X2xzeChjb25zdCB1aW50OF90ICpzcmMsIGludDMyX3Qgc3JjX3N0cmlk ZSwKPj4gKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdWludDhfdCAqZHN0LCBpbnQz Ml90IGRzdF9zdHJpZGUsCj4+ICsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0 IGludDhfdCAqZmlsdGVyLCBpbnQzMl90IGhlaWdodCkKPj4gK3sKPj4gKyAgICBpZiAoaGVpZ2h0 ID09IDQpIHsKPj4gKyAgICAgICAgY29tbW9uX2h6Xzh0XzR4NF9sc3goc3JjLCBzcmNfc3RyaWRl LCBkc3QsIGRzdF9zdHJpZGUsIGZpbHRlcik7Cj4+ICsgICAgfSBlbHNlIGlmIChoZWlnaHQgPT0g OCkgewo+PiArICAgICAgICBjb21tb25faHpfOHRfNHg4X2xzeChzcmMsIHNyY19zdHJpZGUsIGRz dCwgZHN0X3N0cmlkZSwgZmlsdGVyKTsKPj4gKyAgICB9Cj4+ICt9Cj4+ICsKPj4gK3N0YXRpYyB2 b2lkIGNvbW1vbl9oel84dF84eDRfbHN4KGNvbnN0IHVpbnQ4X3QgKnNyYywgaW50MzJfdAo+PiBz cmNfc3RyaWRlLAo+PiArICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdWludDhfdCAq ZHN0LCBpbnQzMl90IGRzdF9zdHJpZGUsCj4+ICsgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICBjb25zdCBpbnQ4X3QgKmZpbHRlcikKPj4gK3sKPj4gKyAgICBfX20xMjhpIHNyYzAsIHNy YzEsIHNyYzIsIHNyYzM7Cj4+ICsgICAgX19tMTI4aSBmaWx0ZXIwLCBmaWx0ZXIxLCBmaWx0ZXIy LCBmaWx0ZXIzOwo+PiArICAgIF9fbTEyOGkgbWFzazAsIG1hc2sxLCBtYXNrMiwgbWFzazM7Cj4+ ICsgICAgX19tMTI4aSBvdXQwLCBvdXQxLCBvdXQyLCBvdXQzOwo+PiArCj4+ICsgICAgbWFzazAg PSBfX2xzeF92bGQobWNfZmlsdF9tYXNrX2FyciwgMCk7Cj4+ICsgICAgc3JjIC09IDM7Cj4+ICsg ICAgRFVQMl9BUkcyKF9fbHN4X3ZhZGRpX2J1LCBtYXNrMCwgMiwgbWFzazAsIDQsIG1hc2sxLCBt YXNrMik7Cj4+ICsgICAgbWFzazMgPSBfX2xzeF92YWRkaV9idShtYXNrMCwgNik7Cj4+ICsgICAg RFVQNF9BUkcyKF9fbHN4X3ZsZHJlcGxfaCwgZmlsdGVyLCAwLCBmaWx0ZXIsIDIsIGZpbHRlciwg NCwKPj4gZmlsdGVyLCA2LAo+PiArICAgICAgICAgICAgICBmaWx0ZXIwLCBmaWx0ZXIxLCBmaWx0 ZXIyLCBmaWx0ZXIzKTsKPj4gKwo+PiArICAgIExTWF9MRF80KHNyYywgc3JjX3N0cmlkZSwgc3Jj MCwgc3JjMSwgc3JjMiwgc3JjMyk7Cj4+ICsgICAgRFVQNF9BUkcyKF9fbHN4X3Z4b3JpX2IsIHNy YzAsIDEyOCwgc3JjMSwgMTI4LCBzcmMyLCAxMjgsIHNyYzMsCj4+IDEyOCwKPj4gKyAgICAgICAg ICAgICAgc3JjMCwgc3JjMSwgc3JjMiwgc3JjMyk7Cj4+ICsgICAgSE9SSVpfOFRBUF84V0lEXzRW RUNTX0ZJTFQoc3JjMCwgc3JjMSwgc3JjMiwgc3JjMywgbWFzazAsIG1hc2sxLAo+PiBtYXNrMiwK Pj4gKyAgICAgICAgIG1hc2szLCBmaWx0ZXIwLCBmaWx0ZXIxLCBmaWx0ZXIyLCBmaWx0ZXIzLCBv dXQwLCBvdXQxLCBvdXQyLAo+PiBvdXQzKTsKPj4gKyAgICBEVVAyX0FSRzMoX19sc3hfdnNzcmFy bmlfYl9oLCBvdXQxLCBvdXQwLCA3LCBvdXQzLCBvdXQyLCA3LCBvdXQwLAo+PiBvdXQxKTsKPj4g KyAgICBEVVAyX0FSRzIoX19sc3hfdnhvcmlfYiwgb3V0MCwgMTI4LCBvdXQxLCAxMjgsIG91dDAs IG91dDEpOwo+PiArICAgIF9fbHN4X3ZzdGVsbV9kKG91dDAsIGRzdCwgMCwgMCk7Cj4+ICsgICAg ZHN0ICs9IGRzdF9zdHJpZGU7Cj4+ICsgICAgX19sc3hfdnN0ZWxtX2Qob3V0MCwgZHN0LCAwLCAx KTsKPj4gKyAgICBkc3QgKz0gZHN0X3N0cmlkZTsKPj4gKyAgICBfX2xzeF92c3RlbG1fZChvdXQx LCBkc3QsIDAsIDApOwo+PiArICAgIGRzdCArPSBkc3Rfc3RyaWRlOwo+PiArICAgIF9fbHN4X3Zz dGVsbV9kKG91dDEsIGRzdCwgMCwgMSk7Cj4+ICt9Cj4+ICsKPj4gK3N0YXRpYyB2b2lkIGNvbW1v bl9oel84dF84eDhtdWx0X2xzeChjb25zdCB1aW50OF90ICpzcmMsIGludDMyX3QKPj4gc3JjX3N0 cmlkZSwKPj4gKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB1aW50OF90ICpk c3QsIGludDMyX3QgZHN0X3N0cmlkZSwKPj4gKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICBjb25zdCBpbnQ4X3QgKmZpbHRlciwgaW50MzJfdAo+PiBoZWlnaHQpCj4+ICt7Cj4+ ICsgICAgdWludDMyX3QgbG9vcF9jbnQgPSBoZWlnaHQgPj4gMjsKPj4gKyAgICBpbnQzMl90IHNy Y19zdHJpZGUyID0gc3JjX3N0cmlkZSA8PCAxOwo+PiArICAgIGludDMyX3Qgc3JjX3N0cmlkZTMg PSBzcmNfc3RyaWRlICsgc3JjX3N0cmlkZTI7Cj4+ICsgICAgaW50MzJfdCBzcmNfc3RyaWRlNCA9 IHNyY19zdHJpZGUyIDw8IDE7Cj4+ICsgICAgX19tMTI4aSBzcmMwLCBzcmMxLCBzcmMyLCBzcmMz Owo+PiArICAgIF9fbTEyOGkgZmlsdGVyMCwgZmlsdGVyMSwgZmlsdGVyMiwgZmlsdGVyMzsKPj4g KyAgICBfX20xMjhpIG1hc2swLCBtYXNrMSwgbWFzazIsIG1hc2szOwo+PiArICAgIF9fbTEyOGkg b3V0MCwgb3V0MSwgb3V0Miwgb3V0MzsKPj4gKyAgICB1aW50OF90KiBfc3JjID0gKHVpbnQ4X3Qq KXNyYyAtIDM7Cj4+ICsKPj4gKyAgICBtYXNrMCA9IF9fbHN4X3ZsZChtY19maWx0X21hc2tfYXJy LCAwKTsKPj4gKyAgICBEVVAyX0FSRzIoX19sc3hfdmFkZGlfYnUsIG1hc2swLCAyLCBtYXNrMCwg NCwgbWFzazEsIG1hc2syKTsKPj4gKyAgICBtYXNrMyA9IF9fbHN4X3ZhZGRpX2J1KG1hc2swLCA2 KTsKPj4gKyAgICBEVVA0X0FSRzIoX19sc3hfdmxkcmVwbF9oLCBmaWx0ZXIsIDAsIGZpbHRlciwg MiwgZmlsdGVyLCA0LAo+PiBmaWx0ZXIsIDYsCj4+ICsgICAgICAgICAgICAgIGZpbHRlcjAsIGZp bHRlcjEsIGZpbHRlcjIsIGZpbHRlcjMpOwo+PiArCj4+ICsgICAgZm9yICg7IGxvb3BfY250LS07 KSB7Cj4+ICsgICAgICAgIHNyYzAgPSBfX2xzeF92bGQoX3NyYywgMCk7Cj4+ICsgICAgICAgIERV UDJfQVJHMihfX2xzeF92bGR4LCBfc3JjLCBzcmNfc3RyaWRlLCBfc3JjLCBzcmNfc3RyaWRlMiwK Pj4gc3JjMSwgc3JjMik7Cj4+ICsgICAgICAgIHNyYzMgPSBfX2xzeF92bGR4KF9zcmMsIHNyY19z dHJpZGUzKTsKPj4gKyAgICAgICAgX3NyYyArPSBzcmNfc3RyaWRlNDsKPj4gKyAgICAgICAgRFVQ NF9BUkcyKF9fbHN4X3Z4b3JpX2IsIHNyYzAsIDEyOCwgc3JjMSwgMTI4LCBzcmMyLCAxMjgsCj4+ IHNyYzMsIDEyOCwKPj4gKyAgICAgICAgICAgICAgICAgIHNyYzAsIHNyYzEsIHNyYzIsIHNyYzMp Owo+PiArICAgICAgICBIT1JJWl84VEFQXzhXSURfNFZFQ1NfRklMVChzcmMwLCBzcmMxLCBzcmMy LCBzcmMzLCBtYXNrMCwKPj4gbWFzazEsIG1hc2syLAo+PiArICAgICAgICAgICAgIG1hc2szLCBm aWx0ZXIwLCBmaWx0ZXIxLCBmaWx0ZXIyLCBmaWx0ZXIzLCBvdXQwLCBvdXQxLAo+PiBvdXQyLCBv dXQzKTsKPj4gKyAgICAgICAgRFVQMl9BUkczKF9fbHN4X3Zzc3Jhcm5pX2JfaCwgb3V0MSwgb3V0 MCwgNywgb3V0Mywgb3V0MiwgNywKPj4gb3V0MCwgb3V0MSk7Cj4+ICsgICAgICAgIERVUDJfQVJH MihfX2xzeF92eG9yaV9iLCBvdXQwLCAxMjgsIG91dDEsIDEyOCwgb3V0MCwgb3V0MSk7Cj4+ICsg ICAgICAgIF9fbHN4X3ZzdGVsbV9kKG91dDAsIGRzdCwgMCwgMCk7Cj4+ICsgICAgICAgIGRzdCAr PSBkc3Rfc3RyaWRlOwo+PiArICAgICAgICBfX2xzeF92c3RlbG1fZChvdXQwLCBkc3QsIDAsIDEp Owo+PiArICAgICAgICBkc3QgKz0gZHN0X3N0cmlkZTsKPj4gKyAgICAgICAgX19sc3hfdnN0ZWxt X2Qob3V0MSwgZHN0LCAwLCAwKTsKPj4gKyAgICAgICAgZHN0ICs9IGRzdF9zdHJpZGU7Cj4+ICsg ICAgICAgIF9fbHN4X3ZzdGVsbV9kKG91dDEsIGRzdCwgMCwgMSk7Cj4+ICsgICAgICAgIGRzdCAr PSBkc3Rfc3RyaWRlOwo+PiArICAgIH0KPj4gK30KPj4gKwo+PiArc3RhdGljIHZvaWQgY29tbW9u X2h6Xzh0Xzh3X2xzeChjb25zdCB1aW50OF90ICpzcmMsIGludDMyX3Qgc3JjX3N0cmlkZSwKPj4g KyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdWludDhfdCAqZHN0LCBpbnQzMl90IGRz dF9zdHJpZGUsCj4+ICsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IGludDhf dCAqZmlsdGVyLCBpbnQzMl90IGhlaWdodCkKPj4gK3sKPj4gKyAgICBpZiAoaGVpZ2h0ID09IDQp IHsKPj4gKyAgICAgICAgY29tbW9uX2h6Xzh0Xzh4NF9sc3goc3JjLCBzcmNfc3RyaWRlLCBkc3Qs IGRzdF9zdHJpZGUsIGZpbHRlcik7Cj4+ICsgICAgfSBlbHNlIHsKPj4gKyAgICAgICAgY29tbW9u X2h6Xzh0Xzh4OG11bHRfbHN4KHNyYywgc3JjX3N0cmlkZSwgZHN0LCBkc3Rfc3RyaWRlLAo+PiAr ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZmlsdGVyLCBoZWlnaHQpOwo+PiArICAg IH0KPj4gK30KPj4gKwo+PiArc3RhdGljIHZvaWQgY29tbW9uX2h6Xzh0XzE2d19sc3goY29uc3Qg dWludDhfdCAqc3JjLCBpbnQzMl90Cj4+IHNyY19zdHJpZGUsCj4+ICsgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICB1aW50OF90ICpkc3QsIGludDMyX3QgZHN0X3N0cmlkZSwKPj4gKyAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IGludDhfdCAqZmlsdGVyLCBpbnQz Ml90IGhlaWdodCkKPj4gK3sKPj4gKyAgICB1aW50MzJfdCBsb29wX2NudCA9IGhlaWdodCA+PiAx Owo+PiArICAgIGludDMyX3Qgc3RyaWRlID0gc3JjX3N0cmlkZSA8PCAxOwo+PiArICAgIF9fbTEy OGkgc3JjMCwgc3JjMSwgc3JjMiwgc3JjMzsKPj4gKyAgICBfX20xMjhpIGZpbHRlcjAsIGZpbHRl cjEsIGZpbHRlcjIsIGZpbHRlcjM7Cj4+ICsgICAgX19tMTI4aSBtYXNrMCwgbWFzazEsIG1hc2sy LCBtYXNrMzsKPj4gKyAgICBfX20xMjhpIG91dDAsIG91dDEsIG91dDIsIG91dDM7Cj4+ICsKPj4g KyAgICBtYXNrMCA9IF9fbHN4X3ZsZChtY19maWx0X21hc2tfYXJyLCAwKTsKPj4gKyAgICBzcmMg LT0gMzsKPj4gKyAgICBEVVAyX0FSRzIoX19sc3hfdmFkZGlfYnUsIG1hc2swLCAyLCBtYXNrMCwg NCwgbWFzazEsIG1hc2syKTsKPj4gKyAgICBtYXNrMyA9IF9fbHN4X3ZhZGRpX2J1KG1hc2swLCA2 KTsKPj4gKyAgICBEVVA0X0FSRzIoX19sc3hfdmxkcmVwbF9oLCBmaWx0ZXIsIDAsIGZpbHRlciwg MiwgZmlsdGVyLCA0LAo+PiBmaWx0ZXIsIDYsCj4+ICsgICAgICAgICAgICAgIGZpbHRlcjAsIGZp bHRlcjEsIGZpbHRlcjIsIGZpbHRlcjMpOwo+PiArCj4+ICsgICAgZm9yICg7IGxvb3BfY250LS07 KSB7Cj4+ICsgICAgICAgIGNvbnN0IHVpbnQ4X3QqIF9zcmMgPSBzcmMgKyBzcmNfc3RyaWRlOwo+ PiArICAgICAgICBEVVAyX0FSRzIoX19sc3hfdmxkLCBzcmMsIDAsIF9zcmMsIDAsIHNyYzAsIHNy YzIpOwo+PiArICAgICAgICBEVVAyX0FSRzIoX19sc3hfdmxkLCBzcmMsIDgsIF9zcmMsIDgsIHNy YzEsIHNyYzMpOwo+PiArICAgICAgICBEVVA0X0FSRzIoX19sc3hfdnhvcmlfYiwgc3JjMCwgMTI4 LCBzcmMxLCAxMjgsIHNyYzIsIDEyOCwKPj4gc3JjMywgMTI4LAo+PiArICAgICAgICAgICAgICAg ICAgc3JjMCwgc3JjMSwgc3JjMiwgc3JjMyk7Cj4+ICsgICAgICAgIEhPUklaXzhUQVBfOFdJRF80 VkVDU19GSUxUKHNyYzAsIHNyYzEsIHNyYzIsIHNyYzMsIG1hc2swLAo+PiBtYXNrMSwgbWFzazIs Cj4+ICsgICAgICAgICAgICAgbWFzazMsIGZpbHRlcjAsIGZpbHRlcjEsIGZpbHRlcjIsIGZpbHRl cjMsIG91dDAsIG91dDEsCj4+IG91dDIsIG91dDMpOwo+PiArICAgICAgICBEVVAyX0FSRzMoX19s c3hfdnNzcmFybmlfYl9oLCBvdXQxLCBvdXQwLCA3LCBvdXQzLCBvdXQyLCA3LAo+PiBvdXQwLCBv dXQxKTsKPj4gKyAgICAgICAgRFVQMl9BUkcyKF9fbHN4X3Z4b3JpX2IsIG91dDAsIDEyOCwgb3V0 MSwgMTI4LCBvdXQwLCBvdXQxKTsKPj4gKyAgICAgICAgX19sc3hfdnN0KG91dDAsIGRzdCwgMCk7 Cj4+ICsgICAgICAgIGRzdCArPSBkc3Rfc3RyaWRlOwo+PiArICAgICAgICBfX2xzeF92c3Qob3V0 MSwgZHN0LCAwKTsKPj4gKyAgICAgICAgZHN0ICs9IGRzdF9zdHJpZGU7Cj4+ICsgICAgICAgIHNy YyArPSBzdHJpZGU7Cj4+ICsgICAgfQo+PiArfQo+PiArCj4+ICtzdGF0aWMgdm9pZCBjb21tb25f aHpfOHRfMzJ3X2xzeChjb25zdCB1aW50OF90ICpzcmMsIGludDMyX3QKPj4gc3JjX3N0cmlkZSwK Pj4gKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHVpbnQ4X3QgKmRzdCwgaW50MzJf dCBkc3Rfc3RyaWRlLAo+PiArICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3Qg aW50OF90ICpmaWx0ZXIsIGludDMyX3QgaGVpZ2h0KQo+PiArewo+PiArICAgIHVpbnQzMl90IGxv b3BfY250ID0gaGVpZ2h0ID4+IDE7Cj4+ICsgICAgX19tMTI4aSBzcmMwLCBzcmMxLCBzcmMyLCBz cmMzOwo+PiArICAgIF9fbTEyOGkgZmlsdGVyMCwgZmlsdGVyMSwgZmlsdGVyMiwgZmlsdGVyMzsK Pj4gKyAgICBfX20xMjhpIG1hc2swLCBtYXNrMSwgbWFzazIsIG1hc2szOwo+PiArICAgIF9fbTEy OGkgb3V0MCwgb3V0MSwgb3V0Miwgb3V0MzsKPj4gKyAgICBfX20xMjhpIHNodWZmID0gezB4MEYw RTBEMEMwQjBBMDkwOCwgMHgxNzE2MTUxNDEzMTIxMTEwfTsKPj4gKwo+PiArICAgIG1hc2swID0g X19sc3hfdmxkKG1jX2ZpbHRfbWFza19hcnIsIDApOwo+PiArICAgIHNyYyAtPSAzOwo+PiArICAg IERVUDJfQVJHMihfX2xzeF92YWRkaV9idSwgbWFzazAsIDIsIG1hc2swLCA0LCBtYXNrMSwgbWFz azIpOwo+PiArICAgIG1hc2szID0gX19sc3hfdmFkZGlfYnUobWFzazAsIDYpOwo+PiArICAgIERV UDRfQVJHMihfX2xzeF92bGRyZXBsX2gsIGZpbHRlciwgMCwgZmlsdGVyLCAyLCBmaWx0ZXIsIDQs Cj4+IGZpbHRlciwgNiwKPj4gKyAgICAgICAgICAgICAgZmlsdGVyMCwgZmlsdGVyMSwgZmlsdGVy MiwgZmlsdGVyMyk7Cj4+ICsKPj4gKyAgICBmb3IgKDsgbG9vcF9jbnQtLTspIHsKPj4gKyAgICAg ICAgRFVQMl9BUkcyKF9fbHN4X3ZsZCwgc3JjLCAwLCBzcmMsIDE2LCBzcmMwLCBzcmMyKTsKPj4g KyAgICAgICAgc3JjMyA9IF9fbHN4X3ZsZChzcmMsIDI0KTsKPj4gKyAgICAgICAgc3JjMSA9IF9f bHN4X3ZzaHVmX2Ioc3JjMiwgc3JjMCwgc2h1ZmYpOwo+PiArICAgICAgICBzcmMgKz0gc3JjX3N0 cmlkZTsKPj4gKyAgICAgICAgRFVQNF9BUkcyKF9fbHN4X3Z4b3JpX2IsIHNyYzAsIDEyOCwgc3Jj MSwgMTI4LCBzcmMyLCAxMjgsCj4+IHNyYzMsIDEyOCwKPj4gKyAgICAgICAgICAgICAgICAgIHNy YzAsIHNyYzEsIHNyYzIsIHNyYzMpOwo+PiArICAgICAgICBIT1JJWl84VEFQXzhXSURfNFZFQ1Nf RklMVChzcmMwLCBzcmMxLCBzcmMyLCBzcmMzLCBtYXNrMCwKPj4gbWFzazEsIG1hc2syLAo+PiAr ICAgICAgICAgICAgIG1hc2szLCBmaWx0ZXIwLCBmaWx0ZXIxLCBmaWx0ZXIyLCBmaWx0ZXIzLCBv dXQwLCBvdXQxLAo+PiBvdXQyLCBvdXQzKTsKPj4gKyAgICAgICAgRFVQMl9BUkczKF9fbHN4X3Zz c3Jhcm5pX2JfaCwgb3V0MSwgb3V0MCwgNywgb3V0Mywgb3V0MiwgNywKPj4gb3V0MCwgb3V0MSk7 Cj4+ICsgICAgICAgIERVUDJfQVJHMihfX2xzeF92eG9yaV9iLCBvdXQwLCAxMjgsIG91dDEsIDEy OCwgb3V0MCwgb3V0MSk7Cj4+ICsgICAgICAgIF9fbHN4X3ZzdChvdXQwLCBkc3QsIDApOwo+PiAr ICAgICAgICBfX2xzeF92c3Qob3V0MSwgZHN0LCAxNik7Cj4+ICsKPj4gKyAgICAgICAgRFVQMl9B UkcyKF9fbHN4X3ZsZCwgc3JjLCAwLCBzcmMsIDE2LCBzcmMwLCBzcmMyKTsKPj4gKyAgICAgICAg c3JjMyA9IF9fbHN4X3ZsZChzcmMsIDI0KTsKPj4gKyAgICAgICAgc3JjMSA9IF9fbHN4X3ZzaHVm X2Ioc3JjMiwgc3JjMCwgc2h1ZmYpOwo+PiArICAgICAgICBzcmMgKz0gc3JjX3N0cmlkZTsKPj4g Kwo+PiArICAgICAgICBkc3QgKz0gZHN0X3N0cmlkZTsKPj4gKyAgICAgICAgRFVQNF9BUkcyKF9f bHN4X3Z4b3JpX2IsIHNyYzAsIDEyOCwgc3JjMSwgMTI4LCBzcmMyLCAxMjgsCj4+IHNyYzMsIDEy OCwKPj4gKyAgICAgICAgICAgICAgICAgIHNyYzAsIHNyYzEsIHNyYzIsIHNyYzMpOwo+PiArICAg ICAgICBIT1JJWl84VEFQXzhXSURfNFZFQ1NfRklMVChzcmMwLCBzcmMxLCBzcmMyLCBzcmMzLCBt YXNrMCwKPj4gbWFzazEsIG1hc2syLAo+PiArICAgICAgICAgICAgIG1hc2szLCBmaWx0ZXIwLCBm aWx0ZXIxLCBmaWx0ZXIyLCBmaWx0ZXIzLCBvdXQwLCBvdXQxLAo+PiBvdXQyLCBvdXQzKTsKPj4g KyAgICAgICAgRFVQMl9BUkczKF9fbHN4X3Zzc3Jhcm5pX2JfaCwgb3V0MSwgb3V0MCwgNywgb3V0 Mywgb3V0MiwgNywKPj4gb3V0MCwgb3V0MSk7Cj4+ICsgICAgICAgIERVUDJfQVJHMihfX2xzeF92 eG9yaV9iLCBvdXQwLCAxMjgsIG91dDEsIDEyOCwgb3V0MCwgb3V0MSk7Cj4+ICsgICAgICAgIF9f bHN4X3ZzdChvdXQwLCBkc3QsIDApOwo+PiArICAgICAgICBfX2xzeF92c3Qob3V0MSwgZHN0LCAx Nik7Cj4+ICsgICAgICAgIGRzdCArPSBkc3Rfc3RyaWRlOwo+PiArICAgIH0KPj4gK30KPj4gKwo+ PiArc3RhdGljIHZvaWQgY29tbW9uX2h6Xzh0XzY0d19sc3goY29uc3QgdWludDhfdCAqc3JjLCBp bnQzMl90Cj4+IHNyY19zdHJpZGUsCj4+ICsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICB1aW50OF90ICpkc3QsIGludDMyX3QgZHN0X3N0cmlkZSwKPj4gKyAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIGNvbnN0IGludDhfdCAqZmlsdGVyLCBpbnQzMl90IGhlaWdodCkKPj4g K3sKPj4gKyAgICBpbnQzMl90IGxvb3BfY250ID0gaGVpZ2h0Owo+PiArICAgIF9fbTEyOGkgc3Jj MCwgc3JjMSwgc3JjMiwgc3JjMzsKPj4gKyAgICBfX20xMjhpIGZpbHRlcjAsIGZpbHRlcjEsIGZp bHRlcjIsIGZpbHRlcjM7Cj4+ICsgICAgX19tMTI4aSBtYXNrMCwgbWFzazEsIG1hc2syLCBtYXNr MzsKPj4gKyAgICBfX20xMjhpIG91dDAsIG91dDEsIG91dDIsIG91dDM7Cj4+ICsgICAgX19tMTI4 aSBzaHVmZiA9IHsweDBGMEUwRDBDMEIwQTA5MDgsIDB4MTcxNjE1MTQxMzEyMTExMH07Cj4+ICsK Pj4gKyAgICBtYXNrMCA9IF9fbHN4X3ZsZChtY19maWx0X21hc2tfYXJyLCAwKTsKPj4gKyAgICBz cmMgLT0gMzsKPj4gKyAgICBEVVAyX0FSRzIoX19sc3hfdmFkZGlfYnUsIG1hc2swLCAyLCBtYXNr MCwgNCwgbWFzazEsIG1hc2syKTsKPj4gKyAgICBtYXNrMyA9IF9fbHN4X3ZhZGRpX2J1KG1hc2sw LCA2KTsKPj4gKyAgICBEVVA0X0FSRzIoX19sc3hfdmxkcmVwbF9oLCBmaWx0ZXIsIDAsIGZpbHRl ciwgMiwgZmlsdGVyLCA0LAo+PiBmaWx0ZXIsIDYsCj4+ICsgICAgICAgICAgICAgIGZpbHRlcjAs IGZpbHRlcjEsIGZpbHRlcjIsIGZpbHRlcjMpOwo+PiArCj4+ICsgICAgZm9yICg7IGxvb3BfY250 LS07KSB7Cj4+ICsgICAgICAgIERVUDJfQVJHMihfX2xzeF92bGQsIHNyYywgMCwgc3JjLCAxNiwg c3JjMCwgc3JjMik7Cj4+ICsgICAgICAgIHNyYzMgPSBfX2xzeF92bGQoc3JjLCAyNCk7Cj4+ICsg ICAgICAgIHNyYzEgPSBfX2xzeF92c2h1Zl9iKHNyYzIsIHNyYzAsIHNodWZmKTsKPj4gKyAgICAg ICAgRFVQNF9BUkcyKF9fbHN4X3Z4b3JpX2IsIHNyYzAsIDEyOCwgc3JjMSwgMTI4LCBzcmMyLCAx MjgsCj4+IHNyYzMsIDEyOCwKPj4gKyAgICAgICAgICAgICAgICAgIHNyYzAsIHNyYzEsIHNyYzIs IHNyYzMpOwo+PiArICAgICAgICBIT1JJWl84VEFQXzhXSURfNFZFQ1NfRklMVChzcmMwLCBzcmMx LCBzcmMyLCBzcmMzLCBtYXNrMCwKPj4gbWFzazEsIG1hc2syLAo+PiArICAgICAgICAgICAgIG1h c2szLCBmaWx0ZXIwLCBmaWx0ZXIxLCBmaWx0ZXIyLCBmaWx0ZXIzLCBvdXQwLCBvdXQxLAo+PiBv dXQyLCBvdXQzKTsKPj4gKyAgICAgICAgRFVQMl9BUkczKF9fbHN4X3Zzc3Jhcm5pX2JfaCwgb3V0 MSwgb3V0MCwgNywgb3V0Mywgb3V0MiwgNywKPj4gb3V0MCwgb3V0MSk7Cj4+ICsgICAgICAgIERV UDJfQVJHMihfX2xzeF92eG9yaV9iLCBvdXQwLCAxMjgsIG91dDEsIDEyOCwgb3V0MCwgb3V0MSk7 Cj4+ICsgICAgICAgIF9fbHN4X3ZzdChvdXQwLCBkc3QsIDApOwo+PiArICAgICAgICBfX2xzeF92 c3Qob3V0MSwgZHN0LCAxNik7Cj4+ICsKPj4gKyAgICAgICAgRFVQMl9BUkcyKF9fbHN4X3ZsZCwg c3JjLCAzMiwgc3JjLCA0OCwgc3JjMCwgc3JjMik7Cj4+ICsgICAgICAgIHNyYzMgPSBfX2xzeF92 bGQoc3JjLCA1Nik7Cj4+ICsgICAgICAgIHNyYzEgPSBfX2xzeF92c2h1Zl9iKHNyYzIsIHNyYzAs IHNodWZmKTsKPj4gKyAgICAgICAgRFVQNF9BUkcyKF9fbHN4X3Z4b3JpX2IsIHNyYzAsIDEyOCwg c3JjMSwgMTI4LCBzcmMyLCAxMjgsCj4+IHNyYzMsIDEyOCwKPj4gKyAgICAgICAgICAgICAgICAg IHNyYzAsIHNyYzEsIHNyYzIsIHNyYzMpOwo+PiArICAgICAgICBIT1JJWl84VEFQXzhXSURfNFZF Q1NfRklMVChzcmMwLCBzcmMxLCBzcmMyLCBzcmMzLCBtYXNrMCwKPj4gbWFzazEsIG1hc2syLAo+ PiArICAgICAgICAgICAgIG1hc2szLCBmaWx0ZXIwLCBmaWx0ZXIxLCBmaWx0ZXIyLCBmaWx0ZXIz LCBvdXQwLCBvdXQxLAo+PiBvdXQyLCBvdXQzKTsKPj4gKyAgICAgICAgRFVQMl9BUkczKF9fbHN4 X3Zzc3Jhcm5pX2JfaCwgb3V0MSwgb3V0MCwgNywgb3V0Mywgb3V0MiwgNywKPj4gb3V0MCwgb3V0 MSk7Cj4+ICsgICAgICAgIERVUDJfQVJHMihfX2xzeF92eG9yaV9iLCBvdXQwLCAxMjgsIG91dDEs IDEyOCwgb3V0MCwgb3V0MSk7Cj4+ICsgICAgICAgIF9fbHN4X3ZzdChvdXQwLCBkc3QsIDMyKTsK Pj4gKyAgICAgICAgX19sc3hfdnN0KG91dDEsIGRzdCwgNDgpOwo+PiArICAgICAgICBzcmMgKz0g c3JjX3N0cmlkZTsKPj4gKyAgICAgICAgZHN0ICs9IGRzdF9zdHJpZGU7Cj4+ICsgICAgfQo+PiAr fQo+PiArCj4+ICtzdGF0aWMgdm9pZCBjb21tb25fdnRfOHRfNHdfbHN4KGNvbnN0IHVpbnQ4X3Qg KnNyYywgaW50MzJfdCBzcmNfc3RyaWRlLAo+PiArICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICB1aW50OF90ICpkc3QsIGludDMyX3QgZHN0X3N0cmlkZSwKPj4gKyAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgY29uc3QgaW50OF90ICpmaWx0ZXIsIGludDMyX3QgaGVpZ2h0KQo+ PiArewo+PiArICAgIHVpbnQzMl90IGxvb3BfY250ID0gaGVpZ2h0ID4+IDI7Cj4+ICsgICAgaW50 MzJfdCBzcmNfc3RyaWRlMiA9IHNyY19zdHJpZGUgPDwgMTsKPj4gKyAgICBpbnQzMl90IHNyY19z dHJpZGUzID0gc3JjX3N0cmlkZSArIHNyY19zdHJpZGUyOwo+PiArICAgIGludDMyX3Qgc3JjX3N0 cmlkZTQgPSBzcmNfc3RyaWRlMiA8PCAxOwo+PiArICAgIF9fbTEyOGkgc3JjMCwgc3JjMSwgc3Jj Miwgc3JjMywgc3JjNCwgc3JjNSwgc3JjNiwgc3JjNywgc3JjOCwKPj4gc3JjOSwgc3JjMTA7Cj4+ ICsgICAgX19tMTI4aSB0bXAwLCB0bXAxLCB0bXAyLCB0bXAzLCB0bXA0LCB0bXA1Owo+PiArICAg IF9fbTEyOGkgcmVnMCwgcmVnMSwgcmVnMiwgcmVnMywgcmVnNDsKPj4gKyAgICBfX20xMjhpIGZp bHRlcjAsIGZpbHRlcjEsIGZpbHRlcjIsIGZpbHRlcjM7Cj4+ICsgICAgX19tMTI4aSBvdXQwLCBv dXQxOwo+PiArICAgIHVpbnQ4X3QqIF9zcmMgPSAodWludDhfdCopc3JjIC0gc3JjX3N0cmlkZTM7 Cj4+ICsKPj4gKyAgICBEVVA0X0FSRzIoX19sc3hfdmxkcmVwbF9oLCBmaWx0ZXIsIDAsIGZpbHRl ciwgMiwgZmlsdGVyLCA0LAo+PiBmaWx0ZXIsIDYsCj4+ICsgICAgICAgICAgICAgIGZpbHRlcjAs IGZpbHRlcjEsIGZpbHRlcjIsIGZpbHRlcjMpOwo+PiArICAgIHNyYzAgPSBfX2xzeF92bGQoX3Ny YywgMCk7Cj4+ICsgICAgRFVQMl9BUkcyKF9fbHN4X3ZsZHgsIF9zcmMsIHNyY19zdHJpZGUsIF9z cmMsIHNyY19zdHJpZGUyLCBzcmMxLAo+PiBzcmMyKTsKPj4gKyAgICBzcmMzID0gX19sc3hfdmxk eChfc3JjLCBzcmNfc3RyaWRlMyk7Cj4+ICsgICAgX3NyYyArPSBzcmNfc3RyaWRlNDsKPj4gKyAg ICBzcmM0ID0gX19sc3hfdmxkKF9zcmMsIDApOwo+PiArICAgIERVUDJfQVJHMihfX2xzeF92bGR4 LCBfc3JjLCBzcmNfc3RyaWRlLCBfc3JjLCBzcmNfc3RyaWRlMiwgc3JjNSwKPj4gc3JjNik7Cj4+ ICsgICAgX3NyYyArPSBzcmNfc3RyaWRlMzsKPj4gKyAgICBEVVA0X0FSRzIoX19sc3hfdmlsdmxf Yiwgc3JjMSwgc3JjMCwgc3JjMywgc3JjMiwgc3JjNSwgc3JjNCwgc3JjMiwKPj4gc3JjMSwgdG1w MCwKPj4gKyAgICAgICAgICAgICAgdG1wMSwgdG1wMiwgdG1wMyk7Cj4+ICsgICAgRFVQMl9BUkcy KF9fbHN4X3ZpbHZsX2IsIHNyYzQsIHNyYzMsIHNyYzYsIHNyYzUsIHRtcDQsIHRtcDUpOwo+PiAr ICAgIERVUDJfQVJHMihfX2xzeF92aWx2bF9kLCB0bXAzLCB0bXAwLCB0bXA0LCB0bXAxLCByZWcw LCByZWcxKTsKPj4gKyAgICByZWcyID0gX19sc3hfdmlsdmxfZCh0bXA1LCB0bXAyKTsKPj4gKyAg ICBEVVAyX0FSRzIoX19sc3hfdnhvcmlfYiwgcmVnMCwgMTI4LCByZWcxLCAxMjgsIHJlZzAsIHJl ZzEpOwo+PiArICAgIHJlZzIgPSBfX2xzeF92eG9yaV9iKHJlZzIsIDEyOCk7Cj4+ICsKPj4gKyAg ICBmb3IgKDtsb29wX2NudC0tOykgewo+PiArICAgICAgICBzcmM3ID0gX19sc3hfdmxkKF9zcmMs IDApOwo+PiArICAgICAgICBEVVAyX0FSRzIoX19sc3hfdmxkeCwgX3NyYywgc3JjX3N0cmlkZSwg X3NyYywgc3JjX3N0cmlkZTIsCj4+IHNyYzgsIHNyYzkpOwo+PiArICAgICAgICBzcmMxMCA9IF9f bHN4X3ZsZHgoX3NyYywgc3JjX3N0cmlkZTMpOwo+PiArICAgICAgICBfc3JjICs9IHNyY19zdHJp ZGU0Owo+PiArICAgICAgICBEVVA0X0FSRzIoX19sc3hfdmlsdmxfYiwgc3JjNywgc3JjNiwgc3Jj OCwgc3JjNywgc3JjOSwgc3JjOCwKPj4gc3JjMTAsCj4+ICsgICAgICAgICAgICAgICAgICBzcmM5 LCB0bXAwLCB0bXAxLCB0bXAyLCB0bXAzKTsKPj4gKyAgICAgICAgRFVQMl9BUkcyKF9fbHN4X3Zp bHZsX2QsIHRtcDEsIHRtcDAsIHRtcDMsIHRtcDIsIHJlZzMsIHJlZzQpOwo+PiArICAgICAgICBE VVAyX0FSRzIoX19sc3hfdnhvcmlfYiwgcmVnMywgMTI4LCByZWc0LCAxMjgsIHJlZzMsIHJlZzQp Owo+PiArICAgICAgICBvdXQwID0gRklMVF84VEFQX0RQQUREX1NfSChyZWcwLCByZWcxLCByZWcy LCByZWczLCBmaWx0ZXIwLAo+PiBmaWx0ZXIxLAo+PiArICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICBmaWx0ZXIyLCBmaWx0ZXIzKTsKPj4gKyAgICAgICAgb3V0MSA9IEZJTFRfOFRB UF9EUEFERF9TX0gocmVnMSwgcmVnMiwgcmVnMywgcmVnNCwgZmlsdGVyMCwKPj4gZmlsdGVyMSwK Pj4gKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZmlsdGVyMiwgZmlsdGVyMyk7 Cj4+ICsgICAgICAgIG91dDAgPSBfX2xzeF92c3NyYXJuaV9iX2gob3V0MSwgb3V0MCwgNyk7Cj4+ ICsgICAgICAgIG91dDAgPSBfX2xzeF92eG9yaV9iKG91dDAsIDEyOCk7Cj4+ICsgICAgICAgIF9f bHN4X3ZzdGVsbV93KG91dDAsIGRzdCwgMCwgMCk7Cj4+ICsgICAgICAgIGRzdCArPSBkc3Rfc3Ry aWRlOwo+PiArICAgICAgICBfX2xzeF92c3RlbG1fdyhvdXQwLCBkc3QsIDAsIDEpOwo+PiArICAg ICAgICBkc3QgKz0gZHN0X3N0cmlkZTsKPj4gKyAgICAgICAgX19sc3hfdnN0ZWxtX3cob3V0MCwg ZHN0LCAwLCAyKTsKPj4gKyAgICAgICAgZHN0ICs9IGRzdF9zdHJpZGU7Cj4+ICsgICAgICAgIF9f bHN4X3ZzdGVsbV93KG91dDAsIGRzdCwgMCwgMyk7Cj4+ICsgICAgICAgIGRzdCArPSBkc3Rfc3Ry aWRlOwo+PiArCj4+ICsgICAgICAgIHJlZzAgPSByZWcyOwo+PiArICAgICAgICByZWcxID0gcmVn MzsKPj4gKyAgICAgICAgcmVnMiA9IHJlZzQ7Cj4+ICsgICAgICAgIHNyYzYgPSBzcmMxMDsKPj4g KyAgICB9Cj4+ICt9Cj4+ICsKPj4gK3N0YXRpYyB2b2lkIGNvbW1vbl92dF84dF84d19sc3goY29u c3QgdWludDhfdCAqc3JjLCBpbnQzMl90IHNyY19zdHJpZGUsCj4+ICsgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIHVpbnQ4X3QgKmRzdCwgaW50MzJfdCBkc3Rfc3RyaWRlLAo+PiArICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBpbnQ4X3QgKmZpbHRlciwgaW50MzJf dCBoZWlnaHQpCj4+ICt7Cj4+ICsgICAgdWludDMyX3QgbG9vcF9jbnQgPSBoZWlnaHQgPj4gMjsK Pj4gKyAgICBfX20xMjhpIHNyYzAsIHNyYzEsIHNyYzIsIHNyYzMsIHNyYzQsIHNyYzUsIHNyYzYs IHNyYzcsIHNyYzgsCj4+IHNyYzksIHNyYzEwOwo+PiArICAgIF9fbTEyOGkgdG1wMCwgdG1wMSwg dG1wMiwgdG1wMzsKPj4gKyAgICBfX20xMjhpIHJlZzAsIHJlZzEsIHJlZzIsIHJlZzMsIHJlZzQs IHJlZzU7Cj4+ICsgICAgX19tMTI4aSBmaWx0ZXIwLCBmaWx0ZXIxLCBmaWx0ZXIyLCBmaWx0ZXIz Owo+PiArICAgIF9fbTEyOGkgb3V0MCwgb3V0MSwgb3V0Miwgb3V0MzsKPj4gKyAgICBpbnQzMl90 IHNyY19zdHJpZGUyID0gc3JjX3N0cmlkZSA8PCAxOwo+PiArICAgIGludDMyX3Qgc3JjX3N0cmlk ZTMgPSBzcmNfc3RyaWRlICsgc3JjX3N0cmlkZTI7Cj4+ICsgICAgaW50MzJfdCBzcmNfc3RyaWRl NCA9IHNyY19zdHJpZGUyIDw8IDE7Cj4+ICsgICAgdWludDhfdCogX3NyYyA9ICh1aW50OF90Kilz cmMgLSBzcmNfc3RyaWRlMzsKPj4gKwo+PiArICAgIERVUDRfQVJHMihfX2xzeF92bGRyZXBsX2gs IGZpbHRlciwgMCwgZmlsdGVyLCAyLCBmaWx0ZXIsIDQsCj4+IGZpbHRlciwgNiwKPj4gKyAgICAg ICAgICAgICAgZmlsdGVyMCwgZmlsdGVyMSwgZmlsdGVyMiwgZmlsdGVyMyk7Cj4+ICsKPj4gKyAg ICBzcmMwID0gX19sc3hfdmxkKF9zcmMsIDApOwo+PiArICAgIERVUDJfQVJHMihfX2xzeF92bGR4 LCBfc3JjLCBzcmNfc3RyaWRlLCBfc3JjLCBzcmNfc3RyaWRlMiwgc3JjMSwKPj4gc3JjMik7Cj4+ ICsgICAgc3JjMyA9IF9fbHN4X3ZsZHgoX3NyYywgc3JjX3N0cmlkZTMpOwo+PiArICAgIF9zcmMg Kz0gc3JjX3N0cmlkZTQ7Cj4+ICsgICAgc3JjNCA9IF9fbHN4X3ZsZChfc3JjLCAwKTsKPj4gKyAg ICBEVVAyX0FSRzIoX19sc3hfdmxkeCwgX3NyYywgc3JjX3N0cmlkZSwgX3NyYywgc3JjX3N0cmlk ZTIsIHNyYzUsCj4+IHNyYzYpOwo+PiArICAgIF9zcmMgKz0gc3JjX3N0cmlkZTM7Cj4+ICsKPj4g KyAgICBEVVA0X0FSRzIoX19sc3hfdnhvcmlfYiwgc3JjMCwgMTI4LCBzcmMxLCAxMjgsIHNyYzIs IDEyOCwgc3JjMywKPj4gMTI4LAo+PiArICAgICAgICAgICAgICBzcmMwLCBzcmMxLCBzcmMyLCBz cmMzKTsKPj4gKyAgICBEVVAyX0FSRzIoX19sc3hfdnhvcmlfYiwgc3JjNCwgMTI4LCBzcmM1LCAx MjgsIHNyYzQsIHNyYzUpOwo+PiArICAgIHNyYzYgPSBfX2xzeF92eG9yaV9iKHNyYzYsIDEyOCk7 Cj4+ICsgICAgRFVQNF9BUkcyKF9fbHN4X3ZpbHZsX2IsIHNyYzEsIHNyYzAsIHNyYzMsIHNyYzIs IHNyYzUsIHNyYzQsIHNyYzIsCj4+IHNyYzEsCj4+ICsgICAgICAgICAgICAgIHJlZzAsIHJlZzEs IHJlZzIsIHJlZzMpOwo+PiArICAgIERVUDJfQVJHMihfX2xzeF92aWx2bF9iLCBzcmM0LCBzcmMz LCBzcmM2LCBzcmM1LCByZWc0LCByZWc1KTsKPj4gKwo+PiArICAgIGZvciAoO2xvb3BfY250LS07 KSB7Cj4+ICsgICAgICAgIHNyYzcgPSBfX2xzeF92bGQoX3NyYywgMCk7Cj4+ICsgICAgICAgIERV UDJfQVJHMihfX2xzeF92bGR4LCBfc3JjLCBzcmNfc3RyaWRlLCBfc3JjLCBzcmNfc3RyaWRlMiwK Pj4gc3JjOCwgc3JjOSk7Cj4+ICsgICAgICAgIHNyYzEwID0gX19sc3hfdmxkeChfc3JjLCBzcmNf c3RyaWRlMyk7Cj4+ICsgICAgICAgIF9zcmMgKz0gc3JjX3N0cmlkZTQ7Cj4+ICsgICAgICAgIERV UDRfQVJHMihfX2xzeF92eG9yaV9iLCBzcmM3LCAxMjgsIHNyYzgsIDEyOCwgc3JjOSwgMTI4LAo+ PiBzcmMxMCwgMTI4LAo+PiArICAgICAgICAgICAgICAgICAgc3JjNywgc3JjOCwgc3JjOSwgc3Jj MTApOwo+PiArICAgICAgICBEVVA0X0FSRzIoX19sc3hfdmlsdmxfYiwgc3JjNywgc3JjNiwgc3Jj OCwgc3JjNywgc3JjOSwgc3JjOCwKPj4gc3JjMTAsCj4+ICsgICAgICAgICAgICAgICAgICBzcmM5 LCB0bXAwLCB0bXAxLCB0bXAyLCB0bXAzKTsKPj4gKyAgICAgICAgb3V0MCA9IEZJTFRfOFRBUF9E UEFERF9TX0gocmVnMCwgcmVnMSwgcmVnMiwgdG1wMCwgZmlsdGVyMCwKPj4gZmlsdGVyMSwKPj4g KyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZmlsdGVyMiwgZmlsdGVyMyk7Cj4+ ICsgICAgICAgIG91dDEgPSBGSUxUXzhUQVBfRFBBRERfU19IKHJlZzMsIHJlZzQsIHJlZzUsIHRt cDEsIGZpbHRlcjAsCj4+IGZpbHRlcjEsCj4+ICsgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgIGZpbHRlcjIsIGZpbHRlcjMpOwo+PiArICAgICAgICBvdXQyID0gRklMVF84VEFQX0RQ QUREX1NfSChyZWcxLCByZWcyLCB0bXAwLCB0bXAyLCBmaWx0ZXIwLAo+PiBmaWx0ZXIxLAo+PiAr ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmaWx0ZXIyLCBmaWx0ZXIzKTsKPj4g KyAgICAgICAgb3V0MyA9IEZJTFRfOFRBUF9EUEFERF9TX0gocmVnNCwgcmVnNSwgdG1wMSwgdG1w MywgZmlsdGVyMCwKPj4gZmlsdGVyMSwKPj4gKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgZmlsdGVyMiwgZmlsdGVyMyk7Cj4+ICsgICAgICAgIERVUDJfQVJHMyhfX2xzeF92c3Ny YXJuaV9iX2gsIG91dDEsIG91dDAsIDcsIG91dDMsIG91dDIsIDcsCj4+IG91dDAsIG91dDEpOwo+ PiArICAgICAgICBEVVAyX0FSRzIoX19sc3hfdnhvcmlfYiwgb3V0MCwgMTI4LCBvdXQxLCAxMjgs IG91dDAsIG91dDEpOwo+PiArICAgICAgICBfX2xzeF92c3RlbG1fZChvdXQwLCBkc3QsIDAsIDAp Owo+PiArICAgICAgICBkc3QgKz0gZHN0X3N0cmlkZTsKPj4gKyAgICAgICAgX19sc3hfdnN0ZWxt X2Qob3V0MCwgZHN0LCAwLCAxKTsKPj4gKyAgICAgICAgZHN0ICs9IGRzdF9zdHJpZGU7Cj4+ICsg ICAgICAgIF9fbHN4X3ZzdGVsbV9kKG91dDEsIGRzdCwgMCwgMCk7Cj4+ICsgICAgICAgIGRzdCAr PSBkc3Rfc3RyaWRlOwo+PiArICAgICAgICBfX2xzeF92c3RlbG1fZChvdXQxLCBkc3QsIDAsIDEp Owo+PiArICAgICAgICBkc3QgKz0gZHN0X3N0cmlkZTsKPj4gKwo+PiArICAgICAgICByZWcwID0g cmVnMjsKPj4gKyAgICAgICAgcmVnMSA9IHRtcDA7Cj4+ICsgICAgICAgIHJlZzIgPSB0bXAyOwo+ PiArICAgICAgICByZWczID0gcmVnNTsKPj4gKyAgICAgICAgcmVnNCA9IHRtcDE7Cj4+ICsgICAg ICAgIHJlZzUgPSB0bXAzOwo+PiArICAgICAgICBzcmM2ID0gc3JjMTA7Cj4+ICsgICAgfQo+PiAr fQo+PiArCj4+ICtzdGF0aWMgdm9pZCBjb21tb25fdnRfOHRfMTZ3X2xzeChjb25zdCB1aW50OF90 ICpzcmMsIGludDMyX3QKPj4gc3JjX3N0cmlkZSwKPj4gKyAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIHVpbnQ4X3QgKmRzdCwgaW50MzJfdCBkc3Rfc3RyaWRlLAo+PiArICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgaW50OF90ICpmaWx0ZXIsIGludDMyX3QgaGVp Z2h0KQo+PiArewo+PiArICAgIHVpbnQzMl90IGxvb3BfY250ID0gaGVpZ2h0ID4+IDI7Cj4+ICsg ICAgX19tMTI4aSBzcmMwLCBzcmMxLCBzcmMyLCBzcmMzLCBzcmM0LCBzcmM1LCBzcmM2LCBzcmM3 LCBzcmM4LAo+PiBzcmM5LCBzcmMxMDsKPj4gKyAgICBfX20xMjhpIGZpbHRlcjAsIGZpbHRlcjEs IGZpbHRlcjIsIGZpbHRlcjM7Cj4+ICsgICAgX19tMTI4aSByZWcwLCByZWcxLCByZWcyLCByZWcz LCByZWc0LCByZWc1Owo+PiArICAgIF9fbTEyOGkgcmVnNiwgcmVnNywgcmVnOCwgcmVnOSwgcmVn MTAsIHJlZzExOwo+PiArICAgIF9fbTEyOGkgdG1wMCwgdG1wMSwgdG1wMiwgdG1wMzsKPj4gKyAg ICBpbnQzMl90IHNyY19zdHJpZGUyID0gc3JjX3N0cmlkZSA8PCAxOwo+PiArICAgIGludDMyX3Qg c3JjX3N0cmlkZTMgPSBzcmNfc3RyaWRlICsgc3JjX3N0cmlkZTI7Cj4+ICsgICAgaW50MzJfdCBz cmNfc3RyaWRlNCA9IHNyY19zdHJpZGUyIDw8IDE7Cj4+ICsgICAgdWludDhfdCogX3NyYyA9ICh1 aW50OF90KilzcmMgLSBzcmNfc3RyaWRlMzsKPj4gKwo+PiArICAgIERVUDRfQVJHMihfX2xzeF92 bGRyZXBsX2gsIGZpbHRlciwgMCwgZmlsdGVyLCAyLCBmaWx0ZXIsIDQsCj4+IGZpbHRlciwgNiwK Pj4gKyAgICAgICAgICAgICAgZmlsdGVyMCwgZmlsdGVyMSwgZmlsdGVyMiwgZmlsdGVyMyk7Cj4+ ICsgICAgc3JjMCA9IF9fbHN4X3ZsZChfc3JjLCAwKTsKPj4gKyAgICBEVVAyX0FSRzIoX19sc3hf dmxkeCwgX3NyYywgc3JjX3N0cmlkZSwgX3NyYywgc3JjX3N0cmlkZTIsIHNyYzEsCj4+IHNyYzIp Owo+PiArICAgIHNyYzMgPSBfX2xzeF92bGR4KF9zcmMsIHNyY19zdHJpZGUzKTsKPj4gKyAgICBf c3JjICs9IHNyY19zdHJpZGU0Owo+PiArICAgIHNyYzQgPSBfX2xzeF92bGQoX3NyYywgMCk7Cj4+ ICsgICAgRFVQMl9BUkcyKF9fbHN4X3ZsZHgsIF9zcmMsIHNyY19zdHJpZGUsIF9zcmMsIHNyY19z dHJpZGUyLCBzcmM1LAo+PiBzcmM2KTsKPj4gKyAgICBfc3JjICs9IHNyY19zdHJpZGUzOwo+PiAr ICAgIERVUDRfQVJHMihfX2xzeF92eG9yaV9iLCBzcmMwLCAxMjgsIHNyYzEsIDEyOCwgc3JjMiwg MTI4LCBzcmMzLAo+PiAxMjgsCj4+ICsgICAgICAgICAgICAgIHNyYzAsIHNyYzEsIHNyYzIsIHNy YzMpOwo+PiArICAgIERVUDJfQVJHMihfX2xzeF92eG9yaV9iLCBzcmM0LCAxMjgsIHNyYzUsIDEy OCwgc3JjNCwgc3JjNSk7Cj4+ICsgICAgc3JjNiA9IF9fbHN4X3Z4b3JpX2Ioc3JjNiwgMTI4KTsK Pj4gKyAgICBEVVA0X0FSRzIoX19sc3hfdmlsdmxfYiwgc3JjMSwgc3JjMCwgc3JjMywgc3JjMiwg c3JjNSwgc3JjNCwgc3JjMiwKPj4gc3JjMSwKPj4gKyAgICAgICAgICAgICAgcmVnMCwgcmVnMSwg cmVnMiwgcmVnMyk7Cj4+ICsgICAgRFVQMl9BUkcyKF9fbHN4X3ZpbHZsX2IsIHNyYzQsIHNyYzMs IHNyYzYsIHNyYzUsIHJlZzQsIHJlZzUpOwo+PiArICAgIERVUDRfQVJHMihfX2xzeF92aWx2aF9i LCBzcmMxLCBzcmMwLCBzcmMzLCBzcmMyLCBzcmM1LCBzcmM0LCBzcmMyLAo+PiBzcmMxLAo+PiAr ICAgICAgICAgICAgICByZWc2LCByZWc3LCByZWc4LCByZWc5KTsKPj4gKyAgICBEVVAyX0FSRzIo X19sc3hfdmlsdmhfYiwgc3JjNCwgc3JjMywgc3JjNiwgc3JjNSwgcmVnMTAsIHJlZzExKTsKPj4g Kwo+PiArICAgIGZvciAoO2xvb3BfY250LS07KSB7Cj4+ICsgICAgICAgIHNyYzcgPSBfX2xzeF92 bGQoX3NyYywgMCk7Cj4+ICsgICAgICAgIERVUDJfQVJHMihfX2xzeF92bGR4LCBfc3JjLCBzcmNf c3RyaWRlLCBfc3JjLCBzcmNfc3RyaWRlMiwKPj4gc3JjOCwgc3JjOSk7Cj4+ICsgICAgICAgIHNy YzEwID0gX19sc3hfdmxkeChfc3JjLCBzcmNfc3RyaWRlMyk7Cj4+ICsgICAgICAgIF9zcmMgKz0g c3JjX3N0cmlkZTQ7Cj4+ICsgICAgICAgIERVUDRfQVJHMihfX2xzeF92eG9yaV9iLCBzcmM3LCAx MjgsIHNyYzgsIDEyOCwgc3JjOSwgMTI4LAo+PiBzcmMxMCwgMTI4LAo+PiArICAgICAgICAgICAg ICAgICAgc3JjNywgc3JjOCwgc3JjOSwgc3JjMTApOwo+PiArICAgICAgICBEVVA0X0FSRzIoX19s c3hfdmlsdmxfYiwgc3JjNywgc3JjNiwgc3JjOCwgc3JjNywgc3JjOSwgc3JjOCwKPj4gc3JjMTAs IHNyYzksCj4+ICsgICAgICAgICAgICAgICAgICBzcmMwLCBzcmMxLCBzcmMyLCBzcmMzKTsKPj4g KyAgICAgICAgRFVQNF9BUkcyKF9fbHN4X3ZpbHZoX2IsIHNyYzcsIHNyYzYsIHNyYzgsIHNyYzcs IHNyYzksIHNyYzgsCj4+IHNyYzEwLCBzcmM5LAo+PiArICAgICAgICAgICAgICAgICAgc3JjNCwg c3JjNSwgc3JjNywgc3JjOCk7Cj4+ICsgICAgICAgIHRtcDAgPSBGSUxUXzhUQVBfRFBBRERfU19I KHJlZzAsIHJlZzEsIHJlZzIsIHNyYzAsIGZpbHRlcjAsCj4+IGZpbHRlcjEsCj4+ICsgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZpbHRlcjIsIGZpbHRlcjMpOwo+PiArICAgICAg ICB0bXAxID0gRklMVF84VEFQX0RQQUREX1NfSChyZWczLCByZWc0LCByZWc1LCBzcmMxLCBmaWx0 ZXIwLAo+PiBmaWx0ZXIxLAo+PiArICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBm aWx0ZXIyLCBmaWx0ZXIzKTsKPj4gKyAgICAgICAgdG1wMiA9IEZJTFRfOFRBUF9EUEFERF9TX0go cmVnNiwgcmVnNywgcmVnOCwgc3JjNCwgZmlsdGVyMCwKPj4gZmlsdGVyMSwKPj4gKyAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgZmlsdGVyMiwgZmlsdGVyMyk7Cj4+ICsgICAgICAg IHRtcDMgPSBGSUxUXzhUQVBfRFBBRERfU19IKHJlZzksIHJlZzEwLCByZWcxMSwgc3JjNSwgZmls dGVyMCwKPj4gZmlsdGVyMSwKPj4gKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ZmlsdGVyMiwgZmlsdGVyMyk7Cj4+ICsgICAgICAgIERVUDJfQVJHMyhfX2xzeF92c3NyYXJuaV9i X2gsIHRtcDIsIHRtcDAsIDcsIHRtcDMsIHRtcDEsIDcsCj4+IHRtcDAsIHRtcDEpOwo+PiArICAg ICAgICBEVVAyX0FSRzIoX19sc3hfdnhvcmlfYiwgdG1wMCwgMTI4LCB0bXAxLCAxMjgsIHRtcDAs IHRtcDEpOwo+PiArICAgICAgICBfX2xzeF92c3QodG1wMCwgZHN0LCAwKTsKPj4gKyAgICAgICAg ZHN0ICs9IGRzdF9zdHJpZGU7Cj4+ICsgICAgICAgIF9fbHN4X3ZzdCh0bXAxLCBkc3QsIDApOwo+ PiArICAgICAgICBkc3QgKz0gZHN0X3N0cmlkZTsKPj4gKyAgICAgICAgdG1wMCA9IEZJTFRfOFRB UF9EUEFERF9TX0gocmVnMSwgcmVnMiwgc3JjMCwgc3JjMiwgZmlsdGVyMCwKPj4gZmlsdGVyMSwK Pj4gKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZmlsdGVyMiwgZmlsdGVyMyk7 Cj4+ICsgICAgICAgIHRtcDEgPSBGSUxUXzhUQVBfRFBBRERfU19IKHJlZzQsIHJlZzUsIHNyYzEs IHNyYzMsIGZpbHRlcjAsCj4+IGZpbHRlcjEsCj4+ICsgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIGZpbHRlcjIsIGZpbHRlcjMpOwo+PiArICAgICAgICB0bXAyID0gRklMVF84VEFQ X0RQQUREX1NfSChyZWc3LCByZWc4LCBzcmM0LCBzcmM3LCBmaWx0ZXIwLAo+PiBmaWx0ZXIxLAo+ PiArICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmaWx0ZXIyLCBmaWx0ZXIzKTsK Pj4gKyAgICAgICAgdG1wMyA9IEZJTFRfOFRBUF9EUEFERF9TX0gocmVnMTAsIHJlZzExLCBzcmM1 LCBzcmM4LCBmaWx0ZXIwLAo+PiBmaWx0ZXIxLAo+PiArICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICBmaWx0ZXIyLCBmaWx0ZXIzKTsKPj4gKyAgICAgICAgRFVQMl9BUkczKF9fbHN4 X3Zzc3Jhcm5pX2JfaCwgdG1wMiwgdG1wMCwgNywgdG1wMywgdG1wMSwgNywKPj4gdG1wMCwgdG1w MSk7Cj4+ICsgICAgICAgIERVUDJfQVJHMihfX2xzeF92eG9yaV9iLCB0bXAwLCAxMjgsIHRtcDEs IDEyOCwgdG1wMCwgdG1wMSk7Cj4+ICsgICAgICAgIF9fbHN4X3ZzdCh0bXAwLCBkc3QsIDApOwo+ PiArICAgICAgICBkc3QgKz0gZHN0X3N0cmlkZTsKPj4gKyAgICAgICAgX19sc3hfdnN0KHRtcDEs IGRzdCwgMCk7Cj4+ICsgICAgICAgIGRzdCArPSBkc3Rfc3RyaWRlOwo+PiArCj4+ICsgICAgICAg IHJlZzAgPSByZWcyOwo+PiArICAgICAgICByZWcxID0gc3JjMDsKPj4gKyAgICAgICAgcmVnMiA9 IHNyYzI7Cj4+ICsgICAgICAgIHJlZzMgPSByZWc1Owo+PiArICAgICAgICByZWc0ID0gc3JjMTsK Pj4gKyAgICAgICAgcmVnNSA9IHNyYzM7Cj4+ICsgICAgICAgIHJlZzYgPSByZWc4Owo+PiArICAg ICAgICByZWc3ID0gc3JjNDsKPj4gKyAgICAgICAgcmVnOCA9IHNyYzc7Cj4+ICsgICAgICAgIHJl ZzkgPSByZWcxMTsKPj4gKyAgICAgICAgcmVnMTAgPSBzcmM1Owo+PiArICAgICAgICByZWcxMSA9 IHNyYzg7Cj4+ICsgICAgICAgIHNyYzYgPSBzcmMxMDsKPj4gKyAgICB9Cj4+ICt9Cj4+ICsKPj4g K3N0YXRpYyB2b2lkIGNvbW1vbl92dF84dF8xNndfbXVsdF9sc3goY29uc3QgdWludDhfdCAqc3Jj LCBpbnQzMl90Cj4+IHNyY19zdHJpZGUsCj4+ICsgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIHVpbnQ4X3QgKmRzdCwgaW50MzJfdCBkc3Rfc3RyaWRlLAo+PiArICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBpbnQ4X3QgKmZpbHRlciwgaW50MzJf dAo+PiBoZWlnaHQsCj4+ICsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlu dDMyX3Qgd2lkdGgpCj4+ICt7Cj4+ICsgICAgdWludDhfdCAqc3JjX3RtcDsKPj4gKyAgICB1aW50 OF90ICpkc3RfdG1wOwo+PiArICAgIHVpbnQzMl90IGNudCA9IHdpZHRoID4+IDQ7Cj4+ICsgICAg X19tMTI4aSBzcmMwLCBzcmMxLCBzcmMyLCBzcmMzLCBzcmM0LCBzcmM1LCBzcmM2LCBzcmM3LCBz cmM4LAo+PiBzcmM5LCBzcmMxMDsKPj4gKyAgICBfX20xMjhpIGZpbHRlcjAsIGZpbHRlcjEsIGZp bHRlcjIsIGZpbHRlcjM7Cj4+ICsgICAgX19tMTI4aSByZWcwLCByZWcxLCByZWcyLCByZWczLCBy ZWc0LCByZWc1Owo+PiArICAgIF9fbTEyOGkgcmVnNiwgcmVnNywgcmVnOCwgcmVnOSwgcmVnMTAs IHJlZzExOwo+PiArICAgIF9fbTEyOGkgdG1wMCwgdG1wMSwgdG1wMiwgdG1wMzsKPj4gKyAgICBp bnQzMl90IHNyY19zdHJpZGUyID0gc3JjX3N0cmlkZSA8PCAxOwo+PiArICAgIGludDMyX3Qgc3Jj X3N0cmlkZTMgPSBzcmNfc3RyaWRlICsgc3JjX3N0cmlkZTI7Cj4+ICsgICAgaW50MzJfdCBzcmNf c3RyaWRlNCA9IHNyY19zdHJpZGUyIDw8IDE7Cj4+ICsgICAgaW50MzJfdCBkc3Rfc3RyaWRlMiA9 IGRzdF9zdHJpZGUgPDwgMTsKPj4gKyAgICBpbnQzMl90IGRzdF9zdHJpZGUzID0gZHN0X3N0cmlk ZTIgKyBkc3Rfc3RyaWRlOwo+PiArICAgIGludDMyX3QgZHN0X3N0cmlkZTQgPSBkc3Rfc3RyaWRl MiA8PCAxOwo+PiArICAgIHVpbnQ4X3QqIF9zcmMgPSAodWludDhfdCopc3JjIC0gc3JjX3N0cmlk ZTM7Cj4+ICsKPj4gKyAgICBEVVA0X0FSRzIoX19sc3hfdmxkcmVwbF9oLCBmaWx0ZXIsIDAsIGZp bHRlciwgMiwgZmlsdGVyLCA0LAo+PiBmaWx0ZXIsIDYsCj4+ICsgICAgICAgICAgICAgIGZpbHRl cjAsIGZpbHRlcjEsIGZpbHRlcjIsIGZpbHRlcjMpOwo+PiArICAgIGZvciAoO2NudC0tOykgewo+ PiArICAgICAgICB1aW50MzJfdCBsb29wX2NudCA9IGhlaWdodCA+PiAyOwo+PiArCj4+ICsgICAg ICAgIHNyY190bXAgPSBfc3JjOwo+PiArICAgICAgICBkc3RfdG1wID0gZHN0Owo+PiArCj4+ICsg ICAgICAgIHNyYzAgPSBfX2xzeF92bGQoc3JjX3RtcCwgMCk7Cj4+ICsgICAgICAgIERVUDJfQVJH MihfX2xzeF92bGR4LCBzcmNfdG1wLCBzcmNfc3RyaWRlLCBzcmNfdG1wLAo+PiBzcmNfc3RyaWRl MiwKPj4gKyAgICAgICAgICAgICAgICAgIHNyYzEsIHNyYzIpOwo+PiArICAgICAgICBzcmMzID0g X19sc3hfdmxkeChzcmNfdG1wLCBzcmNfc3RyaWRlMyk7Cj4+ICsgICAgICAgIHNyY190bXAgKz0g c3JjX3N0cmlkZTQ7Cj4+ICsgICAgICAgIHNyYzQgPSBfX2xzeF92bGQoc3JjX3RtcCwgMCk7Cj4+ ICsgICAgICAgIERVUDJfQVJHMihfX2xzeF92bGR4LCBzcmNfdG1wLCBzcmNfc3RyaWRlLCBzcmNf dG1wLAo+PiBzcmNfc3RyaWRlMiwKPj4gKyAgICAgICAgICAgICAgICAgIHNyYzUsIHNyYzYpOwo+ PiArICAgICAgICBzcmNfdG1wICs9IHNyY19zdHJpZGUzOwo+PiArCj4+ICsgICAgICAgIERVUDRf QVJHMihfX2xzeF92eG9yaV9iLCBzcmMwLCAxMjgsIHNyYzEsIDEyOCwgc3JjMiwgMTI4LAo+PiBz cmMzLCAxMjgsCj4+ICsgICAgICAgICAgICAgICAgICBzcmMwLCBzcmMxLCBzcmMyLCBzcmMzKTsK Pj4gKyAgICAgICAgRFVQMl9BUkcyKF9fbHN4X3Z4b3JpX2IsIHNyYzQsIDEyOCwgc3JjNSwgMTI4 LCBzcmM0LCBzcmM1KTsKPj4gKyAgICAgICAgc3JjNiA9IF9fbHN4X3Z4b3JpX2Ioc3JjNiwgMTI4 KTsKPj4gKyAgICAgICAgRFVQNF9BUkcyKF9fbHN4X3ZpbHZsX2IsIHNyYzEsIHNyYzAsIHNyYzMs IHNyYzIsIHNyYzUsIHNyYzQsCj4+IHNyYzIsIHNyYzEsCj4+ICsgICAgICAgICAgICAgICAgICBy ZWcwLCByZWcxLCByZWcyLCByZWczKTsKPj4gKyAgICAgICAgRFVQMl9BUkcyKF9fbHN4X3ZpbHZs X2IsIHNyYzQsIHNyYzMsIHNyYzYsIHNyYzUsIHJlZzQsIHJlZzUpOwo+PiArICAgICAgICBEVVA0 X0FSRzIoX19sc3hfdmlsdmhfYiwgc3JjMSwgc3JjMCwgc3JjMywgc3JjMiwgc3JjNSwgc3JjNCwK Pj4gc3JjMiwgc3JjMSwKPj4gKyAgICAgICAgICAgICAgICAgIHJlZzYsIHJlZzcsIHJlZzgsIHJl ZzkpOwo+PiArICAgICAgICBEVVAyX0FSRzIoX19sc3hfdmlsdmhfYiwgc3JjNCwgc3JjMywgc3Jj Niwgc3JjNSwgcmVnMTAsIHJlZzExKTsKPj4gKwo+PiArICAgICAgICBmb3IgKDtsb29wX2NudC0t Oykgewo+PiArICAgICAgICAgICAgc3JjNyA9IF9fbHN4X3ZsZChzcmNfdG1wLCAwKTsKPj4gKyAg ICAgICAgICAgIERVUDJfQVJHMihfX2xzeF92bGR4LCBzcmNfdG1wLCBzcmNfc3RyaWRlLCBzcmNf dG1wLAo+PiBzcmNfc3RyaWRlMiwKPj4gKyAgICAgICAgICAgICAgICAgICAgICBzcmM4LCBzcmM5 KTsKPj4gKyAgICAgICAgICAgIHNyYzEwID0gX19sc3hfdmxkeChzcmNfdG1wLCBzcmNfc3RyaWRl Myk7Cj4+ICsgICAgICAgICAgICBzcmNfdG1wICs9IHNyY19zdHJpZGU0Owo+PiArICAgICAgICAg ICAgRFVQNF9BUkcyKF9fbHN4X3Z4b3JpX2IsIHNyYzcsIDEyOCwgc3JjOCwgMTI4LCBzcmM5LCAx MjgsCj4+IHNyYzEwLAo+PiArICAgICAgICAgICAgICAgICAgICAgIDEyOCwgc3JjNywgc3JjOCwg c3JjOSwgc3JjMTApOwo+PiArICAgICAgICAgICAgRFVQNF9BUkcyKF9fbHN4X3ZpbHZsX2IsIHNy YzcsIHNyYzYsIHNyYzgsIHNyYzcsIHNyYzksCj4+IHNyYzgsCj4+ICsgICAgICAgICAgICAgICAg ICAgICAgc3JjMTAsIHNyYzksIHNyYzAsIHNyYzEsIHNyYzIsIHNyYzMpOwo+PiArICAgICAgICAg ICAgRFVQNF9BUkcyKF9fbHN4X3ZpbHZoX2IsIHNyYzcsIHNyYzYsIHNyYzgsIHNyYzcsIHNyYzks Cj4+IHNyYzgsCj4+ICsgICAgICAgICAgICAgICAgICAgICAgc3JjMTAsIHNyYzksIHNyYzQsIHNy YzUsIHNyYzcsIHNyYzgpOwo+PiArICAgICAgICAgICAgdG1wMCA9IEZJTFRfOFRBUF9EUEFERF9T X0gocmVnMCwgcmVnMSwgcmVnMiwgc3JjMCwgZmlsdGVyMCwKPj4gKyAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIGZpbHRlcjEsIGZpbHRlcjIsIGZpbHRlcjMpOwo+PiArICAg ICAgICAgICAgdG1wMSA9IEZJTFRfOFRBUF9EUEFERF9TX0gocmVnMywgcmVnNCwgcmVnNSwgc3Jj MSwgZmlsdGVyMCwKPj4gKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZp bHRlcjEsIGZpbHRlcjIsIGZpbHRlcjMpOwo+PiArICAgICAgICAgICAgdG1wMiA9IEZJTFRfOFRB UF9EUEFERF9TX0gocmVnNiwgcmVnNywgcmVnOCwgc3JjNCwgZmlsdGVyMCwKPj4gKyAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZpbHRlcjEsIGZpbHRlcjIsIGZpbHRlcjMp Owo+PiArICAgICAgICAgICAgdG1wMyA9IEZJTFRfOFRBUF9EUEFERF9TX0gocmVnOSwgcmVnMTAs IHJlZzExLCBzcmM1LAo+PiBmaWx0ZXIwLAo+PiArICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgZmlsdGVyMSwgZmlsdGVyMiwgZmlsdGVyMyk7Cj4+ICsgICAgICAgICAgICBE VVAyX0FSRzMoX19sc3hfdnNzcmFybmlfYl9oLCB0bXAyLCB0bXAwLCA3LCB0bXAzLCB0bXAxLCA3 LAo+PiArICAgICAgICAgICAgICAgICAgICAgIHRtcDAsIHRtcDEpOwo+PiArICAgICAgICAgICAg RFVQMl9BUkcyKF9fbHN4X3Z4b3JpX2IsIHRtcDAsIDEyOCwgdG1wMSwgMTI4LCB0bXAwLCB0bXAx KTsKPj4gKyAgICAgICAgICAgIF9fbHN4X3ZzdCh0bXAwLCBkc3RfdG1wLCAwKTsKPj4gKyAgICAg ICAgICAgIF9fbHN4X3ZzdHgodG1wMSwgZHN0X3RtcCwgZHN0X3N0cmlkZSk7Cj4+ICsgICAgICAg ICAgICB0bXAwID0gRklMVF84VEFQX0RQQUREX1NfSChyZWcxLCByZWcyLCBzcmMwLCBzcmMyLCBm aWx0ZXIwLAo+PiArICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZmlsdGVy MSwgZmlsdGVyMiwgZmlsdGVyMyk7Cj4+ICsgICAgICAgICAgICB0bXAxID0gRklMVF84VEFQX0RQ QUREX1NfSChyZWc0LCByZWc1LCBzcmMxLCBzcmMzLCBmaWx0ZXIwLAo+PiArICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgZmlsdGVyMSwgZmlsdGVyMiwgZmlsdGVyMyk7Cj4+ ICsgICAgICAgICAgICB0bXAyID0gRklMVF84VEFQX0RQQUREX1NfSChyZWc3LCByZWc4LCBzcmM0 LCBzcmM3LCBmaWx0ZXIwLAo+PiArICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgZmlsdGVyMSwgZmlsdGVyMiwgZmlsdGVyMyk7Cj4+ICsgICAgICAgICAgICB0bXAzID0gRklM VF84VEFQX0RQQUREX1NfSChyZWcxMCwgcmVnMTEsIHNyYzUsIHNyYzgsCj4+IGZpbHRlcjAsCj4+ ICsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmaWx0ZXIxLCBmaWx0ZXIy LCBmaWx0ZXIzKTsKPj4gKyAgICAgICAgICAgIERVUDJfQVJHMyhfX2xzeF92c3NyYXJuaV9iX2gs IHRtcDIsIHRtcDAsIDcsIHRtcDMsIHRtcDEsIDcsCj4+ICsgICAgICAgICAgICAgICAgICAgICAg dG1wMCwgdG1wMSk7Cj4+ICsgICAgICAgICAgICBEVVAyX0FSRzIoX19sc3hfdnhvcmlfYiwgdG1w MCwgMTI4LCB0bXAxLCAxMjgsIHRtcDAsIHRtcDEpOwo+PiArICAgICAgICAgICAgX19sc3hfdnN0 eCh0bXAwLCBkc3RfdG1wLCBkc3Rfc3RyaWRlMik7Cj4+ICsgICAgICAgICAgICBfX2xzeF92c3R4 KHRtcDEsIGRzdF90bXAsIGRzdF9zdHJpZGUzKTsKPj4gKyAgICAgICAgICAgIGRzdF90bXAgKz0g ZHN0X3N0cmlkZTQ7Cj4+ICsKPj4gKyAgICAgICAgICAgIHJlZzAgPSByZWcyOwo+PiArICAgICAg ICAgICAgcmVnMSA9IHNyYzA7Cj4+ICsgICAgICAgICAgICByZWcyID0gc3JjMjsKPj4gKyAgICAg ICAgICAgIHJlZzMgPSByZWc1Owo+PiArICAgICAgICAgICAgcmVnNCA9IHNyYzE7Cj4+ICsgICAg ICAgICAgICByZWc1ID0gc3JjMzsKPj4gKyAgICAgICAgICAgIHJlZzYgPSByZWc4Owo+PiArICAg ICAgICAgICAgcmVnNyA9IHNyYzQ7Cj4+ICsgICAgICAgICAgICByZWc4ID0gc3JjNzsKPj4gKyAg ICAgICAgICAgIHJlZzkgPSByZWcxMTsKPj4gKyAgICAgICAgICAgIHJlZzEwID0gc3JjNTsKPj4g KyAgICAgICAgICAgIHJlZzExID0gc3JjODsKPj4gKyAgICAgICAgICAgIHNyYzYgPSBzcmMxMDsK Pj4gKyAgICAgICAgfQo+PiArICAgICAgICBfc3JjICs9IDE2Owo+PiArICAgICAgICBkc3QgICs9 IDE2Owo+PiArICAgIH0KPj4gK30KPj4gKwo+PiArc3RhdGljIHZvaWQgY29tbW9uX3Z0Xzh0XzMy d19sc3goY29uc3QgdWludDhfdCAqc3JjLCBpbnQzMl90Cj4+IHNyY19zdHJpZGUsCj4+ICsgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICB1aW50OF90ICpkc3QsIGludDMyX3QgZHN0X3N0 cmlkZSwKPj4gKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IGludDhfdCAq ZmlsdGVyLCBpbnQzMl90IGhlaWdodCkKPj4gK3sKPj4gKyAgICBjb21tb25fdnRfOHRfMTZ3X211 bHRfbHN4KHNyYywgc3JjX3N0cmlkZSwgZHN0LCBkc3Rfc3RyaWRlLAo+PiBmaWx0ZXIsIGhlaWdo dCwgMzIpOwo+PiArfQo+PiArCj4+ICtzdGF0aWMgdm9pZCBjb21tb25fdnRfOHRfNjR3X2xzeChj b25zdCB1aW50OF90ICpzcmMsIGludDMyX3QKPj4gc3JjX3N0cmlkZSwKPj4gKyAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIHVpbnQ4X3QgKmRzdCwgaW50MzJfdCBkc3Rfc3RyaWRlLAo+ PiArICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgaW50OF90ICpmaWx0ZXIs IGludDMyX3QgaGVpZ2h0KQo+PiArewo+PiArICAgIGNvbW1vbl92dF84dF8xNndfbXVsdF9sc3go c3JjLCBzcmNfc3RyaWRlLCBkc3QsIGRzdF9zdHJpZGUsCj4+ICsgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICBmaWx0ZXIsIGhlaWdodCwgNjQpOwo+PiArfQo+PiArCj4+ICtzdGF0aWMgdm9p ZCBjb21tb25faHZfOGh0Xzh2dF80d19sc3goY29uc3QgdWludDhfdCAqc3JjLCBpbnQzMl90Cj4+ IHNyY19zdHJpZGUsCj4+ICsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdWlu dDhfdCAqZHN0LCBpbnQzMl90IGRzdF9zdHJpZGUsCj4+ICsgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgY29uc3QgaW50OF90ICpmaWx0ZXJfaG9yaXosCj4+ICsgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgaW50OF90ICpmaWx0ZXJfdmVydCwKPj4g KyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbnQzMl90IGhlaWdodCkKPj4g K3sKPj4gKyAgICB1aW50MzJfdCBsb29wX2NudCA9IGhlaWdodCA+PiAyOwo+PiArICAgIF9fbTEy OGkgc3JjMCwgc3JjMSwgc3JjMiwgc3JjMywgc3JjNCwgc3JjNSwgc3JjNiwgc3JjNywgc3JjOCwK Pj4gc3JjOSwgc3JjMTA7Cj4+ICsgICAgX19tMTI4aSBmaWx0X2h6MCwgZmlsdF9oejEsIGZpbHRf aHoyLCBmaWx0X2h6MzsKPj4gKyAgICBfX20xMjhpIGZpbHRfdnQwLCBmaWx0X3Z0MSwgZmlsdF92 dDIsIGZpbHRfdnQzOwo+PiArICAgIF9fbTEyOGkgbWFzazAsIG1hc2sxLCBtYXNrMiwgbWFzazM7 Cj4+ICsgICAgX19tMTI4aSB0bXAwLCB0bXAxLCB0bXAyLCB0bXAzLCB0bXA0LCB0bXA1Owo+PiAr ICAgIF9fbTEyOGkgb3V0MCwgb3V0MTsKPj4gKyAgICBfX20xMjhpIHNodWZmID0gezB4MEYwRTBE MEMwQjBBMDkwOCwgMHgxNzE2MTUxNDEzMTIxMTEwfTsKPj4gKyAgICBpbnQzMl90IHNyY19zdHJp ZGUyID0gc3JjX3N0cmlkZSA8PCAxOwo+PiArICAgIGludDMyX3Qgc3JjX3N0cmlkZTMgPSBzcmNf c3RyaWRlICsgc3JjX3N0cmlkZTI7Cj4+ICsgICAgaW50MzJfdCBzcmNfc3RyaWRlNCA9IHNyY19z dHJpZGUyIDw8IDE7Cj4+ICsgICAgdWludDhfdCogX3NyYyA9ICh1aW50OF90KilzcmMgLSBzcmNf c3RyaWRlMyAtIDM7Cj4+ICsKPj4gKyAgICBtYXNrMCA9IF9fbHN4X3ZsZChtY19maWx0X21hc2tf YXJyLCAxNik7Cj4+ICsgICAgRFVQNF9BUkcyKF9fbHN4X3ZsZHJlcGxfaCwgZmlsdGVyX2hvcml6 LCAwLCBmaWx0ZXJfaG9yaXosIDIsCj4+IGZpbHRlcl9ob3JpeiwgNCwKPj4gKyAgICAgICAgICAg ICAgZmlsdGVyX2hvcml6LCA2LCBmaWx0X2h6MCwgZmlsdF9oejEsIGZpbHRfaHoyLCBmaWx0X2h6 Myk7Cj4+ICsgICAgRFVQMl9BUkcyKF9fbHN4X3ZhZGRpX2J1LCBtYXNrMCwgMiwgbWFzazAsIDQs IG1hc2sxLCBtYXNrMik7Cj4+ICsgICAgbWFzazMgPSBfX2xzeF92YWRkaV9idShtYXNrMCwgNik7 Cj4+ICsKPj4gKyAgICBzcmMwID0gX19sc3hfdmxkKF9zcmMsIDApOwo+PiArICAgIERVUDJfQVJH MihfX2xzeF92bGR4LCBfc3JjLCBzcmNfc3RyaWRlLCBfc3JjLCBzcmNfc3RyaWRlMiwgc3JjMSwK Pj4gc3JjMik7Cj4+ICsgICAgc3JjMyA9IF9fbHN4X3ZsZHgoX3NyYywgc3JjX3N0cmlkZTMpOwo+ PiArICAgIF9zcmMgKz0gc3JjX3N0cmlkZTQ7Cj4+ICsgICAgc3JjNCA9IF9fbHN4X3ZsZChfc3Jj LCAwKTsKPj4gKyAgICBEVVAyX0FSRzIoX19sc3hfdmxkeCwgX3NyYywgc3JjX3N0cmlkZSwgX3Ny Yywgc3JjX3N0cmlkZTIsIHNyYzUsCj4+IHNyYzYpOwo+PiArICAgIF9zcmMgKz0gc3JjX3N0cmlk ZTM7Cj4+ICsgICAgRFVQNF9BUkcyKF9fbHN4X3Z4b3JpX2IsIHNyYzAsIDEyOCwgc3JjMSwgMTI4 LCBzcmMyLCAxMjgsIHNyYzMsCj4+IDEyOCwKPj4gKyAgICAgICAgICAgICAgc3JjMCwgc3JjMSwg c3JjMiwgc3JjMyk7Cj4+ICsgICAgRFVQMl9BUkcyKF9fbHN4X3Z4b3JpX2IsIHNyYzQsIDEyOCwg c3JjNSwgMTI4LCBzcmM0LCBzcmM1KTsKPj4gKyAgICBzcmM2ID0gX19sc3hfdnhvcmlfYihzcmM2 LCAxMjgpOwo+PiArCj4+ICsgICAgdG1wMCA9IEhPUklaXzhUQVBfRklMVChzcmMwLCBzcmMxLCBt YXNrMCwgbWFzazEsIG1hc2syLCBtYXNrMywKPj4gZmlsdF9oejAsCj4+ICsgICAgICAgICAgICAg ICAgICAgICAgICAgICBmaWx0X2h6MSwgZmlsdF9oejIsIGZpbHRfaHozKTsKPj4gKyAgICB0bXAy ID0gSE9SSVpfOFRBUF9GSUxUKHNyYzIsIHNyYzMsIG1hc2swLCBtYXNrMSwgbWFzazIsIG1hc2sz LAo+PiBmaWx0X2h6MCwKPj4gKyAgICAgICAgICAgICAgICAgICAgICAgICAgIGZpbHRfaHoxLCBm aWx0X2h6MiwgZmlsdF9oejMpOwo+PiArICAgIHRtcDQgPSBIT1JJWl84VEFQX0ZJTFQoc3JjNCwg c3JjNSwgbWFzazAsIG1hc2sxLCBtYXNrMiwgbWFzazMsCj4+IGZpbHRfaHowLAo+PiArICAgICAg ICAgICAgICAgICAgICAgICAgICAgZmlsdF9oejEsIGZpbHRfaHoyLCBmaWx0X2h6Myk7Cj4+ICsg ICAgdG1wNSA9IEhPUklaXzhUQVBfRklMVChzcmM1LCBzcmM2LCBtYXNrMCwgbWFzazEsIG1hc2sy LCBtYXNrMywKPj4gZmlsdF9oejAsCj4+ICsgICAgICAgICAgICAgICAgICAgICAgICAgICBmaWx0 X2h6MSwgZmlsdF9oejIsIGZpbHRfaHozKTsKPj4gKyAgICBEVVAyX0FSRzMoX19sc3hfdnNodWZf YiwgdG1wMiwgdG1wMCwgc2h1ZmYsIHRtcDQsIHRtcDIsIHNodWZmLAo+PiB0bXAxLCB0bXAzKTsK Pj4gKyAgICBEVVA0X0FSRzIoX19sc3hfdmxkcmVwbF9oLCBmaWx0ZXJfdmVydCwgMCwgZmlsdGVy X3ZlcnQsIDIsCj4+IGZpbHRlcl92ZXJ0LCA0LAo+PiArICAgICAgICAgICAgICBmaWx0ZXJfdmVy dCwgNiwgZmlsdF92dDAsIGZpbHRfdnQxLCBmaWx0X3Z0MiwgZmlsdF92dDMpOwo+PiArICAgIERV UDJfQVJHMihfX2xzeF92cGFja2V2X2IsIHRtcDEsIHRtcDAsIHRtcDMsIHRtcDIsIHRtcDAsIHRt cDEpOwo+PiArICAgIHRtcDIgPSBfX2xzeF92cGFja2V2X2IodG1wNSwgdG1wNCk7Cj4+ICsKPj4g KyAgICBmb3IgKDtsb29wX2NudC0tOykgewo+PiArICAgICAgICBzcmM3ID0gX19sc3hfdmxkKF9z cmMsIDApOwo+PiArICAgICAgICBEVVAyX0FSRzIoX19sc3hfdmxkeCwgX3NyYywgc3JjX3N0cmlk ZSwgX3NyYywgc3JjX3N0cmlkZTIsCj4+IHNyYzgsIHNyYzkpOwo+PiArICAgICAgICBzcmMxMCA9 IF9fbHN4X3ZsZHgoX3NyYywgc3JjX3N0cmlkZTMpOwo+PiArICAgICAgICBfc3JjICs9IHNyY19z dHJpZGU0Owo+PiArICAgICAgICBEVVA0X0FSRzIoX19sc3hfdnhvcmlfYiwgc3JjNywgMTI4LCBz cmM4LCAxMjgsIHNyYzksIDEyOCwKPj4gc3JjMTAsIDEyOCwKPj4gKyAgICAgICAgICAgICAgICAg IHNyYzcsIHNyYzgsIHNyYzksIHNyYzEwKTsKPj4gKyAgICAgICAgdG1wMyA9IEhPUklaXzhUQVBf RklMVChzcmM3LCBzcmM4LCBtYXNrMCwgbWFzazEsIG1hc2syLCBtYXNrMywKPj4gZmlsdF9oejAs Cj4+ICsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZmlsdF9oejEsIGZpbHRfaHoyLCBm aWx0X2h6Myk7Cj4+ICsgICAgICAgIHRtcDQgPSBfX2xzeF92c2h1Zl9iKHRtcDMsIHRtcDUsIHNo dWZmKTsKPj4gKyAgICAgICAgdG1wNCA9IF9fbHN4X3ZwYWNrZXZfYih0bXAzLCB0bXA0KTsKPj4g KyAgICAgICAgb3V0MCA9IEZJTFRfOFRBUF9EUEFERF9TX0godG1wMCwgdG1wMSwgdG1wMiwgdG1w NCwgZmlsdF92dDAsCj4+IGZpbHRfdnQxLAo+PiArICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICBmaWx0X3Z0MiwgZmlsdF92dDMpOwo+PiArICAgICAgICBzcmMxID0gSE9SSVpfOFRB UF9GSUxUKHNyYzksIHNyYzEwLCBtYXNrMCwgbWFzazEsIG1hc2syLCBtYXNrMywKPj4gKyAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICBmaWx0X2h6MCwgZmlsdF9oejEsIGZpbHRfaHoyLCBm aWx0X2h6Myk7Cj4+ICsgICAgICAgIHNyYzAgPSBfX2xzeF92c2h1Zl9iKHNyYzEsIHRtcDMsIHNo dWZmKTsKPj4gKyAgICAgICAgc3JjMCA9IF9fbHN4X3ZwYWNrZXZfYihzcmMxLCBzcmMwKTsKPj4g KyAgICAgICAgb3V0MSA9IEZJTFRfOFRBUF9EUEFERF9TX0godG1wMSwgdG1wMiwgdG1wNCwgc3Jj MCwgZmlsdF92dDAsCj4+IGZpbHRfdnQxLAo+PiArICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICBmaWx0X3Z0MiwgZmlsdF92dDMpOwo+PiArICAgICAgICBvdXQwID0gX19sc3hfdnNz cmFybmlfYl9oKG91dDEsIG91dDAsIDcpOwo+PiArICAgICAgICBvdXQwID0gX19sc3hfdnhvcmlf YihvdXQwLCAxMjgpOwo+PiArICAgICAgICBfX2xzeF92c3RlbG1fdyhvdXQwLCBkc3QsIDAsIDAp Owo+PiArICAgICAgICBkc3QgKz0gZHN0X3N0cmlkZTsKPj4gKyAgICAgICAgX19sc3hfdnN0ZWxt X3cob3V0MCwgZHN0LCAwLCAxKTsKPj4gKyAgICAgICAgZHN0ICs9IGRzdF9zdHJpZGU7Cj4+ICsg ICAgICAgIF9fbHN4X3ZzdGVsbV93KG91dDAsIGRzdCwgMCwgMik7Cj4+ICsgICAgICAgIGRzdCAr PSBkc3Rfc3RyaWRlOwo+PiArICAgICAgICBfX2xzeF92c3RlbG1fdyhvdXQwLCBkc3QsIDAsIDMp Owo+PiArICAgICAgICBkc3QgKz0gZHN0X3N0cmlkZTsKPj4gKwo+PiArICAgICAgICB0bXA1ID0g c3JjMTsKPj4gKyAgICAgICAgdG1wMCA9IHRtcDI7Cj4+ICsgICAgICAgIHRtcDEgPSB0bXA0Owo+ PiArICAgICAgICB0bXAyID0gc3JjMDsKPj4gKyAgICB9Cj4+ICt9Cj4+ICsKPj4gK3N0YXRpYyB2 b2lkIGNvbW1vbl9odl84aHRfOHZ0Xzh3X2xzeChjb25zdCB1aW50OF90ICpzcmMsIGludDMyX3QK Pj4gc3JjX3N0cmlkZSwKPj4gKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB1 aW50OF90ICpkc3QsIGludDMyX3QgZHN0X3N0cmlkZSwKPj4gKyAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICBjb25zdCBpbnQ4X3QgKmZpbHRlcl9ob3JpeiwKPj4gKyAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBpbnQ4X3QgKmZpbHRlcl92ZXJ0LAo+ PiArICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGludDMyX3QgaGVpZ2h0KQo+ PiArewo+PiArICAgIHVpbnQzMl90IGxvb3BfY250ID0gaGVpZ2h0ID4+IDI7Cj4+ICsgICAgX19t MTI4aSBzcmMwLCBzcmMxLCBzcmMyLCBzcmMzLCBzcmM0LCBzcmM1LCBzcmM2LCBzcmM3LCBzcmM4 LAo+PiBzcmM5LCBzcmMxMDsKPj4gKyAgICBfX20xMjhpIGZpbHRfaHowLCBmaWx0X2h6MSwgZmls dF9oejIsIGZpbHRfaHozOwo+PiArICAgIF9fbTEyOGkgZmlsdF92dDAsIGZpbHRfdnQxLCBmaWx0 X3Z0MiwgZmlsdF92dDM7Cj4+ICsgICAgX19tMTI4aSBtYXNrMCwgbWFzazEsIG1hc2syLCBtYXNr MzsKPj4gKyAgICBfX20xMjhpIHRtcDAsIHRtcDEsIHRtcDIsIHRtcDMsIHRtcDQsIHRtcDUsIHRt cDY7Cj4+ICsgICAgX19tMTI4aSBvdXQwLCBvdXQxOwo+PiArICAgIGludDMyX3Qgc3JjX3N0cmlk ZTIgPSBzcmNfc3RyaWRlIDw8IDE7Cj4+ICsgICAgaW50MzJfdCBzcmNfc3RyaWRlMyA9IHNyY19z dHJpZGUgKyBzcmNfc3RyaWRlMjsKPj4gKyAgICBpbnQzMl90IHNyY19zdHJpZGU0ID0gc3JjX3N0 cmlkZTIgPDwgMTsKPj4gKyAgICB1aW50OF90KiBfc3JjID0gKHVpbnQ4X3QqKXNyYyAtIHNyY19z dHJpZGUzIC0gMzsKPj4gKwo+PiArICAgIG1hc2swID0gX19sc3hfdmxkKG1jX2ZpbHRfbWFza19h cnIsIDApOwo+PiArICAgIERVUDRfQVJHMihfX2xzeF92bGRyZXBsX2gsIGZpbHRlcl9ob3Jpeiwg MCwgZmlsdGVyX2hvcml6LCAyLAo+PiBmaWx0ZXJfaG9yaXosCj4+ICsgICAgICAgICAgICAgIDQs IGZpbHRlcl9ob3JpeiwgNiwgZmlsdF9oejAsIGZpbHRfaHoxLCBmaWx0X2h6MiwKPj4gZmlsdF9o ejMpOwo+PiArICAgIERVUDJfQVJHMihfX2xzeF92YWRkaV9idSwgbWFzazAsIDIsIG1hc2swLCA0 LCBtYXNrMSwgbWFzazIpOwo+PiArICAgIG1hc2szID0gX19sc3hfdmFkZGlfYnUobWFzazAsIDYp Owo+PiArCj4+ICsgICAgc3JjMCA9IF9fbHN4X3ZsZChfc3JjLCAwKTsKPj4gKyAgICBEVVAyX0FS RzIoX19sc3hfdmxkeCwgX3NyYywgc3JjX3N0cmlkZSwgX3NyYywgc3JjX3N0cmlkZTIsIHNyYzEs Cj4+IHNyYzIpOwo+PiArICAgIHNyYzMgPSBfX2xzeF92bGR4KF9zcmMsIHNyY19zdHJpZGUzKTsK Pj4gKyAgICBfc3JjICs9IHNyY19zdHJpZGU0Owo+PiArICAgIHNyYzQgPSBfX2xzeF92bGQoX3Ny YywgMCk7Cj4+ICsgICAgRFVQMl9BUkcyKF9fbHN4X3ZsZHgsIF9zcmMsIHNyY19zdHJpZGUsIF9z cmMsIHNyY19zdHJpZGUyLCBzcmM1LAo+PiBzcmM2KTsKPj4gKyAgICBfc3JjICs9IHNyY19zdHJp ZGUzOwo+PiArICAgIERVUDRfQVJHMihfX2xzeF92eG9yaV9iLCBzcmMwLCAxMjgsIHNyYzEsIDEy OCwgc3JjMiwgMTI4LCBzcmMzLAo+PiAxMjgsCj4+ICsgICAgICAgICAgICAgIHNyYzAsIHNyYzEs IHNyYzIsIHNyYzMpOwo+PiArICAgIERVUDJfQVJHMihfX2xzeF92eG9yaV9iLCBzcmM0LCAxMjgs IHNyYzUsIDEyOCwgc3JjNCwgc3JjNSk7Cj4+ICsgICAgc3JjNiA9IF9fbHN4X3Z4b3JpX2Ioc3Jj NiwgMTI4KTsKPj4gKwo+PiArICAgIHNyYzAgPSBIT1JJWl84VEFQX0ZJTFQoc3JjMCwgc3JjMCwg bWFzazAsIG1hc2sxLCBtYXNrMiwgbWFzazMsCj4+IGZpbHRfaHowLAo+PiArICAgICAgICAgICAg ICAgICAgICAgICAgICAgZmlsdF9oejEsIGZpbHRfaHoyLCBmaWx0X2h6Myk7Cj4+ICsgICAgc3Jj MSA9IEhPUklaXzhUQVBfRklMVChzcmMxLCBzcmMxLCBtYXNrMCwgbWFzazEsIG1hc2syLCBtYXNr MywKPj4gZmlsdF9oejAsCj4+ICsgICAgICAgICAgICAgICAgICAgICAgICAgICBmaWx0X2h6MSwg ZmlsdF9oejIsIGZpbHRfaHozKTsKPj4gKyAgICBzcmMyID0gSE9SSVpfOFRBUF9GSUxUKHNyYzIs IHNyYzIsIG1hc2swLCBtYXNrMSwgbWFzazIsIG1hc2szLAo+PiBmaWx0X2h6MCwKPj4gKyAgICAg ICAgICAgICAgICAgICAgICAgICAgIGZpbHRfaHoxLCBmaWx0X2h6MiwgZmlsdF9oejMpOwo+PiAr ICAgIHNyYzMgPSBIT1JJWl84VEFQX0ZJTFQoc3JjMywgc3JjMywgbWFzazAsIG1hc2sxLCBtYXNr MiwgbWFzazMsCj4+IGZpbHRfaHowLAo+PiArICAgICAgICAgICAgICAgICAgICAgICAgICAgZmls dF9oejEsIGZpbHRfaHoyLCBmaWx0X2h6Myk7Cj4+ICsgICAgc3JjNCA9IEhPUklaXzhUQVBfRklM VChzcmM0LCBzcmM0LCBtYXNrMCwgbWFzazEsIG1hc2syLCBtYXNrMywKPj4gZmlsdF9oejAsCj4+ ICsgICAgICAgICAgICAgICAgICAgICAgICAgICBmaWx0X2h6MSwgZmlsdF9oejIsIGZpbHRfaHoz KTsKPj4gKyAgICBzcmM1ID0gSE9SSVpfOFRBUF9GSUxUKHNyYzUsIHNyYzUsIG1hc2swLCBtYXNr MSwgbWFzazIsIG1hc2szLAo+PiBmaWx0X2h6MCwKPj4gKyAgICAgICAgICAgICAgICAgICAgICAg ICAgIGZpbHRfaHoxLCBmaWx0X2h6MiwgZmlsdF9oejMpOwo+PiArICAgIHNyYzYgPSBIT1JJWl84 VEFQX0ZJTFQoc3JjNiwgc3JjNiwgbWFzazAsIG1hc2sxLCBtYXNrMiwgbWFzazMsCj4+IGZpbHRf aHowLAo+PiArICAgICAgICAgICAgICAgICAgICAgICAgICAgZmlsdF9oejEsIGZpbHRfaHoyLCBm aWx0X2h6Myk7Cj4+ICsKPj4gKyAgICBEVVA0X0FSRzIoX19sc3hfdmxkcmVwbF9oLCBmaWx0ZXJf dmVydCwgMCwgZmlsdGVyX3ZlcnQsIDIsCj4+IGZpbHRlcl92ZXJ0LCA0LAo+PiArICAgICAgICAg ICAgICBmaWx0ZXJfdmVydCwgNiwgZmlsdF92dDAsIGZpbHRfdnQxLCBmaWx0X3Z0MiwgZmlsdF92 dDMpOwo+PiArICAgIERVUDRfQVJHMihfX2xzeF92cGFja2V2X2IsIHNyYzEsIHNyYzAsIHNyYzMs IHNyYzIsIHNyYzUsIHNyYzQsCj4+ICsgICAgICAgICAgICAgIHNyYzIsIHNyYzEsIHRtcDAsIHRt cDEsIHRtcDIsIHRtcDQpOwo+PiArICAgIERVUDJfQVJHMihfX2xzeF92cGFja2V2X2IsIHNyYzQs IHNyYzMsIHNyYzYsIHNyYzUsIHRtcDUsIHRtcDYpOwo+PiArCj4+ICsgICAgZm9yICg7bG9vcF9j bnQtLTspIHsKPj4gKyAgICAgICAgc3JjNyA9IF9fbHN4X3ZsZChfc3JjLCAwKTsKPj4gKyAgICAg ICAgRFVQMl9BUkcyKF9fbHN4X3ZsZHgsIF9zcmMsIHNyY19zdHJpZGUsIF9zcmMsIHNyY19zdHJp ZGUyLAo+PiBzcmM4LCBzcmM5KTsKPj4gKyAgICAgICAgc3JjMTAgPSBfX2xzeF92bGR4KF9zcmMs IHNyY19zdHJpZGUzKTsKPj4gKyAgICAgICAgX3NyYyArPSBzcmNfc3RyaWRlNDsKPj4gKwo+PiAr ICAgICAgICBEVVA0X0FSRzIoX19sc3hfdnhvcmlfYiwgc3JjNywgMTI4LCBzcmM4LCAxMjgsIHNy YzksIDEyOCwKPj4gc3JjMTAsIDEyOCwKPj4gKyAgICAgICAgICAgICAgICAgIHNyYzcsIHNyYzgs IHNyYzksIHNyYzEwKTsKPj4gKyAgICAgICAgc3JjNyA9IEhPUklaXzhUQVBfRklMVChzcmM3LCBz cmM3LCBtYXNrMCwgbWFzazEsIG1hc2syLCBtYXNrMywKPj4gZmlsdF9oejAsCj4+ICsgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgZmlsdF9oejEsIGZpbHRfaHoyLCBmaWx0X2h6Myk7Cj4+ ICsgICAgICAgIHRtcDMgPSBfX2xzeF92cGFja2V2X2Ioc3JjNywgc3JjNik7Cj4+ICsgICAgICAg IG91dDAgPSBGSUxUXzhUQVBfRFBBRERfU19IKHRtcDAsIHRtcDEsIHRtcDIsIHRtcDMsIGZpbHRf dnQwLAo+PiBmaWx0X3Z0MSwKPj4gKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ZmlsdF92dDIsIGZpbHRfdnQzKTsKPj4gKyAgICAgICAgc3JjOCA9IEhPUklaXzhUQVBfRklMVChz cmM4LCBzcmM4LCBtYXNrMCwgbWFzazEsIG1hc2syLCBtYXNrMywKPj4gZmlsdF9oejAsCj4+ICsg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZmlsdF9oejEsIGZpbHRfaHoyLCBmaWx0X2h6 Myk7Cj4+ICsgICAgICAgIHNyYzAgPSBfX2xzeF92cGFja2V2X2Ioc3JjOCwgc3JjNyk7Cj4+ICsg ICAgICAgIG91dDEgPSBGSUxUXzhUQVBfRFBBRERfU19IKHRtcDQsIHRtcDUsIHRtcDYsIHNyYzAs IGZpbHRfdnQwLAo+PiBmaWx0X3Z0MSwKPj4gKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgZmlsdF92dDIsIGZpbHRfdnQzKTsKPj4gKyAgICAgICAgc3JjOSA9IEhPUklaXzhUQVBf RklMVChzcmM5LCBzcmM5LCBtYXNrMCwgbWFzazEsIG1hc2syLCBtYXNrMywKPj4gZmlsdF9oejAs Cj4+ICsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZmlsdF9oejEsIGZpbHRfaHoyLCBm aWx0X2h6Myk7Cj4+ICsgICAgICAgIHNyYzEgPSBfX2xzeF92cGFja2V2X2Ioc3JjOSwgc3JjOCk7 Cj4+ICsgICAgICAgIHNyYzMgPSBGSUxUXzhUQVBfRFBBRERfU19IKHRtcDEsIHRtcDIsIHRtcDMs IHNyYzEsIGZpbHRfdnQwLAo+PiBmaWx0X3Z0MSwKPj4gKyAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgZmlsdF92dDIsIGZpbHRfdnQzKTsKPj4gKyAgICAgICAgc3JjMTAgPSBIT1JJ Wl84VEFQX0ZJTFQoc3JjMTAsIHNyYzEwLCBtYXNrMCwgbWFzazEsIG1hc2syLAo+PiBtYXNrMywK Pj4gKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZmlsdF9oejAsIGZpbHRfaHoxLCBm aWx0X2h6MiwKPj4gZmlsdF9oejMpOwo+PiArICAgICAgICBzcmMyID0gX19sc3hfdnBhY2tldl9i KHNyYzEwLCBzcmM5KTsKPj4gKyAgICAgICAgc3JjNCA9IEZJTFRfOFRBUF9EUEFERF9TX0godG1w NSwgdG1wNiwgc3JjMCwgc3JjMiwgZmlsdF92dDAsCj4+IGZpbHRfdnQxLAo+PiArICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICBmaWx0X3Z0MiwgZmlsdF92dDMpOwo+PiArICAgICAg ICBEVVAyX0FSRzMoX19sc3hfdnNzcmFybmlfYl9oLCBvdXQxLCBvdXQwLCA3LCBzcmM0LCBzcmMz LCA3LAo+PiBvdXQwLCBvdXQxKTsKPj4gKyAgICAgICAgRFVQMl9BUkcyKF9fbHN4X3Z4b3JpX2Is IG91dDAsIDEyOCwgb3V0MSwgMTI4LCBvdXQwLCBvdXQxKTsKPj4gKyAgICAgICAgX19sc3hfdnN0 ZWxtX2Qob3V0MCwgZHN0LCAwLCAwKTsKPj4gKyAgICAgICAgZHN0ICs9IGRzdF9zdHJpZGU7Cj4+ ICsgICAgICAgIF9fbHN4X3ZzdGVsbV9kKG91dDAsIGRzdCwgMCwgMSk7Cj4+ICsgICAgICAgIGRz dCArPSBkc3Rfc3RyaWRlOwo+PiArICAgICAgICBfX2xzeF92c3RlbG1fZChvdXQxLCBkc3QsIDAs IDApOwo+PiArICAgICAgICBkc3QgKz0gZHN0X3N0cmlkZTsKPj4gKyAgICAgICAgX19sc3hfdnN0 ZWxtX2Qob3V0MSwgZHN0LCAwLCAxKTsKPj4gKyAgICAgICAgZHN0ICs9IGRzdF9zdHJpZGU7Cj4+ ICsKPj4gKyAgICAgICAgc3JjNiA9IHNyYzEwOwo+PiArICAgICAgICB0bXAwID0gdG1wMjsKPj4g KyAgICAgICAgdG1wMSA9IHRtcDM7Cj4+ICsgICAgICAgIHRtcDIgPSBzcmMxOwo+PiArICAgICAg ICB0bXA0ID0gdG1wNjsKPj4gKyAgICAgICAgdG1wNSA9IHNyYzA7Cj4+ICsgICAgICAgIHRtcDYg PSBzcmMyOwo+PiArICAgIH0KPj4gK30KPj4gKwo+PiArc3RhdGljIHZvaWQgY29tbW9uX2h2Xzho dF84dnRfMTZ3X2xzeChjb25zdCB1aW50OF90ICpzcmMsIGludDMyX3QKPj4gc3JjX3N0cmlkZSwK Pj4gKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdWludDhfdCAqZHN0LCBp bnQzMl90IGRzdF9zdHJpZGUsCj4+ICsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIGNvbnN0IGludDhfdCAqZmlsdGVyX2hvcml6LAo+PiArICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICBjb25zdCBpbnQ4X3QgKmZpbHRlcl92ZXJ0LAo+PiArICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbnQzMl90IGhlaWdodCkKPj4gK3sKPj4gKyAg ICBpbnQzMl90IG11bHRpcGxlOF9jbnQ7Cj4+ICsKPj4gKyAgICBmb3IgKG11bHRpcGxlOF9jbnQg PSAyOyBtdWx0aXBsZThfY250LS07KSB7Cj4+ICsgICAgICAgIGNvbW1vbl9odl84aHRfOHZ0Xzh3 X2xzeChzcmMsIHNyY19zdHJpZGUsIGRzdCwgZHN0X3N0cmlkZSwKPj4gZmlsdGVyX2hvcml6LAo+ PiArICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZmlsdGVyX3ZlcnQsIGhlaWdodCk7 Cj4+ICsgICAgICAgIHNyYyArPSA4Owo+PiArICAgICAgICBkc3QgKz0gODsKPj4gKyAgICB9Cj4+ ICt9Cj4+ICsKPj4gK3N0YXRpYyB2b2lkIGNvbW1vbl9odl84aHRfOHZ0XzMyd19sc3goY29uc3Qg dWludDhfdCAqc3JjLCBpbnQzMl90Cj4+IHNyY19zdHJpZGUsCj4+ICsgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIHVpbnQ4X3QgKmRzdCwgaW50MzJfdCBkc3Rfc3RyaWRlLAo+ PiArICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBpbnQ4X3QgKmZp bHRlcl9ob3JpeiwKPj4gKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29u c3QgaW50OF90ICpmaWx0ZXJfdmVydCwKPj4gKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgaW50MzJfdCBoZWlnaHQpCj4+ICt7Cj4+ICsgICAgaW50MzJfdCBtdWx0aXBsZThf Y250Owo+PiArCj4+ICsgICAgZm9yIChtdWx0aXBsZThfY250ID0gNDsgbXVsdGlwbGU4X2NudC0t Oykgewo+PiArICAgICAgICBjb21tb25faHZfOGh0Xzh2dF84d19sc3goc3JjLCBzcmNfc3RyaWRl LCBkc3QsIGRzdF9zdHJpZGUsCj4+IGZpbHRlcl9ob3JpeiwKPj4gKyAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIGZpbHRlcl92ZXJ0LCBoZWlnaHQpOwo+PiArICAgICAgICBzcmMgKz0g ODsKPj4gKyAgICAgICAgZHN0ICs9IDg7Cj4+ICsgICAgfQo+PiArfQo+PiArCj4+ICtzdGF0aWMg dm9pZCBjb21tb25faHZfOGh0Xzh2dF82NHdfbHN4KGNvbnN0IHVpbnQ4X3QgKnNyYywgaW50MzJf dAo+PiBzcmNfc3RyaWRlLAo+PiArICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICB1aW50OF90ICpkc3QsIGludDMyX3QgZHN0X3N0cmlkZSwKPj4gKyAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgY29uc3QgaW50OF90ICpmaWx0ZXJfaG9yaXosCj4+ICsgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IGludDhfdCAqZmlsdGVyX3Zl cnQsCj4+ICsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGludDMyX3QgaGVp Z2h0KQo+PiArewo+PiArICAgIGludDMyX3QgbXVsdGlwbGU4X2NudDsKPj4gKwo+PiArICAgIGZv ciAobXVsdGlwbGU4X2NudCA9IDg7IG11bHRpcGxlOF9jbnQtLTspIHsKPj4gKyAgICAgICAgY29t bW9uX2h2XzhodF84dnRfOHdfbHN4KHNyYywgc3JjX3N0cmlkZSwgZHN0LCBkc3Rfc3RyaWRlLAo+ PiBmaWx0ZXJfaG9yaXosCj4+ICsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmaWx0 ZXJfdmVydCwgaGVpZ2h0KTsKPj4gKyAgICAgICAgc3JjICs9IDg7Cj4+ICsgICAgICAgIGRzdCAr PSA4Owo+PiArICAgIH0KPj4gK30KPj4gKwo+PiArc3RhdGljIHZvaWQgY29weV93aWR0aDhfbHN4 KGNvbnN0IHVpbnQ4X3QgKnNyYywgaW50MzJfdCBzcmNfc3RyaWRlLAo+PiArICAgICAgICAgICAg ICAgICAgICAgICAgICAgIHVpbnQ4X3QgKmRzdCwgaW50MzJfdCBkc3Rfc3RyaWRlLAo+PiArICAg ICAgICAgICAgICAgICAgICAgICAgICAgIGludDMyX3QgaGVpZ2h0KQo+PiArewo+PiArICAgIGlu dDMyX3QgY250ID0gaGVpZ2h0ID4+IDI7Cj4+ICsgICAgX19tMTI4aSBzcmMwLCBzcmMxLCBzcmMy LCBzcmMzOwo+PiArCj4+ICsgICAgZm9yICg7Y250LS07KSB7Cj4+ICsgICAgICAgIHNyYzAgPSBf X2xzeF92bGRyZXBsX2Qoc3JjLCAwKTsKPj4gKyAgICAgICAgc3JjICs9IHNyY19zdHJpZGU7Cj4+ ICsgICAgICAgIHNyYzEgPSBfX2xzeF92bGRyZXBsX2Qoc3JjLCAwKTsKPj4gKyAgICAgICAgc3Jj ICs9IHNyY19zdHJpZGU7Cj4+ICsgICAgICAgIHNyYzIgPSBfX2xzeF92bGRyZXBsX2Qoc3JjLCAw KTsKPj4gKyAgICAgICAgc3JjICs9IHNyY19zdHJpZGU7Cj4+ICsgICAgICAgIHNyYzMgPSBfX2xz eF92bGRyZXBsX2Qoc3JjLCAwKTsKPj4gKyAgICAgICAgc3JjICs9IHNyY19zdHJpZGU7Cj4+ICsg ICAgICAgIF9fbHN4X3ZzdGVsbV9kKHNyYzAsIGRzdCwgMCwgMCk7Cj4+ICsgICAgICAgIGRzdCAr PSBkc3Rfc3RyaWRlOwo+PiArICAgICAgICBfX2xzeF92c3RlbG1fZChzcmMxLCBkc3QsIDAsIDAp Owo+PiArICAgICAgICBkc3QgKz0gZHN0X3N0cmlkZTsKPj4gKyAgICAgICAgX19sc3hfdnN0ZWxt X2Qoc3JjMiwgZHN0LCAwLCAwKTsKPj4gKyAgICAgICAgZHN0ICs9IGRzdF9zdHJpZGU7Cj4+ICsg ICAgICAgIF9fbHN4X3ZzdGVsbV9kKHNyYzMsIGRzdCwgMCwgMCk7Cj4+ICsgICAgICAgIGRzdCAr PSBkc3Rfc3RyaWRlOwo+PiArICAgIH0KPj4gK30KPj4gKwo+PiArc3RhdGljIHZvaWQgY29weV93 aWR0aDE2X2xzeChjb25zdCB1aW50OF90ICpzcmMsIGludDMyX3Qgc3JjX3N0cmlkZSwKPj4gKyAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgdWludDhfdCAqZHN0LCBpbnQzMl90IGRzdF9zdHJp ZGUsCj4+ICsgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGludDMyX3QgaGVpZ2h0KQo+PiAr ewo+PiArICAgIGludDMyX3QgY250ID0gaGVpZ2h0ID4+IDI7Cj4+ICsgICAgX19tMTI4aSBzcmMw LCBzcmMxLCBzcmMyLCBzcmMzOwo+PiArICAgIGludDMyX3Qgc3JjX3N0cmlkZTIgPSBzcmNfc3Ry aWRlIDw8IDE7Cj4+ICsgICAgaW50MzJfdCBzcmNfc3RyaWRlMyA9IHNyY19zdHJpZGUgKyBzcmNf c3RyaWRlMjsKPj4gKyAgICBpbnQzMl90IHNyY19zdHJpZGU0ID0gc3JjX3N0cmlkZTIgPDwgMTsK Pj4gKyAgICBpbnQzMl90IGRzdF9zdHJpZGUyID0gZHN0X3N0cmlkZSA8PCAxOwo+PiArICAgIGlu dDMyX3QgZHN0X3N0cmlkZTMgPSBkc3Rfc3RyaWRlMiArIGRzdF9zdHJpZGU7Cj4+ICsgICAgaW50 MzJfdCBkc3Rfc3RyaWRlNCA9IGRzdF9zdHJpZGUyIDw8IDE7Cj4+ICsgICAgdWludDhfdCAqX3Ny YyA9ICh1aW50OF90KilzcmM7Cj4+ICsKPj4gKyAgICBmb3IgKDtjbnQtLTspIHsKPj4gKyAgICAg ICAgc3JjMCA9IF9fbHN4X3ZsZChfc3JjLCAwKTsKPj4gKyAgICAgICAgRFVQMl9BUkcyKF9fbHN4 X3ZsZHgsIF9zcmMsIHNyY19zdHJpZGUsIF9zcmMsIHNyY19zdHJpZGUyLAo+PiBzcmMxLCBzcmMy KTsKPj4gKyAgICAgICAgc3JjMyA9IF9fbHN4X3ZsZHgoX3NyYywgc3JjX3N0cmlkZTMpOwo+PiAr ICAgICAgICBfc3JjICs9IHNyY19zdHJpZGU0Owo+PiArICAgICAgICBfX2xzeF92c3Qoc3JjMCwg ZHN0LCAwKTsKPj4gKyAgICAgICAgX19sc3hfdnN0eChzcmMxLCBkc3QsIGRzdF9zdHJpZGUpOwo+ PiArICAgICAgICBfX2xzeF92c3R4KHNyYzIsIGRzdCwgZHN0X3N0cmlkZTIpOwo+PiArICAgICAg ICBfX2xzeF92c3R4KHNyYzMsIGRzdCwgZHN0X3N0cmlkZTMpOwo+PiArICAgICAgICBkc3QgKz0g ZHN0X3N0cmlkZTQ7Cj4+ICsgICAgfQo+PiArfQo+PiArCj4+ICtzdGF0aWMgdm9pZCBjb3B5X3dp ZHRoMzJfbHN4KGNvbnN0IHVpbnQ4X3QgKnNyYywgaW50MzJfdCBzcmNfc3RyaWRlLAo+PiArICAg ICAgICAgICAgICAgICAgICAgICAgICAgICB1aW50OF90ICpkc3QsIGludDMyX3QgZHN0X3N0cmlk ZSwKPj4gKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW50MzJfdCBoZWlnaHQpCj4+ICt7 Cj4+ICsgICAgaW50MzJfdCBjbnQgPSBoZWlnaHQgPj4gMjsKPj4gKyAgICB1aW50OF90ICpzcmNf dG1wMSA9ICh1aW50OF90KilzcmM7Cj4+ICsgICAgdWludDhfdCAqZHN0X3RtcDEgPSBkc3Q7Cj4+ ICsgICAgdWludDhfdCAqc3JjX3RtcDIgPSBzcmNfdG1wMSArIDE2Owo+PiArICAgIHVpbnQ4X3Qg KmRzdF90bXAyID0gZHN0X3RtcDEgKyAxNjsKPj4gKyAgICBpbnQzMl90IHNyY19zdHJpZGUyID0g c3JjX3N0cmlkZSA8PCAxOwo+PiArICAgIGludDMyX3Qgc3JjX3N0cmlkZTMgPSBzcmNfc3RyaWRl ICsgc3JjX3N0cmlkZTI7Cj4+ICsgICAgaW50MzJfdCBzcmNfc3RyaWRlNCA9IHNyY19zdHJpZGUy IDw8IDE7Cj4+ICsgICAgaW50MzJfdCBkc3Rfc3RyaWRlMiA9IGRzdF9zdHJpZGUgPDwgMTsKPj4g KyAgICBpbnQzMl90IGRzdF9zdHJpZGUzID0gZHN0X3N0cmlkZTIgKyBkc3Rfc3RyaWRlOwo+PiAr ICAgIGludDMyX3QgZHN0X3N0cmlkZTQgPSBkc3Rfc3RyaWRlMiA8PCAxOwo+PiArICAgIF9fbTEy OGkgc3JjMCwgc3JjMSwgc3JjMiwgc3JjMywgc3JjNCwgc3JjNSwgc3JjNiwgc3JjNzsKPj4gKwo+ PiArICAgIGZvciAoO2NudC0tOykgewo+PiArICAgICAgICBzcmMwID0gX19sc3hfdmxkKHNyY190 bXAxLCAwKTsKPj4gKyAgICAgICAgRFVQMl9BUkcyKF9fbHN4X3ZsZHgsIHNyY190bXAxLCBzcmNf c3RyaWRlLCBzcmNfdG1wMSwKPj4gc3JjX3N0cmlkZTIsCj4+ICsgICAgICAgICAgICAgICAgICBz cmMxLCBzcmMyKTsKPj4gKyAgICAgICAgc3JjMyA9IF9fbHN4X3ZsZHgoc3JjX3RtcDEsIHNyY19z dHJpZGUzKTsKPj4gKyAgICAgICAgc3JjX3RtcDEgKz0gc3JjX3N0cmlkZTQ7Cj4+ICsKPj4gKyAg ICAgICAgc3JjNCA9IF9fbHN4X3ZsZChzcmNfdG1wMiwgMCk7Cj4+ICsgICAgICAgIERVUDJfQVJH MihfX2xzeF92bGR4LCBzcmNfdG1wMiwgc3JjX3N0cmlkZSwgc3JjX3RtcDIsCj4+IHNyY19zdHJp ZGUyLAo+PiArICAgICAgICAgICAgICAgICAgc3JjNSwgc3JjNik7Cj4+ICsgICAgICAgIHNyYzcg PSBfX2xzeF92bGR4KHNyY190bXAyLCBzcmNfc3RyaWRlMyk7Cj4+ICsgICAgICAgIHNyY190bXAy ICs9IHNyY19zdHJpZGU0Owo+PiArCj4+ICsgICAgICAgIF9fbHN4X3ZzdChzcmMwLCBkc3RfdG1w MSwgMCk7Cj4+ICsgICAgICAgIF9fbHN4X3ZzdHgoc3JjMSwgZHN0X3RtcDEsIGRzdF9zdHJpZGUp Owo+PiArICAgICAgICBfX2xzeF92c3R4KHNyYzIsIGRzdF90bXAxLCBkc3Rfc3RyaWRlMik7Cj4+ ICsgICAgICAgIF9fbHN4X3ZzdHgoc3JjMywgZHN0X3RtcDEsIGRzdF9zdHJpZGUzKTsKPj4gKyAg ICAgICAgZHN0X3RtcDEgKz0gZHN0X3N0cmlkZTQ7Cj4+ICsgICAgICAgIF9fbHN4X3ZzdChzcmM0 LCBkc3RfdG1wMiwgMCk7Cj4+ICsgICAgICAgIF9fbHN4X3ZzdHgoc3JjNSwgZHN0X3RtcDIsIGRz dF9zdHJpZGUpOwo+PiArICAgICAgICBfX2xzeF92c3R4KHNyYzYsIGRzdF90bXAyLCBkc3Rfc3Ry aWRlMik7Cj4+ICsgICAgICAgIF9fbHN4X3ZzdHgoc3JjNywgZHN0X3RtcDIsIGRzdF9zdHJpZGUz KTsKPj4gKyAgICAgICAgZHN0X3RtcDIgKz0gZHN0X3N0cmlkZTQ7Cj4+ICsgICAgfQo+PiArfQo+ PiArCj4+ICtzdGF0aWMgdm9pZCBjb3B5X3dpZHRoNjRfbHN4KGNvbnN0IHVpbnQ4X3QgKnNyYywg aW50MzJfdCBzcmNfc3RyaWRlLAo+PiArICAgICAgICAgICAgICAgICAgICAgICAgICAgICB1aW50 OF90ICpkc3QsIGludDMyX3QgZHN0X3N0cmlkZSwKPj4gKyAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgaW50MzJfdCBoZWlnaHQpCj4+ICt7Cj4+ICsgICAgaW50MzJfdCBjbnQgPSBoZWlnaHQg Pj4gMjsKPj4gKyAgICBfX20xMjhpIHNyYzAsIHNyYzEsIHNyYzIsIHNyYzMsIHNyYzQsIHNyYzUs IHNyYzYsIHNyYzc7Cj4+ICsgICAgX19tMTI4aSBzcmM4LCBzcmM5LCBzcmMxMCwgc3JjMTEsIHNy YzEyLCBzcmMxMywgc3JjMTQsIHNyYzE1Owo+PiArCj4+ICsgICAgZm9yICg7Y250LS07KSB7Cj4+ ICsgICAgICAgIERVUDRfQVJHMihfX2xzeF92bGQsIHNyYywgMCwgc3JjLCAxNiwgc3JjLCAzMiwg c3JjLCA0OCwKPj4gKyAgICAgICAgICAgICAgICAgIHNyYzAsIHNyYzEsIHNyYzIsIHNyYzMpOwo+ PiArICAgICAgICBzcmMgKz0gc3JjX3N0cmlkZTsKPj4gKyAgICAgICAgRFVQNF9BUkcyKF9fbHN4 X3ZsZCwgc3JjLCAwLCBzcmMsIDE2LCBzcmMsIDMyLCBzcmMsIDQ4LAo+PiArICAgICAgICAgICAg ICAgICAgc3JjNCwgc3JjNSwgc3JjNiwgc3JjNyk7Cj4+ICsgICAgICAgIHNyYyArPSBzcmNfc3Ry aWRlOwo+PiArICAgICAgICBEVVA0X0FSRzIoX19sc3hfdmxkLCBzcmMsIDAsIHNyYywgMTYsIHNy YywgMzIsIHNyYywgNDgsCj4+ICsgICAgICAgICAgICAgICAgICBzcmM4LCBzcmM5LCBzcmMxMCwg c3JjMTEpOwo+PiArICAgICAgICBzcmMgKz0gc3JjX3N0cmlkZTsKPj4gKyAgICAgICAgRFVQNF9B UkcyKF9fbHN4X3ZsZCwgc3JjLCAwLCBzcmMsIDE2LCBzcmMsIDMyLCBzcmMsIDQ4LAo+PiArICAg ICAgICAgICAgICAgICAgc3JjMTIsIHNyYzEzLCBzcmMxNCwgc3JjMTUpOwo+PiArICAgICAgICBz cmMgKz0gc3JjX3N0cmlkZTsKPj4gKyAgICAgICAgX19sc3hfdnN0KHNyYzAsIGRzdCwgMCk7Cj4+ ICsgICAgICAgIF9fbHN4X3ZzdChzcmMxLCBkc3QsIDE2KTsKPj4gKyAgICAgICAgX19sc3hfdnN0 KHNyYzIsIGRzdCwgMzIpOwo+PiArICAgICAgICBfX2xzeF92c3Qoc3JjMywgZHN0LCA0OCk7Cj4+ ICsgICAgICAgIGRzdCArPSBkc3Rfc3RyaWRlOwo+PiArICAgICAgICBfX2xzeF92c3Qoc3JjNCwg ZHN0LCAwKTsKPj4gKyAgICAgICAgX19sc3hfdnN0KHNyYzUsIGRzdCwgMTYpOwo+PiArICAgICAg ICBfX2xzeF92c3Qoc3JjNiwgZHN0LCAzMik7Cj4+ICsgICAgICAgIF9fbHN4X3ZzdChzcmM3LCBk c3QsIDQ4KTsKPj4gKyAgICAgICAgZHN0ICs9IGRzdF9zdHJpZGU7Cj4+ICsgICAgICAgIF9fbHN4 X3ZzdChzcmM4LCBkc3QsIDApOwo+PiArICAgICAgICBfX2xzeF92c3Qoc3JjOSwgZHN0LCAxNik7 Cj4+ICsgICAgICAgIF9fbHN4X3ZzdChzcmMxMCwgZHN0LCAzMik7Cj4+ICsgICAgICAgIF9fbHN4 X3ZzdChzcmMxMSwgZHN0LCA0OCk7Cj4+ICsgICAgICAgIGRzdCArPSBkc3Rfc3RyaWRlOwo+PiAr ICAgICAgICBfX2xzeF92c3Qoc3JjMTIsIGRzdCwgMCk7Cj4+ICsgICAgICAgIF9fbHN4X3ZzdChz cmMxMywgZHN0LCAxNik7Cj4+ICsgICAgICAgIF9fbHN4X3ZzdChzcmMxNCwgZHN0LCAzMik7Cj4+ ICsgICAgICAgIF9fbHN4X3ZzdChzcmMxNSwgZHN0LCA0OCk7Cj4+ICsgICAgICAgIGRzdCArPSBk c3Rfc3RyaWRlOwo+PiArICAgIH0KPj4gK30KPj4gKwo+PiArc3RhdGljIHZvaWQgY29tbW9uX2h6 Xzh0X2FuZF9hdmVyX2RzdF80eDRfbHN4KGNvbnN0IHVpbnQ4X3QgKnNyYywKPj4gKyAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbnQzMl90IHNyY19zdHJpZGUs Cj4+ICsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdWludDhf dCAqZHN0LCBpbnQzMl90Cj4+IGRzdF9zdHJpZGUsCj4+ICsgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgaW50OF90ICpmaWx0ZXIpCj4+ICt7Cj4+ICsg ICAgdWludDhfdCAqZHN0X3RtcCA9IGRzdDsKPj4gKyAgICBfX20xMjhpIHNyYzAsIHNyYzEsIHNy YzIsIHNyYzM7Cj4+ICsgICAgX19tMTI4aSBmaWx0ZXIwLCBmaWx0ZXIxLCBmaWx0ZXIyLCBmaWx0 ZXIzOwo+PiArICAgIF9fbTEyOGkgbWFzazAsIG1hc2sxLCBtYXNrMiwgbWFzazM7Cj4+ICsgICAg X19tMTI4aSB0bXAwLCB0bXAxOwo+PiArICAgIF9fbTEyOGkgZHN0MCwgZHN0MSwgZHN0MiwgZHN0 MzsKPj4gKwo+PiArICAgIG1hc2swID0gX19sc3hfdmxkKG1jX2ZpbHRfbWFza19hcnIsIDE2KTsK Pj4gKyAgICBzcmMgLT0gMzsKPj4gKyAgICBEVVAyX0FSRzIoX19sc3hfdmFkZGlfYnUsIG1hc2sw LCAyLCBtYXNrMCwgNCwgbWFzazEsIG1hc2syKTsKPj4gKyAgICBtYXNrMyA9IF9fbHN4X3ZhZGRp X2J1KG1hc2swLCA2KTsKPj4gKyAgICBEVVA0X0FSRzIoX19sc3hfdmxkcmVwbF9oLCBmaWx0ZXIs IDAsIGZpbHRlciwgMiwgZmlsdGVyLCA0LAo+PiBmaWx0ZXIsIDYsCj4+ICsgICAgICAgICAgICAg IGZpbHRlcjAsIGZpbHRlcjEsIGZpbHRlcjIsIGZpbHRlcjMpOwo+PiArICAgIExTWF9MRF80KHNy Yywgc3JjX3N0cmlkZSwgc3JjMCwgc3JjMSwgc3JjMiwgc3JjMyk7Cj4+ICsgICAgRFVQNF9BUkcy KF9fbHN4X3Z4b3JpX2IsIHNyYzAsIDEyOCwgc3JjMSwgMTI4LCBzcmMyLCAxMjgsIHNyYzMsCj4+ IDEyOCwKPj4gKyAgICAgICAgICAgICAgc3JjMCwgc3JjMSwgc3JjMiwgc3JjMyk7Cj4+ICsgICAg SE9SSVpfOFRBUF80V0lEXzRWRUNTX0ZJTFQoc3JjMCwgc3JjMSwgc3JjMiwgc3JjMywgbWFzazAs IG1hc2sxLAo+PiBtYXNrMiwgbWFzazMsCj4+ICsgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgZmlsdGVyMCwgZmlsdGVyMSwgZmlsdGVyMiwgZmlsdGVyMywKPj4gdG1wMCwgdG1wMSk7Cj4+ ICsgICAgZHN0MCA9IF9fbHN4X3ZsZHJlcGxfdyhkc3RfdG1wLCAwKTsKPj4gKyAgICBkc3RfdG1w ICs9IGRzdF9zdHJpZGU7Cj4+ICsgICAgZHN0MSA9IF9fbHN4X3ZsZHJlcGxfdyhkc3RfdG1wLCAw KTsKPj4gKyAgICBkc3RfdG1wICs9IGRzdF9zdHJpZGU7Cj4+ICsgICAgZHN0MiA9IF9fbHN4X3Zs ZHJlcGxfdyhkc3RfdG1wLCAwKTsKPj4gKyAgICBkc3RfdG1wICs9IGRzdF9zdHJpZGU7Cj4+ICsg ICAgZHN0MyA9IF9fbHN4X3ZsZHJlcGxfdyhkc3RfdG1wLCAwKTsKPj4gKyAgICBkc3QwID0gX19s c3hfdmlsdmxfdyhkc3QxLCBkc3QwKTsKPj4gKyAgICBkc3QxID0gX19sc3hfdmlsdmxfdyhkc3Qz LCBkc3QyKTsKPj4gKyAgICBkc3QwID0gX19sc3hfdmlsdmxfZChkc3QxLCBkc3QwKTsKPj4gKyAg ICB0bXAwID0gX19sc3hfdnNzcmFybmlfYl9oKHRtcDEsIHRtcDAsIDcpOwo+PiArICAgIHRtcDAg PSBfX2xzeF92eG9yaV9iKHRtcDAsIDEyOCk7Cj4+ICsgICAgZHN0MCA9IF9fbHN4X3ZhdmdyX2J1 KHRtcDAsIGRzdDApOwo+PiArICAgIF9fbHN4X3ZzdGVsbV93KGRzdDAsIGRzdCwgMCwgMCk7Cj4+ ICsgICAgZHN0ICs9IGRzdF9zdHJpZGU7Cj4+ICsgICAgX19sc3hfdnN0ZWxtX3coZHN0MCwgZHN0 LCAwLCAxKTsKPj4gKyAgICBkc3QgKz0gZHN0X3N0cmlkZTsKPj4gKyAgICBfX2xzeF92c3RlbG1f dyhkc3QwLCBkc3QsIDAsIDIpOwo+PiArICAgIGRzdCArPSBkc3Rfc3RyaWRlOwo+PiArICAgIF9f bHN4X3ZzdGVsbV93KGRzdDAsIGRzdCwgMCwgMyk7Cj4+ICt9Cj4+ICsKPj4gK3N0YXRpYyB2b2lk IGNvbW1vbl9oel84dF9hbmRfYXZlcl9kc3RfNHg4X2xzeChjb25zdCB1aW50OF90ICpzcmMsCj4+ ICsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW50MzJfdCBz cmNfc3RyaWRlLAo+PiArICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIHVpbnQ4X3QgKmRzdCwgaW50MzJfdAo+PiBkc3Rfc3RyaWRlLAo+PiArICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IGludDhfdCAqZmlsdGVyKQo+ PiArewo+PiArICAgIHVpbnQ4X3QgKmRzdF90bXAgPSBkc3Q7Cj4+ICsgICAgX19tMTI4aSBzcmMw LCBzcmMxLCBzcmMyLCBzcmMzLCBmaWx0ZXIwLCBmaWx0ZXIxLCBmaWx0ZXIyLCBmaWx0ZXIzOwo+ PiArICAgIF9fbTEyOGkgbWFzazAsIG1hc2sxLCBtYXNrMiwgbWFzazMsIHRtcDAsIHRtcDEsIHRt cDIsIHRtcDM7Cj4+ICsgICAgX19tMTI4aSBkc3QwLCBkc3QxOwo+PiArCj4+ICsgICAgbWFzazAg PSBfX2xzeF92bGQobWNfZmlsdF9tYXNrX2FyciwgMTYpOwo+PiArICAgIHNyYyAtPSAzOwo+PiAr ICAgIERVUDJfQVJHMihfX2xzeF92YWRkaV9idSwgbWFzazAsIDIsIG1hc2swLCA0LCBtYXNrMSwg bWFzazIpOwo+PiArICAgIG1hc2szID0gX19sc3hfdmFkZGlfYnUobWFzazAsIDYpOwo+PiArICAg IERVUDRfQVJHMihfX2xzeF92bGRyZXBsX2gsIGZpbHRlciwgMCwgZmlsdGVyLCAyLCBmaWx0ZXIs IDQsCj4+IGZpbHRlciwgNiwKPj4gKyAgICAgICAgICAgICAgZmlsdGVyMCwgZmlsdGVyMSwgZmls dGVyMiwgZmlsdGVyMyk7Cj4+ICsKPj4gKyAgICBMU1hfTERfNChzcmMsIHNyY19zdHJpZGUsIHNy YzAsIHNyYzEsIHNyYzIsIHNyYzMpOwo+PiArICAgIHNyYyArPSBzcmNfc3RyaWRlOwo+PiArICAg IERVUDRfQVJHMihfX2xzeF92eG9yaV9iLCBzcmMwLCAxMjgsIHNyYzEsIDEyOCwgc3JjMiwgMTI4 LCBzcmMzLAo+PiAxMjgsCj4+ICsgICAgICAgICAgICAgIHNyYzAsIHNyYzEsIHNyYzIsIHNyYzMp Owo+PiArICAgIHRtcDAgPSBfX2xzeF92bGRyZXBsX3coZHN0X3RtcCwgMCk7Cj4+ICsgICAgZHN0 X3RtcCArPSBkc3Rfc3RyaWRlOwo+PiArICAgIHRtcDEgPSBfX2xzeF92bGRyZXBsX3coZHN0X3Rt cCwgMCk7Cj4+ICsgICAgZHN0X3RtcCArPSBkc3Rfc3RyaWRlOwo+PiArICAgIHRtcDIgPSBfX2xz eF92bGRyZXBsX3coZHN0X3RtcCwgMCk7Cj4+ICsgICAgZHN0X3RtcCArPSBkc3Rfc3RyaWRlOwo+ PiArICAgIHRtcDMgPSBfX2xzeF92bGRyZXBsX3coZHN0X3RtcCwgMCk7Cj4+ICsgICAgZHN0X3Rt cCArPSBkc3Rfc3RyaWRlOwo+PiArICAgIHRtcDAgPSBfX2xzeF92aWx2bF93KHRtcDEsIHRtcDAp Owo+PiArICAgIHRtcDEgPSBfX2xzeF92aWx2bF93KHRtcDMsIHRtcDIpOwo+PiArICAgIGRzdDAg PSBfX2xzeF92aWx2bF9kKHRtcDEsIHRtcDApOwo+PiArCj4+ICsgICAgdG1wMCA9IF9fbHN4X3Zs ZHJlcGxfdyhkc3RfdG1wLCAwKTsKPj4gKyAgICBkc3RfdG1wICs9IGRzdF9zdHJpZGU7Cj4+ICsg ICAgdG1wMSA9IF9fbHN4X3ZsZHJlcGxfdyhkc3RfdG1wLCAwKTsKPj4gKyAgICBkc3RfdG1wICs9 IGRzdF9zdHJpZGU7Cj4+ICsgICAgdG1wMiA9IF9fbHN4X3ZsZHJlcGxfdyhkc3RfdG1wLCAwKTsK Pj4gKyAgICBkc3RfdG1wICs9IGRzdF9zdHJpZGU7Cj4+ICsgICAgdG1wMyA9IF9fbHN4X3ZsZHJl cGxfdyhkc3RfdG1wLCAwKTsKPj4gKyAgICB0bXAwID0gX19sc3hfdmlsdmxfdyh0bXAxLCB0bXAw KTsKPj4gKyAgICB0bXAxID0gX19sc3hfdmlsdmxfdyh0bXAzLCB0bXAyKTsKPj4gKyAgICBkc3Qx ID0gX19sc3hfdmlsdmxfZCh0bXAxLCB0bXAwKTsKPj4gKyAgICBIT1JJWl84VEFQXzRXSURfNFZF Q1NfRklMVChzcmMwLCBzcmMxLCBzcmMyLCBzcmMzLCBtYXNrMCwgbWFzazEsCj4+IG1hc2syLCBt YXNrMywKPj4gKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmaWx0ZXIwLCBmaWx0ZXIx LCBmaWx0ZXIyLCBmaWx0ZXIzLAo+PiB0bXAwLCB0bXAxKTsKPj4gKyAgICBMU1hfTERfNChzcmMs IHNyY19zdHJpZGUsIHNyYzAsIHNyYzEsIHNyYzIsIHNyYzMpOwo+PiArICAgIERVUDRfQVJHMihf X2xzeF92eG9yaV9iLCBzcmMwLCAxMjgsIHNyYzEsIDEyOCwgc3JjMiwgMTI4LCBzcmMzLAo+PiAx MjgsCj4+ICsgICAgICAgICAgICAgIHNyYzAsIHNyYzEsIHNyYzIsIHNyYzMpOwo+PiArICAgIEhP UklaXzhUQVBfNFdJRF80VkVDU19GSUxUKHNyYzAsIHNyYzEsIHNyYzIsIHNyYzMsIG1hc2swLCBt YXNrMSwKPj4gbWFzazIsIG1hc2szLAo+PiArICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg IGZpbHRlcjAsIGZpbHRlcjEsIGZpbHRlcjIsIGZpbHRlcjMsCj4+IHRtcDIsIHRtcDMpOwo+PiAr ICAgIERVUDRfQVJHMyhfX2xzeF92c3NyYXJuaV9iX2gsIHRtcDAsIHRtcDAsIDcsIHRtcDEsIHRt cDEsIDcsIHRtcDIsCj4+IHRtcDIsIDcsCj4+ICsgICAgICAgICAgICAgIHRtcDMsIHRtcDMsIDcs IHRtcDAsIHRtcDEsIHRtcDIsIHRtcDMpOwo+PiArICAgIERVUDJfQVJHMihfX2xzeF92aWx2bF9k LCB0bXAxLCB0bXAwLCB0bXAzLCB0bXAyLCB0bXAwLCB0bXAxKTsKPj4gKyAgICBEVVAyX0FSRzIo X19sc3hfdnhvcmlfYiwgdG1wMCwgMTI4LCB0bXAxLCAxMjgsIHRtcDAsIHRtcDEpOwo+PiArICAg IERVUDJfQVJHMihfX2xzeF92YXZncl9idSwgdG1wMCwgZHN0MCwgdG1wMSwgZHN0MSwgZHN0MCwg ZHN0MSk7Cj4+ICsgICAgX19sc3hfdnN0ZWxtX3coZHN0MCwgZHN0LCAwLCAwKTsKPj4gKyAgICBk c3QgKz0gZHN0X3N0cmlkZTsKPj4gKyAgICBfX2xzeF92c3RlbG1fdyhkc3QwLCBkc3QsIDAsIDEp Owo+PiArICAgIGRzdCArPSBkc3Rfc3RyaWRlOwo+PiArICAgIF9fbHN4X3ZzdGVsbV93KGRzdDAs IGRzdCwgMCwgMik7Cj4+ICsgICAgZHN0ICs9IGRzdF9zdHJpZGU7Cj4+ICsgICAgX19sc3hfdnN0 ZWxtX3coZHN0MCwgZHN0LCAwLCAzKTsKPj4gKyAgICBkc3QgKz0gZHN0X3N0cmlkZTsKPj4gKyAg ICBfX2xzeF92c3RlbG1fdyhkc3QxLCBkc3QsIDAsIDApOwo+PiArICAgIGRzdCArPSBkc3Rfc3Ry aWRlOwo+PiArICAgIF9fbHN4X3ZzdGVsbV93KGRzdDEsIGRzdCwgMCwgMSk7Cj4+ICsgICAgZHN0 ICs9IGRzdF9zdHJpZGU7Cj4+ICsgICAgX19sc3hfdnN0ZWxtX3coZHN0MSwgZHN0LCAwLCAyKTsK Pj4gKyAgICBkc3QgKz0gZHN0X3N0cmlkZTsKPj4gKyAgICBfX2xzeF92c3RlbG1fdyhkc3QxLCBk c3QsIDAsIDMpOwo+PiArfQo+PiArCj4+ICtzdGF0aWMgdm9pZCBjb21tb25faHpfOHRfYW5kX2F2 ZXJfZHN0XzR3X2xzeChjb25zdCB1aW50OF90ICpzcmMsCj4+ICsgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICBpbnQzMl90IHNyY19zdHJpZGUsCj4+ICsgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB1aW50OF90ICpkc3QsIGludDMy X3QKPj4gZHN0X3N0cmlkZSwKPj4gKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIGNvbnN0IGludDhfdCAqZmlsdGVyLAo+PiArICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgaW50MzJfdCBoZWlnaHQpCj4+ICt7Cj4+ICsgICAgaWYg KGhlaWdodCA9PSA0KSB7Cj4+ICsgICAgICAgIGNvbW1vbl9oel84dF9hbmRfYXZlcl9kc3RfNHg0 X2xzeChzcmMsIHNyY19zdHJpZGUsIGRzdCwKPj4gZHN0X3N0cmlkZSwgZmlsdGVyKTsKPj4gKyAg ICB9IGVsc2UgaWYgKGhlaWdodCA9PSA4KSB7Cj4+ICsgICAgICAgIGNvbW1vbl9oel84dF9hbmRf YXZlcl9kc3RfNHg4X2xzeChzcmMsIHNyY19zdHJpZGUsIGRzdCwKPj4gZHN0X3N0cmlkZSwgZmls dGVyKTsKPj4gKyAgICB9Cj4+ICt9Cj4+ICsKPj4gK3N0YXRpYyB2b2lkIGNvbW1vbl9oel84dF9h bmRfYXZlcl9kc3RfOHdfbHN4KGNvbnN0IHVpbnQ4X3QgKnNyYywKPj4gKyAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGludDMyX3Qgc3JjX3N0cmlkZSwKPj4gKyAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHVpbnQ4X3QgKmRzdCwg aW50MzJfdAo+PiBkc3Rfc3RyaWRlLAo+PiArICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgY29uc3QgaW50OF90ICpmaWx0ZXIsCj4+ICsgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbnQzMl90IGhlaWdodCkKPj4gK3sKPj4gKyAg ICBpbnQzMl90IGxvb3BfY250ID0gaGVpZ2h0ID4+IDI7Cj4+ICsgICAgdWludDhfdCAqZHN0X3Rt cCA9IGRzdDsKPj4gKyAgICBfX20xMjhpIHNyYzAsIHNyYzEsIHNyYzIsIHNyYzMsIGZpbHRlcjAs IGZpbHRlcjEsIGZpbHRlcjIsIGZpbHRlcjM7Cj4+ICsgICAgX19tMTI4aSBtYXNrMCwgbWFzazEs IG1hc2syLCBtYXNrMzsKPj4gKyAgICBfX20xMjhpIHRtcDAsIHRtcDEsIHRtcDIsIHRtcDM7Cj4+ ICsgICAgX19tMTI4aSBkc3QwLCBkc3QxLCBkc3QyLCBkc3QzOwo+PiArICAgIGludDMyX3Qgc3Jj X3N0cmlkZTIgPSBzcmNfc3RyaWRlIDw8IDE7Cj4+ICsgICAgaW50MzJfdCBzcmNfc3RyaWRlMyA9 IHNyY19zdHJpZGUyICsgc3JjX3N0cmlkZTsKPj4gKyAgICBpbnQzMl90IHNyY19zdHJpZGU0ID0g c3JjX3N0cmlkZTIgPDwgMTsKPj4gKyAgICB1aW50OF90ICpfc3JjID0gKHVpbnQ4X3QqKXNyYyAt IDM7Cj4+ICsKPj4gKyAgICBtYXNrMCA9IF9fbHN4X3ZsZChtY19maWx0X21hc2tfYXJyLCAwKTsK Pj4gKyAgICBEVVAyX0FSRzIoX19sc3hfdmFkZGlfYnUsIG1hc2swLCAyLCBtYXNrMCwgNCwgbWFz azEsIG1hc2syKTsKPj4gKyAgICBtYXNrMyA9IF9fbHN4X3ZhZGRpX2J1KG1hc2swLCA2KTsKPj4g KyAgICBEVVA0X0FSRzIoX19sc3hfdmxkcmVwbF9oLCBmaWx0ZXIsIDAsIGZpbHRlciwgMiwgZmls dGVyLCA0LAo+PiBmaWx0ZXIsIDYsCj4+ICsgICAgICAgICAgICAgIGZpbHRlcjAsIGZpbHRlcjEs IGZpbHRlcjIsIGZpbHRlcjMpOwo+PiArCj4+ICsgICAgZm9yICg7bG9vcF9jbnQtLTspIHsKPj4g KyAgICAgICAgc3JjMCA9IF9fbHN4X3ZsZChfc3JjLCAwKTsKPj4gKyAgICAgICAgRFVQMl9BUkcy KF9fbHN4X3ZsZHgsIF9zcmMsIHNyY19zdHJpZGUsIF9zcmMsIHNyY19zdHJpZGUyLAo+PiBzcmMx LCBzcmMyKTsKPj4gKyAgICAgICAgc3JjMyA9IF9fbHN4X3ZsZHgoX3NyYywgc3JjX3N0cmlkZTMp Owo+PiArICAgICAgICBfc3JjICs9IHNyY19zdHJpZGU0Owo+PiArICAgICAgICBEVVA0X0FSRzIo X19sc3hfdnhvcmlfYiwgc3JjMCwgMTI4LCBzcmMxLCAxMjgsIHNyYzIsIDEyOCwKPj4gc3JjMywg MTI4LAo+PiArICAgICAgICAgICAgICAgICAgc3JjMCwgc3JjMSwgc3JjMiwgc3JjMyk7Cj4+ICsg ICAgICAgIEhPUklaXzhUQVBfOFdJRF80VkVDU19GSUxUKHNyYzAsIHNyYzEsIHNyYzIsIHNyYzMs IG1hc2swLAo+PiBtYXNrMSwgbWFzazIsCj4+ICsgICAgICAgICAgICAgIG1hc2szLGZpbHRlcjAs IGZpbHRlcjEsIGZpbHRlcjIsIGZpbHRlcjMsIHRtcDAsIHRtcDEsCj4+IHRtcDIsIHRtcDMpOwo+ PiArICAgICAgICBkc3QwID0gX19sc3hfdmxkcmVwbF9kKGRzdF90bXAsIDApOwo+PiArICAgICAg ICBkc3RfdG1wICs9IGRzdF9zdHJpZGU7Cj4+ICsgICAgICAgIGRzdDEgPSBfX2xzeF92bGRyZXBs X2QoZHN0X3RtcCwgMCk7Cj4+ICsgICAgICAgIGRzdF90bXAgKz0gZHN0X3N0cmlkZTsKPj4gKyAg ICAgICAgZHN0MiA9IF9fbHN4X3ZsZHJlcGxfZChkc3RfdG1wLCAwKTsKPj4gKyAgICAgICAgZHN0 X3RtcCArPSBkc3Rfc3RyaWRlOwo+PiArICAgICAgICBkc3QzID0gX19sc3hfdmxkcmVwbF9kKGRz dF90bXAsIDApOwo+PiArICAgICAgICBkc3RfdG1wICs9IGRzdF9zdHJpZGU7Cj4+ICsgICAgICAg IERVUDJfQVJHMihfX2xzeF92aWx2bF9kLCBkc3QxLCBkc3QwLCBkc3QzLCBkc3QyLCBkc3QwLCBk c3QxKTsKPj4gKyAgICAgICAgRFVQMl9BUkczKF9fbHN4X3Zzc3Jhcm5pX2JfaCwgdG1wMSwgdG1w MCwgNywgdG1wMywgdG1wMiwgNywKPj4gdG1wMCwgdG1wMSk7Cj4+ICsgICAgICAgIERVUDJfQVJH MihfX2xzeF92eG9yaV9iLCB0bXAwLCAxMjgsIHRtcDEsIDEyOCwgdG1wMCwgdG1wMSk7Cj4+ICsg ICAgICAgIERVUDJfQVJHMihfX2xzeF92YXZncl9idSwgdG1wMCwgZHN0MCwgdG1wMSwgZHN0MSwg ZHN0MCwgZHN0MSk7Cj4+ICsgICAgICAgIF9fbHN4X3ZzdGVsbV9kKGRzdDAsIGRzdCwgMCwgMCk7 Cj4+ICsgICAgICAgIGRzdCArPSBkc3Rfc3RyaWRlOwo+PiArICAgICAgICBfX2xzeF92c3RlbG1f ZChkc3QwLCBkc3QsIDAsIDEpOwo+PiArICAgICAgICBkc3QgKz0gZHN0X3N0cmlkZTsKPj4gKyAg ICAgICAgX19sc3hfdnN0ZWxtX2QoZHN0MSwgZHN0LCAwLCAwKTsKPj4gKyAgICAgICAgZHN0ICs9 IGRzdF9zdHJpZGU7Cj4+ICsgICAgICAgIF9fbHN4X3ZzdGVsbV9kKGRzdDEsIGRzdCwgMCwgMSk7 Cj4+ICsgICAgICAgIGRzdCArPSBkc3Rfc3RyaWRlOwo+PiArICAgIH0KPj4gK30KPj4gKwo+PiAr c3RhdGljIHZvaWQgY29tbW9uX2h6Xzh0X2FuZF9hdmVyX2RzdF8xNndfbHN4KGNvbnN0IHVpbnQ4 X3QgKnNyYywKPj4gKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICBpbnQzMl90IHNyY19zdHJpZGUsCj4+ICsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgdWludDhfdCAqZHN0LCBpbnQzMl90Cj4+IGRzdF9zdHJpZGUsCj4+ICsg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgaW50OF90 ICpmaWx0ZXIsCj4+ICsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgaW50MzJfdCBoZWlnaHQpCj4+ICt7Cj4+ICsgICAgaW50MzJfdCBsb29wX2NudCA9IGhlaWdo dCA+PiAxOwo+PiArICAgIGludDMyX3QgZHN0X3N0cmlkZTIgPSBkc3Rfc3RyaWRlIDw8IDE7Cj4+ ICsgICAgdWludDhfdCAqZHN0X3RtcCA9IGRzdDsKPj4gKyAgICBfX20xMjhpIHNyYzAsIHNyYzEs IHNyYzIsIHNyYzMsIGZpbHRlcjAsIGZpbHRlcjEsIGZpbHRlcjIsIGZpbHRlcjM7Cj4+ICsgICAg X19tMTI4aSBtYXNrMCwgbWFzazEsIG1hc2syLCBtYXNrMywgZHN0MCwgZHN0MSwgZHN0MiwgZHN0 MzsKPj4gKyAgICBfX20xMjhpIHRtcDAsIHRtcDEsIHRtcDIsIHRtcDMsIHRtcDQsIHRtcDUsIHRt cDYsIHRtcDc7Cj4+ICsgICAgX19tMTI4aSB0bXA4LCB0bXA5LCB0bXAxMCwgdG1wMTEsIHRtcDEy LCB0bXAxMywgdG1wMTQsIHRtcDE1Owo+PiArCj4+ICsgICAgbWFzazAgPSBfX2xzeF92bGQobWNf ZmlsdF9tYXNrX2FyciwgMCk7Cj4+ICsgICAgc3JjIC09IDM7Cj4+ICsgICAgRFVQMl9BUkcyKF9f bHN4X3ZhZGRpX2J1LCBtYXNrMCwgMiwgbWFzazAsIDQsIG1hc2sxLCBtYXNrMik7Cj4+ICsgICAg bWFzazMgPSBfX2xzeF92YWRkaV9idShtYXNrMCwgNik7Cj4+ICsgICAgRFVQNF9BUkcyKF9fbHN4 X3ZsZHJlcGxfaCwgZmlsdGVyLCAwLCBmaWx0ZXIsIDIsIGZpbHRlciwgNCwKPj4gZmlsdGVyLCA2 LAo+PiArICAgICAgICAgICAgICBmaWx0ZXIwLCBmaWx0ZXIxLCBmaWx0ZXIyLCBmaWx0ZXIzKTsK Pj4gKwo+PiArICAgIGZvciAoO2xvb3BfY250LS07KSB7Cj4+ICsgICAgICAgIERVUDJfQVJHMihf X2xzeF92bGQsIHNyYywgMCwgc3JjLCA4LCBzcmMwLCBzcmMxKTsKPj4gKyAgICAgICAgc3JjICs9 IHNyY19zdHJpZGU7Cj4+ICsgICAgICAgIERVUDJfQVJHMihfX2xzeF92bGQsIHNyYywgMCwgc3Jj LCA4LCBzcmMyLCBzcmMzKTsKPj4gKyAgICAgICAgc3JjICs9IHNyY19zdHJpZGU7Cj4+ICsgICAg ICAgIGRzdDAgPSBfX2xzeF92bGQoZHN0X3RtcCwgMCk7Cj4+ICsgICAgICAgIGRzdDEgPSBfX2xz eF92bGR4KGRzdF90bXAsIGRzdF9zdHJpZGUpOwo+PiArICAgICAgICBkc3RfdG1wICs9IGRzdF9z dHJpZGUyOwo+PiArICAgICAgICBEVVA0X0FSRzIoX19sc3hfdnhvcmlfYiwgc3JjMCwgMTI4LCBz cmMxLCAxMjgsIHNyYzIsIDEyOCwKPj4gc3JjMywgMTI4LAo+PiArICAgICAgICAgICAgICAgICAg c3JjMCwgc3JjMSwgc3JjMiwgc3JjMyk7Cj4+ICsgICAgICAgIERVUDRfQVJHMyhfX2xzeF92c2h1 Zl9iLCBzcmMwLCBzcmMwLCBtYXNrMCwgc3JjMSwgc3JjMSwgbWFzazAsCj4+IHNyYzIsIHNyYzIs Cj4+ICsgICAgICAgICAgICAgICAgICBtYXNrMCwgc3JjMywgc3JjMywgbWFzazAsIHRtcDAsIHRt cDEsIHRtcDIsIHRtcDMpOwo+PiArICAgICAgICBEVVA0X0FSRzMoX19sc3hfdnNodWZfYiwgc3Jj MCwgc3JjMCwgbWFzazEsIHNyYzEsIHNyYzEsIG1hc2sxLAo+PiBzcmMyLCBzcmMyLAo+PiArICAg ICAgICAgICAgICAgICAgbWFzazEsIHNyYzMsIHNyYzMsIG1hc2sxLCB0bXA0LCB0bXA1LCB0bXA2 LCB0bXA3KTsKPj4gKyAgICAgICAgRFVQNF9BUkczKF9fbHN4X3ZzaHVmX2IsIHNyYzAsIHNyYzAs IG1hc2syLCBzcmMxLCBzcmMxLCBtYXNrMiwKPj4gc3JjMiwgc3JjMiwKPj4gKyAgICAgICAgICAg ICAgICAgIG1hc2syLCBzcmMzLCBzcmMzLCBtYXNrMiwgdG1wOCwgdG1wOSwgdG1wMTAsIHRtcDEx KTsKPj4gKyAgICAgICAgRFVQNF9BUkczKF9fbHN4X3ZzaHVmX2IsIHNyYzAsIHNyYzAsIG1hc2sz LCBzcmMxLCBzcmMxLCBtYXNrMywKPj4gc3JjMiwgc3JjMiwKPj4gKyAgICAgICAgICAgICAgICAg IG1hc2szLCBzcmMzLCBzcmMzLCBtYXNrMywgdG1wMTIsIHRtcDEzLCB0bXAxNCwKPj4gdG1wMTUp Owo+PiArICAgICAgICBEVVA0X0FSRzIoX19sc3hfdmRwMl9oX2IsIHRtcDAsIGZpbHRlcjAsIHRt cDEsIGZpbHRlcjAsIHRtcDIsCj4+IGZpbHRlcjAsIHRtcDMsCj4+ICsgICAgICAgICAgICAgICAg ICBmaWx0ZXIwLCB0bXAwLCB0bXAxLCB0bXAyLCB0bXAzKTsKPj4gKyAgICAgICAgRFVQNF9BUkcy KF9fbHN4X3ZkcDJfaF9iLCB0bXA4LCBmaWx0ZXIyLCB0bXA5LCBmaWx0ZXIyLCB0bXAxMCwKPj4g ZmlsdGVyMiwgdG1wMTEsCj4+ICsgICAgICAgICAgICAgICAgICBmaWx0ZXIyLCB0bXA4LCB0bXA5 LCB0bXAxMCwgdG1wMTEpOwo+PiArICAgICAgICBEVVA0X0FSRzMoX19sc3hfdmRwMmFkZF9oX2Is IHRtcDAsIHRtcDQsIGZpbHRlcjEsIHRtcDEsIHRtcDUsCj4+IGZpbHRlcjEsIHRtcDIsCj4+ICsg ICAgICAgICAgICAgICAgICB0bXA2LCBmaWx0ZXIxLCB0bXAzLCB0bXA3LCBmaWx0ZXIxLCB0bXAw LCB0bXAxLAo+PiB0bXAyLCB0bXAzKTsKPj4gKyAgICAgICAgRFVQNF9BUkczKF9fbHN4X3ZkcDJh ZGRfaF9iLCB0bXA4LCB0bXAxMiwgZmlsdGVyMywgdG1wOSwKPj4gdG1wMTMsIGZpbHRlcjMsIHRt cDEwLAo+PiArICAgICAgICAgICAgICAgICAgdG1wMTQsIGZpbHRlcjMsIHRtcDExLCB0bXAxNSwg ZmlsdGVyMywgdG1wNCwgdG1wNSwKPj4gdG1wNiwgdG1wNyk7Cj4+ICsgICAgICAgIERVUDRfQVJH MihfX2xzeF92c2FkZF9oLCB0bXAwLCB0bXA0LCB0bXAxLCB0bXA1LCB0bXAyLCB0bXA2LAo+PiB0 bXAzLCB0bXA3LAo+PiArICAgICAgICAgICAgICAgICAgdG1wMCwgdG1wMSwgdG1wMiwgdG1wMyk7 Cj4+ICsgICAgICAgIERVUDJfQVJHMyhfX2xzeF92c3NyYXJuaV9iX2gsIHRtcDEsIHRtcDAsIDcs IHRtcDMsIHRtcDIsIDcsCj4+IGRzdDIsIGRzdDMpOwo+PiArICAgICAgICBEVVAyX0FSRzIoX19s c3hfdnhvcmlfYiwgZHN0MiwgMTI4LCBkc3QzLCAxMjgsIGRzdDIsIGRzdDMpOwo+PiArICAgICAg ICBEVVAyX0FSRzIoX19sc3hfdmF2Z3JfYnUsIGRzdDAsIGRzdDIsIGRzdDEsIGRzdDMsIGRzdDAs IGRzdDEpOwo+PiArICAgICAgICBfX2xzeF92c3QoZHN0MCwgZHN0LCAwKTsKPj4gKyAgICAgICAg X19sc3hfdnN0eChkc3QxLCBkc3QsIGRzdF9zdHJpZGUpOwo+PiArICAgICAgICBkc3QgKz0gZHN0 X3N0cmlkZTI7Cj4+ICsgICAgfQo+PiArfQo+PiArCj4+ICtzdGF0aWMgdm9pZCBjb21tb25faHpf OHRfYW5kX2F2ZXJfZHN0XzMyd19sc3goY29uc3QgdWludDhfdCAqc3JjLAo+PiArICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGludDMyX3Qgc3JjX3N0cmlkZSwK Pj4gKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB1aW50OF90 ICpkc3QsIGludDMyX3QKPj4gZHN0X3N0cmlkZSwKPj4gKyAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBpbnQ4X3QgKmZpbHRlciwKPj4gKyAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbnQzMl90IGhlaWdodCkKPj4g K3sKPj4gKyAgICB1aW50MzJfdCBsb29wX2NudCA9IGhlaWdodDsKPj4gKyAgICB1aW50OF90ICpk c3RfdG1wID0gZHN0Owo+PiArICAgIF9fbTEyOGkgc3JjMCwgc3JjMSwgc3JjMiwgc3JjMywgZmls dGVyMCwgZmlsdGVyMSwgZmlsdGVyMiwgZmlsdGVyMzsKPj4gKyAgICBfX20xMjhpIG1hc2swLCBt YXNrMSwgbWFzazIsIG1hc2szLCBkc3QwLCBkc3QxOwo+PiArICAgIF9fbTEyOGkgdG1wMCwgdG1w MSwgdG1wMiwgdG1wMywgdG1wNCwgdG1wNSwgdG1wNiwgdG1wNzsKPj4gKyAgICBfX20xMjhpIHRt cDgsIHRtcDksIHRtcDEwLCB0bXAxMSwgdG1wMTIsIHRtcDEzLCB0bXAxNCwgdG1wMTU7Cj4+ICsg ICAgX19tMTI4aSBzaHVmZiA9IHsweDBGMEUwRDBDMEIwQTA5MDgsIDB4MTcxNjE1MTQxMzEyMTEx MH07Cj4+ICsKPj4gKyAgICBtYXNrMCA9IF9fbHN4X3ZsZChtY19maWx0X21hc2tfYXJyLCAwKTsK Pj4gKyAgICBzcmMgLT0gMzsKPj4gKyAgICBEVVAyX0FSRzIoX19sc3hfdmFkZGlfYnUsIG1hc2sw LCAyLCBtYXNrMCwgNCwgbWFzazEsIG1hc2syKTsKPj4gKyAgICBtYXNrMyA9IF9fbHN4X3ZhZGRp X2J1KG1hc2swLCA2KTsKPj4gKyAgICBEVVA0X0FSRzIoX19sc3hfdmxkcmVwbF9oLCBmaWx0ZXIs IDAsIGZpbHRlciwgMiwgZmlsdGVyLCA0LAo+PiBmaWx0ZXIsIDYsCj4+ICsgICAgICAgICAgICAg ICAgICBmaWx0ZXIwLCBmaWx0ZXIxLCBmaWx0ZXIyLCBmaWx0ZXIzKTsKPj4gKwo+PiArICAgIGZv ciAoO2xvb3BfY250LS07KSB7Cj4+ICsgICAgICAgIERVUDJfQVJHMihfX2xzeF92bGQsIHNyYywg MCwgc3JjLCAxNiwgc3JjMCwgc3JjMik7Cj4+ICsgICAgICAgIHNyYzMgPSBfX2xzeF92bGQoc3Jj LCAyNCk7Cj4+ICsgICAgICAgIHNyYzEgPSBfX2xzeF92c2h1Zl9iKHNyYzIsIHNyYzAsIHNodWZm KTsKPj4gKyAgICAgICAgc3JjICs9IHNyY19zdHJpZGU7Cj4+ICsgICAgICAgIERVUDJfQVJHMihf X2xzeF92bGQsIGRzdF90bXAsIDAsIGRzdCwgMTYsIGRzdDAsIGRzdDEpOwo+PiArICAgICAgICBk c3RfdG1wICs9IGRzdF9zdHJpZGU7Cj4+ICsgICAgICAgIERVUDRfQVJHMihfX2xzeF92eG9yaV9i LCBzcmMwLCAxMjgsIHNyYzEsIDEyOCwgc3JjMiwgMTI4LAo+PiBzcmMzLCAxMjgsCj4+ICsgICAg ICAgICAgICAgICAgICBzcmMwLCBzcmMxLCBzcmMyLCBzcmMzKTsKPj4gKyAgICAgICAgRFVQNF9B UkczKF9fbHN4X3ZzaHVmX2IsIHNyYzAsIHNyYzAsIG1hc2swLCBzcmMxLCBzcmMxLCBtYXNrMCwK Pj4gc3JjMiwKPj4gKyAgICAgICAgICAgICAgICAgIHNyYzIsIG1hc2swLCBzcmMzLCBzcmMzLCBt YXNrMCwgdG1wMCwgdG1wMSwgdG1wMiwKPj4gdG1wMyk7Cj4+ICsgICAgICAgIERVUDRfQVJHMyhf X2xzeF92c2h1Zl9iLCBzcmMwLCBzcmMwLCBtYXNrMSwgc3JjMSwgc3JjMSwgbWFzazEsCj4+IHNy YzIsCj4+ICsgICAgICAgICAgICAgICAgICBzcmMyLCBtYXNrMSwgc3JjMywgc3JjMywgbWFzazEs IHRtcDQsIHRtcDUsIHRtcDYsCj4+IHRtcDcpOwo+PiArICAgICAgICBEVVA0X0FSRzMoX19sc3hf dnNodWZfYiwgc3JjMCwgc3JjMCwgbWFzazIsIHNyYzEsIHNyYzEsIG1hc2syLAo+PiBzcmMyLAo+ PiArICAgICAgICAgICAgICAgICAgc3JjMiwgbWFzazIsIHNyYzMsIHNyYzMsIG1hc2syLCB0bXA4 LCB0bXA5LCB0bXAxMCwKPj4gdG1wMTEpOwo+PiArICAgICAgICBEVVA0X0FSRzMoX19sc3hfdnNo dWZfYiwgc3JjMCwgc3JjMCwgbWFzazMsIHNyYzEsIHNyYzEsIG1hc2szLAo+PiBzcmMyLAo+PiAr ICAgICAgICAgICAgICAgICAgc3JjMiwgbWFzazMsIHNyYzMsIHNyYzMsIG1hc2szLCB0bXAxMiwg dG1wMTMsIHRtcDE0LAo+PiB0bXAxNSk7Cj4+ICsgICAgICAgIERVUDRfQVJHMihfX2xzeF92ZHAy X2hfYiwgdG1wMCwgZmlsdGVyMCwgdG1wMSwgZmlsdGVyMCwgdG1wMiwKPj4gZmlsdGVyMCwKPj4g KyAgICAgICAgICAgICAgICAgIHRtcDMsIGZpbHRlcjAsIHRtcDAsIHRtcDEsIHRtcDIsIHRtcDMp Owo+PiArICAgICAgICBEVVA0X0FSRzIoX19sc3hfdmRwMl9oX2IsIHRtcDgsIGZpbHRlcjIsIHRt cDksIGZpbHRlcjIsIHRtcDEwLAo+PiBmaWx0ZXIyLAo+PiArICAgICAgICAgICAgICAgICAgdG1w MTEsIGZpbHRlcjIsIHRtcDgsIHRtcDksIHRtcDEwLCB0bXAxMSk7Cj4+ICsgICAgICAgIERVUDRf QVJHMyhfX2xzeF92ZHAyYWRkX2hfYiwgdG1wMCwgdG1wNCwgZmlsdGVyMSwgdG1wMSwgdG1wNSwK Pj4gZmlsdGVyMSwKPj4gKyAgICAgICAgICAgICB0bXAyLCB0bXA2LCBmaWx0ZXIxLCB0bXAzLCB0 bXA3LCBmaWx0ZXIxLCB0bXAwLCB0bXAxLAo+PiB0bXAyLCB0bXAzKTsKPj4gKyAgICAgICAgRFVQ NF9BUkczKF9fbHN4X3ZkcDJhZGRfaF9iLCB0bXA4LCB0bXAxMiwgZmlsdGVyMywgdG1wOSwKPj4g dG1wMTMsIGZpbHRlcjMsCj4+ICsgICAgICAgIHRtcDEwLCB0bXAxNCwgZmlsdGVyMywgdG1wMTEs IHRtcDE1LCBmaWx0ZXIzLCB0bXA0LCB0bXA1LAo+PiB0bXA2LCB0bXA3KTsKPj4gKyAgICAgICAg RFVQNF9BUkcyKF9fbHN4X3ZzYWRkX2gsIHRtcDAsIHRtcDQsIHRtcDEsIHRtcDUsIHRtcDIsIHRt cDYsCj4+IHRtcDMsIHRtcDcsCj4+ICsgICAgICAgICAgICAgICAgICB0bXAwLCB0bXAxLCB0bXAy LCB0bXAzKTsKPj4gKyAgICAgICAgRFVQMl9BUkczKF9fbHN4X3Zzc3Jhcm5pX2JfaCwgdG1wMSwg dG1wMCwgNywgdG1wMywgdG1wMiwgNywKPj4gdG1wMCwgdG1wMSk7Cj4+ICsgICAgICAgIERVUDJf QVJHMihfX2xzeF92eG9yaV9iLCB0bXAwLCAxMjgsIHRtcDEsIDEyOCwgdG1wMCwgdG1wMSk7Cj4+ ICsgICAgICAgIERVUDJfQVJHMihfX2xzeF92YXZncl9idSwgZHN0MCwgdG1wMCwgZHN0MSwgdG1w MSwgZHN0MCwgZHN0MSk7Cj4+ICsgICAgICAgIF9fbHN4X3ZzdChkc3QwLCBkc3QsIDApOwo+PiAr ICAgICAgICBfX2xzeF92c3QoZHN0MSwgZHN0LCAxNik7Cj4+ICsgICAgICAgIGRzdCArPSBkc3Rf c3RyaWRlOwo+PiArICAgIH0KPj4gK30KPj4gKwo+PiArc3RhdGljIHZvaWQgY29tbW9uX2h6Xzh0 X2FuZF9hdmVyX2RzdF82NHdfbHN4KGNvbnN0IHVpbnQ4X3QgKnNyYywKPj4gKyAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbnQzMl90IHNyY19zdHJpZGUsCj4+ ICsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdWludDhfdCAq ZHN0LCBpbnQzMl90Cj4+IGRzdF9zdHJpZGUsCj4+ICsgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgY29uc3QgaW50OF90ICpmaWx0ZXIsCj4+ICsgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW50MzJfdCBoZWlnaHQpCj4+ICt7 Cj4+ICsgICAgaW50MzJfdCBsb29wX2NudCA9IGhlaWdodDsKPj4gKyAgICBfX20xMjhpIHNyYzAs IHNyYzEsIHNyYzIsIHNyYzM7Cj4+ICsgICAgX19tMTI4aSBmaWx0ZXIwLCBmaWx0ZXIxLCBmaWx0 ZXIyLCBmaWx0ZXIzOwo+PiArICAgIF9fbTEyOGkgbWFzazAsIG1hc2sxLCBtYXNrMiwgbWFzazM7 Cj4+ICsgICAgX19tMTI4aSBvdXQwLCBvdXQxLCBvdXQyLCBvdXQzLCBkc3QwLCBkc3QxOwo+PiAr ICAgIF9fbTEyOGkgc2h1ZmYgPSB7MHgwRjBFMEQwQzBCMEEwOTA4LCAweDE3MTYxNTE0MTMxMjEx MTB9Owo+PiArCj4+ICsgICAgbWFzazAgPSBfX2xzeF92bGQobWNfZmlsdF9tYXNrX2FyciwgMCk7 Cj4+ICsgICAgc3JjIC09IDM7Cj4+ICsgICAgRFVQMl9BUkcyKF9fbHN4X3ZhZGRpX2J1LCBtYXNr MCwgMiwgbWFzazAsIDQsIG1hc2sxLCBtYXNrMik7Cj4+ICsgICAgbWFzazMgPSBfX2xzeF92YWRk aV9idShtYXNrMCwgNik7Cj4+ICsgICAgRFVQNF9BUkcyKF9fbHN4X3ZsZHJlcGxfaCwgZmlsdGVy LCAwLCBmaWx0ZXIsIDIsIGZpbHRlciwgNCwKPj4gZmlsdGVyLCA2LAo+PiArICAgICAgICAgICAg ICAgICAgZmlsdGVyMCwgZmlsdGVyMSwgZmlsdGVyMiwgZmlsdGVyMyk7Cj4+ICsKPj4gKyAgICBm b3IgKDtsb29wX2NudC0tOykgewo+PiArICAgICAgICBEVVAyX0FSRzIoX19sc3hfdmxkLCBzcmMs IDAsIHNyYywgMTYsIHNyYzAsIHNyYzIpOwo+PiArICAgICAgICBzcmMzID0gX19sc3hfdmxkKHNy YywgMjQpOwo+PiArICAgICAgICBzcmMxID0gX19sc3hfdnNodWZfYihzcmMyLCBzcmMwLCBzaHVm Zik7Cj4+ICsgICAgICAgIERVUDJfQVJHMihfX2xzeF92bGQsIGRzdCwgMCwgZHN0LCAxNiwgZHN0 MCwgZHN0MSk7Cj4+ICsgICAgICAgIERVUDRfQVJHMihfX2xzeF92eG9yaV9iLCBzcmMwLCAxMjgs IHNyYzEsIDEyOCwgc3JjMiwgMTI4LAo+PiBzcmMzLCAxMjgsCj4+ICsgICAgICAgICAgICAgICAg ICBzcmMwLCBzcmMxLCBzcmMyLCBzcmMzKTsKPj4gKyAgICAgICAgSE9SSVpfOFRBUF84V0lEXzRW RUNTX0ZJTFQoc3JjMCwgc3JjMSwgc3JjMiwgc3JjMywgbWFzazAsCj4+IG1hc2sxLCBtYXNrMiwK Pj4gKyAgICAgICAgICAgICBtYXNrMywgZmlsdGVyMCwgZmlsdGVyMSwgZmlsdGVyMiwgZmlsdGVy Mywgb3V0MCwgb3V0MSwKPj4gb3V0Miwgb3V0Myk7Cj4+ICsgICAgICAgIERVUDJfQVJHMyhfX2xz eF92c3NyYXJuaV9iX2gsIG91dDEsIG91dDAsIDcsIG91dDMsIG91dDIsIDcsCj4+IG91dDAsIG91 dDEpOwo+PiArICAgICAgICBEVVAyX0FSRzIoX19sc3hfdnhvcmlfYiwgb3V0MCwgMTI4LCBvdXQx LCAxMjgsIG91dDAsIG91dDEpOwo+PiArICAgICAgICBEVVAyX0FSRzIoX19sc3hfdmF2Z3JfYnUs IG91dDAsIGRzdDAsIG91dDEsIGRzdDEsIG91dDAsIG91dDEpOwo+PiArICAgICAgICBfX2xzeF92 c3Qob3V0MCwgZHN0LCAwKTsKPj4gKyAgICAgICAgX19sc3hfdnN0KG91dDEsIGRzdCwgMTYpOwo+ PiArCj4+ICsgICAgICAgIERVUDJfQVJHMihfX2xzeF92bGQsIHNyYywgMzIsIHNyYywgNDgsIHNy YzAsIHNyYzIpOwo+PiArICAgICAgICBzcmMzID0gX19sc3hfdmxkKHNyYywgNTYpOwo+PiArICAg ICAgICBzcmMxID0gX19sc3hfdnNodWZfYihzcmMyLCBzcmMwLCBzaHVmZik7Cj4+ICsgICAgICAg IERVUDJfQVJHMihfX2xzeF92bGQsIGRzdCwgMzIsIGRzdCwgNDgsIGRzdDAsIGRzdDEpOwo+PiAr ICAgICAgICBEVVA0X0FSRzIoX19sc3hfdnhvcmlfYiwgc3JjMCwgMTI4LCBzcmMxLCAxMjgsIHNy YzIsIDEyOCwKPj4gc3JjMywgMTI4LAo+PiArICAgICAgICAgICAgICAgICAgc3JjMCwgc3JjMSwg c3JjMiwgc3JjMyk7Cj4+ICsgICAgICAgIEhPUklaXzhUQVBfOFdJRF80VkVDU19GSUxUKHNyYzAs IHNyYzEsIHNyYzIsIHNyYzMsIG1hc2swLAo+PiBtYXNrMSwgbWFzazIsCj4+ICsgICAgICAgICAg ICAgbWFzazMsIGZpbHRlcjAsIGZpbHRlcjEsIGZpbHRlcjIsIGZpbHRlcjMsIG91dDAsIG91dDEs Cj4+IG91dDIsIG91dDMpOwo+PiArICAgICAgICBEVVAyX0FSRzMoX19sc3hfdnNzcmFybmlfYl9o LCBvdXQxLCBvdXQwLCA3LCBvdXQzLCBvdXQyLCA3LAo+PiBvdXQwLCBvdXQxKTsKPj4gKyAgICAg ICAgRFVQMl9BUkcyKF9fbHN4X3Z4b3JpX2IsIG91dDAsIDEyOCwgb3V0MSwgMTI4LCBvdXQwLCBv dXQxKTsKPj4gKyAgICAgICAgRFVQMl9BUkcyKF9fbHN4X3ZhdmdyX2J1LCBvdXQwLCBkc3QwLCBv dXQxLCBkc3QxLCBvdXQwLCBvdXQxKTsKPj4gKyAgICAgICAgX19sc3hfdnN0KG91dDAsIGRzdCwg MzIpOwo+PiArICAgICAgICBfX2xzeF92c3Qob3V0MSwgZHN0LCA0OCk7Cj4+ICsgICAgICAgIHNy YyArPSBzcmNfc3RyaWRlOwo+PiArICAgICAgICBkc3QgKz0gZHN0X3N0cmlkZTsKPj4gKyAgICB9 Cj4+ICt9Cj4+ICsKPj4gK3N0YXRpYyB2b2lkIGNvbW1vbl92dF84dF9hbmRfYXZlcl9kc3RfNHdf bHN4KGNvbnN0IHVpbnQ4X3QgKnNyYywKPj4gKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIGludDMyX3Qgc3JjX3N0cmlkZSwKPj4gKyAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIHVpbnQ4X3QgKmRzdCwgaW50MzJfdAo+PiBkc3Rf c3RyaWRlLAo+PiArICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg Y29uc3QgaW50OF90ICpmaWx0ZXIsCj4+ICsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICBpbnQzMl90IGhlaWdodCkKPj4gK3sKPj4gKyAgICB1aW50MzJfdCBsb29w X2NudCA9IGhlaWdodCA+PiAyOwo+PiArICAgIHVpbnQ4X3QgKmRzdF90bXAgPSBkc3Q7Cj4+ICsg ICAgX19tMTI4aSBzcmMwLCBzcmMxLCBzcmMyLCBzcmMzLCBzcmM0LCBzcmM1LCBzcmM2LCBzcmM3 LCBzcmM4LAo+PiBzcmM5LCBzcmMxMDsKPj4gKyAgICBfX20xMjhpIHRtcDAsIHRtcDEsIHRtcDIs IHRtcDMsIHRtcDQsIHRtcDU7Cj4+ICsgICAgX19tMTI4aSByZWcwLCByZWcxLCByZWcyLCByZWcz LCByZWc0Owo+PiArICAgIF9fbTEyOGkgZmlsdGVyMCwgZmlsdGVyMSwgZmlsdGVyMiwgZmlsdGVy MzsKPj4gKyAgICBfX20xMjhpIG91dDAsIG91dDE7Cj4+ICsgICAgaW50MzJfdCBzcmNfc3RyaWRl MiA9IHNyY19zdHJpZGUgPDwgMTsKPj4gKyAgICBpbnQzMl90IHNyY19zdHJpZGUzID0gc3JjX3N0 cmlkZSArIHNyY19zdHJpZGUyOwo+PiArICAgIGludDMyX3Qgc3JjX3N0cmlkZTQgPSBzcmNfc3Ry aWRlMiA8PCAxOwo+PiArICAgIHVpbnQ4X3QqIF9zcmMgPSAodWludDhfdCopc3JjIC0gc3JjX3N0 cmlkZTM7Cj4+ICsKPj4gKyAgICBEVVA0X0FSRzIoX19sc3hfdmxkcmVwbF9oLCBmaWx0ZXIsIDAs IGZpbHRlciwgMiwgZmlsdGVyLCA0LAo+PiBmaWx0ZXIsIDYsCj4+ICsgICAgICAgICAgICAgIGZp bHRlcjAsIGZpbHRlcjEsIGZpbHRlcjIsIGZpbHRlcjMpOwo+PiArICAgIHNyYzAgPSBfX2xzeF92 bGQoX3NyYywgMCk7Cj4+ICsgICAgRFVQMl9BUkcyKF9fbHN4X3ZsZHgsIF9zcmMsIHNyY19zdHJp ZGUsIF9zcmMsIHNyY19zdHJpZGUyLCBzcmMxLAo+PiBzcmMyKTsKPj4gKyAgICBzcmMzID0gX19s c3hfdmxkeChfc3JjLCBzcmNfc3RyaWRlMyk7Cj4+ICsgICAgX3NyYyArPSBzcmNfc3RyaWRlNDsK Pj4gKyAgICBzcmM0ID0gX19sc3hfdmxkKF9zcmMsIDApOwo+PiArICAgIERVUDJfQVJHMihfX2xz eF92bGR4LCBfc3JjLCBzcmNfc3RyaWRlLCBfc3JjLCBzcmNfc3RyaWRlMiwgc3JjNSwKPj4gc3Jj Nik7Cj4+ICsgICAgX3NyYyArPSBzcmNfc3RyaWRlMzsKPj4gKyAgICBEVVA0X0FSRzIoX19sc3hf dmlsdmxfYiwgc3JjMSwgc3JjMCwgc3JjMywgc3JjMiwgc3JjNSwgc3JjNCwgc3JjMiwKPj4gc3Jj MSwKPj4gKyAgICAgICAgICAgICAgdG1wMCwgdG1wMSwgdG1wMiwgdG1wMyk7Cj4+ICsgICAgRFVQ Ml9BUkcyKF9fbHN4X3ZpbHZsX2IsIHNyYzQsIHNyYzMsIHNyYzYsIHNyYzUsIHRtcDQsIHRtcDUp Owo+PiArICAgIERVUDJfQVJHMihfX2xzeF92aWx2bF9kLCB0bXAzLCB0bXAwLCB0bXA0LCB0bXAx LCByZWcwLCByZWcxKTsKPj4gKyAgICByZWcyID0gX19sc3hfdmlsdmxfZCh0bXA1LCB0bXAyKTsK Pj4gKyAgICBEVVAyX0FSRzIoX19sc3hfdnhvcmlfYiwgcmVnMCwgMTI4LCByZWcxLCAxMjgsIHJl ZzAsIHJlZzEpOwo+PiArICAgIHJlZzIgPSBfX2xzeF92eG9yaV9iKHJlZzIsIDEyOCk7Cj4+ICsK Pj4gKyAgICBmb3IgKDtsb29wX2NudC0tOykgewo+PiArICAgICAgICBzcmM3ID0gX19sc3hfdmxk KF9zcmMsIDApOwo+PiArICAgICAgICBEVVAyX0FSRzIoX19sc3hfdmxkeCwgX3NyYywgc3JjX3N0 cmlkZSwgX3NyYywgc3JjX3N0cmlkZTIsCj4+IHNyYzgsIHNyYzkpOwo+PiArICAgICAgICBzcmMx MCA9IF9fbHN4X3ZsZHgoX3NyYywgc3JjX3N0cmlkZTMpOwo+PiArICAgICAgICBfc3JjICs9IHNy Y19zdHJpZGU0Owo+PiArICAgICAgICBzcmMwID0gX19sc3hfdmxkcmVwbF93KGRzdF90bXAsIDAp Owo+PiArICAgICAgICBkc3RfdG1wICs9IGRzdF9zdHJpZGU7Cj4+ICsgICAgICAgIHNyYzEgPSBf X2xzeF92bGRyZXBsX3coZHN0X3RtcCwgMCk7Cj4+ICsgICAgICAgIGRzdF90bXAgKz0gZHN0X3N0 cmlkZTsKPj4gKyAgICAgICAgc3JjMiA9IF9fbHN4X3ZsZHJlcGxfdyhkc3RfdG1wLCAwKTsKPj4g KyAgICAgICAgZHN0X3RtcCArPSBkc3Rfc3RyaWRlOwo+PiArICAgICAgICBzcmMzID0gX19sc3hf dmxkcmVwbF93KGRzdF90bXAsIDApOwo+PiArICAgICAgICBkc3RfdG1wICs9IGRzdF9zdHJpZGU7 Cj4+ICsgICAgICAgIERVUDJfQVJHMihfX2xzeF92aWx2bF93LCBzcmMxLCBzcmMwLCBzcmMzLCBz cmMyLCBzcmMwLCBzcmMxKTsKPj4gKyAgICAgICAgc3JjMCA9IF9fbHN4X3ZpbHZsX2Qoc3JjMSwg c3JjMCk7Cj4+ICsgICAgICAgIERVUDRfQVJHMihfX2xzeF92aWx2bF9iLCBzcmM3LCBzcmM2LCBz cmM4LCBzcmM3LCBzcmM5LCBzcmM4LAo+PiBzcmMxMCwKPj4gKyAgICAgICAgICAgICAgICAgIHNy YzksIHRtcDAsIHRtcDEsIHRtcDIsIHRtcDMpOwo+PiArICAgICAgICBEVVAyX0FSRzIoX19sc3hf dmlsdmxfZCwgdG1wMSwgdG1wMCwgdG1wMywgdG1wMiwgcmVnMywgcmVnNCk7Cj4+ICsgICAgICAg IERVUDJfQVJHMihfX2xzeF92eG9yaV9iLCByZWczLCAxMjgsIHJlZzQsIDEyOCwgcmVnMywgcmVn NCk7Cj4+ICsgICAgICAgIG91dDAgPSBGSUxUXzhUQVBfRFBBRERfU19IKHJlZzAsIHJlZzEsIHJl ZzIsIHJlZzMsIGZpbHRlcjAsCj4+ICsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg IGZpbHRlcjEsIGZpbHRlcjIsIGZpbHRlcjMpOwo+PiArICAgICAgICBvdXQxID0gRklMVF84VEFQ X0RQQUREX1NfSChyZWcxLCByZWcyLCByZWczLCByZWc0LCBmaWx0ZXIwLAo+PiArICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICBmaWx0ZXIxLCBmaWx0ZXIyLCBmaWx0ZXIzKTsKPj4g KyAgICAgICAgb3V0MCA9IF9fbHN4X3Zzc3Jhcm5pX2JfaChvdXQxLCBvdXQwLCA3KTsKPj4gKyAg ICAgICAgb3V0MCA9IF9fbHN4X3Z4b3JpX2Iob3V0MCwgMTI4KTsKPj4gKyAgICAgICAgb3V0MCA9 IF9fbHN4X3ZhdmdyX2J1KG91dDAsIHNyYzApOwo+PiArICAgICAgICBfX2xzeF92c3RlbG1fdyhv dXQwLCBkc3QsIDAsIDApOwo+PiArICAgICAgICBkc3QgKz0gZHN0X3N0cmlkZTsKPj4gKyAgICAg ICAgX19sc3hfdnN0ZWxtX3cob3V0MCwgZHN0LCAwLCAxKTsKPj4gKyAgICAgICAgZHN0ICs9IGRz dF9zdHJpZGU7Cj4+ICsgICAgICAgIF9fbHN4X3ZzdGVsbV93KG91dDAsIGRzdCwgMCwgMik7Cj4+ ICsgICAgICAgIGRzdCArPSBkc3Rfc3RyaWRlOwo+PiArICAgICAgICBfX2xzeF92c3RlbG1fdyhv dXQwLCBkc3QsIDAsIDMpOwo+PiArICAgICAgICBkc3QgKz0gZHN0X3N0cmlkZTsKPj4gKyAgICAg ICAgcmVnMCA9IHJlZzI7Cj4+ICsgICAgICAgIHJlZzEgPSByZWczOwo+PiArICAgICAgICByZWcy ID0gcmVnNDsKPj4gKyAgICAgICAgc3JjNiA9IHNyYzEwOwo+PiArICAgIH0KPj4gK30KPj4gKwo+ PiArc3RhdGljIHZvaWQgY29tbW9uX3Z0Xzh0X2FuZF9hdmVyX2RzdF84d19sc3goY29uc3QgdWlu dDhfdCAqc3JjLAo+PiArICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgaW50MzJfdCBzcmNfc3RyaWRlLAo+PiArICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgdWludDhfdCAqZHN0LCBpbnQzMl90Cj4+IGRzdF9zdHJpZGUsCj4+ICsg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBpbnQ4X3Qg KmZpbHRlciwKPj4gKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg IGludDMyX3QgaGVpZ2h0KQo+PiArewo+PiArICAgIHVpbnQzMl90IGxvb3BfY250ID0gaGVpZ2h0 ID4+IDI7Cj4+ICsgICAgdWludDhfdCAqZHN0X3RtcCA9IGRzdDsKPj4gKyAgICBfX20xMjhpIHNy YzAsIHNyYzEsIHNyYzIsIHNyYzMsIHNyYzQsIHNyYzUsIHNyYzYsIHNyYzcsIHNyYzgsCj4+IHNy YzksIHNyYzEwOwo+PiArICAgIF9fbTEyOGkgdG1wMCwgdG1wMSwgdG1wMiwgdG1wMzsKPj4gKyAg ICBfX20xMjhpIHJlZzAsIHJlZzEsIHJlZzIsIHJlZzMsIHJlZzQsIHJlZzU7Cj4+ICsgICAgX19t MTI4aSBmaWx0ZXIwLCBmaWx0ZXIxLCBmaWx0ZXIyLCBmaWx0ZXIzOwo+PiArICAgIF9fbTEyOGkg b3V0MCwgb3V0MSwgb3V0Miwgb3V0MzsKPj4gKyAgICBpbnQzMl90IHNyY19zdHJpZGUyID0gc3Jj X3N0cmlkZSA8PCAxOwo+PiArICAgIGludDMyX3Qgc3JjX3N0cmlkZTMgPSBzcmNfc3RyaWRlICsg c3JjX3N0cmlkZTI7Cj4+ICsgICAgaW50MzJfdCBzcmNfc3RyaWRlNCA9IHNyY19zdHJpZGUyIDw8 IDE7Cj4+ICsgICAgdWludDhfdCogX3NyYyA9ICh1aW50OF90KilzcmMgLSBzcmNfc3RyaWRlMzsK Pj4gKwo+PiArICAgIERVUDRfQVJHMihfX2xzeF92bGRyZXBsX2gsIGZpbHRlciwgMCwgZmlsdGVy LCAyLCBmaWx0ZXIsIDQsCj4+IGZpbHRlciwgNiwKPj4gKyAgICAgICAgICAgICAgZmlsdGVyMCwg ZmlsdGVyMSwgZmlsdGVyMiwgZmlsdGVyMyk7Cj4+ICsKPj4gKyAgICBzcmMwID0gX19sc3hfdmxk KF9zcmMsIDApOwo+PiArICAgIERVUDJfQVJHMihfX2xzeF92bGR4LCBfc3JjLCBzcmNfc3RyaWRl LCBfc3JjLCBzcmNfc3RyaWRlMiwgc3JjMSwKPj4gc3JjMik7Cj4+ICsgICAgc3JjMyA9IF9fbHN4 X3ZsZHgoX3NyYywgc3JjX3N0cmlkZTMpOwo+PiArICAgIF9zcmMgKz0gc3JjX3N0cmlkZTQ7Cj4+ ICsgICAgc3JjNCA9IF9fbHN4X3ZsZChfc3JjLCAwKTsKPj4gKyAgICBEVVAyX0FSRzIoX19sc3hf dmxkeCwgX3NyYywgc3JjX3N0cmlkZSwgX3NyYywgc3JjX3N0cmlkZTIsIHNyYzUsCj4+IHNyYzYp Owo+PiArICAgIF9zcmMgKz0gc3JjX3N0cmlkZTM7Cj4+ICsgICAgRFVQNF9BUkcyKF9fbHN4X3Z4 b3JpX2IsIHNyYzAsIDEyOCwgc3JjMSwgMTI4LCBzcmMyLCAxMjgsIHNyYzMsCj4+IDEyOCwKPj4g KyAgICAgICAgICAgICAgc3JjMCwgc3JjMSwgc3JjMiwgc3JjMyk7Cj4+ICsgICAgRFVQMl9BUkcy KF9fbHN4X3Z4b3JpX2IsIHNyYzQsIDEyOCwgc3JjNSwgMTI4LCBzcmM0LCBzcmM1KTsKPj4gKyAg ICBzcmM2ID0gX19sc3hfdnhvcmlfYihzcmM2LCAxMjgpOwo+PiArICAgIERVUDRfQVJHMihfX2xz eF92aWx2bF9iLCBzcmMxLCBzcmMwLCBzcmMzLCBzcmMyLCBzcmM1LCBzcmM0LCBzcmMyLAo+PiAr ICAgICAgICAgICAgICBzcmMxLCByZWcwLCByZWcxLCByZWcyLCByZWczKTsKPj4gKyAgICBEVVAy X0FSRzIoX19sc3hfdmlsdmxfYiwgc3JjNCwgc3JjMywgc3JjNiwgc3JjNSwgcmVnNCwgcmVnNSk7 Cj4+ICsKPj4gKyAgICBmb3IgKDtsb29wX2NudC0tOykgewo+PiArICAgICAgICBzcmM3ID0gX19s c3hfdmxkKF9zcmMsIDApOwo+PiArICAgICAgICBEVVAyX0FSRzIoX19sc3hfdmxkeCwgX3NyYywg c3JjX3N0cmlkZSwgX3NyYywgc3JjX3N0cmlkZTIsCj4+IHNyYzgsIHNyYzkpOwo+PiArICAgICAg ICBzcmMxMCA9IF9fbHN4X3ZsZHgoX3NyYywgc3JjX3N0cmlkZTMpOwo+PiArICAgICAgICBfc3Jj ICs9IHNyY19zdHJpZGU0Owo+PiArICAgICAgICBzcmMwID0gX19sc3hfdmxkcmVwbF9kKGRzdF90 bXAsIDApOwo+PiArICAgICAgICBkc3RfdG1wICs9IGRzdF9zdHJpZGU7Cj4+ICsgICAgICAgIHNy YzEgPSBfX2xzeF92bGRyZXBsX2QoZHN0X3RtcCwgMCk7Cj4+ICsgICAgICAgIGRzdF90bXAgKz0g ZHN0X3N0cmlkZTsKPj4gKyAgICAgICAgc3JjMiA9IF9fbHN4X3ZsZHJlcGxfZChkc3RfdG1wLCAw KTsKPj4gKyAgICAgICAgZHN0X3RtcCArPSBkc3Rfc3RyaWRlOwo+PiArICAgICAgICBzcmMzID0g X19sc3hfdmxkcmVwbF9kKGRzdF90bXAsIDApOwo+PiArICAgICAgICBkc3RfdG1wICs9IGRzdF9z dHJpZGU7Cj4+ICsgICAgICAgIERVUDJfQVJHMihfX2xzeF92aWx2bF9kLCBzcmMxLCBzcmMwLCBz cmMzLCBzcmMyLCBzcmMwLCBzcmMxKTsKPj4gKyAgICAgICAgRFVQNF9BUkcyKF9fbHN4X3Z4b3Jp X2IsIHNyYzcsIDEyOCwgc3JjOCwgMTI4LCBzcmM5LCAxMjgsCj4+IHNyYzEwLCAxMjgsCj4+ICsg ICAgICAgICAgICAgICAgICBzcmM3LCBzcmM4LCBzcmM5LCBzcmMxMCk7Cj4+ICsgICAgICAgIERV UDRfQVJHMihfX2xzeF92aWx2bF9iLCBzcmM3LCBzcmM2LCBzcmM4LCBzcmM3LCBzcmM5LCBzcmM4 LAo+PiBzcmMxMCwKPj4gKyAgICAgICAgICAgICAgICAgIHNyYzksIHRtcDAsIHRtcDEsIHRtcDIs IHRtcDMpOwo+PiArICAgICAgICBvdXQwID0gRklMVF84VEFQX0RQQUREX1NfSChyZWcwLCByZWcx LCByZWcyLCB0bXAwLCBmaWx0ZXIwLAo+PiArICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICBmaWx0ZXIxLCBmaWx0ZXIyLCBmaWx0ZXIzKTsKPj4gKyAgICAgICAgb3V0MSA9IEZJTFRf OFRBUF9EUEFERF9TX0gocmVnMywgcmVnNCwgcmVnNSwgdG1wMSwgZmlsdGVyMCwKPj4gKyAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZmlsdGVyMSwgZmlsdGVyMiwgZmlsdGVyMyk7 Cj4+ICsgICAgICAgIG91dDIgPSBGSUxUXzhUQVBfRFBBRERfU19IKHJlZzEsIHJlZzIsIHRtcDAs IHRtcDIsIGZpbHRlcjAsCj4+ICsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZp bHRlcjEsIGZpbHRlcjIsIGZpbHRlcjMpOwo+PiArICAgICAgICBvdXQzID0gRklMVF84VEFQX0RQ QUREX1NfSChyZWc0LCByZWc1LCB0bXAxLCB0bXAzLCBmaWx0ZXIwLAo+PiArICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICBmaWx0ZXIxLCBmaWx0ZXIyLCBmaWx0ZXIzKTsKPj4gKyAg ICAgICAgRFVQMl9BUkczKF9fbHN4X3Zzc3Jhcm5pX2JfaCwgb3V0MSwgb3V0MCwgNywgb3V0Mywg b3V0MiwgNywKPj4gb3V0MCwgb3V0MSk7Cj4+ICsgICAgICAgIERVUDJfQVJHMihfX2xzeF92eG9y aV9iLCBvdXQwLCAxMjgsIG91dDEsIDEyOCwgb3V0MCwgb3V0MSk7Cj4+ICsgICAgICAgIERVUDJf QVJHMihfX2xzeF92YXZncl9idSwgb3V0MCwgc3JjMCwgb3V0MSwgc3JjMSwgb3V0MCwgb3V0MSk7 Cj4+ICsgICAgICAgIF9fbHN4X3ZzdGVsbV9kKG91dDAsIGRzdCwgMCwgMCk7Cj4+ICsgICAgICAg IGRzdCArPSBkc3Rfc3RyaWRlOwo+PiArICAgICAgICBfX2xzeF92c3RlbG1fZChvdXQwLCBkc3Qs IDAsIDEpOwo+PiArICAgICAgICBkc3QgKz0gZHN0X3N0cmlkZTsKPj4gKyAgICAgICAgX19sc3hf dnN0ZWxtX2Qob3V0MSwgZHN0LCAwLCAwKTsKPj4gKyAgICAgICAgZHN0ICs9IGRzdF9zdHJpZGU7 Cj4+ICsgICAgICAgIF9fbHN4X3ZzdGVsbV9kKG91dDEsIGRzdCwgMCwgMSk7Cj4+ICsgICAgICAg IGRzdCArPSBkc3Rfc3RyaWRlOwo+PiArCj4+ICsgICAgICAgIHJlZzAgPSByZWcyOwo+PiArICAg ICAgICByZWcxID0gdG1wMDsKPj4gKyAgICAgICAgcmVnMiA9IHRtcDI7Cj4+ICsgICAgICAgIHJl ZzMgPSByZWc1Owo+PiArICAgICAgICByZWc0ID0gdG1wMTsKPj4gKyAgICAgICAgcmVnNSA9IHRt cDM7Cj4+ICsgICAgICAgIHNyYzYgPSBzcmMxMDsKPj4gKyAgICB9Cj4+ICt9Cj4+ICsKPj4gK3N0 YXRpYyB2b2lkIGNvbW1vbl92dF84dF9hbmRfYXZlcl9kc3RfMTZ3X211bHRfbHN4KGNvbnN0IHVp bnQ4X3QgKnNyYywKPj4gKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIGludDMyX3Qgc3JjX3N0cmlkZSwKPj4gKyAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIHVpbnQ4X3QgKmRzdCwKPj4gKyAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGludDMyX3QgZHN0X3N0cmlk ZSwKPj4gKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg IGNvbnN0IGludDhfdAo+PiAqZmlsdGVyLAo+PiArICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgaW50MzJfdCBoZWlnaHQsCj4+ICsgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbnQzMl90IHdpZHRoKQo+PiAr ewo+PiArICAgIHVpbnQ4X3QgKnNyY190bXA7Cj4+ICsgICAgdWludDMyX3QgY250ID0gd2lkdGgg Pj4gNDsKPj4gKyAgICBfX20xMjhpIHNyYzAsIHNyYzEsIHNyYzIsIHNyYzMsIHNyYzQsIHNyYzUs IHNyYzYsIHNyYzcsIHNyYzgsCj4+IHNyYzksIHNyYzEwOwo+PiArICAgIF9fbTEyOGkgZmlsdGVy MCwgZmlsdGVyMSwgZmlsdGVyMiwgZmlsdGVyMzsKPj4gKyAgICBfX20xMjhpIHJlZzAsIHJlZzEs IHJlZzIsIHJlZzMsIHJlZzQsIHJlZzU7Cj4+ICsgICAgX19tMTI4aSByZWc2LCByZWc3LCByZWc4 LCByZWc5LCByZWcxMCwgcmVnMTE7Cj4+ICsgICAgX19tMTI4aSB0bXAwLCB0bXAxLCB0bXAyLCB0 bXAzOwo+PiArICAgIGludDMyX3Qgc3JjX3N0cmlkZTIgPSBzcmNfc3RyaWRlIDw8IDE7Cj4+ICsg ICAgaW50MzJfdCBzcmNfc3RyaWRlMyA9IHNyY19zdHJpZGUgKyBzcmNfc3RyaWRlMjsKPj4gKyAg ICBpbnQzMl90IHNyY19zdHJpZGU0ID0gc3JjX3N0cmlkZTIgPDwgMTsKPj4gKyAgICBpbnQzMl90 IGRzdF9zdHJpZGUyID0gZHN0X3N0cmlkZSA8PCAxOwo+PiArICAgIGludDMyX3QgZHN0X3N0cmlk ZTMgPSBkc3Rfc3RyaWRlMiArIGRzdF9zdHJpZGU7Cj4+ICsgICAgaW50MzJfdCBkc3Rfc3RyaWRl NCA9IGRzdF9zdHJpZGUyIDw8IDE7Cj4+ICsgICAgdWludDhfdCAqX3NyYyA9ICh1aW50OF90Kilz cmMgLSBzcmNfc3RyaWRlMzsKPj4gKwo+PiArICAgIERVUDRfQVJHMihfX2xzeF92bGRyZXBsX2gs IGZpbHRlciwgMCwgZmlsdGVyLCAyLCBmaWx0ZXIsIDQsCj4+IGZpbHRlciwgNiwKPj4gKyAgICAg ICAgICAgICAgZmlsdGVyMCwgZmlsdGVyMSwgZmlsdGVyMiwgZmlsdGVyMyk7Cj4+ICsgICAgZm9y ICg7Y250LS07KSB7Cj4+ICsgICAgICAgIHVpbnQzMl90IGxvb3BfY250ID0gaGVpZ2h0ID4+IDI7 Cj4+ICsgICAgICAgIHVpbnQ4X3QgKmRzdF9yZWcgPSBkc3Q7Cj4+ICsKPj4gKyAgICAgICAgc3Jj X3RtcCA9IF9zcmM7Cj4+ICsgICAgICAgIHNyYzAgPSBfX2xzeF92bGQoc3JjX3RtcCwgMCk7Cj4+ ICsgICAgICAgIERVUDJfQVJHMihfX2xzeF92bGR4LCBzcmNfdG1wLCBzcmNfc3RyaWRlLCBzcmNf dG1wLAo+PiBzcmNfc3RyaWRlMiwKPj4gKyAgICAgICAgICAgICAgICAgIHNyYzEsIHNyYzIpOwo+ PiArICAgICAgICBzcmMzID0gX19sc3hfdmxkeChzcmNfdG1wLCBzcmNfc3RyaWRlMyk7Cj4+ICsg ICAgICAgIHNyY190bXAgKz0gc3JjX3N0cmlkZTQ7Cj4+ICsgICAgICAgIHNyYzQgPSBfX2xzeF92 bGQoc3JjX3RtcCwgMCk7Cj4+ICsgICAgICAgIERVUDJfQVJHMihfX2xzeF92bGR4LCBzcmNfdG1w LCBzcmNfc3RyaWRlLCBzcmNfdG1wLAo+PiBzcmNfc3RyaWRlMiwKPj4gKyAgICAgICAgICAgICAg ICAgIHNyYzUsIHNyYzYpOwo+PiArICAgICAgICBzcmNfdG1wICs9IHNyY19zdHJpZGUzOwo+PiAr ICAgICAgICBEVVA0X0FSRzIoX19sc3hfdnhvcmlfYiwgc3JjMCwgMTI4LCBzcmMxLCAxMjgsIHNy YzIsIDEyOCwKPj4gc3JjMywgMTI4LAo+PiArICAgICAgICAgICAgICAgICAgc3JjMCwgc3JjMSwg c3JjMiwgc3JjMyk7Cj4+ICsgICAgICAgIERVUDJfQVJHMihfX2xzeF92eG9yaV9iLCBzcmM0LCAx MjgsIHNyYzUsIDEyOCwgc3JjNCwgc3JjNSk7Cj4+ICsgICAgICAgIHNyYzYgPSBfX2xzeF92eG9y aV9iKHNyYzYsIDEyOCk7Cj4+ICsgICAgICAgIERVUDRfQVJHMihfX2xzeF92aWx2bF9iLCBzcmMx LCBzcmMwLCBzcmMzLCBzcmMyLCBzcmM1LCBzcmM0LAo+PiBzcmMyLCBzcmMxLAo+PiArICAgICAg ICAgICAgICAgICAgcmVnMCwgcmVnMSwgcmVnMiwgcmVnMyk7Cj4+ICsgICAgICAgIERVUDJfQVJH MihfX2xzeF92aWx2bF9iLCBzcmM0LCBzcmMzLCBzcmM2LCBzcmM1LCByZWc0LCByZWc1KTsKPj4g KyAgICAgICAgRFVQNF9BUkcyKF9fbHN4X3ZpbHZoX2IsIHNyYzEsIHNyYzAsIHNyYzMsIHNyYzIs IHNyYzUsIHNyYzQsCj4+IHNyYzIsIHNyYzEsCj4+ICsgICAgICAgICAgICAgICAgICByZWc2LCBy ZWc3LCByZWc4LCByZWc5KTsKPj4gKyAgICAgICAgRFVQMl9BUkcyKF9fbHN4X3ZpbHZoX2IsIHNy YzQsIHNyYzMsIHNyYzYsIHNyYzUsIHJlZzEwLCByZWcxMSk7Cj4+ICsKPj4gKyAgICAgICAgZm9y ICg7bG9vcF9jbnQtLTspIHsKPj4gKyAgICAgICAgICAgIHNyYzcgPSBfX2xzeF92bGQoc3JjX3Rt cCwgMCk7Cj4+ICsgICAgICAgICAgICBEVVAyX0FSRzIoX19sc3hfdmxkeCwgc3JjX3RtcCwgc3Jj X3N0cmlkZSwgc3JjX3RtcCwKPj4gc3JjX3N0cmlkZTIsCj4+ICsgICAgICAgICAgICAgICAgICAg ICAgc3JjOCwgc3JjOSk7Cj4+ICsgICAgICAgICAgICBzcmMxMCA9IF9fbHN4X3ZsZHgoc3JjX3Rt cCwgc3JjX3N0cmlkZTMpOwo+PiArICAgICAgICAgICAgc3JjX3RtcCArPSBzcmNfc3RyaWRlNDsK Pj4gKyAgICAgICAgICAgIERVUDRfQVJHMihfX2xzeF92eG9yaV9iLCBzcmM3LCAxMjgsIHNyYzgs IDEyOCwgc3JjOSwgMTI4LAo+PiBzcmMxMCwKPj4gKyAgICAgICAgICAgICAgICAgICAgICAxMjgs IHNyYzcsIHNyYzgsIHNyYzksIHNyYzEwKTsKPj4gKyAgICAgICAgICAgIERVUDRfQVJHMihfX2xz eF92aWx2bF9iLCBzcmM3LCBzcmM2LCBzcmM4LCBzcmM3LCBzcmM5LAo+PiBzcmM4LAo+PiArICAg ICAgICAgICAgICAgICAgICAgIHNyYzEwLCBzcmM5LCBzcmMwLCBzcmMxLCBzcmMyLCBzcmMzKTsK Pj4gKyAgICAgICAgICAgIERVUDRfQVJHMihfX2xzeF92aWx2aF9iLCBzcmM3LCBzcmM2LCBzcmM4 LCBzcmM3LCBzcmM5LAo+PiBzcmM4LAo+PiArICAgICAgICAgICAgICAgICAgICAgIHNyYzEwLCBz cmM5LCBzcmM0LCBzcmM1LCBzcmM3LCBzcmM4KTsKPj4gKyAgICAgICAgICAgIHRtcDAgPSBGSUxU XzhUQVBfRFBBRERfU19IKHJlZzAsIHJlZzEsIHJlZzIsIHNyYzAsIGZpbHRlcjAsCj4+ICsgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmaWx0ZXIxLCBmaWx0ZXIyLCBmaWx0 ZXIzKTsKPj4gKyAgICAgICAgICAgIHRtcDEgPSBGSUxUXzhUQVBfRFBBRERfU19IKHJlZzMsIHJl ZzQsIHJlZzUsIHNyYzEsIGZpbHRlcjAsCj4+ICsgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICBmaWx0ZXIxLCBmaWx0ZXIyLCBmaWx0ZXIzKTsKPj4gKyAgICAgICAgICAgIHRt cDIgPSBGSUxUXzhUQVBfRFBBRERfU19IKHJlZzYsIHJlZzcsIHJlZzgsIHNyYzQsIGZpbHRlcjAs Cj4+ICsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmaWx0ZXIxLCBmaWx0 ZXIyLCBmaWx0ZXIzKTsKPj4gKyAgICAgICAgICAgIHRtcDMgPSBGSUxUXzhUQVBfRFBBRERfU19I KHJlZzksIHJlZzEwLCByZWcxMSwgc3JjNSwKPj4gZmlsdGVyMCwKPj4gKyAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIGZpbHRlcjEsIGZpbHRlcjIsIGZpbHRlcjMpOwo+PiAr ICAgICAgICAgICAgRFVQMl9BUkczKF9fbHN4X3Zzc3Jhcm5pX2JfaCwgdG1wMiwgdG1wMCwgNywg dG1wMywgdG1wMSwgNywKPj4gKyAgICAgICAgICAgICAgICAgICAgICB0bXAwLCB0bXAxKTsKPj4g KyAgICAgICAgICAgIERVUDJfQVJHMihfX2xzeF92eG9yaV9iLCB0bXAwLCAxMjgsIHRtcDEsIDEy OCwgdG1wMCwgdG1wMSk7Cj4+ICsgICAgICAgICAgICB0bXAyID0gX19sc3hfdmxkKGRzdF9yZWcs IDApOwo+PiArICAgICAgICAgICAgdG1wMyA9IF9fbHN4X3ZsZHgoZHN0X3JlZywgZHN0X3N0cmlk ZSk7Cj4+ICsgICAgICAgICAgICBEVVAyX0FSRzIoX19sc3hfdmF2Z3JfYnUsIHRtcDAsIHRtcDIs IHRtcDEsIHRtcDMsIHRtcDAsCj4+IHRtcDEpOwo+PiArICAgICAgICAgICAgX19sc3hfdnN0KHRt cDAsIGRzdF9yZWcsIDApOwo+PiArICAgICAgICAgICAgX19sc3hfdnN0eCh0bXAxLCBkc3RfcmVn LCBkc3Rfc3RyaWRlKTsKPj4gKyAgICAgICAgICAgIHRtcDAgPSBGSUxUXzhUQVBfRFBBRERfU19I KHJlZzEsIHJlZzIsIHNyYzAsIHNyYzIsIGZpbHRlcjAsCj4+ICsgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICBmaWx0ZXIxLCBmaWx0ZXIyLCBmaWx0ZXIzKTsKPj4gKyAgICAg ICAgICAgIHRtcDEgPSBGSUxUXzhUQVBfRFBBRERfU19IKHJlZzQsIHJlZzUsIHNyYzEsIHNyYzMs IGZpbHRlcjAsCj4+ICsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmaWx0 ZXIxLCBmaWx0ZXIyLCBmaWx0ZXIzKTsKPj4gKyAgICAgICAgICAgIHRtcDIgPSBGSUxUXzhUQVBf RFBBRERfU19IKHJlZzcsIHJlZzgsIHNyYzQsIHNyYzcsIGZpbHRlcjAsCj4+ICsgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmaWx0ZXIxLCBmaWx0ZXIyLCBmaWx0ZXIzKTsK Pj4gKyAgICAgICAgICAgIHRtcDMgPSBGSUxUXzhUQVBfRFBBRERfU19IKHJlZzEwLCByZWcxMSwg c3JjNSwgc3JjOCwKPj4gZmlsdGVyMCwKPj4gKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIGZpbHRlcjEsIGZpbHRlcjIsIGZpbHRlcjMpOwo+PiArICAgICAgICAgICAgRFVQ Ml9BUkczKF9fbHN4X3Zzc3Jhcm5pX2JfaCwgdG1wMiwgdG1wMCwgNywgdG1wMywgdG1wMSwgNywK Pj4gKyAgICAgICAgICAgICAgICAgICAgICB0bXAwLCB0bXAxKTsKPj4gKyAgICAgICAgICAgIERV UDJfQVJHMihfX2xzeF92eG9yaV9iLCB0bXAwLCAxMjgsIHRtcDEsIDEyOCwgdG1wMCwgdG1wMSk7 Cj4+ICsgICAgICAgICAgICB0bXAyID0gX19sc3hfdmxkeChkc3RfcmVnLCBkc3Rfc3RyaWRlMik7 Cj4+ICsgICAgICAgICAgICB0bXAzID0gX19sc3hfdmxkeChkc3RfcmVnLCBkc3Rfc3RyaWRlMyk7 Cj4+ICsgICAgICAgICAgICBEVVAyX0FSRzIoX19sc3hfdmF2Z3JfYnUsIHRtcDAsIHRtcDIsIHRt cDEsIHRtcDMsIHRtcDAsCj4+IHRtcDEpOwo+PiArICAgICAgICAgICAgX19sc3hfdnN0eCh0bXAw LCBkc3RfcmVnLCBkc3Rfc3RyaWRlMik7Cj4+ICsgICAgICAgICAgICBfX2xzeF92c3R4KHRtcDEs IGRzdF9yZWcsIGRzdF9zdHJpZGUzKTsKPj4gKyAgICAgICAgICAgIGRzdF9yZWcgKz0gZHN0X3N0 cmlkZTQ7Cj4+ICsKPj4gKyAgICAgICAgICAgIHJlZzAgPSByZWcyOwo+PiArICAgICAgICAgICAg cmVnMSA9IHNyYzA7Cj4+ICsgICAgICAgICAgICByZWcyID0gc3JjMjsKPj4gKyAgICAgICAgICAg IHJlZzMgPSByZWc1Owo+PiArICAgICAgICAgICAgcmVnNCA9IHNyYzE7Cj4+ICsgICAgICAgICAg ICByZWc1ID0gc3JjMzsKPj4gKyAgICAgICAgICAgIHJlZzYgPSByZWc4Owo+PiArICAgICAgICAg ICAgcmVnNyA9IHNyYzQ7Cj4+ICsgICAgICAgICAgICByZWc4ID0gc3JjNzsKPj4gKyAgICAgICAg ICAgIHJlZzkgPSByZWcxMTsKPj4gKyAgICAgICAgICAgIHJlZzEwID0gc3JjNTsKPj4gKyAgICAg ICAgICAgIHJlZzExID0gc3JjODsKPj4gKyAgICAgICAgICAgIHNyYzYgPSBzcmMxMDsKPj4gKyAg ICAgICAgfQo+PiArICAgICAgICBfc3JjICs9IDE2Owo+PiArICAgICAgICBkc3QgICs9IDE2Owo+ PiArICAgIH0KPj4gK30KPj4gKwo+PiArc3RhdGljIHZvaWQgY29tbW9uX3Z0Xzh0X2FuZF9hdmVy X2RzdF8xNndfbHN4KGNvbnN0IHVpbnQ4X3QgKnNyYywKPj4gKyAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICBpbnQzMl90IHNyY19zdHJpZGUsCj4+ICsgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdWludDhfdCAqZHN0LCBpbnQz Ml90Cj4+IGRzdF9zdHJpZGUsCj4+ICsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgY29uc3QgaW50OF90ICpmaWx0ZXIsCj4+ICsgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgaW50MzJfdCBoZWlnaHQpCj4+ICt7Cj4+ICsgICAg Y29tbW9uX3Z0Xzh0X2FuZF9hdmVyX2RzdF8xNndfbXVsdF9sc3goc3JjLCBzcmNfc3RyaWRlLCBk c3QsCj4+IGRzdF9zdHJpZGUsCj4+ICsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgZmlsdGVyLCBoZWlnaHQsIDE2KTsKPj4gK30KPj4gKwo+PiArc3RhdGljIHZvaWQg Y29tbW9uX3Z0Xzh0X2FuZF9hdmVyX2RzdF8zMndfbHN4KGNvbnN0IHVpbnQ4X3QgKnNyYywKPj4g KyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbnQzMl90IHNy Y19zdHJpZGUsCj4+ICsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgdWludDhfdCAqZHN0LCBpbnQzMl90Cj4+IGRzdF9zdHJpZGUsCj4+ICsgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgaW50OF90ICpmaWx0ZXIsCj4+ ICsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW50MzJfdCBo ZWlnaHQpCj4+ICt7Cj4+ICsgICAgY29tbW9uX3Z0Xzh0X2FuZF9hdmVyX2RzdF8xNndfbXVsdF9s c3goc3JjLCBzcmNfc3RyaWRlLCBkc3QsCj4+IGRzdF9zdHJpZGUsCj4+ICsgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZmlsdGVyLCBoZWlnaHQsIDMyKTsKPj4gK30K Pj4gKwo+PiArc3RhdGljIHZvaWQgY29tbW9uX3Z0Xzh0X2FuZF9hdmVyX2RzdF82NHdfbHN4KGNv bnN0IHVpbnQ4X3QgKnNyYywKPj4gKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICBpbnQzMl90IHNyY19zdHJpZGUsCj4+ICsgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgdWludDhfdCAqZHN0LCBpbnQzMl90Cj4+IGRzdF9zdHJp ZGUsCj4+ICsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29u c3QgaW50OF90ICpmaWx0ZXIsCj4+ICsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgaW50MzJfdCBoZWlnaHQpCj4+ICt7Cj4+ICsgICAgY29tbW9uX3Z0Xzh0X2Fu ZF9hdmVyX2RzdF8xNndfbXVsdF9sc3goc3JjLCBzcmNfc3RyaWRlLCBkc3QsCj4+IGRzdF9zdHJp ZGUsCj4+ICsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZmlsdGVy LCBoZWlnaHQsIDY0KTsKPj4gK30KPj4gKwo+PiArc3RhdGljIHZvaWQgY29tbW9uX2h2XzhodF84 dnRfYW5kX2F2ZXJfZHN0XzR3X2xzeChjb25zdCB1aW50OF90ICpzcmMsCj4+ICsgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGludDMyX3Qgc3JjX3N0cmlk ZSwKPj4gKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg dWludDhfdCAqZHN0LAo+PiArICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICBpbnQzMl90IGRzdF9zdHJpZGUsCj4+ICsgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IGludDhfdAo+PiAqZmlsdGVyX2hvcml6 LAo+PiArICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBj b25zdCBpbnQ4X3QKPj4gKmZpbHRlcl92ZXJ0LAo+PiArICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICBpbnQzMl90IGhlaWdodCkKPj4gK3sKPj4gKyAgICB1 aW50MzJfdCBsb29wX2NudCA9IGhlaWdodCA+PiAyOwo+PiArICAgIHVpbnQ4X3QgKmRzdF90bXAg PSBkc3Q7Cj4+ICsgICAgX19tMTI4aSBzcmMwLCBzcmMxLCBzcmMyLCBzcmMzLCBzcmM0LCBzcmM1 LCBzcmM2LCBzcmM3LCBzcmM4LAo+PiBzcmM5LCBzcmMxMDsKPj4gKyAgICBfX20xMjhpIGZpbHRf aHowLCBmaWx0X2h6MSwgZmlsdF9oejIsIGZpbHRfaHozOwo+PiArICAgIF9fbTEyOGkgZmlsdF92 dDAsIGZpbHRfdnQxLCBmaWx0X3Z0MiwgZmlsdF92dDM7Cj4+ICsgICAgX19tMTI4aSBtYXNrMCwg bWFzazEsIG1hc2syLCBtYXNrMzsKPj4gKyAgICBfX20xMjhpIHRtcDAsIHRtcDEsIHRtcDIsIHRt cDMsIHRtcDQsIHRtcDU7Cj4+ICsgICAgX19tMTI4aSBvdXQwLCBvdXQxOwo+PiArICAgIF9fbTEy OGkgc2h1ZmYgPSB7MHgwRjBFMEQwQzBCMEEwOTA4LCAweDE3MTYxNTE0MTMxMjExMTB9Owo+PiAr ICAgIGludDMyX3Qgc3JjX3N0cmlkZTIgPSBzcmNfc3RyaWRlIDw8IDE7Cj4+ICsgICAgaW50MzJf dCBzcmNfc3RyaWRlMyA9IHNyY19zdHJpZGUgKyBzcmNfc3RyaWRlMjsKPj4gKyAgICBpbnQzMl90 IHNyY19zdHJpZGU0ID0gc3JjX3N0cmlkZTIgPDwgMTsKPj4gKyAgICB1aW50OF90KiBfc3JjID0g KHVpbnQ4X3QqKXNyYyAtIDMgLSBzcmNfc3RyaWRlMzsKPj4gKwo+PiArICAgIG1hc2swID0gX19s c3hfdmxkKG1jX2ZpbHRfbWFza19hcnIsIDE2KTsKPj4gKyAgICBEVVA0X0FSRzIoX19sc3hfdmxk cmVwbF9oLCBmaWx0ZXJfaG9yaXosIDAsIGZpbHRlcl9ob3JpeiwgMiwKPj4gZmlsdGVyX2hvcml6 LAo+PiArICAgICAgICAgICAgICA0LCBmaWx0ZXJfaG9yaXosIDYsIGZpbHRfaHowLCBmaWx0X2h6 MSwgZmlsdF9oejIsCj4+IGZpbHRfaHozKTsKPj4gKyAgICBEVVAyX0FSRzIoX19sc3hfdmFkZGlf YnUsIG1hc2swLCAyLCBtYXNrMCwgNCwgbWFzazEsIG1hc2syKTsKPj4gKyAgICBtYXNrMyA9IF9f bHN4X3ZhZGRpX2J1KG1hc2swLCA2KTsKPj4gKwo+PiArICAgIHNyYzAgPSBfX2xzeF92bGQoX3Ny YywgMCk7Cj4+ICsgICAgRFVQMl9BUkcyKF9fbHN4X3ZsZHgsIF9zcmMsIHNyY19zdHJpZGUsIF9z cmMsIHNyY19zdHJpZGUyLCBzcmMxLAo+PiBzcmMyKTsKPj4gKyAgICBzcmMzID0gX19sc3hfdmxk eChfc3JjLCBzcmNfc3RyaWRlMyk7Cj4+ICsgICAgX3NyYyArPSBzcmNfc3RyaWRlNDsKPj4gKyAg ICBzcmM0ID0gX19sc3hfdmxkKF9zcmMsIDApOwo+PiArICAgIERVUDJfQVJHMihfX2xzeF92bGR4 LCBfc3JjLCBzcmNfc3RyaWRlLCBfc3JjLCBzcmNfc3RyaWRlMiwgc3JjNSwKPj4gc3JjNik7Cj4+ ICsgICAgX3NyYyArPSBzcmNfc3RyaWRlMzsKPj4gKwo+PiArICAgIERVUDRfQVJHMihfX2xzeF92 eG9yaV9iLCBzcmMwLCAxMjgsIHNyYzEsIDEyOCwgc3JjMiwgMTI4LCBzcmMzLAo+PiAxMjgsCj4+ ICsgICAgICAgICAgICAgIHNyYzAsIHNyYzEsIHNyYzIsIHNyYzMpOwo+PiArICAgIERVUDJfQVJH MihfX2xzeF92eG9yaV9iLCBzcmM0LCAxMjgsIHNyYzUsIDEyOCwgc3JjNCwgc3JjNSk7Cj4+ICsg ICAgc3JjNiA9IF9fbHN4X3Z4b3JpX2Ioc3JjNiwgMTI4KTsKPj4gKwo+PiArICAgIHRtcDAgPSBI T1JJWl84VEFQX0ZJTFQoc3JjMCwgc3JjMSwgbWFzazAsIG1hc2sxLCBtYXNrMiwgbWFzazMsCj4+ IGZpbHRfaHowLAo+PiArICAgICAgICAgICAgICAgICAgICAgICAgICAgZmlsdF9oejEsIGZpbHRf aHoyLCBmaWx0X2h6Myk7Cj4+ICsgICAgdG1wMiA9IEhPUklaXzhUQVBfRklMVChzcmMyLCBzcmMz LCBtYXNrMCwgbWFzazEsIG1hc2syLCBtYXNrMywKPj4gZmlsdF9oejAsCj4+ICsgICAgICAgICAg ICAgICAgICAgICAgICAgICBmaWx0X2h6MSwgZmlsdF9oejIsIGZpbHRfaHozKTsKPj4gKyAgICB0 bXA0ID0gSE9SSVpfOFRBUF9GSUxUKHNyYzQsIHNyYzUsIG1hc2swLCBtYXNrMSwgbWFzazIsIG1h c2szLAo+PiBmaWx0X2h6MCwKPj4gKyAgICAgICAgICAgICAgICAgICAgICAgICAgIGZpbHRfaHox LCBmaWx0X2h6MiwgZmlsdF9oejMpOwo+PiArICAgIHRtcDUgPSBIT1JJWl84VEFQX0ZJTFQoc3Jj NSwgc3JjNiwgbWFzazAsIG1hc2sxLCBtYXNrMiwgbWFzazMsCj4+IGZpbHRfaHowLAo+PiArICAg ICAgICAgICAgICAgICAgICAgICAgICAgZmlsdF9oejEsIGZpbHRfaHoyLCBmaWx0X2h6Myk7Cj4+ ICsgICAgRFVQMl9BUkczKF9fbHN4X3ZzaHVmX2IsIHRtcDIsIHRtcDAsIHNodWZmLCB0bXA0LCB0 bXAyLCBzaHVmZiwKPj4gdG1wMSwgdG1wMyk7Cj4+ICsgICAgRFVQNF9BUkcyKF9fbHN4X3ZsZHJl cGxfaCwgZmlsdGVyX3ZlcnQsIDAsIGZpbHRlcl92ZXJ0LCAyLAo+PiBmaWx0ZXJfdmVydCwgNCwK Pj4gKyAgICAgICAgICAgICAgZmlsdGVyX3ZlcnQsIDYsIGZpbHRfdnQwLCBmaWx0X3Z0MSwgZmls dF92dDIsIGZpbHRfdnQzKTsKPj4gKyAgICBEVVAyX0FSRzIoX19sc3hfdnBhY2tldl9iLCB0bXAx LCB0bXAwLCB0bXAzLCB0bXAyLCB0bXAwLCB0bXAxKTsKPj4gKyAgICB0bXAyID0gX19sc3hfdnBh Y2tldl9iKHRtcDUsIHRtcDQpOwo+PiArCj4+ICsgICAgZm9yICg7bG9vcF9jbnQtLTspIHsKPj4g KyAgICAgICAgc3JjNyA9IF9fbHN4X3ZsZChfc3JjLCAwKTsKPj4gKyAgICAgICAgRFVQMl9BUkcy KF9fbHN4X3ZsZHgsIF9zcmMsIHNyY19zdHJpZGUsIF9zcmMsIHNyY19zdHJpZGUyLAo+PiBzcmM4 LCBzcmM5KTsKPj4gKyAgICAgICAgc3JjMTAgPSBfX2xzeF92bGR4KF9zcmMsIHNyY19zdHJpZGUz KTsKPj4gKyAgICAgICAgX3NyYyArPSBzcmNfc3RyaWRlNDsKPj4gKyAgICAgICAgc3JjMiA9IF9f bHN4X3ZsZHJlcGxfdyhkc3RfdG1wLCAwKTsKPj4gKyAgICAgICAgZHN0X3RtcCArPSBkc3Rfc3Ry aWRlOwo+PiArICAgICAgICBzcmMzID0gX19sc3hfdmxkcmVwbF93KGRzdF90bXAsIDApOwo+PiAr ICAgICAgICBkc3RfdG1wICs9IGRzdF9zdHJpZGU7Cj4+ICsgICAgICAgIHNyYzQgPSBfX2xzeF92 bGRyZXBsX3coZHN0X3RtcCwgMCk7Cj4+ICsgICAgICAgIGRzdF90bXAgKz0gZHN0X3N0cmlkZTsK Pj4gKyAgICAgICAgc3JjNSA9IF9fbHN4X3ZsZHJlcGxfdyhkc3RfdG1wLCAwKTsKPj4gKyAgICAg ICAgZHN0X3RtcCArPSBkc3Rfc3RyaWRlOwo+PiArICAgICAgICBEVVAyX0FSRzIoX19sc3hfdmls dmxfdywgc3JjMywgc3JjMiwgc3JjNSwgc3JjNCwgc3JjMiwgc3JjMyk7Cj4+ICsgICAgICAgIHNy YzIgPSBfX2xzeF92aWx2bF9kKHNyYzMsIHNyYzIpOwo+PiArICAgICAgICBEVVA0X0FSRzIoX19s c3hfdnhvcmlfYiwgc3JjNywgMTI4LCBzcmM4LCAxMjgsIHNyYzksIDEyOCwKPj4gc3JjMTAsIDEy OCwKPj4gKyAgICAgICAgICAgICAgICAgIHNyYzcsIHNyYzgsIHNyYzksIHNyYzEwKTsKPj4gKyAg ICAgICAgdG1wMyA9IEhPUklaXzhUQVBfRklMVChzcmM3LCBzcmM4LCBtYXNrMCwgbWFzazEsIG1h c2syLCBtYXNrMywKPj4gZmlsdF9oejAsCj4+ICsgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgZmlsdF9oejEsIGZpbHRfaHoyLCBmaWx0X2h6Myk7Cj4+ICsgICAgICAgIHRtcDQgPSBfX2xz eF92c2h1Zl9iKHRtcDMsIHRtcDUsIHNodWZmKTsKPj4gKyAgICAgICAgdG1wNCA9IF9fbHN4X3Zw YWNrZXZfYih0bXAzLCB0bXA0KTsKPj4gKyAgICAgICAgb3V0MCA9IEZJTFRfOFRBUF9EUEFERF9T X0godG1wMCwgdG1wMSwgdG1wMiwgdG1wNCwgZmlsdF92dDAsCj4+IGZpbHRfdnQxLAo+PiArICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmaWx0X3Z0MiwgZmlsdF92dDMpOwo+PiAr ICAgICAgICBzcmMxID0gSE9SSVpfOFRBUF9GSUxUKHNyYzksIHNyYzEwLCBtYXNrMCwgbWFzazEs IG1hc2syLCBtYXNrMywKPj4gKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmaWx0X2h6 MCwgZmlsdF9oejEsIGZpbHRfaHoyLCBmaWx0X2h6Myk7Cj4+ICsgICAgICAgIHNyYzAgPSBfX2xz eF92c2h1Zl9iKHNyYzEsIHRtcDMsIHNodWZmKTsKPj4gKyAgICAgICAgc3JjMCA9IF9fbHN4X3Zw YWNrZXZfYihzcmMxLCBzcmMwKTsKPj4gKyAgICAgICAgb3V0MSA9IEZJTFRfOFRBUF9EUEFERF9T X0godG1wMSwgdG1wMiwgdG1wNCwgc3JjMCwgZmlsdF92dDAsCj4+IGZpbHRfdnQxLAo+PiArICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmaWx0X3Z0MiwgZmlsdF92dDMpOwo+PiAr ICAgICAgICBvdXQwID0gX19sc3hfdnNzcmFybmlfYl9oKG91dDEsIG91dDAsIDcpOwo+PiArICAg ICAgICBvdXQwID0gX19sc3hfdnhvcmlfYihvdXQwLCAxMjgpOwo+PiArICAgICAgICBvdXQwID0g X19sc3hfdmF2Z3JfYnUob3V0MCwgc3JjMik7Cj4+ICsgICAgICAgIF9fbHN4X3ZzdGVsbV93KG91 dDAsIGRzdCwgMCwgMCk7Cj4+ICsgICAgICAgIGRzdCArPSBkc3Rfc3RyaWRlOwo+PiArICAgICAg ICBfX2xzeF92c3RlbG1fdyhvdXQwLCBkc3QsIDAsIDEpOwo+PiArICAgICAgICBkc3QgKz0gZHN0 X3N0cmlkZTsKPj4gKyAgICAgICAgX19sc3hfdnN0ZWxtX3cob3V0MCwgZHN0LCAwLCAyKTsKPj4g KyAgICAgICAgZHN0ICs9IGRzdF9zdHJpZGU7Cj4+ICsgICAgICAgIF9fbHN4X3ZzdGVsbV93KG91 dDAsIGRzdCwgMCwgMyk7Cj4+ICsgICAgICAgIGRzdCArPSBkc3Rfc3RyaWRlOwo+PiArCj4+ICsg ICAgICAgIHRtcDUgPSBzcmMxOwo+PiArICAgICAgICB0bXAwID0gdG1wMjsKPj4gKyAgICAgICAg dG1wMSA9IHRtcDQ7Cj4+ICsgICAgICAgIHRtcDIgPSBzcmMwOwo+PiArICAgIH0KPj4gK30KPj4g Kwo+PiArc3RhdGljIHZvaWQgY29tbW9uX2h2XzhodF84dnRfYW5kX2F2ZXJfZHN0Xzh3X2xzeChj b25zdCB1aW50OF90ICpzcmMsCj4+ICsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIGludDMyX3Qgc3JjX3N0cmlkZSwKPj4gKyAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdWludDhfdCAqZHN0LAo+PiArICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbnQzMl90IGRzdF9z dHJpZGUsCj4+ICsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIGNvbnN0IGludDhfdAo+PiAqZmlsdGVyX2hvcml6LAo+PiArICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBpbnQ4X3QKPj4gKmZpbHRlcl92 ZXJ0LAo+PiArICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICBpbnQzMl90IGhlaWdodCkKPj4gK3sKPj4gKyAgICB1aW50MzJfdCBsb29wX2NudCA9IGhlaWdo dCA+PiAyOwo+PiArICAgIHVpbnQ4X3QgKmRzdF90bXAgPSBkc3Q7Cj4+ICsgICAgX19tMTI4aSBz cmMwLCBzcmMxLCBzcmMyLCBzcmMzLCBzcmM0LCBzcmM1LCBzcmM2LCBzcmM3LCBzcmM4LAo+PiBz cmM5LCBzcmMxMDsKPj4gKyAgICBfX20xMjhpIGZpbHRfaHowLCBmaWx0X2h6MSwgZmlsdF9oejIs IGZpbHRfaHozOwo+PiArICAgIF9fbTEyOGkgZmlsdF92dDAsIGZpbHRfdnQxLCBmaWx0X3Z0Miwg ZmlsdF92dDM7Cj4+ICsgICAgX19tMTI4aSBtYXNrMCwgbWFzazEsIG1hc2syLCBtYXNrMzsKPj4g KyAgICBfX20xMjhpIHRtcDAsIHRtcDEsIHRtcDIsIHRtcDMsIHRtcDQsIHRtcDUsIHRtcDY7Cj4+ ICsgICAgX19tMTI4aSBvdXQwLCBvdXQxOwo+PiArICAgIGludDMyX3Qgc3JjX3N0cmlkZTIgPSBz cmNfc3RyaWRlIDw8IDE7Cj4+ICsgICAgaW50MzJfdCBzcmNfc3RyaWRlMyA9IHNyY19zdHJpZGUg KyBzcmNfc3RyaWRlMjsKPj4gKyAgICBpbnQzMl90IHNyY19zdHJpZGU0ID0gc3JjX3N0cmlkZTIg PDwgMTsKPj4gKyAgICB1aW50OF90KiBfc3JjID0gKHVpbnQ4X3QqKXNyYyAtIDMgLSBzcmNfc3Ry aWRlMzsKPj4gKwo+PiArICAgIG1hc2swID0gX19sc3hfdmxkKG1jX2ZpbHRfbWFza19hcnIsIDAp Owo+PiArICAgIERVUDRfQVJHMihfX2xzeF92bGRyZXBsX2gsIGZpbHRlcl9ob3JpeiwgMCwgZmls dGVyX2hvcml6LCAyLAo+PiBmaWx0ZXJfaG9yaXosCj4+ICsgICAgICAgICAgICAgIDQsIGZpbHRl cl9ob3JpeiwgNiwgZmlsdF9oejAsIGZpbHRfaHoxLCBmaWx0X2h6MiwKPj4gZmlsdF9oejMpOwo+ PiArICAgIERVUDJfQVJHMihfX2xzeF92YWRkaV9idSwgbWFzazAsIDIsIG1hc2swLCA0LCBtYXNr MSwgbWFzazIpOwo+PiArICAgIG1hc2szID0gX19sc3hfdmFkZGlfYnUobWFzazAsIDYpOwo+PiAr Cj4+ICsgICAgc3JjMCA9IF9fbHN4X3ZsZChfc3JjLCAwKTsKPj4gKyAgICBEVVAyX0FSRzIoX19s c3hfdmxkeCwgX3NyYywgc3JjX3N0cmlkZSwgX3NyYywgc3JjX3N0cmlkZTIsIHNyYzEsCj4+IHNy YzIpOwo+PiArICAgIHNyYzMgPSBfX2xzeF92bGR4KF9zcmMsIHNyY19zdHJpZGUzKTsKPj4gKyAg ICBfc3JjICs9IHNyY19zdHJpZGU0Owo+PiArICAgIHNyYzQgPSBfX2xzeF92bGQoX3NyYywgMCk7 Cj4+ICsgICAgRFVQMl9BUkcyKF9fbHN4X3ZsZHgsIF9zcmMsIHNyY19zdHJpZGUsIF9zcmMsIHNy Y19zdHJpZGUyLCBzcmM1LAo+PiBzcmM2KTsKPj4gKyAgICBfc3JjICs9IHNyY19zdHJpZGUzOwo+ PiArICAgIERVUDRfQVJHMihfX2xzeF92eG9yaV9iLCBzcmMwLCAxMjgsIHNyYzEsIDEyOCwgc3Jj MiwgMTI4LCBzcmMzLAo+PiAxMjgsCj4+ICsgICAgICAgICAgICAgIHNyYzAsIHNyYzEsIHNyYzIs IHNyYzMpOwo+PiArICAgIERVUDJfQVJHMihfX2xzeF92eG9yaV9iLCBzcmM0LCAxMjgsIHNyYzUs IDEyOCwgc3JjNCwgc3JjNSk7Cj4+ICsgICAgc3JjNiA9IF9fbHN4X3Z4b3JpX2Ioc3JjNiwgMTI4 KTsKPj4gKwo+PiArICAgIHNyYzAgPSBIT1JJWl84VEFQX0ZJTFQoc3JjMCwgc3JjMCwgbWFzazAs IG1hc2sxLCBtYXNrMiwgbWFzazMsCj4+IGZpbHRfaHowLAo+PiArICAgICAgICAgICAgICAgICAg ICAgICAgICAgZmlsdF9oejEsIGZpbHRfaHoyLCBmaWx0X2h6Myk7Cj4+ICsgICAgc3JjMSA9IEhP UklaXzhUQVBfRklMVChzcmMxLCBzcmMxLCBtYXNrMCwgbWFzazEsIG1hc2syLCBtYXNrMywKPj4g ZmlsdF9oejAsCj4+ICsgICAgICAgICAgICAgICAgICAgICAgICAgICBmaWx0X2h6MSwgZmlsdF9o ejIsIGZpbHRfaHozKTsKPj4gKyAgICBzcmMyID0gSE9SSVpfOFRBUF9GSUxUKHNyYzIsIHNyYzIs IG1hc2swLCBtYXNrMSwgbWFzazIsIG1hc2szLAo+PiBmaWx0X2h6MCwKPj4gKyAgICAgICAgICAg ICAgICAgICAgICAgICAgIGZpbHRfaHoxLCBmaWx0X2h6MiwgZmlsdF9oejMpOwo+PiArICAgIHNy YzMgPSBIT1JJWl84VEFQX0ZJTFQoc3JjMywgc3JjMywgbWFzazAsIG1hc2sxLCBtYXNrMiwgbWFz azMsCj4+IGZpbHRfaHowLAo+PiArICAgICAgICAgICAgICAgICAgICAgICAgICAgZmlsdF9oejEs IGZpbHRfaHoyLCBmaWx0X2h6Myk7Cj4+ICsgICAgc3JjNCA9IEhPUklaXzhUQVBfRklMVChzcmM0 LCBzcmM0LCBtYXNrMCwgbWFzazEsIG1hc2syLCBtYXNrMywKPj4gZmlsdF9oejAsCj4+ICsgICAg ICAgICAgICAgICAgICAgICAgICAgICBmaWx0X2h6MSwgZmlsdF9oejIsIGZpbHRfaHozKTsKPj4g KyAgICBzcmM1ID0gSE9SSVpfOFRBUF9GSUxUKHNyYzUsIHNyYzUsIG1hc2swLCBtYXNrMSwgbWFz azIsIG1hc2szLAo+PiBmaWx0X2h6MCwKPj4gKyAgICAgICAgICAgICAgICAgICAgICAgICAgIGZp bHRfaHoxLCBmaWx0X2h6MiwgZmlsdF9oejMpOwo+PiArICAgIHNyYzYgPSBIT1JJWl84VEFQX0ZJ TFQoc3JjNiwgc3JjNiwgbWFzazAsIG1hc2sxLCBtYXNrMiwgbWFzazMsCj4+IGZpbHRfaHowLAo+ PiArICAgICAgICAgICAgICAgICAgICAgICAgICAgZmlsdF9oejEsIGZpbHRfaHoyLCBmaWx0X2h6 Myk7Cj4+ICsKPj4gKyAgICBEVVA0X0FSRzIoX19sc3hfdmxkcmVwbF9oLCBmaWx0ZXJfdmVydCwg MCwgZmlsdGVyX3ZlcnQsIDIsCj4+IGZpbHRlcl92ZXJ0LCA0LAo+PiArICAgICAgICAgICAgICBm aWx0ZXJfdmVydCwgNiwgZmlsdF92dDAsIGZpbHRfdnQxLCBmaWx0X3Z0MiwgZmlsdF92dDMpOwo+ PiArICAgIERVUDRfQVJHMihfX2xzeF92cGFja2V2X2IsIHNyYzEsIHNyYzAsIHNyYzMsIHNyYzIs IHNyYzUsIHNyYzQsCj4+ICsgICAgICAgICAgICAgIHNyYzIsIHNyYzEsIHRtcDAsIHRtcDEsIHRt cDIsIHRtcDQpOwo+PiArICAgIERVUDJfQVJHMihfX2xzeF92cGFja2V2X2IsIHNyYzQsIHNyYzMs IHNyYzYsIHNyYzUsIHRtcDUsIHRtcDYpOwo+PiArCj4+ICsgICAgZm9yICg7bG9vcF9jbnQtLTsp IHsKPj4gKyAgICAgICAgc3JjNyA9IF9fbHN4X3ZsZChfc3JjLCAwKTsKPj4gKyAgICAgICAgRFVQ Ml9BUkcyKF9fbHN4X3ZsZHgsIF9zcmMsIHNyY19zdHJpZGUsIF9zcmMsIHNyY19zdHJpZGUyLAo+ PiBzcmM4LCBzcmM5KTsKPj4gKyAgICAgICAgc3JjMTAgPSBfX2xzeF92bGR4KF9zcmMsIHNyY19z dHJpZGUzKTsKPj4gKyAgICAgICAgX3NyYyArPSBzcmNfc3RyaWRlNDsKPj4gKwo+PiArICAgICAg ICBEVVA0X0FSRzIoX19sc3hfdnhvcmlfYiwgc3JjNywgMTI4LCBzcmM4LCAxMjgsIHNyYzksIDEy OCwKPj4gc3JjMTAsIDEyOCwKPj4gKyAgICAgICAgICAgICAgICAgIHNyYzcsIHNyYzgsIHNyYzks IHNyYzEwKTsKPj4gKyAgICAgICAgc3JjNyA9IEhPUklaXzhUQVBfRklMVChzcmM3LCBzcmM3LCBt YXNrMCwgbWFzazEsIG1hc2syLCBtYXNrMywKPj4gZmlsdF9oejAsCj4+ICsgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgZmlsdF9oejEsIGZpbHRfaHoyLCBmaWx0X2h6Myk7Cj4+ICsgICAg ICAgIHRtcDMgPSBfX2xzeF92cGFja2V2X2Ioc3JjNywgc3JjNik7Cj4+ICsgICAgICAgIG91dDAg PSBGSUxUXzhUQVBfRFBBRERfU19IKHRtcDAsIHRtcDEsIHRtcDIsIHRtcDMsIGZpbHRfdnQwLAo+ PiBmaWx0X3Z0MSwKPj4gKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZmlsdF92 dDIsIGZpbHRfdnQzKTsKPj4gKyAgICAgICAgc3JjOCA9IEhPUklaXzhUQVBfRklMVChzcmM4LCBz cmM4LCBtYXNrMCwgbWFzazEsIG1hc2syLCBtYXNrMywKPj4gZmlsdF9oejAsCj4+ICsgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgZmlsdF9oejEsIGZpbHRfaHoyLCBmaWx0X2h6Myk7Cj4+ ICsgICAgICAgIHNyYzAgPSBfX2xzeF92cGFja2V2X2Ioc3JjOCwgc3JjNyk7Cj4+ICsgICAgICAg IG91dDEgPSBGSUxUXzhUQVBfRFBBRERfU19IKHRtcDQsIHRtcDUsIHRtcDYsIHNyYzAsIGZpbHRf dnQwLAo+PiBmaWx0X3Z0MSwKPj4gKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ZmlsdF92dDIsIGZpbHRfdnQzKTsKPj4gKyAgICAgICAgc3JjOSA9IEhPUklaXzhUQVBfRklMVChz cmM5LCBzcmM5LCBtYXNrMCwgbWFzazEsIG1hc2syLCBtYXNrMywKPj4gZmlsdF9oejAsCj4+ICsg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZmlsdF9oejEsIGZpbHRfaHoyLCBmaWx0X2h6 Myk7Cj4+ICsgICAgICAgIHNyYzEgPSBfX2xzeF92cGFja2V2X2Ioc3JjOSwgc3JjOCk7Cj4+ICsg ICAgICAgIHNyYzMgPSBGSUxUXzhUQVBfRFBBRERfU19IKHRtcDEsIHRtcDIsIHRtcDMsIHNyYzEs IGZpbHRfdnQwLAo+PiBmaWx0X3Z0MSwKPj4gKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgZmlsdF92dDIsIGZpbHRfdnQzKTsKPj4gKyAgICAgICAgc3JjMTAgPSBIT1JJWl84VEFQ X0ZJTFQoc3JjMTAsIHNyYzEwLCBtYXNrMCwgbWFzazEsIG1hc2syLAo+PiBtYXNrMywgZmlsdF9o ejAsCj4+ICsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZmlsdF9oejEsIGZpbHRfaHoy LCBmaWx0X2h6Myk7Cj4+ICsgICAgICAgIHNyYzIgPSBfX2xzeF92cGFja2V2X2Ioc3JjMTAsIHNy YzkpOwo+PiArICAgICAgICBzcmM0ID0gRklMVF84VEFQX0RQQUREX1NfSCh0bXA1LCB0bXA2LCBz cmMwLCBzcmMyLCBmaWx0X3Z0MCwKPj4gZmlsdF92dDEsCj4+ICsgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIGZpbHRfdnQyLCBmaWx0X3Z0Myk7Cj4+ICsgICAgICAgIERVUDJfQVJH MyhfX2xzeF92c3NyYXJuaV9iX2gsIG91dDEsIG91dDAsIDcsIHNyYzQsIHNyYzMsIDcsCj4+IG91 dDAsIG91dDEpOwo+PiArICAgICAgICBEVVAyX0FSRzIoX19sc3hfdnhvcmlfYiwgb3V0MCwgMTI4 LCBvdXQxLCAxMjgsIG91dDAsIG91dDEpOwo+PiArICAgICAgICBzcmM1ID0gX19sc3hfdmxkcmVw bF9kKGRzdF90bXAsIDApOwo+PiArICAgICAgICBkc3RfdG1wICs9IGRzdF9zdHJpZGU7Cj4+ICsg ICAgICAgIHNyYzcgPSBfX2xzeF92bGRyZXBsX2QoZHN0X3RtcCwgMCk7Cj4+ICsgICAgICAgIGRz dF90bXAgKz0gZHN0X3N0cmlkZTsKPj4gKyAgICAgICAgc3JjOCA9IF9fbHN4X3ZsZHJlcGxfZChk c3RfdG1wLCAwKTsKPj4gKyAgICAgICAgZHN0X3RtcCArPSBkc3Rfc3RyaWRlOwo+PiArICAgICAg ICBzcmM5ID0gX19sc3hfdmxkcmVwbF9kKGRzdF90bXAsIDApOwo+PiArICAgICAgICBkc3RfdG1w ICs9IGRzdF9zdHJpZGU7Cj4+ICsgICAgICAgIERVUDJfQVJHMihfX2xzeF92aWx2bF9kLCBzcmM3 LCBzcmM1LCBzcmM5LCBzcmM4LCBzcmM1LCBzcmM3KTsKPj4gKyAgICAgICAgRFVQMl9BUkcyKF9f bHN4X3ZhdmdyX2J1LCBvdXQwLCBzcmM1LCBvdXQxLCBzcmM3LCBvdXQwLCBvdXQxKTsKPj4gKyAg ICAgICAgX19sc3hfdnN0ZWxtX2Qob3V0MCwgZHN0LCAwLCAwKTsKPj4gKyAgICAgICAgZHN0ICs9 IGRzdF9zdHJpZGU7Cj4+ICsgICAgICAgIF9fbHN4X3ZzdGVsbV9kKG91dDAsIGRzdCwgMCwgMSk7 Cj4+ICsgICAgICAgIGRzdCArPSBkc3Rfc3RyaWRlOwo+PiArICAgICAgICBfX2xzeF92c3RlbG1f ZChvdXQxLCBkc3QsIDAsIDApOwo+PiArICAgICAgICBkc3QgKz0gZHN0X3N0cmlkZTsKPj4gKyAg ICAgICAgX19sc3hfdnN0ZWxtX2Qob3V0MSwgZHN0LCAwLCAxKTsKPj4gKyAgICAgICAgZHN0ICs9 IGRzdF9zdHJpZGU7Cj4+ICsKPj4gKyAgICAgICAgc3JjNiA9IHNyYzEwOwo+PiArICAgICAgICB0 bXAwID0gdG1wMjsKPj4gKyAgICAgICAgdG1wMSA9IHRtcDM7Cj4+ICsgICAgICAgIHRtcDIgPSBz cmMxOwo+PiArICAgICAgICB0bXA0ID0gdG1wNjsKPj4gKyAgICAgICAgdG1wNSA9IHNyYzA7Cj4+ ICsgICAgICAgIHRtcDYgPSBzcmMyOwo+PiArICAgIH0KPj4gK30KPj4gKwo+PiArc3RhdGljIHZv aWQgY29tbW9uX2h2XzhodF84dnRfYW5kX2F2ZXJfZHN0XzE2d19sc3goY29uc3QgdWludDhfdCAq c3JjLAo+PiArICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgaW50MzJfdCBzcmNfc3RyaWRlLAo+PiArICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgdWludDhfdCAqZHN0LAo+PiArICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW50MzJfdCBkc3Rfc3RyaWRlLAo+PiAr ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3Qg aW50OF90Cj4+ICpmaWx0ZXJfaG9yaXosCj4+ICsgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBpbnQ4X3QKPj4gKmZpbHRlcl92ZXJ0LAo+PiAr ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW50MzJf dCBoZWlnaHQpCj4+ICt7Cj4+ICsgICAgaW50MzJfdCBtdWx0aXBsZThfY250Owo+PiArCj4+ICsg ICAgZm9yIChtdWx0aXBsZThfY250ID0gMjsgbXVsdGlwbGU4X2NudC0tOykgewo+PiArICAgICAg ICBjb21tb25faHZfOGh0Xzh2dF9hbmRfYXZlcl9kc3RfOHdfbHN4KHNyYywgc3JjX3N0cmlkZSwg ZHN0LAo+PiBkc3Rfc3RyaWRlLAo+PiArICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIGZpbHRlcl9ob3JpeiwKPj4gZmlsdGVyX3ZlcnQsCj4+ICsgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaGVpZ2h0KTsKPj4gKwo+PiArICAg ICAgICBzcmMgKz0gODsKPj4gKyAgICAgICAgZHN0ICs9IDg7Cj4+ICsgICAgfQo+PiArfQo+PiAr Cj4+ICtzdGF0aWMgdm9pZCBjb21tb25faHZfOGh0Xzh2dF9hbmRfYXZlcl9kc3RfMzJ3X2xzeChj b25zdCB1aW50OF90ICpzcmMsCj4+ICsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICBpbnQzMl90IHNyY19zdHJpZGUsCj4+ICsgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB1aW50OF90ICpkc3QsCj4+ICsgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbnQzMl90IGRz dF9zdHJpZGUsCj4+ICsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICBjb25zdCBpbnQ4X3QKPj4gKmZpbHRlcl9ob3JpeiwKPj4gKyAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IGludDhfdAo+PiAqZmls dGVyX3ZlcnQsCj4+ICsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICBpbnQzMl90IGhlaWdodCkKPj4gK3sKPj4gKyAgICBpbnQzMl90IG11bHRpcGxlOF9j bnQ7Cj4+ICsKPj4gKyAgICBmb3IgKG11bHRpcGxlOF9jbnQgPSA0OyBtdWx0aXBsZThfY250LS07 KSB7Cj4+ICsgICAgICAgIGNvbW1vbl9odl84aHRfOHZ0X2FuZF9hdmVyX2RzdF84d19sc3goc3Jj LCBzcmNfc3RyaWRlLCBkc3QsCj4+IGRzdF9zdHJpZGUsCj4+ICsgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgZmlsdGVyX2hvcml6LAo+PiBmaWx0ZXJfdmVydCwK Pj4gKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBoZWlnaHQp Owo+PiArCj4+ICsgICAgICAgIHNyYyArPSA4Owo+PiArICAgICAgICBkc3QgKz0gODsKPj4gKyAg ICB9Cj4+ICt9Cj4+ICsKPj4gK3N0YXRpYyB2b2lkIGNvbW1vbl9odl84aHRfOHZ0X2FuZF9hdmVy X2RzdF82NHdfbHN4KGNvbnN0IHVpbnQ4X3QgKnNyYywKPj4gKyAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGludDMyX3Qgc3JjX3N0cmlkZSwKPj4gKyAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHVpbnQ4X3Qg KmRzdCwKPj4gKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIGludDMyX3QgZHN0X3N0cmlkZSwKPj4gKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IGludDhfdAo+PiAqZmlsdGVyX2hvcml6LAo+PiAr ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3Qg aW50OF90Cj4+ICpmaWx0ZXJfdmVydCwKPj4gKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIGludDMyX3QgaGVpZ2h0KQo+PiArewo+PiArICAgIGludDMy X3QgbXVsdGlwbGU4X2NudDsKPj4gKwo+PiArICAgIGZvciAobXVsdGlwbGU4X2NudCA9IDg7IG11 bHRpcGxlOF9jbnQtLTspIHsKPj4gKyAgICAgICAgY29tbW9uX2h2XzhodF84dnRfYW5kX2F2ZXJf ZHN0Xzh3X2xzeChzcmMsIHNyY19zdHJpZGUsIGRzdCwKPj4gZHN0X3N0cmlkZSwKPj4gKyAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmaWx0ZXJfaG9yaXosCj4+ IGZpbHRlcl92ZXJ0LAo+PiArICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgIGhlaWdodCk7Cj4+ICsKPj4gKyAgICAgICAgc3JjICs9IDg7Cj4+ICsgICAgICAgIGRz dCArPSA4Owo+PiArICAgIH0KPj4gK30KPj4gKwo+PiArc3RhdGljIHZvaWQgYXZnX3dpZHRoOF9s c3goY29uc3QgdWludDhfdCAqc3JjLCBpbnQzMl90IHNyY19zdHJpZGUsCj4+ICsgICAgICAgICAg ICAgICAgICAgICAgICAgICB1aW50OF90ICpkc3QsIGludDMyX3QgZHN0X3N0cmlkZSwKPj4gKyAg ICAgICAgICAgICAgICAgICAgICAgICAgIGludDMyX3QgaGVpZ2h0KQo+PiArewo+PiArICAgIGlu dDMyX3QgY250ID0gaGVpZ2h0ID4+IDI7Cj4+ICsgICAgdWludDhfdCAqZHN0X3RtcCA9IGRzdDsK Pj4gKyAgICBfX20xMjhpIHNyYzAsIHNyYzEsIGRzdDAsIGRzdDE7Cj4+ICsgICAgX19tMTI4aSB0 bXAwLCB0bXAxLCB0bXAyLCB0bXAzOwo+PiArCj4+ICsgICAgZm9yICg7Y250LS07KSB7Cj4+ICsg ICAgICAgIHRtcDAgPSBfX2xzeF92bGRyZXBsX2Qoc3JjLCAwKTsKPj4gKyAgICAgICAgc3JjICs9 IHNyY19zdHJpZGU7Cj4+ICsgICAgICAgIHRtcDEgPSBfX2xzeF92bGRyZXBsX2Qoc3JjLCAwKTsK Pj4gKyAgICAgICAgc3JjICs9IHNyY19zdHJpZGU7Cj4+ICsgICAgICAgIHRtcDIgPSBfX2xzeF92 bGRyZXBsX2Qoc3JjLCAwKTsKPj4gKyAgICAgICAgc3JjICs9IHNyY19zdHJpZGU7Cj4+ICsgICAg ICAgIHRtcDMgPSBfX2xzeF92bGRyZXBsX2Qoc3JjLCAwKTsKPj4gKyAgICAgICAgc3JjICs9IHNy Y19zdHJpZGU7Cj4+ICsgICAgICAgIERVUDJfQVJHMihfX2xzeF92aWx2bF9kLCB0bXAxLCB0bXAw LCB0bXAzLCB0bXAyLCBzcmMwLCBzcmMxKTsKPj4gKyAgICAgICAgdG1wMCA9IF9fbHN4X3ZsZHJl cGxfZChkc3RfdG1wLCAwKTsKPj4gKyAgICAgICAgZHN0X3RtcCArPSBkc3Rfc3RyaWRlOwo+PiAr ICAgICAgICB0bXAxID0gX19sc3hfdmxkcmVwbF9kKGRzdF90bXAsIDApOwo+PiArICAgICAgICBk c3RfdG1wICs9IGRzdF9zdHJpZGU7Cj4+ICsgICAgICAgIHRtcDIgPSBfX2xzeF92bGRyZXBsX2Qo ZHN0X3RtcCwgMCk7Cj4+ICsgICAgICAgIGRzdF90bXAgKz0gZHN0X3N0cmlkZTsKPj4gKyAgICAg ICAgdG1wMyA9IF9fbHN4X3ZsZHJlcGxfZChkc3RfdG1wLCAwKTsKPj4gKyAgICAgICAgZHN0X3Rt cCArPSBkc3Rfc3RyaWRlOwo+PiArICAgICAgICBEVVAyX0FSRzIoX19sc3hfdmlsdmxfZCwgdG1w MSwgdG1wMCwgdG1wMywgdG1wMiwgZHN0MCwgZHN0MSk7Cj4+ICsgICAgICAgIERVUDJfQVJHMihf X2xzeF92YXZncl9idSwgc3JjMCwgZHN0MCwgc3JjMSwgZHN0MSwgZHN0MCwgZHN0MSk7Cj4+ICsg ICAgICAgIF9fbHN4X3ZzdGVsbV9kKGRzdDAsIGRzdCwgMCwgMCk7Cj4+ICsgICAgICAgIGRzdCAr PSBkc3Rfc3RyaWRlOwo+PiArICAgICAgICBfX2xzeF92c3RlbG1fZChkc3QwLCBkc3QsIDAsIDEp Owo+PiArICAgICAgICBkc3QgKz0gZHN0X3N0cmlkZTsKPj4gKyAgICAgICAgX19sc3hfdnN0ZWxt X2QoZHN0MSwgZHN0LCAwLCAwKTsKPj4gKyAgICAgICAgZHN0ICs9IGRzdF9zdHJpZGU7Cj4+ICsg ICAgICAgIF9fbHN4X3ZzdGVsbV9kKGRzdDEsIGRzdCwgMCwgMSk7Cj4+ICsgICAgICAgIGRzdCAr PSBkc3Rfc3RyaWRlOwo+PiArICAgIH0KPj4gK30KPj4gKwo+PiArc3RhdGljIHZvaWQgYXZnX3dp ZHRoMTZfbHN4KGNvbnN0IHVpbnQ4X3QgKnNyYywgaW50MzJfdCBzcmNfc3RyaWRlLAo+PiArICAg ICAgICAgICAgICAgICAgICAgICAgICAgIHVpbnQ4X3QgKmRzdCwgaW50MzJfdCBkc3Rfc3RyaWRl LAo+PiArICAgICAgICAgICAgICAgICAgICAgICAgICAgIGludDMyX3QgaGVpZ2h0KQo+PiArewo+ PiArICAgIGludDMyX3QgY250ID0gaGVpZ2h0ID4+IDI7Cj4+ICsgICAgX19tMTI4aSBzcmMwLCBz cmMxLCBzcmMyLCBzcmMzOwo+PiArICAgIF9fbTEyOGkgZHN0MCwgZHN0MSwgZHN0MiwgZHN0MzsK Pj4gKyAgICBpbnQzMl90IHNyY19zdHJpZGUyID0gc3JjX3N0cmlkZSA8PCAxOwo+PiArICAgIGlu dDMyX3Qgc3JjX3N0cmlkZTMgPSBzcmNfc3RyaWRlICsgc3JjX3N0cmlkZTI7Cj4+ICsgICAgaW50 MzJfdCBzcmNfc3RyaWRlNCA9IHNyY19zdHJpZGUyIDw8IDE7Cj4+ICsgICAgaW50MzJfdCBkc3Rf c3RyaWRlMiA9IGRzdF9zdHJpZGUgPDwgMTsKPj4gKyAgICBpbnQzMl90IGRzdF9zdHJpZGUzID0g ZHN0X3N0cmlkZTIgKyBkc3Rfc3RyaWRlOwo+PiArICAgIGludDMyX3QgZHN0X3N0cmlkZTQgPSBk c3Rfc3RyaWRlMiA8PCAxOwo+PiArICAgIHVpbnQ4X3QqIF9zcmMgPSAodWludDhfdCopc3JjOwo+ PiArCj4+ICsgICAgZm9yICg7Y250LS07KSB7Cj4+ICsgICAgICAgIHNyYzAgPSBfX2xzeF92bGQo X3NyYywgMCk7Cj4+ICsgICAgICAgIERVUDJfQVJHMihfX2xzeF92bGR4LCBfc3JjLCBzcmNfc3Ry aWRlLCBfc3JjLCBzcmNfc3RyaWRlMiwKPj4gc3JjMSwgc3JjMik7Cj4+ICsgICAgICAgIHNyYzMg PSBfX2xzeF92bGR4KF9zcmMsIHNyY19zdHJpZGUzKTsKPj4gKyAgICAgICAgX3NyYyArPSBzcmNf c3RyaWRlNDsKPj4gKwo+PiArICAgICAgICBkc3QwID0gX19sc3hfdmxkKGRzdCwgMCk7Cj4+ICsg ICAgICAgIERVUDJfQVJHMihfX2xzeF92bGR4LCBkc3QsIGRzdF9zdHJpZGUsIGRzdCwgZHN0X3N0 cmlkZTIsCj4+ICsgICAgICAgICAgICAgICAgICBkc3QxLCBkc3QyKTsKPj4gKyAgICAgICAgZHN0 MyA9IF9fbHN4X3ZsZHgoZHN0LCBkc3Rfc3RyaWRlMyk7Cj4+ICsgICAgICAgIERVUDRfQVJHMihf X2xzeF92YXZncl9idSwgc3JjMCwgZHN0MCwgc3JjMSwgZHN0MSwKPj4gKyAgICAgICAgICAgICAg ICAgIHNyYzIsIGRzdDIsIHNyYzMsIGRzdDMsIGRzdDAsIGRzdDEsIGRzdDIsIGRzdDMpOwo+PiAr ICAgICAgICBfX2xzeF92c3QoZHN0MCwgZHN0LCAwKTsKPj4gKyAgICAgICAgX19sc3hfdnN0eChk c3QxLCBkc3QsIGRzdF9zdHJpZGUpOwo+PiArICAgICAgICBfX2xzeF92c3R4KGRzdDIsIGRzdCwg ZHN0X3N0cmlkZTIpOwo+PiArICAgICAgICBfX2xzeF92c3R4KGRzdDMsIGRzdCwgZHN0X3N0cmlk ZTMpOwo+PiArICAgICAgICBkc3QgKz0gZHN0X3N0cmlkZTQ7Cj4+ICsgICAgfQo+PiArfQo+PiAr Cj4+ICtzdGF0aWMgdm9pZCBhdmdfd2lkdGgzMl9sc3goY29uc3QgdWludDhfdCAqc3JjLCBpbnQz Ml90IHNyY19zdHJpZGUsCj4+ICsgICAgICAgICAgICAgICAgICAgICAgICAgICAgdWludDhfdCAq ZHN0LCBpbnQzMl90IGRzdF9zdHJpZGUsCj4+ICsgICAgICAgICAgICAgICAgICAgICAgICAgICAg aW50MzJfdCBoZWlnaHQpCj4+ICt7Cj4+ICsgICAgaW50MzJfdCBjbnQgPSBoZWlnaHQgPj4gMjsK Pj4gKyAgICB1aW50OF90ICpzcmNfdG1wMSA9ICh1aW50OF90KilzcmM7Cj4+ICsgICAgdWludDhf dCAqc3JjX3RtcDIgPSBzcmNfdG1wMSArIDE2Owo+PiArICAgIHVpbnQ4X3QgKmRzdF90bXAxLCAq ZHN0X3RtcDI7Cj4+ICsgICAgX19tMTI4aSBzcmMwLCBzcmMxLCBzcmMyLCBzcmMzLCBzcmM0LCBz cmM1LCBzcmM2LCBzcmM3Owo+PiArICAgIF9fbTEyOGkgZHN0MCwgZHN0MSwgZHN0MiwgZHN0Mywg ZHN0NCwgZHN0NSwgZHN0NiwgZHN0NzsKPj4gKyAgICBpbnQzMl90IHNyY19zdHJpZGUyID0gc3Jj X3N0cmlkZSA8PCAxOwo+PiArICAgIGludDMyX3Qgc3JjX3N0cmlkZTMgPSBzcmNfc3RyaWRlICsg c3JjX3N0cmlkZTI7Cj4+ICsgICAgaW50MzJfdCBzcmNfc3RyaWRlNCA9IHNyY19zdHJpZGUyIDw8 IDE7Cj4+ICsgICAgaW50MzJfdCBkc3Rfc3RyaWRlMiA9IGRzdF9zdHJpZGUgPDwgMTsKPj4gKyAg ICBpbnQzMl90IGRzdF9zdHJpZGUzID0gZHN0X3N0cmlkZTIgKyBkc3Rfc3RyaWRlOwo+PiArICAg IGludDMyX3QgZHN0X3N0cmlkZTQgPSBkc3Rfc3RyaWRlMiA8PCAxOwo+PiArCj4+ICsgICAgZHN0 X3RtcDEgPSBkc3Q7Cj4+ICsgICAgZHN0X3RtcDIgPSBkc3QgKyAxNjsKPj4gKyAgICBmb3IgKDtj bnQtLTspIHsKPj4gKyAgICAgICAgc3JjMCA9IF9fbHN4X3ZsZChzcmNfdG1wMSwgMCk7Cj4+ICsg ICAgICAgIERVUDJfQVJHMihfX2xzeF92bGR4LCBzcmNfdG1wMSwgc3JjX3N0cmlkZSwgc3JjX3Rt cDEsCj4+IHNyY19zdHJpZGUyLAo+PiArICAgICAgICAgICAgICAgICAgc3JjMiwgc3JjNCk7Cj4+ ICsgICAgICAgIHNyYzYgPSBfX2xzeF92bGR4KHNyY190bXAxLCBzcmNfc3RyaWRlMyk7Cj4+ICsg ICAgICAgIHNyY190bXAxICs9IHNyY19zdHJpZGU0Owo+PiArCj4+ICsgICAgICAgIHNyYzEgPSBf X2xzeF92bGQoc3JjX3RtcDIsIDApOwo+PiArICAgICAgICBEVVAyX0FSRzIoX19sc3hfdmxkeCwg c3JjX3RtcDIsIHNyY19zdHJpZGUsIHNyY190bXAyLAo+PiBzcmNfc3RyaWRlMiwKPj4gKyAgICAg ICAgICAgICAgICAgIHNyYzMsIHNyYzUpOwo+PiArICAgICAgICBzcmM3ID0gX19sc3hfdmxkeChz cmNfdG1wMiwgc3JjX3N0cmlkZTMpOwo+PiArICAgICAgICBzcmNfdG1wMiArPSBzcmNfc3RyaWRl NDsKPj4gKwo+PiArICAgICAgICBkc3QwID0gX19sc3hfdmxkKGRzdF90bXAxLCAwKTsKPj4gKyAg ICAgICAgRFVQMl9BUkcyKF9fbHN4X3ZsZHgsIGRzdF90bXAxLCBkc3Rfc3RyaWRlLCBkc3RfdG1w MSwKPj4gZHN0X3N0cmlkZTIsCj4+ICsgICAgICAgICAgICAgICAgICBkc3QyLCBkc3Q0KTsKPj4g KyAgICAgICAgZHN0NiA9IF9fbHN4X3ZsZHgoZHN0X3RtcDEsIGRzdF9zdHJpZGUzKTsKPj4gKyAg ICAgICAgZHN0MSA9IF9fbHN4X3ZsZChkc3RfdG1wMiwgMCk7Cj4+ICsgICAgICAgIERVUDJfQVJH MihfX2xzeF92bGR4LCBkc3RfdG1wMiwgZHN0X3N0cmlkZSwgZHN0X3RtcDIsCj4+IGRzdF9zdHJp ZGUyLAo+PiArICAgICAgICAgICAgICAgICAgZHN0MywgZHN0NSk7Cj4+ICsgICAgICAgIGRzdDcg PSBfX2xzeF92bGR4KGRzdF90bXAyLCBkc3Rfc3RyaWRlMyk7Cj4+ICsKPj4gKyAgICAgICAgRFVQ NF9BUkcyKF9fbHN4X3ZhdmdyX2J1LCBzcmMwLCBkc3QwLCBzcmMxLCBkc3QxLAo+PiArICAgICAg ICAgICAgICAgICAgc3JjMiwgZHN0Miwgc3JjMywgZHN0MywgZHN0MCwgZHN0MSwgZHN0MiwgZHN0 Myk7Cj4+ICsgICAgICAgIERVUDRfQVJHMihfX2xzeF92YXZncl9idSwgc3JjNCwgZHN0NCwgc3Jj NSwgZHN0NSwKPj4gKyAgICAgICAgICAgICAgICAgIHNyYzYsIGRzdDYsIHNyYzcsIGRzdDcsIGRz dDQsIGRzdDUsIGRzdDYsIGRzdDcpOwo+PiArICAgICAgICBfX2xzeF92c3QoZHN0MCwgZHN0X3Rt cDEsIDApOwo+PiArICAgICAgICBfX2xzeF92c3R4KGRzdDIsIGRzdF90bXAxLCBkc3Rfc3RyaWRl KTsKPj4gKyAgICAgICAgX19sc3hfdnN0eChkc3Q0LCBkc3RfdG1wMSwgZHN0X3N0cmlkZTIpOwo+ PiArICAgICAgICBfX2xzeF92c3R4KGRzdDYsIGRzdF90bXAxLCBkc3Rfc3RyaWRlMyk7Cj4+ICsg ICAgICAgIGRzdF90bXAxICs9IGRzdF9zdHJpZGU0Owo+PiArICAgICAgICBfX2xzeF92c3QoZHN0 MSwgZHN0X3RtcDIsIDApOwo+PiArICAgICAgICBfX2xzeF92c3R4KGRzdDMsIGRzdF90bXAyLCBk c3Rfc3RyaWRlKTsKPj4gKyAgICAgICAgX19sc3hfdnN0eChkc3Q1LCBkc3RfdG1wMiwgZHN0X3N0 cmlkZTIpOwo+PiArICAgICAgICBfX2xzeF92c3R4KGRzdDcsIGRzdF90bXAyLCBkc3Rfc3RyaWRl Myk7Cj4+ICsgICAgICAgIGRzdF90bXAyICs9IGRzdF9zdHJpZGU0Owo+PiArICAgIH0KPj4gK30K Pj4gKwo+PiArc3RhdGljIHZvaWQgYXZnX3dpZHRoNjRfbHN4KGNvbnN0IHVpbnQ4X3QgKnNyYywg aW50MzJfdCBzcmNfc3RyaWRlLAo+PiArICAgICAgICAgICAgICAgICAgICAgICAgICAgIHVpbnQ4 X3QgKmRzdCwgaW50MzJfdCBkc3Rfc3RyaWRlLAo+PiArICAgICAgICAgICAgICAgICAgICAgICAg ICAgIGludDMyX3QgaGVpZ2h0KQo+PiArewo+PiArICAgIGludDMyX3QgY250ID0gaGVpZ2h0ID4+ IDI7Cj4+ICsgICAgdWludDhfdCAqZHN0X3RtcCA9IGRzdDsKPj4gKyAgICBfX20xMjhpIHNyYzAs IHNyYzEsIHNyYzIsIHNyYzMsIHNyYzQsIHNyYzUsIHNyYzYsIHNyYzc7Cj4+ICsgICAgX19tMTI4 aSBzcmM4LCBzcmM5LCBzcmMxMCwgc3JjMTEsIHNyYzEyLCBzcmMxMywgc3JjMTQsIHNyYzE1Owo+ PiArICAgIF9fbTEyOGkgZHN0MCwgZHN0MSwgZHN0MiwgZHN0MywgZHN0NCwgZHN0NSwgZHN0Niwg ZHN0NzsKPj4gKyAgICBfX20xMjhpIGRzdDgsIGRzdDksIGRzdDEwLCBkc3QxMSwgZHN0MTIsIGRz dDEzLCBkc3QxNCwgZHN0MTU7Cj4+ICsKPj4gKyAgICBmb3IgKDtjbnQtLTspIHsKPj4gKyAgICAg ICAgRFVQNF9BUkcyKF9fbHN4X3ZsZCwgc3JjLCAwLCBzcmMsIDE2LCBzcmMsIDMyLCBzcmMsIDQ4 LAo+PiArICAgICAgICAgICAgICAgICAgc3JjMCwgc3JjMSwgc3JjMiwgc3JjMyk7Cj4+ICsgICAg ICAgIHNyYyArPSBzcmNfc3RyaWRlOwo+PiArICAgICAgICBEVVA0X0FSRzIoX19sc3hfdmxkLCBz cmMsIDAsIHNyYywgMTYsIHNyYywgMzIsIHNyYywgNDgsCj4+ICsgICAgICAgICAgICAgICAgICBz cmM0LCBzcmM1LCBzcmM2LCBzcmM3KTsKPj4gKyAgICAgICAgc3JjICs9IHNyY19zdHJpZGU7Cj4+ ICsgICAgICAgIERVUDRfQVJHMihfX2xzeF92bGQsIHNyYywgMCwgc3JjLCAxNiwgc3JjLCAzMiwg c3JjLCA0OCwKPj4gKyAgICAgICAgICAgICAgICAgIHNyYzgsIHNyYzksIHNyYzEwLCBzcmMxMSk7 Cj4+ICsgICAgICAgIHNyYyArPSBzcmNfc3RyaWRlOwo+PiArICAgICAgICBEVVA0X0FSRzIoX19s c3hfdmxkLCBzcmMsIDAsIHNyYywgMTYsIHNyYywgMzIsIHNyYywgNDgsCj4+ICsgICAgICAgICAg ICAgICAgICBzcmMxMiwgc3JjMTMsIHNyYzE0LCBzcmMxNSk7Cj4+ICsgICAgICAgIHNyYyArPSBz cmNfc3RyaWRlOwo+PiArICAgICAgICBEVVA0X0FSRzIoX19sc3hfdmxkLCBkc3RfdG1wLCAwLCBk c3RfdG1wLCAxNiwgZHN0X3RtcCwgMzIsCj4+IGRzdF90bXAsIDQ4LAo+PiArICAgICAgICAgICAg ICAgICAgZHN0MCwgZHN0MSwgZHN0MiwgZHN0Myk7Cj4+ICsgICAgICAgIGRzdF90bXAgKz0gZHN0 X3N0cmlkZTsKPj4gKyAgICAgICAgRFVQNF9BUkcyKF9fbHN4X3ZsZCwgZHN0X3RtcCwgMCwgZHN0 X3RtcCwgMTYsIGRzdF90bXAsIDMyLAo+PiBkc3RfdG1wLCA0OCwKPj4gKyAgICAgICAgICAgICAg ICAgIGRzdDQsIGRzdDUsIGRzdDYsIGRzdDcpOwo+PiArICAgICAgICBkc3RfdG1wICs9IGRzdF9z dHJpZGU7Cj4+ICsgICAgICAgIERVUDRfQVJHMihfX2xzeF92bGQsIGRzdF90bXAsIDAsIGRzdF90 bXAsIDE2LCBkc3RfdG1wLCAzMiwKPj4gZHN0X3RtcCwgNDgsCj4+ICsgICAgICAgICAgICAgICAg ICBkc3Q4LCBkc3Q5LCBkc3QxMCwgZHN0MTEpOwo+PiArICAgICAgICBkc3RfdG1wICs9IGRzdF9z dHJpZGU7Cj4+ICsgICAgICAgIERVUDRfQVJHMihfX2xzeF92bGQsIGRzdF90bXAsIDAsIGRzdF90 bXAsIDE2LCBkc3RfdG1wLCAzMiwKPj4gZHN0X3RtcCwgNDgsCj4+ICsgICAgICAgICAgICAgICAg ICBkc3QxMiwgZHN0MTMsIGRzdDE0LCBkc3QxNSk7Cj4+ICsgICAgICAgIGRzdF90bXAgKz0gZHN0 X3N0cmlkZTsKPj4gKyAgICAgICAgRFVQNF9BUkcyKF9fbHN4X3ZhdmdyX2J1LCBzcmMwLCBkc3Qw LCBzcmMxLCBkc3QxLAo+PiArICAgICAgICAgICAgICAgICAgc3JjMiwgZHN0Miwgc3JjMywgZHN0 MywgZHN0MCwgZHN0MSwgZHN0MiwgZHN0Myk7Cj4+ICsgICAgICAgIERVUDRfQVJHMihfX2xzeF92 YXZncl9idSwgc3JjNCwgZHN0NCwgc3JjNSwgZHN0NSwKPj4gKyAgICAgICAgICAgICAgICAgIHNy YzYsIGRzdDYsIHNyYzcsIGRzdDcsIGRzdDQsIGRzdDUsIGRzdDYsIGRzdDcpOwo+PiArICAgICAg ICBEVVA0X0FSRzIoX19sc3hfdmF2Z3JfYnUsIHNyYzgsIGRzdDgsIHNyYzksIGRzdDksIHNyYzEw LAo+PiArICAgICAgICAgICAgICAgICAgZHN0MTAsIHNyYzExLCBkc3QxMSwgZHN0OCwgZHN0OSwg ZHN0MTAsIGRzdDExKTsKPj4gKyAgICAgICAgRFVQNF9BUkcyKF9fbHN4X3ZhdmdyX2J1LCBzcmMx MiwgZHN0MTIsIHNyYzEzLCBkc3QxMywgc3JjMTQsCj4+ICsgICAgICAgICAgICAgICAgICBkc3Qx NCwgc3JjMTUsIGRzdDE1LCBkc3QxMiwgZHN0MTMsIGRzdDE0LCBkc3QxNSk7Cj4+ICsgICAgICAg IF9fbHN4X3ZzdChkc3QwLCBkc3QsIDApOwo+PiArICAgICAgICBfX2xzeF92c3QoZHN0MSwgZHN0 LCAxNik7Cj4+ICsgICAgICAgIF9fbHN4X3ZzdChkc3QyLCBkc3QsIDMyKTsKPj4gKyAgICAgICAg X19sc3hfdnN0KGRzdDMsIGRzdCwgNDgpOwo+PiArICAgICAgICBkc3QgKz0gZHN0X3N0cmlkZTsK Pj4gKyAgICAgICAgX19sc3hfdnN0KGRzdDQsIGRzdCwgMCk7Cj4+ICsgICAgICAgIF9fbHN4X3Zz dChkc3Q1LCBkc3QsIDE2KTsKPj4gKyAgICAgICAgX19sc3hfdnN0KGRzdDYsIGRzdCwgMzIpOwo+ PiArICAgICAgICBfX2xzeF92c3QoZHN0NywgZHN0LCA0OCk7Cj4+ICsgICAgICAgIGRzdCArPSBk c3Rfc3RyaWRlOwo+PiArICAgICAgICBfX2xzeF92c3QoZHN0OCwgZHN0LCAwKTsKPj4gKyAgICAg ICAgX19sc3hfdnN0KGRzdDksIGRzdCwgMTYpOwo+PiArICAgICAgICBfX2xzeF92c3QoZHN0MTAs IGRzdCwgMzIpOwo+PiArICAgICAgICBfX2xzeF92c3QoZHN0MTEsIGRzdCwgNDgpOwo+PiArICAg ICAgICBkc3QgKz0gZHN0X3N0cmlkZTsKPj4gKyAgICAgICAgX19sc3hfdnN0KGRzdDEyLCBkc3Qs IDApOwo+PiArICAgICAgICBfX2xzeF92c3QoZHN0MTMsIGRzdCwgMTYpOwo+PiArICAgICAgICBf X2xzeF92c3QoZHN0MTQsIGRzdCwgMzIpOwo+PiArICAgICAgICBfX2xzeF92c3QoZHN0MTUsIGRz dCwgNDgpOwo+PiArICAgICAgICBkc3QgKz0gZHN0X3N0cmlkZTsKPj4gKyAgICB9Cj4+ICt9Cj4+ ICsKPj4gK3N0YXRpYyBjb25zdCBpbnQ4X3QgdnA5X3N1YnBlbF9maWx0ZXJzX2xzeFszXVsxNV1b OF0gPSB7Cj4+ICsgICAgW0ZJTFRFUl84VEFQX1JFR1VMQVJdID0gewo+PiArICAgICAgICAgezAs IDEsIC01LCAxMjYsIDgsIC0zLCAxLCAwfSwKPj4gKyAgICAgICAgIHstMSwgMywgLTEwLCAxMjIs IDE4LCAtNiwgMiwgMH0sCj4+ICsgICAgICAgICB7LTEsIDQsIC0xMywgMTE4LCAyNywgLTksIDMs IC0xfSwKPj4gKyAgICAgICAgIHstMSwgNCwgLTE2LCAxMTIsIDM3LCAtMTEsIDQsIC0xfSwKPj4g KyAgICAgICAgIHstMSwgNSwgLTE4LCAxMDUsIDQ4LCAtMTQsIDQsIC0xfSwKPj4gKyAgICAgICAg IHstMSwgNSwgLTE5LCA5NywgNTgsIC0xNiwgNSwgLTF9LAo+PiArICAgICAgICAgey0xLCA2LCAt MTksIDg4LCA2OCwgLTE4LCA1LCAtMX0sCj4+ICsgICAgICAgICB7LTEsIDYsIC0xOSwgNzgsIDc4 LCAtMTksIDYsIC0xfSwKPj4gKyAgICAgICAgIHstMSwgNSwgLTE4LCA2OCwgODgsIC0xOSwgNiwg LTF9LAo+PiArICAgICAgICAgey0xLCA1LCAtMTYsIDU4LCA5NywgLTE5LCA1LCAtMX0sCj4+ICsg ICAgICAgICB7LTEsIDQsIC0xNCwgNDgsIDEwNSwgLTE4LCA1LCAtMX0sCj4+ICsgICAgICAgICB7 LTEsIDQsIC0xMSwgMzcsIDExMiwgLTE2LCA0LCAtMX0sCj4+ICsgICAgICAgICB7LTEsIDMsIC05 LCAyNywgMTE4LCAtMTMsIDQsIC0xfSwKPj4gKyAgICAgICAgIHswLCAyLCAtNiwgMTgsIDEyMiwg LTEwLCAzLCAtMX0sCj4+ICsgICAgICAgICB7MCwgMSwgLTMsIDgsIDEyNiwgLTUsIDEsIDB9LAo+ PiArICAgIH0sIFtGSUxURVJfOFRBUF9TSEFSUF0gPSB7Cj4+ICsgICAgICAgIHstMSwgMywgLTcs IDEyNywgOCwgLTMsIDEsIDB9LAo+PiArICAgICAgICB7LTIsIDUsIC0xMywgMTI1LCAxNywgLTYs IDMsIC0xfSwKPj4gKyAgICAgICAgey0zLCA3LCAtMTcsIDEyMSwgMjcsIC0xMCwgNSwgLTJ9LAo+ PiArICAgICAgICB7LTQsIDksIC0yMCwgMTE1LCAzNywgLTEzLCA2LCAtMn0sCj4+ICsgICAgICAg IHstNCwgMTAsIC0yMywgMTA4LCA0OCwgLTE2LCA4LCAtM30sCj4+ICsgICAgICAgIHstNCwgMTAs IC0yNCwgMTAwLCA1OSwgLTE5LCA5LCAtM30sCj4+ICsgICAgICAgIHstNCwgMTEsIC0yNCwgOTAs IDcwLCAtMjEsIDEwLCAtNH0sCj4+ICsgICAgICAgIHstNCwgMTEsIC0yMywgODAsIDgwLCAtMjMs IDExLCAtNH0sCj4+ICsgICAgICAgIHstNCwgMTAsIC0yMSwgNzAsIDkwLCAtMjQsIDExLCAtNH0s Cj4+ICsgICAgICAgIHstMywgOSwgLTE5LCA1OSwgMTAwLCAtMjQsIDEwLCAtNH0sCj4+ICsgICAg ICAgIHstMywgOCwgLTE2LCA0OCwgMTA4LCAtMjMsIDEwLCAtNH0sCj4+ICsgICAgICAgIHstMiwg NiwgLTEzLCAzNywgMTE1LCAtMjAsIDksIC00fSwKPj4gKyAgICAgICAgey0yLCA1LCAtMTAsIDI3 LCAxMjEsIC0xNywgNywgLTN9LAo+PiArICAgICAgICB7LTEsIDMsIC02LCAxNywgMTI1LCAtMTMs IDUsIC0yfSwKPj4gKyAgICAgICAgezAsIDEsIC0zLCA4LCAxMjcsIC03LCAzLCAtMX0sCj4+ICsg ICAgfSwgW0ZJTFRFUl84VEFQX1NNT09USF0gPSB7Cj4+ICsgICAgICAgIHstMywgLTEsIDMyLCA2 NCwgMzgsIDEsIC0zLCAwfSwKPj4gKyAgICAgICAgey0yLCAtMiwgMjksIDYzLCA0MSwgMiwgLTMs IDB9LAo+PiArICAgICAgICB7LTIsIC0yLCAyNiwgNjMsIDQzLCA0LCAtNCwgMH0sCj4+ICsgICAg ICAgIHstMiwgLTMsIDI0LCA2MiwgNDYsIDUsIC00LCAwfSwKPj4gKyAgICAgICAgey0yLCAtMywg MjEsIDYwLCA0OSwgNywgLTQsIDB9LAo+PiArICAgICAgICB7LTEsIC00LCAxOCwgNTksIDUxLCA5 LCAtNCwgMH0sCj4+ICsgICAgICAgIHstMSwgLTQsIDE2LCA1NywgNTMsIDEyLCAtNCwgLTF9LAo+ PiArICAgICAgICB7LTEsIC00LCAxNCwgNTUsIDU1LCAxNCwgLTQsIC0xfSwKPj4gKyAgICAgICAg ey0xLCAtNCwgMTIsIDUzLCA1NywgMTYsIC00LCAtMX0sCj4+ICsgICAgICAgIHswLCAtNCwgOSwg NTEsIDU5LCAxOCwgLTQsIC0xfSwKPj4gKyAgICAgICAgezAsIC00LCA3LCA0OSwgNjAsIDIxLCAt MywgLTJ9LAo+PiArICAgICAgICB7MCwgLTQsIDUsIDQ2LCA2MiwgMjQsIC0zLCAtMn0sCj4+ICsg ICAgICAgIHswLCAtNCwgNCwgNDMsIDYzLCAyNiwgLTIsIC0yfSwKPj4gKyAgICAgICAgezAsIC0z LCAyLCA0MSwgNjMsIDI5LCAtMiwgLTJ9LAo+PiArICAgICAgICB7MCwgLTMsIDEsIDM4LCA2NCwg MzIsIC0xLCAtM30sCj4+ICsgICAgfQo+PiArfTsKPj4gKwo+PiArI2RlZmluZSBWUDlfOFRBUF9M T09OR0FSQ0hfTFNYX0ZVTkMoU0laRSwgdHlwZSwgdHlwZV9pZHgpCj4+ICAgICAgICAgIFwKPj4g K3ZvaWQgZmZfcHV0Xzh0YXBfIyN0eXBlIyNfIyNTSVpFIyNoX2xzeCh1aW50OF90ICpkc3QsIHB0 cmRpZmZfdAo+PiBkc3RzdHJpZGUsICAgICBcCj4+ICsgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgY29uc3QgdWludDhfdCAqc3JjLAo+PiAgICAgICAgICBcCj4+ICsgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcHRyZGlmZl90IHNyY3N0cmlkZSwK Pj4gICAgICAgICAgXAo+PiArICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg IGludCBoLCBpbnQgbXgsIGludCBteSkKPj4gICAgICAgICAgXAo+PiArewo+PiAgICAgICAgICBc Cj4+ICsgICAgY29uc3QgaW50OF90ICpmaWx0ZXIgPSB2cDlfc3VicGVsX2ZpbHRlcnNfbHN4W3R5 cGVfaWR4XVtteC0xXTsKPj4gICAgICAgICAgXAo+PiArCj4+ICAgICAgICAgIFwKPj4gKyAgICBj b21tb25faHpfOHRfIyNTSVpFIyN3X2xzeChzcmMsIHNyY3N0cmlkZSwgZHN0LCBkc3RzdHJpZGUs IGZpbHRlciwKPj4gaCk7ICAgICBcCj4+ICt9Cj4+ICAgICAgICAgIFwKPj4gKwo+PiAgICAgICAg ICBcCj4+ICt2b2lkIGZmX3B1dF84dGFwXyMjdHlwZSMjXyMjU0laRSMjdl9sc3godWludDhfdCAq ZHN0LCBwdHJkaWZmX3QKPj4gZHN0c3RyaWRlLCAgICAgXAo+PiArICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IHVpbnQ4X3QgKnNyYywKPj4gICAgICAgICAgXAo+ PiArICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHB0cmRpZmZfdCBzcmNz dHJpZGUsCj4+ICAgICAgICAgIFwKPj4gKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICBpbnQgaCwgaW50IG14LCBpbnQgbXkpCj4+ICAgICAgICAgIFwKPj4gK3sKPj4gICAg ICAgICAgXAo+PiArICAgIGNvbnN0IGludDhfdCAqZmlsdGVyID0gdnA5X3N1YnBlbF9maWx0ZXJz X2xzeFt0eXBlX2lkeF1bbXktMV07Cj4+ICAgICAgICAgIFwKPj4gKwo+PiAgICAgICAgICBcCj4+ ICsgICAgY29tbW9uX3Z0Xzh0XyMjU0laRSMjd19sc3goc3JjLCBzcmNzdHJpZGUsIGRzdCwgZHN0 c3RyaWRlLCBmaWx0ZXIsCj4+IGgpOyAgICAgXAo+PiArfQo+PiAgICAgICAgICBcCj4+ICsKPj4g ICAgICAgICAgXAo+PiArdm9pZCBmZl9wdXRfOHRhcF8jI3R5cGUjI18jI1NJWkUjI2h2X2xzeCh1 aW50OF90ICpkc3QsIHB0cmRpZmZfdAo+PiBkc3RzdHJpZGUsICAgIFwKPj4gKyAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgdWludDhfdCAqc3JjLAo+PiAgICAg ICAgICBcCj4+ICsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHB0cmRp ZmZfdCBzcmNzdHJpZGUsCj4+ICAgICAgICAgIFwKPj4gKyAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgaW50IGgsIGludCBteCwgaW50IG15KQo+PiAgICAgICAgICBcCj4+ ICt7Cj4+ICAgICAgICAgIFwKPj4gKyAgICBjb25zdCBpbnQ4X3QgKmhmaWx0ZXIgPSB2cDlfc3Vi cGVsX2ZpbHRlcnNfbHN4W3R5cGVfaWR4XVtteC0xXTsKPj4gICAgICAgICAgXAo+PiArICAgIGNv bnN0IGludDhfdCAqdmZpbHRlciA9IHZwOV9zdWJwZWxfZmlsdGVyc19sc3hbdHlwZV9pZHhdW215 LTFdOwo+PiAgICAgICAgICBcCj4+ICsKPj4gICAgICAgICAgXAo+PiArICAgIGNvbW1vbl9odl84 aHRfOHZ0XyMjU0laRSMjd19sc3goc3JjLCBzcmNzdHJpZGUsIGRzdCwgZHN0c3RyaWRlLAo+PiBo ZmlsdGVyLCAgIFwKPj4gKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZmaWx0 ZXIsIGgpOwo+PiAgICAgICAgICBcCj4+ICt9Cj4+ICAgICAgICAgIFwKPj4gKwo+PiAgICAgICAg ICBcCj4+ICt2b2lkIGZmX2F2Z184dGFwXyMjdHlwZSMjXyMjU0laRSMjaF9sc3godWludDhfdCAq ZHN0LCBwdHJkaWZmX3QKPj4gZHN0c3RyaWRlLCAgICAgXAo+PiArICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IHVpbnQ4X3QgKnNyYywKPj4gICAgICAgICAgXAo+ PiArICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHB0cmRpZmZfdCBzcmNz dHJpZGUsCj4+ICAgICAgICAgIFwKPj4gKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICBpbnQgaCwgaW50IG14LCBpbnQgbXkpCj4+ICAgICAgICAgIFwKPj4gK3sKPj4gICAg ICAgICAgXAo+PiArICAgIGNvbnN0IGludDhfdCAqZmlsdGVyID0gdnA5X3N1YnBlbF9maWx0ZXJz X2xzeFt0eXBlX2lkeF1bbXgtMV07Cj4+ICAgICAgICAgIFwKPj4gKwo+PiAgICAgICAgICBcCj4+ ICsgICAgY29tbW9uX2h6Xzh0X2FuZF9hdmVyX2RzdF8jI1NJWkUjI3dfbHN4KHNyYywgc3Jjc3Ry aWRlLCBkc3QsCj4+ICAgICAgICAgIFwKPj4gKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgZHN0c3RyaWRlLCBmaWx0ZXIsIGgpOwo+PiAgICAgICAgICBcCj4+ICt9 Cj4+ICAgICAgICAgIFwKPj4gKwo+PiAgICAgICAgICBcCj4+ICt2b2lkIGZmX2F2Z184dGFwXyMj dHlwZSMjXyMjU0laRSMjdl9sc3godWludDhfdCAqZHN0LCBwdHJkaWZmX3QKPj4gZHN0c3RyaWRl LCAgICAgXAo+PiArICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0 IHVpbnQ4X3QgKnNyYywKPj4gICAgICAgICAgXAo+PiArICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIHB0cmRpZmZfdCBzcmNzdHJpZGUsCj4+ICAgICAgICAgIFwKPj4gKyAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbnQgaCwgaW50IG14LCBpbnQg bXkpCj4+ICAgICAgICAgIFwKPj4gK3sKPj4gICAgICAgICAgXAo+PiArICAgIGNvbnN0IGludDhf dCAqZmlsdGVyID0gdnA5X3N1YnBlbF9maWx0ZXJzX2xzeFt0eXBlX2lkeF1bbXktMV07Cj4+ICAg ICAgICAgIFwKPj4gKwo+PiAgICAgICAgICBcCj4+ICsgICAgY29tbW9uX3Z0Xzh0X2FuZF9hdmVy X2RzdF8jI1NJWkUjI3dfbHN4KHNyYywgc3Jjc3RyaWRlLCBkc3QsCj4+IGRzdHN0cmlkZSwgICAg XAo+PiArICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmaWx0ZXIs IGgpOwo+PiAgICAgICAgICBcCj4+ICt9Cj4+ICAgICAgICAgIFwKPj4gKwo+PiAgICAgICAgICBc Cj4+ICt2b2lkIGZmX2F2Z184dGFwXyMjdHlwZSMjXyMjU0laRSMjaHZfbHN4KHVpbnQ4X3QgKmRz dCwgcHRyZGlmZl90Cj4+IGRzdHN0cmlkZSwgICAgXAo+PiArICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICBjb25zdCB1aW50OF90ICpzcmMsCj4+ICAgICAgICAgIFwKPj4g KyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcHRyZGlmZl90IHNyY3N0 cmlkZSwKPj4gICAgICAgICAgXAo+PiArICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICBpbnQgaCwgaW50IG14LCBpbnQgbXkpCj4+ICAgICAgICAgIFwKPj4gK3sKPj4gICAg ICAgICAgXAo+PiArICAgIGNvbnN0IGludDhfdCAqaGZpbHRlciA9IHZwOV9zdWJwZWxfZmlsdGVy c19sc3hbdHlwZV9pZHhdW214LTFdOwo+PiAgICAgICAgICBcCj4+ICsgICAgY29uc3QgaW50OF90 ICp2ZmlsdGVyID0gdnA5X3N1YnBlbF9maWx0ZXJzX2xzeFt0eXBlX2lkeF1bbXktMV07Cj4+ICAg ICAgICAgIFwKPj4gKwo+PiAgICAgICAgICBcCj4+ICsgICAgY29tbW9uX2h2XzhodF84dnRfYW5k X2F2ZXJfZHN0XyMjU0laRSMjd19sc3goc3JjLCBzcmNzdHJpZGUsIGRzdCwKPj4gICAgICAgICAg XAo+PiArICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRz dHN0cmlkZSwgaGZpbHRlciwKPj4gICAgICAgICAgXAo+PiArICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZmaWx0ZXIsIGgpOwo+PiAgICAgICAgICBcCj4+ ICt9Cj4+ICsKPj4gKyNkZWZpbmUgVlA5X0NPUFlfTE9PTkdBUkNIX0xTWF9GVU5DKFNJWkUpICAg ICAgICAgICAgICAgICAgICAgICAgICBcCj4+ICt2b2lkIGZmX2NvcHkjI1NJWkUjI19sc3godWlu dDhfdCAqZHN0LCBwdHJkaWZmX3QgZHN0c3RyaWRlLCAgICAgICAgXAo+PiArICAgICAgICAgICAg ICAgICAgICAgICAgIGNvbnN0IHVpbnQ4X3QgKnNyYywgcHRyZGlmZl90IHNyY3N0cmlkZSwgIFwK Pj4gKyAgICAgICAgICAgICAgICAgICAgICAgICBpbnQgaCwgaW50IG14LCBpbnQgbXkpICAgICAg ICAgICAgICAgICAgICBcCj4+ICt7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAo+PiArICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKPj4gKyAgICBj b3B5X3dpZHRoIyNTSVpFIyNfbHN4KHNyYywgc3Jjc3RyaWRlLCBkc3QsIGRzdHN0cmlkZSwgaCk7 ICAgICBcCj4+ICt9ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgXAo+PiArdm9pZCBmZl9hdmcjI1NJWkUjI19sc3godWludDhf dCAqZHN0LCBwdHJkaWZmX3QgZHN0c3RyaWRlLCAgICAgICAgIFwKPj4gKyAgICAgICAgICAgICAg ICAgICAgICAgIGNvbnN0IHVpbnQ4X3QgKnNyYywgcHRyZGlmZl90IHNyY3N0cmlkZSwgICBcCj4+ ICsgICAgICAgICAgICAgICAgICAgICAgICBpbnQgaCwgaW50IG14LCBpbnQgbXkpICAgICAgICAg ICAgICAgICAgICAgXAo+PiAreyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKPj4gKyAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCj4+ICsgICAgYXZn X3dpZHRoIyNTSVpFIyNfbHN4KHNyYywgc3Jjc3RyaWRlLCBkc3QsIGRzdHN0cmlkZSwgaCk7ICAg ICAgXAo+PiArfQo+PiArCj4+ICtWUDlfOFRBUF9MT09OR0FSQ0hfTFNYX0ZVTkMoNjQsIHJlZ3Vs YXIsIEZJTFRFUl84VEFQX1JFR1VMQVIpOwo+PiArVlA5XzhUQVBfTE9PTkdBUkNIX0xTWF9GVU5D KDMyLCByZWd1bGFyLCBGSUxURVJfOFRBUF9SRUdVTEFSKTsKPj4gK1ZQOV84VEFQX0xPT05HQVJD SF9MU1hfRlVOQygxNiwgcmVndWxhciwgRklMVEVSXzhUQVBfUkVHVUxBUik7Cj4+ICtWUDlfOFRB UF9MT09OR0FSQ0hfTFNYX0ZVTkMoOCwgcmVndWxhciwgRklMVEVSXzhUQVBfUkVHVUxBUik7Cj4+ ICtWUDlfOFRBUF9MT09OR0FSQ0hfTFNYX0ZVTkMoNCwgcmVndWxhciwgRklMVEVSXzhUQVBfUkVH VUxBUik7Cj4+ICsKPj4gK1ZQOV84VEFQX0xPT05HQVJDSF9MU1hfRlVOQyg2NCwgc2hhcnAsIEZJ TFRFUl84VEFQX1NIQVJQKTsKPj4gK1ZQOV84VEFQX0xPT05HQVJDSF9MU1hfRlVOQygzMiwgc2hh cnAsIEZJTFRFUl84VEFQX1NIQVJQKTsKPj4gK1ZQOV84VEFQX0xPT05HQVJDSF9MU1hfRlVOQygx Niwgc2hhcnAsIEZJTFRFUl84VEFQX1NIQVJQKTsKPj4gK1ZQOV84VEFQX0xPT05HQVJDSF9MU1hf RlVOQyg4LCBzaGFycCwgRklMVEVSXzhUQVBfU0hBUlApOwo+PiArVlA5XzhUQVBfTE9PTkdBUkNI X0xTWF9GVU5DKDQsIHNoYXJwLCBGSUxURVJfOFRBUF9TSEFSUCk7Cj4+ICsKPj4gK1ZQOV84VEFQ X0xPT05HQVJDSF9MU1hfRlVOQyg2NCwgc21vb3RoLCBGSUxURVJfOFRBUF9TTU9PVEgpOwo+PiAr VlA5XzhUQVBfTE9PTkdBUkNIX0xTWF9GVU5DKDMyLCBzbW9vdGgsIEZJTFRFUl84VEFQX1NNT09U SCk7Cj4+ICtWUDlfOFRBUF9MT09OR0FSQ0hfTFNYX0ZVTkMoMTYsIHNtb290aCwgRklMVEVSXzhU QVBfU01PT1RIKTsKPj4gK1ZQOV84VEFQX0xPT05HQVJDSF9MU1hfRlVOQyg4LCBzbW9vdGgsIEZJ TFRFUl84VEFQX1NNT09USCk7Cj4+ICtWUDlfOFRBUF9MT09OR0FSQ0hfTFNYX0ZVTkMoNCwgc21v b3RoLCBGSUxURVJfOFRBUF9TTU9PVEgpOwo+PiArCj4+ICtWUDlfQ09QWV9MT09OR0FSQ0hfTFNY X0ZVTkMoNjQpOwo+PiArVlA5X0NPUFlfTE9PTkdBUkNIX0xTWF9GVU5DKDMyKTsKPj4gK1ZQOV9D T1BZX0xPT05HQVJDSF9MU1hfRlVOQygxNik7Cj4+ICtWUDlfQ09QWV9MT09OR0FSQ0hfTFNYX0ZV TkMoOCk7Cj4+ICsKPj4gKyN1bmRlZiBWUDlfOFRBUF9MT09OR0FSQ0hfTFNYX0ZVTkMKPj4gKyN1 bmRlZiBWUDlfQ09QWV9MT09OR0FSQ0hfTFNYX0ZVTkMKPj4gZGlmZiAtLWdpdCBhL2xpYmF2Y29k ZWMvbG9vbmdhcmNoL3ZwOWRzcF9pbml0X2xvb25nYXJjaC5jCj4+IGIvbGliYXZjb2RlYy9sb29u Z2FyY2gvdnA5ZHNwX2luaXRfbG9vbmdhcmNoLmMKPj4gbmV3IGZpbGUgbW9kZSAxMDA2NDQKPj4g aW5kZXggMDAwMDAwMDAwMC4uYzFlMDFiNDU1OAo+PiAtLS0gL2Rldi9udWxsCj4+ICsrKyBiL2xp YmF2Y29kZWMvbG9vbmdhcmNoL3ZwOWRzcF9pbml0X2xvb25nYXJjaC5jCj4+IEBAIC0wLDAgKzEs OTcgQEAKPj4gKy8qCj4+ICsgKiBDb3B5cmlnaHQgKGMpIDIwMjEgTG9vbmdzb24gVGVjaG5vbG9n eSBDb3Jwb3JhdGlvbiBMaW1pdGVkCj4+ICsgKiBDb250cmlidXRlZCBieSBIYW8gQ2hlbiA8Y2hl bmhhb0Bsb29uZ3Nvbi5jbj4KPj4gKyAqCj4+ICsgKiBUaGlzIGZpbGUgaXMgcGFydCBvZiBGRm1w ZWcuCj4+ICsgKgo+PiArICogRkZtcGVnIGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0 cmlidXRlIGl0IGFuZC9vcgo+PiArICogbW9kaWZ5IGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUg R05VIExlc3NlciBHZW5lcmFsIFB1YmxpYwo+PiArICogTGljZW5zZSBhcyBwdWJsaXNoZWQgYnkg dGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyCj4+ICsgKiB2ZXJzaW9uIDIuMSBv ZiB0aGUgTGljZW5zZSwgb3IgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4KPj4g KyAqCj4+ICsgKiBGRm1wZWcgaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxs IGJlIHVzZWZ1bCwKPj4gKyAqIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVu IHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mCj4+ICsgKiBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVT UyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlIEdOVQo+PiArICogTGVzc2VyIEdl bmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KPj4gKyAqCj4+ICsgKiBZb3Ug c2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgTGVzc2VyIEdlbmVyYWwgUHVi bGljCj4+ICsgKiBMaWNlbnNlIGFsb25nIHdpdGggRkZtcGVnOyBpZiBub3QsIHdyaXRlIHRvIHRo ZSBGcmVlIFNvZnR3YXJlCj4+ICsgKiBGb3VuZGF0aW9uLCBJbmMuLCA1MSBGcmFua2xpbiBTdHJl ZXQsIEZpZnRoIEZsb29yLCBCb3N0b24sIE1BCj4+IDAyMTEwLTEzMDEgVVNBCj4+ICsgKi8KPj4g Kwo+PiArI2luY2x1ZGUgImxpYmF2dXRpbC9sb29uZ2FyY2gvY3B1LmgiCj4+ICsjaW5jbHVkZSAi bGliYXZ1dGlsL2F0dHJpYnV0ZXMuaCIKPj4gKyNpbmNsdWRlICJsaWJhdmNvZGVjL3ZwOWRzcC5o Igo+PiArI2luY2x1ZGUgInZwOWRzcF9sb29uZ2FyY2guaCIKPj4gKwo+PiArI2RlZmluZSBpbml0 X3N1YnBlbDEoaWR4MSwgaWR4MiwgaWR4aCwgaWR4diwgc3osIGRpciwgdHlwZSkgIFwKPj4gKyAg ICBkc3AtPm1jW2lkeDFdW0ZJTFRFUl84VEFQX1NNT09USCBdW2lkeDJdW2lkeGhdW2lkeHZdID0g ICBcCj4+ICsgICAgICAgIGZmXyMjdHlwZSMjXzh0YXBfc21vb3RoXyMjc3ojI2RpciMjX2xzeDsg ICAgICAgICAgICAgXAo+PiArICAgIGRzcC0+bWNbaWR4MV1bRklMVEVSXzhUQVBfUkVHVUxBUl1b aWR4Ml1baWR4aF1baWR4dl0gPSAgIFwKPj4gKyAgICAgICAgZmZfIyN0eXBlIyNfOHRhcF9yZWd1 bGFyXyMjc3ojI2RpciMjX2xzeDsgICAgICAgICAgICBcCj4+ICsgICAgZHNwLT5tY1tpZHgxXVtG SUxURVJfOFRBUF9TSEFSUCAgXVtpZHgyXVtpZHhoXVtpZHh2XSA9ICAgXAo+PiArICAgICAgICBm Zl8jI3R5cGUjI184dGFwX3NoYXJwXyMjc3ojI2RpciMjX2xzeDsKPj4gKwo+PiArI2RlZmluZSBp bml0X3N1YnBlbDIoaWR4LCBpZHhoLCBpZHh2LCBkaXIsIHR5cGUpICAgICAgXAo+PiArICAgIGlu aXRfc3VicGVsMSgwLCBpZHgsIGlkeGgsIGlkeHYsIDY0LCBkaXIsIHR5cGUpOyAgXAo+PiArICAg IGluaXRfc3VicGVsMSgxLCBpZHgsIGlkeGgsIGlkeHYsIDMyLCBkaXIsIHR5cGUpOyAgXAo+PiAr ICAgIGluaXRfc3VicGVsMSgyLCBpZHgsIGlkeGgsIGlkeHYsIDE2LCBkaXIsIHR5cGUpOyAgXAo+ PiArICAgIGluaXRfc3VicGVsMSgzLCBpZHgsIGlkeGgsIGlkeHYsICA4LCBkaXIsIHR5cGUpOyAg XAo+PiArICAgIGluaXRfc3VicGVsMSg0LCBpZHgsIGlkeGgsIGlkeHYsICA0LCBkaXIsIHR5cGUp Owo+PiArCj4+ICsjZGVmaW5lIGluaXRfc3VicGVsMyhpZHgsIHR5cGUpICAgICAgICAgXAo+PiAr ICAgIGluaXRfc3VicGVsMihpZHgsIDEsIDAsIGgsIHR5cGUpOyAgIFwKPj4gKyAgICBpbml0X3N1 YnBlbDIoaWR4LCAwLCAxLCB2LCB0eXBlKTsgICBcCj4+ICsgICAgaW5pdF9zdWJwZWwyKGlkeCwg MSwgMSwgaHYsIHR5cGUpOwo+PiArCj4+ICsjZGVmaW5lIGluaXRfZnBlbChpZHgxLCBpZHgyLCBz eiwgdHlwZSkKPj4gICAgICBcCj4+ICsgICAgZHNwLT5tY1tpZHgxXVtGSUxURVJfOFRBUF9TTU9P VEggXVtpZHgyXVswXVswXSA9Cj4+IGZmXyMjdHlwZSMjc3ojI19sc3g7ICBcCj4+ICsgICAgZHNw LT5tY1tpZHgxXVtGSUxURVJfOFRBUF9SRUdVTEFSXVtpZHgyXVswXVswXSA9Cj4+IGZmXyMjdHlw ZSMjc3ojI19sc3g7ICBcCj4+ICsgICAgZHNwLT5tY1tpZHgxXVtGSUxURVJfOFRBUF9TSEFSUCAg XVtpZHgyXVswXVswXSA9Cj4+IGZmXyMjdHlwZSMjc3ojI19sc3g7ICBcCj4+ICsgICAgZHNwLT5t Y1tpZHgxXVtGSUxURVJfQklMSU5FQVIgICAgXVtpZHgyXVswXVswXSA9Cj4+IGZmXyMjdHlwZSMj c3ojI19sc3g7Cj4+ICsKPj4gKyNkZWZpbmUgaW5pdF9jb3B5KGlkeCwgc3opICAgICAgICAgICAg ICAgICAgICBcCj4+ICsgICAgaW5pdF9mcGVsKGlkeCwgMCwgc3osIGNvcHkpOyAgICAgICAgICAg ICAgXAo+PiArICAgIGluaXRfZnBlbChpZHgsIDEsIHN6LCBhdmcpOwo+PiArCj4+ICsjZGVmaW5l IGluaXRfaW50cmFfcHJlZDFfbHN4KHR4LCBzeikgICAgICAgICAgICAgICAgICAgICAgICAgICAg XAo+PiArICAgIGRzcC0+aW50cmFfcHJlZFt0eF1bVkVSVF9QUkVEXSAgICA9IGZmX3ZlcnRfIyNz eiMjX2xzeDsgICAgIFwKPj4gKyAgICBkc3AtPmludHJhX3ByZWRbdHhdW0hPUl9QUkVEXSAgICAg PSBmZl9ob3JfIyNzeiMjX2xzeDsgICAgICBcCj4+ICsgICAgZHNwLT5pbnRyYV9wcmVkW3R4XVtE Q19QUkVEXSAgICAgID0gZmZfZGNfIyNzeiMjX2xzeDsgICAgICAgXAo+PiArICAgIGRzcC0+aW50 cmFfcHJlZFt0eF1bTEVGVF9EQ19QUkVEXSA9IGZmX2RjX2xlZnRfIyNzeiMjX2xzeDsgIFwKPj4g KyAgICBkc3AtPmludHJhX3ByZWRbdHhdW1RPUF9EQ19QUkVEXSAgPSBmZl9kY190b3BfIyNzeiMj X2xzeDsgICBcCj4+ICsgICAgZHNwLT5pbnRyYV9wcmVkW3R4XVtEQ18xMjhfUFJFRF0gID0gZmZf ZGNfMTI4XyMjc3ojI19sc3g7ICAgXAo+PiArICAgIGRzcC0+aW50cmFfcHJlZFt0eF1bRENfMTI3 X1BSRURdICA9IGZmX2RjXzEyN18jI3N6IyNfbHN4OyAgIFwKPj4gKyAgICBkc3AtPmludHJhX3By ZWRbdHhdW0RDXzEyOV9QUkVEXSAgPSBmZl9kY18xMjlfIyNzeiMjX2xzeDsgICBcCj4+ICsgICAg ZHNwLT5pbnRyYV9wcmVkW3R4XVtUTV9WUDhfUFJFRF0gID0gZmZfdG1fIyNzeiMjX2xzeDsgICAg ICAgXAo+PiArCj4+ICsjZGVmaW5lIGluaXRfaW50cmFfcHJlZDJfbHN4KHR4LCBzeikgICAgICAg ICAgICAgICAgICAgICAgICAgICAgXAo+PiArICAgIGRzcC0+aW50cmFfcHJlZFt0eF1bRENfUFJF RF0gICAgICA9IGZmX2RjXyMjc3ojI19sc3g7ICAgICAgIFwKPj4gKyAgICBkc3AtPmludHJhX3By ZWRbdHhdW0xFRlRfRENfUFJFRF0gPSBmZl9kY19sZWZ0XyMjc3ojI19sc3g7ICBcCj4+ICsgICAg ZHNwLT5pbnRyYV9wcmVkW3R4XVtUT1BfRENfUFJFRF0gID0gZmZfZGNfdG9wXyMjc3ojI19sc3g7 ICAgXAo+PiArICAgIGRzcC0+aW50cmFfcHJlZFt0eF1bVE1fVlA4X1BSRURdICA9IGZmX3RtXyMj c3ojI19sc3g7ICAgICAgIFwKPj4gKwo+PiArYXZfY29sZCB2b2lkIGZmX3ZwOWRzcF9pbml0X2xv b25nYXJjaChWUDlEU1BDb250ZXh0ICpkc3AsIGludCBicHApCj4+ICt7Cj4+ICsgICAgaW50IGNw dV9mbGFncyA9IGF2X2dldF9jcHVfZmxhZ3MoKTsKPj4gKyAgICBpZiAoaGF2ZV9sc3goY3B1X2Zs YWdzKSkKPj4gKyAgICAgICAgaWYgKGJwcCA9PSA4KSB7Cj4+ICsgICAgICAgICAgICBpbml0X3N1 YnBlbDMoMCwgcHV0KTsKPj4gKyAgICAgICAgICAgIGluaXRfc3VicGVsMygxLCBhdmcpOwo+PiAr ICAgICAgICAgICAgaW5pdF9jb3B5KDAsIDY0KTsKPj4gKyAgICAgICAgICAgIGluaXRfY29weSgx LCAzMik7Cj4+ICsgICAgICAgICAgICBpbml0X2NvcHkoMiwgMTYpOwo+PiArICAgICAgICAgICAg aW5pdF9jb3B5KDMsIDgpOwo+PiArICAgICAgICAgICAgaW5pdF9pbnRyYV9wcmVkMV9sc3goVFhf MTZYMTYsIDE2eDE2KTsKPj4gKyAgICAgICAgICAgIGluaXRfaW50cmFfcHJlZDFfbHN4KFRYXzMy WDMyLCAzMngzMik7Cj4+ICsgICAgICAgICAgICBpbml0X2ludHJhX3ByZWQyX2xzeChUWF80WDQs IDR4NCk7Cj4+ICsgICAgICAgICAgICBpbml0X2ludHJhX3ByZWQyX2xzeChUWF84WDgsIDh4OCk7 Cj4+ICsgICAgICAgIH0KPj4gK30KPj4gKyN1bmRlZiBpbml0X3N1YnBlbDEKPj4gKyN1bmRlZiBp bml0X3N1YnBlbDIKPj4gKyN1bmRlZiBpbml0X3N1YnBlbDMKPj4gKyN1bmRlZiBpbml0X2NvcHkK Pj4gKyN1bmRlZiBpbml0X2ZwZWwKPj4gKyN1bmRlZiBpbml0X2ludHJhX3ByZWQxX2xzeAo+PiAr I3VuZGVmIGluaXRfaW50cmFfcHJlZDJfbHN4Cj4+IGRpZmYgLS1naXQgYS9saWJhdmNvZGVjL2xv b25nYXJjaC92cDlkc3BfbG9vbmdhcmNoLmgKPj4gYi9saWJhdmNvZGVjL2xvb25nYXJjaC92cDlk c3BfbG9vbmdhcmNoLmgKPj4gbmV3IGZpbGUgbW9kZSAxMDA2NDQKPj4gaW5kZXggMDAwMDAwMDAw MC4uYjQ2OTMyNmZkYwo+PiAtLS0gL2Rldi9udWxsCj4+ICsrKyBiL2xpYmF2Y29kZWMvbG9vbmdh cmNoL3ZwOWRzcF9sb29uZ2FyY2guaAo+PiBAQCAtMCwwICsxLDE0NCBAQAo+PiArLyoKPj4gKyAq IENvcHlyaWdodCAoYykgMjAyMSBMb29uZ3NvbiBUZWNobm9sb2d5IENvcnBvcmF0aW9uIExpbWl0 ZWQKPj4gKyAqIENvbnRyaWJ1dGVkIGJ5IEhhbyBDaGVuIDxjaGVuaGFvQGxvb25nc29uLmNuPgo+ PiArICoKPj4gKyAqIFRoaXMgZmlsZSBpcyBwYXJ0IG9mIEZGbXBlZy4KPj4gKyAqCj4+ICsgKiBG Rm1wZWcgaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yCj4+ ICsgKiBtb2RpZnkgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgTGVzc2VyIEdlbmVyYWwg UHVibGljCj4+ICsgKiBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieSB0aGUgRnJlZSBTb2Z0d2FyZSBG b3VuZGF0aW9uOyBlaXRoZXIKPj4gKyAqIHZlcnNpb24gMi4xIG9mIHRoZSBMaWNlbnNlLCBvciAo YXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgo+PiArICoKPj4gKyAqIEZGbXBlZyBp cyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLAo+PiArICog YnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFu dHkgb2YKPj4gKyAqIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIg UFVSUE9TRS4gIFNlZSB0aGUgR05VCj4+ICsgKiBMZXNzZXIgR2VuZXJhbCBQdWJsaWMgTGljZW5z ZSBmb3IgbW9yZSBkZXRhaWxzLgo+PiArICoKPj4gKyAqIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZl ZCBhIGNvcHkgb2YgdGhlIEdOVSBMZXNzZXIgR2VuZXJhbCBQdWJsaWMKPj4gKyAqIExpY2Vuc2Ug YWxvbmcgd2l0aCBGRm1wZWc7IGlmIG5vdCwgd3JpdGUgdG8gdGhlIEZyZWUgU29mdHdhcmUKPj4g KyAqIEZvdW5kYXRpb24sIEluYy4sIDUxIEZyYW5rbGluIFN0cmVldCwgRmlmdGggRmxvb3IsIEJv c3RvbiwgTUEKPj4gMDIxMTAtMTMwMSBVU0EKPj4gKyAqLwo+PiArCj4+ICsjaWZuZGVmIEFWQ09E RUNfTE9PTkdBUkNIX1ZQOURTUF9MT09OR0FSQ0hfSAo+PiArI2RlZmluZSBBVkNPREVDX0xPT05H QVJDSF9WUDlEU1BfTE9PTkdBUkNIX0gKPj4gKwo+PiArI2RlZmluZSBWUDlfOFRBUF9MT09OR0FS Q0hfTFNYX0ZVTkMoU0laRSwgdHlwZSwgdHlwZV9pZHgpCj4+ICAgICAgICBcCj4+ICt2b2lkIGZm X3B1dF84dGFwXyMjdHlwZSMjXyMjU0laRSMjaF9sc3godWludDhfdCAqZHN0LCBwdHJkaWZmX3QK Pj4gZHN0c3RyaWRlLCAgIFwKPj4gKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICBjb25zdCB1aW50OF90ICpzcmMsCj4+ICAgICAgICBcCj4+ICsgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgcHRyZGlmZl90IHNyY3N0cmlkZSwKPj4gICAgICAgIFwK Pj4gKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbnQgaCwgaW50IG14 LCBpbnQgbXkpOwo+PiAgICAgICAgXAo+PiArCj4+ICAgICAgICBcCj4+ICt2b2lkIGZmX3B1dF84 dGFwXyMjdHlwZSMjXyMjU0laRSMjdl9sc3godWludDhfdCAqZHN0LCBwdHJkaWZmX3QKPj4gZHN0 c3RyaWRlLCAgIFwKPj4gKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBj b25zdCB1aW50OF90ICpzcmMsCj4+ICAgICAgICBcCj4+ICsgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgcHRyZGlmZl90IHNyY3N0cmlkZSwKPj4gICAgICAgIFwKPj4gKyAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbnQgaCwgaW50IG14LCBpbnQg bXkpOwo+PiAgICAgICAgXAo+PiArCj4+ICAgICAgICBcCj4+ICt2b2lkIGZmX3B1dF84dGFwXyMj dHlwZSMjXyMjU0laRSMjaHZfbHN4KHVpbnQ4X3QgKmRzdCwgcHRyZGlmZl90Cj4+IGRzdHN0cmlk ZSwgIFwKPj4gKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3Qg dWludDhfdCAqc3JjLAo+PiAgICAgICAgXAo+PiArICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICBwdHJkaWZmX3Qgc3Jjc3RyaWRlLAo+PiAgICAgICAgXAo+PiArICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbnQgaCwgaW50IG14LCBpbnQgbXkp Owo+PiAgICAgICAgXAo+PiArCj4+ICAgICAgICBcCj4+ICt2b2lkIGZmX2F2Z184dGFwXyMjdHlw ZSMjXyMjU0laRSMjaF9sc3godWludDhfdCAqZHN0LCBwdHJkaWZmX3QKPj4gZHN0c3RyaWRlLCAg IFwKPj4gKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCB1aW50 OF90ICpzcmMsCj4+ICAgICAgICBcCj4+ICsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgcHRyZGlmZl90IHNyY3N0cmlkZSwKPj4gICAgICAgIFwKPj4gKyAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbnQgaCwgaW50IG14LCBpbnQgbXkpOwo+PiAg ICAgICAgXAo+PiArCj4+ICAgICAgICBcCj4+ICt2b2lkIGZmX2F2Z184dGFwXyMjdHlwZSMjXyMj U0laRSMjdl9sc3godWludDhfdCAqZHN0LCBwdHJkaWZmX3QKPj4gZHN0c3RyaWRlLCAgIFwKPj4g KyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCB1aW50OF90ICpz cmMsCj4+ICAgICAgICBcCj4+ICsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgcHRyZGlmZl90IHNyY3N0cmlkZSwKPj4gICAgICAgIFwKPj4gKyAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICBpbnQgaCwgaW50IG14LCBpbnQgbXkpOwo+PiAgICAgICAg XAo+PiArCj4+ICAgICAgICBcCj4+ICt2b2lkIGZmX2F2Z184dGFwXyMjdHlwZSMjXyMjU0laRSMj aHZfbHN4KHVpbnQ4X3QgKmRzdCwgcHRyZGlmZl90Cj4+IGRzdHN0cmlkZSwgIFwKPj4gKyAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgdWludDhfdCAqc3JjLAo+ PiAgICAgICAgXAo+PiArICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBw dHJkaWZmX3Qgc3Jjc3RyaWRlLAo+PiAgICAgICAgXAo+PiArICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICBpbnQgaCwgaW50IG14LCBpbnQgbXkpOwo+PiArCj4+ICsjZGVm aW5lIFZQOV9DT1BZX0xPT05HQVJDSF9MU1hfRlVOQyhTSVpFKSAgICAgICAgICAgICAgICAgICAg ICAgICAgXAo+PiArdm9pZCBmZl9jb3B5IyNTSVpFIyNfbHN4KHVpbnQ4X3QgKmRzdCwgcHRyZGlm Zl90IGRzdHN0cmlkZSwgICAgICAgIFwKPj4gKyAgICAgICAgICAgICAgICAgICAgICAgICBjb25z dCB1aW50OF90ICpzcmMsIHB0cmRpZmZfdCBzcmNzdHJpZGUsICBcCj4+ICsgICAgICAgICAgICAg ICAgICAgICAgICAgaW50IGgsIGludCBteCwgaW50IG15KTsgICAgICAgICAgICAgICAgICAgXAo+ PiArICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIFwKPj4gK3ZvaWQgZmZfYXZnIyNTSVpFIyNfbHN4KHVpbnQ4X3QgKmRzdCwg cHRyZGlmZl90IGRzdHN0cmlkZSwgICAgICAgICBcCj4+ICsgICAgICAgICAgICAgICAgICAgICAg ICBjb25zdCB1aW50OF90ICpzcmMsIHB0cmRpZmZfdCBzcmNzdHJpZGUsICAgXAo+PiArICAgICAg ICAgICAgICAgICAgICAgICAgaW50IGgsIGludCBteCwgaW50IG15KTsKPj4gKwo+PiArVlA5XzhU QVBfTE9PTkdBUkNIX0xTWF9GVU5DKDY0LCByZWd1bGFyLCBGSUxURVJfOFRBUF9SRUdVTEFSKTsK Pj4gK1ZQOV84VEFQX0xPT05HQVJDSF9MU1hfRlVOQygzMiwgcmVndWxhciwgRklMVEVSXzhUQVBf UkVHVUxBUik7Cj4+ICtWUDlfOFRBUF9MT09OR0FSQ0hfTFNYX0ZVTkMoMTYsIHJlZ3VsYXIsIEZJ TFRFUl84VEFQX1JFR1VMQVIpOwo+PiArVlA5XzhUQVBfTE9PTkdBUkNIX0xTWF9GVU5DKDgsIHJl Z3VsYXIsIEZJTFRFUl84VEFQX1JFR1VMQVIpOwo+PiArVlA5XzhUQVBfTE9PTkdBUkNIX0xTWF9G VU5DKDQsIHJlZ3VsYXIsIEZJTFRFUl84VEFQX1JFR1VMQVIpOwo+PiArCj4+ICtWUDlfOFRBUF9M T09OR0FSQ0hfTFNYX0ZVTkMoNjQsIHNoYXJwLCBGSUxURVJfOFRBUF9TSEFSUCk7Cj4+ICtWUDlf OFRBUF9MT09OR0FSQ0hfTFNYX0ZVTkMoMzIsIHNoYXJwLCBGSUxURVJfOFRBUF9TSEFSUCk7Cj4+ ICtWUDlfOFRBUF9MT09OR0FSQ0hfTFNYX0ZVTkMoMTYsIHNoYXJwLCBGSUxURVJfOFRBUF9TSEFS UCk7Cj4+ICtWUDlfOFRBUF9MT09OR0FSQ0hfTFNYX0ZVTkMoOCwgc2hhcnAsIEZJTFRFUl84VEFQ X1NIQVJQKTsKPj4gK1ZQOV84VEFQX0xPT05HQVJDSF9MU1hfRlVOQyg0LCBzaGFycCwgRklMVEVS XzhUQVBfU0hBUlApOwo+PiArCj4+ICtWUDlfOFRBUF9MT09OR0FSQ0hfTFNYX0ZVTkMoNjQsIHNt b290aCwgRklMVEVSXzhUQVBfU01PT1RIKTsKPj4gK1ZQOV84VEFQX0xPT05HQVJDSF9MU1hfRlVO QygzMiwgc21vb3RoLCBGSUxURVJfOFRBUF9TTU9PVEgpOwo+PiArVlA5XzhUQVBfTE9PTkdBUkNI X0xTWF9GVU5DKDE2LCBzbW9vdGgsIEZJTFRFUl84VEFQX1NNT09USCk7Cj4+ICtWUDlfOFRBUF9M T09OR0FSQ0hfTFNYX0ZVTkMoOCwgc21vb3RoLCBGSUxURVJfOFRBUF9TTU9PVEgpOwo+PiArVlA5 XzhUQVBfTE9PTkdBUkNIX0xTWF9GVU5DKDQsIHNtb290aCwgRklMVEVSXzhUQVBfU01PT1RIKTsK Pj4gKwo+PiArVlA5X0NPUFlfTE9PTkdBUkNIX0xTWF9GVU5DKDY0KTsKPj4gK1ZQOV9DT1BZX0xP T05HQVJDSF9MU1hfRlVOQygzMik7Cj4+ICtWUDlfQ09QWV9MT09OR0FSQ0hfTFNYX0ZVTkMoMTYp Owo+PiArVlA5X0NPUFlfTE9PTkdBUkNIX0xTWF9GVU5DKDgpOwo+PiArCj4+ICsjdW5kZWYgVlA5 XzhUQVBfTE9PTkdBUkNIX0xTWF9GVU5DCj4+ICsjdW5kZWYgVlA5X0NPUFlfTE9PTkdBUkNIX0xT WF9GVU5DCj4+ICsKPj4gK3ZvaWQgZmZfdmVydF8xNngxNl9sc3godWludDhfdCAqZHN0LCBwdHJk aWZmX3Qgc3RyaWRlLCBjb25zdCB1aW50OF90Cj4+ICpsZWZ0LAo+PiArICAgICAgICAgICAgICAg ICAgICAgICBjb25zdCB1aW50OF90ICp0b3ApOwo+PiArdm9pZCBmZl92ZXJ0XzMyeDMyX2xzeCh1 aW50OF90ICpkc3QsIHB0cmRpZmZfdCBzdHJpZGUsIGNvbnN0IHVpbnQ4X3QKPj4gKmxlZnQsCj4+ ICsgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IHVpbnQ4X3QgKnRvcCk7Cj4+ICt2b2lkIGZm X2hvcl8xNngxNl9sc3godWludDhfdCAqZHN0LCBwdHJkaWZmX3Qgc3RyaWRlLCBjb25zdCB1aW50 OF90Cj4+ICpsZWZ0LAo+PiArICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IHVpbnQ4X3QgKnRv cCk7Cj4+ICt2b2lkIGZmX2hvcl8zMngzMl9sc3godWludDhfdCAqZHN0LCBwdHJkaWZmX3Qgc3Ry aWRlLCBjb25zdCB1aW50OF90Cj4+ICpsZWZ0LAo+PiArICAgICAgICAgICAgICAgICAgICAgIGNv bnN0IHVpbnQ4X3QgKnRvcCk7Cj4+ICt2b2lkIGZmX2RjXzR4NF9sc3godWludDhfdCAqZHN0LCBw dHJkaWZmX3Qgc3RyaWRlLCBjb25zdCB1aW50OF90ICpsZWZ0LAo+PiArICAgICAgICAgICAgICAg ICAgIGNvbnN0IHVpbnQ4X3QgKnRvcCk7Cj4+ICt2b2lkIGZmX2RjXzh4OF9sc3godWludDhfdCAq ZHN0LCBwdHJkaWZmX3Qgc3RyaWRlLCBjb25zdCB1aW50OF90ICpsZWZ0LAo+PiArICAgICAgICAg ICAgICAgICAgIGNvbnN0IHVpbnQ4X3QgKnRvcCk7Cj4+ICt2b2lkIGZmX2RjXzE2eDE2X2xzeCh1 aW50OF90ICpkc3QsIHB0cmRpZmZfdCBzdHJpZGUsIGNvbnN0IHVpbnQ4X3QKPj4gKmxlZnQsCj4+ ICsgICAgICAgICAgICAgICAgICAgICBjb25zdCB1aW50OF90ICp0b3ApOwo+PiArdm9pZCBmZl9k Y18zMngzMl9sc3godWludDhfdCAqZHN0LCBwdHJkaWZmX3Qgc3RyaWRlLCBjb25zdCB1aW50OF90 Cj4+ICpsZWZ0LAo+PiArICAgICAgICAgICAgICAgICAgICAgY29uc3QgdWludDhfdCAqdG9wKTsK Pj4gK3ZvaWQgZmZfZGNfbGVmdF80eDRfbHN4KHVpbnQ4X3QgKmRzdCwgcHRyZGlmZl90IHN0cmlk ZSwgY29uc3QgdWludDhfdAo+PiAqbGVmdCwKPj4gKyAgICAgICAgICAgICAgICAgICAgICAgIGNv bnN0IHVpbnQ4X3QgKnRvcCk7Cj4+ICt2b2lkIGZmX2RjX2xlZnRfOHg4X2xzeCh1aW50OF90ICpk c3QsIHB0cmRpZmZfdCBzdHJpZGUsIGNvbnN0IHVpbnQ4X3QKPj4gKmxlZnQsCj4+ICsgICAgICAg ICAgICAgICAgICAgICAgICBjb25zdCB1aW50OF90ICp0b3ApOwo+PiArdm9pZCBmZl9kY19sZWZ0 XzE2eDE2X2xzeCh1aW50OF90ICpkc3QsIHB0cmRpZmZfdCBzdHJpZGUsCj4+ICsgICAgICAgICAg ICAgICAgICAgICAgICAgIGNvbnN0IHVpbnQ4X3QgKmxlZnQsIGNvbnN0IHVpbnQ4X3QgKnRvcCk7 Cj4+ICt2b2lkIGZmX2RjX2xlZnRfMzJ4MzJfbHN4KHVpbnQ4X3QgKmRzdCwgcHRyZGlmZl90IHN0 cmlkZSwKPj4gKyAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgdWludDhfdCAqbGVmdCwg Y29uc3QgdWludDhfdCAqdG9wKTsKPj4gK3ZvaWQgZmZfZGNfdG9wXzR4NF9sc3godWludDhfdCAq ZHN0LCBwdHJkaWZmX3Qgc3RyaWRlLCBjb25zdCB1aW50OF90Cj4+ICpsZWZ0LAo+PiArICAgICAg ICAgICAgICAgICAgICAgICBjb25zdCB1aW50OF90ICp0b3ApOwo+PiArdm9pZCBmZl9kY190b3Bf OHg4X2xzeCh1aW50OF90ICpkc3QsIHB0cmRpZmZfdCBzdHJpZGUsIGNvbnN0IHVpbnQ4X3QKPj4g KmxlZnQsCj4+ICsgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IHVpbnQ4X3QgKnRvcCk7Cj4+ ICt2b2lkIGZmX2RjX3RvcF8xNngxNl9sc3godWludDhfdCAqZHN0LCBwdHJkaWZmX3Qgc3RyaWRl LAo+PiArICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IHVpbnQ4X3QgKmxlZnQsIGNvbnN0 IHVpbnQ4X3QgKnRvcCk7Cj4+ICt2b2lkIGZmX2RjX3RvcF8zMngzMl9sc3godWludDhfdCAqZHN0 LCBwdHJkaWZmX3Qgc3RyaWRlLAo+PiArICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IHVp bnQ4X3QgKmxlZnQsIGNvbnN0IHVpbnQ4X3QgKnRvcCk7Cj4+ICt2b2lkIGZmX2RjXzEyOF8xNngx Nl9sc3godWludDhfdCAqZHN0LCBwdHJkaWZmX3Qgc3RyaWRlLAo+PiArICAgICAgICAgICAgICAg ICAgICAgICAgIGNvbnN0IHVpbnQ4X3QgKmxlZnQsIGNvbnN0IHVpbnQ4X3QgKnRvcCk7Cj4+ICt2 b2lkIGZmX2RjXzEyOF8zMngzMl9sc3godWludDhfdCAqZHN0LCBwdHJkaWZmX3Qgc3RyaWRlLAo+ PiArICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IHVpbnQ4X3QgKmxlZnQsIGNvbnN0IHVp bnQ4X3QgKnRvcCk7Cj4+ICt2b2lkIGZmX2RjXzEyN18xNngxNl9sc3godWludDhfdCAqZHN0LCBw dHJkaWZmX3Qgc3RyaWRlLAo+PiArICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IHVpbnQ4 X3QgKmxlZnQsIGNvbnN0IHVpbnQ4X3QgKnRvcCk7Cj4+ICt2b2lkIGZmX2RjXzEyN18zMngzMl9s c3godWludDhfdCAqZHN0LCBwdHJkaWZmX3Qgc3RyaWRlLAo+PiArICAgICAgICAgICAgICAgICAg ICAgICAgIGNvbnN0IHVpbnQ4X3QgKmxlZnQsIGNvbnN0IHVpbnQ4X3QgKnRvcCk7Cj4+ICt2b2lk IGZmX2RjXzEyOV8xNngxNl9sc3godWludDhfdCAqZHN0LCBwdHJkaWZmX3Qgc3RyaWRlLAo+PiAr ICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IHVpbnQ4X3QgKmxlZnQsIGNvbnN0IHVpbnQ4 X3QgKnRvcCk7Cj4+ICt2b2lkIGZmX2RjXzEyOV8zMngzMl9sc3godWludDhfdCAqZHN0LCBwdHJk aWZmX3Qgc3RyaWRlLAo+PiArICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IHVpbnQ4X3Qg KmxlZnQsIGNvbnN0IHVpbnQ4X3QgKnRvcCk7Cj4+ICt2b2lkIGZmX3RtXzR4NF9sc3godWludDhf dCAqZHN0LCBwdHJkaWZmX3Qgc3RyaWRlLCBjb25zdCB1aW50OF90ICpsZWZ0LAo+PiArICAgICAg ICAgICAgICAgICAgIGNvbnN0IHVpbnQ4X3QgKnRvcCk7Cj4+ICt2b2lkIGZmX3RtXzh4OF9sc3go dWludDhfdCAqZHN0LCBwdHJkaWZmX3Qgc3RyaWRlLCBjb25zdCB1aW50OF90ICpsZWZ0LAo+PiAr ICAgICAgICAgICAgICAgICAgIGNvbnN0IHVpbnQ4X3QgKnRvcCk7Cj4+ICt2b2lkIGZmX3RtXzE2 eDE2X2xzeCh1aW50OF90ICpkc3QsIHB0cmRpZmZfdCBzdHJpZGUsIGNvbnN0IHVpbnQ4X3QKPj4g KmxlZnQsCj4+ICsgICAgICAgICAgICAgICAgICAgICBjb25zdCB1aW50OF90ICp0b3ApOwo+PiAr dm9pZCBmZl90bV8zMngzMl9sc3godWludDhfdCAqZHN0LCBwdHJkaWZmX3Qgc3RyaWRlLCBjb25z dCB1aW50OF90Cj4+ICpsZWZ0LAo+PiArICAgICAgICAgICAgICAgICAgICAgY29uc3QgdWludDhf dCAqdG9wKTsKPj4gKwo+PiArI2VuZGlmIC8qIEFWQ09ERUNfTE9PTkdBUkNIX1ZQOURTUF9MT09O R0FSQ0hfSCAqLwo+PiBkaWZmIC0tZ2l0IGEvbGliYXZjb2RlYy92cDlkc3AuYyBiL2xpYmF2Y29k ZWMvdnA5ZHNwLmMKPj4gaW5kZXggNDFiOGFkMWFkMS4uODJiZmUzOTRkMSAxMDA2NDQKPj4gLS0t IGEvbGliYXZjb2RlYy92cDlkc3AuYwo+PiArKysgYi9saWJhdmNvZGVjL3ZwOWRzcC5jCj4+IEBA IC05OCw0ICs5OCw1IEBAIGF2X2NvbGQgdm9pZCBmZl92cDlkc3BfaW5pdChWUDlEU1BDb250ZXh0 ICpkc3AsIGludAo+PiBicHAsIGludCBiaXRleGFjdCkKPj4gICAgICAgaWYgKEFSQ0hfQVJNKSBm Zl92cDlkc3BfaW5pdF9hcm0oZHNwLCBicHApOwo+PiAgICAgICBpZiAoQVJDSF9YODYpIGZmX3Zw OWRzcF9pbml0X3g4Nihkc3AsIGJwcCwgYml0ZXhhY3QpOwo+PiAgICAgICBpZiAoQVJDSF9NSVBT KSBmZl92cDlkc3BfaW5pdF9taXBzKGRzcCwgYnBwKTsKPj4gKyAgICBpZiAoQVJDSF9MT09OR0FS Q0gpIGZmX3ZwOWRzcF9pbml0X2xvb25nYXJjaChkc3AsIGJwcCk7Cj4+ICAgfQo+PiBkaWZmIC0t Z2l0IGEvbGliYXZjb2RlYy92cDlkc3AuaCBiL2xpYmF2Y29kZWMvdnA5ZHNwLmgKPj4gaW5kZXgg ZTIyNTYzMTZhOC4uNzAwZGQ3MmRlOCAxMDA2NDQKPj4gLS0tIGEvbGliYXZjb2RlYy92cDlkc3Au aAo+PiArKysgYi9saWJhdmNvZGVjL3ZwOWRzcC5oCj4+IEBAIC0xMzIsNSArMTMyLDYgQEAgdm9p ZCBmZl92cDlkc3BfaW5pdF9hYXJjaDY0KFZQOURTUENvbnRleHQgKmRzcCwgaW50Cj4+IGJwcCk7 Cj4+ICAgdm9pZCBmZl92cDlkc3BfaW5pdF9hcm0oVlA5RFNQQ29udGV4dCAqZHNwLCBpbnQgYnBw KTsKPj4gICB2b2lkIGZmX3ZwOWRzcF9pbml0X3g4NihWUDlEU1BDb250ZXh0ICpkc3AsIGludCBi cHAsIGludCBiaXRleGFjdCk7Cj4+ICAgdm9pZCBmZl92cDlkc3BfaW5pdF9taXBzKFZQOURTUENv bnRleHQgKmRzcCwgaW50IGJwcCk7Cj4+ICt2b2lkIGZmX3ZwOWRzcF9pbml0X2xvb25nYXJjaChW UDlEU1BDb250ZXh0ICpkc3AsIGludCBicHApOwo+Pgo+PiAgICNlbmRpZiAvKiBBVkNPREVDX1ZQ OURTUF9IICovCj4+IC0tIAo+PiAyLjIwLjEKPj4KPj4gX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX18KPj4gZmZtcGVnLWRldmVsIG1haWxpbmcgbGlzdAo+PiBm Zm1wZWctZGV2ZWxAZmZtcGVnLm9yZwo+PiBodHRwczovL2ZmbXBlZy5vcmcvbWFpbG1hbi9saXN0 aW5mby9mZm1wZWctZGV2ZWwKPj4KPj4gVG8gdW5zdWJzY3JpYmUsIHZpc2l0IGxpbmsgYWJvdmUs IG9yIGVtYWlsCj4+IGZmbXBlZy1kZXZlbC1yZXF1ZXN0QGZmbXBlZy5vcmcgd2l0aCBzdWJqZWN0 ICJ1bnN1YnNjcmliZSIuCgpfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fXwpmZm1wZWctZGV2ZWwgbWFpbGluZyBsaXN0CmZmbXBlZy1kZXZlbEBmZm1wZWcub3Jn Cmh0dHBzOi8vZmZtcGVnLm9yZy9tYWlsbWFuL2xpc3RpbmZvL2ZmbXBlZy1kZXZlbAoKVG8gdW5z dWJzY3JpYmUsIHZpc2l0IGxpbmsgYWJvdmUsIG9yIGVtYWlsCmZmbXBlZy1kZXZlbC1yZXF1ZXN0 QGZmbXBlZy5vcmcgd2l0aCBzdWJqZWN0ICJ1bnN1YnNjcmliZSIuCg==