From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 27763 invoked by alias); 12 Jan 2006 13:51:29 -0000 Received: (qmail 27730 invoked by uid 22791); 12 Jan 2006 13:51:27 -0000 X-Spam-Check-By: sourceware.org Received: from mail.soc-soft.com (HELO igateway.soc-soft.com) (202.56.254.199) by sourceware.org (qpsmtpd/0.31) with ESMTP; Thu, 12 Jan 2006 13:51:26 +0000 Received: from keys.soc-soft.com ([192.168.4.44]) by igateway.soc-soft.com with InterScan VirusWall; Thu, 12 Jan 2006 19:21:15 +0530 Received: from soc-mail.soc-soft.com ([192.168.4.25]) by keys.soc-soft.com (PGP Universal service); Thu, 12 Jan 2006 19:19:27 +0530 X-PGP-Universal: processed; by keys.soc-soft.com on Thu, 12 Jan 2006 19:19:27 +0530 Content-class: urn:content-classes:message MIME-Version: 1.0 Content-Type: multipart/mixed; boundary="----_=_NextPart_001_01C6177F.41017AB5" Subject: RE: Need information about passing command line arguments. Date: Thu, 12 Jan 2006 13:51:00 -0000 Message-ID: <4BF47D56A0DD2346A1B8D622C5C5902C012B1F71@soc-mail.soc-soft.com> From: To: Cc: Mailing-List: contact sid-help@sourceware.org; run by ezmlm Precedence: bulk List-Subscribe: List-Archive: List-Post: List-Help: , Sender: sid-owner@sourceware.org X-SW-Source: 2006-q1/txt/msg00009.txt.bz2 This is a multi-part message in MIME format. ------_=_NextPart_001_01C6177F.41017AB5 Content-Type: text/plain; charset="US-ASCII" Content-Transfer-Encoding: quoted-printable Content-length: 2527 Hi, I tried with the following commands still I'm getting same error, [root@fedora4 bin]# ./sid --board=3Dmm_MAX --load=3Dhello1.x -e 'set --gloss=3Dsw_gloss_generic/libgloss command-line -INITTIME' :1: component --gloss=3Dsw_gloss_generic/libgloss not found Configuration error. Aborting. [root@fedora4 bin]# ./sid --board=3Dmm_MAX --load=3Dhello1.x -e 'set --gloss=3Dhw_cpu_mep command-line -INITTIME' :1: component --gloss=3Dhw_cpu_mep not found Configuration error. Aborting. Please find the attachment file contains sid configuration file. Let me know anything wrong in the above mentioned command? Regards, Subbu. -----Original Message----- From: Frank Ch. Eigler [mailto:fche@redhat.com]=0D Sent: Thursday, January 12, 2006 6:45 PM To: Subba Krishna M N Cc: sid@sources.redhat.com Subject: Re: Need information about passing command line arguments. Hi - On Thu, Jan 12, 2006 at 11:22:42AM +0530, mnskrishna@soc-soft.com wrote: > One more request how to find GLOSS-COMPONENT, I tried --save-temps it > gives help information related to options mentioned below > [...] > --save-temps=3DFILE Write config to FILE, '-' for stdout. > [...] As the option says, you have to give "--save-temps" an argument to specify where the sid configuration file should be written to. > please let us know what is GLOSS-COMPONENT? In general, a GLOSS sid component emulates the system call / OS layer by intercepting CPUs' trap instructions. Such a component should be configured into the simulation in order for it to run "hosted" C programs that use stdio, argv[], and so on. If the "--board=3DMM_.." does not already have it, you may have to add the sid "--gloss" option, if that is a supported configuration for the MM* (mep)? family. For "GLOSS-COMPONENT" in my command line example, substitute the reference name of the gloss component instance that you will find in the sid configuration file, the one hooked up to the CPU. - FChE The information contained in this e-mail message and in any annexure is confidential to the recipient and may contain privileged information. If y= ou are not the intended recipient, please notify the sender and delete the message alo= ng with any annexure. You should not disclose, copy or otherwise use the informatio= n contained in the message or any annexure. Any views expressed in this e-mail are thos= e of the individual sender except where the sender specifically states them to be th= e views of SoCrates Software India Pvt Ltd., Bangalore.= ------_=_NextPart_001_01C6177F.41017AB5 Content-Type: application/octet-stream; name="configrun-sid" Content-Transfer-Encoding: base64 Content-Description: configrun-sid Content-Disposition: attachment; filename="configrun-sid" Content-length: 73733 OgojIEVtdWxhdGUgYSBzdGFuZGFsb25lIHNpbXVsYXRvci4gIENvbnN0cnVj dCBhIHNpZCBjb25maWd1cmF0aW9uIGZpbGUKIyBhbmQgcnVuIGl0LgoKZXZh bCAnZXhlYyBwZXJsIC1TICQwICR7MSsiJEAifScKICAgIGlmICRydW5uaW5n X3VuZGVyX3NvbWVfc2hlbGw7CiRydW5uaW5nX3VuZGVyX3NvbWVfc2hlbGwg PSAwOwoKI3VzZSBzdHJpY3Q7CnVzZSBHZXRvcHQ6Okxvbmc7CnVzZSBGaWxl OjpCYXNlbmFtZTsKcmVxdWlyZSA1LjAwNDsKCiVjcHVfY29tcHR5cGUgPSAo CgkJICJhcm0iID0+ICJody1jcHUtYXJtN3QiLAoJCSAidGh1bWIiID0+ICJo dy1jcHUtYXJtN3QiLAoJCSAieDg2IiA9PiAiaHctY3B1LXg4NiIsCgkJICJt ZXAiID0+ICJody1jcHUtbWVwIiwKCSAgICAgICAgICMgSU5TRVJUIE5FVyBF TlRSSUVTIEhFUkUKCQkgIm0zMnIiID0+ICJody1jcHUtbTMyci9kIiwKCQkg InhzdG9ybXkxNiIgPT4gImh3LWNwdS14c3Rvcm15MTYiLAoJCSApOwoKJWNw dV9kZWZhdWx0ZW5kaWFuID0gKAoJCSAgICAgICJ4ODYiID0+ICItRUwiLAoJ CSAgICAgICJtMzJyIiA9PiAiLUVCIiwKCQkgICAgICAieHN0b3JteTE2IiA9 PiAiLUVMIiwKCQkgICAgICApOwoKJWdsb3NzX2NvbXB0eXBlID0gKAoJCSAg ICJhcm0iID0+ICJzdy1nbG9zcy1hcm0vYW5nZWwiLAoJCSAgICJ0aHVtYiIg PT4gInN3LWdsb3NzLWFybS9hbmdlbCIsCgkJICAgIng4NiIgPT4gInN3LWds b3NzLWdlbmVyaWMvbGliZ2xvc3MiLAoJCSAgICJtZXAiID0+ICJzdy1nbG9z cy1nZW5lcmljL2xpYmdsb3NzIiwKCSAgICAgICAgICAgIyBJTlNFUlQgTkVX IEVOVFJJRVMgSEVSRQoJCSAgICJtMzJyIiA9PiAic3ctZ2xvc3MtbTMyci9s aWJnbG9zcyIsCgkJICAgInhzdG9ybXkxNiIgPT4gInN3LWdsb3NzLWdlbmVy aWMvbGliZ2xvc3MiLAoJCSAgICk7CgolZ2xvc3NfbWVtc3BlY3MgPSAoCgkJ ICAgImFybSIgPT4gIjB4MDAwMDAwMDAsMHgwMDgwMDAwMCIsCgkJICAgInRo dW1iIiA9PiAiMHgwMDAwMDAwMCwweDAwODAwMDAwIiwKCQkgICAieDg2IiA9 PiAiMHgwMDAwMCwweDUwMDAwMCIsCgkJICAgIm1lcCIgPT4gIjB4MDAwMDAw MDAsMHgwMDIwMDAwMDoweDAwMzAwMDAwLDB4MTAwMDAiLAoJICAgICAgICAg ICAjIElOU0VSVCBORVcgRU5UUklFUyBIRVJFCgkJICAgIm0zMnIiID0+ICIw eDAwMDAwMDAwLDB4MDA4MDAwMDAiLAoJCSAgICJ4c3Rvcm15MTYiID0+ICIw eDAwMDAwMDAwLDB4MDA4MDAwMDAiLAoJCSAgKTsKCgoKIyAtLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tCiMgQ29uc3VtZSBhcmd1bWVudCBsaXN0 Cgokb3B0X2NwdT0iIjsKJG9wdF9oZWxwPTA7CiRvcHRfdmVyc2lvbj0wOwok b3B0X3ZlcmJvc2U9MDsKJG9wdF9zYXZlX3RlbXBzPTA7CiRvcHRfbm9fcnVu PTA7CiRvcHRfdHJhY2VfZXh0cmFjdD0wOwokb3B0X3RyYWNlX3NlbWFudGlj cz0wOwokb3B0X3RyYWNlX2Rpc2Fzc2VtYmxlPTA7CiRvcHRfdHJhY2VfY291 bnRlcj0wOwokb3B0X3RyYWNlX2NvcmU9MDsKJG9wdF90cmFjZV9jb3JlX3Zp c3VhbD0wOwokb3B0X2VuYWJsZV93YXJuaW5ncz0wOwpAb3B0X21lbW9yeV9y ZWdpb24gPSAoKTsKJG9wdF9nZGI9MDsKJG9wdF9wZXJzaXN0ZW50PTA7CiRv cHRfZ3Byb2Y9MDsKJG9wdF90a3NtPTA7CiRvcHRfYm9hcmQ9Imdsb3NzLXN0 ZGlvIjsKJG9wdF9lbmdpbmU9InBiYiI7CiRvcHRfRUI9MDsKJG9wdF9FTD0w Owokb3B0X3NpZHJ0Yz0iIjsKJG9wdF9zaWRjb2RlYz0iIjsKQG9wdF93cmFw ID0gKCk7CiVvcHRfbG9hZD0oKTsKJW9wdF9nZGJwb3J0PSgpOwoKJGFueV90 Y2wgPSAwOwoKIyBzaWQgZXhlY3V0YWJsZQppZiAoJEVOVnsnU0lEJ30pIHsK ICAkc2lkPSRFTlZ7J1NJRCd9Owp9IGVsc2UgewogICRzaWQgPSBkaXJuYW1l KCQwKTsKICAkc2lkIC49ICIvc2lkIjsKfQoKJHZlcnNpb249cSRJZDogY29u ZmlncnVuLXNpZC5pbix2IDEuMTM0LjIuMSAyMDAzLzEwLzIyIDAwOjM1OjE5 IHJlbGVhc2UgRXhwICQ7CgojIGJ5IGRlZmF1bHQgdGhlIGxvYWRlciBkYXRh IG1hcHBlciBjb25uZWN0cyB0byB0aGUgY3B1LW1hcHBlciBhY2Nlc3MtcG9y dAokbG9hZF9tYXBwZXJfZGF0YSA9ICJjcHUtbWFwcGVyIGFjY2Vzcy1wb3J0 IjsKCiMgKHNlZSBwZXJsZG9jIEdldG9wdDo6TG9uZykKJW9wdGlvbnMgPSAo CgkgICAgImhlbHAhIiA9PiBbImhlbHAiLCAiUHJpbnQgdGhpcyBoZWxwIG1l c3NhZ2UuIl0sCgkgICAgInZlcnNpb24hIiA9PiBbInZlcnNpb24iLCAiUHJp bnQgd3JhcHBlciAvIHNpZCB2ZXJzaW9ucy4iXSwKCSAgICAiY3B1PXMiID0+ IFsiY3B1PUNQVSAgIChSRVFVSVJFRCkiLCAiU2VsZWN0IHRhcmdldCBwcm9j ZXNzb3IuIiwgIm5vbmUiXSwKCSAgICAidmVyYm9zZXx2ISIgPT4gWyJ2ZXJi b3NlfHYiLCAiVHVybiBvbiB2YXJpb3VzIHJ1bi10aW1lIHZlcmJvc2l0eSBz ZXR0aW5ncy4iLCAibm8iXSwKCSAgICAic2F2ZS10ZW1wcyEiID0+IFsic2F2 ZS10ZW1wcyIsICJLZWVwIGdlbmVyYXRlZCBzaWQgY29uZmlndXJhdGlvbiBm aWxlLiIsICJubyJdLAoJICAgICJ0cmFjZS1leHRyYWN0ISIgPT4gWyJ0cmFj ZS1leHRyYWN0IiwgIlR1cm4gb24gQ1BVIGluc24gZGVjb2RlIHRyYWNpbmcu IiwgIm5vIl0sCgkgICAgInRyYWNlLXNlbWFudGljcyEiID0+IFsidHJhY2Ut c2VtYW50aWNzIiwgIlR1cm4gb24gQ1BVIGluc24gZXhlY3V0ZSB0cmFjaW5n LiIsICJubyJdLAoJICAgICJ0cmFjZS1kaXNhc3NlbWJsZSEiID0+IFsidHJh Y2UtZGlzYXNzZW1ibGUiLCAiVHVybiBvbiBDUFUgaW5zbiBleGVjdXRlIGRp c2Fzc2VtYmx5LiIsICJubyJdLAoJICAgICJ0cmFjZS1jb3VudGVyISIgPT4g WyJ0cmFjZS1jb3VudGVyIiwgIlR1cm4gb24gQ1BVIGluc24gY291bnRlci4i LCAibm8iXSwKCSAgICAidHJhY2UtY29yZSEiID0+IFsidHJhY2UtY29yZSIs ICJUdXJuIG9uIGJ1cyBhY2Nlc3MgdHJhY2luZy4iLCAibm8iXSwKCSAgICAj ICJ0cmFjZS1jb3JlLXZpc3VhbCEiID0+IFsidHJhY2UtY29yZS12aXN1YWwi LCAiVHVybiBvbiB2aXN1YWwgYnVzIGFjY2VzcyB0cmFjaW5nLiIsICJubyJd LAoJICAgICJlbmFibGUtd2FybmluZ3MhIiA9PiBbImVuYWJsZS13YXJuaW5n cyIsICJFbmFibGUgQ1BVIGV4ZWN1dGlvbiB3YXJuaW5ncy4iLCAibm8iXSwK CSAgICAibWVtb3J5LXJlZ2lvbj1zQCIgPT4gWyJtZW1vcnktcmVnaW9uPUJB U0UsU0laRSIsICJBZGQgUkFNIHJlZ2lvbiBmcm9tIEJBU0UgdG8gQkFTRStT SVpFLTEuIiwgIm5vIiwKCQkJCSAgICJvdGhlciBvcHRpb25zOiIsCgkJCQkg ICAiICAgYnVzPU1BUFBFUiAgICAgQXR0YWNoIG1lbW9yeSB0byBidXMgTUFQ UEVSIiwKCQkJCSAgICIgICByZWFkLW9ubHkgICAgICBNYWtlIG1lbW9yeSBy ZWFkLW9ubHkiLAoJCQkJICAgIiAgIGFsaWFzPUJBU0UyICAgIEFkZCBhbiBh bGlhcyBhdCBCQVNFMiIsCgkJCQkgICAiICAgZmlsZT1GSUxFTkFNRSAgTG9h ZC9zYXZlIG1lbW9yeSBpbWFnZSBmcm9tIGZpbGUiLAoJCQkJICAgIiAgIG1t YXAgICAgICAgICAgIE1lbW9yeSBtYXAgZ2l2ZW4gZmlsZSIsCgkJCQkgICAi ICAgbGF0ZW5jeT1SOlcgICAgU2V0IHJlYWQsIHdyaXRlIGxhdGVuY2llcyAg WzA6MF0iLAoJCQkJICAgIiAgIGxhdGVuY3k9UlcgICAgIFNldCBib3RoIGxh dGVuY2llcyAgICAgICAgICAgWzBdIl0sCgkgICAgImdkYj1pIiA9PiBbImdk Yj1QT1JUIiwgIkFkZCBhIGdkYi9kZWJ1Z2dlciBpbnRlcmZhY2Ugb24gVENQ IHBvcnQuIiwgIiIsCgkJCSJFcXVpdmFsZW50IHRvIC0tZ2RicG9ydCBjcHU9 UE9SVC4gICAgICAgICAgIFtub25lXSJdLAoJICAgICJnZGJwb3J0PWklIiA9 PiBbImdkYnBvcnQgUFJPQ0VTU09SPVBPUlQiLCAiQWRkIGEgZ2RiL2RlYnVn Z2VyIGludGVyZmFjZSBvbiBUQ1AgcG9ydCIsICIiLAoJCQkgICAgICJmb3Ig dGhlIGdpdmVuIHByb2Nlc3Nvci4gTWF5IGJlIHNwZWNpZmllZCIsCgkJCSAg ICAgIm1vcmUgdGhhbiBvbmNlIHRvIGRlYnVnIG11bHRpcGxlIENQVXMuICAg ICAgW25vbmVdIl0sCgkgICAgInRrc2NoZWQhIiA9PiBbInRrc2NoZWQiLCAi QWRkIGEgc2ltcGxlIHZpc3VhbCBzY2hlZHVsZXIgY29udHJvbGxlci4iLCAi bm8iXSwKCSAgICAidGtzbSEiID0+IFsidGtzbSIsICJBZGQgYW4gZXhwZXJp bWVudGFsIFRrIHN5c3RlbSBtb25pdG9yLiIsICJubyJdLAoJICAgICJib2Fy ZD1zIiA9PiBbImJvYXJkPUJPQVJEIiwgIk1vZGVsIGdpdmVuIGJvYXJkIG9y IHN5c3RlbS4iLCAiZ2xvc3MiXSwKCSAgICAiZW5naW5lPXMiID0+IFsiZW5n aW5lPXNjYWNoZXxwYmIiLCAiU2V0IGdpdmVuIGNnZW4gQ1BVIGVuZ2luZS4i LCAicGJiIl0sCgkgICAgIkVCISIgPT4gWyItRUIgfCAtRUwiLCAiU2V0IHBv d2VydXAgQ1BVIG1vZGUgdG8gYmlnL2xpdHRsZSBlbmRpYW4uIiwgImF1dG8i XSwKCSAgICAiRUwhIiA9PiBbXSwKCSAgICAicGVyc2lzdGVudCEiID0+IFsi cGVyc2lzdGVudCIsICJSZXJ1biB0b3AtbGV2ZWwgbG9vcCBpbmRlZmluaXRl bHkuIiwgIm5vIl0sCgkgICAgIm5vLXJ1biEiID0+IFsibm8tcnVuIiwgIk1h a2UgY29uZmlnIGZpbGUgKC0tc2F2ZS10ZW1wcykgYW5kIGV4aXQuIiwgIm5v Il0sCgkgICAgImluc24tY291bnQ9aSIgPT4gWyJpbnNuLWNvdW50PU4iLCAi QmxvY2sgb2YgdW5pbnRlcnJ1cHRlZCB0aWNrcyBmb3IgaW5zbnMiLCAiMTAw MDAiXSwKCSAgICAiZ3Byb2YhIiA9PiBbImdwcm9mIiwgIkdQUk9GLXByb2Zp bGUsIGNvbGxlY3QgZXZlcnkgaW5zbi1jb3VudCB0aWNrcyIsICJubyJdLAoJ ICAgICJzaWRydGM9cyIgPT4gW10sCgkgICAgInNpZGNvZGVjPXMiID0+IFtd LAoJICAgICJ3cmFwPXNAIiA9PiBbIndyYXA9Q09NUE9ORU5UIiwgIlR1cm4g b24gU0lEIEFQSSB0cmFjaW5nIGZvciBuYW1lZCBjb21wb25lbnQiLCAibm9u ZSJdLAoJICAgICJsb2FkPXMlIiA9PiBbImxvYWQgUFJPQ0VTU09SPU5BTUUi LCAiU3BlY2lmeSBhbiBleGVjdXRhYmxlIHRvIGJlIGxvYWRlZCBpbnRvIiwg IiIsCgkgICAgICAgICAgICAgICAgICAiYSBzcGVjaWZpYyBwcm9jZXNzb3Iu IE1heSBiZSBzcGVjaWZpZWQgbW9yZSIsCiAgICAgICAgICAgICAgICAgICAg ICAgICAgInRoYW4gb25jZSB0byBsb2FkIG11bHRpcGxlIHByb2Nlc3NvcnMu ICBbY3B1PWV4ZWNdIl0sCgkgICAgImljYWNoZT1zIiA9PiBbImljYWNoZT1U WVBFIiwgIkFkZCBhbiBpbnN0cnVjdGlvbiBjYWNoZS4iLCAibm9uZSJdLAoJ ICAgICJkY2FjaGU9cyIgPT4gWyJkY2FjaGU9VFlQRSIsICJBZGQgYSBkYXRh IGNhY2hlLiIsICJub25lIiwKCQkJICAicmVmZXIgdG8gYW55IGV4aXN0aW5n IFwiaHctY2FjaGUtVFlQRVwiIGNvbXBvbmVudCB0eXBlIiwKCQkJICAiZS5n LiwgZGlyZWN0LzY0a2IvMzIsIDR3YXkvMjU2a2IvNjQvbHJ1Il0sCgkgICAp OwoKQG9wdGlvbnMgPSBrZXlzICglb3B0aW9ucyk7CgpzdWIgdXNhZ2Ugewog IHByaW50IFNUREVSUiAiXG5Vc2FnZTogJDAgLS1jcHU9Q1BVIFtvcHRpb24g Li5dIFstLV0gW2V4ZWMgYXJncyAuLl1cbiI7CiAgcHJpbnQgU1RERVJSICJP cHRpb25zOlxuIjsKICAKICBmb3JlYWNoICR1c2FnZV9tc2dzIChzb3J0ICh2 YWx1ZXMgJW9wdGlvbnMpKQogICAgewogICAgICBteSAkbnVtX2VudHJpZXMg PSBzY2FsYXIgKEB7JHVzYWdlX21zZ3N9KTsKICAgICAgbmV4dCBpZiAoJG51 bV9lbnRyaWVzIDwgMik7CiAgICAgIAogICAgICBteSAkb3B0aW9uID0gQHsk dXNhZ2VfbXNnc31bMF07CiAgICAgIG15ICRzeW5vcHNpcyA9IEB7JHVzYWdl X21zZ3N9WzFdOwogICAgICBteSAkZGVmYXVsdCA9IEB7JHVzYWdlX21zZ3N9 WzJdOwoKICAgICAgIyBTcGVjaWFsIGhhbmRsaW5nIGZvciBzaW5nbGUgZGFz aCBvcHRpb25zIChlZy4gLUVMKS4KICAgICAgaWYgKCRvcHRpb24gPX4gL14t LykKCXsKCSAgcHJpbnRmIFNUREVSUiAiICUtMjZzICIsICRvcHRpb247Cgl9 IGVsc2UgewoJICBwcmludGYgU1RERVJSICIgLS0lLTI0cyAiLCAkb3B0aW9u OwoJfQoKICAgICAgIyBJZiBhIGRlZmF1bHQgdmFsdWUgaGFzIGJlZW4gZ2l2 ZW4sIGRpc3BsYXkgaXQgd2l0aGluIFsgXS4KICAgICAgaWYgKCRkZWZhdWx0 IG5lICIiKQoJewoJICBteSAkd2lkdGggPSA0OCAtIGxlbmd0aCAoJGRlZmF1 bHQpOwoJICBwcmludGYgU1RERVJSICIlLSR7d2lkdGh9cyVzXG4iLCAkc3lu b3BzaXMsICJbIiAuICRkZWZhdWx0IC4gIl0iOwoJfQogICAgICBlbHNlCgl7 CgkgIHByaW50ZiBTVERFUlIgIiVzXG4iLCAkc3lub3BzaXM7Cgl9CgogICAg ICAjIFByaW50IGFueSBzdXBwbGVtZW50YXJ5IGxpbmVzIG9mIGhlbHAuCiAg ICAgIGZvciAoJGkgPSAzOyAkaSA8ICRudW1fZW50cmllczsgJGkrKykKCXsK CSAgcHJpbnRmIFNUREVSUiAiJTI4cyVzXG4iLCAiICIsIEB7JHVzYWdlX21z Z3N9WyRpXTsKCX0KICAgIH0KICBleGl0ICgwKTsKfQoKc3ViIGNvbmZpZ3Vy ZV9nbG9zcwogIHsKICAgIG15ICRib2FyZCA9ICRfWzBdOwogICAgJG1lbXNw ZWNzID0gJGdsb3NzX21lbXNwZWNzeyRvcHRfY3B1fTsKICAgIEByZWdpb25z ID0gc3BsaXQgKC86LywgJG1lbXNwZWNzKTsKICAgIGZvcmVhY2ggJHJlZ2lv biAoQHJlZ2lvbnMpCiAgICAgIHsKCXB1c2ggQG9wdF9tZW1vcnlfcmVnaW9u LCAkcmVnaW9uOwogICAgICB9CgogICAgJGdsb3NzX2NvbXBvbmVudF90eXBl ID0gJGdsb3NzX2NvbXB0eXBleyRvcHRfY3B1fSB8fCBkaWUgIlVua25vd24g Y3B1ICRvcHRfY3B1IGZvciBnbG9zcyBjb21wb25lbnQgdHlwZVxuIjsKICAg ICRmaXJzdF9zZWN0aW9uIC49ICIjIGdsb3NzXG4iIC4KICAgICAgJnNpZGNv bmZfbmV3KCIkZ2xvc3NfY29tcG9uZW50X3R5cGUiLCAiZ2xvc3MiKSAuICJc biI7CgogICAgJHNlY29uZF9zZWN0aW9uIC49ICIjIGdsb3NzCnJlbGF0ZSBn bG9zcyBjcHUgY3B1CmNvbm5lY3QtcGluIGluaXQtc2VxdWVuY2Ugb3V0cHV0 LTIgLT4gZ2xvc3MgcmVzZXQKY29ubmVjdC1waW4gY3B1IHRyYXAgPC0+IGds b3NzIHRyYXAKY29ubmVjdC1waW4gY3B1IHRyYXAtY29kZSAtPiBnbG9zcyB0 cmFwLWNvZGUKc2V0IGdsb3NzIHZlcmJvc2U/ICRvcHRfdmVyYm9zZQpjb25u ZWN0LWJ1cyBnbG9zcyB0YXJnZXQtbWVtb3J5ICRidXNfdXBzdHJlYW0KIjsK ICAgIGlmICgkb3B0X2NwdSBlcSAieDg2IikKICAgICAgewoJICRzZWNvbmRf c2VjdGlvbiAuPSAic2V0IGdsb3NzIHN5c2NhbGwtbnVtYmVyaW5nLXNjaGVt ZSBjeWdtb25cbiI7CiAgICAgIH0KCiAgICBpZiAoJCNleGVjX2FyZ3MgPj0g MCkgewogICAgICAkc2Vjb25kX3NlY3Rpb24gLj0gIiMgYXJncwpzZXQgZ2xv c3MgY29tbWFuZC1saW5lIFwiJGV4ZWMgQGV4ZWNfYXJnc1wiCiI7CiAgICB9 CgogICAgIyBwaWNrIHR0eSBvZiBjaG9pY2UKICAgIGlmICgkYm9hcmQgPX4g L3R0eS8pCiAgICAgIHsKICAgICAgICAkYW55X3RjbCA9IDE7CgogICAgICAg ICRmaXJzdF9zZWN0aW9uIC49ICIjIGdsb3NzIDwtPiB0dHlcbiIgLgoJICAg ICZzaWRjb25mX25ldygiaHctdmlzdWFsLXR0eSIsICJ0dHkiKSAuICJcbiI7 CgkgICAgJHRoaXJkX3NlY3Rpb24gLj0gIiMgZ2xvc3MgPC0+IHR0eQpyZWxh dGUgdHR5IFwiJGdsb3NzX2NvbXBvbmVudF90eXBlIGdsb3NzXCIgZ2xvc3MK IjsKICAgICAgfQoKICAgICMgY2hlY2sgaWYgZ2RiIG9wdGlvbiBpcyBub3Qg c3BlY2lmaWVkCiAgICBpZiAoJG9wdF9nZGIgPT0gMCkKICAgICAgewoJIyBn bG9zcy1zdGRpbyBvbmx5IGFsbG93ZWQgaWYgZ2RiIG5vdCBzcGVjaWZpZWQK ICAgICAgICBpZiAoJGJvYXJkID1+IC9zdGRpby8pCiAgICAgICAgICB7CiAg CSAgICAkZmlyc3Rfc2VjdGlvbiAuPSAiIyBnbG9zcyA8LT4gc3RkaW9cbiIg LgoJICAgICAgJnNpZGNvbmZfbmV3KCJzaWQtaW8tc3RkaW8iLCAic3RkaW8i KSAuICJcbiI7CgkgICAgJHNlY29uZF9zZWN0aW9uIC49ICIjIGdsb3NzIDwt PiBzdGRpbwpzZXQgaG9zdC1zY2hlZCAwLXJlZ3VsYXI/IDEKc2V0IGhvc3Qt c2NoZWQgMC10aW1lIDE1MCAjIGFwcHJ4LiBodW1hbiBwZXJjZXB0aW9uIGxp bWl0CmNvbm5lY3QtcGluIGhvc3Qtc2NoZWQgMC1ldmVudCAtPiBzdGRpbyBw b2xsCmNvbm5lY3QtcGluIGdsb3NzIGRlYnVnLXR4IC0+IHN0ZGlvIHN0ZG91 dApjb25uZWN0LXBpbiBnbG9zcyBkZWJ1Zy1yeCA8LSBzdGRpbyBzdGRpbgoi OwogICAgICAgICAgfQogICAgICAgICRzZWNvbmRfc2VjdGlvbiAuPSAiIyBn bG9zcyB3L28gZ2RiCmNvbm5lY3QtcGluIGdsb3NzIHByb2Nlc3Mtc2lnbmFs IC0+IG1haW4gc3RvcCEKY29ubmVjdC1waW4gZ2xvc3MgcHJvY2Vzcy1zaWdu YWwgLT4geWllbGQtbmV0IGlucHV0CiI7CiAgICAgIH0KICAgICMgZ2xvc3Mg Z2RiIGNvbm5lY3Rpb25zIGhhbmRsZWQgbGF0ZXIgaW4gZ2RiIHNlY3Rpb24K fQoKbXkgQEFSR1ZfQ09QWSA9IEBBUkdWOwoKIyBoYW5kbGUgYXJncwomR2V0 T3B0aW9ucyhAb3B0aW9ucyk7CgojIGhhbmRsZSB2ZXJzaW9uL2hlbHAKaWYg KCRvcHRfdmVyc2lvbikgewogIHByaW50IFNUREVSUiAiJHZlcnNpb25cbiI7 CiAgc3lzdGVtICgiJHNpZCIsICItdiIpOwogIGV4aXQgKDApOwp9CmlmICgk b3B0X2hlbHAgfHwgJG9wdF9jcHUgZXEgIiIpIHsKICAmdXNhZ2U7Cn0KCiMg aGFuZGxlIGxlZnRvdmVyIG9wdGlvbnMKJGV4ZWMgPSAkI0FSR1YgPj0gMCA/ IChzaGlmdCBAQVJHVikgOiAiIjsKQGV4ZWNfYXJncyA9ICgpOwpmb3JlYWNo ICRhcmcgKEBBUkdWKSB7CiAgIyBUaGUgZG91YmxlIHF1b3RlbWV0YSgpIGNh bGwgaXMgaW50ZW5kZWQgdG8gYWxsb3cgYXJndW1lbnRzIGNvbnRhaW5pbmcK ICAjIHdlaXJkIGNoYXJhY3RlcnMgdG8gZ28gdGhyb3VnaCBib3RoIHRoZSBj Zmdyb290IHBhcnNlciBBTkQgdGhlIHJ1bi10aW1lCiAgIyB0YXJnZXQgbGli Z2xvc3MgcGFyc2VyLgogIHB1c2ggQGV4ZWNfYXJncywgcXVvdGVtZXRhKHF1 b3RlbWV0YSgkYXJnKSk7Cn0KCiNpZiAoISRleGVjICYmICEkb3B0X2dkYikK IyAgewojICAgIHdhcm4gIkV4ZWN1dGFibGUgbmFtZSBub3Qgc3VwcGxpZWQi OwojICB9CgojIC0tbG9hZCBjcHU9PG5hbWU+IG92ZXJyaWRlcyAkZXhlYwpp ZiAoJG9wdF9sb2FkeyJjcHUifSkKewogICAgaWYgKCRleGVjICYmICRleGVj IG5lICRvcHRfbG9hZHsiY3B1In0pCiAgICB7Cgl3YXJuICItLWxvYWQgY3B1 PSIgLiAkb3B0X2xvYWR7ImNwdSJ9IC4gIiBvdmVycmlkZXMgJGV4ZWNcbiI7 CiAgICB9CiAgICAkZXhlYyA9ICRvcHRfbG9hZHsiY3B1In07Cn0KZWxzaWYg KCRleGVjKQogIHsKICAgICAgJG9wdF9sb2FkeyJjcHUifSA9ICIkZXhlYyI7 CiAgfQoKIyAtLWdkYnBvcnQgY3B1PXBvcnQgb3ZlcnJpZGVzIC0tZ2RiCmlm ICgkb3B0X2dkYnBvcnR7ImNwdSJ9KQp7CiAgICBpZiAoJG9wdF9nZGIgJiYg JG9wdF9nZGIgbmUgJG9wdF9nZGJwb3J0eyJjcHUifSkKICAgIHsKCXdhcm4g Ii0tZ2RicG9ydCBjcHU9IiAuICRvcHRfZ2RicG9ydHsiY3B1In0gLiAiIG92 ZXJyaWRlcyAtLWdkYj0kb3B0X2dkYlxuIjsKICAgIH0KICAgICRvcHRfZ2Ri ID0gJG9wdF9nZGJwb3J0eyJjcHUifTsKfQplbHNpZiAoJG9wdF9nZGIpCiAg ewogICAgICAkb3B0X2dkYnBvcnR7ImNwdSJ9ID0gJG9wdF9nZGI7CiAgfQoK aWYgKCRleGVjKQogIHsKICAgIGRpZSAiQ2Fubm90IHJlYWQgZXhlY3V0YWJs ZSBgJGV4ZWMnIiBpZiAoISAtciAkZXhlYyAmJiAhICRvcHRfbm9fcnVuKTsK ICB9CgojIGluZmVyIC0tc2F2ZS10ZW1wcyBmcm9tIC0tbm8tcnVuCmlmICgk b3B0X25vX3J1biAmJiAoISAkb3B0X3NhdmVfdGVtcHMpKQogIHsKICAgICRv cHRfc2F2ZV90ZW1wcyA9IDE7CiAgfQoKIyBpbmZlciAtLXBlcnNpc3RlbnQg ZnJvbSAtLWdkYj14eHh4CmlmICgkb3B0X2dkYikKICB7CiAgICAkb3B0X3Bl cnNpc3RlbnQgPSAxOwogIH0KCiMgY29tcGxldGUgY29tcG9uZW50IGxpYnJh cnkgbGlzdAolY29tcG9uZW50X2xpYnM9KAoJCSAiYXVkaW8iID0+ICJhdWRp b19jb21wb25lbnRfbGlicmFyeSIsCgkJICJjYWNoZSIgPT4gImNhY2hlX2Nv bXBvbmVudF9saWJyYXJ5IiwKCQkgImNnZW5jcHUiID0+ICJjZ2VuX2NvbXBv bmVudF9saWJyYXJ5IiwKCQkgImNvbnNvbGVzIiA9PiAiY29uc29sZV9jb21w b25lbnRfbGlicmFyeSIsCgkJICJnZGIiID0+ICJnZGJfY29tcG9uZW50X2xp YnJhcnkiLAoJCSAiZ2xvc3MiID0+ICJnbG9zc19jb21wb25lbnRfbGlicmFy eSIsCgkJICJnbHVlIiA9PiAiZ2x1ZV9jb21wb25lbnRfbGlicmFyeSIsCgkJ ICJpZGUiID0+ICJpZGVfY29tcG9uZW50X2xpYnJhcnkiLAoJCSAiaW50ZXJy dXB0IiA9PiAiaW50ZXJydXB0X2NvbXBvbmVudF9saWJyYXJ5IiwKCQkgImhk NDQ3ODB1IiA9PiAiaGQ0NDc4MHVfY29tcG9uZW50X2xpYnJhcnkiLAoJCSAi bG9hZGVyIiA9PiAibG9hZGVyX2NvbXBvbmVudF9saWJyYXJ5IiwKCQkgIm1h cHBlciIgPT4gIm1hcHBlcl9jb21wb25lbnRfbGlicmFyeSIsCgkJICJtZW1v cnkiID0+ICJtZW1fY29tcG9uZW50X2xpYnJhcnkiLAoJCSAibW11IiA9PiAi bW11X2NvbXBvbmVudF9saWJyYXJ5IiwKCQkgInBhcnBvcnQiID0+ICJwYXJw b3J0X2NvbXBvbmVudF9saWJyYXJ5IiwKCQkgInByb2YiID0+ICJwcm9mX2Nv bXBvbmVudF9saWJyYXJ5IiwKCQkgInJ0YyIgPT4gInJ0Y19jb21wb25lbnRf bGlicmFyeSIsCgkJICJzY2hlZCIgPT4gInNjaGVkX2NvbXBvbmVudF9saWJy YXJ5IiwKCQkgInRjbGFwaSIgPT4gInRjbF9icmlkZ2VfbGlicmFyeSIsCgkJ ICJ0aW1lcnMiID0+ICJ0aW1lcl9jb21wb25lbnRfbGlicmFyeSIsCgkJICJ1 YXJ0IiA9PiAidWFydF9jb21wb25lbnRfbGlicmFyeSIsCgkJICJ4ODYiID0+ ICJ4ODZfY29tcG9uZW50X2xpYnJhcnkiCik7CgoKIyAtLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tCiMgQ29uZmlndXJhdGlvbiBmaWxlIGNvbnN0 cnVjdGlvbgoKIyBEb24ndCBib3RoZXIgY29tcHV0ZSBhY2N1cmF0ZSB2YWx1 ZXMgaWYgY29uZmlnIGZpbGUgaXMgdGVtcG9yYXJ5CiMgYW55d2F5LgppZiAo JG9wdF9ub3J1biB8fCAkb3B0X3NhdmVfdGVtcHMpIHsKICAkd2hvYW1pPXF4 e3dob2FtaX07IGNob3AgKCR3aG9hbWkpOwogICRob3N0bmFtZT1xeHtob3N0 bmFtZX07IGNob3AgKCRob3N0bmFtZSk7CiAgJGRhdGU9cXh7ZGF0ZX07IGNo b3AgKCRkYXRlKTsKICAkdW5hbWU9cXh7dW5hbWV9OyBjaG9wICgkdW5hbWUp Owp9IGVsc2UgewogICR3aG9hbWk9IiI7CiAgJGhvc3RuYW1lPSIiOwogICRk YXRlPSIiOwogICR1bmFtZT0iIjsKfQokemVyb3RoX3NlY3Rpb24gPSAiIyBz aWQgY29uZmlndXJhdGlvbiBmaWxlCiMgY3JlYXRlZCBieSAkdmVyc2lvbgoj IHJ1biBieSAkd2hvYW1pIEAgJGhvc3RuYW1lICgkdW5hbWUpIGF0ICRkYXRl CiMgYXJnczogQEFSR1ZfQ09QWVxuIjsKCmlmICgkb3B0X3ZlcmJvc2UpIHsg JHplcm90aF9zZWN0aW9uIC49ICJzZXQgbWFpbiB2ZXJib3NlPyB0cnVlXG4i OyB9CgokY3B1X2NvbXBvbmVudF90eXBlID0gJGNwdV9jb21wdHlwZXskb3B0 X2NwdX0gfHwgZGllICJVbmtub3duIGNwdSAkb3B0X2NwdSBmb3IgY3B1IGNv bXBvbmVudCB0eXBlXG4iOwokZmlyc3Rfc2VjdGlvbiA9ICIjIGZpcnN0IHNl Y3Rpb25cbiIgLgogICZzaWRjb25mX25ldygiJGNwdV9jb21wb25lbnRfdHlw ZSIsICJjcHUiKSAuICJcbiIgLgogICZzaWRjb25mX25ldygiaHctbWFwcGVy LWJhc2ljIiwgImNwdS1tYXBwZXIiKSAuICJcbiIgLgogICZzaWRjb25mX25l dygiaHctZ2x1ZS1zZXF1ZW5jZS04IiwgImluaXQtc2VxdWVuY2UiKSAuICJc biIgLgogICZzaWRjb25mX25ldygiaHctZ2x1ZS1zZXF1ZW5jZS0xIiwgImh3 LXJlc2V0LW5ldCIpIC4gIlxuIiAuCiAgJnNpZGNvbmZfbmV3KCJody1nbHVl LXNlcXVlbmNlLTgiLCAiZGVpbml0LXNlcXVlbmNlIikgLiAiXG4iIC4KICAm c2lkY29uZl9uZXcoImh3LWdsdWUtc2VxdWVuY2UtMSIsICJ5aWVsZC1uZXQi KSAuICJcbiIgLgogICZzaWRjb25mX25ldygiaHctZ2x1ZS1zZXF1ZW5jZS0y IiwgImNhY2hlLWZsdXNoLW5ldCIpIC4gIlxuIiAuCiAgJnNpZGNvbmZfbmV3 KCJzaWQtc2NoZWQtaG9zdC1hY2N1cmF0ZSIsICJob3N0LXNjaGVkIikgLiAi XG4iIC4KICAmc2lkY29uZl9uZXcoInNpZC1zY2hlZC1zaW0iLCAidGFyZ2V0 LXNjaGVkIikgLiAiXG4iIC4KICAiIjsKCmlmICgkb3B0X3RyYWNlX2NvcmUg fHwgJG9wdF90cmFjZV9jb3JlX3Zpc3VhbCkKICB7CiAgICAkZmlyc3Rfc2Vj dGlvbiAuPSAiIyBjb3JlIHRyYWNpbmdcbiIgLgogICAgICAmc2lkY29uZl9u ZXcoImh3LWdsdWUtcHJvYmUtYnVzIiwgImJ1cy1wcm9iZSIpIC4gIlxuIjsK ICAgICRidXNfdXBzdHJlYW0gPSAiYnVzLXByb2JlIHVwc3RyZWFtIjsKICB9 CmVsc2UKICB7CiAgICAkYnVzX3Vwc3RyZWFtID0gImNwdS1tYXBwZXIgYWNj ZXNzLXBvcnQiOwogIH0KCmlmICgkb3B0X2luc25fY291bnQpCiAgewogICAg JGNwdV9pbnNuX2NvdW50ID0gJG9wdF9pbnNuX2NvdW50OwogIH0KZWxzZQog IHsKICAgICRjcHVfaW5zbl9jb3VudCA9IDEwMDAwOwogIH0KCmlmICgkb3B0 X2dwcm9mKQogIHsKICAgICRmaXJzdF9zZWN0aW9uIC49ICIjIGdwcm9mXG4i IC4KICAgICAgJnNpZGNvbmZfbmV3KCJzdy1wcm9maWxlLWdwcm9mIiwgImdw cm9mIikgLiAiXG4iOwogIH0KCiRlbmFibGVfel9wYWNrZXQgPSAiZmFsc2Ui Owokc2Vjb25kX3NlY3Rpb24gPSAiIyBzZWNvbmQgc2VjdGlvbgojIHNldHRp bmdzCnNldCBjcHUgc3RlcC1pbnNuLWNvdW50ICRjcHVfaW5zbl9jb3VudFxu IiAuCigkb3B0X3RyYWNlX3NlbWFudGljcyA/ICJzZXQgY3B1IHRyYWNlLXNl bWFudGljcz8gJG9wdF90cmFjZV9zZW1hbnRpY3NcbiIgOiAiIikgLgooJG9w dF90cmFjZV9kaXNhc3NlbWJsZSA/ICJzZXQgY3B1IHRyYWNlLWRpc2Fzc2Vt YmxlPyAkb3B0X3RyYWNlX2Rpc2Fzc2VtYmxlXG4iIDogIiIpIC4KKCRvcHRf dHJhY2VfY291bnRlciA/ICJzZXQgY3B1IHRyYWNlLWNvdW50ZXI/ICRvcHRf dHJhY2VfY291bnRlclxuIiA6ICIiKSAuCigkb3B0X3RyYWNlX2V4dHJhY3Qg PyAic2V0IGNwdSB0cmFjZS1leHRyYWN0PyAkb3B0X3RyYWNlX2V4dHJhY3Rc biIgOiAiIikgLgooJG9wdF9lbmFibGVfd2FybmluZ3MgPyAic2V0IGNwdSBl bmFibGUtd2FybmluZ3M/ICRvcHRfZW5hYmxlX3dhcm5pbmdzXG4iIDogIiIp IC4KInNldCBob3N0LXNjaGVkIG51bS1jbGllbnRzIDEwICMgbGFyZ2UgZW5v dWdoPwpzZXQgdGFyZ2V0LXNjaGVkIG51bS1jbGllbnRzIDEwICMgbGFyZ2Ug ZW5vdWdoPwojIHBpbiBjb25uZWN0aW9ucwpjb25uZWN0LXBpbiBtYWluIHBl cmZvcm0tYWN0aXZpdHkgLT4gaG9zdC1zY2hlZCBhZHZhbmNlCmNvbm5lY3Qt cGluIG1haW4gcGVyZm9ybS1hY3Rpdml0eSAtPiB0YXJnZXQtc2NoZWQgYWR2 YW5jZQpjb25uZWN0LXBpbiBtYWluIHN0YXJ0aW5nIC0+IGluaXQtc2VxdWVu Y2UgaW5wdXQKY29ubmVjdC1waW4gbWFpbiBzdG9wcGluZyAtPiBkZWluaXQt c2VxdWVuY2UgaW5wdXQKY29ubmVjdC1waW4gaW5pdC1zZXF1ZW5jZSBvdXRw dXQtMCAtPiBody1yZXNldC1uZXQgaW5wdXQKY29ubmVjdC1waW4gaHctcmVz ZXQtbmV0IG91dHB1dC0wIC0+IGNwdSByZXNldCEKc2V0IHRhcmdldC1zY2hl ZCAwLW5hbWUgXCJDUFUgc3RlcHBpbmdcIgpjb25uZWN0LXBpbiB0YXJnZXQt c2NoZWQgMC1ldmVudCAtPiBjcHUgc3RlcCEKY29ubmVjdC1waW4gdGFyZ2V0 LXNjaGVkIDAtY29udHJvbCA8LSBjcHUgc3RlcC1jeWNsZXMKY29ubmVjdC1w aW4gdGFyZ2V0LXNjaGVkIHRpbWUtcXVlcnkgPC0gY3B1IHRpbWUtcXVlcnkK Y29ubmVjdC1waW4gdGFyZ2V0LXNjaGVkIHRpbWUtaGlnaCAtPiBjcHUgdGlt ZS1oaWdoCmNvbm5lY3QtcGluIHRhcmdldC1zY2hlZCB0aW1lLWxvdyAtPiBj cHUgdGltZS1sb3cKY29ubmVjdC1waW4geWllbGQtbmV0IG91dHB1dC0wIC0+ IGNwdSB5aWVsZApjb25uZWN0LXBpbiB5aWVsZC1uZXQgb3V0cHV0LTAgLT4g aG9zdC1zY2hlZCB5aWVsZAoiOwoKaWYgKCRvcHRfaWNhY2hlKSB7CiAgJGZp cnN0X3NlY3Rpb24gLj0gJnNpZGNvbmZfbmV3KCJody1jYWNoZS0kb3B0X2lj YWNoZSIsICJpY2FjaGUiKSAuICJcbiI7CiAgJHNlY29uZF9zZWN0aW9uIC49 ICJjb25uZWN0LWJ1cyBjcHUgaW5zbi1tZW1vcnkgaWNhY2hlIHVwc3RyZWFt CmNvbm5lY3QtYnVzIGljYWNoZSBkb3duc3RyZWFtICRidXNfdXBzdHJlYW0K c2V0IGljYWNoZSByZXBvcnQtaGVhZGluZyBcImljYWNoZSBwcm9maWxlIHJl cG9ydFwiCmNvbm5lY3QtcGluIGluaXQtc2VxdWVuY2Ugb3V0cHV0LTEgLT4g aWNhY2hlIGludmFsaWRhdGUtYWxsCmNvbm5lY3QtcGluIGRlaW5pdC1zZXF1 ZW5jZSBvdXRwdXQtNiAtPiBpY2FjaGUgcmVwb3J0IQpjb25uZWN0LXBpbiBj YWNoZS1mbHVzaC1uZXQgb3V0cHV0LTAgLT4gaWNhY2hlIGZsdXNoLWFsbApj b25uZWN0LXBpbiBjYWNoZS1mbHVzaC1uZXQgb3V0cHV0LTEgLT4gaWNhY2hl IGludmFsaWRhdGUtYWxsXG4iOwogICMgJGJ1c191cHN0cmVhbSA9ICJpY2Fj aGUgdXBzdHJlYW0iOwp9IGVsc2UgewogICRzZWNvbmRfc2VjdGlvbiAuPSAi Y29ubmVjdC1idXMgY3B1IGluc24tbWVtb3J5ICRidXNfdXBzdHJlYW1cbiI7 Cn0KCmlmICgkb3B0X2RjYWNoZSkgewogICRmaXJzdF9zZWN0aW9uIC49ICZz aWRjb25mX25ldygiaHctY2FjaGUtJG9wdF9kY2FjaGUiLCAiZGNhY2hlIikg LiAiXG4iOwogICRzZWNvbmRfc2VjdGlvbiAuPSAiY29ubmVjdC1idXMgY3B1 IGRhdGEtbWVtb3J5IGRjYWNoZSB1cHN0cmVhbQpjb25uZWN0LWJ1cyBkY2Fj aGUgZG93bnN0cmVhbSAkYnVzX3Vwc3RyZWFtCnNldCBkY2FjaGUgcmVwb3J0 LWhlYWRpbmcgXCJkY2FjaGUgcHJvZmlsZSByZXBvcnRcIgpjb25uZWN0LXBp biBpbml0LXNlcXVlbmNlIG91dHB1dC0xIC0+IGRjYWNoZSBpbnZhbGlkYXRl LWFsbApjb25uZWN0LXBpbiBkZWluaXQtc2VxdWVuY2Ugb3V0cHV0LTYgLT4g ZGNhY2hlIHJlcG9ydCEKY29ubmVjdC1waW4gY2FjaGUtZmx1c2gtbmV0IG91 dHB1dC0wIC0+IGRjYWNoZSBmbHVzaC1hbGwKY29ubmVjdC1waW4gY2FjaGUt Zmx1c2gtbmV0IG91dHB1dC0xIC0+IGRjYWNoZSBpbnZhbGlkYXRlLWFsbFxu IjsKICAkYnVzX3Vwc3RyZWFtID0gImRjYWNoZSB1cHN0cmVhbSI7Cn0gZWxz ZSB7CiAgJHNlY29uZF9zZWN0aW9uIC49ICJjb25uZWN0LWJ1cyBjcHUgZGF0 YS1tZW1vcnkgJGJ1c191cHN0cmVhbVxuIjsKfQoKaWYgKCRvcHRfY3B1IGVx ICJ4ODYiKQogIHsKICAgICAgJHNlY29uZF9zZWN0aW9uIC49ICJzZXQgY3B1 IG1lbW9yeS1tb2RlIGN5Z21vblxuIjsKICB9CgppZiAoJG9wdF9ncHJvZikK ICB7CiAgICAkc2Vjb25kX3NlY3Rpb24gLj0gIiMgZ3Byb2YgY29ubmVjdGlv bnMKY29ubmVjdC1waW4gdGFyZ2V0LXNjaGVkIDAtZXZlbnQgLT4gZ3Byb2Yg c2FtcGxlCmNvbm5lY3QtcGluIGRlaW5pdC1zZXF1ZW5jZSBvdXRwdXQtNyAt PiBncHJvZiBzdG9yZQpyZWxhdGUgZ3Byb2YgdGFyZ2V0LWNvbXBvbmVudCBj cHUKY29ubmVjdC1waW4gY3B1IGNnLWNhbGxlciAtPiBncHJvZiBjZy1jYWxs ZXIKY29ubmVjdC1waW4gY3B1IGNnLWNhbGxlZSAtPiBncHJvZiBjZy1jYWxs ZWUKc2V0IGdwcm9mIHZhbHVlLWF0dHJpYnV0ZSBwYwpzZXQgZ3Byb2YgYnVj a2V0LXNpemUgNCAjIGJ5dGVzIHBlciBidWNrZXQKIjsKICAgIGlmICgkb3B0 X2NwdSBlcSAibWVwIikgewogICAgICAkc2Vjb25kX3NlY3Rpb24gLj0gInNl dCBncHJvZiBidWNrZXQtc2l6ZSAyXG4iOwogICAgfQogIH0KCmlmICgkb3B0 X3RyYWNlX2NvcmUgfHwgJG9wdF90cmFjZV9jb3JlX3Zpc3VhbCkKICB7CiAg ICAkc2Vjb25kX3NlY3Rpb24gLj0gIiMgY29yZSB0cmFjaW5nCmNvbm5lY3Qt YnVzIGJ1cy1wcm9iZSBkb3duc3RyZWFtIGNwdS1tYXBwZXIgYWNjZXNzLXBv cnQKIjsKICB9CgppZiAoJG9wdF90cmFjZV9jb3JlKQogIHsKICAgICRzZWNv bmRfc2VjdGlvbiAuPSAic2V0IGJ1cy1wcm9iZSB0cmFjZT8gMVxuIjsKICB9 CgokdGhpcmRfc2VjdGlvbiA9ICIiOwoKCiMgLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLQojIEJvYXJkLWRlcGVuZGVudCBsb2dpYwoKCmlmICgk b3B0X2JvYXJkID1+IC9waWQ3dC8pCiAgewogICAgIyBYWFg6IGluY29ycmVj dCEKICAgICMgWFhYOiB3aGF0IGFib3V0IFNSQU0sIFNTUkFNIG1lbW9yeSBy ZWdpb25zPz8/CgogICAgaWYgKCRvcHRfYm9hcmQgPX4gL2N5Z21vbi8pCiAg ICAgIHsKCWRpZSAiYm9hcmQgcGlkN3QtY3lnbW9uIG9ubHkgc3VwcG9ydGVk IGluIGxpdHRsZS1lbmRpYW4gbW9kZSAoLUVMKVxuIiB1bmxlc3MgKCRvcHRf RUwpOwoJdW5zaGlmdCBAb3B0X21lbW9yeV9yZWdpb24sICggIjB4MDQwMDAw MDAsMHgwMDEwMDAwMCxmaWxlPWFybXBpZC1jeWdtb24uaW1nLHJlYWQtb25s eSIgKTsKICAgICAgfQogICAgZWxzaWYgKCRvcHRfYm9hcmQgPX4gL2VDb3Nz dHViLykKICAgICAgewoJZGllICJib2FyZCBwaWQ3dC1lQ29zIG9ubHkgc3Vw cG9ydGVkIGluIGxpdHRsZS1lbmRpYW4gbW9kZSAoLUVMKVxuIiB1bmxlc3Mg KCRvcHRfRUwpOwoJdW5zaGlmdCBAb3B0X21lbW9yeV9yZWdpb24sICggIjB4 MDQwMDAwMDAsMHgwMDEwMDAwMCxmaWxlPWFybXBpZC1lQ29zLmltZyxyZWFk LW9ubHkiICk7CiAgICAgIH0KICAgIGlmICgkb3B0X2JvYXJkID1+IC9yZWRi b290LykKICAgICAgewoJZGllICJib2FyZCBwaWQ3dC1yZWRib290IG9ubHkg c3VwcG9ydGVkIGluIGxpdHRsZS1lbmRpYW4gbW9kZSAoLUVMKVxuIiB1bmxl c3MgKCRvcHRfRUwpOwoJdW5zaGlmdCBAb3B0X21lbW9yeV9yZWdpb24sICgg IjB4MDQwMDAwMDAsMHgwMDEwMDAwMCxmaWxlPWFybXBpZC1yZWRib290Lmlt ZyxyZWFkLW9ubHkiICk7CiAgICAgIH0KICAgIGVsc2UKICAgICAgewoJdW5z aGlmdCBAb3B0X21lbW9yeV9yZWdpb24sICggIjB4MDQwMDAwMDAsMHgwMDEw MDAwMCIgKTsgIyBkZWZhdWx0IDFNQiBST00gLSB3cml0ZWFibGUKICAgICAg fQoKICAgIHVuc2hpZnQgQG9wdF9tZW1vcnlfcmVnaW9uLCAoICIweDAwMDAw MDAwLDB4MDEwMDAwMDAiICk7ICMgZGVmYXVsdCAxNk1CIFJBTQoKICAgICRm aXJzdF9zZWN0aW9uIC49ICIjIHBpZDd0IGNvbXBvbmVudHNcbiIgLgogICAg ICAmc2lkY29uZl9uZXcoImh3LXJlbWFwL3BhdXNlLWFybS9yZWYiLCAicmVt YXBwZXIiKSAuICJcbiIgLgogICAgICAmc2lkY29uZl9uZXcoImh3LXRpbWVy LWFybS9yZWYtc2NoZWQiLCAidGltZXIxIikgLiAiXG4iIC4KICAgICAgJnNp ZGNvbmZfbmV3KCJody10aW1lci1hcm0vcmVmLXNjaGVkIiwgInRpbWVyMiIp IC4gIlxuIiAuCiAgICAgICZzaWRjb25mX25ldygiaHctaW50ZXJydXB0LWFy bS9yZWYiLCAiaW50Y3RybCIpIC4gIlxuIiAuCiAgICAgICZzaWRjb25mX25l dygiaHctdWFydC1uczE2NTUwIiwgInVhcnQxIikgLiAiXG4iIC4KICAgICAg JnNpZGNvbmZfbmV3KCJody11YXJ0LW5zMTY1NTAiLCAidWFydDIiKSAuICJc biIgLgogICAgICAmc2lkY29uZl9uZXcoImh3LXBhcnBvcnQtcHMvMiIsICJw YXJwb3J0IikgLiAiXG4iIC4KICAgICAgIiI7CgogICAgJHNlY29uZF9zZWN0 aW9uIC49ICIjIHBpZDd0IGNvbnRyb2wgY29ubmVjdGlvbnMKY29ubmVjdC1w aW4gdGFyZ2V0LXNjaGVkIDItY29udHJvbCA8LSB0aW1lcjEgZGl2aWRlZC1j bG9jay1jb250cm9sCmNvbm5lY3QtcGluIHRhcmdldC1zY2hlZCAyLWV2ZW50 IC0+IHRpbWVyMSBkaXZpZGVkLWNsb2NrLWV2ZW50CnNldCB0YXJnZXQtc2No ZWQgMi1zY2FsZSAxLzQgICMgYXJ0aWZpY2lhbCBzcGVlZC11cApjb25uZWN0 LXBpbiB0aW1lcjEgaW50ZXJydXB0IC0+IGludGN0cmwgaW50ZXJydXB0LXNv dXJjZS00CmNvbm5lY3QtcGluIHRhcmdldC1zY2hlZCAzLWNvbnRyb2wgPC0g dGltZXIyIGRpdmlkZWQtY2xvY2stY29udHJvbApjb25uZWN0LXBpbiB0YXJn ZXQtc2NoZWQgMy1ldmVudCAtPiB0aW1lcjIgZGl2aWRlZC1jbG9jay1ldmVu dApzZXQgdGFyZ2V0LXNjaGVkIDMtc2NhbGUgMS80ICAjIGFydGlmaWNpYWwg c3BlZWQtdXAKY29ubmVjdC1waW4gdGltZXIyIGludGVycnVwdCAtPiBpbnRj dHJsIGludGVycnVwdC1zb3VyY2UtNQpjb25uZWN0LXBpbiBpbnRjdHJsIGlu dGVycnVwdCAtPiBjcHUgbmlycQpjb25uZWN0LXBpbiBpbnRjdHJsIGZhc3Qt aW50ZXJydXB0IC0+IGNwdSBuZmlxCmNvbm5lY3QtcGluIGh3LXJlc2V0LW5l dCBvdXRwdXQtMCAtPiB1YXJ0MSBSZXNldApjb25uZWN0LXBpbiBody1yZXNl dC1uZXQgb3V0cHV0LTAgLT4gdWFydDIgUmVzZXQKY29ubmVjdC1waW4gaHct cmVzZXQtbmV0IG91dHB1dC0wIC0+IGludGN0cmwgcmVzZXQKY29ubmVjdC1w aW4gaHctcmVzZXQtbmV0IG91dHB1dC0wIC0+IHRpbWVyMSByZXNldApjb25u ZWN0LXBpbiBody1yZXNldC1uZXQgb3V0cHV0LTAgLT4gdGltZXIyIHJlc2V0 CmNvbm5lY3QtcGluIHVhcnQxIElOVFIgLT4gaW50Y3RybCBpbnRlcnJ1cHQt c291cmNlLTgKY29ubmVjdC1waW4gdWFydDIgSU5UUiAtPiBpbnRjdHJsIGlu dGVycnVwdC1zb3VyY2UtOQpjb25uZWN0LXBpbiBwYXJwb3J0IElOVFAgLT4g aW50Y3RybCBpbnRlcnJ1cHQtc291cmNlLTEwCiMgcGlkN3QgbWVtb3J5IG1h cApjb25uZWN0LWJ1cyBjcHUtbWFwcGVyIGludGN0cmw6WzB4QTAwMDAwMCww eEEwMDAwMTNdIGludGN0cmwgaXJxLXJlZ2lzdGVycwpjb25uZWN0LWJ1cyBj cHUtbWFwcGVyIGludGN0cmw6WzB4QTAwMDEwMCwweEEwMDAxMEZdIGludGN0 cmwgZmlxLXJlZ2lzdGVycwpjb25uZWN0LWJ1cyBjcHUtbWFwcGVyIHRpbWVy MTpbMHhBODAwMDAwLDB4QTgwMDAwRl0gdGltZXIxIHJlZ2lzdGVycwpjb25u ZWN0LWJ1cyBjcHUtbWFwcGVyIHRpbWVyMjpbMHhBODAwMDIwLDB4QTgwMDAy Rl0gdGltZXIyIHJlZ2lzdGVycwpjb25uZWN0LWJ1cyBjcHUtbWFwcGVyIHJl bWFwcGVyOlsweEIwMDAwMDAsMHhCMDAwMDM3XSByZW1hcHBlciByZWdpc3Rl cnMKY29ubmVjdC1idXMgY3B1LW1hcHBlciB1YXJ0MTpbMHhEODAwMDAwLDB4 RDgwMDAxRiw0LDFdIHVhcnQxIEJ1cwpjb25uZWN0LWJ1cyBjcHUtbWFwcGVy IHVhcnQyOlsweEQ4MDAwMjAsMHhEODAwMDNGLDQsMV0gdWFydDIgQnVzCmNv bm5lY3QtYnVzIGNwdS1tYXBwZXIgcGFycG9ydDpbMHhEODAwMDQwLDB4RDgw MDA1Riw0LDFdIHBhcnBvcnQgQnVzCiMgc2V0IHVhcnQgdW5mcmFtZWQgbW9k ZQpzZXQgdWFydDEgc2lvLWZyYW1pbmc/IDAKc2V0IHVhcnQyIHNpby1mcmFt aW5nPyAwCiMgcmVtYXBwZXIgY29uZmlndXJhdGlvbgojIE5COiByZW1hcHBp bmcgcG9sYXJpdHkgaXMgb3Bwb3NpdGUgdG8gZG9jdW1lbnQKc2V0IHJlbWFw cGVyIG51bS1yZWxvY2F0aW9ucyAxCnNldCByZW1hcHBlciAwLXN0YXJ0IDB4 MApzZXQgcmVtYXBwZXIgMC1lbmQgMHhGRkZGCnNldCByZW1hcHBlciAwLXJl bG9jLXRvIDB4MDQwMDAwMDAKIjsKCiAgICAjIHJlY29ubmVjdCBidXMgbWFz dGVycyB0byBwYXNzIHRocm91Z2ggcmVtYXBwZXIKICAgICR0aGlyZF9zZWN0 aW9uIC49ICIjIHJlbWFwcGVyIHJlY29ubmVjdGlvbgpjb25uZWN0LWJ1cyBy ZW1hcHBlciBhbGwgJGJ1c191cHN0cmVhbQpkaXNjb25uZWN0LWJ1cyBjcHUg aW5zbi1tZW1vcnkgJGJ1c191cHN0cmVhbQpjb25uZWN0LWJ1cyBjcHUgaW5z bi1tZW1vcnkgcmVtYXBwZXIgYWNjZXNzLXBvcnQKZGlzY29ubmVjdC1idXMg Y3B1IGRhdGEtbWVtb3J5ICRidXNfdXBzdHJlYW0KY29ubmVjdC1idXMgY3B1 IGRhdGEtbWVtb3J5IHJlbWFwcGVyIGFjY2Vzcy1wb3J0CiI7CgogICAgIyBj cmVhdGUgdWFydCA8LT4gcmVhbCB3b3JsZCBjb25uZWN0aW9ucwogICAgaWYg KCRvcHRfYm9hcmQgPX4gL25vcm1hbG1hcC8pCiAgICAgIHsKICAgICR0aGly ZF9zZWN0aW9uIC49ICIjIGRpc2FibGUgcmVtYXBwZXIKc2V0IHJlbWFwcGVy IHJlbWFwcGluZz8gbm8KIjsKICAgICAgfQoKICAgICAgIyBwdWxsIGluIHRo aXMgY29uZmlndXJhdGlvbi4KICAgICAgIGNvbmZpZ3VyZV91YXJ0MV91YXJ0 MigpOwogIH0KZWxzaWYgKCRvcHRfYm9hcmQgPX4gL15jbWExMTAvKQogIHsK ICAgICMgbWlzc2luZzoKICAgICMgUFMvMiBrYmQvbXMsIFBDSSwgZmxhc2gs IGdsb3NzCgogICAgdW5zaGlmdCBAb3B0X21lbW9yeV9yZWdpb24sICggIjB4 MDAwMDAwMDAsMHgwMDgwMDAwMCIgKTsgIyBkZWZhdWx0IDhNQiBSQU0KICAg IGlmICgkb3B0X2JvYXJkID1+IC86Y21hMjIyLykKICAgICAgewoKICAgICAg ICAkZmlyc3Rfc2VjdGlvbiAuPSAiIyBjbWExMTAvY21hMjIyIHNwZWNpZmlj IHBhcnRzXG4iIC4KCSAgJnNpZGNvbmZfbmV3KCJody10aW1lci1hcm0vcmVm LXNjaGVkIiwgInRpbWVyIikgLiAiXG4iIC4KCSAgJnNpZGNvbmZfbmV3KCJo dy1pbnRlcnJ1cHQtY29nZW50L2NtYTIyMiIsICJpbnRjdHJsIikgLiAiXG4i IC4KCSAgIiI7CgogICAgICAgICRzZWNvbmRfc2VjdGlvbiAuPSAiIyBjbWEy MjIgY29udHJvbCBjb25uZWN0aW9ucwpjb25uZWN0LXBpbiB0YXJnZXQtc2No ZWQgMi1jb250cm9sIDwtIHRpbWVyIGRpdmlkZWQtY2xvY2stY29udHJvbApj b25uZWN0LXBpbiB0YXJnZXQtc2NoZWQgMi1ldmVudCAtPiB0aW1lciBkaXZp ZGVkLWNsb2NrLWV2ZW50CmNvbm5lY3QtcGluIHRpbWVyIGludGVycnVwdCAt PiBpbnRjdHJsIGludGVycnVwdC1zb3VyY2UtNApjb25uZWN0LXBpbiBpbnRj dHJsIGludGVycnVwdCAtPiBjcHUgbmlycQojIGNvbm5lY3QgdGhlIG9uLWNw dSBib2FyZCBkZXZpY2VzCmNvbm5lY3QtYnVzIGNwdS1tYXBwZXIgaW50Y3Ry bDpbMHhGNjAwMDAwLDB4RjYwMDAzN10gaW50Y3RybCBpcnEtcmVnaXN0ZXJz CmNvbm5lY3QtYnVzIGNwdS1tYXBwZXIgdGltZXI6WzB4RjcwMDAyMCwweEY3 MDAwM0ZdIHRpbWVyIHJlZ2lzdGVycwoiOwogICAgICB9CiAgICBlbHNlCiAg ICAgIHsKICAgICAgICBkaWUgIlVua25vd24gYm9hcmQgYCRvcHRfYm9hcmQn XG4iOwogICAgICB9CgogICAgJGZpcnN0X3NlY3Rpb24gLj0gIiMgY21hMTEw IGNvbW1vbiBwYXJ0c1xuIiAuCiAgICAgICZzaWRjb25mX25ldygiaHctdWFy dC1uczE2NTUwIiwgInVhcnQxIikgLiAiXG4iIC4KICAgICAgJnNpZGNvbmZf bmV3KCJody11YXJ0LW5zMTY1NTAiLCAidWFydDIiKSAuICJcbiIgLgogICAg ICAmc2lkY29uZl9uZXcoImh3LXBhcnBvcnQtcHMvMiIsICJwYXJwb3J0Iikg LiAiXG4iIC4KICAgICAgJnNpZGNvbmZfbmV3KCJody1ydGMtZHMxNjQyIiwg InJ0YyIpIC4gIlxuIiAuCiAgICAgICZzaWRjb25mX25ldygiaHctbGNkLWhk NDQ3ODB1LWEwMiIsICJsY2QiKSAuICJcbiIgLgogICAgICAmc2lkY29uZl9u ZXcoImh3LXZpc3VhbC1sY2QiLCAiZGlzcGxheSIpIC4gIlxuIiAuCiAgICAg ICIiOwoKICAgICRzZWNvbmRfc2VjdGlvbiAuPSAiIyBjbWExMTAgY29udHJv bCBjb25uZWN0aW9ucwpjb25uZWN0LXBpbiBody1yZXNldC1uZXQgb3V0cHV0 LTAgLT4gdWFydDEgUmVzZXQKY29ubmVjdC1waW4gaHctcmVzZXQtbmV0IG91 dHB1dC0wIC0+IHVhcnQyIFJlc2V0CmNvbm5lY3QtcGluIGh3LXJlc2V0LW5l dCBvdXRwdXQtMCAtPiB0aW1lciByZXNldApjb25uZWN0LXBpbiB1YXJ0MSBJ TlRSIC0+IGludGN0cmwgaW50ZXJydXB0LXNvdXJjZS0yCmNvbm5lY3QtcGlu IHVhcnQyIElOVFIgLT4gaW50Y3RybCBpbnRlcnJ1cHQtc291cmNlLTEKY29u bmVjdC1waW4gcGFycG9ydCBJTlRQIC0+IGludGN0cmwgaW50ZXJydXB0LXNv dXJjZS00CiMgY29uZmlndXJlIHRoZSBjbG9jawpzZXQgaG9zdC1zY2hlZCBu dW0tY2xpZW50cyAxMApzZXQgaG9zdC1zY2hlZCAwLXJlZ3VsYXI/IDEKc2V0 IGhvc3Qtc2NoZWQgMC10aW1lIDEwMDAgIyAxIHNlYwpjb25uZWN0LXBpbiBo b3N0LXNjaGVkIDAtZXZlbnQgLT4gcnRjIGNsb2NrCmNvbm5lY3QtcGluIHJ0 YyBjbG9jay1jb250cm9sIC0+IGhvc3Qtc2NoZWQgMS1jb250cm9sCmNvbm5l Y3QtcGluIHJ0YyBjbG9jay1ldmVudCA8LSBob3N0LXNjaGVkIDEtZXZlbnQK IyBjb25maWd1cmUgdGhlIGxjZAojc2V0IGRpc3BsYXkgd2lkdGggNDAgIyA4 IGNoYXJzIFggNSBwaXhlbHMgcGVyIGNoYXIKIyBub3RlIHRoYXQgaHctbGNk LWhkNDQ3ODB1IG1heSBub3Qgc3VwcG9ydCB3aWR0aCBvZiA4MDsgdGhpcyBi b2FyZAojIGhhcyBvbmUgdGhvdWdoLgpzZXQgZGlzcGxheSB3aWR0aCA4MCAj IDE2IGNoYXJzIFggNSBwaXhlbHMgcGVyIGNoYXIKc2V0IGRpc3BsYXkgaGVp Z2h0IDE2ICMgdHdvIGxpbmVzIG9mIDggcGl4ZWxzCmNvbm5lY3QtcGluIGhv c3Qtc2NoZWQgOS1ldmVudCAtPiBsY2QgcmVmcmVzaC1zeW5jLWV2ZW50CmNv bm5lY3QtcGluIGhvc3Qtc2NoZWQgOS1jb250cm9sIDwtIGxjZCByZWZyZXNo LXN5bmMtY29udHJvbApjb25uZWN0LXBpbiBsY2Qgcm93LWNvbCAtPiBkaXNw bGF5IHJvdy1jb2wKY29ubmVjdC1waW4gbGNkIEZSIC0+IGRpc3BsYXkgRlIK IyBtZW1vcnkgbWFwCiMgOE1CIG1haW4gbWVtb3J5CiNjb25uZWN0LWJ1cyBQ Q0kgcGNpYnVzOlsweDQwMDAwMDAsMHg1RkVGRkZGXSBwY2lidXMgY29uZmln LXNwYWNlCiNjb25uZWN0LWJ1cyA/Pz8gPz8/Pz8/OlsweDVGRjAwMDAsMHg1 RkZGRkZGXSB2MzYwZXBjIHJlZ2lzdGVycwojIEFSTSBFUFJPTS9GTEFTSCBt ZW1vcnkKY29ubmVjdC1idXMgY3B1LW1hcHBlciBydGM6WzB4RTgwMDAwMCww eEU4MDNGRkZdIHJ0YyByZWFkLXdyaXRlLXBvcnQKY29ubmVjdC1idXMgY3B1 LW1hcHBlciB1YXJ0MTpbMHhFOTAwMDAwLDB4RTkwMDAxRiw0LDFdIHVhcnQx IEJ1cwpjb25uZWN0LWJ1cyBjcHUtbWFwcGVyIHVhcnQyOlsweEU5MDAwMjAs MHhFOTAwMDNGLDQsMV0gdWFydDIgQnVzCmNvbm5lY3QtYnVzIGNwdS1tYXBw ZXIgcGFycG9ydDpbMHhFOTAwMDgwLDB4RTkwMDA5Riw0LDFdIHBhcnBvcnQg QnVzCiMga2JkL21zCmNvbm5lY3QtYnVzIGNwdS1tYXBwZXIgbGNkOlsweEU5 MDAxMDAsMHhFOTAwMTBGLDQsMV0gbGNkIGJ1cwojIERJUCBzd2l0Y2hlcwoj Y29ubmVjdC1idXMgUENJIHBjaWJ1czpbMHhGMjAwMDAwLDB4RjJGRkZGRl0g cGNpYnVzIGNvbnRyb2wtcmVnaXN0ZXJzCiMgc2V0IHVhcnQgdW5mcmFtZWQg bW9kZQpzZXQgdWFydDEgc2lvLWZyYW1pbmc/IDAKc2V0IHVhcnQyIHNpby1m cmFtaW5nPyAwCiI7CgogICAgIyBwdWxsIGluIHRoaXMgY29uZmlndXJhdGlv bi4KICAgIGNvbmZpZ3VyZV91YXJ0MV91YXJ0MigpOwoKICB9CmVsc2lmICgk b3B0X2NwdSBlcSAibWVwIiAmJiAoJG9wdF9ib2FyZCBuZSAiZ2xvc3Mtc3Rk aW8iKSkKICB7CiAgICAjIEZhbGxiYWNrIGRlZmF1bHRzIGZvciBpbmNvbXBs ZXRlIGNvbmZpZ3VyYXRpb25zCiAgICAkbWVwY2ZnX2luZGV4ID0gLTE7ICMg ZmxhZyB0byBkZXRlY3QgbWF0Y2gKICAgICRtZXBjZmdfY29yZV9pZCA9IDA7 CiAgICAkbWVwY2ZnX2NvcmVfcmV2ID0gMTsKICAgICRtZXBjZmdfaW1lbV9z aXplID0gMDsKICAgICRtZXBjZmdfZG1lbV9zaXplID0gMDsKICAgICRtZXBj ZmdfaWNhY2hlX3NpemUgPSAwOwogICAgJG1lcGNmZ19pY2FjaGVfd2F5ID0g MTsKICAgICRtZXBjZmdfaWNhY2hlX2xpbmVfc2l6ZSA9IDMyOwogICAgJG1l cGNmZ19kY2FjaGVfc2l6ZSA9IDA7CiAgICAkbWVwY2ZnX2RjYWNoZV93YXkg PSAxOwogICAgJG1lcGNmZ19kY2FjaGVfbGluZV9zaXplID0gMzI7CiAgICAk bWVwY2ZnX2RzdSA9IDA7CiAgICAkbWVwY2ZnX2ludGNfY2hhbm5lbF9iaXR3 ID0gMzI7CiAgICAkbWVwY2ZnX2ludGMgPSAwOwogICAgJG1lcGNmZ19kbWFj ID0gMDsKICAgICRtZXBjZmdfY29wX3ZsaXdfYml0dyA9IDA7CiAgICAkbWVw Y2ZnX29wdF9hYnMgPSAwOwogICAgJG1lcGNmZ19vcHRfYXZlID0gMDsKICAg ICRtZXBjZmdfb3B0X2JpdCA9IDA7CiAgICAkbWVwY2ZnX29wdF9jbGlwID0g MDsKICAgICRtZXBjZmdfb3B0X2NwID0gMDsKICAgICRtZXBjZmdfb3B0X2Rp diA9IDA7CiAgICAkbWVwY2ZnX29wdF9sZHogPSAwOwogICAgJG1lcGNmZ19v cHRfbWluID0gMDsKICAgICRtZXBjZmdfb3B0X211bCA9IDA7CiAgICAkbWVw Y2ZnX29wdF9zYXQgPSAwOwogICAgJG1lcGNmZ19kc3AgPSAwOwogICAgJG1l cGNmZ191Y2kgPSAwOwogICAgQG1lcF9ib2FyZHMgPSAoKTsKCiAgICAjIGJl Z2luLW1lcGNmZ3Rvb2wtY3VzdG9taXphdGlvbgogICAgcHVzaCBAbWVwX2Jv YXJkcywgImNjZngiOwogICAgaWYgKCRvcHRfYm9hcmQgPX4gL2NjZngvKSB7 CiAgICAgICRtZXBjZmdfaW5kZXggPSAxOwogICAgICAkbWVwY2ZnX2ltZW1f c2l6ZSA9IDE2OwogICAgICAkbWVwY2ZnX2RtZW1fc2l6ZSA9IDMyOwogICAg ICAkbWVwY2ZnX2ljYWNoZV9zaXplID0gMTY7CiAgICAgICRtZXBjZmdfaWNh Y2hlX3dheSA9IDE7CiAgICAgICRtZXBjZmdfaWNhY2hlX2xpbmVfc2l6ZSA9 IDMyOwogICAgICAkbWVwY2ZnX2RjYWNoZV9zaXplID0gMTY7CiAgICAgICRt ZXBjZmdfZGNhY2hlX3dheSA9IDE7CiAgICAgICRtZXBjZmdfZGNhY2hlX2xp bmVfc2l6ZSA9IDMyOwogICAgICAkbWVwY2ZnX2ludGNfY2hhbm5lbF9iaXR3 ID0gMTY7CiAgICAgICRtZXBjZmdfb3B0X2NwID0gMTsKICAgICAgJG1lcGNm Z19jb3Bfdmxpd19iaXR3ID0gNjQ7CiAgICAgICRtZXBjZmdfb3B0X2FicyA9 IDE7CiAgICAgICRtZXBjZmdfb3B0X2F2ZSA9IDE7CiAgICAgICRtZXBjZmdf b3B0X2JpdCA9IDE7CiAgICAgICRtZXBjZmdfb3B0X2NscCA9IDE7CiAgICAg ICRtZXBjZmdfb3B0X2RpdiA9IDE7CiAgICAgICRtZXBjZmdfb3B0X2xkeiA9 IDE7CiAgICAgICRtZXBjZmdfb3B0X21pbiA9IDE7CiAgICAgICRtZXBjZmdf b3B0X211bCA9IDE7CiAgICAgICRtZXBjZmdfb3B0X3NhdCA9IDE7CiAgICAg ICRtZXBjZmdfZW5kaWFuID0gImJpZyI7CiAgICAgICRtZXBjZmdfaW50YyA9 IDE7CiAgICAgICRtZXBjZmdfZHN1ID0gMTsKICAgICAgJG1lcGNmZ19kbWFj ID0gMTsKICAgICAgJG1lcGNmZ19kc3AgPSAxOwogICAgICAkbWVwY2ZnX3Vj aSA9IDE7CiAgICB9CiAgICAjIGVuZC1tZXBjZmd0b29sLWN1c3RvbWl6YXRp b24KICAgIGlmICgkbWVwY2ZnX2luZGV4ID09IC0xKQogICAgICB7CglkaWUg KCJVbmtub3duIC0tYm9hcmQ9JHtvcHRfYm9hcmR9LCBrbm93bjogQG1lcF9i b2FyZHNcbiIpOwogICAgICB9CgogICAgIyBFd3csIHVnbHkgaGFjayB0byBj aGFuZ2UgImh3LWNwdS1tZXAiIGluICRmaXJzdF9zZWN0aW9uIHRvCiAgICAj ICJody1jcHUtbWVwLWV4dE5OTiIgZm9yIE5OTj0kbWVwY2ZnX2luZGV4CiAg ICAkZmlyc3Rfc2VjdGlvbiA9fiBzfG5ldyBody1jcHUtbWVwfG5ldyBody1j cHUtbWVwLWV4dCRtZXBjZmdfaW5kZXh8OwoKICAgICMgY3B1IGF0dHJpYnV0 ZXMKICAgIGlmICgkbWVwY2ZnX2VuZGlhbiBlcSAiYmlnIikgeyAkb3B0X0VC ID0gMTsgfQogICAgZWxzaWYgKCRtZXBjZmdfZW5kaWFuIGVxICJsaXR0bGUi KSB7ICRvcHRfRUwgPSAxOyB9CgogICAgJGNzcjE3ID0gKCgkbWVwY2ZnX2Nv cmVfaWQgPDwgMTYpIHwgKDEgPDwgOCkgfCAkbWVwY2ZnX2NvcmVfcmV2KTsK ICAgICRzZWNvbmRfc2VjdGlvbiAuPSAic2V0IGNwdSBjc3IxNyAkY3NyMTdc biI7CgogICAgJHNlY29uZF9zZWN0aW9uIC49ICJzZXQgY3B1IGFicy1vcHRp b24/ICIgLiAoJG1lcGNmZ19vcHRfYWJzKSAuICJcbiI7CiAgICAkc2Vjb25k X3NlY3Rpb24gLj0gInNldCBjcHUgYXZlLW9wdGlvbj8gIiAuICgkbWVwY2Zn X29wdF9hdmUpIC4gIlxuIjsKICAgICRzZWNvbmRfc2VjdGlvbiAuPSAic2V0 IGNwdSBiaXQtb3B0aW9uPyAiIC4gKCRtZXBjZmdfb3B0X2JpdCkgLiAiXG4i OwogICAgJHNlY29uZF9zZWN0aW9uIC49ICJzZXQgY3B1IGNsaXAtb3B0aW9u PyAiIC4gKCRtZXBjZmdfb3B0X2NsaXApIC4gIlxuIjsKICAgICRzZWNvbmRf c2VjdGlvbiAuPSAic2V0IGNwdSBjcC1vcHRpb24/ICIgLiAgKCRtZXBjZmdf b3B0X2NwKSAuICJcbiI7CiAgICAkc2Vjb25kX3NlY3Rpb24gLj0gInNldCBj cHUgZGl2LW9wdGlvbj8gIiAuICgkbWVwY2ZnX29wdF9kaXYpIC4gIlxuIjsK ICAgICRzZWNvbmRfc2VjdGlvbiAuPSAic2V0IGNwdSBsZHotb3B0aW9uPyAi IC4gKCRtZXBjZmdfb3B0X2xkeikgLiAiXG4iOwogICAgJHNlY29uZF9zZWN0 aW9uIC49ICJzZXQgY3B1IG1pbm1heC1vcHRpb24/ICIgLiAoJG1lcGNmZ19v cHRfbWluKSAuICJcbiI7CiAgICAkc2Vjb25kX3NlY3Rpb24gLj0gInNldCBj cHUgbXVsLW9wdGlvbj8gIiAuICgkbWVwY2ZnX29wdF9tdWwpIC4gIlxuIjsK ICAgICRzZWNvbmRfc2VjdGlvbiAuPSAic2V0IGNwdSBzYXQtb3B0aW9uPyAi IC4gKCRtZXBjZmdfb3B0X3NhdCkgLiAiXG4iOwoKICAgICRzZWNvbmRfc2Vj dGlvbiAuPSAic2V0IGNwdSBkZWJ1Zy1vcHRpb24/ICIgLiAoJG1lcGNmZ19k c3UpIC4gIlxuIjsKICAgICRzZWNvbmRfc2VjdGlvbiAuPSAic2V0IGNwdSBk c3Atb3B0aW9uPyAiIC4gKCRtZXBjZmdfZHNwKSAuICJcbiI7CiAgICAkc2Vj b25kX3NlY3Rpb24gLj0gInNldCBjcHUgdWNpLW9wdGlvbj8gIiAuICgkbWVw Y2ZnX3VjaSkgLiAiXG4iOwoKICAgICRzZWNvbmRfc2VjdGlvbiAuPSAic2V0 IGNwdSB2bGl3MzItb3B0aW9uPyAiIC4gKCRtZXBjZmdfY29wX3ZsaXdfYml0 cyA9PSAzMiA/IDEgOiAwKSAuICJcbiI7CiAgICAkc2Vjb25kX3NlY3Rpb24g Lj0gInNldCBjcHUgdmxpdzY0LW9wdGlvbj8gIiAuICgkbWVwY2ZnX2NvcF92 bGl3X2JpdHMgPT0gNjQgPyAxIDogMCkgLiAiXG4iOwoKICAgICMgZG1lbS9p bWVtIGNhbGN1bGF0aW9uczsgc2VlIG1lcCBSQ0ZHIGRlZmluaXRpb24gYW5k IG1lbW9yeSBsYXlvdXQgY2hhcHRlcgogICAgJG1lcF9pbWVtX2Jhc2UgPSAo JG1lcGNmZ19pbWVtX3NpemUgPT0gMCA/IDAgOiAweDAwMjAwMDAwKTsKICAg ICRtZXBfaW1lbV9zaXplID0gMTAyNCAqICRtZXBjZmdfaW1lbV9zaXplOwog ICAgJG1lcF9kbWVtX2Jhc2UgPSAoKCRtZXBjZmdfZG1lbV9zaXplID09IDAp ID8gMCA6CgkJICAgICAgKCRtZXBjZmdfaW1lbV9zaXplID09IDApID8gMHgw MDIwMDAwMCA6CgkJICAgICAgKCRtZXBjZmdfZG1lbV9zaXplID4gMTYpID8g MHgwMDIwODAwMCA6CgkJICAgICAgKCRtZXBjZmdfaW1lbV9zaXplID49IDEy KSA/IDB4MDAyMDQwMDAgOgoJCSAgICAgICgkbWVwY2ZnX2RtZW1fc2l6ZSA8 PSA4KSA/IDB4MDAyMDIwMDAgOgoJCSAgICAgICgkbWVwY2ZnX2RtZW1fc2l6 ZSA8PSAxNikgPyAweDAwMjA0MDAwIDoKCQkgICAgICAweGRlYWRiZWVmKTsg IyBjYW4ndCBoYXBwZW4KCiAgICAkbWVwX2RtZW1fYmFuazBfYmFzZSA9ICRt ZXBfZG1lbV9iYXNlOwogICAgJG1lcF9kbWVtX2JhbmsxX2Jhc2UgPSAkbWVw X2RtZW1fYmFzZSArIDEwMjQgKiAoJG1lcGNmZ19kbWVtX3NpemUgPT0gNiA/ IDQgOgoJCQkJCQkgICAgJG1lcGNmZ19kbWVtX3NpemUgPT0gMTIgPyA4IDoK CQkJCQkJICAgICRtZXBjZmdfZG1lbV9zaXplID09IDI0ID8gMTYgOgoJCQkJ CQkgICAgJG1lcGNmZ19kbWVtX3NpemUgLyAyKTsKICAgICRtZXBfZG1lbV9i YW5rMF9zaXplID0gMTAyNCAqICRtZXBjZmdfZG1lbV9zaXplIC8gMjsKICAg ICRtZXBfZG1lbV9iYW5rMV9zaXplID0gMTAyNCAqICRtZXBjZmdfZG1lbV9z aXplIC8gMjsKCiAgICAjIFRoZXNlIGFyZSBjb21wbGV4IGJpdGZpZWxkczoK ICAgICMgTENGRzogbG9jYWwgbWVtb3J5IGNvbmZpZ3VyYXRpb24KICAgICRj c3IyNyA9ICgweDAxMDAwMTAwIHwgIyBmaXhlZCBiaXRzCgkgICAgICAoJG1l cGNmZ19pbWVtX3NpemUgPDwgMTYpIHwgIyBJUlNaCgkgICAgICAoJG1lcGNm Z19kbWVtX3NpemUgPDwgMCkgfCAjIERSU1oKCSAgICAgICgoJG1lcF9kbWVt X2Jhc2UgPj4gMTIpICYgMHhmKSk7ICMgRFJCQQogICAgJHNlY29uZF9zZWN0 aW9uIC49ICJzZXQgY3B1IGNzcjI3ICRjc3IyN1xuIjsKCiAgICAjIENDRkc6 IGNhY2hlIG1lbW9yeSBjb25maWd1cmF0aW9uCiAgICAkY3NyMjggPSAoMHgw MDAwMDAwMCB8ICMgbm8gZml4ZWQgYml0cwoJICAgICAgKCRtZXBjZmdfaWNh Y2hlX3NpemUgPDwgMTYpIHwgIyBJQ1NaCgkgICAgICAoJG1lcGNmZ19kY2Fj aGVfc2l6ZSA8PCAwKSk7ICMgRENTWgogICAgJHNlY29uZF9zZWN0aW9uIC49 ICJzZXQgY3B1IGNzcjI4ICRjc3IyOFxuIjsKCiAgICAjIGNvbnRyb2wgYnVz IGxheW91dAogICAgJHplcm90aF9zZWN0aW9uIC49ICJsb2FkIGxpYm1lcGZh bWlseS5sYSBtZXBmYW1pbHlfY29tcG9uZW50X2xpYnJhcnlcbiI7CiAgICAk Zmlyc3Rfc2VjdGlvbiAuPSAiIyBjb250cm9sIHNwYWNlCm5ldyBody1tYXBw ZXItYmFzaWMgY3B1LWNvbnRyb2wtc3BhY2UKc2V0IGNwdS1jb250cm9sLXNw YWNlIGxhdGVuY3kgMQpuZXcgaHctbWFwcGVyLWJhc2ljIGNwdS1sb2NhbC1z cGFjZQoiIC4KICAoJG1lcGNmZ19kc3UgPyAibmV3IGh3LWRlYnVnLW1lcCBj cHUtZHN1XG4iIDogIiIpIC4KICAoJG1lcGNmZ19kbWFjID8gIm5ldyBody1k bWEtbWVwIGNwdS1kbWFjXG4iIDogIiIpIC4KICAoJG1lcGNmZ19pbnRjID8g Im5ldyBody1pbnRlcnJ1cHQtbWVwLSR7bWVwY2ZnX2ludGNfY2hhbm5lbF9i aXR3fSBjcHUtaW50Y1xuIiA6ICIiKTsKCiAgICAkc2Vjb25kX3NlY3Rpb24g Lj0gIiMgY29uZmlndXJhdGlvbiAvIGNvbm5lY3Rpb24gb2YgY29udHJvbCBz cGFjZSBwZXJpcGhlcmFscwpjb25uZWN0LWJ1cyBjcHUgY29udHJvbC1zcGFj ZSBjcHUtY29udHJvbC1zcGFjZSBhY2Nlc3MtcG9ydAoiIC4KICAoJG1lcGNm Z19kc3UgPyAiY29ubmVjdC1idXMgY3B1LWNvbnRyb2wtc3BhY2UgZHN1WzQq MHg4MDAtMHg4MDJdIGNwdS1kc3Ugc3RhdHVzLXJlZ3MKY29ubmVjdC1idXMg Y3B1LWNvbnRyb2wtc3BhY2UgZHN1WzQqMHg5MDAtMHg5MDJdIGNwdS1kc3Ug aW5zbi1yZWdzCmNvbm5lY3QtYnVzIGNwdS1jb250cm9sLXNwYWNlIGRzdVs0 KjB4QTAwLTB4QTA1XSBjcHUtZHN1IGRhdGEtcmVnc1xuIiA6ICIiKSAuCiAg KCRtZXBjZmdfZG1hYyA/ICJjb25uZWN0LWJ1cyBjcHUtY29udHJvbC1zcGFj ZSBkbWFjWzQqMHgxMDAwLTB4MTAwOV0gY3B1LWRtYWMgY29udHJvbC1yZWdz LWxvdwpjb25uZWN0LWJ1cyBjcHUtY29udHJvbC1zcGFjZSBkbWFjWzQqMHgx RkZGLTB4MUZGRl0gY3B1LWRtYWMgY29udHJvbC1yZWdzLWhpZ2hcbiIgOiAi IikgLgogICgkbWVwY2ZnX2ludGMgPyAiY29ubmVjdC1idXMgY3B1LWNvbnRy b2wtc3BhY2UgaW50Y1s0KjB4MC0weDddIGNwdS1pbnRjIHJlZ2lzdGVyc1xu IiA6ICIiKTsKCiAgICAkdGhpcmRfc2VjdGlvbiAuPQogICAgICAoJG1lcGNm Z19kbWFjID8gIiMgbWVwIGRtYWMgY29ubmVjdGlvbgpjb25uZWN0LWJ1cyBj cHUtZG1hYyBsb2NhbC1tZW1vcnkgY3B1LWxvY2FsLXNwYWNlIGFjY2Vzcy1w b3J0CmNvbm5lY3QtYnVzIGNwdS1kbWFjIG1haW4tbWVtb3J5IGNwdS1tYXBw ZXIgYWNjZXNzLXBvcnQKc2V0IHRhcmdldC1zY2hlZCAyLW5hbWUgXCJETUEg Y29udHJvbGxlciBidXJzdCBldmVudHNcIgpjb25uZWN0LXBpbiB0YXJnZXQt c2NoZWQgMi1ldmVudCAtPiBjcHUtZG1hYyBidXJzdC1ldmVudApjb25uZWN0 LXBpbiB0YXJnZXQtc2NoZWQgMi1jb250cm9sIDwtIGNwdS1kbWFjIGJ1cnN0 LWNvbnRyb2wKIiA6ICIiKSAuCiAgKCRtZXBjZmdfaW50YyA/ICIjIG1lcCBp bnRjIGNvbm5lY3Rpb24KY29ubmVjdC1waW4gY3B1LWludGMgaW50ZXJydXB0 IC0+IGNwdSBpbnRlcnJ1cHQKIiA6ICIiKTsKCiAgICAjIG1lcCBpbnN0cnVj dGlvbiBmZXRjaCBidWZmZXI6IDggYnl0ZXMKICAgICRmaXJzdF9zZWN0aW9u IC49ICIjIGluc3RydWN0aW9uIGZldGNoIGJ1ZmZlcgpuZXcgaHctY2FjaGUt YnVmZmVyLTggY3B1LWluc24tYnVmZmVyCnNldCBjcHUtaW5zbi1idWZmZXIg d3JpdGUtdGhyb3VnaD8gdHJ1ZQpjb25uZWN0LXBpbiBjYWNoZS1mbHVzaC1u ZXQgb3V0cHV0LTAgLT4gY3B1LWluc24tYnVmZmVyIGZsdXNoLWFsbApjb25u ZWN0LXBpbiBpbml0LXNlcXVlbmNlIG91dHB1dC0xIC0+IGNwdS1pbnNuLWJ1 ZmZlciBpbnZhbGlkYXRlLWFsbAoiOwoKICAgICMgY2NmeCAiZGVmYXVsdCIg bWVtb3J5IGxheW91dAogICAgcHVzaCBAb3B0X21lbW9yeV9yZWdpb24sICIw eDAwMDAwMDAwLDB4MjAwLGxhdGVuY3k9NSI7ICAgICMgdmVjCiAgICBwdXNo IEBvcHRfbWVtb3J5X3JlZ2lvbiwgIjB4MDAwMTAwMDAsMHg2MDAwMCxsYXRl bmN5PTUiOyAgIyByb21kYXRhLm0KICAgIHB1c2ggQG9wdF9tZW1vcnlfcmVn aW9uLCAiMHgwMDA4MDAwMCwweDgwMDAwLGxhdGVuY3k9NSI7ICAjIGNvZGUu bQogICAgcHVzaCBAb3B0X21lbW9yeV9yZWdpb24sICIweDAwMTAwMDAwLDB4 ODAwMDAsbGF0ZW5jeT01IjsgICMgZGF0YS5tCiAgICAjIHB1c2ggQG9wdF9t ZW1vcnlfcmVnaW9uLCAiMHgwMDMwMDAwMCwweDEwMDAwIjsgICMgaWNhY2hl IGRhdGEgdGVzdGluZyBhcmVhCiAgICAjIHB1c2ggQG9wdF9tZW1vcnlfcmVn aW9uLCAiMHgwMDMxMDAwMCwweDEwMDAwIjsgICMgaWNhY2hlIHRhZyB0ZXN0 aW5nIGFyZWEKICAgICMgcHVzaCBAb3B0X21lbW9yeV9yZWdpb24sICIweDAw MzIwMDAwLDB4MTAwMDAiOyAgIyBkY2FjaGUgZGF0YSB0ZXN0aW5nIGFyZWEK ICAgICMgcHVzaCBAb3B0X21lbW9yeV9yZWdpb24sICIweDAwMzMwMDAwLDB4 MTAwMDAiOyAgIyBkY2FjaGUgdGFnIHRlc3RpbmcgYXJlYQogICAgcHVzaCBA b3B0X21lbW9yeV9yZWdpb24sICIweDAxMDAwMDAwLDB4ODAwMCxsYXRlbmN5 PTUiOyAgICMgcm9tZGF0YS5zCiAgICBwdXNoIEBvcHRfbWVtb3J5X3JlZ2lv biwgIjB4MDEwMDgwMDAsMHg4MDAwLGxhdGVuY3k9NSI7ICAgIyBkYXRhLnMK ICAgIHB1c2ggQG9wdF9tZW1vcnlfcmVnaW9uLCAiMHgwMjAwMDAwMCwweDEw MDAwMCxsYXRlbmN5PTUiOyAjIGRhdGEubAogICAgcHVzaCBAb3B0X21lbW9y eV9yZWdpb24sICIweDAyMjAwMDAwLDB4MTAwMDAwLGxhdGVuY3k9NSI7ICMg cm9tZGF0YS5sCiAgICBwdXNoIEBvcHRfbWVtb3J5X3JlZ2lvbiwgIjB4MDIz MDAwMDAsMHgxMDAwMDAsbGF0ZW5jeT01IjsgIyBjb2RlLmwKICAgIHB1c2gg QG9wdF9tZW1vcnlfcmVnaW9uLCAiMHgwMzAwMDAwMCwweDEwMDAwMCxsYXRl bmN5PTUiOyAjIHN0YWNrCiAgICBwdXNoIEBvcHRfbWVtb3J5X3JlZ2lvbiwg IjB4MDQwMDAwMDAsMHgxMDAwMDAsbGF0ZW5jeT01IjsgIyBoZWFwCgogICAg JHRoaXJkX3NlY3Rpb24gLj0gImNvbm5lY3QtYnVzIGNwdS1tYXBwZXIgbG9j YWw6WzB4MDAyMDAwMDAsMHgwMDIxMDAwMF0gY3B1LWxvY2FsLXNwYWNlIGFj Y2Vzcy1wb3J0XG4iOwoKICAgIHB1c2ggQG9wdF9tZW1vcnlfcmVnaW9uLCAo JG1lcF9pbWVtX2Jhc2UgLSAweDAwMjAwMDAwKSAuICIsIiAuICRtZXBfaW1l bV9zaXplIC4gIixidXM9Y3B1LWxvY2FsLXNwYWNlLGxhdGVuY3k9MiIgaWYg JG1lcF9pbWVtX3NpemU7CiAgICBwdXNoIEBvcHRfbWVtb3J5X3JlZ2lvbiwg KCRtZXBfZG1lbV9iYW5rMF9iYXNlIC0gMHgwMDIwMDAwMCkgLiAiLCIgLiAk bWVwX2RtZW1fYmFuazBfc2l6ZSAuICIsYnVzPWNwdS1sb2NhbC1zcGFjZSxs YXRlbmN5PTIiIGlmICRtZXBfZG1lbV9iYW5rMF9zaXplOwogICAgcHVzaCBA b3B0X21lbW9yeV9yZWdpb24sICgkbWVwX2RtZW1fYmFuazFfYmFzZSAtIDB4 MDAyMDAwMDApIC4gIiwiIC4gJG1lcF9kbWVtX2JhbmsxX3NpemUgLiAiLGJ1 cz1jcHUtbG9jYWwtc3BhY2UsbGF0ZW5jeT0yIiBpZiAkbWVwX2RtZW1fYmFu azFfc2l6ZTsKCiAgICBpZiAoJG1lcGNmZ19pY2FjaGVfc2l6ZSkKICAgICAg ewoJJGNhY2hldHlwZSA9CgkgICgkbWVwY2ZnX2ljYWNoZV93YXkgPT0gMSA/ ICJkaXJlY3QiIDogKCRtZXBjZmdfaWNhY2hlX3dheSAuICJ3YXkiKSkgLiAi LyIgLgoJICAgICRtZXBjZmdfaWNhY2hlX3NpemUgLiAia2IiIC4gIi8iIC4K CSAgICAgICRtZXBjZmdfaWNhY2hlX2xpbmVfc2l6ZSAuCgkJKCRtZXBjZmdf aWNhY2hlX3dheSA9PSAxID8gIiIgOiAiL3JhbmRvbSIpOwoKCWNvbmZpZ3Vy ZV9tZXBfY2FjaGVkX2J1cygiaW5zbiIsICRjYWNoZXR5cGUsICRtZXBjZmdf ZHN1KTsKCSR0aGlyZF9zZWN0aW9uIC49ICIjIGljYWNoZSB0YWcgdGVzdCBh cmVhCm5ldyBody1nbHVlLXByb2JlLWJ1cyBjcHUtaW5zbi1jYWNoZS10YWd0 ZXN0Cm5ldyBody1tZW1vcnktcmFtL3JvbS1iYXNpYyBjcHUtaW5zbi1jYWNo ZS10YWcKc2V0IGNwdS1pbnNuLWNhY2hlLXRhZyBzaXplIDB4MTAwMDAKY29u bmVjdC1idXMgY3B1LW1hcHBlciBbMHgwMDMxMDAwMC0weDAwMzFGRkZGXSBj cHUtaW5zbi1jYWNoZS10YWd0ZXN0IHVwc3RyZWFtCmNvbm5lY3QtYnVzIGNw dS1pbnNuLWNhY2hlLXRhZ3Rlc3QgZG93bnN0cmVhbSBjcHUtaW5zbi1jYWNo ZS10YWcgcmVhZC13cml0ZS1wb3J0CmNvbm5lY3QtcGluIGNwdS1pbnNuLWNh Y2hlLXRhZ3Rlc3QgYWRkcmVzcyAtPiBjcHUtaW5zbi1jYWNoZSBpbnZhbGlk YXRlLWFsbAoiOwogICAgICB9CiAgICBlbHNlCiAgICAgIHsKCSRzZWNvbmRf c2VjdGlvbiAuPSAiCmRpc2Nvbm5lY3QtYnVzIGNwdSBpbnNuLW1lbW9yeSBj cHUtbWFwcGVyIGFjY2Vzcy1wb3J0CmNvbm5lY3QtYnVzIGNwdSBpbnNuLW1l bW9yeSBjcHUtaW5zbi1idWZmZXIgdXBzdHJlYW0KY29ubmVjdC1idXMgY3B1 LWluc24tYnVmZmVyIGRvd25zdHJlYW0gY3B1LW1hcHBlciBhY2Nlc3MtcG9y dApjb25uZWN0LXBpbiBpbml0LXNlcXVlbmNlIG91dHB1dC0wIC0+IGNwdS1p bnNuLWJ1ZmZlciBpbnZhbGlkYXRlLWFsbFxuIjsKICAgICAgfQogICAgaWYg KCRtZXBjZmdfZGNhY2hlX3NpemUpCiAgICAgIHsKCSRjYWNoZXR5cGUgPQoJ ICAoJG1lcGNmZ19kY2FjaGVfd2F5ID09IDEgPyAiZGlyZWN0IiA6ICgkbWVw Y2ZnX2RjYWNoZV93YXkgLiAid2F5IikpIC4gIi8iIC4KCSAgICAkbWVwY2Zn X2RjYWNoZV9zaXplIC4gImtiIiAuICIvIiAuCgkgICAgICAkbWVwY2ZnX2Rj YWNoZV9saW5lX3NpemUgLgoJCSgkbWVwY2ZnX2RjYWNoZV93YXkgPT0gMSA/ ICIiIDogIi9yYW5kb20iKTsKCWNvbmZpZ3VyZV9tZXBfY2FjaGVkX2J1cygi ZGF0YSIsICRjYWNoZXR5cGUsICRtZXBjZmdfZHN1KTsKCSRidXNfdXBzdHJl YW0gPSAiY3B1LWRhdGEtY2FjaGVmaWx0ZXIgYWNjZXNzLXBvcnQiOwoJJHRo aXJkX3NlY3Rpb24gLj0gIiMgZGNhY2hlIHRhZyB0ZXN0IGFyZWEKbmV3IGh3 LWdsdWUtcHJvYmUtYnVzIGNwdS1kYXRhLWNhY2hlLXRhZ3Rlc3QKbmV3IGh3 LW1lbW9yeS1yYW0vcm9tLWJhc2ljIGNwdS1kYXRhLWNhY2hlLXRhZwpzZXQg Y3B1LWRhdGEtY2FjaGUtdGFnIHNpemUgMHgxMDAwMApjb25uZWN0LWJ1cyBj cHUtbWFwcGVyIFsweDAwMzMwMDAwLTB4MDAzM0ZGRkZdIGNwdS1kYXRhLWNh Y2hlLXRhZ3Rlc3QgdXBzdHJlYW0KY29ubmVjdC1idXMgY3B1LWRhdGEtY2Fj aGUtdGFndGVzdCBkb3duc3RyZWFtIGNwdS1kYXRhLWNhY2hlLXRhZyByZWFk LXdyaXRlLXBvcnQKY29ubmVjdC1waW4gY3B1LWRhdGEtY2FjaGUtdGFndGVz dCBhZGRyZXNzIC0+IGNwdS1kYXRhLWNhY2hlIGludmFsaWRhdGUtYWxsCiI7 CiAgICAgIH0KICAgIGVsc2UKICAgICAgewoJJGJ1c191cHN0cmVhbSA9ICJj cHUtbWFwcGVyIGFjY2Vzcy1wb3J0IjsKICAgICAgfQoKICAgIGlmICgkb3B0 X2JvYXJkID1+IC9nbG9zcy8pCiAgICAgIHsKCSMgcHJldmVudCBjb25maWd1 cmVfZ2xvc3MgZnJvbSBhZGRpbmcgaW4gdGhlIG92ZXJsYXBwaW5nIGRlZmF1 bHRzCgkkZ2xvc3NfbWVtc3BlY3N7JG9wdF9jcHV9PSIiOwoJY29uZmlndXJl X2dsb3NzICgkb3B0X2JvYXJkKTsKICAgICAgfQogIH0KZWxzaWYgKCRvcHRf Ym9hcmQgPX4gL2dsb3NzLykKICB7CiAgICBjb25maWd1cmVfZ2xvc3MoJG9w dF9ib2FyZCk7CiAgfQplbHNlCiAgewogICAgZGllICJVbmtub3duIGJvYXJk IGAkb3B0X2JvYXJkJ1xuIjsKICB9CgoKCiMgLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tCiMgSGFuZGxlIGVuZGlhbm5lc3MKCmlmICgkb3B0X0VCICYm ICRvcHRfRUwpIHsgZGllICJCb3RoIC1FQiBhbmQgLUVMIHNwZWNpZmllZFxu IjsgfQppZiAoISRvcHRfRUIgJiYgISRvcHRfRUwgJiYgJG9wdF9nZGIgIT0g MCkKICB7CiAgICBpZiAoJGNwdV9kZWZhdWx0ZW5kaWFueyRvcHRfY3B1fSBl cSAiLUVCIikgeyAkb3B0X0VCID0gMTsgfQogICAgZWxzaWYgKCRjcHVfZGVm YXVsdGVuZGlhbnskb3B0X2NwdX0gZXEgIi1FTCIpIHsgJG9wdF9FTCA9IDE7 IH0KICAgIGVsc2UgeyB3YXJuICJTaG91bGQgc3BlY2lmeSBlbmRpYW5uZXNz IjsgJnVzYWdlOyB9CiAgfQplbHNpZiAoISRvcHRfRUIgJiYgISRvcHRfRUwg JiYgISRleGVjKQogIHsKICAgIHdhcm4gIlNob3VsZCBzcGVjaWZ5IGV4ZWN1 dGFibGUiOyAmdXNhZ2U7CiAgfQppZiAoJG9wdF9FQikgeyAkdGhpcmRfc2Vj dGlvbiAuPSAic2V0IGNwdSBlbmRpYW4gYmlnXG4iOyB9CmlmICgkb3B0X0VM KSB7ICR0aGlyZF9zZWN0aW9uIC49ICJzZXQgY3B1IGVuZGlhbiBsaXR0bGVc biI7IH0KCgojIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIyBN aXNjLiBsb2dpYwoKIyB0aGlzIGlzIHVzZWQgYnkgYm90aCB0aGUgYXJtNzEw dCBhbmQgY29nZW50IGNtYTExMCBib2FyZHMuCnN1YiBjb25maWd1cmVfdWFy dDFfdWFydDIKICB7CiAgICAjIGNyZWF0ZSB1YXJ0IDwtPiByZWFsIHdvcmxk IGNvbm5lY3Rpb25zCiAgICBpZiAoJG9wdF9ib2FyZCA9fiAvdWFydDE6c3Rk aW8vKQogICAgICB7CgkkZmlyc3Rfc2VjdGlvbiAuPSAiIyBzdGRpbzFcbiIg LgoJICAmc2lkY29uZl9uZXcoInNpZC1pby1zdGRpbyIsICJzdGRpbzEiKSAu ICJcbiI7Cgkkc2Vjb25kX3NlY3Rpb24gLj0gIiMgc3RkaW8xIHBvbGxpbmcK c2V0IGhvc3Qtc2NoZWQgMC1yZWd1bGFyPyAxCnNldCBob3N0LXNjaGVkIDAt dGltZSA1MApjb25uZWN0LXBpbiBob3N0LXNjaGVkIDAtZXZlbnQgLT4gc3Rk aW8xIHBvbGwKIjsKCSR0aGlyZF9zZWN0aW9uIC49ICIjIHN0ZGlvMSBjb25u ZWN0aW9uCmNvbm5lY3QtcGluIHVhcnQxIFNvdXQgLT4gc3RkaW8xIHN0ZG91 dApjb25uZWN0LXBpbiB1YXJ0MSBTaW4gPC0gc3RkaW8xIHN0ZGluCiI7CiAg ICAgIH0KCiAgICBpZiAoJG9wdF9ib2FyZCA9fiAvdWFydDI6c3RkaW8vKQog ICAgICB7CgkkZmlyc3Rfc2VjdGlvbiAuPSAiIyBzdGRpbzJcbiIgLgoJICAm c2lkY29uZl9uZXcoInNpZC1pby1zdGRpbyIsICJzdGRpbzIiKSAuICJcbiI7 Cgkkc2Vjb25kX3NlY3Rpb24gLj0gIiMgc3RkaW8yIHBvbGxpbmcKc2V0IGhv c3Qtc2NoZWQgMC1yZWd1bGFyPyAxCnNldCBob3N0LXNjaGVkIDAtdGltZSA1 MApjb25uZWN0LXBpbiBob3N0LXNjaGVkIDAtZXZlbnQgLT4gc3RkaW8yIHBv bGwKIjsKCSR0aGlyZF9zZWN0aW9uIC49ICIjIHN0ZGlvMiBjb25uZWN0aW9u CmNvbm5lY3QtcGluIHVhcnQyIFNvdXQgLT4gc3RkaW8yIHN0ZG91dApjb25u ZWN0LXBpbiB1YXJ0MiBTaW4gPC0gc3RkaW8yIHN0ZG91dAoiOwogICAgICB9 CgogICAgaWYgKCRvcHRfYm9hcmQgPX4gL3VhcnQxOnR0eS8pCiAgICAgIHsK CSRhbnlfdGNsID0gMTsKCgkkZmlyc3Rfc2VjdGlvbiAuPSAiIyB0dHkxXG4i IC4KCSAgJnNpZGNvbmZfbmV3KCJody12aXN1YWwtdHR5IiwgInR0eTEiKSAu ICJcbiI7CgkkdGhpcmRfc2VjdGlvbiAuPSAiIyB0dHkxIGF1dG8tY29ubmVj dGlvbgpyZWxhdGUgdHR5MSBcImh3LXVhcnQtbnMxNjU1MCB1YXJ0MVwiIHVh cnQxCiI7CiAgICAgIH0KCiAgICBpZiAoJG9wdF9ib2FyZCA9fiAvdWFydDI6 dHR5LykKICAgICAgewoJJGFueV90Y2wgPSAxOwoKCSRmaXJzdF9zZWN0aW9u IC49ICIjIHR0eTJcbiIgLgoJICAmc2lkY29uZl9uZXcoImh3LXZpc3VhbC10 dHkiLCAidHR5MiIpIC4gIlxuIjsKCSR0aGlyZF9zZWN0aW9uIC49ICIjIHR0 eTIgYXV0by1jb25uZWN0aW9uCnJlbGF0ZSB0dHkyIFwiaHctdWFydC1uczE2 NTUwIHVhcnQyXCIgdWFydDIKIjsKICAgICAgfQoKICAgIGlmICgkb3B0X2Jv YXJkID1+IC91YXJ0MTooWzAtOV0rKS8pCiAgICAgIHsKCSRwb3J0ID0gJDE7 CgoJJGZpcnN0X3NlY3Rpb24gLj0gIiMgdWFydDEgc29ja2V0XG4iIC4KCSAg JnNpZGNvbmZfbmV3KCJzaWQtaW8tc29ja2V0LXNlcnZlciIsICJ1YXJ0MS1j b25zb2xlIikgLiAiXG4iOwoKCSRzZWNvbmRfc2VjdGlvbiAuPSAiIyB1YXJ0 MSBzb2NrZXRpbyBjb25maWcKY29ubmVjdC1waW4gaG9zdC1zY2hlZCAzLWV2 ZW50IC0+IHVhcnQxLWNvbnNvbGUgcG9sbC1ldmVudApjb25uZWN0LXBpbiBo b3N0LXNjaGVkIDMtY29udHJvbCA8LSB1YXJ0MS1jb25zb2xlIHBvbGwtY29u dHJvbApzZXQgdWFydDEtY29uc29sZSB2ZXJib3NlPyAkb3B0X3ZlcmJvc2UK c2V0IHVhcnQxLWNvbnNvbGUgc29ja2FkZHItbG9jYWwgMC4wLjAuMDokcG9y dApjb25uZWN0LXBpbiBpbml0LXNlcXVlbmNlIG91dHB1dC0yIC0+IHVhcnQx LWNvbnNvbGUgaW5pdApjb25uZWN0LXBpbiBkZWluaXQtc2VxdWVuY2Ugb3V0 cHV0LTYgLT4gdWFydDEtY29uc29sZSBmaW5pCiMgbWFrZSBiaWcgcmVjZWl2 ZSBmaWZvCnNldCB1YXJ0MSBpbi1maWZvLWxlbmd0aCA0MDk2CiI7CgoJJHRo aXJkX3NlY3Rpb24gLj0gIiMgdWFydDEgPC0+IHNvY2tldApjb25uZWN0LXBp biB1YXJ0MSBTb3V0IC0+IHVhcnQxLWNvbnNvbGUgdHgKY29ubmVjdC1waW4g dWFydDEgU2luIDwtIHVhcnQxLWNvbnNvbGUgcngKIjsKICAgICAgfQoKICAg IGlmICgkb3B0X2JvYXJkID1+IC91YXJ0MjooWzAtOV0rKS8pCiAgICAgIHsK CSRwb3J0ID0gJDE7CgoJJGZpcnN0X3NlY3Rpb24gLj0gIiMgdWFydDIgc29j a2V0XG4iIC4KCSAgJnNpZGNvbmZfbmV3KCJzaWQtaW8tc29ja2V0LXNlcnZl ciIsICJ1YXJ0Mi1jb25zb2xlIikgLiAiXG4iOwoKCSRzZWNvbmRfc2VjdGlv biAuPSAiIyB1YXJ0MiBzb2NrZXRpbyBjb25maWcKY29ubmVjdC1waW4gaG9z dC1zY2hlZCA0LWV2ZW50IC0+IHVhcnQyLWNvbnNvbGUgcG9sbC1ldmVudApj b25uZWN0LXBpbiBob3N0LXNjaGVkIDQtY29udHJvbCA8LSB1YXJ0Mi1jb25z b2xlIHBvbGwtY29udHJvbApzZXQgdWFydDItY29uc29sZSB2ZXJib3NlPyAk b3B0X3ZlcmJvc2UKc2V0IHVhcnQyLWNvbnNvbGUgc29ja2FkZHItbG9jYWwg MC4wLjAuMDokcG9ydApjb25uZWN0LXBpbiBpbml0LXNlcXVlbmNlIG91dHB1 dC0yIC0+IHVhcnQyLWNvbnNvbGUgaW5pdApjb25uZWN0LXBpbiBkZWluaXQt c2VxdWVuY2Ugb3V0cHV0LTYgLT4gdWFydDItY29uc29sZSBmaW5pCiMgbWFr ZSBiaWcgcmVjZWl2ZSBmaWZvCnNldCB1YXJ0MiBpbi1maWZvLWxlbmd0aCA0 MDk2CiI7CgoJJHRoaXJkX3NlY3Rpb24gLj0gIiMgdWFydDIgPC0+IHNvY2tl dApjb25uZWN0LXBpbiB1YXJ0MiBTb3V0IC0+IHVhcnQyLWNvbnNvbGUgdHgK Y29ubmVjdC1waW4gdWFydDIgU2luIDwtIHVhcnQyLWNvbnNvbGUgcngKIjsK ICAgICAgfQoKICAgIGlmICgkb3B0X2JvYXJkID1+IC91YXJ0MTpnZGIvICYm ICRvcHRfZ2RiICE9IDApCiAgICAgIHsKCSR0aGlyZF9zZWN0aW9uIC49ICIj IHVhcnQxIDwtPiBjcHUtZ2RiIGFsc28KY29ubmVjdC1waW4gdWFydDEgU291 dCAtPiBjcHUtZ2RiIHRhcmdldC10eAoiOwogICAgICB9CgogICAgaWYgKCRv cHRfYm9hcmQgPX4gL3VhcnQyOmdkYi8gJiYgJG9wdF9nZGIgIT0gMCkKICAg ICAgewoJJHRoaXJkX3NlY3Rpb24gLj0gIiMgdWFydDIgPC0+IGNwdS1nZGIg YWxzbwpjb25uZWN0LXBpbiB1YXJ0MiBTb3V0IC0+IGNwdS1nZGIgdGFyZ2V0 LXR4CiI7CiAgICAgIH0KICB9CgoKc3ViIGNvbmZpZ3VyZV9oYXJ2YXJkX2J1 cwogIHsKICAgIG15ICRjcHUgPSAkX1swXTsKCiAgICAkZmlyc3Rfc2VjdGlv biAuPSAiIyAkY3B1IGhhcnZhcmQgYnVzIG1hcHBlcnNcbiIgLgoJICAmc2lk Y29uZl9uZXcoImh3LW1hcHBlci1iYXNpYyIsICJkYXRhLW1hcHBlciIpIC4g IlxuIiAuCgkgICZzaWRjb25mX25ldygiaHctbWFwcGVyLWJhc2ljIiwgImlu c24tbWFwcGVyIikgLiAiXG4iOwoKICAgICRzZWNvbmRfc2VjdGlvbiAuPSAi IyAkY3B1IGhhcnZhcmQgYnVzIHNwZWNpZmljLgpkaXNjb25uZWN0LWJ1cyBj cHUgaW5zbi1tZW1vcnkgJGJ1c191cHN0cmVhbQpjb25uZWN0LWJ1cyBjcHUg aW5zbi1tZW1vcnkgaW5zbi1tYXBwZXIgYWNjZXNzLXBvcnQKZGlzY29ubmVj dC1idXMgY3B1IGRhdGEtbWVtb3J5ICRidXNfdXBzdHJlYW0KIjsKICAgIGlm ICgkb3B0X3RyYWNlX2NvcmUgfHwgJG9wdF90cmFjZV9jb3JlX3Zpc3VhbCkK ICAgICAgewogICAgICAgICRzZWNvbmRfc2VjdGlvbiAuPSAiIyAkY3B1IGhh cnZhcmQgYnVzIGRhdGEgcHJvYmUuCmNvbm5lY3QtYnVzIGNwdSBkYXRhLW1l bW9yeSBidXMtcHJvYmUgdXBzdHJlYW0KZGlzY29ubmVjdC1idXMgYnVzLXBy b2JlIGRvd25zdHJlYW0gY3B1LW1hcHBlciBhY2Nlc3MtcG9ydApjb25uZWN0 LWJ1cyBidXMtcHJvYmUgZG93bnN0cmVhbSBkYXRhLW1hcHBlciBhY2Nlc3Mt cG9ydAoiOwogICAgICB9CiAgICBlbHNlCiAgICAgIHsKICAgICRzZWNvbmRf c2VjdGlvbiAuPSAiIyAkY3B1IGhhcnZhcmQgYnVzIGRhdGEgbWFwcGluZy4K Y29ubmVjdC1idXMgY3B1IGRhdGEtbWVtb3J5IGRhdGEtbWFwcGVyIGFjY2Vz cy1wb3J0CiI7CiAgICAgIH0KCiAgICBpZiAoJG9wdF9ib2FyZCA9fiAvZ2xv c3MvKQogICAgICB7CiAgICAgICAgJHNlY29uZF9zZWN0aW9uIC49ICIjICRj cHUgaGFydmFyZCBidXMgc3BlY2lmaWMgZ2xvc3MgLgpkaXNjb25uZWN0LWJ1 cyBnbG9zcyB0YXJnZXQtbWVtb3J5ICRidXNfdXBzdHJlYW0KY29ubmVjdC1i dXMgZ2xvc3MgdGFyZ2V0LW1lbW9yeSBkYXRhLW1hcHBlciBhY2Nlc3MtcG9y dAoiOwogICAgICB9CgogIH0KCgpzdWIgY29uZmlndXJlX21lcF9jYWNoZWRf YnVzCiAgewogICAgbXkgJGFkZHJzcGFjZSA9ICRfWzBdOwogICAgbXkgJGNh Y2hldHlwZSA9ICRfWzFdOwogICAgbXkgJGRzdV9wID0gJF9bMl07CgogICAg JGZpcnN0X3NlY3Rpb24gLj0gIiMgJGFkZHJzcGFjZSBjYWNoaW5nCm5ldyBo dy1tYXBwZXItdHJhbnNwYXJlbnQgY3B1LSR7YWRkcnNwYWNlfS1jYWNoZWZp bHRlcgpuZXcgaHctY2FjaGUtJGNhY2hldHlwZSBjcHUtJHthZGRyc3BhY2V9 LWNhY2hlCnNldCBjcHUtJHthZGRyc3BhY2V9LWNhY2hlIGhpdC1sYXRlbmN5 IDEKc2V0IGNwdS0ke2FkZHJzcGFjZX0tY2FjaGUgbWlzcy1sYXRlbmN5IDEK Y29ubmVjdC1waW4gY3B1ICR7YWRkcnNwYWNlfS1jYWNoZS1lbmFibGUgLT4g Y3B1LSR7YWRkcnNwYWNlfS1jYWNoZWZpbHRlciBiYW5rCmNvbm5lY3QtcGlu IGNhY2hlLWZsdXNoLW5ldCBvdXRwdXQtMCAtPiBjcHUtJHthZGRyc3BhY2V9 LWNhY2hlIGZsdXNoLWFsbApjb25uZWN0LXBpbiBjYWNoZS1mbHVzaC1uZXQg b3V0cHV0LTEgLT4gY3B1LSR7YWRkcnNwYWNlfS1jYWNoZSBpbnZhbGlkYXRl LWFsbAoiOwogICAgJHNlY29uZF9zZWN0aW9uIC49ICIjICRhZGRyc3BhY2Ug Y2FjaGUgZmlsdGVyaW5nCmRpc2Nvbm5lY3QtYnVzIGNwdSAke2FkZHJzcGFj ZX0tbWVtb3J5ICRidXNfdXBzdHJlYW0KIjsKCiAgICBpZiAoJGFkZHJzcGFj ZSBlcSAiaW5zbiIpIHsKICAgICAgJHNlY29uZF9zZWN0aW9uIC49ICJjb25u ZWN0LWJ1cyBjcHUgaW5zbi1tZW1vcnkgY3B1LWluc24tYnVmZmVyIHVwc3Ry ZWFtXG4iOwogICAgICAkY3B1YnVzID0gImNwdS1pbnNuLWJ1ZmZlciBkb3du c3RyZWFtIjsKICAgIH0gZWxzZSB7CiAgICAgICRjcHVidXMgPSAiY3B1IGRh dGEtbWVtb3J5IjsKICAgIH0KCiAgICBpZiAoJGRzdV9wKSB7CiAgICAgICRz ZWNvbmRfc2VjdGlvbiAuPSAiY29ubmVjdC1idXMgJGNwdWJ1cyBjcHUtZHN1 ICR7YWRkcnNwYWNlfS11cHN0cmVhbQpjb25uZWN0LWJ1cyBjcHUtZHN1ICR7 YWRkcnNwYWNlfS1kb3duc3RyZWFtIGNwdS0ke2FkZHJzcGFjZX0tY2FjaGVm aWx0ZXIgYWNjZXNzLXBvcnQKIjsKICAgIH0gZWxzZSB7CiAgICAgICRzZWNv bmRfc2VjdGlvbiAuPSAiY29ubmVjdC1idXMgJGNwdWJ1cyBjcHUtJHthZGRy c3BhY2V9LWNhY2hlZmlsdGVyIGFjY2Vzcy1wb3J0XG4iOwogICAgfQoKICAg ICRzZWNvbmRfc2VjdGlvbiAuPQoiY29ubmVjdC1idXMgY3B1LSR7YWRkcnNw YWNlfS1jYWNoZWZpbHRlciAke2FkZHJzcGFjZX06WzB4MDAwMDAwMDAtMHgw MDdGRkZGRl17MCwxfTp1bmNhY2hlYWJsZSBjcHUtbWFwcGVyIGFjY2Vzcy1w b3J0CmNvbm5lY3QtYnVzIGNwdS0ke2FkZHJzcGFjZX0tY2FjaGVmaWx0ZXIg JHthZGRyc3BhY2V9OlsweDAwODAwMDAwLTB4N0ZGRkZGRkZdezF9OmNhY2hl ZCBjcHUtJHthZGRyc3BhY2V9LWNhY2hlIHVwc3RyZWFtCmNvbm5lY3QtYnVz IGNwdS0ke2FkZHJzcGFjZX0tY2FjaGVmaWx0ZXIgJHthZGRyc3BhY2V9Olsw eDAwODAwMDAwLTB4N0ZGRkZGRkZdezB9OnVuY2FjaGVkIGNwdS1tYXBwZXIg YWNjZXNzLXBvcnQKY29ubmVjdC1idXMgY3B1LSR7YWRkcnNwYWNlfS1jYWNo ZWZpbHRlciAke2FkZHJzcGFjZX06WzB4ODAwMDAwMDAtMHhCRkZGRkZGRl17 MCwxfTp1bmNhY2hlYWJsZSBjcHUtbWFwcGVyIGFjY2Vzcy1wb3J0CmNvbm5l Y3QtYnVzIGNwdS0ke2FkZHJzcGFjZX0tY2FjaGVmaWx0ZXIgJHthZGRyc3Bh Y2V9OlsweEMwMDAwMDAwLTB4RkZGRkZGRkZdezF9OmNhY2hlZCBjcHUtJHth ZGRyc3BhY2V9LWNhY2hlIHVwc3RyZWFtCmNvbm5lY3QtYnVzIGNwdS0ke2Fk ZHJzcGFjZX0tY2FjaGVmaWx0ZXIgJHthZGRyc3BhY2V9OlsweEMwMDAwMDAw LTB4RkZGRkZGRkZdezB9OnVuY2FjaGVkIGNwdS1tYXBwZXIgYWNjZXNzLXBv cnQKY29ubmVjdC1idXMgY3B1LSR7YWRkcnNwYWNlfS1jYWNoZSBkb3duc3Ry ZWFtIGNwdS1tYXBwZXIgYWNjZXNzLXBvcnQKIyAkYWRkcnNwYWNlIGNhY2hl IHNldHVwCnNldCBjcHUtJHthZGRyc3BhY2V9LWNhY2hlIHJlcG9ydC1oZWFk aW5nIFwiJHthZGRyc3BhY2V9IHByb2ZpbGUgcmVwb3J0XCIKY29ubmVjdC1w aW4gaW5pdC1zZXF1ZW5jZSBvdXRwdXQtMSAtPiBjcHUtJHthZGRyc3BhY2V9 LWNhY2hlIGludmFsaWRhdGUtYWxsXG4iIC4KICAoJG9wdF90cmFjZV9jb3Vu dGVyID8gImNvbm5lY3QtcGluIGRlaW5pdC1zZXF1ZW5jZSBvdXRwdXQtNiAt PiBjcHUtJHthZGRyc3BhY2V9LWNhY2hlIHJlcG9ydCFcbiIgOiAiIik7CiAg fQoKCmlmICgkb3B0X2NwdSBlcSAiYXJtIikKICB7CiAgICAkZW5hYmxlX3pf cGFja2V0ID0gInRydWUiOwogIH0KCmlmICgkb3B0X2NwdSBlcSAieHN0b3Jt eTE2IikKICB7CiAgICAkZW5hYmxlX3pfcGFja2V0ID0gInRydWUiOwogIH0K CmlmICgkb3B0X2NwdSBlcSAibWVwIikKICB7CiAgICAkZW5hYmxlX3pfcGFj a2V0ID0gInRydWUiOwogIH0KCgojIC0tZW5naW5lCmlmICgkb3B0X2VuZ2lu ZSBlcSAicGJiIikKICB7CiMgRklYTUU6IHRoZSB4ODYgY29tcG9uZW50IHNo b3VsZCBzdXBwb3J0IHRoaXMgc2V0dGluZwogICAgaWYgKCRvcHRfY3B1IG5l ICJ4ODYiKQogICAgICB7Cgkkc2Vjb25kX3NlY3Rpb24gLj0gInNldCBjcHUg ZW5naW5lLXR5cGUgcGJiXG4iOwogICAgICB9IAogIH0KZWxzaWYgKCRvcHRf ZW5naW5lIGVxICJzY2FjaGUiKQogIHsKICAgICRzZWNvbmRfc2VjdGlvbiAu PSAic2V0IGNwdSBlbmdpbmUtdHlwZSBzY2FjaGVcbiI7CiAgfQplbHNlCiAg ewogICAgZGllICJJbnZhbGlkIGVuZ2luZSB0eXBlICRvcHRfZW5naW5lXG4i OwogIH0KCgojIC0tZ2RiCiMgR2VuZXJhdGUgYSBnZGIgY29tcG9uZW50IGZv ciBlYWNoIHByb2Nlc3NvciByZXF1ZXN0ZWQuCiRub25fY3B1X2dkYnM9MDsK Zm9yZWFjaCAkcHJvY2Vzc29yIChrZXlzICVvcHRfZ2RicG9ydCkKICB7CiAg ICAkZmlyc3Rfc2VjdGlvbiAuPSAiIyAkcHJvY2Vzc29yIGdkYlxuIiAuCiAg ICAgICZzaWRjb25mX25ldygic3ctZGVidWctZ2RiIiwgIiR7cHJvY2Vzc29y fS1nZGIiKSAuICJcbiIgLgogICAgICAmc2lkY29uZl9uZXcoInNpZC1pby1z b2NrZXQtc2VydmVyIiwgIiR7cHJvY2Vzc29yfS1nZGItc29ja2V0IikgLiAi XG4iOwogICAgJHNlY29uZF9zZWN0aW9uIC49ICIjICR7cHJvY2Vzc29yfS1n ZGIKcmVsYXRlICR7cHJvY2Vzc29yfS1nZGIgY3B1ICRwcm9jZXNzb3IKcmVs YXRlICR7cHJvY2Vzc29yfS1nZGIgY2Zncm9vdCBtYWluCnJlbGF0ZSAke3By b2Nlc3Nvcn0tZ2RiIHRhcmdldC1zY2hlZHVsZXJzIHRhcmdldC1zY2hlZApy ZWxhdGUgJHtwcm9jZXNzb3J9LWdkYiBob3N0LXNjaGVkdWxlcnMgaG9zdC1z Y2hlZApjb25uZWN0LXBpbiAke3Byb2Nlc3Nvcn0tZ2RiIHByb2Nlc3Mtc2ln bmFsIC0+IG1haW4gc3RvcCEKY29ubmVjdC1waW4gaW5pdC1zZXF1ZW5jZSBv dXRwdXQtMyAtPiAke3Byb2Nlc3Nvcn0tZ2RiIGluaXQKY29ubmVjdC1waW4g ZGVpbml0LXNlcXVlbmNlIG91dHB1dC01IC0+ICR7cHJvY2Vzc29yfS1nZGIg ZGVpbml0CmNvbm5lY3QtcGluICR7cHJvY2Vzc29yfS1nZGIgeWllbGQgLT4g eWllbGQtbmV0IGlucHV0CmNvbm5lY3QtcGluICR7cHJvY2Vzc29yfS1nZGIg Zmx1c2gtaWNhY2hlIC0+IGNhY2hlLWZsdXNoLW5ldCBpbnB1dApjb25uZWN0 LXBpbiBjYWNoZS1mbHVzaC1uZXQgb3V0cHV0LTEgLT4gJHByb2Nlc3NvciBm bHVzaC1pY2FjaGUKY29ubmVjdC1waW4gJHtwcm9jZXNzb3J9LWdkYiByZXN0 YXJ0IC0+IGh3LXJlc2V0LW5ldCBpbnB1dApzZXQgJHtwcm9jZXNzb3J9LWdk YiBleGl0LW9uLWRldGFjaD8gMVxuIiAuCigkb3B0X3ZlcmJvc2UgPyAic2V0 ICR7cHJvY2Vzc29yfS1nZGIgdHJhY2UtZ2Ric2lkPyAkb3B0X3ZlcmJvc2Vc biIgOiAiIikgLgooJG9wdF92ZXJib3NlID8gInNldCAke3Byb2Nlc3Nvcn0t Z2RiIHRyYWNlLWdkYnNlcnY/ICRvcHRfdmVyYm9zZVxuIiA6ICIiKSAuCiIj ICR7cHJvY2Vzc29yfS1nZGItc29ja2V0CmNvbm5lY3QtcGluIGluaXQtc2Vx dWVuY2Ugb3V0cHV0LTIgLT4gJHtwcm9jZXNzb3J9LWdkYi1zb2NrZXQgaW5p dApjb25uZWN0LXBpbiBkZWluaXQtc2VxdWVuY2Ugb3V0cHV0LTYgLT4gJHtw cm9jZXNzb3J9LWdkYi1zb2NrZXQgZmluaQpjb25uZWN0LXBpbiAke3Byb2Nl c3Nvcn0tZ2RiLXNvY2tldCByeCAtPiAke3Byb2Nlc3Nvcn0tZ2RiIHJlbW90 ZS1yeApjb25uZWN0LXBpbiAke3Byb2Nlc3Nvcn0tZ2RiLXNvY2tldCB0eCA8 LSAke3Byb2Nlc3Nvcn0tZ2RiIHJlbW90ZS10eApjb25uZWN0LXBpbiBob3N0 LXNjaGVkIDYtZXZlbnQgLT4gJHtwcm9jZXNzb3J9LWdkYi1zb2NrZXQgcG9s bC1ldmVudApjb25uZWN0LXBpbiBob3N0LXNjaGVkIDYtY29udHJvbCA8LSAk e3Byb2Nlc3Nvcn0tZ2RiLXNvY2tldCBwb2xsLWNvbnRyb2wKc2V0ICR7cHJv Y2Vzc29yfS1nZGItc29ja2V0IHNvY2thZGRyLWxvY2FsIDAuMC4wLjA6JG9w dF9nZGJwb3J0eyRwcm9jZXNzb3J9XG4iIC4KKCRvcHRfdmVyYm9zZSA/ICJz ZXQgJHtwcm9jZXNzb3J9LWdkYi1zb2NrZXQgdmVyYm9zZT8gJG9wdF92ZXJi b3NlXG4iIDogIiIpOwogICAgaWYgKCRwcm9jZXNzb3IgbmUgImNwdSIpCiAg ICAgIHsKCSRub25fY3B1X2dkYnMgKys7CiAgICAgIH0KICB9CgojIFVwZGF0 ZSB0aGUgZW5hYmxlIHRocmVzaG9sZHMgb2YgdGhlIHNoZWR1bGVycyB0byBh Y2NvdW50IGZvciBHREIgY29tcG9uZW50cwojIGF0dGFjaGVkIHRvIHByb2Nl c3NvcnMgb3RoZXIgdGhhbiB0aGUgY3B1LgppZiAoJG5vbl9jcHVfZ2RicyAh PSAwKQogIHsKICAgICRvcHRfcGVyc2lzdGVudCA9IDE7CiAgICAkc2NoZWRf dGhyZXNob2xkID0gJG5vbl9jcHVfZ2RicyArIDE7CiAgICAkdGhpcmRfc2Vj dGlvbiAuPSAiCiMgV2Ugd2FudCB0aGUgdGFyZ2V0IHNjaGVkdWxlciB0byBj b21lIHVwIGVuYWJsZWQsIHNvIHVwZGF0ZSB0aGUgZW5hYmxlZD8KIyBhdHRy aWJ1dGUgdG8gbWF0Y2ggdGhlIHRocmVzaG9sZC4gVGhlIEdEQiBjb21wb25l bnRzIHdpbGwgdGFrZSBjYXJlIG9mCiMgZGlzYWJsaW5nIGl0IHdoZW4gbmVj ZXNzYXJ5LgpzZXQgdGFyZ2V0LXNjaGVkIGVuYWJsZS10aHJlc2hvbGQgJHNj aGVkX3RocmVzaG9sZApzZXQgdGFyZ2V0LXNjaGVkIGVuYWJsZWQ/ICRzY2hl ZF90aHJlc2hvbGQKIjsKICB9CgojIEFkZGl0aW9uYWwgc2V0dGluZ3MgZm9y IG1haW4gY3B1IGdkYi4KaWYgKCRvcHRfZ2RiKQogIHsKICAgIGlmICgkb3B0 X2JvYXJkID1+IC9nbG9zcy8pCiAgICAgIHsKCSRzZWNvbmRfc2VjdGlvbiAu PSAiIyBnZGIgdy8gZ2xvc3MKY29ubmVjdC1waW4gZ2xvc3MgdHJhcC1jaGFp biA8LT4gY3B1LWdkYiB0cmFwCmNvbm5lY3QtcGluIGdsb3NzIHRyYXAtY29k ZS1jaGFpbiAtPiBjcHUtZ2RiIHRyYXAtY29kZQpjb25uZWN0LXBpbiBnbG9z cyBwcm9jZXNzLXNpZ25hbCAtPiBjcHUtZ2RiIGdsb3NzLXByb2Nlc3Mtc2ln bmFsCmNvbm5lY3QtcGluIGdsb3NzIGRlYnVnLXR4IC0+IGNwdS1nZGIgdGFy Z2V0LXR4CnJlbGF0ZSBjcHUtZ2RiIGdsb3NzIGdsb3NzCnNldCBjcHUtZ2Ri IGVuYWJsZS1aLXBhY2tldD8gJGVuYWJsZV96X3BhY2tldApzZXQgY3B1LWdk YiBvcGVyYXRpbmctbW9kZT8gZmFsc2UKIjsKICAgICAgfQogICAgZWxzZQog ICAgICB7Cgkkc2Vjb25kX3NlY3Rpb24gLj0gIiMgZ2RiIHcvbyBnbG9zcwpj b25uZWN0LXBpbiBjcHUgdHJhcCA8LT4gY3B1LWdkYiB0cmFwCmNvbm5lY3Qt cGluIGNwdSB0cmFwLWNvZGUgLT4gY3B1LWdkYiB0cmFwLWNvZGUKIjsKICAg ICAgfQogIH0KCiMgR2VuZXJhdGUgYSBsb2FkZXIgZm9yIGVhY2ggcHJvY2Vz c29yCmZvcmVhY2ggJHByb2Nlc3NvciAoa2V5cyAlb3B0X2xvYWQpCiAgewog ICAgJGZpcnN0X3NlY3Rpb24gLj0gIiMgJHtwcm9jZXNzb3J9IGxvYWRlclxu IiAuCgkmc2lkY29uZl9uZXcoInN3LWxvYWQtZWxmIiwgIiR7cHJvY2Vzc29y fS1sb2FkZXIiKSAuICJcbiI7CiAgICAkc2Vjb25kX3NlY3Rpb24gLj0gIiMg JHtwcm9jZXNzb3J9IGxvYWRlcgpzZXQgJHtwcm9jZXNzb3J9LWxvYWRlciBm aWxlIFwiJG9wdF9sb2FkeyRwcm9jZXNzb3J9XCIgXG4iIC4KKCRvcHRfdmVy Ym9zZSA/ICJzZXQgJHtwcm9jZXNzb3J9LWxvYWRlciB2ZXJib3NlPyAkb3B0 X3ZlcmJvc2VcbiIgOiAiIik7CgogICAgIyBIYXZlIHRoZSBsb2FkZXIgd3Jp dGUgZGF0YSB2aWEgJGxvYWRfbWFwcGVyX2RhdGEgZm9yIHRoZSAiY3B1IiBw cm9jZXNzb3IKICAgIGlmICgkcHJvY2Vzc29yIGVxICJjcHUiKQogICAgICB7 CgkgICRzZWNvbmRfc2VjdGlvbiAuPQoJICAgICAgImNvbm5lY3QtYnVzICR7 cHJvY2Vzc29yfS1sb2FkZXIgbG9hZC1hY2Nlc3Nvci1kYXRhICRsb2FkX21h cHBlcl9kYXRhXG4iOwogICAgICB9CiAgICBlbHNlCiAgICAgIHsKCSAgJHNl Y29uZF9zZWN0aW9uIC49CgkgICAgICAiY29ubmVjdC1idXMgJHtwcm9jZXNz b3J9LWxvYWRlciBsb2FkLWFjY2Vzc29yLWRhdGEgJHtwcm9jZXNzb3J9LW1h cHBlciBhY2Nlc3MtcG9ydCAjIGRvbid0IHRyYWNlIGxvYWRpbmdcbiI7CiAg ICAgIH0KCiAgICAkc2Vjb25kX3NlY3Rpb24gLj0KCSJjb25uZWN0LWJ1cyAk e3Byb2Nlc3Nvcn0tbG9hZGVyIGxvYWQtYWNjZXNzb3ItaW5zbiAke3Byb2Nl c3Nvcn0tbWFwcGVyIGFjY2Vzcy1wb3J0ICMgZG9uJ3QgdHJhY2UgbG9hZGlu Zwpjb25uZWN0LXBpbiBpbml0LXNlcXVlbmNlIG91dHB1dC0xIC0+ICR7cHJv Y2Vzc29yfS1sb2FkZXIgbG9hZCEKY29ubmVjdC1waW4gJHtwcm9jZXNzb3J9 LWxvYWRlciBzdGFydC1wYy1zZXQgLT4gJHtwcm9jZXNzb3J9IHN0YXJ0LXBj LXNldCEKY29ubmVjdC1waW4gJHtwcm9jZXNzb3J9LWxvYWRlciBlbmRpYW4t c2V0IC0+ICR7cHJvY2Vzc29yfSBlbmRpYW4tc2V0IQpjb25uZWN0LXBpbiAk e3Byb2Nlc3Nvcn0tbG9hZGVyIGVycm9yIC0+IG1haW4gc3RvcCEKIjsKICB9 CgojIC0tdHJhY2UtY29yZS12aXN1YWwKCmlmICgkb3B0X3RyYWNlX2NvcmVf dmlzdWFsICE9IDApCiAgewogICAgJGFueV90Y2wgPSAxOwoKICAgICRmaXJz dF9zZWN0aW9uIC49ICIjIHZpc3VhbCBidXMgYWNjZXNzIHZpZXdlclxuIiAu CiAgICAgICZzaWRjb25mX25ldygiaHctdmlzdWFsLXByb2JlLWJ1cyIsICJ2 aXN1YWwtYnVzLXByb2JlIikgLiAiXG4iOwogICAgJHNlY29uZF9zZWN0aW9u IC49ICIjIHZpc3VhbCBidXMgYWNjZXNzIHZpZXdlcgpzZXQgdmlzdWFsLWJ1 cy1wcm9iZSBhZGRyMmxpbmUtY21kIFwiYXJtLWVsZi1hZGRyMmxpbmUgLUMg LWYgLWUgJGV4ZWNcIgpyZWxhdGUgdmlzdWFsLWJ1cy1wcm9iZSBjcHUgY3B1 CmNvbm5lY3QtcGluIGJ1cy1wcm9iZSBhZGRyZXNzIC0+IHZpc3VhbC1idXMt cHJvYmUgYWRkcmVzcwpjb25uZWN0LXBpbiBidXMtcHJvYmUgZGF0YS1oaWdo IC0+IHZpc3VhbC1idXMtcHJvYmUgZGF0YS1oaWdoCmNvbm5lY3QtcGluIGJ1 cy1wcm9iZSBkYXRhLWxvdyAtPiB2aXN1YWwtYnVzLXByb2JlIGRhdGEtbG93 CmNvbm5lY3QtcGluIGJ1cy1wcm9iZSBzdGF0dXMgLT4gdmlzdWFsLWJ1cy1w cm9iZSBzdGF0dXMKY29ubmVjdC1waW4gYnVzLXByb2JlIHR5cGUgLT4gdmlz dWFsLWJ1cy1wcm9iZSB0eXBlCiI7CiAgfQoKIyAtLXRrc20KaWYgKCRvcHRf dGtzbSAhPSAwKQogIHsKICAgICRhbnlfdGNsID0gMTsKCiAgICAkZmlyc3Rf c2VjdGlvbiAuPSAiIyB0ayBzeXN0ZW0gbW9uaXRvclxuIiAuCiAgICAgICZz aWRjb25mX25ldygic2lkLWNvbnRyb2wtdGtzbSIsICJ0a3NtIikgLiAiXG4i OwoKICAgICRzZWNvbmRfc2VjdGlvbiAuPSAiIyB0ayBzeXN0ZW0gbW9uaXRv cgpyZWxhdGUgbWFpbiBjb21wb25lbnQtY2F0YWxvZy1pbmZvcm1lZXMgdGtz bQojIHJlZnJlc2gKc2V0IGhvc3Qtc2NoZWQgMS1yZWd1bGFyPyAxCnNldCBo b3N0LXNjaGVkIDEtdGltZSAxMDAwCmNvbm5lY3QtcGluIGhvc3Qtc2NoZWQg MS1ldmVudCAtPiB0a3NtIHJlZnJlc2gKIjsKICB9CgppZiAoJG9wdF90a3Nt ICYmICRvcHRfZ2RiKQogIHsKICAgICR0aGlyZF9zZWN0aW9uIC49ICIjIHRy aWdnZXJwb2ludCBzaWduYWwKY29ubmVjdC1waW4gdGtzbSB0cmlnZ2VycG9p bnQtaGl0IC0+IGNwdS1nZGIgc3RvcC10YXJnZXQKIjsKICB9CgoKIyAtLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiMgTWVtb3J5IGxvZ2ljLgoK JG1lbXMgPSAwOwp3aGlsZSAoJCNvcHRfbWVtb3J5X3JlZ2lvbiA+PSAwKQog IHsKICAgICRzcGVjID0gc2hpZnQgQG9wdF9tZW1vcnlfcmVnaW9uOwogICAg JG1lbXMgKys7CiAgICAjIEZvcm1hdDogQkFTRSxTSVpFCiAgICAjICAgICAg ICAgWyxidXM9TUFQUEVSXQogICAgIyAgICAgICAgIFsscmVhZC1vbmx5XQog ICAgIyAgICAgICAgIFssYWxpYXM9QkFTRTJdCiAgICAjICAgICAgICAgWyxm aWxlPU5BTUVdCiAgICAjICAgICAgICAgWyxtbWFwXQogICAgIyAgICAgICAg IFssbGF0ZW5jeT1SWzpXXV0KICAgICMgICAgICAgICBbLHJlbGF0ZT1DT01Q T05FTlQvUkVMQVRJT05dICAoZGVwcmVjYXRlZCkKICAgIEBzcGVjID0gc3Bs aXQgLywvLCAkc3BlYzsKCiAgICAjIHByaW50IFNUREVSUiAic3BlYz0kc3Bl Y1xuIjsKICAgIGRpZSAiQ2Fubm90IHBhcnNlIG1lbW9yeSByZWdpb24gc3Bl Y2lmaWNhdGlvbiBgJHNwZWMnLlxuIiBpZiAoJCNzcGVjIDwgMSk7CgogICAg JGJhc2UgPSBzaGlmdCBAc3BlYzsKICAgICRiYXNlID0gb2N0KCRiYXNlKSBp ZiAoJGJhc2UgPX4gL14wLyk7CiAgICAkc2l6ZSA9IHNoaWZ0IEBzcGVjOwog ICAgJHNpemUgPSBvY3QoJHNpemUpIGlmICgkc2l6ZSA9fiAvXjAvKTsKCiAg ICBkaWUgIklsbGVnYWwgbWVtb3J5IHJlZ2lvbiBzaXplIGAkc2l6ZSdcbiIg aWYgKCRzaXplIDw9IDApOwoKICAgICRsYXN0ID0gJGJhc2UgKyAkc2l6ZSAt IDE7CiAgICAkbWVtYnVzID0gInJlYWQtd3JpdGUtcG9ydCI7ICMgZGVmYXVs dCByZWFkLXdyaXRlCiAgICAkbWVtZmlsZSA9ICIiOyAjIGRlZmF1bHQgbm8g ZmlsZQogICAgJG1lbW1hcHBlciA9ICJjcHUtbWFwcGVyIjsKICAgICRtbWFw ID0gMDsgIyBkZWZhdWx0IG5vIG1tYXAKICAgICRsYXRyID0gMDsgJGxhdHcg PSAwOyAjIGRlZmF1bHQgbm8gbGF0ZW5jaWVzCiAgICBAYWxpYXNlcyA9ICgp OwogICAgQHJlbGF0ZXMgPSAoKTsKCiAgICAjIGNvbW1vbiBzdHVmZgogICAg JGZpcnN0X3NlY3Rpb24gLj0gIiMgbWVtb3J5IHJlZ2lvbiAkbWVtcyAoJHNw ZWMpXG4iIC4KICAgICAgJnNpZGNvbmZfbmV3KCJody1tZW1vcnktcmFtL3Jv bS1iYXNpYyIsICJtZW0kbWVtcyIpIC4gIlxuIjsKICAgICR0aGlyZF9zZWN0 aW9uIC49ICIjIG1lbW9yeSByZWdpb24gJG1lbXMgKCRzcGVjKSBjb25maWd1 cmF0aW9uXG4iIC4KICAgICAgInNldCBtZW0kbWVtcyBzaXplICRzaXplXG4i OwoKICAgICMgY29uc3VtZSBvdGhlciBvcHRpb25zCiAgICB3aGlsZSAoJCNz cGVjID49IDApCiAgICAgIHsKCSRvcHQgPSBzaGlmdCBAc3BlYzsKCWlmICgk b3B0IGVxICJyZWFkLW9ubHkiKSB7ICRtZW1idXMgPSAicmVhZC1vbmx5LXBv cnQiOyB9CgllbHNpZiAoJG9wdCBlcSAibW1hcCIpIHsgJG1tYXAgPSAxOyB9 CgllbHNpZiAoJG9wdCA9fiAvYnVzPSguKykvKSB7ICRtZW1tYXBwZXIgPSAk MTsgfQoJZWxzaWYgKCRvcHQgPX4gL2ZpbGU9KC4rKS8pIHsgJG1lbWZpbGUg PSAkMTsgfQoJZWxzaWYgKCRvcHQgPX4gL2FsaWFzPSguKykvKSB7IHB1c2gg QGFsaWFzZXMsICQxIH0KCWVsc2lmICgkb3B0ID1+IC9yZWxhdGU9KC4rKS8p IHsgcHVzaCBAcmVsYXRlcywgJDEgfQoJZWxzaWYgKCRvcHQgPX4gL2xhdGVu Y3k9KFxkKyk6KFxkKykvKSB7ICRsYXRyID0gJDE7ICRsYXR3ID0gJDIgfQoJ ZWxzaWYgKCRvcHQgPX4gL2xhdGVuY3k9KFxkKykvKSB7ICRsYXRyID0gJDE7 ICRsYXR3ID0gJDEgfQoJZWxzZSB7IGRpZSAiQ2Fubm90IHBhcnNlIG1lbW9y eSByZWdpb24gb3B0aW9uIGAkb3B0Jy5cbiI7IH0KICAgICAgfQoKICAgICMg cHJvY2VzcyBtZW1vcnkgbWFwcwogICAgJHRoaXJkX3NlY3Rpb24gLj0gImNv bm5lY3QtYnVzICRtZW1tYXBwZXIgbWVtJG1lbXM6WyRiYXNlLCRsYXN0XSBt ZW0kbWVtcyAkbWVtYnVzXG4iOwoKICAgIGZvcmVhY2ggJGFsaWFzIChAYWxp YXNlcykKICAgICAgewoJJGFsaWFzID0gb2N0KCRhbGlhcykgaWYgKCRhbGlh cyA9fiAvXjAvKTsKCSRhbGlhc2VuZCA9ICRhbGlhcyArICRzaXplIC0gMTsK CSR0aGlyZF9zZWN0aW9uIC49ICJjb25uZWN0LWJ1cyAkbWVtbWFwcGVyIG1l bSRtZW1zOlskYWxpYXMsJGFsaWFzZW5kXSBtZW0kbWVtcyAkbWVtYnVzXG4i OwogICAgICB9CgogICAgZm9yZWFjaCAkcmVsYXRlIChAcmVsYXRlcykgewog ICAgICAkcmVsYXRlID1+IC8oLiopXC8oLiopLzsKICAgICAgJHRoaXJkX3Nl Y3Rpb24gLj0gInJlbGF0ZSAkMSAkMiBtZW0kbWVtc1xuIjsKICAgIH0KCiAg ICAjIHByb2Nlc3MgZmlsZSBiYWNraW5nIHN0b3JlCiAgICBpZiAoJG1lbWZp bGUpCiAgICAgIHsKCSR0aGlyZF9zZWN0aW9uIC49ICJzZXQgbWVtJG1lbXMg aW1hZ2UtZmlsZSBcIiRtZW1maWxlXCJcbiI7CgoJaWYgKCRtbWFwKSB7Cgkg ICR0aGlyZF9zZWN0aW9uIC49ICJjb25uZWN0LXBpbiBpbml0LXNlcXVlbmNl IG91dHB1dC0xIC0+IG1lbSRtZW1zIGltYWdlLW1tYXBcbiI7Cgl9IGVsc2Ug ewoJICAkdGhpcmRfc2VjdGlvbiAuPSAiY29ubmVjdC1waW4gaW5pdC1zZXF1 ZW5jZSBvdXRwdXQtMSAtPiBtZW0kbWVtcyBpbWFnZS1sb2FkXG4iOwoJfQoK CSMgc2F2ZSBvbmx5IGlmIG1lbW9yeSB3YXMgd3JpdGVhYmxlIGFuZCBub3Qg bWVtb3J5LW1hcHBlZAoJaWYgKCRtZW1idXMgZXEgInJlYWQtd3JpdGUtcG9y dCIgJiYgISRtbWFwKSB7CgkgICR0aGlyZF9zZWN0aW9uIC49ICJjb25uZWN0 LXBpbiBkZWluaXQtc2VxdWVuY2Ugb3V0cHV0LTYgLT4gbWVtJG1lbXMgaW1h Z2Utc3RvcmVcbiI7Cgl9CiAgICAgIH0KCiAgICAjIHByb2Nlc3MgbGF0ZW5j aWVzCiAgICBpZiAoJGxhdHIgIT0gMCkgeyAkdGhpcmRfc2VjdGlvbiAuPSAi c2V0IG1lbSRtZW1zIHJlYWQtbGF0ZW5jeSAkbGF0clxuIiB9CiAgICBpZiAo JGxhdHcgIT0gMCkgeyAkdGhpcmRfc2VjdGlvbiAuPSAic2V0IG1lbSRtZW1z IHdyaXRlLWxhdGVuY3kgJGxhdHdcbiIgfQogIH0KCgojIC0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0KIyBSZWFsbHkgbWlzY2VsbGFub3VzIHN0 dWZmLgoKIyBzaWRydGM6IDggYnl0ZXMKaWYgKCRvcHRfc2lkcnRjKQogIHsK ICAgICRhZGRyID0gJG9wdF9zaWRydGM7CiAgICAkYWRkciA9IG9jdCgkYWRk cikgaWYgKCRhZGRyID1+IC9eMC8pOwogICAgJGFkZHJlbmQgPSAkYWRkciAr IDc7CgogICAgJGZpcnN0X3NlY3Rpb24gLj0gIiMgc3BlY2lhbCBydGNcbiIg LgogICAgICAmc2lkY29uZl9uZXcoImh3LXJ0Yy1zaWQiLCAic2lkcnRjIikg LiAiXG4iOwoKICAgICR0aGlyZF9zZWN0aW9uIC49ICIjIHNwZWNpYWwgcnRj IG1hcHBpbmcKY29ubmVjdC1idXMgY3B1LW1hcHBlciBzaWRydGM6WyRhZGRy LCRhZGRyZW5kXSBzaWRydGMgcmVnaXN0ZXJzCiI7CiAgfQoKCiMgc2lkY29k ZWM6IDIwIGJ5dGVzCmlmICgkb3B0X3NpZGNvZGVjKQogIHsKICAgICRhZGRy ID0gJG9wdF9zaWRjb2RlYzsKICAgICRhZGRyID0gb2N0KCRhZGRyKSBpZiAo JGFkZHIgPX4gL14wLyk7CiAgICAkYWRkcmVuZCA9ICRhZGRyICsgMTk7Cgog ICAgJGZpcnN0X3NlY3Rpb24gLj0gIiMgc3BlY2lhbCBjb2RlYyAmIGhvc3Qg YXVkaW9cbiIgLgogICAgICAmc2lkY29uZl9uZXcoImh3LWF1ZGlvLXNpZCIs ICJzaWRjb2RlYyIpIC4gIlxuIiAuCiAgICAgICZzaWRjb25mX25ldygic2lk LWlvLWF1ZGlvIiwgInNpZGF1ZGlvIikgLiAiXG4iIC4KICAgICAgIiI7Cgog ICAgJHRoaXJkX3NlY3Rpb24gLj0gIiMgc3BlY2lhbCBjb2RlYyBtYXBwaW5n CmNvbm5lY3QtYnVzIGNwdS1tYXBwZXIgc2lkY29kZWM6WyRhZGRyLCRhZGRy ZW5kXSBzaWRjb2RlYyByZWdpc3RlcnMKIyBjb2RlYyA8LT4gaG9zdCBhdWRp byBjb25uZWN0aW9ucwpjb25uZWN0LXBpbiBzaWRjb2RlYyB0eC1zYW1wbGUg LT4gc2lkYXVkaW8gdHgtc2FtcGxlCmNvbm5lY3QtcGluIHNpZGNvZGVjIHJ4 LXNhbXBsZSA8LSBzaWRhdWRpbyByeC1zYW1wbGUKY29ubmVjdC1waW4gc2lk Y29kZWMgdHgtbW9kZSAtPiBzaWRhdWRpbyB0eC1tb2RlCmNvbm5lY3QtcGlu IHNpZGNvZGVjIHR4LXBlbmRpbmcgPC0gc2lkYXVkaW8gdHgtcGVuZGluZwpj b25uZWN0LXBpbiBzaWRjb2RlYyByeC1tb2RlIC0+IHNpZGF1ZGlvIHJ4LW1v ZGUKY29ubmVjdC1waW4gc2lkY29kZWMgcngtcGVuZGluZyA8LSBzaWRhdWRp byByeC1wZW5kaW5nCmNvbm5lY3QtcGluIHNpZGNvZGVjIGNvbmZpZy1zZXQg LT4gc2lkYXVkaW8gY29uZmlnLXNldAojIGhvc3QgYXVkaW8gcG9sbGluZwpz ZXQgaG9zdC1zY2hlZCA3LXJlZ3VsYXI/IDEKc2V0IGhvc3Qtc2NoZWQgNy10 aW1lIDEwMApjb25uZWN0LXBpbiBob3N0LXNjaGVkIDctZXZlbnQgLT4gc2lk YXVkaW8gcG9sbAoiOwogIH0KCiMgLS10a3NjaGVkCmlmICgkb3B0X3Rrc2No ZWQgIT0gMCkKICB7CiAgICAkYW55X3RjbCA9IDE7CgogICAgJGZpcnN0X3Nl Y3Rpb24gLj0gIiMgdGsgdmlzdWFsIHNjaGVkdWxlciBjb250cm9sbGVyXG4i IC4KICAgICAgJnNpZGNvbmZfbmV3KCJzaWQtdmlzdWFsLXNjaGVkIiwgInRr c2NoZWQiKSAuICJcbiI7CgogICAgJHNlY29uZF9zZWN0aW9uIC49ICIjIHRr IHN5c3RlbSBtb25pdG9yCnJlbGF0ZSB0a3NjaGVkIHNjaGVkdWxlciB0YXJn ZXQtc2NoZWQKIjsKICB9CgojIGFueSB0Y2wgc3R1ZmY/CmlmICgkYW55X3Rj bCkKICB7CiAgICAkZmlyc3Rfc2VjdGlvbiAuPSAiIyB0Y2wvdGsgYWRhcHRp dmUgZXZlbnQgcG9sbGluZyIgLiAiXG4iIC4KICAgICAgJnNpZGNvbmZfbmV3 KCJicmlkZ2UtdGNsIiwgInRjbC1ldmVudC1jb25zdW1lciIpIC4gIlxuIjsK ICAgICR0aGlyZF9zZWN0aW9uIC49ICIjIHRjbC90ayBhZGFwdGl2ZSBldmVu dCBwb2xsaW5nCmNvbm5lY3QtcGluIGhvc3Qtc2NoZWQgMi1ldmVudCAtPiB0 Y2wtZXZlbnQtY29uc3VtZXIgIWV2ZW50CmNvbm5lY3QtcGluIGhvc3Qtc2No ZWQgMi1jb250cm9sIDwtIHRjbC1ldmVudC1jb25zdW1lciAhZXZlbnQtY29u dHJvbApjb25uZWN0LXBpbiBpbml0LXNlcXVlbmNlIG91dHB1dC03IC0+IHRj bC1ldmVudC1jb25zdW1lciAhZXZlbnQKIjsKICB9CgoKIyBhZGQgZHNvIGNv bW1hbmRzCmZvcmVhY2ggJGxpYiAoc29ydCBrZXlzICVjb21wb25lbnRfbGli cykKICB7CiAgICAkc3ltYm9sID0gJGNvbXBvbmVudF9saWJzeyRsaWJ9Owog ICAgJGxpYl9sYSA9ICJsaWIiIC4gJGxpYiAuICIubGEiOwoKICAgICMgbWlu b3Igb3B0aW1pemF0aW9uOiBkb24ndCBpbmNsdWRlIGxhcmdlIHRjbCBkbGwg dW5sZXNzIG5lZWRlZAogICAgbmV4dCBpZiAoJGFueV90Y2wgPT0gMCAmJiAk bGliIGVxICJ0Y2xhcGkiKTsKCiAgICAkemVyb3RoX3NlY3Rpb24gLj0gImxv YWQgJGxpYl9sYSAkc3ltYm9sXG4iOwogIH0KCgojIC0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0KaWYgKCRvcHRfcGVyc2lzdGVudCkgeyAkemVy b3RoX3NlY3Rpb24gLj0gInNldCBtYWluIHBlcnNpc3RlbnQ/IHRydWVcbiI7 IH0KCiMgQnVpbGQgY29uZmlnIGZpbGUKJHRtcGRpciA9ICRFTlZ7J1RNUERJ Uid9ID8gJEVOVnsnVE1QRElSJ30gOiAiL3RtcCI7CiRiYXNlbmFtZSA9ICRl eGVjIG5lICIiID8gYGJhc2VuYW1lICRleGVjYCA6ICJzaWQiOwpjaG9tcCgk YmFzZW5hbWUpOwokdGZpbGUgPSAkb3B0X3NhdmVfdGVtcHMgPyAiJGJhc2Vu YW1lLmNvbmYiIDogIiR0bXBkaXIvJGJhc2VuYW1lLSQkLmNvbmYiOwpvcGVu IENPTkZJRywgIj4kdGZpbGUiIHx8IGRpZSAoIkNhbm5vdCB3cml0ZSB0byAk dGZpbGVcbiIpOwpwcmludCBDT05GSUcgJHplcm90aF9zZWN0aW9uOwpwcmlu dCBDT05GSUcgJGZpcnN0X3NlY3Rpb247CnByaW50IENPTkZJRyAkc2Vjb25k X3NlY3Rpb247CnByaW50IENPTkZJRyAkdGhpcmRfc2VjdGlvbjsKY2xvc2Ug Q09ORklHOwoKIyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiMg RXhpdCBlYXJseT8KCmlmICgkb3B0X3NhdmVfdGVtcHMpCiAgewogICAgcHJp bnQgIkNvbmZpZ3VyYXRpb24gZmlsZSBzYXZlZCB0byBgJHRmaWxlJy5cbiI7 CiAgfQoKaWYgKCRvcHRfbm9fcnVuKQogIHsKICAgIGV4aXQgKDApOwogIH0K CgojIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIyAoR2VuZXJh dGUgYW5kKSBydW4gYSBzaW11bGF0b3IKCkBhcmdzID0gKCIkc2lkIik7CnB1 c2ggQGFyZ3MsICgkdGZpbGUpOwoKIyBzcGF3biBzaWQgY2hpbGQgcHJvY2Vz cwpzeXN0ZW0gQGFyZ3M7CiRleGl0X3ZhbHVlID0gJD87CgojIFByb2Nlc3Mg dGhlIGV4aXQgY29kZS4KaWYgKCgkZXhpdF92YWx1ZSAmIDB4ZmYwMCkgPT0g MHhmZjAwKSAjIGNhdGNoIG9sZCBwZXJscycgZm9yayByYyBidWdzCiB7CiAg IHByaW50ICJcbkNhbm5vdCBydW4gYEBhcmdzJzogJCFcbiI7CiB9CgppZiAo ISAkb3B0X3NhdmVfdGVtcHMpCiAgewogICAgdW5saW5rICR0ZmlsZTsKICB9 CgpleGl0ICgkZXhpdF92YWx1ZSA+PiA4KTsKCgojIC0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0KCgpzdWIgc2lkY29uZl9uZXcgewogIG15ICgk Y29tcHR5cGUsJGNvbXBuYW1lKSA9IEBfOwogIG15ICR3cmFwX3RoaXMgPSAw OwogIGZvciAoJGk9MDsgJGk8c2NhbGFyKEBvcHRfd3JhcCk7ICRpKyspIHsK ICAgIGlmICgkb3B0X3dyYXBbJGldIGVxICRjb21wbmFtZSkgewogICAgICAk d3JhcF90aGlzID0gMTsKICAgICAgJGFueV90Y2wgPSAxOwogICAgfQogIH0K ICAjIHByaW50ICR3cmFwX3RoaXMgPT0gMCA/ICJub3QiIDogIiI7CiAgIyBw cmludCAiIHdyYXBwaW5nICRjb21wbmFtZSAkY29tcHR5cGVcbiI7CiAgaWYg KCR3cmFwX3RoaXMpCiAgICB7CiAgICAgIHJldHVybiAibmV3IHNpZC1hcGkt dHJhY2UgJHtjb21wbmFtZX0KbmV3ICR7Y29tcHR5cGV9ICR7Y29tcG5hbWV9 LXRyYWNlZApyZWxhdGUgJHtjb21wbmFtZX0gdmljdGltICR7Y29tcG5hbWV9 LXRyYWNlZCI7CiAgICB9CiAgZWxzZQogICAgewogICAgICByZXR1cm4gIm5l dyAke2NvbXB0eXBlfSAke2NvbXBuYW1lfSI7CiAgICB9Cn0KCgojIExvY2Fs IFZhcmlhYmxlczoKIyBtb2RlOiBwZXJsCiMgRW5kOgo= ------_=_NextPart_001_01C6177F.41017AB5--