From mboxrd@z Thu Jan 1 00:00:00 1970 From: Sonny Jiang Subject: [PATCH v2] drm/amdgpu: update documentation for amdgpu_drv.c Date: Tue, 3 Jul 2018 16:06:35 -0400 Message-ID: <1530648395-17495-1-git-send-email-sonny.jiang@amd.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: List-Id: Discussion list for AMD gfx List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: amd-gfx-bounces-PD4FTy7X32lNgt0PjOBp9y5qC8QIuHrW@public.gmane.org Sender: "amd-gfx" To: amd-gfx-PD4FTy7X32lNgt0PjOBp9y5qC8QIuHrW@public.gmane.org Cc: Sonny Jiang U2lnbmVkLW9mZi1ieTogU29ubnkgSmlhbmcgPHNvbm55LmppYW5nQGFtZC5jb20+Ci0tLQogRG9j dW1lbnRhdGlvbi9ncHUvYW1kZ3B1LnJzdCAgICAgICAgICAgIHwgICA3ICsKIGRyaXZlcnMvZ3B1 L2RybS9hbWQvYW1kZ3B1L2FtZGdwdV9kcnYuYyB8IDIyMiArKysrKysrKysrKysrKysrKysrKysr KysrKysrKysrLQogMiBmaWxlcyBjaGFuZ2VkLCAyMjIgaW5zZXJ0aW9ucygrKSwgNyBkZWxldGlv bnMoLSkKCmRpZmYgLS1naXQgYS9Eb2N1bWVudGF0aW9uL2dwdS9hbWRncHUucnN0IGIvRG9jdW1l bnRhdGlvbi9ncHUvYW1kZ3B1LnJzdAppbmRleCA3NjVjMmEzLi5hNzQwZTQ5IDEwMDY0NAotLS0g YS9Eb2N1bWVudGF0aW9uL2dwdS9hbWRncHUucnN0CisrKyBiL0RvY3VtZW50YXRpb24vZ3B1L2Ft ZGdwdS5yc3QKQEAgLTUsNiArNSwxMyBAQAogVGhlIGRybS9hbWRncHUgZHJpdmVyIHN1cHBvcnRz IGFsbCBBTUQgUmFkZW9uIEdQVXMgYmFzZWQgb24gdGhlIEdyYXBoaWNzIENvcmUKIE5leHQgKEdD TikgYXJjaGl0ZWN0dXJlLgogCitNb2R1bGUgUGFyYW1ldGVycworPT09PT09PT09PT09PT09PT0K KworVGhlIGFtZGdwdSBkcml2ZXIgc3VwcG9ydHMgdGhlIGZvbGxvd2luZyBtb2R1bGUgcGFyYW1l dGVyczoKKworLi4ga2VybmVsLWRvYzo6IGRyaXZlcnMvZ3B1L2RybS9hbWQvYW1kZ3B1L2FtZGdw dV9kcnYuYworCiBDb3JlIERyaXZlciBJbmZyYXN0cnVjdHVyZQogPT09PT09PT09PT09PT09PT09 PT09PT09PT0KIApkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2FtZC9hbWRncHUvYW1kZ3B1 X2Rydi5jIGIvZHJpdmVycy9ncHUvZHJtL2FtZC9hbWRncHUvYW1kZ3B1X2Rydi5jCmluZGV4IDk2 MzU3OGMuLmNhZjgxY2UgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9hbWQvYW1kZ3B1L2Ft ZGdwdV9kcnYuYworKysgYi9kcml2ZXJzL2dwdS9kcm0vYW1kL2FtZGdwdS9hbWRncHVfZHJ2LmMK QEAgLTEsMTAgKzEsMyBAQAotLyoqCi0gKiBcZmlsZSBhbWRncHVfZHJ2LmMKLSAqIEFNRCBBbWRn cHUgZHJpdmVyCi0gKgotICogXGF1dGhvciBHYXJldGggSHVnaGVzIDxnYXJldGhAdmFsaW51eC5j b20+Ci0gKi8KLQogLyoKICAqIENvcHlyaWdodCAyMDAwIFZBIExpbnV4IFN5c3RlbXMsIEluYy4s IFN1bm55dmFsZSwgQ2FsaWZvcm5pYS4KICAqIEFsbCBSaWdodHMgUmVzZXJ2ZWQuCkBAIC0xMzYs MTAyICsxMjksMjM1IEBAIGludCBhbWRncHVfZ3B1X3JlY292ZXJ5ID0gLTE7IC8qIGF1dG8gKi8K IGludCBhbWRncHVfZW11X21vZGUgPSAwOwogdWludCBhbWRncHVfc211X21lbW9yeV9wb29sX3Np emUgPSAwOwogCisvKioKKyAqIERPQzogdnJhbWxpbWl0IChpbnQpCisgKiBSZXN0cmljdCB0aGUg dG90YWwgYW1vdW50IG9mIFZSQU0gaW4gTWlCIGZvciB0ZXN0aW5nLiAgVGhlIGRlZmF1bHQgaXMg MCAoVXNlIGZ1bGwgVlJBTSkuCisgKi8KIE1PRFVMRV9QQVJNX0RFU0ModnJhbWxpbWl0LCAiUmVz dHJpY3QgVlJBTSBmb3IgdGVzdGluZywgaW4gbWVnYWJ5dGVzIik7CiBtb2R1bGVfcGFyYW1fbmFt ZWQodnJhbWxpbWl0LCBhbWRncHVfdnJhbV9saW1pdCwgaW50LCAwNjAwKTsKIAorLyoqCisgKiBE T0M6IHZpc192cmFtbGltaXQgKGludCkKKyAqIFJlc3RyaWN0IHRoZSBhbW91bnQgb2YgQ1BVIHZp c2libGUgVlJBTSBpbiBNaUIgZm9yIHRlc3RpbmcuICBUaGUgZGVmYXVsdCBpcyAwIChVc2UgZnVs bCBDUFUgdmlzaWJsZSBWUkFNKS4KKyAqLwogTU9EVUxFX1BBUk1fREVTQyh2aXNfdnJhbWxpbWl0 LCAiUmVzdHJpY3QgdmlzaWJsZSBWUkFNIGZvciB0ZXN0aW5nLCBpbiBtZWdhYnl0ZXMiKTsKIG1v ZHVsZV9wYXJhbV9uYW1lZCh2aXNfdnJhbWxpbWl0LCBhbWRncHVfdmlzX3ZyYW1fbGltaXQsIGlu dCwgMDQ0NCk7CiAKKy8qKgorICogRE9DOiBnYXJ0c2l6ZSAodWludCkKKyAqIFJlc3RyaWN0IHRo ZSBzaXplIG9mIEdBUlQgaW4gTWliICgzMiwgNjQsIGV0Yy4pIGZvciB0ZXN0aW5nLiBUaGUgZGVm YXVsdCBpcyAtMSAoVGhlIHNpemUgZGVwZW5kcyBvbiBhc2ljKS4KKyAqLwogTU9EVUxFX1BBUk1f REVTQyhnYXJ0c2l6ZSwgIlNpemUgb2YgR0FSVCB0byBzZXR1cCBpbiBtZWdhYnl0ZXMgKDMyLCA2 NCwgZXRjLiwgLTE9YXV0bykiKTsKIG1vZHVsZV9wYXJhbV9uYW1lZChnYXJ0c2l6ZSwgYW1kZ3B1 X2dhcnRfc2l6ZSwgdWludCwgMDYwMCk7CiAKKy8qKgorICogRE9DOiBndHRzaXplIChpbnQpCisg KiBSZXN0cmljdCB0aGUgc2l6ZSBvZiBHVFQgZG9tYWluIGluIE1pQiBmb3IgdGVzdGluZy4gVGhl IGRlZmF1bHQgaXMgLTEgKEl0J3MgVlJBTSBzaXplIGlmIDNHQiA8IFZSQU0gPCAzLzQgUkFNLAor ICogb3RoZXJ3aXNlIDMvNCBSQU0gc2l6ZSkuCisgKi8KIE1PRFVMRV9QQVJNX0RFU0MoZ3R0c2l6 ZSwgIlNpemUgb2YgdGhlIEdUVCBkb21haW4gaW4gbWVnYWJ5dGVzICgtMSA9IGF1dG8pIik7CiBt b2R1bGVfcGFyYW1fbmFtZWQoZ3R0c2l6ZSwgYW1kZ3B1X2d0dF9zaXplLCBpbnQsIDA2MDApOwog CisvKioKKyAqIERPQzogbW92ZXJhdGUgKGludCkKKyAqIFNldCBtYXhpbXVtIGJ1ZmZlciBtaWdy YXRpb24gcmF0ZSBpbiBNQi9zLiBUaGUgZGVmYXVsdCBpcyAtMSAoOCBNQi9zKS4KKyAqLwogTU9E VUxFX1BBUk1fREVTQyhtb3ZlcmF0ZSwgIk1heGltdW0gYnVmZmVyIG1pZ3JhdGlvbiByYXRlIGlu IE1CL3MuICgzMiwgNjQsIGV0Yy4sIC0xPWF1dG8sIDA9MT1kaXNhYmxlZCkiKTsKIG1vZHVsZV9w YXJhbV9uYW1lZChtb3ZlcmF0ZSwgYW1kZ3B1X21vdmVyYXRlLCBpbnQsIDA2MDApOwogCisvKioK KyAqIERPQzogYmVuY2htYXJrIChpbnQpCisgKiBSdW4gYmVuY2htYXJrcy4gVGhlIGRlZmF1bHQg aXMgMCAoU2tpcCBiZW5jaG1hcmtzKS4KKyAqLwogTU9EVUxFX1BBUk1fREVTQyhiZW5jaG1hcmss ICJSdW4gYmVuY2htYXJrIik7CiBtb2R1bGVfcGFyYW1fbmFtZWQoYmVuY2htYXJrLCBhbWRncHVf YmVuY2htYXJraW5nLCBpbnQsIDA0NDQpOwogCisvKioKKyAqIERPQzogdGVzdCAoaW50KQorICog VGVzdCBCTyBHVFQtPlZSQU0gYW5kIFZSQU0tPkdUVCBHUFUgY29waWVzLiBUaGUgZGVmYXVsdCBp cyAwIChTa2lwIHRlc3QsIG9ubHkgc2V0IDEgdG8gcnVuIHRlc3QpLgorICovCiBNT0RVTEVfUEFS TV9ERVNDKHRlc3QsICJSdW4gdGVzdHMiKTsKIG1vZHVsZV9wYXJhbV9uYW1lZCh0ZXN0LCBhbWRn cHVfdGVzdGluZywgaW50LCAwNDQ0KTsKIAorLyoqCisgKiBET0M6IGF1ZGlvIChpbnQpCisgKiBT ZXQgQXVkaW8uIFRoZSBkZWZhdWx0IGlzIC0xIChFbmFibGVkKSwgc2V0IDAgdG8gZGlzYWJsZWQg aXQuCisgKi8KIE1PRFVMRV9QQVJNX0RFU0MoYXVkaW8sICJBdWRpbyBlbmFibGUgKC0xID0gYXV0 bywgMCA9IGRpc2FibGUsIDEgPSBlbmFibGUpIik7CiBtb2R1bGVfcGFyYW1fbmFtZWQoYXVkaW8s IGFtZGdwdV9hdWRpbywgaW50LCAwNDQ0KTsKIAorLyoqCisgKiBET0M6IGRpc3BfcHJpb3JpdHkg KGludCkKKyAqIFNldCBkaXNwbGF5IFByaW9yaXR5ICgwID0gYXV0bywgMSA9IG5vcm1hbCwgMiA9 IGhpZ2gpLiBUaGUgZGVmYXVsdCBpcyAwLgorICovCiBNT0RVTEVfUEFSTV9ERVNDKGRpc3BfcHJp b3JpdHksICJEaXNwbGF5IFByaW9yaXR5ICgwID0gYXV0bywgMSA9IG5vcm1hbCwgMiA9IGhpZ2gp Iik7CiBtb2R1bGVfcGFyYW1fbmFtZWQoZGlzcF9wcmlvcml0eSwgYW1kZ3B1X2Rpc3BfcHJpb3Jp dHksIGludCwgMDQ0NCk7CiAKKy8qKgorICogRE9DOiBod19pMmMgKGludCkKKyAqIFRvIGVuYWJs ZSBodyBpMmMgZW5naW5lLiBUaGUgZGVmYXVsdCBpcyAwIChEaXNhYmxlZCkuCisgKi8KIE1PRFVM RV9QQVJNX0RFU0MoaHdfaTJjLCAiaHcgaTJjIGVuZ2luZSBlbmFibGUgKDAgPSBkaXNhYmxlKSIp OwogbW9kdWxlX3BhcmFtX25hbWVkKGh3X2kyYywgYW1kZ3B1X2h3X2kyYywgaW50LCAwNDQ0KTsK IAorLyoqCisgKiBET0M6IHBjaWVfZ2VuMiAoaW50KQorICogVG8gZGlzYWJsZSBQQ0lFIEdlbjIg bW9kZSAoMCA9IGRpc2FibGUsIDEgPSBlbmFibGUpLiBUaGUgZGVmYXVsdCBpcyAtMSAoYXV0bywg ZW5hYmxlZCkuCisgKi8KIE1PRFVMRV9QQVJNX0RFU0MocGNpZV9nZW4yLCAiUENJRSBHZW4yIG1v ZGUgKC0xID0gYXV0bywgMCA9IGRpc2FibGUsIDEgPSBlbmFibGUpIik7CiBtb2R1bGVfcGFyYW1f bmFtZWQocGNpZV9nZW4yLCBhbWRncHVfcGNpZV9nZW4yLCBpbnQsIDA0NDQpOwogCisvKioKKyAq IERPQzogbXNpIChpbnQpCisgKiBUbyBkaXNhYmxlIE1TSSBmdW5jdGlvbmFsaXR5ICgxID0gZW5h YmxlLCAwID0gZGlzYWJsZSkuIFRoZSBkZWZhdWx0IGlzIC0xIChhdXRvLCBlbmFibGVkKS4KKyAq LwogTU9EVUxFX1BBUk1fREVTQyhtc2ksICJNU0kgc3VwcG9ydCAoMSA9IGVuYWJsZSwgMCA9IGRp c2FibGUsIC0xID0gYXV0bykiKTsKIG1vZHVsZV9wYXJhbV9uYW1lZChtc2ksIGFtZGdwdV9tc2ks IGludCwgMDQ0NCk7CiAKKy8qKgorICogRE9DOiBsb2NrdXBfdGltZW91dCAoaW50KQorICogU2V0 IEdQVSBzY2hlZHVsZXIgdGltZW91dCB2YWx1ZSBpbiBtcy4gSXQgbXVzdCBiZSA+IDAuICBUaGUg ZGVmYXVsdCBpcyAxMDAwMC4KKyAqLwogTU9EVUxFX1BBUk1fREVTQyhsb2NrdXBfdGltZW91dCwg IkdQVSBsb2NrdXAgdGltZW91dCBpbiBtcyA+IDAgKGRlZmF1bHQgMTAwMDApIik7CiBtb2R1bGVf cGFyYW1fbmFtZWQobG9ja3VwX3RpbWVvdXQsIGFtZGdwdV9sb2NrdXBfdGltZW91dCwgaW50LCAw NDQ0KTsKIAorLyoqCisgKiBET0M6IGRwbSAoaW50KQorICogT3ZlcnJpZGUgZm9yIGR5bmFtaWMg cG93ZXIgbWFuYWdlbWVudCBzZXR0aW5nICgxID0gZW5hYmxlLCAwID0gZGlzYWJsZSkuIFRoZSBk ZWZhdWx0IGlzIC0xIChhdXRvKS4KKyAqLwogTU9EVUxFX1BBUk1fREVTQyhkcG0sICJEUE0gc3Vw cG9ydCAoMSA9IGVuYWJsZSwgMCA9IGRpc2FibGUsIC0xID0gYXV0bykiKTsKIG1vZHVsZV9wYXJh bV9uYW1lZChkcG0sIGFtZGdwdV9kcG0sIGludCwgMDQ0NCk7CiAKKy8qKgorICogRE9DOiBmd19s b2FkX3R5cGUgKGludCkKKyAqIFNldCBkaWZmZXJlbnQgZmlybXdhcmUgbG9hZGluZyB0eXBlIGZv ciBkZWJ1Z2dpbmcgKDAgPSBkaXJlY3QsIDEgPSBTTVUsIDIgPSBQU1ApLiBUaGUgZGVmYXVsdCBp cyAtMSAoYXV0bykuCisgKi8KIE1PRFVMRV9QQVJNX0RFU0MoZndfbG9hZF90eXBlLCAiZmlybXdh cmUgbG9hZGluZyB0eXBlICgwID0gZGlyZWN0LCAxID0gU01VLCAyID0gUFNQLCAtMSA9IGF1dG8p Iik7CiBtb2R1bGVfcGFyYW1fbmFtZWQoZndfbG9hZF90eXBlLCBhbWRncHVfZndfbG9hZF90eXBl LCBpbnQsIDA0NDQpOwogCisvKioKKyAqIERPQzogYXNwbSAoaW50KQorICogVG8gZGlzYWJsZSBB U1BNICgxID0gZW5hYmxlLCAwID0gZGlzYWJsZSkuIFRoZSBkZWZhdWx0IGlzIC0xIChhdXRvLCBl bmFibGVkKS4KKyAqLwogTU9EVUxFX1BBUk1fREVTQyhhc3BtLCAiQVNQTSBzdXBwb3J0ICgxID0g ZW5hYmxlLCAwID0gZGlzYWJsZSwgLTEgPSBhdXRvKSIpOwogbW9kdWxlX3BhcmFtX25hbWVkKGFz cG0sIGFtZGdwdV9hc3BtLCBpbnQsIDA0NDQpOwogCisvKioKKyAqIERPQzogcnVucG0gKGludCkK KyAqIE92ZXJyaWRlIGZvciBydW50aW1lIHBvd2VyIG1hbmFnZW1lbnQgY29udHJvbCBmb3IgZEdQ VXMgaW4gUFgvSEcgbGFwdG9wcy4gVGhlIGFtZGdwdSBkcml2ZXIgY2FuIGR5bmFtaWNhbGx5IHBv d2VyIGRvd24KKyAqIHRoZSBkR1BVIG9uIFBYL0hHIGxhcHRvcHMgd2hlbiBpdCBpcyBpZGxlLiBU aGUgZGVmYXVsdCBpcyAtMSAoYXV0byBlbmFibGUpLiBTZXR0aW5nIHRoZSB2YWx1ZSB0byAwIGRp c2FibGVzIHRoaXMgZnVuY3Rpb25hbGl0eS4KKyAqLwogTU9EVUxFX1BBUk1fREVTQyhydW5wbSwg IlBYIHJ1bnRpbWUgcG0gKDEgPSBmb3JjZSBlbmFibGUsIDAgPSBkaXNhYmxlLCAtMSA9IFBYIG9u bHkgZGVmYXVsdCkiKTsKIG1vZHVsZV9wYXJhbV9uYW1lZChydW5wbSwgYW1kZ3B1X3J1bnRpbWVf cG0sIGludCwgMDQ0NCk7CiAKKy8qKgorICogRE9DOiBpcF9ibG9ja19tYXNrICh1aW50KQorICog T3ZlcnJpZGUgd2hhdCBJUCBibG9ja3MgYXJlIGVuYWJsZWQgb24gdGhlIEdQVS4gIEVhY2ggR1BV IGlzIGEgY29sbGVjdGlvbiBvZiBJUCBibG9ja3MgKGdmeCwgZGlzcGxheSwgdmlkZW8sIGV0Yy4p LgorICogVXNlIHRoaXMgcGFyYW1ldGVyIHRvIGRpc2FibGUgc3BlY2lmaWMgYmxvY2tzLiBOb3Rl IHRoYXQgdGhlIElQIGJsb2NrcyBkbyBub3QgaGF2ZSBhIGZpeGVkIGluZGV4IChlLmcuLCB5b3Ug bWlnaHQgaGF2ZSBhIGRldmljZQorICogd2l0aCBtdWx0aXBsZSBpbnN0YW5jZXMgb2YgYW4gSVAg YmxvY2spIHNvIHRoZSBtYXNrIGlzIGJvYXJkIHNwZWNpZmljLiBUaGUgZGVmYXVsdCBpcyAweGZm ZmZmZmZmIChlbmFibGUgYWxsIGJsb2NrcyBvbiBhIGRldmljZSkuCisgKi8KIE1PRFVMRV9QQVJN X0RFU0MoaXBfYmxvY2tfbWFzaywgIklQIEJsb2NrIE1hc2sgKGFsbCBibG9ja3MgZW5hYmxlZCAo ZGVmYXVsdCkpIik7CiBtb2R1bGVfcGFyYW1fbmFtZWQoaXBfYmxvY2tfbWFzaywgYW1kZ3B1X2lw X2Jsb2NrX21hc2ssIHVpbnQsIDA0NDQpOwogCisvKioKKyAqIERPQzogYmFwbSAoaW50KQorICog VG8gZGlzYWJsZSBCQVBNICgwID0gZGlzYWJsZSkuIFRoZSBkZWZhdWx0IC0xIChhdXRvLCBlbmFi bGVkKQorICovCiBNT0RVTEVfUEFSTV9ERVNDKGJhcG0sICJCQVBNIHN1cHBvcnQgKDEgPSBlbmFi bGUsIDAgPSBkaXNhYmxlLCAtMSA9IGF1dG8pIik7CiBtb2R1bGVfcGFyYW1fbmFtZWQoYmFwbSwg YW1kZ3B1X2JhcG0sIGludCwgMDQ0NCk7CiAKKy8qKgorICogRE9DOiBkZWVwX2NvbG9yIChpbnQp CisgKiBTZXQgMSB0byBlbmFibGUgRGVlcCBDb2xvciBzdXBwb3J0LiBUaGUgZGVmYXVsdCBpcyAw IChkaXNhYmxlZCkuCisgKi8KIE1PRFVMRV9QQVJNX0RFU0MoZGVlcF9jb2xvciwgIkRlZXAgQ29s b3Igc3VwcG9ydCAoMSA9IGVuYWJsZSwgMCA9IGRpc2FibGUgKGRlZmF1bHQpKSIpOwogbW9kdWxl X3BhcmFtX25hbWVkKGRlZXBfY29sb3IsIGFtZGdwdV9kZWVwX2NvbG9yLCBpbnQsIDA0NDQpOwog CisvKioKKyAqIERPQzogdm1fc2l6ZSAoaW50KQorICogT3ZlcnJpZGUgdGhlIHNpemUgb2YgdGhl IEdQVSdzIHBlciBjbGllbnQgdmlydHVhbCBhZGRyZXNzIHNwYWNlIGluIEdpQi4gIFRoZSBkZWZh dWx0IGlzIC0xIChhdXRvbWF0aWMgZm9yIGVhY2ggYXNpYykuCisgKi8KIE1PRFVMRV9QQVJNX0RF U0Modm1fc2l6ZSwgIlZNIGFkZHJlc3Mgc3BhY2Ugc2l6ZSBpbiBnaWdhYnl0ZXMgKGRlZmF1bHQg NjRHQikiKTsKIG1vZHVsZV9wYXJhbV9uYW1lZCh2bV9zaXplLCBhbWRncHVfdm1fc2l6ZSwgaW50 LCAwNDQ0KTsKIAorLyoqCisgKiBET0M6IHZtX2ZyYWdtZW50X3NpemUgKGludCkKKyAqIE92ZXJy aWRlIFZNIGZyYWdtZW50IHNpemUgaW4gYml0cyAoNCwgNSwgZXRjLiA0ID0gNjRLLCA5ID0gMk0p LiBUaGUgZGVmYXVsdCBpcyAtMSAoYXV0b21hdGljIGZvciBlYWNoIGFzaWMpLgorICovCiBNT0RV TEVfUEFSTV9ERVNDKHZtX2ZyYWdtZW50X3NpemUsICJWTSBmcmFnbWVudCBzaXplIGluIGJpdHMg KDQsIDUsIGV0Yy4gNCA9IDY0SyAoZGVmYXVsdCksIE1heCA5ID0gMk0pIik7CiBtb2R1bGVfcGFy YW1fbmFtZWQodm1fZnJhZ21lbnRfc2l6ZSwgYW1kZ3B1X3ZtX2ZyYWdtZW50X3NpemUsIGludCwg MDQ0NCk7CiAKKy8qKgorICogRE9DOiB2bV9ibG9ja19zaXplIChpbnQpCisgKiBPdmVycmlkZSBW TSBwYWdlIHRhYmxlIHNpemUgaW4gYml0cyAoZGVmYXVsdCBkZXBlbmRpbmcgb24gdm1fc2l6ZSBh bmQgaHcgc2V0dXApLiBUaGUgZGVmYXVsdCBpcyAtMSAoYXV0b21hdGljIGZvciBlYWNoIGFzaWMp LgorICovCiBNT0RVTEVfUEFSTV9ERVNDKHZtX2Jsb2NrX3NpemUsICJWTSBwYWdlIHRhYmxlIHNp emUgaW4gYml0cyAoZGVmYXVsdCBkZXBlbmRpbmcgb24gdm1fc2l6ZSkiKTsKIG1vZHVsZV9wYXJh bV9uYW1lZCh2bV9ibG9ja19zaXplLCBhbWRncHVfdm1fYmxvY2tfc2l6ZSwgaW50LCAwNDQ0KTsK IAorLyoqCisgKiBET0M6IHZtX2ZhdWx0X3N0b3AgKGludCkKKyAqIFN0b3Agb24gVk0gZmF1bHQg Zm9yIGRlYnVnZ2luZyAoMCA9IG5ldmVyLCAxID0gcHJpbnQgZmlyc3QsIDIgPSBhbHdheXMpLiBU aGUgZGVmYXVsdCBpcyAwIChObyBzdG9wKS4KKyAqLwogTU9EVUxFX1BBUk1fREVTQyh2bV9mYXVs dF9zdG9wLCAiU3RvcCBvbiBWTSBmYXVsdCAoMCA9IG5ldmVyIChkZWZhdWx0KSwgMSA9IHByaW50 IGZpcnN0LCAyID0gYWx3YXlzKSIpOwogbW9kdWxlX3BhcmFtX25hbWVkKHZtX2ZhdWx0X3N0b3As IGFtZGdwdV92bV9mYXVsdF9zdG9wLCBpbnQsIDA0NDQpOwogCisvKioKKyAqIERPQzogdm1fZGVi dWcgKGludCkKKyAqIERlYnVnIFZNIGhhbmRsaW5nICgwID0gZGlzYWJsZWQsIDEgPSBlbmFibGVk KS4gVGhlIGRlZmF1bHQgaXMgMCAoRGlzYWJsZWQpLgorICovCiBNT0RVTEVfUEFSTV9ERVNDKHZt X2RlYnVnLCAiRGVidWcgVk0gaGFuZGxpbmcgKDAgPSBkaXNhYmxlZCAoZGVmYXVsdCksIDEgPSBl bmFibGVkKSIpOwogbW9kdWxlX3BhcmFtX25hbWVkKHZtX2RlYnVnLCBhbWRncHVfdm1fZGVidWcs IGludCwgMDY0NCk7CiAKKy8qKgorICogRE9DOiB2bV91cGRhdGVfbW9kZSAoaW50KQorICogT3Zl cnJpZGUgVk0gdXBkYXRlIG1vZGUuIFZNIHVwZGF0ZWQgYnkgdXNpbmcgQ1BVICgwID0gbmV2ZXIs IDEgPSBHcmFwaGljcyBvbmx5LCAyID0gQ29tcHV0ZSBvbmx5LCAzID0gQm90aCkuIFRoZSBkZWZh dWx0CisgKiBpcyAtMSAoT25seSBpbiBsYXJnZSBCQVIoTEIpIHN5c3RlbXMgQ29tcHV0ZSBWTSB0 YWJsZXMgd2lsbCBiZSB1cGRhdGVkIGJ5IENQVSwgb3RoZXJ3aXNlIDAsIG5ldmVyKS4KKyAqLwog TU9EVUxFX1BBUk1fREVTQyh2bV91cGRhdGVfbW9kZSwgIlZNIHVwZGF0ZSB1c2luZyBDUFUgKDAg PSBuZXZlciAoZGVmYXVsdCBleGNlcHQgZm9yIGxhcmdlIEJBUihMQikpLCAxID0gR3JhcGhpY3Mg b25seSwgMiA9IENvbXB1dGUgb25seSAoZGVmYXVsdCBmb3IgTEIpLCAzID0gQm90aCIpOwogbW9k dWxlX3BhcmFtX25hbWVkKHZtX3VwZGF0ZV9tb2RlLCBhbWRncHVfdm1fdXBkYXRlX21vZGUsIGlu dCwgMDQ0NCk7CiAKKy8qKgorICogRE9DOiB2cmFtX3BhZ2Vfc3BsaXQgKGludCkKKyAqIE92ZXJy aWRlIHRoZSBudW1iZXIgb2YgcGFnZXMgYWZ0ZXIgd2Ugc3BsaXQgVlJBTSBhbGxvY2F0aW9ucyAo ZGVmYXVsdCA1MTIsIC0xID0gZGlzYWJsZSkuIFRoZSBkZWZhdWx0IGlzIDUxMi4KKyAqLwogTU9E VUxFX1BBUk1fREVTQyh2cmFtX3BhZ2Vfc3BsaXQsICJOdW1iZXIgb2YgcGFnZXMgYWZ0ZXIgd2Ug c3BsaXQgVlJBTSBhbGxvY2F0aW9ucyAoZGVmYXVsdCA1MTIsIC0xID0gZGlzYWJsZSkiKTsKIG1v ZHVsZV9wYXJhbV9uYW1lZCh2cmFtX3BhZ2Vfc3BsaXQsIGFtZGdwdV92cmFtX3BhZ2Vfc3BsaXQs IGludCwgMDQ0NCk7CiAKKy8qKgorICogRE9DOiBleHBfaHdfc3VwcG9ydCAoaW50KQorICogRW5h YmxlIGV4cGVyaW1lbnRhbCBodyBzdXBwb3J0ICgxID0gZW5hYmxlKS4gVGhlIGRlZmF1bHQgaXMg MCAoZGlzYWJsZWQpLgorICovCiBNT0RVTEVfUEFSTV9ERVNDKGV4cF9od19zdXBwb3J0LCAiZXhw ZXJpbWVudGFsIGh3IHN1cHBvcnQgKDEgPSBlbmFibGUsIDAgPSBkaXNhYmxlIChkZWZhdWx0KSki KTsKIG1vZHVsZV9wYXJhbV9uYW1lZChleHBfaHdfc3VwcG9ydCwgYW1kZ3B1X2V4cF9od19zdXBw b3J0LCBpbnQsIDA0NDQpOwogCisvKioKKyAqIERPQzogZGMgKGludCkKKyAqIERpc2FibGUvRW5h YmxlIERpc3BsYXkgQ29yZSBkcml2ZXIgZm9yIGRlYnVnZ2luZyAoMSA9IGVuYWJsZSwgMCA9IGRp c2FibGUpLiBUaGUgZGVmYXVsdCBpcyAtMSAoYXV0b21hdGljIGZvciBlYWNoIGFzaWMpLgorICov CiBNT0RVTEVfUEFSTV9ERVNDKGRjLCAiRGlzcGxheSBDb3JlIGRyaXZlciAoMSA9IGVuYWJsZSwg MCA9IGRpc2FibGUsIC0xID0gYXV0byAoZGVmYXVsdCkpIik7CiBtb2R1bGVfcGFyYW1fbmFtZWQo ZGMsIGFtZGdwdV9kYywgaW50LCAwNDQ0KTsKIAogTU9EVUxFX1BBUk1fREVTQyhkY19sb2csICJE aXNwbGF5IENvcmUgTG9nIExldmVsICgwID0gbWluaW1hbCAoZGVmYXVsdCksIDEgPSBjaGF0dHki KTsKIG1vZHVsZV9wYXJhbV9uYW1lZChkY19sb2csIGFtZGdwdV9kY19sb2csIGludCwgMDQ0NCk7 CiAKKy8qKgorICogRE9DOiBzY2hlZF9qb2JzIChpbnQpCisgKiBPdmVycmlkZSB0aGUgbWF4IG51 bWJlciBvZiBqb2JzIHN1cHBvcnRlZCBpbiB0aGUgc3cgcXVldWUuIFRoZSBkZWZhdWx0IGlzIDMy LgorICovCiBNT0RVTEVfUEFSTV9ERVNDKHNjaGVkX2pvYnMsICJ0aGUgbWF4IG51bWJlciBvZiBq b2JzIHN1cHBvcnRlZCBpbiB0aGUgc3cgcXVldWUgKGRlZmF1bHQgMzIpIik7CiBtb2R1bGVfcGFy YW1fbmFtZWQoc2NoZWRfam9icywgYW1kZ3B1X3NjaGVkX2pvYnMsIGludCwgMDQ0NCk7CiAKKy8q KgorICogRE9DOiBzY2hlZF9od19zdWJtaXNzaW9uIChpbnQpCisgKiBPdmVycmlkZSB0aGUgbWF4 IG51bWJlciBvZiBIVyBzdWJtaXNzaW9ucy4gVGhlIGRlZmF1bHQgaXMgMi4KKyAqLwogTU9EVUxF X1BBUk1fREVTQyhzY2hlZF9od19zdWJtaXNzaW9uLCAidGhlIG1heCBudW1iZXIgb2YgSFcgc3Vi bWlzc2lvbnMgKGRlZmF1bHQgMikiKTsKIG1vZHVsZV9wYXJhbV9uYW1lZChzY2hlZF9od19zdWJt aXNzaW9uLCBhbWRncHVfc2NoZWRfaHdfc3VibWlzc2lvbiwgaW50LCAwNDQ0KTsKIAorLyoqCisg KiBET0M6IHBwZmVhdHVyZW1hc2sgKHVpbnQpCisgKiBPdmVycmlkZSB3aGF0IHBvd2VyIGZlYXR1 cmVzIGFyZSBlbmFibGVkLiBUaGUgZGVmYXVsdCBpcyAweGZmZmYzZmZmIChnZnhvZmYoYml0IDE1 KSwgb3ZlcmRyaXZlcihiaXQgMTQpIGRpc2FibGVkKS4KKyAqLwogTU9EVUxFX1BBUk1fREVTQyhw cGZlYXR1cmVtYXNrLCAiYWxsIHBvd2VyIGZlYXR1cmVzIGVuYWJsZWQgKGRlZmF1bHQpKSIpOwog bW9kdWxlX3BhcmFtX25hbWVkKHBwZmVhdHVyZW1hc2ssIGFtZGdwdV9wcF9mZWF0dXJlX21hc2ss IHVpbnQsIDA0NDQpOwogCkBAIC0yNDEsNTggKzM2NywxMjkgQEAgbW9kdWxlX3BhcmFtX25hbWVk KG5vX2V2aWN0LCBhbWRncHVfbm9fZXZpY3QsIGludCwgMDQ0NCk7CiBNT0RVTEVfUEFSTV9ERVND KGRpcmVjdF9nbWFfc2l6ZSwgIkRpcmVjdCBHTUEgc2l6ZSBpbiBtZWdhYnl0ZXMgKG1heCA5Nk1C KSIpOwogbW9kdWxlX3BhcmFtX25hbWVkKGRpcmVjdF9nbWFfc2l6ZSwgYW1kZ3B1X2RpcmVjdF9n bWFfc2l6ZSwgaW50LCAwNDQ0KTsKIAorLyoqCisgKiBET0M6IHBjaWVfZ2VuX2NhcCAodWludCkK KyAqIE92ZXJyaWRlIFBDSUUgZ2VuIHNwZWVkIGNhcGFiaWxpdGllcy4gVGhlIGRlZmF1bHQgaXMg MCAoYXV0b21hdGljIGZvciBlYWNoIGFzaWMpLgorICovCiBNT0RVTEVfUEFSTV9ERVNDKHBjaWVf Z2VuX2NhcCwgIlBDSUUgR2VuIENhcHMgKDA6IGF1dG9kZXRlY3QgKGRlZmF1bHQpKSIpOwogbW9k dWxlX3BhcmFtX25hbWVkKHBjaWVfZ2VuX2NhcCwgYW1kZ3B1X3BjaWVfZ2VuX2NhcCwgdWludCwg MDQ0NCk7CiAKKy8qKgorICogRE9DOiBwY2llX2xhbmVfY2FwICh1aW50KQorICogT3ZlcnJpZGUg UENJRSBsYW5lcyBjYXBhYmlsaXRpZXMuIFRoZSBkZWZhdWx0IGlzIDAgKGF1dG9tYXRpYyBmb3Ig ZWFjaCBhc2ljKS4KKyAqLwogTU9EVUxFX1BBUk1fREVTQyhwY2llX2xhbmVfY2FwLCAiUENJRSBM YW5lIENhcHMgKDA6IGF1dG9kZXRlY3QgKGRlZmF1bHQpKSIpOwogbW9kdWxlX3BhcmFtX25hbWVk KHBjaWVfbGFuZV9jYXAsIGFtZGdwdV9wY2llX2xhbmVfY2FwLCB1aW50LCAwNDQ0KTsKIAorLyoq CisgKiBET0M6IGNnX21hc2sgKHVpbnQpCisgKiBPdmVycmlkZSB3aGF0IENsb2NrZ2F0aW5nIGZl YXR1cmVzIGFyZSBlbmFibGVkIG9uIEdQVSAoMCA9IGRpc2FibGUgY2xvY2sgZ2F0aW5nKS4gVGhl IGRlZmF1bHQgaXMgMHhmZmZmZmZmZiAoYWxsIGVuYWJsZWQpLgorICovCiBNT0RVTEVfUEFSTV9E RVNDKGNnX21hc2ssICJDbG9ja2dhdGluZyBmbGFncyBtYXNrICgwID0gZGlzYWJsZSBjbG9jayBn YXRpbmcpIik7CiBtb2R1bGVfcGFyYW1fbmFtZWQoY2dfbWFzaywgYW1kZ3B1X2NnX21hc2ssIHVp bnQsIDA0NDQpOwogCisvKioKKyAqIERPQzogcGdfbWFzayAodWludCkKKyAqIE92ZXJyaWRlIHdo YXQgUG93ZXJnYXRpbmcgZmVhdHVyZXMgYXJlIGVuYWJsZWQgb24gR1BVICgwID0gZGlzYWJsZSBw b3dlciBnYXRpbmcpLiBUaGUgZGVmYXVsdCBpcyAweGZmZmZmZmZmIChhbGwgZW5hYmxlZCkuCisg Ki8KIE1PRFVMRV9QQVJNX0RFU0MocGdfbWFzaywgIlBvd2VyZ2F0aW5nIGZsYWdzIG1hc2sgKDAg PSBkaXNhYmxlIHBvd2VyIGdhdGluZykiKTsKIG1vZHVsZV9wYXJhbV9uYW1lZChwZ19tYXNrLCBh bWRncHVfcGdfbWFzaywgdWludCwgMDQ0NCk7CiAKKy8qKgorICogRE9DOiBzZG1hX3BoYXNlX3F1 YW50dW0gKHVpbnQpCisgKiBPdmVycmlkZSBTRE1BIGNvbnRleHQgc3dpdGNoIHBoYXNlIHF1YW50 dW0gKHggMUsgR1BVIGNsb2NrIGN5Y2xlcywgMCA9IG5vIGNoYW5nZSkuIFRoZSBkZWZhdWx0IGlz IDMyLgorICovCiBNT0RVTEVfUEFSTV9ERVNDKHNkbWFfcGhhc2VfcXVhbnR1bSwgIlNETUEgY29u dGV4dCBzd2l0Y2ggcGhhc2UgcXVhbnR1bSAoeCAxSyBHUFUgY2xvY2sgY3ljbGVzLCAwID0gbm8g Y2hhbmdlIChkZWZhdWx0IDMyKSkiKTsKIG1vZHVsZV9wYXJhbV9uYW1lZChzZG1hX3BoYXNlX3F1 YW50dW0sIGFtZGdwdV9zZG1hX3BoYXNlX3F1YW50dW0sIHVpbnQsIDA0NDQpOwogCisvKioKKyAq IERPQzogZGlzYWJsZV9jdSAoY2hhcnApCisgKiBTZXQgdG8gZGlzYWJsZSBDVXMgKEl0J3Mgc2V0 IGxpa2Ugc2Uuc2guY3UsLi4uKS4gVGhlIGRlZmF1bHQgaXMgTlVMTC4KKyAqLwogTU9EVUxFX1BB Uk1fREVTQyhkaXNhYmxlX2N1LCAiRGlzYWJsZSBDVXMgKHNlLnNoLmN1LC4uLikiKTsKIG1vZHVs ZV9wYXJhbV9uYW1lZChkaXNhYmxlX2N1LCBhbWRncHVfZGlzYWJsZV9jdSwgY2hhcnAsIDA0NDQp OwogCisvKioKKyAqIERPQzogdmlydHVhbF9kaXNwbGF5IChjaGFycCkKKyAqIFNldCB0byBlbmFi bGUgdmlydHVhbCBkaXNwbGF5IGZlYXR1cmUuIFRoaXMgZmVhdHVyZSBwcm92aWRlcyBhIHZpcnR1 YWwgZGlzcGxheSBoYXJkd2FyZSBvbiBoZWFkbGVzcyBib2FyZHMKKyAqIG9yIGluIHZpcnR1YWxp emVkIGVudmlyb25tZW50cy4gSXQgd2lsbCBiZSBzZXQgbGlrZSB4eHh4Onh4Onh4LngseDt4eHh4 Onh4Onh4LngseC4gVGhlIGRlZmF1bHQgaXMgTlVMTC4KKyAqLwogTU9EVUxFX1BBUk1fREVTQyh2 aXJ0dWFsX2Rpc3BsYXksCiAJCSAiRW5hYmxlIHZpcnR1YWwgZGlzcGxheSBmZWF0dXJlICh0aGUg dmlydHVhbF9kaXNwbGF5IHdpbGwgYmUgc2V0IGxpa2UgeHh4eDp4eDp4eC54LHg7eHh4eDp4eDp4 eC54LHgpIik7CiBtb2R1bGVfcGFyYW1fbmFtZWQodmlydHVhbF9kaXNwbGF5LCBhbWRncHVfdmly dHVhbF9kaXNwbGF5LCBjaGFycCwgMDQ0NCk7CiAKKy8qKgorICogRE9DOiBuZ2cgKGludCkKKyAq IFNldCB0byBlbmFibGUgTmV4dCBHZW5lcmF0aW9uIEdyYXBoaWNzICgxID0gZW5hYmxlKS4gVGhl IGRlZmF1bHQgaXMgMCAoZGlzYWJsZWQpLgorICovCiBNT0RVTEVfUEFSTV9ERVNDKG5nZywgIk5l eHQgR2VuZXJhdGlvbiBHcmFwaGljcyAoMSA9IGVuYWJsZSwgMCA9IGRpc2FibGUoZGVmYXVsdCBk ZXBlbmRpbmcgb24gZ2Z4KSkiKTsKIG1vZHVsZV9wYXJhbV9uYW1lZChuZ2csIGFtZGdwdV9uZ2cs IGludCwgMDQ0NCk7CiAKKy8qKgorICogRE9DOiBwcmltX2J1Zl9wZXJfc2UgKGludCkKKyAqIE92 ZXJyaWRlIHRoZSBzaXplIG9mIFByaW1pdGl2ZSBCdWZmZXIgcGVyIFNoYWRlciBFbmdpbmUgaW4g Qnl0ZS4gVGhlIGRlZmF1bHQgaXMgMCAoZGVwZW5kaW5nIG9uIGdmeCkuCisgKi8KIE1PRFVMRV9Q QVJNX0RFU0MocHJpbV9idWZfcGVyX3NlLCAidGhlIHNpemUgb2YgUHJpbWl0aXZlIEJ1ZmZlciBw ZXIgU2hhZGVyIEVuZ2luZSAoZGVmYXVsdCBkZXBlbmRpbmcgb24gZ2Z4KSIpOwogbW9kdWxlX3Bh cmFtX25hbWVkKHByaW1fYnVmX3Blcl9zZSwgYW1kZ3B1X3ByaW1fYnVmX3Blcl9zZSwgaW50LCAw NDQ0KTsKIAorLyoqCisgKiBET0M6IHBvc19idWZfcGVyX3NlIChpbnQpCisgKiBPdmVycmlkZSB0 aGUgc2l6ZSBvZiBQb3NpdGlvbiBCdWZmZXIgcGVyIFNoYWRlciBFbmdpbmUgaW4gQnl0ZS4gVGhl IGRlZmF1bHQgaXMgMCAoZGVwZW5kaW5nIG9uIGdmeCkuCisgKi8KIE1PRFVMRV9QQVJNX0RFU0Mo cG9zX2J1Zl9wZXJfc2UsICJ0aGUgc2l6ZSBvZiBQb3NpdGlvbiBCdWZmZXIgcGVyIFNoYWRlciBF bmdpbmUgKGRlZmF1bHQgZGVwZW5kaW5nIG9uIGdmeCkiKTsKIG1vZHVsZV9wYXJhbV9uYW1lZChw b3NfYnVmX3Blcl9zZSwgYW1kZ3B1X3Bvc19idWZfcGVyX3NlLCBpbnQsIDA0NDQpOwogCisvKioK KyAqIERPQzogY250bF9zYl9idWZfcGVyX3NlIChpbnQpCisgKiBPdmVycmlkZSB0aGUgc2l6ZSBv ZiBDb250cm9sIFNpZGViYW5kIHBlciBTaGFkZXIgRW5naW5lIGluIEJ5dGUuIFRoZSBkZWZhdWx0 IGlzIDAgKGRlcGVuZGluZyBvbiBnZngpLgorICovCiBNT0RVTEVfUEFSTV9ERVNDKGNudGxfc2Jf YnVmX3Blcl9zZSwgInRoZSBzaXplIG9mIENvbnRyb2wgU2lkZWJhbmQgcGVyIFNoYWRlciBFbmdp bmUgKGRlZmF1bHQgZGVwZW5kaW5nIG9uIGdmeCkiKTsKIG1vZHVsZV9wYXJhbV9uYW1lZChjbnRs X3NiX2J1Zl9wZXJfc2UsIGFtZGdwdV9jbnRsX3NiX2J1Zl9wZXJfc2UsIGludCwgMDQ0NCk7CiAK Ky8qKgorICogRE9DOiBwYXJhbV9idWZfcGVyX3NlIChpbnQpCisgKiBPdmVycmlkZSB0aGUgc2l6 ZSBvZiBPZmYtQ2hpcCBQcmFtYXRlciBDYWNoZSBwZXIgU2hhZGVyIEVuZ2luZSBpbiBCeXRlLiBU aGUgZGVmYXVsdCBpcyAwIChkZXBlbmRpbmcgb24gZ2Z4KS4KKyAqLwogTU9EVUxFX1BBUk1fREVT QyhwYXJhbV9idWZfcGVyX3NlLCAidGhlIHNpemUgb2YgT2ZmLUNoaXAgUHJhbWF0ZXIgQ2FjaGUg cGVyIFNoYWRlciBFbmdpbmUgKGRlZmF1bHQgZGVwZW5kaW5nIG9uIGdmeCkiKTsKIG1vZHVsZV9w YXJhbV9uYW1lZChwYXJhbV9idWZfcGVyX3NlLCBhbWRncHVfcGFyYW1fYnVmX3Blcl9zZSwgaW50 LCAwNDQ0KTsKIAorLyoqCisgKiBET0M6IGpvYl9oYW5nX2xpbWl0IChpbnQpCisgKiBTZXQgaG93 IG11Y2ggdGltZSBhbGxvdyBhIGpvYiBoYW5nIGFuZCBub3QgZHJvcCBpdC4gVGhlIGRlZmF1bHQg aXMgMC4KKyAqLwogTU9EVUxFX1BBUk1fREVTQyhqb2JfaGFuZ19saW1pdCwgImhvdyBtdWNoIHRp bWUgYWxsb3cgYSBqb2IgaGFuZyBhbmQgbm90IGRyb3AgaXQgKGRlZmF1bHQgMCkiKTsKIG1vZHVs ZV9wYXJhbV9uYW1lZChqb2JfaGFuZ19saW1pdCwgYW1kZ3B1X2pvYl9oYW5nX2xpbWl0LCBpbnQg LDA0NDQpOwogCisvKioKKyAqIERPQzogbGJwdyAoaW50KQorICogT3ZlcnJpZGUgTG9hZCBCYWxh bmNpbmcgUGVyIFdhdHQgKExCUFcpIHN1cHBvcnQgKDEgPSBlbmFibGUsIDAgPSBkaXNhYmxlKS4g VGhlIGRlZmF1bHQgaXMgLTEgKGF1dG8sIGVuYWJsZWQpLgorICovCiBNT0RVTEVfUEFSTV9ERVND KGxicHcsICJMb2FkIEJhbGFuY2luZyBQZXIgV2F0dCAoTEJQVykgc3VwcG9ydCAoMSA9IGVuYWJs ZSwgMCA9IGRpc2FibGUsIC0xID0gYXV0bykiKTsKIG1vZHVsZV9wYXJhbV9uYW1lZChsYnB3LCBh bWRncHVfbGJwdywgaW50LCAwNDQ0KTsKIAogTU9EVUxFX1BBUk1fREVTQyhjb21wdXRlX211bHRp cGlwZSwgIkZvcmNlIGNvbXB1dGUgcXVldWVzIHRvIGJlIHNwcmVhZCBhY3Jvc3MgcGlwZXMgKDEg PSBlbmFibGUsIDAgPSBkaXNhYmxlLCAtMSA9IGF1dG8pIik7CiBtb2R1bGVfcGFyYW1fbmFtZWQo Y29tcHV0ZV9tdWx0aXBpcGUsIGFtZGdwdV9jb21wdXRlX211bHRpcGlwZSwgaW50LCAwNDQ0KTsK IAorLyoqCisgKiBET0M6IGdwdV9yZWNvdmVyeSAoaW50KQorICogU2V0IHRvIGVuYWJsZSBHUFUg cmVjb3ZlcnkgbWVjaGFuaXNtICgxID0gZW5hYmxlLCAwID0gZGlzYWJsZSkuIFRoZSBkZWZhdWx0 IGlzIC0xIChhdXRvLCBkaXNhYmxlZCBleGNlcHQgU1JJT1YpLgorICovCiBNT0RVTEVfUEFSTV9E RVNDKGdwdV9yZWNvdmVyeSwgIkVuYWJsZSBHUFUgcmVjb3ZlcnkgbWVjaGFuaXNtLCAoMSA9IGVu YWJsZSwgMCA9IGRpc2FibGUsIC0xID0gYXV0bykiKTsKIG1vZHVsZV9wYXJhbV9uYW1lZChncHVf cmVjb3ZlcnksIGFtZGdwdV9ncHVfcmVjb3ZlcnksIGludCwgMDQ0NCk7CiAKKy8qKgorICogRE9D OiBlbXVfbW9kZSAoaW50KQorICogU2V0IHZhbHVlIDEgdG8gZW5hYmxlIGVtdWxhdGlvbiBtb2Rl LiBUaGUgZGVmYXVsdCBpcyAwIChkaXNhYmxlZCkuCisgKi8KIE1PRFVMRV9QQVJNX0RFU0MoZW11 X21vZGUsICJFbXVsYXRpb24gbW9kZSwgKDEgPSBlbmFibGUsIDAgPSBkaXNhYmxlKSIpOwogbW9k dWxlX3BhcmFtX25hbWVkKGVtdV9tb2RlLCBhbWRncHVfZW11X21vZGUsIGludCwgMDQ0NCk7CiAK Ky8qKgorICogRE9DOiBzaV9zdXBwb3J0IChpbnQpCisgKiBTZXQgU0kgc3VwcG9ydCBkcml2ZXIu IFRoaXMgcGFyYW1ldGVyIHdvcmtzIGFmdGVyIHNldCBjb25maWcgQ09ORklHX0RSTV9BTURHUFVf U0kuIEZvciBTSSBhc2ljLCB3aGVuIHJhZGVvbiBkcml2ZXIgaXMgZW5hYmxlZCwKKyAqIHNldCB2 YWx1ZSAwIHRvIHVzZSByYWRlb24gZHJpdmVyLCB3aGlsZSBzZXQgdmFsdWUgMSB0byB1c2UgYW1k Z3B1IGRyaXZlci4gVGhlIGRlZmF1bHQgaXMgdXNpbmcgcmFkZW9uIGRyaXZlciB3aGVuIGl0IGF2 YWlsYWJsZSwKKyAqIG90aGVyd2lzZSB1c2luZyBhbWRncHUgZHJpdmVyLgorICovCiAjaWZkZWYg Q09ORklHX0RSTV9BTURHUFVfU0kKIAogI2lmIGRlZmluZWQoQ09ORklHX0RSTV9SQURFT04pIHx8 IGRlZmluZWQoQ09ORklHX0RSTV9SQURFT05fTU9EVUxFKQpAQCAtMzA2LDYgKzUwMywxMiBAQCBN T0RVTEVfUEFSTV9ERVNDKHNpX3N1cHBvcnQsICJTSSBzdXBwb3J0ICgxID0gZW5hYmxlZCAoZGVm YXVsdCksIDAgPSBkaXNhYmxlZCkiKQogbW9kdWxlX3BhcmFtX25hbWVkKHNpX3N1cHBvcnQsIGFt ZGdwdV9zaV9zdXBwb3J0LCBpbnQsIDA0NDQpOwogI2VuZGlmCiAKKy8qKgorICogRE9DOiBjaWtf c3VwcG9ydCAoaW50KQorICogU2V0IENJSyBzdXBwb3J0IGRyaXZlci4gVGhpcyBwYXJhbWV0ZXIg d29ya3MgYWZ0ZXIgc2V0IGNvbmZpZyBDT05GSUdfRFJNX0FNREdQVV9DSUsuIEZvciBDSUsgYXNp Yywgd2hlbiByYWRlb24gZHJpdmVyIGlzIGVuYWJsZWQsCisgKiBzZXQgdmFsdWUgMCB0byB1c2Ug cmFkZW9uIGRyaXZlciwgd2hpbGUgc2V0IHZhbHVlIDEgdG8gdXNlIGFtZGdwdSBkcml2ZXIuIFRo ZSBkZWZhdWx0IGlzIHVzaW5nIHJhZGVvbiBkcml2ZXIgd2hlbiBpdCBhdmFpbGFibGUsCisgKiBv dGhlcndpc2UgdXNpbmcgYW1kZ3B1IGRyaXZlci4KKyAqLwogI2lmZGVmIENPTkZJR19EUk1fQU1E R1BVX0NJSwogCiAjaWYgZGVmaW5lZChDT05GSUdfRFJNX1JBREVPTikgfHwgZGVmaW5lZChDT05G SUdfRFJNX1JBREVPTl9NT0RVTEUpCkBAIC0zMTksNiArNTIyLDExIEBAIE1PRFVMRV9QQVJNX0RF U0MoY2lrX3N1cHBvcnQsICJDSUsgc3VwcG9ydCAoMSA9IGVuYWJsZWQgKGRlZmF1bHQpLCAwID0g ZGlzYWJsZWQpCiBtb2R1bGVfcGFyYW1fbmFtZWQoY2lrX3N1cHBvcnQsIGFtZGdwdV9jaWtfc3Vw cG9ydCwgaW50LCAwNDQ0KTsKICNlbmRpZgogCisvKioKKyAqIERPQzogc211X21lbW9yeV9wb29s X3NpemUgKHVpbnQpCisgKiBJdCBpcyB1c2VkIHRvIHJlc2VydmUgZ3R0IGZvciBzbXUgZGVidWcg dXNhZ2UsIHNldHRpbmcgdmFsdWUgMCB0byBkaXNhYmxlIGl0LiBUaGUgYWN0dWFsIHNpemUgaXMg dmFsdWUgKiAyNTZNaUIuCisgKiBFLmcuIDB4MSA9IDI1Nk1ieXRlLCAweDIgPSA1MTJNYnl0ZSwg MHg0ID0gMSBHYnl0ZSwgMHg4ID0gMkdCeXRlLiBUaGUgZGVmYXVsdCBpcyAwIChkaXNhYmxlZCku CisgKi8KIE1PRFVMRV9QQVJNX0RFU0Moc211X21lbW9yeV9wb29sX3NpemUsCiAJInJlc2VydmUg Z3R0IGZvciBzbXUgZGVidWcgdXNhZ2UsIDAgPSBkaXNhYmxlLCIKIAkJIjB4MSA9IDI1Nk1ieXRl LCAweDIgPSA1MTJNYnl0ZSwgMHg0ID0gMSBHYnl0ZSwgMHg4ID0gMkdCeXRlIik7Ci0tIAoyLjcu NAoKX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18KYW1kLWdm eCBtYWlsaW5nIGxpc3QKYW1kLWdmeEBsaXN0cy5mcmVlZGVza3RvcC5vcmcKaHR0cHM6Ly9saXN0 cy5mcmVlZGVza3RvcC5vcmcvbWFpbG1hbi9saXN0aW5mby9hbWQtZ2Z4Cg==