--Boundary-=_nWlrBbmQBhCDarzOwKkYHIDdqSCD Content-Type: text/plain Content-Transfer-Encoding: 8bit -----BEGIN PGP SIGNED MESSAGE----- Man I must be overtired Here's the patch... for real this time :) - -- George Staikos -----BEGIN PGP SIGNATURE----- Version: PGP 6.5.2 iQEVAwUBOJQjW/aardfOEhQRAQFRCwf9HvZjIc8SpBcOj5NkN2m2QnqtPcK9Yuel E+2dpjKAQZBYk8Rsm24QR887bM1VUUvKRMfPgraze0fOmX1uz9LxqJnbUSGQnPPX PB0cCylPbgyuSrIWn3MfzSQdEwepMJgUMO90t1Y+NMThWcBU8FO6SzPPI2/U4q9b IB4alxW9hgV1KAig7T/A1eQKyo6AqOPNtHkyJ51gVprHzd2N6HnSgTKDIcIlBF9X rXIlZ/Jzr3It7ThKGydmeRYTEZ7Tn1vEM+zOXk3+My7wJvXE3zog77wKznnmN4rr LS9t7f8mQ7OShwP6Nv7S0o5t0oNrTUvlzNsj/NIADW+8wCKrjP0DZw== =/E+F -----END PGP SIGNATURE----- --Boundary-=_nWlrBbmQBhCDarzOwKkYHIDdqSCD Content-Type: text/plain; name="kmail-cust-mime.patch" Content-Transfer-Encoding: base64 Content-Description: support custom mime headers Content-Disposition: attachment; filename="kmail-cust-mime.patch" ZGlmZiAtdSAteCAqfiAteCAqLm1vYyAteCAqLm8ga21haWwub3JpZy9rbWNvbXBvc2V3aW4uY3Bw IGttYWlsL2ttY29tcG9zZXdpbi5jcHAKLS0tIGttYWlsLm9yaWcva21jb21wb3Nld2luLmNwcAlG cmkgSmFuIDI4IDAzOjU3OjE2IDIwMDAKKysrIGttYWlsL2ttY29tcG9zZXdpbi5jcHAJU3VuIEph biAzMCAwNjoxODozNiAyMDAwCkBAIC0yNTgsNiArMjU4LDIzIEBACiAgIGNvbmZpZy0+c2V0R3Jv dXAoIkdlbmVyYWwiKTsKICAgbUV4dEVkaXRvciA9IGNvbmZpZy0+cmVhZEVudHJ5KCJleHRlcm5h bC1lZGl0b3IiLCBERUZBVUxUX0VESVRPUl9TVFIpOwogICB1c2VFeHRFZGl0b3IgPSBjb25maWct PnJlYWRCb29sRW50cnkoInVzZS1leHRlcm5hbC1lZGl0b3IiLCBGQUxTRSk7CisKKyAgaW50IGhl YWRlckNvdW50ID0gY29uZmlnLT5yZWFkTnVtRW50cnkoIm1pbWUtaGVhZGVyLWNvdW50IiwgMCk7 CisgIG1DdXN0SGVhZGVycy5jbGVhcigpOworICBtQ3VzdEhlYWRlcnMuc2V0QXV0b0RlbGV0ZSh0 cnVlKTsKKyAgZm9yIChpbnQgaSA9IDA7IGkgPCBoZWFkZXJDb3VudDsgaSsrKSB7CisgICAgUVN0 cmluZyB0aGlzR3JvdXA7CisgICAgX1N0cmluZ1BhaXIgKnRoaXNJdGVtID0gbmV3IF9TdHJpbmdQ YWlyOworICAgIHRoaXNHcm91cC5zcHJpbnRmKCJNaW1lICMlZCIsIGkpOworICAgIGNvbmZpZy0+ c2V0R3JvdXAodGhpc0dyb3VwKTsKKyAgICB0aGlzSXRlbS0+bmFtZSA9IGNvbmZpZy0+cmVhZEVu dHJ5KCJuYW1lIiwgIiIpOworICAgIGlmICgodGhpc0l0ZW0tPm5hbWUpLmxlbmd0aCgpID4gMCkg eworICAgICAgdGhpc0l0ZW0tPnZhbHVlID0gY29uZmlnLT5yZWFkRW50cnkoInZhbHVlIiwgIiIp OworICAgICAgbUN1c3RIZWFkZXJzLmFwcGVuZCh0aGlzSXRlbSk7CisgICAgfSBlbHNlIHsKKyAg ICAgIGRlbGV0ZSB0aGlzSXRlbTsKKyAgICB9CisgIH0KICNlbmRpZgogCiAgIGNvbmZpZy0+c2V0 R3JvdXAoIkZvbnRzIik7CkBAIC05MDQsNiArOTIxLDE2IEBACiAgICAgbU1zZy0+c2V0SGVhZGVy RmllbGQoIlgtUFJJT1JJVFkiLCAiMiAoSGlnaCkiKTsKICAgICBtTXNnLT5zZXRIZWFkZXJGaWVs ZCgiUHJpb3JpdHkiLCAidXJnZW50Iik7CiAgIH0KKworI2lmbmRlZiBLUk4KKyAgX1N0cmluZ1Bh aXIgKnBDSDsKKyAgZm9yIChwQ0ggID0gbUN1c3RIZWFkZXJzLmZpcnN0KCk7CisgICAgICAgcENI ICE9IE5VTEw7CisgICAgICAgcENIICA9IG1DdXN0SGVhZGVycy5uZXh0KCkpIHsKKyAgICBtTXNn LT5zZXRIZWFkZXJGaWVsZChwQ0gtPm5hbWUsIHBDSC0+dmFsdWUpOworICB9CisKKyNlbmRpZgog CiAgIGlmKG1BdG1MaXN0LmNvdW50KCkgPD0gMCkKICAgewpkaWZmIC11IC14ICp+IC14ICoubW9j IC14ICoubyBrbWFpbC5vcmlnL2ttY29tcG9zZXdpbi5oIGttYWlsL2ttY29tcG9zZXdpbi5oCi0t LSBrbWFpbC5vcmlnL2ttY29tcG9zZXdpbi5oCUZyaSBKYW4gMjggMDM6MDY6MjEgMjAwMAorKysg a21haWwva21jb21wb3Nld2luLmgJU3VuIEphbiAzMCAwNjoxNjo0MiAyMDAwCkBAIC0yMyw2ICsy MywxNSBAQAogI2luY2x1ZGUgImttdG9wd2lkZ2V0LmgiCiAKIAorI2lmbmRlZiBLUk4KK2NsYXNz IF9TdHJpbmdQYWlyIHsKKyBwdWJsaWM6CisgICBRU3RyaW5nIG5hbWU7CisgICBRU3RyaW5nIHZh bHVlOworfTsKKyNlbmRpZgorCisKIAogY2xhc3MgUUxpbmVFZGl0OwogY2xhc3MgUUdyaWRMYXlv dXQ7CkBAIC0zNDEsNiArMzUwLDcgQEAKICNpZm5kZWYgS1JOCiAgIFFTdHJpbmcgbUV4dEVkaXRv cjsKICAgYm9vbCB1c2VFeHRFZGl0b3I7CisgIFFMaXN0PF9TdHJpbmdQYWlyPiBtQ3VzdEhlYWRl cnM7CiAjZW5kaWYKICAgaW50IG1OdW1IZWFkZXJzOwogICBpbnQgbUxpbmVCcmVhazsKZGlmZiAt dSAteCAqfiAteCAqLm1vYyAteCAqLm8ga21haWwub3JpZy9rbXNldHRpbmdzLmNwcCBrbWFpbC9r bXNldHRpbmdzLmNwcAotLS0ga21haWwub3JpZy9rbXNldHRpbmdzLmNwcAlGcmkgSmFuIDI4IDEz OjU5OjA3IDIwMDAKKysrIGttYWlsL2ttc2V0dGluZ3MuY3BwCVN1biBKYW4gMzAgMDM6NTY6MDYg MjAwMApAQCAtNzAsNiArNzAsNyBAQAogICBjcmVhdGVUYWJOZXR3b3JrKHRoaXMpOwogICBjcmVh dGVUYWJBcHBlYXJhbmNlKHRoaXMpOwogICBjcmVhdGVUYWJDb21wb3Nlcih0aGlzKTsKKyAgY3Jl YXRlVGFiTWltZSh0aGlzKTsKICAgY3JlYXRlVGFiTWlzYyh0aGlzKTsKICAgY3JlYXRlVGFiUGdw KHRoaXMpOwogfQpAQCAtMTc3LDEwICsxNzgsOTQgQEAKIAogCiAvLy0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tCit2b2lkIEtNU2V0dGluZ3M6OmNyZWF0ZVRhYk1pbWUoUVdpZGdldCogcGFyZW50KQorewor ICBRV2lkZ2V0ICp0YWIgPSBuZXcgUVdpZGdldChwYXJlbnQpOworICBRQm94TGF5b3V0ICpib3gg PSBuZXcgUUJveExheW91dCh0YWIsIFFCb3hMYXlvdXQ6OlRvcFRvQm90dG9tLCAyKTsKKyAgUVB1 c2hCdXR0b24gKmJOZXcsICpiRGVsOworICBRR3JvdXBCb3ggKmdycCA9IG5ldyBRR3JvdXBCb3go aTE4bigiQ3VzdG9tIFRhZ3MiKSwgdGFiKTsKKyAgUUdyaWRMYXlvdXQgKmdyaWQgPSBuZXcgUUdy aWRMYXlvdXQoZ3JwLCA4LCA0LCAyMCwgOCk7CisgIFFMYWJlbCAqbWhBYm91dCA9IG5ldyBRTGFi ZWwoZ3JwKTsgIAorICBRTGFiZWwgKm1oTmFtZSA9IG5ldyBRTGFiZWwoZ3JwKTsgIAorICBRTGFi ZWwgKm1oVmFsdWUgPSBuZXcgUUxhYmVsKGdycCk7CisgIEtDb25maWcqIGNvbmZpZyA9IGFwcC0+ Y29uZmlnKCk7CisKKyAgY3VyTUhJdGVtID0gTlVMTDsgICAgLy8gbm90IHBvaW50aW5nIHRvIGFu eXRoaW5nIHlldAorCisgIGJveC0+YWRkV2lkZ2V0KGdycCk7CisKKyAgbWhBYm91dC0+c2V0VGV4 dChpMThuKCJEZWZpbmUgY3VzdG9tIG1pbWUgaGVhZGVyIHRhZ3MgZm9yIG91dGdvaW5nIGVtYWls czoiKSk7CisgIG1oQWJvdXQtPnNldE1pbmltdW1TaXplKG1oQWJvdXQtPnNpemUoKSk7CisgIGdy aWQtPmFkZE11bHRpQ2VsbFdpZGdldChtaEFib3V0LCAwLCAwLCAwLCAzKTsKKworICB0YWdMaXN0 ID0gbmV3IFFMaXN0VmlldyhncnAsICJMc3RUYWdzIik7CisgIHRhZ0xpc3QtPmFkZENvbHVtbihR U3RyaW5nKCJOYW1lIiksIHRhZ0xpc3QtPndpZHRoKCkvMik7CisgIHRhZ0xpc3QtPmFkZENvbHVt bihRU3RyaW5nKCJWYWx1ZSIpLCB0YWdMaXN0LT53aWR0aCgpLzIpOworICB0YWdMaXN0LT5zZXRD b2x1bW5XaWR0aE1vZGUoMCwgUUxpc3RWaWV3OjpNYXhpbXVtKTsKKyAgdGFnTGlzdC0+c2V0Q29s dW1uV2lkdGhNb2RlKDEsIFFMaXN0Vmlldzo6TWF4aW11bSk7CisgIHRhZ0xpc3QtPnNldE11bHRp U2VsZWN0aW9uKGZhbHNlKTsKKyAgZ3JpZC0+YWRkTXVsdGlDZWxsV2lkZ2V0KHRhZ0xpc3QsIDEs IDQsIDAsIDMpOworICB0YWdMaXN0LT5zZXRNdWx0aVNlbGVjdGlvbihmYWxzZSk7CisKKyAgY29u bmVjdCh0YWdMaXN0LFNJR05BTChzZWxlY3Rpb25DaGFuZ2VkKCkpLHRoaXMsU0xPVChzbG90TUhT ZWxlY3Rpb25DaGFuZ2VkKCkpKTsKKworICBtaE5hbWUtPnNldFRleHQoaTE4bigiTmFtZToiKSk7 CisgIG1oTmFtZS0+c2V0TWluaW11bVNpemUobWhOYW1lLT5zaXplKCkpOworICBncmlkLT5hZGRX aWRnZXQobWhOYW1lLCA1LCAwKTsKKyAgdGFnTmFtZUVkaXQgPSBuZXcgUUxpbmVFZGl0KGdycCk7 CisgIHRhZ05hbWVFZGl0LT5zZXRNaW5pbXVtU2l6ZSgxMDAsIG1oTmFtZS0+aGVpZ2h0KCkrMik7 CisgIHRhZ05hbWVFZGl0LT5zZXRNYXhpbXVtU2l6ZSgxMDAwLCBtaE5hbWUtPmhlaWdodCgpKzIp OworICBncmlkLT5hZGRNdWx0aUNlbGxXaWRnZXQodGFnTmFtZUVkaXQsIDUsIDUsIDEsIDMpOwor ICBjb25uZWN0KHRhZ05hbWVFZGl0LFNJR05BTCh0ZXh0Q2hhbmdlZChjb25zdCBRU3RyaW5nJikp LHRoaXMsU0xPVChzbG90TUhOYW1lQ2hhbmdlZChjb25zdCBRU3RyaW5nJikpKTsKKworICBtaFZh bHVlLT5zZXRUZXh0KGkxOG4oIlZhbHVlOiIpKTsKKyAgbWhWYWx1ZS0+c2V0TWluaW11bVNpemUo bWhWYWx1ZS0+c2l6ZSgpKTsKKyAgZ3JpZC0+YWRkV2lkZ2V0KG1oVmFsdWUsIDYsIDApOworICB0 YWdWYWx1ZUVkaXQgPSBuZXcgUUxpbmVFZGl0KGdycCk7CisgIHRhZ1ZhbHVlRWRpdC0+c2V0TWlu aW11bVNpemUoMTAwLCBtaFZhbHVlLT5oZWlnaHQoKSsyKTsKKyAgdGFnVmFsdWVFZGl0LT5zZXRN YXhpbXVtU2l6ZSgxMDAwLCBtaFZhbHVlLT5oZWlnaHQoKSsyKTsKKyAgZ3JpZC0+YWRkTXVsdGlD ZWxsV2lkZ2V0KHRhZ1ZhbHVlRWRpdCwgNiwgNiwgMSwgMyk7CisgIGNvbm5lY3QodGFnVmFsdWVF ZGl0LFNJR05BTCh0ZXh0Q2hhbmdlZChjb25zdCBRU3RyaW5nJikpLHRoaXMsU0xPVChzbG90TUhW YWx1ZUNoYW5nZWQoY29uc3QgUVN0cmluZyYpKSk7CisKKyAgdGFnTmFtZUVkaXQtPnNldEVuYWJs ZWQoZmFsc2UpOworICB0YWdWYWx1ZUVkaXQtPnNldEVuYWJsZWQoZmFsc2UpOworCisgIGJOZXcg PSBuZXcgUVB1c2hCdXR0b24oaTE4bigiJk5ldyIpLCBncnApOworICBncmlkLT5hZGRXaWRnZXQo Yk5ldywgNywgMik7CisgIGJEZWwgPSBuZXcgUVB1c2hCdXR0b24oaTE4bigiRCZlbGV0ZSIpLCBn cnApOworICBncmlkLT5hZGRXaWRnZXQoYkRlbCwgNywgMyk7CisKKyAgY29ubmVjdChiTmV3LFNJ R05BTChjbGlja2VkKCkpLHRoaXMsU0xPVChzbG90TUhOZXcoKSkpOworICBjb25uZWN0KGJEZWws U0lHTkFMKGNsaWNrZWQoKSksdGhpcyxTTE9UKHNsb3RNSERlbGV0ZSgpKSk7CisKKyAgLy8gcmVh ZCBpbiBhbGwgdGhlIHZhbHVlcworICBjb25maWctPnNldEdyb3VwKCJHZW5lcmFsIik7CisgIGlu dCBjb3VudCA9IGNvbmZpZy0+cmVhZE51bUVudHJ5KCJtaW1lLWhlYWRlci1jb3VudCIsIDApOwor ICBmb3IgKGludCBpID0gMDsgaSA8IGNvdW50OyBpKyspIHsKKyAgICBRU3RyaW5nIGdyb3VwLCB0 aGlzTmFtZSwgdGhpc1ZhbHVlOworICAgIGdyb3VwLnNwcmludGYoIk1pbWUgIyVkIiwgaSk7Cisg ICAgY29uZmlnLT5zZXRHcm91cChncm91cCk7CisgICAgdGhpc05hbWUgPSBjb25maWctPnJlYWRF bnRyeSgibmFtZSIsICIiKTsKKyAgICB0aGlzVmFsdWUgPSBjb25maWctPnJlYWRFbnRyeSgidmFs dWUiLCAiIik7CisgICAgaWYgKHRoaXNOYW1lLmxlbmd0aCgpID4gMCkgeworICAgICAgbmV3IFFM aXN0Vmlld0l0ZW0odGFnTGlzdCwgdGhpc05hbWUsIHRoaXNWYWx1ZSk7CisgICAgfQorICB9CisK KyAgYWRkVGFiKHRhYiwgaTE4bigiTWltZSBIZWFkZXJzIikpOworICBncmlkLT5hY3RpdmF0ZSgp OworICBncnAtPmFkanVzdFNpemUoKTsKKyAgYm94LT5hZGRTdHJldGNoKDEwMCk7CisgIGJveC0+ YWN0aXZhdGUoKTsKKyAgdGFiLT5hZGp1c3RTaXplKCk7Cit9CisKKworLy8tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLQogdm9pZCBLTVNldHRpbmdzOjpjcmVhdGVUYWJJZGVudGl0eShRV2lkZ2V0KiBwYXJl bnQpCiB7CiAgIFFXaWRnZXQqIHRhYiA9IG5ldyBRV2lkZ2V0KHBhcmVudCk7Ci0gIFFHcmlkTGF5 b3V0KiBncmlkID0gbmV3IFFHcmlkTGF5b3V0KHRhYiwgNywgMywgMjAsIDYpOworICBRR3JpZExh eW91dCogZ3JpZCA9IG5ldyBRR3JpZExheW91dCh0YWIsIDYsIDMsIDIwLCA2KTsKICAgUVB1c2hC dXR0b24qIGJ1dHRvbjsKIAogICBuYW1lRWRpdCA9IGNyZWF0ZUxhYmVsZWRFbnRyeSh0YWIsIGdy aWQsIGkxOG4oIk5hbWU6IiksIApAQCAtODQxLDYgKzkyNiw4IEBACiAvLyAgRklYTUU6CiAvLyAg VGhlcmUgaXMgYSBwcm9ibGVtIGhlcmUuICBJZiBhbiBpbnRlcmFjdGl2ZSBjb25zb2xlIHByb2dy YW0gaXMgZ2l2ZW4sCiAvLyAgdGhlIHByb2dyYW0gaXMgc3RvcHBlZC4gIEhvdyBkbyB3ZSB3b3Jr IGFyb3VuZCB0aGlzPworLy8gIEZJWE1FOgorLy8gIFVzZSB0aGUgS0RFIGxhdW5jaGluZyBzZXJ2 aWNlIGluc3RlYWQKIC8vCiAKIGNsYXNzIEV4dEVkaXRMYXVuY2ggewpAQCAtOTMxLDYgKzEwMTgs NzcgQEAKICAgCiB9CiAKKworLy8tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQordm9pZCBLTVNldHRpbmdz OjpzbG90TUhWYWx1ZUNoYW5nZWQoY29uc3QgUVN0cmluZyYgeCkKK3sKKworICBjdXJNSEl0ZW0t PnNldFRleHQoMSwgeCk7CisKK30KKworCisvLy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCit2b2lkIEtN U2V0dGluZ3M6OnNsb3RNSE5hbWVDaGFuZ2VkKGNvbnN0IFFTdHJpbmcmIHgpCit7CisKKyAgY3Vy TUhJdGVtLT5zZXRUZXh0KDAsIHgpOworCit9CisKKworLy8tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQor dm9pZCBLTVNldHRpbmdzOjpzbG90TUhTZWxlY3Rpb25DaGFuZ2VkKCkKK3sKKworICAvLyBnZXQg dGV4dCBmcm9tIHRoZSBzZWxlY3Rpb24KKyAgY3VyTUhJdGVtID0gdGFnTGlzdC0+c2VsZWN0ZWRJ dGVtKCk7CisKKyAgLy8gcHV0IGl0IGluIHRoZSBlbnRyeSBmaWVsZHMKKyAgdGFnTmFtZUVkaXQt PnNldFRleHQoY3VyTUhJdGVtLT50ZXh0KDApKTsKKyAgdGFnVmFsdWVFZGl0LT5zZXRUZXh0KGN1 ck1ISXRlbS0+dGV4dCgxKSk7CisKKyAgLy8gZW5hYmxlIHRoZW0KKyAgdGFnTmFtZUVkaXQtPnNl dEVuYWJsZWQodHJ1ZSk7CisgIHRhZ1ZhbHVlRWRpdC0+c2V0RW5hYmxlZCh0cnVlKTsKKworfQor CisKKy8vLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KK3ZvaWQgS01TZXR0aW5nczo6c2xvdE1ITmV3KCkK K3sKKworICBjdXJNSEl0ZW0gPSBuZXcgUUxpc3RWaWV3SXRlbSh0YWdMaXN0LCBRU3RyaW5nKCIi KSwgUVN0cmluZygiIikpOworICB0YWdOYW1lRWRpdC0+c2V0RW5hYmxlZCh0cnVlKTsKKyAgdGFn VmFsdWVFZGl0LT5zZXRFbmFibGVkKHRydWUpOworICB0YWdMaXN0LT5zZXRDdXJyZW50SXRlbShj dXJNSEl0ZW0pOworICB0YWdOYW1lRWRpdC0+c2V0Rm9jdXMoKTsKKworfQorCisKKy8vLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0KK3ZvaWQgS01TZXR0aW5nczo6c2xvdE1IRGVsZXRlKCkKK3sKKworICAv LyBWZXJpZnkgdGhhdCBpdCBpcyBzZWxlY3RlZAorICBpZiAoIWN1ck1ISXRlbSkKKyAgICByZXR1 cm47CisKKyAgLy8gY2xlYXIgdGhlIGVudHJ5IGZpZWxkcworICB0YWdOYW1lRWRpdC0+c2V0VGV4 dCgiIik7CisgIHRhZ1ZhbHVlRWRpdC0+c2V0VGV4dCgiIik7CisgIHRhZ05hbWVFZGl0LT5zZXRF bmFibGVkKGZhbHNlKTsKKyAgdGFnVmFsdWVFZGl0LT5zZXRFbmFibGVkKGZhbHNlKTsKKworICAv LyBSZW1vdmUgdGhlIGl0ZW0KKyAgdGFnTGlzdC0+dGFrZUl0ZW0oY3VyTUhJdGVtKTsKKyAgY3Vy TUhJdGVtID0gTlVMTDsKKworfQorCisKIC8vLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIHZvaWQgS01T ZXR0aW5nczo6YWNjb3VudFNlbGVjdGVkKGludCxpbnQpCiB7CkBAIC0xMTM4LDYgKzEyOTYsMjcg QEAKICAgY29uZmlnLT53cml0ZUVudHJ5KCJzZW5kLXJlY2VpcHRzIiwgc2VuZFJlY2VpcHRzLT5p c0NoZWNrZWQoKSk7CiAgIGNvbmZpZy0+d3JpdGVFbnRyeSgiZXh0ZXJuYWwtZWRpdG9yIiwgZXh0 RWRpdG9yRWRpdC0+dGV4dCgpKTsKICAgY29uZmlnLT53cml0ZUVudHJ5KCJ1c2UtZXh0ZXJuYWwt ZWRpdG9yIiwgdXNlRXh0ZXJuYWxFZGl0b3ItPmlzQ2hlY2tlZCgpKTsKKworICAvLy0tLS0tIG1p bWUgaGVhZGVycworICBpbnQgY291bnQgPSB0YWdMaXN0LT5jaGlsZENvdW50KCk7CisgIGludCBj b3VudERlbHRhID0gMDsKKyAgZm9yIChpbnQgaSA9IDA7IGkgPCBjb3VudDsgaSsrKSB7CisgICAg UVN0cmluZyBncm91cE5hbWU7CisgICAgUUxpc3RWaWV3SXRlbSAqdGhpc0NoaWxkOworCisgICAg Z3JvdXBOYW1lLnNwcmludGYoIk1pbWUgIyVkIiwgaSk7IAorICAgIGNvbmZpZy0+c2V0R3JvdXAo Z3JvdXBOYW1lKTsKKyAgICB0aGlzQ2hpbGQgPSB0YWdMaXN0LT5maXJzdENoaWxkKCk7CisgICAg aWYgKHRoaXNDaGlsZC0+dGV4dCgwKSAmJiBzdHJsZW4odGhpc0NoaWxkLT50ZXh0KDApKSA+IDAp IHsKKyAgICAgIGNvbmZpZy0+d3JpdGVFbnRyeSgibmFtZSIsIHRoaXNDaGlsZC0+dGV4dCgwKSk7 CisgICAgICBjb25maWctPndyaXRlRW50cnkoInZhbHVlIiwgdGhpc0NoaWxkLT50ZXh0KDEpKTsK KyAgICB9IGVsc2UgeworICAgICAgY291bnREZWx0YSsrOworICAgIH0KKyAgICB0YWdMaXN0LT50 YWtlSXRlbSh0aGlzQ2hpbGQpOworICB9CisgIGNvbmZpZy0+c2V0R3JvdXAoIkdlbmVyYWwiKTsK KyAgY29uZmlnLT53cml0ZUVudHJ5KCJtaW1lLWhlYWRlci1jb3VudCIsIGNvdW50IC0gY291bnRE ZWx0YSk7CiAKICAgLy8tLS0tLQogICBjb25maWctPnN5bmMoKTsKZGlmZiAtdSAteCAqfiAteCAq Lm1vYyAteCAqLm8ga21haWwub3JpZy9rbXNldHRpbmdzLmgga21haWwva21zZXR0aW5ncy5oCi0t LSBrbWFpbC5vcmlnL2ttc2V0dGluZ3MuaAlGcmkgSmFuIDI4IDAxOjI3OjQ5IDIwMDAKKysrIGtt YWlsL2ttc2V0dGluZ3MuaAlTdW4gSmFuIDMwIDAyOjQ4OjU2IDIwMDAKQEAgLTQsNiArNCw3IEBA CiAjaW5jbHVkZSA8cXRhYmRpYWxvZy5oPgogI2luY2x1ZGUgPHFzdHJpbmcuaD4KICNpbmNsdWRl IDxxY2hlY2tib3guaD4KKyNpbmNsdWRlIDxxbGlzdHZpZXcuaD4KIAogY2xhc3MgS01BY2NvdW50 OwogY2xhc3MgS01BY2NvdW50U2V0dGluZ3M7CkBAIC0zNSw2ICszNiw3IEBACiAgIHZpcnR1YWwg dm9pZCBjcmVhdGVUYWJOZXR3b3JrKFFXaWRnZXQqKTsKICAgdmlydHVhbCB2b2lkIGNyZWF0ZVRh YkNvbXBvc2VyKFFXaWRnZXQqKTsKICAgdmlydHVhbCB2b2lkIGNyZWF0ZVRhYk1pc2MoUVdpZGdl dCopOworICB2aXJ0dWFsIHZvaWQgY3JlYXRlVGFiTWltZShRV2lkZ2V0Kik7CiAgIHZpcnR1YWwg dm9pZCBjcmVhdGVUYWJBcHBlYXJhbmNlKFFXaWRnZXQqKTsKICAgdmlydHVhbCB2b2lkIGNyZWF0 ZVRhYlBncChRV2lkZ2V0ICpwYXJlbnQpOwogCkBAIC02OSwxMiArNzEsMTkgQEAKICAgdm9pZCBz bG90Rm9sZGVybGlzdEZvbnRTZWxlY3QoKTsKICAgdm9pZCBzbG90RGVmYXVsdENvbG9yU2VsZWN0 KCk7CiAgIHZvaWQgc2xvdFNpZ01vZGlmeSgpOworICB2b2lkIHNsb3RNSE5ldygpOworICB2b2lk IHNsb3RNSERlbGV0ZSgpOworICB2b2lkIHNsb3RNSFNlbGVjdGlvbkNoYW5nZWQoKTsKKyAgdm9p ZCBzbG90TUhOYW1lQ2hhbmdlZChjb25zdCBRU3RyaW5nJiB4KTsKKyAgdm9pZCBzbG90TUhWYWx1 ZUNoYW5nZWQoY29uc3QgUVN0cmluZyYgeCk7CiAKIHByaXZhdGU6CisgIFFMaXN0Vmlld0l0ZW0g KmN1ck1ISXRlbTsKICAgUUxpbmVFZGl0ICpuYW1lRWRpdCwqb3JnRWRpdCwqZW1haWxFZGl0LCpy ZXBseXRvRWRpdCwqc2lnRWRpdDsKICAgUUxpbmVFZGl0ICpzbXRwU2VydmVyRWRpdCwqc210cFBv cnRFZGl0LCpzZW5kbWFpbExvY2F0aW9uRWRpdDsKICAgUUxpbmVFZGl0ICpwaHJhc2VSZXBseUVk aXQsICpwaHJhc2VSZXBseUFsbEVkaXQsICpwaHJhc2VGb3J3YXJkRWRpdDsKICAgUUxpbmVFZGl0 ICppbmRlbnRQcmVmaXhFZGl0LCAqd3JhcENvbHVtbkVkaXQsICpleHRFZGl0b3JFZGl0OworICBR TGluZUVkaXQgKnRhZ05hbWVFZGl0LCAqdGFnVmFsdWVFZGl0OwogICBRQ2hlY2tCb3ggKmF1dG9B cHBTaWduRmlsZSwgKndvcmRXcmFwLCAqbW9ub3NwRm9udCwgKnBncEF1dG9TaWduLCAqc21hcnRR dW90ZTsKICAgUUNoZWNrQm94ICplbXB0eVRyYXNoT25FeGl0LCAqc2VuZE9uQ2hlY2ssICpsb25n Rm9sZGVyTGlzdCwgKnNlbmRSZWNlaXB0cywKICAgICAqY29tcGFjdE9uRXhpdCwgKnVzZUV4dGVy bmFsRWRpdG9yOwpAQCAtODIsNiArOTEsNyBAQAogICBRUmFkaW9CdXR0b24gKmFsbG93OEJpdCwg KnF1b3RlZFByaW50YWJsZTsKICAgUUJ1dHRvbkdyb3VwICppbmNvbWluZ0dyb3VwLCpvdXRnb2lu Z0dyb3VwOwogICBLVGFiTGlzdEJveCAqYWNjb3VudExpc3Q7CisgIFFMaXN0VmlldyAgKnRhZ0xp c3Q7CiAgIFFQdXNoQnV0dG9uICphZGRCdXR0b24sKm1vZGlmeUJ1dHRvbiwqcmVtb3ZlQnV0dG9u OwogICBRQ2hlY2tCb3ggKmRlZmF1bHRGb250cywgKmRlZmF1bHRDb2xvcnM7CiAgIFFMYWJlbCAq Ym9keUZvbnRMYWJlbCwgKmxpc3RGb250TGFiZWwsICpmb2xkZXJMaXN0Rm9udExhYmVsOwo= --Boundary-=_nWlrBbmQBhCDarzOwKkYHIDdqSCD--