From mboxrd@z Thu Jan 1 00:00:00 1970 From: Igal.Liberman Subject: [PATCH v2 1/2] powerpc/mpc85xx: Create dts components for the FSL QorIQ DPAA FMan Date: Thu, 30 Jul 2015 07:32:44 +0300 Message-ID: <1438230764-10951-1-git-send-email-igal.liberman@freescale.com> Reply-To: igal.liberman@freescale.com Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: linuxppc-dev-bounces+glppe-linuxppc-embedded-2=m.gmane.org@lists.ozlabs.org Sender: "Linuxppc-dev" To: devicetree@vger.kernel.org, linuxppc-dev@lists.ozlabs.org Cc: scottwood@freescale.com, Igal Liberman , linux-kernel@vger.kernel.org, madalin.bucur@freescale.com List-Id: devicetree@vger.kernel.org RnJvbTogSWdhbCBMaWJlcm1hbiA8SWdhbC5MaWJlcm1hbkBmcmVlc2NhbGUuY29tPgoKQmFzZWQg b24gcHJpb3Igd29yayBieSBBbmR5IEZsZW1pbmcgPGFmbGVtaW5nQGZyZWVzY2FsZS5jb20+CgpT aWduZWQtb2ZmLWJ5OiBJZ2FsIExpYmVybWFuIDxJZ2FsLkxpYmVybWFuQGZyZWVzY2FsZS5jb20+ ClNpZ25lZC1vZmYtYnk6IFNocnV0aSBLYW5ldGthciA8U2hydXRpQGZyZWVzY2FsZS5jb20+ClNp Z25lZC1vZmYtYnk6IEVtaWwgTWVkdmUgPEVtaWxpYW4uTWVkdmVARnJlZXNjYWxlLmNvbT4KLS0t Cgp2MSAtLS0+IHYyOgoJLSBBZGRlZCBGTWFuVjNMIHN1cHBvcnQgKEZvciBUMTAyNCBhbmQgVDEw NDApCgktIEZpeGVkIFQxMDQwIGlzc3VlIChjb25maWd1cmUgaXQgYXMgRk1hblYzTCkKCS0gQWRk ZWQgMTBnIGJlc3QtZWZmb3J0IG5vZGVzCgkgIEV4cGxhaW5hdGlvbjogaHR0cHM6Ly9wYXRjaHdv cmsub3psYWJzLm9yZy9wYXRjaC80NzkxMDYvCgktIFVwZGF0ZSBGTWFuIGNsb2NrIGxhYmVsIHRv IHVzZSB0aGUgbmV3IGNsb2NrIGJpbmRpbmcgcHJlc2VudGVkCgkgIGJ5IFNjb3R0IFdvb2QgaW4g dGhlIGZvbGxvd2luZyBwYXRjaCBzZXQ6CgkgIGh0dHBzOi8vcGF0Y2h3b3JrLm96bGFicy5vcmcv cGF0Y2gvNDg2NTU4LwoKIGFyY2gvcG93ZXJwYy9ib290L2R0cy9mc2wvcW9yaXEtZm1hbi0wLTEw Zy0wLmR0c2kgIHwgICA2MiArKysrKysrKysrKysKIGFyY2gvcG93ZXJwYy9ib290L2R0cy9mc2wv cW9yaXEtZm1hbi0wLTFnLTAuZHRzaSAgIHwgICA2OSArKysrKysrKysrKysrCiBhcmNoL3Bvd2Vy cGMvYm9vdC9kdHMvZnNsL3FvcmlxLWZtYW4tMC0xZy0xLmR0c2kgICB8ICAgNjggKysrKysrKysr KysrKwogYXJjaC9wb3dlcnBjL2Jvb3QvZHRzL2ZzbC9xb3JpcS1mbWFuLTAtMWctMi5kdHNpICAg fCAgIDY4ICsrKysrKysrKysrKysKIGFyY2gvcG93ZXJwYy9ib290L2R0cy9mc2wvcW9yaXEtZm1h bi0wLTFnLTMuZHRzaSAgIHwgICA2OCArKysrKysrKysrKysrCiBhcmNoL3Bvd2VycGMvYm9vdC9k dHMvZnNsL3FvcmlxLWZtYW4tMC0xZy00LmR0c2kgICB8ICAgNjggKysrKysrKysrKysrKwogYXJj aC9wb3dlcnBjL2Jvb3QvZHRzL2ZzbC9xb3JpcS1mbWFuLTAuZHRzaSAgICAgICAgfCAgMTAxICsr KysrKysrKysrKysrKysrKysKIGFyY2gvcG93ZXJwYy9ib290L2R0cy9mc2wvcW9yaXEtZm1hbi0x LTEwZy0wLmR0c2kgIHwgICA2MSArKysrKysrKysrKwogYXJjaC9wb3dlcnBjL2Jvb3QvZHRzL2Zz bC9xb3JpcS1mbWFuLTEtMWctMC5kdHNpICAgfCAgIDY4ICsrKysrKysrKysrKysKIGFyY2gvcG93 ZXJwYy9ib290L2R0cy9mc2wvcW9yaXEtZm1hbi0xLTFnLTEuZHRzaSAgIHwgICA2OCArKysrKysr KysrKysrCiBhcmNoL3Bvd2VycGMvYm9vdC9kdHMvZnNsL3FvcmlxLWZtYW4tMS0xZy0yLmR0c2kg ICB8ICAgNjggKysrKysrKysrKysrKwogYXJjaC9wb3dlcnBjL2Jvb3QvZHRzL2ZzbC9xb3JpcS1m bWFuLTEtMWctMy5kdHNpICAgfCAgIDY4ICsrKysrKysrKysrKysKIGFyY2gvcG93ZXJwYy9ib290 L2R0cy9mc2wvcW9yaXEtZm1hbi0xLTFnLTQuZHRzaSAgIHwgICA2OCArKysrKysrKysrKysrCiBh cmNoL3Bvd2VycGMvYm9vdC9kdHMvZnNsL3FvcmlxLWZtYW4tMS5kdHNpICAgICAgICB8ICAxMDEg KysrKysrKysrKysrKysrKysrKwogLi4uL2R0cy9mc2wvcW9yaXEtZm1hbjMtMC0xMGctMC1iZXN0 LWVmZm9ydC5kdHNpICAgfCAgIDY2ICsrKysrKysrKysrKwogYXJjaC9wb3dlcnBjL2Jvb3QvZHRz L2ZzbC9xb3JpcS1mbWFuMy0wLTEwZy0wLmR0c2kgfCAgIDYzICsrKysrKysrKysrKwogLi4uL2R0 cy9mc2wvcW9yaXEtZm1hbjMtMC0xMGctMS1iZXN0LWVmZm9ydC5kdHNpICAgfCAgIDY2ICsrKysr KysrKysrKwogYXJjaC9wb3dlcnBjL2Jvb3QvZHRzL2ZzbC9xb3JpcS1mbWFuMy0wLTEwZy0xLmR0 c2kgfCAgIDYzICsrKysrKysrKysrKwogYXJjaC9wb3dlcnBjL2Jvb3QvZHRzL2ZzbC9xb3JpcS1m bWFuMy0wLTFnLTAuZHRzaSAgfCAgIDYyICsrKysrKysrKysrKwogYXJjaC9wb3dlcnBjL2Jvb3Qv ZHRzL2ZzbC9xb3JpcS1mbWFuMy0wLTFnLTEuZHRzaSAgfCAgIDYyICsrKysrKysrKysrKwogYXJj aC9wb3dlcnBjL2Jvb3QvZHRzL2ZzbC9xb3JpcS1mbWFuMy0wLTFnLTIuZHRzaSAgfCAgIDYyICsr KysrKysrKysrKwogYXJjaC9wb3dlcnBjL2Jvb3QvZHRzL2ZzbC9xb3JpcS1mbWFuMy0wLTFnLTMu ZHRzaSAgfCAgIDYyICsrKysrKysrKysrKwogYXJjaC9wb3dlcnBjL2Jvb3QvZHRzL2ZzbC9xb3Jp cS1mbWFuMy0wLTFnLTQuZHRzaSAgfCAgIDYyICsrKysrKysrKysrKwogYXJjaC9wb3dlcnBjL2Jv b3QvZHRzL2ZzbC9xb3JpcS1mbWFuMy0wLTFnLTUuZHRzaSAgfCAgIDYyICsrKysrKysrKysrKwog YXJjaC9wb3dlcnBjL2Jvb3QvZHRzL2ZzbC9xb3JpcS1mbWFuMy0wLmR0c2kgICAgICAgfCAgMTA2 ICsrKysrKysrKysrKysrKysrKysrCiBhcmNoL3Bvd2VycGMvYm9vdC9kdHMvZnNsL3FvcmlxLWZt YW4zLTEtMTBnLTAuZHRzaSB8ICAgNjMgKysrKysrKysrKysrCiBhcmNoL3Bvd2VycGMvYm9vdC9k dHMvZnNsL3FvcmlxLWZtYW4zLTEtMTBnLTEuZHRzaSB8ICAgNjMgKysrKysrKysrKysrCiBhcmNo L3Bvd2VycGMvYm9vdC9kdHMvZnNsL3FvcmlxLWZtYW4zLTEtMWctMC5kdHNpICB8ICAgNjIgKysr KysrKysrKysrCiBhcmNoL3Bvd2VycGMvYm9vdC9kdHMvZnNsL3FvcmlxLWZtYW4zLTEtMWctMS5k dHNpICB8ICAgNjIgKysrKysrKysrKysrCiBhcmNoL3Bvd2VycGMvYm9vdC9kdHMvZnNsL3Fvcmlx LWZtYW4zLTEtMWctMi5kdHNpICB8ICAgNjIgKysrKysrKysrKysrCiBhcmNoL3Bvd2VycGMvYm9v dC9kdHMvZnNsL3FvcmlxLWZtYW4zLTEtMWctMy5kdHNpICB8ICAgNjIgKysrKysrKysrKysrCiBh cmNoL3Bvd2VycGMvYm9vdC9kdHMvZnNsL3FvcmlxLWZtYW4zLTEtMWctNC5kdHNpICB8ICAgNjIg KysrKysrKysrKysrCiBhcmNoL3Bvd2VycGMvYm9vdC9kdHMvZnNsL3FvcmlxLWZtYW4zLTEtMWct NS5kdHNpICB8ICAgNjIgKysrKysrKysrKysrCiBhcmNoL3Bvd2VycGMvYm9vdC9kdHMvZnNsL3Fv cmlxLWZtYW4zLTEuZHRzaSAgICAgICB8ICAxMDYgKysrKysrKysrKysrKysrKysrKysKIGFyY2gv cG93ZXJwYy9ib290L2R0cy9mc2wvcW9yaXEtZm1hbjNsLTAuZHRzaSAgICAgIHwgICA5NCArKysr KysrKysrKysrKysrKwogMzUgZmlsZXMgY2hhbmdlZCwgMjQ0MCBpbnNlcnRpb25zKCspCiBjcmVh dGUgbW9kZSAxMDA2NDQgYXJjaC9wb3dlcnBjL2Jvb3QvZHRzL2ZzbC9xb3JpcS1mbWFuLTAtMTBn LTAuZHRzaQogY3JlYXRlIG1vZGUgMTAwNjQ0IGFyY2gvcG93ZXJwYy9ib290L2R0cy9mc2wvcW9y aXEtZm1hbi0wLTFnLTAuZHRzaQogY3JlYXRlIG1vZGUgMTAwNjQ0IGFyY2gvcG93ZXJwYy9ib290 L2R0cy9mc2wvcW9yaXEtZm1hbi0wLTFnLTEuZHRzaQogY3JlYXRlIG1vZGUgMTAwNjQ0IGFyY2gv cG93ZXJwYy9ib290L2R0cy9mc2wvcW9yaXEtZm1hbi0wLTFnLTIuZHRzaQogY3JlYXRlIG1vZGUg MTAwNjQ0IGFyY2gvcG93ZXJwYy9ib290L2R0cy9mc2wvcW9yaXEtZm1hbi0wLTFnLTMuZHRzaQog Y3JlYXRlIG1vZGUgMTAwNjQ0IGFyY2gvcG93ZXJwYy9ib290L2R0cy9mc2wvcW9yaXEtZm1hbi0w LTFnLTQuZHRzaQogY3JlYXRlIG1vZGUgMTAwNjQ0IGFyY2gvcG93ZXJwYy9ib290L2R0cy9mc2wv cW9yaXEtZm1hbi0wLmR0c2kKIGNyZWF0ZSBtb2RlIDEwMDY0NCBhcmNoL3Bvd2VycGMvYm9vdC9k dHMvZnNsL3FvcmlxLWZtYW4tMS0xMGctMC5kdHNpCiBjcmVhdGUgbW9kZSAxMDA2NDQgYXJjaC9w b3dlcnBjL2Jvb3QvZHRzL2ZzbC9xb3JpcS1mbWFuLTEtMWctMC5kdHNpCiBjcmVhdGUgbW9kZSAx MDA2NDQgYXJjaC9wb3dlcnBjL2Jvb3QvZHRzL2ZzbC9xb3JpcS1mbWFuLTEtMWctMS5kdHNpCiBj cmVhdGUgbW9kZSAxMDA2NDQgYXJjaC9wb3dlcnBjL2Jvb3QvZHRzL2ZzbC9xb3JpcS1mbWFuLTEt MWctMi5kdHNpCiBjcmVhdGUgbW9kZSAxMDA2NDQgYXJjaC9wb3dlcnBjL2Jvb3QvZHRzL2ZzbC9x b3JpcS1mbWFuLTEtMWctMy5kdHNpCiBjcmVhdGUgbW9kZSAxMDA2NDQgYXJjaC9wb3dlcnBjL2Jv b3QvZHRzL2ZzbC9xb3JpcS1mbWFuLTEtMWctNC5kdHNpCiBjcmVhdGUgbW9kZSAxMDA2NDQgYXJj aC9wb3dlcnBjL2Jvb3QvZHRzL2ZzbC9xb3JpcS1mbWFuLTEuZHRzaQogY3JlYXRlIG1vZGUgMTAw NjQ0IGFyY2gvcG93ZXJwYy9ib290L2R0cy9mc2wvcW9yaXEtZm1hbjMtMC0xMGctMC1iZXN0LWVm Zm9ydC5kdHNpCiBjcmVhdGUgbW9kZSAxMDA2NDQgYXJjaC9wb3dlcnBjL2Jvb3QvZHRzL2ZzbC9x b3JpcS1mbWFuMy0wLTEwZy0wLmR0c2kKIGNyZWF0ZSBtb2RlIDEwMDY0NCBhcmNoL3Bvd2VycGMv Ym9vdC9kdHMvZnNsL3FvcmlxLWZtYW4zLTAtMTBnLTEtYmVzdC1lZmZvcnQuZHRzaQogY3JlYXRl IG1vZGUgMTAwNjQ0IGFyY2gvcG93ZXJwYy9ib290L2R0cy9mc2wvcW9yaXEtZm1hbjMtMC0xMGct MS5kdHNpCiBjcmVhdGUgbW9kZSAxMDA2NDQgYXJjaC9wb3dlcnBjL2Jvb3QvZHRzL2ZzbC9xb3Jp cS1mbWFuMy0wLTFnLTAuZHRzaQogY3JlYXRlIG1vZGUgMTAwNjQ0IGFyY2gvcG93ZXJwYy9ib290 L2R0cy9mc2wvcW9yaXEtZm1hbjMtMC0xZy0xLmR0c2kKIGNyZWF0ZSBtb2RlIDEwMDY0NCBhcmNo L3Bvd2VycGMvYm9vdC9kdHMvZnNsL3FvcmlxLWZtYW4zLTAtMWctMi5kdHNpCiBjcmVhdGUgbW9k ZSAxMDA2NDQgYXJjaC9wb3dlcnBjL2Jvb3QvZHRzL2ZzbC9xb3JpcS1mbWFuMy0wLTFnLTMuZHRz aQogY3JlYXRlIG1vZGUgMTAwNjQ0IGFyY2gvcG93ZXJwYy9ib290L2R0cy9mc2wvcW9yaXEtZm1h bjMtMC0xZy00LmR0c2kKIGNyZWF0ZSBtb2RlIDEwMDY0NCBhcmNoL3Bvd2VycGMvYm9vdC9kdHMv ZnNsL3FvcmlxLWZtYW4zLTAtMWctNS5kdHNpCiBjcmVhdGUgbW9kZSAxMDA2NDQgYXJjaC9wb3dl cnBjL2Jvb3QvZHRzL2ZzbC9xb3JpcS1mbWFuMy0wLmR0c2kKIGNyZWF0ZSBtb2RlIDEwMDY0NCBh cmNoL3Bvd2VycGMvYm9vdC9kdHMvZnNsL3FvcmlxLWZtYW4zLTEtMTBnLTAuZHRzaQogY3JlYXRl IG1vZGUgMTAwNjQ0IGFyY2gvcG93ZXJwYy9ib290L2R0cy9mc2wvcW9yaXEtZm1hbjMtMS0xMGct MS5kdHNpCiBjcmVhdGUgbW9kZSAxMDA2NDQgYXJjaC9wb3dlcnBjL2Jvb3QvZHRzL2ZzbC9xb3Jp cS1mbWFuMy0xLTFnLTAuZHRzaQogY3JlYXRlIG1vZGUgMTAwNjQ0IGFyY2gvcG93ZXJwYy9ib290 L2R0cy9mc2wvcW9yaXEtZm1hbjMtMS0xZy0xLmR0c2kKIGNyZWF0ZSBtb2RlIDEwMDY0NCBhcmNo L3Bvd2VycGMvYm9vdC9kdHMvZnNsL3FvcmlxLWZtYW4zLTEtMWctMi5kdHNpCiBjcmVhdGUgbW9k ZSAxMDA2NDQgYXJjaC9wb3dlcnBjL2Jvb3QvZHRzL2ZzbC9xb3JpcS1mbWFuMy0xLTFnLTMuZHRz aQogY3JlYXRlIG1vZGUgMTAwNjQ0IGFyY2gvcG93ZXJwYy9ib290L2R0cy9mc2wvcW9yaXEtZm1h bjMtMS0xZy00LmR0c2kKIGNyZWF0ZSBtb2RlIDEwMDY0NCBhcmNoL3Bvd2VycGMvYm9vdC9kdHMv ZnNsL3FvcmlxLWZtYW4zLTEtMWctNS5kdHNpCiBjcmVhdGUgbW9kZSAxMDA2NDQgYXJjaC9wb3dl cnBjL2Jvb3QvZHRzL2ZzbC9xb3JpcS1mbWFuMy0xLmR0c2kKIGNyZWF0ZSBtb2RlIDEwMDY0NCBh cmNoL3Bvd2VycGMvYm9vdC9kdHMvZnNsL3FvcmlxLWZtYW4zbC0wLmR0c2kKCmRpZmYgLS1naXQg YS9hcmNoL3Bvd2VycGMvYm9vdC9kdHMvZnNsL3FvcmlxLWZtYW4tMC0xMGctMC5kdHNpIGIvYXJj aC9wb3dlcnBjL2Jvb3QvZHRzL2ZzbC9xb3JpcS1mbWFuLTAtMTBnLTAuZHRzaQpuZXcgZmlsZSBt b2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4yYmE4NDJjCi0tLSAvZGV2L251bGwKKysrIGIvYXJj aC9wb3dlcnBjL2Jvb3QvZHRzL2ZzbC9xb3JpcS1mbWFuLTAtMTBnLTAuZHRzaQpAQCAtMCwwICsx LDYyIEBACisvKgorICogUW9ySVEgRk1hbiAxMGcgcG9ydCAjMCBkZXZpY2UgdHJlZSBzdHViIFsg Y29udHJvbGxlciBAIG9mZnNldCAweDQwMDAwMCBdCisgKgorICogQ29weXJpZ2h0IDIwMTEgLSAy MDE1IEZyZWVzY2FsZSBTZW1pY29uZHVjdG9yIEluYy4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBh bmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1v ZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29u ZGl0aW9ucyBhcmUgbWV0OgorICogICAgICogUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2Rl IG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqCSBub3RpY2UsIHRoaXMgbGlzdCBv ZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAgICAgKiBSZWRp c3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHly aWdodAorICoJIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dp bmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqCSBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRl cmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICogICAgICogTmVpdGhlciB0 aGUgbmFtZSBvZiBGcmVlc2NhbGUgU2VtaWNvbmR1Y3RvciBub3IgdGhlCisgKgkgbmFtZXMgb2Yg aXRzIGNvbnRyaWJ1dG9ycyBtYXkgYmUgdXNlZCB0byBlbmRvcnNlIG9yIHByb21vdGUgcHJvZHVj dHMKKyAqCSBkZXJpdmVkIGZyb20gdGhpcyBzb2Z0d2FyZSB3aXRob3V0IHNwZWNpZmljIHByaW9y IHdyaXR0ZW4gcGVybWlzc2lvbi4KKyAqCisgKgorICogQUxURVJOQVRJVkVMWSwgdGhpcyBzb2Z0 d2FyZSBtYXkgYmUgZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZQorICogR05VIEdl bmVyYWwgUHVibGljIExpY2Vuc2UgKCJHUEwiKSBhcyBwdWJsaXNoZWQgYnkgdGhlIEZyZWUgU29m dHdhcmUKKyAqIEZvdW5kYXRpb24sIGVpdGhlciB2ZXJzaW9uIDIgb2YgdGhhdCBMaWNlbnNlIG9y IChhdCB5b3VyIG9wdGlvbikgYW55CisgKiBsYXRlciB2ZXJzaW9uLgorICoKKyAqIFRISVMgU09G VFdBUkUgSVMgUFJPVklERUQgQlkgRnJlZXNjYWxlIFNlbWljb25kdWN0b3IgYGBBUyBJUycnIEFO RCBBTlkKKyAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBO T1QgTElNSVRFRCBUTywgVEhFIElNUExJRUQKKyAqIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklM SVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBUkUKKyAqIERJU0NMQUlN RUQuIElOIE5PIEVWRU5UIFNIQUxMIEZyZWVzY2FsZSBTZW1pY29uZHVjdG9yIEJFIExJQUJMRSBG T1IgQU5ZCisgKiBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExB UlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUworICogKElOQ0xVRElORywgQlVUIE5PVCBMSU1J VEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOworICog TE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikg SE9XRVZFUiBDQVVTRUQgQU5ECisgKiBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhF UiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xVRElORyBO RUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNF IE9GIFRISVMKKyAqIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZ IE9GIFNVQ0ggREFNQUdFLgorICovCisKK2ZtYW5ANDAwMDAwIHsKKwlmbWFuMF9yeF8weDEwOiBw b3J0QDkwMDAwIHsKKwkJY2VsbC1pbmRleCA9IDwweDEwPjsKKwkJY29tcGF0aWJsZSA9ICJmc2ws Zm1hbi12Mi1wb3J0LXJ4IjsKKwkJcmVnID0gPDB4OTAwMDAgMHgxMDAwPjsKKwl9OworCisJZm1h bjBfdHhfMHgzMDogcG9ydEBiMDAwMCB7CisJCWNlbGwtaW5kZXggPSA8MHgzMD47CisJCWNvbXBh dGlibGUgPSAiZnNsLGZtYW4tdjItcG9ydC10eCI7CisJCXJlZyA9IDwweGIwMDAwIDB4MTAwMD47 CisJfTsKKworCWV0aGVybmV0QGYwMDAwIHsKKwkJY2VsbC1pbmRleCA9IDwweDg+OworCQljb21w YXRpYmxlID0gImZzbCxmbWFuLXhnZWMiOworCQlyZWcgPSA8MHhmMDAwMCAweDEwMDA+OworCQlm c2wsZm1hbi1wb3J0cyA9IDwmZm1hbjBfcnhfMHgxMCAmZm1hbjBfdHhfMHgzMD47CisJfTsKKwor CXhtZGlvMDogbWRpb0BmMTAwMCB7CisJCSNhZGRyZXNzLWNlbGxzID0gPDE+OworCQkjc2l6ZS1j ZWxscyA9IDwwPjsKKwkJY29tcGF0aWJsZSA9ICJmc2wsZm1hbi14bWRpbyI7CisJCXJlZyA9IDww eGYxMDAwIDB4MTAwMD47CisJCWludGVycnVwdHMgPSA8MTAxIDEgMCAwPjsKKwl9OworfTsKZGlm ZiAtLWdpdCBhL2FyY2gvcG93ZXJwYy9ib290L2R0cy9mc2wvcW9yaXEtZm1hbi0wLTFnLTAuZHRz aSBiL2FyY2gvcG93ZXJwYy9ib290L2R0cy9mc2wvcW9yaXEtZm1hbi0wLTFnLTAuZHRzaQpuZXcg ZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5iMjg4ZTgyCi0tLSAvZGV2L251bGwKKysr IGIvYXJjaC9wb3dlcnBjL2Jvb3QvZHRzL2ZzbC9xb3JpcS1mbWFuLTAtMWctMC5kdHNpCkBAIC0w LDAgKzEsNjkgQEAKKy8qCisgKiBRb3JJUSBGTWFuIDFnIHBvcnQgIzAgZGV2aWNlIHRyZWUgc3R1 YiBbIGNvbnRyb2xsZXIgQCBvZmZzZXQgMHg0MDAwMDAgXQorICoKKyAqIENvcHlyaWdodCAyMDEx IC0gMjAxNSBGcmVlc2NhbGUgU2VtaWNvbmR1Y3RvciBJbmMuCisgKgorICogUmVkaXN0cmlidXRp b24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0Cisg KiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5n IGNvbmRpdGlvbnMgYXJlIG1ldDoKKyAqICAgICAqIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2Ug Y29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKgkgbm90aWNlLCB0aGlzIGxp c3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogICAgICog UmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBj b3B5cmlnaHQKKyAqCSBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9s bG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKgkgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIg bWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqICAgICAqIE5laXRo ZXIgdGhlIG5hbWUgb2YgRnJlZXNjYWxlIFNlbWljb25kdWN0b3Igbm9yIHRoZQorICoJIG5hbWVz IG9mIGl0cyBjb250cmlidXRvcnMgbWF5IGJlIHVzZWQgdG8gZW5kb3JzZSBvciBwcm9tb3RlIHBy b2R1Y3RzCisgKgkgZGVyaXZlZCBmcm9tIHRoaXMgc29mdHdhcmUgd2l0aG91dCBzcGVjaWZpYyBw cmlvciB3cml0dGVuIHBlcm1pc3Npb24uCisgKgorICoKKyAqIEFMVEVSTkFUSVZFTFksIHRoaXMg c29mdHdhcmUgbWF5IGJlIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUKKyAqIEdO VSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlICgiR1BMIikgYXMgcHVibGlzaGVkIGJ5IHRoZSBGcmVl IFNvZnR3YXJlCisgKiBGb3VuZGF0aW9uLCBlaXRoZXIgdmVyc2lvbiAyIG9mIHRoYXQgTGljZW5z ZSBvciAoYXQgeW91ciBvcHRpb24pIGFueQorICogbGF0ZXIgdmVyc2lvbi4KKyAqCisgKiBUSElT IFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEZyZWVzY2FsZSBTZW1pY29uZHVjdG9yIGBgQVMgSVMn JyBBTkQgQU5ZCisgKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBC VVQgTk9UIExJTUlURUQgVE8sIFRIRSBJTVBMSUVECisgKiBXQVJSQU5USUVTIE9GIE1FUkNIQU5U QUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJFCisgKiBESVND TEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBGcmVlc2NhbGUgU2VtaWNvbmR1Y3RvciBCRSBMSUFC TEUgRk9SIEFOWQorICogRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhF TVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMKKyAqIChJTkNMVURJTkcsIEJVVCBOT1Qg TElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsK KyAqIExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJ T04pIEhPV0VWRVIgQ0FVU0VEIEFORAorICogT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdI RVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJ TkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhF IFVTRSBPRiBUSElTCisgKiBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJ TElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCitmbWFuQDQwMDAwMCB7CisJZm1hbjBfcnhfMHgw ODogcG9ydEA4ODAwMCB7CisJCWNlbGwtaW5kZXggPSA8MHg4PjsKKwkJY29tcGF0aWJsZSA9ICJm c2wsZm1hbi12Mi1wb3J0LXJ4IjsKKwkJcmVnID0gPDB4ODgwMDAgMHgxMDAwPjsKKwl9OworCisJ Zm1hbjBfdHhfMHgyODogcG9ydEBhODAwMCB7CisJCWNlbGwtaW5kZXggPSA8MHgyOD47CisJCWNv bXBhdGlibGUgPSAiZnNsLGZtYW4tdjItcG9ydC10eCI7CisJCXJlZyA9IDwweGE4MDAwIDB4MTAw MD47CisJfTsKKworCWV0aGVybmV0QGUwMDAwIHsKKwkJY2VsbC1pbmRleCA9IDwwPjsKKwkJY29t cGF0aWJsZSA9ICJmc2wsZm1hbi1kdHNlYyI7CisJCXJlZyA9IDwweGUwMDAwIDB4MTAwMD47CisJ CWZzbCxmbWFuLXBvcnRzID0gPCZmbWFuMF9yeF8weDA4ICZmbWFuMF90eF8weDI4PjsKKwkJdGJp LWhhbmRsZSA9IDwmdGJpMD47CisJCXB0cC10aW1lciA9IDwmcHRwX3RpbWVyMD47CisJfTsKKwor CW1kaW8wOiBtZGlvQGUxMTIwIHsKKwkJI2FkZHJlc3MtY2VsbHMgPSA8MT47CisJCSNzaXplLWNl bGxzID0gPDA+OworCQljb21wYXRpYmxlID0gImZzbCxmbWFuLW1kaW8iOworCQlyZWcgPSA8MHhl MTEyMCAweGVlMD47CisJCWludGVycnVwdHMgPSA8MTAwIDEgMCAwPjsKKworCQl0YmkwOiB0Ymkt cGh5QDggeworCQkJcmVnID0gPDB4OD47CisJCQlkZXZpY2VfdHlwZSA9ICJ0YmktcGh5IjsKKwkJ fTsKKwl9OworfTsKZGlmZiAtLWdpdCBhL2FyY2gvcG93ZXJwYy9ib290L2R0cy9mc2wvcW9yaXEt Zm1hbi0wLTFnLTEuZHRzaSBiL2FyY2gvcG93ZXJwYy9ib290L2R0cy9mc2wvcW9yaXEtZm1hbi0w LTFnLTEuZHRzaQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi45ZWI2ZTZkCi0t LSAvZGV2L251bGwKKysrIGIvYXJjaC9wb3dlcnBjL2Jvb3QvZHRzL2ZzbC9xb3JpcS1mbWFuLTAt MWctMS5kdHNpCkBAIC0wLDAgKzEsNjggQEAKKy8qCisgKiBRb3JJUSBGTWFuIDFnIHBvcnQgIzEg ZGV2aWNlIHRyZWUgc3R1YiBbIGNvbnRyb2xsZXIgQCBvZmZzZXQgMHg0MDAwMDAgXQorICoKKyAq IENvcHlyaWdodCAyMDExIC0gMjAxNSBGcmVlc2NhbGUgU2VtaWNvbmR1Y3RvciBJbmMuCisgKgor ICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0 aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhh dCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMgYXJlIG1ldDoKKyAqICAgICAqIFJlZGlzdHJpYnV0 aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKgkg bm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFp bWVyLgorICogICAgICogUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9k dWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqCSBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRp b25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKgkgZG9jdW1lbnRhdGlv biBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4K KyAqICAgICAqIE5laXRoZXIgdGhlIG5hbWUgb2YgRnJlZXNjYWxlIFNlbWljb25kdWN0b3Igbm9y IHRoZQorICoJIG5hbWVzIG9mIGl0cyBjb250cmlidXRvcnMgbWF5IGJlIHVzZWQgdG8gZW5kb3Jz ZSBvciBwcm9tb3RlIHByb2R1Y3RzCisgKgkgZGVyaXZlZCBmcm9tIHRoaXMgc29mdHdhcmUgd2l0 aG91dCBzcGVjaWZpYyBwcmlvciB3cml0dGVuIHBlcm1pc3Npb24uCisgKgorICoKKyAqIEFMVEVS TkFUSVZFTFksIHRoaXMgc29mdHdhcmUgbWF5IGJlIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSB0ZXJt cyBvZiB0aGUKKyAqIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlICgiR1BMIikgYXMgcHVibGlz aGVkIGJ5IHRoZSBGcmVlIFNvZnR3YXJlCisgKiBGb3VuZGF0aW9uLCBlaXRoZXIgdmVyc2lvbiAy IG9mIHRoYXQgTGljZW5zZSBvciAoYXQgeW91ciBvcHRpb24pIGFueQorICogbGF0ZXIgdmVyc2lv bi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEZyZWVzY2FsZSBTZW1pY29u ZHVjdG9yIGBgQVMgSVMnJyBBTkQgQU5ZCisgKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElF UywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRSBJTVBMSUVECisgKiBXQVJSQU5U SUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBP U0UgQVJFCisgKiBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBGcmVlc2NhbGUgU2VtaWNv bmR1Y3RvciBCRSBMSUFCTEUgRk9SIEFOWQorICogRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRB TCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMKKyAqIChJTkNM VURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09E UyBPUiBTRVJWSUNFUzsKKyAqIExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJ TkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORAorICogT04gQU5ZIFRIRU9SWSBP RiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRP UlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5Z IFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTCisgKiBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VE IE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCitmbWFuQDQwMDAwMCB7 CisJZm1hbjBfcnhfMHgwOTogcG9ydEA4OTAwMCB7CisJCWNlbGwtaW5kZXggPSA8MHg5PjsKKwkJ Y29tcGF0aWJsZSA9ICJmc2wsZm1hbi12Mi1wb3J0LXJ4IjsKKwkJcmVnID0gPDB4ODkwMDAgMHgx MDAwPjsKKwl9OworCisJZm1hbjBfdHhfMHgyOTogcG9ydEBhOTAwMCB7CisJCWNlbGwtaW5kZXgg PSA8MHgyOT47CisJCWNvbXBhdGlibGUgPSAiZnNsLGZtYW4tdjItcG9ydC10eCI7CisJCXJlZyA9 IDwweGE5MDAwIDB4MTAwMD47CisJfTsKKworCWV0aGVybmV0QGUyMDAwIHsKKwkJY2VsbC1pbmRl eCA9IDwxPjsKKwkJY29tcGF0aWJsZSA9ICJmc2wsZm1hbi1kdHNlYyI7CisJCXJlZyA9IDwweGUy MDAwIDB4MTAwMD47CisJCWZzbCxmbWFuLXBvcnRzID0gPCZmbWFuMF9yeF8weDA5ICZmbWFuMF90 eF8weDI5PjsKKwkJdGJpLWhhbmRsZSA9IDwmdGJpMT47CisJCXB0cC10aW1lciA9IDwmcHRwX3Rp bWVyMD47CisJfTsKKworCW1kaW9AZTMxMjAgeworCQkjYWRkcmVzcy1jZWxscyA9IDwxPjsKKwkJ I3NpemUtY2VsbHMgPSA8MD47CisJCWNvbXBhdGlibGUgPSAiZnNsLGZtYW4tbWRpbyI7CisJCXJl ZyA9IDwweGUzMTIwIDB4ZWUwPjsKKworCQl0YmkxOiB0YmktcGh5QDggeworCQkJcmVnID0gPDB4 OD47CisJCQlkZXZpY2VfdHlwZSA9ICJ0YmktcGh5IjsKKwkJfTsKKwl9OworfTsKZGlmZiAtLWdp dCBhL2FyY2gvcG93ZXJwYy9ib290L2R0cy9mc2wvcW9yaXEtZm1hbi0wLTFnLTIuZHRzaSBiL2Fy Y2gvcG93ZXJwYy9ib290L2R0cy9mc2wvcW9yaXEtZm1hbi0wLTFnLTIuZHRzaQpuZXcgZmlsZSBt b2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4wOTJiODk5Ci0tLSAvZGV2L251bGwKKysrIGIvYXJj aC9wb3dlcnBjL2Jvb3QvZHRzL2ZzbC9xb3JpcS1mbWFuLTAtMWctMi5kdHNpCkBAIC0wLDAgKzEs NjggQEAKKy8qCisgKiBRb3JJUSBGTWFuIDFnIHBvcnQgIzIgZGV2aWNlIHRyZWUgc3R1YiBbIGNv bnRyb2xsZXIgQCBvZmZzZXQgMHg0MDAwMDAgXQorICoKKyAqIENvcHlyaWdodCAyMDExIC0gMjAx NSBGcmVlc2NhbGUgU2VtaWNvbmR1Y3RvciBJbmMuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5k IHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2Rp ZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRp dGlvbnMgYXJlIG1ldDoKKyAqICAgICAqIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBt dXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKgkgbm90aWNlLCB0aGlzIGxpc3Qgb2Yg Y29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogICAgICogUmVkaXN0 cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmln aHQKKyAqCSBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5n IGRpc2NsYWltZXIgaW4gdGhlCisgKgkgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJp YWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqICAgICAqIE5laXRoZXIgdGhl IG5hbWUgb2YgRnJlZXNjYWxlIFNlbWljb25kdWN0b3Igbm9yIHRoZQorICoJIG5hbWVzIG9mIGl0 cyBjb250cmlidXRvcnMgbWF5IGJlIHVzZWQgdG8gZW5kb3JzZSBvciBwcm9tb3RlIHByb2R1Y3Rz CisgKgkgZGVyaXZlZCBmcm9tIHRoaXMgc29mdHdhcmUgd2l0aG91dCBzcGVjaWZpYyBwcmlvciB3 cml0dGVuIHBlcm1pc3Npb24uCisgKgorICoKKyAqIEFMVEVSTkFUSVZFTFksIHRoaXMgc29mdHdh cmUgbWF5IGJlIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUKKyAqIEdOVSBHZW5l cmFsIFB1YmxpYyBMaWNlbnNlICgiR1BMIikgYXMgcHVibGlzaGVkIGJ5IHRoZSBGcmVlIFNvZnR3 YXJlCisgKiBGb3VuZGF0aW9uLCBlaXRoZXIgdmVyc2lvbiAyIG9mIHRoYXQgTGljZW5zZSBvciAo YXQgeW91ciBvcHRpb24pIGFueQorICogbGF0ZXIgdmVyc2lvbi4KKyAqCisgKiBUSElTIFNPRlRX QVJFIElTIFBST1ZJREVEIEJZIEZyZWVzY2FsZSBTZW1pY29uZHVjdG9yIGBgQVMgSVMnJyBBTkQg QU5ZCisgKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9U IExJTUlURUQgVE8sIFRIRSBJTVBMSUVECisgKiBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElU WSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJFCisgKiBESVNDTEFJTUVE LiBJTiBOTyBFVkVOVCBTSEFMTCBGcmVlc2NhbGUgU2VtaWNvbmR1Y3RvciBCRSBMSUFCTEUgRk9S IEFOWQorICogRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZ LCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMKKyAqIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRF RCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsKKyAqIExP U1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhP V0VWRVIgQ0FVU0VEIEFORAorICogT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIg SU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVH TElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBP RiBUSElTCisgKiBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBP RiBTVUNIIERBTUFHRS4KKyAqLworCitmbWFuQDQwMDAwMCB7CisJZm1hbjBfcnhfMHgwYTogcG9y dEA4YTAwMCB7CisJCWNlbGwtaW5kZXggPSA8MHhhPjsKKwkJY29tcGF0aWJsZSA9ICJmc2wsZm1h bi12Mi1wb3J0LXJ4IjsKKwkJcmVnID0gPDB4OGEwMDAgMHgxMDAwPjsKKwl9OworCisJZm1hbjBf dHhfMHgyYTogcG9ydEBhYTAwMCB7CisJCWNlbGwtaW5kZXggPSA8MHgyYT47CisJCWNvbXBhdGli bGUgPSAiZnNsLGZtYW4tdjItcG9ydC10eCI7CisJCXJlZyA9IDwweGFhMDAwIDB4MTAwMD47CisJ fTsKKworCWV0aGVybmV0QGU0MDAwIHsKKwkJY2VsbC1pbmRleCA9IDwyPjsKKwkJY29tcGF0aWJs ZSA9ICJmc2wsZm1hbi1kdHNlYyI7CisJCXJlZyA9IDwweGU0MDAwIDB4MTAwMD47CisJCWZzbCxm bWFuLXBvcnRzID0gPCZmbWFuMF9yeF8weDBhICZmbWFuMF90eF8weDJhPjsKKwkJdGJpLWhhbmRs ZSA9IDwmdGJpMj47CisJCXB0cC10aW1lciA9IDwmcHRwX3RpbWVyMD47CisJfTsKKworCW1kaW9A ZTUxMjAgeworCQkjYWRkcmVzcy1jZWxscyA9IDwxPjsKKwkJI3NpemUtY2VsbHMgPSA8MD47CisJ CWNvbXBhdGlibGUgPSAiZnNsLGZtYW4tbWRpbyI7CisJCXJlZyA9IDwweGU1MTIwIDB4ZWUwPjsK KworCQl0YmkyOiB0YmktcGh5QDggeworCQkJcmVnID0gPDB4OD47CisJCQlkZXZpY2VfdHlwZSA9 ICJ0YmktcGh5IjsKKwkJfTsKKwl9OworfTsKZGlmZiAtLWdpdCBhL2FyY2gvcG93ZXJwYy9ib290 L2R0cy9mc2wvcW9yaXEtZm1hbi0wLTFnLTMuZHRzaSBiL2FyY2gvcG93ZXJwYy9ib290L2R0cy9m c2wvcW9yaXEtZm1hbi0wLTFnLTMuZHRzaQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAw MDAwLi4yZGYwZGM4Ci0tLSAvZGV2L251bGwKKysrIGIvYXJjaC9wb3dlcnBjL2Jvb3QvZHRzL2Zz bC9xb3JpcS1mbWFuLTAtMWctMy5kdHNpCkBAIC0wLDAgKzEsNjggQEAKKy8qCisgKiBRb3JJUSBG TWFuIDFnIHBvcnQgIzMgZGV2aWNlIHRyZWUgc3R1YiBbIGNvbnRyb2xsZXIgQCBvZmZzZXQgMHg0 MDAwMDAgXQorICoKKyAqIENvcHlyaWdodCAyMDExIC0gMjAxNSBGcmVlc2NhbGUgU2VtaWNvbmR1 Y3RvciBJbmMuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJp bmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0 ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMgYXJlIG1ldDoKKyAqICAg ICAqIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUg Y29weXJpZ2h0CisgKgkgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZv bGxvd2luZyBkaXNjbGFpbWVyLgorICogICAgICogUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBm b3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqCSBub3RpY2UsIHRoaXMg bGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisg KgkgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhl IGRpc3RyaWJ1dGlvbi4KKyAqICAgICAqIE5laXRoZXIgdGhlIG5hbWUgb2YgRnJlZXNjYWxlIFNl bWljb25kdWN0b3Igbm9yIHRoZQorICoJIG5hbWVzIG9mIGl0cyBjb250cmlidXRvcnMgbWF5IGJl IHVzZWQgdG8gZW5kb3JzZSBvciBwcm9tb3RlIHByb2R1Y3RzCisgKgkgZGVyaXZlZCBmcm9tIHRo aXMgc29mdHdhcmUgd2l0aG91dCBzcGVjaWZpYyBwcmlvciB3cml0dGVuIHBlcm1pc3Npb24uCisg KgorICoKKyAqIEFMVEVSTkFUSVZFTFksIHRoaXMgc29mdHdhcmUgbWF5IGJlIGRpc3RyaWJ1dGVk IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUKKyAqIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlICgi R1BMIikgYXMgcHVibGlzaGVkIGJ5IHRoZSBGcmVlIFNvZnR3YXJlCisgKiBGb3VuZGF0aW9uLCBl aXRoZXIgdmVyc2lvbiAyIG9mIHRoYXQgTGljZW5zZSBvciAoYXQgeW91ciBvcHRpb24pIGFueQor ICogbGF0ZXIgdmVyc2lvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEZy ZWVzY2FsZSBTZW1pY29uZHVjdG9yIGBgQVMgSVMnJyBBTkQgQU5ZCisgKiBFWFBSRVNTIE9SIElN UExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRSBJTVBM SUVECisgKiBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQ QVJUSUNVTEFSIFBVUlBPU0UgQVJFCisgKiBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBG cmVlc2NhbGUgU2VtaWNvbmR1Y3RvciBCRSBMSUFCTEUgRk9SIEFOWQorICogRElSRUNULCBJTkRJ UkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERB TUFHRVMKKyAqIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0Yg U1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsKKyAqIExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQ Uk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORAorICog T04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBM SUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0Up IEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTCisgKiBTT0ZUV0FSRSwg RVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLwor CitmbWFuQDQwMDAwMCB7CisJZm1hbjBfcnhfMHgwYjogcG9ydEA4YjAwMCB7CisJCWNlbGwtaW5k ZXggPSA8MHhiPjsKKwkJY29tcGF0aWJsZSA9ICJmc2wsZm1hbi12Mi1wb3J0LXJ4IjsKKwkJcmVn ID0gPDB4OGIwMDAgMHgxMDAwPjsKKwl9OworCisJZm1hbjBfdHhfMHgyYjogcG9ydEBhYjAwMCB7 CisJCWNlbGwtaW5kZXggPSA8MHgyYj47CisJCWNvbXBhdGlibGUgPSAiZnNsLGZtYW4tdjItcG9y dC10eCI7CisJCXJlZyA9IDwweGFiMDAwIDB4MTAwMD47CisJfTsKKworCWV0aGVybmV0QGU2MDAw IHsKKwkJY2VsbC1pbmRleCA9IDwzPjsKKwkJY29tcGF0aWJsZSA9ICJmc2wsZm1hbi1kdHNlYyI7 CisJCXJlZyA9IDwweGU2MDAwIDB4MTAwMD47CisJCWZzbCxmbWFuLXBvcnRzID0gPCZmbWFuMF9y eF8weDBiICZmbWFuMF90eF8weDJiPjsKKwkJdGJpLWhhbmRsZSA9IDwmdGJpMz47CisJCXB0cC10 aW1lciA9IDwmcHRwX3RpbWVyMD47CisJfTsKKworCW1kaW9AZTcxMjAgeworCQkjYWRkcmVzcy1j ZWxscyA9IDwxPjsKKwkJI3NpemUtY2VsbHMgPSA8MD47CisJCWNvbXBhdGlibGUgPSAiZnNsLGZt YW4tbWRpbyI7CisJCXJlZyA9IDwweGU3MTIwIDB4ZWUwPjsKKworCQl0YmkzOiB0YmktcGh5QDgg eworCQkJcmVnID0gPDB4OD47CisJCQlkZXZpY2VfdHlwZSA9ICJ0YmktcGh5IjsKKwkJfTsKKwl9 OworfTsKZGlmZiAtLWdpdCBhL2FyY2gvcG93ZXJwYy9ib290L2R0cy9mc2wvcW9yaXEtZm1hbi0w LTFnLTQuZHRzaSBiL2FyY2gvcG93ZXJwYy9ib290L2R0cy9mc2wvcW9yaXEtZm1hbi0wLTFnLTQu ZHRzaQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi41ZmNlYjI0Ci0tLSAvZGV2 L251bGwKKysrIGIvYXJjaC9wb3dlcnBjL2Jvb3QvZHRzL2ZzbC9xb3JpcS1mbWFuLTAtMWctNC5k dHNpCkBAIC0wLDAgKzEsNjggQEAKKy8qCisgKiBRb3JJUSBGTWFuIDFnIHBvcnQgIzQgZGV2aWNl IHRyZWUgc3R1YiBbIGNvbnRyb2xsZXIgQCBvZmZzZXQgMHg0MDAwMDAgXQorICoKKyAqIENvcHly aWdodCAyMDExIC0gMjAxNSBGcmVlc2NhbGUgU2VtaWNvbmR1Y3RvciBJbmMuCisgKgorICogUmVk aXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3 aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUg Zm9sbG93aW5nIGNvbmRpdGlvbnMgYXJlIG1ldDoKKyAqICAgICAqIFJlZGlzdHJpYnV0aW9ucyBv ZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKgkgbm90aWNl LCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgor ICogICAgICogUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRo ZSBhYm92ZSBjb3B5cmlnaHQKKyAqCSBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFu ZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKgkgZG9jdW1lbnRhdGlvbiBhbmQv b3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqICAg ICAqIE5laXRoZXIgdGhlIG5hbWUgb2YgRnJlZXNjYWxlIFNlbWljb25kdWN0b3Igbm9yIHRoZQor ICoJIG5hbWVzIG9mIGl0cyBjb250cmlidXRvcnMgbWF5IGJlIHVzZWQgdG8gZW5kb3JzZSBvciBw cm9tb3RlIHByb2R1Y3RzCisgKgkgZGVyaXZlZCBmcm9tIHRoaXMgc29mdHdhcmUgd2l0aG91dCBz cGVjaWZpYyBwcmlvciB3cml0dGVuIHBlcm1pc3Npb24uCisgKgorICoKKyAqIEFMVEVSTkFUSVZF TFksIHRoaXMgc29mdHdhcmUgbWF5IGJlIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSB0ZXJtcyBvZiB0 aGUKKyAqIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlICgiR1BMIikgYXMgcHVibGlzaGVkIGJ5 IHRoZSBGcmVlIFNvZnR3YXJlCisgKiBGb3VuZGF0aW9uLCBlaXRoZXIgdmVyc2lvbiAyIG9mIHRo YXQgTGljZW5zZSBvciAoYXQgeW91ciBvcHRpb24pIGFueQorICogbGF0ZXIgdmVyc2lvbi4KKyAq CisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEZyZWVzY2FsZSBTZW1pY29uZHVjdG9y IGBgQVMgSVMnJyBBTkQgQU5ZCisgKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5D TFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRSBJTVBMSUVECisgKiBXQVJSQU5USUVTIE9G IE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJF CisgKiBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBGcmVlc2NhbGUgU2VtaWNvbmR1Y3Rv ciBCRSBMSUFCTEUgRk9SIEFOWQorICogRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BF Q0lBTCwgRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMKKyAqIChJTkNMVURJTkcs IEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBT RVJWSUNFUzsKKyAqIExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJ TlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORAorICogT04gQU5ZIFRIRU9SWSBPRiBMSUFC SUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAq IChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBP VVQgT0YgVEhFIFVTRSBPRiBUSElTCisgKiBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRI RSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCitmbWFuQDQwMDAwMCB7CisJZm1h bjBfcnhfMHgwYzogcG9ydEA4YzAwMCB7CisJCWNlbGwtaW5kZXggPSA8MHhjPjsKKwkJY29tcGF0 aWJsZSA9ICJmc2wsZm1hbi12Mi1wb3J0LXJ4IjsKKwkJcmVnID0gPDB4OGMwMDAgMHgxMDAwPjsK Kwl9OworCisJZm1hbjBfdHhfMHgyYzogcG9ydEBhYzAwMCB7CisJCWNlbGwtaW5kZXggPSA8MHgy Yz47CisJCWNvbXBhdGlibGUgPSAiZnNsLGZtYW4tdjItcG9ydC10eCI7CisJCXJlZyA9IDwweGFj MDAwIDB4MTAwMD47CisJfTsKKworCWV0aGVybmV0QGU4MDAwIHsKKwkJY2VsbC1pbmRleCA9IDw0 PjsKKwkJY29tcGF0aWJsZSA9ICJmc2wsZm1hbi1kdHNlYyI7CisJCXJlZyA9IDwweGU4MDAwIDB4 MTAwMD47CisJCWZzbCxmbWFuLXBvcnRzID0gPCZmbWFuMF9yeF8weDBjICZmbWFuMF90eF8weDJj PjsKKwkJdGJpLWhhbmRsZSA9IDwmdGJpND47CisJCXB0cC10aW1lciA9IDwmcHRwX3RpbWVyMD47 CisJfTsKKworCW1kaW9AZTkxMjAgeworCQkjYWRkcmVzcy1jZWxscyA9IDwxPjsKKwkJI3NpemUt Y2VsbHMgPSA8MD47CisJCWNvbXBhdGlibGUgPSAiZnNsLGZtYW4tbWRpbyI7CisJCXJlZyA9IDww eGU5MTIwIDB4ZWUwPjsKKworCQl0Ymk0OiB0YmktcGh5QDggeworCQkJcmVnID0gPDB4OD47CisJ CQlkZXZpY2VfdHlwZSA9ICJ0YmktcGh5IjsKKwkJfTsKKwl9OworfTsKZGlmZiAtLWdpdCBhL2Fy Y2gvcG93ZXJwYy9ib290L2R0cy9mc2wvcW9yaXEtZm1hbi0wLmR0c2kgYi9hcmNoL3Bvd2VycGMv Ym9vdC9kdHMvZnNsL3FvcmlxLWZtYW4tMC5kdHNpCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4 IDAwMDAwMDAuLjZjMDk0OGUKLS0tIC9kZXYvbnVsbAorKysgYi9hcmNoL3Bvd2VycGMvYm9vdC9k dHMvZnNsL3FvcmlxLWZtYW4tMC5kdHNpCkBAIC0wLDAgKzEsMTAxIEBACisvKgorICogUW9ySVEg Rk1hbiBkZXZpY2UgdHJlZSBzdHViIFsgY29udHJvbGxlciBAIG9mZnNldCAweDQwMDAwMCBdCisg KgorICogQ29weXJpZ2h0IDIwMTEgLSAyMDE1IEZyZWVzY2FsZSBTZW1pY29uZHVjdG9yIEluYy4K KyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1z LCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRl ZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucyBhcmUgbWV0OgorICogICAgICogUmVkaXN0 cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQK KyAqCSBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRp c2NsYWltZXIuCisgKiAgICAgKiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCBy ZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICoJIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNv bmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqCSBkb2N1bWVu dGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0 aW9uLgorICogICAgICogTmVpdGhlciB0aGUgbmFtZSBvZiBGcmVlc2NhbGUgU2VtaWNvbmR1Y3Rv ciBub3IgdGhlCisgKgkgbmFtZXMgb2YgaXRzIGNvbnRyaWJ1dG9ycyBtYXkgYmUgdXNlZCB0byBl bmRvcnNlIG9yIHByb21vdGUgcHJvZHVjdHMKKyAqCSBkZXJpdmVkIGZyb20gdGhpcyBzb2Z0d2Fy ZSB3aXRob3V0IHNwZWNpZmljIHByaW9yIHdyaXR0ZW4gcGVybWlzc2lvbi4KKyAqCisgKgorICog QUxURVJOQVRJVkVMWSwgdGhpcyBzb2Z0d2FyZSBtYXkgYmUgZGlzdHJpYnV0ZWQgdW5kZXIgdGhl IHRlcm1zIG9mIHRoZQorICogR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgKCJHUEwiKSBhcyBw dWJsaXNoZWQgYnkgdGhlIEZyZWUgU29mdHdhcmUKKyAqIEZvdW5kYXRpb24sIGVpdGhlciB2ZXJz aW9uIDIgb2YgdGhhdCBMaWNlbnNlIG9yIChhdCB5b3VyIG9wdGlvbikgYW55CisgKiBsYXRlciB2 ZXJzaW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgRnJlZXNjYWxlIFNl bWljb25kdWN0b3IgYGBBUyBJUycnIEFORCBBTlkKKyAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJS QU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFIElNUExJRUQKKyAqIFdB UlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIg UFVSUE9TRSBBUkUKKyAqIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEZyZWVzY2FsZSBT ZW1pY29uZHVjdG9yIEJFIExJQUJMRSBGT1IgQU5ZCisgKiBESVJFQ1QsIElORElSRUNULCBJTkNJ REVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUworICog KElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRF IEdPT0RTIE9SIFNFUlZJQ0VTOworICogTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9S IEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5ECisgKiBPTiBBTlkgVEhF T1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwg T1IgVE9SVAorICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJ TiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMKKyAqIFNPRlRXQVJFLCBFVkVOIElGIEFE VklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKK2ZtYW4wOiBm bWFuQDQwMDAwMCB7CisJI2FkZHJlc3MtY2VsbHMgPSA8MT47CisJI3NpemUtY2VsbHMgPSA8MT47 CisJY2VsbC1pbmRleCA9IDwwPjsKKwljb21wYXRpYmxlID0gImZzbCxmbWFuIjsKKwlyYW5nZXMg PSA8MCAweDQwMDAwMCAweDEwMDAwMD47CisJcmVnID0gPDB4NDAwMDAwIDB4MTAwMDAwPjsKKwlp bnRlcnJ1cHRzID0gPDk2IDIgMCAwPiwgPDE2IDIgMSAxPjsKKwljbG9ja3MgPSA8JmNsb2NrZ2Vu IDMgMD47CisJY2xvY2stbmFtZXMgPSAiZm0wY2xrIjsKKwlmc2wscW1hbi1jaGFubmVsLXJhbmdl ID0gPDB4NDAgMHhjPjsKKworCW11cmFtQDAgeworCQljb21wYXRpYmxlID0gImZzbCxmbWFuLW11 cmFtIjsKKwkJcmVnID0gPDB4MCAweDI4MDAwPjsKKwl9OworCisJZm1hbjBfb2hfMHgxOiBwb3J0 QDgxMDAwIHsKKwkJY2VsbC1pbmRleCA9IDwweDE+OworCQljb21wYXRpYmxlID0gImZzbCxmbWFu LXYyLXBvcnQtb2giOworCQlyZWcgPSA8MHg4MTAwMCAweDEwMDA+OworCX07CisKKwlmbWFuMF9v aF8weDI6IHBvcnRAODIwMDAgeworCQljZWxsLWluZGV4ID0gPDB4Mj47CisJCWNvbXBhdGlibGUg PSAiZnNsLGZtYW4tdjItcG9ydC1vaCI7CisJCXJlZyA9IDwweDgyMDAwIDB4MTAwMD47CisJfTsK KworCWZtYW4wX29oXzB4MzogcG9ydEA4MzAwMCB7CisJCWNlbGwtaW5kZXggPSA8MHgzPjsKKwkJ Y29tcGF0aWJsZSA9ICJmc2wsZm1hbi12Mi1wb3J0LW9oIjsKKwkJcmVnID0gPDB4ODMwMDAgMHgx MDAwPjsKKwl9OworCisJZm1hbjBfb2hfMHg0OiBwb3J0QDg0MDAwIHsKKwkJY2VsbC1pbmRleCA9 IDwweDQ+OworCQljb21wYXRpYmxlID0gImZzbCxmbWFuLXYyLXBvcnQtb2giOworCQlyZWcgPSA8 MHg4NDAwMCAweDEwMDA+OworCX07CisKKwlmbWFuMF9vaF8weDU6IHBvcnRAODUwMDAgeworCQlj ZWxsLWluZGV4ID0gPDB4NT47CisJCWNvbXBhdGlibGUgPSAiZnNsLGZtYW4tdjItcG9ydC1vaCI7 CisJCXJlZyA9IDwweDg1MDAwIDB4MTAwMD47CisJCXN0YXR1cyA9ICJkaXNhYmxlZCI7CisJfTsK KworCWZtYW4wX29oXzB4NjogcG9ydEA4NjAwMCB7CisJCWNlbGwtaW5kZXggPSA8MHg2PjsKKwkJ Y29tcGF0aWJsZSA9ICJmc2wsZm1hbi12Mi1wb3J0LW9oIjsKKwkJcmVnID0gPDB4ODYwMDAgMHgx MDAwPjsKKwkJc3RhdHVzID0gImRpc2FibGVkIjsKKwl9OworCisJZm1hbjBfb2hfMHg3OiBwb3J0 QDg3MDAwIHsKKwkJY2VsbC1pbmRleCA9IDwweDc+OworCQljb21wYXRpYmxlID0gImZzbCxmbWFu LXYyLXBvcnQtb2giOworCQlyZWcgPSA8MHg4NzAwMCAweDEwMDA+OworCQlzdGF0dXMgPSAiZGlz YWJsZWQiOworCX07CisKKwlwdHBfdGltZXIwOiBwdHAtdGltZXJAZmUwMDAgeworCQljb21wYXRp YmxlID0gImZzbCxmbWFuLXB0cC10aW1lciI7CisJCXJlZyA9IDwweGZlMDAwIDB4MTAwMD47CisJ fTsKK307CmRpZmYgLS1naXQgYS9hcmNoL3Bvd2VycGMvYm9vdC9kdHMvZnNsL3FvcmlxLWZtYW4t MS0xMGctMC5kdHNpIGIvYXJjaC9wb3dlcnBjL2Jvb3QvZHRzL2ZzbC9xb3JpcS1mbWFuLTEtMTBn LTAuZHRzaQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi44M2FlODdiCi0tLSAv ZGV2L251bGwKKysrIGIvYXJjaC9wb3dlcnBjL2Jvb3QvZHRzL2ZzbC9xb3JpcS1mbWFuLTEtMTBn LTAuZHRzaQpAQCAtMCwwICsxLDYxIEBACisvKgorICogUW9ySVEgRk1hbiAxMGcgcG9ydCAjMCBk ZXZpY2UgdHJlZSBzdHViIFsgY29udHJvbGxlciBAIG9mZnNldCAweDUwMDAwMCBdCisgKgorICog Q29weXJpZ2h0IDIwMTEgLSAyMDE1IEZyZWVzY2FsZSBTZW1pY29uZHVjdG9yIEluYy4KKyAqCisg KiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRo IG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0 IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucyBhcmUgbWV0OgorICogICAgICogUmVkaXN0cmlidXRp b25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqCSBu b3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWlt ZXIuCisgKiAgICAgKiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1 Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICoJIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlv bnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqCSBkb2N1bWVudGF0aW9u IGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgor ICogICAgICogTmVpdGhlciB0aGUgbmFtZSBvZiBGcmVlc2NhbGUgU2VtaWNvbmR1Y3RvciBub3Ig dGhlCisgKgkgbmFtZXMgb2YgaXRzIGNvbnRyaWJ1dG9ycyBtYXkgYmUgdXNlZCB0byBlbmRvcnNl IG9yIHByb21vdGUgcHJvZHVjdHMKKyAqCSBkZXJpdmVkIGZyb20gdGhpcyBzb2Z0d2FyZSB3aXRo b3V0IHNwZWNpZmljIHByaW9yIHdyaXR0ZW4gcGVybWlzc2lvbi4KKyAqCisgKgorICogQUxURVJO QVRJVkVMWSwgdGhpcyBzb2Z0d2FyZSBtYXkgYmUgZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIHRlcm1z IG9mIHRoZQorICogR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgKCJHUEwiKSBhcyBwdWJsaXNo ZWQgYnkgdGhlIEZyZWUgU29mdHdhcmUKKyAqIEZvdW5kYXRpb24sIGVpdGhlciB2ZXJzaW9uIDIg b2YgdGhhdCBMaWNlbnNlIG9yIChhdCB5b3VyIG9wdGlvbikgYW55CisgKiBsYXRlciB2ZXJzaW9u LgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgRnJlZXNjYWxlIFNlbWljb25k dWN0b3IgYGBBUyBJUycnIEFORCBBTlkKKyAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVT LCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFIElNUExJRUQKKyAqIFdBUlJBTlRJ RVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9T RSBBUkUKKyAqIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEZyZWVzY2FsZSBTZW1pY29u ZHVjdG9yIEJFIExJQUJMRSBGT1IgQU5ZCisgKiBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFM LCBTUEVDSUFMLCBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUworICogKElOQ0xV RElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RT IE9SIFNFUlZJQ0VTOworICogTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lO RVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5ECisgKiBPTiBBTlkgVEhFT1JZIE9G IExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9S VAorICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkg V0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMKKyAqIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQg T0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKK2ZtYW5ANTAwMDAwIHsK KwlmbWFuMV9yeF8weDEwOiBwb3J0QDkwMDAwIHsKKwkJY2VsbC1pbmRleCA9IDwweDEwPjsKKwkJ Y29tcGF0aWJsZSA9ICJmc2wsZm1hbi12Mi1wb3J0LXJ4IjsKKwkJcmVnID0gPDB4OTAwMDAgMHgx MDAwPjsKKwl9OworCisJZm1hbjFfdHhfMHgzMDogcG9ydEBiMDAwMCB7CisJCWNlbGwtaW5kZXgg PSA8MHgzMD47CisJCWNvbXBhdGlibGUgPSAiZnNsLGZtYW4tdjItcG9ydC10eCI7CisJCXJlZyA9 IDwweGIwMDAwIDB4MTAwMD47CisJfTsKKworCWV0aGVybmV0QGYwMDAwIHsKKwkJY2VsbC1pbmRl eCA9IDwweDg+OworCQljb21wYXRpYmxlID0gImZzbCxmbWFuLXhnZWMiOworCQlyZWcgPSA8MHhm MDAwMCAweDEwMDA+OworCQlmc2wsZm1hbi1wb3J0cyA9IDwmZm1hbjFfcnhfMHgxMCAmZm1hbjFf dHhfMHgzMD47CisJfTsKKworCW1kaW9AZjEwMDAgeworCQkjYWRkcmVzcy1jZWxscyA9IDwxPjsK KwkJI3NpemUtY2VsbHMgPSA8MD47CisJCWNvbXBhdGlibGUgPSAiZnNsLGZtYW4teG1kaW8iOwor CQlyZWcgPSA8MHhmMTAwMCAweDEwMDA+OworCX07Cit9OwpkaWZmIC0tZ2l0IGEvYXJjaC9wb3dl cnBjL2Jvb3QvZHRzL2ZzbC9xb3JpcS1mbWFuLTEtMWctMC5kdHNpIGIvYXJjaC9wb3dlcnBjL2Jv b3QvZHRzL2ZzbC9xb3JpcS1mbWFuLTEtMWctMC5kdHNpCm5ldyBmaWxlIG1vZGUgMTAwNjQ0Cmlu ZGV4IDAwMDAwMDAuLmIwZjBlMzYKLS0tIC9kZXYvbnVsbAorKysgYi9hcmNoL3Bvd2VycGMvYm9v dC9kdHMvZnNsL3FvcmlxLWZtYW4tMS0xZy0wLmR0c2kKQEAgLTAsMCArMSw2OCBAQAorLyoKKyAq IFFvcklRIEZNYW4gMWcgcG9ydCAjMCBkZXZpY2UgdHJlZSBzdHViIFsgY29udHJvbGxlciBAIG9m ZnNldCAweDUwMDAwMCBdCisgKgorICogQ29weXJpZ2h0IDIwMTEgLSAyMDE1IEZyZWVzY2FsZSBT ZW1pY29uZHVjdG9yIEluYy4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJj ZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJl IHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucyBhcmUgbWV0 OgorICogICAgICogUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRo ZSBhYm92ZSBjb3B5cmlnaHQKKyAqCSBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFu ZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAgICAgKiBSZWRpc3RyaWJ1dGlvbnMgaW4g YmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICoJIG5vdGlj ZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBp biB0aGUKKyAqCSBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQg d2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICogICAgICogTmVpdGhlciB0aGUgbmFtZSBvZiBGcmVl c2NhbGUgU2VtaWNvbmR1Y3RvciBub3IgdGhlCisgKgkgbmFtZXMgb2YgaXRzIGNvbnRyaWJ1dG9y cyBtYXkgYmUgdXNlZCB0byBlbmRvcnNlIG9yIHByb21vdGUgcHJvZHVjdHMKKyAqCSBkZXJpdmVk IGZyb20gdGhpcyBzb2Z0d2FyZSB3aXRob3V0IHNwZWNpZmljIHByaW9yIHdyaXR0ZW4gcGVybWlz c2lvbi4KKyAqCisgKgorICogQUxURVJOQVRJVkVMWSwgdGhpcyBzb2Z0d2FyZSBtYXkgYmUgZGlz dHJpYnV0ZWQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZQorICogR05VIEdlbmVyYWwgUHVibGljIExp Y2Vuc2UgKCJHUEwiKSBhcyBwdWJsaXNoZWQgYnkgdGhlIEZyZWUgU29mdHdhcmUKKyAqIEZvdW5k YXRpb24sIGVpdGhlciB2ZXJzaW9uIDIgb2YgdGhhdCBMaWNlbnNlIG9yIChhdCB5b3VyIG9wdGlv bikgYW55CisgKiBsYXRlciB2ZXJzaW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklE RUQgQlkgRnJlZXNjYWxlIFNlbWljb25kdWN0b3IgYGBBUyBJUycnIEFORCBBTlkKKyAqIEVYUFJF U1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywg VEhFIElNUExJRUQKKyAqIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNT IEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBUkUKKyAqIERJU0NMQUlNRUQuIElOIE5PIEVWRU5U IFNIQUxMIEZyZWVzY2FsZSBTZW1pY29uZHVjdG9yIEJFIExJQUJMRSBGT1IgQU5ZCisgKiBESVJF Q1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SIENPTlNFUVVF TlRJQUwgREFNQUdFUworICogKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJF TUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOworICogTE9TUyBPRiBVU0UsIERB VEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQg QU5ECisgKiBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwg U1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9U SEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMKKyAqIFNP RlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdF LgorICovCisKK2ZtYW5ANTAwMDAwIHsKKwlmbWFuMV9yeF8weDA4OiBwb3J0QDg4MDAwIHsKKwkJ Y2VsbC1pbmRleCA9IDwweDg+OworCQljb21wYXRpYmxlID0gImZzbCxmbWFuLXYyLXBvcnQtcngi OworCQlyZWcgPSA8MHg4ODAwMCAweDEwMDA+OworCX07CisKKwlmbWFuMV90eF8weDI4OiBwb3J0 QGE4MDAwIHsKKwkJY2VsbC1pbmRleCA9IDwweDI4PjsKKwkJY29tcGF0aWJsZSA9ICJmc2wsZm1h bi12Mi1wb3J0LXR4IjsKKwkJcmVnID0gPDB4YTgwMDAgMHgxMDAwPjsKKwl9OworCisJZXRoZXJu ZXRAZTAwMDAgeworCQljZWxsLWluZGV4ID0gPDA+OworCQljb21wYXRpYmxlID0gImZzbCxmbWFu LWR0c2VjIjsKKwkJcmVnID0gPDB4ZTAwMDAgMHgxMDAwPjsKKwkJZnNsLGZtYW4tcG9ydHMgPSA8 JmZtYW4xX3J4XzB4MDggJmZtYW4xX3R4XzB4Mjg+OworCQl0YmktaGFuZGxlID0gPCZ0Ymk1PjsK KwkJcHRwLXRpbWVyID0gPCZwdHBfdGltZXIxPjsKKwl9OworCisJbWRpb0BlMTEyMCB7CisJCSNh ZGRyZXNzLWNlbGxzID0gPDE+OworCQkjc2l6ZS1jZWxscyA9IDwwPjsKKwkJY29tcGF0aWJsZSA9 ICJmc2wsZm1hbi1tZGlvIjsKKwkJcmVnID0gPDB4ZTExMjAgMHhlZTA+OworCisJCXRiaTU6IHRi aS1waHlAOCB7CisJCQlyZWcgPSA8MHg4PjsKKwkJCWRldmljZV90eXBlID0gInRiaS1waHkiOwor CQl9OworCX07Cit9OwpkaWZmIC0tZ2l0IGEvYXJjaC9wb3dlcnBjL2Jvb3QvZHRzL2ZzbC9xb3Jp cS1mbWFuLTEtMWctMS5kdHNpIGIvYXJjaC9wb3dlcnBjL2Jvb3QvZHRzL2ZzbC9xb3JpcS1mbWFu LTEtMWctMS5kdHNpCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmEzYTc5ZjgK LS0tIC9kZXYvbnVsbAorKysgYi9hcmNoL3Bvd2VycGMvYm9vdC9kdHMvZnNsL3FvcmlxLWZtYW4t MS0xZy0xLmR0c2kKQEAgLTAsMCArMSw2OCBAQAorLyoKKyAqIFFvcklRIEZNYW4gMWcgcG9ydCAj MSBkZXZpY2UgdHJlZSBzdHViIFsgY29udHJvbGxlciBAIG9mZnNldCAweDUwMDAwMCBdCisgKgor ICogQ29weXJpZ2h0IDIwMTEgLSAyMDE1IEZyZWVzY2FsZSBTZW1pY29uZHVjdG9yIEluYy4KKyAq CisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3 aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0 aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucyBhcmUgbWV0OgorICogICAgICogUmVkaXN0cmli dXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAq CSBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2Ns YWltZXIuCisgKiAgICAgKiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXBy b2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICoJIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRp dGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqCSBkb2N1bWVudGF0 aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9u LgorICogICAgICogTmVpdGhlciB0aGUgbmFtZSBvZiBGcmVlc2NhbGUgU2VtaWNvbmR1Y3RvciBu b3IgdGhlCisgKgkgbmFtZXMgb2YgaXRzIGNvbnRyaWJ1dG9ycyBtYXkgYmUgdXNlZCB0byBlbmRv cnNlIG9yIHByb21vdGUgcHJvZHVjdHMKKyAqCSBkZXJpdmVkIGZyb20gdGhpcyBzb2Z0d2FyZSB3 aXRob3V0IHNwZWNpZmljIHByaW9yIHdyaXR0ZW4gcGVybWlzc2lvbi4KKyAqCisgKgorICogQUxU RVJOQVRJVkVMWSwgdGhpcyBzb2Z0d2FyZSBtYXkgYmUgZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIHRl cm1zIG9mIHRoZQorICogR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgKCJHUEwiKSBhcyBwdWJs aXNoZWQgYnkgdGhlIEZyZWUgU29mdHdhcmUKKyAqIEZvdW5kYXRpb24sIGVpdGhlciB2ZXJzaW9u IDIgb2YgdGhhdCBMaWNlbnNlIG9yIChhdCB5b3VyIG9wdGlvbikgYW55CisgKiBsYXRlciB2ZXJz aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgRnJlZXNjYWxlIFNlbWlj b25kdWN0b3IgYGBBUyBJUycnIEFORCBBTlkKKyAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5U SUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFIElNUExJRUQKKyAqIFdBUlJB TlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVS UE9TRSBBUkUKKyAqIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEZyZWVzY2FsZSBTZW1p Y29uZHVjdG9yIEJFIExJQUJMRSBGT1IgQU5ZCisgKiBESVJFQ1QsIElORElSRUNULCBJTkNJREVO VEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUworICogKElO Q0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdP T0RTIE9SIFNFUlZJQ0VTOworICogTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJV U0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5ECisgKiBPTiBBTlkgVEhFT1JZ IE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1Ig VE9SVAorICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBB TlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMKKyAqIFNPRlRXQVJFLCBFVkVOIElGIEFEVklT RUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKK2ZtYW5ANTAwMDAw IHsKKwlmbWFuMV9yeF8weDA5OiBwb3J0QDg5MDAwIHsKKwkJY2VsbC1pbmRleCA9IDwweDk+Owor CQljb21wYXRpYmxlID0gImZzbCxmbWFuLXYyLXBvcnQtcngiOworCQlyZWcgPSA8MHg4OTAwMCAw eDEwMDA+OworCX07CisKKwlmbWFuMV90eF8weDI5OiBwb3J0QGE5MDAwIHsKKwkJY2VsbC1pbmRl eCA9IDwweDI5PjsKKwkJY29tcGF0aWJsZSA9ICJmc2wsZm1hbi12Mi1wb3J0LXR4IjsKKwkJcmVn ID0gPDB4YTkwMDAgMHgxMDAwPjsKKwl9OworCisJZXRoZXJuZXRAZTIwMDAgeworCQljZWxsLWlu ZGV4ID0gPDE+OworCQljb21wYXRpYmxlID0gImZzbCxmbWFuLWR0c2VjIjsKKwkJcmVnID0gPDB4 ZTIwMDAgMHgxMDAwPjsKKwkJZnNsLGZtYW4tcG9ydHMgPSA8JmZtYW4xX3J4XzB4MDkgJmZtYW4x X3R4XzB4Mjk+OworCQl0YmktaGFuZGxlID0gPCZ0Ymk2PjsKKwkJcHRwLXRpbWVyID0gPCZwdHBf dGltZXIxPjsKKwl9OworCisJbWRpb0BlMzEyMCB7CisJCSNhZGRyZXNzLWNlbGxzID0gPDE+Owor CQkjc2l6ZS1jZWxscyA9IDwwPjsKKwkJY29tcGF0aWJsZSA9ICJmc2wsZm1hbi1tZGlvIjsKKwkJ cmVnID0gPDB4ZTMxMjAgMHhlZTA+OworCisJCXRiaTY6IHRiaS1waHlAOCB7CisJCQlyZWcgPSA8 MHg4PjsKKwkJCWRldmljZV90eXBlID0gInRiaS1waHkiOworCQl9OworCX07Cit9OwpkaWZmIC0t Z2l0IGEvYXJjaC9wb3dlcnBjL2Jvb3QvZHRzL2ZzbC9xb3JpcS1mbWFuLTEtMWctMi5kdHNpIGIv YXJjaC9wb3dlcnBjL2Jvb3QvZHRzL2ZzbC9xb3JpcS1mbWFuLTEtMWctMi5kdHNpCm5ldyBmaWxl IG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjk2YTY5YTgKLS0tIC9kZXYvbnVsbAorKysgYi9h cmNoL3Bvd2VycGMvYm9vdC9kdHMvZnNsL3FvcmlxLWZtYW4tMS0xZy0yLmR0c2kKQEAgLTAsMCAr MSw2OCBAQAorLyoKKyAqIFFvcklRIEZNYW4gMWcgcG9ydCAjMiBkZXZpY2UgdHJlZSBzdHViIFsg Y29udHJvbGxlciBAIG9mZnNldCAweDUwMDAwMCBdCisgKgorICogQ29weXJpZ2h0IDIwMTEgLSAy MDE1IEZyZWVzY2FsZSBTZW1pY29uZHVjdG9yIEluYy4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBh bmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1v ZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29u ZGl0aW9ucyBhcmUgbWV0OgorICogICAgICogUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2Rl IG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqCSBub3RpY2UsIHRoaXMgbGlzdCBv ZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAgICAgKiBSZWRp c3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHly aWdodAorICoJIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dp bmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqCSBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRl cmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICogICAgICogTmVpdGhlciB0 aGUgbmFtZSBvZiBGcmVlc2NhbGUgU2VtaWNvbmR1Y3RvciBub3IgdGhlCisgKgkgbmFtZXMgb2Yg aXRzIGNvbnRyaWJ1dG9ycyBtYXkgYmUgdXNlZCB0byBlbmRvcnNlIG9yIHByb21vdGUgcHJvZHVj dHMKKyAqCSBkZXJpdmVkIGZyb20gdGhpcyBzb2Z0d2FyZSB3aXRob3V0IHNwZWNpZmljIHByaW9y IHdyaXR0ZW4gcGVybWlzc2lvbi4KKyAqCisgKgorICogQUxURVJOQVRJVkVMWSwgdGhpcyBzb2Z0 d2FyZSBtYXkgYmUgZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZQorICogR05VIEdl bmVyYWwgUHVibGljIExpY2Vuc2UgKCJHUEwiKSBhcyBwdWJsaXNoZWQgYnkgdGhlIEZyZWUgU29m dHdhcmUKKyAqIEZvdW5kYXRpb24sIGVpdGhlciB2ZXJzaW9uIDIgb2YgdGhhdCBMaWNlbnNlIG9y IChhdCB5b3VyIG9wdGlvbikgYW55CisgKiBsYXRlciB2ZXJzaW9uLgorICoKKyAqIFRISVMgU09G VFdBUkUgSVMgUFJPVklERUQgQlkgRnJlZXNjYWxlIFNlbWljb25kdWN0b3IgYGBBUyBJUycnIEFO RCBBTlkKKyAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBO T1QgTElNSVRFRCBUTywgVEhFIElNUExJRUQKKyAqIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklM SVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBUkUKKyAqIERJU0NMQUlN RUQuIElOIE5PIEVWRU5UIFNIQUxMIEZyZWVzY2FsZSBTZW1pY29uZHVjdG9yIEJFIExJQUJMRSBG T1IgQU5ZCisgKiBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExB UlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUworICogKElOQ0xVRElORywgQlVUIE5PVCBMSU1J VEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOworICog TE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikg SE9XRVZFUiBDQVVTRUQgQU5ECisgKiBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhF UiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xVRElORyBO RUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNF IE9GIFRISVMKKyAqIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZ IE9GIFNVQ0ggREFNQUdFLgorICovCisKK2ZtYW5ANTAwMDAwIHsKKwlmbWFuMV9yeF8weDBhOiBw b3J0QDhhMDAwIHsKKwkJY2VsbC1pbmRleCA9IDwweGE+OworCQljb21wYXRpYmxlID0gImZzbCxm bWFuLXYyLXBvcnQtcngiOworCQlyZWcgPSA8MHg4YTAwMCAweDEwMDA+OworCX07CisKKwlmbWFu MV90eF8weDJhOiBwb3J0QGFhMDAwIHsKKwkJY2VsbC1pbmRleCA9IDwweDJhPjsKKwkJY29tcGF0 aWJsZSA9ICJmc2wsZm1hbi12Mi1wb3J0LXR4IjsKKwkJcmVnID0gPDB4YWEwMDAgMHgxMDAwPjsK Kwl9OworCisJZXRoZXJuZXRAZTQwMDAgeworCQljZWxsLWluZGV4ID0gPDI+OworCQljb21wYXRp YmxlID0gImZzbCxmbWFuLWR0c2VjIjsKKwkJcmVnID0gPDB4ZTQwMDAgMHgxMDAwPjsKKwkJZnNs LGZtYW4tcG9ydHMgPSA8JmZtYW4xX3J4XzB4MGEgJmZtYW4xX3R4XzB4MmE+OworCQl0YmktaGFu ZGxlID0gPCZ0Ymk3PjsKKwkJcHRwLXRpbWVyID0gPCZwdHBfdGltZXIxPjsKKwl9OworCisJbWRp b0BlNTEyMCB7CisJCSNhZGRyZXNzLWNlbGxzID0gPDE+OworCQkjc2l6ZS1jZWxscyA9IDwwPjsK KwkJY29tcGF0aWJsZSA9ICJmc2wsZm1hbi1tZGlvIjsKKwkJcmVnID0gPDB4ZTUxMjAgMHhlZTA+ OworCisJCXRiaTc6IHRiaS1waHlAOCB7CisJCQlyZWcgPSA8MHg4PjsKKwkJCWRldmljZV90eXBl ID0gInRiaS1waHkiOworCQl9OworCX07Cit9OwpkaWZmIC0tZ2l0IGEvYXJjaC9wb3dlcnBjL2Jv b3QvZHRzL2ZzbC9xb3JpcS1mbWFuLTEtMWctMy5kdHNpIGIvYXJjaC9wb3dlcnBjL2Jvb3QvZHRz L2ZzbC9xb3JpcS1mbWFuLTEtMWctMy5kdHNpCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAw MDAwMDAuLjc0MDVkMTkKLS0tIC9kZXYvbnVsbAorKysgYi9hcmNoL3Bvd2VycGMvYm9vdC9kdHMv ZnNsL3FvcmlxLWZtYW4tMS0xZy0zLmR0c2kKQEAgLTAsMCArMSw2OCBAQAorLyoKKyAqIFFvcklR IEZNYW4gMWcgcG9ydCAjMyBkZXZpY2UgdHJlZSBzdHViIFsgY29udHJvbGxlciBAIG9mZnNldCAw eDUwMDAwMCBdCisgKgorICogQ29weXJpZ2h0IDIwMTEgLSAyMDE1IEZyZWVzY2FsZSBTZW1pY29u ZHVjdG9yIEluYy4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQg YmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1p dHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucyBhcmUgbWV0OgorICog ICAgICogUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92 ZSBjb3B5cmlnaHQKKyAqCSBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUg Zm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAgICAgKiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5 IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICoJIG5vdGljZSwgdGhp cyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUK KyAqCSBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0 aGUgZGlzdHJpYnV0aW9uLgorICogICAgICogTmVpdGhlciB0aGUgbmFtZSBvZiBGcmVlc2NhbGUg U2VtaWNvbmR1Y3RvciBub3IgdGhlCisgKgkgbmFtZXMgb2YgaXRzIGNvbnRyaWJ1dG9ycyBtYXkg YmUgdXNlZCB0byBlbmRvcnNlIG9yIHByb21vdGUgcHJvZHVjdHMKKyAqCSBkZXJpdmVkIGZyb20g dGhpcyBzb2Z0d2FyZSB3aXRob3V0IHNwZWNpZmljIHByaW9yIHdyaXR0ZW4gcGVybWlzc2lvbi4K KyAqCisgKgorICogQUxURVJOQVRJVkVMWSwgdGhpcyBzb2Z0d2FyZSBtYXkgYmUgZGlzdHJpYnV0 ZWQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZQorICogR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2Ug KCJHUEwiKSBhcyBwdWJsaXNoZWQgYnkgdGhlIEZyZWUgU29mdHdhcmUKKyAqIEZvdW5kYXRpb24s IGVpdGhlciB2ZXJzaW9uIDIgb2YgdGhhdCBMaWNlbnNlIG9yIChhdCB5b3VyIG9wdGlvbikgYW55 CisgKiBsYXRlciB2ZXJzaW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkg RnJlZXNjYWxlIFNlbWljb25kdWN0b3IgYGBBUyBJUycnIEFORCBBTlkKKyAqIEVYUFJFU1MgT1Ig SU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFIElN UExJRUQKKyAqIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBB IFBBUlRJQ1VMQVIgUFVSUE9TRSBBUkUKKyAqIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxM IEZyZWVzY2FsZSBTZW1pY29uZHVjdG9yIEJFIExJQUJMRSBGT1IgQU5ZCisgKiBESVJFQ1QsIElO RElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwg REFNQUdFUworICogKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBP RiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOworICogTE9TUyBPRiBVU0UsIERBVEEsIE9S IFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5ECisg KiBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNU IExJQUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lT RSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMKKyAqIFNPRlRXQVJF LCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICov CisKK2ZtYW5ANTAwMDAwIHsKKwlmbWFuMV9yeF8weDBiOiBwb3J0QDhiMDAwIHsKKwkJY2VsbC1p bmRleCA9IDwweGI+OworCQljb21wYXRpYmxlID0gImZzbCxmbWFuLXYyLXBvcnQtcngiOworCQly ZWcgPSA8MHg4YjAwMCAweDEwMDA+OworCX07CisKKwlmbWFuMV90eF8weDJiOiBwb3J0QGFiMDAw IHsKKwkJY2VsbC1pbmRleCA9IDwweDJiPjsKKwkJY29tcGF0aWJsZSA9ICJmc2wsZm1hbi12Mi1w b3J0LXR4IjsKKwkJcmVnID0gPDB4YWIwMDAgMHgxMDAwPjsKKwl9OworCisJZXRoZXJuZXRAZTYw MDAgeworCQljZWxsLWluZGV4ID0gPDM+OworCQljb21wYXRpYmxlID0gImZzbCxmbWFuLWR0c2Vj IjsKKwkJcmVnID0gPDB4ZTYwMDAgMHgxMDAwPjsKKwkJZnNsLGZtYW4tcG9ydHMgPSA8JmZtYW4x X3J4XzB4MGIgJmZtYW4xX3R4XzB4MmI+OworCQl0YmktaGFuZGxlID0gPCZ0Ymk4PjsKKwkJcHRw LXRpbWVyID0gPCZwdHBfdGltZXIxPjsKKwl9OworCisJbWRpb0BlNzEyMCB7CisJCSNhZGRyZXNz LWNlbGxzID0gPDE+OworCQkjc2l6ZS1jZWxscyA9IDwwPjsKKwkJY29tcGF0aWJsZSA9ICJmc2ws Zm1hbi1tZGlvIjsKKwkJcmVnID0gPDB4ZTcxMjAgMHhlZTA+OworCisJCXRiaTg6IHRiaS1waHlA OCB7CisJCQlyZWcgPSA8MHg4PjsKKwkJCWRldmljZV90eXBlID0gInRiaS1waHkiOworCQl9Owor CX07Cit9OwpkaWZmIC0tZ2l0IGEvYXJjaC9wb3dlcnBjL2Jvb3QvZHRzL2ZzbC9xb3JpcS1mbWFu LTEtMWctNC5kdHNpIGIvYXJjaC9wb3dlcnBjL2Jvb3QvZHRzL2ZzbC9xb3JpcS1mbWFuLTEtMWct NC5kdHNpCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmY0OWFkNjkKLS0tIC9k ZXYvbnVsbAorKysgYi9hcmNoL3Bvd2VycGMvYm9vdC9kdHMvZnNsL3FvcmlxLWZtYW4tMS0xZy00 LmR0c2kKQEAgLTAsMCArMSw2OCBAQAorLyoKKyAqIFFvcklRIEZNYW4gMWcgcG9ydCAjNCBkZXZp Y2UgdHJlZSBzdHViIFsgY29udHJvbGxlciBAIG9mZnNldCAweDUwMDAwMCBdCisgKgorICogQ29w eXJpZ2h0IDIwMTEgLSAyMDE1IEZyZWVzY2FsZSBTZW1pY29uZHVjdG9yIEluYy4KKyAqCisgKiBS ZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9y IHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRo ZSBmb2xsb3dpbmcgY29uZGl0aW9ucyBhcmUgbWV0OgorICogICAgICogUmVkaXN0cmlidXRpb25z IG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqCSBub3Rp Y2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIu CisgKiAgICAgKiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2Ug dGhlIGFib3ZlIGNvcHlyaWdodAorICoJIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMg YW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqCSBkb2N1bWVudGF0aW9uIGFu ZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICog ICAgICogTmVpdGhlciB0aGUgbmFtZSBvZiBGcmVlc2NhbGUgU2VtaWNvbmR1Y3RvciBub3IgdGhl CisgKgkgbmFtZXMgb2YgaXRzIGNvbnRyaWJ1dG9ycyBtYXkgYmUgdXNlZCB0byBlbmRvcnNlIG9y IHByb21vdGUgcHJvZHVjdHMKKyAqCSBkZXJpdmVkIGZyb20gdGhpcyBzb2Z0d2FyZSB3aXRob3V0 IHNwZWNpZmljIHByaW9yIHdyaXR0ZW4gcGVybWlzc2lvbi4KKyAqCisgKgorICogQUxURVJOQVRJ VkVMWSwgdGhpcyBzb2Z0d2FyZSBtYXkgYmUgZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIHRlcm1zIG9m IHRoZQorICogR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgKCJHUEwiKSBhcyBwdWJsaXNoZWQg YnkgdGhlIEZyZWUgU29mdHdhcmUKKyAqIEZvdW5kYXRpb24sIGVpdGhlciB2ZXJzaW9uIDIgb2Yg dGhhdCBMaWNlbnNlIG9yIChhdCB5b3VyIG9wdGlvbikgYW55CisgKiBsYXRlciB2ZXJzaW9uLgor ICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgRnJlZXNjYWxlIFNlbWljb25kdWN0 b3IgYGBBUyBJUycnIEFORCBBTlkKKyAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJ TkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFIElNUExJRUQKKyAqIFdBUlJBTlRJRVMg T0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBB UkUKKyAqIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEZyZWVzY2FsZSBTZW1pY29uZHVj dG9yIEJFIExJQUJMRSBGT1IgQU5ZCisgKiBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBT UEVDSUFMLCBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUworICogKElOQ0xVRElO RywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9S IFNFUlZJQ0VTOworICogTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNT IElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5ECisgKiBPTiBBTlkgVEhFT1JZIE9GIExJ QUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAor ICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZ IE9VVCBPRiBUSEUgVVNFIE9GIFRISVMKKyAqIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0Yg VEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKK2ZtYW5ANTAwMDAwIHsKKwlm bWFuMV9yeF8weDBjOiBwb3J0QDhjMDAwIHsKKwkJY2VsbC1pbmRleCA9IDwweGM+OworCQljb21w YXRpYmxlID0gImZzbCxmbWFuLXYyLXBvcnQtcngiOworCQlyZWcgPSA8MHg4YzAwMCAweDEwMDA+ OworCX07CisKKwlmbWFuMV90eF8weDJjOiBwb3J0QGFjMDAwIHsKKwkJY2VsbC1pbmRleCA9IDww eDJjPjsKKwkJY29tcGF0aWJsZSA9ICJmc2wsZm1hbi12Mi1wb3J0LXR4IjsKKwkJcmVnID0gPDB4 YWMwMDAgMHgxMDAwPjsKKwl9OworCisJZXRoZXJuZXRAZTgwMDAgeworCQljZWxsLWluZGV4ID0g PDQ+OworCQljb21wYXRpYmxlID0gImZzbCxmbWFuLWR0c2VjIjsKKwkJcmVnID0gPDB4ZTgwMDAg MHgxMDAwPjsKKwkJZnNsLGZtYW4tcG9ydHMgPSA8JmZtYW4xX3J4XzB4MGMgJmZtYW4xX3R4XzB4 MmM+OworCQl0YmktaGFuZGxlID0gPCZ0Ymk5PjsKKwkJcHRwLXRpbWVyID0gPCZwdHBfdGltZXIx PjsKKwl9OworCisJbWRpb0BlOTEyMCB7CisJCSNhZGRyZXNzLWNlbGxzID0gPDE+OworCQkjc2l6 ZS1jZWxscyA9IDwwPjsKKwkJY29tcGF0aWJsZSA9ICJmc2wsZm1hbi1tZGlvIjsKKwkJcmVnID0g PDB4ZTkxMjAgMHhlZTA+OworCisJCXRiaTk6IHRiaS1waHlAOCB7CisJCQlyZWcgPSA8MHg4PjsK KwkJCWRldmljZV90eXBlID0gInRiaS1waHkiOworCQl9OworCX07Cit9OwpkaWZmIC0tZ2l0IGEv YXJjaC9wb3dlcnBjL2Jvb3QvZHRzL2ZzbC9xb3JpcS1mbWFuLTEuZHRzaSBiL2FyY2gvcG93ZXJw Yy9ib290L2R0cy9mc2wvcW9yaXEtZm1hbi0xLmR0c2kKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5k ZXggMDAwMDAwMC4uZTA3YzU1YwotLS0gL2Rldi9udWxsCisrKyBiL2FyY2gvcG93ZXJwYy9ib290 L2R0cy9mc2wvcW9yaXEtZm1hbi0xLmR0c2kKQEAgLTAsMCArMSwxMDEgQEAKKy8qCisgKiBRb3JJ USBGTWFuIGRldmljZSB0cmVlIHN0dWIgWyBjb250cm9sbGVyIEAgb2Zmc2V0IDB4NTAwMDAwIF0K KyAqCisgKiBDb3B5cmlnaHQgMjAxMSAtIDIwMTUgRnJlZXNjYWxlIFNlbWljb25kdWN0b3IgSW5j LgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9y bXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3Zp ZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zIGFyZSBtZXQ6CisgKiAgICAgKiBSZWRp c3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdo dAorICoJIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcg ZGlzY2xhaW1lci4KKyAqICAgICAqIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0 IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKgkgbm90aWNlLCB0aGlzIGxpc3Qgb2Yg Y29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICoJIGRvY3Vt ZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmli dXRpb24uCisgKiAgICAgKiBOZWl0aGVyIHRoZSBuYW1lIG9mIEZyZWVzY2FsZSBTZW1pY29uZHVj dG9yIG5vciB0aGUKKyAqCSBuYW1lcyBvZiBpdHMgY29udHJpYnV0b3JzIG1heSBiZSB1c2VkIHRv IGVuZG9yc2Ugb3IgcHJvbW90ZSBwcm9kdWN0cworICoJIGRlcml2ZWQgZnJvbSB0aGlzIHNvZnR3 YXJlIHdpdGhvdXQgc3BlY2lmaWMgcHJpb3Igd3JpdHRlbiBwZXJtaXNzaW9uLgorICoKKyAqCisg KiBBTFRFUk5BVElWRUxZLCB0aGlzIHNvZnR3YXJlIG1heSBiZSBkaXN0cmlidXRlZCB1bmRlciB0 aGUgdGVybXMgb2YgdGhlCisgKiBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSAoIkdQTCIpIGFz IHB1Ymxpc2hlZCBieSB0aGUgRnJlZSBTb2Z0d2FyZQorICogRm91bmRhdGlvbiwgZWl0aGVyIHZl cnNpb24gMiBvZiB0aGF0IExpY2Vuc2Ugb3IgKGF0IHlvdXIgb3B0aW9uKSBhbnkKKyAqIGxhdGVy IHZlcnNpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBGcmVlc2NhbGUg U2VtaWNvbmR1Y3RvciBgYEFTIElTJycgQU5EIEFOWQorICogRVhQUkVTUyBPUiBJTVBMSUVEIFdB UlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUgSU1QTElFRAorICog V0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxB UiBQVVJQT1NFIEFSRQorICogRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgRnJlZXNjYWxl IFNlbWljb25kdWN0b3IgQkUgTElBQkxFIEZPUiBBTlkKKyAqIERJUkVDVCwgSU5ESVJFQ1QsIElO Q0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTCisg KiAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRV VEUgR09PRFMgT1IgU0VSVklDRVM7CisgKiBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsg T1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQKKyAqIE9OIEFOWSBU SEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZ LCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5H IElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUworICogU09GVFdBUkUsIEVWRU4gSUYg QURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworZm1hbjE6 IGZtYW5ANTAwMDAwIHsKKwkjYWRkcmVzcy1jZWxscyA9IDwxPjsKKwkjc2l6ZS1jZWxscyA9IDwx PjsKKwljZWxsLWluZGV4ID0gPDE+OworCWNvbXBhdGlibGUgPSAiZnNsLGZtYW4iOworCXJhbmdl cyA9IDwwIDB4NTAwMDAwIDB4MTAwMDAwPjsKKwlyZWcgPSA8MHg1MDAwMDAgMHgxMDAwMDA+Owor CWludGVycnVwdHMgPSA8OTcgMiAwIDA+LCA8MTYgMiAxIDA+OworCWNsb2NrcyA9IDwmY2xvY2tn ZW4gMyAxPjsKKwljbG9jay1uYW1lcyA9ICJmbTFjbGsiOworCWZzbCxxbWFuLWNoYW5uZWwtcmFu Z2UgPSA8MHg2MCAweGM+OworCisJbXVyYW1AMCB7CisJCWNvbXBhdGlibGUgPSAiZnNsLGZtYW4t bXVyYW0iOworCQlyZWcgPSA8MHgwIDB4MjgwMDA+OworCX07CisKKwlmbWFuMV9vaF8weDE6IHBv cnRAODEwMDAgeworCQljZWxsLWluZGV4ID0gPDB4MT47CisJCWNvbXBhdGlibGUgPSAiZnNsLGZt YW4tdjItcG9ydC1vaCI7CisJCXJlZyA9IDwweDgxMDAwIDB4MTAwMD47CisJfTsKKworCWZtYW4x X29oXzB4MjogcG9ydEA4MjAwMCB7CisJCWNlbGwtaW5kZXggPSA8MHgyPjsKKwkJY29tcGF0aWJs ZSA9ICJmc2wsZm1hbi12Mi1wb3J0LW9oIjsKKwkJcmVnID0gPDB4ODIwMDAgMHgxMDAwPjsKKwl9 OworCisJZm1hbjFfb2hfMHgzOiBwb3J0QDgzMDAwIHsKKwkJY2VsbC1pbmRleCA9IDwweDM+Owor CQljb21wYXRpYmxlID0gImZzbCxmbWFuLXYyLXBvcnQtb2giOworCQlyZWcgPSA8MHg4MzAwMCAw eDEwMDA+OworCX07CisKKwlmbWFuMV9vaF8weDQ6IHBvcnRAODQwMDAgeworCQljZWxsLWluZGV4 ID0gPDB4ND47CisJCWNvbXBhdGlibGUgPSAiZnNsLGZtYW4tdjItcG9ydC1vaCI7CisJCXJlZyA9 IDwweDg0MDAwIDB4MTAwMD47CisJfTsKKworCWZtYW4xX29oXzB4NTogcG9ydEA4NTAwMCB7CisJ CWNlbGwtaW5kZXggPSA8MHg1PjsKKwkJY29tcGF0aWJsZSA9ICJmc2wsZm1hbi12Mi1wb3J0LW9o IjsKKwkJcmVnID0gPDB4ODUwMDAgMHgxMDAwPjsKKwkJc3RhdHVzID0gImRpc2FibGVkIjsKKwl9 OworCisJZm1hbjFfb2hfMHg2OiBwb3J0QDg2MDAwIHsKKwkJY2VsbC1pbmRleCA9IDwweDY+Owor CQljb21wYXRpYmxlID0gImZzbCxmbWFuLXYyLXBvcnQtb2giOworCQlyZWcgPSA8MHg4NjAwMCAw eDEwMDA+OworCQlzdGF0dXMgPSAiZGlzYWJsZWQiOworCX07CisKKwlmbWFuMV9vaF8weDc6IHBv cnRAODcwMDAgeworCQljZWxsLWluZGV4ID0gPDB4Nz47CisJCWNvbXBhdGlibGUgPSAiZnNsLGZt YW4tdjItcG9ydC1vaCI7CisJCXJlZyA9IDwweDg3MDAwIDB4MTAwMD47CisJCXN0YXR1cyA9ICJk aXNhYmxlZCI7CisJfTsKKworCXB0cF90aW1lcjE6IHB0cC10aW1lckBmZTAwMCB7CisJCWNvbXBh dGlibGUgPSAiZnNsLGZtYW4tcHRwLXRpbWVyIjsKKwkJcmVnID0gPDB4ZmUwMDAgMHgxMDAwPjsK Kwl9OworfTsKZGlmZiAtLWdpdCBhL2FyY2gvcG93ZXJwYy9ib290L2R0cy9mc2wvcW9yaXEtZm1h bjMtMC0xMGctMC1iZXN0LWVmZm9ydC5kdHNpIGIvYXJjaC9wb3dlcnBjL2Jvb3QvZHRzL2ZzbC9x b3JpcS1mbWFuMy0wLTEwZy0wLWJlc3QtZWZmb3J0LmR0c2kKbmV3IGZpbGUgbW9kZSAxMDA2NDQK aW5kZXggMDAwMDAwMC4uMmU0NDFmYQotLS0gL2Rldi9udWxsCisrKyBiL2FyY2gvcG93ZXJwYy9i b290L2R0cy9mc2wvcW9yaXEtZm1hbjMtMC0xMGctMC1iZXN0LWVmZm9ydC5kdHNpCkBAIC0wLDAg KzEsNjYgQEAKKy8qCisgKiBRb3JJUSBGTWFuIHYzIDFnIHBvcnQgIzAgZGV2aWNlIHRyZWUgc3R1 YiBbIGNvbnRyb2xsZXIgQCBvZmZzZXQgMHg0MDAwMDAgXQorICoKKyAqIENvcHlyaWdodCAyMDEy IC0gMjAxNSBGcmVlc2NhbGUgU2VtaWNvbmR1Y3RvciBJbmMuCisgKgorICogUmVkaXN0cmlidXRp b24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0Cisg KiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5n IGNvbmRpdGlvbnMgYXJlIG1ldDoKKyAqICAgICAqIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2Ug Y29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKgkgbm90aWNlLCB0aGlzIGxp c3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogICAgICog UmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBj b3B5cmlnaHQKKyAqCSBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9s bG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKgkgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIg bWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqICAgICAqIE5laXRo ZXIgdGhlIG5hbWUgb2YgRnJlZXNjYWxlIFNlbWljb25kdWN0b3Igbm9yIHRoZQorICoJIG5hbWVz IG9mIGl0cyBjb250cmlidXRvcnMgbWF5IGJlIHVzZWQgdG8gZW5kb3JzZSBvciBwcm9tb3RlIHBy b2R1Y3RzCisgKgkgZGVyaXZlZCBmcm9tIHRoaXMgc29mdHdhcmUgd2l0aG91dCBzcGVjaWZpYyBw cmlvciB3cml0dGVuIHBlcm1pc3Npb24uCisgKgorICoKKyAqIEFMVEVSTkFUSVZFTFksIHRoaXMg c29mdHdhcmUgbWF5IGJlIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUKKyAqIEdO VSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlICgiR1BMIikgYXMgcHVibGlzaGVkIGJ5IHRoZSBGcmVl IFNvZnR3YXJlCisgKiBGb3VuZGF0aW9uLCBlaXRoZXIgdmVyc2lvbiAyIG9mIHRoYXQgTGljZW5z ZSBvciAoYXQgeW91ciBvcHRpb24pIGFueQorICogbGF0ZXIgdmVyc2lvbi4KKyAqCisgKiBUSElT IFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEZyZWVzY2FsZSBTZW1pY29uZHVjdG9yIGBgQVMgSVMn JyBBTkQgQU5ZCisgKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBC VVQgTk9UIExJTUlURUQgVE8sIFRIRSBJTVBMSUVECisgKiBXQVJSQU5USUVTIE9GIE1FUkNIQU5U QUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJFCisgKiBESVND TEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBGcmVlc2NhbGUgU2VtaWNvbmR1Y3RvciBCRSBMSUFC TEUgRk9SIEFOWQorICogRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhF TVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMKKyAqIChJTkNMVURJTkcsIEJVVCBOT1Qg TElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsK KyAqIExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJ T04pIEhPV0VWRVIgQ0FVU0VEIEFORAorICogT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdI RVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJ TkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhF IFVTRSBPRiBUSElTCisgKiBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJ TElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCitmbWFuQDQwMDAwMCB7CisJZm1hbjBfcnhfMHgw ODogcG9ydEA4ODAwMCB7CisJCWNlbGwtaW5kZXggPSA8MHg4PjsKKwkJY29tcGF0aWJsZSA9ICJm c2wsZm1hbi12My1wb3J0LXJ4IjsKKwkJcmVnID0gPDB4ODgwMDAgMHgxMDAwPjsKKwkJZnNsLGZt YW4tMTBnLXBvcnQ7CisJCWZzbCxmbWFuLWJlc3QtZWZmb3J0LXBvcnQ7CisJfTsKKworCWZtYW4w X3R4XzB4Mjg6IHBvcnRAYTgwMDAgeworCQljZWxsLWluZGV4ID0gPDB4Mjg+OworCQljb21wYXRp YmxlID0gImZzbCxmbWFuLXYzLXBvcnQtdHgiOworCQlyZWcgPSA8MHhhODAwMCAweDEwMDA+Owor CQlmc2wsZm1hbi0xMGctcG9ydDsKKwkJZnNsLGZtYW4tYmVzdC1lZmZvcnQtcG9ydDsKKwl9Owor CisJZXRoZXJuZXRAZTAwMDAgeworCQljZWxsLWluZGV4ID0gPDA+OworCQljb21wYXRpYmxlID0g ImZzbCxmbWFuLW1lbWFjIjsKKwkJcmVnID0gPDB4ZTAwMDAgMHgxMDAwPjsKKwkJZnNsLGZtYW4t cG9ydHMgPSA8JmZtYW4wX3J4XzB4MDggJmZtYW4wX3R4XzB4Mjg+OworCQlwdHAtdGltZXIgPSA8 JnB0cF90aW1lcjA+OworCX07CisKKwltZGlvQGUxMDAwIHsKKwkJI2FkZHJlc3MtY2VsbHMgPSA8 MT47CisJCSNzaXplLWNlbGxzID0gPDA+OworCQljb21wYXRpYmxlID0gImZzbCxmbWFuLW1lbWFj LW1kaW8iLCAiZnNsLGZtYW4teG1kaW8iOworCQlyZWcgPSA8MHhlMTAwMCAweDEwMDA+OworCX07 Cit9OwpkaWZmIC0tZ2l0IGEvYXJjaC9wb3dlcnBjL2Jvb3QvZHRzL2ZzbC9xb3JpcS1mbWFuMy0w LTEwZy0wLmR0c2kgYi9hcmNoL3Bvd2VycGMvYm9vdC9kdHMvZnNsL3FvcmlxLWZtYW4zLTAtMTBn LTAuZHRzaQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4wYjhmODdmCi0tLSAv ZGV2L251bGwKKysrIGIvYXJjaC9wb3dlcnBjL2Jvb3QvZHRzL2ZzbC9xb3JpcS1mbWFuMy0wLTEw Zy0wLmR0c2kKQEAgLTAsMCArMSw2MyBAQAorLyoKKyAqIFFvcklRIEZNYW4gdjMgMTBnIHBvcnQg IzAgZGV2aWNlIHRyZWUgc3R1YiBbIGNvbnRyb2xsZXIgQCBvZmZzZXQgMHg0MDAwMDAgXQorICoK KyAqIENvcHlyaWdodCAyMDEyIC0gMjAxNSBGcmVlc2NhbGUgU2VtaWNvbmR1Y3RvciBJbmMuCisg KgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywg d2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQg dGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMgYXJlIG1ldDoKKyAqICAgICAqIFJlZGlzdHJp YnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0Cisg Kgkgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNj bGFpbWVyLgorICogICAgICogUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVw cm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqCSBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25k aXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKgkgZG9jdW1lbnRh dGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlv bi4KKyAqICAgICAqIE5laXRoZXIgdGhlIG5hbWUgb2YgRnJlZXNjYWxlIFNlbWljb25kdWN0b3Ig bm9yIHRoZQorICoJIG5hbWVzIG9mIGl0cyBjb250cmlidXRvcnMgbWF5IGJlIHVzZWQgdG8gZW5k b3JzZSBvciBwcm9tb3RlIHByb2R1Y3RzCisgKgkgZGVyaXZlZCBmcm9tIHRoaXMgc29mdHdhcmUg d2l0aG91dCBzcGVjaWZpYyBwcmlvciB3cml0dGVuIHBlcm1pc3Npb24uCisgKgorICoKKyAqIEFM VEVSTkFUSVZFTFksIHRoaXMgc29mdHdhcmUgbWF5IGJlIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSB0 ZXJtcyBvZiB0aGUKKyAqIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlICgiR1BMIikgYXMgcHVi bGlzaGVkIGJ5IHRoZSBGcmVlIFNvZnR3YXJlCisgKiBGb3VuZGF0aW9uLCBlaXRoZXIgdmVyc2lv biAyIG9mIHRoYXQgTGljZW5zZSBvciAoYXQgeW91ciBvcHRpb24pIGFueQorICogbGF0ZXIgdmVy c2lvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEZyZWVzY2FsZSBTZW1p Y29uZHVjdG9yIGBgQVMgSVMnJyBBTkQgQU5ZCisgKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFO VElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRSBJTVBMSUVECisgKiBXQVJS QU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBV UlBPU0UgQVJFCisgKiBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBGcmVlc2NhbGUgU2Vt aWNvbmR1Y3RvciBCRSBMSUFCTEUgRk9SIEFOWQorICogRElSRUNULCBJTkRJUkVDVCwgSU5DSURF TlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMKKyAqIChJ TkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBH T09EUyBPUiBTRVJWSUNFUzsKKyAqIExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBC VVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORAorICogT04gQU5ZIFRIRU9S WSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9S IFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4g QU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTCisgKiBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJ U0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCitmbWFuQDQwMDAw MCB7CisJZm1hbjBfcnhfMHgxMDogcG9ydEA5MDAwMCB7CisJCWNlbGwtaW5kZXggPSA8MHgxMD47 CisJCWNvbXBhdGlibGUgPSAiZnNsLGZtYW4tdjMtcG9ydC1yeCI7CisJCXJlZyA9IDwweDkwMDAw IDB4MTAwMD47CisJCWZzbCxmbWFuLTEwZy1wb3J0OworCX07CisKKwlmbWFuMF90eF8weDMwOiBw b3J0QGIwMDAwIHsKKwkJY2VsbC1pbmRleCA9IDwweDMwPjsKKwkJY29tcGF0aWJsZSA9ICJmc2ws Zm1hbi12My1wb3J0LXR4IjsKKwkJcmVnID0gPDB4YjAwMDAgMHgxMDAwPjsKKwkJZnNsLGZtYW4t MTBnLXBvcnQ7CisJfTsKKworCWV0aGVybmV0QGYwMDAwIHsKKwkJY2VsbC1pbmRleCA9IDwweDg+ OworCQljb21wYXRpYmxlID0gImZzbCxmbWFuLW1lbWFjIjsKKwkJcmVnID0gPDB4ZjAwMDAgMHgx MDAwPjsKKwkJZnNsLGZtYW4tcG9ydHMgPSA8JmZtYW4wX3J4XzB4MTAgJmZtYW4wX3R4XzB4MzA+ OworCX07CisKKwltZGlvQGYxMDAwIHsKKwkJI2FkZHJlc3MtY2VsbHMgPSA8MT47CisJCSNzaXpl LWNlbGxzID0gPDA+OworCQljb21wYXRpYmxlID0gImZzbCxmbWFuLW1lbWFjLW1kaW8iLCAiZnNs LGZtYW4teG1kaW8iOworCQlyZWcgPSA8MHhmMTAwMCAweDEwMDA+OworCX07Cit9OwpkaWZmIC0t Z2l0IGEvYXJjaC9wb3dlcnBjL2Jvb3QvZHRzL2ZzbC9xb3JpcS1mbWFuMy0wLTEwZy0xLWJlc3Qt ZWZmb3J0LmR0c2kgYi9hcmNoL3Bvd2VycGMvYm9vdC9kdHMvZnNsL3FvcmlxLWZtYW4zLTAtMTBn LTEtYmVzdC1lZmZvcnQuZHRzaQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5i YTZmMjI3Ci0tLSAvZGV2L251bGwKKysrIGIvYXJjaC9wb3dlcnBjL2Jvb3QvZHRzL2ZzbC9xb3Jp cS1mbWFuMy0wLTEwZy0xLWJlc3QtZWZmb3J0LmR0c2kKQEAgLTAsMCArMSw2NiBAQAorLyoKKyAq IFFvcklRIEZNYW4gdjMgMWcgcG9ydCAjMSBkZXZpY2UgdHJlZSBzdHViIFsgY29udHJvbGxlciBA IG9mZnNldCAweDQwMDAwMCBdCisgKgorICogQ29weXJpZ2h0IDIwMTIgLSAyMDE1IEZyZWVzY2Fs ZSBTZW1pY29uZHVjdG9yIEluYy4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNv dXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwg YXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucyBhcmUg bWV0OgorICogICAgICogUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWlu IHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqCSBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25z IGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAgICAgKiBSZWRpc3RyaWJ1dGlvbnMg aW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICoJIG5v dGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1l ciBpbiB0aGUKKyAqCSBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlk ZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICogICAgICogTmVpdGhlciB0aGUgbmFtZSBvZiBG cmVlc2NhbGUgU2VtaWNvbmR1Y3RvciBub3IgdGhlCisgKgkgbmFtZXMgb2YgaXRzIGNvbnRyaWJ1 dG9ycyBtYXkgYmUgdXNlZCB0byBlbmRvcnNlIG9yIHByb21vdGUgcHJvZHVjdHMKKyAqCSBkZXJp dmVkIGZyb20gdGhpcyBzb2Z0d2FyZSB3aXRob3V0IHNwZWNpZmljIHByaW9yIHdyaXR0ZW4gcGVy bWlzc2lvbi4KKyAqCisgKgorICogQUxURVJOQVRJVkVMWSwgdGhpcyBzb2Z0d2FyZSBtYXkgYmUg ZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZQorICogR05VIEdlbmVyYWwgUHVibGlj IExpY2Vuc2UgKCJHUEwiKSBhcyBwdWJsaXNoZWQgYnkgdGhlIEZyZWUgU29mdHdhcmUKKyAqIEZv dW5kYXRpb24sIGVpdGhlciB2ZXJzaW9uIDIgb2YgdGhhdCBMaWNlbnNlIG9yIChhdCB5b3VyIG9w dGlvbikgYW55CisgKiBsYXRlciB2ZXJzaW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJP VklERUQgQlkgRnJlZXNjYWxlIFNlbWljb25kdWN0b3IgYGBBUyBJUycnIEFORCBBTlkKKyAqIEVY UFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBU TywgVEhFIElNUExJRUQKKyAqIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRO RVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBUkUKKyAqIERJU0NMQUlNRUQuIElOIE5PIEVW RU5UIFNIQUxMIEZyZWVzY2FsZSBTZW1pY29uZHVjdG9yIEJFIExJQUJMRSBGT1IgQU5ZCisgKiBE SVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SIENPTlNF UVVFTlRJQUwgREFNQUdFUworICogKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9D VVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOworICogTE9TUyBPRiBVU0Us IERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVT RUQgQU5ECisgKiBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFD VCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9S IE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMKKyAq IFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFN QUdFLgorICovCisKK2ZtYW5ANDAwMDAwIHsKKwlmbWFuMF9yeF8weDA5OiBwb3J0QDg5MDAwIHsK KwkJY2VsbC1pbmRleCA9IDwweDk+OworCQljb21wYXRpYmxlID0gImZzbCxmbWFuLXYzLXBvcnQt cngiOworCQlyZWcgPSA8MHg4OTAwMCAweDEwMDA+OworCQlmc2wsZm1hbi0xMGctcG9ydDsKKwkJ ZnNsLGZtYW4tYmVzdC1lZmZvcnQtcG9ydDsKKwl9OworCisJZm1hbjBfdHhfMHgyOTogcG9ydEBh OTAwMCB7CisJCWNlbGwtaW5kZXggPSA8MHgyOT47CisJCWNvbXBhdGlibGUgPSAiZnNsLGZtYW4t djMtcG9ydC10eCI7CisJCXJlZyA9IDwweGE5MDAwIDB4MTAwMD47CisJCWZzbCxmbWFuLTEwZy1w b3J0OworCQlmc2wsZm1hbi1iZXN0LWVmZm9ydC1wb3J0OworCX07CisKKwlldGhlcm5ldEBlMjAw MCB7CisJCWNlbGwtaW5kZXggPSA8MT47CisJCWNvbXBhdGlibGUgPSAiZnNsLGZtYW4tbWVtYWMi OworCQlyZWcgPSA8MHhlMjAwMCAweDEwMDA+OworCQlmc2wsZm1hbi1wb3J0cyA9IDwmZm1hbjBf cnhfMHgwOSAmZm1hbjBfdHhfMHgyOT47CisJCXB0cC10aW1lciA9IDwmcHRwX3RpbWVyMD47CisJ fTsKKworCW1kaW9AZTMwMDAgeworCQkjYWRkcmVzcy1jZWxscyA9IDwxPjsKKwkJI3NpemUtY2Vs bHMgPSA8MD47CisJCWNvbXBhdGlibGUgPSAiZnNsLGZtYW4tbWVtYWMtbWRpbyIsICJmc2wsZm1h bi14bWRpbyI7CisJCXJlZyA9IDwweGUzMDAwIDB4MTAwMD47CisJfTsKK307CmRpZmYgLS1naXQg YS9hcmNoL3Bvd2VycGMvYm9vdC9kdHMvZnNsL3FvcmlxLWZtYW4zLTAtMTBnLTEuZHRzaSBiL2Fy Y2gvcG93ZXJwYy9ib290L2R0cy9mc2wvcW9yaXEtZm1hbjMtMC0xMGctMS5kdHNpCm5ldyBmaWxl IG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjg4NjAwMzgKLS0tIC9kZXYvbnVsbAorKysgYi9h cmNoL3Bvd2VycGMvYm9vdC9kdHMvZnNsL3FvcmlxLWZtYW4zLTAtMTBnLTEuZHRzaQpAQCAtMCww ICsxLDYzIEBACisvKgorICogUW9ySVEgRk1hbiB2MyAxMGcgcG9ydCAjMSBkZXZpY2UgdHJlZSBz dHViIFsgY29udHJvbGxlciBAIG9mZnNldCAweDQwMDAwMCBdCisgKgorICogQ29weXJpZ2h0IDIw MTIgLSAyMDE1IEZyZWVzY2FsZSBTZW1pY29uZHVjdG9yIEluYy4KKyAqCisgKiBSZWRpc3RyaWJ1 dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQK KyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dp bmcgY29uZGl0aW9ucyBhcmUgbWV0OgorICogICAgICogUmVkaXN0cmlidXRpb25zIG9mIHNvdXJj ZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqCSBub3RpY2UsIHRoaXMg bGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAgICAg KiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3Zl IGNvcHlyaWdodAorICoJIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBm b2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqCSBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhl ciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICogICAgICogTmVp dGhlciB0aGUgbmFtZSBvZiBGcmVlc2NhbGUgU2VtaWNvbmR1Y3RvciBub3IgdGhlCisgKgkgbmFt ZXMgb2YgaXRzIGNvbnRyaWJ1dG9ycyBtYXkgYmUgdXNlZCB0byBlbmRvcnNlIG9yIHByb21vdGUg cHJvZHVjdHMKKyAqCSBkZXJpdmVkIGZyb20gdGhpcyBzb2Z0d2FyZSB3aXRob3V0IHNwZWNpZmlj IHByaW9yIHdyaXR0ZW4gcGVybWlzc2lvbi4KKyAqCisgKgorICogQUxURVJOQVRJVkVMWSwgdGhp cyBzb2Z0d2FyZSBtYXkgYmUgZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZQorICog R05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgKCJHUEwiKSBhcyBwdWJsaXNoZWQgYnkgdGhlIEZy ZWUgU29mdHdhcmUKKyAqIEZvdW5kYXRpb24sIGVpdGhlciB2ZXJzaW9uIDIgb2YgdGhhdCBMaWNl bnNlIG9yIChhdCB5b3VyIG9wdGlvbikgYW55CisgKiBsYXRlciB2ZXJzaW9uLgorICoKKyAqIFRI SVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgRnJlZXNjYWxlIFNlbWljb25kdWN0b3IgYGBBUyBJ UycnIEFORCBBTlkKKyAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcs IEJVVCBOT1QgTElNSVRFRCBUTywgVEhFIElNUExJRUQKKyAqIFdBUlJBTlRJRVMgT0YgTUVSQ0hB TlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBUkUKKyAqIERJ U0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEZyZWVzY2FsZSBTZW1pY29uZHVjdG9yIEJFIExJ QUJMRSBGT1IgQU5ZCisgKiBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBF WEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUworICogKElOQ0xVRElORywgQlVUIE5P VCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VT OworICogTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQ VElPTikgSE9XRVZFUiBDQVVTRUQgQU5ECisgKiBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwg V0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xV RElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBU SEUgVVNFIE9GIFRISVMKKyAqIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJ QklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKK2ZtYW5ANDAwMDAwIHsKKwlmbWFuMF9yeF8w eDExOiBwb3J0QDkxMDAwIHsKKwkJY2VsbC1pbmRleCA9IDwweDExPjsKKwkJY29tcGF0aWJsZSA9 ICJmc2wsZm1hbi12My1wb3J0LXJ4IjsKKwkJcmVnID0gPDB4OTEwMDAgMHgxMDAwPjsKKwkJZnNs LGZtYW4tMTBnLXBvcnQ7CisJfTsKKworCWZtYW4wX3R4XzB4MzE6IHBvcnRAYjEwMDAgeworCQlj ZWxsLWluZGV4ID0gPDB4MzE+OworCQljb21wYXRpYmxlID0gImZzbCxmbWFuLXYzLXBvcnQtdHgi OworCQlyZWcgPSA8MHhiMTAwMCAweDEwMDA+OworCQlmc2wsZm1hbi0xMGctcG9ydDsKKwl9Owor CisJZXRoZXJuZXRAZjIwMDAgeworCQljZWxsLWluZGV4ID0gPDB4OT47CisJCWNvbXBhdGlibGUg PSAiZnNsLGZtYW4tbWVtYWMiOworCQlyZWcgPSA8MHhmMjAwMCAweDEwMDA+OworCQlmc2wsZm1h bi1wb3J0cyA9IDwmZm1hbjBfcnhfMHgxMSAmZm1hbjBfdHhfMHgzMT47CisJfTsKKworCW1kaW9A ZjMwMDAgeworCQkjYWRkcmVzcy1jZWxscyA9IDwxPjsKKwkJI3NpemUtY2VsbHMgPSA8MD47CisJ CWNvbXBhdGlibGUgPSAiZnNsLGZtYW4tbWVtYWMtbWRpbyIsICJmc2wsZm1hbi14bWRpbyI7CisJ CXJlZyA9IDwweGYzMDAwIDB4MTAwMD47CisJfTsKK307CmRpZmYgLS1naXQgYS9hcmNoL3Bvd2Vy cGMvYm9vdC9kdHMvZnNsL3FvcmlxLWZtYW4zLTAtMWctMC5kdHNpIGIvYXJjaC9wb3dlcnBjL2Jv b3QvZHRzL2ZzbC9xb3JpcS1mbWFuMy0wLTFnLTAuZHRzaQpuZXcgZmlsZSBtb2RlIDEwMDY0NApp bmRleCAwMDAwMDAwLi5hY2U5YzEzCi0tLSAvZGV2L251bGwKKysrIGIvYXJjaC9wb3dlcnBjL2Jv b3QvZHRzL2ZzbC9xb3JpcS1mbWFuMy0wLTFnLTAuZHRzaQpAQCAtMCwwICsxLDYyIEBACisvKgor ICogUW9ySVEgRk1hbiB2MyAxZyBwb3J0ICMwIGRldmljZSB0cmVlIHN0dWIgWyBjb250cm9sbGVy IEAgb2Zmc2V0IDB4NDAwMDAwIF0KKyAqCisgKiBDb3B5cmlnaHQgMjAxMiAtIDIwMTUgRnJlZXNj YWxlIFNlbWljb25kdWN0b3IgSW5jLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4g c291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9u LCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zIGFy ZSBtZXQ6CisgKiAgICAgKiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRh aW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICoJIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlv bnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqICAgICAqIFJlZGlzdHJpYnV0aW9u cyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKgkg bm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFp bWVyIGluIHRoZQorICoJIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92 aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKiAgICAgKiBOZWl0aGVyIHRoZSBuYW1lIG9m IEZyZWVzY2FsZSBTZW1pY29uZHVjdG9yIG5vciB0aGUKKyAqCSBuYW1lcyBvZiBpdHMgY29udHJp YnV0b3JzIG1heSBiZSB1c2VkIHRvIGVuZG9yc2Ugb3IgcHJvbW90ZSBwcm9kdWN0cworICoJIGRl cml2ZWQgZnJvbSB0aGlzIHNvZnR3YXJlIHdpdGhvdXQgc3BlY2lmaWMgcHJpb3Igd3JpdHRlbiBw ZXJtaXNzaW9uLgorICoKKyAqCisgKiBBTFRFUk5BVElWRUxZLCB0aGlzIHNvZnR3YXJlIG1heSBi ZSBkaXN0cmlidXRlZCB1bmRlciB0aGUgdGVybXMgb2YgdGhlCisgKiBHTlUgR2VuZXJhbCBQdWJs aWMgTGljZW5zZSAoIkdQTCIpIGFzIHB1Ymxpc2hlZCBieSB0aGUgRnJlZSBTb2Z0d2FyZQorICog Rm91bmRhdGlvbiwgZWl0aGVyIHZlcnNpb24gMiBvZiB0aGF0IExpY2Vuc2Ugb3IgKGF0IHlvdXIg b3B0aW9uKSBhbnkKKyAqIGxhdGVyIHZlcnNpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQ Uk9WSURFRCBCWSBGcmVlc2NhbGUgU2VtaWNvbmR1Y3RvciBgYEFTIElTJycgQU5EIEFOWQorICog RVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVE IFRPLCBUSEUgSU1QTElFRAorICogV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJ VE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFSRQorICogRElTQ0xBSU1FRC4gSU4gTk8g RVZFTlQgU0hBTEwgRnJlZXNjYWxlIFNlbWljb25kdWN0b3IgQkUgTElBQkxFIEZPUiBBTlkKKyAq IERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09O U0VRVUVOVElBTCBEQU1BR0VTCisgKiAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBS T0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7CisgKiBMT1NTIE9GIFVT RSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENB VVNFRCBBTkQKKyAqIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRS QUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0Ug T1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUwor ICogU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBE QU1BR0UuCisgKi8KKworZm1hbkA0MDAwMDAgeworCWZtYW4wX3J4XzB4MDg6IHBvcnRAODgwMDAg eworCQljZWxsLWluZGV4ID0gPDB4OD47CisJCWNvbXBhdGlibGUgPSAiZnNsLGZtYW4tdjMtcG9y dC1yeCI7CisJCXJlZyA9IDwweDg4MDAwIDB4MTAwMD47CisJfTsKKworCWZtYW4wX3R4XzB4Mjg6 IHBvcnRAYTgwMDAgeworCQljZWxsLWluZGV4ID0gPDB4Mjg+OworCQljb21wYXRpYmxlID0gImZz bCxmbWFuLXYzLXBvcnQtdHgiOworCQlyZWcgPSA8MHhhODAwMCAweDEwMDA+OworCX07CisKKwll dGhlcm5ldEBlMDAwMCB7CisJCWNlbGwtaW5kZXggPSA8MD47CisJCWNvbXBhdGlibGUgPSAiZnNs LGZtYW4tbWVtYWMiOworCQlyZWcgPSA8MHhlMDAwMCAweDEwMDA+OworCQlmc2wsZm1hbi1wb3J0 cyA9IDwmZm1hbjBfcnhfMHgwOCAmZm1hbjBfdHhfMHgyOD47CisJCXB0cC10aW1lciA9IDwmcHRw X3RpbWVyMD47CisJfTsKKworCW1kaW9AZTEwMDAgeworCQkjYWRkcmVzcy1jZWxscyA9IDwxPjsK KwkJI3NpemUtY2VsbHMgPSA8MD47CisJCWNvbXBhdGlibGUgPSAiZnNsLGZtYW4tbWVtYWMtbWRp byIsICJmc2wsZm1hbi14bWRpbyI7CisJCXJlZyA9IDwweGUxMDAwIDB4MTAwMD47CisJfTsKK307 CmRpZmYgLS1naXQgYS9hcmNoL3Bvd2VycGMvYm9vdC9kdHMvZnNsL3FvcmlxLWZtYW4zLTAtMWct MS5kdHNpIGIvYXJjaC9wb3dlcnBjL2Jvb3QvZHRzL2ZzbC9xb3JpcS1mbWFuMy0wLTFnLTEuZHRz aQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5hNGZjMjg2Ci0tLSAvZGV2L251 bGwKKysrIGIvYXJjaC9wb3dlcnBjL2Jvb3QvZHRzL2ZzbC9xb3JpcS1mbWFuMy0wLTFnLTEuZHRz aQpAQCAtMCwwICsxLDYyIEBACisvKgorICogUW9ySVEgRk1hbiB2MyAxZyBwb3J0ICMxIGRldmlj ZSB0cmVlIHN0dWIgWyBjb250cm9sbGVyIEAgb2Zmc2V0IDB4NDAwMDAwIF0KKyAqCisgKiBDb3B5 cmlnaHQgMjAxMiAtIDIwMTUgRnJlZXNjYWxlIFNlbWljb25kdWN0b3IgSW5jLgorICoKKyAqIFJl ZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Ig d2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhl IGZvbGxvd2luZyBjb25kaXRpb25zIGFyZSBtZXQ6CisgKiAgICAgKiBSZWRpc3RyaWJ1dGlvbnMg b2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICoJIG5vdGlj ZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4K KyAqICAgICAqIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0 aGUgYWJvdmUgY29weXJpZ2h0CisgKgkgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBh bmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICoJIGRvY3VtZW50YXRpb24gYW5k L29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKiAg ICAgKiBOZWl0aGVyIHRoZSBuYW1lIG9mIEZyZWVzY2FsZSBTZW1pY29uZHVjdG9yIG5vciB0aGUK KyAqCSBuYW1lcyBvZiBpdHMgY29udHJpYnV0b3JzIG1heSBiZSB1c2VkIHRvIGVuZG9yc2Ugb3Ig cHJvbW90ZSBwcm9kdWN0cworICoJIGRlcml2ZWQgZnJvbSB0aGlzIHNvZnR3YXJlIHdpdGhvdXQg c3BlY2lmaWMgcHJpb3Igd3JpdHRlbiBwZXJtaXNzaW9uLgorICoKKyAqCisgKiBBTFRFUk5BVElW RUxZLCB0aGlzIHNvZnR3YXJlIG1heSBiZSBkaXN0cmlidXRlZCB1bmRlciB0aGUgdGVybXMgb2Yg dGhlCisgKiBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSAoIkdQTCIpIGFzIHB1Ymxpc2hlZCBi eSB0aGUgRnJlZSBTb2Z0d2FyZQorICogRm91bmRhdGlvbiwgZWl0aGVyIHZlcnNpb24gMiBvZiB0 aGF0IExpY2Vuc2Ugb3IgKGF0IHlvdXIgb3B0aW9uKSBhbnkKKyAqIGxhdGVyIHZlcnNpb24uCisg KgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBGcmVlc2NhbGUgU2VtaWNvbmR1Y3Rv ciBgYEFTIElTJycgQU5EIEFOWQorICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElO Q0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUgSU1QTElFRAorICogV0FSUkFOVElFUyBP RiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFS RQorICogRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgRnJlZXNjYWxlIFNlbWljb25kdWN0 b3IgQkUgTElBQkxFIEZPUiBBTlkKKyAqIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQ RUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTCisgKiAoSU5DTFVESU5H LCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1Ig U0VSVklDRVM7CisgKiBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1Mg SU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQKKyAqIE9OIEFOWSBUSEVPUlkgT0YgTElB QklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisg KiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkg T1VUIE9GIFRIRSBVU0UgT0YgVEhJUworICogU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBU SEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworZm1hbkA0MDAwMDAgeworCWZt YW4wX3J4XzB4MDk6IHBvcnRAODkwMDAgeworCQljZWxsLWluZGV4ID0gPDB4OT47CisJCWNvbXBh dGlibGUgPSAiZnNsLGZtYW4tdjMtcG9ydC1yeCI7CisJCXJlZyA9IDwweDg5MDAwIDB4MTAwMD47 CisJfTsKKworCWZtYW4wX3R4XzB4Mjk6IHBvcnRAYTkwMDAgeworCQljZWxsLWluZGV4ID0gPDB4 Mjk+OworCQljb21wYXRpYmxlID0gImZzbCxmbWFuLXYzLXBvcnQtdHgiOworCQlyZWcgPSA8MHhh OTAwMCAweDEwMDA+OworCX07CisKKwlldGhlcm5ldEBlMjAwMCB7CisJCWNlbGwtaW5kZXggPSA8 MT47CisJCWNvbXBhdGlibGUgPSAiZnNsLGZtYW4tbWVtYWMiOworCQlyZWcgPSA8MHhlMjAwMCAw eDEwMDA+OworCQlmc2wsZm1hbi1wb3J0cyA9IDwmZm1hbjBfcnhfMHgwOSAmZm1hbjBfdHhfMHgy OT47CisJCXB0cC10aW1lciA9IDwmcHRwX3RpbWVyMD47CisJfTsKKworCW1kaW9AZTMwMDAgewor CQkjYWRkcmVzcy1jZWxscyA9IDwxPjsKKwkJI3NpemUtY2VsbHMgPSA8MD47CisJCWNvbXBhdGli bGUgPSAiZnNsLGZtYW4tbWVtYWMtbWRpbyIsICJmc2wsZm1hbi14bWRpbyI7CisJCXJlZyA9IDww eGUzMDAwIDB4MTAwMD47CisJfTsKK307CmRpZmYgLS1naXQgYS9hcmNoL3Bvd2VycGMvYm9vdC9k dHMvZnNsL3FvcmlxLWZtYW4zLTAtMWctMi5kdHNpIGIvYXJjaC9wb3dlcnBjL2Jvb3QvZHRzL2Zz bC9xb3JpcS1mbWFuMy0wLTFnLTIuZHRzaQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAw MDAwLi43ODU5NmZhCi0tLSAvZGV2L251bGwKKysrIGIvYXJjaC9wb3dlcnBjL2Jvb3QvZHRzL2Zz bC9xb3JpcS1mbWFuMy0wLTFnLTIuZHRzaQpAQCAtMCwwICsxLDYyIEBACisvKgorICogUW9ySVEg Rk1hbiB2MyAxZyBwb3J0ICMyIGRldmljZSB0cmVlIHN0dWIgWyBjb250cm9sbGVyIEAgb2Zmc2V0 IDB4NDAwMDAwIF0KKyAqCisgKiBDb3B5cmlnaHQgMjAxMiAtIDIwMTUgRnJlZXNjYWxlIFNlbWlj b25kdWN0b3IgSW5jLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFu ZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVy bWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zIGFyZSBtZXQ6Cisg KiAgICAgKiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFi b3ZlIGNvcHlyaWdodAorICoJIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRo ZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqICAgICAqIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5h cnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKgkgbm90aWNlLCB0 aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRo ZQorICoJIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRo IHRoZSBkaXN0cmlidXRpb24uCisgKiAgICAgKiBOZWl0aGVyIHRoZSBuYW1lIG9mIEZyZWVzY2Fs ZSBTZW1pY29uZHVjdG9yIG5vciB0aGUKKyAqCSBuYW1lcyBvZiBpdHMgY29udHJpYnV0b3JzIG1h eSBiZSB1c2VkIHRvIGVuZG9yc2Ugb3IgcHJvbW90ZSBwcm9kdWN0cworICoJIGRlcml2ZWQgZnJv bSB0aGlzIHNvZnR3YXJlIHdpdGhvdXQgc3BlY2lmaWMgcHJpb3Igd3JpdHRlbiBwZXJtaXNzaW9u LgorICoKKyAqCisgKiBBTFRFUk5BVElWRUxZLCB0aGlzIHNvZnR3YXJlIG1heSBiZSBkaXN0cmli dXRlZCB1bmRlciB0aGUgdGVybXMgb2YgdGhlCisgKiBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5z ZSAoIkdQTCIpIGFzIHB1Ymxpc2hlZCBieSB0aGUgRnJlZSBTb2Z0d2FyZQorICogRm91bmRhdGlv biwgZWl0aGVyIHZlcnNpb24gMiBvZiB0aGF0IExpY2Vuc2Ugb3IgKGF0IHlvdXIgb3B0aW9uKSBh bnkKKyAqIGxhdGVyIHZlcnNpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBC WSBGcmVlc2NhbGUgU2VtaWNvbmR1Y3RvciBgYEFTIElTJycgQU5EIEFOWQorICogRVhQUkVTUyBP UiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUg SU1QTElFRAorICogV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9S IEEgUEFSVElDVUxBUiBQVVJQT1NFIEFSRQorICogRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hB TEwgRnJlZXNjYWxlIFNlbWljb25kdWN0b3IgQkUgTElBQkxFIEZPUiBBTlkKKyAqIERJUkVDVCwg SU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElB TCBEQU1BR0VTCisgKiAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5U IE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7CisgKiBMT1NTIE9GIFVTRSwgREFUQSwg T1IgUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQK KyAqIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJ Q1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJX SVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUworICogU09GVFdB UkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisg Ki8KKworZm1hbkA0MDAwMDAgeworCWZtYW4wX3J4XzB4MGE6IHBvcnRAOGEwMDAgeworCQljZWxs LWluZGV4ID0gPDB4YT47CisJCWNvbXBhdGlibGUgPSAiZnNsLGZtYW4tdjMtcG9ydC1yeCI7CisJ CXJlZyA9IDwweDhhMDAwIDB4MTAwMD47CisJfTsKKworCWZtYW4wX3R4XzB4MmE6IHBvcnRAYWEw MDAgeworCQljZWxsLWluZGV4ID0gPDB4MmE+OworCQljb21wYXRpYmxlID0gImZzbCxmbWFuLXYz LXBvcnQtdHgiOworCQlyZWcgPSA8MHhhYTAwMCAweDEwMDA+OworCX07CisKKwlldGhlcm5ldEBl NDAwMCB7CisJCWNlbGwtaW5kZXggPSA8Mj47CisJCWNvbXBhdGlibGUgPSAiZnNsLGZtYW4tbWVt YWMiOworCQlyZWcgPSA8MHhlNDAwMCAweDEwMDA+OworCQlmc2wsZm1hbi1wb3J0cyA9IDwmZm1h bjBfcnhfMHgwYSAmZm1hbjBfdHhfMHgyYT47CisJCXB0cC10aW1lciA9IDwmcHRwX3RpbWVyMD47 CisJfTsKKworCW1kaW9AZTUwMDAgeworCQkjYWRkcmVzcy1jZWxscyA9IDwxPjsKKwkJI3NpemUt Y2VsbHMgPSA8MD47CisJCWNvbXBhdGlibGUgPSAiZnNsLGZtYW4tbWVtYWMtbWRpbyIsICJmc2ws Zm1hbi14bWRpbyI7CisJCXJlZyA9IDwweGU1MDAwIDB4MTAwMD47CisJfTsKK307CmRpZmYgLS1n aXQgYS9hcmNoL3Bvd2VycGMvYm9vdC9kdHMvZnNsL3FvcmlxLWZtYW4zLTAtMWctMy5kdHNpIGIv YXJjaC9wb3dlcnBjL2Jvb3QvZHRzL2ZzbC9xb3JpcS1mbWFuMy0wLTFnLTMuZHRzaQpuZXcgZmls ZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5hZjkzYWJkCi0tLSAvZGV2L251bGwKKysrIGIv YXJjaC9wb3dlcnBjL2Jvb3QvZHRzL2ZzbC9xb3JpcS1mbWFuMy0wLTFnLTMuZHRzaQpAQCAtMCww ICsxLDYyIEBACisvKgorICogUW9ySVEgRk1hbiB2MyAxZyBwb3J0ICMzIGRldmljZSB0cmVlIHN0 dWIgWyBjb250cm9sbGVyIEAgb2Zmc2V0IDB4NDAwMDAwIF0KKyAqCisgKiBDb3B5cmlnaHQgMjAx MiAtIDIwMTUgRnJlZXNjYWxlIFNlbWljb25kdWN0b3IgSW5jLgorICoKKyAqIFJlZGlzdHJpYnV0 aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAor ICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2lu ZyBjb25kaXRpb25zIGFyZSBtZXQ6CisgKiAgICAgKiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNl IGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICoJIG5vdGljZSwgdGhpcyBs aXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqICAgICAq IFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUg Y29weXJpZ2h0CisgKgkgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZv bGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICoJIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVy IG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKiAgICAgKiBOZWl0 aGVyIHRoZSBuYW1lIG9mIEZyZWVzY2FsZSBTZW1pY29uZHVjdG9yIG5vciB0aGUKKyAqCSBuYW1l cyBvZiBpdHMgY29udHJpYnV0b3JzIG1heSBiZSB1c2VkIHRvIGVuZG9yc2Ugb3IgcHJvbW90ZSBw cm9kdWN0cworICoJIGRlcml2ZWQgZnJvbSB0aGlzIHNvZnR3YXJlIHdpdGhvdXQgc3BlY2lmaWMg cHJpb3Igd3JpdHRlbiBwZXJtaXNzaW9uLgorICoKKyAqCisgKiBBTFRFUk5BVElWRUxZLCB0aGlz IHNvZnR3YXJlIG1heSBiZSBkaXN0cmlidXRlZCB1bmRlciB0aGUgdGVybXMgb2YgdGhlCisgKiBH TlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSAoIkdQTCIpIGFzIHB1Ymxpc2hlZCBieSB0aGUgRnJl ZSBTb2Z0d2FyZQorICogRm91bmRhdGlvbiwgZWl0aGVyIHZlcnNpb24gMiBvZiB0aGF0IExpY2Vu c2Ugb3IgKGF0IHlvdXIgb3B0aW9uKSBhbnkKKyAqIGxhdGVyIHZlcnNpb24uCisgKgorICogVEhJ UyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBGcmVlc2NhbGUgU2VtaWNvbmR1Y3RvciBgYEFTIElT JycgQU5EIEFOWQorICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywg QlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUgSU1QTElFRAorICogV0FSUkFOVElFUyBPRiBNRVJDSEFO VEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFSRQorICogRElT Q0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgRnJlZXNjYWxlIFNlbWljb25kdWN0b3IgQkUgTElB QkxFIEZPUiBBTlkKKyAqIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVY RU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTCisgKiAoSU5DTFVESU5HLCBCVVQgTk9U IExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7 CisgKiBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBU SU9OKSBIT1dFVkVSIENBVVNFRCBBTkQKKyAqIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBX SEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVE SU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRI RSBVU0UgT0YgVEhJUworICogU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lC SUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworZm1hbkA0MDAwMDAgeworCWZtYW4wX3J4XzB4 MGI6IHBvcnRAOGIwMDAgeworCQljZWxsLWluZGV4ID0gPDB4Yj47CisJCWNvbXBhdGlibGUgPSAi ZnNsLGZtYW4tdjMtcG9ydC1yeCI7CisJCXJlZyA9IDwweDhiMDAwIDB4MTAwMD47CisJfTsKKwor CWZtYW4wX3R4XzB4MmI6IHBvcnRAYWIwMDAgeworCQljZWxsLWluZGV4ID0gPDB4MmI+OworCQlj b21wYXRpYmxlID0gImZzbCxmbWFuLXYzLXBvcnQtdHgiOworCQlyZWcgPSA8MHhhYjAwMCAweDEw MDA+OworCX07CisKKwlldGhlcm5ldEBlNjAwMCB7CisJCWNlbGwtaW5kZXggPSA8Mz47CisJCWNv bXBhdGlibGUgPSAiZnNsLGZtYW4tbWVtYWMiOworCQlyZWcgPSA8MHhlNjAwMCAweDEwMDA+Owor CQlmc2wsZm1hbi1wb3J0cyA9IDwmZm1hbjBfcnhfMHgwYiAmZm1hbjBfdHhfMHgyYj47CisJCXB0 cC10aW1lciA9IDwmcHRwX3RpbWVyMD47CisJfTsKKworCW1kaW9AZTcwMDAgeworCQkjYWRkcmVz cy1jZWxscyA9IDwxPjsKKwkJI3NpemUtY2VsbHMgPSA8MD47CisJCWNvbXBhdGlibGUgPSAiZnNs LGZtYW4tbWVtYWMtbWRpbyIsICJmc2wsZm1hbi14bWRpbyI7CisJCXJlZyA9IDwweGU3MDAwIDB4 MTAwMD47CisJfTsKK307CmRpZmYgLS1naXQgYS9hcmNoL3Bvd2VycGMvYm9vdC9kdHMvZnNsL3Fv cmlxLWZtYW4zLTAtMWctNC5kdHNpIGIvYXJjaC9wb3dlcnBjL2Jvb3QvZHRzL2ZzbC9xb3JpcS1m bWFuMy0wLTFnLTQuZHRzaQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi45N2Nm ZmQ3Ci0tLSAvZGV2L251bGwKKysrIGIvYXJjaC9wb3dlcnBjL2Jvb3QvZHRzL2ZzbC9xb3JpcS1m bWFuMy0wLTFnLTQuZHRzaQpAQCAtMCwwICsxLDYyIEBACisvKgorICogUW9ySVEgRk1hbiB2MyAx ZyBwb3J0ICM0IGRldmljZSB0cmVlIHN0dWIgWyBjb250cm9sbGVyIEAgb2Zmc2V0IDB4NDAwMDAw IF0KKyAqCisgKiBDb3B5cmlnaHQgMjAxMiAtIDIwMTUgRnJlZXNjYWxlIFNlbWljb25kdWN0b3Ig SW5jLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkg Zm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHBy b3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zIGFyZSBtZXQ6CisgKiAgICAgKiBS ZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHly aWdodAorICoJIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dp bmcgZGlzY2xhaW1lci4KKyAqICAgICAqIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBt dXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKgkgbm90aWNlLCB0aGlzIGxpc3Qg b2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICoJIGRv Y3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0 cmlidXRpb24uCisgKiAgICAgKiBOZWl0aGVyIHRoZSBuYW1lIG9mIEZyZWVzY2FsZSBTZW1pY29u ZHVjdG9yIG5vciB0aGUKKyAqCSBuYW1lcyBvZiBpdHMgY29udHJpYnV0b3JzIG1heSBiZSB1c2Vk IHRvIGVuZG9yc2Ugb3IgcHJvbW90ZSBwcm9kdWN0cworICoJIGRlcml2ZWQgZnJvbSB0aGlzIHNv ZnR3YXJlIHdpdGhvdXQgc3BlY2lmaWMgcHJpb3Igd3JpdHRlbiBwZXJtaXNzaW9uLgorICoKKyAq CisgKiBBTFRFUk5BVElWRUxZLCB0aGlzIHNvZnR3YXJlIG1heSBiZSBkaXN0cmlidXRlZCB1bmRl ciB0aGUgdGVybXMgb2YgdGhlCisgKiBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSAoIkdQTCIp IGFzIHB1Ymxpc2hlZCBieSB0aGUgRnJlZSBTb2Z0d2FyZQorICogRm91bmRhdGlvbiwgZWl0aGVy IHZlcnNpb24gMiBvZiB0aGF0IExpY2Vuc2Ugb3IgKGF0IHlvdXIgb3B0aW9uKSBhbnkKKyAqIGxh dGVyIHZlcnNpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBGcmVlc2Nh bGUgU2VtaWNvbmR1Y3RvciBgYEFTIElTJycgQU5EIEFOWQorICogRVhQUkVTUyBPUiBJTVBMSUVE IFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUgSU1QTElFRAor ICogV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElD VUxBUiBQVVJQT1NFIEFSRQorICogRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgRnJlZXNj YWxlIFNlbWljb25kdWN0b3IgQkUgTElBQkxFIEZPUiBBTlkKKyAqIERJUkVDVCwgSU5ESVJFQ1Qs IElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VT CisgKiAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GIFNVQlNU SVRVVEUgR09PRFMgT1IgU0VSVklDRVM7CisgKiBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklU UzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQKKyAqIE9OIEFO WSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklM SVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklT SU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUworICogU09GVFdBUkUsIEVWRU4g SUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworZm1h bkA0MDAwMDAgeworCWZtYW4wX3J4XzB4MGM6IHBvcnRAOGMwMDAgeworCQljZWxsLWluZGV4ID0g PDB4Yz47CisJCWNvbXBhdGlibGUgPSAiZnNsLGZtYW4tdjMtcG9ydC1yeCI7CisJCXJlZyA9IDww eDhjMDAwIDB4MTAwMD47CisJfTsKKworCWZtYW4wX3R4XzB4MmM6IHBvcnRAYWMwMDAgeworCQlj ZWxsLWluZGV4ID0gPDB4MmM+OworCQljb21wYXRpYmxlID0gImZzbCxmbWFuLXYzLXBvcnQtdHgi OworCQlyZWcgPSA8MHhhYzAwMCAweDEwMDA+OworCX07CisKKwlldGhlcm5ldEBlODAwMCB7CisJ CWNlbGwtaW5kZXggPSA8ND47CisJCWNvbXBhdGlibGUgPSAiZnNsLGZtYW4tbWVtYWMiOworCQly ZWcgPSA8MHhlODAwMCAweDEwMDA+OworCQlmc2wsZm1hbi1wb3J0cyA9IDwmZm1hbjBfcnhfMHgw YyAmZm1hbjBfdHhfMHgyYz47CisJCXB0cC10aW1lciA9IDwmcHRwX3RpbWVyMD47CisJfTsKKwor CW1kaW9AZTkwMDAgeworCQkjYWRkcmVzcy1jZWxscyA9IDwxPjsKKwkJI3NpemUtY2VsbHMgPSA8 MD47CisJCWNvbXBhdGlibGUgPSAiZnNsLGZtYW4tbWVtYWMtbWRpbyIsICJmc2wsZm1hbi14bWRp byI7CisJCXJlZyA9IDwweGU5MDAwIDB4MTAwMD47CisJfTsKK307CmRpZmYgLS1naXQgYS9hcmNo L3Bvd2VycGMvYm9vdC9kdHMvZnNsL3FvcmlxLWZtYW4zLTAtMWctNS5kdHNpIGIvYXJjaC9wb3dl cnBjL2Jvb3QvZHRzL2ZzbC9xb3JpcS1mbWFuMy0wLTFnLTUuZHRzaQpuZXcgZmlsZSBtb2RlIDEw MDY0NAppbmRleCAwMDAwMDAwLi4yMzJjNWMyCi0tLSAvZGV2L251bGwKKysrIGIvYXJjaC9wb3dl cnBjL2Jvb3QvZHRzL2ZzbC9xb3JpcS1mbWFuMy0wLTFnLTUuZHRzaQpAQCAtMCwwICsxLDYyIEBA CisvKgorICogUW9ySVEgRk1hbiB2MyAxZyBwb3J0ICM1IGRldmljZSB0cmVlIHN0dWIgWyBjb250 cm9sbGVyIEAgb2Zmc2V0IDB4NDAwMDAwIF0KKyAqCisgKiBDb3B5cmlnaHQgMjAxMiAtIDIwMTUg RnJlZXNjYWxlIFNlbWljb25kdWN0b3IgSW5jLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1 c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZp Y2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRp b25zIGFyZSBtZXQ6CisgKiAgICAgKiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVz dCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICoJIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNv bmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqICAgICAqIFJlZGlzdHJp YnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0 CisgKgkgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBk aXNjbGFpbWVyIGluIHRoZQorICoJIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFs cyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKiAgICAgKiBOZWl0aGVyIHRoZSBu YW1lIG9mIEZyZWVzY2FsZSBTZW1pY29uZHVjdG9yIG5vciB0aGUKKyAqCSBuYW1lcyBvZiBpdHMg Y29udHJpYnV0b3JzIG1heSBiZSB1c2VkIHRvIGVuZG9yc2Ugb3IgcHJvbW90ZSBwcm9kdWN0cwor ICoJIGRlcml2ZWQgZnJvbSB0aGlzIHNvZnR3YXJlIHdpdGhvdXQgc3BlY2lmaWMgcHJpb3Igd3Jp dHRlbiBwZXJtaXNzaW9uLgorICoKKyAqCisgKiBBTFRFUk5BVElWRUxZLCB0aGlzIHNvZnR3YXJl IG1heSBiZSBkaXN0cmlidXRlZCB1bmRlciB0aGUgdGVybXMgb2YgdGhlCisgKiBHTlUgR2VuZXJh bCBQdWJsaWMgTGljZW5zZSAoIkdQTCIpIGFzIHB1Ymxpc2hlZCBieSB0aGUgRnJlZSBTb2Z0d2Fy ZQorICogRm91bmRhdGlvbiwgZWl0aGVyIHZlcnNpb24gMiBvZiB0aGF0IExpY2Vuc2Ugb3IgKGF0 IHlvdXIgb3B0aW9uKSBhbnkKKyAqIGxhdGVyIHZlcnNpb24uCisgKgorICogVEhJUyBTT0ZUV0FS RSBJUyBQUk9WSURFRCBCWSBGcmVlc2NhbGUgU2VtaWNvbmR1Y3RvciBgYEFTIElTJycgQU5EIEFO WQorICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBM SU1JVEVEIFRPLCBUSEUgSU1QTElFRAorICogV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkg QU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFSRQorICogRElTQ0xBSU1FRC4g SU4gTk8gRVZFTlQgU0hBTEwgRnJlZXNjYWxlIFNlbWljb25kdWN0b3IgQkUgTElBQkxFIEZPUiBB TlkKKyAqIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwg T1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTCisgKiAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQg VE8sIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7CisgKiBMT1NT IE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dF VkVSIENBVVNFRCBBTkQKKyAqIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElO IENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJ R0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0Yg VEhJUworICogU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0Yg U1VDSCBEQU1BR0UuCisgKi8KKworZm1hbkA0MDAwMDAgeworCWZtYW4wX3J4XzB4MGQ6IHBvcnRA OGQwMDAgeworCQljZWxsLWluZGV4ID0gPDB4ZD47CisJCWNvbXBhdGlibGUgPSAiZnNsLGZtYW4t djMtcG9ydC1yeCI7CisJCXJlZyA9IDwweDhkMDAwIDB4MTAwMD47CisJfTsKKworCWZtYW4wX3R4 XzB4MmQ6IHBvcnRAYWQwMDAgeworCQljZWxsLWluZGV4ID0gPDB4MmQ+OworCQljb21wYXRpYmxl ID0gImZzbCxmbWFuLXYzLXBvcnQtdHgiOworCQlyZWcgPSA8MHhhZDAwMCAweDEwMDA+OworCX07 CisKKwlldGhlcm5ldEBlYTAwMCB7CisJCWNlbGwtaW5kZXggPSA8NT47CisJCWNvbXBhdGlibGUg PSAiZnNsLGZtYW4tbWVtYWMiOworCQlyZWcgPSA8MHhlYTAwMCAweDEwMDA+OworCQlmc2wsZm1h bi1wb3J0cyA9IDwmZm1hbjBfcnhfMHgwZCAmZm1hbjBfdHhfMHgyZD47CisJCXB0cC10aW1lciA9 IDwmcHRwX3RpbWVyMD47CisJfTsKKworCW1kaW9AZWIwMDAgeworCQkjYWRkcmVzcy1jZWxscyA9 IDwxPjsKKwkJI3NpemUtY2VsbHMgPSA8MD47CisJCWNvbXBhdGlibGUgPSAiZnNsLGZtYW4tbWVt YWMtbWRpbyIsICJmc2wsZm1hbi14bWRpbyI7CisJCXJlZyA9IDwweGViMDAwIDB4MTAwMD47CisJ fTsKK307CmRpZmYgLS1naXQgYS9hcmNoL3Bvd2VycGMvYm9vdC9kdHMvZnNsL3FvcmlxLWZtYW4z LTAuZHRzaSBiL2FyY2gvcG93ZXJwYy9ib290L2R0cy9mc2wvcW9yaXEtZm1hbjMtMC5kdHNpCm5l dyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjVkMjk3YzYKLS0tIC9kZXYvbnVsbAor KysgYi9hcmNoL3Bvd2VycGMvYm9vdC9kdHMvZnNsL3FvcmlxLWZtYW4zLTAuZHRzaQpAQCAtMCww ICsxLDEwNiBAQAorLyoKKyAqIFFvcklRIEZNYW4gdjMgZGV2aWNlIHRyZWUgc3R1YiBbIGNvbnRy b2xsZXIgQCBvZmZzZXQgMHg0MDAwMDAgXQorICoKKyAqIENvcHlyaWdodCAyMDEyIC0gMjAxNSBG cmVlc2NhbGUgU2VtaWNvbmR1Y3RvciBJbmMuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVz ZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmlj YXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlv bnMgYXJlIG1ldDoKKyAqICAgICAqIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0 IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKgkgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29u ZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogICAgICogUmVkaXN0cmli dXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQK KyAqCSBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRp c2NsYWltZXIgaW4gdGhlCisgKgkgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxz IHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqICAgICAqIE5laXRoZXIgdGhlIG5h bWUgb2YgRnJlZXNjYWxlIFNlbWljb25kdWN0b3Igbm9yIHRoZQorICoJIG5hbWVzIG9mIGl0cyBj b250cmlidXRvcnMgbWF5IGJlIHVzZWQgdG8gZW5kb3JzZSBvciBwcm9tb3RlIHByb2R1Y3RzCisg KgkgZGVyaXZlZCBmcm9tIHRoaXMgc29mdHdhcmUgd2l0aG91dCBzcGVjaWZpYyBwcmlvciB3cml0 dGVuIHBlcm1pc3Npb24uCisgKgorICoKKyAqIEFMVEVSTkFUSVZFTFksIHRoaXMgc29mdHdhcmUg bWF5IGJlIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUKKyAqIEdOVSBHZW5lcmFs IFB1YmxpYyBMaWNlbnNlICgiR1BMIikgYXMgcHVibGlzaGVkIGJ5IHRoZSBGcmVlIFNvZnR3YXJl CisgKiBGb3VuZGF0aW9uLCBlaXRoZXIgdmVyc2lvbiAyIG9mIHRoYXQgTGljZW5zZSBvciAoYXQg eW91ciBvcHRpb24pIGFueQorICogbGF0ZXIgdmVyc2lvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJF IElTIFBST1ZJREVEIEJZIEZyZWVzY2FsZSBTZW1pY29uZHVjdG9yIGBgQVMgSVMnJyBBTkQgQU5Z CisgKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJ TUlURUQgVE8sIFRIRSBJTVBMSUVECisgKiBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBB TkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJFCisgKiBESVNDTEFJTUVELiBJ TiBOTyBFVkVOVCBTSEFMTCBGcmVlc2NhbGUgU2VtaWNvbmR1Y3RvciBCRSBMSUFCTEUgRk9SIEFO WQorICogRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBP UiBDT05TRVFVRU5USUFMIERBTUFHRVMKKyAqIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBU TywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsKKyAqIExPU1Mg T0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VW RVIgQ0FVU0VEIEFORAorICogT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4g Q09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElH RU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBU SElTCisgKiBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBT VUNIIERBTUFHRS4KKyAqLworCitmbWFuMDogZm1hbkA0MDAwMDAgeworCSNhZGRyZXNzLWNlbGxz ID0gPDE+OworCSNzaXplLWNlbGxzID0gPDE+OworCWNlbGwtaW5kZXggPSA8MD47CisJY29tcGF0 aWJsZSA9ICJmc2wsZm1hbiI7CisJcmFuZ2VzID0gPDAgMHg0MDAwMDAgMHgxMDAwMDA+OworCXJl ZyA9IDwweDQwMDAwMCAweDEwMDAwMD47CisJaW50ZXJydXB0cyA9IDw5NiAyIDAgMD4sIDwxNiAy IDEgMT47CisJY2xvY2tzID0gPCZjbG9ja2dlbiAzIDA+OworCWNsb2NrLW5hbWVzID0gImZtMGNs ayI7CisJZnNsLHFtYW4tY2hhbm5lbC1yYW5nZSA9IDwweDgwMCAweDEwPjsKKworCW11cmFtQDAg eworCQljb21wYXRpYmxlID0gImZzbCxmbWFuLW11cmFtIjsKKwkJcmVnID0gPDB4MCAweDYwMDAw PjsKKwl9OworCisJZm1hbjBfb2hfMHgyOiBwb3J0QDgyMDAwIHsKKwkJY2VsbC1pbmRleCA9IDww eDI+OworCQljb21wYXRpYmxlID0gImZzbCxmbWFuLXYzLXBvcnQtb2giOworCQlyZWcgPSA8MHg4 MjAwMCAweDEwMDA+OworCX07CisKKwlmbWFuMF9vaF8weDM6IHBvcnRAODMwMDAgeworCQljZWxs LWluZGV4ID0gPDB4Mz47CisJCWNvbXBhdGlibGUgPSAiZnNsLGZtYW4tdjMtcG9ydC1vaCI7CisJ CXJlZyA9IDwweDgzMDAwIDB4MTAwMD47CisJfTsKKworCWZtYW4wX29oXzB4NDogcG9ydEA4NDAw MCB7CisJCWNlbGwtaW5kZXggPSA8MHg0PjsKKwkJY29tcGF0aWJsZSA9ICJmc2wsZm1hbi12My1w b3J0LW9oIjsKKwkJcmVnID0gPDB4ODQwMDAgMHgxMDAwPjsKKwl9OworCisJZm1hbjBfb2hfMHg1 OiBwb3J0QDg1MDAwIHsKKwkJY2VsbC1pbmRleCA9IDwweDU+OworCQljb21wYXRpYmxlID0gImZz bCxmbWFuLXYzLXBvcnQtb2giOworCQlyZWcgPSA8MHg4NTAwMCAweDEwMDA+OworCX07CisKKwlm bWFuMF9vaF8weDY6IHBvcnRAODYwMDAgeworCQljZWxsLWluZGV4ID0gPDB4Nj47CisJCWNvbXBh dGlibGUgPSAiZnNsLGZtYW4tdjMtcG9ydC1vaCI7CisJCXJlZyA9IDwweDg2MDAwIDB4MTAwMD47 CisJfTsKKworCWZtYW4wX29oXzB4NzogcG9ydEA4NzAwMCB7CisJCWNlbGwtaW5kZXggPSA8MHg3 PjsKKwkJY29tcGF0aWJsZSA9ICJmc2wsZm1hbi12My1wb3J0LW9oIjsKKwkJcmVnID0gPDB4ODcw MDAgMHgxMDAwPjsKKwl9OworCisJbWRpbzA6IG1kaW9AZmMwMDAgeworCQkjYWRkcmVzcy1jZWxs cyA9IDwxPjsKKwkJI3NpemUtY2VsbHMgPSA8MD47CisJCWNvbXBhdGlibGUgPSAiZnNsLGZtYW4t bWVtYWMtbWRpbyIsICJmc2wsZm1hbi14bWRpbyI7CisJCXJlZyA9IDwweGZjMDAwIDB4MTAwMD47 CisJfTsKKworCXhtZGlvMDogbWRpb0BmZDAwMCB7CisJCSNhZGRyZXNzLWNlbGxzID0gPDE+Owor CQkjc2l6ZS1jZWxscyA9IDwwPjsKKwkJY29tcGF0aWJsZSA9ICJmc2wsZm1hbi1tZW1hYy1tZGlv IiwgImZzbCxmbWFuLXhtZGlvIjsKKwkJcmVnID0gPDB4ZmQwMDAgMHgxMDAwPjsKKwl9OworCisJ cHRwX3RpbWVyMDogcHRwLXRpbWVyQGZlMDAwIHsKKwkJY29tcGF0aWJsZSA9ICJmc2wsZm1hbi1w dHAtdGltZXIiOworCQlyZWcgPSA8MHhmZTAwMCAweDEwMDA+OworCX07Cit9OwpkaWZmIC0tZ2l0 IGEvYXJjaC9wb3dlcnBjL2Jvb3QvZHRzL2ZzbC9xb3JpcS1mbWFuMy0xLTEwZy0wLmR0c2kgYi9h cmNoL3Bvd2VycGMvYm9vdC9kdHMvZnNsL3FvcmlxLWZtYW4zLTEtMTBnLTAuZHRzaQpuZXcgZmls ZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi44OWQ2NGVlCi0tLSAvZGV2L251bGwKKysrIGIv YXJjaC9wb3dlcnBjL2Jvb3QvZHRzL2ZzbC9xb3JpcS1mbWFuMy0xLTEwZy0wLmR0c2kKQEAgLTAs MCArMSw2MyBAQAorLyoKKyAqIFFvcklRIEZNYW4gdjMgMTBnIHBvcnQgIzAgZGV2aWNlIHRyZWUg c3R1YiBbIGNvbnRyb2xsZXIgQCBvZmZzZXQgMHg1MDAwMDAgXQorICoKKyAqIENvcHlyaWdodCAy MDEyIC0gMjAxNSBGcmVlc2NhbGUgU2VtaWNvbmR1Y3RvciBJbmMuCisgKgorICogUmVkaXN0cmli dXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0 CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93 aW5nIGNvbmRpdGlvbnMgYXJlIG1ldDoKKyAqICAgICAqIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3Vy Y2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKgkgbm90aWNlLCB0aGlz IGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogICAg ICogUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92 ZSBjb3B5cmlnaHQKKyAqCSBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUg Zm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKgkgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3Ro ZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqICAgICAqIE5l aXRoZXIgdGhlIG5hbWUgb2YgRnJlZXNjYWxlIFNlbWljb25kdWN0b3Igbm9yIHRoZQorICoJIG5h bWVzIG9mIGl0cyBjb250cmlidXRvcnMgbWF5IGJlIHVzZWQgdG8gZW5kb3JzZSBvciBwcm9tb3Rl IHByb2R1Y3RzCisgKgkgZGVyaXZlZCBmcm9tIHRoaXMgc29mdHdhcmUgd2l0aG91dCBzcGVjaWZp YyBwcmlvciB3cml0dGVuIHBlcm1pc3Npb24uCisgKgorICoKKyAqIEFMVEVSTkFUSVZFTFksIHRo aXMgc29mdHdhcmUgbWF5IGJlIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUKKyAq IEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlICgiR1BMIikgYXMgcHVibGlzaGVkIGJ5IHRoZSBG cmVlIFNvZnR3YXJlCisgKiBGb3VuZGF0aW9uLCBlaXRoZXIgdmVyc2lvbiAyIG9mIHRoYXQgTGlj ZW5zZSBvciAoYXQgeW91ciBvcHRpb24pIGFueQorICogbGF0ZXIgdmVyc2lvbi4KKyAqCisgKiBU SElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEZyZWVzY2FsZSBTZW1pY29uZHVjdG9yIGBgQVMg SVMnJyBBTkQgQU5ZCisgKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5H LCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRSBJTVBMSUVECisgKiBXQVJSQU5USUVTIE9GIE1FUkNI QU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJFCisgKiBE SVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBGcmVlc2NhbGUgU2VtaWNvbmR1Y3RvciBCRSBM SUFCTEUgRk9SIEFOWQorICogRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwg RVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMKKyAqIChJTkNMVURJTkcsIEJVVCBO T1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNF UzsKKyAqIExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJV UFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORAorICogT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFks IFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNM VURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0Yg VEhFIFVTRSBPRiBUSElTCisgKiBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NT SUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCitmbWFuQDUwMDAwMCB7CisJZm1hbjFfcnhf MHgxMDogcG9ydEA5MDAwMCB7CisJCWNlbGwtaW5kZXggPSA8MHgxMD47CisJCWNvbXBhdGlibGUg PSAiZnNsLGZtYW4tdjMtcG9ydC1yeCI7CisJCXJlZyA9IDwweDkwMDAwIDB4MTAwMD47CisJCWZz bCxmbWFuLTEwZy1wb3J0OworCX07CisKKwlmbWFuMV90eF8weDMwOiBwb3J0QGIwMDAwIHsKKwkJ Y2VsbC1pbmRleCA9IDwweDMwPjsKKwkJY29tcGF0aWJsZSA9ICJmc2wsZm1hbi12My1wb3J0LXR4 IjsKKwkJcmVnID0gPDB4YjAwMDAgMHgxMDAwPjsKKwkJZnNsLGZtYW4tMTBnLXBvcnQ7CisJfTsK KworCWV0aGVybmV0QGYwMDAwIHsKKwkJY2VsbC1pbmRleCA9IDwweDg+OworCQljb21wYXRpYmxl ID0gImZzbCxmbWFuLW1lbWFjIjsKKwkJcmVnID0gPDB4ZjAwMDAgMHgxMDAwPjsKKwkJZnNsLGZt YW4tcG9ydHMgPSA8JmZtYW4xX3J4XzB4MTAgJmZtYW4xX3R4XzB4MzA+OworCX07CisKKwltZGlv QGYxMDAwIHsKKwkJI2FkZHJlc3MtY2VsbHMgPSA8MT47CisJCSNzaXplLWNlbGxzID0gPDA+Owor CQljb21wYXRpYmxlID0gImZzbCxmbWFuLW1lbWFjLW1kaW8iLCAiZnNsLGZtYW4teG1kaW8iOwor CQlyZWcgPSA8MHhmMTAwMCAweDEwMDA+OworCX07Cit9OwpkaWZmIC0tZ2l0IGEvYXJjaC9wb3dl cnBjL2Jvb3QvZHRzL2ZzbC9xb3JpcS1mbWFuMy0xLTEwZy0xLmR0c2kgYi9hcmNoL3Bvd2VycGMv Ym9vdC9kdHMvZnNsL3FvcmlxLWZtYW4zLTEtMTBnLTEuZHRzaQpuZXcgZmlsZSBtb2RlIDEwMDY0 NAppbmRleCAwMDAwMDAwLi43ZmE5MjYwCi0tLSAvZGV2L251bGwKKysrIGIvYXJjaC9wb3dlcnBj L2Jvb3QvZHRzL2ZzbC9xb3JpcS1mbWFuMy0xLTEwZy0xLmR0c2kKQEAgLTAsMCArMSw2MyBAQAor LyoKKyAqIFFvcklRIEZNYW4gdjMgMTBnIHBvcnQgIzEgZGV2aWNlIHRyZWUgc3R1YiBbIGNvbnRy b2xsZXIgQCBvZmZzZXQgMHg1MDAwMDAgXQorICoKKyAqIENvcHlyaWdodCAyMDEyIC0gMjAxNSBG cmVlc2NhbGUgU2VtaWNvbmR1Y3RvciBJbmMuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVz ZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmlj YXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlv bnMgYXJlIG1ldDoKKyAqICAgICAqIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0 IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKgkgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29u ZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogICAgICogUmVkaXN0cmli dXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQK KyAqCSBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRp c2NsYWltZXIgaW4gdGhlCisgKgkgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxz IHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqICAgICAqIE5laXRoZXIgdGhlIG5h bWUgb2YgRnJlZXNjYWxlIFNlbWljb25kdWN0b3Igbm9yIHRoZQorICoJIG5hbWVzIG9mIGl0cyBj b250cmlidXRvcnMgbWF5IGJlIHVzZWQgdG8gZW5kb3JzZSBvciBwcm9tb3RlIHByb2R1Y3RzCisg KgkgZGVyaXZlZCBmcm9tIHRoaXMgc29mdHdhcmUgd2l0aG91dCBzcGVjaWZpYyBwcmlvciB3cml0 dGVuIHBlcm1pc3Npb24uCisgKgorICoKKyAqIEFMVEVSTkFUSVZFTFksIHRoaXMgc29mdHdhcmUg bWF5IGJlIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUKKyAqIEdOVSBHZW5lcmFs IFB1YmxpYyBMaWNlbnNlICgiR1BMIikgYXMgcHVibGlzaGVkIGJ5IHRoZSBGcmVlIFNvZnR3YXJl CisgKiBGb3VuZGF0aW9uLCBlaXRoZXIgdmVyc2lvbiAyIG9mIHRoYXQgTGljZW5zZSBvciAoYXQg eW91ciBvcHRpb24pIGFueQorICogbGF0ZXIgdmVyc2lvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJF IElTIFBST1ZJREVEIEJZIEZyZWVzY2FsZSBTZW1pY29uZHVjdG9yIGBgQVMgSVMnJyBBTkQgQU5Z CisgKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJ TUlURUQgVE8sIFRIRSBJTVBMSUVECisgKiBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBB TkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJFCisgKiBESVNDTEFJTUVELiBJ TiBOTyBFVkVOVCBTSEFMTCBGcmVlc2NhbGUgU2VtaWNvbmR1Y3RvciBCRSBMSUFCTEUgRk9SIEFO WQorICogRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBP UiBDT05TRVFVRU5USUFMIERBTUFHRVMKKyAqIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBU TywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsKKyAqIExPU1Mg T0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VW RVIgQ0FVU0VEIEFORAorICogT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4g Q09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElH RU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBU SElTCisgKiBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBT VUNIIERBTUFHRS4KKyAqLworCitmbWFuQDUwMDAwMCB7CisJZm1hbjFfcnhfMHgxMTogcG9ydEA5 MTAwMCB7CisJCWNlbGwtaW5kZXggPSA8MHgxMT47CisJCWNvbXBhdGlibGUgPSAiZnNsLGZtYW4t djMtcG9ydC1yeCI7CisJCXJlZyA9IDwweDkxMDAwIDB4MTAwMD47CisJCWZzbCxmbWFuLTEwZy1w b3J0OworCX07CisKKwlmbWFuMV90eF8weDMxOiBwb3J0QGIxMDAwIHsKKwkJY2VsbC1pbmRleCA9 IDwweDMxPjsKKwkJY29tcGF0aWJsZSA9ICJmc2wsZm1hbi12My1wb3J0LXR4IjsKKwkJcmVnID0g PDB4YjEwMDAgMHgxMDAwPjsKKwkJZnNsLGZtYW4tMTBnLXBvcnQ7CisJfTsKKworCWV0aGVybmV0 QGYyMDAwIHsKKwkJY2VsbC1pbmRleCA9IDwweDk+OworCQljb21wYXRpYmxlID0gImZzbCxmbWFu LW1lbWFjIjsKKwkJcmVnID0gPDB4ZjIwMDAgMHgxMDAwPjsKKwkJZnNsLGZtYW4tcG9ydHMgPSA8 JmZtYW4xX3J4XzB4MTEgJmZtYW4xX3R4XzB4MzE+OworCX07CisKKwltZGlvQGYzMDAwIHsKKwkJ I2FkZHJlc3MtY2VsbHMgPSA8MT47CisJCSNzaXplLWNlbGxzID0gPDA+OworCQljb21wYXRpYmxl ID0gImZzbCxmbWFuLW1lbWFjLW1kaW8iLCAiZnNsLGZtYW4teG1kaW8iOworCQlyZWcgPSA8MHhm MzAwMCAweDEwMDA+OworCX07Cit9OwpkaWZmIC0tZ2l0IGEvYXJjaC9wb3dlcnBjL2Jvb3QvZHRz L2ZzbC9xb3JpcS1mbWFuMy0xLTFnLTAuZHRzaSBiL2FyY2gvcG93ZXJwYy9ib290L2R0cy9mc2wv cW9yaXEtZm1hbjMtMS0xZy0wLmR0c2kKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAw MC4uM2QyMzY2NgotLS0gL2Rldi9udWxsCisrKyBiL2FyY2gvcG93ZXJwYy9ib290L2R0cy9mc2wv cW9yaXEtZm1hbjMtMS0xZy0wLmR0c2kKQEAgLTAsMCArMSw2MiBAQAorLyoKKyAqIFFvcklRIEZN YW4gdjMgMWcgcG9ydCAjMCBkZXZpY2UgdHJlZSBzdHViIFsgY29udHJvbGxlciBAIG9mZnNldCAw eDUwMDAwMCBdCisgKgorICogQ29weXJpZ2h0IDIwMTIgLSAyMDE1IEZyZWVzY2FsZSBTZW1pY29u ZHVjdG9yIEluYy4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQg YmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1p dHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucyBhcmUgbWV0OgorICog ICAgICogUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92 ZSBjb3B5cmlnaHQKKyAqCSBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUg Zm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAgICAgKiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5 IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICoJIG5vdGljZSwgdGhp cyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUK KyAqCSBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0 aGUgZGlzdHJpYnV0aW9uLgorICogICAgICogTmVpdGhlciB0aGUgbmFtZSBvZiBGcmVlc2NhbGUg U2VtaWNvbmR1Y3RvciBub3IgdGhlCisgKgkgbmFtZXMgb2YgaXRzIGNvbnRyaWJ1dG9ycyBtYXkg YmUgdXNlZCB0byBlbmRvcnNlIG9yIHByb21vdGUgcHJvZHVjdHMKKyAqCSBkZXJpdmVkIGZyb20g dGhpcyBzb2Z0d2FyZSB3aXRob3V0IHNwZWNpZmljIHByaW9yIHdyaXR0ZW4gcGVybWlzc2lvbi4K KyAqCisgKgorICogQUxURVJOQVRJVkVMWSwgdGhpcyBzb2Z0d2FyZSBtYXkgYmUgZGlzdHJpYnV0 ZWQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZQorICogR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2Ug KCJHUEwiKSBhcyBwdWJsaXNoZWQgYnkgdGhlIEZyZWUgU29mdHdhcmUKKyAqIEZvdW5kYXRpb24s IGVpdGhlciB2ZXJzaW9uIDIgb2YgdGhhdCBMaWNlbnNlIG9yIChhdCB5b3VyIG9wdGlvbikgYW55 CisgKiBsYXRlciB2ZXJzaW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkg RnJlZXNjYWxlIFNlbWljb25kdWN0b3IgYGBBUyBJUycnIEFORCBBTlkKKyAqIEVYUFJFU1MgT1Ig SU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFIElN UExJRUQKKyAqIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBB IFBBUlRJQ1VMQVIgUFVSUE9TRSBBUkUKKyAqIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxM IEZyZWVzY2FsZSBTZW1pY29uZHVjdG9yIEJFIExJQUJMRSBGT1IgQU5ZCisgKiBESVJFQ1QsIElO RElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwg REFNQUdFUworICogKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBP RiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOworICogTE9TUyBPRiBVU0UsIERBVEEsIE9S IFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5ECisg KiBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNU IExJQUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lT RSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMKKyAqIFNPRlRXQVJF LCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICov CisKK2ZtYW5ANTAwMDAwIHsKKwlmbWFuMV9yeF8weDA4OiBwb3J0QDg4MDAwIHsKKwkJY2VsbC1p bmRleCA9IDwweDg+OworCQljb21wYXRpYmxlID0gImZzbCxmbWFuLXYzLXBvcnQtcngiOworCQly ZWcgPSA8MHg4ODAwMCAweDEwMDA+OworCX07CisKKwlmbWFuMV90eF8weDI4OiBwb3J0QGE4MDAw IHsKKwkJY2VsbC1pbmRleCA9IDwweDI4PjsKKwkJY29tcGF0aWJsZSA9ICJmc2wsZm1hbi12My1w b3J0LXR4IjsKKwkJcmVnID0gPDB4YTgwMDAgMHgxMDAwPjsKKwl9OworCisJZXRoZXJuZXRAZTAw MDAgeworCQljZWxsLWluZGV4ID0gPDA+OworCQljb21wYXRpYmxlID0gImZzbCxmbWFuLW1lbWFj IjsKKwkJcmVnID0gPDB4ZTAwMDAgMHgxMDAwPjsKKwkJZnNsLGZtYW4tcG9ydHMgPSA8JmZtYW4x X3J4XzB4MDggJmZtYW4xX3R4XzB4Mjg+OworCQlwdHAtdGltZXIgPSA8JnB0cF90aW1lcjE+Owor CX07CisKKwltZGlvQGUxMDAwIHsKKwkJI2FkZHJlc3MtY2VsbHMgPSA8MT47CisJCSNzaXplLWNl bGxzID0gPDA+OworCQljb21wYXRpYmxlID0gImZzbCxmbWFuLW1lbWFjLW1kaW8iLCAiZnNsLGZt YW4teG1kaW8iOworCQlyZWcgPSA8MHhlMTAwMCAweDEwMDA+OworCX07Cit9OwpkaWZmIC0tZ2l0 IGEvYXJjaC9wb3dlcnBjL2Jvb3QvZHRzL2ZzbC9xb3JpcS1mbWFuMy0xLTFnLTEuZHRzaSBiL2Fy Y2gvcG93ZXJwYy9ib290L2R0cy9mc2wvcW9yaXEtZm1hbjMtMS0xZy0xLmR0c2kKbmV3IGZpbGUg bW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uOTdkYzJlZQotLS0gL2Rldi9udWxsCisrKyBiL2Fy Y2gvcG93ZXJwYy9ib290L2R0cy9mc2wvcW9yaXEtZm1hbjMtMS0xZy0xLmR0c2kKQEAgLTAsMCAr MSw2MiBAQAorLyoKKyAqIFFvcklRIEZNYW4gdjMgMWcgcG9ydCAjMSBkZXZpY2UgdHJlZSBzdHVi IFsgY29udHJvbGxlciBAIG9mZnNldCAweDUwMDAwMCBdCisgKgorICogQ29weXJpZ2h0IDIwMTIg LSAyMDE1IEZyZWVzY2FsZSBTZW1pY29uZHVjdG9yIEluYy4KKyAqCisgKiBSZWRpc3RyaWJ1dGlv biBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAq IG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcg Y29uZGl0aW9ucyBhcmUgbWV0OgorICogICAgICogUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBj b2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqCSBub3RpY2UsIHRoaXMgbGlz dCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAgICAgKiBS ZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNv cHlyaWdodAorICoJIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xs b3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqCSBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBt YXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICogICAgICogTmVpdGhl ciB0aGUgbmFtZSBvZiBGcmVlc2NhbGUgU2VtaWNvbmR1Y3RvciBub3IgdGhlCisgKgkgbmFtZXMg b2YgaXRzIGNvbnRyaWJ1dG9ycyBtYXkgYmUgdXNlZCB0byBlbmRvcnNlIG9yIHByb21vdGUgcHJv ZHVjdHMKKyAqCSBkZXJpdmVkIGZyb20gdGhpcyBzb2Z0d2FyZSB3aXRob3V0IHNwZWNpZmljIHBy aW9yIHdyaXR0ZW4gcGVybWlzc2lvbi4KKyAqCisgKgorICogQUxURVJOQVRJVkVMWSwgdGhpcyBz b2Z0d2FyZSBtYXkgYmUgZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZQorICogR05V IEdlbmVyYWwgUHVibGljIExpY2Vuc2UgKCJHUEwiKSBhcyBwdWJsaXNoZWQgYnkgdGhlIEZyZWUg U29mdHdhcmUKKyAqIEZvdW5kYXRpb24sIGVpdGhlciB2ZXJzaW9uIDIgb2YgdGhhdCBMaWNlbnNl IG9yIChhdCB5b3VyIG9wdGlvbikgYW55CisgKiBsYXRlciB2ZXJzaW9uLgorICoKKyAqIFRISVMg U09GVFdBUkUgSVMgUFJPVklERUQgQlkgRnJlZXNjYWxlIFNlbWljb25kdWN0b3IgYGBBUyBJUycn IEFORCBBTlkKKyAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJV VCBOT1QgTElNSVRFRCBUTywgVEhFIElNUExJRUQKKyAqIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRB QklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBUkUKKyAqIERJU0NM QUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEZyZWVzY2FsZSBTZW1pY29uZHVjdG9yIEJFIExJQUJM RSBGT1IgQU5ZCisgKiBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVN UExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUworICogKElOQ0xVRElORywgQlVUIE5PVCBM SU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOwor ICogTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElP TikgSE9XRVZFUiBDQVVTRUQgQU5ECisgKiBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hF VEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xVRElO RyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUg VVNFIE9GIFRISVMKKyAqIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklM SVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKK2ZtYW5ANTAwMDAwIHsKKwlmbWFuMV9yeF8weDA5 OiBwb3J0QDg5MDAwIHsKKwkJY2VsbC1pbmRleCA9IDwweDk+OworCQljb21wYXRpYmxlID0gImZz bCxmbWFuLXYzLXBvcnQtcngiOworCQlyZWcgPSA8MHg4OTAwMCAweDEwMDA+OworCX07CisKKwlm bWFuMV90eF8weDI5OiBwb3J0QGE5MDAwIHsKKwkJY2VsbC1pbmRleCA9IDwweDI5PjsKKwkJY29t cGF0aWJsZSA9ICJmc2wsZm1hbi12My1wb3J0LXR4IjsKKwkJcmVnID0gPDB4YTkwMDAgMHgxMDAw PjsKKwl9OworCisJZXRoZXJuZXRAZTIwMDAgeworCQljZWxsLWluZGV4ID0gPDE+OworCQljb21w YXRpYmxlID0gImZzbCxmbWFuLW1lbWFjIjsKKwkJcmVnID0gPDB4ZTIwMDAgMHgxMDAwPjsKKwkJ ZnNsLGZtYW4tcG9ydHMgPSA8JmZtYW4xX3J4XzB4MDkgJmZtYW4xX3R4XzB4Mjk+OworCQlwdHAt dGltZXIgPSA8JnB0cF90aW1lcjE+OworCX07CisKKwltZGlvQGUzMDAwIHsKKwkJI2FkZHJlc3Mt Y2VsbHMgPSA8MT47CisJCSNzaXplLWNlbGxzID0gPDA+OworCQljb21wYXRpYmxlID0gImZzbCxm bWFuLW1lbWFjLW1kaW8iLCAiZnNsLGZtYW4teG1kaW8iOworCQlyZWcgPSA8MHhlMzAwMCAweDEw MDA+OworCX07Cit9OwpkaWZmIC0tZ2l0IGEvYXJjaC9wb3dlcnBjL2Jvb3QvZHRzL2ZzbC9xb3Jp cS1mbWFuMy0xLTFnLTIuZHRzaSBiL2FyY2gvcG93ZXJwYy9ib290L2R0cy9mc2wvcW9yaXEtZm1h bjMtMS0xZy0yLmR0c2kKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZjA4NGRk MgotLS0gL2Rldi9udWxsCisrKyBiL2FyY2gvcG93ZXJwYy9ib290L2R0cy9mc2wvcW9yaXEtZm1h bjMtMS0xZy0yLmR0c2kKQEAgLTAsMCArMSw2MiBAQAorLyoKKyAqIFFvcklRIEZNYW4gdjMgMWcg cG9ydCAjMiBkZXZpY2UgdHJlZSBzdHViIFsgY29udHJvbGxlciBAIG9mZnNldCAweDUwMDAwMCBd CisgKgorICogQ29weXJpZ2h0IDIwMTIgLSAyMDE1IEZyZWVzY2FsZSBTZW1pY29uZHVjdG9yIElu Yy4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZv cm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92 aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucyBhcmUgbWV0OgorICogICAgICogUmVk aXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmln aHQKKyAqCSBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5n IGRpc2NsYWltZXIuCisgKiAgICAgKiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVz dCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICoJIG5vdGljZSwgdGhpcyBsaXN0IG9m IGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqCSBkb2N1 bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJp YnV0aW9uLgorICogICAgICogTmVpdGhlciB0aGUgbmFtZSBvZiBGcmVlc2NhbGUgU2VtaWNvbmR1 Y3RvciBub3IgdGhlCisgKgkgbmFtZXMgb2YgaXRzIGNvbnRyaWJ1dG9ycyBtYXkgYmUgdXNlZCB0 byBlbmRvcnNlIG9yIHByb21vdGUgcHJvZHVjdHMKKyAqCSBkZXJpdmVkIGZyb20gdGhpcyBzb2Z0 d2FyZSB3aXRob3V0IHNwZWNpZmljIHByaW9yIHdyaXR0ZW4gcGVybWlzc2lvbi4KKyAqCisgKgor ICogQUxURVJOQVRJVkVMWSwgdGhpcyBzb2Z0d2FyZSBtYXkgYmUgZGlzdHJpYnV0ZWQgdW5kZXIg dGhlIHRlcm1zIG9mIHRoZQorICogR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgKCJHUEwiKSBh cyBwdWJsaXNoZWQgYnkgdGhlIEZyZWUgU29mdHdhcmUKKyAqIEZvdW5kYXRpb24sIGVpdGhlciB2 ZXJzaW9uIDIgb2YgdGhhdCBMaWNlbnNlIG9yIChhdCB5b3VyIG9wdGlvbikgYW55CisgKiBsYXRl ciB2ZXJzaW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgRnJlZXNjYWxl IFNlbWljb25kdWN0b3IgYGBBUyBJUycnIEFORCBBTlkKKyAqIEVYUFJFU1MgT1IgSU1QTElFRCBX QVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFIElNUExJRUQKKyAq IFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VM QVIgUFVSUE9TRSBBUkUKKyAqIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEZyZWVzY2Fs ZSBTZW1pY29uZHVjdG9yIEJFIExJQUJMRSBGT1IgQU5ZCisgKiBESVJFQ1QsIElORElSRUNULCBJ TkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUwor ICogKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJTVElU VVRFIEdPT0RTIE9SIFNFUlZJQ0VTOworICogTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7 IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5ECisgKiBPTiBBTlkg VEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElU WSwgT1IgVE9SVAorICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lO RyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMKKyAqIFNPRlRXQVJFLCBFVkVOIElG IEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKK2ZtYW5A NTAwMDAwIHsKKwlmbWFuMV9yeF8weDBhOiBwb3J0QDhhMDAwIHsKKwkJY2VsbC1pbmRleCA9IDww eGE+OworCQljb21wYXRpYmxlID0gImZzbCxmbWFuLXYzLXBvcnQtcngiOworCQlyZWcgPSA8MHg4 YTAwMCAweDEwMDA+OworCX07CisKKwlmbWFuMV90eF8weDJhOiBwb3J0QGFhMDAwIHsKKwkJY2Vs bC1pbmRleCA9IDwweDJhPjsKKwkJY29tcGF0aWJsZSA9ICJmc2wsZm1hbi12My1wb3J0LXR4IjsK KwkJcmVnID0gPDB4YWEwMDAgMHgxMDAwPjsKKwl9OworCisJZXRoZXJuZXRAZTQwMDAgeworCQlj ZWxsLWluZGV4ID0gPDI+OworCQljb21wYXRpYmxlID0gImZzbCxmbWFuLW1lbWFjIjsKKwkJcmVn ID0gPDB4ZTQwMDAgMHgxMDAwPjsKKwkJZnNsLGZtYW4tcG9ydHMgPSA8JmZtYW4xX3J4XzB4MGEg JmZtYW4xX3R4XzB4MmE+OworCQlwdHAtdGltZXIgPSA8JnB0cF90aW1lcjE+OworCX07CisKKwlt ZGlvQGU1MDAwIHsKKwkJI2FkZHJlc3MtY2VsbHMgPSA8MT47CisJCSNzaXplLWNlbGxzID0gPDA+ OworCQljb21wYXRpYmxlID0gImZzbCxmbWFuLW1lbWFjLW1kaW8iLCAiZnNsLGZtYW4teG1kaW8i OworCQlyZWcgPSA8MHhlNTAwMCAweDEwMDA+OworCX07Cit9OwpkaWZmIC0tZ2l0IGEvYXJjaC9w b3dlcnBjL2Jvb3QvZHRzL2ZzbC9xb3JpcS1mbWFuMy0xLTFnLTMuZHRzaSBiL2FyY2gvcG93ZXJw Yy9ib290L2R0cy9mc2wvcW9yaXEtZm1hbjMtMS0xZy0zLmR0c2kKbmV3IGZpbGUgbW9kZSAxMDA2 NDQKaW5kZXggMDAwMDAwMC4uYmI2MjdiMwotLS0gL2Rldi9udWxsCisrKyBiL2FyY2gvcG93ZXJw Yy9ib290L2R0cy9mc2wvcW9yaXEtZm1hbjMtMS0xZy0zLmR0c2kKQEAgLTAsMCArMSw2MiBAQAor LyoKKyAqIFFvcklRIEZNYW4gdjMgMWcgcG9ydCAjMyBkZXZpY2UgdHJlZSBzdHViIFsgY29udHJv bGxlciBAIG9mZnNldCAweDUwMDAwMCBdCisgKgorICogQ29weXJpZ2h0IDIwMTIgLSAyMDE1IEZy ZWVzY2FsZSBTZW1pY29uZHVjdG9yIEluYy4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNl IGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNh dGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9u cyBhcmUgbWV0OgorICogICAgICogUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3Qg cmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqCSBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25k aXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAgICAgKiBSZWRpc3RyaWJ1 dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAor ICoJIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlz Y2xhaW1lciBpbiB0aGUKKyAqCSBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMg cHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICogICAgICogTmVpdGhlciB0aGUgbmFt ZSBvZiBGcmVlc2NhbGUgU2VtaWNvbmR1Y3RvciBub3IgdGhlCisgKgkgbmFtZXMgb2YgaXRzIGNv bnRyaWJ1dG9ycyBtYXkgYmUgdXNlZCB0byBlbmRvcnNlIG9yIHByb21vdGUgcHJvZHVjdHMKKyAq CSBkZXJpdmVkIGZyb20gdGhpcyBzb2Z0d2FyZSB3aXRob3V0IHNwZWNpZmljIHByaW9yIHdyaXR0 ZW4gcGVybWlzc2lvbi4KKyAqCisgKgorICogQUxURVJOQVRJVkVMWSwgdGhpcyBzb2Z0d2FyZSBt YXkgYmUgZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZQorICogR05VIEdlbmVyYWwg UHVibGljIExpY2Vuc2UgKCJHUEwiKSBhcyBwdWJsaXNoZWQgYnkgdGhlIEZyZWUgU29mdHdhcmUK KyAqIEZvdW5kYXRpb24sIGVpdGhlciB2ZXJzaW9uIDIgb2YgdGhhdCBMaWNlbnNlIG9yIChhdCB5 b3VyIG9wdGlvbikgYW55CisgKiBsYXRlciB2ZXJzaW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUg SVMgUFJPVklERUQgQlkgRnJlZXNjYWxlIFNlbWljb25kdWN0b3IgYGBBUyBJUycnIEFORCBBTlkK KyAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElN SVRFRCBUTywgVEhFIElNUExJRUQKKyAqIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFO RCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBUkUKKyAqIERJU0NMQUlNRUQuIElO IE5PIEVWRU5UIFNIQUxMIEZyZWVzY2FsZSBTZW1pY29uZHVjdG9yIEJFIExJQUJMRSBGT1IgQU5Z CisgKiBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9S IENPTlNFUVVFTlRJQUwgREFNQUdFUworICogKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRP LCBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOworICogTE9TUyBP RiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZF UiBDQVVTRUQgQU5ECisgKiBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBD T05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xVRElORyBORUdMSUdF TkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRI SVMKKyAqIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNV Q0ggREFNQUdFLgorICovCisKK2ZtYW5ANTAwMDAwIHsKKwlmbWFuMV9yeF8weDBiOiBwb3J0QDhi MDAwIHsKKwkJY2VsbC1pbmRleCA9IDwweGI+OworCQljb21wYXRpYmxlID0gImZzbCxmbWFuLXYz LXBvcnQtcngiOworCQlyZWcgPSA8MHg4YjAwMCAweDEwMDA+OworCX07CisKKwlmbWFuMV90eF8w eDJiOiBwb3J0QGFiMDAwIHsKKwkJY2VsbC1pbmRleCA9IDwweDJiPjsKKwkJY29tcGF0aWJsZSA9 ICJmc2wsZm1hbi12My1wb3J0LXR4IjsKKwkJcmVnID0gPDB4YWIwMDAgMHgxMDAwPjsKKwl9Owor CisJZXRoZXJuZXRAZTYwMDAgeworCQljZWxsLWluZGV4ID0gPDM+OworCQljb21wYXRpYmxlID0g ImZzbCxmbWFuLW1lbWFjIjsKKwkJcmVnID0gPDB4ZTYwMDAgMHgxMDAwPjsKKwkJZnNsLGZtYW4t cG9ydHMgPSA8JmZtYW4xX3J4XzB4MGIgJmZtYW4xX3R4XzB4MmI+OworCQlwdHAtdGltZXIgPSA8 JnB0cF90aW1lcjE+OworCX07CisKKwltZGlvQGU3MDAwIHsKKwkJI2FkZHJlc3MtY2VsbHMgPSA8 MT47CisJCSNzaXplLWNlbGxzID0gPDA+OworCQljb21wYXRpYmxlID0gImZzbCxmbWFuLW1lbWFj LW1kaW8iLCAiZnNsLGZtYW4teG1kaW8iOworCQlyZWcgPSA8MHhlNzAwMCAweDEwMDA+OworCX07 Cit9OwpkaWZmIC0tZ2l0IGEvYXJjaC9wb3dlcnBjL2Jvb3QvZHRzL2ZzbC9xb3JpcS1mbWFuMy0x LTFnLTQuZHRzaSBiL2FyY2gvcG93ZXJwYy9ib290L2R0cy9mc2wvcW9yaXEtZm1hbjMtMS0xZy00 LmR0c2kKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uODIxZWQxMgotLS0gL2Rl di9udWxsCisrKyBiL2FyY2gvcG93ZXJwYy9ib290L2R0cy9mc2wvcW9yaXEtZm1hbjMtMS0xZy00 LmR0c2kKQEAgLTAsMCArMSw2MiBAQAorLyoKKyAqIFFvcklRIEZNYW4gdjMgMWcgcG9ydCAjNCBk ZXZpY2UgdHJlZSBzdHViIFsgY29udHJvbGxlciBAIG9mZnNldCAweDUwMDAwMCBdCisgKgorICog Q29weXJpZ2h0IDIwMTIgLSAyMDE1IEZyZWVzY2FsZSBTZW1pY29uZHVjdG9yIEluYy4KKyAqCisg KiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRo IG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0 IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucyBhcmUgbWV0OgorICogICAgICogUmVkaXN0cmlidXRp b25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqCSBu b3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWlt ZXIuCisgKiAgICAgKiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1 Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICoJIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlv bnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqCSBkb2N1bWVudGF0aW9u IGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgor ICogICAgICogTmVpdGhlciB0aGUgbmFtZSBvZiBGcmVlc2NhbGUgU2VtaWNvbmR1Y3RvciBub3Ig dGhlCisgKgkgbmFtZXMgb2YgaXRzIGNvbnRyaWJ1dG9ycyBtYXkgYmUgdXNlZCB0byBlbmRvcnNl IG9yIHByb21vdGUgcHJvZHVjdHMKKyAqCSBkZXJpdmVkIGZyb20gdGhpcyBzb2Z0d2FyZSB3aXRo b3V0IHNwZWNpZmljIHByaW9yIHdyaXR0ZW4gcGVybWlzc2lvbi4KKyAqCisgKgorICogQUxURVJO QVRJVkVMWSwgdGhpcyBzb2Z0d2FyZSBtYXkgYmUgZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIHRlcm1z IG9mIHRoZQorICogR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgKCJHUEwiKSBhcyBwdWJsaXNo ZWQgYnkgdGhlIEZyZWUgU29mdHdhcmUKKyAqIEZvdW5kYXRpb24sIGVpdGhlciB2ZXJzaW9uIDIg b2YgdGhhdCBMaWNlbnNlIG9yIChhdCB5b3VyIG9wdGlvbikgYW55CisgKiBsYXRlciB2ZXJzaW9u LgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgRnJlZXNjYWxlIFNlbWljb25k dWN0b3IgYGBBUyBJUycnIEFORCBBTlkKKyAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVT LCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFIElNUExJRUQKKyAqIFdBUlJBTlRJ RVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9T RSBBUkUKKyAqIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEZyZWVzY2FsZSBTZW1pY29u ZHVjdG9yIEJFIExJQUJMRSBGT1IgQU5ZCisgKiBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFM LCBTUEVDSUFMLCBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUworICogKElOQ0xV RElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RT IE9SIFNFUlZJQ0VTOworICogTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lO RVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5ECisgKiBPTiBBTlkgVEhFT1JZIE9G IExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9S VAorICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkg V0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMKKyAqIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQg T0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKK2ZtYW5ANTAwMDAwIHsK KwlmbWFuMV9yeF8weDBjOiBwb3J0QDhjMDAwIHsKKwkJY2VsbC1pbmRleCA9IDwweGM+OworCQlj b21wYXRpYmxlID0gImZzbCxmbWFuLXYzLXBvcnQtcngiOworCQlyZWcgPSA8MHg4YzAwMCAweDEw MDA+OworCX07CisKKwlmbWFuMV90eF8weDJjOiBwb3J0QGFjMDAwIHsKKwkJY2VsbC1pbmRleCA9 IDwweDJjPjsKKwkJY29tcGF0aWJsZSA9ICJmc2wsZm1hbi12My1wb3J0LXR4IjsKKwkJcmVnID0g PDB4YWMwMDAgMHgxMDAwPjsKKwl9OworCisJZXRoZXJuZXRAZTgwMDAgeworCQljZWxsLWluZGV4 ID0gPDQ+OworCQljb21wYXRpYmxlID0gImZzbCxmbWFuLW1lbWFjIjsKKwkJcmVnID0gPDB4ZTgw MDAgMHgxMDAwPjsKKwkJZnNsLGZtYW4tcG9ydHMgPSA8JmZtYW4xX3J4XzB4MGMgJmZtYW4xX3R4 XzB4MmM+OworCQlwdHAtdGltZXIgPSA8JnB0cF90aW1lcjE+OworCX07CisKKwltZGlvQGU5MDAw IHsKKwkJI2FkZHJlc3MtY2VsbHMgPSA8MT47CisJCSNzaXplLWNlbGxzID0gPDA+OworCQljb21w YXRpYmxlID0gImZzbCxmbWFuLW1lbWFjLW1kaW8iLCAiZnNsLGZtYW4teG1kaW8iOworCQlyZWcg PSA8MHhlOTAwMCAweDEwMDA+OworCX07Cit9OwpkaWZmIC0tZ2l0IGEvYXJjaC9wb3dlcnBjL2Jv b3QvZHRzL2ZzbC9xb3JpcS1mbWFuMy0xLTFnLTUuZHRzaSBiL2FyY2gvcG93ZXJwYy9ib290L2R0 cy9mc2wvcW9yaXEtZm1hbjMtMS0xZy01LmR0c2kKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXgg MDAwMDAwMC4uZTI0NWYxYQotLS0gL2Rldi9udWxsCisrKyBiL2FyY2gvcG93ZXJwYy9ib290L2R0 cy9mc2wvcW9yaXEtZm1hbjMtMS0xZy01LmR0c2kKQEAgLTAsMCArMSw2MiBAQAorLyoKKyAqIFFv cklRIEZNYW4gdjMgMWcgcG9ydCAjNSBkZXZpY2UgdHJlZSBzdHViIFsgY29udHJvbGxlciBAIG9m ZnNldCAweDUwMDAwMCBdCisgKgorICogQ29weXJpZ2h0IDIwMTIgLSAyMDE1IEZyZWVzY2FsZSBT ZW1pY29uZHVjdG9yIEluYy4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJj ZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJl IHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucyBhcmUgbWV0 OgorICogICAgICogUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRo ZSBhYm92ZSBjb3B5cmlnaHQKKyAqCSBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFu ZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAgICAgKiBSZWRpc3RyaWJ1dGlvbnMgaW4g YmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICoJIG5vdGlj ZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBp biB0aGUKKyAqCSBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQg d2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICogICAgICogTmVpdGhlciB0aGUgbmFtZSBvZiBGcmVl c2NhbGUgU2VtaWNvbmR1Y3RvciBub3IgdGhlCisgKgkgbmFtZXMgb2YgaXRzIGNvbnRyaWJ1dG9y cyBtYXkgYmUgdXNlZCB0byBlbmRvcnNlIG9yIHByb21vdGUgcHJvZHVjdHMKKyAqCSBkZXJpdmVk IGZyb20gdGhpcyBzb2Z0d2FyZSB3aXRob3V0IHNwZWNpZmljIHByaW9yIHdyaXR0ZW4gcGVybWlz c2lvbi4KKyAqCisgKgorICogQUxURVJOQVRJVkVMWSwgdGhpcyBzb2Z0d2FyZSBtYXkgYmUgZGlz dHJpYnV0ZWQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZQorICogR05VIEdlbmVyYWwgUHVibGljIExp Y2Vuc2UgKCJHUEwiKSBhcyBwdWJsaXNoZWQgYnkgdGhlIEZyZWUgU29mdHdhcmUKKyAqIEZvdW5k YXRpb24sIGVpdGhlciB2ZXJzaW9uIDIgb2YgdGhhdCBMaWNlbnNlIG9yIChhdCB5b3VyIG9wdGlv bikgYW55CisgKiBsYXRlciB2ZXJzaW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklE RUQgQlkgRnJlZXNjYWxlIFNlbWljb25kdWN0b3IgYGBBUyBJUycnIEFORCBBTlkKKyAqIEVYUFJF U1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywg VEhFIElNUExJRUQKKyAqIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNT IEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBUkUKKyAqIERJU0NMQUlNRUQuIElOIE5PIEVWRU5U IFNIQUxMIEZyZWVzY2FsZSBTZW1pY29uZHVjdG9yIEJFIExJQUJMRSBGT1IgQU5ZCisgKiBESVJF Q1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SIENPTlNFUVVF TlRJQUwgREFNQUdFUworICogKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJF TUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOworICogTE9TUyBPRiBVU0UsIERB VEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQg QU5ECisgKiBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwg U1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9U SEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMKKyAqIFNP RlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdF LgorICovCisKK2ZtYW5ANTAwMDAwIHsKKwlmbWFuMV9yeF8weDBkOiBwb3J0QDhkMDAwIHsKKwkJ Y2VsbC1pbmRleCA9IDwweGQ+OworCQljb21wYXRpYmxlID0gImZzbCxmbWFuLXYzLXBvcnQtcngi OworCQlyZWcgPSA8MHg4ZDAwMCAweDEwMDA+OworCX07CisKKwlmbWFuMV90eF8weDJkOiBwb3J0 QGFkMDAwIHsKKwkJY2VsbC1pbmRleCA9IDwweDJkPjsKKwkJY29tcGF0aWJsZSA9ICJmc2wsZm1h bi12My1wb3J0LXR4IjsKKwkJcmVnID0gPDB4YWQwMDAgMHgxMDAwPjsKKwl9OworCisJZXRoZXJu ZXRAZWEwMDAgeworCQljZWxsLWluZGV4ID0gPDU+OworCQljb21wYXRpYmxlID0gImZzbCxmbWFu LW1lbWFjIjsKKwkJcmVnID0gPDB4ZWEwMDAgMHgxMDAwPjsKKwkJZnNsLGZtYW4tcG9ydHMgPSA8 JmZtYW4xX3J4XzB4MGQgJmZtYW4xX3R4XzB4MmQ+OworCQlwdHAtdGltZXIgPSA8JnB0cF90aW1l cjE+OworCX07CisKKwltZGlvQGViMDAwIHsKKwkJI2FkZHJlc3MtY2VsbHMgPSA8MT47CisJCSNz aXplLWNlbGxzID0gPDA+OworCQljb21wYXRpYmxlID0gImZzbCxmbWFuLW1lbWFjLW1kaW8iLCAi ZnNsLGZtYW4teG1kaW8iOworCQlyZWcgPSA8MHhlYjAwMCAweDEwMDA+OworCX07Cit9OwpkaWZm IC0tZ2l0IGEvYXJjaC9wb3dlcnBjL2Jvb3QvZHRzL2ZzbC9xb3JpcS1mbWFuMy0xLmR0c2kgYi9h cmNoL3Bvd2VycGMvYm9vdC9kdHMvZnNsL3FvcmlxLWZtYW4zLTEuZHRzaQpuZXcgZmlsZSBtb2Rl IDEwMDY0NAppbmRleCAwMDAwMDAwLi44MTE1MWM1Ci0tLSAvZGV2L251bGwKKysrIGIvYXJjaC9w b3dlcnBjL2Jvb3QvZHRzL2ZzbC9xb3JpcS1mbWFuMy0xLmR0c2kKQEAgLTAsMCArMSwxMDYgQEAK Ky8qCisgKiBRb3JJUSBGTWFuIHYzIGRldmljZSB0cmVlIHN0dWIgWyBjb250cm9sbGVyIEAgb2Zm c2V0IDB4NTAwMDAwIF0KKyAqCisgKiBDb3B5cmlnaHQgMjAxMiAtIDIwMTUgRnJlZXNjYWxlIFNl bWljb25kdWN0b3IgSW5jLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNl IGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUg cGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zIGFyZSBtZXQ6 CisgKiAgICAgKiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhl IGFib3ZlIGNvcHlyaWdodAorICoJIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5k IHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqICAgICAqIFJlZGlzdHJpYnV0aW9ucyBpbiBi aW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKgkgbm90aWNl LCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGlu IHRoZQorICoJIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3 aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKiAgICAgKiBOZWl0aGVyIHRoZSBuYW1lIG9mIEZyZWVz Y2FsZSBTZW1pY29uZHVjdG9yIG5vciB0aGUKKyAqCSBuYW1lcyBvZiBpdHMgY29udHJpYnV0b3Jz IG1heSBiZSB1c2VkIHRvIGVuZG9yc2Ugb3IgcHJvbW90ZSBwcm9kdWN0cworICoJIGRlcml2ZWQg ZnJvbSB0aGlzIHNvZnR3YXJlIHdpdGhvdXQgc3BlY2lmaWMgcHJpb3Igd3JpdHRlbiBwZXJtaXNz aW9uLgorICoKKyAqCisgKiBBTFRFUk5BVElWRUxZLCB0aGlzIHNvZnR3YXJlIG1heSBiZSBkaXN0 cmlidXRlZCB1bmRlciB0aGUgdGVybXMgb2YgdGhlCisgKiBHTlUgR2VuZXJhbCBQdWJsaWMgTGlj ZW5zZSAoIkdQTCIpIGFzIHB1Ymxpc2hlZCBieSB0aGUgRnJlZSBTb2Z0d2FyZQorICogRm91bmRh dGlvbiwgZWl0aGVyIHZlcnNpb24gMiBvZiB0aGF0IExpY2Vuc2Ugb3IgKGF0IHlvdXIgb3B0aW9u KSBhbnkKKyAqIGxhdGVyIHZlcnNpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURF RCBCWSBGcmVlc2NhbGUgU2VtaWNvbmR1Y3RvciBgYEFTIElTJycgQU5EIEFOWQorICogRVhQUkVT UyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBU SEUgSU1QTElFRAorICogV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1Mg Rk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFSRQorICogRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQg U0hBTEwgRnJlZXNjYWxlIFNlbWljb25kdWN0b3IgQkUgTElBQkxFIEZPUiBBTlkKKyAqIERJUkVD VCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVO VElBTCBEQU1BR0VTCisgKiAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVN RU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7CisgKiBMT1NTIE9GIFVTRSwgREFU QSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBB TkQKKyAqIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBT VFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RI RVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUworICogU09G VFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0Uu CisgKi8KKworZm1hbjE6IGZtYW5ANTAwMDAwIHsKKwkjYWRkcmVzcy1jZWxscyA9IDwxPjsKKwkj c2l6ZS1jZWxscyA9IDwxPjsKKwljZWxsLWluZGV4ID0gPDE+OworCWNvbXBhdGlibGUgPSAiZnNs LGZtYW4iOworCXJhbmdlcyA9IDwwIDB4NTAwMDAwIDB4MTAwMDAwPjsKKwlyZWcgPSA8MHg1MDAw MDAgMHgxMDAwMDA+OworCWludGVycnVwdHMgPSA8OTcgMiAwIDA+LCA8MTYgMiAxIDA+OworCWNs b2NrcyA9IDwmY2xvY2tnZW4gMyAxPjsKKwljbG9jay1uYW1lcyA9ICJmbTFjbGsiOworCWZzbCxx bWFuLWNoYW5uZWwtcmFuZ2UgPSA8MHg4MjAgMHgxMD47CisKKwltdXJhbUAwIHsKKwkJY29tcGF0 aWJsZSA9ICJmc2wsZm1hbi1tdXJhbSI7CisJCXJlZyA9IDwweDAgMHg2MDAwMD47CisJfTsKKwor CWZtYW4xX29oXzB4MjogcG9ydEA4MjAwMCB7CisJCWNlbGwtaW5kZXggPSA8MHgyPjsKKwkJY29t cGF0aWJsZSA9ICJmc2wsZm1hbi12My1wb3J0LW9oIjsKKwkJcmVnID0gPDB4ODIwMDAgMHgxMDAw PjsKKwl9OworCisJZm1hbjFfb2hfMHgzOiBwb3J0QDgzMDAwIHsKKwkJY2VsbC1pbmRleCA9IDww eDM+OworCQljb21wYXRpYmxlID0gImZzbCxmbWFuLXYzLXBvcnQtb2giOworCQlyZWcgPSA8MHg4 MzAwMCAweDEwMDA+OworCX07CisKKwlmbWFuMV9vaF8weDQ6IHBvcnRAODQwMDAgeworCQljZWxs LWluZGV4ID0gPDB4ND47CisJCWNvbXBhdGlibGUgPSAiZnNsLGZtYW4tdjMtcG9ydC1vaCI7CisJ CXJlZyA9IDwweDg0MDAwIDB4MTAwMD47CisJfTsKKworCWZtYW4xX29oXzB4NTogcG9ydEA4NTAw MCB7CisJCWNlbGwtaW5kZXggPSA8MHg1PjsKKwkJY29tcGF0aWJsZSA9ICJmc2wsZm1hbi12My1w b3J0LW9oIjsKKwkJcmVnID0gPDB4ODUwMDAgMHgxMDAwPjsKKwl9OworCisJZm1hbjFfb2hfMHg2 OiBwb3J0QDg2MDAwIHsKKwkJY2VsbC1pbmRleCA9IDwweDY+OworCQljb21wYXRpYmxlID0gImZz bCxmbWFuLXYzLXBvcnQtb2giOworCQlyZWcgPSA8MHg4NjAwMCAweDEwMDA+OworCX07CisKKwlm bWFuMV9vaF8weDc6IHBvcnRAODcwMDAgeworCQljZWxsLWluZGV4ID0gPDB4Nz47CisJCWNvbXBh dGlibGUgPSAiZnNsLGZtYW4tdjMtcG9ydC1vaCI7CisJCXJlZyA9IDwweDg3MDAwIDB4MTAwMD47 CisJfTsKKworCW1kaW8xOiBtZGlvQGZjMDAwIHsKKwkJI2FkZHJlc3MtY2VsbHMgPSA8MT47CisJ CSNzaXplLWNlbGxzID0gPDA+OworCQljb21wYXRpYmxlID0gImZzbCxmbWFuLW1lbWFjLW1kaW8i LCAiZnNsLGZtYW4teG1kaW8iOworCQlyZWcgPSA8MHhmYzAwMCAweDEwMDA+OworCX07CisKKwlt ZGlvQGZkMDAwIHsKKwkJI2FkZHJlc3MtY2VsbHMgPSA8MT47CisJCSNzaXplLWNlbGxzID0gPDA+ OworCQljb21wYXRpYmxlID0gImZzbCxmbWFuLW1lbWFjLW1kaW8iLCAiZnNsLGZtYW4teG1kaW8i OworCQlyZWcgPSA8MHhmZDAwMCAweDEwMDA+OworCX07CisKKwlwdHBfdGltZXIxOiBwdHAtdGlt ZXJAZmUwMDAgeworCQljb21wYXRpYmxlID0gImZzbCxmbWFuLXB0cC10aW1lciI7CisJCXJlZyA9 IDwweGZlMDAwIDB4MTAwMD47CisJfTsKK307CmRpZmYgLS1naXQgYS9hcmNoL3Bvd2VycGMvYm9v dC9kdHMvZnNsL3FvcmlxLWZtYW4zbC0wLmR0c2kgYi9hcmNoL3Bvd2VycGMvYm9vdC9kdHMvZnNs L3FvcmlxLWZtYW4zbC0wLmR0c2kKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4u MTI5YzZlNwotLS0gL2Rldi9udWxsCisrKyBiL2FyY2gvcG93ZXJwYy9ib290L2R0cy9mc2wvcW9y aXEtZm1hbjNsLTAuZHRzaQpAQCAtMCwwICsxLDk0IEBACisvKgorICogUW9ySVEgRk1hbiB2MyBk ZXZpY2UgdHJlZSBzdHViIFsgY29udHJvbGxlciBAIG9mZnNldCAweDQwMDAwMCBdCisgKgorICog Q29weXJpZ2h0IDIwMTIgLSAyMDE1IEZyZWVzY2FsZSBTZW1pY29uZHVjdG9yIEluYy4KKyAqCisg KiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRo IG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0 IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucyBhcmUgbWV0OgorICogICAgICogUmVkaXN0cmlidXRp b25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqCSBu b3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWlt ZXIuCisgKiAgICAgKiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1 Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICoJIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlv bnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqCSBkb2N1bWVudGF0aW9u IGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgor ICogICAgICogTmVpdGhlciB0aGUgbmFtZSBvZiBGcmVlc2NhbGUgU2VtaWNvbmR1Y3RvciBub3Ig dGhlCisgKgkgbmFtZXMgb2YgaXRzIGNvbnRyaWJ1dG9ycyBtYXkgYmUgdXNlZCB0byBlbmRvcnNl IG9yIHByb21vdGUgcHJvZHVjdHMKKyAqCSBkZXJpdmVkIGZyb20gdGhpcyBzb2Z0d2FyZSB3aXRo b3V0IHNwZWNpZmljIHByaW9yIHdyaXR0ZW4gcGVybWlzc2lvbi4KKyAqCisgKgorICogQUxURVJO QVRJVkVMWSwgdGhpcyBzb2Z0d2FyZSBtYXkgYmUgZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIHRlcm1z IG9mIHRoZQorICogR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgKCJHUEwiKSBhcyBwdWJsaXNo ZWQgYnkgdGhlIEZyZWUgU29mdHdhcmUKKyAqIEZvdW5kYXRpb24sIGVpdGhlciB2ZXJzaW9uIDIg b2YgdGhhdCBMaWNlbnNlIG9yIChhdCB5b3VyIG9wdGlvbikgYW55CisgKiBsYXRlciB2ZXJzaW9u LgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgRnJlZXNjYWxlIFNlbWljb25k dWN0b3IgYGBBUyBJUycnIEFORCBBTlkKKyAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVT LCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFIElNUExJRUQKKyAqIFdBUlJBTlRJ RVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9T RSBBUkUKKyAqIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEZyZWVzY2FsZSBTZW1pY29u ZHVjdG9yIEJFIExJQUJMRSBGT1IgQU5ZCisgKiBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFM LCBTUEVDSUFMLCBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUworICogKElOQ0xV RElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RT IE9SIFNFUlZJQ0VTOworICogTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lO RVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5ECisgKiBPTiBBTlkgVEhFT1JZIE9G IExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9S VAorICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkg V0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMKKyAqIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQg T0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKK2ZtYW4wOiBmbWFuQDQw MDAwMCB7CisJI2FkZHJlc3MtY2VsbHMgPSA8MT47CisJI3NpemUtY2VsbHMgPSA8MT47CisJY2Vs bC1pbmRleCA9IDwwPjsKKwljb21wYXRpYmxlID0gImZzbCxmbWFuIjsKKwlyYW5nZXMgPSA8MCAw eDQwMDAwMCAweDEwMDAwMD47CisJcmVnID0gPDB4NDAwMDAwIDB4MTAwMDAwPjsKKwlpbnRlcnJ1 cHRzID0gPDk2IDIgMCAwPiwgPDE2IDIgMSAxPjsKKwljbG9ja3MgPSA8JmNsb2NrZ2VuIDMgMD47 CisJY2xvY2stbmFtZXMgPSAiZm0wY2xrIjsKKwlmc2wscW1hbi1jaGFubmVsLXJhbmdlID0gPDB4 ODAwIDB4MTA+OworCisJbXVyYW1AMCB7CisJCWNvbXBhdGlibGUgPSAiZnNsLGZtYW4tbXVyYW0i OworCQlyZWcgPSA8MHgwIDB4MzAwMDA+OworCX07CisKKwlmbWFuMF9vaF8weDI6IHBvcnRAODIw MDAgeworCQljZWxsLWluZGV4ID0gPDB4Mj47CisJCWNvbXBhdGlibGUgPSAiZnNsLGZtYW4tdjMt cG9ydC1vaCI7CisJCXJlZyA9IDwweDgyMDAwIDB4MTAwMD47CisJfTsKKworCWZtYW4wX29oXzB4 MzogcG9ydEA4MzAwMCB7CisJCWNlbGwtaW5kZXggPSA8MHgzPjsKKwkJY29tcGF0aWJsZSA9ICJm c2wsZm1hbi12My1wb3J0LW9oIjsKKwkJcmVnID0gPDB4ODMwMDAgMHgxMDAwPjsKKwl9OworCisJ Zm1hbjBfb2hfMHg0OiBwb3J0QDg0MDAwIHsKKwkJY2VsbC1pbmRleCA9IDwweDQ+OworCQljb21w YXRpYmxlID0gImZzbCxmbWFuLXYzLXBvcnQtb2giOworCQlyZWcgPSA8MHg4NDAwMCAweDEwMDA+ OworCX07CisKKwlmbWFuMF9vaF8weDU6IHBvcnRAODUwMDAgeworCQljZWxsLWluZGV4ID0gPDB4 NT47CisJCWNvbXBhdGlibGUgPSAiZnNsLGZtYW4tdjMtcG9ydC1vaCI7CisJCXJlZyA9IDwweDg1 MDAwIDB4MTAwMD47CisJfTsKKworCW1kaW8wOiBtZGlvQGZjMDAwIHsKKwkJI2FkZHJlc3MtY2Vs bHMgPSA8MT47CisJCSNzaXplLWNlbGxzID0gPDA+OworCQljb21wYXRpYmxlID0gImZzbCxmbWFu LW1lbWFjLW1kaW8iLCAiZnNsLGZtYW4teG1kaW8iOworCQlyZWcgPSA8MHhmYzAwMCAweDEwMDA+ OworCX07CisKKwl4bWRpbzA6IG1kaW9AZmQwMDAgeworCQkjYWRkcmVzcy1jZWxscyA9IDwxPjsK KwkJI3NpemUtY2VsbHMgPSA8MD47CisJCWNvbXBhdGlibGUgPSAiZnNsLGZtYW4tbWVtYWMtbWRp byIsICJmc2wsZm1hbi14bWRpbyI7CisJCXJlZyA9IDwweGZkMDAwIDB4MTAwMD47CisJfTsKKwor CXB0cF90aW1lcjA6IHB0cC10aW1lckBmZTAwMCB7CisJCWNvbXBhdGlibGUgPSAiZnNsLGZtYW4t cHRwLXRpbWVyIjsKKwkJcmVnID0gPDB4ZmUwMDAgMHgxMDAwPjsKKwl9OworfTsKLS0gCjEuNy45 LjUKCl9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fCkxpbnV4 cHBjLWRldiBtYWlsaW5nIGxpc3QKTGludXhwcGMtZGV2QGxpc3RzLm96bGFicy5vcmcKaHR0cHM6 Ly9saXN0cy5vemxhYnMub3JnL2xpc3RpbmZvL2xpbnV4cHBjLWRldg==