From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mga11.intel.com (mga11.intel.com [192.55.52.93]) by gabe.freedesktop.org (Postfix) with ESMTPS id E49B36E25D for ; Thu, 4 Jul 2019 06:07:12 +0000 (UTC) Date: Thu, 4 Jul 2019 08:07:09 +0200 From: Katarzyna Dec Message-ID: <20190704060709.GI25539@kdec5-desk.ger.corp.intel.com> References: <20190703134303.328-1-lukasz.kalamarz@intel.com> MIME-Version: 1.0 Content-Disposition: inline In-Reply-To: <20190703134303.328-1-lukasz.kalamarz@intel.com> Subject: Re: [igt-dev] [PATCH i-g-t v2 1/2] tools/intel_dump_audion: Rename BIT macros to REG_BIT List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Errors-To: igt-dev-bounces@lists.freedesktop.org Sender: "igt-dev" To: Lukasz Kalamarz , igt-dev@lists.freedesktop.org Cc: Wu Fengguang , Zhenyu Wang List-ID: T24gV2VkLCBKdWwgMDMsIDIwMTkgYXQgMDM6NDM6MDJQTSArMDIwMCwgTHVrYXN6IEthbGFtYXJ6 IHdyb3RlOgo+IEluIGtlcm5lbCBtYWNybyBCSVQgaXMgdXNlZCB0byBzZXQgdmFsdWUgMSBvbiBh IGdpdmVuIEJJVCwgd2hpbGUgaW4KPiB0aGlzIHRvb2wgaXQgd2FzIGNoZWNraW5nIHZhbHVlIG9m IGdpdmVuIGJpdCBpbiByZWdpc3Rlci4KPiBTbyBpdCB3YXMgcmVuYW1lZC4KPiAKPiBTaWduZWQt b2ZmLWJ5OiBMdWthc3ogS2FsYW1hcnogPGx1a2Fzei5rYWxhbWFyekBpbnRlbC5jb20+Cj4gQ2M6 IFpoZW55dSBXYW5nIDx6aGVueXUuei53YW5nQGludGVsLmNvbT4KPiBDYzogV3UgRmVuZ2d1YW5n IDxmZW5nZ3Vhbmcud3VAaW50ZWwuY29tPgo+IENjOiBLYXRhcnp5bmEgRGVjIDxrYXRhcnp5bmEu ZGVjQGludGVsLmNvbT4KPiBDYzogTWljaGFsIFdpbmlhcnNraSA8bWljaGFsLndpbmlhcnNraUBp bnRlbC5jb20+Cj4gLS0tCj4gIHRvb2xzL2ludGVsX2F1ZGlvX2R1bXAuYyB8IDExMzYgKysrKysr KysrKysrKysrKysrKy0tLS0tLS0tLS0tLS0tLS0tLS0KPiAgMSBmaWxlIGNoYW5nZWQsIDU2OCBp bnNlcnRpb25zKCspLCA1NjggZGVsZXRpb25zKC0pCj4gCj4gZGlmZiAtLWdpdCBhL3Rvb2xzL2lu dGVsX2F1ZGlvX2R1bXAuYyBiL3Rvb2xzL2ludGVsX2F1ZGlvX2R1bXAuYwo+IGluZGV4IDkwMjYw YTJmLi43MjZiYjRiNiAxMDA2NDQKPiAtLS0gYS90b29scy9pbnRlbF9hdWRpb19kdW1wLmMKPiAr KysgYi90b29scy9pbnRlbF9hdWRpb19kdW1wLmMKPiBAQCAtNDYsOCArNDYsOCBAQCBzdGF0aWMg aW50IGRpc3BfcmVnX2Jhc2UgPSAwOwkvKiBiYXNlIGFkZHJlc3Mgb2YgZGlzcGxheSByZWdpc3Rl cnMgKi8KPiAgCj4gICNkZWZpbmUgQklUU1RPKG4pCQkobiA+PSBzaXplb2YobG9uZykgKiA4ID8g fjAgOiAoMVVMIDw8IChuKSkgLSAxKQo+ICAjZGVmaW5lIEJJVE1BU0soaGlnaCwgbG93KQkoQklU U1RPKGhpZ2grMSkgJiB+QklUU1RPKGxvdykpCj4gLSNkZWZpbmUgQklUUyhyZWcsIGhpZ2gsIGxv dykJKCgocmVnKSAmIChCSVRNQVNLKGhpZ2gsIGxvdykpKSA+PiAobG93KSkKPiAtI2RlZmluZSBC SVQocmVnLCBuKQkJQklUUyhyZWcsIG4sIG4pCj4gKyNkZWZpbmUgUkVHX0JJVFMocmVnLCBoaWdo LCBsb3cpCSgoKHJlZykgJiAoQklUTUFTSyhoaWdoLCBsb3cpKSkgPj4gKGxvdykpCj4gKyNkZWZp bmUgUkVHX0JJVChyZWcsIG4pCQlSRUdfQklUUyhyZWcsIG4sIG4pCj4gIAo+ICAjZGVmaW5lIG1p bl90KHR5cGUsIHgsIHkpICh7ICAgICAgICAgICAgICAgICAgICBcCj4gIAkJdHlwZSBfX21pbjEg PSAoeCk7ICAgICAgICAgICAgICAgICAgICAgIFwKPiBAQCAtNDMwLDExICs0MzAsMTEgQEAgZW51 bSB7Cj4gIAo+ICBzdGF0aWMgdm9pZCBkb19zZWxmX3Rlc3RzKHZvaWQpCj4gIHsKPiAtCWlmIChC SVQoMSwgMCkgIT0gMSkKPiArCWlmIChSRUdfQklUKDEsIDApICE9IDEpCj4gIAkJZXhpdCgxKTsK PiAtCWlmIChCSVQoMHg4MDAwMDAwMCwgMzEpICE9IDEpCj4gKwlpZiAoUkVHX0JJVCgweDgwMDAw MDAwLCAzMSkgIT0gMSkKPiAgCQlleGl0KDIpOwo+IC0JaWYgKEJJVFMoMHhjMDAwMDAwMCwgMzEs IDMwKSAhPSAzKQo+ICsJaWYgKFJFR19CSVRTKDB4YzAwMDAwMDAsIDMxLCAzMCkgIT0gMykKPiAg CQlleGl0KDMpOwo+ICB9Cj4gIAo+IEBAIC01MzcsMTAgKzUzNywxMCBAQCBzdGF0aWMgdm9pZCBk dW1wX2VhZ2xlbGFrZSh2b2lkKQo+ICAJcHJpbnRmKCJBVURfVklEX0RJRCBkZXZpY2UgaWRcdFx0 XHQweCV4XG4iLCBkd29yZCAmIDB4ZmZmZik7Cj4gIAo+ICAJZHdvcmQgPSBJTlJFRyhBVURfUklE KTsKPiAtCXByaW50ZigiQVVEX1JJRCBtYWpvciByZXZpc2lvblx0XHRcdDB4JWx4XG4iLCBCSVRT KGR3b3JkLCAyMywgMjApKTsKPiAtCXByaW50ZigiQVVEX1JJRCBtaW5vciByZXZpc2lvblx0XHRc dDB4JWx4XG4iLCBCSVRTKGR3b3JkLCAxOSwgMTYpKTsKPiAtCXByaW50ZigiQVVEX1JJRCByZXZp c2lvbiBpZFx0XHRcdDB4JWx4XG4iLCAgICBCSVRTKGR3b3JkLCAxNSwgOCkpOwo+IC0JcHJpbnRm KCJBVURfUklEIHN0ZXBwaW5nIGlkXHRcdFx0MHglbHhcbiIsICAgIEJJVFMoZHdvcmQsIDcsIDAp KTsKPiArCXByaW50ZigiQVVEX1JJRCBtYWpvciByZXZpc2lvblx0XHRcdDB4JWx4XG4iLCBSRUdf QklUUyhkd29yZCwgMjMsIDIwKSk7Cj4gKwlwcmludGYoIkFVRF9SSUQgbWlub3IgcmV2aXNpb25c dFx0XHQweCVseFxuIiwgUkVHX0JJVFMoZHdvcmQsIDE5LCAxNikpOwo+ICsJcHJpbnRmKCJBVURf UklEIHJldmlzaW9uIGlkXHRcdFx0MHglbHhcbiIsICAgIFJFR19CSVRTKGR3b3JkLCAxNSwgOCkp Owo+ICsJcHJpbnRmKCJBVURfUklEIHN0ZXBwaW5nIGlkXHRcdFx0MHglbHhcbiIsICAgIFJFR19C SVRTKGR3b3JkLCA3LCAwKSk7Cj4gIAo+ICAJZHdvcmQgPSBJTlJFRyhTRFZPQik7Cj4gIAlwcmlu dGYoIlNEVk9CIGVuYWJsZVx0XHRcdFx0JXVcbiIsICAgICAgISEoZHdvcmQgJiBTRFZPX0VOQUJM RSkpOwo+IEBAIC01NTcsMTgwICs1NTcsMTgwIEBAIHN0YXRpYyB2b2lkIGR1bXBfZWFnbGVsYWtl KHZvaWQpCj4gIAlwcmludGYoIlNEVk9DIGF1ZGlvIGVuYWJsZWRcdFx0XHQldVxuIiwgISEoZHdv cmQgJiBTRFZPX0FVRElPX0VOQUJMRSkpOwo+ICAKPiAgCWR3b3JkID0gSU5SRUcoUE9SVF9IT1RQ TFVHX0VOKTsKPiAtCXByaW50ZigiUE9SVF9IT1RQTFVHX0VOIERpc3BsYXlQb3J0L0hETUkgcG9y dCBCXHQlbGRcbiIsIEJJVChkd29yZCwgMjkpKSwKPiAtCXByaW50ZigiUE9SVF9IT1RQTFVHX0VO IERpc3BsYXlQb3J0L0hETUkgcG9ydCBDXHQlbGRcbiIsIEJJVChkd29yZCwgMjgpKSwKPiAtCXBy aW50ZigiUE9SVF9IT1RQTFVHX0VOIERpc3BsYXlQb3J0IHBvcnQgRFx0JWxkXG4iLCAgICAgIEJJ VChkd29yZCwgMjcpKSwKPiAtCXByaW50ZigiUE9SVF9IT1RQTFVHX0VOIFNEVk9CXHRcdFx0JWxk XG4iLCBCSVQoZHdvcmQsIDI2KSksCj4gLQlwcmludGYoIlBPUlRfSE9UUExVR19FTiBTRFZPQ1x0 XHRcdCVsZFxuIiwgQklUKGR3b3JkLCAyNSkpLAo+IC0JcHJpbnRmKCJQT1JUX0hPVFBMVUdfRU4g YXVkaW9cdFx0XHQlbGRcbiIsIEJJVChkd29yZCwgMjQpKSwKPiAtCXByaW50ZigiUE9SVF9IT1RQ TFVHX0VOIFRWXHRcdFx0JWxkXG4iLCAgICBCSVQoZHdvcmQsIDIzKSksCj4gLQlwcmludGYoIlBP UlRfSE9UUExVR19FTiBDUlRcdFx0XHQlbGRcbiIsICAgQklUKGR3b3JkLCA5KSksCj4gKwlwcmlu dGYoIlBPUlRfSE9UUExVR19FTiBEaXNwbGF5UG9ydC9IRE1JIHBvcnQgQlx0JWxkXG4iLCBSRUdf QklUKGR3b3JkLCAyOSkpLAo+ICsJcHJpbnRmKCJQT1JUX0hPVFBMVUdfRU4gRGlzcGxheVBvcnQv SERNSSBwb3J0IENcdCVsZFxuIiwgUkVHX0JJVChkd29yZCwgMjgpKSwKPiArCXByaW50ZigiUE9S VF9IT1RQTFVHX0VOIERpc3BsYXlQb3J0IHBvcnQgRFx0JWxkXG4iLCAgICAgIFJFR19CSVQoZHdv cmQsIDI3KSksCj4gKwlwcmludGYoIlBPUlRfSE9UUExVR19FTiBTRFZPQlx0XHRcdCVsZFxuIiwg UkVHX0JJVChkd29yZCwgMjYpKSwKPiArCXByaW50ZigiUE9SVF9IT1RQTFVHX0VOIFNEVk9DXHRc dFx0JWxkXG4iLCBSRUdfQklUKGR3b3JkLCAyNSkpLAo+ICsJcHJpbnRmKCJQT1JUX0hPVFBMVUdf RU4gYXVkaW9cdFx0XHQlbGRcbiIsIFJFR19CSVQoZHdvcmQsIDI0KSksCj4gKwlwcmludGYoIlBP UlRfSE9UUExVR19FTiBUVlx0XHRcdCVsZFxuIiwgICAgUkVHX0JJVChkd29yZCwgMjMpKSwKPiAr CXByaW50ZigiUE9SVF9IT1RQTFVHX0VOIENSVFx0XHRcdCVsZFxuIiwgICBSRUdfQklUKGR3b3Jk LCA5KSksCj4gIAo+ICAJZHdvcmQgPSBJTlJFRyhWSURFT19ESVBfQ1RMKTsKPiAtCXByaW50Zigi VklERU9fRElQX0NUTCBlbmFibGUgZ3JhcGhpY3MgRElQXHQlbGRcbiIsICAgICBCSVQoZHdvcmQs IDMxKSksCj4gKwlwcmludGYoIlZJREVPX0RJUF9DVEwgZW5hYmxlIGdyYXBoaWNzIERJUFx0JWxk XG4iLCAgICAgUkVHX0JJVChkd29yZCwgMzEpKSwKPiAgCXByaW50ZigiVklERU9fRElQX0NUTCBw b3J0IHNlbGVjdFx0XHRbMHglbHhdICVzXG4iLAo+IC0JCQkJQklUUyhkd29yZCwgMzAsIDI5KSwg ZGlwX3BvcnRbQklUUyhkd29yZCwgMzAsIDI5KV0pOwo+IC0JcHJpbnRmKCJWSURFT19ESVBfQ1RM IERJUCBidWZmZXIgdHJhbnMgYWN0aXZlXHQlbHVcbiIsIEJJVChkd29yZCwgMjgpKTsKPiAtCXBy aW50ZigiVklERU9fRElQX0NUTCBBVkkgRElQIGVuYWJsZWRcdFx0JWx1XG4iLCAgICAgICBCSVQo ZHdvcmQsIDIxKSk7Cj4gLQlwcmludGYoIlZJREVPX0RJUF9DVEwgdmVuZG9yIERJUCBlbmFibGVk XHQlbHVcbiIsICAgICAgQklUKGR3b3JkLCAyMikpOwo+IC0JcHJpbnRmKCJWSURFT19ESVBfQ1RM IFNQRCBESVAgZW5hYmxlZFx0XHQlbHVcbiIsICAgICAgIEJJVChkd29yZCwgMjQpKTsKPiArCQkJ CVJFR19CSVRTKGR3b3JkLCAzMCwgMjkpLCBkaXBfcG9ydFtSRUdfQklUUyhkd29yZCwgMzAsIDI5 KV0pOwo+ICsJcHJpbnRmKCJWSURFT19ESVBfQ1RMIERJUCBidWZmZXIgdHJhbnMgYWN0aXZlXHQl bHVcbiIsIFJFR19CSVQoZHdvcmQsIDI4KSk7Cj4gKwlwcmludGYoIlZJREVPX0RJUF9DVEwgQVZJ IERJUCBlbmFibGVkXHRcdCVsdVxuIiwgICAgICAgUkVHX0JJVChkd29yZCwgMjEpKTsKPiArCXBy aW50ZigiVklERU9fRElQX0NUTCB2ZW5kb3IgRElQIGVuYWJsZWRcdCVsdVxuIiwgICAgICBSRUdf QklUKGR3b3JkLCAyMikpOwo+ICsJcHJpbnRmKCJWSURFT19ESVBfQ1RMIFNQRCBESVAgZW5hYmxl ZFx0XHQlbHVcbiIsICAgICAgIFJFR19CSVQoZHdvcmQsIDI0KSk7Cj4gIAlwcmludGYoIlZJREVP X0RJUF9DVEwgRElQIGJ1ZmZlciBpbmRleFx0XHRbMHglbHhdICVzXG4iLAo+IC0JCQlCSVRTKGR3 b3JkLCAyMCwgMTkpLCB2aWRlb19kaXBfaW5kZXhbQklUUyhkd29yZCwgMjAsIDE5KV0pOwo+ICsJ CQlSRUdfQklUUyhkd29yZCwgMjAsIDE5KSwgdmlkZW9fZGlwX2luZGV4W1JFR19CSVRTKGR3b3Jk LCAyMCwgMTkpXSk7Cj4gIAlwcmludGYoIlZJREVPX0RJUF9DVEwgRElQIHRyYW5zIGZyZXFcdFx0 WzB4JWx4XSAlc1xuIiwKPiAtCQkJQklUUyhkd29yZCwgMTcsIDE2KSwgdmlkZW9fZGlwX3RyYW5z W0JJVFMoZHdvcmQsIDE3LCAxNildKTsKPiAtCXByaW50ZigiVklERU9fRElQX0NUTCBESVAgYnVm ZmVyIHNpemVcdFx0JWx1XG4iLCBCSVRTKGR3b3JkLCAxMSwgOCkpOwo+IC0JcHJpbnRmKCJWSURF T19ESVBfQ1RMIERJUCBhZGRyZXNzXHRcdCVsdVxuIiwgQklUUyhkd29yZCwgMywgMCkpOwo+ICsJ CQlSRUdfQklUUyhkd29yZCwgMTcsIDE2KSwgdmlkZW9fZGlwX3RyYW5zW1JFR19CSVRTKGR3b3Jk LCAxNywgMTYpXSk7Cj4gKwlwcmludGYoIlZJREVPX0RJUF9DVEwgRElQIGJ1ZmZlciBzaXplXHRc dCVsdVxuIiwgUkVHX0JJVFMoZHdvcmQsIDExLCA4KSk7Cj4gKwlwcmludGYoIlZJREVPX0RJUF9D VEwgRElQIGFkZHJlc3NcdFx0JWx1XG4iLCBSRUdfQklUUyhkd29yZCwgMywgMCkpOwo+ICAKPiAg CWR3b3JkID0gSU5SRUcoQVVEX0NPTkZJRyk7Cj4gLQlwcmludGYoIkFVRF9DT05GSUcgcGl4ZWwg Y2xvY2tcdFx0XHRbMHglbHhdICVzXG4iLCBCSVRTKGR3b3JkLCAxOSwgMTYpLAo+IC0JCQlPUE5B TUUocGl4ZWxfY2xvY2ssIEJJVFMoZHdvcmQsIDE5LCAxNikpKTsKPiAtCXByaW50ZigiQVVEX0NP TkZJRyBmYWJyaWNhdGlvbiBlbmFibGVkXHRcdCVsdVxuIiwgQklUUyhkd29yZCwgMiwgMikpOwo+ IC0JcHJpbnRmKCJBVURfQ09ORklHIHByb2Zlc3Npb25hbCB1c2UgYWxsb3dlZFx0JWx1XG4iLCBC SVQoZHdvcmQsIDEpKTsKPiAtCXByaW50ZigiQVVEX0NPTkZJRyBmdXNlIGVuYWJsZWRcdFx0XHQl bHVcbiIsIEJJVChkd29yZCwgMCkpOwo+ICsJcHJpbnRmKCJBVURfQ09ORklHIHBpeGVsIGNsb2Nr XHRcdFx0WzB4JWx4XSAlc1xuIiwgUkVHX0JJVFMoZHdvcmQsIDE5LCAxNiksCj4gKwkJCU9QTkFN RShwaXhlbF9jbG9jaywgUkVHX0JJVFMoZHdvcmQsIDE5LCAxNikpKTsKPiArCXByaW50ZigiQVVE X0NPTkZJRyBmYWJyaWNhdGlvbiBlbmFibGVkXHRcdCVsdVxuIiwgUkVHX0JJVFMoZHdvcmQsIDIs IDIpKTsKPiArCXByaW50ZigiQVVEX0NPTkZJRyBwcm9mZXNzaW9uYWwgdXNlIGFsbG93ZWRcdCVs dVxuIiwgUkVHX0JJVChkd29yZCwgMSkpOwo+ICsJcHJpbnRmKCJBVURfQ09ORklHIGZ1c2UgZW5h YmxlZFx0XHRcdCVsdVxuIiwgUkVHX0JJVChkd29yZCwgMCkpOwo+ICAKPiAgCWR3b3JkID0gSU5S RUcoQVVEX0RFQlVHKTsKPiAtCXByaW50ZigiQVVEX0RFQlVHIGZ1bmN0aW9uIHJlc2V0XHRcdCVs dVxuIiwgQklUKGR3b3JkLCAwKSk7Cj4gKwlwcmludGYoIkFVRF9ERUJVRyBmdW5jdGlvbiByZXNl dFx0XHQlbHVcbiIsIFJFR19CSVQoZHdvcmQsIDApKTsKPiAgCj4gIAlkd29yZCA9IElOUkVHKEFV RF9TVUJOX0NOVCk7Cj4gLQlwcmludGYoIkFVRF9TVUJOX0NOVCBzdGFydGluZyBub2RlIG51bWJl clx0MHglbHhcbiIsICBCSVRTKGR3b3JkLCAyMywgMTYpKTsKPiAtCXByaW50ZigiQVVEX1NVQk5f Q05UIHRvdGFsIG51bWJlciBvZiBub2Rlc1x0MHglbHhcbiIsIEJJVFMoZHdvcmQsIDcsIDApKTsK PiArCXByaW50ZigiQVVEX1NVQk5fQ05UIHN0YXJ0aW5nIG5vZGUgbnVtYmVyXHQweCVseFxuIiwg IFJFR19CSVRTKGR3b3JkLCAyMywgMTYpKTsKPiArCXByaW50ZigiQVVEX1NVQk5fQ05UIHRvdGFs IG51bWJlciBvZiBub2Rlc1x0MHglbHhcbiIsIFJFR19CSVRTKGR3b3JkLCA3LCAwKSk7Cj4gIAo+ ICAJZHdvcmQgPSBJTlJFRyhBVURfU1VCTl9DTlQyKTsKPiAtCXByaW50ZigiQVVEX1NVQk5fQ05U MiBzdGFydGluZyBub2RlIG51bWJlclx0MHglbHhcbiIsICBCSVRTKGR3b3JkLCAyNCwgMTYpKTsK PiAtCXByaW50ZigiQVVEX1NVQk5fQ05UMiB0b3RhbCBudW1iZXIgb2Ygbm9kZXNcdDB4JWx4XG4i LCBCSVRTKGR3b3JkLCA3LCAwKSk7Cj4gKwlwcmludGYoIkFVRF9TVUJOX0NOVDIgc3RhcnRpbmcg bm9kZSBudW1iZXJcdDB4JWx4XG4iLCAgUkVHX0JJVFMoZHdvcmQsIDI0LCAxNikpOwo+ICsJcHJp bnRmKCJBVURfU1VCTl9DTlQyIHRvdGFsIG51bWJlciBvZiBub2Rlc1x0MHglbHhcbiIsIFJFR19C SVRTKGR3b3JkLCA3LCAwKSk7Cj4gIAo+ICAJZHdvcmQgPSBJTlJFRyhBVURfRlVOQ19HUlApOwo+ IC0JcHJpbnRmKCJBVURfRlVOQ19HUlAgdW5zb2wgY2FwYWJsZVx0XHQlbHVcbiIsIEJJVChkd29y ZCwgOCkpOwo+IC0JcHJpbnRmKCJBVURfRlVOQ19HUlAgbm9kZSB0eXBlXHRcdFx0MHglbHhcbiIs IEJJVFMoZHdvcmQsIDcsIDApKTsKPiArCXByaW50ZigiQVVEX0ZVTkNfR1JQIHVuc29sIGNhcGFi bGVcdFx0JWx1XG4iLCBSRUdfQklUKGR3b3JkLCA4KSk7Cj4gKwlwcmludGYoIkFVRF9GVU5DX0dS UCBub2RlIHR5cGVcdFx0XHQweCVseFxuIiwgUkVHX0JJVFMoZHdvcmQsIDcsIDApKTsKPiAgCj4g IAlkd29yZCA9IElOUkVHKEFVRF9HUlBfQ0FQKTsKPiAtCXByaW50ZigiQVVEX0dSUF9DQVAgYmVl cCAwXHRcdFx0JWx1XG4iLCAgICAgICBCSVQoZHdvcmQsIDE2KSk7Cj4gLQlwcmludGYoIkFVRF9H UlBfQ0FQIGlucHV0IGRlbGF5XHRcdFx0JWx1XG4iLCAgQklUUyhkd29yZCwgMTEsIDgpKTsKPiAt CXByaW50ZigiQVVEX0dSUF9DQVAgb3V0cHV0IGRlbGF5XHRcdCVsdVxuIiwgICBCSVRTKGR3b3Jk LCAzLCAwKSk7Cj4gKwlwcmludGYoIkFVRF9HUlBfQ0FQIGJlZXAgMFx0XHRcdCVsdVxuIiwgICAg ICAgUkVHX0JJVChkd29yZCwgMTYpKTsKPiArCXByaW50ZigiQVVEX0dSUF9DQVAgaW5wdXQgZGVs YXlcdFx0XHQlbHVcbiIsICBSRUdfQklUUyhkd29yZCwgMTEsIDgpKTsKPiArCXByaW50ZigiQVVE X0dSUF9DQVAgb3V0cHV0IGRlbGF5XHRcdCVsdVxuIiwgICBSRUdfQklUUyhkd29yZCwgMywgMCkp Owo+ICAKPiAgCWR3b3JkID0gSU5SRUcoQVVEX1BXUlNUKTsKPiAgCXByaW50ZigiQVVEX1BXUlNU IGRldmljZSBwb3dlciBzdGF0ZVx0XHQlc1xuIiwKPiAtCQkJcG93ZXJfc3RhdGVbQklUUyhkd29y ZCwgNSwgNCldKTsKPiArCQkJcG93ZXJfc3RhdGVbUkVHX0JJVFMoZHdvcmQsIDUsIDQpXSk7Cj4g IAlwcmludGYoIkFVRF9QV1JTVCBkZXZpY2UgcG93ZXIgc3RhdGUgc2V0dGluZ1x0JXNcbiIsCj4g LQkJCXBvd2VyX3N0YXRlW0JJVFMoZHdvcmQsIDEsIDApXSk7Cj4gKwkJCXBvd2VyX3N0YXRlW1JF R19CSVRTKGR3b3JkLCAxLCAwKV0pOwo+ICAKPiAgCWR3b3JkID0gSU5SRUcoQVVEX1NVUFBXUik7 Cj4gLQlwcmludGYoIkFVRF9TVVBQV1Igc3VwcG9ydCBEMFx0XHRcdCVsdVxuIiwgQklUKGR3b3Jk LCAwKSk7Cj4gLQlwcmludGYoIkFVRF9TVVBQV1Igc3VwcG9ydCBEMVx0XHRcdCVsdVxuIiwgQklU KGR3b3JkLCAxKSk7Cj4gLQlwcmludGYoIkFVRF9TVVBQV1Igc3VwcG9ydCBEMlx0XHRcdCVsdVxu IiwgQklUKGR3b3JkLCAyKSk7Cj4gLQlwcmludGYoIkFVRF9TVVBQV1Igc3VwcG9ydCBEM1x0XHRc dCVsdVxuIiwgQklUKGR3b3JkLCAzKSk7Cj4gKwlwcmludGYoIkFVRF9TVVBQV1Igc3VwcG9ydCBE MFx0XHRcdCVsdVxuIiwgUkVHX0JJVChkd29yZCwgMCkpOwo+ICsJcHJpbnRmKCJBVURfU1VQUFdS IHN1cHBvcnQgRDFcdFx0XHQlbHVcbiIsIFJFR19CSVQoZHdvcmQsIDEpKTsKPiArCXByaW50Zigi QVVEX1NVUFBXUiBzdXBwb3J0IEQyXHRcdFx0JWx1XG4iLCBSRUdfQklUKGR3b3JkLCAyKSk7Cj4g KwlwcmludGYoIkFVRF9TVVBQV1Igc3VwcG9ydCBEM1x0XHRcdCVsdVxuIiwgUkVHX0JJVChkd29y ZCwgMykpOwo+ICAKPiAgCWR3b3JkID0gSU5SRUcoQVVEX09VVF9DV0NBUCk7Cj4gLQlwcmludGYo IkFVRF9PVVRfQ1dDQVAgd2lkZ2V0IHR5cGVcdFx0MHglbHhcbiIsICBCSVRTKGR3b3JkLCAyMywg MjApKTsKPiAtCXByaW50ZigiQVVEX09VVF9DV0NBUCBzYW1wbGUgZGVsYXlcdFx0MHglbHhcbiIs IEJJVFMoZHdvcmQsIDE5LCAxNikpOwo+ICsJcHJpbnRmKCJBVURfT1VUX0NXQ0FQIHdpZGdldCB0 eXBlXHRcdDB4JWx4XG4iLCAgUkVHX0JJVFMoZHdvcmQsIDIzLCAyMCkpOwo+ICsJcHJpbnRmKCJB VURfT1VUX0NXQ0FQIHNhbXBsZSBkZWxheVx0XHQweCVseFxuIiwgUkVHX0JJVFMoZHdvcmQsIDE5 LCAxNikpOwo+ICAJcHJpbnRmKCJBVURfT1VUX0NXQ0FQIGNoYW5uZWwgY291bnRcdFx0JWx1XG4i LAo+IC0JCQlCSVRTKGR3b3JkLCAxNSwgMTMpICogMiArIEJJVChkd29yZCwgMCkgKyAxKTsKPiAt CXByaW50ZigiQVVEX09VVF9DV0NBUCBMLVIgc3dhcFx0XHRcdCVsdVxuIiwgICAgICAgQklUKGR3 b3JkLCAxMSkpOwo+IC0JcHJpbnRmKCJBVURfT1VUX0NXQ0FQIHBvd2VyIGNvbnRyb2xcdFx0JWx1 XG4iLCAgICBCSVQoZHdvcmQsIDEwKSk7Cj4gLQlwcmludGYoIkFVRF9PVVRfQ1dDQVAgZGlnaXRh bFx0XHRcdCVsdVxuIiwgICAgICAgIEJJVChkd29yZCwgOSkpOwo+IC0JcHJpbnRmKCJBVURfT1VU X0NXQ0FQIGNvbm4gbGlzdFx0XHRcdCVsdVxuIiwgICAgICBCSVQoZHdvcmQsIDgpKTsKPiAtCXBy aW50ZigiQVVEX09VVF9DV0NBUCB1bnNvbFx0XHRcdCVsdVxuIiwgICAgICAgICAgQklUKGR3b3Jk LCA3KSk7Cj4gLQlwcmludGYoIkFVRF9PVVRfQ1dDQVAgbXV0ZVx0XHRcdCVsdVxuIiwgICAgICAg ICAgIEJJVChkd29yZCwgNSkpOwo+IC0JcHJpbnRmKCJBVURfT1VUX0NXQ0FQIGZvcm1hdCBvdmVy cmlkZVx0XHQlbHVcbiIsICBCSVQoZHdvcmQsIDQpKTsKPiAtCXByaW50ZigiQVVEX09VVF9DV0NB UCBhbXAgcGFyYW0gb3ZlcnJpZGVcdCVsdVxuIiwgQklUKGR3b3JkLCAzKSk7Cj4gLQlwcmludGYo IkFVRF9PVVRfQ1dDQVAgb3V0IGFtcCBwcmVzZW50XHRcdCVsdVxuIiwgIEJJVChkd29yZCwgMikp Owo+IC0JcHJpbnRmKCJBVURfT1VUX0NXQ0FQIGluIGFtcCBwcmVzZW50XHRcdCVsdVxuIiwgICBC SVQoZHdvcmQsIDEpKTsKPiArCQkJUkVHX0JJVFMoZHdvcmQsIDE1LCAxMykgKiAyICsgUkVHX0JJ VChkd29yZCwgMCkgKyAxKTsKPiArCXByaW50ZigiQVVEX09VVF9DV0NBUCBMLVIgc3dhcFx0XHRc dCVsdVxuIiwgICAgICAgUkVHX0JJVChkd29yZCwgMTEpKTsKPiArCXByaW50ZigiQVVEX09VVF9D V0NBUCBwb3dlciBjb250cm9sXHRcdCVsdVxuIiwgICAgUkVHX0JJVChkd29yZCwgMTApKTsKPiAr CXByaW50ZigiQVVEX09VVF9DV0NBUCBkaWdpdGFsXHRcdFx0JWx1XG4iLCAgICAgICAgUkVHX0JJ VChkd29yZCwgOSkpOwo+ICsJcHJpbnRmKCJBVURfT1VUX0NXQ0FQIGNvbm4gbGlzdFx0XHRcdCVs dVxuIiwgICAgICBSRUdfQklUKGR3b3JkLCA4KSk7Cj4gKwlwcmludGYoIkFVRF9PVVRfQ1dDQVAg dW5zb2xcdFx0XHQlbHVcbiIsICAgICAgICAgIFJFR19CSVQoZHdvcmQsIDcpKTsKPiArCXByaW50 ZigiQVVEX09VVF9DV0NBUCBtdXRlXHRcdFx0JWx1XG4iLCAgICAgICAgICAgUkVHX0JJVChkd29y ZCwgNSkpOwo+ICsJcHJpbnRmKCJBVURfT1VUX0NXQ0FQIGZvcm1hdCBvdmVycmlkZVx0XHQlbHVc biIsICBSRUdfQklUKGR3b3JkLCA0KSk7Cj4gKwlwcmludGYoIkFVRF9PVVRfQ1dDQVAgYW1wIHBh cmFtIG92ZXJyaWRlXHQlbHVcbiIsIFJFR19CSVQoZHdvcmQsIDMpKTsKPiArCXByaW50ZigiQVVE X09VVF9DV0NBUCBvdXQgYW1wIHByZXNlbnRcdFx0JWx1XG4iLCAgUkVHX0JJVChkd29yZCwgMikp Owo+ICsJcHJpbnRmKCJBVURfT1VUX0NXQ0FQIGluIGFtcCBwcmVzZW50XHRcdCVsdVxuIiwgICBS RUdfQklUKGR3b3JkLCAxKSk7Cj4gIAo+ICAJZHdvcmQgPSBJTlJFRyhBVURfT1VUX0RJR19DTlZU KTsKPiAtCXByaW50ZigiQVVEX09VVF9ESUdfQ05WVCBTUERJRiBjYXRlZ29yeVx0XHQweCVseFxu IiwgQklUUyhkd29yZCwgMTQsIDgpKTsKPiAtCXByaW50ZigiQVVEX09VVF9ESUdfQ05WVCBTUERJ RiBsZXZlbFx0XHQlbHVcbiIsICAgICAgQklUKGR3b3JkLCA3KSk7Cj4gLQlwcmludGYoIkFVRF9P VVRfRElHX0NOVlQgcHJvZmVzc2lvbmFsXHRcdCVsdVxuIiwgICAgIEJJVChkd29yZCwgNikpOwo+ IC0JcHJpbnRmKCJBVURfT1VUX0RJR19DTlZUIG5vbiBQQ01cdFx0JWx1XG4iLCAgICAgICAgICBC SVQoZHdvcmQsIDUpKTsKPiAtCXByaW50ZigiQVVEX09VVF9ESUdfQ05WVCBjb3B5cmlnaHQgYXNz ZXJ0ZWRcdCVsdVxuIiwgQklUKGR3b3JkLCA0KSk7Cj4gLQlwcmludGYoIkFVRF9PVVRfRElHX0NO VlQgZmlsdGVyIHByZWVtcGhhc2lzXHQlbHVcbiIsIEJJVChkd29yZCwgMykpOwo+IC0JcHJpbnRm KCJBVURfT1VUX0RJR19DTlZUIHZhbGlkaXR5IGNvbmZpZ1x0JWx1XG4iLCAgICBCSVQoZHdvcmQs IDIpKTsKPiAtCXByaW50ZigiQVVEX09VVF9ESUdfQ05WVCB2YWxpZGl0eSBmbGFnXHRcdCVsdVxu IiwgICAgQklUKGR3b3JkLCAxKSk7Cj4gLQlwcmludGYoIkFVRF9PVVRfRElHX0NOVlQgZGlnaXRh bCBlbmFibGVcdFx0JWx1XG4iLCAgIEJJVChkd29yZCwgMCkpOwo+ICsJcHJpbnRmKCJBVURfT1VU X0RJR19DTlZUIFNQRElGIGNhdGVnb3J5XHRcdDB4JWx4XG4iLCBSRUdfQklUUyhkd29yZCwgMTQs IDgpKTsKPiArCXByaW50ZigiQVVEX09VVF9ESUdfQ05WVCBTUERJRiBsZXZlbFx0XHQlbHVcbiIs ICAgICAgUkVHX0JJVChkd29yZCwgNykpOwo+ICsJcHJpbnRmKCJBVURfT1VUX0RJR19DTlZUIHBy b2Zlc3Npb25hbFx0XHQlbHVcbiIsICAgICBSRUdfQklUKGR3b3JkLCA2KSk7Cj4gKwlwcmludGYo IkFVRF9PVVRfRElHX0NOVlQgbm9uIFBDTVx0XHQlbHVcbiIsICAgICAgICAgIFJFR19CSVQoZHdv cmQsIDUpKTsKPiArCXByaW50ZigiQVVEX09VVF9ESUdfQ05WVCBjb3B5cmlnaHQgYXNzZXJ0ZWRc dCVsdVxuIiwgUkVHX0JJVChkd29yZCwgNCkpOwo+ICsJcHJpbnRmKCJBVURfT1VUX0RJR19DTlZU IGZpbHRlciBwcmVlbXBoYXNpc1x0JWx1XG4iLCBSRUdfQklUKGR3b3JkLCAzKSk7Cj4gKwlwcmlu dGYoIkFVRF9PVVRfRElHX0NOVlQgdmFsaWRpdHkgY29uZmlnXHQlbHVcbiIsICAgIFJFR19CSVQo ZHdvcmQsIDIpKTsKPiArCXByaW50ZigiQVVEX09VVF9ESUdfQ05WVCB2YWxpZGl0eSBmbGFnXHRc dCVsdVxuIiwgICAgUkVHX0JJVChkd29yZCwgMSkpOwo+ICsJcHJpbnRmKCJBVURfT1VUX0RJR19D TlZUIGRpZ2l0YWwgZW5hYmxlXHRcdCVsdVxuIiwgICBSRUdfQklUKGR3b3JkLCAwKSk7Cj4gIAo+ ICAJZHdvcmQgPSBJTlJFRyhBVURfT1VUX0NIX1NUUik7Cj4gLQlwcmludGYoIkFVRF9PVVRfQ0hf U1RSIHN0cmVhbSBpZFx0XHQweCVseFxuIiwgICAgICAgIEJJVFMoZHdvcmQsIDcsIDQpKTsKPiAt CXByaW50ZigiQVVEX09VVF9DSF9TVFIgbG93ZXN0IGNoYW5uZWxcdFx0JWx1XG4iLCAgICAgQklU Uyhkd29yZCwgMywgMCkpOwo+ICsJcHJpbnRmKCJBVURfT1VUX0NIX1NUUiBzdHJlYW0gaWRcdFx0 MHglbHhcbiIsICAgICAgICBSRUdfQklUUyhkd29yZCwgNywgNCkpOwo+ICsJcHJpbnRmKCJBVURf T1VUX0NIX1NUUiBsb3dlc3QgY2hhbm5lbFx0XHQlbHVcbiIsICAgICBSRUdfQklUUyhkd29yZCwg MywgMCkpOwo+ICAKPiAgCWR3b3JkID0gSU5SRUcoQVVEX09VVF9TVFJfREVTQyk7Cj4gLQlwcmlu dGYoIkFVRF9PVVRfU1RSX0RFU0Mgc3RyZWFtIGNoYW5uZWxzXHQlbHVcbiIsICAgIEJJVFMoZHdv cmQsIDMsIDApICsgMSk7Cj4gKwlwcmludGYoIkFVRF9PVVRfU1RSX0RFU0Mgc3RyZWFtIGNoYW5u ZWxzXHQlbHVcbiIsICAgIFJFR19CSVRTKGR3b3JkLCAzLCAwKSArIDEpOwo+ICAJcHJpbnRmKCJB VURfT1VUX1NUUl9ERVNDIEJpdHMgcGVyIFNhbXBsZVx0WyUjbHhdICVzXG4iLAo+IC0JCQlCSVRT KGR3b3JkLCA2LCA0KSwgT1BOQU1FKGJpdHNfcGVyX3NhbXBsZSwgQklUUyhkd29yZCwgNiwgNCkp KTsKPiArCQkJUkVHX0JJVFMoZHdvcmQsIDYsIDQpLCBPUE5BTUUoYml0c19wZXJfc2FtcGxlLCBS RUdfQklUUyhkd29yZCwgNiwgNCkpKTsKPiAgCj4gIAlkd29yZCA9IElOUkVHKEFVRF9QSU5XX0NB UCk7Cj4gLQlwcmludGYoIkFVRF9QSU5XX0NBUCB3aWRnZXQgdHlwZVx0XHQweCVseFxuIiwgICAg ICAgIEJJVFMoZHdvcmQsIDIzLCAyMCkpOwo+IC0JcHJpbnRmKCJBVURfUElOV19DQVAgc2FtcGxl IGRlbGF5XHRcdDB4JWx4XG4iLCAgICAgICBCSVRTKGR3b3JkLCAxOSwgMTYpKTsKPiArCXByaW50 ZigiQVVEX1BJTldfQ0FQIHdpZGdldCB0eXBlXHRcdDB4JWx4XG4iLCAgICAgICAgUkVHX0JJVFMo ZHdvcmQsIDIzLCAyMCkpOwo+ICsJcHJpbnRmKCJBVURfUElOV19DQVAgc2FtcGxlIGRlbGF5XHRc dDB4JWx4XG4iLCAgICAgICBSRUdfQklUUyhkd29yZCwgMTksIDE2KSk7Cj4gIAlwcmludGYoIkFV RF9QSU5XX0NBUCBjaGFubmVsIGNvdW50XHRcdCVsdVxuIiwKPiAtCQkJQklUUyhkd29yZCwgMTUs IDEzKSAqIDIgKyBCSVQoZHdvcmQsIDApICsgMSk7Cj4gLQlwcmludGYoIkFVRF9QSU5XX0NBUCBI RENQXHRcdFx0JWx1XG4iLCAgICAgICAgICAgICAgIEJJVChkd29yZCwgMTIpKTsKPiAtCXByaW50 ZigiQVVEX1BJTldfQ0FQIEwtUiBzd2FwXHRcdFx0JWx1XG4iLCAgICAgICAgICAgQklUKGR3b3Jk LCAxMSkpOwo+IC0JcHJpbnRmKCJBVURfUElOV19DQVAgcG93ZXIgY29udHJvbFx0XHQlbHVcbiIs ICAgICAgICBCSVQoZHdvcmQsIDEwKSk7Cj4gLQlwcmludGYoIkFVRF9QSU5XX0NBUCBkaWdpdGFs XHRcdFx0JWx1XG4iLCAgICAgICAgICAgIEJJVChkd29yZCwgOSkpOwo+IC0JcHJpbnRmKCJBVURf UElOV19DQVAgY29ubiBsaXN0XHRcdFx0JWx1XG4iLCAgICAgICAgICBCSVQoZHdvcmQsIDgpKTsK PiAtCXByaW50ZigiQVVEX1BJTldfQ0FQIHVuc29sXHRcdFx0JWx1XG4iLCAgICAgICAgICAgICAg QklUKGR3b3JkLCA3KSk7Cj4gLQlwcmludGYoIkFVRF9QSU5XX0NBUCBtdXRlXHRcdFx0JWx1XG4i LCAgICAgICAgICAgICAgIEJJVChkd29yZCwgNSkpOwo+IC0JcHJpbnRmKCJBVURfUElOV19DQVAg Zm9ybWF0IG92ZXJyaWRlXHRcdCVsdVxuIiwgICAgICBCSVQoZHdvcmQsIDQpKTsKPiAtCXByaW50 ZigiQVVEX1BJTldfQ0FQIGFtcCBwYXJhbSBvdmVycmlkZVx0XHQlbHVcbiIsICAgQklUKGR3b3Jk LCAzKSk7Cj4gLQlwcmludGYoIkFVRF9QSU5XX0NBUCBvdXQgYW1wIHByZXNlbnRcdFx0JWx1XG4i LCAgICAgIEJJVChkd29yZCwgMikpOwo+IC0JcHJpbnRmKCJBVURfUElOV19DQVAgaW4gYW1wIHBy ZXNlbnRcdFx0JWx1XG4iLCAgICAgICBCSVQoZHdvcmQsIDEpKTsKPiArCQkJUkVHX0JJVFMoZHdv cmQsIDE1LCAxMykgKiAyICsgUkVHX0JJVChkd29yZCwgMCkgKyAxKTsKPiArCXByaW50ZigiQVVE X1BJTldfQ0FQIEhEQ1BcdFx0XHQlbHVcbiIsICAgICAgICAgICAgICAgUkVHX0JJVChkd29yZCwg MTIpKTsKPiArCXByaW50ZigiQVVEX1BJTldfQ0FQIEwtUiBzd2FwXHRcdFx0JWx1XG4iLCAgICAg ICAgICAgUkVHX0JJVChkd29yZCwgMTEpKTsKPiArCXByaW50ZigiQVVEX1BJTldfQ0FQIHBvd2Vy IGNvbnRyb2xcdFx0JWx1XG4iLCAgICAgICAgUkVHX0JJVChkd29yZCwgMTApKTsKPiArCXByaW50 ZigiQVVEX1BJTldfQ0FQIGRpZ2l0YWxcdFx0XHQlbHVcbiIsICAgICAgICAgICAgUkVHX0JJVChk d29yZCwgOSkpOwo+ICsJcHJpbnRmKCJBVURfUElOV19DQVAgY29ubiBsaXN0XHRcdFx0JWx1XG4i LCAgICAgICAgICBSRUdfQklUKGR3b3JkLCA4KSk7Cj4gKwlwcmludGYoIkFVRF9QSU5XX0NBUCB1 bnNvbFx0XHRcdCVsdVxuIiwgICAgICAgICAgICAgIFJFR19CSVQoZHdvcmQsIDcpKTsKPiArCXBy aW50ZigiQVVEX1BJTldfQ0FQIG11dGVcdFx0XHQlbHVcbiIsICAgICAgICAgICAgICAgUkVHX0JJ VChkd29yZCwgNSkpOwo+ICsJcHJpbnRmKCJBVURfUElOV19DQVAgZm9ybWF0IG92ZXJyaWRlXHRc dCVsdVxuIiwgICAgICBSRUdfQklUKGR3b3JkLCA0KSk7Cj4gKwlwcmludGYoIkFVRF9QSU5XX0NB UCBhbXAgcGFyYW0gb3ZlcnJpZGVcdFx0JWx1XG4iLCAgIFJFR19CSVQoZHdvcmQsIDMpKTsKPiAr CXByaW50ZigiQVVEX1BJTldfQ0FQIG91dCBhbXAgcHJlc2VudFx0XHQlbHVcbiIsICAgICAgUkVH X0JJVChkd29yZCwgMikpOwo+ICsJcHJpbnRmKCJBVURfUElOV19DQVAgaW4gYW1wIHByZXNlbnRc dFx0JWx1XG4iLCAgICAgICBSRUdfQklUKGR3b3JkLCAxKSk7Cj4gIAo+ICAKPiAgCWR3b3JkID0g SU5SRUcoQVVEX1BJTl9DQVApOwo+IC0JcHJpbnRmKCJBVURfUElOX0NBUCBFQVBEXHRcdFx0JWx1 XG4iLCAgICAgICAgICBCSVQoZHdvcmQsIDE2KSk7Cj4gLQlwcmludGYoIkFVRF9QSU5fQ0FQIEhE TUlcdFx0XHQlbHVcbiIsICAgICAgICAgIEJJVChkd29yZCwgNykpOwo+IC0JcHJpbnRmKCJBVURf UElOX0NBUCBvdXRwdXRcdFx0XHQlbHVcbiIsICAgICAgICBCSVQoZHdvcmQsIDQpKTsKPiAtCXBy aW50ZigiQVVEX1BJTl9DQVAgcHJlc2VuY2UgZGV0ZWN0XHRcdCVsdVxuIiwgQklUKGR3b3JkLCAy KSk7Cj4gKwlwcmludGYoIkFVRF9QSU5fQ0FQIEVBUERcdFx0XHQlbHVcbiIsICAgICAgICAgIFJF R19CSVQoZHdvcmQsIDE2KSk7Cj4gKwlwcmludGYoIkFVRF9QSU5fQ0FQIEhETUlcdFx0XHQlbHVc biIsICAgICAgICAgIFJFR19CSVQoZHdvcmQsIDcpKTsKPiArCXByaW50ZigiQVVEX1BJTl9DQVAg b3V0cHV0XHRcdFx0JWx1XG4iLCAgICAgICAgUkVHX0JJVChkd29yZCwgNCkpOwo+ICsJcHJpbnRm KCJBVURfUElOX0NBUCBwcmVzZW5jZSBkZXRlY3RcdFx0JWx1XG4iLCBSRUdfQklUKGR3b3JkLCAy KSk7Cj4gIAo+ICAJZHdvcmQgPSBJTlJFRyhBVURfUElOV19DTlRSKTsKPiAtCXByaW50ZigiQVVE X1BJTldfQ05UUiBtdXRlIHN0YXR1c1x0XHQlbHVcbiIsICAgICBCSVQoZHdvcmQsIDgpKTsKPiAt CXByaW50ZigiQVVEX1BJTldfQ05UUiBvdXQgZW5hYmxlXHRcdCVsdVxuIiwgICAgICBCSVQoZHdv cmQsIDYpKTsKPiAtCXByaW50ZigiQVVEX1BJTldfQ05UUiBhbXAgbXV0ZSBzdGF0dXNcdFx0JWx1 XG4iLCBCSVQoZHdvcmQsIDgpKTsKPiAtCXByaW50ZigiQVVEX1BJTldfQ05UUiBhbXAgbXV0ZSBz dGF0dXNcdFx0JWx1XG4iLCBCSVQoZHdvcmQsIDgpKTsKPiArCXByaW50ZigiQVVEX1BJTldfQ05U UiBtdXRlIHN0YXR1c1x0XHQlbHVcbiIsICAgICBSRUdfQklUKGR3b3JkLCA4KSk7Cj4gKwlwcmlu dGYoIkFVRF9QSU5XX0NOVFIgb3V0IGVuYWJsZVx0XHQlbHVcbiIsICAgICAgUkVHX0JJVChkd29y ZCwgNikpOwo+ICsJcHJpbnRmKCJBVURfUElOV19DTlRSIGFtcCBtdXRlIHN0YXR1c1x0XHQlbHVc biIsIFJFR19CSVQoZHdvcmQsIDgpKTsKPiArCXByaW50ZigiQVVEX1BJTldfQ05UUiBhbXAgbXV0 ZSBzdGF0dXNcdFx0JWx1XG4iLCBSRUdfQklUKGR3b3JkLCA4KSk7Cj4gIAlwcmludGYoIkFVRF9Q SU5XX0NOVFIgc3RyZWFtIHR5cGVcdFx0WzB4JWx4XSAlc1xuIiwKPiAtCQkJQklUUyhkd29yZCwg MiwgMCksCj4gLQkJCU9QTkFNRShzdHJlYW1fdHlwZSwgQklUUyhkd29yZCwgMiwgMCkpKTsKPiAr CQkJUkVHX0JJVFMoZHdvcmQsIDIsIDApLAo+ICsJCQlPUE5BTUUoc3RyZWFtX3R5cGUsIFJFR19C SVRTKGR3b3JkLCAyLCAwKSkpOwo+ICAKPiAgCWR3b3JkID0gSU5SRUcoQVVEX1BJTldfVU5TT0xS RVNQKTsKPiAtCXByaW50ZigiQVVEX1BJTldfVU5TT0xSRVNQIGVuYWJsZSB1bnNvbCByZXNwXHQl bHVcbiIsIEJJVChkd29yZCwgMzEpKTsKPiArCXByaW50ZigiQVVEX1BJTldfVU5TT0xSRVNQIGVu YWJsZSB1bnNvbCByZXNwXHQlbHVcbiIsIFJFR19CSVQoZHdvcmQsIDMxKSk7Cj4gIAo+ICAJZHdv cmQgPSBJTlJFRyhBVURfQ05UTF9TVCk7Cj4gLQlwcmludGYoIkFVRF9DTlRMX1NUIERJUCBhdWRp byBlbmFibGVkXHRcdCVsdVxuIiwgQklUKGR3b3JkLCAyMSkpOwo+IC0JcHJpbnRmKCJBVURfQ05U TF9TVCBESVAgQUNQIGVuYWJsZWRcdFx0JWx1XG4iLCAgIEJJVChkd29yZCwgMjIpKTsKPiAtCXBy aW50ZigiQVVEX0NOVExfU1QgRElQIElTUkN4IGVuYWJsZWRcdFx0JWx1XG4iLCBCSVQoZHdvcmQs IDIzKSk7Cj4gKwlwcmludGYoIkFVRF9DTlRMX1NUIERJUCBhdWRpbyBlbmFibGVkXHRcdCVsdVxu IiwgUkVHX0JJVChkd29yZCwgMjEpKTsKPiArCXByaW50ZigiQVVEX0NOVExfU1QgRElQIEFDUCBl bmFibGVkXHRcdCVsdVxuIiwgICBSRUdfQklUKGR3b3JkLCAyMikpOwo+ICsJcHJpbnRmKCJBVURf Q05UTF9TVCBESVAgSVNSQ3ggZW5hYmxlZFx0XHQlbHVcbiIsIFJFR19CSVQoZHdvcmQsIDIzKSk7 Cj4gIAlwcmludGYoIkFVRF9DTlRMX1NUIERJUCBwb3J0IHNlbGVjdFx0XHRbMHglbHhdICVzXG4i LAo+IC0JCQlCSVRTKGR3b3JkLCAzMCwgMjkpLCBkaXBfcG9ydFtCSVRTKGR3b3JkLCAzMCwgMjkp XSk7Cj4gKwkJCVJFR19CSVRTKGR3b3JkLCAzMCwgMjkpLCBkaXBfcG9ydFtSRUdfQklUUyhkd29y ZCwgMzAsIDI5KV0pOwo+ICAJcHJpbnRmKCJBVURfQ05UTF9TVCBESVAgYnVmZmVyIGluZGV4XHRc dFsweCVseF0gJXNcbiIsCj4gLQkJCUJJVFMoZHdvcmQsIDIwLCAxOCksIE9QTkFNRShkaXBfaW5k ZXgsIEJJVFMoZHdvcmQsIDIwLCAxOCkpKTsKPiArCQkJUkVHX0JJVFMoZHdvcmQsIDIwLCAxOCks IE9QTkFNRShkaXBfaW5kZXgsIFJFR19CSVRTKGR3b3JkLCAyMCwgMTgpKSk7Cj4gIAlwcmludGYo IkFVRF9DTlRMX1NUIERJUCB0cmFucyBmcmVxXHRcdFsweCVseF0gJXNcbiIsCj4gLQkJCUJJVFMo ZHdvcmQsIDE3LCAxNiksIGRpcF90cmFuc1tCSVRTKGR3b3JkLCAxNywgMTYpXSk7Cj4gLQlwcmlu dGYoIkFVRF9DTlRMX1NUIERJUCBhZGRyZXNzXHRcdFx0JWx1XG4iLCBCSVRTKGR3b3JkLCAzLCAw KSk7Cj4gLQlwcmludGYoIkFVRF9DTlRMX1NUIENQIHJlYWR5XHRcdFx0JWx1XG4iLCAgICBCSVQo ZHdvcmQsIDE1KSk7Cj4gLQlwcmludGYoIkFVRF9DTlRMX1NUIEVMRCB2YWxpZFx0XHRcdCVsdVxu IiwgICBCSVQoZHdvcmQsIDE0KSk7Cj4gLQlwcmludGYoIkFVRF9DTlRMX1NUIEVMRCBhY2tcdFx0 XHQlbHVcbiIsICAgICBCSVQoZHdvcmQsIDQpKTsKPiAtCXByaW50ZigiQVVEX0NOVExfU1QgRUxE IGJ1ZnNpemVcdFx0XHQlbHVcbiIsIEJJVFMoZHdvcmQsIDEzLCA5KSk7Cj4gLQlwcmludGYoIkFV RF9DTlRMX1NUIEVMRCBhZGRyZXNzXHRcdFx0JWx1XG4iLCBCSVRTKGR3b3JkLCA4LCA1KSk7Cj4g KwkJCVJFR19CSVRTKGR3b3JkLCAxNywgMTYpLCBkaXBfdHJhbnNbUkVHX0JJVFMoZHdvcmQsIDE3 LCAxNildKTsKPiArCXByaW50ZigiQVVEX0NOVExfU1QgRElQIGFkZHJlc3NcdFx0XHQlbHVcbiIs IFJFR19CSVRTKGR3b3JkLCAzLCAwKSk7Cj4gKwlwcmludGYoIkFVRF9DTlRMX1NUIENQIHJlYWR5 XHRcdFx0JWx1XG4iLCAgICBSRUdfQklUKGR3b3JkLCAxNSkpOwo+ICsJcHJpbnRmKCJBVURfQ05U TF9TVCBFTEQgdmFsaWRcdFx0XHQlbHVcbiIsICAgUkVHX0JJVChkd29yZCwgMTQpKTsKPiArCXBy aW50ZigiQVVEX0NOVExfU1QgRUxEIGFja1x0XHRcdCVsdVxuIiwgICAgIFJFR19CSVQoZHdvcmQs IDQpKTsKPiArCXByaW50ZigiQVVEX0NOVExfU1QgRUxEIGJ1ZnNpemVcdFx0XHQlbHVcbiIsIFJF R19CSVRTKGR3b3JkLCAxMywgOSkpOwo+ICsJcHJpbnRmKCJBVURfQ05UTF9TVCBFTEQgYWRkcmVz c1x0XHRcdCVsdVxuIiwgUkVHX0JJVFMoZHdvcmQsIDgsIDUpKTsKPiAgCj4gIAlkd29yZCA9IElO UkVHKEFVRF9IRE1JV19TVEFUVVMpOwo+IC0JcHJpbnRmKCJBVURfSERNSVdfU1RBVFVTIENEQ0xL L0RPVENMSyB1bmRlcnJ1blx0JWx1XG4iLCBCSVQoZHdvcmQsIDMxKSk7Cj4gLQlwcmludGYoIkFV RF9IRE1JV19TVEFUVVMgQ0RDTEsvRE9UQ0xLIG92ZXJydW5cdCVsdVxuIiwgIEJJVChkd29yZCwg MzApKTsKPiAtCXByaW50ZigiQVVEX0hETUlXX1NUQVRVUyBCQ0xLL0NEQ0xLIHVuZGVycnVuXHQl bHVcbiIsICAgQklUKGR3b3JkLCAyOSkpOwo+IC0JcHJpbnRmKCJBVURfSERNSVdfU1RBVFVTIEJD TEsvQ0RDTEsgb3ZlcnJ1blx0JWx1XG4iLCAgICBCSVQoZHdvcmQsIDI4KSk7Cj4gKwlwcmludGYo IkFVRF9IRE1JV19TVEFUVVMgQ0RDTEsvRE9UQ0xLIHVuZGVycnVuXHQlbHVcbiIsIFJFR19CSVQo ZHdvcmQsIDMxKSk7Cj4gKwlwcmludGYoIkFVRF9IRE1JV19TVEFUVVMgQ0RDTEsvRE9UQ0xLIG92 ZXJydW5cdCVsdVxuIiwgIFJFR19CSVQoZHdvcmQsIDMwKSk7Cj4gKwlwcmludGYoIkFVRF9IRE1J V19TVEFUVVMgQkNMSy9DRENMSyB1bmRlcnJ1blx0JWx1XG4iLCAgIFJFR19CSVQoZHdvcmQsIDI5 KSk7Cj4gKwlwcmludGYoIkFVRF9IRE1JV19TVEFUVVMgQkNMSy9DRENMSyBvdmVycnVuXHQlbHVc biIsICAgIFJFR19CSVQoZHdvcmQsIDI4KSk7Cj4gIAo+ICAJZHdvcmQgPSBJTlJFRyhBVURfQ09O Vl9DSENOVCk7Cj4gLQlwcmludGYoIkFVRF9DT05WX0NIQ05UIEhETUkgSEJSIGVuYWJsZWRcdFx0 JWx1XG4iLCBCSVRTKGR3b3JkLCAxNSwgMTQpKTsKPiAtCXByaW50ZigiQVVEX0NPTlZfQ0hDTlQg SERNSSBjaGFubmVsIGNvdW50XHQlbHVcbiIsIEJJVFMoZHdvcmQsIDExLCA4KSArIDEpOwo+ICsJ cHJpbnRmKCJBVURfQ09OVl9DSENOVCBIRE1JIEhCUiBlbmFibGVkXHRcdCVsdVxuIiwgUkVHX0JJ VFMoZHdvcmQsIDE1LCAxNCkpOwo+ICsJcHJpbnRmKCJBVURfQ09OVl9DSENOVCBIRE1JIGNoYW5u ZWwgY291bnRcdCVsdVxuIiwgUkVHX0JJVFMoZHdvcmQsIDExLCA4KSArIDEpOwo+ICAKPiAgCXBy aW50ZigiQVVEX0NPTlZfQ0hDTlQgSERNSSBjaGFubmVsIG1hcHBpbmc6XG4iKTsKPiAgCWZvciAo aSA9IDA7IGkgPCA4OyBpKyspIHsKPiAgCQlPVVRSRUcoQVVEX0NPTlZfQ0hDTlQsIGkpOwo+ICAJ CWR3b3JkID0gSU5SRUcoQVVEX0NPTlZfQ0hDTlQpOwo+IC0JCXByaW50ZigiXHRcdFx0XHRcdFsw eCV4XSAldSA9PiAlbHVcbiIsIGR3b3JkLCBpLCBCSVRTKGR3b3JkLCA3LCA0KSk7Cj4gKwkJcHJp bnRmKCJcdFx0XHRcdFx0WzB4JXhdICV1ID0+ICVsdVxuIiwgZHdvcmQsIGksIFJFR19CSVRTKGR3 b3JkLCA3LCA0KSk7Cj4gIAl9Cj4gIAo+ICAJcHJpbnRmKCJBVURfSERNSVdfSERNSUVESUQgSERN SSBFTEQ6XG5cdCIpOwo+ICAJZHdvcmQgPSBJTlJFRyhBVURfQ05UTF9TVCk7Cj4gIAlkd29yZCAm PSB+QklUTUFTSyg4LCA1KTsKPiAgCU9VVFJFRyhBVURfQ05UTF9TVCwgZHdvcmQpOwo+IC0JZm9y IChpID0gMDsgaSA8IEJJVFMoZHdvcmQsIDE0LCAxMCkgLyA0OyBpKyspCj4gKwlmb3IgKGkgPSAw OyBpIDwgUkVHX0JJVFMoZHdvcmQsIDE0LCAxMCkgLyA0OyBpKyspCj4gIAkJcHJpbnRmKCIlMDh4 ICIsIGh0b25sKElOUkVHKEFVRF9IRE1JV19IRE1JRURJRCkpKTsKPiAgCXByaW50ZigiXG4iKTsK PiAgCj4gQEAgLTg2NCwzNDcgKzg2NCwzNDcgQEAgc3RhdGljIHZvaWQgZHVtcF9jcHQodm9pZCkK PiAgCXByaW50ZigiXG5EZXRhaWxzOlxuXG4iKTsKPiAgCj4gIAlkd29yZCA9IElOUkVHKFZJREVP X0RJUF9DVExfQSk7Cj4gLQlwcmludGYoIlZJREVPX0RJUF9DVExfQSBFbmFibGVfR3JhcGhpY3Nf RElQXHRcdFx0JWxkXG4iLCAgICAgQklUKGR3b3JkLCAzMSkpLAo+IC0JcHJpbnRmKCJWSURFT19E SVBfQ1RMX0EgR0NQX0RJUF9lbmFibGVcdFx0XHRcdCVsZFxuIiwgICAgIEJJVChkd29yZCwgMjUp KSwKPiAtCXByaW50ZigiVklERU9fRElQX0NUTF9BIFZpZGVvX0RJUF90eXBlX2VuYWJsZSBBVklc dFx0JWx1XG4iLCAgICAgICBCSVQoZHdvcmQsIDIxKSk7Cj4gLQlwcmludGYoIlZJREVPX0RJUF9D VExfQSBWaWRlb19ESVBfdHlwZV9lbmFibGUgVmVuZG9yXHRcdCVsdVxuIiwgICAgICBCSVQoZHdv cmQsIDIyKSk7Cj4gLQlwcmludGYoIlZJREVPX0RJUF9DVExfQSBWaWRlb19ESVBfdHlwZV9lbmFi bGUgR2FtdXRcdFx0JWx1XG4iLCAgICAgICBCSVQoZHdvcmQsIDIzKSk7Cj4gLQlwcmludGYoIlZJ REVPX0RJUF9DVExfQSBWaWRlb19ESVBfdHlwZV9lbmFibGUgU291cmNlIFx0XHQlbHVcbiIsICAg ICAgIEJJVChkd29yZCwgMjQpKTsKPiArCXByaW50ZigiVklERU9fRElQX0NUTF9BIEVuYWJsZV9H cmFwaGljc19ESVBcdFx0XHQlbGRcbiIsICAgICBSRUdfQklUKGR3b3JkLCAzMSkpLAo+ICsJcHJp bnRmKCJWSURFT19ESVBfQ1RMX0EgR0NQX0RJUF9lbmFibGVcdFx0XHRcdCVsZFxuIiwgICAgIFJF R19CSVQoZHdvcmQsIDI1KSksCj4gKwlwcmludGYoIlZJREVPX0RJUF9DVExfQSBWaWRlb19ESVBf dHlwZV9lbmFibGUgQVZJXHRcdCVsdVxuIiwgICAgICAgUkVHX0JJVChkd29yZCwgMjEpKTsKPiAr CXByaW50ZigiVklERU9fRElQX0NUTF9BIFZpZGVvX0RJUF90eXBlX2VuYWJsZSBWZW5kb3JcdFx0 JWx1XG4iLCAgICAgIFJFR19CSVQoZHdvcmQsIDIyKSk7Cj4gKwlwcmludGYoIlZJREVPX0RJUF9D VExfQSBWaWRlb19ESVBfdHlwZV9lbmFibGUgR2FtdXRcdFx0JWx1XG4iLCAgICAgICBSRUdfQklU KGR3b3JkLCAyMykpOwo+ICsJcHJpbnRmKCJWSURFT19ESVBfQ1RMX0EgVmlkZW9fRElQX3R5cGVf ZW5hYmxlIFNvdXJjZSBcdFx0JWx1XG4iLCAgICAgICBSRUdfQklUKGR3b3JkLCAyNCkpOwo+ICAJ cHJpbnRmKCJWSURFT19ESVBfQ1RMX0EgVmlkZW9fRElQX2J1ZmZlcl9pbmRleFx0XHRcdFsweCVs eF0gJXNcbiIsCj4gLQkJCUJJVFMoZHdvcmQsIDIwLCAxOSksIHZpZGVvX2RpcF9pbmRleFtCSVRT KGR3b3JkLCAyMCwgMTkpXSk7Cj4gKwkJCVJFR19CSVRTKGR3b3JkLCAyMCwgMTkpLCB2aWRlb19k aXBfaW5kZXhbUkVHX0JJVFMoZHdvcmQsIDIwLCAxOSldKTsKPiAgCXByaW50ZigiVklERU9fRElQ X0NUTF9BIFZpZGVvX0RJUF9mcmVxdWVuY3lcdFx0XHRbMHglbHhdICVzXG4iLAo+IC0JCQlCSVRT KGR3b3JkLCAxNywgMTYpLCB2aWRlb19kaXBfdHJhbnNbQklUUyhkd29yZCwgMTcsIDE2KV0pOwo+ IC0JcHJpbnRmKCJWSURFT19ESVBfQ1RMX0EgVmlkZW9fRElQX2J1ZmZlcl9zaXplXHRcdFx0JWx1 XG4iLCBCSVRTKGR3b3JkLCAxMSwgOCkpOwo+IC0JcHJpbnRmKCJWSURFT19ESVBfQ1RMX0EgVmlk ZW9fRElQX2FjY2Vzc19hZGRyZXNzXHRcdCVsdVxuIiwgQklUUyhkd29yZCwgMywgMCkpOwo+ICsJ CQlSRUdfQklUUyhkd29yZCwgMTcsIDE2KSwgdmlkZW9fZGlwX3RyYW5zW1JFR19CSVRTKGR3b3Jk LCAxNywgMTYpXSk7Cj4gKwlwcmludGYoIlZJREVPX0RJUF9DVExfQSBWaWRlb19ESVBfYnVmZmVy X3NpemVcdFx0XHQlbHVcbiIsIFJFR19CSVRTKGR3b3JkLCAxMSwgOCkpOwo+ICsJcHJpbnRmKCJW SURFT19ESVBfQ1RMX0EgVmlkZW9fRElQX2FjY2Vzc19hZGRyZXNzXHRcdCVsdVxuIiwgUkVHX0JJ VFMoZHdvcmQsIDMsIDApKTsKPiAgCj4gIAlkd29yZCA9IElOUkVHKFZJREVPX0RJUF9DVExfQik7 Cj4gLQlwcmludGYoIlZJREVPX0RJUF9DVExfQiBFbmFibGVfR3JhcGhpY3NfRElQXHRcdFx0JWxk XG4iLCAgICAgQklUKGR3b3JkLCAzMSkpLAo+IC0JcHJpbnRmKCJWSURFT19ESVBfQ1RMX0IgR0NQ X0RJUF9lbmFibGVcdFx0XHRcdCVsZFxuIiwgICAgIEJJVChkd29yZCwgMjUpKSwKPiAtCXByaW50 ZigiVklERU9fRElQX0NUTF9CIFZpZGVvX0RJUF90eXBlX2VuYWJsZSBBVklcdFx0JWx1XG4iLCAg ICAgICBCSVQoZHdvcmQsIDIxKSk7Cj4gLQlwcmludGYoIlZJREVPX0RJUF9DVExfQiBWaWRlb19E SVBfdHlwZV9lbmFibGUgVmVuZG9yXHRcdCVsdVxuIiwgICAgICBCSVQoZHdvcmQsIDIyKSk7Cj4g LQlwcmludGYoIlZJREVPX0RJUF9DVExfQiBWaWRlb19ESVBfdHlwZV9lbmFibGUgR2FtdXRcdFx0 JWx1XG4iLCAgICAgICBCSVQoZHdvcmQsIDIzKSk7Cj4gLQlwcmludGYoIlZJREVPX0RJUF9DVExf QiBWaWRlb19ESVBfdHlwZV9lbmFibGUgU291cmNlIFx0XHQlbHVcbiIsICAgICAgIEJJVChkd29y ZCwgMjQpKTsKPiArCXByaW50ZigiVklERU9fRElQX0NUTF9CIEVuYWJsZV9HcmFwaGljc19ESVBc dFx0XHQlbGRcbiIsICAgICBSRUdfQklUKGR3b3JkLCAzMSkpLAo+ICsJcHJpbnRmKCJWSURFT19E SVBfQ1RMX0IgR0NQX0RJUF9lbmFibGVcdFx0XHRcdCVsZFxuIiwgICAgIFJFR19CSVQoZHdvcmQs IDI1KSksCj4gKwlwcmludGYoIlZJREVPX0RJUF9DVExfQiBWaWRlb19ESVBfdHlwZV9lbmFibGUg QVZJXHRcdCVsdVxuIiwgICAgICAgUkVHX0JJVChkd29yZCwgMjEpKTsKPiArCXByaW50ZigiVklE RU9fRElQX0NUTF9CIFZpZGVvX0RJUF90eXBlX2VuYWJsZSBWZW5kb3JcdFx0JWx1XG4iLCAgICAg IFJFR19CSVQoZHdvcmQsIDIyKSk7Cj4gKwlwcmludGYoIlZJREVPX0RJUF9DVExfQiBWaWRlb19E SVBfdHlwZV9lbmFibGUgR2FtdXRcdFx0JWx1XG4iLCAgICAgICBSRUdfQklUKGR3b3JkLCAyMykp Owo+ICsJcHJpbnRmKCJWSURFT19ESVBfQ1RMX0IgVmlkZW9fRElQX3R5cGVfZW5hYmxlIFNvdXJj ZSBcdFx0JWx1XG4iLCAgICAgICBSRUdfQklUKGR3b3JkLCAyNCkpOwo+ICAJcHJpbnRmKCJWSURF T19ESVBfQ1RMX0IgVmlkZW9fRElQX2J1ZmZlcl9pbmRleFx0XHRcdFsweCVseF0gJXNcbiIsCj4g LQkJCUJJVFMoZHdvcmQsIDIwLCAxOSksIHZpZGVvX2RpcF9pbmRleFtCSVRTKGR3b3JkLCAyMCwg MTkpXSk7Cj4gKwkJCVJFR19CSVRTKGR3b3JkLCAyMCwgMTkpLCB2aWRlb19kaXBfaW5kZXhbUkVH X0JJVFMoZHdvcmQsIDIwLCAxOSldKTsKPiAgCXByaW50ZigiVklERU9fRElQX0NUTF9CIFZpZGVv X0RJUF9mcmVxdWVuY3lcdFx0XHRbMHglbHhdICVzXG4iLAo+IC0JCQlCSVRTKGR3b3JkLCAxNywg MTYpLCB2aWRlb19kaXBfdHJhbnNbQklUUyhkd29yZCwgMTcsIDE2KV0pOwo+IC0JcHJpbnRmKCJW SURFT19ESVBfQ1RMX0IgVmlkZW9fRElQX2J1ZmZlcl9zaXplXHRcdFx0JWx1XG4iLCBCSVRTKGR3 b3JkLCAxMSwgOCkpOwo+IC0JcHJpbnRmKCJWSURFT19ESVBfQ1RMX0IgVmlkZW9fRElQX2FjY2Vz c19hZGRyZXNzXHRcdCVsdVxuIiwgQklUUyhkd29yZCwgMywgMCkpOwo+ICsJCQlSRUdfQklUUyhk d29yZCwgMTcsIDE2KSwgdmlkZW9fZGlwX3RyYW5zW1JFR19CSVRTKGR3b3JkLCAxNywgMTYpXSk7 Cj4gKwlwcmludGYoIlZJREVPX0RJUF9DVExfQiBWaWRlb19ESVBfYnVmZmVyX3NpemVcdFx0XHQl bHVcbiIsIFJFR19CSVRTKGR3b3JkLCAxMSwgOCkpOwo+ICsJcHJpbnRmKCJWSURFT19ESVBfQ1RM X0IgVmlkZW9fRElQX2FjY2Vzc19hZGRyZXNzXHRcdCVsdVxuIiwgUkVHX0JJVFMoZHdvcmQsIDMs IDApKTsKPiAgCj4gIAlkd29yZCA9IElOUkVHKFZJREVPX0RJUF9DVExfQyk7Cj4gLQlwcmludGYo IlZJREVPX0RJUF9DVExfQyBFbmFibGVfR3JhcGhpY3NfRElQXHRcdFx0JWxkXG4iLCAgICAgQklU KGR3b3JkLCAzMSkpLAo+IC0JcHJpbnRmKCJWSURFT19ESVBfQ1RMX0MgR0NQX0RJUF9lbmFibGVc dFx0XHRcdCVsZFxuIiwgICAgIEJJVChkd29yZCwgMjUpKSwKPiAtCXByaW50ZigiVklERU9fRElQ X0NUTF9DIFZpZGVvX0RJUF90eXBlX2VuYWJsZSBBVklcdFx0JWx1XG4iLCAgICAgICBCSVQoZHdv cmQsIDIxKSk7Cj4gLQlwcmludGYoIlZJREVPX0RJUF9DVExfQyBWaWRlb19ESVBfdHlwZV9lbmFi bGUgVmVuZG9yXHRcdCVsdVxuIiwgICAgICBCSVQoZHdvcmQsIDIyKSk7Cj4gLQlwcmludGYoIlZJ REVPX0RJUF9DVExfQyBWaWRlb19ESVBfdHlwZV9lbmFibGUgR2FtdXRcdFx0JWx1XG4iLCAgICAg ICBCSVQoZHdvcmQsIDIzKSk7Cj4gLQlwcmludGYoIlZJREVPX0RJUF9DVExfQyBWaWRlb19ESVBf dHlwZV9lbmFibGUgU291cmNlIFx0XHQlbHVcbiIsICAgICAgIEJJVChkd29yZCwgMjQpKTsKPiAr CXByaW50ZigiVklERU9fRElQX0NUTF9DIEVuYWJsZV9HcmFwaGljc19ESVBcdFx0XHQlbGRcbiIs ICAgICBSRUdfQklUKGR3b3JkLCAzMSkpLAo+ICsJcHJpbnRmKCJWSURFT19ESVBfQ1RMX0MgR0NQ X0RJUF9lbmFibGVcdFx0XHRcdCVsZFxuIiwgICAgIFJFR19CSVQoZHdvcmQsIDI1KSksCj4gKwlw cmludGYoIlZJREVPX0RJUF9DVExfQyBWaWRlb19ESVBfdHlwZV9lbmFibGUgQVZJXHRcdCVsdVxu IiwgICAgICAgUkVHX0JJVChkd29yZCwgMjEpKTsKPiArCXByaW50ZigiVklERU9fRElQX0NUTF9D IFZpZGVvX0RJUF90eXBlX2VuYWJsZSBWZW5kb3JcdFx0JWx1XG4iLCAgICAgIFJFR19CSVQoZHdv cmQsIDIyKSk7Cj4gKwlwcmludGYoIlZJREVPX0RJUF9DVExfQyBWaWRlb19ESVBfdHlwZV9lbmFi bGUgR2FtdXRcdFx0JWx1XG4iLCAgICAgICBSRUdfQklUKGR3b3JkLCAyMykpOwo+ICsJcHJpbnRm KCJWSURFT19ESVBfQ1RMX0MgVmlkZW9fRElQX3R5cGVfZW5hYmxlIFNvdXJjZSBcdFx0JWx1XG4i LCAgICAgICBSRUdfQklUKGR3b3JkLCAyNCkpOwo+ICAJcHJpbnRmKCJWSURFT19ESVBfQ1RMX0Mg VmlkZW9fRElQX2J1ZmZlcl9pbmRleFx0XHRcdFsweCVseF0gJXNcbiIsCj4gLQkJCUJJVFMoZHdv cmQsIDIwLCAxOSksIHZpZGVvX2RpcF9pbmRleFtCSVRTKGR3b3JkLCAyMCwgMTkpXSk7Cj4gKwkJ CVJFR19CSVRTKGR3b3JkLCAyMCwgMTkpLCB2aWRlb19kaXBfaW5kZXhbUkVHX0JJVFMoZHdvcmQs IDIwLCAxOSldKTsKPiAgCXByaW50ZigiVklERU9fRElQX0NUTF9DIFZpZGVvX0RJUF9mcmVxdWVu Y3lcdFx0XHRbMHglbHhdICVzXG4iLAo+IC0JCQlCSVRTKGR3b3JkLCAxNywgMTYpLCB2aWRlb19k aXBfdHJhbnNbQklUUyhkd29yZCwgMTcsIDE2KV0pOwo+IC0JcHJpbnRmKCJWSURFT19ESVBfQ1RM X0MgVmlkZW9fRElQX2J1ZmZlcl9zaXplXHRcdFx0JWx1XG4iLCBCSVRTKGR3b3JkLCAxMSwgOCkp Owo+IC0JcHJpbnRmKCJWSURFT19ESVBfQ1RMX0MgVmlkZW9fRElQX2FjY2Vzc19hZGRyZXNzXHRc dCVsdVxuIiwgQklUUyhkd29yZCwgMywgMCkpOwo+ICsJCQlSRUdfQklUUyhkd29yZCwgMTcsIDE2 KSwgdmlkZW9fZGlwX3RyYW5zW1JFR19CSVRTKGR3b3JkLCAxNywgMTYpXSk7Cj4gKwlwcmludGYo IlZJREVPX0RJUF9DVExfQyBWaWRlb19ESVBfYnVmZmVyX3NpemVcdFx0XHQlbHVcbiIsIFJFR19C SVRTKGR3b3JkLCAxMSwgOCkpOwo+ICsJcHJpbnRmKCJWSURFT19ESVBfQ1RMX0MgVmlkZW9fRElQ X2FjY2Vzc19hZGRyZXNzXHRcdCVsdVxuIiwgUkVHX0JJVFMoZHdvcmQsIDMsIDApKTsKPiAgCj4g IAlkd29yZCA9IElOUkVHKEFVRF9WSURfRElEKTsKPiAgCXByaW50ZigiQVVEX1ZJRF9ESUQgdmVu ZG9yIGlkXHRcdFx0XHRcdDB4JXhcbiIsIGR3b3JkID4+IDE2KTsKPiAgCXByaW50ZigiQVVEX1ZJ RF9ESUQgZGV2aWNlIGlkXHRcdFx0XHRcdDB4JXhcbiIsIGR3b3JkICYgMHhmZmZmKTsKPiAgCj4g IAlkd29yZCA9IElOUkVHKEFVRF9SSUQpOwo+IC0JcHJpbnRmKCJBVURfUklEIE1ham9yX1Jldmlz aW9uXHRcdFx0XHRcdDB4JWx4XG4iLCBCSVRTKGR3b3JkLCAyMywgMjApKTsKPiAtCXByaW50Zigi QVVEX1JJRCBNaW5vcl9SZXZpc2lvblx0XHRcdFx0XHQweCVseFxuIiwgQklUUyhkd29yZCwgMTks IDE2KSk7Cj4gLQlwcmludGYoIkFVRF9SSUQgUmV2aXNpb25fSWRcdFx0XHRcdFx0MHglbHhcbiIs ICAgIEJJVFMoZHdvcmQsIDE1LCA4KSk7Cj4gLQlwcmludGYoIkFVRF9SSUQgU3RlcHBpbmdfSWRc dFx0XHRcdFx0MHglbHhcbiIsICAgIEJJVFMoZHdvcmQsIDcsIDApKTsKPiArCXByaW50ZigiQVVE X1JJRCBNYWpvcl9SZXZpc2lvblx0XHRcdFx0XHQweCVseFxuIiwgUkVHX0JJVFMoZHdvcmQsIDIz LCAyMCkpOwo+ICsJcHJpbnRmKCJBVURfUklEIE1pbm9yX1JldmlzaW9uXHRcdFx0XHRcdDB4JWx4 XG4iLCBSRUdfQklUUyhkd29yZCwgMTksIDE2KSk7Cj4gKwlwcmludGYoIkFVRF9SSUQgUmV2aXNp b25fSWRcdFx0XHRcdFx0MHglbHhcbiIsICAgIFJFR19CSVRTKGR3b3JkLCAxNSwgOCkpOwo+ICsJ cHJpbnRmKCJBVURfUklEIFN0ZXBwaW5nX0lkXHRcdFx0XHRcdDB4JWx4XG4iLCAgICBSRUdfQklU Uyhkd29yZCwgNywgMCkpOwo+ICAKPiAgCWR3b3JkID0gSU5SRUcoSERNSUIpOwo+ICAJcHJpbnRm KCJIRE1JQiBQb3J0X0VuYWJsZVx0XHRcdFx0XHQldVxuIiwgICAgICAhIShkd29yZCAmIFNEVk9f RU5BQkxFKSk7Cj4gIAlwcmludGYoIkhETUlCIFRyYW5zY29kZXJfU2VsZWN0XHRcdFx0XHRcdFsw eCVseF0gJXNcbiIsCj4gLQkJCUJJVFMoZHdvcmQsIDMwLCAyOSksIHRyYW5zY29kZXJfc2VsZWN0 W0JJVFMoZHdvcmQsIDMwLCAyOSldKTsKPiAtCXByaW50ZigiSERNSUIgc0RWT19Cb3JkZXJfRW5h YmxlXHRcdFx0XHQlbHVcbiIsIEJJVChkd29yZCwgNykpOwo+IC0JcHJpbnRmKCJIRE1JQiBIRENQ X1BvcnRfU2VsZWN0XHRcdFx0XHRcdCVsdVxuIiwgQklUKGR3b3JkLCA1KSk7Cj4gLQlwcmludGYo IkhETUlCIFNEVk9fSFBEX0ludGVycnVwdF9FbmFibGVcdFx0XHRcdCVsdVxuIiwgQklUKGR3b3Jk LCAyMykpOwo+IC0JcHJpbnRmKCJIRE1JQiBQb3J0X0RldGVjdGVkXHRcdFx0XHRcdCVsdVxuIiwg QklUKGR3b3JkLCAyKSk7Cj4gKwkJCVJFR19CSVRTKGR3b3JkLCAzMCwgMjkpLCB0cmFuc2NvZGVy X3NlbGVjdFtSRUdfQklUUyhkd29yZCwgMzAsIDI5KV0pOwo+ICsJcHJpbnRmKCJIRE1JQiBzRFZP X0JvcmRlcl9FbmFibGVcdFx0XHRcdCVsdVxuIiwgUkVHX0JJVChkd29yZCwgNykpOwo+ICsJcHJp bnRmKCJIRE1JQiBIRENQX1BvcnRfU2VsZWN0XHRcdFx0XHRcdCVsdVxuIiwgUkVHX0JJVChkd29y ZCwgNSkpOwo+ICsJcHJpbnRmKCJIRE1JQiBTRFZPX0hQRF9JbnRlcnJ1cHRfRW5hYmxlXHRcdFx0 XHQlbHVcbiIsIFJFR19CSVQoZHdvcmQsIDIzKSk7Cj4gKwlwcmludGYoIkhETUlCIFBvcnRfRGV0 ZWN0ZWRcdFx0XHRcdFx0JWx1XG4iLCBSRUdfQklUKGR3b3JkLCAyKSk7Cj4gIAlwcmludGYoIkhE TUlCIEVuY29kaW5nXHRcdFx0XHRcdFx0WzB4JWx4XSAlc1xuIiwKPiAtCQkJQklUUyhkd29yZCwg MTEsIDEwKSwgc2R2b19oZG1pX2VuY29kaW5nW0JJVFMoZHdvcmQsIDExLCAxMCldKTsKPiAtCXBy aW50ZigiSERNSUIgSERNSV9vcl9EVklfU2VsZWN0XHRcdFx0XHQlc1xuIiwgQklUKGR3b3JkLCA5 KSA/ICJIRE1JIiA6ICJEVkkiKTsKPiArCQkJUkVHX0JJVFMoZHdvcmQsIDExLCAxMCksIHNkdm9f aGRtaV9lbmNvZGluZ1tSRUdfQklUUyhkd29yZCwgMTEsIDEwKV0pOwo+ICsJcHJpbnRmKCJIRE1J QiBIRE1JX29yX0RWSV9TZWxlY3RcdFx0XHRcdCVzXG4iLCBSRUdfQklUKGR3b3JkLCA5KSA/ICJI RE1JIiA6ICJEVkkiKTsKPiAgCXByaW50ZigiSERNSUIgQXVkaW9fT3V0cHV0X0VuYWJsZVx0XHRc dFx0JXVcbiIsICEhKGR3b3JkICYgU0RWT19BVURJT19FTkFCTEUpKTsKPiAgCj4gIAlkd29yZCA9 IElOUkVHKEhETUlDKTsKPiAgCXByaW50ZigiSERNSUMgUG9ydF9FbmFibGVcdFx0XHRcdFx0JXVc biIsICAgICAgISEoZHdvcmQgJiBTRFZPX0VOQUJMRSkpOwo+ICAJcHJpbnRmKCJIRE1JQyBUcmFu c2NvZGVyX1NlbGVjdFx0XHRcdFx0XHRbMHglbHhdICVzXG4iLAo+IC0JCQlCSVRTKGR3b3JkLCAz MCwgMjkpLCB0cmFuc2NvZGVyX3NlbGVjdFtCSVRTKGR3b3JkLCAzMCwgMjkpXSk7Cj4gLQlwcmlu dGYoIkhETUlDIHNEVk9fQm9yZGVyX0VuYWJsZVx0XHRcdFx0JWx1XG4iLCBCSVQoZHdvcmQsIDcp KTsKPiAtCXByaW50ZigiSERNSUMgSERDUF9Qb3J0X1NlbGVjdFx0XHRcdFx0XHQlbHVcbiIsIEJJ VChkd29yZCwgNSkpOwo+IC0JcHJpbnRmKCJIRE1JQyBTRFZPX0hQRF9JbnRlcnJ1cHRfRW5hYmxl XHRcdFx0XHQlbHVcbiIsIEJJVChkd29yZCwgMjMpKTsKPiAtCXByaW50ZigiSERNSUMgUG9ydF9E ZXRlY3RlZFx0XHRcdFx0XHQlbHVcbiIsIEJJVChkd29yZCwgMikpOwo+ICsJCQlSRUdfQklUUyhk d29yZCwgMzAsIDI5KSwgdHJhbnNjb2Rlcl9zZWxlY3RbUkVHX0JJVFMoZHdvcmQsIDMwLCAyOSld KTsKPiArCXByaW50ZigiSERNSUMgc0RWT19Cb3JkZXJfRW5hYmxlXHRcdFx0XHQlbHVcbiIsIFJF R19CSVQoZHdvcmQsIDcpKTsKPiArCXByaW50ZigiSERNSUMgSERDUF9Qb3J0X1NlbGVjdFx0XHRc dFx0XHQlbHVcbiIsIFJFR19CSVQoZHdvcmQsIDUpKTsKPiArCXByaW50ZigiSERNSUMgU0RWT19I UERfSW50ZXJydXB0X0VuYWJsZVx0XHRcdFx0JWx1XG4iLCBSRUdfQklUKGR3b3JkLCAyMykpOwo+ ICsJcHJpbnRmKCJIRE1JQyBQb3J0X0RldGVjdGVkXHRcdFx0XHRcdCVsdVxuIiwgUkVHX0JJVChk d29yZCwgMikpOwo+ICAJcHJpbnRmKCJIRE1JQyBFbmNvZGluZ1x0XHRcdFx0XHRcdFsweCVseF0g JXNcbiIsCj4gLQkJCUJJVFMoZHdvcmQsIDExLCAxMCksIHNkdm9faGRtaV9lbmNvZGluZ1tCSVRT KGR3b3JkLCAxMSwgMTApXSk7Cj4gLQlwcmludGYoIkhETUlDIEhETUlfb3JfRFZJX1NlbGVjdFx0 XHRcdFx0JXNcbiIsIEJJVChkd29yZCwgOSkgPyAiSERNSSIgOiAiRFZJIik7Cj4gKwkJCVJFR19C SVRTKGR3b3JkLCAxMSwgMTApLCBzZHZvX2hkbWlfZW5jb2RpbmdbUkVHX0JJVFMoZHdvcmQsIDEx LCAxMCldKTsKPiArCXByaW50ZigiSERNSUMgSERNSV9vcl9EVklfU2VsZWN0XHRcdFx0XHQlc1xu IiwgUkVHX0JJVChkd29yZCwgOSkgPyAiSERNSSIgOiAiRFZJIik7Cj4gIAlwcmludGYoIkhETUlD IEF1ZGlvX091dHB1dF9FbmFibGVcdFx0XHRcdCV1XG4iLCAhIShkd29yZCAmIFNEVk9fQVVESU9f RU5BQkxFKSk7Cj4gIAo+ICAJZHdvcmQgPSBJTlJFRyhIRE1JRCk7Cj4gIAlwcmludGYoIkhETUlE IFBvcnRfRW5hYmxlXHRcdFx0XHRcdCV1XG4iLCAgICAgICEhKGR3b3JkICYgU0RWT19FTkFCTEUp KTsKPiAgCXByaW50ZigiSERNSUQgVHJhbnNjb2Rlcl9TZWxlY3RcdFx0XHRcdFx0WzB4JWx4XSAl c1xuIiwKPiAtCQkJQklUUyhkd29yZCwgMzAsIDI5KSwgdHJhbnNjb2Rlcl9zZWxlY3RbQklUUyhk d29yZCwgMzAsIDI5KV0pOwo+IC0JcHJpbnRmKCJIRE1JRCBzRFZPX0JvcmRlcl9FbmFibGVcdFx0 XHRcdCVsdVxuIiwgQklUKGR3b3JkLCA3KSk7Cj4gLQlwcmludGYoIkhETUlEIEhEQ1BfUG9ydF9T ZWxlY3RcdFx0XHRcdFx0JWx1XG4iLCBCSVQoZHdvcmQsIDUpKTsKPiAtCXByaW50ZigiSERNSUQg U0RWT19IUERfSW50ZXJydXB0X0VuYWJsZVx0XHRcdFx0JWx1XG4iLCBCSVQoZHdvcmQsIDIzKSk7 Cj4gLQlwcmludGYoIkhETUlEIFBvcnRfRGV0ZWN0ZWRcdFx0XHRcdFx0JWx1XG4iLCBCSVQoZHdv cmQsIDIpKTsKPiArCQkJUkVHX0JJVFMoZHdvcmQsIDMwLCAyOSksIHRyYW5zY29kZXJfc2VsZWN0 W1JFR19CSVRTKGR3b3JkLCAzMCwgMjkpXSk7Cj4gKwlwcmludGYoIkhETUlEIHNEVk9fQm9yZGVy X0VuYWJsZVx0XHRcdFx0JWx1XG4iLCBSRUdfQklUKGR3b3JkLCA3KSk7Cj4gKwlwcmludGYoIkhE TUlEIEhEQ1BfUG9ydF9TZWxlY3RcdFx0XHRcdFx0JWx1XG4iLCBSRUdfQklUKGR3b3JkLCA1KSk7 Cj4gKwlwcmludGYoIkhETUlEIFNEVk9fSFBEX0ludGVycnVwdF9FbmFibGVcdFx0XHRcdCVsdVxu IiwgUkVHX0JJVChkd29yZCwgMjMpKTsKPiArCXByaW50ZigiSERNSUQgUG9ydF9EZXRlY3RlZFx0 XHRcdFx0XHQlbHVcbiIsIFJFR19CSVQoZHdvcmQsIDIpKTsKPiAgCXByaW50ZigiSERNSUQgRW5j b2RpbmdcdFx0XHRcdFx0XHRbMHglbHhdICVzXG4iLAo+IC0JCQlCSVRTKGR3b3JkLCAxMSwgMTAp LCBzZHZvX2hkbWlfZW5jb2RpbmdbQklUUyhkd29yZCwgMTEsIDEwKV0pOwo+IC0JcHJpbnRmKCJI RE1JRCBIRE1JX29yX0RWSV9TZWxlY3RcdFx0XHRcdCVzXG4iLCBCSVQoZHdvcmQsIDkpID8gIkhE TUkiIDogIkRWSSIpOwo+ICsJCQlSRUdfQklUUyhkd29yZCwgMTEsIDEwKSwgc2R2b19oZG1pX2Vu Y29kaW5nW1JFR19CSVRTKGR3b3JkLCAxMSwgMTApXSk7Cj4gKwlwcmludGYoIkhETUlEIEhETUlf b3JfRFZJX1NlbGVjdFx0XHRcdFx0JXNcbiIsIFJFR19CSVQoZHdvcmQsIDkpID8gIkhETUkiIDog IkRWSSIpOwo+ICAJcHJpbnRmKCJIRE1JRCBBdWRpb19PdXRwdXRfRW5hYmxlXHRcdFx0XHQldVxu IiwgISEoZHdvcmQgJiBTRFZPX0FVRElPX0VOQUJMRSkpOwo+ICAKPiAgCWR3b3JkID0gSU5SRUco RFBfQ1RMX0IpOwo+IC0JcHJpbnRmKCJEUF9DVExfQiBEaXNwbGF5UG9ydF9FbmFibGVcdFx0XHRc dCVsdVxuIiwgQklUKGR3b3JkLCAzMSkpOwo+ICsJcHJpbnRmKCJEUF9DVExfQiBEaXNwbGF5UG9y dF9FbmFibGVcdFx0XHRcdCVsdVxuIiwgUkVHX0JJVChkd29yZCwgMzEpKTsKPiAgCXByaW50Zigi RFBfQ1RMX0IgUG9ydF9XaWR0aF9TZWxlY3Rpb25cdFx0XHRcdFsweCVseF0gJXNcbiIsCj4gLQkJ CUJJVFMoZHdvcmQsIDIxLCAxOSksIGRwX3BvcnRfd2lkdGhbQklUUyhkd29yZCwgMjEsIDE5KV0p Owo+IC0JcHJpbnRmKCJEUF9DVExfQiBQb3J0X0RldGVjdGVkXHRcdFx0XHRcdCVsdVxuIiwgQklU KGR3b3JkLCAyKSk7Cj4gLQlwcmludGYoIkRQX0NUTF9CIEhEQ1BfUG9ydF9TZWxlY3RcdFx0XHRc dCVsdVxuIiwgQklUKGR3b3JkLCA1KSk7Cj4gLQlwcmludGYoIkRQX0NUTF9CIEF1ZGlvX091dHB1 dF9FbmFibGVcdFx0XHRcdCVsdVxuIiwgQklUKGR3b3JkLCA2KSk7Cj4gKwkJCVJFR19CSVRTKGR3 b3JkLCAyMSwgMTkpLCBkcF9wb3J0X3dpZHRoW1JFR19CSVRTKGR3b3JkLCAyMSwgMTkpXSk7Cj4g KwlwcmludGYoIkRQX0NUTF9CIFBvcnRfRGV0ZWN0ZWRcdFx0XHRcdFx0JWx1XG4iLCBSRUdfQklU KGR3b3JkLCAyKSk7Cj4gKwlwcmludGYoIkRQX0NUTF9CIEhEQ1BfUG9ydF9TZWxlY3RcdFx0XHRc dCVsdVxuIiwgUkVHX0JJVChkd29yZCwgNSkpOwo+ICsJcHJpbnRmKCJEUF9DVExfQiBBdWRpb19P dXRwdXRfRW5hYmxlXHRcdFx0XHQlbHVcbiIsIFJFR19CSVQoZHdvcmQsIDYpKTsKPiAgCj4gIAlk d29yZCA9IElOUkVHKERQX0NUTF9DKTsKPiAtCXByaW50ZigiRFBfQ1RMX0MgRGlzcGxheVBvcnRf RW5hYmxlXHRcdFx0XHQlbHVcbiIsIEJJVChkd29yZCwgMzEpKTsKPiArCXByaW50ZigiRFBfQ1RM X0MgRGlzcGxheVBvcnRfRW5hYmxlXHRcdFx0XHQlbHVcbiIsIFJFR19CSVQoZHdvcmQsIDMxKSk7 Cj4gIAlwcmludGYoIkRQX0NUTF9DIFBvcnRfV2lkdGhfU2VsZWN0aW9uXHRcdFx0XHRbMHglbHhd ICVzXG4iLAo+IC0JCQlCSVRTKGR3b3JkLCAyMSwgMTkpLCBkcF9wb3J0X3dpZHRoW0JJVFMoZHdv cmQsIDIxLCAxOSldKTsKPiAtCXByaW50ZigiRFBfQ1RMX0MgUG9ydF9EZXRlY3RlZFx0XHRcdFx0 XHQlbHVcbiIsIEJJVChkd29yZCwgMikpOwo+IC0JcHJpbnRmKCJEUF9DVExfQyBIRENQX1BvcnRf U2VsZWN0XHRcdFx0XHQlbHVcbiIsIEJJVChkd29yZCwgNSkpOwo+IC0JcHJpbnRmKCJEUF9DVExf QyBBdWRpb19PdXRwdXRfRW5hYmxlXHRcdFx0XHQlbHVcbiIsIEJJVChkd29yZCwgNikpOwo+ICsJ CQlSRUdfQklUUyhkd29yZCwgMjEsIDE5KSwgZHBfcG9ydF93aWR0aFtSRUdfQklUUyhkd29yZCwg MjEsIDE5KV0pOwo+ICsJcHJpbnRmKCJEUF9DVExfQyBQb3J0X0RldGVjdGVkXHRcdFx0XHRcdCVs dVxuIiwgUkVHX0JJVChkd29yZCwgMikpOwo+ICsJcHJpbnRmKCJEUF9DVExfQyBIRENQX1BvcnRf U2VsZWN0XHRcdFx0XHQlbHVcbiIsIFJFR19CSVQoZHdvcmQsIDUpKTsKPiArCXByaW50ZigiRFBf Q1RMX0MgQXVkaW9fT3V0cHV0X0VuYWJsZVx0XHRcdFx0JWx1XG4iLCBSRUdfQklUKGR3b3JkLCA2 KSk7Cj4gIAo+ICAJZHdvcmQgPSBJTlJFRyhEUF9DVExfRCk7Cj4gLQlwcmludGYoIkRQX0NUTF9E IERpc3BsYXlQb3J0X0VuYWJsZVx0XHRcdFx0JWx1XG4iLCBCSVQoZHdvcmQsIDMxKSk7Cj4gKwlw cmludGYoIkRQX0NUTF9EIERpc3BsYXlQb3J0X0VuYWJsZVx0XHRcdFx0JWx1XG4iLCBSRUdfQklU KGR3b3JkLCAzMSkpOwo+ICAJcHJpbnRmKCJEUF9DVExfRCBQb3J0X1dpZHRoX1NlbGVjdGlvblx0 XHRcdFx0WzB4JWx4XSAlc1xuIiwKPiAtCQkJQklUUyhkd29yZCwgMjEsIDE5KSwgZHBfcG9ydF93 aWR0aFtCSVRTKGR3b3JkLCAyMSwgMTkpXSk7Cj4gLQlwcmludGYoIkRQX0NUTF9EIFBvcnRfRGV0 ZWN0ZWRcdFx0XHRcdFx0JWx1XG4iLCBCSVQoZHdvcmQsIDIpKTsKPiAtCXByaW50ZigiRFBfQ1RM X0QgSERDUF9Qb3J0X1NlbGVjdFx0XHRcdFx0JWx1XG4iLCBCSVQoZHdvcmQsIDUpKTsKPiAtCXBy aW50ZigiRFBfQ1RMX0QgQXVkaW9fT3V0cHV0X0VuYWJsZVx0XHRcdFx0JWx1XG4iLCBCSVQoZHdv cmQsIDYpKTsKPiArCQkJUkVHX0JJVFMoZHdvcmQsIDIxLCAxOSksIGRwX3BvcnRfd2lkdGhbUkVH X0JJVFMoZHdvcmQsIDIxLCAxOSldKTsKPiArCXByaW50ZigiRFBfQ1RMX0QgUG9ydF9EZXRlY3Rl ZFx0XHRcdFx0XHQlbHVcbiIsIFJFR19CSVQoZHdvcmQsIDIpKTsKPiArCXByaW50ZigiRFBfQ1RM X0QgSERDUF9Qb3J0X1NlbGVjdFx0XHRcdFx0JWx1XG4iLCBSRUdfQklUKGR3b3JkLCA1KSk7Cj4g KwlwcmludGYoIkRQX0NUTF9EIEF1ZGlvX091dHB1dF9FbmFibGVcdFx0XHRcdCVsdVxuIiwgUkVH X0JJVChkd29yZCwgNikpOwo+ICAKPiAgCWR3b3JkID0gSU5SRUcoQVVEX0NPTkZJR19BKTsKPiAt CXByaW50ZigiQVVEX0NPTkZJR19BICBOX2luZGV4X3ZhbHVlXHRcdFx0XHRbMHglbHhdICVzXG4i LCBCSVQoZHdvcmQsIDI5KSwKPiAtCQkJbl9pbmRleF92YWx1ZVtCSVQoZHdvcmQsIDI5KV0pOwo+ IC0JcHJpbnRmKCJBVURfQ09ORklHX0EgIE5fcHJvZ3JhbW1pbmdfZW5hYmxlXHRcdFx0JWx1XG4i LCBCSVQoZHdvcmQsIDI4KSk7Cj4gLQlwcmludGYoIkFVRF9DT05GSUdfQSAgVXBwZXJfTl92YWx1 ZVx0XHRcdFx0MHglMDJseFxuIiwgQklUUyhkd29yZCwgMjcsIDIwKSk7Cj4gLQlwcmludGYoIkFV RF9DT05GSUdfQSAgTG93ZXJfTl92YWx1ZVx0XHRcdFx0MHglMDNseFxuIiwgQklUUyhkd29yZCwg MTUsIDQpKTsKPiAtCXByaW50ZigiQVVEX0NPTkZJR19BICBQaXhlbF9DbG9ja19IRE1JXHRcdFx0 XHRbMHglbHhdICVzXG4iLCBCSVRTKGR3b3JkLCAxOSwgMTYpLAo+IC0JCQlPUE5BTUUocGl4ZWxf Y2xvY2ssIEJJVFMoZHdvcmQsIDE5LCAxNikpKTsKPiAtCXByaW50ZigiQVVEX0NPTkZJR19BICBE aXNhYmxlX05DVFNcdFx0XHRcdCVsdVxuIiwgQklUKGR3b3JkLCAzKSk7Cj4gKwlwcmludGYoIkFV RF9DT05GSUdfQSAgTl9pbmRleF92YWx1ZVx0XHRcdFx0WzB4JWx4XSAlc1xuIiwgUkVHX0JJVChk d29yZCwgMjkpLAo+ICsJCQluX2luZGV4X3ZhbHVlW1JFR19CSVQoZHdvcmQsIDI5KV0pOwo+ICsJ cHJpbnRmKCJBVURfQ09ORklHX0EgIE5fcHJvZ3JhbW1pbmdfZW5hYmxlXHRcdFx0JWx1XG4iLCBS RUdfQklUKGR3b3JkLCAyOCkpOwo+ICsJcHJpbnRmKCJBVURfQ09ORklHX0EgIFVwcGVyX05fdmFs dWVcdFx0XHRcdDB4JTAybHhcbiIsIFJFR19CSVRTKGR3b3JkLCAyNywgMjApKTsKPiArCXByaW50 ZigiQVVEX0NPTkZJR19BICBMb3dlcl9OX3ZhbHVlXHRcdFx0XHQweCUwM2x4XG4iLCBSRUdfQklU Uyhkd29yZCwgMTUsIDQpKTsKPiArCXByaW50ZigiQVVEX0NPTkZJR19BICBQaXhlbF9DbG9ja19I RE1JXHRcdFx0XHRbMHglbHhdICVzXG4iLCBSRUdfQklUUyhkd29yZCwgMTksIDE2KSwKPiArCQkJ T1BOQU1FKHBpeGVsX2Nsb2NrLCBSRUdfQklUUyhkd29yZCwgMTksIDE2KSkpOwo+ICsJcHJpbnRm KCJBVURfQ09ORklHX0EgIERpc2FibGVfTkNUU1x0XHRcdFx0JWx1XG4iLCBSRUdfQklUKGR3b3Jk LCAzKSk7Cj4gIAlkd29yZCA9IElOUkVHKEFVRF9DT05GSUdfQik7Cj4gLQlwcmludGYoIkFVRF9D T05GSUdfQiAgTl9pbmRleF92YWx1ZVx0XHRcdFx0WzB4JWx4XSAlc1xuIiwgQklUKGR3b3JkLCAy OSksCj4gLQkJCW5faW5kZXhfdmFsdWVbQklUKGR3b3JkLCAyOSldKTsKPiAtCXByaW50ZigiQVVE X0NPTkZJR19CICBOX3Byb2dyYW1taW5nX2VuYWJsZVx0XHRcdCVsdVxuIiwgQklUKGR3b3JkLCAy OCkpOwo+IC0JcHJpbnRmKCJBVURfQ09ORklHX0IgIFVwcGVyX05fdmFsdWVcdFx0XHRcdDB4JTAy bHhcbiIsIEJJVFMoZHdvcmQsIDI3LCAyMCkpOwo+IC0JcHJpbnRmKCJBVURfQ09ORklHX0IgIExv d2VyX05fdmFsdWVcdFx0XHRcdDB4JTAzbHhcbiIsIEJJVFMoZHdvcmQsIDE1LCA0KSk7Cj4gLQlw cmludGYoIkFVRF9DT05GSUdfQiAgUGl4ZWxfQ2xvY2tfSERNSVx0XHRcdFx0WzB4JWx4XSAlc1xu IiwgQklUUyhkd29yZCwgMTksIDE2KSwKPiAtCQkJT1BOQU1FKHBpeGVsX2Nsb2NrLCBCSVRTKGR3 b3JkLCAxOSwgMTYpKSk7Cj4gLQlwcmludGYoIkFVRF9DT05GSUdfQiAgRGlzYWJsZV9OQ1RTXHRc dFx0XHQlbHVcbiIsIEJJVChkd29yZCwgMykpOwo+ICsJcHJpbnRmKCJBVURfQ09ORklHX0IgIE5f aW5kZXhfdmFsdWVcdFx0XHRcdFsweCVseF0gJXNcbiIsIFJFR19CSVQoZHdvcmQsIDI5KSwKPiAr CQkJbl9pbmRleF92YWx1ZVtSRUdfQklUKGR3b3JkLCAyOSldKTsKPiArCXByaW50ZigiQVVEX0NP TkZJR19CICBOX3Byb2dyYW1taW5nX2VuYWJsZVx0XHRcdCVsdVxuIiwgUkVHX0JJVChkd29yZCwg MjgpKTsKPiArCXByaW50ZigiQVVEX0NPTkZJR19CICBVcHBlcl9OX3ZhbHVlXHRcdFx0XHQweCUw Mmx4XG4iLCBSRUdfQklUUyhkd29yZCwgMjcsIDIwKSk7Cj4gKwlwcmludGYoIkFVRF9DT05GSUdf QiAgTG93ZXJfTl92YWx1ZVx0XHRcdFx0MHglMDNseFxuIiwgUkVHX0JJVFMoZHdvcmQsIDE1LCA0 KSk7Cj4gKwlwcmludGYoIkFVRF9DT05GSUdfQiAgUGl4ZWxfQ2xvY2tfSERNSVx0XHRcdFx0WzB4 JWx4XSAlc1xuIiwgUkVHX0JJVFMoZHdvcmQsIDE5LCAxNiksCj4gKwkJCU9QTkFNRShwaXhlbF9j bG9jaywgUkVHX0JJVFMoZHdvcmQsIDE5LCAxNikpKTsKPiArCXByaW50ZigiQVVEX0NPTkZJR19C ICBEaXNhYmxlX05DVFNcdFx0XHRcdCVsdVxuIiwgUkVHX0JJVChkd29yZCwgMykpOwo+ICAJZHdv cmQgPSBJTlJFRyhBVURfQ09ORklHX0MpOwo+IC0JcHJpbnRmKCJBVURfQ09ORklHX0MgIE5faW5k ZXhfdmFsdWVcdFx0XHRcdFsweCVseF0gJXNcbiIsIEJJVChkd29yZCwgMjkpLAo+IC0JCQluX2lu ZGV4X3ZhbHVlW0JJVChkd29yZCwgMjkpXSk7Cj4gLQlwcmludGYoIkFVRF9DT05GSUdfQyAgTl9w cm9ncmFtbWluZ19lbmFibGVcdFx0XHQlbHVcbiIsIEJJVChkd29yZCwgMjgpKTsKPiAtCXByaW50 ZigiQVVEX0NPTkZJR19DICBVcHBlcl9OX3ZhbHVlXHRcdFx0XHQweCUwMmx4XG4iLCBCSVRTKGR3 b3JkLCAyNywgMjApKTsKPiAtCXByaW50ZigiQVVEX0NPTkZJR19DICBMb3dlcl9OX3ZhbHVlXHRc dFx0XHQweCUwM2x4XG4iLCBCSVRTKGR3b3JkLCAxNSwgNCkpOwo+IC0JcHJpbnRmKCJBVURfQ09O RklHX0MgIFBpeGVsX0Nsb2NrX0hETUlcdFx0XHRcdFsweCVseF0gJXNcbiIsIEJJVFMoZHdvcmQs IDE5LCAxNiksCj4gLQkJCU9QTkFNRShwaXhlbF9jbG9jaywgQklUUyhkd29yZCwgMTksIDE2KSkp Owo+IC0JcHJpbnRmKCJBVURfQ09ORklHX0MgIERpc2FibGVfTkNUU1x0XHRcdFx0JWx1XG4iLCBC SVQoZHdvcmQsIDMpKTsKPiArCXByaW50ZigiQVVEX0NPTkZJR19DICBOX2luZGV4X3ZhbHVlXHRc dFx0XHRbMHglbHhdICVzXG4iLCBSRUdfQklUKGR3b3JkLCAyOSksCj4gKwkJCW5faW5kZXhfdmFs dWVbUkVHX0JJVChkd29yZCwgMjkpXSk7Cj4gKwlwcmludGYoIkFVRF9DT05GSUdfQyAgTl9wcm9n cmFtbWluZ19lbmFibGVcdFx0XHQlbHVcbiIsIFJFR19CSVQoZHdvcmQsIDI4KSk7Cj4gKwlwcmlu dGYoIkFVRF9DT05GSUdfQyAgVXBwZXJfTl92YWx1ZVx0XHRcdFx0MHglMDJseFxuIiwgUkVHX0JJ VFMoZHdvcmQsIDI3LCAyMCkpOwo+ICsJcHJpbnRmKCJBVURfQ09ORklHX0MgIExvd2VyX05fdmFs dWVcdFx0XHRcdDB4JTAzbHhcbiIsIFJFR19CSVRTKGR3b3JkLCAxNSwgNCkpOwo+ICsJcHJpbnRm KCJBVURfQ09ORklHX0MgIFBpeGVsX0Nsb2NrX0hETUlcdFx0XHRcdFsweCVseF0gJXNcbiIsIFJF R19CSVRTKGR3b3JkLCAxOSwgMTYpLAo+ICsJCQlPUE5BTUUocGl4ZWxfY2xvY2ssIFJFR19CSVRT KGR3b3JkLCAxOSwgMTYpKSk7Cj4gKwlwcmludGYoIkFVRF9DT05GSUdfQyAgRGlzYWJsZV9OQ1RT XHRcdFx0XHQlbHVcbiIsIFJFR19CSVQoZHdvcmQsIDMpKTsKPiAgCj4gIAlkd29yZCA9IElOUkVH KEFVRF9DVFNfRU5BQkxFX0EpOwo+IC0JcHJpbnRmKCJBVURfQ1RTX0VOQUJMRV9BICBFbmFibGVf Q1RTX29yX01fcHJvZ3JhbW1pbmdcdFx0JWx1XG4iLCBCSVQoZHdvcmQsIDIwKSk7Cj4gLQlwcmlu dGYoIkFVRF9DVFNfRU5BQkxFX0EgIENUU19NIHZhbHVlIEluZGV4XHRcdFx0JXNcbiIsIEJJVChk d29yZCwgMjEpID8gIkNUUyIgOiAiTSIpOwo+IC0JcHJpbnRmKCJBVURfQ1RTX0VOQUJMRV9BICBD VFNfcHJvZ3JhbW1pbmdcdFx0XHQlI2x4XG4iLCBCSVRTKGR3b3JkLCAxOSwgMCkpOwo+ICsJcHJp bnRmKCJBVURfQ1RTX0VOQUJMRV9BICBFbmFibGVfQ1RTX29yX01fcHJvZ3JhbW1pbmdcdFx0JWx1 XG4iLCBSRUdfQklUKGR3b3JkLCAyMCkpOwo+ICsJcHJpbnRmKCJBVURfQ1RTX0VOQUJMRV9BICBD VFNfTSB2YWx1ZSBJbmRleFx0XHRcdCVzXG4iLCBSRUdfQklUKGR3b3JkLCAyMSkgPyAiQ1RTIiA6 ICJNIik7Cj4gKwlwcmludGYoIkFVRF9DVFNfRU5BQkxFX0EgIENUU19wcm9ncmFtbWluZ1x0XHRc dCUjbHhcbiIsIFJFR19CSVRTKGR3b3JkLCAxOSwgMCkpOwo+ICAJZHdvcmQgPSBJTlJFRyhBVURf Q1RTX0VOQUJMRV9CKTsKPiAtCXByaW50ZigiQVVEX0NUU19FTkFCTEVfQiAgRW5hYmxlX0NUU19v cl9NX3Byb2dyYW1taW5nXHRcdCVsdVxuIiwgQklUKGR3b3JkLCAyMCkpOwo+IC0JcHJpbnRmKCJB VURfQ1RTX0VOQUJMRV9CICBDVFNfTSB2YWx1ZSBJbmRleFx0XHRcdCVzXG4iLCBCSVQoZHdvcmQs IDIxKSA/ICJDVFMiIDogIk0iKTsKPiAtCXByaW50ZigiQVVEX0NUU19FTkFCTEVfQiAgQ1RTX3By b2dyYW1taW5nXHRcdFx0JSNseFxuIiwgQklUUyhkd29yZCwgMTksIDApKTsKPiArCXByaW50Zigi QVVEX0NUU19FTkFCTEVfQiAgRW5hYmxlX0NUU19vcl9NX3Byb2dyYW1taW5nXHRcdCVsdVxuIiwg UkVHX0JJVChkd29yZCwgMjApKTsKPiArCXByaW50ZigiQVVEX0NUU19FTkFCTEVfQiAgQ1RTX00g dmFsdWUgSW5kZXhcdFx0XHQlc1xuIiwgUkVHX0JJVChkd29yZCwgMjEpID8gIkNUUyIgOiAiTSIp Owo+ICsJcHJpbnRmKCJBVURfQ1RTX0VOQUJMRV9CICBDVFNfcHJvZ3JhbW1pbmdcdFx0XHQlI2x4 XG4iLCBSRUdfQklUUyhkd29yZCwgMTksIDApKTsKPiAgCWR3b3JkID0gSU5SRUcoQVVEX0NUU19F TkFCTEVfQyk7Cj4gLQlwcmludGYoIkFVRF9DVFNfRU5BQkxFX0MgIEVuYWJsZV9DVFNfb3JfTV9w cm9ncmFtbWluZ1x0XHQlbHVcbiIsIEJJVChkd29yZCwgMjApKTsKPiAtCXByaW50ZigiQVVEX0NU U19FTkFCTEVfQyAgQ1RTX00gdmFsdWUgSW5kZXhcdFx0XHQlc1xuIiwgQklUKGR3b3JkLCAyMSkg PyAiQ1RTIiA6ICJNIik7Cj4gLQlwcmludGYoIkFVRF9DVFNfRU5BQkxFX0MgIENUU19wcm9ncmFt bWluZ1x0XHRcdCUjbHhcbiIsIEJJVFMoZHdvcmQsIDE5LCAwKSk7Cj4gKwlwcmludGYoIkFVRF9D VFNfRU5BQkxFX0MgIEVuYWJsZV9DVFNfb3JfTV9wcm9ncmFtbWluZ1x0XHQlbHVcbiIsIFJFR19C SVQoZHdvcmQsIDIwKSk7Cj4gKwlwcmludGYoIkFVRF9DVFNfRU5BQkxFX0MgIENUU19NIHZhbHVl IEluZGV4XHRcdFx0JXNcbiIsIFJFR19CSVQoZHdvcmQsIDIxKSA/ICJDVFMiIDogIk0iKTsKPiAr CXByaW50ZigiQVVEX0NUU19FTkFCTEVfQyAgQ1RTX3Byb2dyYW1taW5nXHRcdFx0JSNseFxuIiwg UkVHX0JJVFMoZHdvcmQsIDE5LCAwKSk7Cj4gIAo+ICAJZHdvcmQgPSBJTlJFRyhBVURfTUlTQ19D VFJMX0EpOwo+IC0JcHJpbnRmKCJBVURfTUlTQ19DVFJMX0EgIFNhbXBsZV9GYWJyaWNhdGlvbl9F Tl9iaXRcdFx0JWx1XG4iLAlCSVQoZHdvcmQsIDIpKTsKPiAtCXByaW50ZigiQVVEX01JU0NfQ1RS TF9BICBTYW1wbGVfcHJlc2VudF9EaXNhYmxlXHRcdFx0JWx1XG4iLAlCSVQoZHdvcmQsIDgpKTsK PiAtCXByaW50ZigiQVVEX01JU0NfQ1RSTF9BICBPdXRwdXRfRGVsYXlcdFx0XHRcdCVsdVxuIiwJ CUJJVFMoZHdvcmQsIDcsIDQpKTsKPiAtCXByaW50ZigiQVVEX01JU0NfQ1RSTF9BICBQcm9fQWxs b3dlZFx0XHRcdFx0JWx1XG4iLAkJCUJJVChkd29yZCwgMSkpOwo+ICsJcHJpbnRmKCJBVURfTUlT Q19DVFJMX0EgIFNhbXBsZV9GYWJyaWNhdGlvbl9FTl9iaXRcdFx0JWx1XG4iLAlSRUdfQklUKGR3 b3JkLCAyKSk7Cj4gKwlwcmludGYoIkFVRF9NSVNDX0NUUkxfQSAgU2FtcGxlX3ByZXNlbnRfRGlz YWJsZVx0XHRcdCVsdVxuIiwJUkVHX0JJVChkd29yZCwgOCkpOwo+ICsJcHJpbnRmKCJBVURfTUlT Q19DVFJMX0EgIE91dHB1dF9EZWxheVx0XHRcdFx0JWx1XG4iLAkJUkVHX0JJVFMoZHdvcmQsIDcs IDQpKTsKPiArCXByaW50ZigiQVVEX01JU0NfQ1RSTF9BICBQcm9fQWxsb3dlZFx0XHRcdFx0JWx1 XG4iLAkJCVJFR19CSVQoZHdvcmQsIDEpKTsKPiAgCWR3b3JkID0gSU5SRUcoQVVEX01JU0NfQ1RS TF9CKTsKPiAtCXByaW50ZigiQVVEX01JU0NfQ1RSTF9CICBTYW1wbGVfRmFicmljYXRpb25fRU5f Yml0XHRcdCVsdVxuIiwJQklUKGR3b3JkLCAyKSk7Cj4gLQlwcmludGYoIkFVRF9NSVNDX0NUUkxf QiAgU2FtcGxlX3ByZXNlbnRfRGlzYWJsZVx0XHRcdCVsdVxuIiwJQklUKGR3b3JkLCA4KSk7Cj4g LQlwcmludGYoIkFVRF9NSVNDX0NUUkxfQiAgT3V0cHV0X0RlbGF5XHRcdFx0XHQlbHVcbiIsCQlC SVRTKGR3b3JkLCA3LCA0KSk7Cj4gLQlwcmludGYoIkFVRF9NSVNDX0NUUkxfQiAgUHJvX0FsbG93 ZWRcdFx0XHRcdCVsdVxuIiwJCQlCSVQoZHdvcmQsIDEpKTsKPiArCXByaW50ZigiQVVEX01JU0Nf Q1RSTF9CICBTYW1wbGVfRmFicmljYXRpb25fRU5fYml0XHRcdCVsdVxuIiwJUkVHX0JJVChkd29y ZCwgMikpOwo+ICsJcHJpbnRmKCJBVURfTUlTQ19DVFJMX0IgIFNhbXBsZV9wcmVzZW50X0Rpc2Fi bGVcdFx0XHQlbHVcbiIsCVJFR19CSVQoZHdvcmQsIDgpKTsKPiArCXByaW50ZigiQVVEX01JU0Nf Q1RSTF9CICBPdXRwdXRfRGVsYXlcdFx0XHRcdCVsdVxuIiwJCVJFR19CSVRTKGR3b3JkLCA3LCA0 KSk7Cj4gKwlwcmludGYoIkFVRF9NSVNDX0NUUkxfQiAgUHJvX0FsbG93ZWRcdFx0XHRcdCVsdVxu IiwJCQlSRUdfQklUKGR3b3JkLCAxKSk7Cj4gIAlkd29yZCA9IElOUkVHKEFVRF9NSVNDX0NUUkxf Qyk7Cj4gLQlwcmludGYoIkFVRF9NSVNDX0NUUkxfQyAgU2FtcGxlX0ZhYnJpY2F0aW9uX0VOX2Jp dFx0XHQlbHVcbiIsCUJJVChkd29yZCwgMikpOwo+IC0JcHJpbnRmKCJBVURfTUlTQ19DVFJMX0Mg IFNhbXBsZV9wcmVzZW50X0Rpc2FibGVcdFx0XHQlbHVcbiIsCUJJVChkd29yZCwgOCkpOwo+IC0J cHJpbnRmKCJBVURfTUlTQ19DVFJMX0MgIE91dHB1dF9EZWxheVx0XHRcdFx0JWx1XG4iLAkJQklU Uyhkd29yZCwgNywgNCkpOwo+IC0JcHJpbnRmKCJBVURfTUlTQ19DVFJMX0MgIFByb19BbGxvd2Vk XHRcdFx0XHQlbHVcbiIsCQkJQklUKGR3b3JkLCAxKSk7Cj4gKwlwcmludGYoIkFVRF9NSVNDX0NU UkxfQyAgU2FtcGxlX0ZhYnJpY2F0aW9uX0VOX2JpdFx0XHQlbHVcbiIsCVJFR19CSVQoZHdvcmQs IDIpKTsKPiArCXByaW50ZigiQVVEX01JU0NfQ1RSTF9DICBTYW1wbGVfcHJlc2VudF9EaXNhYmxl XHRcdFx0JWx1XG4iLAlSRUdfQklUKGR3b3JkLCA4KSk7Cj4gKwlwcmludGYoIkFVRF9NSVNDX0NU UkxfQyAgT3V0cHV0X0RlbGF5XHRcdFx0XHQlbHVcbiIsCQlSRUdfQklUUyhkd29yZCwgNywgNCkp Owo+ICsJcHJpbnRmKCJBVURfTUlTQ19DVFJMX0MgIFByb19BbGxvd2VkXHRcdFx0XHQlbHVcbiIs CQkJUkVHX0JJVChkd29yZCwgMSkpOwo+ICAKPiAgCWR3b3JkID0gSU5SRUcoQVVEX1BXUlNUKTsK PiAtCXByaW50ZigiQVVEX1BXUlNUICBGdW5jX0dycF9EZXZfUHdyU3RfQ3VyciAgICAgICAgICAg ICAgICAgIFx0JXNcbiIsIHBvd2VyX3N0YXRlW0JJVFMoZHdvcmQsIDI3LCAyNildKTsKPiAtCXBy aW50ZigiQVVEX1BXUlNUICBGdW5jX0dycF9EZXZfUHdyU3RfU2V0ICAgICAgICAgICAgICAgICAg IFx0JXNcbiIsIHBvd2VyX3N0YXRlW0JJVFMoZHdvcmQsIDI1LCAyNCldKTsKPiAtCXByaW50Zigi QVVEX1BXUlNUICBDb252ZXJ0b3JBX1dpZGdldF9Qb3dlcl9TdGF0ZV9DdXJyZW50ICAgIFx0JXNc biIsIHBvd2VyX3N0YXRlW0JJVFMoZHdvcmQsIDE1LCAxNCldKTsKPiAtCXByaW50ZigiQVVEX1BX UlNUICBDb252ZXJ0b3JBX1dpZGdldF9Qb3dlcl9TdGF0ZV9SZXF1c3RlZCAgIFx0JXNcbiIsIHBv d2VyX3N0YXRlW0JJVFMoZHdvcmQsIDEzLCAxMildKTsKPiAtCXByaW50ZigiQVVEX1BXUlNUICBD b252ZXJ0b3JCX1dpZGdldF9Qb3dlcl9TdGF0ZV9DdXJyZW50ICAgIFx0JXNcbiIsIHBvd2VyX3N0 YXRlW0JJVFMoZHdvcmQsIDE5LCAxOCldKTsKPiAtCXByaW50ZigiQVVEX1BXUlNUICBDb252ZXJ0 b3JCX1dpZGdldF9Qb3dlcl9TdGF0ZV9SZXF1ZXN0ZWQgIFx0JXNcbiIsIHBvd2VyX3N0YXRlW0JJ VFMoZHdvcmQsIDE3LCAxNildKTsKPiAtCXByaW50ZigiQVVEX1BXUlNUICBDb252Q19XaWRnZXRf UHdyU3RfQ3VyciAgICAgICAgICAgICAgICAgIFx0JXNcbiIsIHBvd2VyX3N0YXRlW0JJVFMoZHdv cmQsIDIzLCAyMildKTsKPiAtCXByaW50ZigiQVVEX1BXUlNUICBDb252Q19XaWRnZXRfUHdyU3Rf UmVxICAgICAgICAgICAgICAgICAgIFx0JXNcbiIsIHBvd2VyX3N0YXRlW0JJVFMoZHdvcmQsIDIx LCAyMCldKTsKPiAtCXByaW50ZigiQVVEX1BXUlNUICBQaW5CX1dpZGdldF9Qb3dlcl9TdGF0ZV9D dXJyZW50ICAgICAgICAgIFx0JXNcbiIsIHBvd2VyX3N0YXRlW0JJVFMoZHdvcmQsICAzLCAgMild KTsKPiAtCXByaW50ZigiQVVEX1BXUlNUICBQaW5CX1dpZGdldF9Qb3dlcl9TdGF0ZV9TZXQgICAg ICAgICAgICAgIFx0JXNcbiIsIHBvd2VyX3N0YXRlW0JJVFMoZHdvcmQsICAxLCAgMCldKTsKPiAt CXByaW50ZigiQVVEX1BXUlNUICBQaW5DX1dpZGdldF9Qb3dlcl9TdGF0ZV9DdXJyZW50ICAgICAg ICAgIFx0JXNcbiIsIHBvd2VyX3N0YXRlW0JJVFMoZHdvcmQsICA3LCAgNildKTsKPiAtCXByaW50 ZigiQVVEX1BXUlNUICBQaW5DX1dpZGdldF9Qb3dlcl9TdGF0ZV9TZXQgICAgICAgICAgICAgIFx0 JXNcbiIsIHBvd2VyX3N0YXRlW0JJVFMoZHdvcmQsICA1LCAgNCldKTsKPiAtCXByaW50ZigiQVVE X1BXUlNUICBQaW5EX1dpZGdldF9Qb3dlcl9TdGF0ZV9DdXJyZW50ICAgICAgICAgIFx0JXNcbiIs IHBvd2VyX3N0YXRlW0JJVFMoZHdvcmQsIDExLCAxMCldKTsKPiAtCXByaW50ZigiQVVEX1BXUlNU ICBQaW5EX1dpZGdldF9Qb3dlcl9TdGF0ZV9TZXQgICAgICAgICAgICAgIFx0JXNcbiIsIHBvd2Vy X3N0YXRlW0JJVFMoZHdvcmQsICA5LCAgOCldKTsKPiArCXByaW50ZigiQVVEX1BXUlNUICBGdW5j X0dycF9EZXZfUHdyU3RfQ3VyciAgICAgICAgICAgICAgICAgIFx0JXNcbiIsIHBvd2VyX3N0YXRl W1JFR19CSVRTKGR3b3JkLCAyNywgMjYpXSk7Cj4gKwlwcmludGYoIkFVRF9QV1JTVCAgRnVuY19H cnBfRGV2X1B3clN0X1NldCAgICAgICAgICAgICAgICAgICBcdCVzXG4iLCBwb3dlcl9zdGF0ZVtS RUdfQklUUyhkd29yZCwgMjUsIDI0KV0pOwo+ICsJcHJpbnRmKCJBVURfUFdSU1QgIENvbnZlcnRv ckFfV2lkZ2V0X1Bvd2VyX1N0YXRlX0N1cnJlbnQgICAgXHQlc1xuIiwgcG93ZXJfc3RhdGVbUkVH X0JJVFMoZHdvcmQsIDE1LCAxNCldKTsKPiArCXByaW50ZigiQVVEX1BXUlNUICBDb252ZXJ0b3JB X1dpZGdldF9Qb3dlcl9TdGF0ZV9SZXF1c3RlZCAgIFx0JXNcbiIsIHBvd2VyX3N0YXRlW1JFR19C SVRTKGR3b3JkLCAxMywgMTIpXSk7Cj4gKwlwcmludGYoIkFVRF9QV1JTVCAgQ29udmVydG9yQl9X aWRnZXRfUG93ZXJfU3RhdGVfQ3VycmVudCAgICBcdCVzXG4iLCBwb3dlcl9zdGF0ZVtSRUdfQklU Uyhkd29yZCwgMTksIDE4KV0pOwo+ICsJcHJpbnRmKCJBVURfUFdSU1QgIENvbnZlcnRvckJfV2lk Z2V0X1Bvd2VyX1N0YXRlX1JlcXVlc3RlZCAgXHQlc1xuIiwgcG93ZXJfc3RhdGVbUkVHX0JJVFMo ZHdvcmQsIDE3LCAxNildKTsKPiArCXByaW50ZigiQVVEX1BXUlNUICBDb252Q19XaWRnZXRfUHdy U3RfQ3VyciAgICAgICAgICAgICAgICAgIFx0JXNcbiIsIHBvd2VyX3N0YXRlW1JFR19CSVRTKGR3 b3JkLCAyMywgMjIpXSk7Cj4gKwlwcmludGYoIkFVRF9QV1JTVCAgQ29udkNfV2lkZ2V0X1B3clN0 X1JlcSAgICAgICAgICAgICAgICAgICBcdCVzXG4iLCBwb3dlcl9zdGF0ZVtSRUdfQklUUyhkd29y ZCwgMjEsIDIwKV0pOwo+ICsJcHJpbnRmKCJBVURfUFdSU1QgIFBpbkJfV2lkZ2V0X1Bvd2VyX1N0 YXRlX0N1cnJlbnQgICAgICAgICAgXHQlc1xuIiwgcG93ZXJfc3RhdGVbUkVHX0JJVFMoZHdvcmQs ICAzLCAgMildKTsKPiArCXByaW50ZigiQVVEX1BXUlNUICBQaW5CX1dpZGdldF9Qb3dlcl9TdGF0 ZV9TZXQgICAgICAgICAgICAgIFx0JXNcbiIsIHBvd2VyX3N0YXRlW1JFR19CSVRTKGR3b3JkLCAg MSwgIDApXSk7Cj4gKwlwcmludGYoIkFVRF9QV1JTVCAgUGluQ19XaWRnZXRfUG93ZXJfU3RhdGVf Q3VycmVudCAgICAgICAgICBcdCVzXG4iLCBwb3dlcl9zdGF0ZVtSRUdfQklUUyhkd29yZCwgIDcs ICA2KV0pOwo+ICsJcHJpbnRmKCJBVURfUFdSU1QgIFBpbkNfV2lkZ2V0X1Bvd2VyX1N0YXRlX1Nl dCAgICAgICAgICAgICAgXHQlc1xuIiwgcG93ZXJfc3RhdGVbUkVHX0JJVFMoZHdvcmQsICA1LCAg NCldKTsKPiArCXByaW50ZigiQVVEX1BXUlNUICBQaW5EX1dpZGdldF9Qb3dlcl9TdGF0ZV9DdXJy ZW50ICAgICAgICAgIFx0JXNcbiIsIHBvd2VyX3N0YXRlW1JFR19CSVRTKGR3b3JkLCAxMSwgMTAp XSk7Cj4gKwlwcmludGYoIkFVRF9QV1JTVCAgUGluRF9XaWRnZXRfUG93ZXJfU3RhdGVfU2V0ICAg ICAgICAgICAgICBcdCVzXG4iLCBwb3dlcl9zdGF0ZVtSRUdfQklUUyhkd29yZCwgIDksICA4KV0p Owo+ICAKPiAgCWR3b3JkID0gSU5SRUcoQVVEX1BPUlRfRU5fSERfQ0ZHKTsKPiAtCXByaW50Zigi QVVEX1BPUlRfRU5fSERfQ0ZHICBDb252ZXJ0b3JfQV9EaWdlblx0XHRcdCVsdVxuIiwJQklUKGR3 b3JkLCAwKSk7Cj4gLQlwcmludGYoIkFVRF9QT1JUX0VOX0hEX0NGRyAgQ29udmVydG9yX0JfRGln ZW5cdFx0XHQlbHVcbiIsCUJJVChkd29yZCwgMSkpOwo+IC0JcHJpbnRmKCJBVURfUE9SVF9FTl9I RF9DRkcgIENvbnZlcnRvcl9DX0RpZ2VuXHRcdFx0JWx1XG4iLAlCSVQoZHdvcmQsIDIpKTsKPiAt CXByaW50ZigiQVVEX1BPUlRfRU5fSERfQ0ZHICBDb252ZXJ0b3JBX1N0cmVhbV9JRFx0XHQlbHVc biIsCUJJVFMoZHdvcmQsICA3LCA0KSk7Cj4gLQlwcmludGYoIkFVRF9QT1JUX0VOX0hEX0NGRyAg Q29udmVydG9yQl9TdHJlYW1fSURcdFx0JWx1XG4iLAlCSVRTKGR3b3JkLCAxMSwgOCkpOwo+IC0J cHJpbnRmKCJBVURfUE9SVF9FTl9IRF9DRkcgIENvbnZlcnRvckNfU3RyZWFtX0lEXHRcdCVsdVxu IiwJQklUUyhkd29yZCwgMTUsIDEyKSk7Cj4gLQlwcmludGYoIkFVRF9QT1JUX0VOX0hEX0NGRyAg UG9ydF9CX091dF9FbmFibGVcdFx0XHQlbHVcbiIsCUJJVChkd29yZCwgMTYpKTsKPiAtCXByaW50 ZigiQVVEX1BPUlRfRU5fSERfQ0ZHICBQb3J0X0NfT3V0X0VuYWJsZVx0XHRcdCVsdVxuIiwJQklU KGR3b3JkLCAxNykpOwo+IC0JcHJpbnRmKCJBVURfUE9SVF9FTl9IRF9DRkcgIFBvcnRfRF9PdXRf RW5hYmxlXHRcdFx0JWx1XG4iLAlCSVQoZHdvcmQsIDE4KSk7Cj4gLQlwcmludGYoIkFVRF9QT1JU X0VOX0hEX0NGRyAgUG9ydF9CX0FtcF9NdXRlX1N0YXR1c1x0XHQlbHVcbiIsIEJJVChkd29yZCwg MjApKTsKPiAtCXByaW50ZigiQVVEX1BPUlRfRU5fSERfQ0ZHICBQb3J0X0NfQW1wX011dGVfU3Rh dHVzXHRcdCVsdVxuIiwgQklUKGR3b3JkLCAyMSkpOwo+IC0JcHJpbnRmKCJBVURfUE9SVF9FTl9I RF9DRkcgIFBvcnRfRF9BbXBfTXV0ZV9TdGF0dXNcdFx0JWx1XG4iLCBCSVQoZHdvcmQsIDIyKSk7 Cj4gKwlwcmludGYoIkFVRF9QT1JUX0VOX0hEX0NGRyAgQ29udmVydG9yX0FfRGlnZW5cdFx0XHQl bHVcbiIsCVJFR19CSVQoZHdvcmQsIDApKTsKPiArCXByaW50ZigiQVVEX1BPUlRfRU5fSERfQ0ZH ICBDb252ZXJ0b3JfQl9EaWdlblx0XHRcdCVsdVxuIiwJUkVHX0JJVChkd29yZCwgMSkpOwo+ICsJ cHJpbnRmKCJBVURfUE9SVF9FTl9IRF9DRkcgIENvbnZlcnRvcl9DX0RpZ2VuXHRcdFx0JWx1XG4i LAlSRUdfQklUKGR3b3JkLCAyKSk7Cj4gKwlwcmludGYoIkFVRF9QT1JUX0VOX0hEX0NGRyAgQ29u dmVydG9yQV9TdHJlYW1fSURcdFx0JWx1XG4iLAlSRUdfQklUUyhkd29yZCwgIDcsIDQpKTsKPiAr CXByaW50ZigiQVVEX1BPUlRfRU5fSERfQ0ZHICBDb252ZXJ0b3JCX1N0cmVhbV9JRFx0XHQlbHVc biIsCVJFR19CSVRTKGR3b3JkLCAxMSwgOCkpOwo+ICsJcHJpbnRmKCJBVURfUE9SVF9FTl9IRF9D RkcgIENvbnZlcnRvckNfU3RyZWFtX0lEXHRcdCVsdVxuIiwJUkVHX0JJVFMoZHdvcmQsIDE1LCAx MikpOwo+ICsJcHJpbnRmKCJBVURfUE9SVF9FTl9IRF9DRkcgIFBvcnRfQl9PdXRfRW5hYmxlXHRc dFx0JWx1XG4iLAlSRUdfQklUKGR3b3JkLCAxNikpOwo+ICsJcHJpbnRmKCJBVURfUE9SVF9FTl9I RF9DRkcgIFBvcnRfQ19PdXRfRW5hYmxlXHRcdFx0JWx1XG4iLAlSRUdfQklUKGR3b3JkLCAxNykp Owo+ICsJcHJpbnRmKCJBVURfUE9SVF9FTl9IRF9DRkcgIFBvcnRfRF9PdXRfRW5hYmxlXHRcdFx0 JWx1XG4iLAlSRUdfQklUKGR3b3JkLCAxOCkpOwo+ICsJcHJpbnRmKCJBVURfUE9SVF9FTl9IRF9D RkcgIFBvcnRfQl9BbXBfTXV0ZV9TdGF0dXNcdFx0JWx1XG4iLCBSRUdfQklUKGR3b3JkLCAyMCkp Owo+ICsJcHJpbnRmKCJBVURfUE9SVF9FTl9IRF9DRkcgIFBvcnRfQ19BbXBfTXV0ZV9TdGF0dXNc dFx0JWx1XG4iLCBSRUdfQklUKGR3b3JkLCAyMSkpOwo+ICsJcHJpbnRmKCJBVURfUE9SVF9FTl9I RF9DRkcgIFBvcnRfRF9BbXBfTXV0ZV9TdGF0dXNcdFx0JWx1XG4iLCBSRUdfQklUKGR3b3JkLCAy MikpOwo+ICAKPiAgCWR3b3JkID0gSU5SRUcoQVVEX09VVF9ESUdfQ05WVF9BKTsKPiAtCXByaW50 ZigiQVVEX09VVF9ESUdfQ05WVF9BICBWXHRcdFx0XHRcdCVsdVxuIiwJCUJJVChkd29yZCwgMSkp Owo+IC0JcHJpbnRmKCJBVURfT1VUX0RJR19DTlZUX0EgIFZDRkdcdFx0XHRcdCVsdVxuIiwJCUJJ VChkd29yZCwgMikpOwo+IC0JcHJpbnRmKCJBVURfT1VUX0RJR19DTlZUX0EgIFBSRVx0XHRcdFx0 XHQlbHVcbiIsCQlCSVQoZHdvcmQsIDMpKTsKPiAtCXByaW50ZigiQVVEX09VVF9ESUdfQ05WVF9B ICBDb3B5XHRcdFx0XHQlbHVcbiIsCQlCSVQoZHdvcmQsIDQpKTsKPiAtCXByaW50ZigiQVVEX09V VF9ESUdfQ05WVF9BICBOb25BdWRpb1x0XHRcdFx0JWx1XG4iLAkJQklUKGR3b3JkLCA1KSk7Cj4g LQlwcmludGYoIkFVRF9PVVRfRElHX0NOVlRfQSAgUFJPXHRcdFx0XHRcdCVsdVxuIiwJCUJJVChk d29yZCwgNikpOwo+IC0JcHJpbnRmKCJBVURfT1VUX0RJR19DTlZUX0EgIExldmVsXHRcdFx0XHQl bHVcbiIsCQlCSVQoZHdvcmQsIDcpKTsKPiAtCXByaW50ZigiQVVEX09VVF9ESUdfQ05WVF9BICBD YXRlZ29yeV9Db2RlXHRcdFx0JWx1XG4iLAlCSVRTKGR3b3JkLCAxNCwgOCkpOwo+IC0JcHJpbnRm KCJBVURfT1VUX0RJR19DTlZUX0EgIExvd2VzdF9DaGFubmVsX051bWJlclx0XHQlbHVcbiIsIEJJ VFMoZHdvcmQsIDE5LCAxNikpOwo+IC0JcHJpbnRmKCJBVURfT1VUX0RJR19DTlZUX0EgIFN0cmVh bV9JRFx0XHRcdFx0JWx1XG4iLAlCSVRTKGR3b3JkLCAyMywgMjApKTsKPiArCXByaW50ZigiQVVE X09VVF9ESUdfQ05WVF9BICBWXHRcdFx0XHRcdCVsdVxuIiwJCVJFR19CSVQoZHdvcmQsIDEpKTsK PiArCXByaW50ZigiQVVEX09VVF9ESUdfQ05WVF9BICBWQ0ZHXHRcdFx0XHQlbHVcbiIsCQlSRUdf QklUKGR3b3JkLCAyKSk7Cj4gKwlwcmludGYoIkFVRF9PVVRfRElHX0NOVlRfQSAgUFJFXHRcdFx0 XHRcdCVsdVxuIiwJCVJFR19CSVQoZHdvcmQsIDMpKTsKPiArCXByaW50ZigiQVVEX09VVF9ESUdf Q05WVF9BICBDb3B5XHRcdFx0XHQlbHVcbiIsCQlSRUdfQklUKGR3b3JkLCA0KSk7Cj4gKwlwcmlu dGYoIkFVRF9PVVRfRElHX0NOVlRfQSAgTm9uQXVkaW9cdFx0XHRcdCVsdVxuIiwJCVJFR19CSVQo ZHdvcmQsIDUpKTsKPiArCXByaW50ZigiQVVEX09VVF9ESUdfQ05WVF9BICBQUk9cdFx0XHRcdFx0 JWx1XG4iLAkJUkVHX0JJVChkd29yZCwgNikpOwo+ICsJcHJpbnRmKCJBVURfT1VUX0RJR19DTlZU X0EgIExldmVsXHRcdFx0XHQlbHVcbiIsCQlSRUdfQklUKGR3b3JkLCA3KSk7Cj4gKwlwcmludGYo IkFVRF9PVVRfRElHX0NOVlRfQSAgQ2F0ZWdvcnlfQ29kZVx0XHRcdCVsdVxuIiwJUkVHX0JJVFMo ZHdvcmQsIDE0LCA4KSk7Cj4gKwlwcmludGYoIkFVRF9PVVRfRElHX0NOVlRfQSAgTG93ZXN0X0No YW5uZWxfTnVtYmVyXHRcdCVsdVxuIiwgUkVHX0JJVFMoZHdvcmQsIDE5LCAxNikpOwo+ICsJcHJp bnRmKCJBVURfT1VUX0RJR19DTlZUX0EgIFN0cmVhbV9JRFx0XHRcdFx0JWx1XG4iLAlSRUdfQklU Uyhkd29yZCwgMjMsIDIwKSk7Cj4gIAo+ICAJZHdvcmQgPSBJTlJFRyhBVURfT1VUX0RJR19DTlZU X0IpOwo+IC0JcHJpbnRmKCJBVURfT1VUX0RJR19DTlZUX0IgIFZcdFx0XHRcdFx0JWx1XG4iLAkJ QklUKGR3b3JkLCAxKSk7Cj4gLQlwcmludGYoIkFVRF9PVVRfRElHX0NOVlRfQiAgVkNGR1x0XHRc dFx0JWx1XG4iLAkJQklUKGR3b3JkLCAyKSk7Cj4gLQlwcmludGYoIkFVRF9PVVRfRElHX0NOVlRf QiAgUFJFXHRcdFx0XHRcdCVsdVxuIiwJCUJJVChkd29yZCwgMykpOwo+IC0JcHJpbnRmKCJBVURf T1VUX0RJR19DTlZUX0IgIENvcHlcdFx0XHRcdCVsdVxuIiwJCUJJVChkd29yZCwgNCkpOwo+IC0J cHJpbnRmKCJBVURfT1VUX0RJR19DTlZUX0IgIE5vbkF1ZGlvXHRcdFx0XHQlbHVcbiIsCQlCSVQo ZHdvcmQsIDUpKTsKPiAtCXByaW50ZigiQVVEX09VVF9ESUdfQ05WVF9CICBQUk9cdFx0XHRcdFx0 JWx1XG4iLAkJQklUKGR3b3JkLCA2KSk7Cj4gLQlwcmludGYoIkFVRF9PVVRfRElHX0NOVlRfQiAg TGV2ZWxcdFx0XHRcdCVsdVxuIiwJCUJJVChkd29yZCwgNykpOwo+IC0JcHJpbnRmKCJBVURfT1VU X0RJR19DTlZUX0IgIENhdGVnb3J5X0NvZGVcdFx0XHQlbHVcbiIsCUJJVFMoZHdvcmQsIDE0LCA4 KSk7Cj4gLQlwcmludGYoIkFVRF9PVVRfRElHX0NOVlRfQiAgTG93ZXN0X0NoYW5uZWxfTnVtYmVy XHRcdCVsdVxuIiwgQklUUyhkd29yZCwgMTksIDE2KSk7Cj4gLQlwcmludGYoIkFVRF9PVVRfRElH X0NOVlRfQiAgU3RyZWFtX0lEXHRcdFx0XHQlbHVcbiIsCUJJVFMoZHdvcmQsIDIzLCAyMCkpOwo+ ICsJcHJpbnRmKCJBVURfT1VUX0RJR19DTlZUX0IgIFZcdFx0XHRcdFx0JWx1XG4iLAkJUkVHX0JJ VChkd29yZCwgMSkpOwo+ICsJcHJpbnRmKCJBVURfT1VUX0RJR19DTlZUX0IgIFZDRkdcdFx0XHRc dCVsdVxuIiwJCVJFR19CSVQoZHdvcmQsIDIpKTsKPiArCXByaW50ZigiQVVEX09VVF9ESUdfQ05W VF9CICBQUkVcdFx0XHRcdFx0JWx1XG4iLAkJUkVHX0JJVChkd29yZCwgMykpOwo+ICsJcHJpbnRm KCJBVURfT1VUX0RJR19DTlZUX0IgIENvcHlcdFx0XHRcdCVsdVxuIiwJCVJFR19CSVQoZHdvcmQs IDQpKTsKPiArCXByaW50ZigiQVVEX09VVF9ESUdfQ05WVF9CICBOb25BdWRpb1x0XHRcdFx0JWx1 XG4iLAkJUkVHX0JJVChkd29yZCwgNSkpOwo+ICsJcHJpbnRmKCJBVURfT1VUX0RJR19DTlZUX0Ig IFBST1x0XHRcdFx0XHQlbHVcbiIsCQlSRUdfQklUKGR3b3JkLCA2KSk7Cj4gKwlwcmludGYoIkFV RF9PVVRfRElHX0NOVlRfQiAgTGV2ZWxcdFx0XHRcdCVsdVxuIiwJCVJFR19CSVQoZHdvcmQsIDcp KTsKPiArCXByaW50ZigiQVVEX09VVF9ESUdfQ05WVF9CICBDYXRlZ29yeV9Db2RlXHRcdFx0JWx1 XG4iLAlSRUdfQklUUyhkd29yZCwgMTQsIDgpKTsKPiArCXByaW50ZigiQVVEX09VVF9ESUdfQ05W VF9CICBMb3dlc3RfQ2hhbm5lbF9OdW1iZXJcdFx0JWx1XG4iLCBSRUdfQklUUyhkd29yZCwgMTks IDE2KSk7Cj4gKwlwcmludGYoIkFVRF9PVVRfRElHX0NOVlRfQiAgU3RyZWFtX0lEXHRcdFx0XHQl bHVcbiIsCVJFR19CSVRTKGR3b3JkLCAyMywgMjApKTsKPiAgCj4gIAlkd29yZCA9IElOUkVHKEFV RF9PVVRfRElHX0NOVlRfQyk7Cj4gLQlwcmludGYoIkFVRF9PVVRfRElHX0NOVlRfQyAgVlx0XHRc dFx0XHQlbHVcbiIsCQlCSVQoZHdvcmQsIDEpKTsKPiAtCXByaW50ZigiQVVEX09VVF9ESUdfQ05W VF9DICBWQ0ZHXHRcdFx0XHQlbHVcbiIsCQlCSVQoZHdvcmQsIDIpKTsKPiAtCXByaW50ZigiQVVE X09VVF9ESUdfQ05WVF9DICBQUkVcdFx0XHRcdFx0JWx1XG4iLAkJQklUKGR3b3JkLCAzKSk7Cj4g LQlwcmludGYoIkFVRF9PVVRfRElHX0NOVlRfQyAgQ29weVx0XHRcdFx0JWx1XG4iLAkJQklUKGR3 b3JkLCA0KSk7Cj4gLQlwcmludGYoIkFVRF9PVVRfRElHX0NOVlRfQyAgTm9uQXVkaW9cdFx0XHRc dCVsdVxuIiwJCUJJVChkd29yZCwgNSkpOwo+IC0JcHJpbnRmKCJBVURfT1VUX0RJR19DTlZUX0Mg IFBST1x0XHRcdFx0XHQlbHVcbiIsCQlCSVQoZHdvcmQsIDYpKTsKPiAtCXByaW50ZigiQVVEX09V VF9ESUdfQ05WVF9DICBMZXZlbFx0XHRcdFx0JWx1XG4iLAkJQklUKGR3b3JkLCA3KSk7Cj4gLQlw cmludGYoIkFVRF9PVVRfRElHX0NOVlRfQyAgQ2F0ZWdvcnlfQ29kZVx0XHRcdCVsdVxuIiwJQklU Uyhkd29yZCwgMTQsIDgpKTsKPiAtCXByaW50ZigiQVVEX09VVF9ESUdfQ05WVF9DICBMb3dlc3Rf Q2hhbm5lbF9OdW1iZXJcdFx0JWx1XG4iLCBCSVRTKGR3b3JkLCAxOSwgMTYpKTsKPiAtCXByaW50 ZigiQVVEX09VVF9ESUdfQ05WVF9DICBTdHJlYW1fSURcdFx0XHRcdCVsdVxuIiwJQklUUyhkd29y ZCwgMjMsIDIwKSk7Cj4gKwlwcmludGYoIkFVRF9PVVRfRElHX0NOVlRfQyAgVlx0XHRcdFx0XHQl bHVcbiIsCQlSRUdfQklUKGR3b3JkLCAxKSk7Cj4gKwlwcmludGYoIkFVRF9PVVRfRElHX0NOVlRf QyAgVkNGR1x0XHRcdFx0JWx1XG4iLAkJUkVHX0JJVChkd29yZCwgMikpOwo+ICsJcHJpbnRmKCJB VURfT1VUX0RJR19DTlZUX0MgIFBSRVx0XHRcdFx0XHQlbHVcbiIsCQlSRUdfQklUKGR3b3JkLCAz KSk7Cj4gKwlwcmludGYoIkFVRF9PVVRfRElHX0NOVlRfQyAgQ29weVx0XHRcdFx0JWx1XG4iLAkJ UkVHX0JJVChkd29yZCwgNCkpOwo+ICsJcHJpbnRmKCJBVURfT1VUX0RJR19DTlZUX0MgIE5vbkF1 ZGlvXHRcdFx0XHQlbHVcbiIsCQlSRUdfQklUKGR3b3JkLCA1KSk7Cj4gKwlwcmludGYoIkFVRF9P VVRfRElHX0NOVlRfQyAgUFJPXHRcdFx0XHRcdCVsdVxuIiwJCVJFR19CSVQoZHdvcmQsIDYpKTsK PiArCXByaW50ZigiQVVEX09VVF9ESUdfQ05WVF9DICBMZXZlbFx0XHRcdFx0JWx1XG4iLAkJUkVH X0JJVChkd29yZCwgNykpOwo+ICsJcHJpbnRmKCJBVURfT1VUX0RJR19DTlZUX0MgIENhdGVnb3J5 X0NvZGVcdFx0XHQlbHVcbiIsCVJFR19CSVRTKGR3b3JkLCAxNCwgOCkpOwo+ICsJcHJpbnRmKCJB VURfT1VUX0RJR19DTlZUX0MgIExvd2VzdF9DaGFubmVsX051bWJlclx0XHQlbHVcbiIsIFJFR19C SVRTKGR3b3JkLCAxOSwgMTYpKTsKPiArCXByaW50ZigiQVVEX09VVF9ESUdfQ05WVF9DICBTdHJl YW1fSURcdFx0XHRcdCVsdVxuIiwJUkVHX0JJVFMoZHdvcmQsIDIzLCAyMCkpOwo+ICAKPiAgCXBy aW50ZigiQVVEX09VVF9DSF9TVFIgIENvbnZlcnRlcl9DaGFubmVsX01BUAlQT1JUQglQT1JUQwlQ T1JURFxuIik7Cj4gIAlmb3IgKGkgPSAwOyBpIDwgODsgaSsrKSB7Cj4gIAkJT1VUUkVHKEFVRF9P VVRfQ0hfU1RSLCBpIHwgKGkgPDwgOCkgfCAoaSA8PCAxNikpOwo+ICAJCWR3b3JkID0gSU5SRUco QVVEX09VVF9DSF9TVFIpOwo+ICAJCXByaW50ZigiXHRcdFx0XHQlbHVcdCVsdVx0JWx1XHQlbHVc biIsCj4gLQkJCQkxICsgQklUUyhkd29yZCwgIDMsICAwKSwKPiAtCQkJCTEgKyBCSVRTKGR3b3Jk LCAgNywgIDQpLAo+IC0JCQkJMSArIEJJVFMoZHdvcmQsIDE1LCAxMiksCj4gLQkJCQkxICsgQklU Uyhkd29yZCwgMjMsIDIwKSk7Cj4gKwkJCQkxICsgUkVHX0JJVFMoZHdvcmQsICAzLCAgMCksCj4g KwkJCQkxICsgUkVHX0JJVFMoZHdvcmQsICA3LCAgNCksCj4gKwkJCQkxICsgUkVHX0JJVFMoZHdv cmQsIDE1LCAxMiksCj4gKwkJCQkxICsgUkVHX0JJVFMoZHdvcmQsIDIzLCAyMCkpOwo+ICAJfQo+ ICAKPiAgCWR3b3JkID0gSU5SRUcoQVVEX09VVF9TVFJfREVTQ19BKTsKPiAtCXByaW50ZigiQVVE X09VVF9TVFJfREVTQ19BICBIQlJfZW5hYmxlXHRcdFx0XHQlbHVcbiIsCSBCSVRTKGR3b3JkLCAy OCwgMjcpKTsKPiAtCXByaW50ZigiQVVEX09VVF9TVFJfREVTQ19BICBDb252ZXJ0b3JfQ2hhbm5l bF9Db3VudFx0XHQlbHVcbiIsIEJJVFMoZHdvcmQsIDIwLCAxNikgKyAxKTsKPiArCXByaW50Zigi QVVEX09VVF9TVFJfREVTQ19BICBIQlJfZW5hYmxlXHRcdFx0XHQlbHVcbiIsCSBSRUdfQklUUyhk d29yZCwgMjgsIDI3KSk7Cj4gKwlwcmludGYoIkFVRF9PVVRfU1RSX0RFU0NfQSAgQ29udmVydG9y X0NoYW5uZWxfQ291bnRcdFx0JWx1XG4iLCBSRUdfQklUUyhkd29yZCwgMjAsIDE2KSArIDEpOwo+ ICAJcHJpbnRmKCJBVURfT1VUX1NUUl9ERVNDX0EgIEJpdHNfcGVyX1NhbXBsZVx0XHRcdFslI2x4 XSAlc1xuIiwKPiAtCQkJQklUUyhkd29yZCwgNiwgNCksIE9QTkFNRShiaXRzX3Blcl9zYW1wbGUs IEJJVFMoZHdvcmQsIDYsIDQpKSk7Cj4gLQlwcmludGYoIkFVRF9PVVRfU1RSX0RFU0NfQSAgTnVt YmVyX29mX0NoYW5uZWxzX2luX2FfU3RyZWFtXHQlbHVcbiIsIDEgKyBCSVRTKGR3b3JkLCAzLCAw KSk7Cj4gKwkJCVJFR19CSVRTKGR3b3JkLCA2LCA0KSwgT1BOQU1FKGJpdHNfcGVyX3NhbXBsZSwg UkVHX0JJVFMoZHdvcmQsIDYsIDQpKSk7Cj4gKwlwcmludGYoIkFVRF9PVVRfU1RSX0RFU0NfQSAg TnVtYmVyX29mX0NoYW5uZWxzX2luX2FfU3RyZWFtXHQlbHVcbiIsIDEgKyBSRUdfQklUUyhkd29y ZCwgMywgMCkpOwo+ICAKPiAgCWR3b3JkID0gSU5SRUcoQVVEX09VVF9TVFJfREVTQ19CKTsKPiAt CXByaW50ZigiQVVEX09VVF9TVFJfREVTQ19CICBIQlJfZW5hYmxlXHRcdFx0XHQlbHVcbiIsCSBC SVRTKGR3b3JkLCAyOCwgMjcpKTsKPiAtCXByaW50ZigiQVVEX09VVF9TVFJfREVTQ19CICBDb252 ZXJ0b3JfQ2hhbm5lbF9Db3VudFx0XHQlbHVcbiIsIEJJVFMoZHdvcmQsIDIwLCAxNikgKyAxKTsK PiArCXByaW50ZigiQVVEX09VVF9TVFJfREVTQ19CICBIQlJfZW5hYmxlXHRcdFx0XHQlbHVcbiIs CSBSRUdfQklUUyhkd29yZCwgMjgsIDI3KSk7Cj4gKwlwcmludGYoIkFVRF9PVVRfU1RSX0RFU0Nf QiAgQ29udmVydG9yX0NoYW5uZWxfQ291bnRcdFx0JWx1XG4iLCBSRUdfQklUUyhkd29yZCwgMjAs IDE2KSArIDEpOwo+ICAJcHJpbnRmKCJBVURfT1VUX1NUUl9ERVNDX0IgIEJpdHNfcGVyX1NhbXBs ZVx0XHRcdFslI2x4XSAlc1xuIiwKPiAtCQkJQklUUyhkd29yZCwgNiwgNCksIE9QTkFNRShiaXRz X3Blcl9zYW1wbGUsIEJJVFMoZHdvcmQsIDYsIDQpKSk7Cj4gLQlwcmludGYoIkFVRF9PVVRfU1RS X0RFU0NfQiAgTnVtYmVyX29mX0NoYW5uZWxzX2luX2FfU3RyZWFtXHQlbHVcbiIsIDEgKyBCSVRT KGR3b3JkLCAzLCAwKSk7Cj4gKwkJCVJFR19CSVRTKGR3b3JkLCA2LCA0KSwgT1BOQU1FKGJpdHNf cGVyX3NhbXBsZSwgUkVHX0JJVFMoZHdvcmQsIDYsIDQpKSk7Cj4gKwlwcmludGYoIkFVRF9PVVRf U1RSX0RFU0NfQiAgTnVtYmVyX29mX0NoYW5uZWxzX2luX2FfU3RyZWFtXHQlbHVcbiIsIDEgKyBS RUdfQklUUyhkd29yZCwgMywgMCkpOwo+ICAKPiAgCWR3b3JkID0gSU5SRUcoQVVEX09VVF9TVFJf REVTQ19DKTsKPiAtCXByaW50ZigiQVVEX09VVF9TVFJfREVTQ19DICBIQlJfZW5hYmxlXHRcdFx0 XHQlbHVcbiIsCSBCSVRTKGR3b3JkLCAyOCwgMjcpKTsKPiAtCXByaW50ZigiQVVEX09VVF9TVFJf REVTQ19DICBDb252ZXJ0b3JfQ2hhbm5lbF9Db3VudFx0XHQlbHVcbiIsIEJJVFMoZHdvcmQsIDIw LCAxNikgKyAxKTsKPiArCXByaW50ZigiQVVEX09VVF9TVFJfREVTQ19DICBIQlJfZW5hYmxlXHRc dFx0XHQlbHVcbiIsCSBSRUdfQklUUyhkd29yZCwgMjgsIDI3KSk7Cj4gKwlwcmludGYoIkFVRF9P VVRfU1RSX0RFU0NfQyAgQ29udmVydG9yX0NoYW5uZWxfQ291bnRcdFx0JWx1XG4iLCBSRUdfQklU Uyhkd29yZCwgMjAsIDE2KSArIDEpOwo+ICAJcHJpbnRmKCJBVURfT1VUX1NUUl9ERVNDX0MgIEJp dHNfcGVyX1NhbXBsZVx0XHRcdFslI2x4XSAlc1xuIiwKPiAtCQkJQklUUyhkd29yZCwgNiwgNCks IE9QTkFNRShiaXRzX3Blcl9zYW1wbGUsIEJJVFMoZHdvcmQsIDYsIDQpKSk7Cj4gLQlwcmludGYo IkFVRF9PVVRfU1RSX0RFU0NfQyAgTnVtYmVyX29mX0NoYW5uZWxzX2luX2FfU3RyZWFtXHQlbHVc biIsIDEgKyBCSVRTKGR3b3JkLCAzLCAwKSk7Cj4gKwkJCVJFR19CSVRTKGR3b3JkLCA2LCA0KSwg T1BOQU1FKGJpdHNfcGVyX3NhbXBsZSwgUkVHX0JJVFMoZHdvcmQsIDYsIDQpKSk7Cj4gKwlwcmlu dGYoIkFVRF9PVVRfU1RSX0RFU0NfQyAgTnVtYmVyX29mX0NoYW5uZWxzX2luX2FfU3RyZWFtXHQl bHVcbiIsIDEgKyBSRUdfQklUUyhkd29yZCwgMywgMCkpOwo+ICAKPiAgCWR3b3JkID0gSU5SRUco QVVEX1BJTldfQ09OTkxOR19TRUwpOwo+IC0JcHJpbnRmKCJBVURfUElOV19DT05OTE5HX1NFTCAg Q29ubmVjdGlvbl9zZWxlY3RfQ29udHJvbF9CXHQlI2x4XG4iLCBCSVRTKGR3b3JkLCAgNywgIDAp KTsKPiAtCXByaW50ZigiQVVEX1BJTldfQ09OTkxOR19TRUwgIENvbm5lY3Rpb25fc2VsZWN0X0Nv bnRyb2xfQ1x0JSNseFxuIiwgQklUUyhkd29yZCwgMTUsICA4KSk7Cj4gLQlwcmludGYoIkFVRF9Q SU5XX0NPTk5MTkdfU0VMICBDb25uZWN0aW9uX3NlbGVjdF9Db250cm9sX0RcdCUjbHhcbiIsIEJJ VFMoZHdvcmQsIDIzLCAxNikpOwo+ICsJcHJpbnRmKCJBVURfUElOV19DT05OTE5HX1NFTCAgQ29u bmVjdGlvbl9zZWxlY3RfQ29udHJvbF9CXHQlI2x4XG4iLCBSRUdfQklUUyhkd29yZCwgIDcsICAw KSk7Cj4gKwlwcmludGYoIkFVRF9QSU5XX0NPTk5MTkdfU0VMICBDb25uZWN0aW9uX3NlbGVjdF9D b250cm9sX0NcdCUjbHhcbiIsIFJFR19CSVRTKGR3b3JkLCAxNSwgIDgpKTsKPiArCXByaW50Zigi QVVEX1BJTldfQ09OTkxOR19TRUwgIENvbm5lY3Rpb25fc2VsZWN0X0NvbnRyb2xfRFx0JSNseFxu IiwgUkVHX0JJVFMoZHdvcmQsIDIzLCAxNikpOwo+ICAKPiAgCWR3b3JkID0gSU5SRUcoQVVEX0NO VExfU1RfQSk7Cj4gIAlwcmludGYoIkFVRF9DTlRMX1NUX0EgIERJUF9Qb3J0X1NlbGVjdFx0XHRc dFx0WyUjbHhdICVzXG4iLAo+IC0JCQlCSVRTKGR3b3JkLCAzMCwgMjkpLCBkaXBfcG9ydFtCSVRT KGR3b3JkLCAzMCwgMjkpXSk7Cj4gLQlwcmludGYoIkFVRF9DTlRMX1NUX0EgIERJUF90eXBlX2Vu YWJsZV9zdGF0dXMgQXVkaW8gRElQXHRcdCVsdVxuIiwgQklUKGR3b3JkLCAyMSkpOwo+IC0JcHJp bnRmKCJBVURfQ05UTF9TVF9BICBESVBfdHlwZV9lbmFibGVfc3RhdHVzIEFDUCBESVBcdFx0JWx1 XG4iLCBCSVQoZHdvcmQsIDIyKSk7Cj4gLQlwcmludGYoIkFVRF9DTlRMX1NUX0EgIERJUF90eXBl X2VuYWJsZV9zdGF0dXMgR2VuZXJpYyAyIERJUFx0JWx1XG4iLCBCSVQoZHdvcmQsIDIzKSk7Cj4g KwkJCVJFR19CSVRTKGR3b3JkLCAzMCwgMjkpLCBkaXBfcG9ydFtSRUdfQklUUyhkd29yZCwgMzAs IDI5KV0pOwo+ICsJcHJpbnRmKCJBVURfQ05UTF9TVF9BICBESVBfdHlwZV9lbmFibGVfc3RhdHVz IEF1ZGlvIERJUFx0XHQlbHVcbiIsIFJFR19CSVQoZHdvcmQsIDIxKSk7Cj4gKwlwcmludGYoIkFV RF9DTlRMX1NUX0EgIERJUF90eXBlX2VuYWJsZV9zdGF0dXMgQUNQIERJUFx0XHQlbHVcbiIsIFJF R19CSVQoZHdvcmQsIDIyKSk7Cj4gKwlwcmludGYoIkFVRF9DTlRMX1NUX0EgIERJUF90eXBlX2Vu YWJsZV9zdGF0dXMgR2VuZXJpYyAyIERJUFx0JWx1XG4iLCBSRUdfQklUKGR3b3JkLCAyMykpOwo+ ICAJcHJpbnRmKCJBVURfQ05UTF9TVF9BICBESVBfdHJhbnNtaXNzaW9uX2ZyZXF1ZW5jeVx0XHRb MHglbHhdICVzXG4iLAo+IC0JCQlCSVRTKGR3b3JkLCAxNywgMTYpLCBkaXBfdHJhbnNbQklUUyhk d29yZCwgMTcsIDE2KV0pOwo+IC0JcHJpbnRmKCJBVURfQ05UTF9TVF9BICBFTERfQUNLXHRcdFx0 XHRcdCVsdVxuIiwgQklUKGR3b3JkLCA0KSk7Cj4gLQlwcmludGYoIkFVRF9DTlRMX1NUX0EgIEVM RF9idWZmZXJfc2l6ZVx0XHRcdFx0JWx1XG4iLCBCSVRTKGR3b3JkLCAxNCwgMTApKTsKPiArCQkJ UkVHX0JJVFMoZHdvcmQsIDE3LCAxNiksIGRpcF90cmFuc1tSRUdfQklUUyhkd29yZCwgMTcsIDE2 KV0pOwo+ICsJcHJpbnRmKCJBVURfQ05UTF9TVF9BICBFTERfQUNLXHRcdFx0XHRcdCVsdVxuIiwg UkVHX0JJVChkd29yZCwgNCkpOwo+ICsJcHJpbnRmKCJBVURfQ05UTF9TVF9BICBFTERfYnVmZmVy X3NpemVcdFx0XHRcdCVsdVxuIiwgUkVHX0JJVFMoZHdvcmQsIDE0LCAxMCkpOwo+ICAKPiAgCWR3 b3JkID0gSU5SRUcoQVVEX0NOVExfU1RfQik7Cj4gIAlwcmludGYoIkFVRF9DTlRMX1NUX0IgIERJ UF9Qb3J0X1NlbGVjdFx0XHRcdFx0WyUjbHhdICVzXG4iLAo+IC0JCQlCSVRTKGR3b3JkLCAzMCwg MjkpLCBkaXBfcG9ydFtCSVRTKGR3b3JkLCAzMCwgMjkpXSk7Cj4gLQlwcmludGYoIkFVRF9DTlRM X1NUX0IgIERJUF90eXBlX2VuYWJsZV9zdGF0dXMgQXVkaW8gRElQXHRcdCVsdVxuIiwgQklUKGR3 b3JkLCAyMSkpOwo+IC0JcHJpbnRmKCJBVURfQ05UTF9TVF9CICBESVBfdHlwZV9lbmFibGVfc3Rh dHVzIEFDUCBESVBcdFx0JWx1XG4iLCBCSVQoZHdvcmQsIDIyKSk7Cj4gLQlwcmludGYoIkFVRF9D TlRMX1NUX0IgIERJUF90eXBlX2VuYWJsZV9zdGF0dXMgR2VuZXJpYyAyIERJUFx0JWx1XG4iLCBC SVQoZHdvcmQsIDIzKSk7Cj4gKwkJCVJFR19CSVRTKGR3b3JkLCAzMCwgMjkpLCBkaXBfcG9ydFtS RUdfQklUUyhkd29yZCwgMzAsIDI5KV0pOwo+ICsJcHJpbnRmKCJBVURfQ05UTF9TVF9CICBESVBf dHlwZV9lbmFibGVfc3RhdHVzIEF1ZGlvIERJUFx0XHQlbHVcbiIsIFJFR19CSVQoZHdvcmQsIDIx KSk7Cj4gKwlwcmludGYoIkFVRF9DTlRMX1NUX0IgIERJUF90eXBlX2VuYWJsZV9zdGF0dXMgQUNQ IERJUFx0XHQlbHVcbiIsIFJFR19CSVQoZHdvcmQsIDIyKSk7Cj4gKwlwcmludGYoIkFVRF9DTlRM X1NUX0IgIERJUF90eXBlX2VuYWJsZV9zdGF0dXMgR2VuZXJpYyAyIERJUFx0JWx1XG4iLCBSRUdf QklUKGR3b3JkLCAyMykpOwo+ICAJcHJpbnRmKCJBVURfQ05UTF9TVF9CICBESVBfdHJhbnNtaXNz aW9uX2ZyZXF1ZW5jeVx0XHRbMHglbHhdICVzXG4iLAo+IC0JCQlCSVRTKGR3b3JkLCAxNywgMTYp LCBkaXBfdHJhbnNbQklUUyhkd29yZCwgMTcsIDE2KV0pOwo+IC0JcHJpbnRmKCJBVURfQ05UTF9T VF9CICBFTERfQUNLXHRcdFx0XHRcdCVsdVxuIiwgQklUKGR3b3JkLCA0KSk7Cj4gLQlwcmludGYo IkFVRF9DTlRMX1NUX0IgIEVMRF9idWZmZXJfc2l6ZVx0XHRcdFx0JWx1XG4iLCBCSVRTKGR3b3Jk LCAxNCwgMTApKTsKPiArCQkJUkVHX0JJVFMoZHdvcmQsIDE3LCAxNiksIGRpcF90cmFuc1tSRUdf QklUUyhkd29yZCwgMTcsIDE2KV0pOwo+ICsJcHJpbnRmKCJBVURfQ05UTF9TVF9CICBFTERfQUNL XHRcdFx0XHRcdCVsdVxuIiwgUkVHX0JJVChkd29yZCwgNCkpOwo+ICsJcHJpbnRmKCJBVURfQ05U TF9TVF9CICBFTERfYnVmZmVyX3NpemVcdFx0XHRcdCVsdVxuIiwgUkVHX0JJVFMoZHdvcmQsIDE0 LCAxMCkpOwo+ICAKPiAgCWR3b3JkID0gSU5SRUcoQVVEX0NOVExfU1RfQyk7Cj4gIAlwcmludGYo IkFVRF9DTlRMX1NUX0MgIERJUF9Qb3J0X1NlbGVjdFx0XHRcdFx0WyUjbHhdICVzXG4iLAo+IC0J CQlCSVRTKGR3b3JkLCAzMCwgMjkpLCBkaXBfcG9ydFtCSVRTKGR3b3JkLCAzMCwgMjkpXSk7Cj4g LQlwcmludGYoIkFVRF9DTlRMX1NUX0MgIERJUF90eXBlX2VuYWJsZV9zdGF0dXMgQXVkaW8gRElQ XHRcdCVsdVxuIiwgQklUKGR3b3JkLCAyMSkpOwo+IC0JcHJpbnRmKCJBVURfQ05UTF9TVF9DICBE SVBfdHlwZV9lbmFibGVfc3RhdHVzIEFDUCBESVBcdFx0JWx1XG4iLCBCSVQoZHdvcmQsIDIyKSk7 Cj4gLQlwcmludGYoIkFVRF9DTlRMX1NUX0MgIERJUF90eXBlX2VuYWJsZV9zdGF0dXMgR2VuZXJp YyAyIERJUFx0JWx1XG4iLCBCSVQoZHdvcmQsIDIzKSk7Cj4gKwkJCVJFR19CSVRTKGR3b3JkLCAz MCwgMjkpLCBkaXBfcG9ydFtSRUdfQklUUyhkd29yZCwgMzAsIDI5KV0pOwo+ICsJcHJpbnRmKCJB VURfQ05UTF9TVF9DICBESVBfdHlwZV9lbmFibGVfc3RhdHVzIEF1ZGlvIERJUFx0XHQlbHVcbiIs IFJFR19CSVQoZHdvcmQsIDIxKSk7Cj4gKwlwcmludGYoIkFVRF9DTlRMX1NUX0MgIERJUF90eXBl X2VuYWJsZV9zdGF0dXMgQUNQIERJUFx0XHQlbHVcbiIsIFJFR19CSVQoZHdvcmQsIDIyKSk7Cj4g KwlwcmludGYoIkFVRF9DTlRMX1NUX0MgIERJUF90eXBlX2VuYWJsZV9zdGF0dXMgR2VuZXJpYyAy IERJUFx0JWx1XG4iLCBSRUdfQklUKGR3b3JkLCAyMykpOwo+ICAJcHJpbnRmKCJBVURfQ05UTF9T VF9DICBESVBfdHJhbnNtaXNzaW9uX2ZyZXF1ZW5jeVx0XHRbMHglbHhdICVzXG4iLAo+IC0JCQlC SVRTKGR3b3JkLCAxNywgMTYpLCBkaXBfdHJhbnNbQklUUyhkd29yZCwgMTcsIDE2KV0pOwo+IC0J cHJpbnRmKCJBVURfQ05UTF9TVF9DICBFTERfQUNLXHRcdFx0XHRcdCVsdVxuIiwgQklUKGR3b3Jk LCA0KSk7Cj4gLQlwcmludGYoIkFVRF9DTlRMX1NUX0MgIEVMRF9idWZmZXJfc2l6ZVx0XHRcdFx0 JWx1XG4iLCBCSVRTKGR3b3JkLCAxNCwgMTApKTsKPiArCQkJUkVHX0JJVFMoZHdvcmQsIDE3LCAx NiksIGRpcF90cmFuc1tSRUdfQklUUyhkd29yZCwgMTcsIDE2KV0pOwo+ICsJcHJpbnRmKCJBVURf Q05UTF9TVF9DICBFTERfQUNLXHRcdFx0XHRcdCVsdVxuIiwgUkVHX0JJVChkd29yZCwgNCkpOwo+ ICsJcHJpbnRmKCJBVURfQ05UTF9TVF9DICBFTERfYnVmZmVyX3NpemVcdFx0XHRcdCVsdVxuIiwg UkVHX0JJVFMoZHdvcmQsIDE0LCAxMCkpOwo+ICAKPiAgCWR3b3JkID0gSU5SRUcoQVVEX0NOVFJM X1NUMik7Cj4gLQlwcmludGYoIkFVRF9DTlRSTF9TVDIgIENQX1JlYWR5Qlx0XHRcdFx0JWx1XG4i LAlCSVQoZHdvcmQsIDEpKTsKPiAtCXByaW50ZigiQVVEX0NOVFJMX1NUMiAgRUxEX3ZhbGlkQlx0 XHRcdFx0JWx1XG4iLAlCSVQoZHdvcmQsIDApKTsKPiAtCXByaW50ZigiQVVEX0NOVFJMX1NUMiAg Q1BfUmVhZHlDXHRcdFx0XHQlbHVcbiIsCUJJVChkd29yZCwgNSkpOwo+IC0JcHJpbnRmKCJBVURf Q05UUkxfU1QyICBFTERfdmFsaWRDXHRcdFx0XHQlbHVcbiIsCUJJVChkd29yZCwgNCkpOwo+IC0J cHJpbnRmKCJBVURfQ05UUkxfU1QyICBDUF9SZWFkeURcdFx0XHRcdCVsdVxuIiwJQklUKGR3b3Jk LCA5KSk7Cj4gLQlwcmludGYoIkFVRF9DTlRSTF9TVDIgIEVMRF92YWxpZERcdFx0XHRcdCVsdVxu IiwJQklUKGR3b3JkLCA4KSk7Cj4gKwlwcmludGYoIkFVRF9DTlRSTF9TVDIgIENQX1JlYWR5Qlx0 XHRcdFx0JWx1XG4iLAlSRUdfQklUKGR3b3JkLCAxKSk7Cj4gKwlwcmludGYoIkFVRF9DTlRSTF9T VDIgIEVMRF92YWxpZEJcdFx0XHRcdCVsdVxuIiwJUkVHX0JJVChkd29yZCwgMCkpOwo+ICsJcHJp bnRmKCJBVURfQ05UUkxfU1QyICBDUF9SZWFkeUNcdFx0XHRcdCVsdVxuIiwJUkVHX0JJVChkd29y ZCwgNSkpOwo+ICsJcHJpbnRmKCJBVURfQ05UUkxfU1QyICBFTERfdmFsaWRDXHRcdFx0XHQlbHVc biIsCVJFR19CSVQoZHdvcmQsIDQpKTsKPiArCXByaW50ZigiQVVEX0NOVFJMX1NUMiAgQ1BfUmVh ZHlEXHRcdFx0XHQlbHVcbiIsCVJFR19CSVQoZHdvcmQsIDkpKTsKPiArCXByaW50ZigiQVVEX0NO VFJMX1NUMiAgRUxEX3ZhbGlkRFx0XHRcdFx0JWx1XG4iLAlSRUdfQklUKGR3b3JkLCA4KSk7Cj4g IAo+ICAJZHdvcmQgPSBJTlJFRyhBVURfQ05UUkxfU1QzKTsKPiAtCXByaW50ZigiQVVEX0NOVFJM X1NUMyAgVHJhbnNBX0RQVF9BdWRpb19PdXRwdXRfRW5cdFx0JWx1XG4iLAlCSVQoZHdvcmQsIDMp KTsKPiArCXByaW50ZigiQVVEX0NOVFJMX1NUMyAgVHJhbnNBX0RQVF9BdWRpb19PdXRwdXRfRW5c dFx0JWx1XG4iLAlSRUdfQklUKGR3b3JkLCAzKSk7Cj4gIAlwcmludGYoIkFVRF9DTlRSTF9TVDMg IFRyYW5zQV90b19Qb3J0X1NlbFx0XHRcdFslI2x4XSAlc1xuIiwKPiAtCQkJQklUUyhkd29yZCwg MiwgMCksIHRyYW5zX3RvX3BvcnRfc2VsW0JJVFMoZHdvcmQsIDIsIDApXSk7Cj4gLQlwcmludGYo IkFVRF9DTlRSTF9TVDMgIFRyYW5zQl9EUFRfQXVkaW9fT3V0cHV0X0VuXHRcdCVsdVxuIiwJQklU KGR3b3JkLCA3KSk7Cj4gKwkJCVJFR19CSVRTKGR3b3JkLCAyLCAwKSwgdHJhbnNfdG9fcG9ydF9z ZWxbUkVHX0JJVFMoZHdvcmQsIDIsIDApXSk7Cj4gKwlwcmludGYoIkFVRF9DTlRSTF9TVDMgIFRy YW5zQl9EUFRfQXVkaW9fT3V0cHV0X0VuXHRcdCVsdVxuIiwJUkVHX0JJVChkd29yZCwgNykpOwo+ ICAJcHJpbnRmKCJBVURfQ05UUkxfU1QzICBUcmFuc0JfdG9fUG9ydF9TZWxcdFx0XHRbJSNseF0g JXNcbiIsCj4gLQkJCUJJVFMoZHdvcmQsIDYsIDQpLCB0cmFuc190b19wb3J0X3NlbFtCSVRTKGR3 b3JkLCA2LCA0KV0pOwo+IC0JcHJpbnRmKCJBVURfQ05UUkxfU1QzICBUcmFuc0NfRFBUX0F1ZGlv X091dHB1dF9Fblx0XHQlbHVcbiIsCUJJVChkd29yZCwgMTEpKTsKPiArCQkJUkVHX0JJVFMoZHdv cmQsIDYsIDQpLCB0cmFuc190b19wb3J0X3NlbFtSRUdfQklUUyhkd29yZCwgNiwgNCldKTsKPiAr CXByaW50ZigiQVVEX0NOVFJMX1NUMyAgVHJhbnNDX0RQVF9BdWRpb19PdXRwdXRfRW5cdFx0JWx1 XG4iLAlSRUdfQklUKGR3b3JkLCAxMSkpOwo+ICAJcHJpbnRmKCJBVURfQ05UUkxfU1QzICBUcmFu c0NfdG9fUG9ydF9TZWxcdFx0XHRbJSNseF0gJXNcbiIsCj4gLQkJCUJJVFMoZHdvcmQsIDEwLCA4 KSwgdHJhbnNfdG9fcG9ydF9zZWxbQklUUyhkd29yZCwgMTAsIDgpXSk7Cj4gKwkJCVJFR19CSVRT KGR3b3JkLCAxMCwgOCksIHRyYW5zX3RvX3BvcnRfc2VsW1JFR19CSVRTKGR3b3JkLCAxMCwgOCld KTsKPiAgCj4gIAlkd29yZCA9IElOUkVHKEFVRF9IRE1JV19TVEFUVVMpOwo+IC0JcHJpbnRmKCJB VURfSERNSVdfU1RBVFVTICBDb252X0FfQ0RDTEsvRE9UQ0xLX0ZJRk9fVW5kZXJydW5cdCVsdVxu IiwgQklUKGR3b3JkLCAyNykpOwo+IC0JcHJpbnRmKCJBVURfSERNSVdfU1RBVFVTICBDb252X0Ff Q0RDTEsvRE9UQ0xLX0ZJRk9fT3ZlcnJ1blx0JWx1XG4iLCAgQklUKGR3b3JkLCAyNikpOwo+IC0J cHJpbnRmKCJBVURfSERNSVdfU1RBVFVTICBDb252X0JfQ0RDTEsvRE9UQ0xLX0ZJRk9fVW5kZXJy dW5cdCVsdVxuIiwgQklUKGR3b3JkLCAyOSkpOwo+IC0JcHJpbnRmKCJBVURfSERNSVdfU1RBVFVT ICBDb252X0JfQ0RDTEsvRE9UQ0xLX0ZJRk9fT3ZlcnJ1blx0JWx1XG4iLCAgQklUKGR3b3JkLCAy OCkpOwo+IC0JcHJpbnRmKCJBVURfSERNSVdfU1RBVFVTICBDb252X0NfQ0RDTEsvRE9UQ0xLX0ZJ Rk9fVW5kZXJydW5cdCVsdVxuIiwgQklUKGR3b3JkLCAzMSkpOwo+IC0JcHJpbnRmKCJBVURfSERN SVdfU1RBVFVTICBDb252X0NfQ0RDTEsvRE9UQ0xLX0ZJRk9fT3ZlcnJ1blx0JWx1XG4iLCAgQklU KGR3b3JkLCAzMCkpOwo+IC0JcHJpbnRmKCJBVURfSERNSVdfU1RBVFVTICBCQ0xLL0NEQ0xLX0ZJ Rk9fT3ZlcnJ1blx0XHQlbHVcbiIsCSBCSVQoZHdvcmQsIDI1KSk7Cj4gLQlwcmludGYoIkFVRF9I RE1JV19TVEFUVVMgIEZ1bmN0aW9uX1Jlc2V0XHRcdFx0JWx1XG4iLAkJIEJJVChkd29yZCwgMjQp KTsKPiArCXByaW50ZigiQVVEX0hETUlXX1NUQVRVUyAgQ29udl9BX0NEQ0xLL0RPVENMS19GSUZP X1VuZGVycnVuXHQlbHVcbiIsIFJFR19CSVQoZHdvcmQsIDI3KSk7Cj4gKwlwcmludGYoIkFVRF9I RE1JV19TVEFUVVMgIENvbnZfQV9DRENMSy9ET1RDTEtfRklGT19PdmVycnVuXHQlbHVcbiIsICBS RUdfQklUKGR3b3JkLCAyNikpOwo+ICsJcHJpbnRmKCJBVURfSERNSVdfU1RBVFVTICBDb252X0Jf Q0RDTEsvRE9UQ0xLX0ZJRk9fVW5kZXJydW5cdCVsdVxuIiwgUkVHX0JJVChkd29yZCwgMjkpKTsK PiArCXByaW50ZigiQVVEX0hETUlXX1NUQVRVUyAgQ29udl9CX0NEQ0xLL0RPVENMS19GSUZPX092 ZXJydW5cdCVsdVxuIiwgIFJFR19CSVQoZHdvcmQsIDI4KSk7Cj4gKwlwcmludGYoIkFVRF9IRE1J V19TVEFUVVMgIENvbnZfQ19DRENMSy9ET1RDTEtfRklGT19VbmRlcnJ1blx0JWx1XG4iLCBSRUdf QklUKGR3b3JkLCAzMSkpOwo+ICsJcHJpbnRmKCJBVURfSERNSVdfU1RBVFVTICBDb252X0NfQ0RD TEsvRE9UQ0xLX0ZJRk9fT3ZlcnJ1blx0JWx1XG4iLCAgUkVHX0JJVChkd29yZCwgMzApKTsKPiAr CXByaW50ZigiQVVEX0hETUlXX1NUQVRVUyAgQkNMSy9DRENMS19GSUZPX092ZXJydW5cdFx0JWx1 XG4iLAkgUkVHX0JJVChkd29yZCwgMjUpKTsKPiArCXByaW50ZigiQVVEX0hETUlXX1NUQVRVUyAg RnVuY3Rpb25fUmVzZXRcdFx0XHQlbHVcbiIsCQkgUkVHX0JJVChkd29yZCwgMjQpKTsKPiAgCj4g IAlwcmludGYoIkFVRF9IRE1JV19IRE1JRURJRF9BIEhETUkgRUxEOlxuXHQiKTsKPiAgCWR3b3Jk ID0gSU5SRUcoQVVEX0NOVExfU1RfQSk7Cj4gIAlkd29yZCAmPSB+QklUTUFTSyg5LCA1KTsKPiAg CU9VVFJFRyhBVURfQ05UTF9TVF9BLCBkd29yZCk7Cj4gLQlmb3IgKGkgPSAwOyBpIDwgQklUUyhk d29yZCwgMTQsIDEwKSAvIDQ7IGkrKykKPiArCWZvciAoaSA9IDA7IGkgPCBSRUdfQklUUyhkd29y ZCwgMTQsIDEwKSAvIDQ7IGkrKykKPiAgCQlwcmludGYoIiUwOHggIiwgaHRvbmwoSU5SRUcoQVVE X0hETUlXX0hETUlFRElEX0EpKSk7Cj4gIAlwcmludGYoIlxuIik7Cj4gIAo+IEBAIC0xMjEyLDcg KzEyMTIsNyBAQCBzdGF0aWMgdm9pZCBkdW1wX2NwdCh2b2lkKQo+ICAJZHdvcmQgPSBJTlJFRyhB VURfQ05UTF9TVF9CKTsKPiAgCWR3b3JkICY9IH5CSVRNQVNLKDksIDUpOwo+ICAJT1VUUkVHKEFV RF9DTlRMX1NUX0IsIGR3b3JkKTsKPiAtCWZvciAoaSA9IDA7IGkgPCBCSVRTKGR3b3JkLCAxNCwg MTApIC8gNDsgaSsrKQo+ICsJZm9yIChpID0gMDsgaSA8IFJFR19CSVRTKGR3b3JkLCAxNCwgMTAp IC8gNDsgaSsrKQo+ICAJCXByaW50ZigiJTA4eCAiLCBodG9ubChJTlJFRyhBVURfSERNSVdfSERN SUVESURfQikpKTsKPiAgCXByaW50ZigiXG4iKTsKPiAgCj4gQEAgLTEyMjAsNyArMTIyMCw3IEBA IHN0YXRpYyB2b2lkIGR1bXBfY3B0KHZvaWQpCj4gIAlkd29yZCA9IElOUkVHKEFVRF9DTlRMX1NU X0MpOwo+ICAJZHdvcmQgJj0gfkJJVE1BU0soOSwgNSk7Cj4gIAlPVVRSRUcoQVVEX0NOVExfU1Rf QywgZHdvcmQpOwo+IC0JZm9yIChpID0gMDsgaSA8IEJJVFMoZHdvcmQsIDE0LCAxMCkgLyA0OyBp KyspCj4gKwlmb3IgKGkgPSAwOyBpIDwgUkVHX0JJVFMoZHdvcmQsIDE0LCAxMCkgLyA0OyBpKysp Cj4gIAkJcHJpbnRmKCIlMDh4ICIsIGh0b25sKElOUkVHKEFVRF9IRE1JV19IRE1JRURJRF9DKSkp Owo+ICAJcHJpbnRmKCJcbiIpOwo+ICAKPiBAQCAtMTM4MSwxNCArMTM4MSwxNCBAQCBzdGF0aWMg dm9pZCBkdW1wX2F1ZF9jb25maWcoaW50IGluZGV4KQo+ICAJCXNwcmludGYocHJlZml4LCAiQVVE X1RDJWNfQ09ORklHIiwgJ0EnICsgaW5kZXggLSBUUkFOU0NPREVSX0EpOwo+ICAJfQo+ICAKPiAt CXByaW50ZigiJXMgIERpc2FibGVfTkNUU1x0XHRcdFx0JWx1XG4iLCAgICAgICAgICBwcmVmaXgs IEJJVChkd29yZCwgMykpOwo+IC0JcHJpbnRmKCIlcyAgTG93ZXJfTl92YWx1ZVx0XHRcdFx0MHgl MDNseFxuIiwgICAgIHByZWZpeCwgQklUUyhkd29yZCwgMTUsIDQpKTsKPiAtCXByaW50ZigiJXMg IFBpeGVsX0Nsb2NrX0hETUlcdFx0XHRbMHglbHhdICVzXG4iLCBwcmVmaXgsIEJJVFMoZHdvcmQs IDE5LCAxNiksCj4gLQkJT1BOQU1FKHBpeGVsX2Nsb2NrLCBCSVRTKGR3b3JkLCAxOSwgMTYpKSk7 Cj4gLQlwcmludGYoIiVzICBVcHBlcl9OX3ZhbHVlXHRcdFx0XHQweCUwMmx4XG4iLCAgICAgcHJl Zml4LCBCSVRTKGR3b3JkLCAyNywgMjApKTsKPiAtCXByaW50ZigiJXMgIE5fcHJvZ3JhbW1pbmdf ZW5hYmxlXHRcdFx0JWx1XG4iLCAgICBwcmVmaXgsIEJJVChkd29yZCwgMjgpKTsKPiAtCXByaW50 ZigiJXMgIE5faW5kZXhfdmFsdWVcdFx0XHRcdFsweCVseF0gJXNcbiIsICBwcmVmaXgsIEJJVChk d29yZCwgMjkpLAo+IC0JCU9QTkFNRShuX2luZGV4X3ZhbHVlLCBCSVQoZHdvcmQsIDI5KSkpOwo+ ICsJcHJpbnRmKCIlcyAgRGlzYWJsZV9OQ1RTXHRcdFx0XHQlbHVcbiIsICAgICAgICAgIHByZWZp eCwgUkVHX0JJVChkd29yZCwgMykpOwo+ICsJcHJpbnRmKCIlcyAgTG93ZXJfTl92YWx1ZVx0XHRc dFx0MHglMDNseFxuIiwgICAgIHByZWZpeCwgUkVHX0JJVFMoZHdvcmQsIDE1LCA0KSk7Cj4gKwlw cmludGYoIiVzICBQaXhlbF9DbG9ja19IRE1JXHRcdFx0WzB4JWx4XSAlc1xuIiwgcHJlZml4LCBS RUdfQklUUyhkd29yZCwgMTksIDE2KSwKPiArCQlPUE5BTUUocGl4ZWxfY2xvY2ssIFJFR19CSVRT KGR3b3JkLCAxOSwgMTYpKSk7Cj4gKwlwcmludGYoIiVzICBVcHBlcl9OX3ZhbHVlXHRcdFx0XHQw eCUwMmx4XG4iLCAgICAgcHJlZml4LCBSRUdfQklUUyhkd29yZCwgMjcsIDIwKSk7Cj4gKwlwcmlu dGYoIiVzICBOX3Byb2dyYW1taW5nX2VuYWJsZVx0XHRcdCVsdVxuIiwgICAgcHJlZml4LCBSRUdf QklUKGR3b3JkLCAyOCkpOwo+ICsJcHJpbnRmKCIlcyAgTl9pbmRleF92YWx1ZVx0XHRcdFx0WzB4 JWx4XSAlc1xuIiwgIHByZWZpeCwgUkVHX0JJVChkd29yZCwgMjkpLAo+ICsJCU9QTkFNRShuX2lu ZGV4X3ZhbHVlLCBSRUdfQklUKGR3b3JkLCAyOSkpKTsKPiAgfQo+ICAKPiAgc3RhdGljIHZvaWQg ZHVtcF9hdWRfbWlzY19jb250cm9sKGludCBpbmRleCkKPiBAQCAtMTQwNCwxMCArMTQwNCwxMCBA QCBzdGF0aWMgdm9pZCBkdW1wX2F1ZF9taXNjX2NvbnRyb2woaW50IGluZGV4KQo+ICAJCXNwcmlu dGYocHJlZml4LCAiQVVEX0MlY19NSVNDX0NUUkwiLCAnMScgKyBpbmRleCAtIENPTlZFUlRFUl8x KTsKPiAgCX0KPiAgCj4gLQlwcmludGYoIiVzICAgUHJvX0FsbG93ZWRcdFx0XHRcdCVsdVxuIiwg ICAgICAgICAgIHByZWZpeCwgQklUKGR3b3JkLCAxKSk7Cj4gLQlwcmludGYoIiVzICAgU2FtcGxl X0ZhYnJpY2F0aW9uX0VOX2JpdFx0XHQlbHVcbiIsIHByZWZpeCwgQklUKGR3b3JkLCAyKSk7Cj4g LQlwcmludGYoIiVzICAgT3V0cHV0X0RlbGF5XHRcdFx0XHQlbHVcbiIsICAgICAgICAgIHByZWZp eCwgQklUUyhkd29yZCwgNywgNCkpOwo+IC0JcHJpbnRmKCIlcyAgIFNhbXBsZV9wcmVzZW50X0Rp c2FibGVcdFx0JWx1XG4iLCAgICBwcmVmaXgsIEJJVChkd29yZCwgOCkpOwo+ICsJcHJpbnRmKCIl cyAgIFByb19BbGxvd2VkXHRcdFx0XHQlbHVcbiIsICAgICAgICAgICBwcmVmaXgsIFJFR19CSVQo ZHdvcmQsIDEpKTsKPiArCXByaW50ZigiJXMgICBTYW1wbGVfRmFicmljYXRpb25fRU5fYml0XHRc dCVsdVxuIiwgcHJlZml4LCBSRUdfQklUKGR3b3JkLCAyKSk7Cj4gKwlwcmludGYoIiVzICAgT3V0 cHV0X0RlbGF5XHRcdFx0XHQlbHVcbiIsICAgICAgICAgIHByZWZpeCwgUkVHX0JJVFMoZHdvcmQs IDcsIDQpKTsKPiArCXByaW50ZigiJXMgICBTYW1wbGVfcHJlc2VudF9EaXNhYmxlXHRcdCVsdVxu IiwgICAgcHJlZml4LCBSRUdfQklUKGR3b3JkLCA4KSk7Cj4gIH0KPiAgCj4gIHN0YXRpYyB2b2lk IGR1bXBfYXVkX3ZlbmRvcl9kZXZpY2VfaWQodm9pZCkKPiBAQCAtMTQxNSw4ICsxNDE1LDggQEAg c3RhdGljIHZvaWQgZHVtcF9hdWRfdmVuZG9yX2RldmljZV9pZCh2b2lkKQo+ICAJdWludDMyX3Qg ZHdvcmQ7Cj4gIAo+ICAJZHdvcmQgPSBJTlJFRyhhdWRfcmVnX2Jhc2UgKyBBVURfVklEX0RJRCk7 Cj4gLQlwcmludGYoIkFVRF9WSURfRElEIGRldmljZSBpZFx0XHRcdFx0XHQweCVseFxuIiwgQklU Uyhkd29yZCwgMTUsIDApKTsKPiAtCXByaW50ZigiQVVEX1ZJRF9ESUQgdmVuZG9yIGlkXHRcdFx0 XHRcdDB4JWx4XG4iLCBCSVRTKGR3b3JkLCAzMSwgMTYpKTsKPiArCXByaW50ZigiQVVEX1ZJRF9E SUQgZGV2aWNlIGlkXHRcdFx0XHRcdDB4JWx4XG4iLCBSRUdfQklUUyhkd29yZCwgMTUsIDApKTsK PiArCXByaW50ZigiQVVEX1ZJRF9ESUQgdmVuZG9yIGlkXHRcdFx0XHRcdDB4JWx4XG4iLCBSRUdf QklUUyhkd29yZCwgMzEsIDE2KSk7Cj4gIH0KPiAgCj4gIHN0YXRpYyB2b2lkIGR1bXBfYXVkX3Jl dmlzaW9uX2lkKHZvaWQpCj4gQEAgLTE0MjQsMTAgKzE0MjQsMTAgQEAgc3RhdGljIHZvaWQgZHVt cF9hdWRfcmV2aXNpb25faWQodm9pZCkKPiAgCXVpbnQzMl90IGR3b3JkOwo+ICAKPiAgCWR3b3Jk ID0gSU5SRUcoYXVkX3JlZ19iYXNlICsgQVVEX1JJRCk7Cj4gLQlwcmludGYoIkFVRF9SSUQgU3Rl cHBpbmdfSWRcdFx0XHRcdFx0MHglbHhcbiIsICAgIEJJVFMoZHdvcmQsIDcsIDApKTsKPiAtCXBy aW50ZigiQVVEX1JJRCBSZXZpc2lvbl9JZFx0XHRcdFx0XHQweCVseFxuIiwgICAgQklUUyhkd29y ZCwgMTUsIDgpKTsKPiAtCXByaW50ZigiQVVEX1JJRCBNaW5vcl9SZXZpc2lvblx0XHRcdFx0XHQw eCVseFxuIiwgQklUUyhkd29yZCwgMTksIDE2KSk7Cj4gLQlwcmludGYoIkFVRF9SSUQgTWFqb3Jf UmV2aXNpb25cdFx0XHRcdFx0MHglbHhcbiIsIEJJVFMoZHdvcmQsIDIzLCAyMCkpOwo+ICsJcHJp bnRmKCJBVURfUklEIFN0ZXBwaW5nX0lkXHRcdFx0XHRcdDB4JWx4XG4iLCAgICBSRUdfQklUUyhk d29yZCwgNywgMCkpOwo+ICsJcHJpbnRmKCJBVURfUklEIFJldmlzaW9uX0lkXHRcdFx0XHRcdDB4 JWx4XG4iLCAgICBSRUdfQklUUyhkd29yZCwgMTUsIDgpKTsKPiArCXByaW50ZigiQVVEX1JJRCBN aW5vcl9SZXZpc2lvblx0XHRcdFx0XHQweCVseFxuIiwgUkVHX0JJVFMoZHdvcmQsIDE5LCAxNikp Owo+ICsJcHJpbnRmKCJBVURfUklEIE1ham9yX1JldmlzaW9uXHRcdFx0XHRcdDB4JWx4XG4iLCBS RUdfQklUUyhkd29yZCwgMjMsIDIwKSk7Cj4gIH0KPiAgCj4gIHN0YXRpYyB2b2lkIGR1bXBfYXVk X21fY3RzX2VuYWJsZShpbnQgaW5kZXgpCj4gQEAgLTE0NDMsMTAgKzE0NDMsMTAgQEAgc3RhdGlj IHZvaWQgZHVtcF9hdWRfbV9jdHNfZW5hYmxlKGludCBpbmRleCkKPiAgCQlzcHJpbnRmKHByZWZp eCwgIkFVRF9UQyVjX01fQ1RTX0VOQUJMRSIsICdBJyArIGluZGV4IC0gVFJBTlNDT0RFUl9BKTsK PiAgCX0KPiAgCj4gLQlwcmludGYoIiVzICBDVFNfcHJvZ3JhbW1pbmdcdFx0XHQlI2x4XG4iLCAg ICAgICAgcHJlZml4LCBCSVRTKGR3b3JkLCAxOSwgMCkpOwo+IC0JcHJpbnRmKCIlcyAgRW5hYmxl X0NUU19vcl9NX3Byb2dyYW1taW5nXHQlbHVcbiIsIHByZWZpeCwgQklUKGR3b3JkLCAyMCkpOwo+ IC0JcHJpbnRmKCIlcyAgQ1RTX00gdmFsdWUgSW5kZXhcdFx0XHRbMHglbHhdICVzXG4iLHByZWZp eCwgQklUKGR3b3JkLCAyMSksCj4gLQkJT1BOQU1FKGN0c19tX3ZhbHVlX2luZGV4LCBCSVQoZHdv cmQsIDIxKSkpOwo+ICsJcHJpbnRmKCIlcyAgQ1RTX3Byb2dyYW1taW5nXHRcdFx0JSNseFxuIiwg ICAgICAgIHByZWZpeCwgUkVHX0JJVFMoZHdvcmQsIDE5LCAwKSk7Cj4gKwlwcmludGYoIiVzICBF bmFibGVfQ1RTX29yX01fcHJvZ3JhbW1pbmdcdCVsdVxuIiwgcHJlZml4LCBSRUdfQklUKGR3b3Jk LCAyMCkpOwo+ICsJcHJpbnRmKCIlcyAgQ1RTX00gdmFsdWUgSW5kZXhcdFx0XHRbMHglbHhdICVz XG4iLHByZWZpeCwgUkVHX0JJVChkd29yZCwgMjEpLAo+ICsJCU9QTkFNRShjdHNfbV92YWx1ZV9p bmRleCwgUkVHX0JJVChkd29yZCwgMjEpKSk7Cj4gIH0KPiAgCj4gIHN0YXRpYyB2b2lkIGR1bXBf YXVkX3Bvd2VyX3N0YXRlKHZvaWQpCj4gQEAgLTE0NTUsMzkgKzE0NTUsMzkgQEAgc3RhdGljIHZv aWQgZHVtcF9hdWRfcG93ZXJfc3RhdGUodm9pZCkKPiAgCWludCBudW1fcGlwZXM7Cj4gIAo+ICAJ ZHdvcmQgPSBJTlJFRyhhdWRfcmVnX2Jhc2UgKyBBVURfUFdSU1QpOwo+IC0JcHJpbnRmKCJBVURf UFdSU1QgIFBpbkJfV2lkZ2V0X1Bvd2VyX1N0YXRlX1NldCAgICAgICAgICAgICAgXHQlc1xuIiwg ICAgICAgICBwb3dlcl9zdGF0ZVtCSVRTKGR3b3JkLCAgMSwgIDApXSk7Cj4gLQlwcmludGYoIkFV RF9QV1JTVCAgUGluQl9XaWRnZXRfUG93ZXJfU3RhdGVfQ3VycmVudCAgICAgICAgICBcdCVzXG4i LCAgICAgICAgIHBvd2VyX3N0YXRlW0JJVFMoZHdvcmQsICAzLCAgMildKTsKPiAtCXByaW50Zigi QVVEX1BXUlNUICBQaW5DX1dpZGdldF9Qb3dlcl9TdGF0ZV9TZXQgICAgICAgICAgICAgIFx0JXNc biIsICAgICAgICAgcG93ZXJfc3RhdGVbQklUUyhkd29yZCwgIDUsICA0KV0pOwo+IC0JcHJpbnRm KCJBVURfUFdSU1QgIFBpbkNfV2lkZ2V0X1Bvd2VyX1N0YXRlX0N1cnJlbnQgICAgICAgICAgXHQl c1xuIiwgICAgICAgICBwb3dlcl9zdGF0ZVtCSVRTKGR3b3JkLCAgNywgIDYpXSk7Cj4gLQlwcmlu dGYoIkFVRF9QV1JTVCAgUGluRF9XaWRnZXRfUG93ZXJfU3RhdGVfU2V0ICAgICAgICAgICAgICBc dCVzXG4iLCAgICAgICAgIHBvd2VyX3N0YXRlW0JJVFMoZHdvcmQsICA5LCAgOCldKTsKPiAtCXBy aW50ZigiQVVEX1BXUlNUICBQaW5EX1dpZGdldF9Qb3dlcl9TdGF0ZV9DdXJyZW50ICAgICAgICAg IFx0JXNcbiIsICAgICAgICAgcG93ZXJfc3RhdGVbQklUUyhkd29yZCwgMTEsIDEwKV0pOwo+ICsJ cHJpbnRmKCJBVURfUFdSU1QgIFBpbkJfV2lkZ2V0X1Bvd2VyX1N0YXRlX1NldCAgICAgICAgICAg ICAgXHQlc1xuIiwgICAgICAgICBwb3dlcl9zdGF0ZVtSRUdfQklUUyhkd29yZCwgIDEsICAwKV0p Owo+ICsJcHJpbnRmKCJBVURfUFdSU1QgIFBpbkJfV2lkZ2V0X1Bvd2VyX1N0YXRlX0N1cnJlbnQg ICAgICAgICAgXHQlc1xuIiwgICAgICAgICBwb3dlcl9zdGF0ZVtSRUdfQklUUyhkd29yZCwgIDMs ICAyKV0pOwo+ICsJcHJpbnRmKCJBVURfUFdSU1QgIFBpbkNfV2lkZ2V0X1Bvd2VyX1N0YXRlX1Nl dCAgICAgICAgICAgICAgXHQlc1xuIiwgICAgICAgICBwb3dlcl9zdGF0ZVtSRUdfQklUUyhkd29y ZCwgIDUsICA0KV0pOwo+ICsJcHJpbnRmKCJBVURfUFdSU1QgIFBpbkNfV2lkZ2V0X1Bvd2VyX1N0 YXRlX0N1cnJlbnQgICAgICAgICAgXHQlc1xuIiwgICAgICAgICBwb3dlcl9zdGF0ZVtSRUdfQklU Uyhkd29yZCwgIDcsICA2KV0pOwo+ICsJcHJpbnRmKCJBVURfUFdSU1QgIFBpbkRfV2lkZ2V0X1Bv d2VyX1N0YXRlX1NldCAgICAgICAgICAgICAgXHQlc1xuIiwgICAgICAgICBwb3dlcl9zdGF0ZVtS RUdfQklUUyhkd29yZCwgIDksICA4KV0pOwo+ICsJcHJpbnRmKCJBVURfUFdSU1QgIFBpbkRfV2lk Z2V0X1Bvd2VyX1N0YXRlX0N1cnJlbnQgICAgICAgICAgXHQlc1xuIiwgICAgICAgICBwb3dlcl9z dGF0ZVtSRUdfQklUUyhkd29yZCwgMTEsIDEwKV0pOwo+ICAKPiAgCWlmICghSVNfSEFTV0VMTF9Q TFVTKGRldmlkKSkgewo+IC0JCXByaW50ZigiQVVEX1BXUlNUICBDb252ZXJ0b3JBX1dpZGdldF9Q b3dlcl9TdGF0ZV9SZXF1c3RlZCAgIFx0JXNcbiIsIHBvd2VyX3N0YXRlW0JJVFMoZHdvcmQsIDEz LCAxMildKTsKPiAtCQlwcmludGYoIkFVRF9QV1JTVCAgQ29udmVydG9yQV9XaWRnZXRfUG93ZXJf U3RhdGVfQ3VycmVudCAgICBcdCVzXG4iLCBwb3dlcl9zdGF0ZVtCSVRTKGR3b3JkLCAxNSwgMTQp XSk7Cj4gLQkJcHJpbnRmKCJBVURfUFdSU1QgIENvbnZlcnRvckJfV2lkZ2V0X1Bvd2VyX1N0YXRl X1JlcXVlc3RlZCAgXHQlc1xuIiwgcG93ZXJfc3RhdGVbQklUUyhkd29yZCwgMTcsIDE2KV0pOwo+ IC0JCXByaW50ZigiQVVEX1BXUlNUICBDb252ZXJ0b3JCX1dpZGdldF9Qb3dlcl9TdGF0ZV9DdXJy ZW50ICAgIFx0JXNcbiIsIHBvd2VyX3N0YXRlW0JJVFMoZHdvcmQsIDE5LCAxOCldKTsKPiArCQlw cmludGYoIkFVRF9QV1JTVCAgQ29udmVydG9yQV9XaWRnZXRfUG93ZXJfU3RhdGVfUmVxdXN0ZWQg ICBcdCVzXG4iLCBwb3dlcl9zdGF0ZVtSRUdfQklUUyhkd29yZCwgMTMsIDEyKV0pOwo+ICsJCXBy aW50ZigiQVVEX1BXUlNUICBDb252ZXJ0b3JBX1dpZGdldF9Qb3dlcl9TdGF0ZV9DdXJyZW50ICAg IFx0JXNcbiIsIHBvd2VyX3N0YXRlW1JFR19CSVRTKGR3b3JkLCAxNSwgMTQpXSk7Cj4gKwkJcHJp bnRmKCJBVURfUFdSU1QgIENvbnZlcnRvckJfV2lkZ2V0X1Bvd2VyX1N0YXRlX1JlcXVlc3RlZCAg XHQlc1xuIiwgcG93ZXJfc3RhdGVbUkVHX0JJVFMoZHdvcmQsIDE3LCAxNildKTsKPiArCQlwcmlu dGYoIkFVRF9QV1JTVCAgQ29udmVydG9yQl9XaWRnZXRfUG93ZXJfU3RhdGVfQ3VycmVudCAgICBc dCVzXG4iLCBwb3dlcl9zdGF0ZVtSRUdfQklUUyhkd29yZCwgMTksIDE4KV0pOwo+ICAJfSBlbHNl IHsKPiAtCQlwcmludGYoIkFVRF9QV1JTVCAgQ29udmVydG9yMV9XaWRnZXRfUG93ZXJfU3RhdGVf UmVxdXN0ZWQgICBcdCVzXG4iLCBwb3dlcl9zdGF0ZVtCSVRTKGR3b3JkLCAxMywgMTIpXSk7Cj4g LQkJcHJpbnRmKCJBVURfUFdSU1QgIENvbnZlcnRvcjFfV2lkZ2V0X1Bvd2VyX1N0YXRlX0N1cnJl bnQgICAgXHQlc1xuIiwgcG93ZXJfc3RhdGVbQklUUyhkd29yZCwgMTUsIDE0KV0pOwo+IC0JCXBy aW50ZigiQVVEX1BXUlNUICBDb252ZXJ0b3IyX1dpZGdldF9Qb3dlcl9TdGF0ZV9SZXF1ZXN0ZWQg IFx0JXNcbiIsIHBvd2VyX3N0YXRlW0JJVFMoZHdvcmQsIDE3LCAxNildKTsKPiAtCQlwcmludGYo IkFVRF9QV1JTVCAgQ29udmVydG9yMl9XaWRnZXRfUG93ZXJfU3RhdGVfQ3VycmVudCAgICBcdCVz XG4iLCBwb3dlcl9zdGF0ZVtCSVRTKGR3b3JkLCAxOSwgMTgpXSk7Cj4gKwkJcHJpbnRmKCJBVURf UFdSU1QgIENvbnZlcnRvcjFfV2lkZ2V0X1Bvd2VyX1N0YXRlX1JlcXVzdGVkICAgXHQlc1xuIiwg cG93ZXJfc3RhdGVbUkVHX0JJVFMoZHdvcmQsIDEzLCAxMildKTsKPiArCQlwcmludGYoIkFVRF9Q V1JTVCAgQ29udmVydG9yMV9XaWRnZXRfUG93ZXJfU3RhdGVfQ3VycmVudCAgICBcdCVzXG4iLCBw b3dlcl9zdGF0ZVtSRUdfQklUUyhkd29yZCwgMTUsIDE0KV0pOwo+ICsJCXByaW50ZigiQVVEX1BX UlNUICBDb252ZXJ0b3IyX1dpZGdldF9Qb3dlcl9TdGF0ZV9SZXF1ZXN0ZWQgIFx0JXNcbiIsIHBv d2VyX3N0YXRlW1JFR19CSVRTKGR3b3JkLCAxNywgMTYpXSk7Cj4gKwkJcHJpbnRmKCJBVURfUFdS U1QgIENvbnZlcnRvcjJfV2lkZ2V0X1Bvd2VyX1N0YXRlX0N1cnJlbnQgICAgXHQlc1xuIiwgcG93 ZXJfc3RhdGVbUkVHX0JJVFMoZHdvcmQsIDE5LCAxOCldKTsKPiAgCX0KPiAgCj4gIAludW1fcGlw ZXMgPSBnZXRfbnVtX3BpcGVzKCk7Cj4gIAlpZiAobnVtX3BpcGVzID09IDIpIHsKPiAtCQlwcmlu dGYoIkFVRF9QV1JTVCAgRnVuY19HcnBfRGV2X1B3clN0X1NldCAgICAgICAgICAgICAgICAgICBc dCVzXG4iLCBwb3dlcl9zdGF0ZVtCSVRTKGR3b3JkLCAyMSwgMjApXSk7Cj4gLQkJcHJpbnRmKCJB VURfUFdSU1QgIEZ1bmNfR3JwX0Rldl9Qd3JTdF9DdXJyICAgICAgICAgICAgICAgICAgXHQlc1xu IiwgcG93ZXJfc3RhdGVbQklUUyhkd29yZCwgMjMsIDIyKV0pOwo+ICsJCXByaW50ZigiQVVEX1BX UlNUICBGdW5jX0dycF9EZXZfUHdyU3RfU2V0ICAgICAgICAgICAgICAgICAgIFx0JXNcbiIsIHBv d2VyX3N0YXRlW1JFR19CSVRTKGR3b3JkLCAyMSwgMjApXSk7Cj4gKwkJcHJpbnRmKCJBVURfUFdS U1QgIEZ1bmNfR3JwX0Rldl9Qd3JTdF9DdXJyICAgICAgICAgICAgICAgICAgXHQlc1xuIiwgcG93 ZXJfc3RhdGVbUkVHX0JJVFMoZHdvcmQsIDIzLCAyMildKTsKPiAgCX0gZWxzZSB7CS8qIDMgcGlw ZXMgKi8KPiAgCQlpZiAoIUlTX0hBU1dFTExfUExVUyhkZXZpZCkpIHsKPiAtCQkJcHJpbnRmKCJB VURfUFdSU1QgIENvbnZlcnRvckNfV2lkZ2V0X1Bvd2VyX1N0YXRlX1JlcXVlc3RlZCAgXHQlc1xu IiwgcG93ZXJfc3RhdGVbQklUUyhkd29yZCwgMjEsIDIwKV0pOwo+IC0JCQlwcmludGYoIkFVRF9Q V1JTVCAgQ29udmVydG9yQ19XaWRnZXRfUG93ZXJfU3RhdGVfQ3VycmVudCAgICBcdCVzXG4iLCBw b3dlcl9zdGF0ZVtCSVRTKGR3b3JkLCAyMywgMjIpXSk7Cj4gKwkJCXByaW50ZigiQVVEX1BXUlNU ICBDb252ZXJ0b3JDX1dpZGdldF9Qb3dlcl9TdGF0ZV9SZXF1ZXN0ZWQgIFx0JXNcbiIsIHBvd2Vy X3N0YXRlW1JFR19CSVRTKGR3b3JkLCAyMSwgMjApXSk7Cj4gKwkJCXByaW50ZigiQVVEX1BXUlNU ICBDb252ZXJ0b3JDX1dpZGdldF9Qb3dlcl9TdGF0ZV9DdXJyZW50ICAgIFx0JXNcbiIsIHBvd2Vy X3N0YXRlW1JFR19CSVRTKGR3b3JkLCAyMywgMjIpXSk7Cj4gIAkJfSBlbHNlIHsKPiAtCQkJcHJp bnRmKCJBVURfUFdSU1QgIENvbnZlcnRvcjNfV2lkZ2V0X1Bvd2VyX1N0YXRlX1JlcXVlc3RlZCAg XHQlc1xuIiwgcG93ZXJfc3RhdGVbQklUUyhkd29yZCwgMjEsIDIwKV0pOwo+IC0JCQlwcmludGYo IkFVRF9QV1JTVCAgQ29udmVydG9yM19XaWRnZXRfUG93ZXJfU3RhdGVfQ3VycmVudCAgICBcdCVz XG4iLCBwb3dlcl9zdGF0ZVtCSVRTKGR3b3JkLCAyMywgMjIpXSk7Cj4gKwkJCXByaW50ZigiQVVE X1BXUlNUICBDb252ZXJ0b3IzX1dpZGdldF9Qb3dlcl9TdGF0ZV9SZXF1ZXN0ZWQgIFx0JXNcbiIs IHBvd2VyX3N0YXRlW1JFR19CSVRTKGR3b3JkLCAyMSwgMjApXSk7Cj4gKwkJCXByaW50ZigiQVVE X1BXUlNUICBDb252ZXJ0b3IzX1dpZGdldF9Qb3dlcl9TdGF0ZV9DdXJyZW50ICAgIFx0JXNcbiIs IHBvd2VyX3N0YXRlW1JFR19CSVRTKGR3b3JkLCAyMywgMjIpXSk7Cj4gIAkJfQo+IC0JCXByaW50 ZigiQVVEX1BXUlNUICBGdW5jX0dycF9EZXZfUHdyU3RfU2V0ICAgICAgICAgICAgICAgICAgIFx0 JXNcbiIsIHBvd2VyX3N0YXRlW0JJVFMoZHdvcmQsIDI1LCAyNCldKTsKPiAtCQlwcmludGYoIkFV RF9QV1JTVCAgRnVuY19HcnBfRGV2X1B3clN0X0N1cnIgICAgICAgICAgICAgICAgICBcdCVzXG4i LCBwb3dlcl9zdGF0ZVtCSVRTKGR3b3JkLCAyNywgMjYpXSk7Cj4gKwkJcHJpbnRmKCJBVURfUFdS U1QgIEZ1bmNfR3JwX0Rldl9Qd3JTdF9TZXQgICAgICAgICAgICAgICAgICAgXHQlc1xuIiwgcG93 ZXJfc3RhdGVbUkVHX0JJVFMoZHdvcmQsIDI1LCAyNCldKTsKPiArCQlwcmludGYoIkFVRF9QV1JT VCAgRnVuY19HcnBfRGV2X1B3clN0X0N1cnIgICAgICAgICAgICAgICAgICBcdCVzXG4iLCBwb3dl cl9zdGF0ZVtSRUdfQklUUyhkd29yZCwgMjcsIDI2KV0pOwo+ICAJfQo+ICB9Cj4gIAo+IEBAIC0x NTEzLDcgKzE1MTMsNyBAQCBzdGF0aWMgdm9pZCBkdW1wX2F1ZF9lZGlkX2RhdGEoaW50IGluZGV4 KQo+ICAJZHdvcmQgPSBJTlJFRyhhdWRfY3RybF9zdCk7Cj4gIAlkd29yZCAmPSB+QklUTUFTSyg5 LCA1KTsKPiAgCU9VVFJFRyhhdWRfY3RybF9zdCwgZHdvcmQpOwo+IC0JZm9yIChpID0gMDsgaSA8 IEJJVFMoZHdvcmQsIDE0LCAxMCkgLyA0OyBpKyspCj4gKwlmb3IgKGkgPSAwOyBpIDwgUkVHX0JJ VFMoZHdvcmQsIDE0LCAxMCkgLyA0OyBpKyspCj4gIAkJcHJpbnRmKCIlMDh4ICIsIGh0b25sKElO UkVHKGVkaWRfZGF0YSkpKTsKPiAgCXByaW50ZigiXG4iKTsKPiAgfQo+IEBAIC0xNTUzLDMxICsx NTUzLDMxIEBAIHN0YXRpYyB2b2lkIGR1bXBfYXVkX3BvcnRfZW5faGRfY2ZnKHZvaWQpCj4gIAo+ ICAJZHdvcmQgPSBJTlJFRyhhdWRfcmVnX2Jhc2UgKyBBVURfUE9SVF9FTl9IRF9DRkcpOwo+ICAJ aWYgKG51bV9waXBlcyA9PSAyKSB7Cj4gLQkJcHJpbnRmKCJBVURfUE9SVF9FTl9IRF9DRkcgIENv bnZlcnRvcl9BX0RpZ2VuXHRcdFx0JWx1XG4iLCAgICBCSVQoZHdvcmQsIDApKTsKPiAtCQlwcmlu dGYoIkFVRF9QT1JUX0VOX0hEX0NGRyAgQ29udmVydG9yX0JfRGlnZW5cdFx0XHQlbHVcbiIsICAg IEJJVChkd29yZCwgMSkpOwo+IC0JCXByaW50ZigiQVVEX1BPUlRfRU5fSERfQ0ZHICBDb252ZXJ0 b3JfQV9TdHJlYW1fSURcdFx0JWx1XG4iLCAgQklUUyhkd29yZCwgIDcsIDQpKTsKPiAtCQlwcmlu dGYoIkFVRF9QT1JUX0VOX0hEX0NGRyAgQ29udmVydG9yX0JfU3RyZWFtX0lEXHRcdCVsdVxuIiwg IEJJVFMoZHdvcmQsIDExLCA4KSk7Cj4gKwkJcHJpbnRmKCJBVURfUE9SVF9FTl9IRF9DRkcgIENv bnZlcnRvcl9BX0RpZ2VuXHRcdFx0JWx1XG4iLCAgICBSRUdfQklUKGR3b3JkLCAwKSk7Cj4gKwkJ cHJpbnRmKCJBVURfUE9SVF9FTl9IRF9DRkcgIENvbnZlcnRvcl9CX0RpZ2VuXHRcdFx0JWx1XG4i LCAgICBSRUdfQklUKGR3b3JkLCAxKSk7Cj4gKwkJcHJpbnRmKCJBVURfUE9SVF9FTl9IRF9DRkcg IENvbnZlcnRvcl9BX1N0cmVhbV9JRFx0XHQlbHVcbiIsICBSRUdfQklUUyhkd29yZCwgIDcsIDQp KTsKPiArCQlwcmludGYoIkFVRF9QT1JUX0VOX0hEX0NGRyAgQ29udmVydG9yX0JfU3RyZWFtX0lE XHRcdCVsdVxuIiwgIFJFR19CSVRTKGR3b3JkLCAxMSwgOCkpOwo+ICAKPiAtCQlwcmludGYoIkFV RF9QT1JUX0VOX0hEX0NGRyAgUG9ydF9CX091dF9FbmFibGVcdFx0XHQlbHVcbiIsICAgIEJJVChk d29yZCwgMTIpKTsKPiAtCQlwcmludGYoIkFVRF9QT1JUX0VOX0hEX0NGRyAgUG9ydF9DX091dF9F bmFibGVcdFx0XHQlbHVcbiIsICAgIEJJVChkd29yZCwgMTMpKTsKPiAtCQlwcmludGYoIkFVRF9Q T1JUX0VOX0hEX0NGRyAgUG9ydF9EX091dF9FbmFibGVcdFx0XHQlbHVcbiIsICAgIEJJVChkd29y ZCwgMTQpKTsKPiAtCQlwcmludGYoIkFVRF9QT1JUX0VOX0hEX0NGRyAgUG9ydF9CX0FtcF9NdXRl X1N0YXR1c1x0XHQlbHVcbiIsIEJJVChkd29yZCwgMTYpKTsKPiAtCQlwcmludGYoIkFVRF9QT1JU X0VOX0hEX0NGRyAgUG9ydF9DX0FtcF9NdXRlX1N0YXR1c1x0XHQlbHVcbiIsIEJJVChkd29yZCwg MTcpKTsKPiAtCQlwcmludGYoIkFVRF9QT1JUX0VOX0hEX0NGRyAgUG9ydF9EX0FtcF9NdXRlX1N0 YXR1c1x0XHQlbHVcbiIsIEJJVChkd29yZCwgMTgpKTsKPiArCQlwcmludGYoIkFVRF9QT1JUX0VO X0hEX0NGRyAgUG9ydF9CX091dF9FbmFibGVcdFx0XHQlbHVcbiIsICAgIFJFR19CSVQoZHdvcmQs IDEyKSk7Cj4gKwkJcHJpbnRmKCJBVURfUE9SVF9FTl9IRF9DRkcgIFBvcnRfQ19PdXRfRW5hYmxl XHRcdFx0JWx1XG4iLCAgICBSRUdfQklUKGR3b3JkLCAxMykpOwo+ICsJCXByaW50ZigiQVVEX1BP UlRfRU5fSERfQ0ZHICBQb3J0X0RfT3V0X0VuYWJsZVx0XHRcdCVsdVxuIiwgICAgUkVHX0JJVChk d29yZCwgMTQpKTsKPiArCQlwcmludGYoIkFVRF9QT1JUX0VOX0hEX0NGRyAgUG9ydF9CX0FtcF9N dXRlX1N0YXR1c1x0XHQlbHVcbiIsIFJFR19CSVQoZHdvcmQsIDE2KSk7Cj4gKwkJcHJpbnRmKCJB VURfUE9SVF9FTl9IRF9DRkcgIFBvcnRfQ19BbXBfTXV0ZV9TdGF0dXNcdFx0JWx1XG4iLCBSRUdf QklUKGR3b3JkLCAxNykpOwo+ICsJCXByaW50ZigiQVVEX1BPUlRfRU5fSERfQ0ZHICBQb3J0X0Rf QW1wX011dGVfU3RhdHVzXHRcdCVsdVxuIiwgUkVHX0JJVChkd29yZCwgMTgpKTsKPiAgCX0gZWxz ZSB7IC8qIHRocmVlIHBpcGVzICovCj4gLQkJcHJpbnRmKCJBVURfUE9SVF9FTl9IRF9DRkcgIENv bnZlcnRvcl9BX0RpZ2VuXHRcdFx0JWx1XG4iLCAgICBCSVQoZHdvcmQsIDApKTsKPiAtCQlwcmlu dGYoIkFVRF9QT1JUX0VOX0hEX0NGRyAgQ29udmVydG9yX0JfRGlnZW5cdFx0XHQlbHVcbiIsICAg IEJJVChkd29yZCwgMSkpOwo+IC0JCXByaW50ZigiQVVEX1BPUlRfRU5fSERfQ0ZHICBDb252ZXJ0 b3JfQ19EaWdlblx0XHRcdCVsdVxuIiwgICAgQklUKGR3b3JkLCAyKSk7Cj4gLQkJcHJpbnRmKCJB VURfUE9SVF9FTl9IRF9DRkcgIENvbnZlcnRvcl9BX1N0cmVhbV9JRFx0XHQlbHVcbiIsICBCSVRT KGR3b3JkLCAgNywgNCkpOwo+IC0JCXByaW50ZigiQVVEX1BPUlRfRU5fSERfQ0ZHICBDb252ZXJ0 b3JfQl9TdHJlYW1fSURcdFx0JWx1XG4iLCAgQklUUyhkd29yZCwgMTEsIDgpKTsKPiAtCQlwcmlu dGYoIkFVRF9QT1JUX0VOX0hEX0NGRyAgQ29udmVydG9yX0NfU3RyZWFtX0lEXHRcdCVsdVxuIiwg IEJJVFMoZHdvcmQsIDE1LCAxMikpOwo+ICsJCXByaW50ZigiQVVEX1BPUlRfRU5fSERfQ0ZHICBD b252ZXJ0b3JfQV9EaWdlblx0XHRcdCVsdVxuIiwgICAgUkVHX0JJVChkd29yZCwgMCkpOwo+ICsJ CXByaW50ZigiQVVEX1BPUlRfRU5fSERfQ0ZHICBDb252ZXJ0b3JfQl9EaWdlblx0XHRcdCVsdVxu IiwgICAgUkVHX0JJVChkd29yZCwgMSkpOwo+ICsJCXByaW50ZigiQVVEX1BPUlRfRU5fSERfQ0ZH ICBDb252ZXJ0b3JfQ19EaWdlblx0XHRcdCVsdVxuIiwgICAgUkVHX0JJVChkd29yZCwgMikpOwo+ ICsJCXByaW50ZigiQVVEX1BPUlRfRU5fSERfQ0ZHICBDb252ZXJ0b3JfQV9TdHJlYW1fSURcdFx0 JWx1XG4iLCAgUkVHX0JJVFMoZHdvcmQsICA3LCA0KSk7Cj4gKwkJcHJpbnRmKCJBVURfUE9SVF9F Tl9IRF9DRkcgIENvbnZlcnRvcl9CX1N0cmVhbV9JRFx0XHQlbHVcbiIsICBSRUdfQklUUyhkd29y ZCwgMTEsIDgpKTsKPiArCQlwcmludGYoIkFVRF9QT1JUX0VOX0hEX0NGRyAgQ29udmVydG9yX0Nf U3RyZWFtX0lEXHRcdCVsdVxuIiwgIFJFR19CSVRTKGR3b3JkLCAxNSwgMTIpKTsKPiAgCj4gLQkJ cHJpbnRmKCJBVURfUE9SVF9FTl9IRF9DRkcgIFBvcnRfQl9PdXRfRW5hYmxlXHRcdFx0JWx1XG4i LCAgICBCSVQoZHdvcmQsIDE2KSk7Cj4gLQkJcHJpbnRmKCJBVURfUE9SVF9FTl9IRF9DRkcgIFBv cnRfQ19PdXRfRW5hYmxlXHRcdFx0JWx1XG4iLCAgICBCSVQoZHdvcmQsIDE3KSk7Cj4gLQkJcHJp bnRmKCJBVURfUE9SVF9FTl9IRF9DRkcgIFBvcnRfRF9PdXRfRW5hYmxlXHRcdFx0JWx1XG4iLCAg ICBCSVQoZHdvcmQsIDE4KSk7Cj4gLQkJcHJpbnRmKCJBVURfUE9SVF9FTl9IRF9DRkcgIFBvcnRf Ql9BbXBfTXV0ZV9TdGF0dXNcdFx0JWx1XG4iLCBCSVQoZHdvcmQsIDIwKSk7Cj4gLQkJcHJpbnRm KCJBVURfUE9SVF9FTl9IRF9DRkcgIFBvcnRfQ19BbXBfTXV0ZV9TdGF0dXNcdFx0JWx1XG4iLCBC SVQoZHdvcmQsIDIxKSk7Cj4gLQkJcHJpbnRmKCJBVURfUE9SVF9FTl9IRF9DRkcgIFBvcnRfRF9B bXBfTXV0ZV9TdGF0dXNcdFx0JWx1XG4iLCBCSVQoZHdvcmQsIDIyKSk7Cj4gKwkJcHJpbnRmKCJB VURfUE9SVF9FTl9IRF9DRkcgIFBvcnRfQl9PdXRfRW5hYmxlXHRcdFx0JWx1XG4iLCAgICBSRUdf QklUKGR3b3JkLCAxNikpOwo+ICsJCXByaW50ZigiQVVEX1BPUlRfRU5fSERfQ0ZHICBQb3J0X0Nf T3V0X0VuYWJsZVx0XHRcdCVsdVxuIiwgICAgUkVHX0JJVChkd29yZCwgMTcpKTsKPiArCQlwcmlu dGYoIkFVRF9QT1JUX0VOX0hEX0NGRyAgUG9ydF9EX091dF9FbmFibGVcdFx0XHQlbHVcbiIsICAg IFJFR19CSVQoZHdvcmQsIDE4KSk7Cj4gKwkJcHJpbnRmKCJBVURfUE9SVF9FTl9IRF9DRkcgIFBv cnRfQl9BbXBfTXV0ZV9TdGF0dXNcdFx0JWx1XG4iLCBSRUdfQklUKGR3b3JkLCAyMCkpOwo+ICsJ CXByaW50ZigiQVVEX1BPUlRfRU5fSERfQ0ZHICBQb3J0X0NfQW1wX011dGVfU3RhdHVzXHRcdCVs dVxuIiwgUkVHX0JJVChkd29yZCwgMjEpKTsKPiArCQlwcmludGYoIkFVRF9QT1JUX0VOX0hEX0NG RyAgUG9ydF9EX0FtcF9NdXRlX1N0YXR1c1x0XHQlbHVcbiIsIFJFR19CSVQoZHdvcmQsIDIyKSk7 Cj4gIAl9Cj4gIH0KPiAgCj4gQEAgLTE1ODYsMTkgKzE1ODYsMTkgQEAgc3RhdGljIHZvaWQgZHVt cF9hdWRfcGlwZV9jb252X2NmZyh2b2lkKQo+ICAJdWludDMyX3QgZHdvcmQ7Cj4gIAo+ICAJZHdv cmQgPSBJTlJFRyhhdWRfcmVnX2Jhc2UgKyBBVURfUElQRV9DT05WX0NGRyk7Cj4gLQlwcmludGYo IkFVRF9QSVBFX0NPTlZfQ0ZHICBDb252ZXJ0b3JfMV9EaWdlblx0XHRcdCVsdVxuIiwgICAgQklU KGR3b3JkLCAwKSk7Cj4gLQlwcmludGYoIkFVRF9QSVBFX0NPTlZfQ0ZHICBDb252ZXJ0b3JfMl9E aWdlblx0XHRcdCVsdVxuIiwgICAgQklUKGR3b3JkLCAxKSk7Cj4gLQlwcmludGYoIkFVRF9QSVBF X0NPTlZfQ0ZHICBDb252ZXJ0b3JfM19EaWdlblx0XHRcdCVsdVxuIiwgICAgQklUKGR3b3JkLCAy KSk7Cj4gLQlwcmludGYoIkFVRF9QSVBFX0NPTlZfQ0ZHICBDb252ZXJ0b3JfMV9TdHJlYW1fSURc dFx0JWx1XG4iLCAgQklUUyhkd29yZCwgIDcsIDQpKTsKPiAtCXByaW50ZigiQVVEX1BJUEVfQ09O Vl9DRkcgIENvbnZlcnRvcl8yX1N0cmVhbV9JRFx0XHQlbHVcbiIsICBCSVRTKGR3b3JkLCAxMSwg OCkpOwo+IC0JcHJpbnRmKCJBVURfUElQRV9DT05WX0NGRyAgQ29udmVydG9yXzNfU3RyZWFtX0lE XHRcdCVsdVxuIiwgIEJJVFMoZHdvcmQsIDE1LCAxMikpOwo+ICsJcHJpbnRmKCJBVURfUElQRV9D T05WX0NGRyAgQ29udmVydG9yXzFfRGlnZW5cdFx0XHQlbHVcbiIsICAgIFJFR19CSVQoZHdvcmQs IDApKTsKPiArCXByaW50ZigiQVVEX1BJUEVfQ09OVl9DRkcgIENvbnZlcnRvcl8yX0RpZ2VuXHRc dFx0JWx1XG4iLCAgICBSRUdfQklUKGR3b3JkLCAxKSk7Cj4gKwlwcmludGYoIkFVRF9QSVBFX0NP TlZfQ0ZHICBDb252ZXJ0b3JfM19EaWdlblx0XHRcdCVsdVxuIiwgICAgUkVHX0JJVChkd29yZCwg MikpOwo+ICsJcHJpbnRmKCJBVURfUElQRV9DT05WX0NGRyAgQ29udmVydG9yXzFfU3RyZWFtX0lE XHRcdCVsdVxuIiwgIFJFR19CSVRTKGR3b3JkLCAgNywgNCkpOwo+ICsJcHJpbnRmKCJBVURfUElQ RV9DT05WX0NGRyAgQ29udmVydG9yXzJfU3RyZWFtX0lEXHRcdCVsdVxuIiwgIFJFR19CSVRTKGR3 b3JkLCAxMSwgOCkpOwo+ICsJcHJpbnRmKCJBVURfUElQRV9DT05WX0NGRyAgQ29udmVydG9yXzNf U3RyZWFtX0lEXHRcdCVsdVxuIiwgIFJFR19CSVRTKGR3b3JkLCAxNSwgMTIpKTsKPiAgCj4gLQlw cmludGYoIkFVRF9QSVBFX0NPTlZfQ0ZHICBQb3J0X0JfT3V0X0VuYWJsZVx0XHRcdCVsdVxuIiwg ICAgQklUKGR3b3JkLCAxNikpOwo+IC0JcHJpbnRmKCJBVURfUElQRV9DT05WX0NGRyAgUG9ydF9D X091dF9FbmFibGVcdFx0XHQlbHVcbiIsICAgIEJJVChkd29yZCwgMTcpKTsKPiAtCXByaW50Zigi QVVEX1BJUEVfQ09OVl9DRkcgIFBvcnRfRF9PdXRfRW5hYmxlXHRcdFx0JWx1XG4iLCAgICBCSVQo ZHdvcmQsIDE4KSk7Cj4gLQlwcmludGYoIkFVRF9QSVBFX0NPTlZfQ0ZHICBQb3J0X0JfQW1wX011 dGVfU3RhdHVzXHRcdCVsdVxuIiwgQklUKGR3b3JkLCAyMCkpOwo+IC0JcHJpbnRmKCJBVURfUElQ RV9DT05WX0NGRyAgUG9ydF9DX0FtcF9NdXRlX1N0YXR1c1x0XHQlbHVcbiIsIEJJVChkd29yZCwg MjEpKTsKPiAtCXByaW50ZigiQVVEX1BJUEVfQ09OVl9DRkcgIFBvcnRfRF9BbXBfTXV0ZV9TdGF0 dXNcdFx0JWx1XG4iLCBCSVQoZHdvcmQsIDIyKSk7Cj4gKwlwcmludGYoIkFVRF9QSVBFX0NPTlZf Q0ZHICBQb3J0X0JfT3V0X0VuYWJsZVx0XHRcdCVsdVxuIiwgICAgUkVHX0JJVChkd29yZCwgMTYp KTsKPiArCXByaW50ZigiQVVEX1BJUEVfQ09OVl9DRkcgIFBvcnRfQ19PdXRfRW5hYmxlXHRcdFx0 JWx1XG4iLCAgICBSRUdfQklUKGR3b3JkLCAxNykpOwo+ICsJcHJpbnRmKCJBVURfUElQRV9DT05W X0NGRyAgUG9ydF9EX091dF9FbmFibGVcdFx0XHQlbHVcbiIsICAgIFJFR19CSVQoZHdvcmQsIDE4 KSk7Cj4gKwlwcmludGYoIkFVRF9QSVBFX0NPTlZfQ0ZHICBQb3J0X0JfQW1wX011dGVfU3RhdHVz XHRcdCVsdVxuIiwgUkVHX0JJVChkd29yZCwgMjApKTsKPiArCXByaW50ZigiQVVEX1BJUEVfQ09O Vl9DRkcgIFBvcnRfQ19BbXBfTXV0ZV9TdGF0dXNcdFx0JWx1XG4iLCBSRUdfQklUKGR3b3JkLCAy MSkpOwo+ICsJcHJpbnRmKCJBVURfUElQRV9DT05WX0NGRyAgUG9ydF9EX0FtcF9NdXRlX1N0YXR1 c1x0XHQlbHVcbiIsIFJFR19CSVQoZHdvcmQsIDIyKSk7Cj4gIH0KPiAgCj4gIHN0YXRpYyB2b2lk IGR1bXBfYXVkX2RpZ19jbnZ0KGludCBpbmRleCkKPiBAQCAtMTYxNCwxNiArMTYxNCwxNiBAQCBz dGF0aWMgdm9pZCBkdW1wX2F1ZF9kaWdfY252dChpbnQgaW5kZXgpCj4gIAkJc3ByaW50ZihwcmVm aXgsICJBVURfQyVjX0RJR19DTlZUICAgIiwgJzEnICsgaW5kZXggLSBDT05WRVJURVJfMSk7Cj4g IAl9Cj4gIAo+IC0JcHJpbnRmKCIlcyAgVlx0XHRcdFx0XHQlbHVcbiIsICAgICAgICAgICAgICAg cHJlZml4LCBCSVQoZHdvcmQsIDEpKTsKPiAtCXByaW50ZigiJXMgIFZDRkdcdFx0XHRcdCVsdVxu IiwgICAgICAgICAgICAgIHByZWZpeCwgQklUKGR3b3JkLCAyKSk7Cj4gLQlwcmludGYoIiVzICBQ UkVcdFx0XHRcdFx0JWx1XG4iLCAgICAgICAgICAgICBwcmVmaXgsIEJJVChkd29yZCwgMykpOwo+ IC0JcHJpbnRmKCIlcyAgQ29weVx0XHRcdFx0JWx1XG4iLCAgICAgICAgICAgICAgcHJlZml4LCBC SVQoZHdvcmQsIDQpKTsKPiAtCXByaW50ZigiJXMgIE5vbkF1ZGlvXHRcdFx0XHQlbHVcbiIsICAg ICAgICAgIHByZWZpeCwgQklUKGR3b3JkLCA1KSk7Cj4gLQlwcmludGYoIiVzICBQUk9cdFx0XHRc dFx0JWx1XG4iLCAgICAgICAgICAgICBwcmVmaXgsIEJJVChkd29yZCwgNikpOwo+IC0JcHJpbnRm KCIlcyAgTGV2ZWxcdFx0XHRcdCVsdVxuIiwgICAgICAgICAgICAgcHJlZml4LCBCSVQoZHdvcmQs IDcpKTsKPiAtCXByaW50ZigiJXMgIENhdGVnb3J5X0NvZGVcdFx0XHQlbHVcbiIsICAgICAgIHBy ZWZpeCwgQklUUyhkd29yZCwgMTQsIDgpKTsKPiAtCXByaW50ZigiJXMgIExvd2VzdF9DaGFubmVs X051bWJlclx0XHQlbHVcbiIsIHByZWZpeCwgQklUUyhkd29yZCwgMTksIDE2KSk7Cj4gLQlwcmlu dGYoIiVzICBTdHJlYW1fSURcdFx0XHRcdCVsdVxuIiwgICAgICAgICBwcmVmaXgsIEJJVFMoZHdv cmQsIDIzLCAyMCkpOwo+ICsJcHJpbnRmKCIlcyAgVlx0XHRcdFx0XHQlbHVcbiIsICAgICAgICAg ICAgICAgcHJlZml4LCBSRUdfQklUKGR3b3JkLCAxKSk7Cj4gKwlwcmludGYoIiVzICBWQ0ZHXHRc dFx0XHQlbHVcbiIsICAgICAgICAgICAgICBwcmVmaXgsIFJFR19CSVQoZHdvcmQsIDIpKTsKPiAr CXByaW50ZigiJXMgIFBSRVx0XHRcdFx0XHQlbHVcbiIsICAgICAgICAgICAgIHByZWZpeCwgUkVH X0JJVChkd29yZCwgMykpOwo+ICsJcHJpbnRmKCIlcyAgQ29weVx0XHRcdFx0JWx1XG4iLCAgICAg ICAgICAgICAgcHJlZml4LCBSRUdfQklUKGR3b3JkLCA0KSk7Cj4gKwlwcmludGYoIiVzICBOb25B dWRpb1x0XHRcdFx0JWx1XG4iLCAgICAgICAgICBwcmVmaXgsIFJFR19CSVQoZHdvcmQsIDUpKTsK PiArCXByaW50ZigiJXMgIFBST1x0XHRcdFx0XHQlbHVcbiIsICAgICAgICAgICAgIHByZWZpeCwg UkVHX0JJVChkd29yZCwgNikpOwo+ICsJcHJpbnRmKCIlcyAgTGV2ZWxcdFx0XHRcdCVsdVxuIiwg ICAgICAgICAgICAgcHJlZml4LCBSRUdfQklUKGR3b3JkLCA3KSk7Cj4gKwlwcmludGYoIiVzICBD YXRlZ29yeV9Db2RlXHRcdFx0JWx1XG4iLCAgICAgICBwcmVmaXgsIFJFR19CSVRTKGR3b3JkLCAx NCwgOCkpOwo+ICsJcHJpbnRmKCIlcyAgTG93ZXN0X0NoYW5uZWxfTnVtYmVyXHRcdCVsdVxuIiwg cHJlZml4LCBSRUdfQklUUyhkd29yZCwgMTksIDE2KSk7Cj4gKwlwcmludGYoIiVzICBTdHJlYW1f SURcdFx0XHRcdCVsdVxuIiwgICAgICAgICBwcmVmaXgsIFJFR19CSVRTKGR3b3JkLCAyMywgMjAp KTsKPiAgfQo+ICAKPiAgc3RhdGljIHZvaWQgZHVtcF9hdWRfc3RyX2Rlc2MoaW50IGluZGV4KQo+ IEBAIC0xNjQwLDI0ICsxNjQwLDI0IEBAIHN0YXRpYyB2b2lkIGR1bXBfYXVkX3N0cl9kZXNjKGlu dCBpbmRleCkKPiAgCQlzcHJpbnRmKHByZWZpeCwgIkFVRF9DJWNfU1RSX0RFU0MgICIsICcxJyAr IGluZGV4IC0gQ09OVkVSVEVSXzEpOwo+ICAJfQo+ICAKPiAtCXByaW50ZigiJXMgIE51bWJlcl9v Zl9DaGFubmVsc19pbl9hX1N0cmVhbVx0JWx1XG4iLCAgIHByZWZpeCwgQklUUyhkd29yZCwgMywg MCkgKyAxKTsKPiAtCXByaW50ZigiJXMgIEJpdHNfcGVyX1NhbXBsZVx0XHRcdFslI2x4XSAlc1xu IiwgICAgICAgIHByZWZpeCwgQklUUyhkd29yZCwgNiwgNCksCj4gLQkJT1BOQU1FKGJpdHNfcGVy X3NhbXBsZSwgQklUUyhkd29yZCwgNiwgNCkpKTsKPiArCXByaW50ZigiJXMgIE51bWJlcl9vZl9D aGFubmVsc19pbl9hX1N0cmVhbVx0JWx1XG4iLCAgIHByZWZpeCwgUkVHX0JJVFMoZHdvcmQsIDMs IDApICsgMSk7Cj4gKwlwcmludGYoIiVzICBCaXRzX3Blcl9TYW1wbGVcdFx0XHRbJSNseF0gJXNc biIsICAgICAgICBwcmVmaXgsIFJFR19CSVRTKGR3b3JkLCA2LCA0KSwKPiArCQlPUE5BTUUoYml0 c19wZXJfc2FtcGxlLCBSRUdfQklUUyhkd29yZCwgNiwgNCkpKTsKPiAgCj4gLQlwcmludGYoIiVz ICBTYW1wbGVfQmFzZV9SYXRlX0Rpdmlzb3JcdFx0WyUjbHhdICVzXG4iLCBwcmVmaXgsIEJJVFMo ZHdvcmQsIDEwLCA4KSwKPiAtCQlPUE5BTUUoc2FtcGxlX2Jhc2VfcmF0ZV9kaXZpc29yLCBCSVRT KGR3b3JkLCAxMCwgOCkpKTsKPiAtCXByaW50ZigiJXMgIFNhbXBsZV9CYXNlX1JhdGVfTXVsdFx0 XHRbJSNseF0gJXNcbiIsICAgIHByZWZpeCwgQklUUyhkd29yZCwgMTMsIDExKSwKPiAtCQlPUE5B TUUoc2FtcGxlX2Jhc2VfcmF0ZV9tdWx0LCBCSVRTKGR3b3JkLCAxMywgMTEpKSk7Cj4gLQlwcmlu dGYoIiVzICBTYW1wbGVfQmFzZV9SYXRlXHRcdFx0WyUjbHhdICVzXHQiLCAgICAgICBwcmVmaXgs IEJJVChkd29yZCwgMTQpLAo+IC0JCU9QTkFNRShzYW1wbGVfYmFzZV9yYXRlLCBCSVQoZHdvcmQs IDE0KSkpOwo+IC0JcmF0ZSA9IChCSVQoZHdvcmQsIDE0KSA/IDQ0MTAwIDogNDgwMDApICogKEJJ VFMoZHdvcmQsIDEzLCAxMSkgKyAxKQo+IC0JCS8oQklUUyhkd29yZCwgMTAsIDgpICsgMSk7Cj4g KwlwcmludGYoIiVzICBTYW1wbGVfQmFzZV9SYXRlX0Rpdmlzb3JcdFx0WyUjbHhdICVzXG4iLCBw cmVmaXgsIFJFR19CSVRTKGR3b3JkLCAxMCwgOCksCj4gKwkJT1BOQU1FKHNhbXBsZV9iYXNlX3Jh dGVfZGl2aXNvciwgUkVHX0JJVFMoZHdvcmQsIDEwLCA4KSkpOwo+ICsJcHJpbnRmKCIlcyAgU2Ft cGxlX0Jhc2VfUmF0ZV9NdWx0XHRcdFslI2x4XSAlc1xuIiwgICAgcHJlZml4LCBSRUdfQklUUyhk d29yZCwgMTMsIDExKSwKPiArCQlPUE5BTUUoc2FtcGxlX2Jhc2VfcmF0ZV9tdWx0LCBSRUdfQklU Uyhkd29yZCwgMTMsIDExKSkpOwo+ICsJcHJpbnRmKCIlcyAgU2FtcGxlX0Jhc2VfUmF0ZVx0XHRc dFslI2x4XSAlc1x0IiwgICAgICAgcHJlZml4LCBSRUdfQklUKGR3b3JkLCAxNCksCj4gKwkJT1BO QU1FKHNhbXBsZV9iYXNlX3JhdGUsIFJFR19CSVQoZHdvcmQsIDE0KSkpOwo+ICsJcmF0ZSA9IChS RUdfQklUKGR3b3JkLCAxNCkgPyA0NDEwMCA6IDQ4MDAwKSAqIChSRUdfQklUUyhkd29yZCwgMTMs IDExKSArIDEpCj4gKwkJLyhSRUdfQklUUyhkd29yZCwgMTAsIDgpICsgMSk7Cj4gIAlwcmludGYo Ij0+IFNhbXBsZSBSYXRlICVkIEh6XG4iLCByYXRlKTsKPiAgCj4gLQlwcmludGYoIiVzICBDb252 ZXJ0b3JfQ2hhbm5lbF9Db3VudFx0XHQlbHVcbiIsICAgICAgICBwcmVmaXgsIEJJVFMoZHdvcmQs IDIwLCAxNikgKyAxKTsKPiArCXByaW50ZigiJXMgIENvbnZlcnRvcl9DaGFubmVsX0NvdW50XHRc dCVsdVxuIiwgICAgICAgIHByZWZpeCwgUkVHX0JJVFMoZHdvcmQsIDIwLCAxNikgKyAxKTsKPiAg Cj4gIAlpZiAoIUlTX0hBU1dFTExfUExVUyhkZXZpZCkpCj4gLQkJcHJpbnRmKCIlcyAgSEJSX2Vu YWJsZVx0XHRcdFx0JWx1XG4iLCAgICAgICAgIHByZWZpeCwgQklUUyhkd29yZCwgMjgsIDI3KSk7 Cj4gKwkJcHJpbnRmKCIlcyAgSEJSX2VuYWJsZVx0XHRcdFx0JWx1XG4iLCAgICAgICAgIHByZWZp eCwgUkVHX0JJVFMoZHdvcmQsIDI4LCAyNykpOwo+ICB9Cj4gIAo+ICAjZGVmaW5lIGR1bXBfYXVk X291dF9jaF9zdHIJCWR1bXBfYXVkX291dF9jaGFuX21hcAo+IEBAIC0xNjcxLDEwICsxNjcxLDEw IEBAIHN0YXRpYyB2b2lkIGR1bXBfYXVkX291dF9jaGFuX21hcCh2b2lkKQo+ICAJCU9VVFJFRyhh dWRfcmVnX2Jhc2UgKyBBVURfT1VUX0NIQU5fTUFQLCBpIHwgKGkgPDwgOCkgfCAoaSA8PCAxNikp Owo+ICAJCWR3b3JkID0gSU5SRUcoYXVkX3JlZ19iYXNlICsgQVVEX09VVF9DSEFOX01BUCk7Cj4g IAkJcHJpbnRmKCJcdFx0XHRcdCVsdVx0JWx1XHQlbHVcdCVsdVxuIiwKPiAtCQkJCTEgKyBCSVRT KGR3b3JkLCAgMywgIDApLAo+IC0JCQkJMSArIEJJVFMoZHdvcmQsICA3LCAgNCksCj4gLQkJCQkx ICsgQklUUyhkd29yZCwgMTUsIDEyKSwKPiAtCQkJCTEgKyBCSVRTKGR3b3JkLCAyMywgMjApKTsK PiArCQkJCTEgKyBSRUdfQklUUyhkd29yZCwgIDMsICAwKSwKPiArCQkJCTEgKyBSRUdfQklUUyhk d29yZCwgIDcsICA0KSwKPiArCQkJCTEgKyBSRUdfQklUUyhkd29yZCwgMTUsIDEyKSwKPiArCQkJ CTEgKyBSRUdfQklUUyhkd29yZCwgMjMsIDIwKSk7Cj4gIAl9Cj4gIH0KPiAgCj4gQEAgLTE2ODYs MTAgKzE2ODYsMTAgQEAgc3RhdGljIHZvaWQgZHVtcF9hdWRfY29ubmVjdF9saXN0KHZvaWQpCj4g IAlkd29yZCA9IElOUkVHKGF1ZF9yZWdfYmFzZSArIEFVRF9QSU5XX0NPTk5MTkdfTElTVCk7Cj4g IAlzcHJpbnRmKHByZWZpeCwgIkFVRF9QSU5XX0NPTk5MTkdfTElTVCIpOwo+ICAKPiAtCXByaW50 ZigiJXMgIENvbm5lY3RfTGlzdF9MZW5ndGhcdFx0JWx1XG4iLCAgICAgcHJlZml4LCBCSVRTKGR3 b3JkLCA2LCAwKSk7Cj4gLQlwcmludGYoIiVzICBGb3JtIFx0XHRcdFx0WyUjbHhdICVzXG4iLCAg ICAgICAgIHByZWZpeCwgQklUKGR3b3JkLCA3KSwKPiAtCQlPUE5BTUUoY29ubmVjdF9saXN0X2Zv cm0sIEJJVChkd29yZCwgNykpKTsKPiAtCXByaW50ZigiJXMgIENvbm5lY3RfTGlzdF9FbnRyeVx0 XHQlbHUsICVsdVxuIiwgcHJlZml4LCBCSVRTKGR3b3JkLCAxNSwgOCksIEJJVFMoZHdvcmQsIDIz LCAxNikpOwo+ICsJcHJpbnRmKCIlcyAgQ29ubmVjdF9MaXN0X0xlbmd0aFx0XHQlbHVcbiIsICAg ICBwcmVmaXgsIFJFR19CSVRTKGR3b3JkLCA2LCAwKSk7Cj4gKwlwcmludGYoIiVzICBGb3JtIFx0 XHRcdFx0WyUjbHhdICVzXG4iLCAgICAgICAgIHByZWZpeCwgUkVHX0JJVChkd29yZCwgNyksCj4g KwkJT1BOQU1FKGNvbm5lY3RfbGlzdF9mb3JtLCBSRUdfQklUKGR3b3JkLCA3KSkpOwo+ICsJcHJp bnRmKCIlcyAgQ29ubmVjdF9MaXN0X0VudHJ5XHRcdCVsdSwgJWx1XG4iLCBwcmVmaXgsIFJFR19C SVRTKGR3b3JkLCAxNSwgOCksIFJFR19CSVRTKGR3b3JkLCAyMywgMTYpKTsKPiAgfQo+ICAKPiAg c3RhdGljIHZvaWQgZHVtcF9hdWRfY29ubmVjdF9zZWxlY3Qodm9pZCkKPiBAQCAtMTcwNiw5ICsx NzA2LDkgQEAgc3RhdGljIHZvaWQgZHVtcF9hdWRfY29ubmVjdF9zZWxlY3Qodm9pZCkKPiAgCQlz cHJpbnRmKHByZWZpeCwgIkFVRF9QSU5XX0NPTk5MTkdfU0VMICAiKTsKPiAgCX0KPiAgCj4gLQlw cmludGYoIiVzICBDb25uZWN0aW9uX3NlbGVjdF9Qb3J0X0JcdCUjbHhcbiIsIHByZWZpeCwgQklU Uyhkd29yZCwgIDcsICAwKSk7Cj4gLQlwcmludGYoIiVzICBDb25uZWN0aW9uX3NlbGVjdF9Qb3J0 X0NcdCUjbHhcbiIsIHByZWZpeCwgQklUUyhkd29yZCwgMTUsICA4KSk7Cj4gLQlwcmludGYoIiVz ICBDb25uZWN0aW9uX3NlbGVjdF9Qb3J0X0RcdCUjbHhcbiIsIHByZWZpeCwgQklUUyhkd29yZCwg MjMsIDE2KSk7Cj4gKwlwcmludGYoIiVzICBDb25uZWN0aW9uX3NlbGVjdF9Qb3J0X0JcdCUjbHhc biIsIHByZWZpeCwgUkVHX0JJVFMoZHdvcmQsICA3LCAgMCkpOwo+ICsJcHJpbnRmKCIlcyAgQ29u bmVjdGlvbl9zZWxlY3RfUG9ydF9DXHQlI2x4XG4iLCBwcmVmaXgsIFJFR19CSVRTKGR3b3JkLCAx NSwgIDgpKTsKPiArCXByaW50ZigiJXMgIENvbm5lY3Rpb25fc2VsZWN0X1BvcnRfRFx0JSNseFxu IiwgcHJlZml4LCBSRUdfQklUUyhkd29yZCwgMjMsIDE2KSk7Cj4gIH0KPiAgCj4gIHN0YXRpYyB2 b2lkIGR1bXBfYXVkX2N0cmxfc3RhdGUoaW50IGluZGV4KQo+IEBAIC0xNzI2LDE2ICsxNzI2LDE2 IEBAIHN0YXRpYyB2b2lkIGR1bXBfYXVkX2N0cmxfc3RhdGUoaW50IGluZGV4KQo+ICAJCXByaW50 ZigiQXVkaW8gY29udHJvbCBzdGF0ZSAtIFBpcGUgJWNcbiIsICAnQScgKyBpbmRleCAtIFBJUEVf QSk7Cj4gIAl9Cj4gIAo+IC0JcHJpbnRmKCJcdEVMRF9BQ0tcdFx0XHRcdFx0XHQlbHVcbiIsICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQklUKGR3b3JkLCA0KSk7Cj4gLQlwcmludGYo Ilx0RUxEX2J1ZmZlcl9zaXplXHRcdFx0XHRcdCVsdVxuIiwgICAgICAgICAgICAgICAgICAgICAg ICAgICBCSVRTKGR3b3JkLCAxNCwgMTApKTsKPiAtCXByaW50ZigiXHRESVBfdHJhbnNtaXNzaW9u X2ZyZXF1ZW5jeVx0XHRcdFsweCVseF0gJXNcbiIsICAgICAgICAgICAgIEJJVFMoZHdvcmQsIDE3 LCAxNiksCj4gLQkJZGlwX3RyYW5zW0JJVFMoZHdvcmQsIDE3LCAxNildKTsKPiAtCXByaW50Zigi XHRESVAgQnVmZmVyIEluZGV4IFx0XHRcdFx0WzB4JWx4XSAlc1xuIiwgICAgICAgICAgICAgICAg ICAgIEJJVFMoZHdvcmQsIDIwLCAxOCksCj4gLQkJZGlwX2luZGV4W0JJVFMoZHdvcmQsIDIwLCAx OCldKTsKPiAtCXByaW50ZigiXHRBdWRpbyBESVAgdHlwZSBlbmFibGUgc3RhdHVzXHRcdFx0WzB4 JTA0bHhdICVzLCAlcywgJXNcbiIsIEJJVFMoZHdvcmQsIDI0LCAyMSksCj4gLQkJZGlwX3R5cGVb QklUKGR3b3JkLCAyMSldLCBkaXBfZ2VuMV9zdGF0ZVtCSVQoZHdvcmQsIDIyKV0sICBkaXBfZ2Vu Ml9zdGF0ZVtCSVQoZHdvcmQsIDIzKV0pOwo+IC0JcHJpbnRmKCJcdEF1ZGlvIERJUCBwb3J0IHNl bGVjdFx0XHRcdFx0WzB4JWx4XSAlc1xuIiwgICAgICAgICAgICAgICAgQklUUyhkd29yZCwgMzAs IDI5KSwKPiAtCQlkaXBfcG9ydFtCSVRTKGR3b3JkLCAzMCwgMjkpXSk7Cj4gKwlwcmludGYoIlx0 RUxEX0FDS1x0XHRcdFx0XHRcdCVsdVxuIiwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICBSRUdfQklUKGR3b3JkLCA0KSk7Cj4gKwlwcmludGYoIlx0RUxEX2J1ZmZlcl9zaXplXHRcdFx0 XHRcdCVsdVxuIiwgICAgICAgICAgICAgICAgICAgICAgICAgICBSRUdfQklUUyhkd29yZCwgMTQs IDEwKSk7Cj4gKwlwcmludGYoIlx0RElQX3RyYW5zbWlzc2lvbl9mcmVxdWVuY3lcdFx0XHRbMHgl bHhdICVzXG4iLCAgICAgICAgICAgICBSRUdfQklUUyhkd29yZCwgMTcsIDE2KSwKPiArCQlkaXBf dHJhbnNbUkVHX0JJVFMoZHdvcmQsIDE3LCAxNildKTsKPiArCXByaW50ZigiXHRESVAgQnVmZmVy IEluZGV4IFx0XHRcdFx0WzB4JWx4XSAlc1xuIiwgICAgICAgICAgICAgICAgICAgIFJFR19CSVRT KGR3b3JkLCAyMCwgMTgpLAo+ICsJCWRpcF9pbmRleFtSRUdfQklUUyhkd29yZCwgMjAsIDE4KV0p Owo+ICsJcHJpbnRmKCJcdEF1ZGlvIERJUCB0eXBlIGVuYWJsZSBzdGF0dXNcdFx0XHRbMHglMDRs eF0gJXMsICVzLCAlc1xuIiwgUkVHX0JJVFMoZHdvcmQsIDI0LCAyMSksCj4gKwkJZGlwX3R5cGVb UkVHX0JJVChkd29yZCwgMjEpXSwgZGlwX2dlbjFfc3RhdGVbUkVHX0JJVChkd29yZCwgMjIpXSwg IGRpcF9nZW4yX3N0YXRlW1JFR19CSVQoZHdvcmQsIDIzKV0pOwo+ICsJcHJpbnRmKCJcdEF1ZGlv IERJUCBwb3J0IHNlbGVjdFx0XHRcdFx0WzB4JWx4XSAlc1xuIiwgICAgICAgICAgICAgICAgUkVH X0JJVFMoZHdvcmQsIDMwLCAyOSksCj4gKwkJZGlwX3BvcnRbUkVHX0JJVFMoZHdvcmQsIDMwLCAy OSldKTsKPiAgCXByaW50ZigiXG4iKTsKPiAgfQo+ICAKPiBAQCAtMTc0NCwxMiArMTc0NCwxMiBA QCBzdGF0aWMgdm9pZCBkdW1wX2F1ZF9jdHJsX3N0YXRlMih2b2lkKQo+ICAJdWludDMyX3QgZHdv cmQ7Cj4gIAo+ICAJZHdvcmQgPSBJTlJFRyhhdWRfcmVnX2Jhc2UgKyBBVURfQ05UTF9TVDIpOwo+ IC0JcHJpbnRmKCJBVURfQ05UTF9TVDIgIEVMRF92YWxpZEJcdFx0XHRcdCVsdVxuIiwgIEJJVChk d29yZCwgMCkpOwo+IC0JcHJpbnRmKCJBVURfQ05UTF9TVDIgIENQX1JlYWR5Qlx0XHRcdFx0XHQl bHVcbiIsIEJJVChkd29yZCwgMSkpOwo+IC0JcHJpbnRmKCJBVURfQ05UTF9TVDIgIEVMRF92YWxp ZENcdFx0XHRcdCVsdVxuIiwgIEJJVChkd29yZCwgNCkpOwo+IC0JcHJpbnRmKCJBVURfQ05UTF9T VDIgIENQX1JlYWR5Q1x0XHRcdFx0XHQlbHVcbiIsIEJJVChkd29yZCwgNSkpOwo+IC0JcHJpbnRm KCJBVURfQ05UTF9TVDIgIEVMRF92YWxpZERcdFx0XHRcdCVsdVxuIiwgIEJJVChkd29yZCwgOCkp Owo+IC0JcHJpbnRmKCJBVURfQ05UTF9TVDIgIENQX1JlYWR5RFx0XHRcdFx0XHQlbHVcbiIsIEJJ VChkd29yZCwgOSkpOwo+ICsJcHJpbnRmKCJBVURfQ05UTF9TVDIgIEVMRF92YWxpZEJcdFx0XHRc dCVsdVxuIiwgIFJFR19CSVQoZHdvcmQsIDApKTsKPiArCXByaW50ZigiQVVEX0NOVExfU1QyICBD UF9SZWFkeUJcdFx0XHRcdFx0JWx1XG4iLCBSRUdfQklUKGR3b3JkLCAxKSk7Cj4gKwlwcmludGYo IkFVRF9DTlRMX1NUMiAgRUxEX3ZhbGlkQ1x0XHRcdFx0JWx1XG4iLCAgUkVHX0JJVChkd29yZCwg NCkpOwo+ICsJcHJpbnRmKCJBVURfQ05UTF9TVDIgIENQX1JlYWR5Q1x0XHRcdFx0XHQlbHVcbiIs IFJFR19CSVQoZHdvcmQsIDUpKTsKPiArCXByaW50ZigiQVVEX0NOVExfU1QyICBFTERfdmFsaWRE XHRcdFx0XHQlbHVcbiIsICBSRUdfQklUKGR3b3JkLCA4KSk7Cj4gKwlwcmludGYoIkFVRF9DTlRM X1NUMiAgQ1BfUmVhZHlEXHRcdFx0XHRcdCVsdVxuIiwgUkVHX0JJVChkd29yZCwgOSkpOwo+ICB9 Cj4gIAo+ICAvKiBmb3IgaHN3KyAqLwo+IEBAIC0xNzU4LDE4ICsxNzU4LDE4IEBAIHN0YXRpYyB2 b2lkIGR1bXBfYXVkX2VsZF9jcF92bGQodm9pZCkKPiAgCXVpbnQzMl90IGR3b3JkOwo+ICAKPiAg CWR3b3JkID0gSU5SRUcoYXVkX3JlZ19iYXNlICsgQVVEX1BJTl9FTERfQ1BfVkxEKTsKPiAtCXBy aW50ZigiQVVEX1BJTl9FTERfQ1BfVkxEICBUcmFuc2NvZGVyX0EgRUxEX3ZhbGlkXHRcdCVsdVxu IiwJQklUKGR3b3JkLCAwKSk7Cj4gLQlwcmludGYoIkFVRF9QSU5fRUxEX0NQX1ZMRCAgVHJhbnNj b2Rlcl9BIENQX1JlYWR5IFx0XHQlbHVcbiIsCUJJVChkd29yZCwgMSkpOwo+IC0JcHJpbnRmKCJB VURfUElOX0VMRF9DUF9WTEQgIFRyYW5zY29kZXJfQSBPdXRfZW5hYmxlXHRcdCVsdVxuIiwJQklU KGR3b3JkLCAyKSk7Cj4gLQlwcmludGYoIkFVRF9QSU5fRUxEX0NQX1ZMRCAgVHJhbnNjb2Rlcl9B IEluYWN0aXZlXHRcdCVsdVxuIiwJQklUKGR3b3JkLCAzKSk7Cj4gLQlwcmludGYoIkFVRF9QSU5f RUxEX0NQX1ZMRCAgVHJhbnNjb2Rlcl9CIEVMRF92YWxpZFx0XHQlbHVcbiIsCUJJVChkd29yZCwg NCkpOwo+IC0JcHJpbnRmKCJBVURfUElOX0VMRF9DUF9WTEQgIFRyYW5zY29kZXJfQiBDUF9SZWFk eVx0XHQlbHVcbiIsCUJJVChkd29yZCwgNSkpOwo+IC0JcHJpbnRmKCJBVURfUElOX0VMRF9DUF9W TEQgIFRyYW5zY29kZXJfQiBPVVRfZW5hYmxlXHRcdCVsdVxuIiwJQklUKGR3b3JkLCA2KSk7Cj4g LQlwcmludGYoIkFVRF9QSU5fRUxEX0NQX1ZMRCAgVHJhbnNjb2Rlcl9CIEluYWN0aXZlXHRcdCVs dVxuIiwgICAgQklUKGR3b3JkLCA3KSk7Cj4gLQlwcmludGYoIkFVRF9QSU5fRUxEX0NQX1ZMRCAg VHJhbnNjb2Rlcl9DIEVMRF92YWxpZFx0XHQlbHVcbiIsCUJJVChkd29yZCwgOCkpOwo+IC0JcHJp bnRmKCJBVURfUElOX0VMRF9DUF9WTEQgIFRyYW5zY29kZXJfQyBDUF9SZWFkeVx0XHQlbHVcbiIs CUJJVChkd29yZCwgOSkpOwo+IC0JcHJpbnRmKCJBVURfUElOX0VMRF9DUF9WTEQgIFRyYW5zY29k ZXJfQyBPVVRfZW5hYmxlXHRcdCVsdVxuIiwJQklUKGR3b3JkLCAxMCkpOwo+IC0JcHJpbnRmKCJB VURfUElOX0VMRF9DUF9WTEQgIFRyYW5zY29kZXJfQyBJbmFjdGl2ZVx0XHQlbHVcbiIsICAgIEJJ VChkd29yZCwgMTEpKTsKPiArCXByaW50ZigiQVVEX1BJTl9FTERfQ1BfVkxEICBUcmFuc2NvZGVy X0EgRUxEX3ZhbGlkXHRcdCVsdVxuIiwJUkVHX0JJVChkd29yZCwgMCkpOwo+ICsJcHJpbnRmKCJB VURfUElOX0VMRF9DUF9WTEQgIFRyYW5zY29kZXJfQSBDUF9SZWFkeSBcdFx0JWx1XG4iLAlSRUdf QklUKGR3b3JkLCAxKSk7Cj4gKwlwcmludGYoIkFVRF9QSU5fRUxEX0NQX1ZMRCAgVHJhbnNjb2Rl cl9BIE91dF9lbmFibGVcdFx0JWx1XG4iLAlSRUdfQklUKGR3b3JkLCAyKSk7Cj4gKwlwcmludGYo IkFVRF9QSU5fRUxEX0NQX1ZMRCAgVHJhbnNjb2Rlcl9BIEluYWN0aXZlXHRcdCVsdVxuIiwJUkVH X0JJVChkd29yZCwgMykpOwo+ICsJcHJpbnRmKCJBVURfUElOX0VMRF9DUF9WTEQgIFRyYW5zY29k ZXJfQiBFTERfdmFsaWRcdFx0JWx1XG4iLAlSRUdfQklUKGR3b3JkLCA0KSk7Cj4gKwlwcmludGYo IkFVRF9QSU5fRUxEX0NQX1ZMRCAgVHJhbnNjb2Rlcl9CIENQX1JlYWR5XHRcdCVsdVxuIiwJUkVH X0JJVChkd29yZCwgNSkpOwo+ICsJcHJpbnRmKCJBVURfUElOX0VMRF9DUF9WTEQgIFRyYW5zY29k ZXJfQiBPVVRfZW5hYmxlXHRcdCVsdVxuIiwJUkVHX0JJVChkd29yZCwgNikpOwo+ICsJcHJpbnRm KCJBVURfUElOX0VMRF9DUF9WTEQgIFRyYW5zY29kZXJfQiBJbmFjdGl2ZVx0XHQlbHVcbiIsICAg IFJFR19CSVQoZHdvcmQsIDcpKTsKPiArCXByaW50ZigiQVVEX1BJTl9FTERfQ1BfVkxEICBUcmFu c2NvZGVyX0MgRUxEX3ZhbGlkXHRcdCVsdVxuIiwJUkVHX0JJVChkd29yZCwgOCkpOwo+ICsJcHJp bnRmKCJBVURfUElOX0VMRF9DUF9WTEQgIFRyYW5zY29kZXJfQyBDUF9SZWFkeVx0XHQlbHVcbiIs CVJFR19CSVQoZHdvcmQsIDkpKTsKPiArCXByaW50ZigiQVVEX1BJTl9FTERfQ1BfVkxEICBUcmFu c2NvZGVyX0MgT1VUX2VuYWJsZVx0XHQlbHVcbiIsCVJFR19CSVQoZHdvcmQsIDEwKSk7Cj4gKwlw cmludGYoIkFVRF9QSU5fRUxEX0NQX1ZMRCAgVHJhbnNjb2Rlcl9DIEluYWN0aXZlXHRcdCVsdVxu IiwgICAgUkVHX0JJVChkd29yZCwgMTEpKTsKPiAgfQo+ICAKPiAgc3RhdGljIHZvaWQgZHVtcF9h dWRfaGRtaV9zdGF0dXModm9pZCkKPiBAQCAtMTc3NywxMiArMTc3NywxMiBAQCBzdGF0aWMgdm9p ZCBkdW1wX2F1ZF9oZG1pX3N0YXR1cyh2b2lkKQo+ICAJdWludDMyX3QgZHdvcmQ7Cj4gIAo+ICAJ ZHdvcmQgPSBJTlJFRyhhdWRfcmVnX2Jhc2UgKyBBVURfSERNSVdfU1RBVFVTKTsKPiAtCXByaW50 ZigiQVVEX0hETUlXX1NUQVRVUyAgRnVuY3Rpb25fUmVzZXRcdFx0XHQlbHVcbiIsICAgICAgICAg ICAgICAgIEJJVChkd29yZCwgMjQpKTsKPiAtCXByaW50ZigiQVVEX0hETUlXX1NUQVRVUyAgQkNM Sy9DRENMS19GSUZPX092ZXJydW5cdFx0JWx1XG4iLAkgICAgIEJJVChkd29yZCwgMjUpKTsKPiAt CXByaW50ZigiQVVEX0hETUlXX1NUQVRVUyAgQ29udl9BX0NEQ0xLL0RPVENMS19GSUZPX092ZXJy dW5cdCVsdVxuIiwgIEJJVChkd29yZCwgMjgpKTsKPiAtCXByaW50ZigiQVVEX0hETUlXX1NUQVRV UyAgQ29udl9BX0NEQ0xLL0RPVENMS19GSUZPX1VuZGVycnVuXHQlbHVcbiIsIEJJVChkd29yZCwg MjkpKTsKPiAtCXByaW50ZigiQVVEX0hETUlXX1NUQVRVUyAgQ29udl9CX0NEQ0xLL0RPVENMS19G SUZPX092ZXJydW5cdCVsdVxuIiwgIEJJVChkd29yZCwgMzApKTsKPiAtCXByaW50ZigiQVVEX0hE TUlXX1NUQVRVUyAgQ29udl9CX0NEQ0xLL0RPVENMS19GSUZPX1VuZGVycnVuXHQlbHVcbiIsIEJJ VChkd29yZCwgMzEpKTsKPiArCXByaW50ZigiQVVEX0hETUlXX1NUQVRVUyAgRnVuY3Rpb25fUmVz ZXRcdFx0XHQlbHVcbiIsICAgICAgICAgICAgICAgIFJFR19CSVQoZHdvcmQsIDI0KSk7Cj4gKwlw cmludGYoIkFVRF9IRE1JV19TVEFUVVMgIEJDTEsvQ0RDTEtfRklGT19PdmVycnVuXHRcdCVsdVxu IiwJICAgICBSRUdfQklUKGR3b3JkLCAyNSkpOwo+ICsJcHJpbnRmKCJBVURfSERNSVdfU1RBVFVT ICBDb252X0FfQ0RDTEsvRE9UQ0xLX0ZJRk9fT3ZlcnJ1blx0JWx1XG4iLCAgUkVHX0JJVChkd29y ZCwgMjgpKTsKPiArCXByaW50ZigiQVVEX0hETUlXX1NUQVRVUyAgQ29udl9BX0NEQ0xLL0RPVENM S19GSUZPX1VuZGVycnVuXHQlbHVcbiIsIFJFR19CSVQoZHdvcmQsIDI5KSk7Cj4gKwlwcmludGYo IkFVRF9IRE1JV19TVEFUVVMgIENvbnZfQl9DRENMSy9ET1RDTEtfRklGT19PdmVycnVuXHQlbHVc biIsICBSRUdfQklUKGR3b3JkLCAzMCkpOwo+ICsJcHJpbnRmKCJBVURfSERNSVdfU1RBVFVTICBD b252X0JfQ0RDTEsvRE9UQ0xLX0ZJRk9fVW5kZXJydW5cdCVsdVxuIiwgUkVHX0JJVChkd29yZCwg MzEpKTsKPiAgfQo+ICAKPiAgLyoKPiBAQCAtMTgxOCwxMyArMTgxOCwxMyBAQCBzdGF0aWMgdm9p ZCBkdW1wX2RwX3BvcnRfY3RybChpbnQgcG9ydCkKPiAgCj4gIAlwb3J0X2N0cmwgPSBkaXNwX3Jl Z19iYXNlICsgRFBfQ1RMX0IgKyAocG9ydCAtIFBPUlRfQikgKiAweDEwMDsKPiAgCWR3b3JkID0g SU5SRUcocG9ydF9jdHJsKTsKPiAtCXByaW50ZigiJXMgRGlzcGxheVBvcnRfRW5hYmxlXHRcdFx0 XHRcdCVsdVxuIiwgICAgICAgIHByZWZpeCwgQklUKGR3b3JkLCAzMSkpOwo+IC0JcHJpbnRmKCIl cyBUcmFuc2NvZGVyX1NlbGVjdFx0XHRcdFx0XHQlc1xuIiwgICAgICAgICAgcHJlZml4LCBCSVQo ZHdvcmQsIDMwKSA/ICJUcmFuc2NvZGVyIEIiIDogIlRyYW5zY29kZXIgQSIpOwo+IC0JcHJpbnRm KCIlcyBQb3J0X1dpZHRoX1NlbGVjdGlvblx0XHRcdFx0WzB4JWx4XSAlc1xuIiwgcHJlZml4LCBC SVRTKGR3b3JkLCAyMSwgMTkpLAo+IC0JCWRwX3BvcnRfd2lkdGhbQklUUyhkd29yZCwgMjEsIDE5 KV0pOwo+IC0JcHJpbnRmKCIlcyBQb3J0X0RldGVjdGVkXHRcdFx0XHRcdCVsdVxuIiwgICAgICAg ICAgICAgcHJlZml4LCBCSVQoZHdvcmQsIDIpKTsKPiAtCXByaW50ZigiJXMgSERDUF9Qb3J0X1Nl bGVjdFx0XHRcdFx0XHQlbHVcbiIsICAgICAgICAgIHByZWZpeCwgQklUKGR3b3JkLCA1KSk7Cj4g LQlwcmludGYoIiVzIEF1ZGlvX091dHB1dF9FbmFibGVcdFx0XHRcdCVsdVxuIiwgICAgICAgICBw cmVmaXgsIEJJVChkd29yZCwgNikpOwo+ICsJcHJpbnRmKCIlcyBEaXNwbGF5UG9ydF9FbmFibGVc dFx0XHRcdFx0JWx1XG4iLCAgICAgICAgcHJlZml4LCBSRUdfQklUKGR3b3JkLCAzMSkpOwo+ICsJ cHJpbnRmKCIlcyBUcmFuc2NvZGVyX1NlbGVjdFx0XHRcdFx0XHQlc1xuIiwgICAgICAgICAgcHJl Zml4LCBSRUdfQklUKGR3b3JkLCAzMCkgPyAiVHJhbnNjb2RlciBCIiA6ICJUcmFuc2NvZGVyIEEi KTsKPiArCXByaW50ZigiJXMgUG9ydF9XaWR0aF9TZWxlY3Rpb25cdFx0XHRcdFsweCVseF0gJXNc biIsIHByZWZpeCwgUkVHX0JJVFMoZHdvcmQsIDIxLCAxOSksCj4gKwkJZHBfcG9ydF93aWR0aFtS RUdfQklUUyhkd29yZCwgMjEsIDE5KV0pOwo+ICsJcHJpbnRmKCIlcyBQb3J0X0RldGVjdGVkXHRc dFx0XHRcdCVsdVxuIiwgICAgICAgICAgICAgcHJlZml4LCBSRUdfQklUKGR3b3JkLCAyKSk7Cj4g KwlwcmludGYoIiVzIEhEQ1BfUG9ydF9TZWxlY3RcdFx0XHRcdFx0JWx1XG4iLCAgICAgICAgICBw cmVmaXgsIFJFR19CSVQoZHdvcmQsIDUpKTsKPiArCXByaW50ZigiJXMgQXVkaW9fT3V0cHV0X0Vu YWJsZVx0XHRcdFx0JWx1XG4iLCAgICAgICAgIHByZWZpeCwgUkVHX0JJVChkd29yZCwgNikpOwo+ ICB9Cj4gIAo+ICBzdGF0aWMgdm9pZCBkdW1wX2hkbWlfcG9ydF9jdHJsKGludCBwb3J0KQo+IEBA IC0xODQzLDEzICsxODQzLDEzIEBAIHN0YXRpYyB2b2lkIGR1bXBfaGRtaV9wb3J0X2N0cmwoaW50 IHBvcnQpCj4gIAo+ICAJZHdvcmQgPSBJTlJFRyhwb3J0X2N0cmwpOwo+ICAJcHJpbnRmKCIlcyBI RE1JX0VuYWJsZVx0XHRcdFx0XHQldVxuIiwgICAgICAgICAgICAgICAgIHByZWZpeCwgISEoZHdv cmQgJiBTRFZPX0VOQUJMRSkpOwo+IC0JcHJpbnRmKCIlcyBUcmFuc2NvZGVyX1NlbGVjdFx0XHRc dFx0JXNcbiIsICAgICAgICAgICAgIHByZWZpeCwgQklUKGR3b3JkLCAzMCkgPyAiVHJhbnNjb2Rl ciBCIiA6ICJUcmFuc2NvZGVyIEEiKTsKPiAtCXByaW50ZigiJXMgSERDUF9Qb3J0X1NlbGVjdFx0 XHRcdFx0JWx1XG4iLCAgICAgICAgICAgICBwcmVmaXgsIEJJVChkd29yZCwgNSkpOwo+ICsJcHJp bnRmKCIlcyBUcmFuc2NvZGVyX1NlbGVjdFx0XHRcdFx0JXNcbiIsICAgICAgICAgICAgIHByZWZp eCwgUkVHX0JJVChkd29yZCwgMzApID8gIlRyYW5zY29kZXIgQiIgOiAiVHJhbnNjb2RlciBBIik7 Cj4gKwlwcmludGYoIiVzIEhEQ1BfUG9ydF9TZWxlY3RcdFx0XHRcdCVsdVxuIiwgICAgICAgICAg ICAgcHJlZml4LCBSRUdfQklUKGR3b3JkLCA1KSk7Cj4gIAlpZiAocG9ydCA9PSBQT1JUX0IpIC8q IFRPRE86IGNoZWNrIHNwZWMsIG5vdCBmb3VuZCBpbiBJYnggYi1zcGVjLCBhbmQgb25seSBmb3Ig cG9ydCBCPyAqLwo+IC0JCXByaW50ZigiJXMgU0RWTyBIb3QgUGx1ZyBJbnRlcnJ1cHQgRGV0ZWN0 IEVuYWJsZVx0JWx1XG4iLCBwcmVmaXgsIEJJVChkd29yZCwgMjMpKTsKPiAtCXByaW50ZigiJXMg RGlnaXRhbF9Qb3J0X0RldGVjdGVkXHRcdFx0JWx1XG4iLCAgICAgICAgICBwcmVmaXgsIEJJVChk d29yZCwgMikpOwo+IC0JcHJpbnRmKCIlcyBFbmNvZGluZ1x0XHRcdFx0XHRbMHglbHhdICVzXG4i LCAgICAgICAgICAgIHByZWZpeCwgQklUUyhkd29yZCwgMTEsIDEwKSwKPiAtCQlzZHZvX2hkbWlf ZW5jb2RpbmdbQklUUyhkd29yZCwgMTEsIDEwKV0pOwo+ICsJCXByaW50ZigiJXMgU0RWTyBIb3Qg UGx1ZyBJbnRlcnJ1cHQgRGV0ZWN0IEVuYWJsZVx0JWx1XG4iLCBwcmVmaXgsIFJFR19CSVQoZHdv cmQsIDIzKSk7Cj4gKwlwcmludGYoIiVzIERpZ2l0YWxfUG9ydF9EZXRlY3RlZFx0XHRcdCVsdVxu IiwgICAgICAgICAgcHJlZml4LCBSRUdfQklUKGR3b3JkLCAyKSk7Cj4gKwlwcmludGYoIiVzIEVu Y29kaW5nXHRcdFx0XHRcdFsweCVseF0gJXNcbiIsICAgICAgICAgICAgcHJlZml4LCBSRUdfQklU Uyhkd29yZCwgMTEsIDEwKSwKPiArCQlzZHZvX2hkbWlfZW5jb2RpbmdbUkVHX0JJVFMoZHdvcmQs IDExLCAxMCldKTsKPiAgCXByaW50ZigiJXMgTnVsbF9wYWNrZXRzX2VuYWJsZWRfZHVyaW5nX1Zz eW5jXHRcdCV1XG4iLCBwcmVmaXgsICEhKGR3b3JkICYgU0RWT19OVUxMX1BBQ0tFVFNfRFVSSU5H X1ZTWU5DKSk7Cj4gIAlwcmludGYoIiVzIEF1ZGlvX091dHB1dF9FbmFibGVcdFx0XHRcdCV1XG4i LCAgICAgICAgICAgcHJlZml4LCAhIShkd29yZCAmIFNEVk9fQVVESU9fRU5BQkxFKSk7Cj4gIH0K PiBAQCAtMjAzMiw5ICsyMDMyLDkgQEAgc3RhdGljIHZvaWQgZHVtcF9kZGlfYnVmX2N0bChpbnQg cG9ydCkKPiAgCWR3b3JkID0gSU5SRUcoRERJX0JVRl9DVExfQSArIChwb3J0IC0gUE9SVF9BKSAq IDB4MTAwKTsKPiAgCXByaW50ZigiRERJICVjIEJ1ZmZlciBjb250cm9sXG4iLCAnQScgKyBwb3J0 IC0gUE9SVF9BKTsKPiAgCj4gLQlwcmludGYoIlx0RFAgcG9ydCB3aWR0aFx0XHRcdFx0XHRbMHgl bHhdICVzXG4iLCBCSVRTKGR3b3JkLCAzLCAxKSwKPiAtCQlPUE5BTUUoZHBfcG9ydF93aWR0aCwg QklUUyhkd29yZCwgMywgMSkpKTsKPiAtCXByaW50ZigiXHREREkgQnVmZmVyIEVuYWJsZVx0XHRc dFx0JWxkXG4iLCAgICAgIEJJVChkd29yZCwgMzEpKTsKPiArCXByaW50ZigiXHREUCBwb3J0IHdp ZHRoXHRcdFx0XHRcdFsweCVseF0gJXNcbiIsIFJFR19CSVRTKGR3b3JkLCAzLCAxKSwKPiArCQlP UE5BTUUoZHBfcG9ydF93aWR0aCwgUkVHX0JJVFMoZHdvcmQsIDMsIDEpKSk7Cj4gKwlwcmludGYo Ilx0RERJIEJ1ZmZlciBFbmFibGVcdFx0XHRcdCVsZFxuIiwgICAgICBSRUdfQklUKGR3b3JkLCAz MSkpOwo+ICB9Cj4gIAo+ICBzdGF0aWMgdm9pZCBkdW1wX2RkaV9mdW5jX2N0bChpbnQgcGlwZSkK PiBAQCAtMjA0NCwxMyArMjA0NCwxMyBAQCBzdGF0aWMgdm9pZCBkdW1wX2RkaV9mdW5jX2N0bChp bnQgcGlwZSkKPiAgCWR3b3JkID0gSU5SRUcoUElQRV9ERElfRlVOQ19DVExfQSArIChwaXBlIC0g UElQRV9BKSAqIDB4MTAwMCk7Cj4gIAlwcmludGYoIlBpcGUgJWMgRERJIEZ1bmN0aW9uIENvbnRy b2xcbiIsICdBJyArIHBpcGUgLSBQSVBFX0EpOwo+ICAKPiAtCXByaW50ZigiXHRCSVRTIHBlciBj b2xvclx0XHRcdFx0XHRbMHglbHhdICVzXG4iLCAgICBCSVRTKGR3b3JkLCAyMiwgMjApLAo+IC0J CU9QTkFNRShiaXRzX3Blcl9jb2xvciwgQklUUyhkd29yZCwgMjIsIDIwKSkpOwo+IC0JcHJpbnRm KCJcdFBJUEUgRERJIE1vZGVcdFx0XHRcdFx0WzB4JWx4XSAlc1xuIiwgICAgIEJJVFMoZHdvcmQs IDI2LCAyNCksCj4gLQkJT1BOQU1FKGRkaV9tb2RlLCBCSVRTKGR3b3JkLCAyNiwgMjQpKSk7Cj4g LQlwcmludGYoIlx0UElQRSBEREkgc2VsZWN0aW9uXHRcdFx0XHRbMHglbHhdICVzXG4iLCAgQklU Uyhkd29yZCwgMzAsIDI4KSwKPiAtCQlPUE5BTUUodHJhbnNfdG9fcG9ydF9zZWwsIEJJVFMoZHdv cmQsIDMwLCAyOCkpKTsKPiAtCXByaW50ZigiXHRQSVBFIERESSBGdW5jdGlvbiBFbmFibGVcdFx0 XHRbMHglbHhdXG4iLCBCSVQoZHdvcmQsIDMxKSk7Cj4gKwlwcmludGYoIlx0UkVHX0JJVFMgcGVy IGNvbG9yXHRcdFx0XHRcdFsweCVseF0gJXNcbiIsIFJFR19CSVRTKGR3b3JkLCAyMiwgMjApLAo+ ICsJCU9QTkFNRShiaXRzX3Blcl9jb2xvciwgUkVHX0JJVFMoZHdvcmQsIDIyLCAyMCkpKTsKPiAr CXByaW50ZigiXHRQSVBFIERESSBNb2RlXHRcdFx0XHRcdFsweCVseF0gJXNcbiIsICAgICBSRUdf QklUUyhkd29yZCwgMjYsIDI0KSwKPiArCQlPUE5BTUUoZGRpX21vZGUsIFJFR19CSVRTKGR3b3Jk LCAyNiwgMjQpKSk7Cj4gKwlwcmludGYoIlx0UElQRSBEREkgc2VsZWN0aW9uXHRcdFx0XHRbMHgl bHhdICVzXG4iLCAgUkVHX0JJVFMoZHdvcmQsIDMwLCAyOCksCj4gKwkJT1BOQU1FKHRyYW5zX3Rv X3BvcnRfc2VsLCBSRUdfQklUUyhkd29yZCwgMzAsIDI4KSkpOwo+ICsJcHJpbnRmKCJcdFBJUEUg RERJIEZ1bmN0aW9uIEVuYWJsZVx0XHRcdFsweCVseF1cbiIsIFJFR19CSVQoZHdvcmQsIDMxKSk7 Cj4gIH0KPiAgCj4gIHN0YXRpYyB2b2lkIGR1bXBfYXVkX2Nvbm5lY3RfbGlzdF9lbnRyeV9sZW5n dGgoaW50IHRyYW5zY29kZXIpCj4gQEAgLTIwNjEsMTAgKzIwNjEsMTAgQEAgc3RhdGljIHZvaWQg ZHVtcF9hdWRfY29ubmVjdF9saXN0X2VudHJ5X2xlbmd0aChpbnQgdHJhbnNjb2RlcikKPiAgCWR3 b3JkID0gSU5SRUcoYXVkX3JlZ19iYXNlICsgQVVEX1RDQV9QSU5fUElQRV9DT05OX0VOVFJZX0xO R1RIICsgKHRyYW5zY29kZXIgLSBUUkFOU0NPREVSX0EpICogMHgxMDApOwo+ICAJc3ByaW50Zihw cmVmaXgsICJBVURfVEMlY19QSU5fUElQRV9DT05OX0VOVFJZX0xOR1RIIiwgJ0EnICsgdHJhbnNj b2RlciAtIFRSQU5TQ09ERVJfQSk7Cj4gIAo+IC0JcHJpbnRmKCIlcyAgQ29ubmVjdF9MaXN0X0xl bmd0aFx0JWx1XG4iLCBwcmVmaXgsIEJJVFMoZHdvcmQsIDYsIDApKTsKPiAtCXByaW50ZigiJXMg IEZvcm0gXHRcdFslI2x4XSAlc1xuIiwgICAgICAgcHJlZml4LCBCSVQoZHdvcmQsIDcpLAo+IC0J CU9QTkFNRShjb25uZWN0X2xpc3RfZm9ybSwgQklUKGR3b3JkLCA3KSkpOwo+IC0JcHJpbnRmKCIl cyAgQ29ubmVjdF9MaXN0X0VudHJ5XHQlbHVcbiIsICBwcmVmaXgsIEJJVFMoZHdvcmQsIDE1LCA4 KSk7Cj4gKwlwcmludGYoIiVzICBDb25uZWN0X0xpc3RfTGVuZ3RoXHQlbHVcbiIsIHByZWZpeCwg UkVHX0JJVFMoZHdvcmQsIDYsIDApKTsKPiArCXByaW50ZigiJXMgIEZvcm0gXHRcdFslI2x4XSAl c1xuIiwgICAgICAgcHJlZml4LCBSRUdfQklUKGR3b3JkLCA3KSwKPiArCQlPUE5BTUUoY29ubmVj dF9saXN0X2Zvcm0sIFJFR19CSVQoZHdvcmQsIDcpKSk7Cj4gKwlwcmludGYoIiVzICBDb25uZWN0 X0xpc3RfRW50cnlcdCVsdVxuIiwgIHByZWZpeCwgUkVHX0JJVFMoZHdvcmQsIDE1LCA4KSk7Cj4g IH0KPiAgCj4gIHN0YXRpYyB2b2lkIGR1bXBfYXVkX2Nvbm5lY3Rfc2VsZWN0X2N0cmwodm9pZCkK PiBAQCAtMjA3Miw5ICsyMDcyLDkgQEAgc3RhdGljIHZvaWQgZHVtcF9hdWRfY29ubmVjdF9zZWxl Y3RfY3RybCh2b2lkKQo+ICAJdWludDMyX3QgZHdvcmQ7Cj4gIAo+ICAJZHdvcmQgPSBJTlJFRyhh dWRfcmVnX2Jhc2UgKyBBVURfUElQRV9DT05OX1NFTF9DVFJMKTsKPiAtCXByaW50ZigiQVVEX1BJ UEVfQ09OTl9TRUxfQ1RSTCAgQ29ubmVjdGlvbl9zZWxlY3RfUG9ydF9CXHQlI2x4XG4iLCBCSVRT KGR3b3JkLCAgNywgIDApKTsKPiAtCXByaW50ZigiQVVEX1BJUEVfQ09OTl9TRUxfQ1RSTCAgQ29u bmVjdGlvbl9zZWxlY3RfUG9ydF9DXHQlI2x4XG4iLCBCSVRTKGR3b3JkLCAxNSwgIDgpKTsKPiAt CXByaW50ZigiQVVEX1BJUEVfQ09OTl9TRUxfQ1RSTCAgQ29ubmVjdGlvbl9zZWxlY3RfUG9ydF9E XHQlI2x4XG4iLCBCSVRTKGR3b3JkLCAyMywgMTYpKTsKPiArCXByaW50ZigiQVVEX1BJUEVfQ09O Tl9TRUxfQ1RSTCAgQ29ubmVjdGlvbl9zZWxlY3RfUG9ydF9CXHQlI2x4XG4iLCBSRUdfQklUUyhk d29yZCwgIDcsICAwKSk7Cj4gKwlwcmludGYoIkFVRF9QSVBFX0NPTk5fU0VMX0NUUkwgIENvbm5l Y3Rpb25fc2VsZWN0X1BvcnRfQ1x0JSNseFxuIiwgUkVHX0JJVFMoZHdvcmQsIDE1LCAgOCkpOwo+ ICsJcHJpbnRmKCJBVURfUElQRV9DT05OX1NFTF9DVFJMICBDb25uZWN0aW9uX3NlbGVjdF9Qb3J0 X0RcdCUjbHhcbiIsIFJFR19CSVRTKGR3b3JkLCAyMywgMTYpKTsKPiAgfQo+ICAKPiAgc3RhdGlj IHZvaWQgZHVtcF9hdWRfZGlwX2VsZF9jdHJsX3N0KGludCB0cmFuc2NvZGVyKQo+IEBAIC0yMDg1 LDE2ICsyMDg1LDE2IEBAIHN0YXRpYyB2b2lkIGR1bXBfYXVkX2RpcF9lbGRfY3RybF9zdChpbnQg dHJhbnNjb2RlcikKPiAgCWR3b3JkID0gSU5SRUcoYXVkX3JlZ19iYXNlICsgQVVEX1RDQV9ESVBf RUxEX0NUUkxfU1QgKyBvZmZzZXQpOwo+ICAJcHJpbnRmKCJBdWRpbyBESVAgYW5kIEVMRCBjb250 cm9sIHN0YXRlIGZvciBUcmFuc2NvZGVyICVjXG4iLCAgJ0EnICsgdHJhbnNjb2RlciAtIFRSQU5T Q09ERVJfQSk7Cj4gIAo+IC0JcHJpbnRmKCJcdEVMRF9BQ0tcdFx0XHRcdFx0XHQlbHVcbiIsICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQklUKGR3b3JkLCA0KSk7Cj4gLQlwcmludGYo Ilx0RUxEX2J1ZmZlcl9zaXplXHRcdFx0XHRcdCVsdVxuIiwgICAgICAgICAgICAgICAgICAgICAg ICAgICBCSVRTKGR3b3JkLCAxNCwgMTApKTsKPiAtCXByaW50ZigiXHRESVBfdHJhbnNtaXNzaW9u X2ZyZXF1ZW5jeVx0XHRcdFsweCVseF0gJXNcbiIsICAgICAgICAgICAgIEJJVFMoZHdvcmQsIDE3 LCAxNiksCj4gLQkJZGlwX3RyYW5zW0JJVFMoZHdvcmQsIDE3LCAxNildKTsKPiAtCXByaW50Zigi XHRESVAgQnVmZmVyIEluZGV4IFx0XHRcdFx0WzB4JWx4XSAlc1xuIiwgICAgICAgICAgICAgICAg ICAgIEJJVFMoZHdvcmQsIDIwLCAxOCksCj4gLQkJZGlwX2luZGV4W0JJVFMoZHdvcmQsIDIwLCAx OCldKTsKPiAtCXByaW50ZigiXHRBdWRpbyBESVAgdHlwZSBlbmFibGUgc3RhdHVzXHRcdFx0WzB4 JTA0bHhdICVzLCAlcywgJXNcbiIsIEJJVFMoZHdvcmQsIDI0LCAyMSksCj4gLQkJZGlwX3R5cGVb QklUKGR3b3JkLCAyMSldLCBkaXBfZ2VuMV9zdGF0ZVtCSVQoZHdvcmQsIDIyKV0sICBkaXBfZ2Vu Ml9zdGF0ZVtCSVQoZHdvcmQsIDIzKV0pOwo+IC0JcHJpbnRmKCJcdEF1ZGlvIERJUCBwb3J0IHNl bGVjdFx0XHRcdFx0WzB4JWx4XSAlc1xuIiwgICAgICAgICAgICAgICAgQklUUyhkd29yZCwgMzAs IDI5KSwKPiAtCQlkaXBfcG9ydFtCSVRTKGR3b3JkLCAzMCwgMjkpXSk7Cj4gKwlwcmludGYoIlx0 RUxEX0FDS1x0XHRcdFx0XHRcdCVsdVxuIiwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICBSRUdfQklUKGR3b3JkLCA0KSk7Cj4gKwlwcmludGYoIlx0RUxEX2J1ZmZlcl9zaXplXHRcdFx0 XHRcdCVsdVxuIiwgICAgICAgICAgICAgICAgICAgICAgICAgICBSRUdfQklUUyhkd29yZCwgMTQs IDEwKSk7Cj4gKwlwcmludGYoIlx0RElQX3RyYW5zbWlzc2lvbl9mcmVxdWVuY3lcdFx0XHRbMHgl bHhdICVzXG4iLCAgICAgICAgICAgICBSRUdfQklUUyhkd29yZCwgMTcsIDE2KSwKPiArCQlkaXBf dHJhbnNbUkVHX0JJVFMoZHdvcmQsIDE3LCAxNildKTsKPiArCXByaW50ZigiXHRESVAgQnVmZmVy IEluZGV4IFx0XHRcdFx0WzB4JWx4XSAlc1xuIiwgICAgICAgICAgICAgICAgICAgIFJFR19CSVRT KGR3b3JkLCAyMCwgMTgpLAo+ICsJCWRpcF9pbmRleFtSRUdfQklUUyhkd29yZCwgMjAsIDE4KV0p Owo+ICsJcHJpbnRmKCJcdEF1ZGlvIERJUCB0eXBlIGVuYWJsZSBzdGF0dXNcdFx0XHRbMHglMDRs eF0gJXMsICVzLCAlc1xuIiwgUkVHX0JJVFMoZHdvcmQsIDI0LCAyMSksCj4gKwkJZGlwX3R5cGVb UkVHX0JJVChkd29yZCwgMjEpXSwgZGlwX2dlbjFfc3RhdGVbUkVHX0JJVChkd29yZCwgMjIpXSwg IGRpcF9nZW4yX3N0YXRlW1JFR19CSVQoZHdvcmQsIDIzKV0pOwo+ICsJcHJpbnRmKCJcdEF1ZGlv IERJUCBwb3J0IHNlbGVjdFx0XHRcdFx0WzB4JWx4XSAlc1xuIiwgICAgICAgICAgICAgICAgUkVH X0JJVFMoZHdvcmQsIDMwLCAyOSksCj4gKwkJZGlwX3BvcnRbUkVHX0JJVFMoZHdvcmQsIDMwLCAy OSldKTsKPiAgCXByaW50ZigiXG4iKTsKPiAgfQo+ICAKPiBAQCAtMjEwMywzOSArMjEwMywzOSBA QCBzdGF0aWMgdm9pZCBkdW1wX2F1ZF9oZG1pX2ZpZm9fc3RhdHVzKHZvaWQpCj4gIAl1aW50MzJf dCBkd29yZDsKPiAgCj4gIAlkd29yZCA9IElOUkVHKGF1ZF9yZWdfYmFzZSArIEFVRF9IRE1JX0ZJ Rk9fU1RBVFVTKTsKPiAtCXByaW50ZigiQVVEX0hETUlfRklGT19TVEFUVVMgIEZ1bmN0aW9uX1Jl c2V0XHRcdFx0JWx1XG4iLCAgICAgICAgICAgICAgICBCSVQoZHdvcmQsIDI0KSk7Cj4gLQlwcmlu dGYoIkFVRF9IRE1JX0ZJRk9fU1RBVFVTICBDb252XzFfQ0RDTEsvRE9UQ0xLX0ZJRk9fT3ZlcnJ1 blx0JWx1XG4iLCAgQklUKGR3b3JkLCAyNikpOwo+IC0JcHJpbnRmKCJBVURfSERNSV9GSUZPX1NU QVRVUyAgQ29udl8xX0NEQ0xLL0RPVENMS19GSUZPX1VuZGVycnVuXHQlbHVcbiIsIEJJVChkd29y ZCwgMjcpKTsKPiAtCXByaW50ZigiQVVEX0hETUlfRklGT19TVEFUVVMgIENvbnZfMl9DRENMSy9E T1RDTEtfRklGT19PdmVycnVuXHQlbHVcbiIsICBCSVQoZHdvcmQsIDI4KSk7Cj4gLQlwcmludGYo IkFVRF9IRE1JX0ZJRk9fU1RBVFVTICBDb252XzJfQ0RDTEsvRE9UQ0xLX0ZJRk9fVW5kZXJydW5c dCVsdVxuIiwgQklUKGR3b3JkLCAyOSkpOwo+IC0JcHJpbnRmKCJBVURfSERNSV9GSUZPX1NUQVRV UyAgQ29udl8zX0NEQ0xLL0RPVENMS19GSUZPX092ZXJydW5cdCVsdVxuIiwgIEJJVChkd29yZCwg MzApKTsKPiAtCXByaW50ZigiQVVEX0hETUlfRklGT19TVEFUVVMgIENvbnZfM19DRENMSy9ET1RD TEtfRklGT19VbmRlcnJ1blx0JWx1XG4iLCBCSVQoZHdvcmQsIDMxKSk7Cj4gKwlwcmludGYoIkFV RF9IRE1JX0ZJRk9fU1RBVFVTICBGdW5jdGlvbl9SZXNldFx0XHRcdCVsdVxuIiwgICAgICAgICAg ICAgICAgUkVHX0JJVChkd29yZCwgMjQpKTsKPiArCXByaW50ZigiQVVEX0hETUlfRklGT19TVEFU VVMgIENvbnZfMV9DRENMSy9ET1RDTEtfRklGT19PdmVycnVuXHQlbHVcbiIsICBSRUdfQklUKGR3 b3JkLCAyNikpOwo+ICsJcHJpbnRmKCJBVURfSERNSV9GSUZPX1NUQVRVUyAgQ29udl8xX0NEQ0xL L0RPVENMS19GSUZPX1VuZGVycnVuXHQlbHVcbiIsIFJFR19CSVQoZHdvcmQsIDI3KSk7Cj4gKwlw cmludGYoIkFVRF9IRE1JX0ZJRk9fU1RBVFVTICBDb252XzJfQ0RDTEsvRE9UQ0xLX0ZJRk9fT3Zl cnJ1blx0JWx1XG4iLCAgUkVHX0JJVChkd29yZCwgMjgpKTsKPiArCXByaW50ZigiQVVEX0hETUlf RklGT19TVEFUVVMgIENvbnZfMl9DRENMSy9ET1RDTEtfRklGT19VbmRlcnJ1blx0JWx1XG4iLCBS RUdfQklUKGR3b3JkLCAyOSkpOwo+ICsJcHJpbnRmKCJBVURfSERNSV9GSUZPX1NUQVRVUyAgQ29u dl8zX0NEQ0xLL0RPVENMS19GSUZPX092ZXJydW5cdCVsdVxuIiwgIFJFR19CSVQoZHdvcmQsIDMw KSk7Cj4gKwlwcmludGYoIkFVRF9IRE1JX0ZJRk9fU1RBVFVTICBDb252XzNfQ0RDTEsvRE9UQ0xL X0ZJRk9fVW5kZXJydW5cdCVsdVxuIiwgUkVHX0JJVChkd29yZCwgMzEpKTsKPiAgfQo+ICAKPiAg c3RhdGljIHZvaWQgcGFyc2VfYmR3X2F1ZGlvX2NoaWNrZW5fYml0X3JlZyh1aW50MzJfdCBkd29y ZCkKPiAgewo+ICAJcHJpbnRmKCJcdCIpOwo+IC0JcHJpbnRmKCIlc1xuXHQiLCBPUE5BTUUodmFu aWxsYV9kcDEyX2VuLCAgICAgICAgICAgQklUKGR3b3JkLCAzMSkpKTsKPiAtCXByaW50ZigiJXNc blx0IiwgT1BOQU1FKHZhbmlsbGFfM193aWRnZXRzX2VuLCAgICAgIEJJVChkd29yZCwgMzApKSk7 Cj4gLQlwcmludGYoIiVzXG5cdCIsIE9QTkFNRShibG9ja19hdWRpbywgICAgICAgICAgICAgICBC SVQoZHdvcmQsIDEwKSkpOwo+IC0JcHJpbnRmKCIlc1xuXHQiLCBPUE5BTUUoZGlzX2VsZF92YWxp ZF9wdWxzZV90cmFucywgQklUKGR3b3JkLCA5KSkpOwo+IC0JcHJpbnRmKCIlc1xuXHQiLCBPUE5B TUUoZGlzX3BkX3B1bHNlX3RyYW5zLCAgICAgICAgQklUKGR3b3JkLCA4KSkpOwo+IC0JcHJpbnRm KCIlc1xuXHQiLCBPUE5BTUUoZGlzX3RzX2RlbHRhX2VyciwgICAgICAgICAgQklUKGR3b3JkLCA3 KSkpOwo+IC0JcHJpbnRmKCIlc1xuXHQiLCBPUE5BTUUoZGlzX3RzX2ZpeF9kcF9oYnIsICAgICAg ICAgQklUKGR3b3JkLCA2KSkpOwo+IC0JcHJpbnRmKCIlc1xuXHQiLCBPUE5BTUUocGF0dGVybl9n ZW5fOF9jaF9lbiwgICAgICAgQklUKGR3b3JkLCA1KSkpOwo+IC0JcHJpbnRmKCIlc1xuXHQiLCBP UE5BTUUocGF0dGVybl9nZW5fMl9jaF9lbiwgICAgICAgQklUKGR3b3JkLCA0KSkpOwo+IC0JcHJp bnRmKCIlc1xuXHQiLCBPUE5BTUUoZmFicmljXzMyXzQ0X2RpcywgICAgICAgICAgQklUKGR3b3Jk LCAzKSkpOwo+IC0JcHJpbnRmKCIlc1xuXHQiLCBPUE5BTUUoZXBzc19kaXMsICAgICAgICAgICAg ICAgICAgQklUKGR3b3JkLCAyKSkpOwo+IC0JcHJpbnRmKCIlc1xuXHQiLCBPUE5BTUUodHNfdGVz dF9tb2RlLCAgICAgICAgICAgICAgQklUKGR3b3JkLCAxKSkpOwo+IC0JcHJpbnRmKCIlc1xuIiwg ICBPUE5BTUUoZW5fbW1pb19wcm9ncmFtLCAgICAgICAgICAgQklUKGR3b3JkLCAwKSkpOwo+ICsJ cHJpbnRmKCIlc1xuXHQiLCBPUE5BTUUodmFuaWxsYV9kcDEyX2VuLCAgICAgICAgICAgUkVHX0JJ VChkd29yZCwgMzEpKSk7Cj4gKwlwcmludGYoIiVzXG5cdCIsIE9QTkFNRSh2YW5pbGxhXzNfd2lk Z2V0c19lbiwgICAgICBSRUdfQklUKGR3b3JkLCAzMCkpKTsKPiArCXByaW50ZigiJXNcblx0Iiwg T1BOQU1FKGJsb2NrX2F1ZGlvLCAgICAgICAgICAgICAgIFJFR19CSVQoZHdvcmQsIDEwKSkpOwo+ ICsJcHJpbnRmKCIlc1xuXHQiLCBPUE5BTUUoZGlzX2VsZF92YWxpZF9wdWxzZV90cmFucywgUkVH X0JJVChkd29yZCwgOSkpKTsKPiArCXByaW50ZigiJXNcblx0IiwgT1BOQU1FKGRpc19wZF9wdWxz ZV90cmFucywgICAgICAgIFJFR19CSVQoZHdvcmQsIDgpKSk7Cj4gKwlwcmludGYoIiVzXG5cdCIs IE9QTkFNRShkaXNfdHNfZGVsdGFfZXJyLCAgICAgICAgICBSRUdfQklUKGR3b3JkLCA3KSkpOwo+ ICsJcHJpbnRmKCIlc1xuXHQiLCBPUE5BTUUoZGlzX3RzX2ZpeF9kcF9oYnIsICAgICAgICAgUkVH X0JJVChkd29yZCwgNikpKTsKPiArCXByaW50ZigiJXNcblx0IiwgT1BOQU1FKHBhdHRlcm5fZ2Vu XzhfY2hfZW4sICAgICAgIFJFR19CSVQoZHdvcmQsIDUpKSk7Cj4gKwlwcmludGYoIiVzXG5cdCIs IE9QTkFNRShwYXR0ZXJuX2dlbl8yX2NoX2VuLCAgICAgICBSRUdfQklUKGR3b3JkLCA0KSkpOwo+ ICsJcHJpbnRmKCIlc1xuXHQiLCBPUE5BTUUoZmFicmljXzMyXzQ0X2RpcywgICAgICAgICAgUkVH X0JJVChkd29yZCwgMykpKTsKPiArCXByaW50ZigiJXNcblx0IiwgT1BOQU1FKGVwc3NfZGlzLCAg ICAgICAgICAgICAgICAgIFJFR19CSVQoZHdvcmQsIDIpKSk7Cj4gKwlwcmludGYoIiVzXG5cdCIs IE9QTkFNRSh0c190ZXN0X21vZGUsICAgICAgICAgICAgICBSRUdfQklUKGR3b3JkLCAxKSkpOwo+ ICsJcHJpbnRmKCIlc1xuIiwgICBPUE5BTUUoZW5fbW1pb19wcm9ncmFtLCAgICAgICAgICAgUkVH X0JJVChkd29yZCwgMCkpKTsKPiAgfQo+ICAKPiAgc3RhdGljIHZvaWQgcGFyc2Vfc2tsX2F1ZGlv X2ZyZXFfY250cmxfcmVnKHVpbnQzMl90IGR3b3JkKQo+ICB7Cj4gIAlwcmludGYoIlx0Iik7Cj4g LQlwcmludGYoIiVzXG5cdCIsIE9QTkFNRShzZGlfb3BlcmF0ZV9tb2RlLCAgICAgICAgICBCSVQo ZHdvcmQsIDE1KSkpOwo+IC0JcHJpbnRmKCIlc1xuXHQiLCBPUE5BTUUoYmNsa185Nm1oeiwgICAg ICAgICAgICAgICAgQklUKGR3b3JkLCA0KSkpOwo+IC0JcHJpbnRmKCIlc1xuIiwgICBPUE5BTUUo YmNsa180OG1oeiwgICAgICAgICAgICAgICAgQklUKGR3b3JkLCAzKSkpOwo+ICsJcHJpbnRmKCIl c1xuXHQiLCBPUE5BTUUoc2RpX29wZXJhdGVfbW9kZSwgICAgICAgICAgUkVHX0JJVChkd29yZCwg MTUpKSk7Cj4gKwlwcmludGYoIiVzXG5cdCIsIE9QTkFNRShiY2xrXzk2bWh6LCAgICAgICAgICAg ICAgICBSRUdfQklUKGR3b3JkLCA0KSkpOwo+ICsJcHJpbnRmKCIlc1xuIiwgICBPUE5BTUUoYmNs a180OG1oeiwgICAgICAgICAgICAgICAgUkVHX0JJVChkd29yZCwgMykpKTsKPiAgfQo+ICAKPiAg LyogRHVtcCBhdWRpbyByZWdpc3RlcnMgZm9yIEhhc3dlbGwgYW5kIGl0cyBzdWNjZXNzb3JzIChl Zy4gQnJvYWR3ZWxsKS4KPiBAQCAtMjMxMSwxMCArMjMxMSwxMCBAQCBzdGF0aWMgdm9pZCBkdW1w X2hzd19wbHVzKHZvaWQpCj4gIAlkdW1wX2F1ZF9oZG1pX2ZpZm9fc3RhdHVzKCk7Cj4gIAo+ICAJ ZHdvcmQgPSByZWFkX2F1ZF9yZWcoQVVEX0lDUyk7Cj4gLQlwcmludGYoIklSViBbJTFseF0gJXNc dCIsIEJJVChkd29yZCwgMSksCj4gLQkJT1BOQU1FKGltbWVkX3Jlc3VsdF92YWxpZCwgQklUKGR3 b3JkLCAxKSkpOwo+IC0JcHJpbnRmKCJJQ0IgWyUxbHhdICVzXG4iLCBCSVQoZHdvcmQsIDEpLAo+ IC0JCU9QTkFNRShpbW1lZF9jbWRfYnVzeSwgQklUKGR3b3JkLCAwKSkpOwo+ICsJcHJpbnRmKCJJ UlYgWyUxbHhdICVzXHQiLCBSRUdfQklUKGR3b3JkLCAxKSwKPiArCQlPUE5BTUUoaW1tZWRfcmVz dWx0X3ZhbGlkLCBSRUdfQklUKGR3b3JkLCAxKSkpOwo+ICsJcHJpbnRmKCJJQ0IgWyUxbHhdICVz XG4iLCBSRUdfQklUKGR3b3JkLCAxKSwKPiArCQlPUE5BTUUoaW1tZWRfY21kX2J1c3ksIFJFR19C SVQoZHdvcmQsIDApKSk7Cj4gIAo+ICAJZHdvcmQgPSByZWFkX2F1ZF9yZWcoQVVEX0NISUNLRU5C SVRfUkVHKTsKPiAgCXByaW50ZigiQVVEX0NISUNLRU5CSVRfUkVHIEF1ZGlvIENoaWNrZW4gQml0 czogJTA4eFxuIiwgZHdvcmQpOwo+IEBAIC0yMzI0LDcgKzIzMjQsNyBAQCBzdGF0aWMgdm9pZCBk dW1wX2hzd19wbHVzKHZvaWQpCj4gIAlkd29yZCA9IHJlYWRfYXVkX3JlZyhBVURfRFBfRElQX1NU QVRVUyk7Cj4gIAlwcmludGYoIkFVRF9EUF9ESVBfU1RBVFVTIEF1ZGlvIERQICYgRElQIEZJRk8g U3RhdHVzOiAlMDh4XG5cdCIsIGR3b3JkKTsKPiAgCWZvciAoaSA9IDMxOyBpID49IDA7IGktLSkK PiAtCQlpZiAoQklUKGR3b3JkLCBpKSkKPiArCQlpZiAoUkVHX0JJVChkd29yZCwgaSkpCj4gIAkJ CXByaW50ZigiJXNcblx0IiwgYXVkaW9fZHBfZGlwX3N0YXR1c1tpXSk7Cj4gIAlwcmludGYoIlxu Iik7Cj4gIAo+IC0tIAo+IDIuMjAuMQo+ClF1aXRlIGEgbG9uZyB3YXkgdG8gY29tZSBoZXJlIDop CkxHVE0KUmV2aWV3ZWQtYnk6IEthdGFyenluYSBEZWMgPGthdGFyenluYS5kZWNAaW50ZWwuY29t PgpLYXNpYSA6KQpfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f XwppZ3QtZGV2IG1haWxpbmcgbGlzdAppZ3QtZGV2QGxpc3RzLmZyZWVkZXNrdG9wLm9yZwpodHRw czovL2xpc3RzLmZyZWVkZXNrdG9wLm9yZy9tYWlsbWFuL2xpc3RpbmZvL2lndC1kZXY=