From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 7454 invoked by alias); 17 May 2012 19:50:56 -0000 Received: (qmail 7423 invoked by uid 22791); 17 May 2012 19:50:54 -0000 X-SWARE-Spam-Status: No, hits=-5.0 required=5.0 tests=AWL,BAYES_00,DKIM_SIGNED,DKIM_VALID,DKIM_VALID_AU,FREEMAIL_FROM,KHOP_RCVD_TRUST,KHOP_THREADED,RCVD_IN_DNSWL_LOW,RCVD_IN_HOSTKARMA_YE X-Spam-Check-By: sourceware.org Received: from mail-qc0-f169.google.com (HELO mail-qc0-f169.google.com) (209.85.216.169) by sourceware.org (qpsmtpd/0.43rc1) with ESMTP; Thu, 17 May 2012 19:50:39 +0000 Received: by qcsd16 with SMTP id d16so1827404qcs.0 for ; Thu, 17 May 2012 12:50:38 -0700 (PDT) MIME-Version: 1.0 Received: by 10.224.182.194 with SMTP id cd2mr18639653qab.83.1337284238492; Thu, 17 May 2012 12:50:38 -0700 (PDT) Received: by 10.229.169.130 with HTTP; Thu, 17 May 2012 12:50:38 -0700 (PDT) In-Reply-To: References: <4FB14211.6070905@zytor.com> Date: Thu, 17 May 2012 19:50:00 -0000 Message-ID: Subject: Re: [discuss] [x86-64 psABI] RFC: Extend x86-64 psABI to support x32 From: "H.J. Lu" To: Michael Matz Cc: "H. Peter Anvin" , discuss@x86-64.org, GNU C Library , GCC Development , GDB , x32-abi@googlegroups.com, Binutils Content-Type: multipart/mixed; boundary=20cf303b4063ffc46804c040bf5c Mailing-List: contact gdb-help@sourceware.org; run by ezmlm Precedence: bulk List-Id: List-Subscribe: List-Archive: List-Post: List-Help: , Sender: gdb-owner@sourceware.org X-SW-Source: 2012-05/txt/msg00078.txt.bz2 --20cf303b4063ffc46804c040bf5c Content-Type: text/plain; charset=ISO-8859-1 Content-Transfer-Encoding: quoted-printable Content-length: 588 On Tue, May 15, 2012 at 9:07 AM, Michael Matz wrote: > Hi, > > On Mon, 14 May 2012, H.J. Lu wrote: > >> > As a minor nitpick, I have always used x32 with a lower case x. =A0The >> > capital X32 looks odd to me. >> > >> >> I used X32 together with LP64. =A0I can use ILP32 instead of X32 when LP= 64 >> is mentioned at the same time. > > I'd prefer that. =A0x32 is a nice short-hand name for the whole thing, but > not descriptive, unlike LP64. =A0So, yes, IMO it should be ILP32 in the A= BI > document. > Here is the updated change. Any comments? Thanks. --=20 H.J. --20cf303b4063ffc46804c040bf5c Content-Type: application/octet-stream; name="psabi-x32-2.patch" Content-Disposition: attachment; filename="psabi-x32-2.patch" Content-Transfer-Encoding: base64 X-Attachment-Id: f_h2c8ho6u0 Content-length: 37076 MjAxMi0wNS0xNyAgSC5KLiBMdSAgPGhvbmdqaXUubHVAaW50ZWwuY29tPgoK CSogYWJpLnRleCAodGl0bGUpOiBNZW50aW9uIExQNjQvSUxQMzIuIAoJKGF1 dGhvcik6IEFkZCBILkouIEx1IGFuZCBNaWxpbmQgR2lya2FyLgoJSW5jbHVk ZSB4MzIudGV4LgoKCSogZGV2ZWxvcG1lbnQudGV4OiBBZGQgX0lMUDMyIGFu ZCBfX0lMUDMyX18gZm9yIElMUDMyLiAgQWxzbwoJZG9jdW1lbnQgX0xQNjQg YW5kIF9fTFA2NF9fLgoKCSogZGwudGV4OiBMaXN0IElMUDMyIHByb2dyYW0g aW50ZXJwcmV0ZXIuCgoJKiBpbnRyb2R1Y3Rpb24udGV4IChJbnRyb2R1Y3Rp b24pOiBBZGQgYSBsYWJlbC4KCURlc2NyaWJlIElMUDMyIGFuZCBMUDY0LgoK CSogbG93LWxldmVsLXN5cy1pbmZvLnRleCAoU2NhbGFyIFR5cGVzIHRhYmxl KTogQWRkIElMUDMyL0xQNjQgdG8KCWxvbmcgYW5kIGxvbmcgbG9uZy4gIE1v ZGlmeSBsb25nIGFuZCBwb2ludGVyIHR5cGVzIGZvciBJTFAzMiBhbmQKCUxQ NjQuICBVc2UgXG15Zm9udHNpemUgaW5zdGVhZCBvZiBcc21hbGwuCgkoQXJj aGl0ZWN0dXJhbCBDb25zdHJhaW50cyk6IEFkZCBhIGxlYmVsLiAgTWVudGlv biBzbWFsbCBtb2RlbAoJZm9yIElMUDMyLgoKCSogbWFjcm9zLnRleCAobXlm b250c2l6ZSk6IE5ldy4KCgkqIG9iamVjdC1maWxlcy50ZXggKFByb2dyYW1t aW5nIE1vZGVsKTogTmV3IHN1YnN1YnNlY3Rpb24KCShGaWxlIENsYXNzKTog TGlrZXdpc2UuCgkoRGF0YSBFbmNvZGluZyk6IExpa2V3aXNlLgoJKFByb2Nl c3NvciBpZGVudGlmaWNhdGlvbn0pOiBMaWtld2lzZS4KCShSZWxvY2F0aW9u IFR5cGVzKTogQWRkIHdvcmRjbGFzcy4gIEFsbG93IEVsZjMyX1JlbCByZWxv Y2F0aW9ucwoJd2l0aGluIElMUDMyIGV4ZWN1dGFibGUgZmlsZXMgb3Igc2hh cmVkIG9iamVjdHMuCgkoUmVsb2NhdGlvbiBUeXBlcyk6IFVzZSBzbWFsbCBm b250LiAgTWFyayBSX1g4Nl82NF9HTE9CX0RBVCwKCVJfWDg2XzY0X0pVTVBf U0xPVCwgUl9YODZfNjRfUkVMQVRJVkUgYW5kIFJfWDg2XzY0X0lSRUxBVElW RQoJd2l0aCB3b3JkY2xhc3MuICBNYXJrIFJfWDg2XzY0X1BDNjQsIFJfWDg2 XzY0X0dPVE9GRjY0IGFuZAoJUl9YODZfNjRfU0laRTY0IHVzZWQgb25seSBm b3IgTFA2NC4gIEFkZCBSX1g4Nl82NF9SRUxBVElWRTY0IGZvcgoJSUxQMzIu CgoJKiB4MzIudGV4OiBOZXcgZmlsZS4KCmRpZmYgLS1naXQgYS9hYmkudGV4 IGIvYWJpLnRleAppbmRleCAyYjU2ZDk0Li5hMzAxYjVkIDEwMDY0NAotLS0g YS9hYmkudGV4CisrKyBiL2FiaS50ZXgKQEAgLTUsMTMgKzUsMTggQEAKIFxi ZWdpbntkb2N1bWVudH0KIAogXGF1dGhvcntFZGl0ZWQgYnlcXAorICBNaWxp bmQgR2lya2FyXHRoYW5rc3ttaWxpbmQuZ2lya2FyQGludGVsLmNvbX0sCisg IEphbiBIdWJpXHZ7Y31rYVx0aGFua3N7amhAc3VzZS5jen0sXFwKKyAgQW5k cmVhcyBKYWVnZXJcdGhhbmtze2FqQHN1c2UuZGV9LAorICBILkouIEx1XHRo YW5rc3tob25naml1Lmx1QGludGVsLmNvbX0sCiAgIE1pY2hhZWwgTWF0elx0 aGFua3N7bWF0ekBzdXNlLmRlfSwKLSAgSmFuIEh1YmlcdntjfWthXHRoYW5r c3tqaEBzdXNlLmN6fSwgQW5kcmVhcyBKYWVnZXJcdGhhbmtze2FqQHN1c2Uu ZGV9LAotICBNYXJrIE1pdGNoZWxsXHRoYW5rc3ttYXJrQGNvZGVzb3VyY2Vy eS5jb219fQorICBNYXJrIE1pdGNoZWxsXHRoYW5rc3ttYXJrQGNvZGVzb3Vy Y2VyeS5jb219CisgIH0KIAogXHRpdGxle1N5c3RlbSBWIEFwcGxpY2F0aW9u IEJpbmFyeSBJbnRlcmZhY2VcXAote1xMYXJnZSBBTUQ2NCBBcmNoaXRlY3R1 cmUgUHJvY2Vzc29yIFN1cHBsZW1lbnRcXAotRHJhZnQgVmVyc2lvbiBcdmVy c2lvbn19Cit7XExhcmdlIEFNRDY0IEFyY2hpdGVjdHVyZSBQcm9jZXNzb3Ig U3VwcGxlbWVudH1cXAore1xsYXJnZSAoV2l0aCBMUDY0IGFuZCBJTFAzMiBQ cm9ncmFtbWluZyBNb2RlbHMpfVxcCit7XExhcmdlIERyYWZ0IFZlcnNpb24g XHZlcnNpb259fQogXG1ha2V0aXRsZQogXHRhYmxlb2Zjb250ZW50cwogXGxp c3RvZnRhYmxlcwpAQCAtOTksNiArMTA0LDcgQEAgRHJhZnQgVmVyc2lvbiBc dmVyc2lvbn19CiAgIHBsYWNlIG9yIHJlbW92ZWQgY29tcGxldGVseS59CiBc aW5jbHVkZXtjb252ZW50aW9uc30KIFxpbmNsdWRle2ZvcnRyYW59CitcaW5j bHVkZXt4MzJ9CiAKIFxhcHBlbmRpeAogXGluY2x1ZGV7a2VybmVsfQpkaWZm IC0tZ2l0IGEvZGV2ZWxvcG1lbnQudGV4IGIvZGV2ZWxvcG1lbnQudGV4Cmlu ZGV4IGQxMzg4YjUuLmU5YTJlNDcgMTAwNjQ0Ci0tLSBhL2RldmVsb3BtZW50 LnRleAorKysgYi9kZXZlbG9wbWVudC50ZXgKQEAgLTIsMTggKzIsMjQgQEAK IFxjaGFwdGVye0RldmVsb3BtZW50IEVudmlyb25tZW50fQogCiBEdXJpbmcg Y29tcGlsYXRpb24gb2YgQyBvciBDKysgY29kZSBhdCBsZWFzdCB0aGUgc3lt Ym9scyBpbgotdGFibGUgXHJlZntwcmVwcm9fZGVmaW5lc30gYXJlIGRlZmlu ZWQgYnkgdGhlIHByZS1wcm9jZXNzb3IuCit0YWJsZSBccmVme3ByZXByb19k ZWZpbmVzfSBhcmUgZGVmaW5lZCBieSB0aGUgcHJlLXByb2Nlc3NvcgorXGZv b3Rub3Rle1xjb2Rle19fTFA2NH0gYW5kIFxjb2Rle19fTFA2NF9ffSB3ZXJl IGFkZGVkIHRvIEdDQyAzLjMgaW4KK01hcmNoLCAyMDAzLn0uCiAKIFxiZWdp bnt0YWJsZX1bSF0KIFxIcnVsZQogXGNhcHRpb257UHJlZGVmaW5lZCBQcmUt UHJvY2Vzc29yIFN5bWJvbHN9CiBcbGFiZWx7cHJlcHJvX2RlZmluZXN9Ci0g IFxiZWdpbntjZW50ZXJ9XGNvZGV7Ci0gICAgXGJlZ2lue3RhYnVsYXJ9W3Rd e2x9Ci0gICAgICBfX2FtZDY0XFwKLSAgICAgIF9fYW1kNjRfX1xcCi0gICAg ICBfX3g4Nl82NFxcCi0gICAgICBfX3g4Nl82NF9fXFwKKyAgXGJlZ2lue2Nl bnRlcn1cc21hbGxcY29kZXsKKyAgICBcYmVnaW57dGFidWxhcn1bdF17bGx9 CisgICAgICBfX2FtZDY0ICAgICAgJiBEZWZpbmVkIGZvciBib3RoIExQNjQg YW5kIElMUDMyIHByb2dyYW1taW5nIG1vZGVscy5cXAorICAgICAgX19hbWQ2 NF9fICAgICYgRGVmaW5lZCBmb3IgYm90aCBMUDY0IGFuZCBJTFAzMiBwcm9n cmFtbWluZyBtb2RlbHMuXFwKKyAgICAgIF9feDg2XzY0ICAgICAmIERlZmlu ZWQgZm9yIGJvdGggTFA2NCBhbmQgSUxQMzIgcHJvZ3JhbW1pbmcgbW9kZWxz LlxcCisgICAgICBfX3g4Nl82NF9fICAgJiBEZWZpbmVkIGZvciBib3RoIExQ NjQgYW5kIElMUDMyIHByb2dyYW1taW5nIG1vZGVscy5cXAorICAgICAgX0xQ NjQgICAgICAgICYgRGVmaW5lZCBmb3IgTFA2NCBwcm9ncmFtbWluZyBtb2Rl bC5cXAorICAgICAgX19MUDY0X18gICAgICYgRGVmaW5lZCBmb3IgTFA2NCBw cm9ncmFtbWluZyBtb2RlbC5cXAorICAgICAgX0lMUDMyICAgICAgICYgRGVm aW5lZCBmb3IgSUxQMzIgcHJvZ3JhbW1pbmcgbW9kZWwuXFwKKyAgICAgIF9f SUxQMzJfXyAgICAmIERlZmluZWQgZm9yIElMUDMyIHByb2dyYW1taW5nIG1v ZGVsLlxcCiAgICAgXGVuZHt0YWJ1bGFyfQogICB9XGVuZHtjZW50ZXJ9CiBc SHJ1bGUKZGlmZiAtLWdpdCBhL2RsLnRleCBiL2RsLnRleAppbmRleCBhNjdm NGY4Li42OGM5NTVmIDEwMDY0NAotLS0gYS9kbC50ZXgKKysrIGIvZGwudGV4 CkBAIC0zNTUsMTcgKzM1NSwyNCBAQCB1c2UuCiAKIFxzdWJzZWN0aW9ue1By b2dyYW0gSW50ZXJwcmV0ZXJ9CiAKLVRoZXJlIGlzIG9uZSB2YWxpZCBcdGV4 dGluZGV4e3Byb2dyYW0gaW50ZXJwcmV0ZXJ9IGZvcgotcHJvZ3JhbXMgY29u Zm9ybWluZyB0byB0aGUgXHhBUkNIIEFCSToKLQotXGJpZ3NraXAKLVxwYXRo ey9saWIvbGQ2NC5zby4xfQotCi1Ib3dldmVyLCBMaW51eCBwdXRzIHRoaXMg aW4KLQotXGJpZ3NraXAKLVxwYXRoey9saWI2NC9sZC1saW51eC14ODYtNjQu c28uMn0KK1RoZSB2YWxpZCBcdGV4dGluZGV4e3Byb2dyYW0gaW50ZXJwcmV0 ZXJ9IGZvciBwcm9ncmFtcyBjb25mb3JtaW5nIHRvIHRoZQorXHhBUkNIIEFC SSBpcyBsaXN0ZWQgaW4gVGFibGUgXHJlZntpbnRlcnB9LCB3aGljaCBhbHNv IGNvbnRhaW5zIHRoZQorXHRleHRpbmRleHtwcm9ncmFtIGludGVycHJldGVy fSB1c2VkIGJ5IExpbnV4LgogCitcYmVnaW57ZmlndXJlfQorICBcY2FwdGlv bntceEFSQ0ggUHJvZ3JhbSBJbnRlcnByZXRlcn0KKyAgXGxhYmVse2ludGVy cH0KKyAgXGJlZ2lue2NlbnRlcn0KKyAgICBcYmVnaW57dGFidWxhcn1bdF17 bHxsfGx9CisgICAgICBcbXVsdGljb2x1bW57MX17Y317RGF0YSBNb2RlbH0g JiBcbXVsdGljb2x1bW57MX17Y317UGF0aH0gJgorICAgICAgXG11bHRpY29s dW1uezF9e2N9e0xpbnV4IFBhdGh9IFxcCisgICAgICBcaGxpbmUKKyAgICAg IExQNjQgJiBccGF0aHsvbGliL2xkNjQuc28uMX0gJiBccGF0aHsvbGliNjQv bGQtbGludXgteDg2LTY0LnNvLjJ9IFxcCisgICAgICBcaGxpbmUKKyAgICAg IElMUDMyICYgXHBhdGh7L2xpYi9sZHgzMi5zby4xfSAmIFxwYXRoey9saWJ4 MzIvbGQtbGludXgteDMyLnNvLjJ9IFxcCisgICAgXGVuZHt0YWJ1bGFyfQor ICBcZW5ke2NlbnRlcn0KK1xlbmR7ZmlndXJlfQogCiBcc3Vic2VjdGlvbntJ bml0aWFsaXphdGlvbiBhbmQgVGVybWluYXRpb24gRnVuY3Rpb25zfQogCmRp ZmYgLS1naXQgYS9pbnRyb2R1Y3Rpb24udGV4IGIvaW50cm9kdWN0aW9uLnRl eAppbmRleCAyMTQ4YWI5Li44YTU0N2RhIDEwMDY0NAotLS0gYS9pbnRyb2R1 Y3Rpb24udGV4CisrKyBiL2ludHJvZHVjdGlvbi50ZXgKQEAgLTEsNCArMSw0 IEBACi1cY2hhcHRlcntJbnRyb2R1Y3Rpb259CitcY2hhcHRlcntJbnRyb2R1 Y3Rpb25cbGFiZWx7aW50cm99fQogCiBUaGUgQU1ENjRcZm9vdG5vdGV7QU1E NjQgaGFzIGJlZW4gcHJldmlvdXNseSBjYWxsZWQgeDg2LTY0LiAgVGhlCiAg IGxhdHRlciBuYW1lIGlzIHVzZWQgaW4gYSBudW1iZXIgb2YgcGxhY2VzIG91 dCBvZiBoaXN0b3JpY2FsIHJlYXNvbnMKQEAgLTE1LDYgKzE1LDEzIEBAIGNv bXBhdGliaWxpdHkgbW9kZXMuICBUaGUgXHhBUkNIIEFCSSBkb2VzIG5vdCBh cHBseSB0byBzdWNoIHByb2dyYW1zOwogdGhpcyBkb2N1bWVudCBhcHBsaWVz IG9ubHkgcHJvZ3JhbXMgcnVubmluZyBpbiB0aGUgYGBsb25nJycgbW9kZQog cHJvdmlkZWQgYnkgdGhlIFx4QVJDSCBhcmNoaXRlY3R1cmUuCiAKK0JpbmFy aWVzIHVzaW5nIHRoZSBceEFSQ0ggaW5zdHJ1Y3Rpb24gc2V0IG1heSBwcm9n cmFtIHRvIGVpdGhlciBhIDMyLWJpdAorbW9kZWwsIGluIHdoaWNoIHRoZSBD IGRhdGEgdHlwZXMgXGNvZGV7aW50fSwgXGNvZGV7bG9uZ30gYW5kIGFsbAor cG9pbnRlciB0eXBlcyBhcmUgMzItYml0IG9iamVjdHMgKElMUDMyKTsgb3Ig dG8gYSA2NC1iaXQgbW9kZWwsCitpbiB3aGljaCB0aGUgQyBcY29kZXtpbnR9 IHR5cGUgaXMgMzItYml0cyBidXQgdGhlIEMgXGNvZGV7bG9uZ30gdHlwZQor YW5kIGFsbCBwb2ludGVyIHR5cGVzIGFyZSA2NC1iaXQgb2JqZWN0cyAoTFA2 NCkuIFRoaXMgc3BlY2lmaWNhdGlvbgorY292ZXJzIGJvdGggTFA2NCBhbmQg SUxQMzIgcHJvZ3JhbW1pbmcgbW9kZWxzLgorCiBFeGNlcHQgd2hlcmUgb3Ro ZXJ3aXNlIG5vdGVkLCB0aGUgXHhBUkNIIGFyY2hpdGVjdHVyZSBBQkkgZm9s bG93cyB0aGUKIGNvbnZlbnRpb25zIGRlc2NyaWJlZCBpbiB0aGUgXGludGVs YWJpLiAgUmF0aGVyIHRoYW4gcmVwbGljYXRlIHRoZQogZW50aXJlIGNvbnRl bnRzIG9mIHRoZSBcaW50ZWxhYmksIHRoZSBceEFSQ0ggQUJJIGluZGljYXRl cyBvbmx5IHRob3NlCmRpZmYgLS1naXQgYS9sb3ctbGV2ZWwtc3lzLWluZm8u dGV4IGIvbG93LWxldmVsLXN5cy1pbmZvLnRleAppbmRleCBiMDMwZTQyLi5j MTI1YTVmIDEwMDY0NAotLS0gYS9sb3ctbGV2ZWwtc3lzLWluZm8udGV4Cisr KyBiL2xvdy1sZXZlbC1zeXMtaW5mby50ZXgKQEAgLTMyLDcgKzMyLDcgQEAg c2NhbGFyIHR5cGVzIGFuZCB0aGUgcHJvY2Vzc29yJ3MuICBcY29kZXtfX2lu dDEyOH0sIFxjb2Rle19fZmxvYXQxMjh9LAogICBcY2FwdGlvbntTY2FsYXIg VHlwZXN9XGxhYmVse2Jhc2ljLXR5cGVzfQogeyAlIFVzZSBzbWFsbCBoZXJl IC0gdGhlIHRhYmxlIGlzIHN0aWxsIHRvbyBsYXJnZQogICAlIEhhcyBhbnli b2R5IGFuIGlkZWEgaG93IHRvIHNocmluayB0aGUgdGFibGUgc28gdGhhdCBp dCBmaXRzIHRoZSBwYWdlPwotICBcc21hbGwKKyAgXG15Zm9udHNpemUKICAg XGJlZ2lue3RhYnVsYXJ9e2x8bHxjfGN8bH0KICAgICBcaGxpbmVcbm9hbGln bntcc21hbGxza2lwfQogICAgICAmICYgICYgXG11bHRpY29sdW1uezF9e2N8 fXtBbGlnbm1lbnR9ICYgXG11bHRpY29sdW1uezF9e2N8fXtceEFSQ0h9IFxc CkBAIC01OCwxMiArNTgsMTkgQEAgc2NhbGFyIHR5cGVzIGFuZCB0aGUgcHJv Y2Vzc29yJ3MuICBcY29kZXtfX2ludDEyOH0sIFxjb2Rle19fZmxvYXQxMjh9 LAogICAgIFxjbGluZXsyLTV9CiAgICAgJiBcdGV4dHR0e3Vuc2lnbmVkIGlu dH0gJiA0ICYgNCAmIHVuc2lnbmVkIFxmb3VyYnl0ZSBcXAogICAgIFxjbGlu ZXsyLTV9Ci0gICAgJiBcdGV4dHR0e2xvbmd9ICYgOCAmIDggJiBzaWduZWQg XGVpZ2h0Ynl0ZSBcXAotICAgICYgXHRleHR0dHtzaWduZWQgbG9uZ30gJiAm IFxcCi0gICAgJiBcdGV4dHR0e2xvbmcgbG9uZ30gJiAmIFxcCisgICAgJiBc dGV4dHR0e2xvbmcgKExQNjQpfSAmIDggJiA4ICYgc2lnbmVkIFxlaWdodGJ5 dGUgXFwKKyAgICAmIFx0ZXh0dHR7c2lnbmVkIGxvbmcgKExQNjQpfSAmICYg XFwKKyAgICBcY2xpbmV7Mi01fQorICAgICYgXHRleHR0dHt1bnNpZ25lZCBs b25nIChMUDY0KX0gJiA4ICYgOCAmIHVuc2lnbmVkIFxlaWdodGJ5dGUgXFwK KyAgICBcY2xpbmV7Mi01fQorICAgICYgXHRleHR0dHtsb25nIChJTFAzMil9 ICYgNCAmIDQgJiBzaWduZWQgXGZvdXJieXRlIFxcCisgICAgJiBcdGV4dHR0 e3NpZ25lZCBsb25nIChJTFAzMil9ICYgJiBcXAorICAgIFxjbGluZXsyLTV9 CisgICAgJiBcdGV4dHR0e3Vuc2lnbmVkIGxvbmcgKElMUDMyKX0gJiA0ICYg NCAmIHVuc2lnbmVkIFxmb3VyYnl0ZSBcXAorICAgIFxjbGluZXsyLTV9Cisg ICAgJiBcdGV4dHR0e2xvbmcgbG9uZ30gJiA4ICYgOCAmIHNpZ25lZCBcZWln aHRieXRlIFxcCiAgICAgJiBcdGV4dHR0e3NpZ25lZCBsb25nIGxvbmd9ICYg JiBcXAogICAgIFxjbGluZXsyLTV9Ci0gICAgJiBcdGV4dHR0e3Vuc2lnbmVk IGxvbmd9ICYgOCAmIDggJiB1bnNpZ25lZCBcZWlnaHRieXRlIFxcCiAgICAg JiBcdGV4dHR0e3Vuc2lnbmVkIGxvbmcgbG9uZ30gJiA4ICYgOCAmIHVuc2ln bmVkIFxlaWdodGJ5dGUgXFwKICAgICBcY2xpbmV7Mi01fQogICAgICYgXHRl eHR0dHtfX2ludDEyOH0kXntcZGFnZ2VyXGRhZ2dlcn0kICYgMTYgJiAxNiAm IHNpZ25lZCBcc2l4dGVlbmJ5dGUgXFwKQEAgLTcxLDggKzc4LDEyIEBAIHNj YWxhciB0eXBlcyBhbmQgdGhlIHByb2Nlc3NvcidzLiAgXGNvZGV7X19pbnQx Mjh9LCBcY29kZXtfX2Zsb2F0MTI4fSwKICAgICBcY2xpbmV7Mi01fQogICAg ICYgXHRleHR0dHt1bnNpZ25lZCBfX2ludDEyOH0kXntcZGFnZ2VyXGRhZ2dl cn0kICYgMTYgJiAxNiAmIHVuc2lnbmVkIFxzaXh0ZWVuYnl0ZSBcXAogICAg IFxobGluZQotICAgIFBvaW50ZXIgJiBcdGV4dHR0e1x0ZXh0aXR7YW55LXR5 cGV9ICp9ICYgOCAmIDggJiB1bnNpZ25lZCBcZWlnaHRieXRlIFxcCi0gICAg JiBcdGV4dHR0e1x0ZXh0aXR7YW55LXR5cGV9ICgqKSgpfSAmICYgXFwKKyAg ICBQb2ludGVyCisgICAgJiBcdGV4dHR0e1x0ZXh0aXR7YW55LXR5cGV9ICog KExQNjQpfSAmIDggJiA4ICYgdW5zaWduZWQgXGVpZ2h0Ynl0ZSBcXAorICAg ICYgXHRleHR0dHtcdGV4dGl0e2FueS10eXBlfSAoKikoKSAoTFA2NCl9ICYg JiBcXAorICAgIFxjbGluZXsyLTV9CisgICAgJiBcdGV4dHR0e1x0ZXh0aXR7 YW55LXR5cGV9ICogKElMUDMyKX0gJiA0ICYgNCAmIHVuc2lnbmVkIFxmb3Vy Ynl0ZSBcXAorICAgICYgXHRleHR0dHtcdGV4dGl0e2FueS10eXBlfSAoKiko KSAoSUxQMzIpfSAmICYgXFwKICAgICBcaGxpbmUKICAgICBGbG9hdGluZy0m IFx0ZXh0dHR7ZmxvYXR9ICYgNCAmIDQgJiBzaW5nbGUgKElFRUUtNzU0KSBc XAogICAgIFxjbGluZXsyLTV9CkBAIC0xODgsOSArMTk5LDE2IEBAIGludGVn cmFsIHZhbHVlcyBvZiBhIHNwZWNpZmllZCBzaXplLgogICAgICAgXHRleHR0 dHtpbnR9ICYgMSB0byAzMiAmIDAgdG8gJDJee3d9LTEkIFxcCiAgICAgICBc dGV4dHR0e3Vuc2lnbmVkIGludH0gJiAmIDAgdG8gJDJee3d9LTEkIFxcCiAg ICAgICBcaGxpbmUKLSAgICAgIFx0ZXh0dHR7c2lnbmVkIGxvbmd9ICYgJiAk LTJee3cgLSAxfSQgdG8gJDJee3ctMX0tMSQgXFwKLSAgICAgIFx0ZXh0dHR7 bG9uZ30gJiAxIHRvIDY0ICYgMCB0byAkMl57d30tMSQgXFwKLSAgICAgIFx0 ZXh0dHR7dW5zaWduZWQgbG9uZ30gJiAmIDAgdG8gJDJee3d9LTEkIFxcCisg ICAgICBcdGV4dHR0e3NpZ25lZCBsb25nIChMUDY0KX0gJiAmICQtMl57dyAt IDF9JCB0byAkMl57dy0xfS0xJCBcXAorICAgICAgXHRleHR0dHtsb25nIChM UDY0KX0gJiAxIHRvIDY0ICYgMCB0byAkMl57d30tMSQgXFwKKyAgICAgIFx0 ZXh0dHR7dW5zaWduZWQgbG9uZyAoTFA2NCl9ICYgJiAwIHRvICQyXnt3fS0x JCBcXAorICAgICAgXGhsaW5lCisgICAgICBcdGV4dHR0e2xvbmcgKElMUDMy KX0gJiAxIHRvIDMyICYgMCB0byAkMl57d30tMSQgXFwKKyAgICAgIFx0ZXh0 dHR7dW5zaWduZWQgbG9uZyAoSUxQMzIpfSAmICYgMCB0byAkMl57d30tMSQg XFwKKyAgICAgIFxobGluZQorICAgICAgXHRleHR0dHtzaWduZWQgbG9uZyBs b25nfSAmICYgJC0yXnt3IC0gMX0kIHRvICQyXnt3LTF9LTEkIFxcCisgICAg ICBcdGV4dHR0e2xvbmcgbG9uZ30gJiAxIHRvIDY0ICYgMCB0byAkMl57d30t MSQgXFwKKyAgICAgIFx0ZXh0dHR7dW5zaWduZWQgbG9uZyBsb25nfSAmICYg MCB0byAkMl57d30tMSQgXFwKICAgICBcZW5ke3RhYnVsYXJ9CiAgIFxlbmR7 Y2VudGVyfQogXEhydWxlCkBAIC0xMTAyLDcgKzExMjAsNyBAQCBvcGVyYXRp b25zIHN1Y2ggYXMgY2FsbGluZyBmdW5jdGlvbnMsIGFjY2Vzc2luZyBzdGF0 aWMgb2JqZWN0cywgYW5kCiB0cmFuc2ZlcnJpbmcgY29udHJvbCBmcm9tIG9u ZSBwYXJ0IG9mIGEgcHJvZ3JhbSB0byBhbm90aGVyLiAgVW5saWtlCiBwcmV2 aW91cyBtYXRlcmlhbCwgdGhpcyBtYXRlcmlhbCBpcyBub3Qgbm9ybWF0aXZl LgogCi1cc3Vic2VjdGlvbntBcmNoaXRlY3R1cmFsIENvbnN0cmFpbnRzfQor XHN1YnNlY3Rpb257QXJjaGl0ZWN0dXJhbCBDb25zdHJhaW50c1xsYWJlbHtt b2RlbHN9fQogCiBUaGUgXHhBUkNIIGFyY2hpdGVjdHVyZSB1c3VhbGx5IGRv ZXMgbm90IGFsbG93IGFuIGluc3RydWN0aW9uIHRvIGVuY29kZQogYXJiaXRy YXJ5CkBAIC0xMjMzLDYgKzEyNTEsOSBAQCB0aGF0IGFyZSBvZiBnZW5lcmFs IGludGVyZXN0OgogCiBcZW5ke2Rlc2NyaXB0aW9ufQogCitPbmx5IHNtYWxs IGNvZGUgbW9kZWwgYW5kIHNtYWxsIHBvc2l0aW9uIGluZGVwZW5kZW50IGNv ZGUgbW9kZWwKKyhcdGV4dGluZGV4e1BJQ30pIGFyZSB1c2VkIGluIElMUDMy IGJpbmFyaWVzLgorCiBcc3Vic2VjdGlvbntDb252ZW50aW9uc30KIAogSW4g dGhpcyBkb2N1bWVudCBzb21lIHNwZWNpYWwgYXNzZW1ibGVyIHN5bWJvbHMg YXJlIHVzZWQgaW4gdGhlIGNvZGluZwpkaWZmIC0tZ2l0IGEvbWFjcm9zLnRl eCBiL21hY3Jvcy50ZXgKaW5kZXggMGQyMGVhYy4uOWM0ZjkxNSAxMDA2NDQK LS0tIGEvbWFjcm9zLnRleAorKysgYi9tYWNyb3MudGV4CkBAIC0xMDcsNiAr MTA3LDggQEAKIAogXG5ld2NvbW1hbmQqe1xjYm5ld317XG1hcmdpbnBhcntc dGV4dHNme05ld319fQogCitcbmV3Y29tbWFuZHtcbXlmb250c2l6ZX17XGZv bnRzaXplezl9ezExfVxzZWxlY3Rmb250fQorCiAlJSUgTG9jYWwgVmFyaWFi bGVzOgogJSUlIG1vZGU6IGxhdGV4CiAlJSUgVGVYLW1hc3RlcjogImFiaSIK ZGlmZiAtLWdpdCBhL29iamVjdC1maWxlcy50ZXggYi9vYmplY3QtZmlsZXMu dGV4CmluZGV4IDQ3MDVlOTYuLmViMWQ1NDQgMTAwNjQ0Ci0tLSBhL29iamVj dC1maWxlcy50ZXgKKysrIGIvb2JqZWN0LWZpbGVzLnRleApAQCAtNSwyMiAr NSwyOCBAQAogCiBcc3Vic2VjdGlvbntNYWNoaW5lIEluZm9ybWF0aW9ufQog Ci1Gb3IgZmlsZSBpZGVudGlmaWNhdGlvbiBpbiBcdGV4dHR0e2VfaWRlbnR9 LCB0aGUgXHhBUkNIIGFyY2hpdGVjdHVyZQotcmVxdWlyZXMgdGhlIGZvbGxv d2luZyB2YWx1ZXMuCitcc3Vic3Vic2VjdGlvbntQcm9ncmFtbWluZyBNb2Rl bH0KIAotXGJlZ2lue3RhYmxlfVtIXQotXEhydWxlCi0gIFxjYXB0aW9ue1x4 QVJDSCBJZGVudGlmaWNhdGlvbn0KLSAgXGJlZ2lue2NlbnRlcn0KLSAgICBc YmVnaW57dGFidWxhcn1bdF17bHxsfQotICAgICAgXG11bHRpY29sdW1uezF9 e2N9e1Bvc2l0aW9ufSAmIFxtdWx0aWNvbHVtbnsxfXtjfXtWYWx1ZX0gXFwK LSAgICAgIFxobGluZQotICAgICAgXHRleHR0dHtlX2lkZW50W0VJX0NMQVNT XX0gJiBcdGV4dHR0e0VMRkNMQVNTNjR9IFxcCi0gICAgICBcdGV4dHR0e2Vf aWRlbnRbRUlfREFUQV19ICYgXHRleHR0dHtFTEZEQVRBMkxTQn0KLSAgICBc ZW5ke3RhYnVsYXJ9Ci0gIFxlbmR7Y2VudGVyfQotXEhydWxlCi1cZW5ke3Rh YmxlfQorQXMgZGVzY3JpYmVkIGluIFNlY3Rpb24gXHJlZntpbnRyb30sIGJp bmFyaWVzIHVzaW5nIHRoZSBceEFSQ0ggaW5zdHJ1Y3Rpb24KK3NldCBtYXkg cHJvZ3JhbSB0byBlaXRoZXIgYSAzMi1iaXQgbW9kZWwsIGluIHdoaWNoIHRo ZSBDIGRhdGEKK3R5cGVzIFxjb2Rle2ludH0sIFxjb2Rle2xvbmd9IGFuZCBh bGwgcG9pbnRlciB0eXBlcyBhcmUgMzItYml0IG9iamVjdHMKKyhJTFAzMik7 IG9yIHRvIGEgNjQtYml0IG1vZGVsLCBpbiB3aGljaCB0aGUgQyBjb2Rle2lu dH0gdHlwZSBpcyAzMi1iaXRzCitidXQgdGhlIEMgXGNvZGV7bG9uZ30gdHlw ZSBhbmQgYWxsIHBvaW50ZXIgdHlwZXMgYXJlIDY0LWJpdCBvYmplY3RzIChM UDY0KS4KK1RoaXMgc3BlY2lmaWNhdGlvbiBkZXNjcmliZXMgYm90aCBiaW5h cmllcyB0aGF0IHVzZSB0aGUgSUxQMzIgYW5kIHRoZSBMUDY0Cittb2RlbC4K KworXHN1YnN1YnNlY3Rpb257RmlsZSBDbGFzc30KKworRm9yIFx4QVJDSCBJ TFAzMiBvYmplY3RzLCB0aGUgZmlsZSBjbGFzcyB2YWx1ZSBpbiBlX2lkZW50 W0VJX0NMQVNTXSBtdXN0CitiZSBFTEZDTEFTUzMyLiBGb3IgXHhBUkNIIExQ NjQgb2JqZWN0cywgdGhlIGZpbGUgY2xhc3MgdmFsdWUgbXVzdCBiZQorRUxG Q0xBU1M2NC4KKworXHN1YnN1YnNlY3Rpb257RGF0YSBFbmNvZGluZ30KKwor Rm9yIHRoZSBkYXRhIGVuY29kaW5nIGluIGVfaWRlbnRbRUlfREFUQV0sIFx4 QVJDSCBvYmplY3RzIHVzZQorRUxGREFUQTJMU0IuCisKK1xzdWJzdWJzZWN0 aW9ue1Byb2Nlc3NvciBpZGVudGlmaWNhdGlvbn0KIAogUHJvY2Vzc29yIGlk ZW50aWZpY2F0aW9uIHJlc2lkZXMgaW4gdGhlIEVMRiBoZWFkZXJzCiBcdGV4 dHR0e2VfbWFjaGluZX0gbWVtYmVyIGFuZCBtdXN0IGhhdmUgdGhlIHZhbHVl CkBAIC0zOTcsNiArNDAzLDggQEAgRmlndXJlIFxyZWZ7cmVsb2NfZmllbGRz fSBzaG93cyB0aGUgYWxsb3dlZCByZWxvY2F0YWJsZSBmaWVsZHMuCiAgICAg ICAgICAgICAgICAgICB3aXRoIGFyYml0cmFyeSBieXRlIGFsaWdubWVudC4g IFRoZXNlIHZhbHVlcyB1c2UKICAgICAgICAgICAgICAgICAgIHRoZSBzYW1l IGJ5dGUgb3JkZXIgYXMgb3RoZXIgd29yZCB2YWx1ZXMgaW4gdGhlCiAgICAg ICAgICAgICAgICAgICBceEFSQ0ggYXJjaGl0ZWN0dXJlLiBcXAorXHRleHRp dHt3b3JkY2xhc3N9ICYgVGhpcyBzcGVjaWZpZXMgXHRleHRpdHt3b3JkNjR9 IGZvciBMUDY0IGFuZAorCQkgICAgIHNwZWNpZmllcyBcdGV4dGl0e3dvcmQz Mn0gZm9yIElMUDMyLiBcXCAKIFxlbmR7dGFidWxhcip9CiAKIFRoZSBmb2xs b3dpbmcgbm90YXRpb25zIGFyZSB1c2VkIGZvciBzcGVjaWZ5aW5nIHJlbG9j YXRpb25zIGluIHRhYmxlCkBAIC00MjEsMTMgKzQyOSwxOSBAQCBUaGUgZm9s bG93aW5nIG5vdGF0aW9ucyBhcmUgdXNlZCBmb3Igc3BlY2lmeWluZyByZWxv Y2F0aW9ucyBpbiB0YWJsZQogICByZWxvY2F0aW9uIGVudHJ5LgogXGVuZHtk ZXNjcmlwdGlvbn0KIAotVGhlIFx4QVJDSCBBQkkgYXJjaGl0ZWN0dXJlcyB1 c2VzIG9ubHkgXHRleHR0dHtFbGY2NF9SZWxhfSByZWxvY2F0aW9uCitUaGUg XHhBUkNIIExQNjQgQUJJIGFyY2hpdGVjdHVyZSB1c2VzIG9ubHkgXHRleHR0 dHtFbGY2NF9SZWxhfSByZWxvY2F0aW9uCiBlbnRyaWVzIHdpdGggZXhwbGlj aXQgYWRkZW5kcy4gIFRoZSBcY29kZXtyX2FkZGVuZH0gbWVtYmVyIHNlcnZl cyBhcwogdGhlIHJlbG9jYXRpb24gYWRkZW5kLgogCitUaGUgXHhBUkNIIElM UDMyIEFCSSBhcmNoaXRlY3R1cmUgdXNlcyBvbmx5IFx0ZXh0dHR7RWxmMzJf UmVsYX0gcmVsb2NhdGlvbgorZW50cmllcyBpbiByZWxvY2F0YWJsZSBmaWxl cy4gIFJlbG9jYXRpb25zIGNvbnRhaW5lZCB3aXRoaW4gZXhlY3V0YWJsZQor ZmlsZXMgb3Igc2hhcmVkIG9iamVjdHMgbWF5IHVzZSBlaXRoZXIgXHRleHR0 dHtFbGYzMl9SZWxhfSByZWxvY2F0aW9uCitvciBcdGV4dHR0e0VsZjMyX1Jl bH0gcmVsb2NhdGlvbi4KKwogXGJlZ2lue3RhYmxlfVtIXQogXEhydWxlCiAg IFxjYXB0aW9ue1JlbG9jYXRpb24gVHlwZXN9CisgIFxzbWFsbAogICBcbGFi ZWx7dGFiLXJlbG9jYXRpb25zfQogICBcYmVnaW57Y2VudGVyfQogICAgIFxi ZWdpbnt0YWJ1bGFyfVt0XXtsfHJ8bHxsfQpAQCAtNDQyLDkgKzQ1Niw5IEBA IHRoZSByZWxvY2F0aW9uIGFkZGVuZC4KICAgICAgIFx0ZXh0dHR7Ul9YODZf NjRfR09UMzJ9ICYgMyAmIFx0ZXh0aXR7d29yZDMyfSAmIFx0ZXh0dHR7RyAr IEF9IFxcCiAgICAgICBcdGV4dHR0e1JfWDg2XzY0X1BMVDMyfSAmIDQgJiBc dGV4dGl0e3dvcmQzMn0gJiBcdGV4dHR0e0wgKyBBIC0gUH0gXFwKICAgICAg IFx0ZXh0dHR7Ul9YODZfNjRfQ09QWX0gICYgNSAmIG5vbmUgICAgICAgICAg ICAmIG5vbmUgXFwKLSAgICAgIFx0ZXh0dHR7Ul9YODZfNjRfR0xPQl9EQVR9 ICYgNiAmIFx0ZXh0aXR7d29yZDY0fSAmIFx0ZXh0dHR7U30gXFwKLSAgICAg IFx0ZXh0dHR7Ul9YODZfNjRfSlVNUF9TTE9UfSAmIDcgJiBcdGV4dGl0e3dv cmQ2NH0gJiBcdGV4dHR0e1N9IFxcCi0gICAgICBcdGV4dHR0e1JfWDg2XzY0 X1JFTEFUSVZFfSAmIDggJiBcdGV4dGl0e3dvcmQ2NH0gJiBcdGV4dHR0e0Ig KyBBfSBcXAorICAgICAgXHRleHR0dHtSX1g4Nl82NF9HTE9CX0RBVH0gJiA2 ICYgXHRleHRpdHt3b3JkY2xhc3N9ICYgXHRleHR0dHtTfSBcXAorICAgICAg XHRleHR0dHtSX1g4Nl82NF9KVU1QX1NMT1R9ICYgNyAmIFx0ZXh0aXR7d29y ZGNsYXNzfSAmIFx0ZXh0dHR7U30gXFwKKyAgICAgIFx0ZXh0dHR7Ul9YODZf NjRfUkVMQVRJVkV9ICYgOCAmIFx0ZXh0aXR7d29yZGNsYXNzfSAmIFx0ZXh0 dHR7QiArIEF9IFxcCiAgICAgICBcdGV4dHR0e1JfWDg2XzY0X0dPVFBDUkVM fSAmIDkgJiBcdGV4dGl0e3dvcmQzMn0gJiBcdGV4dHR0e0cgKyBHT1QgKyBB IC0gUH0gXFwKICAgICAgIFx0ZXh0dHR7Ul9YODZfNjRfMzJ9ICAgICYgMTAg JiBcdGV4dGl0e3dvcmQzMn0gJiBcdGV4dHR0e1MgKyBBfSBcXAogICAgICAg XHRleHR0dHtSX1g4Nl82NF8zMlN9ICAgJiAxMSAmIFx0ZXh0aXR7d29yZDMy fSAmIFx0ZXh0dHR7UyArIEF9IFxcCkBAIC00NjAsMTcgKzQ3NCwyMiBAQCB0 aGUgcmVsb2NhdGlvbiBhZGRlbmQuCiAgICAgICBcdGV4dHR0e1JfWDg2XzY0 X0RUUE9GRjMyfSAgICYgMjEgJiBcdGV4dGl0e3dvcmQzMn0gJiAgXFwKICAg ICAgIFx0ZXh0dHR7Ul9YODZfNjRfR09UVFBPRkZ9ICAgJiAyMiAmIFx0ZXh0 aXR7d29yZDMyfSAmICBcXAogICAgICAgXHRleHR0dHtSX1g4Nl82NF9UUE9G RjMyfSAgICYgMjMgJiBcdGV4dGl0e3dvcmQzMn0gJiAgXFwKLSAgICAgIFx0 ZXh0dHR7Ul9YODZfNjRfUEM2NH0gICYgMjQgJiBcdGV4dGl0e3dvcmQ2NH0g JiBcdGV4dHR0e1MgKyBBIC0gUH0gXFwKLSAgICAgIFx0ZXh0dHR7Ul9YODZf NjRfR09UT0ZGNjR9ICYgMjUgJiBcdGV4dGl0e3dvcmQ2NH0gJiBcdGV4dHR0 e1MgKyBBIC0gR09UfSBcXAorICAgICAgXHRleHR0dHtSX1g4Nl82NF9QQzY0 fSAkXlxkYWdnZXIkICYgMjQgJiBcdGV4dGl0e3dvcmQ2NH0gJiBcdGV4dHR0 e1MgKyBBIC0gUH0gXFwKKyAgICAgIFx0ZXh0dHR7Ul9YODZfNjRfR09UT0ZG NjR9ICReXGRhZ2dlciQgJiAyNSAmIFx0ZXh0aXR7d29yZDY0fSAmIFx0ZXh0 dHR7UyArIEEgLSBHT1R9IFxcCiAgICAgICBcdGV4dHR0e1JfWDg2XzY0X0dP VFBDMzJ9ICYgMjYgJiBcdGV4dGl0e3dvcmQzMn0gJiBcdGV4dHR0e0dPVCAr IEEgLSBQfSBcXAogICAgICAgXHRleHR0dHtSX1g4Nl82NF9TSVpFMzJ9ICYg MzIgJiBcdGV4dGl0e3dvcmQzMn0gJiBcdGV4dHR0e1ogKyBBfSBcXAotICAg ICAgXHRleHR0dHtSX1g4Nl82NF9TSVpFNjR9ICYgMzMgJiBcdGV4dGl0e3dv cmQ2NH0gJiBcdGV4dHR0e1ogKyBBfSBcXAorICAgICAgXHRleHR0dHtSX1g4 Nl82NF9TSVpFNjR9ICReXGRhZ2dlciQgJiAzMyAmIFx0ZXh0aXR7d29yZDY0 fSAmIFx0ZXh0dHR7WiArIEF9IFxcCiAgICAgICBcdGV4dHR0e1JfWDg2XzY0 X0dPVFBDMzJfVExTREVTQ30gJiAzNCAmIFx0ZXh0aXR7d29yZDMyfSAmICBc XAogICAgICAgXHRleHR0dHtSX1g4Nl82NF9UTFNERVNDX0NBTEx9ICYgMzUg JiBub25lICYgIFxcCiAgICAgICBcdGV4dHR0e1JfWDg2XzY0X1RMU0RFU0N9 ICYgMzYgJiBcdGV4dGl0e3dvcmQ2NH0kXHRpbWVzIDIkICYgXFwKLSAgICAg IFx0ZXh0dHR7Ul9YODZfNjRfSVJFTEFUSVZFfSAmIDM3ICYgXHRleHRpdHt3 b3JkNjR9ICYgXHRleHR0dHtpbmRpcmVjdCAoQiArIEEpfVxcCisgICAgICBc dGV4dHR0e1JfWDg2XzY0X0lSRUxBVElWRX0gJiAzNyAmIFx0ZXh0aXR7d29y ZGNsYXNzfSAmIFx0ZXh0dHR7aW5kaXJlY3QgKEIgKyBBKX1cXAorICAgICAg XHRleHR0dHtSX1g4Nl82NF9SRUxBVElWRTY0fSAkXntcZGFnZ2VyXGRhZ2dl cn0kICYgMzggJiBcdGV4dGl0e3dvcmQ2NH0gJiBcdGV4dHR0e0IgKyBBfSBc XAogJSAgICAgIFx0ZXh0dHR7Ul9YODZfNjRfR09UNjR9ICYgMTYgJiBcdGV4 dGl0e3dvcmQ2NH0gJiBcdGV4dHR0e0cgKyBBfSBcXAogJSAgICAgIFx0ZXh0 dHR7Ul9YODZfNjRfUExUNjR9ICYgMTcgJiBcdGV4dGl0e3dvcmQ2NH0gJiBc dGV4dHR0e0wgKyBBIC0gUH0gXFwKKyAgICAgXGNsaW5lezEtNH0KKyAgICBc bXVsdGljb2x1bW57M317bH17XHNtYWxsICReXGRhZ2dlciQgVGhpcyByZWxv Y2F0aW9uIGlzIHVzZWQgb25seSBmb3IgTFA2NC59XFwKKyAgICBcbXVsdGlj b2x1bW57M317bH17XHNtYWxsICRee1xkYWdnZXJcZGFnZ2VyfSQgVGhpcyBy ZWxvY2F0aW9uIG9ubHkKKyAgICBhcHBlYXJzIGluIElMUDMyIGV4ZWN1dGFi bGUgZmlsZXMgb3Igc2hhcmVkIG9iamVjdHMufVxcCiAgICAgXGVuZHt0YWJ1 bGFyfQogICBcZW5ke2NlbnRlcn0KIFxIcnVsZQpkaWZmIC0tZ2l0IGEveDMy LnRleCBiL3gzMi50ZXgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAw MDAwMC4uYjdhNDA1NQotLS0gL2Rldi9udWxsCisrKyBiL3gzMi50ZXgKQEAg LTAsMCArMSw0NDQgQEAKK1xjaGFwdGVye0lMUDMyIFByb2dyYW1taW5nIE1v ZGVsXGxhYmVse3gzMn19CisKKyJ4MzIiIGlzIGNvbW1vbmx5IHVzZWQgdG8g cmVmZXIgdG8gXHhBUkNIIElMUDMyIHByb2dyYW1taW5nIG1vZGVsLgorCitc c2VjdGlvbntQYXJhbWV0ZXIgUGFzc2luZ30KK1doZW4gYSB2YWx1ZSBvZiBw b2ludGVyIHR5cGUgaXMgcmV0dXJuZWQgb3IgcGFzc2VkIGluIGEgcmVnaXN0 ZXIsIGJpdHMgMzIKK3RvIDYzIHNoYWxsIGJlIHplcm8uCisKK1xzZWN0aW9u e0FkZHJlc3MgU3BhY2V9CisKK0lMUDMyIGJpbmFyaWVzIHJlc2lkZSBpbiB0 aGUgbG93ZXIgMzIgYml0cyBvZiB0aGUgNjQtYml0IHZpcnR1YWwKK2FkZHJl c3Mgc3BhY2UgYW5kIGFsbCBhZGRyZXNzZXMgYXJlIDMyIGJpdHMgaW4gc2l6 ZS4gIFRoZXkgc2hvdWxkIGNvbmZvcm0KK3RvIFx0ZXh0aW5kZXh7c21hbGwg Y29kZSBtb2RlbH0gb3IKK1x0ZXh0aW5kZXh7c21hbGwgcG9zaXRpb24gaW5k ZXBlbmRlbnQgY29kZSBtb2RlbH0gKFx0ZXh0aW5kZXh7UElDfSkKK2Rlc2Ny aWJlZCBpbiBTZWN0aW9uIFxyZWZ7bW9kZWxzfS4KKworXHNlY3Rpb257VGhy ZWFkLUxvY2FsIFN0b3JhZ2UgU3VwcG9ydH0KKworSUxQMzIgVGhyZWFkLUxv Y2FsIFN0b3JhZ2UgKFRMUykgc3VwcG9ydCBpcyBiYXNlZCBvbiBMUDY0IFRM UworaW1wbGVtZW50YXRpb24gd2l0aCBzb21lIG1vZGlmY2F0aW9ucy4KKwor XHN1YnNlY3Rpb257R2xvYmFsIFRocmVhZC1Mb2NhbCBWYXJpYWJsZX0KKwor Rm9yIGEgZ2xvYmFsIHRocmVhZC1sb2NhbCB2YXJpYWJsZSB4OgorCitcYmVn aW57dmVyYmF0aW19CitleHRlcm4gX190aHJlYWQgaW50IHg7CitcZW5ke3Zl cmJhdGltfQorCitcYmVnaW57ZGVzY3JpcHRpb259CitcaXRlbVtcdGV4dGlu ZGV4e0dlbmVyYWwgRHluYW1pYyBNb2RlbH1dCisgIExvYWQgYWRkcmVzcyBv ZiBcY29kZXt4fSBpbnRvIFxyZWd7cmF4fQorCitcYmVnaW57dGFibGV9W0hd CitcSHJ1bGUKK1xjYXB0aW9ue0dlbmVyYWwgRHluYW1pYyBNb2RlbCBDb2Rl IFNlcXVlbmNlfQorXGJlZ2lue2NlbnRlcn0KK1xzbWFsbFxjb2RleworXGJl Z2lue3RhYnVsYXJ9e2xsbHxsbGx9CitcbXVsdGljb2x1bW57M317Y317TFA2 NH0gJiBcbXVsdGljb2x1bW57M317Y317SUxQMzJ9IFxcCitcaGxpbmUKKzB4 MDAgJiAuYnl0ZSAmIDB4NjYJCQkmIDB4MDAgJiBsZWFxICAmIHhAdGxzZ2Qo XCVyaXApLFwlcmRpIFxcCisweDAxICYgbGVhcSAgJiB4QHRsc2dkKFwlcmlw KSxcJXJkaQkmIDB4MDcgJiAud29yZCAmIDB4NjY2NiBcXAorMHgwOCAmIC53 b3JkICYgMHg2NjY2CQkJJiAweDA5ICYgcmV4NjQgJiBcXAorMHgwYSAmIHJl eDY0ICYJCQkJJiAweDBhICYgY2FsbCAgJiBcX1xfdGxzXF9nZXRcX2FkZHJA cGx0IFxcCisweDBiICYgY2FsbCAgJiBcX1xfdGxzXF9nZXRcX2FkZHJAcGx0 CSYgICAgICAmICAgICAgICYgXFwKK1xlbmR7dGFidWxhcn0KK30KK1xlbmR7 Y2VudGVyfQorXEhydWxlCitcZW5ke3RhYmxlfQorCitcaXRlbVtcdGV4dGlu ZGV4e0luaXRpYWwgRXhlYyBNb2RlbH1dCisgIExvYWQgYWRkcmVzcyBvZiBc Y29kZXt4fSBpbnRvIFxyZWd7cmF4fQorCitcYmVnaW57dGFibGV9W0hdCitc SHJ1bGUKK1xjYXB0aW9ue0luaXRpYWwgRXhlYyBNb2RlbCBDb2RlIFNlcXVl bmNlfQorXGJlZ2lue2NlbnRlcn0KK1xzbWFsbFxjb2RleworXGJlZ2lue3Rh YnVsYXJ9e2xsbHxsbGx9CitcbXVsdGljb2x1bW57M317Y317TFA2NH0gJiBc bXVsdGljb2x1bW57M317Y317SUxQMzJ9IFxcCitcaGxpbmUKKzB4MDEgJiBt b3ZxICYgXCVmczowLFwlcmF4CQkmIDB4MDEgJiBtb3ZsICYgXCVmczowLFwl ZWF4IFxcCisweDA5ICYgYWRkcSAmIHhAZ290dHBvZmYoXCVyaXApLFwlcmF4 CSYgMHgwOCAmIGFkZGwgJiB4QGdvdHRwb2ZmKFwlcmlwKSxcJWVheCBcXAor XGVuZHt0YWJ1bGFyfQorfQorXGVuZHtjZW50ZXJ9CitcSHJ1bGUKK1xlbmR7 dGFibGV9CisKK1xpdGVtW1x0ZXh0aW5kZXh7SW5pdGlhbCBFeGVjIE1vZGVs LCBJSX1dCisgIExvYWQgdmFsdWUgb2YgXGNvZGV7eH0gaW50byBccmVne2Vk aX0uICBcY29kZXtcJWZzOihcJWVheCl9IG1lbW9yeQorICBvcGVyYW5kIGNh bid0IGJlIHVzZWQgZm9yIElMUDMyIHNpbmNlIGl0cyBlZmZlY3RpdmUgYWRk cmVzcyBpcyB0aGUgYmFzZQorICBhZGRyZXNzIG9mIFxjb2Rle1wlZnN9ICsg dmFsdWUgb2YgXHJlZ3tlYXh9IHplcm8tZXh0ZW5kZWQgdG8gYSA2NC1iaXQK KyAgcmVzdWx0LCB3aGljaCBpcyBpbmNvcnJlY3Qgd2l0aCBuZWdhdGl2ZSB2 YWx1ZSBpbiBccmVne2VheH0uCisKK1xiZWdpbnt0YWJsZX1bSF0KK1xIcnVs ZQorXGNhcHRpb257SW5pdGlhbCBFeGVjIE1vZGVsIENvZGUgU2VxdWVuY2Us IElJfQorXGJlZ2lue2NlbnRlcn0KK1xzbWFsbFxjb2RleworXGJlZ2lue3Rh YnVsYXJ9e2xsbHxsbGx9CitcbXVsdGljb2x1bW57M317Y317TFA2NH0gJiBc bXVsdGljb2x1bW57M317Y317SUxQMzJ9IFxcCitcaGxpbmUKKzB4MDEgJiBt b3ZxICYgeEBnb3R0cG9mZihcJXJpcCksXCVyYXgJJiAweDAxICYgbW92cSAm IHhAZ290dHBvZmYoXCVyaXApLFwlcmF4IFxcCisweDA3ICYgbW92bCAmIFwl ZnM6KFwlcmF4KSxcJWVkaQkmIDB4MDcgJiBtb3ZsICYgXCVmczooXCVyYXgp LFwlZWRpIFxcCitcZW5ke3RhYnVsYXJ9Cit9CitcZW5ke2NlbnRlcn0KK1xI cnVsZQorXGVuZHt0YWJsZX0KKworXGVuZHtkZXNjcmlwdGlvbn0KKworXHN1 YnNlY3Rpb257U3RhdGljIFRocmVhZC1Mb2NhbCBWYXJpYWJsZX0KKworRm9y IGEgc3RhdGljIHRocmVhZC1sb2NhbCB2YXJpYWJsZSB4OgorCitcYmVnaW57 dmVyYmF0aW19CitzdGF0aWMgX190aHJlYWQgaW50IHg7CitcZW5ke3ZlcmJh dGltfQorCitcYmVnaW57ZGVzY3JpcHRpb259CitcaXRlbVtcdGV4dGluZGV4 e0xvY2FsIER5bmFtaWMgTW9kZWx9XQorICBMb2FkIGFkZHJlc3Mgb2YgXGNv ZGV7eH0gaW50byBccmVne3JheH0KKworXGJlZ2lue3RhYmxlfVtIXQorXEhy dWxlCitcY2FwdGlvbntMb2NhbCBEeW5hbWljIE1vZGVsIENvZGUgU2VxdWVu Y2UgV2l0aCBMZWF9CitcYmVnaW57Y2VudGVyfQorXHNtYWxsXGNvZGV7Citc YmVnaW57dGFidWxhcn17bGxsfGxsbH0KK1xtdWx0aWNvbHVtbnszfXtjfXtM UDY0fSAmIFxtdWx0aWNvbHVtbnszfXtjfXtJTFAzMn0gXFwKK1xobGluZQor MHgwMCAmIGxlYXEgICYgeEB0bHNsZChcJXJpcCksXCVyZGkJJiAweDAwICYg bGVhcSAmIHhAdGxzbGQoXCVyaXApLFwlcmRpXFwKKzB4MDcgJiBjYWxsICAm IFxfXF90bHNcX2dldFxfYWRkckBwbHQJJiAweDA3ICYgY2FsbCAmIFxfXF90 bHNcX2dldFxfYWRkckBwbHRcXAorMHgwYyAmIGxlYXEgICYgeEBkdHBvZmYo XCVyYXgpLFwlcmF4CSYgMHgwYyAmIGxlYWwgJiB4QGR0cG9mZihcJXJheCks XCVlYXhcXAorXGVuZHt0YWJ1bGFyfQorfQorXGVuZHtjZW50ZXJ9CitcSHJ1 bGUKK1xlbmR7dGFibGV9CisKK29yCisKK1xiZWdpbnt0YWJsZX1bSF0KK1xI cnVsZQorXGNhcHRpb257TG9jYWwgRHluYW1pYyBNb2RlbCBDb2RlIFNlcXVl bmNlIFdpdGggQWRkfQorXGJlZ2lue2NlbnRlcn0KK1xzbWFsbFxjb2Rlewor XGJlZ2lue3RhYnVsYXJ9e2xsbHxsbGx9CitcbXVsdGljb2x1bW57M317Y317 TFA2NH0gJiBcbXVsdGljb2x1bW57M317Y317SUxQMzJ9IFxcCitcaGxpbmUK KzB4MDAgJiBsZWFxICAmIHhAdGxzbGQoXCVyaXApLFwlcmRpCSYgMHgwMCAm IGxlYXEgJiB4QHRsc2xkKFwlcmlwKSxcJXJkaVxcCisweDA3ICYgY2FsbCAg JiBcX1xfdGxzXF9nZXRcX2FkZHJAcGx0CSYgMHgwNyAmIGNhbGwgJiBcX1xf dGxzXF9nZXRcX2FkZHJAcGx0XFwKKzB4MGMgJiBhZGRxICAmIFwkeEBkdHBv ZmYsXCVyYXgJCSYgMHgwYyAmIGFkZGwgJiBcJHhAZHRwb2ZmLFwlZWF4XFwK K1xlbmR7dGFidWxhcn0KK30KK1xlbmR7Y2VudGVyfQorXEhydWxlCitcZW5k e3RhYmxlfQorCitcaXRlbVtcdGV4dGluZGV4e0xvY2FsIER5bmFtaWMgTW9k ZWwsIElJfV0KKyAgTG9hZCB2YWx1ZSBvZiBcY29kZXt4fSBpbnRvIFxyZWd7 ZWRpfQorCitcYmVnaW57dGFibGV9W0hdCitcSHJ1bGUKK1xjYXB0aW9ue0xv Y2FsIER5bmFtaWMgTW9kZWwgQ29kZSBTZXF1ZW5jZSwgSUl9CitcYmVnaW57 Y2VudGVyfQorXHNtYWxsXGNvZGV7CitcYmVnaW57dGFidWxhcn17bGxsfGxs bH0KK1xtdWx0aWNvbHVtbnszfXtjfXtMUDY0fSAmIFxtdWx0aWNvbHVtbnsz fXtjfXtJTFAzMn0gXFwKK1xobGluZQorMHgwMSAmIG1vdnEgJiBcJWZzOjAs XCVyYXgJCSYgMHgwMSAmIG1vdmwgJiBcJWZzOjAsXCVlYXggXFwKKzB4MDkg JiBtb3ZsICYgeEBkdHBvZmYoXCVyYXgpLFwlZWRpCSYgMHgwOCAmIG1vdmwg JiB4QGR0cG9mZihcJXJheCksXCVlZGkgXFwKK1xlbmR7dGFidWxhcn0KK30K K1xlbmR7Y2VudGVyfQorXEhydWxlCitcZW5ke3RhYmxlfQorCitcaXRlbVtc dGV4dGluZGV4e0xvY2FsIEV4ZWMgTW9kZWx9XQorICBMb2FkIGFkZHJlc3Mg b2YgXGNvZGV7eH0gaW50byBccmVne3JheH0KKworXGJlZ2lue3RhYmxlfVtI XQorXEhydWxlCitcY2FwdGlvbntMb2NhbCBFeGVjIE1vZGVsIENvZGUgU2Vx dWVuY2UgV2l0aCBMZWF9CitcYmVnaW57Y2VudGVyfQorXHNtYWxsXGNvZGV7 CitcYmVnaW57dGFidWxhcn17bGxsfGxsbH0KK1xtdWx0aWNvbHVtbnszfXtj fXtMUDY0fSAmIFxtdWx0aWNvbHVtbnszfXtjfXtJTFAzMn0gXFwKK1xobGlu ZQorMHgwMSAmIG1vdnEgJiBcJWZzOjAsXCVyYXgJCSYgMHgwMSAmIG1vdmwg JiBcJWZzOjAsXCVlYXggXFwKKzB4MDkgJiBsZWFxICYgeEB0cG9mZihcJXJh eCksXCVyYXgJJiAweDA4ICYgbGVhbCAmIHhAdHBvZmYoXCVyYXgpLFwlZWF4 IFxcCitcZW5ke3RhYnVsYXJ9Cit9CitcZW5ke2NlbnRlcn0KK1xIcnVsZQor XGVuZHt0YWJsZX0KKworb3IKKworXGJlZ2lue3RhYmxlfVtIXQorXEhydWxl CitcY2FwdGlvbntMb2NhbCBFeGVjIE1vZGVsIENvZGUgU2VxdWVuY2UgV2l0 aCBBZGR9CitcYmVnaW57Y2VudGVyfQorXHNtYWxsXGNvZGV7CitcYmVnaW57 dGFidWxhcn17bGxsfGxsbH0KK1xtdWx0aWNvbHVtbnszfXtjfXtMUDY0fSAm IFxtdWx0aWNvbHVtbnszfXtjfXtJTFAzMn0gXFwKK1xobGluZQorMHgwMSAm IG1vdnEgJiBcJWZzOjAsXCVyYXgJCSYgMHgwMSAmIG1vdmwgJiBcJWZzOjAs XCVlYXggXFwKKzB4MDkgJiBhZGRxICYgXCR4QHRwb2ZmLFwlcmF4CQkmIDB4 MDggJiBhZGRsICYgXCR4QHRwb2ZmLFwlZWF4IFxcCitcZW5ke3RhYnVsYXJ9 Cit9CitcZW5ke2NlbnRlcn0KK1xIcnVsZQorXGVuZHt0YWJsZX0KKworXGl0 ZW1bXHRleHRpbmRleHtMb2NhbCBFeGVjIE1vZGVsLCBJSX1dCisgIExvYWQg dmFsdWUgb2YgXGNvZGV7eH0gaW50byBccmVne2VkaX0KKworXGJlZ2lue3Rh YmxlfVtIXQorXEhydWxlCitcY2FwdGlvbntMb2NhbCBFeGVjIE1vZGVsIENv ZGUgU2VxdWVuY2UsIElJfQorXGJlZ2lue2NlbnRlcn0KK1xzbWFsbFxjb2Rl eworXGJlZ2lue3RhYnVsYXJ9e2xsbHxsbGx9CitcbXVsdGljb2x1bW57M317 Y317TFA2NH0gJiBcbXVsdGljb2x1bW57M317Y317SUxQMzJ9IFxcCitcaGxp bmUKKzB4MDEgJiBtb3ZxICYgXCVmczowLFwlcmF4CQkmIDB4MDEgJiBtb3Zs ICYgXCVmczowLFwlZWF4IFxcCisweDA5ICYgbW92bCAmIHhAdHBvZmYoXCVy YXgpLFwlZWRpCSYgMHgwOCAmIG1vdmwgJiB4QHRwb2ZmKFwlcmF4KSxcJWVk aSBcXAorXGVuZHt0YWJ1bGFyfQorfQorXGVuZHtjZW50ZXJ9CitcSHJ1bGUK K1xlbmR7dGFibGV9CisKK1xpdGVtW1x0ZXh0aW5kZXh7TG9jYWwgRXhlYyBN b2RlbCwgSUlJfV0KKyAgTG9hZCB2YWx1ZSBvZiBcY29kZXt4fSBpbnRvIFxy ZWd7ZWRpfQorCitcYmVnaW57dGFibGV9W0hdCitcSHJ1bGUKK1xjYXB0aW9u e0xvY2FsIEV4ZWMgTW9kZWwgQ29kZSBTZXF1ZW5jZSwgSUlJfQorXGJlZ2lu e2NlbnRlcn0KK1xzbWFsbFxjb2RleworXGJlZ2lue3RhYnVsYXJ9e2xsbHxs bGx9CitcbXVsdGljb2x1bW57M317Y317TFA2NH0gJiBcbXVsdGljb2x1bW57 M317Y317SUxQMzJ9IFxcCitcaGxpbmUKKzB4MDAgJiBtb3ZsICYgXCVmczp4 QHRwb2ZmLFwlZWRpCSYgMHgwMCAmIG1vdmwgJiBcJWZzOnhAdHBvZmYsXCVl ZGkgXFwKK1xlbmR7dGFidWxhcn0KK30KK1xlbmR7Y2VudGVyfQorXEhydWxl CitcZW5ke3RhYmxlfQorCitcZW5ke2Rlc2NyaXB0aW9ufQorCitcc3Vic2Vj dGlvbntUTFMgTGlua2VyIE9wdGltaXphdGlvbn0KKworXGJlZ2lue2Rlc2Ny aXB0aW9ufQorXGl0ZW1bXHRleHRpbmRleHtHZW5lcmFsIER5bmFtaWMgVG8g SW5pdGlhbCBFeGVjfV0KKyAgTG9hZCBhZGRyZXNzIG9mIFxjb2Rle3h9IGlu dG8gXHJlZ3tyYXh9CisKK1xiZWdpbnt0YWJsZX1bSF0KK1xIcnVsZQorXGNh cHRpb257R0QgLT4gSUUgQ29kZSBUcmFuc2l0aW9ufQorXGJlZ2lue2NlbnRl cn0KK1xzbWFsbFxjb2RleworXGJlZ2lue3RhYnVsYXJ9e2xsbHxsbGx9Citc bXVsdGljb2x1bW57M317Y317R0R9ICYgXG11bHRpY29sdW1uezN9e2N9e0lF fSBcXAorXGhsaW5lCisweDAwICYgbGVhcSAgJiB4QHRsc2dkKFwlcmlwKSxc JXJkaQkmIDB4MDAgJiBtb3ZsICAmIFwlZnM6MCwgXCVlYXggXFwKKzB4MDcg JiAud29yZCAmIDB4NjY2NgkJCSYgMHgwOCAmIGFkZHEgICYgeEBnb3R0cG9m ZihcJXJpcCksXCVyYXhcXAorMHgwOSAmIHJleDY0ICYJCQkJJiAgICAgICYg ICAgICAgJiBcXAorMHgwYSAmIGNhbGwgICYgXF9cX3Rsc1xfZ2V0XF9hZGRy QHBsdAkmICAgICAgJiAgICAgICAmIFxcCitcZW5ke3RhYnVsYXJ9Cit9Citc ZW5ke2NlbnRlcn0KK1xIcnVsZQorXGVuZHt0YWJsZX0KKworXGJlZ2lue3Rh YmxlfVtIXQorXEhydWxlCitcY2FwdGlvbntHRCAtPiBMRSBDb2RlIFRyYW5z aXRpb259CitcYmVnaW57Y2VudGVyfQorXHNtYWxsXGNvZGV7CitcYmVnaW57 dGFidWxhcn17bGxsfGxsbH0KK1xtdWx0aWNvbHVtbnszfXtjfXtHRH0gJiBc bXVsdGljb2x1bW57M317Y317TEV9IFxcCitcaGxpbmUKKzB4MDAgJiBsZWFx ICAmIHhAdGxzZ2QoXCVyaXApLFwlcmRpCSYgMHgwMCAmIG1vdmwgICYgXCVm czowLCBcJWVheCBcXAorMHgwNyAmIC53b3JkICYgMHg2NjY2CQkJJiAweDA4 ICYgbGVhbCAgJiB4QHRwb2ZmKFwlcmF4KSxcJWVheFxcCisweDA5ICYgcmV4 NjQgJgkJCQkmICAgICAgJiAgICAgICAmIFxcCisweDBhICYgY2FsbCAgJiBc X1xfdGxzXF9nZXRcX2FkZHJAcGx0CSYgICAgICAmICAgICAgICYgXFwKK1xl bmR7dGFidWxhcn0KK30KK1xlbmR7Y2VudGVyfQorXEhydWxlCitcZW5ke3Rh YmxlfQorCitcaXRlbVtcdGV4dGluZGV4e0luaXRpYWwgRXhlYyBUbyBMb2Nh bCBFeGVjfV0KKyAgTG9hZCBhZGRyZXNzIG9mIFxjb2Rle3h9IGludG8gXHJl Z3tyYXh9CisKK1xiZWdpbnt0YWJsZX1bSF0KK1xIcnVsZQorXGNhcHRpb257 SUUgLT4gTEUgQ29kZSBUcmFuc2l0aW9uIFdpdGggTGVhfQorXGJlZ2lue2Nl bnRlcn0KK1xzbWFsbFxjb2RleworXGJlZ2lue3RhYnVsYXJ9e2xsbHxsbGx9 CitcbXVsdGljb2x1bW57M317Y317SUV9ICYgXG11bHRpY29sdW1uezN9e2N9 e0xFfSBcXAorXGhsaW5lCisweDAxICYgbW92bCAmIFwlZnM6MCxcJWVheAkJ JiAweDAxICYgbW92bCAmIFwlZnM6MCxcJWVheCBcXAorMHgwOCAmIGFkZGwg JiB4QGdvdHRwb2ZmKFwlcmlwKSxcJWVheAkmIDB4MDggJiBsZWFsICYgeEB0 cG9mZihcJXJheCksXCVlYXggXFwKK1xlbmR7dGFidWxhcn0KK30KK1xlbmR7 Y2VudGVyfQorXEhydWxlCitcZW5ke3RhYmxlfQorCitvcgorCitcYmVnaW57 dGFibGV9W0hdCitcSHJ1bGUKK1xjYXB0aW9ue0lFIC0+IExFIENvZGUgVHJh bnNpdGlvbiBXaXRoIEFkZH0KK1xiZWdpbntjZW50ZXJ9Citcc21hbGxcY29k ZXsKK1xiZWdpbnt0YWJ1bGFyfXtsbGx8bGxsfQorXG11bHRpY29sdW1uezN9 e2N9e0lFfSAmIFxtdWx0aWNvbHVtbnszfXtjfXtMRX0gXFwKK1xobGluZQor MHgwMSAmIG1vdmwgJiBcJWZzOjAsXCVlYXgJCSYgMHgwMSAmIG1vdmwgJiBc JWZzOjAsXCVlYXggXFwKKzB4MDggJiBhZGRsICYgXCR4QGdvdHRwb2ZmKFwl cmlwKSxcJWVheAkmIDB4MDggJiBhZGRsICYgXCR4QHRwb2ZmLFwlZWF4IFxc CitcZW5ke3RhYnVsYXJ9Cit9CitcZW5ke2NlbnRlcn0KK1xIcnVsZQorXGVu ZHt0YWJsZX0KKworXGl0ZW1bXHRleHRpbmRleHtJbml0aWFsIEV4ZWMgVG8g TG9jYWwgRXhlYywgSUl9XQorICBMb2FkIHZhbHVlIG9mIFxjb2Rle3h9IGlu dG8gXHJlZ3tlZGl9LgorCitcYmVnaW57dGFibGV9W0hdCitcSHJ1bGUKK1xj YXB0aW9ue0lFIC0+IExFIENvZGUgVHJhbnNpdGlvbiwgSUl9CitcYmVnaW57 Y2VudGVyfQorXHNtYWxsXGNvZGV7CitcYmVnaW57dGFidWxhcn17bGxsfGxs bH0KK1xtdWx0aWNvbHVtbnszfXtjfXtJRX0gJiBcbXVsdGljb2x1bW57M317 Y317TEV9IFxcCitcaGxpbmUKKzB4MDEgJiBtb3ZxICYgeEBnb3R0cG9mZihc JXJpcCksXCVyYXgJJiAweDAxICYgbW92cSAmIHhAdHBvZmYsXCVyYXggXFwK KzB4MDcgJiBtb3ZsICYgXCVmczooXCVyYXgpLFwlZWRpCSYgMHgwNyAmIG1v dmwgJiBcJWZzOihcJXJheCksXCVlZGkgXFwKK1xlbmR7dGFidWxhcn0KK30K K1xlbmR7Y2VudGVyfQorXEhydWxlCitcZW5ke3RhYmxlfQorCitcaXRlbVtc dGV4dGluZGV4e0xvY2FsIER5bmFtaWMgdG8gTG9jYWwgRXhlY31dCisgIExv YWQgYWRkcmVzcyBvZiBcY29kZXt4fSBpbnRvIFxyZWd7cmF4fQorCitcYmVn aW57dGFibGV9W0hdCitcSHJ1bGUKK1xjYXB0aW9ue0xEIC0+IExFIENvZGUg VHJhbnNpdGlvbiBXaXRoIExlYX0KK1xiZWdpbntjZW50ZXJ9Citcc21hbGxc Y29kZXsKK1xiZWdpbnt0YWJ1bGFyfXtsbGx8bGxsfQorXG11bHRpY29sdW1u ezN9e2N9e0xEfSAmIFxtdWx0aWNvbHVtbnszfXtjfXtMRX0gXFwKK1xobGlu ZQorMHgwMCAmIGxlYXEgICYgeEB0bHNsZChcJXJpcCksXCVyZGkJJiAweDAw ICYgbm9wbCAmIDB4MChcJXJheCkgXFwKKzB4MDcgJiBjYWxsICAmIFxfXF90 bHNcX2dldFxfYWRkckBwbHQJJiAweDA0ICYgbW92bCAmIFwlZnM6MCxcJWVh eFxcCisweDBjICYgbGVhbCAgJiB4QGR0cG9mZihcJXJheCksXCVlYXgJJiAw eDBjICYgbGVhbCAmIHhAdHBvZmYoXCVyYXgpLFwlZWF4XFwKK1xlbmR7dGFi dWxhcn0KK30KK1xlbmR7Y2VudGVyfQorXEhydWxlCitcZW5ke3RhYmxlfQor CitvcgorCitcYmVnaW57dGFibGV9W0hdCitcSHJ1bGUKK1xjYXB0aW9ue0xE IC0+IExFIENvZGUgVHJhbnNpdGlvbiBXaXRoIEFkZH0KK1xiZWdpbntjZW50 ZXJ9Citcc21hbGxcY29kZXsKK1xiZWdpbnt0YWJ1bGFyfXtsbGx8bGxsfQor XG11bHRpY29sdW1uezN9e2N9e0xEfSAmIFxtdWx0aWNvbHVtbnszfXtjfXtM RX0gXFwKK1xobGluZQorMHgwMCAmIGxlYXEgICYgeEB0bHNsZChcJXJpcCks XCVyZGkJJiAweDAwICYgbm9wbCAmIDB4MChcJXJheCkgXFwKKzB4MDcgJiBj YWxsICAmIFxfXF90bHNcX2dldFxfYWRkckBwbHQJJiAweDA0ICYgbW92bCAm IFwlZnM6MCxcJWVheFxcCisweDBjICYgYWRkcSAgJiBcJHhAZHRwb2ZmLFwl cmF4CQkmIDB4MGMgJiBhZGRsICYgXCR4QHRwb2ZmLFwlZWF4XFwKK1xlbmR7 dGFidWxhcn0KK30KK1xlbmR7Y2VudGVyfQorXEhydWxlCitcZW5ke3RhYmxl fQorCitcaXRlbVtcdGV4dGluZGV4e0xvY2FsIER5bmFtaWMgVG8gTG9jYWwg RXhlYywgSUl9XQorICBMb2FkIHZhbHVlIG9mIFxjb2Rle3h9IGludG8gXHJl Z3tlZGl9LgorCitcYmVnaW57dGFibGV9W0hdCitcSHJ1bGUKK1xjYXB0aW9u e0xEIC0+IExFIENvZGUgVHJhbnNpdGlvbiwgSUl9CitcYmVnaW57Y2VudGVy fQorXHNtYWxsXGNvZGV7CitcYmVnaW57dGFidWxhcn17bGxsfGxsbH0KK1xt dWx0aWNvbHVtbnszfXtjfXtMRH0gJiBcbXVsdGljb2x1bW57M317Y317TEV9 IFxcCisweDAwICYgbGVhcSAgJiB4QHRsc2xkKFwlcmlwKSxcJXJkaQkmIDB4 MDAgJiBub3BsICYgMHgwKFwlcmF4KSBcXAorMHgwNyAmIGNhbGwgICYgXF9c X3Rsc1xfZ2V0XF9hZGRyQHBsdAkmIDB4MDQgJiBtb3ZsICYgXCVmczowLFwl ZWF4XFwKKzB4MGMgJiBtb3ZsICAmIHhAZHRwb2ZmKFwlcmF4KSxcJWVheAkm IDB4MGMgJiBtb3ZsICYgeEB0cG9mZihcJXJheCksXCVlYXhcXAorXGhsaW5l CitcZW5ke3RhYnVsYXJ9Cit9CitcZW5ke2NlbnRlcn0KK1xIcnVsZQorXGVu ZHt0YWJsZX0KKworXGVuZHtkZXNjcmlwdGlvbn0KKworXHNlY3Rpb257S2Vy bmVsIFN1cHBvcnR9CitLZXJuZWwgc2hvdWxkIGxpbWl0IHN0YWNrIGFuZCBh ZGRyZXNzZXMgcmV0dXJuZWQgZnJvbSBzeXN0ZW0gY2FsbHMKK2Jld3RlZW4g JDB4MDAwMDAwMDAkIHRvICQweGZmZmZmZmZmJC4KKworXHNlY3Rpb257Q29k aW5nIEV4YW1wbGVzfQorCitBbHRob3VnaCBJTFAzMiBiaW5hcmllcyBydW4g aW4gdGhlIDY0LWJpdCBtb2RlLCBub3QgYWxsIDY0LWJpdCBpbnN0cnVjdGlv bnMKK2FyZSBzdXBwb3J0ZWQuIFRoaXMgc2VjdGlvbiBkaXNjdXNzZXMgZXhh bXBsZSBjb2RlIHNlcXVlbmNlcyBmb3IKK2Z1bmRhbWVudGFsIG9wZXJhdGlv bnMgd2hpY2ggYXJlIGRpZmZlcmVudCBmcm9tIHRoZSA2NC1iaXQgbW9kZS4K KworXHN1YnNlY3Rpb257SW5kaXJlY3QgQnJhbmNofQorCitTaW5jZSBpbmRp cmVjdCBicmFuY2ggdmlhIG1lbW9yeSBsb2FkcyBhIDY0LWJpdCBhZGRyZXNz IGF0IHRoZSBtZW1vcnkKK2xvY2F0aW9uLCBpdCBpcyBub3Qgc3VwcG9ydGVk IGluIElMUDMyLiAgSW5kaXJlY3QgYnJhbmNoIHZpYSByZWdpc3Rlcgorc2hv dWxkIGJlIHVzZWQgaW5zdGVhZC4gIFRoZSAzMi1iaXQgYWRkcmVzcyBmcm9t IG1lbW9yeSBpcyBsb2FkZWQgaW50bwordGhlIGxvd2VyIDMyIGJpdHMgb2Yg YSByZWdpc3Rlciwgd2hpY2ggd2lsbCBhdXRvbWF0aWNhbGx5IHplcm8tZXh0 ZW5kCit0aGUgdXBwZXIgMzIgYml0cyBvZiB0aGUgcmVnaXN0ZXIuICBUaGVu IHRoZSBpbmRpcmVjdCBjYWxsIGNhbiBiZQorcGVyZm9ybWVkIHZpYSB0aGUg NjQtYml0IHJlZ2lzdGVyLiAKKworXGJlZ2lue3RhYmxlfVtIXQorXEhydWxl CitcY2FwdGlvbntJbmRpcmVjdCBCcmFuY2h9CitcYmVnaW57Y2VudGVyfQor XGNvZGV7CitcYmVnaW57dGFidWxhcn17bGx8bGx9CitcbXVsdGljb2x1bW57 Mn17Y317TFA2NH0gJiBcbXVsdGljb2x1bW57Mn17Y317SUxQMzJ9IFxcCitc aGxpbmUKK2NhbGwgJiAqXCVyYXggICAgICAgICAgJiBjYWxsICYgKlwlcmF4 IFxcCitcaGxpbmUKK2NhbGwgJiAqZnVuY1xfcChcJXJpcCkgJiBtb3ZsICYg ZnVuY1xfcChcJXJpcCksIFwlZWF4IFxcCisgICAgICYgICAgICAgICAgICAg ICAgICYgY2FsbCAmICpcJXJheCBcXAorXGhsaW5lCitjYWxsICYgKmZ1bmNc X3AgICAgICAgICYgbW92bCAmIGZ1bmNcX3AsIFwlZWF4IFxcCisgICAgICYg ICAgICAgICAgICAgICAgICYgY2FsbCAmICpcJXJheCBcXAorXGhsaW5lCitq bXAgICYgKlwlcmF4ICAgICAgICAgICYgam1wICAmICpcJXJheCBcXAorXGhs aW5lCitqbXAgICYgKmZ1bmNcX3AoXCVyaXApICYgbW92bCAmIGZ1bmNcX3Ao XCVyaXApLCBcJWVheCBcXAorICAgICAmICAgICAgICAgICAgICAgICAmIGpt cCAgJiAqXCVyYXggXFwKK1xobGluZQoram1wICAmICpmdW5jXF9wICAgICAg ICAmIG1vdmwgJiBmdW5jXF9wLCBcJWVheCBcXAorICAgICAmICAgICAgICAg ICAgICAgICAmIGptcCAgJiAqXCVyYXggXFwKK1xlbmR7dGFidWxhcn0KK30K K1xlbmR7Y2VudGVyfQorXEhydWxlCitcZW5ke3RhYmxlfQo= --20cf303b4063ffc46804c040bf5c--