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 AF7AA48E51 for ; Sun, 28 Jul 2024 15:21:03 +0000 (UTC) Received: from [127.0.1.1] (localhost [127.0.0.1]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTP id 34D6768D775; Sun, 28 Jul 2024 18:21:00 +0300 (EEST) Received: from mail-ej1-f52.google.com (mail-ej1-f52.google.com [209.85.218.52]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTPS id 0A00068D410 for ; Sun, 28 Jul 2024 18:20:54 +0300 (EEST) Received: by mail-ej1-f52.google.com with SMTP id a640c23a62f3a-a7a91cdcc78so166080366b.3 for ; Sun, 28 Jul 2024 08:20:54 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1722180053; x=1722784853; darn=ffmpeg.org; h=content-transfer-encoding:cc:to:subject:message-id:date:from :in-reply-to:references:mime-version:from:to:cc:subject:date :message-id:reply-to; bh=wAm1Y2Km70wdXIJazN8qAqYaC4SjYti/NqmCWxYEh8w=; b=dTkYfgR4MTLLLR3hYJB7YcDMHSLPz5kFAq9EPubcnvwJNF/Vsj5QSVLzViNk+ji07u jS7YXsFpUWSUgEO39hg1y/qusmbDTy2pDZIDoVZKR3oenPjfZqERg6BdHgJbM4D+5N8+ GaZezhBJPxxHoUcmzw2AX7k0FGeKHL/Yy6CAkD1UlT7lShso4I24Ttw3ry5n+wViN8gs dfMJAgqZvjRaYFeDQ+t6NJcCw8c/KvJdMA8dlvAMEKhTvgF2yZFrnKQOSBMm9froi+Ik fFfOyxk52ya29roBT74RBl6pb25xg9T4qNJU167oBwPi4X/jeq4CdUvxzIzOh7mt0UgI NyEQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1722180053; x=1722784853; h=content-transfer-encoding:cc: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=wAm1Y2Km70wdXIJazN8qAqYaC4SjYti/NqmCWxYEh8w=; b=PqZMnYQ6WpAo3TaOW98bTmbZu5SJLdWIC+9PA5veBi7f09Dtv3d7kWPNl7LqiTanmd /28AJuzvCeKBdx+q9Z2VjtVI66uwDDuKhaQnDDjfGcPIBoB4uAQH4cpYJs8tt1ed2Q71 /f9wBLklGUgum+fDwzdn0zSa1f64KPp3PysnjzgYCS5nVB/r1C03TVU82lLLvPkIi3Ln lAXfbXF/jjgJ3o4HsRcNtrn3WdQfdMdHEIyryoDtlaKUdwJMUS/pA3WbxuoHJjt3jPTm H2erXBcq33xvPgQfi7UXk6FXMseh2BlWwlvcdl+nreoNWbRG6mMM2ySeJiqzVh12FAQT /1rQ== X-Gm-Message-State: AOJu0Yy3k6nG4MWN3j5Bn3qpr1uElkXLbFORMbVRHdSORCJ2cSVCemZ8 CR6p5ET4qvPjRQ0McZwYUO1wOTYp9G1GpMz6oVWpitfSjxe6G8Hge8izz6fP6czOVdGDLi+DBQN 9UykNIppJE/nXNBDv8YEcwss8dkNuDA== X-Google-Smtp-Source: AGHT+IEgnbojnZWZgBDy6vAdy2c1lcnlj+f0tOrj84ZML62x6Qji6dne6hB2GlRoDHUPANypHzcbKfvyKmfXi7IaVQI= X-Received: by 2002:a50:9ee6:0:b0:5a7:464a:abf with SMTP id 4fb4d7f45d1cf-5b02317d025mr4187521a12.24.1722180052724; Sun, 28 Jul 2024 08:20:52 -0700 (PDT) MIME-Version: 1.0 References: <20240728073445.725161-1-marth64@proxyid.net> <20240728073445.725161-3-marth64@proxyid.net> In-Reply-To: <20240728073445.725161-3-marth64@proxyid.net> From: Sean McGovern Date: Sun, 28 Jul 2024 11:20:41 -0400 Message-ID: To: FFmpeg development discussions and patches Subject: Re: [FFmpeg-devel] [PATCH 2/7] avformat/dvdvideodec: Implement seeking 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 Cc: Marth64 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: SGkgTWFydGg2NCwKCk9uIFN1biwgSnVsIDI4LCAyMDI0IGF0IDM6MzXigK9BTSBNYXJ0aDY0IDxt YXJ0aDY0QHByb3h5aWQubmV0PiB3cm90ZToKPgo+IFBsYXllciBhcHBsaWNhdGlvbnMgY2FuIG5v dyBlbmpveSBzZWVraW5nIHdoaWxlIHBsYXlpbmcgYmFjawo+IGEgdGl0bGUuIEFjY3VyYWN5IGlz IGF0IHRoZSBtZXJjeSBvZiB3aGF0IGxpYmR2ZG5hdiBvZmZlcnMsCj4gd2hpY2ggaXMgY3VycmVu dGx5IGR2ZG5hdl9qdW1wX3RvX3NlY3Rvcl9ieV90aW1lKCkuCj4KPiBTaWduZWQtb2ZmLWJ5OiBN YXJ0aDY0IDxtYXJ0aDY0QHByb3h5aWQubmV0Pgo+IC0tLQo+ICBsaWJhdmZvcm1hdC9kdmR2aWRl b2RlYy5jIHwgOTMgKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKy0tLS0tCj4gIDEg ZmlsZSBjaGFuZ2VkLCA4MiBpbnNlcnRpb25zKCspLCAxMSBkZWxldGlvbnMoLSkKPgo+IGRpZmYg LS1naXQgYS9saWJhdmZvcm1hdC9kdmR2aWRlb2RlYy5jIGIvbGliYXZmb3JtYXQvZHZkdmlkZW9k ZWMuYwo+IGluZGV4IGU3NDUxNjVlMDAuLmU4MzAxYjExNzMgMTAwNjQ0Cj4gLS0tIGEvbGliYXZm b3JtYXQvZHZkdmlkZW9kZWMuYwo+ICsrKyBiL2xpYmF2Zm9ybWF0L2R2ZHZpZGVvZGVjLmMKPiBA QCAtMTEwLDYgKzExMCw3IEBAIHR5cGVkZWYgc3RydWN0IERWRFZpZGVvUGxheWJhY2tTdGF0ZSB7 Cj4gICAgICBpbnQgICAgICAgICAgICAgICAgICAgICAgICAgaW5fcGdjOyAgICAgICAgICAgICAv KiBpZiBvdXIgbmF2aWdhdG9yIGlzIGluIHRoZSBQR0MgKi8KPiAgICAgIGludCAgICAgICAgICAg ICAgICAgICAgICAgICBpbl9wczsgICAgICAgICAgICAgIC8qIGlmIG91ciBuYXZpZ2F0b3IgaXMg aW4gdGhlIHByb2dyYW0gc3RyZWFtICovCj4gICAgICBpbnQgICAgICAgICAgICAgICAgICAgICAg ICAgaW5fdnRzOyAgICAgICAgICAgICAvKiBpZiBvdXIgbmF2aWdhdG9yIGlzIGluIHRoZSBWVFMg Ki8KPiArICAgIGludCAgICAgICAgICAgICAgICAgICAgICAgICBpc19zZWVraW5nOyAgICAgICAg IC8qIHJlbGF4IG5hdmlnYXRpb24gcGF0aCB3aGlsZSBzZWVraW5nICovCj4gICAgICBpbnQ2NF90 ICAgICAgICAgICAgICAgICAgICAgbmF2X3B0czsgICAgICAgICAgICAvKiBQVFMgYWNjb3JkaW5n IHRvIElGTywgbm90IGZyYW1lLWFjY3VyYXRlICovCj4gICAgICB1aW50NjRfdCAgICAgICAgICAg ICAgICAgICAgcGdjX2R1cmF0aW9uX2VzdDsgICAvKiBlc3RpbWF0ZWQgZHVyYXRpb24gYXMgcmVw b3J0ZWQgYnkgSUZPICovCj4gICAgICB1aW50NjRfdCAgICAgICAgICAgICAgICAgICAgcGdjX2Vs YXBzZWQ7ICAgICAgICAvKiB0aGUgZWxhcHNlZCB0aW1lIG9mIHRoZSBQR0MsIGNlbGwtcmVsYXRp dmUgKi8KPiBAQCAtNzIyLDcgKzcyMyw4IEBAIHN0YXRpYyBpbnQgZHZkdmlkZW9fcGxheV9uZXh0 X3BzX2Jsb2NrKEFWRm9ybWF0Q29udGV4dCAqcywgRFZEVmlkZW9QbGF5YmFja1N0YXRlCj4KPiAg ICAgICAgICAgICAgICAgICAgICAgICAgc3RhdGUtPmluX3BnYyA9IDE7Cj4gICAgICAgICAgICAg ICAgICAgICAgfQo+IC0gICAgICAgICAgICAgICAgfSBlbHNlIGlmIChzdGF0ZS0+Y2VsbG4gPj0g ZV9jZWxsLT5jZWxsTiB8fCBzdGF0ZS0+cGduID4gY3VyX3Bnbikgewo+ICsgICAgICAgICAgICAg ICAgfSBlbHNlIGlmICghc3RhdGUtPmlzX3NlZWtpbmcgJiYKPiArICAgICAgICAgICAgICAgICAg ICAgICAgICAgKHN0YXRlLT5jZWxsbiA+PSBlX2NlbGwtPmNlbGxOIHx8IHN0YXRlLT5wZ24gPiBj dXJfcGduKSkgewo+ICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBBVkVSUk9SX0VPRjsKPiAg ICAgICAgICAgICAgICAgIH0KPgo+IEBAIC03MzUsNyArNzM3LDcgQEAgc3RhdGljIGludCBkdmR2 aWRlb19wbGF5X25leHRfcHNfYmxvY2soQVZGb3JtYXRDb250ZXh0ICpzLCBEVkRWaWRlb1BsYXli YWNrU3RhdGUKPiAgICAgICAgICAgICAgICAgIGlmICghc3RhdGUtPmluX3BnYykKPiAgICAgICAg ICAgICAgICAgICAgICBjb250aW51ZTsKPgo+IC0gICAgICAgICAgICAgICAgaWYgKChzdGF0ZS0+ cHR0ID4gMCAmJiBzdGF0ZS0+cHR0ID4gY3VyX3B0dCkgfHwKPiArICAgICAgICAgICAgICAgIGlm ICgoIXN0YXRlLT5pc19zZWVraW5nICYmIHN0YXRlLT5wdHQgPiAwICYmIHN0YXRlLT5wdHQgPiBj dXJfcHR0KSB8fAo+ICAgICAgICAgICAgICAgICAgICAgIChjLT5vcHRfY2hhcHRlcl9lbmQgPiAw ICYmIGN1cl9wdHQgPiBjLT5vcHRfY2hhcHRlcl9lbmQpKSB7Cj4gICAgICAgICAgICAgICAgICAg ICAgcmV0dXJuIEFWRVJST1JfRU9GOwo+ICAgICAgICAgICAgICAgICAgfQo+IEBAIC04MDcsMTMg KzgwOSwxNSBAQCBzdGF0aWMgaW50IGR2ZHZpZGVvX3BsYXlfbmV4dF9wc19ibG9jayhBVkZvcm1h dENvbnRleHQgKnMsIERWRFZpZGVvUGxheWJhY2tTdGF0ZQo+ICAgICAgICAgICAgICAgICAgICAg IHJldHVybiBBVkVSUk9SX0lOUFVUX0NIQU5HRUQ7Cj4gICAgICAgICAgICAgICAgICB9Cj4KPiAt ICAgICAgICAgICAgICAgIG1lbWNweShidWYsICZuYXZfYnVmLCBuYXZfbGVuKTsKPiAtCj4gICAg ICAgICAgICAgICAgICBpZiAoc3RhdGUtPnBnbiAhPSBjdXJfcGduKQo+ICAgICAgICAgICAgICAg ICAgICAgIGF2X2xvZyhzLCBBVl9MT0dfV0FSTklORywgIlVuZXhwZWN0ZWQgUEcgY2hhbmdlIChl eHBlY3RlZD0lZCBhY3R1YWw9JWQpOyAiCj4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAidGhpcyBjb3VsZCBiZSBkdWUgdG8gYSBtaXNzZWQgTkFWIHBhY2tl dFxuIiwKPiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0 YXRlLT5wZ24sIGN1cl9wZ24pOwo+Cj4gKyAgICAgICAgICAgICAgICBtZW1jcHkoYnVmLCAmbmF2 X2J1ZiwgbmF2X2xlbik7Cj4gKwo+ICsgICAgICAgICAgICAgICAgc3RhdGUtPmlzX3NlZWtpbmcg PSAwOwo+ICsKPiAgICAgICAgICAgICAgICAgIHJldHVybiBuYXZfbGVuOwo+ICAgICAgICAgICAg ICBjYXNlIERWRE5BVl9XQUlUOgo+ICAgICAgICAgICAgICAgICAgaWYgKGR2ZG5hdl93YWl0X3Nr aXAoc3RhdGUtPmR2ZG5hdikgIT0gRFZETkFWX1NUQVRVU19PSykgewo+IEBAIC0xNjU5LDE3ICsx NjYzLDE3IEBAIHN0YXRpYyBpbnQgZHZkdmlkZW9fcmVhZF9wYWNrZXQoQVZGb3JtYXRDb250ZXh0 ICpzLCBBVlBhY2tldCAqcGt0KQo+ICAgICAgfQo+Cj4gICAgICBhdl9sb2cocywgQVZfTE9HX1RS QUNFLCAic3Q9JWQgcHRzPSUiIFBSSWQ2NCAiIGR0cz0lIiBQUklkNjQgIiAiCj4gLSAgICAgICAg ICAgICAgICAgICAgICAgICAgICAicHRzX29mZnNldD0lIiBQUklkNjQgIiBmaXJzdF9wdHM9JSIg UFJJZDY0ICJcbiIsCj4gKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAicHRzX29mZnNldD0l IiBQUklkNjQgIiBmaXJzdF9wdHM9JSIgUFJJZDY0ICIgaXNfc2Vla2luZz0lZFxuIiwKPiAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIHBrdC0+c3RyZWFtX2luZGV4LCBwa3QtPnB0cywgcGt0 LT5kdHMsCj4gLSAgICAgICAgICAgICAgICAgICAgICAgICAgICBjLT5wdHNfb2Zmc2V0KTsKPiAr ICAgICAgICAgICAgICAgICAgICAgICAgICAgIGMtPnB0c19vZmZzZXQsIGMtPmZpcnN0X3B0cywg Yy0+cGxheV9zdGF0ZS5pc19zZWVraW5nKTsKPgo+ICAgICAgcmV0dXJuIDA7Cj4KPiAgZGlzY2Fy ZDoKPiAgICAgIGF2X2xvZyhzLCBBVl9MT0dfVkVSQk9TRSwgIkRpc2NhcmRpbmcgcGFja2V0IEAg c3Q9JWQgcHRzPSUiIFBSSWQ2NCAiIGR0cz0lIiBQUklkNjQgIiAiCj4gLSAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICJzdF9tYXRjaGVkPSVkXG4iLAo+ICsgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAic3RfbWF0Y2hlZD0lZCBpc19zZWVraW5nPSVkXG4iLAo+ICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICBzdF9tYXRjaGVkID8gcGt0LT5zdHJlYW1faW5kZXggOiAtMSwg cGt0LT5wdHMsIHBrdC0+ZHRzLAo+IC0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdF9t YXRjaGVkKTsKPiArICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RfbWF0Y2hlZCwgYy0+ cGxheV9zdGF0ZS5pc19zZWVraW5nKTsKPgo+ICAgICAgcmV0dXJuIEZGRVJST1JfUkVETzsKPiAg fQo+IEBAIC0xNjkwLDYgKzE2OTQsNzIgQEAgc3RhdGljIGludCBkdmR2aWRlb19jbG9zZShBVkZv cm1hdENvbnRleHQgKnMpCj4gICAgICByZXR1cm4gMDsKPiAgfQo+Cj4gK3N0YXRpYyBpbnQgZHZk dmlkZW9fcmVhZF9zZWVrKEFWRm9ybWF0Q29udGV4dCAqcywgaW50IHN0cmVhbV9pbmRleCwgaW50 NjRfdCB0aW1lc3RhbXAsIGludCBmbGFncykKPiArewo+ICsgICAgRFZEVmlkZW9EZW11eENvbnRl eHQgKmMgPSBzLT5wcml2X2RhdGE7Cj4gKyAgICBpbnQgICAgIHJldDsKPiArICAgIGludDY0X3Qg bmV3X25hdl9wdHM7Cj4gKyAgICBwY2lfdCogIG5ld19uYXZfcGNpOwo+ICsgICAgZHNpX3QqICBu ZXdfbmF2X2RzaTsKPiArCj4gKyAgICBpZiAoYy0+b3B0X21lbnUgfHwgYy0+b3B0X2NoYXB0ZXJf c3RhcnQgPiAxKSB7Cj4gKyAgICAgICAgYXZfbG9nKHMsIEFWX0xPR19FUlJPUiwgIlNlZWtpbmcg aXMgbm90IGNvbXBhdGlibGUgd2l0aCBtZW51cyBvciBjaGFwdGVyIGV4dHJhY3Rpb25cbiIpOwo+ ICsKPiArICAgICAgICByZXR1cm4gQVZFUlJPUl9QQVRDSFdFTENPTUU7Cj4gKyAgICB9Cj4gKwo+ ICsgICAgaWYgKChmbGFncyAmIEFWU0VFS19GTEFHX0JZVEUpKQo+ICsgICAgICAgIHJldHVybiBB VkVSUk9SKEVOT1NZUyk7Cj4gKwo+ICsgICAgaWYgKHRpbWVzdGFtcCA8IDApCj4gKyAgICAgICAg cmV0dXJuIEFWRVJST1IoRUlOVkFMKTsKPiArCj4gKyAgICBpZiAoIWMtPnNlZWtfd2FybmVkKSB7 Cj4gKyAgICAgICAgYXZfbG9nKHMsIEFWX0xPR19XQVJOSU5HLCAiU2Vla2luZyBpcyBpbmhlcmVu dGx5IHVucmVsaWFibGUgYW5kIHdpbGwgcmVzdWx0ICIKPiArICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICJpbiBpbXByZWNpc2UgdGltZWNvZGVzIGZyb20gdGhpcyBwb2ludFxuIik7 Cj4gKyAgICAgICAgYy0+c2Vla193YXJuZWQgPSAxOwo+ICsgICAgfQo+ICsKPiArICAgIC8qIFhY WChQQVRDSFdFTENPTUUpOiB1c2UgZHZkbmF2X2p1bXBfdG9fc2VjdG9yX2J5X3RpbWUoYy0+cGxh eV9zdGF0ZS5kdmRuYXYsIHRpbWVzdGFtcCwgMCkKPiArICAgICAqIHdoZW4gaXQgaXMgYXZhaWxh YmxlIGluIGEgcmVsZWFzZWQgdmVyc2lvbiBvZiBsaWJkdmRuYXY7IGl0IGlzIG1vcmUgYWNjdXJh dGUgKi8KPiArICAgIGlmIChkdmRuYXZfdGltZV9zZWFyY2goYy0+cGxheV9zdGF0ZS5kdmRuYXYs IHRpbWVzdGFtcCkgIT0gRFZETkFWX1NUQVRVU19PSykgewo+ICsgICAgICAgIGF2X2xvZyhzLCBB Vl9MT0dfRVJST1IsICJsaWJkdmRuYXY6IHNlZWtpbmcgdG8gJSIgUFJJZDY0ICIgZmFpbGVkXG4i LCB0aW1lc3RhbXApOwo+ICsKPiArICAgICAgICByZXR1cm4gQVZFUlJPUl9FWFRFUk5BTDsKPiAr ICAgIH0KCkkgdGhpbmsgYXZwcml2X3JlcG9ydF9taXNzaW5nX2ZlYXR1cmUoKSBtaWdodCBiZSBt b3JlIGFwcHJvcHJpYXRlIGhlcmUuCgpBbHNvLCBkb2VzIHRoaXMgYnVpbGQgcHJvcGVybHkgaWYg YSB1c2VyIGRvZXMgbm90IGhhdmUgbGliZHZkbmF2PwoKPiArCj4gKyAgICBuZXdfbmF2X3B0cyA9 IGR2ZG5hdl9nZXRfY3VycmVudF90aW1lICAgKGMtPnBsYXlfc3RhdGUuZHZkbmF2KTsKPiArICAg IG5ld19uYXZfcGNpID0gZHZkbmF2X2dldF9jdXJyZW50X25hdl9wY2koYy0+cGxheV9zdGF0ZS5k dmRuYXYpOwo+ICsgICAgbmV3X25hdl9kc2kgPSBkdmRuYXZfZ2V0X2N1cnJlbnRfbmF2X2RzaShj LT5wbGF5X3N0YXRlLmR2ZG5hdik7Cj4gKwo+ICsgICAgaWYgKG5ld19uYXZfcGNpID09IE5VTEwg fHwgbmV3X25hdl9kc2kgPT0gTlVMTCkgewo+ICsgICAgICAgIGF2X2xvZyhzLCBBVl9MT0dfRVJS T1IsICJJbnZhbGlkIE5BViBwYWNrZXQgYWZ0ZXIgc2Vla2luZ1xuIik7Cj4gKwo+ICsgICAgICAg IHJldHVybiBBVkVSUk9SX0lOVkFMSUREQVRBOwo+ICsgICAgfQo+ICsKPiArICAgIGMtPnBsYXlf c3RhdGUuaW5fcGdjICAgICAgPSAxOwo+ICsgICAgYy0+cGxheV9zdGF0ZS5pbl9wcyAgICAgICA9 IDA7Cj4gKyAgICBjLT5wbGF5X3N0YXRlLmlzX3NlZWtpbmcgID0gMTsKPiArICAgIGMtPnBsYXlf c3RhdGUubmF2X3B0cyAgICAgPSB0aW1lc3RhbXA7Cj4gKyAgICBjLT5wbGF5X3N0YXRlLnB0bV9v ZmZzZXQgID0gdGltZXN0YW1wOwo+ICsgICAgYy0+cGxheV9zdGF0ZS5wdG1fZGlzY29udCA9IDA7 Cj4gKyAgICBjLT5wbGF5X3N0YXRlLnZvYnVfZV9wdG0gID0gbmV3X25hdl9wY2ktPnBjaV9naS52 b2J1X3NfcHRtOwo+ICsKPiArICAgIGMtPmZpcnN0X3B0cyAgICAgICAgICAgICAgPSAwOwo+ICsg ICAgYy0+cGxheV9zdGFydGVkICAgICAgICAgICA9IDA7Cj4gKyAgICBjLT5wdHNfb2Zmc2V0ICAg ICAgICAgICAgID0gdGltZXN0YW1wOwo+ICsgICAgYy0+c3ViZGVtdXhfcmVzZXQgICAgICAgICA9 IDA7Cj4gKwo+ICsgICAgaWYgKChyZXQgPSBkdmR2aWRlb19zdWJkZW11eF9yZXNldChzKSkgPCAw KQo+ICsgICAgICAgIHJldHVybiByZXQ7Cj4gKwo+ICsgICAgYXZfbG9nKHMsIEFWX0xPR19ERUJV RywgInNlZWtpbmc6IHJlcXVlc3RlZF9uYXZfcHRzPSUiIFBSSWQ2NCAiIG5ld19uYXZfcHRzPSUi IFBSSWQ2NCAiXG4iLAo+ICsgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGltZXN0YW1wLCBu ZXdfbmF2X3B0cyk7Cj4gKwo+ICsgICAgcmV0dXJuIDA7Cj4gK30KPiArCj4gICNkZWZpbmUgT0ZG U0VUKHgpIG9mZnNldG9mKERWRFZpZGVvRGVtdXhDb250ZXh0LCB4KQo+ICBzdGF0aWMgY29uc3Qg QVZPcHRpb24gZHZkdmlkZW9fb3B0aW9uc1tdID0gewo+ICAgICAgeyJhbmdsZSIsICAgICAgICAg ICAicGxheWJhY2sgYW5nbGUgbnVtYmVyIiwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICBPRkZTRVQob3B0X2FuZ2xlKSwgICAgICAgICAgQVZfT1BUX1RZUEVfSU5ULCAgICB7IC5p NjQ9MSB9LCAgICAgMSwgICAgICAgICAgOSwgICAgICAgICBBVl9PUFRfRkxBR19ERUNPRElOR19Q QVJBTSB9LAo+IEBAIC0xNzE4LDExICsxNzg4LDEyIEBAIGNvbnN0IEZGSW5wdXRGb3JtYXQgZmZf ZHZkdmlkZW9fZGVtdXhlciA9IHsKPiAgICAgIC5wLm5hbWUgICAgICAgICA9ICJkdmR2aWRlbyIs Cj4gICAgICAucC5sb25nX25hbWUgICAgPSBOVUxMX0lGX0NPTkZJR19TTUFMTCgiRFZELVZpZGVv IiksCj4gICAgICAucC5wcml2X2NsYXNzICAgPSAmZHZkdmlkZW9fY2xhc3MsCj4gLSAgICAucC5m bGFncyAgICAgICAgPSBBVkZNVF9OT0ZJTEUgfCBBVkZNVF9TSE9XX0lEUyB8IEFWRk1UX1RTX0RJ U0NPTlQgfAo+IC0gICAgICAgICAgICAgICAgICAgICAgQVZGTVRfTk9fQllURV9TRUVLIHwgQVZG TVRfTk9HRU5TRUFSQ0ggfCBBVkZNVF9OT0JJTlNFQVJDSCwKPiArICAgIC5wLmZsYWdzICAgICAg ICA9IEFWRk1UX1NIT1dfSURTIHwgQVZGTVRfVFNfRElTQ09OVCAgIHwgQVZGTVRfU0VFS19UT19Q VFMgfAo+ICsgICAgICAgICAgICAgICAgICAgICAgQVZGTVRfTk9GSUxFICAgfCBBVkZNVF9OT19C WVRFX1NFRUsgfCBBVkZNVF9OT0dFTlNFQVJDSCB8IEFWRk1UX05PQklOU0VBUkNILAo+ICAgICAg LnByaXZfZGF0YV9zaXplID0gc2l6ZW9mKERWRFZpZGVvRGVtdXhDb250ZXh0KSwKPiAgICAgIC5m bGFnc19pbnRlcm5hbCA9IEZGX0lORk1UX0ZMQUdfSU5JVF9DTEVBTlVQLAo+ICAgICAgLnJlYWRf Y2xvc2UgICAgID0gZHZkdmlkZW9fY2xvc2UsCj4gICAgICAucmVhZF9oZWFkZXIgICAgPSBkdmR2 aWRlb19yZWFkX2hlYWRlciwKPiAtICAgIC5yZWFkX3BhY2tldCAgICA9IGR2ZHZpZGVvX3JlYWRf cGFja2V0Cj4gKyAgICAucmVhZF9wYWNrZXQgICAgPSBkdmR2aWRlb19yZWFkX3BhY2tldCwKPiAr ICAgIC5yZWFkX3NlZWsgICAgICA9IGR2ZHZpZGVvX3JlYWRfc2Vlawo+ICB9Owo+IC0tCj4gMi4z NC4xCj4KPiBfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwo+ IGZmbXBlZy1kZXZlbCBtYWlsaW5nIGxpc3QKPiBmZm1wZWctZGV2ZWxAZmZtcGVnLm9yZwo+IGh0 dHBzOi8vZmZtcGVnLm9yZy9tYWlsbWFuL2xpc3RpbmZvL2ZmbXBlZy1kZXZlbAo+Cj4gVG8gdW5z dWJzY3JpYmUsIHZpc2l0IGxpbmsgYWJvdmUsIG9yIGVtYWlsCj4gZmZtcGVnLWRldmVsLXJlcXVl c3RAZmZtcGVnLm9yZyB3aXRoIHN1YmplY3QgInVuc3Vic2NyaWJlIi4KCi0tIFNlYW4gTWNHb3Zl cm4KX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18KZmZtcGVn LWRldmVsIG1haWxpbmcgbGlzdApmZm1wZWctZGV2ZWxAZmZtcGVnLm9yZwpodHRwczovL2ZmbXBl Zy5vcmcvbWFpbG1hbi9saXN0aW5mby9mZm1wZWctZGV2ZWwKClRvIHVuc3Vic2NyaWJlLCB2aXNp dCBsaW5rIGFib3ZlLCBvciBlbWFpbApmZm1wZWctZGV2ZWwtcmVxdWVzdEBmZm1wZWcub3JnIHdp dGggc3ViamVjdCAidW5zdWJzY3JpYmUiLgo=