From mboxrd@z Thu Jan 1 00:00:00 1970 Path: news.gmane.org!not-for-mail From: Alin Soare Newsgroups: gmane.emacs.devel Subject: Re: Tabs for console. Date: Sat, 4 Dec 2010 23:42:24 +0200 Message-ID: References: NNTP-Posting-Host: lo.gmane.org Mime-Version: 1.0 Content-Type: multipart/mixed; boundary=0015176f1376cc11e704969c87dc X-Trace: dough.gmane.org 1291499027 1794 80.91.229.12 (4 Dec 2010 21:43:47 GMT) X-Complaints-To: usenet@dough.gmane.org NNTP-Posting-Date: Sat, 4 Dec 2010 21:43:47 +0000 (UTC) To: Emacs Dev Original-X-From: emacs-devel-bounces+ged-emacs-devel=m.gmane.org@gnu.org Sat Dec 04 22:43:42 2010 Return-path: Envelope-to: ged-emacs-devel@m.gmane.org Original-Received: from lists.gnu.org ([199.232.76.165]) by lo.gmane.org with esmtp (Exim 4.69) (envelope-from ) id 1POzsM-0000Y3-8b for ged-emacs-devel@m.gmane.org; Sat, 04 Dec 2010 22:43:42 +0100 Original-Received: from localhost ([127.0.0.1]:52235 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.43) id 1POzsL-0001DD-FL for ged-emacs-devel@m.gmane.org; Sat, 04 Dec 2010 16:42:37 -0500 Original-Received: from [140.186.70.92] (port=41450 helo=eggs.gnu.org) by lists.gnu.org with esmtp (Exim 4.43) id 1POzsB-0001D6-IZ for emacs-devel@gnu.org; Sat, 04 Dec 2010 16:42:29 -0500 Original-Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1POzs9-0004k8-Ek for emacs-devel@gnu.org; Sat, 04 Dec 2010 16:42:27 -0500 Original-Received: from mail-yw0-f41.google.com ([209.85.213.41]:41201) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1POzs9-0004k4-5x for emacs-devel@gnu.org; Sat, 04 Dec 2010 16:42:25 -0500 Original-Received: by ywk9 with SMTP id 9so1394152ywk.0 for ; Sat, 04 Dec 2010 13:42:24 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=gamma; h=domainkey-signature:mime-version:received:received:in-reply-to :references:date:message-id:subject:from:to:content-type; bh=/qG97xTRn6eb6yqbLcyqk/H4WA1+Ym1cSRJDrEJNVu4=; b=adMEQ0L/s5KFjyFFgO6VxGa5nJRu8U3nJ+j4kzu/Q2+UQap06aEXgGRwQTxu7mIMD/ K8HXktLgCPAzixrtqHxU3O5iVUrTNC0xgUYJK8e4dV2qC3zKJbG7kAbKZE94VNVpiGrl lnQzYvAlTLWRRKxxEIuOXZGLWTrRmFIR7Qz60= DomainKey-Signature: a=rsa-sha1; c=nofws; d=gmail.com; s=gamma; h=mime-version:in-reply-to:references:date:message-id:subject:from:to :content-type; b=vUfIpjY8/Gi/vy7xhpFoU6+xX79Zj2oKyCitjOVsGgG19yau9GGglFKMw8EL4zrZDS Iqr5i9DTvE7RWXfbUa3Y9078pYQDcickzJkFxTaBpdJ8F6octo2MIKT4HuuKPqqFET5g DxTfktEvMu1oORIWoWoDr7wMY1yBE90H/jcMI= Original-Received: by 10.151.100.6 with SMTP id c6mr6707352ybm.103.1291498944202; Sat, 04 Dec 2010 13:42:24 -0800 (PST) Original-Received: by 10.150.218.9 with HTTP; Sat, 4 Dec 2010 13:42:24 -0800 (PST) In-Reply-To: X-detected-operating-system: by eggs.gnu.org: GNU/Linux 2.6 (newer, 2) X-BeenThere: emacs-devel@gnu.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: "Emacs development discussions." List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Original-Sender: emacs-devel-bounces+ged-emacs-devel=m.gmane.org@gnu.org Errors-To: emacs-devel-bounces+ged-emacs-devel=m.gmane.org@gnu.org Xref: news.gmane.org gmane.emacs.devel:133423 Archived-At: --0015176f1376cc11e704969c87dc Content-Type: multipart/alternative; boundary=0015176f1376cc11de04969c87da --0015176f1376cc11de04969c87da Content-Type: text/plain; charset=UTF-8 This is a version in which I added an environment for every tab. For now, there is no reason to make the environment an obarray, but this will be required if others want to write scripts that give other definitions for a tab, but for window configurations. For me, it is enough to know that only the tab:init function changes that environment, and I find the winconfig variable on the cadr position. --0015176f1376cc11de04969c87da Content-Type: text/html; charset=UTF-8 Content-Transfer-Encoding: quoted-printable This is a version in which I added an environment for every tab. For now, t= here is no reason to make the environment an obarray, but this will be requ= ired if others want to write scripts that give other definitions for a tab,= but for window configurations. For me, it is enough to know that only the = tab:init function changes that environment, and I find the winconfig variab= le on the cadr position.




--0015176f1376cc11de04969c87da-- --0015176f1376cc11e704969c87dc Content-Type: text/x-patch; charset=US-ASCII; name="0001-tabs-for-console-tabs-as-window-configuration.patch" Content-Disposition: attachment; filename="0001-tabs-for-console-tabs-as-window-configuration.patch" Content-Transfer-Encoding: base64 X-Attachment-Id: f_ghb0u4gb0 RnJvbSBlMzY5YWQzZmM4Yzk1ZTgxZTBkODQ3NTg4OTYyOTdjZjk3MGIzMjRhIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiByb290IDxyb290QGFsaW4uKG5vbmUpPgpEYXRlOiBUaHUsIDIg RGVjIDIwMTAgMjM6NTM6NDEgKzAyMDAKU3ViamVjdDogW1BBVENIXSB0YWJzIGZvciBjb25zb2xl IC0gdGFicyBhcyB3aW5kb3cgY29uZmlndXJhdGlvbgoKLS0tCiBzcmMvZGlzcGV4dGVybi5oIHwg ICAgMyArCiBzcmMvZnJhbWUuYyAgICAgIHwgIDI0MCArKysrKysrKysrKysrKysrKysrKysrKysr KysrKysrKysrKysrKysrKysrKysrKysrKysrLS0KIHNyYy9mcmFtZS5oICAgICAgfCAgIDMxICsr KysrKy0KIHNyYy93aW5kb3cuYyAgICAgfCAgICA1ICsKIHNyYy94ZGlzcC5jICAgICAgfCAgIDc5 ICsrKysrKysrKysrKysrKysrKwogc3JjL3hmYWNlcy5jICAgICB8ICAgMTAgKysKIDYgZmlsZXMg Y2hhbmdlZCwgMzU5IGluc2VydGlvbnMoKyksIDkgZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEv c3JjL2Rpc3BleHRlcm4uaCBiL3NyYy9kaXNwZXh0ZXJuLmgKaW5kZXggNzQyNmMwMy4uMmE4NzA0 NCAxMDA2NDQKLS0tIGEvc3JjL2Rpc3BleHRlcm4uaAorKysgYi9zcmMvZGlzcGV4dGVybi5oCkBA IC0xNjk3LDYgKzE2OTcsOSBAQCBlbnVtIGZhY2VfaWQKICAgTU9VU0VfRkFDRV9JRCwKICAgTUVO VV9GQUNFX0lELAogICBWRVJUSUNBTF9CT1JERVJfRkFDRV9JRCwKKyAgQ1VSUkVOVF9UQUJfRkFD RV9JRCwKKyAgT0REX1RBQl9GQUNFX0lELAorICBFVkVOX1RBQl9GQUNFX0lELAogICBCQVNJQ19G QUNFX0lEX1NFTlRJTkVMCiB9OwogCmRpZmYgLS1naXQgYS9zcmMvZnJhbWUuYyBiL3NyYy9mcmFt ZS5jCmluZGV4IGJhNjc1YmUuLmI5MGJmZjMgMTAwNjQ0Ci0tLSBhL3NyYy9mcmFtZS5jCisrKyBi L3NyYy9mcmFtZS5jCkBAIC0xMTgsMTYgKzExOCwyMCBAQCBMaXNwX09iamVjdCBRd2luZG93X2lk OwogTGlzcF9PYmplY3QgUW91dGVyX3dpbmRvd19pZDsKICNlbmRpZgogTGlzcF9PYmplY3QgUXBh cmVudF9pZDsKLUxpc3BfT2JqZWN0IFF0aXRsZSwgUW5hbWU7CitMaXNwX09iamVjdCBRdGl0bGUs IFFuYW1lLCBRdGFiX25hbWUsIFF0YWIsIFFjdXJyZW50X3RhYjsKK0xpc3BfT2JqZWN0IFF0YWJf ZW52OworTGlzcF9PYmplY3QgUXRhYl9saXN0OwogTGlzcF9PYmplY3QgUWV4cGxpY2l0X25hbWU7 CiBMaXNwX09iamVjdCBRdW5zcGxpdHRhYmxlOwotTGlzcF9PYmplY3QgUW1lbnVfYmFyX2xpbmVz LCBRdG9vbF9iYXJfbGluZXMsIFF0b29sX2Jhcl9wb3NpdGlvbjsKK0xpc3BfT2JqZWN0IFFtZW51 X2Jhcl9saW5lcywgUXRvb2xfYmFyX2xpbmVzLCBRdG9vbF9iYXJfcG9zaXRpb24sIFF0YWJfYmFy X2xpbmVzOwogTGlzcF9PYmplY3QgVm1lbnVfYmFyX21vZGUsIFZ0b29sX2Jhcl9tb2RlOwogTGlz cF9PYmplY3QgUWxlZnRfZnJpbmdlLCBRcmlnaHRfZnJpbmdlOwogTGlzcF9PYmplY3QgUWJ1ZmZl cl9wcmVkaWNhdGUsIFFidWZmZXJfbGlzdCwgUWJ1cmllZF9idWZmZXJfbGlzdDsKIExpc3BfT2Jq ZWN0IFF0dHlfY29sb3JfbW9kZTsKIExpc3BfT2JqZWN0IFF0dHksIFF0dHlfdHlwZTsKIAorTGlz cF9PYmplY3QgUXRhYl9hY3RpdmF0ZSwgUXRhYl9kZWFjdGl2YXRlLCBRdGFiX2luaXQ7CisKIExp c3BfT2JqZWN0IFFmdWxsc2NyZWVuLCBRZnVsbHdpZHRoLCBRZnVsbGhlaWdodCwgUWZ1bGxib3Ro LCBRbWF4aW1pemVkOwogTGlzcF9PYmplY3QgUXN0aWNreTsKIExpc3BfT2JqZWN0IFFmb250X2Jh Y2tlbmQ7CkBAIC0xOTcsNiArMjAxLDE0OSBAQCBzZXRfbWVudV9iYXJfbGluZXMgKHN0cnVjdCBm cmFtZSAqZiwgTGlzcF9PYmplY3QgdmFsdWUsIExpc3BfT2JqZWN0IG9sZHZhbCkKICAgICAgIGFk anVzdF9nbHlwaHMgKGYpOwogICAgIH0KIH0KKworLyogdGhpcyBpcyBpZGVudGljYWwgdG8gc2V0 X21lbnVfYmFyX2xpbmVzXzEgKi8KK3N0YXRpYyB2b2lkCitzZXRfdGFiX2Jhcl9saW5lc18xICgg TGlzcF9PYmplY3Qgd2luZG93LCBpbnQgbikKK3sKKyAgc3RydWN0IHdpbmRvdyAqdyA9IFhXSU5E T1cgKHdpbmRvdyk7CisKKyAgWFNFVEZBU1RJTlQgKHctPmxhc3RfbW9kaWZpZWQsIDApOworICBY U0VURkFTVElOVCAody0+dG9wX2xpbmUsIFhGQVNUSU5UICh3LT50b3BfbGluZSkgKyBuKTsKKyAg WFNFVEZBU1RJTlQgKHctPnRvdGFsX2xpbmVzLCBYRkFTVElOVCAody0+dG90YWxfbGluZXMpIC0g bik7CisKKyAgaWYgKElOVEVHRVJQICh3LT5vcmlnX3RvcF9saW5lKSkKKyAgICBYU0VURkFTVElO VCAody0+b3JpZ190b3BfbGluZSwgWEZBU1RJTlQgKHctPm9yaWdfdG9wX2xpbmUpICsgbik7Cisg IGlmIChJTlRFR0VSUCAody0+b3JpZ190b3RhbF9saW5lcykpCisgICAgWFNFVEZBU1RJTlQgKHct Pm9yaWdfdG90YWxfbGluZXMsIFhGQVNUSU5UICh3LT5vcmlnX3RvdGFsX2xpbmVzKSAtIG4pOwor CisgIC8qIEhhbmRsZSBqdXN0IHRoZSB0b3AgY2hpbGQgaW4gYSB2ZXJ0aWNhbCBzcGxpdC4gICov CisgIGlmICghTklMUCAody0+dmNoaWxkKSkKKyAgICBzZXRfdGFiX2Jhcl9saW5lc18xICh3LT52 Y2hpbGQsIG4pOworCisgIC8qIEFkanVzdCBhbGwgY2hpbGRyZW4gaW4gYSBob3Jpem9udGFsIHNw bGl0LiAgKi8KKyAgZm9yICh3aW5kb3cgPSB3LT5oY2hpbGQ7ICFOSUxQICh3aW5kb3cpOyB3aW5k b3cgPSB3LT5uZXh0KQorICAgIHsKKyAgICAgIHcgPSBYV0lORE9XICh3aW5kb3cpOworICAgICAg c2V0X3RhYl9iYXJfbGluZXNfMSAod2luZG93LCBuKTsKKyAgICB9Cit9CisKK3N0YXRpYyB2b2lk CitzZXRfdGFiX2Jhcl9saW5lcyAoc3RydWN0IGZyYW1lICpmLCBMaXNwX09iamVjdCB2YWx1ZSkK K3sKKyAgICBpbnQgbmxpbmVzLCBvbGluZXMsIG1heGxpbmVzOworICAgIExpc3BfT2JqZWN0IGZy YW1lOworCisgICAgaWYgKEZSQU1FX01JTklCVUZfT05MWV9QIChmKSkKKwlyZXR1cm47CisKKyAg ICBYU0VURlJBTUUoZnJhbWUsIGYpOworCisgICAgaWYgKElOVEVHRVJQICh2YWx1ZSkpCisJbmxp bmVzID0gWElOVCAodmFsdWUpOworICAgIGVsc2UKKwlubGluZXMgPSAwOworCisgICAgc3RydWN0 IGZyYW1lICp0aGlzOworICAgIHRoaXMgPSBYRlJBTUUoZnJhbWUpOworICAgIG9saW5lcyA9IEZS QU1FX1RBQl9CQVJfTElORVMgKHRoaXMpOworICAgIGlmIChubGluZXMgIT0gb2xpbmVzKQorICAg IHsKKwlpZiAoRVEgKGZyYW1lLCBzZWxlY3RlZF9mcmFtZSkpCisgICAgICAgICAgICAvKiByZWRp c3BsYXkgaXMgcmVxdWlyZWQgb25seSB3aGVuIG9uZSBjaGFuZ2VzIHRoZQorICAgICAgICAgICAg ICAgc2VsZWN0ZWQgdGFiICovCisgICAgICAgICAgICB3aW5kb3dzX29yX2J1ZmZlcnNfY2hhbmdl ZCsrOworCUZSQU1FX1dJTkRPV19TSVpFU19DSEFOR0VEICh0aGlzKSA9IDE7CisJRlJBTUVfVEFC X0JBUl9MSU5FUyAodGhpcykgPSBubGluZXM7CisJc2V0X3RhYl9iYXJfbGluZXNfMSAodGhpcy0+ cm9vdF93aW5kb3csIG5saW5lcyAtIG9saW5lcyk7CisJYWRqdXN0X2dseXBocyAodGhpcyk7Cisg ICAgfQorCit9CisKK3ZvaWQKK2FjdGl2YXRlX3RhYiAoc3RydWN0IGZyYW1lICpmLCBpbnQgdGFi X2luZGV4KQoreworICAgIExpc3BfT2JqZWN0IGFjdGl2YXRlY29kZSwgdGFiOworICAgIEZSQU1F X0NVUlJFTlRfVEFCIChmKSA9IFhJTlQgKHRhYl9pbmRleCk7CisgICAgdGFiID0gRm50aCAoIHRh Yl9pbmRleCwgZiAtPiB0YWJfYmFyX2l0ZW1zICkgOworICAgIGFjdGl2YXRlY29kZSA9IEZhc3Nx IChRdGFiX2FjdGl2YXRlLCB0YWIpOworICAgIGlmICghIEVRIChRbmlsLCBhY3RpdmF0ZWNvZGUp KQorICAgIHsKKwlhY3RpdmF0ZWNvZGUgPSBYQ0RSIChhY3RpdmF0ZWNvZGUpOworCXJldHVybiAo dm9pZCkgRmZ1bmNhbGwgKDEsICZhY3RpdmF0ZWNvZGUpOworICAgIH0KK30KKwordm9pZAorZGVh Y3RpdmF0ZV90YWIgKHN0cnVjdCBmcmFtZSAqZikKK3sKKyAgICByZXR1cm47CisgICAgTGlzcF9P YmplY3QgZGVhY3RpdmF0ZWNvZGUsIHRhYjsKKyAgICB0YWIgPSBBUkVGICggZi0+dGFiX2Jhcl9p dGVtcywgZi0+Y3VycmVudF90YWIgKSA7CisgICAgZGVhY3RpdmF0ZWNvZGUgPSBGYXNzcSAoUXRh Yl9kZWFjdGl2YXRlLCB0YWIpOworICAgIGlmICghIEVRIChRbmlsLCBkZWFjdGl2YXRlY29kZSkp CisgICAgeworCWRlYWN0aXZhdGVjb2RlID0gWENEUiAoZGVhY3RpdmF0ZWNvZGUpOworCXJldHVy biAodm9pZCkgRmZ1bmNhbGwgKDEsICZkZWFjdGl2YXRlY29kZSk7CisgICAgfQorfQorCit2b2lk CitzZXRfY3VycmVudF90YWIgKHN0cnVjdCBmcmFtZSAqZiwgTGlzcF9PYmplY3QgdmFsdWUpCit7 CisgICAgaW50IG90YWIsIHRhYjsKKworICAgIGlmIChGUkFNRV9NSU5JQlVGX09OTFlfUCAoZikp CisJcmV0dXJuOworCisgICAgTGlzcF9PYmplY3QgZnJhbWU7CisgICAgWFNFVEZSQU1FKGZyYW1l LCBmKTsKKworICAgIGlmIChJTlRFR0VSUCAodmFsdWUpKQorCXRhYiA9IFhJTlQgKHZhbHVlKTsK KyAgICBlbHNlCisJcmV0dXJuICh2b2lkKSBkZWFjdGl2YXRlX3RhYiAoZik7CisKKyAgICBvdGFi ID0gRlJBTUVfQ1VSUkVOVF9UQUIgKGYpOworCisgICAgLyogbm8gdGFnIGlzIGFjdGl2ZSAqLwor ICAgIGlmIChGbGVuZ3RoIChGUkFNRV9UQUJfQkFSX0lURU1TIChmKSkgPD0gdmFsdWUpCisJcmV0 dXJuICh2b2lkKSBkZWFjdGl2YXRlX3RhYiAoZik7CisgICAgCisgICAgaWYgKHRhYiAhPSBvdGFi KQorICAgIHsKKwlpZiAoRVEgKGZyYW1lLCBzZWxlY3RlZF9mcmFtZSkpCisgICAgICAgICAgICAv KiByZWRpc3BsYXkgaXMgcmVxdWlyZWQgb25seSB3aGVuIG9uZSBjaGFuZ2VzIHRoZQorICAgICAg ICAgICAgICAgc2VsZWN0ZWQgdGFiICovCisgICAgICAgICAgICB3aW5kb3dzX29yX2J1ZmZlcnNf Y2hhbmdlZCsrOworCUZSQU1FX1dJTkRPV19TSVpFU19DSEFOR0VEIChmKSA9IDE7CisJZGVhY3Rp dmF0ZV90YWIgKGYpOworCWFjdGl2YXRlX3RhYiAoZiwgdmFsdWUpOworCWFkanVzdF9nbHlwaHMg KGYpOworICAgIH0KKworfQorCit2b2lkCithZGRfdGFiX2Vudmlyb25tZW50IChzdHJ1Y3QgZnJh bWUgKmYsCisJCSAgICAgTGlzcF9PYmplY3QgcHJvcCkKK3sKKyAgICBMaXNwX09iamVjdCBlbnYs IGw7CisgICAgbCA9IEZudGggKG1ha2VfbnVtYmVyIChmLT5jdXJyZW50X3RhYiksIGYtPnRhYl9i YXJfaXRlbXMpOworICAgIGlmIChOSUxQKHByb3ApKQorCXJldHVybjsKKyAgICByZXR1cm47Cisg ICAgZW52ID0gRmNvbnMgKHByb3AsCisJCSBYQ0RSIChGYXNzcSAoUXRhYl9lbnYsCisJCQkgICAg ICBYQ0RSICggQVJFRiAoZi0+dGFiX2Jhcl9pdGVtcywgZi0+Y3VycmVudF90YWIpKSkpKTsKKy8v ICAgIGVudiA9IEZjb25zIChRdGFiX2VudiwgRmNvbnMgKCBwcm9wLCBYQ0RSIChlbnYpICkgKTsK KyAgICBzdG9yZV9pbl9hbGlzdCAoJmwsIFF0YWJfZW52LCBlbnYpOworICAgIAorfQorCisKIAwK IExpc3BfT2JqZWN0IFZmcmFtZV9saXN0OwogCkBAIC0zNDgsNiArNDk1LDEwIEBAIG1ha2VfZnJh bWUgKGludCBtaW5pX3ApCiAgIGYtPmZvbnRfZHJpdmVyX2xpc3QgPSBOVUxMOwogICBmLT5mb250 X2RhdGFfbGlzdCA9IE5VTEw7CiAKKyAgZi0+dGFiX2Jhcl9pdGVtcyA9IFFuaWw7CisgIGYtPmN1 cnJlbnRfdGFiID0gMDsKKyAgZi0+bGFzdF90YWIgPSAwOworCiAgIHJvb3Rfd2luZG93ID0gbWFr ZV93aW5kb3cgKCk7CiAgIGlmIChtaW5pX3ApCiAgICAgewpAQCAtNTcwLDcgKzcyMSw2IEBAIG1h a2VfaW5pdGlhbF9mcmFtZSAodm9pZCkKICAgcmV0dXJuIGY7CiB9CiAKLQogc3RydWN0IGZyYW1l ICoKIG1ha2VfdGVybWluYWxfZnJhbWUgKHN0cnVjdCB0ZXJtaW5hbCAqdGVybWluYWwpCiB7CkBA IC02NTAsNiArODAwLDQ0IEBAIGdldF9mdXR1cmVfZnJhbWVfcGFyYW0gKExpc3BfT2JqZWN0IHBh cmFtZXRlciwKICAgcmV0dXJuIHJlc3VsdDsKIH0KIAorTGlzcF9PYmplY3QKK2FkZF90YWIgKExp c3BfT2JqZWN0IHBhcm1zKQoreworICAgIExpc3BfT2JqZWN0IHRhYl9uYW1lLCBpbml0Y29kZSwg YWN0aXZhdGVjb2RlLCBkZWFjdGl2YXRlY29kZSwgdGFiLCBlbnYsIG5hbWU7CisgICAgCisgICAg TGlzcF9PYmplY3QgdGFiX29iamVjdFs0XTsKKworICBzdHJ1Y3QgZnJhbWUgKnNmID0gU0VMRUNU RURfRlJBTUUgKCk7CisgIGlmIChzZi0+bGFzdF90YWIgPT0gMTAwMCkKKyAgICByZXR1cm4gUW5p bDsKKworICBhY3RpdmF0ZWNvZGUgPSBGYXNzcSAoUXRhYl9hY3RpdmF0ZSwgcGFybXMpOworICBk ZWFjdGl2YXRlY29kZSA9IEZhc3NxIChRdGFiX2RlYWN0aXZhdGUsIHBhcm1zKTsKKyAgZW52ID0g RmFzc3EgKFF0YWJfZW52LCBwYXJtcyk7CisgIG5hbWUgPSBGYXNzcSAoUXRhYl9uYW1lLCBwYXJt cyk7CisgIAorICBuYW1lID0gTklMUCAobmFtZSkgPyBtYWtlX3N0cmluZyAoIiB0YWIiLCA0KSA6 IFhDRFIgKG5hbWUpOworCisgIHRhYl9uYW1lID0gRmNvbnMgKFF0YWJfbmFtZSwgbmFtZSk7Cisg IHRhYl9vYmplY3RbMF0gPSBOSUxQICh0YWJfbmFtZSkgPyBRbmlsOkZjb25zICh0YWJfbmFtZSwg UW5pbCk7CisgIHRhYl9vYmplY3RbMV0gPSBOSUxQIChhY3RpdmF0ZWNvZGUpID8gUW5pbDogRmNv bnMgKGFjdGl2YXRlY29kZSwgUW5pbCk7CisgIHRhYl9vYmplY3RbMl0gPSBOSUxQIChkZWFjdGl2 YXRlY29kZSkgPyBRbmlsOkZjb25zIChkZWFjdGl2YXRlY29kZSwgUW5pbCk7CisgIHRhYl9vYmpl Y3RbM10gPSBOSUxQIChlbnYpID8gUW5pbDpGY29ucyAoZW52LCBRbmlsKTsKKyAgdGFiID0gRmFw cGVuZCAoIDQsIHRhYl9vYmplY3QgKTsKKworICAvKiBBU0VUIChzZi0+dGFiX2Jhcl9pdGVtcywg c2YtPmxhc3RfdGFiKyssIHRhYik7ICovCisgIExpc3BfT2JqZWN0IG5ld1syXTsKKyAgbmV3WzBd ID0gc2YtPnRhYl9iYXJfaXRlbXM7CisgIG5ld1sxXSA9IEZjb25zICh0YWIsIFFuaWwpOworCisg IHNmLT50YWJfYmFyX2l0ZW1zID0gRmFwcGVuZCAoIDIsICBuZXcpOworCisgIGluaXRjb2RlID0g RmFzc3EgKFF0YWJfaW5pdCwgcGFybXMpOworCisgIC8qIHNmLT5sYXN0X3RhYisrOyAqLworICBy ZXR1cm4gbWFrZV9udW1iZXIgKHNmLT5sYXN0X3RhYisrKTsKK30KKwogREVGVU4gKCJtYWtlLXRl cm1pbmFsLWZyYW1lIiwgRm1ha2VfdGVybWluYWxfZnJhbWUsIFNtYWtlX3Rlcm1pbmFsX2ZyYW1l LAogICAgICAgIDEsIDEsIDAsCiAgICAgICAgZG9jOiAvKiBDcmVhdGUgYW4gYWRkaXRpb25hbCB0 ZXJtaW5hbCBmcmFtZSwgcG9zc2libHkgb24gYW5vdGhlciB0ZXJtaW5hbC4KQEAgLTY3NCw2ICs4 NjIsMTMgQEAgYWZmZWN0cyBhbGwgZnJhbWVzIG9uIHRoZSBzYW1lIHRlcm1pbmFsIGRldmljZS4g ICovKQogICBMaXNwX09iamVjdCBmcmFtZSwgdGVtOwogICBzdHJ1Y3QgZnJhbWUgKnNmID0gU0VM RUNURURfRlJBTUUgKCk7CiAKKyAgTGlzcF9PYmplY3QgdGFiOworCisgIHRhYiA9IEZhc3NxIChR dGFiLCBwYXJtcyk7CisgIGlmICghIEVRIChRbmlsLCB0YWIpKQorICAgICAgcmV0dXJuIGFkZF90 YWIgKHBhcm1zKTsKKworCiAjaWZkZWYgTVNET1MKICAgaWYgKHNmLT5vdXRwdXRfbWV0aG9kICE9 IG91dHB1dF9tc2Rvc19yYXcKICAgICAgICYmIHNmLT5vdXRwdXRfbWV0aG9kICE9IG91dHB1dF90 ZXJtY2FwKQpAQCAtMjI4Niw5ICsyNDgxLDE1IEBAIHN0b3JlX2ZyYW1lX3BhcmFtIChzdHJ1Y3Qg ZnJhbWUgKmYsIExpc3BfT2JqZWN0IHByb3AsIExpc3BfT2JqZWN0IHZhbCkKICAgaWYgKCEgRlJB TUVfV0lORE9XX1AgKGYpKQogICAgIHsKICAgICAgIGlmIChFUSAocHJvcCwgUW1lbnVfYmFyX2xp bmVzKSkKLQlzZXRfbWVudV9iYXJfbGluZXMgKGYsIHZhbCwgbWFrZV9udW1iZXIgKEZSQU1FX01F TlVfQkFSX0xJTkVTIChmKSkpOworCSAgc2V0X21lbnVfYmFyX2xpbmVzIChmLCB2YWwsIG1ha2Vf bnVtYmVyIChGUkFNRV9NRU5VX0JBUl9MSU5FUyAoZikpKTsKKyAgICAgIGVsc2UgaWYgKEVRIChw cm9wLCBRdGFiX2Jhcl9saW5lcykpCisJICBzZXRfdGFiX2Jhcl9saW5lcyAoZiwgdmFsKTsKICAg ICAgIGVsc2UgaWYgKEVRIChwcm9wLCBRbmFtZSkpCiAJc2V0X3Rlcm1fZnJhbWVfbmFtZSAoZiwg dmFsKTsKKyAgICAgIGVsc2UgaWYgKEVRIChwcm9wLCBRY3VycmVudF90YWIpKQorICAgICAgCXNl dF9jdXJyZW50X3RhYiAoZiwgdmFsKTsKKyAgICAgIGVsc2UgaWYgKEVRIChwcm9wLCBRdGFiX2Vu dikpCisgICAgICAJYWRkX3RhYl9lbnZpcm9ubWVudCAoZiwgdmFsKTsKICAgICB9CiAKICAgaWYg KEVRIChwcm9wLCBRbWluaWJ1ZmZlcikgJiYgV0lORE9XUCAodmFsKSkKQEAgLTIzOTQsMTEgKzI1 OTUsMTkgQEAgSWYgRlJBTUUgaXMgb21pdHRlZCwgcmV0dXJuIGluZm9ybWF0aW9uIG9uIHRoZSBj dXJyZW50bHkgc2VsZWN0ZWQgZnJhbWUuICAqLykKICNlbmRpZgogICAgIHsKICAgICAgIC8qIFRo aXMgb3VnaHQgdG8gYmUgY29ycmVjdCBpbiBmLT5wYXJhbV9hbGlzdCBmb3IgYW4gWCBmcmFtZS4g ICovCi0gICAgICBMaXNwX09iamVjdCBsaW5lczsKKwlMaXNwX09iamVjdCBsaW5lcywgdGFiZW52 OwogICAgICAgWFNFVEZBU1RJTlQgKGxpbmVzLCBGUkFNRV9NRU5VX0JBUl9MSU5FUyAoZikpOwog ICAgICAgc3RvcmVfaW5fYWxpc3QgKCZhbGlzdCwgUW1lbnVfYmFyX2xpbmVzLCBsaW5lcyk7Cisg ICAgICBYU0VURkFTVElOVCAobGluZXMsIEZSQU1FX1RBQl9CQVJfTElORVMgKGYpKTsKKyAgICAg IHN0b3JlX2luX2FsaXN0ICgmYWxpc3QsIFF0YWJfYmFyX2xpbmVzLCBsaW5lcyk7CisgICAgICBY U0VURkFTVElOVCAobGluZXMsIEZSQU1FX0NVUlJFTlRfVEFCIChmKSk7CisgICAgICBzdG9yZV9p bl9hbGlzdCAoJmFsaXN0LCBRY3VycmVudF90YWIsIGxpbmVzKTsKKyAgICAgIHRhYmVudj0gRmNk ciAoIEZhc3NxIChRdGFiX2VudiwKKwkJCSAgICBGbnRoIChtYWtlX251bWJlciAoZi0+Y3VycmVu dF90YWIpLCBmLT50YWJfYmFyX2l0ZW1zKSkpOworICAgICAgc3RvcmVfaW5fYWxpc3QgKCZhbGlz dCwgUXRhYl9lbnYsIHRhYmVudik7CisgICAgICAvKiBwcm92aWRlIGFuIGluZm9ybWFsIHJlZmVy ZW5jZSB0byB0YWJzLiAqLworICAgICAgc3RvcmVfaW5fYWxpc3QgKCZhbGlzdCwgUXRhYl9saXN0 LCBmLT50YWJfYmFyX2l0ZW1zKTsKICAgICB9Ci0KICAgVU5HQ1BSTzsKICAgcmV0dXJuIGFsaXN0 OwogfQpAQCAtMjgyMiw2ICszMDMxLDkgQEAgc3RhdGljIGNvbnN0IHN0cnVjdCBmcmFtZV9wYXJt X3RhYmxlIGZyYW1lX3Bhcm1zW10gPQogICB7Imljb24tdHlwZSIsCQkJJlFpY29uX3R5cGV9LAog ICB7ImludGVybmFsLWJvcmRlci13aWR0aCIsCSZRaW50ZXJuYWxfYm9yZGVyX3dpZHRofSwKICAg eyJtZW51LWJhci1saW5lcyIsCQkmUW1lbnVfYmFyX2xpbmVzfSwKKyAgeyJ0YWItYmFyLWxpbmVz IiwJCSZRdGFiX2Jhcl9saW5lc30sCisgIHsiY3VycmVudC10YWIiLAkJJlFjdXJyZW50X3RhYn0s CisgIHsidGFiLWxpc3QiLCAgICAgICAgICAgICAgICAgICZRdGFiX2xpc3R9LAogICB7Im1vdXNl LWNvbG9yIiwJCSZRbW91c2VfY29sb3J9LAogICB7Im5hbWUiLAkJCSZRbmFtZX0sCiAgIHsic2Ny b2xsLWJhci13aWR0aCIsCQkmUXNjcm9sbF9iYXJfd2lkdGh9LApAQCAtNDQ0Myw2ICs0NjU1LDIy IEBAIHN5bXNfb2ZfZnJhbWUgKHZvaWQpCiAgIFF0ZXJtaW5hbF9saXZlX3AgPSBpbnRlcm5fY19z dHJpbmcgKCJ0ZXJtaW5hbC1saXZlLXAiKTsKICAgc3RhdGljcHJvICgmUXRlcm1pbmFsX2xpdmVf cCk7CiAKKyAgUXRhYiA9IGludGVybl9jX3N0cmluZyAoInRhYiIpOworICBzdGF0aWNwcm8gKCZR dGFiKTsKKworICBRdGFiX2VudiA9IGludGVybl9jX3N0cmluZyAoInRhYjplbnYiKTsKKyAgc3Rh dGljcHJvICgmUXRhYl9lbnYpOworCisgIFF0YWJfbmFtZSA9IGludGVybl9jX3N0cmluZyAoInRh YjpuYW1lIik7CisgIHN0YXRpY3BybyAoJlF0YWJfbmFtZSk7CisKKyAgUXRhYl9hY3RpdmF0ZSA9 IGludGVybl9jX3N0cmluZyAoInRhYjphY3RpdmF0ZSIpOworICBzdGF0aWNwcm8gKCZRdGFiX2Fj dGl2YXRlKTsKKyAgUXRhYl9kZWFjdGl2YXRlID0gaW50ZXJuX2Nfc3RyaW5nICgidGFiOmRlYWN0 aXZhdGUiKTsKKyAgc3RhdGljcHJvICgmUXRhYl9kZWFjdGl2YXRlKTsKKyAgUXRhYl9pbml0ID0g aW50ZXJuX2Nfc3RyaW5nICgidGFiOmluaXQiKTsKKyAgc3RhdGljcHJvICgmUXRhYl9pbml0KTsK KwogI2lmZGVmIEhBVkVfTlMKICAgUW5zX3BhcnNlX2dlb21ldHJ5ID0gaW50ZXJuX2Nfc3RyaW5n ICgibnMtcGFyc2UtZ2VvbWV0cnkiKTsKICAgc3RhdGljcHJvICgmUW5zX3BhcnNlX2dlb21ldHJ5 KTsKZGlmZiAtLWdpdCBhL3NyYy9mcmFtZS5oIGIvc3JjL2ZyYW1lLmgKaW5kZXggMzFmNjAxNy4u MzExMGZkNCAxMDA2NDQKLS0tIGEvc3JjL2ZyYW1lLmgKKysrIGIvc3JjL2ZyYW1lLmgKQEAgLTE3 MSw2ICsxNzEsMTIgQEAgc3RydWN0IGZyYW1lCiAgICAgIE9ubHkgdGhlIFggdG9vbGtpdCB2ZXJz aW9uIHVzZXMgdGhpcy4gICovCiAgIExpc3BfT2JqZWN0IG1lbnVfYmFyX3ZlY3RvcjsKIAorICAg IC8qCisgICAgICogYSBsaXN0IHdpdGggY29uc2VzIG9mIHRoZSBmb3JtICgic3RyaW5nX3RhYl9u YW1lIiAuIChhbGlzdF90YWJfcGFyYW1ldGVycykpCisgICAgICovCisgICAgTGlzcF9PYmplY3Qg dGFiX2Jhcl9pdGVtczsKKworCiAgIC8qIFByZWRpY2F0ZSBmb3Igc2VsZWN0aW5nIGJ1ZmZlcnMg Zm9yIG90aGVyLWJ1ZmZlci4gICovCiAgIExpc3BfT2JqZWN0IGJ1ZmZlcl9wcmVkaWNhdGU7CiAK QEAgLTIwMyw2ICsyMDksMTMgQEAgc3RydWN0IGZyYW1lCiAgIC8qIENhY2hlIG9mIHJlYWxpemVk IGZhY2VzLiAgKi8KICAgc3RydWN0IGZhY2VfY2FjaGUgKmZhY2VfY2FjaGU7CiAKKyAgICAvKgor ICAgICAgdGhlIGluZGV4IG9mIHRoZSBsYXN0IGFjdGl2YXRlZCB0YWIuCisgICAgICovCisgICAg aW50IGN1cnJlbnRfdGFiOworCisgICAgaW50IGxhc3RfdGFiOworCiAgIC8qIE51bWJlciBvZiBl bGVtZW50cyBpbiBgbWVudV9iYXJfdmVjdG9yJyB0aGF0IGhhdmUgbWVhbmluZ2Z1bCBkYXRhLiAg Ki8KICAgRU1BQ1NfSU5UIG1lbnVfYmFyX2l0ZW1zX3VzZWQ7CiAKQEAgLTM2MCw2ICszNzMsOCBA QCBzdHJ1Y3QgZnJhbWUKICAgLyogTnVtYmVyIG9mIGxpbmVzIG9mIG1lbnUgYmFyLiAgKi8KICAg aW50IG1lbnVfYmFyX2xpbmVzOwogCisgICAgaW50IHRhYl9iYXJfbGluZXM7CisKICNpZiBkZWZp bmVkIChVU0VfWF9UT09MS0lUKSB8fCBkZWZpbmVkIChIQVZFX05UR1VJKSBcCiAgICAgfHwgZGVm aW5lZCAoSEFWRV9OUykgfHwgZGVmaW5lZCAoVVNFX0dUSykKICAgLyogTm9uemVybyBtZWFucyB1 c2luZyBhIG1lbnUgYmFyIHRoYXQgY29tZXMgZnJvbSB0aGUgWCB0b29sa2l0LiAgKi8KQEAgLTU5 MCw2ICs2MDUsMTEgQEAgdHlwZWRlZiBzdHJ1Y3QgZnJhbWUgKkZSQU1FX1BUUjsKICAgIFRoZXNl IGxpbmVzIGFyZSBjb3VudGVkIGluIEZSQU1FX0xJTkVTLiAgKi8KICNkZWZpbmUgRlJBTUVfTUVO VV9CQVJfTElORVMoZikgKGYpLT5tZW51X2Jhcl9saW5lcwogCisjZGVmaW5lIEZSQU1FX0NVUlJF TlRfVEFCKGYpIGYgLT4gY3VycmVudF90YWIKKyNkZWZpbmUgRlJBTUVfVEFCX0JBUl9JVEVNUyhm KSBmIC0+IHRhYl9iYXJfaXRlbXMKKyNkZWZpbmUgRlJBTUVfVEFCX0JBUl9MSU5FUyhmKSBmIC0+ IHRhYl9iYXJfbGluZXMKKworCiAvKiBOb256ZXJvIGlmIHRoaXMgZnJhbWUgc2hvdWxkIGRpc3Bs YXkgYSB0b29sIGJhcgogICAgaW4gYSB3YXkgdGhhdCBkb2VzIG5vdCB1c2UgYW55IHRleHQgbGlu ZXMuICAqLwogI2lmIGRlZmluZWQgKFVTRV9HVEspIHx8IGRlZmluZWQgKEhBVkVfTlMpCkBAIC02 MDYsNyArNjI2LDcgQEAgdHlwZWRlZiBzdHJ1Y3QgZnJhbWUgKkZSQU1FX1BUUjsKIC8qIExpbmVz IGFib3ZlIHRoZSB0b3AtbW9zdCB3aW5kb3cgaW4gZnJhbWUgRi4gICovCiAKICNkZWZpbmUgRlJB TUVfVE9QX01BUkdJTihGKSBcCi0gICAgIChGUkFNRV9NRU5VX0JBUl9MSU5FUyAoRikgKyBGUkFN RV9UT09MX0JBUl9MSU5FUyAoRikpCisgICAgIChGUkFNRV9NRU5VX0JBUl9MSU5FUyAoRikgKyBG UkFNRV9UT09MX0JBUl9MSU5FUyAoRikgKyBGUkFNRV9UQUJfQkFSX0xJTkVTKEYpKQogCiAvKiBQ aXhlbCBoZWlnaHQgb2YgdGhlIHRvcCBtYXJnaW4gYWJvdmUuICAqLwogCkBAIC04MzIsMTMgKzg1 MiwxOCBAQCB0eXBlZGVmIHN0cnVjdCBmcmFtZSAqRlJBTUVfUFRSOwogICAgc3VwcG9ydGVkLiAg QW4gYWx0ZXJuYXRlIGRlZmluaXRpb24gb2YgdGhlIG1hY3JvIHdvdWxkIGV4cGFuZCB0bwogICAg c29tZXRoaW5nIHdoaWNoIGV4ZWN1dGVzIHRoZSBzdGF0ZW1lbnQgb25jZS4gICovCiAKKyNkZWZp bmUgRk9SX0VBQ0hfVEFCKGZyYW1lLCBsaXN0X3ZhciwgdGFiX3ZhcikJCQlcCisgICAgZm9yICgo bGlzdF92YXIpID0gZnJhbWUtPnRhYl9iYXJfaXRlbXM7CQkJXAorCSAoQ09OU1AgKGxpc3RfdmFy KQkJCQkJXAorCSAgJiYgKHRhYl92YXIgPSBYQ0FSIChsaXN0X3ZhciksIDEpKTsJCQlcCisJIGxp c3RfdmFyID0gWENEUiAobGlzdF92YXIpKQorCiAjZGVmaW5lIEZPUl9FQUNIX0ZSQU1FKGxpc3Rf dmFyLCBmcmFtZV92YXIpCQkJXAogICBmb3IgKChsaXN0X3ZhcikgPSBWZnJhbWVfbGlzdDsJCQkJ XAogICAgICAgIChDT05TUCAobGlzdF92YXIpCQkJCQlcCi0JJiYgKGZyYW1lX3ZhciA9IFhDQVIg KGxpc3RfdmFyKSwgMSkpOwkJXAorCSYmIChmcmFtZV92YXIgPSBYQ0FSIChsaXN0X3ZhciksIDEp KTsJCQlcCiAgICAgICAgbGlzdF92YXIgPSBYQ0RSIChsaXN0X3ZhcikpCiAKLQogZXh0ZXJuIExp c3BfT2JqZWN0IFFmcmFtZXAsIFFmcmFtZV9saXZlX3A7CiBleHRlcm4gTGlzcF9PYmplY3QgUXR0 eSwgUXR0eV90eXBlOwogZXh0ZXJuIExpc3BfT2JqZWN0IFF0dHlfY29sb3JfbW9kZTsKZGlmZiAt LWdpdCBhL3NyYy93aW5kb3cuYyBiL3NyYy93aW5kb3cuYwppbmRleCBhMmEwYzc5Li43MDk2NDg4 IDEwMDY0NAotLS0gYS9zcmMvd2luZG93LmMKKysrIGIvc3JjL3dpbmRvdy5jCkBAIC01ODMyLDYg KzU4MzIsNyBAQCBzdHJ1Y3Qgc2F2ZV93aW5kb3dfZGF0YQogCiAgICAgaW50IGZyYW1lX2NvbHMs IGZyYW1lX2xpbmVzLCBmcmFtZV9tZW51X2Jhcl9saW5lczsKICAgICBpbnQgZnJhbWVfdG9vbF9i YXJfbGluZXM7CisgICAgaW50IGZyYW1lX3RhYl9iYXJfbGluZXM7CiAgIH07CiAKIC8qIFRoaXMg aXMgc2F2ZWQgYXMgYSBMaXNwX1ZlY3RvciAgKi8KQEAgLTU5NjMsNiArNTk2NCw3IEBAIHRoZSBy ZXR1cm4gdmFsdWUgaXMgbmlsLiAgT3RoZXJ3aXNlIHRoZSB2YWx1ZSBpcyB0LiAgKi8pCiAgICAg ICBpbnQgcHJldmlvdXNfZnJhbWVfY29scyA9ICBGUkFNRV9DT0xTICAoZik7CiAgICAgICBpbnQg cHJldmlvdXNfZnJhbWVfbWVudV9iYXJfbGluZXMgPSBGUkFNRV9NRU5VX0JBUl9MSU5FUyAoZik7 CiAgICAgICBpbnQgcHJldmlvdXNfZnJhbWVfdG9vbF9iYXJfbGluZXMgPSBGUkFNRV9UT09MX0JB Ul9MSU5FUyAoZik7CisgICAgICBpbnQgcHJldmlvdXNfZnJhbWVfdGFiX2Jhcl9saW5lcyA9IEZS QU1FX1RBQl9CQVJfTElORVMgKGYpOwogCiAgICAgICAvKiBUaGUgbW91c2UgaGlnaGxpZ2h0aW5n IGNvZGUgY291bGQgZ2V0IHNjcmV3ZWQgdXAKIAkgaWYgaXQgcnVucyBkdXJpbmcgdGhpcy4gICov CkBAIC02NDE0LDYgKzY0MTYsNyBAQCByZWRpcmVjdGlvbiAoc2VlIGByZWRpcmVjdC1mcmFtZS1m b2N1cycpLiAgKi8pCiAgIGRhdGEtPmZyYW1lX2xpbmVzID0gRlJBTUVfTElORVMgKGYpOwogICBk YXRhLT5mcmFtZV9tZW51X2Jhcl9saW5lcyA9IEZSQU1FX01FTlVfQkFSX0xJTkVTIChmKTsKICAg ZGF0YS0+ZnJhbWVfdG9vbF9iYXJfbGluZXMgPSBGUkFNRV9UT09MX0JBUl9MSU5FUyAoZik7Cisg IGRhdGEtPmZyYW1lX3RhYl9iYXJfbGluZXMgPSBGUkFNRV9UQUJfQkFSX0xJTkVTIChmKTsKICAg ZGF0YS0+c2VsZWN0ZWRfZnJhbWUgPSBzZWxlY3RlZF9mcmFtZTsKICAgZGF0YS0+Y3VycmVudF93 aW5kb3cgPSBGUkFNRV9TRUxFQ1RFRF9XSU5ET1cgKGYpOwogICBYU0VUQlVGRkVSIChkYXRhLT5j dXJyZW50X2J1ZmZlciwgY3VycmVudF9idWZmZXIpOwpAQCAtNjkxMCw2ICs2OTEzLDggQEAgY29t cGFyZV93aW5kb3dfY29uZmlndXJhdGlvbnMgKExpc3BfT2JqZWN0IGMxLCBMaXNwX09iamVjdCBj MiwgaW50IGlnbm9yZV9wb3NpdGkKICAgICByZXR1cm4gMDsKICAgaWYgKGQxLT5mcmFtZV9tZW51 X2Jhcl9saW5lcyAhPSBkMi0+ZnJhbWVfbWVudV9iYXJfbGluZXMpCiAgICAgcmV0dXJuIDA7Cisg IGlmIChkMS0+ZnJhbWVfdGFiX2Jhcl9saW5lcyAhPSBkMi0+ZnJhbWVfdGFiX2Jhcl9saW5lcykK KyAgICByZXR1cm4gMDsKICAgaWYgKCEgRVEgKGQxLT5zZWxlY3RlZF9mcmFtZSwgZDItPnNlbGVj dGVkX2ZyYW1lKSkKICAgICByZXR1cm4gMDsKICAgLyogRG9uJ3QgY29tcGFyZSB0aGUgY3VycmVu dF93aW5kb3cgZmllbGQgZGlyZWN0bHkuCmRpZmYgLS1naXQgYS9zcmMveGRpc3AuYyBiL3NyYy94 ZGlzcC5jCmluZGV4IDc3ZTlkYjIuLmJiZDhiZDMgMTAwNjQ0Ci0tLSBhL3NyYy94ZGlzcC5jCisr KyBiL3NyYy94ZGlzcC5jCkBAIC0zMzAsNiArMzMwLDggQEAgTGlzcF9PYmplY3QgUWluaGliaXRf ZXZhbF9kdXJpbmdfcmVkaXNwbGF5OwogTGlzcF9PYmplY3QgUWJ1ZmZlcl9wb3NpdGlvbiwgUXBv c2l0aW9uLCBRb2JqZWN0OwogTGlzcF9PYmplY3QgUXJpZ2h0X3RvX2xlZnQsIFFsZWZ0X3RvX3Jp Z2h0OwogCitMaXNwX09iamVjdCBRdGFiX25hbWU7CisKIC8qIEN1cnNvciBzaGFwZXMgKi8KIExp c3BfT2JqZWN0IFFiYXIsIFFoYmFyLCBRYm94LCBRaG9sbG93OwogCkBAIC0xMDU5LDYgKzEwNjEs OCBAQCBzdGF0aWMgaW50IHN0b3JlX21vZGVfbGluZV9zdHJpbmcgKGNvbnN0IGNoYXIgKiwgTGlz cF9PYmplY3QsIGludCwgaW50LCBpbnQsIExpcwogc3RhdGljIGNvbnN0IGNoYXIgKmRlY29kZV9t b2RlX3NwZWMgKHN0cnVjdCB3aW5kb3cgKiwgaW50LCBpbnQsIGludCwKIAkJCQkgICAgIExpc3Bf T2JqZWN0ICopOwogc3RhdGljIHZvaWQgZGlzcGxheV9tZW51X2JhciAoc3RydWN0IHdpbmRvdyAq KTsKK3N0YXRpYyB2b2lkIGRpc3BsYXlfdGFiX2JhciAoc3RydWN0IHdpbmRvdyAqdyk7CisKIHN0 YXRpYyBpbnQgZGlzcGxheV9jb3VudF9saW5lcyAoRU1BQ1NfSU5ULCBFTUFDU19JTlQsIEVNQUNT X0lOVCwgaW50LAogCQkJCUVNQUNTX0lOVCAqKTsKIHN0YXRpYyBpbnQgZGlzcGxheV9zdHJpbmcg KGNvbnN0IHVuc2lnbmVkIGNoYXIgKiwgTGlzcF9PYmplY3QsIExpc3BfT2JqZWN0LApAQCAtMTQ1 NzUsNiArMTQ1NzksNyBAQCByZWRpc3BsYXlfd2luZG93IChMaXNwX09iamVjdCB3aW5kb3csIGlu dCBqdXN0X3RoaXNfb25lX3ApCiAgICAgICAmJiBFUSAoRlJBTUVfU0VMRUNURURfV0lORE9XIChm KSwgd2luZG93KSkKICAgICB7CiAgICAgICBpbnQgcmVkaXNwbGF5X21lbnVfcCA9IDA7CisgICAg ICBpbnQgcmVkaXNwbGF5X3RhYl9wID0gMDsKICAgICAgIGludCByZWRpc3BsYXlfdG9vbF9iYXJf cCA9IDA7CiAKICAgICAgIGlmIChGUkFNRV9XSU5ET1dfUCAoZikpCkBAIC0xNDU4OSw5ICsxNDU5 NCwxNCBAQCByZWRpc3BsYXlfd2luZG93IChMaXNwX09iamVjdCB3aW5kb3csIGludCBqdXN0X3Ro aXNfb25lX3ApCiAgICAgICBlbHNlCiAgICAgICAgIHJlZGlzcGxheV9tZW51X3AgPSBGUkFNRV9N RU5VX0JBUl9MSU5FUyAoZikgPiAwOwogCisgICAgICByZWRpc3BsYXlfdGFiX3AgPSBGUkFNRV9U QUJfQkFSX0xJTkVTIChmKSA+IDA7CisKICAgICAgIGlmIChyZWRpc3BsYXlfbWVudV9wKQogICAg ICAgICBkaXNwbGF5X21lbnVfYmFyICh3KTsKIAorICAgICAgaWYgKHJlZGlzcGxheV90YWJfcCkK KwkgIGRpc3BsYXlfdGFiX2JhciAodyk7CisKICNpZmRlZiBIQVZFX1dJTkRPV19TWVNURU0KICAg ICAgIGlmIChGUkFNRV9XSU5ET1dfUCAoZikpCiAgICAgICAgIHsKQEAgLTE4MTc2LDYgKzE4MTg2 LDc1IEBAIFNlZSBhbHNvIGBiaWRpLXBhcmFncmFwaC1kaXJlY3Rpb24nLiAgKi8pCiAgICAgfQog fQogCit2b2lkCitkaXNwbGF5X3RhYl9iYXIgKHN0cnVjdCB3aW5kb3cgKncpCit7CisgICAgY29u c3QgaW50IHRhYl9sZW5ndGggPSAxMDsKKworICAgIHN0cnVjdCBmcmFtZSAqZnIgPSBYRlJBTUUg KFdJTkRPV19GUkFNRSAodykpOworCisgICAgc3RydWN0IGl0IGl0OworICAgIGludCBpbmRleDsK KyAgICBpbml0X2l0ZXJhdG9yICgmaXQsIHcsIC0xLCAtMSwKKwkJICAgZnItPmRlc2lyZWRfbWF0 cml4LT5yb3dzICsgRlJBTUVfTUVOVV9CQVJfTElORVMgKGZyKSwKKwkJICAgREVGQVVMVF9GQUNF X0lEKTsKKyAgICBpdC5maXJzdF92aXNpYmxlX3ggPSAwOworICAgIGl0Lmxhc3RfdmlzaWJsZV94 ID0gRlJBTUVfQ09MUyAoZnIpOworCisgIC8qIENsZWFyIGFsbCByb3dzIG9mIHRoZSBtZW51IGJh ci4gICovCisgIGZvciAoaW5kZXggPSAwOworICAgICAgIGluZGV4IDwgRlJBTUVfVEFCX0JBUl9M SU5FUyAoZnIpOworICAgICAgICsraW5kZXgpCisgICAgeworICAgICAgc3RydWN0IGdseXBoX3Jv dyAqcm93ID0gaXQuZ2x5cGhfcm93ICsgaW5kZXg7CisgICAgICBjbGVhcl9nbHlwaF9yb3cgKHJv dyk7CisgICAgICByb3ctPmVuYWJsZWRfcCA9IDE7CisgICAgICByb3ctPmZ1bGxfd2lkdGhfcCA9 IDE7CisgICAgfQorCisgIGludCBpaT0wLCBvZGRyb3c9MCwgb2RkY29sPTA7CisgIExpc3BfT2Jq ZWN0IHRhYiwgdGFiX2xpc3QsIHM7CisgIEZPUl9FQUNIX1RBQiAoZnIsIHRhYl9saXN0LCB0YWIp CisgIHsKKyAgICAgIExpc3BfT2JqZWN0IHRhYm5hbWUgPSBGY2RyIChGYXNzcSAoUXRhYl9uYW1l LCB0YWIpKTsKKyAgICAgIGlmIChpdC4gaHBvcyArIHRhYl9sZW5ndGggPiBGUkFNRV9DT0xTIChm cikpCisgICAgICB7CisJICAvKiBGaWxsIG91dCB0aGUgbGluZSB3aXRoIHNwYWNlcy4gICovCisJ ICBpdC5iYXNlX2ZhY2VfaWQgPSBERUZBVUxUX0ZBQ0VfSUQ7CisJICB3aGlsZSAoaXQuY3VycmVu dF94IDwgaXQubGFzdF92aXNpYmxlX3gpCisJICAgICAgZGlzcGxheV9zdHJpbmcgKCIgIiwgUW5p bCwgUW5pbCwgMCwgMCwgICZpdCwgMSwgMCwgMCwgLTEpOworCisgIAkgIGlmICh1bml4ID09IChp dC5jdXJyZW50X3kgKyAxKSkKKwkgICAgICBvZGRjb2wgPSBpaSAlIDI7CisKKwkgIG9kZHJvdyA9 IChvZGRjb2wpPyAoaWklMikgOiAhb2Rkcm93OworCisgICAgICAJICBpdC5ocG9zID0gaXQuY3Vy cmVudF94ID0gMDsKKwkgIGl0LmN1cnJlbnRfeSArKzsKKyAgICAgIAkgICsraXQudnBvczsKKyAg ICAgIAkgIGl0LmdseXBoX3JvdysrOworCSAgaWYgKGl0LmN1cnJlbnRfeSA+IEZSQU1FX1RBQl9C QVJfTElORVMgKGZyKSkKKyAgICAgIAkgICAgICBicmVhazsKKyAgICAgIH0KKworICAgICAgaXQu YmFzZV9mYWNlX2lkID0gKGlpID09IEZSQU1FX0NVUlJFTlRfVEFCIChmcikpID8gQ1VSUkVOVF9U QUJfRkFDRV9JRCA6CisgICAgICAJICAgb2Rkcm93ID8gT0REX1RBQl9GQUNFX0lEIDoKKyAgICAg IAkgIEVWRU5fVEFCX0ZBQ0VfSUQ7CisgICAgICAKKyAgICAgIGludCBsZW4gPSBTQ0hBUlMgKHRh Ym5hbWUpID4gdGFiX2xlbmd0aCA/IHRhYl9sZW5ndGg6IFNDSEFSUyAodGFibmFtZSk7CisgICAg ICBzID0gRnN1YnN0cmluZyAodGFibmFtZSwgbWFrZV9udW1iZXIoMCksIG1ha2VfbnVtYmVyIChs ZW4pKTsKKyAgICAgIGRpc3BsYXlfc3RyaW5nIChOVUxMLCBzLCBRbmlsLCAwLCAwLCAmaXQsIHRh Yl9sZW5ndGgsIDAsIDAsIC0xKTsKKworICAgICAgb2Rkcm93ID0gISBvZGRyb3c7CisgICAgICBp aSsrOworICB9CisKKyAgCisgIC8qIENvbXB1dGUgdGhlIHRvdGFsIGhlaWdodCBvZiB0aGUgbGlu ZXMuICAqLworICBjb21wdXRlX2xpbmVfbWV0cmljcyAoJml0KTsKKworfQorCiAKIAwKIC8qKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKgpkaWZmIC0tZ2l0IGEvc3JjL3hmYWNlcy5jIGIvc3JjL3hmYWNlcy5jCmluZGV4 IDVjN2NmZTYuLjNlMTRhNjQgMTAwNjQ0Ci0tLSBhL3NyYy94ZmFjZXMuYworKysgYi9zcmMveGZh Y2VzLmMKQEAgLTM0OCw2ICszNDgsNyBAQCBMaXNwX09iamVjdCBRZnJhbWVfc2V0X2JhY2tncm91 bmRfbW9kZTsKIExpc3BfT2JqZWN0IFFkZWZhdWx0LCBRdG9vbF9iYXIsIFFyZWdpb24sIFFmcmlu Z2U7CiBMaXNwX09iamVjdCBRaGVhZGVyX2xpbmUsIFFzY3JvbGxfYmFyLCBRY3Vyc29yLCBRYm9y ZGVyLCBRbW91c2UsIFFtZW51OwogTGlzcF9PYmplY3QgUW1vZGVfbGluZV9pbmFjdGl2ZSwgUXZl cnRpY2FsX2JvcmRlcjsKK0xpc3BfT2JqZWN0IFFvZGRfdGFiX2ZhY2UsIFFldmVuX3RhYl9mYWNl LCBRY3VycmVudF90YWJfZmFjZTsKIAogLyogVGhlIHN5bWJvbCBgZmFjZS1hbGlhcycuICBBIHN5 bWJvbHMgaGF2aW5nIHRoYXQgcHJvcGVydHkgaXMgYW4KICAgIGFsaWFzIGZvciBhbm90aGVyIGZh Y2UuICBWYWx1ZSBvZiB0aGUgcHJvcGVydHkgaXMgdGhlIG5hbWUgb2YKQEAgLTUzODksNiArNTM5 MCw5IEBAIHJlYWxpemVfYmFzaWNfZmFjZXMgKHN0cnVjdCBmcmFtZSAqZikKICAgICAgIHJlYWxp emVfbmFtZWRfZmFjZSAoZiwgUW1vdXNlLCBNT1VTRV9GQUNFX0lEKTsKICAgICAgIHJlYWxpemVf bmFtZWRfZmFjZSAoZiwgUW1lbnUsIE1FTlVfRkFDRV9JRCk7CiAgICAgICByZWFsaXplX25hbWVk X2ZhY2UgKGYsIFF2ZXJ0aWNhbF9ib3JkZXIsIFZFUlRJQ0FMX0JPUkRFUl9GQUNFX0lEKTsKKyAg ICAgIHJlYWxpemVfbmFtZWRfZmFjZSAoZiwgUWN1cnJlbnRfdGFiX2ZhY2UsIENVUlJFTlRfVEFC X0ZBQ0VfSUQpOworICAgICAgcmVhbGl6ZV9uYW1lZF9mYWNlIChmLCBRb2RkX3RhYl9mYWNlLCBP RERfVEFCX0ZBQ0VfSUQpOworICAgICAgcmVhbGl6ZV9uYW1lZF9mYWNlIChmLCBRZXZlbl90YWJf ZmFjZSwgRVZFTl9UQUJfRkFDRV9JRCk7CiAKICAgICAgIC8qIFJlZmxlY3QgY2hhbmdlcyBpbiB0 aGUgYG1lbnUnIGZhY2UgaW4gbWVudSBiYXJzLiAgKi8KICAgICAgIGlmIChGUkFNRV9GQUNFX0NB Q0hFIChmKS0+bWVudV9mYWNlX2NoYW5nZWRfcCkKQEAgLTY2NTksNiArNjY2MywxMiBAQCBzeW1z X29mX3hmYWNlcyAodm9pZCkKICAgc3RhdGljcHJvICgmUW1vZGVfbGluZV9pbmFjdGl2ZSk7CiAg IFF2ZXJ0aWNhbF9ib3JkZXIgPSBpbnRlcm5fY19zdHJpbmcgKCJ2ZXJ0aWNhbC1ib3JkZXIiKTsK ICAgc3RhdGljcHJvICgmUXZlcnRpY2FsX2JvcmRlcik7CisgIFFjdXJyZW50X3RhYl9mYWNlID0g aW50ZXJuICgiY3VycmVudC10YWItZmFjZSIpOworICBzdGF0aWNwcm8gKCZRY3VycmVudF90YWJf ZmFjZSk7CisgIFFvZGRfdGFiX2ZhY2UgPSBpbnRlcm4gKCJvZGQtdGFiLWZhY2UiKTsKKyAgc3Rh dGljcHJvICgmUW9kZF90YWJfZmFjZSk7CisgIFFldmVuX3RhYl9mYWNlID0gaW50ZXJuICgiZXZl bi10YWItZmFjZSIpOworICBzdGF0aWNwcm8gKCZRZXZlbl90YWJfZmFjZSk7CiAgIFF0dHlfY29s b3JfZGVzYyA9IGludGVybl9jX3N0cmluZyAoInR0eS1jb2xvci1kZXNjIik7CiAgIHN0YXRpY3By byAoJlF0dHlfY29sb3JfZGVzYyk7CiAgIFF0dHlfY29sb3Jfc3RhbmRhcmRfdmFsdWVzID0gaW50 ZXJuX2Nfc3RyaW5nICgidHR5LWNvbG9yLXN0YW5kYXJkLXZhbHVlcyIpOwotLSAKMS43LjEKCg== --0015176f1376cc11e704969c87dc Content-Type: text/x-emacs-lisp; charset=US-ASCII; name="test-tabs.el" Content-Disposition: attachment; filename="test-tabs.el" Content-Transfer-Encoding: base64 X-Attachment-Id: f_ghb0wv6i1 Cjs7IGV2YWx1YXRlIHRoaXMgZmlsZSwgc2V4cCBhZnRlciBzZXhwLCBhbmQgZm9sbG93IHRoZSBj b21tZW50cy4KCjs7IHNldCBhIG1pbmltYWwgZW52aXJvbm1lbnQKKHByb2duCiAgKGN1c3RvbS1z ZXQtZmFjZXMKICAgJyhjdXJyZW50LXRhYi1mYWNlICgodCAoIDppbmhlcml0ICdkZWZhdWx0LWZh Y2UgIDpmb3JlZ3JvdW5kICJsaWdodGJsdWUiIDpib2xkIHQgOnVuZGVybGluZSB0KSkpKQogICAn KG9kZC10YWItZmFjZSAgICAoKHQgKCA6YmFja2dyb3VuZCAicmVkIiAgICA6Zm9yZWdyb3VuZCAi d2hpdGUiICkpKSkKICAgJyhldmVuLXRhYi1mYWNlICAgKCh0ICggOmJhY2tncm91bmQgImdyZWVu IiAgOmZvcmVncm91bmQgImJsYWNrIikpKSkpCiAgKHNldC1mcmFtZS1wYXJhbWV0ZXIgKHNlbGVj dGVkLWZyYW1lKSAndGFiLWJhci1saW5lcyA0KQogIChzZXQtZnJhbWUtcGFyYW1ldGVyIChzZWxl Y3RlZC1mcmFtZSkgJ21lbnUtYmFyLWxpbmVzIDApKQoKOzsgdGhpcyBpcyBhIGRlZmluaXRpb24g b2YgYSB0YWIgYXMgYSB3aW5kb3cgY29uZmlndXJhdGlvbgooZGVmdW4gbWFrZS13Yy10YWIgKHBh cm1zKQogIDs7IHNhdmUgY3VyZW50IHdpbiBjb25maWcKICAoc2V0cSBzeW0gKG1ha2Utc3ltYm9s ICJ3aW5jb25maWciKSkKICAoc2V0IHN5bSAgKGN1cnJlbnQtd2luZG93LWNvbmZpZ3VyYXRpb24p KQogIDs7IG1ha2UgYSB0YWIgdGhhdCBrZWVwcyBhIHdpbmRvdyBjb25maWd1cmF0aW9uLiBXaGVu IGl0IGlzIGNyZWF0ZWQsCiAgOzsgaXQgbWVtb3JpZXMgdGhlIGN1cnJlbnQgd2luIGNvbmZpZy4g V2hlbiBpdCBpcyBhY3RpdmF0ZWQsIGl0CiAgOzsgcmVzdG9yZXMgdGhlIG1lbW9yaXplZCB3aW4g Y29uZmlnCiAgKG1ha2UtdGVybWluYWwtZnJhbWUKICAgKGxpc3QgJyh0YWIgLiB0KQoJICcodGFi Om5hbWUgLiAiV2luQyIpCgkgJyh0YWI6YWN0aXZhdGUKCSAgIC4KCSAgIChsYW1iZGEgKCkKCSAg ICAgKHNldC13aW5kb3ctY29uZmlndXJhdGlvbgoJICAgICAgKGV2YWwgKGNkciAoYXNzb2MgJ3Rh YjplbnYgKGZyYW1lLXBhcmFtZXRlcnMpICkgKSApICkgKSApCgkgOzsgc2F2ZSB0aGUgY3VycmVu dCB3aW4gY29uZmlnIGludG8gdGhlIHRhYiBlbnZpcm9ubWVudAoJIChjb25zICd0YWI6ZW52IHN5 bSkgKSApICkKCjs7IG1ha2UgYSBmaXJzdCB0YWIga2VlcGluZyBjdXJyZW50IHdpbiBjb25maWcK KG1ha2Utd2MtdGFiIG5pbCkKCjs7IGFsdGVyIHRoZSB3aW5kb3cgY29uZmlndXJhdGlvbgooKGxh bWJkYSBuaWwKICAgKHNwbGl0LXdpbmRvdy12ZXJ0aWNhbGx5KSkpCgo7OyBtYWtlIGEgc2Vjb25k IHRhYiBrZWVwaW5nIGN1cnJlbnQgd2luIGNvbmZpZwoobWFrZS13Yy10YWIgbmlsKQoKOzsgYWx0 ZXIgdGhlIHdpbmRvdyBjb25maWd1cmF0aW9uCigobGFtYmRhIG5pbAogICAoc3BsaXQtd2luZG93 LWhvcml6b250YWxseSkpKQoKOzsgbWFrZSBhIHRoaXJkIHRhYiBrZWVwaW5nIGN1cnJlbnQgd2lu IGNvbmZpZwoobWFrZS13Yy10YWIgbmlsKQoKOzsga2VlcCBvbmx5IHRoZSBjdXJyZW50IHdpbmRv dwooZGVsZXRlLW90aGVyLXdpbmRvd3MpCgo7OyBub3cgYWN0aXZhdGUgdGhlIHRhYnMgdGhhdCBr ZWVwIHRoZSBtZW1vcml6ZWQgd2luIGNvbmZpZy4gIHRoaXMKOzsgZnVuY3Rpb24gZGlzb3ZlcmVk IGEgYnVnIGluIHdpbmRvdyBjb25maWd1cmF0aW9uIC4gTE9MLiAgSWYgeW91Cjs7IGNoYW5nZSB0 aGUgdGFiLWJhci1saW5lcyBvciBtZW51LWJhci1saW5lcyBhZnRlciBjcmVhdGluZyBhIHRhYgo7 OyBhbmQgYmVmb3JlIGFjdGl2YXRpbiBpdCBoZXJlLCBlbWFjcyBjcmFzaGVzLiBMT0wuCgo7OyBh Y3RpdmF0ZSB0aGUgc2Vjb25kCihzZXQtZnJhbWUtcGFyYW1ldGVyIChzZWxlY3RlZC1mcmFtZSkg J2N1cnJlbnQtdGFiIDEpCgo7OyB0aGUgdGhpcmQKKHNldC1mcmFtZS1wYXJhbWV0ZXIgKHNlbGVj dGVkLWZyYW1lKSAnY3VycmVudC10YWIgMikKCjs7IHRoZSBmaXJzdCBhZ2Fpbgooc2V0LWZyYW1l LXBhcmFtZXRlciAoc2VsZWN0ZWQtZnJhbWUpICdjdXJyZW50LXRhYiAwKQoKOzsgZHVtcCBmcmFt ZSBwYXJhbXMKKHByb2duCiAgKHNldHEgIGV2YWwtZXhwcmVzc2lvbi1wcmludC1sZW5ndGggNTAw MAoJIGV2YWwtZXhwcmVzc2lvbi1wcmludC1sZXZlbCAgNTAwMAoJIHByaW50LWxldmVsIDUwMDAK CSApCiAgKGZyYW1lLXBhcmFtZXRlcnMpICkKCjs7IHRoYXQncyBhbGwgZm9yIG5vdy4KCgoKCg== --0015176f1376cc11e704969c87dc--