From mboxrd@z Thu Jan 1 00:00:00 1970 From: Rob Clark Subject: [PATCH 4/4] drm/msm: Don't subclass drm_atomic_state anymore Date: Wed, 21 Feb 2018 09:37:24 -0500 Message-ID: <20180221143730.30285-5-robdclark@gmail.com> References: <20180221143730.30285-1-robdclark@gmail.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: In-Reply-To: <20180221143730.30285-1-robdclark-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: freedreno-bounces-PD4FTy7X32lNgt0PjOBp9y5qC8QIuHrW@public.gmane.org Sender: "Freedreno" To: dri-devel-PD4FTy7X32lNgt0PjOBp9y5qC8QIuHrW@public.gmane.org Cc: Archit Taneja , Neil Armstrong , David Airlie , linux-arm-msm-u79uwXL29TY76Z2rM5mHXA@public.gmane.org, linux-kernel-u79uwXL29TY76Z2rM5mHXA@public.gmane.org, Rob Clark , Sean Paul , Daniel Vetter , freedreno-PD4FTy7X32lNgt0PjOBp9y5qC8QIuHrW@public.gmane.org, =?UTF-8?q?Ville=20Syrj=C3=A4l=C3=A4?= List-Id: linux-arm-msm@vger.kernel.org RnJvbTogQXJjaGl0IFRhbmVqYSA8YXJjaGl0dEBjb2RlYXVyb3JhLm9yZz4KCldpdGggdGhlIGFk ZGl0aW9uIG9mICJwcml2YXRlX29ianMiIGluIGRybV9hdG9taWNfc3RhdGUsIHdlIG5vIGxvbmdl cgpuZWVkIHRvIHN1YmNsYXNzIGRybV9hdG9taWNfc3RhdGUgdG8gc3RvcmUgc3RhdGUgb2Ygc2hh cmUgcmVzb3VyY2VzCnRoYXQgZG9uJ3QgcGVyZmVjdGx5IGZpdCB3aXRoaW4gcGxhbmVzL2NydGMv Y29ubmVjdG9yIHN0YXRlIGluZm9ybWF0aW9uLgpXZSBjYW4gbm93IHNhdmUgdGhpcyBzdGF0ZSB3 aXRoaW4gZHJtX2F0b21pY19zdGF0ZSBpdHNlbGYgdXNpbmcKdGhlIHByaXZhdGUgb2JqZWN0cy4K ClJlbW92ZSB0aGUgaW5mcmFzdHJ1Y3R1cmUgdGhhdCBhbGxvd2VkIHN1YmNsYXNzaW5nIG9mIGRy bV9hdG9taWNfc3RhdGUKaW4gdGhlIGRyaXZlci4KClNpZ25lZC1vZmYtYnk6IEFyY2hpdCBUYW5l amEgPGFyY2hpdHRAY29kZWF1cm9yYS5vcmc+ClNpZ25lZC1vZmYtYnk6IFJvYiBDbGFyayA8cm9i ZGNsYXJrQGdtYWlsLmNvbT4KLS0tCiBkcml2ZXJzL2dwdS9kcm0vbXNtL2Rpc3AvbWRwNS9tZHA1 X2ttcy5jIHwgNDYgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIGRyaXZlcnMvZ3B1 L2RybS9tc20vZGlzcC9tZHA1L21kcDVfa21zLmggfCAyMiAtLS0tLS0tLS0tLS0tLS0KIGRyaXZl cnMvZ3B1L2RybS9tc20vbXNtX2F0b21pYy5jICAgICAgICAgfCAzMSAtLS0tLS0tLS0tLS0tLS0t LS0tLS0KIGRyaXZlcnMvZ3B1L2RybS9tc20vbXNtX2Rydi5jICAgICAgICAgICAgfCAgMyAtLS0K IGRyaXZlcnMvZ3B1L2RybS9tc20vbXNtX2ttcy5oICAgICAgICAgICAgfCAxNCAtLS0tLS0tLS0t CiA1IGZpbGVzIGNoYW5nZWQsIDExNiBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS9kcml2ZXJz L2dwdS9kcm0vbXNtL2Rpc3AvbWRwNS9tZHA1X2ttcy5jIGIvZHJpdmVycy9ncHUvZHJtL21zbS9k aXNwL21kcDUvbWRwNV9rbXMuYwppbmRleCBhN2U4MGViZjAyMDcuLmRhOWM0YTRlYjA1MCAxMDA2 NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL21zbS9kaXNwL21kcDUvbWRwNV9rbXMuYworKysgYi9k cml2ZXJzL2dwdS9kcm0vbXNtL2Rpc3AvbWRwNS9tZHA1X2ttcy5jCkBAIC03MCw0MiArNzAsNiBA QCBzdGF0aWMgaW50IG1kcDVfaHdfaW5pdChzdHJ1Y3QgbXNtX2ttcyAqa21zKQogCXJldHVybiAw OwogfQogCi1zdHJ1Y3QgbWRwNV9zdGF0ZSAqbWRwNV9nZXRfc3RhdGUoc3RydWN0IGRybV9hdG9t aWNfc3RhdGUgKnMpCi17Ci0Jc3RydWN0IG1zbV9kcm1fcHJpdmF0ZSAqcHJpdiA9IHMtPmRldi0+ ZGV2X3ByaXZhdGU7Ci0Jc3RydWN0IG1kcDVfa21zICptZHA1X2ttcyA9IHRvX21kcDVfa21zKHRv X21kcF9rbXMocHJpdi0+a21zKSk7Ci0Jc3RydWN0IG1zbV9rbXNfc3RhdGUgKnN0YXRlID0gdG9f a21zX3N0YXRlKHMpOwotCXN0cnVjdCBtZHA1X3N0YXRlICpuZXdfc3RhdGU7Ci0JaW50IHJldDsK LQotCWlmIChzdGF0ZS0+c3RhdGUpCi0JCXJldHVybiBzdGF0ZS0+c3RhdGU7Ci0KLQlyZXQgPSBk cm1fbW9kZXNldF9sb2NrKCZtZHA1X2ttcy0+c3RhdGVfbG9jaywgcy0+YWNxdWlyZV9jdHgpOwot CWlmIChyZXQpCi0JCXJldHVybiBFUlJfUFRSKHJldCk7Ci0KLQluZXdfc3RhdGUgPSBrbWFsbG9j KHNpemVvZigqbWRwNV9rbXMtPnN0YXRlKSwgR0ZQX0tFUk5FTCk7Ci0JaWYgKCFuZXdfc3RhdGUp Ci0JCXJldHVybiBFUlJfUFRSKC1FTk9NRU0pOwotCi0JLyogQ29weSBzdGF0ZTogKi8KLQluZXdf c3RhdGUtPmh3cGlwZSA9IG1kcDVfa21zLT5zdGF0ZS0+aHdwaXBlOwotCW5ld19zdGF0ZS0+aHdt aXhlciA9IG1kcDVfa21zLT5zdGF0ZS0+aHdtaXhlcjsKLQlpZiAobWRwNV9rbXMtPnNtcCkKLQkJ bmV3X3N0YXRlLT5zbXAgPSBtZHA1X2ttcy0+c3RhdGUtPnNtcDsKLQotCXN0YXRlLT5zdGF0ZSA9 IG5ld19zdGF0ZTsKLQotCXJldHVybiBuZXdfc3RhdGU7Ci19Ci0KLXN0YXRpYyB2b2lkIG1kcDVf c3dhcF9zdGF0ZShzdHJ1Y3QgbXNtX2ttcyAqa21zLCBzdHJ1Y3QgZHJtX2F0b21pY19zdGF0ZSAq c3RhdGUpCi17Ci0Jc3RydWN0IG1kcDVfa21zICptZHA1X2ttcyA9IHRvX21kcDVfa21zKHRvX21k cF9rbXMoa21zKSk7Ci0Jc3dhcCh0b19rbXNfc3RhdGUoc3RhdGUpLT5zdGF0ZSwgbWRwNV9rbXMt PnN0YXRlKTsKLX0KLQogLyogR2xvYmFsL3NoYXJlZCBvYmplY3Qgc3RhdGUgZnVuY3MgKi8KIAog LyoKQEAgLTMyMyw3ICsyODcsNiBAQCBzdGF0aWMgY29uc3Qgc3RydWN0IG1kcF9rbXNfZnVuY3Mg a21zX2Z1bmNzID0gewogCQkuaXJxICAgICAgICAgICAgID0gbWRwNV9pcnEsCiAJCS5lbmFibGVf dmJsYW5rICAgPSBtZHA1X2VuYWJsZV92YmxhbmssCiAJCS5kaXNhYmxlX3ZibGFuayAgPSBtZHA1 X2Rpc2FibGVfdmJsYW5rLAotCQkuc3dhcF9zdGF0ZSAgICAgID0gbWRwNV9zd2FwX3N0YXRlLAog CQkucHJlcGFyZV9jb21taXQgID0gbWRwNV9wcmVwYXJlX2NvbW1pdCwKIAkJLmNvbW1pdCAgICAg ICAgICA9IG1kcDVfY29tbWl0LAogCQkuY29tcGxldGVfY29tbWl0ID0gbWRwNV9jb21wbGV0ZV9j b21taXQsCkBAIC04NTksOCArODIyLDYgQEAgc3RhdGljIHZvaWQgbWRwNV9kZXN0cm95KHN0cnVj dCBwbGF0Zm9ybV9kZXZpY2UgKnBkZXYpCiAJCXBtX3J1bnRpbWVfZGlzYWJsZSgmcGRldi0+ZGV2 KTsKIAogCWRybV9hdG9taWNfcHJpdmF0ZV9vYmpfZmluaSgmbWRwNV9rbXMtPmdsb2Jfc3RhdGUp OwotCi0Ja2ZyZWUobWRwNV9rbXMtPnN0YXRlKTsKIH0KIAogc3RhdGljIGludCBjb25zdHJ1Y3Rf cGlwZXMoc3RydWN0IG1kcDVfa21zICptZHA1X2ttcywgaW50IGNudCwKQEAgLTEwMTMsMTMgKzk3 NCw2IEBAIHN0YXRpYyBpbnQgbWRwNV9pbml0KHN0cnVjdCBwbGF0Zm9ybV9kZXZpY2UgKnBkZXYs IHN0cnVjdCBkcm1fZGV2aWNlICpkZXYpCiAJbWRwNV9rbXMtPmRldiA9IGRldjsKIAltZHA1X2tt cy0+cGRldiA9IHBkZXY7CiAKLQlkcm1fbW9kZXNldF9sb2NrX2luaXQoJm1kcDVfa21zLT5zdGF0 ZV9sb2NrKTsKLQltZHA1X2ttcy0+c3RhdGUgPSBremFsbG9jKHNpemVvZigqbWRwNV9rbXMtPnN0 YXRlKSwgR0ZQX0tFUk5FTCk7Ci0JaWYgKCFtZHA1X2ttcy0+c3RhdGUpIHsKLQkJcmV0ID0gLUVO T01FTTsKLQkJZ290byBmYWlsOwotCX0KLQogCXJldCA9IG1kcDVfZ2xvYmFsX29ial9pbml0KG1k cDVfa21zKTsKIAlpZiAocmV0KQogCQlnb3RvIGZhaWw7CmRpZmYgLS1naXQgYS9kcml2ZXJzL2dw dS9kcm0vbXNtL2Rpc3AvbWRwNS9tZHA1X2ttcy5oIGIvZHJpdmVycy9ncHUvZHJtL21zbS9kaXNw L21kcDUvbWRwNV9rbXMuaAppbmRleCAxYzcwYWFjMjBhOTguLmE3NWZiZDNhZWFmNyAxMDA2NDQK LS0tIGEvZHJpdmVycy9ncHUvZHJtL21zbS9kaXNwL21kcDUvbWRwNV9rbXMuaAorKysgYi9kcml2 ZXJzL2dwdS9kcm0vbXNtL2Rpc3AvbWRwNS9tZHA1X2ttcy5oCkBAIC0zMCw4ICszMCw2IEBACiAj aW5jbHVkZSAibWRwNV9jdGwuaCIKICNpbmNsdWRlICJtZHA1X3NtcC5oIgogCi1zdHJ1Y3QgbWRw NV9zdGF0ZTsKLQogc3RydWN0IG1kcDVfa21zIHsKIAlzdHJ1Y3QgbWRwX2ttcyBiYXNlOwogCkBA IC01MSwxMiArNDksNiBAQCBzdHJ1Y3QgbWRwNV9rbXMgewogCXN0cnVjdCBtZHA1X2NmZ19oYW5k bGVyICpjZmc7CiAJdWludDMyX3QgY2FwczsJLyogTURQIGNhcGFiaWxpdGllcyAoTURQX0NBUF9Y WFggYml0cykgKi8KIAotCS8qKgotCSAqIEdsb2JhbCBhdG9taWMgc3RhdGUuICBEbyBub3QgYWNj ZXNzIGRpcmVjdGx5LCB1c2UgbWRwNV9nZXRfc3RhdGUoKQotCSAqLwotCXN0cnVjdCBtZHA1X3N0 YXRlICpzdGF0ZTsKLQlzdHJ1Y3QgZHJtX21vZGVzZXRfbG9jayBzdGF0ZV9sb2NrOwotCiAJLyoK IAkgKiBHbG9iYWwgcHJpdmF0ZSBvYmplY3Qgc3RhdGUsIERvIG5vdCBhY2Nlc3MgZGlyZWN0bHks IHVzZQogCSAqIG1kcDVfZ2xvYmFsX2dldF9zdGF0ZSgpCkBAIC04OSwyMCArODEsNiBAQCBzdHJ1 Y3QgbWRwNV9rbXMgewogfTsKICNkZWZpbmUgdG9fbWRwNV9rbXMoeCkgY29udGFpbmVyX29mKHgs IHN0cnVjdCBtZHA1X2ttcywgYmFzZSkKIAotLyogR2xvYmFsIGF0b21pYyBzdGF0ZSBmb3IgdHJh Y2tpbmcgcmVzb3VyY2VzIHRoYXQgYXJlIHNoYXJlZCBhY3Jvc3MKLSAqIG11bHRpcGxlIGttcyBv YmplY3RzIChwbGFuZXMvY3J0Y3MvZXRjKS4KLSAqCi0gKiBGb3IgYXRvbWljIHVwZGF0ZXMgd2hp Y2ggcmVxdWlyZSBtb2RpZnlpbmcgZ2xvYmFsIHN0YXRlLAotICovCi1zdHJ1Y3QgbWRwNV9zdGF0 ZSB7Ci0Jc3RydWN0IG1kcDVfaHdfcGlwZV9zdGF0ZSBod3BpcGU7Ci0Jc3RydWN0IG1kcDVfaHdf bWl4ZXJfc3RhdGUgaHdtaXhlcjsKLQlzdHJ1Y3QgbWRwNV9zbXBfc3RhdGUgc21wOwotfTsKLQot c3RydWN0IG1kcDVfc3RhdGUgKl9fbXVzdF9jaGVjawotbWRwNV9nZXRfc3RhdGUoc3RydWN0IGRy bV9hdG9taWNfc3RhdGUgKnMpOwotCiAvKiBHbG9iYWwgcHJpdmF0ZSBvYmplY3Qgc3RhdGUgZm9y IHRyYWNraW5nIHJlc291cmNlcyB0aGF0IGFyZSBzaGFyZWQgYWNyb3NzCiAgKiBtdWx0aXBsZSBr bXMgb2JqZWN0cyAocGxhbmVzL2NydGNzL2V0YykuCiAgKi8KZGlmZiAtLWdpdCBhL2RyaXZlcnMv Z3B1L2RybS9tc20vbXNtX2F0b21pYy5jIGIvZHJpdmVycy9ncHUvZHJtL21zbS9tc21fYXRvbWlj LmMKaW5kZXggOWRlNTc5ZTBhMWRmLi43NjFkOWJkNjUzMDIgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMv Z3B1L2RybS9tc20vbXNtX2F0b21pYy5jCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9tc20vbXNtX2F0 b21pYy5jCkBAIC0yMjYsMTEgKzIyNiw3IEBAIGludCBtc21fYXRvbWljX2NvbW1pdChzdHJ1Y3Qg ZHJtX2RldmljZSAqZGV2LAogCSAqIFRoaXMgaXMgdGhlIHBvaW50IG9mIG5vIHJldHVybiAtIGV2 ZXJ5dGhpbmcgYmVsb3cgbmV2ZXIgZmFpbHMgZXhjZXB0CiAJICogd2hlbiB0aGUgaHcgZ29lcyBi b25naGl0cy4gV2hpY2ggbWVhbnMgd2UgY2FuIGNvbW1pdCB0aGUgbmV3IHN0YXRlIG9uCiAJICog dGhlIHNvZnR3YXJlIHNpZGUgbm93LgotCSAqCi0JICogc3dhcCBkcml2ZXIgcHJpdmF0ZSBzdGF0 ZSB3aGlsZSBzdGlsbCBob2xkaW5nIHN0YXRlX2xvY2sKIAkgKi8KLQlpZiAodG9fa21zX3N0YXRl KHN0YXRlKS0+c3RhdGUpCi0JCXByaXYtPmttcy0+ZnVuY3MtPnN3YXBfc3RhdGUocHJpdi0+a21z LCBzdGF0ZSk7CiAKIAkvKgogCSAqIEV2ZXJ5dGhpbmcgYmVsb3cgY2FuIGJlIHJ1biBhc3luY2hy b25vdXNseSB3aXRob3V0IHRoZSBuZWVkIHRvIGdyYWIKQEAgLTI2NCwzMCArMjYwLDMgQEAgaW50 IG1zbV9hdG9taWNfY29tbWl0KHN0cnVjdCBkcm1fZGV2aWNlICpkZXYsCiAJZHJtX2F0b21pY19o ZWxwZXJfY2xlYW51cF9wbGFuZXMoZGV2LCBzdGF0ZSk7CiAJcmV0dXJuIHJldDsKIH0KLQotc3Ry dWN0IGRybV9hdG9taWNfc3RhdGUgKm1zbV9hdG9taWNfc3RhdGVfYWxsb2Moc3RydWN0IGRybV9k ZXZpY2UgKmRldikKLXsKLQlzdHJ1Y3QgbXNtX2ttc19zdGF0ZSAqc3RhdGUgPSBremFsbG9jKHNp emVvZigqc3RhdGUpLCBHRlBfS0VSTkVMKTsKLQotCWlmICghc3RhdGUgfHwgZHJtX2F0b21pY19z dGF0ZV9pbml0KGRldiwgJnN0YXRlLT5iYXNlKSA8IDApIHsKLQkJa2ZyZWUoc3RhdGUpOwotCQly ZXR1cm4gTlVMTDsKLQl9Ci0KLQlyZXR1cm4gJnN0YXRlLT5iYXNlOwotfQotCi12b2lkIG1zbV9h dG9taWNfc3RhdGVfY2xlYXIoc3RydWN0IGRybV9hdG9taWNfc3RhdGUgKnMpCi17Ci0Jc3RydWN0 IG1zbV9rbXNfc3RhdGUgKnN0YXRlID0gdG9fa21zX3N0YXRlKHMpOwotCWRybV9hdG9taWNfc3Rh dGVfZGVmYXVsdF9jbGVhcigmc3RhdGUtPmJhc2UpOwotCWtmcmVlKHN0YXRlLT5zdGF0ZSk7Ci0J c3RhdGUtPnN0YXRlID0gTlVMTDsKLX0KLQotdm9pZCBtc21fYXRvbWljX3N0YXRlX2ZyZWUoc3Ry dWN0IGRybV9hdG9taWNfc3RhdGUgKnN0YXRlKQotewotCWtmcmVlKHRvX2ttc19zdGF0ZShzdGF0 ZSktPnN0YXRlKTsKLQlkcm1fYXRvbWljX3N0YXRlX2RlZmF1bHRfcmVsZWFzZShzdGF0ZSk7Ci0J a2ZyZWUoc3RhdGUpOwotfQpkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL21zbS9tc21fZHJ2 LmMgYi9kcml2ZXJzL2dwdS9kcm0vbXNtL21zbV9kcnYuYwppbmRleCA2NWQzYjBiYjdjODYuLmE2 MzFlOTRjYTczMSAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL21zbS9tc21fZHJ2LmMKKysr IGIvZHJpdmVycy9ncHUvZHJtL21zbS9tc21fZHJ2LmMKQEAgLTQyLDkgKzQyLDYgQEAgc3RhdGlj IGNvbnN0IHN0cnVjdCBkcm1fbW9kZV9jb25maWdfZnVuY3MgbW9kZV9jb25maWdfZnVuY3MgPSB7 CiAJLm91dHB1dF9wb2xsX2NoYW5nZWQgPSBkcm1fZmJfaGVscGVyX291dHB1dF9wb2xsX2NoYW5n ZWQsCiAJLmF0b21pY19jaGVjayA9IGRybV9hdG9taWNfaGVscGVyX2NoZWNrLAogCS5hdG9taWNf Y29tbWl0ID0gbXNtX2F0b21pY19jb21taXQsCi0JLmF0b21pY19zdGF0ZV9hbGxvYyA9IG1zbV9h dG9taWNfc3RhdGVfYWxsb2MsCi0JLmF0b21pY19zdGF0ZV9jbGVhciA9IG1zbV9hdG9taWNfc3Rh dGVfY2xlYXIsCi0JLmF0b21pY19zdGF0ZV9mcmVlID0gbXNtX2F0b21pY19zdGF0ZV9mcmVlLAog fTsKIAogI2lmZGVmIENPTkZJR19EUk1fTVNNX1JFR0lTVEVSX0xPR0dJTkcKZGlmZiAtLWdpdCBh L2RyaXZlcnMvZ3B1L2RybS9tc20vbXNtX2ttcy5oIGIvZHJpdmVycy9ncHUvZHJtL21zbS9tc21f a21zLmgKaW5kZXggNzU4NWE2Yjk4OGM3Li5jNzc2NjUxZWVkMDggMTAwNjQ0Ci0tLSBhL2RyaXZl cnMvZ3B1L2RybS9tc20vbXNtX2ttcy5oCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9tc20vbXNtX2tt cy5oCkBAIC00MCw4ICs0MCw2IEBAIHN0cnVjdCBtc21fa21zX2Z1bmNzIHsKIAlpcnFyZXR1cm5f dCAoKmlycSkoc3RydWN0IG1zbV9rbXMgKmttcyk7CiAJaW50ICgqZW5hYmxlX3ZibGFuaykoc3Ry dWN0IG1zbV9rbXMgKmttcywgc3RydWN0IGRybV9jcnRjICpjcnRjKTsKIAl2b2lkICgqZGlzYWJs ZV92YmxhbmspKHN0cnVjdCBtc21fa21zICprbXMsIHN0cnVjdCBkcm1fY3J0YyAqY3J0Yyk7Ci0J Lyogc3dhcCBnbG9iYWwgYXRvbWljIHN0YXRlOiAqLwotCXZvaWQgKCpzd2FwX3N0YXRlKShzdHJ1 Y3QgbXNtX2ttcyAqa21zLCBzdHJ1Y3QgZHJtX2F0b21pY19zdGF0ZSAqc3RhdGUpOwogCS8qIG1v ZGVzZXQsIGJyYWNrZXRpbmcgYXRvbWljX2NvbW1pdCgpOiAqLwogCXZvaWQgKCpwcmVwYXJlX2Nv bW1pdCkoc3RydWN0IG1zbV9rbXMgKmttcywgc3RydWN0IGRybV9hdG9taWNfc3RhdGUgKnN0YXRl KTsKIAl2b2lkICgqY29tbWl0KShzdHJ1Y3QgbXNtX2ttcyAqa21zLCBzdHJ1Y3QgZHJtX2F0b21p Y19zdGF0ZSAqc3RhdGUpOwpAQCAtNzgsMTggKzc2LDYgQEAgc3RydWN0IG1zbV9rbXMgewogCXN0 cnVjdCBtc21fZ2VtX2FkZHJlc3Nfc3BhY2UgKmFzcGFjZTsKIH07CiAKLS8qKgotICogU3ViY2xh c3Mgb2YgZHJtX2F0b21pY19zdGF0ZSwgdG8gYWxsb3cga21zIGJhY2tlbmQgdG8gaGF2ZSBkcml2 ZXIKLSAqIHByaXZhdGUgZ2xvYmFsIHN0YXRlLiAgVGhlIGttcyBiYWNrZW5kIGNhbiBkbyB3aGF0 ZXZlciBpdCB3YW50cwotICogd2l0aCB0aGUgLT5zdGF0ZSBwdHIuICBPbiAtPmF0b21pY19zdGF0 ZV9jbGVhcigpIHRoZSAtPnN0YXRlIHB0cgotICogaXMga2ZyZWUnZCBhbmQgc2V0IGJhY2sgdG8g TlVMTC4KLSAqLwotc3RydWN0IG1zbV9rbXNfc3RhdGUgewotCXN0cnVjdCBkcm1fYXRvbWljX3N0 YXRlIGJhc2U7Ci0Jdm9pZCAqc3RhdGU7Ci19OwotI2RlZmluZSB0b19rbXNfc3RhdGUoeCkgY29u dGFpbmVyX29mKHgsIHN0cnVjdCBtc21fa21zX3N0YXRlLCBiYXNlKQotCiBzdGF0aWMgaW5saW5l IHZvaWQgbXNtX2ttc19pbml0KHN0cnVjdCBtc21fa21zICprbXMsCiAJCWNvbnN0IHN0cnVjdCBt c21fa21zX2Z1bmNzICpmdW5jcykKIHsKLS0gCjIuMTQuMwoKX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX18KRnJlZWRyZW5vIG1haWxpbmcgbGlzdApGcmVlZHJl bm9AbGlzdHMuZnJlZWRlc2t0b3Aub3JnCmh0dHBzOi8vbGlzdHMuZnJlZWRlc2t0b3Aub3JnL21h aWxtYW4vbGlzdGluZm8vZnJlZWRyZW5vCg==