From mboxrd@z Thu Jan 1 00:00:00 1970 X-Msuck: nntp://news.gmane.org/gmane.linux.lib.musl.general/6504 Path: news.gmane.org!not-for-mail From: stephen Turner Newsgroups: gmane.linux.lib.musl.general Subject: Re: issues with headers? Date: Fri, 14 Nov 2014 18:57:17 -0500 Message-ID: References: <20141114203756.53904173@dragora.org> Reply-To: musl@lists.openwall.com NNTP-Posting-Host: plane.gmane.org Mime-Version: 1.0 Content-Type: multipart/mixed; boundary=047d7b2e4efa8d896e0507da6323 X-Trace: ger.gmane.org 1416009457 24111 80.91.229.3 (14 Nov 2014 23:57:37 GMT) X-Complaints-To: usenet@ger.gmane.org NNTP-Posting-Date: Fri, 14 Nov 2014 23:57:37 +0000 (UTC) To: musl@lists.openwall.com Original-X-From: musl-return-6517-gllmg-musl=m.gmane.org@lists.openwall.com Sat Nov 15 00:57:33 2014 Return-path: Envelope-to: gllmg-musl@m.gmane.org Original-Received: from mother.openwall.net ([195.42.179.200]) by plane.gmane.org with smtp (Exim 4.69) (envelope-from ) id 1XpQk8-0004Xn-06 for gllmg-musl@m.gmane.org; Sat, 15 Nov 2014 00:57:32 +0100 Original-Received: (qmail 26209 invoked by uid 550); 14 Nov 2014 23:57:30 -0000 Mailing-List: contact musl-help@lists.openwall.com; run by ezmlm Precedence: bulk List-Post: List-Help: List-Unsubscribe: List-Subscribe: Original-Received: (qmail 26198 invoked from network); 14 Nov 2014 23:57:29 -0000 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113; h=mime-version:in-reply-to:references:date:message-id:subject:from:to :content-type; bh=DHAkthDQljEiqfZhoTKTeaoBdTM6GMq8pp23wn5rTNU=; b=HwIWKJ+7cDe2beYJ3vIKBbJr9fpJjQFTtRcRCeBMFUPBJbN2MeHb9zsLDeb8jTUxK7 +qM6toDRyubg8lxnMnLGyLzx8xDl5UB6IFX4fZJpv0hgS5oF4dGJrViAjH0ahjEbVVO9 rZKfb80+olp24rCD+JBnMjJNJ/0x3lfqWL/GDb+Ye0tYcowkP+cSYld66ZFyikLLYtl0 NqrFCATWFcpO9+J61nLF4PUH4bpoiUPrzF2rjQbRP4stlXDackfvNz+mxYkzvN+m7UrK F3VDA36K5Y85VEEEIclmooBi1hzY2xC8Dc/2pElnTmoFIERGsIU7TQ3c6fUNmmYzftGv 64Gg== X-Received: by 10.60.129.199 with SMTP id ny7mr4673355oeb.48.1416009438029; Fri, 14 Nov 2014 15:57:18 -0800 (PST) In-Reply-To: <20141114203756.53904173@dragora.org> Xref: news.gmane.org gmane.linux.lib.musl.general:6504 Archived-At: --047d7b2e4efa8d896e0507da6323 Content-Type: multipart/alternative; boundary=047d7b2e4efa8d89690507da6321 --047d7b2e4efa8d89690507da6321 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: quoted-printable there was an devel-m4.diff patch available from gregorr website where the gcc musl patch can be found albiet the m4 was in a different directory and didn't work. https://github.com/GregorR/musl-pkgsrc-patches/blob/master/devel-m4.diff I attached the config.log from the gmp folder. It complains when trying to run -std=3Dc99 or -std=3Dgnu99 -E On Fri, Nov 14, 2014 at 6:37 PM, Matias A. Fonzo wrote: > El Fri, 14 Nov 2014 15:22:28 -0500 > stephen Turner escribi=C3=B3: > > looks like i missed the patch for m4, again my mistake sorry. > > Question, which patch of m4?. > > > thanks, > > stephen > > > > On Fri, Nov 14, 2014 at 3:01 PM, stephen Turner > > wrote: > > > > > It appears like gmp doesn't play nice with musl hosts? a musl > > > target is fine allowing a cross environment to work but not a pure > > > musl evnironment or specifying musl as the host. > > > > > > I created a cross compiler successfully but using the cross > > > compiler to "recreate itself" hasn't worked when rebuilding gmp as > > > a part of the process. It could be me, everything up to this point > > > has been apparently but i was hoping someone could chime in and let > > > me know if they have compiled gmp on a native musl system or if it > > > requires a patch i missed or some gnu code? > > > > > > thanks, > > > stephen > > > > > > On Fri, Nov 14, 2014 at 2:49 PM, stephen Turner < > > > stephen.n.turner@gmail.com> wrote: > > > > > >> GMP errors out with "invalid configuration 'non-pc-linux-musl' not > > >> recognized. Im using the --target and --host flags i686-linux-musl > > >> and --build i686-linux-gnu. I also tried switching to a chroot > > >> musl env and running a plain configure on gmp only and it > > >> complains the compiler cant create executables which i know to be > > >> false. > > >> > > >> Will GMP compile on a musl system? > > >> Google search showed one other person with the issue but no answer. > > >> > > >> thanks, > > >> stephen > > >> > > >> > > >> > > >> On Thu, Nov 13, 2014 at 6:23 PM, stephen Turner < > > >> stephen.n.turner@gmail.com> wrote: > > >> > > >>> It looks like your right, I just ran a compile specifying musl > > >>> headers and this time it worked. I need to review my process yet > > >>> again and see what changed that fixed this issue. > > >>> > > >>> I new this wouldn't be easy but man i didn't expect it to feel > > >>> this finicky or fickle. > > >>> > > >>> thanks, > > >>> stephen > > >>> > > >>> On Thu, Nov 13, 2014 at 5:13 PM, Justin Cormack < > > >>> justin@specialbusservice.com> wrote: > > >>> > > >>>> On Thu, Nov 13, 2014 at 10:02 PM, stephen Turner > > >>>> wrote: > > >>>> > I have been trying various ways of compiling a musl system > > >>>> > using gcc > > >>>> and > > >>>> > found that GCC-4.7.3 does not seem to want to compile against > > >>>> > musl > > >>>> headers. > > >>>> > I install the linux headers in /usr/include then i install > > >>>> > musl and > > >>>> move its > > >>>> > headers to /usr/include. then i specify -I/usr/include to gcc > > >>>> > and it > > >>>> errors > > >>>> > every time (technically its /cross/usr/include as i have a > > >>>> > separated > > >>>> env > > >>>> > from my host system) The same compile works fine against musl > > >>>> > libs > > >>>> but not > > >>>> > the headers. The only change made from a working to a > > >>>> > non-working > > >>>> system > > >>>> > appears to be the use of the musl generated headers. > > >>>> > > > >>>> > In the scripts to build a musl toolchain (such as gregorr) the > > >>>> > header location is not specified but sysroot is used (which > > >>>> > obviously isn't > > >>>> linking > > >>>> > against the headers) I first started to see this issue when > > >>>> chroot'ing into > > >>>> > a newly created musl gcc system. > > >>>> > > > >>>> > Is musl suitable as a stand alone libc replacement? Should i > > >>>> > not be > > >>>> building > > >>>> > against musl headers? If there is any reports or details you > > >>>> > want me > > >>>> to > > >>>> > provide please let me know. > > >>>> > > >>>> You want to use a chroot or a VM with Musl if you are having > > >>>> these issues. Sabotage or Alpine are good options. It will save > > >>>> a lot of grief. Otherwise you are doing somethnig wrong that is > > >>>> hard to diagnose without much moer info. > > >>>> > > >>>> Justin > > >>>> > > >>> > > >>> > > >> > > > > > --047d7b2e4efa8d89690507da6321 Content-Type: text/html; charset=UTF-8 Content-Transfer-Encoding: quoted-printable
there was an devel-m4.diff patch available from gregorr we= bsite where the gcc musl patch can be found albiet the m4 was in a differen= t directory and didn't work.

<= div>I attached the config.log from the gmp folder. It complains when trying= to run -std=3Dc99 or -std=3Dgnu99 -E



On Fri,= Nov 14, 2014 at 6:37 PM, Matias A. Fonzo <selk@dragora.org> = wrote:
El Fri, 14 Nov 2014 15:22:28 -0500=
stephen Turner <stephen.n.= turner@gmail.com> escribi=C3=B3:
> looks like i missed the patch for m4, again my mistake sorry.

Question, which patch of m4?.

> thanks,
> stephen
>
> On Fri, Nov 14, 2014 at 3:01 PM, stephen Turner
> <stephen.n.turner@gma= il.com> wrote:
>
> > It appears like gmp doesn't play nice with musl hosts? a musl=
> > target is fine allowing a cross environment to work but not a pur= e
> > musl evnironment or specifying musl as the host.
> >
> > I created a cross compiler successfully but using the cross
> > compiler to "recreate itself" hasn't worked when re= building gmp as
> > a part of the process. It could be me, everything up to this poin= t
> > has been apparently but i was hoping someone could chime in and l= et
> > me know if they have compiled gmp on a native musl system or if i= t
> > requires a patch i missed or some gnu code?
> >
> > thanks,
> > stephen
> >
> > On Fri, Nov 14, 2014 at 2:49 PM, stephen Turner <
> > stephen.n.turner@gm= ail.com> wrote:
> >
> >> GMP errors out with "invalid configuration 'non-pc-l= inux-musl' not
> >> recognized. Im using the --target and --host flags i686-linux= -musl
> >> and --build i686-linux-gnu.=C2=A0 I also tried switching to a= chroot
> >> musl env and running a plain configure on gmp only and it
> >> complains the compiler cant create executables which i know t= o be
> >> false.
> >>
> >> Will GMP compile on a musl system?
> >> Google search showed one other person with the issue but no a= nswer.
> >>
> >> thanks,
> >> stephen
> >>
> >>
> >>
> >> On Thu, Nov 13, 2014 at 6:23 PM, stephen Turner <
> >> stephen.n.turne= r@gmail.com> wrote:
> >>
> >>> It looks like your right, I just ran a compile specifying= musl
> >>> headers and this time it worked. I need to review my proc= ess yet
> >>> again and see what changed that fixed this issue.
> >>>
> >>> I new this wouldn't be easy but man i didn't expe= ct it to feel
> >>> this finicky or fickle.
> >>>
> >>> thanks,
> >>> stephen
> >>>
> >>> On Thu, Nov 13, 2014 at 5:13 PM, Justin Cormack <
> >>> justin@sp= ecialbusservice.com> wrote:
> >>>
> >>>> On Thu, Nov 13, 2014 at 10:02 PM, stephen Turner
> >>>> <ste= phen.n.turner@gmail.com> wrote:
> >>>> > I have been trying various ways of compiling a m= usl system
> >>>> > using gcc
> >>>> and
> >>>> > found that GCC-4.7.3 does not seem to want to co= mpile against
> >>>> > musl
> >>>> headers.
> >>>> > I install the linux headers in /usr/include then= i install
> >>>> > musl and
> >>>> move its
> >>>> > headers to /usr/include. then i specify -I/usr/i= nclude to gcc
> >>>> > and it
> >>>> errors
> >>>> > every time (technically its /cross/usr/include a= s i have a
> >>>> > separated
> >>>> env
> >>>> > from my host system) The same compile works fine= against musl
> >>>> > libs
> >>>> but not
> >>>> > the headers. The only change made from a working= to a
> >>>> > non-working
> >>>> system
> >>>> > appears to be the use of the musl generated head= ers.
> >>>> >
> >>>> > In the scripts to build a musl toolchain (such a= s gregorr) the
> >>>> > header location is not specified but sysroot is = used (which
> >>>> > obviously isn't
> >>>> linking
> >>>> > against the headers)=C2=A0 I first started to se= e this issue when
> >>>> chroot'ing into
> >>>> > a newly created musl gcc system.
> >>>> >
> >>>> > Is musl suitable as a stand alone libc replaceme= nt? Should i
> >>>> > not be
> >>>> building
> >>>> > against musl headers? If there is any reports or= details you
> >>>> > want me
> >>>> to
> >>>> > provide please let me know.
> >>>>
> >>>> You want to use a chroot or a VM with Musl if you are= having
> >>>> these issues. Sabotage or Alpine are good options. It= will save
> >>>> a lot of grief. Otherwise you are doing somethnig wro= ng that is
> >>>> hard to diagnose without much moer info.
> >>>>
> >>>> Justin
> >>>>
> >>>
> >>>
> >>
> >


--047d7b2e4efa8d89690507da6321-- --047d7b2e4efa8d896e0507da6323 Content-Type: application/octet-stream; name="config.log" Content-Disposition: attachment; filename="config.log" Content-Transfer-Encoding: base64 X-Attachment-Id: f_i2i7ekbq0 VGhpcyBmaWxlIGNvbnRhaW5zIGFueSBtZXNzYWdlcyBwcm9kdWNlZCBieSBjb21waWxlcnMgd2hp bGUKcnVubmluZyBjb25maWd1cmUsIHRvIGFpZCBkZWJ1Z2dpbmcgaWYgY29uZmlndXJlIG1ha2Vz IGEgbWlzdGFrZS4KCkl0IHdhcyBjcmVhdGVkIGJ5IEdOVSBNUCBjb25maWd1cmUgNC4zLjIsIHdo aWNoIHdhcwpnZW5lcmF0ZWQgYnkgR05VIEF1dG9jb25mIDIuNjEuICBJbnZvY2F0aW9uIGNvbW1h bmQgbGluZSB3YXMKCiAgJCAvcm9vdC9jb2RlL2djYy9nbXAvY29uZmlndXJlIC0tY2FjaGUtZmls ZT0uL2NvbmZpZy5jYWNoZSAtLWRpc2FibGUtbmxzIC0tZGlzYWJsZS1zaGFyZWQgLS1lbmFibGUt c3RhdGljIC0td2l0aG91dC1oZWFkZXJzIC0td2l0aC1uZXdsaWIgLS1kaXNhYmxlLWRlY2ltYWwt ZmxvYXQgLS1kaXNhYmxlLWxpYmdvbXAgLS1kaXNhYmxlLWxpYm11ZGZsYXAgLS1kaXNhYmxlLWxp YnNzcCAtLWRpc2FibGUtbGliYXRvbWljIC0tZGlzYWJsZS1saWJxdWFkbWF0aCAtLWRpc2FibGUt bXVsdGlsaWIgLS1kaXNhYmxlLWJvb3RzdHJhcCAtLWRpc2FibGUtdGhyZWFkcyAtLXByZWZpeD0v cm9vdC9jcm9zcy90b29scy8gLS13aXRoLXN5c3Jvb3Q9L3Jvb3QvY3Jvc3MvIC0tZW5hYmxlLWxh bmd1YWdlcz1jLGx0byAtLXByb2dyYW0tdHJhbnNmb3JtLW5hbWU9cyZeJmk2ODYtbGludXgtbXVz bC0mIC0tZGlzYWJsZS1vcHRpb24tY2hlY2tpbmcgLS1idWlsZD1pNjg2LXBjLWxpbnV4LWdudSAt LWhvc3Q9bm9uZS1wYy1saW51eC1nbnUgLS10YXJnZXQ9bm9uZS1wYy1saW51eC1nbnUgLS1zcmNk aXI9Li4vLi4vZ2NjL2dtcCAtLWRpc2FibGUtc2hhcmVkCgojIyAtLS0tLS0tLS0gIyMKIyMgUGxh dGZvcm0uICMjCiMjIC0tLS0tLS0tLSAjIwoKaG9zdG5hbWUgPSBTdGVwaGVuLUxpbnV4CnVuYW1l IC1tID0gaTY4Ngp1bmFtZSAtciA9IDMuMi4wLTQtNjg2LXBhZQp1bmFtZSAtcyA9IExpbnV4CnVu YW1lIC12ID0gIzEgU01QIERlYmlhbiAzLjIuNjAtMStkZWI3dTMKCi91c3IvYmluL3VuYW1lIC1w ID0gdW5rbm93bgovYmluL3VuYW1lIC1YICAgICA9IHVua25vd24KCi9iaW4vYXJjaCAgICAgICAg ICAgICAgPSB1bmtub3duCi91c3IvYmluL2FyY2ggLWsgICAgICAgPSB1bmtub3duCi91c3IvY29u dmV4L2dldHN5c2luZm8gPSB1bmtub3duCi91c3IvYmluL2hvc3RpbmZvICAgICAgPSB1bmtub3du Ci9iaW4vbWFjaGluZSAgICAgICAgICAgPSB1bmtub3duCi91c3IvYmluL29zbGV2ZWwgICAgICAg PSB1bmtub3duCi9iaW4vdW5pdmVyc2UgICAgICAgICAgPSB1bmtub3duCgpQQVRIOiAvdXNyL2xv Y2FsL3NiaW4KUEFUSDogL3Vzci9sb2NhbC9iaW4KUEFUSDogL3Vzci9zYmluClBBVEg6IC91c3Iv YmluClBBVEg6IC9zYmluClBBVEg6IC9iaW4KCgojIyAtLS0tLS0tLS0tLSAjIwojIyBDb3JlIHRl c3RzLiAjIwojIyAtLS0tLS0tLS0tLSAjIwoKY29uZmlndXJlOjE5NTc6IGNyZWF0aW5nIGNhY2hl IC4vY29uZmlnLmNhY2hlCmNvbmZpZ3VyZToyMTIzOiBjaGVja2luZyBidWlsZCBzeXN0ZW0gdHlw ZQpjb25maWd1cmU6MjE0MTogcmVzdWx0OiBpNjg2LXBjLWxpbnV4LWdudQpjb25maWd1cmU6MjE2 MzogY2hlY2tpbmcgaG9zdCBzeXN0ZW0gdHlwZQpjb25maWd1cmU6MjE3ODogcmVzdWx0OiBub25l LXBjLWxpbnV4LWdudQpjb25maWd1cmU6MjIxNTogY2hlY2tpbmcgZm9yIGEgQlNELWNvbXBhdGli bGUgaW5zdGFsbApjb25maWd1cmU6MjI3MTogcmVzdWx0OiAvdXNyL2Jpbi9pbnN0YWxsIC1jCmNv bmZpZ3VyZToyMjgyOiBjaGVja2luZyB3aGV0aGVyIGJ1aWxkIGVudmlyb25tZW50IGlzIHNhbmUK Y29uZmlndXJlOjIzMjU6IHJlc3VsdDogeWVzCmNvbmZpZ3VyZToyMzgyOiBjaGVja2luZyBmb3Ig Z2F3awpjb25maWd1cmU6MjQwOTogcmVzdWx0OiBtYXdrCmNvbmZpZ3VyZToyNDIwOiBjaGVja2lu ZyB3aGV0aGVyIG1ha2Ugc2V0cyAkKE1BS0UpCmNvbmZpZ3VyZToyNDQxOiByZXN1bHQ6IHllcwpj b25maWd1cmU6MjUyMDogY2hlY2tpbmcgZm9yIG5vbmUtcGMtbGludXgtZ251LXN0cmlwCmNvbmZp Z3VyZToyNTUwOiByZXN1bHQ6IG5vCmNvbmZpZ3VyZToyNTYwOiBjaGVja2luZyBmb3Igc3RyaXAK Y29uZmlndXJlOjI1NzY6IGZvdW5kIC91c3IvYmluL3N0cmlwCmNvbmZpZ3VyZToyNTg3OiByZXN1 bHQ6IHN0cmlwCmNvbmZpZ3VyZToyNjAxOiBXQVJOSU5HOiBJbiB0aGUgZnV0dXJlLCBBdXRvY29u ZiB3aWxsIG5vdCBkZXRlY3QgY3Jvc3MtdG9vbHMKd2hvc2UgbmFtZSBkb2VzIG5vdCBzdGFydCB3 aXRoIHRoZSBob3N0IHRyaXBsZXQuICBJZiB5b3UgdGhpbmsgdGhpcwpjb25maWd1cmF0aW9uIGlz IHVzZWZ1bCB0byB5b3UsIHBsZWFzZSB3cml0ZSB0byBhdXRvY29uZkBnbnUub3JnLgpjb25maWd1 cmU6MjYyMzogY2hlY2tpbmcgd2hldGhlciB0byBlbmFibGUgbWFpbnRhaW5lci1zcGVjaWZpYyBw b3J0aW9ucyBvZiBNYWtlZmlsZXMKY29uZmlndXJlOjI2MzI6IHJlc3VsdDogbm8KVXNlcjoKQUJJ PQpDQz0vcm9vdC90b29scy9iaW4vaTY4Ni1saW51eC1tdXNsLWdjYwpDRkxBR1M9LU8wIC0tc3Rh dGljCkNQUEZMQUdTPSh1bnNldCkKTVBOX1BBVEg9CkdNUDoKYWJpbGlzdD1sb25nIGxvbmdsb25n CmNjbGlzdD1nY2MgY2MKY29uZmlndXJlOjQzMjQ6IC9yb290L3Rvb2xzL2Jpbi9pNjg2LWxpbnV4 LW11c2wtZ2NjIC1jIGNvbmZ0ZXN0LmMgPiY1CmNvbmZpZ3VyZTo0MzI3OiAkPyA9IDAKY29uZmln dXJlOjQzMzA6IGNoZWNraW5nIHdoZXRoZXIgL3Jvb3QvdG9vbHMvYmluL2k2ODYtbGludXgtbXVz bC1nY2MgaXMgZ2NjCmNvbmZpZ3VyZTo0MzMyOiByZXN1bHQ6IHllcwpjb25maWd1cmU6NDM0Njog L3Jvb3QvdG9vbHMvYmluL2k2ODYtbGludXgtbXVzbC1nY2MgMj4mMSB8IGdyZXAgeGxjID4vZGV2 L251bGwKY29uZmlndXJlOjQzNDk6ICQ/ID0gMQpjb25maWd1cmU6NDQwMzogY2hlY2tpbmcgY29t cGlsZXIgL3Jvb3QvdG9vbHMvYmluL2k2ODYtbGludXgtbXVzbC1nY2MgLU8wIC0tc3RhdGljIC1E Tk9fQVNNClRlc3QgY29tcGlsZTogCmNvbmZpZ3VyZTo0NDE3OiAvcm9vdC90b29scy9iaW4vaTY4 Ni1saW51eC1tdXNsLWdjYyAtTzAgLS1zdGF0aWMgLUROT19BU00gY29uZnRlc3QuYyA+JjUKY29u ZmlndXJlOjQ0MjA6ICQ/ID0gMApUZXN0IGNvbXBpbGU6IGZ1bmN0aW9uIHBvaW50ZXIgcmV0dXJu CmNvbmZpZ3VyZTo0NDcxOiAvcm9vdC90b29scy9iaW4vaTY4Ni1saW51eC1tdXNsLWdjYyAtTzAg LS1zdGF0aWMgLUROT19BU00gY29uZnRlc3QuYyA+JjUKY29uZmlndXJlOjQ0NzQ6ICQ/ID0gMApU ZXN0IGNvbXBpbGU6IGNtb3YgaW5zdHJ1Y3Rpb24KY29uZmlndXJlOjQ1Mjc6IC9yb290L3Rvb2xz L2Jpbi9pNjg2LWxpbnV4LW11c2wtZ2NjIC1PMCAtLXN0YXRpYyAtRE5PX0FTTSBjb25mdGVzdC5j ID4mNQpjb25maWd1cmU6NDUzMDogJD8gPSAwClRlc3QgY29tcGlsZTogZG91YmxlIC0+IHVsb25n IGNvbnZlcnNpb24KY29uZmlndXJlOjQ1ODQ6IC9yb290L3Rvb2xzL2Jpbi9pNjg2LWxpbnV4LW11 c2wtZ2NjIC1PMCAtLXN0YXRpYyAtRE5PX0FTTSBjb25mdGVzdC5jID4mNQpjb25maWd1cmU6NDU4 NzogJD8gPSAwClRlc3QgY29tcGlsZTogZG91YmxlIG5lZ2F0aW9uCmNvbmZpZ3VyZTo0NjM5OiAv cm9vdC90b29scy9iaW4vaTY4Ni1saW51eC1tdXNsLWdjYyAtTzAgLS1zdGF0aWMgLUROT19BU00g Y29uZnRlc3QuYyA+JjUKY29uZmlndXJlOjQ2NDI6ICQ/ID0gMApUZXN0IGNvbXBpbGU6IGRvdWJs ZSAtPiBmbG9hdCBjb252ZXJzaW9uCmNvbmZpZ3VyZTo0Njk1OiAvcm9vdC90b29scy9iaW4vaTY4 Ni1saW51eC1tdXNsLWdjYyAtTzAgLS1zdGF0aWMgLUROT19BU00gY29uZnRlc3QuYyA+JjUKY29u ZmlndXJlOjQ2OTg6ICQ/ID0gMApUZXN0IGNvbXBpbGU6IGdudXBybyBhbHBoYSBldjYgY2hhciBz cGlsbGluZwpjb25maWd1cmU6NDc4MDogL3Jvb3QvdG9vbHMvYmluL2k2ODYtbGludXgtbXVzbC1n Y2MgLU8wIC0tc3RhdGljIC1ETk9fQVNNIGNvbmZ0ZXN0LmMgPiY1CmNvbmZpZ3VyZTo0NzgzOiAk PyA9IDAKVGVzdCBjb21waWxlOiBfX2J1aWx0aW5fYWxsb2NhIGF2YWlsYWJpbGl0eQpjb25maWd1 cmU6NDgzMTogL3Jvb3QvdG9vbHMvYmluL2k2ODYtbGludXgtbXVzbC1nY2MgLU8wIC0tc3RhdGlj IC1ETk9fQVNNIGNvbmZ0ZXN0LmMgPiY1Ci9yb290L2Nyb3NzL2xpYi9jcnQxLm86IEluIGZ1bmN0 aW9uIGBfc3RhcnQnOgooLnRleHQrMHgxOCk6IHVuZGVmaW5lZCByZWZlcmVuY2UgdG8gYG1haW4n CmNvbGxlY3QyOiBlcnJvcjogbGQgcmV0dXJuZWQgMSBleGl0IHN0YXR1cwpjb25maWd1cmU6NDgz NDogJD8gPSAxCmZhaWxlZCBwcm9ncmFtIHdhczoKaW50IGs7IGludCBmb28gKCkgeyBfX2J1aWx0 aW5fYWxsb2NhIChrKTsgfQpUZXN0IGNvbXBpbGU6IGFicyBpbnQgLT4gZG91YmxlIGNvbnZlcnNp b24KY29uZmlndXJlOjQ5NTU6IC9yb290L3Rvb2xzL2Jpbi9pNjg2LWxpbnV4LW11c2wtZ2NjIC1P MCAtLXN0YXRpYyAtRE5PX0FTTSBjb25mdGVzdC5jID4mNQpjb25maWd1cmU6NDk1ODogJD8gPSAw ClRlc3QgY29tcGlsZTogbG9uZyBsb25nIHJlbGlhYmlsaXR5IHRlc3QgMQpjb25maWd1cmU6NTAx OTogL3Jvb3QvdG9vbHMvYmluL2k2ODYtbGludXgtbXVzbC1nY2MgLU8wIC0tc3RhdGljIC1ETk9f QVNNIGNvbmZ0ZXN0LmMgPiY1CmNvbmZpZ3VyZTo1MDIyOiAkPyA9IDAKVGVzdCBjb21waWxlOiBs b25nIGxvbmcgcmVsaWFiaWxpdHkgdGVzdCAyCmNvbmZpZ3VyZTo1MDc5OiAvcm9vdC90b29scy9i aW4vaTY4Ni1saW51eC1tdXNsLWdjYyAtTzAgLS1zdGF0aWMgLUROT19BU00gY29uZnRlc3QuYyA+ JjUKY29uZmlndXJlOjUwODI6ICQ/ID0gMApUZXN0IGNvbXBpbGU6IG1wbl9sc2hpZnRfY29tIG9w dGltaXphdGlvbgpjb25maWd1cmU6NTE3ODogL3Jvb3QvdG9vbHMvYmluL2k2ODYtbGludXgtbXVz bC1nY2MgLU8wIC0tc3RhdGljIC1ETk9fQVNNIGNvbmZ0ZXN0LmMgPiY1CmNvbmZpZ3VyZTo1MTgx OiAkPyA9IDAKVGVzdCBjb21waWxlOiBtcG5fbHNoaWZ0X2NvbSBvcHRpbWl6YXRpb24gMgpjb25m aWd1cmU6NTI4NjogL3Jvb3QvdG9vbHMvYmluL2k2ODYtbGludXgtbXVzbC1nY2MgLU8wIC0tc3Rh dGljIC1ETk9fQVNNIGNvbmZ0ZXN0LmMgPiY1CmNvbmZpZ3VyZTo1Mjg5OiAkPyA9IDAKY29uZmln dXJlOjU0NDM6IHJlc3VsdDogeWVzCmNvbmZpZ3VyZTo3MDYzOiBjaGVja2luZyBmb3Igbm9uZS1w Yy1saW51eC1nbnUtZ2NjCmNvbmZpZ3VyZTo3MDkwOiByZXN1bHQ6IC9yb290L3Rvb2xzL2Jpbi9p Njg2LWxpbnV4LW11c2wtZ2NjCmNvbmZpZ3VyZTo3MzY4OiBjaGVja2luZyBmb3IgQyBjb21waWxl ciB2ZXJzaW9uCmNvbmZpZ3VyZTo3Mzc1OiAvcm9vdC90b29scy9iaW4vaTY4Ni1saW51eC1tdXNs LWdjYyAtLXZlcnNpb24gPiY1Cmk2ODYtbGludXgtbXVzbC1nY2MgKEdDQykgNC43LjMKQ29weXJp Z2h0IChDKSAyMDEyIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiwgSW5jLgpUaGlzIGlzIGZyZWUg c29mdHdhcmU7IHNlZSB0aGUgc291cmNlIGZvciBjb3B5aW5nIGNvbmRpdGlvbnMuICBUaGVyZSBp cyBOTwp3YXJyYW50eTsgbm90IGV2ZW4gZm9yIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZP UiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4KCmNvbmZpZ3VyZTo3Mzc4OiAkPyA9IDAKY29uZmlndXJl OjczODU6IC9yb290L3Rvb2xzL2Jpbi9pNjg2LWxpbnV4LW11c2wtZ2NjIC12ID4mNQpVc2luZyBi dWlsdC1pbiBzcGVjcy4KQ09MTEVDVF9HQ0M9L3Jvb3QvdG9vbHMvYmluL2k2ODYtbGludXgtbXVz bC1nY2MKQ09MTEVDVF9MVE9fV1JBUFBFUj0vcm9vdC90b29scy9saWJleGVjL2djYy9pNjg2LWxp bnV4LW11c2wvNC43LjMvbHRvLXdyYXBwZXIKVGFyZ2V0OiBpNjg2LWxpbnV4LW11c2wKQ29uZmln dXJlZCB3aXRoOiAuLi9nY2MvY29uZmlndXJlIC0tZW5hYmxlLWxhbmd1YWdlcz1jIC0tZGlzYWJs ZS1ubHMgLS1kaXNhYmxlLXNoYXJlZCAtLWVuYWJsZS1zdGF0aWMgLS13aXRob3V0LWhlYWRlcnMg LS13aXRoLW5ld2xpYiAtLWRpc2FibGUtZGVjaW1hbC1mbG9hdCAtLWRpc2FibGUtbGliZ29tcCAt LWRpc2FibGUtbGlibXVkZmxhcCAtLWRpc2FibGUtbGlic3NwIC0tZGlzYWJsZS1saWJhdG9taWMg LS1kaXNhYmxlLWxpYnF1YWRtYXRoIC0tZGlzYWJsZS1tdWx0aWxpYiAtLWRpc2FibGUtYm9vdHN0 cmFwIC0tZGlzYWJsZS10aHJlYWRzIC0tcHJlZml4PS9yb290L3Rvb2xzLyAtLXRhcmdldD1pNjg2 LWxpbnV4LW11c2wgLS13aXRoLXN5c3Jvb3Q9L3Jvb3QvY3Jvc3MvClRocmVhZCBtb2RlbDogc2lu Z2xlCmdjYyB2ZXJzaW9uIDQuNy4zIChHQ0MpIApjb25maWd1cmU6NzM4ODogJD8gPSAwCmNvbmZp Z3VyZTo3Mzk1OiAvcm9vdC90b29scy9iaW4vaTY4Ni1saW51eC1tdXNsLWdjYyAtViA+JjUKaTY4 Ni1saW51eC1tdXNsLWdjYzogZXJyb3I6IHVucmVjb2duaXplZCBjb21tYW5kIGxpbmUgb3B0aW9u ICctVicKaTY4Ni1saW51eC1tdXNsLWdjYzogZmF0YWwgZXJyb3I6IG5vIGlucHV0IGZpbGVzCmNv bXBpbGF0aW9uIHRlcm1pbmF0ZWQuCmNvbmZpZ3VyZTo3Mzk4OiAkPyA9IDEKY29uZmlndXJlOjc0 MjE6IGNoZWNraW5nIGZvciBDIGNvbXBpbGVyIGRlZmF1bHQgb3V0cHV0IGZpbGUgbmFtZQpjb25m aWd1cmU6NzQ0ODogL3Jvb3QvdG9vbHMvYmluL2k2ODYtbGludXgtbXVzbC1nY2MgLU8wIC0tc3Rh dGljIC1ETk9fQVNNICAgY29uZnRlc3QuYyAgPiY1CmNvbmZpZ3VyZTo3NDUxOiAkPyA9IDAKY29u ZmlndXJlOjc0ODk6IHJlc3VsdDogYS5vdXQKY29uZmlndXJlOjc1MDY6IGNoZWNraW5nIHdoZXRo ZXIgdGhlIEMgY29tcGlsZXIgd29ya3MKY29uZmlndXJlOjc1MzY6IHJlc3VsdDogeWVzCmNvbmZp Z3VyZTo3NTQzOiBjaGVja2luZyB3aGV0aGVyIHdlIGFyZSBjcm9zcyBjb21waWxpbmcKY29uZmln dXJlOjc1NDU6IHJlc3VsdDogeWVzCmNvbmZpZ3VyZTo3NTQ4OiBjaGVja2luZyBmb3Igc3VmZml4 IG9mIGV4ZWN1dGFibGVzCmNvbmZpZ3VyZTo3NTU1OiAvcm9vdC90b29scy9iaW4vaTY4Ni1saW51 eC1tdXNsLWdjYyAtbyBjb25mdGVzdCAtTzAgLS1zdGF0aWMgLUROT19BU00gICBjb25mdGVzdC5j ICA+JjUKY29uZmlndXJlOjc1NTg6ICQ/ID0gMApjb25maWd1cmU6NzU4MjogcmVzdWx0OiAKY29u ZmlndXJlOjc1ODg6IGNoZWNraW5nIGZvciBzdWZmaXggb2Ygb2JqZWN0IGZpbGVzCmNvbmZpZ3Vy ZTo3NjE0OiAvcm9vdC90b29scy9iaW4vaTY4Ni1saW51eC1tdXNsLWdjYyAtYyAtTzAgLS1zdGF0 aWMgLUROT19BU00gY29uZnRlc3QuYyA+JjUKY29uZmlndXJlOjc2MTc6ICQ/ID0gMApjb25maWd1 cmU6NzY0MDogcmVzdWx0OiBvCmNvbmZpZ3VyZTo3NjQ0OiBjaGVja2luZyB3aGV0aGVyIHdlIGFy ZSB1c2luZyB0aGUgR05VIEMgY29tcGlsZXIKY29uZmlndXJlOjc2NzM6IC9yb290L3Rvb2xzL2Jp bi9pNjg2LWxpbnV4LW11c2wtZ2NjIC1jIC1PMCAtLXN0YXRpYyAtRE5PX0FTTSBjb25mdGVzdC5j ID4mNQpjb25maWd1cmU6NzY3OTogJD8gPSAwCmNvbmZpZ3VyZTo3Njk2OiByZXN1bHQ6IHllcwpj b25maWd1cmU6NzcwMTogY2hlY2tpbmcgd2hldGhlciAvcm9vdC90b29scy9iaW4vaTY4Ni1saW51 eC1tdXNsLWdjYyBhY2NlcHRzIC1nCmNvbmZpZ3VyZTo3NzMxOiAvcm9vdC90b29scy9iaW4vaTY4 Ni1saW51eC1tdXNsLWdjYyAtYyAtZyAtRE5PX0FTTSBjb25mdGVzdC5jID4mNQpjb25maWd1cmU6 NzczNzogJD8gPSAwCmNvbmZpZ3VyZTo3ODM2OiByZXN1bHQ6IHllcwpjb25maWd1cmU6Nzg1Mzog Y2hlY2tpbmcgZm9yIC9yb290L3Rvb2xzL2Jpbi9pNjg2LWxpbnV4LW11c2wtZ2NjIG9wdGlvbiB0 byBhY2NlcHQgSVNPIEM4OQpjb25maWd1cmU6NzkyNzogL3Jvb3QvdG9vbHMvYmluL2k2ODYtbGlu dXgtbXVzbC1nY2MgIC1jIC1PMCAtLXN0YXRpYyAtRE5PX0FTTSBjb25mdGVzdC5jID4mNQpjb25m aWd1cmU6NzkzMzogJD8gPSAwCmNvbmZpZ3VyZTo3OTU2OiByZXN1bHQ6IG5vbmUgbmVlZGVkCmNv bmZpZ3VyZTo3OTc2OiBjaGVja2luZyBmb3IgL3Jvb3QvdG9vbHMvYmluL2k2ODYtbGludXgtbXVz bC1nY2Mgb3B0aW9uIHRvIGFjY2VwdCBJU08gQzk5CmNvbmZpZ3VyZTo4MTM1OiAvcm9vdC90b29s cy9iaW4vaTY4Ni1saW51eC1tdXNsLWdjYyAgLWMgLU8wIC0tc3RhdGljIC1ETk9fQVNNIGNvbmZ0 ZXN0LmMgPiY1CmNvbmZ0ZXN0LmM6NjI6Mjk6IGVycm9yOiBleHBlY3RlZCAnOycsICcsJyBvciAn KScgYmVmb3JlICd0ZXh0Jwpjb25mdGVzdC5jOiBJbiBmdW5jdGlvbiAnbWFpbic6CmNvbmZ0ZXN0 LmM6MTE2OjE4OiBlcnJvcjogZXhwZWN0ZWQgJz0nLCAnLCcsICc7JywgJ2FzbScgb3IgJ19fYXR0 cmlidXRlX18nIGJlZm9yZSAnbmV3dmFyJwpjb25mdGVzdC5jOjExNjoxODogZXJyb3I6ICduZXd2 YXInIHVuZGVjbGFyZWQgKGZpcnN0IHVzZSBpbiB0aGlzIGZ1bmN0aW9uKQpjb25mdGVzdC5jOjEx NjoxODogbm90ZTogZWFjaCB1bmRlY2xhcmVkIGlkZW50aWZpZXIgaXMgcmVwb3J0ZWQgb25seSBv bmNlIGZvciBlYWNoIGZ1bmN0aW9uIGl0IGFwcGVhcnMgaW4KY29uZnRlc3QuYzoxMjY6MzogZXJy b3I6ICdmb3InIGxvb3AgaW5pdGlhbCBkZWNsYXJhdGlvbnMgYXJlIG9ubHkgYWxsb3dlZCBpbiBD OTkgbW9kZQpjb25mdGVzdC5jOjEyNjozOiBub3RlOiB1c2Ugb3B0aW9uIC1zdGQ9Yzk5IG9yIC1z dGQ9Z251OTkgdG8gY29tcGlsZSB5b3VyIGNvZGUKY29uZmlndXJlOjgxNDE6ICQ/ID0gMQpjb25m aWd1cmU6IGZhaWxlZCBwcm9ncmFtIHdhczoKfCAvKiBjb25mZGVmcy5oLiAgKi8KfCAjZGVmaW5l IFBBQ0tBR0VfTkFNRSAiR05VIE1QIgp8ICNkZWZpbmUgUEFDS0FHRV9UQVJOQU1FICJnbXAiCnwg I2RlZmluZSBQQUNLQUdFX1ZFUlNJT04gIjQuMy4yIgp8ICNkZWZpbmUgUEFDS0FHRV9TVFJJTkcg IkdOVSBNUCA0LjMuMiIKfCAjZGVmaW5lIFBBQ0tBR0VfQlVHUkVQT1JUICJnbXAtYnVnc0BnbXBs aWIub3JnIgp8ICNkZWZpbmUgUEFDS0FHRSAiZ21wIgp8ICNkZWZpbmUgVkVSU0lPTiAiNC4zLjIi CnwgI2RlZmluZSBXQU5UX0ZGVCAxCnwgI2RlZmluZSBIQVZFX0hPU1RfQ1BVX25vbmUgMQp8IC8q IGVuZCBjb25mZGVmcy5oLiAgKi8KfCAjaW5jbHVkZSA8c3RkYXJnLmg+CnwgI2luY2x1ZGUgPHN0 ZGJvb2wuaD4KfCAjaW5jbHVkZSA8c3RkbGliLmg+CnwgI2luY2x1ZGUgPHdjaGFyLmg+CnwgI2lu Y2x1ZGUgPHN0ZGlvLmg+CnwgCnwgLy8gQ2hlY2sgdmFyYXJncyBtYWNyb3MuICBUaGVzZSBleGFt cGxlcyBhcmUgdGFrZW4gZnJvbSBDOTkgNi4xMC4zLjUuCnwgI2RlZmluZSBkZWJ1ZyguLi4pIGZw cmludGYgKHN0ZGVyciwgX19WQV9BUkdTX18pCnwgI2RlZmluZSBzaG93bGlzdCguLi4pIHB1dHMg KCNfX1ZBX0FSR1NfXykKfCAjZGVmaW5lIHJlcG9ydCh0ZXN0LC4uLikgKCh0ZXN0KSA/IHB1dHMg KCN0ZXN0KSA6IHByaW50ZiAoX19WQV9BUkdTX18pKQp8IHN0YXRpYyB2b2lkCnwgdGVzdF92YXJh cmdzX21hY3JvcyAodm9pZCkKfCB7CnwgICBpbnQgeCA9IDEyMzQ7CnwgICBpbnQgeSA9IDU2Nzg7 CnwgICBkZWJ1ZyAoIkZsYWciKTsKfCAgIGRlYnVnICgiWCA9ICVkXG4iLCB4KTsKfCAgIHNob3ds aXN0IChUaGUgZmlyc3QsIHNlY29uZCwgYW5kIHRoaXJkIGl0ZW1zLik7CnwgICByZXBvcnQgKHg+ eSwgInggaXMgJWQgYnV0IHkgaXMgJWQiLCB4LCB5KTsKfCB9CnwgCnwgLy8gQ2hlY2sgbG9uZyBs b25nIHR5cGVzLgp8ICNkZWZpbmUgQklHNjQgMTg0NDY3NDQwNzM3MDk1NTE2MTV1bGwKfCAjZGVm aW5lIEJJRzMyIDQyOTQ5NjcyOTV1bAp8ICNkZWZpbmUgQklHX09LIChCSUc2NCAvIEJJRzMyID09 IDQyOTQ5NjcyOTd1bGwgJiYgQklHNjQgJSBCSUczMiA9PSAwKQp8ICNpZiAhQklHX09LCnwgICB5 b3VyIHByZXByb2Nlc3NvciBpcyBicm9rZW47CnwgI2VuZGlmCnwgI2lmIEJJR19PSwp8ICNlbHNl CnwgICB5b3VyIHByZXByb2Nlc3NvciBpcyBicm9rZW47CnwgI2VuZGlmCnwgc3RhdGljIGxvbmcg bG9uZyBpbnQgYmlnbnVtID0gLTkyMjMzNzIwMzY4NTQ3NzU4MDdMTDsKfCBzdGF0aWMgdW5zaWdu ZWQgbG9uZyBsb25nIGludCB1YmlnbnVtID0gQklHNjQ7CnwgCnwgc3RydWN0IGluY29tcGxldGVf YXJyYXkKfCB7CnwgICBpbnQgZGF0YXNpemU7CnwgICBkb3VibGUgZGF0YVtdOwp8IH07CnwgCnwg c3RydWN0IG5hbWVkX2luaXQgewp8ICAgaW50IG51bWJlcjsKfCAgIGNvbnN0IHdjaGFyX3QgKm5h bWU7CnwgICBkb3VibGUgYXZlcmFnZTsKfCB9Owp8IAp8IHR5cGVkZWYgY29uc3QgY2hhciAqY2Nw Owp8IAp8IHN0YXRpYyBpbmxpbmUgaW50CnwgdGVzdF9yZXN0cmljdCAoY2NwIHJlc3RyaWN0IHRl eHQpCnwgewp8ICAgLy8gU2VlIGlmIEMrKy1zdHlsZSBjb21tZW50cyB3b3JrLgp8ICAgLy8gSXRl cmF0ZSB0aHJvdWdoIGl0ZW1zIHZpYSB0aGUgcmVzdHJpY3RlZCBwb2ludGVyLgp8ICAgLy8gQWxz byBjaGVjayBmb3IgZGVjbGFyYXRpb25zIGluIGZvciBsb29wcy4KfCAgIGZvciAodW5zaWduZWQg aW50IGkgPSAwOyAqKHRleHQraSkgIT0gJ1wwJzsgKytpKQp8ICAgICBjb250aW51ZTsKfCAgIHJl dHVybiAwOwp8IH0KfCAKfCAvLyBDaGVjayB2YXJhcmdzIGFuZCB2YV9jb3B5Lgp8IHN0YXRpYyB2 b2lkCnwgdGVzdF92YXJhcmdzIChjb25zdCBjaGFyICpmb3JtYXQsIC4uLikKfCB7CnwgICB2YV9s aXN0IGFyZ3M7CnwgICB2YV9zdGFydCAoYXJncywgZm9ybWF0KTsKfCAgIHZhX2xpc3QgYXJnc19j b3B5Owp8ICAgdmFfY29weSAoYXJnc19jb3B5LCBhcmdzKTsKfCAKfCAgIGNvbnN0IGNoYXIgKnN0 cjsKfCAgIGludCBudW1iZXI7CnwgICBmbG9hdCBmbnVtYmVyOwp8IAp8ICAgd2hpbGUgKCpmb3Jt YXQpCnwgICAgIHsKfCAgICAgICBzd2l0Y2ggKCpmb3JtYXQrKykKfCAJewp8IAljYXNlICdzJzog Ly8gc3RyaW5nCnwgCSAgc3RyID0gdmFfYXJnIChhcmdzX2NvcHksIGNvbnN0IGNoYXIgKik7Cnwg CSAgYnJlYWs7CnwgCWNhc2UgJ2QnOiAvLyBpbnQKfCAJICBudW1iZXIgPSB2YV9hcmcgKGFyZ3Nf Y29weSwgaW50KTsKfCAJICBicmVhazsKfCAJY2FzZSAnZic6IC8vIGZsb2F0CnwgCSAgZm51bWJl ciA9IHZhX2FyZyAoYXJnc19jb3B5LCBkb3VibGUpOwp8IAkgIGJyZWFrOwp8IAlkZWZhdWx0Ogp8 IAkgIGJyZWFrOwp8IAl9CnwgICAgIH0KfCAgIHZhX2VuZCAoYXJnc19jb3B5KTsKfCAgIHZhX2Vu ZCAoYXJncyk7CnwgfQp8IAp8IGludAp8IG1haW4gKCkKfCB7CnwgCnwgICAvLyBDaGVjayBib29s Lgp8ICAgX0Jvb2wgc3VjY2VzcyA9IGZhbHNlOwp8IAp8ICAgLy8gQ2hlY2sgcmVzdHJpY3QuCnwg ICBpZiAodGVzdF9yZXN0cmljdCAoIlN0cmluZyBsaXRlcmFsIikgPT0gMCkKfCAgICAgc3VjY2Vz cyA9IHRydWU7CnwgICBjaGFyICpyZXN0cmljdCBuZXd2YXIgPSAiQW5vdGhlciBzdHJpbmciOwp8 IAp8ICAgLy8gQ2hlY2sgdmFyYXJncy4KfCAgIHRlc3RfdmFyYXJncyAoInMsIGQnIGYgLiIsICJz dHJpbmciLCA2NSwgMzQuMjM0KTsKfCAgIHRlc3RfdmFyYXJnc19tYWNyb3MgKCk7CnwgCnwgICAv LyBDaGVjayBmbGV4aWJsZSBhcnJheSBtZW1iZXJzLgp8ICAgc3RydWN0IGluY29tcGxldGVfYXJy YXkgKmlhID0KfCAgICAgbWFsbG9jIChzaXplb2YgKHN0cnVjdCBpbmNvbXBsZXRlX2FycmF5KSAr IChzaXplb2YgKGRvdWJsZSkgKiAxMCkpOwp8ICAgaWEtPmRhdGFzaXplID0gMTA7CnwgICBmb3Ig KGludCBpID0gMDsgaSA8IGlhLT5kYXRhc2l6ZTsgKytpKQp8ICAgICBpYS0+ZGF0YVtpXSA9IGkg KiAxLjIzNDsKfCAKfCAgIC8vIENoZWNrIG5hbWVkIGluaXRpYWxpemVycy4KfCAgIHN0cnVjdCBu YW1lZF9pbml0IG5pID0gewp8ICAgICAubnVtYmVyID0gMzQsCnwgICAgIC5uYW1lID0gTCJUZXN0 IHdpZGUgc3RyaW5nIiwKfCAgICAgLmF2ZXJhZ2UgPSA1NDMuMzQzNDMsCnwgICB9Owp8IAp8ICAg bmkubnVtYmVyID0gNTg7CnwgCnwgICBpbnQgZHluYW1pY19hcnJheVtuaS5udW1iZXJdOwp8ICAg ZHluYW1pY19hcnJheVtuaS5udW1iZXIgLSAxXSA9IDU0MzsKfCAKfCAgIC8vIHdvcmsgYXJvdW5k IHVudXNlZCB2YXJpYWJsZSB3YXJuaW5ncwp8ICAgcmV0dXJuICghc3VjY2VzcyB8fCBiaWdudW0g PT0gMExMIHx8IHViaWdudW0gPT0gMHVMTCB8fCBuZXd2YXJbMF0gPT0gJ3gnCnwgCSAgfHwgZHlu YW1pY19hcnJheVtuaS5udW1iZXIgLSAxXSAhPSA1NDMpOwp8IAp8ICAgOwp8ICAgcmV0dXJuIDA7 CnwgfQpjb25maWd1cmU6ODEzNTogL3Jvb3QvdG9vbHMvYmluL2k2ODYtbGludXgtbXVzbC1nY2Mg LXN0ZD1nbnU5OSAtYyAtTzAgLS1zdGF0aWMgLUROT19BU00gY29uZnRlc3QuYyA+JjUKY29uZmln dXJlOjgxNDE6ICQ/ID0gMApjb25maWd1cmU6ODE3MTogcmVzdWx0OiAtc3RkPWdudTk5CmNvbmZp Z3VyZTo4MzAxOiBjaGVja2luZyBmb3IgL3Jvb3QvdG9vbHMvYmluL2k2ODYtbGludXgtbXVzbC1n Y2MgLXN0ZD1nbnU5OSBvcHRpb24gdG8gYWNjZXB0IElTTyBTdGFuZGFyZCBDCmNvbmZpZ3VyZTo4 MzEyOiByZXN1bHQ6IC1zdGQ9Z251OTkKY29uZmlndXJlOjgzMjI6IGNoZWNraW5nIGhvdyB0byBy dW4gdGhlIEMgcHJlcHJvY2Vzc29yCmNvbmZpZ3VyZTo4MzYyOiAvcm9vdC90b29scy9iaW4vaTY4 Ni1saW51eC1tdXNsLWdjYyAtc3RkPWdudTk5IC1FIC1ETk9fQVNNIGNvbmZ0ZXN0LmMKY29uZmln dXJlOjgzNjg6ICQ/ID0gMApjb25maWd1cmU6ODM5OTogL3Jvb3QvdG9vbHMvYmluL2k2ODYtbGlu dXgtbXVzbC1nY2MgLXN0ZD1nbnU5OSAtRSAtRE5PX0FTTSBjb25mdGVzdC5jCmNvbmZ0ZXN0LmM6 MTI6Mjg6IGZhdGFsIGVycm9yOiBhY19ub25leGlzdGVudC5oOiBObyBzdWNoIGZpbGUgb3IgZGly ZWN0b3J5CmNvbXBpbGF0aW9uIHRlcm1pbmF0ZWQuCmNvbmZpZ3VyZTo4NDA1OiAkPyA9IDEKY29u ZmlndXJlOiBmYWlsZWQgcHJvZ3JhbSB3YXM6CnwgLyogY29uZmRlZnMuaC4gICovCnwgI2RlZmlu ZSBQQUNLQUdFX05BTUUgIkdOVSBNUCIKfCAjZGVmaW5lIFBBQ0tBR0VfVEFSTkFNRSAiZ21wIgp8 ICNkZWZpbmUgUEFDS0FHRV9WRVJTSU9OICI0LjMuMiIKfCAjZGVmaW5lIFBBQ0tBR0VfU1RSSU5H ICJHTlUgTVAgNC4zLjIiCnwgI2RlZmluZSBQQUNLQUdFX0JVR1JFUE9SVCAiZ21wLWJ1Z3NAZ21w bGliLm9yZyIKfCAjZGVmaW5lIFBBQ0tBR0UgImdtcCIKfCAjZGVmaW5lIFZFUlNJT04gIjQuMy4y Igp8ICNkZWZpbmUgV0FOVF9GRlQgMQp8ICNkZWZpbmUgSEFWRV9IT1NUX0NQVV9ub25lIDEKfCAv KiBlbmQgY29uZmRlZnMuaC4gICovCnwgI2luY2x1ZGUgPGFjX25vbmV4aXN0ZW50Lmg+CmNvbmZp Z3VyZTo4NDM4OiByZXN1bHQ6IC9yb290L3Rvb2xzL2Jpbi9pNjg2LWxpbnV4LW11c2wtZ2NjIC1z dGQ9Z251OTkgLUUKY29uZmlndXJlOjg0Njc6IC9yb290L3Rvb2xzL2Jpbi9pNjg2LWxpbnV4LW11 c2wtZ2NjIC1zdGQ9Z251OTkgLUUgLUROT19BU00gY29uZnRlc3QuYwpjb25maWd1cmU6ODQ3Mzog JD8gPSAwCmNvbmZpZ3VyZTo4NTA0OiAvcm9vdC90b29scy9iaW4vaTY4Ni1saW51eC1tdXNsLWdj YyAtc3RkPWdudTk5IC1FIC1ETk9fQVNNIGNvbmZ0ZXN0LmMKY29uZnRlc3QuYzoxMjoyODogZmF0 YWwgZXJyb3I6IGFjX25vbmV4aXN0ZW50Lmg6IE5vIHN1Y2ggZmlsZSBvciBkaXJlY3RvcnkKY29t cGlsYXRpb24gdGVybWluYXRlZC4KY29uZmlndXJlOjg1MTA6ICQ/ID0gMQpjb25maWd1cmU6IGZh aWxlZCBwcm9ncmFtIHdhczoKfCAvKiBjb25mZGVmcy5oLiAgKi8KfCAjZGVmaW5lIFBBQ0tBR0Vf TkFNRSAiR05VIE1QIgp8ICNkZWZpbmUgUEFDS0FHRV9UQVJOQU1FICJnbXAiCnwgI2RlZmluZSBQ QUNLQUdFX1ZFUlNJT04gIjQuMy4yIgp8ICNkZWZpbmUgUEFDS0FHRV9TVFJJTkcgIkdOVSBNUCA0 LjMuMiIKfCAjZGVmaW5lIFBBQ0tBR0VfQlVHUkVQT1JUICJnbXAtYnVnc0BnbXBsaWIub3JnIgp8 ICNkZWZpbmUgUEFDS0FHRSAiZ21wIgp8ICNkZWZpbmUgVkVSU0lPTiAiNC4zLjIiCnwgI2RlZmlu ZSBXQU5UX0ZGVCAxCnwgI2RlZmluZSBIQVZFX0hPU1RfQ1BVX25vbmUgMQp8IC8qIGVuZCBjb25m ZGVmcy5oLiAgKi8KfCAjaW5jbHVkZSA8YWNfbm9uZXhpc3RlbnQuaD4KY29uZmlndXJlOjg1ODQ6 IC9yb290L3Rvb2xzL2Jpbi9pNjg2LWxpbnV4LW11c2wtZ2NjIC1zdGQ9Z251OTkgLWMgLU8wIC0t c3RhdGljIC1ETk9fQVNNIGNvbmZ0ZXN0LmMgPiY1CmNvbmZpZ3VyZTo4NTkwOiAkPyA9IDAKY29u ZmlndXJlOjg2MTM6IGNoZWNraW5nIGJ1aWxkIHN5c3RlbSBjb21waWxlciAvcm9vdC90b29scy9i aW4vaTY4Ni1saW51eC1tdXNsLWdjYwpjb25maWd1cmU6ODYyNjogL3Jvb3QvdG9vbHMvYmluL2k2 ODYtbGludXgtbXVzbC1nY2MgY29uZnRlc3QuYwpjb25mdGVzdC5jOiBJbiBmdW5jdGlvbiAnbWFp bic6CmNvbmZ0ZXN0LmM6NDozOiB3YXJuaW5nOiBpbmNvbXBhdGlibGUgaW1wbGljaXQgZGVjbGFy YXRpb24gb2YgYnVpbHQtaW4gZnVuY3Rpb24gJ2V4aXQnIFtlbmFibGVkIGJ5IGRlZmF1bHRdCmNv bmZpZ3VyZTo4NjI5OiAkPyA9IDAKL3Jvb3QvY29kZS9nY2MvZ21wL2NvbmZpZ3VyZTogbGluZSA4 NjMxOiAuL2Eub3V0OiBObyBzdWNoIGZpbGUgb3IgZGlyZWN0b3J5Ci9yb290L2NvZGUvZ2NjL2dt cC9jb25maWd1cmU6IGxpbmUgODYzMTogLi9iLm91dDogTm8gc3VjaCBmaWxlIG9yIGRpcmVjdG9y eQovcm9vdC9jb2RlL2djYy9nbXAvY29uZmlndXJlOiBsaW5lIDg2MzE6IC4vYS5leGU6IE5vIHN1 Y2ggZmlsZSBvciBkaXJlY3RvcnkKL3Jvb3QvY29kZS9nY2MvZ21wL2NvbmZpZ3VyZTogbGluZSA4 NjMxOiAuL2Ffb3V0LmV4ZTogTm8gc3VjaCBmaWxlIG9yIGRpcmVjdG9yeQovcm9vdC9jb2RlL2dj Yy9nbXAvY29uZmlndXJlOiBsaW5lIDg2MzE6IC4vY29uZnRlc3Q6IE5vIHN1Y2ggZmlsZSBvciBk aXJlY3RvcnkKY29uZmlndXJlOjg2MzY6IHJlc3VsdDogbm8KY29uZmlndXJlOjg2NDE6IGVycm9y OiBTcGVjaWZpZWQgQ0NfRk9SX0JVSUxEIGRvZXNuJ3Qgc2VlbSB0byB3b3JrCgojIyAtLS0tLS0t LS0tLS0tLS0tICMjCiMjIENhY2hlIHZhcmlhYmxlcy4gIyMKIyMgLS0tLS0tLS0tLS0tLS0tLSAj IwoKYWNfY3ZfYnVpbGQ9aTY4Ni1wYy1saW51eC1nbnUKYWNfY3ZfY19jb21waWxlcl9nbnU9eWVz CmFjX2N2X2Vudl9BQklfc2V0PQphY19jdl9lbnZfQUJJX3ZhbHVlPQphY19jdl9lbnZfQ0NDX3Nl dD0KYWNfY3ZfZW52X0NDQ192YWx1ZT0KYWNfY3ZfZW52X0NDX0ZPUl9CVUlMRF9zZXQ9c2V0CmFj X2N2X2Vudl9DQ19GT1JfQlVJTERfdmFsdWU9L3Jvb3QvdG9vbHMvYmluL2k2ODYtbGludXgtbXVz bC1nY2MKYWNfY3ZfZW52X0NDX3NldD1zZXQKYWNfY3ZfZW52X0NDX3ZhbHVlPS9yb290L3Rvb2xz L2Jpbi9pNjg2LWxpbnV4LW11c2wtZ2NjCmFjX2N2X2Vudl9DRkxBR1Nfc2V0PXNldAphY19jdl9l bnZfQ0ZMQUdTX3ZhbHVlPSctTzAgLS1zdGF0aWMnCmFjX2N2X2Vudl9DUFBGTEFHU19zZXQ9CmFj X2N2X2Vudl9DUFBGTEFHU192YWx1ZT0KYWNfY3ZfZW52X0NQUF9GT1JfQlVJTERfc2V0PQphY19j dl9lbnZfQ1BQX0ZPUl9CVUlMRF92YWx1ZT0KYWNfY3ZfZW52X0NQUF9zZXQ9CmFjX2N2X2Vudl9D UFBfdmFsdWU9CmFjX2N2X2Vudl9DWFhDUFBfc2V0PQphY19jdl9lbnZfQ1hYQ1BQX3ZhbHVlPQph Y19jdl9lbnZfQ1hYRkxBR1Nfc2V0PXNldAphY19jdl9lbnZfQ1hYRkxBR1NfdmFsdWU9Jy1nIC1P MicKYWNfY3ZfZW52X0NYWF9zZXQ9c2V0CmFjX2N2X2Vudl9DWFhfdmFsdWU9ZysrCmFjX2N2X2Vu dl9MREZMQUdTX3NldD1zZXQKYWNfY3ZfZW52X0xERkxBR1NfdmFsdWU9JyAnCmFjX2N2X2Vudl9M SUJTX3NldD0KYWNfY3ZfZW52X0xJQlNfdmFsdWU9CmFjX2N2X2Vudl9NNF9zZXQ9c2V0CmFjX2N2 X2Vudl9NNF92YWx1ZT1tNAphY19jdl9lbnZfWUFDQ19zZXQ9c2V0CmFjX2N2X2Vudl9ZQUNDX3Zh bHVlPSdiaXNvbiAteScKYWNfY3ZfZW52X1lGTEFHU19zZXQ9CmFjX2N2X2Vudl9ZRkxBR1NfdmFs dWU9CmFjX2N2X2Vudl9idWlsZF9hbGlhc19zZXQ9c2V0CmFjX2N2X2Vudl9idWlsZF9hbGlhc192 YWx1ZT1pNjg2LXBjLWxpbnV4LWdudQphY19jdl9lbnZfaG9zdF9hbGlhc19zZXQ9c2V0CmFjX2N2 X2Vudl9ob3N0X2FsaWFzX3ZhbHVlPW5vbmUtcGMtbGludXgtZ251CmFjX2N2X2Vudl90YXJnZXRf YWxpYXNfc2V0PXNldAphY19jdl9lbnZfdGFyZ2V0X2FsaWFzX3ZhbHVlPW5vbmUtcGMtbGludXgt Z251CmFjX2N2X2hvc3Q9bm9uZS1wYy1saW51eC1nbnUKYWNfY3Zfb2JqZXh0PW8KYWNfY3ZfcHJv Z19BV0s9bWF3awphY19jdl9wcm9nX0NDPS9yb290L3Rvb2xzL2Jpbi9pNjg2LWxpbnV4LW11c2wt Z2NjCmFjX2N2X3Byb2dfQ1BQPScvcm9vdC90b29scy9iaW4vaTY4Ni1saW51eC1tdXNsLWdjYyAt c3RkPWdudTk5IC1FJwphY19jdl9wcm9nX2FjX2N0X1NUUklQPXN0cmlwCmFjX2N2X3Byb2dfY2Nf Yzg5PQphY19jdl9wcm9nX2NjX2M5OT0tc3RkPWdudTk5CmFjX2N2X3Byb2dfY2NfZz15ZXMKYWNf Y3ZfcHJvZ19jY19zdGRjPS1zdGQ9Z251OTkKYWNfY3ZfcHJvZ19tYWtlX21ha2Vfc2V0PXllcwoK IyMgLS0tLS0tLS0tLS0tLS0tLS0gIyMKIyMgT3V0cHV0IHZhcmlhYmxlcy4gIyMKIyMgLS0tLS0t LS0tLS0tLS0tLS0gIyMKCkFCST0nbG9uZycKQUNMT0NBTD0nJHtTSEVMTH0gL3Jvb3QvY29kZS9n Y2MvZ21wL21pc3NpbmcgLS1ydW4gYWNsb2NhbC0xLjgnCkFNVEFSPScke1NIRUxMfSAvcm9vdC9j b2RlL2djYy9nbXAvbWlzc2luZyAtLXJ1biB0YXInCkFOU0kyS05SPScnCkFSPScvcm9vdC90b29s cy9iaW4vaTY4Ni1saW51eC1tdXNsLWFyJwpBUz0nYXMnCkFTTUZMQUdTPScnCkFVVE9DT05GPSck e1NIRUxMfSAvcm9vdC9jb2RlL2djYy9nbXAvbWlzc2luZyAtLXJ1biBhdXRvY29uZicKQVVUT0hF QURFUj0nJHtTSEVMTH0gL3Jvb3QvY29kZS9nY2MvZ21wL21pc3NpbmcgLS1ydW4gYXV0b2hlYWRl cicKQVVUT01BS0U9JyR7U0hFTEx9IC9yb290L2NvZGUvZ2NjL2dtcC9taXNzaW5nIC0tcnVuIGF1 dG9tYWtlLTEuOCcKQVdLPSdtYXdrJwpCSVRTX1BFUl9NUF9MSU1CPScnCkNBTExJTkdfQ09OVkVO VElPTlNfT0JKUz0nJwpDQz0nL3Jvb3QvdG9vbHMvYmluL2k2ODYtbGludXgtbXVzbC1nY2MgLXN0 ZD1nbnU5OScKQ0NBUz0nJwpDQ19GT1JfQlVJTEQ9Jy9yb290L3Rvb2xzL2Jpbi9pNjg2LWxpbnV4 LW11c2wtZ2NjJwpDRkxBR1M9Jy1PMCAtLXN0YXRpYycKQ1BQPScvcm9vdC90b29scy9iaW4vaTY4 Ni1saW51eC1tdXNsLWdjYyAtc3RkPWdudTk5IC1FJwpDUFBGTEFHUz0nLUROT19BU00nCkNQUF9G T1JfQlVJTEQ9JycKQ1hYPSdnKysnCkNYWENQUD0nJwpDWFhGTEFHUz0nLWcgLU8yJwpDWUdQQVRI X1c9J2VjaG8nCkRFRk5fTE9OR19MT05HX0xJTUI9Jy8qICN1bmRlZiBfTE9OR19MT05HX0xJTUIg Ki8nCkRFRlM9JycKRExMVE9PTD0nZGxsdG9vbCcKRUNITz0nZWNobycKRUNIT19DPScnCkVDSE9f Tj0nLW4nCkVDSE9fVD0nJwpFR1JFUD0nJwpFTkFCTEVfU1RBVElDX0ZBTFNFPScnCkVOQUJMRV9T VEFUSUNfVFJVRT0nJwpFWEVFWFQ9JycKRVhFRVhUX0ZPUl9CVUlMRD0nJwpHTVBfTERGTEFHUz0n JwpHTVBfTkFJTF9CSVRTPScwJwpHUkVQPScnCkhBVkVfQ0xPQ0tfMDE9JycKSEFWRV9DUFVUSU1F XzAxPScnCkhBVkVfR0VUUlVTQUdFXzAxPScnCkhBVkVfR0VUVElNRU9GREFZXzAxPScnCkhBVkVf SE9TVF9DUFVfRkFNSUxZX3Bvd2VyPScwJwpIQVZFX0hPU1RfQ1BVX0ZBTUlMWV9wb3dlcnBjPScw JwpIQVZFX1NJR0FDVElPTl8wMT0nJwpIQVZFX1NJR0FMVFNUQUNLXzAxPScnCkhBVkVfU0lHU1RB Q0tfMDE9JycKSEFWRV9TVEFDS19UXzAxPScnCkhBVkVfU1lTX1JFU09VUkNFX0hfMDE9JycKSU5T VEFMTF9EQVRBPScvdXNyL2Jpbi9pbnN0YWxsIC1jIC1tIDY0NCcKSU5TVEFMTF9QUk9HUkFNPScv dXNyL2Jpbi9pbnN0YWxsIC1jJwpJTlNUQUxMX1NDUklQVD0nL3Vzci9iaW4vaW5zdGFsbCAtYycK SU5TVEFMTF9TVFJJUF9QUk9HUkFNPScke1NIRUxMfSAkKGluc3RhbGxfc2gpIC1jIC1zJwpMREZM QUdTPScgJwpMRVg9Jy9yb290L2NvZGUvZ2NjL21pc3NpbmcgZmxleCcKTEVYTElCPScnCkxFWF9P VVRQVVRfUk9PVD0nJwpMSUJDVVJTRVM9JycKTElCR01QWFhfTERGTEFHUz0nJwpMSUJHTVBfRExM PScnCkxJQkdNUF9MREZMQUdTPScnCkxJQk09JycKTElCTV9GT1JfQlVJTEQ9JycKTElCT0JKUz0n JwpMSUJSRUFETElORT0nJwpMSUJTPScnCkxJQlRPT0w9JycKTE5fUz0nJwpMVExJQk9CSlM9JycK TTQ9J200JwpNQUlOVD0nIycKTUFJTlRBSU5FUl9NT0RFX0ZBTFNFPScnCk1BSU5UQUlORVJfTU9E RV9UUlVFPScjJwpNQUtFSU5GTz0nL3Jvb3QvY29kZS9nY2MvbWlzc2luZyBtYWtlaW5mbyAtLXNw bGl0LXNpemU9NTAwMDAwMCcKT0JKRFVNUD0nb2JqZHVtcCcKT0JKRVhUPSdvJwpQQUNLQUdFPSdn bXAnClBBQ0tBR0VfQlVHUkVQT1JUPSdnbXAtYnVnc0BnbXBsaWIub3JnJwpQQUNLQUdFX05BTUU9 J0dOVSBNUCcKUEFDS0FHRV9TVFJJTkc9J0dOVSBNUCA0LjMuMicKUEFDS0FHRV9UQVJOQU1FPSdn bXAnClBBQ0tBR0VfVkVSU0lPTj0nNC4zLjInClBBVEhfU0VQQVJBVE9SPSc6JwpSQU5MSUI9J3Jh bmxpYicKU0VEPScvYmluL3NlZCcKU0VUX01BS0U9JycKU0hFTEw9Jy9iaW4vYmFzaCcKU1BFRURf Q1lDTEVDT1VOVEVSX09CSj0nJwpTVFJJUD0nc3RyaXAnClRBTF9PQkpFQ1Q9JycKVFVORV9TUVJf T0JKPScnClU9JycKVV9GT1JfQlVJTEQ9JycKVkVSU0lPTj0nNC4zLjInCldBTlRfQ1hYX0ZBTFNF PScnCldBTlRfQ1hYX1RSVUU9JycKV0FOVF9NUEJTRF9GQUxTRT0nJwpXQU5UX01QQlNEX1RSVUU9 JyMnCldJVEhfUkVBRExJTkVfMDE9JycKWUFDQz0nYmlzb24gLXknCllGTEFHUz0nJwphY19jdF9D Qz0nJwphY19jdF9DWFg9JycKYW1fX2xlYWRpbmdfZG90PScuJwpiaW5kaXI9JyR7ZXhlY19wcmVm aXh9L2JpbicKYnVpbGQ9J2k2ODYtcGMtbGludXgtZ251JwpidWlsZF9hbGlhcz0naTY4Ni1wYy1s aW51eC1nbnUnCmJ1aWxkX2NwdT0naTY4NicKYnVpbGRfb3M9J2xpbnV4LWdudScKYnVpbGRfdmVu ZG9yPSdwYycKZGF0YWRpcj0nJHtkYXRhcm9vdGRpcn0nCmRhdGFyb290ZGlyPScke3ByZWZpeH0v c2hhcmUnCmRvY2Rpcj0nJHtkYXRhcm9vdGRpcn0vZG9jLyR7UEFDS0FHRV9UQVJOQU1FfScKZHZp ZGlyPScke2RvY2Rpcn0nCmV4ZWNfcHJlZml4PSdOT05FJwpnbXBfc3JjbGlua3M9JycKaG9zdD0n bm9uZS1wYy1saW51eC1nbnUnCmhvc3RfYWxpYXM9J25vbmUtcGMtbGludXgtZ251Jwpob3N0X2Nw dT0nbm9uZScKaG9zdF9vcz0nbGludXgtZ251Jwpob3N0X3ZlbmRvcj0ncGMnCmh0bWxkaXI9JyR7 ZG9jZGlyfScKaW5jbHVkZWRpcj0nJHtwcmVmaXh9L2luY2x1ZGUnCmluZm9kaXI9JyR7ZGF0YXJv b3RkaXJ9L2luZm8nCmluc3RhbGxfc2g9Jy9yb290L2NvZGUvZ2NjL2dtcC9pbnN0YWxsLXNoJwps aWJkaXI9JyR7ZXhlY19wcmVmaXh9L2xpYicKbGliZXhlY2Rpcj0nJHtleGVjX3ByZWZpeH0vbGli ZXhlYycKbG9jYWxlZGlyPScke2RhdGFyb290ZGlyfS9sb2NhbGUnCmxvY2Fsc3RhdGVkaXI9JyR7 cHJlZml4fS92YXInCm1hbmRpcj0nJHtkYXRhcm9vdGRpcn0vbWFuJwpta2Rpcl9wPSdta2RpciAt cCAtLSAuJwptcG5fb2JqZWN0cz0nJwptcG5fb2Jqc19pbl9saWJnbXA9JycKbXBuX29ianNfaW5f bGlibXA9JycKb2xkaW5jbHVkZWRpcj0nL3Vzci9pbmNsdWRlJwpwZGZkaXI9JyR7ZG9jZGlyfScK cHJlZml4PScvcm9vdC9jcm9zcy90b29scy8nCnByb2dyYW1fdHJhbnNmb3JtX25hbWU9J3MmXiZp Njg2LWxpbnV4LW11c2wtJicKcHNkaXI9JyR7ZG9jZGlyfScKc2JpbmRpcj0nJHtleGVjX3ByZWZp eH0vc2JpbicKc2hhcmVkc3RhdGVkaXI9JyR7cHJlZml4fS9jb20nCnN5c2NvbmZkaXI9JyR7cHJl Zml4fS9ldGMnCnRhcmdldF9hbGlhcz0nbm9uZS1wYy1saW51eC1nbnUnCgojIyAtLS0tLS0tLS0t LSAjIwojIyBjb25mZGVmcy5oLiAjIwojIyAtLS0tLS0tLS0tLSAjIwoKI2RlZmluZSBQQUNLQUdF X05BTUUgIkdOVSBNUCIKI2RlZmluZSBQQUNLQUdFX1RBUk5BTUUgImdtcCIKI2RlZmluZSBQQUNL QUdFX1ZFUlNJT04gIjQuMy4yIgojZGVmaW5lIFBBQ0tBR0VfU1RSSU5HICJHTlUgTVAgNC4zLjIi CiNkZWZpbmUgUEFDS0FHRV9CVUdSRVBPUlQgImdtcC1idWdzQGdtcGxpYi5vcmciCiNkZWZpbmUg UEFDS0FHRSAiZ21wIgojZGVmaW5lIFZFUlNJT04gIjQuMy4yIgojZGVmaW5lIFdBTlRfRkZUIDEK I2RlZmluZSBIQVZFX0hPU1RfQ1BVX25vbmUgMQoKY29uZmlndXJlOiBleGl0IDEK --047d7b2e4efa8d896e0507da6323--