From owner-freebsd-stable@FreeBSD.ORG Wed May 15 05:32:14 2013 Return-Path: Delivered-To: stable@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by hub.freebsd.org (Postfix) with ESMTP id 8F47EA8B; Wed, 15 May 2013 05:32:14 +0000 (UTC) (envelope-from pgj@freebsd.org) Received: from mail1.ozon.ru (mx4.ozon.ru [194.186.179.140]) by mx1.freebsd.org (Postfix) with ESMTP id 53D1BE10; Wed, 15 May 2013 05:32:12 +0000 (UTC) Received: from intmail03msk.ozon (intmail03msk.ozon [10.18.18.171]) by mail1.ozon.ru (Postfix) with ESMTP id 7BBD271A1E1; Wed, 15 May 2013 09:32:10 +0400 (MSK) Received: from mail pickup service by intmail03msk.ozon with Microsoft SMTPSVC; Wed, 15 May 2013 09:32:05 +0400 Received: from intmail03msk.ozon ([10.18.18.171]) by intmail02msk.ozon with Microsoft SMTPSVC(6.0.3790.4675); Sun, 12 May 2013 21:55:21 +0400 Received: from mail1.ozon.ru ([194.186.179.140]) by intmail03msk.ozon with Microsoft SMTPSVC(6.0.3790.4675); Sun, 12 May 2013 21:55:21 +0400 Received: from localhost (localhost [127.0.0.1]) by mail1.ozon.ru (Postfix) with ESMTP id 4007F7196E1 for ; Sun, 12 May 2013 21:55:21 +0400 (MSK) X-Virus-Scanned: amavisd-new at ozon.ru Received: from mail1.ozon.ru ([127.0.0.1]) by localhost (mx4.ozon.ru [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id JyQbjE0mM7xC for ; Sun, 12 May 2013 21:55:13 +0400 (MSK) X-Greylist: domain auto-whitelisted by SQLgrey-1.7.6 Received-SPF: pass (freebsd.org: 8.8.178.116 is authorized to use 'owner-freebsd-hackers@freebsd.org' in 'mfrom' identity (mechanism 'ip4:8.8.178.116' matched)) receiver=mx4.ozon.ru; identity=mfrom; envelope-from="owner-freebsd-hackers@freebsd.org"; helo=mx2.freebsd.org; client-ip=8.8.178.116 Received: from mx2.freebsd.org (mx2.FreeBSD.org [8.8.178.116]) by mail1.ozon.ru (Postfix) with ESMTP id BEE6F7196C3 for ; Sun, 12 May 2013 21:55:12 +0400 (MSK) Received: from hub.freebsd.org (hub.freebsd.org [IPv6:2001:1900:2254:206c::16:88]) by mx2.freebsd.org (Postfix) with ESMTP id 56A378D1; Sun, 12 May 2013 17:55:09 +0000 (UTC) Received: from hub.freebsd.org (hub.freebsd.org [IPv6:2001:1900:2254:206c::16:88]) by hub.freebsd.org (Postfix) with ESMTP id 53B968CC; Sun, 12 May 2013 17:55:09 +0000 (UTC) (envelope-from owner-freebsd-hackers@freebsd.org) Delivered-To: hackers@freebsd.org Received: from mx1.freebsd.org (mx1.FreeBSD.org [8.8.178.115]) by hub.freebsd.org (Postfix) with ESMTP id 63234802; Sun, 12 May 2013 17:54:58 +0000 (UTC) (envelope-from pali.gabor@gmail.com) Received: from mail-ee0-f46.google.com (mail-ee0-f46.google.com [74.125.83.46]) by mx1.freebsd.org (Postfix) with ESMTP id 6558067D; Sun, 12 May 2013 17:54:56 +0000 (UTC) Received: by mail-ee0-f46.google.com with SMTP id e49so1173774eek.5 for ; Sun, 12 May 2013 10:54:50 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113; h=x-received:sender:date:from:to:cc:subject:message-id:organization :x-mailer:mime-version:content-type:content-transfer-encoding; bh=eULesjOb39sJd/mJ0denfWWGMB8KfGMdpy/4x27l1Ew=; b=z6zg4xAouE04VXCoJM1e8hqP/Wnww+f6xosQwKSvxQeUV5plNkqe69mIGH5uhu6BnJ jcKF0I8sza6uBAs2S4DfxwQXtP5jjmyyFfYJdtT8EAH3kWGUiPZD2IahDhANtZkFB/T0 1YyQ1nPeQO/lxvRz+OEBFeqC3nKzzqnDri63tx95T5P5UeybTa48SikVwcXiY/dT/oTa uLzepYjMeCWEOtZqHIKJcMGV0fsGqzSJQ2NxoQ1s/GMaNVzACAKSzbKRmvsJHL30GDwa Z2v6TIq4ILM1VrRCbdKAyfE7LcyDreMLJ2RN1a5F82k9FdymxYvW8+49VPg9h8KkjuMC vLNQ== X-Received: by 10.14.0.129 with SMTP id 1mr68418742eeb.43.1368381289883; Sun, 12 May 2013 10:54:49 -0700 (PDT) Received: from funktor (catv-80-98-246-83.catv.broadband.hu. [80.98.246.83]) by mx.google.com with ESMTPSA id i2sm6674817eeg.2.2013.05.12.10.54.48 for (version=SSLv3 cipher=RC4-SHA bits=128/128); Sun, 12 May 2013 10:54:49 -0700 (PDT) Date: Sun, 12 May 2013 19:54:05 +0200 From: Gabor Pali To: hackers@freebsd.org Subject: FreeBSD Quarterly Status Report, January-March 2013 Message-ID: <20130512195405.04653b64@funktor> Organization: The FreeBSD Project X-Mailer: Claws Mail 3.9.0 (GTK+ 2.24.17; i386-portbld-freebsd9.1) Mime-Version: 1.0 X-BeenThere: freebsd-hackers@freebsd.org X-Mailman-Version: 2.1.14 Precedence: list Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Errors-To: owner-freebsd-hackers@freebsd.org Sender: owner-freebsd-hackers@freebsd.org X-OriginalArrivalTime: 12 May 2013 17:55:21.0174 (UTC) FILETIME=[DEE71760:01CE4F39] Cc: stable@freebsd.org, current@freebsd.org X-BeenThere: freebsd-stable@freebsd.org List-Id: Production branch of FreeBSD source code List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 15 May 2013 05:32:14 -0000 RnJlZUJTRCBRdWFydGVybHkgU3RhdHVzIFJlcG9ydCwgSmFudWFyeS1NYXJjaCAyMDEzCgpJbnRy b2R1Y3Rpb24KCiAgIFRoaXMgcmVwb3J0IGNvdmVycyBGcmVlQlNELXJlbGF0ZWQgcHJvamVjdHMg YmV0d2VlbiBKYW51YXJ5IGFuZCBNYXJjaAogICAyMDEzLiBUaGlzIGlzIHRoZSBmaXJzdCBvZiBm b3VyIHJlcG9ydHMgcGxhbm5lZCBmb3IgMjAxMy4KCiAgIEhpZ2hsaWdodHMgZnJvbSB0aGlzIHN0 YXR1cyByZXBvcnQgaW5jbHVkZSB0aGUgYnVzeSBwcmVwYXJhdGlvbnMgb2YKICAgOC40LVJFTEVB U0UsIHJlc3RvcmF0aW9uIG9mIGJpbmFyeSBwYWNrYWdlIGJ1aWxkaW5nLCBzdGVhZHkgcHJvZ3Jl c3Mgb2YKICAgc2V2ZXJhbCBwb3J0aW5nIGVmZm9ydHMsIGxpa2Ugd29yayBvbiB0aGUgRnJlZUJT RCBwb3J0cyBvZiB4b3JnLCBHTk9NRSwKICAgS0RFLCBhbmQgWGZjZSwgYnJpbmdpbmcgRnJlZUJT RCB0byBDdWJpZWJvYXJkIGFuZCBIYWNrYmVycnkgYm9hcmRzLAogICBkZXZlbG9wbWVudCBvZiBB Uk0gYW5kIEFNRCBHUFUgc3VwcG9ydCwgaW1wcm92aW5nIHBlcmZvcm1hbmNlIG9mCiAgIFVGUy9G RlMgYW5kIGNhbGxvdXRzLCBhbmQgaW50cm9kdWNpbmcgYSBtdWx0aXBhdGggVENQIGltcGxlbWVu dGF0aW9uCiAgIGZvciB0aGUgbmV0d29yayBzdGFjay4KCiAgIFRoYW5rcyB0byBhbGwgdGhlIHJl cG9ydGVycyBmb3IgdGhlIGV4Y2VsbGVudCB3b3JrISBUaGlzIHJlcG9ydAogICBjb250YWlucyAz MSBlbnRyaWVzIGFuZCB3ZSBob3BlIHlvdSBlbmpveSByZWFkaW5nIGl0LgoKICAgVGhlIGRlYWRs aW5lIGZvciBzdWJtaXNzaW9ucyBjb3ZlcmluZyB0aGUgcGVyaW9kIGJldHdlZW4gQXByaWwgYW5k IEp1bmUKICAgMjAxMyBpcyBKdWx5IDd0aCwgMjAxMy4KICAgICBfX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18KClByb2plY3Rz CgogICAgICogRnJlZU5BUwogICAgICogS2VybmVsIEluZm9ybWF0aW9uIGluIFByb2Nlc3MgQ29y ZSBEdW1wcwogICAgICogTmF0aXZlIGlTQ1NJIFN0YWNrCgpGcmVlQlNEIFRlYW0gUmVwb3J0cwoK ICAgICAqIEZyZWVCU0QgQnVnbWVpc3RlciBUZWFtCiAgICAgKiBGcmVlQlNEIENvcmUgVGVhbQog ICAgICogRnJlZUJTRCBQb3J0IE1hbmFnZXJzCiAgICAgKiBGcmVlQlNEIFBvc3RtYXN0ZXIgVGVh bQogICAgICogRnJlZUJTRCBSZWxlYXNlIEVuZ2luZWVyaW5nIFRlYW0KCktlcm5lbAoKICAgICAq IEFNRCBHUFUgS2VybmVsIE1vZGUtU2V0dGluZyAoS01TKSBTdXBwb3J0CiAgICAgKiBBdG9taWMg ImNsb3NlLW9uLWV4ZWMiCiAgICAgKiBjYWxsb3V0KDkpIEltcHJvdmVtZW50cwogICAgICogTXVs dGlwYXRoIFRDUCAoTVBUQ1ApIGZvciBGcmVlQlNECiAgICAgKiByYWNjdDogQmxvY2sgSU8gQWNj b3VudGluZwogICAgICogUmVhZC1vbmx5IFBvcnQgb2YgTmV0QlNEJ3MgVURGIEZpbGUgU3lzdGVt CiAgICAgKiBUQ1AtQU8gQXV0aGVudGljYXRpb24gT3B0aW9uCiAgICAgKiBVRlMvRkZTIFBlcmZv cm1hbmNlIFdvcmsKCkRvY3VtZW50YXRpb24KCiAgICAgKiBJbXByb3ZpbmcgdGhlIERvY3VtZW50 YXRpb24gUHJvamVjdCBJbmZyYXN0cnVjdHJlCiAgICAgKiBUaGUgZW50aXRpZXMgRG9jdW1lbnRh dGlvbiBCcmFuY2gKICAgICAqIFRoZSBGcmVlQlNEIEphcGFuZXNlIERvY3VtZW50YXRpb24gUHJv amVjdAoKQXJjaGl0ZWN0dXJlcwoKICAgICAqIEZyZWVCU0Qgb24gQ3ViaWVib2FyZAogICAgICog RnJlZUJTRC9hcm0gU3VwZXJwYWdlcyBmb3IgQVJNdjcKICAgICAqIEZyZWVCU0QvQVJNIFRvb2xj aGFpbiBJbXByb3ZlbWVudHMKClBvcnRzCgogICAgICogRnJlZUJTRCBIYXNrZWxsIFBvcnRzCiAg ICAgKiBHTk9NRS9GcmVlQlNECiAgICAgKiBLREUvRnJlZUJTRAogICAgICogUHlQeQogICAgICog V2luZTMyIG9uIEZyZWVCU0QvYW1kNjQKICAgICAqIFhmY2UvRnJlZUJTRAogICAgICogeG9yZyBv biBGcmVlQlNECgpNaXNjZWxsYW5lb3VzCgogICAgICogQlhSLlNVIC0tIFN1cGVyIFVzZXIncyBC U0QgQ3Jvc3MgUmVmZXJlbmNlCiAgICAgKiBtZG9jLnN1IC0tIFNob3J0IE1hbnVhbCBQYWdlIFVS THMKICAgICBfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX18KCkFNRCBHUFUgS2VybmVsIE1vZGUtU2V0dGluZyAoS01TKSBTdXBw b3J0CgogICBVUkw6IGh0dHBzOi8vd2lraS5mcmVlYnNkLm9yZy9BTURfR1BVCgogICBDb250YWN0 OiBKZWFuLVPDqWJhc3RpZW4gUMOpZHJvbiA8ZHVtYmJlbGxARnJlZUJTRC5vcmc+CiAgIENvbnRh Y3Q6IEouUi4gT2xkcm95ZCA8anJAb3BhbC5jb20+CiAgIENvbnRhY3Q6IEtvbnN0YW50aW4gQmVs b3Vzb3YgPGtpYkBGcmVlQlNELm9yZz4KCiAgIFRoZSBwcm9qZWN0IHByb2dyZXNzZWQgd2VsbCBz aW5jZSBGZWJydWFyeToKCiAgICAgKiBLb25zdGFudGluIGNvbW1pdHRlZCBpcyBUVE0gcG9ydCB0 byAxMC1DVVJSRU5ULgogICAgICogV2l0aCB0aGUgaGVscCBvZiBKb2huIEJhbGR3aW4gKGpoYikg YW5kIEFuZHJpeSBHYXBvbiAoYXZnKSwgdGhlCiAgICAgICBWaWRlbyBCSU9TIHNpdHVhdGlvbiBn cmVhdGx5IGltcHJvdmVkOiB0aGUgcmFkZW9ua21zIGRyaXZlciByZWFkcwogICAgICAgdGhlIEJJ T1Mgc2hhZG93IGNvcHkgaWYgdGhlIHZpZGVvIGNhcmQgaXMgdGhlIHByaW1hcnkgb25lLCBvciBx dWVyeQogICAgICAgdGhlIFBDSSBleHBhbnNpb24gUk9NIG90aGVyd2lzZS4gSW4gdGhlIGVuZCwg dGhpcyBjb2RlIHdpbGwgYmUKICAgICAgIHByb2JhYmx5IGNvbW1pdHRlZCB0byB0aGUgUENJIGRy aXZlciBzbyB0aGF0IG90aGVyIHZpZGVvIGRyaXZlcnMKICAgICAgIGJlbmVmaXQgZnJvbSBpdC4K ICAgICAqIEFuZHJpeSBhbHNvIHJlcG9ydGVkIHNldmVyYWwgcHJvYmxlbXMgd2l0aCB0aGUgSTJD IGNvZGUuIE5vdyB0aGF0CiAgICAgICB0aGV5IGFyZSBmaXhlZCwgdGhlIG1vbml0b3JzIHBsdWdn ZWQgaW50byBEVkkgYW5kIEhETUkgY29ubmVjdG9ycwogICAgICAgYXJlIGRldGVjdGVkIGFuZCB0 aGVpciBFRElEIGlzIHJlYWQgY29ycmVjdGx5LiBWR0EgY29ubmVjdG9yIGlzIG5vdAogICAgICAg dGVzdGVkIHNvIGZhci4KICAgICAqIFRoZXJlIGlzIGEgbG9ja2luZyBwcm9ibGVtIGluIGVpdGhl ciBUVE0gb3IgdGhlIFJhZGVvbiBkcml2ZXIgd2hpY2gKICAgICAgIHByZXZlbnRzIE9wZW5HTCBm cm9tIHdvcmtpbmcgcHJvcGVybHkuIEplYW4tU8OpYmFzdGllbiBpcyBjdXJyZW50bHkKICAgICAg IHRyYWNraW5nIHRoaXMgZG93bi4KICAgICAqIEouUi4gT2xkcm95ZCBzdGFydGVkIHRvIHdvcmsg b24gYSA5LVNUQUJMRSBiYWNrcG9ydCBvZiB0aGUgZHJpdmVyCiAgICAgICB3aGljaCBpcyBub3cg d29ya2luZyBxdWl0ZSB3ZWxsLiBIZSBoYWQgdG8gYmFja3BvcnQgc29tZSBmZWF0dXJlcwogICAg ICAgZnJvbSB0aGUgVk0gd2hpY2ggbWF5IG5lZWQgZnVydGhlciByZWZpbmVtZW50IGJ5IHRoZSBW TSBmb2xrcy4KCiAgIFlha2F6IGxlbmRlZCBKZWFuLVPDqWJhc3RpZW4gYSBjb21wdXRlciB3aGlj aCBhbGxvd3MgaGltIHRvIHRlc3QgYQogICBSVjYzMC1iYXNlZCBkaXNjcmV0ZSBjYXJkIGFuZCwg aW4gdGhlIGZ1dHVyZSwgb3RoZXIgUENJZSBjYXJkcy4gU2V2ZXJhbAogICB1c2VycyBhbHJlYWR5 IGtpbmRseSB0ZXN0ZWQgdGhlIGRyaXZlci4gQmlnIHRoYW5rcyB0byBhbGwgdGhvc2UKICAgY29u dHJpYnV0b3JzIQoKICAgSW4gaXRzIGN1cnJlbnQgc3RhdGUsIHRoZSBkcml2ZXIgYWxsb3dzIHRv IGhhdmUgYSBzaW1wbGUgWCBzZXNzaW9uIChubwogICBPcGVuR0wpLCBydW4gY29tbW9uIGFwcGxp Y2F0aW9ucywgd2F0Y2ggbW92aWVzLCBjaGFuZ2UgdGhlIHJlc29sdXRpb24KICAgYW5kIGVuYWJs ZSBhZGRpdGlvbmFsIG1vbml0b3JzIHdpdGggeHJhbmRyKDEpLiBUaGUgbW9zdCBibG9ja2luZyBp c3N1ZQogICBub3cgaXMgdGhlIE9wZW5HTCBkZWFkbG9jayB3aGljaCBwcmV2ZW50cyB0byBydW4g bW9kZXJuCiAgIGNvbXBvc2l0b3JzL2Rlc2t0b3AgZW52aXJvbm1lbnQsIGdhbWVzIGFuZCBXZWJH TCBkZW1vcy4gV2UgYXJlIG5vdAogICByZWFkeSBmb3IgYSAiQ2FsbCBGb3IgVGVzdGVycyIgeWV0 LgoKT3BlbiB0YXNrczoKCiAgICAxLiBUZXN0IG11bHRpcGxlIGNhcmRzIGNvbmZpZ3VyYXRpb25z IGZvciBWaWRlbyBCSU9TIGlzc3VlcywKICAgICAgIGVzcGVjaWFsbHkgSW50ZWwgaW50ZWdyYXRl ZCBjYXJkICsgUmFkZW9uIGRpc2NyZXRlIGNhcmQsIGFuZCBBTUQKICAgICAgIGludGVncmF0ZWQg Y2FyZCAoSUdQKSArIFJhZGVvbiBkaXNjcmV0ZSBjYXJkLiBObyBuZWVkIHRvIGNoZWNrCiAgICAg ICBjb25maWd1cmF0aW9ucyB3aXRoIG9uZSBzaGFyZWQgY29ubmVjdG9yIHRob3VnaCwgaXQgaXMg bm90CiAgICAgICBzdXBwb3J0ZWQgcmlnaHQgbm93LgogICAgIF9fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwoKQXRvbWljICJj bG9zZS1vbi1leGVjIgoKICAgVVJMOiBodHRwczovL3dpa2kuZnJlZWJzZC5vcmcvQXRvbWljQ2xv c2VPbkV4ZWMKCiAgIENvbnRhY3Q6IEppbGxlcyBUam9lbGtlciA8amlsbGVzQEZyZWVCU0Qub3Jn PgoKICAgSWYgdGhyZWFkcyBvciBzaWduYWwgaGFuZGxlcnMgY2FsbCBmb3JrKCkgYW5kIGV4ZWMo KSwgZmlsZSBkZXNjcmlwdG9ycwogICBtYXkgYmUgcGFzc2VkIHVuZGVzaXJhYmx5IHRvIGNoaWxk IHByb2Nlc3Nlcywgd2hpY2ggbWF5IGxlYWQgdG8gaGFuZ3MKICAgKGlmIGEgcGlwZSBpcyBub3Qg Y2xvc2VkKSwgZXhjZWVkaW5nIHRoZSBmaWxlIGRlc2NyaXB0b3IgbGltaXQgYW5kCiAgIHNlY3Vy aXR5IHByb2JsZW1zIChpZiB0aGUgY2hpbGQgcHJvY2VzcyBoYXMgbG93ZXIgcHJpdmlsZWdlKS4g T25lCiAgIHNvbHV0aW9uIGlzIHZhcmlvdXMgbmV3IEFQSXMgdGhhdCBzZXQgdGhlICJjbG9zZS1v bi1leGVjIiBmbGFnCiAgIGF0b21pY2FsbHkgd2l0aCBhbGxvY2F0aW5nIGEgZmlsZSBkZXNjcmlw dG9yLiBTb21lIGV4aXN0aW5nIHNvZnR3YXJlCiAgIHdpbGwgdXNlIHRoZSBuZXcgZmVhdHVyZXMg aWYgcHJlc2VudCBvciB3aWxsIGV2ZW4gcmVmdXNlIHRvIGNvbXBpbGUKICAgd2l0aG91dCB0aGVt LgoKICAgVmFyaW91cyBwYXJ0cyBoYXZlIGJlZW4gcHJlc2VudCBmb3Igc29tZSB0aW1lLgoKICAg SW4gZmlyc3QgcXVhcnRlciBvZiAyMDEzLCBleHRlbnNpb25zIHRvIHJlY3Ztc2coKSwgc29ja2V0 KCksCiAgIHNvY2tldHBhaXIoKSBhbmQgcG9zaXhfb3BlbnB0KCkgaGF2ZSBiZWVuIGFkZGVkLgog ICAgIF9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fXwoKQlhSLlNVIC0tIFN1cGVyIFVzZXIncyBCU0QgQ3Jvc3MgUmVmZXJlbmNl CgogICBVUkw6IGh0dHA6Ly9ieHIuc3UvCiAgIFVSTDogaHR0cDovL2xpc3RzLmZyZWVic2Qub3Jn L3BpcGVybWFpbC9mcmVlYnNkLWhhY2tlcnMvMjAxMy1BcHJpbC8wNDIzMzQuaHRtbAoKICAgQ29u dGFjdDogQ29uc3RhbnRpbmUgQS4gTXVyZW5pbiA8Y25zdCsrQEZyZWVCU0Qub3JnPgoKICAgU3Vw ZXIgVXNlcidzIEJTRCBDcm9zcyBSZWZlcmVuY2UgKEJYUi5TVSkgaXMgYSBuZXcgc291cmNlLWNv ZGUgc2VhcmNoCiAgIGVuZ2luZSB0aGF0IGNvdmVycyB0aGUgY29tcGxldGUga2VybmVsIGFuZCBu b24tR05VIHVzZXJsYW5kIHNvdXJjZQogICB0cmVlcyBvZiBGcmVlQlNELCBOZXRCU0QsIE9wZW5C U0QsIGFuZCBEcmFnb25GbHkgQlNELgoKICAgQlhSLlNVIGlzIG9wdGltaXNlZCB0byBiZSB2ZXJ5 IGZhc3QsIGhhcyBkYWlseSB1cGRhdGVzIG9mIGFsbCB0aGUKICAgdHJlZXMsIGFuZCBhbHNvIGFj dHMgYXMgYSBkZXRlcm1pbmlzdGljIFVSTCBzaG9ydGVuZXIuCgogICBCWFIuU1UgaXMgYmFzZWQg b24gYW4gT3Blbkdyb2sgZm9yaywgYnV0IGl0IGlzIG1vcmUgdGhhbiBqdXN0IE9wZW5Hcm9rLgog ICBXZSBoYXZlIGZpeGVkIGEgbnVtYmVyIG9mIGFubm95YW5jZXMsIGVsaW1pbmF0ZWQgZmVhdHVy ZXMgdGhhdCBqdXN0CiAgIG5ldmVyIHdvcmtlZCByaWdodCBmcm9tIHRoZSBvdXRyaWdodCwgYW5k IHByb3ZpZGVkIGludGVncmF0aW9uIHdpdGgKICAgdG9vbHMgbGlrZSBDVlN3ZWIgKGluY2x1ZGlu ZyBncmVhdCBtaXJyb3JzIGxpa2UgYWxsYnNkLm9yZyksIEZyZWVCU0QncwogICBWaWV3VkMgKFNW TiksIGFzIHdlbGwgYXMgR2l0SHViIGFuZCBHaXR3ZWIgZnJvbSBnaXQuZnJlZWJzZC55b3VyLm9y ZywKICAgcGx1cyBhIHRhZCBvZiBvdGhlciBpbXByb3ZlbWVudHMsIGluY2x1ZGluZyBhIGNvbXBs ZXRlIHJld3JpdGUgb2YgYW4KICAgbWRvYyBwYXJzZXIuIExhc3QsIGJ1dCBkZWZpbml0ZWx5IG5v dCBsZWFzdCwgaXMgYW4gZXh0ZW5zaXZlIHNldCBvZgogICBuZ2lueCByZXdyaXRlIHJ1bGVzIHRo YXQgbWFrZXMgaXQgYSBicmVlemUgdG8gdXNlIEJYUi5TVSBhcyBhCiAgIGRldGVybWluaXN0aWMg VVJMIGNvbXBhY3RvciBmb3IgcmVmZXJlbmNpbmcgQlNEIHNvdXJjZSBjb2RlLiBGb3IKICAgZXhh bXBsZSwgdGhlIGh0dHA6Ly9ieHIuc3UvZi9rZXJuL3NjaGVkX3VsZS5jIFVSTCB3aWxsIGF1dG9t YXRpY2FsbHkKICAgcmVkaXJlY3QgdG8gaHR0cDovL2J4ci5zdS9GcmVlQlNEL3N5cy9rZXJuL3Nj aGVkX3VsZS5jIHRocm91Z2ggbmdpbnguCgogICBOb3RlIHRoYXQgYWNjb3JkaW5nIHRvIHRoZSBy ZWxlYXNlIHNjaGVkdWxlIG9mIEJYUi5TVSwgdGhlcmUgaXMgbm8gSVB2NAogICBnbHVlIHVudGls IDIwMTMtMDQtMjQ7IG90aGVyd2lzZSwgdGhlIHNlcnZpY2UgaXMgYXZhaWxhYmxlIHZpYSBib3Ro CiAgIElQdjQgYW5kIElQdjYuIFNlZSB0aGUgMjAxMy0wNC0wMSBhbm5vdW5jZW1lbnQgb24gdGhl IGZyZWVic2QtaGFja2VycwogICBtYWlsaW5nIGxpc3QgZm9yIG1vcmUgZGV0YWlscy4KCk9wZW4g dGFza3M6CgogICAgMS4gRmluZCB1cC10by1kYXRlIGdpdCByZXBvc2l0b3JpZXMgKHNlcnZlZCB3 aXRoIEdpdHdlYikgb2YgTmV0QlNEIGFuZAogICAgICAgT3BlbkJTRC4KICAgIDIuIEZpbmQgYSBH aXR3ZWIgbWlycm9yIG9mIEZyZWVCU0QgdGhhdCBpcyBmYXN0ZXIgdGhhbiBHaXRIdWIgYW5kCiAg ICAgICBHaXRvcmlvdXMuCiAgICAgX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fCgpjYWxsb3V0KDkpIEltcHJvdmVtZW50cwoK ICAgVVJMOiBodHRwOi8vcGVvcGxlLmZyZWVic2Qub3JnL35kYXZpZGUvYXNpYS9jYWxsb3V0X3Bh cGVyLnBkZgogICBVUkw6IGh0dHA6Ly9wZW9wbGUuZnJlZWJzZC5vcmcvfmRhdmlkZS9hc2lhL2Nh bGxvdXRuZy5wZGYKICAgVVJMOiBodHRwOi8vc3Zud2ViLmZyZWVic2Qub3JnL2Jhc2U/dmlldz1y ZXZpc2lvbiZyZXZpc2lvbj0yNDc3NzcKCiAgIENvbnRhY3Q6IERhdmlkZSBJdGFsaWFubyA8ZGF2 aWRlQEZyZWVCU0Qub3JnPgogICBDb250YWN0OiBBbGV4YW5kZXIgTW90aW4gPG1hdkBGcmVlQlNE Lm9yZz4KCiAgIEluIEZyZWVCU0QsIHRpbWVycyBhcmUgcHJvdmlkZWQgYnkgdGhlIGNhbGxvdXQg ZmFjaWxpdHksIHdoaWNoIGFsbG93cwogICB0byByZWdpc3RlciBhIGZ1bmN0aW9uIHdpdGggYW4g YXJndW1lbnQgdG8gYmUgY2FsbGVkIGF0IHNwZWNpZmllZAogICBmdXR1cmUgdGltZS4gVGhlIHN1 YnN5c3RlbSBzdWZmZXJlZCBvZiBzb21lIHByb2JsZW1zLCBzdWNoIGFzIHRoZQogICBpbXBvc3Np YmlsaXR5IG9mIGhhbmRsaW5nIGhpZ2gtcmVzb2x1dGlvbiBldmVudHMgb3IgaXRzIGluaGVyZW50 CiAgIHBlcmlvZGljIHN0cnVjdHVyZSwgd2hpY2ggbWF5IGxlYWQgdG8gc3B1cmlvdXMgd2FrZXVw cyBhbmQgaGlnaGVyIHBvd2VyCiAgIGNvbnN1bXB0aW9uLiBTb21lIGNvbnN1bWVycywgc3VjaCBh cyBoaWdoLXNwZWVkIG5ldHdvcmtpbmcsIFZvSVAgYW5kCiAgIG90aGVyIHJlYWwtdGltZSBhcHBs aWNhdGlvbnMgbmVlZCBhIGJldHRlciBwcmVjaXNpb24gdGhhbiB0aGUgb25lCiAgIGN1cnJlbnRs eSBhbGxvd2VkLiBBbHNvLCBlc3BlY2lhbGx5IHdpdGggdGhlIHViaXF1aXR5IG9mIGxhcHRvcHMg aW4gdGhlCiAgIGxhc3QgeWVhcnMsIHRoZSBlbmVyZ3kgd2FzdGVkIGJ5IGludGVycnVwdHMgd2Fr aW5nIENQVXMgZnJvbSBzbGVlcCBtYXkKICAgYmUgYSBzZW5zaXRpdmUgZmFjdG9yLiBSZWNlbnQg Y2hhbmdlcyBpbiB0aGUgc3Vic3lzdGVtIGFkZHJlc3NlZCB0aG9zZQogICBsb25nLXN0YW5kaW5n IGlzc3VlcyBhcyB3ZWxsIGFzIGludHJvZHVjZWQgYSBuZXcgcHJvZ3JhbW1pbmcgaW50ZXJmYWNl CiAgIHRvIHRha2UgYWR2YW50YWdlIG9mIHRoZSBuZXcgZmVhdHVyZXMuCgpPcGVuIHRhc2tzOgoK ICAgIDEuIEV2YWx1YXRpbmcgaWYgaXQgaXMgd29ydGggdG8gbWlncmF0ZSBhbnkgb2YgdGhlIG90 aGVyIGNhbGxvdXQoOSkKICAgICAgIGNvbnN1bWVycyB0byB0aGUgbmV3IGludGVyZmFjZS4KICAg IDIuIE1vdmUgY2FsbG91dCBjb25zdW1lcnMgc3RpbGwgdXNpbmcgdGhlIGxlZ2FjeSB0aW1lb3V0 KCkvdW50aW1lb3V0KCkKICAgICAgIGludGVyZmFjZSB0byBjYWxsb3V0XyooKSBpbiBvcmRlciB0 byBnZXQgcmlkIG9mIHJlZHVuZGFudCBjb2RlIGFuZAogICAgICAgY2xlYW4gdXAgS1BJLgogICAg IF9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fXwoKRnJlZUJTRCBCdWdtZWlzdGVyIFRlYW0KCiAgIENvbnRhY3Q6IEVpdGFuIEFk bGVyIDxlYWRsZXJARnJlZUJTRC5vcmc+CiAgIENvbnRhY3Q6IEdhdmluIEF0a2luc29uIDxnYXZp bkBGcmVlQlNELm9yZz4KICAgQ29udGFjdDogT2xla3NhbmRyIFR5bW9zaGVua28gPGdvbnpvQEZy ZWVCU0Qub3JnPgoKICAgVGhlIEZyZWVCU0QgQnVnbWVpc3RlciBUZWFtIGFyZSBjb250aW51aW5n IHRvIGV2YWx1YXRlIG9wdGlvbnMgZm9yCiAgIGFsdGVybmF0ZSBidWcgdHJhY2tlcnMgYW5kIGhh dmUgbmFycm93ZWQgdGhlaXIgY2hvaWNlcyB0byB0d28KICAgcG9zc2liaWxpdGllczogQnVnemls bGEgYW5kIHJvdW5kdXAuCgogICBUaGUgbnVtYmVyIG9mIG5vbi1wb3J0cyBQUnMgaGF2ZSByZW1h aW5lZCByZWxhdGl2ZWx5IHN0YXRpYyBvdmVyIHRoZQogICBsYXN0IHRocmVlIG1vbnRocywgd2l0 aCBhcyBtYW55IGNvbWluZyBpbiBhcyBiZWluZyBjbG9zZWQuIFRoZSBudW1iZXIKICAgb2YgcG9y dHMgUFJzIGhhdmUgaW5jcmVhc2VkIHJlY2VudGx5LCBsYXJnZWx5IGR1ZSB0byB0aGUgcG9ydHMg ZnJlZXplCiAgIGZvciB0aGUgdXBjb21pbmcgOC40LVJFTEVBU0UuCgogICBUaGUgQnVnbWVpc3Rl ciB0ZWFtIGNvbnRpbnVlIHdvcmsgb24gdHJ5aW5nIHRvIG1ha2UgdGhlIGNvbnRlbnRzIG9mIHRo ZQogICBHTkFUUyBQUiBkYXRhYmFzZSBjbGVhbmVyLCBtb3JlIGFjY2Vzc2libGUgYW5kIGVhc2ll ciBmb3IgY29tbWl0dGVycyB0bwogICBmaW5kIGFuZCByZXNvbHZlIFBScywgYnkgdGFnZ2luZyBQ UnMgdG8gaW5kaWNhdGUgdGhlIGFyZWFzIGludm9sdmVkLAogICBhbmQgYnkgZW5zdXJpbmcgdGhh dCB0aGVyZSBpcyBzdWZmaWNpZW50IGluZm8gd2l0aGluIGVhY2ggUFIgdG8gcmVzb2x2ZQogICBl YWNoIGlzc3VlLgoKICAgQXMgYWx3YXlzLCBhbnlib2R5IGludGVyZXN0ZWQgaW4gaGVscGluZyBv dXQgd2l0aCB0aGUgUFIgcXVldWUgaXMKICAgd2VsY29tZSB0byBqb2luIHVzIGluICNmcmVlYnNk LWJ1Z2J1c3RlcnMgb24gRUZuZXQuIFdlIGFyZSBhbHdheXMKICAgbG9va2luZyBmb3IgYWRkaXRp b25hbCBoZWxwLCB3aGV0aGVyIHlvdXIgaW50ZXJlc3RzIGxpZSBpbiB0cmlhZ2luZwogICBpbmNv bWluZyBQUnMsIGdlbmVyYXRpbmcgcGF0Y2hlcyB0byByZXNvbHZlIGV4aXN0aW5nIHByb2JsZW1z LCBvcgogICBzaW1wbHkgaGVscGluZyB3aXRoIHRoZSBkYXRhYmFzZSBob3VzZWtlZXBpbmcgKGlk ZW50aWZ5aW5nIGR1cGxpY2F0ZQogICBQUnMsIG9uZXMgdGhhdCBoYXZlIGFscmVhZHkgYmVlbiBy ZXNvbHZlZCwgZXRjKS4gVGhpcyBpcyBhIGdyZWF0IHdheSBvZgogICBnZXR0aW5nIG1vcmUgaW52 b2x2ZWQgd2l0aCBGcmVlQlNEIQoKT3BlbiB0YXNrczoKCiAgICAxLiBGaW5hbGl6ZSB0aGUgZGVj aXNpb24gb2Ygd2hpY2ggbmV3IGJ1ZyB0cmFja2VyIHRvIHVzZS4KICAgIDIuIEdldCBtb3JlIHVz ZXJzIGludm9sdmVkIHdpdGggdHJpYWdpbmcgUFJzIGFzIHRoZXkgY29tZSBpbi4KICAgIDMuIEFz c2lzdCBjb21taXR0ZXJzIHdpdGggY2xvc2luZyBQUnMuCiAgICAgX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fCgpGcmVlQlNE IENvcmUgVGVhbQoKICAgQ29udGFjdDogQ29yZSBUZWFtIDxjb3JlQEZyZWVCU0Qub3JnPgoKICAg QXQgdGhlIGVuZCBvZiAyMDEyLCB0aGUgQ29yZSBUZWFtIGFwcHJvdmVkIHVzaW5nIEdvb2dsZSBB bmFseXRpY3Mgb24KICAgdGhlIFByb2plY3Qgd2ViIHNpdGUgdG8gZW5hYmxlIHRoZSBEb2N1bWVu dGF0aW9uIEVuZ2luZWVyaW5nIFRlYW0gdG8KICAgY29sbGVjdCBzdGF0aXN0aWNzIG9uIGl0cyB1 c2FnZSBmb3IgYmV0dGVyIHByb2ZpbGluZy4gSW4gdGhlIGZpcnN0CiAgIHF1YXJ0ZXIgb2YgMjAx MywgdGhlIENvcmUgVGVhbSB3b3JrZWQgd2l0aCB0aGUgRG9jdW1lbnRhdGlvbgogICBFbmdpbmVl cmluZyBUZWFtIHRvIGZpbmFsaXplIHRoZSBhc3NvY2lhdGVkIHBvbGljaWVzLgoKICAgRHVlIHRv IHNvbWUgZGViYXRlcyBhcm91bmQgdGhlIHBvbGl0aWNhbCBjb3JyZWN0bmVzcyBvZiBxdW90ZXMg YWRkZWQKICAgZm9yIHRoZSBmb3J0dW5lKDYpIHV0aWxpdHksIHRoZSBjb3JyZXNwb25kaW5nIGRh dGEgZmlsZSBoYXMgYmVlbgogICByZW1vdmVkIGZyb20gdGhlIGJhc2Ugc3lzdGVtIGluIC1DVVJS RU5ULgoKICAgSW4gbGlnaHQgb2YgdGhlIHNlY3VyaXR5IGluY2lkZW50LCB0aGUgbGlhaXNvbiBy b2xlIGJldHdlZW4gdGhlIENvcmUKICAgVGVhbSBhbmQgdGhlIFNlY3VyaXR5IFRlYW0gaGFzIGJl ZW4gcmVzdG9yZWQsIHdpdGggR2F2aW4gQXRraW5zb24KICAgYXNzdW1pbmcgdGhpcyByb2xlLiBU aGUgQ29yZSBUZWFtIHdvcmsgaGFyZCBvbiByZXNvbHZpbmcgdGhlIGN1cnJlbnQKICAgc2l0dWF0 aW9uIG9mIHRoZSBiaW5hcnkgcGFja2FnZSBidWlsZGluZyBjbHVzdGVyIGFuZCB0aGUgYXNzb2Np YXRlZAogICBzZWN1cml0eSBwcm9ibGVtcyBpbiB0aWdodCBjb29wZXJhdGlvbiB3aXRoIHRoZSBQ b3J0cyBNYW5hZ2VtZW50IFRlYW0sCiAgIENsdXN0ZXIgQWRtaW5pc3RhdG9ycywgYW5kIHRoZSBG cmVlQlNEIEZvdW5kYXRpb24gQm9hcmQuIFRoZSBjb21wcm9taXNlCiAgIHBhZ2UgaXMga2VwdCB1 cGRhdGVkIG9uIHRoZSByZXN1bHRzLgoKICAgVGhlIEZyZWVCU0QgUHJvamVjdCBzdWJtaXR0ZWQg YW4gYXBwbGljYXRpb24gZm9yIEdvb2dsZSBTdW1tZXIgb2YgQ29kZQogICB0aGlzIHllYXIgYWdh aW4uCgogICBUaGVyZSB3YXMgYWNjZXNzIGdyYW50ZWQgZm9yIDIgbmV3IGNvbW1pdHRlcnMgYW5k IDEgY29tbWl0IGJpdCB3YXMKICAgdGFrZW4gZm9yIHNhZmVrZWVwaW5nIGluIHRoaXMgcXVhcnRl ci4KICAgICBfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX18KCkZyZWVCU0QgSGFza2VsbCBQb3J0cwoKICAgVVJMOiBodHRwOi8v d2lraS5mcmVlYnNkLm9yZy9IYXNrZWxsCiAgIFVSTDogaHR0cHM6Ly9naXRodWIuY29tL2ZyZWVi c2QtaGFza2VsbC9mcmVlYnNkLWhhc2tlbGwvCgogICBDb250YWN0OiBHw6Fib3IgUMOhbGkgPHBn akBGcmVlQlNELm9yZz4KICAgQ29udGFjdDogQXNoaXNoIFNodWtsYSA8YXNoaXNoQEZyZWVCU0Qu b3JnPgoKICAgV2UgYXJlIHByb3VkIHRvIGFubm91bmNlIEZyZWVCU0QgSGFza2VsbCBUZWFtIGhh cyB1cGRhdGVkIGV4aXN0aW5nCiAgIHBvcnRzIHRvIHRoZWlyIGxhdGVzdCBzdGFibGUgdmVyc2lv bnMuIFdlIGFsc28gYWRkZWQgbnVtYmVyIG9mIG5ldwogICBwb3J0cywgd2hpY2ggYnJpbmdzIHRo ZSBjb3VudCBvZiBIYXNrZWxsIHBvcnRzIGluIEZyZWVCU0QgcG9ydHMgdHJlZSB0bwogICBtb3Jl IHRoYW4gNDAwLCBmZWF0dXJpbmcgbWFueSBwb3B1bGFyIHNvZnR3YXJlLCBlLmcuIHhtb25hZCwg Z2l0LWFubmV4LAogICBwYW5kb2Mgb3IgdmFyaW91cyB3ZWIgZnJhbWV3b3JrIGltcGxlbWVudGF0 aW9ucy4gQWxsIG9mIHRoZXNlIHVwZGF0ZXMKICAgd2lsbCBiZSBhdmFpbGFibGUgYXMgcGFydCBv ZiB0aGUgdXBjb21pbmcgOC40LVJFTEVBU0UuIFdlIGFsc28gY2FtZSB0bwogICBrbm93IHRoYXQg SGFza2VsbCBwb3J0cyBhcmUgYWxzbyBiZWluZyB1c2VkIHN1Y2Nlc3NmdWxseSBvbgogICBEcmFn b25GbHlCU0QncyBkcG9ydHMgdHJlZS4KCiAgIEluIG91ciBkZXZlbG9wbWVudCByZXBvc2l0b3J5 LCB0aGVyZSB3YXMgc29tZSBvcHRpb25hbCBzdXBwb3J0IGFkZGVkCiAgIGZvciBMTFZNLWJhc2Vk IGNvZGUgZ2VuZXJhdGlvbiB1c2luZyB0aGUgR0hDIExMVk0gYmFja2VuZC4gVGhpcyB3b3Jrcwog ICBtb3N0bHkgb24gRnJlZUJTRCB0b28sIHRob3VnaCBzb21lIG9mIHRoZSBwb3J0cyB3b3VsZCBu ZWVkIGZpeGluZyBzbyBpdAogICBpcyBzdGlsbCBjb25zaWRlcmVkIGV4cGVyaW1lbnRhbC4KCk9w ZW4gdGFza3M6CgogICAgMS4gVHJ5IHRvIGJ1aWxkIEdIQyB3aXRoIGNsYW5nIChhcyBzeXN0ZW0g Y29tcGlsZXIpLgogICAgMi4gQ29tbWl0IHBlbmRpbmcgSGFza2VsbCBwb3J0cyB0byB0aGUgRnJl ZUJTRCBwb3J0cyB0cmVlLgogICAgMy4gQWRkIG1vcmUgcG9ydHMgdG8gdGhlIFBvcnRzIENvbGxl Y3Rpb24uCiAgICAgX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fCgpGcmVlQlNEIG9uIEN1YmllYm9hcmQKCiAgIENvbnRhY3Q6 IEdhbmJvbGQgVHNhZ2FhbmtodXUgPGdhbmJvbGRARnJlZUJTRC5vcmc+CiAgIENvbnRhY3Q6IE9s ZWtzYW5kciBUeW1vc2hlbmtvIDxnb256b0BGcmVlQlNELm9yZz4KCiAgIEluaXRpYWwgc3VwcG9y dCBvZiBBbGx3aW5uZXIgQTEwIFNvQyBpcyBjb21taXR0ZWQgdG8gLUNVUlJFTlQuIEZyZWVCU0QK ICAgaXMgbm93IHJ1bm5pbmcgb24gYm9hcmRzIHN1Y2ggYXMgQ3ViaWVib2FyZCwgSGFja2JlcnJ5 IGFuZCBpdCBzdXBwb3J0cwogICBmb2xsb3dpbmcgcGVyaXBoZXJhbHM6CiAgICAgKiBVU0IgRUhD SQogICAgICogR1BJTwoKT3BlbiB0YXNrczoKCiAgICAxLiBHZXQgRU1BQyBFdGhlcm5ldCBkcml2 ZXIgd29ya2luZy4gTmVlZCBtb3JlIGhlbHAgZnJvbSBuZXR3b3JrCiAgICAgICBkcml2ZXIgZXhw ZXJ0cy4KICAgIDIuIEltcGxlbWVudCBtb3JlIGRyaXZlcnMuCiAgICAgX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fCgpGcmVl QlNEIFBvcnQgTWFuYWdlcnMKCiAgIFVSTDogaHR0cDovL3d3dy5GcmVlQlNELm9yZy9wb3J0cy8K ICAgVVJMOiBodHRwOi8vd3d3LmZyZWVic2Qub3JnL2RvYy9lbi9hcnRpY2xlcy9jb250cmlidXRp bmctcG9ydHMvCiAgIFVSTDogaHR0cDovL3BvcnRzbW9uLmZyZWVic2Qub3JnLwogICBVUkw6IGh0 dHA6Ly93d3cuZnJlZWJzZC5vcmcvcG9ydG1nci8KICAgVVJMOiBodHRwOi8vYmxvZ3MuZnJlZWJz ZGlzaC5vcmcvcG9ydG1nci8KICAgVVJMOiBodHRwOi8vd3d3LnR3aXR0ZXIuY29tL2ZyZWVic2Rf cG9ydG1nci8KICAgVVJMOiBodHRwOi8vd3d3LmZhY2Vib29rLmNvbS9wb3J0bWdyCgogICBDb250 YWN0OiBUaG9tYXMgQWJ0aG9ycGUgPHBvcnRtZ3Itc2VjcmV0YXJ5QEZyZWVCU0Qub3JnPgogICBD b250YWN0OiBQb3J0IE1hbmFnZW1lbnQgVGVhbSA8cG9ydG1nckBGcmVlQlNELm9yZz4KCiAgIFRo ZSBwb3J0cyB0cmVlIGNvbnRhaW5zIGFwcHJveGltYXRlbHkgMjQsMzAwIHBvcnRzLCB3aGlsZSB0 aGUgUFIgY291bnQKICAgc3RpbGwgaXMgY2xvc2UgdG8gMTYwMC4KCiAgIEluIHRoZSBmaXJzdCBx dWFydGVyIHdlIGFkZGVkIDQgbmV3IGNvbW1pdHRlcnMsIHRvb2sgaW4gMSBjb21taXQgYml0CiAg IGZvciBzYWZlIGtlZXBpbmcsIGFuZCByZS1pbnN0YXRlZCAxIGNvbW1pdCBiaXQuCgogICBJbiBG ZWJydWFyeSwgTWFyayBMaW5pbW9uIChsaW5pbW9uKSBzdGVwcGVkIGRvd24gZnJvbSBoaXMgZHV0 aWVzIGluIHRoZQogICB0ZWFtLiBNYXJrIGhhZCBiZWVuIHRoZSBsb25nZXN0IHNlcnZpbmcgbWVt YmVyIG9mIHRoZSB0ZWFtLiBNYXJrIGhhZAogICBzcGVudCBtYW55IGxvbmcgaG91cnMgcmVmYWN0 b3JpbmcgYW5kIGRvY3VtZW50aW5nIHRoZSBwb3J0YnVpbGQKICAgc29mdHdhcmUgdG8gZW5zdXJl IHRoYXQgcG9pbnR5aGF0IHNlcnZpY2VzIGNvdWxkIGJlIHJlc3RvcmVkLgoKICAgQWZ0ZXIgYSBz ZWN1cml0eSByZXZpZXcsIHJlZHBvcnRzLm9yZyB3YXMgdHVybmVkIGJhY2sgb24sIHJlc3Rvcmlu ZwogICBUaW5kZXJib3ggc2VydmljZXMgdG8gY29udHJpYnV0b3JzLCBhbG9uZyB3aXRoIHBvc3Qg Y29tbWl0IFFBVHMuIEluCiAgIGFkZGl0aW9uLCBwb2ludHloYXQgaW5mcmFzdHJ1Y3R1cmUgaGFk IGFsc28gdW5kZXJnb25lIGEgcmV2aWV3IGFuZCB3b3JrCiAgIGJlZ2FpbiBvbiByZXN0b3Jpbmcg dGhlIHBhY2thZ2UgYnVpbGQgc3lzdGVtLgoKICAgRXJ3aW4gTGFuc2luZyAoZXJ3aW4pIGFuZCBN YXJ0aW4gV2lsa2UgKG1pd2kpIHRvb2sgb24gdGhlIHByaW5jaXBsZQogICByb2xlcyBvZiBnZXR0 aW5nIHRoZSBwb3J0YnVpbGQgc29mdHdhcmUgaW5zdGFsbGVkIGFuZCBydW5uaW5nIG9uCiAgIHBv aW50eWhhdC4gQXMgYSByZXN1bHQgb2YgYWxsIHRoZWlyIGhhcmQgd29yaywgcG9ydG1nckAgd2Fz IGZpbmFsbHkKICAgYWJsZSB0byByZXN1bWUgZG9pbmcgLWV4cCBydW5zLCBwcmVwYXJpbmcgcGFj a2FnZXMgZm9yIHRoZSB1cGNvbWluZyA4LjQKICAgcmVsZWFzZSwgYXMgd2VsbCBhcyBnZXR0aW5n IGEgc2V0IG9mIDkuMSBwYWNrYWdlcyByZXRyb2FjdGl2ZWx5CiAgIHByZXBhcmVkLgoKICAgQWZ0 ZXIgbWFueSBsb25nIHllYXJzIG9mIGJlaW5nIHRoZSBkZWZhY3RvIHN0YW5kYXJkIGZvciB0aGUg UHJvamVjdCwKICAgQ1ZTIHN1cHBvcnQgZm9yIHRoZSBwb3J0cyB0cmVlIG9mZmljaWFsbHkgZW5k ZWQgb24gRmVicnVhcnkgMjguCgogICBUaGUgcG9ydHMgdHJlZSB3YXMgdGFnZ2VkIHdpdGggUkVM RUFTRV83X0VPTCwgdG8gY29pbmNpZGUgd2l0aCB0aGUgZW5kCiAgIG9mIGxpZmUgZm9yIEZyZWVC U0QgNy5YLgoKICAgQmVhdCBHYWV0emkgKGJlYXQpIHN0ZXBwZWQgZG93biBmcm9tIGhpcyBkdXRp ZXMgb24gcG9ydG1nckAgaW4gTWFyY2guCiAgIEFtb25nIGhpcyBub3RhYmxlIGNvbnRyaWJ1dGlv bnMsIHdhcyB0aGUgdGFzayBvZiBtaWdyYXRpbmcgdGhlIFBvcnRzCiAgIFRyZWUgZnJvbSB0aGUg b2xkIENWUyByZXBvIHRvIFN1YnZlcnNpb24uCgogICBCcnlhbiBEcmV3ZXJ5IChiZHJld2VyeSkg am9pbmVkIHRoZSBQb3J0cyBNYW5hZ2VtZW50IHRlYW0gaW4gTWFyY2gsCiAgIGJyaW5naW5nIHdp dGggaGltIGhpcyB3ZWFsdGggb2Yga25vd2xlZGdlIGFuZCBza2lsbCBmcm9tIG1haW50YWluaW5n CiAgIHBvcnR1cGdyYWRlLCBwb3J0bWFzdGVyLCBhc3Npc3Rpbmcgd2l0aCBwa2duZywgYXMgd2Vs bCBhcyBjby1kZXZlbG9waW5nCiAgIHBvdWRyaWVyZS4KCk9wZW4gdGFza3M6CgogICAgMS4gTW9z dCBwb3J0cyBQUnMgYXJlIGFzc2lnbmVkLCB3ZSBub3cgbmVlZCB0byBmb2N1cyBvbiB0ZXN0aW5n LAogICAgICAgY29tbWl0dGluZyBhbmQgY2xvc2luZy4KICAgICBfX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18KCkZyZWVCU0Qg UG9zdG1hc3RlciBUZWFtCgogICBDb250YWN0OiBEYXZpZCBXb2xmc2tpbGwgPHBvc3RtYXN0ZXJA RnJlZUJTRC5vcmc+CgogICBJbiB0aGUgZmlyc3QgcXVhcnRlciBvZiAyMDEzLCB0aGUgRnJlZUJT RCBQb3N0bWFzdGVyIFRlYW0gaGFzCiAgIGltcGxlbWVudGVkIHRoZSBmb2xsb3dpbmcgaXRlbXMg dGhhdCBtYXkgYmUgaW50ZXJlc3Qgb2YgdGhlIGdlbmVyYWwKICAgcHVibGljOgoKICAgICAqIENo YW5nZXMgaW4gY29uZmlndXJhdGlvbiBvZiBNYWlsbWFuLW1hbmFnZWQgbGlzdHM6IGFsbG93IHRv IGFjY2VwdAogICAgICAgdGhlIGFwcGxpY2F0aW9uL3BrY3M3LXNpZ25hdHVyZSBNSU1FIHR5cGUg KGluIGFkZGl0aW9uIHRvIHRoZQogICAgICAgYXBwbGljYXRpb24veC1wa2NzNy1zaWduYXR1cmUg TUlNRSB0eXBlKSwgdGh1cyBwZXJtaXR0aW5nIFMvTUlNRQogICAgICAgc2lnbmF0dXJlcyBvbiBs aXN0IG1haWwuCiAgICAgKiBOZXcgbGlzdHM6IGZyZWVic2Qtb3BzLWFubm91bmNlIC0tIGFubm91 bmNlbWVudHMgb2YgaW5mcmFzdHJ1Y3R1cmUKICAgICAgIGlzc3VlcywgYW5kIGZyZWVic2QtcGtn IC0tIGRpc2N1c3Npb24gb2YgYmluYXJ5IHBhY2thZ2UgbWFuYWdlbWVudAogICAgICAgYW5kIHBh Y2thZ2UgdG9vbHMuCiAgICAgX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fCgpGcmVlQlNEIFJlbGVhc2UgRW5naW5lZXJpbmcg VGVhbQoKICAgVVJMOiBodHRwOi8vd3d3LmZyZWVic2Qub3JnL3JlbGVhc2VzLzguNFIvc2NoZWR1 bGUuaHRtbAoKICAgQ29udGFjdDogRnJlZUJTRCBSZWxlYXNlIEVuZ2luZWVyaW5nIFRlYW0gPHJl QEZyZWVCU0Qub3JnPgoKICAgRnJlZUJTRCA4LjQtUkMxIGp1c3QgZ290IG91dCB0aGUgZG9vciBh bmQgd2UgYXJlIHBsYW5uaW5nIFJDMi4gQSBjb3VwbGUKICAgb2YgY3JpdGljYWwgZml4ZXMgaGF2 ZSBjb21lIGluIHRoYXQgd2lsbCBiZSBpbmNsdWRlZCBpbiBSQzIuIFRoZQogICBzY2hlZHVsZSBo YXMgc2xpcHBlZCBhYm91dCAxMCBkYXlzIHNvIGZhci4gV2UgYXJlIGV4cGVjdGluZyB0aGUgZmlu YWwKICAgcmVsZWFzZSBieSB0aGUgZW5kIG9mIEFwcmlsLiBQYWNrYWdlcyBmb3IgOC40IGhhdmUg YmVlbiBwcm92aWRlZCBieSBhCiAgIGZ1bGx5IG9wZXJhdGlvbmFsIHBhY2thZ2UgYnVpbGRpbmcg Y2x1c3Rlci4KICAgICBfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX18KCkZyZWVCU0QvYXJtIFN1cGVycGFnZXMgZm9yIEFSTXY3 CgogICBVUkw6IGh0dHA6Ly9zdGF0aWMudXNlbml4Lm9yZy9ldmVudHMvb3NkaTAyL3RlY2gvZnVs bF9wYXBlcnMvbmF2YXJyby9uYXZhcnJvLnBkZgogICBVUkw6IGh0dHBzOi8vd2lraS5mcmVlYnNk Lm9yZy9BUk1TdXBlcnBhZ2VzCiAgIFVSTDogaHR0cHM6Ly9naXRodWIuY29tL3NlbWloYWxmLWJv ZGVrLXpiaWduaWV3L2ZyZWVic2QtYXJtLXN1cGVycGFnZXMuZ2l0CgogICBDb250YWN0OiBaYmln bmlldyBCb2RlayA8emJiQHNlbWloYWxmLmNvbT4KICAgQ29udGFjdDogR3J6ZWdvcnogQmVybmFj a2kgPGdqYkBzZW1paGFsZi5jb20+CiAgIENvbnRhY3Q6IFJhZmHFgiBKYXdvcm93c2tpIDxyYWpA c2VtaWhhbGYuY29tPgoKICAgQVJNIGFyY2hpdGVjdHVyZSBpcyBtb3JlIGFuZCBtb3JlIHByZXZh aWxpbmcsIG5vdCBvbmx5IGluIHRoZSBtb2JpbGUKICAgYW5kIGVtYmVkZGVkIHNwYWNlLiBBbW9u ZyB0aGUgbW9yZSBpbnRlcmVzdGluZyBpbmR1c3RyeSB0cmVuZHMgZW1lcmdpbmcKICAgaW4gdGhl IHJlY2VudCBtb250aHMgaGFzIGJlZW4gdGhlICJBUk0gc2VydmVyIiBjb25jZXB0LiBTb21lIHRv cC10aWVyCiAgIGNvbXBhbmllcyBzdGFydGVkIGRldmVsb3Bpbmcgc3lzdGVtcyBsaWtlIHRoaXMg YWxyZWFkeSAoRGVsbCwgSFApLgoKICAgS2V5IHRvIEZyZWVCU0Qgc3VjY2VzcyBpbiB0aGVzZSBu ZXcgYXJlYXMgYXJlIHNvcGhpc3RpY2F0ZWQgZmVhdHVyZXMsCiAgIGFtb25nIHRoZW0gYXJlIHN1 cGVycGFnZXMuCgogICBUaGUgb2JqZWN0aXZlIG9mIHRoaXMgcHJvamVjdCBpcyB0byBwcm92aWRl IEZyZWVCU0QvYXJtIHdpdGggdGhlCiAgIHN1cGVycGFnZXMgc3VwcG9ydCwgd2hpY2ggd2lsbCBh bGxvdyBmb3IgZWZmaWNpZW50IHVzZSBvZiBUTEIKICAgdHJhbnNsYXRpb25zIChlbmxhcmdlIFRM QiBjb3ZlcmFnZSksIGxlYWRpbmcgdG8gaW1wcm92ZWQgcGVyZm9ybWFuY2UgaW4KICAgbWFueSBh cHBsaWNhdGlvbnMgYW5kIHNjYWxhYmlsaXR5LiBJbmRpY2F0ZWQgZnVuY3Rpb25hbGl0eSBpcyBp bnRlbmRlZAogICB0byB3b3JrIG9uIEFSTXY3LWJhc2VkIHByb2Nlc3NvcnMsIGhvd2V2ZXIgY29t cGF0aWJpbGl0eSB3aXRoIEFSTXY2CiAgIHdpbGwgYmUgcHJlc2VydmVkLgoKICAgQ3VycmVudCBz dXBwb3J0IHN0YXR1czoKICAgICAqIFBvcnQgb2YgdGhlIHB2X2VudHJ5IGFsbG9jYXRvci4KICAg ICAqIFN3aXRjaCB0byAiQVBbMjoxXSIgYWNjZXNzIHBlcm1pc3Npb25zIG1vZGVsLgogICAgICog UFRFLWJhc2VkLCBwYWdlLXJlZmVyZW5jZWQvbW9kaWZpZWQgZW11bGF0aW9uLgogICAgICogRml4 ZXMgcmVnYXJkaW5nIHBhZ2UgcmVwbGFjZW1lbnQgc3RyYXRlZ3kuCiAgICAgKiBDb2RlIG9wdGlt aXphdGlvbnMgYW5kIGJ1ZyBmaXhlcy4KCiAgIE5leHQgc3RlcHM6CiAgICAgKiBEaXJ0eSBwYWdl cyBtYW5hZ2VtZW50LgogICAgICogR3JhZHVhbCBpbnRlZ3JhdGlvbiB0byBGcmVlQlNEIC1DVVJS RU5ULgogICAgICogRnVydGhlciBwbWFwIG9wdGltaXphdGlvbnMuCiAgICAgKiBGcmFnbWVudGF0 aW9uIGNvbnRyb2wgbWFuYWdlbWVudC4KICAgICAqIFRlc3RpbmcgYW5kIGJlbmNobWFya2luZy4K Ck9wZW4gdGFza3M6CgogICAgMS4gU3VwcG9ydCBmb3IgbXVsdGlwbGUgcGFnZSBzaXplcy4KICAg IDIuIEltcGxlbWVudGF0aW9uIG9mIHBhZ2UgcHJvbW90aW9uLCBkZW1vdGlvbiBhbmQgZXZpY3Rp b24gbWVjaGFuaXNtcy4KICAgICBfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX18KCkZyZWVCU0QvQVJNIFRvb2xjaGFpbiBJbXBy b3ZlbWVudHMKCiAgIENvbnRhY3Q6IEFuZHJldyBUdXJuZXIgPGFuZHJld0BGcmVlQlNELm9yZz4K CiAgIENsYW5nIGhhcyBiZWVuIG1hZGUgdGhlIGRlZmF1bHQgY29tcGlsZXIgb24gQVJNLiBBIG51 bWJlciBvZiBpc3N1ZXMKICAgd2l0aCBMTFZNIGFuZCBjbGFuZyBoYXZlIGJlZW4gZm91bmQsIHJl cG9ydGVkLCBhbmQgZml4ZWQgdXBzdHJlYW0uCgogICBBbiBpc3N1ZSB3aGVyZSBzb21lIEFSTSBF QUJJIGFwcGxpY2F0aW9ucyBjb21waWxlZCB3aXRoIGNsYW5nIGNyYXNoIGhhcwogICBiZWVuIHJl cG9ydGVkIHVwc3RyZWFtIHdpdGggYSBwYXRjaCBhbmQgd2lsbCBiZSBicm91Z2h0IGludG8gdGhl CiAgIEZyZWVCU0QgdHJlZSB3aGVuIGl0IGlzIGFjY2VwdGVkLiBUaGUgb25seSBvdGhlciBpc3N1 ZSBibG9ja2luZyBtb3ZpbmcKICAgdG8gdGhlIEFSTSBFQUJJIGlzIEMrKyBleGNlcHRpb25zIGZh aWwgdG8gd29yayBjb3JyZWN0bHkgd2l0aCBzaGFyZWQKICAgb2JqZWN0cy4gVGhpcyB3aWxsIG5l ZWQgdXMgdG8gZWl0aGVyIGltcG9ydCBsaWJ1bndpbmQgb3IgaW1wbGVtZW50IHRoZQogICBmdW5j dGlvbnMgbGliZ2NjX3MgcmVxdWlyZXMgdG8gZmluZCB0aGUgY29ycmVjdCB1bndpbmQgdGFibGUu CgpPcGVuIHRhc2tzOgoKICAgIDEuIEZpeCBleGNlcHRpb24gaGFuZGxpbmcgZm9yIEVBQkkuCiAg ICAgX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fCgpGcmVlTkFTCgogICBVUkw6IGh0dHA6Ly93d3cuRnJlZU5BUy5vcmcvCgog ICBDb250YWN0OiBBbGZyZWQgUGVybHN0ZWluIDxhbGZyZWRARnJlZUJTRC5vcmc+CiAgIENvbnRh Y3Q6IEpvc2ggUGFldHplbCA8anBhZXR6ZWxARnJlZUJTRC5vcmc+CgogICBGcmVlTkFTIDguMy4x LVJFTEVBU0UtcDIgd2lsbCBoaXQgU291cmNlZm9yZ2UgdGhlIHNlY29uZCB3ZWVrIG9mIEFwcmls LAogICBhbmQgc2hvdWxkIGVuZCB1cCBhcyB0aGUgbGFzdCBGcmVlTkFTIHJlbGVhc2UgYmFzZWQg b24gRnJlZUJTRCA4LlggSXQncwogICBjdXJyZW50bHkgdGhlIG9ubHkgRnJlZSBPcGVuIFNvdXJj ZSBOQVMgcHJvZHVjdCBhdmFpbGFibGUgd2l0aCBhbnkgZm9ybQogICBvZiBaRlMgZW5jcnlwdGlv biAocHJvdmlkZWQgYnkgR0VMSSkuCgpPcGVuIHRhc2tzOgoKICAgIDEuIFRoZSB0ZWFtIGlzIGhh cmQgYXQgd29yayBvbiBnZXR0aW5nIGEgRnJlZUJTRCA5LlgtYmFzZWQgcmVsZWFzZSBvZgogICAg ICAgRnJlZU5BUyByZWFkeS4gQ3VycmVudGx5IHRoZXJlIGFyZSBzZXZlcmFsIG5pZ2h0bHkgc25h cHNob3RzCiAgICAgICBhdmFpbGFibGUuCiAgICAyLiBBZGQgSEFTVCB0byB0aGUgd2ViaW50ZXJm YWNlLgogICAgMy4gTWlncmF0ZSB0byBORlN2NC4KICAgIDQuIEludGVncmF0ZSBmb3VuZGF0aW9u IHNwb25zb3JlZCBrZXJuZWwgaVNDU0kgdGFyZ2V0LgogICAgIF9fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwoKR05PTUUvRnJl ZUJTRAoKICAgVVJMOiBodHRwOi8vd3d3LmZyZWVic2Qub3JnL2dub21lCiAgIFVSTDogaHR0cDov L3d3dy5mcmVlYnNkLm9yZy9nbm9tZS9kb2NzL2RldmVsZmFxLmh0bWwKICAgVVJMOiBodHRwOi8v d3d3Lm1hcmN1c2NvbS5jb206ODA4MC92aWV3dmMvdmlld3ZjLmNnaS9tYXJjdXNjb20KICAgVVJM OiBodHRwczovL2dpdGh1Yi5jb20vamxtZXNzNzcvbWF0ZS1wb3J0cwoKICAgQ29udGFjdDogRnJl ZUJTRCBHTk9NRSB0ZWFtIDxnbm9tZUBGcmVlQlNELm9yZz4KCiAgIFRoZSBHTk9NRS9GcmVlQlNE IFRlYW0gaGFzIHJlY2VudGx5IG1lcmdlZCBHbGliIDIuMzQsIEd0aysgMi4yNC4xNyBhbmQKICAg R3RrKyAzLjYuNCBpbnRvIHBvcnRzLCB0aGUgQysrIGJpbmRpbmdzIGFsc28gaGF2ZSBnb3QgdXBk YXRlcy4gSW4KICAgYWRkaXRpb25hbCAibG93LWxldmVsIiBHTk9NRSBwb3J0cyByZWNlaXZlZCB1 cGRhdGVzLCBsaWtlIGxpYnNvdXAsCiAgIGdvYmplY3QtaW50cm9zcGVjdGlvbiwgYXRrIGFuZCB2 YWxhIGZvciBleGFtcGxlLiBUaGUgdGVsZXBhdGh5IHN0YWNrCiAgIGFuZCBlbXBhdGh5IHdoZXJl IGFsc28gdXBkYXRlZC4KCiAgIFRoZSBVU0VfR05PTUUgbWFjcm8gaGFzIHJlY2VpdmVkIHN1cHBv cnQgZm9yIDpydW4gYW5kIDpidWlsZCB0YXJnZXRzCiAgIHRoYW5rcyB0byBKZXJlbXkgTWVzc2Vu Z2VyIChtZXp6KS4gQ3VycmVudGx5IG9ubHkgbGlieG1sMiBhbmQgbGlieHNsdAogICBzdXBwb3J0 IHRoZXNlIHRhcmdldHMuCgogICBVU0VfR05PTUU9cGtnY29uZmlnIGlzIGJlaW5nIGRlcHJlY2F0 ZWQgaW4gZmF2b3Igb2YKICAgVVNFX1BLR0NPTkZJRz1idWlsZC4gVGhlIGZvcm1lciBhbHNvIGFk ZHMgYSBydW4gZGVwZW5kZW5jeSBvbgogICBwa2ctY29uZmlnLCB3aGljaCBpcyBub3QgcmVxdWly ZWQuIEEgZmlyc3QgcGFzcyB3YXMgZG9uZSB0byBnZXQgcmlkIG9mCiAgIHRoaXMgaW4gdGhlIEds aWIgdXBkYXRlIHRvIDIuMzQuIEluIGNvb3BlcmF0aW9uIHdpdGggdGhlIFgxMSBUZWFtLCB0aGUK ICAgdXNhZ2Ugb2YgVVNFX0dOT01FPXBrZ2NvbmZpZyBpbiBYIGNvbXBvbmVudHMgd2lsbCBiZSBy ZW1vdmVkLiBBZnRlciB0aGUKICAgZmFsbG91dCBmcm9tIHRoaXMgaXMgaGFuZGxlZCBhbmQgc3Ry YW5nbGVycyBhcmUgY29udmVydGVkLCB0aGUKICAgVVNFX0dOT01FIG9wdGlvbiB3aWxsIGJlIHJl bW92ZWQuCgogICBJbiBhZGRpdGlvbiBVU0VfR05PTUU9Z25vbWVoYWNrIGlzIGRlcHJlY2F0ZWQg YW5kIHNob3VsZCBub3QgYmUgdXNlZC4KICAgUGxlYXNlIHJlcGxhY2UgaXQgd2l0aCBVU0VTPXBh dGhmaXguCgogICBUaGUgR05PTUUgZGV2ZWxvcG1lbnQgcmVwb3NpdG9yeSBoYXMgc3dpdGNoZWQg ZnJvbSBDVlMgdG8gU1ZOLiBDVlMgd2lsbAogICBub3QgZ2V0IGFueSBtb3JlIHVwZGF0ZXMuIFVz ZXMgY2FuIGdldCBhIG5ldyB2ZXJzaW9uIG9mIHRoZSBtYXJjdXNtZXJnZQogICBzY3JpcHQgdGhh dCBzdXBwb3J0cyBTVk4gZnJvbSBpdHMgaG9tZSBwYWdlLCBhbmQgc2hvdWxkIHJlbW92ZSB0aGUg b2xkCiAgIENWUyBjaGVja291dCAicG9ydHMiIGRpci4KCiAgICAgKiBTVk4gYW5vbnltb3VzIHJv b3Q6IHN2bjovL2NyZW1lLWJydWxlZS5tYXJjdXNjb20uY29tLyBvcgogICAgICAgc3ZuOi8vc3Vz aGkubWFyY3VzY29tLmNvbS8gKElQdjYpCiAgICAgKiBWaWV3VkM6IGh0dHA6Ly93d3cubWFyY3Vz Y29tLmNvbTo4MDgwL3ZpZXd2Yy92aWV3dmMuY2dpL21hcmN1c2NvbQoKICAgT24tZ29pbmcgZWZm b3J0czoKCiAgICAgKiBnbGliIDIuMzYsIHBhbmdvIDEuMzQuMCwgZ3RrIDMuOC4wIGFuZCBnb2Jq ZWN0LWludHJvc3BlY3Rpb24gMS4zNi4wCiAgICAgICB3aGVyZSB1cGRhdGVkIGluIHRoZSBHTk9N RSBkZXZlbG9wbWVudCByZXBvc2l0b3J5LgogICAgICogR3VzdGF1IFBlcmV6IGkgUXVlcm9sIHN0 ZXBwZWQgdXAgYW5kIHN0YXJ0ZWQgd29yayBvbiB1cGRhdGluZyB0aGUKICAgICAgIG9sZCBHTk9N RSAzLjQgcG9ydHMgdG8gMy42LiBBdCB0aGUgbW9tZW50IG9mIHdyaXRpbmcgdGhlc2UgYXJlIG5v dAogICAgICAgYXZhaWxhYmxlIGluIHRoZSBHTk9NRSBkZXZlbG9wbWVudCByZXBvc2l0b3J5IGp1 c3QgeWV0LiBGb3IgaGlzCiAgICAgICBlZmZvcnRzLCBoZSB3YXMgYXdhcmRlZCBhIEZyZWVCU0Qg R05PTUUgdGVhbSBtZW1iZXJzaGlwLgogICAgICogSmVyZW15IE1lc3NlbmdlciAobWV6eikgaGFz IGNvbXBsZXRlZCBNYXRlIDEuNiB3aGljaCB3aWxsIGJlCiAgICAgICBhcnJpdmluZyBpbiBwb3J0 cyBuZWFyIHlvdSB3aGVuIGRlZW1lZCBzdGFibGUgZW5vdWdoLgoKICAgSWYgeW91IHdhbnQgdG8g aGVscCB3aXRoIGtlZXBpbmcgdGhlIGRvY3VtZW50YXRpb24gdXBkYXRlZCBvciBoZWxwaW5nCiAg IG91dCBpbiBvdGhlciB3YXlzLCBldmVuIGlmIGl0IG9ubHkgcGFydHMgZm9yIHRoZSBHbGliL0d0 ay9HTk9NRSBzdGFjawogICB5b3UgYXJlIGludGVyZXN0ZWQgaW4sIHBsZWFzZSBjb250YWN0IHVz IQoKT3BlbiB0YXNrczoKCiAgICAxLiBVcGRhdGUgdGhlIEZyZWVCU0Qub3JnL2dub21lIHdlYnNp dGUsIGluIHBhcnRpY3VsYXIgdGhlIGRldmVsb3BlcgogICAgICAgaW5mb3JtYXRpb24gYWJvdXQg VVNFX0dOT01FLCBtYXliZSBwdXQgdGhhdCBzZWN0aW9uIGluIHRoZSBQb3J0ZXIncwogICAgICAg SGFuZGJvb2sgaW5zdGVhZC4KICAgIDIuIE1lcmdlIG1vcmUgdXBkYXRlZCBwb3J0cyBmcm9tIE1D IHRvIHBvcnRzLgogICAgMy4gVGVzdGluZyBsYXRlc3QgR2xpYi9HdGsgcmVsZWFzZXMgd2l0aCBl eGlzdGluZyBwb3J0cywgYW5kIGltcG9ydCBpdAogICAgICAgaW50byBwb3J0cyB3aGVuIGl0IGlz IHJlYWR5LgogICAgNC4gQWZ0ZXIgcG9ydGluZyBHTk9NRSAzLjYgcnVuIHRlc3RzIGFuZCBmaXgg YnVncy4KICAgICBfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX18KCkltcHJvdmluZyB0aGUgRG9jdW1lbnRhdGlvbiBQcm9qZWN0 IEluZnJhc3RydWN0cmUKCiAgIFVSTDogaHR0cDovL3N2bndlYi5mcmVlYnNkLm9yZy9kb2MvcHJv amVjdHMveG1sLXRvb2xzLwoKICAgQ29udGFjdDogR8OhYm9yIEvDtnZlc2TDoW4gPGdhYm9yQEZy ZWVCU0Qub3JnPgoKICAgVGhlcmUgaXMgYW4gb24tZ29pbmcgd29yayB0byBpbXByb3ZlIHRoZSBk b2N1bWVudGF0aW9uIGluZnJhc3RydWN0dXJlCiAgIGFuZCBtb2Rlcm5pemUgb3VyIGRvY3VtZW50 YXRpb24gdG9vbGNoYWluLiBUaGUgd29yayBjYW4gYmUgZm91bmQgaW4gdGhlCiAgIHhtbC10b29s cyBicmFuY2ggYW5kIGlzIHZlcnkgbmVhciB0byBjb21wbGV0aW9uLiBUaGUgaW1wcm92ZW1lbnRz CiAgIGluY2x1ZGUgdGhlIGZvbGxvd2luZzoKCiAgICAgKiBVcGdyYWRlIHRvIERvY0Jvb2sgNC41 LgogICAgICogVXNlIFhTTFQgaW5zdGVhZCBvZiBEU1NTTCB0byByZW5kZXIgWEhUTUwtYmFzZWQg b3V0cHV0LgogICAgICogR2VuZXJhdGUgUERGIGZyb20gUFMgYW5kIHNpbXBsaWZ5IGltYWdlIHBy b2Nlc3NpbmcuCiAgICAgKiBGaXggbWFrZSBsaW50IGFuZCB2YWxpZGF0ZSB0aGUgd2hvbGUgZG9j dW1lbnRhdGlvbiBzZXQuCiAgICAgKiBGaXggcmVuZGVyaW5nIG9mIFRPQyBlbGVtZW50cy4KICAg ICAqIEZpeCBtaXN1c2VkIGxpbmsgZWxlbWVudHMgdGhhdCByZXN1bHRlZCBpbiBhIGNvcnJ1cHQg cmVuZGVyaW5nLgogICAgICogVXNlIG1vcmUgaHVtYW4tZnJpZW5kbHkgcHVibGljYXRpb24gZGF0 YSBhbmQgcmVsZWFzZSBpbmZvCiAgICAgICByZW5kZXJpbmcuCiAgICAgKiBBZGQgc3VwcG9ydCBm b3IgWEluY2x1ZGUgaW4gRG9jQm9vayBkb2N1bWVudHMuCiAgICAgKiBBZGQgc3VwcG9ydCBmb3Ig cHJvZmlsaW5nIHdpdGggYXR0cmlidXRlcy4KICAgICAqIEFkZCBzdXBwb3J0IGZvciBTY2hlbWF0 cm9uIGNvbnN0cmFpbnRzLgogICAgICogQWRkIGV4cGVyaW1lbnRhbCBlcHViIHN1cHBvcnQuCiAg ICAgKiBBZGQgZXhwZXJpbWVudGFsIHN1cHBvcnQgZm9yIFhTTC1GTy1iYXNlZCBwcmludGVkIG91 dHB1dC4KICAgICAqIENsZWFuIHVwIG9ic29sZXRlIFNHTUwgY29uc3RydWN0cy4KICAgICAqIENs ZWFuIHVwIGNhdGFsb2dzLgogICAgICogRHJvcCBIVE1MIFRpZHkgc2luY2UgaXQgaXMgbm90IG5l ZWRlZCBhbnkgbW9yZS4KCiAgIFRoZSBjaGFuZ2VzIGVsaW1pbmF0ZSBzb21lIGRlcGVuZGVuY2ll cyBhbmQgc3dpdGNoIHRoZSBkb2MgcmVwb3NpdG9yeQogICB0byBhIHJlYWwgWE1MIHRvb2xjaGFp biB3aXRoIHByb3BlciB2YWxpZGF0aW9uIGFuZCBtb3JlIGFkdmFuY2VkCiAgIHJlbmRlcmluZyB0 b29scy4gVGhlIG9ubHkgZXhjZXB0aW9ucyBhcmUgSmFkZSBhbmQgdGhlIERTU1NMCiAgIHN0eWxl c2hlZXRzLCB3aGljaCBhcmUgc3RpbGwgbmVlZGVkIGZvciBwcmludGVkIG91dHB1dC4KCk9wZW4g dGFza3M6CgogICAgMS4gRml4IHJlbmRlcmluZyBwcm9ibGVtcyB3aXRoIGltYWdlcyBpbiBwcmlu dGVkIGZvcm1hdHMuCiAgICAyLiBVcGRhdGUgdGhlIERvY3VtZW50YXRpb24gUHJpbWVyIHRvIHJl ZmxlY3QgY2hhbmdlcy4KICAgICBfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX18KCktERS9GcmVlQlNECgogICBVUkw6IGh0dHA6 Ly9GcmVlQlNELmtkZS5vcmcKICAgVVJMOiBodHRwOi8vRnJlZUJTRC5rZGUub3JnL2FyZWE1MS5w aHAKCiAgIENvbnRhY3Q6IEtERSBGcmVlQlNEIDxrZGVARnJlZUJTRC5vcmc+CgogICBUaGUgS0RF L0ZyZWVCU0QgVGVhbSBpcyB2ZXJ5IHByb3VkIHRvIGhhdmUgU2NoYWljaCBBbG9uc28gKGFzY2hh aSkKICAgam9pbmluZyB0aGUgdGVhbS4gV2VsY29tZSEKCiAgIFRoZSBLREUvRnJlZUJTRCBUZWFt IGhhdmUgY29udGludWVkIHRvIGltcHJvdmUgdGhlIGV4cGVyaWVuY2Ugb2YgS0RFCiAgIHNvZnR3 YXJlIGFuZCBRdCB1bmRlciBGcmVlQlNELiBUaGUgbGF0ZXN0IHJvdW5kIG9mIGltcHJvdmVtZW50 cwogICBpbmNsdWRlOgoKICAgICAqIEZpeCBwcm9ibGVtcyBlc3RhYmxpc2hpbmcgVURQIGNvbm5l Y3Rpb25zLgoKICAgVGhlIFRlYW0gaGF2ZSBhbHNvIG1hZGUgbWFueSByZWxlYXNlcyBhbmQgdXBz dHJlYW1lZCBtYW55IGZpeGVzIGFuZAogICBwYXRjaGVzLiBUaGUgbGF0ZXN0IHJvdW5kIG9mIHJl bGVhc2VzIGluY2x1ZGU6CgogICAgICogS0RFIFNDOiA0LjkuNSwgNC4xMC4xIChwb3J0cykKICAg ICAqIFF0OiA1LjAuMCAoYXJlYTUxKSBhbmQgNC44LjQgKHBvcnRzKQogICAgICogUHlRdDogNC45 LjYgKHBvcnRzKTsgUVNjaW50aWxsYSAyLjcgKHBvcnRzKTsgU0lQOiA0LjE0LjIgKGFyZWE1MSkK ICAgICAgIGFuZCA0LjE0LjMgKHBvcnRzKQogICAgICogS0RldmVsb3A6IDQuNC4xIChwb3J0cyk7 IEtEZXZQbGF0Zm9ybTogMS40LjEgKHBvcnRzKQogICAgICogQ2FsbGlncmE6IDIuNS41LCAyLjYu MiAocG9ydHMpCiAgICAgKiBBbWFyb2s6IDIuNy4wCiAgICAgKiBDTWFrZTogMi44LjEwLjIKICAg ICAqIERpZ2lrYW0gKGFuZCBLSVBJLXBsdWdpbnMpOiAzLjEuMCAoYXJlYTUxKQogICAgICogUXRD cmVhdG9yOiA0LjYuMSAocG9ydHMpCiAgICAgKiBLREUgVGVsZXBhdGh5IDAuNi4wIChhcmVhNTEp CiAgICAgKiBtYW55IHNtYWxsZXIgcG9ydHMKCiAgIEFzIGEgcmVzdWx0IC0tIGFjY29yZGluZyB0 byBQb3J0U2NvdXQgLS0gd2UgaGF2ZSA0MzEgcG9ydHMsIG9mIHdoaWNoCiAgIDkzLjUlIChmcm9t IDkxJSkgYXJlIHVwLXRvLWRhdGUuCgogICBUaGUgVGVhbSBhcmUgYWx3YXlzIGxvb2tpbmcgZm9y IG1vcmUgdGVzdGVycyBhbmQgcG9ydGVycyBzbyBwbGVhc2UKICAgY29udGFjdCB1cyBhbmQgdmlz aXQgb3VyIGhvbWUgcGFnZS4KCk9wZW4gdGFza3M6CgogICAgMS4gVXBkYXRpbmcgb3V0LW9mLWRh dGUgcG9ydHMsIHNlZSBQb3J0U2NvdXQgZm9yIGEgbGlzdC4KICAgICBfX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18KCktlcm5l bCBJbmZvcm1hdGlvbiBpbiBQcm9jZXNzIENvcmUgRHVtcHMKCiAgIENvbnRhY3Q6IE1pa29sYWog R29sdWIgPHRyb2NpbnlAZnJlZWJzZC5vcmc+CgogICBXaGVuIGRvaW5nIHBvc3Rtb3J0ZW0gYW5h bHlzaXMgb2YgYSBjcmFzaGVkIHByb2Nlc3MgaXQgaXMgc29tZXRpbWVzCiAgIHZlcnkgdXNlZnVs IHRvIGhhdmUga2VybmVsIGluZm9ybWF0aW9uIGFib3V0IHRoZSBwcm9jZXNzIGF0IHRoZSBtb21l bnQKICAgb2YgdGhlIGNyYXNoLCBsaWtlIG9wZW4gZmlsZSBkZXNjcmlwdG9ycyBvciByZXNvdXJj ZSBsaW1pdHMuIEZvciBhIGxpdmUKICAgcHJvY2VzcyB0aGlzIGluZm9ybWF0aW9uIGNhbiBiZSBv YnRhaW5lZCB2aWEgc3lzY3RsKDMpIGludGVyZmFjZSBlLmcuCiAgIHVzaW5nIHByb2NzdGF0KDEp LgoKICAgVGhlIGFpbSBvZiB0aGUgcHJvamVjdCBpcyB0byBhZGQgYWRkaXRpb25hbCBub3RlcyB0 byBhIHByb2Nlc3MgY29yZQogICBkdW1wLCB3aGljaCBpbmNsdWRlIHByb2Nlc3MgaW5mb3JtYXRp b24gZnJvbSB0aGUga2VybmVsIGF0IHRoZSBtb21lbnQKICAgb2YgdGhlIHByb2Nlc3MgY3Jhc2gs IHRlYWNoIGxpYnByb2NzdGF0KDMpIHRvIGV4dHJhY3QgdGhpcyBpbmZvcm1hdGlvbgogICBhbmQg bWFrZSBwcm9jc3RhdCgxKSB1c2UgdGhpcyBmdW5jdGlvbmFsaXR5LgoKICAgQXQgdGhlIG1vbWVu dCBhbGwgbmVjZXNzYXJ5IGNvZGUgY2hhbmdlcyBhcmUgY29tbWl0dGVkIHRvIEhFQUQgYW5kIGFy ZQogICBnb2luZyB0byBiZSBtZXJnZSB0byBzdGFibGUvOSBpbiAxIG1vbnRoLgogICAgIF9fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fXwoKbWRvYy5zdSAtLSBTaG9ydCBNYW51YWwgUGFnZSBVUkxzCgogICBVUkw6IGh0dHA6Ly9t ZG9jLnN1LwogICBVUkw6IGh0dHA6Ly9uZ2lueC5jb25mLm1kb2Muc3UvbWRvYy5zdS5uZ2lueC5j b25mCiAgIFVSTDogaHR0cHM6Ly9naXRodWIuY29tL2Nuc3QvbWRvYy5zdQogICBVUkw6IGh0dHA6 Ly9saXN0cy5mcmVlYnNkLm9yZy9waXBlcm1haWwvZnJlZWJzZC1kb2MvMjAxMy1GZWJydWFyeS8w MjE0NjUuaHRtbAoKICAgQ29udGFjdDogQ29uc3RhbnRpbmUgQS4gTXVyZW5pbiA8Y25zdCsrQEZy ZWVCU0Qub3JnPgoKICAgbWRvYy5zdSBpcyBhIGRldGVybWluaXN0aWMgVVJMIHNob3J0ZW5lciBm b3IgQlNEIG1hbnVhbCBwYWdlcywgd3JpdHRlbgogICBlbnRpcmVseSBpbiBuZ2lueC5jb25mLgoK ICAgU2luY2UgdGhlIG9yaWdpbmFsIGFubm91bmNlbWVudCwgT1MgdmVyc2lvbiBzdXBwb3J0IGhh cyBiZWVuIGFkZGVkCiAgIChlLmcuIC9mOTEvIGFuZCAvRnJlZUJTRC05LjEvIGV0Yy4pLCBhcyB3 ZWxsIGFzIGR5bmFtaWMgbXVsdGktZmxhdm91cgogICB3ZWItcGFnZXMgd2l0aCBtdWx0aXBsZSBs aW5rcyAoZS5nLiBodHRwOi8vbWRvYy5zdS9mLGQvaWZuZXQuOSBhbmQKICAgaHR0cDovL21kb2Mu c3UvLS9tZG9jKSwgd2hpY2ggZXZlbiBsZXQgeW91IHNwZWNpZnkgdGhlIHZlcnNpb25zIHRvbwog ICAoZS5nLiBodHRwOi8vbWRvYy5zdS9mOTEsbjYwLG81MixkL21kb2MpLgoKICAgVGhlIHNvdXJj ZSBjb2RlIGZvciB0aGUgd2hvbGUgc2l0ZSBpcyBhdmFpbGFibGUgdW5kZXIgYSBCU0QgbGljZW5j ZS4KCk9wZW4gdGFza3M6CgogICAgMS4gRm9yayBpdCBvbiBHaXRIdWIgKHNlZSBsaW5rcykhCiAg ICAgX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fCgpNdWx0aXBhdGggVENQIChNUFRDUCkgZm9yIEZyZWVCU0QKCiAgIFVSTDog aHR0cDovL2NhaWEuc3dpbi5lZHUuYXUvdXJwL25ld3RjcC9tcHRjcC90b29scy5odG1sCiAgIFVS TDogaHR0cDovL2NhaWEuc3dpbi5lZHUuYXUvbmV3dGNwL21wdGNwLwogICBVUkw6IGh0dHA6Ly9j YWlhLnN3aW4uZWR1LmF1L3JlcG9ydHMvMTMwNDI0QS9DQUlBLVRSLTEzMDQyNEEucGRmCiAgIFVS TDogaHR0cHM6Ly9wdWIuYWxsYnNkLm9yZy9GcmVlQlNELXNuYXBzaG90cy8KCiAgIENvbnRhY3Q6 IE5pZ2VsIFdpbGxpYW1zIDxuandpbGxpYW1zQHN3aW4uZWR1LmF1PgogICBDb250YWN0OiBMYXdy ZW5jZSBTdGV3YXJ0IDxsYXN0ZXdhcnRAc3dpbi5lZHUuYXU+CiAgIENvbnRhY3Q6IEdyZW52aWxs ZSBBcm1pdGFnZSA8Z2FybWl0YWdlQHN3aW4uZWR1LmF1PgoKICAgV2UgaGF2ZSBiZWVuIHdvcmtp bmcgdG8gY3JlYXRlIGEgQlNELWxpY2Vuc2VkIGltcGxlbWVudGF0aW9uIG9mCiAgIE11bHRpcGF0 aCBUQ1AgLS0gYSBzZXQgb2YgVENQIGV4dGVuc2lvbnMgdGhhdCBhbGxvdyBmb3IgdHJhbnNwYXJl bnQKICAgbXVsdGlwYXRoIG9wZXJhdGlvbiB3aXRoIG11bHRpcGxlIElQIGFkZHJlc3NlcyBhcyBz cGVjaWZpZWQgaW4KICAgZXhwZXJpbWVudGFsIFJGQzY4MjQuCgogICBXZSBtYWRlIG91ciBmaXJz dCB2MC4xIHB1YmxpYyByZWxlYXNlIG9uIDIwMTMtMDMtMTEgYW5kIHJlY2VudGx5CiAgIHJlbGVh c2VkIHYwLjMgb24gMjAxMy0wNC0xNi4gVGhlIGNvZGUgaXMgY3VycmVudGx5IGNvbnNpZGVyZWQg dG8gYmUgb2YKICAgYWxwaGEgcXVhbGl0eS4gV2UgYXJlIHdvcmtpbmcgdG93YXJkcyBwdXNoaW5n IHRoZSBjb2RlIGludG8gYSBGcmVlQlNECiAgIFN1YnZlcnNpb24gcmVwb3NpdG9yeSBwcm9qZWN0 IGJyYW5jaCB0byBjb250aW51ZSB0aGUgb24tZ29pbmcKICAgZGV2ZWxvcG1lbnQgZWZmb3J0IGlu IGEgbW9yZSBwdWJsaWNseSBhY2Nlc3NpYmxlIGxvY2F0aW9uLiBBcyBwYXJ0IG9mCiAgIHRoaXMg bW92ZSwgd2UgaG9wZSB0byBiZWdpbiByZWxlYXNpbmcgcmVndWxhciBzbmFwc2hvdCBpbnN0YWxs ZXIgSVNPcwogICBvZiB0aGUgTVBUQ1AgcHJvamVjdCBicmFuY2ggY291cnRlc3kgb2YgSGlyb2tp IFNhdG8gYW5kIHRoZSBhbGxic2Qub3JnCiAgIGRhaWx5IHNuYXBzaG90IGluZnJhc3RydWN0dXJl LgoKICAgV2UgYXJlIGFib3V0IHRvIHJlbGVhc2UgYSBDQUlBIHRlY2huaWNhbCByZXBvcnQgMTMw NDI0QSBlbnRpdGxlZAogICAiRGVzaWduIE92ZXJ2aWV3IG9mIE11bHRpcGF0aCBUQ1AgdmVyc2lv biAwLjMgZm9yIEZyZWVCU0QgMTAiIG9uCiAgIDIwMTMtMDQtMjQgd2hpY2ggcHJvdmlkZXMgYSBo aWdoLWxldmVsIGRlc2lnbiBhbmQgYXJjaGl0ZWN0dXJlIG92ZXJ2aWV3CiAgIG9mIHRoZSB2MC4z IGNvZGUgcmVsZWFzZS4KCiAgIEdvaW5nIGZvcndhcmQsIHdlIGV4cGVjdCB0byBjb250aW51ZSBk ZXZlbG9wbWVudCBhbmQgcmVsZWFzZSBhZGRpdGlvbmFsCiAgIHRlY2huaWNhbCByZXBvcnRzIGFu ZCBhY2FkZW1pYyBwYXBlcnMgY292ZXJpbmcgdG9waWNzIHN1Y2ggYXMKICAgcGVyZm9ybWFuY2Ug YW5hbHlzaXMgYW5kIG11bHRpcGF0aCBjb25nZXN0aW9uIGNvbnRyb2wvc2NoZWR1bGluZy4KCk9w ZW4gdGFza3M6CgogICAgMS4gVGhlIGNvZGUgaXMgY3VycmVudGx5IG9mIGFscGhhIHF1YWxpdHkg c28gd2Ugd2VsY29tZSBhbGwgdGVzdGluZwogICAgICAgZmVlZGJhY2ssIGJ1dCBwbGVhc2UgZmFt aWxpYXJpemUgeW91cnNlbGYgd2l0aCB0aGUgUkVBRE1FIGZpbGUgYW5kCiAgICAgICAiS25vd24g TGltaXRhdGlvbnMiIHNlY3Rpb24gaW4gcGFydGljdWxhciBiZWZvcmUganVtcGluZyBpbi4KICAg ICBfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX18KCk5hdGl2ZSBpU0NTSSBTdGFjawoKICAgVVJMOiBodHRwczovL3dpa2kuZnJl ZWJzZC5vcmcvTmF0aXZlJTIwaVNDU0klMjB0YXJnZXQKCiAgIENvbnRhY3Q6IEVkd2FyZCBUb21h c3ogTmFwaWVyYWwvYSA8dHJhc3pARnJlZUJTRC5vcmc+CgogICBGb2N1cyBvZiB0aGUgcHJvamVj dCB3YXMgZXh0ZW5kZWQgdG8gYWxzbyBpbmNsdWRlIGEgbmV3IGlTQ1NJCiAgIGluaXRpYXRvci4g Q29tcGFyZWQgdG8gdGhlIG9sZCBvbmUsIGl0IGlzIG1vcmUgcmVsaWFibGUsIG11Y2ggbW9yZQog ICB1c2VyLWZyaWVuZGx5LCBhbmQgc29tZXdoYXQgZmFzdGVyLiBJdCB1c2VzIGV4YWN0bHkgdGhl IHNhbWUKICAgY29uZmlndXJhdGlvbiBmaWxlIGZvcm1hdCBhcyB0aGUgb2xkIG9uZSB0byBtYWtl IG1pZ3JhdGlvbiBlYXNpZXIuCgogICBBcyBmb3IgdGhlIHRhcmdldCBzaWRlLCBpdCB3YXMgdmVy aWZpZWQgdG8gd29yayBwcm9wZXJseSBhZ2FpbnN0IG1ham9yCiAgIGluaXRpYXRvcnMgKEZyZWVC U0QsIExpbnV4LCBTb2xhcmlzLCBXaW5kb3dzIGFuZCBWTVdhcmUgRVNYKS4KCiAgIFRoaXMgcHJv amVjdCBpcyBiZWluZyBzcG9uc29yZWQgYnkgRnJlZUJTRCBGb3VuZGF0aW9uLgoKT3BlbiB0YXNr czoKCiAgICAxLiBSRE1BIHN1cHBvcnQsIGZvciBib3RoIHRoZSB0YXJnZXQgYW5kIHRoZSBpbml0 aWF0b3IuCiAgICAyLiBQZXJmb3JtYW5jZSBvcHRpbWl6YXRpb24uCiAgICAgX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fCgpQ eVB5CgogICBVUkw6IGh0dHA6Ly93aWtpLkZyZWVCU0Qub3JnL1B5UHkKCiAgIENvbnRhY3Q6IERh dmlkIE5heWxvciA8ZGJuQEZyZWVCU0Qub3JnPgoKICAgUHlQeSBoYXMgYmVlbiBzdWNjZXNzZnVs bHkgdXBkYXRlZCB0byAyLjAtYmV0YTEgd2l0aCAyLjAtYmV0YTIKICAgZmluaXNoaW5nIHRyYW5z bGF0aW5nIGFuZCBvdGhlciB0ZXN0cy4gTWFueSBtYWpvciBjaGFuZ2VzIHdlcmUgbWFkZSB0bwog ICB0aGUgUHlQeSBwb3J0IGZyIHRoZSAyLjAtYmV0YTEgcmVsZWFzZSwgdGhlc2UgaW5jbHVkZToK CiAgICAgKiBSZXdvcmtpbmcgdGhlIGJ1aWxkIHNjcmlwdC4KICAgICAqIE9wdGlvbmFsbHkgdXNl IHB5cHkgKHdoZW4gYXZhaWxhYmxlKSBmb3Igc2VsZi10cmFuc2xhdGluZy4KICAgICAqIFJlZmlu ZSBtZW1vcnkgY2hlY2tzLgogICAgICogRml4IHRoZSB0ZXN0IHRhcmdldC4KCiAgIEFsdGhvdWdo IHRoZSBwb3J0IGlzIGluIGEgaGVhbHRoeSBzdGF0ZTsgUHlQeSBvbiBGcmVlQlNEIGhhcyBzb21l IHJvdWdoCiAgIGVkZ2VzIChzZWUgbWFrZSB0ZXN0IGZvciBleGFtcGxlcyBvZiByb3VnaG5lc3Mp LgoKT3BlbiB0YXNrczoKCiAgICAxLiBGaXggZmFpbGVkIHVuaXQgdGVzdHMuCiAgICAyLiBJbnRl Z3JhdGUgUHlQeSBpbnRvIGJzZC5weXRob24ubWsuCiAgICAzLiBTZWUgdGhlIHByb2plY3QgcGFn ZSBmb3IgbW9yZSBpdGVtcy4KICAgICBfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18KCnJhY2N0OiBCbG9jayBJTyBBY2NvdW50 aW5nCgogICBVUkw6IGh0dHBzOi8vd2lraS5mcmVlYnNkLm9yZy9SdWRvbGZUb21vcmkvSU9MaW1p dHMKCiAgIENvbnRhY3Q6IFJ1ZG9sZiBUb21vcmkgPHJ1ZG90QEZyZWVCU0Qub3JnPgoKICAgVGhp cyBwcm9qZWN0IGFkZHMgdGhlIGJsb2NrIElPIGFjY2VzcyBhY2NvdW50aW5nIHRvIHRoZSByYWNj dC9yY3RsCiAgIHJlc291cmNlIGxpbWl0aW5nIGZyYW1ld29yaywgYSB3b3JraW5nIHByb3RvdHlw ZSBpbXBsZW1lbnRhdGlvbiBpcwogICBhdmFpbGFibGUuCiAgICAgX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fCgpSZWFkLW9u bHkgUG9ydCBvZiBOZXRCU0QncyBVREYgRmlsZSBTeXN0ZW0KCiAgIFVSTDogaHR0cHM6Ly9naXRo dWIuY29tL3dpbGxpYW1kZXZyaWVzL1VERgoKICAgQ29udGFjdDogV2lsbCBEZVZyaWVzIDx3aWxs aWFtLmRldnJpZXNAZ21haWwuY29tPgoKICAgQW4gaW5pdGlhbCByZWFkLW9ubHkgcG9ydCBvZiBO ZXRCU0QncyBVREYgZmlsZSBzeXN0ZW0gaGFzIGJlZW4gbGFyZ2VseQogICBjb21wbGV0ZWQuIChU aGUgVURGIGZpbGUgc3lzdGVtIGlzIG9mdGVuIHVzZWQgb24gQ0QsIERWRCBhbmQgQmx1LVJheQog ICBkaXNjcy4pIFRoaXMgcG9ydCBwcm92aWRlcyBhIG51bWJlciBvZiBhZHZhbnRhZ2VzIG92ZXIg RnJlZUJTRCdzCiAgIGN1cnJlbnQgVURGIGltcGxlbWVudGF0aW9uLCB3aGljaCBpbmNsdWRlOgoK ICAgICAqIFN1cHBvcnQgZm9yIHZlcnNpb24gMi42MCBvZiB0aGUgVURGIGZpbGUgc3lzdGVtIHNw ZWNpZmljYXRpb24uCiAgICAgICBGcmVlQlNEJ3MgY3VycmVudCBpbXBsZW1lbnRhdGlvbiBvbmx5 IHBhcnRpYWxseSBzdXBwb3J0cyB2ZXJzaW9uCiAgICAgICAxLjUgb2YgdGhlIHN0YW5kYXJkLCB3 aGljaCB3YXMgcmVsZWFzZWQgaW4gMTk5Ny4gU2luY2UgV2luZG93cyBhbmQKICAgICAgIG90aGVy IHN5c3RlbXMgc3VwcG9ydCBuZXdlciB2ZXJzaW9uIG9mIHRoaXMgZmlsZSBzeXN0ZW0sIG91ciB1 c2VycwogICAgICAgYXJlIGxlZnQgd2l0aG91dCB0aGUgYWJpbGl0eSB0byByZWFkIHNvbWUgbWVk aWEgd3JpdHRlbiBieSB0aGVzZQogICAgICAgc3lzdGVtcy4gSW4gYWRkaXRpb24sIEJsdS1SYXkg ZGlzY3MgYXJlIGNvbW1vbmx5IHdyaXR0ZW4gdXNpbmcKICAgICAgIHZlcnNpb24gMi41MCBvciAy LjYwLgogICAgICogVGhlIGFiaWxpdHkgdG8gb3ZlcnJpZGUgdGhlIG93bmVyIGFuZCBncm91cCBm b3IgYWxsIHRoZSBmaWxlcyBhbmQKICAgICAgIGRpcmVjdG9yaWVzIG9uIGEgVURGIHZvbHVtZSB1 c2luZyBtb3VudCBvcHRpb25zLgogICAgICogVGhlIGFiaWxpdHkgdG8gc2V0IHRoZSBvd25lciBh bmQgZ3JvdXAgZm9yIGZpbGVzIGFuZCBkaXJlY3RvcmllcwogICAgICAgdGhhdCBsYWNrIGRlZmlu ZWQgb3duZXIgb3IgZ3JvdXAgaW5mb3JtYXRpb24gdXNpbmcgbW91bnQgb3B0aW9ucy4KICAgICAg IChUaGUgVURGIHNwZWNpZmljYXRpb24gYWxsb3dzIGZvciBmaWxlcyBhbmQgZGlyZWN0b3JpZXMg d2l0aG91dAogICAgICAgb3duZXJzIG9yIGdyb3Vwcy4pCiAgICAgKiBUaGUgYWJpbGl0eSB0byBv dmVycmlkZSB0aGUgbW9kZSBmb3IgYWxsIGRpcmVjdG9yaWVzIGFuZCBmaWxlcyBvbiBhCiAgICAg ICB2b2x1bWUgdXNpbmcgbW91bnQgb3B0aW9ucy4KICAgICAqIFN1cHBvcnQgZm9yIG1vdW50aW5n IHByZXZpb3VzIHZlcnNpb25zIG9mIGluY3JlbWVudGFsbHkgcmVjb3JkZWQKICAgICAgIG1lZGlh LCBsaWtlIENELVJzLgogICAgIF9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fXwoKVENQLUFPIEF1dGhlbnRpY2F0aW9uIE9wdGlv bgoKICAgVVJMOiBodHRwOi8vc3Zud2ViLmZyZWVic2Qub3JnL2Jhc2UvdXNlci9hbmRyZS90Y3At YW8vCgogICBDb250YWN0OiBBbmRyw6kgT3BwZXJtYW5uIDxhbmRyZUBGcmVlQlNELm9yZz4KCiAg IFdvcmsgaXMgdW5kZXIgd2F5IHRvIGltcGxlbWVudCBUQ1AtQU8gKFRDUCBBdXRoZW50aWNhdGlv biBPcHRpb24pCiAgIGFjY29yZGluZyB0byBSRkM1OTI1IGFuZCBSRkM1OTI2LiBUQ1AtQU8gaXMg YW4gZXh0ZW5zaW9uIHRvIFRDUC1NRDUKICAgc2lnbmF0dXJlcyBjb21tb25seSB1c2VkIGluIHJv dXRlcnMgdG8gc2VjdXJlIEJHUCByb3V0aW5nIHByb3RvY29sCiAgIHNlc3Npb25zIGFnYWluc3Qg c3Bvb2ZpbmcgYXR0YWNrcy4gVGhlIHdvcmsgaXMgdW5kZXIgY29udHJhY3QgYW5kCiAgIHNwb25z b3JlZCBieSBKdW5pcGVyIE5ldHdvcmtzLgogICAgIF9fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwoKVGhlIGVudGl0aWVzIERv Y3VtZW50YXRpb24gQnJhbmNoCgogICBVUkw6IGh0dHA6Ly9zdm53ZWIuZnJlZWJzZC5vcmcvZG9j L3Byb2plY3RzL2VudGl0aWVzLwoKICAgQ29udGFjdDogUmVuw6kgTGFkYW4gPHJlbmVARnJlZUJT RC5vcmc+CgogICBUaGUgZW50aXRpZXMgYnJhbmNoIHdhcyBjcmVhdGVkIHRvIHJlZHVjZSBkdXBs aWNhdGlvbiBvZiBjb21taXR0ZXIKICAgZW50aXRpZXMuIEN1cnJlbnRseSB0aGVyZSBpcyBvbmUg aW4gYXV0aG9ycy5lbnQgKHdpdGggZW1haWwgYWRkcmVzc2VzKQogICBhbmQgYW5vdGhlciBvbmUg aW4gZGV2ZWxvcGVycy5lbnQgKHdpdGhvdXQgZW1haWwgYWRkcmVzc2VzKS4gVGhpcyBzZWVtcwog ICB0byBiZSBhIGxlZnRvdmVyIGZyb20gdGhlIGRvYy93d3cgc3BsaXQgaW4gZWFybGllciB0aW1l cy4gVG8gcmVtZWR5CiAgIHRoaXMsIGRldmVsb3BlcnMuZW50IGlzIG1lcmdlZCBpbnRvIGF1dGhv cnMuZW50IGFuZCBlbnRpdGllcyB3aXRoIGVtYWlsCiAgIGFkZHJlc3NlcyBhcmUgcG9zdGZpeGVk IGFzIHN1Y2guIEFwYXJ0IGZyb20gdGhlIGluc3RydWN0aW9ucyBmb3IgdGhlCiAgIGluaXRpYWwg Y29tbWl0LCB0aGVyZSBzaG91bGQgYmUgbGl0dGxlIHVzZXItdmlzaWJsZSBjaGFuZ2VzLiBTb21l CiAgIHJlbGF0ZWQgY2xlYW51cHMsIGxpa2UgY2xlYW5pbmcgdXAgdGVhbSBkZWZpbml0aW9ucywg cmVwbGFjaW5nIGxpdGVyYWwKICAgbmFtZXMgYnkgZW50aXRpZXMgZnJvbSBhdXRob3JzLmVudCwg YW5kIGFkZGluZyBtaXNzaW5nIG5hbWVzIHRvCiAgIGF1dGhvcnMuZW50IGFyZSBhbHNvIG1hZGUu CgpPcGVuIHRhc2tzOgoKICAgIDEuIEZpbmlzaCBwcm9jZXNzaW5nIG9mIHRoZSA8ZW1haWw+IHRh Zy4KICAgIDIuIFNlbmQgb3V0IGEgQ0ZULgogICAgMy4gTWVyZ2UgYmFjayBpbnRvIGhlYWQgYnJh bmNoLgogICAgIF9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fXwoKVGhlIEZyZWVCU0QgSmFwYW5lc2UgRG9jdW1lbnRhdGlvbiBQ cm9qZWN0CgogICBVUkw6IGh0dHA6Ly93d3cuRnJlZUJTRC5vcmcvamEvCiAgIFVSTDogaHR0cDov L3d3dy5qcC5GcmVlQlNELm9yZy9kb2MtanAvCgogICBDb250YWN0OiBIaXJva2kgU2F0byA8aHJz QEZyZWVCU0Qub3JnPgogICBDb250YWN0OiBSeXVzdWtlIFN1enVraSA8cnl1c3VrZUBGcmVlQlNE Lm9yZz4KCiAgIFdlYiBwYWdlIChodGRvY3MpOiBOZXdzZmxhc2ggYW5kIHNvbWUgb3RoZXIgdXBk YXRlcyBpbiB0aGUgRW5nbGlzaAogICB2ZXJzaW9uIGhhdmUgYmVlbiB0cmFuc2xhdGVkIHRvIGtl ZXAgdGhlbSB1cC10by1kYXRlLiBTcGVjaWZpY2FsbHksIHRoZQogICByZWxlYXNlIHJlbGF0ZWQg Y29udGVudHMgd2VyZSB1cGRhdGVkIGluIHRoaXMgcGVyaW9kLgoKICAgQm9va3M6IEZyZWVCU0Qg SGFuZGJvb2sgaGFzIGNvbnN0YW50bHkgYmVlbiB1cGRhdGVkIHNpbmNlIHRoZSBsYXN0CiAgIHJl cG9ydDsgcGFydGljdWxhcmx5LCAicG9ydHMiLCAiZGVza3RvcCIgc2VjdGlvbiB3ZXJlIGxhcmdl bHkgdXBkYXRlZC4KICAgU29tZSBwcm9ncmVzcyBoYXMgYmVlbiBtYWRlIGluIHRoZSAiYWR2YW5j ZWQtbmV0d29ya2luZyIgc2VjdGlvbiwKICAgY29udHJpYnV0ZWQgYnkgYSBuZXcgdHJhbnNsYXRv ci4KCiAgICJXcml0aW5nIEZyZWVCU0QgUHJvYmxlbSBSZXBvcnRzIiBhcnRpY2xlIGlzIG5vdyBp biBzeW5jIHdpdGggdGhlCiAgIEVuZ2xpc2ggdmVyc2lvbi4KCk9wZW4gdGFza3M6CgogICAgMS4g RnVydGhlciB0cmFuc2xhdGlvbiB3b3JrIG9mIG91dGRhdGVkIGRvY3VtZW50cyBpbiBqYV9KUC5l dWNKUAogICAgICAgc3VidHJlZS4KICAgICBfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18KClVGUy9GRlMgUGVyZm9ybWFuY2Ug V29yawoKICAgVVJMOiBodHRwOi8vd3d3Lm1ja3VzaWNrLmNvbS9wdWJsaWNhdGlvbnMvZmFzdGVy X2ZzY2sucGRmCgogICBDb250YWN0OiBLaXJrIE1jS3VzaWNrIDxtY2t1c2lja0BtY2t1c2ljay5j b20+CgogICBTb21lIHdvcmsgb24gdGhlIHBlcmZvcm1hbmNlIG9mIFVGUy9GRlMgaGFzIGJlZW4g cmVjZW50bHkgY29tbWl0dGVkIHRvCiAgIEhFQUQuIFRoZSBwdXJwb3NlIG9mIHRoZSBjb3JyZXNw b25kaW5nIGNoYW5nZSB0byB0aGUgRkZTIGxheW91dCBwb2xpY3kKICAgaXMgdG8gcmVkdWNlIHRo ZSBydW5uaW5nIHRpbWUgZm9yIGEgZnVsbCBmaWxlIHN5c3RlbSBjaGVjay4gSXQgYWxzbwogICBy ZWR1Y2VzIHRoZSByYW5kb20gYWNjZXNzIHRpbWUgZm9yIGxhcmdlIGZpbGVzIGFuZCBzcGVlZHMg dXAgdGhlCiAgIHRyYXZlcnNhbCB0aW1lIGZvciBkaXJlY3RvcnkgdHJlZSB3YWxrcy4KCiAgIFRo ZSBrZXkgaWRlYSBpcyB0byByZXNlcnZlIGEgc21hbGwgYXJlYSBpbiBlYWNoIGN5bGluZGVyIGdy b3VwCiAgIGltbWVkaWF0ZWx5IGZvbGxvd2luZyB0aGUgaW5vZGUgYmxvY2tzIGZvciB0aGUgdXNl IG9mIG1ldGFkYXRhLAogICBzcGVjaWZpY2FsbHkgaW5kaXJlY3QgYmxvY2tzIGFuZCBkaXJlY3Rv cnkgY29udGVudHMuIFRoZSBuZXcgcG9saWN5IGlzCiAgIHRvIHByZWZlcmVudGlhbGx5IHBsYWNl IG1ldGFkYXRhIGluIHRoZSBtZXRhZGF0YSBhcmVhIGFuZCBldmVyeXRoaW5nCiAgIGVsc2UgaW4g dGhlIGJsb2NrcyB0aGF0IGZvbGxvdyB0aGUgbWV0YWRhdGEgYXJlYS4KCiAgIFRoZSBzaXplIG9m IHRoaXMgYXJlYSBjYW4gYmUgc2V0IHdoZW4gY3JlYXRpbmcgYSBmaWxlc3lzdGVtIHVzaW5nCiAg IG5ld2ZzKDgpIG9yIGNoYW5nZWQgaW4gYW4gZXhpc3RpbmcgZmlsZXN5c3RlbSB1c2luZyB0dW5l ZnMoOCkuIEJvdGgKICAgdXRpbGl0aWVzIHVzZSB0aGUgLWsgaGVsZC1mb3ItbWV0YWRhdGEtYmxv Y2tzIG9wdGlvbiB0byBzcGVjaWZ5IHRoZQogICBhbW91bnQgb2Ygc3BhY2UgdG8gYmUgaGVsZCBm b3IgbWV0YWRhdGEgYmxvY2tzIGluIGVhY2ggY3lsaW5kZXIgZ3JvdXAuCiAgIEJ5IGRlZmF1bHQs IG5ld2ZzKDgpIHNldHMgdGhpcyBhcmVhIHRvIGhhbGYgb2YgbWluZnJlZSAodHlwaWNhbGx5IDQl IG9mCiAgIHRoZSBkYXRhIGFyZWEpLgoKICAgQXMgd2l0aCBhbGwgbGF5b3V0IHBvbGljaWVzLCBp dCBvbmx5IGFmZmVjdCBsYXlvdXRzIG9mIHRoaW5ncyBhbGxvY2F0ZWQKICAgYWZ0ZXIgaXQgaXMg cHV0IGluIHBsYWNlLiBTbyB0aGVzZSBjaGFuZ2VzIHdpbGwgcHJpbWFyaWx5IGJlIG5vdGljYWJs ZQogICBvbiBuZXdseSBjcmVhdGVkIGZpbGUgc3lzdGVtcy4KCiAgIEZpbGUgc3lzdGVtIGNoZWNr cyBoYXZlIGJlZW4gc3BlZCB1cCBieSBjYWNoaW5nIHRoZSBjeWxpbmRlciBncm91cCBtYXBzCiAg IGluIHBhc3MxIHNvIHRoYXQgdGhleSBkbyBub3QgbmVlZCB0byBiZSByZWFkIGFnYWluIGluIHBh c3M1LiBBcyB0aGlzCiAgIG5lYXJseSBkb3VibGVzIHRoZSBtZW1vcnkgcmVxdWlyZW1lbnQgZm9y IGZzY2soOCksIHRoZSBjYWNoZSBpcyB0aHJvd24KICAgYXdheSBpZiBvdGhlciBtZW1vcnkgbmVl ZHMgaW4gZnNjayg4KSB3b3VsZCBvdGhlcndpc2UgZmFpbC4gVGh1cywgdGhlCiAgIG1lbW9yeSBm b290cHJpbnQgb2YgZnNjayg4KSByZW1haW5zIHVuY2hhbmdlZCBpbiBtZW1vcnkgY29uc3RyYWlu ZWQKICAgZW52aXJvbm1lbnRzLiBUaGlzIG9wdGltaXphdGlvbiB3aWxsIGJlIGV2aWRlbnQgb24g YWxsIFVGUy9GRlMKICAgZmlsZXN5c3RlbXMuCgogICBUaGlzIHdvcmsgd2FzIGluc3BpcmVkIGJ5 IGEgcGFwZXIgcHJlc2VudGVkIGF0IFVzZW5peCdzIEZBU1QgJzEzLgoKT3BlbiB0YXNrczoKCiAg ICAxLiBNRkMgdG8gOS1TVEFCTEUgYW5kIHBvc3NpYmx5IDgtU1RBQkxFIHNob3VsZCBoYXBwZW4g YnkgTWF5IHVubGVzcwogICAgICAgcHJvYmxlbXMgYXJpc2Ugd2l0aCB0aGVzZSBjaGFuZ2VzIGlu IEhFQUQuCiAgICAgX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fCgpXaW5lMzIgb24gRnJlZUJTRC9hbWQ2NAoKICAgVVJMOiBo dHRwOi8vd2lraS5mcmVlYnNkLm9yZy9pMzg2LVdpbmUKCiAgIENvbnRhY3Q6IERhdmlkIE5heWxv ciA8ZGJuQEZyZWVCU0Qub3JnPgoKICAgVGhlIGkzODYtd2luZSBwb3J0IChmb3JtYWxseSB3aW5l LWZic2Q2NCkgaGFzIGJlZW4gYWRkZWQgdG8gdGhlIHBvcnRzCiAgIGNvbGxlY3Rpb24gKGFzIGVt dWxhdG9ycy9pMzg2LXdpbmUtZGV2ZWwpLiBBbHRob3VnaCB0aGUgcG9ydCBjYW4gb25seQogICBi ZSBjb21waWxlZCB1bmRlciBhIHg4NiAzMi1iaXQgc3lzdGVtIHRoZSByZXN1bHRpbmcgcGFja2Fn ZSBjYW4gYmUKICAgaW5zdGFsbGVkIG9uIGEgeDg2IDY0LWJpdCBzeXN0ZW0gYW5kIGVuYWJsZSBy dW5uaW5nIG9mIDMyLWJpdCBNaWNyb3NvZnQKICAgV2luZG93cyBwcm9ncmFtcy4KCiAgIFBhY2th Z2VzIGZvciB0aGUgcG9ydCBhcmUgaW4gZGV2ZWxvcG1lbnQgYW5kIHNob3VsZCBiZSBhbm5vdW5j ZWQKICAgc2hvcnRseSBvbiB0aGUgZnJlZWJzZC1xdWVzdGlvbnMgYW5kIGZyZWVic2QtZW11bGF0 aW9uIG1haWxpbmcgbGlzdHMuCgogICBUaGVyZSBhcmUgc29tZSBpc3N1ZXMgd2l0aCBXaW5lMzIg b24gRnJlZUJTRC9hbWQ2NCAtLSBwb3NzaWJseSByZWxhdGVkCiAgIHRvIEZyZWVCU0QzMl9DT01Q QUNULCBvciBvdGhlciBnZW5lcmFsIDMyLzY0LWJpdCBpc3N1ZXMgLS0gdGhhdCBjb3VsZAogICBk byB3aXRoIHNvbWUgZm9jdXMuCgpPcGVuIHRhc2tzOgoKICAgIDEuIFBvcnQgd2luZTY0IHRvIEZy ZWVCU0QuCiAgICAyLiBQb3J0IFdvVzY0ICh3aW5lMzIgYW5kIHdpbmU2NCB0b2dldGhlcikgdG8g RnJlZUJTRC4KICAgIDMuIEZpeCAzMi0gYW5kIDY0LWJpdCBpc3N1ZXMgKHN1Y2ggYXMgSW50ZWwg Z3JhcGhpY3Mgbm90CiAgICAgICBhY2NlbGVyYXRpbmcpLgogICAgIF9fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwoKWGZjZS9G cmVlQlNECgogICBVUkw6IGh0dHBzOi8vd2lraS5GcmVlQlNELm9yZy9YZmNlCiAgIFVSTDogaHR0 cDovL3Blb3BsZS5mcmVlYnNkLm9yZy9+b2xpdmllcmQvcGF0Y2hlcy9taWRvcmktMC40LjlfMC41 LjAuZGlmZgoKICAgQ29udGFjdDogRnJlZUJTRCBYZmNlIFRlYW0gPHhmY2VARnJlZUJTRC5vcmc+ CgogICBUaGUgWGZjZSBGcmVlQlNEIFRlYW0gaGFzIHVwZGF0ZWQgbWFueSBwb3J0cywgZXNwZWNp YWxseToKCiAgICAgKiB0dW1ibGVyOiAwLjEuMjcgKGFkZCBuZXcgb3B0aW9uLCBDT1ZFUikKICAg ICAqIFBhcm9sZTogMC41LjAKICAgICAqIHhmZGVza3RvcDogNC4xMC4yCiAgICAgKiBNaWRvcmk6 IDAuNC45IChmdWxsIGNvbXBhdGlibGUgd2l0aCBWYWxhIDAuMTgpLCAwLjUuMCBpcyBhdmFpbGFi bGUKICAgICAgIChzZWUgbGlua3MpCiAgICAgKiBPcmFnZTogNC44LjQKICAgICAqIHhmY2U0LXRl cm1pbmFsOiAwLjYuMSAocmVuYW1lZCBieSB1cHN0cmVhbSwgcHJldmlvdXMgbmFtZSB3YXMKICAg ICAgIFRlcm1pbmFsKQoKICAgVGhpcyBsYXN0IGFwcGxpY2F0aW9uIGNvbnRhaW5zIGRyb3AtZG93 biBmdW5jdGlvbmFsaXR5LCBuZXcgd2luZG93CiAgIHNsaWRlcyBkb3duIGZyb20gdGhlIHRvcCBv ZiB0aGUgc2NyZWVuIHdoZW4ga2V5ICh3ZSBjYW4gZGVmaW5lIGtleWJvYXJkCiAgIHNob3J0Y3V0 KSBpcyBwcmVzc2VkLgoKT3BlbiB0YXNrczoKCiAgICAxLiBSZXBsYWNlIGxpYnhmY2U0Z3VpIChk ZXByZWNhdGVkIGFuZCBub3QgbWFpbnRhaW5lZCBieSB1cHN0cmVhbSkgYnkKICAgICAgIGxpYnhm Y2U0dWkgaW4gb3JkZXIgdG8gZW5oYW5jZSBzdXBwb3J0IHBhbmVsIHBsdWdpbnMgZm9yIFhmY2Ug Pj0KICAgICAgIDQuMTAuCiAgICAyLiBXb3JrIG9uIE1pZG9yaSBHdGszIHBvcnQuCiAgICAzLiBG aXggZ3RrLXhmY2UtZW5naW5lIHdpdGggR3RrKyA+PTMuNi4KICAgICBfX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18KCnhvcmcg b24gRnJlZUJTRAoKICAgVVJMOiBodHRwOi8vd2lraS5mcmVlYnNkLm9yZy9Yb3JnCiAgIFVSTDog aHR0cDovL3Blb3BsZS5mcmVlYnNkLm9yZy9+emVpc2luZy94b3JnLTcuNy5kaWZmCiAgIFVSTDog aHR0cDovL3RyaWxsaWFuLmNocnVldGVydGVlLmNoL3BvcnRzL2Jyb3dzZXIvdHJ1bmsKICAgVVJM OiBodHRwOi8vdHJpbGxpYW4uY2hydWV0ZXJ0ZWUuY2gvcG9ydHMvYnJvd3Nlci9icmFuY2hlcy94 b3JnLTcuNwoKICAgQ29udGFjdDogRnJlZUJTRCBYMTEgVGVhbSA8eDExQEZyZWVCU0Qub3JnPgog ICBDb250YWN0OiBOaWNsYXMgWmVpc2luZyA8emVpc2luZ0BGcmVlQlNELm9yZz4KICAgQ29udGFj dDogS29vcCBNYXN0IDxrd21ARnJlZUJTRC5vcmc+CgogICBNb3N0IG9mIHRoZSB3b3JrIGR1cmlu ZyB0aGlzIHBlcmlvZCBoYXMgYmVlbiBpbiB1cGRhdGluZywgdGVzdGluZyBhbmQKICAgc3RhYmls aXppbmcgdGhlIGRldmVsb3BtZW50IHJlcG9zaXRvcnkuIEEgbnVtYmVyIG9mIHhvcmcgYXBwbGlj YXRpb25zCiAgIGFuZCB2YXJpb3VzIG90aGVyIGxlYWYgcG9ydHMgaGFzIGJlZW4gY29tbWl0dGVk IGFzIHBhcnQgb2YgdGhpcyBlZmZvcnQuCiAgIEFmdGVyIHRoaXMgYSBDRlQgd2FzIHNlbnQgb3V0 IGFza2luZyBmb3IgaGVscCBpbiB0ZXN0aW5nIHRoZSByZW1haW5pbmcKICAgYml0cyBpbiBkZXZl bG9wbWVudCwgaW5jbHVkaW5nIHVwZGF0ZXMgdG8gYWxsIG1ham9yIGxpYnJhcmllcyBhbmQKICAg eG9yZy1zZXJ2ZXIuCgogICBDdXJyZW50bHksIHRoZSBDRlQgcGF0Y2ggaGFzIGJlZW4gc3VibWl0 dGVkIGZvciBhbiBleHAtcnVuIHRvIGlyb24gb3V0CiAgIGFueSBmaW5hbCBidWdzLiBUaGUgcGxh biBpcyB0byBtZXJnZSBpdCBzb21ldGltZSBhZnRlciBGcmVlQlNEIDguNCBpcwogICByZWxlYXNl ZCBhbmQgdGhlIHBvcnRzIHRyZWUgaXMgcmVvcGVuZWQgZm9yIGNvbW1pdHMuCgogICBXb3JrIGlz IGFsc28gb24tZ29pbmcgdG8gcG9ydCBuZXcgdmVyc2lvbnMgb2YgTUVTQSBhbmQgT3BlbkdMLCBh cyB3ZWxsCiAgIGFzIGEgbmV3IHZlcnNpb24gb2YgeG9yZy1zZXJ2ZXIsIGFuZCBwZXJoYXBzIGlu IHRoZSBmdXR1cmUsIFdheWxhbmQuCiAgIFRoZXNlIGFyZSBjb25zaWRlcmVkIG1vcmUgbG9uZy10 ZXJtIGdvYWxzIGFuZCBhcmUgbm90IHRhcmdldGVkIGZvciB0aGUKICAgY3VycmVudCB1cGRhdGUu CgpPcGVuIHRhc2tzOgoKICAgIDEuIERlY2lkZSBob3cgdG8gaGFuZGxlIHRoZSBuZXcgYW5kIG9s ZCB4b3JnIGRpc3RyaWJ1dGlvbnMuIEluIHJlY2VudAogICAgICAgeG9yZywgYSBsb3Qgb2YgbGVn YWN5IGRyaXZlciBzdXBwb3J0IGhhcyBiZWVuIGRyb3BwZWQsIHRoZXJlZm9yZSB3ZQogICAgICAg bmVlZCB0byBtYWludGFpbiB0d28geG9yZyBkaXN0cmlidXRpb25zIHRvIG5vdCBsb3NlIGEgbG90 IG9mCiAgICAgICBoYXJkd2FyZSBkcml2ZXJzLiBDdXJyZW50bHksIHRoaXMgaXMgZG9uZSBieSBz ZXR0aW5nIHRoZSBmbGFnCiAgICAgICBXSVRIX05FV19YT1JHIGluIC9ldGMvbWFrZS5jb25mLCBi dXQgYSBtb3JlIHByYWN0aWNhbCBzb2x1dGlvbiBpcwogICAgICAgbmVlZGVkLiBUaGlzIGlzIGVz cGVjaWFsbHkgaW1wb3J0YW50IHNpbmNlIHRoZSBmbGFnIGlzIG5vdCB2ZXJ5CiAgICAgICB1c2Vy LWZyaWVuZGx5LCBhbmQgc2luY2UgdGhlcmUgY3VycmVudGx5IHdpbGwgYmUgbm8gb2ZmaWNpYWwK ICAgICAgIHBhY2thZ2VzIGZvciB0aGUgbmV3IGRpc3RyaWJ1dGlvbi4KICAgIDIuIENvbnRpbnVl IHRvIHRlc3QgYW5kIHVwZGF0ZSB4b3JnIHJlbGF0ZWQgcG9ydHMuIFRoZXJlIGFyZSBuZXcKICAg ICAgIHZlcnNpb25zIG9mIHhzZXJ2ZXIsIGFzIHdlbGwgYXMgTUVTQSBhbmQgcmVsYXRlZCBPcGVu R0wgbGlicmFyaWVzCiAgICAgICB3aGljaCBuZWVkcyB0byBiZSBwb3J0ZWQgYW5kIGV2ZW50dWFs bHkgaW50ZWdyYXRlZCBpbnRvIHRoZSBwb3J0cwogICAgICAgdHJlZS4KICAgIDMuIFBvcnQgV2F5 bGFuZC4gVGhlIGZ1dHVyZSBvZiBncmFwaGljYWwgZW52aXJvbm1lbnRzIGluIG9wZW4gc291cmNl CiAgICAgICBvcGVyYXRpbmcgc3lzdGVtcyBzZWVtcyB0byBiZSBXYXlsYW5kLiBUaGlzIG5lZWRz IHRvIGJlIHBvcnRlZCB0bwogICAgICAgRnJlZUJTRCBzbyB0aGF0IGEgd2lkZXIgYXVkaWVuY2Ug Y2FuIHRlc3QgaXQsIGFuZCBzbyB0aGF0IGl0CiAgICAgICBldmVudHVhbGx5IGNhbiBiZSBpbnRl Z3JhdGVkIGludG8gdGhlIHBvcnRzIHRyZWUsIHBlcmhhcHMgYXMgYQogICAgICAgcmVwbGFjZW1l bnQgZm9yIHRoZSBjdXJyZW50IHhvcmcuCiAgICA0LiBMb29rIGludG8gcmVwbGFjZW1lbnRzIGZv ciBIQUwuIEhBTCBpcyB1c2VkIGZvciBob3QtcGx1Z2dpbmcgb2YKICAgICAgIGRldmljZXMsIGJ1 dCBpdCBoYXMgYmVlbiBsb25nIGFiYW5kb25lZCBieSBMaW51eC4gQSByZXBsYWNlbWVudCwKICAg ICAgIHBlcmhhcHMgYnVpbGQgb24gdG9wIG9mIGRldmQgd291bGQgYmUgbmljZSB0byBoYXZlLiBU aGlzIHdvcmsKICAgICAgIHNob3VsZCBiZSBjb29yZGluYXRlZCB3aXRoIHRoZSBGcmVlQlNEIEdO T01FIGFuZCBLREUgdGVhbXMuCiAgICAgX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fCl9fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fCmZyZWVic2QtaGFja2Vyc0BmcmVlYnNkLm9yZyBtYWls aW5nIGxpc3QKaHR0cDovL2xpc3RzLmZyZWVic2Qub3JnL21haWxtYW4vbGlzdGluZm8vZnJlZWJz ZC1oYWNrZXJzClRvIHVuc3Vic2NyaWJlLCBzZW5kIGFueSBtYWlsIHRvICJmcmVlYnNkLWhhY2tl cnMtdW5zdWJzY3JpYmVAZnJlZWJzZC5vcmci