From: Mark Walters Date: Mon, 7 Mar 2016 19:26:53 +0000 (+0000) Subject: Re: [PATCH v6 4/6] emacs/mua: Generate improved cited text for replies X-Git-Url: http://git.tremily.us/?a=commitdiff_plain;h=8ed45f2383d36362b6da64ce9a265a14698e6fac;p=notmuch-archives.git Re: [PATCH v6 4/6] emacs/mua: Generate improved cited text for replies --- diff --git a/ff/e2d5a0024f75f6bb53cf1164d8d41198f53f98 b/ff/e2d5a0024f75f6bb53cf1164d8d41198f53f98 new file mode 100644 index 000000000..893d0c906 --- /dev/null +++ b/ff/e2d5a0024f75f6bb53cf1164d8d41198f53f98 @@ -0,0 +1,300 @@ +Return-Path: +X-Original-To: notmuch@notmuchmail.org +Delivered-To: notmuch@notmuchmail.org +Received: from localhost (localhost [127.0.0.1]) + by arlo.cworth.org (Postfix) with ESMTP id B9DF46DE175B + for ; Mon, 7 Mar 2016 11:26:59 -0800 (PST) +X-Virus-Scanned: Debian amavisd-new at cworth.org +X-Spam-Flag: NO +X-Spam-Score: -0.296 +X-Spam-Level: +X-Spam-Status: No, score=-0.296 tagged_above=-999 required=5 tests=[AWL=0.264, + DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, + FREEMAIL_ENVFROM_END_DIGIT=0.25, FREEMAIL_FROM=0.001, RCVD_IN_DNSWL_LOW=-0.7, + RCVD_IN_MSPIKE_H3=-0.01, RCVD_IN_MSPIKE_WL=-0.01, SPF_PASS=-0.001, + T_HTML_ATTACH=0.01] autolearn=disabled +Received: from arlo.cworth.org ([127.0.0.1]) + by localhost (arlo.cworth.org [127.0.0.1]) (amavisd-new, port 10024) + with ESMTP id CurIoVGCjoQh for ; + Mon, 7 Mar 2016 11:26:57 -0800 (PST) +Received: from mail-wm0-f68.google.com (mail-wm0-f68.google.com + [74.125.82.68]) by arlo.cworth.org (Postfix) with ESMTPS id 3B62C6DE173B for + ; Mon, 7 Mar 2016 11:26:57 -0800 (PST) +Received: by mail-wm0-f68.google.com with SMTP id 1so12526509wmg.2 + for ; Mon, 07 Mar 2016 11:26:57 -0800 (PST) +DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113; + h=from:to:subject:in-reply-to:references:user-agent:date:message-id + :mime-version; bh=pSHcndFNOFA3fZD9sP639ZYCplOuNVA1ien6ME2f3II=; + b=vZF2CUpFFKPIo7na0c6HtLYV7LGWupVODP/n6a2Utepf6HdbUfGKxUu6t2nKmDynms + eRa7pnKpw4hErP1XLQSv7R2z6U2YBxcQ7SiKv6yTPe8sA8yi7+jURYKyUB+nkDcDvmYd + ItYaqqhtH5d5WGKnb6GMUxNkWcqT3UIzC7wM6A+3m9HYbJFBkXs0NkG/s62rdOi6aGZz + wxEmOFidBKdfj22/l110QJLs3UoynAYBRm6VHcRUldHa3ze6/0irex5LbEEB1Duzfl3o + sDT5Y3amX2e/fv9Kb55FFD1YjG41IQGn5ltnkKEI+0SyL5scwsVhLh4dWrXEtKPgo5/0 + scew== +X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; + d=1e100.net; s=20130820; + h=x-gm-message-state:from:to:subject:in-reply-to:references + :user-agent:date:message-id:mime-version; + bh=pSHcndFNOFA3fZD9sP639ZYCplOuNVA1ien6ME2f3II=; + b=Gh7WsbUfgL/qKT/zkgBYkAwYAMu9l81mbw0Q5JM0Si32LI9KDhIvNINWVF123JwH0W + /ag0bLx92G3wDLMEu/aUQFLPf7KGUJq/b1onKclWNp6YkWpJ2fB4f1uH975iCn4fku+b + +u2UJ4rQ1LwKWGupqipZ8YQpq1z3e3hNufjAnIdxrZ/1uuiq1q5ajgUgTDI8eb7aQ/Ma + AHwzy6mPZBTOwFn3zah9YFbUtJwHbKRspfT6omU5GS7J1qo15DRA5TF6HAkb/bxGym3d + mW70uJ5n8PdH430uk6GZEmUTrOKuZSLdUIq0Zvj5BDQpgGtYEFCowrZKymBvn0iVnyqL + 0LHA== +X-Gm-Message-State: + AD7BkJKgkiLZtrX8NTIvqNU4f937AVDgzlC2levuE+FMEeUsmoqke/b3MEskSOT5oCOzxg== +X-Received: by 10.28.214.11 with SMTP id n11mr14081326wmg.31.1457378815958; + Mon, 07 Mar 2016 11:26:55 -0800 (PST) +Received: from localhost (5751dfa2.skybroadband.com. [87.81.223.162]) + by smtp.gmail.com with ESMTPSA id w125sm10637830wmw.18.2016.03.07.11.26.54 + (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); + Mon, 07 Mar 2016 11:26:55 -0800 (PST) +From: Mark Walters +To: David Edmondson , Jani Nikula , + notmuch@notmuchmail.org +Subject: Re: [PATCH v6 4/6] emacs/mua: Generate improved cited text for + replies +In-Reply-To: +References: <1455992680-24978-1-git-send-email-markwalters1009@gmail.com> + <1455992680-24978-5-git-send-email-markwalters1009@gmail.com> + <87vb4y5g6s.fsf@nikula.org> + <87mvqa5eo1.fsf@nikula.org> +User-Agent: Notmuch/0.21+69~gd27d908 (http://notmuchmail.org) Emacs/24.4.1 + (x86_64-pc-linux-gnu) +Date: Mon, 07 Mar 2016 19:26:53 +0000 +Message-ID: <87y49uxf5u.fsf@qmul.ac.uk> +MIME-Version: 1.0 +Content-Type: multipart/mixed; boundary="=-=-=" +X-BeenThere: notmuch@notmuchmail.org +X-Mailman-Version: 2.1.20 +Precedence: list +List-Id: "Use and development of the notmuch mail system." + +List-Unsubscribe: , + +List-Archive: +List-Post: +List-Help: +List-Subscribe: , + +X-List-Received-Date: Mon, 07 Mar 2016 19:26:59 -0000 + +--=-=-= +Content-Type: text/plain + + +Hi + +Just in case anyone else wants to reproduce replying to this message +should trigger the bug. The key thing is to have a text/html part sent +with content type application/octet-stream + +Best wishes + +Mark + + +--=-=-= +Content-Type: application/octet-stream; charset=utf-8 +Content-Disposition: attachment; filename=index.html +Content-Transfer-Encoding: base64 + +PCFET0NUWVBFIGh0bWwgUFVCTElDICItLy9XM0MvL0RURCBYSFRNTCAxLjAgU3RyaWN0Ly9FTiIK +ICJodHRwOi8vd3d3LnczLm9yZy9UUi94aHRtbDEvRFREL3hodG1sMS1zdHJpY3QuZHRkIj4KPGh0 +bWwgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkveGh0bWwiPgo8aGVhZD4KPG1ldGEgaHR0 +cC1lcXVpdj0iQ29udGVudC1UeXBlIiBjb250ZW50PSJ0ZXh0L2h0bWw7IGNoYXJzZXQ9dXRmLTgi +IC8+Cjx0aXRsZT5ub3RtdWNoPC90aXRsZT4KCjxsaW5rIHJlbD0ic3R5bGVzaGVldCIgaHJlZj0i +c3R5bGUuY3NzIiB0eXBlPSJ0ZXh0L2NzcyIgLz4KCjxsaW5rIHJlbD0ic3R5bGVzaGVldCIgaHJl +Zj0ibG9jYWwuY3NzIiB0eXBlPSJ0ZXh0L2NzcyIgLz4KCgo8bGluayByZWw9ImFsdGVybmF0ZSIg +dHlwZT0iYXBwbGljYXRpb24veC13aWtpIiB0aXRsZT0iRWRpdCB0aGlzIHBhZ2UiIGhyZWY9Ii9p +a2l3aWtpLmNnaT9kbz1lZGl0JmFtcDtwYWdlPWluZGV4IiAvPgoKCgoKPC9oZWFkPgo8Ym9keT4K +CjxkaXYgY2xhc3M9InBhZ2VoZWFkZXIiPgo8ZGl2IGNsYXNzPSJoZWFkZXIiPgo8c3Bhbj4KPHNw +YW4gY2xhc3M9InBhcmVudGxpbmtzIj4KCjwvc3Bhbj4KPCEtLQo8c3BhbiBjbGFzcz0idGl0bGUi +Pgpub3RtdWNoCgo8L3NwYW4+Ci0tPgo8L3NwYW4+PCEtLS5oZWFkZXItLT4KCjwvZGl2PgoKPCEt +LQoKPGRpdiBjbGFzcz0iYWN0aW9ucyI+Cjx1bD4KCjxsaT48YSBocmVmPSIvaWtpd2lraS5jZ2k/ +ZG89ZWRpdCZhbXA7cGFnZT1pbmRleCIgcmVsPSJub2ZvbGxvdyI+RWRpdDwvYT48L2xpPgoKCjxs +aT48YSBocmVmPSIuL3JlY2VudGNoYW5nZXMvIj5SZWNlbnRDaGFuZ2VzPC9hPjwvbGk+CgoKCgo8 +bGk+PGEgaHJlZj0iL2lraXdpa2kuY2dpP2RvPXByZWZzIj5QcmVmZXJlbmNlczwvYT48L2xpPgoK +Cgo8bGk+PHNwYW4gY2xhc3M9ImNyZWF0ZWxpbmsiPjxhIGhyZWY9Ii9pa2l3aWtpLmNnaT9kbz1j +cmVhdGUmYW1wO2Zyb209aW5kZXgmYW1wO3BhZ2U9RGlzY3Vzc2lvbiIgcmVsPSJub2ZvbGxvdyI+ +PzwvYT5EaXNjdXNzaW9uPC9zcGFuPjxiciAvPjwvbGk+CgoKPC91bD4KPC9kaXY+CgotLT4KCgoK +PC9kaXY+IDwhLS0gLnBhZ2VoZWFkZXIgLS0+CgoKCjxkaXYgaWQ9ImNvbnRlbnQiPgo8cD48YSBo +cmVmPSIuL25vdG11Y2gtbG9nby5wbmciPjxpbWcgc3JjPSIuL25vdG11Y2gtbG9nby5wbmciIHdp +ZHRoPSI1OCIgaGVpZ2h0PSI1MCIgYWx0PSJOb3RtdWNoIGxvZ28iIGNsYXNzPSJsZWZ0IiAvPjwv +YT48L3A+Cgo8aDE+PGEgbmFtZT0iaW5kZXgxaDEiPjwvYT5Ob3RtdWNoIC0tIEp1c3QgYW4gZW1h +aWwgc3lzdGVtPC9oMT4KCjxwPklmIHlvdSd2ZSBiZWVuIGxvb2tpbmcgZm9yIGEgZmFzdCwgZ2xv +YmFsLXNlYXJjaCBhbmQgdGFnLWJhc2VkIGVtYWlsCnN5c3RlbSB0byB1c2Ugd2l0aGluIHlvdXIg +dGV4dCBlZGl0b3Igb3IgaW4gYSB0ZXJtaW5hbC4uLjwvcD4KCjxwPklmIHlvdSdyZSB0aGUga2lu +ZCBvZiBwZXJzb24gdGhhdCBnZXRzIGV4Y2l0ZWQgYWJvdXQgYmVpbmcgYWJsZSB0bwp3cml0ZSBz +aGVsbCBzY3JpcHRzIGZvciBleHBsb3JpbmcgYW5kIG1hbmlwdWxhdGluZyB5b3VyIGVtYWlsLi4u +PC9wPgoKPHA+SWYgeW91J3JlIGEgZGV2ZWxvcGVyIG9mIGFuIGV4aXN0aW5nIGVtYWlsIHByb2dy +YW0gYW5kIHdvdWxkIGxvdmUgYQpnb29kIGxpYnJhcnkgaW50ZXJmYWNlIGZvciBmYXN0LCBnbG9i +YWwgc2VhcmNoIHdpdGggc3VwcG9ydCBmb3IKYXJiaXRyYXJ5IHRhZ3MuLi48L3A+Cgo8cD5JZiB5 +b3Ugd2FudCB0aGUgY29udmVuaWVuY2Ugb2YgZmFzdCwgcmVsaWFibGUgc2VhcmNoIG9mIGFsbCB5 +b3VyCmVtYWlsLCBidXQgZG9uJ3Qgd2FudCB0byBnaXZlIGEgM3JkLXBhcnR5IGFjY2VzcyB0byB5 +b3VyIGVtYWlsLi4uPC9wPgoKPHA+VGhlbiBub3RtdWNoIG1heSBiZSBleGFjdGx5IHdoYXQgeW91 +J3ZlIGJlZW4gbG9va2luZyBmb3IuPC9wPgoKPGRpdiBjbGFzcz0idG9jIj4KPG9sPgoJPGxpIGNs +YXNzPSJMMSI+PGEgaHJlZj0iI2luZGV4MWgxIj5Ob3RtdWNoIC0tIEp1c3QgYW4gZW1haWwgc3lz +dGVtPC9hPgoJPG9sPgoJCTxsaSBjbGFzcz0iTDIiPjxhIGhyZWY9IiNpbmRleDFoMiI+V2h5IGlz +IGl0IG5hbWVkIE5vdG11Y2g/PC9hPgoJCTwvbGk+CgkJPGxpIGNsYXNzPSJMMiI+PGEgaHJlZj0i +I2luZGV4MmgyIj5OZXdzPC9hPgoJCTwvbGk+CgkJPGxpIGNsYXNzPSJMMiI+PGEgaHJlZj0iI2lu +ZGV4M2gyIj5HZXR0aW5nIFN0YXJ0ZWQ8L2E+CgkJPC9saT4KCQk8bGkgY2xhc3M9IkwyIj48YSBo +cmVmPSIjaW5kZXg0aDIiPkVtYWlsIENsaWVudHMgYW5kIEZyb250IEVuZHM8L2E+CgkJPC9saT4K +CQk8bGkgY2xhc3M9IkwyIj48YSBocmVmPSIjaW5kZXg1aDIiPkRvY3VtZW50YXRpb248L2E+CgkJ +PC9saT4KCQk8bGkgY2xhc3M9IkwyIj48YSBocmVmPSIjaW5kZXg2aDIiPlNjcmVlbnNob3RzPC9h +PgoJCTwvbGk+CgkJPGxpIGNsYXNzPSJMMiI+PGEgaHJlZj0iI2luZGV4N2gyIj5PYnRhaW5pbmcg +Tm90bXVjaDwvYT4KCQk8L2xpPgoJCTxsaSBjbGFzcz0iTDIiPjxhIGhyZWY9IiNpbmRleDhoMiI+ +RGV2ZWxvcG1lbnQgYW5kIENvbnRyaWJ1dGluZzwvYT4KCQk8L2xpPgoJCTxsaSBjbGFzcz0iTDIi +PjxhIGhyZWY9IiNpbmRleDloMiI+VHJvdWJsZXNob290aW5nIGFuZCByZXBvcnRpbmcgYnVnczwv +YT4KCQk8L2xpPgoJCTxsaSBjbGFzcz0iTDIiPjxhIGhyZWY9IiNpbmRleDEwaDIiPkNvbnRhY3Q6 +IEVtYWlsICYgSVJDPC9hPgoJCTwvbGk+CgkJPGxpIGNsYXNzPSJMMiI+PGEgaHJlZj0iI2luZGV4 +MTFoMiI+RmVhdHVyZSBpZGVhczwvYT4KCQk8L2xpPgoJCTxsaSBjbGFzcz0iTDIiPjxhIGhyZWY9 +IiNpbmRleDEyaDIiPldlYnNpdGU8L2E+CgkJPC9saT4KCTwvb2w+Cgk8L2xpPgo8L29sPgo8L2Rp +dj4KCgo8aDI+PGEgbmFtZT0iaW5kZXgxaDIiPjwvYT5XaHkgaXMgaXQgbmFtZWQgTm90bXVjaD88 +L2gyPgoKPHVsPgo8bGk+PHA+Ik5vdCBtdWNoIG1haWwiIGlzIHdoYXQgTm90bXVjaCB0aGlua3Mg +YWJvdXQgeW91ciBlbWFpbApjb2xsZWN0aW9uLiBFdmVuIGlmIHlvdSByZWNlaXZlIDEyMDAwIG1l +c3NhZ2VzIHBlciBtb250aCBvciBoYXZlIG9uCnRoZSBvcmRlciBvZiBtaWxsaW9ucyBvZiBtZXNz +YWdlcyB0aGF0IHlvdSd2ZSBiZWVuIHNhdmluZyBmb3IKZGVjYWRlcy4gUmVnYXJkbGVzcywgTm90 +bXVjaCB3aWxsIGJlIGFibGUgdG8gcXVpY2tseSBzZWFyY2ggYWxsIG9mCml0LiBJdCdzIGp1c3Qg +cGxhaW4gbm90IG11Y2ggbWFpbC48L3A+PC9saT4KPGxpPjxwPiJOb3QgbXVjaCBtYWlsIiBpcyBh +bHNvIHdoYXQgeW91IHNob3VsZCBoYXZlIGluIHlvdXIgaW5ib3ggYXQgYW55CnRpbWUuIE5vdG11 +Y2ggZ2l2ZXMgeW91IHdoYXQgeW91IG5lZWQsICh0YWdzIGFuZCBmYXN0IHNlYXJjaCksIHNvCnRo +YXQgeW91IGNhbiBrZWVwIHlvdXIgaW5ib3ggdGFtZWQgYW5kIGZvY3VzIG9uIHdoYXQgcmVhbGx5 +IG1hdHRlcnMKaW4geW91ciBsaWZlLCAod2hpY2ggaXMgc3VyZWx5IG5vdCBlbWFpbCkuPC9wPjwv +bGk+CjxsaT48cD5Ob3RtdWNoIGlzIGFuIGFuc3dlciB0byA8YSBocmVmPSJodHRwOi8vc3VwbXVh +Lm9yZy8iPlN1cDwvYT4uClN1cCBpcyBhIHZlcnkgZ29vZCBlbWFpbCBwcm9ncmFtIHdyaXR0ZW4g +YnkgV2lsbGlhbSBNb3JnYW4gKGFuZApvdGhlcnMpIGFuZCBpcyB0aGUgZGlyZWN0IGluc3BpcmF0 +aW9uIGZvciBOb3RtdWNoLiBOb3RtdWNoIGJlZ2FuIGFzCmFuIGVmZm9ydCB0byByZXdyaXRlIHBl +cmZvcm1hbmNlLWNyaXRpY2FsIHBpZWNlcyBvZiBTdXAgaW4gQyByYXRoZXIKdGhhbiBydWJ5LiBG +cm9tIHRoZXJlLCBpdCBncmV3IGludG8gYSBzZXBhcmF0ZSBwcm9qZWN0LiBPbmUKc2lnbmlmaWNh +bnQgY29udHJpYnV0aW9uIE5vdG11Y2ggbWFrZXMgY29tcGFyZWQgdG8gU3VwIGlzIHRoZQpzZXBh +cmF0aW9uIG9mIHRoZSBpbmRleGVyL3NlYXJjaGVyIGZyb20gdGhlIHVzZXIgaW50ZXJmYWNlLiAo +Tm90bXVjaApwcm92aWRlcyBhIGxpYnJhcnkgaW50ZXJmYWNlIHNvIHRoYXQgaXRzIGluZGV4aW5n +L3NlYXJjaGluZy90YWdnaW5nCmZlYXR1cmVzIGNhbiBiZSBpbnRlZ3JhdGVkIGludG8gYW55IGVt +YWlsIHByb2dyYW0uKTwvcD48L2xpPgo8bGk+PHA+Tm90bXVjaCBpcyBub3QgbXVjaCBvZiBhbiBl +bWFpbCBwcm9ncmFtLiBJdCBkb2Vzbid0IHJlY2VpdmUgbWVzc2FnZXMKKG5vIFBPUCBvciBJTUFQ +IHN1cHBvcnQpLiBJdCBkb2Vzbid0IHNlbmQgbWVzc2FnZXMgKG5vIG1haWwgY29tcG9zZXIsCm5v +IG5ldHdvcmsgY29kZSBhdCBhbGwpLiBBbmQgZm9yIHdoYXQgaXQgZG9lcyBkbyAoZW1haWwgc2Vh +cmNoKSB0aGF0CndvcmsgaXMgcHJvdmlkZWQgYnkgYW4gZXh0ZXJuYWwgbGlicmFyeSwKPGEgaHJl +Zj0iaHR0cDovL3hhcGlhbi5vcmciPlhhcGlhbjwvYT4uICBTbyBpZiBOb3RtdWNoIHByb3ZpZGVz +IG5vIHVzZXIKaW50ZXJmYWNlIGFuZCBYYXBpYW4gZG9lcyBhbGwgdGhlIGhlYXZ5IGxpZnRpbmcs +IHRoZW4gd2hhdCdzIGxlZnQKaGVyZT8gTm90IG11Y2guPC9wPjwvbGk+CjwvdWw+CgoKPGgyPjxh +IG5hbWU9ImluZGV4MmgyIj48L2E+TmV3czwvaDI+Cgo8cD48YSBocmVmPSIuL25ld3MvIj5UaGUg +bGF0ZXN0IG5ld3MgZnJvbSBub3RtdWNoPC9hPjwvcD4KCjxoMj48YSBuYW1lPSJpbmRleDNoMiI+ +PC9hPkdldHRpbmcgU3RhcnRlZDwvaDI+Cgo8cD5UbyBnZXQgc3RhcnRlZCB3aXRoIE5vdG11Y2gs +IGp1c3QgcnVuICJub3RtdWNoIiBhdCB0aGUgY29tbWFuZCBsaW5lLgpUaGlzIGNvbW1hbmQgd2ls +bCB3YWxrIHlvdSB0aHJvdWdoIGluaXRpYWwgc2V0dXAsIGluY2x1ZGluZyBzcGVjaWZ5aW5nCnRo +ZSBsb2NhdGlvbiBvZiB5b3VyIG1haWwgc3RvcmUgYW5kIGhvdyB0byBzdGFydCB0aGUgaW5pdGlh +bCBpbmRleGluZy48L3A+Cgo8cD5Gb3IgYSBsaXR0bGUgbW9yZSBkZXRhaWxlZCBndWlkZSwgc2Vl +IDxhIGhyZWY9Ii4vZ2V0dGluZy1zdGFydGVkLyI+R2V0dGluZyBTdGFydGVkIHdpdGgKTm90bXVj +aDwvYT4uPC9wPgoKPGgyPjxhIG5hbWU9ImluZGV4NGgyIj48L2E+RW1haWwgQ2xpZW50cyBhbmQg +RnJvbnQgRW5kczwvaDI+Cgo8cD5Ob3RtdWNoIHNoaXBzIHdpdGggYSBwb3dlcmZ1bCBzZXQgb2Yg +PGEgaHJlZj0iLi9tYW5wYWdlcy8iPmNvbW1hbmQtbGluZSB0b29sczwvYT4sIGFuCjxhIGhyZWY9 +Ii4vbm90bXVjaC1lbWFjcy8iPmVtYWlsIGNsaWVudCBmb3IgRW1hY3M8L2E+LCBhbm90aGVyCjxh +IGhyZWY9Imh0dHA6Ly9naXQubm90bXVjaG1haWwub3JnL2dpdC9ub3RtdWNoL2Jsb2IvSEVBRDov +dmltL1JFQURNRSI+Y2xpZW50IGZvciB2aW08L2E+LAphbmQgYSA8YSBocmVmPSIuL25vdG11Y2gt +bXV0dC8iPk11dHQgaW50ZWdyYXRpb24gc2NyaXB0PC9hPi48L3A+Cgo8cD5UaGVyZSBhcmUgYWxz +byBtYW55IG90aGVyIDxhIGhyZWY9Ii4vZnJvbnRlbmRzLyI+ZW1haWwgY2xpZW50cyBhbmQgZnJv +bnRlbmRzPC9hPiBiYXNlZCBvbgpOb3RtdWNoLjwvcD4KCjxoMj48YSBuYW1lPSJpbmRleDVoMiI+ +PC9hPkRvY3VtZW50YXRpb248L2gyPgoKPHVsPgo8bGk+PGEgaHJlZj0iLi9tYW5wYWdlcy8iPk5v +dG11Y2ggbWFudWFsIHBhZ2VzPC9hPjwvbGk+CjxsaT48YSBocmVmPSIuL2hvd3RvLyI+R2VuZXJh +bCBob3ctdG9zPC9hPjwvbGk+CjxsaT48YSBocmVmPSIuL2ZhcS8iPkZyZXF1ZW50bHkgQXNrZWQg +UXVlc3Rpb25zPC9hPjwvbGk+CjxsaT48YSBocmVmPSIuL3NlYXJjaGluZy8iPlNlYXJjaGluZzwv +YT48L2xpPgo8bGk+PGEgaHJlZj0iLi9leGNsdWRpbmcvIj5FeGNsdWRpbmcgYW5kIGRlbGV0aW5n +IG1lc3NhZ2VzPC9hPjwvbGk+CjxsaT48YSBocmVmPSIuL2luaXRpYWxfdGFnZ2luZy8iPkluaXRp +YWwgdGFnZ2luZzwvYT48L2xpPgo8bGk+VGlwcyBmb3IgdXNpbmcgTm90bXVjaCB3aXRoIDxhIGhy +ZWY9Ii4vZW1hY3N0aXBzLyI+RW1hY3M8L2E+LCA8YSBocmVmPSIuL3ZpbXRpcHMvIj5WaW08L2E+ +LCBhbmQgPGEgaHJlZj0iLi9tdXR0dGlwcy8iPk11dHQ8L2E+PC9saT4KPGxpPjxhIGhyZWY9Ii4v +cmVtb3RldXNhZ2UvIj5FbWFjcyByZW1vdGUgdXNhZ2U8L2E+PC9saT4KPGxpPjxhIGhyZWY9Ii4v +cGVyZm9ybWFuY2UvIj5QZXJmb3JtYW5jZTwvYT48L2xpPgo8bGk+PGEgaHJlZj0iLi9yZWZlcmVu +Y2VzLyI+UmVmZXJlbmNlczwvYT48L2xpPgo8bGk+PGEgaHJlZj0iLi9iaW5kaW5ncy8iPk5vdG11 +Y2ggTGlicmFyeSBMYW5ndWFnZSBCaW5kaW5nczwvYT48L2xpPgo8L3VsPgoKCjxwPkFwYXJ0IGZy +b20gdGhlIHdpa2ksIGhlbHAgaXMgYXZhaWxhYmxlIHZpYSBlbWFpbCBhbmQgb24gSVJDIChzZWUK +YmVsb3cpLiAgSm9pbiB0aGUgbWFpbGluZyBsaXN0LiAgUmVhZCB0aGUgYXJjaGl2ZXMuICBBc2sg +cXVlc3Rpb25zLjwvcD4KCjxoMj48YSBuYW1lPSJpbmRleDZoMiI+PC9hPlNjcmVlbnNob3RzPC9o +Mj4KCjx1bD4KPGxpPjxhIGhyZWY9Ii4vc2NyZWVuc2hvdHMvIj5FbWFjcyBVSSBzY3JlZW5zaG90 +czwvYT48L2xpPgo8L3VsPgoKCjxoMj48YSBuYW1lPSJpbmRleDdoMiI+PC9hPk9idGFpbmluZyBO +b3RtdWNoPC9oMj4KCjxwPjxhIGhyZWY9Imh0dHA6Ly9ub3RtdWNobWFpbC5vcmcvcmVsZWFzZXMv +Ij5Ob3RtdWNoIHNvdXJjZSByZWxlYXNlczwvYT4gYXJlIGF2YWlsYWJsZSBhcwpzb3VyY2UgdGFy +IGJhbGxzLjwvcD4KCjxwPk5vdG11Y2ggaXMgcGFja2FnZWQgZm9yIGF0IGxlYXN0IHRoZSBmb2xs +b3dpbmcgb3BlcmF0aW5nIHN5c3RlbXMgYW5kCmRpc3RyaWJ1dGlvbnM6PC9wPgoKPHVsPgo8bGk+ +PGEgaHJlZj0iaHR0cHM6Ly93d3cuYXJjaGxpbnV4Lm9yZy9wYWNrYWdlcy8/cT1ub3RtdWNoIj5B +cmNoIExpbnV4PC9hPjwvbGk+CjxsaT48YSBocmVmPSJodHRwOi8vcGFja2FnZXMuZGViaWFuLm9y +Zy9zZWFyY2g/a2V5d29yZHM9bm90bXVjaCI+RGViaWFuPC9hPjwvbGk+CjxsaT48YSBocmVmPSJo +dHRwczovL2FwcHMuZmVkb3JhcHJvamVjdC5vcmcvcGFja2FnZXMvbm90bXVjaCI+RmVkb3JhPC9h +PjwvbGk+CjxsaT48YSBocmVmPSJodHRwOi8vcGFja2FnZXMuZ2VudG9vLm9yZy9wYWNrYWdlL25l +dC1tYWlsL25vdG11Y2giPkdlbnRvbzwvYT48L2xpPgo8bGk+PGEgaHJlZj0iaHR0cDovL2Z0cC5u +ZXRic2Qub3JnL3B1Yi9wa2dzcmMvY3VycmVudC9wa2dzcmMvbWFpbC9ub3RtdWNoL1JFQURNRS5o +dG1sIj5OZXRCU0Q8L2E+PC9saT4KPGxpPjxhIGhyZWY9Imh0dHBzOi8vYnVpbGQub3BlbnN1c2Uu +b3JnL3NlYXJjaD9zZWFyY2hfdGV4dD1ub3RtdWNoIj5vcGVuU1VTRTwvYT48L2xpPgo8bGk+T1Mg +WCA8YSBocmVmPSJodHRwczovL2dpdGh1Yi5jb20vSG9tZWJyZXcvaG9tZWJyZXcvYmxvYi9tYXN0 +ZXIvTGlicmFyeS9Gb3JtdWxhL25vdG11Y2gucmIiPkhvbWVicmV3PC9hPiwgPGEgaHJlZj0iaHR0 +cHM6Ly93d3cubWFjcG9ydHMub3JnL3BvcnRzLnBocD9ieT1uYW1lJmFtcDtzdWJzdHI9bm90bXVj +aCI+TWFjUG9ydHM8L2E+LCBvciA8YSBocmVmPSJodHRwOi8vZnRwLm5ldGJzZC5vcmcvcHViL3Br +Z3NyYy9jdXJyZW50L3BrZ3NyYy9tYWlsL25vdG11Y2gvUkVBRE1FLmh0bWwiPnBrZ3NyYzwvYT4u +PC9saT4KPGxpPjxhIGhyZWY9Imh0dHA6Ly9zbGFja2J1aWxkcy5vcmcvcmVwb3NpdG9yeS8xMy4z +Ny9vZmZpY2Uvbm90bXVjaC8iPlNsYWNrd2FyZTwvYT48L2xpPgo8bGk+PGEgaHJlZj0iaHR0cDov +L3BhY2thZ2VzLnVidW50dS5jb20vc2VhcmNoP2tleXdvcmRzPW5vdG11Y2giPlVidW50dTwvYT48 +L2xpPgo8L3VsPgoKCjxoMj48YSBuYW1lPSJpbmRleDhoMiI+PC9hPkRldmVsb3BtZW50IGFuZCBD +b250cmlidXRpbmc8L2gyPgoKPHA+QWxsIG9mIHRoZSBjb2RlIGZvciBOb3RtdWNoIGlzIGF2YWls +YWJsZSBhcyA8YSBocmVmPSJodHRwOi8vd3d3LmZzZi5vcmcvbGljZW5zaW5nL2Vzc2F5cy9mcmVl +LXN3Lmh0bWwiPmZyZWUKc29mdHdhcmU8L2E+IHJlbGVhc2VkCnVuZGVyIHRoZSBHTlUgPGEgaHJl +Zj0iaHR0cDovL3d3dy5mc2Yub3JnL2xpY2Vuc2luZy9saWNlbnNlcy9ncGwuaHRtbCI+R1BMIHZl +cnNpb24KMzwvYT4uIFRoZSBsYXRlc3QKdmVyc2lvbnMgY2FuIGJlIGNoZWNrZWQgb3V0IHZpYSBn +aXQgd2l0aCB0aGlzIGNvbW1hbmQ6PC9wPgoKPHByZT48Y29kZT4gICAgZ2l0IGNsb25lIGdpdDov +L25vdG11Y2htYWlsLm9yZy9naXQvbm90bXVjaAo8L2NvZGU+PC9wcmU+Cgo8cD5Zb3UgY2FuIGJy +b3dzZSB0aGUgPGEgaHJlZj0iaHR0cDovL2dpdC5ub3RtdWNobWFpbC5vcmcvZ2l0L25vdG11Y2gi +Pk5vdG11Y2ggY29kZSBoaXN0b3J5Cm9ubGluZTwvYT4uIEEgbm90aWZpY2F0aW9uIGlzIHNlbnQg +dG8gdGhlCjxhIGhyZWY9Imh0dHA6Ly9ub3RtdWNobWFpbC5vcmcvbWFpbG1hbi9saXN0aW5mby9u +b3RtdWNoLWNvbW1pdHMiPm5vdG11Y2gtY29tbWl0cyBtYWlsaW5nCmxpc3Q8L2E+IGZvciBldmVy +eSBjb21taXQKbWFkZSB0byBOb3RtdWNoIGFuZCB0aGUgbm90bXVjaG1haWwub3JnIHdlYiBzaXRl +LiA8YSBocmVmPSJodHRwczovL3d3dy5vcGVuaHViLm5ldC9wL25vdG11Y2giPlRoZSBOb3RtdWNo +IE9wZW5IdWIgcHJvamVjdApwYWdlPC9hPiBoYXMgYSBuaWNlIHN1bW1hcnkgb2YgdGhlIGNvZGVi +YXNlIGFuZAphY3Rpdml0eS48L3A+Cgo8cD5XZSBoYXZlIGEgPGEgaHJlZj0iaHR0cDovL2J1aWxk +Ym90Lm5vdG11Y2htYWlsLm9yZy9ncmlkIj5idWlsZGJvdDwvYT4gKGhlcmUncwppdHMKPGEgaHJl +Zj0iaHR0cHM6Ly9naXRodWIuY29tL3RvbXByaW5jZS9idWlsZGJvdC1jb25maWdzL3RyZWUvbm90 +bXVjaCI+Y29uZmlndXJhdGlvbjwvYT4pLjwvcD4KCjxwPkNvbnRyaWJ1dGlvbnMsIHN1Y2ggYXMg +cGF0Y2hlcywgdG8gTm90bXVjaCBhcmUgbW9zdCB3ZWxjb21lLiBQbGVhc2UgcmVmZXIgdG8gdGhl +CjxhIGhyZWY9Ii4vY29udHJpYnV0aW5nLyI+Z3VpZGUgdG8gY29udHJpYnV0aW5nPC9hPi48L3A+ +Cgo8aDI+PGEgbmFtZT0iaW5kZXg5aDIiPjwvYT5Ucm91Ymxlc2hvb3RpbmcgYW5kIHJlcG9ydGlu +ZyBidWdzPC9oMj4KCjxwPkZvciBoaW50cyBhYm91dCB0cm91Ymxlc2hvb3RpbmcgYW5kIGJ1ZyBy +ZXBvcnRpbmcgc2VlIDxhIGhyZWY9Ii4vYnVncy8iPmJ1Z3M8L2E+LjwvcD4KCjxwPkZvciBhIGxp +c3Qgb2Yga25vd24gYnVncyBzZWUgdGhlIDxhIGhyZWY9Imh0dHA6Ly9ubWJ1Zy5ub3RtdWNobWFp +bC5vcmcvc3RhdHVzLyNCdWdzIj5ubWJ1ZyBzdGF0dXMgcGFnZTwvYT4uPC9wPgoKPGgyPjxhIG5h +bWU9ImluZGV4MTBoMiI+PC9hPkNvbnRhY3Q6IEVtYWlsICYgSVJDPC9oMj4KCjxwPkNvbW1lbnRz +PyBQbGVhc2UgZmVlbCBmcmVlIHRvIGVtYWlsIHRoZSBub3RtdWNoIG1haWxpbmcgbGlzdDoKbm90 +bXVjaCYjNjQ7bm90bXVjaG1haWwub3JnIChzdWJzY3JpcHRpb24gaXMgbm90IHJlcXVpcmVkLCBi +dXQgeW91IGNhbgphbHNvIHN1YnNjcmliZSB0byB0aGUKPGEgaHJlZj0iaHR0cDovL25vdG11Y2ht +YWlsLm9yZy9tYWlsbWFuL2xpc3RpbmZvL25vdG11Y2giPm5vdG11Y2ggbWFpbGluZyBsaXN0PC9h +PikuIFlvdQpjYW4gYWxzbyBicm93c2UgdGhlCjxhIGhyZWY9Imh0dHA6Ly9ub3RtdWNobWFpbC5v +cmcvcGlwZXJtYWlsL25vdG11Y2gvIj5vbmxpbmUgbGlzdCBhcmNoaXZlczwvYT4sCnJlYWQgdGhl +bSBhcyBhCjxhIGhyZWY9Imh0dHA6Ly9ub3RtdWNoLjE5ODk5NC5uMy5uYWJibGUuY29tLyI+d2Vi +IGZvcnVtIChuYWJibGUpPC9hPiwgb3IKZG93bmxvYWQgYW4gPGEgaHJlZj0iaHR0cDovL25vdG11 +Y2htYWlsLm9yZy9hcmNoaXZlcy9ub3RtdWNoLm1ib3giPm1ib3ggZmlsZTwvYT4Kb2YgdGhlIGVu +dGlyZSBtYWlsaW5nLWxpc3QuPC9wPgoKPHA+VGhlIDxjb2RlPm1iMm1kPC9jb2RlPiB1dGlsaXR5 +IGNhbiBiZSB1c2VkIHRvIGNvbnZlcnQgdGhlIGFyY2hpdmVzIHRvIG1haWxkaXIKZm9ybWF0IHdo +aWNoIGlzIGNvbnZlbmllbnQgZm9yIHJlYWRpbmcgdGhlIGFyY2hpdmVzIHdpdGhpbiBub3RtdWNo +Cml0c2VsZi48L3A+Cgo8cD5JZiB5b3UgcHJlZmVyIHJlYWwtdGltZSBjaGF0LCB0aGVyZSBpcyBv +ZnRlbiBzb21lb25lIG9uIHRoZQo8YSBocmVmPSJpcmM6Ly9jaGF0LmZyZWVub2RlLm5ldC8jbm90 +bXVjaCI+I25vdG11Y2g8L2E+QGlyYy5mcmVlbm9kZS5uZXQgSVJDIGNoYW5uZWwuIERvbid0CmFz +ayBpZiB5b3UgY2FuIGFzayBhIHF1ZXN0aW9uLCBqdXN0IGFzaywgYW5kIHBsZWFzZSB3YWl0IGZv +ciBhbiBhbnN3ZXIsIHdlIG1pZ2h0Cm5vdCBiZSBpbiB5b3VyIHRpbWV6b25lLjwvcD4KCjxoMj48 +YSBuYW1lPSJpbmRleDExaDIiPjwvYT5GZWF0dXJlIGlkZWFzPC9oMj4KCjxwPklmIHlvdSBoYXZl +IGEgZmVhdHVyZSBpZGVhL3JlcXVlc3QsIHBsZWFzZSBzZW5kIGl0IHRvIHRoZQo8YSBocmVmPSJo +dHRwOi8vbm90bXVjaG1haWwub3JnL21haWxtYW4vbGlzdGluZm8vbm90bXVjaCI+bWFpbGluZyBs +aXN0PC9hPi4gWW91CmRvbid0IGhhdmUgdG8gYmUgc3Vic2NyaWJlZCB0byBzZW5kLCBhbHRob3Vn +aCB0aGVyZSBtaWdodCBiZSBhIGRlbGF5CmZvciBub24tc3Vic2NyaWJlcnMuPC9wPgoKPGgyPjxh +IG5hbWU9ImluZGV4MTJoMiI+PC9hPldlYnNpdGU8L2gyPgoKPHA+VGhpcyB3ZWJzaXRlIGlzIGEg +d2lraSwgbWFpbnRhaW5lZCB1c2luZyA8YSBocmVmPSJodHRwOi8vaWtpd2lraS5pbmZvIj5pa2l3 +aWtpPC9hPi4gSGVyZQphcmUgPGEgaHJlZj0iLi93aWtpd3JpdGVhY2Nlc3MvIj5pbnN0cnVjdGlv +bnMgb24gaG93IHRvIGVkaXQgdGhlIHdpa2k8L2E+LiBUaGUgd2lraSBjb250ZW50cwphcmUgbW9z +dGx5IDxhIGhyZWY9Ii4vQ09QWUlORy8iPmR1YWwgbGljZW5zZWQgdW5kZXIgQ0MtQlktU0EtMy4w +IGFuZCBHUEx2Mys8L2E+LjwvcD4KCjwvZGl2PgoKCgo8ZGl2IGlkPSJmb290ZXIiIGNsYXNzPSJw +YWdlZm9vdGVyIj4KPGRpdiBpZD0icGFnZWluZm8iPgoKCgoKCgoKCgo8ZGl2IGNsYXNzPSJwYWdl +ZGF0ZSI+Ckxhc3QgZWRpdGVkIDxzcGFuIGNsYXNzPSJkYXRlIj5XZWQgTWFyICAyIDA1OjM3OjMw +IDIwMTY8L3NwYW4+CjwhLS0gQ3JlYXRlZCA8c3BhbiBjbGFzcz0iZGF0ZSI+VHVlIERlYyAgMSAx +MzowNzo0NiAyMDA5PC9zcGFuPiAtLT4KPC9kaXY+Cgo8L2Rpdj48IS0tICNwYWdlaW5mbyAtLT4K +CjwhLS0gZnJvbSBub3RtdWNoIC0tPgo8L2Rpdj48IS0tIC5wYWdlZm9vdGVyICNmb290ZXIgLS0+ +Cgo8L2JvZHk+CjwvaHRtbD4K +--=-=-=--