From mboxrd@z Thu Jan 1 00:00:00 1970 From: Rusty Russell Subject: Re: [PATCH 2/2] ccanlint: Move ccanlint test options from _info comments to code Date: Tue, 27 Dec 2016 14:05:07 +1030 Message-ID: <871swuf3is.fsf@rustcorp.com.au> References: <20161225044915.24219-1-david@gibson.dropbear.id.au> <20161225044915.24219-2-david@gibson.dropbear.id.au> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from ozlabs.org (ozlabs.org [103.22.144.67]) (using TLSv1.2 with cipher ADH-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by lists.ozlabs.org (Postfix) with ESMTPS id 3tpmw30d6bzDq9G for ; Thu, 29 Dec 2016 09:03:47 +1100 (AEDT) In-Reply-To: <20161225044915.24219-2-david@gibson.dropbear.id.au> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: ccan-bounces+gclcc-ccan=m.gmane.org@lists.ozlabs.org Sender: "ccan" To: David Gibson , ccan@lists.ozlabs.org List-Id: ccan@lists.ozlabs.org RGF2aWQgR2lic29uIDxkYXZpZEBnaWJzb24uZHJvcGJlYXIuaWQuYXU+IHdyaXRlczoKPiBDdXJy ZW50bHksIF9pbmZvIGZpbGVzIGNhbiBzcGVjaWZ5IG9wdGlvbnMsIG9yIG5vdGUgZXhwZWN0ZWQg ZmFpbHVyZXMsIGZvcgo+IGNjYW5saW50IGNoZWNrcyBpbiB0aGUgX2luZm8gZmlsZSB3aXRoIHNw ZWNpYWxseSBzdHJ1Y3R1cmVkIGNvbW1lbnRzLiBUaGF0Cj4gZGlmZmVycyBmcm9tIG1vc3Qgb3Ro ZXIgdGhpbmdzIGNjYW5saW50IGdldHMgZnJvbSBfaW5mbywgd2hlcmUgaXQgaW5zdGVhZAo+IGV4 ZWN1dGVzIHRoZSBpbmZvIGZpbGUgd2l0aCBjZXJ0YWluIHBhcmFtZXRlcnMuCj4KPiBUaGlzIGNo YW5nZXMgY2NhbmxpbnQgYW5kIGV4aXN0aW5nIF9pbmZvIGZpbGVzIHRvIHVzZSB0aGUgbm9ybWFs IG1ldGhvZCBmb3IKPiB0aGUgY2NhbmxpbnQgdGVzdCBvcHRpb25zIGFzIHdlbGwuICBUaGlzIGFs c28gaGFzIHRoZSBhZHZhbnRhZ2UgdGhhdCBhbgo+IGluZm8gZmlsZSBjYW4gYWx0ZXIgaXRzIHRl c3Qgb3B0aW9ucyBiYXNlZCBvbiB0aGluZ3MgZnJvbSBjb25maWcuaCAtIGluCj4gc29tZSBjYXNl cyB3aGV0aGVyIGEgdGVzdCBjYW4gd29yayBvciBub3QgbWlnaHQgZGVwZW5kIG9uIHZhcmlvdXMg dGhpbmdzLgoKQWdyZWVkLCBwbGVhc2UgYXBwbHkhCgpDaGVlcnMsClJ1c3R5LgoKPiBTaWduZWQt b2ZmLWJ5OiBEYXZpZCBHaWJzb24gPGRhdmlkQGdpYnNvbi5kcm9wYmVhci5pZC5hdT4KPiAtLS0K PiAgY2Nhbi9ibG9ja19wb29sL19pbmZvICAgICAgICAgICAgICB8ICA5ICsrKy0tCj4gIGNjYW4v Y2Nhbl90b2tlbml6ZXIvX2luZm8gICAgICAgICAgfCAxNCArKysrLS0tLQo+ICBjY2FuL2Nvcm91 dGluZS9faW5mbyAgICAgICAgICAgICAgIHwgMTAgKysrLS0tCj4gIGNjYW4vY3Jjc3luYy9faW5m byAgICAgICAgICAgICAgICAgfCAgOCArKystLQo+ICBjY2FuL2RlcXVlL19pbmZvICAgICAgICAg ICAgICAgICAgIHwgMTQgKysrKy0tLS0KPiAgY2Nhbi9nZW5lcmF0b3IvX2luZm8gICAgICAgICAg ICAgICB8IDE0ICsrKystLS0tCj4gIGNjYW4vbWlubWF4L19pbmZvICAgICAgICAgICAgICAgICAg fCAxMCArKystLS0KPiAgY2Nhbi9yc3pzaG0vX2luZm8gICAgICAgICAgICAgICAgICB8IDEyICsr KystLS0KPiAgY2Nhbi9zdHJpbmdtYXAvX2luZm8gICAgICAgICAgICAgICB8ICA5ICsrKy0tCj4g IHRvb2xzL2NjYW5saW50L2NjYW5saW50LmMgICAgICAgICAgfCA3MSArKysrKysrKysrKysrKysr Ky0tLS0tLS0tLS0tLS0tLS0tLS0tLQo+ICB0b29scy9jY2FubGludC9jY2FubGludC5oICAgICAg ICAgIHwgIDIgKy0KPiAgdG9vbHMvY2NhbmxpbnQvdGVzdHMvaW5mb19leGlzdHMuYyB8ICAyICst Cj4gIHRvb2xzL2RlcGVuZHMuYyAgICAgICAgICAgICAgICAgICAgfCAxOCArKysrKysrKysrCj4g IHRvb2xzL3Rvb2xzLmggICAgICAgICAgICAgICAgICAgICAgfCAgMyArKwo+ICAxNCBmaWxlcyBj aGFuZ2VkLCAxMTUgaW5zZXJ0aW9ucygrKSwgODEgZGVsZXRpb25zKC0pCj4KPiBkaWZmIC0tZ2l0 IGEvY2Nhbi9ibG9ja19wb29sL19pbmZvIGIvY2Nhbi9ibG9ja19wb29sL19pbmZvCj4gaW5kZXgg YTQyY2RiYS4uZTIxNjk3NiAxMDA2NDQKPiAtLS0gYS9jY2FuL2Jsb2NrX3Bvb2wvX2luZm8KPiAr KysgYi9jY2FuL2Jsb2NrX3Bvb2wvX2luZm8KPiBAQCAtMzgsOSArMzgsNiBAQAo+ICAgKiBBdXRo b3I6IEpvZXkgQWRhbXMgPGpvZXlhZGFtczMuMTQxNTlAZ21haWwuY29tPgo+ICAgKiBMaWNlbnNl OiBNSVQKPiAgICogVmVyc2lvbjogMC4xCj4gLSAqIENjYW5saW50Ogo+IC0gKgkvLyBXZSBhY3R1 YWxseSBkZXBlbmQgb24gdGhlIExHUEwgdGFsbG9jCj4gLSAqCWxpY2Vuc2VfZGVwZW5kc19jb21w YXQgRkFJTAo+ICAgKi8KPiAgaW50IG1haW4oaW50IGFyZ2MsIGNoYXIgKmFyZ3ZbXSkKPiAgewo+ IEBAIC01Myw1ICs1MCwxMSBAQCBpbnQgbWFpbihpbnQgYXJnYywgY2hhciAqYXJndltdKQo+ICAJ CXJldHVybiAwOwo+ICAJfQo+ICAKPiArCWlmIChzdHJjbXAoYXJndlsxXSwgImNjYW5saW50Iikg PT0gMCkgewo+ICsJCS8qIFdlIGFjdHVhbGx5IGRlcGVuZCBvbiB0aGUgTEdQTCB0YWxsb2MgKi8K PiArCQlwcmludGYoImxpY2Vuc2VfZGVwZW5kc19jb21wYXQgRkFJTFxuIik7Cj4gKwkJcmV0dXJu IDA7Cj4gKwl9Cj4gKwo+ICAJcmV0dXJuIDE7Cj4gIH0KPiBkaWZmIC0tZ2l0IGEvY2Nhbi9jY2Fu X3Rva2VuaXplci9faW5mbyBiL2NjYW4vY2Nhbl90b2tlbml6ZXIvX2luZm8KPiBpbmRleCBlZTE0 NzdhLi5mNTExNmI0IDEwMDY0NAo+IC0tLSBhL2NjYW4vY2Nhbl90b2tlbml6ZXIvX2luZm8KPiAr KysgYi9jY2FuL2NjYW5fdG9rZW5pemVyL19pbmZvCj4gQEAgLTgyLDEyICs4Miw2IEBACj4gICAq IH0KPiAgICoKPiAgICogTGljZW5zZTogQlNEICgzIGNsYXVzZSkKPiAtICoKPiAtICogQ2Nhbmxp bnQ6Cj4gLSAqCS8vIFdlIGFjdHVhbGx5IGRlcGVuZCBvbiB0aGUgTEdQTCBkZXBlbmRlbmNpZXMK PiAtICoJbGljZW5zZV9kZXBlbmRzX2NvbXBhdCBGQUlMCj4gLSAqCS8vIFdlIGRvbid0IHB1dCB0 aGUgbGljZW5zZSBsaW5lIGluIGFsbCBmaWxlcy4KPiAtICoJbGljZW5zZV9jb21tZW50IEZBSUwK PiAgICovCj4gIGludCBtYWluKGludCBhcmdjLCBjaGFyICphcmd2W10pCj4gIHsKPiBAQCAtMTAx LDUgKzk1LDEzIEBAIGludCBtYWluKGludCBhcmdjLCBjaGFyICphcmd2W10pCj4gIAkJcmV0dXJu IDA7Cj4gIAl9Cj4gIAo+ICsJaWYgKHN0cmNtcChhcmd2WzFdLCAiY2NhbmxpbnQiKSA9PSAwKSB7 Cj4gKwkJLyogV2UgYWN0dWFsbHkgZGVwZW5kIG9uIHRoZSBMR1BMIGRlcGVuZGVuY2llcyAqLwo+ ICsJCXByaW50ZigibGljZW5zZV9kZXBlbmRzX2NvbXBhdCBGQUlMXG4iKTsKPiArCQkvKiBXZSBk b24ndCBwdXQgdGhlIGxpY2Vuc2UgbGluZSBpbiBhbGwgZmlsZXMuICovCj4gKwkJcHJpbnRmKCJs aWNlbnNlX2NvbW1lbnQgRkFJTFxuIik7Cj4gKwkJcmV0dXJuIDA7Cj4gKwl9Cj4gKwo+ICAJcmV0 dXJuIDE7Cj4gIH0KPiBkaWZmIC0tZ2l0IGEvY2Nhbi9jb3JvdXRpbmUvX2luZm8gYi9jY2FuL2Nv cm91dGluZS9faW5mbwo+IGluZGV4IGE5OTYyOWMuLjA3ZTRiOTYgMTAwNjQ0Cj4gLS0tIGEvY2Nh bi9jb3JvdXRpbmUvX2luZm8KPiArKysgYi9jY2FuL2Nvcm91dGluZS9faW5mbwo+IEBAIC0xNCwx MCArMTQsNiBAQAo+ICAgKgo+ICAgKiBBdXRob3I6IERhdmlkIEdpYnNvbiA8ZGF2aWRAZ2lic29u LmRyb3BiZWFyLmlkLmF1Pgo+ICAgKiBMaWNlbnNlOiBMR1BMICh2Mi4xIG9yIGFueSBsYXRlciB2 ZXJzaW9uKQo+IC0gKgo+IC0gKiBDY2FubGludDoKPiAtICoJLy8gQ29udGV4dCBzd2l0Y2hpbmcg cmVhbGx5IGNvbmZ1c2VzIHZhbGdyaW5kCj4gLSAqCXRlc3RzX3Bhc3NfdmFsZ3JpbmQgRkFJTAo+ ICAgKi8KPiAgaW50IG1haW4oaW50IGFyZ2MsIGNoYXIgKmFyZ3ZbXSkKPiAgewo+IEBAIC00MCw1 ICszNiwxMSBAQCBpbnQgbWFpbihpbnQgYXJnYywgY2hhciAqYXJndltdKQo+ICAJCXJldHVybiAw Owo+ICAJfQo+ICAKPiArCWlmIChzdHJjbXAoYXJndlsxXSwgImNjYW5saW50IikgPT0gMCkgewo+ ICsJCS8qIENvbnRleHQgc3dpdGNoaW5nIHJlYWxseSBjb25mdXNlcyB2YWxncmluZCAqLwo+ICsJ CXByaW50ZigidGVzdHNfcGFzc192YWxncmluZCBGQUlMXG4iKTsKPiArCQlyZXR1cm4gMDsKPiAr CX0KPiArCj4gIAlyZXR1cm4gMTsKPiAgfQo+IGRpZmYgLS1naXQgYS9jY2FuL2NyY3N5bmMvX2lu Zm8gYi9jY2FuL2NyY3N5bmMvX2luZm8KPiBpbmRleCA5ZWJiOGJkLi43NTE2ZjQ0IDEwMDY0NAo+ IC0tLSBhL2NjYW4vY3Jjc3luYy9faW5mbwo+ICsrKyBiL2NjYW4vY3Jjc3luYy9faW5mbwo+IEBA IC03MSw5ICs3MSw2IEBACj4gICAqCj4gICAqIExpY2Vuc2U6IExHUEwgKHYyLjEgb3IgYW55IGxh dGVyIHZlcnNpb24pCj4gICAqIEF1dGhvcjogUnVzdHkgUnVzc2VsbCA8cnVzdHlAcnVzdGNvcnAu Y29tLmF1Pgo+IC0gKiBDY2FubGludDoKPiAtICoJLy8gV2UgYWN0dWFsbHkgZGVwZW5kIG9uIHRo ZSBHUEwgY3JjIHJvdXRpbmVzLCBzbyBub3QgcmVhbGx5IExHUEwgOigKPiAtICoJbGljZW5zZV9k ZXBlbmRzX2NvbXBhdCBGQUlMCj4gICAqLwo+ICBpbnQgbWFpbihpbnQgYXJnYywgY2hhciAqYXJn dltdKQo+ICB7Cj4gQEAgLTg4LDYgKzg1LDExIEBAIGludCBtYWluKGludCBhcmdjLCBjaGFyICph cmd2W10pCj4gIAkJcHJpbnRmKCJjY2FuL2FycmF5X3NpemVcbiIpOwo+ICAJCXJldHVybiAwOwo+ ICAJfQo+ICsJaWYgKHN0cmNtcChhcmd2WzFdLCAiY2NhbmxpbnQiKSA9PSAwKSB7Cj4gKwkJLyog V2UgYWN0dWFsbHkgZGVwZW5kIG9uIHRoZSBHUEwgY3JjIHJvdXRpbmVzLCBzbyBub3QgcmVhbGx5 IExHUEwgOiggKi8KPiArCQlwcmludGYoImxpY2Vuc2VfZGVwZW5kc19jb21wYXQgRkFJTFxuIik7 Cj4gKwkJcmV0dXJuIDA7Cj4gKwl9Cj4gIAo+ICAJcmV0dXJuIDE7Cj4gIH0KPiBkaWZmIC0tZ2l0 IGEvY2Nhbi9kZXF1ZS9faW5mbyBiL2NjYW4vZGVxdWUvX2luZm8KPiBpbmRleCA2MzY4N2I3Li4x YzU0NjBmIDEwMDY0NAo+IC0tLSBhL2NjYW4vZGVxdWUvX2luZm8KPiArKysgYi9jY2FuL2RlcXVl L19pbmZvCj4gQEAgLTEyMiwxMiArMTIyLDYgQEAKPiAgICoKPiAgICogTGljZW5zZTogQVBBQ0hF LTIKPiAgICogQXV0aG9yOiBEYW4gR29vZCA8ZGFuQGRhbmNhbmNvZGUuY29tPgo+IC0gKgo+IC0g KiBDY2FubGludDoKPiAtICoJLy8gdXNlcyBzdGF0ZW1lbnQgZXhwcmVzc2lvbnMKPiAtICoJLy8g c3VwcG9ydGVkIGJ5IGdjYywgY2xhbmcsIGljYywgYW5kIHNvbWUgb3RoZXJzLCBidXQgbm90IG1z dmMKPiAtICoJLy8gKHNlZSBodHRwczovL2djYy5nbnUub3JnL29ubGluZWRvY3MvZ2NjL1N0YXRl bWVudC1FeHBycy5odG1sKQo+IC0gKglvYmplY3RzX2J1aWxkX3dpdGhvdXRfZmVhdHVyZXMgRkFJ TAo+ICAgKi8KPiAgaW50IG1haW4oaW50IGFyZ2MsIGNoYXIgKmFyZ3ZbXSkKPiAgewo+IEBAIC0x NDIsNSArMTM2LDEzIEBAIGludCBtYWluKGludCBhcmdjLCBjaGFyICphcmd2W10pCj4gIAkJcmV0 dXJuIDA7Cj4gIAl9Cj4gIAo+ICsJaWYgKHN0cmNtcChhcmd2WzFdLCAiY2NhbmxpbnQiKSA9PSAw KSB7Cj4gKwkJLyogdXNlcyBzdGF0ZW1lbnQgZXhwcmVzc2lvbnMKPiArCQkgKiBzdXBwb3J0ZWQg YnkgZ2NjLCBjbGFuZywgaWNjLCBhbmQgc29tZSBvdGhlcnMsIGJ1dCBub3QgbXN2Ywo+ICsJCSAq IChzZWUgaHR0cHM6Ly9nY2MuZ251Lm9yZy9vbmxpbmVkb2NzL2djYy9TdGF0ZW1lbnQtRXhwcnMu aHRtbCkgKi8KPiArCQlwcmludGYoIm9iamVjdHNfYnVpbGRfd2l0aG91dF9mZWF0dXJlcyBGQUlM XG4iKTsKPiArCQlyZXR1cm4gMDsKPiArCX0KPiArCj4gIAlyZXR1cm4gMTsKPiAgfQo+IGRpZmYg LS1naXQgYS9jY2FuL2dlbmVyYXRvci9faW5mbyBiL2NjYW4vZ2VuZXJhdG9yL19pbmZvCj4gaW5k ZXggZTQwZDdiYi4uYWE2MDQ4ZSAxMDA2NDQKPiAtLS0gYS9jY2FuL2dlbmVyYXRvci9faW5mbwo+ ICsrKyBiL2NjYW4vZ2VuZXJhdG9yL19pbmZvCj4gQEAgLTQzLDEyICs0Myw2IEBACj4gICAqCj4g ICAqIEF1dGhvcjogRGF2aWQgR2lic29uIDxkYXZpZEBnaWJzb24uZHJvcGJlYXIuaWQuYXU+Cj4g ICAqIExpY2Vuc2U6IExHUEwgKHYyLjEgb3IgYW55IGxhdGVyIHZlcnNpb24pCj4gLSAqCj4gLSAq IENjYW5saW50Ogo+IC0gKiAgICAgIC8vIFdlIG5lZWQgc2V2ZXJhbCBnY2MgZXh0ZW5zaW9ucwo+ IC0gKglvYmplY3RzX2J1aWxkX3dpdGhvdXRfZmVhdHVyZXMgRkFJTAo+IC0gKiAgICAgIHRlc3Rz X2NvbXBpbGVfd2l0aG91dF9mZWF0dXJlcyBGQUlMCj4gLSAqCXRlc3RzX2hlbHBlcnNfY29tcGls ZV93aXRob3V0X2ZlYXR1cmVzIEZBSUwKPiAgICovCj4gIGludCBtYWluKGludCBhcmdjLCBjaGFy ICphcmd2W10pCj4gIHsKPiBAQCAtNzgsNSArNzIsMTMgQEAgaW50IG1haW4oaW50IGFyZ2MsIGNo YXIgKmFyZ3ZbXSkKPiAgCQlyZXR1cm4gMDsKPiAgCX0KPiAgCj4gKwlpZiAoc3RyY21wKGFyZ3Zb MV0sICJjY2FubGludCIpID09IDApIHsKPiArCQkvKiBXZSBuZWVkIHNldmVyYWwgZ2NjIGV4dGVu c2lvbnMgKi8KPiArCQlwcmludGYoIm9iamVjdHNfYnVpbGRfd2l0aG91dF9mZWF0dXJlcyBGQUlM XG4iKTsKPiArCQlwcmludGYoInRlc3RzX2NvbXBpbGVfd2l0aG91dF9mZWF0dXJlcyBGQUlMXG4i KTsKPiArCQlwcmludGYoInRlc3RzX2hlbHBlcnNfY29tcGlsZV93aXRob3V0X2ZlYXR1cmVzIEZB SUxcbiIpOwo+ICsJCXJldHVybiAwOwo+ICsJfQo+ICsKPiAgCXJldHVybiAxOwo+ICB9Cj4gZGlm ZiAtLWdpdCBhL2NjYW4vbWlubWF4L19pbmZvIGIvY2Nhbi9taW5tYXgvX2luZm8KPiBpbmRleCA0 ZDk1MzM2Li4yZjY0MzdlIDEwMDY0NAo+IC0tLSBhL2NjYW4vbWlubWF4L19pbmZvCj4gKysrIGIv Y2Nhbi9taW5tYXgvX2luZm8KPiBAQCAtMjYsMTAgKzI2LDYgQEAKPiAgICoKPiAgICogQXV0aG9y OiBEYXZpZCBHaWJzb24gPGRhdmlkQGdpYnNvbi5kcm9wYmVhci5pZC5hdT4KPiAgICogTGljZW5z ZTogIENDMCAoUHVibGljIGRvbWFpbikKPiAtICoKPiAtICogQ2NhbmxpbnQ6Cj4gLSAqICAgICAg Ly8gV2UgbmVlZCBzZXZlcmFsIGdjYyBleHRlbnNpb25zCj4gLSAqICAgICAgdGVzdHNfY29tcGls ZV93aXRob3V0X2ZlYXR1cmVzIEZBSUwKPiAgICovCj4gIGludCBtYWluKGludCBhcmdjLCBjaGFy ICphcmd2W10pCj4gIHsKPiBAQCAtNDIsNSArMzgsMTEgQEAgaW50IG1haW4oaW50IGFyZ2MsIGNo YXIgKmFyZ3ZbXSkKPiAgCQlyZXR1cm4gMDsKPiAgCX0KPiAgCj4gKwlpZiAoc3RyY21wKGFyZ3Zb MV0sICJjY2FubGludCIpID09IDApIHsKPiArCQkvKiBXZSBuZWVkIHNldmVyYWwgZ2NjIGV4dGVu c2lvbnMgKi8KPiArCQlwcmludGYoInRlc3RzX2NvbXBpbGVfd2l0aG91dF9mZWF0dXJlcyBGQUlM XG4iKTsKPiArCQlyZXR1cm4gMDsKPiArCX0KPiArCj4gIAlyZXR1cm4gMTsKPiAgfQo+IGRpZmYg LS1naXQgYS9jY2FuL3JzenNobS9faW5mbyBiL2NjYW4vcnN6c2htL19pbmZvCj4gaW5kZXggY2M5 NTQwMC4uZTkxMjJlMCAxMDA2NDQKPiAtLS0gYS9jY2FuL3JzenNobS9faW5mbwo+ICsrKyBiL2Nj YW4vcnN6c2htL19pbmZvCj4gQEAgLTc2LDEzICs3Niw4IEBACj4gICAqIAkvLyAkIHRhaWwgLWMg KzI5IC9kZXYvc2htL3JzenNobV9MQXNFdnQvMCB8IHNlZCAncy8uLyZcbi9nJyB8IHNvcnQgfCB1 bmlxIC1jIHwgdHIgJ1xuJyAnXHQnOyBlY2hvCj4gICAqIAkvLyAgNTE1NTMyIEEgICA1MjcyNTEg QiAgICA1MTI5MzAgQyAgICA1MTMwNjIgRCAgICA1NDQzMjYgRSAgICA1NDU4NzYgRiAgICA1MTI5 MzYgRyAgICA1MjIzNjMgSAo+ICAgKgo+IC0gKiBDY2FubGludDogdGVzdHNfcGFzc192YWxncmlu ZCBGQUlMCj4gICAqIExpY2Vuc2U6IEFQQUNIRS0yCj4gICAqIEF1dGhvcjogRGFuIEdvb2QgPGRh bkBkYW5jYW5jb2RlLmNvbT4KPiAtICoKPiAtICogQ2NhbmxpbnQ6Cj4gLSAqCS8vIHRlc3RzIHVz ZSBvcHRpb25hbCBtYWNyb3MgY29udGFpbmluZyBzdGF0ZW1lbnQgZXhwcmVzc2lvbnMKPiAtICoJ dGVzdHNfY29tcGlsZV93aXRob3V0X2ZlYXR1cmVzIEZBSUwKPiAgICovCj4gIGludCBtYWluKGlu dCBhcmdjLCBjaGFyICphcmd2W10pCj4gIHsKPiBAQCAtOTMsNSArODgsMTIgQEAgaW50IG1haW4o aW50IGFyZ2MsIGNoYXIgKmFyZ3ZbXSkKPiAgCWlmIChzdHJjbXAoYXJndlsxXSwgImRlcGVuZHMi KSA9PSAwKQo+ICAJCXJldHVybiAwOwo+ICAKPiArCWlmIChzdHJjbXAoYXJndlsxXSwgImNjYW5s aW50IikgPT0gMCkgewo+ICsJCXByaW50ZigidGVzdHNfcGFzc192YWxncmluZCBGQUlMXG4iKTsK PiArCQkvKiB0ZXN0cyB1c2Ugb3B0aW9uYWwgbWFjcm9zIGNvbnRhaW5pbmcgc3RhdGVtZW50IGV4 cHJlc3Npb25zICovCj4gKwkJcHJpbnRmKCJ0ZXN0c19jb21waWxlX3dpdGhvdXRfZmVhdHVyZXMg RkFJTFxuIik7Cj4gKwkJcmV0dXJuIDA7Cj4gKwl9Cj4gKwo+ICAJcmV0dXJuIDE7Cj4gIH0KPiBk aWZmIC0tZ2l0IGEvY2Nhbi9zdHJpbmdtYXAvX2luZm8gYi9jY2FuL3N0cmluZ21hcC9faW5mbwo+ IGluZGV4IDFmNjQ2NWIuLmMwMWM1NzYgMTAwNjQ0Cj4gLS0tIGEvY2Nhbi9zdHJpbmdtYXAvX2lu Zm8KPiArKysgYi9jY2FuL3N0cmluZ21hcC9faW5mbwo+IEBAIC01Miw5ICs1Miw2IEBACj4gICAq IEF1dGhvcnM6IEpvZXkgQWRhbXMsIEFuZGVycyBNYWdudXNzb24KPiAgICogTGljZW5zZTogQlNE ICgzIGNsYXVzZSkKPiAgICogVmVyc2lvbjogMC4yCj4gLSAqIENjYW5saW50Ogo+IC0gKgkvLyBX ZSBhY3R1YWxseSBkZXBlbmQgKGluZGlyZWN0bHkpIG9uIHRoZSBMR1BMIHRhbGxvYwo+IC0gKgls aWNlbnNlX2RlcGVuZHNfY29tcGF0IEZBSUwKPiAgICovCj4gIGludCBtYWluKGludCBhcmdjLCBj aGFyICphcmd2W10pCj4gIHsKPiBAQCAtNjcsNSArNjQsMTEgQEAgaW50IG1haW4oaW50IGFyZ2Ms IGNoYXIgKmFyZ3ZbXSkKPiAgCQlyZXR1cm4gMDsKPiAgCX0KPiAgCj4gKwlpZiAoc3RyY21wKGFy Z3ZbMV0sICJjY2FubGludCIpID09IDApIHsKPiArCQkvKiBXZSBhY3R1YWxseSBkZXBlbmQgKGlu ZGlyZWN0bHkpIG9uIHRoZSBMR1BMIHRhbGxvYyAqLwo+ICsJCXByaW50ZigibGljZW5zZV9kZXBl bmRzX2NvbXBhdCBGQUlMXG4iKTsKPiArCQlyZXR1cm4gMDsKPiArCX0KPiArCj4gIAlyZXR1cm4g MTsKPiAgfQo+IGRpZmYgLS1naXQgYS90b29scy9jY2FubGludC9jY2FubGludC5jIGIvdG9vbHMv Y2NhbmxpbnQvY2NhbmxpbnQuYwo+IGluZGV4IDBlZDk2OWMuLmYwNmYyMDAgMTAwNjQ0Cj4gLS0t IGEvdG9vbHMvY2NhbmxpbnQvY2NhbmxpbnQuYwo+ICsrKyBiL3Rvb2xzL2NjYW5saW50L2NjYW5s aW50LmMKPiBAQCAtNDU2LDUwICs0NTYsNDMgQEAgc3RhdGljIHZvaWQgYWRkX29wdGlvbnMoc3Ry dWN0IGNjYW5saW50ICp0ZXN0LCBjaGFyICoqb3B0aW9ucywKPiAgCW1lbWNweSgmdGVzdC0+b3B0 aW9uc1tudW1dLCBvcHRpb25zLCAobnVtX29wdGlvbnMgKyAxKSpzaXplb2YoY2hhciAqKSk7Cj4g IH0KPiAgCj4gLXZvaWQgYWRkX2luZm9fb3B0aW9ucyhzdHJ1Y3QgY2Nhbl9maWxlICppbmZvKQo+ ICt2b2lkIGFkZF9pbmZvX29wdGlvbnMoc3RydWN0IG1hbmlmZXN0ICptKQo+ICB7Cj4gLQlzdHJ1 Y3QgZG9jX3NlY3Rpb24gKmQ7Cj4gIAl1bnNpZ25lZCBpbnQgaTsKPiAtCXN0cnVjdCBjY2FubGlu dCAqdGVzdDsKPiArCWNoYXIgKippbmZvX29wdGlvbnMgPSBnZXRfY2NhbmxpbnQobSwgbS0+ZGly LCBnZXRfb3JfY29tcGlsZV9pbmZvKTsKPiAgCj4gLQlsaXN0X2Zvcl9lYWNoKGdldF9jY2FuX2Zp bGVfZG9jcyhpbmZvKSwgZCwgbGlzdCkgewo+IC0JCWlmICghc3RyZXEoZC0+dHlwZSwgImNjYW5s aW50IikpCj4gKwlmb3IgKGkgPSAwOyBpbmZvX29wdGlvbnNbaV07IGkrKykgewo+ICsJCWNoYXIg Kip3b3JkcyA9IHRhbF9zdHJzcGxpdChtLCBpbmZvX29wdGlvbnNbaV0sICIgXHQiLAo+ICsJCQkJ CSAgICBTVFJfTk9fRU1QVFkpOwo+ICsJCXN0cnVjdCBjY2FubGludCAqdGVzdDsKPiArCj4gKwkJ aWYgKCF3b3Jkc1swXSkKPiArCQkJY29udGludWU7Cj4gKwo+ICsJCXRlc3QgPSBmaW5kX3Rlc3Qo d29yZHNbMF0pOwo+ICsJCWlmICghdGVzdCkgewo+ICsJCQl3YXJueCgiJXM6IHVua25vd24gY2Nh bmxpbnQgdGVzdCAnJXMnIiwKPiArCQkJICAgICAgbS0+aW5mb19maWxlLT5mdWxsbmFtZSwgd29y ZHNbMF0pOwo+ICAJCQljb250aW51ZTsKPiArCQl9Cj4gKwo+ICsJCWlmICghd29yZHNbMV0pIHsK PiArCQkJd2FybngoIiVzOiBubyBhcmd1bWVudCB0byB0ZXN0ICclcyciLAo+ICsJCQkgICAgICBt LT5pbmZvX2ZpbGUtPmZ1bGxuYW1lLCB3b3Jkc1swXSk7Cj4gKwkJCWNvbnRpbnVlOwo+ICsJCX0K PiAgCj4gLQkJZm9yIChpID0gMDsgaSA8IGQtPm51bV9saW5lczsgaSsrKSB7Cj4gLQkJCWNoYXIg Kip3b3JkcyA9IHRhbF9zdHJzcGxpdChkLCBkLT5saW5lc1tpXSwgIiBcdCIsCj4gLQkJCQkJCSAg ICBTVFJfTk9fRU1QVFkpOwo+IC0JCQlpZiAoIXdvcmRzWzBdKQo+IC0JCQkJY29udGludWU7Cj4g LQo+IC0JCQlpZiAoc3RybmNtcCh3b3Jkc1swXSwgIi8vIiwgMikgPT0gMCkKPiAtCQkJCWNvbnRp bnVlOwo+IC0KPiAtCQkJdGVzdCA9IGZpbmRfdGVzdCh3b3Jkc1swXSk7Cj4gLQkJCWlmICghdGVz dCkgewo+IC0JCQkJd2FybngoIiVzOiB1bmtub3duIGNjYW5saW50IHRlc3QgJyVzJyIsCj4gLQkJ CQkgICAgICBpbmZvLT5mdWxsbmFtZSwgd29yZHNbMF0pOwo+IC0JCQkJY29udGludWU7Cj4gLQkJ CX0KPiAtCj4gLQkJCWlmICghd29yZHNbMV0pIHsKPiAtCQkJCXdhcm54KCIlczogbm8gYXJndW1l bnQgdG8gdGVzdCAnJXMnIiwKPiAtCQkJCSAgICAgIGluZm8tPmZ1bGxuYW1lLCB3b3Jkc1swXSk7 Cj4gLQkJCQljb250aW51ZTsKPiAtCQkJfQo+IC0KPiAtCQkJLyogS25vd24gZmFpbHVyZT8gKi8K PiAtCQkJaWYgKHN0cmNhc2VjbXAod29yZHNbMV0sICJGQUlMIikgPT0gMCkgewo+IC0JCQkJaWYg KCF0YXJnZXRpbmcpCj4gLQkJCQkJc2tpcF90ZXN0X2FuZF9kZXBzKHRlc3QsCj4gLQkJCQkJCQkg ICAiZXhjbHVkZWQgaW4gX2luZm8iCj4gLQkJCQkJCQkgICAiIGZpbGUiKTsKPiAtCQkJfSBlbHNl IHsKPiAtCQkJCWlmICghdGVzdC0+dGFrZXNfb3B0aW9ucykKPiAtCQkJCQl3YXJueCgiJXM6ICVz IGRvZXNuJ3QgdGFrZSBvcHRpb25zIiwKPiAtCQkJCQkgICAgICBpbmZvLT5mdWxsbmFtZSwgd29y ZHNbMF0pOwo+IC0JCQkJYWRkX29wdGlvbnModGVzdCwgd29yZHMrMSwgdGFsX2NvdW50KHdvcmRz KS0xKTsKPiAtCQkJfQo+ICsJCS8qIEtub3duIGZhaWx1cmU/ICovCj4gKwkJaWYgKHN0cmNhc2Vj bXAod29yZHNbMV0sICJGQUlMIikgPT0gMCkgewo+ICsJCQlpZiAoIXRhcmdldGluZykKPiArCQkJ CXNraXBfdGVzdF9hbmRfZGVwcyh0ZXN0LAo+ICsJCQkJCQkgICAiZXhjbHVkZWQgaW4gX2luZm8i Cj4gKwkJCQkJCSAgICIgZmlsZSIpOwo+ICsJCX0gZWxzZSB7Cj4gKwkJCWlmICghdGVzdC0+dGFr ZXNfb3B0aW9ucykKPiArCQkJCXdhcm54KCIlczogJXMgZG9lc24ndCB0YWtlIG9wdGlvbnMiLAo+ ICsJCQkJICAgICAgbS0+aW5mb19maWxlLT5mdWxsbmFtZSwgd29yZHNbMF0pOwo+ICsJCQlhZGRf b3B0aW9ucyh0ZXN0LCB3b3JkcysxLCB0YWxfY291bnQod29yZHMpLTEpOwo+ICAJCX0KPiAgCX0K PiAgfQo+IGRpZmYgLS1naXQgYS90b29scy9jY2FubGludC9jY2FubGludC5oIGIvdG9vbHMvY2Nh bmxpbnQvY2NhbmxpbnQuaAo+IGluZGV4IDljYjg1OGYuLjdkZjk1MTAgMTAwNjQ0Cj4gLS0tIGEv dG9vbHMvY2NhbmxpbnQvY2NhbmxpbnQuaAo+ICsrKyBiL3Rvb2xzL2NjYW5saW50L2NjYW5saW50 LmgKPiBAQCAtMTg2LDcgKzE4Niw3IEBAIHN0cnVjdCBkZXBlbmRlbnQgewo+ICBib29sIGlzX2V4 Y2x1ZGVkKGNvbnN0IGNoYXIgKm5hbWUpOwo+ICAKPiAgLyogQ2FsbGVkIHRvIGFkZCBvcHRpb25z IGZyb20gX2luZm8sIG9uY2UgaXQncyBsb2NhdGVkLiAqLwo+IC12b2lkIGFkZF9pbmZvX29wdGlv bnMoc3RydWN0IGNjYW5fZmlsZSAqaW5mbyk7Cj4gK3ZvaWQgYWRkX2luZm9fb3B0aW9ucyhzdHJ1 Y3QgbWFuaWZlc3QgKm0pOwo+ICAKPiAgLyogQXJlIHdlIGhhcHB5IHRvIGNvbXBpbGUgc3R1ZmYs IG9yIGp1c3Qgbm9uLWludHJ1c2l2ZSB0ZXN0cz8gKi8KPiAgZXh0ZXJuIGJvb2wgc2FmZV9tb2Rl Owo+IGRpZmYgLS1naXQgYS90b29scy9jY2FubGludC90ZXN0cy9pbmZvX2V4aXN0cy5jIGIvdG9v bHMvY2NhbmxpbnQvdGVzdHMvaW5mb19leGlzdHMuYwo+IGluZGV4IDVlNDQ1OWIuLjhmMDE5NDYg MTAwNjQ0Cj4gLS0tIGEvdG9vbHMvY2NhbmxpbnQvdGVzdHMvaW5mb19leGlzdHMuYwo+ICsrKyBi L3Rvb2xzL2NjYW5saW50L3Rlc3RzL2luZm9fZXhpc3RzLmMKPiBAQCAtMjAsNyArMjAsNyBAQCBz dGF0aWMgdm9pZCBjaGVja19oYXNfaW5mbyhzdHJ1Y3QgbWFuaWZlc3QgKm0sCj4gIAlpZiAobS0+ aW5mb19maWxlKSB7Cj4gIAkJc2NvcmUtPnBhc3MgPSB0cnVlOwo+ICAJCXNjb3JlLT5zY29yZSA9 IHNjb3JlLT50b3RhbDsKPiAtCQlhZGRfaW5mb19vcHRpb25zKG0tPmluZm9fZmlsZSk7Cj4gKwkJ YWRkX2luZm9fb3B0aW9ucyhtKTsKPiAgCX0gZWxzZSB7Cj4gIAkJc2NvcmUtPmVycm9yID0gdGFs X3N0cmR1cChzY29yZSwKPiAgCSJZb3UgaGF2ZSBubyBfaW5mbyBmaWxlLlxuXG4iCj4gZGlmZiAt LWdpdCBhL3Rvb2xzL2RlcGVuZHMuYyBiL3Rvb2xzL2RlcGVuZHMuYwo+IGluZGV4IGYxZmYzMDku Ljk1YmRhMWIgMTAwNjQ0Cj4gLS0tIGEvdG9vbHMvZGVwZW5kcy5jCj4gKysrIGIvdG9vbHMvZGVw ZW5kcy5jCj4gQEAgLTI1Myw2ICsyNTMsMTIgQEAgc3RhdGljIGNoYXIgKipnZXRfb25lX2NmbGFn cyhjb25zdCB2b2lkICpjdHgsIGNvbnN0IGNoYXIgKmRpciwKPiAgCXJldHVybiBnZXRfb25lX3By b3AoY3R4LCBkaXIsICJjZmxhZ3MiLCBnZXRfaW5mbyk7Cj4gIH0KPiAgCj4gK3N0YXRpYyBjaGFy ICoqZ2V0X29uZV9jY2FubGludChjb25zdCB2b2lkICpjdHgsIGNvbnN0IGNoYXIgKmRpciwKPiAr CQkJICAgICAgIGNoYXIgKigqZ2V0X2luZm8pKGNvbnN0IHZvaWQgKmN0eCwgY29uc3QgY2hhciAq ZGlyKSkKPiArewo+ICsJcmV0dXJuIGdldF9vbmVfcHJvcChjdHgsIGRpciwgImNjYW5saW50Iiwg Z2V0X2luZm8pOwo+ICt9Cj4gKwo+ICAvKiBPKG5eMikgYnV0IG4gaXMgc21hbGwuICovCj4gIHN0 YXRpYyBjaGFyICoqYWRkX2RlcHMoY2hhciAqKmRlcHMxLCBjaGFyICoqZGVwczIpCj4gIHsKPiBA QCAtMjgyLDYgKzI4OCwxOCBAQCBjaGFyICoqZ2V0X2NmbGFncyhjb25zdCB2b2lkICpjdHgsIGNv bnN0IGNoYXIgKmRpciwKPiAgCXJldHVybiBmbGFnczsKPiAgfQo+ICAKPiArY2hhciAqKmdldF9j Y2FubGludChjb25zdCB2b2lkICpjdHgsIGNvbnN0IGNoYXIgKmRpciwKPiArCQkgICAgY2hhciAq KCpnZXRfaW5mbykoY29uc3Qgdm9pZCAqY3R4LCBjb25zdCBjaGFyICpkaXIpKQo+ICt7Cj4gKwlj aGFyICoqY2NhbmxpbnQ7Cj4gKwl1bnNpZ25lZCBpbnQgbGVuOwo+ICsJY2NhbmxpbnQgPSBnZXRf b25lX2NjYW5saW50KGN0eCwgZGlyLCBnZXRfaW5mbyk7Cj4gKwlsZW4gPSB0YWxfY291bnQoY2Nh bmxpbnQpOwo+ICsJdGFsX3Jlc2l6ZSgmY2NhbmxpbnQsIGxlbiArIDEpOwo+ICsJY2NhbmxpbnRb bGVuXSA9IE5VTEw7Cj4gKwlyZXR1cm4gY2NhbmxpbnQ7Cj4gK30KPiArCj4gIHN0YXRpYyBjaGFy ICpnZXRfb25lX3BvcnRlZChjb25zdCB2b2lkICpjdHgsIGNvbnN0IGNoYXIgKmRpciwKPiAgCQkJ ICAgIGNoYXIgKigqZ2V0X2luZm8pKGNvbnN0IHZvaWQgKmN0eCwgY29uc3QgY2hhciAqZGlyKSkK PiAgewo+IGRpZmYgLS1naXQgYS90b29scy90b29scy5oIGIvdG9vbHMvdG9vbHMuaAo+IGluZGV4 IDY2OGM5MWEuLmQyOWEyNWYgMTAwNjQ0Cj4gLS0tIGEvdG9vbHMvdG9vbHMuaAo+ICsrKyBiL3Rv b2xzL3Rvb2xzLmgKPiBAQCAtNDgsNiArNDgsOSBAQCBjaGFyICoqZ2V0X2xpYnMoY29uc3Qgdm9p ZCAqY3R4LCBjb25zdCBjaGFyICpkaXIsIGNvbnN0IGNoYXIgKnN0eWxlLAo+ICBjaGFyICoqZ2V0 X2NmbGFncyhjb25zdCB2b2lkICpjdHgsIGNvbnN0IGNoYXIgKmRpciwKPiAgCQljaGFyICooKmdl dF9pbmZvKShjb25zdCB2b2lkICpjdHgsIGNvbnN0IGNoYXIgKmRpcikpOwo+ICAKPiArY2hhciAq KmdldF9jY2FubGludChjb25zdCB2b2lkICpjdHgsIGNvbnN0IGNoYXIgKmRpciwKPiArCQkgICAg Y2hhciAqKCpnZXRfaW5mbykoY29uc3Qgdm9pZCAqY3R4LCBjb25zdCBjaGFyICpkaXIpKTsKPiAr Cj4gIGNoYXIgKmdldF9wb3J0ZWQoY29uc3Qgdm9pZCAqY3R4LCBjb25zdCBjaGFyICpkaXIsIGJv b2wgcmVjdXJzZSwKPiAgCQkgY2hhciAqKCpnZXRfaW5mbykoY29uc3Qgdm9pZCAqY3R4LCBjb25z dCBjaGFyICpkaXIpKTsKPiAgCj4gLS0gCj4gMi45LjMKX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX18KY2NhbiBtYWlsaW5nIGxpc3QKY2NhbkBsaXN0cy5vemxh YnMub3JnCmh0dHBzOi8vbGlzdHMub3psYWJzLm9yZy9saXN0aW5mby9jY2FuCg==