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 086A8437FB for ; Fri, 29 Jul 2022 13:36:02 +0000 (UTC) Received: from [127.0.1.1] (localhost [127.0.0.1]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTP id 56B3A68BA06; Fri, 29 Jul 2022 16:35:52 +0300 (EEST) Received: from mail-lj1-f181.google.com (mail-lj1-f181.google.com [209.85.208.181]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTPS id 9759568B985 for ; Fri, 29 Jul 2022 16:35:44 +0300 (EEST) Received: by mail-lj1-f181.google.com with SMTP id b21so5187313ljk.8 for ; Fri, 29 Jul 2022 06:35:44 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20210112; h=from:to:subject:date:message-id:in-reply-to:references:mime-version :content-transfer-encoding; bh=CvU39fOf2gqx0PZQr7d/MyS7rdejoHNF32Q2RbzNKgo=; b=YCf10Bise6O/ZjropdTNs0uOzUNDZJy+rA3X3/Tl5BHkgCY9Hhb7IDy6kSf/aqORpv RDOofi/3OAjqTBszhI/ve8wfabByLt6SXyO1ixlLoCamEC/e3AT9Jwj9kzk3m6alhkzR dXc3jF4u1GPf+rTWsXBiKYxPHKHcmpaprxStHVRAGvKARYJCmPKV+Wpzs/B8rt+Pghii rYRgbsFY87+QBwQlJIWU/7jaCa6hIx7iamolYlbndzYPE9nPt4yCy/ZF2gE4HXBAsrg0 OJIqkVAX2/B7hMXqq0qDoMEj5RWd2sRNhDW7SK8ctdG+PqkH6u9SZVmYDle2HetTwrxR XSSw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=x-gm-message-state:from:to:subject:date:message-id:in-reply-to :references:mime-version:content-transfer-encoding; bh=CvU39fOf2gqx0PZQr7d/MyS7rdejoHNF32Q2RbzNKgo=; b=LR4fK5ygp5jSDmXJueJvRayiOLwqF0AfbE1t/GXRn0rvRe/rb/spcFxYsFxouCZi5V 8Pf94SjpmBa035arwcHjDyZ1lGgMSNxP+E0PDaKDIy5+LXZJLhsXfagMCD/MsHP5+alP V1Ors/h0HEDiXtYpEmrxpRi9I6DNJKjuZjjCG4tlxc+RTK0wLxVWhUPX4dtFhlLhQL2P 2/06zFwAryE8THZVe+V0HyVz/BHnm8gJSNaccGc62/RiENOO3z7cBo46B479aFdBLem3 KGQ5EDdKZESb9Epy7Cf87nf8+mwN/sEMVWp7loSrrzIH8G+ZUuC9DNuWz8vrGkt2p0aa 1wPA== X-Gm-Message-State: AJIora+FGglOcERRmpjVMbjR3CXnuz+Dbuv8XLJ9S+oZpNTIUEtZFwnL 8K/Xc+bXg3uJyGaTwtB8T+wUO5nY7FM= X-Google-Smtp-Source: AGRyM1ui07fKhFVAKqkFHv0FcdgTAhYcJzskDfpf/7PTymeJ8JFTZoU8DkTXuVUsr9AByz5u2ShTPw== X-Received: by 2002:a2e:9d59:0:b0:25e:1eda:86f6 with SMTP id y25-20020a2e9d59000000b0025e1eda86f6mr1178486ljj.315.1659101743778; Fri, 29 Jul 2022 06:35:43 -0700 (PDT) Received: from localhost.localdomain (91-153-198-187.elisa-laajakaista.fi. [91.153.198.187]) by smtp.gmail.com with ESMTPSA id a3-20020a19e303000000b0048a68fe3745sm667589lfh.34.2022.07.29.06.35.43 for (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Fri, 29 Jul 2022 06:35:43 -0700 (PDT) From: =?UTF-8?q?Jan=20Ekstr=C3=B6m?= To: ffmpeg-devel@ffmpeg.org Date: Fri, 29 Jul 2022 16:35:37 +0300 Message-Id: <20220729133537.53269-2-jeebjp@gmail.com> X-Mailer: git-send-email 2.37.1 In-Reply-To: <20220729133537.53269-1-jeebjp@gmail.com> References: <20220722134808.16692-1-jeebjp@gmail.com> <20220729133537.53269-1-jeebjp@gmail.com> MIME-Version: 1.0 Subject: [FFmpeg-devel] [PATCH v3 2/2] ffmpeg: add video heartbeat capability to fix_sub_duration 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: RnJvbTogSmFuIEVrc3Ryw7ZtIDxqYW4uZWtzdHJvbUAyNGkuY29tPgoKU3BsaXRzIHRoZSBjdXJy ZW50bHkgaGFuZGxlZCBzdWJ0aXRsZSBhdCByYW5kb20gYWNjZXNzIHBvaW50CnBhY2tldHMgdGhh dCBjYW4gYmUgY29uZmlndXJlZCB0byBmb2xsb3cgYSBzcGVjaWZpYyBvdXRwdXQgc3RyZWFtLgoK VGhpcyB3YXkgdGhlIHN1YnRpdGxlIC0gd2hpY2ggaXMga25vd24gdG8gYmUgc2hvd24gYXQgdGhp cyB0aW1lCmNhbiBiZSBzcGxpdCBhbmQgcGFzc2VkIHRvIG11eGVyIGJlZm9yZSBpdHMgZnVsbCBk dXJhdGlvbiBpcwp5ZXQga25vd24uCgpDby1hdXRob3JlZC1ieTogQW5kcnplaiBOYWRhY2hvd3Nr aSA8YW5kcnplai5uYWRhY2hvd3NraUAyNGkuY29tPgpDby1hdXRob3JlZC1ieTogQmVybmFyZCBC b3VsYXkgPGJlcm5hcmQuYm91bGF5QDI0aS5jb20+CgpTaWduZWQtb2ZmLWJ5OiBKYW4gRWtzdHLD tm0gPGphbi5la3N0cm9tQDI0aS5jb20+Ci0tLQogZG9jL2ZmbXBlZy50ZXhpICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgIHwgIDExICsrCiBmZnRvb2xzL2ZmbXBlZy5jICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgfCAxNDIgKysrKysrKysrKysrKysrKysrCiBmZnRvb2xzL2ZmbXBl Zy5oICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCAgIDggKwogZmZ0b29scy9mZm1wZWdf b3B0LmMgICAgICAgICAgICAgICAgICAgICAgICAgIHwgICA5ICsrCiB0ZXN0cy9mYXRlL2ZmbXBl Zy5tYWsgICAgICAgICAgICAgICAgICAgICAgICAgfCAgMTQgKysKIC4uLi9mYXRlL2ZmbXBlZy1m aXhfc3ViX2R1cmF0aW9uX2hlYXJ0YmVhdCAgICB8ICA0OCArKysrKysKIDYgZmlsZXMgY2hhbmdl ZCwgMjMyIGluc2VydGlvbnMoKykKIGNyZWF0ZSBtb2RlIDEwMDY0NCB0ZXN0cy9yZWYvZmF0ZS9m Zm1wZWctZml4X3N1Yl9kdXJhdGlvbl9oZWFydGJlYXQKCmRpZmYgLS1naXQgYS9kb2MvZmZtcGVn LnRleGkgYi9kb2MvZmZtcGVnLnRleGkKaW5kZXggMmZiMGJjOGZmYS4uZTNhY2U4ZWU2NSAxMDA2 NDQKLS0tIGEvZG9jL2ZmbXBlZy50ZXhpCisrKyBiL2RvYy9mZm1wZWcudGV4aQpAQCAtMTMxMyw2 ICsxMzEzLDE3IEBAIExpc3QgYWxsIGhhcmR3YXJlIGFjY2VsZXJhdGlvbiBjb21wb25lbnRzIGVu YWJsZWQgaW4gdGhpcyBidWlsZCBvZiBmZm1wZWcuCiBBY3R1YWwgcnVudGltZSBhdmFpbGFiaWxp dHkgZGVwZW5kcyBvbiB0aGUgaGFyZHdhcmUgYW5kIGl0cyBzdWl0YWJsZSBkcml2ZXIKIGJlaW5n IGluc3RhbGxlZC4KIAorQGl0ZW0gLWZpeF9zdWJfZHVyYXRpb25faGVhcnRiZWF0WzpAdmFye3N0 cmVhbV9zcGVjaWZpZXJ9XQorU2V0IGEgc3BlY2lmaWMgb3V0cHV0IHZpZGVvIHN0cmVhbSBhcyB0 aGUgaGVhcnRiZWF0IHN0cmVhbSBhY2NvcmRpbmcgdG8gd2hpY2gKK3RvIHNwbGl0IGFuZCBwdXNo IHRocm91Z2ggY3VycmVudGx5IGluLXByb2dyZXNzIHN1YnRpdGxlIHVwb24gcmVjZWlwdCBvZiBh CityYW5kb20gYWNjZXNzIHBhY2tldC4KKworVGhpcyBsb3dlcnMgdGhlIGxhdGVuY3kgb2Ygc3Vi dGl0bGVzIGZvciB3aGljaCB0aGUgZW5kIHBhY2tldCBvciB0aGUgZm9sbG93aW5nCitzdWJ0aXRs ZSBoYXMgbm90IHlldCBiZWVuIHJlY2VpdmVkLgorCitSZXF1aXJlcyBAb3B0aW9uey1maXhfc3Vi X2R1cmF0aW9ufSB0byBiZSBzZXQgZm9yIHRoZSByZWxldmFudCBpbnB1dCBzdWJ0aXRsZQorc3Ry ZWFtIGZvciB0aGlzIHRvIGhhdmUgYW55IGVmZmVjdC4KKwogQGVuZCB0YWJsZQogCiBAc2VjdGlv biBBdWRpbyBPcHRpb25zCmRpZmYgLS1naXQgYS9mZnRvb2xzL2ZmbXBlZy5jIGIvZmZ0b29scy9m Zm1wZWcuYwppbmRleCBhZGNhYjQzYTMwLi5lMjI3YzlkMTllIDEwMDY0NAotLS0gYS9mZnRvb2xz L2ZmbXBlZy5jCisrKyBiL2ZmdG9vbHMvZmZtcGVnLmMKQEAgLTEyOCw2ICsxMjgsNyBAQCB0eXBl ZGVmIHN0cnVjdCBCZW5jaG1hcmtUaW1lU3RhbXBzIHsKICAgICBpbnQ2NF90IHN5c191c2VjOwog fSBCZW5jaG1hcmtUaW1lU3RhbXBzOwogCitzdGF0aWMgaW50IHRyaWdnZXJfZml4X3N1Yl9kdXJh dGlvbl9oZWFydGJlYXQoT3V0cHV0U3RyZWFtICpvc3QsIGNvbnN0IEFWUGFja2V0ICpwa3QpOwog c3RhdGljIEJlbmNobWFya1RpbWVTdGFtcHMgZ2V0X2JlbmNobWFya190aW1lX3N0YW1wcyh2b2lk KTsKIHN0YXRpYyBpbnQ2NF90IGdldG1heHJzcyh2b2lkKTsKIHN0YXRpYyBpbnQgaWZpbHRlcl9o YXNfYWxsX2lucHV0X2Zvcm1hdHMoRmlsdGVyR3JhcGggKmZnKTsKQEAgLTk4MSw2ICs5ODIsMTMg QEAgc3RhdGljIGludCBlbmNvZGVfZnJhbWUoT3V0cHV0RmlsZSAqb2YsIE91dHB1dFN0cmVhbSAq b3N0LCBBVkZyYW1lICpmcmFtZSkKICAgICAgICAgICAgICAgICAgICBhdl90czJzdHIocGt0LT5k dXJhdGlvbiksIGF2X3RzMnRpbWVzdHIocGt0LT5kdXJhdGlvbiwgJmVuYy0+dGltZV9iYXNlKSk7 CiAgICAgICAgIH0KIAorICAgICAgICBpZiAoKHJldCA9IHRyaWdnZXJfZml4X3N1Yl9kdXJhdGlv bl9oZWFydGJlYXQob3N0LCBwa3QpKSA8IDApIHsKKyAgICAgICAgICAgIGF2X2xvZyhOVUxMLCBB Vl9MT0dfRVJST1IsCisgICAgICAgICAgICAgICAgICAgIlN1YnRpdGxlIGhlYXJ0YmVhdCBsb2dp YyBmYWlsZWQgaW4gJXMhICglcylcbiIsCisgICAgICAgICAgICAgICAgICAgX19mdW5jX18sIGF2 X2VycjJzdHIocmV0KSk7CisgICAgICAgICAgICBleGl0X3Byb2dyYW0oMSk7CisgICAgICAgIH0K KwogICAgICAgICBpZiAoZW5jLT5jb2RlY190eXBlID09IEFWTUVESUFfVFlQRV9WSURFTykKICAg ICAgICAgICAgIHVwZGF0ZV92aWRlb19zdGF0cyhvc3QsIHBrdCwgISF2c3RhdHNfZmlsZW5hbWUp OwogCkBAIC0xOTMxLDYgKzE5MzksMTYgQEAgc3RhdGljIHZvaWQgZG9fc3RyZWFtY29weShJbnB1 dFN0cmVhbSAqaXN0LCBPdXRwdXRTdHJlYW0gKm9zdCwgY29uc3QgQVZQYWNrZXQgKnAKIAogICAg IG9zdC0+c3luY19vcHRzICs9IG9wa3QtPmR1cmF0aW9uOwogCisgICAgeworICAgICAgICBpbnQg cmV0ID0gdHJpZ2dlcl9maXhfc3ViX2R1cmF0aW9uX2hlYXJ0YmVhdChvc3QsIHBrdCk7CisgICAg ICAgIGlmIChyZXQgPCAwKSB7CisgICAgICAgICAgICBhdl9sb2coTlVMTCwgQVZfTE9HX0VSUk9S LAorICAgICAgICAgICAgICAgICAgICJTdWJ0aXRsZSBoZWFydGJlYXQgbG9naWMgZmFpbGVkIGlu ICVzISAoJXMpXG4iLAorICAgICAgICAgICAgICAgICAgIF9fZnVuY19fLCBhdl9lcnIyc3RyKHJl dCkpOworICAgICAgICAgICAgZXhpdF9wcm9ncmFtKDEpOworICAgICAgICB9CisgICAgfQorCiAg ICAgb3V0cHV0X3BhY2tldChvZiwgb3BrdCwgb3N0LCAwKTsKIAogICAgIG9zdC0+c3RyZWFtY29w eV9zdGFydGVkID0gMTsKQEAgLTIzNjUsNiArMjM4MywxMzAgQEAgb3V0OgogICAgIHJldHVybiBy ZXQ7CiB9CiAKK3N0YXRpYyBpbnQgY29weV9hdl9zdWJ0aXRsZShBVlN1YnRpdGxlICpkc3QsIEFW U3VidGl0bGUgKnNyYykKK3sKKyAgICBpbnQgcmV0ID0gQVZFUlJPUl9CVUc7CisgICAgQVZTdWJ0 aXRsZSB0bXAgPSB7CisgICAgICAgIC5mb3JtYXQgPSBzcmMtPmZvcm1hdCwKKyAgICAgICAgLnN0 YXJ0X2Rpc3BsYXlfdGltZSA9IHNyYy0+c3RhcnRfZGlzcGxheV90aW1lLAorICAgICAgICAuZW5k X2Rpc3BsYXlfdGltZSA9IHNyYy0+ZW5kX2Rpc3BsYXlfdGltZSwKKyAgICAgICAgLm51bV9yZWN0 cyA9IDAsCisgICAgICAgIC5yZWN0cyA9IE5VTEwsCisgICAgICAgIC5wdHMgPSBzcmMtPnB0cwor ICAgIH07CisKKyAgICBpZiAoIXNyYy0+bnVtX3JlY3RzKQorICAgICAgICBnb3RvIHN1Y2Nlc3M7 CisKKyAgICBpZiAoISh0bXAucmVjdHMgPSBhdl9jYWxsb2Moc3JjLT5udW1fcmVjdHMsIHNpemVv ZigqdG1wLnJlY3RzKSkpKQorICAgICAgICByZXR1cm4gQVZFUlJPUihFTk9NRU0pOworCisgICAg Zm9yIChpbnQgaSA9IDA7IGkgPCBzcmMtPm51bV9yZWN0czsgaSsrKSB7CisgICAgICAgIEFWU3Vi dGl0bGVSZWN0ICpzcmNfcmVjdCA9IHNyYy0+cmVjdHNbaV07CisgICAgICAgIEFWU3VidGl0bGVS ZWN0ICpkc3RfcmVjdDsKKworICAgICAgICBpZiAoIShkc3RfcmVjdCA9IHRtcC5yZWN0c1tpXSA9 IGF2X21hbGxvY3ooc2l6ZW9mKCp0bXAucmVjdHNbMF0pKSkpIHsKKyAgICAgICAgICAgIHJldCA9 IEFWRVJST1IoRU5PTUVNKTsKKyAgICAgICAgICAgIGdvdG8gY2xlYW51cDsKKyAgICAgICAgfQor CisgICAgICAgIHRtcC5udW1fcmVjdHMrKzsKKworICAgICAgICBkc3RfcmVjdC0+dHlwZSAgICAg ID0gc3JjX3JlY3QtPnR5cGU7CisgICAgICAgIGRzdF9yZWN0LT5mbGFncyAgICAgPSBzcmNfcmVj dC0+ZmxhZ3M7CisKKyAgICAgICAgZHN0X3JlY3QtPnggICAgICAgICA9IHNyY19yZWN0LT54Owor ICAgICAgICBkc3RfcmVjdC0+eSAgICAgICAgID0gc3JjX3JlY3QtPnk7CisgICAgICAgIGRzdF9y ZWN0LT53ICAgICAgICAgPSBzcmNfcmVjdC0+dzsKKyAgICAgICAgZHN0X3JlY3QtPmggICAgICAg ICA9IHNyY19yZWN0LT5oOworICAgICAgICBkc3RfcmVjdC0+bmJfY29sb3JzID0gc3JjX3JlY3Qt Pm5iX2NvbG9yczsKKworICAgICAgICBpZiAoc3JjX3JlY3QtPnRleHQpCisgICAgICAgICAgICBp ZiAoIShkc3RfcmVjdC0+dGV4dCA9IGF2X3N0cmR1cChzcmNfcmVjdC0+dGV4dCkpKSB7CisgICAg ICAgICAgICAgICAgcmV0ID0gQVZFUlJPUihFTk9NRU0pOworICAgICAgICAgICAgICAgIGdvdG8g Y2xlYW51cDsKKyAgICAgICAgICAgIH0KKworICAgICAgICBpZiAoc3JjX3JlY3QtPmFzcykKKyAg ICAgICAgICAgIGlmICghKGRzdF9yZWN0LT5hc3MgPSBhdl9zdHJkdXAoc3JjX3JlY3QtPmFzcykp KSB7CisgICAgICAgICAgICAgICAgcmV0ID0gQVZFUlJPUihFTk9NRU0pOworICAgICAgICAgICAg ICAgIGdvdG8gY2xlYW51cDsKKyAgICAgICAgICAgIH0KKworICAgICAgICBmb3IgKGludCBqID0g MDsgaiA8IDQ7IGorKykgeworICAgICAgICAgICAgLy8gU1VCVElUTEVfQklUTUFQIGltYWdlcyBh cmUgc3BlY2lhbCBpbiB0aGUgc2Vuc2UgdGhhdCB0aGV5CisgICAgICAgICAgICAvLyBhcmUgbGlr ZSBQQUw4IGltYWdlcy4gZmlyc3QgcG9pbnRlciB0byBkYXRhLCBzZWNvbmQgdG8KKyAgICAgICAg ICAgIC8vIHBhbGV0dGUuIFRoaXMgbWFrZXMgdGhlIHNpemUgY2FsY3VsYXRpb24gbWF0Y2ggdGhp cy4KKyAgICAgICAgICAgIHNpemVfdCBidWZfc2l6ZSA9IHNyY19yZWN0LT50eXBlID09IFNVQlRJ VExFX0JJVE1BUCAmJiBqID09IDEgPworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQVZQ QUxFVFRFX1NJWkUgOgorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3JjX3JlY3QtPmgg KiBzcmNfcmVjdC0+bGluZXNpemVbal07CisKKyAgICAgICAgICAgIGlmICghc3JjX3JlY3QtPmRh dGFbal0pCisgICAgICAgICAgICAgICAgY29udGludWU7CisKKyAgICAgICAgICAgIGlmICghKGRz dF9yZWN0LT5kYXRhW2pdID0gYXZfbWVtZHVwKHNyY19yZWN0LT5kYXRhW2pdLCBidWZfc2l6ZSkp KSB7CisgICAgICAgICAgICAgICAgcmV0ID0gQVZFUlJPUihFTk9NRU0pOworICAgICAgICAgICAg ICAgIGdvdG8gY2xlYW51cDsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGRzdF9yZWN0LT5s aW5lc2l6ZVtqXSA9IHNyY19yZWN0LT5saW5lc2l6ZVtqXTsKKyAgICAgICAgfQorICAgIH0KKwor c3VjY2VzczoKKyAgICAqZHN0ID0gdG1wOworCisgICAgcmV0dXJuIDA7CisKK2NsZWFudXA6Cisg ICAgYXZzdWJ0aXRsZV9mcmVlKCZ0bXApOworCisgICAgcmV0dXJuIHJldDsKK30KKworc3RhdGlj IGludCBmaXhfc3ViX2R1cmF0aW9uX2hlYXJ0YmVhdChJbnB1dFN0cmVhbSAqaXN0LCBpbnQ2NF90 IHNpZ25hbF9wdHMpCit7CisgICAgaW50IHJldCA9IEFWRVJST1JfQlVHOworICAgIGludCBnb3Rf b3V0cHV0ID0gMTsKKyAgICBBVlN1YnRpdGxlICpwcmV2X3N1YnRpdGxlID0gJmlzdC0+cHJldl9z dWIuc3VidGl0bGU7CisgICAgQVZTdWJ0aXRsZSBzdWJ0aXRsZTsKKworICAgIGlmICghaXN0LT5m aXhfc3ViX2R1cmF0aW9uIHx8ICFwcmV2X3N1YnRpdGxlLT5udW1fcmVjdHMgfHwKKyAgICAgICAg c2lnbmFsX3B0cyA8PSBwcmV2X3N1YnRpdGxlLT5wdHMpCisgICAgICAgIHJldHVybiAwOworCisg ICAgaWYgKChyZXQgPSBjb3B5X2F2X3N1YnRpdGxlKCZzdWJ0aXRsZSwgcHJldl9zdWJ0aXRsZSkp IDwgMCkKKyAgICAgICAgcmV0dXJuIHJldDsKKworICAgIHN1YnRpdGxlLnB0cyA9IHNpZ25hbF9w dHM7CisKKyAgICByZXR1cm4gZW5jb2RlX211eF9zdWJ0aXRsZXMoaXN0LCAmc3VidGl0bGUsICZn b3Rfb3V0cHV0KTsKK30KKworc3RhdGljIGludCB0cmlnZ2VyX2ZpeF9zdWJfZHVyYXRpb25faGVh cnRiZWF0KE91dHB1dFN0cmVhbSAqb3N0LCBjb25zdCBBVlBhY2tldCAqcGt0KQoreworICAgIGlu dDY0X3Qgc2lnbmFsX3B0cyA9IGF2X3Jlc2NhbGVfcShwa3QtPnB0cywgb3N0LT5tdXhfdGltZWJh c2UsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEFWX1RJTUVfQkFTRV9R KTsKKworICAgIGlmICghb3N0LT5maXhfc3ViX2R1cmF0aW9uX2hlYXJ0YmVhdCB8fCAhKHBrdC0+ ZmxhZ3MgJiBBVl9QS1RfRkxBR19LRVkpKQorICAgICAgICAvLyB3ZSBhcmUgb25seSBpbnRlcmVz dGVkIGluIGhlYXJ0YmVhdHMgb24gc3RyZWFtcyBjb25maWd1cmVkLCBhbmQKKyAgICAgICAgLy8g b25seSBvbiByYW5kb20gYWNjZXNzIHBvaW50cy4KKyAgICAgICAgcmV0dXJuIDA7CisKKyAgICBm b3IgKGludCBpbmRleCA9IDA7IGluZGV4IDwgbmJfaW5wdXRfc3RyZWFtczsgaW5kZXgrKykgewor ICAgICAgICBJbnB1dFN0cmVhbSAqc3VidGl0bGVfaXN0ID0gaW5wdXRfc3RyZWFtc1tpbmRleF07 CisgICAgICAgIGludCByZXQgPSBBVkVSUk9SX0JVRzsKKworICAgICAgICBpZiAoIXN1YnRpdGxl X2lzdC0+ZGVjb2RpbmdfbmVlZGVkIHx8CisgICAgICAgICAgICBzdWJ0aXRsZV9pc3QtPmRlY19j dHgtPmNvZGVjX3R5cGUgIT0gQVZNRURJQV9UWVBFX1NVQlRJVExFKQorICAgICAgICAgICAgY29u dGludWU7CisKKyAgICAgICAgaWYgKChyZXQgPSBmaXhfc3ViX2R1cmF0aW9uX2hlYXJ0YmVhdChz dWJ0aXRsZV9pc3QsIHNpZ25hbF9wdHMpKSA8IDApCisgICAgICAgICAgICByZXR1cm4gcmV0Owor ICAgIH0KKworICAgIHJldHVybiAwOworfQorCiBzdGF0aWMgaW50IHRyYW5zY29kZV9zdWJ0aXRs ZXMoSW5wdXRTdHJlYW0gKmlzdCwgQVZQYWNrZXQgKnBrdCwgaW50ICpnb3Rfb3V0cHV0LAogICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIGludCAqZGVjb2RlX2ZhaWxlZCkKIHsKZGlmZiAt LWdpdCBhL2ZmdG9vbHMvZmZtcGVnLmggYi9mZnRvb2xzL2ZmbXBlZy5oCmluZGV4IDY0MTdkYjAz YmQuLjg5Yzk3ZjEwMmYgMTAwNjQ0Ci0tLSBhL2ZmdG9vbHMvZmZtcGVnLmgKKysrIGIvZmZ0b29s cy9mZm1wZWcuaApAQCAtMjIwLDYgKzIyMCw4IEBAIHR5cGVkZWYgc3RydWN0IE9wdGlvbnNDb250 ZXh0IHsKICAgICBpbnQgICAgICAgIG5iX3JlaW5pdF9maWx0ZXJzOwogICAgIFNwZWNpZmllck9w dCAqZml4X3N1Yl9kdXJhdGlvbjsKICAgICBpbnQgICAgICAgIG5iX2ZpeF9zdWJfZHVyYXRpb247 CisgICAgU3BlY2lmaWVyT3B0ICpmaXhfc3ViX2R1cmF0aW9uX2hlYXJ0YmVhdDsKKyAgICBpbnQg ICAgICAgIG5iX2ZpeF9zdWJfZHVyYXRpb25faGVhcnRiZWF0OwogICAgIFNwZWNpZmllck9wdCAq Y2FudmFzX3NpemVzOwogICAgIGludCAgICAgICAgbmJfY2FudmFzX3NpemVzOwogICAgIFNwZWNp Zmllck9wdCAqcGFzczsKQEAgLTU4NCw2ICs1ODYsMTIgQEAgdHlwZWRlZiBzdHJ1Y3QgT3V0cHV0 U3RyZWFtIHsKIAogICAgIGludCBzcV9pZHhfZW5jb2RlOwogICAgIGludCBzcV9pZHhfbXV4Owor CisgICAgLyoKKyAgICAgKiBib29sIG9uIHdoZXRoZXIgdGhpcyBzdHJlYW0gc2hvdWxkIGJlIHV0 aWxpemVkIGZvciBzcGxpdHRpbmcKKyAgICAgKiBzdWJ0aXRsZXMgdXRpbGl6aW5nIGZpeF9zdWJf ZHVyYXRpb24gYXQgcmFuZG9tIGFjY2VzcyBwb2ludHMuCisgICAgICovCisgICAgdW5zaWduZWQg aW50IGZpeF9zdWJfZHVyYXRpb25faGVhcnRiZWF0OwogfSBPdXRwdXRTdHJlYW07CiAKIHR5cGVk ZWYgc3RydWN0IE11eGVyIE11eGVyOwpkaWZmIC0tZ2l0IGEvZmZ0b29scy9mZm1wZWdfb3B0LmMg Yi9mZnRvb2xzL2ZmbXBlZ19vcHQuYwppbmRleCBkNzA0OTA2OWY0Li5kNGM4YTI1NjhiIDEwMDY0 NAotLS0gYS9mZnRvb2xzL2ZmbXBlZ19vcHQuYworKysgYi9mZnRvb2xzL2ZmbXBlZ19vcHQuYwpA QCAtOTgsNiArOTgsNyBAQCBzdGF0aWMgY29uc3QgY2hhciAqY29uc3Qgb3B0X25hbWVfZmlsdGVy c1tdICAgICAgICAgICAgICAgICAgID0geyJmaWx0ZXIiLCAiYWYiLAogc3RhdGljIGNvbnN0IGNo YXIgKmNvbnN0IG9wdF9uYW1lX2ZpbHRlcl9zY3JpcHRzW10gICAgICAgICAgICA9IHsiZmlsdGVy X3NjcmlwdCIsIE5VTEx9Owogc3RhdGljIGNvbnN0IGNoYXIgKmNvbnN0IG9wdF9uYW1lX3JlaW5p dF9maWx0ZXJzW10gICAgICAgICAgICA9IHsicmVpbml0X2ZpbHRlciIsIE5VTEx9Owogc3RhdGlj IGNvbnN0IGNoYXIgKmNvbnN0IG9wdF9uYW1lX2ZpeF9zdWJfZHVyYXRpb25bXSAgICAgICAgICA9 IHsiZml4X3N1Yl9kdXJhdGlvbiIsIE5VTEx9Oworc3RhdGljIGNvbnN0IGNoYXIgKmNvbnN0IG9w dF9uYW1lX2ZpeF9zdWJfZHVyYXRpb25faGVhcnRiZWF0W10gPSB7ImZpeF9zdWJfZHVyYXRpb25f aGVhcnRiZWF0IiwgTlVMTH07CiBzdGF0aWMgY29uc3QgY2hhciAqY29uc3Qgb3B0X25hbWVfY2Fu dmFzX3NpemVzW10gICAgICAgICAgICAgID0geyJjYW52YXNfc2l6ZSIsIE5VTEx9Owogc3RhdGlj IGNvbnN0IGNoYXIgKmNvbnN0IG9wdF9uYW1lX3Bhc3NbXSAgICAgICAgICAgICAgICAgICAgICA9 IHsicGFzcyIsIE5VTEx9Owogc3RhdGljIGNvbnN0IGNoYXIgKmNvbnN0IG9wdF9uYW1lX3Bhc3Ns b2dmaWxlc1tdICAgICAgICAgICAgICA9IHsicGFzc2xvZ2ZpbGUiLCBOVUxMfTsKQEAgLTE3MzAs NiArMTczMSw5IEBAIHN0YXRpYyBPdXRwdXRTdHJlYW0gKm5ld19vdXRwdXRfc3RyZWFtKE9wdGlv bnNDb250ZXh0ICpvLCBBVkZvcm1hdENvbnRleHQgKm9jLCBlCiAgICAgTUFUQ0hfUEVSX1NUUkVB TV9PUFQoYml0c19wZXJfcmF3X3NhbXBsZSwgaSwgb3N0LT5iaXRzX3Blcl9yYXdfc2FtcGxlLAog ICAgICAgICAgICAgICAgICAgICAgICAgIG9jLCBzdCk7CiAKKyAgICBNQVRDSF9QRVJfU1RSRUFN X09QVChmaXhfc3ViX2R1cmF0aW9uX2hlYXJ0YmVhdCwgaSwgb3N0LT5maXhfc3ViX2R1cmF0aW9u X2hlYXJ0YmVhdCwKKyAgICAgICAgICAgICAgICAgICAgICAgICBvYywgc3QpOworCiAgICAgaWYg KG9jLT5vZm9ybWF0LT5mbGFncyAmIEFWRk1UX0dMT0JBTEhFQURFUiAmJiBvc3QtPmVuY19jdHgp CiAgICAgICAgIG9zdC0+ZW5jX2N0eC0+ZmxhZ3MgfD0gQVZfQ09ERUNfRkxBR19HTE9CQUxfSEVB REVSOwogCkBAIC00MDc0LDYgKzQwNzgsMTEgQEAgY29uc3QgT3B0aW9uRGVmIG9wdGlvbnNbXSA9 IHsKICAgICB7ICJhdXRvc2NhbGUiLCAgICAgICAgSEFTX0FSRyB8IE9QVF9CT09MIHwgT1BUX1NQ RUMgfAogICAgICAgICAgICAgICAgICAgICAgICAgICBPUFRfRVhQRVJUIHwgT1BUX09VVFBVVCwg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgeyAub2ZmID0gT0ZGU0VUKGF1dG9zY2FsZSkg fSwKICAgICAgICAgImF1dG9tYXRpY2FsbHkgaW5zZXJ0IGEgc2NhbGUgZmlsdGVyIGF0IHRoZSBl bmQgb2YgdGhlIGZpbHRlciBncmFwaCIgfSwKKyAgICB7ICJmaXhfc3ViX2R1cmF0aW9uX2hlYXJ0 YmVhdCIsIE9QVF9WSURFTyB8IE9QVF9CT09MIHwgT1BUX0VYUEVSVCB8CisgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICBPUFRfU1BFQyB8IE9QVF9PVVRQVVQsICAgICAgICAgICAg ICAgICAgICAgICB7IC5vZmYgPSBPRkZTRVQoZml4X3N1Yl9kdXJhdGlvbl9oZWFydGJlYXQpIH0s CisgICAgICAgICJzZXQgdGhpcyB2aWRlbyBvdXRwdXQgc3RyZWFtIHRvIGJlIGEgaGVhcnRiZWF0 IHN0cmVhbSBmb3IgIgorICAgICAgICAiZml4X3N1Yl9kdXJhdGlvbiwgYWNjb3JkaW5nIHRvIHdo aWNoIHN1YnRpdGxlcyBzaG91bGQgYmUgc3BsaXQgYXQgIgorICAgICAgICAicmFuZG9tIGFjY2Vz cyBwb2ludHMiIH0sCiAKICAgICAvKiBhdWRpbyBvcHRpb25zICovCiAgICAgeyAiYWZyYW1lcyIs ICAgICAgICBPUFRfQVVESU8gfCBIQVNfQVJHICB8IE9QVF9QRVJGSUxFIHwgT1BUX09VVFBVVCwg ICAgICAgICAgIHsgLmZ1bmNfYXJnID0gb3B0X2F1ZGlvX2ZyYW1lcyB9LApkaWZmIC0tZ2l0IGEv dGVzdHMvZmF0ZS9mZm1wZWcubWFrIGIvdGVzdHMvZmF0ZS9mZm1wZWcubWFrCmluZGV4IDM4YTFh ZTdlZDUuLjM5ZWIyNmYyOTUgMTAwNjQ0Ci0tLSBhL3Rlc3RzL2ZhdGUvZmZtcGVnLm1haworKysg Yi90ZXN0cy9mYXRlL2ZmbXBlZy5tYWsKQEAgLTExNyw2ICsxMTcsMjAgQEAgZmF0ZS1mZm1wZWct Zml4X3N1Yl9kdXJhdGlvbjogQ01EID0gZm10c3Rkb3V0IHNydCAtZml4X3N1Yl9kdXJhdGlvbiBc CiAgIC1yZWFsX3RpbWUgMSAtZiBsYXZmaSBcCiAgIC1pICJtb3ZpZT0kKFRBUkdFVF9TQU1QTEVT KS9zdWIvQ2xvc2VkY2FwdGlvbl9yb2xsdXAubTJ2W291dDArc3ViY2NdIgogCisjIEJhc2ljIHRl c3QgZm9yIGZpeF9zdWJfZHVyYXRpb25faGVhcnRiZWF0LCB3aGljaCBjYXVzZXMgYSBidWZmZXJl ZCBzdWJ0aXRsZQorIyB0byBiZSBwdXNoZWQgb3V0IHdoZW4gYSB2aWRlbyBrZXlmcmFtZSBpcyBy ZWNlaXZlZCBmcm9tIGFuIGVuY29kZXIuCitGQVRFX1NBTVBMRVNfRkZNUEVHLSQoY2FsbCBGSUxU RVJERU1ERUNFTkNNVVgsIE1PVklFLCBNUEVHVklERU8sIFwKKyAgICAgICAgICAgICAgICAgICAg ICAgICAgIE1QRUcyVklERU8sIFNVQlJJUCwgU1JULCBMQVZGSV9JTkRFViAgXAorICAgICAgICAg ICAgICAgICAgICAgICAgICAgTVBFR1ZJREVPX1BBUlNFUiBDQ0FQVElPTl9ERUNPREVSIFwKKyAg ICAgICAgICAgICAgICAgICAgICAgICAgIE1QRUcyVklERU9fRU5DT0RFUiBOVUxMX01VWEVSIFBJ UEVfUFJPVE9DT0wpIFwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICs9IGZhdGUtZmZtcGVn LWZpeF9zdWJfZHVyYXRpb25faGVhcnRiZWF0CitmYXRlLWZmbXBlZy1maXhfc3ViX2R1cmF0aW9u X2hlYXJ0YmVhdDogQ01EID0gZm10c3Rkb3V0IHNydCAtZml4X3N1Yl9kdXJhdGlvbiBcCisgIC1y ZWFsX3RpbWUgMSAtZiBsYXZmaSBcCisgIC1pICJtb3ZpZT0kKFRBUkdFVF9TQU1QTEVTKS9zdWIv Q2xvc2VkY2FwdGlvbl9yb2xsdXAubTJ2W291dDArc3ViY2NdIiBcCisgIC1tYXAgMDp2IC1maXhf c3ViX2R1cmF0aW9uX2hlYXJ0YmVhdDp2OjAgXAorICAtYyBtcGVnMnZpZGVvIC1iOnYgMk0gLWcg MzAgLXNjX3RocmVzaG9sZCAxMDAwMDAwMDAwIFwKKyAgLWYgbnVsbCAtCisKIEZBVEVfU1RSRUFN Q09QWS0kKGNhbGwgUkVNVVgsIE1QNCBNT1YsIEVBQzNfREVNVVhFUikgKz0gZmF0ZS1jb3B5LXRy YWMzMDc0CiBmYXRlLWNvcHktdHJhYzMwNzQ6IENNRCA9IHRyYW5zY29kZSBlYWMzICQoVEFSR0VU X1NBTVBMRVMpL2VhYzMvY3NpX21pYW1pX3N0ZXJlb18xMjhfc3B4LmVhYzNcCiAgICAgICAgICAg ICAgICAgICAgICBtcDQgIi1jb2RlYyBjb3B5IC1tYXAgMCIgIi1jb2RlYyBjb3B5IgpkaWZmIC0t Z2l0IGEvdGVzdHMvcmVmL2ZhdGUvZmZtcGVnLWZpeF9zdWJfZHVyYXRpb25faGVhcnRiZWF0IGIv dGVzdHMvcmVmL2ZhdGUvZmZtcGVnLWZpeF9zdWJfZHVyYXRpb25faGVhcnRiZWF0Cm5ldyBmaWxl IG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAuLjk1N2E0MTA5MjEKLS0tIC9kZXYvbnVsbAor KysgYi90ZXN0cy9yZWYvZmF0ZS9mZm1wZWctZml4X3N1Yl9kdXJhdGlvbl9oZWFydGJlYXQKQEAg LTAsMCArMSw0OCBAQAorMQorMDA6MDA6MDAsOTY4IC0tPiAwMDowMDowMSwwMDEKKzxmb250IGZh Y2U9Ik1vbm9zcGFjZSI+e1xhbjd9KDwvZm9udD4KKworMgorMDA6MDA6MDEsMDAxIC0tPiAwMDow MDowMSwxNjgKKzxmb250IGZhY2U9Ik1vbm9zcGFjZSI+e1xhbjd9KDwvZm9udD4KKworMworMDA6 MDA6MDEsMTY4IC0tPiAwMDowMDowMSwzNjgKKzxmb250IGZhY2U9Ik1vbm9zcGFjZSI+e1xhbjd9 KDxpPiBpbmF1ZGlibDwvaT48L2ZvbnQ+CisKKzQKKzAwOjAwOjAxLDM2OCAtLT4gMDA6MDA6MDEs NTY4Cis8Zm9udCBmYWNlPSJNb25vc3BhY2UiPntcYW43fSg8aT4gaW5hdWRpYmxlIHJhZGlvIGNo YXQ8L2k+PC9mb250PgorCis1CiswMDowMDowMSw1NjggLS0+IDAwOjAwOjAyLDAwMgorPGZvbnQg ZmFjZT0iTW9ub3NwYWNlIj57XGFuN30oPGk+IGluYXVkaWJsZSByYWRpbyBjaGF0dGVyPC9pPiAp PC9mb250PgorCis2CiswMDowMDowMiwwMDIgLS0+IDAwOjAwOjAzLDAwMworPGZvbnQgZmFjZT0i TW9ub3NwYWNlIj57XGFuN30oPGk+IGluYXVkaWJsZSByYWRpbyBjaGF0dGVyPC9pPiApPC9mb250 PgorCis3CiswMDowMDowMywwMDMgLS0+IDAwOjAwOjAzLDEwMworPGZvbnQgZmFjZT0iTW9ub3Nw YWNlIj57XGFuN30oPGk+IGluYXVkaWJsZSByYWRpbyBjaGF0dGVyPC9pPiApPC9mb250PgorCis4 CiswMDowMDowMywxMDMgLS0+IDAwOjAwOjAzLDMwMworPGZvbnQgZmFjZT0iTW9ub3NwYWNlIj57 XGFuN30oPGk+IGluYXVkaWJsZSByYWRpbyBjaGF0dGVyPC9pPiApCis+PjwvZm9udD4KKworOQor MDA6MDA6MDMsMzAzIC0tPiAwMDowMDowMyw1MDMKKzxmb250IGZhY2U9Ik1vbm9zcGFjZSI+e1xh bjd9KDxpPiBpbmF1ZGlibGUgcmFkaW8gY2hhdHRlcjwvaT4gKQorPj4gU2FmZXR5IHJlbWE8L2Zv bnQ+CisKKzEwCiswMDowMDowMyw1MDQgLS0+IDAwOjAwOjAzLDcwNAorPGZvbnQgZmFjZT0iTW9u b3NwYWNlIj57XGFuN30oPGk+IGluYXVkaWJsZSByYWRpbyBjaGF0dGVyPC9pPiApCis+PiBTYWZl dHkgcmVtYWlucyBvdXIgbnVtYjwvZm9udD4KKworMTEKKzAwOjAwOjAzLDcwNCAtLT4gMDA6MDA6 MDQsMDA0Cis8Zm9udCBmYWNlPSJNb25vc3BhY2UiPntcYW43fSg8aT4gaW5hdWRpYmxlIHJhZGlv IGNoYXR0ZXI8L2k+ICkKKz4+IFNhZmV0eSByZW1haW5zIG91ciBudW1iZXIgb25lPC9mb250Pgor Ci0tIAoyLjM3LjEKCl9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fCmZmbXBlZy1kZXZlbCBtYWlsaW5nIGxpc3QKZmZtcGVnLWRldmVsQGZmbXBlZy5vcmcKaHR0 cHM6Ly9mZm1wZWcub3JnL21haWxtYW4vbGlzdGluZm8vZmZtcGVnLWRldmVsCgpUbyB1bnN1YnNj cmliZSwgdmlzaXQgbGluayBhYm92ZSwgb3IgZW1haWwKZmZtcGVnLWRldmVsLXJlcXVlc3RAZmZt cGVnLm9yZyB3aXRoIHN1YmplY3QgInVuc3Vic2NyaWJlIi4K