From mboxrd@z Thu Jan 1 00:00:00 1970 Delivery-date: Wed, 16 Jun 2021 17:57:07 +0200 Received: from metis.ext.pengutronix.de ([2001:67c:670:201:290:27ff:fe1d:cc33]) by lore.white.stw.pengutronix.de with esmtp (Exim 4.92) (envelope-from ) id 1ltXud-0002qD-He for lore@lore.pengutronix.de; Wed, 16 Jun 2021 17:57:07 +0200 Received: from localhost ([127.0.0.1] helo=metis.ext.pengutronix.de) by metis.ext.pengutronix.de with esmtp (Exim 4.92) (envelope-from ) id 1ltXud-0007ls-1e; Wed, 16 Jun 2021 17:57:07 +0200 Received: from dude.hi.pengutronix.de ([2001:67c:670:100:1d::7]) by metis.ext.pengutronix.de with esmtps (TLS1.3:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.92) (envelope-from ) id 1ltXu5-0007lF-Ny; Wed, 16 Jun 2021 17:56:33 +0200 Received: from rhi by dude.hi.pengutronix.de with local (Exim 4.92) (envelope-from ) id 1ltXu5-0003ah-Fu; Wed, 16 Jun 2021 17:56:33 +0200 From: Roland Hieber To: ptxdist@pengutronix.de Date: Wed, 16 Jun 2021 17:56:30 +0200 Message-Id: <20210616155631.12180-1-rhi@pengutronix.de> X-Mailer: git-send-email 2.29.2 MIME-Version: 1.0 Subject: [ptxdist] [PATCH 1/2] doc: dev manual: propagate two subsections to sections X-BeenThere: ptxdist@pengutronix.de X-Mailman-Version: 2.1.29 Precedence: list List-Id: PTXdist Development Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Reply-To: ptxdist@pengutronix.de Cc: Roland Hieber Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Sender: "ptxdist" X-SA-Exim-Connect-IP: 127.0.0.1 X-SA-Exim-Mail-From: ptxdist-bounces@pengutronix.de X-SA-Exim-Scanned: No (on metis.ext.pengutronix.de); SAEximRunCond expanded to false VGhlICJBZGRpbmcgbmV3IHBhY2thZ2VzIiBzZWN0aW9uIGhhcyBiZWNvbWUgcXVpdGUgbG9uZyBh bHJlYWR5LCB0byB0aGUKcG9pbnQgdGhhdCBzb21lIGhlYWRpbmdzIGhhdmUgcmVhY2hlZCBsZXZl bCBmaXZlIGFuZCBubyBsb25nZXIgbWFrZSBpdAppbnRvIHRoZSB0YWJsZSBvZiBjb250ZW50cy4g VGhlIHN1YnNlY3Rpb25zICJBZHZhbmNlZCBydWxlIGZpbGVzIiBhbmQKIlBhdGNoaW5nIHBhY2th Z2VzIiBhcmUgYWxzbyBub3Qgb25seSByZWxldmFudCBmb3IgbmV3IHBhY2thZ2VzLCBzbwpwcm9w YWdhdGUgdGhlbSB0byB0aGVpciBvd24gc2VjdGlvbnMuCgpTaWduZWQtb2ZmLWJ5OiBSb2xhbmQg SGllYmVyIDxyaGlAcGVuZ3V0cm9uaXguZGU+Ci0tLQogZG9jL2Rldl9hZGRfbmV3X3BrZ3MucnN0 ICAgICAgICB8IDY4OSAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogZG9jL2Rldl9h ZHZhbmNlZF9ydWxlX2ZpbGVzLnJzdCB8IDQ2MyArKysrKysrKysrKysrKysrKysrKysKIGRvYy9k ZXZfbWFudWFsLnJzdCAgICAgICAgICAgICAgfCAgIDIgKwogZG9jL2Rldl9wYXRjaGluZy5yc3Qg ICAgICAgICAgICB8IDIyNiArKysrKysrKysrKwogNCBmaWxlcyBjaGFuZ2VkLCA2OTEgaW5zZXJ0 aW9ucygrKSwgNjg5IGRlbGV0aW9ucygtKQogY3JlYXRlIG1vZGUgMTAwNjQ0IGRvYy9kZXZfYWR2 YW5jZWRfcnVsZV9maWxlcy5yc3QKIGNyZWF0ZSBtb2RlIDEwMDY0NCBkb2MvZGV2X3BhdGNoaW5n LnJzdAoKZGlmZiAtLWdpdCBhL2RvYy9kZXZfYWRkX25ld19wa2dzLnJzdCBiL2RvYy9kZXZfYWRk X25ld19wa2dzLnJzdAppbmRleCAwZGJjN2EyNjZlYTguLjM1MDY0MzZkNzhlYyAxMDA2NDQKLS0t IGEvZG9jL2Rldl9hZGRfbmV3X3BrZ3MucnN0CisrKyBiL2RvYy9kZXZfYWRkX25ld19wa2dzLnJz dApAQCAtNjQ4LDY5MiArNjQ4LDMgQEAgcmVwb3NpdG9yeSBhbmQgaXRzIGNvbnRlbnQuIEl0IGNv bnRhaW5zIGEgbGlzdCBvZiBrbm93biBsaWNlbnNlcyBiYXNlZCBvbiB0aGVpcgogU1BEWCBpZGVu dGlmaWVyLiBUaGUgY29udGVudCBpcyB3aXRob3V0IGZvcm1hdHRpbmcgdG8gc2ltcGxpZnkgdGV4 dCBzZWFyY2guCiAKICAgIGh0dHBzOi8vZ2l0aHViLmNvbS9zcGR4L2xpY2Vuc2UtbGlzdC1kYXRh L3RyZWUvbWFzdGVyL3RleHQKLQotQWR2YW5jZWQgUnVsZSBGaWxlcwotfn5+fn5+fn5+fn5+fn5+ fn5+fgotCi1UaGUgcHJldmlvdXMgZXhhbXBsZSBvbiBob3cgdG8gY3JlYXRlIGEgcnVsZSBmaWxl IHNvbWV0aW1lcyB3b3JrcyBhcwotc2hvd24gYWJvdmUuIEJ1dCBtb3N0IG9mIHRoZSB0aW1lIHNv dXJjZSBhcmNoaXZlcyBhcmUgbm90IHRoYXQgc2ltcGxlLgotSW4gdGhpcyBzZWN0aW9uIHdlIHdh bnQgdG8gZ2l2ZSB0aGUgdXNlciBhIG1vcmUgZGV0YWlsZWQgc2VsZWN0aW9uIGhvdwotdGhlIHBh Y2thZ2Ugd2lsbCBiZSBidWlsdC4KLQotQWRkaW5nIFN0YXRpYyBDb25maWd1cmUgUGFyYW1ldGVy cwotXl5eXl5eXl5eXl5eXl5eXl5eXl5eXl5eXl5eXl5eXl5eXgotCi1UaGUgYGBjb25maWd1cmVg YCBzY3JpcHRzIG9mIHZhcmlvdXMgc291cmNlIGFyY2hpdmVzIHByb3ZpZGUgYWRkaXRpb25hbAot cGFyYW1ldGVycyB0byBlbmFibGUgb3IgZGlzYWJsZSBmZWF0dXJlcywgb3IgdG8gY29uZmlndXJl IHRoZW0gaW4gYQotc3BlY2lmaWMgd2F5LgotCi1XZSBhc3N1bWUgdGhlIGBgY29uZmlndXJlYGAg c2NyaXB0IG9mIG91ciBgYGZvb2BgIGV4YW1wbGUgKHJlZmVyIHRvCi1zZWN0aW9uIDpyZWY6YGZv b19leGFtcGxlYCkgc3VwcG9ydHMgdHdvIGFkZGl0aW9uYWwgcGFyYW1ldGVyczoKLQotLSAgKiot LWVuYWJsZS1kZWJ1ZyoqOiBNYWtlIHRoZSBwcm9ncmFtIG1vcmUgbm9pc3kuIEl04oCZcyBkaXNh YmxlZCBieQotICAgZGVmYXVsdC4KLQotLSAgKiotLXdpdGgtYmFyKio6IEFsc28gYnVpbGQgdGhl IHNwZWNpYWwgZXhlY3V0YWJsZSAqKmJhcioqLiBCdWlsZGluZwotICAgdGhpcyBleGVjdXRhYmxl IGlzIGFsc28gZGlzYWJsZWQgYnkgZGVmYXVsdC4KLQotV2Ugbm93IHdhbnQgdG8gZm9yd2FyZCB0 aGVzZSBvcHRpb25zIHRvIHRoZSBgYGNvbmZpZ3VyZWBgIHNjcmlwdCB3aGVuIGl0Ci1ydW5zIGlu IHRoZSAqcHJlcGFyZSogc3RhZ2UuIFRvIGRvIHNvLCB3ZSBtdXN0IGFnYWluIG9wZW4gdGhlIHJ1 bGUgZmlsZQotd2l0aCBvdXIgZmF2b3VyaXRlIGVkaXRvciBhbmQgbmF2aWdhdGUgdG8gdGhlICpw cmVwYXJlKiBzdGFnZSBlbnRyeS4KLQotUFRYZGlzdCB1c2VzIHRoZSB2YXJpYWJsZSBgYEZPT19D T05GX09QVGBgIGFzIHRoZSBsaXN0IG9mIHBhcmFtZXRlcnMgdG8KLWJlIGdpdmVuIHRvIGBgY29u ZmlndXJlYGAuCi0KLUN1cnJlbnRseSB0aGlzIHZhcmlhYmxlIGlzIGNvbW1lbnRlZCBvdXQgYW5k IGRlZmluZWQgdG86Ci0KLS4uIGNvZGUtYmxvY2s6OiBtYWtlCi0KLSAgICAjIEZPT19DT05GX09Q VCA6PSAkKENST1NTX0FVVE9DT05GX1VTUikKLQotVGhlIHZhcmlhYmxlIGBgQ1JPU1NfQVVUT0NP TkZfVVNSYGAgaXMgcHJlZGVmaW5lZCBieSBQVFhkaXN0IGFuZAotY29udGFpbnMgYWxsIGJhc2lj IHBhcmFtZXRlcnMgdG8gaW5zdHJ1Y3QgYGBjb25maWd1cmVgYCB0byBwcmVwYXJlIGZvciBhCi0q KmNyb3NzKiogY29tcGlsZSBlbnZpcm9ubWVudC4KLQotVG8gdXNlIHRoZSB0d28gYWRkaXRpb25h bCBtZW50aW9uZWQgYGBjb25maWd1cmVgYCBwYXJhbWV0ZXJzLCB3ZSBjb21tZW50Ci1pbiB0aGlz IGxpbmUgYW5kIHN1cHBsZW1lbnQgdGhpcyBleHByZXNzaW9uIGFzIGZvbGxvd3M6Ci0KLS4uIGNv ZGUtYmxvY2s6OiBtYWtlCi0KLSAgICBGT09fQ09ORl9PUFQgOj0gXAotICAgICAgICAkKENST1NT X0FVVE9DT05GX1VTUikgXAotICAgICAgICAtLWVuYWJsZS1kZWJ1ZyBcCi0gICAgICAgIC0td2l0 aC1iYXIKLQotLi4gbm90ZTo6IFdlIHJlY29tbWVuZCB0byB1c2UgdGhpcyBmb3JtYXQgd2l0aCBl YWNoIHBhcmFtZXRlciBvbiBhIGxpbmUgb2YKLSBpdHMgb3duLiBUaGlzIGZvcm1hdCBpcyBlYXNp ZXIgdG8gcmVhZCBhbmQgYSBkaWZmIHNob3dzIG1vcmUgZXhhY3RseSBhbnkKLSBjaGFuZ2UuCi0K LVRvIGRvIGEgZmFzdCBjaGVjayBpZiB0aGlzIGFkZGl0aW9uIHdhcyBzdWNjZXNzZnVsLCB3ZSBy dW46Ci0KLS4uIGNvZGUtYmxvY2s6OiB0ZXh0Ci0KLSAgICAkIHB0eGRpc3QgcHJpbnQgRk9PX0NP TkZfT1BUCi0gICAgLS1wcmVmaXg9L3VzciAtLXN5c2NvbmZkaXI9L2V0YyAtLWhvc3Q9fHB0eGRp c3RDb21waWxlck5hbWV8IC0tYnVpbGQ9aTY4Ni1ob3N0LWxpbnV4LWdudSAtLWVuYWJsZS1kZWJ1 ZyAtLXdpdGgtYmFyCi0KLS4uIG5vdGU6OiBJdCBkZXBlbmRzIG9uIHRoZSBjdXJyZW50bHkgc2Vs ZWN0ZWQgcGxhdGZvcm0gYW5kIGl0cyBhcmNoaXRlY3R1cmUKLSB3aGF0IGNvbnRlbnQgdGhpcyB2 YXJpYWJsZSB3aWxsIGhhdmUuIFRoZSBjb250ZW50IHNob3duIGFib3ZlIGlzIGFuCi0gZXhhbXBs ZSBmb3IgYSB0YXJnZXQuCi0KLU9yIHJlLWJ1aWxkIHRoZSBwYWNrYWdlIHdpdGggdGhlIG5ldyBz ZXR0aW5nczoKLQotLi4gY29kZS1ibG9jazo6IHRleHQKLQotICAgICQgcHR4ZGlzdCBkcm9wIGZv byBwcmVwYXJlCi0gICAgJCBwdHhkaXN0IHRhcmdldGluc3RhbGwgZm9vCi0KLUFkZGluZyBEeW5h bWljIENvbmZpZ3VyZSBQYXJhbWV0ZXJzCi1eXl5eXl5eXl5eXl5eXl5eXl5eXl5eXl5eXl5eXl5e Xl5eXgotCi1Tb21ldGltZXMgaXQgbWFrZXMgc2Vuc2UgdG8gYWRkIHRoaXMga2luZCBvZiBwYXJh bWV0ZXJzIG9uIGRlbWFuZCBvbmx5OwotZXNwZWNpYWxseSBhIHBhcmFtZXRlciBsaWtlIGBgLS1l bmFibGUtZGVidWdgYC4gVG8gbGV0IHRoZSB1c2VyIGRlY2lkZQotaWYgdGhpcyBwYXJhbWV0ZXIg aXMgdG8gYmUgdXNlZCBvciBub3QsIHdlIG11c3QgYWRkIGEgbWVudSBlbnRyeS4gU28sCi1sZXTi gJlzIGV4cGFuZCBvdXIgbWVudS4gSGVyZSBpcyBpdHMgY3VycmVudCBjb250ZW50OgotCi0uLiBj b2RlLWJsb2NrOjoga2NvbmZpZwotCi0gICAgIyMgU0VDVElPTj1wcm9qZWN0X3NwZWNpZmljCi0K LSAgICBjb25maWcgRk9PCi0gICAgICAgICAgICB0cmlzdGF0ZQotICAgICAgICAgICAgcHJvbXB0 ICJmb28iCi0gICAgICAgICAgICBoZWxwCi0gICAgICAgICAgICAgIEZJWE1FCi0KLVdl4oCZbGwg YWRkIHR3byBtZW51IGVudHJpZXMsIG9uZSBmb3IgZWFjaCBvcHRpb25hbCBwYXJhbWV0ZXIgd2Ug d2FudCB0bwotYWRkIG9uIGRlbWFuZCB0byB0aGUgYGBjb25maWd1cmVgYCBwYXJhbWV0ZXJzOgot Ci0uLiBjb2RlLWJsb2NrOjoga2NvbmZpZwotCi0gICAgIyMgU0VDVElPTj1wcm9qZWN0X3NwZWNp ZmljCi0KLSAgICBjb25maWcgRk9PCi0gICAgICAgICAgIHRyaXN0YXRlCi0gICAgICAgICAgIHBy b21wdCAiZm9vIgotICAgICAgICAgICBoZWxwCi0gICAgICAgICAgICAgRklYTUUKLQotICAgIGlm IEZPTwotICAgIGNvbmZpZyBGT09fREVCVUcKLSAgICAgICAgICAgYm9vbAotICAgICAgICAgICBw cm9tcHQgImFkZCBkZWJ1ZyBub2lzZSIKLQotICAgIGNvbmZpZyBGT09fQkFSCi0gICAgICAgICAg IGJvb2wKLSAgICAgICAgICAgcHJvbXB0ICJidWlsZCBiYXIiCi0KLSAgICBlbmRpZgotCi0uLiBp bXBvcnRhbnQ6OiBBbHdheXMgZm9sbG93IHRoZSBydWxlIHRvIGV4dGVuZCB0aGUgYmFzZSBuYW1l IGJ5IGEgc3Vib3B0aW9uCi0gIG5hbWUgYXMgdGhlIHRyYWlsaW5nIHBhcnQgb2YgdGhlIHZhcmlh YmxlIG5hbWUuIFRoaXMgZ2l2ZXMgUFRYZGlzdCB0aGUgYWJpbGl0eQotICB0byBkZXRlY3QgYSBj aGFuZ2UgaW4gdGhlIHBhY2thZ2XigJlzIHNldHRpbmdzICh2aWEgbWVudWNvbmZpZykgdG8gZm9y Y2UgaXRzCi0gIHJlYnVpbGQgb24gZGVtYW5kLgotCi1UbyBtYWtlIHVzYWdlIG9mIHRoZSBuZXcg bWVudSBlbnRyaWVzLCB3ZSBtdXN0IGNoZWNrIHRoZW0gaW4gdGhlIHJ1bGUKLWZpbGUgYW5kIGFk ZCB0aGUgY29ycmVjdCBwYXJhbWV0ZXJzOgotCi0uLiBjb2RlLWJsb2NrOjogbWFrZQotCi0gICAg IwotICAgICMgYXV0b2NvbmYKLSAgICAjCi0gICAgRk9PX0NPTkZfT1BUIDo9IFwKLSAgICAgICAg JChDUk9TU19BVVRPQ09ORl9VU1IpIFwKLSAgICAgICAgLS0kKGNhbGwgcHR4L2VuZGlzLCBQVFhD T05GX0ZPT19ERUJVRyktZGVidWcgXAotICAgICAgICAtLSQoY2FsbCBwdHgvd3dvLCBQVFhDT05G X0ZPT19CQVIpLWJhcgotCi0uLiBpbXBvcnRhbnQ6OiBQbGVhc2Ugbm90ZSB0aGUgbGVhZGluZyBg YFBUWENPTkZfYGAgZm9yIGVhY2ggZGVmaW5lLiBXaGlsZSBLY29uZmlnIGlzCi0gIHVzaW5nIGBg Rk9PX0JBUmBgLCB0aGUgcnVsZSBmaWxlIG11c3QgdXNlIGBgUFRYQ09ORl9GT09fQkFSYGAgaW5z dGVhZC4KLQotLi4gbm90ZTo6IFJlZmVyIDpyZWY6YFJ1bGUgRmlsZSBNYWNybyBSZWZlcmVuY2Ug PHBhcmFtX21hY3Jvcz5gIGZvciBmdXJ0aGVyCi0gICBkZXRhaWxzIGFib3V0IHRoZXNlIHNwZWNp YWwga2luZCBvZiBvcHRpb24gbWFjcm9zIChlLmcuIGBgcHR4Ly4uLmBgKS4KLQotSXQgaXMgYSBn b29kIHByYWN0aWNlIHRvIGFsd2F5cyBhZGQgYm90aCBzZXR0aW5ncywgZS5nLiBgYC0tZGlzYWJs ZS1kZWJ1Z2BgCi1ldmVuIGlmIHRoaXMgaXMgdGhlIGRlZmF1bHQgY2FzZS4gU29tZXRpbWVzIGBg Y29uZmlndXJlYGAgdHJpZXMgdG8gZ3Vlc3MKLXNvbWV0aGluZyBhbmQgdGhlIGJpbmFyeSByZXN1 bHQgbWlnaHQgZGlmZmVyIGRlcGVuZGluZyBvbiB0aGUgYnVpbGQKLW9yZGVyLiBGb3IgZXhhbXBs ZSBzb21lIGtpbmQgb2YgcGFja2FnZSB3b3VsZCBhbHNvIGJ1aWxkIHNvbWUgWCByZWxhdGVkCi10 b29scywgaWYgWCBsaWJyYXJpZXMgYXJlIGZvdW5kLiBJbiB0aGlzIGNhc2UgaXQgZGVwZW5kcyBv biB0aGUgYnVpbGQKLW9yZGVyLCBpZiB0aGUgWCByZWxhdGVkIHRvb2xzIGFyZSBidWlsdCBvciBu b3QuIEFsbCB0aGUgYXV0b2NoZWNrCi1mZWF0dXJlcyBhcmUgcHJvYmxlbWF0aWMgaGVyZS4gU28s IGlmIHdlIGRvIG5vdCB3YW50IGBgY29uZmlndXJlYGAgdG8KLWd1ZXNzIGl0cyBzZXR0aW5ncyB3 ZSAqKm11c3QgZGlzYWJsZSBldmVyeXRoaW5nIHdlIGRvIG5vdCB3YW50KiouCi0KLVRvIHN1cHBv cnQgdGhpcyBwcm9jZXNzLCBQVFhkaXN0IHN1cHBsaWVzIGEgaGVscGVyIHNjcmlwdCwgbG9jYXRl ZCBhdAotYGAvcGF0aC90by9wdHhkaXN0L3NjcmlwdHMvY29uZmlndXJlLWhlbHBlci5weWBgIHRo YXQgY29tcGFyZXMgdGhlIGNvbmZpZ3VyZQotb3V0cHV0IHdpdGggdGhlIHNldHRpbmdzIGZyb20g YGBGT09fQ09ORl9PUFRgYDoKLQotLi4gY29kZS1ibG9jazo6IHRleHQKLQotICAgICQgL29wdC9w dHhkaXN0LTIwMTcuMDYuMC9zY3JpcHRzL2NvbmZpZ3VyZS1oZWxwZXIucHkgLXAgbGlic2lncm9r Ci0gICAgLS0tIHJ1bGVzL2xpYnNpZ3Jvay5tYWtlCi0gICAgKysrIGxpYnNpZ3Jvay0wLjUuMAot ICAgIEBAIC00LDMgKzQsNzQgQEAKLSAgICAgCS0tbGliZGlyPS91c3IvbGliCi0gICAgIAktLWJ1 aWxkPXg4Nl82NC1ob3N0LWxpbnV4LWdudQotICAgICAJLS1ob3N0PWFybS12N2EtbGludXgtZ251 ZWFiaWhmCi0gICAgKwktLWVuYWJsZS13YXJuaW5ncz1taW58bWF4fGZhdGFsfG5vCi0gICAgKwkt LWRpc2FibGUtbGFyZ2VmaWxlCi0gICAgKwktLWVuYWJsZS1hbGwtZHJpdmVycwotICAgICsJLS1l bmFibGUtYWdpbGVudC1kbW0KLSAgICBbLi4uXQotICAgICsJLS1lbmFibGUtcnVieQotICAgICsJ LS1lbmFibGUtamF2YQotICAgICsJLS13aXRob3V0LWxpYnNlcmlhbHBvcnQKLSAgICArCS0td2l0 aG91dC1saWJmdGRpCi0gICAgKwktLXdpdGhvdXQtbGlidXNiCi0gICAgKwktLXdpdGhvdXQtbGli cmV2aXNhCi0gICAgKwktLXdpdGhvdXQtbGliZ3BpYgotICAgICsJLS13aXRob3V0LWxpYmllZWUx Mjg0Ci0gICAgKwktLXdpdGgtam5pLWluY2x1ZGUtcGF0aD1ESVItTElTVAotCi1JbiB0aGlzIGV4 YW1wbGUsIG1hbnkgY29uZmlndXJlIG9wdGlvbnMgZnJvbSBsaWJzaWdyb2sgKG1hcmtlZCB3aXRo IGBgK2BgKQotYXJlIG5vdCB5ZXQgcHJlc2VudCBpbiBgYExJQlNJR1JPS19DT05GX09QVGBgIGFu ZCBtdXN0IGJlIGFkZGVkLCBwb3NzaWJseSBhbHNvCi1ieSBwcm92aWRpbmcgbW9yZSBkeW5hbWlj IG9wdGlvbnMgaW4gdGhlIHBhY2thZ2UgZGVmaW5pdGlvbi4KLQotSWYgc29tZSBwYXJ0cyBvZiBh IHBhY2thZ2UgYXJlIGJ1aWx0IG9uIGRlbWFuZCBvbmx5LCB0aGV5IG11c3QgYWxzbyBiZQotaW5z dGFsbGVkIG9uIGRlbWFuZCBvbmx5LiBCZXNpZGVzIHRoZSAqcHJlcGFyZSogc3RhZ2UsIHdlIGFs c28gbXVzdAotbW9kaWZ5IG91ciAqdGFyZ2V0aW5zdGFsbCogc3RhZ2U6Ci0KLS4uIGNvZGUtYmxv Y2s6OiBtYWtlCi0KLSAgICAJQCQoY2FsbCBpbnN0YWxsX2NvcHksIGZvbywgMCwgMCwgMDc1NSwg JChGT09fRElSKS9mb28sIC91c3IvYmluL2ZvbykKLQotICAgIGlmZGVmIFBUWENPTkZfRk9PX0JB UgotICAgIAlAJChjYWxsIGluc3RhbGxfY29weSwgZm9vLCAwLCAwLCAwNzU1LCAkKEZPT19ESVIp L2JhciwgL3Vzci9iaW4vYmFyKQotICAgIGVuZGlmCi0KLSAgICAJQCQoY2FsbCBpbnN0YWxsX2Zp bmlzaCwgZm9vKQotICAgIAlAJChjYWxsIHRvdWNoKQotCi1Ob3cgd2UgY2FuIHBsYXkgd2l0aCBv dXIgbmV3IG1lbnUgZW50cmllcyBhbmQgY2hlY2sgaWYgdGhleSBhcmUgd29ya2luZwotYXMgZXhw ZWN0ZWQ6Ci0KLS4uIGNvZGUtYmxvY2s6OiB0ZXh0Ci0KLSAgICAkIHB0eGRpc3QgbWVudWNvbmZp ZwotICAgICQgcHR4ZGlzdCB0YXJnZXRpbnN0YWxsIGZvbwotCi1XaGVuZXZlciB3ZSBjaGFuZ2Ug YSAqRk9PKiByZWxhdGVkIG1lbnUgZW50cnksIFBUWGRpc3Qgc2hvdWxkIGRldGVjdCBpdAotYW5k IHJlLWJ1aWxkIHRoZSBwYWNrYWdlIHdoZW4gYSBuZXcgYnVpbGQgaXMgc3RhcnRlZC4KLQotLi4g X2V4dGVybmFsX2RlcGVuZGVuY2llczoKLQotTWFuYWdpbmcgRXh0ZXJuYWwgQ29tcGlsZSBUaW1l IERlcGVuZGVuY2llcwotXl5eXl5eXl5eXl5eXl5eXl5eXl5eXl5eXl5eXl5eXl5eXl5eXl5eXl5e XgotCi1XaGlsZSBydW5uaW5nIHRoZSBwcmVwYXJlIHN0YWdlLCBpdCBjb3VsZCBoYXBwZW4gdGhh dCBpdCBmYWlscyBkdWUgdG8gYQotbWlzc2luZyBleHRlcm5hbCBkZXBlbmRlbmN5LgotCi1Gb3Ig ZXhhbXBsZToKLQotLi4gY29kZS1ibG9jazo6IHRleHQKLQotICAgIGNoZWNraW5nIHdoZXRoZXIg emxpYiBleGlzdHMuLi4uZmFpbGVkCi0KLUluIHRoaXMgZXhhbXBsZSwgb3VyIG5ldyBwYWNrYWdl IGRlcGVuZHMgb24gdGhlIGNvbXByZXNzaW9uIGxpYnJhcnkKLSp6bGliKi4gUFRYZGlzdCBjb21l cyB3aXRoIGEgdGFyZ2V0ICp6bGliKi4gQWxsIHdlIG5lZWQgdG8gZG8gaW4gdGhpcwotY2FzZSBp cyB0byBkZWNsYXJlIHRoYXQgb3VyIG5ldyBwYWNrYWdlICpmb28qIGRlcGVuZHMgb24gKnpsaWIq LiBUaGlzCi1raW5kIG9mIGRlcGVuZGVuY3kgaXMgbWFuYWdlZCBpbiB0aGUgbWVudSBmaWxlIG9m IG91ciBuZXcgcGFja2FnZSBieQotc2ltcGx5IGFkZGluZyB0aGUgYGBzZWxlY3QgWkxJQmBgIGxp bmUuIEFmdGVyIHRoaXMgYWRkaXRpb24gb3VyIG1lbnUKLWZpbGUgbG9va3MgbGlrZToKLQotLi4g Y29kZS1ibG9jazo6IGtjb25maWcKLQotICAgICMjIFNFQ1RJT049cHJvamVjdF9zcGVjaWZpYwot Ci0gICAgY29uZmlnIEZPTwotICAgICAgICAgICB0cmlzdGF0ZQotICAgICAgICAgICBzZWxlY3Qg WkxJQgotICAgICAgICAgICBwcm9tcHQgImZvbyIKLSAgICAgICAgICAgaGVscAotICAgICAgICAg ICAgIEZJWE1FCi0KLSAgICBpZiBGT08KLSAgICBjb25maWcgRk9PX0RFQlVHCi0gICAgICAgICAg IGJvb2wKLSAgICAgICAgICAgcHJvbXB0ICJhZGQgZGVidWcgbm9pc2UiCi0KLSAgICBjb25maWcg Rk9PX0JBUgotICAgICAgICAgICBib29sCi0gICAgICAgICAgIHByb21wdCAiYnVpbGQgYmFyIgot Ci0gICAgZW5kaWYKLQotUFRYZGlzdCBub3cgYnVpbGRzIHRoZSAqemxpYiogZmlyc3QgYW5kIG91 ciBuZXcgcGFja2FnZSB0aGVyZWFmdGVyLgotCi1SZWZlciA6cmVmOmBleHRlcm5hbF9kZXBlbmRl bmNpZXNfdmFyaWFudHNgIGZvciBtb3JlIHNwZWNpZmljIGRlcGVuZGVuY3kKLWRlc2NyaXB0aW9u LgotCi1NYW5hZ2luZyBFeHRlcm5hbCBDb21waWxlIFRpbWUgRGVwZW5kZW5jaWVzIG9uIERlbWFu ZAotXl5eXl5eXl5eXl5eXl5eXl5eXl5eXl5eXl5eXl5eXl5eXl5eXl5eXl5eXl5eXl5eXl5eXl4K LQotSXQgaXMgZ29vZCBwcmFjdGljZSB0byBhZGQgb25seSB0aG9zZSBkZXBlbmRlbmNpZXMgdGhh dCBhcmUgcmVhbGx5Ci1yZXF1aXJlZCBmb3IgdGhlIGN1cnJlbnQgY29uZmlndXJhdGlvbiBvZiB0 aGUgcGFja2FnZS4gSWYgdGhlIHBhY2thZ2UKLXByb3ZpZGVzIHRoZSBmZWF0dXJlcyAqZm9vKiBh bmQgKmJhciogYW5kIGl0cyBgYGNvbmZpZ3VyZWBgIHByb3ZpZGVzCi1zd2l0Y2hlcyB0byBlbmFi bGUvZGlzYWJsZSB0aGVtIGluZGVwZW5kZW50bHksIHdlIGNhbiBhbHNvIGFkZAotZGVwZW5kZW5j aWVzIG9uIGRlbWFuZC4gTGV04oCZcyBhc3N1bWUgZmVhdHVyZSAqZm9vKiBuZWVkcyB0aGUgY29t cHJlc3Npb24KLWxpYnJhcnkgKmxpYnoqIGFuZCAqYmFyKiBuZWVkcyB0aGUgWE1MMiBsaWJyYXJ5 ICpsaWJ4bWwyKi4gVGhlc2UKLWxpYnJhcmllcyBhcmUgb25seSByZXF1aXJlZCBhdCBydW4tdGlt ZSBpZiB0aGUgY29ycmVzcG9uZGluZyBmZWF0dXJlIGlzCi1lbmFibGVkLiBUbyBhZGQgdGhlc2Ug ZGVwZW5kZW5jaWVzIG9uIGRlbWFuZCwgdGhlIG1lbnUgZmlsZSBsb29rcyBsaWtlOgotCi0uLiBj b2RlLWJsb2NrOjoga2NvbmZpZwotCi0gICAgIyMgU0VDVElPTj1wcm9qZWN0X3NwZWNpZmljCi0K LSAgICBjb25maWcgRk9PCi0gICAgICAgICAgIHRyaXN0YXRlCi0gICAgICAgICAgIHNlbGVjdCBa TElCIGlmIEZPT19GT08KLSAgICAgICAgICAgc2VsZWN0IExJQlhNTDIgaWYgRk9PX0JBUgotICAg ICAgICAgICBwcm9tcHQgImZvbyIKLSAgICAgICAgICAgaGVscAotICAgICAgICAgICAgIEZJWE1F Ci0KLSAgICBpZiBGT08KLSAgICBjb25maWcgRk9PX0RFQlVHCi0gICAgICAgICAgIGJvb2wKLSAg ICAgICAgICAgcHJvbXB0ICJhZGQgZGVidWcgbm9pc2UiCi0KLSAgICBjb25maWcgRk9PX0ZPTwot ICAgICAgICAgICBib29sCi0gICAgICAgICAgIHByb21wdCAiYnVpbGQgZm9vIgotCi0gICAgY29u ZmlnIEZPT19CQVIKLSAgICAgICAgICAgYm9vbAotICAgICAgICAgICBwcm9tcHQgImJ1aWxkIGJh ciIKLQotICAgIGVuZGlmCi0KLS4uIGltcG9ydGFudDo6IERvIG5vdCBhZGQgdGhlc2UgYGBzZWxl Y3RgYCBzdGF0ZW1lbnRzIHRvIHRoZSBjb3JyZXNwb25kaW5nIG1lbnUgZW50cnkuCi0gIFRoZXkg bXVzdCBiZWxvbmcgdG8gdGhlIG1haW4gbWVudSBlbnRyeSBvZiB0aGUgcGFja2FnZSB0byBlbnN1 cmUgdGhhdAotICB0aGUgY2FsY3VsYXRpb24gb2YgdGhlIGRlcGVuZGVuY2llcyBiZXR3ZWVuIHRo ZSBwYWNrYWdlcyBpcyBkb25lIGluIGEKLSAgY29ycmVjdCBtYW5uZXIuCi0KLU1hbmFnaW5nIEV4 dGVybmFsIFJ1bnRpbWUgRGVwZW5kZW5jaWVzCi1eXl5eXl5eXl5eXl5eXl5eXl5eXl5eXl5eXl5e Xl5eXl5eXl5eXgotCi1Tb21lIHBhY2thZ2VzIGFyZSBidWlsZGluZyBhbGwgb2YgdGhlaXIgY29t cG9uZW50cyBhbmQgYWxzbyBpbnN0YWxsaW5nCi10aGVtIGludG8gdGhlIHRhcmdldOKAmXMgc3lz cm9vdC4gQnV0IG9ubHkgdGhlaXIgKnRhcmdldGluc3RhbGwqIHN0YWdlCi1kZWNpZGVzIHdoaWNo IHBhcnRzIGFyZSBjb3BpZWQgdG8gdGhlIHJvb3QgZmlsZXN5c3RlbS4gU28sIGNvbXBpbGluZyBh bmQKLWxpbmtpbmcgb2Ygb3VyIHBhY2thZ2Ugd2lsbCB3b3JrLCBiZWNhdXNlIGV2ZXJ5dGhpbmcg cmVxdWlyZWQgaXMgZm91bmQKLWluIHRoZSB0YXJnZXTigJlzIHN5c3Jvb3QuCi0KLUluIG91ciBl eGFtcGxlIHRoZXJlIGlzIGEgaGlkZGVuIGRlcGVuZGVuY3kgdG8gdGhlIG1hdGggbGlicmFyeQot YGBsaWJtYGAuIE91ciBuZXcgcGFja2FnZSB3YXMgYnVpbHQgc3VjY2Vzc2Z1bGx5LCBiZWNhdXNl IHRoZSBsaW5rZXIgd2FzCi1hYmxlIHRvIGxpbmsgb3VyIGJpbmFyaWVzIGFnYWluc3QgdGhlIGBg bGlibWBgIGZyb20gdGhlIHRvb2xjaGFpbi4gQnV0Ci1pbiB0aGlzIGNhc2UgdGhlIGBgbGlibWBg IG11c3QgYWxzbyBiZSBhdmFpbGFibGUgaW4gdGhlIHRhcmdldOKAmXMgcm9vdAotZmlsZXN5c3Rl bSB0byBmdWxmaWxsIHRoZSBydW4tdGltZSBkZXBlbmRlbmN5OiBXZSBoYXZlIHRvIGZvcmNlIFBU WGRpc3QgdG8KLWluc3RhbGwgYGBsaWJtYGAuIGBgbGlibWBgIGlzIHBhcnQgb2YgdGhlICpnbGli YyogcGFja2FnZSwgYnV0IGlzIG5vdAotaW5zdGFsbGVkIGJ5IGRlZmF1bHQgKHRvIGtlZXAgdGhl IHJvb3QgZmlsZXN5c3RlbSBzbWFsbCkuIFNvLCBpdCAqKmRvZXMKLW5vdCoqIGhlbHAgdG8gc2Vs ZWN0IHRoZSBgYEdMSUJDYGAgc3ltYm9sLCB0byBnZXQgYSBgYGxpYm1gYCBhdCBydW4tdGltZS4K LQotVGhlIGNvcnJlY3Qgc29sdXRpb24gaGVyZSBpcyB0byBhZGQgYSBgYHNlbGVjdCBMSUJDX01g YCB0byBvdXIgbWVudQotZmlsZS4gV2l0aCBhbGwgdGhlIGFkZGl0aW9ucyBhYm92ZSBpdCBub3cg bG9va3MgbGlrZToKLQotLi4gY29kZS1ibG9jazo6IGtjb25maWcKLQotICAgICMjIFNFQ1RJT049 cHJvamVjdF9zcGVjaWZpYwotCi0gICAgY29uZmlnIEZPTwotICAgICAgICAgICB0cmlzdGF0ZQot ICAgICAgICAgICBzZWxlY3QgWkxJQiBpZiBGT09fRk9PCi0gICAgICAgICAgIHNlbGVjdCBMSUJY TUwyIGlmIEZPT19CQVIKLSAgICAgICAgICAgc2VsZWN0IExJQkNfTQotICAgICAgICAgICBwcm9t cHQgImZvbyIKLSAgICAgICAgICAgaGVscAotICAgICAgICAgICAgIEZJWE1FCi0KLSAgICBpZiBG T08KLSAgICBjb25maWcgRk9PX0RFQlVHCi0gICAgICAgICAgIGJvb2wKLSAgICAgICAgICAgcHJv bXB0ICJhZGQgZGVidWcgbm9pc2UiCi0KLSAgICBjb25maWcgRk9PX0ZPTwotICAgICAgICAgICBi b29sCi0gICAgICAgICAgIHByb21wdCAiYnVpbGQgZm9vIgotCi0gICAgY29uZmlnIEZPT19CQVIK LSAgICAgICAgICAgYm9vbAotICAgICAgICAgICBwcm9tcHQgImJ1aWxkIGJhciIKLQotICAgIGVu ZGlmCi0KLS4uIG5vdGU6OiBUaGVyZSBhcmUgb3RoZXIgcGFja2FnZXMgYXJvdW5kLCB0aGF0IGRv IG5vdCBpbnN0YWxsIGV2ZXJ5dGhpbmcgYnkKLSAgZGVmYXVsdC4gSWYgb3VyIG5ldyBwYWNrYWdl IG5lZWRzIHNvbWV0aGluZyBzcGVjaWFsLCB3ZSBtdXN0IHRha2UgYSBsb29rCi0gIGludG8gdGhl IG1lbnUgb2YgdGhlIG90aGVyIHBhY2thZ2UgaG93IHRvIGZvcmNlIHRoZSByZXF1aXJlZCBjb21w b25lbnRzCi0gIHRvIGJlIGluc3RhbGxlZCBhbmQgYWRkIHRoZSBjb3JyZXNwb25kaW5nIGBgc2Vs ZWN0c2BgIHRvIG91ciBvd24gbWVudQotICBmaWxlLiBJbiB0aGlzIGNhc2UgaXQgZG9lcyBub3Qg aGVscCB0byBlbmFibGUgdGhlIHJlcXVpcmVkIHBhcnRzIGluIG91cgotICBwcm9qZWN0IGNvbmZp Z3VyYXRpb24sIGJlY2F1c2UgdGhpcyBoYXMgbm8gZWZmZWN0IG9uIHRoZSBidWlsZCBvcmRlciEK LQotTWFuYWdpbmcgUGxhaW4gTWFrZWZpbGUgUGFja2FnZXMKLV5eXl5eXl5eXl5eXl5eXl5eXl5e Xl5eXl5eXl5eXl5eCi0KLU1hbnkgcGFja2FnZXMgYXJlIHN0aWxsIGNvbWluZyB3aXRoIGEgcGxh aW4gYGBNYWtlZmlsZWBgLiBUaGUgdXNlciBoYXMKLXRvIGFkYXB0IGl0IHRvIG1ha2UgaXQgd29y ayBpbiBhIGNyb3NzIGNvbXBpbGUgZW52aXJvbm1lbnQgYXMgd2VsbC4KLVBUWGRpc3QgY2FuIGFs c28gaGFuZGxlIHRoaXMga2luZCBvZiBwYWNrYWdlcy4gV2Ugb25seSBoYXZlIHRvIHNwZWNpZnkK LWEgc3BlY2lhbCAqcHJlcGFyZSogYW5kICpjb21waWxlKiBzdGFnZS4KLQotU3VjaCBwYWNrYWdl cyBvZnRlbiBoYXZlIG5vIHNwZWNpYWwgbmVlZCBmb3IgYW55IGtpbmQgb2YgcHJlcGFyYXRpb24u IEluCi10aGlzIHdlIG11c3QgaW5zdHJ1Y3QgUFRYZGlzdCB0byBkbyBub3RoaW5nIGluIHRoZSAq cHJlcGFyZSogc3RhZ2U6Ci0KLS4uIGNvZGUtYmxvY2s6OiBtYWtlCi0KLSAgICBGT09fQ09ORl9U T09MIDo9IE5PCi0KLVRvIGNvbXBpbGUgdGhlIHBhY2thZ2UsIHdlIGNhbiB1c2UgYGBtYWtlYGBc IOKAmXMgZmVhdHVyZSB0byBvdmVyd3JpdGUKLXZhcmlhYmxlcyB1c2VkIGluIHRoZSBgYE1ha2Vm aWxlYGAuIFdpdGggdGhpcyBmZWF0dXJlIHdlIGNhbiBzdGlsbCB1c2UKLXRoZSBvcmlnaW5hbCBg YE1ha2VmaWxlYGAgYnV0IHdpdGggb3VyIG93biAoY3Jvc3MgY29tcGlsZSkgc2V0dGluZ3MuCi0K LU1vc3Qgb2YgdGhlIHRpbWUgdGhlIGdlbmVyaWMgY29tcGlsZSBydWxlIGNhbiBiZSB1c2VkLCBv bmx5IGEgZmV3Ci1zZXR0aW5ncyBhcmUgcmVxdWlyZWQuIEZvciBhIHdlbGwgZGVmaW5lZCBgYE1h a2VmaWxlYGAgaXQgaXMgc3VmZmljaWVudCB0bwotc2V0IHVwIHRoZSBjb3JyZWN0IGNyb3NzIGNv bXBpbGUgZW52aXJvbm1lbnQgZm9yIHRoZSAqY29tcGlsZSogc3RhZ2U6Ci0KLS4uIGNvZGUtYmxv Y2s6OiBtYWtlCi0KLSAgICBGT09fTUFLRV9FTlYgOj0gJChDUk9TU19FTlYpCi0KLWBgbWFrZWBg IHdpbGwgYmUgY2FsbGVkIGluIHRoaXMgY2FzZSB3aXRoOgotCi1gYCQoRk9PX01BS0VfRU5WKSAk KE1BS0UpIC1DICQoRk9PX0RJUikgJChGT09fTUFLRV9PUFQpYGAKLQotU28sIGluIHRoZSBydWxl IGZpbGUgb25seSB0aGUgdHdvIHZhcmlhYmxlcyBgYEZPT19NQUtFX0VOVmBgIGFuZAotYGBGT09f TUFLRV9PUFRgYCBtdXN0IGJlIHNldCwgdG8gZm9yd2FyZCB0aGUgcmVxdWlyZWQgc2V0dGluZ3Mg dG8gdGhlCi1wYWNrYWdl4oCZcyBidWlsZHN5c3RlbS4gSWYgdGhlIHBhY2thZ2UgY2Fubm90IGJl IGJ1aWx0IGluIHBhcmFsbGVsLCB3ZQotY2FuIGFsc28gYWRkIHRoZSBgYEZPT19NQUtFX1BBUsKg Oj3CoE5PYGAuIGBgWUVTYGAgaXMgdGhlIGRlZmF1bHQuCi0KLU1hbmFnaW5nIENNYWtlL1FNYWtl L01lc29uIFBhY2thZ2VzCi1eXl5eXl5eXl5eXl5eXl5eXl5eXl5eXl5eXl5eXl5eXl5eXgotCi1C dWlsZGluZyBwYWNrYWdlcyB0aGF0IHVzZSBgYGNtYWtlYGAsIGBgcW1ha2VgYCBvciBgYG1lc29u YGAgaXMgbXVjaCBsaWtlCi1idWlsZGluZyBwYWNrYWdlcyB3aXRoIGFuIGF1dG90b29scyBiYXNl ZCBidWlsZHN5c3RlbS4gV2UgbmVlZCB0byBzcGVjaWZ5Ci10aGUgY29uZmlndXJhdGlvbiB0b29s OgotCi0uLiBjb2RlLWJsb2NrOjogbWFrZQotCi0gICAgRk9PX0NPTkZfVE9PTCA6PSBjbWFrZQot Ci1vcgotCi0uLiBjb2RlLWJsb2NrOjogbWFrZQotCi0gICAgRk9PX0NPTkZfVE9PTCA6PSBxbWFr ZQotCi1vciByZXNwZWN0aXZlbHkKLQotLi4gY29kZS1ibG9jazo6IG1ha2UKLQotICAgIEZPT19D T05GX1RPT0wgOj0gbWVzb24KLQotQW5kIHByb3ZpZGUgdGhlIGNvcnJlY3QgY29uZmlndXJhdGlv biBvcHRpb25zLiBUaGUgc3ludGF4IGlzIGRpZmZlcmVudCBzbwotUFRYZGlzdCBwcm92aWRlcyBh ZGRpdGlvbmFsIG1hY3JvcyB0byBzaW1wbGlmeSBjb25maWd1cmFibGUgZmVhdHVyZXMuCi1Gb3Ig YGBjbWFrZWBgIHRoZSBjb25maWd1cmF0aW9uIG9wdGlvbnMgdHlwaWNhbGx5IGxvb2sgbGlrZSB0 aGlzOgotCi0uLiBjb2RlLWJsb2NrOjogbWFrZQotCi0gICAgRk9PX0NPTkZfT1BUIDo9IFwKLSAg ICAJJChDUk9TU19DTUFLRV9VU1IpIFwKLSAgICAJLURCVUlMRF9URVNUUzpCT09MPU9GRiBcCi0g ICAgCS1ERU5BQkxFX0JBUjpCT09MPSQoY2FsbCBwdHgvb25vZmYsIFBUWENPTkZfRk9PX0JBUikK LQotRm9yIGBgcW1ha2VgYCB0aGUgY29uZmlndXJhdGlvbiBvcHRpb25zIHR5cGljYWxseSBsb29r IGxpa2UgdGhpczoKLQotLi4gY29kZS1ibG9jazo6IG1ha2UKLQotICAgIEZPT19DT05GX09QVCA6 PSBcCi0gICAgCSQoQ1JPU1NfUU1BS0VfT1BUKSBcCi0gICAgCVBSRUZJWD0vdXNyCi0KLUFuZCBm b3IgYGBtZXNvbmBgIHRoZSBjb25maWd1cmF0aW9uIG9wdGlvbnMgdHlwaWNhbGx5IGxvb2sgbGlr ZSB0aGlzOgotCi0uLiBjb2RlLWJsb2NrOjogbWFrZQotCi0gICAgRk9PX0NPTkZfT1BUIDo9IFwK LSAgICAJJChDUk9TU19NRVNPTl9VU1IpIFwKLSAgICAJLURiYXI9JChjYWxsIHB0eC90cnVlZmFs c2UsUFRYQ09ORl9GT09fQkFSKQotCi1QbGVhc2Ugbm90ZSB0aGF0IGN1cnJlbnRseSBvbmx5IGhv c3QgYW5kIHRhcmdldCBgYGNtYWtlYGBcL2BgbWVzb25gYCBwYWNrYWdlcwotYW5kIG9ubHkgdGFy Z2V0IGBgcW1ha2VgYCBwYWNrYWdlcyBhcmUgc3VwcG9ydGVkLgotCi1NYW5hZ2luZyBQeXRob24g UGFja2FnZXMKLV5eXl5eXl5eXl5eXl5eXl5eXl5eXl5eXgotCi1BcyB3aXRoIGFueSBvdGhlciBw YWNrYWdlLCB0aGUgY29ycmVjdCBjb25maWd1cmF0aW9uIHRvb2wgbXVzdCBiZSBzZWxlY3RlZAot Zm9yIFB5dGhvbiBwYWNrYWdlczoKLQotLi4gY29kZS1ibG9jazo6IG1ha2UKLQotICAgIEZPT19D T05GX1RPT0wgOj0gcHl0aG9uCi0KLS4uIG5vdGU6OiBGb3IgUHl0aG9uMyBwYWNrYWdlcyB0aGUg dmFsdWUgbXVzdCBiZSBgYHB5dGhvbjNgYC4KLQotTm8gTWFrZWZpbGVzIGFyZSB1c2VkIHdoZW4g YnVpbGRpbmcgUHl0aG9uIHBhY2thZ2VzIHNvIHRoZSB1c3VhbCBgYG1ha2VgYAotYW5kIGBgbWFr ZSBpbnN0YWxsYGAgZm9yIHRoZSAqY29tcGlsZSogYW5kICppbnN0YWxsKiBzdGFnZXMgY2Fubm90 IGJlIHVzZWQuCi1QVFhkaXN0IHdpbGwgY2FsbCBgYHB5dGhvbiBzZXR1cC5weSBidWlsZGBgIGFu ZCBgYHB5dGhvbiBzZXR1cC5weSBpbnN0YWxsYGAKLWluc3RlYWQuCi0KLS4uIG5vdGU6OiAqRk9P KiBpcyBzdGlsbCB0aGUgbmFtZSBvZiBvdXIgZXhhbXBsZSBwYWNrYWdlLiBJdCBtdXN0IGJlCi0g IHJlcGxhY2VkIGJ5IHRoZSByZWFsIHBhY2thZ2UgbmFtZS4KLQotCi0uLiBfcGF0Y2hpbmdfcGFj a2FnZXM6Ci0KLVBhdGNoaW5nIFBhY2thZ2VzCi1+fn5+fn5+fn5+fn5+fn5+fgotCi1UaGVyZSBj YW4gYmUgdmFyaW91cyByZWFzb25zIHdoeSBhIHBhY2thZ2UgbXVzdCBiZSBwYXRjaGVkOgotCi0t ICBQYWNrYWdlIGlzIGJyb2tlbiBmb3IgY3Jvc3MgY29tcGlsZSBlbnZpcm9ubWVudHMKLQotLSAg UGFja2FnZSBpcyBicm9rZW4gd2l0aGluIGEgc3BlY2lmaWMgZmVhdHVyZQotCi0tICBQYWNrYWdl IGlzIHZ1bG5lcmFibGUgYW5kIG5lZWRzIHNvbWUgZml4ZXMKLQotLSAgb3IgYW55dGhpbmcgZWxz ZSAodGhpcyBjYXNlIGlzIHRoZSBtb3N0IGNvbW1vbiBvbmUpCi0KLUlkZWFsbHksIHRob3NlIHBy b2JsZW1zIHNob3VsZCBiZSBhZGRyZXNzZWQgaW4gdGhlIG9yaWdpbmFsIHByb2plY3QsCi1zbyBh bnkgcGF0Y2hlcyB5b3UgYWRkIHRvIHlvdXIgQlNQIG9yIHRvIFBUWGRpc3Qgc2hvdWxkIGFsc28g YmUgc3VibWl0dGVkIHVwc3RyZWFtLgotVGhlIHVwc3RyZWFtIHByb2plY3QgY2FuIG9mdGVuIHBy b3ZpZGUgYmV0dGVyIGZlZWRiYWNrLCB0aGV5IGNhbiBpbnRlZ3JhdGUgeW91cgotcGF0Y2ggaW50 byBhIG5ldyByZWxlYXNlLCBhbmQgYWxzbyBtYWludGFpbiB5b3VyIGNoYW5nZXMgYXMgcGFydCBv ZiB0aGUgcHJvamVjdC4KLVRoaXMgd2F5IHdlIG1ha2Ugc3VyZSB0aGF0IGFsbCBhZHZhbnRhZ2Vz IG9mIHRoZSBvcGVuIHNvdXJjZSBpZGVhIHdvcmsgZm9yIHVzOwotYW5kIHlvdXIgcGF0Y2ggY2Fu IGJlIHJlbW92ZWQgYWdhaW4gbGF0ZXIgd2hlbiBhIG5ldyByZWxlYXNlIG9mIHRoZSBwcm9qZWN0 IGlzCi1pbnRlZ3JhdGVkIGludG8geW91ciBCU1Agb3IgaW50byBQVFhkaXN0LgotCi1QVFhkaXN0 IGhhbmRsZXMgcGF0Y2hpbmcgYXV0b21hdGljYWxseS4KLUFmdGVyIGV4dHJhY3RpbmcgdGhlIGFy Y2hpdmUgb2YgYSBwYWNrYWdlLCBQVFhkaXN0IGNoZWNrcyBmb3IgdGhlIGV4aXN0ZW5jZSBvZgot YSBwYXRjaCBkaXJlY3RvcnkgbmFtZWQgbGlrZSBpdHMgYGA8UEtHPl9QQVRDSEVTYGAgdmFyaWFi bGUsIG9yLCBpZiB0aGlzIHZhcmlhYmxlCi1pcyBub3Qgc2V0LCBsaWtlIGl0cyBgYDxQS0c+YGAg dmFyaWFibGUuCi1UaGUgcGF0Y2ggZGlyZWN0b3J5IGlzIHRoZW4gc2VhcmNoZWQgaW4gYWxsIGxv Y2F0aW9ucyBsaXN0ZWQgYnkgdGhlCi1gYFBUWERJU1RfUEFUSF9QQVRDSEVTYGAgdmFyaWFibGUs IGFuZCB0aGUgZmlyc3Qgb25lIGZvdW5kIGlzIHVzZWQuCi1UYWtlIGFuIGV4ZW1wbGFyeSBwYWNr YWdlIGBgZm9vYGAgd2l0aCB2ZXJzaW9uIGBgMS4xLjBgYDoKLVRoZSB2YXJpYWJsZSBgYEZPT2Bg IHdpbGwgaGF2ZSB0aGUgdmFsdWUgYGBmb28tMS4xLjBgYCwgc28gUFRYZGlzdCB3aWxsIGxvb2sg Zm9yCi1hIHBhdGNoIGRpcmVjdG9yeSBuYW1lZCBgYGZvby0xLjEuMGBgIGluIHRoZSBmb2xsb3dp bmcgbG9jYXRpb25zOgotCi0jLiB0aGUgY3VycmVudCBsYXllcjoKLQotICAgYS4gcHJvamVjdCAo YGAuL3BhdGNoZXMvZm9vLTEuMS4wYGApCi0gICBiLiBwbGF0Zm9ybSAoYGAuL2NvbmZpZ3MvfHB0 eGRpc3RQbGF0Zm9ybUNvbmZpZ0RpcnwvcGF0Y2hlcy9mb28tMS4xLjBgYCkKLQotIy4gYW55IDpy ZWY6YGJhc2UgbGF5ZXJzIDxsYXllcnMtaW4tcHR4ZGlzdD5gLAotICAgYXBwbHlpbmcgdGhlIHNh bWUgc2VhcmNoIG9yZGVyIGFzIGFib3ZlIGZvciBlYWNoIGxheWVyIHJlY3Vyc2l2ZWx5Ci0KLSMu IHB0eGRpc3QgKGBgPHB0eGRpc3QvaW5zdGFsbGF0aW9uL3BhdGg+L3BhdGNoZXMvZm9vLTEuMS4w YGApCi0KLVRoZSBwYXRjaGVzIGZyb20gdGhlIGZpcnN0IGxvY2F0aW9uIGZvdW5kIGFyZSB1c2Vk LiBOb3RlOiBEdWUgdG8gdGhpcwotc2VhcmNoIG9yZGVyLCBhIFBUWGRpc3QgcHJvamVjdCBjYW4g cmVwbGFjZSBnbG9iYWwgcGF0Y2hlcyBmcm9tIHRoZQotUFRYZGlzdCBpbnN0YWxsYXRpb24uIFRo aXMgY2FuIGJlIHVzZWZ1bCBpZiBhIHByb2plY3Qgc3RpY2tzIHRvIGEKLXNwZWNpZmljIFBUWGRp c3QgcmV2aXNpb24gYnV0IGZpeGVzIGZyb20gYSBtb3JlIHJlY2VudCByZXZpc2lvbiBvZgotUFRY ZGlzdCBzaG91bGQgYmUgdXNlZC4KLQotUFRYZGlzdCB1c2VzIHRoZSB1dGlsaXRpZXMgKmdpdCos ICpwYXRjaCogb3IgKnF1aWx0KiB0byB3b3JrIHdpdGgKLXBhdGNoZXMgb3IgcGF0Y2ggc2VyaWVz LiBXZSByZWNvbW1lbmQgKmdpdCosIGFzIGl0IGNhbiBtYW5hZ2UgcGF0Y2gKLXNlcmllcyBpbiBh IHZlcnkgZWFzeSB3YXkuCi0KLUNyZWF0aW5nIGEgUGF0Y2ggU2VyaWVzIGZvciBhIFBhY2thZ2UK LV5eXl5eXl5eXl5eXl5eXl5eXl5eXl5eXl5eXl5eXl5eXl5eXl4KLQotVG8gY3JlYXRlIGEgcGF0 Y2ggc2VyaWVzIGZvciB0aGUgZmlyc3QgdGltZSwgd2UgY2FuIHJ1biB0aGUgZm9sbG93aW5nCi1z dGVwcy4gV2UgYXJlIHN0aWxsIHVzaW5nIG91ciAqZm9vLTEuMS4wKiBleGFtcGxlIHBhY2thZ2Ug aGVyZToKLQotVXNpbmcgUXVpbHQKLSIiIiIiIiIiIiIiCi0KLVdlIGNyZWF0ZSBhIHNwZWNpYWwg ZGlyZWN0b3J5IGZvciB0aGUgcGF0Y2ggc2VyaWVzIGluIHRoZSBsb2NhbCBwcm9qZWN0Ci1kaXJl Y3Rvcnk6Ci0KLS4uIGNvZGUtYmxvY2s6OiB0ZXh0Ci0KLSAgICAkIG1rZGlyIC1wIHBhdGNoZXMv Zm9vLTEuMS4wCi0KLVBUWGRpc3QgZXhwZWN0cyBhIGBgc2VyaWVzYGAgZmlsZSBpbiB0aGUgcGF0 Y2ggZGlyZWN0b3J5IGFuZCBhdCBsZWFzdAotb25lIHBhdGNoLiBPdGhlcndpc2UgaXQgZmFpbHMu IER1ZSB0byB0aGUgZmFjdCB0aGF0IHdlIGRvIG5vdCBoYXZlIGFueQotcGF0Y2ggY29udGVudCB5 ZXQsIHdl4oCZbGwgc3RhcnQgd2l0aCBhIGR1bW15IGVudHJ5IGluIHRoZSBgYHNlcmllc2BgIGZp bGUKLWFuZCBhbiBlbXB0eSBgYHBhdGNoYGAgZmlsZS4KLQotLi4gY29kZS1ibG9jazo6IHRleHQK LQotICAgICQgdG91Y2ggcGF0Y2hlcy9mb28tMS4xLjAvZHVtbXkKLSAgICAkIGVjaG8gZHVtbXkg PiBwYXRjaGVzL2Zvby0xLjEuMC9zZXJpZXMKLQotTmV4dCBpcyB0byBleHRyYWN0IHRoZSBwYWNr YWdlIChpZiBhbHJlYWR5IGRvbmUsIHdlIG11c3QgcmVtb3ZlIGl0Ci1maXJzdCk6Ci0KLS4uIGNv ZGUtYmxvY2s6OiB0ZXh0Ci0KLSAgICAkIHB0eGRpc3QgZXh0cmFjdCBmb28KLQotVGhpcyB3aWxs IGV4dHJhY3QgdGhlIGFyY2hpdmUgYW5kIGNyZWF0ZSBhIHN5bWJvbGljIGxpbmsgaW4gdGhlIGJ1 aWxkCi1kaXJlY3RvcnkgcG9pbnRpbmcgdG8gb3VyIGxvY2FsIHBhdGNoIGRpcmVjdG9yeS4gV29y a2luZyB0aGlzIHdheSB3aWxsCi1lbnN1cmUgdGhhdCB3ZSBkbyBub3QgbG9zZSBvdXIgY3JlYXRl ZCBwYXRjaGVzIGlmIHdlIGVudGVyCi1gYHB0eGRpc3QgY2xlYW4gZm9vYGAgYnkgYWNjaWRlbnQu IEluIG91ciBjYXNlIHRoZSBwYXRjaGVzIGFyZSBzdGlsbAotcHJlc2VudCBpbiBgYHBhdGNoZXMv Zm9vLTEuMS4wYGAgYW5kIGNhbiBiZSB1c2VkIHRoZSBuZXh0IHRpbWUgd2UKLWV4dHJhY3QgdGhl IHBhY2thZ2UgYWdhaW4uCi0KLUFsbCB3ZSBoYXZlIHRvIGRvIG5vdyBpcyB0byBkbyB0aGUgbW9k aWZpY2F0aW9uIHdlIG5lZWQgdG8gbWFrZSB0aGUKLXBhY2thZ2Ugd29yay4gV2UgY2hhbmdlIGlu dG8gdGhlIGJ1aWxkIGRpcmVjdG9yeSBhbmQgdXNlIHF1aWx0XyB0bwotY3JlYXRlIG5ldyBwYXRj aGVzLCBhZGQgZmlsZXMgdG8gcmVzcGVjdGl2ZSBwYXRjaGVzLCBtb2RpZnkgdGhlc2UgZmlsZXMK LWFuZCByZWZyZXNoIHRoZSBwYXRjaGVzIHRvIHNhdmUgb3VyIGNoYW5nZXMuCi1TZWUgdGhlICpx dWlsdCogZG9jdW1lbnRhdGlvbiAoYGBtYW4gMSBxdWlsdGBgKSBmb3IgbW9yZSBpbmZvcm1hdGlv bi4KLQotLi4gbm90ZTo6IEZvciBwYXRjaGVzIHRoYXQgYXJlIGludGVuZGVkIGZvciBQVFhkaXN0 IHVwc3RyZWFtIHVzZSB0aGUgZ2l0Ci0gIHdvcmtmbG93IGRlc2NyaWJlZCBiZWxvdyB0byBnZXQg cHJvcGVyIHBhdGNoIGhlYWRlcnMuCi0KLS4uIF9xdWlsdDogaHR0cDovL3NhdmFubmFoLm5vbmdu dS5vcmcvcHJvamVjdHMvcXVpbHQKLQotVXNpbmcgR2l0Ci0iIiIiIiIiIiIKLQotQ3JlYXRlIHRo ZSBwYXRjaCBkaXJlY3RvcnkgbGlrZSBhYm92ZSBmb3IgKnF1aWx0KiwKLWJ1dCBvbmx5IGFkZCBh biBlbXB0eSBzZXJpZXMgZmlsZToKLQotLi4gY29kZS1ibG9jazo6IHRleHQKLQotICAgICQgbWtk aXIgLXAgcGF0Y2hlcy9mb28tMS4xLjAKLSAgICAkIHRvdWNoIHBhdGNoZXMvZm9vLTEuMS4wL3Nl cmllcwotCi1UaGVuIGV4dHJhY3QgdGhlIHBhY2thZ2Ugd2l0aCBhbiBhZGRpdGlvbmFsIGNvbW1h bmQgbGluZSBzd2l0Y2g6Ci0KLS4uIGNvZGUtYmxvY2s6OiB0ZXh0Ci0KLSAgICAkIHB0eGRpc3Qg LS1naXQgZXh0cmFjdCBmb28KLQotVGhlIGVtcHR5IHNlcmllcyBmaWxlIG1ha2VzIFBUWGRpc3Qg Y3JlYXRlIGEgR2l0IHJlcG9zaXRvcnkgaW4gdGhlCi1yZXNwZWN0aXZlIHBhY2thZ2UgYnVpbGQg ZGlyZWN0b3J5LAotYW5kIGltcG9ydCB0aGUgcGFja2FnZSBzb3VyY2UgYXMgdGhlIGZpcnN0IGNv bW1pdC4KLQotLi4gbm90ZTo6IE9wdGlvbmFsbHksIHlvdSBjYW4gZW5hYmxlIHRoZSBzZXR0aW5n ICpEZXZlbG9wZXIgT3B0aW9ucyDihpIKLSAgdXNlIGdpdCB0byBhcHBseSBwYXRjaGVzKiBpbiBg cHR4ZGlzdCBzZXR1cGAgdG8gZ2V0IHRoaXMgYmVoYXZpb3VyCi0gIGFzIGEgZGVmYXVsdCBmb3Ig ZXZlcnkgcGFja2FnZS4KLSAgSG93ZXZlciwgbm90ZSB0aGF0IHRoaXMgc2V0dGluZyBpcyBtZWFu dCBmb3IgZGV2ZWxvcG1lbnQgb25seSwgYW5kIGNhbiBsZWFkCi0gIHRvIGZhaWx1cmVzIOKAkyBz b21lIHBhY2thZ2VzIHRyeSB0byBkZXRlcm1pbmUgaWYgdGhleSBhcmUgYmVpbmcgY29tcGlsZWQg ZnJvbQotICBhIEdpdCBzb3VyY2UgdHJlZSwgYW5kIGJlaGF2ZSBkaWZmZXJlbnRseSBpbiB0aGF0 IGNhc2UuCi0KLVRoZW4geW91IGNhbiBjaGFuZ2UgaW50byB0aGUgcGFja2FnZSBidWlsZCBkaXJl Y3RvcnkKLShgYHBsYXRmb3JtLTxuYW1lPi9idWlsZC10YXJnZXQvZm9vLTEuMS4wYGApLAotcGF0 Y2ggdGhlIHJlcXVpcmVkIHNvdXJjZSBmaWxlcywKLWFuZCBtYWtlIEdpdCBjb21taXRzIG9uIHRo ZSB3YXkuCi1UaGUgR2l0IGhpc3Rvcnkgc2hvdWxkIG5vdyBsb29rIHNvbWV0aGluZyBsaWtlIHRo aXM6Ci0KLS4uIGNvZGUtYmxvY2s6OiB0ZXh0Ci0KLSAgICAkIGdpdCBsb2cgLS1vbmVsaW5lIC0t ZGVjb3JhdGUKLSAgICAqIGRmMzQzZTgyMTg1MSAoSEVBRCAtPiBtYXN0ZXIpIE1ha2VmaWxlOiBk b24ndCBidWlsZCB0aGUgdGVzdHMKLSAgICAqIDY1YTM2MGMyYmQ2MCBzdHJmcnkuYzogZnJvYm5p Y2F0ZSB0aGUgZXhjdXNhdG9yCi0gICAgKiBmZGMzMTVmNjg0NGMgKHRhZzogZm9vYmFyLTEuMS4w LCB0YWc6IGJhc2UpIGluaXRpYWwgY29tbWl0Ci0KLUZpbmFsbHksIGNhbGwgYGBnaXQgcHR4LXBh dGNoZXNgYCB0byB0cmFuc2Zvcm0gdGhvc2UgR2l0IGNvbW1pdHMgaW50byB0aGUgcGF0Y2gKLXNl cmllcyBpbiB0aGUgYGBwYXRjaGVzL2Zvby0xLjEuMGBgIGZvbGRlci4KLVRoaXMgd2F5IHRoZXkg ZG9uJ3QgZ2V0IGxvc3Qgd2hlbiBjbGVhbmluZyB0aGUgcGFja2FnZS4KLQotLi4gbm90ZTo6IFBU WGRpc3Qgd2lsbCBvbmx5IGNyZWF0ZSBhIEdpdCByZXBvc2l0b3J5IGZvciBwYWNrYWdlcyB3aXRo Ci0gIHBhdGNoZXMuICBUbyB1c2UgR2l0IHRvIGdlbmVyYXRlIHRoZSBmaXJzdCBwYXRjaCwgY3Jl YXRlIGFuIGVtcHR5IHNlcmllcwotICBmaWxlIGBgcGF0Y2hlcy9mb29iYXItMS4xLjAvc2VyaWVz YGAgYmVmb3JlIGV4dHJhY3RpbmcgdGhlIHBhY2thZ2VzLiBUaGlzCi0gIHdpbGwgdGVsbCBQVFhk aXN0IHRvIHVzZSBHaXQgYW55d2F5cyBhbmQgYGBnaXQgcHR4LXBhdGNoZXNgYCB3aWxsIHB1dCB0 aGUKLSAgcGF0Y2hlcyB0aGVyZS4KLQotQm90aCBhcHByb2FjaGVzIChHaXQgYW5kIHF1aWx0KSBh cmUgbm90IHN1aXRhYmxlIGZvciBtb2RpZnlpbmcgZmlsZXMKLXRoYXQgYXJlIGF1dG9nZW5lcmF0 ZWQgaW4gYXV0b3Rvb2xzLWJhc2VkIGJ1aWxkc3lzdGVtcy4KLVJlZmVyIHRvIHRoZSBzZWN0aW9u IDpyZWY6YGNvbmZpZ3VyZV9yZWJ1aWxkYCBvbiBob3cgUFRYZGlzdCBjYW4KLWhhbmRsZSB0aGlz IHNwZWNpYWwgdGFzay4KLQotQWRkaW5nIE1vcmUgUGF0Y2hlcyB0byBhIFBhY2thZ2UKLV5eXl5e Xl5eXl5eXl5eXl5eXl5eXl5eXl5eXl5eXl5eCi0KLUlmIHdlIHdhbnQgdG8gYWRkIG1vcmUgcGF0 Y2hlcyB0byBhbiBhbHJlYWR5IHBhdGNoZWQgcGFja2FnZSwgd2UgY2FuIHVzZQotbmVhcmx5IHRo ZSBzYW1lIHdheSBhcyBjcmVhdGluZyBwYXRjaGVzIGZvciB0aGUgZmlyc3QgdGltZS4gQnV0IGlm IHRoZQotcGF0Y2ggc2VyaWVzIGNvbWVzIGZyb20gdGhlIFBUWGRpc3QgbWFpbiBpbnN0YWxsYXRp b24sIHdlIGRvIG5vdCBoYXZlCi13cml0ZSBwZXJtaXNzaW9ucyB0byB0aGVzZSBkaXJlY3Rvcmll cyAoZG8gTkVWRVIgd29yayBvbiB0aGUgbWFpbgotaW5zdGFsbGF0aW9uIGRpcmVjdG9yaWVzLCBO RVZFUiwgTkVWRVIsIE5FVkVSKS4gRHVlIHRvIHRoZSBzZWFyY2ggb3JkZXIKLWluIHdoaWNoIFBU WGRpc3Qgc2VhcmNoZXMgZm9yIHBhdGNoZXMgZm9yIGEgc3BlY2lmaWMgcGFja2FnZSwgd2UgY2Fu Ci1jb3B5IHRoZSBnbG9iYWwgcGF0Y2ggc2VyaWVzIHRvIG91ciBsb2NhbCBwcm9qZWN0IGRpcmVj dG9yeS4gTm93IHdlIGhhdmUKLXRoZSBwZXJtaXNzaW9ucyB0byBhZGQgbW9yZSBwYXRjaGVzIG9y IG1vZGlmeSB0aGUgZXhpc3Rpbmcgb25lcy4gQWxzbwotKnF1aWx0KiBhbmQgKmdpdCogYXJlIG91 ciBmcmllbmRzIGhlcmUgdG8gbWFuYWdlIHRoZSBwYXRjaCBzZXJpZXMuCi0KLUlmIHdlIHRoaW5r IHRoYXQgb3VyIG5ldyBwYXRjaGVzIGFyZSB2YWx1YWJsZSBhbHNvIGZvciBvdGhlcnMsIG9yIHRo ZXkKLWZpeCBhbiBlcnJvciwgaXQgY291bGQgYmUgYSBnb29kIGlkZWEgdG8gc2VuZCB0aGVzZSBw YXRjaGVzIHRvIFBUWGRpc3QKLW1haW5saW5lLCBhbmQgdG8gdGhlIHVwc3RyZWFtIHByb2plY3Qg dG9vLgotCi0KLS4uIF9jb25maWd1cmVfcmVidWlsZDoKLQotTW9kaWZ5aW5nIEF1dG90b29saXpl ZCBQYWNrYWdlcwotXl5eXl5eXl5eXl5eXl5eXl5eXl5eXl5eXl5eXl5eXgotCi1BdXRvdG9vbGl6 ZWQgcGFja2FnZXMgYXJlIHZlcnkgcGlja3kgd2hlbiBhdXRvbWF0aWNhbGx5IGdlbmVyYXRlZCBm aWxlcwotZ2V0IHBhdGNoZWQuIFRoZSBwYXRjaCBvcmRlciBpcyB2ZXJ5IGltcG9ydGFudCBpbiB0 aGlzIGNhc2UgYW5kCi1zb21ldGltZXMgaXQgZXZlbiBmYWlscyBhbmQgbm9ib2R5IGtub3dzIHdo eS4KLQotVG8gaW1wcm92ZSBhIHBhY2thZ2XigJlzIGF1dG90b29scy1iYXNlZCBidWlsZCBzeXN0 ZW0sIFBUWGRpc3QgY29tZXMgd2l0aAotaXRzIG93biBwcm9qZWN0IGxvY2FsIGF1dG90b29scyB0 byByZWdlbmVyYXRlIHRoZSBhdXRvdG9vbHMgdGVtcGxhdGUKLWZpbGVzLCBpbnN0ZWFkIG9mIHBh dGNoaW5nIHRoZW0uIFdpdGggdGhpcyBmZWF0dXJlLCBvbmx5IHRoZSB0ZW1wbGF0ZQotZmlsZXMg bXVzdCBiZSBwYXRjaGVkLCB0aGUgcmVxdWlyZWQgYGBjb25maWd1cmVgYCBzY3JpcHQgYW5kIHRo ZQotYGBNYWtlZmlsZS5pbmBgIGZpbGVzIGFyZSByZWdlbmVyYXRlZCBpbiB0aGUgZmluYWwgc3Rh Z2VzIG9mIHRoZQotKnByZXBhcmUqIHN0ZXAuCi0KLVRoaXMgZmVhdHVyZSB3b3JrcyBsaWtlIHRo ZSByZWd1bGFyIHBhdGNoaW5nIG1lY2hhbmlzbS4gVGhlIG9ubHkKLWRpZmZlcmVuY2UgaXMgdGhl IGFkZGl0aW9uYWwgYGBhdXRvZ2VuLnNoYGAgZmlsZSBpbiB0aGUgcGF0Y2ggZGlyZWN0b3J5Lgot SWYgaXQgZXhpc3RzIGFuZCBoYXMgZXhlY3V0aW9uIHBlcm1pc3Npb25zLCBpdCB3aWxsIGJlIGNh bGxlZCBhZnRlciB0aGUKLXBhY2thZ2Ugd2FzIHBhdGNoZWQgKHdoaWxlIHRoZSAqZXh0cmFjdCog c3RhZ2UgaXMgcnVubmluZykuCi0KLUl0cyBjb250ZW50IGRlcGVuZHMgb24gZGV2ZWxvcGVyIG5l ZWRzOyBmb3IgdGhlIG1vc3Qgc2ltcGxlIGNhc2UgdGhlCi1jb250ZW50IGNhbiBiZToKLQotLi4g Y29kZS1ibG9jazo6IGJhc2gKLQotICAgICMhL2Jpbi9iYXNoCi0KLSAgICBhY2xvY2FsICRBQ0xP Q0FMX0ZMQUdTCi0KLSAgICBsaWJ0b29saXplIFwKLSAgICAgICAgICAgIC0tZm9yY2UgXAotICAg ICAgICAgICAgLS1jb3B5Ci0KLSAgICBhdXRvcmVjb25mIFwKLSAgICAgICAgICAgIC0tZm9yY2Ug XAotICAgICAgICAgICAgLS1pbnN0YWxsIFwKLSAgICAgICAgICAgIC0td2FybmluZ3M9Y3Jvc3Mg XAotICAgICAgICAgICAgLS13YXJuaW5ncz1zeW50YXggXAotICAgICAgICAgICAgLS13YXJuaW5n cz1vYnNvbGV0ZSBcCi0gICAgICAgICAgICAtLXdhcm5pbmdzPXVuc3VwcG9ydGVkCi0KLS4uIG5v dGU6OiBJbiB0aGlzIHdheSBub3QgeWV0IGF1dG90b29saXplZCBwYWNrYWdlIGNhbiBiZSBhdXRv dG9vbGl6ZWQuIFdlCi0gIGp1c3QgaGF2ZSB0byBhZGQgdGhlIGNvbW1vbiBhdXRvdG9vbCB0ZW1w bGF0ZSBmaWxlcyAoYGBjb25maWd1cmUuYWNgYAotICBhbmQgYGBNYWtlZmlsZS5hbWBgIGZvciBl eGFtcGxlKSB2aWEgYSBwYXRjaCBzZXJpZXMgdG8gdGhlIHBhY2thZ2UKLSAgc291cmNlIGFuZCB0 aGUgYGBhdXRvZ2VuLnNoYGAgdG8gdGhlIHBhdGNoIGRpcmVjdG9yeS4KZGlmZiAtLWdpdCBhL2Rv Yy9kZXZfYWR2YW5jZWRfcnVsZV9maWxlcy5yc3QgYi9kb2MvZGV2X2FkdmFuY2VkX3J1bGVfZmls ZXMucnN0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMC4uNzk0YmQxNDhj YmFlCi0tLSAvZGV2L251bGwKKysrIGIvZG9jL2Rldl9hZHZhbmNlZF9ydWxlX2ZpbGVzLnJzdApA QCAtMCwwICsxLDQ2MyBAQAorKioqKioqKioqKioqKioqKioqKgorQWR2YW5jZWQgUnVsZSBGaWxl cworKioqKioqKioqKioqKioqKioqKgorCitUaGUgcHJldmlvdXMgZXhhbXBsZSBvbiBob3cgdG8g Y3JlYXRlIGEgcnVsZSBmaWxlIHNvbWV0aW1lcyB3b3JrcyBhcworc2hvd24gYWJvdmUuIEJ1dCBt b3N0IG9mIHRoZSB0aW1lIHNvdXJjZSBhcmNoaXZlcyBhcmUgbm90IHRoYXQgc2ltcGxlLgorSW4g dGhpcyBzZWN0aW9uIHdlIHdhbnQgdG8gZ2l2ZSB0aGUgdXNlciBhIG1vcmUgZGV0YWlsZWQgc2Vs ZWN0aW9uIGhvdwordGhlIHBhY2thZ2Ugd2lsbCBiZSBidWlsdC4KKworQWRkaW5nIFN0YXRpYyBD b25maWd1cmUgUGFyYW1ldGVycworPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQor CitUaGUgYGBjb25maWd1cmVgYCBzY3JpcHRzIG9mIHZhcmlvdXMgc291cmNlIGFyY2hpdmVzIHBy b3ZpZGUgYWRkaXRpb25hbAorcGFyYW1ldGVycyB0byBlbmFibGUgb3IgZGlzYWJsZSBmZWF0dXJl cywgb3IgdG8gY29uZmlndXJlIHRoZW0gaW4gYQorc3BlY2lmaWMgd2F5LgorCitXZSBhc3N1bWUg dGhlIGBgY29uZmlndXJlYGAgc2NyaXB0IG9mIG91ciBgYGZvb2BgIGV4YW1wbGUgKHJlZmVyIHRv CitzZWN0aW9uIDpyZWY6YGZvb19leGFtcGxlYCkgc3VwcG9ydHMgdHdvIGFkZGl0aW9uYWwgcGFy YW1ldGVyczoKKworLSAgKiotLWVuYWJsZS1kZWJ1ZyoqOiBNYWtlIHRoZSBwcm9ncmFtIG1vcmUg bm9pc3kuIEl04oCZcyBkaXNhYmxlZCBieQorICAgZGVmYXVsdC4KKworLSAgKiotLXdpdGgtYmFy Kio6IEFsc28gYnVpbGQgdGhlIHNwZWNpYWwgZXhlY3V0YWJsZSAqKmJhcioqLiBCdWlsZGluZwor ICAgdGhpcyBleGVjdXRhYmxlIGlzIGFsc28gZGlzYWJsZWQgYnkgZGVmYXVsdC4KKworV2Ugbm93 IHdhbnQgdG8gZm9yd2FyZCB0aGVzZSBvcHRpb25zIHRvIHRoZSBgYGNvbmZpZ3VyZWBgIHNjcmlw dCB3aGVuIGl0CitydW5zIGluIHRoZSAqcHJlcGFyZSogc3RhZ2UuIFRvIGRvIHNvLCB3ZSBtdXN0 IGFnYWluIG9wZW4gdGhlIHJ1bGUgZmlsZQord2l0aCBvdXIgZmF2b3VyaXRlIGVkaXRvciBhbmQg bmF2aWdhdGUgdG8gdGhlICpwcmVwYXJlKiBzdGFnZSBlbnRyeS4KKworUFRYZGlzdCB1c2VzIHRo ZSB2YXJpYWJsZSBgYEZPT19DT05GX09QVGBgIGFzIHRoZSBsaXN0IG9mIHBhcmFtZXRlcnMgdG8K K2JlIGdpdmVuIHRvIGBgY29uZmlndXJlYGAuCisKK0N1cnJlbnRseSB0aGlzIHZhcmlhYmxlIGlz IGNvbW1lbnRlZCBvdXQgYW5kIGRlZmluZWQgdG86CisKKy4uIGNvZGUtYmxvY2s6OiBtYWtlCisK KyAgICAjIEZPT19DT05GX09QVCA6PSAkKENST1NTX0FVVE9DT05GX1VTUikKKworVGhlIHZhcmlh YmxlIGBgQ1JPU1NfQVVUT0NPTkZfVVNSYGAgaXMgcHJlZGVmaW5lZCBieSBQVFhkaXN0IGFuZAor Y29udGFpbnMgYWxsIGJhc2ljIHBhcmFtZXRlcnMgdG8gaW5zdHJ1Y3QgYGBjb25maWd1cmVgYCB0 byBwcmVwYXJlIGZvciBhCisqKmNyb3NzKiogY29tcGlsZSBlbnZpcm9ubWVudC4KKworVG8gdXNl IHRoZSB0d28gYWRkaXRpb25hbCBtZW50aW9uZWQgYGBjb25maWd1cmVgYCBwYXJhbWV0ZXJzLCB3 ZSBjb21tZW50CitpbiB0aGlzIGxpbmUgYW5kIHN1cHBsZW1lbnQgdGhpcyBleHByZXNzaW9uIGFz IGZvbGxvd3M6CisKKy4uIGNvZGUtYmxvY2s6OiBtYWtlCisKKyAgICBGT09fQ09ORl9PUFQgOj0g XAorICAgICAgICAkKENST1NTX0FVVE9DT05GX1VTUikgXAorICAgICAgICAtLWVuYWJsZS1kZWJ1 ZyBcCisgICAgICAgIC0td2l0aC1iYXIKKworLi4gbm90ZTo6IFdlIHJlY29tbWVuZCB0byB1c2Ug dGhpcyBmb3JtYXQgd2l0aCBlYWNoIHBhcmFtZXRlciBvbiBhIGxpbmUgb2YKKyBpdHMgb3duLiBU aGlzIGZvcm1hdCBpcyBlYXNpZXIgdG8gcmVhZCBhbmQgYSBkaWZmIHNob3dzIG1vcmUgZXhhY3Rs eSBhbnkKKyBjaGFuZ2UuCisKK1RvIGRvIGEgZmFzdCBjaGVjayBpZiB0aGlzIGFkZGl0aW9uIHdh cyBzdWNjZXNzZnVsLCB3ZSBydW46CisKKy4uIGNvZGUtYmxvY2s6OiB0ZXh0CisKKyAgICAkIHB0 eGRpc3QgcHJpbnQgRk9PX0NPTkZfT1BUCisgICAgLS1wcmVmaXg9L3VzciAtLXN5c2NvbmZkaXI9 L2V0YyAtLWhvc3Q9fHB0eGRpc3RDb21waWxlck5hbWV8IC0tYnVpbGQ9aTY4Ni1ob3N0LWxpbnV4 LWdudSAtLWVuYWJsZS1kZWJ1ZyAtLXdpdGgtYmFyCisKKy4uIG5vdGU6OiBJdCBkZXBlbmRzIG9u IHRoZSBjdXJyZW50bHkgc2VsZWN0ZWQgcGxhdGZvcm0gYW5kIGl0cyBhcmNoaXRlY3R1cmUKKyB3 aGF0IGNvbnRlbnQgdGhpcyB2YXJpYWJsZSB3aWxsIGhhdmUuIFRoZSBjb250ZW50IHNob3duIGFi b3ZlIGlzIGFuCisgZXhhbXBsZSBmb3IgYSB0YXJnZXQuCisKK09yIHJlLWJ1aWxkIHRoZSBwYWNr YWdlIHdpdGggdGhlIG5ldyBzZXR0aW5nczoKKworLi4gY29kZS1ibG9jazo6IHRleHQKKworICAg ICQgcHR4ZGlzdCBkcm9wIGZvbyBwcmVwYXJlCisgICAgJCBwdHhkaXN0IHRhcmdldGluc3RhbGwg Zm9vCisKK0FkZGluZyBEeW5hbWljIENvbmZpZ3VyZSBQYXJhbWV0ZXJzCis9PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PQorCitTb21ldGltZXMgaXQgbWFrZXMgc2Vuc2UgdG8gYWRk IHRoaXMga2luZCBvZiBwYXJhbWV0ZXJzIG9uIGRlbWFuZCBvbmx5OworZXNwZWNpYWxseSBhIHBh cmFtZXRlciBsaWtlIGBgLS1lbmFibGUtZGVidWdgYC4gVG8gbGV0IHRoZSB1c2VyIGRlY2lkZQor aWYgdGhpcyBwYXJhbWV0ZXIgaXMgdG8gYmUgdXNlZCBvciBub3QsIHdlIG11c3QgYWRkIGEgbWVu dSBlbnRyeS4gU28sCitsZXTigJlzIGV4cGFuZCBvdXIgbWVudS4gSGVyZSBpcyBpdHMgY3VycmVu dCBjb250ZW50OgorCisuLiBjb2RlLWJsb2NrOjoga2NvbmZpZworCisgICAgIyMgU0VDVElPTj1w cm9qZWN0X3NwZWNpZmljCisKKyAgICBjb25maWcgRk9PCisgICAgICAgICAgICB0cmlzdGF0ZQor ICAgICAgICAgICAgcHJvbXB0ICJmb28iCisgICAgICAgICAgICBoZWxwCisgICAgICAgICAgICAg IEZJWE1FCisKK1dl4oCZbGwgYWRkIHR3byBtZW51IGVudHJpZXMsIG9uZSBmb3IgZWFjaCBvcHRp b25hbCBwYXJhbWV0ZXIgd2Ugd2FudCB0bworYWRkIG9uIGRlbWFuZCB0byB0aGUgYGBjb25maWd1 cmVgYCBwYXJhbWV0ZXJzOgorCisuLiBjb2RlLWJsb2NrOjoga2NvbmZpZworCisgICAgIyMgU0VD VElPTj1wcm9qZWN0X3NwZWNpZmljCisKKyAgICBjb25maWcgRk9PCisgICAgICAgICAgIHRyaXN0 YXRlCisgICAgICAgICAgIHByb21wdCAiZm9vIgorICAgICAgICAgICBoZWxwCisgICAgICAgICAg ICAgRklYTUUKKworICAgIGlmIEZPTworICAgIGNvbmZpZyBGT09fREVCVUcKKyAgICAgICAgICAg Ym9vbAorICAgICAgICAgICBwcm9tcHQgImFkZCBkZWJ1ZyBub2lzZSIKKworICAgIGNvbmZpZyBG T09fQkFSCisgICAgICAgICAgIGJvb2wKKyAgICAgICAgICAgcHJvbXB0ICJidWlsZCBiYXIiCisK KyAgICBlbmRpZgorCisuLiBpbXBvcnRhbnQ6OiBBbHdheXMgZm9sbG93IHRoZSBydWxlIHRvIGV4 dGVuZCB0aGUgYmFzZSBuYW1lIGJ5IGEgc3Vib3B0aW9uCisgIG5hbWUgYXMgdGhlIHRyYWlsaW5n IHBhcnQgb2YgdGhlIHZhcmlhYmxlIG5hbWUuIFRoaXMgZ2l2ZXMgUFRYZGlzdCB0aGUgYWJpbGl0 eQorICB0byBkZXRlY3QgYSBjaGFuZ2UgaW4gdGhlIHBhY2thZ2XigJlzIHNldHRpbmdzICh2aWEg bWVudWNvbmZpZykgdG8gZm9yY2UgaXRzCisgIHJlYnVpbGQgb24gZGVtYW5kLgorCitUbyBtYWtl IHVzYWdlIG9mIHRoZSBuZXcgbWVudSBlbnRyaWVzLCB3ZSBtdXN0IGNoZWNrIHRoZW0gaW4gdGhl IHJ1bGUKK2ZpbGUgYW5kIGFkZCB0aGUgY29ycmVjdCBwYXJhbWV0ZXJzOgorCisuLiBjb2RlLWJs b2NrOjogbWFrZQorCisgICAgIworICAgICMgYXV0b2NvbmYKKyAgICAjCisgICAgRk9PX0NPTkZf T1BUIDo9IFwKKyAgICAgICAgJChDUk9TU19BVVRPQ09ORl9VU1IpIFwKKyAgICAgICAgLS0kKGNh bGwgcHR4L2VuZGlzLCBQVFhDT05GX0ZPT19ERUJVRyktZGVidWcgXAorICAgICAgICAtLSQoY2Fs bCBwdHgvd3dvLCBQVFhDT05GX0ZPT19CQVIpLWJhcgorCisuLiBpbXBvcnRhbnQ6OiBQbGVhc2Ug bm90ZSB0aGUgbGVhZGluZyBgYFBUWENPTkZfYGAgZm9yIGVhY2ggZGVmaW5lLiBXaGlsZSBLY29u ZmlnIGlzCisgIHVzaW5nIGBgRk9PX0JBUmBgLCB0aGUgcnVsZSBmaWxlIG11c3QgdXNlIGBgUFRY Q09ORl9GT09fQkFSYGAgaW5zdGVhZC4KKworLi4gbm90ZTo6IFJlZmVyIDpyZWY6YFJ1bGUgRmls ZSBNYWNybyBSZWZlcmVuY2UgPHBhcmFtX21hY3Jvcz5gIGZvciBmdXJ0aGVyCisgICBkZXRhaWxz IGFib3V0IHRoZXNlIHNwZWNpYWwga2luZCBvZiBvcHRpb24gbWFjcm9zIChlLmcuIGBgcHR4Ly4u LmBgKS4KKworSXQgaXMgYSBnb29kIHByYWN0aWNlIHRvIGFsd2F5cyBhZGQgYm90aCBzZXR0aW5n cywgZS5nLiBgYC0tZGlzYWJsZS1kZWJ1Z2BgCitldmVuIGlmIHRoaXMgaXMgdGhlIGRlZmF1bHQg Y2FzZS4gU29tZXRpbWVzIGBgY29uZmlndXJlYGAgdHJpZXMgdG8gZ3Vlc3MKK3NvbWV0aGluZyBh bmQgdGhlIGJpbmFyeSByZXN1bHQgbWlnaHQgZGlmZmVyIGRlcGVuZGluZyBvbiB0aGUgYnVpbGQK K29yZGVyLiBGb3IgZXhhbXBsZSBzb21lIGtpbmQgb2YgcGFja2FnZSB3b3VsZCBhbHNvIGJ1aWxk IHNvbWUgWCByZWxhdGVkCit0b29scywgaWYgWCBsaWJyYXJpZXMgYXJlIGZvdW5kLiBJbiB0aGlz IGNhc2UgaXQgZGVwZW5kcyBvbiB0aGUgYnVpbGQKK29yZGVyLCBpZiB0aGUgWCByZWxhdGVkIHRv b2xzIGFyZSBidWlsdCBvciBub3QuIEFsbCB0aGUgYXV0b2NoZWNrCitmZWF0dXJlcyBhcmUgcHJv YmxlbWF0aWMgaGVyZS4gU28sIGlmIHdlIGRvIG5vdCB3YW50IGBgY29uZmlndXJlYGAgdG8KK2d1 ZXNzIGl0cyBzZXR0aW5ncyB3ZSAqKm11c3QgZGlzYWJsZSBldmVyeXRoaW5nIHdlIGRvIG5vdCB3 YW50KiouCisKK1RvIHN1cHBvcnQgdGhpcyBwcm9jZXNzLCBQVFhkaXN0IHN1cHBsaWVzIGEgaGVs cGVyIHNjcmlwdCwgbG9jYXRlZCBhdAorYGAvcGF0aC90by9wdHhkaXN0L3NjcmlwdHMvY29uZmln dXJlLWhlbHBlci5weWBgIHRoYXQgY29tcGFyZXMgdGhlIGNvbmZpZ3VyZQorb3V0cHV0IHdpdGgg dGhlIHNldHRpbmdzIGZyb20gYGBGT09fQ09ORl9PUFRgYDoKKworLi4gY29kZS1ibG9jazo6IHRl eHQKKworICAgICQgL29wdC9wdHhkaXN0LTIwMTcuMDYuMC9zY3JpcHRzL2NvbmZpZ3VyZS1oZWxw ZXIucHkgLXAgbGlic2lncm9rCisgICAgLS0tIHJ1bGVzL2xpYnNpZ3Jvay5tYWtlCisgICAgKysr IGxpYnNpZ3Jvay0wLjUuMAorICAgIEBAIC00LDMgKzQsNzQgQEAKKyAgICAgCS0tbGliZGlyPS91 c3IvbGliCisgICAgIAktLWJ1aWxkPXg4Nl82NC1ob3N0LWxpbnV4LWdudQorICAgICAJLS1ob3N0 PWFybS12N2EtbGludXgtZ251ZWFiaWhmCisgICAgKwktLWVuYWJsZS13YXJuaW5ncz1taW58bWF4 fGZhdGFsfG5vCisgICAgKwktLWRpc2FibGUtbGFyZ2VmaWxlCisgICAgKwktLWVuYWJsZS1hbGwt ZHJpdmVycworICAgICsJLS1lbmFibGUtYWdpbGVudC1kbW0KKyAgICBbLi4uXQorICAgICsJLS1l bmFibGUtcnVieQorICAgICsJLS1lbmFibGUtamF2YQorICAgICsJLS13aXRob3V0LWxpYnNlcmlh bHBvcnQKKyAgICArCS0td2l0aG91dC1saWJmdGRpCisgICAgKwktLXdpdGhvdXQtbGlidXNiCisg ICAgKwktLXdpdGhvdXQtbGlicmV2aXNhCisgICAgKwktLXdpdGhvdXQtbGliZ3BpYgorICAgICsJ LS13aXRob3V0LWxpYmllZWUxMjg0CisgICAgKwktLXdpdGgtam5pLWluY2x1ZGUtcGF0aD1ESVIt TElTVAorCitJbiB0aGlzIGV4YW1wbGUsIG1hbnkgY29uZmlndXJlIG9wdGlvbnMgZnJvbSBsaWJz aWdyb2sgKG1hcmtlZCB3aXRoIGBgK2BgKQorYXJlIG5vdCB5ZXQgcHJlc2VudCBpbiBgYExJQlNJ R1JPS19DT05GX09QVGBgIGFuZCBtdXN0IGJlIGFkZGVkLCBwb3NzaWJseSBhbHNvCitieSBwcm92 aWRpbmcgbW9yZSBkeW5hbWljIG9wdGlvbnMgaW4gdGhlIHBhY2thZ2UgZGVmaW5pdGlvbi4KKwor SWYgc29tZSBwYXJ0cyBvZiBhIHBhY2thZ2UgYXJlIGJ1aWx0IG9uIGRlbWFuZCBvbmx5LCB0aGV5 IG11c3QgYWxzbyBiZQoraW5zdGFsbGVkIG9uIGRlbWFuZCBvbmx5LiBCZXNpZGVzIHRoZSAqcHJl cGFyZSogc3RhZ2UsIHdlIGFsc28gbXVzdAorbW9kaWZ5IG91ciAqdGFyZ2V0aW5zdGFsbCogc3Rh Z2U6CisKKy4uIGNvZGUtYmxvY2s6OiBtYWtlCisKKyAgICAJQCQoY2FsbCBpbnN0YWxsX2NvcHks IGZvbywgMCwgMCwgMDc1NSwgJChGT09fRElSKS9mb28sIC91c3IvYmluL2ZvbykKKworICAgIGlm ZGVmIFBUWENPTkZfRk9PX0JBUgorICAgIAlAJChjYWxsIGluc3RhbGxfY29weSwgZm9vLCAwLCAw LCAwNzU1LCAkKEZPT19ESVIpL2JhciwgL3Vzci9iaW4vYmFyKQorICAgIGVuZGlmCisKKyAgICAJ QCQoY2FsbCBpbnN0YWxsX2ZpbmlzaCwgZm9vKQorICAgIAlAJChjYWxsIHRvdWNoKQorCitOb3cg d2UgY2FuIHBsYXkgd2l0aCBvdXIgbmV3IG1lbnUgZW50cmllcyBhbmQgY2hlY2sgaWYgdGhleSBh cmUgd29ya2luZworYXMgZXhwZWN0ZWQ6CisKKy4uIGNvZGUtYmxvY2s6OiB0ZXh0CisKKyAgICAk IHB0eGRpc3QgbWVudWNvbmZpZworICAgICQgcHR4ZGlzdCB0YXJnZXRpbnN0YWxsIGZvbworCitX aGVuZXZlciB3ZSBjaGFuZ2UgYSAqRk9PKiByZWxhdGVkIG1lbnUgZW50cnksIFBUWGRpc3Qgc2hv dWxkIGRldGVjdCBpdAorYW5kIHJlLWJ1aWxkIHRoZSBwYWNrYWdlIHdoZW4gYSBuZXcgYnVpbGQg aXMgc3RhcnRlZC4KKworLi4gX2V4dGVybmFsX2RlcGVuZGVuY2llczoKKworTWFuYWdpbmcgRXh0 ZXJuYWwgQ29tcGlsZSBUaW1lIERlcGVuZGVuY2llcworPT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PQorCitXaGlsZSBydW5uaW5nIHRoZSBwcmVwYXJlIHN0YWdlLCBp dCBjb3VsZCBoYXBwZW4gdGhhdCBpdCBmYWlscyBkdWUgdG8gYQorbWlzc2luZyBleHRlcm5hbCBk ZXBlbmRlbmN5LgorCitGb3IgZXhhbXBsZToKKworLi4gY29kZS1ibG9jazo6IHRleHQKKworICAg IGNoZWNraW5nIHdoZXRoZXIgemxpYiBleGlzdHMuLi4uZmFpbGVkCisKK0luIHRoaXMgZXhhbXBs ZSwgb3VyIG5ldyBwYWNrYWdlIGRlcGVuZHMgb24gdGhlIGNvbXByZXNzaW9uIGxpYnJhcnkKKyp6 bGliKi4gUFRYZGlzdCBjb21lcyB3aXRoIGEgdGFyZ2V0ICp6bGliKi4gQWxsIHdlIG5lZWQgdG8g ZG8gaW4gdGhpcworY2FzZSBpcyB0byBkZWNsYXJlIHRoYXQgb3VyIG5ldyBwYWNrYWdlICpmb28q IGRlcGVuZHMgb24gKnpsaWIqLiBUaGlzCitraW5kIG9mIGRlcGVuZGVuY3kgaXMgbWFuYWdlZCBp biB0aGUgbWVudSBmaWxlIG9mIG91ciBuZXcgcGFja2FnZSBieQorc2ltcGx5IGFkZGluZyB0aGUg YGBzZWxlY3QgWkxJQmBgIGxpbmUuIEFmdGVyIHRoaXMgYWRkaXRpb24gb3VyIG1lbnUKK2ZpbGUg bG9va3MgbGlrZToKKworLi4gY29kZS1ibG9jazo6IGtjb25maWcKKworICAgICMjIFNFQ1RJT049 cHJvamVjdF9zcGVjaWZpYworCisgICAgY29uZmlnIEZPTworICAgICAgICAgICB0cmlzdGF0ZQor ICAgICAgICAgICBzZWxlY3QgWkxJQgorICAgICAgICAgICBwcm9tcHQgImZvbyIKKyAgICAgICAg ICAgaGVscAorICAgICAgICAgICAgIEZJWE1FCisKKyAgICBpZiBGT08KKyAgICBjb25maWcgRk9P X0RFQlVHCisgICAgICAgICAgIGJvb2wKKyAgICAgICAgICAgcHJvbXB0ICJhZGQgZGVidWcgbm9p c2UiCisKKyAgICBjb25maWcgRk9PX0JBUgorICAgICAgICAgICBib29sCisgICAgICAgICAgIHBy b21wdCAiYnVpbGQgYmFyIgorCisgICAgZW5kaWYKKworUFRYZGlzdCBub3cgYnVpbGRzIHRoZSAq emxpYiogZmlyc3QgYW5kIG91ciBuZXcgcGFja2FnZSB0aGVyZWFmdGVyLgorCitSZWZlciA6cmVm OmBleHRlcm5hbF9kZXBlbmRlbmNpZXNfdmFyaWFudHNgIGZvciBtb3JlIHNwZWNpZmljIGRlcGVu ZGVuY3kKK2Rlc2NyaXB0aW9uLgorCitNYW5hZ2luZyBFeHRlcm5hbCBDb21waWxlIFRpbWUgRGVw ZW5kZW5jaWVzIG9uIERlbWFuZAorPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT0KKworSXQgaXMgZ29vZCBwcmFjdGljZSB0byBhZGQgb25seSB0aG9z ZSBkZXBlbmRlbmNpZXMgdGhhdCBhcmUgcmVhbGx5CityZXF1aXJlZCBmb3IgdGhlIGN1cnJlbnQg Y29uZmlndXJhdGlvbiBvZiB0aGUgcGFja2FnZS4gSWYgdGhlIHBhY2thZ2UKK3Byb3ZpZGVzIHRo ZSBmZWF0dXJlcyAqZm9vKiBhbmQgKmJhciogYW5kIGl0cyBgYGNvbmZpZ3VyZWBgIHByb3ZpZGVz Citzd2l0Y2hlcyB0byBlbmFibGUvZGlzYWJsZSB0aGVtIGluZGVwZW5kZW50bHksIHdlIGNhbiBh bHNvIGFkZAorZGVwZW5kZW5jaWVzIG9uIGRlbWFuZC4gTGV04oCZcyBhc3N1bWUgZmVhdHVyZSAq Zm9vKiBuZWVkcyB0aGUgY29tcHJlc3Npb24KK2xpYnJhcnkgKmxpYnoqIGFuZCAqYmFyKiBuZWVk cyB0aGUgWE1MMiBsaWJyYXJ5ICpsaWJ4bWwyKi4gVGhlc2UKK2xpYnJhcmllcyBhcmUgb25seSBy ZXF1aXJlZCBhdCBydW4tdGltZSBpZiB0aGUgY29ycmVzcG9uZGluZyBmZWF0dXJlIGlzCitlbmFi bGVkLiBUbyBhZGQgdGhlc2UgZGVwZW5kZW5jaWVzIG9uIGRlbWFuZCwgdGhlIG1lbnUgZmlsZSBs b29rcyBsaWtlOgorCisuLiBjb2RlLWJsb2NrOjoga2NvbmZpZworCisgICAgIyMgU0VDVElPTj1w cm9qZWN0X3NwZWNpZmljCisKKyAgICBjb25maWcgRk9PCisgICAgICAgICAgIHRyaXN0YXRlCisg ICAgICAgICAgIHNlbGVjdCBaTElCIGlmIEZPT19GT08KKyAgICAgICAgICAgc2VsZWN0IExJQlhN TDIgaWYgRk9PX0JBUgorICAgICAgICAgICBwcm9tcHQgImZvbyIKKyAgICAgICAgICAgaGVscAor ICAgICAgICAgICAgIEZJWE1FCisKKyAgICBpZiBGT08KKyAgICBjb25maWcgRk9PX0RFQlVHCisg ICAgICAgICAgIGJvb2wKKyAgICAgICAgICAgcHJvbXB0ICJhZGQgZGVidWcgbm9pc2UiCisKKyAg ICBjb25maWcgRk9PX0ZPTworICAgICAgICAgICBib29sCisgICAgICAgICAgIHByb21wdCAiYnVp bGQgZm9vIgorCisgICAgY29uZmlnIEZPT19CQVIKKyAgICAgICAgICAgYm9vbAorICAgICAgICAg ICBwcm9tcHQgImJ1aWxkIGJhciIKKworICAgIGVuZGlmCisKKy4uIGltcG9ydGFudDo6IERvIG5v dCBhZGQgdGhlc2UgYGBzZWxlY3RgYCBzdGF0ZW1lbnRzIHRvIHRoZSBjb3JyZXNwb25kaW5nIG1l bnUgZW50cnkuCisgIFRoZXkgbXVzdCBiZWxvbmcgdG8gdGhlIG1haW4gbWVudSBlbnRyeSBvZiB0 aGUgcGFja2FnZSB0byBlbnN1cmUgdGhhdAorICB0aGUgY2FsY3VsYXRpb24gb2YgdGhlIGRlcGVu ZGVuY2llcyBiZXR3ZWVuIHRoZSBwYWNrYWdlcyBpcyBkb25lIGluIGEKKyAgY29ycmVjdCBtYW5u ZXIuCisKK01hbmFnaW5nIEV4dGVybmFsIFJ1bnRpbWUgRGVwZW5kZW5jaWVzCis9PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PQorCitTb21lIHBhY2thZ2VzIGFyZSBidWlsZGlu ZyBhbGwgb2YgdGhlaXIgY29tcG9uZW50cyBhbmQgYWxzbyBpbnN0YWxsaW5nCit0aGVtIGludG8g dGhlIHRhcmdldOKAmXMgc3lzcm9vdC4gQnV0IG9ubHkgdGhlaXIgKnRhcmdldGluc3RhbGwqIHN0 YWdlCitkZWNpZGVzIHdoaWNoIHBhcnRzIGFyZSBjb3BpZWQgdG8gdGhlIHJvb3QgZmlsZXN5c3Rl bS4gU28sIGNvbXBpbGluZyBhbmQKK2xpbmtpbmcgb2Ygb3VyIHBhY2thZ2Ugd2lsbCB3b3JrLCBi ZWNhdXNlIGV2ZXJ5dGhpbmcgcmVxdWlyZWQgaXMgZm91bmQKK2luIHRoZSB0YXJnZXTigJlzIHN5 c3Jvb3QuCisKK0luIG91ciBleGFtcGxlIHRoZXJlIGlzIGEgaGlkZGVuIGRlcGVuZGVuY3kgdG8g dGhlIG1hdGggbGlicmFyeQorYGBsaWJtYGAuIE91ciBuZXcgcGFja2FnZSB3YXMgYnVpbHQgc3Vj Y2Vzc2Z1bGx5LCBiZWNhdXNlIHRoZSBsaW5rZXIgd2FzCithYmxlIHRvIGxpbmsgb3VyIGJpbmFy aWVzIGFnYWluc3QgdGhlIGBgbGlibWBgIGZyb20gdGhlIHRvb2xjaGFpbi4gQnV0CitpbiB0aGlz IGNhc2UgdGhlIGBgbGlibWBgIG11c3QgYWxzbyBiZSBhdmFpbGFibGUgaW4gdGhlIHRhcmdldOKA mXMgcm9vdAorZmlsZXN5c3RlbSB0byBmdWxmaWxsIHRoZSBydW4tdGltZSBkZXBlbmRlbmN5OiBX ZSBoYXZlIHRvIGZvcmNlIFBUWGRpc3QgdG8KK2luc3RhbGwgYGBsaWJtYGAuIGBgbGlibWBgIGlz IHBhcnQgb2YgdGhlICpnbGliYyogcGFja2FnZSwgYnV0IGlzIG5vdAoraW5zdGFsbGVkIGJ5IGRl ZmF1bHQgKHRvIGtlZXAgdGhlIHJvb3QgZmlsZXN5c3RlbSBzbWFsbCkuIFNvLCBpdCAqKmRvZXMK K25vdCoqIGhlbHAgdG8gc2VsZWN0IHRoZSBgYEdMSUJDYGAgc3ltYm9sLCB0byBnZXQgYSBgYGxp Ym1gYCBhdCBydW4tdGltZS4KKworVGhlIGNvcnJlY3Qgc29sdXRpb24gaGVyZSBpcyB0byBhZGQg YSBgYHNlbGVjdCBMSUJDX01gYCB0byBvdXIgbWVudQorZmlsZS4gV2l0aCBhbGwgdGhlIGFkZGl0 aW9ucyBhYm92ZSBpdCBub3cgbG9va3MgbGlrZToKKworLi4gY29kZS1ibG9jazo6IGtjb25maWcK KworICAgICMjIFNFQ1RJT049cHJvamVjdF9zcGVjaWZpYworCisgICAgY29uZmlnIEZPTworICAg ICAgICAgICB0cmlzdGF0ZQorICAgICAgICAgICBzZWxlY3QgWkxJQiBpZiBGT09fRk9PCisgICAg ICAgICAgIHNlbGVjdCBMSUJYTUwyIGlmIEZPT19CQVIKKyAgICAgICAgICAgc2VsZWN0IExJQkNf TQorICAgICAgICAgICBwcm9tcHQgImZvbyIKKyAgICAgICAgICAgaGVscAorICAgICAgICAgICAg IEZJWE1FCisKKyAgICBpZiBGT08KKyAgICBjb25maWcgRk9PX0RFQlVHCisgICAgICAgICAgIGJv b2wKKyAgICAgICAgICAgcHJvbXB0ICJhZGQgZGVidWcgbm9pc2UiCisKKyAgICBjb25maWcgRk9P X0ZPTworICAgICAgICAgICBib29sCisgICAgICAgICAgIHByb21wdCAiYnVpbGQgZm9vIgorCisg ICAgY29uZmlnIEZPT19CQVIKKyAgICAgICAgICAgYm9vbAorICAgICAgICAgICBwcm9tcHQgImJ1 aWxkIGJhciIKKworICAgIGVuZGlmCisKKy4uIG5vdGU6OiBUaGVyZSBhcmUgb3RoZXIgcGFja2Fn ZXMgYXJvdW5kLCB0aGF0IGRvIG5vdCBpbnN0YWxsIGV2ZXJ5dGhpbmcgYnkKKyAgZGVmYXVsdC4g SWYgb3VyIG5ldyBwYWNrYWdlIG5lZWRzIHNvbWV0aGluZyBzcGVjaWFsLCB3ZSBtdXN0IHRha2Ug YSBsb29rCisgIGludG8gdGhlIG1lbnUgb2YgdGhlIG90aGVyIHBhY2thZ2UgaG93IHRvIGZvcmNl IHRoZSByZXF1aXJlZCBjb21wb25lbnRzCisgIHRvIGJlIGluc3RhbGxlZCBhbmQgYWRkIHRoZSBj b3JyZXNwb25kaW5nIGBgc2VsZWN0c2BgIHRvIG91ciBvd24gbWVudQorICBmaWxlLiBJbiB0aGlz IGNhc2UgaXQgZG9lcyBub3QgaGVscCB0byBlbmFibGUgdGhlIHJlcXVpcmVkIHBhcnRzIGluIG91 cgorICBwcm9qZWN0IGNvbmZpZ3VyYXRpb24sIGJlY2F1c2UgdGhpcyBoYXMgbm8gZWZmZWN0IG9u IHRoZSBidWlsZCBvcmRlciEKKworTWFuYWdpbmcgUGxhaW4gTWFrZWZpbGUgUGFja2FnZXMKKz09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CisKK01hbnkgcGFja2FnZXMgYXJlIHN0aWxs IGNvbWluZyB3aXRoIGEgcGxhaW4gYGBNYWtlZmlsZWBgLiBUaGUgdXNlciBoYXMKK3RvIGFkYXB0 IGl0IHRvIG1ha2UgaXQgd29yayBpbiBhIGNyb3NzIGNvbXBpbGUgZW52aXJvbm1lbnQgYXMgd2Vs bC4KK1BUWGRpc3QgY2FuIGFsc28gaGFuZGxlIHRoaXMga2luZCBvZiBwYWNrYWdlcy4gV2Ugb25s eSBoYXZlIHRvIHNwZWNpZnkKK2Egc3BlY2lhbCAqcHJlcGFyZSogYW5kICpjb21waWxlKiBzdGFn ZS4KKworU3VjaCBwYWNrYWdlcyBvZnRlbiBoYXZlIG5vIHNwZWNpYWwgbmVlZCBmb3IgYW55IGtp bmQgb2YgcHJlcGFyYXRpb24uIEluCit0aGlzIHdlIG11c3QgaW5zdHJ1Y3QgUFRYZGlzdCB0byBk byBub3RoaW5nIGluIHRoZSAqcHJlcGFyZSogc3RhZ2U6CisKKy4uIGNvZGUtYmxvY2s6OiBtYWtl CisKKyAgICBGT09fQ09ORl9UT09MIDo9IE5PCisKK1RvIGNvbXBpbGUgdGhlIHBhY2thZ2UsIHdl IGNhbiB1c2UgYGBtYWtlYGBcIOKAmXMgZmVhdHVyZSB0byBvdmVyd3JpdGUKK3ZhcmlhYmxlcyB1 c2VkIGluIHRoZSBgYE1ha2VmaWxlYGAuIFdpdGggdGhpcyBmZWF0dXJlIHdlIGNhbiBzdGlsbCB1 c2UKK3RoZSBvcmlnaW5hbCBgYE1ha2VmaWxlYGAgYnV0IHdpdGggb3VyIG93biAoY3Jvc3MgY29t cGlsZSkgc2V0dGluZ3MuCisKK01vc3Qgb2YgdGhlIHRpbWUgdGhlIGdlbmVyaWMgY29tcGlsZSBy dWxlIGNhbiBiZSB1c2VkLCBvbmx5IGEgZmV3CitzZXR0aW5ncyBhcmUgcmVxdWlyZWQuIEZvciBh IHdlbGwgZGVmaW5lZCBgYE1ha2VmaWxlYGAgaXQgaXMgc3VmZmljaWVudCB0bworc2V0IHVwIHRo ZSBjb3JyZWN0IGNyb3NzIGNvbXBpbGUgZW52aXJvbm1lbnQgZm9yIHRoZSAqY29tcGlsZSogc3Rh Z2U6CisKKy4uIGNvZGUtYmxvY2s6OiBtYWtlCisKKyAgICBGT09fTUFLRV9FTlYgOj0gJChDUk9T U19FTlYpCisKK2BgbWFrZWBgIHdpbGwgYmUgY2FsbGVkIGluIHRoaXMgY2FzZSB3aXRoOgorCitg YCQoRk9PX01BS0VfRU5WKSAkKE1BS0UpIC1DICQoRk9PX0RJUikgJChGT09fTUFLRV9PUFQpYGAK KworU28sIGluIHRoZSBydWxlIGZpbGUgb25seSB0aGUgdHdvIHZhcmlhYmxlcyBgYEZPT19NQUtF X0VOVmBgIGFuZAorYGBGT09fTUFLRV9PUFRgYCBtdXN0IGJlIHNldCwgdG8gZm9yd2FyZCB0aGUg cmVxdWlyZWQgc2V0dGluZ3MgdG8gdGhlCitwYWNrYWdl4oCZcyBidWlsZHN5c3RlbS4gSWYgdGhl IHBhY2thZ2UgY2Fubm90IGJlIGJ1aWx0IGluIHBhcmFsbGVsLCB3ZQorY2FuIGFsc28gYWRkIHRo ZSBgYEZPT19NQUtFX1BBUsKgOj3CoE5PYGAuIGBgWUVTYGAgaXMgdGhlIGRlZmF1bHQuCisKK01h bmFnaW5nIENNYWtlL1FNYWtlL01lc29uIFBhY2thZ2VzCis9PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PQorCitCdWlsZGluZyBwYWNrYWdlcyB0aGF0IHVzZSBgYGNtYWtlYGAsIGBg cW1ha2VgYCBvciBgYG1lc29uYGAgaXMgbXVjaCBsaWtlCitidWlsZGluZyBwYWNrYWdlcyB3aXRo IGFuIGF1dG90b29scyBiYXNlZCBidWlsZHN5c3RlbS4gV2UgbmVlZCB0byBzcGVjaWZ5Cit0aGUg Y29uZmlndXJhdGlvbiB0b29sOgorCisuLiBjb2RlLWJsb2NrOjogbWFrZQorCisgICAgRk9PX0NP TkZfVE9PTCA6PSBjbWFrZQorCitvcgorCisuLiBjb2RlLWJsb2NrOjogbWFrZQorCisgICAgRk9P X0NPTkZfVE9PTCA6PSBxbWFrZQorCitvciByZXNwZWN0aXZlbHkKKworLi4gY29kZS1ibG9jazo6 IG1ha2UKKworICAgIEZPT19DT05GX1RPT0wgOj0gbWVzb24KKworQW5kIHByb3ZpZGUgdGhlIGNv cnJlY3QgY29uZmlndXJhdGlvbiBvcHRpb25zLiBUaGUgc3ludGF4IGlzIGRpZmZlcmVudCBzbwor UFRYZGlzdCBwcm92aWRlcyBhZGRpdGlvbmFsIG1hY3JvcyB0byBzaW1wbGlmeSBjb25maWd1cmFi bGUgZmVhdHVyZXMuCitGb3IgYGBjbWFrZWBgIHRoZSBjb25maWd1cmF0aW9uIG9wdGlvbnMgdHlw aWNhbGx5IGxvb2sgbGlrZSB0aGlzOgorCisuLiBjb2RlLWJsb2NrOjogbWFrZQorCisgICAgRk9P X0NPTkZfT1BUIDo9IFwKKyAgICAJJChDUk9TU19DTUFLRV9VU1IpIFwKKyAgICAJLURCVUlMRF9U RVNUUzpCT09MPU9GRiBcCisgICAgCS1ERU5BQkxFX0JBUjpCT09MPSQoY2FsbCBwdHgvb25vZmYs IFBUWENPTkZfRk9PX0JBUikKKworRm9yIGBgcW1ha2VgYCB0aGUgY29uZmlndXJhdGlvbiBvcHRp b25zIHR5cGljYWxseSBsb29rIGxpa2UgdGhpczoKKworLi4gY29kZS1ibG9jazo6IG1ha2UKKwor ICAgIEZPT19DT05GX09QVCA6PSBcCisgICAgCSQoQ1JPU1NfUU1BS0VfT1BUKSBcCisgICAgCVBS RUZJWD0vdXNyCisKK0FuZCBmb3IgYGBtZXNvbmBgIHRoZSBjb25maWd1cmF0aW9uIG9wdGlvbnMg dHlwaWNhbGx5IGxvb2sgbGlrZSB0aGlzOgorCisuLiBjb2RlLWJsb2NrOjogbWFrZQorCisgICAg Rk9PX0NPTkZfT1BUIDo9IFwKKyAgICAJJChDUk9TU19NRVNPTl9VU1IpIFwKKyAgICAJLURiYXI9 JChjYWxsIHB0eC90cnVlZmFsc2UsUFRYQ09ORl9GT09fQkFSKQorCitQbGVhc2Ugbm90ZSB0aGF0 IGN1cnJlbnRseSBvbmx5IGhvc3QgYW5kIHRhcmdldCBgYGNtYWtlYGBcL2BgbWVzb25gYCBwYWNr YWdlcworYW5kIG9ubHkgdGFyZ2V0IGBgcW1ha2VgYCBwYWNrYWdlcyBhcmUgc3VwcG9ydGVkLgor CitNYW5hZ2luZyBQeXRob24gUGFja2FnZXMKKz09PT09PT09PT09PT09PT09PT09PT09PQorCitB cyB3aXRoIGFueSBvdGhlciBwYWNrYWdlLCB0aGUgY29ycmVjdCBjb25maWd1cmF0aW9uIHRvb2wg bXVzdCBiZSBzZWxlY3RlZAorZm9yIFB5dGhvbiBwYWNrYWdlczoKKworLi4gY29kZS1ibG9jazo6 IG1ha2UKKworICAgIEZPT19DT05GX1RPT0wgOj0gcHl0aG9uCisKKy4uIG5vdGU6OiBGb3IgUHl0 aG9uMyBwYWNrYWdlcyB0aGUgdmFsdWUgbXVzdCBiZSBgYHB5dGhvbjNgYC4KKworTm8gTWFrZWZp bGVzIGFyZSB1c2VkIHdoZW4gYnVpbGRpbmcgUHl0aG9uIHBhY2thZ2VzIHNvIHRoZSB1c3VhbCBg YG1ha2VgYAorYW5kIGBgbWFrZSBpbnN0YWxsYGAgZm9yIHRoZSAqY29tcGlsZSogYW5kICppbnN0 YWxsKiBzdGFnZXMgY2Fubm90IGJlIHVzZWQuCitQVFhkaXN0IHdpbGwgY2FsbCBgYHB5dGhvbiBz ZXR1cC5weSBidWlsZGBgIGFuZCBgYHB5dGhvbiBzZXR1cC5weSBpbnN0YWxsYGAKK2luc3RlYWQu CisKKy4uIG5vdGU6OiAqRk9PKiBpcyBzdGlsbCB0aGUgbmFtZSBvZiBvdXIgZXhhbXBsZSBwYWNr YWdlLiBJdCBtdXN0IGJlCisgIHJlcGxhY2VkIGJ5IHRoZSByZWFsIHBhY2thZ2UgbmFtZS4KZGlm ZiAtLWdpdCBhL2RvYy9kZXZfbWFudWFsLnJzdCBiL2RvYy9kZXZfbWFudWFsLnJzdAppbmRleCBj MjMyY2M5MTQyOGEuLmU5YTg4YzFhOTdmNSAxMDA2NDQKLS0tIGEvZG9jL2Rldl9tYW51YWwucnN0 CisrKyBiL2RvYy9kZXZfbWFudWFsLnJzdApAQCAtMTEsNiArMTEsOCBAQCBUaGlzIGNoYXB0ZXIg c2hvd3MgYWxsIChvciBtb3N0KSBvZiB0aGUgZGV0YWlscyBvZiBob3cgUFRYZGlzdCB3b3Jrcy4K IAogICAgZGV2X2Rpcl9oaWVyYXJjaHkKICAgIGRldl9hZGRfbmV3X3BrZ3MKKyAgIGRldl9hZHZh bmNlZF9ydWxlX2ZpbGVzCisgICBkZXZfcGF0Y2hpbmcKICAgIGRldl9hZGRfYmluX29ubHlfZmls ZXMKICAgIGRldl9jcmVhdGVfbmV3X3BrZ190ZW1wbGF0ZXMKICAgIGRldl9sYXllcnNfaW5fcHR4 ZGlzdApkaWZmIC0tZ2l0IGEvZG9jL2Rldl9wYXRjaGluZy5yc3QgYi9kb2MvZGV2X3BhdGNoaW5n LnJzdApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAuLmUzNjkwZGZlMWI0 OAotLS0gL2Rldi9udWxsCisrKyBiL2RvYy9kZXZfcGF0Y2hpbmcucnN0CkBAIC0wLDAgKzEsMjI2 IEBACisuLiBfcGF0Y2hpbmdfcGFja2FnZXM6CisKKyoqKioqKioqKioqKioqKioqCitQYXRjaGlu ZyBQYWNrYWdlcworKioqKioqKioqKioqKioqKioKKworVGhlcmUgY2FuIGJlIHZhcmlvdXMgcmVh c29ucyB3aHkgYSBwYWNrYWdlIG11c3QgYmUgcGF0Y2hlZDoKKworLSAgUGFja2FnZSBpcyBicm9r ZW4gZm9yIGNyb3NzIGNvbXBpbGUgZW52aXJvbm1lbnRzCisKKy0gIFBhY2thZ2UgaXMgYnJva2Vu IHdpdGhpbiBhIHNwZWNpZmljIGZlYXR1cmUKKworLSAgUGFja2FnZSBpcyB2dWxuZXJhYmxlIGFu ZCBuZWVkcyBzb21lIGZpeGVzCisKKy0gIG9yIGFueXRoaW5nIGVsc2UgKHRoaXMgY2FzZSBpcyB0 aGUgbW9zdCBjb21tb24gb25lKQorCitJZGVhbGx5LCB0aG9zZSBwcm9ibGVtcyBzaG91bGQgYmUg YWRkcmVzc2VkIGluIHRoZSBvcmlnaW5hbCBwcm9qZWN0LAorc28gYW55IHBhdGNoZXMgeW91IGFk ZCB0byB5b3VyIEJTUCBvciB0byBQVFhkaXN0IHNob3VsZCBhbHNvIGJlIHN1Ym1pdHRlZCB1cHN0 cmVhbS4KK1RoZSB1cHN0cmVhbSBwcm9qZWN0IGNhbiBvZnRlbiBwcm92aWRlIGJldHRlciBmZWVk YmFjaywgdGhleSBjYW4gaW50ZWdyYXRlIHlvdXIKK3BhdGNoIGludG8gYSBuZXcgcmVsZWFzZSwg YW5kIGFsc28gbWFpbnRhaW4geW91ciBjaGFuZ2VzIGFzIHBhcnQgb2YgdGhlIHByb2plY3QuCitU aGlzIHdheSB3ZSBtYWtlIHN1cmUgdGhhdCBhbGwgYWR2YW50YWdlcyBvZiB0aGUgb3BlbiBzb3Vy Y2UgaWRlYSB3b3JrIGZvciB1czsKK2FuZCB5b3VyIHBhdGNoIGNhbiBiZSByZW1vdmVkIGFnYWlu IGxhdGVyIHdoZW4gYSBuZXcgcmVsZWFzZSBvZiB0aGUgcHJvamVjdCBpcworaW50ZWdyYXRlZCBp bnRvIHlvdXIgQlNQIG9yIGludG8gUFRYZGlzdC4KKworUFRYZGlzdCBoYW5kbGVzIHBhdGNoaW5n IGF1dG9tYXRpY2FsbHkuCitBZnRlciBleHRyYWN0aW5nIHRoZSBhcmNoaXZlIG9mIGEgcGFja2Fn ZSwgUFRYZGlzdCBjaGVja3MgZm9yIHRoZSBleGlzdGVuY2Ugb2YKK2EgcGF0Y2ggZGlyZWN0b3J5 IG5hbWVkIGxpa2UgaXRzIGBgPFBLRz5fUEFUQ0hFU2BgIHZhcmlhYmxlLCBvciwgaWYgdGhpcyB2 YXJpYWJsZQoraXMgbm90IHNldCwgbGlrZSBpdHMgYGA8UEtHPmBgIHZhcmlhYmxlLgorVGhlIHBh dGNoIGRpcmVjdG9yeSBpcyB0aGVuIHNlYXJjaGVkIGluIGFsbCBsb2NhdGlvbnMgbGlzdGVkIGJ5 IHRoZQorYGBQVFhESVNUX1BBVEhfUEFUQ0hFU2BgIHZhcmlhYmxlLCBhbmQgdGhlIGZpcnN0IG9u ZSBmb3VuZCBpcyB1c2VkLgorVGFrZSBhbiBleGVtcGxhcnkgcGFja2FnZSBgYGZvb2BgIHdpdGgg dmVyc2lvbiBgYDEuMS4wYGA6CitUaGUgdmFyaWFibGUgYGBGT09gYCB3aWxsIGhhdmUgdGhlIHZh bHVlIGBgZm9vLTEuMS4wYGAsIHNvIFBUWGRpc3Qgd2lsbCBsb29rIGZvcgorYSBwYXRjaCBkaXJl Y3RvcnkgbmFtZWQgYGBmb28tMS4xLjBgYCBpbiB0aGUgZm9sbG93aW5nIGxvY2F0aW9uczoKKwor Iy4gdGhlIGN1cnJlbnQgbGF5ZXI6CisKKyAgIGEuIHByb2plY3QgKGBgLi9wYXRjaGVzL2Zvby0x LjEuMGBgKQorICAgYi4gcGxhdGZvcm0gKGBgLi9jb25maWdzL3xwdHhkaXN0UGxhdGZvcm1Db25m aWdEaXJ8L3BhdGNoZXMvZm9vLTEuMS4wYGApCisKKyMuIGFueSA6cmVmOmBiYXNlIGxheWVycyA8 bGF5ZXJzLWluLXB0eGRpc3Q+YCwKKyAgIGFwcGx5aW5nIHRoZSBzYW1lIHNlYXJjaCBvcmRlciBh cyBhYm92ZSBmb3IgZWFjaCBsYXllciByZWN1cnNpdmVseQorCisjLiBwdHhkaXN0IChgYDxwdHhk aXN0L2luc3RhbGxhdGlvbi9wYXRoPi9wYXRjaGVzL2Zvby0xLjEuMGBgKQorCitUaGUgcGF0Y2hl cyBmcm9tIHRoZSBmaXJzdCBsb2NhdGlvbiBmb3VuZCBhcmUgdXNlZC4gTm90ZTogRHVlIHRvIHRo aXMKK3NlYXJjaCBvcmRlciwgYSBQVFhkaXN0IHByb2plY3QgY2FuIHJlcGxhY2UgZ2xvYmFsIHBh dGNoZXMgZnJvbSB0aGUKK1BUWGRpc3QgaW5zdGFsbGF0aW9uLiBUaGlzIGNhbiBiZSB1c2VmdWwg aWYgYSBwcm9qZWN0IHN0aWNrcyB0byBhCitzcGVjaWZpYyBQVFhkaXN0IHJldmlzaW9uIGJ1dCBm aXhlcyBmcm9tIGEgbW9yZSByZWNlbnQgcmV2aXNpb24gb2YKK1BUWGRpc3Qgc2hvdWxkIGJlIHVz ZWQuCisKK1BUWGRpc3QgdXNlcyB0aGUgdXRpbGl0aWVzICpnaXQqLCAqcGF0Y2gqIG9yICpxdWls dCogdG8gd29yayB3aXRoCitwYXRjaGVzIG9yIHBhdGNoIHNlcmllcy4gV2UgcmVjb21tZW5kICpn aXQqLCBhcyBpdCBjYW4gbWFuYWdlIHBhdGNoCitzZXJpZXMgaW4gYSB2ZXJ5IGVhc3kgd2F5Lgor CitDcmVhdGluZyBhIFBhdGNoIFNlcmllcyBmb3IgYSBQYWNrYWdlCis9PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09CisKK1RvIGNyZWF0ZSBhIHBhdGNoIHNlcmllcyBmb3IgdGhl IGZpcnN0IHRpbWUsIHdlIGNhbiBydW4gdGhlIGZvbGxvd2luZworc3RlcHMuIFdlIGFyZSBzdGls bCB1c2luZyBvdXIgKmZvby0xLjEuMCogZXhhbXBsZSBwYWNrYWdlIGhlcmU6CisKK1VzaW5nIFF1 aWx0CistLS0tLS0tLS0tLQorCitXZSBjcmVhdGUgYSBzcGVjaWFsIGRpcmVjdG9yeSBmb3IgdGhl IHBhdGNoIHNlcmllcyBpbiB0aGUgbG9jYWwgcHJvamVjdAorZGlyZWN0b3J5OgorCisuLiBjb2Rl LWJsb2NrOjogdGV4dAorCisgICAgJCBta2RpciAtcCBwYXRjaGVzL2Zvby0xLjEuMAorCitQVFhk aXN0IGV4cGVjdHMgYSBgYHNlcmllc2BgIGZpbGUgaW4gdGhlIHBhdGNoIGRpcmVjdG9yeSBhbmQg YXQgbGVhc3QKK29uZSBwYXRjaC4gT3RoZXJ3aXNlIGl0IGZhaWxzLiBEdWUgdG8gdGhlIGZhY3Qg dGhhdCB3ZSBkbyBub3QgaGF2ZSBhbnkKK3BhdGNoIGNvbnRlbnQgeWV0LCB3ZeKAmWxsIHN0YXJ0 IHdpdGggYSBkdW1teSBlbnRyeSBpbiB0aGUgYGBzZXJpZXNgYCBmaWxlCithbmQgYW4gZW1wdHkg YGBwYXRjaGBgIGZpbGUuCisKKy4uIGNvZGUtYmxvY2s6OiB0ZXh0CisKKyAgICAkIHRvdWNoIHBh dGNoZXMvZm9vLTEuMS4wL2R1bW15CisgICAgJCBlY2hvIGR1bW15ID4gcGF0Y2hlcy9mb28tMS4x LjAvc2VyaWVzCisKK05leHQgaXMgdG8gZXh0cmFjdCB0aGUgcGFja2FnZSAoaWYgYWxyZWFkeSBk b25lLCB3ZSBtdXN0IHJlbW92ZSBpdAorZmlyc3QpOgorCisuLiBjb2RlLWJsb2NrOjogdGV4dAor CisgICAgJCBwdHhkaXN0IGV4dHJhY3QgZm9vCisKK1RoaXMgd2lsbCBleHRyYWN0IHRoZSBhcmNo aXZlIGFuZCBjcmVhdGUgYSBzeW1ib2xpYyBsaW5rIGluIHRoZSBidWlsZAorZGlyZWN0b3J5IHBv aW50aW5nIHRvIG91ciBsb2NhbCBwYXRjaCBkaXJlY3RvcnkuIFdvcmtpbmcgdGhpcyB3YXkgd2ls bAorZW5zdXJlIHRoYXQgd2UgZG8gbm90IGxvc2Ugb3VyIGNyZWF0ZWQgcGF0Y2hlcyBpZiB3ZSBl bnRlcgorYGBwdHhkaXN0IGNsZWFuIGZvb2BgIGJ5IGFjY2lkZW50LiBJbiBvdXIgY2FzZSB0aGUg cGF0Y2hlcyBhcmUgc3RpbGwKK3ByZXNlbnQgaW4gYGBwYXRjaGVzL2Zvby0xLjEuMGBgIGFuZCBj YW4gYmUgdXNlZCB0aGUgbmV4dCB0aW1lIHdlCitleHRyYWN0IHRoZSBwYWNrYWdlIGFnYWluLgor CitBbGwgd2UgaGF2ZSB0byBkbyBub3cgaXMgdG8gZG8gdGhlIG1vZGlmaWNhdGlvbiB3ZSBuZWVk IHRvIG1ha2UgdGhlCitwYWNrYWdlIHdvcmsuIFdlIGNoYW5nZSBpbnRvIHRoZSBidWlsZCBkaXJl Y3RvcnkgYW5kIHVzZSBxdWlsdF8gdG8KK2NyZWF0ZSBuZXcgcGF0Y2hlcywgYWRkIGZpbGVzIHRv IHJlc3BlY3RpdmUgcGF0Y2hlcywgbW9kaWZ5IHRoZXNlIGZpbGVzCithbmQgcmVmcmVzaCB0aGUg cGF0Y2hlcyB0byBzYXZlIG91ciBjaGFuZ2VzLgorU2VlIHRoZSAqcXVpbHQqIGRvY3VtZW50YXRp b24gKGBgbWFuIDEgcXVpbHRgYCkgZm9yIG1vcmUgaW5mb3JtYXRpb24uCisKKy4uIG5vdGU6OiBG b3IgcGF0Y2hlcyB0aGF0IGFyZSBpbnRlbmRlZCBmb3IgUFRYZGlzdCB1cHN0cmVhbSB1c2UgdGhl IGdpdAorICB3b3JrZmxvdyBkZXNjcmliZWQgYmVsb3cgdG8gZ2V0IHByb3BlciBwYXRjaCBoZWFk ZXJzLgorCisuLiBfcXVpbHQ6IGh0dHA6Ly9zYXZhbm5haC5ub25nbnUub3JnL3Byb2plY3RzL3F1 aWx0CisKK1VzaW5nIEdpdAorLS0tLS0tLS0tCisKK0NyZWF0ZSB0aGUgcGF0Y2ggZGlyZWN0b3J5 IGxpa2UgYWJvdmUgZm9yICpxdWlsdCosCitidXQgb25seSBhZGQgYW4gZW1wdHkgc2VyaWVzIGZp bGU6CisKKy4uIGNvZGUtYmxvY2s6OiB0ZXh0CisKKyAgICAkIG1rZGlyIC1wIHBhdGNoZXMvZm9v LTEuMS4wCisgICAgJCB0b3VjaCBwYXRjaGVzL2Zvby0xLjEuMC9zZXJpZXMKKworVGhlbiBleHRy YWN0IHRoZSBwYWNrYWdlIHdpdGggYW4gYWRkaXRpb25hbCBjb21tYW5kIGxpbmUgc3dpdGNoOgor CisuLiBjb2RlLWJsb2NrOjogdGV4dAorCisgICAgJCBwdHhkaXN0IC0tZ2l0IGV4dHJhY3QgZm9v CisKK1RoZSBlbXB0eSBzZXJpZXMgZmlsZSBtYWtlcyBQVFhkaXN0IGNyZWF0ZSBhIEdpdCByZXBv c2l0b3J5IGluIHRoZQorcmVzcGVjdGl2ZSBwYWNrYWdlIGJ1aWxkIGRpcmVjdG9yeSwKK2FuZCBp bXBvcnQgdGhlIHBhY2thZ2Ugc291cmNlIGFzIHRoZSBmaXJzdCBjb21taXQuCisKKy4uIG5vdGU6 OiBPcHRpb25hbGx5LCB5b3UgY2FuIGVuYWJsZSB0aGUgc2V0dGluZyAqRGV2ZWxvcGVyIE9wdGlv bnMg4oaSCisgIHVzZSBnaXQgdG8gYXBwbHkgcGF0Y2hlcyogaW4gYHB0eGRpc3Qgc2V0dXBgIHRv IGdldCB0aGlzIGJlaGF2aW91cgorICBhcyBhIGRlZmF1bHQgZm9yIGV2ZXJ5IHBhY2thZ2UuCisg IEhvd2V2ZXIsIG5vdGUgdGhhdCB0aGlzIHNldHRpbmcgaXMgbWVhbnQgZm9yIGRldmVsb3BtZW50 IG9ubHksIGFuZCBjYW4gbGVhZAorICB0byBmYWlsdXJlcyDigJMgc29tZSBwYWNrYWdlcyB0cnkg dG8gZGV0ZXJtaW5lIGlmIHRoZXkgYXJlIGJlaW5nIGNvbXBpbGVkIGZyb20KKyAgYSBHaXQgc291 cmNlIHRyZWUsIGFuZCBiZWhhdmUgZGlmZmVyZW50bHkgaW4gdGhhdCBjYXNlLgorCitUaGVuIHlv dSBjYW4gY2hhbmdlIGludG8gdGhlIHBhY2thZ2UgYnVpbGQgZGlyZWN0b3J5CisoYGBwbGF0Zm9y bS08bmFtZT4vYnVpbGQtdGFyZ2V0L2Zvby0xLjEuMGBgKSwKK3BhdGNoIHRoZSByZXF1aXJlZCBz b3VyY2UgZmlsZXMsCithbmQgbWFrZSBHaXQgY29tbWl0cyBvbiB0aGUgd2F5LgorVGhlIEdpdCBo aXN0b3J5IHNob3VsZCBub3cgbG9vayBzb21ldGhpbmcgbGlrZSB0aGlzOgorCisuLiBjb2RlLWJs b2NrOjogdGV4dAorCisgICAgJCBnaXQgbG9nIC0tb25lbGluZSAtLWRlY29yYXRlCisgICAgKiBk ZjM0M2U4MjE4NTEgKEhFQUQgLT4gbWFzdGVyKSBNYWtlZmlsZTogZG9uJ3QgYnVpbGQgdGhlIHRl c3RzCisgICAgKiA2NWEzNjBjMmJkNjAgc3RyZnJ5LmM6IGZyb2JuaWNhdGUgdGhlIGV4Y3VzYXRv cgorICAgICogZmRjMzE1ZjY4NDRjICh0YWc6IGZvb2Jhci0xLjEuMCwgdGFnOiBiYXNlKSBpbml0 aWFsIGNvbW1pdAorCitGaW5hbGx5LCBjYWxsIGBgZ2l0IHB0eC1wYXRjaGVzYGAgdG8gdHJhbnNm b3JtIHRob3NlIEdpdCBjb21taXRzIGludG8gdGhlIHBhdGNoCitzZXJpZXMgaW4gdGhlIGBgcGF0 Y2hlcy9mb28tMS4xLjBgYCBmb2xkZXIuCitUaGlzIHdheSB0aGV5IGRvbid0IGdldCBsb3N0IHdo ZW4gY2xlYW5pbmcgdGhlIHBhY2thZ2UuCisKKy4uIG5vdGU6OiBQVFhkaXN0IHdpbGwgb25seSBj cmVhdGUgYSBHaXQgcmVwb3NpdG9yeSBmb3IgcGFja2FnZXMgd2l0aAorICBwYXRjaGVzLiAgVG8g dXNlIEdpdCB0byBnZW5lcmF0ZSB0aGUgZmlyc3QgcGF0Y2gsIGNyZWF0ZSBhbiBlbXB0eSBzZXJp ZXMKKyAgZmlsZSBgYHBhdGNoZXMvZm9vYmFyLTEuMS4wL3Nlcmllc2BgIGJlZm9yZSBleHRyYWN0 aW5nIHRoZSBwYWNrYWdlcy4gVGhpcworICB3aWxsIHRlbGwgUFRYZGlzdCB0byB1c2UgR2l0IGFu eXdheXMgYW5kIGBgZ2l0IHB0eC1wYXRjaGVzYGAgd2lsbCBwdXQgdGhlCisgIHBhdGNoZXMgdGhl cmUuCisKK0JvdGggYXBwcm9hY2hlcyAoR2l0IGFuZCBxdWlsdCkgYXJlIG5vdCBzdWl0YWJsZSBm b3IgbW9kaWZ5aW5nIGZpbGVzCit0aGF0IGFyZSBhdXRvZ2VuZXJhdGVkIGluIGF1dG90b29scy1i YXNlZCBidWlsZHN5c3RlbXMuCitSZWZlciB0byB0aGUgc2VjdGlvbiA6cmVmOmBjb25maWd1cmVf cmVidWlsZGAgb24gaG93IFBUWGRpc3QgY2FuCitoYW5kbGUgdGhpcyBzcGVjaWFsIHRhc2suCisK KworQWRkaW5nIE1vcmUgUGF0Y2hlcyB0byBhIFBhY2thZ2UKKz09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09CisKK0lmIHdlIHdhbnQgdG8gYWRkIG1vcmUgcGF0Y2hlcyB0byBhbiBhbHJl YWR5IHBhdGNoZWQgcGFja2FnZSwgd2UgY2FuIHVzZQorbmVhcmx5IHRoZSBzYW1lIHdheSBhcyBj cmVhdGluZyBwYXRjaGVzIGZvciB0aGUgZmlyc3QgdGltZS4gQnV0IGlmIHRoZQorcGF0Y2ggc2Vy aWVzIGNvbWVzIGZyb20gdGhlIFBUWGRpc3QgbWFpbiBpbnN0YWxsYXRpb24sIHdlIGRvIG5vdCBo YXZlCit3cml0ZSBwZXJtaXNzaW9ucyB0byB0aGVzZSBkaXJlY3RvcmllcyAoZG8gTkVWRVIgd29y ayBvbiB0aGUgbWFpbgoraW5zdGFsbGF0aW9uIGRpcmVjdG9yaWVzLCBORVZFUiwgTkVWRVIsIE5F VkVSKS4gRHVlIHRvIHRoZSBzZWFyY2ggb3JkZXIKK2luIHdoaWNoIFBUWGRpc3Qgc2VhcmNoZXMg Zm9yIHBhdGNoZXMgZm9yIGEgc3BlY2lmaWMgcGFja2FnZSwgd2UgY2FuCitjb3B5IHRoZSBnbG9i YWwgcGF0Y2ggc2VyaWVzIHRvIG91ciBsb2NhbCBwcm9qZWN0IGRpcmVjdG9yeS4gTm93IHdlIGhh dmUKK3RoZSBwZXJtaXNzaW9ucyB0byBhZGQgbW9yZSBwYXRjaGVzIG9yIG1vZGlmeSB0aGUgZXhp c3Rpbmcgb25lcy4gQWxzbworKnF1aWx0KiBhbmQgKmdpdCogYXJlIG91ciBmcmllbmRzIGhlcmUg dG8gbWFuYWdlIHRoZSBwYXRjaCBzZXJpZXMuCisKK0lmIHdlIHRoaW5rIHRoYXQgb3VyIG5ldyBw YXRjaGVzIGFyZSB2YWx1YWJsZSBhbHNvIGZvciBvdGhlcnMsIG9yIHRoZXkKK2ZpeCBhbiBlcnJv ciwgaXQgY291bGQgYmUgYSBnb29kIGlkZWEgdG8gc2VuZCB0aGVzZSBwYXRjaGVzIHRvIFBUWGRp c3QKK21haW5saW5lLCBhbmQgdG8gdGhlIHVwc3RyZWFtIHByb2plY3QgdG9vLgorCisKKy4uIF9j b25maWd1cmVfcmVidWlsZDoKKworTW9kaWZ5aW5nIEF1dG90b29saXplZCBQYWNrYWdlcworPT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PQorCitBdXRvdG9vbGl6ZWQgcGFja2FnZXMgYXJl IHZlcnkgcGlja3kgd2hlbiBhdXRvbWF0aWNhbGx5IGdlbmVyYXRlZCBmaWxlcworZ2V0IHBhdGNo ZWQuIFRoZSBwYXRjaCBvcmRlciBpcyB2ZXJ5IGltcG9ydGFudCBpbiB0aGlzIGNhc2UgYW5kCitz b21ldGltZXMgaXQgZXZlbiBmYWlscyBhbmQgbm9ib2R5IGtub3dzIHdoeS4KKworVG8gaW1wcm92 ZSBhIHBhY2thZ2XigJlzIGF1dG90b29scy1iYXNlZCBidWlsZCBzeXN0ZW0sIFBUWGRpc3QgY29t ZXMgd2l0aAoraXRzIG93biBwcm9qZWN0IGxvY2FsIGF1dG90b29scyB0byByZWdlbmVyYXRlIHRo ZSBhdXRvdG9vbHMgdGVtcGxhdGUKK2ZpbGVzLCBpbnN0ZWFkIG9mIHBhdGNoaW5nIHRoZW0uIFdp dGggdGhpcyBmZWF0dXJlLCBvbmx5IHRoZSB0ZW1wbGF0ZQorZmlsZXMgbXVzdCBiZSBwYXRjaGVk LCB0aGUgcmVxdWlyZWQgYGBjb25maWd1cmVgYCBzY3JpcHQgYW5kIHRoZQorYGBNYWtlZmlsZS5p bmBgIGZpbGVzIGFyZSByZWdlbmVyYXRlZCBpbiB0aGUgZmluYWwgc3RhZ2VzIG9mIHRoZQorKnBy ZXBhcmUqIHN0ZXAuCisKK1RoaXMgZmVhdHVyZSB3b3JrcyBsaWtlIHRoZSByZWd1bGFyIHBhdGNo aW5nIG1lY2hhbmlzbS4gVGhlIG9ubHkKK2RpZmZlcmVuY2UgaXMgdGhlIGFkZGl0aW9uYWwgYGBh dXRvZ2VuLnNoYGAgZmlsZSBpbiB0aGUgcGF0Y2ggZGlyZWN0b3J5LgorSWYgaXQgZXhpc3RzIGFu ZCBoYXMgZXhlY3V0aW9uIHBlcm1pc3Npb25zLCBpdCB3aWxsIGJlIGNhbGxlZCBhZnRlciB0aGUK K3BhY2thZ2Ugd2FzIHBhdGNoZWQgKHdoaWxlIHRoZSAqZXh0cmFjdCogc3RhZ2UgaXMgcnVubmlu ZykuCisKK0l0cyBjb250ZW50IGRlcGVuZHMgb24gZGV2ZWxvcGVyIG5lZWRzOyBmb3IgdGhlIG1v c3Qgc2ltcGxlIGNhc2UgdGhlCitjb250ZW50IGNhbiBiZToKKworLi4gY29kZS1ibG9jazo6IGJh c2gKKworICAgICMhL2Jpbi9iYXNoCisKKyAgICBhY2xvY2FsICRBQ0xPQ0FMX0ZMQUdTCisKKyAg ICBsaWJ0b29saXplIFwKKyAgICAgICAgICAgIC0tZm9yY2UgXAorICAgICAgICAgICAgLS1jb3B5 CisKKyAgICBhdXRvcmVjb25mIFwKKyAgICAgICAgICAgIC0tZm9yY2UgXAorICAgICAgICAgICAg LS1pbnN0YWxsIFwKKyAgICAgICAgICAgIC0td2FybmluZ3M9Y3Jvc3MgXAorICAgICAgICAgICAg LS13YXJuaW5ncz1zeW50YXggXAorICAgICAgICAgICAgLS13YXJuaW5ncz1vYnNvbGV0ZSBcCisg ICAgICAgICAgICAtLXdhcm5pbmdzPXVuc3VwcG9ydGVkCisKKy4uIG5vdGU6OiBJbiB0aGlzIHdh eSBub3QgeWV0IGF1dG90b29saXplZCBwYWNrYWdlIGNhbiBiZSBhdXRvdG9vbGl6ZWQuIFdlCisg IGp1c3QgaGF2ZSB0byBhZGQgdGhlIGNvbW1vbiBhdXRvdG9vbCB0ZW1wbGF0ZSBmaWxlcyAoYGBj b25maWd1cmUuYWNgYAorICBhbmQgYGBNYWtlZmlsZS5hbWBgIGZvciBleGFtcGxlKSB2aWEgYSBw YXRjaCBzZXJpZXMgdG8gdGhlIHBhY2thZ2UKKyAgc291cmNlIGFuZCB0aGUgYGBhdXRvZ2VuLnNo YGAgdG8gdGhlIHBhdGNoIGRpcmVjdG9yeS4KLS0gCjIuMjkuMgoKCl9fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fCnB0eGRpc3QgbWFpbGluZyBsaXN0CnB0eGRp c3RAcGVuZ3V0cm9uaXguZGUKVG8gdW5zdWJzY3JpYmUsIHNlbmQgYSBtYWlsIHdpdGggc3ViamVj dCAidW5zdWJzY3JpYmUiIHRvIHB0eGRpc3QtcmVxdWVzdEBwZW5ndXRyb25peC5kZQo=