From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from lists.gentoo.org (pigeon.gentoo.org [208.92.234.80]) by finch.gentoo.org (Postfix) with ESMTP id 23E1C138010 for ; Wed, 10 Oct 2012 08:30:41 +0000 (UTC) Received: from pigeon.gentoo.org (localhost [127.0.0.1]) by pigeon.gentoo.org (Postfix) with SMTP id A15CFE0158; Wed, 10 Oct 2012 08:30:07 +0000 (UTC) Received: from mail-ie0-f181.google.com (mail-ie0-f181.google.com [209.85.223.181]) by pigeon.gentoo.org (Postfix) with ESMTP id 3811EE0027 for ; Wed, 10 Oct 2012 08:28:43 +0000 (UTC) Received: by mail-ie0-f181.google.com with SMTP id 16so433014iea.40 for ; Wed, 10 Oct 2012 01:28:43 -0700 (PDT) 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=VdeOWJz8p0/JXK5Hsaa/I8r/kS229UIw7sVCoJNNv3Q=; b=LZK3fHLwgUprPjtzAmWKqRuUry9zifRNdkKGTT6HfKLfcwO7uKMWDbplRQySGPVhf+ zFcBgLuGDrGytoKflIlNQrvDa0feKtIEckY2kd/04uVVe6fPL+baauvkCHYUNHFiFAqk SQA83S+YaYPmwYUYTztT2mJ0uILwoLy8wwQVY/vHpcvqLwCBPOVOQ8mRs3X2tpMcXah8 zKXcFkNo2Yggy9TGeIunDZaFbDMnG2nenNuSBzzwtQquPUAheANUVHOzIz2rqjpxlC8f X59zxAe9N89shdVJGJgdYiuz9Zhk0/6q7bmvvadf7nsIkxZHN5Lxk0YuT53y6R3E5Q8G SUdA== Precedence: bulk List-Post: List-Help: List-Unsubscribe: List-Subscribe: List-Id: Gentoo Linux mail X-BeenThere: gentoo-user@lists.gentoo.org Reply-to: gentoo-user@lists.gentoo.org MIME-Version: 1.0 Received: by 10.50.7.232 with SMTP id m8mr4491518iga.48.1349857723648; Wed, 10 Oct 2012 01:28:43 -0700 (PDT) Received: by 10.64.82.40 with HTTP; Wed, 10 Oct 2012 01:28:43 -0700 (PDT) In-Reply-To: <5074A928.1070106@ccube.de> References: <50746EF8.6030804@ccube.de> <5074A928.1070106@ccube.de> Date: Wed, 10 Oct 2012 10:28:43 +0200 Message-ID: Subject: Re: [gentoo-user] Nightshade compiling failed From: Jacques Montier To: gentoo-user@lists.gentoo.org Content-Type: multipart/mixed; boundary=f46d04462dd21d894404cbb03ec3 X-Archives-Salt: e664aabb-1e4a-41b9-9290-84447e097b54 X-Archives-Hash: 2eae7e6896fb19e31eb709138868caf3 --f46d04462dd21d894404cbb03ec3 Content-Type: multipart/alternative; boundary=f46d04462dd21d894004cbb03ec1 --f46d04462dd21d894004cbb03ec1 Content-Type: text/plain; charset=windows-1252 Content-Transfer-Encoding: quoted-printable Hi, Thank you Lukas for looking at my problem. The LSS-version of Nightshade is a clone of the official Nightsade version + keyboard shortcuts which can launch scripts, videos and music. Each key of the 105 keys has a special function and it is specially designed for a planetarium public show. With bluetooth modules, we can drive the show with a Nintendo Wii remote ; very useful. http://www.lss-planetariums.info/index.php?lang=3Den&menu=3Dhardware&page= =3Dkeyboard I tried to compile Nightshade-LSS on Ubuntu-12, Linux Mint and Mageia2 via VirtualBox and i get exactly the same errors. So, i think it is not a Gentoo problem...but nevertheless very annoying :-( I looked at the Nightshade-LSS sources and it seems that the error occurs with the nshade_shared_memory.h and nshade_shared_memory.cpp in ~/nightshade-11.7.1/nscontrol/src I join the two files ; may be these files would help us. Thank you very much, -- Jacques 2012/10/10 mindrunner > Hi, > i stepped little further in the last hours. I copied the ebuild to my > layman overlay (luman) and tried to emerge. I got the same error you got > compiling your special version! > At the moment I am cloning the official bzr repository (>1GB) which > means waiting a long time at 1mbit DSL :( > When cloned, I will dig some more into the sources. > > the error we get here points to some wrong usage of the boost container, > but i cannot tell any more right now. > > what exactly is the difference to your ns-version compared to vanilla one= ? > > I think just replacing version number and url should provide you a > working ebuild. > we can try this after compiling vanilla sucesfull. > > > lukas > > On 10/09/2012 10:53 PM, Jacques Montier wrote: > > Hi , > > > > Thank you Lukas for your post. > > The Nighshade soft i use is a LSS version compiled for small > > planetariums by Yves Lhoumeau and Lionel Ruiz. > > I can only get the sources here : > > > http://www.lss-planetariums.info/index.php?lang=3Den&menu=3Dnightshade&pa= ge=3Dnightshade > > The sabayon Nightshade ebuild is different . > > I agree with you, i very much prefer to install packages using ebuilds, > > but i am afraid i am not able to develop any ebuild... > > Sorry... :-( > > Some months ago i successfully compiled Nightshade with boost-1.46.1-r1 > > ; but unfortunately it does not anymore compile even with the same boos= t > > version... > > > > Thank you again, > > > > Cheers, > > > > -- > > Jacques > > > > > > 2012/10/9 mindrunner > > > > > Hi, > > I always prefer to NOT install software this way into my gentoo. > Instead > > of this I first check http://gpo.zugaina.org/ if there is already a= n > > ebuild or outdated ebuild for this piece of software. If not I begi= n > to > > develop my own ebuild. > > > > In this case there is already one (sabayon-overlay). However, you > should > > NOT add sabayon overlay into your gentoo box. I got some weird > problems > > doing this some time ago. I think this shoul only be used in sabayo= n > > distro, but I dont know exactly. > > > > If you want to, I could copy it into my overlay (luman), which > should be > > more safe not bricking your whole gentoo box. > > > > Yeah, I know... you asked sth. completely different, but in my > opinion, > > you should better do this way... > > > > KLooking at you Problem tells me that you got a boost problem. Mayb= e > > wrong version you compile against? > > > > Since I am writing my bachelor thesis right now, I have only little > > spartetime, but if you want to we could try to make a working ebuil= d > on > > base of the sabayon one. > > > > > > regards > > Lukas > > > > > > On 10/09/2012 07:06 PM, Jacques Montier wrote: > > > Hi everybody, > > > > > > Since a few months i have a problem about compiling Nightshade > soft. > > > Nightshade is a full dome planetarium opensource software. > > > > > > http://www.lss-planetariums.info/index.php?lang=3Den&menu=3Dnightshade&pa= ge=3Dnightshade > > > Nightshade is not in portage so i have to manually install it > > > (./configure, make and make install). > > > make fails with errors : > > > > > > ------------------------- > > > In file included from /usr/include/boost/container/map.hpp:26:0, > > > from > > /usr/include/boost/interprocess/containers/map.hpp:19, > > > from nshade_shared_memory.h:34, > > > from nshade_shared_memory.cpp:30: > > > ------------------------ > > > ----------------------- > > > boost::interprocess::iset_index> > >, bool is_iterator =3D false,= P0 > =3D > > > std::less, P1 =3D > > > > > > boost::interprocess::allocator > > boost::interprocess::offset_ptr >, > > > boost::interprocess::segment_manager > > > > > boost::interprocess::rbtree_best_fit, > > > boost::interprocess::iset_index> >, size_t =3D long unsigned int]= =92 > > > nshade_shared_memory.cpp:251:1: instantiated from here > > > /usr/include/boost/container/map.hpp:147:1: erreur: invalid > > application > > > of =91sizeof=92 to incomplete type > > =91boost::STATIC_ASSERTION_FAILURE=92 > > > make[4]: *** [nshade_shared_memory.lo] Erreur 1 > > > > > > I don't know how to solve that problem. > > > Have you any idea about it ? > > > Thank you very much, > > > > > > Cheers, > > > > > > -- > > > Jacques > > > > > > --f46d04462dd21d894004cbb03ec1 Content-Type: text/html; charset=windows-1252 Content-Transfer-Encoding: quoted-printable Hi,

Thank you Lukas for looking at my problem.
The LSS-version of Nightshade is a clone of the official Nightsade version= + keyboard shortcuts which can launch scripts, videos and music. Each key of the 105 keys has a special function and it is specially designe= d for a planetarium public show.
With bluetooth modules, we can d= rive the show with a Nintendo Wii remote ; very useful.

I tried to compile Nightshade-LSS on Ubuntu-12, Linux M= int and Mageia2 via VirtualBox and i get exactly the same errors.
So, i think it is not a Gentoo problem...but nevertheless very annoying :-= (

I looked at the Nightshade-LSS sources and it seems tha= t the error occurs with the=A0nshade_shared_memory.h and=A0nshade_shared_me= mory.cpp in=A0
=A0~/nightshade-11.7.1/nscontrol/src
I join the= two files ; may be these files would help us.

Thank you very much,

--
<= div>Jacques






2012/10/10 mindrunner = <= kernel@ccube.de>
Hi,
i stepped little further in the last hours. I copied the ebuild to my
layman overlay (luman) and tried to emerge. I got the same error you got compiling your special version!
At the moment I am cloning the official bzr repository (>1GB) which
means waiting a long time at 1mbit DSL :(
When cloned, I will dig some more into the sources.

the error we get here points to some wrong usage of the boost container, but i cannot tell any more right now.

what exactly is the difference to your ns-version compared to vanilla one?<= br>
I think just replacing version number and url should provide you a
working ebuild.
we can try this after compiling vanilla sucesfull.


lukas

On 10/09/2012 10:53 PM, Jacques Montier wrote:
> Hi ,
>
> Thank you Lukas for your post.
> The Nighshade soft i use is a LSS version compiled for small
> planetariums by Yves Lhoumeau and Lionel Ruiz.
> I can only get the sources here :
> http://www.lss-pla= netariums.info/index.php?lang=3Den&menu=3Dnightshade&page=3Dnightsh= ade
> The sabayon Nightshade ebuild is different .
> I agree with you, i very much prefer to install packages using ebuilds= ,
> but i am afraid i am not able to develop any ebuild...
> Sorry... :-(
> Some months ago i successfully compiled Nightshade with boost-1.46.1-r= 1
> ; but unfortunately it does not anymore compile even with the same boo= st
> version...
>
> Thank you again,
>
> Cheers,
>
> --
> Jacques
>
>
> 2012/10/9 mindrunner <kern= el@ccube.de <mailto:kernel@ccube.= de>>
>
> =A0 =A0 Hi,
> =A0 =A0 I always prefer to NOT install software this way into my gento= o. Instead
> =A0 =A0 of this I first check http://gpo.zugaina.org/ if there is already an
> =A0 =A0 ebuild or outdated ebuild for this piece of software. If not I= begin to
> =A0 =A0 develop my own ebuild.
>
> =A0 =A0 In this case there is already one (sabayon-overlay). However, = you should
> =A0 =A0 NOT add sabayon overlay into your gentoo box. I got some weird= problems
> =A0 =A0 doing this some time ago. I think this shoul only be used in s= abayon
> =A0 =A0 distro, but I dont know exactly.
>
> =A0 =A0 If you want to, I could copy it into my overlay (luman), which= should be
> =A0 =A0 more safe not bricking your whole gentoo box.
>
> =A0 =A0 Yeah, I know... you asked sth. completely different, but in my= opinion,
> =A0 =A0 you should better do this way...
>
> =A0 =A0 KLooking at you Problem tells me that you got a boost problem.= Maybe
> =A0 =A0 wrong version you compile against?
>
> =A0 =A0 Since I am writing my bachelor thesis right now, I have only l= ittle
> =A0 =A0 spartetime, but if you want to we could try to make a working = ebuild on
> =A0 =A0 base of the sabayon one.
>
>
> =A0 =A0 regards
> =A0 =A0 Lukas
>
>
> =A0 =A0 On 10/09/2012 07:06 PM, Jacques Montier wrote:
> =A0 =A0 > Hi everybody,
> =A0 =A0 >
> =A0 =A0 > Since a few months i have a problem about compiling Night= shade soft.
> =A0 =A0 > Nightshade is a full dome planetarium opensource software= .
> =A0 =A0 >
> =A0 =A0 http://www= .lss-planetariums.info/index.php?lang=3Den&menu=3Dnightshade&page= =3Dnightshade
> =A0 =A0 > Nightshade is not in portage so i have to manually instal= l it
> =A0 =A0 > (./configure, make and make install).
> =A0 =A0 > make fails with errors :
> =A0 =A0 >
> =A0 =A0 > -------------------------
> =A0 =A0 > In file included from /usr/include/boost/container/map.hp= p:26:0,
> =A0 =A0 > =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0from
> =A0 =A0 /usr/include/boost/interprocess/containers/map.hpp:19,
> =A0 =A0 > =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0from nshade_shared_mem= ory.h:34,
> =A0 =A0 > =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0from nshade_shared_mem= ory.cpp:30:
> =A0 =A0 > ------------------------
> =A0 =A0 > -----------------------
> =A0 =A0 > boost::interprocess::iset_index> > >, bool is_it= erator =3D false, P0 =3D
> =A0 =A0 > std::less<boost::uuids::uuid>, P1 =3D
> =A0 =A0 >
> =A0 =A0 boost::interprocess::allocator<boost::container::container_= detail::pair<boost::uuids::uuid,
> =A0 =A0 > boost::interprocess::offset_ptr<NshadeSharedMemoryConn= ection> >,
> =A0 =A0 > boost::interprocess::segment_manager<char,
> =A0 =A0 >
> =A0 =A0 boost::interprocess::rbtree_best_fit<boost::interprocess::m= utex_family>,
> =A0 =A0 > boost::interprocess::iset_index> >, size_t =3D long= unsigned int]=92
> =A0 =A0 > nshade_shared_memory.cpp:251:1: =A0 instantiated from her= e
> =A0 =A0 > /usr/include/boost/container/map.hpp:147:1: erreur: inval= id
> =A0 =A0 application
> =A0 =A0 > of =91sizeof=92 to incomplete type
> =A0 =A0 =91boost::STATIC_ASSERTION_FAILURE<false>=92
> =A0 =A0 > make[4]: *** [nshade_shared_memory.lo] Erreur 1
> =A0 =A0 >
> =A0 =A0 > I don't know how to solve that problem.
> =A0 =A0 > Have you any idea about it ?
> =A0 =A0 > Thank you very much,
> =A0 =A0 >
> =A0 =A0 > Cheers,
> =A0 =A0 >
> =A0 =A0 > --
> =A0 =A0 > Jacques
>
>


--f46d04462dd21d894004cbb03ec1-- --f46d04462dd21d894404cbb03ec3 Content-Type: text/x-c++src; charset=US-ASCII; name="nshade_shared_memory.cpp" Content-Disposition: attachment; filename="nshade_shared_memory.cpp" Content-Transfer-Encoding: base64 X-Attachment-Id: f_h846bdnw0 LyoKICogQ29weXJpZ2h0IChDKSAyMDEwIERpZ2l0YWxpcyBFZHVjYXRpb24gU29sdXRpb25zLCBJ bmMuCiAqIEF1dGhvcjogVHJ5c3RhbiBMYXJleS1XaWxsaWFtcwogKiBEYXRlOiAyLTIyLTIwMTAK ICoKICogVGhpcyBwcm9ncmFtIGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRl IGl0IGFuZC9vcgogKiBtb2RpZnkgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgR2VuZXJh bCBQdWJsaWMgTGljZW5zZQogKiBhcyBwdWJsaXNoZWQgYnkgdGhlIEZyZWUgU29mdHdhcmUgRm91 bmRhdGlvbjsgZWl0aGVyIHZlcnNpb24gMwogKiBvZiB0aGUgTGljZW5zZSwgb3IgKGF0IHlvdXIg b3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4KICoKICogVGhpcyBwcm9ncmFtIGlzIGRpc3RyaWJ1 dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCiAqIGJ1dCBXSVRIT1VUIEFO WSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mCiAqIE1FUkNI QU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUK ICogR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KICoKICogWW91 IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExp Y2Vuc2UKICogYWxvbmcgd2l0aCB0aGlzIHByb2dyYW07IGlmIG5vdCwgd3JpdGUgdG8gdGhlIEZy ZWUgU29mdHdhcmUKICogRm91bmRhdGlvbiwgSW5jLiwgNTkgVGVtcGxlIFBsYWNlIC0gU3VpdGUg MzMwLCBCb3N0b24sIE1BICAwMjExMS0xMzA3LCBVU0EuCiAqCiAqIE5pZ2h0c2hhZGUgaXMgYSB0 cmFkZW1hcmsgb2YgRGlnaXRhbGlzIEVkdWNhdGlvbiBTb2x1dGlvbnMsIEluYy4KICogU2VlIHRo ZSBUUkFERU1BUktTIGZpbGUgZm9yIHRyYWRlbWFyayB1c2FnZSByZXF1aXJlbWVudHMuCiAqCiAq LwoKLyoKICogSGVscGVyIGNsYXNzIHRvIG1hbmFnZSBuYW1lZCBzaGFyZWQgbWVtb3J5IHJlc291 cmNlcyB3cmFwcyByZWFkIGFuZCB3cml0ZQogKiBjYWxscyBpbiBtdXRleCBmb3IgSVBDIHNhZmV0 eQogKi8KCiNpbmNsdWRlICJuc2hhZGVfc2hhcmVkX21lbW9yeS5oIgoKdXNpbmcgbmFtZXNwYWNl IGJvb3N0OjppbnRlcnByb2Nlc3M7CnVzaW5nIG5hbWVzcGFjZSBzdGQ7CgpOc2hhZGVTaGFyZWRN ZW1vcnk6Ok5zaGFkZVNoYXJlZE1lbW9yeSgpIHsKCW1fY2xzaWQgPSBib29zdDo6dXVpZHM6OnJh bmRvbV9nZW5lcmF0b3IoKSgpOwoJbV9zaG0gPSBuZXcgbWFuYWdlZF9zaGFyZWRfbWVtb3J5KCBv cGVuX29yX2NyZWF0ZSwgIi9uaWdodHNoYWRlU00iLCA0MDk2MDAwICk7CiAgICAKCWNvbnN0IFNo bUFsbG9jIGFsbG9jYXRvciggbV9zaG0tPmdldF9zZWdtZW50X21hbmFnZXIoKSApOwoJbV9jb25u ZWN0aW9ucyA9IG1fc2htLT5maW5kX29yX2NvbnN0cnVjdDxTaG1NYXA+KHVuaXF1ZV9pbnN0YW5j ZSkoc3RkOjpsZXNzPGJvb3N0Ojp1dWlkczo6dXVpZD4oKSwgYWxsb2NhdG9yKTsKCW1fbXV0ZXgg ICAgICAgPSBtX3NobS0+ZmluZF9vcl9jb25zdHJ1Y3Q8aW50ZXJwcm9jZXNzX211dGV4PigiZ2xv YmFsX211dGV4IikoKTsKCW1fcmVhZGVyTXV0ZXggPSBtX3NobS0+ZmluZF9vcl9jb25zdHJ1Y3Q8 aW50ZXJwcm9jZXNzX211dGV4PigicmVhZGVyX211dGV4IikoKTsKCW1fd3JpdGVyTXV0ZXggPSBt X3NobS0+ZmluZF9vcl9jb25zdHJ1Y3Q8aW50ZXJwcm9jZXNzX211dGV4Pigid3JpdGVyX211dGV4 IikoKTsKCW1fd3JpdGVTdGF0ZSAgPSBtX3NobS0+ZmluZF9vcl9jb25zdHJ1Y3Q8TnNoYWRlV3Jp dGVTdGF0ZT4odW5pcXVlX2luc3RhbmNlKShtX3NobSk7CgltX3JlYWRTdGF0ZSAgID0gbV9zaG0t PmZpbmRfb3JfY29uc3RydWN0PE5zaGFkZVJlYWRTdGF0ZT4odW5pcXVlX2luc3RhbmNlKShtX3No bSk7CgltX3JlZkNvdW50ICAgID0gbV9zaG0tPmZpbmRfb3JfY29uc3RydWN0PFJlZmVyZW5jZUNv dW50ZXI+KHVuaXF1ZV9pbnN0YW5jZSkoKTsKCW1fbnNDb25mICAgICAgPSBtX3NobS0+ZmluZF9v cl9jb25zdHJ1Y3Q8TnNoYWRlQ29uZj4odW5pcXVlX2luc3RhbmNlKShtX3NobSk7CgltX3JlYWRQ dHIgICAgID0gbV9zaG0tPmZpbmRfb3JfY29uc3RydWN0PFJUUVB0cj4oInJlYWRfcHRyIikoKTsK CW1fd3JpdGVQdHIgICAgPSBtX3NobS0+ZmluZF9vcl9jb25zdHJ1Y3Q8UlRRUHRyPigid3JpdGVf cHRyIikoKTsKCW1fUlRRR2FwICAgICAgPSBtX3NobS0+ZmluZF9vcl9jb25zdHJ1Y3Q8UlRRR2Fw Pih1bmlxdWVfaW5zdGFuY2UpKCk7CgoJaWYoIG1fcmVmQ291bnQtPm1fcmVmID09IDAgKSB7CgkJ Y291dCA8PCAiTmlnaHRzaGFkZSBTaGFyZWQgTWVtb3J5IFNlZ21lbnQgSW5pdGlhbGl6ZWQuXG4i OwoKCQkvLyBJbml0aWFsaXplICdmYXN0JyBjaXJjdWxhciBtZXNzYWdlIGJ1ZmZlcgoJCSptX3dy aXRlUHRyID0gbV9zaG0tPmNvbnN0cnVjdDxSVFF1ZXVlTm9kZT4oYW5vbnltb3VzX2luc3RhbmNl KSgpOwoJCW9mZnNldF9wdHI8UlRRdWV1ZU5vZGU+IHRtcCA9ICptX3dyaXRlUHRyOwoJCWZvcigg dW5zaWduZWQgaW50IGkgPSAwOyBpIDwgUlRRU0laRTsgaSsrICkgewoJCQl0bXAtPm5leHQgPSBt X3NobS0+Y29uc3RydWN0PFJUUXVldWVOb2RlPihhbm9ueW1vdXNfaW5zdGFuY2UpKCk7CgkJCXRt cCA9IHRtcC0+bmV4dDsKCQl9CgkJKm1fcmVhZFB0ciA9IHRtcDsJICAgICAvLyBJbml0aWFsaXpl IHJlYWRlciBvbmUgbm9kZSBiZWhpbmQgd3JpdGVyCgkJdG1wLT5uZXh0ID0gKm1fd3JpdGVQdHI7 IC8vIENsb3NlIHRoZSBjaXJjbGUKCQkqbV9SVFFHYXAgPSAxOwoJfQoKCW1fcmVmQ291bnQtPm1f cmVmKys7CgltX2NsaWVudFR5cGUgPSBOc2hhZGVTaGFyZWRNZW1vcnlDb25uZWN0aW9uOjp1c2Vy Owp9CgpOc2hhZGVTaGFyZWRNZW1vcnk6On5Oc2hhZGVTaGFyZWRNZW1vcnkoKSB7CglpZiggLS1t X3JlZkNvdW50LT5tX3JlZiA9PSAwICkgewoJCS8vIFJlbW92ZSBhbnkgdW5yZWxlYXNlZCBjb25u ZWN0aW9uIG9iamVjdHMKCQlmb3IoIFNobU1hcDo6aXRlcmF0b3IgaXRyID0gbV9jb25uZWN0aW9u cy0+YmVnaW4oKTsgaXRyICE9IG1fY29ubmVjdGlvbnMtPmVuZCgpOyBpdHIrKyApIHsKCQkJbV9z aG0tPmRlc3Ryb3lfcHRyKCAoaXRyLT5zZWNvbmQpLmdldCgpICk7CgkJfQoJCW1fY29ubmVjdGlv bnMtPmNsZWFyKCk7CgoJCS8vIENsZWFudXAgc2hhcmVkIGluc3RhbmNlcwoJCXRyeSB7CgkJCW1f c2htLT5kZXN0cm95PGludGVycHJvY2Vzc19tdXRleD4oImdsb2JhbF9tdXRleCIpOwoJCQltX3No bS0+ZGVzdHJveTxpbnRlcnByb2Nlc3NfbXV0ZXg+KCJyZWFkZXJfbXV0ZXgiKTsKCQkJbV9zaG0t PmRlc3Ryb3k8aW50ZXJwcm9jZXNzX211dGV4Pigid3JpdGVyX211dGV4Iik7CgkJCW1fc2htLT5k ZXN0cm95PE5zaGFkZVJlYWRTdGF0ZT4odW5pcXVlX2luc3RhbmNlKTsKCQkJbV9zaG0tPmRlc3Ry b3k8TnNoYWRlV3JpdGVTdGF0ZT4odW5pcXVlX2luc3RhbmNlKTsKCQkJbV9zaG0tPmRlc3Ryb3k8 UlRRUHRyPigicmVhZF9wdHIiKTsKCQkJbV9zaG0tPmRlc3Ryb3k8UlRRUHRyPigid3JpdGVfcHRy Iik7CgkJCW1fc2htLT5kZXN0cm95PFJUUUdhcD4odW5pcXVlX2luc3RhbmNlKTsKCQkJbV9zaG0t PmRlc3Ryb3k8TnNoYWRlQ29uZj4odW5pcXVlX2luc3RhbmNlKTsKCQkJbV9zaG0tPmRlc3Ryb3k8 UmVmZXJlbmNlQ291bnRlcj4odW5pcXVlX2luc3RhbmNlKTsKCQkJbV9zaG0tPmRlc3Ryb3k8U2ht TWFwPih1bmlxdWVfaW5zdGFuY2UpOwoJCX0KCQljYXRjaCggLi4uICkgewoJCQlwcmludGYoIldh cm5pbmc6IE5vdCBhbGwgc2hhcmVkIG1lbW9yeSBvYmplY3RzIGNvdWxkIGJlIGRlc3Ryb3llZC5c biIpOwoJCX0KCgkJLy8gVGVhci1kb3duIHNoYXJlZCBtZW1vcnkKCQlkZWxldGUgbV9zaG07CgkJ c2hhcmVkX21lbW9yeV9vYmplY3Q6OnJlbW92ZSggIm5pZ2h0c2hhZGVTTSIgKTsKCQljb3V0IDw8 ICJOaWdodHNoYWRlIFNoYXJlZCBNZW1vcnkgU2VnbWVudCBSZW1vdmVkLlxuIjsKCX0KCWVsc2UK CQlkZWxldGUgbV9zaG07Cn0KCnZvaWQgTnNoYWRlU2hhcmVkTWVtb3J5OjpDb25uZWN0KCB2b2lk ICkgewoJbV9tdXRleC0+bG9jaygpOwoJaWYoIG1fY29ubmVjdGlvbnMtPmZpbmQobV9jbHNpZCkg PT0gbV9jb25uZWN0aW9ucy0+ZW5kKCkgKSB7CgkJb2Zmc2V0X3B0cjxOc2hhZGVTaGFyZWRNZW1v cnlDb25uZWN0aW9uPiBvYmogPSBtX3NobS0+Y29uc3RydWN0PE5zaGFkZVNoYXJlZE1lbW9yeUNv bm5lY3Rpb24+KGFub255bW91c19pbnN0YW5jZSkoIG1fc2htICk7CgkJb2JqLT5TZXRPd25lcigg bV9jbHNpZCApOwoJCW9iai0+U2V0Q2xpZW50VHlwZSggbV9jbGllbnRUeXBlICk7CgkJKCptX2Nv bm5lY3Rpb25zKVttX2Nsc2lkXSA9IG9iajsKCX0KCW1fbXV0ZXgtPnVubG9jaygpOwp9Cgp2b2lk IE5zaGFkZVNoYXJlZE1lbW9yeTo6RGlzY29ubmVjdCggdm9pZCApIHsKCW1fbXV0ZXgtPmxvY2so KTsKCVNobU1hcDo6aXRlcmF0b3IgaXRyID0gbV9jb25uZWN0aW9ucy0+ZmluZChtX2Nsc2lkKTsK CWlmKCBpdHIgIT0gbV9jb25uZWN0aW9ucy0+ZW5kKCkgKSB7CgkJbV9zaG0tPmRlc3Ryb3lfcHRy KCAoaXRyLT5zZWNvbmQpLmdldCgpICk7CgkJbV9jb25uZWN0aW9ucy0+ZXJhc2UoIG1fY2xzaWQg KTsKCX0KCW1fbXV0ZXgtPnVubG9jaygpOwp9Cgpib29zdDo6aW50ZXJwcm9jZXNzOjpvZmZzZXRf cHRyPE5zaGFkZUNvbmY+IE5zaGFkZVNoYXJlZE1lbW9yeTo6Q29uZmlnKCB2b2lkICkgewoJcmV0 dXJuIG1fbnNDb25mOwp9Cgp2b2lkIE5zaGFkZVNoYXJlZE1lbW9yeTo6U2V0Q2xpZW50VHlwZSgg TnNoYWRlU2hhcmVkTWVtb3J5Q29ubmVjdGlvbjo6VHlwZSB0eXBlICkgewoJbV9jbGllbnRUeXBl ID0gdHlwZTsKfQoKYm9vbCBOc2hhZGVTaGFyZWRNZW1vcnk6OlRyeUxvY2soKSB7CglyZXR1cm4g bV9tdXRleC0+dHJ5X2xvY2soKTsKfQoKdm9pZCBOc2hhZGVTaGFyZWRNZW1vcnk6OkxvY2soKSB7 CgltX211dGV4LT5sb2NrKCk7Cn0KCnZvaWQgTnNoYWRlU2hhcmVkTWVtb3J5OjpVbkxvY2soKSB7 CgltX211dGV4LT51bmxvY2soKTsKfQoKYm9vbCBOc2hhZGVTaGFyZWRNZW1vcnk6OlJlYWQoIHN0 ZDo6c3RyaW5nJiBkYXRhICkgewoJYm9vbCBoYXZlX2RhdGEgPSBmYWxzZTsKLy8JY2VyciA8PCAi QXZhaWxhYmxlIFNoYXJlZCBNZW1vcnk6ICIgPDwgbV9zaG0tPmdldF9zZWdtZW50X21hbmFnZXIo KS0+Z2V0X2ZyZWVfbWVtb3J5KCkgPDwgZW5kbDsKCgltX211dGV4LT5sb2NrKCk7Cgl0cnkgewoJ CVNobU1hcDo6aXRlcmF0b3IgaXRyID0gbV9jb25uZWN0aW9ucy0+ZmluZChtX2Nsc2lkKTsKCQlp ZiggaXRyICE9ICBtX2Nvbm5lY3Rpb25zLT5lbmQoKSAmJiAhaXRyLT5zZWNvbmQtPkVtcHR5KCkg KSB7CgkJCWhhdmVfZGF0YSA9IHRydWU7CgkJCU5zaGFkZUNvbW1hbmQgY21kID0gaXRyLT5zZWNv bmQtPkRlUXVldWUoKTsKCQkJZGF0YSA9IHN0ZDo6c3RyaW5nKCBjbWQuYnVmLCBjbWQubGVuZ3Ro ICk7CgkJfQoJfQoJY2F0Y2goIHN0ZDo6ZXhjZXB0aW9uJiBlICkgewoJCW1fbXV0ZXgtPnVubG9j aygpOwoJCWNlcnIgPDwgZS53aGF0KCkgPDwgZW5kbDsKCQljZXJyIDw8ICJBdmFpbGFibGUgU2hh cmVkIE1lbW9yeTogIiA8PCBtX3NobS0+Z2V0X3NlZ21lbnRfbWFuYWdlcigpLT5nZXRfZnJlZV9t ZW1vcnkoKSA8PCBlbmRsOwoJCXRocm93IGU7Cgl9CgoJbV9tdXRleC0+dW5sb2NrKCk7CglyZXR1 cm4gaGF2ZV9kYXRhOwp9Cgp2b2lkIE5zaGFkZVNoYXJlZE1lbW9yeTo6V3JpdGUoIHN0ZDo6c3Ry aW5nIGRhdGEgKSB7CgltX211dGV4LT5sb2NrKCk7Cgl0cnkgewoJCU5zaGFkZUNvbW1hbmQgY21k OwoJCXVuc2lnbmVkIGludCBsZW4gPSBkYXRhLmxlbmd0aCgpOwoJCWlmKCBsZW4gPj0gTnNoYWRl Q29tbWFuZDo6c3pCdWYgKQoJCQlsZW4gPSBOc2hhZGVDb21tYW5kOjpzekJ1ZiAtIDE7CgoJCW1l bWNweSggKHZvaWQqKWNtZC5idWYsICh2b2lkKilkYXRhLmNfc3RyKCksIGxlbiApOwoJCWNtZC5s ZW5ndGggPSBsZW47CgoJCWZvciggU2htTWFwOjppdGVyYXRvciBpdHIgPSBtX2Nvbm5lY3Rpb25z LT5iZWdpbigpOyBpdHIgIT0gbV9jb25uZWN0aW9ucy0+ZW5kKCk7IGl0cisrICkgewoJCQlpZigg aXRyLT5zZWNvbmQtPk93bmVyKCkgIT0gIG1fY2xzaWQgJiYgaXRyLT5zZWNvbmQtPkNsaWVudFR5 cGUoKSAhPSBtX2NsaWVudFR5cGUgKSB7CgkJCQlpdHItPnNlY29uZC0+UXVldWUoIGNtZCApOwoJ CQl9CgkJfQoJfQoJY2F0Y2goIHN0ZDo6ZXhjZXB0aW9uJiBlICkgewoJCW1fbXV0ZXgtPnVubG9j aygpOwoJCWNlcnIgPDwgZS53aGF0KCkgPDwgZW5kbDsKCQljZXJyIDw8ICJBdmFpbGFibGUgU2hh cmVkIE1lbW9yeTogIiA8PCBtX3NobS0+Z2V0X3NlZ21lbnRfbWFuYWdlcigpLT5nZXRfZnJlZV9t ZW1vcnkoKSA8PCBlbmRsOwoJCXRocm93IGU7Cgl9CgoJbV9tdXRleC0+dW5sb2NrKCk7Cn0KCi8v Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v Ly8vLy8vLy8vLy8vLy8vLy8vLy8KLy8gRXhwZXJpbWVudGFsIHBlcmZvcm1hbmNlIG9yaWVudGVk IFJXIG1ldGhvZHMuIERvIG5vdCBjdXJyZW50bHkgaGF2ZSBtdWNoCi8vIGVmZmVjdCBvbiBwZXJm b3JtYW5jZSBpbiBwcmFjdGljZSBhbmQgbW9yZSBlZmZvcnQgaXMgbmVlZGVkIHRvIGludGVncmF0 ZSBhbmQKLy8gZW5jYXBzdWxhdGUgdGhlaXIgZGF0YSBzdHJ1Y3R1cmVzLgovLy8vLy8vLy8vLy8v Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v Ly8vLy8vLy8vCgpib29sIE5zaGFkZVNoYXJlZE1lbW9yeTo6UmVhZFJUKCBzdGQ6OnN0cmluZyYg ZGF0YSApIHsKCW1fcmVhZGVyTXV0ZXgtPmxvY2soKTsKCgltX211dGV4LT5sb2NrKCk7Cglib29s IGVtcHR5ID0gKm1fUlRRR2FwID09IDE7CgltX211dGV4LT51bmxvY2soKTsKCglpZiggZW1wdHkg KSB7CgkJbV9yZWFkZXJNdXRleC0+dW5sb2NrKCk7CgkJcmV0dXJuIGZhbHNlOwoJfQoKCSptX3Jl YWRQdHIgPSAoKm1fcmVhZFB0ciktPm5leHQ7CglkYXRhID0gc3RkOjpzdHJpbmcoICgqbV9yZWFk UHRyKS0+bXNnLmJ1ZiwgKCptX3JlYWRQdHIpLT5tc2cubGVuZ3RoICk7CgoJbV9tdXRleC0+bG9j aygpOwoJCS0tKCptX1JUUUdhcCk7CgltX211dGV4LT51bmxvY2soKTsKCgltX3JlYWRlck11dGV4 LT51bmxvY2soKTsKCXJldHVybiB0cnVlOwp9Cgp2b2lkIE5zaGFkZVNoYXJlZE1lbW9yeTo6V3Jp dGVSVCggc3RkOjpzdHJpbmcgZGF0YSApIHsKCW1fd3JpdGVyTXV0ZXgtPmxvY2soKTsKCgltX211 dGV4LT5sb2NrKCk7Cglib29sIGZ1bGwgPSAqbV9SVFFHYXAgPT0gKFJUUVNJWkUgLSAxKTsKCW1f bXV0ZXgtPnVubG9jaygpOwoKCWlmKCBmdWxsICkgewoJCW1fd3JpdGVyTXV0ZXgtPnVubG9jaygp OwoJCXJldHVybjsKCX0KCgl1bnNpZ25lZCBpbnQgbGVuID0gZGF0YS5sZW5ndGgoKTsKCWlmKCBs ZW4gPj0gTnNoYWRlQ29tbWFuZDo6c3pCdWYgKQoJCWxlbiA9IE5zaGFkZUNvbW1hbmQ6OnN6QnVm IC0gMTsKCW1lbWNweSggKHZvaWQqKSgqbV93cml0ZVB0ciktPm1zZy5idWYsICh2b2lkKilkYXRh LmNfc3RyKCksIGxlbiApOwoJKCptX3dyaXRlUHRyKS0+bXNnLmxlbmd0aCA9IGxlbjsKCSptX3dy aXRlUHRyID0gKCptX3dyaXRlUHRyKS0+bmV4dDsKCgltX211dGV4LT5sb2NrKCk7CgkJKysoKm1f UlRRR2FwKTsKCW1fbXV0ZXgtPnVubG9jaygpOwoKCW1fd3JpdGVyTXV0ZXgtPnVubG9jaygpOwp9 Cgo= --f46d04462dd21d894404cbb03ec3 Content-Type: text/x-chdr; charset=US-ASCII; name="nshade_shared_memory.h" Content-Disposition: attachment; filename="nshade_shared_memory.h" Content-Transfer-Encoding: base64 X-Attachment-Id: f_h846bdo01 LyoKICogQ29weXJpZ2h0IChDKSAyMDEwIERpZ2l0YWxpcyBFZHVjYXRpb24gU29sdXRpb25zLCBJ bmMuCiAqIEF1dGhvcjogVHJ5c3RhbiBMYXJleS1XaWxsaWFtcwogKiBEYXRlOiAyLTIyLTIwMTAK ICoKICogVGhpcyBwcm9ncmFtIGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRl IGl0IGFuZC9vcgogKiBtb2RpZnkgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgR2VuZXJh bCBQdWJsaWMgTGljZW5zZQogKiBhcyBwdWJsaXNoZWQgYnkgdGhlIEZyZWUgU29mdHdhcmUgRm91 bmRhdGlvbjsgZWl0aGVyIHZlcnNpb24gMwogKiBvZiB0aGUgTGljZW5zZSwgb3IgKGF0IHlvdXIg b3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4KICoKICogVGhpcyBwcm9ncmFtIGlzIGRpc3RyaWJ1 dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCiAqIGJ1dCBXSVRIT1VUIEFO WSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mCiAqIE1FUkNI QU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUK ICogR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KICoKICogWW91 IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExp Y2Vuc2UKICogYWxvbmcgd2l0aCB0aGlzIHByb2dyYW07IGlmIG5vdCwgd3JpdGUgdG8gdGhlIEZy ZWUgU29mdHdhcmUKICogRm91bmRhdGlvbiwgSW5jLiwgNTkgVGVtcGxlIFBsYWNlIC0gU3VpdGUg MzMwLCBCb3N0b24sIE1BICAwMjExMS0xMzA3LCBVU0EuCiAqCiAqIE5pZ2h0c2hhZGUgaXMgYSB0 cmFkZW1hcmsgb2YgRGlnaXRhbGlzIEVkdWNhdGlvbiBTb2x1dGlvbnMsIEluYy4KICogU2VlIHRo ZSBUUkFERU1BUktTIGZpbGUgZm9yIHRyYWRlbWFyayB1c2FnZSByZXF1aXJlbWVudHMuCiAqCiAq LwoKLyoKICogSGVscGVyIGNsYXNzIHRvIG1hbmFnZSBuYW1lZCBzaGFyZWQgbWVtb3J5IHJlc291 cmNlcyB3cmFwcyByZWFkIGFuZCB3cml0ZQogKiBjYWxscyBpbiBtdXRleCBmb3IgSVBDIHNhZmV0 eQogKi8KCiNwcmFnbWEgb25jZQoKI2luY2x1ZGUgIm5zaGFkZV9zaGFyZWRfbWVtb3J5X2Nvbm5l Y3Rpb24uaCIKI2luY2x1ZGUgIm5zaGFkZV9zdGF0ZS5oIgojaW5jbHVkZSA8Ym9vc3QvaW50ZXJw cm9jZXNzL2NvbnRhaW5lcnMvbWFwLmhwcD4KI2luY2x1ZGUgPGJvb3N0L2ludGVycHJvY2Vzcy9j b250YWluZXJzL3BhaXIuaHBwPgojaW5jbHVkZSA8Ym9vc3QvaW50ZXJwcm9jZXNzL2FsbG9jYXRv cnMvYWxsb2NhdG9yLmhwcD4KI2luY2x1ZGUgPGJvb3N0L3V1aWQvdXVpZC5ocHA+CiNpbmNsdWRl IDxib29zdC91dWlkL3V1aWRfZ2VuZXJhdG9ycy5ocHA+CgoKLy8gQSBzaW5nbGUgaW5zdGFuY2Ug b2YgdGhpcyBvYmplY3QgaXMgbG9hZGVkIGludG8gc2hhcmVkIG1lbW9yeSB0byB0cmFjayB0aGUg bnVtYmVyIG9mIGFjdGl2ZQovLyBTaGFyZWRNZW1vcnkgb2JqZWN0cy4gV2hlbiBhbiBpbnN0YW5j ZSBvZiBTaGFyZWRNZW1vcnkgaXMgZGVzdHJveWVkIGl0IHdpbGwgY2hlY2sgdGhlIGNvdW50Lgov LyBJZiB6ZXJvLCB0aGUgc2hhcmVkIG1lbW9yeSBzZWdtZW50IHdpbGwgYmUgY2xlYW5lZCB1cCBh bmQgYWxsIHNoYXJlZCBkYXRhIHJlbW92ZWQuCnN0cnVjdCBSZWZlcmVuY2VDb3VudGVyIHsKCVJl ZmVyZW5jZUNvdW50ZXIoKSB7IG1fcmVmID0gMDsgfTsKCXVuc2lnbmVkIGxvbmcgbV9yZWY7Cn07 CgpjbGFzcyBOc2hhZGVTaGFyZWRNZW1vcnkgewpwdWJsaWM6CglOc2hhZGVTaGFyZWRNZW1vcnko KTsKCXZpcnR1YWwgfk5zaGFkZVNoYXJlZE1lbW9yeSgpOwoKCXZvaWQgQ29ubmVjdCggdm9pZCAp OwoJdm9pZCBEaXNjb25uZWN0KCB2b2lkICk7Cglib29sIFJlYWRSVCggc3RkOjpzdHJpbmcmIGRh dGEgKTsKCXZvaWQgV3JpdGVSVCggc3RkOjpzdHJpbmcgZGF0YSApOwoJYm9vbCBSZWFkKCBzdGQ6 OnN0cmluZyYgZGF0YSApOwoJdm9pZCBXcml0ZSggc3RkOjpzdHJpbmcgZGF0YSApOwoJYm9vc3Q6 OmludGVycHJvY2Vzczo6b2Zmc2V0X3B0cjxOc2hhZGVDb25mPiBDb25maWcoIHZvaWQgKTsKCXZv aWQgU2V0Q2xpZW50VHlwZSggTnNoYWRlU2hhcmVkTWVtb3J5Q29ubmVjdGlvbjo6VHlwZSApOwoK CS8vIEZvciBuaWdodHNoYWRlIHN1c3BlbmQgY2hlY2tpbmcKCXZvaWQgTG9jayggdm9pZCApOwoJ dm9pZCBVbkxvY2soIHZvaWQgKTsKCWJvb2wgVHJ5TG9jayggdm9pZCApOwoJLy8gZW5kIG5pZ2h0 c2hhZGUgc3VzcGVuZCBjaGVja2luZwoKCWJvb3N0OjppbnRlcnByb2Nlc3M6Om9mZnNldF9wdHI8 TnNoYWRlV3JpdGVTdGF0ZT4gbV93cml0ZVN0YXRlOwoJYm9vc3Q6OmludGVycHJvY2Vzczo6b2Zm c2V0X3B0cjxOc2hhZGVSZWFkU3RhdGU+IG1fcmVhZFN0YXRlOwoKcHJpdmF0ZToKCXN0YXRpYyBj b25zdCB1bnNpZ25lZCBpbnQgUlRRU0laRSA9IDEwMDsKCgkvLyBUeXBlIGRlZmluaXRpb25zIGZv ciBJUEMgZnJpZW5kbHkgbGlua2VkLWxpc3QgY29udGFpbmVyIG9mIGNvbm5lY3Rpb25zIHRvIHNo YXJlZCBtZW1vcnldCgl0eXBlZGVmIGJvb3N0OjppbnRlcnByb2Nlc3M6OnBhaXI8Ym9vc3Q6OnV1 aWRzOjp1dWlkLAoJCQlib29zdDo6aW50ZXJwcm9jZXNzOjpvZmZzZXRfcHRyPE5zaGFkZVNoYXJl ZE1lbW9yeUNvbm5lY3Rpb24+ID4gQ29ubmVjdGlvblBhaXI7CgoJdHlwZWRlZiBib29zdDo6aW50 ZXJwcm9jZXNzOjphbGxvY2F0b3I8Q29ubmVjdGlvblBhaXIsCgkJCWJvb3N0OjppbnRlcnByb2Nl c3M6Om1hbmFnZWRfc2hhcmVkX21lbW9yeTo6c2VnbWVudF9tYW5hZ2VyPiBTaG1BbGxvYzsKCgl0 eXBlZGVmIGJvb3N0OjppbnRlcnByb2Nlc3M6Om1hcDxib29zdDo6dXVpZHM6OnV1aWQsCgkJCWJv b3N0OjppbnRlcnByb2Nlc3M6Om9mZnNldF9wdHI8TnNoYWRlU2hhcmVkTWVtb3J5Q29ubmVjdGlv bj4sIHN0ZDo6bGVzczxib29zdDo6dXVpZHM6OnV1aWQ+LCBTaG1BbGxvYz4gU2htTWFwOwoKCS8v IFVuaXF1ZSAoZm9yIGVhY2ggcHJvY2VzcykgcG9pbnRlciB0byBzaGFyZWQgbWVtb3J5Cglib29z dDo6aW50ZXJwcm9jZXNzOjptYW5hZ2VkX3NoYXJlZF9tZW1vcnkqIG1fc2htOwoKCS8vIFBvaW50 ZXJzIHRvIHNoYXJlZCBvYmplY3RzIHdpdGhpbiBzaGFyZWQgbWVtb3J5Cglib29zdDo6aW50ZXJw cm9jZXNzOjpvZmZzZXRfcHRyPE5zaGFkZUNvbmY+IG1fbnNDb25mOwoJYm9vc3Q6OmludGVycHJv Y2Vzczo6b2Zmc2V0X3B0cjxSZWZlcmVuY2VDb3VudGVyPiBtX3JlZkNvdW50OwoJYm9vc3Q6Omlu dGVycHJvY2Vzczo6b2Zmc2V0X3B0cjxTaG1NYXA+IG1fY29ubmVjdGlvbnM7CiAgICBib29zdDo6 aW50ZXJwcm9jZXNzOjpvZmZzZXRfcHRyPFJUUVB0cj4gbV93cml0ZVB0cjsKCWJvb3N0OjppbnRl cnByb2Nlc3M6Om9mZnNldF9wdHI8UlRRUHRyPiBtX3JlYWRQdHI7Cglib29zdDo6aW50ZXJwcm9j ZXNzOjpvZmZzZXRfcHRyPFJUUUdhcD4gbV9SVFFHYXA7Cglib29zdDo6aW50ZXJwcm9jZXNzOjpv ZmZzZXRfcHRyPGJvb3N0OjppbnRlcnByb2Nlc3M6OmludGVycHJvY2Vzc19tdXRleD4gbV9tdXRl eDsKCWJvb3N0OjppbnRlcnByb2Nlc3M6Om9mZnNldF9wdHI8Ym9vc3Q6OmludGVycHJvY2Vzczo6 aW50ZXJwcm9jZXNzX211dGV4PiBtX3JlYWRlck11dGV4OwoJYm9vc3Q6OmludGVycHJvY2Vzczo6 b2Zmc2V0X3B0cjxib29zdDo6aW50ZXJwcm9jZXNzOjppbnRlcnByb2Nlc3NfbXV0ZXg+IG1fd3Jp dGVyTXV0ZXg7CgoJTnNoYWRlU2hhcmVkTWVtb3J5Q29ubmVjdGlvbjo6VHlwZSBtX2NsaWVudFR5 cGU7Cglib29zdDo6dXVpZHM6OnV1aWQgbV9jbHNpZDsKfTsK --f46d04462dd21d894404cbb03ec3--