From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mp12.migadu.com ([2001:41d0:403:478a::]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits)) by ms9.migadu.com with LMTPS id yABgIrdLr2Q5mAAASxT56A (envelope-from ) for ; Thu, 13 Jul 2023 02:56:23 +0200 Received: from aspmx1.migadu.com ([2001:41d0:403:478a::]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits)) by mp12.migadu.com with LMTPS id iNVhIrdLr2S5WgAAauVa8A (envelope-from ) for ; Thu, 13 Jul 2023 02:56:23 +0200 Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by aspmx1.migadu.com (Postfix) with ESMTPS id 01D9E573A1 for ; Thu, 13 Jul 2023 02:56:22 +0200 (CEST) Authentication-Results: aspmx1.migadu.com; dkim=fail ("headers rsa verify failed") header.d=riseup.net header.s=squak header.b=Ifb8hy1Y; spf=pass (aspmx1.migadu.com: domain of "bug-guix-bounces+larch=yhetil.org@gnu.org" designates 209.51.188.17 as permitted sender) smtp.mailfrom="bug-guix-bounces+larch=yhetil.org@gnu.org"; dmarc=fail reason="SPF not aligned (relaxed)" header.from=riseup.net (policy=none) ARC-Seal: i=1; s=key1; d=yhetil.org; t=1689209783; a=rsa-sha256; cv=none; b=BZlHUmko+M/mmlF3Qi0JlEd8LaRCFmKivovP/tn03IYZzNYVRqcBEkYJ7sKDkNBKmdiMaS QkkmPDFrug80qWRW9qSjGM2VL6QNpwXOvp2i/obdcpFcvjeiTKwPCy4uP2UxZyzqMuxMxH u4D60LTc2LifqoQ+gLKDHF6yiPm05nhbWwoTbS33HiPk+Lo+JIkj6AH06HBadV6ASeoQ+D KPcyxCbFGfjG1xUxjewd6KtzP5+kKmhpx44QSQsP4t8SWeVSpeM3vlLv7r6cwsKqR2UJl7 wC2EqtE9sQ4LLWenraVRUlT5HrwjcvdQoyXJe1GEHH0yB5AhkkXFUbFFzvSEJA== ARC-Authentication-Results: i=1; aspmx1.migadu.com; dkim=fail ("headers rsa verify failed") header.d=riseup.net header.s=squak header.b=Ifb8hy1Y; spf=pass (aspmx1.migadu.com: domain of "bug-guix-bounces+larch=yhetil.org@gnu.org" designates 209.51.188.17 as permitted sender) smtp.mailfrom="bug-guix-bounces+larch=yhetil.org@gnu.org"; dmarc=fail reason="SPF not aligned (relaxed)" header.from=riseup.net (policy=none) ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=yhetil.org; s=key1; t=1689209783; h=from:from:sender:sender:reply-to:subject:subject:date:date: message-id:message-id:to:to:cc:cc:mime-version:mime-version: content-type:content-type:resent-cc:resent-from:resent-sender: resent-message-id:in-reply-to:in-reply-to:references:references: list-id:list-help:list-unsubscribe:list-subscribe:list-post: dkim-signature; bh=WsQBgtaLtWPK3LJvlzQytbNNAn/5UUmSoZq4oQD/4GA=; b=XwrgvTfl38cPr9RAEXnOkSznmMQaLcb4dhMls0aX9TQNJcVspcfyDgau+1wh9fZ/P61Dgv eOwm2tEkLq+8vEhZbw8V0eP3XdN2YuO/em83VJsOUjx4VYmRtc0P2cdwPy/+gfI/nfgRYk JHFuqGoT3YpMM/zee3wTkumIe1JnQQulMmFvIoVIsM0yucD3a/drBeCyRTvGTeqefXqj3z 6vp2XC4/3A4bRcak4p3+pB46bjatBPSIb+dwIh9xs8pf6GSK7GjI3fxaeYai/2zwBMvLDU 6OCEAste7HHh8RMixmbFMZPObTEblCF91f4+Sh0YXPSH67MItOtOS4f9yVHAaQ== Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1qJkcl-0007rq-Q3; Wed, 12 Jul 2023 20:56:03 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1qJkck-0007rh-G2 for bug-guix@gnu.org; Wed, 12 Jul 2023 20:56:02 -0400 Received: from debbugs.gnu.org ([209.51.188.43]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1qJkck-0005VF-8J for bug-guix@gnu.org; Wed, 12 Jul 2023 20:56:02 -0400 Received: from Debian-debbugs by debbugs.gnu.org with local (Exim 4.84_2) (envelope-from ) id 1qJkcj-0004Z0-QD for bug-guix@gnu.org; Wed, 12 Jul 2023 20:56:01 -0400 X-Loop: help-debbugs@gnu.org Subject: bug#64360: error: ghc-onetuple: unbound variable Resent-From: Csepp Original-Sender: "Debbugs-submit" Resent-CC: bug-guix@gnu.org Resent-Date: Thu, 13 Jul 2023 00:56:01 +0000 Resent-Message-ID: Resent-Sender: help-debbugs@gnu.org X-GNU-PR-Message: followup 64360 X-GNU-PR-Package: guix X-GNU-PR-Keywords: To: Ludovic =?UTF-8?Q?Court=C3=A8s?= Cc: 64360@debbugs.gnu.org, Csepp Received: via spool by 64360-submit@debbugs.gnu.org id=B64360.168920974117513 (code B ref 64360); Thu, 13 Jul 2023 00:56:01 +0000 Received: (at 64360) by debbugs.gnu.org; 13 Jul 2023 00:55:41 +0000 Received: from localhost ([127.0.0.1]:53089 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1qJkcO-0004YP-Ha for submit@debbugs.gnu.org; Wed, 12 Jul 2023 20:55:40 -0400 Received: from mx1.riseup.net ([198.252.153.129]:53370) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1qJkcM-0004YB-MC for 64360@debbugs.gnu.org; Wed, 12 Jul 2023 20:55:39 -0400 Received: from fews01-sea.riseup.net (fews01-sea-pn.riseup.net [10.0.1.109]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (2048 bits) server-digest SHA256) (No client certificate requested) by mx1.riseup.net (Postfix) with ESMTPS id 4R1bkX6Gr8zDqG3; Thu, 13 Jul 2023 00:55:32 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=riseup.net; s=squak; t=1689209733; bh=vPoTucGKgyT22pbHOP0wC3hETFc/nX9djbAwoF0Q8/E=; h=References:From:To:Cc:Subject:Date:In-reply-to:From; b=Ifb8hy1Y7FQg7V2ddjaZooudUYZwBPpYgl3X5/I6s5uc0B9C4EbVhxdGg4r0I9g++ Xbsvzkslug4rWUOR8XMBB2yKUh1VOemb4pua7nZh7LyFNMN5Qot5kRrng9vizLWm+L +JIEV3ZFo9tBZoeIaiz6sy03ZlqdUx2VbpQXELeQ= X-Riseup-User-ID: B459811053E42B0E3F8F50DE4A227E502B11239B9FDD4B7029093F3EB67A19EA Received: from [127.0.0.1] (localhost [127.0.0.1]) by fews01-sea.riseup.net (Postfix) with ESMTPSA id 4R1bkX1DBCzJnsx; Thu, 13 Jul 2023 00:55:31 +0000 (UTC) References: <87ilb5hiec.fsf@riseup.net> <87r0pjkf8z.fsf@gnu.org> <87ilavre59.fsf@riseup.net> <871qhhjcbf.fsf@gnu.org> <875y6t107z.fsf@riseup.net> From: Csepp Date: Thu, 13 Jul 2023 02:52:37 +0200 In-reply-to: <875y6t107z.fsf@riseup.net> Message-ID: <87wmz4y6j2.fsf@riseup.net> MIME-Version: 1.0 Content-Type: multipart/mixed; boundary="=-=-=" X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list X-BeenThere: bug-guix@gnu.org List-Id: Bug reports for GNU Guix List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: bug-guix-bounces+larch=yhetil.org@gnu.org Sender: bug-guix-bounces+larch=yhetil.org@gnu.org X-Migadu-Flow: FLOW_IN X-Migadu-Country: US X-Migadu-Scanner: mx0.migadu.com X-Migadu-Spam-Score: -5.30 X-Spam-Score: -5.30 X-Migadu-Queue-Id: 01D9E573A1 X-TUID: iRFbhNZ4FQau --=-=-= Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: quoted-printable Csepp writes: > Ludovic Court=C3=A8s writes: > >> Hi, >> n >> Csepp skribis: >> >>> Ludovic Court=C3=A8s writes: >>> >>>> Hi, >>>> >>>> Csepp skribis: >>>> >>>>> I **finally** managed to finish a guix pull on my netbook by offloadi= ng >>>>> it to my desktop machine, and I tried to build the latest yt-dlp, this >>>>> is the error I got: >>>>> >>>>> ``` >>>>> $ guix shell yt-dlp >> >> [...] >> >>>>> ice-9/boot-9.scm:1685:16: In procedure raise-exception: >>>>> error: ghc-onetuple: unbound variable >>>>> ``` >>>> >>>> Could you share the output of =E2=80=98guix describe=E2=80=99? >> >> [...] >> >>> I'm not on that machine right now, but this is the guix time-machine >>> invocation that I tried to reproduce it with: >>> >>> guix time-machine --system=3Di686-linux \ >>> --commit=3De499cb2c12d7f1c6d2f004364c9cc7bdb7e38cd5 \ >>> --channels=3D$HOME/channels.scm -- time-machine --commit=3D63660f0febb \ >>> --channels=3D$HOME/channels.scm --system=3Di686-linux -- repl >> >> That=E2=80=99s quite different from the =E2=80=98guix shell yt-dlp=E2=80= =99 we started with >> though. :-) >> >> Also, it very much depends on what =E2=80=98channels.scm=E2=80=99 contai= ns. =E2=80=98guix >> time-machine=E2=80=99 does not support =E2=80=98--system=E2=80=99, but o= n x86_64-linux I get: >> >> --8<---------------cut here---------------start------------->8--- >> $ guix time-machine --commit=3D63660f0febb -- shell yt-dlp -- yt-dlp --v= ersion >> 2023.06.22 >> --8<---------------cut here---------------end--------------->8--- >> >> I ran out of disk space (and out of time :-)) while running: >> >> guix time-machine --commit=3D63660f0febb -- shell \ >> --rebuild-cache -s i686-linux yt-dlp -- yt-dlp --version >> >> Anyway, it could be a problem with a channel other than =E2=80=98guix=E2= =80=99, we can=E2=80=99t >> tell so far. Please let us know when you have the output of =E2=80=98gu= ix >> describe=E2=80=99 on that machine. >> >> Ludo=E2=80=99. > > I have no channels configured other than the default one using > channel-with-substitutes-available, because it's a netbook we're talking > about. > On the x86_64 machine I was not using channel-with-substitues-available. Here is the output of guix pull --list-generations. --=-=-= Content-Type: application/octet-stream Content-Disposition: attachment; filename=generations.log Content-Transfer-Encoding: base64 Content-Description: all generations R2VuZXJhdGlvbiAxMQlTZXAgMDUgMjAyMiAxMToxNjoyMgogIG5vbmd1aXggOTU2M2RlMwogICAg cmVwb3NpdG9yeSBVUkw6IGh0dHBzOi8vZ2l0bGFiLmNvbS9ub25ndWl4L25vbmd1aXgKICAgIGJy YW5jaDogbWFzdGVyCiAgICBjb21taXQ6IDk1NjNkZTMwMzdmM2U0MWFjM2MwZTk5MTc2MDQ3Y2U3 MzAwM2IwZTYKICBndWl4IDQxYmNlMjQKICAgIHJlcG9zaXRvcnkgVVJMOiBodHRwczovL2dpdC5z YXZhbm5haC5nbnUub3JnL2dpdC9ndWl4LmdpdAogICAgYnJhbmNoOiBtYXN0ZXIKICAgIGNvbW1p dDogNDFiY2UyNDE0YTI4NjgzNmI0MDcxZDkwYjY2MGZiNDU3ZWU3NmUzMgpHZW5lcmF0aW9uIDEy CVNlcCAxMiAyMDIyIDIzOjE4OjEzCiAgbm9uZ3VpeCBlMDk1MTM0CiAgICByZXBvc2l0b3J5IFVS TDogaHR0cHM6Ly9naXRsYWIuY29tL25vbmd1aXgvbm9uZ3VpeAogICAgYnJhbmNoOiBtYXN0ZXIK ICAgIGNvbW1pdDogZTA5NTEzNDk2MDM1ODE4OTVlMGJhNjFmMGU3NDEwMzY4ZWExOTAyYQogIGd1 aXggMjNiNTBkZAogICAgcmVwb3NpdG9yeSBVUkw6IGh0dHBzOi8vZ2l0LnNhdmFubmFoLmdudS5v cmcvZ2l0L2d1aXguZ2l0CiAgICBicmFuY2g6IG1hc3RlcgogICAgY29tbWl0OiAyM2I1MGRkYmRi Y2VlMGRhYzFiYzA1ZjEyMzc0MDQzZDZmMjE1YjAwCgpOZXdzIGZvciBjaGFubmVsICdndWl4Jwog IEVtYWNzIG5vdyBzdXBwb3J0cyBuYXRpdmUgY29tcGlsYXRpb24KICAgIGNvbW1pdCAxMWEwNmQx ZTQ5ZjRkNTBkNjc4OWUwNWJiZjM1ZTJlMTQ1ZmY3ODM4CgogICAgRW1hY3MgY2FuIG5vdyBjb21w aWxlIHBhY2thZ2VzIG5hdGl2ZWx5LiAgVW5kZXIgdGhlIGRlZmF1bHQgY29uZmlndXJhdGlvbiwK ICAgIHRoaXMgbWVhbnMgdGhhdCBFbWFjcyBwYWNrYWdlcyB3aWxsIG5vdyBiZSBqdXN0LWluLXRp bWUgKEpJVCkgY29tcGlsZWQgYXMKICAgIHlvdSB1c2UgdGhlbSwgYW5kIHRoZSByZXN1bHRzIHN0 b3JlZCBpbiBhIHN1YmRpcmVjdG9yeSBvZiB5b3VyCiAgICBgdXNlci1lbWFjcy1kaXJlY3Rvcnkn LgogICAgCiAgICBGdXJ0aGVybW9yZSwgdGhlIGJ1aWxkIHN5c3RlbSBmb3IgRW1hY3MgcGFja2Fn ZXMgdHJhbnNwYXJlbnRseSBzdXBwb3J0cwogICAgbmF0aXZlIGNvbXBpbGF0aW9uLCBidXQgbm90 ZSwgdGhhdCBgZW1hY3MtbWluaW1hbCctLS10aGUgZGVmYXVsdCBFbWFjcyBmb3IKICAgIGJ1aWxk aW5nIHBhY2thZ2VzLS0taGFzIGJlZW4gY29uZmlndXJlZCB3aXRob3V0IG5hdGl2ZSBjb21waWxh dGlvbi4gIFRvCiAgICBuYXRpdmVseSBjb21waWxlIHlvdXIgZW1hY3MgcGFja2FnZXMgYWhlYWQg b2YgdGltZSwgdXNlIGEgdHJhbnNmb3JtYXRpb24KICAgIGxpa2UgYC0td2l0aC1pbnB1dD1lbWFj cy1taW5pbWFsPWVtYWNzJy4KICBMaW51eC1saWJyZSBrZXJuZWwgdXBkYXRlZCB0byA1LjE5CiAg ICBjb21taXQgYzE4OGNmNTdmMTYxYzBjMjZlMmQ3Yzg1MTZiZDFkZGQxNDkyZDY4NgoKICAgIFRo ZSBkZWZhdWx0IHZlcnNpb24gb2YgdGhlIGxpbnV4LWxpYnJlIGtlcm5lbCBoYXMgYmVlbiB1cGRh dGVkIHRvIHRoZSA1LjE5CiAgICByZWxlYXNlIHNlcmllcy4KCkdlbmVyYXRpb24gMTMJT2N0IDEx IDIwMjIgMjM6MzI6MDUKICBub25ndWl4IDAzYWM2OWEKICAgIHJlcG9zaXRvcnkgVVJMOiBodHRw czovL2dpdGxhYi5jb20vbm9uZ3VpeC9ub25ndWl4CiAgICBicmFuY2g6IG1hc3RlcgogICAgY29t bWl0OiAwM2FjNjlhODVhZjkyMTNmNTcwMjk0MjM0OTJkODEwYTNmMGU0MWFlCiAgZ3VpeCBlNDZi YjVmCiAgICByZXBvc2l0b3J5IFVSTDogaHR0cHM6Ly9naXQuc2F2YW5uYWguZ251Lm9yZy9naXQv Z3VpeC5naXQKICAgIGJyYW5jaDogbWFzdGVyCiAgICBjb21taXQ6IGU0NmJiNWZkNWFmM2FkYjkz MWUwOTMwMzI2YzYwYTdjMmU0Y2JlNGUKCk5ld3MgZm9yIGNoYW5uZWwgJ2d1aXgnCiAgYC0td2l0 aC1zb3VyY2UnIGlzIG5vdyByZWN1cnNpdmUKICAgIGNvbW1pdCAyOGFkZTFiYWIyMDc5NzRjY2U2 YTAxNGU3MTg3OTY4NTExZmM1NTI2CgogICAgVGhlIGAtLXdpdGgtc291cmNlJyBwYWNrYWdlIHRy YW5zZm9ybWF0aW9uIG9wdGlvbiBub3cgdXNlcyB0aGUgc3BlY2lmaWVkCiAgICBzb3VyY2UgZm9y IGFsbCBtYXRjaGluZyBwYWNrYWdlcywgaW5jbHVkaW5nIGRlcGVuZGVuY2llcy4gIFRoaXMgb3B0 aW9uIGlzCiAgICB1c2VmdWwgZm9yIGFsbCBwYWNrYWdlIG1haW50YWluZXJzLCBkZXZlbG9wZXJz LCBhbmQsIGluIGdlbmVyYWwsIGFsbCB1c2VycwogICAgd2hvIHdhbnQgR3VpeCB0byBmYWNpbGl0 YXRlIHRoZWlyIHJpZ2h0cyB0byBtb2RpZnkgdGhlaXIgc29mdHdhcmUgYW5kIHNoYXJlCiAgICB0 aGVpciBjaGFuZ2VzLgogICAgCiAgICBSdW4gYGluZm8gIihndWl4KSBQYWNrYWdlIFRyYW5zZm9y bWF0aW9uIE9wdGlvbnMiJyBmb3IgbW9yZSBpbmZvLgogIEd1aXggU3lzdGVtIGltYWdlIGNyZWF0 aW9uIGlzIG5vdyBkb2N1bWVudGVkCiAgICBjb21taXQgYTEzZjVlYWQwMjY1Y2YwZmUxMWU2MDE1 MDU0N2MwOWRmYzhjNDViMAoKICAgIFRoZSBHdWl4IFN5c3RlbSBpbWFnZSBBUEkgdGhhdCBhbGxv d3MgeW91IHRvIGNyZWF0ZSBjdXN0b21pemVkIHN5c3RlbSBpbWFnZXMKICAgIGFuZCB0dXJuIHRo ZW0gaW50byBhY3R1YWwgYm9vdGFibGUgaW1hZ2VzIGlzIG5vdyBkb2N1bWVudGVkIGluIHRoZSBg Q3JlYXRpbmcKICAgIFN5c3RlbSBJbWFnZXMnIGNoYXB0ZXIgb2YgdGhlIEd1aXggZG9jdW1lbnRh dGlvbi4gIFRoaXMgc2hvdWxkIGJlCiAgICBwYXJ0aWN1bGFybHkgdXNlZnVsIGZvciBwZW9wbGUg dHJ5aW5nIHRvIHBvcnQgR3VpeCBTeXN0ZW0gdG8gbmV3IGhhcmR3YXJlLgogIFdTTCBzeXN0ZW0g aW1hZ2VzIHN1cHBvcnQKICAgIGNvbW1pdCBjODExMmYzYmQ5NTI2OWNlNGFjYTEyZGVkYmZlNjFi YjZiMzdhY2FlCgogICAgVGhlIGBndWl4IHN5c3RlbSBpbWFnZScgY29tbWFuZCBjYW4gbm93IGdl bmVyYXRlIHN5c3RlbSBpbWFnZXMgZm9yIHRoZQogICAgV2luZG93cyBTdWJzeXN0ZW0gZm9yIExp bnV4LiAgVG8gZ2V0IHN0YXJ0ZWQsIHlvdSBjYW4gZm9yIGluc3RhbmNlIHJ1biBmcm9tCiAgICBh IEd1aXggY2hlY2tvdXQ6CiAgICAKICAgIGBndWl4IHN5c3RlbSBpbWFnZSBnbnUvc3lzdGVtL2lt YWdlcy93c2wyLnNjbScsCiAgICAKICAgIGFuZCBpbXBvcnQgdGhlIHJlc3VsdGluZyBpbWFnZSB0 aGlzIHdheToKICAgIAogICAgYHdzbCAtLWltcG9ydCBHdWl4IC4vZ3VpeCAuL3dzbDItaW1hZ2Uu dGFyLmd6JyBgd3NsIC1kIEd1aXgnLgoKR2VuZXJhdGlvbiAxNAlPY3QgMTcgMjAyMiAyMTo0Nzoy MAogIG5vbmd1aXggNDM5OWMwMQogICAgcmVwb3NpdG9yeSBVUkw6IGh0dHBzOi8vZ2l0bGFiLmNv bS9ub25ndWl4L25vbmd1aXgKICAgIGJyYW5jaDogbWFzdGVyCiAgICBjb21taXQ6IDQzOTljMDEy ZTRiYjU0NjBjMTgwNzI4NWVkOThmYjU0NTU4MTZmOGMKICBndWl4IGVjN2JhNmEKICAgIHJlcG9z aXRvcnkgVVJMOiBodHRwczovL2dpdC5zYXZhbm5haC5nbnUub3JnL2dpdC9ndWl4LmdpdAogICAg YnJhbmNoOiBtYXN0ZXIKICAgIGNvbW1pdDogZWM3YmE2YWU1MzA4ZmFiYTY4MTgxZjNmZmZjN2Qx MTVkMzdjZDFkNAoKTmV3cyBmb3IgY2hhbm5lbCAnZ3VpeCcKICBOZXcgYC0tZW11bGF0ZS1maHMn IG9wdGlvbiBmb3IgYGd1aXggc2hlbGwnCiAgICBjb21taXQgYzdiYTVmMzhiODA0MzNiMDQwZDM5 NDZiOGZjMGIxZTg2MjFiYTMwYQoKICAgIFRoZSBgZ3VpeCBzaGVsbCcgY29tbWFuZCBoYXMgYSBu ZXcgYC0tZW11bGF0ZS1maHMnIChvciBgLUYnKSBvcHRpb24uCiAgICBDb21iaW5lZCB3aXRoIGAt LWNvbnRhaW5lcicgKG9yIGAtQycpLCBpdCBlbXVsYXRlcyB0aGUgZmlsZSBhbmQgZGlyZWN0b3J5 CiAgICBsYXlvdXQgc3BlY2lmaWVkIGJ5IHRoZSBGaWxlc3lzdGVtIEhpZXJhcmNoeSBTdGFuZGFy ZCAoRkhTKSwgcHJvdmlkaW5nCiAgICBgL2JpbicsIGAvbGliJywgZXRjLiAgd2l0aGluIHRoZSBj b250YWluZXIuCiAgICAKICAgIEZvciBleGFtcGxlLCB0aGUgZm9sbG93aW5nIGNvbW1hbmQgcnVu cyBgL2Jpbi9scycgd2l0aGluIHN1Y2ggYSBjb250YWluZXI6CiAgICAKICAgICAgICAgZ3VpeCBz aGVsbCAtQ0YgY29yZXV0aWxzIC0tIC9iaW4vbHMKICAgIAogICAgUnVuIGBpbmZvICIoZ3VpeCkg SW52b2tpbmcgZ3VpeCBzaGVsbCInIGZvciBtb3JlIGluZm9ybWF0aW9uLgoKR2VuZXJhdGlvbiAx NQlPY3QgMjUgMjAyMiAyMTo1MDoxMAogIG5vbmd1aXggZDRmM2M0YgogICAgcmVwb3NpdG9yeSBV Ukw6IGh0dHBzOi8vZ2l0bGFiLmNvbS9ub25ndWl4L25vbmd1aXgKICAgIGJyYW5jaDogbWFzdGVy CiAgICBjb21taXQ6IGQ0ZjNjNGI1N2UwNWZkMzI4NjcyMmVkNDRiNjUwMDA5M2M2MzIyNTgKICBn dWl4IGEwNzUxZTMKICAgIHJlcG9zaXRvcnkgVVJMOiBodHRwczovL2dpdC5zYXZhbm5haC5nbnUu b3JnL2dpdC9ndWl4LmdpdAogICAgYnJhbmNoOiBtYXN0ZXIKICAgIGNvbW1pdDogYTA3NTFlMzI1 MGRmZWE3ZTUyNDY4YzgwOTBlMThjMzExOGQ5M2E2MApHZW5lcmF0aW9uIDE2CU5vdiAxOSAyMDIy IDA1OjMxOjI0CiAgbm9uZ3VpeCBmMzIyN2UzCiAgICByZXBvc2l0b3J5IFVSTDogaHR0cHM6Ly9n aXRsYWIuY29tL25vbmd1aXgvbm9uZ3VpeC5naXQKICAgIGJyYW5jaDogbWFzdGVyCiAgICBjb21t aXQ6IGYzMjI3ZTMzZDE3ODI1MDhiYmY1MzBkZTYxZmEzYThiZGEyNTM0MjMKICBndWl4LXNjaWVu Y2UgNTk5M2NiNwogICAgcmVwb3NpdG9yeSBVUkw6IGh0dHBzOi8vZ2l0aHViLmNvbS9ndWl4LXNj aWVuY2UvZ3VpeC1zY2llbmNlLmdpdAogICAgYnJhbmNoOiBtYXN0ZXIKICAgIGNvbW1pdDogNTk5 M2NiNzkzNzMyOTNiYjcwNTk3MGM0NzAyYjk3MWY0ZTFkOTZiNQogIHJhaW5nbG9vbSA0ODA5NWU3 CiAgICByZXBvc2l0b3J5IFVSTDogaHR0cHM6Ly9naXQuc3IuaHQvfnJhaW5nbG9vbS9ndWl4LXBh Y2thZ2VzCiAgICBicmFuY2g6IG1hc3RlcgogICAgY29tbWl0OiA0ODA5NWU3MjQ3YTNkYzkwMDZj ZTVlYTFiNGE3NTMxMDU5MWI2MDhlCiAgZ3VpeCAzNDc3MzNiCiAgICByZXBvc2l0b3J5IFVSTDog aHR0cHM6Ly9naXQuc2F2YW5uYWguZ251Lm9yZy9naXQvZ3VpeC5naXQKICAgIGJyYW5jaDogbWFz dGVyCiAgICBjb21taXQ6IDM0NzczM2JjZGUyZWRiNjBiYzgzMWQzNjM5NzFjNDg4ZWI3NGUzZjgK Ck5ld3MgZm9yIGNoYW5uZWwgJ2d1aXgnCiAgTmV3IGAtLXN5bWxpbmsnIG9wdGlvbiBmb3IgYGd1 aXggc2hlbGwnCiAgICBjb21taXQgNzg4NjAyYjM3ZmY0MmY3MzBkNGI3YjU2OWIwZmI1MTQ2NWYx NDdkYQoKICAgIFRoZSBgZ3VpeCBzaGVsbCcgY29tbWFuZCBoYXMgYSBuZXcgYC0tc3ltbGluaycg KG9yIGAtUycpIG9wdGlvbiwgdG8gYmUgdXNlZAogICAgaW4gY29uanVuY3Rpb24gd2l0aCB0aGUg YC0tY29udGFpbmVyJyAob3IgYC1DJykgb3B0aW9uIHRvIGNyZWF0ZSBhIHN5bWJvbGljCiAgICBs aW5rIGluc2lkZSB0aGUgY29udGFpbmVyLiAgUnVuIGBpbmZvICIoZ3VpeCkgSW52b2tpbmcgZ3Vp eCBzaGVsbCInIGZvciBtb3JlCiAgICBpbmZvcm1hdGlvbi4KICBMaW51eC1saWJyZSBrZXJuZWwg dXBkYXRlZCB0byA2LjAKICAgIGNvbW1pdCA4MmEwYTM5NWQ3MDUxZWFiN2I5ZjE1ZWM0NzQwZDU4 Yzg2NDEzNjA0CgogICAgVGhlIGRlZmF1bHQgdmVyc2lvbiBvZiB0aGUgbGludXgtbGlicmUga2Vy bmVsIGhhcyBiZWVuIHVwZGF0ZWQgdG8gdGhlIDYuMAogICAgcmVsZWFzZSBzZXJpZXMuCiAgTmV3 IGJ1aWxkIHN5c3RlbSBmb3IgUHl0aG9uIHBhY2thZ2VzCiAgICBjb21taXQgNDAwYTdhNGM4MGVm YmRlMTkwNWFlOThhMjk4YmJiNTg4MmQ0NmEwZAoKICAgIEEgbmV3IFBZUFJPSkVDVC1CVUlMRC1T WVNURU0gaGFzIGJlZW4gYWRkZWQuICBUaGlzIGlzIGEgcmVkZXNpZ24gb2YKICAgIFBZVEhPTi1C VUlMRC1TWVNURU0gd2l0aCBzdXBwb3J0IGZvciAiUEVQIDUxNyIgYW5kIGBweXByb2plY3QudG9t bCcgZmlsZXMuCiAgICBJdCBhbHNvIGhhcyBidWlsdC1pbiBzdXBwb3J0IGZvciB2YXJpb3VzIHRl c3QgZnJhbWV3b3JrcyBzdWNoIGFzIGBweXRlc3QnCiAgICBhbmQgYG5vc2V0ZXN0cycuCiAgICAK ICAgIFRoZXJlIGlzIGEgY29tcGxlbWVudGFyeSBgcHl0aG9uLXRvb2xjaGFpbicgcGFja2FnZSB0 aGF0IGNvbWVzIHdpdGggdXBkYXRlZAogICAgdmVyc2lvbnMgb2YgYHBpcCcsIGBzZXR1cHRvb2xz JyBhbmQgb3RoZXJzLgogICAgCiAgICBUaGUgYnVpbGQgc3lzdGVtIHdpbGwgZXZlbnR1YWxseSBi ZSBtZXJnZWQgaW50byBQWVRIT04tQlVJTEQtU1lTVEVNIGJ1dCB5b3UKICAgIGFyZSBlbmNvdXJh Z2VkIHRvIHVzZSBpdCBmb3IgcGFja2FnZXMgaW4gdGhlIGBndWl4JyBjaGFubmVsLiAgVGhpcmQg cGFydHkKICAgIGNoYW5uZWxzIG1heSB3YW50IHRvIHdhaXQgdW50aWwgdGhlIEFQSSBpcyBzdGFi bGUgKHNlZSB0aGUgR3VpeCBtYW51YWwgZm9yCiAgICBjYXZlYXRzKS4KICAgIAogICAgRGVzcGl0 ZSB0aGUgbmFtZSwgUFlQUk9KRUNULUJVSUxELVNZU1RFTSBhbHNvIHdvcmtzIHdpdGggdGhlIGBg bGVnYWN5JycKICAgIGBzZXR1cC5weScgZm9ybWF0LgoKR2VuZXJhdGlvbiAxNwlKYW4gMDIgMjAy MyAwNTozODozOAogIGd1aXggZDdhOWQ3MgogICAgcmVwb3NpdG9yeSBVUkw6IGh0dHBzOi8vZ2l0 LnNhdmFubmFoLmdudS5vcmcvZ2l0L2d1aXguZ2l0CiAgICBicmFuY2g6IG1hc3RlcgogICAgY29t bWl0OiBkN2E5ZDcyYmIwMmEyYTNiMWE5OTE4MzY1NWJmODc4NTQ3MTE2MDMyCgpOZXdzIGZvciBj aGFubmVsICdndWl4JwogIE5ldyBgY3VzdG9taXplLWxpbnV4JyBwcm9jZWR1cmUKICAgIGNvbW1p dCBkZmM2OTU3YTVhZjdkMTc5ZDQ2MThlYjE5ZDRmNTU1YzUxOWJjNmYyCgogICAgVGhlIGAoZ251 IHBhY2thZ2VzIGxpbnV4KScgbW9kdWxlIGluY2x1ZGVzIGEgbmV3IGBjdXN0b21pemUtbGludXgn CiAgICBwcm9jZWR1cmUsIHdoaWNoIHNob3VsZCBub3cgYmUgdXNlZCBpbnN0ZWFkIG9mIHJlcGxh Y2luZyB0aGUgYCJrY29uZmlnIicKICAgIG5hdGl2ZSBpbnB1dCBvZiBhIGBsaW51eC1saWJyZSct ZGVyaXZlZCBwYWNrYWdlLCBhcyB0aGUga2VybmVsIGNvbmZpZyBmaWxlCiAgICBpcyBubyBsb25n ZXIgcHJvdmlkZWQgYXMgYSBuYXRpdmUgaW5wdXQuCgpHZW5lcmF0aW9uIDE4CUZlYiAxMyAyMDIz IDEzOjI5OjA5CiAgZ3VpeCAzMjQwNDc1CiAgICByZXBvc2l0b3J5IFVSTDogaHR0cHM6Ly9naXQu c2F2YW5uYWguZ251Lm9yZy9naXQvZ3VpeC5naXQKICAgIGJyYW5jaDogbWFzdGVyCiAgICBjb21t aXQ6IDMyNDA0NzU3YTEyMTRiY2U5ZDRiYzYwZjRjYWViNmU1YmY3ZWM5OGEKCk5ld3MgZm9yIGNo YW5uZWwgJ2d1aXgnCiAgTmV3IGAtLXdpdGgtdmVyc2lvbicgcGFja2FnZSB0cmFuc2Zvcm1hdGlv biBvcHRpb24KICAgIGNvbW1pdCAxMzdiOTFmMDNiYmI3ZjFkZjcxY2YxMGM0Zjc5YWU1N2ZiY2Vh NDAwCgogICAgVGhlIG5ldyBgLS13aXRoLXZlcnNpb24nIHBhY2thZ2UgdHJhbnNmb3JtYXRpb24g b3B0aW9uIGdlbmVyYWxpemVzCiAgICBgLS13aXRoLWxhdGVzdCc6IGl0IGdldHMgdGhlIHNwZWNp ZmllZCB1cHN0cmVhbSByZWxlYXNlIG9mIGEgcGFja2FnZSBhbmQKICAgIHVzZXMgaXQgaW5zdGVh ZCBvZiB0aGUgY3VycmVudGx5LXBhY2thZ2VkIHZlcnNpb24uCiAgICAKICAgIEZvciBleGFtcGxl LCB0aGUgY29tbWFuZCBiZWxvdyB3b3VsZCBzcGF3biBHTk9NRSBDbG9ja3MgYnVpbHQgYWdhaW5z dCBHVEsKICAgIDQuNy4wLCBza2lwcGluZyBpdHMgdGVzdCBzdWl0ZToKICAgIAogICAgICAgICBn dWl4IHNoZWxsIGdub21lLWNsb2NrcyAtLXdpdGgtdmVyc2lvbj1ndGs9NC43LjAgXAogICAgICAg ICAgIC0td2l0aG91dC10ZXN0cz1ndGsgLS0gZ25vbWUtY2xvY2tzCiAgICAKICAgIFJ1biBgaW5m byAiKGd1aXgpIFBhY2thZ2UgVHJhbnNmb3JtYXRpb24gT3B0aW9ucyInIGZvciBtb3JlIGluZm8u CiAgTGludXgtbGlicmUgNi4wIHJlbW92ZWQgZHVlIHRvIGVuZCBvZiB1cHN0cmVhbSBzdXBwb3J0 CiAgICBjb21taXQgOWVhMzdlYjlmNTMyOWMyMTM3NTdiYmZlNWQ5MjQxY2RlODQzMzg1OAoKICAg IFRoZSBsaW51eC1saWJyZSA2LjAga2VybmVsIHNlcmllcyBoYXMgcmVhY2hlZCB0aGUgZW5kIG9m IGl0cyBsaWZlLCBhbmQgbm8KICAgIGxvbmdlciBzdXBwb3J0ZWQgdXBzdHJlYW0uICBGb3IgdGhp cyByZWFzb24sIGl0IGhhcyBiZWVuIHJlbW92ZWQgZnJvbSBHTlUKICAgIEd1aXguCiAgTGludXgt bGlicmUga2VybmVsIHVwZGF0ZWQgdG8gNi4xCiAgICBjb21taXQgY2U4YTM0YmM5YWI4OWYzMWYx MDczODNiYTc5MTk1NDg2NGFlZDM3MgoKICAgIFRoZSBkZWZhdWx0IHZlcnNpb24gb2YgdGhlIGxp bnV4LWxpYnJlIGtlcm5lbCBoYXMgYmVlbiB1cGRhdGVkIHRvIHRoZSA2LjEKICAgIHJlbGVhc2Ug c2VyaWVzLgogIExpbnV4LWxpYnJlIDQuOSByZW1vdmVkIGR1ZSB0byBlbmQgb2YgdXBzdHJlYW0g c3VwcG9ydAogICAgY29tbWl0IDA2NGM1YjdlNDUwZjlmNmQ1NWNmY2QwZWMyYmM5ZTk2ZWUwYjI5 NTgKCiAgICBUaGUgbGludXgtbGlicmUgNC45IGtlcm5lbCBzZXJpZXMgaGFzIHJlYWNoIHRoZSBl bmQgb2YgaXRzIGxpZmUsIGFuZCBpcyBubwogICAgbG9uZ2VyIHN1cHBvcnRlZCB1cHN0cmVhbS4g IEZvciB0aGlzIHJlYXNvbiwgaXQgaGFzIGJlZW4gcmVtb3ZlZCBmcm9tIEdOVQogICAgR3VpeC4K CkdlbmVyYXRpb24gMTkJRmViIDE0IDIwMjMgMTk6MjY6MTMKICBndWl4IDQ1MDFhNTAKICAgIHJl cG9zaXRvcnkgVVJMOiBodHRwczovL2dpdC5zYXZhbm5haC5nbnUub3JnL2dpdC9ndWl4LmdpdAog ICAgYnJhbmNoOiBtYXN0ZXIKICAgIGNvbW1pdDogNDUwMWE1MGJiZGIzNWI0ZTBiNWFkZjU3YzEx YTUxMWFmMzFmNzZmNQpHZW5lcmF0aW9uIDIwCUZlYiAyMSAyMDIzIDAyOjM5OjIxCiAgZ3VpeCAw Mzg5ODFlCiAgICByZXBvc2l0b3J5IFVSTDogaHR0cHM6Ly9naXQuc2F2YW5uYWguZ251Lm9yZy9n aXQvZ3VpeC5naXQKICAgIGJyYW5jaDogbWFzdGVyCiAgICBjb21taXQ6IDAzODk4MWUxMjg3ZmM5 N2QzYTVmMTlhMmQ5ODI0ZTU1MjQ3YzIyOGUKCk5ld3MgZm9yIGNoYW5uZWwgJ2d1aXgnCiAgTmV3 IGBycG0nIGZvcm1hdCBmb3IgdGhlIGBndWl4IHBhY2snIGNvbW1hbmQKICAgIGNvbW1pdCA1OThm NGM1MDliYmZlYzJiOTgzYThlZTI0NmNjZTBhMGZlNDVlYzdmCgogICAgUlBNIGFyY2hpdmVzICh3 aXRoIHRoZSAucnBtIGZpbGUgZXh0ZW5zaW9uKSBjYW4gbm93IGJlIHByb2R1Y2VkIHZpYSB0aGUK ICAgIGBndWl4IHBhY2sgLS1mb3JtYXQ9cnBtJyBjb21tYW5kLCBwcm92aWRpbmcgYW4gYWx0ZXJu YXRpdmUgZGlzdHJpYnV0aW9uIHBhdGgKICAgIGZvciBzb2Z0d2FyZSBidWlsdCB3aXRoIEd1aXgu ICBIZXJlIGlzIGEgc2ltcGxlIGV4YW1wbGUgdGhhdCBnZW5lcmF0ZXMgYW4KICAgIFJQTSBhcmNo aXZlIGZvciB0aGUgYGhlbGxvJyBwYWNrYWdlOgogICAgCiAgICAgICAgIGd1aXggcGFjayAtLWZv cm1hdD1ycG0gLS1zeW1saW5rPS91c3IvYmluL2hlbGxvPWJpbi9oZWxsbyBoZWxsbwogICAgCiAg ICBTZWUgYGluZm8gIihndWl4KSBJbnZva2luZyBndWl4IHBhY2siJyBmb3IgbW9yZSBpbmZvcm1h dGlvbi4KCkdlbmVyYXRpb24gMjEJTWFyIDE1IDIwMjMgMTc6NDA6MjUJKGN1cnJlbnQpCiAgZ3Vp eCA4YTQ3OTQ5CiAgICByZXBvc2l0b3J5IFVSTDogaHR0cHM6Ly9naXQuc2F2YW5uYWguZ251Lm9y Zy9naXQvZ3VpeC5naXQKICAgIGJyYW5jaDogbWFzdGVyCiAgICBjb21taXQ6IDhhNDc5NDk0NjMz Mzk1ZjVhNGEwODhlMmM1MjM4MGJjYjIyZjRmZTgKCk5ld3MgZm9yIGNoYW5uZWwgJ2d1aXgnCiAg TGludXgtbGlicmUga2VybmVsIHVwZGF0ZWQgdG8gNi4yCiAgICBjb21taXQgMGUxOGM1ZTViY2I5 MjA0YzI3OGNmYzc1NDkzZDNiMDJiNzQ2ZDVjMwoKICAgIFRoZSBkZWZhdWx0IHZlcnNpb24gb2Yg dGhlIGxpbnV4LWxpYnJlIGtlcm5lbCBoYXMgYmVlbiB1cGRhdGVkIHRvIHRoZSA2LjIKICAgIHJl bGVhc2Ugc2VyaWVzLgoKR2VuZXJhdGlvbiAyMglKdW4gMzAgMjAyMyAwMToyNzozOAogIGd1aXgg NjM2NjBmMAogICAgcmVwb3NpdG9yeSBVUkw6IGh0dHBzOi8vZ2l0LnNhdmFubmFoLmdudS5vcmcv Z2l0L2d1aXguZ2l0CiAgICBjb21taXQ6IDYzNjYwZjBmZWJiNGFhMGQ1MjYwNzkxYzgyZGZkZTE1 YzBkZjRjNzkKCk5ld3MgZm9yIGNoYW5uZWwgJ2d1aXgnCiAgTmV3IGBndWl4IGxvY2F0ZScgY29t bWFuZAogICAgY29tbWl0IDFiN2FhYmJjNzk5NjlhODkxNDFhYWRkM2Q0MWQ3YTUzMjlhMzQ2MmUK CiAgICBUaGUgbmV3IGBndWl4IGxvY2F0ZScgY29tbWFuZCBsZXRzIHlvdSBzZWFyY2ggZm9yIHBh Y2thZ2VzIGNvbnRhaW5pbmcgYQogICAgZ2l2ZW4gZmlsZS0tLWF0IGxvbmcgbGFzdCEgRm9yIGlu c3RhbmNlLCB0byBmaW5kIHdoaWNoIHBhY2thZ2UocykgcHJvdmlkZSBhCiAgICBmaWxlIG5hbWVk IGBscycsIHJ1bjoKICAgIAogICAgICAgICBndWl4IGxvY2F0ZSBscwogICAgCiAgICBDdXJyZW50 bHkgdGhlIGNvbW1hbmQgcmVsaWVzIG9uIHB1cmVseSBsb2NhbCBpbmZvcm1hdGlvbi4gIEl0IGlz IHRodXMgdW5hYmxlCiAgICB0byBmaW5kIHBhY2thZ2VzIHRoYXQgaGF2ZSBub3QgcmVhY2hlZCB5 b3VyIHN0b3JlLiAgVGhpcyBsaW1pdGF0aW9uIHdpbGwgYmUKICAgIGxpZnRlZCBpbiBhIGZ1dHVy ZSByZXZpc2lvbi4KICAgIAogICAgUnVuIGBpbmZvICIoZ3VpeCkgSW52b2tpbmcgZ3VpeCBsb2Nh dGUiJyBmb3IgbW9yZSBpbmZvLgogIE5ldyBgYXJndW1lbnRzJyBydWxlIGZvciBgZ3VpeCBzdHls ZScKICAgIGNvbW1pdCBiYTVkYTUxMjVhODEzMDc1MDA5ODI1MTdlMmY0NThkNTdiMDI0NjY4Cgog ICAgVGhlIGBndWl4IHN0eWxlJyBjb21tYW5kIGhhcyBhIG5ldyAic3R5bGluZyBydWxlIiBmb3Ig cGFja2FnZSBkZWZpbml0aW9ucy4KICAgIFBhY2thZ2Ugd3JpdGVycyBtYXkgbm93IHJ1biB0aGUg Zm9sbG93aW5nIGNvbW1hbmQ6CiAgICAKICAgICAgICAgZ3VpeCBzdHlsZSAtTCAvcGF0aC90by9j aGFubmVsIC1TIGFyZ3VtZW50cyBQQUNLQUdFCiAgICAKICAgIFRoaXMgY29tbWFuZCByZXdyaXRl cyB0aGUgYGFyZ3VtZW50cycgZmllbGQgb2YgUEFDS0FHRSBzbyB0aGF0IGl0IHVzZXMKICAgIEct ZXhwcmVzc2lvbnMgaW5zdGVhZCBvZiBjbGFzc2ljYWwgcXVhc2lxdW90YXRpb24uCiAgICAKICAg IFJ1biBgaW5mbyAiKGd1aXgpIEludm9raW5nIGd1aXggc3R5bGUiJyBmb3IgbW9yZSBpbmZvLgog IE5ldyBgLS13aXRoLWNvbmZpZ3VyZS1mbGFnJyB0cmFuc2Zvcm1hdGlvbiBvcHRpb24KICAgIGNv bW1pdCBhZTExZmNiODRhYzQ3OGRmYTU2ZDMyMmVmMDg4OTA2NDUxODNhMDg3CgogICAgVGhlIG5l dyBgLS13aXRoLWNvbmZpZ3VyZS1mbGFnJyBwYWNrYWdlIHRyYW5zZm9ybWF0aW9uIG9wdGlvbiBs ZXRzIHlvdSBwYXNzCiAgICBhbiBhZGRpdGlvbmFsIGNvbmZpZ3VyZSBmbGFnIHRvIHRoZSBidWls ZCBzeXN0ZW0gb2YgYSBwYWNrYWdlLiAgRm9yCiAgICBpbnN0YW5jZSwgaGVyZSBpcyBob3cgeW91 IHdvdWxkIHBhc3MgYSBmbGFnIHRvIGBjbWFrZScsIHRoZSBidWlsZCBzeXN0ZW0gb2YKICAgIHRo ZSBgbGFwYWNrJyBwYWNrYWdlOgogICAgCiAgICAgICAgIGd1aXggYnVpbGQgbGFwYWNrIFwKICAg ICAgICAgICAtLXdpdGgtY29uZmlndXJlLWZsYWc9bGFwYWNrPS1EQlVJTERfU0hBUkVEX0xJQlM9 T0ZGCiAgICAKICAgIFJ1biBgaW5mbyAiKGd1aXgpIFBhY2thZ2UgVHJhbnNmb3JtYXRpb24gT3B0 aW9ucyInIGZvciBtb3JlIGluZm8uCiAgQ29yZSBwYWNrYWdlcyB1cGRhdGVkCiAgICBjb21taXQg YzkxOWJmZWZkOThiZjJlMjk1NDk1MzliNGUyOGU2ZGMyYThhNmYzMgoKICAgIENvcmUgcGFja2Fn ZXMgaGF2ZSBiZWVuIHVwZGF0ZWQsIGZvbGxvd2luZyBtb250aHMgb2YgaGFyZCB3b3JrIGJ5CiAg ICBjb250cmlidXRvcnMuICBOb3Rld29ydGh5IHBhY2thZ2UgdXBncmFkZXMgaW5jbHVkZToKICAg IAogICAgICAgKiBnbGliYyAyLjM1OwogICAgCiAgICAgICAqIFB5dGhvbiAzLjEwOwogICAgCiAg ICAgICAqIFBlcmwgNS4zNjsKICAgIAogICAgICAgKiBNZXNhIDIyOwogICAgCiAgICAgICAqIEdD QyAxMSBpcyBub3cgdXNlZCBhcyB0aGUgZGVmYXVsdCBjb21waWxlci4KICAgIAogICAgQSBtYWpv ciBoaWdobGlnaHQgaXMgdGhlIGludHJvZHVjdGlvbiBvZiB0aGUgc28tY2FsbGVkICJmdWxsLXNv dXJjZQogICAgYm9vdHN0cmFwIjogcGFja2FnZXMgYXJlIGFsbCBidWlsdCBzdGFydGluZyBmcm9t IGEgNTAwLWJ5dGUgcHJvZ3JhbSBjYWxsZWQKICAgIHN0YWdlMCwgd2hpY2ggaXMgdGhlbiB1c2Vk IHRvIGJ1aWxkIGEgaGlnaGVyLWxldmVsIGludGVycHJldGVyLCBhIGJhc2ljCiAgICBTY2hlbWUg aW50ZXJwcmV0ZXIgYW5kIEMgY29tcGlsZXIgKEdOVSBNZXMpLCBhbmQgc28gb24sIHVudGlsIEdD QyAodGhlIEdOVQogICAgQ29tcGlsZXIgQ29sbGVjdGlvbikgaXMgZmluYWxseSBidWlsdC4gIFRo aXMgaXMgYSBwcmVtaWVyZSBhbmQgYSBodWdlIHN0ZXAKICAgIGZvcndhcmQgaW4gdGVybXMgb2Yg dHJhbnNwYXJlbmN5IG9mIGF1ZGl0YWJpbGl0eS4KICBMaW51eC1saWJyZSBMVFMga2VybmVsIHVw ZGF0ZWQgdG8gNi4xCiAgICBjb21taXQgMjE1NjRmYWRhMTQxYmZiYTI1ZDQ3MTUxOGIyOTNiNjAw NDI0NGMzYQoKICAgIFRoZSBkZWZhdWx0IHZlcnNpb24gb2YgdGhlIGBsaW51eC1saWJyZS1sdHMn IGtlcm5lbCBoYXMgYmVlbiB1cGRhdGVkIHRvIHRoZQogICAgNi4xIGxvbmd0ZXJtIHJlbGVhc2Ug c2VyaWVzLgogIFVzaW5nIEd1aXggd2l0aGluIGBndWl4IHNoZWxsIC0tY29udGFpbmVyJwogICAg Y29tbWl0IDU3ZGIwOWFhZTczZTM3MTNhMTBjNTI1Mzc1OGQ4NGUxMDQ2ZjgwZGMKCiAgICBUaGUg YC0tY29udGFpbmVyJyAob3IgYC1DJykgb3B0aW9uIGxldHMgeW91IHNwYXduIGEgY29udGFpbmVy LS0tYW4gaXNvbGF0ZWQKICAgIHNvZnR3YXJlIGVudmlyb25tZW50LiAgSW4gc29tZSBjYXNlcywg aXQgaXMgdXNlZnVsIHRvIHVzZSBHdWl4IGZyb20gd2l0aGluCiAgICB0aGUgY29udGFpbmVyLCBz b21ldGhpbmcgdGhhdCBpcyBub3JtYWxseSBub3QgcG9zc2libGUuCiAgICAKICAgIFRoZSBuZXcg YC0tbmVzdGluZycgKG9yIGAtVycpIG9wdGlvbiBsZXRzIHlvdSBkbyBleGFjdGx5IHRoYXQ6IGEg Y29udGFpbmVyCiAgICBjcmVhdGVkIHdpdGggdGhhdCBvcHRpb24gd2lsbCBsZXQgeW91IHVzZSBg Z3VpeCcgY29tbWFuZHMsIGluY2x1ZGluZyBgZ3VpeAogICAgc2hlbGwgLUMnLCBfaW5zaWRlXyBv ZiBpdC4KICAgIAogICAgVGhlIGV4YW1wbGUgYmVsb3cgc2hvd3MgaG93IHRvIGV2YWx1YXRlIGEg YGd1aXguc2NtJyBmaWxlIHRvIGJ1aWxkIGEgcGFja2FnZQogICAgZnJvbSB3aXRoaW4gYW4gaXNv bGF0ZWQgY29udGFpbmVyLCB3aGljaCBpcyB1c2VmdWwgaWYgYGd1aXguc2NtJyBpcwogICAgdW50 cnVzdGVkOgogICAgCiAgICAgICAgIGd1aXggc2hlbGwgLUNXIC0tIGd1aXggYnVpbGQgLWYgZ3Vp eC5zY20KICAgIAogICAgUnVuIGBpbmZvICIoZ3VpeCkgSW52b2tpbmcgZ3VpeCBzaGVsbCInIGZv ciBtb3JlIGluZm9ybWF0aW9uLgoK --=-=-=--