Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id ; Wed, 10 Oct 2001 21:57:44 -0400 Received: (majordomo@vger.kernel.org) by vger.kernel.org id ; Wed, 10 Oct 2001 21:57:38 -0400 Received: from e31.co.us.ibm.com ([32.97.110.129]:43985 "EHLO e31.bld.us.ibm.com") by vger.kernel.org with ESMTP id ; Wed, 10 Oct 2001 21:57:21 -0400 Date: Wed, 10 Oct 2001 18:56:26 -0700 (PDT) From: "Paul E. McKenney" To: lse-tech@lists.sourceforge.net, linux-kernel@vger.kernel.org Subject: Re: RFC: patch to allow lock-free traversal of lists with insertion Message-ID: MIME-Version: 1.0 Content-Type: MULTIPART/MIXED; BOUNDARY="0-851401618-1002765386=:9717" Sender: linux-kernel-owner@vger.kernel.org X-Mailing-List: linux-kernel@vger.kernel.org This message is in MIME format. The first part should be readable text, while the remaining parts are likely unreadable without MIME-aware tools. Send mail to mime@docserver.cac.washington.edu for more info. --0-851401618-1002765386=:9717 Content-Type: TEXT/PLAIN; charset=US-ASCII < On Wed, Oct 10, 2001 at 02:47:05PM -0700, Paul McKenney wrote: < > > I don't think it's actually all that bad. There won't be all < > > that many places that require the rmbdd, and they'll pretty < > > much exactly correspond to the places in which you have to put < > > wmb for all architectures anyway. < > < > Just to make sure I understand... This rmbdd() would use IPIs to < > get all the CPUs' caches synchronized, right? < < Err, I see your confusion now. < < "Correspond" meaning "for every wmb needed on the writer side, < there is likely an rmb needed on the reader side in a similar < place". Fair enough! Here are two patches. The wmbdd patch has been modified to use the lighter-weight SPARC instruction, as suggested by Dave Miller. The rmbdd patch defines an rmbdd() primitive that is defined to be rmb() on Alpha and a nop on other architectures. I believe this rmbdd() primitive is what Richard is looking for. Please pass on any comments or criticisms. I am particularly interested in comments from people with PA-RISC and MIPS expertise, as I am not 100% sure that I have interpreted the PA-RISC architecture manual correctly, and I do not yet have a MIPS manual. I do not believe that these architectures need the Alpha treatment, but then again, I didn't think that Alpha needed the Alpha treatment when I first encountered it -- and I am quite clearly not the only one! ;-) Thanx, Paul PS. An updated explanation of why this is needed may be found at http://lse.sourceforge.net/locking/wmbdd.html --0-851401618-1002765386=:9717 Content-Type: TEXT/PLAIN; charset=US-ASCII; name="rmbdd.v2.4.10.patch.2001.10.10" Content-Transfer-Encoding: BASE64 Content-ID: Content-Description: rmbdd.v2.4.10.patch ZGlmZiAtdXJOIC1YIC9ob21lL21ja2VubmV5L2RvbnRkaWZmIGxpbnV4LTIu NC4xMC9pbmNsdWRlL2FzbS1hbHBoYS9zeXN0ZW0uaCBsaW51eC0yLjQuMTAu cm1iZGQvaW5jbHVkZS9hc20tYWxwaGEvc3lzdGVtLmgNCi0tLSBsaW51eC0y LjQuMTAvaW5jbHVkZS9hc20tYWxwaGEvc3lzdGVtLmgJU3VuIEF1ZyAxMiAx MDozODo0NyAyMDAxDQorKysgbGludXgtMi40LjEwLnJtYmRkL2luY2x1ZGUv YXNtLWFscGhhL3N5c3RlbS5oCVdlZCBPY3QgMTAgMTY6NDk6MTEgMjAwMQ0K QEAgLTE0OCwxNiArMTQ4LDIxIEBADQogI2RlZmluZSBybWIoKSBcDQogX19h c21fXyBfX3ZvbGF0aWxlX18oIm1iIjogOiA6Im1lbW9yeSIpDQogDQorI2Rl ZmluZSBybWJkZCgpIFwNCitfX2FzbV9fIF9fdm9sYXRpbGVfXygibWIiOiA6 IDoibWVtb3J5IikNCisNCiAjZGVmaW5lIHdtYigpIFwNCiBfX2FzbV9fIF9f dm9sYXRpbGVfXygid21iIjogOiA6Im1lbW9yeSIpDQogDQogI2lmZGVmIENP TkZJR19TTVANCiAjZGVmaW5lIHNtcF9tYigpCW1iKCkNCiAjZGVmaW5lIHNt cF9ybWIoKQlybWIoKQ0KKyNkZWZpbmUgc21wX3JtYmRkKCkJcm1iZGQoKQ0K ICNkZWZpbmUgc21wX3dtYigpCXdtYigpDQogI2Vsc2UNCiAjZGVmaW5lIHNt cF9tYigpCWJhcnJpZXIoKQ0KICNkZWZpbmUgc21wX3JtYigpCWJhcnJpZXIo KQ0KKyNkZWZpbmUgc21wX3JtYmRkKCkJYmFycmllcigpDQogI2RlZmluZSBz bXBfd21iKCkJYmFycmllcigpDQogI2VuZGlmDQogDQpkaWZmIC11ck4gLVgg L2hvbWUvbWNrZW5uZXkvZG9udGRpZmYgbGludXgtMi40LjEwL2luY2x1ZGUv YXNtLWFybS9zeXN0ZW0uaCBsaW51eC0yLjQuMTAucm1iZGQvaW5jbHVkZS9h c20tYXJtL3N5c3RlbS5oDQotLS0gbGludXgtMi40LjEwL2luY2x1ZGUvYXNt LWFybS9zeXN0ZW0uaAlNb24gTm92IDI3IDE3OjA3OjU5IDIwMDANCisrKyBs aW51eC0yLjQuMTAucm1iZGQvaW5jbHVkZS9hc20tYXJtL3N5c3RlbS5oCVdl ZCBPY3QgMTAgMTg6MTg6MTIgMjAwMQ0KQEAgLTM4LDYgKzM4LDcgQEANCiAN CiAjZGVmaW5lIG1iKCkgX19hc21fXyBfX3ZvbGF0aWxlX18gKCIiIDogOiA6 ICJtZW1vcnkiKQ0KICNkZWZpbmUgcm1iKCkgbWIoKQ0KKyNkZWZpbmUgcm1i ZGQoKSBkbyB7IH0gd2hpbGUoMCkNCiAjZGVmaW5lIHdtYigpIG1iKCkNCiAj ZGVmaW5lIG5vcCgpIF9fYXNtX18gX192b2xhdGlsZV9fKCJtb3ZcdHIwLHIw XHRAIG5vcFxuXHQiKTsNCiANCkBAIC02NywxMiArNjgsMTQgQEANCiANCiAj ZGVmaW5lIHNtcF9tYigpCQltYigpDQogI2RlZmluZSBzbXBfcm1iKCkJCXJt YigpDQorI2RlZmluZSBzbXBfcm1iZGQoKQkJcm1iZGQoKQ0KICNkZWZpbmUg c21wX3dtYigpCQl3bWIoKQ0KIA0KICNlbHNlDQogDQogI2RlZmluZSBzbXBf bWIoKQkJYmFycmllcigpDQogI2RlZmluZSBzbXBfcm1iKCkJCWJhcnJpZXIo KQ0KKyNkZWZpbmUgc21wX3JtYmRkKCkJCWRvIHsgfSB3aGlsZSgwKQ0KICNk ZWZpbmUgc21wX3dtYigpCQliYXJyaWVyKCkNCiANCiAjZGVmaW5lIGNsaSgp CQkJX19jbGkoKQ0KZGlmZiAtdXJOIC1YIC9ob21lL21ja2VubmV5L2RvbnRk aWZmIGxpbnV4LTIuNC4xMC9pbmNsdWRlL2FzbS1jcmlzL3N5c3RlbS5oIGxp bnV4LTIuNC4xMC5ybWJkZC9pbmNsdWRlL2FzbS1jcmlzL3N5c3RlbS5oDQot LS0gbGludXgtMi40LjEwL2luY2x1ZGUvYXNtLWNyaXMvc3lzdGVtLmgJVHVl IE1heSAgMSAxNjowNTowMCAyMDAxDQorKysgbGludXgtMi40LjEwLnJtYmRk L2luY2x1ZGUvYXNtLWNyaXMvc3lzdGVtLmgJV2VkIE9jdCAxMCAxODoxOTow NCAyMDAxDQpAQCAtMTQzLDE1ICsxNDMsMTggQEANCiANCiAjZGVmaW5lIG1i KCkgX19hc21fXyBfX3ZvbGF0aWxlX18gKCIiIDogOiA6ICJtZW1vcnkiKQ0K ICNkZWZpbmUgcm1iKCkgbWIoKQ0KKyNkZWZpbmUgcm1iZGQoKSBkbyB7IH0g d2hpbGUoMCkNCiAjZGVmaW5lIHdtYigpIG1iKCkNCiANCiAjaWZkZWYgQ09O RklHX1NNUA0KICNkZWZpbmUgc21wX21iKCkgICAgICAgIG1iKCkNCiAjZGVm aW5lIHNtcF9ybWIoKSAgICAgICBybWIoKQ0KKyNkZWZpbmUgc21wX3JtYmRk KCkgICAgIHJtYmRkKCkNCiAjZGVmaW5lIHNtcF93bWIoKSAgICAgICB3bWIo KQ0KICNlbHNlDQogI2RlZmluZSBzbXBfbWIoKSAgICAgICAgYmFycmllcigp DQogI2RlZmluZSBzbXBfcm1iKCkgICAgICAgYmFycmllcigpDQorI2RlZmlu ZSBzbXBfcm1iZGQoKSAgICAgZG8geyB9IHdoaWxlKDApDQogI2RlZmluZSBz bXBfd21iKCkgICAgICAgYmFycmllcigpDQogI2VuZGlmDQogDQpkaWZmIC11 ck4gLVggL2hvbWUvbWNrZW5uZXkvZG9udGRpZmYgbGludXgtMi40LjEwL2lu Y2x1ZGUvYXNtLWkzODYvc3lzdGVtLmggbGludXgtMi40LjEwLnJtYmRkL2lu Y2x1ZGUvYXNtLWkzODYvc3lzdGVtLmgNCi0tLSBsaW51eC0yLjQuMTAvaW5j bHVkZS9hc20taTM4Ni9zeXN0ZW0uaAlTdW4gU2VwIDIzIDEwOjMxOjAxIDIw MDENCisrKyBsaW51eC0yLjQuMTAucm1iZGQvaW5jbHVkZS9hc20taTM4Ni9z eXN0ZW0uaAlXZWQgT2N0IDEwIDE3OjAwOjU3IDIwMDENCkBAIC0yODQsMTUg KzI4NCwxOCBAQA0KICAqLw0KICNkZWZpbmUgbWIoKSAJX19hc21fXyBfX3Zv bGF0aWxlX18gKCJsb2NrOyBhZGRsICQwLDAoJSVlc3ApIjogOiA6Im1lbW9y eSIpDQogI2RlZmluZSBybWIoKQltYigpDQorI2RlZmluZSBybWJkZCgpCWRv IHsgfSB3aGlsZSgwKQ0KICNkZWZpbmUgd21iKCkJX19hc21fXyBfX3ZvbGF0 aWxlX18gKCIiOiA6IDoibWVtb3J5IikNCiANCiAjaWZkZWYgQ09ORklHX1NN UA0KICNkZWZpbmUgc21wX21iKCkJbWIoKQ0KICNkZWZpbmUgc21wX3JtYigp CXJtYigpDQorI2RlZmluZSBzbXBfcm1iZGQoKQlybWJkZCgpDQogI2RlZmlu ZSBzbXBfd21iKCkJd21iKCkNCiAjZWxzZQ0KICNkZWZpbmUgc21wX21iKCkJ YmFycmllcigpDQogI2RlZmluZSBzbXBfcm1iKCkJYmFycmllcigpDQorI2Rl ZmluZSBzbXBfcm1iZGQoKQlkbyB7IH0gd2hpbGUoMCkNCiAjZGVmaW5lIHNt cF93bWIoKQliYXJyaWVyKCkNCiAjZW5kaWYNCiANCmRpZmYgLXVyTiAtWCAv aG9tZS9tY2tlbm5leS9kb250ZGlmZiBsaW51eC0yLjQuMTAvaW5jbHVkZS9h c20taWE2NC9zeXN0ZW0uaCBsaW51eC0yLjQuMTAucm1iZGQvaW5jbHVkZS9h c20taWE2NC9zeXN0ZW0uaA0KLS0tIGxpbnV4LTIuNC4xMC9pbmNsdWRlL2Fz bS1pYTY0L3N5c3RlbS5oCVR1ZSBKdWwgMzEgMTA6MzA6MDkgMjAwMQ0KKysr IGxpbnV4LTIuNC4xMC5ybWJkZC9pbmNsdWRlL2FzbS1pYTY0L3N5c3RlbS5o CVdlZCBPY3QgMTAgMTc6MDE6MDkgMjAwMQ0KQEAgLTg1LDYgKzg1LDkgQEAN CiAgKgkJc3RvcmVzIGFuZCB0aGF0IGFsbCBmb2xsb3dpbmcgc3RvcmVzIHdp bGwgYmUNCiAgKgkJdmlzaWJsZSBvbmx5IGFmdGVyIGFsbCBwcmV2aW91cyBz dG9yZXMuDQogICogICBybWIoKToJTGlrZSB3bWIoKSwgYnV0IGZvciByZWFk cy4NCisgKiAgIHJtYmRkKCk6CUxpa2Ugcm1iKCksIGJ1dCBvbmx5IGZvciBw YWlycyBvZiBsb2FkcyB3aGVyZQ0KKyAqCQl0aGUgc2Vjb25kIGxvYWQgZGVw ZW5kcyBvbiB0aGUgdmFsdWUgbG9hZGVkDQorICoJCWJ5IHRoZSBmaXJzdC4N CiAgKiAgIG1iKCk6CXdtYigpL3JtYigpIGNvbWJvLCBpLmUuLCBhbGwgcHJl dmlvdXMgbWVtb3J5DQogICoJCWFjY2Vzc2VzIGFyZSB2aXNpYmxlIGJlZm9y ZSBhbGwgc3Vic2VxdWVudA0KICAqCQlhY2Nlc3NlcyBhbmQgdmljZSB2ZXJz YS4gIFRoaXMgaXMgYWxzbyBrbm93biBhcw0KQEAgLTk4LDE1ICsxMDEsMTgg QEANCiAgKi8NCiAjZGVmaW5lIG1iKCkJX19hc21fXyBfX3ZvbGF0aWxlX18g KCJtZiIgOjo6ICJtZW1vcnkiKQ0KICNkZWZpbmUgcm1iKCkJbWIoKQ0KKyNk ZWZpbmUgcm1iZGQoKQlkbyB7IH0gd2hpbGUoMCkNCiAjZGVmaW5lIHdtYigp CW1iKCkNCiANCiAjaWZkZWYgQ09ORklHX1NNUA0KICMgZGVmaW5lIHNtcF9t YigpCW1iKCkNCiAjIGRlZmluZSBzbXBfcm1iKCkJcm1iKCkNCisjIGRlZmlu ZSBzbXBfcm1iZGQoKQlybWJkZCgpDQogIyBkZWZpbmUgc21wX3dtYigpCXdt YigpDQogI2Vsc2UNCiAjIGRlZmluZSBzbXBfbWIoKQliYXJyaWVyKCkNCiAj IGRlZmluZSBzbXBfcm1iKCkJYmFycmllcigpDQorIyBkZWZpbmUgc21wX3Jt YmRkKCkJZG8geyB9IHdoaWxlKDApDQogIyBkZWZpbmUgc21wX3dtYigpCWJh cnJpZXIoKQ0KICNlbmRpZg0KIA0KZGlmZiAtdXJOIC1YIC9ob21lL21ja2Vu bmV5L2RvbnRkaWZmIGxpbnV4LTIuNC4xMC9pbmNsdWRlL2FzbS1tNjhrL3N5 c3RlbS5oIGxpbnV4LTIuNC4xMC5ybWJkZC9pbmNsdWRlL2FzbS1tNjhrL3N5 c3RlbS5oDQotLS0gbGludXgtMi40LjEwL2luY2x1ZGUvYXNtLW02OGsvc3lz dGVtLmgJTW9uIEp1biAxMSAxOToxNToyNyAyMDAxDQorKysgbGludXgtMi40 LjEwLnJtYmRkL2luY2x1ZGUvYXNtLW02OGsvc3lzdGVtLmgJV2VkIE9jdCAx MCAxNzowMToxNSAyMDAxDQpAQCAtODAsMTIgKzgwLDE0IEBADQogI2RlZmlu ZSBub3AoKQkJZG8geyBhc20gdm9sYXRpbGUgKCJub3AiKTsgYmFycmllcigp OyB9IHdoaWxlICgwKQ0KICNkZWZpbmUgbWIoKQkJYmFycmllcigpDQogI2Rl ZmluZSBybWIoKQkJYmFycmllcigpDQorI2RlZmluZSBybWJkZCgpCQlkbyB7 IH0gd2hpbGUoMCkNCiAjZGVmaW5lIHdtYigpCQliYXJyaWVyKCkNCiAjZGVm aW5lIHNldF9tYih2YXIsIHZhbHVlKSAgICBkbyB7IHhjaGcoJnZhciwgdmFs dWUpOyB9IHdoaWxlICgwKQ0KICNkZWZpbmUgc2V0X3dtYih2YXIsIHZhbHVl KSAgICBkbyB7IHZhciA9IHZhbHVlOyB3bWIoKTsgfSB3aGlsZSAoMCkNCiAN CiAjZGVmaW5lIHNtcF9tYigpCWJhcnJpZXIoKQ0KICNkZWZpbmUgc21wX3Jt YigpCWJhcnJpZXIoKQ0KKyNkZWZpbmUgc21wX3JtYmRkKCkJZG8geyB9IHdo aWxlKDApDQogI2RlZmluZSBzbXBfd21iKCkJYmFycmllcigpDQogDQogDQpk aWZmIC11ck4gLVggL2hvbWUvbWNrZW5uZXkvZG9udGRpZmYgbGludXgtMi40 LjEwL2luY2x1ZGUvYXNtLW1pcHMvc3lzdGVtLmggbGludXgtMi40LjEwLnJt YmRkL2luY2x1ZGUvYXNtLW1pcHMvc3lzdGVtLmgNCi0tLSBsaW51eC0yLjQu MTAvaW5jbHVkZS9hc20tbWlwcy9zeXN0ZW0uaAlTdW4gU2VwICA5IDEwOjQz OjAxIDIwMDENCisrKyBsaW51eC0yLjQuMTAucm1iZGQvaW5jbHVkZS9hc20t bWlwcy9zeXN0ZW0uaAlXZWQgT2N0IDEwIDE3OjAxOjI2IDIwMDENCkBAIC0x NTAsNiArMTUwLDcgQEANCiANCiAjaW5jbHVkZSA8YXNtL3diZmx1c2guaD4N CiAjZGVmaW5lIHJtYigpCWRvIHsgfSB3aGlsZSgwKQ0KKyNkZWZpbmUgcm1i ZGQoKQlkbyB7IH0gd2hpbGUoMCkNCiAjZGVmaW5lIHdtYigpCXdiZmx1c2go KQ0KICNkZWZpbmUgbWIoKQl3YmZsdXNoKCkNCiANCkBAIC0xNjYsNiArMTY3 LDcgQEANCiAJOiAvKiBubyBpbnB1dCAqLwkJCQlcDQogCTogIm1lbW9yeSIp DQogI2RlZmluZSBybWIoKSBtYigpDQorI2RlZmluZSBybWJkZCgpCWRvIHsg fSB3aGlsZSgwKQ0KICNkZWZpbmUgd21iKCkgbWIoKQ0KIA0KICNlbmRpZiAv KiBDT05GSUdfQ1BVX0hBU19XQiAgKi8NCkBAIC0xNzMsMTAgKzE3NSwxMiBA QA0KICNpZmRlZiBDT05GSUdfU01QDQogI2RlZmluZSBzbXBfbWIoKQltYigp DQogI2RlZmluZSBzbXBfcm1iKCkJcm1iKCkNCisjZGVmaW5lIHNtcF9ybWJk ZCgpCXJtYmRkKCkNCiAjZGVmaW5lIHNtcF93bWIoKQl3bWIoKQ0KICNlbHNl DQogI2RlZmluZSBzbXBfbWIoKQliYXJyaWVyKCkNCiAjZGVmaW5lIHNtcF9y bWIoKQliYXJyaWVyKCkNCisjZGVmaW5lIHNtcF9ybWJkZCgpCWRvIHsgfSB3 aGlsZSgwKQ0KICNkZWZpbmUgc21wX3dtYigpCWJhcnJpZXIoKQ0KICNlbmRp Zg0KIA0KZGlmZiAtdXJOIC1YIC9ob21lL21ja2VubmV5L2RvbnRkaWZmIGxp bnV4LTIuNC4xMC9pbmNsdWRlL2FzbS1taXBzNjQvc3lzdGVtLmggbGludXgt Mi40LjEwLnJtYmRkL2luY2x1ZGUvYXNtLW1pcHM2NC9zeXN0ZW0uaA0KLS0t IGxpbnV4LTIuNC4xMC9pbmNsdWRlL2FzbS1taXBzNjQvc3lzdGVtLmgJV2Vk IEp1bCAgNCAxMTo1MDozOSAyMDAxDQorKysgbGludXgtMi40LjEwLnJtYmRk L2luY2x1ZGUvYXNtLW1pcHM2NC9zeXN0ZW0uaAlXZWQgT2N0IDEwIDE3OjAx OjQxIDIwMDENCkBAIC0xNDcsMTUgKzE0NywxOCBAQA0KIAk6IC8qIG5vIGlu cHV0ICovCQkJCVwNCiAJOiAibWVtb3J5IikNCiAjZGVmaW5lIHJtYigpIG1i KCkNCisjZGVmaW5lIHJtYmRkKCkJZG8geyB9IHdoaWxlKDApDQogI2RlZmlu ZSB3bWIoKSBtYigpDQogDQogI2lmZGVmIENPTkZJR19TTVANCiAjZGVmaW5l IHNtcF9tYigpCW1iKCkNCiAjZGVmaW5lIHNtcF9ybWIoKQlybWIoKQ0KKyNk ZWZpbmUgc21wX3JtYmRkKCkJcm1iZGQoKQ0KICNkZWZpbmUgc21wX3dtYigp CXdtYigpDQogI2Vsc2UNCiAjZGVmaW5lIHNtcF9tYigpCWJhcnJpZXIoKQ0K ICNkZWZpbmUgc21wX3JtYigpCWJhcnJpZXIoKQ0KKyNkZWZpbmUgc21wX3Jt YmRkKCkJZG8geyB9IHdoaWxlKDApDQogI2RlZmluZSBzbXBfd21iKCkJYmFy cmllcigpDQogI2VuZGlmDQogDQpkaWZmIC11ck4gLVggL2hvbWUvbWNrZW5u ZXkvZG9udGRpZmYgbGludXgtMi40LjEwL2luY2x1ZGUvYXNtLXBhcmlzYy9z eXN0ZW0uaCBsaW51eC0yLjQuMTAucm1iZGQvaW5jbHVkZS9hc20tcGFyaXNj L3N5c3RlbS5oDQotLS0gbGludXgtMi40LjEwL2luY2x1ZGUvYXNtLXBhcmlz Yy9zeXN0ZW0uaAlXZWQgRGVjICA2IDExOjQ2OjM5IDIwMDANCisrKyBsaW51 eC0yLjQuMTAucm1iZGQvaW5jbHVkZS9hc20tcGFyaXNjL3N5c3RlbS5oCVdl ZCBPY3QgMTAgMTc6MDQ6MDcgMjAwMQ0KQEAgLTUwLDYgKzUwLDcgQEANCiAj aWZkZWYgQ09ORklHX1NNUA0KICNkZWZpbmUgc21wX21iKCkJbWIoKQ0KICNk ZWZpbmUgc21wX3JtYigpCXJtYigpDQorI2RlZmluZSBzbXBfcm1iZGQoKQlk byB7IH0gd2hpbGUoMCkNCiAjZGVmaW5lIHNtcF93bWIoKQl3bWIoKQ0KICNl bHNlDQogLyogVGhpcyBpcyBzaW1wbHkgdGhlIGJhcnJpZXIoKSBtYWNybyBm cm9tIGxpbnV4L2tlcm5lbC5oIGJ1dCB3aGVuIHNlcmlhbC5jDQpAQCAtNTgs NiArNTksNyBAQA0KICAqLw0KICNkZWZpbmUgc21wX21iKCkJX19hc21fXyBf X3ZvbGF0aWxlX18oIiI6OjoibWVtb3J5Iik7DQogI2RlZmluZSBzbXBfcm1i KCkJX19hc21fXyBfX3ZvbGF0aWxlX18oIiI6OjoibWVtb3J5Iik7DQorI2Rl ZmluZSBzbXBfcm1iZGQoKQlkbyB7IH0gd2hpbGUoMCkNCiAjZGVmaW5lIHNt cF93bWIoKQlfX2FzbV9fIF9fdm9sYXRpbGVfXygiIjo6OiJtZW1vcnkiKTsN CiAjZW5kaWYNCiANCkBAIC0xMjIsNiArMTI0LDcgQEANCiANCiAjZGVmaW5l IG1iKCkgIF9fYXNtX18gX192b2xhdGlsZV9fICgic3luYyIgOiA6IDoibWVt b3J5IikNCiAjZGVmaW5lIHdtYigpIG1iKCkNCisjZGVmaW5lIHJtYmRkKCkJ ZG8geyB9IHdoaWxlKDApDQogDQogZXh0ZXJuIHVuc2lnbmVkIGxvbmcgX194 Y2hnKHVuc2lnbmVkIGxvbmcsIHVuc2lnbmVkIGxvbmcgKiwgaW50KTsNCiAN CmRpZmYgLXVyTiAtWCAvaG9tZS9tY2tlbm5leS9kb250ZGlmZiBsaW51eC0y LjQuMTAvaW5jbHVkZS9hc20tcHBjL3N5c3RlbS5oIGxpbnV4LTIuNC4xMC5y bWJkZC9pbmNsdWRlL2FzbS1wcGMvc3lzdGVtLmgNCi0tLSBsaW51eC0yLjQu MTAvaW5jbHVkZS9hc20tcHBjL3N5c3RlbS5oCVR1ZSBBdWcgMjggMDY6NTg6 MzMgMjAwMQ0KKysrIGxpbnV4LTIuNC4xMC5ybWJkZC9pbmNsdWRlL2FzbS1w cGMvc3lzdGVtLmgJV2VkIE9jdCAxMCAxODoxOTo0MyAyMDAxDQpAQCAtMjQs NiArMjQsOCBAQA0KICAqDQogICogbWIoKSBwcmV2ZW50cyBsb2FkcyBhbmQg c3RvcmVzIGJlaW5nIHJlb3JkZXJlZCBhY3Jvc3MgdGhpcyBwb2ludC4NCiAg KiBybWIoKSBwcmV2ZW50cyBsb2FkcyBiZWluZyByZW9yZGVyZWQgYWNyb3Nz IHRoaXMgcG9pbnQuDQorICogcm1iZGQoKSBwcmV2ZW50cyBkYXRhLWRlcGVu ZGFudCBsb2FkcyBiZWluZyByZW9yZGVyZWQgYWNyb3NzIHRoaXMgcG9pbnQN CisgKgkobm9wIG9uIFBQQykuDQogICogd21iKCkgcHJldmVudHMgc3RvcmVz IGJlaW5nIHJlb3JkZXJlZCBhY3Jvc3MgdGhpcyBwb2ludC4NCiAgKg0KICAq IFdlIGNhbiB1c2UgdGhlIGVpZWlvIGluc3RydWN0aW9uIGZvciB3bWIsIGJ1 dCBzaW5jZSBpdCBkb2Vzbid0DQpAQCAtMzIsNiArMzQsNyBAQA0KICAqLw0K ICNkZWZpbmUgbWIoKSAgX19hc21fXyBfX3ZvbGF0aWxlX18gKCJzeW5jIiA6 IDogOiAibWVtb3J5IikNCiAjZGVmaW5lIHJtYigpICBfX2FzbV9fIF9fdm9s YXRpbGVfXyAoInN5bmMiIDogOiA6ICJtZW1vcnkiKQ0KKyNkZWZpbmUgcm1i ZGQoKSAgZG8geyB9IHdoaWxlKDApDQogI2RlZmluZSB3bWIoKSAgX19hc21f XyBfX3ZvbGF0aWxlX18gKCJlaWVpbyIgOiA6IDogIm1lbW9yeSIpDQogDQog I2RlZmluZSBzZXRfbWIodmFyLCB2YWx1ZSkJZG8geyB2YXIgPSB2YWx1ZTsg bWIoKTsgfSB3aGlsZSAoMCkNCkBAIC00MCwxMCArNDMsMTIgQEANCiAjaWZk ZWYgQ09ORklHX1NNUA0KICNkZWZpbmUgc21wX21iKCkJbWIoKQ0KICNkZWZp bmUgc21wX3JtYigpCXJtYigpDQorI2RlZmluZSBzbXBfcm1iZGQoKQlybWJk ZCgpDQogI2RlZmluZSBzbXBfd21iKCkJd21iKCkNCiAjZWxzZQ0KICNkZWZp bmUgc21wX21iKCkJX19hc21fXyBfX3ZvbGF0aWxlX18oIiI6IDogOiJtZW1v cnkiKQ0KICNkZWZpbmUgc21wX3JtYigpCV9fYXNtX18gX192b2xhdGlsZV9f KCIiOiA6IDoibWVtb3J5IikNCisjZGVmaW5lIHNtcF9ybWJkZCgpCWRvIHsg fSB3aGlsZSgwKQ0KICNkZWZpbmUgc21wX3dtYigpCV9fYXNtX18gX192b2xh dGlsZV9fKCIiOiA6IDoibWVtb3J5IikNCiAjZW5kaWYgLyogQ09ORklHX1NN UCAqLw0KIA0KZGlmZiAtdXJOIC1YIC9ob21lL21ja2VubmV5L2RvbnRkaWZm IGxpbnV4LTIuNC4xMC9pbmNsdWRlL2FzbS1zMzkwL3N5c3RlbS5oIGxpbnV4 LTIuNC4xMC5ybWJkZC9pbmNsdWRlL2FzbS1zMzkwL3N5c3RlbS5oDQotLS0g bGludXgtMi40LjEwL2luY2x1ZGUvYXNtLXMzOTAvc3lzdGVtLmgJV2VkIEp1 bCAyNSAxNDoxMjowMiAyMDAxDQorKysgbGludXgtMi40LjEwLnJtYmRkL2lu Y2x1ZGUvYXNtLXMzOTAvc3lzdGVtLmgJV2VkIE9jdCAxMCAxODoyMDozMSAy MDAxDQpAQCAtMTE3LDkgKzExNywxMSBAQA0KICMgZGVmaW5lIFNZTkNfT1RI RVJfQ09SRVMoeCkgICBlaWVpbygpIA0KICNkZWZpbmUgbWIoKSAgICBlaWVp bygpDQogI2RlZmluZSBybWIoKSAgIGVpZWlvKCkNCisjZGVmaW5lIHJtYmRk KCkgZG8geyB9IHdoaWxlKDApDQogI2RlZmluZSB3bWIoKSAgIGVpZWlvKCkN CiAjZGVmaW5lIHNtcF9tYigpICAgICAgIG1iKCkNCiAjZGVmaW5lIHNtcF9y bWIoKSAgICAgIHJtYigpDQorI2RlZmluZSBzbXBfcm1iZGQoKSAgICBybWJk ZCgpDQogI2RlZmluZSBzbXBfd21iKCkgICAgICB3bWIoKQ0KICNkZWZpbmUg c21wX21iX19iZWZvcmVfY2xlYXJfYml0KCkgICAgIHNtcF9tYigpDQogI2Rl ZmluZSBzbXBfbWJfX2FmdGVyX2NsZWFyX2JpdCgpICAgICAgc21wX21iKCkN CmRpZmYgLXVyTiAtWCAvaG9tZS9tY2tlbm5leS9kb250ZGlmZiBsaW51eC0y LjQuMTAvaW5jbHVkZS9hc20tczM5MHgvc3lzdGVtLmggbGludXgtMi40LjEw LnJtYmRkL2luY2x1ZGUvYXNtLXMzOTB4L3N5c3RlbS5oDQotLS0gbGludXgt Mi40LjEwL2luY2x1ZGUvYXNtLXMzOTB4L3N5c3RlbS5oCVdlZCBKdWwgMjUg MTQ6MTI6MDMgMjAwMQ0KKysrIGxpbnV4LTIuNC4xMC5ybWJkZC9pbmNsdWRl L2FzbS1zMzkweC9zeXN0ZW0uaAlXZWQgT2N0IDEwIDE3OjA0OjQ1IDIwMDEN CkBAIC0xMzAsOSArMTMwLDExIEBADQogIyBkZWZpbmUgU1lOQ19PVEhFUl9D T1JFUyh4KSAgIGVpZWlvKCkgDQogI2RlZmluZSBtYigpICAgIGVpZWlvKCkN CiAjZGVmaW5lIHJtYigpICAgZWllaW8oKQ0KKyNkZWZpbmUgcm1iZGQoKQlk byB7IH0gd2hpbGUoMCkNCiAjZGVmaW5lIHdtYigpICAgZWllaW8oKQ0KICNk ZWZpbmUgc21wX21iKCkgICAgICAgbWIoKQ0KICNkZWZpbmUgc21wX3JtYigp ICAgICAgcm1iKCkNCisjZGVmaW5lIHNtcF9ybWJkZCgpICAgIHJtYmRkKCkN CiAjZGVmaW5lIHNtcF93bWIoKSAgICAgIHdtYigpDQogI2RlZmluZSBzbXBf bWJfX2JlZm9yZV9jbGVhcl9iaXQoKSAgICAgc21wX21iKCkNCiAjZGVmaW5l IHNtcF9tYl9fYWZ0ZXJfY2xlYXJfYml0KCkgICAgICBzbXBfbWIoKQ0KZGlm ZiAtdXJOIC1YIC9ob21lL21ja2VubmV5L2RvbnRkaWZmIGxpbnV4LTIuNC4x MC9pbmNsdWRlL2FzbS1zaC9zeXN0ZW0uaCBsaW51eC0yLjQuMTAucm1iZGQv aW5jbHVkZS9hc20tc2gvc3lzdGVtLmgNCi0tLSBsaW51eC0yLjQuMTAvaW5j bHVkZS9hc20tc2gvc3lzdGVtLmgJU2F0IFNlcCAgOCAxMjoyOTowOSAyMDAx DQorKysgbGludXgtMi40LjEwLnJtYmRkL2luY2x1ZGUvYXNtLXNoL3N5c3Rl bS5oCVdlZCBPY3QgMTAgMTc6MDU6MDcgMjAwMQ0KQEAgLTg4LDE1ICs4OCwx OCBAQA0KIA0KICNkZWZpbmUgbWIoKQlfX2FzbV9fIF9fdm9sYXRpbGVfXyAo IiI6IDogOiJtZW1vcnkiKQ0KICNkZWZpbmUgcm1iKCkJbWIoKQ0KKyNkZWZp bmUgcm1iZGQoKQlkbyB7IH0gd2hpbGUoMCkNCiAjZGVmaW5lIHdtYigpCV9f YXNtX18gX192b2xhdGlsZV9fICgiIjogOiA6Im1lbW9yeSIpDQogDQogI2lm ZGVmIENPTkZJR19TTVANCiAjZGVmaW5lIHNtcF9tYigpCW1iKCkNCiAjZGVm aW5lIHNtcF9ybWIoKQlybWIoKQ0KKyNkZWZpbmUgc21wX3JtYmRkKCkJcm1i ZGQoKQ0KICNkZWZpbmUgc21wX3dtYigpCXdtYigpDQogI2Vsc2UNCiAjZGVm aW5lIHNtcF9tYigpCWJhcnJpZXIoKQ0KICNkZWZpbmUgc21wX3JtYigpCWJh cnJpZXIoKQ0KKyNkZWZpbmUgc21wX3JtYmRkKCkJZG8geyB9IHdoaWxlKDAp DQogI2RlZmluZSBzbXBfd21iKCkJYmFycmllcigpDQogI2VuZGlmDQogDQpk aWZmIC11ck4gLVggL2hvbWUvbWNrZW5uZXkvZG9udGRpZmYgbGludXgtMi40 LjEwL2luY2x1ZGUvYXNtLXNwYXJjL3N5c3RlbS5oIGxpbnV4LTIuNC4xMC5y bWJkZC9pbmNsdWRlL2FzbS1zcGFyYy9zeXN0ZW0uaA0KLS0tIGxpbnV4LTIu NC4xMC9pbmNsdWRlL2FzbS1zcGFyYy9zeXN0ZW0uaAlUdWUgT2N0ICAzIDA5 OjI0OjQxIDIwMDANCisrKyBsaW51eC0yLjQuMTAucm1iZGQvaW5jbHVkZS9h c20tc3BhcmMvc3lzdGVtLmgJV2VkIE9jdCAxMCAxNjo1OTo0NCAyMDAxDQpA QCAtMjc3LDExICsyNzcsMTMgQEANCiAvKiBYWFggQ2hhbmdlIHRoaXMgaWYg d2UgZXZlciB1c2UgYSBQU08gbW9kZSBrZXJuZWwuICovDQogI2RlZmluZSBt YigpCV9fYXNtX18gX192b2xhdGlsZV9fICgiIiA6IDogOiAibWVtb3J5IikN CiAjZGVmaW5lIHJtYigpCW1iKCkNCisjZGVmaW5lIHJtYmRkKCkJZG8geyB9 IHdoaWxlKDApDQogI2RlZmluZSB3bWIoKQltYigpDQogI2RlZmluZSBzZXRf bWIoX192YXIsIF9fdmFsdWUpICBkbyB7IF9fdmFyID0gX192YWx1ZTsgbWIo KTsgfSB3aGlsZSgwKQ0KICNkZWZpbmUgc2V0X3dtYihfX3ZhciwgX192YWx1 ZSkgc2V0X21iKF9fdmFyLCBfX3ZhbHVlKQ0KICNkZWZpbmUgc21wX21iKCkJ X19hc21fXyBfX3ZvbGF0aWxlX18oIiI6OjoibWVtb3J5Iik7DQogI2RlZmlu ZSBzbXBfcm1iKCkJX19hc21fXyBfX3ZvbGF0aWxlX18oIiI6OjoibWVtb3J5 Iik7DQorI2RlZmluZSBzbXBfcm1iZGQoKQlkbyB7IH0gd2hpbGUoMCkNCiAj ZGVmaW5lIHNtcF93bWIoKQlfX2FzbV9fIF9fdm9sYXRpbGVfXygiIjo6OiJt ZW1vcnkiKTsNCiANCiAjZGVmaW5lIG5vcCgpIF9fYXNtX18gX192b2xhdGls ZV9fICgibm9wIik7DQpkaWZmIC11ck4gLVggL2hvbWUvbWNrZW5uZXkvZG9u dGRpZmYgbGludXgtMi40LjEwL2luY2x1ZGUvYXNtLXNwYXJjNjQvc3lzdGVt LmggbGludXgtMi40LjEwLnJtYmRkL2luY2x1ZGUvYXNtLXNwYXJjNjQvc3lz dGVtLmgNCi0tLSBsaW51eC0yLjQuMTAvaW5jbHVkZS9hc20tc3BhcmM2NC9z eXN0ZW0uaAlGcmkgU2VwICA3IDExOjAxOjIwIDIwMDENCisrKyBsaW51eC0y LjQuMTAucm1iZGQvaW5jbHVkZS9hc20tc3BhcmM2NC9zeXN0ZW0uaAlXZWQg T2N0IDEwIDE3OjAwOjEyIDIwMDENCkBAIC05OSw2ICs5OSw3IEBADQogI2Rl ZmluZSBtYigpCQlcDQogCW1lbWJhcigiI0xvYWRMb2FkIHwgI0xvYWRTdG9y ZSB8ICNTdG9yZVN0b3JlIHwgI1N0b3JlTG9hZCIpOw0KICNkZWZpbmUgcm1i KCkJCW1lbWJhcigiI0xvYWRMb2FkIikNCisjZGVmaW5lIHJtYmRkKCkJCWRv IHsgfSB3aGlsZSgwKQ0KICNkZWZpbmUgd21iKCkJCW1lbWJhcigiI1N0b3Jl U3RvcmUiKQ0KICNkZWZpbmUgc2V0X21iKF9fdmFyLCBfX3ZhbHVlKSBcDQog CWRvIHsgX192YXIgPSBfX3ZhbHVlOyBtZW1iYXIoIiNTdG9yZUxvYWQgfCAj U3RvcmVTdG9yZSIpOyB9IHdoaWxlKDApDQpAQCAtMTA4LDEwICsxMDksMTIg QEANCiAjaWZkZWYgQ09ORklHX1NNUA0KICNkZWZpbmUgc21wX21iKCkJbWIo KQ0KICNkZWZpbmUgc21wX3JtYigpCXJtYigpDQorI2RlZmluZSBzbXBfcm1i ZGQoKQlybWJkZCgpDQogI2RlZmluZSBzbXBfd21iKCkJd21iKCkNCiAjZWxz ZQ0KICNkZWZpbmUgc21wX21iKCkJX19hc21fXyBfX3ZvbGF0aWxlX18oIiI6 OjoibWVtb3J5Iik7DQogI2RlZmluZSBzbXBfcm1iKCkJX19hc21fXyBfX3Zv bGF0aWxlX18oIiI6OjoibWVtb3J5Iik7DQorI2RlZmluZSBzbXBfcm1iZGQo KQlkbyB7IH0gd2hpbGUoMCkNCiAjZGVmaW5lIHNtcF93bWIoKQlfX2FzbV9f IF9fdm9sYXRpbGVfXygiIjo6OiJtZW1vcnkiKTsNCiAjZW5kaWYNCiANCg== --0-851401618-1002765386=:9717 Content-Type: TEXT/PLAIN; charset=US-ASCII; name="wmbdd2.v2.4.10.patch.2001.10.10" Content-Transfer-Encoding: BASE64 Content-ID: Content-Description: wmbdd2.v2.4.10.patch. ZGlmZiAtdXJOIC1YIC9ob21lL21ja2VubmV5L2RvbnRkaWZmIGxpbnV4LTIu NC4xMC9hcmNoL2FscGhhL2tlcm5lbC9zbXAuYyBsaW51eC0yLjQuMTAud21i ZGQvYXJjaC9hbHBoYS9rZXJuZWwvc21wLmMNCi0tLSBsaW51eC0yLjQuMTAv YXJjaC9hbHBoYS9rZXJuZWwvc21wLmMJVGh1IFNlcCAxMyAxNToyMTozMiAy MDAxDQorKysgbGludXgtMi40LjEwLndtYmRkL2FyY2gvYWxwaGEva2VybmVs L3NtcC5jCU1vbiBPY3QgIDggMTg6MzE6MTggMjAwMQ0KQEAgLTYzLDggKzYz LDIwIEBADQogCUlQSV9SRVNDSEVEVUxFLA0KIAlJUElfQ0FMTF9GVU5DLA0K IAlJUElfQ1BVX1NUT1AsDQorCUlQSV9NQiwNCiB9Ow0KIA0KKy8qIEdsb2Jh bCBhbmQgcGVyLUNQVSBzdGF0ZSBmb3IgZ2xvYmFsIE1CIHNob290ZG93bi4g Ki8NCitzdGF0aWMgc3RydWN0IHsNCisJc3BpbmxvY2tfdCBtdXRleDsNCisJ dW5zaWduZWQgbG9uZyBuZWVkX21iOwkvKiBiaXRtYXNrIG9mIENQVXMgdGhh dCBuZWVkIHRvIGRvICJtYiIuICovDQorCWxvbmcgY3VyZ2VuOwkJLyogRWFj aCAiZ2VuZXJhdGlvbiIgaXMgYSBncm91cCBvZiByZXF1ZXN0cyAqLw0KKwls b25nIG1heGdlbjsJCS8qICB0aGF0IGlzIGhhbmRsZWQgYnkgb25lIHNldCBv ZiAibWIicy4gKi8NCit9IG1iX2dsb2JhbF9kYXRhIF9fY2FjaGVsaW5lX2Fs aWduZWQgPSB7IFNQSU5fTE9DS19VTkxPQ0tFRCwgMCwgMSwgMCB9Ow0KK3N0 YXRpYyBzdHJ1Y3Qgew0KKwlsb25nIG15Z2VuIF9fX19jYWNoZWxpbmVfYWxp Z25lZDsNCit9IG1iX2RhdGFbTlJfQ1BVU10gX19jYWNoZWxpbmVfYWxpZ25l ZDsNCisNCiBzcGlubG9ja190IGtlcm5lbF9mbGFnID0gU1BJTl9MT0NLX1VO TE9DS0VEOw0KIA0KIC8qIFNldCB0byBhIHNlY29uZGFyeSdzIGNwdWlkIHdo ZW4gaXQgY29tZXMgb25saW5lLiAgKi8NCkBAIC03NzIsNiArNzg0LDQxIEBA DQogCWdvdG8gYWdhaW47DQogfQ0KIA0KKy8qDQorICogRXhlY3V0ZSBhbiAi bWIiIGluc3RydWN0aW9uIGluIHJlc3BvbnNlIHRvIGFuIElQSV9NQi4gIEFs c28gZGlyZWN0bHkNCisgKiBjYWxsZWQgYnkgc21wX2dsb2JhbF9tYigpLiAg SWYgdGhpcyBpcyB0aGUgbGFzdCBDUFUgdG8gcmVzcG9uZCB0bw0KKyAqIGFu IHNtcF9nbG9iYWxfbWIoKSwgdGhlbiBjaGVjayB0byBzZWUgaWYgYW4gYWRk aXRpb25hbCBnZW5lcmF0aW9uIG9mDQorICogcmVxdWVzdHMgbmVlZHMgdG8g YmUgc2F0aXNmaWVkLg0KKyAqLw0KKw0KK3ZvaWQNCitoYW5kbGVfbWJfaXBp KHZvaWQpDQorew0KKwlpbnQgdGhpc19jcHUgPSBzbXBfcHJvY2Vzc29yX2lk KCk7DQorCXVuc2lnbmVkIGxvbmcgdGhpc19jcHVfbWFzayA9IDFVTCA8PCB0 aGlzX2NwdTsNCisJdW5zaWduZWQgbG9uZyBmbGFnczsNCisJdW5zaWduZWQg bG9uZyB0b193aG9tID0gY3B1X3ByZXNlbnRfbWFzayBeIHRoaXNfY3B1X21h c2s7DQorDQorCS8qIEF2b2lkIGxvY2sgY29udGVudGlvbiB3aGVuIGV4dHJh IElQSXMgYXJyaXZlIChkdWUgdG8gcmFjZSkgYW5kDQorCSAgIHdoZW4gd2Fp dGluZyBmb3IgZ2xvYmFsIG1iIHNob290ZG93bi4gKi8NCisJaWYgKChtYl9n bG9iYWxfZGF0YS5uZWVkX21iICYgdGhpc19jcHVfbWFzaykgPT0gMCkgew0K KwkJcmV0dXJuOw0KKwl9DQorCXNwaW5fbG9ja19pcnFzYXZlKCZtYl9nbG9i YWxfZGF0YS5tdXRleCwgZmxhZ3MpOyAvKiBpbXBsaWVkIG1iICovDQorCWlm ICgobWJfZ2xvYmFsX2RhdGEubmVlZF9tYiAmIHRoaXNfY3B1X21hc2spID09 IDApIHsNCisJCXNwaW5fdW5sb2NrX2lycXJlc3RvcmUoJm1iX2dsb2JhbF9k YXRhLm11dGV4LCBmbGFncyk7DQorCQlyZXR1cm47DQorCX0NCisJbWJfZ2xv YmFsX2RhdGEubmVlZF9tYiAmPSB+dGhpc19jcHVfbWFzazsNCisJaWYgKG1i X2dsb2JhbF9kYXRhLm5lZWRfbWIgPT0gMCkgew0KKwkJaWYgKCsrbWJfZ2xv YmFsX2RhdGEuY3VyZ2VuIC0gbWJfZ2xvYmFsX2RhdGEubWF4Z2VuIDw9IDAp IHsNCisJCQltYl9nbG9iYWxfZGF0YS5uZWVkX21iID0gdG9fd2hvbTsNCisJ CQlzZW5kX2lwaV9tZXNzYWdlKHRvX3dob20sIElQSV9NQik7DQorCQl9DQor CX0NCisJc3Bpbl91bmxvY2tfaXJxcmVzdG9yZSgmbWJfZ2xvYmFsX2RhdGEu bXV0ZXgsIGZsYWdzKTsgLyogaW1wbGllZCBtYiAqLw0KK30NCisNCiB2b2lk DQogaGFuZGxlX2lwaShzdHJ1Y3QgcHRfcmVncyAqcmVncykNCiB7DQpAQCAt ODI1LDYgKzg3Miw5IEBADQogCQllbHNlIGlmICh3aGljaCA9PSBJUElfQ1BV X1NUT1ApIHsNCiAJCQloYWx0KCk7DQogCQl9DQorCQllbHNlIGlmICh3aGlj aCA9PSBJUElfTUIpIHsNCisJCQloYW5kbGVfbWJfaXBpKCk7DQorCQl9DQog CQllbHNlIHsNCiAJCQlwcmludGsoS0VSTl9DUklUICJVbmtub3duIElQSSBv biBDUFUgJWQ6ICVsdVxuIiwNCiAJCQkgICAgICAgdGhpc19jcHUsIHdoaWNo KTsNCkBAIC04NjAsNiArOTEwLDU4IEBADQogCQlwcmludGsoS0VSTl9XQVJO SU5HICJzbXBfc2VuZF9zdG9wOiBOb3Qgb24gYm9vdCBjcHUuXG4iKTsNCiAj ZW5kaWYNCiAJc2VuZF9pcGlfbWVzc2FnZSh0b193aG9tLCBJUElfQ1BVX1NU T1ApOw0KK30NCisNCisvKg0KKyAqIEV4ZWN1dGUgYW4gIm1iIiBpbnN0cnVj dGlvbiwgdGhlbiBmb3JjZSBhbGwgb3RoZXIgQ1BVcyB0byBleGVjdXRlICJt YiINCisgKiBpbnN0cnVjdGlvbnMuICBEb2VzIG5vdCBibG9jay4gIE9uY2Ug dGhpcyBmdW5jdGlvbiByZXR1cm5zLCB0aGUgY2FsbGVyDQorICogaXMgZ3Vh cmFudGVlZCB0aGF0IGFsbCBvZiBpdHMgbWVtb3J5IHdyaXRlcyBwcmVjZWRp bmcgdGhlIGNhbGwgdG8NCisgKiBzbXBfZ2xvYmFsX21iKCkgd2lsbCBiZSBz ZWVuIGJ5IGFsbCBDUFVzIGFzIHByZWNlZGluZyBhbGwgbWVtb3J5DQorICog d3JpdGVzIGZvbGxvd2luZyB0aGUgY2FsbCB0byBzbXBfZ2xvYmFsX21iKCku DQorICoNCisgKiBGb3IgZXhhbXBsZSwgaWYgQ1BVIDAgZG9lczoNCisgKglh LmRhdGEgPSAxOw0KKyAqCXNtcF9nbG9iYWxfbWIoKTsNCisgKglwID0gJmE7 DQorICogYW5kIENQVSAxIGRvZXM6DQorICoJZCA9IHAtPmRhdGE7DQorICog d2hlcmUgYS5kYXRhIGlzIGluaXRpYWxseSBnYXJiYWdlIGFuZCBwIGluaXRp YWxseSBwb2ludHMgdG8gYW5vdGhlcg0KKyAqIHN0cnVjdHVyZSB3aXRoIHRo ZSAiZGF0YSIgZmllbGQgYmVpbmcgemVybywgdGhlbiBDUFUgMSB3aWxsIGJl DQorICogZ3VhcmFudGVlZCB0byBoYXZlICJkIiBzZXQgdG8gZWl0aGVyIDAg b3IgMSwgbmV2ZXIgZ2FyYmFnZS4NCisgKg0KKyAqIE5vdGUgdGhhdCB0aGUg QWxwaGEgIndtYiIgaW5zdHJ1Y3Rpb24gaXMgLW5vdC0gc3VmZmljaWVudCEh ISAgSWYgQ1BVIDANCisgKiB3ZXJlIHJlcGxhY2UgdGhlIHNtcF9nbG9iYWxf bWIoKSB3aXRoIGEgd21iKCksIHRoZW4gQ1BVIDEgY291bGQgZW5kDQorICog dXAgd2l0aCBnYXJiYWdlIGluICJkIiENCisgKg0KKyAqIFRoaXMgZnVuY3Rp b24gc2VuZHMgSVBJcyB0byBhbGwgb3RoZXIgQ1BVcywgdGhlbiBzcGlucyB3 YWl0aW5nIGZvcg0KKyAqIHRoZW0gdG8gcmVjZWl2ZSB0aGUgSVBJIGFuZCBl eGVjdXRlIGFuICJtYiIgaW5zdHJ1Y3Rpb24uICBXaGlsZQ0KKyAqIHNwaW5u aW5nLCB0aGlzIGZ1bmN0aW9uIC1tdXN0LSByZXNwb25kIHRvIG90aGVyIENQ VXMgZXhlY3V0aW5nDQorICogc21wX2dsb2JhbF9tYigpIGNvbmN1cnJlbnRs eSwgb3RoZXJ3aXNlLCBkZWFkbG9jayB3b3VsZCByZXN1bHQuDQorICovDQor DQordm9pZA0KK3NtcF9nbG9iYWxfbWIodm9pZCkNCit7DQorCWludCB0aGlz X2NwdSA9IHNtcF9wcm9jZXNzb3JfaWQoKTsNCisJdW5zaWduZWQgbG9uZyB0 aGlzX2NwdV9tYXNrID0gMVVMIDw8IHRoaXNfY3B1Ow0KKwl1bnNpZ25lZCBs b25nIGZsYWdzOw0KKwl1bnNpZ25lZCBsb25nIHRvX3dob20gPSBjcHVfcHJl c2VudF9tYXNrIF4gdGhpc19jcHVfbWFzazsNCisNCisJc3Bpbl9sb2NrX2ly cXNhdmUoJm1iX2dsb2JhbF9kYXRhLm11dGV4LCBmbGFncyk7IC8qIGltcGxp ZWQgbWIgKi8NCisJaWYgKG1iX2dsb2JhbF9kYXRhLmN1cmdlbiAtIG1iX2ds b2JhbF9kYXRhLm1heGdlbiA8PSAwKSB7DQorCQltYl9nbG9iYWxfZGF0YS5t YXhnZW4gPSBtYl9nbG9iYWxfZGF0YS5jdXJnZW4gKyAxOw0KKwl9IGVsc2Ug ew0KKwkJbWJfZ2xvYmFsX2RhdGEubWF4Z2VuID0gbWJfZ2xvYmFsX2RhdGEu Y3VyZ2VuOw0KKwkJbWJfZ2xvYmFsX2RhdGEubmVlZF9tYiA9IHRvX3dob207 DQorCQlzZW5kX2lwaV9tZXNzYWdlKHRvX3dob20sIElQSV9NQik7DQorCX0N CisJbWJfZGF0YVt0aGlzX2NwdV0ubXlnZW4gPSBtYl9nbG9iYWxfZGF0YS5t YXhnZW47DQorCXNwaW5fdW5sb2NrX2lycXJlc3RvcmUoJm1iX2dsb2JhbF9k YXRhLm11dGV4LCBmbGFncyk7DQorCXdoaWxlIChtYl9kYXRhW3RoaXNfY3B1 XS5teWdlbiAtIG1iX2dsb2JhbF9kYXRhLmN1cmdlbiA+PSAwKSB7DQorCQlo YW5kbGVfbWJfaXBpKCk7DQorCQliYXJyaWVyKCk7DQorCX0NCisJDQogfQ0K IA0KIC8qDQpkaWZmIC11ck4gLVggL2hvbWUvbWNrZW5uZXkvZG9udGRpZmYg bGludXgtMi40LjEwL2luY2x1ZGUvYXNtLWFscGhhL3N5c3RlbS5oIGxpbnV4 LTIuNC4xMC53bWJkZC9pbmNsdWRlL2FzbS1hbHBoYS9zeXN0ZW0uaA0KLS0t IGxpbnV4LTIuNC4xMC9pbmNsdWRlL2FzbS1hbHBoYS9zeXN0ZW0uaAlTdW4g QXVnIDEyIDEwOjM4OjQ3IDIwMDENCisrKyBsaW51eC0yLjQuMTAud21iZGQv aW5jbHVkZS9hc20tYWxwaGEvc3lzdGVtLmgJTW9uIE9jdCAgOCAxODozMTox OCAyMDAxDQpAQCAtMTUxLDE0ICsxNTEsMjEgQEANCiAjZGVmaW5lIHdtYigp IFwNCiBfX2FzbV9fIF9fdm9sYXRpbGVfXygid21iIjogOiA6Im1lbW9yeSIp DQogDQorI2RlZmluZSBtYmRkKCkJCXNtcF9tYmRkKCkNCisjZGVmaW5lIHdt YmRkKCkJCXNtcF93bWJkZCgpDQorDQogI2lmZGVmIENPTkZJR19TTVANCiAj ZGVmaW5lIHNtcF9tYigpCW1iKCkNCiAjZGVmaW5lIHNtcF9ybWIoKQlybWIo KQ0KICNkZWZpbmUgc21wX3dtYigpCXdtYigpDQorI2RlZmluZSBzbXBfbWJk ZCgpCXNtcF9nbG9iYWxfbWIoKQ0KKyNkZWZpbmUgc21wX3dtYmRkKCkJc21w X21iZGQoKQ0KICNlbHNlDQogI2RlZmluZSBzbXBfbWIoKQliYXJyaWVyKCkN CiAjZGVmaW5lIHNtcF9ybWIoKQliYXJyaWVyKCkNCiAjZGVmaW5lIHNtcF93 bWIoKQliYXJyaWVyKCkNCisjZGVmaW5lIHNtcF9tYmRkKCkJYmFycmllcigp DQorI2RlZmluZSBzbXBfd21iZGQoKQliYXJyaWVyKCkNCiAjZW5kaWYNCiAN CiAjZGVmaW5lIHNldF9tYih2YXIsIHZhbHVlKSBcDQpkaWZmIC11ck4gLVgg L2hvbWUvbWNrZW5uZXkvZG9udGRpZmYgbGludXgtMi40LjEwL2luY2x1ZGUv YXNtLWFybS9zeXN0ZW0uaCBsaW51eC0yLjQuMTAud21iZGQvaW5jbHVkZS9h c20tYXJtL3N5c3RlbS5oDQotLS0gbGludXgtMi40LjEwL2luY2x1ZGUvYXNt LWFybS9zeXN0ZW0uaAlNb24gTm92IDI3IDE3OjA3OjU5IDIwMDANCisrKyBs aW51eC0yLjQuMTAud21iZGQvaW5jbHVkZS9hc20tYXJtL3N5c3RlbS5oCU1v biBPY3QgIDggMTg6MzE6MTggMjAwMQ0KQEAgLTM5LDYgKzM5LDggQEANCiAj ZGVmaW5lIG1iKCkgX19hc21fXyBfX3ZvbGF0aWxlX18gKCIiIDogOiA6ICJt ZW1vcnkiKQ0KICNkZWZpbmUgcm1iKCkgbWIoKQ0KICNkZWZpbmUgd21iKCkg bWIoKQ0KKyNkZWZpbmUgbWJkZCgpIG1iKCkNCisjZGVmaW5lIHdtYmRkKCkg d21iKCkNCiAjZGVmaW5lIG5vcCgpIF9fYXNtX18gX192b2xhdGlsZV9fKCJt b3ZcdHIwLHIwXHRAIG5vcFxuXHQiKTsNCiANCiAjZGVmaW5lIHByZXBhcmVf dG9fc3dpdGNoKCkgICAgZG8geyB9IHdoaWxlKDApDQpAQCAtNjgsMTIgKzcw LDE2IEBADQogI2RlZmluZSBzbXBfbWIoKQkJbWIoKQ0KICNkZWZpbmUgc21w X3JtYigpCQlybWIoKQ0KICNkZWZpbmUgc21wX3dtYigpCQl3bWIoKQ0KKyNk ZWZpbmUgc21wX21iZGQoKQkJcm1iZGQoKQ0KKyNkZWZpbmUgc21wX3dtYmRk KCkJCXdtYmRkKCkNCiANCiAjZWxzZQ0KIA0KICNkZWZpbmUgc21wX21iKCkJ CWJhcnJpZXIoKQ0KICNkZWZpbmUgc21wX3JtYigpCQliYXJyaWVyKCkNCiAj ZGVmaW5lIHNtcF93bWIoKQkJYmFycmllcigpDQorI2RlZmluZSBzbXBfbWJk ZCgpCQliYXJyaWVyKCkNCisjZGVmaW5lIHNtcF93bWJkZCgpCQliYXJyaWVy KCkNCiANCiAjZGVmaW5lIGNsaSgpCQkJX19jbGkoKQ0KICNkZWZpbmUgc3Rp KCkJCQlfX3N0aSgpDQpkaWZmIC11ck4gLVggL2hvbWUvbWNrZW5uZXkvZG9u dGRpZmYgbGludXgtMi40LjEwL2luY2x1ZGUvYXNtLWNyaXMvc3lzdGVtLmgg bGludXgtMi40LjEwLndtYmRkL2luY2x1ZGUvYXNtLWNyaXMvc3lzdGVtLmgN Ci0tLSBsaW51eC0yLjQuMTAvaW5jbHVkZS9hc20tY3Jpcy9zeXN0ZW0uaAlU dWUgTWF5ICAxIDE2OjA1OjAwIDIwMDENCisrKyBsaW51eC0yLjQuMTAud21i ZGQvaW5jbHVkZS9hc20tY3Jpcy9zeXN0ZW0uaAlNb24gT2N0ICA4IDE4OjMx OjE4IDIwMDENCkBAIC0xNDQsMTUgKzE0NCwyMSBAQA0KICNkZWZpbmUgbWIo KSBfX2FzbV9fIF9fdm9sYXRpbGVfXyAoIiIgOiA6IDogIm1lbW9yeSIpDQog I2RlZmluZSBybWIoKSBtYigpDQogI2RlZmluZSB3bWIoKSBtYigpDQorI2Rl ZmluZSBtYmRkKCkgbWIoKQ0KKyNkZWZpbmUgd21iZGQoKSB3bWIoKQ0KIA0K ICNpZmRlZiBDT05GSUdfU01QDQogI2RlZmluZSBzbXBfbWIoKSAgICAgICAg bWIoKQ0KICNkZWZpbmUgc21wX3JtYigpICAgICAgIHJtYigpDQogI2RlZmlu ZSBzbXBfd21iKCkgICAgICAgd21iKCkNCisjZGVmaW5lIHNtcF9tYmRkKCkg ICAgICBtYmRkKCkNCisjZGVmaW5lIHNtcF93bWJkZCgpICAgICB3bWJkZCgp DQogI2Vsc2UNCiAjZGVmaW5lIHNtcF9tYigpICAgICAgICBiYXJyaWVyKCkN CiAjZGVmaW5lIHNtcF9ybWIoKSAgICAgICBiYXJyaWVyKCkNCiAjZGVmaW5l IHNtcF93bWIoKSAgICAgICBiYXJyaWVyKCkNCisjZGVmaW5lIHNtcF9tYmRk KCkgICAgICBiYXJyaWVyKCkNCisjZGVmaW5lIHNtcF93bWJkZCgpICAgICBi YXJyaWVyKCkNCiAjZW5kaWYNCiANCiAjZGVmaW5lIGlyZXQoKQ0KZGlmZiAt dXJOIC1YIC9ob21lL21ja2VubmV5L2RvbnRkaWZmIGxpbnV4LTIuNC4xMC9p bmNsdWRlL2FzbS1pMzg2L3N5c3RlbS5oIGxpbnV4LTIuNC4xMC53bWJkZC9p bmNsdWRlL2FzbS1pMzg2L3N5c3RlbS5oDQotLS0gbGludXgtMi40LjEwL2lu Y2x1ZGUvYXNtLWkzODYvc3lzdGVtLmgJU3VuIFNlcCAyMyAxMDozMTowMSAy MDAxDQorKysgbGludXgtMi40LjEwLndtYmRkL2luY2x1ZGUvYXNtLWkzODYv c3lzdGVtLmgJTW9uIE9jdCAgOCAxODozMToxOCAyMDAxDQpAQCAtMjg1LDE1 ICsyODUsMjEgQEANCiAjZGVmaW5lIG1iKCkgCV9fYXNtX18gX192b2xhdGls ZV9fICgibG9jazsgYWRkbCAkMCwwKCUlZXNwKSI6IDogOiJtZW1vcnkiKQ0K ICNkZWZpbmUgcm1iKCkJbWIoKQ0KICNkZWZpbmUgd21iKCkJX19hc21fXyBf X3ZvbGF0aWxlX18gKCIiOiA6IDoibWVtb3J5IikNCisjZGVmaW5lIG1iZGQo KQltYigpDQorI2RlZmluZSB3bWJkZCgpCXdtYigpDQogDQogI2lmZGVmIENP TkZJR19TTVANCiAjZGVmaW5lIHNtcF9tYigpCW1iKCkNCiAjZGVmaW5lIHNt cF9ybWIoKQlybWIoKQ0KICNkZWZpbmUgc21wX3dtYigpCXdtYigpDQorI2Rl ZmluZSBzbXBfbWJkZCgpCW1iZGQoKQ0KKyNkZWZpbmUgc21wX3dtYmRkKCkJ d21iZGQoKQ0KICNlbHNlDQogI2RlZmluZSBzbXBfbWIoKQliYXJyaWVyKCkN CiAjZGVmaW5lIHNtcF9ybWIoKQliYXJyaWVyKCkNCiAjZGVmaW5lIHNtcF93 bWIoKQliYXJyaWVyKCkNCisjZGVmaW5lIHNtcF9tYmRkKCkJYmFycmllcigp DQorI2RlZmluZSBzbXBfd21iZGQoKQliYXJyaWVyKCkNCiAjZW5kaWYNCiAN CiAjZGVmaW5lIHNldF9tYih2YXIsIHZhbHVlKSBkbyB7IHhjaGcoJnZhciwg dmFsdWUpOyB9IHdoaWxlICgwKQ0KZGlmZiAtdXJOIC1YIC9ob21lL21ja2Vu bmV5L2RvbnRkaWZmIGxpbnV4LTIuNC4xMC9pbmNsdWRlL2FzbS1pYTY0L3N5 c3RlbS5oIGxpbnV4LTIuNC4xMC53bWJkZC9pbmNsdWRlL2FzbS1pYTY0L3N5 c3RlbS5oDQotLS0gbGludXgtMi40LjEwL2luY2x1ZGUvYXNtLWlhNjQvc3lz dGVtLmgJVHVlIEp1bCAzMSAxMDozMDowOSAyMDAxDQorKysgbGludXgtMi40 LjEwLndtYmRkL2luY2x1ZGUvYXNtLWlhNjQvc3lzdGVtLmgJTW9uIE9jdCAg OCAxODozMToxOCAyMDAxDQpAQCAtODQsMTEgKzg0LDM2IEBADQogICoJCWxp a2UgcmVnaW9ucyBhcmUgdmlzaWJsZSBiZWZvcmUgYW55IHN1YnNlcXVlbnQN CiAgKgkJc3RvcmVzIGFuZCB0aGF0IGFsbCBmb2xsb3dpbmcgc3RvcmVzIHdp bGwgYmUNCiAgKgkJdmlzaWJsZSBvbmx5IGFmdGVyIGFsbCBwcmV2aW91cyBz dG9yZXMuDQotICogICBybWIoKToJTGlrZSB3bWIoKSwgYnV0IGZvciByZWFk cy4NCisgKgkJSW4gY29tbW9uIGNvZGUsIGFueSByZWFkcyB0aGF0IGRlcGVu ZCBvbiB0aGlzDQorICoJCW9yZGVyaW5nIG11c3QgYmUgc2VwYXJhdGVkIGJ5 IGFuIG1iKCkgb3Igcm1iKCkuDQorICogICBybWIoKToJR3VhcmFudGVlcyB0 aGF0IGFsbCBwcmVjZWRpbmcgbG9hZHMgdG8gbWVtb3J5LQ0KKyAqCQlsaWtl IHJlZ2lvbnMgYXJlIGV4ZWN1dGVkIGJlZm9yZSBhbnkgc3Vic2VxdWVudA0K KyAqCQlsb2Fkcy4NCiAgKiAgIG1iKCk6CXdtYigpL3JtYigpIGNvbWJvLCBp LmUuLCBhbGwgcHJldmlvdXMgbWVtb3J5DQogICoJCWFjY2Vzc2VzIGFyZSB2 aXNpYmxlIGJlZm9yZSBhbGwgc3Vic2VxdWVudA0KICAqCQlhY2Nlc3NlcyBh bmQgdmljZSB2ZXJzYS4gIFRoaXMgaXMgYWxzbyBrbm93biBhcw0KLSAqCQlh ICJmZW5jZS4iDQorICoJCWEgImZlbmNlLiIgIEFnYWluLCBpbiBjb21tb24g Y29kZSwgYW55IHJlYWRzIHRoYXQNCisgKgkJZGVwZW5kIG9uIHRoZSBvcmRl ciBvZiB3cml0ZXMgbXVzdCB0aGVtc2VsdmVzIGJlDQorICoJCXNlcGFyYXRl ZCBieSBhbiBtYigpIG9yIHJtYigpLg0KKyAqICAgd21iZGQoKToJR3VhcmFu dGVlcyB0aGF0IGFsbCBwcmVjZWRpbmcgc3RvcmVzIHRvIG1lbW9yeS0NCisg KgkJbGlrZSByZWdpb25zIGFyZSB2aXNpYmxlIGJlZm9yZSBhbnkgc3Vic2Vx dWVudA0KKyAqCQlzdG9yZXMgYW5kIHRoYXQgYWxsIGZvbGxvd2luZyBzdG9y ZXMgd2lsbCBiZQ0KKyAqCQl2aXNpYmxlIG9ubHkgYWZ0ZXIgYWxsIHByZXZp b3VzIHN0b3Jlcy4NCisgKgkJSW4gY29tbW9uIGNvZGUsIGFueSByZWFkcyB0 aGF0IGRlcGVuZCBvbiB0aGlzDQorICoJCW9yZGVyaW5nIGVpdGhlciBtdXN0 IGJlIHNlcGFyYXRlZCBieSBhbiBtYigpDQorICoJCW9yIHJtYigpLCBvciB0 aGUgbGF0ZXIgcmVhZHMgbXVzdCBkZXBlbmQgb24NCisgKgkJZGF0YSBsb2Fk ZWQgYnkgdGhlIGVhcmxpZXIgcmVhZHMuICBGb3IgYW4gZXhhbXBsZQ0KKyAq CQlvZiB0aGUgbGF0dGVyLCBjb25zaWRlciAicC0+bmV4dCIuICBUaGUgcmVh ZCBvZg0KKyAqCQl0aGUgIm5leHQiIGZpZWxkIGRlcGVuZHMgb24gdGhlIHJl YWQgb2YgdGhlDQorICoJCXBvaW50ZXIgInAiLg0KKyAqICAgbWJkZCgpOgl3 bWIoKS9ybWIoKSBjb21ibywgaS5lLiwgYWxsIHByZXZpb3VzIG1lbW9yeQ0K KyAqCQlhY2Nlc3NlcyBhcmUgdmlzaWJsZSBiZWZvcmUgYWxsIHN1YnNlcXVl bnQNCisgKgkJYWNjZXNzZXMgYW5kIHZpY2UgdmVyc2EuICBUaGlzIGlzIGFs c28ga25vd24gYXMNCisgKgkJYSAiZmVuY2UuIiAgQWdhaW4sIGluIGNvbW1v biBjb2RlLCBhbnkgcmVhZHMgdGhhdA0KKyAqCQlkZXBlbmQgb24gdGhlIG9y ZGVyIG9mIHdyaXRlcyBtdXN0IHRoZW1zZWx2ZXMgYmUNCisgKgkJc2VwYXJh dGVkIGJ5IGFuIG1iKCkgb3Igcm1iKCksIG9yIHRoZXJlIG11c3QgYmUNCisg KgkJYSBkYXRhIGRlcGVuZGVuY3kgdGhhdCBmb3JjZXMgdGhlIHNlY29uZCB0 bw0KKyAqCQl3YWl0IHVudGlsIHRoZSBmaXJzdCBjb21wbGV0ZXMuDQogICoN CiAgKiBOb3RlOiAibWIoKSIgYW5kIGl0cyB2YXJpYW50cyBjYW5ub3QgYmUg dXNlZCBhcyBhIGZlbmNlIHRvIG9yZGVyDQogICogYWNjZXNzZXMgdG8gbWVt b3J5IG1hcHBlZCBJL08gcmVnaXN0ZXJzLiAgRm9yIHRoYXQsIG1mLmEgbmVl ZHMgdG8NCkBAIC05OSwxNSArMTI0LDIxIEBADQogI2RlZmluZSBtYigpCV9f YXNtX18gX192b2xhdGlsZV9fICgibWYiIDo6OiAibWVtb3J5IikNCiAjZGVm aW5lIHJtYigpCW1iKCkNCiAjZGVmaW5lIHdtYigpCW1iKCkNCisjZGVmaW5l IHJtYmRkKCkJbWIoKQ0KKyNkZWZpbmUgd21iZGQoKQltYigpDQogDQogI2lm ZGVmIENPTkZJR19TTVANCiAjIGRlZmluZSBzbXBfbWIoKQltYigpDQogIyBk ZWZpbmUgc21wX3JtYigpCXJtYigpDQogIyBkZWZpbmUgc21wX3dtYigpCXdt YigpDQorIyBkZWZpbmUgc21wX21iZGQoKQltYmRkKCkNCisjIGRlZmluZSBz bXBfd21iZGQoKQl3bWJkZCgpDQogI2Vsc2UNCiAjIGRlZmluZSBzbXBfbWIo KQliYXJyaWVyKCkNCiAjIGRlZmluZSBzbXBfcm1iKCkJYmFycmllcigpDQog IyBkZWZpbmUgc21wX3dtYigpCWJhcnJpZXIoKQ0KKyMgZGVmaW5lIHNtcF9t YmRkKCkJYmFycmllcigpDQorIyBkZWZpbmUgc21wX3dtYmRkKCkJYmFycmll cigpDQogI2VuZGlmDQogDQogLyoNCmRpZmYgLXVyTiAtWCAvaG9tZS9tY2tl bm5leS9kb250ZGlmZiBsaW51eC0yLjQuMTAvaW5jbHVkZS9hc20tbTY4ay9z eXN0ZW0uaCBsaW51eC0yLjQuMTAud21iZGQvaW5jbHVkZS9hc20tbTY4ay9z eXN0ZW0uaA0KLS0tIGxpbnV4LTIuNC4xMC9pbmNsdWRlL2FzbS1tNjhrL3N5 c3RlbS5oCU1vbiBKdW4gMTEgMTk6MTU6MjcgMjAwMQ0KKysrIGxpbnV4LTIu NC4xMC53bWJkZC9pbmNsdWRlL2FzbS1tNjhrL3N5c3RlbS5oCU1vbiBPY3Qg IDggMTg6MzE6MTggMjAwMQ0KQEAgLTgxLDEyICs4MSwxNiBAQA0KICNkZWZp bmUgbWIoKQkJYmFycmllcigpDQogI2RlZmluZSBybWIoKQkJYmFycmllcigp DQogI2RlZmluZSB3bWIoKQkJYmFycmllcigpDQorI2RlZmluZSBybWJkZCgp CQliYXJyaWVyKCkNCisjZGVmaW5lIHdtYmRkKCkJCWJhcnJpZXIoKQ0KICNk ZWZpbmUgc2V0X21iKHZhciwgdmFsdWUpICAgIGRvIHsgeGNoZygmdmFyLCB2 YWx1ZSk7IH0gd2hpbGUgKDApDQogI2RlZmluZSBzZXRfd21iKHZhciwgdmFs dWUpICAgIGRvIHsgdmFyID0gdmFsdWU7IHdtYigpOyB9IHdoaWxlICgwKQ0K IA0KICNkZWZpbmUgc21wX21iKCkJYmFycmllcigpDQogI2RlZmluZSBzbXBf cm1iKCkJYmFycmllcigpDQogI2RlZmluZSBzbXBfd21iKCkJYmFycmllcigp DQorI2RlZmluZSBzbXBfbWJkZCgpCWJhcnJpZXIoKQ0KKyNkZWZpbmUgc21w X3dtYmRkKCkJYmFycmllcigpDQogDQogDQogI2RlZmluZSB4Y2hnKHB0cix4 KSAoKF9fdHlwZW9mX18oKihwdHIpKSlfX3hjaGcoKHVuc2lnbmVkIGxvbmcp KHgpLChwdHIpLHNpemVvZigqKHB0cikpKSkNCmRpZmYgLXVyTiAtWCAvaG9t ZS9tY2tlbm5leS9kb250ZGlmZiBsaW51eC0yLjQuMTAvaW5jbHVkZS9hc20t bWlwcy9zeXN0ZW0uaCBsaW51eC0yLjQuMTAud21iZGQvaW5jbHVkZS9hc20t bWlwcy9zeXN0ZW0uaA0KLS0tIGxpbnV4LTIuNC4xMC9pbmNsdWRlL2FzbS1t aXBzL3N5c3RlbS5oCVN1biBTZXAgIDkgMTA6NDM6MDEgMjAwMQ0KKysrIGxp bnV4LTIuNC4xMC53bWJkZC9pbmNsdWRlL2FzbS1taXBzL3N5c3RlbS5oCU1v biBPY3QgIDggMTg6MzE6MTggMjAwMQ0KQEAgLTE1Miw2ICsxNTIsOCBAQA0K ICNkZWZpbmUgcm1iKCkJZG8geyB9IHdoaWxlKDApDQogI2RlZmluZSB3bWIo KQl3YmZsdXNoKCkNCiAjZGVmaW5lIG1iKCkJd2JmbHVzaCgpDQorI2RlZmlu ZSB3bWJkZCgpCXdiZmx1c2goKQ0KKyNkZWZpbmUgbWJkZCgpCXdiZmx1c2go KQ0KIA0KICNlbHNlIC8qIENPTkZJR19DUFVfSEFTX1dCICAqLw0KIA0KQEAg LTE2Nyw2ICsxNjksOCBAQA0KIAk6ICJtZW1vcnkiKQ0KICNkZWZpbmUgcm1i KCkgbWIoKQ0KICNkZWZpbmUgd21iKCkgbWIoKQ0KKyNkZWZpbmUgd21iZGQo KQltYigpDQorI2RlZmluZSBtYmRkKCkJbWIoKQ0KIA0KICNlbmRpZiAvKiBD T05GSUdfQ1BVX0hBU19XQiAgKi8NCiANCkBAIC0xNzQsMTAgKzE3OCwxNCBA QA0KICNkZWZpbmUgc21wX21iKCkJbWIoKQ0KICNkZWZpbmUgc21wX3JtYigp CXJtYigpDQogI2RlZmluZSBzbXBfd21iKCkJd21iKCkNCisjZGVmaW5lIHNt cF9tYmRkKCkJbWJkZCgpDQorI2RlZmluZSBzbXBfd21iZGQoKQl3bWJkZCgp DQogI2Vsc2UNCiAjZGVmaW5lIHNtcF9tYigpCWJhcnJpZXIoKQ0KICNkZWZp bmUgc21wX3JtYigpCWJhcnJpZXIoKQ0KICNkZWZpbmUgc21wX3dtYigpCWJh cnJpZXIoKQ0KKyNkZWZpbmUgc21wX21iZGQoKQliYXJyaWVyKCkNCisjZGVm aW5lIHNtcF93bWJkZCgpCWJhcnJpZXIoKQ0KICNlbmRpZg0KIA0KICNkZWZp bmUgc2V0X21iKHZhciwgdmFsdWUpIFwNCmRpZmYgLXVyTiAtWCAvaG9tZS9t Y2tlbm5leS9kb250ZGlmZiBsaW51eC0yLjQuMTAvaW5jbHVkZS9hc20tbWlw czY0L3N5c3RlbS5oIGxpbnV4LTIuNC4xMC53bWJkZC9pbmNsdWRlL2FzbS1t aXBzNjQvc3lzdGVtLmgNCi0tLSBsaW51eC0yLjQuMTAvaW5jbHVkZS9hc20t bWlwczY0L3N5c3RlbS5oCVdlZCBKdWwgIDQgMTE6NTA6MzkgMjAwMQ0KKysr IGxpbnV4LTIuNC4xMC53bWJkZC9pbmNsdWRlL2FzbS1taXBzNjQvc3lzdGVt LmgJTW9uIE9jdCAgOCAxODozMToxOCAyMDAxDQpAQCAtMTQ4LDE1ICsxNDgs MjEgQEANCiAJOiAibWVtb3J5IikNCiAjZGVmaW5lIHJtYigpIG1iKCkNCiAj ZGVmaW5lIHdtYigpIG1iKCkNCisjZGVmaW5lIHJtYmRkKCkgbWIoKQ0KKyNk ZWZpbmUgd21iZGQoKSBtYigpDQogDQogI2lmZGVmIENPTkZJR19TTVANCiAj ZGVmaW5lIHNtcF9tYigpCW1iKCkNCiAjZGVmaW5lIHNtcF9ybWIoKQlybWIo KQ0KICNkZWZpbmUgc21wX3dtYigpCXdtYigpDQorI2RlZmluZSBzbXBfbWJk ZCgpCW1iZGQoKQ0KKyNkZWZpbmUgc21wX3dtYmRkKCkJd21iZGQoKQ0KICNl bHNlDQogI2RlZmluZSBzbXBfbWIoKQliYXJyaWVyKCkNCiAjZGVmaW5lIHNt cF9ybWIoKQliYXJyaWVyKCkNCiAjZGVmaW5lIHNtcF93bWIoKQliYXJyaWVy KCkNCisjZGVmaW5lIHNtcF9tYmRkKCkJYmFycmllcigpDQorI2RlZmluZSBz bXBfd21iZGQoKQliYXJyaWVyKCkNCiAjZW5kaWYNCiANCiAjZGVmaW5lIHNl dF9tYih2YXIsIHZhbHVlKSBcDQpkaWZmIC11ck4gLVggL2hvbWUvbWNrZW5u ZXkvZG9udGRpZmYgbGludXgtMi40LjEwL2luY2x1ZGUvYXNtLXBhcmlzYy9z eXN0ZW0uaCBsaW51eC0yLjQuMTAud21iZGQvaW5jbHVkZS9hc20tcGFyaXNj L3N5c3RlbS5oDQotLS0gbGludXgtMi40LjEwL2luY2x1ZGUvYXNtLXBhcmlz Yy9zeXN0ZW0uaAlXZWQgRGVjICA2IDExOjQ2OjM5IDIwMDANCisrKyBsaW51 eC0yLjQuMTAud21iZGQvaW5jbHVkZS9hc20tcGFyaXNjL3N5c3RlbS5oCU1v biBPY3QgIDggMTg6MzE6MTggMjAwMQ0KQEAgLTUxLDYgKzUxLDggQEANCiAj ZGVmaW5lIHNtcF9tYigpCW1iKCkNCiAjZGVmaW5lIHNtcF9ybWIoKQlybWIo KQ0KICNkZWZpbmUgc21wX3dtYigpCXdtYigpDQorI2RlZmluZSBzbXBfbWJk ZCgpCXJtYigpDQorI2RlZmluZSBzbXBfd21iZGQoKQl3bWIoKQ0KICNlbHNl DQogLyogVGhpcyBpcyBzaW1wbHkgdGhlIGJhcnJpZXIoKSBtYWNybyBmcm9t IGxpbnV4L2tlcm5lbC5oIGJ1dCB3aGVuIHNlcmlhbC5jDQogICogdXNlcyB0 cXVldWUuaCB1c2VzIHNtcF9tYigpIGRlZmluZWQgdXNpbmcgYmFycmllcigp LCBsaW51eC9rZXJuZWwuaA0KQEAgLTU5LDYgKzYxLDggQEANCiAjZGVmaW5l IHNtcF9tYigpCV9fYXNtX18gX192b2xhdGlsZV9fKCIiOjo6Im1lbW9yeSIp Ow0KICNkZWZpbmUgc21wX3JtYigpCV9fYXNtX18gX192b2xhdGlsZV9fKCIi Ojo6Im1lbW9yeSIpOw0KICNkZWZpbmUgc21wX3dtYigpCV9fYXNtX18gX192 b2xhdGlsZV9fKCIiOjo6Im1lbW9yeSIpOw0KKyNkZWZpbmUgc21wX21iZGQo KQlfX2FzbV9fIF9fdm9sYXRpbGVfXygiIjo6OiJtZW1vcnkiKTsNCisjZGVm aW5lIHNtcF93bWJkZCgpCV9fYXNtX18gX192b2xhdGlsZV9fKCIiOjo6Im1l bW9yeSIpOw0KICNlbmRpZg0KIA0KIC8qIGludGVycnVwdCBjb250cm9sICov DQpAQCAtMTIyLDYgKzEyNiw4IEBADQogDQogI2RlZmluZSBtYigpICBfX2Fz bV9fIF9fdm9sYXRpbGVfXyAoInN5bmMiIDogOiA6Im1lbW9yeSIpDQogI2Rl ZmluZSB3bWIoKSBtYigpDQorI2RlZmluZSBtYmRkKCkgbWIoKQ0KKyNkZWZp bmUgd21iZGQoKSBtYigpDQogDQogZXh0ZXJuIHVuc2lnbmVkIGxvbmcgX194 Y2hnKHVuc2lnbmVkIGxvbmcsIHVuc2lnbmVkIGxvbmcgKiwgaW50KTsNCiAN CmRpZmYgLXVyTiAtWCAvaG9tZS9tY2tlbm5leS9kb250ZGlmZiBsaW51eC0y LjQuMTAvaW5jbHVkZS9hc20tcHBjL3N5c3RlbS5oIGxpbnV4LTIuNC4xMC53 bWJkZC9pbmNsdWRlL2FzbS1wcGMvc3lzdGVtLmgNCi0tLSBsaW51eC0yLjQu MTAvaW5jbHVkZS9hc20tcHBjL3N5c3RlbS5oCVR1ZSBBdWcgMjggMDY6NTg6 MzMgMjAwMQ0KKysrIGxpbnV4LTIuNC4xMC53bWJkZC9pbmNsdWRlL2FzbS1w cGMvc3lzdGVtLmgJTW9uIE9jdCAgOCAxODozMToxOCAyMDAxDQpAQCAtMzMs NiArMzMsOCBAQA0KICNkZWZpbmUgbWIoKSAgX19hc21fXyBfX3ZvbGF0aWxl X18gKCJzeW5jIiA6IDogOiAibWVtb3J5IikNCiAjZGVmaW5lIHJtYigpICBf X2FzbV9fIF9fdm9sYXRpbGVfXyAoInN5bmMiIDogOiA6ICJtZW1vcnkiKQ0K ICNkZWZpbmUgd21iKCkgIF9fYXNtX18gX192b2xhdGlsZV9fICgiZWllaW8i IDogOiA6ICJtZW1vcnkiKQ0KKyNkZWZpbmUgbWJkZCgpCW1iKCkNCisjZGVm aW5lIHdtYmRkKCkJd21iKCkNCiANCiAjZGVmaW5lIHNldF9tYih2YXIsIHZh bHVlKQlkbyB7IHZhciA9IHZhbHVlOyBtYigpOyB9IHdoaWxlICgwKQ0KICNk ZWZpbmUgc2V0X3dtYih2YXIsIHZhbHVlKQlkbyB7IHZhciA9IHZhbHVlOyB3 bWIoKTsgfSB3aGlsZSAoMCkNCkBAIC00MSwxMCArNDMsMTQgQEANCiAjZGVm aW5lIHNtcF9tYigpCW1iKCkNCiAjZGVmaW5lIHNtcF9ybWIoKQlybWIoKQ0K ICNkZWZpbmUgc21wX3dtYigpCXdtYigpDQorI2RlZmluZSBzbXBfbWJkZCgp CW1iKCkNCisjZGVmaW5lIHNtcF93bWJkZCgpCXdtYigpDQogI2Vsc2UNCiAj ZGVmaW5lIHNtcF9tYigpCV9fYXNtX18gX192b2xhdGlsZV9fKCIiOiA6IDoi bWVtb3J5IikNCiAjZGVmaW5lIHNtcF9ybWIoKQlfX2FzbV9fIF9fdm9sYXRp bGVfXygiIjogOiA6Im1lbW9yeSIpDQogI2RlZmluZSBzbXBfd21iKCkJX19h c21fXyBfX3ZvbGF0aWxlX18oIiI6IDogOiJtZW1vcnkiKQ0KKyNkZWZpbmUg c21wX21iZGQoKQlfX2FzbV9fIF9fdm9sYXRpbGVfXygiIjogOiA6Im1lbW9y eSIpDQorI2RlZmluZSBzbXBfd21iZGQoKQlfX2FzbV9fIF9fdm9sYXRpbGVf XygiIjogOiA6Im1lbW9yeSIpDQogI2VuZGlmIC8qIENPTkZJR19TTVAgKi8N CiANCiAjaWZkZWYgX19LRVJORUxfXw0KZGlmZiAtdXJOIC1YIC9ob21lL21j a2VubmV5L2RvbnRkaWZmIGxpbnV4LTIuNC4xMC9pbmNsdWRlL2FzbS1zMzkw L3N5c3RlbS5oIGxpbnV4LTIuNC4xMC53bWJkZC9pbmNsdWRlL2FzbS1zMzkw L3N5c3RlbS5oDQotLS0gbGludXgtMi40LjEwL2luY2x1ZGUvYXNtLXMzOTAv c3lzdGVtLmgJV2VkIEp1bCAyNSAxNDoxMjowMiAyMDAxDQorKysgbGludXgt Mi40LjEwLndtYmRkL2luY2x1ZGUvYXNtLXMzOTAvc3lzdGVtLmgJTW9uIE9j dCAgOCAxODozMToxOCAyMDAxDQpAQCAtMTE4LDkgKzExOCwxMyBAQA0KICNk ZWZpbmUgbWIoKSAgICBlaWVpbygpDQogI2RlZmluZSBybWIoKSAgIGVpZWlv KCkNCiAjZGVmaW5lIHdtYigpICAgZWllaW8oKQ0KKyNkZWZpbmUgbWJkZCgp CW1iKCkNCisjZGVmaW5lIHdtYmRkKCkJd21iKCkNCiAjZGVmaW5lIHNtcF9t YigpICAgICAgIG1iKCkNCiAjZGVmaW5lIHNtcF9ybWIoKSAgICAgIHJtYigp DQogI2RlZmluZSBzbXBfd21iKCkgICAgICB3bWIoKQ0KKyNkZWZpbmUgc21w X21iZGQoKSAgICAgbWIoKQ0KKyNkZWZpbmUgc21wX3dtYmRkKCkgICAgd21i KCkNCiAjZGVmaW5lIHNtcF9tYl9fYmVmb3JlX2NsZWFyX2JpdCgpICAgICBz bXBfbWIoKQ0KICNkZWZpbmUgc21wX21iX19hZnRlcl9jbGVhcl9iaXQoKSAg ICAgIHNtcF9tYigpDQogDQpkaWZmIC11ck4gLVggL2hvbWUvbWNrZW5uZXkv ZG9udGRpZmYgbGludXgtMi40LjEwL2luY2x1ZGUvYXNtLXMzOTB4L3N5c3Rl bS5oIGxpbnV4LTIuNC4xMC53bWJkZC9pbmNsdWRlL2FzbS1zMzkweC9zeXN0 ZW0uaA0KLS0tIGxpbnV4LTIuNC4xMC9pbmNsdWRlL2FzbS1zMzkweC9zeXN0 ZW0uaAlXZWQgSnVsIDI1IDE0OjEyOjAzIDIwMDENCisrKyBsaW51eC0yLjQu MTAud21iZGQvaW5jbHVkZS9hc20tczM5MHgvc3lzdGVtLmgJTW9uIE9jdCAg OCAxODozMToxOSAyMDAxDQpAQCAtMTMxLDkgKzEzMSwxMyBAQA0KICNkZWZp bmUgbWIoKSAgICBlaWVpbygpDQogI2RlZmluZSBybWIoKSAgIGVpZWlvKCkN CiAjZGVmaW5lIHdtYigpICAgZWllaW8oKQ0KKyNkZWZpbmUgbWJkZCgpCW1i KCkNCisjZGVmaW5lIHdtYmRkKCkJd21iKCkNCiAjZGVmaW5lIHNtcF9tYigp ICAgICAgIG1iKCkNCiAjZGVmaW5lIHNtcF9ybWIoKSAgICAgIHJtYigpDQog I2RlZmluZSBzbXBfd21iKCkgICAgICB3bWIoKQ0KKyNkZWZpbmUgc21wX21i ZGQoKSAgICAgbWIoKQ0KKyNkZWZpbmUgc21wX3dtYmRkKCkgICAgd21iKCkN CiAjZGVmaW5lIHNtcF9tYl9fYmVmb3JlX2NsZWFyX2JpdCgpICAgICBzbXBf bWIoKQ0KICNkZWZpbmUgc21wX21iX19hZnRlcl9jbGVhcl9iaXQoKSAgICAg IHNtcF9tYigpDQogDQpkaWZmIC11ck4gLVggL2hvbWUvbWNrZW5uZXkvZG9u dGRpZmYgbGludXgtMi40LjEwL2luY2x1ZGUvYXNtLXNoL3N5c3RlbS5oIGxp bnV4LTIuNC4xMC53bWJkZC9pbmNsdWRlL2FzbS1zaC9zeXN0ZW0uaA0KLS0t IGxpbnV4LTIuNC4xMC9pbmNsdWRlL2FzbS1zaC9zeXN0ZW0uaAlTYXQgU2Vw ICA4IDEyOjI5OjA5IDIwMDENCisrKyBsaW51eC0yLjQuMTAud21iZGQvaW5j bHVkZS9hc20tc2gvc3lzdGVtLmgJTW9uIE9jdCAgOCAxODozMToxOSAyMDAx DQpAQCAtODksMTUgKzg5LDIxIEBADQogI2RlZmluZSBtYigpCV9fYXNtX18g X192b2xhdGlsZV9fICgiIjogOiA6Im1lbW9yeSIpDQogI2RlZmluZSBybWIo KQltYigpDQogI2RlZmluZSB3bWIoKQlfX2FzbV9fIF9fdm9sYXRpbGVfXyAo IiI6IDogOiJtZW1vcnkiKQ0KKyNkZWZpbmUgbWJkZCgpCW1iKCkNCisjZGVm aW5lIHdtYmRkKCkJd21iKCkNCiANCiAjaWZkZWYgQ09ORklHX1NNUA0KICNk ZWZpbmUgc21wX21iKCkJbWIoKQ0KICNkZWZpbmUgc21wX3JtYigpCXJtYigp DQogI2RlZmluZSBzbXBfd21iKCkJd21iKCkNCisjZGVmaW5lIHNtcF9tYmRk KCkJbWIoKQ0KKyNkZWZpbmUgc21wX3dtYmRkKCkJd21iKCkNCiAjZWxzZQ0K ICNkZWZpbmUgc21wX21iKCkJYmFycmllcigpDQogI2RlZmluZSBzbXBfcm1i KCkJYmFycmllcigpDQogI2RlZmluZSBzbXBfd21iKCkJYmFycmllcigpDQor I2RlZmluZSBzbXBfbWJkZCgpCWJhcnJpZXIoKQ0KKyNkZWZpbmUgc21wX3dt YmRkKCkJYmFycmllcigpDQogI2VuZGlmDQogDQogI2RlZmluZSBzZXRfbWIo dmFyLCB2YWx1ZSkgZG8geyB4Y2hnKCZ2YXIsIHZhbHVlKTsgfSB3aGlsZSAo MCkNCmRpZmYgLXVyTiAtWCAvaG9tZS9tY2tlbm5leS9kb250ZGlmZiBsaW51 eC0yLjQuMTAvaW5jbHVkZS9hc20tc3BhcmMvc3lzdGVtLmggbGludXgtMi40 LjEwLndtYmRkL2luY2x1ZGUvYXNtLXNwYXJjL3N5c3RlbS5oDQotLS0gbGlu dXgtMi40LjEwL2luY2x1ZGUvYXNtLXNwYXJjL3N5c3RlbS5oCVR1ZSBPY3Qg IDMgMDk6MjQ6NDEgMjAwMA0KKysrIGxpbnV4LTIuNC4xMC53bWJkZC9pbmNs dWRlL2FzbS1zcGFyYy9zeXN0ZW0uaAlNb24gT2N0ICA4IDE4OjMxOjE5IDIw MDENCkBAIC0yNzgsMTEgKzI3OCwxNSBAQA0KICNkZWZpbmUgbWIoKQlfX2Fz bV9fIF9fdm9sYXRpbGVfXyAoIiIgOiA6IDogIm1lbW9yeSIpDQogI2RlZmlu ZSBybWIoKQltYigpDQogI2RlZmluZSB3bWIoKQltYigpDQorI2RlZmluZSBt YmRkKCkJbWIoKQ0KKyNkZWZpbmUgd21iZGQoKQl3bWIoKQ0KICNkZWZpbmUg c2V0X21iKF9fdmFyLCBfX3ZhbHVlKSAgZG8geyBfX3ZhciA9IF9fdmFsdWU7 IG1iKCk7IH0gd2hpbGUoMCkNCiAjZGVmaW5lIHNldF93bWIoX192YXIsIF9f dmFsdWUpIHNldF9tYihfX3ZhciwgX192YWx1ZSkNCiAjZGVmaW5lIHNtcF9t YigpCV9fYXNtX18gX192b2xhdGlsZV9fKCIiOjo6Im1lbW9yeSIpOw0KICNk ZWZpbmUgc21wX3JtYigpCV9fYXNtX18gX192b2xhdGlsZV9fKCIiOjo6Im1l bW9yeSIpOw0KICNkZWZpbmUgc21wX3dtYigpCV9fYXNtX18gX192b2xhdGls ZV9fKCIiOjo6Im1lbW9yeSIpOw0KKyNkZWZpbmUgc21wX21iZGQoKQlfX2Fz bV9fIF9fdm9sYXRpbGVfXygiIjo6OiJtZW1vcnkiKTsNCisjZGVmaW5lIHNt cF93bWJkZCgpCV9fYXNtX18gX192b2xhdGlsZV9fKCIiOjo6Im1lbW9yeSIp Ow0KIA0KICNkZWZpbmUgbm9wKCkgX19hc21fXyBfX3ZvbGF0aWxlX18gKCJu b3AiKTsNCiANCmRpZmYgLXVyTiAtWCAvaG9tZS9tY2tlbm5leS9kb250ZGlm ZiBsaW51eC0yLjQuMTAvaW5jbHVkZS9hc20tc3BhcmM2NC9zeXN0ZW0uaCBs aW51eC0yLjQuMTAud21iZGQvaW5jbHVkZS9hc20tc3BhcmM2NC9zeXN0ZW0u aA0KLS0tIGxpbnV4LTIuNC4xMC9pbmNsdWRlL2FzbS1zcGFyYzY0L3N5c3Rl bS5oCUZyaSBTZXAgIDcgMTE6MDE6MjAgMjAwMQ0KKysrIGxpbnV4LTIuNC4x MC53bWJkZC9pbmNsdWRlL2FzbS1zcGFyYzY0L3N5c3RlbS5oCVdlZCBPY3Qg MTAgMTY6NDM6MjEgMjAwMQ0KQEAgLTEwMCw2ICsxMDAsOCBAQA0KIAltZW1i YXIoIiNMb2FkTG9hZCB8ICNMb2FkU3RvcmUgfCAjU3RvcmVTdG9yZSB8ICNT dG9yZUxvYWQiKTsNCiAjZGVmaW5lIHJtYigpCQltZW1iYXIoIiNMb2FkTG9h ZCIpDQogI2RlZmluZSB3bWIoKQkJbWVtYmFyKCIjU3RvcmVTdG9yZSIpDQor I2RlZmluZSBtYmRkKCkJCW1iKCkNCisjZGVmaW5lIHdtYmRkKCkJCXdtYigp DQogI2RlZmluZSBzZXRfbWIoX192YXIsIF9fdmFsdWUpIFwNCiAJZG8geyBf X3ZhciA9IF9fdmFsdWU7IG1lbWJhcigiI1N0b3JlTG9hZCB8ICNTdG9yZVN0 b3JlIik7IH0gd2hpbGUoMCkNCiAjZGVmaW5lIHNldF93bWIoX192YXIsIF9f dmFsdWUpIFwNCkBAIC0xMDksMTAgKzExMSwxNCBAQA0KICNkZWZpbmUgc21w X21iKCkJbWIoKQ0KICNkZWZpbmUgc21wX3JtYigpCXJtYigpDQogI2RlZmlu ZSBzbXBfd21iKCkJd21iKCkNCisjZGVmaW5lIHNtcF9tYmRkKCkJbWJkZCgp DQorI2RlZmluZSBzbXBfd21iZGQoKQl3bWJkZCgpDQogI2Vsc2UNCiAjZGVm aW5lIHNtcF9tYigpCV9fYXNtX18gX192b2xhdGlsZV9fKCIiOjo6Im1lbW9y eSIpOw0KICNkZWZpbmUgc21wX3JtYigpCV9fYXNtX18gX192b2xhdGlsZV9f KCIiOjo6Im1lbW9yeSIpOw0KICNkZWZpbmUgc21wX3dtYigpCV9fYXNtX18g X192b2xhdGlsZV9fKCIiOjo6Im1lbW9yeSIpOw0KKyNkZWZpbmUgc21wX21i ZGQoKQlfX2FzbV9fIF9fdm9sYXRpbGVfXygiIjo6OiJtZW1vcnkiKTsNCisj ZGVmaW5lIHNtcF93bWJkZCgpCV9fYXNtX18gX192b2xhdGlsZV9fKCIiOjo6 Im1lbW9yeSIpOw0KICNlbmRpZg0KIA0KICNkZWZpbmUgZmx1c2hpKGFkZHIp CV9fYXNtX18gX192b2xhdGlsZV9fICgiZmx1c2ggJTAiIDogOiAiciIgKGFk ZHIpIDogIm1lbW9yeSIpDQo= --0-851401618-1002765386=:9717-- - To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/