From tsurdilo at redhat.com Tue Nov 13 12:27:53 2012 Content-Type: multipart/mixed; boundary="===============3706229611138989785==" MIME-Version: 1.0 From: Tihomir Surdilovic To: jbpm-dev at lists.jboss.org Subject: Re: [jbpm-dev] Fwd: Re: [jbpm-users] local history for the jbpm web editor Date: Tue, 13 Nov 2012 11:27:53 -0500 Message-ID: <50A27509.5010509@redhat.com> In-Reply-To: CAOGHXeq+cqxpdJ3p2_NJNLu+ameOLYV_e10wJcdYVonxu8CbLQ@mail.gmail.com --===============3706229611138989785== Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable http://surdilovic.wordpress.com/2012/11/13/local-history-support-in-jbpm-de= signer/ Please review and let me know if you have any concerns. The code is in = jBPM Designer master branch now. Thanks again and hope to hear more from you soon ;) On 11/13/12 3:09 AM, G=C3=A1bor Farkas wrote: > Hi Tihomir, > good to hear that! > Well, maybe just that I'm a java ee developer at Doctusoft Ltd, and a = > link to my blog at http://farkasgabor.blogspot.hu/ (which I don't = > update frequently, thought). > > We've had busy days las weeks here, but if you think it'd be good, I = > can work more on the issues the code had. > Thanks > Gabor > > > On Mon, Nov 12, 2012 at 5:54 PM, Tihomir Surdilovic = > > wrote: > > Hi Gabor, finally found some time to work on this. Should be done > in the next day or so and will post a video here first for review > and comments before making it public (committing). > > I'd like for you to send me some text about yourself that I can > put on the blog when writing about this new feature - just > anything you would want readers to know about you. If you could > send me that this week I'd really appreciate it. > > Thanks. > > On 10/25/12 4:55 PM, G=C3=A1bor Farkas wrote: >> Hi, >> So, I cleaned it up a bit and put some comments. >> I guess it's not nice to attach files on a public mailing list, >> so I uploaded a package here: >> https://docs.google.com/open?id=3D0B3W14YRqXKCZc0RVSjlPWklka2s >> >> If you unzip the folder somewhere, the editor.html can be loaded >> statically from the file. I have this folder so that I can test >> some changes faster, without actually starting the editor. >> To install it in the actual editor, you have to put the >> localhistory.js on the web root (next to editor.html), and add >> this fragment to the editor.html (right after div >> class=3D'processdata' for example, in the body element) >> >>
> style=3D'position:fixed;top:0px;left:0px;z-index:10000; width: >> 20px; height: 20px'> >>
>>
> style=3D'position:fixed;top:32px;left:0px;z-index:10000;width:800px;= height:512px;overflow:auto;visibility:hidden'> >>
>> >>
>> >> >> This will put that transparent white box on the top left corner >> of the editor frame. This 'solution' will be replaced by properly >> registering localhistory as a plugin of course :) >> >> There are some TODO-s and questions in the localhistory.js . >> >> Feedback is welcome :) I'll go on cleaning this up so that this >> can integrate nicely to the editor. >> >> cheers, >> Gabor >> >> On Thu, Oct 25, 2012 at 9:20 PM, G=C3=A1bor Farkas >> > >> wrote: >> >> Hi, >> Thanks for the ping, yes, I'd still like to contribute, it's >> just that the company had some other priorities these weeks, >> but i'll find some time to clean things up a bit. >> There are some questions still: >> >> * /accessing/: I didn't yet scan the source to check how to >> put an icon in the toolbar to display the local history >> panel. I guess the best approach will be to make this >> localhistory thing a plugin, so I can start by taking the >> servicerepo plugin as an example. For the prototype, I >> modified the editor.html and added a transparent div, and >> the panel shows up by clicking on that. >> * /when to create an entry/: currently I check the json >> source of the model every 10 seconds, and if it's >> changed, I create an entry. Maybe this should be extended >> by somehow grouping these entries. For example, if the >> user keeps editing actively for two minutes, I keep only >> one entry, updating that entry every 10 seconds. But if >> the editing period is longer than two minutes for >> example, I keep one entry for each two minutes block. If >> the user edits for 30 seconds, then waits two minutes, >> then edits again, two entries will be created again. >> Something like this might be useful to keep the history >> reasonably small, but still quite useful and real-time. >> * /when entries expire/: entries don't yet expire, so the >> local storage can get full after some time. You can >> delete all entries at once. I think we should add the >> possibility to delete entries individually, and to >> configure that after a specific time, entries are >> autmatically deleted. Or maybe, for entries older than >> one hour, we keep entries only in 5 minutes granularity, >> after two hours, every 1 hours, and one entry for each >> day older than 24 hours. Or maybe this is unnecessary for >> our scope ... >> >> What do you think the best way would be to share the >> prototype with you? Well, maybe just emailing the files will >> be enough for now. >> I'll try to clean up the source tonight and send you an >> initial version, so that you can take a look and try. >> >> Thanks >> Gabor >> >> On Thu, Oct 25, 2012 at 3:01 PM, Tihomir Surdilovic >> > wrote: >> >> Hi Gabor, are you still wanting to contribute your work? >> Just checking in case you are waiting on anything from me >> in order to start. >> >> Thanks. >> >> On 10/3/12 11:32 AM, Tihomir Surdilovic wrote: >>> Forwarding to jbpm-dev list as users list is not being >>> monitored. >>> >>> >>> -------- Original Message -------- >>> Subject: Re: [jbpm-users] local history for the jbpm >>> web editor >>> Date: Wed, 03 Oct 2012 11:23:34 -0400 >>> From: Tihomir Surdilovic >>> >>> To: G=C3=A1bor Farkas >>> >>> CC: jbpm-users(a)lists.jboss.org >>> >>> >>> >>> >>> Hi Gabor - that looks impressive and useful for the >>> community. I'd be happy to work with you to incorporate >>> this functionality into the Designer codebase and >>> promote you as community contributor for jBPM. Let's >>> chat on IRC (#jbpm or #jbpmdev on irc.freenode.net >>> ). >>> >>> Tihomir >>> >>> On 10/3/12 10:42 AM, G=C3=A1bor Farkas wrote: >>>> Hello, >>>> We've created a prototype for a local history >>>> functionality for the jbpm-designer, we needed it for >>>> multiple reasons. It stores data in the browser >>>> localStorage, so it also serves a bit like 'undo after >>>> save'. It checks the json representation of the process >>>> every minute and if it differs, it creates a new local >>>> history entry, including a thumbnailed screenshot. It's >>>> available after browser restart too, so if you >>>> accidentally close the browser, you can still restore >>>> your work. >>>> Here's a small screenshot. >>>> https://docs.google.com/open?id=3D0Bxw7L2kmpno8RkJUY3Zjd0I= 4Mlk >>>> >>>> Needs quite much elaboration, but it's already >>>> functional and useful for our needs. >>>> If you find it interesting, we'd be happy to share it >>>> with the community. >>>> >>>> regards, >>>> Gabor Farkas >>>> >>>> >>>> _______________________________________________ >>>> jbpm-users mailing list >>>> jbpm-users(a)lists.jboss.org >>>> https://lists.jboss.org/mailman/listinfo/jbpm-users >>> >>> >>> >>> >> >> >> > > --===============3706229611138989785== Content-Type: text/html MIME-Version: 1.0 Content-Transfer-Encoding: base64 Content-Disposition: attachment; filename="attachment.html" PGh0bWw+CiAgPGhlYWQ+CiAgICA8bWV0YSBjb250ZW50PSJ0ZXh0L2h0bWw7IGNoYXJzZXQ9SVNP LTg4NTktMSIKICAgICAgaHR0cC1lcXVpdj0iQ29udGVudC1UeXBlIj4KICA8L2hlYWQ+CiAgPGJv ZHkgYmdjb2xvcj0iI0ZGRkZGRiIgdGV4dD0iIzAwMDAwMCI+CiAgICA8ZGl2IGNsYXNzPSJtb3ot Y2l0ZS1wcmVmaXgiPjxhIGNsYXNzPSJtb3otdHh0LWxpbmstZnJlZXRleHQiIGhyZWY9Imh0dHA6 Ly9zdXJkaWxvdmljLndvcmRwcmVzcy5jb20vMjAxMi8xMS8xMy9sb2NhbC1oaXN0b3J5LXN1cHBv cnQtaW4tamJwbS1kZXNpZ25lci8iPmh0dHA6Ly9zdXJkaWxvdmljLndvcmRwcmVzcy5jb20vMjAx Mi8xMS8xMy9sb2NhbC1oaXN0b3J5LXN1cHBvcnQtaW4tamJwbS1kZXNpZ25lci88L2E+PGJyPgog ICAgICBQbGVhc2UgcmV2aWV3IGFuZCBsZXQgbWUga25vdyBpZiB5b3UgaGF2ZSBhbnkgY29uY2Vy bnMuIFRoZSBjb2RlCiAgICAgIGlzIGluIGpCUE0gRGVzaWduZXIgbWFzdGVyIGJyYW5jaCBub3cu PGJyPgogICAgICA8YnI+CiAgICAgIFRoYW5rcyBhZ2FpbiBhbmQgaG9wZSB0byBoZWFyIG1vcmUg ZnJvbSB5b3Ugc29vbiA7KSA8YnI+CiAgICAgIDxicj4KICAgICAgT24gMTEvMTMvMTIgMzowOSBB TSwgRyZhYWN1dGU7Ym9yIEZhcmthcyB3cm90ZTo8YnI+CiAgICA8L2Rpdj4KICAgIDxibG9ja3F1 b3RlCmNpdGU9Im1pZDpDQU9HSFhlcStjcXhwZEozcDJfTkpOTHUrYW1lT0xZVl9lMTB3SmNkWVZv bnh1OENiTFFAbWFpbC5nbWFpbC5jb20iCiAgICAgIHR5cGU9ImNpdGUiPkhpIFRpaG9taXIsCiAg ICAgIDxkaXY+Z29vZCB0byBoZWFyIHRoYXQhPC9kaXY+CiAgICAgIDxkaXY+V2VsbCwgbWF5YmUg anVzdCB0aGF0IEknbSBhIGphdmEgZWUgZGV2ZWxvcGVyIGF0IERvY3R1c29mdAogICAgICAgIEx0 ZCwgYW5kIGEgbGluayB0byBteSBibG9nIGF0Jm5ic3A7PGEgbW96LWRvLW5vdC1zZW5kPSJ0cnVl IgogICAgICAgICAgaHJlZj0iaHR0cDovL2Zhcmthc2dhYm9yLmJsb2dzcG90Lmh1LyI+aHR0cDov L2Zhcmthc2dhYm9yLmJsb2dzcG90Lmh1LzwvYT4mbmJzcDsod2hpY2gKICAgICAgICBJIGRvbid0 IHVwZGF0ZSBmcmVxdWVudGx5LCB0aG91Z2h0KS48L2Rpdj4KICAgICAgPGRpdj48YnI+CiAgICAg IDwvZGl2PgogICAgICA8ZGl2PldlJ3ZlIGhhZCBidXN5IGRheXMgbGFzIHdlZWtzIGhlcmUsIGJ1 dCBpZiB5b3UgdGhpbmsgaXQnZCBiZQogICAgICAgIGdvb2QsIEkgY2FuIHdvcmsgbW9yZSBvbiB0 aGUgaXNzdWVzIHRoZSBjb2RlIGhhZC48L2Rpdj4KICAgICAgPGRpdj5UaGFua3M8L2Rpdj4KICAg ICAgPGRpdj5HYWJvcjwvZGl2PgogICAgICA8ZGl2IGNsYXNzPSJnbWFpbF9leHRyYSI+PGJyPgog ICAgICAgIDxicj4KICAgICAgICA8ZGl2IGNsYXNzPSJnbWFpbF9xdW90ZSI+T24gTW9uLCBOb3Yg MTIsIDIwMTIgYXQgNTo1NCBQTSwKICAgICAgICAgIFRpaG9taXIgU3VyZGlsb3ZpYyA8c3BhbiBk aXI9Imx0ciI+Jmx0OzxhCiAgICAgICAgICAgICAgbW96LWRvLW5vdC1zZW5kPSJ0cnVlIiBocmVm PSJtYWlsdG86dHN1cmRpbG9AcmVkaGF0LmNvbSIKICAgICAgICAgICAgICB0YXJnZXQ9Il9ibGFu ayI+dHN1cmRpbG9AcmVkaGF0LmNvbTwvYT4mZ3Q7PC9zcGFuPiB3cm90ZTo8YnI+CiAgICAgICAg ICA8YmxvY2txdW90ZSBjbGFzcz0iZ21haWxfcXVvdGUiIHN0eWxlPSJtYXJnaW46MCAwIDAKICAg ICAgICAgICAgLjhleDtib3JkZXItbGVmdDoxcHggI2NjYyBzb2xpZDtwYWRkaW5nLWxlZnQ6MWV4 Ij4KICAgICAgICAgICAgPGRpdiBiZ2NvbG9yPSIjRkZGRkZGIiB0ZXh0PSIjMDAwMDAwIj4KICAg ICAgICAgICAgICA8ZGl2PkhpIEdhYm9yLCBmaW5hbGx5IGZvdW5kIHNvbWUgdGltZSB0byB3b3Jr IG9uIHRoaXMuCiAgICAgICAgICAgICAgICBTaG91bGQgYmUgZG9uZSBpbiB0aGUgbmV4dCBkYXkg b3Igc28gYW5kIHdpbGwgcG9zdCBhCiAgICAgICAgICAgICAgICB2aWRlbyBoZXJlIGZpcnN0IGZv ciByZXZpZXcgYW5kIGNvbW1lbnRzIGJlZm9yZSBtYWtpbmcKICAgICAgICAgICAgICAgIGl0IHB1 YmxpYyAoY29tbWl0dGluZykuPGJyPgogICAgICAgICAgICAgICAgPGJyPgogICAgICAgICAgICAg ICAgSSdkIGxpa2UgZm9yIHlvdSB0byBzZW5kIG1lIHNvbWUgdGV4dCBhYm91dCB5b3Vyc2VsZgog ICAgICAgICAgICAgICAgdGhhdCBJIGNhbiBwdXQgb24gdGhlIGJsb2cgd2hlbiB3cml0aW5nIGFi b3V0IHRoaXMgbmV3CiAgICAgICAgICAgICAgICBmZWF0dXJlIC0ganVzdCBhbnl0aGluZyB5b3Ug d291bGQgd2FudCByZWFkZXJzIHRvIGtub3cKICAgICAgICAgICAgICAgIGFib3V0IHlvdS4gSWYg eW91IGNvdWxkIHNlbmQgbWUgdGhhdCB0aGlzIHdlZWsgSSdkCiAgICAgICAgICAgICAgICByZWFs bHkgYXBwcmVjaWF0ZSBpdC48YnI+CiAgICAgICAgICAgICAgICA8YnI+CiAgICAgICAgICAgICAg ICBUaGFua3MuCiAgICAgICAgICAgICAgICA8ZGl2PgogICAgICAgICAgICAgICAgICA8ZGl2IGNs YXNzPSJoNSI+PGJyPgogICAgICAgICAgICAgICAgICAgIE9uIDEwLzI1LzEyIDQ6NTUgUE0sIEcm YWFjdXRlO2JvciBGYXJrYXMgd3JvdGU6PGJyPgogICAgICAgICAgICAgICAgICA8L2Rpdj4KICAg ICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICAgIDxk aXY+CiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJoNSI+CiAgICAgICAgICAgICAgICAgIDxi bG9ja3F1b3RlIHR5cGU9ImNpdGUiPkhpLAogICAgICAgICAgICAgICAgICAgIDxkaXY+U28sIEkg Y2xlYW5lZCBpdCB1cCBhIGJpdCBhbmQgcHV0IHNvbWUKICAgICAgICAgICAgICAgICAgICAgIGNv bW1lbnRzLjwvZGl2PgogICAgICAgICAgICAgICAgICAgIDxkaXY+SSBndWVzcyBpdCdzIG5vdCBu aWNlIHRvIGF0dGFjaCBmaWxlcyBvbiBhCiAgICAgICAgICAgICAgICAgICAgICBwdWJsaWMgbWFp bGluZyBsaXN0LCBzbyBJIHVwbG9hZGVkIGEgcGFja2FnZSBoZXJlOjwvZGl2PgogICAgICAgICAg ICAgICAgICAgIDxkaXY+PGEgbW96LWRvLW5vdC1zZW5kPSJ0cnVlIgogICAgICAgICAgICAgICAg ICAgICAgICBocmVmPSJodHRwczovL2RvY3MuZ29vZ2xlLmNvbS9vcGVuP2lkPTBCM1cxNFlScVhL Q1pjMFJWU2psUFdrbGthMnMiCiAgICAgICAgICAgICAgICAgICAgICAgIHRhcmdldD0iX2JsYW5r Ij5odHRwczovL2RvY3MuZ29vZ2xlLmNvbS9vcGVuP2lkPTBCM1cxNFlScVhLQ1pjMFJWU2psUFdr bGthMnM8L2E+PC9kaXY+CiAgICAgICAgICAgICAgICAgICAgPGRpdj48YnI+CiAgICAgICAgICAg ICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgICAgICAgICAgPGRpdj5JZiB5b3UgdW56aXAgdGhl IGZvbGRlciBzb21ld2hlcmUsIHRoZQogICAgICAgICAgICAgICAgICAgICAgZWRpdG9yLmh0bWwg Y2FuIGJlIGxvYWRlZCBzdGF0aWNhbGx5IGZyb20gdGhlCiAgICAgICAgICAgICAgICAgICAgICBm aWxlLiBJIGhhdmUgdGhpcyBmb2xkZXIgc28gdGhhdCBJIGNhbiB0ZXN0IHNvbWUKICAgICAgICAg ICAgICAgICAgICAgIGNoYW5nZXMgZmFzdGVyLCB3aXRob3V0IGFjdHVhbGx5IHN0YXJ0aW5nIHRo ZQogICAgICAgICAgICAgICAgICAgICAgZWRpdG9yLjwvZGl2PgogICAgICAgICAgICAgICAgICAg IDxkaXY+VG8gaW5zdGFsbCBpdCBpbiB0aGUgYWN0dWFsIGVkaXRvciwgeW91IGhhdmUgdG8KICAg ICAgICAgICAgICAgICAgICAgIHB1dCB0aGUgbG9jYWxoaXN0b3J5LmpzIG9uIHRoZSB3ZWIgcm9v dCAobmV4dCB0bwogICAgICAgICAgICAgICAgICAgICAgZWRpdG9yLmh0bWwpLCBhbmQgYWRkIHRo aXMgZnJhZ21lbnQgdG8gdGhlCiAgICAgICAgICAgICAgICAgICAgICBlZGl0b3IuaHRtbCAocmln aHQgYWZ0ZXIgJm5ic3A7ZGl2IGNsYXNzPSdwcm9jZXNzZGF0YScKICAgICAgICAgICAgICAgICAg ICAgIGZvciBleGFtcGxlLCBpbiB0aGUgYm9keSBlbGVtZW50KTwvZGl2PgogICAgICAgICAgICAg ICAgICAgIDxkaXY+CiAgICAgICAgICAgICAgICAgICAgICA8ZGl2Pjxicj4KICAgICAgICAgICAg ICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICAgICAgICAgICAgPGRpdj4mbmJzcDsgJm5ic3A7 ICZsdDtkaXYgaWQ9J2xzRGl2JyB0aXRsZT0nTG9jYWxIaXN0b3J5CiAgICAgICAgICAgICAgICAg ICAgICAgIGZvciB0ZWggTHVMeicKICAgICAgICAgICAgICAgICAgICAgICAgc3R5bGU9J3Bvc2l0 aW9uOmZpeGVkO3RvcDowcHg7bGVmdDowcHg7ei1pbmRleDoxMDAwMDsKICAgICAgICAgICAgICAg ICAgICAgICAgd2lkdGg6IDIwcHg7IGhlaWdodDogMjBweCcmZ3Q7PC9kaXY+CiAgICAgICAgICAg ICAgICAgICAgICA8ZGl2PiZuYnNwOyAmbmJzcDsgJmx0Oy9kaXYmZ3Q7PC9kaXY+CiAgICAgICAg ICAgICAgICAgICAgICA8ZGl2PiZuYnNwOyAmbmJzcDsgJmx0O2RpdiBpZD0nbGhDb250YWluZXJE aXYnCnN0eWxlPSdwb3NpdGlvbjpmaXhlZDt0b3A6MzJweDtsZWZ0OjBweDt6LWluZGV4OjEwMDAw O3dpZHRoOjgwMHB4O2hlaWdodDo1MTJweDtvdmVyZmxvdzphdXRvO3Zpc2liaWxpdHk6aGlkZGVu JyZndDs8L2Rpdj4KICAgICAgICAgICAgICAgICAgICAgIDxkaXY+Jm5ic3A7ICZuYnNwOyAmbmJz cDsgJmx0O2RpdiBpZD0nZ3JpZERpdicvJmd0OzwvZGl2PgogICAgICAgICAgICAgICAgICAgICAg PGRpdj4mbmJzcDsgJm5ic3A7ICZuYnNwOyAmbHQ7c3BhbiBpZD0nbGhDbGVhckJ1dHRvbicvJmd0 OzwvZGl2PgogICAgICAgICAgICAgICAgICAgICAgPGRpdj4mbmJzcDsgJm5ic3A7ICZsdDsvZGl2 Jmd0OzwvZGl2PgogICAgICAgICAgICAgICAgICAgICAgPGRpdj4mbmJzcDsgJm5ic3A7ICZsdDtz Y3JpcHQKICAgICAgICAgICAgICAgICAgICAgICAgc3JjPSIvZGVzaWduZXIvbG9jYWxoaXN0b3J5 LmpzIgogICAgICAgICAgICAgICAgICAgICAgICB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiJmd0Ozwv ZGl2PgogICAgICAgICAgICAgICAgICAgICAgPGRpdj4mbmJzcDsgJm5ic3A7ICZsdDsvc2NyaXB0 Jmd0OzwvZGl2PgogICAgICAgICAgICAgICAgICAgICAgPGRpdj4gPGJyPgogICAgICAgICAgICAg ICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgICAgICAgICAgICBUaGlzIHdpbGwgcHV0IHRoYXQg dHJhbnNwYXJlbnQgd2hpdGUgYm94IG9uIHRoZQogICAgICAgICAgICAgICAgICAgICAgdG9wIGxl ZnQgY29ybmVyIG9mIHRoZSBlZGl0b3IgZnJhbWUuIFRoaXMKICAgICAgICAgICAgICAgICAgICAg ICdzb2x1dGlvbicgd2lsbCBiZSByZXBsYWNlZCBieSBwcm9wZXJseQogICAgICAgICAgICAgICAg ICAgICAgcmVnaXN0ZXJpbmcgbG9jYWxoaXN0b3J5IGFzIGEgcGx1Z2luIG9mIGNvdXJzZSA6KTwv ZGl2PgogICAgICAgICAgICAgICAgICAgIDxkaXY+PGJyPgogICAgICAgICAgICAgICAgICAgIDwv ZGl2PgogICAgICAgICAgICAgICAgICAgIDxkaXY+IFRoZXJlIGFyZSBzb21lIFRPRE8tcyBhbmQg cXVlc3Rpb25zIGluIHRoZQogICAgICAgICAgICAgICAgICAgICAgbG9jYWxoaXN0b3J5LmpzIC48 L2Rpdj4KICAgICAgICAgICAgICAgICAgICA8ZGl2Pjxicj4KICAgICAgICAgICAgICAgICAgICA8 L2Rpdj4KICAgICAgICAgICAgICAgICAgICA8ZGl2PkZlZWRiYWNrIGlzIHdlbGNvbWUgOikgSSds bCBnbyBvbiBjbGVhbmluZyB0aGlzCiAgICAgICAgICAgICAgICAgICAgICB1cCBzbyB0aGF0IHRo aXMgY2FuIGludGVncmF0ZSBuaWNlbHkgdG8gdGhlCiAgICAgICAgICAgICAgICAgICAgICBlZGl0 b3IuPC9kaXY+CiAgICAgICAgICAgICAgICAgICAgPGRpdj48YnI+CiAgICAgICAgICAgICAgICAg ICAgPC9kaXY+CiAgICAgICAgICAgICAgICAgICAgPGRpdj5jaGVlcnMsPC9kaXY+CiAgICAgICAg ICAgICAgICAgICAgPGRpdj5HYWJvcjwvZGl2PgogICAgICAgICAgICAgICAgICAgIDxkaXY+PGJy PgogICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iZ21haWxfcXVvdGUiPk9uIFRodSwg T2N0IDI1LCAyMDEyIGF0CiAgICAgICAgICAgICAgICAgICAgICAgIDk6MjAgUE0sIEcmYWFjdXRl O2JvciBGYXJrYXMgPHNwYW4gZGlyPSJsdHIiPiZsdDs8YQogICAgICAgICAgICAgICAgICAgICAg ICAgICAgbW96LWRvLW5vdC1zZW5kPSJ0cnVlIgogICAgICAgICAgICAgICAgICAgICAgICAgICAg aHJlZj0ibWFpbHRvOmdhYm9yLmZhcmthc0Bkb2N0dXNvZnQuY29tIgogICAgICAgICAgICAgICAg ICAgICAgICAgICAgdGFyZ2V0PSJfYmxhbmsiPmdhYm9yLmZhcmthc0Bkb2N0dXNvZnQuY29tPC9h PiZndDs8L3NwYW4+CiAgICAgICAgICAgICAgICAgICAgICAgIHdyb3RlOjxicj4KICAgICAgICAg ICAgICAgICAgICAgICAgPGJsb2NrcXVvdGUgY2xhc3M9ImdtYWlsX3F1b3RlIiBzdHlsZT0ibWFy Z2luOjAKICAgICAgICAgICAgICAgICAgICAgICAgICAwIDAgLjhleDtib3JkZXItbGVmdDoxcHgg I2NjYwogICAgICAgICAgICAgICAgICAgICAgICAgIHNvbGlkO3BhZGRpbmctbGVmdDoxZXgiPkhp LAogICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXY+VGhhbmtzIGZvciB0aGUgcGluZywgeWVz LCBJJ2Qgc3RpbGwgbGlrZQogICAgICAgICAgICAgICAgICAgICAgICAgICAgdG8gY29udHJpYnV0 ZSwgaXQncyBqdXN0IHRoYXQgdGhlIGNvbXBhbnkKICAgICAgICAgICAgICAgICAgICAgICAgICAg IGhhZCBzb21lIG90aGVyIHByaW9yaXRpZXMgdGhlc2Ugd2Vla3MsIGJ1dAogICAgICAgICAgICAg ICAgICAgICAgICAgICAgaSdsbCBmaW5kIHNvbWUgdGltZSB0byBjbGVhbiB0aGluZ3MgdXAgYQog ICAgICAgICAgICAgICAgICAgICAgICAgICAgYml0LjwvZGl2PgogICAgICAgICAgICAgICAgICAg ICAgICAgIDxkaXY+VGhlcmUgYXJlIHNvbWUgcXVlc3Rpb25zIHN0aWxsOjwvZGl2PgogICAgICAg ICAgICAgICAgICAgICAgICAgIDxkaXY+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dWw+ CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxsaT48aT5hY2Nlc3Npbmc8L2k+OiBJIGRp ZG4ndCB5ZXQgc2NhbgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRoZSBzb3VyY2Ug dG8gY2hlY2sgaG93IHRvIHB1dCBhbiBpY29uCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgaW4gdGhlIHRvb2xiYXIgdG8gZGlzcGxheSB0aGUgbG9jYWwKICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICBoaXN0b3J5IHBhbmVsLiBJIGd1ZXNzIHRoZSBiZXN0IGFwcHJvYWNoCiAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgd2lsbCBiZSB0byBtYWtlIHRoaXMgbG9jYWxo aXN0b3J5IHRoaW5nCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYSBwbHVnaW4sIHNv IEkgY2FuIHN0YXJ0IGJ5IHRha2luZyB0aGUKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICBzZXJ2aWNlcmVwbyBwbHVnaW4gYXMgYW4gZXhhbXBsZS4gRm9yCiAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgdGhlIHByb3RvdHlwZSwgSSBtb2RpZmllZCB0aGUKICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICBlZGl0b3IuaHRtbCBhbmQgYWRkZWQgYSB0cmFuc3BhcmVudCBk aXYsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYW5kIHRoZSBwYW5lbCBzaG93cyB1 cCBieSBjbGlja2luZyBvbgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRoYXQuPC9s aT4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGxpPjxpPndoZW4gdG8gY3JlYXRlIGFu IGVudHJ5PC9pPjoKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjdXJyZW50bHkgSSBj aGVjayB0aGUganNvbiBzb3VyY2Ugb2YgdGhlCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgbW9kZWwgZXZlcnkgMTAgc2Vjb25kcywgYW5kIGlmIGl0J3MKICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICBjaGFuZ2VkLCBJIGNyZWF0ZSBhbiBlbnRyeS4gTWF5YmUgdGhpcwogICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNob3VsZCBiZSBleHRlbmRlZCBieSBzb21laG93 IGdyb3VwaW5nCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhlc2UgZW50cmllcy4g Rm9yIGV4YW1wbGUsIGlmIHRoZSB1c2VyCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg a2VlcHMgZWRpdGluZyBhY3RpdmVseSBmb3IgdHdvIG1pbnV0ZXMsCiAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgSSBrZWVwIG9ubHkgb25lIGVudHJ5LCB1cGRhdGluZyB0aGF0CiAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgZW50cnkgZXZlcnkgMTAgc2Vjb25kcy4gQnV0IGlm IHRoZQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVkaXRpbmcgcGVyaW9kIGlzIGxv bmdlciB0aGFuIHR3bwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1pbnV0ZXMgZm9y IGV4YW1wbGUsIEkga2VlcCBvbmUgZW50cnkKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICBmb3IgZWFjaCB0d28gbWludXRlcyBibG9jay4gSWYgdGhlIHVzZXIKICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICBlZGl0cyBmb3IgMzAgc2Vjb25kcywgdGhlbiB3YWl0cyB0d28KICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBtaW51dGVzLCB0aGVuIGVkaXRzIGFnYWluLCB0 d28gZW50cmllcwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdpbGwgYmUgY3JlYXRl ZCBhZ2Fpbi4gU29tZXRoaW5nIGxpa2UKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0 aGlzIG1pZ2h0IGJlIHVzZWZ1bCB0byBrZWVwIHRoZSBoaXN0b3J5CiAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgcmVhc29uYWJseSBzbWFsbCwgYnV0IHN0aWxsIHF1aXRlIHVzZWZ1bAog ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFuZCByZWFsLXRpbWUuPC9saT4KICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgPGxpPjxpPndoZW4gZW50cmllcyBleHBpcmU8L2k+OiBl bnRyaWVzCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZG9uJ3QgeWV0IGV4cGlyZSwg c28gdGhlIGxvY2FsIHN0b3JhZ2UKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjYW4g Z2V0IGZ1bGwgYWZ0ZXIgc29tZSB0aW1lLiBZb3UgY2FuCiAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgZGVsZXRlIGFsbCBlbnRyaWVzIGF0IG9uY2UuIEkgdGhpbmsgd2UKICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICBzaG91bGQgYWRkIHRoZSBwb3NzaWJpbGl0eSB0byBkZWxl dGUKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBlbnRyaWVzIGluZGl2aWR1YWxseSwg YW5kIHRvIGNvbmZpZ3VyZQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRoYXQgYWZ0 ZXIgYSBzcGVjaWZpYyB0aW1lLCBlbnRyaWVzIGFyZQogICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgIGF1dG1hdGljYWxseSBkZWxldGVkLiBPciBtYXliZSwgZm9yCiAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgZW50cmllcyBvbGRlciB0aGFuIG9uZSBob3VyLCB3ZSBrZWVwCiAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZW50cmllcyBvbmx5IGluIDUgbWludXRlcyBn cmFudWxhcml0eSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhZnRlciB0d28gaG91 cnMsIGV2ZXJ5IDEgaG91cnMsIGFuZCBvbmUKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICBlbnRyeSBmb3IgZWFjaCBkYXkgb2xkZXIgdGhhbiAyNCBob3Vycy4KICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICBPciBtYXliZSB0aGlzIGlzIHVubmVjZXNzYXJ5IGZvciBvdXIKICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzY29wZSAuLi48L2xpPgogICAgICAgICAgICAg ICAgICAgICAgICAgICAgPC91bD4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXY+V2hh dCBkbyB5b3UgdGhpbmsgdGhlIGJlc3Qgd2F5IHdvdWxkIGJlCiAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIHRvIHNoYXJlIHRoZSBwcm90b3R5cGUgd2l0aCB5b3U/IFdlbGwsCiAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIG1heWJlIGp1c3QgZW1haWxpbmcgdGhlIGZpbGVzIHdpbGwg YmUKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZW5vdWdoIGZvciBub3cuPC9kaXY+CiAg ICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgICAgICAgICAgICAgICAg PGRpdj5JJ2xsIHRyeSB0byBjbGVhbiB1cCB0aGUgc291cmNlIHRvbmlnaHQKICAgICAgICAgICAg ICAgICAgICAgICAgICAgIGFuZCBzZW5kIHlvdSBhbiBpbml0aWFsIHZlcnNpb24sIHNvIHRoYXQg eW91CiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjYW4gdGFrZSBhIGxvb2sgYW5kIHRyeS48 L2Rpdj4KICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2Pjxicj4KICAgICAgICAgICAgICAg ICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2PlRoYW5rczwv ZGl2PgogICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXY+R2Fib3I8L2Rpdj4KICAgICAgICAg ICAgICAgICAgICAgICAgICA8ZGl2PgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdj4K ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdj48YnI+CiAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iZ21haWxfcXVvdGUiPk9uIFRodSwgT2N0IDI1LAog ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMjAxMiBhdCAzOjAxIFBNLCBUaWhvbWly IFN1cmRpbG92aWMgPHNwYW4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZGly PSJsdHIiPiZsdDs8YQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1vei1k by1ub3Qtc2VuZD0idHJ1ZSIKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBo cmVmPSJtYWlsdG86dHN1cmRpbG9AcmVkaGF0LmNvbSIKICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICB0YXJnZXQ9Il9ibGFuayI+dHN1cmRpbG9AcmVkaGF0LmNvbTwvYT4mZ3Q7 PC9zcGFuPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgd3JvdGU6PGJyPgogICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGJsb2NrcXVvdGUgY2xhc3M9ImdtYWlsX3F1 b3RlIgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdHlsZT0ibWFyZ2luOjAg MCAwCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC44ZXg7Ym9yZGVyLWxlZnQ6 MXB4ICNjY2MKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc29saWQ7cGFkZGlu Zy1sZWZ0OjFleCI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgYmdj b2xvcj0iI0ZGRkZGRiIKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0ZXh0 PSIjMDAwMDAwIj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2Pkhp IEdhYm9yLCBhcmUgeW91IHN0aWxsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICB3YW50aW5nIHRvIGNvbnRyaWJ1dGUgeW91ciB3b3JrPwogICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgSnVzdCBjaGVja2luZyBpbiBjYXNlIHlvdSBhcmUKICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdhaXRpbmcgb24gYW55dGhpbmcgZnJv bSBtZSBpbgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgb3JkZXIgdG8g c3RhcnQuIDxicj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxicj4K ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFRoYW5rcy4KICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXY+CiAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIDxkaXY+PGJyPgogICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgIE9uIDEwLzMvMTIgMTE6MzIgQU0sIFRpaG9taXIKICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBTdXJkaWxvdmljIHdyb3RlOjxicj4K ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICA8ZGl2PgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRp dj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGJsb2NrcXVvdGUg dHlwZT0iY2l0ZSI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg Rm9yd2FyZGluZyB0byBqYnBtLWRldiBsaXN0CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgYXMgdXNlcnMgbGlzdCBpcyBub3QgYmVpbmcKICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBtb25pdG9yZWQuPGJyPgogICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXY+PGJyPgogICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGJyPgogICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgLS0tLS0tLS0gT3JpZ2luYWwgTWVzc2FnZQogICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLS0tLS0tLS0KICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0YWJsZSBib3JkZXI9IjAiCiAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNlbGxwYWRkaW5n PSIwIgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjZWxs c3BhY2luZz0iMCI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIDx0Ym9keT4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICA8dHI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICA8dGggYWxpZ249IlJJR0hUIgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICBub3dyYXA9Im5vd3JhcCIKICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmFsaWduPSJCQVNFTElORSI+U3ViamVj dDoKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwv dGg+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8 dGQ+UmU6IFtqYnBtLXVzZXJzXQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICBsb2NhbCBoaXN0b3J5IGZvcgogICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aGUgamJwbSB3ZWIKICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZWRpdG9yPC90ZD4KICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3RyPgogICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0cj4KICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0aCBhbGlnbj0i UklHSFQiCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIG5vd3JhcD0ibm93cmFwIgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICB2YWxpZ249IkJBU0VMSU5FIj5EYXRlOgogICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC90aD4KICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0ZD5XZWQsIDAzIE9jdCAyMDEy CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEx OjIzOjM0IC0wNDAwPC90ZD4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICA8L3RyPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIDx0cj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIDx0aCBhbGlnbj0iUklHSFQiCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIG5vd3JhcD0ibm93cmFwIgogICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2YWxpZ249IkJBU0VMSU5FIj5G cm9tOgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg PC90aD4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg IDx0ZD5UaWhvbWlyCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIFN1cmRpbG92aWMgPGEKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICBtb3otZG8tbm90LXNlbmQ9InRydWUiCmhyZWY9Im1haWx0 bzp0c3VyZGlsb0ByZWRoYXQuY29tIiB0YXJnZXQ9Il9ibGFuayI+Jmx0O3RzdXJkaWxvQHJlZGhh dC5jb20mZ3Q7PC9hPjwvdGQ+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgPC90cj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICA8dHI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICA8dGggYWxpZ249IlJJR0hUIgogICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICBub3dyYXA9Im5vd3JhcCIKICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmFsaWduPSJCQVNFTElORSI+ VG86CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8 L3RoPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg PHRkPkcmYWFjdXRlO2JvciBGYXJrYXMgPGEKbW96LWRvLW5vdC1zZW5kPSJ0cnVlIiBocmVmPSJt YWlsdG86Z2Fib3IuZmFya2FzQGRvY3R1c29mdC5jb20iCiAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGFyZ2V0PSJfYmxhbmsiPiZsdDtnYWJv ci5mYXJrYXNAZG9jdHVzb2Z0LmNvbSZndDs8L2E+PC90ZD4KICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3RyPgogICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0cj4KICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0aCBhbGlnbj0iUklHSFQiCiAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5vd3JhcD0ibm93cmFw IgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2 YWxpZ249IkJBU0VMSU5FIj5DQzoKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIDwvdGg+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICA8dGQ+PGEKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICBtb3otZG8tbm90LXNlbmQ9InRydWUiCmhyZWY9Im1haWx0 bzpqYnBtLXVzZXJzQGxpc3RzLmpib3NzLm9yZyIgdGFyZ2V0PSJfYmxhbmsiPmpicG0tdXNlcnNA bGlzdHMuamJvc3Mub3JnPC9hPjwvdGQ+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgPC90cj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgPC90Ym9keT4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIDwvdGFibGU+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICA8YnI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICA8YnI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8 ZGl2PkhpIEdhYm9yIC0gdGhhdCBsb29rcwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICBpbXByZXNzaXZlIGFuZCB1c2VmdWwKICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZm9yIHRoZSBjb21tdW5pdHkuIEknZAogICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBiZSBoYXBweSB0byB3 b3JrIHdpdGgKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg eW91IHRvIGluY29ycG9yYXRlIHRoaXMKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgZnVuY3Rpb25hbGl0eSBpbnRvIHRoZQogICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBEZXNpZ25lciBjb2RlYmFzZSBhbmQKICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcHJvbW90ZSB5b3UgYXMg Y29tbXVuaXR5CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg IGNvbnRyaWJ1dG9yIGZvciBqQlBNLgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICBMZXQncyBjaGF0IG9uIElSQyAoI2picG0KICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgb3IgI2picG1kZXYgb24gPGEKICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBtb3otZG8tbm90LXNlbmQ9 InRydWUiCmhyZWY9Imh0dHA6Ly9pcmMuZnJlZW5vZGUubmV0IiB0YXJnZXQ9Il9ibGFuayI+aXJj LmZyZWVub2RlLm5ldDwvYT4pLiA8YnI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIDxicj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgVGlob21pcjxicj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgPGJyPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICBPbiAxMC8zLzEyIDEwOjQyIEFNLAogICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICBHJmFhY3V0ZTtib3IgRmFya2FzIHdyb3RlOjxicj4KICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PgogICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGJsb2NrcXVvdGUgdHlwZT0i Y2l0ZSI+SGVsbG8sCgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICA8ZGl2PldlJ3ZlIGNyZWF0ZWQgYQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgIHByb3RvdHlwZSBmb3IgYSBsb2NhbAogICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGhpc3RvcnkgZnVuY3Rpb25hbGl0eQog ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZvciB0aGUg amJwbS1kZXNpZ25lciwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICB3ZSBuZWVkZWQgaXQgZm9yCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgbXVsdGlwbGUgcmVhc29ucy4gSXQKICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdG9yZXMgZGF0YSBpbiB0aGUKICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBicm93c2VyIGxvY2Fs U3RvcmFnZSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICBzbyBpdCBhbHNvIHNlcnZlcyBhCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgYml0IGxpa2UgJ3VuZG8gYWZ0ZXIKICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzYXZlJy4gSXQgY2hlY2tzIHRoZQogICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGpzb24gcmVwcmVzZW50 YXRpb24gb2YKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICB0aGUgcHJvY2VzcyBldmVyeQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIG1pbnV0ZSBhbmQgaWYgaXQKICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICBkaWZmZXJzLCBpdCBjcmVhdGVzIGEKICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBuZXcgbG9jYWwgaGlzdG9yeQog ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVudHJ5LCBp bmNsdWRpbmcgYQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIHRodW1ibmFpbGVkCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgc2NyZWVuc2hvdC4gSXQncwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgIGF2YWlsYWJsZSBhZnRlcgogICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJyb3dzZXIgcmVzdGFydCB0b28sCiAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc28gaWYgeW91IGFjY2lk ZW50YWxseQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg IGNsb3NlIHRoZSBicm93c2VyLCB5b3UKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICBjYW4gc3RpbGwgcmVzdG9yZSB5b3VyCiAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgd29yay48L2Rpdj4KICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdj5IZXJlJ3MgYSBzbWFsbAog ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNjcmVlbnNo b3QuPC9kaXY+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg IDxkaXY+PGEKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIG1vei1kby1ub3Qtc2VuZD0idHJ1ZSIKaHJlZj0iaHR0cHM6Ly9kb2NzLmdvb2dsZS5jb20v b3Blbj9pZD0wQnh3N0wya21wbm84UmtKVVkzWmpkMEk0TWxrIgogICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGFyZ2V0PSJfYmxhbmsiPmh0dHBzOi8v ZG9jcy5nb29nbGUuY29tL29wZW4/aWQ9MEJ4dzdMMmttcG5vOFJrSlVZM1pqZDBJNE1sazwvYT48 L2Rpdj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRp dj48YnI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwv ZGl2PgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2 Pk5lZWRzIHF1aXRlIG11Y2gKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICBlbGFib3JhdGlvbiwgYnV0IGl0J3MKICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICBhbHJlYWR5IGZ1bmN0aW9uYWwgYW5kCiAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdXNlZnVsIGZvciBvdXIg bmVlZHMuPC9kaXY+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIDxkaXY+SWYgeW91IGZpbmQgaXQKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICBpbnRlcmVzdGluZywgd2UnZCBiZQogICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGhhcHB5IHRvIHNoYXJlIGl0IHdpdGgKICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aGUgY29tbXVu aXR5LjwvZGl2PgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICA8ZGl2Pjxicj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgPC9kaXY+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg IDxkaXY+cmVnYXJkcyw8L2Rpdj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgPGRpdj5HYWJvciBGYXJrYXM8L2Rpdj4KICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgPGJyPgogICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICA8ZmllbGRzZXQ+PC9maWVsZHNldD4KICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGJyPgogICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8cHJlPl9fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fCmpicG0tdXNlcnMgbWFpbGluZyBsaXN0CjxhIG1v ei1kby1ub3Qtc2VuZD0idHJ1ZSIgaHJlZj0ibWFpbHRvOmpicG0tdXNlcnNAbGlzdHMuamJvc3Mu b3JnIiB0YXJnZXQ9Il9ibGFuayI+amJwbS11c2Vyc0BsaXN0cy5qYm9zcy5vcmc8L2E+CjxhIG1v ei1kby1ub3Qtc2VuZD0idHJ1ZSIgaHJlZj0iaHR0cHM6Ly9saXN0cy5qYm9zcy5vcmcvbWFpbG1h bi9saXN0aW5mby9qYnBtLXVzZXJzIiB0YXJnZXQ9Il9ibGFuayI+aHR0cHM6Ly9saXN0cy5qYm9z cy5vcmcvbWFpbG1hbi9saXN0aW5mby9qYnBtLXVzZXJzPC9hPgo8L3ByZT4KICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvYmxvY2txdW90ZT4KICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxicj4KICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxicj4KICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIDxicj4KICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICA8YnI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg IDwvYmxvY2txdW90ZT4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg PGJyPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+CiAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgPC9ibG9ja3F1b3RlPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2Pgog ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxicj4KICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj4KICAgICAg ICAgICAgICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgICAgICAgICAgICAgPC9ibG9j a3F1b3RlPgogICAgICAgICAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgICAgICAgICAg ICA8YnI+CiAgICAgICAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgICAgICAgIDwvYmxv Y2txdW90ZT4KICAgICAgICAgICAgICAgICAgPGJyPgogICAgICAgICAgICAgICAgPC9kaXY+CiAg ICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgPC9ibG9ja3F1 b3RlPgogICAgICAgIDwvZGl2PgogICAgICAgIDxicj4KICAgICAgPC9kaXY+CiAgICA8L2Jsb2Nr cXVvdGU+CiAgICA8YnI+CiAgPC9ib2R5Pgo8L2h0bWw+Cg== --===============3706229611138989785==--