From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from ffbox0-bg.mplayerhq.hu (ffbox0-bg.ffmpeg.org [79.124.17.100]) by master.gitmailbox.com (Postfix) with ESMTP id AA278493F8 for ; Sun, 10 Mar 2024 20:03:46 +0000 (UTC) Received: from [127.0.1.1] (localhost [127.0.0.1]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTP id 28AA568CE37; Sun, 10 Mar 2024 22:03:43 +0200 (EET) Received: from mail-pl1-f177.google.com (mail-pl1-f177.google.com [209.85.214.177]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTPS id 26DFA68CAF7 for ; Sun, 10 Mar 2024 22:03:36 +0200 (EET) Received: by mail-pl1-f177.google.com with SMTP id d9443c01a7336-1dd6dbcc622so8125575ad.1 for ; Sun, 10 Mar 2024 13:03:36 -0700 (PDT) X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1710101015; x=1710705815; h=to:subject:message-id:date:from:in-reply-to:references:mime-version :x-gm-message-state:from:to:cc:subject:date:message-id:reply-to; bh=uO7NIFWeW5VaDpollBcXW8KdjEo95XdQfjQApzQuuWo=; b=eVTVeiPfMWy/XUu7bkdF7ihVnb2c2mzUolp3dyx5bcYl/RZNT9ZrRskT8iv5Yltt5Z 5M4bdjgDyR/ya/AlXIBkQuEA4JQoa9MUtl2TMIMRPN8ffuLEl+qBwTI7DcUR5jjnhA04 uHrVpJ1dRdAnjNbfWoG4OIns+URsWcTvngkhl4A9lXkp6qhFaaDaEV6uRDucfgF0SXRj MTo/x4vUCj1+6DQXvh0KOWwx0/1b0ob5jXG+FsKZg8hhdE5tJVxyg1u1YOREwbshzrLm oE+FkbSVInakJOX/KBccl4nM8ccpkL3y9lbRb5GiRmD1raUo+Gb/QS7+NUry+Jg5Fpn+ wmUg== X-Gm-Message-State: AOJu0YzyPU/eU0NnTIWwnOGrwDIWklJY9wEqV/NHoi1cHh0Grnp4XGM1 jyFXWcqiudbXzWQSrFmBGRtxHl1Na3n6UqPCRvAn6JmHew2pORyA1LhyGOLeEIA4M9ssFHRNdbh zSPnBtjo5R6JVrAzD2CjWFht+Raq+8QAHduZuLfJY6FIGYdGp0FD/qQ== X-Google-Smtp-Source: AGHT+IG74NbeMCyPD3equSwRDabu5cnRobC0Fa2Kcow2dWF7FUpaJ1Hval5+dPRoL+1vJGOxllwJhFQT2HwCCl48yBI= X-Received: by 2002:a05:6a20:438d:b0:1a1:85ef:8bba with SMTP id i13-20020a056a20438d00b001a185ef8bbamr8066849pzl.0.1710101014649; Sun, 10 Mar 2024 13:03:34 -0700 (PDT) MIME-Version: 1.0 References: <20240309182752.3204466-1-marth64@proxyid.net> <20240309182752.3204466-4-marth64@proxyid.net> <3c36f0a3-4914-4b7c-b719-1190dff11274@gmail.com> In-Reply-To: <3c36f0a3-4914-4b7c-b719-1190dff11274@gmail.com> From: Marth64 Date: Sun, 10 Mar 2024 15:03:23 -0500 Message-ID: To: FFmpeg development discussions and patches X-Content-Filtered-By: Mailman/MimeDel 2.1.29 Subject: Re: [FFmpeg-devel] [PATCH v2 3/3] avformat/dvdvideodec: add menu demuxing support X-BeenThere: ffmpeg-devel@ffmpeg.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: FFmpeg development discussions and patches List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Reply-To: FFmpeg development discussions and patches Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Errors-To: ffmpeg-devel-bounces@ffmpeg.org Sender: "ffmpeg-devel" Archived-At: List-Archive: List-Post: SGksCgo+IElzIDk5IGFuIGFjdHVhbCBsaW1pdCBoZXJlIG9mIERWRHMgb3IgaXMgaXQgc29tZXRo aW5nIHlvdSBwaWNrZWQ/IFlvdQo+IGNhbiBhbHdheXMgdXNlIElOVF9NQVggaWYgdGhpcyBpcyB0 aGUgbGF0dGVyIGNhc2UuCkl0IGlzIHRoZSBhY3R1YWwgbGltaXQgKGFzIGFyZSBhbGwgb2YgdGhl bSB0byB0aGUgYmVzdCBvZiBteSBzdHVkeWluZy4pCgo+IElzIHRoZXJlIGFueSByaXNrIHRoaXMg d2lsbCBiZSBjYWxsZWQgdHdpY2U/IElmIHNvLCB3ZSBzaG91bGQgemVybyBvdXQKPiBzdGF0ZS0+ dm9iX2ZpbGUgYWZ0ZXIgY2FsbGluZyBEVkRDbG9zZUZpbGUuCk5vIHJpc2sgQUZBSUssIHVubGVz cyBmb3Igc29tZSByZWFzb24gY2FsbGVycyBjbG9zZSB0aGUgb3ZlcmFsbCBmb3JtYXQgY3R4CnR3 aWNlLgooUGxlYXNlIGxldCBtZSBrbm93IGlmIHlvdSBzZWUgb25lKS4KCgpPbiBTdW4sIE1hciAx MCwgMjAyNCBhdCAyOjUz4oCvUE0gTGVvIEl6ZW4gPGxlby5pemVuQGdtYWlsLmNvbT4gd3JvdGU6 Cgo+IE9uIDMvOS8yNCAxMzoyNywgTWFydGg2NCB3cm90ZToKPiA+IFNpZ25lZC1vZmYtYnk6IE1h cnRoNjQgPG1hcnRoNjRAcHJveHlpZC5uZXQ+Cj4gPiAtLS0KPiA+ICAgZG9jL2RlbXV4ZXJzLnRl eGkgICAgICAgICB8ICA0MyArKysrKy0KPiA+ICAgbGliYXZmb3JtYXQvZHZkdmlkZW9kZWMuYyB8 IDMxNCArKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKystLQo+ID4gICAyIGZpbGVz IGNoYW5nZWQsIDMzOSBpbnNlcnRpb25zKCspLCAxOCBkZWxldGlvbnMoLSkKPiA+Cj4gPiBkaWZm IC0tZ2l0IGEvZG9jL2RlbXV4ZXJzLnRleGkgYi9kb2MvZGVtdXhlcnMudGV4aQo+ID4gaW5kZXgg ZjRiYWM4ZjNiMy4uYjcwZjNhMzhkNyAxMDA2NDQKPiA+IC0tLSBhL2RvYy9kZW11eGVycy50ZXhp Cj4gPiArKysgYi9kb2MvZGVtdXhlcnMudGV4aQo+ID4gQEAgLTI4OSw4ICsyODksMTAgQEAgVGhp cyBkZW11eGVyIGFjY2VwdHMgdGhlIGZvbGxvd2luZyBvcHRpb246Cj4gPgo+ID4gICBEVkQtVmlk ZW8gZGVtdXhlciwgcG93ZXJlZCBieSBsaWJkdmRuYXYgYW5kIGxpYmR2ZHJlYWQuCj4gPgo+ID4g LUNhbiBkaXJlY3RseSBpbmdlc3QgRFZEIHRpdGxlcywgc3BlY2lmaWNhbGx5IHNlcXVlbnRpYWwg UEdDcywKPiA+IC1pbnRvIGEgY29udmVyc2lvbiBwaXBlbGluZS4gTWVudXMgYW5kIHNlZWtpbmcg YXJlIG5vdCBzdXBwb3J0ZWQgYXQgdGhpcwo+IHRpbWUuCj4gPiArQ2FuIGRpcmVjdGx5IGluZ2Vz dCBEVkQgdGl0bGVzLCBzcGVjaWZpY2FsbHkgc2VxdWVudGlhbCBQR0NzLCBpbnRvCj4gPiArYSBj b252ZXJzaW9uIHBpcGVsaW5lLiBNZW51IGFzc2V0cywgc3VjaCBhcyBiYWNrZ3JvdW5kIHZpZGVv IG9yIGF1ZGlvLAo+ID4gK2NhbiBhbHNvIGJlIGRlbXV4ZWQgZ2l2ZW4gdGhlIG1lbnUncyBjb29y ZGluYXRlcyAoYXQgYmVzdCBlZmZvcnQpLgo+ID4gK1NlZWtpbmcgaXMgbm90IHN1cHBvcnRlZCBh dCB0aGlzIHRpbWUuCj4gPgo+ID4gICBCbG9jayBkZXZpY2VzIChEVkQgZHJpdmVzKSwgSVNPIGZp bGVzLCBhbmQgZGlyZWN0b3J5IHN0cnVjdHVyZXMgYXJlCj4gYWNjZXB0ZWQuCj4gPiAgIEFjdGl2 YXRlIHdpdGggQGNvZGV7LWYgZHZkdmlkZW99IGluIGZyb250IG9mIG9uZSBvZiB0aGVzZSBpbnB1 dHMuCj4gPiBAQCAtMzQ3LDM3ICszNDksNTYgQEAgVGhpcyBkZW11eGVyIGFjY2VwdHMgdGhlIGZv bGxvd2luZyBvcHRpb25zOgo+ID4KPiA+ICAgQGl0ZW0gdGl0bGUgQHZhcntpbnR9Cj4gPiAgIFRo ZSB0aXRsZSBudW1iZXIgdG8gcGxheS4gTXVzdCBiZSBzZXQgaWYgQG9wdGlvbntwZ2N9IGFuZCBA b3B0aW9ue3BnfQo+IGFyZSBub3Qgc2V0Lgo+ID4gK05vdCBhcHBsaWNhYmxlIHRvIG1lbnVzLgo+ ID4gICBEZWZhdWx0IGlzIDAgKGF1dG8pLCB3aGljaCBjdXJyZW50bHkgb25seSBzZWxlY3RzIHRo ZSBmaXJzdCBhdmFpbGFibGUKPiB0aXRsZSAodGl0bGUgMSkKPiA+ICAgYW5kIG5vdGlmaWVzIHRo ZSB1c2VyIGFib3V0IHRoZSBpbXBsaWNhdGlvbnMuCj4gPgo+ID4gICBAaXRlbSBjaGFwdGVyX3N0 YXJ0IEB2YXJ7aW50fQo+ID4gLVRoZSBjaGFwdGVyLCBvciBQVFQgKHBhcnQtb2YtdGl0bGUpLCBu dW1iZXIgdG8gc3RhcnQgYXQuIERlZmF1bHQgaXMgMS4KPiA+ICtUaGUgY2hhcHRlciwgb3IgUFRU IChwYXJ0LW9mLXRpdGxlKSwgbnVtYmVyIHRvIHN0YXJ0IGF0LiBOb3QgYXBwbGljYWJsZQo+IHRv IG1lbnVzLgo+ID4gK0RlZmF1bHQgaXMgMS4KPiA+Cj4gPiAgIEBpdGVtIGNoYXB0ZXJfZW5kIEB2 YXJ7aW50fQo+ID4gLVRoZSBjaGFwdGVyLCBvciBQVFQgKHBhcnQtb2YtdGl0bGUpLCBudW1iZXIg dG8gZW5kIGF0LiBEZWZhdWx0IGlzIDAsCj4gPiAtd2hpY2ggaXMgYSBzcGVjaWFsIHZhbHVlIHRv IHNpZ25hbCBlbmQgYXQgdGhlIGxhc3QgcG9zc2libGUgY2hhcHRlci4KPiA+ICtUaGUgY2hhcHRl ciwgb3IgUFRUIChwYXJ0LW9mLXRpdGxlKSwgbnVtYmVyIHRvIGVuZCBhdC4gTm90IGFwcGxpY2Fi bGUKPiB0byBtZW51cy4KPiA+ICtEZWZhdWx0IGlzIDAsIHdoaWNoIGlzIGEgc3BlY2lhbCB2YWx1 ZSB0byBzaWduYWwgZW5kIGF0IHRoZSBsYXN0Cj4gcG9zc2libGUgY2hhcHRlci4KPiA+Cj4gPiAg IEBpdGVtIGFuZ2xlIEB2YXJ7aW50fQo+ID4gICBUaGUgdmlkZW8gYW5nbGUgbnVtYmVyLCByZWZl cnJpbmcgdG8gd2hhdCBpcyBlc3NlbnRpYWxseSBhbiBhZGRpdGlvbmFsCj4gPiAgIHZpZGVvIHN0 cmVhbSB0aGF0IGlzIGNvbXBvc2VkIGZyb20gYWx0ZXJuYXRlIGZyYW1lcyBpbnRlcmxlYXZlZCBp biB0aGUKPiBWT0JzLgo+ID4gK05vdCBhcHBsaWNhYmxlIHRvIG1lbnVzLgo+ID4gICBEZWZhdWx0 IGlzIDEuCj4gPgo+ID4gICBAaXRlbSByZWdpb24gQHZhcntpbnR9Cj4gPiAgIFRoZSByZWdpb24g Y29kZSB0byB1c2UgZm9yIHBsYXliYWNrLiBTb21lIGRpc2NzIG1heSB1c2UgdGhpcyB0bwo+IGRl ZmF1bHQgcGxheWJhY2sKPiA+ICAgYXQgYSBwYXJ0aWN1bGFyIGFuZ2xlIGluIGRpZmZlcmVudCBy ZWdpb25zLiBUaGlzIG9wdGlvbiB3aWxsIG5vdAo+IGFmZmVjdCB0aGUgcmVnaW9uIGNvZGUKPiA+ IC1vZiBhIHJlYWwgRFZEIGRyaXZlLCBpZiB1c2VkIGFzIGFuIGlucHV0LiBEZWZhdWx0IGlzIDAs ICJ3b3JsZCIuCj4gPiArb2YgYSByZWFsIERWRCBkcml2ZSwgaWYgdXNlZCBhcyBhbiBpbnB1dC4g Tm90IGFwcGxpY2FibGUgdG8gbWVudXMuCj4gPiArRGVmYXVsdCBpcyAwLCAid29ybGQiLgo+ID4g Kwo+ID4gK0BpdGVtIG1lbnUgQHZhcntib29sfQo+ID4gK0RlbXV4IG1lbnUgYXNzZXRzIGluc3Rl YWQgb2YgbmF2aWdhdGluZyBhIHRpdGxlLiBSZXF1aXJlcyBleGFjdAo+IGNvb3JkaW5hdGVzCj4g PiArb2YgdGhlIG1lbnUgKEBvcHRpb257bWVudV9sdX0sIEBvcHRpb257bWVudV92dHN9LCBAb3B0 aW9ue3BnY30sCj4gQG9wdGlvbntwZ30pLgo+ID4gK0RlZmF1bHQgaXMgZmFsc2UuCj4gPiArCj4g PiArQGl0ZW0gbWVudV9sdSBAdmFye2ludH0KPiA+ICtUaGUgbWVudSBsYW5ndWFnZSB0byBkZW11 eC4gSW4gRFZELCBtZW51cyBhcmUgZ3JvdXBlZCBieSBsYW5ndWFnZS4KPiA+ICtEZWZhdWx0IGlz IDAsIHRoZSBmaXJzdCBsYW5ndWFnZSB1bml0Lgo+ID4gKwo+ID4gK0BpdGVtIG1lbnVfdnRzIEB2 YXJ7aW50fQo+ID4gK1RoZSBWVFMgd2hlcmUgdGhlIG1lbnUgbGl2ZXMsIG9yIDAgaWYgaXQgaXMg YSBWTUcgbWVudSAocm9vdC1sZXZlbCkuCj4gPiArRGVmYXVsdCBpcyAwLCBWTUcgbWVudS4KPiA+ Cj4gPiAgIEBpdGVtIHBnYyBAdmFye2ludH0KPiA+ICAgVGhlIGVudHJ5IFBHQyB0byBzdGFydCBw bGF5YmFjaywgaW4gY29uanVuY3Rpb24gd2l0aCBAb3B0aW9ue3BnfS4KPiA+ICAgQWx0ZXJuYXRp dmUgdG8gc2V0dGluZyBAb3B0aW9ue3RpdGxlfS4KPiA+ICAgQ2hhcHRlciBtYXJrZXJzIGFyZSBu b3Qgc3VwcG9ydGVkIGF0IHRoaXMgdGltZS4KPiA+ICtNdXN0IGJlIGV4cGxpY2l0bHkgc2V0IGZv ciBtZW51cy4KPiA+ICAgRGVmYXVsdCBpcyAwLCBhdXRvbWF0aWNhbGx5IHJlc29sdmUgZnJvbSB2 YWx1ZSBvZiBAb3B0aW9ue3RpdGxlfS4KPiA+Cj4gPiAgIEBpdGVtIHBnIEB2YXJ7aW50fQo+ID4g ICBUaGUgZW50cnkgUEcgdG8gc3RhcnQgcGxheWJhY2ssIGluIGNvbmp1bmN0aW9uIHdpdGggQG9w dGlvbntwZ2N9Lgo+ID4gICBBbHRlcm5hdGl2ZSB0byBzZXR0aW5nIEBvcHRpb257dGl0bGV9Lgo+ ID4gICBDaGFwdGVyIG1hcmtlcnMgYXJlIG5vdCBzdXBwb3J0ZWQgYXQgdGhpcyB0aW1lLgo+ID4g LURlZmF1bHQgaXMgMCwgYXV0b21hdGljYWxseSByZXNvbHZlIGZyb20gdmFsdWUgb2YgQG9wdGlv bnt0aXRsZX0uCj4gPiArRGVmYXVsdCBpcyAwLCBhdXRvbWF0aWNhbGx5IHJlc29sdmUgZnJvbSB2 YWx1ZSBvZiBAb3B0aW9ue3RpdGxlfSwgb3IKPiA+ICtzdGFydCBmcm9tIHRoZSBiZWdpbm5pbmcg KFBHIDEpIG9mIHRoZSBtZW51Lgo+ID4KPiA+ICAgQGl0ZW0gcHJlaW5kZXggQHZhcntib29sfQo+ ID4gICBFbmFibGUgdGhpcyB0byBoYXZlIGFjY3VyYXRlIGNoYXB0ZXIgKFBUVCkgbWFya2VycyBh bmQgZHVyYXRpb24KPiBtZWFzdXJlbWVudCwKPiA+IEBAIC0zODUsNiArNDA2LDcgQEAgd2hpY2gg cmVxdWlyZXMgYSBzbG93IHNlY29uZCBwYXNzIHJlYWQgaW4gb3JkZXIgdG8KPiBpbmRleCB0aGUg Y2hhcHRlciBtYXJrZXIKPiA+ICAgdGltZXN0YW1wcyBmcm9tIE5BViBwYWNrZXRzLiBUaGlzIGlz IG5vbi1pZGVhbCBleHRyYSB3b3JrIGZvciByZWFsCj4gb3B0aWNhbCBkcml2ZXMuCj4gPiAgIEl0 IGlzIHJlY29tbWVuZGVkIGFuZCBmYXN0ZXIgdG8gdXNlIHRoaXMgb3B0aW9uIHdpdGggYSBiYWNr dXAgb2YgdGhlCj4gRFZEIHN0cnVjdHVyZQo+ID4gICBzdG9yZWQgb24gYSBoYXJkIGRyaXZlLiBO b3QgY29tcGF0aWJsZSB3aXRoIEBvcHRpb257cGdjfSBhbmQKPiBAb3B0aW9ue3BnfS4KPiA+ICtO b3QgYXBwbGljYWJsZSB0byBtZW51cy4KPiA+ICAgRGVmYXVsdCBpcyAwLCBmYWxzZS4KPiA+Cj4g PiAgIEBpdGVtIHRyaW0gQHZhcntib29sfQo+ID4gQEAgLTM5Miw2ICs0MTQsNyBAQCBTa2lwIHBh ZGRpbmcgY2VsbHMgKGkuZS4gY2VsbHMgc2hvcnRlciB0aGFuIDEKPiBzZWNvbmQpIGZyb20gdGhl IGJlZ2lubmluZy4KPiA+ICAgVGhlcmUgZXhpc3QgbWFueSBkaXNjcyB3aXRoIGZpbGxlciBzZWdt ZW50cyBhdCB0aGUgYmVnaW5uaW5nIG9mIHRoZQo+IFBHQywKPiA+ICAgb2Z0ZW4gd2l0aCBqdW5r IGRhdGEgaW50ZW5kZWQgZm9yIGNvbnRyb2xsaW5nIGEgcmVhbCBEVkQgcGxheWVyJ3MKPiA+ICAg YnVmZmVyaW5nIHNwZWVkIGFuZCB3aXRoIG5vIG90aGVyIG1hdGVyaWFsIGRhdGEgdmFsdWUuCj4g PiArTm90IGFwcGxpY2FibGUgdG8gbWVudXMuCj4gPiAgIERlZmF1bHQgaXMgMSwgdHJ1ZS4KPiA+ Cj4gPiAgIEBlbmQgdGFibGUKPiA+IEBAIC00MTYsNiArNDM5LDEyIEBAIE9wZW4gb25seSBjaGFw dGVyIDUgZnJvbSB0aXRsZSAxIGZyb20gYSBnaXZlbiBEVkQKPiBzdHJ1Y3R1cmU6Cj4gPiAgIEBl eGFtcGxlCj4gPiAgIGZmbXBlZyAtZiBkdmR2aWRlbyAtY2hhcHRlcl9zdGFydCA1IC1jaGFwdGVy X2VuZCA1IC10aXRsZSAxIC1pIDxwYXRoCj4gdG8gRFZEPiAuLi4KPiA+ICAgQGVuZCBleGFtcGxl Cj4gPiArCj4gPiArQGl0ZW0KPiA+ICtEZW11eCBtZW51IHdpdGggbGFuZ3VhZ2UgMSBmcm9tIFZU UyAxLCBQR0MgMSwgc3RhcnRpbmcgYXQgUEcgMToKPiA+ICtAZXhhbXBsZQo+ID4gK2ZmbXBlZyAt ZiBkdmR2aWRlbyAtbWVudSAxIC1tZW51X2x1IDEgLW1lbnVfdnRzIDEgLXBnYyAxIC1wZyAxIC1p IDxwYXRoCj4gdG8gRFZEPiAuLi4KPiA+ICtAZW5kIGV4YW1wbGUKPiA+ICAgQGVuZCBpdGVtaXpl Cj4gPgo+ID4gICBAc2VjdGlvbiBlYQo+ID4gZGlmZiAtLWdpdCBhL2xpYmF2Zm9ybWF0L2R2ZHZp ZGVvZGVjLmMgYi9saWJhdmZvcm1hdC9kdmR2aWRlb2RlYy5jCj4gPiBpbmRleCA2ZjYyNmNlOWEw Li5hMTgyZjk1MDk3IDEwMDY0NAo+ID4gLS0tIGEvbGliYXZmb3JtYXQvZHZkdmlkZW9kZWMuYwo+ ID4gKysrIGIvbGliYXZmb3JtYXQvZHZkdmlkZW9kZWMuYwo+ID4gQEAgLTU3LDkgKzU3LDExIEBA Cj4gPiAgICNkZWZpbmUgRFZEVklERU9fQkxPQ0tfU0laRSAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgMjA0OAo+ID4gICAjZGVmaW5lIERWRFZJREVPX1RJTUVfQkFTRV9RICAgICAgICAgICAg ICAgICAgICAgICAgICAgIChBVlJhdGlvbmFsKSB7Cj4gMSwgOTAwMDAgfQo+ID4gICAjZGVmaW5l IERWRFZJREVPX1BUU19XUkFQX0JJVFMgICAgICAgICAgICAgICAgICAgICAgICAgIDY0IC8qIFZP QlVzCj4gdXNlIDMyIChQRVMgYWxsb3dzIDMzKSAqLwo+ID4gLQo+ID4gICAjZGVmaW5lIERWRFZJ REVPX0xJQkRWRFhfTE9HX0JVRkZFUl9TSVpFICAgICAgICAgICAgICAgIDEwMjQKPiA+Cj4gPiAr I2RlZmluZSBQQ0lfU1RBUlRfQllURSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA0 NSAvKgo+IGNvbXBsZW1lbnQgZHZkcmVhZCdzIERTSV9TVEFSVF9CWVRFICovCj4gPiArc3RhdGlj IGNvbnN0IHVpbnQ4X3QgZHZkdmlkZW9fbmF2X2hlYWRlcls0XSA9ICAgICAgICAgICB7IDB4MDAs IDB4MDAsCj4gMHgwMSwgMHhCRiB9Owo+ID4gKwo+ID4gICBlbnVtIERWRFZpZGVvU3VicGljdHVy ZVZpZXdwb3J0IHsKPiA+ICAgICAgIERWRFZJREVPX1NVQlBfVklFV1BPUlRfRlVMTFNDUkVFTiwK PiA+ICAgICAgIERWRFZJREVPX1NVQlBfVklFV1BPUlRfV0lERVNDUkVFTiwKPiA+IEBAIC0xMjEs NiArMTIzLDE1IEBAIHR5cGVkZWYgc3RydWN0IERWRFZpZGVvUGxheWJhY2tTdGF0ZSB7Cj4gPiAg ICAgICB1aW50NjRfdCAgICAgICAgICAgICAgICAgICAgKnBnY19wZ190aW1lc19lc3Q7ICAvKiBQ RyBzdGFydCB0aW1lcwo+IGFzIHJlcG9ydGVkIGJ5IElGTyAqLwo+ID4gICAgICAgcGdjX3QgICAg ICAgICAgICAgICAgICAgICAgICpwZ2M7ICAgICAgICAgICAgICAgLyogaGFuZGxlIHRvIHRoZQo+ IGFjdGl2ZSBQR0MgKi8KPiA+ICAgICAgIGR2ZG5hdl90ICAgICAgICAgICAgICAgICAgICAqZHZk bmF2OyAgICAgICAgICAgIC8qIGhhbmRsZSB0byB0aGUKPiBkdmRuYXYgVk0gKi8KPiA+ICsKPiA+ ICsgICAgLyogdGhlIGZvbGxvd2luZyBmaWVsZHMgYXJlIG9ubHkgdXNlZCBmb3IgbWVudSBwbGF5 YmFjayAqLwo+ID4gKyAgICBpbnQgICAgICAgICAgICAgICAgICAgICAgICAgY2VsbG5fc3RhcnQ7 ICAgICAgICAvKiBzdGFydGluZyBjZWxsCj4gbnVtYmVyICovCj4gPiArICAgIGludCAgICAgICAg ICAgICAgICAgICAgICAgICBjZWxsbl9lbmQ7ICAgICAgICAgIC8qIGVuZGluZyBjZWxsCj4gbnVt YmVyICovCj4gPiArICAgIGludCAgICAgICAgICAgICAgICAgICAgICAgICBzZWN0b3Jfb2Zmc2V0 OyAgICAgIC8qIGN1cnJlbnQgc2VjdG9yCj4gcmVsYXRpdmUgdG8gdGhlIGN1cnJlbnQgVk9CICov Cj4gPiArICAgIHVpbnQzMl90ICAgICAgICAgICAgICAgICAgICBzZWN0b3JfZW5kOyAgICAgICAg IC8qIGVuZCBzZWN0b3IKPiByZWxhdGl2ZSB0byB0aGUgY3VycmVudCBWT0JVICovCj4gPiArICAg IHVpbnQzMl90ICAgICAgICAgICAgICAgICAgICB2b2J1X25leHQ7ICAgICAgICAgIC8qIHRoZSBu ZXh0IFZPQlUKPiBwb2ludGVyICovCj4gPiArICAgIHVpbnQzMl90ICAgICAgICAgICAgICAgICAg ICB2b2J1X3JlbWFpbmluZzsgICAgIC8qIHJlbWFpbmluZyBibG9ja3MKPiBmb3IgY3VycmVudCBW T0JVICovCj4gPiArICAgIGR2ZF9maWxlX3QgICAgICAgICAgICAgICAgICAqdm9iX2ZpbGU7ICAg ICAgICAgIC8qIGhhbmRsZSB0byB0aGUKPiBtZW51IFZPQiAoVk1HIG9yIFZUUykgKi8KPiA+ICAg fSBEVkRWaWRlb1BsYXliYWNrU3RhdGU7Cj4gPgo+ID4gICB0eXBlZGVmIHN0cnVjdCBEVkRWaWRl b0RlbXV4Q29udGV4dCB7Cj4gPiBAQCAtMTMwLDYgKzE0MSw5IEBAIHR5cGVkZWYgc3RydWN0IERW RFZpZGVvRGVtdXhDb250ZXh0IHsKPiA+ICAgICAgIGludCAgICAgICAgICAgICAgICAgICAgICAg ICBvcHRfYW5nbGU7ICAgICAgICAgIC8qIHRoZQo+IHVzZXItcHJvdmlkZWQgYW5nbGUgbnVtYmVy ICgxLWluZGV4ZWQpICovCj4gPiAgICAgICBpbnQgICAgICAgICAgICAgICAgICAgICAgICAgb3B0 X2NoYXB0ZXJfZW5kOyAgICAvKiB0aGUKPiB1c2VyLXByb3ZpZGVkIGV4aXQgUFRUICgwIGZvciBs YXN0KSAqLwo+ID4gICAgICAgaW50ICAgICAgICAgICAgICAgICAgICAgICAgIG9wdF9jaGFwdGVy X3N0YXJ0OyAgLyogdGhlCj4gdXNlci1wcm92aWRlZCBlbnRyeSBQVFQgKDEtaW5kZXhlZCkgKi8K PiA+ICsgICAgaW50ICAgICAgICAgICAgICAgICAgICAgICAgIG9wdF9tZW51OyAgICAgICAgICAg LyogZGVtdXggbWVudQo+IGRvbWFpbiBpbnN0ZWFkIG9mIHRpdGxlIGRvbWFpbiAqLwo+ID4gKyAg ICBpbnQgICAgICAgICAgICAgICAgICAgICAgICAgb3B0X21lbnVfbHU7ICAgICAgICAvKiB0aGUg bWVudQo+IGxhbmd1YWdlIHVuaXQgKGxvZ2ljYWwgZ3JvdXBpbmcpICovCj4gPiArICAgIGludCAg ICAgICAgICAgICAgICAgICAgICAgICBvcHRfbWVudV92dHM7ICAgICAgIC8qIHRoZSBtZW51IFZU Uywgb3IKPiAwIGZvciBWTUcgKG1haW4gbWVudSkgKi8KPiA+ICAgICAgIGludCAgICAgICAgICAg ICAgICAgICAgICAgICBvcHRfcGc7ICAgICAgICAgICAgIC8qIHRoZQo+IHVzZXItcHJvdmlkZWQg UEcgbnVtYmVyICgxLWluZGV4ZWQpICovCj4gPiAgICAgICBpbnQgICAgICAgICAgICAgICAgICAg ICAgICAgb3B0X3BnYzsgICAgICAgICAgICAvKiB0aGUKPiB1c2VyLXByb3ZpZGVkIFBHQyBudW1i ZXIgKDEtaW5kZXhlZCkgKi8KPiA+ICAgICAgIGludCAgICAgICAgICAgICAgICAgICAgICAgICBv cHRfcHJlaW5kZXg7ICAgICAgIC8qIHByZS1pbmRleGluZwo+IG1vZGUgKDItcGFzcyByZWFkKSAq Lwo+ID4gQEAgLTIyNiw2ICsyNDAsMTYgQEAgc3RhdGljIGludCBkdmR2aWRlb19pZm9fb3BlbihB VkZvcm1hdENvbnRleHQgKnMpCj4gPiAgICAgICAgICAgcmV0dXJuIEFWRVJST1JfRVhURVJOQUw7 Cj4gPiAgICAgICB9Cj4gPgo+ID4gKyAgICBpZiAoYy0+b3B0X21lbnUpIHsKPiA+ICsgICAgICAg IGlmIChjLT5vcHRfbWVudV92dHMgPiAwICYmICEoYy0+dnRzX2lmbyA9IGlmb09wZW4oYy0+ZHZk cmVhZCwKPiBjLT5vcHRfbWVudV92dHMpKSkgewo+ID4gKyAgICAgICAgICAgIGF2X2xvZyhzLCBB Vl9MT0dfRVJST1IsICJVbmFibGUgdG8gb3BlbiBJRk8gc3RydWN0dXJlIGZvcgo+IFZUUyAlZFxu IiwgYy0+b3B0X21lbnVfdnRzKTsKPiA+ICsKPiA+ICsgICAgICAgICAgICByZXR1cm4gQVZFUlJP Ul9FWFRFUk5BTDsKPiA+ICsgICAgICAgIH0KPiA+ICsKPiA+ICsgICAgICAgIHJldHVybiAwOwo+ ID4gKyAgICB9Cj4gPiArCj4gPiAgICAgICBpZiAoYy0+b3B0X3RpdGxlID4gYy0+dm1nX2lmby0+ dHRfc3JwdC0+bnJfb2Zfc3JwdHMpIHsKPiA+ICAgICAgICAgICBhdl9sb2cocywgQVZfTE9HX0VS Uk9SLCAiVGl0bGUgJWQgbm90IGZvdW5kXG4iLCBjLT5vcHRfdGl0bGUpOwo+ID4KPiA+IEBAIC0y ODksNiArMzEzLDE4MyBAQCBzdGF0aWMgaW50Cj4gZHZkdmlkZW9faXNfcGdjX3Byb21pc2luZyhB VkZvcm1hdENvbnRleHQgKnMsIHBnY190ICpwZ2MpCj4gPiAgICAgICByZXR1cm4gMDsKPiA+ICAg fQo+ID4KPiA+ICtzdGF0aWMgdm9pZCBkdmR2aWRlb19tZW51X2Nsb3NlKEFWRm9ybWF0Q29udGV4 dCAqcywKPiBEVkRWaWRlb1BsYXliYWNrU3RhdGUgKnN0YXRlKQo+ID4gK3sKPiA+ICsgICAgaWYg KHN0YXRlLT52b2JfZmlsZSkKPiA+ICsgICAgICAgIERWRENsb3NlRmlsZShzdGF0ZS0+dm9iX2Zp bGUpOwo+ID4gK30KPgo+IElzIHRoZXJlIGFueSByaXNrIHRoaXMgd2lsbCBiZSBjYWxsZWQgdHdp Y2U/IElmIHNvLCB3ZSBzaG91bGQgemVybyBvdXQKPiBzdGF0ZS0+dm9iX2ZpbGUgYWZ0ZXIgY2Fs bGluZyBEVkRDbG9zZUZpbGUuCj4KPiA+ICsKPiA+ICtzdGF0aWMgaW50IGR2ZHZpZGVvX21lbnVf b3BlbihBVkZvcm1hdENvbnRleHQgKnMsIERWRFZpZGVvUGxheWJhY2tTdGF0ZQo+ICpzdGF0ZSkK PiA+ICt7Cj4gPiArICAgIERWRFZpZGVvRGVtdXhDb250ZXh0ICpjID0gcy0+cHJpdl9kYXRhOwo+ ID4gKyAgICBwZ2NpX3V0X3QgKnBnY2lfdXQ7Cj4gPiArCj4gPiArICAgIHBnY2lfdXQgPSBjLT5v cHRfbWVudV92dHMgPyBjLT52dHNfaWZvLT5wZ2NpX3V0IDoKPiBjLT52bWdfaWZvLT5wZ2NpX3V0 Owo+ID4gKyAgICBpZiAoIXBnY2lfdXQpIHsKPiA+ICsgICAgICAgIGF2X2xvZyhzLCBBVl9MT0df RVJST1IsICJJbnZhbGlkIFBHQyB0YWJsZSBmb3IgbWVudSBbTFUgJWQsIFBHQwo+ICVkXVxuIiwK PiA+ICsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGMtPm9wdF9tZW51X2x1LCBjLT5v cHRfcGdjKTsKPiA+ICsKPiA+ICsgICAgICAgIHJldHVybiBBVkVSUk9SX0lOVkFMSUREQVRBOwo+ ID4gKyAgICB9Cj4gPiArCj4gPiArICAgIGlmIChjLT5vcHRfcGdjIDwgMSAgICAgICAgICAgICAg ICAgICAgICB8fAo+ID4gKyAgICAgICAgYy0+b3B0X21lbnVfbHUgPCAxICAgICAgICAgICAgICAg ICAgfHwKPiA+ICsgICAgICAgIGMtPm9wdF9tZW51X2x1ID4gcGdjaV91dC0+bnJfb2ZfbHVzIHx8 Cj4gPiArICAgICAgICBjLT5vcHRfcGdjID4gcGdjaV91dC0+bHVbYy0+b3B0X21lbnVfbHUgLQo+ IDFdLnBnY2l0LT5ucl9vZl9wZ2NpX3NycCkgewo+ID4gKwo+ID4gKyAgICAgICAgYXZfbG9nKHMs IEFWX0xPR19FUlJPUiwgIk1lbnUgW0xVICVkLCBQR0MgJWRdIG5vdCBmb3VuZFxuIiwKPiBjLT5v cHRfbWVudV9sdSwgYy0+b3B0X3BnYyk7Cj4gPiArCj4gPiArICAgICAgICByZXR1cm4gQVZFUlJP UihFSU5WQUwpOwo+ID4gKyAgICB9Cj4gPiArCj4gPiArICAgIC8qIG1ha2Ugc3VyZSB0aGUgUEdD IGlzIHZhbGlkICovCj4gPiArICAgIHN0YXRlLT5wZ2NuICAgICAgICAgID0gYy0+b3B0X3BnYyAt IDE7Cj4gPiArICAgIHN0YXRlLT5wZ2MgICAgICAgICAgID0gcGdjaV91dC0+bHVbYy0+b3B0X21l bnVfbHUgLQo+IDFdLnBnY2l0LT5wZ2NpX3NycFtjLT5vcHRfcGdjIC0gMV0ucGdjOwo+ID4gKyAg ICBpZiAoIXN0YXRlLT5wZ2MgfHwgIXN0YXRlLT5wZ2MtPnByb2dyYW1fbWFwIHx8Cj4gIXN0YXRl LT5wZ2MtPmNlbGxfcGxheWJhY2spIHsKPiA+ICsgICAgICAgIGF2X2xvZyhzLCBBVl9MT0dfRVJS T1IsICJJbnZhbGlkIFBHQyBzdHJ1Y3R1cmUgZm9yIG1lbnUgW0xVICVkLAo+IFBHQyAlZF1cbiIs Cj4gPiArICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjLT5vcHRfbWVudV9sdSwgYy0+ b3B0X3BnYyk7Cj4gPiArCj4gPiArICAgICAgICByZXR1cm4gQVZFUlJPUl9JTlZBTElEREFUQTsK PiA+ICsgICAgfQo+ID4gKwo+ID4gKyAgICAvKiBtYWtlIHN1cmUgdGhlIFBHIGlzIHZhbGlkICov Cj4gPiArICAgIHN0YXRlLT5lbnRyeV9wZ24gICAgID0gYy0+b3B0X3BnOwo+ID4gKyAgICBpZiAo c3RhdGUtPmVudHJ5X3BnbiA8IDEgfHwgc3RhdGUtPmVudHJ5X3BnbiA+Cj4gc3RhdGUtPnBnYy0+ bnJfb2ZfcHJvZ3JhbXMpIHsKPiA+ICsgICAgICAgIGF2X2xvZyhzLCBBVl9MT0dfRVJST1IsICJF bnRyeSBQRyAlZCBub3QgZm91bmRcbiIsCj4gc3RhdGUtPmVudHJ5X3Bnbik7Cj4gPiArCj4gPiAr ICAgICAgICByZXR1cm4gQVZFUlJPUihFSU5WQUwpOwo+ID4gKyAgICB9Cj4gPiArCj4gPiArICAg IC8qIG1ha2Ugc3VyZSB0aGUgcHJvZ3JhbSBtYXAgaXNuJ3QgbGVhZGluZyB1cyB0byBub3doZXJl ICovCj4gPiArICAgIHN0YXRlLT5jZWxsbl9zdGFydCAgID0gc3RhdGUtPnBnYy0+cHJvZ3JhbV9t YXBbc3RhdGUtPmVudHJ5X3BnbiAtCj4gMV07Cj4gPiArICAgIHN0YXRlLT5jZWxsbl9lbmQgICAg ID0gc3RhdGUtPnBnYy0+bnJfb2ZfY2VsbHM7Cj4gPiArICAgIHN0YXRlLT5jZWxsbiAgICAgICAg ID0gc3RhdGUtPmNlbGxuX3N0YXJ0Owo+ID4gKyAgICBpZiAoc3RhdGUtPmNlbGxuX3N0YXJ0ID4g c3RhdGUtPnBnYy0+bnJfb2ZfY2VsbHMpIHsKPiA+ICsgICAgICAgIGF2X2xvZyhzLCBBVl9MT0df RVJST1IsICJJbnZhbGlkIFBHQyBzdHJ1Y3R1cmU6IHByb2dyYW0gbWFwCj4gcG9pbnRzIHRvIHVu a25vd24gY2VsbFxuIik7Cj4gPiArCj4gPiArICAgICAgICByZXR1cm4gQVZFUlJPUl9JTlZBTElE REFUQTsKPiA+ICsgICAgfQo+ID4gKwo+ID4gKyAgICBzdGF0ZS0+c2VjdG9yX2VuZCAgICA9IHN0 YXRlLT5wZ2MtPmNlbGxfcGxheWJhY2tbc3RhdGUtPmNlbGxuIC0KPiAxXS5sYXN0X3NlY3RvcjsK PiA+ICsgICAgc3RhdGUtPnZvYnVfbmV4dCAgICAgPSBzdGF0ZS0+cGdjLT5jZWxsX3BsYXliYWNr W3N0YXRlLT5jZWxsbiAtCj4gMV0uZmlyc3Rfc2VjdG9yOwo+ID4gKyAgICBzdGF0ZS0+c2VjdG9y X29mZnNldCA9IHN0YXRlLT52b2J1X25leHQ7Cj4gPiArCj4gPiArICAgIGlmIChjLT5vcHRfbWVu dV92dHMgPiAwKQo+ID4gKyAgICAgICAgc3RhdGUtPmluX3Z0cyAgICA9IDE7Cj4gPiArCj4gPiAr ICAgIGlmICghKHN0YXRlLT52b2JfZmlsZSA9IERWRE9wZW5GaWxlKGMtPmR2ZHJlYWQsIGMtPm9w dF9tZW51X3Z0cywKPiBEVkRfUkVBRF9NRU5VX1ZPQlMpKSkgewo+ID4gKyAgICAgICAgYXZfbG9n KHMsIEFWX0xPR19FUlJPUiwgIWMtPm9wdF9tZW51X3Z0cyA/Cj4gPiArICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAiVW5hYmxlIHRvIG9wZW4gbWFpbiBtZW51IFZPQgo+IChWSURFT19U Uy5WT0IpXG4iIDoKPiA+ICsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJVbmFibGUg dG8gb3BlbiBtZW51IFZPQnMgZm9yIFZUUwo+ICVkXG4iLCBjLT5vcHRfbWVudV92dHMpOwo+ID4g Kwo+ID4gKyAgICAgICAgcmV0dXJuIEFWRVJST1JfRVhURVJOQUw7Cj4gPiArICAgIH0KPiA+ICsK PiA+ICsgICAgcmV0dXJuIDA7Cj4gPiArfQo+ID4gKwo+ID4gK3N0YXRpYyBpbnQgZHZkdmlkZW9f bWVudV9uZXh0X3BzX2Jsb2NrKEFWRm9ybWF0Q29udGV4dCAqcywKPiBEVkRWaWRlb1BsYXliYWNr U3RhdGUgKnN0YXRlLAo+ID4gKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg IHVpbnQ4X3QgKmJ1ZiwgaW50IGJ1Zl9zaXplLAo+ID4gKyAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIHZvaWQgKCpmbHVzaF9jYikoQVZGb3JtYXRDb250ZXh0Cj4gKnMpKQo+ ID4gK3sKPiA+ICsgICAgc3NpemVfdCBibG9ja3NfcmVhZCAgICAgICAgICAgICAgICAgICA9IDA7 Cj4gPiArICAgIHVpbnQ4X3QgcmVhZF9idWZbRFZEVklERU9fQkxPQ0tfU0laRV0gPSB7MH07Cj4g PiArICAgIHBjaV90IHBjaSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPSAocGNpX3QpIHsw fTsKPiA+ICsgICAgZHNpX3QgZHNpICAgICAgICAgICAgICAgICAgICAgICAgICAgICA9IChkc2lf dCkgezB9Owo+ID4gKwo+ID4gKyAgICBpZiAoYnVmX3NpemUgIT0gRFZEVklERU9fQkxPQ0tfU0la RSkgewo+ID4gKyAgICAgICAgYXZfbG9nKHMsIEFWX0xPR19FUlJPUiwgIkludmFsaWQgYnVmZmVy IHNpemUgKGV4cGVjdGVkPSVkCj4gYWN0dWFsPSVkKVxuIiwKPiA+ICsgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIERWRFZJREVPX0JMT0NLX1NJWkUsIGJ1Zl9zaXplKTsKPiA+ICsKPiA+ ICsgICAgICAgIHJldHVybiBBVkVSUk9SKEVJTlZBTCk7Cj4gPiArICAgIH0KPiA+ICsKPiA+ICsg ICAgLyogd2Ugd2VyZSBhdCB0aGUgZW5kIG9mIGEgdm9idSwgc28gbm93IGdvIHRvIHRoZSBuZXh0 IG9uZSBvciBFT0YgKi8KPiA+ICsgICAgaWYgKCFzdGF0ZS0+dm9idV9yZW1haW5pbmcgJiYgc3Rh dGUtPmluX3BnYykgewo+ID4gKyAgICAgICAgaWYgKHN0YXRlLT52b2J1X25leHQgPT0gU1JJX0VO RF9PRl9DRUxMKSB7Cj4gPiArICAgICAgICAgICAgaWYgKHN0YXRlLT5jZWxsbiA9PSBzdGF0ZS0+ Y2VsbG5fZW5kICYmCj4gc3RhdGUtPnNlY3Rvcl9vZmZzZXQgPiBzdGF0ZS0+c2VjdG9yX2VuZCkK PiA+ICsgICAgICAgICAgICAgICAgcmV0dXJuIEFWRVJST1JfRU9GOwo+ID4gKwo+ID4gKyAgICAg ICAgICAgIHN0YXRlLT5jZWxsbisrOwo+ID4gKyAgICAgICAgICAgIHN0YXRlLT5zZWN0b3Jfb2Zm c2V0ID0KPiBzdGF0ZS0+cGdjLT5jZWxsX3BsYXliYWNrW3N0YXRlLT5jZWxsbiAtIDFdLmZpcnN0 X3NlY3RvcjsKPiA+ICsgICAgICAgICAgICBzdGF0ZS0+c2VjdG9yX2VuZCAgICA9Cj4gc3RhdGUt PnBnYy0+Y2VsbF9wbGF5YmFja1tzdGF0ZS0+Y2VsbG4gLSAxXS5sYXN0X3NlY3RvcjsKPiA+ICsg ICAgICAgIH0gZWxzZSB7Cj4gPiArICAgICAgICAgICAgc3RhdGUtPnNlY3Rvcl9vZmZzZXQgPSBz dGF0ZS0+dm9idV9uZXh0Owo+ID4gKyAgICAgICAgfQo+ID4gKyAgICB9Cj4gPiArCj4gPiArICAg IC8qIGNvbnRpbnVlIHJlYWRpbmcgdGhlIFZPQlUgKi8KPiA+ICsgICAgYXZfbG9nKHMsIEFWX0xP R19UUkFDRSwgInJlYWRpbmcgYmxvY2sgYXQgb2Zmc2V0ICVkXG4iLAo+IHN0YXRlLT5zZWN0b3Jf b2Zmc2V0KTsKPiA+ICsKPiA+ICsgICAgYmxvY2tzX3JlYWQgPSBEVkRSZWFkQmxvY2tzKHN0YXRl LT52b2JfZmlsZSwgc3RhdGUtPnNlY3Rvcl9vZmZzZXQsCj4gMSwgcmVhZF9idWYpOwo+ID4gKyAg ICBpZiAoYmxvY2tzX3JlYWQgIT0gMSkgewo+ID4gKyAgICAgICAgYXZfbG9nKHMsIEFWX0xPR19F UlJPUiwgIlVuYWJsZSB0byByZWFkIFZPQiBibG9jazogb2Zmc2V0PSVkCj4gYmxvY2tzX3JlYWQ9 JWRcbiIsCj4gPiArICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdGF0ZS0+c2VjdG9y X29mZnNldCwgYmxvY2tzX3JlYWQpOwo+ID4gKwo+ID4gKyAgICAgICAgcmV0dXJuIEFWRVJST1Jf SU5WQUxJRERBVEE7Cj4gPiArICAgIH0KPiA+ICsKPiA+ICsgICAgLyogd2UgYXJlIGF0IHRoZSBz dGFydCBvZiBhIFZPQlUsIHNvIHdlIGFyZSBleHBlY3RpbmcgYSBOQVYgcGFja2V0Cj4gKi8KPiA+ ICsgICAgaWYgKCFzdGF0ZS0+dm9idV9yZW1haW5pbmcpIHsKPiA+ICsgICAgICAgIGlmICghbWVt Y21wKCZyZWFkX2J1ZltQQ0lfU1RBUlRfQllURSAtIDRdLCBkdmR2aWRlb19uYXZfaGVhZGVyLAo+ IDQpIHx8Cj4gPiArICAgICAgICAgICAgIW1lbWNtcCgmcmVhZF9idWZbRFNJX1NUQVJUX0JZVEUg LSA0XSwgZHZkdmlkZW9fbmF2X2hlYWRlciwKPiA0KSB8fAo+ID4gKyAgICAgICAgICAgIHJlYWRf YnVmW1BDSV9TVEFSVF9CWVRFIC0gMV0gIT0gMHgwMAo+ICAgIHx8Cj4gPiArICAgICAgICAgICAg cmVhZF9idWZbRFNJX1NUQVJUX0JZVEUgLSAxXSAhPSAweDAxKSB7Cj4gPiArCj4gPiArICAgICAg ICAgICAgYXZfbG9nKHMsIEFWX0xPR19FUlJPUiwgIkludmFsaWQgTkFWIHBhY2tldCBhdCBvZmZz ZXQgJWQ6Cj4gUENJIG9yIERTSSBoZWFkZXIgbWlzbWF0Y2hcbiIsCj4gPiArICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgc3RhdGUtPnNlY3Rvcl9vZmZzZXQpOwo+ID4gKwo+ID4g KyAgICAgICAgICAgIHJldHVybiBBVkVSUk9SX0lOVkFMSUREQVRBOwo+ID4gKyAgICAgICAgfQo+ ID4gKwo+ID4gKyAgICAgICAgbmF2UmVhZF9QQ0koJnBjaSwgJnJlYWRfYnVmW1BDSV9TVEFSVF9C WVRFXSk7Cj4gPiArICAgICAgICBuYXZSZWFkX0RTSSgmZHNpLCAmcmVhZF9idWZbRFNJX1NUQVJU X0JZVEVdKTsKPiA+ICsKPiA+ICsgICAgICAgIGlmICghcGNpLnBjaV9naS52b2J1X3NfcHRtICAg ICAgICAgICAgICAgICAgICAgICAgICB8fAo+ID4gKyAgICAgICAgICAgICFwY2kucGNpX2dpLnZv YnVfZV9wdG0gICAgICAgICAgICAgICAgICAgICAgICAgIHx8Cj4gPiArICAgICAgICAgICAgcGNp LnBjaV9naS52b2J1X3NfcHRtID4gcGNpLnBjaV9naS52b2J1X2VfcHRtKSB7Cj4gPiArCj4gPiAr ICAgICAgICAgICAgYXZfbG9nKHMsIEFWX0xPR19FUlJPUiwgIkludmFsaWQgTkFWIHBhY2tldCBh dCBvZmZzZXQgJWQ6Cj4gUENJIGhlYWRlciBpcyBpbnZhbGlkXG4iLAo+ID4gKyAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIHN0YXRlLT5zZWN0b3Jfb2Zmc2V0KTsKPiA+ICsKPiA+ ICsgICAgICAgICAgICByZXR1cm4gQVZFUlJPUl9JTlZBTElEREFUQTsKPiA+ICsgICAgICAgIH0K PiA+ICsKPiA+ICsgICAgICAgIHN0YXRlLT52b2J1X3JlbWFpbmluZyAgICA9IGRzaS5kc2lfZ2ku dm9idV9lYTsKPiA+ICsgICAgICAgIHN0YXRlLT52b2J1X25leHQgICAgICAgICA9IGRzaS52b2J1 X3NyaS5uZXh0X3ZvYnUgPT0KPiBTUklfRU5EX09GX0NFTEwgPyBTUklfRU5EX09GX0NFTEwgOgo+ ID4gKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZHNpLmRzaV9naS5udl9wY2tf bGJuICsKPiAoZHNpLnZvYnVfc3JpLm5leHRfdm9idSAmIDB4N0ZGRkZGRkYpOwo+ID4gKyAgICAg ICAgc3RhdGUtPnNlY3Rvcl9vZmZzZXQrKzsKPiA+ICsKPiA+ICsgICAgICAgIGlmIChzdGF0ZS0+ aW5fcGdjKSB7Cj4gPiArICAgICAgICAgICAgaWYgKHN0YXRlLT52b2J1X2VfcHRtICE9IHBjaS5w Y2lfZ2kudm9idV9zX3B0bSkgewo+ID4gKyAgICAgICAgICAgICAgICBpZiAoZmx1c2hfY2IpCj4g PiArICAgICAgICAgICAgICAgICAgICBmbHVzaF9jYihzKTsKPiA+ICsKPiA+ICsgICAgICAgICAg ICAgICAgc3RhdGUtPnRzX29mZnNldCArPSBzdGF0ZS0+dm9idV9lX3B0bSAtCj4gcGNpLnBjaV9n aS52b2J1X3NfcHRtOwo+ID4gKyAgICAgICAgICAgIH0KPiA+ICsgICAgICAgIH0gZWxzZSB7Cj4g PiArICAgICAgICAgICAgc3RhdGUtPmluX3BnYyAgICAgICAgPSAxOwo+ID4gKyAgICAgICAgICAg IHN0YXRlLT5pbl9wcyAgICAgICAgID0gMTsKPiA+ICsgICAgICAgIH0KPiA+ICsKPiA+ICsgICAg ICAgIHN0YXRlLT52b2J1X2VfcHRtICAgICAgICA9IHBjaS5wY2lfZ2kudm9idV9lX3B0bTsKPiA+ ICsKPiA+ICsgICAgICAgIGF2X2xvZyhzLCBBVl9MT0dfREVCVUcsICJOQVYgcGFja2V0OiBzZWN0 b3I9JWQgIgo+ID4gKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgInZvYnVfc19wdG09 JWQgdm9idV9lX3B0bT0lZAo+IHRzX29mZnNldD0lbGRcbiIsCj4gPiArICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICBkc2kuZHNpX2dpLm52X3Bja19sYm4sCj4gPiArICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICBwY2kucGNpX2dpLnZvYnVfc19wdG0sCj4gcGNpLnBjaV9naS52 b2J1X2VfcHRtLCBzdGF0ZS0+dHNfb2Zmc2V0KTsKPiA+ICsKPiA+ICsgICAgICAgIHJldHVybiBG RkVSUk9SX1JFRE87Cj4gPiArICAgIH0KPiA+ICsKPiA+ICsgICAgLyogd2UgYXJlIGluIHRoZSBt aWRkbGUgb2YgYSBWT0JVLCBzbyBwYXNzIG9uIHRoZSBQUyBwYWNrZXQgKi8KPiA+ICsgICAgbWVt Y3B5KGJ1ZiwgJnJlYWRfYnVmLCBEVkRWSURFT19CTE9DS19TSVpFKTsKPiA+ICsgICAgc3RhdGUt PnNlY3Rvcl9vZmZzZXQrKzsKPiA+ICsgICAgc3RhdGUtPnZvYnVfcmVtYWluaW5nLS07Cj4gPiAr Cj4gPiArICAgIHJldHVybiBEVkRWSURFT19CTE9DS19TSVpFOwo+ID4gK30KPiA+ICsKPiA+ICAg c3RhdGljIHZvaWQgZHZkdmlkZW9fcGxheV9jbG9zZShBVkZvcm1hdENvbnRleHQgKnMsCj4gRFZE VmlkZW9QbGF5YmFja1N0YXRlICpzdGF0ZSkKPiA+ICAgewo+ID4gICAgICAgaWYgKCFzdGF0ZS0+ ZHZkbmF2KQo+ID4gQEAgLTg1Nyw4ICsxMDU4LDE1IEBAIHN0YXRpYyBpbnQKPiBkdmR2aWRlb192 aWRlb19zdHJlYW1fc2V0dXAoQVZGb3JtYXRDb250ZXh0ICpzKQo+ID4KPiA+ICAgICAgIGludCBy ZXQgPSAwOwo+ID4gICAgICAgRFZEVmlkZW9WVFNWaWRlb1N0cmVhbUVudHJ5IGVudHJ5ID0gezB9 Owo+ID4gKyAgICB2aWRlb19hdHRyX3QgdmlkZW9fYXR0cjsKPiA+Cj4gPiAtICAgIGlmICgocmV0 ID0gZHZkdmlkZW9fdmlkZW9fc3RyZWFtX2FuYWx5emUocywKPiBjLT52dHNfaWZvLT52dHNpX21h dC0+dnRzX3ZpZGVvX2F0dHIsICZlbnRyeSkpIDwgMCB8fAo+ID4gKyAgICBpZiAoYy0+b3B0X21l bnUpCj4gPiArICAgICAgICB2aWRlb19hdHRyID0gIWMtPm9wdF9tZW51X3Z0cyA/Cj4gYy0+dm1n X2lmby0+dm1naV9tYXQtPnZtZ21fdmlkZW9fYXR0ciA6Cj4gPiArCj4gYy0+dnRzX2lmby0+dnRz aV9tYXQtPnZ0c21fdmlkZW9fYXR0cjsKPiA+ICsgICAgZWxzZQo+ID4gKyAgICAgICAgdmlkZW9f YXR0ciA9IGMtPnZ0c19pZm8tPnZ0c2lfbWF0LT52dHNfdmlkZW9fYXR0cjsKPiA+ICsKPiA+ICsg ICAgaWYgKChyZXQgPSBkdmR2aWRlb192aWRlb19zdHJlYW1fYW5hbHl6ZShzLCB2aWRlb19hdHRy LCAmZW50cnkpKSA8Cj4gMCB8fAo+ID4gICAgICAgICAgIChyZXQgPSBkdmR2aWRlb192aWRlb19z dHJlYW1fYWRkKHMsICZlbnRyeSwKPiBBVlNUUkVBTV9QQVJTRV9IRUFERVJTKSkgPCAwKSB7Cj4g Pgo+ID4gICAgICAgICAgIGF2X2xvZyhzLCBBVl9MT0dfRVJST1IsICJVbmFibGUgdG8gYWRkIHZp ZGVvIHN0cmVhbVxuIik7Cj4gPiBAQCAtMTAxMCwxNSArMTIxOCwyOSBAQCBzdGF0aWMgaW50Cj4g ZHZkdmlkZW9fYXVkaW9fc3RyZWFtX2FkZF9hbGwoQVZGb3JtYXRDb250ZXh0ICpzKQo+ID4gICAg ICAgRFZEVmlkZW9EZW11eENvbnRleHQgKmMgPSBzLT5wcml2X2RhdGE7Cj4gPgo+ID4gICAgICAg aW50IHJldCA9IDA7Cj4gPiArICAgIGludCBuYl9zdHJlYW1zOwo+ID4KPiA+IC0gICAgZm9yIChp bnQgaSA9IDA7IGkgPCBjLT52dHNfaWZvLT52dHNpX21hdC0+bnJfb2ZfdnRzX2F1ZGlvX3N0cmVh bXM7Cj4gaSsrKSB7Cj4gPiArICAgIGlmIChjLT5vcHRfbWVudSkKPiA+ICsgICAgICAgIG5iX3N0 cmVhbXMgPSAhYy0+b3B0X21lbnVfdnRzID8KPiBjLT52bWdfaWZvLT52bWdpX21hdC0+bnJfb2Zf dm1nbV9hdWRpb19zdHJlYW1zIDoKPiA+ICsKPiBjLT52dHNfaWZvLT52dHNpX21hdC0+bnJfb2Zf dnRzbV9hdWRpb19zdHJlYW1zOwo+ID4gKyAgICBlbHNlCj4gPiArICAgICAgICBuYl9zdHJlYW1z ID0gYy0+dnRzX2lmby0+dnRzaV9tYXQtPm5yX29mX3Z0c19hdWRpb19zdHJlYW1zOwo+ID4gKwo+ ID4gKyAgICBmb3IgKGludCBpID0gMDsgaSA8IG5iX3N0cmVhbXM7IGkrKykgewo+ID4gICAgICAg ICAgIERWRFZpZGVvUEdDQXVkaW9TdHJlYW1FbnRyeSBlbnRyeSA9IHswfTsKPiA+ICsgICAgICAg IGF1ZGlvX2F0dHJfdCBhdWRpb19hdHRyOwo+ID4gKwo+ID4gKyAgICAgICAgaWYgKGMtPm9wdF9t ZW51KQo+ID4gKyAgICAgICAgICAgIGF1ZGlvX2F0dHIgPSAhYy0+b3B0X21lbnVfdnRzID8KPiBj LT52bWdfaWZvLT52bWdpX21hdC0+dm1nbV9hdWRpb19hdHRyIDoKPiA+ICsKPiBjLT52dHNfaWZv LT52dHNpX21hdC0+dnRzbV9hdWRpb19hdHRyOwo+ID4gKyAgICAgICAgZWxzZQo+ID4gKyAgICAg ICAgICAgIGF1ZGlvX2F0dHIgPSBjLT52dHNfaWZvLT52dHNpX21hdC0+dnRzX2F1ZGlvX2F0dHJb aV07Cj4gPgo+ID4gICAgICAgICAgIGlmICghKGMtPnBsYXlfc3RhdGUucGdjLT5hdWRpb19jb250 cm9sW2ldICYgMHg4MDAwKSkKPiA+ICAgICAgICAgICAgICAgY29udGludWU7Cj4gPgo+ID4gLSAg ICAgICAgaWYgKChyZXQgPSBkdmR2aWRlb19hdWRpb19zdHJlYW1fYW5hbHl6ZShzLAo+IGMtPnZ0 c19pZm8tPnZ0c2lfbWF0LT52dHNfYXVkaW9fYXR0cltpXSwKPiA+IC0KPiAgYy0+cGxheV9zdGF0 ZS5wZ2MtPmF1ZGlvX2NvbnRyb2xbaV0sICZlbnRyeSkpIDwgMCkKPiA+ICsgICAgICAgIGlmICgo cmV0ID0gZHZkdmlkZW9fYXVkaW9fc3RyZWFtX2FuYWx5emUocywgYXVkaW9fYXR0ciwKPiBjLT5w bGF5X3N0YXRlLnBnYy0+YXVkaW9fY29udHJvbFtpXSwKPiA+ICsgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJmVudHJ5KSkgPCAwKQo+ID4gICAgICAgICAg ICAgICBnb3RvIGJyZWFrX2Vycm9yOwo+ID4KPiA+ICAgICAgICAgICAvKiBJRk8gc3RydWN0dXJl cyBjYW4gZGVjbGFyZSBkdXBsaWNhdGUgZW50cmllcyBmb3IgdGhlIHNhbWUKPiBzdGFydGNvZGUg Ki8KPiA+IEBAIC0xMTI5LDcgKzEzNTEsMTYgQEAgc3RhdGljIGludAo+IGR2ZHZpZGVvX3N1YnBf c3RyZWFtX2FkZF9hbGwoQVZGb3JtYXRDb250ZXh0ICpzKQo+ID4gICB7Cj4gPiAgICAgICBEVkRW aWRlb0RlbXV4Q29udGV4dCAqYyA9IHMtPnByaXZfZGF0YTsKPiA+Cj4gPiAtICAgIGZvciAoaW50 IGkgPSAwOyBpIDwgYy0+dnRzX2lmby0+dnRzaV9tYXQtPm5yX29mX3Z0c19zdWJwX3N0cmVhbXM7 Cj4gaSsrKSB7Cj4gPiArICAgIGludCBuYl9zdHJlYW1zOwo+ID4gKwo+ID4gKyAgICBpZiAoYy0+ b3B0X21lbnUpCj4gPiArICAgICAgICBuYl9zdHJlYW1zID0gIWMtPm9wdF9tZW51X3Z0cyA/Cj4g Yy0+dm1nX2lmby0+dm1naV9tYXQtPm5yX29mX3ZtZ21fc3VicF9zdHJlYW1zIDoKPiA+ICsKPiBj LT52dHNfaWZvLT52dHNpX21hdC0+bnJfb2ZfdnRzbV9zdWJwX3N0cmVhbXM7Cj4gPiArICAgIGVs c2UKPiA+ICsgICAgICAgIG5iX3N0cmVhbXMgPSBjLT52dHNfaWZvLT52dHNpX21hdC0+bnJfb2Zf dnRzX3N1YnBfc3RyZWFtczsKPiA+ICsKPiA+ICsKPiA+ICsgICAgZm9yIChpbnQgaSA9IDA7IGkg PCBuYl9zdHJlYW1zOyBpKyspIHsKPiA+ICAgICAgICAgICBpbnQgcmV0ID0gMDsKPiA+ICAgICAg ICAgICB1aW50MzJfdCBzdWJwX2NvbnRyb2w7Cj4gPiAgICAgICAgICAgc3VicF9hdHRyX3Qgc3Vi cF9hdHRyOwo+ID4gQEAgLTExNDEsOCArMTM3MiwxNiBAQCBzdGF0aWMgaW50Cj4gZHZkdmlkZW9f c3VicF9zdHJlYW1fYWRkX2FsbChBVkZvcm1hdENvbnRleHQgKnMpCj4gPgo+ID4gICAgICAgICAg IC8qIHRoZXJlIGNhbiBiZSBzZXZlcmFsIHByZXNlbnRhdGlvbnMgZm9yIG9uZSBTUFUgKi8KPiA+ ICAgICAgICAgICAvKiB0aGUgREFSIGNoZWNrIGlzIGZsZXhpYmxlIGluIG9yZGVyIHRvIHN1cHBv cnQgd2VpcmQKPiBhdXRob3JpbmcgKi8KPiA+IC0gICAgICAgIHZpZGVvX2F0dHIgPSBjLT52dHNf aWZvLT52dHNpX21hdC0+dnRzX3ZpZGVvX2F0dHI7Cj4gPiAtICAgICAgICBzdWJwX2F0dHIgPSBj LT52dHNfaWZvLT52dHNpX21hdC0+dnRzX3N1YnBfYXR0cltpXTsKPiA+ICsgICAgICAgIGlmIChj LT5vcHRfbWVudSkgewo+ID4gKyAgICAgICAgICAgIHZpZGVvX2F0dHIgPSAhYy0+b3B0X21lbnVf dnRzID8KPiBjLT52bWdfaWZvLT52bWdpX21hdC0+dm1nbV92aWRlb19hdHRyIDoKPiA+ICsKPiBj LT52dHNfaWZvLT52dHNpX21hdC0+dnRzbV92aWRlb19hdHRyOwo+ID4gKwo+ID4gKyAgICAgICAg ICAgIHN1YnBfYXR0ciAgPSAhYy0+b3B0X21lbnVfdnRzID8KPiBjLT52bWdfaWZvLT52bWdpX21h dC0+dm1nbV9zdWJwX2F0dHIgOgo+ID4gKwo+IGMtPnZ0c19pZm8tPnZ0c2lfbWF0LT52dHNtX3N1 YnBfYXR0cjsKPiA+ICsgICAgICAgIH0gZWxzZSB7Cj4gPiArICAgICAgICAgICAgdmlkZW9fYXR0 ciA9IGMtPnZ0c19pZm8tPnZ0c2lfbWF0LT52dHNfdmlkZW9fYXR0cjsKPiA+ICsgICAgICAgICAg ICBzdWJwX2F0dHIgPSBjLT52dHNfaWZvLT52dHNpX21hdC0+dnRzX3N1YnBfYXR0cltpXTsKPiA+ ICsgICAgICAgIH0KPiA+Cj4gPiAgICAgICAgICAgLyogNDozICovCj4gPiAgICAgICAgICAgaWYg KCF2aWRlb19hdHRyLmRpc3BsYXlfYXNwZWN0X3JhdGlvKSB7Cj4gPiBAQCAtMTE5OCw4ICsxNDM3 LDEyIEBAIHN0YXRpYyBpbnQgZHZkdmlkZW9fc3ViZGVtdXhfcmVhZF9kYXRhKHZvaWQKPiAqb3Bh cXVlLCB1aW50OF90ICpidWYsIGludCBidWZfc2l6ZSkKPiA+ICAgICAgIGlmIChjLT5wbGF5X2Vu ZCkKPiA+ICAgICAgICAgICByZXR1cm4gQVZFUlJPUl9FT0Y7Cj4gPgo+ID4gLSAgICByZXQgPSBk dmR2aWRlb19wbGF5X25leHRfcHNfYmxvY2sob3BhcXVlLCAmYy0+cGxheV9zdGF0ZSwgYnVmLAo+ IGJ1Zl9zaXplLAo+ID4gLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJm5h dl9ldmVudCwKPiBkdmR2aWRlb19zdWJkZW11eF9mbHVzaCk7Cj4gPiArICAgIGlmIChjLT5vcHRf bWVudSkKPiA+ICsgICAgICAgIHJldCA9IGR2ZHZpZGVvX21lbnVfbmV4dF9wc19ibG9jayhzLCAm Yy0+cGxheV9zdGF0ZSwgYnVmLAo+IGJ1Zl9zaXplLAo+ID4gKyAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIGR2ZHZpZGVvX3N1YmRlbXV4X2ZsdXNoKTsKPiA+ICsgICAg ZWxzZQo+ID4gKyAgICAgICAgcmV0ID0gZHZkdmlkZW9fcGxheV9uZXh0X3BzX2Jsb2NrKG9wYXF1 ZSwgJmMtPnBsYXlfc3RhdGUsIGJ1ZiwKPiBidWZfc2l6ZSwKPiA+ICsgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAmbmF2X2V2ZW50LAo+IGR2ZHZpZGVvX3N1YmRlbXV4 X2ZsdXNoKTsKPiA+Cj4gPiAgICAgICBpZiAocmV0ID09IEFWRVJST1JfRU9GKSB7Cj4gPiAgICAg ICAgICAgYy0+bXBlZ19wYi5wdWIuZW9mX3JlYWNoZWQgPSAxOwo+ID4gQEAgLTEyNjMsNiArMTUw Niw0NyBAQCBzdGF0aWMgaW50IGR2ZHZpZGVvX3JlYWRfaGVhZGVyKEFWRm9ybWF0Q29udGV4dAo+ ICpzKQo+ID4KPiA+ICAgICAgIGludCByZXQgPSAwOwo+ID4KPiA+ICsgICAgaWYgKGMtPm9wdF9t ZW51KSB7Cj4gPiArICAgICAgICBpZiAoYy0+b3B0X3JlZ2lvbiAgICAgICAgICAgICAgIHx8Cj4g PiArICAgICAgICAgICAgYy0+b3B0X3RpdGxlID4gMSAgICAgICAgICAgIHx8Cj4gPiArICAgICAg ICAgICAgYy0+b3B0X3ByZWluZGV4ICAgICAgICAgICAgIHx8Cj4gPiArICAgICAgICAgICAgYy0+ b3B0X2NoYXB0ZXJfc3RhcnQgPiAxICAgIHx8Cj4gPiArICAgICAgICAgICAgYy0+b3B0X2NoYXB0 ZXJfZW5kID4gMCkgewo+ID4gKyAgICAgICAgICAgIGF2X2xvZyhzLCBBVl9MT0dfRVJST1IsICIt bWVudSBpcyBub3QgY29tcGF0aWJsZSB3aXRoIHRoZQo+IC1yZWdpb24sIC10aXRsZSwgIgo+ID4g KyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICItcHJlaW5kZXgsIG9yCj4gLWNo YXB0ZXJfc3RhcnQvLWNoYXB0ZXJfZW5kIG9wdGlvbnNcbiIpOwo+ID4gKyAgICAgICAgICAgIHJl dHVybiBBVkVSUk9SKEVJTlZBTCk7Cj4gPiArICAgICAgICB9Cj4gPiArCj4gPiArICAgICAgICBp ZiAoIWMtPm9wdF9wZ2MpIHsKPiA+ICsgICAgICAgICAgICBhdl9sb2cocywgQVZfTE9HX0VSUk9S LCAiSWYgLW1lbnUgaXMgZW5hYmxlZCwgLXBnYyBtdXN0IGJlCj4gc2V0IHRvIGEgbm9uLXplcm8g dmFsdWVcbiIpOwo+ID4gKwo+ID4gKyAgICAgICAgICAgIHJldHVybiBBVkVSUk9SKEVJTlZBTCk7 Cj4gPiArICAgICAgICB9Cj4gPiArCj4gPiArICAgICAgICBpZiAoIWMtPm9wdF9tZW51X2x1KSB7 Cj4gPiArICAgICAgICAgICAgYXZfbG9nKHMsIEFWX0xPR19JTkZPLCAiRGVmYXVsdGluZyB0byBt ZW51IGxhbmd1YWdlIHVuaXQKPiAjMS4gIgo+ID4gKyAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIlRoaXMgaXMgbm90IGFsd2F5cyBkZXNpcmFibGUsCj4gdmFsaWRhdGlvbiBzdWdn ZXN0ZWQuXG4iKTsKPiA+ICsKPiA+ICsgICAgICAgICAgICBjLT5vcHRfbWVudV9sdSA9IDE7Cj4g PiArICAgICAgICB9Cj4gPiArCj4gPiArICAgICAgICBpZiAoIWMtPm9wdF9wZykgewo+ID4gKyAg ICAgICAgICAgIGF2X2xvZyhzLCBBVl9MT0dfSU5GTywgIkRlZmF1bHRpbmcgdG8gbWVudSBQRyAj MS4gIgo+ID4gKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIlRoaXMgaXMgbm90 IGFsd2F5cyBkZXNpcmFibGUsCj4gdmFsaWRhdGlvbiBzdWdnZXN0ZWQuXG4iKTsKPiA+ICsKPiA+ ICsgICAgICAgICAgICBjLT5vcHRfcGcgPSAxOwo+ID4gKyAgICAgICAgfQo+ID4gKwo+ID4gKyAg ICAgICAgaWYgKChyZXQgPSBkdmR2aWRlb19pZm9fb3BlbihzKSkgPCAwICAgICAgICAgICAgICAg ICAgICB8fAo+ID4gKyAgICAgICAgICAgIChyZXQgPSBkdmR2aWRlb19tZW51X29wZW4ocywgJmMt PnBsYXlfc3RhdGUpKSA8IDAgICB8fAo+ID4gKyAgICAgICAgICAgIChyZXQgPSBkdmR2aWRlb19z dWJkZW11eF9vcGVuKHMpKSA8IDAgICAgICAgICAgICAgICB8fAo+ID4gKyAgICAgICAgICAgIChy ZXQgPSBkdmR2aWRlb192aWRlb19zdHJlYW1fc2V0dXAocykpIDwgMCAgICAgICAgICB8fAo+ID4g KyAgICAgICAgICAgIChyZXQgPSBkdmR2aWRlb19hdWRpb19zdHJlYW1fYWRkX2FsbChzKSkgPCAw KQo+ID4gKyAgICAgICAgcmV0dXJuIHJldDsKPiA+ICsKPiA+ICsgICAgICAgIHJldHVybiAwOwo+ ID4gKyAgICB9Cj4gPiArCj4gPiAgICAgICBpZiAoYy0+b3B0X3RpdGxlID09IDApIHsKPiA+ICAg ICAgICAgICBhdl9sb2cocywgQVZfTE9HX0lORk8sICJEZWZhdWx0aW5nIHRvIHRpdGxlICMxLiAi Cj4gPiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiVGhpcyBpcyBub3QgYWx3YXlz IHRoZSBtYWluIGZlYXR1cmUsCj4gdmFsaWRhdGlvbiBzdWdnZXN0ZWQuXG4iKTsKPiA+IEBAIC0x Mzc4LDcgKzE2NjIsMTIgQEAgc3RhdGljIGludCBkdmR2aWRlb19jbG9zZShBVkZvcm1hdENvbnRl eHQgKnMpCj4gPiAgICAgICBEVkRWaWRlb0RlbXV4Q29udGV4dCAqYyA9IHMtPnByaXZfZGF0YTsK PiA+Cj4gPiAgICAgICBkdmR2aWRlb19zdWJkZW11eF9jbG9zZShzKTsKPiA+IC0gICAgZHZkdmlk ZW9fcGxheV9jbG9zZShzLCAmYy0+cGxheV9zdGF0ZSk7Cj4gPiArCj4gPiArICAgIGlmIChjLT5v cHRfbWVudSkKPiA+ICsgICAgICAgIGR2ZHZpZGVvX21lbnVfY2xvc2UocywgJmMtPnBsYXlfc3Rh dGUpOwo+ID4gKyAgICBlbHNlCj4gPiArICAgICAgICBkdmR2aWRlb19wbGF5X2Nsb3NlKHMsICZj LT5wbGF5X3N0YXRlKTsKPiA+ICsKPiA+ICAgICAgIGR2ZHZpZGVvX2lmb19jbG9zZShzKTsKPiA+ Cj4gPiAgICAgICByZXR1cm4gMDsKPiA+IEBAIC0xMzg5LDYgKzE2NzgsOSBAQCBzdGF0aWMgY29u c3QgQVZPcHRpb24gZHZkdmlkZW9fb3B0aW9uc1tdID0gewo+ID4gICAgICAgeyJhbmdsZSIsICAg ICAgICAgICAicGxheWJhY2sgYW5nbGUgbnVtYmVyIiwKPiAgICAgICAgICAgICAgIE9GRlNFVChv cHRfYW5nbGUpLCAgICAgICAgICBBVl9PUFRfVFlQRV9JTlQsICAgIHsgLmk2ND0xIH0sCj4gICAg MSwgICAgICAgICAgOSwgICAgICAgICBBVl9PUFRfRkxBR19ERUNPRElOR19QQVJBTSB9LAo+ID4g ICAgICAgeyJjaGFwdGVyX2VuZCIsICAgICAiZXhpdCBjaGFwdGVyIChQVFQpIG51bWJlciAoMD1l bmQpIiwKPiAgICAgICAgICAgICAgIE9GRlNFVChvcHRfY2hhcHRlcl9lbmQpLCAgICBBVl9PUFRf VFlQRV9JTlQsICAgIHsgLmk2ND0wIH0sCj4gICAgMCwgICAgICAgICAgOTksICAgICAgICBBVl9P UFRfRkxBR19ERUNPRElOR19QQVJBTSB9LAo+ID4gICAgICAgeyJjaGFwdGVyX3N0YXJ0IiwgICAi ZW50cnkgY2hhcHRlciAoUFRUKSBudW1iZXIiLAo+ICAgICAgICAgICAgICBPRkZTRVQob3B0X2No YXB0ZXJfc3RhcnQpLCAgQVZfT1BUX1RZUEVfSU5ULCAgICB7IC5pNjQ9MSB9LAo+ICAxLCAgICAg ICAgICA5OSwgICAgICAgIEFWX09QVF9GTEFHX0RFQ09ESU5HX1BBUkFNIH0sCj4gPiArICAgIHsi bWVudSIsICAgICAgICAgICAgImRlbXV4IG1lbnUgZG9tYWluIiwKPiAgICAgICAgICAgICBPRkZT RVQob3B0X21lbnUpLCAgICAgICAgICAgQVZfT1BUX1RZUEVfQk9PTCwgICB7IC5pNjQ9MCB9LAo+ ICAwLCAgICAgICAgICAxLCAgICAgICAgIEFWX09QVF9GTEFHX0RFQ09ESU5HX1BBUkFNIH0sCj4g PiArICAgIHsibWVudV9sdSIsICAgICAgICAgIm1lbnUgbGFuZ3VhZ2UgdW5pdCAoMD1hdXRvKSIs Cj4gICAgICAgICAgICAgT0ZGU0VUKG9wdF9tZW51X2x1KSwgICAgICAgIEFWX09QVF9UWVBFX0lO VCwgICAgeyAuaTY0PTAgfSwKPiAgMCwgICAgICAgICAgOTksICAgICAgICBBVl9PUFRfRkxBR19E RUNPRElOR19QQVJBTSB9LAo+ID4gKyAgICB7Im1lbnVfdnRzIiwgICAgICAgICJtZW51IFZUUyAo MD1WTUcgbWFpbiBtZW51KSIsCj4gICAgICAgICAgICAgIE9GRlNFVChvcHRfbWVudV92dHMpLCAg ICAgICBBVl9PUFRfVFlQRV9JTlQsICAgIHsgLmk2ND0wIH0sCj4gIDAsICAgICAgICAgIDk5LCAg ICAgICAgQVZfT1BUX0ZMQUdfREVDT0RJTkdfUEFSQU0gfSwKPgo+IElzIDk5IGFuIGFjdHVhbCBs aW1pdCBoZXJlIG9mIERWRHMgb3IgaXMgaXQgc29tZXRoaW5nIHlvdSBwaWNrZWQ/IFlvdQo+IGNh biBhbHdheXMgdXNlIElOVF9NQVggaWYgdGhpcyBpcyB0aGUgbGF0dGVyIGNhc2UuCj4KPgo+ID4g ICAgICAgeyJwZyIsICAgICAgICAgICAgICAiZW50cnkgUEcgbnVtYmVyICgwPWF1dG8pIiwKPiAg ICAgICAgICAgICAgT0ZGU0VUKG9wdF9wZyksICAgICAgICAgICAgIEFWX09QVF9UWVBFX0lOVCwg ICAgeyAuaTY0PTAgfSwKPiAgMCwgICAgICAgICAgMjU1LCAgICAgICBBVl9PUFRfRkxBR19ERUNP RElOR19QQVJBTSB9LAo+ID4gICAgICAgeyJwZ2MiLCAgICAgICAgICAgICAiZW50cnkgUEdDIG51 bWJlciAoMD1hdXRvKSIsCj4gICAgICAgICAgICAgICBPRkZTRVQob3B0X3BnYyksICAgICAgICAg ICAgQVZfT1BUX1RZUEVfSU5ULCAgICB7IC5pNjQ9MCB9LAo+ICAgIDAsICAgICAgICAgIDk5OSwg ICAgICAgQVZfT1BUX0ZMQUdfREVDT0RJTkdfUEFSQU0gfSwKPiA+ICAgICAgIHsicHJlaW5kZXgi LCAgICAgICAgImVuYWJsZSBmb3IgYWNjdXJhdGUgY2hhcHRlciBtYXJrZXJzLCBzbG93Cj4gKDIt cGFzcyByZWFkKSIsICBPRkZTRVQob3B0X3ByZWluZGV4KSwgICAgICAgQVZfT1BUX1RZUEVfQk9P TCwgICB7IC5pNjQ9MAo+IH0sICAgICAwLCAgICAgICAgICAxLCAgICAgICAgIEFWX09QVF9GTEFH X0RFQ09ESU5HX1BBUkFNIH0sCj4gX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX18KPiBmZm1wZWctZGV2ZWwgbWFpbGluZyBsaXN0Cj4gZmZtcGVnLWRldmVsQGZm bXBlZy5vcmcKPiBodHRwczovL2ZmbXBlZy5vcmcvbWFpbG1hbi9saXN0aW5mby9mZm1wZWctZGV2 ZWwKPgo+IFRvIHVuc3Vic2NyaWJlLCB2aXNpdCBsaW5rIGFib3ZlLCBvciBlbWFpbAo+IGZmbXBl Zy1kZXZlbC1yZXF1ZXN0QGZmbXBlZy5vcmcgd2l0aCBzdWJqZWN0ICJ1bnN1YnNjcmliZSIuCj4K X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18KZmZtcGVnLWRl dmVsIG1haWxpbmcgbGlzdApmZm1wZWctZGV2ZWxAZmZtcGVnLm9yZwpodHRwczovL2ZmbXBlZy5v cmcvbWFpbG1hbi9saXN0aW5mby9mZm1wZWctZGV2ZWwKClRvIHVuc3Vic2NyaWJlLCB2aXNpdCBs aW5rIGFib3ZlLCBvciBlbWFpbApmZm1wZWctZGV2ZWwtcmVxdWVzdEBmZm1wZWcub3JnIHdpdGgg c3ViamVjdCAidW5zdWJzY3JpYmUiLgo=