From owner-svn-src-head@freebsd.org Sat May 5 20:55:15 2018 Return-Path: Delivered-To: svn-src-head@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 76CA0FBA535 for ; Sat, 5 May 2018 20:55:14 +0000 (UTC) (envelope-from ohartmann@walstatt.org) Received: from mout.gmx.net (mout.gmx.net [212.227.17.20]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (Client CN "mout.gmx.net", Issuer "TeleSec ServerPass DE-2" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id A91E2837F7; Sat, 5 May 2018 20:55:13 +0000 (UTC) (envelope-from ohartmann@walstatt.org) Received: from thor.intern.walstatt.dynvpn.de ([77.180.123.97]) by mail.gmx.com (mrgmx101 [212.227.17.168]) with ESMTPSA (Nemesis) id 0MdFwl-1exGF20ykl-00IY9n; Sat, 05 May 2018 22:55:11 +0200 Date: Sat, 5 May 2018 22:54:41 +0200 From: "O. Hartmann" To: Matthew Macy Cc: svn-src-head@freebsd.org, Sean Bruno , Stephen Hurd , bde@freebsd.org Subject: Re: svn commit: r333175 - in head/sys: kern net netinet netinet6 sys: TRAP 12 Message-ID: <20180505225508.12bcee0c@thor.intern.walstatt.dynvpn.de> In-Reply-To: References: <201805021936.w42JaTlq039053@repo.freebsd.org> <20180503213206.7fba052c@thor.intern.walstatt.dynvpn.de> <20180503222419.4228e8e8@thor.intern.walstatt.dynvpn.de> <20180505110138.6cae0f75@thor.intern.walstatt.dynvpn.de> <20180505223151.580b6522@thor.intern.walstatt.dynvpn.de> Organization: WALSTATT User-Agent: OutScare 3.1415926 X-Operating-System: ImNotAnOperatingSystem 3.141592527 MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: base64 X-Provags-ID: V03:K1:QXwM5h5zrMTsk92ACD6xwqvTbvWx0PH8eYL1+JvodoKfs0Kb2Va 6lWjQJ9iHQLhHUvT+WRjleTBWb8N24Jm/J8vsJ3Hc6dqTxafUaM5ois+evcohmuettLjeqq aLWzhZF0nKOhf6qhWBm98aokvvHQkQhdcZegIbPMxxvuTMxy5Qq55EEDMP6yJY9M/cD2oj9 MJcp5rNVA745X6lumzR0w== X-UI-Out-Filterresults: notjunk:1;V01:K0:fDdBpmJ35LE=:zoy8YKqqdV52Zc2XHY+JC7 LZA4Hwita4GUJN0Ql78KJwPi2/mP/BIwilhVNi2Za+noQLU5+RxvdxlRSn1roj5pRpcIfsY2J kSfJipFLoa/dPNoEPvT37J6JDSvn1aCi57fheVA+cyM5DtFZK4dIMPUvJhnnoKd5c46pKQ4cI rzm9ECU+tpqnPAALUTFOOeBHTRcmA2IkyZybqkasLjaGwAJips24POGZSaZcwksNdiuG1XmfL hlwQno/TuU6d9/nUE5qY5Vc302Ius7GN0XBR/LrqVbtEdRb/mq/eB1HuQs/xuPN2RHIEvWBFB dXAJHV93rC4UEcaZJksxXMZllZU/pRZ1nRVJ/eBF9fF+yEe8lJz+tpY/Z4NQeGxTONuM4d5PK sxdOwNmhYaJTvBF4L2WFGTnKz20g7tIrVdxVRClLe9/E4qtHC93rntcurv6r5rZ9G8TwnOQqC +Khgzvx7HpDcOkDLJ8qqz6V1qFgwEnSpJzI3IVXGec2p2mQgvnHpFTj0JqralLh8jCTNJqzRX 9VKeW8X4apKtdtiAFP/IwlBbYD1MJ9nsnLuCvlbtdEG333EE+70c7MxzVn10jgM2SONKRSoqo G6ttMnMmVXciFZ9R18Z+Xv6sz/wKg2BlbCIybF2X6z0PDSj+kq/KpCW8wKFSMSToiqSjDTUG7 avqI+1gnoZ6iyEV9z/nTOxXaxXcOZWM/ujLOqAvaVgFR1XwBJKWTkPEofPQ7HEVRB7aP98qG/ agpdV+12fYNk10Y6eEOeM4otoFQbhNhce4bPrhZf/d5nBuHRXTYu2XnHF3sVNH1jYjII9GB6R eZ8RlcS X-BeenThere: svn-src-head@freebsd.org X-Mailman-Version: 2.1.25 Precedence: list List-Id: SVN commit messages for the src tree for head/-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sat, 05 May 2018 20:55:15 -0000 LS0tLS1CRUdJTiBQR1AgU0lHTkVEIE1FU1NBR0UtLS0tLQ0KSGFzaDogU0hBNTEyDQoNCkFtIFNh dCwgNSBNYXkgMjAxOCAxMzo0NToxMyAtMDcwMA0KTWF0dGhldyBNYWN5IDxtbWFjeUBmcmVlYnNk Lm9yZz4gc2NocmllYjoNCg0KPiBhY3R1YWxseSBjYW4geW91IHRyeSB0aGUgdXBkYXRlZCBwYXRj aCBwbGVhc2UsIGl0IHR1cm5zIG91dCBJIG5lZWQgdG8NCj4gd29ya2Fyb3VuZCB0aGlzIGxpdHRs ZSBzaG9wIG9mIGhvcnJvcnM6DQo+IA0KPiANCj4gc3RhdGljIHZvaWQNCj4gdGNwX3Vzcl9kZXRh Y2goc3RydWN0IHNvY2tldCAqc28pDQo+IHsNCj4gICAgIHN0cnVjdCBpbnBjYiAqaW5wOw0KPiAg ICAgaW50IHJsb2NrID0gMDsNCj4gDQo+ICAgICBpbnAgPSBzb3RvaW5wY2Ioc28pOw0KPiAgICAg S0FTU0VSVChpbnAgIT0gTlVMTCwgKCJ0Y3BfdXNyX2RldGFjaDogaW5wID09IE5VTEwiKSk7DQo+ ICAgICBpZiAoIUlOUF9JTkZPX1dMT0NLRUQoJlZfdGNiaW5mbykpIHsNCj4gICAgICAgICBJTlBf SU5GT19STE9DSygmVl90Y2JpbmZvKTsNCj4gICAgICAgICBybG9jayA9IDE7DQo+ICAgICB9DQo+ ICAgICBJTlBfV0xPQ0soaW5wKTsNCj4gICAgIEtBU1NFUlQoaW5wLT5pbnBfc29ja2V0ICE9IE5V TEwsDQo+ICAgICAgICAgKCJ0Y3BfdXNyX2RldGFjaDogaW5wX3NvY2tldCA9PSBOVUxMIikpOw0K PiAgICAgdGNwX2RldGFjaChzbywgaW5wKTsNCj4gICAgIGlmIChybG9jaykNCj4gICAgICAgICBJ TlBfSU5GT19SVU5MT0NLKCZWX3RjYmluZm8pOw0KPiB9DQo+IA0KPiBXZSdyZSBzdGlsbCBhY3F1 aXJpbmcgYSBzbGVlcGFibGUgbXV0ZXggb3V0IG9mIG9yZGVyIHdpdGggYSByZWFkIGxvY2sNCj4g aGVsZCB3aXRoIHRoZSBmb3JtZXIgdmVyc2lvbiBvZiB0aGUgcGF0Y2guDQo+DQoNCldlbGwsIEkn ZCBhcHByZWNpYXRlIGEgcGF0Y2ggZmlsZSwgaWYgcG9zc2libGUsIHBsZWFzZS4gDQoNCg0KPiAN Cj4gT24gU2F0LCBNYXkgNSwgMjAxOCBhdCAxOjMxIFBNLCBPLiBIYXJ0bWFubiA8by5oYXJ0bWFu bkB3YWxzdGF0dC5vcmc+IHdyb3RlOg0KPiA+IC0tLS0tQkVHSU4gUEdQIFNJR05FRCBNRVNTQUdF LS0tLS0NCj4gPiBIYXNoOiBTSEE1MTINCj4gPg0KPiA+IEFtIFNhdCwgNSBNYXkgMjAxOCAxMToy MTo0NyAtMDcwMA0KPiA+IE1hdHRoZXcgTWFjeSA8bW1hY3lAZnJlZWJzZC5vcmc+IHNjaHJpZWI6 DQo+ID4gIA0KPiA+PiBwaG9AIGFuZCBzYnJ1bm9AIHRlc3RlZCB0aGUgcGF0Y2ggYmVmb3JlIGNv bW1pdCwgSSBjYW4ndCByZWFkaWx5DQo+ID4+IHJlcHJvZHVjZSBldmVuIHRob3VnaCB0aGUgZGV0 YWNoIHBhdGggc2hvdWxkIGJlIGNvbW1vbiBlbm91Z2guIFBsZWFzZQ0KPiA+PiB0ZWxsIG1lIGlm IHRoaXMgaGVscHM6DQo+ID4+DQo+ID4+IGh0dHBzOi8vcGVvcGxlLmZyZWVic2Qub3JnL35tbWFj eS9pbnBjYi5kaWZmDQo+ID4+DQo+ID4+DQo+ID4+IFRoYW5rcy4NCj4gPj4gIA0KPiA+DQo+ID4N Cj4gPiBUaGUgcHJpdmlkZWQgcGF0Y2ggc2VlbWluZ2x5IHdvcmsgc28gZmFyIChGcmVlQlNEIDEy LjAtQ1VSUkVOVCAjNCByMzMzMjc0TTogU2F0IE1heSAgNQ0KPiA+IDIyOjE5OjA0IENFU1QgMjAx OCBhbWQ2NCkuIEkganVzdCByZWNvbXBpbGUgd29ybGQgYW5kIGtlcm5lbCBvZiByZXZpc2lvbiAz MzMyNzYgYW5kDQo+ID4gdHJ5IHRvIHB1c2ggdGhlIGJveCB3aXRoIG5lIHRyYWZmaWMgKE5GUyBt b3N0bHkpLg0KPiA+DQo+ID4gTWF5IEkgYXNrIG9uIHdoYXQgaGFyZHdhcmUgdGhlIG1lbnRpb25l ZCB0ZXN0cyBvZiB5b3VycyBoYXMgYmVlbiBwZXJmb3JtZWQ/IEkgY2FuDQo+ID4gdGVsbCwgdGhh dCBBTEwoISkgYm94ZXMgZXF1aXB0ZWQgd2l0aCBJbnRlbCdzIGkzNTAgTklDcyBhcmUgc3VmZmVy aW5nIHRoZSB2ZXJ5IHNhbWUNCj4gPiBwcm9ibGVtLiBJIGRpZG4ndCBkYXJlIHRvIG1vdmUgb24g b24gdGhlIG90aGVyIHN5c3RlbXMgd2l0aCBpMjEwLCBpMjE3IG9yIGkyMTksIGJ1dA0KPiA+IHdp dGggdGhlIHBhdGNoIHByb3ZpZGVkIHdvcmtpbmcgc28gZmFyLCBJJ2xsIHRlc3QuDQo+ID4NCj4g PiBUaGFua3MuDQo+ID4gIA0KPiA+Pg0KPiA+PiBPbiBTYXQsIE1heSA1LCAyMDE4IGF0IDI6MDEg QU0sIE8uIEhhcnRtYW5uIDxvLmhhcnRtYW5uQHdhbHN0YXR0Lm9yZz4gd3JvdGU6ICANCj4gPj4g PiAtLS0tLUJFR0lOIFBHUCBTSUdORUQgTUVTU0FHRS0tLS0tDQo+ID4+ID4gSGFzaDogU0hBNTEy DQo+ID4+ID4NCj4gPj4gPiBBbSBUaHUsIDMgTWF5IDIwMTggMjI6MjM6NTIgKzAyMDANCj4gPj4g PiAiTy4gSGFydG1hbm4iIDxvaGFydG1hbm5Ad2Fsc3RhdHQub3JnPiBzY2hyaWViOg0KPiA+PiA+ DQo+ID4+ID4NCj4gPj4gPiBJJ20gbm90IGZhbWlsaWFyIHdpdGgga2VybmVsIGRlYnVnZ2luZywg c28gdGhlcmUgYXJlIHNvbWUgc3RydWdnbGVzLg0KPiA+PiA+DQo+ID4+ID4gQWZ0ZXIgY29tcGls aW5nIGEgZGVidWdnaW5nIGtlcm5lbCBvbg0KPiA+PiA+DQo+ID4+ID4gVmVyc2lvbiBTdHJpbmc6 IEZyZWVCU0QgMTIuMC1DVVJSRU5UICMyIHIzMzMyNjk6IFNhdCBNYXkgIDUgMDg6MTA6MzIgQ0VT VCAyMDE4DQo+ID4+ID4NCj4gPj4gPiBQYW5pYyBTdHJpbmc6IExvY2sgdGNwIG5vdCBleGNsdXNp dmVseSBsb2NrZWQgQCAvdXNyL3NyYy9zeXMvbmV0aW5ldC9pbl9wY2IuYzoxMzkxDQo+ID4+ID4N Cj4gPj4gPg0KPiA+PiA+IEFuZCB0aGlzIGlzIHdoYXQgSSBjYW4gcHJvdmlkZSB5b3Ugd2l0aDoN Cj4gPj4gPg0KPiA+PiA+DQo+ID4+ID4gUmVhZGluZyBzeW1ib2xzDQo+ID4+ID4gZnJvbSAvdXNy L29iai91c3Ivc3JjL2FtZDY0LmFtZDY0L3N5cy9XQUxIQUxMLURFQlVHL2tlcm5lbC5mdWxsLi4u ZG9uZS4NCj4gPj4gPg0KPiA+PiA+IFVucmVhZCBwb3J0aW9uIG9mIHRoZSBrZXJuZWwgbWVzc2Fn ZSBidWZmZXI6DQo+ID4+ID4gcGFuaWM6IExvY2sgdGNwIG5vdCBleGNsdXNpdmVseSBsb2NrZWQg QCAvdXNyL3NyYy9zeXMvbmV0aW5ldC9pbl9wY2IuYzoxMzkxDQo+ID4+ID4NCj4gPj4gPiBjcHVp ZCA9IDQNCj4gPj4gPiB0aW1lID0gMTUyNTUxMDI5MQ0KPiA+PiA+IEtEQjogc3RhY2sgYmFja3Ry YWNlOg0KPiA+PiA+IGRiX3RyYWNlX3NlbGZfd3JhcHBlcigpIGF0IGRiX3RyYWNlX3NlbGZfd3Jh cHBlcisweDJiL2ZyYW1lIDB4ZmZmZmZlMDBlNDg1ZTY3MA0KPiA+PiA+IHZwYW5pYygpIGF0IHZw YW5pYysweDFhMy9mcmFtZSAweGZmZmZmZTAwZTQ4NWU2ZDANCj4gPj4gPiBwYW5pYygpIGF0IHBh bmljKzB4NDMvZnJhbWUgMHhmZmZmZmUwMGU0ODVlNzMwDQo+ID4+ID4gX3J3X3d1bmxvY2tfY29v a2llKCkgYXQgX3J3X3d1bmxvY2tfY29va2llKzB4MTM3L2ZyYW1lIDB4ZmZmZmZlMDBlNDg1ZTc2 MA0KPiA+PiA+IGluX3BjYmZyZWUoKSBhdCBpbl9wY2JmcmVlKzB4NTFhL2ZyYW1lIDB4ZmZmZmZl MDBlNDg1ZTdiMA0KPiA+PiA+IHRjcF91c3JfZGV0YWNoKCkgYXQgdGNwX3Vzcl9kZXRhY2grMHgx NWUvZnJhbWUgMHhmZmZmZmUwMGU0ODVlN2YwDQo+ID4+ID4gc29mcmVlKCkgYXQgc29mcmVlKzB4 MmY0L2ZyYW1lIDB4ZmZmZmZlMDBlNDg1ZTg0MA0KPiA+PiA+IHNvY2xvc2UoKSBhdCBzb2Nsb3Nl KzB4Mzg3L2ZyYW1lIDB4ZmZmZmZlMDBlNDg1ZThiMA0KPiA+PiA+IGNsb3NlZigpIGF0IGNsb3Nl ZisweDFmNS9mcmFtZSAweGZmZmZmZTAwZTQ4NWU5NDANCj4gPj4gPiBjbG9zZWZwKCkgYXQgY2xv c2VmcCsweGEwL2ZyYW1lIDB4ZmZmZmZlMDBlNDg1ZTk4MA0KPiA+PiA+IGFtZDY0X3N5c2NhbGwo KSBhdCBhbWQ2NF9zeXNjYWxsKzB4NmQzL2ZyYW1lIDB4ZmZmZmZlMDBlNDg1ZWFiMA0KPiA+PiA+ IGZhc3Rfc3lzY2FsbF9jb21tb24oKSBhdCBmYXN0X3N5c2NhbGxfY29tbW9uKzB4MTAxL2ZyYW1l IDB4ZmZmZmZlMDBlNDg1ZWFiMA0KPiA+PiA+IC0gLS0tIHN5c2NhbGwgKDYsIEZyZWVCU0QgRUxG NjQsIHN5c19jbG9zZSksIHJpcCA9IDB4ODAxMTFhZGRhLCByc3AgPQ0KPiA+PiA+IDB4N2ZmZmRm M2Y3MjI4LCByYnAgPSAweDdmZmZkZjNmNzI0MCAtLS0gS0RCOiBlbnRlcjogcGFuaWMNCj4gPj4g Pg0KPiA+PiA+IF9fY3VydGhyZWFkICgpIGF0IC4vbWFjaGluZS9wY3B1Lmg6MjMxDQo+ID4+ID4g MjMxICAgICAgICAgICAgIF9fYXNtKCJtb3ZxICUlZ3M6JTEsJTAiIDogIj1yIiAodGQpDQo+ID4+ ID4gKGtnZGIpIGJ0DQo+ID4+ID4gKGtnZGIpIGJ0DQo+ID4+ID4gIzAgIF9fY3VydGhyZWFkICgp IGF0IC4vbWFjaGluZS9wY3B1Lmg6MjMxDQo+ID4+ID4gIzEgIGRvYWR1bXAgKHRleHRkdW1wPTAp IGF0IC91c3Ivc3JjL3N5cy9rZXJuL2tlcm5fc2h1dGRvd24uYzozNjUNCj4gPj4gPiAjMiAgMHhm ZmZmZmZmZjgwNTk3ZDViIGluIGRiX2R1bXAgKGR1bW15PTxvcHRpbWl6ZWQgb3V0PiwgZHVtbXky PTx1bmF2YWlsYWJsZT4sDQo+ID4+ID4gZHVtbXkzPTx1bmF2YWlsYWJsZT4sIGR1bW15ND08dW5h dmFpbGFibGU+KSBhdCAvdXNyL3NyYy9zeXMvZGRiL2RiX2NvbW1hbmQuYzo1NzQNCj4gPj4gPiAj MyAgMHhmZmZmZmZmZjgwNTk3YWU2IGluIGRiX2NvbW1hbmQgKGxhc3RfY21kcD08b3B0aW1pemVk IG91dD4sDQo+ID4+ID4gY21kX3RhYmxlPTxvcHRpbWl6ZWQgIA0KPiA+PiA+IG91dD4sIGRvcGFn ZXI9PG9wdGltaXplZCBvdXQ+KSBhdCAvdXNyL3NyYy9zeXMvZGRiL2RiX2NvbW1hbmQuYzo0ODEg IzQNCj4gPj4gPiBvdXQ+MHhmZmZmZmZmZjgwNTk3ODE0IGluIGRiX2NvbW1hbmRfbG9vcCAoKSBh dCAvdXNyL3NyYy9zeXMvZGRiL2RiX2NvbW1hbmQuYzo1MzQgIA0KPiA+PiA+ICM1ICAweGZmZmZm ZmZmODA1OWIwNGYgaW4gZGJfdHJhcCAodHlwZT08b3B0aW1pemVkIG91dD4sIGNvZGU9PG9wdGlt aXplZCBvdXQ+KQ0KPiA+PiA+IGF0IC91c3Ivc3JjL3N5cy9kZGIvZGJfbWFpbi5jOjI1MCAjNiAg MHhmZmZmZmZmZjgwOTI0NDYzIGluIGtkYl90cmFwICh0eXBlPTMsDQo+ID4+ID4gY29kZT0tNjE0 NTYsIHRmPTxvcHRpbWl6ZWQgb3V0PikgYXQgL3Vzci9zcmMvc3lzL2tlcm4vc3Vicl9rZGIuYzo2 OTcgIzcNCj4gPj4gPiAweGZmZmZmZmZmODBjODBhYjcgaW4gdHJhcCAoZnJhbWU9MHhmZmZmZmUw MGU0ODVlNWEwKQ0KPiA+PiA+IGF0IC91c3Ivc3JjL3N5cy9hbWQ2NC9hbWQ2NC90cmFwLmM6NTUw ICM4ICA8c2lnbmFsIGhhbmRsZXIgY2FsbGVkPiAjOSAga2RiX2VudGVyDQo+ID4+ID4gKHdoeT0w eGZmZmZmZmZmODBkZDdiNTQgInBhbmljIiwgbXNnPTxvcHRpbWl6ZWQgb3V0PikNCj4gPj4gPiBh dCAvdXNyL3NyYy9zeXMva2Vybi9zdWJyX2tkYi5jOjQ3OSAjMTAgMHhmZmZmZmZmZjgwOGRiNTAw IGluIHZwYW5pYw0KPiA+PiA+IChmbXQ9PG9wdGltaXplZCAgDQo+ID4+ID4gb3V0PiwgYXA9MHhm ZmZmZmUwMGU0ODVlNzEwKSBhdCAvdXNyL3NyYy9zeXMva2Vybi9rZXJuX3NodXRkb3duLmM6ODUx ICMxMQ0KPiA+PiA+IG91dD4weGZmZmZmZmZmODA4ZGI1OTMgaW4gcGFuaWMgIA0KPiA+PiA+IChm bXQ9MHhmZmZmZmZmZjgxMjViYmQ4IDxjbnB1dHNfbXR4PiAiXDI1MVwzMTJcMzMyXDIwMFwzNzdc Mzc3XDM3N1wzNzciKQ0KPiA+PiA+IGF0IC91c3Ivc3JjL3N5cy9rZXJuL2tlcm5fc2h1dGRvd24u Yzo3ODkgIzEyIDB4ZmZmZmZmZmY4MDhkNjViNyBpbiBfX3J3X2Fzc2VydA0KPiA+PiA+IChjPTB4 ZmZmZmZlMDAxMTFlZTY1MCwgd2hhdD00LCBmaWxlPTB4ZmZmZmZmZmY4MGRjNTE1Nw0KPiA+PiA+ ICIvdXNyL3NyYy9zeXMvbmV0aW5ldC9pbl9wY2IuYyIsIGxpbmU9MTM5MSkgYXQgL3Vzci9zcmMv c3lzL2tlcm4va2Vybl9yd2xvY2suYzoxNDI2DQo+ID4+ID4gIzEzIF9yd193dW5sb2NrX2Nvb2tp ZSAoYz0weGZmZmZmZTAwMTExZWU2NTAsIGZpbGU9MHhmZmZmZmZmZjgwZGM1MTU3DQo+ID4+ID4g Ii91c3Ivc3JjL3N5cy9uZXRpbmV0L2luX3BjYi5jIiwgbGluZT0xMzkxKSBhdCAvdXNyL3NyYy9z eXMva2Vybi9rZXJuX3J3bG9jay5jOjM2Mg0KPiA+PiA+ICMxNCAweGZmZmZmZmZmODBhNjhjYWEg aW4gaW5fcGNiZnJlZSAoaW5wPTB4ZmZmZmY4MDA2NjA1OGIxMCkNCj4gPj4gPiBhdCAvdXNyL3Ny Yy9zeXMvbmV0aW5ldC9pbl9wY2IuYzoxMzkxICMxNSAweGZmZmZmZmZmODBiMDlhNmUgaW4gdGNw X2RldGFjaA0KPiA+PiA+IChzbz08b3B0aW1pemVkIG91dD4sIGlucD08b3B0aW1pemVkIG91dD4p IGF0IC91c3Ivc3JjL3N5cy9uZXRpbmV0L3RjcF91c3JyZXEuYzoyNTgNCj4gPj4gPiAjMTYgdGNw X3Vzcl9kZXRhY2ggKHNvPTxvcHRpbWl6ZWQgb3V0PikgYXQgL3Vzci9zcmMvc3lzL25ldGluZXQv dGNwX3VzcnJlcS5jOjI4OQ0KPiA+PiA+ICMxNyAweGZmZmZmZmZmODA5N2MzOTQgaW4gc29mcmVl IChzbz0weGZmZmZmODAwMTk4OGQzNTgpDQo+ID4+ID4gYXQgL3Vzci9zcmMvc3lzL2tlcm4vdWlw Y19zb2NrZXQuYzoxMDMyICMxOCAweGZmZmZmZmZmODA5N2Q0ODcgaW4gc29jbG9zZQ0KPiA+PiA+ IChzbz0weGZmZmZmODAwMTk4OGQzNTgpIGF0IC91c3Ivc3JjL3N5cy9rZXJuL3VpcGNfc29ja2V0 LmM6MTEyNiAjMTkNCj4gPj4gPiAweGZmZmZmZmZmODA4ODVhZDUgaW4gZm9fY2xvc2UgKGZwPTxv cHRpbWl6ZWQgb3V0PiwgdGQ9PG9wdGltaXplZCBvdXQ+KQ0KPiA+PiA+IGF0IC91c3Ivc3JjL3N5 cy9zeXMvZmlsZS5oOjM0OCAjMjAgX2Zkcm9wIChmcD08b3B0aW1pemVkIG91dD4sIHRkPTxvcHRp bWl6ZWQgb3V0PikNCj4gPj4gPiBhdCAvdXNyL3NyYy9zeXMva2Vybi9rZXJuX2Rlc2NyaXAuYzoy OTU3ICMyMSBjbG9zZWYgKGZwPTB4ZmZmZmY4MDAwNGVmNGViMCwNCj4gPj4gPiB0ZD0weGZmZmZm ODAwMTk4OTE1NjApIGF0IC91c3Ivc3JjL3N5cy9rZXJuL2tlcm5fZGVzY3JpcC5jOjI1MzggIzIy DQo+ID4+ID4gMHhmZmZmZmZmZjgwODgyOTIwIGluIGNsb3NlZnAgKGZkcD0weGZmZmZmODAwMTk1 NTM0NTAsIGZkPTEyLA0KPiA+PiA+IGZwPTB4ZmZmZmY4MDAwNGVmNGViMCwgdGQ9MHhmZmZmZjgw MDE5ODkxNTYwLCBob2xkbGVhZGVycz0wKQ0KPiA+PiA+IGF0IC91c3Ivc3JjL3N5cy9rZXJuL2tl cm5fZGVzY3JpcC5jOjEyMDggIzIzIDB4ZmZmZmZmZmY4MGM4MjAzMyBpbiBzeXNjYWxsZW50ZXIN Cj4gPj4gPiAodGQ9MHhmZmZmZjgwMDE5ODkxNTYwKSBhdCAvdXNyL3NyYy9zeXMvYW1kNjQvYW1k NjQvLi4vLi4va2Vybi9zdWJyX3N5c2NhbGwuYzoxMzUNCj4gPj4gPiAjMjQgYW1kNjRfc3lzY2Fs bCAodGQ9MHhmZmZmZjgwMDE5ODkxNTYwLCB0cmFjZWQ9MCkNCj4gPj4gPiBhdCAvdXNyL3NyYy9z eXMvYW1kNjQvYW1kNjQvdHJhcC5jOjk0NSAjMjUgPHNpZ25hbCBoYW5kbGVyIGNhbGxlZD4gIzI2 DQo+ID4+ID4gMHgwMDAwMDAwODAxMTFhZGRhIGluID8/ICgpIEJhY2t0cmFjZSBzdG9wcGVkOiBD YW5ub3QgYWNjZXNzIG1lbW9yeSBhdCBhZGRyZXNzDQo+ID4+ID4gMHg3ZmZmZGYzZjcyMjggKGtn ZGIpDQo+ID4+ID4NCj4gPj4gPg0KPiA+PiA+DQo+ID4+ID4gIA0KPiA+PiA+PiAtLS0tLUJFR0lO IFBHUCBTSUdORUQgTUVTU0FHRS0tLS0tDQo+ID4+ID4+IEhhc2g6IFNIQTUxMg0KPiA+PiA+Pg0K PiA+PiA+PiBBbSBUaHUsIDMgTWF5IDIwMTggMTI6NTM6MDUgLTA3MDANCj4gPj4gPj4gIksuIE1h Y3kiIDxrbWFjeUBmcmVlYnNkLm9yZz4gc2NocmllYjoNCj4gPj4gPj4gIA0KPiA+PiA+PiA+IENh biB5b3UgZ2l2ZSBhbnkgY29udGV4dCBvbiB3aGF0IHRoZXkncmUgZG9pbmc/IEluIGFkZGl0aW9u IC0gZXZlbiBvbg0KPiA+PiA+PiA+IGEgcHJvZHVjdGlvbiBrZXJuZWwgaXQncyBwb3NzaWJsZSB0 byBjb21waWxlIGluIEREQiB0byBhdCBsZWFzdCBnZXQgYQ0KPiA+PiA+PiA+IGJhY2t0cmFjZS4g WW91ciByZXBvcnQgb25seSBnaXZlcyB1cyBlbm91Z2ggaW5mb3JtYXRpb24gdG8ga25vdyB0aGF0 ICANCj4gPj4gPj4NCj4gPj4gPj4gTm90IGF0IHRoZSBtb21lbnQuIFRoZSBpbW1lZGlhdGUgY3Jh c2ggY29ycnVwdGVkIHRoZSAvdXNyL3NyYyBmaWxlc3lzdGVtIHNvIEkgY2FuDQo+ID4+ID4+IG5v dCByZWNvbXBpbGUgYSBrZXJuZWwuIEV2ZXJ5IGF0dGVtcHQgdG8gL2V0Yy9uZXRzdGFydCB0aGUg bmV0d29yayBvbiB0aGUgYnVnZ3kNCj4gPj4gPj4ga2VybmVsIGVuZHMgdXAgaW4gYSBmdXJ0aGVy IGRlc3RydWN0aW9uLCBzbyBJIHN0b3BwZWQgYXQgdGhpcyB2ZXJ5IG1vbWVudCBhbmQNCj4gPj4g Pj4gaG9wZWZ1bGx5IEkgY2FuIGNvcHkgL3Vzci9zcmMgZnJvbSBhIHIzMzE1MyBib3ggKHIzMzMx NTMgaXMgZm9yIG1lIHRoZSBsYXN0DQo+ID4+ID4+IHdvcmtpbmcgcmV2aXNpb24pIHZpYSBVU0Ig Zmxhc2ggZHJpdmUgYW5kIHJlY29tcGlsZSB0aGUga2VybmVsLiBCdXQgSSdsbCBnbyBmb3INCj4g Pj4gPj4gcjMzMzE1MyBmaXJzdCBzaW5jZSBJIG5lZWQgdGhlIHNlcnZlciB1cCB0b21vcnJvdyBh bmQgSSdsbCB0cnkgb24gdGhlIG90aGVyIGJveA0KPiA+PiA+PiB3aGljaCBpcyBhbHNvIGFmZmVj dGVkLCBidXQgYWxzbyBlcXVpcHRlZCB3aXRoIHRoZSBpMzUwIE5JQyBvbiB3aGljaCB0aGUgcHJv YmxlbQ0KPiA+PiA+PiBvY2N1cnMgdmVyeSBxdWlja2x5LiANCj4gPj4gPj4gPiB0aGVyZSBpcyBf YW5fIGlzc3VlLiBJdCdzIGRpZmZpY3VsdCB0byBwcm9jZWVkIG9uIHRoaXMgYWxvbmUuIEkgZG8N Cj4gPj4gPj4gPiBoYXZlIGEgcmVwb3J0IGZyb20gdGhlIEZyZWVCU0QgQ0kgaW5mcmFzdHJ1Y3R1 cmUgdGhhdCB3ZSdyZSBsb29raW5nIGluDQo+ID4+ID4+ID4gdG8gbm93LiAgV2l0aCBsdWNrIHRo YXQgaXMgdGhlIHNhbWUgaXNzdWUuDQo+ID4+ID4+ID4NCj4gPj4gPj4gPiAtTQ0KPiA+PiA+PiA+ DQo+ID4+ID4+ID4gT24gVGh1LCBNYXkgMywgMjAxOCBhdCAxMjozMSBQTSwgTy4gSGFydG1hbm4g PG9oYXJ0bWFubkB3YWxzdGF0dC5vcmc+IHdyb3RlOiAgDQo+ID4+ID4+ID4gPiAtLS0tLUJFR0lO IFBHUCBTSUdORUQgTUVTU0FHRS0tLS0tDQo+ID4+ID4+ID4gPiBIYXNoOiBTSEE1MTINCj4gPj4g Pj4gPiA+DQo+ID4+ID4+ID4gPiBBbSBXZWQsIDIgTWF5IDIwMTggMTk6MzY6MjkgKzAwMDAgKFVU QykNCj4gPj4gPj4gPiA+IFN0ZXBoZW4gSHVyZCA8c2h1cmRARnJlZUJTRC5vcmc+IHNjaHJpZWI6 DQo+ID4+ID4+ID4gPiAgDQo+ID4+ID4+ID4gPj4gQXV0aG9yOiBzaHVyZA0KPiA+PiA+PiA+ID4+ IERhdGU6IFdlZCBNYXkgIDIgMTk6MzY6MjkgMjAxOA0KPiA+PiA+PiA+ID4+IE5ldyBSZXZpc2lv bjogMzMzMTc1DQo+ID4+ID4+ID4gPj4gVVJMOiBodHRwczovL3N2bndlYi5mcmVlYnNkLm9yZy9j aGFuZ2VzZXQvYmFzZS8zMzMxNzUNCj4gPj4gPj4gPiA+Pg0KPiA+PiA+PiA+ID4+IExvZzoNCj4g Pj4gPj4gPiA+PiAgIFNlcGFyYXRlIGxpc3QgbWFuaXB1bGF0aW9uIGxvY2tpbmcgZnJvbSBzdGF0 ZSBjaGFuZ2UgaW4gbXVsdGljYXN0DQo+ID4+ID4+ID4gPj4NCj4gPj4gPj4gPiA+PiAgIE11bHRp Y2FzdCBpbmNvcnJlY3RseSBjYWxscyBpbiB0byBkcml2ZXJzIHdpdGggYSBtdXRleCBoZWxkIGNh dXNpbmcgZHJpdmVycw0KPiA+PiA+PiA+ID4+ICAgdG8gaGF2ZSB0byBnbyB0aHJvdWdoIGFsbCBt YW5uZXIgb2YgY29udG9ydGlvbnMgdG8gdXNlIGEgbm9uIHNsZWVwYWJsZQ0KPiA+PiA+PiA+ID4+ IGxvY2suIFNlcmlhbGl6ZSBtdWx0aWNhc3QgdXBkYXRlcyBpbnN0ZWFkLg0KPiA+PiA+PiA+ID4+ DQo+ID4+ID4+ID4gPj4gICBTdWJtaXR0ZWQgYnk6ICAgICAgIG1tYWN5IDxtbWFjeUBtYXR0bWFj eS5pbz4NCj4gPj4gPj4gPiA+PiAgIFJldmlld2VkIGJ5OiAgICAgICAgc2h1cmQsIHNicnVubw0K PiA+PiA+PiA+ID4+ICAgU3BvbnNvcmVkIGJ5OiAgICAgICBMaW1lbGlnaHQgTmV0d29ya3MNCj4g Pj4gPj4gPiA+PiAgIERpZmZlcmVudGlhbCBSZXZpc2lvbjogICAgICBodHRwczovL3Jldmlld3Mu ZnJlZWJzZC5vcmcvRDE0OTY5DQo+ID4+ID4+ID4gPj4NCj4gPj4gPj4gPiA+PiBNb2RpZmllZDoN Cj4gPj4gPj4gPiA+PiAgIGhlYWQvc3lzL2tlcm4vc3Vicl9ndGFza3F1ZXVlLmMNCj4gPj4gPj4g PiA+PiAgIGhlYWQvc3lzL2tlcm4vc3Vicl93aXRuZXNzLmMNCj4gPj4gPj4gPiA+PiAgIGhlYWQv c3lzL25ldC9pZi5jDQo+ID4+ID4+ID4gPj4gICBoZWFkL3N5cy9uZXRpbmV0L2lnbXAuYw0KPiA+ PiA+PiA+ID4+ICAgaGVhZC9zeXMvbmV0aW5ldC9pZ21wX3Zhci5oDQo+ID4+ID4+ID4gPj4gICBo ZWFkL3N5cy9uZXRpbmV0L2luLmMNCj4gPj4gPj4gPiA+PiAgIGhlYWQvc3lzL25ldGluZXQvaW5f bWNhc3QuYw0KPiA+PiA+PiA+ID4+ICAgaGVhZC9zeXMvbmV0aW5ldC9pbl9wY2IuYw0KPiA+PiA+ PiA+ID4+ICAgaGVhZC9zeXMvbmV0aW5ldC9pbl92YXIuaA0KPiA+PiA+PiA+ID4+ICAgaGVhZC9z eXMvbmV0aW5ldC9pcF9jYXJwLmMNCj4gPj4gPj4gPiA+PiAgIGhlYWQvc3lzL25ldGluZXQ2L2lu Ni5jDQo+ID4+ID4+ID4gPj4gICBoZWFkL3N5cy9uZXRpbmV0Ni9pbjZfaWZhdHRhY2guYw0KPiA+ PiA+PiA+ID4+ICAgaGVhZC9zeXMvbmV0aW5ldDYvaW42X21jYXN0LmMNCj4gPj4gPj4gPiA+PiAg IGhlYWQvc3lzL25ldGluZXQ2L2luNl9wY2IuYw0KPiA+PiA+PiA+ID4+ICAgaGVhZC9zeXMvbmV0 aW5ldDYvaW42X3Zhci5oDQo+ID4+ID4+ID4gPj4gICBoZWFkL3N5cy9uZXRpbmV0Ni9tbGQ2LmMN Cj4gPj4gPj4gPiA+PiAgIGhlYWQvc3lzL25ldGluZXQ2L21sZDZfdmFyLmgNCj4gPj4gPj4gPiA+ PiAgIGhlYWQvc3lzL3N5cy9ndGFza3F1ZXVlLmgNCj4gPj4gPj4gPiA+Pg0KPiA+PiA+PiA+ID4+ IE1vZGlmaWVkOiBoZWFkL3N5cy9rZXJuL3N1YnJfZ3Rhc2txdWV1ZS5jDQo+ID4+ID4+ID4gPj4g PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09DQo+ID4+ID4+ID4gPj4gLS0tIGhlYWQvc3lzL2tlcm4vc3Vi cl9ndGFza3F1ZXVlLmMgICBXZWQgTWF5ICAyIDE3OjQxOjAwIDIwMTgNCj4gPj4gPj4gPiA+PiAo cjMzMzE3NCkgKysrIGhlYWQvc3lzL2tlcm4vc3Vicl9ndGFza3F1ZXVlLmMgICBXZWQgTWF5ICAy IDE5OjM2OjI5DQo+ID4+ID4+ID4gPj4gMjAxOCAgICAgICAgKHIzMzMxNzUpIEBAIC01Myw2ICs1 Myw3IEBAIHN0YXRpYyB2b2lkDQo+ID4+ID4+ID4gPj4gZ3Rhc2txdWV1ZV90aHJlYWRfZW5xdWV1 ZSh2b2lkICopOyBzdGF0aWMgdm9pZCAgZ3Rhc2txdWV1ZV90aHJlYWRfbG9vcCh2b2lkDQo+ID4+ ID4+ID4gPj4gKmFyZyk7DQo+ID4+ID4+ID4gPj4NCj4gPj4gPj4gPiA+PiAgVEFTS1FHUk9VUF9E RUZJTkUoc29mdGlycSwgbXBfbmNwdXMsIDEpOw0KPiA+PiA+PiA+ID4+ICtUQVNLUUdST1VQX0RF RklORShjb25maWcsIDEsIDEpOw0KPiA+PiA+PiA+ID4+DQo+ID4+ID4+ID4gPj4gIHN0cnVjdCBn dGFza3F1ZXVlX2J1c3kgew0KPiA+PiA+PiA+ID4+ICAgICAgIHN0cnVjdCBndGFzayAgICAqdGJf cnVubmluZzsNCj4gPj4gPj4gPiA+PiBAQCAtNjYyLDcgKzY2Myw3IEBAIFNZU0lOSVQodHFnX3Jl Y29yZF9zbXBfc3RhcnRlZCwgU0lfU1VCX1NNUCwgU0lfT1JERVJfRg0KPiA+PiA+PiA+ID4+DQo+ ID4+ID4+ID4gPj4gIHZvaWQNCj4gPj4gPj4gPiA+PiAgdGFza3Fncm91cF9hdHRhY2goc3RydWN0 IHRhc2txZ3JvdXAgKnFncm91cCwgc3RydWN0IGdyb3VwdGFzayAqZ3Rhc2ssDQo+ID4+ID4+ID4g Pj4gLSAgICB2b2lkICp1bmlxLCBpbnQgaXJxLCBjaGFyICpuYW1lKQ0KPiA+PiA+PiA+ID4+ICsg ICAgdm9pZCAqdW5pcSwgaW50IGlycSwgY29uc3QgY2hhciAqbmFtZSkNCj4gPj4gPj4gPiA+PiAg ew0KPiA+PiA+PiA+ID4+ICAgICAgIGNwdXNldF90IG1hc2s7DQo+ID4+ID4+ID4gPj4gICAgICAg aW50IHFpZCwgZXJyb3I7DQo+ID4+ID4+ID4gPj4gQEAgLTk3Niw0ICs5NzcsMTMgQEAgdm9pZA0K PiA+PiA+PiA+ID4+ICB0YXNrcWdyb3VwX2Rlc3Ryb3koc3RydWN0IHRhc2txZ3JvdXAgKnFncm91 cCkNCj4gPj4gPj4gPiA+PiAgew0KPiA+PiA+PiA+ID4+DQo+ID4+ID4+ID4gPj4gK30NCj4gPj4g Pj4gPiA+PiArDQo+ID4+ID4+ID4gPj4gK3ZvaWQNCj4gPj4gPj4gPiA+PiArdGFza3Fncm91cF9j b25maWdfZ3Rhc2tfaW5pdCh2b2lkICpjdHgsIHN0cnVjdCBncm91cHRhc2sgKmd0YXNrLCBndGFz a19mbl90DQo+ID4+ID4+ID4gPj4gKmZuLA0KPiA+PiA+PiA+ID4+ICsgICAgIGNvbnN0IGNoYXIg Km5hbWUpDQo+ID4+ID4+ID4gPj4gK3sNCj4gPj4gPj4gPiA+PiArDQo+ID4+ID4+ID4gPj4gKyAg ICAgR1JPVVBUQVNLX0lOSVQoZ3Rhc2ssIDAsIGZuLCBjdHgpOw0KPiA+PiA+PiA+ID4+ICsgICAg IHRhc2txZ3JvdXBfYXR0YWNoKHFncm91cF9jb25maWcsIGd0YXNrLCBndGFzaywgLTEsIG5hbWUp Ow0KPiA+PiA+PiA+ID4+ICB9DQo+ID4+ID4+ID4gPj4NCj4gPj4gPj4gPiA+PiBNb2RpZmllZDog aGVhZC9zeXMva2Vybi9zdWJyX3dpdG5lc3MuYw0KPiA+PiA+PiA+ID4+ID09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PQ0KPiA+PiA+PiA+ID4+IC0tLSBoZWFkL3N5cy9rZXJuL3N1YnJfd2l0bmVzcy5jICAg ICAgV2VkIE1heSAgMiAxNzo0MTowMCAyMDE4DQo+ID4+ID4+ID4gPj4gKHIzMzMxNzQpICsrKyBo ZWFkL3N5cy9rZXJuL3N1YnJfd2l0bmVzcy5jICAgICAgV2VkIE1heSAgMiAxOTozNjoyOQ0KPiA+ PiA+PiA+ID4+IDIwMTggICAgICAgIChyMzMzMTc1KSBAQCAtNTMyLDE4ICs1MzIsMjIgQEAgc3Rh dGljIHN0cnVjdA0KPiA+PiA+PiA+ID4+IHdpdG5lc3Nfb3JkZXJfbGlzdF9lbnRyeSBvcmRlcl9s aXN0c1tdID0NCj4gPj4gPj4gPiA+PiAgICAgICAgKiBJUHY0IG11bHRpY2FzdDoNCj4gPj4gPj4g PiA+PiAgICAgICAgKiBwcm90b2NvbCBsb2NrcyBiZWZvcmUgaW50ZXJmYWNlIGxvY2tzLCBhZnRl ciBVRFAgbG9ja3MuDQo+ID4+ID4+ID4gPj4gICAgICAgICovDQo+ID4+ID4+ID4gPj4gKyAgICAg eyAiaW5fbXVsdGlfc3giLCAmbG9ja19jbGFzc19zeCB9LA0KPiA+PiA+PiA+ID4+ICAgICAgIHsg InVkcGlucCIsICZsb2NrX2NsYXNzX3J3IH0sDQo+ID4+ID4+ID4gPj4gLSAgICAgeyAiaW5fbXVs dGlfbXR4IiwgJmxvY2tfY2xhc3NfbXR4X3NsZWVwIH0sDQo+ID4+ID4+ID4gPj4gKyAgICAgeyAi aW5fbXVsdGlfbGlzdF9tdHgiLCAmbG9ja19jbGFzc19tdHhfc2xlZXAgfSwNCj4gPj4gPj4gPiA+ PiAgICAgICB7ICJpZ21wX210eCIsICZsb2NrX2NsYXNzX210eF9zbGVlcCB9LA0KPiA+PiA+PiA+ ID4+ICsgICAgIHsgImlmbmV0X3J3IiwgJmxvY2tfY2xhc3NfcncgfSwNCj4gPj4gPj4gPiA+PiAg ICAgICB7ICJpZl9hZGRyX2xvY2siLCAmbG9ja19jbGFzc19ydyB9LA0KPiA+PiA+PiA+ID4+ICAg ICAgIHsgTlVMTCwgTlVMTCB9LA0KPiA+PiA+PiA+ID4+ICAgICAgIC8qDQo+ID4+ID4+ID4gPj4g ICAgICAgICogSVB2NiBtdWx0aWNhc3Q6DQo+ID4+ID4+ID4gPj4gICAgICAgICogcHJvdG9jb2wg bG9ja3MgYmVmb3JlIGludGVyZmFjZSBsb2NrcywgYWZ0ZXIgVURQIGxvY2tzLg0KPiA+PiA+PiA+ ID4+ICAgICAgICAqLw0KPiA+PiA+PiA+ID4+ICsgICAgIHsgImluNl9tdWx0aV9zeCIsICZsb2Nr X2NsYXNzX3N4IH0sDQo+ID4+ID4+ID4gPj4gICAgICAgeyAidWRwaW5wIiwgJmxvY2tfY2xhc3Nf cncgfSwNCj4gPj4gPj4gPiA+PiAtICAgICB7ICJpbjZfbXVsdGlfbXR4IiwgJmxvY2tfY2xhc3Nf bXR4X3NsZWVwIH0sDQo+ID4+ID4+ID4gPj4gKyAgICAgeyAiaW42X211bHRpX2xpc3RfbXR4Iiwg JmxvY2tfY2xhc3NfbXR4X3NsZWVwIH0sDQo+ID4+ID4+ID4gPj4gICAgICAgeyAibWxkX210eCIs ICZsb2NrX2NsYXNzX210eF9zbGVlcCB9LA0KPiA+PiA+PiA+ID4+ICsgICAgIHsgImlmbmV0X3J3 IiwgJmxvY2tfY2xhc3NfcncgfSwNCj4gPj4gPj4gPiA+PiAgICAgICB7ICJpZl9hZGRyX2xvY2si LCAmbG9ja19jbGFzc19ydyB9LA0KPiA+PiA+PiA+ID4+ICAgICAgIHsgTlVMTCwgTlVMTCB9LA0K PiA+PiA+PiA+ID4+ICAgICAgIC8qDQo+ID4+ID4+ID4gPj4NCj4gPj4gPj4gPiA+PiBNb2RpZmll ZDogaGVhZC9zeXMvbmV0L2lmLmMNCj4gPj4gPj4gPiA+PiA9PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0N Cj4gPj4gPj4gPiA+PiAtLS0gaGVhZC9zeXMvbmV0L2lmLmMgV2VkIE1heSAgMiAxNzo0MTowMCAy MDE4ICAgICAgICAocjMzMzE3NCkNCj4gPj4gPj4gPiA+PiArKysgaGVhZC9zeXMvbmV0L2lmLmMg V2VkIE1heSAgMiAxOTozNjoyOSAyMDE4ICAgICAgICAocjMzMzE3NSkNCj4gPj4gPj4gPiA+PiBA QCAtOTg1LDExICs5ODUsMTMgQEAgc3RhdGljIHZvaWQNCj4gPj4gPj4gPiA+PiAgaWZfcHVyZ2Vt YWRkcnMoc3RydWN0IGlmbmV0ICppZnApDQo+ID4+ID4+ID4gPj4gIHsNCj4gPj4gPj4gPiA+PiAg ICAgICBzdHJ1Y3QgaWZtdWx0aWFkZHIgKmlmbWE7DQo+ID4+ID4+ID4gPj4gLSAgICAgc3RydWN0 IGlmbXVsdGlhZGRyICpuZXh0Ow0KPiA+PiA+PiA+ID4+DQo+ID4+ID4+ID4gPj4gICAgICAgSUZf QUREUl9XTE9DSyhpZnApOw0KPiA+PiA+PiA+ID4+IC0gICAgIFRBSUxRX0ZPUkVBQ0hfU0FGRShp Zm1hLCAmaWZwLT5pZl9tdWx0aWFkZHJzLCBpZm1hX2xpbmssIG5leHQpDQo+ID4+ID4+ID4gPj4g KyAgICAgd2hpbGUgKCFUQUlMUV9FTVBUWSgmaWZwLT5pZl9tdWx0aWFkZHJzKSkgew0KPiA+PiA+ PiA+ID4+ICsgICAgICAgICAgICAgaWZtYSA9IFRBSUxRX0ZJUlNUKCZpZnAtPmlmX211bHRpYWRk cnMpOw0KPiA+PiA+PiA+ID4+ICsgICAgICAgICAgICAgVEFJTFFfUkVNT1ZFKCZpZnAtPmlmX211 bHRpYWRkcnMsIGlmbWEsIGlmbWFfbGluayk7DQo+ID4+ID4+ID4gPj4gICAgICAgICAgICAgICBp Zl9kZWxtdWx0aV9sb2NrZWQoaWZwLCBpZm1hLCAxKTsNCj4gPj4gPj4gPiA+PiArICAgICB9DQo+ ID4+ID4+ID4gPj4gICAgICAgSUZfQUREUl9XVU5MT0NLKGlmcCk7DQo+ID4+ID4+ID4gPj4gIH0N Cj4gPj4gPj4gPiA+Pg0KPiA+PiA+PiA+ID4+IEBAIC0zNDI5LDYgKzM0MzEsMTIgQEAgaWZfYWRk bXVsdGkoc3RydWN0IGlmbmV0ICppZnAsIHN0cnVjdCBzb2NrYWRkciAqc2EsDQo+ID4+ID4+ID4g Pj4gICAgICAgc3RydWN0IHNvY2thZGRyX2RsIHNkbDsNCj4gPj4gPj4gPiA+PiAgICAgICBpbnQg ZXJyb3I7DQo+ID4+ID4+ID4gPj4NCj4gPj4gPj4gPiA+PiArI2lmZGVmIElORVQNCj4gPj4gPj4g PiA+PiArICAgICBJTl9NVUxUSV9MSVNUX1VOTE9DS19BU1NFUlQoKTsNCj4gPj4gPj4gPiA+PiAr I2VuZGlmDQo+ID4+ID4+ID4gPj4gKyNpZmRlZiBJTkVUNg0KPiA+PiA+PiA+ID4+ICsgICAgIElO Nl9NVUxUSV9MSVNUX1VOTE9DS19BU1NFUlQoKTsNCj4gPj4gPj4gPiA+PiArI2VuZGlmDQo+ID4+ ID4+ID4gPj4gICAgICAgLyoNCj4gPj4gPj4gPiA+PiAgICAgICAgKiBJZiB0aGUgYWRkcmVzcyBp cyBhbHJlYWR5IHByZXNlbnQsIHJldHVybiBhIG5ldyByZWZlcmVuY2UgdG8gaXQ7DQo+ID4+ID4+ ID4gPj4gICAgICAgICogb3RoZXJ3aXNlLCBhbGxvY2F0ZSBzdG9yYWdlIGFuZCBzZXQgdXAgYSBu ZXcgYWRkcmVzcy4NCj4gPj4gPj4gPiA+PiBAQCAtMzYxMCw2ICszNjE4LDkgQEAgaWZfZGVsbXVs dGlfaWZtYShzdHJ1Y3QgaWZtdWx0aWFkZHIgKmlmbWEpDQo+ID4+ID4+ID4gPj4gICAgICAgc3Ry dWN0IGlmbmV0ICppZnA7DQo+ID4+ID4+ID4gPj4gICAgICAgaW50IGxhc3RyZWY7DQo+ID4+ID4+ ID4gPj4NCj4gPj4gPj4gPiA+PiArI2lmZGVmIElORVQNCj4gPj4gPj4gPiA+PiArICAgICBJTl9N VUxUSV9MSVNUX1VOTE9DS19BU1NFUlQoKTsNCj4gPj4gPj4gPiA+PiArI2VuZGlmDQo+ID4+ID4+ ID4gPj4gICAgICAgaWZwID0gaWZtYS0+aWZtYV9pZnA7DQo+ID4+ID4+ID4gPj4gICNpZmRlZiBE SUFHTk9TVElDDQo+ID4+ID4+ID4gPj4gICAgICAgaWYgKGlmcCA9PSBOVUxMKSB7DQo+ID4+ID4+ ID4gPj4gQEAgLTM3MTEsOCArMzcyMiw3IEBAIGlmX2RlbG11bHRpX2xvY2tlZChzdHJ1Y3QgaWZu ZXQgKmlmcCwgc3RydWN0IGlmbXVsdGlhZA0KPiA+PiA+PiA+ID4+ICAgICAgICAgICAgICAgICAg ICAgICBpZl9mcmVlbXVsdGkobGxfaWZtYSk7DQo+ID4+ID4+ID4gPj4gICAgICAgICAgICAgICB9 DQo+ID4+ID4+ID4gPj4gICAgICAgfQ0KPiA+PiA+PiA+ID4+IC0NCj4gPj4gPj4gPiA+PiAtICAg ICBpZiAoaWZwICE9IE5VTEwpDQo+ID4+ID4+ID4gPj4gKyAgICAgaWYgKGlmcCAhPSBOVUxMICYm IGRldGFjaGluZyA9PSAwKQ0KPiA+PiA+PiA+ID4+ICAgICAgICAgICAgICAgVEFJTFFfUkVNT1ZF KCZpZnAtPmlmX211bHRpYWRkcnMsIGlmbWEsIGlmbWFfbGluayk7DQo+ID4+ID4+ID4gPj4NCj4g Pj4gPj4gPiA+PiAgICAgICBpZl9mcmVlbXVsdGkoaWZtYSk7DQo+ID4+ID4+ID4gPj4NCj4gPj4g Pj4gPiA+PiBNb2RpZmllZDogaGVhZC9zeXMvbmV0aW5ldC9pZ21wLmMNCj4gPj4gPj4gPiA+PiA9 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT0NCj4gPj4gPj4gPiA+PiAtLS0gaGVhZC9zeXMvbmV0aW5ldC9p Z21wLmMgICBXZWQgTWF5ICAyIDE3OjQxOjAwIDIwMTggICAgICAgIChyMzMzMTc0KQ0KPiA+PiA+ PiA+ID4+ICsrKyBoZWFkL3N5cy9uZXRpbmV0L2lnbXAuYyAgIFdlZCBNYXkgIDIgMTk6MzY6Mjkg MjAxOCAgICAgICAgKHIzMzMxNzUpDQo+ID4+ID4+ID4gPj4gQEAgLTEzNiw3ICsxMzYsNyBAQCBz dGF0aWMgaW50ICAgICAgICBpZ21wX3YzX2VucXVldWVfZ3JvdXBfcmVjb3JkKHN0cnVjdA0KPiA+ PiA+PiA+ID4+IG1idWZxDQo+ID4+ID4+ID4gPj4gKiBzdHJ1Y3QgaW5fbXVsdGkgKiwgY29uc3Qg aW50LCBjb25zdCBpbnQsIGNvbnN0IGludCk7DQo+ID4+ID4+ID4gPj4gIHN0YXRpYyBpbnQgICBp Z21wX3YzX2VucXVldWVfZmlsdGVyX2NoYW5nZShzdHJ1Y3QgbWJ1ZnEgKiwNCj4gPj4gPj4gPiA+ PiAgICAgICAgICAgICAgICAgICBzdHJ1Y3QgaW5fbXVsdGkgKik7DQo+ID4+ID4+ID4gPj4gLXN0 YXRpYyB2b2lkICBpZ21wX3YzX3Byb2Nlc3NfZ3JvdXBfdGltZXJzKHN0cnVjdCBpZ21wX2lmc29m dGMgKiwNCj4gPj4gPj4gPiA+PiArc3RhdGljIHZvaWQgIGlnbXBfdjNfcHJvY2Vzc19ncm91cF90 aW1lcnMoc3RydWN0IGluX211bHRpX2hlYWQgKiwNCj4gPj4gPj4gPiA+PiAgICAgICAgICAgICAg ICAgICBzdHJ1Y3QgbWJ1ZnEgKiwgc3RydWN0IG1idWZxICosIHN0cnVjdCBpbl9tdWx0aSAqLA0K PiA+PiA+PiA+ID4+ICAgICAgICAgICAgICAgICAgIGNvbnN0IGludCk7DQo+ID4+ID4+ID4gPj4g IHN0YXRpYyBpbnQgICBpZ21wX3YzX21lcmdlX3N0YXRlX2NoYW5nZXMoc3RydWN0IGluX211bHRp ICosDQo+ID4+ID4+ID4gPj4gQEAgLTE2MiwxMiArMTYyLDEyIEBAIHN0YXRpYyBjb25zdCBzdHJ1 Y3QgbmV0aXNyX2hhbmRsZXIgaWdtcF9uaCA9IHsNCj4gPj4gPj4gPiA+PiAgICogdGhlbXNlbHZl cyBhcmUgbm90IHZpcnR1YWxpemVkLg0KPiA+PiA+PiA+ID4+ICAgKg0KPiA+PiA+PiA+ID4+ICAg KiBMb2NraW5nOg0KPiA+PiA+PiA+ID4+IC0gKiAgKiBUaGUgcGVybWl0dGVkIGxvY2sgb3JkZXIg aXM6IElOX01VTFRJX0xPQ0ssIElHTVBfTE9DSywgSUZfQUREUl9MT0NLLg0KPiA+PiA+PiA+ID4+ ICsgKiAgKiBUaGUgcGVybWl0dGVkIGxvY2sgb3JkZXIgaXM6IElOX01VTFRJX0xJU1RfTE9DSywg SUdNUF9MT0NLLA0KPiA+PiA+PiA+ID4+IElGX0FERFJfTE9DSy4NCj4gPj4gPj4gPiA+PiAgICog ICAgQW55IG1heSBiZSB0YWtlbiBpbmRlcGVuZGVudGx5OyBpZiBhbnkgYXJlIGhlbGQgYXQgdGhl IHNhbWUNCj4gPj4gPj4gPiA+PiAgICogICAgdGltZSwgdGhlIGFib3ZlIGxvY2sgb3JkZXIgbXVz dCBiZSBmb2xsb3dlZC4NCj4gPj4gPj4gPiA+PiAgICogICogQWxsIG91dHB1dCBpcyBkZWxlZ2F0 ZWQgdG8gdGhlIG5ldGlzci4NCj4gPj4gPj4gPiA+PiAgICogICAgTm93IHRoYXQgR2lhbnQgaGFz IGJlZW4gZWxpbWluYXRlZCwgdGhlIG5ldGlzciBtYXkgYmUgaW5saW5lZC4NCj4gPj4gPj4gPiA+ PiAtICogICogSU5fTVVMVElfTE9DSyBjb3ZlcnMgaW5fbXVsdGkuDQo+ID4+ID4+ID4gPj4gKyAq ICAqIElOX01VTFRJX0xJU1RfTE9DSyBjb3ZlcnMgaW5fbXVsdGkuDQo+ID4+ID4+ID4gPj4gICAq ICAqIElHTVBfTE9DSyBjb3ZlcnMgaWdtcF9pZnNvZnRjIGFuZCBhbnkgZ2xvYmFsIHZhcmlhYmxl cyBpbiB0aGlzIGZpbGUsDQo+ID4+ID4+ID4gPj4gICAqICAgIGluY2x1ZGluZyB0aGUgb3V0cHV0 IHF1ZXVlLg0KPiA+PiA+PiA+ID4+ICAgKiAgKiBJRl9BRERSX0xPQ0sgY292ZXJzIGlmX211bHRp YWRkcnMsIHdoaWNoIGlzIHVzZWQgZm9yIGEgdmFyaWV0eSBvZg0KPiA+PiA+PiA+ID4+IEBAIC00 NDEsNyArNDQxLDcgQEAgc3lzY3RsX2lnbXBfaWZpbmZvKFNZU0NUTF9IQU5ETEVSX0FSR1MpDQo+ ID4+ID4+ID4gPj4gICAgICAgaWYgKGVycm9yKQ0KPiA+PiA+PiA+ID4+ICAgICAgICAgICAgICAg cmV0dXJuIChlcnJvcik7DQo+ID4+ID4+ID4gPj4NCj4gPj4gPj4gPiA+PiAtICAgICBJTl9NVUxU SV9MT0NLKCk7DQo+ID4+ID4+ID4gPj4gKyAgICAgSU5fTVVMVElfTElTVF9MT0NLKCk7DQo+ID4+ ID4+ID4gPj4gICAgICAgSUdNUF9MT0NLKCk7DQo+ID4+ID4+ID4gPj4NCj4gPj4gPj4gPiA+PiAg ICAgICBpZiAobmFtZVswXSA8PSAwIHx8IG5hbWVbMF0gPiBWX2lmX2luZGV4KSB7DQo+ID4+ID4+ ID4gPj4gQEAgLTQ3NSw3ICs0NzUsNyBAQCBzeXNjdGxfaWdtcF9pZmluZm8oU1lTQ1RMX0hBTkRM RVJfQVJHUykNCj4gPj4gPj4gPiA+Pg0KPiA+PiA+PiA+ID4+ICBvdXRfbG9ja2VkOg0KPiA+PiA+ PiA+ID4+ICAgICAgIElHTVBfVU5MT0NLKCk7DQo+ID4+ID4+ID4gPj4gLSAgICAgSU5fTVVMVElf VU5MT0NLKCk7DQo+ID4+ID4+ID4gPj4gKyAgICAgSU5fTVVMVElfTElTVF9VTkxPQ0soKTsNCj4g Pj4gPj4gPiA+PiAgICAgICByZXR1cm4gKGVycm9yKTsNCj4gPj4gPj4gPiA+PiAgfQ0KPiA+PiA+ PiA+ID4+DQo+ID4+ID4+ID4gPj4gQEAgLTU4Niw3ICs1ODYsNiBAQCBpZ2lfYWxsb2NfbG9ja2Vk KC8qY29uc3QqLyBzdHJ1Y3QgaWZuZXQgKmlmcCkNCj4gPj4gPj4gPiA+PiAgICAgICBpZ2ktPmln aV9xaSA9IElHTVBfUUlfSU5JVDsNCj4gPj4gPj4gPiA+PiAgICAgICBpZ2ktPmlnaV9xcmkgPSBJ R01QX1FSSV9JTklUOw0KPiA+PiA+PiA+ID4+ICAgICAgIGlnaS0+aWdpX3VyaSA9IElHTVBfVVJJ X0lOSVQ7DQo+ID4+ID4+ID4gPj4gLSAgICAgU0xJU1RfSU5JVCgmaWdpLT5pZ2lfcmVsaW5taGVh ZCk7DQo+ID4+ID4+ID4gPj4gICAgICAgbWJ1ZnFfaW5pdCgmaWdpLT5pZ2lfZ3EsIElHTVBfTUFY X1JFU1BPTlNFX1BBQ0tFVFMpOw0KPiA+PiA+PiA+ID4+DQo+ID4+ID4+ID4gPj4gICAgICAgTElT VF9JTlNFUlRfSEVBRCgmVl9pZ2lfaGVhZCwgaWdpLCBpZ2lfbGluayk7DQo+ID4+ID4+ID4gPj4g QEAgLTYxMiwxMSArNjExLDEyIEBAIGlnbXBfaWZkZXRhY2goc3RydWN0IGlmbmV0ICppZnApDQo+ ID4+ID4+ID4gPj4gIHsNCj4gPj4gPj4gPiA+PiAgICAgICBzdHJ1Y3QgaWdtcF9pZnNvZnRjICAg ICAqaWdpOw0KPiA+PiA+PiA+ID4+ICAgICAgIHN0cnVjdCBpZm11bHRpYWRkciAgICAgICppZm1h Ow0KPiA+PiA+PiA+ID4+IC0gICAgIHN0cnVjdCBpbl9tdWx0aSAgICAgICAgICppbm0sICp0aW5t Ow0KPiA+PiA+PiA+ID4+IC0NCj4gPj4gPj4gPiA+PiArICAgICBzdHJ1Y3QgaW5fbXVsdGkgICAg ICAgICAqaW5tOw0KPiA+PiA+PiA+ID4+ICsgICAgIHN0cnVjdCBpbl9tdWx0aV9oZWFkIGlubV9m cmVlX3RtcDsNCj4gPj4gPj4gPiA+PiAgICAgICBDVFIzKEtUUl9JR01QVjMsICIlczogY2FsbGVk IGZvciBpZnAgJXAoJXMpIiwgX19mdW5jX18sIGlmcCwNCj4gPj4gPj4gPiA+PiAgICAgICAgICAg aWZwLT5pZl94bmFtZSk7DQo+ID4+ID4+ID4gPj4NCj4gPj4gPj4gPiA+PiArICAgICBTTElTVF9J TklUKCZpbm1fZnJlZV90bXApOw0KPiA+PiA+PiA+ID4+ICAgICAgIElHTVBfTE9DSygpOw0KPiA+ PiA+PiA+ID4+DQo+ID4+ID4+ID4gPj4gICAgICAgaWdpID0gKChzdHJ1Y3QgaW5faWZpbmZvICop aWZwLT5pZl9hZmRhdGFbQUZfSU5FVF0pLT5paV9pZ21wOw0KPiA+PiA+PiA+ID4+IEBAIC02MzEs MjQgKzYzMSwxNSBAQCBpZ21wX2lmZGV0YWNoKHN0cnVjdCBpZm5ldCAqaWZwKQ0KPiA+PiA+PiA+ ID4+ICAgICAgICAgICAgICAgICAgICAgICAgICAgKCIlczogaWZtYV9wcm90b3NwZWMgaXMgTlVM TCIsIF9fZnVuY19fKSk7DQo+ID4+ID4+ID4gPj4gICNlbmRpZg0KPiA+PiA+PiA+ID4+ICAgICAg ICAgICAgICAgICAgICAgICBpbm0gPSAoc3RydWN0IGluX211bHRpICopaWZtYS0+aWZtYV9wcm90 b3NwZWM7DQo+ID4+ID4+ID4gPj4gLSAgICAgICAgICAgICAgICAgICAgIGlmIChpbm0tPmlubV9z dGF0ZSA9PSBJR01QX0xFQVZJTkdfTUVNQkVSKSB7DQo+ID4+ID4+ID4gPj4gLSAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgU0xJU1RfSU5TRVJUX0hFQUQoJmlnaS0+aWdpX3JlbGlubWhlYWQs DQo+ID4+ID4+ID4gPj4gLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlubSwgaW5t X25yZWxlKTsNCj4gPj4gPj4gPiA+PiAtICAgICAgICAgICAgICAgICAgICAgfQ0KPiA+PiA+PiA+ ID4+ICsgICAgICAgICAgICAgICAgICAgICBpZiAoaW5tLT5pbm1fc3RhdGUgPT0gSUdNUF9MRUFW SU5HX01FTUJFUikNCj4gPj4gPj4gPiA+PiArICAgICAgICAgICAgICAgICAgICAgICAgICAgICBp bm1fcmVsZV9sb2NrZWQoJmlubV9mcmVlX3RtcCwgaW5tKTsNCj4gPj4gPj4gPiA+PiAgICAgICAg ICAgICAgICAgICAgICAgaW5tX2NsZWFyX3JlY29yZGVkKGlubSk7DQo+ID4+ID4+ID4gPj4gICAg ICAgICAgICAgICB9DQo+ID4+ID4+ID4gPj4gICAgICAgICAgICAgICBJRl9BRERSX1JVTkxPQ0so aWZwKTsNCj4gPj4gPj4gPiA+PiAtICAgICAgICAgICAgIC8qDQo+ID4+ID4+ID4gPj4gLSAgICAg ICAgICAgICAgKiBGcmVlIHRoZSBpbl9tdWx0aSByZWZlcmVuY2UocykgZm9yIHRoaXMgSUdNUCBs aWZlY3ljbGUuDQo+ID4+ID4+ID4gPj4gLSAgICAgICAgICAgICAgKi8NCj4gPj4gPj4gPiA+PiAt ICAgICAgICAgICAgIFNMSVNUX0ZPUkVBQ0hfU0FGRShpbm0sICZpZ2ktPmlnaV9yZWxpbm1oZWFk LCBpbm1fbnJlbGUsDQo+ID4+ID4+ID4gPj4gLSAgICAgICAgICAgICAgICAgdGlubSkgew0KPiA+ PiA+PiA+ID4+IC0gICAgICAgICAgICAgICAgICAgICBTTElTVF9SRU1PVkVfSEVBRCgmaWdpLT5p Z2lfcmVsaW5taGVhZCwgaW5tX25yZWxlKTsNCj4gPj4gPj4gPiA+PiAtICAgICAgICAgICAgICAg ICAgICAgaW5tX3JlbGVhc2VfbG9ja2VkKGlubSk7DQo+ID4+ID4+ID4gPj4gLSAgICAgICAgICAg ICB9DQo+ID4+ID4+ID4gPj4gKyAgICAgICAgICAgICBpbm1fcmVsZWFzZV9saXN0X2RlZmVycmVk KCZpbm1fZnJlZV90bXApOw0KPiA+PiA+PiA+ID4+ICAgICAgIH0NCj4gPj4gPj4gPiA+PiAtDQo+ ID4+ID4+ID4gPj4gICAgICAgSUdNUF9VTkxPQ0soKTsNCj4gPj4gPj4gPiA+PiArDQo+ID4+ID4+ ID4gPj4gIH0NCj4gPj4gPj4gPiA+Pg0KPiA+PiA+PiA+ID4+ICAvKg0KPiA+PiA+PiA+ID4+IEBA IC02ODQsMTEgKzY3NSw2IEBAIGlnaV9kZWxldGVfbG9ja2VkKGNvbnN0IHN0cnVjdCBpZm5ldCAq aWZwKQ0KPiA+PiA+PiA+ID4+ICAgICAgICAgICAgICAgICAgICAgICBtYnVmcV9kcmFpbigmaWdp LT5pZ2lfZ3EpOw0KPiA+PiA+PiA+ID4+DQo+ID4+ID4+ID4gPj4gICAgICAgICAgICAgICAgICAg ICAgIExJU1RfUkVNT1ZFKGlnaSwgaWdpX2xpbmspOw0KPiA+PiA+PiA+ID4+IC0NCj4gPj4gPj4g PiA+PiAtICAgICAgICAgICAgICAgICAgICAgS0FTU0VSVChTTElTVF9FTVBUWSgmaWdpLT5pZ2lf cmVsaW5taGVhZCksDQo+ID4+ID4+ID4gPj4gLSAgICAgICAgICAgICAgICAgICAgICAgICAoIiVz OiB0aGVyZSBhcmUgZGFuZ2xpbmcgaW5fbXVsdGkgcmVmZXJlbmNlcyIsDQo+ID4+ID4+ID4gPj4g LSAgICAgICAgICAgICAgICAgICAgICAgICBfX2Z1bmNfXykpOw0KPiA+PiA+PiA+ID4+IC0NCj4g Pj4gPj4gPiA+PiAgICAgICAgICAgICAgICAgICAgICAgZnJlZShpZ2ksIE1fSUdNUCk7DQo+ID4+ ID4+ID4gPj4gICAgICAgICAgICAgICAgICAgICAgIHJldHVybjsNCj4gPj4gPj4gPiA+PiAgICAg ICAgICAgICAgIH0NCj4gPj4gPj4gPiA+PiBAQCAtNzIyLDcgKzcwOCw3IEBAIGlnbXBfaW5wdXRf djFfcXVlcnkoc3RydWN0IGlmbmV0ICppZnAsIGNvbnN0IHN0cnVjdCBpcA0KPiA+PiA+PiA+ID4+ ICAgICAgIH0NCj4gPj4gPj4gPiA+PiAgICAgICBJR01QU1RBVF9JTkMoaWdwc19yY3ZfZ2VuX3F1 ZXJpZXMpOw0KPiA+PiA+PiA+ID4+DQo+ID4+ID4+ID4gPj4gLSAgICAgSU5fTVVMVElfTE9DSygp Ow0KPiA+PiA+PiA+ID4+ICsgICAgIElOX01VTFRJX0xJU1RfTE9DSygpOw0KPiA+PiA+PiA+ID4+ ICAgICAgIElHTVBfTE9DSygpOw0KPiA+PiA+PiA+ID4+DQo+ID4+ID4+ID4gPj4gICAgICAgaWdp ID0gKChzdHJ1Y3QgaW5faWZpbmZvICopaWZwLT5pZl9hZmRhdGFbQUZfSU5FVF0pLT5paV9pZ21w Ow0KPiA+PiA+PiA+ID4+IEBAIC03NzgsNyArNzY0LDcgQEAgaWdtcF9pbnB1dF92MV9xdWVyeShz dHJ1Y3QgaWZuZXQgKmlmcCwgY29uc3Qgc3RydWN0IGlwDQo+ID4+ID4+ID4gPj4NCj4gPj4gPj4g PiA+PiAgb3V0X2xvY2tlZDoNCj4gPj4gPj4gPiA+PiAgICAgICBJR01QX1VOTE9DSygpOw0KPiA+ PiA+PiA+ID4+IC0gICAgIElOX01VTFRJX1VOTE9DSygpOw0KPiA+PiA+PiA+ID4+ICsgICAgIElO X01VTFRJX0xJU1RfVU5MT0NLKCk7DQo+ID4+ID4+ID4gPj4NCj4gPj4gPj4gPiA+PiAgICAgICBy ZXR1cm4gKDApOw0KPiA+PiA+PiA+ID4+ICB9DQo+ID4+ID4+ID4gPj4gQEAgLTgxNiw3ICs4MDIs NyBAQCBpZ21wX2lucHV0X3YyX3F1ZXJ5KHN0cnVjdCBpZm5ldCAqaWZwLCBjb25zdCBzdHJ1Y3Qg aXANCj4gPj4gPj4gPiA+PiAgICAgICAgICAgICAgIElHTVBTVEFUX0lOQyhpZ3BzX3Jjdl9ncm91 cF9xdWVyaWVzKTsNCj4gPj4gPj4gPiA+PiAgICAgICB9DQo+ID4+ID4+ID4gPj4NCj4gPj4gPj4g PiA+PiAtICAgICBJTl9NVUxUSV9MT0NLKCk7DQo+ID4+ID4+ID4gPj4gKyAgICAgSU5fTVVMVElf TElTVF9MT0NLKCk7DQo+ID4+ID4+ID4gPj4gICAgICAgSUdNUF9MT0NLKCk7DQo+ID4+ID4+ID4g Pj4NCj4gPj4gPj4gPiA+PiAgICAgICBpZ2kgPSAoKHN0cnVjdCBpbl9pZmluZm8gKilpZnAtPmlm X2FmZGF0YVtBRl9JTkVUXSktPmlpX2lnbXA7DQo+ID4+ID4+ID4gPj4gQEAgLTg3Miw3ICs4NTgs NyBAQCBpZ21wX2lucHV0X3YyX3F1ZXJ5KHN0cnVjdCBpZm5ldCAqaWZwLCBjb25zdCBzdHJ1Y3Qg aXANCj4gPj4gPj4gPiA+Pg0KPiA+PiA+PiA+ID4+ICBvdXRfbG9ja2VkOg0KPiA+PiA+PiA+ID4+ ICAgICAgIElHTVBfVU5MT0NLKCk7DQo+ID4+ID4+ID4gPj4gLSAgICAgSU5fTVVMVElfVU5MT0NL KCk7DQo+ID4+ID4+ID4gPj4gKyAgICAgSU5fTVVMVElfTElTVF9VTkxPQ0soKTsNCj4gPj4gPj4g PiA+Pg0KPiA+PiA+PiA+ID4+ICAgICAgIHJldHVybiAoMCk7DQo+ID4+ID4+ID4gPj4gIH0NCj4g Pj4gPj4gPiA+PiBAQCAtODk5LDcgKzg4NSw3IEBAIGlnbXBfdjJfdXBkYXRlX2dyb3VwKHN0cnVj dCBpbl9tdWx0aSAqaW5tLCBjb25zdCBpbnQgdA0KPiA+PiA+PiA+ID4+ICAgICAgIENUUjQoS1RS X0lHTVBWMywgIjB4JTA4eDogJXMvJXMgdGltZXI9JWQiLCBfX2Z1bmNfXywNCj4gPj4gPj4gPiA+ PiAgICAgICAgICAgbnRvaGwoaW5tLT5pbm1fYWRkci5zX2FkZHIpLCBpbm0tPmlubV9pZnAtPmlm X3huYW1lLCB0aW1lcik7DQo+ID4+ID4+ID4gPj4NCj4gPj4gPj4gPiA+PiAtICAgICBJTl9NVUxU SV9MT0NLX0FTU0VSVCgpOw0KPiA+PiA+PiA+ID4+ICsgICAgIElOX01VTFRJX0xJU1RfTE9DS19B U1NFUlQoKTsNCj4gPj4gPj4gPiA+Pg0KPiA+PiA+PiA+ID4+ICAgICAgIHN3aXRjaCAoaW5tLT5p bm1fc3RhdGUpIHsNCj4gPj4gPj4gPiA+PiAgICAgICBjYXNlIElHTVBfTk9UX01FTUJFUjoNCj4g Pj4gPj4gPiA+PiBAQCAtMTAxMSw3ICs5OTcsNyBAQCBpZ21wX2lucHV0X3YzX3F1ZXJ5KHN0cnVj dCBpZm5ldCAqaWZwLCBjb25zdCBzdHJ1Y3QgaXANCj4gPj4gPj4gPiA+PiAgICAgICAgICAgICAg ICAgICAgICAgSUdNUFNUQVRfSU5DKGlncHNfcmN2X2dzcl9xdWVyaWVzKTsNCj4gPj4gPj4gPiA+ PiAgICAgICB9DQo+ID4+ID4+ID4gPj4NCj4gPj4gPj4gPiA+PiAtICAgICBJTl9NVUxUSV9MT0NL KCk7DQo+ID4+ID4+ID4gPj4gKyAgICAgSU5fTVVMVElfTElTVF9MT0NLKCk7DQo+ID4+ID4+ID4g Pj4gICAgICAgSUdNUF9MT0NLKCk7DQo+ID4+ID4+ID4gPj4NCj4gPj4gPj4gPiA+PiAgICAgICBp Z2kgPSAoKHN0cnVjdCBpbl9pZmluZm8gKilpZnAtPmlmX2FmZGF0YVtBRl9JTkVUXSktPmlpX2ln bXA7DQo+ID4+ID4+ID4gPj4gQEAgLTEwOTIsNyArMTA3OCw3IEBAIGlnbXBfaW5wdXRfdjNfcXVl cnkoc3RydWN0IGlmbmV0ICppZnAsIGNvbnN0IHN0cnVjdCBpcA0KPiA+PiA+PiA+ID4+DQo+ID4+ ID4+ID4gPj4gIG91dF9sb2NrZWQ6DQo+ID4+ID4+ID4gPj4gICAgICAgSUdNUF9VTkxPQ0soKTsN Cj4gPj4gPj4gPiA+PiAtICAgICBJTl9NVUxUSV9VTkxPQ0soKTsNCj4gPj4gPj4gPiA+PiArICAg ICBJTl9NVUxUSV9MSVNUX1VOTE9DSygpOw0KPiA+PiA+PiA+ID4+DQo+ID4+ID4+ID4gPj4gICAg ICAgcmV0dXJuICgwKTsNCj4gPj4gPj4gPiA+PiAgfQ0KPiA+PiA+PiA+ID4+IEBAIC0xMTA5LDcg KzEwOTUsNyBAQCBpZ21wX2lucHV0X3YzX2dyb3VwX3F1ZXJ5KHN0cnVjdCBpbl9tdWx0aSAqaW5t LCBzdHJ1Y3QNCj4gPj4gPj4gPiA+PiAgICAgICBpbnQgICAgICAgICAgICAgICAgICAgICAgcmV0 dmFsOw0KPiA+PiA+PiA+ID4+ICAgICAgIHVpbnQxNl90ICAgICAgICAgICAgICAgICBuc3JjOw0K PiA+PiA+PiA+ID4+DQo+ID4+ID4+ID4gPj4gLSAgICAgSU5fTVVMVElfTE9DS19BU1NFUlQoKTsN Cj4gPj4gPj4gPiA+PiArICAgICBJTl9NVUxUSV9MSVNUX0xPQ0tfQVNTRVJUKCk7DQo+ID4+ID4+ ID4gPj4gICAgICAgSUdNUF9MT0NLX0FTU0VSVCgpOw0KPiA+PiA+PiA+ID4+DQo+ID4+ID4+ID4g Pj4gICAgICAgcmV0dmFsID0gMDsNCj4gPj4gPj4gPiA+PiBAQCAtMTI0Niw3ICsxMjMyLDcgQEAg aWdtcF9pbnB1dF92MV9yZXBvcnQoc3RydWN0IGlmbmV0ICppZnAsIC8qY29uc3QqLyBzdHJ1DQo+ ID4+ID4+ID4gPj4gICAgICAgICogSWYgd2UgYXJlIGEgbWVtYmVyIG9mIHRoaXMgZ3JvdXAsIGFu ZCBvdXIgbWVtYmVyc2hpcCBzaG91bGQgYmUNCj4gPj4gPj4gPiA+PiAgICAgICAgKiByZXBvcnRl ZCwgc3RvcCBvdXIgZ3JvdXAgdGltZXIgYW5kIHRyYW5zaXRpb24gdG8gdGhlICdsYXp5JyBzdGF0 ZS4NCj4gPj4gPj4gPiA+PiAgICAgICAgKi8NCj4gPj4gPj4gPiA+PiAtICAgICBJTl9NVUxUSV9M T0NLKCk7DQo+ID4+ID4+ID4gPj4gKyAgICAgSU5fTVVMVElfTElTVF9MT0NLKCk7DQo+ID4+ID4+ ID4gPj4gICAgICAgaW5tID0gaW5tX2xvb2t1cChpZnAsIGlnbXAtPmlnbXBfZ3JvdXApOw0KPiA+ PiA+PiA+ID4+ICAgICAgIGlmIChpbm0gIT0gTlVMTCkgew0KPiA+PiA+PiA+ID4+ICAgICAgICAg ICAgICAgc3RydWN0IGlnbXBfaWZzb2Z0YyAqaWdpOw0KPiA+PiA+PiA+ID4+IEBAIC0xMzA1LDcg KzEyOTEsNyBAQCBpZ21wX2lucHV0X3YxX3JlcG9ydChzdHJ1Y3QgaWZuZXQgKmlmcCwgLypjb25z dCovIHN0cnUNCj4gPj4gPj4gPiA+PiAgICAgICB9DQo+ID4+ID4+ID4gPj4NCj4gPj4gPj4gPiA+ PiAgb3V0X2xvY2tlZDoNCj4gPj4gPj4gPiA+PiAtICAgICBJTl9NVUxUSV9VTkxPQ0soKTsNCj4g Pj4gPj4gPiA+PiArICAgICBJTl9NVUxUSV9MSVNUX1VOTE9DSygpOw0KPiA+PiA+PiA+ID4+DQo+ ID4+ID4+ID4gPj4gICAgICAgcmV0dXJuICgwKTsNCj4gPj4gPj4gPiA+PiAgfQ0KPiA+PiA+PiA+ ID4+IEBAIC0xMzczLDcgKzEzNTksNyBAQCBpZ21wX2lucHV0X3YyX3JlcG9ydChzdHJ1Y3QgaWZu ZXQgKmlmcCwgLypjb25zdCovIHN0cnUNCj4gPj4gPj4gPiA+PiAgICAgICAgKiByZXBvcnRlZCwg YW5kIG91ciBncm91cCB0aW1lciBpcyBwZW5kaW5nIG9yIGFib3V0IHRvIGJlIHJlc2V0LA0KPiA+ PiA+PiA+ID4+ICAgICAgICAqIHN0b3Agb3VyIGdyb3VwIHRpbWVyIGJ5IHRyYW5zaXRpb25pbmcg dG8gdGhlICdsYXp5JyBzdGF0ZS4NCj4gPj4gPj4gPiA+PiAgICAgICAgKi8NCj4gPj4gPj4gPiA+ PiAtICAgICBJTl9NVUxUSV9MT0NLKCk7DQo+ID4+ID4+ID4gPj4gKyAgICAgSU5fTVVMVElfTElT VF9MT0NLKCk7DQo+ID4+ID4+ID4gPj4gICAgICAgaW5tID0gaW5tX2xvb2t1cChpZnAsIGlnbXAt PmlnbXBfZ3JvdXApOw0KPiA+PiA+PiA+ID4+ICAgICAgIGlmIChpbm0gIT0gTlVMTCkgew0KPiA+ PiA+PiA+ID4+ICAgICAgICAgICAgICAgc3RydWN0IGlnbXBfaWZzb2Z0YyAqaWdpOw0KPiA+PiA+ PiA+ID4+IEBAIC0xNDE4LDcgKzE0MDQsNyBAQCBpZ21wX2lucHV0X3YyX3JlcG9ydChzdHJ1Y3Qg aWZuZXQgKmlmcCwgLypjb25zdCovIHN0cnUNCj4gPj4gPj4gPiA+PiAgICAgICB9DQo+ID4+ID4+ ID4gPj4NCj4gPj4gPj4gPiA+PiAgb3V0X2xvY2tlZDoNCj4gPj4gPj4gPiA+PiAtICAgICBJTl9N VUxUSV9VTkxPQ0soKTsNCj4gPj4gPj4gPiA+PiArICAgICBJTl9NVUxUSV9MSVNUX1VOTE9DSygp Ow0KPiA+PiA+PiA+ID4+DQo+ID4+ID4+ID4gPj4gICAgICAgcmV0dXJuICgwKTsNCj4gPj4gPj4g PiA+PiAgfQ0KPiA+PiA+PiA+ID4+IEBAIC0xNjQ3LDYgKzE2MzMsNyBAQCBpZ21wX2Zhc3R0aW1v X3ZuZXQodm9pZCkNCj4gPj4gPj4gPiA+PiAgICAgICBzdHJ1Y3QgaWdtcF9pZnNvZnRjICAgICAq aWdpOw0KPiA+PiA+PiA+ID4+ICAgICAgIHN0cnVjdCBpZm11bHRpYWRkciAgICAgICppZm1hOw0K PiA+PiA+PiA+ID4+ICAgICAgIHN0cnVjdCBpbl9tdWx0aSAgICAgICAgICppbm07DQo+ID4+ID4+ ID4gPj4gKyAgICAgc3RydWN0IGluX211bHRpX2hlYWQgaW5tX2ZyZWVfdG1wOw0KPiA+PiA+PiA+ ID4+ICAgICAgIGludCAgICAgICAgICAgICAgICAgICAgICBsb29wLCB1cmlfZmFzdGh6Ow0KPiA+ PiA+PiA+ID4+DQo+ID4+ID4+ID4gPj4gICAgICAgbG9vcCA9IDA7DQo+ID4+ID4+ID4gPj4gQEAg LTE2NjIsNyArMTY0OSw4IEBAIGlnbXBfZmFzdHRpbW9fdm5ldCh2b2lkKQ0KPiA+PiA+PiA+ID4+ ICAgICAgICAgICAhVl9zdGF0ZV9jaGFuZ2VfdGltZXJzX3J1bm5pbmcpDQo+ID4+ID4+ID4gPj4g ICAgICAgICAgICAgICByZXR1cm47DQo+ID4+ID4+ID4gPj4NCj4gPj4gPj4gPiA+PiAtICAgICBJ Tl9NVUxUSV9MT0NLKCk7DQo+ID4+ID4+ID4gPj4gKyAgICAgU0xJU1RfSU5JVCgmaW5tX2ZyZWVf dG1wKTsNCj4gPj4gPj4gPiA+PiArICAgICBJTl9NVUxUSV9MSVNUX0xPQ0soKTsNCj4gPj4gPj4g PiA+PiAgICAgICBJR01QX0xPQ0soKTsNCj4gPj4gPj4gPiA+Pg0KPiA+PiA+PiA+ID4+ICAgICAg IC8qDQo+ID4+ID4+ID4gPj4gQEAgLTE3MjAsNyArMTcwOCw3IEBAIGlnbXBfZmFzdHRpbW9fdm5l dCh2b2lkKQ0KPiA+PiA+PiA+ID4+ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBp Z2ktPmlnaV92ZXJzaW9uKTsNCj4gPj4gPj4gPiA+PiAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICBicmVhazsNCj4gPj4gPj4gPiA+PiAgICAgICAgICAgICAgICAgICAgICAgY2FzZSBJR01Q X1ZFUlNJT05fMzoNCj4gPj4gPj4gPiA+PiAtICAgICAgICAgICAgICAgICAgICAgICAgICAgICBp Z21wX3YzX3Byb2Nlc3NfZ3JvdXBfdGltZXJzKGlnaSwgJnFycSwNCj4gPj4gPj4gPiA+PiArICAg ICAgICAgICAgICAgICAgICAgICAgICAgICBpZ21wX3YzX3Byb2Nlc3NfZ3JvdXBfdGltZXJzKCZp bm1fZnJlZV90bXAsDQo+ID4+ID4+ID4gPj4gJnFycSwgJnNjcSwgaW5tLCB1cmlfZmFzdGh6KTsN Cj4gPj4gPj4gPiA+PiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBicmVhazsNCj4gPj4g Pj4gPiA+PiAgICAgICAgICAgICAgICAgICAgICAgfQ0KPiA+PiA+PiA+ID4+IEBAIC0xNzI4LDgg KzE3MTYsNiBAQCBpZ21wX2Zhc3R0aW1vX3ZuZXQodm9pZCkNCj4gPj4gPj4gPiA+PiAgICAgICAg ICAgICAgIElGX0FERFJfUlVOTE9DSyhpZnApOw0KPiA+PiA+PiA+ID4+DQo+ID4+ID4+ID4gPj4g ICAgICAgICAgICAgICBpZiAoaWdpLT5pZ2lfdmVyc2lvbiA9PSBJR01QX1ZFUlNJT05fMykgew0K PiA+PiA+PiA+ID4+IC0gICAgICAgICAgICAgICAgICAgICBzdHJ1Y3QgaW5fbXVsdGkgICAgICAg ICAqdGlubTsNCj4gPj4gPj4gPiA+PiAtDQo+ID4+ID4+ID4gPj4gICAgICAgICAgICAgICAgICAg ICAgIGlnbXBfZGlzcGF0Y2hfcXVldWUoJnFycSwgMCwgbG9vcCk7DQo+ID4+ID4+ID4gPj4gICAg ICAgICAgICAgICAgICAgICAgIGlnbXBfZGlzcGF0Y2hfcXVldWUoJnNjcSwgMCwgbG9vcCk7DQo+ ID4+ID4+ID4gPj4NCj4gPj4gPj4gPiA+PiBAQCAtMTczNywxOCArMTcyMywxMyBAQCBpZ21wX2Zh c3R0aW1vX3ZuZXQodm9pZCkNCj4gPj4gPj4gPiA+PiAgICAgICAgICAgICAgICAgICAgICAgICog RnJlZSB0aGUgaW5fbXVsdGkgcmVmZXJlbmNlKHMpIGZvciB0aGlzDQo+ID4+ID4+ID4gPj4gICAg ICAgICAgICAgICAgICAgICAgICAqIElHTVAgbGlmZWN5Y2xlLg0KPiA+PiA+PiA+ID4+ICAgICAg ICAgICAgICAgICAgICAgICAgKi8NCj4gPj4gPj4gPiA+PiAtICAgICAgICAgICAgICAgICAgICAg U0xJU1RfRk9SRUFDSF9TQUZFKGlubSwgJmlnaS0+aWdpX3JlbGlubWhlYWQsDQo+ID4+ID4+ID4g Pj4gLSAgICAgICAgICAgICAgICAgICAgICAgICBpbm1fbnJlbGUsIHRpbm0pIHsNCj4gPj4gPj4g PiA+PiAtICAgICAgICAgICAgICAgICAgICAgICAgICAgICBTTElTVF9SRU1PVkVfSEVBRCgmaWdp LT5pZ2lfcmVsaW5taGVhZCwNCj4gPj4gPj4gPiA+PiAtICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgaW5tX25yZWxlKTsNCj4gPj4gPj4gPiA+PiAtICAgICAgICAgICAgICAgICAgICAg ICAgICAgICBpbm1fcmVsZWFzZV9sb2NrZWQoaW5tKTsNCj4gPj4gPj4gPiA+PiAtICAgICAgICAg ICAgICAgICAgICAgfQ0KPiA+PiA+PiA+ID4+ICsgICAgICAgICAgICAgICAgICAgICBpbm1fcmVs ZWFzZV9saXN0X2RlZmVycmVkKCZpbm1fZnJlZV90bXApOw0KPiA+PiA+PiA+ID4+ICAgICAgICAg ICAgICAgfQ0KPiA+PiA+PiA+ID4+ICAgICAgIH0NCj4gPj4gPj4gPiA+Pg0KPiA+PiA+PiA+ID4+ ICBvdXRfbG9ja2VkOg0KPiA+PiA+PiA+ID4+ICAgICAgIElHTVBfVU5MT0NLKCk7DQo+ID4+ID4+ ID4gPj4gLSAgICAgSU5fTVVMVElfVU5MT0NLKCk7DQo+ID4+ID4+ID4gPj4gKyAgICAgSU5fTVVM VElfTElTVF9VTkxPQ0soKTsNCj4gPj4gPj4gPiA+PiAgfQ0KPiA+PiA+PiA+ID4+DQo+ID4+ID4+ ID4gPj4gIC8qDQo+ID4+ID4+ID4gPj4gQEAgLTE3NjAsNyArMTc0MSw3IEBAIGlnbXBfdjF2Ml9w cm9jZXNzX2dyb3VwX3RpbWVyKHN0cnVjdCBpbl9tdWx0aSAqaW5tLCBjbw0KPiA+PiA+PiA+ID4+ ICB7DQo+ID4+ID4+ID4gPj4gICAgICAgaW50IHJlcG9ydF90aW1lcl9leHBpcmVkOw0KPiA+PiA+ PiA+ID4+DQo+ID4+ID4+ID4gPj4gLSAgICAgSU5fTVVMVElfTE9DS19BU1NFUlQoKTsNCj4gPj4g Pj4gPiA+PiArICAgICBJTl9NVUxUSV9MSVNUX0xPQ0tfQVNTRVJUKCk7DQo+ID4+ID4+ID4gPj4g ICAgICAgSUdNUF9MT0NLX0FTU0VSVCgpOw0KPiA+PiA+PiA+ID4+DQo+ID4+ID4+ID4gPj4gICAg ICAgaWYgKGlubS0+aW5tX3RpbWVyID09IDApIHsNCj4gPj4gPj4gPiA+PiBAQCAtMTgwMiwxNCAr MTc4MywxNCBAQCBpZ21wX3YxdjJfcHJvY2Vzc19ncm91cF90aW1lcihzdHJ1Y3QgaW5fbXVsdGkg KmlubSwNCj4gPj4gPj4gPiA+PiBjbw0KPiA+PiA+PiA+ID4+ICAgKiBOb3RlOiBVbmxvY2tlZCBy ZWFkIGZyb20gaWdpLg0KPiA+PiA+PiA+ID4+ICAgKi8NCj4gPj4gPj4gPiA+PiAgc3RhdGljIHZv aWQNCj4gPj4gPj4gPiA+PiAtaWdtcF92M19wcm9jZXNzX2dyb3VwX3RpbWVycyhzdHJ1Y3QgaWdt cF9pZnNvZnRjICppZ2ksDQo+ID4+ID4+ID4gPj4gK2lnbXBfdjNfcHJvY2Vzc19ncm91cF90aW1l cnMoc3RydWN0IGluX211bHRpX2hlYWQgKmlubWgsDQo+ID4+ID4+ID4gPj4gICAgICBzdHJ1Y3Qg bWJ1ZnEgKnFycSwgc3RydWN0IG1idWZxICpzY3EsDQo+ID4+ID4+ID4gPj4gICAgICBzdHJ1Y3Qg aW5fbXVsdGkgKmlubSwgY29uc3QgaW50IHVyaV9mYXN0aHopDQo+ID4+ID4+ID4gPj4gIHsNCj4g Pj4gPj4gPiA+PiAgICAgICBpbnQgcXVlcnlfcmVzcG9uc2VfdGltZXJfZXhwaXJlZDsNCj4gPj4g Pj4gPiA+PiAgICAgICBpbnQgc3RhdGVfY2hhbmdlX3JldHJhbnNtaXRfdGltZXJfZXhwaXJlZDsN Cj4gPj4gPj4gPiA+Pg0KPiA+PiA+PiA+ID4+IC0gICAgIElOX01VTFRJX0xPQ0tfQVNTRVJUKCk7 DQo+ID4+ID4+ID4gPj4gKyAgICAgSU5fTVVMVElfTElTVF9MT0NLX0FTU0VSVCgpOw0KPiA+PiA+ PiA+ID4+ICAgICAgIElHTVBfTE9DS19BU1NFUlQoKTsNCj4gPj4gPj4gPiA+Pg0KPiA+PiA+PiA+ ID4+ICAgICAgIHF1ZXJ5X3Jlc3BvbnNlX3RpbWVyX2V4cGlyZWQgPSAwOw0KPiA+PiA+PiA+ID4+ IEBAIC0xOTA3LDggKzE4ODgsNyBAQCBpZ21wX3YzX3Byb2Nlc3NfZ3JvdXBfdGltZXJzKHN0cnVj dCBpZ21wX2lmc29mdGMgKmlnaSwNCj4gPj4gPj4gPiA+PiAgICAgICAgICAgICAgICAgICAgICAg aWYgKGlubS0+aW5tX3N0YXRlID09IElHTVBfTEVBVklOR19NRU1CRVIgJiYNCj4gPj4gPj4gPiA+ PiAgICAgICAgICAgICAgICAgICAgICAgICAgIGlubS0+aW5tX3NjcnYgPT0gMCkgew0KPiA+PiA+ PiA+ID4+ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlubS0+aW5tX3N0YXRlID0gSUdN UF9OT1RfTUVNQkVSOw0KPiA+PiA+PiA+ID4+IC0gICAgICAgICAgICAgICAgICAgICAgICAgICAg IFNMSVNUX0lOU0VSVF9IRUFEKCZpZ2ktPmlnaV9yZWxpbm1oZWFkLA0KPiA+PiA+PiA+ID4+IC0g ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbm0sIGlubV9ucmVsZSk7DQo+ID4+ID4+ ID4gPj4gKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW5tX3JlbGVfbG9ja2VkKGlubWgs IGlubSk7DQo+ID4+ID4+ID4gPj4gICAgICAgICAgICAgICAgICAgICAgIH0NCj4gPj4gPj4gPiA+ PiAgICAgICAgICAgICAgIH0NCj4gPj4gPj4gPiA+PiAgICAgICAgICAgICAgIGJyZWFrOw0KPiA+ PiA+PiA+ID4+IEBAIC0xOTI5LDcgKzE5MDksNyBAQCBzdGF0aWMgdm9pZA0KPiA+PiA+PiA+ID4+ ICBpZ21wX3YzX3N1cHByZXNzX2dyb3VwX3JlY29yZChzdHJ1Y3QgaW5fbXVsdGkgKmlubSkNCj4g Pj4gPj4gPiA+PiAgew0KPiA+PiA+PiA+ID4+DQo+ID4+ID4+ID4gPj4gLSAgICAgSU5fTVVMVElf TE9DS19BU1NFUlQoKTsNCj4gPj4gPj4gPiA+PiArICAgICBJTl9NVUxUSV9MSVNUX0xPQ0tfQVNT RVJUKCk7DQo+ID4+ID4+ID4gPj4NCj4gPj4gPj4gPiA+PiAgICAgICBLQVNTRVJUKGlubS0+aW5t X2lnaS0+aWdpX3ZlcnNpb24gPT0gSUdNUF9WRVJTSU9OXzMsDQo+ID4+ID4+ID4gPj4gICAgICAg ICAgICAgICAoIiVzOiBub3QgSUdNUHYzIG1vZGUgb24gbGluayIsIF9fZnVuY19fKSk7DQo+ID4+ ID4+ID4gPj4gQEAgLTIwMDMsMTMgKzE5ODMsMTUgQEAgaWdtcF92M19jYW5jZWxfbGlua190aW1l cnMoc3RydWN0IGlnbXBfaWZzb2Z0YyAqaWdpKQ0KPiA+PiA+PiA+ID4+ICB7DQo+ID4+ID4+ID4g Pj4gICAgICAgc3RydWN0IGlmbXVsdGlhZGRyICAgICAgKmlmbWE7DQo+ID4+ID4+ID4gPj4gICAg ICAgc3RydWN0IGlmbmV0ICAgICAgICAgICAgKmlmcDsNCj4gPj4gPj4gPiA+PiAtICAgICBzdHJ1 Y3QgaW5fbXVsdGkgICAgICAgICAqaW5tLCAqdGlubTsNCj4gPj4gPj4gPiA+PiArICAgICBzdHJ1 Y3QgaW5fbXVsdGkgICAgICAgICAqaW5tOw0KPiA+PiA+PiA+ID4+ICsgICAgIHN0cnVjdCBpbl9t dWx0aV9oZWFkIGlubV9mcmVlX3RtcDsNCj4gPj4gPj4gPiA+Pg0KPiA+PiA+PiA+ID4+ICAgICAg IENUUjMoS1RSX0lHTVBWMywgIiVzOiBjYW5jZWwgdjMgdGltZXJzIG9uIGlmcCAlcCglcykiLCBf X2Z1bmNfXywNCj4gPj4gPj4gPiA+PiAgICAgICAgICAgaWdpLT5pZ2lfaWZwLCBpZ2ktPmlnaV9p ZnAtPmlmX3huYW1lKTsNCj4gPj4gPj4gPiA+Pg0KPiA+PiA+PiA+ID4+IC0gICAgIElOX01VTFRJ X0xPQ0tfQVNTRVJUKCk7DQo+ID4+ID4+ID4gPj4gKyAgICAgSU5fTVVMVElfTElTVF9MT0NLX0FT U0VSVCgpOw0KPiA+PiA+PiA+ID4+ICAgICAgIElHTVBfTE9DS19BU1NFUlQoKTsNCj4gPj4gPj4g PiA+PiArICAgICBTTElTVF9JTklUKCZpbm1fZnJlZV90bXApOw0KPiA+PiA+PiA+ID4+DQo+ID4+ ID4+ID4gPj4gICAgICAgLyoNCj4gPj4gPj4gPiA+PiAgICAgICAgKiBTdG9wIHRoZSB2MyBHZW5l cmFsIFF1ZXJ5IFJlc3BvbnNlIG9uIHRoaXMgbGluayBzdG9uZSBkZWFkLg0KPiA+PiA+PiA+ID4+ IEBAIC0yMDUwLDcgKzIwMzIsNyBAQCBpZ21wX3YzX2NhbmNlbF9saW5rX3RpbWVycyhzdHJ1Y3Qg aWdtcF9pZnNvZnRjICppZ2kpDQo+ID4+ID4+ID4gPj4gICAgICAgICAgICAgICAgICAgICAgICAq IG1lc3NhZ2UgaXMgc2VudCB1cHN0cmVhbSB0byB0aGUgb2xkIHF1ZXJpZXIgLS0NCj4gPj4gPj4g PiA+PiAgICAgICAgICAgICAgICAgICAgICAgICogdHJhbnNpdGlvbiB0byBOT1Qgd291bGQgbG9z ZSB0aGUgbGVhdmUgYW5kIHJhY2UuDQo+ID4+ID4+ID4gPj4gICAgICAgICAgICAgICAgICAgICAg ICAqLw0KPiA+PiA+PiA+ID4+IC0gICAgICAgICAgICAgICAgICAgICBTTElTVF9JTlNFUlRfSEVB RCgmaWdpLT5pZ2lfcmVsaW5taGVhZCwgaW5tLA0KPiA+PiA+PiA+ID4+IGlubV9ucmVsZSk7DQo+ ID4+ID4+ID4gPj4gKyAgICAgICAgICAgICAgICAgICAgIGlubV9yZWxlX2xvY2tlZCgmaW5tX2Zy ZWVfdG1wLCBpbm0pOw0KPiA+PiA+PiA+ID4+ICAgICAgICAgICAgICAgICAgICAgICAvKiBGQUxM VEhST1VHSCAqLw0KPiA+PiA+PiA+ID4+ICAgICAgICAgICAgICAgY2FzZSBJR01QX0dfUVVFUllf UEVORElOR19NRU1CRVI6DQo+ID4+ID4+ID4gPj4gICAgICAgICAgICAgICBjYXNlIElHTVBfU0df UVVFUllfUEVORElOR19NRU1CRVI6DQo+ID4+ID4+ID4gPj4gQEAgLTIwNjksMTAgKzIwNTEsOCBA QCBpZ21wX3YzX2NhbmNlbF9saW5rX3RpbWVycyhzdHJ1Y3QgaWdtcF9pZnNvZnRjICppZ2kpDQo+ ID4+ID4+ID4gPj4gICAgICAgICAgICAgICBtYnVmcV9kcmFpbigmaW5tLT5pbm1fc2NxKTsNCj4g Pj4gPj4gPiA+PiAgICAgICB9DQo+ID4+ID4+ID4gPj4gICAgICAgSUZfQUREUl9SVU5MT0NLKGlm cCk7DQo+ID4+ID4+ID4gPj4gLSAgICAgU0xJU1RfRk9SRUFDSF9TQUZFKGlubSwgJmlnaS0+aWdp X3JlbGlubWhlYWQsIGlubV9ucmVsZSwgdGlubSkgew0KPiA+PiA+PiA+ID4+IC0gICAgICAgICAg ICAgU0xJU1RfUkVNT1ZFX0hFQUQoJmlnaS0+aWdpX3JlbGlubWhlYWQsIGlubV9ucmVsZSk7DQo+ ID4+ID4+ID4gPj4gLSAgICAgICAgICAgICBpbm1fcmVsZWFzZV9sb2NrZWQoaW5tKTsNCj4gPj4g Pj4gPiA+PiAtICAgICB9DQo+ID4+ID4+ID4gPj4gKw0KPiA+PiA+PiA+ID4+ICsgICAgIGlubV9y ZWxlYXNlX2xpc3RfZGVmZXJyZWQoJmlubV9mcmVlX3RtcCk7DQo+ID4+ID4+ID4gPj4gIH0NCj4g Pj4gPj4gPiA+Pg0KPiA+PiA+PiA+ID4+ICAvKg0KPiA+PiA+PiA+ID4+IEBAIC0yMTk5LDcgKzIx NzksNyBAQCBpZ21wX3YxdjJfcXVldWVfcmVwb3J0KHN0cnVjdCBpbl9tdWx0aSAqaW5tLCBjb25z dCBpbnQNCj4gPj4gPj4gPiA+PiAgICAgICBzdHJ1Y3QgaXAgICAgICAgICAgICAgICAqaXA7DQo+ ID4+ID4+ID4gPj4gICAgICAgc3RydWN0IG1idWYgICAgICAgICAgICAgKm07DQo+ID4+ID4+ID4g Pj4NCj4gPj4gPj4gPiA+PiAtICAgICBJTl9NVUxUSV9MT0NLX0FTU0VSVCgpOw0KPiA+PiA+PiA+ ID4+ICsgICAgIElOX01VTFRJX0xJU1RfTE9DS19BU1NFUlQoKTsNCj4gPj4gPj4gPiA+PiAgICAg ICBJR01QX0xPQ0tfQVNTRVJUKCk7DQo+ID4+ID4+ID4gPj4NCj4gPj4gPj4gPiA+PiAgICAgICBp ZnAgPSBpbm0tPmlubV9pZnA7DQo+ID4+ID4+ID4gPj4gQEAgLTIyNzYsMTAgKzIyNTYsOCBAQCBp Z21wX2NoYW5nZV9zdGF0ZShzdHJ1Y3QgaW5fbXVsdGkgKmlubSkNCj4gPj4gPj4gPiA+PiAgICAg ICBzdHJ1Y3QgaWZuZXQgKmlmcDsNCj4gPj4gPj4gPiA+PiAgICAgICBpbnQgZXJyb3I7DQo+ID4+ ID4+ID4gPj4NCj4gPj4gPj4gPiA+PiAtICAgICBJTl9NVUxUSV9MT0NLX0FTU0VSVCgpOw0KPiA+ PiA+PiA+ID4+IC0NCj4gPj4gPj4gPiA+PiAgICAgICBlcnJvciA9IDA7DQo+ID4+ID4+ID4gPj4g LQ0KPiA+PiA+PiA+ID4+ICsgICAgIElOX01VTFRJX0xPQ0tfQVNTRVJUKCk7DQo+ID4+ID4+ID4g Pj4gICAgICAgLyoNCj4gPj4gPj4gPiA+PiAgICAgICAgKiBUcnkgdG8gZGV0ZWN0IGlmIHRoZSB1 cHBlciBsYXllciBqdXN0IGFza2VkIHVzIHRvIGNoYW5nZSBzdGF0ZQ0KPiA+PiA+PiA+ID4+ICAg ICAgICAqIGZvciBhbiBpbnRlcmZhY2Ugd2hpY2ggaGFzIG5vdyBnb25lIGF3YXkuDQo+ID4+ID4+ ID4gPj4gQEAgLTIzNzksOSArMjM1NywxMCBAQCBpZ21wX2luaXRpYWxfam9pbihzdHJ1Y3QgaW5f bXVsdGkgKmlubSwgc3RydWN0IGlnbXBfaWYNCj4gPj4gPj4gPiA+PiAgICAgICAgICAgICAgICAq IGdyb3VwIGFyb3VuZCBmb3IgdGhlIGZpbmFsIElOQ0xVREUge30gZW5xdWV1ZS4NCj4gPj4gPj4g PiA+PiAgICAgICAgICAgICAgICAqLw0KPiA+PiA+PiA+ID4+ICAgICAgICAgICAgICAgaWYgKGln aS0+aWdpX3ZlcnNpb24gPT0gSUdNUF9WRVJTSU9OXzMgJiYNCj4gPj4gPj4gPiA+PiAtICAgICAg ICAgICAgICAgICBpbm0tPmlubV9zdGF0ZSA9PSBJR01QX0xFQVZJTkdfTUVNQkVSKQ0KPiA+PiA+ PiA+ID4+IC0gICAgICAgICAgICAgICAgICAgICBpbm1fcmVsZWFzZV9sb2NrZWQoaW5tKTsNCj4g Pj4gPj4gPiA+PiAtDQo+ID4+ID4+ID4gPj4gKyAgICAgICAgICAgICAgICAgaW5tLT5pbm1fc3Rh dGUgPT0gSUdNUF9MRUFWSU5HX01FTUJFUikgew0KPiA+PiA+PiA+ID4+ICsgICAgICAgICAgICAg ICAgICAgICBNUEFTUyhpbm0tPmlubV9yZWZjb3VudCA+IDEpOw0KPiA+PiA+PiA+ID4+ICsgICAg ICAgICAgICAgICAgICAgICBpbm1fcmVsZV9sb2NrZWQoTlVMTCwgaW5tKTsNCj4gPj4gPj4gPiA+ PiArICAgICAgICAgICAgIH0NCj4gPj4gPj4gPiA+PiAgICAgICAgICAgICAgIGlubS0+aW5tX3N0 YXRlID0gSUdNUF9SRVBPUlRJTkdfTUVNQkVSOw0KPiA+PiA+PiA+ID4+DQo+ID4+ID4+ID4gPj4g ICAgICAgICAgICAgICBzd2l0Y2ggKGlnaS0+aWdpX3ZlcnNpb24pIHsNCj4gPj4gPj4gPiA+PiBA QCAtMjQ3Myw3ICsyNDUyLDcgQEAgaWdtcF9oYW5kbGVfc3RhdGVfY2hhbmdlKHN0cnVjdCBpbl9t dWx0aSAqaW5tLCBzdHJ1Y3QNCj4gPj4gPj4gPiA+Pg0KPiA+PiA+PiA+ID4+ICAgICAgIGlmcCA9 IGlubS0+aW5tX2lmcDsNCj4gPj4gPj4gPiA+Pg0KPiA+PiA+PiA+ID4+IC0gICAgIElOX01VTFRJ X0xPQ0tfQVNTRVJUKCk7DQo+ID4+ID4+ID4gPj4gKyAgICAgSU5fTVVMVElfTElTVF9MT0NLX0FT U0VSVCgpOw0KPiA+PiA+PiA+ID4+ICAgICAgIElHTVBfTE9DS19BU1NFUlQoKTsNCj4gPj4gPj4g PiA+Pg0KPiA+PiA+PiA+ID4+ICAgICAgIEtBU1NFUlQoaWdpICYmIGlnaS0+aWdpX2lmcCA9PSBp ZnAsICgiJXM6IGluY29uc2lzdGVudCBpZnAiLA0KPiA+PiA+PiA+ID4+IF9fZnVuY19fKSk7IEBA IC0yNTMxLDcgKzI1MTAsNyBAQCBpZ21wX2ZpbmFsX2xlYXZlKHN0cnVjdCBpbl9tdWx0aSAqaW5t LA0KPiA+PiA+PiA+ID4+IHN0cnVjdCBpZ21wX2lmcyBfX2Z1bmNfXywgbnRvaGwoaW5tLT5pbm1f YWRkci5zX2FkZHIpLCBpbm0tPmlubV9pZnAsDQo+ID4+ID4+ID4gPj4gICAgICAgICAgIGlubS0+ aW5tX2lmcC0+aWZfeG5hbWUpOw0KPiA+PiA+PiA+ID4+DQo+ID4+ID4+ID4gPj4gLSAgICAgSU5f TVVMVElfTE9DS19BU1NFUlQoKTsNCj4gPj4gPj4gPiA+PiArICAgICBJTl9NVUxUSV9MSVNUX0xP Q0tfQVNTRVJUKCk7DQo+ID4+ID4+ID4gPj4gICAgICAgSUdNUF9MT0NLX0FTU0VSVCgpOw0KPiA+ PiA+PiA+ID4+DQo+ID4+ID4+ID4gPj4gICAgICAgc3dpdGNoIChpbm0tPmlubV9zdGF0ZSkgew0K PiA+PiA+PiA+ID4+IEBAIC0yNjU4LDcgKzI2MzcsNyBAQCBpZ21wX3YzX2VucXVldWVfZ3JvdXBf cmVjb3JkKHN0cnVjdCBtYnVmcSAqbXEsIHN0cnVjdA0KPiA+PiA+PiA+ID4+ICAgICAgIGluX2Fk ZHJfdCAgICAgICAgICAgICAgICBuYWRkcjsNCj4gPj4gPj4gPiA+PiAgICAgICB1aW50OF90ICAg ICAgICAgICAgICAgICAgbW9kZTsNCj4gPj4gPj4gPiA+Pg0KPiA+PiA+PiA+ID4+IC0gICAgIElO X01VTFRJX0xPQ0tfQVNTRVJUKCk7DQo+ID4+ID4+ID4gPj4gKyAgICAgSU5fTVVMVElfTElTVF9M T0NLX0FTU0VSVCgpOw0KPiA+PiA+PiA+ID4+DQo+ID4+ID4+ID4gPj4gICAgICAgZXJyb3IgPSAw Ow0KPiA+PiA+PiA+ID4+ICAgICAgIGlmcCA9IGlubS0+aW5tX2lmcDsNCj4gPj4gPj4gPiA+PiBA QCAtMzAxOCw3ICsyOTk3LDcgQEAgaWdtcF92M19lbnF1ZXVlX2ZpbHRlcl9jaGFuZ2Uoc3RydWN0 IG1idWZxICptcSwgc3RydWN0DQo+ID4+ID4+ID4gPj4gICAgICAgdWludDhfdCAgICAgICAgICAg ICAgICAgIG1vZGUsIG5vdywgdGhlbjsNCj4gPj4gPj4gPiA+PiAgICAgICByZWN0eXBlX3QgICAg ICAgICAgICAgICAgY3J0LCBkcnQsIG5ydDsNCj4gPj4gPj4gPiA+Pg0KPiA+PiA+PiA+ID4+IC0g ICAgIElOX01VTFRJX0xPQ0tfQVNTRVJUKCk7DQo+ID4+ID4+ID4gPj4gKyAgICAgSU5fTVVMVElf TElTVF9MT0NLX0FTU0VSVCgpOw0KPiA+PiA+PiA+ID4+DQo+ID4+ID4+ID4gPj4gICAgICAgaWYg KGlubS0+aW5tX25zcmMgPT0gMCB8fA0KPiA+PiA+PiA+ID4+ICAgICAgICAgICAoaW5tLT5pbm1f c3RbMF0uaXNzX2FzbSA+IDAgJiYgaW5tLT5pbm1fc3RbMV0uaXNzX2FzbSA+IDApKQ0KPiA+PiA+ PiA+ID4+IEBAIC0zMjIxLDcgKzMyMDAsNyBAQCBpZ21wX3YzX21lcmdlX3N0YXRlX2NoYW5nZXMo c3RydWN0IGluX211bHRpICppbm0sIHN0cnUNCj4gPj4gPj4gPiA+PiAgICAgICBkb21lcmdlID0g MDsNCj4gPj4gPj4gPiA+PiAgICAgICByZWNzbGVuID0gMDsNCj4gPj4gPj4gPiA+Pg0KPiA+PiA+ PiA+ID4+IC0gICAgIElOX01VTFRJX0xPQ0tfQVNTRVJUKCk7DQo+ID4+ID4+ID4gPj4gKyAgICAg SU5fTVVMVElfTElTVF9MT0NLX0FTU0VSVCgpOw0KPiA+PiA+PiA+ID4+ICAgICAgIElHTVBfTE9D S19BU1NFUlQoKTsNCj4gPj4gPj4gPiA+Pg0KPiA+PiA+PiA+ID4+ICAgICAgIC8qDQo+ID4+ID4+ ID4gPj4gQEAgLTMzMjAsNyArMzI5OSw3IEBAIGlnbXBfdjNfZGlzcGF0Y2hfZ2VuZXJhbF9xdWVy eShzdHJ1Y3QgaWdtcF9pZnNvZnRjICppZw0KPiA+PiA+PiA+ID4+ICAgICAgIHN0cnVjdCBpbl9t dWx0aSAgICAgICAgICppbm07DQo+ID4+ID4+ID4gPj4gICAgICAgaW50ICAgICAgICAgICAgICAg ICAgICAgIHJldHZhbCwgbG9vcDsNCj4gPj4gPj4gPiA+Pg0KPiA+PiA+PiA+ID4+IC0gICAgIElO X01VTFRJX0xPQ0tfQVNTRVJUKCk7DQo+ID4+ID4+ID4gPj4gKyAgICAgSU5fTVVMVElfTElTVF9M T0NLX0FTU0VSVCgpOw0KPiA+PiA+PiA+ID4+ICAgICAgIElHTVBfTE9DS19BU1NFUlQoKTsNCj4g Pj4gPj4gPiA+Pg0KPiA+PiA+PiA+ID4+ICAgICAgIEtBU1NFUlQoaWdpLT5pZ2lfdmVyc2lvbiA9 PSBJR01QX1ZFUlNJT05fMywNCj4gPj4gPj4gPiA+PiBAQCAtMzYzMiw3ICszNjExLDYgQEAgREJf U0hPV19DT01NQU5EKGlnaV9saXN0LCBkYl9zaG93X2lnaV9saXN0KQ0KPiA+PiA+PiA+ID4+ICAg ICAgICAgICAgICAgZGJfcHJpbnRmKCIgICAgcWkgJXVcbiIsIGlnaS0+aWdpX3FpKTsNCj4gPj4g Pj4gPiA+PiAgICAgICAgICAgICAgIGRiX3ByaW50ZigiICAgIHFyaSAldVxuIiwgaWdpLT5pZ2lf cXJpKTsNCj4gPj4gPj4gPiA+PiAgICAgICAgICAgICAgIGRiX3ByaW50ZigiICAgIHVyaSAldVxu IiwgaWdpLT5pZ2lfdXJpKTsNCj4gPj4gPj4gPiA+PiAtICAgICAgICAgICAgIC8qIFNMSVNUX0hF QUQoLGluX211bHRpKSAgIGlnaV9yZWxpbm1oZWFkICovDQo+ID4+ID4+ID4gPj4gICAgICAgICAg ICAgICAvKiBzdHJ1Y3QgbWJ1ZnEgICAgaWdpX2dxOyAqLw0KPiA+PiA+PiA+ID4+ICAgICAgICAg ICAgICAgZGJfcHJpbnRmKCJcbiIpOw0KPiA+PiA+PiA+ID4+ICAgICAgIH0NCj4gPj4gPj4gPiA+ Pg0KPiA+PiA+PiA+ID4+IE1vZGlmaWVkOiBoZWFkL3N5cy9uZXRpbmV0L2lnbXBfdmFyLmgNCj4g Pj4gPj4gPiA+PiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0NCj4gPj4gPj4gPiA+PiAtLS0gaGVhZC9z eXMvbmV0aW5ldC9pZ21wX3Zhci5oICAgICAgIFdlZCBNYXkgIDIgMTc6NDE6MDAgMjAxOA0KPiA+ PiA+PiA+ID4+IChyMzMzMTc0KSArKysgaGVhZC9zeXMvbmV0aW5ldC9pZ21wX3Zhci5oICAgICAg IFdlZCBNYXkgIDIgMTk6MzY6MjkNCj4gPj4gPj4gPiA+PiAyMDE4ICAgICAgICAocjMzMzE3NSkg QEAgLTIxNCw3ICsyMTQsNiBAQCBzdHJ1Y3QgaWdtcF9pZnNvZnRjIHsNCj4gPj4gPj4gPiA+PiAg ICAgICB1aW50MzJfdCBpZ2lfcWk7ICAgICAgICAvKiBJR01QdjMgUXVlcnkgSW50ZXJ2YWwgKHMp ICovDQo+ID4+ID4+ID4gPj4gICAgICAgdWludDMyX3QgaWdpX3FyaTsgICAgICAgLyogSUdNUHYz IFF1ZXJ5IFJlc3BvbnNlIEludGVydmFsIChzKSAqLw0KPiA+PiA+PiA+ID4+ICAgICAgIHVpbnQz Ml90IGlnaV91cmk7ICAgICAgIC8qIElHTVB2MyBVbnNvbGljaXRlZCBSZXBvcnQgSW50ZXJ2YWwg KHMpICovDQo+ID4+ID4+ID4gPj4gLSAgICAgU0xJU1RfSEVBRCgsaW5fbXVsdGkpICAgaWdpX3Jl bGlubWhlYWQ7IC8qIHJlbGVhc2VkIGdyb3VwcyAqLw0KPiA+PiA+PiA+ID4+ICAgICAgIHN0cnVj dCBtYnVmcSAgICBpZ2lfZ3E7ICAgICAgICAgLyogZ2VuZXJhbCBxdWVyeSByZXNwb25zZXMgcXVl dWUgKi8NCj4gPj4gPj4gPiA+PiAgfTsNCj4gPj4gPj4gPiA+Pg0KPiA+PiA+PiA+ID4+DQo+ID4+ ID4+ID4gPj4gTW9kaWZpZWQ6IGhlYWQvc3lzL25ldGluZXQvaW4uYw0KPiA+PiA+PiA+ID4+ID09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PQ0KPiA+PiA+PiA+ID4+IC0tLSBoZWFkL3N5cy9uZXRpbmV0L2lu LmMgICAgIFdlZCBNYXkgIDIgMTc6NDE6MDAgMjAxOCAgICAgICAgKHIzMzMxNzQpDQo+ID4+ID4+ ID4gPj4gKysrIGhlYWQvc3lzL25ldGluZXQvaW4uYyAgICAgV2VkIE1heSAgMiAxOTozNjoyOSAy MDE4ICAgICAgICAocjMzMzE3NSkNCj4gPj4gPj4gPiA+PiBAQCAtNjMyLDEyICs2MzIsMTAgQEAg aW5fZGlmYWRkcl9pb2N0bCh1X2xvbmcgY21kLCBjYWRkcl90IGRhdGEsIHN0cnVjdCBpZm5lDQo+ ID4+ID4+ID4gPj4gICAgICAgICAgICAgICBzdHJ1Y3QgaW5faWZpbmZvICppaTsNCj4gPj4gPj4g PiA+Pg0KPiA+PiA+PiA+ID4+ICAgICAgICAgICAgICAgaWkgPSAoKHN0cnVjdCBpbl9pZmluZm8g KilpZnAtPmlmX2FmZGF0YVtBRl9JTkVUXSk7DQo+ID4+ID4+ID4gPj4gLSAgICAgICAgICAgICBJ Tl9NVUxUSV9MT0NLKCk7DQo+ID4+ID4+ID4gPj4gICAgICAgICAgICAgICBpZiAoaWktPmlpX2Fs bGhvc3RzKSB7DQo+ID4+ID4+ID4gPj4gLSAgICAgICAgICAgICAgICAgICAgICh2b2lkKWluX2xl YXZlZ3JvdXBfbG9ja2VkKGlpLT5paV9hbGxob3N0cywgTlVMTCk7DQo+ID4+ID4+ID4gPj4gKyAg ICAgICAgICAgICAgICAgICAgICh2b2lkKWluX2xlYXZlZ3JvdXAoaWktPmlpX2FsbGhvc3RzLCBO VUxMKTsNCj4gPj4gPj4gPiA+PiAgICAgICAgICAgICAgICAgICAgICAgaWktPmlpX2FsbGhvc3Rz ID0gTlVMTDsNCj4gPj4gPj4gPiA+PiAgICAgICAgICAgICAgIH0NCj4gPj4gPj4gPiA+PiAtICAg ICAgICAgICAgIElOX01VTFRJX1VOTE9DSygpOw0KPiA+PiA+PiA+ID4+ICAgICAgIH0NCj4gPj4g Pj4gPiA+Pg0KPiA+PiA+PiA+ID4+ICAgICAgIElGX0FERFJfV0xPQ0soaWZwKTsNCj4gPj4gPj4g PiA+PiBAQCAtOTk0LDExICs5OTIsMTIgQEAgaW5fYnJvYWRjYXN0KHN0cnVjdCBpbl9hZGRyIGlu LCBzdHJ1Y3QgaWZuZXQgKmlmcCkNCj4gPj4gPj4gPiA+PiAgdm9pZA0KPiA+PiA+PiA+ID4+ICBp bl9pZmRldGFjaChzdHJ1Y3QgaWZuZXQgKmlmcCkNCj4gPj4gPj4gPiA+PiAgew0KPiA+PiA+PiA+ ID4+IC0NCj4gPj4gPj4gPiA+PiArICAgICBJTl9NVUxUSV9MT0NLKCk7DQo+ID4+ID4+ID4gPj4g ICAgICAgaW5fcGNicHVyZ2VpZjAoJlZfcmlwY2JpbmZvLCBpZnApOw0KPiA+PiA+PiA+ID4+ICAg ICAgIGluX3BjYnB1cmdlaWYwKCZWX3VkYmluZm8sIGlmcCk7DQo+ID4+ID4+ID4gPj4gICAgICAg aW5fcGNicHVyZ2VpZjAoJlZfdWxpdGVjYmluZm8sIGlmcCk7DQo+ID4+ID4+ID4gPj4gICAgICAg aW5fcHVyZ2VtYWRkcnMoaWZwKTsNCj4gPj4gPj4gPiA+PiArICAgICBJTl9NVUxUSV9VTkxPQ0so KTsNCj4gPj4gPj4gPiA+PiAgfQ0KPiA+PiA+PiA+ID4+DQo+ID4+ID4+ID4gPj4gIC8qDQo+ID4+ ID4+ID4gPj4gQEAgLTEwMTEsMTIgKzEwMTAsMTIgQEAgaW5faWZkZXRhY2goc3RydWN0IGlmbmV0 ICppZnApDQo+ID4+ID4+ID4gPj4gIHN0YXRpYyB2b2lkDQo+ID4+ID4+ID4gPj4gIGluX3B1cmdl bWFkZHJzKHN0cnVjdCBpZm5ldCAqaWZwKQ0KPiA+PiA+PiA+ID4+ICB7DQo+ID4+ID4+ID4gPj4g LSAgICAgTElTVF9IRUFEKCxpbl9tdWx0aSkgcHVyZ2Vpbm1zOw0KPiA+PiA+PiA+ID4+IC0gICAg IHN0cnVjdCBpbl9tdWx0aSAgICAgICAgICppbm0sICp0aW5tOw0KPiA+PiA+PiA+ID4+ICsgICAg IHN0cnVjdCBpbl9tdWx0aV9oZWFkIHB1cmdlaW5tczsNCj4gPj4gPj4gPiA+PiArICAgICBzdHJ1 Y3QgaW5fbXVsdGkgICAgICAgICAqaW5tOw0KPiA+PiA+PiA+ID4+ICAgICAgIHN0cnVjdCBpZm11 bHRpYWRkciAgICAgICppZm1hOw0KPiA+PiA+PiA+ID4+DQo+ID4+ID4+ID4gPj4gLSAgICAgTElT VF9JTklUKCZwdXJnZWlubXMpOw0KPiA+PiA+PiA+ID4+IC0gICAgIElOX01VTFRJX0xPQ0soKTsN Cj4gPj4gPj4gPiA+PiArICAgICBTTElTVF9JTklUKCZwdXJnZWlubXMpOw0KPiA+PiA+PiA+ID4+ ICsgICAgIElOX01VTFRJX0xJU1RfTE9DSygpOw0KPiA+PiA+PiA+ID4+DQo+ID4+ID4+ID4gPj4g ICAgICAgLyoNCj4gPj4gPj4gPiA+PiAgICAgICAgKiBFeHRyYWN0IGxpc3Qgb2YgaW5fbXVsdGkg YXNzb2NpYXRlZCB3aXRoIHRoZSBkZXRhY2hpbmcgaWZwDQo+ID4+ID4+ID4gPj4gQEAgLTEwMzQs MTcgKzEwMzMsMTMgQEAgaW5fcHVyZ2VtYWRkcnMoc3RydWN0IGlmbmV0ICppZnApDQo+ID4+ID4+ ID4gPj4gICAgICAgICAgICAgICAgICAgKCIlczogaWZtYV9wcm90b3NwZWMgaXMgTlVMTCIsIF9f ZnVuY19fKSk7DQo+ID4+ID4+ID4gPj4gICNlbmRpZg0KPiA+PiA+PiA+ID4+ICAgICAgICAgICAg ICAgaW5tID0gKHN0cnVjdCBpbl9tdWx0aSAqKWlmbWEtPmlmbWFfcHJvdG9zcGVjOw0KPiA+PiA+ PiA+ID4+IC0gICAgICAgICAgICAgTElTVF9JTlNFUlRfSEVBRCgmcHVyZ2Vpbm1zLCBpbm0sIGlu bV9saW5rKTsNCj4gPj4gPj4gPiA+PiArICAgICAgICAgICAgIGlubV9yZWxlX2xvY2tlZCgmcHVy Z2Vpbm1zLCBpbm0pOw0KPiA+PiA+PiA+ID4+ICAgICAgIH0NCj4gPj4gPj4gPiA+PiAgICAgICBJ Rl9BRERSX1JVTkxPQ0soaWZwKTsNCj4gPj4gPj4gPiA+Pg0KPiA+PiA+PiA+ID4+IC0gICAgIExJ U1RfRk9SRUFDSF9TQUZFKGlubSwgJnB1cmdlaW5tcywgaW5tX2xpbmssIHRpbm0pIHsNCj4gPj4g Pj4gPiA+PiAtICAgICAgICAgICAgIExJU1RfUkVNT1ZFKGlubSwgaW5tX2xpbmspOw0KPiA+PiA+ PiA+ID4+IC0gICAgICAgICAgICAgaW5tX3JlbGVhc2VfbG9ja2VkKGlubSk7DQo+ID4+ID4+ID4g Pj4gLSAgICAgfQ0KPiA+PiA+PiA+ID4+ICsgICAgIGlubV9yZWxlYXNlX2xpc3RfZGVmZXJyZWQo JnB1cmdlaW5tcyk7DQo+ID4+ID4+ID4gPj4gICAgICAgaWdtcF9pZmRldGFjaChpZnApOw0KPiA+ PiA+PiA+ID4+IC0NCj4gPj4gPj4gPiA+PiAtICAgICBJTl9NVUxUSV9VTkxPQ0soKTsNCj4gPj4g Pj4gPiA+PiArICAgICBJTl9NVUxUSV9MSVNUX1VOTE9DSygpOw0KPiA+PiA+PiA+ID4+ICB9DQo+ ID4+ID4+ID4gPj4NCj4gPj4gPj4gPiA+PiAgc3RydWN0IGluX2xsZW50cnkgew0KPiA+PiA+PiA+ ID4+DQo+ID4+ID4+ID4gPj4gTW9kaWZpZWQ6IGhlYWQvc3lzL25ldGluZXQvaW5fbWNhc3QuYw0K PiA+PiA+PiA+ID4+ID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQ0KPiA+PiA+PiA+ID4+IC0tLSBoZWFk L3N5cy9uZXRpbmV0L2luX21jYXN0LmMgICAgICAgV2VkIE1heSAgMiAxNzo0MTowMCAyMDE4DQo+ ID4+ID4+ID4gPj4gKHIzMzMxNzQpICsrKyBoZWFkL3N5cy9uZXRpbmV0L2luX21jYXN0LmMgICAg ICAgV2VkIE1heSAgMiAxOTozNjoyOQ0KPiA+PiA+PiA+ID4+IDIwMTggICAgICAgIChyMzMzMTc1 KSBAQCAtNTEsNiArNTEsNyBAQCBfX0ZCU0RJRCgiJEZyZWVCU0QkIik7DQo+ID4+ID4+ID4gPj4g ICNpbmNsdWRlIDxzeXMvc3lzY3RsLmg+DQo+ID4+ID4+ID4gPj4gICNpbmNsdWRlIDxzeXMva3Ry Lmg+DQo+ID4+ID4+ID4gPj4gICNpbmNsdWRlIDxzeXMvdGFza3F1ZXVlLmg+DQo+ID4+ID4+ID4g Pj4gKyNpbmNsdWRlIDxzeXMvZ3Rhc2txdWV1ZS5oPg0KPiA+PiA+PiA+ID4+ICAjaW5jbHVkZSA8 c3lzL3RyZWUuaD4NCj4gPj4gPj4gPiA+Pg0KPiA+PiA+PiA+ID4+ICAjaW5jbHVkZSA8bmV0L2lm Lmg+DQo+ID4+ID4+ID4gPj4gQEAgLTU5LDYgKzYwLDggQEAgX19GQlNESUQoIiRGcmVlQlNEJCIp Ow0KPiA+PiA+PiA+ID4+ICAjaW5jbHVkZSA8bmV0L3JvdXRlLmg+DQo+ID4+ID4+ID4gPj4gICNp bmNsdWRlIDxuZXQvdm5ldC5oPg0KPiA+PiA+PiA+ID4+DQo+ID4+ID4+ID4gPj4gKyNpbmNsdWRl IDxuZXQvZXRoZXJuZXQuaD4NCj4gPj4gPj4gPiA+PiArDQo+ID4+ID4+ID4gPj4gICNpbmNsdWRl IDxuZXRpbmV0L2luLmg+DQo+ID4+ID4+ID4gPj4gICNpbmNsdWRlIDxuZXRpbmV0L2luX3N5c3Rt Lmg+DQo+ID4+ID4+ID4gPj4gICNpbmNsdWRlIDxuZXRpbmV0L2luX2ZpYi5oPg0KPiA+PiA+PiA+ ID4+IEBAIC05MSwxOCArOTQsMjQgQEAgc3RhdGljIE1BTExPQ19ERUZJTkUoTV9JUE1TT1VSQ0Us ICJpcF9tc291cmNlIiwNCj4gPj4gPj4gPiA+Pg0KPiA+PiA+PiA+ID4+ICAvKg0KPiA+PiA+PiA+ ID4+ICAgKiBMb2NraW5nOg0KPiA+PiA+PiA+ID4+IC0gKiAtIExvY2sgb3JkZXIgaXM6IEdpYW50 LCBJTlBfV0xPQ0ssIElOX01VTFRJX0xPQ0ssIElHTVBfTE9DSywNCj4gPj4gPj4gPiA+PiBJRl9B RERSX0xPQ0suDQo+ID4+ID4+ID4gPj4gKyAqIC0gTG9jayBvcmRlciBpczogR2lhbnQsIElOUF9X TE9DSywgSU5fTVVMVElfTElTVF9MT0NLLCBJR01QX0xPQ0ssDQo+ID4+ID4+ID4gPj4gSUZfQURE Ul9MT0NLLg0KPiA+PiA+PiA+ID4+ICAgKiAtIFRoZSBJRl9BRERSX0xPQ0sgaXMgaW1wbGljaXRs eSB0YWtlbiBieSBpbm1fbG9va3VwKCkgZWFybGllciwgaG93ZXZlcg0KPiA+PiA+PiA+ID4+ICAg KiAgIGl0IGNhbiBiZSB0YWtlbiBieSBjb2RlIGluIG5ldC9pZi5jIGFsc28uDQo+ID4+ID4+ID4g Pj4gICAqIC0gaXBfbW9wdGlvbnMgYW5kIGluX21maWx0ZXIgYXJlIGNvdmVyZWQgYnkgdGhlIElO UF9XTE9DSy4NCj4gPj4gPj4gPiA+PiAgICoNCj4gPj4gPj4gPiA+PiAtICogc3RydWN0IGluX211 bHRpIGlzIGNvdmVyZWQgYnkgSU5fTVVMVElfTE9DSy4gVGhlcmUgaXNuJ3Qgc3RyaWN0bHkNCj4g Pj4gPj4gPiA+PiArICogc3RydWN0IGluX211bHRpIGlzIGNvdmVyZWQgYnkgSU5fTVVMVElfTElT VF9MT0NLLiBUaGVyZSBpc24ndCBzdHJpY3RseQ0KPiA+PiA+PiA+ID4+ICAgKiBhbnkgbmVlZCBm b3IgaW5fbXVsdGkgaXRzZWxmIHRvIGJlIHZpcnR1YWxpemVkIC0tIGl0IGlzIGJvdW5kIHRvIGFu IGlmcA0KPiA+PiA+PiA+ID4+ICAgKiBhbnl3YXkgbm8gbWF0dGVyIHdoYXQgaGFwcGVucy4NCj4g Pj4gPj4gPiA+PiAgICovDQo+ID4+ID4+ID4gPj4gLXN0cnVjdCBtdHggaW5fbXVsdGlfbXR4Ow0K PiA+PiA+PiA+ID4+IC1NVFhfU1lTSU5JVChpbl9tdWx0aV9tdHgsICZpbl9tdWx0aV9tdHgsICJp bl9tdWx0aV9tdHgiLCBNVFhfREVGKTsNCj4gPj4gPj4gPiA+PiArc3RydWN0IG10eCBpbl9tdWx0 aV9saXN0X210eDsNCj4gPj4gPj4gPiA+PiArTVRYX1NZU0lOSVQoaW5fbXVsdGlfbXR4LCAmaW5f bXVsdGlfbGlzdF9tdHgsICJpbl9tdWx0aV9saXN0X210eCIsIE1UWF9ERUYpOw0KPiA+PiA+PiA+ ID4+DQo+ID4+ID4+ID4gPj4gK3N0cnVjdCBtdHggaW5fbXVsdGlfZnJlZV9tdHg7DQo+ID4+ID4+ ID4gPj4gK01UWF9TWVNJTklUKGluX211bHRpX2ZyZWVfbXR4LCAmaW5fbXVsdGlfZnJlZV9tdHgs ICJpbl9tdWx0aV9mcmVlX210eCIsDQo+ID4+ID4+ID4gPj4gTVRYX0RFRik7ICsNCj4gPj4gPj4g PiA+PiArc3RydWN0IHN4IGluX211bHRpX3N4Ow0KPiA+PiA+PiA+ID4+ICtTWF9TWVNJTklUKGlu X211bHRpX3N4LCAmaW5fbXVsdGlfc3gsICJpbl9tdWx0aV9zeCIpOw0KPiA+PiA+PiA+ID4+ICsN Cj4gPj4gPj4gPiA+PiAgLyoNCj4gPj4gPj4gPiA+PiAgICogRnVuY3Rpb25zIHdpdGggbm9uLXN0 YXRpYyBsaW5rYWdlIGRlZmluZWQgaW4gdGhpcyBmaWxlIHNob3VsZCBiZQ0KPiA+PiA+PiA+ID4+ ICAgKiBkZWNsYXJlZCBpbiBpbl92YXIuaDoNCj4gPj4gPj4gPiA+PiBAQCAtMTUxLDYgKzE2MCw3 IEBAIHN0YXRpYyBpbnQgICAgICAgIGlubV9pc19pZnBfZGV0YWNoZWQoY29uc3Qgc3RydWN0DQo+ ID4+ID4+ID4gPj4gaW5fbXVsdGkNCj4gPj4gPj4gPiA+PiAqIHN0YXRpYyBpbnQgICBpbm1fbWVy Z2Uoc3RydWN0IGluX211bHRpICosIC8qY29uc3QqLyBzdHJ1Y3QgaW5fbWZpbHRlciAqKTsNCj4g Pj4gPj4gPiA+PiAgc3RhdGljIHZvaWQgIGlubV9wdXJnZShzdHJ1Y3QgaW5fbXVsdGkgKik7DQo+ ID4+ID4+ID4gPj4gIHN0YXRpYyB2b2lkICBpbm1fcmVhcChzdHJ1Y3QgaW5fbXVsdGkgKik7DQo+ ID4+ID4+ID4gPj4gK3N0YXRpYyB2b2lkIGlubV9yZWxlYXNlKHN0cnVjdCBpbl9tdWx0aSAqKTsN Cj4gPj4gPj4gPiA+PiAgc3RhdGljIHN0cnVjdCBpcF9tb3B0aW9ucyAqDQo+ID4+ID4+ID4gPj4g ICAgICAgICAgICAgICBpbnBfZmluZG1vcHRpb25zKHN0cnVjdCBpbnBjYiAqKTsNCj4gPj4gPj4g PiA+PiAgc3RhdGljIHZvaWQgIGlucF9mcmVlbW9wdGlvbnNfaW50ZXJuYWwoc3RydWN0IGlwX21v cHRpb25zICopOw0KPiA+PiA+PiA+ID4+IEBAIC0yMTYsNiArMjI2LDY1IEBAIGlubV9pc19pZnBf ZGV0YWNoZWQoY29uc3Qgc3RydWN0IGluX211bHRpICppbm0pDQo+ID4+ID4+ID4gPj4gIH0NCj4g Pj4gPj4gPiA+PiAgI2VuZGlmDQo+ID4+ID4+ID4gPj4NCj4gPj4gPj4gPiA+PiArc3RhdGljIHN0 cnVjdCBncm91cHRhc2sgZnJlZV9ndGFzazsNCj4gPj4gPj4gPiA+PiArc3RhdGljIHN0cnVjdCBp bl9tdWx0aV9oZWFkIGlubV9mcmVlX2xpc3Q7DQo+ID4+ID4+ID4gPj4gK3N0YXRpYyB2b2lkIGlu bV9yZWxlYXNlX3Rhc2sodm9pZCAqYXJnIF9fdW51c2VkKTsNCj4gPj4gPj4gPiA+PiArc3RhdGlj IHZvaWQgaW5tX2luaXQodm9pZCkNCj4gPj4gPj4gPiA+PiArew0KPiA+PiA+PiA+ID4+ICsgICAg IFNMSVNUX0lOSVQoJmlubV9mcmVlX2xpc3QpOw0KPiA+PiA+PiA+ID4+ICsgICAgIHRhc2txZ3Jv dXBfY29uZmlnX2d0YXNrX2luaXQoTlVMTCwgJmZyZWVfZ3Rhc2ssIGlubV9yZWxlYXNlX3Rhc2ss ICJpbm0NCj4gPj4gPj4gPiA+PiByZWxlYXNlIHRhc2siKTsgK30NCj4gPj4gPj4gPiA+PiArDQo+ ID4+ID4+ID4gPj4gK1NZU0lOSVQoaW5tX2luaXQsIFNJX1NVQl9TTVAgKyAxLCBTSV9PUkRFUl9G SVJTVCwNCj4gPj4gPj4gPiA+PiArICAgICBpbm1faW5pdCwgTlVMTCk7DQo+ID4+ID4+ID4gPj4g Kw0KPiA+PiA+PiA+ID4+ICsNCj4gPj4gPj4gPiA+PiArdm9pZA0KPiA+PiA+PiA+ID4+ICtpbm1f cmVsZWFzZV9saXN0X2RlZmVycmVkKHN0cnVjdCBpbl9tdWx0aV9oZWFkICppbm1oKQ0KPiA+PiA+ PiA+ID4+ICt7DQo+ID4+ID4+ID4gPj4gKw0KPiA+PiA+PiA+ID4+ICsgICAgIGlmIChTTElTVF9F TVBUWShpbm1oKSkNCj4gPj4gPj4gPiA+PiArICAgICAgICAgICAgIHJldHVybjsNCj4gPj4gPj4g PiA+PiArICAgICBtdHhfbG9jaygmaW5fbXVsdGlfZnJlZV9tdHgpOw0KPiA+PiA+PiA+ID4+ICsg ICAgIFNMSVNUX0NPTkNBVCgmaW5tX2ZyZWVfbGlzdCwgaW5taCwgaW5fbXVsdGksIGlubV9ucmVs ZSk7DQo+ID4+ID4+ID4gPj4gKyAgICAgbXR4X3VubG9jaygmaW5fbXVsdGlfZnJlZV9tdHgpOw0K PiA+PiA+PiA+ID4+ICsgICAgIEdST1VQVEFTS19FTlFVRVVFKCZmcmVlX2d0YXNrKTsNCj4gPj4g Pj4gPiA+PiArfQ0KPiA+PiA+PiA+ID4+ICsNCj4gPj4gPj4gPiA+PiArdm9pZA0KPiA+PiA+PiA+ ID4+ICtpbm1fcmVsZWFzZV9kZWZlcnJlZChzdHJ1Y3QgaW5fbXVsdGkgKmlubSkNCj4gPj4gPj4g PiA+PiArew0KPiA+PiA+PiA+ID4+ICsgICAgIHN0cnVjdCBpbl9tdWx0aV9oZWFkIHRtcDsNCj4g Pj4gPj4gPiA+PiArDQo+ID4+ID4+ID4gPj4gKyAgICAgSU5fTVVMVElfTElTVF9MT0NLX0FTU0VS VCgpOw0KPiA+PiA+PiA+ID4+ICsgICAgIE1QQVNTKGlubS0+aW5tX3JlZmNvdW50ID4gMCk7DQo+ ID4+ID4+ID4gPj4gKyAgICAgaWYgKC0taW5tLT5pbm1fcmVmY291bnQgPT0gMCkgew0KPiA+PiA+ PiA+ID4+ICsgICAgICAgICAgICAgU0xJU1RfSU5JVCgmdG1wKTsNCj4gPj4gPj4gPiA+PiArICAg ICAgICAgICAgIGlubS0+aW5tX2lmbWEtPmlmbWFfcHJvdG9zcGVjID0gTlVMTDsNCj4gPj4gPj4g PiA+PiArICAgICAgICAgICAgIFNMSVNUX0lOU0VSVF9IRUFEKCZ0bXAsIGlubSwgaW5tX25yZWxl KTsNCj4gPj4gPj4gPiA+PiArICAgICAgICAgICAgIGlubV9yZWxlYXNlX2xpc3RfZGVmZXJyZWQo JnRtcCk7DQo+ID4+ID4+ID4gPj4gKyAgICAgfQ0KPiA+PiA+PiA+ID4+ICt9DQo+ID4+ID4+ID4g Pj4gKw0KPiA+PiA+PiA+ID4+ICtzdGF0aWMgdm9pZA0KPiA+PiA+PiA+ID4+ICtpbm1fcmVsZWFz ZV90YXNrKHZvaWQgKmFyZyBfX3VudXNlZCkNCj4gPj4gPj4gPiA+PiArew0KPiA+PiA+PiA+ID4+ ICsgICAgIHN0cnVjdCBpbl9tdWx0aV9oZWFkIGlubV9mcmVlX3RtcDsNCj4gPj4gPj4gPiA+PiAr ICAgICBzdHJ1Y3QgaW5fbXVsdGkgKmlubSwgKnRpbm07DQo+ID4+ID4+ID4gPj4gKw0KPiA+PiA+ PiA+ID4+ICsgICAgIFNMSVNUX0lOSVQoJmlubV9mcmVlX3RtcCk7DQo+ID4+ID4+ID4gPj4gKyAg ICAgbXR4X2xvY2soJmluX211bHRpX2ZyZWVfbXR4KTsNCj4gPj4gPj4gPiA+PiArICAgICBTTElT VF9DT05DQVQoJmlubV9mcmVlX3RtcCwgJmlubV9mcmVlX2xpc3QsIGluX211bHRpLCBpbm1fbnJl bGUpOw0KPiA+PiA+PiA+ID4+ICsgICAgIG10eF91bmxvY2soJmluX211bHRpX2ZyZWVfbXR4KTsN Cj4gPj4gPj4gPiA+PiArICAgICBJTl9NVUxUSV9MT0NLKCk7DQo+ID4+ID4+ID4gPj4gKyAgICAg U0xJU1RfRk9SRUFDSF9TQUZFKGlubSwgJmlubV9mcmVlX3RtcCwgaW5tX25yZWxlLCB0aW5tKSB7 DQo+ID4+ID4+ID4gPj4gKyAgICAgICAgICAgICBTTElTVF9SRU1PVkVfSEVBRCgmaW5tX2ZyZWVf dG1wLCBpbm1fbnJlbGUpOw0KPiA+PiA+PiA+ID4+ICsgICAgICAgICAgICAgTVBBU1MoaW5tKTsN Cj4gPj4gPj4gPiA+PiArICAgICAgICAgICAgIGlubV9yZWxlYXNlKGlubSk7DQo+ID4+ID4+ID4g Pj4gKyAgICAgfQ0KPiA+PiA+PiA+ID4+ICsgICAgIElOX01VTFRJX1VOTE9DSygpOw0KPiA+PiA+ PiA+ID4+ICt9DQo+ID4+ID4+ID4gPj4gKw0KPiA+PiA+PiA+ID4+ICAvKg0KPiA+PiA+PiA+ID4+ ICAgKiBJbml0aWFsaXplIGFuIGluX21maWx0ZXIgc3RydWN0dXJlIHRvIGEga25vd24gc3RhdGUg YXQgdDAsIHQxDQo+ID4+ID4+ID4gPj4gICAqIHdpdGggYW4gZW1wdHkgc291cmNlIGZpbHRlciBs aXN0Lg0KPiA+PiA+PiA+ID4+IEBAIC0yMzIsNyArMzAxLDcgQEAgaW1mX2luaXQoc3RydWN0IGlu X21maWx0ZXIgKmltZiwgY29uc3QgaW50IHN0MCwgY29uc3QNCj4gPj4gPj4gPiA+PiAgLyoNCj4g Pj4gPj4gPiA+PiAgICogRnVuY3Rpb24gZm9yIGxvb2tpbmcgdXAgYW4gaW5fbXVsdGkgcmVjb3Jk IGZvciBhbiBJUHY0IG11bHRpY2FzdCBhZGRyZXNzDQo+ID4+ID4+ID4gPj4gICAqIG9uIGEgZ2l2 ZW4gaW50ZXJmYWNlLiBpZnAgbXVzdCBiZSB2YWxpZC4gSWYgbm8gcmVjb3JkIGZvdW5kLCByZXR1 cm4gTlVMTC4NCj4gPj4gPj4gPiA+PiAtICogVGhlIElOX01VTFRJX0xPQ0sgYW5kIElGX0FERFJf TE9DSyBvbiBpZnAgbXVzdCBiZSBoZWxkLg0KPiA+PiA+PiA+ID4+ICsgKiBUaGUgSU5fTVVMVElf TElTVF9MT0NLIGFuZCBJRl9BRERSX0xPQ0sgb24gaWZwIG11c3QgYmUgaGVsZC4NCj4gPj4gPj4g PiA+PiAgICovDQo+ID4+ID4+ID4gPj4gIHN0cnVjdCBpbl9tdWx0aSAqDQo+ID4+ID4+ID4gPj4g IGlubV9sb29rdXBfbG9ja2VkKHN0cnVjdCBpZm5ldCAqaWZwLCBjb25zdCBzdHJ1Y3QgaW5fYWRk ciBpbmEpDQo+ID4+ID4+ID4gPj4gQEAgLTI0MCw3ICszMDksNyBAQCBpbm1fbG9va3VwX2xvY2tl ZChzdHJ1Y3QgaWZuZXQgKmlmcCwgY29uc3Qgc3RydWN0IGluX2ENCj4gPj4gPj4gPiA+PiAgICAg ICBzdHJ1Y3QgaWZtdWx0aWFkZHIgKmlmbWE7DQo+ID4+ID4+ID4gPj4gICAgICAgc3RydWN0IGlu X211bHRpICppbm07DQo+ID4+ID4+ID4gPj4NCj4gPj4gPj4gPiA+PiAtICAgICBJTl9NVUxUSV9M T0NLX0FTU0VSVCgpOw0KPiA+PiA+PiA+ID4+ICsgICAgIElOX01VTFRJX0xJU1RfTE9DS19BU1NF UlQoKTsNCj4gPj4gPj4gPiA+PiAgICAgICBJRl9BRERSX0xPQ0tfQVNTRVJUKGlmcCk7DQo+ID4+ ID4+ID4gPj4NCj4gPj4gPj4gPiA+PiAgICAgICBpbm0gPSBOVUxMOw0KPiA+PiA+PiA+ID4+IEBA IC0yNjQsNyArMzMzLDcgQEAgaW5tX2xvb2t1cChzdHJ1Y3QgaWZuZXQgKmlmcCwgY29uc3Qgc3Ry dWN0IGluX2FkZHIgaW5hDQo+ID4+ID4+ID4gPj4gIHsNCj4gPj4gPj4gPiA+PiAgICAgICBzdHJ1 Y3QgaW5fbXVsdGkgKmlubTsNCj4gPj4gPj4gPiA+Pg0KPiA+PiA+PiA+ID4+IC0gICAgIElOX01V TFRJX0xPQ0tfQVNTRVJUKCk7DQo+ID4+ID4+ID4gPj4gKyAgICAgSU5fTVVMVElfTElTVF9MT0NL X0FTU0VSVCgpOw0KPiA+PiA+PiA+ID4+ICAgICAgIElGX0FERFJfUkxPQ0soaWZwKTsNCj4gPj4g Pj4gPiA+PiAgICAgICBpbm0gPSBpbm1fbG9va3VwX2xvY2tlZChpZnAsIGluYSk7DQo+ID4+ID4+ ID4gPj4gICAgICAgSUZfQUREUl9SVU5MT0NLKGlmcCk7DQo+ID4+ID4+ID4gPj4gQEAgLTQ1MSw3 ICs1MjAsNyBAQCBpbl9nZXRtdWx0aShzdHJ1Y3QgaWZuZXQgKmlmcCwgY29uc3Qgc3RydWN0IGlu X2FkZHIgKmcNCj4gPj4gPj4gPiA+PiAgICAgICBJTl9NVUxUSV9MT0NLX0FTU0VSVCgpOw0KPiA+ PiA+PiA+ID4+DQo+ID4+ID4+ID4gPj4gICAgICAgaWkgPSAoc3RydWN0IGluX2lmaW5mbyAqKWlm cC0+aWZfYWZkYXRhW0FGX0lORVRdOw0KPiA+PiA+PiA+ID4+IC0NCj4gPj4gPj4gPiA+PiArICAg ICBJTl9NVUxUSV9MSVNUX0xPQ0soKTsNCj4gPj4gPj4gPiA+PiAgICAgICBpbm0gPSBpbm1fbG9v a3VwKGlmcCwgKmdyb3VwKTsNCj4gPj4gPj4gPiA+PiAgICAgICBpZiAoaW5tICE9IE5VTEwpIHsN Cj4gPj4gPj4gPiA+PiAgICAgICAgICAgICAgIC8qDQo+ID4+ID4+ID4gPj4gQEAgLTQ2MCwxMSAr NTI5LDEzIEBAIGluX2dldG11bHRpKHN0cnVjdCBpZm5ldCAqaWZwLCBjb25zdCBzdHJ1Y3QgaW5f YWRkciAqZw0KPiA+PiA+PiA+ID4+ICAgICAgICAgICAgICAgICovDQo+ID4+ID4+ID4gPj4gICAg ICAgICAgICAgICBLQVNTRVJUKGlubS0+aW5tX3JlZmNvdW50ID49IDEsDQo+ID4+ID4+ID4gPj4g ICAgICAgICAgICAgICAgICAgKCIlczogYmFkIHJlZmNvdW50ICVkIiwgX19mdW5jX18sIGlubS0+ aW5tX3JlZmNvdW50KSk7DQo+ID4+ID4+ID4gPj4gLSAgICAgICAgICAgICArK2lubS0+aW5tX3Jl ZmNvdW50Ow0KPiA+PiA+PiA+ID4+ICsgICAgICAgICAgICAgaW5tX2FjcXVpcmVfbG9ja2VkKGlu bSk7DQo+ID4+ID4+ID4gPj4gICAgICAgICAgICAgICAqcGlubSA9IGlubTsNCj4gPj4gPj4gPiA+ PiAtICAgICAgICAgICAgIHJldHVybiAoMCk7DQo+ID4+ID4+ID4gPj4gICAgICAgfQ0KPiA+PiA+ PiA+ID4+IC0NCj4gPj4gPj4gPiA+PiArICAgICBJTl9NVUxUSV9MSVNUX1VOTE9DSygpOw0KPiA+ PiA+PiA+ID4+ICsgICAgIGlmIChpbm0gIT0gTlVMTCkNCj4gPj4gPj4gPiA+PiArICAgICAgICAg ICAgIHJldHVybiAoMCk7DQo+ID4+ID4+ID4gPj4gKw0KPiA+PiA+PiA+ID4+ICAgICAgIG1lbXNl dCgmZ3NpbiwgMCwgc2l6ZW9mKGdzaW4pKTsNCj4gPj4gPj4gPiA+PiAgICAgICBnc2luLnNpbl9m YW1pbHkgPSBBRl9JTkVUOw0KPiA+PiA+PiA+ID4+ICAgICAgIGdzaW4uc2luX2xlbiA9IHNpemVv ZihzdHJ1Y3Qgc29ja2FkZHJfaW4pOw0KPiA+PiA+PiA+ID4+IEBAIC00NzksNiArNTUwLDcgQEAg aW5fZ2V0bXVsdGkoc3RydWN0IGlmbmV0ICppZnAsIGNvbnN0IHN0cnVjdCBpbl9hZGRyICpnDQo+ ID4+ID4+ID4gPj4gICAgICAgICAgICAgICByZXR1cm4gKGVycm9yKTsNCj4gPj4gPj4gPiA+Pg0K PiA+PiA+PiA+ID4+ICAgICAgIC8qIFhYWCBpZm1hX3Byb3Rvc3BlYyBtdXN0IGJlIGNvdmVyZWQg YnkgSUZfQUREUl9MT0NLICovDQo+ID4+ID4+ID4gPj4gKyAgICAgSU5fTVVMVElfTElTVF9MT0NL KCk7DQo+ID4+ID4+ID4gPj4gICAgICAgSUZfQUREUl9XTE9DSyhpZnApOw0KPiA+PiA+PiA+ID4+ DQo+ID4+ID4+ID4gPj4gICAgICAgLyoNCj4gPj4gPj4gPiA+PiBAQCAtNTA0LDEwICs1NzYsOSBA QCBpbl9nZXRtdWx0aShzdHJ1Y3QgaWZuZXQgKmlmcCwgY29uc3Qgc3RydWN0IGluX2FkZHIgKmcN Cj4gPj4gPj4gPiA+PiAgICAgICAgICAgICAgICAgICAgICAgICAgIF9fZnVuY19fLCBpZm1hLCBp bm0sIGluZXRfbnRvYV9yKCpncm91cCwgYWRkcmJ1ZikpOw0KPiA+PiA+PiA+ID4+ICAgICAgICAg ICAgICAgfQ0KPiA+PiA+PiA+ID4+ICAjZW5kaWYNCj4gPj4gPj4gPiA+PiAtICAgICAgICAgICAg ICsraW5tLT5pbm1fcmVmY291bnQ7DQo+ID4+ID4+ID4gPj4gKyAgICAgICAgICAgICBpbm1fYWNx dWlyZV9sb2NrZWQoaW5tKTsNCj4gPj4gPj4gPiA+PiAgICAgICAgICAgICAgICpwaW5tID0gaW5t Ow0KPiA+PiA+PiA+ID4+IC0gICAgICAgICAgICAgSUZfQUREUl9XVU5MT0NLKGlmcCk7DQo+ID4+ ID4+ID4gPj4gLSAgICAgICAgICAgICByZXR1cm4gKDApOw0KPiA+PiA+PiA+ID4+ICsgICAgICAg ICAgICAgZ290byBvdXRfbG9ja2VkOw0KPiA+PiA+PiA+ID4+ICAgICAgIH0NCj4gPj4gPj4gPiA+ Pg0KPiA+PiA+PiA+ID4+ICAgICAgIElGX0FERFJfV0xPQ0tfQVNTRVJUKGlmcCk7DQo+ID4+ID4+ ID4gPj4gQEAgLTUyMiw2ICs1OTMsNyBAQCBpbl9nZXRtdWx0aShzdHJ1Y3QgaWZuZXQgKmlmcCwg Y29uc3Qgc3RydWN0IGluX2FkZHIgKmcNCj4gPj4gPj4gPiA+PiAgICAgICBpbm0gPSBtYWxsb2Mo c2l6ZW9mKCppbm0pLCBNX0lQTUFERFIsIE1fTk9XQUlUIHwgTV9aRVJPKTsNCj4gPj4gPj4gPiA+ PiAgICAgICBpZiAoaW5tID09IE5VTEwpIHsNCj4gPj4gPj4gPiA+PiAgICAgICAgICAgICAgIElG X0FERFJfV1VOTE9DSyhpZnApOw0KPiA+PiA+PiA+ID4+ICsgICAgICAgICAgICAgSU5fTVVMVElf TElTVF9VTkxPQ0soKTsNCj4gPj4gPj4gPiA+PiAgICAgICAgICAgICAgIGlmX2RlbG11bHRpX2lm bWEoaWZtYSk7DQo+ID4+ID4+ID4gPj4gICAgICAgICAgICAgICByZXR1cm4gKEVOT01FTSk7DQo+ ID4+ID4+ID4gPj4gICAgICAgfQ0KPiA+PiA+PiA+ID4+IEBAIC01MzksOCArNjExLDkgQEAgaW5f Z2V0bXVsdGkoc3RydWN0IGlmbmV0ICppZnAsIGNvbnN0IHN0cnVjdCBpbl9hZGRyICpnDQo+ID4+ ID4+ID4gPj4gICAgICAgaWZtYS0+aWZtYV9wcm90b3NwZWMgPSBpbm07DQo+ID4+ID4+ID4gPj4N Cj4gPj4gPj4gPiA+PiAgICAgICAqcGlubSA9IGlubTsNCj4gPj4gPj4gPiA+PiAtDQo+ID4+ID4+ ID4gPj4gKyBvdXRfbG9ja2VkOg0KPiA+PiA+PiA+ID4+ICAgICAgIElGX0FERFJfV1VOTE9DSyhp ZnApOw0KPiA+PiA+PiA+ID4+ICsgICAgIElOX01VTFRJX0xJU1RfVU5MT0NLKCk7DQo+ID4+ID4+ ID4gPj4gICAgICAgcmV0dXJuICgwKTsNCj4gPj4gPj4gPiA+PiAgfQ0KPiA+PiA+PiA+ID4+DQo+ ID4+ID4+ID4gPj4gQEAgLTU1MCwzNiArNjIzLDI5IEBAIGluX2dldG11bHRpKHN0cnVjdCBpZm5l dCAqaWZwLCBjb25zdCBzdHJ1Y3QgaW5fYWRkciAqZw0KPiA+PiA+PiA+ID4+ICAgKiBJZiB0aGUg cmVmY291bnQgZHJvcHMgdG8gMCwgZnJlZSB0aGUgaW5fbXVsdGkgcmVjb3JkIGFuZA0KPiA+PiA+ PiA+ID4+ICAgKiBkZWxldGUgdGhlIHVuZGVybHlpbmcgbGluay1sYXllciBtZW1iZXJzaGlwLg0K PiA+PiA+PiA+ID4+ICAgKi8NCj4gPj4gPj4gPiA+PiAtdm9pZA0KPiA+PiA+PiA+ID4+IC1pbm1f cmVsZWFzZV9sb2NrZWQoc3RydWN0IGluX211bHRpICppbm0pDQo+ID4+ID4+ID4gPj4gK3N0YXRp YyB2b2lkDQo+ID4+ID4+ID4gPj4gK2lubV9yZWxlYXNlKHN0cnVjdCBpbl9tdWx0aSAqaW5tKQ0K PiA+PiA+PiA+ID4+ICB7DQo+ID4+ID4+ID4gPj4gICAgICAgc3RydWN0IGlmbXVsdGlhZGRyICpp Zm1hOw0KPiA+PiA+PiA+ID4+ICsgICAgIHN0cnVjdCBpZm5ldCAqaWZwOw0KPiA+PiA+PiA+ID4+ DQo+ID4+ID4+ID4gPj4gLSAgICAgSU5fTVVMVElfTE9DS19BU1NFUlQoKTsNCj4gPj4gPj4gPiA+ PiAtDQo+ID4+ID4+ID4gPj4gICAgICAgQ1RSMihLVFJfSUdNUFYzLCAiJXM6IHJlZmNvdW50IGlz ICVkIiwgX19mdW5jX18sIGlubS0+aW5tX3JlZmNvdW50KTsNCj4gPj4gPj4gPiA+PiAtDQo+ID4+ ID4+ID4gPj4gLSAgICAgaWYgKC0taW5tLT5pbm1fcmVmY291bnQgPiAwKSB7DQo+ID4+ID4+ID4g Pj4gLSAgICAgICAgICAgICBDVFIyKEtUUl9JR01QVjMsICIlczogcmVmY291bnQgaXMgbm93ICVk IiwgX19mdW5jX18sDQo+ID4+ID4+ID4gPj4gLSAgICAgICAgICAgICAgICAgaW5tLT5pbm1fcmVm Y291bnQpOw0KPiA+PiA+PiA+ID4+IC0gICAgICAgICAgICAgcmV0dXJuOw0KPiA+PiA+PiA+ID4+ IC0gICAgIH0NCj4gPj4gPj4gPiA+PiAtDQo+ID4+ID4+ID4gPj4gKyAgICAgTVBBU1MoaW5tLT5p bm1fcmVmY291bnQgPT0gMCk7DQo+ID4+ID4+ID4gPj4gICAgICAgQ1RSMihLVFJfSUdNUFYzLCAi JXM6IGZyZWVpbmcgaW5tICVwIiwgX19mdW5jX18sIGlubSk7DQo+ID4+ID4+ID4gPj4NCj4gPj4g Pj4gPiA+PiAgICAgICBpZm1hID0gaW5tLT5pbm1faWZtYTsNCj4gPj4gPj4gPiA+PiArICAgICBp ZnAgPSBpbm0tPmlubV9pZnA7DQo+ID4+ID4+ID4gPj4NCj4gPj4gPj4gPiA+PiAgICAgICAvKiBY WFggdGhpcyBhY2Nlc3MgaXMgbm90IGNvdmVyZWQgYnkgSUZfQUREUl9MT0NLICovDQo+ID4+ID4+ ID4gPj4gICAgICAgQ1RSMihLVFJfSUdNUFYzLCAiJXM6IHB1cmdpbmcgaWZtYSAlcCIsIF9fZnVu Y19fLCBpZm1hKTsNCj4gPj4gPj4gPiA+PiAtICAgICBLQVNTRVJUKGlmbWEtPmlmbWFfcHJvdG9z cGVjID09IGlubSwNCj4gPj4gPj4gPiA+PiAtICAgICAgICAgKCIlczogaWZtYV9wcm90b3NwZWMg IT0gaW5tIiwgX19mdW5jX18pKTsNCj4gPj4gPj4gPiA+PiAtICAgICBpZm1hLT5pZm1hX3Byb3Rv c3BlYyA9IE5VTEw7DQo+ID4+ID4+ID4gPj4gLQ0KPiA+PiA+PiA+ID4+ICsgICAgIGlmIChpZnAp DQo+ID4+ID4+ID4gPj4gKyAgICAgICAgICAgICBDVVJWTkVUX1NFVChpZnAtPmlmX3ZuZXQpOw0K PiA+PiA+PiA+ID4+ICAgICAgIGlubV9wdXJnZShpbm0pOw0KPiA+PiA+PiA+ID4+IC0NCj4gPj4g Pj4gPiA+PiAgICAgICBmcmVlKGlubSwgTV9JUE1BRERSKTsNCj4gPj4gPj4gPiA+Pg0KPiA+PiA+ PiA+ID4+ICAgICAgIGlmX2RlbG11bHRpX2lmbWEoaWZtYSk7DQo+ID4+ID4+ID4gPj4gKyAgICAg aWYgKGlmcCkNCj4gPj4gPj4gPiA+PiArICAgICAgICAgICAgIENVUlZORVRfUkVTVE9SRSgpOw0K PiA+PiA+PiA+ID4+ICB9DQo+ID4+ID4+ID4gPj4NCj4gPj4gPj4gPiA+PiAgLyoNCj4gPj4gPj4g PiA+PiBAQCAtNTkyLDcgKzY1OCw3IEBAIGlubV9jbGVhcl9yZWNvcmRlZChzdHJ1Y3QgaW5fbXVs dGkgKmlubSkNCj4gPj4gPj4gPiA+PiAgew0KPiA+PiA+PiA+ID4+ICAgICAgIHN0cnVjdCBpcF9t c291cmNlICAgICAgICppbXM7DQo+ID4+ID4+ID4gPj4NCj4gPj4gPj4gPiA+PiAtICAgICBJTl9N VUxUSV9MT0NLX0FTU0VSVCgpOw0KPiA+PiA+PiA+ID4+ICsgICAgIElOX01VTFRJX0xJU1RfTE9D S19BU1NFUlQoKTsNCj4gPj4gPj4gPiA+Pg0KPiA+PiA+PiA+ID4+ICAgICAgIFJCX0ZPUkVBQ0go aW1zLCBpcF9tc291cmNlX3RyZWUsICZpbm0tPmlubV9zcmNzKSB7DQo+ID4+ID4+ID4gPj4gICAg ICAgICAgICAgICBpZiAoaW1zLT5pbXNfc3RwKSB7DQo+ID4+ID4+ID4gPj4gQEAgLTYzMiw3ICs2 OTgsNyBAQCBpbm1fcmVjb3JkX3NvdXJjZShzdHJ1Y3QgaW5fbXVsdGkgKmlubSwgY29uc3QgaW5f YWRkcl8NCj4gPj4gPj4gPiA+PiAgICAgICBzdHJ1Y3QgaXBfbXNvdXJjZSAgICAgICAgZmluZDsN Cj4gPj4gPj4gPiA+PiAgICAgICBzdHJ1Y3QgaXBfbXNvdXJjZSAgICAgICAqaW1zLCAqbmltczsN Cj4gPj4gPj4gPiA+Pg0KPiA+PiA+PiA+ID4+IC0gICAgIElOX01VTFRJX0xPQ0tfQVNTRVJUKCk7 DQo+ID4+ID4+ID4gPj4gKyAgICAgSU5fTVVMVElfTElTVF9MT0NLX0FTU0VSVCgpOw0KPiA+PiA+ PiA+ID4+DQo+ID4+ID4+ID4gPj4gICAgICAgZmluZC5pbXNfaGFkZHIgPSBudG9obChuYWRkcik7 DQo+ID4+ID4+ID4gPj4gICAgICAgaW1zID0gUkJfRklORChpcF9tc291cmNlX3RyZWUsICZpbm0t PmlubV9zcmNzLCAmZmluZCk7DQo+ID4+ID4+ID4gPj4gQEAgLTk1OSw2ICsxMDI1LDcgQEAgaW5t X21lcmdlKHN0cnVjdCBpbl9tdWx0aSAqaW5tLCAvKmNvbnN0Ki8gc3RydWN0IGluX21mDQo+ID4+ ID4+ID4gPj4gICAgICAgc2NoYW5nZWQgPSAwOw0KPiA+PiA+PiA+ID4+ICAgICAgIGVycm9yID0g MDsNCj4gPj4gPj4gPiA+PiAgICAgICBuc3JjMSA9IG5zcmMwID0gMDsNCj4gPj4gPj4gPiA+PiAr ICAgICBJTl9NVUxUSV9MSVNUX0xPQ0tfQVNTRVJUKCk7DQo+ID4+ID4+ID4gPj4NCj4gPj4gPj4g PiA+PiAgICAgICAvKg0KPiA+PiA+PiA+ID4+ICAgICAgICAqIFVwZGF0ZSB0aGUgc291cmNlIGZp bHRlcnMgZmlyc3QsIGFzIHRoaXMgbWF5IGZhaWwuDQo+ID4+ID4+ID4gPj4gQEAgLTExNjUsNiAr MTIzMiw3IEBAIGluX2pvaW5ncm91cF9sb2NrZWQoc3RydWN0IGlmbmV0ICppZnAsIGNvbnN0IHN0 cnVjdCBpbg0KPiA+PiA+PiA+ID4+ICAgICAgIGludCAgICAgICAgICAgICAgICAgICAgICBlcnJv cjsNCj4gPj4gPj4gPiA+Pg0KPiA+PiA+PiA+ID4+ICAgICAgIElOX01VTFRJX0xPQ0tfQVNTRVJU KCk7DQo+ID4+ID4+ID4gPj4gKyAgICAgSU5fTVVMVElfTElTVF9VTkxPQ0tfQVNTRVJUKCk7DQo+ ID4+ID4+ID4gPj4NCj4gPj4gPj4gPiA+PiAgICAgICBDVFI0KEtUUl9JR01QVjMsICIlczogam9p biAweCUwOHggb24gJXAoJXMpKSIsIF9fZnVuY19fLA0KPiA+PiA+PiA+ID4+ICAgICAgICAgICBu dG9obChnaW5hLT5zX2FkZHIpLCBpZnAsIGlmcC0+aWZfeG5hbWUpOw0KPiA+PiA+PiA+ID4+IEBA IC0xMTg2LDcgKzEyNTQsNyBAQCBpbl9qb2luZ3JvdXBfbG9ja2VkKHN0cnVjdCBpZm5ldCAqaWZw LCBjb25zdCBzdHJ1Y3QgaW4NCj4gPj4gPj4gPiA+PiAgICAgICAgICAgICAgIENUUjEoS1RSX0lH TVBWMywgIiVzOiBpbl9nZXRtdWx0aSgpIGZhaWx1cmUiLCBfX2Z1bmNfXyk7DQo+ID4+ID4+ID4g Pj4gICAgICAgICAgICAgICByZXR1cm4gKGVycm9yKTsNCj4gPj4gPj4gPiA+PiAgICAgICB9DQo+ ID4+ID4+ID4gPj4gLQ0KPiA+PiA+PiA+ID4+ICsgICAgIElOX01VTFRJX0xJU1RfTE9DSygpOw0K PiA+PiA+PiA+ID4+ICAgICAgIENUUjEoS1RSX0lHTVBWMywgIiVzOiBtZXJnZSBpbm0gc3RhdGUi LCBfX2Z1bmNfXyk7DQo+ID4+ID4+ID4gPj4gICAgICAgZXJyb3IgPSBpbm1fbWVyZ2UoaW5tLCBp bWYpOw0KPiA+PiA+PiA+ID4+ICAgICAgIGlmIChlcnJvcikgew0KPiA+PiA+PiA+ID4+IEBAIC0x MjAxLDEwICsxMjY5LDEyIEBAIGluX2pvaW5ncm91cF9sb2NrZWQoc3RydWN0IGlmbmV0ICppZnAs IGNvbnN0IHN0cnVjdA0KPiA+PiA+PiA+ID4+IGluIGdvdG8gb3V0X2lubV9yZWxlYXNlOw0KPiA+ PiA+PiA+ID4+ICAgICAgIH0NCj4gPj4gPj4gPiA+Pg0KPiA+PiA+PiA+ID4+IC1vdXRfaW5tX3Jl bGVhc2U6DQo+ID4+ID4+ID4gPj4gKyBvdXRfaW5tX3JlbGVhc2U6DQo+ID4+ID4+ID4gPj4gKyAg ICAgSU5fTVVMVElfTElTVF9VTkxPQ0soKTsNCj4gPj4gPj4gPiA+PiAgICAgICBpZiAoZXJyb3Ip IHsNCj4gPj4gPj4gPiA+PiArDQo+ID4+ID4+ID4gPj4gICAgICAgICAgICAgICBDVFIyKEtUUl9J R01QVjMsICIlczogZHJvcHBpbmcgcmVmIG9uICVwIiwgX19mdW5jX18sIGlubSk7DQo+ID4+ID4+ ID4gPj4gLSAgICAgICAgICAgICBpbm1fcmVsZWFzZV9sb2NrZWQoaW5tKTsNCj4gPj4gPj4gPiA+ PiArICAgICAgICAgICAgIGlubV9yZWxlYXNlX2RlZmVycmVkKGlubSk7DQo+ID4+ID4+ID4gPj4g ICAgICAgfSBlbHNlIHsNCj4gPj4gPj4gPiA+PiAgICAgICAgICAgICAgICpwaW5tID0gaW5tOw0K PiA+PiA+PiA+ID4+ICAgICAgIH0NCj4gPj4gPj4gPiA+PiBAQCAtMTI0OSw2ICsxMzE5LDcgQEAg aW5fbGVhdmVncm91cF9sb2NrZWQoc3RydWN0IGluX211bHRpICppbm0sIC8qY29uc3QqLyBzDQo+ ID4+ID4+ID4gPj4gICAgICAgZXJyb3IgPSAwOw0KPiA+PiA+PiA+ID4+DQo+ID4+ID4+ID4gPj4g ICAgICAgSU5fTVVMVElfTE9DS19BU1NFUlQoKTsNCj4gPj4gPj4gPiA+PiArICAgICBJTl9NVUxU SV9MSVNUX1VOTE9DS19BU1NFUlQoKTsNCj4gPj4gPj4gPiA+Pg0KPiA+PiA+PiA+ID4+ICAgICAg IENUUjUoS1RSX0lHTVBWMywgIiVzOiBsZWF2ZSBpbm0gJXAsIDB4JTA4eC8lcywgaW1mICVwIiwg X19mdW5jX18sDQo+ID4+ID4+ID4gPj4gICAgICAgICAgIGlubSwgbnRvaGwoaW5tLT5pbm1fYWRk ci5zX2FkZHIpLA0KPiA+PiA+PiA+ID4+IEBAIC0xMjcyLDE4ICsxMzQzLDIwIEBAIGluX2xlYXZl Z3JvdXBfbG9ja2VkKHN0cnVjdCBpbl9tdWx0aSAqaW5tLCAvKmNvbnN0Ki8NCj4gPj4gPj4gPiA+ PiBzDQo+ID4+ID4+ID4gPj4gICAgICAgICogdGhlIHRyYW5zYWN0aW9uLCBpdCBNVVNUIE5PVCBm YWlsLg0KPiA+PiA+PiA+ID4+ICAgICAgICAqLw0KPiA+PiA+PiA+ID4+ICAgICAgIENUUjEoS1RS X0lHTVBWMywgIiVzOiBtZXJnZSBpbm0gc3RhdGUiLCBfX2Z1bmNfXyk7DQo+ID4+ID4+ID4gPj4g KyAgICAgSU5fTVVMVElfTElTVF9MT0NLKCk7DQo+ID4+ID4+ID4gPj4gICAgICAgZXJyb3IgPSBp bm1fbWVyZ2UoaW5tLCBpbWYpOw0KPiA+PiA+PiA+ID4+ICAgICAgIEtBU1NFUlQoZXJyb3IgPT0g MCwgKCIlczogZmFpbGVkIHRvIG1lcmdlIGlubSBzdGF0ZSIsIF9fZnVuY19fKSk7DQo+ID4+ID4+ ID4gPj4NCj4gPj4gPj4gPiA+PiAgICAgICBDVFIxKEtUUl9JR01QVjMsICIlczogZG9pbmcgaWdt cCBkb3duY2FsbCIsIF9fZnVuY19fKTsNCj4gPj4gPj4gPiA+PiAgICAgICBDVVJWTkVUX1NFVChp bm0tPmlubV9pZnAtPmlmX3ZuZXQpOw0KPiA+PiA+PiA+ID4+ICAgICAgIGVycm9yID0gaWdtcF9j aGFuZ2Vfc3RhdGUoaW5tKTsNCj4gPj4gPj4gPiA+PiArICAgICBpbm1fcmVsZWFzZV9kZWZlcnJl ZChpbm0pOw0KPiA+PiA+PiA+ID4+ICsgICAgIElOX01VTFRJX0xJU1RfVU5MT0NLKCk7DQo+ID4+ ID4+ID4gPj4gICAgICAgQ1VSVk5FVF9SRVNUT1JFKCk7DQo+ID4+ID4+ID4gPj4gICAgICAgaWYg KGVycm9yKQ0KPiA+PiA+PiA+ID4+ICAgICAgICAgICAgICAgQ1RSMShLVFJfSUdNUFYzLCAiJXM6 IGZhaWxlZCBpZ21wIGRvd25jYWxsIiwgX19mdW5jX18pOw0KPiA+PiA+PiA+ID4+DQo+ID4+ID4+ ID4gPj4gICAgICAgQ1RSMihLVFJfSUdNUFYzLCAiJXM6IGRyb3BwaW5nIHJlZiBvbiAlcCIsIF9f ZnVuY19fLCBpbm0pOw0KPiA+PiA+PiA+ID4+IC0gICAgIGlubV9yZWxlYXNlX2xvY2tlZChpbm0p Ow0KPiA+PiA+PiA+ID4+DQo+ID4+ID4+ID4gPj4gICAgICAgcmV0dXJuIChlcnJvcik7DQo+ID4+ ID4+ID4gPj4gIH0NCj4gPj4gPj4gPiA+PiBAQCAtMTMxNSwxOCArMTM4OCw2IEBAIGluX2FkZG11 bHRpKHN0cnVjdCBpbl9hZGRyICphcCwgc3RydWN0IGlmbmV0ICppZnApDQo+ID4+ID4+ID4gPj4g IH0NCj4gPj4gPj4gPiA+Pg0KPiA+PiA+PiA+ID4+ICAvKg0KPiA+PiA+PiA+ID4+IC0gKiBMZWF2 ZSBhbiBJUHY0IG11bHRpY2FzdCBncm91cCwgYXNzdW1lZCB0byBiZSBpbiBleGNsdXNpdmUgKCos RykgbW9kZS4NCj4gPj4gPj4gPiA+PiAtICogVGhpcyBLUEkgaXMgZm9yIGxlZ2FjeSBrZXJuZWwg Y29uc3VtZXJzIG9ubHkuDQo+ID4+ID4+ID4gPj4gLSAqLw0KPiA+PiA+PiA+ID4+DQo+ID4+ID4+ ID4gPj4gKioqIERJRkYgT1VUUFVUIFRSVU5DQVRFRCBBVCAxMDAwIExJTkVTICoqKg0KPiA+PiA+ PiA+ID4+IF9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fDQo+ ID4+ID4+ID4gPj4gc3ZuLXNyYy1oZWFkQGZyZWVic2Qub3JnIG1haWxpbmcgbGlzdA0KPiA+PiA+ PiA+ID4+IGh0dHBzOi8vbGlzdHMuZnJlZWJzZC5vcmcvbWFpbG1hbi9saXN0aW5mby9zdm4tc3Jj LWhlYWQNCj4gPj4gPj4gPiA+PiBUbyB1bnN1YnNjcmliZSwgc2VuZCBhbnkgbWFpbCB0byAic3Zu LXNyYy1oZWFkLXVuc3Vic2NyaWJlQGZyZWVic2Qub3JnIiAgDQo+ID4+ID4+ID4gPg0KPiA+PiA+ PiA+ID4NCj4gPj4gPj4gPiA+IEFmdGVyIChhcm91bmQhKSB0aGlzIHVwZGF0ZSwgc29tZSBib3hl cyB3aXRoIGkzNTAgZHVhbCBwb3J0IE5JQ3MgaW1tZWRpYXRlbHkNCj4gPj4gPj4gPiA+IGNyYXNo IHdpdGggRmF0YWwgdHJhcCAxMjogcGFnZSBmYXVsdCBhbmQgc29tZXRoaW5nIHdpdGgNCj4gPj4g Pj4gPiA+DQo+ID4+ID4+ID4gPiBjdXJyZW50IHByb2Nlc3M6IChpc2Mtd29ya2VyMDAwNikNCj4g Pj4gPj4gPiA+DQo+ID4+ID4+ID4gPiAuLi4uDQo+ID4+ID4+ID4gPg0KPiA+PiA+PiA+ID4gVGhv c2UgYm94ZXMgZG8gbm90IGhhdmUgZGVidWdnaW5nIGtlcm5lbC4gVGhlIHN5bXB0b21icyBhcmUg dGhlIHNhbWUuIFNpbmdsZQ0KPiA+PiA+PiA+ID4gdXNlciBrZXJuZWwgd29ya3MsIGJ1dCB0aGUg bW9tZW50IEkgcGVyZm9ybSAvZXRjL25ldHN0YXJ0IGFuZCBhbnkga2luZCBvZiBuZXQNCj4gPj4g Pj4gPiA+IHRyYWZmaWMgZXN0YWJsaXNoZXMsIHRoaXMgY3JhcCBiYWlscyBvdXQuDQo+ID4+ID4+ ID4gPg0KPiA+PiA+PiA+ID4NCj4gPj4gPj4gPiA+IC0gLS0NCj4gPj4gPj4gPiA+IE8uIEhhcnRt YW5uDQo+ID4+ID4+ID4gPg0KPiA+PiA+PiA+ID4gSWNoIHdpZGVyc3ByZWNoZSBkZXIgTnV0enVu ZyBvZGVyIMOcYmVybWl0dGx1bmcgbWVpbmVyIERhdGVuIGbDvHINCj4gPj4gPj4gPiA+IFdlcmJl endlY2tlIG9kZXIgZsO8ciBkaWUgTWFya3QtIG9kZXIgTWVpbnVuZ3Nmb3JzY2h1bmcgKMKnIDI4 IEFicy4gNCBCRFNHKS4NCj4gPj4gPj4gPiA+IC0tLS0tQkVHSU4gUEdQIFNJR05BVFVSRS0tLS0t DQo+ID4+ID4+ID4gPg0KPiA+PiA+PiA+ID4gaUxVRUFSTUtBQjBXSVFRWlZaTXpBdHdDMlQvODZU clM1MjhmeUZoWWxBVUNXdXRqdGdBS0NSRFM1MjhmeUZoWQ0KPiA+PiA+PiA+ID4gbEFrekFmOVBo YUZUd05oUUQyekY3eFNISjJ3ZnZMdG9VRWpabHpHc3VzQUNwMXBhN0pBZnowUHl2K2xtK1hOSg0K PiA+PiA+PiA+ID4gdkxFbHJJZjFDbUR6dUE4eWJsWi94L3dPVlNKa0FmOUMrNTBEVkV0R3E1SC9i SFNETnd6bXFyajhZZ0I3WHBTcw0KPiA+PiA+PiA+ID4gUE1SWGMrSXdJYTFKZ2kyeU0rNlRDU05T czFONWJFVWhVOUJpOGVYeTZZMEZTa0FaZVYrcw0KPiA+PiA+PiA+ID4gPVMwYkMNCj4gPj4gPj4g PiA+IC0tLS0tRU5EIFBHUCBTSUdOQVRVUkUtLS0tLQ0KPiA+PiA+PiA+ID4gX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18NCj4gPj4gPj4gPiA+IHN2bi1zcmMt aGVhZEBmcmVlYnNkLm9yZyBtYWlsaW5nIGxpc3QNCj4gPj4gPj4gPiA+IGh0dHBzOi8vbGlzdHMu ZnJlZWJzZC5vcmcvbWFpbG1hbi9saXN0aW5mby9zdm4tc3JjLWhlYWQNCj4gPj4gPj4gPiA+IFRv IHVuc3Vic2NyaWJlLCBzZW5kIGFueSBtYWlsIHRvICJzdm4tc3JjLWhlYWQtdW5zdWJzY3JpYmVA ZnJlZWJzZC5vcmciICANCj4gPj4gPj4NCj4gPj4gPj4NCj4gPj4gPj4NCj4gPj4gPj4gLSAtLQ0K PiA+PiA+PiBPLiBIYXJ0bWFubg0KPiA+PiA+Pg0KPiA+PiA+PiBJY2ggd2lkZXJzcHJlY2hlIGRl ciBOdXR6dW5nIG9kZXIgw5xiZXJtaXR0bHVuZyBtZWluZXIgRGF0ZW4gZsO8cg0KPiA+PiA+PiBX ZXJiZXp3ZWNrZSBvZGVyIGbDvHIgZGllIE1hcmt0LSBvZGVyIE1laW51bmdzZm9yc2NodW5nICjC pyAyOCBBYnMuIDQgQkRTRykuDQo+ID4+ID4+IC0tLS0tQkVHSU4gUEdQIFNJR05BVFVSRS0tLS0t DQo+ID4+ID4+DQo+ID4+ID4+IGlMVUVBUk1LQUIwV0lRUVpWWk16QXR3QzJULzg2VHJTNTI4ZnlG aFlsQVVDV3V0djh3QUtDUkRTNTI4ZnlGaFkNCj4gPj4gPj4gbEllMUFmd09DQWlncFhhd1o3S0Fq TE5wV2pSVDREc3J6ZnFjQzU3TW96aVZReUsrWDlxb1FBMnYwcGxWTnBQMA0KPiA+PiA+PiBGTHFo NWRrUlhpaU9McnlyOWF1SUxVS3lMQ055QWZ3TDdjRmUxWVJYN1Zuc0s1dy8vOFhtMjV0Sjc0Q1hD OFAwDQo+ID4+ID4+IGdhb1NxdkRxQ0tXVGo2aU4rUS9Qam9Ob2hXb0lLNzZ0aVpBV1Bqa2FIZXVG YnlwUGEyRysNCj4gPj4gPj4gPUVwSmENCj4gPj4gPj4gLS0tLS1FTkQgUEdQIFNJR05BVFVSRS0t LS0tDQo+ID4+ID4+IF9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fDQo+ID4+ID4+IHN2bi1zcmMtaGVhZEBmcmVlYnNkLm9yZyBtYWlsaW5nIGxpc3QNCj4gPj4g Pj4gaHR0cHM6Ly9saXN0cy5mcmVlYnNkLm9yZy9tYWlsbWFuL2xpc3RpbmZvL3N2bi1zcmMtaGVh ZA0KPiA+PiA+PiBUbyB1bnN1YnNjcmliZSwgc2VuZCBhbnkgbWFpbCB0byAic3ZuLXNyYy1oZWFk LXVuc3Vic2NyaWJlQGZyZWVic2Qub3JnIiAgDQo+ID4+ID4NCj4gPj4gPg0KPiA+PiA+DQo+ID4+ ID4gLSAtLQ0KPiA+PiA+IE8uIEhhcnRtYW5uDQo+ID4+ID4NCj4gPj4gPiBJY2ggd2lkZXJzcHJl Y2hlIGRlciBOdXR6dW5nIG9kZXIgw5xiZXJtaXR0bHVuZyBtZWluZXIgRGF0ZW4gZsO8cg0KPiA+ PiA+IFdlcmJlendlY2tlIG9kZXIgZsO8ciBkaWUgTWFya3QtIG9kZXIgTWVpbnVuZ3Nmb3JzY2h1 bmcgKMKnIDI4IEFicy4gNCBCRFNHKS4NCj4gPj4gPiAtLS0tLUJFR0lOIFBHUCBTSUdOQVRVUkUt LS0tLQ0KPiA+PiA+DQo+ID4+ID4gaUxVRUFSTUtBQjBXSVFRWlZaTXpBdHdDMlQvODZUclM1Mjhm eUZoWWxBVUNXdTF5OGdBS0NSRFM1MjhmeUZoWQ0KPiA+PiA+IGxGRW9BZjRpVys0dFNBT2NHMEVR MS9ZMlBOcUxDWDRBbnBZVGxTbGFFQ3h0RmxEWi9YYk5PdzNUeVZCOVJiUUMNCj4gPj4gPiBxR0U5 VXgyeFFCRDQ4YTFOYjFJSFZWQzlqaTdqQWdDTE9YektVcW1jWGtQTnZqU2daV1orU2R5ZDU1Q2hv TGdZDQo+ID4+ID4gU2t5WThGU1UzR0VEbTI4V2dhWGpRNG9KaCs3L0ZmNjlOc3VEWmx0N2lDMjRL WmRSS0gwMA0KPiA+PiA+ID00YlkrDQo+ID4+ID4gLS0tLS1FTkQgUEdQIFNJR05BVFVSRS0tLS0t ICANCj4gPj4gX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18N Cj4gPj4gc3ZuLXNyYy1oZWFkQGZyZWVic2Qub3JnIG1haWxpbmcgbGlzdA0KPiA+PiBodHRwczov L2xpc3RzLmZyZWVic2Qub3JnL21haWxtYW4vbGlzdGluZm8vc3ZuLXNyYy1oZWFkDQo+ID4+IFRv IHVuc3Vic2NyaWJlLCBzZW5kIGFueSBtYWlsIHRvICJzdm4tc3JjLWhlYWQtdW5zdWJzY3JpYmVA ZnJlZWJzZC5vcmciICANCj4gPg0KPiA+DQo+ID4NCj4gPiAtIC0tDQo+ID4gTy4gSGFydG1hbm4N Cj4gPg0KPiA+IEljaCB3aWRlcnNwcmVjaGUgZGVyIE51dHp1bmcgb2RlciDDnGJlcm1pdHRsdW5n IG1laW5lciBEYXRlbiBmw7xyDQo+ID4gV2VyYmV6d2Vja2Ugb2RlciBmw7xyIGRpZSBNYXJrdC0g b2RlciBNZWludW5nc2ZvcnNjaHVuZyAowqcgMjggQWJzLiA0IEJEU0cpLg0KPiA+IC0tLS0tQkVH SU4gUEdQIFNJR05BVFVSRS0tLS0tDQo+ID4NCj4gPiBpTFVFQVJNS0FCMFdJUVFaVlpNekF0d0My VC84NlRyUzUyOGZ5RmhZbEFVQ1d1NFV0d0FLQ1JEUzUyOGZ5RmhZDQo+ID4gbEl6MkFmOW5xclNH UXNhTlZaOURjU1RYNG9ybzNTUi84ZWZ0YkM0MWRhdDY3Z2pZSXViOXhES1VsYmZVUElrVA0KPiA+ IG9HZFBQOXhPMzUrWE9ubXpPSzZ4bUx5SmJ3djVBZ0NYZTdYYmNCY0dmUTM4MHpoR2dtZVo1aWNo MlRkMUxneG8NCj4gPiA4dDdpRm8reFR2K1RpY1EyN3VScUN3S1BjWUViejA2VUtLZ3E5dHRZcWdY WlYxVUl6czVoDQo+ID4gPS9VWmYNCj4gPiAtLS0tLUVORCBQR1AgU0lHTkFUVVJFLS0tLS0gIA0K PiBfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXw0KPiBzdm4t c3JjLWhlYWRAZnJlZWJzZC5vcmcgbWFpbGluZyBsaXN0DQo+IGh0dHBzOi8vbGlzdHMuZnJlZWJz ZC5vcmcvbWFpbG1hbi9saXN0aW5mby9zdm4tc3JjLWhlYWQNCj4gVG8gdW5zdWJzY3JpYmUsIHNl bmQgYW55IG1haWwgdG8gInN2bi1zcmMtaGVhZC11bnN1YnNjcmliZUBmcmVlYnNkLm9yZyINCg0K DQoNCi0gLS0gDQpPLiBIYXJ0bWFubg0KDQpJY2ggd2lkZXJzcHJlY2hlIGRlciBOdXR6dW5nIG9k ZXIgw5xiZXJtaXR0bHVuZyBtZWluZXIgRGF0ZW4gZsO8cg0KV2VyYmV6d2Vja2Ugb2RlciBmw7xy IGRpZSBNYXJrdC0gb2RlciBNZWludW5nc2ZvcnNjaHVuZyAowqcgMjggQWJzLiA0IEJEU0cpLg0K LS0tLS1CRUdJTiBQR1AgU0lHTkFUVVJFLS0tLS0NCg0KaUxVRUFSTUtBQjBXSVFRWlZaTXpBdHdD MlQvODZUclM1MjhmeUZoWWxBVUNXdTRhTFFBS0NSRFM1MjhmeUZoWQ0KbE5zb0FmMGZGbkU3bkdh bmttMzg3eHNrT0FIS3hiR1BmelFjTkp5V1ZWM1pCWm94ZTQ5L1RuYkxYcmc0UERxQw0KN2tYZkl1 ejMwZWdRV1Y1b0h6WndZZU9SZnR4VUFmMFUzZjgyVEZIVEZQeVZVUVdMT2FyU1hoOVpEYzh3NHVi OQ0KSGV1cHh0RlUwTnlQb3JEYjQ4YVIzNFJ5ZkdUVkJmVnBjbWQ3ajRwcVY1REF5YjZtVVQwdQ0K PXY4b1INCi0tLS0tRU5EIFBHUCBTSUdOQVRVUkUtLS0tLQ0K