From mboxrd@z Thu Jan 1 00:00:00 1970 Path: news.gmane.org!not-for-mail From: Xue Fuqiao Newsgroups: gmane.emacs.devel Subject: Re: Integrating new "GNU Emacs Contributing Guide" into Emacs web pages. Date: Tue, 23 Apr 2013 12:49:15 +0800 Message-ID: References: <878v4a4jf8.fsf@ktab.red-bean.com> <8bppxmttfa.fsf@fencepost.gnu.org> <87ppxm33rc.fsf_-_@ktab.red-bean.com> NNTP-Posting-Host: plane.gmane.org Mime-Version: 1.0 Content-Type: multipart/mixed; boundary=14dae93407454802e804daffe885 X-Trace: ger.gmane.org 1366692559 16156 80.91.229.3 (23 Apr 2013 04:49:19 GMT) X-Complaints-To: usenet@ger.gmane.org NNTP-Posting-Date: Tue, 23 Apr 2013 04:49:19 +0000 (UTC) To: emacs-devel@gnu.org Original-X-From: emacs-devel-bounces+ged-emacs-devel=m.gmane.org@gnu.org Tue Apr 23 06:49:23 2013 Return-path: Envelope-to: ged-emacs-devel@m.gmane.org Original-Received: from lists.gnu.org ([208.118.235.17]) by plane.gmane.org with esmtp (Exim 4.69) (envelope-from ) id 1UUVAQ-0004O5-Rc for ged-emacs-devel@m.gmane.org; Tue, 23 Apr 2013 06:49:23 +0200 Original-Received: from localhost ([::1]:39843 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1UUVAQ-0000Je-Gx for ged-emacs-devel@m.gmane.org; Tue, 23 Apr 2013 00:49:22 -0400 Original-Received: from eggs.gnu.org ([208.118.235.92]:35073) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1UUVAM-0000JW-Md for emacs-devel@gnu.org; Tue, 23 Apr 2013 00:49:20 -0400 Original-Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1UUVAK-0006G1-8K for emacs-devel@gnu.org; Tue, 23 Apr 2013 00:49:18 -0400 Original-Received: from mail-ie0-x231.google.com ([2607:f8b0:4001:c03::231]:51062) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1UUVAJ-0006Fl-UH for emacs-devel@gnu.org; Tue, 23 Apr 2013 00:49:16 -0400 Original-Received: by mail-ie0-f177.google.com with SMTP id 9so243213iec.22 for ; Mon, 22 Apr 2013 21:49:15 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113; h=mime-version:x-received:in-reply-to:references:date:message-id :subject:from:to:content-type; bh=mYfocFPcgufinWtyBzkBptR+h1ezFHwJKanoCCKsv2g=; b=OQEDlph5wO7aS5KSEgPeZT68pjS/8qKA/6br3V0YMAztHluE3Fg7P0f5BAAEwfAJjt E5ewv9gPKLF0XFjQsv11G0uvvAjhcJJo3rhGIm4lOFjWJQWWRkVhzWmL+VAkr1TfO5z1 BZpx+3iyp483uTal83FApmcZbFsmymiFwxs5Mg/rLS7GEgJV6o2TQ6OMm4bcNcYvL/gw qP+Tt3O4maZLYII3NYgAvHCTW+hP8RPJ6y1trDmnrh6/adzQx/hJtxTilGRD99mNC4iu NexQiuFk1f8lRATC6qq/qhxHlVLb0KlMhPejpFBVuHDqSFnTX2iLEbK5yP+S4e4BFFLc B8xQ== X-Received: by 10.50.51.226 with SMTP id n2mr9957801igo.25.1366692555389; Mon, 22 Apr 2013 21:49:15 -0700 (PDT) Original-Received: by 10.43.18.10 with HTTP; Mon, 22 Apr 2013 21:49:15 -0700 (PDT) In-Reply-To: X-detected-operating-system: by eggs.gnu.org: Error: Malformed IPv6 address (bad octet value). X-Received-From: 2607:f8b0:4001:c03::231 X-BeenThere: emacs-devel@gnu.org X-Mailman-Version: 2.1.14 Precedence: list List-Id: "Emacs development discussions." List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: emacs-devel-bounces+ged-emacs-devel=m.gmane.org@gnu.org Original-Sender: emacs-devel-bounces+ged-emacs-devel=m.gmane.org@gnu.org Xref: news.gmane.org gmane.emacs.devel:159145 Archived-At: --14dae93407454802e804daffe885 Content-Type: text/plain; charset=UTF-8 Here is the very first version in Texinfo format. There are some issues: 1. no EDITION 2. no @copying 3. no @documentencoding 4. no introduction in Top node 5. TODO of this guide can be moved to etc/TODO I don't have time resolving them now, can anyone familiar with Texinfo help? -- Best regards, Xue Fuqiao. http://www.gnu.org/software/emacs/ --14dae93407454802e804daffe885 Content-Type: application/x-texinfo; name="contribute-fsf.texi" Content-Disposition: attachment; filename="contribute-fsf.texi" Content-Transfer-Encoding: base64 X-Attachment-Id: f_hfulg66d0 XGlucHV0IHRleGluZm8gICAgQGMgLSotIHRleGluZm8gLSotCkBjICUqKnN0YXJ0IG9mIGhlYWRl cgpAc2V0ZmlsZW5hbWUgY29udHJpYnV0ZS1mc2YuaW5mbwpAc2V0dGl0bGUgR05VIEVtYWNzIENv bnRyaWJ1dG9yIEd1aWRlCgpAZG9jdW1lbnRsYW5ndWFnZSBlbgoKCkBjIFZlcnNpb24gYW5kIENv bnRhY3QgSW5mbwpAc2V0IEFVVEhPUiBYdWUgRnVxaWFvCkBjICUqKmVuZCBvZiBoZWFkZXIKQGZp bmFsb3V0CgoKQGNvcHlpbmcKQGVuZCBjb3B5aW5nCgoKCgpAdGl0bGVwYWdlCkB0aXRsZSBHTlUg RW1hY3MgQ29udHJpYnV0b3IgR3VpZGUKCkBhdXRob3IgWHVlIEZ1cWlhbwoKQGMgVGhlIGZvbGxv d2luZyB0d28gY29tbWFuZHMgc3RhcnQgdGhlIGNvcHlyaWdodCBwYWdlLgpAcGFnZQpAdnNraXAg MHB0IHBsdXMgMWZpbGxsCkBpbnNlcnRjb3B5aW5nCkBlbmQgdGl0bGVwYWdlCgpAYyBPdXRwdXQg dGhlIHRhYmxlIG9mIGNvbnRlbnRzIGF0IHRoZSBiZWdpbm5pbmcuCkBjb250ZW50cwoKQGlmbm90 dGV4CkBub2RlIFRvcApAdG9wIEdOVSBFbWFjcyBDb250cmlidXRvciBHdWlkZSBNYW51YWwKQGlu c2VydGNvcHlpbmcKQGVuZCBpZm5vdHRleAoKQG1lbnUKKiBDb250cmlidXRpbmcgdG8gRW1hY3M6 OiAgICAgICAKKiBIZWxwaW5nIFVzZXJzOjogICAgICAgICAgICAgICAKKiBNYWlsaW5nIExpc3Rz OjogICAgICAgICAgICAgICAKKiBUZXN0aW5nOjogICAgICAgICAgICAgICAgICAgICAKKiBDb2Rp bmc6OiAgICAgICAgICAgICAgICAgICAgICAKKiBEZXNpZ25pbmc6OiAgICAgICAgICAgICAgICAg ICAKKiBEb2N1bWVudGF0aW9uIGFuZCBXcml0aW5nOjogICAKKiBTdWJtaXR0aW5nIFBhdGNoZXM6 OiAgICAgICAgICAKKiBMZWFybmluZyBSZXNvdXJjZXM6OiAgICAgICAgICAKKiBCdWcgVHJhY2tl cjo6ICAgICAgICAgICAgICAgICAKKiBDb3B5cmlnaHQ6OiAgICAgICAgICAgICAgICAgICAKKiBF bWFjcyByZXBvc2l0b3JpZXM6OiAgICAgICAgICAKKiBFbWFjcyBSZWxlYXNlczo6ICAgICAgICAg ICAgICAKKiBFZHVjYXRpb246OiAgICAgICAgICAgICAgICAgICAKKiBBYm91dCBUaGlzIEd1aWRl OjogICAgICAgICAgICAKKiBHbG9zc2FyeTo6ICAgICAgICAgICAgICAgICAgICAKCkBkZXRhaWxt ZW51CiAtLS0gVGhlIERldGFpbGVkIE5vZGUgTGlzdGluZyAtLS0KCkhlbHBpbmcgVXNlcnMKCiog QW5zd2VyaW5nIHF1ZXN0aW9uczo6ICAgICAgICAgCgpDb2RpbmcKCiogV2hhdCBza2lsbHMgZG8g SSBuZWVkPzo6ICAgICAgCiogV2hpY2ggdGFzayBjYW4gSSB0YWtlPzo6ICAgICAgCiogRG9jdW1l bnQgWW91ciBjaGFuZ2VzOjogICAgICAgCiogUGFja2FnaW5nOjogICAgICAgICAgICAgICAgICAg CiogV2ViIFBhZ2VzOjogICAgICAgICAgICAgICAgICAgCiogU29tZSBDb2RpbmcgQ29udmVudGlv bnM6OiAgICAgCiogVW5kZXJzdGFuZGluZyBFbWFjcyBJbnRlcm5hbHM6OiAgCiogU3RhbmRhcmRz L1RpcHM6OiAgICAgICAgICAgICAgCgpTdWJtaXR0aW5nIFBhdGNoZXMKCiogRGVzY3JpcHRpb246 OiAgICAgICAgICAgICAgICAgCiogQ2hhbmdlTG9nOjogICAgICAgICAgICAgICAgICAgCiogVGhl IFBhdGNoIEl0c2VsZjo6ICAgICAgICAgICAgCiogTWFpbCBGb3JtYXQ6OiAgICAgICAgICAgICAg ICAgCiogUmVyZWFkIHlvdXIgcGF0Y2g6OiAgICAgICAgICAgCiogRG8gbm90IG1peCBjaGFuZ2Vz OjogICAgICAgICAgCgpCdWcgVHJhY2tlcgoKKiBIb3cgdG8gcmVwb3J0IGEgYnVnPzo6ICAgICAg ICAKKiBIb3cgdG8gY29tbWVudCBvbiBhIGJ1Zz86OiAgICAKKiBIb3cgdG8gY2xvc2UgYSBidWc/ OjogICAgICAgICAKKiBIb3cgdG8gc2V0IGJ1ZyBtZXRhLWRhdGE/OjogICAKCkVtYWNzIHJlcG9z aXRvcmllcwoKKiBCdWlsZGluZyBFbWFjczo6ICAgICAgICAgICAgICAKKiBFbWFjcyBEaXJlY3Rv cnkgVHJlZTo6ICAgICAgICAKKiBXcml0ZSBBY2Nlc3M6OiAgICAgICAgICAgICAgICAKCkBlbmQg ZGV0YWlsbWVudQpAZW5kIG1lbnUKCgpAYyBPcmcgOC4wCgpAbm9kZSBDb250cmlidXRpbmcgdG8g RW1hY3MKQGNoYXB0ZXIgQ29udHJpYnV0aW5nIHRvIEVtYWNzCkdOVSBFbWFjcyBpcyBhIGNvbGxh Ym9yYXRpdmUgcHJvamVjdCBhbmQgd2UgZW5jb3VyYWdlIGNvbnRyaWJ1dGlvbnMKZnJvbSBhbnlv bmUuICBQZW9wbGUgaW52b2x2ZWQgd2l0aCB0aGUgRW1hY3MgY29tbXVuaXR5IGhhdmUKZGlmZmVy aW5nIHBvbGl0aWNhbCwgc29jaWFsLCBlY29ub21pYyBhbmQgZXRobmljIGJhY2tncm91bmRzLiAg V2UKd29yayBhY3Jvc3MgdGltZXpvbmVzLCBsYW5ndWFnZXMsIGFuZCBjdWx0dXJlcy4gIFRoZSBz dWNjZXNzIG9mCkVtYWNzIGRlcGVuZHMgb24gcGFydGljaXBhdGlvbiBmcm9tIHBlb3BsZSBsaWtl IHlvdS4gIEZpbmQgb3V0IGhvdwp5b3UgY2FuIGdldCBpbnZvbHZlZCB0byBoZWxwIG1ha2UgYSBk aWZmZXJlbmNlIGluIHRoZSBsaXZlcyBvZiB1c2VycwpldmVyeXdoZXJlIGluIHRoZSBmdXR1cmUu CgpDb3B5cmlnaHQgKEMpIDIwMTMgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLCBJbmMuCgpQZXJt aXNzaW9uIGlzIGdyYW50ZWQgdG8gY29weSwgZGlzdHJpYnV0ZSBhbmQvb3IgbW9kaWZ5IHRoaXMK ZG9jdW1lbnQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgRnJlZSBEb2N1bWVudGF0aW9uIExp Y2Vuc2UsClZlcnNpb24gMS4zIG9yIGFueSBsYXRlciB2ZXJzaW9uIHB1Ymxpc2hlZCBieSB0aGUg RnJlZSBTb2Z0d2FyZQpGb3VuZGF0aW9uOyB3aXRoIG5vIEludmFyaWFudCBTZWN0aW9ucywgbm8g RnJvbnQtQ292ZXIgVGV4dHMsIGFuZCBubwpCYWNrLUNvdmVyIFRleHRzLiAgU2VlIEB1cmVme2h0 dHA6Ly93d3cuZ251Lm9yZy9jb3B5bGVmdC9mZGwuaHRtbH0uCgpAbm9kZSBIZWxwaW5nIFVzZXJz CkBjaGFwdGVyIEhlbHBpbmcgVXNlcnMKRW1hY3MgaGF2ZSBhIGNvbW11bml0eSBvZiBlbnRodXNp YXN0aWMgdm9sdW50ZWVycyB0cnlpbmcgdG8gc3VwcG9ydApvdXIgdXNlcnMgYXJvdW5kIHRoZSBn bG9iZS4gIEpvaW4gdXMgZm9yIGFuIGluY3JlZGlibGUgYWR2ZW50dXJlIQoKCkBtZW51CiogQW5z d2VyaW5nIHF1ZXN0aW9uczo6ICAgICAgICAgCkBlbmQgbWVudQoKQG5vZGUgQW5zd2VyaW5nIHF1 ZXN0aW9ucwpAc2VjdGlvbiBBbnN3ZXJpbmcgcXVlc3Rpb25zCkZyb20gaGFyZGNvcmUgTGlzcCBk ZXZlbG9wZXJzIHRvICJob3cgZG8gSSBpbnN0YWxsIEVtYWNzIiBmaXJzdAp0aW1lIHVzZXJzLCBl dmVyeWJvZHkgbmVlZHMgeW91ciBoZWxwIGluIHRoZSBjb21tdW5pdHkhICBTaGFyZSB5b3VyCkVt YWNzIGtub3dsZWRnZSBieSBwb2ludGluZyBwZW9wbGUgdG8gdGhlIHJpZ2h0IGhlbHAgcmVzb3Vy Y2VzIGFuZApwcm92aWRpbmcgdHJvdWJsZXNob290aW5nIHN0ZXBzIGZvciB0aGVpciBpbmRpdmlk dWFsIHF1ZXN0aW9ucy4KCkBlbnVtZXJhdGUKQGl0ZW0KRmluZGluZyBxdWVzdGlvbnMKWW91IGNh biBmaW5kIHF1ZXN0aW9ucyBmcm9tIG1haWxpbmcgbGlzdHMgKGxpa2UgQHVyZWZ7aHR0cHM6Ly9s aXN0cy5nbnUub3JnL21haWxtYW4vbGlzdGluZm8vaGVscC1nbnUtZW1hY3MsaGVscC1nbnUtZW1h Y3N9IGFuZApAdXJlZntodHRwczovL2xpc3RzLmdudS5vcmcvbWFpbG1hbi9saXN0aW5mby9oZWxw LWVtYWNzLXdpbmRvd3MsaGVscC1lbWFjcy13aW5kb3dzfSksIG5ld3Nncm91cHMgKGxpa2UgY29t cC5lbWFjcyBhbmQKZ251LmVtYWNzLmhlbHApLCB3ZWJzaXRlcyAobGlrZSBAdXJlZntodHRwOi8v c3RhY2tvdmVyZmxvdy5jb20vcXVlc3Rpb25zL3RhZ2dlZC8/dGFnbmFtZXM9ZW1hY3Mmc29ydD1u ZXdlc3QsU3RhY2sgT3ZlcmZsb3d9KSwgYW5kIElSQyBjaGFubmVscwoobGlrZSBAdmVyYnt+I2Vt YWNzfn0gYW5kIEB2ZXJie34jZ251c359IG9uIEZyZWVub2RlKS4KCkBpdGVtCkZpbmRpbmcgYW5z d2VycwpSYXRoZXIgdGhhbiB0cnlpbmcgdG8gZmlndXJlIG91dCB0aGUgdXNlcidzIHByb2JsZW0g YnkgeW91cnNlbGYKZXZlcnkgdGltZSwgZmlyc3Qgc2VhcmNoIHRvIHNlZSBpZiBpdCBoYXMgY29t ZSB1cCBiZWZvcmUuICBUcnkgdG8Kc2VhcmNoIHRoZSBFbWFjcyBtYW51YWxzIGJlZm9yZSBhbnl0 aGluZyBlbHNlLiAgSWYgdGhlIG1hbnVhbHMKZG9uJ3QgaGF2ZSB5b3VyIGFuc3dlcnMsIHlvdSBj YW4gdXNlIG90aGVyIHNvdXJjZXMuICBTb21lIGdvb2QKb25lczoKQGl0ZW1pemUKQGl0ZW0gCkB1 cmVme2h0dHBzOi8vc2F2YW5uYWguZ251Lm9yZy9tYWlsLz9ncm91cD1lbWFjcyxNYWlsaW5nIGxp c3QgdGhyZWFkc30KCkBpdGVtIApAdXJlZntodHRwOi8vd3d3LmdudS5vcmcvbWFudWFsL21hbnVh bC5odG1sLE90aGVyIEdOVSBNYW51YWxzfQoKQGl0ZW0gCkB1cmVme2h0dHA6Ly9kZWJidWdzLmdu dS5vcmcvLEdOVSBCdWcgVHJhY2tlcn0KCkBlbmQgaXRlbWl6ZQoKQGl0ZW0KRG9pbmcgaW52ZXN0 aWdhdGlvbgpJZiB5b3UgY2FuJ3QgZmluZCBwcmV2aW91cyBjYXNlcyBvZiB0aGUgaXNzdWUgaGFw cGVuaW5nLCBoZXJlIGFyZQpzb21lIHRpcHMgb24gZmlndXJpbmcgb3V0IHRoZSBwcm9ibGVtIHlv dXJzZWxmLgoKQGl0ZW1pemUKQGl0ZW0gCkNvbnNpZGVyIHRoZSB1c2VyJ3MgT1MgYW5kIEVtYWNz IHZlcnNpb24uCgoKQGl0ZW0gClRha2UgYSBsb29rIGF0IHRoZSB1c2VyJ3Mgd2luZG93IHN5c3Rl bSwgY29uZmlndXJlIG9wdGlvbnMsCm1ham9yL21pbm9yIG1vZGVzLCByZWNlbnQgaW5wdXQsIHJl Y2VudCBtZXNzYWdlcywgbG9hZC1wYXRoCnNoYWRvd3MsIGFuZCBlbGlzcCBsaWJyYXJpZXMuICBJ biBwYXJ0aWN1bGFyLCB3YXRjaCBmb3Igb3V0ZGF0ZWQKbGlicmFyaWVzIHRoYXQgYXJlIGtub3du IHRvIGNhdXNlIHByb2JsZW1zLgoKCkBpdGVtIApUcnkgdG8gaXNvbGF0ZSB0aGUgY2F1c2Ugb2Yg dGhlIHByb2JsZW0uCkBpdGVtaXplCkBpdGVtIApEb2VzIHRoZSBwcm9ibGVtIGhhcHBlbiBvbiB5 b3VyIGNvbXB1dGVyPwoKQGl0ZW0gCkRvZXMgdGhlIHByb2JsZW0gaGFwcGVuIHdoZW4gc2VjdXJp dHkgc29mdHdhcmUgaXMgdGVtcG9yYXJpbHkKZGlzYWJsZWQ/CgpAZW5kIGl0ZW1pemUKCgpAaXRl bSAKSWYgeW91IGZpbmQgb3V0IHRoZSBzb2x1dGlvbiwgY29uc2lkZXIgYWRkaW5nIGl0IHRvIHRo ZSBFbWFjcwpGQVEuCgpAZW5kIGl0ZW1pemUKCkBpdGVtClBvc3RpbmcgcmVwbGllcwpAaXRlbWl6 ZQpAaXRlbSAKQmUgbmljZS4gIElmIHlvdSBmZWVsIHRoYXQgYSBwb3N0IGhhcyBjcm9zc2VkIHRo ZSBsaW5lLCByZXBvcnQKaXQgdG8gdGhlIEVtYWNzIG1haW50YWluZXJzLgoKCkBpdGVtIApNYWtl IGEganVkZ21lbnQgb24gYSB1c2VyJ3MgZXhwZXJpZW5jZSBiYXNlZCBvbiB0aGVpciBwb3N0cy4g IEZvcgpleGFtcGxlLCBub3QgYWxsIHVzZXJzIGtub3cgaG93IHRvIHVzZSByZWdleHAuICBXaGVu IGluIGRvdWJ0LApwbGVhc2UgZXhwbGFpbiBtb3JlLgoKCkBpdGVtIApEb24ndCBiZSBpbnRpbWlk YXRlZC4gIERvbid0IGxldCBhIGJhZCBleHBlcmllbmNlIHN0b3AgeW91IGZyb20KZ2V0dGluZyBp bnZvbHZlZC4gIEp1c3QgcmVsYXggYW5kIHRoaW5rIGFib3V0IHdoeSB5b3Ugd2VyZQpzbnViYmVk IGFuZCBpZiB0aGVyZSdzIGFueXRoaW5nIHRoYXQgeW91IHNob3VsZCBiZSBjYXJlZnVsIGFib3V0 CmJlZm9yZSBwYXJ0aWNpcGF0aW5nIGluIGFub3RoZXIgY29udmVyc2F0aW9uLgoKCkBpdGVtIApM b29rIGF0IHdoYXQgT1MgdGhlIHVzZXIgaXMgdXNpbmcgYW5kIGNhdGVyIHlvdXIgcmVwbHkgdG8g dGhhdC4KRm9yIGV4YW1wbGUsIEdOVS9MaW51eCB1c2VycyB3b24ndCBoYXZlIGEgQHZlcmJ7fkM6 XFByb2dyYW0gRmlsZXN+fS4KCkBlbmQgaXRlbWl6ZQoKQGl0ZW0KRm9sbG93aW5nIHVwClRoZSBh bnN3ZXJzIHlvdSBnaXZlIG1heSBiZSBpbmNvcnJlY3QsIG9yIHRoZSB1c2VyIG1heSBoYXZlIHNv bWUKZm9sbG93IHVwIHF1ZXN0aW9ucyBmb3IgeW91LiAgSW4gZWl0aGVyIGNhc2UsIGl0J3MgdXNl ZnVsIHRvIGJvdGgKeW91IGFuZCB0aGUgdXNlciB0aGF0IHlvdXIgY29udmVyc2F0aW9uIGNvbnRp bnVlcy4KQGVuZCBlbnVtZXJhdGUKCkBub2RlIE1haWxpbmcgTGlzdHMKQGNoYXB0ZXIgTWFpbGlu ZyBMaXN0cwpAaXRlbWl6ZQpAaXRlbSAKU3Vic2NyaWJpbmcgdG8gdGhlIEB1cmVme2h0dHA6Ly9s aXN0cy5nbnUub3JnL21haWxtYW4vbGlzdGluZm8vZW1hY3MtZGV2ZWwsZW1hY3MtZGV2ZWx9IG1h aWxpbmcgbGlzdCBpcyBhIGdvb2QgaWRlYS4gIEl0J3MKYSBtYWlsaW5nIGxpc3QgZm9yIGNvbW11 bmljYXRpb25zIGFtb25nIEVtYWNzIGRldmVsb3BlcnMuCgoKQGl0ZW0gCkFsd2F5cyByZWFkIHRo ZSBlbnRpcmUgdGhyZWFkIGJlZm9yZSByZXBseWluZy4KCgpAaXRlbSAKRG8geW91ciBiZXN0IHRv IGFsd2F5cyBhc3N1bWUgdGhlIGJlc3Qgb2YgdGhlIHBvc3Rlci4gIFNvbWV0aW1lcywKYSBub24t bmF0aXZlIHNwZWFrZXIgKGxpa2UgbWUpIG1heSBhcHBlYXIgdG8gaGF2ZSBhbiBvZmZlbnNpdmUK InRvbmUiIGluIHRoZSBwb3N0IHdoZXJlIG5vIG9mZmVuc2UgaXMgbWVhbnQuCgoKQGl0ZW0gCkRv bid0IGNyb3NzLXBvc3QgdG8gbXVsdGlwbGUgbGlzdHMuIENvbW11bmljYXRpbmcgd2VsbCBvbiBt YWlsaW5nCmxpc3RzIG1lYW5zIGtub3dpbmcgd2hlcmUgYW5kIHdoZW4gdG8gcG9zdCBpdGVtcy4g IElmIHlvdSBoYXZlIGFueQpkb3VidHMgcmVnYXJkaW5nIHdoYXQgaXMgYXBwcm9wcmlhdGUsIHlv dSBjYW4gYXNrIG1lLgoKCkBpdGVtIApJZiB5b3UgYXJlIG9mZmVuZGVkIGJ5IGEgcmVzcG9uc2Ug b3IgcG9zdCwgd2Fsay1hd2F5LiBEbyBub3QKcmVzcG9uZCB3aGVuIHlvdSBhcmUgYW5ncnkuCgoK QGl0ZW0gCkRvbid0IHBvc3QgY2hhaW4gbGV0dGVycywgbWFya2V0aW5nIG1lc3NhZ2VzIG9yIG90 aGVyIHR5cGVzIG9mCm5vbi10b3BpY2FsIHNwYW0uCgpAZW5kIGl0ZW1pemUKCkBub2RlIFRlc3Rp bmcKQGNoYXB0ZXIgVGVzdGluZwpUZXN0aW5nIGlzIGEgZ3JlYXQgd2F5IHRvIGdldCBmYW1pbGlh ciB3aXRoIG91ciBjb2RlIGFuZCB0b29scy4KUGljayBhIGZpeGVkIGJ1ZyBmcm9tIHRoZSBkYXRh YmFzZSwgd3JpdGUgYSB0ZXN0IGNhc2UgdG8gbWFrZSBzdXJlCml0IHN0YXlzIGZpeGVkLiAgT3Ig cGljayB5b3VyIGZhdm9yaXRlIHByb2dyYW1taW5nIG1ham9yLW1vZGUsIGFuZAp3cml0ZSBhIHRl c3QgZm9yIGl0cyBpbmRlbnRhdGlvbi4gIE9yIGEgdmVyc2lvbiBjb250cm9sIGJhY2tlbmQsIGFu ZAp3cml0ZSBhIHRlc3QgZm9yIGl0cyBzdGF0dXMgcGFyc2VyLiAgT3IgdmFsaWRhdGUgd2ViIHBh Z2VzIG9mIEVtYWNzLgpFdGMuCgpJZiB5b3Ugd291bGQgbGlrZSB0byBoZWxwIHByZXRlc3QgRW1h Y3MgcmVsZWFzZXMgdG8gYXNzdXJlIHRoZXkgd29yawp3ZWxsLCBvciBpZiB5b3Ugd291bGQgbGlr ZSB0byB3b3JrIG9uIGltcHJvdmluZyBFbWFjcywgcGxlYXNlCmNvbnRhY3QgdGhlIG1haW50YWlu ZXJzIGF0IEBlbWFpbHtlbWFjcy1kZXZlbEBAZ251Lm9yZyxlbWFjcy1kZXZlbEBAZ251Lm9yZ30u ICBBIHByZXRlc3RlciBzaG91bGQKYmUgcHJlcGFyZWQgdG8gaW52ZXN0aWdhdGUgYnVncyBhcyB3 ZWxsIGFzIHJlcG9ydCB0aGVtLgoKQG5vZGUgQ29kaW5nCkBjaGFwdGVyIENvZGluZwpEZXZlbG9w ZXJzIGNhbiBoZWxwIEVtYWNzIGJ5IGFkZGluZyBuZXcgZmVhdHVyZXMsIG1ha2luZyBvdXIKdGVj aG5vbG9neSBjbGVhbmVyIGFuZCBzaW1wbGVyIGFuZCBtYWtpbmcgZGV2ZWxvcG1lbnQgZWFzaWVy IGZvcgpvdGhlcnMuCgoKQG1lbnUKKiBXaGF0IHNraWxscyBkbyBJIG5lZWQ/OjogICAgICAKKiBX aGljaCB0YXNrIGNhbiBJIHRha2U/OjogICAgICAKKiBEb2N1bWVudCBZb3VyIGNoYW5nZXM6OiAg ICAgICAKKiBQYWNrYWdpbmc6OiAgICAgICAgICAgICAgICAgICAKKiBXZWIgUGFnZXM6OiAgICAg ICAgICAgICAgICAgICAKKiBTb21lIENvZGluZyBDb252ZW50aW9uczo6ICAgICAKKiBVbmRlcnN0 YW5kaW5nIEVtYWNzIEludGVybmFsczo6ICAKKiBTdGFuZGFyZHMvVGlwczo6ICAgICAgICAgICAg ICAKQGVuZCBtZW51CgpAbm9kZSBXaGF0IHNraWxscyBkbyBJIG5lZWQ/CkBzZWN0aW9uIFdoYXQg c2tpbGxzIGRvIEkgbmVlZD8KRW1hY3MgaXMgYSBsYXJnZSBwcm9ncmFtIGFuZCB3ZSBhcmUgaGFw cHkgdG8gcmVjZWl2ZSBjb250cmlidXRvcnMKd2l0aCB2ZXJ5IGRpZmZlcmVudCBza2lsbHMuCgpA aXRlbWl6ZQpAaXRlbSAKSWYgeW91IGtub3cgTGlzcCwgZm9yIGluc3RhbmNlLCB5b3UgY2FuIGNv bnRyaWJ1dGUgdG8gdGhlIGNvcmUKbGF5ZXJzIG9mIEVtYWNzLgoKCkBpdGVtIApJZiB5b3Uga25v dyBIVE1ML0NTUywgeW91IGNhbiBjb250cmlidXRlIHRvIHRoZSB3ZWIgcGFnZXMgb2YKRW1hY3Mg YW5kIEdOVSBFTFBBLgoKCkBpdGVtIApJZiB5b3Uga25vdyBDLCB5b3UgY2FuIGNvbnRyaWJ1dGUg dG8gYSBudW1iZXIgb2YgbG93LWxldmVsCmxpYnJhcmllcyBhbmQgaGVscCB1cyB3cml0ZSBFbWFj cyBwcmltaXRpdmVzLgoKQGVuZCBpdGVtaXplCgpAbm9kZSBXaGljaCB0YXNrIGNhbiBJIHRha2U/ CkBzZWN0aW9uIFdoaWNoIHRhc2sgY2FuIEkgdGFrZT8KSXQgZGVwZW5kcyBvbiB5b3VyIEVtYWNz IGtub3dsZWRnZSBhbmQgeW91ciBpbnRlcmVzdC4gIERlYmJ1Z3MgKHNlZQpiZWxvdykgaXMgYSBo dWdlIHJlc2Vydm9pciBvZiB0aGluZ3MgdG8gZG8uICBQb3J0aW5nIHRvIG5ldwpwbGF0Zm9ybXMg aXMgYWxzbyB1c2VmdWwuICBTZWUgYWxzbyBAdXJlZntodHRwOi8vYnpyLnNhdmFubmFoLmdudS5v cmcvbGgvZW1hY3MvdHJ1bmsvYW5ub3RhdGUvaGVhZDovZXRjL1RPRE8sZXRjL1RPRE99LiAgSWYg eW91IHRoaW5rIG9mIG5ldwpmZWF0dXJlcyB0byBhZGQgdG8gQHZlcmJ7fmV0Yy9UT0RPfn0sIHBs ZWFzZSBzdWdnZXN0IHRoZW0gdG9vLgoKQmVmb3JlIGNvbnRyaWJ1dGluZyBhIG5ldyBmZWF0dXJl IHRvIEVtYWNzLCB5b3Ugc2hvdWxkIGNoZWNrIHRvCm1ha2Ugc3VyZSB0aGF0IHRoZSBmZWF0dXJl IGlzbid0IGFscmVhZHkgYXZhaWxhYmxlLiAgKFNlZSBAdXJlZntodHRwOi8vbGlzdHMuZ251Lm9y Zy9hcmNoaXZlL2h0bWwvZW1hY3MtZGV2ZWwvMjAxMy0wNC9tc2cwMDE4MC5odG1sLHRoaXMKdGhy ZWFkfS4pICBGb3IgZXhhbXBsZSwgdHlwaW5nIEB2ZXJie35NLXggYXByb3BvcyA8UkVUPiBodW1v ciA8UkVUPn59IGxpc3RzCmFsbCBmdW5jdGlvbnMgYW5kIHZhcmlhYmxlcyBjb250YWluaW5nIHRo ZSBzdHJpbmcgQHZlcmJ7fmh1bW9yfn07IHR5cGluZwpAdmVyYnt+TS14IGxpc3QtcGFja2FnZXN+ fSBjb21tYW5kIGNvbm5lY3RzIHRvIHRoZSBHTlUgRUxQQQooQHVyZWZ7aHR0cDovL2VscGEuZ251 Lm9yZ30pICgiRW1hY3MgTGlzcCBQYWNrYWdlIEFyY2hpdmUiKSBzZXJ2ZXIgYW5kCmZldGNoZXMg dGhlIGxpc3Qgb2YgYWRkaXRpb25hbCBwYWNrYWdlcyB0aGF0IGl0IG9mZmVycy4gIFRoZXNlIGFy ZQpHTlUgcGFja2FnZXMgdGhhdCBhcmUgYXZhaWxhYmxlIGZvciB1c2Ugd2l0aCBFbWFjcywgYnV0 IGFyZQpkaXN0cmlidXRlZCBzZXBhcmF0ZWx5LiAgSXQgaXMgYWxzbyBwb3NzaWJsZSB0aGF0IHRo ZSBwYWNrYWdlIGlzIG9uCnlvdXIgc3lzdGVtLCBidXQgaGFzIG5vdCBiZWVuIGxvYWRlZC4gIFRv IHNlZSB3aGljaCBwYWNrYWdlcyBhcmUKYXZhaWxhYmxlIGZvciBsb2FkaW5nLCBsb29rIHRocm91 Z2ggeW91ciBjb21wdXRlcidzIExpc3AgZGlyZWN0b3J5LgoKQG5vZGUgRG9jdW1lbnQgWW91ciBj aGFuZ2VzCkBzZWN0aW9uIERvY3VtZW50IFlvdXIgY2hhbmdlcwpUaGluayBjYXJlZnVsbHkgYWJv dXQgd2hldGhlciB5b3VyIGNoYW5nZSByZXF1aXJlcyB1cGRhdGluZyB0aGUKZG9jdW1lbnRhdGlv bi4gIElmIGl0IGRvZXMsIHlvdSBjYW4gZWl0aGVyIGRvIHRoaXMgeW91cnNlbGYgb3IgYWRkCmFu IGl0ZW0gdG8gdGhlIE5FV1MgZmlsZS4KCklmIHlvdSBkb2N1bWVudCB5b3VyIGNoYW5nZSBpbiBO RVdTLCBwbGVhc2UgbWFyayB0aGUgTkVXUyBlbnRyeQp3aXRoIHRoZSBkb2N1bWVudGF0aW9uIHN0 YXR1cyBvZiB0aGUgY2hhbmdlOiBpZiB5b3Ugc3VibWl0IHRoZQpjaGFuZ2VzIGZvciB0aGUgbWFu dWFscywgbWFyayBpdCB3aXRoIEB2ZXJie34rKyt+fTsgaWYgaXQgZG9lc24ndCBuZWVkIHRvCmJl IGRvY3VtZW50ZWQsIG1hcmsgaXQgd2l0aCBAdmVyYnt+LS0tfn07IGlmIGl0IG5lZWRzIHRvIGJl IGRvY3VtZW50ZWQsCmJ1dCB5b3UgZGlkbid0IHN1Ym1pdCBkb2N1bWVudGF0aW9uIGNoYW5nZXMs IGxlYXZlIHRoZSBORVdTIGVudHJ5CnVubWFya2VkLkBmb290bm90ZXtUaGVzZSBtYXJrcyBhcmUg Y2hlY2tlZCBieSB0aGUgRW1hY3MgbWFpbnRhaW5lcnMgdG8gbWFrZSBzdXJlCmV2ZXJ5IGNoYW5n ZSB3YXMgcmVmbGVjdGVkIGluIHRoZSBtYW51YWxzLn0KCkBub2RlIFBhY2thZ2luZwpAc2VjdGlv biBQYWNrYWdpbmcKVG8gYmUgd3JpdHRlbi4KCkBub2RlIFdlYiBQYWdlcwpAc2VjdGlvbiBXZWIg UGFnZXMKWW91IGNhbiBhbHNvIGNvbnRyaWJ1dGUgdG8gd2ViIHBhZ2VzIG9mIEdOVSBFbWFjcyBh bmQgR05VIEVMUEEuClRoZXkgc2hvdWxkIGZvbGxvdyBvdXIgdXN1YWwgc3RhbmRhcmRzIGZvciB3 ZWIgcGFnZXM6CgpAaXRlbWl6ZQpAaXRlbSAKRXZlcnkgcGFnZSBzaG91bGQgaGF2ZSBhIGNvcHly aWdodCBub3RpY2UuCgoKQGl0ZW0gClVzZSBsb3dlci1jYXNlIEhUTUwgdGFncy4KCgpAaXRlbSAK QWxsIHBhZ2VzIHNob3VsZCBoYXZlIGEgbm90aWNlIHNheWluZyB0aGF0IHRoZXkgYXJlIGZyZWVs eQpkaXN0cmlidXRhYmxlLgoKCkBpdGVtIApUaGUgR05VIHdlYiBzZXJ2ZXIgaGFzIG9ubHkgZnJl ZSBzb2Z0d2FyZSBhdmFpbGFibGUuICBXZSBwcmVmZXIKdGhhdCBvbmx5IGZyZWUgc29mdHdhcmUg YmUgdXNlZCB0byBkZXZlbG9wIGNvbnRlbnQgZm9yIHRoZSBHTlUKd2ViIHNlcnZlci4KCgpAaXRl bSAKVGhlIEdOVSB3ZWIgc2VydmVyIGlzIGludGVyZXN0ZWQgZmlyc3QgaW4gY29udGVudC4gIFN1 YnN0YW5jZSBpcwptb3JlIGltcG9ydGFudCB0aGFuIHN0eWxlLiAgVGhlIHVzZSBvZiBncmFwaGlj cyBzaG91bGQgYmUKbWluaW1pemVkIHNvIHBhZ2VzIGxvYWQgZmFzdCBvdmVyIHNsb3cgbGlua3Mu ICBFbWFjcyBpcyBmb3IKZXZlcnlvbmUsIGV2ZW4gdGhvc2Ugd2l0aCBzbG93IEludGVybmV0IGFj Y2VzcyBvciB0ZXh0LW9ubHkKYnJvd3NlcnMuCgoKQGl0ZW0gCkJlZm9yZSB5b3UgdGFrZSBhbnkg Z3JhcGhpY3Mgb3IgdGV4dCBmcm9tIGFub3RoZXIgV2ViIHNpdGUsCnBsZWFzZSBhc2sgZm9yIHBl cm1pc3Npb24gdG8gdXNlIGl0LiBJdCdzIHBvbGl0ZSB0byBkbyBzby4gSXQgaXMKYWxzbyBlc3Nl bnRpYWwgZm9yIHVzIHRvIGF2b2lkIGNvcHlyaWdodCBpbmZyaW5nZW1lbnQuCgoKQGl0ZW0gClBs ZWFzZSBzZWUgdGhlIEB1cmVme2h0dHA6Ly93d3cuZ251Lm9yZy9zZXJ2ZXIvc3RhbmRhcmRzL1JF QURNRS50cmFuc2xhdGlvbnMuaHRtbCxUcmFuc2xhdGlvbnMgUkVBRE1FfSBmb3IgaW5mb3JtYXRp b24gb24KY29vcmRpbmF0aW5nIGFuZCBzdWJtaXR0aW5nIHRyYW5zbGF0aW9ucy4KCgpAaXRlbSAK RG8gbm90IHVzZSBiYWNrZ3JvdW5kcyBvbiBvdXIgcGFnZXMsIGFzIHRoZXkgbWFrZSB0ZXh0CnNp Z25pZmljYW50bHkgaGFyZGVyIHRvIHJlYWQuCgoKQGl0ZW0gCldlIGZvbGxvdyB0aGUgZ3VpZGVs aW5lcyBvZiBAdXJlZntodHRwOi8vd3d3LmFueWJyb3dzZXIub3JnL2NhbXBhaWduLyxCZXN0IFZp ZXdlZCB3aXRoIEFueSBCcm93c2VyfQpjYW1wYWlnbi4KCkBlbmQgaXRlbWl6ZQoKQG5vZGUgU29t ZSBDb2RpbmcgQ29udmVudGlvbnMKQHNlY3Rpb24gU29tZSBDb2RpbmcgQ29udmVudGlvbnMKQGl0 ZW1pemUKQGl0ZW0gCkF2b2lkIHVzaW5nIEB2ZXJie35kZWZhZHZpY2V+fSBvciBAdmVyYnt+ZXZh bC1hZnRlci1sb2Fkfn0gZm9yIExpc3AgY29kZSB0byBiZQppbmNsdWRlZCBpbiBFbWFjcy4KCgpA aXRlbSAKUmVtb3ZlIGFsbCB0cmFpbGluZyB3aGl0ZXNwYWNlIGluIGFsbCBzb3VyY2UgYW5kIHRl eHQgZmlsZXMuICBTZWUKICAgICBAdmVyYnt+ZGVsZXRlLXRyYWlsaW5nLXdoaXRlc3BhY2V+fSwg QHZlcmJ7fmZpeHVwLXdoaXRlc3BhY2V+fSBhbmQKICAgICBAdmVyYnt+d2hpdGVzcGFjZS1tb2Rl fn0uCgoKQGl0ZW0gClVzZSBAdmVyYnt+P1xzfn0gaW4gTGlzcCBjb2RlIGZvciBhIHNwYWNlIGNo YXJhY3Rlci4KCkBlbmQgaXRlbWl6ZQoKQG5vZGUgVW5kZXJzdGFuZGluZyBFbWFjcyBJbnRlcm5h bHMKQHNlY3Rpb24gVW5kZXJzdGFuZGluZyBFbWFjcyBJbnRlcm5hbHMKVGhlIGJlc3Qgd2F5IHRv IHVuZGVyc3RhbmQgRW1hY3MgSW50ZXJuYWxzIGlzIHRvIHJlYWQgdGhlIGNvZGUsIGJ1dAp0aGUg bm9kZSBAcmVme0dOVSBFbWFjcyBJbnRlcm5hbHMsQHJlZntHTlUsLCxlbGlzcCx9IEVtYWNzIElu dGVybmFscywsZWxpc3AsfSBpbiB0aGUgQXBwZW5kaXggb2YgdGhlCkBlbXBoe0VtYWNzIExpc3Ag UmVmZXJlbmNlIE1hbnVhbH0gbWF5IGFsc28gaGVscC4KCkBub2RlIFN0YW5kYXJkcy9UaXBzCkBz ZWN0aW9uIFN0YW5kYXJkcy9UaXBzCkBpdGVtaXplCkBpdGVtIApAdXJlZntodHRwOi8vd3d3Lmdu dS5vcmcvcHJlcC9zdGFuZGFyZHMvLEdOVSBDb2RpbmcgU3RhbmRhcmRzfQoKQGl0ZW0gCkByZWZ7 VGlwcywsLGVsaXNwLH0KCkBlbmQgaXRlbWl6ZQoKQG5vZGUgRGVzaWduaW5nCkBjaGFwdGVyIERl c2lnbmluZwpZb3UgY2FuIGRlc2lnbiB0aGVtZXMsIGljb25zIGFuZCB3ZWIgcGFnZXMgZm9yIEVt YWNzLgoKQG5vZGUgRG9jdW1lbnRhdGlvbiBhbmQgV3JpdGluZwpAY2hhcHRlciBEb2N1bWVudGF0 aW9uIGFuZCBXcml0aW5nCkBpdGVtaXplCkBpdGVtIApQcm9vZi1yZWFkaW5nIHRoZSBtYW51YWxz IGFuZCBtYW4gcGFnZXMuICBUaGF0J3MgYWxzbyBhIGdyZWF0IHdheQp0byBsZWFybiBtb3JlIGFi b3V0IEVtYWNzLiAgVGhpcyBpcyB1c3VhbGx5IGRvbmUgdG9nZXRoZXIgd2l0aApyZWFkaW5nIHRo ZSBORVdTIGZpbGUgdG8gbWFrZSBzdXJlIHRoYXQgdGhlIG1hbnVhbCBoYXMgYmVlbgp1cGRhdGVk LgoKCkBpdGVtIApUcmFuc2xhdGluZyB0aGUgdHV0b3JpYWwgaW50byBzb21lIG90aGVyIGxhbmd1 YWdlcy4KCgpAaXRlbSAKQWRkIGRvY3VtZW50YXRpb24gYWJvdXQgc29tZSBwYWNrYWdlcy9mZWF0 dXJlcyB0aGF0IGFyZW4ndAptZW50aW9uZWQgaW4gdGhlIG1hbnVhbCBvciBkb24ndCBoYXZlIHRo ZWlyIG93biBtYW51YWxzIHlldC4KCgpAaXRlbSAKQ29tcGFyZSBkb2NzdHJpbmdzIHdpdGggdGhl IGNvcnJlc3BvbmRpbmcgZGVzY3JpcHRpb24gaW4gdGhlCm1hbnVhbHMgKHdoZW4gYXBwbGljYWJs ZSkuICBUaGV5IHVzdWFsbHkgc2hvdWxkbid0IGJlIGlkZW50aWNhbCwKYnV0IHRoZXkgc2hvdWxk IG5vdCBjb250cmFkaWN0IGVhY2ggb3RoZXIuICBHZW5lcmFsbHkgdGhlIG1hbnVhbApnaXZlcyBh IGJpdCBsZXNzIGRldGFpbHMgYnV0IG1vcmUgYmFja2dyb3VuZC9jb250ZXh0LgoKQGVuZCBpdGVt aXplCgpTb21lIHRpcHM6CkBpdGVtaXplCkBpdGVtIApJbiBFbWFjcyB0cmFkaXRpb24sIHdlIHRy ZWF0ICJwb2ludCIgYXMgYSBwcm9wZXIgbmFtZSB3aGVuIGl0CnJlZmVycyB0byB0aGUgY3VycmVu dCBlZGl0aW5nIGxvY2F0aW9uLiAgSXQgc2hvdWxkIG5vdCBoYXZlIGFuCmFydGljbGUuICBUaHVz LCBpdCBpcyBpbmNvcnJlY3QgdG8gd3JpdGUsICJUaGUgcG9pbnQgZG9lcyBub3QKbW92ZSIuICBJ dCBzaG91bGQgYmUsICJQb2ludCBkb2VzIG5vdCBtb3ZlIi4gIElmIHlvdSBzZWUgInRoZQpwb2lu dCIgYW55d2hlcmUgaW4gRW1hY3MgZG9jdW1lbnRhdGlvbiBvciBjb21tZW50cywgcmVmZXJyaW5n IHRvCnBvaW50LCBwbGVhc2UgZml4IGl0LgoKCkBpdGVtIApBbnRpbmV3cyBpcyB1c2VmdWwuICBU aGUgdXNlZnVsbmVzcyBvZiBBbnRpbmV3cyBpcyB0byBoZWxwIHBlb3BsZQp3aG8gYnV5IHRoZSBw cmludGVkIG1hbnVhbCBhbmQgYXJlIHN0aWxsIHVzaW5nIHRoZSBwcmV2aW91cyBFbWFjcwp2ZXJz aW9uLiAgVGhhdCdzIHdoeSB3ZSBmb2N1cyBvbiB0aGUgKGVsaW1pbmF0ZWQpIGJlaGF2aW9yIG9m IHRoZQpvbGQgdmVyc2lvbiByYXRoZXIgdGhhbiBvbiB0aGUgbmV3IGZlYXR1cmVzLgoKCkBpdGVt IApFbWFjcyBzaG91bGQgbm90IHJlY29tbWVuZCwgcHJvbW90ZSwgb3IgZ3JhbnQgbGVnaXRpbWFj eSB0byB0aGUKdXNlIG9mIGFueSBub24tZnJlZSBwcm9ncmFtLiAgV2UgY2Fu4oCZdCBzdG9wIHNv bWUgcGVvcGxlIGZyb20Kd3JpdGluZyBwcm9wcmlldGFyeSBwcm9ncmFtcywgb3Igc3RvcCBvdGhl ciBwZW9wbGUgZnJvbSB1c2luZwp0aGVtLCBidXQgd2UgY2FuIGFuZCBzaG91bGQgcmVmdXNlIHRv IGFkdmVydGlzZSB0aGVtIHRvIG5ldwpwb3RlbnRpYWwgY3VzdG9tZXJzLCBvciB0byBnaXZlIHRo ZSBwdWJsaWMgdGhlIGlkZWEgdGhhdCB0aGVpcgpleGlzdGVuY2UgaXMgZXRoaWNhbC4KCgpAaXRl bSAKTmV2ZXIgaW50cm9kdWNlIG5ldyB0ZXJtaW5vbG9neSBpbiB0aGUgbWlkZGxlIG9mIGEgY29t cGxleApkZXNjcmlwdGlvbiwgd2hlcmUgZWFjaCBzdWNjZXNzaXZlIHNlbnRlbmNlIGJ1aWxkcyB1 cG9uIHdoYXQgdGhlCnByZWNlZGluZyBvbmVzIHNhaWQuICBBbHdheXMgdXNlIEBlbXBoe2V4YWN0 bHl9IHRoZSBzYW1lIHdvcmRzIGFzIGluCnRoZSBwcmVjZWRpbmcgc2VudGVuY2VzLgoKCkBpdGVt IApHb29kIHNwZWxsaW5nIGlzIGVuY291cmFnZWQuCgoKQGl0ZW0gClNlbnRlbmNlcyBzaG91bGQg YmUgc2VwYXJhdGVkIGJ5IHR3byBzcGFjZXMuCgoKQGl0ZW0gClNlbnRlbmNlcyBzaG91bGQgc3Rh cnQgd2l0aCBhbiB1cHBlcmNhc2UgbGV0dGVyLgoKCkBpdGVtIApEb24ndCBtZW50aW9uIGluIEFu dGluZXdzIHRvbyBtYW55IGZlYXR1cmVzIGFic2VudCBpbiBvbGQKdmVyc2lvbnMuICBTaW5jZSB0 aGUgcHVycG9zZSBvZiBBbnRpbmV3cyBpcyB0byBoZWxwIHBlb3BsZSB1c2UgdGhlCnByZXZpb3Vz IEVtYWNzIHZlcnNpb24sIHRoZXJlIGlzIHVzdWFsbHkgbm8gbmVlZCB0byBtZW50aW9uCmZlYXR1 cmVzIHRoYXQgYXJlIHNpbXBseSBhYnNlbnQgaW4gdGhhdCB2ZXJzaW9uLiAgVGhhdCBzaXR1YXRp b24Kd2lsbCBiZSBjbGVhciBlbm91Z2ggdG8gdXNlcnMgd2l0aG91dCBoZWxwIGZyb20gdGhlIG1h bnVhbC4gIFRoZQpraW5kIG9mIGNoYW5nZSBmb3Igd2hpY2ggdGhlIHVzZXIgcmVhbGx5IG5lZWRz IGhlbHAgZnJvbSBBbnRpbmV3cwppcyB3aGVyZSBhIGZlYXR1cmUgd29ya3MgQGVtcGh7ZGlmZmVy ZW50bHl9IGluIHRoZSBwcmV2aW91cyB2ZXJzaW9uLgpJbiB0aG9zZSBjYXNlcywgdGhlIHVzZXIg bWlnaHQgaGF2ZSB0cm91YmxlIGZpZ3VyaW5nIG91dCBob3cgdG8KdXNlIHRoZSBvbGQgdmVyc2lv biB3aXRob3V0IHNvbWUgc29ydCBvZiBoZWxwLgoKCkBpdGVtIApUbyBpbmRpY2F0ZSBwb3NzZXNz aW9uLCB3cml0ZSBFbWFjcydzIHJhdGhlciB0aGFuIEVtYWNzJy4gIFNlZQogICAgQHVyZWZ7aHR0 cDovL2xpc3RzLmdudS5vcmcvYXJjaGl2ZS9odG1sL2VtYWNzLWRldmVsLzIwMTItMDIvbXNnMDA2 NDkuaHRtbH0KCkBlbmQgaXRlbWl6ZQoKU2VlIGFsc28gQHJlZntEb2N1bWVudGF0aW9uIFRpcHMs QHJlZntEb2N1bWVudGF0aW9uLCwsZWxpc3AsfSBUaXBzLCxlbGlzcCx9LgoKQG5vZGUgU3VibWl0 dGluZyBQYXRjaGVzCkBjaGFwdGVyIFN1Ym1pdHRpbmcgUGF0Y2hlcwpZb3Ugc2hvdWxkIG1lbnRp b24gdGhlIGJhc2UgcmV2aXNpb24gb3IgdmVyc2lvbiBvZiB0aGUgY29kZSB5b3UgdXNlZApmb3Ig Y3JlYXRpbmcgeW91ciBwYXRjaC4KCldoZW4geW91IGhhdmUgYWxsIHRoZXNlIHBpZWNlcywgYnVu ZGxlIHRoZW0gdXAgaW4gYSBtYWlsIG1lc3NhZ2UgYW5kCnNlbmQgaXQgdG8gdGhlIGRldmVsb3Bl cnMuICBTZW5kaW5nIGl0IHRvIEBlbWFpbHtidWctZ251LWVtYWNzQEBnbnUub3JnLGJ1Zy1nbnUt ZW1hY3NAQGdudS5vcmd9Cih3aGljaCBpcyB0aGUgYnVnL2ZlYXR1cmUgbGlzdCkgaXMgcmVjb21t ZW5kZWQsIGJlY2F1c2UgdGhhdCBsaXN0IGlzCmNvdXBsZWQgdG8gYSB0cmFja2luZyBzeXN0ZW0g dGhhdCBtYWtlcyBpdCBlYXNpZXIgdG8gbG9jYXRlIHBhdGNoZXMuCklmIHlvdXIgcGF0Y2ggaXMg bm90IGNvbXBsZXRlIGFuZCB5b3UgdGhpbmsgaXQgbmVlZHMgbW9yZQpkaXNjdXNzaW9uLCB5b3Ug bWlnaHQgd2FudCB0byBzZW5kIGl0IHRvIEBlbWFpbHtlbWFjcy1kZXZlbEBAZ251Lm9yZyxlbWFj cy1kZXZlbEBAZ251Lm9yZ30KaW5zdGVhZC4gIElmIHlvdSByZXZpc2UgeW91ciBwYXRjaCwgc2Vu ZCBpdCBhcyBhIGZvbGxvd3VwIHRvIHRoZQppbml0aWFsIHRvcGljLgoKCkBtZW51CiogRGVzY3Jp cHRpb246OiAgICAgICAgICAgICAgICAgCiogQ2hhbmdlTG9nOjogICAgICAgICAgICAgICAgICAg CiogVGhlIFBhdGNoIEl0c2VsZjo6ICAgICAgICAgICAgCiogTWFpbCBGb3JtYXQ6OiAgICAgICAg ICAgICAgICAgCiogUmVyZWFkIHlvdXIgcGF0Y2g6OiAgICAgICAgICAgCiogRG8gbm90IG1peCBj aGFuZ2VzOjogICAgICAgICAgCkBlbmQgbWVudQoKQG5vZGUgRGVzY3JpcHRpb24KQHNlY3Rpb24g RGVzY3JpcHRpb24KQGl0ZW1pemUKQGl0ZW0gCkZvciBidWcgZml4ZXMsIGEgZGVzY3JpcHRpb24g b2YgdGhlIGJ1ZyBhbmQgaG93IHlvdXIgcGF0Y2ggZml4ZXMKdGhpcyBidWcuCgpAaXRlbSAKRm9y IG5ldyBmZWF0dXJlcywgYSBkZXNjcmlwdGlvbiBvZiB0aGUgZmVhdHVyZSBhbmQgeW91cgppbXBs ZW1lbnRhdGlvbi4KCkBlbmQgaXRlbWl6ZQoKQG5vZGUgQ2hhbmdlTG9nCkBzZWN0aW9uIENoYW5n ZUxvZwpBIEB1cmVme2h0dHA6Ly93d3cuZ251Lm9yZy9wcmVwL3N0YW5kYXJkcy9odG1sX25vZGUv Q2hhbmdlLUxvZ3MuaHRtbCNDaGFuZ2UtTG9ncyxDaGFuZ2VMb2d9IGVudHJ5IGFzIHBsYWludGV4 dCAoc2VwYXJhdGUgZnJvbSB0aGUgcGF0Y2gpLiAgSWYKaW5zdGFsbGluZyBjaGFuZ2VzIHdyaXR0 ZW4gYnkgc29tZW9uZSBlbHNlLCBtYWtlIHRoZSBDaGFuZ2VMb2cKZW50cnkgaW4gdGhlaXIgbmFt ZSwgbm90IHlvdXJzLiAgVGhlcmUgaXMgbm8gbmVlZCB0byBtYWtlIGNoYW5nZQpsb2cgZW50cmll cyBmb3IgZmlsZXMgc3VjaCBhcyBORVdTLCBNQUlOVEFJTkVSUywgYW5kIEZPUi1SRUxFQVNFLgoK QG5vZGUgVGhlIFBhdGNoIEl0c2VsZgpAc2VjdGlvbiBUaGUgUGF0Y2ggSXRzZWxmClBsZWFzZSB1 c2UgIkNvbnRleHQgRGlmZiIgZm9ybWF0LiAgSWYgeW91IGFyZSBhY2Nlc3NpbmcgdGhlIEJhemFh cgpyZXBvc2l0b3J5LCBtYWtlIHN1cmUgeW91ciBjb3B5IGlzIHVwLXRvLWRhdGUgKGUuZy4gd2l0 aCBAdmVyYnt+YnpyCiAgIHB1bGx+fSksIHRoZW4gdXNlCkBleGFtcGxlCmJ6ciBkaWZmIC0tbm8t YWxpYXNlcyAtLWRpZmYtb3B0aW9ucz0tY3AKCkBlbmQgZXhhbXBsZQpFbHNlLCB1c2UKQGV4YW1w bGUKZGlmZiAtY3AgT0xEIE5FVwoKQGVuZCBleGFtcGxlCklmIHlvdXIgdmVyc2lvbiBvZiBkaWZm IGRvZXMgbm90IHN1cHBvcnQgdGhlc2Ugb3B0aW9ucywgdGhlbiBnZXQKdGhlIGxhdGVzdCB2ZXJz aW9uIG9mIEdOVSBEaWZmLgoKQG5vZGUgTWFpbCBGb3JtYXQKQHNlY3Rpb24gTWFpbCBGb3JtYXQK V2UgcHJlZmVyIHRvIGdldCB0aGUgcGF0Y2hlcyBhcyBpbmxpbmUgcGxhaW4gdGV4dC4KClBsZWFz ZSBiZSBhd2FyZSBvZiBsaW5lIHdyYXBwaW5nIHdoaWNoIHdpbGwgbWFrZSB0aGUgcGF0Y2gKdW5y ZWFkYWJsZSBhbmQgdXNlbGVzcyBmb3IgdXMuICBUbyBhdm9pZCB0aGF0LCB5b3UgY2FuIHVzZSBN SU1FCmF0dGFjaG1lbnRzIG9yLCBhcyBhIGxhc3QgcmVzb3J0LCB1dWVuY29kZWQgZ3ppcHBlZCB0 ZXh0LgoKQG5vZGUgUmVyZWFkIHlvdXIgcGF0Y2gKQHNlY3Rpb24gUmVyZWFkIHlvdXIgcGF0Y2gu CgpAbm9kZSBEbyBub3QgbWl4IGNoYW5nZXMKQHNlY3Rpb24gRG8gbm90IG1peCBjaGFuZ2VzCklm IHlvdSBzZW5kIHNldmVyYWwgdW5yZWxhdGVkIGNoYW5nZXMgdG9nZXRoZXIsIHdlIHdpbGwgYXNr IHlvdSB0bwpzZXBhcmF0ZSB0aGVtIHNvIHdlIGNhbiBjb25zaWRlciBlYWNoIG9mIHRoZSBjaGFu Z2VzIGJ5IGl0c2VsZi4KCkBub2RlIExlYXJuaW5nIFJlc291cmNlcwpAY2hhcHRlciBMZWFybmlu ZyBSZXNvdXJjZXMKSSBmaW5kIHRoYXQgb25lIG9mIHRoZSBsYXJnZXN0IGh1cmRsZXMgZm9yIGdl dHRpbmcgaW52b2x2ZWQgaW4gYW55CnByb2plY3QgZm9yIG1lIGlzIGxhY2sgb2Yga25vd2xlZGdl LgoKQGl0ZW1pemUKQGl0ZW0gCkxpc3A6CkBpdGVtaXplCkBpdGVtIApBbiBJbnRyb2R1Y3Rpb24g dG8gUHJvZ3JhbW1pbmcgaW4gRW1hY3MgTGlzcC4gIEl0IGlzIGEgc2ltcGxlCmludHJvZHVjdGlv biB0byBFbWFjcyBMaXNwIHByb2dyYW1taW5nLiAgU2VlIEByZWZ7VG9wLCwsZWludHIsfS4KCgpA aXRlbSAKR05VIEVtYWNzIENvbW1vbiBMaXNwIEVtdWxhdGlvbi4gIFNlZSBAcmVme1RvcCwsLGNs LH0uCgoKQGl0ZW0gCkdOVSBFbWFjcyBMaXNwIFJlZmVyZW5jZSBNYW51YWwuICBTZWUgQHJlZntU b3AsLCxlbGlzcCx9LgoKCkBpdGVtIApAdXJlZntodHRwOi8vZW1hY3N3aWtpLm9yZy9lbWFjcy9F bGlzcENvb2tib29rLEVsaXNwIENvb2tib29rfSBpcyBhbHNvIGEgZ29vZCByZXNvdXJjZS4KCkBl bmQgaXRlbWl6ZQoKCkBpdGVtIApFbWFjczoKQGl0ZW1pemUKQGl0ZW0gCkNDIE1vZGUuICBFbWFj cyBzdXBwb3J0cyBDIHByb2dyYW1taW5nIHdlbGwgYnkgZGVmYXVsdCBzaW5jZQpFbWFjcyBhbmQg bWFueSBwYXJ0cyBvZiB0aGUgR05VIHN5c3RlbSBhcmUgd3JpdHRlbiBpbiBDLiAgSXQKaGVscHMg eW91IGVkaXQgRW1hY3Mgc291cmNlIGZpbGVzIGNvbnRhaW5pbmcgQyBjb2RlLiAgU2VlCkByZWZ7 VG9wLCwsY2Ntb2RlLH0uCgoKQGl0ZW0gCkB1cmVme2h0dHA6Ly9jZWRldC5zb3VyY2Vmb3JnZS5u ZXQvLENFREVUfS4gIENFREVUIGlzIGEgQHZlcmJ7fkNvbGxlY3Rpb24gb2YgRW1hY3MgRGV2ZWxv cG1lbnQgRW52aXJvbm1lbnQKICAgICAgVG9vbHN+fSB3cml0dGVuIHdpdGggdGhlIGVuZCBnb2Fs IG9mIGNyZWF0aW5nIGFuIGFkdmFuY2VkCmRldmVsb3BtZW50IGVudmlyb25tZW50IGluIEVtYWNz LiAgSXQgaGFzIG1hbnkgdXNlZnVsIGZlYXR1cmVzCmZvciBkZXZlbG9wbWVudC4KCgpAaXRlbSAK QHVyZWZ7aHR0cDovL3d3dy5lbWFjc3dpa2kub3JnL2VtYWNzL0ljaWNsZXMsSWNpY2xlc30uICBJ Y2ljbGVzIGlzIGFuIEVtYWNzIGxpYnJhcnkgdGhhdCBlbmhhbmNlcyBtaW5pYnVmZmVyCmNvbXBs ZXRpb24uICBJdCBoYXMgbWFueSBnb29kIGZlYXR1cmVzIGZvciBFbWFjcyBMaXNwClByb2dyYW1t ZXJzIGFuZCBvcmRpbmFyeSBFbWFjcyB1c2Vycy4KCgpAaXRlbSAKVGFncyBUYWJsZXMuICBTZWUg QHJlZntUYWdzLCwsZW1hY3MsfS4KCgpAaXRlbSAKVGhlIEVtYWNzIFdpZGdldCBMaWJyYXJ5LiAg QWxsIGN1c3RvbWl6YXRpb24gdHlwZXMgYXJlCmltcGxlbWVudGVkIGFzIHdpZGdldHMuICBTZWUg QHJlZntUb3AsLCx3aWRnZXQsfS4KCkBlbmQgaXRlbWl6ZQoKCkBpdGVtIApTb21lIGxpYnJhcmll czoKQGl0ZW1pemUKQGl0ZW0gCkB1cmVme2h0dHA6Ly9kZXZlbG9wZXIuZ25vbWUub3JnL2d0azMv dW5zdGFibGUvLEdUSysgMyBSZWZlcmVuY2UgTWFudWFsfSwgc2luY2UgR1RLKyBpcyB0aGUgZGVm YXVsdCBYIHRvb2xraXQgaW4KR05VIEVtYWNzLgoKCkBpdGVtIApAdXJlZntodHRwOi8vd3d3Lmxp YnRpZmYub3JnL2xpYnRpZmYuaHRtbCxVc2luZyBUaGUgVElGRiBMaWJyYXJ5fQoKCkBpdGVtIApA dXJlZntodHRwOi8vZ2lmbGliLnNvdXJjZWZvcmdlLm5ldC9pbnRyby5odG1sLEludHJvZHVjdGlv biB0byBHSUZMSUJ9CgpAZW5kIGl0ZW1pemUKCgpAaXRlbSAKQHVyZWZ7aHR0cDovL3d3dy5nbnUu b3JnL3NvZnR3YXJlL3RleGluZm8vbWFudWFsL3RleGluZm8vLEdOVSBUZXhpbmZvIE1hbnVhbH0u ICBUZXhpbmZvIGlzIHRoZSBvZmZpY2lhbCBkb2N1bWVudGF0aW9uIGZvcm1hdCBvZiBFbWFjcy4K CgpAaXRlbSAKR05VIGJ1aWxkIHN5c3RlbS4gIEl0IGhlbHBzIEVtYWNzIGRldmVsb3BlcnMgbWFr ZSBFbWFjcyBzb3VyY2UgY29kZSBwb3J0YWJsZSAKdG8gbWFueSBVbml4LWxpa2Ugc3lzdGVtcy5A Zm9vdG5vdGV7QHVyZWZ7aHR0cDovL3d3dy5nbnUub3JnL3NvZnR3YXJlL2F1dG9jb25mL21hbnVh bC9pbmRleC5odG1sfX1AZm9vdG5vdGV7QHVyZWZ7aHR0cDovL3d3dy5nbnUub3JnL3NvZnR3YXJl L2F1dG9tYWtlL21hbnVhbC9hdXRvbWFrZS5odG1sfX1AZm9vdG5vdGV7QHVyZWZ7aHR0cDovL3d3 dy5nbnUub3JnL3NvZnR3YXJlL2dudWxpYi9tYW51YWwvfX0KCgpAaXRlbSAKQHVyZWZ7aHR0cDov L2RvYy5iYXphYXIuY2Fub25pY2FsLmNvbS9ienIuZGV2L2VuL3VzZXItcmVmZXJlbmNlL2luZGV4 Lmh0bWwsQmF6YWFyIFVzZXIgUmVmZXJlbmNlfS4KCgpAaXRlbSAKQHVyZWZ7aHR0cDovL3hpbWJp b3QuY29tL2N2cy9tYW51YWwvc3RhYmxlLEhUTUwgQ2VkZXJxdmlzdCBmb3IgQ1ZTIHN0YWJsZSBy ZWxlYXNlfS4gIFRoZSB3ZWIgcGFnZXMgb2YgRW1hY3MKYXJlIGtlcHQgaW4gYSBDVlMgcmVwb3Np dG9yeS4KCgpAaXRlbSAKQHVyZWZ7aHR0cDovL3NvdXJjZXdhcmUub3JnL2dkYi9jdXJyZW50L29u bGluZWRvY3MvZ2RiLyxHREIgVXNlciBNYW51YWx9LiAgQWx0aG91Z2ggRW1hY3MgY2FuIGJlIGRl YnVnZ2VkIHdpdGggTVNWQyBhbmQKb3RoZXIgZGVidWdnZXJzLCBHREIgaXMgcmVjb21tZW5kZWQu CgoKQGl0ZW0gCkB1cmVme2h0dHA6Ly93d3cuZ251Lm9yZy9zb2Z0d2FyZS9tYWtlL21hbnVhbC8s R05VIE1ha2UgTWFudWFsfS4gIE1ha2UgaXMgYSB0b29sIHdoaWNoIGNvbnRyb2xzIHRoZSBnZW5l cmF0aW9uIG9mCmV4ZWN1dGFibGVzIGFuZCBvdGhlciBub24tc291cmNlIGZpbGVzIG9mIEVtYWNz IGZyb20gdGhlIHNvdXJjZQpmaWxlcy4KCgpAaXRlbSAKQHVyZWZ7aHR0cDovL2djYy5nbnUub3Jn L29ubGluZWRvY3MvLEdDQyBvbmxpbmUgZG9jdW1lbnRhdGlvbn0uICBUaGUgR05VIENvbXBpbGVy IENvbGxlY3Rpb24gKEdDQykKaXMgYSBjb21waWxlciBzeXN0ZW0gcHJvZHVjZWQgYnkgdGhlIEdO VSBQcm9qZWN0IHN1cHBvcnRpbmcKdmFyaW91cyBwcm9ncmFtbWluZyBsYW5ndWFnZXMuCgoKQGl0 ZW0gCkB1cmVme2h0dHA6Ly93d3cuZ251Lm9yZy9zb2Z0d2FyZS9ndWlsZS9tYW51YWwvLEdOVSBH dWlsZSBSZWZlcmVuY2UgTWFudWFsfS4gIEd1aWxlLCBhIGRpYWxlY3Qgb2YgU2NoZW1lLCBpcyB0 aGUKbmF0aXZlIGxhbmd1YWdlIG9mIHRoZSBHTlUgc3RhbmRhcmQgZXh0ZW5zaW9uIGxhbmd1YWdl CmludGVycHJldGVyLiAgTWFraW5nIEVtYWNzIHN1cHBvcnQgZ3VpbGUgd2lsbCBwcm92aWRlIGEg YmV0dGVyCnByb2dyYW1taW5nIGVudmlyb25tZW50IGZvciBib3RoIEVtYWNzIHVzZXJzIGFuZCBH dWlsZSB1c2Vycy4gIFNlZQphbHNvIEB1cmVme2h0dHA6Ly93d3cuYWR2b2dhdG8ub3JnL2FydGlj bGUvNTUwLmh0bWwsdGhpcyBhcnRpY2xlfS4KCgpAaXRlbSAKQHVyZWZ7aHR0cDovL3d3dy5nbnUu b3JnL3NvZnR3YXJlL2VtYWNzL21hbnVhbC9odG1sX25vZGUvZWRpZmYvLEVkaWZmfSBhbmQgQHVy ZWZ7aHR0cDovL3d3dy5nbnUub3JnL3NvZnR3YXJlL2RpZmZ1dGlscy9tYW51YWwvaHRtbF9ub2Rl L2luZGV4Lmh0bWwjVG9wLEdOVSBEaWZmdXRpbHN9IG1hbnVhbHMuICBUaGV5IGNhbiBzaG93IHRo ZSBkaWZmZXJlbmNlcwpiZXR3ZWVuIGZpbGVzIGFuZCB1cGRhdGUgZmlsZXMuCgoKQGl0ZW0gCkB1 cmVme2h0dHA6Ly93d3cuZ251Lm9yZy9zb2Z0d2FyZS9ncmVwL21hbnVhbC8sR05VIEdyZXAgTWFu dWFsfS4gIFRoZSBAdmVyYnt+Z3JlcH59IGNvbW1hbmQgc2VhcmNoZXMgb25lIG9yIG1vcmUgaW5w dXQKZmlsZXMgZm9yIGxpbmVzIGNvbnRhaW5pbmcgYSBtYXRjaCB0byBhIHNwZWNpZmllZCBwYXR0 ZXJuLiAgSXQgaXMKYSB2ZXJ5IHVzZWZ1bCB0b29sIGFuZCBvZnRlbiB1c2VkIHdoZW4gZGV2ZWxv cGluZyBFbWFjcy4KCgpAaXRlbSAKU3ViY3JpYmUgdG8gQHVyZWZ7aHR0cHM6Ly9saXN0cy5nbnUu b3JnL21haWxtYW4vbGlzdGluZm8vZW1hY3MtZGlmZnMsRW1hY3MtZGlmZnN9IGFuZCBAdXJlZnto dHRwczovL2xpc3RzLmdudS5vcmcvbWFpbG1hbi9saXN0aW5mby9lbWFjcy1lbHBhLWRpZmZzLEVt YWNzLWVscGEtZGlmZnN9LiAgWW91IGNhbiBwaWNrIG91dAplbnRyaWVzIHRoYXQgY2F0Y2ggbXkg YXR0ZW50aW9uIGFuZCBza2ltIHRoZSBjb21taXQuICBUaHJvdWdoIHRoaXMKYWN0aW9uLCB5b3Ug Y2FuIGtub3c6CkBpdGVtaXplCkBpdGVtIApuYW1lcyBvZiBwZW9wbGUgaW52b2x2ZWQgaW4gc29t ZXRoaW5nIHlvdSdyZSBpbnRyaWd1ZWQgYnkKCgpAaXRlbSAKbG9jYXRpb25zIGluIHRoZSB0cmVl IG9mIGNvZGUgdGhhdCB5b3UncmUgaW50ZXJlc3RlZCBpbgoKCkBpdGVtIAptYW55IG90aGVyIHVz ZWZ1bCBpbmZvcm1hdGlvbgoKQGVuZCBpdGVtaXplCgpAZW5kIGl0ZW1pemUKCkBub2RlIEJ1ZyBU cmFja2VyCkBjaGFwdGVyIEJ1ZyBUcmFja2VyCldlIHVzZSBAdXJlZntodHRwOi8vZGViYnVncy5n bnUub3JnLyxHTlUgQnVnIFRyYWNrZXJ9KEB1cmVme2h0dHA6Ly9lbi53aWtpcGVkaWEub3JnL3dp a2kvRGViaWFuX2J1Z190cmFja2luZ19zeXN0ZW0sRGViYnVnc30pLiAgRm9yCmEgbGlzdCBvZiBh bGwgYnVncywgc2VlIEB1cmVme2h0dHA6Ly9kZWJidWdzLmdudS5vcmcvZGIvcGEvbGVtYWNzLmh0 bWx9ClRoaXMgaXMgYSBzdGF0aWMgcGFnZSwgdXBkYXRlZCBvbmNlIGEgZGF5LgoKVGhlcmUgaXMg YWxzbyBhIGR5bmFtaWMgbGlzdCwgZ2VuZXJhdGVkIG9uIHJlcXVlc3QuICBUaGlzIGFjY2VwdHMK dmFyaW91cyBvcHRpb25zLCBlZyB0byBzZWUgdGhlIG1vc3QgcmVjZW50IGJ1Z3M6CkB1cmVme2h0 dHA6Ly9kZWJidWdzLmdudS5vcmcvY2dpL3BrZ3JlcG9ydC5jZ2k/bmV3ZXN0PTEwMH0KCllvdSBj YW4gYWxzbyBmb2xsb3cgdGhlIGxpbmtzIG9uIHRoZSBmcm9udCBwYWdlIEB1cmVme2h0dHA6Ly9k ZWJidWdzLmdudS5vcmd9IC4KCgpAbWVudQoqIEhvdyB0byByZXBvcnQgYSBidWc/OjogICAgICAg IAoqIEhvdyB0byBjb21tZW50IG9uIGEgYnVnPzo6ICAgIAoqIEhvdyB0byBjbG9zZSBhIGJ1Zz86 OiAgICAgICAgIAoqIEhvdyB0byBzZXQgYnVnIG1ldGEtZGF0YT86OiAgIApAZW5kIG1lbnUKCkBu b2RlIEhvdyB0byByZXBvcnQgYSBidWc/CkBzZWN0aW9uIEhvdyB0byByZXBvcnQgYSBidWc/ClVz ZSBAdmVyYnt+TS14IHJlcG9ydC1lbWFjcy1idWd+fSwgb3Igc2VuZCBtYWlsIHRvCkBlbWFpbHti dWctZ251LWVtYWNzQEBnbnUub3JnLGJ1Zy1nbnUtZW1hY3NAQGdudS5vcmd9LiAgSWYgeW91IHdh bnQgdG8gQ2Mgc29tZW9uZSwgdXNlIGFuCkB2ZXJie35YLURlYmJ1Z3MtQ0N+fSBoZWFkZXIgaW5z dGVhZC4gIEJlZm9yZSBzZW5kaW5nIGEgYnVnIHJlcG9ydCwgbWFrZQpzdXJlIHlvdSBoYXZlIHJl YWQgQHJlZntCdWdzLCwsZW1hY3MsfS4gIFlvdSBjYW4gYWxzbyByZWFkIHRoaXMgZ3JlYXQKdGV4 dDogIkB1cmVme2h0dHA6Ly93d3cuY2hpYXJrLmdyZWVuZW5kLm9yZy51ay9+c2d0YXRoYW0vYnVn cy5odG1sLEhvdyB0byBTZW5kIEJ1ZyBSZXBvcnRzIEVmZmVjdGl2ZWx5fSIuCgpAbm9kZSBIb3cg dG8gY29tbWVudCBvbiBhIGJ1Zz8KQHNlY3Rpb24gSG93IHRvIGNvbW1lbnQgb24gYSBidWc/ClJl cGx5IHRvIGEgbWFpbCBvbiB0aGUgYnVnLWdudS1lbWFjcyBsaXN0IGluIHRoZSBub3JtYWwgd2F5 LiAgT3IKc2VuZCBhIG1haWwgdG8gMTIzQEBkZWJidWdzLmdudS5vcmcuCgpJZiB0aGUgYnVnIGlz IG9sZCBhbmQgY2xvc2VkLCB5b3UgbWF5IGhhdmUgdG8gdW5hcmNoaXZlIGl0IGZpcnN0LgoKU2Vu ZCBhIG1haWwgdG8gQGVtYWlse2NvbnRyb2xAQGRlYmJ1Z3MuZ251Lm9yZyxjb250cm9sQEBkZWJi dWdzLmdudS5vcmd9IHdpdGgKQGV4YW1wbGUKdW5hcmNoaXZlIDEyMwoKQGVuZCBleGFtcGxlCm9u IHRoZSBmaXJzdCBsaW5lIG9mIHRoZSBib2R5LgoKQG5vZGUgSG93IHRvIGNsb3NlIGEgYnVnPwpA c2VjdGlvbiBIb3cgdG8gY2xvc2UgYSBidWc/ClNlbmQgYSBtYWlsIHRvIDEyMy1kb25lQEBkZWJi dWdzLmdudS5vcmcuICBJbiB0aGUgYm9keSwgZXhwbGFpbiB3aHkKdGhlIGJ1ZyBpcyBiZWluZyBj bG9zZWQuCgpAbm9kZSBIb3cgdG8gc2V0IGJ1ZyBtZXRhLWRhdGE/CkBzZWN0aW9uIEhvdyB0byBz ZXQgYnVnIG1ldGEtZGF0YT8KQnkgbWFpbGluZyBjb21tYW5kcyB0byBAZW1haWx7Y29udHJvbEBA ZGViYnVncy5nbnUub3JnLGNvbnRyb2xAQGRlYmJ1Z3MuZ251Lm9yZ30uICBQbGFjZSBjb21tYW5k cwphdCB0aGUgc3RhcnQgb2YgdGhlIG1lc3NhZ2UgYm9keSwgb25lIHBlciBsaW5lLgpAdmVyYmF0 aW0Kc2V2ZXJpdHkgMTIzIHNlcmlvdXN8aW1wb3J0YW50fG5vcm1hbHxtaW5vcnx3aXNobGlzdAp0 YWdzIDEyMyBtb3JlaW5mb3x1bnJlcHJvZHVjaWJsZXx3b250Zml4fHBhdGNoCkBlbmQgdmVyYmF0 aW0KCkBub2RlIENvcHlyaWdodApAY2hhcHRlciBDb3B5cmlnaHQKVGhlIEZyZWUgU29mdHdhcmUg Rm91bmRhdGlvbiBpcyB0aGUgY29weXJpZ2h0IGhvbGRlciBmb3IgR05VIEVtYWNzLgpUaGUgRlNG IGlzIGEgbm9ucHJvZml0IHdpdGggYSB3b3JsZHdpZGUgbWlzc2lvbiB0byBwcm9tb3RlIGNvbXB1 dGVyCnVzZXIgZnJlZWRvbSBhbmQgdG8gZGVmZW5kIHRoZSByaWdodHMgb2YgYWxsIGZyZWUgc29m dHdhcmUgdXNlcnMuCgpHZW5lcmFsbHkgc3BlYWtpbmcsIGZvciBub24tdHJpdmlhbCBjb250cmli dXRpb25zIHRvIEdOVSBFbWFjcyB3ZQpyZXF1aXJlIHRoYXQgdGhlIGNvcHlyaWdodCBiZSBhc3Np Z25lZCB0byB0aGUgRnJlZSBTb2Z0d2FyZQpGb3VuZGF0aW9uLiAgRm9yIHRoZSByZWFzb25zIGJl aGluZCB0aGlzLCBzZWU6CkB1cmVme2h0dHA6Ly93d3cuZ251Lm9yZy9saWNlbnNlcy93aHktYXNz aWduLmh0bWx9LgoKSWYgeW91IHdhbnQgdG8gY29udHJpYnV0ZSB0byBFbWFjcyBhbmQgZG8gY29w eXJpZ2h0IGFzc2lnbm1lbnQsIHlvdQpuZWVkIHRvIGNvbXBsZXRlIEB1cmVme2h0dHA6Ly9naXQu c2F2YW5uYWguZ251Lm9yZy9naXR3ZWIvP3A9Z251bGliLmdpdDthPXRyZWU7Zj1kb2MvQ29weXJp Z2h0O2hiPUhFQUQsdGhpcyBmb3JtfSwgYW5kIHNlbmQgaXQgdG8gQGVtYWlse2Fzc2lnbkBAZ251 Lm9yZyxhc3NpZ25AQGdudS5vcmd9LiAgVGhlIEZTRgp3aWxsIHNlbmQgeW91IHRoZSBhc3NpZ25t ZW50IGNvbnRyYWN0IHRoYXQgYm90aCB5b3UgYW5kIHRoZSBGU0Ygd2lsbApzaWduLiBQbGVhc2Ug bGV0IEVtYWNzIG1haW50YWluZXJzIGtub3cgd2hlbiB0aGlzIHByb2Nlc3MgaXMKY29tcGxldGUu CgpFdmVyeSBub24tdHJpdmlhbCBmaWxlIGRpc3RyaWJ1dGVkIHRocm91Z2ggdGhlIEVtYWNzIHJl cG9zaXRvcnkKc2hvdWxkIGJlIHNlbGYtZXhwbGFuYXRvcnkgaW4gdGVybXMgb2YgY29weXJpZ2h0 IGFuZCBsaWNlbnNlLgoKVGhlIGRlZmluaXRpb24gb2YgdHJpdmlhbGl0eSBpcyBhIGxpdHRsZSB2 YWd1ZSwgYnV0IGEgcnVsZSBvZiB0aHVtYgppcyB0aGF0IGFueSBmaWxlIHdpdGggbGVzcyB0aGFu IDEwIGxpbmVzIG9mIGFjdHVhbCBjb250ZW50IGlzCnRyaXZpYWwuICBJZiBhIGZpbGUgaXMgYXV0 by1nZW5lcmF0ZWQgKEUuZy4sIGxkZWZzLWJvb3QuZWwpIGZyb20KYW5vdGhlciBvbmUgaW4gdGhl IHJlcG9zaXRvcnksIHRoZW4gaXQgZG9lcyBub3QgcmVhbGx5IG1hdHRlciBhYm91dAphZGRpbmcg YSBjb3B5cmlnaHQgc3RhdGVtZW50IHRvIHRoZSBnZW5lcmF0ZWQgZmlsZS4KCkxlZ2FsIGFkdmlj ZSBzYXlzIHRoYXQgd2UgY291bGQsIGlmIHdlIHdpc2hlZCwgcHV0IGEgbGljZW5zZSBub3RpY2UK ZXZlbiBpbiB0cml2aWFsIGZpbGVzLCBiZWNhdXNlIGNvcHlyaWdodCBsYXcgaW4gZ2VuZXJhbCBs b29rcyBhdCB0aGUKb3ZlcmFsbCB3b3JrIGFzIGEgd2hvbGUuICBJdCBpcyBub3QgQGVtcGh7bmVj ZXNzYXJ5fSB0byBkbyBzbywgYW5kIFJNUwpwcmVmZXJzIHRoYXQgd2UgZG8gbm90LiAgVGhpcyBt ZWFucyBvbmUgbmVlZHMgdG8gdGFrZSBjYXJlIHRoYXQKdHJpdmlhbCBmaWxlcyBkbyBub3QgZ3Jv dyBhbmQgYmVjb21lIG5vbi10cml2aWFsIHdpdGhvdXQgaGF2aW5nIGEKbGljZW5zZSBhZGRlZC4g IE5CIGNvbnNlcXVlbnRseSwgaWYgeW91IGFkZCBhIGxvdCBvZiB0ZXh0IHRvIGEgc21hbGwKZmls ZSwgY29uc2lkZXIgd2hldGhlciB5b3VyIGNoYW5nZXMgaGF2ZSBtYWRlIHRoZSBmaWxlIHdvcnRo eSBvZiBhCmNvcHlyaWdodCBub3RpY2UsIGFuZCBpZiBzbywgcGxlYXNlIGFkZCBvbmUuCgpJdCBj YW4gYmUgaGVscGZ1bCB0byBwdXQgYSByZW1pbmRlciBjb21tZW50IGF0IHRoZSBzdGFydCBvZiBh CnRyaXZpYWwgZmlsZSwgZWc6ICJhZGQgYSBsaWNlbnNlIG5vdGljZSBpZiB0aGlzIGdyb3dzIHRv ID4gMTAgbGluZXMKb2YgY29kZSIuCgpDb3B5cmlnaHQgY2hhbmdlcyBzaG91bGQgYmUgcHJvcGFn YXRlZCB0byBhbnkgYXNzb2NpYXRlZApyZXBvc2l0b3JpZXMgKGVnIEdudXMsIE1ILUUpLgoKQWxs IFJFQURNRSAoYW5kIG90aGVyIHN1Y2ggdGV4dCBmaWxlcykgdGhhdCBhcmUgbm9uLXRyaXZpYWwg c2hvdWxkCmNvbnRhaW4gY29weXJpZ2h0IHN0YXRlbWVudHMgYW5kIEdQTCBsaWNlbnNlIG5vdGlj ZXMsIGV4YWN0bHkgYXMKQHZlcmJ7fi5lbH59IGZpbGVzIGRvIChzZWUgZS5nLiBSRUFETUUgaW4g dGhlIHRvcC1sZXZlbCBkaXJlY3RvcnkpLiAgQmVmb3JlCjIwMDcsIHdlIHVzZWQgYSBzaW1wbGUs IHNob3J0IHN0YXRlbWVudCBwZXJtaXR0aW5nIGNvcHlpbmcgYW5kCm1vZGlmaWNhdGlvbiBwcm92 aWRlZCBsZWdhbCBub3RpY2VzIHdlcmUgcmV0YWluZWQuICBJbiBGZWIgMjAwNyB3ZQpzd2l0Y2hl ZCB0byB0aGUgc3RhbmRhcmQgR1BMIHRleHQsIG9uIGxlZ2FsIGFkdmljZS4KCkZvciBpbWFnZSBm aWxlcywgdGhlIGNvcHlyaWdodCBhbmQgbGljZW5zZSBkZXRhaWxzIHNob3VsZCBiZQpyZWNvcmRl ZCBpbiBhIFJFQURNRSBmaWxlIGluIGVhY2ggZGlyZWN0b3J5IHdpdGggaW1hZ2VzLgoKQG5vZGUg RW1hY3MgcmVwb3NpdG9yaWVzCkBjaGFwdGVyIEVtYWNzIHJlcG9zaXRvcmllcwpUaGVyZSBhcmUg dGhyZWUgb2ZmaWNpYWwgRW1hY3MgcmVwb3NpdG9yaWVzOiBAdXJlZntodHRwOi8vYnpyLnNhdmFu bmFoLmdudS5vcmcvbGgvZW1hY3MvLEJhemFhcn0sIEB1cmVme2h0dHA6Ly93ZWIuY3ZzLnNhdmFu bmFoLmdudS5vcmcvdmlld3ZjLz9yb290PWVtYWNzLENWU30sIGFuZCBAdXJlZntodHRwOi8vZ2l0 LnNhdmFubmFoLmdudS5vcmcvY2dpdC9lbWFjcy5naXQsR2l0fS4KClRoZSBsYXRlc3QgdmVyc2lv biBvZiBFbWFjcyBjYW4gYmUgZG93bmxvYWRlZCB1c2luZyBHTlUgQmF6YWFyIGZyb20KdGhlIEB1 cmVme2h0dHA6Ly9zYXZhbm5haC5nbnUub3JnL3Byb2plY3RzL2VtYWNzLFNhdmFubmFoIHdlYiBz aXRlfS4gIEl0IGlzIGltcG9ydGFudCB0byB3cml0ZSB5b3VyIHBhdGNoIGJhc2VkIG9uCnRoZSBs YXRlc3QgdmVyc2lvbi4gIElmIHlvdSBzdGFydCBmcm9tIGFuIG9sZGVyIHZlcnNpb24sIHlvdXIg cGF0Y2gKbWF5IGJlIG91dGRhdGVkIChzbyB0aGF0IEVtYWNzIGRldmVsb3BlcnMgd2lsbCBoYXZl IGEgaGFyZCB0aW1lCmFwcGx5aW5nIGl0KSwgb3IgY2hhbmdlcyBpbiBFbWFjcyBtYXkgaGF2ZSBt YWRlIHlvdXIgcGF0Y2gKdW5uZWNlc3NhcnkuCgoKQG1lbnUKKiBCdWlsZGluZyBFbWFjczo6ICAg ICAgICAgICAgICAKKiBFbWFjcyBEaXJlY3RvcnkgVHJlZTo6ICAgICAgICAKKiBXcml0ZSBBY2Nl c3M6OiAgICAgICAgICAgICAgICAKQGVuZCBtZW51CgpAbm9kZSBCdWlsZGluZyBFbWFjcwpAc2Vj dGlvbiBCdWlsZGluZyBFbWFjcwpAdmVyYmF0aW0KJCBjZCAvd2hlcmUveW91L3VucGFja2VkL29y L2JyYW5jaGVkL2VtYWNzLwokIC4vYXV0b2dlbi5zaCAgICAjIG5vdCBuZWVkZWQgd2hlbiBpbnN0 YWxsaW5nIGZyb20gdGFyYmFsbAokIC4vY29uZmlndXJlCiQgbWFrZQokIG1ha2UgaW5zdGFsbCAj IFF1aXRlIG9mdGVuIGEgYHN1ZG8gbWFrZSBpbnN0YWxsJyBpcyBuZWNlc3NhcnkKQGVuZCB2ZXJi YXRpbQpJIHJlY29tbWVuZCB1c2luZyBAdmVyYnt+LWpQUk9Dfn0gZmxhZyBmb3IgbWFrZSB3aGVy ZSBQUk9DIGlzIHRoZSBudW1iZXIKb2YgQ1BVIGNvcmUgeW91IGhhdmUgaW4gb3JkZXIgdG8gc3Bl ZWQgdXAgdGhlIGNvbXBpbGF0aW9uLgoKQnVpbGRpbmcgRW1hY3Mgb24gbm9uLVBvc2l4IHBsYXRm b3JtcyByZXF1aXJlcyB0b29scyB0aGF0IGFyZW4ndApwYXJ0IG9mIHRoZSBzdGFuZGFyZCBkaXN0 cmlidXRpb24gb2YgdGhlIE9TLiAgVGhlCnBsYXRmb3JtLXNwZWNpZmljIFJFQURNRSBmaWxlcyBh bmQgaW5zdGFsbGF0aW9uIGluc3RydWN0aW9ucwpzaG91bGQgbGlzdCB0aGUgcmVxdWlyZWQgdG9v bHMuICBJJ2xsIGFkZCBtb3JlIHN0dWZmIGhlcmUgbGF0ZXIuCgpAbm9kZSBFbWFjcyBEaXJlY3Rv cnkgVHJlZQpAc2VjdGlvbiBFbWFjcyBEaXJlY3RvcnkgVHJlZQpAZW51bWVyYXRlCkBpdGVtCnNy YwpJdCBob2xkcyB0aGUgQyBjb2RlIGZvciBFbWFjcyAodGhlIEVtYWNzIExpc3AgaW50ZXJwcmV0 ZXIgYW5kIGl0cwpwcmltaXRpdmVzLCB0aGUgcmVkaXNwbGF5IGNvZGUsIGFuZCBzb21lIGJhc2lj IGVkaXRpbmcgZnVuY3Rpb25zKS4KCkBpdGVtCmxpc3AKSXQgaG9sZHMgdGhlIEVtYWNzIExpc3Ag Y29kZSBmb3IgRW1hY3MgKG1vc3QgZXZlcnl0aGluZyBlbHNlKS4KCkBpdGVtCmxlaW0KSXQgaG9s ZHMgdGhlIGxpYnJhcnkgb2YgRW1hY3MgaW5wdXQgbWV0aG9kcywgTGlzcCBjb2RlIGFuZAphdXhp bGlhcnkgZGF0YSBmaWxlcyByZXF1aXJlZCB0byB0eXBlIGludGVybmF0aW9uYWwgY2hhcmFjdGVy cwp3aGljaCBjYW4ndCBiZSBkaXJlY3RseSBwcm9kdWNlZCBieSB5b3VyIGtleWJvYXJkLgoKQGl0 ZW0KbGliCkl0IGhvbGRzIHNvdXJjZSBjb2RlIGZvciBsaWJyYXJpZXMgdXNlZCBieSBFbWFjcyBh bmQgaXRzCnV0aWxpdGllcy4KCkBpdGVtCmxpYi1zcmMKSXQgaG9sZHMgdGhlIHNvdXJjZSBjb2Rl IGZvciBzb21lIHV0aWxpdHkgcHJvZ3JhbXMgZm9yIHVzZSBieSBvcgp3aXRoIEVtYWNzLCBsaWtl IEB2ZXJie35tb3ZlbWFpbH59IGFuZCBAdmVyYnt+ZXRhZ3N+fS4KCkBpdGVtCmV0YwpJdCBob2xk cyBtaXNjZWxsYW5lb3VzIGFyY2hpdGVjdHVyZS1pbmRlcGVuZGVudCBkYXRhIGZpbGVzIEVtYWNz CnVzZXMsIGxpa2UgdGhlIHR1dG9yaWFsIHRleHQgYW5kIHRvb2wgYmFyIGltYWdlcy4gIFRoZSBj b250ZW50cyBvZgp0aGUgQHZlcmJ7fmxpc3B+fSwgQHZlcmJ7fmxlaW1+fSwgQHZlcmJ7fmluZm9+ fSwgYW5kIEB2ZXJie35kb2N+fSBzdWJkaXJlY3RvcmllcyBhcmUKYXJjaGl0ZWN0dXJlLWluZGVw ZW5kZW50IHRvby4KCkBpdGVtCmluZm8KSXQgaG9sZHMgdGhlIEluZm8gZG9jdW1lbnRhdGlvbiB0 cmVlIGZvciBFbWFjcy4KCkBpdGVtCmRvYy9lbWFjcwpJdCBob2xkcyB0aGUgc291cmNlIGNvZGUg Zm9yIHRoZSBFbWFjcyBNYW51YWwuICBJZiB5b3UgbW9kaWZ5IHRoZQptYW51YWwgc291cmNlcywg eW91IHdpbGwgbmVlZCB0aGUgQHZlcmJ7fm1ha2VpbmZvfn0gcHJvZ3JhbSB0byBwcm9kdWNlIGFu CnVwZGF0ZWQgbWFudWFsLiAgQHZlcmJ7fm1ha2VpbmZvfn0gaXMgcGFydCBvZiB0aGUgR05VIFRl eGluZm8gcGFja2FnZTsKeW91IG5lZWQgYSBzdWl0YWJseSByZWNlbnQgdmVyc2lvbiBvZiBUZXhp bmZvLgoKQGl0ZW0KZG9jL2xpc3ByZWYKSXQgaG9sZHMgdGhlIHNvdXJjZSBjb2RlIGZvciB0aGUg RW1hY3MgTGlzcCByZWZlcmVuY2UgbWFudWFsLgoKQGl0ZW0KZG9jL2xpc3BpbnRybwpJdCBob2xk cyB0aGUgc291cmNlIGNvZGUgZm9yIHRoZSBJbnRyb2R1Y3Rpb24gdG8gUHJvZ3JhbW1pbmcgaW4K RW1hY3MgTGlzcCBtYW51YWwuCgpAaXRlbQptc2RvcwpJdCBob2xkcyBjb25maWd1cmF0aW9uIGZp bGVzIGZvciBjb21waWxpbmcgRW1hY3MgdW5kZXIgTVMtRE9TCihhbHNvIGtub3duIGFzICJNUy1E T0ciKS4KCkBpdGVtCm5leHRzdGVwCkl0IGhvbGRzIGluc3RydWN0aW9ucyBhbmQgc29tZSBvdGhl ciBmaWxlcyBmb3IgY29tcGlsaW5nIHRoZQpOZXh0c3RlcCBwb3J0IG9mIEVtYWNzLCBmb3IgR05V c3RlcCBhbmQgT1MgWCBDb2NvYS4KCkBpdGVtCm50Ckl0IGhvbGRzIHZhcmlvdXMgY29tbWFuZCBm aWxlcyBhbmQgZG9jdW1lbnRhdGlvbiBmaWxlcyB0aGF0CnBlcnRhaW4gdG8gYnVpbGRpbmcgYW5k IHJ1bm5pbmcgRW1hY3Mgb24gV2luZG93cyAoYWxzbyBrbm93biBhcwoiTG9zZWRvd3MiKS4KCkBp dGVtCm9sZFhNZW51Ck1vc3Qgb2YgdGhlIGZpbGVzIGluIHRoaXMgZGlyZWN0b3J5IGFyZSBvcmln aW5hbGx5IGZyb20gdGhlIFgxMVIyClhNZW51IGxpYnJhcnksIGRpc3RyaWJ1dGVkIGJ5IE1JVCB1 bmRlciB0aGUgdGVybXMgaW4gdGhlIGZpbGUKY29weXJpZ2h0LmguCgpBcyBvZiBSZWxlYXNlIDIg b2YgdGhlIFggV2luZG93IFN5c3RlbSwgVmVyc2lvbiAxMSBmcm9tIE1JVCwgdGhlClhNZW51IGxp YnJhcnkgaXMgbm8gbG9uZ2VyIHN1cHBvcnRlZC4gIEl0IGlzIG5vdCB1c2VkIGluIGFueQpzb2Z0 d2FyZSBzdXBwbGllZCBieSBNSVQgYW5kIGl0cyB1c2UgaXMgbm90IGVuY291cmFnZWQuCgpAaXRl bQphdXRvZ2VuClRoaXMgZGlyZWN0b3J5IGNvbnRhaW5zIHNvbWUgcHJlLWJ1aWx0IGdlbmVyYXRl ZCBmaWxlcy4KCkBpdGVtCmx3bGliClRoaXMgc3ViZGlyZWN0b3J5IGNvbnRhaW5zIHRoZSBMdWNp ZCBXaWRnZXQgTGlicmFyeSwgd2hpY2gKcHJvdmlkZXMgYSB1bmlmb3JtIGludGVyZmFjZSB0byBh IGZldyBkaWZmZXJlbnQgWCB0b29sa2l0cy4gIEl0IGlzCm5vdCBjb25zaWRlcmVkIHBhcnQgb2Yg R05VIEVtYWNzLgoKQGl0ZW0KdGVzdApJdCBob2xkcyB0ZXN0cyBmb3IgdmFyaW91cyBhc3BlY3Rz IG9mIEVtYWNzJ3MgZnVuY3Rpb25hbGl0eS4KQGVuZCBlbnVtZXJhdGUKCkBub2RlIFdyaXRlIEFj Y2VzcwpAc2VjdGlvbiBXcml0ZSBBY2Nlc3MKT25jZSB5b3UgYmVjb21lIGEgZnJlcXVlbnQgY29u dHJpYnV0b3IgdG8gRW1hY3MsIHdlIGNhbiBjb25zaWRlcgpnaXZpbmcgeW91IHdyaXRlIGFjY2Vz cyB0byB0aGUgQmF6YWFyIHJlcG9zaXRvcnkuICBGZWVsIGZyZWUgdG8gdXNlCnRoaXMgcG93ZXIs IGJ1dCBwbGVhc2UgdHJ5IHRvIGJlIGV4dHJhIGNhcmVmdWwgYW5kIHByb3ZlIHlvdXJzZWxmCndv cnRoeSBvZiB0aGlzIHByaXZpbGVnZToKCkBpdGVtaXplCkBpdGVtIApFYWNoIGNvbW1pdCBzaG91 bGQgY29ycmVzcG9uZCB0byBhIHNpbmdsZSBjaGFuZ2UgKHdoZXRoZXIgc3ByZWFkCm92ZXIgbXVs dGlwbGUgZmlsZXMgb3Igbm90KS4gIERvIG5vdCBtaXggZGlmZmVyZW50IGNoYW5nZXMgaW4gdGhl CnNhbWUgY29tbWl0QGZvb3Rub3Rle0ZvciBleGFtcGxlLCBhZGRpbmcgYSBmZWF0dXJlIGluIG9u ZSBmaWxlLCBmaXhpbmcgYSBidWcgaW4KYW5vdGhlciBzaG91bGQgYmUgdHdvIGNvbW1pdHMsIG5v dCBvbmUufS4KCgpAaXRlbSAKQ29tbWl0IGFsbCBjaGFuZ2VkIGZpbGVzIGF0IG9uY2Ugd2l0aCBh IHNpbmdsZSBsb2cgbWVzc2FnZS4gIFRoaXMKaXMgcHJldHR5IGVhc3kgdXNpbmcgdmMtZGlyIG5v dy4KCgpAaXRlbSAKS2VlcCBjb21taXQgbG9nIGxpbmVzIHRvIH4gODAgY2hhcnMgaW4gbGVuZ3Ro LiAgVGhlIGZpcnN0IGxpbmUKc2hvdWxkIGJlIGEgc3VtbWFyeSB0aGF0IGNhbiBzdGFuZCBhbG9u ZS4KCgpAaXRlbSAKTWFrZSB0aGUgbG9nIG1lc3NhZ2UgZGVzY3JpYmUgdGhlIGVudGlyZSBjaGFu Z2VzZXQsIHBlcmhhcHMKaW5jbHVkaW5nIHJlbGV2YW50IENoYW5nZUxvZyBlbnRyaWVzLgoKCkBp dGVtIApEb24ndCBwaHJhc2UgbG9nIG1lc3NhZ2VzIGFzc3VtaW5nIHRoZSBmaWxlbmFtZSBpcyBr bm93biwgYmVjYXVzZQppbiBub24tZmlsZS1vcmllbnRlZCBzeXN0ZW1zIChldmVyeXRoaW5nIG1v ZGVybiBvdGhlciB0aGFuIENWUyksCnRoZSBsb2cgbGlzdGluZyB0ZW5kcyB0byBiZSB0cmVhdGVk IGFzIGdsb2JhbCBpbmZvcm1hdGlvbiwgYW5kIHRoZQpjb25uZWN0aW9uIHdpdGggc3BlY2lmaWMg ZmlsZXMgaXMgbGVzcyBleHBsaWNpdC4KCgpAaXRlbSAKT25seSBpbnN0YWxsIGNoYW5nZXMgd2hv c2UgY29kZSBmb2xsb3dzIHRoZSB1c3VhbCBjb2RpbmcKY29udmVudGlvbnMuCgoKQGl0ZW0gCklm IHlvdSB3YW50IHRvIGFkZCBhIG5ldyBmaWxlIHRvIEVtYWNzOgoKQGl0ZW1pemUKQGl0ZW0gCk1h a2Ugc3VyZSB0aGUgZmlsZSBtYXRjaGVzIHRoZSBzdGFuZGFyZCBFbWFjcyB0ZW1wbGF0ZSAoaGVh ZGVyCmZvcm1hdCwgY29weXJpZ2h0IGFuZCBsaWNlbnNlIG5vdGljZSwgZXRjKS4KCgpAaXRlbSAK TWFrZSBzdXJlIHRoZSBmaWxlbmFtZSBkb2VzIG5vdCBjYXVzZSB0aGUgTVMtRE9TIHBvcnQgYW55 CnByb2JsZW1zICg4KzMpLgoKCkBpdGVtIApJZiBhcHByb3ByaWF0ZSwgY2hlY2sgdGhhdCB0aGUg ZmlsZSBjb21waWxlcyBPSyBhbmQgdGhhdCBFbWFjcwpidWlsZHMgZmluZSB3aXRoIGl0LgoKCkBp dGVtIApJZiBhIG1ham9yIGNvbnRyaWJ1dGlvbiwgY29uc2lkZXIgYWRkaW5nIGFuIGVudHJ5IHRv IHRoZQpBY2tub3dsZWRnbWVudHMgaW4gZG9jL2VtYWNzL2VtYWNzLnRleGkgYW5kIGFjay50ZXhp LgoKCkBpdGVtIApJZiBhcHByb3ByaWF0ZSwgdXBkYXRlIEB2ZXJie35tYWtlLWRpc3R+fSAobm90 IG5lZWRlZCB3aXRoICJzdGFuZGFyZCIKZmlsZSBuYW1lcywgc3VjaCBhcyAqLmVsKS4KCkBlbmQg aXRlbWl6ZQoKCkBpdGVtIApBbHdheXMgcHJvdmlkZSBhIGdvb2QgY29tbWl0IG1lc3NhZ2UgKGNv cGllZCBpbnRvIG9yIGZyb20gdGhlCkNoYW5nZUxvZyB3aGVuZXZlciBhcHBsaWNhYmxlKSwgYW5k IHByb3Blcmx5IGxhYmVsbGluZyB0aGUgYXV0aG9yCm9mIHRoZSBjb2RlLgoKCkBpdGVtIApCZSBz dXJlIHlvdXIgY2hhbmdlIGlzIGFjY2VwdGVkIGFzIGJlaW5nIGZvciB0aGUgYmV0dGVyIGJ5IHRo ZQpwYWNrYWdlJ3MgbWFpbnRhaW5lci4gIElmIHlvdSBoYXZlIHRoZSBzbGlnaHRlc3QgZG91YnQg dGhhdCBtYXliZQp0aGUgbWFpbnRhaW5lciB3b24ndCBsaWtlIGl0LCBvciB3b3VsZCBsaWtlIGl0 IHRvIGJlIGRpZmZlcmVudCwKc2VuZCB5b3VyIHBhdGNoIGZvciByZXZpZXcgYmVmb3JlIGluc3Rh bGxpbmcgaXQuCgoKQGl0ZW0gCkFuZCBtYWtlIGV4dHJhIHN1cmUgdGhhdCBhbGwgdGhlIGNvZGUg eW91IGluc3RhbGwgaGFzIHRoZSBwcm9wZXIKY29weXJpZ2h0OiBpZiBpdCBpcyBub3QgeW91ciBv d24gY29kZSwgbWFrZSBzdXJlIHRoZSBhdXRob3IgaGFzCnNpZ25lZCB0aGUgcmVsZXZhbnQgY29w eXJpZ2h0IHBhcGVycyAoZm9yIG5vbi10cml2aWFsCmNvbnRyaWJ1dGlvbnMpLgoKCkBpdGVtIApG b3IgaGlzdG9yaWNhbCBpbnRlcmVzdCBvbmx5LCBoZXJlIGlzIGFuIG9sZC1zdHlsZSBhZHZpY2Ug Zm9yIENWUwpsb2dzOgpAdXJlZntodHRwOi8vbGlzdHMuZ251Lm9yZy9hcmNoaXZlL2h0bWwvZW1h Y3MtZGV2ZWwvMjAwNy0xMi9tc2cwMTIwOC5odG1sfQoKQGVuZCBpdGVtaXplCgpJZiB5b3UgaGF2 ZSBkb3VidCBhYm91dCBhbnkgb2YgdGhvc2UgcG9pbnRzLCBzZW5kIHlvdXIgcGF0Y2ggZm9yCnJl dmlldyBhdCBAZW1haWx7ZW1hY3MtZGV2ZWxAQGdudS5vcmcsZW1hY3MtZGV2ZWxAQGdudS5vcmd9 IChvciBAZW1haWx7YnVnLWdudS1lbWFjc0BAZ251Lm9yZyxidWctZ251LWVtYWNzQEBnbnUub3Jn fSkuCgpAZW51bWVyYXRlCkBpdGVtCkJhemFhciBCcmFuY2hlcwpAZW51bWVyYXRlCkBpdGVtCnRy dW5rClRvIGJlIHdyaXR0ZW4uCgpAaXRlbQplbWFjcy1ubgpUbyBiZSB3cml0dGVuLgoKQGl0ZW0K ZWxwYQpUaGUgR05VIEVtYWNzIHBhY2thZ2UgYXJjaGl2ZSwgYXQgZWxwYS5nbnUub3JnLCBpcyBt YW5hZ2VkIHVzaW5nIGEKQnpyIGJyYW5jaCBuYW1lZCAiZWxwYSIsIGhvc3RlZCBvbiBTYXZhbm5h aC4gIFRvIGNoZWNrIGl0IG91dDoKCkB2ZXJiYXRpbQokIGJ6ciBicmFuY2ggYnpyK3NzaDovL1VT RVJAYnpyLnNhdmFubmFoLmdudS5vcmcvZW1hY3MvZWxwYSBlbHBhCiQgY2QgZWxwYQokIGVjaG8g InB1YmxpY19icmFuY2ggPSBienIrc3NoOi8vVVNFUkBienIuc2F2YW5uYWguZ251Lm9yZy9lbWFj cy9lbHBhIiA+PiAuYnpyL2JyYW5jaC9icmFuY2guY29uZgokIGJ6ciBiaW5kIGJ6citzc2g6Ly9V U0VSTkFNRUBienIuc2F2YW5uYWguZ251Lm9yZy9lbWFjcy9lbHBhCltjcmVhdGUgdGFzayBicmFu Y2ggZm9yIGVkaXRzLCBldGMuXQpAZW5kIHZlcmJhdGltCgpAaXRlbQp4d2lkZ2V0ClRvIGJlIHdy aXR0ZW4uCgpAaXRlbQpjb25jdXJyZW5jeQpUbyBiZSB3cml0dGVuLgoKQGl0ZW0KbWgtZQpUbyBi ZSB3cml0dGVuLgpAZW5kIGVudW1lcmF0ZQpAZW5kIGVudW1lcmF0ZQoKQG5vZGUgRW1hY3MgUmVs ZWFzZXMKQGNoYXB0ZXIgRW1hY3MgUmVsZWFzZXMKQGl0ZW1pemUKQGl0ZW0gCllvdSBzaG91bGQg aWRlbnRpZnkgZWFjaCByZWxlYXNlIHdpdGggYSBwYWlyIG9mIHZlcnNpb24gbnVtYmVycywgYQpt YWpvciB2ZXJzaW9uIGFuZCBhIG1pbm9yLgoKCkBpdGVtIApCZWZvcmUgYSBuZXcgcmVsZWFzZSB0 aGUgRW1hY3MgbWFpbnRhaW5lcnMgbWFrZSBhIOKAnHByZXRlc3TigJ0KcmVsZWFzZSBvZiBFbWFj cy5AZm9vdG5vdGV7QHVyZWZ7aHR0cDovL2FscGhhLmdudS5vcmcvZ251L2VtYWNzL3ByZXRlc3Qv fX0gU29tZXRpbWUgYmVmb3JlIHRoZSByZWxlYXNlIG9mIGEgbmV3IG1ham9yCnZlcnNpb24gb2Yg RW1hY3MgKEUuZy4sIDIzLjQpLCBhICJmZWF0dXJlIGZyZWV6ZSIgaXMgaW1wb3NlZCBvbgp0aGUg dHJ1bmsuICBObyBuZXcgZmVhdHVyZXMgbWF5IGJlIGFkZGVkIGFmdGVyIHRoaXMgcG9pbnQuICBU aGlzCmlzIHVzdWFsbHkgc29tZSBtb250aHMgYmVmb3JlIHRoZSByZWxlYXNlLgoKCkBpdGVtIApO b24tc291cmNlIGZpbGVzIHRoYXQgbWlnaHQgYWN0dWFsbHkgYmUgbW9kaWZpZWQgYnkgYnVpbGRp bmcgYW5kCmluc3RhbGxpbmcgdGhlIHByb2dyYW0gc2hvdWxkIEBlbXBoe25ldmVyfSBiZSBpbmNs dWRlZCBpbiB0aGUKZGlzdHJpYnV0aW9uLgoKQGVuZCBpdGVtaXplCgpAbm9kZSBFZHVjYXRpb24K QGNoYXB0ZXIgRWR1Y2F0aW9uCkhlbHAgYnVpbGQgYSBnZW5lcmF0aW9uIG9mIEVtYWNzIHVzZXJz IGJ5IHRlYWNoaW5nIG90aGVycyBob3cgdGhlCkVtYWNzIHdvcmtzLgoKQG5vZGUgQWJvdXQgVGhp cyBHdWlkZQpAY2hhcHRlciBBYm91dCBUaGlzIEd1aWRlCkxvbmctdGVybSBjb2xsYWJvcmF0aW9u IHRlbmRzIHRvIHR1cm4gc3RyYW5nZXJzIGludG8gZnJpZW5kcywgYW5kCnRoaXMgaXMgdGhlIHJl YXNvbiBmb3IgbXkgd3JpdGluZyB0aGlzIGd1aWRlLiAgVHJhbnNsYXRpb25zIGFuZApzdWdnZXN0 aW9ucyBhcmUgd2VsY29tZWQuICBJIHdpbGwgY2FycnkgYSBsaW5rIHRvIGl0IHdoZW4geW91IHNl bmQKbWUgYSBVUkkuICBZb3Ugc2hvdWxkIGluY2x1ZGUgYSBsaW5rIHRvIG15IG9yaWdpbmFsLiAg SWYgeW91IGhhdmUKcHJvYmxlbXMvcXVlc3Rpb25zIGFib3V0IGNvbnRyaWJ1dGluZyB0byBHTlUg RW1hY3MsIHlvdSBjYW4gcG9zdCBpdAp0byBAZW1haWx7ZW1hY3MtZGV2ZWxAQGdudS5vcmcsZW1h Y3MtZGV2ZWxAQGdudS5vcmd9LgoKQGl0ZW1pemUKQGl0ZW0gClRPRE8KCkBpdGVtaXplCkBpdGVt IApBZGQgaW5mb3JtYXRpb24gYWJvdXQgY29weXJpZ2h0IGRpc2NsYWltZXIKCgpAaXRlbSAKRW5y aWNoIHRoZSBnbG9zc2FyeQoKCkBpdGVtIApBZGQgaW5mb3JtYXRpb24gYWJvdXQgRW1hY3MncyBC YXphYXIsIEdpdCBhbmQgQ1ZTIHJlcG9zaXRvcmllcwoKCkBpdGVtIApDb252ZXJ0IHRoaXMgZ3Vp ZGUgaW50byBUZXhpbmZvIGZvcm1hdAoKCkBpdGVtIApNb3JlIGluZm9ybWF0aW9uIGFib3V0IFBy ZXBhcmluZyBMaXNwIGNvZGUgZm9yIGRpc3RyaWJ1dGlvbgoKCkBpdGVtIApNb3JlIGluZm9ybWF0 aW9uIGFib3V0IEVtYWNzIGJyYW5jaCBwb2xpY3kKCgpAaXRlbSAKSW5mb3JtYXRpb24gZm9yIGRl YnVnZ2luZyBFbWFjcwoKCkBpdGVtIApEZXZlbG9waW5nIHRoZSB3ZWIgcGFnZXMgb2YgRW1hY3MK CgpAaXRlbSAKVW5pY29kZS1yZWxhdGVkIGd1aWRlbGluZXMKCgpAaXRlbSAKQWRkIG1vcmUgc3R1 ZmYgYWJvdXQgYnVpbGRpbmcgRW1hY3MKCkBlbmQgaXRlbWl6ZQoKQGVuZCBpdGVtaXplCgpAbm9k ZSBHbG9zc2FyeQpAY2hhcHRlciBHbG9zc2FyeQpAZW51bWVyYXRlCkBpdGVtCisxClRoZSBzaG9y dGVzdCB3YXkgaW4gdGhlIGdlZWsgd29ybGQgdG8gc2F5ICJJIGFncmVlIHdpdGggdGhpcyIgb3IK IlRoaXMgaXMgYSBncmVhdCBpZGVhIi4KCkBpdGVtCi0xClRoZSBvcHBvc2l0ZSBvZiArMS4gIE9m dGVuIGFjY29tcGFuaWVkIGJ5IGFuIGV4cGxhbmF0aW9uIHdoeS4KCkBpdGVtCkNvbW1pdHRlcgpB biBpbmRpdmlkdWFsIHdobyBoYXMgc3BlY2lhbCByaWdodHMgaW4gYSBmcmVlIHNvZnR3YXJlCnBy b2plY3QuCgpAaXRlbQpEVkNTCkRpc3RyaWJ1dGVkIHZlcnNpb24gY29udHJvbCBzeXN0ZW0uIEEg dmVyc2lvbiBjb250cm9sIHN5c3RlbSB0aGF0CmRvZXMgbm90IHJlcXVpcmUgdGFsa2luZyB0byBh IGNlbnRyYWxpemVkIHNlcnZlci4KCkBpdGVtCkdTb0MKR29vZ2xlIFN1bW1lciBvZiBDb2RlCgpA aXRlbQpJREUKSW50ZWdyYXRlZCBEZXZlbG9wbWVudCBFbnZpcm9ubWVudAoKQGl0ZW0KSVJDCklu dGVybmV0IFJlbGF5IENoYXQKCkBpdGVtCkx1cmsKVG8gc3BlbmQgc29tZSB0aW1lIHdhdGNoaW5n LiBPZnRlbiB1c2VkIGluIHJlZmVyZW5jZSB0byBhIG1haWxpbmcKbGlzdCB3aGVyZSB5b3Ugd2ls bCByZWFkIHRoZSBwb3N0cyBidXQgbm90IG1ha2UgYW55IHBvc3RzIHlvdXJzZWxmCm9yIGFuIElS QyBjaGFubmVsIHdoZXJlIHlvdSB3YXRjaCBob3cgcGVvcGxlIGludGVyYWN0IGJ1dCBkb24ndApz YXkgYW55dGhpbmcuCgpAaXRlbQpVVEMKQ29vcmRpbmF0ZWQgVW5pdmVyc2FsIFRpbWUuCkBlbmQg ZW51bWVyYXRlCgpAYyBFbWFjcyAyNC4zLjUwLjEgKE9yZyBtb2RlIDguMC4xKQoKQGJ5ZQ== --14dae93407454802e804daffe885--