From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from mailman by lists.gnu.org with tmda-scanned (Exim 4.43) id 1KidVA-0002de-9K for qemu-devel@nongnu.org; Wed, 24 Sep 2008 19:10:32 -0400 Received: from exim by lists.gnu.org with spam-scanned (Exim 4.43) id 1KidV8-0002b7-ND for qemu-devel@nongnu.org; Wed, 24 Sep 2008 19:10:31 -0400 Received: from [199.232.76.173] (port=33899 helo=monty-python.gnu.org) by lists.gnu.org with esmtp (Exim 4.43) id 1KidV8-0002av-3s for qemu-devel@nongnu.org; Wed, 24 Sep 2008 19:10:30 -0400 Received: from ey-out-1920.google.com ([74.125.78.144]:55034) by monty-python.gnu.org with esmtp (Exim 4.60) (envelope-from ) id 1KidV7-0007oJ-GW for qemu-devel@nongnu.org; Wed, 24 Sep 2008 19:10:29 -0400 Received: by ey-out-1920.google.com with SMTP id 4so55262eyk.4 for ; Wed, 24 Sep 2008 16:10:27 -0700 (PDT) Message-ID: Date: Wed, 24 Sep 2008 18:10:27 -0500 From: "Dustin Kirkland" Sender: dustin.kirkland@gmail.com MIME-Version: 1.0 Content-Type: multipart/mixed; boundary="----=_Part_128981_25844526.1222297827919" Subject: [Qemu-devel] [PATCH] evdev_keycode_map Reply-To: qemu-devel@nongnu.org List-Id: qemu-devel.nongnu.org List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , To: qemu-devel@nongnu.org ------=_Part_128981_25844526.1222297827919 Content-Type: text/plain; charset=ISO-8859-1 Content-Transfer-Encoding: 7bit Content-Disposition: inline Hello, I'm attaching a patch that we have applied to the qemu implementation inside of the kvm package in Ubuntu. This patch was ported from a very similar one applied to gtk-vnc. I spoke with Anthony Liguori on IRC about it a bit, and he as a few ideas as to how to handle the configure bits better for QEMU. Hopefully the rest of this is useful to you as-is. Thanks, :-Dustin Dustin Kirkland Ubuntu Server Developer Canonical, LTD kirkland@canonical.com ------=_Part_128981_25844526.1222297827919 Content-Type: text/x-diff; name=evdev_keycode_map.patch Content-Transfer-Encoding: base64 X-Attachment-Id: f_flikjkpk0 Content-Disposition: attachment; filename=evdev_keycode_map.patch IyBUaGlzIGNvZGUgd2FzIHBvcnRlZCBmcm9tIGd0ay12bmMsIHRvIGhhbmRsZSBldmRldiBrZXlj b2RlIG1hcHBpbmcgYnkKIyBEdXN0aW4gS2lya2xhbmQgPGtpcmtsYW5kQGNhbm9uaWNhbC5jb20+ LCAyNCBTZXB0ZW1iZXIgMjAwOC4KCgotLS0ga3ZtLTcyK2Rmc2cvcWVtdS9jb25maWd1cmUJMjAw OC0wNy0yNyAwODoyMDoxMC4wMDAwMDAwMDAgLTA1MDAKKysrIGt2bS03MitkZnNnL3FlbXUvY29u ZmlndXJlCTIwMDgtMDktMjQgMTY6MDQ6MjguMDM2NzkxMTQ3IC0wNTAwCkBAIC0xMTk4LDkgKzEx OTgsOSBAQCBpZiB0ZXN0ICIkc2RsMSIgPSAieWVzIiA7IHRoZW4KICAgZWNobyAiI2RlZmluZSBD T05GSUdfU0RMIDEiID4+ICRjb25maWdfaAogICBlY2hvICJDT05GSUdfU0RMPXllcyIgPj4gJGNv bmZpZ19tYWsKICAgaWYgdGVzdCAiJHRhcmdldF9zb2Z0bW11IiA9ICJubyIgLW8gIiRzdGF0aWMi ID0gInllcyI7IHRoZW4KLSAgICBlY2hvICJTRExfTElCUz0kc2RsX3N0YXRpY19saWJzIiA+PiAk Y29uZmlnX21haworICAgIGVjaG8gIlNETF9MSUJTPS1sWDExICRzZGxfc3RhdGljX2xpYnMiID4+ ICRjb25maWdfbWFrCiAgIGVsc2UKLSAgICBlY2hvICJTRExfTElCUz1gJHNkbF9jb25maWcgLS1s aWJzYCIgPj4gJGNvbmZpZ19tYWsKKyAgICBlY2hvICJTRExfTElCUz0tbFgxMSBgJHNkbF9jb25m aWcgLS1saWJzYCIgPj4gJGNvbmZpZ19tYWsKICAgZmkKICAgaWYgWyAiJHthYX0iID0gInllcyIg XSA7IHRoZW4KICAgICBlY2hvICJTRExfQ0ZMQUdTPWAkc2RsX2NvbmZpZyAtLWNmbGFnc2AgYGFh bGliLWNvbmZpZyAtLWNmbGFnc2AiID4+ICRjb25maWdfbWFrCi0tLSBrdm0tNzIrZGZzZy9xZW11 L3NkbC5jCTIwMDgtMDctMjcgMDU6MDg6NTYuMDAwMDAwMDAwIC0wNTAwCisrKyBrdm0tNzIrZGZz Zy9xZW11L3NkbC5jCTIwMDgtMDktMjQgMTY6Mzk6MTkuNzEzNzg4NzgyIC0wNTAwCkBAIC0xMzIs MjEgKzEzMiw3IEBAIHN0YXRpYyB1aW50OF90IHNkbF9rZXlldmVudF90b19rZXljb2RlKGMKIAog c3RhdGljIHVpbnQ4X3Qgc2RsX2tleWV2ZW50X3RvX2tleWNvZGUoY29uc3QgU0RMX0tleWJvYXJk RXZlbnQgKmV2KQogewotICAgIGludCBrZXljb2RlOwotCi0gICAga2V5Y29kZSA9IGV2LT5rZXlz eW0uc2NhbmNvZGU7Ci0KLSAgICBpZiAoa2V5Y29kZSA8IDkpIHsKLSAgICAgICAga2V5Y29kZSA9 IDA7Ci0gICAgfSBlbHNlIGlmIChrZXljb2RlIDwgOTcpIHsKLSAgICAgICAga2V5Y29kZSAtPSA4 OyAvKiBqdXN0IGFuIG9mZnNldCAqLwotICAgIH0gZWxzZSBpZiAoa2V5Y29kZSA8IDIxMikgewot ICAgICAgICAvKiB1c2UgY29udmVyc2lvbiB0YWJsZSAqLwotICAgICAgICBrZXljb2RlID0gX3Ry YW5zbGF0ZV9rZXljb2RlKGtleWNvZGUgLSA5Nyk7Ci0gICAgfSBlbHNlIHsKLSAgICAgICAga2V5 Y29kZSA9IDA7Ci0gICAgfQotICAgIHJldHVybiBrZXljb2RlOworICAgIHJldHVybiBfdHJhbnNs YXRlX2tleWNvZGUoZXYtPmtleXN5bS5zY2FuY29kZSk7CiB9CiAKICNlbmRpZgotLS0ga3ZtLTcy K2Rmc2cvcWVtdS94X2tleW1hcC5jCTIwMDgtMDctMjcgMDU6MDg6NTYuMDAwMDAwMDAwIC0wNTAw CisrKyBrdm0tNzIrZGZzZy9xZW11L3hfa2V5bWFwLmMJMjAwOC0wOS0yNCAxNjo1MjoyNy4yNjIx Mjk3MDIgLTA1MDAKQEAgLTI0LDcgKzI0LDE1IEBACiAjaW5jbHVkZSAicWVtdS1jb21tb24uaCIK ICNpbmNsdWRlICJjb25zb2xlLmgiCiAKLXN0YXRpYyBjb25zdCB1aW50OF90IHhfa2V5Y29kZV90 b19wY19rZXljb2RlWzExNV0gPSB7CisjaW5jbHVkZSA8U0RML1NETF9zeXN3bS5oPgorI2luY2x1 ZGUgPFgxMS9YS0JsaWIuaD4KKyNpbmNsdWRlIDxzdGRib29sLmg+CisjaW5jbHVkZSA8c3RyaW5n Lmg+CisKKyNkZWZpbmUgVFJVRSAxCisjZGVmaW5lIEZBTFNFIDAKKworc3RhdGljIGNvbnN0IHVp bnQ4X3QgeF9rZXljb2RlX3RvX3BjX2tleWNvZGVbNjFdID0gewogICAgMHhjNywgICAgICAvKiAg OTcgIEhvbWUgICAqLwogICAgMHhjOCwgICAgICAvKiAgOTggIFVwICAgICAqLwogICAgMHhjOSwg ICAgICAvKiAgOTkgIFBnVXAgICAqLwpAQCAtODYsMjcgKzk0LDEzNiBAQCBzdGF0aWMgY29uc3Qg dWludDhfdCB4X2tleWNvZGVfdG9fcGNfa2V5CiAgICAweDUxLCAgICAgICAgIC8qIDE1NSBLUF9Q Z0RuICovCiAgICAweDUyLCAgICAgICAgIC8qIDE1NiBLUF9JbnMgKi8KICAgIDB4NTMsICAgICAg ICAgLyogMTU3IEtQX0RlbCAqLwotICAgMHgwLCAgICAgICAgIC8qIDE1OCAqLwotICAgMHgwLCAg ICAgICAgIC8qIDE1OSAqLwotICAgMHgwLCAgICAgICAgIC8qIDE2MCAqLwotICAgMHgwLCAweDAs IDB4MCwgMHgwLCAweDAsIDB4MCwgMHgwLCAweDAsIDB4MCwgMHgwLCAgICAgICAgIC8qIDE3MCAq LwotICAgMHgwLCAweDAsIDB4MCwgMHgwLCAweDAsIDB4MCwgMHgwLCAweDAsIDB4MCwgMHgwLCAg ICAgICAgIC8qIDE4MCAqLwotICAgMHgwLCAweDAsIDB4MCwgMHgwLCAweDAsIDB4MCwgMHgwLCAw eDAsIDB4MCwgMHgwLCAgICAgICAgIC8qIDE5MCAqLwotICAgMHgwLCAweDAsIDB4MCwgMHgwLCAw eDAsIDB4MCwgMHgwLCAweDAsIDB4MCwgMHgwLCAgICAgICAgIC8qIDIwMCAqLwotICAgMHgwLCAg ICAgICAgIC8qIDIwMSAqLwotICAgMHgwLCAgICAgICAgIC8qIDIwMiAqLwotICAgMHgwLCAgICAg ICAgIC8qIDIwMyAqLwotICAgMHgwLCAgICAgICAgIC8qIDIwNCAqLwotICAgMHgwLCAgICAgICAg IC8qIDIwNSAqLwotICAgMHgwLCAgICAgICAgIC8qIDIwNiAqLwotICAgMHgwLCAgICAgICAgIC8q IDIwNyAqLwotICAgMHg3MCwgICAgICAgICAvKiAyMDggSGlyYWdhbmFfS2F0YWthbmEgKi8KLSAg IDB4MCwgICAgICAgICAvKiAyMDkgKi8KLSAgIDB4MCwgICAgICAgICAvKiAyMTAgKi8KLSAgIDB4 NzMsICAgICAgICAgLyogMjExIGJhY2tzbGFzaCAqLwogfTsKIAotdWludDhfdCBfdHJhbnNsYXRl X2tleWNvZGUoY29uc3QgaW50IGtleSkKKy8qIFRoaXMgY29kZSB3YXMgcG9ydGVkIGZyb20gZ3Rr LXZuYywgdG8gaGFuZGxlIGV2ZGV2IGtleWNvZGUgbWFwcGluZyBieQorICogRHVzdGluIEtpcmts YW5kIDxraXJrbGFuZEBjYW5vbmljYWwuY29tPiwgMjQgU2VwdGVtYmVyIDIwMDguCisgKgorICog VGhpcyB0YWJsZSB3YXMgcHV0IHRvZ2V0aGVyIGJ5IFZpcnR1YWxCb3guICBJdCdzIGJhc2VkIG9u IHRoZSBpbmZvcm1hdGlvbiBpbgorICogL3Vzci9zaGFyZS9YMTEveGtiL2tleWNvZGVzL2V2ZGV2 IHVzaW5nIHRoZSB4X2tleWNvZGVfdG9fcGNfa2V5Y29kZSB0YWJsZQorICogdG8gZ2V0IHRoZSBw YyBrZXljb2Rlcy4KKyAqLworCitzdGF0aWMgY29uc3QgdWludDhfdCBldmRldl9rZXljb2RlX3Rv X3BjX2tleWNvZGVbNjFdID0geworICAgMHgwLCAgICAgICAgIC8qICA5NyBFVkRFViAtIFJPICAg KCJJbnRlcm5ldCIgS2V5Ym9hcmRzKSAqLworICAgMHgwLCAgICAgICAgIC8qICA5OCBFVkRFViAt IEtBVEEgKEthdGFrYW5hKSAqLworICAgMHgwLCAgICAgICAgIC8qICA5OSBFVkRFViAtIEhJUkEg KEhpcmFnYW5hKSAqLworICAgMHg3OSwgICAgICAgIC8qIDEwMCBFVkRFViAtIEhFTksgKEhlbmth bikgKi8KKyAgIDB4NzAsICAgICAgICAvKiAxMDEgRVZERVYgLSBIS1RHIChIaXJhZ2FuYS9LYXRh a2FuYSB0b2dnbGUpICovCisgICAweDdiLCAgICAgICAgLyogMTAyIEVWREVWIC0gTVVIRSAoTXVo ZW5rYW4pICovCisgICAweDAsICAgICAgICAgLyogMTAzIEVWREVWIC0gSlBDTSAoS1BKUENvbW1h KSAqLworICAgMHg5YywgICAgICAgIC8qIDEwNCBFVkRFViAtIEtQRU4gKi8KKyAgIDB4OWQsICAg ICAgICAvKiAxMDUgRVZERVYgLSBSQ1RMICovCisgICAweGI1LCAgICAgICAgLyogMTA2IEVWREVW IC0gS1BEViAqLworICAgMHhiNywgICAgICAgIC8qIDEwNyBFVkRFViAtIFBSU0MgKioqRklYTUUq KiogKi8KKyAgIDB4YjgsICAgICAgICAvKiAxMDggRVZERVYgLSBSQUxUICovCisgICAweDAsICAg ICAgICAgLyogMTA5IEVWREVWIC0gTE5GRCAoIkludGVybmV0IiBLZXlib2FyZHMpICovCisgICAw eGM3LCAgICAgICAgLyogMTEwIEVWREVWIC0gSE9NRSAqKipGSVhNRSoqKiAqLworICAgMHhjOCwg ICAgICAgIC8qIDExMSBFVkRFViAtIFVQICAgKi8KKyAgIDB4YzksICAgICAgICAvKiAxMTIgRVZE RVYgLSBQR1VQICovCisgICAweGNiLCAgICAgICAgLyogMTEzIEVWREVWIC0gTEVGVCAqLworICAg MHhjZCwgICAgICAgIC8qIDExNCBFVkRFViAtIFJHSFQgKi8KKyAgIDB4Y2YsICAgICAgICAvKiAx MTUgRVZERVYgLSBFTkQgICovCisgICAweGQwLCAgICAgICAgLyogMTE2IEVWREVWIC0gRE9XTiAq LworICAgMHhkMSwgICAgICAgIC8qIDExNyBFVkRFViAtIFBHRE4gKi8KKyAgIDB4ZDIsICAgICAg ICAvKiAxMTggRVZERVYgLSBJTlMgICovCisgICAweGQzLCAgICAgICAgLyogMTE5IEVWREVWIC0g REVMRSAqLworICAgMHgwLCAgICAgICAgIC8qIDEyMCBFVkRFViAtIEkxMjAgKCJJbnRlcm5ldCIg S2V5Ym9hcmRzKSAqLworICAgMHgwLCAgICAgICAgIC8qIDEyMSBFVkRFViAtIE1VVEUgKi8KKyAg IDB4MCwgICAgICAgICAvKiAxMjIgRVZERVYgLSBWT0wtICovCisgICAweDAsICAgICAgICAgLyog MTIzIEVWREVWIC0gVk9MKyAqLworICAgMHgwLCAgICAgICAgIC8qIDEyNCBFVkRFViAtIFBPV1Ig Ki8KKyAgIDB4MCwgICAgICAgICAvKiAxMjUgRVZERVYgLSBLUEVRICovCisgICAweDAsICAgICAg ICAgLyogMTI2IEVWREVWIC0gSTEyNiAoIkludGVybmV0IiBLZXlib2FyZHMpICovCisgICAweDAs ICAgICAgICAgLyogMTI3IEVWREVWIC0gUEFVUyAqLworICAgMHgwLCAgICAgICAgIC8qIDEyOCBF VkRFViAtID8/Pz8gKi8KKyAgIDB4MCwgICAgICAgICAvKiAxMjkgRVZERVYgLSBJMTI5ICgiSW50 ZXJuZXQiIEtleWJvYXJkcykgKi8KKyAgIDB4ZjEsICAgICAgICAvKiAxMzAgRVZERVYgLSBITkdM IChLb3JlYW4gSGFuZ3VsIExhdGluIHRvZ2dsZSkgKi8KKyAgIDB4ZjIsICAgICAgICAvKiAxMzEg RVZERVYgLSBISkNWIChLb3JlYW4gSGFuZ3VsIEhhbmphIHRvZ2dsZSkgKi8KKyAgIDB4N2QsICAg ICAgICAvKiAxMzIgRVZERVYgLSBBRTEzIChZZW4pICovCisgICAweGRiLCAgICAgICAgLyogMTMz IEVWREVWIC0gTFdJTiAqLworICAgMHhkYywgICAgICAgIC8qIDEzNCBFVkRFViAtIFJXSU4gKi8K KyAgIDB4ZGQsICAgICAgICAvKiAxMzUgRVZERVYgLSBNRU5VICovCisgICAweDAsICAgICAgICAg LyogMTM2IEVWREVWIC0gU1RPUCAqLworICAgMHgwLCAgICAgICAgIC8qIDEzNyBFVkRFViAtIEFH QUkgKi8KKyAgIDB4MCwgICAgICAgICAvKiAxMzggRVZERVYgLSBQUk9QICovCisgICAweDAsICAg ICAgICAgLyogMTM5IEVWREVWIC0gVU5ETyAqLworICAgMHgwLCAgICAgICAgIC8qIDE0MCBFVkRF ViAtIEZSTlQgKi8KKyAgIDB4MCwgICAgICAgICAvKiAxNDEgRVZERVYgLSBDT1BZICovCisgICAw eDAsICAgICAgICAgLyogMTQyIEVWREVWIC0gT1BFTiAqLworICAgMHgwLCAgICAgICAgIC8qIDE0 MyBFVkRFViAtIFBBU1QgKi8KKyAgIDB4MCwgICAgICAgICAvKiAxNDQgRVZERVYgLSBGSU5EICov CisgICAweDAsICAgICAgICAgLyogMTQ1IEVWREVWIC0gQ1VUICAqLworICAgMHgwLCAgICAgICAg IC8qIDE0NiBFVkRFViAtIEhFTFAgKi8KKyAgIDB4MCwgICAgICAgICAvKiAxNDcgRVZERVYgLSBJ MTQ3ICovCisgICAweDAsICAgICAgICAgLyogMTQ4IEVWREVWIC0gSTE0OCAqLworICAgMHgwLCAg ICAgICAgIC8qIDE0OSBFVkRFViAtIEkxNDkgKi8KKyAgIDB4MCwgICAgICAgICAvKiAxNTAgRVZE RVYgLSBJMTUwICovCisgICAweDAsICAgICAgICAgLyogMTUxIEVWREVWIC0gSTE1MSAqLworICAg MHgwLCAgICAgICAgIC8qIDE1MiBFVkRFViAtIEkxNTIgKi8KKyAgIDB4MCwgICAgICAgICAvKiAx NTMgRVZERVYgLSBJMTUzICovCisgICAweDAsICAgICAgICAgLyogMTU0IEVWREVWIC0gSTE1NCAq LworICAgMHgwLCAgICAgICAgIC8qIDE1NSBFVkRFViAtIEkxNTYgKi8KKyAgIDB4MCwgICAgICAg ICAvKiAxNTYgRVZERVYgLSBJMTU3ICovCisgICAweDAsICAgICAgICAgLyogMTU3IEVWREVWIC0g STE1OCAqLworfTsKKworc3RhdGljIGJvb2wgc3Ryc3RhcnRzKGNvbnN0IGNoYXIgKmxocywgY29u c3QgY2hhciAqcmhzKQoreworICAgIGlmIChzdHJsZW4obGhzKSA8IHN0cmxlbihyaHMpKQorICAg ICAgICByZXR1cm4gZmFsc2U7CisgICAgcmV0dXJuIG1lbWNtcChsaHMsIHJocywgc3RybGVuKHJo cykpID09IDA7Cit9CisKK3N0YXRpYyBib29sIGNoZWNrX2Zvcl9ldmRldih2b2lkKQoreworICAg IFNETF9TeXNXTWluZm8gaW5mbzsKKyAgICBYa2JEZXNjUHRyIGRlc2MgPSBOVUxMOworICAgIGJv b2wgaGFzX2V2ZGV2ID0gRkFMU0U7CisgICAgY29uc3QgY2hhciAqa2V5Y29kZXM7CisKKyAgICBT RExfVkVSU0lPTigmaW5mby52ZXJzaW9uKTsKKyAgICBpZiAoIVNETF9HZXRXTUluZm8oJmluZm8p KQorICAgICAgICBnb3RvIG91dDsKKworICAgIGRlc2MgPSBYa2JHZXRLZXlib2FyZCAoaW5mby5p bmZvLngxMS5kaXNwbGF5LAorICAgICAgICAgICAgICAgIFhrYkFsbENvbXBvbmVudHNNYXNrLAor ICAgICAgICAgICAgICAgIFhrYlVzZUNvcmVLYmQpOworICAgIGlmICghZGVzYykKKyAgICAgICAg Z290byBvdXQ7CisKKyAgICBrZXljb2RlcyA9IFhHZXRBdG9tTmFtZShpbmZvLmluZm8ueDExLmRp c3BsYXksIGRlc2MtPm5hbWVzLT5rZXljb2Rlcyk7CisgICAgaWYgKGtleWNvZGVzID09IE5VTEwp CisgICAgICAgIGZwcmludGYoc3RkZXJyLCAicWVtdTogd2FybmluZzogY291bGQgbm90IGxvb2t1 cCBrZXljb2RlIG5hbWVcbiIpOworICAgIGVsc2UgaWYgKHN0cnN0YXJ0cyhrZXljb2RlcywgImV2 ZGV2XyIpKQorICAgICAgICBoYXNfZXZkZXYgPSBUUlVFOworICAgIGVsc2UgaWYgKCFzdHJzdGFy dHMoa2V5Y29kZXMsICJ4ZnJlZTg2XyIpKQorICAgICAgICBmcHJpbnRmKHN0ZGVyciwgInFlbXU6 IHdhcm5pbmc6IHVua25vd24ga2V5Y29kZXMgYCVzJ1xuIiwga2V5Y29kZXMpOworCisgICAgWGti RnJlZUNsaWVudE1hcChkZXNjLCBYa2JHQk5fQWxsQ29tcG9uZW50c01hc2ssIFRydWUpOworCitv dXQ6CisgICAgcmV0dXJuIGhhc19ldmRldjsKK30KKworCit1aW50OF90IF90cmFuc2xhdGVfa2V5 Y29kZShpbnQga2V5Y29kZSkKIHsKLQlyZXR1cm4geF9rZXljb2RlX3RvX3BjX2tleWNvZGVba2V5 XTsKKyAgICBpZiAoa2V5Y29kZSA8IDkpCisgICAgICAgIGtleWNvZGUgPSAwOworICAgIGVsc2Ug aWYgKGtleWNvZGUgPCA5NykKKyAgICAgICAga2V5Y29kZSAtPSA4OyAvKiBqdXN0IGFuIG9mZnNl dCAqLworICAgIGVsc2UgaWYgKGtleWNvZGUgPCAxNTgpIHsKKyAgICAgICAgaWYgKGNoZWNrX2Zv cl9ldmRldigpKQorICAgICAgICAgICAga2V5Y29kZSA9IGV2ZGV2X2tleWNvZGVfdG9fcGNfa2V5 Y29kZVtrZXljb2RlIC0gOTddOworICAgICAgICBlbHNlCisgICAgICAgICAgICBrZXljb2RlID0g eF9rZXljb2RlX3RvX3BjX2tleWNvZGVba2V5Y29kZSAtIDk3XTsKKyAgICB9IGVsc2UgaWYgKGtl eWNvZGUgPT0gMjA4KSAvKiBIaXJhZ2FuYV9LYXRha2FuYSAqLworICAgICAgICBrZXljb2RlID0g MHg3MDsKKyAgICBlbHNlIGlmIChrZXljb2RlID09IDIxMSkgLyogYmFja3NsYXNoICovCisgICAg ICAgIGtleWNvZGUgPSAweDczOworICAgIGVsc2UKKyAgICAgICAga2V5Y29kZSA9IDA7CisKKyAg ICByZXR1cm4ga2V5Y29kZTsKIH0K ------=_Part_128981_25844526.1222297827919--