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 D57EF40CD4 for ; Sat, 9 Apr 2022 18:35:05 +0000 (UTC) Received: from [127.0.1.1] (localhost [127.0.0.1]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTP id 5E6AF68B2DF; Sat, 9 Apr 2022 21:35:03 +0300 (EEST) Received: from iq.passwd.hu (iq.passwd.hu [217.27.212.140]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTP id B6D4968AF51 for ; Sat, 9 Apr 2022 21:34:56 +0300 (EEST) Received: from localhost (localhost [127.0.0.1]) by iq.passwd.hu (Postfix) with ESMTP id 5CF26E6801 for ; Sat, 9 Apr 2022 20:34:57 +0200 (CEST) X-Virus-Scanned: amavisd-new at passwd.hu Received: from iq.passwd.hu ([127.0.0.1]) by localhost (iq.passwd.hu [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id QBtk2iFexCvF for ; Sat, 9 Apr 2022 20:34:53 +0200 (CEST) Received: from iq (iq [217.27.212.140]) by iq.passwd.hu (Postfix) with ESMTPS id 5D578E598E for ; Sat, 9 Apr 2022 20:34:53 +0200 (CEST) Date: Sat, 9 Apr 2022 20:34:53 +0200 (CEST) From: Marton Balint To: FFmpeg development discussions and patches In-Reply-To: <20220409151518.38945-1-aimingoff@pc.nifty.jp> Message-ID: <536d4ee2-c767-fa5c-3543-5748c8f9686@passwd.hu> References: <20220409151518.38945-1-aimingoff@pc.nifty.jp> MIME-Version: 1.0 Content-ID: <60d2c6c6-8f1d-e130-60a4-d81fe74c2249@passwd.hu> X-Content-Filtered-By: Mailman/MimeDel 2.1.29 Subject: Re: [FFmpeg-devel] [PATCH] libavformat/mpegts.c: add: parse EIT descriptors X-BeenThere: ffmpeg-devel@ffmpeg.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: FFmpeg development discussions and patches List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Reply-To: FFmpeg development discussions and patches Content-Transfer-Encoding: base64 Content-Type: text/plain; charset="utf-8"; Format="flowed" Errors-To: ffmpeg-devel-bounces@ffmpeg.org Sender: "ffmpeg-devel" Archived-At: List-Archive: List-Post: CgpPbiBTdW4sIDEwIEFwciAyMDIyLCBUQURBTk8gVG9rdW1laSB3cm90ZToKCj4gVGhpcyBwYXRj aCBhZGQgdG8gcGFyc2UgZGVzY3JpcHRvcnMgb24gRUlUIHBhY2tldHMuCj4gVGhlIHBhdGNoIGlz IGludGVuZGVkIHRvIHNldCBpbmZvcm1hdGlvbiB0byBjdXJyZW50IHByb2dyYW0gYW5kL29yCj4g QS9WIHN0cmVhbS4KPiBPbiBKYXBhbmVzZSBJU0RCLCBzb21lIGltcG9ydGFudCAvIHVzZWZ1bCBp bmZvcm1hdGlvbiBpcyBwcm92aWRlZAo+IHZpYSBFSVQgb25seS4KPiByZWY6IEFSSUIgU1REIEIx MCBUYWJsZSA2LTEsIFNlY3Rpb24gNi4xLCBQYXJ0IDIuCgpsaWJhdmZvcm1hdCBpcyBhIGdlbmVy aWMgQS1WIGRlbXV4IGxpYnJhcnksIHRoZXJlZm9yZSB3ZSBwcm9iYWJseSBkb24ndCAKd2FudCB0 byBhZGQgZnVsbCBvciBldmVuIHBhcnRpYWwgRUlUIHBhcnNpbmcgY2FwYWJpbGl0ZXMgdG8gaXQu IEVJVCBpcyAKZXhwb3J0ZWQgYXMgYSBkYXRhIHN0cmVhbSwgdGhlIEFQSSB1c2VyIGNhbiB1c2Ug dGhhdCB0byBnZXQgYWxsIEVJVCAKcmVsYXRlZCBpbmZvcm1hdGlvbi4KClJlZ2FyZHMsCk1hcnRv bgoKPgo+IFRoaXMgcGF0Y2ggb25seSBwYXJzZSBzaG9ydCBldmVudCBkZXNjcmlwdG9yICgweDRk KSBhbmQgc2V0IHRpdGxlCj4gaW5mb3JtYXRpb24gdG8gdGhlIHByb2dyYW0uIEl0IG1heSBub3Qg YmUgdXNlZnVsLCBidXQgYSBnb29kIGV4YW1wbGUKPiBvZiBFSVQgZGVzY3JpcHRvciBjb21tb24g Zm9yIERWQiBhbmQgSVNEQi4KPgo+IE5vdGUgdGhhdCBpdCBvbmx5IHBhcnNlIEVJVCBmb3IgYWN0 dWFsIGFuZCBwcmVzZW50IFRTIHN0cmVhbSBhcyBibGxvdzoKPiAqIFBhcnNlIEVJVCB0YWJsZV9p ZCAweDRFIChhY3R1YWwgVFMgc3RyZWFtKSBvbmx5Lgo+ICByZWY6IERWQiBCbHVlIEJvb2sgQTAz OCAoRU4gMzAwIDQ2OCkgVGFibGUgMiwgU2VjdGlvbiA1LjEuMy4KPiAqIFBhcnNlIHNlY3Rpb24g bnVtYmVyIDB4MDAgb25seS4KPiAgU2VjdGlvbiBudW1iZXIgMHgwMCBpcyBwcmVzZW50IGV2ZW50 Lgo+ICBTZWN0aW9uIG51bWJlciAweDAxIGlzIGZvbGxvd2luZyAoaS5lLiwgbm90IGZvciBwcmVz ZW50IHN0cmVhbSkuCj4gIFNlY3Rpb24gbnVtYmVyIDB4MDIgb3IgbGF0ZXIgbWF5IGNvbnRhaW4g ZXZlbnQgZm9yIHByZXNlbnQgc3RyZWFtLAo+ICBidXQgaXQgaXMgaGFyZCB0byBkaXN0aW5ndWlz aCBhbmQgcmFyZWx5IHNlbnQuCj4gIHJlZjogRFZCLVNJIEd1aWRlbGluZXMgKFRTIDEwMSAyMTEp IFNlY3Rpb24gNC4xLjQuMS4KPiAqIEZpbmQgYSBwcm9ncmFtIGFzc29jaWF0ZWQgdG8gdGhlIEVJ VCBpbiBhbHJlYWR5IGluaXRpYWxpemVkCj4gIEFWUHJvZ3JhbSBhbmQgUHJvZ3JhbSBzdHJ1Y3R1 cmVzLgo+ICBJZiBubyBwcm9ncmFtIGZvdW5kLCBhYm9ydCB0byBwYXJzZSB0aGUgRUlULgo+Cj4g U2luY2UgRUlUIHBhY2tldHMgbWF5IGJlIHNlbnQgc2V2ZXJhbCB0aW1lcyBmb3IgdGhlIHNhbWUg cHJvZ3JhbSwKPiBhZGQgJ2VpdF92ZXJzaW9uJyBpbiBQcm9ncmFtIHN0cnVjdHVyZSBhbmQgaWdu b3JlIEVJVHMgd2l0aCB0aGUKPiBzYW1lIHZlcnNpb24gYXMgcHJldmlvdXNseSBwYXJzZWQgb25l Lgo+Cj4gVGhlcmUgaXMgYSB3YXJuaW5nOiAidmFyaWFibGUgJ2xhbmd1YWdlJyBzZXQgYnV0IG5v dCB1c2VkIiBhdAo+IGNvbXBpbGF0aW9uLiBJdCBzaG91bGQgYmUgcmVzb2x2ZWQgYnkgbGF0ZXIg cGF0Y2hlcy4KPgo+IEFuIHNhbXBsZSBEVkIgVFMgZmlsZSBpcyBmb3VuZCBhdDoKPiAgaHR0cHM6 Ly9zdHJlYW1zLnZpZGVvbGFuLm9yZy9zdHJlYW1zL3RzL1RlbGV0ZXh0L1RFTEVURVhUTy50cwo+ IEFmdGVyIGFwbHlpbmcgdGhpcyBwYXRjaCwgZmZwcm9iZSBURUxFVEVYVE8udHMgc2hvd3MgdGls ZSBhczoKPiAgUHJvZ3JhbSAzNDAKPiAgICBNZXRhZGF0YToKPiAgICAgIHRpdGxlICAgICAgICAg ICA6IE5BVlkgOiBJTlZFU1RJR0FDScOTTiBDUklNSU5BTAo+Cj4gTWFueSBzYW1wbGUgSVNEQiBU UyBmaWxlcyBhcmUgZm91bmQgYXQ6Cj4gIGh0dHBzOi8vc3RyZWFtcy52aWRlb2xhbi5vcmcvc3Ry ZWFtcy90cy9BUklCL2phcGFuLwo+IE1vc3Qgb2YgVFMgZmlsZXMgc2hvdyB0aGVpciB0aXRsZSBi eSBmZnByb2JlLCBidXQgdW5yZWNvZ25pemFibGUuCj4gSXQgaXMgZHVlIHRvIGVuY29kaW5nIHBy b2JsZW0gb2YgdGV4dCBzdHJpbmcuCj4gSXQgc2hvdWxkIGJlIGFsc28gcmVzb2x2ZWQgYnkgZnV0 dXJlIHBhdGNoZXMuCj4KPiBTaWduZWQtb2ZmLWJ5OiBUQURBTk8gVG9rdW1laSA8YWltaW5nb2Zm QHBjLm5pZnR5LmpwPgo+IC0tLQo+IGxpYmF2Zm9ybWF0L21wZWd0cy5jIHwgMTI5ICsrKysrKysr KysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKy0KPiAxIGZpbGUgY2hhbmdlZCwgMTI3 IGluc2VydGlvbnMoKyksIDIgZGVsZXRpb25zKC0pCj4KPiBkaWZmIC0tZ2l0IGEvbGliYXZmb3Jt YXQvbXBlZ3RzLmMgYi9saWJhdmZvcm1hdC9tcGVndHMuYwo+IGluZGV4IDQ5Zjc3MzUxMjMuLjg0 MTdkNzFmYjMgMTAwNjQ0Cj4gLS0tIGEvbGliYXZmb3JtYXQvbXBlZ3RzLmMKPiArKysgYi9saWJh dmZvcm1hdC9tcGVndHMuYwo+IEBAIC0xMjMsNiArMTIzLDggQEAgc3RydWN0IFByb2dyYW0gewo+ Cj4gICAgIC8qKiBoYXZlIHdlIGZvdW5kIHBtdCBmb3IgdGhpcyBwcm9ncmFtICovCj4gICAgIGlu dCBwbXRfZm91bmQ7Cj4gKwo+ICsgICAgaW50IGVpdF92ZXJzaW9uOwo+IH07Cj4gCj4gc3RydWN0 IE1wZWdUU0NvbnRleHQgewo+IEBAIC0zMDQsNiArMzA2LDcgQEAgc3RhdGljIHZvaWQgY2xlYXJf cHJvZ3JhbShzdHJ1Y3QgUHJvZ3JhbSAqcCkKPiAgICAgcC0+bmJfcGlkcyA9IDA7Cj4gICAgIHAt Pm5iX3N0cmVhbXMgPSAwOwo+ICAgICBwLT5wbXRfZm91bmQgPSAwOwo+ICsgICAgcC0+ZWl0X3Zl cnNpb24gPSAtMTsKPiB9Cj4gCj4gc3RhdGljIHZvaWQgY2xlYXJfcHJvZ3JhbXMoTXBlZ1RTQ29u dGV4dCAqdHMpCj4gQEAgLTI2MTYsOCArMjYxOSwxMiBAQCBzdGF0aWMgdm9pZCBwYXRfY2IoTXBl Z1RTRmlsdGVyICpmaWx0ZXIsIGNvbnN0IHVpbnQ4X3QgKnNlY3Rpb24sIGludCBzZWN0aW9uX2xl bgo+IHN0YXRpYyB2b2lkIGVpdF9jYihNcGVnVFNGaWx0ZXIgKmZpbHRlciwgY29uc3QgdWludDhf dCAqc2VjdGlvbiwgaW50IHNlY3Rpb25fbGVuKQo+IHsKPiAgICAgTXBlZ1RTQ29udGV4dCAqdHMg PSBmaWx0ZXItPnUuc2VjdGlvbl9maWx0ZXIub3BhcXVlOwo+IC0gICAgY29uc3QgdWludDhfdCAq cCwgKnBfZW5kOwo+ICsgICAgY29uc3QgdWludDhfdCAqcCwgKnBfZW5kLCAqZGVzY19saXN0X2Vu ZCwgKmRlc2NfZW5kOwo+ICAgICBTZWN0aW9uSGVhZGVyIGgxLCAqaCA9ICZoMTsKPiArICAgIEFW UHJvZ3JhbSAqcHJvZ3JhbTsKPiArICAgIHN0cnVjdCBQcm9ncmFtICpwcmc7Cj4gKyAgICBpbnQg ZGVzY19sZW47Cj4gKyAgICBjaGFyIGxhbmd1YWdlWzI1Ml07Cj4KPiAgICAgLyoKPiAgICAgICog U29tZXRpbWVzIHdlIHJlY2VpdmUgRVBHIHBhY2tldHMgYnV0IFNEVCB0YWJsZSBkbyBub3QgaGF2 ZQo+IEBAIC0yNjQ1LDYgKzI2NTIsNyBAQCBzdGF0aWMgdm9pZCBlaXRfY2IoTXBlZ1RTRmlsdGVy ICpmaWx0ZXIsIGNvbnN0IHVpbnQ4X3QgKnNlY3Rpb24sIGludCBzZWN0aW9uX2xlbgo+ICAgICAg ICAgcmV0dXJuOwo+Cj4gICAgIGF2X2xvZyh0cy0+c3RyZWFtLCBBVl9MT0dfVFJBQ0UsICJFSVQ6 IHRpZCByZWNlaXZlZCA9ICUuMDJ4XG4iLCBoLT50aWQpOwo+ICsgICAgaGV4X2R1bXBfZGVidWco dHMtPnN0cmVhbSwgc2VjdGlvbiwgc2VjdGlvbl9sZW4pOwo+Cj4gICAgIC8qKgo+ICAgICAgKiBT ZXJ2aWNlX2lkIDB4RkZGRiBpcyByZXNlcnZlZCwgaXQgaW5kaWNhdGVzIHRoYXQgdGhlIGN1cnJl bnQgRUlUIHRhYmxlCj4gQEAgLTI2NjQsNyArMjY3MiwxMjQgQEAgc3RhdGljIHZvaWQgZWl0X2Ni KE1wZWdUU0ZpbHRlciAqZmlsdGVyLCBjb25zdCB1aW50OF90ICpzZWN0aW9uLCBpbnQgc2VjdGlv bl9sZW4KPgo+ICAgICBuZXdfZGF0YV9wYWNrZXQoc2VjdGlvbiwgc2VjdGlvbl9sZW4sIHRzLT5w a3QpOwo+ICAgICB0cy0+cGt0LT5zdHJlYW1faW5kZXggPSB0cy0+ZXBnX3N0cmVhbS0+aW5kZXg7 Cj4gLSAgICB0cy0+c3RvcF9wYXJzZSA9IDE7Cj4gKwo+ICsgICAgLyogcGFyc2UgcHJlc2VudCBl dmVudCBvZiBhY3R1YWwgVFMgc3RyZWFtIG9ubHkgKi8KPiArICAgIGlmIChoLT50aWQgIT0gRUlU X1RJRCkKPiArICAgICAgICByZXR1cm47Cj4gKyAgICBpZiAoIWgtPmN1cnJlbnRfbmV4dCkKPiAr ICAgICAgICByZXR1cm47Cj4gKyAgICBpZiAodHMtPnNraXBfY2hhbmdlcykKPiArICAgICAgICBy ZXR1cm47Cj4gKwo+ICsgICAgYXZfbG9nKHRzLT5zdHJlYW0sIEFWX0xPR19UUkFDRSwgInNpZD0w eCV4IHNlY19udW09JWQvJWQgdmVyc2lvbj0lZFxuIiwKPiArICAgICAgICAgICBoLT5pZCwgaC0+ c2VjX251bSwgaC0+bGFzdF9zZWNfbnVtLCBoLT52ZXJzaW9uKTsKPiArCj4gKyAgICAvKiBEVkIt U0kgR3VpZGVsaW5lcyAoVFMgMTAxIDIxMSkgNC4xLjQuMSAqLwo+ICsgICAgLyogMHgwMCBpbmRp Y2F0ZXMgcHJlc2VudCBldmVudCwgMHgwMSBpbmRpY2F0ZXMgZm9sbG93aW5nIGV2ZW50ICovCj4g KyAgICAvKiAweDAyIGFuZCBhZnRlciBpcyBvcHRpb25hbCAqLwo+ICsgICAgaWYgKGgtPnNlY19u dW0gPiAwKQo+ICsgICAgICAgIHJldHVybjsKPiArCj4gKyAgICBwcm9ncmFtID0gTlVMTDsKPiAr ICAgIGZvciAoaW50IGkgPSAwOyBpIDwgdHMtPnN0cmVhbS0+bmJfcHJvZ3JhbXM7IGkrKykKPiAr ICAgICAgICBpZiAodHMtPnN0cmVhbS0+cHJvZ3JhbXNbaV0tPmlkID09IGgtPmlkKQo+ICsgICAg ICAgICAgICBwcm9ncmFtID0gdHMtPnN0cmVhbS0+cHJvZ3JhbXNbaV07Cj4gKyAgICBpZiAoIXBy b2dyYW0gfHwgcHJvZ3JhbS0+bmJfc3RyZWFtX2luZGV4ZXMgPD0gMCkKPiArICAgICAgICByZXR1 cm47Cj4gKwo+ICsgICAgcHJnID0gZ2V0X3Byb2dyYW0odHMsIGgtPmlkKTsKPiArICAgIGlmICgh cHJnKQo+ICsgICAgICAgIHJldHVybjsKPiArICAgIGlmIChoLT52ZXJzaW9uID09IHByZy0+ZWl0 X3ZlcnNpb24pCj4gKyAgICAgICAgcmV0dXJuOwo+ICsgICAgcHJnLT5laXRfdmVyc2lvbiA9IGgt PnZlcnNpb247Cj4gKwo+ICsgICAgLyogc2tpcCB0c19pZCwgb3JpZ2luYWxfbmV0d29ya19pZCwg bGFzdF9zZWN0aW9uX25vLCBsYXN0X3RhYmxlX2lkICovCj4gKyAgICBpZiAocCArIDYgPiBwX2Vu ZCkKPiArICAgICAgICByZXR1cm47Cj4gKyAgICBwICs9IDY7Cj4gKwo+ICsgICAgZm9yICg7Oykg ewo+ICsgICAgICAgIGludCBlaWQsIHZhbDsKPiArCj4gKyAgICAgICAgZWlkID0gZ2V0MTYoJnAs IHBfZW5kKTsKPiArICAgICAgICBpZiAoZWlkIDwgMCkKPiArICAgICAgICAgICAgYnJlYWs7Cj4g KyAgICAgICAgewo+ICsgICAgICAgICAgICBpbnQgaGgsIG1tLCBzcywgZF9oaCwgZF9tbSwgZF9z cywgcnVubmluZ19zdGF0dXM7Cj4gKyAgICAgICAgICAgIHZhbCA9IGdldDE2KCZwLCBwX2VuZCk7 IC8qIERhdGUgKi8KPiArICAgICAgICAgICAgaWYgKHZhbCA8IDApCj4gKyAgICAgICAgICAgICAg ICBicmVhazsKPiArICAgICAgICAgICAgaGggPSBnZXQ4KCZwLCBwX2VuZCk7Cj4gKyAgICAgICAg ICAgIGlmIChoaCA8IDApCj4gKyAgICAgICAgICAgICAgICBicmVhazsKPiArICAgICAgICAgICAg bW0gPSBnZXQ4KCZwLCBwX2VuZCk7Cj4gKyAgICAgICAgICAgIGlmIChtbSA8IDApCj4gKyAgICAg ICAgICAgICAgICBicmVhazsKPiArICAgICAgICAgICAgc3MgPSBnZXQ4KCZwLCBwX2VuZCk7Cj4g KyAgICAgICAgICAgIGlmIChzcyA8IDApCj4gKyAgICAgICAgICAgICAgICBicmVhazsKPiArICAg ICAgICAgICAgZF9oaCA9IGdldDgoJnAsIHBfZW5kKTsKPiArICAgICAgICAgICAgaWYgKGRfaGgg PCAwKQo+ICsgICAgICAgICAgICAgICAgYnJlYWs7Cj4gKyAgICAgICAgICAgIGRfbW0gPSBnZXQ4 KCZwLCBwX2VuZCk7Cj4gKyAgICAgICAgICAgIGlmIChkX21tIDwgMCkKPiArICAgICAgICAgICAg ICAgIGJyZWFrOwo+ICsgICAgICAgICAgICBkX3NzID0gZ2V0OCgmcCwgcF9lbmQpOwo+ICsgICAg ICAgICAgICBpZiAoZF9zcyA8IDApCj4gKyAgICAgICAgICAgICAgICBicmVhazsKPiArICAgICAg ICAgICAgZGVzY19sZW4gPSBnZXQxNigmcCwgcF9lbmQpOwo+ICsgICAgICAgICAgICBpZiAoZGVz Y19sZW4gPCAwKQo+ICsgICAgICAgICAgICAgICAgYnJlYWs7Cj4gKyAgICAgICAgICAgIHJ1bm5p bmdfc3RhdHVzID0gKGRlc2NfbGVuICYgMHhlMDAwKSA+PiA1Owo+ICsgICAgICAgICAgICBhdl9s b2codHMtPnN0cmVhbSwgQVZfTE9HX1RSQUNFLAo+ICsgICAgICAgICAgICAgICAgICAgImVpZD0w eCUwNHggc3RhcnQgJTAyeDolMDJ4OiUwMnggZHVyYXRpb24gJTAyeDolMDJ4OiUwMnggcnVubmlu Z19zdGF0dXM9JWRcbiIsCj4gKyAgICAgICAgICAgICAgICAgICBlaWQsIGhoLCBtbSwgc3MsIGRf aGgsIGRfbW0sIGRfc3MsIHJ1bm5pbmdfc3RhdHVzKTsKPiArICAgICAgICB9Cj4gKyAgICAgICAg ZGVzY19sZW4gJj0gMHgwZmZmOwo+ICsgICAgICAgIGRlc2NfbGlzdF9lbmQgPSBwICsgZGVzY19s ZW47Cj4gKyAgICAgICAgaWYgKGRlc2NfbGlzdF9lbmQgPiBwX2VuZCkKPiArICAgICAgICAgICAg YnJlYWs7Cj4gKwo+ICsgICAgICAgIGZvciAoOzspIHsKPiArICAgICAgICAgICAgaW50IGRlc2Nf dGFnOwo+ICsKPiArICAgICAgICAgICAgZGVzY190YWcgPSBnZXQ4KCZwLCBkZXNjX2xpc3RfZW5k KTsKPiArICAgICAgICAgICAgaWYgKGRlc2NfdGFnIDwgMCkKPiArICAgICAgICAgICAgICAgIGJy ZWFrOwo+ICsgICAgICAgICAgICBkZXNjX2xlbiA9IGdldDgoJnAsIGRlc2NfbGlzdF9lbmQpOwo+ ICsgICAgICAgICAgICBkZXNjX2VuZCA9IHAgKyBkZXNjX2xlbjsKPiArICAgICAgICAgICAgaWYg KGRlc2NfbGVuIDwgMCB8fCBkZXNjX2VuZCA+IGRlc2NfbGlzdF9lbmQpCj4gKyAgICAgICAgICAg ICAgICBicmVhazsKPiArCj4gKyAgICAgICAgICAgIGF2X2xvZyh0cy0+c3RyZWFtLCBBVl9MT0df REVCVUcsICJ0YWc6IDB4JTAyeCBsZW49JWRcbiIsCj4gKyAgICAgICAgICAgICAgICAgICBkZXNj X3RhZywgZGVzY19sZW4pOwo+ICsKPiArICAgICAgICAgICAgc3dpdGNoIChkZXNjX3RhZykgewo+ ICsgICAgICAgICAgICBjYXNlIDB4NGQ6ICAvKiBzaG9ydCBldmVudCBkZXNjcmlwdG9yICovCj4g KyAgICAgICAgICAgICAgICB7Cj4gKyAgICAgICAgICAgICAgICAgICAgY2hhciAqdHh0Owo+ICsK PiArICAgICAgICAgICAgICAgICAgICBpZiAoZGVzY19sZW4gPCAzKQo+ICsgICAgICAgICAgICAg ICAgICAgICAgICBicmVhazsKPiArICAgICAgICAgICAgICAgICAgICBsYW5ndWFnZVswXSA9IGdl dDgoJnAsIGRlc2NfZW5kKTsKPiArICAgICAgICAgICAgICAgICAgICBsYW5ndWFnZVsxXSA9IGdl dDgoJnAsIGRlc2NfZW5kKTsKPiArICAgICAgICAgICAgICAgICAgICBsYW5ndWFnZVsyXSA9IGdl dDgoJnAsIGRlc2NfZW5kKTsKPiArICAgICAgICAgICAgICAgICAgICBsYW5ndWFnZVszXSA9ICdc MCc7Cj4gKyAgICAgICAgICAgICAgICAgICAgdHh0ID0gZ2V0c3RyOCgmcCwgZGVzY19lbmQpOwo+ ICsgICAgICAgICAgICAgICAgICAgIGlmICghdHh0KQo+ICsgICAgICAgICAgICAgICAgICAgICAg ICBicmVhazsKPiArICAgICAgICAgICAgICAgICAgICBhdl9kaWN0X3NldCgmcHJvZ3JhbS0+bWV0 YWRhdGEsICJ0aXRsZSIsIHR4dCwgMCk7Cj4gKyAgICAgICAgICAgICAgICAgICAgYXZfZnJlZSh0 eHQpOwo+ICsgICAgICAgICAgICAgICAgfQo+ICsgICAgICAgICAgICAgICAgYnJlYWs7Cj4gKyAg ICAgICAgICAgIGRlZmF1bHQ6Cj4gKyAgICAgICAgICAgICAgICBicmVhazsKPiArICAgICAgICAg ICAgfQo+ICsgICAgICAgICAgICBwID0gZGVzY19lbmQ7Cj4gKyAgICAgICAgfQo+ICsgICAgICAg IHAgPSBkZXNjX2xpc3RfZW5kOwo+ICsgICAgfQo+IH0KPiAKPiBzdGF0aWMgdm9pZCBzZHRfY2Io TXBlZ1RTRmlsdGVyICpmaWx0ZXIsIGNvbnN0IHVpbnQ4X3QgKnNlY3Rpb24sIGludCBzZWN0aW9u X2xlbikKPiAtLSAKPiAyLjMwLjIKPgo+IF9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fCj4gZmZtcGVnLWRldmVsIG1haWxpbmcgbGlzdAo+IGZmbXBlZy1kZXZl bEBmZm1wZWcub3JnCj4gaHR0cHM6Ly9mZm1wZWcub3JnL21haWxtYW4vbGlzdGluZm8vZmZtcGVn LWRldmVsCj4KPiBUbyB1bnN1YnNjcmliZSwgdmlzaXQgbGluayBhYm92ZSwgb3IgZW1haWwKPiBm Zm1wZWctZGV2ZWwtcmVxdWVzdEBmZm1wZWcub3JnIHdpdGggc3ViamVjdCAidW5zdWJzY3JpYmUi LgpfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwpmZm1wZWct ZGV2ZWwgbWFpbGluZyBsaXN0CmZmbXBlZy1kZXZlbEBmZm1wZWcub3JnCmh0dHBzOi8vZmZtcGVn Lm9yZy9tYWlsbWFuL2xpc3RpbmZvL2ZmbXBlZy1kZXZlbAoKVG8gdW5zdWJzY3JpYmUsIHZpc2l0 IGxpbmsgYWJvdmUsIG9yIGVtYWlsCmZmbXBlZy1kZXZlbC1yZXF1ZXN0QGZmbXBlZy5vcmcgd2l0 aCBzdWJqZWN0ICJ1bnN1YnNjcmliZSIuCg==