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 034C540CAE for ; Sat, 9 Apr 2022 15:16:47 +0000 (UTC) Received: from [127.0.1.1] (localhost [127.0.0.1]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTP id D563268B26D; Sat, 9 Apr 2022 18:16:44 +0300 (EEST) Received: from conssluserg-01.nifty.com (conssluserg-01.nifty.com [210.131.2.80]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTPS id 35E5B68A785 for ; Sat, 9 Apr 2022 18:16:35 +0300 (EEST) Received: from osamu-pc.kimura.local (M106073025034.v4.enabler.ne.jp [106.73.25.34]) (authenticated) by conssluserg-01.nifty.com with ESMTP id 239FGBE1019530; Sun, 10 Apr 2022 00:16:16 +0900 DKIM-Filter: OpenDKIM Filter v2.10.3 conssluserg-01.nifty.com 239FGBE1019530 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=nifty.com; s=dec2015msa; t=1649517376; bh=jdD3sfGVyWJ8KiL2qZOoyLLO/jK2l0hUDEizHp7JUFo=; h=From:To:Cc:Subject:Date:From; b=Od9duvaSMlyNgLbnqfTlsR6tB0G/1s/ZUDikesC/gZY1fVJdAz+GiMhWChcl8RTK7 me3LiqeXoYDM/dV2ot9jcEFNDxJDd9OZ4bxeCAj91HPBzimTaY6Avck0PjkL8Tr5wQ VJhQ9OVDjerC3R2mBGbvzUbHPs15DewQ810y/VvpvpnBdYln0m5UXiDwYrjc3pSjHO f1PMcZg7yAz+0wLfPDY2Zy+XNyNcCYl5FXf7SNWaA8EtYbfmE2r2evuM/E12xl4p+S 9ivPBASVvdPBryzAbveDQoDeLmprVdQ4rr9vv91oOoDBgzlTj57oBaXFML/WlQBWdm J5ZTK39gD2rkw== X-Nifty-SrcIP: [106.73.25.34] From: TADANO Tokumei To: ffmpeg-devel@ffmpeg.org Date: Sun, 10 Apr 2022 00:15:18 +0900 Message-Id: <20220409151518.38945-1-aimingoff@pc.nifty.jp> X-Mailer: git-send-email 2.30.2 MIME-Version: 1.0 Subject: [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 Cc: TADANO Tokumei 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: VGhpcyBwYXRjaCBhZGQgdG8gcGFyc2UgZGVzY3JpcHRvcnMgb24gRUlUIHBhY2tldHMuClRoZSBw YXRjaCBpcyBpbnRlbmRlZCB0byBzZXQgaW5mb3JtYXRpb24gdG8gY3VycmVudCBwcm9ncmFtIGFu ZC9vcgpBL1Ygc3RyZWFtLgpPbiBKYXBhbmVzZSBJU0RCLCBzb21lIGltcG9ydGFudCAvIHVzZWZ1 bCBpbmZvcm1hdGlvbiBpcyBwcm92aWRlZAp2aWEgRUlUIG9ubHkuCnJlZjogQVJJQiBTVEQgQjEw IFRhYmxlIDYtMSwgU2VjdGlvbiA2LjEsIFBhcnQgMi4KClRoaXMgcGF0Y2ggb25seSBwYXJzZSBz aG9ydCBldmVudCBkZXNjcmlwdG9yICgweDRkKSBhbmQgc2V0IHRpdGxlCmluZm9ybWF0aW9uIHRv IHRoZSBwcm9ncmFtLiBJdCBtYXkgbm90IGJlIHVzZWZ1bCwgYnV0IGEgZ29vZCBleGFtcGxlCm9m IEVJVCBkZXNjcmlwdG9yIGNvbW1vbiBmb3IgRFZCIGFuZCBJU0RCLgoKTm90ZSB0aGF0IGl0IG9u bHkgcGFyc2UgRUlUIGZvciBhY3R1YWwgYW5kIHByZXNlbnQgVFMgc3RyZWFtIGFzIGJsbG93Ogoq IFBhcnNlIEVJVCB0YWJsZV9pZCAweDRFIChhY3R1YWwgVFMgc3RyZWFtKSBvbmx5LgogIHJlZjog RFZCIEJsdWUgQm9vayBBMDM4IChFTiAzMDAgNDY4KSBUYWJsZSAyLCBTZWN0aW9uIDUuMS4zLgoq IFBhcnNlIHNlY3Rpb24gbnVtYmVyIDB4MDAgb25seS4KICBTZWN0aW9uIG51bWJlciAweDAwIGlz IHByZXNlbnQgZXZlbnQuCiAgU2VjdGlvbiBudW1iZXIgMHgwMSBpcyBmb2xsb3dpbmcgKGkuZS4s IG5vdCBmb3IgcHJlc2VudCBzdHJlYW0pLgogIFNlY3Rpb24gbnVtYmVyIDB4MDIgb3IgbGF0ZXIg bWF5IGNvbnRhaW4gZXZlbnQgZm9yIHByZXNlbnQgc3RyZWFtLAogIGJ1dCBpdCBpcyBoYXJkIHRv IGRpc3Rpbmd1aXNoIGFuZCByYXJlbHkgc2VudC4KICByZWY6IERWQi1TSSBHdWlkZWxpbmVzIChU UyAxMDEgMjExKSBTZWN0aW9uIDQuMS40LjEuCiogRmluZCBhIHByb2dyYW0gYXNzb2NpYXRlZCB0 byB0aGUgRUlUIGluIGFscmVhZHkgaW5pdGlhbGl6ZWQKICBBVlByb2dyYW0gYW5kIFByb2dyYW0g c3RydWN0dXJlcy4KICBJZiBubyBwcm9ncmFtIGZvdW5kLCBhYm9ydCB0byBwYXJzZSB0aGUgRUlU LgoKU2luY2UgRUlUIHBhY2tldHMgbWF5IGJlIHNlbnQgc2V2ZXJhbCB0aW1lcyBmb3IgdGhlIHNh bWUgcHJvZ3JhbSwKYWRkICdlaXRfdmVyc2lvbicgaW4gUHJvZ3JhbSBzdHJ1Y3R1cmUgYW5kIGln bm9yZSBFSVRzIHdpdGggdGhlCnNhbWUgdmVyc2lvbiBhcyBwcmV2aW91c2x5IHBhcnNlZCBvbmUu CgpUaGVyZSBpcyBhIHdhcm5pbmc6ICJ2YXJpYWJsZSAnbGFuZ3VhZ2UnIHNldCBidXQgbm90IHVz ZWQiIGF0CmNvbXBpbGF0aW9uLiBJdCBzaG91bGQgYmUgcmVzb2x2ZWQgYnkgbGF0ZXIgcGF0Y2hl cy4KCkFuIHNhbXBsZSBEVkIgVFMgZmlsZSBpcyBmb3VuZCBhdDoKICBodHRwczovL3N0cmVhbXMu dmlkZW9sYW4ub3JnL3N0cmVhbXMvdHMvVGVsZXRleHQvVEVMRVRFWFRPLnRzCkFmdGVyIGFwbHlp bmcgdGhpcyBwYXRjaCwgZmZwcm9iZSBURUxFVEVYVE8udHMgc2hvd3MgdGlsZSBhczoKICBQcm9n cmFtIDM0MAogICAgTWV0YWRhdGE6CiAgICAgIHRpdGxlICAgICAgICAgICA6IE5BVlkgOiBJTlZF U1RJR0FDScOTTiBDUklNSU5BTAoKTWFueSBzYW1wbGUgSVNEQiBUUyBmaWxlcyBhcmUgZm91bmQg YXQ6CiAgaHR0cHM6Ly9zdHJlYW1zLnZpZGVvbGFuLm9yZy9zdHJlYW1zL3RzL0FSSUIvamFwYW4v Ck1vc3Qgb2YgVFMgZmlsZXMgc2hvdyB0aGVpciB0aXRsZSBieSBmZnByb2JlLCBidXQgdW5yZWNv Z25pemFibGUuCkl0IGlzIGR1ZSB0byBlbmNvZGluZyBwcm9ibGVtIG9mIHRleHQgc3RyaW5nLgpJ dCBzaG91bGQgYmUgYWxzbyByZXNvbHZlZCBieSBmdXR1cmUgcGF0Y2hlcy4KClNpZ25lZC1vZmYt Ynk6IFRBREFOTyBUb2t1bWVpIDxhaW1pbmdvZmZAcGMubmlmdHkuanA+Ci0tLQogbGliYXZmb3Jt YXQvbXBlZ3RzLmMgfCAxMjkgKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysr KysrLQogMSBmaWxlIGNoYW5nZWQsIDEyNyBpbnNlcnRpb25zKCspLCAyIGRlbGV0aW9ucygtKQoK ZGlmZiAtLWdpdCBhL2xpYmF2Zm9ybWF0L21wZWd0cy5jIGIvbGliYXZmb3JtYXQvbXBlZ3RzLmMK aW5kZXggNDlmNzczNTEyMy4uODQxN2Q3MWZiMyAxMDA2NDQKLS0tIGEvbGliYXZmb3JtYXQvbXBl Z3RzLmMKKysrIGIvbGliYXZmb3JtYXQvbXBlZ3RzLmMKQEAgLTEyMyw2ICsxMjMsOCBAQCBzdHJ1 Y3QgUHJvZ3JhbSB7CiAKICAgICAvKiogaGF2ZSB3ZSBmb3VuZCBwbXQgZm9yIHRoaXMgcHJvZ3Jh bSAqLwogICAgIGludCBwbXRfZm91bmQ7CisKKyAgICBpbnQgZWl0X3ZlcnNpb247CiB9OwogCiBz dHJ1Y3QgTXBlZ1RTQ29udGV4dCB7CkBAIC0zMDQsNiArMzA2LDcgQEAgc3RhdGljIHZvaWQgY2xl YXJfcHJvZ3JhbShzdHJ1Y3QgUHJvZ3JhbSAqcCkKICAgICBwLT5uYl9waWRzID0gMDsKICAgICBw LT5uYl9zdHJlYW1zID0gMDsKICAgICBwLT5wbXRfZm91bmQgPSAwOworICAgIHAtPmVpdF92ZXJz aW9uID0gLTE7CiB9CiAKIHN0YXRpYyB2b2lkIGNsZWFyX3Byb2dyYW1zKE1wZWdUU0NvbnRleHQg KnRzKQpAQCAtMjYxNiw4ICsyNjE5LDEyIEBAIHN0YXRpYyB2b2lkIHBhdF9jYihNcGVnVFNGaWx0 ZXIgKmZpbHRlciwgY29uc3QgdWludDhfdCAqc2VjdGlvbiwgaW50IHNlY3Rpb25fbGVuCiBzdGF0 aWMgdm9pZCBlaXRfY2IoTXBlZ1RTRmlsdGVyICpmaWx0ZXIsIGNvbnN0IHVpbnQ4X3QgKnNlY3Rp b24sIGludCBzZWN0aW9uX2xlbikKIHsKICAgICBNcGVnVFNDb250ZXh0ICp0cyA9IGZpbHRlci0+ dS5zZWN0aW9uX2ZpbHRlci5vcGFxdWU7Ci0gICAgY29uc3QgdWludDhfdCAqcCwgKnBfZW5kOwor ICAgIGNvbnN0IHVpbnQ4X3QgKnAsICpwX2VuZCwgKmRlc2NfbGlzdF9lbmQsICpkZXNjX2VuZDsK ICAgICBTZWN0aW9uSGVhZGVyIGgxLCAqaCA9ICZoMTsKKyAgICBBVlByb2dyYW0gKnByb2dyYW07 CisgICAgc3RydWN0IFByb2dyYW0gKnByZzsKKyAgICBpbnQgZGVzY19sZW47CisgICAgY2hhciBs YW5ndWFnZVsyNTJdOwogCiAgICAgLyoKICAgICAgKiBTb21ldGltZXMgd2UgcmVjZWl2ZSBFUEcg cGFja2V0cyBidXQgU0RUIHRhYmxlIGRvIG5vdCBoYXZlCkBAIC0yNjQ1LDYgKzI2NTIsNyBAQCBz dGF0aWMgdm9pZCBlaXRfY2IoTXBlZ1RTRmlsdGVyICpmaWx0ZXIsIGNvbnN0IHVpbnQ4X3QgKnNl Y3Rpb24sIGludCBzZWN0aW9uX2xlbgogICAgICAgICByZXR1cm47CiAKICAgICBhdl9sb2codHMt PnN0cmVhbSwgQVZfTE9HX1RSQUNFLCAiRUlUOiB0aWQgcmVjZWl2ZWQgPSAlLjAyeFxuIiwgaC0+ dGlkKTsKKyAgICBoZXhfZHVtcF9kZWJ1Zyh0cy0+c3RyZWFtLCBzZWN0aW9uLCBzZWN0aW9uX2xl bik7CiAKICAgICAvKioKICAgICAgKiBTZXJ2aWNlX2lkIDB4RkZGRiBpcyByZXNlcnZlZCwgaXQg aW5kaWNhdGVzIHRoYXQgdGhlIGN1cnJlbnQgRUlUIHRhYmxlCkBAIC0yNjY0LDcgKzI2NzIsMTI0 IEBAIHN0YXRpYyB2b2lkIGVpdF9jYihNcGVnVFNGaWx0ZXIgKmZpbHRlciwgY29uc3QgdWludDhf dCAqc2VjdGlvbiwgaW50IHNlY3Rpb25fbGVuCiAKICAgICBuZXdfZGF0YV9wYWNrZXQoc2VjdGlv biwgc2VjdGlvbl9sZW4sIHRzLT5wa3QpOwogICAgIHRzLT5wa3QtPnN0cmVhbV9pbmRleCA9IHRz LT5lcGdfc3RyZWFtLT5pbmRleDsKLSAgICB0cy0+c3RvcF9wYXJzZSA9IDE7CisKKyAgICAvKiBw YXJzZSBwcmVzZW50IGV2ZW50IG9mIGFjdHVhbCBUUyBzdHJlYW0gb25seSAqLworICAgIGlmICho LT50aWQgIT0gRUlUX1RJRCkKKyAgICAgICAgcmV0dXJuOworICAgIGlmICghaC0+Y3VycmVudF9u ZXh0KQorICAgICAgICByZXR1cm47CisgICAgaWYgKHRzLT5za2lwX2NoYW5nZXMpCisgICAgICAg IHJldHVybjsKKworICAgIGF2X2xvZyh0cy0+c3RyZWFtLCBBVl9MT0dfVFJBQ0UsICJzaWQ9MHgl eCBzZWNfbnVtPSVkLyVkIHZlcnNpb249JWRcbiIsCisgICAgICAgICAgIGgtPmlkLCBoLT5zZWNf bnVtLCBoLT5sYXN0X3NlY19udW0sIGgtPnZlcnNpb24pOworCisgICAgLyogRFZCLVNJIEd1aWRl bGluZXMgKFRTIDEwMSAyMTEpIDQuMS40LjEgKi8KKyAgICAvKiAweDAwIGluZGljYXRlcyBwcmVz ZW50IGV2ZW50LCAweDAxIGluZGljYXRlcyBmb2xsb3dpbmcgZXZlbnQgKi8KKyAgICAvKiAweDAy IGFuZCBhZnRlciBpcyBvcHRpb25hbCAqLworICAgIGlmIChoLT5zZWNfbnVtID4gMCkKKyAgICAg ICAgcmV0dXJuOworCisgICAgcHJvZ3JhbSA9IE5VTEw7CisgICAgZm9yIChpbnQgaSA9IDA7IGkg PCB0cy0+c3RyZWFtLT5uYl9wcm9ncmFtczsgaSsrKQorICAgICAgICBpZiAodHMtPnN0cmVhbS0+ cHJvZ3JhbXNbaV0tPmlkID09IGgtPmlkKQorICAgICAgICAgICAgcHJvZ3JhbSA9IHRzLT5zdHJl YW0tPnByb2dyYW1zW2ldOworICAgIGlmICghcHJvZ3JhbSB8fCBwcm9ncmFtLT5uYl9zdHJlYW1f aW5kZXhlcyA8PSAwKQorICAgICAgICByZXR1cm47CisKKyAgICBwcmcgPSBnZXRfcHJvZ3JhbSh0 cywgaC0+aWQpOworICAgIGlmICghcHJnKQorICAgICAgICByZXR1cm47CisgICAgaWYgKGgtPnZl cnNpb24gPT0gcHJnLT5laXRfdmVyc2lvbikKKyAgICAgICAgcmV0dXJuOworICAgIHByZy0+ZWl0 X3ZlcnNpb24gPSBoLT52ZXJzaW9uOworCisgICAgLyogc2tpcCB0c19pZCwgb3JpZ2luYWxfbmV0 d29ya19pZCwgbGFzdF9zZWN0aW9uX25vLCBsYXN0X3RhYmxlX2lkICovCisgICAgaWYgKHAgKyA2 ID4gcF9lbmQpCisgICAgICAgIHJldHVybjsKKyAgICBwICs9IDY7CisKKyAgICBmb3IgKDs7KSB7 CisgICAgICAgIGludCBlaWQsIHZhbDsKKworICAgICAgICBlaWQgPSBnZXQxNigmcCwgcF9lbmQp OworICAgICAgICBpZiAoZWlkIDwgMCkKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICB7Cisg ICAgICAgICAgICBpbnQgaGgsIG1tLCBzcywgZF9oaCwgZF9tbSwgZF9zcywgcnVubmluZ19zdGF0 dXM7CisgICAgICAgICAgICB2YWwgPSBnZXQxNigmcCwgcF9lbmQpOyAvKiBEYXRlICovCisgICAg ICAgICAgICBpZiAodmFsIDwgMCkKKyAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAg IGhoID0gZ2V0OCgmcCwgcF9lbmQpOworICAgICAgICAgICAgaWYgKGhoIDwgMCkKKyAgICAgICAg ICAgICAgICBicmVhazsKKyAgICAgICAgICAgIG1tID0gZ2V0OCgmcCwgcF9lbmQpOworICAgICAg ICAgICAgaWYgKG1tIDwgMCkKKyAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgIHNz ID0gZ2V0OCgmcCwgcF9lbmQpOworICAgICAgICAgICAgaWYgKHNzIDwgMCkKKyAgICAgICAgICAg ICAgICBicmVhazsKKyAgICAgICAgICAgIGRfaGggPSBnZXQ4KCZwLCBwX2VuZCk7CisgICAgICAg ICAgICBpZiAoZF9oaCA8IDApCisgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICBk X21tID0gZ2V0OCgmcCwgcF9lbmQpOworICAgICAgICAgICAgaWYgKGRfbW0gPCAwKQorICAgICAg ICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgZF9zcyA9IGdldDgoJnAsIHBfZW5kKTsKKyAg ICAgICAgICAgIGlmIChkX3NzIDwgMCkKKyAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAg ICAgIGRlc2NfbGVuID0gZ2V0MTYoJnAsIHBfZW5kKTsKKyAgICAgICAgICAgIGlmIChkZXNjX2xl biA8IDApCisgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICBydW5uaW5nX3N0YXR1 cyA9IChkZXNjX2xlbiAmIDB4ZTAwMCkgPj4gNTsKKyAgICAgICAgICAgIGF2X2xvZyh0cy0+c3Ry ZWFtLCBBVl9MT0dfVFJBQ0UsCisgICAgICAgICAgICAgICAgICAgImVpZD0weCUwNHggc3RhcnQg JTAyeDolMDJ4OiUwMnggZHVyYXRpb24gJTAyeDolMDJ4OiUwMnggcnVubmluZ19zdGF0dXM9JWRc biIsCisgICAgICAgICAgICAgICAgICAgZWlkLCBoaCwgbW0sIHNzLCBkX2hoLCBkX21tLCBkX3Nz LCBydW5uaW5nX3N0YXR1cyk7CisgICAgICAgIH0KKyAgICAgICAgZGVzY19sZW4gJj0gMHgwZmZm OworICAgICAgICBkZXNjX2xpc3RfZW5kID0gcCArIGRlc2NfbGVuOworICAgICAgICBpZiAoZGVz Y19saXN0X2VuZCA+IHBfZW5kKQorICAgICAgICAgICAgYnJlYWs7CisKKyAgICAgICAgZm9yICg7 OykgeworICAgICAgICAgICAgaW50IGRlc2NfdGFnOworCisgICAgICAgICAgICBkZXNjX3RhZyA9 IGdldDgoJnAsIGRlc2NfbGlzdF9lbmQpOworICAgICAgICAgICAgaWYgKGRlc2NfdGFnIDwgMCkK KyAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgIGRlc2NfbGVuID0gZ2V0OCgmcCwg ZGVzY19saXN0X2VuZCk7CisgICAgICAgICAgICBkZXNjX2VuZCA9IHAgKyBkZXNjX2xlbjsKKyAg ICAgICAgICAgIGlmIChkZXNjX2xlbiA8IDAgfHwgZGVzY19lbmQgPiBkZXNjX2xpc3RfZW5kKQor ICAgICAgICAgICAgICAgIGJyZWFrOworCisgICAgICAgICAgICBhdl9sb2codHMtPnN0cmVhbSwg QVZfTE9HX0RFQlVHLCAidGFnOiAweCUwMnggbGVuPSVkXG4iLAorICAgICAgICAgICAgICAgICAg IGRlc2NfdGFnLCBkZXNjX2xlbik7CisKKyAgICAgICAgICAgIHN3aXRjaCAoZGVzY190YWcpIHsK KyAgICAgICAgICAgIGNhc2UgMHg0ZDogIC8qIHNob3J0IGV2ZW50IGRlc2NyaXB0b3IgKi8KKyAg ICAgICAgICAgICAgICB7CisgICAgICAgICAgICAgICAgICAgIGNoYXIgKnR4dDsKKworICAgICAg ICAgICAgICAgICAgICBpZiAoZGVzY19sZW4gPCAzKQorICAgICAgICAgICAgICAgICAgICAgICAg YnJlYWs7CisgICAgICAgICAgICAgICAgICAgIGxhbmd1YWdlWzBdID0gZ2V0OCgmcCwgZGVzY19l bmQpOworICAgICAgICAgICAgICAgICAgICBsYW5ndWFnZVsxXSA9IGdldDgoJnAsIGRlc2NfZW5k KTsKKyAgICAgICAgICAgICAgICAgICAgbGFuZ3VhZ2VbMl0gPSBnZXQ4KCZwLCBkZXNjX2VuZCk7 CisgICAgICAgICAgICAgICAgICAgIGxhbmd1YWdlWzNdID0gJ1wwJzsKKyAgICAgICAgICAgICAg ICAgICAgdHh0ID0gZ2V0c3RyOCgmcCwgZGVzY19lbmQpOworICAgICAgICAgICAgICAgICAgICBp ZiAoIXR4dCkKKyAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgICAg ICAgICBhdl9kaWN0X3NldCgmcHJvZ3JhbS0+bWV0YWRhdGEsICJ0aXRsZSIsIHR4dCwgMCk7Cisg ICAgICAgICAgICAgICAgICAgIGF2X2ZyZWUodHh0KTsKKyAgICAgICAgICAgICAgICB9CisgICAg ICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICBkZWZhdWx0OgorICAgICAgICAgICAgICAg IGJyZWFrOworICAgICAgICAgICAgfQorICAgICAgICAgICAgcCA9IGRlc2NfZW5kOworICAgICAg ICB9CisgICAgICAgIHAgPSBkZXNjX2xpc3RfZW5kOworICAgIH0KIH0KIAogc3RhdGljIHZvaWQg c2R0X2NiKE1wZWdUU0ZpbHRlciAqZmlsdGVyLCBjb25zdCB1aW50OF90ICpzZWN0aW9uLCBpbnQg c2VjdGlvbl9sZW4pCi0tIAoyLjMwLjIKCl9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fCmZmbXBlZy1kZXZlbCBtYWlsaW5nIGxpc3QKZmZtcGVnLWRldmVsQGZm bXBlZy5vcmcKaHR0cHM6Ly9mZm1wZWcub3JnL21haWxtYW4vbGlzdGluZm8vZmZtcGVnLWRldmVs CgpUbyB1bnN1YnNjcmliZSwgdmlzaXQgbGluayBhYm92ZSwgb3IgZW1haWwKZmZtcGVnLWRldmVs LXJlcXVlc3RAZmZtcGVnLm9yZyB3aXRoIHN1YmplY3QgInVuc3Vic2NyaWJlIi4K