Received: from malur.postgresql.org ([217.196.149.56]) by arkaria.postgresql.org with esmtps (TLS1.3) tls TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384 (Exim 4.94.2) (envelope-from ) id 1tGy0a-0026XW-Nb for pgsql-hackers@arkaria.postgresql.org; Fri, 29 Nov 2024 10:13:57 +0000 Received: from localhost ([127.0.0.1] helo=malur.postgresql.org) by malur.postgresql.org with esmtp (Exim 4.94.2) (envelope-from ) id 1tGy0Y-006Ei5-78 for pgsql-hackers@arkaria.postgresql.org; Fri, 29 Nov 2024 10:13:55 +0000 Received: from magus.postgresql.org ([2a02:c0:301:0:ffff::29]) by malur.postgresql.org with esmtps (TLS1.3) tls TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384 (Exim 4.94.2) (envelope-from ) id 1tGy0X-006Ehd-Jp for pgsql-hackers@lists.postgresql.org; Fri, 29 Nov 2024 10:13:55 +0000 Received: from fhigh-a5-smtp.messagingengine.com ([103.168.172.156]) by magus.postgresql.org with esmtps (TLS1.3) tls TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384 (Exim 4.94.2) (envelope-from ) id 1tGy0S-00081C-Us for pgsql-hackers@postgresql.org; Fri, 29 Nov 2024 10:13:54 +0000 Received: from phl-compute-10.internal (phl-compute-10.phl.internal [10.202.2.50]) by mailfhigh.phl.internal (Postfix) with ESMTP id 6A17E1140175; Fri, 29 Nov 2024 05:13:48 -0500 (EST) Received: from phl-mailfrontend-02 ([10.202.2.163]) by phl-compute-10.internal (MEProxy); Fri, 29 Nov 2024 05:13:48 -0500 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=eisentraut.org; h=cc:cc:content-type:content-type:date:date:from:from :in-reply-to:in-reply-to:message-id:mime-version:references :reply-to:subject:subject:to:to; s=fm3; t=1732875228; x= 1732961628; bh=PfIWltENLhCmLRee+sx8IdbAla7oNwV0bVNJgmNPeLg=; b=t oeeYIp1L3nhllJpTlDxk3m8QhrSyUPBUsIKqXWRNB2CW2hmGD8rciw6sNW6+63eG 9sroEnnaKvpdEn61B3ieH3fxt0cifrF66tFy3p/8HKi41ILCJ2+WSAp0+JFW+kky VEDGxf/f1bZI4jIa5ocnHde0mQt8y4urOqHlzT7AWREuIbCDa1CfNic2ow3Ew3Vx khQEFMtSDTWx7dsZjOkDdZecwWyiRuW88wkOux0JPRxrISoWNIkuqXm3hU+uDvGA c5F8fjDx0UCmNB3lbfCS1S6Inoo6dWiYS6RFXCFi3Xo1ysjkmf5XkprW1JDS8B2R vio1dGpxwtoMKMrEdMQOQ== DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d= messagingengine.com; h=cc:cc:content-type:content-type:date:date :feedback-id:feedback-id:from:from:in-reply-to:in-reply-to :message-id:mime-version:references:reply-to:subject:subject:to :to:x-me-proxy:x-me-sender:x-me-sender:x-sasl-enc; s=fm1; t= 1732875228; x=1732961628; bh=PfIWltENLhCmLRee+sx8IdbAla7oNwV0bVN JgmNPeLg=; b=fhjPRi/BNXW9oCRQCo3IYeUYSO865L4r3bBf8Sr6a/RMgyCTkmJ x1glMjXcQuSgsUfQdmIuUbYc/7r0RRPOlJ+3I88gnoOAgeKI45n2zeVgUVs1C6EO t3f8S4SxrHhlRLHsUhuMX9V5yPOPXAsqTTZqvDfcihkbCNAxBX6dwvNTMyV4kr2H 6sc9RXV/TfLqGsBdzI/w54EW5eedv8Va5DzE03r+yy/rnUvvhtuB/jrACAF/tvv4 J7Ku7AzzRB0itzyu0BJU/Os1jvdKsBkoe9W0+EOh24cKvqgwEtWRY3+jxnMBXLJG 4eeZo/aPUPnPdKkEa+blZ6kHQAc6TTehY7Q== X-ME-Sender: X-ME-Received: X-ME-Proxy-Cause: gggruggvucftvghtrhhoucdtuddrgeefuddrheefgdduvdcutefuodetggdotefrodftvf curfhrohhfihhlvgemucfhrghsthforghilhdpggftfghnshhusghstghrihgsvgdpuffr tefokffrpgfnqfghnecuuegrihhlohhuthemuceftddtnecusecvtfgvtghiphhivghnth hsucdlqddutddtmdenucfjughrpegtkfffgggfuffhvfevfhgjsehmtderredtvdejnecu hfhrohhmpefrvghtvghrucfgihhsvghnthhrrghuthcuoehpvghtvghrsegvihhsvghnth hrrghuthdrohhrgheqnecuggftrfgrthhtvghrnhepledtheekleffieevfedtkeelveev feekkeevheehvdejfefgveethfetiedtuedvnecuvehluhhsthgvrhfuihiivgeptdenuc frrghrrghmpehmrghilhhfrhhomhepphgvthgvrhesvghishgvnhhtrhgruhhtrdhorhhg pdhnsggprhgtphhtthhopeefpdhmohguvgepshhmthhpohhuthdprhgtphhtthhopehpgh hsqhhlqdhhrggtkhgvrhhssehpohhsthhgrhgvshhqlhdrohhrghdprhgtphhtthhopehj ihgrnhdruhhnihhvvghrshgrlhhithihsehgmhgrihhlrdgtohhmpdhrtghpthhtohepug gvrghnrdgrrdhrrghshhgvvggusehgmhgrihhlrdgtohhm X-ME-Proxy: Feedback-ID: ie0a040ee:Fastmail Received: by mail.messagingengine.com (Postfix) with ESMTPA; Fri, 29 Nov 2024 05:13:47 -0500 (EST) Content-Type: multipart/mixed; boundary="------------z0KHWbahaIm3ADwiA3WIqHvh" Message-ID: Date: Fri, 29 Nov 2024 11:13:45 +0100 MIME-Version: 1.0 User-Agent: Mozilla Thunderbird Subject: Re: Virtual generated columns From: Peter Eisentraut To: pgsql-hackers Cc: jian he , Dean Rasheed References: <732a9543-0312-4f0c-a471-857b507a3546@eisentraut.org> <0f811f71-8c86-4e1b-b3bb-6a535674a440@eisentraut.org> <09800cb1-43aa-4239-8918-46b71ede4900@eisentraut.org> <536b281b-2cb3-4477-971f-c64838bc6263@eisentraut.org> <51875199-d5f5-41ed-92dc-3e7b1b996991@eisentraut.org> Content-Language: en-US In-Reply-To: <51875199-d5f5-41ed-92dc-3e7b1b996991@eisentraut.org> List-Id: List-Help: List-Subscribe: List-Post: List-Owner: List-Archive: Archived-At: Precedence: bulk This is a multi-part message in MIME format. --------------z0KHWbahaIm3ADwiA3WIqHvh Content-Type: text/plain; charset=UTF-8; format=flowed Content-Transfer-Encoding: 7bit Here is a new patch version, with several updates. - Expanded the commit message. - Added more documentation on storage of virtual columns. - Added more documentation and tests on security and access privilege questions. (The functionality itself has not changed.) - Added support for ALTER TABLE ... SET EXPRESSION. - Added support for virtual columns in trigger column lists. (For that, I renamed ExecInitStoredGenerated() to ExecInitGenerated(), which handles the computation of ri_extraUpdatedCols.) - Correctly prevent not-null constraints on virtual columns in all cases (see nearby message). - Expand virtual columns when checking publication row filter expressions (see nearby message). Also added tests in 028_row_filter.pl. According to my notes, this is now feature complete and has no glaring unsolved problems known to me. --------------z0KHWbahaIm3ADwiA3WIqHvh Content-Type: text/plain; charset=UTF-8; name="v10-0001-Virtual-generated-columns.patch" Content-Disposition: attachment; filename="v10-0001-Virtual-generated-columns.patch" Content-Transfer-Encoding: base64 RnJvbSBiN2U4YTY3ZTk2M2FmNTg1YTAzN2VjOWE1ODYyNjdmMjE1MTM5NTg1IE1vbiBTZXAg MTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBQZXRlciBFaXNlbnRyYXV0IDxwZXRlckBlaXNlbnRy YXV0Lm9yZz4KRGF0ZTogRnJpLCAyOSBOb3YgMjAyNCAwOTo0NTozMiArMDEwMApTdWJqZWN0 OiBbUEFUQ0ggdjEwXSBWaXJ0dWFsIGdlbmVyYXRlZCBjb2x1bW5zCgpUaGlzIGFkZHMgYSBu ZXcgdmFyaWFudCBvZiBnZW5lcmF0ZWQgY29sdW1ucyB0aGF0IGFyZSBjb21wdXRlZCBvbiBy ZWFkCihsaWtlIGEgdmlldywgdW5saWtlIHRoZSBleGlzdGluZyBzdG9yZWQgZ2VuZXJhdGVk IGNvbHVtbnMsIHdoaWNoIGFyZQpjb21wdXRlZCBvbiB3cml0ZSwgbGlrZSBhIG1hdGVyaWFs aXplZCB2aWV3KS4KClRoZSBzeW50YXggZm9yIHRoZSBjb2x1bW4gZGVmaW5pdGlvbiBpcwoK ICAgIC4uLiBHRU5FUkFURUQgQUxXQVlTIEFTICguLi4pIFZJUlRVQUwKCmFuZCBWSVJUVUFM IGlzIGFsc28gb3B0aW9uYWwuICBWSVJUVUFMIGlzIHRoZSBkZWZhdWx0IHJhdGhlciB0aGFu ClNUT1JFRCB0byBtYXRjaCB2YXJpb3VzIG90aGVyIFNRTCBwcm9kdWN0cy4gIChUaGUgU1FM IHN0YW5kYXJkIG1ha2VzCm5vIHNwZWNpZmljYXRpb24gYWJvdXQgdGhpcywgYnV0IGl0IGFs c28gZG9lc24ndCBrbm93IGFib3V0IFZJUlRVQUwgb3IKU1RPUkVELikgIChBbHNvLCB2aXJ0 dWFsIHZpZXdzIGFyZSB0aGUgZGVmYXVsdCwgcmF0aGVyIHRoYW4KbWF0ZXJpYWxpemVkIHZp ZXdzLikKClZpcnR1YWwgZ2VuZXJhdGVkIGNvbHVtbnMgYXJlIHN0b3JlZCBpbiB0dXBsZXMg YXMgbnVsbCB2YWx1ZXMuICAoQQp2ZXJ5IGVhcmx5IHZlcnNpb24gb2YgdGhpcyBwYXRjaCBo YWQgdGhlIGFtYml0aW9uIHRvIG5vdCBzdG9yZSB0aGVtIGF0CmFsbC4gIEJ1dCBzbyBtdWNo IHN0dWZmIGJyZWFrcyBvciBnZXRzIGNvbmZ1c2VkIGlmIHlvdSBoYXZlIHR1cGxlcwp3aGVy ZSBhIGNvbHVtbiBpbiB0aGUgbWlkZGxlIGlzIGNvbXBsZXRlbHkgbWlzc2luZy4gIFRoaXMg aXMgYQpjb21wcm9taXNlLCBhbmQgaXQgc3RpbGwgc2F2ZXMgc3BhY2Ugb3ZlciBiZWluZyBm b3JjZWQgdG8gdXNlIHN0b3JlZApnZW5lcmF0ZWQgY29sdW1ucy4gIElmIHdlIGV2ZXIgZmlu ZCBhIHdheSB0byBpbXByb3ZlIHRoaXMsIGEgYml0IG9mCnBnX3VwZ3JhZGUgY2xldmVybmVz cyBjb3VsZCBhbGxvdyBmb3IgdXBncmFkZXMgdG8gYSBuZXdlciBzY2hlbWUuKQoKVGhlIGNh cGFiaWxpdGllcyBhbmQgcmVzdHJpY3Rpb25zIG9mIHZpcnR1YWwgZ2VuZXJhdGVkIGNvbHVt bnMgYXJlCm1vc3RseSB0aGUgc2FtZSBhcyBmb3Igc3RvcmVkIGdlbmVyYXRlZCBjb2x1bW5z LiAgSW4gc29tZSBjYXNlcywgdGhpcwpwYXRjaCBrZWVwcyB2aXJ0dWFsIGdlbmVyYXRlZCBj b2x1bW5zIG1vcmUgcmVzdHJpY3RlZCB0aGFuIHRoZXkgbWlnaHQKdGVjaG5pY2FsbHkgbmVl ZCB0byBiZSwgdG8ga2VlcCB0aGUgdHdvIGtpbmRzIGNvbnNpc3RlbnQuICBTb21lIG9mCnRo YXQgY291bGQgbWF5YmUgYmUgcmVsYXhlZCBsYXRlciBhZnRlciBzZXBhcmF0ZSBjYXJlZnVs CmNvbnNpZGVyYXRpb25zLgoKU29tZSBmdW5jdGlvbmFsaXR5IHRoYXQgaXMgY3VycmVudGx5 IG5vdCBzdXBwb3J0ZWQsIGJ1dCBjb3VsZCBwb3NzaWJseQpiZSBhZGRlZCBhcyBpbmNyZW1l bnRhbCBmZWF0dXJlcywgc29tZSBlYXNpZXIgdGhhbiBvdGhlcnM6CgotIGluZGV4IG9uIG9y IHVzaW5nIGEgdmlydHVhbCBjb2x1bW4KLSBoZW5jZSBhbHNvIG5vIHVuaXF1ZSBjb25zdHJh aW50cyBvbiB2aXJ0dWFsIGNvbHVtbnMKLSBleHRlbmRlZCBzdGF0aXN0aWNzIG9uIHZpcnR1 YWwgY29sdW1ucwotIGZvcmVpZ24ga2V5IGNvbnN0cmFpbnRzIG9uIHZpcnR1YWwgY29sdW1u cwotIG5vdC1udWxsIGNvbnN0cmFpbnRzIG9uIHZpcnR1YWwgY29sdW1ucyAoY2hlY2sgY29u c3RyYWludHMgYXJlIHN1cHBvcnRlZCkKLSBBTFRFUiBUQUJMRSAvIERST1AgRVhQUkVTU0lP TgotIHZpcnR1YWwgY29sdW1uIGNhbm5vdCBoYXZlIGRvbWFpbiB0eXBlCgpUaGUgdGVzdHMg aW4gZ2VuZXJhdGVkX3ZpcnR1YWwuc3FsIGhhdmUgYmVlbiBjb3BpZWQgb3ZlciBmcm9tCmdl bmVyYXRlZF9zdG9yZWQuc3FsIHdpdGggdGhlIGtleXdvcmQgcmVwbGFjZWQuICBUaGlzIHdh eSB3ZSBjYW4gbWFrZQpzdXJlIHRoZSBiZWhhdmlvciBpcyBtb3N0bHkgYWxpZ25lZCwgYW5k IHRoZSBkaWZmZXJlbmNlcyBjYW4gYmUKdmlzaWJsZS4gIFNvbWUgdGVzdHMgZm9yIGN1cnJl bnRseSBub3Qgc3VwcG9ydGVkIGZlYXR1cmVzIGFyZQpjdXJyZW50bHkgY29tbWVudGVkIG91 dC4KClRPRE86Ci0gaGFuZGxpbmcgb2YgcHVibGljYXRpb24gb3B0aW9uIHB1Ymxpc2hfZ2Vu ZXJhdGVkX2NvbHVtbnMKCmNvbnRyaWJ1dGlvbnMgYnkgSmlhbiBIZSwgRGVhbiBSYXNoZWVk CgpEaXNjdXNzaW9uOiBodHRwczovL3d3dy5wb3N0Z3Jlc3FsLm9yZy9tZXNzYWdlLWlkL2Zs YXQvYTM2ODI0OGUtNjllNC00MGJlLTljMDctNmMzYjU4ODBiMGE2QGVpc2VudHJhdXQub3Jn Ci0tLQogY29udHJpYi9wYWdlaW5zcGVjdC9leHBlY3RlZC9wYWdlLm91dCAgICAgICAgIHwg IDM3ICsKIGNvbnRyaWIvcGFnZWluc3BlY3Qvc3FsL3BhZ2Uuc3FsICAgICAgICAgICAgICB8 ICAxOSArCiAuLi4vcG9zdGdyZXNfZmR3L2V4cGVjdGVkL3Bvc3RncmVzX2Zkdy5vdXQgICAg fCAgODEgKy0KIGNvbnRyaWIvcG9zdGdyZXNfZmR3L3NxbC9wb3N0Z3Jlc19mZHcuc3FsICAg ICB8ICAgOSArLQogZG9jL3NyYy9zZ21sL2NhdGFsb2dzLnNnbWwgICAgICAgICAgICAgICAg ICAgIHwgICA2ICstCiBkb2Mvc3JjL3NnbWwvZGRsLnNnbWwgICAgICAgICAgICAgICAgICAg ICAgICAgfCAgNDUgKy0KIGRvYy9zcmMvc2dtbC9yZWYvYWx0ZXJfdGFibGUuc2dtbCAgICAg ICAgICAgICB8ICAxMSArLQogZG9jL3NyYy9zZ21sL3JlZi9jcmVhdGVfZm9yZWlnbl90YWJs ZS5zZ21sICAgIHwgIDExICstCiBkb2Mvc3JjL3NnbWwvcmVmL2NyZWF0ZV90YWJsZS5zZ21s ICAgICAgICAgICAgfCAgMjIgKy0KIGRvYy9zcmMvc2dtbC90cmlnZ2VyLnNnbWwgICAgICAg ICAgICAgICAgICAgICB8ICAgNCArCiBzcmMvYmFja2VuZC9hY2Nlc3MvY29tbW9uL3R1cGRl c2MuYyAgICAgICAgICAgfCAgIDMgKwogc3JjL2JhY2tlbmQvYWNjZXNzL2hlYXAvaGVhcGFt X2hhbmRsZXIuYyAgICAgIHwgICAyICsKIHNyYy9iYWNrZW5kL2NhdGFsb2cvaGVhcC5jICAg ICAgICAgICAgICAgICAgICB8ICAyMyArLQogc3JjL2JhY2tlbmQvY29tbWFuZHMvYW5hbHl6 ZS5jICAgICAgICAgICAgICAgIHwgICA0ICsKIHNyYy9iYWNrZW5kL2NvbW1hbmRzL2luZGV4 Y21kcy5jICAgICAgICAgICAgICB8ICAzMyArLQogc3JjL2JhY2tlbmQvY29tbWFuZHMvcHVi bGljYXRpb25jbWRzLmMgICAgICAgIHwgICAzICsKIHNyYy9iYWNrZW5kL2NvbW1hbmRzL3N0 YXRzY21kcy5jICAgICAgICAgICAgICB8ICAyMCArLQogc3JjL2JhY2tlbmQvY29tbWFuZHMv dGFibGVjbWRzLmMgICAgICAgICAgICAgIHwgMTk2ICsrKy0KIHNyYy9iYWNrZW5kL2NvbW1h bmRzL3RyaWdnZXIuYyAgICAgICAgICAgICAgICB8ICA0NCArLQogc3JjL2JhY2tlbmQvZXhl Y3V0b3IvZXhlY0V4cHJJbnRlcnAuYyAgICAgICAgIHwgICA0ICsKIHNyYy9iYWNrZW5kL2V4 ZWN1dG9yL2V4ZWNNYWluLmMgICAgICAgICAgICAgICB8ICAgNSArLQogc3JjL2JhY2tlbmQv ZXhlY3V0b3IvZXhlY1V0aWxzLmMgICAgICAgICAgICAgIHwgICA0ICstCiBzcmMvYmFja2Vu ZC9leGVjdXRvci9ub2RlTW9kaWZ5VGFibGUuYyAgICAgICAgfCAgMjUgKy0KIHNyYy9iYWNr ZW5kL3BhcnNlci9ncmFtLnkgICAgICAgICAgICAgICAgICAgICB8ICAxNSArLQogc3JjL2Jh Y2tlbmQvcGFyc2VyL3BhcnNlX3JlbGF0aW9uLmMgICAgICAgICAgIHwgICA2ICstCiBzcmMv YmFja2VuZC9wYXJzZXIvcGFyc2VfdXRpbGNtZC5jICAgICAgICAgICAgfCAgMTYgKy0KIHNy Yy9iYWNrZW5kL3JlcGxpY2F0aW9uL3Bnb3V0cHV0L3Bnb3V0cHV0LmMgICB8ICAgMyArLQog c3JjL2JhY2tlbmQvcmV3cml0ZS9yZXdyaXRlSGFuZGxlci5jICAgICAgICAgIHwgMTE1ICsr LQogc3JjL2JhY2tlbmQvdXRpbHMvY2FjaGUvcmVsY2FjaGUuYyAgICAgICAgICAgIHwgICAz ICsKIHNyYy9iaW4vcGdfZHVtcC9wZ19kdW1wLmMgICAgICAgICAgICAgICAgICAgICB8ICAg MyArCiBzcmMvYmluL3BnX2R1bXAvdC8wMDJfcGdfZHVtcC5wbCAgICAgICAgICAgICAgfCAg IDYgKy0KIHNyYy9iaW4vcHNxbC9kZXNjcmliZS5jICAgICAgICAgICAgICAgICAgICAgICB8 ICAgNiArCiBzcmMvaW5jbHVkZS9hY2Nlc3MvdHVwZGVzYy5oICAgICAgICAgICAgICAgICAg fCAgIDEgKwogc3JjL2luY2x1ZGUvY2F0YWxvZy9oZWFwLmggICAgICAgICAgICAgICAgICAg IHwgICAxICsKIHNyYy9pbmNsdWRlL2NhdGFsb2cvcGdfYXR0cmlidXRlLmggICAgICAgICAg ICB8ICAgMSArCiBzcmMvaW5jbHVkZS9leGVjdXRvci9ub2RlTW9kaWZ5VGFibGUuaCAgICAg ICAgfCAgIDYgKy0KIHNyYy9pbmNsdWRlL25vZGVzL2V4ZWNub2Rlcy5oICAgICAgICAgICAg ICAgICB8ICAgMyArCiBzcmMvaW5jbHVkZS9ub2Rlcy9wYXJzZW5vZGVzLmggICAgICAgICAg ICAgICAgfCAgIDEgKwogc3JjL2luY2x1ZGUvcGFyc2VyL2t3bGlzdC5oICAgICAgICAgICAg ICAgICAgIHwgICAxICsKIHNyYy9pbmNsdWRlL3Jld3JpdGUvcmV3cml0ZUhhbmRsZXIuaCAg ICAgICAgICB8ICAgMiArCiBzcmMvcGwvcGxwZXJsL2V4cGVjdGVkL3BscGVybF90cmlnZ2Vy Lm91dCAgICAgfCAgIDcgKy0KIHNyYy9wbC9wbHBlcmwvcGxwZXJsLmMgICAgICAgICAgICAg ICAgICAgICAgICB8ICAgMyArCiBzcmMvcGwvcGxwZXJsL3NxbC9wbHBlcmxfdHJpZ2dlci5z cWwgICAgICAgICAgfCAgIDMgKy0KIHNyYy9wbC9wbHB5dGhvbi9leHBlY3RlZC9wbHB5dGhv bl90cmlnZ2VyLm91dCB8ICAgNyArLQogc3JjL3BsL3BscHl0aG9uL3BscHlfdHlwZWlvLmMg ICAgICAgICAgICAgICAgIHwgICAzICsKIHNyYy9wbC9wbHB5dGhvbi9zcWwvcGxweXRob25f dHJpZ2dlci5zcWwgICAgICB8ICAgMyArLQogc3JjL3BsL3RjbC9leHBlY3RlZC9wbHRjbF90 cmlnZ2VyLm91dCAgICAgICAgIHwgIDE5ICstCiBzcmMvcGwvdGNsL3BsdGNsLmMgICAgICAg ICAgICAgICAgICAgICAgICAgICAgfCAgIDMgKwogc3JjL3BsL3RjbC9zcWwvcGx0Y2xfdHJp Z2dlci5zcWwgICAgICAgICAgICAgIHwgICAzICstCiAuLi4vcmVncmVzcy9leHBlY3RlZC9j b2xsYXRlLmljdS51dGY4Lm91dCAgICAgfCAgMjAgKwogLi4uL3JlZ3Jlc3MvZXhwZWN0ZWQv Y3JlYXRlX3RhYmxlX2xpa2Uub3V0ICAgIHwgIDIzICstCiBzcmMvdGVzdC9yZWdyZXNzL2V4 cGVjdGVkL2Zhc3RfZGVmYXVsdC5vdXQgICAgfCAgMTIgKwogLi4uL3JlZ3Jlc3MvZXhwZWN0 ZWQvZ2VuZXJhdGVkX3N0b3JlZC5vdXQgICAgIHwgIDgzICstCiAuLi5yYXRlZF9zdG9yZWQu b3V0ID0+IGdlbmVyYXRlZF92aXJ0dWFsLm91dH0gfCA4MzUgKysrKysrKysrLS0tLS0tLS0t CiBzcmMvdGVzdC9yZWdyZXNzL2V4cGVjdGVkL3B1YmxpY2F0aW9uLm91dCAgICAgfCAgMTgg Ky0KIHNyYy90ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQvcm93c2VjdXJpdHkub3V0ICAgICB8ICAy OSArCiBzcmMvdGVzdC9yZWdyZXNzL3BhcmFsbGVsX3NjaGVkdWxlICAgICAgICAgICAgfCAg IDMgKwogc3JjL3Rlc3QvcmVncmVzcy9zcWwvY29sbGF0ZS5pY3UudXRmOC5zcWwgICAgIHwg IDE1ICsKIHNyYy90ZXN0L3JlZ3Jlc3Mvc3FsL2NyZWF0ZV90YWJsZV9saWtlLnNxbCAgICB8 ICAgMiArLQogc3JjL3Rlc3QvcmVncmVzcy9zcWwvZmFzdF9kZWZhdWx0LnNxbCAgICAgICAg IHwgIDExICsKIHNyYy90ZXN0L3JlZ3Jlc3Mvc3FsL2dlbmVyYXRlZF9zdG9yZWQuc3FsICAg ICB8ICA0MyArLQogLi4ucmF0ZWRfc3RvcmVkLnNxbCA9PiBnZW5lcmF0ZWRfdmlydHVhbC5z cWx9IHwgMzIxICsrKystLS0KIHNyYy90ZXN0L3JlZ3Jlc3Mvc3FsL3B1YmxpY2F0aW9uLnNx bCAgICAgICAgICB8ICAxNCArLQogc3JjL3Rlc3QvcmVncmVzcy9zcWwvcm93c2VjdXJpdHku c3FsICAgICAgICAgIHwgIDI3ICsKIHNyYy90ZXN0L3N1YnNjcmlwdGlvbi90LzAxMV9nZW5l cmF0ZWQucGwgICAgICB8ICAzOSArLQogc3JjL3Rlc3Qvc3Vic2NyaXB0aW9uL3QvMDI4X3Jv d19maWx0ZXIucGwgICAgIHwgIDM4ICstCiA2NiBmaWxlcyBjaGFuZ2VkLCAxNjQyIGluc2Vy dGlvbnMoKyksIDc0MiBkZWxldGlvbnMoLSkKIGNvcHkgc3JjL3Rlc3QvcmVncmVzcy9leHBl Y3RlZC97Z2VuZXJhdGVkX3N0b3JlZC5vdXQgPT4gZ2VuZXJhdGVkX3ZpcnR1YWwub3V0fSAo NjglKQogY29weSBzcmMvdGVzdC9yZWdyZXNzL3NxbC97Z2VuZXJhdGVkX3N0b3JlZC5zcWwg PT4gZ2VuZXJhdGVkX3ZpcnR1YWwuc3FsfSAoNjglKQoKZGlmZiAtLWdpdCBhL2NvbnRyaWIv cGFnZWluc3BlY3QvZXhwZWN0ZWQvcGFnZS5vdXQgYi9jb250cmliL3BhZ2VpbnNwZWN0L2V4 cGVjdGVkL3BhZ2Uub3V0CmluZGV4IDNmZDM4NjljODJhLi5lNDJmZDk3NDdmZCAxMDA2NDQK LS0tIGEvY29udHJpYi9wYWdlaW5zcGVjdC9leHBlY3RlZC9wYWdlLm91dAorKysgYi9jb250 cmliL3BhZ2VpbnNwZWN0L2V4cGVjdGVkL3BhZ2Uub3V0CkBAIC0yMDgsNiArMjA4LDQzIEBA IHNlbGVjdCB0dXBsZV9kYXRhX3NwbGl0KCd0ZXN0OCc6OnJlZ2NsYXNzLCB0X2RhdGEsIHRf aW5mb21hc2ssIHRfaW5mb21hc2syLCB0X2JpCiAoMSByb3cpCiAKIGRyb3AgdGFibGUgdGVz dDg7CistLSBjaGVjayBzdG9yYWdlIG9mIGdlbmVyYXRlZCBjb2x1bW5zCistLSBzdG9yZWQK K2NyZWF0ZSB0YWJsZSB0ZXN0OXMgKGEgaW50IG5vdCBudWxsLCBiIGludCBnZW5lcmF0ZWQg YWx3YXlzIGFzIChhICogMikgc3RvcmVkKTsKK2luc2VydCBpbnRvIHRlc3Q5cyB2YWx1ZXMg KDEzMTU4NCk7CitzZWxlY3QgcmF3X2ZsYWdzLCB0X2JpdHMsIHRfZGF0YQorICAgIGZyb20g aGVhcF9wYWdlX2l0ZW1zKGdldF9yYXdfcGFnZSgndGVzdDlzJywgMCkpLCBsYXRlcmFsIGhl YXBfdHVwbGVfaW5mb21hc2tfZmxhZ3ModF9pbmZvbWFzaywgdF9pbmZvbWFzazIpOworICAg ICAgcmF3X2ZsYWdzICAgICAgfCB0X2JpdHMgfCAgICAgICB0X2RhdGEgICAgICAgCistLS0t LS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyB7SEVB UF9YTUFYX0lOVkFMSUR9IHwgICAgICAgIHwgXHgwMDAyMDIwMDAwMDQwNDAwCisoMSByb3cp CisKK3NlbGVjdCB0dXBsZV9kYXRhX3NwbGl0KCd0ZXN0OXMnOjpyZWdjbGFzcywgdF9kYXRh LCB0X2luZm9tYXNrLCB0X2luZm9tYXNrMiwgdF9iaXRzKQorICAgIGZyb20gaGVhcF9wYWdl X2l0ZW1zKGdldF9yYXdfcGFnZSgndGVzdDlzJywgMCkpOworICAgICAgIHR1cGxlX2RhdGFf c3BsaXQgICAgICAgIAorLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorIHsiXFx4 MDAwMjAyMDAiLCJcXHgwMDA0MDQwMCJ9CisoMSByb3cpCisKK2Ryb3AgdGFibGUgdGVzdDlz OworLS0gdmlydHVhbAorY3JlYXRlIHRhYmxlIHRlc3Q5diAoYSBpbnQgbm90IG51bGwsIGIg aW50IGdlbmVyYXRlZCBhbHdheXMgYXMgKGEgKiAyKSB2aXJ0dWFsKTsKK2luc2VydCBpbnRv IHRlc3Q5diB2YWx1ZXMgKDEzMTU4NCk7CitzZWxlY3QgcmF3X2ZsYWdzLCB0X2JpdHMsIHRf ZGF0YQorICAgIGZyb20gaGVhcF9wYWdlX2l0ZW1zKGdldF9yYXdfcGFnZSgndGVzdDl2Jywg MCkpLCBsYXRlcmFsIGhlYXBfdHVwbGVfaW5mb21hc2tfZmxhZ3ModF9pbmZvbWFzaywgdF9p bmZvbWFzazIpOworICAgICAgICAgICAgcmF3X2ZsYWdzICAgICAgICAgICAgIHwgIHRfYml0 cyAgfCAgIHRfZGF0YSAgIAorLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSst LS0tLS0tLS0tKy0tLS0tLS0tLS0tLQorIHtIRUFQX0hBU05VTEwsSEVBUF9YTUFYX0lOVkFM SUR9IHwgMTAwMDAwMDAgfCBceDAwMDIwMjAwCisoMSByb3cpCisKK3NlbGVjdCB0dXBsZV9k YXRhX3NwbGl0KCd0ZXN0OXYnOjpyZWdjbGFzcywgdF9kYXRhLCB0X2luZm9tYXNrLCB0X2lu Zm9tYXNrMiwgdF9iaXRzKQorICAgIGZyb20gaGVhcF9wYWdlX2l0ZW1zKGdldF9yYXdfcGFn ZSgndGVzdDl2JywgMCkpOworICAgdHVwbGVfZGF0YV9zcGxpdCAgIAorLS0tLS0tLS0tLS0t LS0tLS0tLS0tLQorIHsiXFx4MDAwMjAyMDAiLE5VTEx9CisoMSByb3cpCisKK2Ryb3AgdGFi bGUgdGVzdDl2OwogLS0gRmFpbHVyZSB3aXRoIGluY29ycmVjdCBwYWdlIHNpemUKIC0tIFN1 cHByZXNzIHRoZSBERVRBSUwgbWVzc2FnZSwgdG8gYWxsb3cgdGhlIHRlc3RzIHRvIHdvcmsg YWNyb3NzIHZhcmlvdXMKIC0tIHBhZ2Ugc2l6ZXMuCmRpZmYgLS1naXQgYS9jb250cmliL3Bh Z2VpbnNwZWN0L3NxbC9wYWdlLnNxbCBiL2NvbnRyaWIvcGFnZWluc3BlY3Qvc3FsL3BhZ2Uu c3FsCmluZGV4IDM0NmU0ZWUxNDJjLi5jNzVmZTExNDdmNiAxMDA2NDQKLS0tIGEvY29udHJp Yi9wYWdlaW5zcGVjdC9zcWwvcGFnZS5zcWwKKysrIGIvY29udHJpYi9wYWdlaW5zcGVjdC9z cWwvcGFnZS5zcWwKQEAgLTg0LDYgKzg0LDI1IEBAIENSRUFURSBURU1QIFRBQkxFIHRlc3Qx IChhIGludCwgYiBpbnQpOwogICAgIGZyb20gaGVhcF9wYWdlX2l0ZW1zKGdldF9yYXdfcGFn ZSgndGVzdDgnLCAwKSk7CiBkcm9wIHRhYmxlIHRlc3Q4OwogCistLSBjaGVjayBzdG9yYWdl IG9mIGdlbmVyYXRlZCBjb2x1bW5zCistLSBzdG9yZWQKK2NyZWF0ZSB0YWJsZSB0ZXN0OXMg KGEgaW50IG5vdCBudWxsLCBiIGludCBnZW5lcmF0ZWQgYWx3YXlzIGFzIChhICogMikgc3Rv cmVkKTsKK2luc2VydCBpbnRvIHRlc3Q5cyB2YWx1ZXMgKDEzMTU4NCk7CitzZWxlY3QgcmF3 X2ZsYWdzLCB0X2JpdHMsIHRfZGF0YQorICAgIGZyb20gaGVhcF9wYWdlX2l0ZW1zKGdldF9y YXdfcGFnZSgndGVzdDlzJywgMCkpLCBsYXRlcmFsIGhlYXBfdHVwbGVfaW5mb21hc2tfZmxh Z3ModF9pbmZvbWFzaywgdF9pbmZvbWFzazIpOworc2VsZWN0IHR1cGxlX2RhdGFfc3BsaXQo J3Rlc3Q5cyc6OnJlZ2NsYXNzLCB0X2RhdGEsIHRfaW5mb21hc2ssIHRfaW5mb21hc2syLCB0 X2JpdHMpCisgICAgZnJvbSBoZWFwX3BhZ2VfaXRlbXMoZ2V0X3Jhd19wYWdlKCd0ZXN0OXMn LCAwKSk7Citkcm9wIHRhYmxlIHRlc3Q5czsKKworLS0gdmlydHVhbAorY3JlYXRlIHRhYmxl IHRlc3Q5diAoYSBpbnQgbm90IG51bGwsIGIgaW50IGdlbmVyYXRlZCBhbHdheXMgYXMgKGEg KiAyKSB2aXJ0dWFsKTsKK2luc2VydCBpbnRvIHRlc3Q5diB2YWx1ZXMgKDEzMTU4NCk7Citz ZWxlY3QgcmF3X2ZsYWdzLCB0X2JpdHMsIHRfZGF0YQorICAgIGZyb20gaGVhcF9wYWdlX2l0 ZW1zKGdldF9yYXdfcGFnZSgndGVzdDl2JywgMCkpLCBsYXRlcmFsIGhlYXBfdHVwbGVfaW5m b21hc2tfZmxhZ3ModF9pbmZvbWFzaywgdF9pbmZvbWFzazIpOworc2VsZWN0IHR1cGxlX2Rh dGFfc3BsaXQoJ3Rlc3Q5dic6OnJlZ2NsYXNzLCB0X2RhdGEsIHRfaW5mb21hc2ssIHRfaW5m b21hc2syLCB0X2JpdHMpCisgICAgZnJvbSBoZWFwX3BhZ2VfaXRlbXMoZ2V0X3Jhd19wYWdl KCd0ZXN0OXYnLCAwKSk7Citkcm9wIHRhYmxlIHRlc3Q5djsKKwogLS0gRmFpbHVyZSB3aXRo IGluY29ycmVjdCBwYWdlIHNpemUKIC0tIFN1cHByZXNzIHRoZSBERVRBSUwgbWVzc2FnZSwg dG8gYWxsb3cgdGhlIHRlc3RzIHRvIHdvcmsgYWNyb3NzIHZhcmlvdXMKIC0tIHBhZ2Ugc2l6 ZXMuCmRpZmYgLS1naXQgYS9jb250cmliL3Bvc3RncmVzX2Zkdy9leHBlY3RlZC9wb3N0Z3Jl c19mZHcub3V0IGIvY29udHJpYi9wb3N0Z3Jlc19mZHcvZXhwZWN0ZWQvcG9zdGdyZXNfZmR3 Lm91dAppbmRleCBmMmJjZDZhYTk4Yy4uNjE0ZTgxMzVlMGUgMTAwNjQ0Ci0tLSBhL2NvbnRy aWIvcG9zdGdyZXNfZmR3L2V4cGVjdGVkL3Bvc3RncmVzX2Zkdy5vdXQKKysrIGIvY29udHJp Yi9wb3N0Z3Jlc19mZHcvZXhwZWN0ZWQvcG9zdGdyZXNfZmR3Lm91dApAQCAtNzI4Myw2NSAr NzI4Myw2OCBAQCBzZWxlY3QgKiBmcm9tIHJlbTE7CiAtLSA9PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CiBjcmVh dGUgdGFibGUgZ2xvYzEgKAogICBhIGludCwKLSAgYiBpbnQgZ2VuZXJhdGVkIGFsd2F5cyBh cyAoYSAqIDIpIHN0b3JlZCk7CisgIGIgaW50IGdlbmVyYXRlZCBhbHdheXMgYXMgKGEgKiAy KSBzdG9yZWQsCisgIGMgaW50CispOwogYWx0ZXIgdGFibGUgZ2xvYzEgc2V0IChhdXRvdmFj dXVtX2VuYWJsZWQgPSAnZmFsc2UnKTsKIGNyZWF0ZSBmb3JlaWduIHRhYmxlIGdyZW0xICgK ICAgYSBpbnQsCi0gIGIgaW50IGdlbmVyYXRlZCBhbHdheXMgYXMgKGEgKiAyKSBzdG9yZWQp Ci0gIHNlcnZlciBsb29wYmFjayBvcHRpb25zKHRhYmxlX25hbWUgJ2dsb2MxJyk7CisgIGIg aW50IGdlbmVyYXRlZCBhbHdheXMgYXMgKGEgKiAyKSBzdG9yZWQsCisgIGMgaW50IGdlbmVy YXRlZCBhbHdheXMgYXMgKGEgKiAzKSB2aXJ0dWFsCispIHNlcnZlciBsb29wYmFjayBvcHRp b25zKHRhYmxlX25hbWUgJ2dsb2MxJyk7CiBleHBsYWluICh2ZXJib3NlLCBjb3N0cyBvZmYp CiBpbnNlcnQgaW50byBncmVtMSAoYSkgdmFsdWVzICgxKSwgKDIpOwotICAgICAgICAgICAg ICAgICAgICAgICAgICAgIFFVRVJZIFBMQU4gICAgICAgICAgICAgICAgICAgICAgICAgICAg IAotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFFV RVJZIFBMQU4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAorLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLQogIEluc2VydCBvbiBwdWJsaWMuZ3JlbTEKLSAgIFJlbW90ZSBT UUw6IElOU0VSVCBJTlRPIHB1YmxpYy5nbG9jMShhLCBiKSBWQUxVRVMgKCQxLCBERUZBVUxU KQorICAgUmVtb3RlIFNRTDogSU5TRVJUIElOVE8gcHVibGljLmdsb2MxKGEsIGIsIGMpIFZB TFVFUyAoJDEsIERFRkFVTFQsIERFRkFVTFQpCiAgICBCYXRjaCBTaXplOiAxCiAgICAtPiAg VmFsdWVzIFNjYW4gb24gIipWQUxVRVMqIgotICAgICAgICAgT3V0cHV0OiAiKlZBTFVFUyoi LmNvbHVtbjEsIE5VTEw6OmludGVnZXIKKyAgICAgICAgIE91dHB1dDogIipWQUxVRVMqIi5j b2x1bW4xLCBOVUxMOjppbnRlZ2VyLCBOVUxMOjppbnRlZ2VyCiAoNSByb3dzKQogCiBpbnNl cnQgaW50byBncmVtMSAoYSkgdmFsdWVzICgxKSwgKDIpOwogZXhwbGFpbiAodmVyYm9zZSwg Y29zdHMgb2ZmKQogdXBkYXRlIGdyZW0xIHNldCBhID0gMjIgd2hlcmUgYSA9IDI7Ci0gICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgUVVFUlkgUExBTiAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgUVVFUlkgUExB TiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAorLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogIFVwZGF0ZSBvbiBwdWJsaWMuZ3JlbTEKLSAgIFJl bW90ZSBTUUw6IFVQREFURSBwdWJsaWMuZ2xvYzEgU0VUIGEgPSAkMiwgYiA9IERFRkFVTFQg V0hFUkUgY3RpZCA9ICQxCisgICBSZW1vdGUgU1FMOiBVUERBVEUgcHVibGljLmdsb2MxIFNF VCBhID0gJDIsIGIgPSBERUZBVUxULCBjID0gREVGQVVMVCBXSEVSRSBjdGlkID0gJDEKICAg IC0+ICBGb3JlaWduIFNjYW4gb24gcHVibGljLmdyZW0xCiAgICAgICAgICBPdXRwdXQ6IDIy LCBjdGlkLCBncmVtMS4qCi0gICAgICAgICBSZW1vdGUgU1FMOiBTRUxFQ1QgYSwgYiwgY3Rp ZCBGUk9NIHB1YmxpYy5nbG9jMSBXSEVSRSAoKGEgPSAyKSkgRk9SIFVQREFURQorICAgICAg ICAgUmVtb3RlIFNRTDogU0VMRUNUIGEsIGIsIGMsIGN0aWQgRlJPTSBwdWJsaWMuZ2xvYzEg V0hFUkUgKChhID0gMikpIEZPUiBVUERBVEUKICg1IHJvd3MpCiAKIHVwZGF0ZSBncmVtMSBz ZXQgYSA9IDIyIHdoZXJlIGEgPSAyOwogc2VsZWN0ICogZnJvbSBnbG9jMTsKLSBhICB8IGIg IAotLS0tLSstLS0tCi0gIDEgfCAgMgotIDIyIHwgNDQKKyBhICB8IGIgIHwgYyAKKy0tLS0r LS0tLSstLS0KKyAgMSB8ICAyIHwgIAorIDIyIHwgNDQgfCAgCiAoMiByb3dzKQogCiBzZWxl Y3QgKiBmcm9tIGdyZW0xOwotIGEgIHwgYiAgCi0tLS0tKy0tLS0KLSAgMSB8ICAyCi0gMjIg fCA0NAorIGEgIHwgYiAgfCBjICAKKy0tLS0rLS0tLSstLS0tCisgIDEgfCAgMiB8ICAzCisg MjIgfCA0NCB8IDY2CiAoMiByb3dzKQogCiBkZWxldGUgZnJvbSBncmVtMTsKIC0tIHRlc3Qg Y29weSBmcm9tCiBjb3B5IGdyZW0xIGZyb20gc3RkaW47CiBzZWxlY3QgKiBmcm9tIGdsb2Mx OwotIGEgfCBiIAotLS0tKy0tLQotIDEgfCAyCi0gMiB8IDQKKyBhIHwgYiB8IGMgCistLS0r LS0tKy0tLQorIDEgfCAyIHwgIAorIDIgfCA0IHwgIAogKDIgcm93cykKIAogc2VsZWN0ICog ZnJvbSBncmVtMTsKLSBhIHwgYiAKLS0tLSstLS0KLSAxIHwgMgotIDIgfCA0CisgYSB8IGIg fCBjIAorLS0tKy0tLSstLS0KKyAxIHwgMiB8IDMKKyAyIHwgNCB8IDYKICgyIHJvd3MpCiAK IGRlbGV0ZSBmcm9tIGdyZW0xOwpAQCAtNzM0OSwyOCArNzM1MiwyOCBAQCBkZWxldGUgZnJv bSBncmVtMTsKIGFsdGVyIHNlcnZlciBsb29wYmFjayBvcHRpb25zIChhZGQgYmF0Y2hfc2l6 ZSAnMTAnKTsKIGV4cGxhaW4gKHZlcmJvc2UsIGNvc3RzIG9mZikKIGluc2VydCBpbnRvIGdy ZW0xIChhKSB2YWx1ZXMgKDEpLCAoMik7Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAg UVVFUlkgUExBTiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCi0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgUVVFUlkgUExBTiAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgCistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t CiAgSW5zZXJ0IG9uIHB1YmxpYy5ncmVtMQotICAgUmVtb3RlIFNRTDogSU5TRVJUIElOVE8g cHVibGljLmdsb2MxKGEsIGIpIFZBTFVFUyAoJDEsIERFRkFVTFQpCisgICBSZW1vdGUgU1FM OiBJTlNFUlQgSU5UTyBwdWJsaWMuZ2xvYzEoYSwgYiwgYykgVkFMVUVTICgkMSwgREVGQVVM VCwgREVGQVVMVCkKICAgIEJhdGNoIFNpemU6IDEwCiAgICAtPiAgVmFsdWVzIFNjYW4gb24g IipWQUxVRVMqIgotICAgICAgICAgT3V0cHV0OiAiKlZBTFVFUyoiLmNvbHVtbjEsIE5VTEw6 OmludGVnZXIKKyAgICAgICAgIE91dHB1dDogIipWQUxVRVMqIi5jb2x1bW4xLCBOVUxMOjpp bnRlZ2VyLCBOVUxMOjppbnRlZ2VyCiAoNSByb3dzKQogCiBpbnNlcnQgaW50byBncmVtMSAo YSkgdmFsdWVzICgxKSwgKDIpOwogc2VsZWN0ICogZnJvbSBnbG9jMTsKLSBhIHwgYiAKLS0t LSstLS0KLSAxIHwgMgotIDIgfCA0CisgYSB8IGIgfCBjIAorLS0tKy0tLSstLS0KKyAxIHwg MiB8ICAKKyAyIHwgNCB8ICAKICgyIHJvd3MpCiAKIHNlbGVjdCAqIGZyb20gZ3JlbTE7Ci0g YSB8IGIgCi0tLS0rLS0tCi0gMSB8IDIKLSAyIHwgNAorIGEgfCBiIHwgYyAKKy0tLSstLS0r LS0tCisgMSB8IDIgfCAzCisgMiB8IDQgfCA2CiAoMiByb3dzKQogCiBkZWxldGUgZnJvbSBn cmVtMTsKZGlmZiAtLWdpdCBhL2NvbnRyaWIvcG9zdGdyZXNfZmR3L3NxbC9wb3N0Z3Jlc19m ZHcuc3FsIGIvY29udHJpYi9wb3N0Z3Jlc19mZHcvc3FsL3Bvc3RncmVzX2Zkdy5zcWwKaW5k ZXggMzcyZmU2ZGFkMTUuLjMyZTE2YmZjMGUyIDEwMDY0NAotLS0gYS9jb250cmliL3Bvc3Rn cmVzX2Zkdy9zcWwvcG9zdGdyZXNfZmR3LnNxbAorKysgYi9jb250cmliL3Bvc3RncmVzX2Zk dy9zcWwvcG9zdGdyZXNfZmR3LnNxbApAQCAtMTgzNiwxMiArMTgzNiwxNSBAQCBDUkVBVEUg VklFVyByd192aWV3IEFTIFNFTEVDVCAqIEZST00gcGFyZW50X3RibCBXSEVSRSBhIDwgNSBX SVRIIENIRUNLIE9QVElPTjsKIC0tID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KIGNyZWF0ZSB0YWJsZSBnbG9j MSAoCiAgIGEgaW50LAotICBiIGludCBnZW5lcmF0ZWQgYWx3YXlzIGFzIChhICogMikgc3Rv cmVkKTsKKyAgYiBpbnQgZ2VuZXJhdGVkIGFsd2F5cyBhcyAoYSAqIDIpIHN0b3JlZCwKKyAg YyBpbnQKKyk7CiBhbHRlciB0YWJsZSBnbG9jMSBzZXQgKGF1dG92YWN1dW1fZW5hYmxlZCA9 ICdmYWxzZScpOwogY3JlYXRlIGZvcmVpZ24gdGFibGUgZ3JlbTEgKAogICBhIGludCwKLSAg YiBpbnQgZ2VuZXJhdGVkIGFsd2F5cyBhcyAoYSAqIDIpIHN0b3JlZCkKLSAgc2VydmVyIGxv b3BiYWNrIG9wdGlvbnModGFibGVfbmFtZSAnZ2xvYzEnKTsKKyAgYiBpbnQgZ2VuZXJhdGVk IGFsd2F5cyBhcyAoYSAqIDIpIHN0b3JlZCwKKyAgYyBpbnQgZ2VuZXJhdGVkIGFsd2F5cyBh cyAoYSAqIDMpIHZpcnR1YWwKKykgc2VydmVyIGxvb3BiYWNrIG9wdGlvbnModGFibGVfbmFt ZSAnZ2xvYzEnKTsKIGV4cGxhaW4gKHZlcmJvc2UsIGNvc3RzIG9mZikKIGluc2VydCBpbnRv IGdyZW0xIChhKSB2YWx1ZXMgKDEpLCAoMik7CiBpbnNlcnQgaW50byBncmVtMSAoYSkgdmFs dWVzICgxKSwgKDIpOwpkaWZmIC0tZ2l0IGEvZG9jL3NyYy9zZ21sL2NhdGFsb2dzLnNnbWwg Yi9kb2Mvc3JjL3NnbWwvY2F0YWxvZ3Muc2dtbAppbmRleCA1OWJiODMzZjQ4ZC4uZWZjZjEy YTU5NmEgMTAwNjQ0Ci0tLSBhL2RvYy9zcmMvc2dtbC9jYXRhbG9ncy5zZ21sCisrKyBiL2Rv Yy9zcmMvc2dtbC9jYXRhbG9ncy5zZ21sCkBAIC0xMzE4LDggKzEzMTgsMTAgQEAgPHRpdGxl PjxzdHJ1Y3RuYW1lPnBnX2F0dHJpYnV0ZTwvc3RydWN0bmFtZT4gQ29sdW1uczwvdGl0bGU+ CiAgICAgICA8L3BhcmE+CiAgICAgICA8cGFyYT4KICAgICAgICBJZiBhIHplcm8gYnl0ZSAo PGxpdGVyYWw+Jyc8L2xpdGVyYWw+KSwgdGhlbiBub3QgYSBnZW5lcmF0ZWQgY29sdW1uLgot ICAgICAgIE90aGVyd2lzZSwgPGxpdGVyYWw+czwvbGl0ZXJhbD4gPSBzdG9yZWQuICAoT3Ro ZXIgdmFsdWVzIG1pZ2h0IGJlIGFkZGVkCi0gICAgICAgaW4gdGhlIGZ1dHVyZS4pCisgICAg ICAgT3RoZXJ3aXNlLCA8bGl0ZXJhbD5zPC9saXRlcmFsPiA9IHN0b3JlZCwgPGxpdGVyYWw+ djwvbGl0ZXJhbD4gPQorICAgICAgIHZpcnR1YWwuICBBIHN0b3JlZCBnZW5lcmF0ZWQgY29s dW1uIGlzIHBoeXNpY2FsbHkgc3RvcmVkIGxpa2UgYSBub3JtYWwKKyAgICAgICBjb2x1bW4u ICBBIHZpcnR1YWwgZ2VuZXJhdGVkIGNvbHVtbiBpcyBwaHlzaWNhbGx5IHN0b3JlZCBhcyBh IG51bGwKKyAgICAgICB2YWx1ZSwgd2l0aCB0aGUgYWN0dWFsIHZhbHVlIGJlaW5nIGNvbXB1 dGVkIGF0IHJ1biB0aW1lLgogICAgICAgPC9wYXJhPjwvZW50cnk+CiAgICAgIDwvcm93Pgog CmRpZmYgLS1naXQgYS9kb2Mvc3JjL3NnbWwvZGRsLnNnbWwgYi9kb2Mvc3JjL3NnbWwvZGRs LnNnbWwKaW5kZXggMDgxNTViMTU2YTUuLmIwZWQxNmE5ZDMwIDEwMDY0NAotLS0gYS9kb2Mv c3JjL3NnbWwvZGRsLnNnbWwKKysrIGIvZG9jL3NyYy9zZ21sL2RkbC5zZ21sCkBAIC0zNjEs NyArMzYxLDYgQEAgPHRpdGxlPkdlbmVyYXRlZCBDb2x1bW5zPC90aXRsZT4KICAgIHN0b3Jh Z2UgYW5kIGlzIGNvbXB1dGVkIHdoZW4gaXQgaXMgcmVhZC4gIFRodXMsIGEgdmlydHVhbCBn ZW5lcmF0ZWQgY29sdW1uCiAgICBpcyBzaW1pbGFyIHRvIGEgdmlldyBhbmQgYSBzdG9yZWQg Z2VuZXJhdGVkIGNvbHVtbiBpcyBzaW1pbGFyIHRvIGEKICAgIG1hdGVyaWFsaXplZCB2aWV3 IChleGNlcHQgdGhhdCBpdCBpcyBhbHdheXMgdXBkYXRlZCBhdXRvbWF0aWNhbGx5KS4KLSAg IDxwcm9kdWN0bmFtZT5Qb3N0Z3JlU1FMPC9wcm9kdWN0bmFtZT4gY3VycmVudGx5IGltcGxl bWVudHMgb25seSBzdG9yZWQgZ2VuZXJhdGVkIGNvbHVtbnMuCiAgIDwvcGFyYT4KIAogICA8 cGFyYT4KQEAgLTM3MSwxMiArMzcwLDEyIEBAIDx0aXRsZT5HZW5lcmF0ZWQgQ29sdW1uczwv dGl0bGU+CiBDUkVBVEUgVEFCTEUgcGVvcGxlICgKICAgICAuLi4sCiAgICAgaGVpZ2h0X2Nt IG51bWVyaWMsCi0gICAgaGVpZ2h0X2luIG51bWVyaWMgPGVtcGhhc2lzPkdFTkVSQVRFRCBB TFdBWVMgQVMgKGhlaWdodF9jbSAvIDIuNTQpIFNUT1JFRDwvZW1waGFzaXM+CisgICAgaGVp Z2h0X2luIG51bWVyaWMgPGVtcGhhc2lzPkdFTkVSQVRFRCBBTFdBWVMgQVMgKGhlaWdodF9j bSAvIDIuNTQpPC9lbXBoYXNpcz4KICk7CiA8L3Byb2dyYW1saXN0aW5nPgotICAgVGhlIGtl eXdvcmQgPGxpdGVyYWw+U1RPUkVEPC9saXRlcmFsPiBtdXN0IGJlIHNwZWNpZmllZCB0byBj aG9vc2UgdGhlCi0gICBzdG9yZWQga2luZCBvZiBnZW5lcmF0ZWQgY29sdW1uLiAgU2VlIDx4 cmVmIGxpbmtlbmQ9InNxbC1jcmVhdGV0YWJsZSIvPiBmb3IKLSAgIG1vcmUgZGV0YWlscy4K KyAgIEEgZ2VuZXJhdGVkIGNvbHVtbiBpcyBieSBkZWZhdWx0IG9mIHRoZSB2aXJ0dWFsIGtp bmQuICBVc2UgdGhlIGtleXdvcmRzCisgICA8bGl0ZXJhbD5WSVJUVUFMPC9saXRlcmFsPiBv ciA8bGl0ZXJhbD5TVE9SRUQ8L2xpdGVyYWw+IHRvIG1ha2UgdGhlIGNob2ljZQorICAgZXhw bGljaXQuICBTZWUgPHhyZWYgbGlua2VuZD0ic3FsLWNyZWF0ZXRhYmxlIi8+IGZvciBtb3Jl IGRldGFpbHMuCiAgIDwvcGFyYT4KIAogICA8cGFyYT4KQEAgLTQ0MiwxMiArNDQxLDE4IEBA IDx0aXRsZT5HZW5lcmF0ZWQgQ29sdW1uczwvdGl0bGU+CiAgICAgICA8bGlzdGl0ZW0+CiAg ICAgICAgPHBhcmE+CiAgICAgICAgIElmIGEgcGFyZW50IGNvbHVtbiBpcyBhIGdlbmVyYXRl ZCBjb2x1bW4sIGl0cyBjaGlsZCBjb2x1bW4gbXVzdCBhbHNvCi0gICAgICAgIGJlIGEgZ2Vu ZXJhdGVkIGNvbHVtbjsgaG93ZXZlciwgdGhlIGNoaWxkIGNvbHVtbiBjYW4gaGF2ZSBhCi0g ICAgICAgIGRpZmZlcmVudCBnZW5lcmF0aW9uIGV4cHJlc3Npb24uICBUaGUgZ2VuZXJhdGlv biBleHByZXNzaW9uIHRoYXQgaXMKKyAgICAgICAgYmUgYSBnZW5lcmF0ZWQgY29sdW1uIG9m IHRoZSBzYW1lIGtpbmQgKHN0b3JlZCBvciB2aXJ0dWFsKTsgaG93ZXZlciwKKyAgICAgICAg dGhlIGNoaWxkIGNvbHVtbiBjYW4gaGF2ZSBhIGRpZmZlcmVudCBnZW5lcmF0aW9uIGV4cHJl c3Npb24uCisgICAgICAgPC9wYXJhPgorCisgICAgICAgPHBhcmE+CisgICAgICAgIEZvciBz dG9yZWQgZ2VuZXJhdGVkIGNvbHVtbnMsIHRoZSBnZW5lcmF0aW9uIGV4cHJlc3Npb24gdGhh dCBpcwogICAgICAgICBhY3R1YWxseSBhcHBsaWVkIGR1cmluZyBpbnNlcnQgb3IgdXBkYXRl IG9mIGEgcm93IGlzIHRoZSBvbmUKLSAgICAgICAgYXNzb2NpYXRlZCB3aXRoIHRoZSB0YWJs ZSB0aGF0IHRoZSByb3cgaXMgcGh5c2ljYWxseSBpbi4KLSAgICAgICAgKFRoaXMgaXMgdW5s aWtlIHRoZSBiZWhhdmlvciBmb3IgY29sdW1uIGRlZmF1bHRzOiBmb3IgdGhvc2UsIHRoZQot ICAgICAgICBkZWZhdWx0IHZhbHVlIGFzc29jaWF0ZWQgd2l0aCB0aGUgdGFibGUgbmFtZWQg aW4gdGhlIHF1ZXJ5IGFwcGxpZXMuKQorICAgICAgICBhc3NvY2lhdGVkIHdpdGggdGhlIHRh YmxlIHRoYXQgdGhlIHJvdyBpcyBwaHlzaWNhbGx5IGluLiAgKFRoaXMgaXMKKyAgICAgICAg dW5saWtlIHRoZSBiZWhhdmlvciBmb3IgY29sdW1uIGRlZmF1bHRzOiBmb3IgdGhvc2UsIHRo ZSBkZWZhdWx0IHZhbHVlCisgICAgICAgIGFzc29jaWF0ZWQgd2l0aCB0aGUgdGFibGUgbmFt ZWQgaW4gdGhlIHF1ZXJ5IGFwcGxpZXMuKSAgRm9yIHZpcnR1YWwKKyAgICAgICAgZ2VuZXJh dGVkIGNvbHVtbnMsIHRoZSBnZW5lcmF0aW9uIGV4cHJlc3Npb24gb2YgdGhlIHRhYmxlIG5h bWVkIGluIHRoZQorICAgICAgICBxdWVyeSBhcHBsaWVzIHdoZW4gYSB0YWJsZSBpcyByZWFk LgogICAgICAgIDwvcGFyYT4KICAgICAgIDwvbGlzdGl0ZW0+CiAgICAgICA8bGlzdGl0ZW0+ CkBAIC01MDIsNiArNTA3LDI2IEBAIDx0aXRsZT5HZW5lcmF0ZWQgQ29sdW1uczwvdGl0bGU+ CiAgICAgICBwYXJ0aWN1bGFyIHJvbGUgY2FuIHJlYWQgZnJvbSBhIGdlbmVyYXRlZCBjb2x1 bW4gYnV0IG5vdCBmcm9tIHRoZQogICAgICAgdW5kZXJseWluZyBiYXNlIGNvbHVtbnMuCiAg ICAgIDwvcGFyYT4KKworICAgICA8cGFyYT4KKyAgICAgIEZvciB2aXJ0dWFsIGdlbmVyYXRl ZCBjb2x1bW5zLCB0aGlzIGlzIG9ubHkgZnVsbHkgc2VjdXJlIGlmIHRoZQorICAgICAgZ2Vu ZXJhdGlvbiBleHByZXNzaW9uIHVzZXMgb25seSBsZWFrcHJvb2YgZnVuY3Rpb25zIChzZWUg PHhyZWYKKyAgICAgIGxpbmtlbmQ9InNxbC1jcmVhdGVmdW5jdGlvbiIvPiksIGJ1dCB0aGlz IGlzIG5vdCBlbmZvcmNlZCBieSB0aGUgc3lzdGVtLgorICAgICA8L3BhcmE+CisgICAgPC9s aXN0aXRlbT4KKyAgICA8bGlzdGl0ZW0+CisgICAgIDxwYXJhPgorICAgICAgUHJpdmlsZWdl cyBvZiBmdW5jdGlvbnMgdXNlZCBpbiBnZW5lcmF0aW9uIGV4cHJlc3Npb25zIGFyZSBjaGVj a2VkIHdoZW4KKyAgICAgIHRoZSBleHByZXNzaW9uIGlzIGFjdHVhbGx5IGV4ZWN1dGVkLCBv biB3cml0ZSBvciByZWFkIHJlc3BlY3RpdmVseSwgYXMKKyAgICAgIGlmIHRoZSBnZW5lcmF0 aW9uIGV4cHJlc3Npb24gaGFkIGJlZW4gY2FsbGVkIGRpcmVjdGx5IGZyb20gdGhlIHF1ZXJ5 CisgICAgICB1c2luZyB0aGUgZ2VuZXJhdGVkIGNvbHVtbi4gIFRoZSB1c2VyIG9mIGEgZ2Vu ZXJhdGVkIGNvbHVtbiBtdXN0IGhhdmUKKyAgICAgIHBlcm1pc3Npb25zIHRvIGNhbGwgYWxs IGZ1bmN0aW9ucyB1c2VkIGJ5IHRoZSBnZW5lcmF0aW9uIGV4cHJlc3Npb24uCisgICAgICBG dW5jdGlvbnMgaW4gdGhlIGdlbmVyYXRpb24gZXhwcmVzc2lvbiBhcmUgZXhlY3V0ZWQgd2l0 aCB0aGUgcHJpdmlsZWdlcworICAgICAgb2YgdGhlIHVzZXIgZXhlY3V0aW5nIHRoZSBxdWVy eSBvciB0aGUgZnVuY3Rpb24gb3duZXIsIGRlcGVuZGluZyBvbgorICAgICAgd2hldGhlciB0 aGUgZnVuY3Rpb25zIGFyZSBkZWZpbmVkIGFzIDxsaXRlcmFsPlNFQ1VSSVRZIElOVk9LRVI8 L2xpdGVyYWw+CisgICAgICBvciA8bGl0ZXJhbD5TRUNVUklUWSBERUZJTkVSPC9saXRlcmFs Pi4KKyAgICAgIDwhLS0gbWF0Y2hlcyBjcmVhdGVfdmlldy5zZ21sIC0tPgorICAgICA8L3Bh cmE+CiAgICAgPC9saXN0aXRlbT4KICAgICA8bGlzdGl0ZW0+CiAgICAgIDxwYXJhPgpkaWZm IC0tZ2l0IGEvZG9jL3NyYy9zZ21sL3JlZi9hbHRlcl90YWJsZS5zZ21sIGIvZG9jL3NyYy9z Z21sL3JlZi9hbHRlcl90YWJsZS5zZ21sCmluZGV4IGM4ZjdhYjdkOTU2Li4zYzFlMWI3N2Jl YiAxMDA2NDQKLS0tIGEvZG9jL3NyYy9zZ21sL3JlZi9hbHRlcl90YWJsZS5zZ21sCisrKyBi L2RvYy9zcmMvc2dtbC9yZWYvYWx0ZXJfdGFibGUuc2dtbApAQCAtMTAyLDcgKzEwMiw3IEBA CiAgIE5VTEwgfAogICBDSEVDSyAoIDxyZXBsYWNlYWJsZSBjbGFzcz0icGFyYW1ldGVyIj5l eHByZXNzaW9uPC9yZXBsYWNlYWJsZT4gKSBbIE5PIElOSEVSSVQgXSB8CiAgIERFRkFVTFQg PHJlcGxhY2VhYmxlPmRlZmF1bHRfZXhwcjwvcmVwbGFjZWFibGU+IHwKLSAgR0VORVJBVEVE IEFMV0FZUyBBUyAoIDxyZXBsYWNlYWJsZT5nZW5lcmF0aW9uX2V4cHI8L3JlcGxhY2VhYmxl PiApIFNUT1JFRCB8CisgIEdFTkVSQVRFRCBBTFdBWVMgQVMgKCA8cmVwbGFjZWFibGU+Z2Vu ZXJhdGlvbl9leHByPC9yZXBsYWNlYWJsZT4gKSBbIFNUT1JFRCB8IFZJUlRVQUwgXSB8CiAg IEdFTkVSQVRFRCB7IEFMV0FZUyB8IEJZIERFRkFVTFQgfSBBUyBJREVOVElUWSBbICggPHJl cGxhY2VhYmxlPnNlcXVlbmNlX29wdGlvbnM8L3JlcGxhY2VhYmxlPiApIF0gfAogICBVTklR VUUgWyBOVUxMUyBbIE5PVCBdIERJU1RJTkNUIF0gPHJlcGxhY2VhYmxlIGNsYXNzPSJwYXJh bWV0ZXIiPmluZGV4X3BhcmFtZXRlcnM8L3JlcGxhY2VhYmxlPiB8CiAgIFBSSU1BUlkgS0VZ IDxyZXBsYWNlYWJsZSBjbGFzcz0icGFyYW1ldGVyIj5pbmRleF9wYXJhbWV0ZXJzPC9yZXBs YWNlYWJsZT4gfApAQCAtMjc5LDEwICsyNzksMTUgQEAgPHRpdGxlPkRlc2NyaXB0aW9uPC90 aXRsZT4KICAgICAgIGxvbmdlciBhcHBseSB0aGUgZ2VuZXJhdGlvbiBleHByZXNzaW9uLgog ICAgICA8L3BhcmE+CiAKKyAgICAgPHBhcmE+CisgICAgICBUaGlzIGZvcm0gaXMgY3VycmVu dGx5IG9ubHkgc3VwcG9ydGVkIGZvciBzdG9yZWQgZ2VuZXJhdGVkIGNvbHVtbnMgKG5vdAor ICAgICAgdmlydHVhbCBvbmVzKS4KKyAgICAgPC9wYXJhPgorCiAgICAgIDxwYXJhPgogICAg ICAgSWYgPGxpdGVyYWw+RFJPUCBFWFBSRVNTSU9OIElGIEVYSVNUUzwvbGl0ZXJhbD4gaXMg c3BlY2lmaWVkIGFuZCB0aGUKLSAgICAgIGNvbHVtbiBpcyBub3QgYSBzdG9yZWQgZ2VuZXJh dGVkIGNvbHVtbiwgbm8gZXJyb3IgaXMgdGhyb3duLiAgSW4gdGhpcwotICAgICAgY2FzZSBh IG5vdGljZSBpcyBpc3N1ZWQgaW5zdGVhZC4KKyAgICAgIGNvbHVtbiBpcyBub3QgYSBnZW5l cmF0ZWQgY29sdW1uLCBubyBlcnJvciBpcyB0aHJvd24uICBJbiB0aGlzIGNhc2UgYQorICAg ICAgbm90aWNlIGlzIGlzc3VlZCBpbnN0ZWFkLgogICAgICA8L3BhcmE+CiAgICAgPC9saXN0 aXRlbT4KICAgIDwvdmFybGlzdGVudHJ5PgpkaWZmIC0tZ2l0IGEvZG9jL3NyYy9zZ21sL3Jl Zi9jcmVhdGVfZm9yZWlnbl90YWJsZS5zZ21sIGIvZG9jL3NyYy9zZ21sL3JlZi9jcmVhdGVf Zm9yZWlnbl90YWJsZS5zZ21sCmluZGV4IGZjODFiYTNjNDk4Li43ZmUxM2U2ZTU4NCAxMDA2 NDQKLS0tIGEvZG9jL3NyYy9zZ21sL3JlZi9jcmVhdGVfZm9yZWlnbl90YWJsZS5zZ21sCisr KyBiL2RvYy9zcmMvc2dtbC9yZWYvY3JlYXRlX2ZvcmVpZ25fdGFibGUuc2dtbApAQCAtNDcs NyArNDcsNyBAQAogICBOVUxMIHwKICAgQ0hFQ0sgKCA8cmVwbGFjZWFibGUgY2xhc3M9InBh cmFtZXRlciI+ZXhwcmVzc2lvbjwvcmVwbGFjZWFibGU+ICkgWyBOTyBJTkhFUklUIF0gfAog ICBERUZBVUxUIDxyZXBsYWNlYWJsZT5kZWZhdWx0X2V4cHI8L3JlcGxhY2VhYmxlPiB8Ci0g IEdFTkVSQVRFRCBBTFdBWVMgQVMgKCA8cmVwbGFjZWFibGU+Z2VuZXJhdGlvbl9leHByPC9y ZXBsYWNlYWJsZT4gKSBTVE9SRUQgfQorICBHRU5FUkFURUQgQUxXQVlTIEFTICggPHJlcGxh Y2VhYmxlPmdlbmVyYXRpb25fZXhwcjwvcmVwbGFjZWFibGU+ICkgWyBTVE9SRUQgfCBWSVJU VUFMIF0gfQogCiA8cGhyYXNlPmFuZCA8cmVwbGFjZWFibGUgY2xhc3M9InBhcmFtZXRlciI+ dGFibGVfY29uc3RyYWludDwvcmVwbGFjZWFibGU+IGlzOjwvcGhyYXNlPgogCkBAIC0yODEs NyArMjgxLDcgQEAgPHRpdGxlPlBhcmFtZXRlcnM8L3RpdGxlPgogICAgPC92YXJsaXN0ZW50 cnk+CiAKICAgIDx2YXJsaXN0ZW50cnk+Ci0gICAgPHRlcm0+PGxpdGVyYWw+R0VORVJBVEVE IEFMV0FZUyBBUyAoIDxyZXBsYWNlYWJsZT5nZW5lcmF0aW9uX2V4cHI8L3JlcGxhY2VhYmxl PiApIFNUT1JFRDwvbGl0ZXJhbD48aW5kZXh0ZXJtPjxwcmltYXJ5PmdlbmVyYXRlZCBjb2x1 bW48L3ByaW1hcnk+PC9pbmRleHRlcm0+PC90ZXJtPgorICAgIDx0ZXJtPjxsaXRlcmFsPkdF TkVSQVRFRCBBTFdBWVMgQVMgKCA8cmVwbGFjZWFibGU+Z2VuZXJhdGlvbl9leHByPC9yZXBs YWNlYWJsZT4gKSBbIFNUT1JFRCB8IFZJUlRVQUwgXTwvbGl0ZXJhbD48aW5kZXh0ZXJtPjxw cmltYXJ5PmdlbmVyYXRlZCBjb2x1bW48L3ByaW1hcnk+PC9pbmRleHRlcm0+PC90ZXJtPgog ICAgIDxsaXN0aXRlbT4KICAgICAgPHBhcmE+CiAgICAgICBUaGlzIGNsYXVzZSBjcmVhdGVz IHRoZSBjb2x1bW4gYXMgYSA8Zmlyc3R0ZXJtPmdlbmVyYXRlZApAQCAtMjkwLDEwICsyOTAs MTMgQEAgPHRpdGxlPlBhcmFtZXRlcnM8L3RpdGxlPgogICAgICA8L3BhcmE+CiAKICAgICAg PHBhcmE+Ci0gICAgICBUaGUga2V5d29yZCA8bGl0ZXJhbD5TVE9SRUQ8L2xpdGVyYWw+IGlz IHJlcXVpcmVkIHRvIHNpZ25pZnkgdGhhdCB0aGUKKyAgICAgIFdoZW4gPGxpdGVyYWw+VklS VFVBTDwvbGl0ZXJhbD4gaXMgc3BlY2lmaWVkLCB0aGUgY29sdW1uIHdpbGwgYmUKKyAgICAg IGNvbXB1dGVkIHdoZW4gaXQgaXMgcmVhZC4gIChUaGUgZm9yZWlnbi1kYXRhIHdyYXBwZXIg d2lsbCBzZWUgaXQgYXMgYQorICAgICAgbnVsbCB2YWx1ZSBpbiBuZXcgcm93cyBhbmQgbWF5 IGNob29zZSB0byBzdG9yZSBpdCBhcyBhIG51bGwgdmFsdWUgb3IKKyAgICAgIGlnbm9yZSBp dCBhbHRvZ2V0aGVyLikgIFdoZW4gPGxpdGVyYWw+U1RPUkVEPC9saXRlcmFsPiBpcyBzcGVj aWZpZWQsIHRoZQogICAgICAgY29sdW1uIHdpbGwgYmUgY29tcHV0ZWQgb24gd3JpdGUuICAo VGhlIGNvbXB1dGVkIHZhbHVlIHdpbGwgYmUgcHJlc2VudGVkCiAgICAgICB0byB0aGUgZm9y ZWlnbi1kYXRhIHdyYXBwZXIgZm9yIHN0b3JhZ2UgYW5kIG11c3QgYmUgcmV0dXJuZWQgb24K LSAgICAgIHJlYWRpbmcuKQorICAgICAgcmVhZGluZy4pICA8bGl0ZXJhbD5WSVJUVUFMPC9s aXRlcmFsPiBpcyB0aGUgZGVmYXVsdC4KICAgICAgPC9wYXJhPgogCiAgICAgIDxwYXJhPgpk aWZmIC0tZ2l0IGEvZG9jL3NyYy9zZ21sL3JlZi9jcmVhdGVfdGFibGUuc2dtbCBiL2RvYy9z cmMvc2dtbC9yZWYvY3JlYXRlX3RhYmxlLnNnbWwKaW5kZXggMWExYWRjNWFlODcuLjViN2Q0 MjhlMmRmIDEwMDY0NAotLS0gYS9kb2Mvc3JjL3NnbWwvcmVmL2NyZWF0ZV90YWJsZS5zZ21s CisrKyBiL2RvYy9zcmMvc2dtbC9yZWYvY3JlYXRlX3RhYmxlLnNnbWwKQEAgLTY1LDcgKzY1 LDcgQEAKICAgTlVMTCB8CiAgIENIRUNLICggPHJlcGxhY2VhYmxlIGNsYXNzPSJwYXJhbWV0 ZXIiPmV4cHJlc3Npb248L3JlcGxhY2VhYmxlPiApIFsgTk8gSU5IRVJJVCBdIHwKICAgREVG QVVMVCA8cmVwbGFjZWFibGU+ZGVmYXVsdF9leHByPC9yZXBsYWNlYWJsZT4gfAotICBHRU5F UkFURUQgQUxXQVlTIEFTICggPHJlcGxhY2VhYmxlPmdlbmVyYXRpb25fZXhwcjwvcmVwbGFj ZWFibGU+ICkgU1RPUkVEIHwKKyAgR0VORVJBVEVEIEFMV0FZUyBBUyAoIDxyZXBsYWNlYWJs ZT5nZW5lcmF0aW9uX2V4cHI8L3JlcGxhY2VhYmxlPiApIFsgU1RPUkVEIHwgVklSVFVBTCBd IHwKICAgR0VORVJBVEVEIHsgQUxXQVlTIHwgQlkgREVGQVVMVCB9IEFTIElERU5USVRZIFsg KCA8cmVwbGFjZWFibGU+c2VxdWVuY2Vfb3B0aW9uczwvcmVwbGFjZWFibGU+ICkgXSB8CiAg IFVOSVFVRSBbIE5VTExTIFsgTk9UIF0gRElTVElOQ1QgXSA8cmVwbGFjZWFibGUgY2xhc3M9 InBhcmFtZXRlciI+aW5kZXhfcGFyYW1ldGVyczwvcmVwbGFjZWFibGU+IHwKICAgUFJJTUFS WSBLRVkgPHJlcGxhY2VhYmxlIGNsYXNzPSJwYXJhbWV0ZXIiPmluZGV4X3BhcmFtZXRlcnM8 L3JlcGxhY2VhYmxlPiB8CkBAIC03MjUsOCArNzI1LDkgQEAgPHRpdGxlPlBhcmFtZXRlcnM8 L3RpdGxlPgogICAgICAgICA8dGVybT48bGl0ZXJhbD5JTkNMVURJTkcgR0VORVJBVEVEPC9s aXRlcmFsPjwvdGVybT4KICAgICAgICAgPGxpc3RpdGVtPgogICAgICAgICAgPHBhcmE+Ci0g ICAgICAgICAgQW55IGdlbmVyYXRpb24gZXhwcmVzc2lvbnMgb2YgY29waWVkIGNvbHVtbiBk ZWZpbml0aW9ucyB3aWxsIGJlCi0gICAgICAgICAgY29waWVkLiAgQnkgZGVmYXVsdCwgbmV3 IGNvbHVtbnMgd2lsbCBiZSByZWd1bGFyIGJhc2UgY29sdW1ucy4KKyAgICAgICAgICBBbnkg Z2VuZXJhdGlvbiBleHByZXNzaW9ucyBhcyB3ZWxsIGFzIHRoZSBzdG9yZWQvdmlydHVhbCBj aG9pY2Ugb2YKKyAgICAgICAgICBjb3BpZWQgY29sdW1uIGRlZmluaXRpb25zIHdpbGwgYmUg Y29waWVkLiAgQnkgZGVmYXVsdCwgbmV3IGNvbHVtbnMKKyAgICAgICAgICB3aWxsIGJlIHJl Z3VsYXIgYmFzZSBjb2x1bW5zLgogICAgICAgICAgPC9wYXJhPgogICAgICAgICA8L2xpc3Rp dGVtPgogICAgICAgIDwvdmFybGlzdGVudHJ5PgpAQCAtOTA3LDcgKzkwOCw3IEBAIDx0aXRs ZT5QYXJhbWV0ZXJzPC90aXRsZT4KICAgIDwvdmFybGlzdGVudHJ5PgogCiAgICA8dmFybGlz dGVudHJ5IGlkPSJzcWwtY3JlYXRldGFibGUtcGFybXMtZ2VuZXJhdGVkLXN0b3JlZCI+Ci0g ICAgPHRlcm0+PGxpdGVyYWw+R0VORVJBVEVEIEFMV0FZUyBBUyAoIDxyZXBsYWNlYWJsZT5n ZW5lcmF0aW9uX2V4cHI8L3JlcGxhY2VhYmxlPiApIFNUT1JFRDwvbGl0ZXJhbD48aW5kZXh0 ZXJtPjxwcmltYXJ5PmdlbmVyYXRlZCBjb2x1bW48L3ByaW1hcnk+PC9pbmRleHRlcm0+PC90 ZXJtPgorICAgIDx0ZXJtPjxsaXRlcmFsPkdFTkVSQVRFRCBBTFdBWVMgQVMgKCA8cmVwbGFj ZWFibGU+Z2VuZXJhdGlvbl9leHByPC9yZXBsYWNlYWJsZT4gKSBbIFNUT1JFRCB8IFZJUlRV QUwgXTwvbGl0ZXJhbD48aW5kZXh0ZXJtPjxwcmltYXJ5PmdlbmVyYXRlZCBjb2x1bW48L3By aW1hcnk+PC9pbmRleHRlcm0+PC90ZXJtPgogICAgIDxsaXN0aXRlbT4KICAgICAgPHBhcmE+ CiAgICAgICBUaGlzIGNsYXVzZSBjcmVhdGVzIHRoZSBjb2x1bW4gYXMgYSA8Zmlyc3R0ZXJt PmdlbmVyYXRlZApAQCAtOTE2LDggKzkxNywxMSBAQCA8dGl0bGU+UGFyYW1ldGVyczwvdGl0 bGU+CiAgICAgIDwvcGFyYT4KIAogICAgICA8cGFyYT4KLSAgICAgIFRoZSBrZXl3b3JkIDxs aXRlcmFsPlNUT1JFRDwvbGl0ZXJhbD4gaXMgcmVxdWlyZWQgdG8gc2lnbmlmeSB0aGF0IHRo ZQotICAgICAgY29sdW1uIHdpbGwgYmUgY29tcHV0ZWQgb24gd3JpdGUgYW5kIHdpbGwgYmUg c3RvcmVkIG9uIGRpc2suCisgICAgICBXaGVuIDxsaXRlcmFsPlZJUlRVQUw8L2xpdGVyYWw+ IGlzIHNwZWNpZmllZCwgdGhlIGNvbHVtbiB3aWxsIGJlCisgICAgICBjb21wdXRlZCB3aGVu IGl0IGlzIHJlYWQsIGFuZCBpdCB3aWxsIG5vdCBvY2N1cHkgYW55IHN0b3JhZ2UuICBXaGVu CisgICAgICA8bGl0ZXJhbD5TVE9SRUQ8L2xpdGVyYWw+IGlzIHNwZWNpZmllZCwgdGhlIGNv bHVtbiB3aWxsIGJlIGNvbXB1dGVkIG9uCisgICAgICB3cml0ZSBhbmQgd2lsbCBiZSBzdG9y ZWQgb24gZGlzay4gIDxsaXRlcmFsPlZJUlRVQUw8L2xpdGVyYWw+IGlzIHRoZQorICAgICAg ZGVmYXVsdC4KICAgICAgPC9wYXJhPgogCiAgICAgIDxwYXJhPgpAQCAtMjQ1Nyw5ICsyNDYx LDkgQEAgPHRpdGxlPk11bHRpcGxlIElkZW50aXR5IENvbHVtbnM8L3RpdGxlPgogICAgPHRp dGxlPkdlbmVyYXRlZCBDb2x1bW5zPC90aXRsZT4KIAogICAgPHBhcmE+Ci0gICAgVGhlIG9w dGlvbiA8bGl0ZXJhbD5TVE9SRUQ8L2xpdGVyYWw+IGlzIG5vdCBzdGFuZGFyZCBidXQgaXMg YWxzbyB1c2VkIGJ5Ci0gICAgb3RoZXIgU1FMIGltcGxlbWVudGF0aW9ucy4gIFRoZSBTUUwg c3RhbmRhcmQgZG9lcyBub3Qgc3BlY2lmeSB0aGUgc3RvcmFnZQotICAgIG9mIGdlbmVyYXRl ZCBjb2x1bW5zLgorICAgIFRoZSBvcHRpb25zIDxsaXRlcmFsPlNUT1JFRDwvbGl0ZXJhbD4g YW5kIDxsaXRlcmFsPlZJUlRVQUw8L2xpdGVyYWw+IGFyZQorICAgIG5vdCBzdGFuZGFyZCBi dXQgYXJlIGFsc28gdXNlZCBieSBvdGhlciBTUUwgaW1wbGVtZW50YXRpb25zLiAgVGhlIFNR TAorICAgIHN0YW5kYXJkIGRvZXMgbm90IHNwZWNpZnkgdGhlIHN0b3JhZ2Ugb2YgZ2VuZXJh dGVkIGNvbHVtbnMuCiAgICA8L3BhcmE+CiAgIDwvcmVmc2VjdDI+CiAKZGlmZiAtLWdpdCBh L2RvYy9zcmMvc2dtbC90cmlnZ2VyLnNnbWwgYi9kb2Mvc3JjL3NnbWwvdHJpZ2dlci5zZ21s CmluZGV4IGE5YWJhYWI5MDU2Li40NmM2YzJmMTI2ZiAxMDA2NDQKLS0tIGEvZG9jL3NyYy9z Z21sL3RyaWdnZXIuc2dtbAorKysgYi9kb2Mvc3JjL3NnbWwvdHJpZ2dlci5zZ21sCkBAIC0y ODksNiArMjg5LDEwIEBAIDx0aXRsZT5PdmVydmlldyBvZiBUcmlnZ2VyIEJlaGF2aW9yPC90 aXRsZT4KICAgICA8bGl0ZXJhbD5CRUZPUkU8L2xpdGVyYWw+IHRyaWdnZXIuICBDaGFuZ2Vz IHRvIHRoZSB2YWx1ZSBvZiBhIGdlbmVyYXRlZAogICAgIGNvbHVtbiBpbiBhIDxsaXRlcmFs PkJFRk9SRTwvbGl0ZXJhbD4gdHJpZ2dlciBhcmUgaWdub3JlZCBhbmQgd2lsbCBiZQogICAg IG92ZXJ3cml0dGVuLgorICAgIFZpcnR1YWwgZ2VuZXJhdGVkIGNvbHVtbnMgYXJlIG5ldmVy IGNvbXB1dGVkIHdoZW4gdHJpZ2dlcnMgZmlyZS4gIEluIHRoZSBDCisgICAgbGFuZ3VhZ2Ug aW50ZXJmYWNlLCB0aGVpciBjb250ZW50IGlzIHVuZGVmaW5lZCBpbiBhIHRyaWdnZXIgZnVu Y3Rpb24uCisgICAgSGlnaGVyLWxldmVsIHByb2dyYW1taW5nIGxhbmd1YWdlcyBzaG91bGQg cHJldmVudCBhY2Nlc3MgdG8gdmlydHVhbAorICAgIGdlbmVyYXRlZCBjb2x1bW5zIGluIHRy aWdnZXJzLgogICAgPC9wYXJhPgogCiAgICA8cGFyYT4KZGlmZiAtLWdpdCBhL3NyYy9iYWNr ZW5kL2FjY2Vzcy9jb21tb24vdHVwZGVzYy5jIGIvc3JjL2JhY2tlbmQvYWNjZXNzL2NvbW1v bi90dXBkZXNjLmMKaW5kZXggNDczNzlmZWYyMjAuLjEzODQwYmE1MzNjIDEwMDY0NAotLS0g YS9zcmMvYmFja2VuZC9hY2Nlc3MvY29tbW9uL3R1cGRlc2MuYworKysgYi9zcmMvYmFja2Vu ZC9hY2Nlc3MvY29tbW9uL3R1cGRlc2MuYwpAQCAtMTkwLDYgKzE5MCw3IEBAIENyZWF0ZVR1 cGxlRGVzY0NvcHlDb25zdHIoVHVwbGVEZXNjIHR1cGRlc2MpCiAKIAkJY3B5LT5oYXNfbm90 X251bGwgPSBjb25zdHItPmhhc19ub3RfbnVsbDsKIAkJY3B5LT5oYXNfZ2VuZXJhdGVkX3N0 b3JlZCA9IGNvbnN0ci0+aGFzX2dlbmVyYXRlZF9zdG9yZWQ7CisJCWNweS0+aGFzX2dlbmVy YXRlZF92aXJ0dWFsID0gY29uc3RyLT5oYXNfZ2VuZXJhdGVkX3ZpcnR1YWw7CiAKIAkJaWYg KChjcHktPm51bV9kZWZ2YWwgPSBjb25zdHItPm51bV9kZWZ2YWwpID4gMCkKIAkJewpAQCAt NDk0LDYgKzQ5NSw4IEBAIGVxdWFsVHVwbGVEZXNjcyhUdXBsZURlc2MgdHVwZGVzYzEsIFR1 cGxlRGVzYyB0dXBkZXNjMikKIAkJCXJldHVybiBmYWxzZTsKIAkJaWYgKGNvbnN0cjEtPmhh c19nZW5lcmF0ZWRfc3RvcmVkICE9IGNvbnN0cjItPmhhc19nZW5lcmF0ZWRfc3RvcmVkKQog CQkJcmV0dXJuIGZhbHNlOworCQlpZiAoY29uc3RyMS0+aGFzX2dlbmVyYXRlZF92aXJ0dWFs ICE9IGNvbnN0cjItPmhhc19nZW5lcmF0ZWRfdmlydHVhbCkKKwkJCXJldHVybiBmYWxzZTsK IAkJbiA9IGNvbnN0cjEtPm51bV9kZWZ2YWw7CiAJCWlmIChuICE9IChpbnQpIGNvbnN0cjIt Pm51bV9kZWZ2YWwpCiAJCQlyZXR1cm4gZmFsc2U7CmRpZmYgLS1naXQgYS9zcmMvYmFja2Vu ZC9hY2Nlc3MvaGVhcC9oZWFwYW1faGFuZGxlci5jIGIvc3JjL2JhY2tlbmQvYWNjZXNzL2hl YXAvaGVhcGFtX2hhbmRsZXIuYwppbmRleCBhOGQ5NWUwZjFjMS4uZWNjM2Y1OTliNDEgMTAw NjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL2FjY2Vzcy9oZWFwL2hlYXBhbV9oYW5kbGVyLmMKKysr IGIvc3JjL2JhY2tlbmQvYWNjZXNzL2hlYXAvaGVhcGFtX2hhbmRsZXIuYwpAQCAtMjA0Nyw2 ICsyMDQ3LDggQEAgaGVhcGFtX3JlbGF0aW9uX25lZWRzX3RvYXN0X3RhYmxlKFJlbGF0aW9u IHJlbCkKIAogCQlpZiAoYXR0LT5hdHRpc2Ryb3BwZWQpCiAJCQljb250aW51ZTsKKwkJaWYg KGF0dC0+YXR0Z2VuZXJhdGVkID09IEFUVFJJQlVURV9HRU5FUkFURURfVklSVFVBTCkKKwkJ CWNvbnRpbnVlOwogCQlkYXRhX2xlbmd0aCA9IGF0dF9hbGlnbl9ub21pbmFsKGRhdGFfbGVu Z3RoLCBhdHQtPmF0dGFsaWduKTsKIAkJaWYgKGF0dC0+YXR0bGVuID4gMCkKIAkJewpkaWZm IC0tZ2l0IGEvc3JjL2JhY2tlbmQvY2F0YWxvZy9oZWFwLmMgYi9zcmMvYmFja2VuZC9jYXRh bG9nL2hlYXAuYwppbmRleCBkN2I4OGI2MWRjYy4uMTY1ZWJhZTlhYmQgMTAwNjQ0Ci0tLSBh L3NyYy9iYWNrZW5kL2NhdGFsb2cvaGVhcC5jCisrKyBiL3NyYy9iYWNrZW5kL2NhdGFsb2cv aGVhcC5jCkBAIC01MTIsNyArNTEyLDcgQEAgQ2hlY2tBdHRyaWJ1dGVOYW1lc1R5cGVzKFR1 cGxlRGVzYyB0dXBkZXNjLCBjaGFyIHJlbGtpbmQsCiAJCQkJCQkgICBUdXBsZURlc2NBdHRy KHR1cGRlc2MsIGkpLT5hdHR0eXBpZCwKIAkJCQkJCSAgIFR1cGxlRGVzY0F0dHIodHVwZGVz YywgaSktPmF0dGNvbGxhdGlvbiwKIAkJCQkJCSAgIE5JTCwgLyogYXNzdW1lIHdlJ3JlIGNy ZWF0aW5nIGEgbmV3IHJvd3R5cGUgKi8KLQkJCQkJCSAgIGZsYWdzKTsKKwkJCQkJCSAgIGZs YWdzIHwgKFR1cGxlRGVzY0F0dHIodHVwZGVzYywgaSktPmF0dGdlbmVyYXRlZCA9PSBBVFRS SUJVVEVfR0VORVJBVEVEX1ZJUlRVQUwgPyBDSEtBVFlQRV9JU19WSVJUVUFMIDogMCkpOwog CX0KIH0KIApAQCAtNTg3LDYgKzU4NywxNyBAQCBDaGVja0F0dHJpYnV0ZVR5cGUoY29uc3Qg Y2hhciAqYXR0bmFtZSwKIAl9CiAJZWxzZSBpZiAoYXR0X3R5cHR5cGUgPT0gVFlQVFlQRV9E T01BSU4pCiAJeworCQkvKgorCQkgKiBQcmV2ZW50IHZpcnR1YWwgZ2VuZXJhdGVkIGNvbHVt bnMgZnJvbSBoYXZpbmcgYSBkb21haW4gdHlwZS4gIFdlCisJCSAqIHdvdWxkIGhhdmUgdG8g ZW5mb3JjZSBkb21haW4gY29uc3RyYWludHMgd2hlbiBjb2x1bW5zIHVuZGVybHlpbmcKKwkJ ICogdGhlIGdlbmVyYXRlZCBjb2x1bW4gY2hhbmdlLiAgVGhpcyBjb3VsZCBwb3NzaWJseSBi ZSBpbXBsZW1lbnRlZCwKKwkJICogYnV0IGl0J3Mgbm90LgorCQkgKi8KKwkJaWYgKGZsYWdz ICYgQ0hLQVRZUEVfSVNfVklSVFVBTCkKKwkJCWVyZXBvcnQoRVJST1IsCisJCQkJCShlcnJj b2RlKEVSUkNPREVfRkVBVFVSRV9OT1RfU1VQUE9SVEVEKSwKKwkJCQkJIGVycm1zZygidmly dHVhbCBnZW5lcmF0ZWQgY29sdW1uIFwiJXNcIiBjYW5ub3QgaGF2ZSBhIGRvbWFpbiB0eXBl IiwgYXR0bmFtZSkpKTsKKwogCQkvKgogCQkgKiBJZiBpdCdzIGEgZG9tYWluLCByZWN1cnNl IHRvIGNoZWNrIGl0cyBiYXNlIHR5cGUuCiAJCSAqLwpAQCAtMjU2MCw2ICsyNTcxLDExIEBA IEFkZFJlbGF0aW9uTmV3Q29uc3RyYWludHMoUmVsYXRpb24gcmVsLAogCQkJCQkJZXJyY29k ZShFUlJDT0RFX0ZFQVRVUkVfTk9UX1NVUFBPUlRFRCksCiAJCQkJCQllcnJtc2coImNhbm5v dCBhZGQgbm90LW51bGwgY29uc3RyYWludCBvbiBzeXN0ZW0gY29sdW1uIFwiJXNcIiIsCiAJ CQkJCQkJICAgc3RyVmFsKGxpbml0aWFsKGNkZWYtPmtleXMpKSkpOworCQkJLyogVE9ETzog c2VlIHRyYW5zZm9ybUNvbHVtbkRlZmluaXRpb24oKSAqLworCQkJaWYgKGdldF9hdHRnZW5l cmF0ZWQoUmVsYXRpb25HZXRSZWxpZChyZWwpLCBjb2xudW0pID09IEFUVFJJQlVURV9HRU5F UkFURURfVklSVFVBTCkKKwkJCQllcmVwb3J0KEVSUk9SLAorCQkJCQkJKGVycmNvZGUoRVJS Q09ERV9GRUFUVVJFX05PVF9TVVBQT1JURUQpLAorCQkJCQkJIGVycm1zZygibm90LW51bGwg Y29uc3RyYWludHMgYXJlIG5vdCBzdXBwb3J0ZWQgb24gdmlydHVhbCBnZW5lcmF0ZWQgY29s dW1ucyIpKSk7CiAKIAkJCS8qCiAJCQkgKiBJZiB0aGUgY29sdW1uIGFscmVhZHkgaGFzIGEg bm90LW51bGwgY29uc3RyYWludCwgd2UgZG9uJ3Qgd2FudApAQCAtMjg0OCw2ICsyODY0LDEx IEBAIEFkZFJlbGF0aW9uTm90TnVsbENvbnN0cmFpbnRzKFJlbGF0aW9uIHJlbCwgTGlzdCAq Y29uc3RyYWludHMsCiAJCQkJCWVycmNvZGUoRVJSQ09ERV9GRUFUVVJFX05PVF9TVVBQT1JU RUQpLAogCQkJCQllcnJtc2coImNhbm5vdCBhZGQgbm90LW51bGwgY29uc3RyYWludCBvbiBz eXN0ZW0gY29sdW1uIFwiJXNcIiIsCiAJCQkJCQkgICBzdHJWYWwobGluaXRpYWwoY29uc3Ry LT5rZXlzKSkpKTsKKwkJLyogVE9ETzogc2VlIHRyYW5zZm9ybUNvbHVtbkRlZmluaXRpb24o KSAqLworCQlpZiAoZ2V0X2F0dGdlbmVyYXRlZChSZWxhdGlvbkdldFJlbGlkKHJlbCksIGF0 dG51bSkgPT0gQVRUUklCVVRFX0dFTkVSQVRFRF9WSVJUVUFMKQorCQkJZXJlcG9ydChFUlJP UiwKKwkJCQkJKGVycmNvZGUoRVJSQ09ERV9GRUFUVVJFX05PVF9TVVBQT1JURUQpLAorCQkJ CQkgZXJybXNnKCJub3QtbnVsbCBjb25zdHJhaW50cyBhcmUgbm90IHN1cHBvcnRlZCBvbiB2 aXJ0dWFsIGdlbmVyYXRlZCBjb2x1bW5zIikpKTsKIAogCQkvKgogCQkgKiBBIGNvbHVtbiBj YW4gb25seSBoYXZlIG9uZSBub3QtbnVsbCBjb25zdHJhaW50LCBzbyBkaXNjYXJkIGFueQpk aWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvY29tbWFuZHMvYW5hbHl6ZS5jIGIvc3JjL2JhY2tl bmQvY29tbWFuZHMvYW5hbHl6ZS5jCmluZGV4IDlhNTZkZTIyODJmLi5iYTdiMjg1MjNkOSAx MDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQvY29tbWFuZHMvYW5hbHl6ZS5jCisrKyBiL3NyYy9i YWNrZW5kL2NvbW1hbmRzL2FuYWx5emUuYwpAQCAtMTAzNyw2ICsxMDM3LDEwIEBAIGV4YW1p bmVfYXR0cmlidXRlKFJlbGF0aW9uIG9uZXJlbCwgaW50IGF0dG51bSwgTm9kZSAqaW5kZXhf ZXhwcikKIAlpZiAoYXR0ci0+YXR0aXNkcm9wcGVkKQogCQlyZXR1cm4gTlVMTDsKIAorCS8q IERvbid0IGFuYWx5emUgdmlydHVhbCBnZW5lcmF0ZWQgY29sdW1ucyAqLworCWlmIChhdHRy LT5hdHRnZW5lcmF0ZWQgPT0gQVRUUklCVVRFX0dFTkVSQVRFRF9WSVJUVUFMKQorCQlyZXR1 cm4gTlVMTDsKKwogCS8qCiAJICogR2V0IGF0dHN0YXR0YXJnZXQgdmFsdWUuICBTZXQgdG8g LTEgaWYgbnVsbC4gIChBbmFseXplIGZ1bmN0aW9ucyBleHBlY3QKIAkgKiAtMSB0byBtZWFu IHVzZSBkZWZhdWx0X3N0YXRpc3RpY3NfdGFyZ2V0OyBzZWUgZm9yIGV4YW1wbGUKZGlmZiAt LWdpdCBhL3NyYy9iYWNrZW5kL2NvbW1hbmRzL2luZGV4Y21kcy5jIGIvc3JjL2JhY2tlbmQv Y29tbWFuZHMvaW5kZXhjbWRzLmMKaW5kZXggNDA0OWNlMWExMGYuLmJlY2JkNTU2ZTQ4IDEw MDY0NAotLS0gYS9zcmMvYmFja2VuZC9jb21tYW5kcy9pbmRleGNtZHMuYworKysgYi9zcmMv YmFja2VuZC9jb21tYW5kcy9pbmRleGNtZHMuYwpAQCAtMTExMSw2ICsxMTExLDkgQEAgRGVm aW5lSW5kZXgoT2lkIHRhYmxlSWQsCiAJLyoKIAkgKiBXZSBkaXNhbGxvdyBpbmRleGVzIG9u IHN5c3RlbSBjb2x1bW5zLiAgVGhleSB3b3VsZCBub3QgbmVjZXNzYXJpbHkgZ2V0CiAJICog dXBkYXRlZCBjb3JyZWN0bHksIGFuZCB0aGV5IGRvbid0IHNlZW0gdXNlZnVsIGFueXdheS4K KwkgKgorCSAqIEFsc28gZGlzYWxsb3cgdmlydHVhbCBnZW5lcmF0ZWQgY29sdW1ucyBpbiBp bmRleGVzICh1c2UgZXhwcmVzc2lvbgorCSAqIGluZGV4IGluc3RlYWQpLgogCSAqLwogCWZv ciAoaW50IGkgPSAwOyBpIDwgaW5kZXhJbmZvLT5paV9OdW1JbmRleEF0dHJzOyBpKyspCiAJ ewpAQCAtMTEyMCwxNCArMTEyMywyNCBAQCBEZWZpbmVJbmRleChPaWQgdGFibGVJZCwKIAkJ CWVyZXBvcnQoRVJST1IsCiAJCQkJCShlcnJjb2RlKEVSUkNPREVfRkVBVFVSRV9OT1RfU1VQ UE9SVEVEKSwKIAkJCQkJIGVycm1zZygiaW5kZXggY3JlYXRpb24gb24gc3lzdGVtIGNvbHVt bnMgaXMgbm90IHN1cHBvcnRlZCIpKSk7CisKKworCQlpZiAoVHVwbGVEZXNjQXR0cihSZWxh dGlvbkdldERlc2NyKHJlbCksIGF0dG5vIC0gMSktPmF0dGdlbmVyYXRlZCA9PSBBVFRSSUJV VEVfR0VORVJBVEVEX1ZJUlRVQUwpCisJCQllcmVwb3J0KEVSUk9SLAorCQkJCQkoZXJyY29k ZShFUlJDT0RFX0ZFQVRVUkVfTk9UX1NVUFBPUlRFRCksCisJCQkJCSBzdG10LT5pc2NvbnN0 cmFpbnQgPworCQkJCQkgZXJybXNnKCJ1bmlxdWUgY29uc3RyYWludHMgb24gdmlydHVhbCBn ZW5lcmF0ZWQgY29sdW1ucyBhcmUgbm90IHN1cHBvcnRlZCIpIDoKKwkJCQkJIGVycm1zZygi aW5kZXhlcyBvbiB2aXJ0dWFsIGdlbmVyYXRlZCBjb2x1bW5zIGFyZSBub3Qgc3VwcG9ydGVk IikpKTsKIAl9CiAKIAkvKgotCSAqIEFsc28gY2hlY2sgZm9yIHN5c3RlbSBjb2x1bW5zIHVz ZWQgaW4gZXhwcmVzc2lvbnMgb3IgcHJlZGljYXRlcy4KKwkgKiBBbHNvIGNoZWNrIGZvciBz eXN0ZW0gYW5kIGdlbmVyYXRlZCBjb2x1bW5zIHVzZWQgaW4gZXhwcmVzc2lvbnMgb3IKKwkg KiBwcmVkaWNhdGVzLgogCSAqLwogCWlmIChpbmRleEluZm8tPmlpX0V4cHJlc3Npb25zIHx8 IGluZGV4SW5mby0+aWlfUHJlZGljYXRlKQogCXsKIAkJQml0bWFwc2V0ICAqaW5kZXhhdHRy cyA9IE5VTEw7CisJCWludAkJCWo7CiAKIAkJcHVsbF92YXJhdHRub3MoKE5vZGUgKikgaW5k ZXhJbmZvLT5paV9FeHByZXNzaW9ucywgMSwgJmluZGV4YXR0cnMpOwogCQlwdWxsX3ZhcmF0 dG5vcygoTm9kZSAqKSBpbmRleEluZm8tPmlpX1ByZWRpY2F0ZSwgMSwgJmluZGV4YXR0cnMp OwpAQCAtMTE0MCw2ICsxMTUzLDI0IEBAIERlZmluZUluZGV4KE9pZCB0YWJsZUlkLAogCQkJ CQkJKGVycmNvZGUoRVJSQ09ERV9GRUFUVVJFX05PVF9TVVBQT1JURUQpLAogCQkJCQkJIGVy cm1zZygiaW5kZXggY3JlYXRpb24gb24gc3lzdGVtIGNvbHVtbnMgaXMgbm90IHN1cHBvcnRl ZCIpKSk7CiAJCX0KKworCQkvKgorCQkgKiBYWFggVmlydHVhbCBnZW5lcmF0ZWQgY29sdW1u cyBpbiBpbmRleCBleHByZXNzaW9ucyBvciBwcmVkaWNhdGVzCisJCSAqIGNvdWxkIGJlIHN1 cHBvcnRlZCwgYnV0IGl0IG5lZWRzIHN1cHBvcnQgaW4KKwkJICogUmVsYXRpb25HZXRJbmRl eEV4cHJlc3Npb25zKCkgYW5kIFJlbGF0aW9uR2V0SW5kZXhQcmVkaWNhdGUoKS4KKwkJICov CisJCWogPSAtMTsKKwkJd2hpbGUgKChqID0gYm1zX25leHRfbWVtYmVyKGluZGV4YXR0cnMs IGopKSA+PSAwKQorCQl7CisJCQlBdHRyTnVtYmVyCWF0dG5vID0gaiArIEZpcnN0TG93SW52 YWxpZEhlYXBBdHRyaWJ1dGVOdW1iZXI7CisKKwkJCWlmIChUdXBsZURlc2NBdHRyKFJlbGF0 aW9uR2V0RGVzY3IocmVsKSwgYXR0bm8gLSAxKS0+YXR0Z2VuZXJhdGVkID09IEFUVFJJQlVU RV9HRU5FUkFURURfVklSVFVBTCkKKwkJCQllcmVwb3J0KEVSUk9SLAorCQkJCQkJKGVycmNv ZGUoRVJSQ09ERV9GRUFUVVJFX05PVF9TVVBQT1JURUQpLAorCQkJCQkJIHN0bXQtPmlzY29u c3RyYWludCA/CisJCQkJCQkgZXJybXNnKCJ1bmlxdWUgY29uc3RyYWludHMgb24gdmlydHVh bCBnZW5lcmF0ZWQgY29sdW1ucyBhcmUgbm90IHN1cHBvcnRlZCIpIDoKKwkJCQkJCSBlcnJt c2coImluZGV4ZXMgb24gdmlydHVhbCBnZW5lcmF0ZWQgY29sdW1ucyBhcmUgbm90IHN1cHBv cnRlZCIpKSk7CisJCX0KIAl9CiAKIAkvKiBJcyBpbmRleCBzYWZlIGZvciBvdGhlcnMgdG8g aWdub3JlPyAgU2VlIHNldF9pbmRleHNhZmVfcHJvY2ZsYWdzKCkgKi8KZGlmZiAtLWdpdCBh L3NyYy9iYWNrZW5kL2NvbW1hbmRzL3B1YmxpY2F0aW9uY21kcy5jIGIvc3JjL2JhY2tlbmQv Y29tbWFuZHMvcHVibGljYXRpb25jbWRzLmMKaW5kZXggMDMxYzg0ZWMyOWYuLjNkYzg3M2Zk YzA3IDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC9jb21tYW5kcy9wdWJsaWNhdGlvbmNtZHMu YworKysgYi9zcmMvYmFja2VuZC9jb21tYW5kcy9wdWJsaWNhdGlvbmNtZHMuYwpAQCAtMzgs NiArMzgsNyBAQAogI2luY2x1ZGUgInBhcnNlci9wYXJzZV9jbGF1c2UuaCIKICNpbmNsdWRl ICJwYXJzZXIvcGFyc2VfY29sbGF0ZS5oIgogI2luY2x1ZGUgInBhcnNlci9wYXJzZV9yZWxh dGlvbi5oIgorI2luY2x1ZGUgInJld3JpdGUvcmV3cml0ZUhhbmRsZXIuaCIKICNpbmNsdWRl ICJzdG9yYWdlL2xtZ3IuaCIKICNpbmNsdWRlICJ1dGlscy9hY2wuaCIKICNpbmNsdWRlICJ1 dGlscy9idWlsdGlucy5oIgpAQCAtNjYxLDYgKzY2Miw4IEBAIFRyYW5zZm9ybVB1YldoZXJl Q2xhdXNlcyhMaXN0ICp0YWJsZXMsIGNvbnN0IGNoYXIgKnF1ZXJ5U3RyaW5nLAogCQkvKiBG aXggdXAgY29sbGF0aW9uIGluZm9ybWF0aW9uICovCiAJCWFzc2lnbl9leHByX2NvbGxhdGlv bnMocHN0YXRlLCB3aGVyZWNsYXVzZSk7CiAKKwkJd2hlcmVjbGF1c2UgPSAoTm9kZSAqKSBl eHBhbmRfZ2VuZXJhdGVkX2NvbHVtbnNfaW5fZXhwcih3aGVyZWNsYXVzZSwgcHJpLT5yZWxh dGlvbiwgMSk7CisKIAkJLyoKIAkJICogV2UgYWxsb3cgb25seSBzaW1wbGUgZXhwcmVzc2lv bnMgaW4gcm93IGZpbHRlcnMuIFNlZQogCQkgKiBjaGVja19zaW1wbGVfcm93ZmlsdGVyX2V4 cHJfd2Fsa2VyLgpkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvY29tbWFuZHMvc3RhdHNjbWRz LmMgYi9zcmMvYmFja2VuZC9jb21tYW5kcy9zdGF0c2NtZHMuYwppbmRleCAxZGIzZWY2OWQy Mi4uNzQ0YjM1MDhjMjQgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL2NvbW1hbmRzL3N0YXRz Y21kcy5jCisrKyBiL3NyYy9iYWNrZW5kL2NvbW1hbmRzL3N0YXRzY21kcy5jCkBAIC0yNDYs NiArMjQ2LDEyIEBAIENyZWF0ZVN0YXRpc3RpY3MoQ3JlYXRlU3RhdHNTdG10ICpzdG10KQog CQkJCQkJKGVycmNvZGUoRVJSQ09ERV9GRUFUVVJFX05PVF9TVVBQT1JURUQpLAogCQkJCQkJ IGVycm1zZygic3RhdGlzdGljcyBjcmVhdGlvbiBvbiBzeXN0ZW0gY29sdW1ucyBpcyBub3Qg c3VwcG9ydGVkIikpKTsKIAorCQkJLyogRGlzYWxsb3cgdXNlIG9mIHZpcnR1YWwgZ2VuZXJh dGVkIGNvbHVtbnMgaW4gZXh0ZW5kZWQgc3RhdHMgKi8KKwkJCWlmIChhdHRGb3JtLT5hdHRn ZW5lcmF0ZWQgPT0gQVRUUklCVVRFX0dFTkVSQVRFRF9WSVJUVUFMKQorCQkJCWVyZXBvcnQo RVJST1IsCisJCQkJCQkoZXJyY29kZShFUlJDT0RFX0ZFQVRVUkVfTk9UX1NVUFBPUlRFRCks CisJCQkJCQkgZXJybXNnKCJzdGF0aXN0aWNzIGNyZWF0aW9uIG9uIHZpcnR1YWwgZ2VuZXJh dGVkIGNvbHVtbnMgaXMgbm90IHN1cHBvcnRlZCIpKSk7CisKIAkJCS8qIERpc2FsbG93IGRh dGEgdHlwZXMgd2l0aG91dCBhIGxlc3MtdGhhbiBvcGVyYXRvciAqLwogCQkJdHlwZSA9IGxv b2t1cF90eXBlX2NhY2hlKGF0dEZvcm0tPmF0dHR5cGlkLCBUWVBFQ0FDSEVfTFRfT1BSKTsK IAkJCWlmICh0eXBlLT5sdF9vcHIgPT0gSW52YWxpZE9pZCkKQEAgLTI2OSw2ICsyNzUsMTIg QEAgQ3JlYXRlU3RhdGlzdGljcyhDcmVhdGVTdGF0c1N0bXQgKnN0bXQpCiAJCQkJCQkoZXJy Y29kZShFUlJDT0RFX0ZFQVRVUkVfTk9UX1NVUFBPUlRFRCksCiAJCQkJCQkgZXJybXNnKCJz dGF0aXN0aWNzIGNyZWF0aW9uIG9uIHN5c3RlbSBjb2x1bW5zIGlzIG5vdCBzdXBwb3J0ZWQi KSkpOwogCisJCQkvKiBEaXNhbGxvdyB1c2Ugb2YgdmlydHVhbCBnZW5lcmF0ZWQgY29sdW1u cyBpbiBleHRlbmRlZCBzdGF0cyAqLworCQkJaWYgKGdldF9hdHRnZW5lcmF0ZWQocmVsaWQs IHZhci0+dmFyYXR0bm8pID09IEFUVFJJQlVURV9HRU5FUkFURURfVklSVFVBTCkKKwkJCQll cmVwb3J0KEVSUk9SLAorCQkJCQkJKGVycmNvZGUoRVJSQ09ERV9GRUFUVVJFX05PVF9TVVBQ T1JURUQpLAorCQkJCQkJIGVycm1zZygic3RhdGlzdGljcyBjcmVhdGlvbiBvbiB2aXJ0dWFs IGdlbmVyYXRlZCBjb2x1bW5zIGlzIG5vdCBzdXBwb3J0ZWQiKSkpOworCiAJCQkvKiBEaXNh bGxvdyBkYXRhIHR5cGVzIHdpdGhvdXQgYSBsZXNzLXRoYW4gb3BlcmF0b3IgKi8KIAkJCXR5 cGUgPSBsb29rdXBfdHlwZV9jYWNoZSh2YXItPnZhcnR5cGUsIFRZUEVDQUNIRV9MVF9PUFIp OwogCQkJaWYgKHR5cGUtPmx0X29wciA9PSBJbnZhbGlkT2lkKQpAQCAtMjkwLDcgKzMwMiw2 IEBAIENyZWF0ZVN0YXRpc3RpY3MoQ3JlYXRlU3RhdHNTdG10ICpzdG10KQogCiAJCQlBc3Nl cnQoZXhwciAhPSBOVUxMKTsKIAotCQkJLyogRGlzYWxsb3cgZXhwcmVzc2lvbnMgcmVmZXJl bmNpbmcgc3lzdGVtIGF0dHJpYnV0ZXMuICovCiAJCQlwdWxsX3ZhcmF0dG5vcyhleHByLCAx LCAmYXR0bnVtcyk7CiAKIAkJCWsgPSAtMTsKQEAgLTI5OCwxMCArMzA5LDE3IEBAIENyZWF0 ZVN0YXRpc3RpY3MoQ3JlYXRlU3RhdHNTdG10ICpzdG10KQogCQkJewogCQkJCUF0dHJOdW1i ZXIJYXR0bnVtID0gayArIEZpcnN0TG93SW52YWxpZEhlYXBBdHRyaWJ1dGVOdW1iZXI7CiAK KwkJCQkvKiBEaXNhbGxvdyBleHByZXNzaW9ucyByZWZlcmVuY2luZyBzeXN0ZW0gYXR0cmli dXRlcy4gKi8KIAkJCQlpZiAoYXR0bnVtIDw9IDApCiAJCQkJCWVyZXBvcnQoRVJST1IsCiAJ CQkJCQkJKGVycmNvZGUoRVJSQ09ERV9GRUFUVVJFX05PVF9TVVBQT1JURUQpLAogCQkJCQkJ CSBlcnJtc2coInN0YXRpc3RpY3MgY3JlYXRpb24gb24gc3lzdGVtIGNvbHVtbnMgaXMgbm90 IHN1cHBvcnRlZCIpKSk7CisKKwkJCQkvKiBEaXNhbGxvdyB1c2Ugb2YgdmlydHVhbCBnZW5l cmF0ZWQgY29sdW1ucyBpbiBleHRlbmRlZCBzdGF0cyAqLworCQkJCWlmIChnZXRfYXR0Z2Vu ZXJhdGVkKHJlbGlkLCBhdHRudW0pID09IEFUVFJJQlVURV9HRU5FUkFURURfVklSVFVBTCkK KwkJCQkJZXJlcG9ydChFUlJPUiwKKwkJCQkJCQkoZXJyY29kZShFUlJDT0RFX0ZFQVRVUkVf Tk9UX1NVUFBPUlRFRCksCisJCQkJCQkJIGVycm1zZygic3RhdGlzdGljcyBjcmVhdGlvbiBv biB2aXJ0dWFsIGdlbmVyYXRlZCBjb2x1bW5zIGlzIG5vdCBzdXBwb3J0ZWQiKSkpOwogCQkJ fQogCiAJCQkvKgpkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvY29tbWFuZHMvdGFibGVjbWRz LmMgYi9zcmMvYmFja2VuZC9jb21tYW5kcy90YWJsZWNtZHMuYwppbmRleCA2Y2NhZTRjYjRh OC4uMjg2MjM2NzJmYTAgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL2NvbW1hbmRzL3RhYmxl Y21kcy5jCisrKyBiL3NyYy9iYWNrZW5kL2NvbW1hbmRzL3RhYmxlY21kcy5jCkBAIC0zMDIw LDYgKzMwMjAsMTUgQEAgTWVyZ2VBdHRyaWJ1dGVzKExpc3QgKmNvbHVtbnMsIGNvbnN0IExp c3QgKnN1cGVycywgY2hhciByZWxwZXJzaXN0ZW5jZSwKIAkJCQkJCQkJCSBlcnJoaW50KCJB IGNoaWxkIHRhYmxlIGNvbHVtbiBjYW5ub3QgYmUgZ2VuZXJhdGVkIHVubGVzcyBpdHMgcGFy ZW50IGNvbHVtbiBpcy4iKSkpOwogCQkJCQl9CiAKKwkJCQkJaWYgKGNvbGRlZi0+Z2VuZXJh dGVkICYmIHJlc3RkZWYtPmdlbmVyYXRlZCAmJiBjb2xkZWYtPmdlbmVyYXRlZCAhPSByZXN0 ZGVmLT5nZW5lcmF0ZWQpCisJCQkJCQllcmVwb3J0KEVSUk9SLAorCQkJCQkJCQkoZXJyY29k ZShFUlJDT0RFX0lOVkFMSURfQ09MVU1OX0RFRklOSVRJT04pLAorCQkJCQkJCQkgZXJybXNn KCJjb2x1bW4gXCIlc1wiIGluaGVyaXRzIGZyb20gZ2VuZXJhdGVkIGNvbHVtbiBvZiBkaWZm ZXJlbnQga2luZCIsCisJCQkJCQkJCQkJcmVzdGRlZi0+Y29sbmFtZSksCisJCQkJCQkJCSBl cnJkZXRhaWwoIlBhcmVudCBjb2x1bW4gaXMgJXMsIGNoaWxkIGNvbHVtbiBpcyAlcy4iLAor CQkJCQkJCQkJCSAgIGNvbGRlZi0+Z2VuZXJhdGVkID09IEFUVFJJQlVURV9HRU5FUkFURURf U1RPUkVEID8gIlNUT1JFRCIgOiAiVklSVFVBTCIsCisJCQkJCQkJCQkJICAgcmVzdGRlZi0+ Z2VuZXJhdGVkID09IEFUVFJJQlVURV9HRU5FUkFURURfU1RPUkVEID8gIlNUT1JFRCIgOiAi VklSVFVBTCIpKSk7CisKIAkJCQkJLyoKIAkJCQkJICogT3ZlcnJpZGUgdGhlIHBhcmVudCdz IGRlZmF1bHQgdmFsdWUgZm9yIHRoaXMgY29sdW1uCiAJCQkJCSAqIChjb2xkZWYtPmNvb2tl ZF9kZWZhdWx0KSB3aXRoIHRoZSBwYXJ0aXRpb24ncyBsb2NhbApAQCAtMzI5Miw2ICszMzAx LDE1IEBAIE1lcmdlQ2hpbGRBdHRyaWJ1dGUoTGlzdCAqaW5oX2NvbHVtbnMsIGludCBleGlz dF9hdHRubywgaW50IG5ld2NvbF9hdHRubywgY29uc3QKIAkJCQkJIGVycmhpbnQoIkEgY2hp bGQgdGFibGUgY29sdW1uIGNhbm5vdCBiZSBnZW5lcmF0ZWQgdW5sZXNzIGl0cyBwYXJlbnQg Y29sdW1uIGlzLiIpKSk7CiAJfQogCisJaWYgKGluaGRlZi0+Z2VuZXJhdGVkICYmIG5ld2Rl Zi0+Z2VuZXJhdGVkICYmIG5ld2RlZi0+Z2VuZXJhdGVkICE9IGluaGRlZi0+Z2VuZXJhdGVk KQorCQllcmVwb3J0KEVSUk9SLAorCQkJCShlcnJjb2RlKEVSUkNPREVfSU5WQUxJRF9DT0xV TU5fREVGSU5JVElPTiksCisJCQkJIGVycm1zZygiY29sdW1uIFwiJXNcIiBpbmhlcml0cyBm cm9tIGdlbmVyYXRlZCBjb2x1bW4gb2YgZGlmZmVyZW50IGtpbmQiLAorCQkJCQkJaW5oZGVm LT5jb2xuYW1lKSwKKwkJCQkgZXJyZGV0YWlsKCJQYXJlbnQgY29sdW1uIGlzICVzLCBjaGls ZCBjb2x1bW4gaXMgJXMuIiwKKwkJCQkJCSAgIGluaGRlZi0+Z2VuZXJhdGVkID09IEFUVFJJ QlVURV9HRU5FUkFURURfU1RPUkVEID8gIlNUT1JFRCIgOiAiVklSVFVBTCIsCisJCQkJCQkg ICBuZXdkZWYtPmdlbmVyYXRlZCA9PSBBVFRSSUJVVEVfR0VORVJBVEVEX1NUT1JFRCA/ICJT VE9SRUQiIDogIlZJUlRVQUwiKSkpOworCiAJLyoKIAkgKiBJZiBuZXcgZGVmIGhhcyBhIGRl ZmF1bHQsIG92ZXJyaWRlIHByZXZpb3VzIGRlZmF1bHQKIAkgKi8KQEAgLTYwOTMsNyArNjEx MSw3IEBAIEFUUmV3cml0ZVRhYmxlKEFsdGVyZWRUYWJsZUluZm8gKnRhYiwgT2lkIE9JRE5l d0hlYXAsIExPQ0tNT0RFIGxvY2ttb2RlKQogCQl7CiAJCQljYXNlIENPTlNUUl9DSEVDSzoK IAkJCQluZWVkc2NhbiA9IHRydWU7Ci0JCQkJY29uLT5xdWFsc3RhdGUgPSBFeGVjUHJlcGFy ZUV4cHIoKEV4cHIgKikgY29uLT5xdWFsLCBlc3RhdGUpOworCQkJCWNvbi0+cXVhbHN0YXRl ID0gRXhlY1ByZXBhcmVFeHByKChFeHByICopIGV4cGFuZF9nZW5lcmF0ZWRfY29sdW1uc19p bl9leHByKGNvbi0+cXVhbCwgbmV3cmVsID8gbmV3cmVsIDogb2xkcmVsLCAxKSwgZXN0YXRl KTsKIAkJCQlicmVhazsKIAkJCWNhc2UgQ09OU1RSX0ZPUkVJR046CiAJCQkJLyogTm90aGlu ZyB0byBkbyBoZXJlICovCkBAIC03MjcxLDcgKzcyODksNyBAQCBBVEV4ZWNBZGRDb2x1bW4o TGlzdCAqKndxdWV1ZSwgQWx0ZXJlZFRhYmxlSW5mbyAqdGFiLCBSZWxhdGlvbiByZWwsCiAJ CSAqIERFRkFVTFQgdmFsdWUgb3V0c2lkZSBvZiB0aGUgaGVhcC4gIFRoaXMgbWF5IGJlIGRp c2FibGVkIGluc2lkZQogCQkgKiBBZGRSZWxhdGlvbk5ld0NvbnN0cmFpbnRzIGlmIHRoZSBv cHRpbWl6YXRpb24gY2Fubm90IGJlIGFwcGxpZWQuCiAJCSAqLwotCQlyYXdFbnQtPm1pc3Np bmdNb2RlID0gKCFjb2xEZWYtPmdlbmVyYXRlZCk7CisJCXJhd0VudC0+bWlzc2luZ01vZGUg PSAoY29sRGVmLT5nZW5lcmF0ZWQgIT0gQVRUUklCVVRFX0dFTkVSQVRFRF9TVE9SRUQpOwog CiAJCXJhd0VudC0+Z2VuZXJhdGVkID0gY29sRGVmLT5nZW5lcmF0ZWQ7CiAKQEAgLTc3NDgs NiArNzc2NiwxNCBAQCBBVEV4ZWNTZXROb3ROdWxsKExpc3QgKip3cXVldWUsIFJlbGF0aW9u IHJlbCwgY2hhciAqY29uTmFtZSwgY2hhciAqY29sTmFtZSwKIAkJCQkgZXJybXNnKCJjYW5u b3QgYWx0ZXIgc3lzdGVtIGNvbHVtbiBcIiVzXCIiLAogCQkJCQkJY29sTmFtZSkpKTsKIAor CS8qIFRPRE86IHNlZSB0cmFuc2Zvcm1Db2x1bW5EZWZpbml0aW9uKCkgKi8KKwlpZiAoVHVw bGVEZXNjQXR0cihSZWxhdGlvbkdldERlc2NyKHJlbCksIGF0dG51bSAtIDEpLT5hdHRnZW5l cmF0ZWQgPT0gQVRUUklCVVRFX0dFTkVSQVRFRF9WSVJUVUFMKQorCQllcmVwb3J0KEVSUk9S LAorCQkJCShlcnJjb2RlKEVSUkNPREVfRkVBVFVSRV9OT1RfU1VQUE9SVEVEKSwKKwkJCQkg ZXJybXNnKCJub3QtbnVsbCBjb25zdHJhaW50cyBhcmUgbm90IHN1cHBvcnRlZCBvbiB2aXJ0 dWFsIGdlbmVyYXRlZCBjb2x1bW5zIiksCisJCQkJIGVycmRldGFpbCgiQ29sdW1uIFwiJXNc IiBvZiByZWxhdGlvbiBcIiVzXCIgaXMgYSB2aXJ0dWFsIGdlbmVyYXRlZCBjb2x1bW4uIiwK KwkJCQkJCSAgIGNvbE5hbWUsIFJlbGF0aW9uR2V0UmVsYXRpb25OYW1lKHJlbCkpKSk7CisK IAkvKiBTZWUgaWYgdGhlcmUncyBhbHJlYWR5IGEgY29uc3RyYWludCAqLwogCXR1cGxlID0g ZmluZE5vdE51bGxDb25zdHJhaW50QXR0bnVtKFJlbGF0aW9uR2V0UmVsaWQocmVsKSwgYXR0 bnVtKTsKIAlpZiAoSGVhcFR1cGxlSXNWYWxpZCh0dXBsZSkpCkBAIC04Mzc0LDYgKzg0MDAs OCBAQCBBVEV4ZWNTZXRFeHByZXNzaW9uKEFsdGVyZWRUYWJsZUluZm8gKnRhYiwgUmVsYXRp b24gcmVsLCBjb25zdCBjaGFyICpjb2xOYW1lLAogCUhlYXBUdXBsZQl0dXBsZTsKIAlGb3Jt X3BnX2F0dHJpYnV0ZSBhdHRUdXA7CiAJQXR0ck51bWJlcglhdHRudW07CisJY2hhcgkJYXR0 Z2VuZXJhdGVkOworCWJvb2wJCXJld3JpdGU7CiAJT2lkCQkJYXR0cmRlZm9pZDsKIAlPYmpl Y3RBZGRyZXNzIGFkZHJlc3M7CiAJRXhwcgkgICAqZGVmdmFsOwpAQCAtODM4OCwzNiArODQx Niw3MCBAQCBBVEV4ZWNTZXRFeHByZXNzaW9uKEFsdGVyZWRUYWJsZUluZm8gKnRhYiwgUmVs YXRpb24gcmVsLCBjb25zdCBjaGFyICpjb2xOYW1lLAogCQkJCQkJY29sTmFtZSwgUmVsYXRp b25HZXRSZWxhdGlvbk5hbWUocmVsKSkpKTsKIAogCWF0dFR1cCA9IChGb3JtX3BnX2F0dHJp YnV0ZSkgR0VUU1RSVUNUKHR1cGxlKTsKLQlhdHRudW0gPSBhdHRUdXAtPmF0dG51bTsKIAor CWF0dG51bSA9IGF0dFR1cC0+YXR0bnVtOwogCWlmIChhdHRudW0gPD0gMCkKIAkJZXJlcG9y dChFUlJPUiwKIAkJCQkoZXJyY29kZShFUlJDT0RFX0ZFQVRVUkVfTk9UX1NVUFBPUlRFRCks CiAJCQkJIGVycm1zZygiY2Fubm90IGFsdGVyIHN5c3RlbSBjb2x1bW4gXCIlc1wiIiwKIAkJ CQkJCWNvbE5hbWUpKSk7CiAKLQlpZiAoYXR0VHVwLT5hdHRnZW5lcmF0ZWQgIT0gQVRUUklC VVRFX0dFTkVSQVRFRF9TVE9SRUQpCisJYXR0Z2VuZXJhdGVkID0gYXR0VHVwLT5hdHRnZW5l cmF0ZWQ7CisJaWYgKCFhdHRnZW5lcmF0ZWQpCiAJCWVyZXBvcnQoRVJST1IsCiAJCQkJKGVy cmNvZGUoRVJSQ09ERV9PQkpFQ1RfTk9UX0lOX1BSRVJFUVVJU0lURV9TVEFURSksCiAJCQkJ IGVycm1zZygiY29sdW1uIFwiJXNcIiBvZiByZWxhdGlvbiBcIiVzXCIgaXMgbm90IGEgZ2Vu ZXJhdGVkIGNvbHVtbiIsCiAJCQkJCQljb2xOYW1lLCBSZWxhdGlvbkdldFJlbGF0aW9uTmFt ZShyZWwpKSkpOwotCVJlbGVhc2VTeXNDYWNoZSh0dXBsZSk7CiAKIAkvKgotCSAqIENsZWFy IGFsbCB0aGUgbWlzc2luZyB2YWx1ZXMgaWYgd2UncmUgcmV3cml0aW5nIHRoZSB0YWJsZSwg c2luY2UgdGhpcwotCSAqIHJlbmRlcnMgdGhlbSBwb2ludGxlc3MuCisJICogVE9ETzogVGhp cyBjb3VsZCBiZSBkb25lLCBqdXN0IG5lZWQgdG8gcmVjaGVjayBhbnkgY29uc3RyYWludHMK KwkgKiBhZnRlcndhcmRzLgogCSAqLwotCVJlbGF0aW9uQ2xlYXJNaXNzaW5nKHJlbCk7Ci0K LQkvKiBtYWtlIHN1cmUgd2UgZG9uJ3QgY29uZmxpY3Qgd2l0aCBsYXRlciBhdHRyaWJ1dGUg bW9kaWZpY2F0aW9ucyAqLwotCUNvbW1hbmRDb3VudGVySW5jcmVtZW50KCk7CisJaWYgKGF0 dGdlbmVyYXRlZCA9PSBBVFRSSUJVVEVfR0VORVJBVEVEX1ZJUlRVQUwgJiYKKwkJcmVsLT5y ZF9hdHQtPmNvbnN0ciAmJiByZWwtPnJkX2F0dC0+Y29uc3RyLT5udW1fY2hlY2sgPiAwKQor CQllcmVwb3J0KEVSUk9SLAorCQkJCShlcnJjb2RlKEVSUkNPREVfRkVBVFVSRV9OT1RfU1VQ UE9SVEVEKSwKKwkJCQkgZXJybXNnKCJBTFRFUiBUQUJMRSAvIFNFVCBFWFBSRVNTSU9OIGlz IG5vdCBzdXBwb3J0ZWQgZm9yIHZpcnR1YWwgZ2VuZXJhdGVkIGNvbHVtbnMgb24gdGFibGVz IHdpdGggY2hlY2sgY29uc3RyYWludHMiKSwKKwkJCQkgZXJyZGV0YWlsKCJDb2x1bW4gXCIl c1wiIG9mIHJlbGF0aW9uIFwiJXNcIiBpcyBhIHZpcnR1YWwgZ2VuZXJhdGVkIGNvbHVtbi4i LAorCQkJCQkJICAgY29sTmFtZSwgUmVsYXRpb25HZXRSZWxhdGlvbk5hbWUocmVsKSkpKTsK IAogCS8qCi0JICogRmluZCBldmVyeXRoaW5nIHRoYXQgZGVwZW5kcyBvbiB0aGUgY29sdW1u IChjb25zdHJhaW50cywgaW5kZXhlcywgZXRjKSwKLQkgKiBhbmQgcmVjb3JkIGVub3VnaCBp bmZvcm1hdGlvbiB0byBsZXQgdXMgcmVjcmVhdGUgdGhlIG9iamVjdHMgYWZ0ZXIKLQkgKiBy ZXdyaXRlLgorCSAqIFdlIG5lZWQgdG8gcHJldmVudCB0aGlzIGJlY2F1c2UgYSBjaGFuZ2Ug b2YgZXhwcmVzc2lvbiBjb3VsZCBhZmZlY3QgYQorCSAqIHJvdyBmaWx0ZXIgYW5kIGluamVj dCBleHByZXNzaW9ucyB0aGF0IGFyZSBub3QgcGVybWl0dGVkIGluIGEgcm93CisJICogZmls dGVyLiAgWFhYIFdlIGNvdWxkIHRyeSB0byBoYXZlIGEgbW9yZSBwcmVjaXNlIGNoZWNrIHRv IGNhdGNoIG9ubHkKKwkgKiBwdWJsaWNhdGlvbnMgd2l0aCByb3cgZmlsdGVycywgb3IgZXZl biByZS12ZXJpZnkgdGhlIHJvdyBmaWx0ZXIKKwkgKiBleHByZXNzaW9ucy4KIAkgKi8KLQlS ZW1lbWJlckFsbERlcGVuZGVudEZvclJlYnVpbGRpbmcodGFiLCBBVF9TZXRFeHByZXNzaW9u LCByZWwsIGF0dG51bSwgY29sTmFtZSk7CisJaWYgKGF0dGdlbmVyYXRlZCA9PSBBVFRSSUJV VEVfR0VORVJBVEVEX1ZJUlRVQUwgJiYKKwkJR2V0UmVsYXRpb25QdWJsaWNhdGlvbnMoUmVs YXRpb25HZXRSZWxpZChyZWwpKSAhPSBOSUwpCisJCWVyZXBvcnQoRVJST1IsCisJCQkJKGVy cmNvZGUoRVJSQ09ERV9GRUFUVVJFX05PVF9TVVBQT1JURUQpLAorCQkJCSBlcnJtc2coIkFM VEVSIFRBQkxFIC8gU0VUIEVYUFJFU1NJT04gaXMgbm90IHN1cHBvcnRlZCBmb3IgdmlydHVh bCBnZW5lcmF0ZWQgY29sdW1ucyBvbiB0YWJsZXMgdGhhdCBhcmUgcGFydCBvZiBhIHB1Ymxp Y2F0aW9uIiksCisJCQkJIGVycmRldGFpbCgiQ29sdW1uIFwiJXNcIiBvZiByZWxhdGlvbiBc IiVzXCIgaXMgYSB2aXJ0dWFsIGdlbmVyYXRlZCBjb2x1bW4uIiwKKwkJCQkJCSAgIGNvbE5h bWUsIFJlbGF0aW9uR2V0UmVsYXRpb25OYW1lKHJlbCkpKSk7CisKKwlyZXdyaXRlID0gKGF0 dGdlbmVyYXRlZCA9PSBBVFRSSUJVVEVfR0VORVJBVEVEX1NUT1JFRCk7CisKKwlSZWxlYXNl U3lzQ2FjaGUodHVwbGUpOworCisJaWYgKHJld3JpdGUpCisJeworCQkvKgorCQkgKiBDbGVh ciBhbGwgdGhlIG1pc3NpbmcgdmFsdWVzIGlmIHdlJ3JlIHJld3JpdGluZyB0aGUgdGFibGUs IHNpbmNlCisJCSAqIHRoaXMgcmVuZGVycyB0aGVtIHBvaW50bGVzcy4KKwkJICovCisJCVJl bGF0aW9uQ2xlYXJNaXNzaW5nKHJlbCk7CisKKwkJLyogbWFrZSBzdXJlIHdlIGRvbid0IGNv bmZsaWN0IHdpdGggbGF0ZXIgYXR0cmlidXRlIG1vZGlmaWNhdGlvbnMgKi8KKwkJQ29tbWFu ZENvdW50ZXJJbmNyZW1lbnQoKTsKKworCQkvKgorCQkgKiBGaW5kIGV2ZXJ5dGhpbmcgdGhh dCBkZXBlbmRzIG9uIHRoZSBjb2x1bW4gKGNvbnN0cmFpbnRzLCBpbmRleGVzLAorCQkgKiBl dGMpLCBhbmQgcmVjb3JkIGVub3VnaCBpbmZvcm1hdGlvbiB0byBsZXQgdXMgcmVjcmVhdGUg dGhlIG9iamVjdHMKKwkJICogYWZ0ZXIgcmV3cml0ZS4KKwkJICovCisJCVJlbWVtYmVyQWxs RGVwZW5kZW50Rm9yUmVidWlsZGluZyh0YWIsIEFUX1NldEV4cHJlc3Npb24sIHJlbCwgYXR0 bnVtLCBjb2xOYW1lKTsKKwl9CiAKIAkvKgogCSAqIERyb3AgdGhlIGRlcGVuZGVuY3kgcmVj b3JkcyBvZiB0aGUgR0VORVJBVEVEIGV4cHJlc3Npb24sIGluIHBhcnRpY3VsYXIKQEAgLTg0 NDYsNyArODUwOCw3IEBAIEFURXhlY1NldEV4cHJlc3Npb24oQWx0ZXJlZFRhYmxlSW5mbyAq dGFiLCBSZWxhdGlvbiByZWwsIGNvbnN0IGNoYXIgKmNvbE5hbWUsCiAJcmF3RW50LT5hdHRu dW0gPSBhdHRudW07CiAJcmF3RW50LT5yYXdfZGVmYXVsdCA9IG5ld0V4cHI7CiAJcmF3RW50 LT5taXNzaW5nTW9kZSA9IGZhbHNlOwotCXJhd0VudC0+Z2VuZXJhdGVkID0gQVRUUklCVVRF X0dFTkVSQVRFRF9TVE9SRUQ7CisJcmF3RW50LT5nZW5lcmF0ZWQgPSBhdHRnZW5lcmF0ZWQ7 CiAKIAkvKiBTdG9yZSB0aGUgZ2VuZXJhdGVkIGV4cHJlc3Npb24gKi8KIAlBZGRSZWxhdGlv bk5ld0NvbnN0cmFpbnRzKHJlbCwgbGlzdF9tYWtlMShyYXdFbnQpLCBOSUwsCkBAIC04NDU1 LDE2ICs4NTE3LDE5IEBAIEFURXhlY1NldEV4cHJlc3Npb24oQWx0ZXJlZFRhYmxlSW5mbyAq dGFiLCBSZWxhdGlvbiByZWwsIGNvbnN0IGNoYXIgKmNvbE5hbWUsCiAJLyogTWFrZSBhYm92 ZSBuZXcgZXhwcmVzc2lvbiB2aXNpYmxlICovCiAJQ29tbWFuZENvdW50ZXJJbmNyZW1lbnQo KTsKIAotCS8qIFByZXBhcmUgZm9yIHRhYmxlIHJld3JpdGUgKi8KLQlkZWZ2YWwgPSAoRXhw ciAqKSBidWlsZF9jb2x1bW5fZGVmYXVsdChyZWwsIGF0dG51bSk7CisJaWYgKHJld3JpdGUp CisJeworCQkvKiBQcmVwYXJlIGZvciB0YWJsZSByZXdyaXRlICovCisJCWRlZnZhbCA9IChF eHByICopIGJ1aWxkX2NvbHVtbl9kZWZhdWx0KHJlbCwgYXR0bnVtKTsKIAotCW5ld3ZhbCA9 IChOZXdDb2x1bW5WYWx1ZSAqKSBwYWxsb2MwKHNpemVvZihOZXdDb2x1bW5WYWx1ZSkpOwot CW5ld3ZhbC0+YXR0bnVtID0gYXR0bnVtOwotCW5ld3ZhbC0+ZXhwciA9IGV4cHJlc3Npb25f cGxhbm5lcihkZWZ2YWwpOwotCW5ld3ZhbC0+aXNfZ2VuZXJhdGVkID0gdHJ1ZTsKKwkJbmV3 dmFsID0gKE5ld0NvbHVtblZhbHVlICopIHBhbGxvYzAoc2l6ZW9mKE5ld0NvbHVtblZhbHVl KSk7CisJCW5ld3ZhbC0+YXR0bnVtID0gYXR0bnVtOworCQluZXd2YWwtPmV4cHIgPSBleHBy ZXNzaW9uX3BsYW5uZXIoZGVmdmFsKTsKKwkJbmV3dmFsLT5pc19nZW5lcmF0ZWQgPSB0cnVl OwogCi0JdGFiLT5uZXd2YWxzID0gbGFwcGVuZCh0YWItPm5ld3ZhbHMsIG5ld3ZhbCk7Ci0J dGFiLT5yZXdyaXRlIHw9IEFUX1JFV1JJVEVfREVGQVVMVF9WQUw7CisJCXRhYi0+bmV3dmFs cyA9IGxhcHBlbmQodGFiLT5uZXd2YWxzLCBuZXd2YWwpOworCQl0YWItPnJld3JpdGUgfD0g QVRfUkVXUklURV9ERUZBVUxUX1ZBTDsKKwl9CiAKIAkvKiBEcm9wIGFueSBwZ19zdGF0aXN0 aWMgZW50cnkgZm9yIHRoZSBjb2x1bW4gKi8KIAlSZW1vdmVTdGF0aXN0aWNzKFJlbGF0aW9u R2V0UmVsaWQocmVsKSwgYXR0bnVtKTsKQEAgLTg1NTMsMTcgKzg2MTgsMzAgQEAgQVRFeGVj RHJvcEV4cHJlc3Npb24oUmVsYXRpb24gcmVsLCBjb25zdCBjaGFyICpjb2xOYW1lLCBib29s IG1pc3Npbmdfb2ssIExPQ0tNT0QKIAkJCQkgZXJybXNnKCJjYW5ub3QgYWx0ZXIgc3lzdGVt IGNvbHVtbiBcIiVzXCIiLAogCQkJCQkJY29sTmFtZSkpKTsKIAotCWlmIChhdHRUdXAtPmF0 dGdlbmVyYXRlZCAhPSBBVFRSSUJVVEVfR0VORVJBVEVEX1NUT1JFRCkKKwkvKgorCSAqIFRP RE86IFRoaXMgY291bGQgYmUgZG9uZSwgYnV0IGl0IHdvdWxkIG5lZWQgYSB0YWJsZSByZXdy aXRlIHRvCisJICogbWF0ZXJpYWxpemUgdGhlIGdlbmVyYXRlZCB2YWx1ZXMuICBOb3RlIHRo YXQgZm9yIHRoZSB0aW1lIGJlaW5nLCB3ZQorCSAqIHN0aWxsIGVycm9yIHdpdGggbWlzc2lu Z19vaywgc28gdGhhdCB3ZSBkb24ndCBzaWxlbnRseSBsZWF2ZSB0aGUgY29sdW1uCisJICog YXMgZ2VuZXJhdGVkLgorCSAqLworCWlmIChhdHRUdXAtPmF0dGdlbmVyYXRlZCA9PSBBVFRS SUJVVEVfR0VORVJBVEVEX1ZJUlRVQUwpCisJCWVyZXBvcnQoRVJST1IsCisJCQkJKGVycmNv ZGUoRVJSQ09ERV9GRUFUVVJFX05PVF9TVVBQT1JURUQpLAorCQkJCSBlcnJtc2coIkFMVEVS IFRBQkxFIC8gRFJPUCBFWFBSRVNTSU9OIGlzIG5vdCBzdXBwb3J0ZWQgZm9yIHZpcnR1YWwg Z2VuZXJhdGVkIGNvbHVtbnMiKSwKKwkJCQkgZXJyZGV0YWlsKCJDb2x1bW4gXCIlc1wiIG9m IHJlbGF0aW9uIFwiJXNcIiBpcyBhIHZpcnR1YWwgZ2VuZXJhdGVkIGNvbHVtbi4iLAorCQkJ CQkJICAgY29sTmFtZSwgUmVsYXRpb25HZXRSZWxhdGlvbk5hbWUocmVsKSkpKTsKKworCWlm ICghYXR0VHVwLT5hdHRnZW5lcmF0ZWQpCiAJewogCQlpZiAoIW1pc3Npbmdfb2spCiAJCQll cmVwb3J0KEVSUk9SLAogCQkJCQkoZXJyY29kZShFUlJDT0RFX09CSkVDVF9OT1RfSU5fUFJF UkVRVUlTSVRFX1NUQVRFKSwKLQkJCQkJIGVycm1zZygiY29sdW1uIFwiJXNcIiBvZiByZWxh dGlvbiBcIiVzXCIgaXMgbm90IGEgc3RvcmVkIGdlbmVyYXRlZCBjb2x1bW4iLAorCQkJCQkg ZXJybXNnKCJjb2x1bW4gXCIlc1wiIG9mIHJlbGF0aW9uIFwiJXNcIiBpcyBub3QgYSBnZW5l cmF0ZWQgY29sdW1uIiwKIAkJCQkJCQljb2xOYW1lLCBSZWxhdGlvbkdldFJlbGF0aW9uTmFt ZShyZWwpKSkpOwogCQllbHNlCiAJCXsKIAkJCWVyZXBvcnQoTk9USUNFLAotCQkJCQkoZXJy bXNnKCJjb2x1bW4gXCIlc1wiIG9mIHJlbGF0aW9uIFwiJXNcIiBpcyBub3QgYSBzdG9yZWQg Z2VuZXJhdGVkIGNvbHVtbiwgc2tpcHBpbmciLAorCQkJCQkoZXJybXNnKCJjb2x1bW4gXCIl c1wiIG9mIHJlbGF0aW9uIFwiJXNcIiBpcyBub3QgYSBnZW5lcmF0ZWQgY29sdW1uLCBza2lw cGluZyIsCiAJCQkJCQkJY29sTmFtZSwgUmVsYXRpb25HZXRSZWxhdGlvbk5hbWUocmVsKSkp KTsKIAkJCWhlYXBfZnJlZXR1cGxlKHR1cGxlKTsKIAkJCXRhYmxlX2Nsb3NlKGF0dHJlbGF0 aW9uLCBSb3dFeGNsdXNpdmVMb2NrKTsKQEAgLTg3MDYsNiArODc4NCwxNiBAQCBBVEV4ZWNT ZXRTdGF0aXN0aWNzKFJlbGF0aW9uIHJlbCwgY29uc3QgY2hhciAqY29sTmFtZSwgaW50MTYg Y29sTnVtLCBOb2RlICpuZXdWYQogCQkJCSBlcnJtc2coImNhbm5vdCBhbHRlciBzeXN0ZW0g Y29sdW1uIFwiJXNcIiIsCiAJCQkJCQljb2xOYW1lKSkpOwogCisJLyoKKwkgKiBQcmV2ZW50 IHRoaXMgYXMgbG9uZyBhcyB0aGUgQU5BTFlaRSBjb2RlIHNraXBzIHZpcnR1YWwgZ2VuZXJh dGVkCisJICogY29sdW1ucy4KKwkgKi8KKwlpZiAoYXR0cnR1cGxlLT5hdHRnZW5lcmF0ZWQg PT0gQVRUUklCVVRFX0dFTkVSQVRFRF9WSVJUVUFMKQorCQllcmVwb3J0KEVSUk9SLAorCQkJ CShlcnJjb2RlKEVSUkNPREVfRkVBVFVSRV9OT1RfU1VQUE9SVEVEKSwKKwkJCQkgZXJybXNn KCJjYW5ub3QgYWx0ZXIgc3RhdGlzdGljcyBvbiB2aXJ0dWFsIGdlbmVyYXRlZCBjb2x1bW4g XCIlc1wiIiwKKwkJCQkJCWNvbE5hbWUpKSk7CisKIAlpZiAocmVsLT5yZF9yZWwtPnJlbGtp bmQgPT0gUkVMS0lORF9JTkRFWCB8fAogCQlyZWwtPnJkX3JlbC0+cmVsa2luZCA9PSBSRUxL SU5EX1BBUlRJVElPTkVEX0lOREVYKQogCXsKQEAgLTk4OTgsNiArOTk4NiwxOSBAQCBBVEFk ZEZvcmVpZ25LZXlDb25zdHJhaW50KExpc3QgKip3cXVldWUsIEFsdGVyZWRUYWJsZUluZm8g KnRhYiwgUmVsYXRpb24gcmVsLAogCQkJCQkJIGVycm1zZygiaW52YWxpZCAlcyBhY3Rpb24g Zm9yIGZvcmVpZ24ga2V5IGNvbnN0cmFpbnQgY29udGFpbmluZyBnZW5lcmF0ZWQgY29sdW1u IiwKIAkJCQkJCQkJIk9OIERFTEVURSIpKSk7CiAJCX0KKworCQkvKgorCQkgKiBGS3Mgb24g dmlydHVhbCBjb2x1bW5zIGFyZSBub3Qgc3VwcG9ydGVkLiAgVGhpcyB3b3VsZCByZXF1aXJl CisJCSAqIHZhcmlvdXMgYWRkaXRpb25hbCBzdXBwb3J0IGluIHJpX3RyaWdnZXJzLmMsIGlu Y2x1ZGluZyBzcGVjaWFsCisJCSAqIGhhbmRsaW5nIGluIHJpX051bGxDaGVjaygpLCByaV9L ZXlzRXF1YWwoKSwKKwkJICogUklfRktleV9ma191cGRfY2hlY2tfcmVxdWlyZWQoKSAoc2lu Y2UgYWxsIHZpcnR1YWwgY29sdW1ucyBhcHBlYXIKKwkJICogYXMgTlVMTCB0aGVyZSkuICBB bHNvIG5vdCByZWFsbHkgcHJhY3RpY2FsIGFzIGxvbmcgYXMgeW91IGNhbid0CisJCSAqIGlu ZGV4IHZpcnR1YWwgY29sdW1ucy4KKwkJICovCisJCWlmIChhdHRnZW5lcmF0ZWQgPT0gQVRU UklCVVRFX0dFTkVSQVRFRF9WSVJUVUFMKQorCQkJZXJlcG9ydChFUlJPUiwKKwkJCQkJKGVy cmNvZGUoRVJSQ09ERV9GRUFUVVJFX05PVF9TVVBQT1JURUQpLAorCQkJCQkgZXJybXNnKCJm b3JlaWduIGtleSBjb25zdHJhaW50cyBvbiB2aXJ0dWFsIGdlbmVyYXRlZCBjb2x1bW5zIGFy ZSBub3Qgc3VwcG9ydGVkIikpKTsKIAl9CiAKIAkvKgpAQCAtMTIwOTksNyArMTIyMDAsNyBA QCBBVEV4ZWNWYWxpZGF0ZUNvbnN0cmFpbnQoTGlzdCAqKndxdWV1ZSwgUmVsYXRpb24gcmVs LCBjaGFyICpjb25zdHJOYW1lLAogCQkJdmFsID0gU3lzQ2FjaGVHZXRBdHRyTm90TnVsbChD T05TVFJPSUQsIHR1cGxlLAogCQkJCQkJCQkJCSBBbnVtX3BnX2NvbnN0cmFpbnRfY29uYmlu KTsKIAkJCWNvbmJpbiA9IFRleHREYXR1bUdldENTdHJpbmcodmFsKTsKLQkJCW5ld2Nvbi0+ cXVhbCA9IChOb2RlICopIHN0cmluZ1RvTm9kZShjb25iaW4pOworCQkJbmV3Y29uLT5xdWFs ID0gKE5vZGUgKikgZXhwYW5kX2dlbmVyYXRlZF9jb2x1bW5zX2luX2V4cHIoc3RyaW5nVG9O b2RlKGNvbmJpbiksIHJlbCwgMSk7CiAKIAkJCS8qIEZpbmQgb3IgY3JlYXRlIHdvcmsgcXVl dWUgZW50cnkgZm9yIHRoaXMgdGFibGUgKi8KIAkJCXRhYiA9IEFUR2V0UXVldWVFbnRyeSh3 cXVldWUsIHJlbCk7CkBAIC0xMzI4NSw4ICsxMzM4NiwxMiBAQCBBVFByZXBBbHRlckNvbHVt blR5cGUoTGlzdCAqKndxdWV1ZSwKIAkJCQkJICAgbGlzdF9tYWtlMV9vaWQocmVsLT5yZF9y ZWwtPnJlbHR5cGUpLAogCQkJCQkgICAwKTsKIAotCWlmICh0YWItPnJlbGtpbmQgPT0gUkVM S0lORF9SRUxBVElPTiB8fAotCQl0YWItPnJlbGtpbmQgPT0gUkVMS0lORF9QQVJUSVRJT05F RF9UQUJMRSkKKwlpZiAoYXR0VHVwLT5hdHRnZW5lcmF0ZWQgPT0gQVRUUklCVVRFX0dFTkVS QVRFRF9WSVJUVUFMKQorCXsKKwkJLyogZG8gbm90aGluZyAqLworCX0KKwllbHNlIGlmICh0 YWItPnJlbGtpbmQgPT0gUkVMS0lORF9SRUxBVElPTiB8fAorCQkJIHRhYi0+cmVsa2luZCA9 PSBSRUxLSU5EX1BBUlRJVElPTkVEX1RBQkxFKQogCXsKIAkJLyoKIAkJICogU2V0IHVwIGFu IGV4cHJlc3Npb24gdG8gdHJhbnNmb3JtIHRoZSBvbGQgZGF0YSB2YWx1ZSB0byB0aGUgbmV3 CkBAIC0xMzM1OSwxMSArMTM0NjQsMTIgQEAgQVRQcmVwQWx0ZXJDb2x1bW5UeXBlKExpc3Qg Kip3cXVldWUsCiAJCQkJIGVycm1zZygiXCIlc1wiIGlzIG5vdCBhIHRhYmxlIiwKIAkJCQkJ CVJlbGF0aW9uR2V0UmVsYXRpb25OYW1lKHJlbCkpKSk7CiAKLQlpZiAoIVJFTEtJTkRfSEFT X1NUT1JBR0UodGFiLT5yZWxraW5kKSkKKwlpZiAoIVJFTEtJTkRfSEFTX1NUT1JBR0UodGFi LT5yZWxraW5kKSB8fCBhdHRUdXAtPmF0dGdlbmVyYXRlZCA9PSBBVFRSSUJVVEVfR0VORVJB VEVEX1ZJUlRVQUwpCiAJewogCQkvKgotCQkgKiBGb3IgcmVsYXRpb25zIHdpdGhvdXQgc3Rv cmFnZSwgZG8gdGhpcyBjaGVjayBub3cuICBSZWd1bGFyIHRhYmxlcwotCQkgKiB3aWxsIGNo ZWNrIGl0IGxhdGVyIHdoZW4gdGhlIHRhYmxlIGlzIGJlaW5nIHJld3JpdHRlbi4KKwkJICog Rm9yIHJlbGF0aW9ucyBvciBjb2x1bW5zIHdpdGhvdXQgc3RvcmFnZSwgZG8gdGhpcyBjaGVj ayBub3cuCisJCSAqIFJlZ3VsYXIgdGFibGVzIHdpbGwgY2hlY2sgaXQgbGF0ZXIgd2hlbiB0 aGUgdGFibGUgaXMgYmVpbmcKKwkJICogcmV3cml0dGVuLgogCQkgKi8KIAkJZmluZF9jb21w b3NpdGVfdHlwZV9kZXBlbmRlbmNpZXMocmVsLT5yZF9yZWwtPnJlbHR5cGUsIHJlbCwgTlVM TCk7CiAJfQpAQCAtMTYzNDksNiArMTY0NTUsMTQgQEAgTWVyZ2VBdHRyaWJ1dGVzSW50b0V4 aXN0aW5nKFJlbGF0aW9uIGNoaWxkX3JlbCwgUmVsYXRpb24gcGFyZW50X3JlbCwgYm9vbCBp c3BhcnQKIAkJCQkJCShlcnJjb2RlKEVSUkNPREVfREFUQVRZUEVfTUlTTUFUQ0gpLAogCQkJ CQkJIGVycm1zZygiY29sdW1uIFwiJXNcIiBpbiBjaGlsZCB0YWJsZSBtdXN0IG5vdCBiZSBh IGdlbmVyYXRlZCBjb2x1bW4iLCBwYXJlbnRfYXR0bmFtZSkpKTsKIAorCQkJaWYgKHBhcmVu dF9hdHQtPmF0dGdlbmVyYXRlZCAmJiBjaGlsZF9hdHQtPmF0dGdlbmVyYXRlZCAmJiBjaGls ZF9hdHQtPmF0dGdlbmVyYXRlZCAhPSBwYXJlbnRfYXR0LT5hdHRnZW5lcmF0ZWQpCisJCQkJ ZXJlcG9ydChFUlJPUiwKKwkJCQkJCShlcnJjb2RlKEVSUkNPREVfREFUQVRZUEVfTUlTTUFU Q0gpLAorCQkJCQkJIGVycm1zZygiY29sdW1uIFwiJXNcIiBpbmhlcml0cyBmcm9tIGdlbmVy YXRlZCBjb2x1bW4gb2YgZGlmZmVyZW50IGtpbmQiLCBwYXJlbnRfYXR0bmFtZSksCisJCQkJ CQkgZXJyZGV0YWlsKCJQYXJlbnQgY29sdW1uIGlzICVzLCBjaGlsZCBjb2x1bW4gaXMgJXMu IiwKKwkJCQkJCQkJICAgcGFyZW50X2F0dC0+YXR0Z2VuZXJhdGVkID09IEFUVFJJQlVURV9H RU5FUkFURURfU1RPUkVEID8gIlNUT1JFRCIgOiAiVklSVFVBTCIsCisJCQkJCQkJCSAgIGNo aWxkX2F0dC0+YXR0Z2VuZXJhdGVkID09IEFUVFJJQlVURV9HRU5FUkFURURfU1RPUkVEID8g IlNUT1JFRCIgOiAiVklSVFVBTCIpKSk7CisKIAkJCS8qCiAJCQkgKiBSZWd1bGFyIGluaGVy aXRhbmNlIGNoaWxkcmVuIGFyZSBpbmRlcGVuZGVudCBlbm91Z2ggbm90IHRvCiAJCQkgKiBp bmhlcml0IGlkZW50aXR5IGNvbHVtbnMuICBCdXQgcGFydGl0aW9ucyBhcmUgaW50ZWdyYWwg cGFydCBvZgpAQCAtMTg1ODQsOCArMTg2OTgsMTEgQEAgQ29tcHV0ZVBhcnRpdGlvbkF0dHJz KFBhcnNlU3RhdGUgKnBzdGF0ZSwgUmVsYXRpb24gcmVsLCBMaXN0ICpwYXJ0UGFyYW1zLCBB dHRyTnUKIAkJCQkJCSBwYXJzZXJfZXJycG9zaXRpb24ocHN0YXRlLCBwZWxlbS0+bG9jYXRp b24pKSk7CiAKIAkJCS8qCi0JCQkgKiBHZW5lcmF0ZWQgY29sdW1ucyBjYW5ub3Qgd29yazog VGhleSBhcmUgY29tcHV0ZWQgYWZ0ZXIgQkVGT1JFCi0JCQkgKiB0cmlnZ2VycywgYnV0IHBh cnRpdGlvbiByb3V0aW5nIGlzIGRvbmUgYmVmb3JlIGFsbCB0cmlnZ2Vycy4KKwkJCSAqIFN0 b3JlZCBnZW5lcmF0ZWQgY29sdW1ucyBjYW5ub3Qgd29yazogVGhleSBhcmUgY29tcHV0ZWQg YWZ0ZXIKKwkJCSAqIEJFRk9SRSB0cmlnZ2VycywgYnV0IHBhcnRpdGlvbiByb3V0aW5nIGlz IGRvbmUgYmVmb3JlIGFsbAorCQkJICogdHJpZ2dlcnMuICBNYXliZSB2aXJ0dWFsIGdlbmVy YXRlZCBjb2x1bW5zIGNvdWxkIGJlIG1hZGUgdG8KKwkJCSAqIHdvcmssIGJ1dCB0aGVuIHRo ZXkgd291bGQgbmVlZCB0byBiZSBoYW5kbGVkIGFzIGFuIGV4cHJlc3Npb24KKwkJCSAqIGJl bG93LgogCQkJICovCiAJCQlpZiAoYXR0Zm9ybS0+YXR0Z2VuZXJhdGVkKQogCQkJCWVyZXBv cnQoRVJST1IsCkBAIC0xODY2Nyw5ICsxODc4NCwxMiBAQCBDb21wdXRlUGFydGl0aW9uQXR0 cnMoUGFyc2VTdGF0ZSAqcHN0YXRlLCBSZWxhdGlvbiByZWwsIExpc3QgKnBhcnRQYXJhbXMs IEF0dHJOdQogCQkJCX0KIAogCQkJCS8qCi0JCQkJICogR2VuZXJhdGVkIGNvbHVtbnMgY2Fu bm90IHdvcms6IFRoZXkgYXJlIGNvbXB1dGVkIGFmdGVyCi0JCQkJICogQkVGT1JFIHRyaWdn ZXJzLCBidXQgcGFydGl0aW9uIHJvdXRpbmcgaXMgZG9uZSBiZWZvcmUgYWxsCi0JCQkJICog dHJpZ2dlcnMuCisJCQkJICogU3RvcmVkIGdlbmVyYXRlZCBjb2x1bW5zIGNhbm5vdCB3b3Jr OiBUaGV5IGFyZSBjb21wdXRlZAorCQkJCSAqIGFmdGVyIEJFRk9SRSB0cmlnZ2VycywgYnV0 IHBhcnRpdGlvbiByb3V0aW5nIGlzIGRvbmUgYmVmb3JlCisJCQkJICogYWxsIHRyaWdnZXJz LiAgVmlydHVhbCBnZW5lcmF0ZWQgY29sdW1ucyBjb3VsZCBwcm9iYWJseQorCQkJCSAqIHdv cmssIGJ1dCBpdCB3b3VsZCByZXF1aXJlIG1vcmUgd29yayBlbHNld2hlcmUgKGZvciBleGFt cGxlCisJCQkJICogU0VUIEVYUFJFU1NJT04gd291bGQgbmVlZCB0byBjaGVjayB3aGV0aGVy IHRoZSBjb2x1bW4gaXMKKwkJCQkgKiB1c2VkIGluIHBhcnRpdGlvbiBrZXlzKS4gIFNlZW1z IHNhZmVyIHRvIHByb2hpYml0IGZvciBub3cuCiAJCQkJICovCiAJCQkJaSA9IC0xOwogCQkJ CXdoaWxlICgoaSA9IGJtc19uZXh0X21lbWJlcihleHByX2F0dHJzLCBpKSkgPj0gMCkKZGlm ZiAtLWdpdCBhL3NyYy9iYWNrZW5kL2NvbW1hbmRzL3RyaWdnZXIuYyBiL3NyYy9iYWNrZW5k L2NvbW1hbmRzL3RyaWdnZXIuYwppbmRleCAwOTM1NmU0NmQxNi4uNDczNTQxYTJkMjEgMTAw NjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL2NvbW1hbmRzL3RyaWdnZXIuYworKysgYi9zcmMvYmFj a2VuZC9jb21tYW5kcy90cmlnZ2VyLmMKQEAgLTQzLDYgKzQzLDcgQEAKICNpbmNsdWRlICJw YXJzZXIvcGFyc2VfcmVsYXRpb24uaCIKICNpbmNsdWRlICJwYXJ0aXRpb25pbmcvcGFydGRl c2MuaCIKICNpbmNsdWRlICJwZ3N0YXQuaCIKKyNpbmNsdWRlICJyZXdyaXRlL3Jld3JpdGVI YW5kbGVyLmgiCiAjaW5jbHVkZSAicmV3cml0ZS9yZXdyaXRlTWFuaXAuaCIKICNpbmNsdWRl ICJzdG9yYWdlL2xtZ3IuaCIKICNpbmNsdWRlICJ1dGlscy9hY2wuaCIKQEAgLTEwMSw2ICsx MDIsNyBAQCBzdGF0aWMgdm9pZCBBZnRlclRyaWdnZXJTYXZlRXZlbnQoRVN0YXRlICplc3Rh dGUsIFJlc3VsdFJlbEluZm8gKnJlbGluZm8sCiAJCQkJCQkJCSAgYm9vbCBpc19jcm9zc3Bh cnRfdXBkYXRlKTsKIHN0YXRpYyB2b2lkIEFmdGVyVHJpZ2dlckVubGFyZ2VRdWVyeVN0YXRl KHZvaWQpOwogc3RhdGljIGJvb2wgYmVmb3JlX3N0bXRfdHJpZ2dlcnNfZmlyZWQoT2lkIHJl bGlkLCBDbWRUeXBlIGNtZFR5cGUpOworc3RhdGljIHZvaWQgY2hlY2tfbW9kaWZpZWRfdmly dHVhbF9nZW5lcmF0ZWQoVHVwbGVEZXNjIHR1cGRlc2MsIEhlYXBUdXBsZSB0dXBsZSk7CiAK IAogLyoKQEAgLTY0MSw3ICs2NDMsOCBAQCBDcmVhdGVUcmlnZ2VyRmlyaW5nT24oQ3JlYXRl VHJpZ1N0bXQgKnN0bXQsIGNvbnN0IGNoYXIgKnF1ZXJ5U3RyaW5nLAogCQkJCQlpZiAoVFJJ R0dFUl9GT1JfQkVGT1JFKHRndHlwZSkgJiYKIAkJCQkJCXZhci0+dmFyYXR0bm8gPT0gMCAm JgogCQkJCQkJUmVsYXRpb25HZXREZXNjcihyZWwpLT5jb25zdHIgJiYKLQkJCQkJCVJlbGF0 aW9uR2V0RGVzY3IocmVsKS0+Y29uc3RyLT5oYXNfZ2VuZXJhdGVkX3N0b3JlZCkKKwkJCQkJ CShSZWxhdGlvbkdldERlc2NyKHJlbCktPmNvbnN0ci0+aGFzX2dlbmVyYXRlZF9zdG9yZWQg fHwKKwkJCQkJCSBSZWxhdGlvbkdldERlc2NyKHJlbCktPmNvbnN0ci0+aGFzX2dlbmVyYXRl ZF92aXJ0dWFsKSkKIAkJCQkJCWVyZXBvcnQoRVJST1IsCiAJCQkJCQkJCShlcnJjb2RlKEVS UkNPREVfSU5WQUxJRF9PQkpFQ1RfREVGSU5JVElPTiksCiAJCQkJCQkJCSBlcnJtc2coIkJF Rk9SRSB0cmlnZ2VyJ3MgV0hFTiBjb25kaXRpb24gY2Fubm90IHJlZmVyZW5jZSBORVcgZ2Vu ZXJhdGVkIGNvbHVtbnMiKSwKQEAgLTI1MDMsNiArMjUwNiw4IEBAIEV4ZWNCUkluc2VydFRy aWdnZXJzKEVTdGF0ZSAqZXN0YXRlLCBSZXN1bHRSZWxJbmZvICpyZWxpbmZvLAogCQl9CiAJ CWVsc2UgaWYgKG5ld3R1cGxlICE9IG9sZHR1cGxlKQogCQl7CisJCQljaGVja19tb2RpZmll ZF92aXJ0dWFsX2dlbmVyYXRlZChSZWxhdGlvbkdldERlc2NyKHJlbGluZm8tPnJpX1JlbGF0 aW9uRGVzYyksIG5ld3R1cGxlKTsKKwogCQkJRXhlY0ZvcmNlU3RvcmVIZWFwVHVwbGUobmV3 dHVwbGUsIHNsb3QsIGZhbHNlKTsKIAogCQkJLyoKQEAgLTMwNjAsNiArMzA2NSw4IEBAIEV4 ZWNCUlVwZGF0ZVRyaWdnZXJzKEVTdGF0ZSAqZXN0YXRlLCBFUFFTdGF0ZSAqZXBxc3RhdGUs CiAJCX0KIAkJZWxzZSBpZiAobmV3dHVwbGUgIT0gb2xkdHVwbGUpCiAJCXsKKwkJCWNoZWNr X21vZGlmaWVkX3ZpcnR1YWxfZ2VuZXJhdGVkKFJlbGF0aW9uR2V0RGVzY3IocmVsaW5mby0+ cmlfUmVsYXRpb25EZXNjKSwgbmV3dHVwbGUpOworCiAJCQlFeGVjRm9yY2VTdG9yZUhlYXBU dXBsZShuZXd0dXBsZSwgbmV3c2xvdCwgZmFsc2UpOwogCiAJCQkvKgpAQCAtMzQ5MCw2ICsz NDk3LDggQEAgVHJpZ2dlckVuYWJsZWQoRVN0YXRlICplc3RhdGUsIFJlc3VsdFJlbEluZm8g KnJlbGluZm8sCiAKIAkJCW9sZENvbnRleHQgPSBNZW1vcnlDb250ZXh0U3dpdGNoVG8oZXN0 YXRlLT5lc19xdWVyeV9jeHQpOwogCQkJdGdxdWFsID0gc3RyaW5nVG9Ob2RlKHRyaWdnZXIt PnRncXVhbCk7CisJCQl0Z3F1YWwgPSAoTm9kZSAqKSBleHBhbmRfZ2VuZXJhdGVkX2NvbHVt bnNfaW5fZXhwcih0Z3F1YWwsIHJlbGluZm8tPnJpX1JlbGF0aW9uRGVzYywgUFJTMl9PTERf VkFSTk8pOworCQkJdGdxdWFsID0gKE5vZGUgKikgZXhwYW5kX2dlbmVyYXRlZF9jb2x1bW5z X2luX2V4cHIodGdxdWFsLCByZWxpbmZvLT5yaV9SZWxhdGlvbkRlc2MsIFBSUzJfTkVXX1ZB Uk5PKTsKIAkJCS8qIENoYW5nZSByZWZlcmVuY2VzIHRvIE9MRCBhbmQgTkVXIHRvIElOTkVS X1ZBUiBhbmQgT1VURVJfVkFSICovCiAJCQlDaGFuZ2VWYXJOb2Rlcyh0Z3F1YWwsIFBSUzJf T0xEX1ZBUk5PLCBJTk5FUl9WQVIsIDApOwogCQkJQ2hhbmdlVmFyTm9kZXModGdxdWFsLCBQ UlMyX05FV19WQVJOTywgT1VURVJfVkFSLCAwKTsKQEAgLTY2MDAsMyArNjYwOSwzNiBAQCBw Z190cmlnZ2VyX2RlcHRoKFBHX0ZVTkNUSU9OX0FSR1MpCiB7CiAJUEdfUkVUVVJOX0lOVDMy KE15VHJpZ2dlckRlcHRoKTsKIH0KKworLyoKKyAqIENoZWNrIHdoZXRoZXIgYSB0cmlnZ2Vy IG1vZGlmaWVkIGEgdmlydHVhbCBnZW5lcmF0ZWQgY29sdW1uIGFuZCBlcnJvciBpZgorICog c28uCisgKgorICogV2UgbmVlZCB0byBjaGVjayB0aGlzIHNvIHRoYXQgd2UgZG9uJ3QgZW5k IHVwIHN0b3JpbmcgYSBub24tbnVsbCB2YWx1ZSBpbiBhCisgKiB2aXJ0dWFsIGdlbmVyYXRl ZCBjb2x1bW4uCisgKgorICogV2UgZG9uJ3QgbmVlZCB0byBjaGVjayBmb3Igc3RvcmVkIGdl bmVyYXRlZCBjb2x1bW5zLCBzaW5jZSB0aG9zZSB3aWxsIGJlCisgKiBvdmVyd3JpdHRlbiBs YXRlciBhbnl3YXkuCisgKgorICogQWx0ZXJuYXRpdmVseSwgd2UgY291bGQgZml4IGVycm9u ZW91cyB0dXBsZXMgaGVyZSBhbmQgYmUgc2lsZW50IGFib3V0IGl0LgorICogVGhpcyB3b3Vs ZCB5aWVsZCB0aGUgc2FtZSB1c2VyLWZhY2luZyBiZWhhdmlvciBmb3IgdmlydHVhbCBhbmQg c3RvcmVkCisgKiBnZW5lcmF0ZWQgY29sdW1ucy4gIEJ1dCBpdCBzZWVtcyBtb3JlIGNvbXBs aWNhdGVkIGFuZCBub3QgdmVyeSB1c2VmdWwgaW4KKyAqIHByYWN0aWNlLgorICovCitzdGF0 aWMgdm9pZAorY2hlY2tfbW9kaWZpZWRfdmlydHVhbF9nZW5lcmF0ZWQoVHVwbGVEZXNjIHR1 cGRlc2MsIEhlYXBUdXBsZSB0dXBsZSkKK3sKKwlpZiAoISh0dXBkZXNjLT5jb25zdHIgJiYg dHVwZGVzYy0+Y29uc3RyLT5oYXNfZ2VuZXJhdGVkX3ZpcnR1YWwpKQorCQlyZXR1cm47CisK Kwlmb3IgKGludCBpID0gMDsgaSA8IHR1cGRlc2MtPm5hdHRzOyBpKyspCisJeworCQlpZiAo VHVwbGVEZXNjQXR0cih0dXBkZXNjLCBpKS0+YXR0Z2VuZXJhdGVkID09IEFUVFJJQlVURV9H RU5FUkFURURfVklSVFVBTCkKKwkJeworCQkJaWYgKCFoZWFwX2F0dGlzbnVsbCh0dXBsZSwg aSArIDEsIHR1cGRlc2MpKQorCQkJCWVyZXBvcnQoRVJST1IsCisJCQkJCQkoZXJyY29kZShF UlJDT0RFX0VfUl9JX0VfVFJJR0dFUl9QUk9UT0NPTF9WSU9MQVRFRCksCisJCQkJCQkgZXJy bXNnKCJ0cmlnZ2VyIG1vZGlmaWVkIHZpcnR1YWwgZ2VuZXJhdGVkIGNvbHVtbiB2YWx1ZSIp KSk7CisJCX0KKwl9Cit9CmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC9leGVjdXRvci9leGVj RXhwckludGVycC5jIGIvc3JjL2JhY2tlbmQvZXhlY3V0b3IvZXhlY0V4cHJJbnRlcnAuYwpp bmRleCBiYWQ3YjE5NWJmYi4uZTM2NDg4YTRhYTAgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5k L2V4ZWN1dG9yL2V4ZWNFeHBySW50ZXJwLmMKKysrIGIvc3JjL2JhY2tlbmQvZXhlY3V0b3Iv ZXhlY0V4cHJJbnRlcnAuYwpAQCAtMjEzMyw2ICsyMTMzLDEwIEBAIENoZWNrVmFyU2xvdENv bXBhdGliaWxpdHkoVHVwbGVUYWJsZVNsb3QgKnNsb3QsIGludCBhdHRudW0sIE9pZCB2YXJ0 eXBlKQogCiAJCWF0dHIgPSBUdXBsZURlc2NBdHRyKHNsb3RfdHVwZGVzYywgYXR0bnVtIC0g MSk7CiAKKwkJLyogSW50ZXJuYWwgZXJyb3I6IHNvbWVib2R5IGZvcmdvdCB0byBleHBhbmQg aXQuICovCisJCWlmIChhdHRyLT5hdHRnZW5lcmF0ZWQgPT0gQVRUUklCVVRFX0dFTkVSQVRF RF9WSVJUVUFMKQorCQkJZWxvZyhFUlJPUiwgInVuZXhwZWN0ZWQgdmlydHVhbCBnZW5lcmF0 ZWQgY29sdW1uIHJlZmVyZW5jZSIpOworCiAJCWlmIChhdHRyLT5hdHRpc2Ryb3BwZWQpCiAJ CQllcmVwb3J0KEVSUk9SLAogCQkJCQkoZXJyY29kZShFUlJDT0RFX1VOREVGSU5FRF9DT0xV TU4pLApkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvZXhlY3V0b3IvZXhlY01haW4uYyBiL3Ny Yy9iYWNrZW5kL2V4ZWN1dG9yL2V4ZWNNYWluLmMKaW5kZXggNWNhODU2ZmQyNzkuLmU0OWFj YzIwODQ1IDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC9leGVjdXRvci9leGVjTWFpbi5jCisr KyBiL3NyYy9iYWNrZW5kL2V4ZWN1dG9yL2V4ZWNNYWluLmMKQEAgLTE3NTcsNiArMTc1Nyw3 IEBAIEV4ZWNSZWxDaGVjayhSZXN1bHRSZWxJbmZvICpyZXN1bHRSZWxJbmZvLAogCQkJRXhw cgkgICAqY2hlY2tjb25zdHI7CiAKIAkJCWNoZWNrY29uc3RyID0gc3RyaW5nVG9Ob2RlKGNo ZWNrW2ldLmNjYmluKTsKKwkJCWNoZWNrY29uc3RyID0gKEV4cHIgKikgZXhwYW5kX2dlbmVy YXRlZF9jb2x1bW5zX2luX2V4cHIoKE5vZGUgKikgY2hlY2tjb25zdHIsIHJlbCwgMSk7CiAJ CQlyZXN1bHRSZWxJbmZvLT5yaV9Db25zdHJhaW50RXhwcnNbaV0gPQogCQkJCUV4ZWNQcmVw YXJlRXhwcihjaGVja2NvbnN0ciwgZXN0YXRlKTsKIAkJfQpAQCAtMjMwNCw3ICsyMzA1LDkg QEAgRXhlY0J1aWxkU2xvdFZhbHVlRGVzY3JpcHRpb24oT2lkIHJlbG9pZCwKIAogCQlpZiAo dGFibGVfcGVybSB8fCBjb2x1bW5fcGVybSkKIAkJewotCQkJaWYgKHNsb3QtPnR0c19pc251 bGxbaV0pCisJCQlpZiAoYXR0LT5hdHRnZW5lcmF0ZWQgPT0gQVRUUklCVVRFX0dFTkVSQVRF RF9WSVJUVUFMKQorCQkJCXZhbCA9ICJ2aXJ0dWFsIjsKKwkJCWVsc2UgaWYgKHNsb3QtPnR0 c19pc251bGxbaV0pCiAJCQkJdmFsID0gIm51bGwiOwogCQkJZWxzZQogCQkJewpkaWZmIC0t Z2l0IGEvc3JjL2JhY2tlbmQvZXhlY3V0b3IvZXhlY1V0aWxzLmMgYi9zcmMvYmFja2VuZC9l eGVjdXRvci9leGVjVXRpbHMuYwppbmRleCA3NDBlOGZiMTQ4Ni4uNWUxYmFjMDRlZTMgMTAw NjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL2V4ZWN1dG9yL2V4ZWNVdGlscy5jCisrKyBiL3NyYy9i YWNrZW5kL2V4ZWN1dG9yL2V4ZWNVdGlscy5jCkBAIC0xMzExLDggKzEzMTEsOCBAQCBCaXRt YXBzZXQgKgogRXhlY0dldEV4dHJhVXBkYXRlZENvbHMoUmVzdWx0UmVsSW5mbyAqcmVsaW5m bywgRVN0YXRlICplc3RhdGUpCiB7CiAJLyogQ29tcHV0ZSB0aGUgaW5mbyBpZiB3ZSBkaWRu J3QgYWxyZWFkeSAqLwotCWlmIChyZWxpbmZvLT5yaV9HZW5lcmF0ZWRFeHByc1UgPT0gTlVM TCkKLQkJRXhlY0luaXRTdG9yZWRHZW5lcmF0ZWQocmVsaW5mbywgZXN0YXRlLCBDTURfVVBE QVRFKTsKKwlpZiAoIXJlbGluZm8tPnJpX0dlbmVyYXRlZF92YWxpZCkKKwkJRXhlY0luaXRH ZW5lcmF0ZWQocmVsaW5mbywgZXN0YXRlLCBDTURfVVBEQVRFKTsKIAlyZXR1cm4gcmVsaW5m by0+cmlfZXh0cmFVcGRhdGVkQ29sczsKIH0KIApkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQv ZXhlY3V0b3Ivbm9kZU1vZGlmeVRhYmxlLmMgYi9zcmMvYmFja2VuZC9leGVjdXRvci9ub2Rl TW9kaWZ5VGFibGUuYwppbmRleCAxMTYxNTIwZjc2Yi4uZmM0ODgyMzFmMzIgMTAwNjQ0Ci0t LSBhL3NyYy9iYWNrZW5kL2V4ZWN1dG9yL25vZGVNb2RpZnlUYWJsZS5jCisrKyBiL3NyYy9i YWNrZW5kL2V4ZWN1dG9yL25vZGVNb2RpZnlUYWJsZS5jCkBAIC0zNDksOSArMzQ5LDkgQEAg RXhlY0NoZWNrVElEVmlzaWJsZShFU3RhdGUgKmVzdGF0ZSwKICAqIFVQREFURSBhbmQgSU5T RVJUIGFjdGlvbnMuCiAgKi8KIHZvaWQKLUV4ZWNJbml0U3RvcmVkR2VuZXJhdGVkKFJlc3Vs dFJlbEluZm8gKnJlc3VsdFJlbEluZm8sCi0JCQkJCQlFU3RhdGUgKmVzdGF0ZSwKLQkJCQkJ CUNtZFR5cGUgY21kdHlwZSkKK0V4ZWNJbml0R2VuZXJhdGVkKFJlc3VsdFJlbEluZm8gKnJl c3VsdFJlbEluZm8sCisJCQkJICBFU3RhdGUgKmVzdGF0ZSwKKwkJCQkgIENtZFR5cGUgY21k dHlwZSkKIHsKIAlSZWxhdGlvbglyZWwgPSByZXN1bHRSZWxJbmZvLT5yaV9SZWxhdGlvbkRl c2M7CiAJVHVwbGVEZXNjCXR1cGRlc2MgPSBSZWxhdGlvbkdldERlc2NyKHJlbCk7CkBAIC0z NjIsNyArMzYyLDcgQEAgRXhlY0luaXRTdG9yZWRHZW5lcmF0ZWQoUmVzdWx0UmVsSW5mbyAq cmVzdWx0UmVsSW5mbywKIAlNZW1vcnlDb250ZXh0IG9sZENvbnRleHQ7CiAKIAkvKiBOb3Ro aW5nIHRvIGRvIGlmIG5vIGdlbmVyYXRlZCBjb2x1bW5zICovCi0JaWYgKCEodHVwZGVzYy0+ Y29uc3RyICYmIHR1cGRlc2MtPmNvbnN0ci0+aGFzX2dlbmVyYXRlZF9zdG9yZWQpKQorCWlm ICghKHR1cGRlc2MtPmNvbnN0ciAmJiAodHVwZGVzYy0+Y29uc3RyLT5oYXNfZ2VuZXJhdGVk X3N0b3JlZCB8fCB0dXBkZXNjLT5jb25zdHItPmhhc19nZW5lcmF0ZWRfdmlydHVhbCkpKQog CQlyZXR1cm47CiAKIAkvKgpAQCAtMzg4LDcgKzM4OCw5IEBAIEV4ZWNJbml0U3RvcmVkR2Vu ZXJhdGVkKFJlc3VsdFJlbEluZm8gKnJlc3VsdFJlbEluZm8sCiAKIAlmb3IgKGludCBpID0g MDsgaSA8IG5hdHRzOyBpKyspCiAJewotCQlpZiAoVHVwbGVEZXNjQXR0cih0dXBkZXNjLCBp KS0+YXR0Z2VuZXJhdGVkID09IEFUVFJJQlVURV9HRU5FUkFURURfU1RPUkVEKQorCQljaGFy CQlhdHRnZW5lcmF0ZWQgPSBUdXBsZURlc2NBdHRyKHR1cGRlc2MsIGkpLT5hdHRnZW5lcmF0 ZWQ7CisKKwkJaWYgKGF0dGdlbmVyYXRlZCkKIAkJewogCQkJRXhwcgkgICAqZXhwcjsKIApA QCAtNDEzLDggKzQxNSwxMSBAQCBFeGVjSW5pdFN0b3JlZEdlbmVyYXRlZChSZXN1bHRSZWxJ bmZvICpyZXN1bHRSZWxJbmZvLAogCQkJfQogCiAJCQkvKiBObyBsdWNrLCBzbyBwcmVwYXJl IHRoZSBleHByZXNzaW9uIGZvciBleGVjdXRpb24gKi8KLQkJCXJpX0dlbmVyYXRlZEV4cHJz W2ldID0gRXhlY1ByZXBhcmVFeHByKGV4cHIsIGVzdGF0ZSk7Ci0JCQlyaV9OdW1HZW5lcmF0 ZWROZWVkZWQrKzsKKwkJCWlmIChhdHRnZW5lcmF0ZWQgPT0gQVRUUklCVVRFX0dFTkVSQVRF RF9TVE9SRUQpCisJCQl7CisJCQkJcmlfR2VuZXJhdGVkRXhwcnNbaV0gPSBFeGVjUHJlcGFy ZUV4cHIoZXhwciwgZXN0YXRlKTsKKwkJCQlyaV9OdW1HZW5lcmF0ZWROZWVkZWQrKzsKKwkJ CX0KIAogCQkJLyogSWYgVVBEQVRFLCBtYXJrIGNvbHVtbiBpbiByZXN1bHRSZWxJbmZvLT5y aV9leHRyYVVwZGF0ZWRDb2xzICovCiAJCQlpZiAoY21kdHlwZSA9PSBDTURfVVBEQVRFKQpA QCAtNDQyLDYgKzQ0Nyw4IEBAIEV4ZWNJbml0U3RvcmVkR2VuZXJhdGVkKFJlc3VsdFJlbElu Zm8gKnJlc3VsdFJlbEluZm8sCiAJCXJlc3VsdFJlbEluZm8tPnJpX051bUdlbmVyYXRlZE5l ZWRlZEkgPSByaV9OdW1HZW5lcmF0ZWROZWVkZWQ7CiAJfQogCisJcmVzdWx0UmVsSW5mby0+ cmlfR2VuZXJhdGVkX3ZhbGlkID0gdHJ1ZTsKKwogCU1lbW9yeUNvbnRleHRTd2l0Y2hUbyhv bGRDb250ZXh0KTsKIH0KIApAQCAtNDcyLDcgKzQ3OSw3IEBAIEV4ZWNDb21wdXRlU3RvcmVk R2VuZXJhdGVkKFJlc3VsdFJlbEluZm8gKnJlc3VsdFJlbEluZm8sCiAJaWYgKGNtZHR5cGUg PT0gQ01EX1VQREFURSkKIAl7CiAJCWlmIChyZXN1bHRSZWxJbmZvLT5yaV9HZW5lcmF0ZWRF eHByc1UgPT0gTlVMTCkKLQkJCUV4ZWNJbml0U3RvcmVkR2VuZXJhdGVkKHJlc3VsdFJlbElu Zm8sIGVzdGF0ZSwgY21kdHlwZSk7CisJCQlFeGVjSW5pdEdlbmVyYXRlZChyZXN1bHRSZWxJ bmZvLCBlc3RhdGUsIGNtZHR5cGUpOwogCQlpZiAocmVzdWx0UmVsSW5mby0+cmlfTnVtR2Vu ZXJhdGVkTmVlZGVkVSA9PSAwKQogCQkJcmV0dXJuOwogCQlyaV9HZW5lcmF0ZWRFeHBycyA9 IHJlc3VsdFJlbEluZm8tPnJpX0dlbmVyYXRlZEV4cHJzVTsKQEAgLTQ4MCw3ICs0ODcsNyBA QCBFeGVjQ29tcHV0ZVN0b3JlZEdlbmVyYXRlZChSZXN1bHRSZWxJbmZvICpyZXN1bHRSZWxJ bmZvLAogCWVsc2UKIAl7CiAJCWlmIChyZXN1bHRSZWxJbmZvLT5yaV9HZW5lcmF0ZWRFeHBy c0kgPT0gTlVMTCkKLQkJCUV4ZWNJbml0U3RvcmVkR2VuZXJhdGVkKHJlc3VsdFJlbEluZm8s IGVzdGF0ZSwgY21kdHlwZSk7CisJCQlFeGVjSW5pdEdlbmVyYXRlZChyZXN1bHRSZWxJbmZv LCBlc3RhdGUsIGNtZHR5cGUpOwogCQkvKiBFYXJseSBleGl0IGlzIGltcG9zc2libGUgZ2l2 ZW4gdGhlIHByaW9yIEFzc2VydCAqLwogCQlBc3NlcnQocmVzdWx0UmVsSW5mby0+cmlfTnVt R2VuZXJhdGVkTmVlZGVkSSA+IDApOwogCQlyaV9HZW5lcmF0ZWRFeHBycyA9IHJlc3VsdFJl bEluZm8tPnJpX0dlbmVyYXRlZEV4cHJzSTsKZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL3Bh cnNlci9ncmFtLnkgYi9zcmMvYmFja2VuZC9wYXJzZXIvZ3JhbS55CmluZGV4IDY3ZWI5NjM5 NmFmLi4yNDJhMThjZjc4ZCAxMDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQvcGFyc2VyL2dyYW0u eQorKysgYi9zcmMvYmFja2VuZC9wYXJzZXIvZ3JhbS55CkBAIC02MjgsNyArNjI4LDcgQEAg c3RhdGljIE5vZGUgKm1ha2VSZWN1cnNpdmVWaWV3U2VsZWN0KGNoYXIgKnJlbG5hbWUsIExp c3QgKmFsaWFzZXMsIE5vZGUgKnF1ZXJ5KTsKICV0eXBlIDxzdHI+CQlvcHRfZXhpc3Rpbmdf d2luZG93X25hbWUKICV0eXBlIDxib29sZWFuPiBvcHRfaWZfbm90X2V4aXN0cwogJXR5cGUg PGJvb2xlYW4+IG9wdF91bmlxdWVfbnVsbF90cmVhdG1lbnQKLSV0eXBlIDxpdmFsPglnZW5l cmF0ZWRfd2hlbiBvdmVycmlkZV9raW5kCisldHlwZSA8aXZhbD4JZ2VuZXJhdGVkX3doZW4g b3ZlcnJpZGVfa2luZCBvcHRfdmlydHVhbF9vcl9zdG9yZWQKICV0eXBlIDxwYXJ0c3BlYz4J UGFydGl0aW9uU3BlYyBPcHRQYXJ0aXRpb25TcGVjCiAldHlwZSA8cGFydGVsZW0+CXBhcnRf ZWxlbQogJXR5cGUgPGxpc3Q+CQlwYXJ0X3BhcmFtcwpAQCAtNzc2LDcgKzc3Niw3IEBAIHN0 YXRpYyBOb2RlICptYWtlUmVjdXJzaXZlVmlld1NlbGVjdChjaGFyICpyZWxuYW1lLCBMaXN0 ICphbGlhc2VzLCBOb2RlICpxdWVyeSk7CiAJVU5MSVNURU4gVU5MT0dHRUQgVU5USUwgVVBE QVRFIFVTRVIgVVNJTkcKIAogCVZBQ1VVTSBWQUxJRCBWQUxJREFURSBWQUxJREFUT1IgVkFM VUVfUCBWQUxVRVMgVkFSQ0hBUiBWQVJJQURJQyBWQVJZSU5HCi0JVkVSQk9TRSBWRVJTSU9O X1AgVklFVyBWSUVXUyBWT0xBVElMRQorCVZFUkJPU0UgVkVSU0lPTl9QIFZJRVcgVklFV1Mg VklSVFVBTCBWT0xBVElMRQogCiAJV0hFTiBXSEVSRSBXSElURVNQQUNFX1AgV0lORE9XIFdJ VEggV0lUSElOIFdJVEhPVVQgV09SSyBXUkFQUEVSIFdSSVRFCiAKQEAgLTM5ODUsNyArMzk4 NSw3IEBAIENvbENvbnN0cmFpbnRFbGVtOgogCQkJCQluLT5sb2NhdGlvbiA9IEAxOwogCQkJ CQkkJCA9IChOb2RlICopIG47CiAJCQkJfQotCQkJfCBHRU5FUkFURUQgZ2VuZXJhdGVkX3do ZW4gQVMgJygnIGFfZXhwciAnKScgU1RPUkVECisJCQl8IEdFTkVSQVRFRCBnZW5lcmF0ZWRf d2hlbiBBUyAnKCcgYV9leHByICcpJyBvcHRfdmlydHVhbF9vcl9zdG9yZWQKIAkJCQl7CiAJ CQkJCUNvbnN0cmFpbnQgKm4gPSBtYWtlTm9kZShDb25zdHJhaW50KTsKIApAQCAtMzk5Myw2 ICszOTkzLDcgQEAgQ29sQ29uc3RyYWludEVsZW06CiAJCQkJCW4tPmdlbmVyYXRlZF93aGVu ID0gJDI7CiAJCQkJCW4tPnJhd19leHByID0gJDU7CiAJCQkJCW4tPmNvb2tlZF9leHByID0g TlVMTDsKKwkJCQkJbi0+Z2VuZXJhdGVkX2tpbmQgPSAkNzsKIAkJCQkJbi0+bG9jYXRpb24g PSBAMTsKIAogCQkJCQkvKgpAQCAtNDAzOSw2ICs0MDQwLDEyIEBAIGdlbmVyYXRlZF93aGVu OgogCQkJfCBCWSBERUZBVUxUCXsgJCQgPSBBVFRSSUJVVEVfSURFTlRJVFlfQllfREVGQVVM VDsgfQogCQk7CiAKK29wdF92aXJ0dWFsX29yX3N0b3JlZDoKKwkJCVNUT1JFRAkJCXsgJCQg PSBBVFRSSUJVVEVfR0VORVJBVEVEX1NUT1JFRDsgfQorCQkJfCBWSVJUVUFMCQl7ICQkID0g QVRUUklCVVRFX0dFTkVSQVRFRF9WSVJUVUFMOyB9CisJCQl8IC8qRU1QVFkqLwkJeyAkJCA9 IEFUVFJJQlVURV9HRU5FUkFURURfVklSVFVBTDsgfQorCQk7CisKIC8qCiAgKiBDb25zdHJh aW50QXR0ciByZXByZXNlbnRzIGNvbnN0cmFpbnQgYXR0cmlidXRlcywgd2hpY2ggd2UgcGFy c2UgYXMgaWYKICAqIHRoZXkgd2VyZSBpbmRlcGVuZGVudCBjb25zdHJhaW50IGNsYXVzZXMs IGluIG9yZGVyIHRvIGF2b2lkIHNoaWZ0L3JlZHVjZQpAQCAtMTc5MjEsNiArMTc5MjgsNyBA QCB1bnJlc2VydmVkX2tleXdvcmQ6CiAJCQl8IFZFUlNJT05fUAogCQkJfCBWSUVXCiAJCQl8 IFZJRVdTCisJCQl8IFZJUlRVQUwKIAkJCXwgVk9MQVRJTEUKIAkJCXwgV0hJVEVTUEFDRV9Q CiAJCQl8IFdJVEhJTgpAQCAtMTg1NzUsNiArMTg1ODMsNyBAQCBiYXJlX2xhYmVsX2tleXdv cmQ6CiAJCQl8IFZFUlNJT05fUAogCQkJfCBWSUVXCiAJCQl8IFZJRVdTCisJCQl8IFZJUlRV QUwKIAkJCXwgVk9MQVRJTEUKIAkJCXwgV0hFTgogCQkJfCBXSElURVNQQUNFX1AKZGlmZiAt LWdpdCBhL3NyYy9iYWNrZW5kL3BhcnNlci9wYXJzZV9yZWxhdGlvbi5jIGIvc3JjL2JhY2tl bmQvcGFyc2VyL3BhcnNlX3JlbGF0aW9uLmMKaW5kZXggODA3NWIxYjhhMWIuLjZmOGY5NmIz NGRhIDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC9wYXJzZXIvcGFyc2VfcmVsYXRpb24uYwor KysgYi9zcmMvYmFja2VuZC9wYXJzZXIvcGFyc2VfcmVsYXRpb24uYwpAQCAtNzA0LDcgKzcw NCwxMSBAQCBzY2FuTlNJdGVtRm9yQ29sdW1uKFBhcnNlU3RhdGUgKnBzdGF0ZSwgUGFyc2VO YW1lc3BhY2VJdGVtICpuc2l0ZW0sCiAJCQkJCQljb2xuYW1lKSwKIAkJCQkgcGFyc2VyX2Vy cnBvc2l0aW9uKHBzdGF0ZSwgbG9jYXRpb24pKSk7CiAKLQkvKiBJbiBnZW5lcmF0ZWQgY29s dW1uLCBubyBzeXN0ZW0gY29sdW1uIGlzIGFsbG93ZWQgZXhjZXB0IHRhYmxlT2lkICovCisJ LyoKKwkgKiBJbiBnZW5lcmF0ZWQgY29sdW1uLCBubyBzeXN0ZW0gY29sdW1uIGlzIGFsbG93 ZWQgZXhjZXB0IHRhYmxlT2lkLgorCSAqIChSZXF1aXJlZCBmb3Igc3RvcmVkIGdlbmVyYXRl ZCwgYnV0IHdlIGFsc28gZG8gaXQgZm9yIHZpcnR1YWwgZ2VuZXJhdGVkCisJICogZm9yIG5v dyBmb3IgY29uc2lzdGVuY3kuKQorCSAqLwogCWlmIChwc3RhdGUtPnBfZXhwcl9raW5kID09 IEVYUFJfS0lORF9HRU5FUkFURURfQ09MVU1OICYmCiAJCWF0dG51bSA8IEludmFsaWRBdHRy TnVtYmVyICYmIGF0dG51bSAhPSBUYWJsZU9pZEF0dHJpYnV0ZU51bWJlcikKIAkJZXJlcG9y dChFUlJPUiwKZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL3BhcnNlci9wYXJzZV91dGlsY21k LmMgYi9zcmMvYmFja2VuZC9wYXJzZXIvcGFyc2VfdXRpbGNtZC5jCmluZGV4IDBmMzI0ZWU0 ZTMxLi45MjllZDRmYTgwNiAxMDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQvcGFyc2VyL3BhcnNl X3V0aWxjbWQuYworKysgYi9zcmMvYmFja2VuZC9wYXJzZXIvcGFyc2VfdXRpbGNtZC5jCkBA IC04ODksNyArODg5LDcgQEAgdHJhbnNmb3JtQ29sdW1uRGVmaW5pdGlvbihDcmVhdGVTdG10 Q29udGV4dCAqY3h0LCBDb2x1bW5EZWYgKmNvbHVtbikKIAkJCQkJCQkJCWNvbHVtbi0+Y29s bmFtZSwgY3h0LT5yZWxhdGlvbi0+cmVsbmFtZSksCiAJCQkJCQkJIHBhcnNlcl9lcnJwb3Np dGlvbihjeHQtPnBzdGF0ZSwKIAkJCQkJCQkJCQkJCWNvbnN0cmFpbnQtPmxvY2F0aW9uKSkp OwotCQkJCWNvbHVtbi0+Z2VuZXJhdGVkID0gQVRUUklCVVRFX0dFTkVSQVRFRF9TVE9SRUQ7 CisJCQkJY29sdW1uLT5nZW5lcmF0ZWQgPSBjb25zdHJhaW50LT5nZW5lcmF0ZWRfa2luZDsK IAkJCQljb2x1bW4tPnJhd19kZWZhdWx0ID0gY29uc3RyYWludC0+cmF3X2V4cHI7CiAJCQkJ QXNzZXJ0KGNvbnN0cmFpbnQtPmNvb2tlZF9leHByID09IE5VTEwpOwogCQkJCXNhd19nZW5l cmF0ZWQgPSB0cnVlOwpAQCAtOTg2LDYgKzk4NiwyMCBAQCB0cmFuc2Zvcm1Db2x1bW5EZWZp bml0aW9uKENyZWF0ZVN0bXRDb250ZXh0ICpjeHQsIENvbHVtbkRlZiAqY29sdW1uKQogCQkJ CQkJCWNvbHVtbi0+Y29sbmFtZSwgY3h0LT5yZWxhdGlvbi0+cmVsbmFtZSksCiAJCQkJCSBw YXJzZXJfZXJycG9zaXRpb24oY3h0LT5wc3RhdGUsCiAJCQkJCQkJCQkJY29uc3RyYWludC0+ bG9jYXRpb24pKSk7CisKKwkJLyoKKwkJICogVE9ETzogU3RyYWlnaHRmb3J3YXJkIG5vdC1u dWxsIGNvbnN0cmFpbnRzIHdvbid0IHdvcmsgb24gdmlydHVhbAorCQkgKiBnZW5lcmF0ZWQg Y29sdW1ucywgYmVjYXVzZSB0aGVyZSBpcyBubyBzdXBwb3J0IGZvciBleHBhbmRpbmcgdGhl CisJCSAqIGNvbHVtbiB3aGVuIHRoZSBjb25zdHJhaW50IGlzIGNoZWNrZWQuICBNYXliZSB3 ZSBjb3VsZCBjb252ZXJ0IHRoZQorCQkgKiBub3QtbnVsbCBjb25zdHJhaW50IGludG8gYSBm dWxsIGNoZWNrIGNvbnN0cmFpbnQsIHNvIHRoYXQgdGhlCisJCSAqIGdlbmVyYXRpb24gZXhw cmVzc2lvbiBjYW4gYmUgZXhwYW5kZWQgYXQgY2hlY2sgdGltZS4KKwkJICovCisJCWlmIChj b2x1bW4tPmlzX25vdF9udWxsICYmIGNvbHVtbi0+Z2VuZXJhdGVkID09IEFUVFJJQlVURV9H RU5FUkFURURfVklSVFVBTCkKKwkJCWVyZXBvcnQoRVJST1IsCisJCQkJCShlcnJjb2RlKEVS UkNPREVfRkVBVFVSRV9OT1RfU1VQUE9SVEVEKSwKKwkJCQkJIGVycm1zZygibm90LW51bGwg Y29uc3RyYWludHMgYXJlIG5vdCBzdXBwb3J0ZWQgb24gdmlydHVhbCBnZW5lcmF0ZWQgY29s dW1ucyIpLAorCQkJCQkgcGFyc2VyX2VycnBvc2l0aW9uKGN4dC0+cHN0YXRlLAorCQkJCQkJ CQkJCWNvbnN0cmFpbnQtPmxvY2F0aW9uKSkpOwogCX0KIAogCS8qCmRpZmYgLS1naXQgYS9z cmMvYmFja2VuZC9yZXBsaWNhdGlvbi9wZ291dHB1dC9wZ291dHB1dC5jIGIvc3JjL2JhY2tl bmQvcmVwbGljYXRpb24vcGdvdXRwdXQvcGdvdXRwdXQuYwppbmRleCA1ZTIzNDUzZjA3MS4u ZDNkZTU4NTQ1MjkgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL3JlcGxpY2F0aW9uL3Bnb3V0 cHV0L3Bnb3V0cHV0LmMKKysrIGIvc3JjL2JhY2tlbmQvcmVwbGljYXRpb24vcGdvdXRwdXQv cGdvdXRwdXQuYwpAQCAtMjcsNiArMjcsNyBAQAogI2luY2x1ZGUgInJlcGxpY2F0aW9uL2xv Z2ljYWxwcm90by5oIgogI2luY2x1ZGUgInJlcGxpY2F0aW9uL29yaWdpbi5oIgogI2luY2x1 ZGUgInJlcGxpY2F0aW9uL3Bnb3V0cHV0LmgiCisjaW5jbHVkZSAicmV3cml0ZS9yZXdyaXRl SGFuZGxlci5oIgogI2luY2x1ZGUgInV0aWxzL2J1aWx0aW5zLmgiCiAjaW5jbHVkZSAidXRp bHMvaW52YWwuaCIKICNpbmNsdWRlICJ1dGlscy9sc3lzY2FjaGUuaCIKQEAgLTEwMDAsNyAr MTAwMSw3IEBAIHBnb3V0cHV0X3Jvd19maWx0ZXJfaW5pdChQR091dHB1dERhdGEgKmRhdGEs IExpc3QgKnB1YmxpY2F0aW9ucywKIAkJCQljb250aW51ZTsKIAogCQkJZm9yZWFjaChsYywg cmZub2Rlc1tpZHhdKQotCQkJCWZpbHRlcnMgPSBsYXBwZW5kKGZpbHRlcnMsIHN0cmluZ1Rv Tm9kZSgoY2hhciAqKSBsZmlyc3QobGMpKSk7CisJCQkJZmlsdGVycyA9IGxhcHBlbmQoZmls dGVycywgZXhwYW5kX2dlbmVyYXRlZF9jb2x1bW5zX2luX2V4cHIoc3RyaW5nVG9Ob2RlKChj aGFyICopIGxmaXJzdChsYykpLCByZWxhdGlvbiwgMSkpOwogCiAJCQkvKiBjb21iaW5lIHRo ZSByb3cgZmlsdGVyIGFuZCBjYWNoZSB0aGUgRXhwclN0YXRlICovCiAJCQlyZm5vZGUgPSBt YWtlX29yY2xhdXNlKGZpbHRlcnMpOwpkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvcmV3cml0 ZS9yZXdyaXRlSGFuZGxlci5jIGIvc3JjL2JhY2tlbmQvcmV3cml0ZS9yZXdyaXRlSGFuZGxl ci5jCmluZGV4IGFiMmUyY2Q2NDc2Li44ODliOTE1NmQ1ZSAxMDA2NDQKLS0tIGEvc3JjL2Jh Y2tlbmQvcmV3cml0ZS9yZXdyaXRlSGFuZGxlci5jCisrKyBiL3NyYy9iYWNrZW5kL3Jld3Jp dGUvcmV3cml0ZUhhbmRsZXIuYwpAQCAtOTYsNiArOTYsNyBAQCBzdGF0aWMgTGlzdCAqbWF0 Y2hMb2NrcyhDbWRUeXBlIGV2ZW50LCBSZWxhdGlvbiByZWxhdGlvbiwKIAkJCQkJCWludCB2 YXJubywgUXVlcnkgKnBhcnNldHJlZSwgYm9vbCAqaGFzVXBkYXRlKTsKIHN0YXRpYyBRdWVy eSAqZmlyZVJJUnJ1bGVzKFF1ZXJ5ICpwYXJzZXRyZWUsIExpc3QgKmFjdGl2ZVJJUnMpOwog c3RhdGljIEJpdG1hcHNldCAqYWRqdXN0X3ZpZXdfY29sdW1uX3NldChCaXRtYXBzZXQgKmNv bHMsIExpc3QgKnRhcmdldGxpc3QpOworc3RhdGljIE5vZGUgKmV4cGFuZF9nZW5lcmF0ZWRf Y29sdW1uc19pbnRlcm5hbChOb2RlICpub2RlLCBSZWxhdGlvbiByZWwsIGludCBydF9pbmRl eCwgUmFuZ2VUYmxFbnRyeSAqcnRlKTsKIAogCiAvKgpAQCAtOTgwLDcgKzk4MSw4IEBAIHJl d3JpdGVUYXJnZXRMaXN0SVUoTGlzdCAqdGFyZ2V0TGlzdCwKIAkJaWYgKGF0dF90dXAtPmF0 dGdlbmVyYXRlZCkKIAkJewogCQkJLyoKLQkJCSAqIHN0b3JlZCBnZW5lcmF0ZWQgY29sdW1u IHdpbGwgYmUgZml4ZWQgaW4gZXhlY3V0b3IKKwkJCSAqIHZpcnR1YWwgZ2VuZXJhdGVkIGNv bHVtbiBzdG9yZXMgYSBudWxsIHZhbHVlOyBzdG9yZWQgZ2VuZXJhdGVkCisJCQkgKiBjb2x1 bW4gd2lsbCBiZSBmaXhlZCBpbiBleGVjdXRvcgogCQkJICovCiAJCQluZXdfdGxlID0gTlVM TDsKIAkJfQpAQCAtMjIwMyw2ICsyMjA1LDEwIEBAIGZpcmVSSVJydWxlcyhRdWVyeSAqcGFy c2V0cmVlLCBMaXN0ICphY3RpdmVSSVJzKQogCSAqIHJlcXVpcmVzIHNwZWNpYWwgcmVjdXJz aW9uIGRldGVjdGlvbiBpZiB0aGUgbmV3IHF1YWxzIGhhdmUgc3VibGluawogCSAqIHN1YnF1 ZXJpZXMsIGFuZCBpZiB3ZSBkaWQgaXQgaW4gdGhlIGxvb3AgYWJvdmUgcXVlcnlfdHJlZV93 YWxrZXIgd291bGQKIAkgKiB0aGVuIHJlY3Vyc2UgaW50byB0aG9zZSBxdWFscyBhIHNlY29u ZCB0aW1lLgorCSAqCisJICogRmluYWxseSwgd2UgZXhwYW5kIGFueSB2aXJ0dWFsIGdlbmVy YXRlZCBjb2x1bW5zLiAgV2UgZG8gdGhpcyBhZnRlcgorCSAqIGVhY2ggdGFibGUncyBSTFMg cG9saWNpZXMgYXJlIGFwcGxpZWQgYmVjYXVzZSB0aGUgUkxTIHBvbGljaWVzIG1pZ2h0CisJ ICogYWxzbyByZWZlciB0byB0aGUgdGFibGUncyB2aXJ0dWFsIGdlbmVyYXRlZCBjb2x1bW5z LgogCSAqLwogCXJ0X2luZGV4ID0gMDsKIAlmb3JlYWNoKGxjLCBwYXJzZXRyZWUtPnJ0YWJs ZSkKQEAgLTIyMTYsMTAgKzIyMjIsMTEgQEAgZmlyZVJJUnJ1bGVzKFF1ZXJ5ICpwYXJzZXRy ZWUsIExpc3QgKmFjdGl2ZVJJUnMpCiAKIAkJKytydF9pbmRleDsKIAotCQkvKiBPbmx5IG5v cm1hbCByZWxhdGlvbnMgY2FuIGhhdmUgUkxTIHBvbGljaWVzICovCi0JCWlmIChydGUtPnJ0 ZWtpbmQgIT0gUlRFX1JFTEFUSU9OIHx8Ci0JCQkocnRlLT5yZWxraW5kICE9IFJFTEtJTkRf UkVMQVRJT04gJiYKLQkJCSBydGUtPnJlbGtpbmQgIT0gUkVMS0lORF9QQVJUSVRJT05FRF9U QUJMRSkpCisJCS8qCisJCSAqIE9ubHkgbm9ybWFsIHJlbGF0aW9ucyBjYW4gaGF2ZSBSTFMg cG9saWNpZXMgb3IgdmlydHVhbCBnZW5lcmF0ZWQKKwkJICogY29sdW1ucy4KKwkJICovCisJ CWlmIChydGUtPnJ0ZWtpbmQgIT0gUlRFX1JFTEFUSU9OKQogCQkJY29udGludWU7CiAKIAkJ cmVsID0gdGFibGVfb3BlbihydGUtPnJlbGlkLCBOb0xvY2spOwpAQCAtMjMwOCw2ICsyMzE1 LDE0IEBAIGZpcmVSSVJydWxlcyhRdWVyeSAqcGFyc2V0cmVlLCBMaXN0ICphY3RpdmVSSVJz KQogCQlpZiAoaGFzU3ViTGlua3MpCiAJCQlwYXJzZXRyZWUtPmhhc1N1YkxpbmtzID0gdHJ1 ZTsKIAorCQkvKgorCQkgKiBFeHBhbmQgYW55IHJlZmVyZW5jZXMgdG8gdmlydHVhbCBnZW5l cmF0ZWQgY29sdW1ucyBvZiB0aGlzIHRhYmxlLgorCQkgKiBOb3RlIHRoYXQgc3VicXVlcmll cyBpbiB2aXJ0dWFsIGdlbmVyYXRlZCBjb2x1bW4gZXhwcmVzc2lvbnMgYXJlCisJCSAqIG5v dCBjdXJyZW50bHkgc3VwcG9ydGVkLCBzbyB0aGlzIGNhbm5vdCBhZGQgYW55IG1vcmUgc3Vi bGlua3MuCisJCSAqLworCQlwYXJzZXRyZWUgPSAoUXVlcnkgKikgZXhwYW5kX2dlbmVyYXRl ZF9jb2x1bW5zX2ludGVybmFsKChOb2RlICopIHBhcnNldHJlZSwKKwkJCQkJCQkJCQkJCQkJ CQlyZWwsIHJ0X2luZGV4LCBydGUpOworCiAJCXRhYmxlX2Nsb3NlKHJlbCwgTm9Mb2NrKTsK IAl9CiAKQEAgLTQ0MTksNiArNDQzNCw5NiBAQCBSZXdyaXRlUXVlcnkoUXVlcnkgKnBhcnNl dHJlZSwgTGlzdCAqcmV3cml0ZV9ldmVudHMsIGludCBvcmlnX3J0X2xlbmd0aCkKIH0KIAog CisvKgorICogRXhwYW5kIHZpcnR1YWwgZ2VuZXJhdGVkIGNvbHVtbnMKKyAqCisgKiBJZiB0 aGUgdGFibGUgY29udGFpbnMgdmlydHVhbCBnZW5lcmF0ZWQgY29sdW1ucywgYnVpbGQgYSB0 YXJnZXQgbGlzdAorICogY29udGFpbmluZyB0aGUgZXhwYW5kZWQgZXhwcmVzc2lvbnMgYW5k IHVzZSBSZXBsYWNlVmFyc0Zyb21UYXJnZXRMaXN0KCkgdG8KKyAqIGRvIHRoZSByZXBsYWNl bWVudHMuCisgKi8KK3N0YXRpYyBOb2RlICoKK2V4cGFuZF9nZW5lcmF0ZWRfY29sdW1uc19p bnRlcm5hbChOb2RlICpub2RlLCBSZWxhdGlvbiByZWwsIGludCBydF9pbmRleCwgUmFuZ2VU YmxFbnRyeSAqcnRlKQoreworCVR1cGxlRGVzYwl0dXBkZXNjOworCisJdHVwZGVzYyA9IFJl bGF0aW9uR2V0RGVzY3IocmVsKTsKKwlpZiAodHVwZGVzYy0+Y29uc3RyICYmIHR1cGRlc2Mt PmNvbnN0ci0+aGFzX2dlbmVyYXRlZF92aXJ0dWFsKQorCXsKKwkJTGlzdAkgICAqdGxpc3Qg PSBOSUw7CisKKwkJZm9yIChpbnQgaSA9IDA7IGkgPCB0dXBkZXNjLT5uYXR0czsgaSsrKQor CQl7CisJCQlGb3JtX3BnX2F0dHJpYnV0ZSBhdHRyID0gVHVwbGVEZXNjQXR0cih0dXBkZXNj LCBpKTsKKworCQkJaWYgKGF0dHItPmF0dGdlbmVyYXRlZCA9PSBBVFRSSUJVVEVfR0VORVJB VEVEX1ZJUlRVQUwpCisJCQl7CisJCQkJTm9kZQkgICAqZGVmZXhwcjsKKwkJCQlpbnQJCQlh dHRudW0gPSBpICsgMTsKKwkJCQlPaWQJCQlhdHRjb2xsaWQ7CisJCQkJVGFyZ2V0RW50cnkg KnRlOworCisJCQkJZGVmZXhwciA9IGJ1aWxkX2NvbHVtbl9kZWZhdWx0KHJlbCwgYXR0bnVt KTsKKwkJCQlpZiAoZGVmZXhwciA9PSBOVUxMKQorCQkJCQllbG9nKEVSUk9SLCAibm8gZ2Vu ZXJhdGlvbiBleHByZXNzaW9uIGZvdW5kIGZvciBjb2x1bW4gbnVtYmVyICVkIG9mIHRhYmxl IFwiJXNcIiIsCisJCQkJCQkgYXR0bnVtLCBSZWxhdGlvbkdldFJlbGF0aW9uTmFtZShyZWwp KTsKKworCQkJCS8qCisJCQkJICogSWYgdGhlIGNvbHVtbiBkZWZpbml0aW9uIGhhcyBhIGNv bGxhdGlvbiBhbmQgaXQgaXMKKwkJCQkgKiBkaWZmZXJlbnQgZnJvbSB0aGUgY29sbGF0aW9u IG9mIHRoZSBnZW5lcmF0aW9uIGV4cHJlc3Npb24sCisJCQkJICogcHV0IGEgQ09MTEFURSBj bGF1c2UgYXJvdW5kIHRoZSBleHByZXNzaW9uLgorCQkJCSAqLworCQkJCWF0dGNvbGxpZCA9 IGF0dHItPmF0dGNvbGxhdGlvbjsKKwkJCQlpZiAoYXR0Y29sbGlkICYmIGF0dGNvbGxpZCAh PSBleHByQ29sbGF0aW9uKGRlZmV4cHIpKQorCQkJCXsKKwkJCQkJQ29sbGF0ZUV4cHIgKmNl ID0gbWFrZU5vZGUoQ29sbGF0ZUV4cHIpOworCisJCQkJCWNlLT5hcmcgPSAoRXhwciAqKSBk ZWZleHByOworCQkJCQljZS0+Y29sbE9pZCA9IGF0dGNvbGxpZDsKKwkJCQkJY2UtPmxvY2F0 aW9uID0gLTE7CisKKwkJCQkJZGVmZXhwciA9IChOb2RlICopIGNlOworCQkJCX0KKworCQkJ CUNoYW5nZVZhck5vZGVzKGRlZmV4cHIsIDEsIHJ0X2luZGV4LCAwKTsKKworCQkJCXRlID0g bWFrZVRhcmdldEVudHJ5KChFeHByICopIGRlZmV4cHIsIGF0dG51bSwgMCwgZmFsc2UpOwor CQkJCXRsaXN0ID0gbGFwcGVuZCh0bGlzdCwgdGUpOworCQkJfQorCQl9CisKKwkJQXNzZXJ0 KGxpc3RfbGVuZ3RoKHRsaXN0KSA+IDApOworCisJCW5vZGUgPSBSZXBsYWNlVmFyc0Zyb21U YXJnZXRMaXN0KG5vZGUsIHJ0X2luZGV4LCAwLCBydGUsIHRsaXN0LCBSRVBMQUNFVkFSU19D SEFOR0VfVkFSTk8sIHJ0X2luZGV4LCBOVUxMKTsKKwl9CisKKwlyZXR1cm4gbm9kZTsKK30K KworLyoKKyAqIEV4cGFuZCB2aXJ0dWFsIGdlbmVyYXRlZCBjb2x1bW5zIGluIGFuIGV4cHJl c3Npb24KKyAqCisgKiBUaGlzIGlzIGZvciBleHByZXNzaW9ucyB0aGF0IGFyZSBub3QgcGFy dCBvZiBhIHF1ZXJ5LCBzdWNoIGFzIGRlZmF1bHQKKyAqIGV4cHJlc3Npb25zIG9yIGluZGV4 IHByZWRpY2F0ZXMuICBUaGUgcnRfaW5kZXggaXMgdXN1YWxseSAxLgorICovCitOb2RlICoK K2V4cGFuZF9nZW5lcmF0ZWRfY29sdW1uc19pbl9leHByKE5vZGUgKm5vZGUsIFJlbGF0aW9u IHJlbCwgaW50IHJ0X2luZGV4KQoreworCVR1cGxlRGVzYwl0dXBkZXNjID0gUmVsYXRpb25H ZXREZXNjcihyZWwpOworCisJaWYgKHR1cGRlc2MtPmNvbnN0ciAmJiB0dXBkZXNjLT5jb25z dHItPmhhc19nZW5lcmF0ZWRfdmlydHVhbCkKKwl7CisJCVJhbmdlVGJsRW50cnkgKnJ0ZTsK KworCQlydGUgPSBtYWtlTm9kZShSYW5nZVRibEVudHJ5KTsKKwkJcnRlLT5yZWxpZCA9IFJl bGF0aW9uR2V0UmVsaWQocmVsKTsKKworCQlub2RlID0gZXhwYW5kX2dlbmVyYXRlZF9jb2x1 bW5zX2ludGVybmFsKG5vZGUsIHJlbCwgcnRfaW5kZXgsIHJ0ZSk7CisJfQorCisJcmV0dXJu IG5vZGU7Cit9CisKKwogLyoKICAqIFF1ZXJ5UmV3cml0ZSAtCiAgKgkgIFByaW1hcnkgZW50 cnkgcG9pbnQgdG8gdGhlIHF1ZXJ5IHJld3JpdGVyLgpkaWZmIC0tZ2l0IGEvc3JjL2JhY2tl bmQvdXRpbHMvY2FjaGUvcmVsY2FjaGUuYyBiL3NyYy9iYWNrZW5kL3V0aWxzL2NhY2hlL3Jl bGNhY2hlLmMKaW5kZXggZDA4OTJjZWUyNGQuLjY2ODkyNGU5Y2ViIDEwMDY0NAotLS0gYS9z cmMvYmFja2VuZC91dGlscy9jYWNoZS9yZWxjYWNoZS5jCisrKyBiL3NyYy9iYWNrZW5kL3V0 aWxzL2NhY2hlL3JlbGNhY2hlLmMKQEAgLTU5MCw2ICs1OTAsOCBAQCBSZWxhdGlvbkJ1aWxk VHVwbGVEZXNjKFJlbGF0aW9uIHJlbGF0aW9uKQogCQkJY29uc3RyLT5oYXNfbm90X251bGwg PSB0cnVlOwogCQlpZiAoYXR0cC0+YXR0Z2VuZXJhdGVkID09IEFUVFJJQlVURV9HRU5FUkFU RURfU1RPUkVEKQogCQkJY29uc3RyLT5oYXNfZ2VuZXJhdGVkX3N0b3JlZCA9IHRydWU7CisJ CWlmIChhdHRwLT5hdHRnZW5lcmF0ZWQgPT0gQVRUUklCVVRFX0dFTkVSQVRFRF9WSVJUVUFM KQorCQkJY29uc3RyLT5oYXNfZ2VuZXJhdGVkX3ZpcnR1YWwgPSB0cnVlOwogCQlpZiAoYXR0 cC0+YXR0aGFzZGVmKQogCQkJbmRlZisrOwogCkBAIC02ODYsNiArNjg4LDcgQEAgUmVsYXRp b25CdWlsZFR1cGxlRGVzYyhSZWxhdGlvbiByZWxhdGlvbikKIAkgKi8KIAlpZiAoY29uc3Ry LT5oYXNfbm90X251bGwgfHwKIAkJY29uc3RyLT5oYXNfZ2VuZXJhdGVkX3N0b3JlZCB8fAor CQljb25zdHItPmhhc19nZW5lcmF0ZWRfdmlydHVhbCB8fAogCQluZGVmID4gMCB8fAogCQlh dHRybWlzcyB8fAogCQlyZWxhdGlvbi0+cmRfcmVsLT5yZWxjaGVja3MgPiAwKQpkaWZmIC0t Z2l0IGEvc3JjL2Jpbi9wZ19kdW1wL3BnX2R1bXAuYyBiL3NyYy9iaW4vcGdfZHVtcC9wZ19k dW1wLmMKaW5kZXggYWRkN2YxNmM5MDIuLjIzZTg1YmRjYmVmIDEwMDY0NAotLS0gYS9zcmMv YmluL3BnX2R1bXAvcGdfZHVtcC5jCisrKyBiL3NyYy9iaW4vcGdfZHVtcC9wZ19kdW1wLmMK QEAgLTE2MTg4LDYgKzE2MTg4LDkgQEAgZHVtcFRhYmxlU2NoZW1hKEFyY2hpdmUgKmZvdXQs IGNvbnN0IFRhYmxlSW5mbyAqdGJpbmZvKQogCQkJCQkJaWYgKHRiaW5mby0+YXR0Z2VuZXJh dGVkW2pdID09IEFUVFJJQlVURV9HRU5FUkFURURfU1RPUkVEKQogCQkJCQkJCWFwcGVuZFBR RXhwQnVmZmVyKHEsICIgR0VORVJBVEVEIEFMV0FZUyBBUyAoJXMpIFNUT1JFRCIsCiAJCQkJ CQkJCQkJCSAgdGJpbmZvLT5hdHRyZGVmc1tqXS0+YWRlZl9leHByKTsKKwkJCQkJCWVsc2Ug aWYgKHRiaW5mby0+YXR0Z2VuZXJhdGVkW2pdID09IEFUVFJJQlVURV9HRU5FUkFURURfVklS VFVBTCkKKwkJCQkJCQlhcHBlbmRQUUV4cEJ1ZmZlcihxLCAiIEdFTkVSQVRFRCBBTFdBWVMg QVMgKCVzKSIsCisJCQkJCQkJCQkJCSAgdGJpbmZvLT5hdHRyZGVmc1tqXS0+YWRlZl9leHBy KTsKIAkJCQkJCWVsc2UKIAkJCQkJCQlhcHBlbmRQUUV4cEJ1ZmZlcihxLCAiIERFRkFVTFQg JXMiLAogCQkJCQkJCQkJCQkgIHRiaW5mby0+YXR0cmRlZnNbal0tPmFkZWZfZXhwcik7CmRp ZmYgLS1naXQgYS9zcmMvYmluL3BnX2R1bXAvdC8wMDJfcGdfZHVtcC5wbCBiL3NyYy9iaW4v cGdfZHVtcC90LzAwMl9wZ19kdW1wLnBsCmluZGV4IGFhMTU2NGNkNDUwLi44ZmM5ODFkNTJl OSAxMDA2NDQKLS0tIGEvc3JjL2Jpbi9wZ19kdW1wL3QvMDAyX3BnX2R1bXAucGwKKysrIGIv c3JjL2Jpbi9wZ19kdW1wL3QvMDAyX3BnX2R1bXAucGwKQEAgLTM2NDEsMTIgKzM2NDEsMTQg QEAKIAkJY3JlYXRlX29yZGVyID0+IDMsCiAJCWNyZWF0ZV9zcWwgPT4gJ0NSRUFURSBUQUJM RSBkdW1wX3Rlc3QudGVzdF90YWJsZV9nZW5lcmF0ZWQgKAogCQkJCQkJICAgY29sMSBpbnQg cHJpbWFyeSBrZXksCi0JCQkJCQkgICBjb2wyIGludCBnZW5lcmF0ZWQgYWx3YXlzIGFzIChj b2wxICogMikgc3RvcmVkCisJCQkJCQkgICBjb2wyIGludCBnZW5lcmF0ZWQgYWx3YXlzIGFz IChjb2wxICogMikgc3RvcmVkLAorCQkJCQkJICAgY29sMyBpbnQgZ2VuZXJhdGVkIGFsd2F5 cyBhcyAoY29sMSAqIDMpIHZpcnR1YWwKIAkJCQkJICAgKTsnLAogCQlyZWdleHAgPT4gcXIv XgogCQkJXFFDUkVBVEUgVEFCTEUgZHVtcF90ZXN0LnRlc3RfdGFibGVfZ2VuZXJhdGVkIChc RVxuCiAJCQlccytcUWNvbDEgaW50ZWdlciBOT1QgTlVMTCxcRVxuCi0JCQlccytcUWNvbDIg aW50ZWdlciBHRU5FUkFURUQgQUxXQVlTIEFTICgoY29sMSAqIDIpKSBTVE9SRURcRVxuCisJ CQlccytcUWNvbDIgaW50ZWdlciBHRU5FUkFURUQgQUxXQVlTIEFTICgoY29sMSAqIDIpKSBT VE9SRUQsXEVcbgorCQkJXHMrXFFjb2wzIGludGVnZXIgR0VORVJBVEVEIEFMV0FZUyBBUyAo KGNvbDEgKiAzKSlcRVxuCiAJCQlcKTsKIAkJCS94bXMsCiAJCWxpa2UgPT4KZGlmZiAtLWdp dCBhL3NyYy9iaW4vcHNxbC9kZXNjcmliZS5jIGIvc3JjL2Jpbi9wc3FsL2Rlc2NyaWJlLmMK aW5kZXggMGFhMzk5MDZhMTEuLjgwZGVjNzI5MWE5IDEwMDY0NAotLS0gYS9zcmMvYmluL3Bz cWwvZGVzY3JpYmUuYworKysgYi9zcmMvYmluL3BzcWwvZGVzY3JpYmUuYwpAQCAtMjEwNiw2 ICsyMTA2LDEyIEBAIGRlc2NyaWJlT25lVGFibGVEZXRhaWxzKGNvbnN0IGNoYXIgKnNjaGVt YW5hbWUsCiAJCQkJCQkJCQkgICBQUWdldHZhbHVlKHJlcywgaSwgYXR0cmRlZl9jb2wpKTsK IAkJCQltdXN0ZnJlZSA9IHRydWU7CiAJCQl9CisJCQllbHNlIGlmIChnZW5lcmF0ZWRbMF0g PT0gQVRUUklCVVRFX0dFTkVSQVRFRF9WSVJUVUFMKQorCQkJeworCQkJCWRlZmF1bHRfc3Ry ID0gcHNwcmludGYoImdlbmVyYXRlZCBhbHdheXMgYXMgKCVzKSIsCisJCQkJCQkJCQkgICBQ UWdldHZhbHVlKHJlcywgaSwgYXR0cmRlZl9jb2wpKTsKKwkJCQltdXN0ZnJlZSA9IHRydWU7 CisJCQl9CiAJCQllbHNlCiAJCQkJZGVmYXVsdF9zdHIgPSBQUWdldHZhbHVlKHJlcywgaSwg YXR0cmRlZl9jb2wpOwogCmRpZmYgLS1naXQgYS9zcmMvaW5jbHVkZS9hY2Nlc3MvdHVwZGVz Yy5oIGIvc3JjL2luY2x1ZGUvYWNjZXNzL3R1cGRlc2MuaAppbmRleCA4OTMwYTI4ZDY2MC4u NmVmNDAyNDk1ODMgMTAwNjQ0Ci0tLSBhL3NyYy9pbmNsdWRlL2FjY2Vzcy90dXBkZXNjLmgK KysrIGIvc3JjL2luY2x1ZGUvYWNjZXNzL3R1cGRlc2MuaApAQCAtNDMsNiArNDMsNyBAQCB0 eXBlZGVmIHN0cnVjdCBUdXBsZUNvbnN0cgogCXVpbnQxNgkJbnVtX2NoZWNrOwogCWJvb2wJ CWhhc19ub3RfbnVsbDsKIAlib29sCQloYXNfZ2VuZXJhdGVkX3N0b3JlZDsKKwlib29sCQlo YXNfZ2VuZXJhdGVkX3ZpcnR1YWw7CiB9IFR1cGxlQ29uc3RyOwogCiAvKgpkaWZmIC0tZ2l0 IGEvc3JjL2luY2x1ZGUvY2F0YWxvZy9oZWFwLmggYi9zcmMvaW5jbHVkZS9jYXRhbG9nL2hl YXAuaAppbmRleCA4YzI3OGYyMDJiNC4uZWM5NWQ5YmE3ZjEgMTAwNjQ0Ci0tLSBhL3NyYy9p bmNsdWRlL2NhdGFsb2cvaGVhcC5oCisrKyBiL3NyYy9pbmNsdWRlL2NhdGFsb2cvaGVhcC5o CkBAIC0yMyw2ICsyMyw3IEBACiAjZGVmaW5lIENIS0FUWVBFX0FOWUFSUkFZCQkweDAxCS8q IGFsbG93IEFOWUFSUkFZICovCiAjZGVmaW5lIENIS0FUWVBFX0FOWVJFQ09SRAkJMHgwMgkv KiBhbGxvdyBSRUNPUkQgYW5kIFJFQ09SRFtdICovCiAjZGVmaW5lIENIS0FUWVBFX0lTX1BB UlRLRVkJCTB4MDQJLyogYXR0bmFtZSBpcyBwYXJ0IGtleSAjIG5vdCBjb2x1bW4gKi8KKyNk ZWZpbmUgQ0hLQVRZUEVfSVNfVklSVFVBTAkJMHgwOAkvKiBpcyB2aXJ0dWFsIGdlbmVyYXRl ZCBjb2x1bW4gKi8KIAogdHlwZWRlZiBzdHJ1Y3QgUmF3Q29sdW1uRGVmYXVsdAogewpkaWZm IC0tZ2l0IGEvc3JjL2luY2x1ZGUvY2F0YWxvZy9wZ19hdHRyaWJ1dGUuaCBiL3NyYy9pbmNs dWRlL2NhdGFsb2cvcGdfYXR0cmlidXRlLmgKaW5kZXggMWM2MmI4YmZjYjUuLjhmMTU4ZGM2 MDgzIDEwMDY0NAotLS0gYS9zcmMvaW5jbHVkZS9jYXRhbG9nL3BnX2F0dHJpYnV0ZS5oCisr KyBiL3NyYy9pbmNsdWRlL2NhdGFsb2cvcGdfYXR0cmlidXRlLmgKQEAgLTIzNCw2ICsyMzQs NyBAQCBNQUtFX1NZU0NBQ0hFKEFUVE5VTSwgcGdfYXR0cmlidXRlX3JlbGlkX2F0dG51bV9p bmRleCwgMTI4KTsKICNkZWZpbmUJCSAgQVRUUklCVVRFX0lERU5USVRZX0JZX0RFRkFVTFQg J2QnCiAKICNkZWZpbmUJCSAgQVRUUklCVVRFX0dFTkVSQVRFRF9TVE9SRUQJJ3MnCisjZGVm aW5lCQkgIEFUVFJJQlVURV9HRU5FUkFURURfVklSVFVBTAkndicKIAogI2VuZGlmCQkJCQkJ CS8qIEVYUE9TRV9UT19DTElFTlRfQ09ERSAqLwogCmRpZmYgLS1naXQgYS9zcmMvaW5jbHVk ZS9leGVjdXRvci9ub2RlTW9kaWZ5VGFibGUuaCBiL3NyYy9pbmNsdWRlL2V4ZWN1dG9yL25v ZGVNb2RpZnlUYWJsZS5oCmluZGV4IDY4MWNkYWE4OWRiLi4wZDhhNWY2NjEzMSAxMDA2NDQK LS0tIGEvc3JjL2luY2x1ZGUvZXhlY3V0b3Ivbm9kZU1vZGlmeVRhYmxlLmgKKysrIGIvc3Jj L2luY2x1ZGUvZXhlY3V0b3Ivbm9kZU1vZGlmeVRhYmxlLmgKQEAgLTE1LDkgKzE1LDkgQEAK IAogI2luY2x1ZGUgIm5vZGVzL2V4ZWNub2Rlcy5oIgogCi1leHRlcm4gdm9pZCBFeGVjSW5p dFN0b3JlZEdlbmVyYXRlZChSZXN1bHRSZWxJbmZvICpyZXN1bHRSZWxJbmZvLAotCQkJCQkJ CQkJRVN0YXRlICplc3RhdGUsCi0JCQkJCQkJCQlDbWRUeXBlIGNtZHR5cGUpOworZXh0ZXJu IHZvaWQgRXhlY0luaXRHZW5lcmF0ZWQoUmVzdWx0UmVsSW5mbyAqcmVzdWx0UmVsSW5mbywK KwkJCQkJCQkgIEVTdGF0ZSAqZXN0YXRlLAorCQkJCQkJCSAgQ21kVHlwZSBjbWR0eXBlKTsK IAogZXh0ZXJuIHZvaWQgRXhlY0NvbXB1dGVTdG9yZWRHZW5lcmF0ZWQoUmVzdWx0UmVsSW5m byAqcmVzdWx0UmVsSW5mbywKIAkJCQkJCQkJCSAgIEVTdGF0ZSAqZXN0YXRlLCBUdXBsZVRh YmxlU2xvdCAqc2xvdCwKZGlmZiAtLWdpdCBhL3NyYy9pbmNsdWRlL25vZGVzL2V4ZWNub2Rl cy5oIGIvc3JjL2luY2x1ZGUvbm9kZXMvZXhlY25vZGVzLmgKaW5kZXggMTgyYTY5NTZiYjAu LjVhY2YzYzI5ZGVjIDEwMDY0NAotLS0gYS9zcmMvaW5jbHVkZS9ub2Rlcy9leGVjbm9kZXMu aAorKysgYi9zcmMvaW5jbHVkZS9ub2Rlcy9leGVjbm9kZXMuaApAQCAtNTQwLDYgKzU0MCw5 IEBAIHR5cGVkZWYgc3RydWN0IFJlc3VsdFJlbEluZm8KIAlpbnQJCQlyaV9OdW1HZW5lcmF0 ZWROZWVkZWRJOwogCWludAkJCXJpX051bUdlbmVyYXRlZE5lZWRlZFU7CiAKKwkvKiB0cnVl IGlmIHRoZSBhYm92ZSBoYXZlIGJlZW4gY29tcHV0ZWQgKi8KKwlib29sCQlyaV9HZW5lcmF0 ZWRfdmFsaWQ7CisKIAkvKiBsaXN0IG9mIFJFVFVSTklORyBleHByZXNzaW9ucyAqLwogCUxp c3QJICAgKnJpX3JldHVybmluZ0xpc3Q7CiAKZGlmZiAtLWdpdCBhL3NyYy9pbmNsdWRlL25v ZGVzL3BhcnNlbm9kZXMuaCBiL3NyYy9pbmNsdWRlL25vZGVzL3BhcnNlbm9kZXMuaAppbmRl eCAwZjk0NjI0OTNlMy4uMDcyMDRiN2JmNjIgMTAwNjQ0Ci0tLSBhL3NyYy9pbmNsdWRlL25v ZGVzL3BhcnNlbm9kZXMuaAorKysgYi9zcmMvaW5jbHVkZS9ub2Rlcy9wYXJzZW5vZGVzLmgK QEAgLTI3NjUsNiArMjc2NSw3IEBAIHR5cGVkZWYgc3RydWN0IENvbnN0cmFpbnQKIAljaGFy CSAgICpjb29rZWRfZXhwcjsJLyogQ0hFQ0sgb3IgREVGQVVMVCBleHByZXNzaW9uLCBhcwog CQkJCQkJCQkgKiBub2RlVG9TdHJpbmcgcmVwcmVzZW50YXRpb24gKi8KIAljaGFyCQlnZW5l cmF0ZWRfd2hlbjsgLyogQUxXQVlTIG9yIEJZIERFRkFVTFQgKi8KKwljaGFyCQlnZW5lcmF0 ZWRfa2luZDsgLyogU1RPUkVEIG9yIFZJUlRVQUwgKi8KIAlib29sCQludWxsc19ub3RfZGlz dGluY3Q7IC8qIG51bGwgdHJlYXRtZW50IGZvciBVTklRVUUgY29uc3RyYWludHMgKi8KIAlM aXN0CSAgICprZXlzOwkJCS8qIFN0cmluZyBub2RlcyBuYW1pbmcgcmVmZXJlbmNlZCBrZXkK IAkJCQkJCQkJICogY29sdW1uKHMpOyBmb3IgVU5JUVVFL1BLL05PVCBOVUxMICovCmRpZmYg LS1naXQgYS9zcmMvaW5jbHVkZS9wYXJzZXIva3dsaXN0LmggYi9zcmMvaW5jbHVkZS9wYXJz ZXIva3dsaXN0LmgKaW5kZXggODk5ZDY0YWQ1NWYuLmVmZTI1ZDdkZTBmIDEwMDY0NAotLS0g YS9zcmMvaW5jbHVkZS9wYXJzZXIva3dsaXN0LmgKKysrIGIvc3JjL2luY2x1ZGUvcGFyc2Vy L2t3bGlzdC5oCkBAIC00OTAsNiArNDkwLDcgQEAgUEdfS0VZV09SRCgidmVyYm9zZSIsIFZF UkJPU0UsIFRZUEVfRlVOQ19OQU1FX0tFWVdPUkQsIEJBUkVfTEFCRUwpCiBQR19LRVlXT1JE KCJ2ZXJzaW9uIiwgVkVSU0lPTl9QLCBVTlJFU0VSVkVEX0tFWVdPUkQsIEJBUkVfTEFCRUwp CiBQR19LRVlXT1JEKCJ2aWV3IiwgVklFVywgVU5SRVNFUlZFRF9LRVlXT1JELCBCQVJFX0xB QkVMKQogUEdfS0VZV09SRCgidmlld3MiLCBWSUVXUywgVU5SRVNFUlZFRF9LRVlXT1JELCBC QVJFX0xBQkVMKQorUEdfS0VZV09SRCgidmlydHVhbCIsIFZJUlRVQUwsIFVOUkVTRVJWRURf S0VZV09SRCwgQkFSRV9MQUJFTCkKIFBHX0tFWVdPUkQoInZvbGF0aWxlIiwgVk9MQVRJTEUs IFVOUkVTRVJWRURfS0VZV09SRCwgQkFSRV9MQUJFTCkKIFBHX0tFWVdPUkQoIndoZW4iLCBX SEVOLCBSRVNFUlZFRF9LRVlXT1JELCBCQVJFX0xBQkVMKQogUEdfS0VZV09SRCgid2hlcmUi LCBXSEVSRSwgUkVTRVJWRURfS0VZV09SRCwgQVNfTEFCRUwpCmRpZmYgLS1naXQgYS9zcmMv aW5jbHVkZS9yZXdyaXRlL3Jld3JpdGVIYW5kbGVyLmggYi9zcmMvaW5jbHVkZS9yZXdyaXRl L3Jld3JpdGVIYW5kbGVyLmgKaW5kZXggMWI2NWNkYTcxY2YuLjhlYzg3OTE5M2UyIDEwMDY0 NAotLS0gYS9zcmMvaW5jbHVkZS9yZXdyaXRlL3Jld3JpdGVIYW5kbGVyLmgKKysrIGIvc3Jj L2luY2x1ZGUvcmV3cml0ZS9yZXdyaXRlSGFuZGxlci5oCkBAIC0zOCw0ICszOCw2IEBAIGV4 dGVybiB2b2lkIGVycm9yX3ZpZXdfbm90X3VwZGF0YWJsZShSZWxhdGlvbiB2aWV3LAogCQkJ CQkJCQkJIExpc3QgKm1lcmdlQWN0aW9uTGlzdCwKIAkJCQkJCQkJCSBjb25zdCBjaGFyICpk ZXRhaWwpOwogCitleHRlcm4gTm9kZSAqZXhwYW5kX2dlbmVyYXRlZF9jb2x1bW5zX2luX2V4 cHIoTm9kZSAqbm9kZSwgUmVsYXRpb24gcmVsLCBpbnQgcnRfaW5kZXgpOworCiAjZW5kaWYJ CQkJCQkJLyogUkVXUklURUhBTkRMRVJfSCAqLwpkaWZmIC0tZ2l0IGEvc3JjL3BsL3BscGVy bC9leHBlY3RlZC9wbHBlcmxfdHJpZ2dlci5vdXQgYi9zcmMvcGwvcGxwZXJsL2V4cGVjdGVk L3BscGVybF90cmlnZ2VyLm91dAppbmRleCBkNDg3OWUyZjAzYi4uNDJjNTJlY2JiYTggMTAw NjQ0Ci0tLSBhL3NyYy9wbC9wbHBlcmwvZXhwZWN0ZWQvcGxwZXJsX3RyaWdnZXIub3V0Cisr KyBiL3NyYy9wbC9wbHBlcmwvZXhwZWN0ZWQvcGxwZXJsX3RyaWdnZXIub3V0CkBAIC04LDcg KzgsOCBAQCBDUkVBVEUgVEFCTEUgdHJpZ2dlcl90ZXN0ICgKICk7CiBDUkVBVEUgVEFCTEUg dHJpZ2dlcl90ZXN0X2dlbmVyYXRlZCAoCiAgICAgaSBpbnQsCi0gICAgaiBpbnQgR0VORVJB VEVEIEFMV0FZUyBBUyAoaSAqIDIpIFNUT1JFRAorICAgIGogaW50IEdFTkVSQVRFRCBBTFdB WVMgQVMgKGkgKiAyKSBTVE9SRUQsCisgICAgayBpbnQgR0VORVJBVEVEIEFMV0FZUyBBUyAo aSAqIDMpIFZJUlRVQUwKICk7CiBDUkVBVEUgT1IgUkVQTEFDRSBGVU5DVElPTiB0cmlnZ2Vy X2RhdGEoKSBSRVRVUk5TIHRyaWdnZXIgTEFOR1VBR0UgcGxwZXJsIEFTICQkCiAKQEAgLTM4 Niw3ICszODcsNyBAQCBJTlNFUlQgSU5UTyB0cmlnZ2VyX3Rlc3RfZ2VuZXJhdGVkIChpKSBW QUxVRVMgKDEpOwogRVJST1I6ICBjYW5ub3Qgc2V0IGdlbmVyYXRlZCBjb2x1bW4gImoiCiBD T05URVhUOiAgUEwvUGVybCBmdW5jdGlvbiAiZ2VuZXJhdGVkX3Rlc3RfZnVuYzEiCiBTRUxF Q1QgKiBGUk9NIHRyaWdnZXJfdGVzdF9nZW5lcmF0ZWQ7Ci0gaSB8IGogCi0tLS0rLS0tCisg aSB8IGogfCBrIAorLS0tKy0tLSstLS0KICgwIHJvd3MpCiAKZGlmZiAtLWdpdCBhL3NyYy9w bC9wbHBlcmwvcGxwZXJsLmMgYi9zcmMvcGwvcGxwZXJsL3BscGVybC5jCmluZGV4IDFiMTY3 N2UzMzNiLi5lYmY1NWZlNjYzYyAxMDA2NDQKLS0tIGEvc3JjL3BsL3BscGVybC9wbHBlcmwu YworKysgYi9zcmMvcGwvcGxwZXJsL3BscGVybC5jCkBAIC0zMDQ3LDYgKzMwNDcsOSBAQCBw bHBlcmxfaGFzaF9mcm9tX3R1cGxlKEhlYXBUdXBsZSB0dXBsZSwgVHVwbGVEZXNjIHR1cGRl c2MsIGJvb2wgaW5jbHVkZV9nZW5lcmF0ZQogCQkJLyogZG9uJ3QgaW5jbHVkZSB1bmxlc3Mg cmVxdWVzdGVkICovCiAJCQlpZiAoIWluY2x1ZGVfZ2VuZXJhdGVkKQogCQkJCWNvbnRpbnVl OworCQkJLyogbmV2ZXIgaW5jbHVkZSB2aXJ0dWFsIGNvbHVtbnMgKi8KKwkJCWlmIChhdHQt PmF0dGdlbmVyYXRlZCA9PSBBVFRSSUJVVEVfR0VORVJBVEVEX1ZJUlRVQUwpCisJCQkJY29u dGludWU7CiAJCX0KIAogCQlhdHRuYW1lID0gTmFtZVN0cihhdHQtPmF0dG5hbWUpOwpkaWZm IC0tZ2l0IGEvc3JjL3BsL3BscGVybC9zcWwvcGxwZXJsX3RyaWdnZXIuc3FsIGIvc3JjL3Bs L3BscGVybC9zcWwvcGxwZXJsX3RyaWdnZXIuc3FsCmluZGV4IDRhZGRkZWI4MGFjLi4yNzk4 YTAyZmExMiAxMDA2NDQKLS0tIGEvc3JjL3BsL3BscGVybC9zcWwvcGxwZXJsX3RyaWdnZXIu c3FsCisrKyBiL3NyYy9wbC9wbHBlcmwvc3FsL3BscGVybF90cmlnZ2VyLnNxbApAQCAtMTAs NyArMTAsOCBAQCBDUkVBVEUgVEFCTEUgdHJpZ2dlcl90ZXN0ICgKIAogQ1JFQVRFIFRBQkxF IHRyaWdnZXJfdGVzdF9nZW5lcmF0ZWQgKAogICAgIGkgaW50LAotICAgIGogaW50IEdFTkVS QVRFRCBBTFdBWVMgQVMgKGkgKiAyKSBTVE9SRUQKKyAgICBqIGludCBHRU5FUkFURUQgQUxX QVlTIEFTIChpICogMikgU1RPUkVELAorICAgIGsgaW50IEdFTkVSQVRFRCBBTFdBWVMgQVMg KGkgKiAzKSBWSVJUVUFMCiApOwogCiBDUkVBVEUgT1IgUkVQTEFDRSBGVU5DVElPTiB0cmln Z2VyX2RhdGEoKSBSRVRVUk5TIHRyaWdnZXIgTEFOR1VBR0UgcGxwZXJsIEFTICQkCmRpZmYg LS1naXQgYS9zcmMvcGwvcGxweXRob24vZXhwZWN0ZWQvcGxweXRob25fdHJpZ2dlci5vdXQg Yi9zcmMvcGwvcGxweXRob24vZXhwZWN0ZWQvcGxweXRob25fdHJpZ2dlci5vdXQKaW5kZXgg NGNiOTBjYjUyMDQuLjY0ZWFiMmZhM2Y0IDEwMDY0NAotLS0gYS9zcmMvcGwvcGxweXRob24v ZXhwZWN0ZWQvcGxweXRob25fdHJpZ2dlci5vdXQKKysrIGIvc3JjL3BsL3BscHl0aG9uL2V4 cGVjdGVkL3BscHl0aG9uX3RyaWdnZXIub3V0CkBAIC02OSw3ICs2OSw4IEBAIENSRUFURSBU QUJMRSB0cmlnZ2VyX3Rlc3QKIAkoaSBpbnQsIHYgdGV4dCApOwogQ1JFQVRFIFRBQkxFIHRy aWdnZXJfdGVzdF9nZW5lcmF0ZWQgKAogCWkgaW50LAotICAgICAgICBqIGludCBHRU5FUkFU RUQgQUxXQVlTIEFTIChpICogMikgU1RPUkVECisgICAgICAgIGogaW50IEdFTkVSQVRFRCBB TFdBWVMgQVMgKGkgKiAyKSBTVE9SRUQsCisgICAgICAgIGsgaW50IEdFTkVSQVRFRCBBTFdB WVMgQVMgKGkgKiAzKSBWSVJUVUFMCiApOwogQ1JFQVRFIEZVTkNUSU9OIHRyaWdnZXJfZGF0 YSgpIFJFVFVSTlMgdHJpZ2dlciBMQU5HVUFHRSBwbHB5dGhvbjN1IEFTICQkCiAKQEAgLTYx NCw4ICs2MTUsOCBAQCBFUlJPUjogIGNhbm5vdCBzZXQgZ2VuZXJhdGVkIGNvbHVtbiAiaiIK IENPTlRFWFQ6ICB3aGlsZSBtb2RpZnlpbmcgdHJpZ2dlciByb3cKIFBML1B5dGhvbiBmdW5j dGlvbiAiZ2VuZXJhdGVkX3Rlc3RfZnVuYzEiCiBTRUxFQ1QgKiBGUk9NIHRyaWdnZXJfdGVz dF9nZW5lcmF0ZWQ7Ci0gaSB8IGogCi0tLS0rLS0tCisgaSB8IGogfCBrIAorLS0tKy0tLSst LS0KICgwIHJvd3MpCiAKIC0tIHJlY3Vyc2l2ZSBjYWxsIG9mIGEgdHJpZ2dlciBtdXN0bid0 IGNvcnJ1cHQgVEQgKGJ1ZyAjMTg0NTYpCmRpZmYgLS1naXQgYS9zcmMvcGwvcGxweXRob24v cGxweV90eXBlaW8uYyBiL3NyYy9wbC9wbHB5dGhvbi9wbHB5X3R5cGVpby5jCmluZGV4IGRi MTRjNWY4ZGFlLi41MWUxZDYxMDI1OSAxMDA2NDQKLS0tIGEvc3JjL3BsL3BscHl0aG9uL3Bs cHlfdHlwZWlvLmMKKysrIGIvc3JjL3BsL3BscHl0aG9uL3BscHlfdHlwZWlvLmMKQEAgLTg0 NCw2ICs4NDQsOSBAQCBQTHlEaWN0X0Zyb21UdXBsZShQTHlEYXR1bVRvT2IgKmFyZywgSGVh cFR1cGxlIHR1cGxlLCBUdXBsZURlc2MgZGVzYywgYm9vbCBpbmNsdQogCQkJCS8qIGRvbid0 IGluY2x1ZGUgdW5sZXNzIHJlcXVlc3RlZCAqLwogCQkJCWlmICghaW5jbHVkZV9nZW5lcmF0 ZWQpCiAJCQkJCWNvbnRpbnVlOworCQkJCS8qIG5ldmVyIGluY2x1ZGUgdmlydHVhbCBjb2x1 bW5zICovCisJCQkJaWYgKGF0dHItPmF0dGdlbmVyYXRlZCA9PSBBVFRSSUJVVEVfR0VORVJB VEVEX1ZJUlRVQUwpCisJCQkJCWNvbnRpbnVlOwogCQkJfQogCiAJCQlrZXkgPSBOYW1lU3Ry KGF0dHItPmF0dG5hbWUpOwpkaWZmIC0tZ2l0IGEvc3JjL3BsL3BscHl0aG9uL3NxbC9wbHB5 dGhvbl90cmlnZ2VyLnNxbCBiL3NyYy9wbC9wbHB5dGhvbi9zcWwvcGxweXRob25fdHJpZ2dl ci5zcWwKaW5kZXggZjZjMmVmOGQ2YTAuLjQ0MDU0OWMwNzg1IDEwMDY0NAotLS0gYS9zcmMv cGwvcGxweXRob24vc3FsL3BscHl0aG9uX3RyaWdnZXIuc3FsCisrKyBiL3NyYy9wbC9wbHB5 dGhvbi9zcWwvcGxweXRob25fdHJpZ2dlci5zcWwKQEAgLTY5LDcgKzY5LDggQEAgQ1JFQVRF IFRBQkxFIHRyaWdnZXJfdGVzdAogCiBDUkVBVEUgVEFCTEUgdHJpZ2dlcl90ZXN0X2dlbmVy YXRlZCAoCiAJaSBpbnQsCi0gICAgICAgIGogaW50IEdFTkVSQVRFRCBBTFdBWVMgQVMgKGkg KiAyKSBTVE9SRUQKKyAgICAgICAgaiBpbnQgR0VORVJBVEVEIEFMV0FZUyBBUyAoaSAqIDIp IFNUT1JFRCwKKyAgICAgICAgayBpbnQgR0VORVJBVEVEIEFMV0FZUyBBUyAoaSAqIDMpIFZJ UlRVQUwKICk7CiAKIENSRUFURSBGVU5DVElPTiB0cmlnZ2VyX2RhdGEoKSBSRVRVUk5TIHRy aWdnZXIgTEFOR1VBR0UgcGxweXRob24zdSBBUyAkJApkaWZmIC0tZ2l0IGEvc3JjL3BsL3Rj bC9leHBlY3RlZC9wbHRjbF90cmlnZ2VyLm91dCBiL3NyYy9wbC90Y2wvZXhwZWN0ZWQvcGx0 Y2xfdHJpZ2dlci5vdXQKaW5kZXggMTI5YWJkNWJhNjcuLjUyOThlNTBhNWVjIDEwMDY0NAot LS0gYS9zcmMvcGwvdGNsL2V4cGVjdGVkL3BsdGNsX3RyaWdnZXIub3V0CisrKyBiL3NyYy9w bC90Y2wvZXhwZWN0ZWQvcGx0Y2xfdHJpZ2dlci5vdXQKQEAgLTYzLDcgKzYzLDggQEAgQ1JF QVRFIFRBQkxFIHRyaWdnZXJfdGVzdCAoCiBBTFRFUiBUQUJMRSB0cmlnZ2VyX3Rlc3QgRFJP UCBkcm9wbWU7CiBDUkVBVEUgVEFCTEUgdHJpZ2dlcl90ZXN0X2dlbmVyYXRlZCAoCiAgICBp IGludCwKLSAgIGogaW50IEdFTkVSQVRFRCBBTFdBWVMgQVMgKGkgKiAyKSBTVE9SRUQKKyAg IGogaW50IEdFTkVSQVRFRCBBTFdBWVMgQVMgKGkgKiAyKSBTVE9SRUQsCisgICBrIGludCBH RU5FUkFURUQgQUxXQVlTIEFTIChpICogMykgVklSVFVBTAogKTsKIENSRUFURSBWSUVXIHRy aWdnZXJfdGVzdF92aWV3IEFTIFNFTEVDVCBpLCB2IEZST00gdHJpZ2dlcl90ZXN0OwogQ1JF QVRFIEZVTkNUSU9OIHRyaWdnZXJfZGF0YSgpIHJldHVybnMgdHJpZ2dlciBsYW5ndWFnZSBw bHRjbCBhcyAkXyQKQEAgLTY0Nyw3ICs2NDgsNyBAQCBOT1RJQ0U6ICBPTEQ6IHt9CiBOT1RJ Q0U6ICBUR19sZXZlbDogUk9XCiBOT1RJQ0U6ICBUR19uYW1lOiBzaG93X3RyaWdnZXJfZGF0 YV90cmlnX2JlZm9yZQogTk9USUNFOiAgVEdfb3A6IElOU0VSVAotTk9USUNFOiAgVEdfcmVs YXR0czoge3t9IGkgan0KK05PVElDRTogIFRHX3JlbGF0dHM6IHt7fSBpIGoga30KIE5PVElD RTogIFRHX3JlbGlkOiBib2d1czoxMjM0NQogTk9USUNFOiAgVEdfdGFibGVfbmFtZTogdHJp Z2dlcl90ZXN0X2dlbmVyYXRlZAogTk9USUNFOiAgVEdfdGFibGVfc2NoZW1hOiBwdWJsaWMK QEAgLTY1OCw3ICs2NTksNyBAQCBOT1RJQ0U6ICBPTEQ6IHt9CiBOT1RJQ0U6ICBUR19sZXZl bDogUk9XCiBOT1RJQ0U6ICBUR19uYW1lOiBzaG93X3RyaWdnZXJfZGF0YV90cmlnX2FmdGVy CiBOT1RJQ0U6ICBUR19vcDogSU5TRVJUCi1OT1RJQ0U6ICBUR19yZWxhdHRzOiB7e30gaSBq fQorTk9USUNFOiAgVEdfcmVsYXR0czoge3t9IGkgaiBrfQogTk9USUNFOiAgVEdfcmVsaWQ6 IGJvZ3VzOjEyMzQ1CiBOT1RJQ0U6ICBUR190YWJsZV9uYW1lOiB0cmlnZ2VyX3Rlc3RfZ2Vu ZXJhdGVkCiBOT1RJQ0U6ICBUR190YWJsZV9zY2hlbWE6IHB1YmxpYwpAQCAtNjcwLDcgKzY3 MSw3IEBAIE5PVElDRTogIE9MRDoge2k6IDEsIGo6IDJ9CiBOT1RJQ0U6ICBUR19sZXZlbDog Uk9XCiBOT1RJQ0U6ICBUR19uYW1lOiBzaG93X3RyaWdnZXJfZGF0YV90cmlnX2JlZm9yZQog Tk9USUNFOiAgVEdfb3A6IFVQREFURQotTk9USUNFOiAgVEdfcmVsYXR0czoge3t9IGkgan0K K05PVElDRTogIFRHX3JlbGF0dHM6IHt7fSBpIGoga30KIE5PVElDRTogIFRHX3JlbGlkOiBi b2d1czoxMjM0NQogTk9USUNFOiAgVEdfdGFibGVfbmFtZTogdHJpZ2dlcl90ZXN0X2dlbmVy YXRlZAogTk9USUNFOiAgVEdfdGFibGVfc2NoZW1hOiBwdWJsaWMKQEAgLTY4MSw3ICs2ODIs NyBAQCBOT1RJQ0U6ICBPTEQ6IHtpOiAxLCBqOiAyfQogTk9USUNFOiAgVEdfbGV2ZWw6IFJP VwogTk9USUNFOiAgVEdfbmFtZTogc2hvd190cmlnZ2VyX2RhdGFfdHJpZ19hZnRlcgogTk9U SUNFOiAgVEdfb3A6IFVQREFURQotTk9USUNFOiAgVEdfcmVsYXR0czoge3t9IGkgan0KK05P VElDRTogIFRHX3JlbGF0dHM6IHt7fSBpIGoga30KIE5PVElDRTogIFRHX3JlbGlkOiBib2d1 czoxMjM0NQogTk9USUNFOiAgVEdfdGFibGVfbmFtZTogdHJpZ2dlcl90ZXN0X2dlbmVyYXRl ZAogTk9USUNFOiAgVEdfdGFibGVfc2NoZW1hOiBwdWJsaWMKQEAgLTY5Myw3ICs2OTQsNyBA QCBOT1RJQ0U6ICBPTEQ6IHtpOiAxMSwgajogMjJ9CiBOT1RJQ0U6ICBUR19sZXZlbDogUk9X CiBOT1RJQ0U6ICBUR19uYW1lOiBzaG93X3RyaWdnZXJfZGF0YV90cmlnX2JlZm9yZQogTk9U SUNFOiAgVEdfb3A6IERFTEVURQotTk9USUNFOiAgVEdfcmVsYXR0czoge3t9IGkgan0KK05P VElDRTogIFRHX3JlbGF0dHM6IHt7fSBpIGoga30KIE5PVElDRTogIFRHX3JlbGlkOiBib2d1 czoxMjM0NQogTk9USUNFOiAgVEdfdGFibGVfbmFtZTogdHJpZ2dlcl90ZXN0X2dlbmVyYXRl ZAogTk9USUNFOiAgVEdfdGFibGVfc2NoZW1hOiBwdWJsaWMKQEAgLTcwNCw3ICs3MDUsNyBA QCBOT1RJQ0U6ICBPTEQ6IHtpOiAxMSwgajogMjJ9CiBOT1RJQ0U6ICBUR19sZXZlbDogUk9X CiBOT1RJQ0U6ICBUR19uYW1lOiBzaG93X3RyaWdnZXJfZGF0YV90cmlnX2FmdGVyCiBOT1RJ Q0U6ICBUR19vcDogREVMRVRFCi1OT1RJQ0U6ICBUR19yZWxhdHRzOiB7e30gaSBqfQorTk9U SUNFOiAgVEdfcmVsYXR0czoge3t9IGkgaiBrfQogTk9USUNFOiAgVEdfcmVsaWQ6IGJvZ3Vz OjEyMzQ1CiBOT1RJQ0U6ICBUR190YWJsZV9uYW1lOiB0cmlnZ2VyX3Rlc3RfZ2VuZXJhdGVk CiBOT1RJQ0U6ICBUR190YWJsZV9zY2hlbWE6IHB1YmxpYwpAQCAtODgyLDcgKzg4Myw3IEBA IFRSVU5DQVRFIHRyaWdnZXJfdGVzdF9nZW5lcmF0ZWQ7CiBJTlNFUlQgSU5UTyB0cmlnZ2Vy X3Rlc3RfZ2VuZXJhdGVkIChpKSBWQUxVRVMgKDEpOwogRVJST1I6ICBjYW5ub3Qgc2V0IGdl bmVyYXRlZCBjb2x1bW4gImoiCiBTRUxFQ1QgKiBGUk9NIHRyaWdnZXJfdGVzdF9nZW5lcmF0 ZWQ7Ci0gaSB8IGogCi0tLS0rLS0tCisgaSB8IGogfCBrIAorLS0tKy0tLSstLS0KICgwIHJv d3MpCiAKZGlmZiAtLWdpdCBhL3NyYy9wbC90Y2wvcGx0Y2wuYyBiL3NyYy9wbC90Y2wvcGx0 Y2wuYwppbmRleCBlMmQ5MjQ2YTY3OC4uYTUwYmQxY2QxZWEgMTAwNjQ0Ci0tLSBhL3NyYy9w bC90Y2wvcGx0Y2wuYworKysgYi9zcmMvcGwvdGNsL3BsdGNsLmMKQEAgLTMyMDYsNiArMzIw Niw5IEBAIHBsdGNsX2J1aWxkX3R1cGxlX2FyZ3VtZW50KEhlYXBUdXBsZSB0dXBsZSwgVHVw bGVEZXNjIHR1cGRlc2MsIGJvb2wgaW5jbHVkZV9nZW5lCiAJCQkvKiBkb24ndCBpbmNsdWRl IHVubGVzcyByZXF1ZXN0ZWQgKi8KIAkJCWlmICghaW5jbHVkZV9nZW5lcmF0ZWQpCiAJCQkJ Y29udGludWU7CisJCQkvKiBuZXZlciBpbmNsdWRlIHZpcnR1YWwgY29sdW1ucyAqLworCQkJ aWYgKGF0dC0+YXR0Z2VuZXJhdGVkID09IEFUVFJJQlVURV9HRU5FUkFURURfVklSVFVBTCkK KwkJCQljb250aW51ZTsKIAkJfQogCiAJCS8qKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKZGlmZiAtLWdpdCBhL3NyYy9wbC90 Y2wvc3FsL3BsdGNsX3RyaWdnZXIuc3FsIGIvc3JjL3BsL3RjbC9zcWwvcGx0Y2xfdHJpZ2dl ci5zcWwKaW5kZXggMmEyNDRkZTgzYmMuLjBlZDAwZjQ5NTI2IDEwMDY0NAotLS0gYS9zcmMv cGwvdGNsL3NxbC9wbHRjbF90cmlnZ2VyLnNxbAorKysgYi9zcmMvcGwvdGNsL3NxbC9wbHRj bF90cmlnZ2VyLnNxbApAQCAtNzMsNyArNzMsOCBAQCBDUkVBVEUgVEFCTEUgdHJpZ2dlcl90 ZXN0ICgKIAogQ1JFQVRFIFRBQkxFIHRyaWdnZXJfdGVzdF9nZW5lcmF0ZWQgKAogICAgaSBp bnQsCi0gICBqIGludCBHRU5FUkFURUQgQUxXQVlTIEFTIChpICogMikgU1RPUkVECisgICBq IGludCBHRU5FUkFURUQgQUxXQVlTIEFTIChpICogMikgU1RPUkVELAorICAgayBpbnQgR0VO RVJBVEVEIEFMV0FZUyBBUyAoaSAqIDMpIFZJUlRVQUwKICk7CiAKIENSRUFURSBWSUVXIHRy aWdnZXJfdGVzdF92aWV3IEFTIFNFTEVDVCBpLCB2IEZST00gdHJpZ2dlcl90ZXN0OwpkaWZm IC0tZ2l0IGEvc3JjL3Rlc3QvcmVncmVzcy9leHBlY3RlZC9jb2xsYXRlLmljdS51dGY4Lm91 dCBiL3NyYy90ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQvY29sbGF0ZS5pY3UudXRmOC5vdXQKaW5k ZXggNzllNzZkNGI4NTAuLjQ3MjQwN2JhYmQ2IDEwMDY0NAotLS0gYS9zcmMvdGVzdC9yZWdy ZXNzL2V4cGVjdGVkL2NvbGxhdGUuaWN1LnV0Zjgub3V0CisrKyBiL3NyYy90ZXN0L3JlZ3Jl c3MvZXhwZWN0ZWQvY29sbGF0ZS5pY3UudXRmOC5vdXQKQEAgLTI0NjcsNiArMjQ2NywyNiBA QCBEUk9QIFRBQkxFIHBhZ2dfdGFiNjsKIFJFU0VUIGVuYWJsZV9wYXJ0aXRpb253aXNlX2Fn Z3JlZ2F0ZTsKIFJFU0VUIG1heF9wYXJhbGxlbF93b3JrZXJzX3Blcl9nYXRoZXI7CiBSRVNF VCBlbmFibGVfaW5jcmVtZW50YWxfc29ydDsKKy0tIHZpcnR1YWwgZ2VuZXJhdGVkIGNvbHVt bnMKK0NSRUFURSBUQUJMRSB0NSAoCisgICAgYSBpbnQsCisgICAgYiB0ZXh0IGNvbGxhdGUg IkMiLAorICAgIGMgdGV4dCBjb2xsYXRlICJDIiBHRU5FUkFURUQgQUxXQVlTIEFTIChiIENP TExBVEUgY2FzZV9pbnNlbnNpdGl2ZSkKKyk7CitJTlNFUlQgSU5UTyB0NSAoYSwgYikgdmFs dWVzICgxLCAnRDEnKSwgKDIsICdEMicpLCAoMywgJ2QxJyk7CistLSBDb2xsYXRpb24gb2Yg YyBzaG91bGQgYmUgdGhlIG9uZSBkZWZpbmVkIGZvciB0aGUgY29sdW1uICgiQyIpLCBub3QK Ky0tIHRoZSBvbmUgb2YgdGhlIGdlbmVyYXRpb24gZXhwcmVzc2lvbi4gIChOb3RlIHRoYXQg d2UgY2Fubm90IGp1c3QKKy0tIHRlc3Qgd2l0aCwgc2F5LCB1c2luZyBDT0xMQVRJT04gRk9S LCBiZWNhdXNlIHRoZSBjb2xsYXRpb24gb2YKKy0tIGZ1bmN0aW9uIGNhbGxzIGlzIGFscmVh ZHkgZGV0ZXJtaW5lZCBpbiB0aGUgcGFyc2VyIGJlZm9yZQorLS0gcmV3cml0aW5nLikKK1NF TEVDVCAqIEZST00gdDUgT1JERVIgQlkgYyBBU0MsIGEgQVNDOworIGEgfCBiICB8IGMgIAor LS0tKy0tLS0rLS0tLQorIDEgfCBEMSB8IEQxCisgMiB8IEQyIHwgRDIKKyAzIHwgZDEgfCBk MQorKDMgcm93cykKKwogLS0gY2xlYW51cAogUkVTRVQgc2VhcmNoX3BhdGg7CiBTRVQgY2xp ZW50X21pbl9tZXNzYWdlcyBUTyB3YXJuaW5nOwpkaWZmIC0tZ2l0IGEvc3JjL3Rlc3QvcmVn cmVzcy9leHBlY3RlZC9jcmVhdGVfdGFibGVfbGlrZS5vdXQgYi9zcmMvdGVzdC9yZWdyZXNz L2V4cGVjdGVkL2NyZWF0ZV90YWJsZV9saWtlLm91dAppbmRleCBkMDkxZGE1YTFlZi4uNDkw ZWM5ODZiMzUgMTAwNjQ0Ci0tLSBhL3NyYy90ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQvY3JlYXRl X3RhYmxlX2xpa2Uub3V0CisrKyBiL3NyYy90ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQvY3JlYXRl X3RhYmxlX2xpa2Uub3V0CkBAIC0xMTMsMTkgKzExMywyMCBAQCBTRUxFQ1QgKiBGUk9NIHRl c3RfbGlrZV9pZF8zOyAgLS0gaWRlbnRpdHkgd2FzIGNvcGllZCBhbmQgYXBwbGllZAogKDEg cm93KQogCiBEUk9QIFRBQkxFIHRlc3RfbGlrZV9pZF8xLCB0ZXN0X2xpa2VfaWRfMiwgdGVz dF9saWtlX2lkXzM7Ci1DUkVBVEUgVEFCTEUgdGVzdF9saWtlX2dlbl8xIChhIGludCwgYiBp bnQgR0VORVJBVEVEIEFMV0FZUyBBUyAoYSAqIDIpIFNUT1JFRCk7CitDUkVBVEUgVEFCTEUg dGVzdF9saWtlX2dlbl8xIChhIGludCwgYiBpbnQgR0VORVJBVEVEIEFMV0FZUyBBUyAoYSAq IDIpIFNUT1JFRCwgYyBpbnQgR0VORVJBVEVEIEFMV0FZUyBBUyAoYSAqIDMpIFZJUlRVQUwp OwogXGQgdGVzdF9saWtlX2dlbl8xCiAgICAgICAgICAgICAgICAgICAgICAgICBUYWJsZSAi cHVibGljLnRlc3RfbGlrZV9nZW5fMSIKICBDb2x1bW4gfCAgVHlwZSAgIHwgQ29sbGF0aW9u IHwgTnVsbGFibGUgfCAgICAgICAgICAgICAgRGVmYXVsdCAgICAgICAgICAgICAgIAogLS0t LS0tLS0rLS0tLS0tLS0tKy0tLS0tLS0tLS0tKy0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgYSAgICAgIHwgaW50ZWdlciB8ICAgICAgICAgICB8 ICAgICAgICAgIHwgCiAgYiAgICAgIHwgaW50ZWdlciB8ICAgICAgICAgICB8ICAgICAgICAg IHwgZ2VuZXJhdGVkIGFsd2F5cyBhcyAoYSAqIDIpIHN0b3JlZAorIGMgICAgICB8IGludGVn ZXIgfCAgICAgICAgICAgfCAgICAgICAgICB8IGdlbmVyYXRlZCBhbHdheXMgYXMgKGEgKiAz KQogCiBJTlNFUlQgSU5UTyB0ZXN0X2xpa2VfZ2VuXzEgKGEpIFZBTFVFUyAoMSk7CiBTRUxF Q1QgKiBGUk9NIHRlc3RfbGlrZV9nZW5fMTsKLSBhIHwgYiAKLS0tLSstLS0KLSAxIHwgMgor IGEgfCBiIHwgYyAKKy0tLSstLS0rLS0tCisgMSB8IDIgfCAzCiAoMSByb3cpCiAKIENSRUFU RSBUQUJMRSB0ZXN0X2xpa2VfZ2VuXzIgKExJS0UgdGVzdF9saWtlX2dlbl8xKTsKQEAgLTEz NSwxMiArMTM2LDEzIEBAIENSRUFURSBUQUJMRSB0ZXN0X2xpa2VfZ2VuXzIgKExJS0UgdGVz dF9saWtlX2dlbl8xKTsKIC0tLS0tLS0tKy0tLS0tLS0tLSstLS0tLS0tLS0tLSstLS0tLS0t LS0tKy0tLS0tLS0tLQogIGEgICAgICB8IGludGVnZXIgfCAgICAgICAgICAgfCAgICAgICAg ICB8IAogIGIgICAgICB8IGludGVnZXIgfCAgICAgICAgICAgfCAgICAgICAgICB8IAorIGMg ICAgICB8IGludGVnZXIgfCAgICAgICAgICAgfCAgICAgICAgICB8IAogCiBJTlNFUlQgSU5U TyB0ZXN0X2xpa2VfZ2VuXzIgKGEpIFZBTFVFUyAoMSk7CiBTRUxFQ1QgKiBGUk9NIHRlc3Rf bGlrZV9nZW5fMjsKLSBhIHwgYiAKLS0tLSstLS0KLSAxIHwgIAorIGEgfCBiIHwgYyAKKy0t LSstLS0rLS0tCisgMSB8ICAgfCAgCiAoMSByb3cpCiAKIENSRUFURSBUQUJMRSB0ZXN0X2xp a2VfZ2VuXzMgKExJS0UgdGVzdF9saWtlX2dlbl8xIElOQ0xVRElORyBHRU5FUkFURUQpOwpA QCAtMTUwLDEyICsxNTIsMTMgQEAgQ1JFQVRFIFRBQkxFIHRlc3RfbGlrZV9nZW5fMyAoTElL RSB0ZXN0X2xpa2VfZ2VuXzEgSU5DTFVESU5HIEdFTkVSQVRFRCk7CiAtLS0tLS0tLSstLS0t LS0tLS0rLS0tLS0tLS0tLS0rLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0KICBhICAgICAgfCBpbnRlZ2VyIHwgICAgICAgICAgIHwgICAgICAgICAg fCAKICBiICAgICAgfCBpbnRlZ2VyIHwgICAgICAgICAgIHwgICAgICAgICAgfCBnZW5lcmF0 ZWQgYWx3YXlzIGFzIChhICogMikgc3RvcmVkCisgYyAgICAgIHwgaW50ZWdlciB8ICAgICAg ICAgICB8ICAgICAgICAgIHwgZ2VuZXJhdGVkIGFsd2F5cyBhcyAoYSAqIDMpCiAKIElOU0VS VCBJTlRPIHRlc3RfbGlrZV9nZW5fMyAoYSkgVkFMVUVTICgxKTsKIFNFTEVDVCAqIEZST00g dGVzdF9saWtlX2dlbl8zOwotIGEgfCBiIAotLS0tKy0tLQotIDEgfCAyCisgYSB8IGIgfCBj IAorLS0tKy0tLSstLS0KKyAxIHwgMiB8IDMKICgxIHJvdykKIAogRFJPUCBUQUJMRSB0ZXN0 X2xpa2VfZ2VuXzEsIHRlc3RfbGlrZV9nZW5fMiwgdGVzdF9saWtlX2dlbl8zOwpkaWZmIC0t Z2l0IGEvc3JjL3Rlc3QvcmVncmVzcy9leHBlY3RlZC9mYXN0X2RlZmF1bHQub3V0IGIvc3Jj L3Rlc3QvcmVncmVzcy9leHBlY3RlZC9mYXN0X2RlZmF1bHQub3V0CmluZGV4IDU5MzY1ZGFk OTY0Li4yNzJiNTdlNDhjZCAxMDA2NDQKLS0tIGEvc3JjL3Rlc3QvcmVncmVzcy9leHBlY3Rl ZC9mYXN0X2RlZmF1bHQub3V0CisrKyBiL3NyYy90ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQvZmFz dF9kZWZhdWx0Lm91dApAQCAtNTgsNiArNTgsMTggQEAgQUxURVIgVEFCTEUgaGFzX3ZvbGF0 aWxlIEFERCBjb2wyIGludCBERUZBVUxUIDE7CiBBTFRFUiBUQUJMRSBoYXNfdm9sYXRpbGUg QUREIGNvbDMgdGltZXN0YW1wdHogREVGQVVMVCBjdXJyZW50X3RpbWVzdGFtcDsKIEFMVEVS IFRBQkxFIGhhc192b2xhdGlsZSBBREQgY29sNCBpbnQgREVGQVVMVCAocmFuZG9tKCkgKiAx MDAwMCk6OmludDsKIE5PVElDRTogIHJld3JpdGluZyB0YWJsZSBoYXNfdm9sYXRpbGUgZm9y IHJlYXNvbiAyCistLSB2aXJ0dWFsIGdlbmVyYXRlZCBjb2x1bW5zIGRvbid0IG5lZWQgYSBy ZXdyaXRlCitBTFRFUiBUQUJMRSBoYXNfdm9sYXRpbGUgQUREIGNvbDUgaW50IEdFTkVSQVRF RCBBTFdBWVMgQVMgKHRhYmxlb2lkOjppbnQgKyBjb2wyKSBWSVJUVUFMOworQUxURVIgVEFC TEUgaGFzX3ZvbGF0aWxlIEFMVEVSIENPTFVNTiBjb2w1IFRZUEUgZmxvYXQ4OworQUxURVIg VEFCTEUgaGFzX3ZvbGF0aWxlIEFMVEVSIENPTFVNTiBjb2w1IFRZUEUgbnVtZXJpYzsKK0FM VEVSIFRBQkxFIGhhc192b2xhdGlsZSBBTFRFUiBDT0xVTU4gY29sNSBUWVBFIG51bWVyaWM7 CistLSBoZXJlLCB3ZSBkbyBuZWVkIGEgcmV3cml0ZQorQUxURVIgVEFCTEUgaGFzX3ZvbGF0 aWxlIEFMVEVSIENPTFVNTiBjb2wxIFNFVCBEQVRBIFRZUEUgZmxvYXQ4LAorICBBREQgQ09M VU1OIGNvbDYgZmxvYXQ4IEdFTkVSQVRFRCBBTFdBWVMgQVMgKGNvbDEgKiA0KSBWSVJUVUFM OworTk9USUNFOiAgcmV3cml0aW5nIHRhYmxlIGhhc192b2xhdGlsZSBmb3IgcmVhc29uIDQK Ky0tIHN0b3JlZCBnZW5lcmF0ZWQgY29sdW1ucyBuZWVkIGEgcmV3cml0ZQorQUxURVIgVEFC TEUgaGFzX3ZvbGF0aWxlIEFERCBjb2w3IGludCBHRU5FUkFURUQgQUxXQVlTIEFTICg1NSkg c3RvcmVkOworTk9USUNFOiAgcmV3cml0aW5nIHRhYmxlIGhhc192b2xhdGlsZSBmb3IgcmVh c29uIDIKIC0tIFRlc3QgYSBsYXJnZSBzYW1wbGUgb2YgZGlmZmVyZW50IGRhdGF0eXBlcwog Q1JFQVRFIFRBQkxFIFQocGsgSU5UIE5PVCBOVUxMIFBSSU1BUlkgS0VZLCBjX2ludCBJTlQg REVGQVVMVCAxKTsKIFNFTEVDVCBzZXQoJ3QnKTsKZGlmZiAtLWdpdCBhL3NyYy90ZXN0L3Jl Z3Jlc3MvZXhwZWN0ZWQvZ2VuZXJhdGVkX3N0b3JlZC5vdXQgYi9zcmMvdGVzdC9yZWdyZXNz L2V4cGVjdGVkL2dlbmVyYXRlZF9zdG9yZWQub3V0CmluZGV4IDBkMDM3ZDQ4Y2EwLi40Mzc0 YmY1NWQyMyAxMDA2NDQKLS0tIGEvc3JjL3Rlc3QvcmVncmVzcy9leHBlY3RlZC9nZW5lcmF0 ZWRfc3RvcmVkLm91dAorKysgYi9zcmMvdGVzdC9yZWdyZXNzL2V4cGVjdGVkL2dlbmVyYXRl ZF9zdG9yZWQub3V0CkBAIC0xLDUgKzEsNiBAQAorLS0ga2VlcCB0aGVzZSB0ZXN0cyBhbGln bmVkIHdpdGggZ2VuZXJhdGVkX3ZpcnR1YWwuc3FsCiAtLSBzYW5pdHkgY2hlY2sgb2Ygc3lz dGVtIGNhdGFsb2cKLVNFTEVDVCBhdHRyZWxpZCwgYXR0bmFtZSwgYXR0Z2VuZXJhdGVkIEZS T00gcGdfYXR0cmlidXRlIFdIRVJFIGF0dGdlbmVyYXRlZCBOT1QgSU4gKCcnLCAncycpOwor U0VMRUNUIGF0dHJlbGlkLCBhdHRuYW1lLCBhdHRnZW5lcmF0ZWQgRlJPTSBwZ19hdHRyaWJ1 dGUgV0hFUkUgYXR0Z2VuZXJhdGVkIE5PVCBJTiAoJycsICdzJywgJ3YnKTsKICBhdHRyZWxp ZCB8IGF0dG5hbWUgfCBhdHRnZW5lcmF0ZWQgCiAtLS0tLS0tLS0tKy0tLS0tLS0tLSstLS0t LS0tLS0tLS0tLQogKDAgcm93cykKQEAgLTEyOCw2ICsxMjksMjQgQEAgU0VMRUNUICogRlJP TSBndGVzdDEgT1JERVIgQlkgYTsKICA0IHwgOAogKDQgcm93cykKIAorU0VMRUNUIGd0ZXN0 MSBGUk9NIGd0ZXN0MSBPUkRFUiBCWSBhOyAgLS0gd2hvbGUtcm93IHJlZmVyZW5jZQorIGd0 ZXN0MSAKKy0tLS0tLS0tCisgKDEsMikKKyAoMiw0KQorICgzLDYpCisgKDQsOCkKKyg0IHJv d3MpCisKK1NFTEVDVCBhLCAoU0VMRUNUIGd0ZXN0MS5iKSBGUk9NIGd0ZXN0MSBPUkRFUiBC WSBhOyAgLS0gc3VibGluaworIGEgfCBiIAorLS0tKy0tLQorIDEgfCAyCisgMiB8IDQKKyAz IHwgNgorIDQgfCA4CisoNCByb3dzKQorCiBERUxFVEUgRlJPTSBndGVzdDEgV0hFUkUgYSA+ PSAzOwogVVBEQVRFIGd0ZXN0MSBTRVQgYiA9IERFRkFVTFQgV0hFUkUgYSA9IDE7CiBVUERB VEUgZ3Rlc3QxIFNFVCBiID0gMTEgV0hFUkUgYSA9IDE7ICAtLSBlcnJvcgpAQCAtMjE3LDYg KzIzNiwyNyBAQCBTRUxFQ1QgKiBGUk9NIGd0ZXN0bSBPUkRFUiBCWSBpZDsKICAgMiB8IDIw IHwgMjAwIHwgNDAgfCA0MDAKICgyIHJvd3MpCiAKK0RST1AgVEFCTEUgZ3Rlc3RtOworQ1JF QVRFIFRBQkxFIGd0ZXN0bSAoCisgIGEgaW50IFBSSU1BUlkgS0VZLAorICBiIGludCBHRU5F UkFURUQgQUxXQVlTIEFTIChhICogMikgU1RPUkVECispOworSU5TRVJUIElOVE8gZ3Rlc3Rt IChhKSBTRUxFQ1QgZyBGUk9NIGdlbmVyYXRlX3NlcmllcygxLCAxMCkgZzsKK01FUkdFIElO VE8gZ3Rlc3RtIHQgVVNJTkcgZ3Rlc3RtIEFTIHMgT04gMiAqIHQuYSA9IHMuYiBXSEVOIE1B VENIRUQgVEhFTiBERUxFVEUgUkVUVVJOSU5HICo7CisgYSAgfCBiICB8IGEgIHwgYiAgCist LS0tKy0tLS0rLS0tLSstLS0tCisgIDEgfCAgMiB8ICAxIHwgIDIKKyAgMiB8ICA0IHwgIDIg fCAgNAorICAzIHwgIDYgfCAgMyB8ICA2CisgIDQgfCAgOCB8ICA0IHwgIDgKKyAgNSB8IDEw IHwgIDUgfCAxMAorICA2IHwgMTIgfCAgNiB8IDEyCisgIDcgfCAxNCB8ICA3IHwgMTQKKyAg OCB8IDE2IHwgIDggfCAxNgorICA5IHwgMTggfCAgOSB8IDE4CisgMTAgfCAyMCB8IDEwIHwg MjAKKygxMCByb3dzKQorCiBEUk9QIFRBQkxFIGd0ZXN0bTsKIC0tIHZpZXdzCiBDUkVBVEUg VklFVyBndGVzdDF2IEFTIFNFTEVDVCAqIEZST00gZ3Rlc3QxOwpAQCAtMzEyLDYgKzM1Miwx MCBAQCBFUlJPUjogIGNvbHVtbiAiYiIgaW5oZXJpdHMgZnJvbSBnZW5lcmF0ZWQgY29sdW1u IGJ1dCBzcGVjaWZpZXMgZGVmYXVsdAogQ1JFQVRFIFRBQkxFIGd0ZXN0eCAoeCBpbnQsIGIg aW50IEdFTkVSQVRFRCBBTFdBWVMgQVMgSURFTlRJVFkpIElOSEVSSVRTIChndGVzdDEpOyAg LS0gZXJyb3IKIE5PVElDRTogIG1lcmdpbmcgY29sdW1uICJiIiB3aXRoIGluaGVyaXRlZCBk ZWZpbml0aW9uCiBFUlJPUjogIGNvbHVtbiAiYiIgaW5oZXJpdHMgZnJvbSBnZW5lcmF0ZWQg Y29sdW1uIGJ1dCBzcGVjaWZpZXMgaWRlbnRpdHkKK0NSRUFURSBUQUJMRSBndGVzdHggKHgg aW50LCBiIGludCBHRU5FUkFURUQgQUxXQVlTIEFTIChhICogMjIpIFZJUlRVQUwpIElOSEVS SVRTIChndGVzdDEpOyAgLS0gZXJyb3IKK05PVElDRTogIG1lcmdpbmcgY29sdW1uICJiIiB3 aXRoIGluaGVyaXRlZCBkZWZpbml0aW9uCitFUlJPUjogIGNvbHVtbiAiYiIgaW5oZXJpdHMg ZnJvbSBnZW5lcmF0ZWQgY29sdW1uIG9mIGRpZmZlcmVudCBraW5kCitERVRBSUw6ICBQYXJl bnQgY29sdW1uIGlzIFNUT1JFRCwgY2hpbGQgY29sdW1uIGlzIFZJUlRVQUwuCiBDUkVBVEUg VEFCTEUgZ3Rlc3R4ICh4IGludCwgYiBpbnQgR0VORVJBVEVEIEFMV0FZUyBBUyAoYSAqIDIy KSBTVE9SRUQpIElOSEVSSVRTIChndGVzdDEpOyAgLS0gb2ssIG92ZXJyaWRlcyBwYXJlbnQK IE5PVElDRTogIG1lcmdpbmcgY29sdW1uICJiIiB3aXRoIGluaGVyaXRlZCBkZWZpbml0aW9u CiBcZCsgZ3Rlc3R4CkBAIC01NDcsNyArNTkxLDcgQEAgQ1JFQVRFIEZVTkNUSU9OIGdmMShh IGludCkgUkVUVVJOUyBpbnQgQVMgJCQgU0VMRUNUIGEgKiAzICQkIElNTVVUQUJMRSBMQU5H VUFHRQogUkVWT0tFIEFMTCBPTiBGVU5DVElPTiBnZjEoaW50KSBGUk9NIFBVQkxJQzsKIENS RUFURSBUQUJMRSBndGVzdDEycyAoYSBpbnQgUFJJTUFSWSBLRVksIGIgaW50LCBjIGludCBH RU5FUkFURUQgQUxXQVlTIEFTIChnZjEoYikpIFNUT1JFRCk7CiBJTlNFUlQgSU5UTyBndGVz dDEycyBWQUxVRVMgKDEsIDEwKSwgKDIsIDIwKTsKLUdSQU5UIFNFTEVDVCAoYSwgYykgT04g Z3Rlc3QxMnMgVE8gcmVncmVzc191c2VyMTE7CitHUkFOVCBTRUxFQ1QgKGEsIGMpLCBJTlNF UlQgT04gZ3Rlc3QxMnMgVE8gcmVncmVzc191c2VyMTE7CiBTRVQgUk9MRSByZWdyZXNzX3Vz ZXIxMTsKIFNFTEVDVCBhLCBiIEZST00gZ3Rlc3QxMXM7ICAtLSBub3QgYWxsb3dlZAogRVJS T1I6ICBwZXJtaXNzaW9uIGRlbmllZCBmb3IgdGFibGUgZ3Rlc3QxMXMKQEAgLTU2MCw3ICs2 MDQsOSBAQCBTRUxFQ1QgYSwgYyBGUk9NIGd0ZXN0MTFzOyAgLS0gYWxsb3dlZAogCiBTRUxF Q1QgZ2YxKDEwKTsgIC0tIG5vdCBhbGxvd2VkCiBFUlJPUjogIHBlcm1pc3Npb24gZGVuaWVk IGZvciBmdW5jdGlvbiBnZjEKLVNFTEVDVCBhLCBjIEZST00gZ3Rlc3QxMnM7ICAtLSBhbGxv d2VkCitJTlNFUlQgSU5UTyBndGVzdDEycyBWQUxVRVMgKDMsIDMwKSwgKDQsIDQwKTsgIC0t IGN1cnJlbnRseSBub3QgYWxsb3dlZCBiZWNhdXNlIG9mIGZ1bmN0aW9uIHBlcm1pc3Npb25z LCBzaG91bGQgYXJndWFibHkgYmUgYWxsb3dlZAorRVJST1I6ICBwZXJtaXNzaW9uIGRlbmll ZCBmb3IgZnVuY3Rpb24gZ2YxCitTRUxFQ1QgYSwgYyBGUk9NIGd0ZXN0MTJzOyAgLS0gYWxs b3dlZCAoZG9lcyBub3QgYWN0dWFsbHkgaW52b2tlIHRoZSBmdW5jdGlvbikKICBhIHwgYyAg CiAtLS0rLS0tLQogIDEgfCAzMApAQCAtNzY0LDYgKzgxMCwxMSBAQCBDUkVBVEUgVEFCTEUg Z3Rlc3QyNCAoYSBpbnQgUFJJTUFSWSBLRVksIGIgZ3Rlc3Rkb21haW4xIEdFTkVSQVRFRCBB TFdBWVMgQVMgKGEgKgogSU5TRVJUIElOVE8gZ3Rlc3QyNCAoYSkgVkFMVUVTICg0KTsgIC0t IG9rCiBJTlNFUlQgSU5UTyBndGVzdDI0IChhKSBWQUxVRVMgKDYpOyAgLS0gZXJyb3IKIEVS Uk9SOiAgdmFsdWUgZm9yIGRvbWFpbiBndGVzdGRvbWFpbjEgdmlvbGF0ZXMgY2hlY2sgY29u c3RyYWludCAiZ3Rlc3Rkb21haW4xX2NoZWNrIgorQ1JFQVRFIFRZUEUgZ3Rlc3Rkb21haW4x cmFuZ2UgQVMgcmFuZ2UgKHN1YnR5cGUgPSBndGVzdGRvbWFpbjEpOworQ1JFQVRFIFRBQkxF IGd0ZXN0MjRyIChhIGludCBQUklNQVJZIEtFWSwgYiBndGVzdGRvbWFpbjFyYW5nZSBHRU5F UkFURUQgQUxXQVlTIEFTIChndGVzdGRvbWFpbjFyYW5nZShhLCBhICsgNSkpIFNUT1JFRCk7 CitJTlNFUlQgSU5UTyBndGVzdDI0ciAoYSkgVkFMVUVTICg0KTsgIC0tIG9rCitJTlNFUlQg SU5UTyBndGVzdDI0ciAoYSkgVkFMVUVTICg2KTsgIC0tIGVycm9yCitFUlJPUjogIHZhbHVl IGZvciBkb21haW4gZ3Rlc3Rkb21haW4xIHZpb2xhdGVzIGNoZWNrIGNvbnN0cmFpbnQgImd0 ZXN0ZG9tYWluMV9jaGVjayIKIC0tIHR5cGVkIHRhYmxlcyAoY3VycmVudGx5IG5vdCBzdXBw b3J0ZWQpCiBDUkVBVEUgVFlQRSBndGVzdF90eXBlIEFTIChmMSBpbnRlZ2VyLCBmMiB0ZXh0 LCBmMyBiaWdpbnQpOwogQ1JFQVRFIFRBQkxFIGd0ZXN0MjggT0YgZ3Rlc3RfdHlwZSAoZjEg V0lUSCBPUFRJT05TIEdFTkVSQVRFRCBBTFdBWVMgQVMgKGYyICoyKSBTVE9SRUQpOwpAQCAt Nzk0LDYgKzg0NSwxMSBAQCBDUkVBVEUgVEFCTEUgZ3Rlc3RfY2hpbGQzIFBBUlRJVElPTiBP RiBndGVzdF9wYXJlbnQgKAogICAgIGYzIFdJVEggT1BUSU9OUyBHRU5FUkFURUQgQUxXQVlT IEFTIElERU5USVRZICAtLSBlcnJvcgogKSBGT1IgVkFMVUVTIEZST00gKCcyMDE2LTA5LTAx JykgVE8gKCcyMDE2LTEwLTAxJyk7CiBFUlJPUjogIGlkZW50aXR5IGNvbHVtbnMgYXJlIG5v dCBzdXBwb3J0ZWQgb24gcGFydGl0aW9ucworQ1JFQVRFIFRBQkxFIGd0ZXN0X2NoaWxkMyBQ QVJUSVRJT04gT0YgZ3Rlc3RfcGFyZW50ICgKKyAgICBmMyBHRU5FUkFURUQgQUxXQVlTIEFT IChmMiAqIDIpIFZJUlRVQUwgIC0tIGVycm9yCispIEZPUiBWQUxVRVMgRlJPTSAoJzIwMTYt MDktMDEnKSBUTyAoJzIwMTYtMTAtMDEnKTsKK0VSUk9SOiAgY29sdW1uICJmMyIgaW5oZXJp dHMgZnJvbSBnZW5lcmF0ZWQgY29sdW1uIG9mIGRpZmZlcmVudCBraW5kCitERVRBSUw6ICBQ YXJlbnQgY29sdW1uIGlzIFNUT1JFRCwgY2hpbGQgY29sdW1uIGlzIFZJUlRVQUwuCiBDUkVB VEUgVEFCTEUgZ3Rlc3RfY2hpbGQzIChmMSBkYXRlIE5PVCBOVUxMLCBmMiBiaWdpbnQsIGYz IGJpZ2ludCk7CiBBTFRFUiBUQUJMRSBndGVzdF9wYXJlbnQgQVRUQUNIIFBBUlRJVElPTiBn dGVzdF9jaGlsZDMgRk9SIFZBTFVFUyBGUk9NICgnMjAxNi0wOS0wMScpIFRPICgnMjAxNi0x MC0wMScpOyAtLSBlcnJvcgogRVJST1I6ICBjb2x1bW4gImYzIiBpbiBjaGlsZCB0YWJsZSBt dXN0IGJlIGEgZ2VuZXJhdGVkIGNvbHVtbgpAQCAtODA3LDYgKzg2MywxMSBAQCBBTFRFUiBU QUJMRSBndGVzdF9wYXJlbnQgQVRUQUNIIFBBUlRJVElPTiBndGVzdF9jaGlsZDMgRk9SIFZB TFVFUyBGUk9NICgnMjAxNi0wOQogRVJST1I6ICB0YWJsZSAiZ3Rlc3RfY2hpbGQzIiBiZWlu ZyBhdHRhY2hlZCBjb250YWlucyBhbiBpZGVudGl0eSBjb2x1bW4gImYzIgogREVUQUlMOiAg VGhlIG5ldyBwYXJ0aXRpb24gbWF5IG5vdCBjb250YWluIGFuIGlkZW50aXR5IGNvbHVtbi4K IERST1AgVEFCTEUgZ3Rlc3RfY2hpbGQzOworQ1JFQVRFIFRBQkxFIGd0ZXN0X2NoaWxkMyAo ZjEgZGF0ZSBOT1QgTlVMTCwgZjIgYmlnaW50LCBmMyBiaWdpbnQgR0VORVJBVEVEIEFMV0FZ UyBBUyAoZjIgKiAzMykgVklSVFVBTCk7CitBTFRFUiBUQUJMRSBndGVzdF9wYXJlbnQgQVRU QUNIIFBBUlRJVElPTiBndGVzdF9jaGlsZDMgRk9SIFZBTFVFUyBGUk9NICgnMjAxNi0wOS0w MScpIFRPICgnMjAxNi0xMC0wMScpOyAtLSBlcnJvcgorRVJST1I6ICBjb2x1bW4gImYzIiBp bmhlcml0cyBmcm9tIGdlbmVyYXRlZCBjb2x1bW4gb2YgZGlmZmVyZW50IGtpbmQKK0RFVEFJ TDogIFBhcmVudCBjb2x1bW4gaXMgU1RPUkVELCBjaGlsZCBjb2x1bW4gaXMgVklSVFVBTC4K K0RST1AgVEFCTEUgZ3Rlc3RfY2hpbGQzOwogQ1JFQVRFIFRBQkxFIGd0ZXN0X2NoaWxkMyAo ZjEgZGF0ZSBOT1QgTlVMTCwgZjIgYmlnaW50LCBmMyBiaWdpbnQgR0VORVJBVEVEIEFMV0FZ UyBBUyAoZjIgKiAzMykgU1RPUkVEKTsKIEFMVEVSIFRBQkxFIGd0ZXN0X3BhcmVudCBBVFRB Q0ggUEFSVElUSU9OIGd0ZXN0X2NoaWxkMyBGT1IgVkFMVUVTIEZST00gKCcyMDE2LTA5LTAx JykgVE8gKCcyMDE2LTEwLTAxJyk7CiBcZCBndGVzdF9jaGlsZApAQCAtMTA5NCw5ICsxMTU1 LDkgQEAgU0VMRUNUICogRlJPTSBndGVzdDI5OwogQUxURVIgVEFCTEUgZ3Rlc3QyOSBBTFRF UiBDT0xVTU4gYSBTRVQgRVhQUkVTU0lPTiBBUyAoYSAqIDMpOyAgLS0gZXJyb3IKIEVSUk9S OiAgY29sdW1uICJhIiBvZiByZWxhdGlvbiAiZ3Rlc3QyOSIgaXMgbm90IGEgZ2VuZXJhdGVk IGNvbHVtbgogQUxURVIgVEFCTEUgZ3Rlc3QyOSBBTFRFUiBDT0xVTU4gYSBEUk9QIEVYUFJF U1NJT047ICAtLSBlcnJvcgotRVJST1I6ICBjb2x1bW4gImEiIG9mIHJlbGF0aW9uICJndGVz dDI5IiBpcyBub3QgYSBzdG9yZWQgZ2VuZXJhdGVkIGNvbHVtbgorRVJST1I6ICBjb2x1bW4g ImEiIG9mIHJlbGF0aW9uICJndGVzdDI5IiBpcyBub3QgYSBnZW5lcmF0ZWQgY29sdW1uCiBB TFRFUiBUQUJMRSBndGVzdDI5IEFMVEVSIENPTFVNTiBhIERST1AgRVhQUkVTU0lPTiBJRiBF WElTVFM7ICAtLSBub3RpY2UKLU5PVElDRTogIGNvbHVtbiAiYSIgb2YgcmVsYXRpb24gImd0 ZXN0MjkiIGlzIG5vdCBhIHN0b3JlZCBnZW5lcmF0ZWQgY29sdW1uLCBza2lwcGluZworTk9U SUNFOiAgY29sdW1uICJhIiBvZiByZWxhdGlvbiAiZ3Rlc3QyOSIgaXMgbm90IGEgZ2VuZXJh dGVkIGNvbHVtbiwgc2tpcHBpbmcKIC0tIENoYW5nZSB0aGUgZXhwcmVzc2lvbgogQUxURVIg VEFCTEUgZ3Rlc3QyOSBBTFRFUiBDT0xVTU4gYiBTRVQgRVhQUkVTU0lPTiBBUyAoYSAqIDMp OwogU0VMRUNUICogRlJPTSBndGVzdDI5OwpAQCAtMTE5MCw2ICsxMjUxLDE4IEBAIEluaGVy aXRzOiBndGVzdDMwCiAKIEFMVEVSIFRBQkxFIGd0ZXN0MzBfMSBBTFRFUiBDT0xVTU4gYiBE Uk9QIEVYUFJFU1NJT047ICAtLSBlcnJvcgogRVJST1I6ICBjYW5ub3QgZHJvcCBnZW5lcmF0 aW9uIGV4cHJlc3Npb24gZnJvbSBpbmhlcml0ZWQgY29sdW1uCistLSBjb21wb3NpdGUgdHlw ZSBkZXBlbmRlbmNpZXMKK0NSRUFURSBUQUJMRSBndGVzdDMxXzEgKGEgaW50LCBiIHRleHQg R0VORVJBVEVEIEFMV0FZUyBBUyAoJ2hlbGxvJykgU1RPUkVELCBjIHRleHQpOworQ1JFQVRF IFRBQkxFIGd0ZXN0MzFfMiAoeCBpbnQsIHkgZ3Rlc3QzMV8xKTsKK0FMVEVSIFRBQkxFIGd0 ZXN0MzFfMSBBTFRFUiBDT0xVTU4gYiBUWVBFIHZhcmNoYXI7ICAtLSBmYWlscworRVJST1I6 ICBjYW5ub3QgYWx0ZXIgdGFibGUgImd0ZXN0MzFfMSIgYmVjYXVzZSBjb2x1bW4gImd0ZXN0 MzFfMi55IiB1c2VzIGl0cyByb3cgdHlwZQorRFJPUCBUQUJMRSBndGVzdDMxXzEsIGd0ZXN0 MzFfMjsKKy0tIENoZWNrIGl0IGZvciBhIHBhcnRpdGlvbmVkIHRhYmxlLCB0b28KK0NSRUFU RSBUQUJMRSBndGVzdDMxXzEgKGEgaW50LCBiIHRleHQgR0VORVJBVEVEIEFMV0FZUyBBUyAo J2hlbGxvJykgU1RPUkVELCBjIHRleHQpIFBBUlRJVElPTiBCWSBMSVNUIChhKTsKK0NSRUFU RSBUQUJMRSBndGVzdDMxXzIgKHggaW50LCB5IGd0ZXN0MzFfMSk7CitBTFRFUiBUQUJMRSBn dGVzdDMxXzEgQUxURVIgQ09MVU1OIGIgVFlQRSB2YXJjaGFyOyAgLS0gZmFpbHMKK0VSUk9S OiAgY2Fubm90IGFsdGVyIHRhYmxlICJndGVzdDMxXzEiIGJlY2F1c2UgY29sdW1uICJndGVz dDMxXzIueSIgdXNlcyBpdHMgcm93IHR5cGUKK0RST1AgVEFCTEUgZ3Rlc3QzMV8xLCBndGVz dDMxXzI7CiAtLSB0cmlnZ2VycwogQ1JFQVRFIFRBQkxFIGd0ZXN0MjYgKAogICAgIGEgaW50 IFBSSU1BUlkgS0VZLApkaWZmIC0tZ2l0IGEvc3JjL3Rlc3QvcmVncmVzcy9leHBlY3RlZC9n ZW5lcmF0ZWRfc3RvcmVkLm91dCBiL3NyYy90ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQvZ2VuZXJh dGVkX3ZpcnR1YWwub3V0CnNpbWlsYXJpdHkgaW5kZXggNjglCmNvcHkgZnJvbSBzcmMvdGVz dC9yZWdyZXNzL2V4cGVjdGVkL2dlbmVyYXRlZF9zdG9yZWQub3V0CmNvcHkgdG8gc3JjL3Rl c3QvcmVncmVzcy9leHBlY3RlZC9nZW5lcmF0ZWRfdmlydHVhbC5vdXQKaW5kZXggMGQwMzdk NDhjYTAuLjA0MmUxODRlYTBlIDEwMDY0NAotLS0gYS9zcmMvdGVzdC9yZWdyZXNzL2V4cGVj dGVkL2dlbmVyYXRlZF9zdG9yZWQub3V0CisrKyBiL3NyYy90ZXN0L3JlZ3Jlc3MvZXhwZWN0 ZWQvZ2VuZXJhdGVkX3ZpcnR1YWwub3V0CkBAIC0xLDE1ICsxLDE2IEBACistLSBrZWVwIHRo ZXNlIHRlc3RzIGFsaWduZWQgd2l0aCBnZW5lcmF0ZWRfc3RvcmVkLnNxbAogLS0gc2FuaXR5 IGNoZWNrIG9mIHN5c3RlbSBjYXRhbG9nCi1TRUxFQ1QgYXR0cmVsaWQsIGF0dG5hbWUsIGF0 dGdlbmVyYXRlZCBGUk9NIHBnX2F0dHJpYnV0ZSBXSEVSRSBhdHRnZW5lcmF0ZWQgTk9UIElO ICgnJywgJ3MnKTsKK1NFTEVDVCBhdHRyZWxpZCwgYXR0bmFtZSwgYXR0Z2VuZXJhdGVkIEZS T00gcGdfYXR0cmlidXRlIFdIRVJFIGF0dGdlbmVyYXRlZCBOT1QgSU4gKCcnLCAncycsICd2 Jyk7CiAgYXR0cmVsaWQgfCBhdHRuYW1lIHwgYXR0Z2VuZXJhdGVkIAogLS0tLS0tLS0tLSst LS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0KICgwIHJvd3MpCiAKLUNSRUFURSBTQ0hFTUEgZ2Vu ZXJhdGVkX3N0b3JlZF90ZXN0czsKLUdSQU5UIFVTQUdFIE9OIFNDSEVNQSBnZW5lcmF0ZWRf c3RvcmVkX3Rlc3RzIFRPIFBVQkxJQzsKLVNFVCBzZWFyY2hfcGF0aCA9IGdlbmVyYXRlZF9z dG9yZWRfdGVzdHM7Ci1DUkVBVEUgVEFCTEUgZ3Rlc3QwIChhIGludCBQUklNQVJZIEtFWSwg YiBpbnQgR0VORVJBVEVEIEFMV0FZUyBBUyAoNTUpIFNUT1JFRCk7Ci1DUkVBVEUgVEFCTEUg Z3Rlc3QxIChhIGludCBQUklNQVJZIEtFWSwgYiBpbnQgR0VORVJBVEVEIEFMV0FZUyBBUyAo YSAqIDIpIFNUT1JFRCk7Ci1TRUxFQ1QgdGFibGVfbmFtZSwgY29sdW1uX25hbWUsIGNvbHVt bl9kZWZhdWx0LCBpc19udWxsYWJsZSwgaXNfZ2VuZXJhdGVkLCBnZW5lcmF0aW9uX2V4cHJl c3Npb24gRlJPTSBpbmZvcm1hdGlvbl9zY2hlbWEuY29sdW1ucyBXSEVSRSB0YWJsZV9zY2hl bWEgPSAnZ2VuZXJhdGVkX3N0b3JlZF90ZXN0cycgT1JERVIgQlkgMSwgMjsKK0NSRUFURSBT Q0hFTUEgZ2VuZXJhdGVkX3ZpcnR1YWxfdGVzdHM7CitHUkFOVCBVU0FHRSBPTiBTQ0hFTUEg Z2VuZXJhdGVkX3ZpcnR1YWxfdGVzdHMgVE8gUFVCTElDOworU0VUIHNlYXJjaF9wYXRoID0g Z2VuZXJhdGVkX3ZpcnR1YWxfdGVzdHM7CitDUkVBVEUgVEFCTEUgZ3Rlc3QwIChhIGludCBQ UklNQVJZIEtFWSwgYiBpbnQgR0VORVJBVEVEIEFMV0FZUyBBUyAoNTUpIFZJUlRVQUwpOwor Q1JFQVRFIFRBQkxFIGd0ZXN0MSAoYSBpbnQgUFJJTUFSWSBLRVksIGIgaW50IEdFTkVSQVRF RCBBTFdBWVMgQVMgKGEgKiAyKSBWSVJUVUFMKTsKK1NFTEVDVCB0YWJsZV9uYW1lLCBjb2x1 bW5fbmFtZSwgY29sdW1uX2RlZmF1bHQsIGlzX251bGxhYmxlLCBpc19nZW5lcmF0ZWQsIGdl bmVyYXRpb25fZXhwcmVzc2lvbiBGUk9NIGluZm9ybWF0aW9uX3NjaGVtYS5jb2x1bW5zIFdI RVJFIHRhYmxlX3NjaGVtYSA9ICdnZW5lcmF0ZWRfdmlydHVhbF90ZXN0cycgT1JERVIgQlkg MSwgMjsKICB0YWJsZV9uYW1lIHwgY29sdW1uX25hbWUgfCBjb2x1bW5fZGVmYXVsdCB8IGlz X251bGxhYmxlIHwgaXNfZ2VuZXJhdGVkIHwgZ2VuZXJhdGlvbl9leHByZXNzaW9uIAogLS0t LS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0t Ky0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgZ3Rlc3QwICAgICB8 IGEgICAgICAgICAgIHwgICAgICAgICAgICAgICAgfCBOTyAgICAgICAgICB8IE5FVkVSICAg ICAgICB8IApAQCAtMTgsODkgKzE5LDg5IEBAIFNFTEVDVCB0YWJsZV9uYW1lLCBjb2x1bW5f bmFtZSwgY29sdW1uX2RlZmF1bHQsIGlzX251bGxhYmxlLCBpc19nZW5lcmF0ZWQsIGdlbmVy CiAgZ3Rlc3QxICAgICB8IGIgICAgICAgICAgIHwgICAgICAgICAgICAgICAgfCBZRVMgICAg ICAgICB8IEFMV0FZUyAgICAgICB8IChhICogMikKICg0IHJvd3MpCiAKLVNFTEVDVCB0YWJs ZV9uYW1lLCBjb2x1bW5fbmFtZSwgZGVwZW5kZW50X2NvbHVtbiBGUk9NIGluZm9ybWF0aW9u X3NjaGVtYS5jb2x1bW5fY29sdW1uX3VzYWdlIFdIRVJFIHRhYmxlX3NjaGVtYSA9ICdnZW5l cmF0ZWRfc3RvcmVkX3Rlc3RzJyBPUkRFUiBCWSAxLCAyLCAzOworU0VMRUNUIHRhYmxlX25h bWUsIGNvbHVtbl9uYW1lLCBkZXBlbmRlbnRfY29sdW1uIEZST00gaW5mb3JtYXRpb25fc2No ZW1hLmNvbHVtbl9jb2x1bW5fdXNhZ2UgV0hFUkUgdGFibGVfc2NoZW1hID0gJ2dlbmVyYXRl ZF92aXJ0dWFsX3Rlc3RzJyBPUkRFUiBCWSAxLCAyLCAzOwogIHRhYmxlX25hbWUgfCBjb2x1 bW5fbmFtZSB8IGRlcGVuZGVudF9jb2x1bW4gCiAtLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0t LSstLS0tLS0tLS0tLS0tLS0tLS0KICBndGVzdDEgICAgIHwgYSAgICAgICAgICAgfCBiCiAo MSByb3cpCiAKIFxkIGd0ZXN0MQotICAgICAgICAgICAgICAgICAgICBUYWJsZSAiZ2VuZXJh dGVkX3N0b3JlZF90ZXN0cy5ndGVzdDEiCi0gQ29sdW1uIHwgIFR5cGUgICB8IENvbGxhdGlv biB8IE51bGxhYmxlIHwgICAgICAgICAgICAgIERlZmF1bHQgICAgICAgICAgICAgICAKLS0t LS0tLS0tKy0tLS0tLS0tLSstLS0tLS0tLS0tLSstLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorICAgICAgICAgICAgICAgIFRhYmxlICJnZW5lcmF0 ZWRfdmlydHVhbF90ZXN0cy5ndGVzdDEiCisgQ29sdW1uIHwgIFR5cGUgICB8IENvbGxhdGlv biB8IE51bGxhYmxlIHwgICAgICAgICAgIERlZmF1bHQgICAgICAgICAgIAorLS0tLS0tLS0r LS0tLS0tLS0tKy0tLS0tLS0tLS0tKy0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0KICBhICAgICAgfCBpbnRlZ2VyIHwgICAgICAgICAgIHwgbm90IG51bGwgfCAK LSBiICAgICAgfCBpbnRlZ2VyIHwgICAgICAgICAgIHwgICAgICAgICAgfCBnZW5lcmF0ZWQg YWx3YXlzIGFzIChhICogMikgc3RvcmVkCisgYiAgICAgIHwgaW50ZWdlciB8ICAgICAgICAg ICB8ICAgICAgICAgIHwgZ2VuZXJhdGVkIGFsd2F5cyBhcyAoYSAqIDIpCiBJbmRleGVzOgog ICAgICJndGVzdDFfcGtleSIgUFJJTUFSWSBLRVksIGJ0cmVlIChhKQogCiAtLSBkdXBsaWNh dGUgZ2VuZXJhdGVkCi1DUkVBVEUgVEFCTEUgZ3Rlc3RfZXJyXzEgKGEgaW50IFBSSU1BUlkg S0VZLCBiIGludCBHRU5FUkFURUQgQUxXQVlTIEFTIChhICogMikgU1RPUkVEIEdFTkVSQVRF RCBBTFdBWVMgQVMgKGEgKiAzKSBTVE9SRUQpOworQ1JFQVRFIFRBQkxFIGd0ZXN0X2Vycl8x IChhIGludCBQUklNQVJZIEtFWSwgYiBpbnQgR0VORVJBVEVEIEFMV0FZUyBBUyAoYSAqIDIp IFZJUlRVQUwgR0VORVJBVEVEIEFMV0FZUyBBUyAoYSAqIDMpIFZJUlRVQUwpOwogRVJST1I6 ICBtdWx0aXBsZSBnZW5lcmF0aW9uIGNsYXVzZXMgc3BlY2lmaWVkIGZvciBjb2x1bW4gImIi IG9mIHRhYmxlICJndGVzdF9lcnJfMSIKLUxJTkUgMTogLi4uQVJZIEtFWSwgYiBpbnQgR0VO RVJBVEVEIEFMV0FZUyBBUyAoYSAqIDIpIFNUT1JFRCBHRU5FUkFURUQgLi4uCitMSU5FIDE6 IC4uLlJZIEtFWSwgYiBpbnQgR0VORVJBVEVEIEFMV0FZUyBBUyAoYSAqIDIpIFZJUlRVQUwg R0VORVJBVEVEIC4uLgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIF4KIC0tIHJlZmVyZW5jZXMgdG8gb3RoZXIgZ2VuZXJh dGVkIGNvbHVtbnMsIGluY2x1ZGluZyBzZWxmLXJlZmVyZW5jZXMKLUNSRUFURSBUQUJMRSBn dGVzdF9lcnJfMmEgKGEgaW50IFBSSU1BUlkgS0VZLCBiIGludCBHRU5FUkFURUQgQUxXQVlT IEFTIChiICogMikgU1RPUkVEKTsKK0NSRUFURSBUQUJMRSBndGVzdF9lcnJfMmEgKGEgaW50 IFBSSU1BUlkgS0VZLCBiIGludCBHRU5FUkFURUQgQUxXQVlTIEFTIChiICogMikgVklSVFVB TCk7CiBFUlJPUjogIGNhbm5vdCB1c2UgZ2VuZXJhdGVkIGNvbHVtbiAiYiIgaW4gY29sdW1u IGdlbmVyYXRpb24gZXhwcmVzc2lvbgotTElORSAxOiAuLi4yYSAoYSBpbnQgUFJJTUFSWSBL RVksIGIgaW50IEdFTkVSQVRFRCBBTFdBWVMgQVMgKGIgKiAyKSBTVE8uLi4KK0xJTkUgMTog Li4uMmEgKGEgaW50IFBSSU1BUlkgS0VZLCBiIGludCBHRU5FUkFURUQgQUxXQVlTIEFTIChi ICogMikgVklSLi4uCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgXgogREVUQUlMOiAgQSBnZW5lcmF0ZWQgY29sdW1uIGNh bm5vdCByZWZlcmVuY2UgYW5vdGhlciBnZW5lcmF0ZWQgY29sdW1uLgotQ1JFQVRFIFRBQkxF IGd0ZXN0X2Vycl8yYiAoYSBpbnQgUFJJTUFSWSBLRVksIGIgaW50IEdFTkVSQVRFRCBBTFdB WVMgQVMgKGEgKiAyKSBTVE9SRUQsIGMgaW50IEdFTkVSQVRFRCBBTFdBWVMgQVMgKGIgKiAz KSBTVE9SRUQpOworQ1JFQVRFIFRBQkxFIGd0ZXN0X2Vycl8yYiAoYSBpbnQgUFJJTUFSWSBL RVksIGIgaW50IEdFTkVSQVRFRCBBTFdBWVMgQVMgKGEgKiAyKSBWSVJUVUFMLCBjIGludCBH RU5FUkFURUQgQUxXQVlTIEFTIChiICogMykgVklSVFVBTCk7CiBFUlJPUjogIGNhbm5vdCB1 c2UgZ2VuZXJhdGVkIGNvbHVtbiAiYiIgaW4gY29sdW1uIGdlbmVyYXRpb24gZXhwcmVzc2lv bgotTElORSAxOiAuLi5BWVMgQVMgKGEgKiAyKSBTVE9SRUQsIGMgaW50IEdFTkVSQVRFRCBB TFdBWVMgQVMgKGIgKiAzKSBTVE8uLi4KK0xJTkUgMTogLi4uWVMgQVMgKGEgKiAyKSBWSVJU VUFMLCBjIGludCBHRU5FUkFURUQgQUxXQVlTIEFTIChiICogMykgVklSLi4uCiAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg XgogREVUQUlMOiAgQSBnZW5lcmF0ZWQgY29sdW1uIGNhbm5vdCByZWZlcmVuY2UgYW5vdGhl ciBnZW5lcmF0ZWQgY29sdW1uLgogLS0gYSB3aG9sZS1yb3cgdmFyIGlzIGEgc2VsZi1yZWZl cmVuY2Ugb24gc3Rlcm9pZHMsIHNvIGRpc2FsbG93IHRoYXQgdG9vCiBDUkVBVEUgVEFCTEUg Z3Rlc3RfZXJyXzJjIChhIGludCBQUklNQVJZIEtFWSwKLSAgICBiIGludCBHRU5FUkFURUQg QUxXQVlTIEFTIChudW1fbnVsbHMoZ3Rlc3RfZXJyXzJjKSkgU1RPUkVEKTsKKyAgICBiIGlu dCBHRU5FUkFURUQgQUxXQVlTIEFTIChudW1fbnVsbHMoZ3Rlc3RfZXJyXzJjKSkgVklSVFVB TCk7CiBFUlJPUjogIGNhbm5vdCB1c2Ugd2hvbGUtcm93IHZhcmlhYmxlIGluIGNvbHVtbiBn ZW5lcmF0aW9uIGV4cHJlc3Npb24KLUxJTkUgMjogICAgIGIgaW50IEdFTkVSQVRFRCBBTFdB WVMgQVMgKG51bV9udWxscyhndGVzdF9lcnJfMmMpKSBTVE9SLi4uCitMSU5FIDI6ICAgICBi IGludCBHRU5FUkFURUQgQUxXQVlTIEFTIChudW1fbnVsbHMoZ3Rlc3RfZXJyXzJjKSkgVklS VC4uLgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg IF4KIERFVEFJTDogIFRoaXMgd291bGQgY2F1c2UgdGhlIGdlbmVyYXRlZCBjb2x1bW4gdG8g ZGVwZW5kIG9uIGl0cyBvd24gdmFsdWUuCiAtLSBpbnZhbGlkIHJlZmVyZW5jZQotQ1JFQVRF IFRBQkxFIGd0ZXN0X2Vycl8zIChhIGludCBQUklNQVJZIEtFWSwgYiBpbnQgR0VORVJBVEVE IEFMV0FZUyBBUyAoYyAqIDIpIFNUT1JFRCk7CitDUkVBVEUgVEFCTEUgZ3Rlc3RfZXJyXzMg KGEgaW50IFBSSU1BUlkgS0VZLCBiIGludCBHRU5FUkFURUQgQUxXQVlTIEFTIChjICogMikg VklSVFVBTCk7CiBFUlJPUjogIGNvbHVtbiAiYyIgZG9lcyBub3QgZXhpc3QKLUxJTkUgMTog Li4uXzMgKGEgaW50IFBSSU1BUlkgS0VZLCBiIGludCBHRU5FUkFURUQgQUxXQVlTIEFTIChj ICogMikgU1RPLi4uCitMSU5FIDE6IC4uLl8zIChhIGludCBQUklNQVJZIEtFWSwgYiBpbnQg R0VORVJBVEVEIEFMV0FZUyBBUyAoYyAqIDIpIFZJUi4uLgogICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIF4KIC0tIGdlbmVy YXRpb24gZXhwcmVzc2lvbiBtdXN0IGJlIGltbXV0YWJsZQotQ1JFQVRFIFRBQkxFIGd0ZXN0 X2Vycl80IChhIGludCBQUklNQVJZIEtFWSwgYiBkb3VibGUgcHJlY2lzaW9uIEdFTkVSQVRF RCBBTFdBWVMgQVMgKHJhbmRvbSgpKSBTVE9SRUQpOworQ1JFQVRFIFRBQkxFIGd0ZXN0X2Vy cl80IChhIGludCBQUklNQVJZIEtFWSwgYiBkb3VibGUgcHJlY2lzaW9uIEdFTkVSQVRFRCBB TFdBWVMgQVMgKHJhbmRvbSgpKSBWSVJUVUFMKTsKIEVSUk9SOiAgZ2VuZXJhdGlvbiBleHBy ZXNzaW9uIGlzIG5vdCBpbW11dGFibGUKIC0tIC4uLiBidXQgYmUgc3VyZSB0aGF0IHRoZSBp bW11dGFiaWxpdHkgdGVzdCBpcyBhY2N1cmF0ZQotQ1JFQVRFIFRBQkxFIGd0ZXN0MiAoYSBp bnQsIGIgdGV4dCBHRU5FUkFURUQgQUxXQVlTIEFTIChhIHx8ICcgc2VjJykgU1RPUkVEKTsK K0NSRUFURSBUQUJMRSBndGVzdDIgKGEgaW50LCBiIHRleHQgR0VORVJBVEVEIEFMV0FZUyBB UyAoYSB8fCAnIHNlYycpIFZJUlRVQUwpOwogRFJPUCBUQUJMRSBndGVzdDI7CiAtLSBjYW5u b3QgaGF2ZSBkZWZhdWx0L2lkZW50aXR5IGFuZCBnZW5lcmF0ZWQKLUNSRUFURSBUQUJMRSBn dGVzdF9lcnJfNWEgKGEgaW50IFBSSU1BUlkgS0VZLCBiIGludCBERUZBVUxUIDUgR0VORVJB VEVEIEFMV0FZUyBBUyAoYSAqIDIpIFNUT1JFRCk7CitDUkVBVEUgVEFCTEUgZ3Rlc3RfZXJy XzVhIChhIGludCBQUklNQVJZIEtFWSwgYiBpbnQgREVGQVVMVCA1IEdFTkVSQVRFRCBBTFdB WVMgQVMgKGEgKiAyKSBWSVJUVUFMKTsKIEVSUk9SOiAgYm90aCBkZWZhdWx0IGFuZCBnZW5l cmF0aW9uIGV4cHJlc3Npb24gc3BlY2lmaWVkIGZvciBjb2x1bW4gImIiIG9mIHRhYmxlICJn dGVzdF9lcnJfNWEiCiBMSU5FIDE6IC4uLiBndGVzdF9lcnJfNWEgKGEgaW50IFBSSU1BUlkg S0VZLCBiIGludCBERUZBVUxUIDUgR0VORVJBVEVEIC4uLgogICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIF4KLUNSRUFURSBU QUJMRSBndGVzdF9lcnJfNWIgKGEgaW50IFBSSU1BUlkgS0VZLCBiIGludCBHRU5FUkFURUQg QUxXQVlTIEFTIGlkZW50aXR5IEdFTkVSQVRFRCBBTFdBWVMgQVMgKGEgKiAyKSBTVE9SRUQp OworQ1JFQVRFIFRBQkxFIGd0ZXN0X2Vycl81YiAoYSBpbnQgUFJJTUFSWSBLRVksIGIgaW50 IEdFTkVSQVRFRCBBTFdBWVMgQVMgaWRlbnRpdHkgR0VORVJBVEVEIEFMV0FZUyBBUyAoYSAq IDIpIFZJUlRVQUwpOwogRVJST1I6ICBib3RoIGlkZW50aXR5IGFuZCBnZW5lcmF0aW9uIGV4 cHJlc3Npb24gc3BlY2lmaWVkIGZvciBjb2x1bW4gImIiIG9mIHRhYmxlICJndGVzdF9lcnJf NWIiCiBMSU5FIDE6IC4uLnQgUFJJTUFSWSBLRVksIGIgaW50IEdFTkVSQVRFRCBBTFdBWVMg QVMgaWRlbnRpdHkgR0VORVJBVEVEIC4uLgogICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIF4KIC0tIHJlZmVyZW5jZSB0byBz eXN0ZW0gY29sdW1uIG5vdCBhbGxvd2VkIGluIGdlbmVyYXRlZCBjb2x1bW4KIC0tIChleGNl cHQgdGFibGVvaWQsIHdoaWNoIHdlIHRlc3QgYmVsb3cpCi1DUkVBVEUgVEFCTEUgZ3Rlc3Rf ZXJyXzZhIChhIGludCBQUklNQVJZIEtFWSwgYiBib29sIEdFTkVSQVRFRCBBTFdBWVMgQVMg KHhtaW4gPD4gMzcpIFNUT1JFRCk7CitDUkVBVEUgVEFCTEUgZ3Rlc3RfZXJyXzZhIChhIGlu dCBQUklNQVJZIEtFWSwgYiBib29sIEdFTkVSQVRFRCBBTFdBWVMgQVMgKHhtaW4gPD4gMzcp IFZJUlRVQUwpOwogRVJST1I6ICBjYW5ub3QgdXNlIHN5c3RlbSBjb2x1bW4gInhtaW4iIGlu IGNvbHVtbiBnZW5lcmF0aW9uIGV4cHJlc3Npb24KIExJTkUgMTogLi4uYSAoYSBpbnQgUFJJ TUFSWSBLRVksIGIgYm9vbCBHRU5FUkFURUQgQUxXQVlTIEFTICh4bWluIDw+IDM3Li4uCiAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgXgogLS0gdmFyaW91cyBwcm9oaWJpdGVkIGNvbnN0cnVjdHMKLUNSRUFURSBUQUJM RSBndGVzdF9lcnJfN2EgKGEgaW50IFBSSU1BUlkgS0VZLCBiIGludCBHRU5FUkFURUQgQUxX QVlTIEFTIChhdmcoYSkpIFNUT1JFRCk7CitDUkVBVEUgVEFCTEUgZ3Rlc3RfZXJyXzdhIChh IGludCBQUklNQVJZIEtFWSwgYiBpbnQgR0VORVJBVEVEIEFMV0FZUyBBUyAoYXZnKGEpKSBW SVJUVUFMKTsKIEVSUk9SOiAgYWdncmVnYXRlIGZ1bmN0aW9ucyBhcmUgbm90IGFsbG93ZWQg aW4gY29sdW1uIGdlbmVyYXRpb24gZXhwcmVzc2lvbnMKLUxJTkUgMTogLi4uN2EgKGEgaW50 IFBSSU1BUlkgS0VZLCBiIGludCBHRU5FUkFURUQgQUxXQVlTIEFTIChhdmcoYSkpIFNULi4u CitMSU5FIDE6IC4uLjdhIChhIGludCBQUklNQVJZIEtFWSwgYiBpbnQgR0VORVJBVEVEIEFM V0FZUyBBUyAoYXZnKGEpKSBWSS4uLgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIF4KLUNSRUFURSBUQUJMRSBndGVzdF9l cnJfN2IgKGEgaW50IFBSSU1BUlkgS0VZLCBiIGludCBHRU5FUkFURUQgQUxXQVlTIEFTIChy b3dfbnVtYmVyKCkgT1ZFUiAoT1JERVIgQlkgYSkpIFNUT1JFRCk7CitDUkVBVEUgVEFCTEUg Z3Rlc3RfZXJyXzdiIChhIGludCBQUklNQVJZIEtFWSwgYiBpbnQgR0VORVJBVEVEIEFMV0FZ UyBBUyAocm93X251bWJlcigpIE9WRVIgKE9SREVSIEJZIGEpKSBWSVJUVUFMKTsKIEVSUk9S OiAgd2luZG93IGZ1bmN0aW9ucyBhcmUgbm90IGFsbG93ZWQgaW4gY29sdW1uIGdlbmVyYXRp b24gZXhwcmVzc2lvbnMKIExJTkUgMTogLi4uN2IgKGEgaW50IFBSSU1BUlkgS0VZLCBiIGlu dCBHRU5FUkFURUQgQUxXQVlTIEFTIChyb3dfbnVtYmVyLi4uCiAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXgotQ1JFQVRF IFRBQkxFIGd0ZXN0X2Vycl83YyAoYSBpbnQgUFJJTUFSWSBLRVksIGIgaW50IEdFTkVSQVRF RCBBTFdBWVMgQVMgKChTRUxFQ1QgYSkpIFNUT1JFRCk7CitDUkVBVEUgVEFCTEUgZ3Rlc3Rf ZXJyXzdjIChhIGludCBQUklNQVJZIEtFWSwgYiBpbnQgR0VORVJBVEVEIEFMV0FZUyBBUyAo KFNFTEVDVCBhKSkgVklSVFVBTCk7CiBFUlJPUjogIGNhbm5vdCB1c2Ugc3VicXVlcnkgaW4g Y29sdW1uIGdlbmVyYXRpb24gZXhwcmVzc2lvbgogTElORSAxOiAuLi43YyAoYSBpbnQgUFJJ TUFSWSBLRVksIGIgaW50IEdFTkVSQVRFRCBBTFdBWVMgQVMgKChTRUxFQ1QgYSkuLi4KICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICBeCi1DUkVBVEUgVEFCTEUgZ3Rlc3RfZXJyXzdkIChhIGludCBQUklNQVJZIEtFWSwg YiBpbnQgR0VORVJBVEVEIEFMV0FZUyBBUyAoZ2VuZXJhdGVfc2VyaWVzKDEsIGEpKSBTVE9S RUQpOworQ1JFQVRFIFRBQkxFIGd0ZXN0X2Vycl83ZCAoYSBpbnQgUFJJTUFSWSBLRVksIGIg aW50IEdFTkVSQVRFRCBBTFdBWVMgQVMgKGdlbmVyYXRlX3NlcmllcygxLCBhKSkgVklSVFVB TCk7CiBFUlJPUjogIHNldC1yZXR1cm5pbmcgZnVuY3Rpb25zIGFyZSBub3QgYWxsb3dlZCBp biBjb2x1bW4gZ2VuZXJhdGlvbiBleHByZXNzaW9ucwogTElORSAxOiAuLi43ZCAoYSBpbnQg UFJJTUFSWSBLRVksIGIgaW50IEdFTkVSQVRFRCBBTFdBWVMgQVMgKGdlbmVyYXRlX3MuLi4K ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICBeCiAtLSBHRU5FUkFURUQgQlkgREVGQVVMVCBub3QgYWxsb3dlZAotQ1JFQVRF IFRBQkxFIGd0ZXN0X2Vycl84IChhIGludCBQUklNQVJZIEtFWSwgYiBpbnQgR0VORVJBVEVE IEJZIERFRkFVTFQgQVMgKGEgKiAyKSBTVE9SRUQpOworQ1JFQVRFIFRBQkxFIGd0ZXN0X2Vy cl84IChhIGludCBQUklNQVJZIEtFWSwgYiBpbnQgR0VORVJBVEVEIEJZIERFRkFVTFQgQVMg KGEgKiAyKSBWSVJUVUFMKTsKIEVSUk9SOiAgZm9yIGEgZ2VuZXJhdGVkIGNvbHVtbiwgR0VO RVJBVEVEIEFMV0FZUyBtdXN0IGJlIHNwZWNpZmllZAogTElORSAxOiAuLi5FIGd0ZXN0X2Vy cl84IChhIGludCBQUklNQVJZIEtFWSwgYiBpbnQgR0VORVJBVEVEIEJZIERFRkFVTFQuLi4K ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICBeCkBAIC0xMjgsNiArMTI5LDI0IEBAIFNFTEVDVCAqIEZST00gZ3Rlc3QxIE9S REVSIEJZIGE7CiAgNCB8IDgKICg0IHJvd3MpCiAKK1NFTEVDVCBndGVzdDEgRlJPTSBndGVz dDEgT1JERVIgQlkgYTsgIC0tIHdob2xlLXJvdyByZWZlcmVuY2UKKyBndGVzdDEgCistLS0t LS0tLQorICgxLDIpCisgKDIsNCkKKyAoMyw2KQorICg0LDgpCisoNCByb3dzKQorCitTRUxF Q1QgYSwgKFNFTEVDVCBndGVzdDEuYikgRlJPTSBndGVzdDEgT1JERVIgQlkgYTsgIC0tIHN1 YmxpbmsKKyBhIHwgYiAKKy0tLSstLS0KKyAxIHwgMgorIDIgfCA0CisgMyB8IDYKKyA0IHwg OAorKDQgcm93cykKKwogREVMRVRFIEZST00gZ3Rlc3QxIFdIRVJFIGEgPj0gMzsKIFVQREFU RSBndGVzdDEgU0VUIGIgPSBERUZBVUxUIFdIRVJFIGEgPSAxOwogVVBEQVRFIGd0ZXN0MSBT RVQgYiA9IDExIFdIRVJFIGEgPSAxOyAgLS0gZXJyb3IKQEAgLTE1MywxNiArMTcyLDEwIEBA IFNFTEVDVCBhLCBiIEZST00gZ3Rlc3QxIFdIRVJFIGIgPSA0IE9SREVSIEJZIGE7CiAgMiB8 IDQKICgxIHJvdykKIAotLS0gdGVzdCB0aGF0IG92ZXJmbG93IGVycm9yIGhhcHBlbnMgb24g d3JpdGUKKy0tIHRlc3QgdGhhdCBvdmVyZmxvdyBlcnJvciBoYXBwZW5zIG9uIHJlYWQKIElO U0VSVCBJTlRPIGd0ZXN0MSBWQUxVRVMgKDIwMDAwMDAwMDApOwotRVJST1I6ICBpbnRlZ2Vy IG91dCBvZiByYW5nZQogU0VMRUNUICogRlJPTSBndGVzdDE7Ci0gYSB8IGIgCi0tLS0rLS0t Ci0gMiB8IDQKLSAxIHwgMgotKDIgcm93cykKLQorRVJST1I6ICBpbnRlZ2VyIG91dCBvZiBy YW5nZQogREVMRVRFIEZST00gZ3Rlc3QxIFdIRVJFIGEgPSAyMDAwMDAwMDAwOwogLS0gdGVz dCB3aXRoIGpvaW5zCiBDUkVBVEUgVEFCTEUgZ3Rlc3R4ICh4IGludCwgeSBpbnQpOwpAQCAt MjAzLDggKzIxNiw4IEBAIENSRUFURSBUQUJMRSBndGVzdG0gKAogICBpZCBpbnQgUFJJTUFS WSBLRVksCiAgIGYxIGludCwKICAgZjIgaW50LAotICBmMyBpbnQgR0VORVJBVEVEIEFMV0FZ UyBBUyAoZjEgKiAyKSBTVE9SRUQsCi0gIGY0IGludCBHRU5FUkFURUQgQUxXQVlTIEFTIChm MiAqIDIpIFNUT1JFRAorICBmMyBpbnQgR0VORVJBVEVEIEFMV0FZUyBBUyAoZjEgKiAyKSBW SVJUVUFMLAorICBmNCBpbnQgR0VORVJBVEVEIEFMV0FZUyBBUyAoZjIgKiAyKSBWSVJUVUFM CiApOwogSU5TRVJUIElOVE8gZ3Rlc3RtIFZBTFVFUyAoMSwgNSwgMTAwKTsKIE1FUkdFIElO VE8gZ3Rlc3RtIHQgVVNJTkcgKFZBTFVFUyAoMSwgMTApLCAoMiwgMjApKSB2KGlkLCBmMSkg T04gdC5pZCA9IHYuaWQKQEAgLTIxNyw2ICsyMzAsMjcgQEAgU0VMRUNUICogRlJPTSBndGVz dG0gT1JERVIgQlkgaWQ7CiAgIDIgfCAyMCB8IDIwMCB8IDQwIHwgNDAwCiAoMiByb3dzKQog CitEUk9QIFRBQkxFIGd0ZXN0bTsKK0NSRUFURSBUQUJMRSBndGVzdG0gKAorICBhIGludCBQ UklNQVJZIEtFWSwKKyAgYiBpbnQgR0VORVJBVEVEIEFMV0FZUyBBUyAoYSAqIDIpIFZJUlRV QUwKKyk7CitJTlNFUlQgSU5UTyBndGVzdG0gKGEpIFNFTEVDVCBnIEZST00gZ2VuZXJhdGVf c2VyaWVzKDEsIDEwKSBnOworTUVSR0UgSU5UTyBndGVzdG0gdCBVU0lORyBndGVzdG0gQVMg cyBPTiAyICogdC5hID0gcy5iIFdIRU4gTUFUQ0hFRCBUSEVOIERFTEVURSBSRVRVUk5JTkcg KjsKKyBhICB8IGIgIHwgYSAgfCBiICAKKy0tLS0rLS0tLSstLS0tKy0tLS0KKyAgMSB8ICAy IHwgIDEgfCAgMgorICAyIHwgIDQgfCAgMiB8ICA0CisgIDMgfCAgNiB8ICAzIHwgIDYKKyAg NCB8ICA4IHwgIDQgfCAgOAorICA1IHwgMTAgfCAgNSB8IDEwCisgIDYgfCAxMiB8ICA2IHwg MTIKKyAgNyB8IDE0IHwgIDcgfCAxNAorICA4IHwgMTYgfCAgOCB8IDE2CisgIDkgfCAxOCB8 ICA5IHwgMTgKKyAxMCB8IDIwIHwgMTAgfCAyMAorKDEwIHJvd3MpCisKIERST1AgVEFCTEUg Z3Rlc3RtOwogLS0gdmlld3MKIENSRUFURSBWSUVXIGd0ZXN0MXYgQVMgU0VMRUNUICogRlJP TSBndGVzdDE7CkBAIC0yNzMsMTEgKzMwNywxMSBAQCBTRUxFQ1QgKiBGUk9NIGd0ZXN0MV8x OwogKDAgcm93cykKIAogXGQgZ3Rlc3QxXzEKLSAgICAgICAgICAgICAgICAgICBUYWJsZSAi Z2VuZXJhdGVkX3N0b3JlZF90ZXN0cy5ndGVzdDFfMSIKLSBDb2x1bW4gfCAgVHlwZSAgIHwg Q29sbGF0aW9uIHwgTnVsbGFibGUgfCAgICAgICAgICAgICAgRGVmYXVsdCAgICAgICAgICAg ICAgIAotLS0tLS0tLS0rLS0tLS0tLS0tKy0tLS0tLS0tLS0tKy0tLS0tLS0tLS0rLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgICAgICAgICAgICAgICBUYWJsZSAi Z2VuZXJhdGVkX3ZpcnR1YWxfdGVzdHMuZ3Rlc3QxXzEiCisgQ29sdW1uIHwgIFR5cGUgICB8 IENvbGxhdGlvbiB8IE51bGxhYmxlIHwgICAgICAgICAgIERlZmF1bHQgICAgICAgICAgIAor LS0tLS0tLS0rLS0tLS0tLS0tKy0tLS0tLS0tLS0tKy0tLS0tLS0tLS0rLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0KICBhICAgICAgfCBpbnRlZ2VyIHwgICAgICAgICAgIHwgbm90 IG51bGwgfCAKLSBiICAgICAgfCBpbnRlZ2VyIHwgICAgICAgICAgIHwgICAgICAgICAgfCBn ZW5lcmF0ZWQgYWx3YXlzIGFzIChhICogMikgc3RvcmVkCisgYiAgICAgIHwgaW50ZWdlciB8 ICAgICAgICAgICB8ICAgICAgICAgIHwgZ2VuZXJhdGVkIGFsd2F5cyBhcyAoYSAqIDIpCiBJ bmhlcml0czogZ3Rlc3QxCiAKIElOU0VSVCBJTlRPIGd0ZXN0MV8xIFZBTFVFUyAoNCk7CkBA IC0yOTYsMTIgKzMzMCwxMiBAQCBTRUxFQ1QgKiBGUk9NIGd0ZXN0MTsKIAogLS0gY2FuJ3Qg aGF2ZSBnZW5lcmF0ZWQgY29sdW1uIHRoYXQgaXMgYSBjaGlsZCBvZiBub3JtYWwgY29sdW1u CiBDUkVBVEUgVEFCTEUgZ3Rlc3Rfbm9ybWFsIChhIGludCwgYiBpbnQpOwotQ1JFQVRFIFRB QkxFIGd0ZXN0X25vcm1hbF9jaGlsZCAoYSBpbnQsIGIgaW50IEdFTkVSQVRFRCBBTFdBWVMg QVMgKGEgKiAyKSBTVE9SRUQpIElOSEVSSVRTIChndGVzdF9ub3JtYWwpOyAgLS0gZXJyb3IK K0NSRUFURSBUQUJMRSBndGVzdF9ub3JtYWxfY2hpbGQgKGEgaW50LCBiIGludCBHRU5FUkFU RUQgQUxXQVlTIEFTIChhICogMikgVklSVFVBTCkgSU5IRVJJVFMgKGd0ZXN0X25vcm1hbCk7 ICAtLSBlcnJvcgogTk9USUNFOiAgbWVyZ2luZyBjb2x1bW4gImEiIHdpdGggaW5oZXJpdGVk IGRlZmluaXRpb24KIE5PVElDRTogIG1lcmdpbmcgY29sdW1uICJiIiB3aXRoIGluaGVyaXRl ZCBkZWZpbml0aW9uCiBFUlJPUjogIGNoaWxkIGNvbHVtbiAiYiIgc3BlY2lmaWVzIGdlbmVy YXRpb24gZXhwcmVzc2lvbgogSElOVDogIEEgY2hpbGQgdGFibGUgY29sdW1uIGNhbm5vdCBi ZSBnZW5lcmF0ZWQgdW5sZXNzIGl0cyBwYXJlbnQgY29sdW1uIGlzLgotQ1JFQVRFIFRBQkxF IGd0ZXN0X25vcm1hbF9jaGlsZCAoYSBpbnQsIGIgaW50IEdFTkVSQVRFRCBBTFdBWVMgQVMg KGEgKiAyKSBTVE9SRUQpOworQ1JFQVRFIFRBQkxFIGd0ZXN0X25vcm1hbF9jaGlsZCAoYSBp bnQsIGIgaW50IEdFTkVSQVRFRCBBTFdBWVMgQVMgKGEgKiAyKSBWSVJUVUFMKTsKIEFMVEVS IFRBQkxFIGd0ZXN0X25vcm1hbF9jaGlsZCBJTkhFUklUIGd0ZXN0X25vcm1hbDsgIC0tIGVy cm9yCiBFUlJPUjogIGNvbHVtbiAiYiIgaW4gY2hpbGQgdGFibGUgbXVzdCBub3QgYmUgYSBn ZW5lcmF0ZWQgY29sdW1uCiBEUk9QIFRBQkxFIGd0ZXN0X25vcm1hbCwgZ3Rlc3Rfbm9ybWFs X2NoaWxkOwpAQCAtMzEyLDI1ICszNDYsNDQgQEAgRVJST1I6ICBjb2x1bW4gImIiIGluaGVy aXRzIGZyb20gZ2VuZXJhdGVkIGNvbHVtbiBidXQgc3BlY2lmaWVzIGRlZmF1bHQKIENSRUFU RSBUQUJMRSBndGVzdHggKHggaW50LCBiIGludCBHRU5FUkFURUQgQUxXQVlTIEFTIElERU5U SVRZKSBJTkhFUklUUyAoZ3Rlc3QxKTsgIC0tIGVycm9yCiBOT1RJQ0U6ICBtZXJnaW5nIGNv bHVtbiAiYiIgd2l0aCBpbmhlcml0ZWQgZGVmaW5pdGlvbgogRVJST1I6ICBjb2x1bW4gImIi IGluaGVyaXRzIGZyb20gZ2VuZXJhdGVkIGNvbHVtbiBidXQgc3BlY2lmaWVzIGlkZW50aXR5 Ci1DUkVBVEUgVEFCTEUgZ3Rlc3R4ICh4IGludCwgYiBpbnQgR0VORVJBVEVEIEFMV0FZUyBB UyAoYSAqIDIyKSBTVE9SRUQpIElOSEVSSVRTIChndGVzdDEpOyAgLS0gb2ssIG92ZXJyaWRl cyBwYXJlbnQKK0NSRUFURSBUQUJMRSBndGVzdHggKHggaW50LCBiIGludCBHRU5FUkFURUQg QUxXQVlTIEFTIChhICogMjIpIFNUT1JFRCkgSU5IRVJJVFMgKGd0ZXN0MSk7ICAtLSBlcnJv cgorTk9USUNFOiAgbWVyZ2luZyBjb2x1bW4gImIiIHdpdGggaW5oZXJpdGVkIGRlZmluaXRp b24KK0VSUk9SOiAgY29sdW1uICJiIiBpbmhlcml0cyBmcm9tIGdlbmVyYXRlZCBjb2x1bW4g b2YgZGlmZmVyZW50IGtpbmQKK0RFVEFJTDogIFBhcmVudCBjb2x1bW4gaXMgVklSVFVBTCwg Y2hpbGQgY29sdW1uIGlzIFNUT1JFRC4KK0NSRUFURSBUQUJMRSBndGVzdHggKHggaW50LCBi IGludCBHRU5FUkFURUQgQUxXQVlTIEFTIChhICogMjIpIFZJUlRVQUwpIElOSEVSSVRTIChn dGVzdDEpOyAgLS0gb2ssIG92ZXJyaWRlcyBwYXJlbnQKIE5PVElDRTogIG1lcmdpbmcgY29s dW1uICJiIiB3aXRoIGluaGVyaXRlZCBkZWZpbml0aW9uCiBcZCsgZ3Rlc3R4Ci0gICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgVGFibGUgImdlbmVyYXRlZF9zdG9y ZWRfdGVzdHMuZ3Rlc3R4IgotIENvbHVtbiB8ICBUeXBlICAgfCBDb2xsYXRpb24gfCBOdWxs YWJsZSB8ICAgICAgICAgICAgICAgRGVmYXVsdCAgICAgICAgICAgICAgIHwgU3RvcmFnZSB8 IFN0YXRzIHRhcmdldCB8IERlc2NyaXB0aW9uIAotLS0tLS0tLS0rLS0tLS0tLS0tKy0tLS0t LS0tLS0tKy0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LSstLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLQotIGEgICAgICB8IGlu dGVnZXIgfCAgICAgICAgICAgfCBub3QgbnVsbCB8ICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIHwgcGxhaW4gICB8ICAgICAgICAgICAgICB8IAotIGIgICAgICB8IGlu dGVnZXIgfCAgICAgICAgICAgfCAgICAgICAgICB8IGdlbmVyYXRlZCBhbHdheXMgYXMgKGEg KiAyMikgc3RvcmVkIHwgcGxhaW4gICB8ICAgICAgICAgICAgICB8IAotIHggICAgICB8IGlu dGVnZXIgfCAgICAgICAgICAgfCAgICAgICAgICB8ICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIHwgcGxhaW4gICB8ICAgICAgICAgICAgICB8IAorICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgVGFibGUgImdlbmVyYXRlZF92aXJ0dWFsX3Rlc3Rz Lmd0ZXN0eCIKKyBDb2x1bW4gfCAgVHlwZSAgIHwgQ29sbGF0aW9uIHwgTnVsbGFibGUgfCAg ICAgICAgICAgRGVmYXVsdCAgICAgICAgICAgIHwgU3RvcmFnZSB8IFN0YXRzIHRhcmdldCB8 IERlc2NyaXB0aW9uIAorLS0tLS0tLS0rLS0tLS0tLS0tKy0tLS0tLS0tLS0tKy0tLS0tLS0t LS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLSstLS0tLS0tLS0t LS0tLSstLS0tLS0tLS0tLS0tCisgYSAgICAgIHwgaW50ZWdlciB8ICAgICAgICAgICB8IG5v dCBudWxsIHwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IHBsYWluICAgfCAgICAg ICAgICAgICAgfCAKKyBiICAgICAgfCBpbnRlZ2VyIHwgICAgICAgICAgIHwgICAgICAgICAg fCBnZW5lcmF0ZWQgYWx3YXlzIGFzIChhICogMjIpIHwgcGxhaW4gICB8ICAgICAgICAgICAg ICB8IAorIHggICAgICB8IGludGVnZXIgfCAgICAgICAgICAgfCAgICAgICAgICB8ICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgfCBwbGFpbiAgIHwgICAgICAgICAgICAgIHwgCiBO b3QtbnVsbCBjb25zdHJhaW50czoKICAgICAiZ3Rlc3QxX2Ffbm90X251bGwiIE5PVCBOVUxM ICJhIiAoaW5oZXJpdGVkKQogSW5oZXJpdHM6IGd0ZXN0MQogCitJTlNFUlQgSU5UTyBndGVz dHggKGEsIHgpIFZBTFVFUyAoMTEsIDIyKTsKK1NFTEVDVCAqIEZST00gZ3Rlc3QxOworIGEg IHwgYiAgCistLS0tKy0tLS0KKyAgMyB8ICA2CisgIDQgfCAgOAorIDExIHwgMjIKKygzIHJv d3MpCisKK1NFTEVDVCAqIEZST00gZ3Rlc3R4OworIGEgIHwgIGIgIHwgeCAgCistLS0tKy0t LS0tKy0tLS0KKyAxMSB8IDI0MiB8IDIyCisoMSByb3cpCisKIENSRUFURSBUQUJMRSBndGVz dHh4XzEgKGEgaW50IE5PVCBOVUxMLCBiIGludCk7CiBBTFRFUiBUQUJMRSBndGVzdHh4XzEg SU5IRVJJVCBndGVzdDE7ICAtLSBlcnJvcgogRVJST1I6ICBjb2x1bW4gImIiIGluIGNoaWxk IHRhYmxlIG11c3QgYmUgYSBnZW5lcmF0ZWQgY29sdW1uCi1DUkVBVEUgVEFCTEUgZ3Rlc3R4 eF8zIChhIGludCBOT1QgTlVMTCwgYiBpbnQgR0VORVJBVEVEIEFMV0FZUyBBUyAoYSAqIDIp IFNUT1JFRCk7CitDUkVBVEUgVEFCTEUgZ3Rlc3R4eF8zIChhIGludCBOT1QgTlVMTCwgYiBp bnQgR0VORVJBVEVEIEFMV0FZUyBBUyAoYSAqIDIpIFZJUlRVQUwpOwogQUxURVIgVEFCTEUg Z3Rlc3R4eF8zIElOSEVSSVQgZ3Rlc3QxOyAgLS0gb2sKLUNSRUFURSBUQUJMRSBndGVzdHh4 XzQgKGIgaW50IEdFTkVSQVRFRCBBTFdBWVMgQVMgKGEgKiAyKSBTVE9SRUQsIGEgaW50IE5P VCBOVUxMKTsKK0NSRUFURSBUQUJMRSBndGVzdHh4XzQgKGIgaW50IEdFTkVSQVRFRCBBTFdB WVMgQVMgKGEgKiAyKSBWSVJUVUFMLCBhIGludCBOT1QgTlVMTCk7CiBBTFRFUiBUQUJMRSBn dGVzdHh4XzQgSU5IRVJJVCBndGVzdDE7ICAtLSBvawogLS0gdGVzdCBtdWx0aXBsZSBpbmhl cml0YW5jZSBtaXNtYXRjaGVzCiBDUkVBVEUgVEFCTEUgZ3Rlc3R5ICh4IGludCwgYiBpbnQg REVGQVVMVCA1NSk7CkBAIC0zNDMsMjggKzM5NiwyOCBAQCBDUkVBVEUgVEFCTEUgZ3Rlc3Qx X3kgKCkgSU5IRVJJVFMgKGd0ZXN0MSwgZ3Rlc3R5KTsgIC0tIGVycm9yCiBOT1RJQ0U6ICBt ZXJnaW5nIG11bHRpcGxlIGluaGVyaXRlZCBkZWZpbml0aW9ucyBvZiBjb2x1bW4gImIiCiBF UlJPUjogIGluaGVyaXRlZCBjb2x1bW4gImIiIGhhcyBhIGdlbmVyYXRpb24gY29uZmxpY3QK IERST1AgVEFCTEUgZ3Rlc3R5OwotQ1JFQVRFIFRBQkxFIGd0ZXN0eSAoeCBpbnQsIGIgaW50 IEdFTkVSQVRFRCBBTFdBWVMgQVMgKHggKiAyMikgU1RPUkVEKTsKK0NSRUFURSBUQUJMRSBn dGVzdHkgKHggaW50LCBiIGludCBHRU5FUkFURUQgQUxXQVlTIEFTICh4ICogMjIpIFZJUlRV QUwpOwogQ1JFQVRFIFRBQkxFIGd0ZXN0MV95ICgpIElOSEVSSVRTIChndGVzdDEsIGd0ZXN0 eSk7ICAtLSBlcnJvcgogTk9USUNFOiAgbWVyZ2luZyBtdWx0aXBsZSBpbmhlcml0ZWQgZGVm aW5pdGlvbnMgb2YgY29sdW1uICJiIgogRVJST1I6ICBjb2x1bW4gImIiIGluaGVyaXRzIGNv bmZsaWN0aW5nIGdlbmVyYXRpb24gZXhwcmVzc2lvbnMKIEhJTlQ6ICBUbyByZXNvbHZlIHRo ZSBjb25mbGljdCwgc3BlY2lmeSBhIGdlbmVyYXRpb24gZXhwcmVzc2lvbiBleHBsaWNpdGx5 LgotQ1JFQVRFIFRBQkxFIGd0ZXN0MV95IChiIGludCBHRU5FUkFURUQgQUxXQVlTIEFTICh4 ICsgMSkgU1RPUkVEKSBJTkhFUklUUyAoZ3Rlc3QxLCBndGVzdHkpOyAgLS0gb2sKK0NSRUFU RSBUQUJMRSBndGVzdDFfeSAoYiBpbnQgR0VORVJBVEVEIEFMV0FZUyBBUyAoeCArIDEpIFZJ UlRVQUwpIElOSEVSSVRTIChndGVzdDEsIGd0ZXN0eSk7ICAtLSBvawogTk9USUNFOiAgbWVy Z2luZyBtdWx0aXBsZSBpbmhlcml0ZWQgZGVmaW5pdGlvbnMgb2YgY29sdW1uICJiIgogTk9U SUNFOiAgbW92aW5nIGFuZCBtZXJnaW5nIGNvbHVtbiAiYiIgd2l0aCBpbmhlcml0ZWQgZGVm aW5pdGlvbgogREVUQUlMOiAgVXNlci1zcGVjaWZpZWQgY29sdW1uIG1vdmVkIHRvIHRoZSBw b3NpdGlvbiBvZiB0aGUgaW5oZXJpdGVkIGNvbHVtbi4KIFxkIGd0ZXN0MV95Ci0gICAgICAg ICAgICAgICAgICAgVGFibGUgImdlbmVyYXRlZF9zdG9yZWRfdGVzdHMuZ3Rlc3QxX3kiCi0g Q29sdW1uIHwgIFR5cGUgICB8IENvbGxhdGlvbiB8IE51bGxhYmxlIHwgICAgICAgICAgICAg IERlZmF1bHQgICAgICAgICAgICAgICAKLS0tLS0tLS0tKy0tLS0tLS0tLSstLS0tLS0tLS0t LSstLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorICAg ICAgICAgICAgICAgVGFibGUgImdlbmVyYXRlZF92aXJ0dWFsX3Rlc3RzLmd0ZXN0MV95Igor IENvbHVtbiB8ICBUeXBlICAgfCBDb2xsYXRpb24gfCBOdWxsYWJsZSB8ICAgICAgICAgICBE ZWZhdWx0ICAgICAgICAgICAKKy0tLS0tLS0tKy0tLS0tLS0tLSstLS0tLS0tLS0tLSstLS0t LS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgYSAgICAgIHwgaW50ZWdl ciB8ICAgICAgICAgICB8IG5vdCBudWxsIHwgCi0gYiAgICAgIHwgaW50ZWdlciB8ICAgICAg ICAgICB8ICAgICAgICAgIHwgZ2VuZXJhdGVkIGFsd2F5cyBhcyAoeCArIDEpIHN0b3JlZAor IGIgICAgICB8IGludGVnZXIgfCAgICAgICAgICAgfCAgICAgICAgICB8IGdlbmVyYXRlZCBh bHdheXMgYXMgKHggKyAxKQogIHggICAgICB8IGludGVnZXIgfCAgICAgICAgICAgfCAgICAg ICAgICB8IAogSW5oZXJpdHM6IGd0ZXN0MSwKICAgICAgICAgICBndGVzdHkKIAogLS0gdGVz dCBjb3JyZWN0IGhhbmRsaW5nIG9mIEdFTkVSQVRFRCBjb2x1bW4gdGhhdCdzIG9ubHkgaW4g Y2hpbGQKIENSRUFURSBUQUJMRSBndGVzdHAgKGYxIGludCk7Ci1DUkVBVEUgVEFCTEUgZ3Rl c3RjIChmMiBpbnQgR0VORVJBVEVEIEFMV0FZUyBBUyAoZjErMSkgU1RPUkVEKSBJTkhFUklU UyhndGVzdHApOworQ1JFQVRFIFRBQkxFIGd0ZXN0YyAoZjIgaW50IEdFTkVSQVRFRCBBTFdB WVMgQVMgKGYxKzEpIFZJUlRVQUwpIElOSEVSSVRTKGd0ZXN0cCk7CiBJTlNFUlQgSU5UTyBn dGVzdGMgdmFsdWVzKDQyKTsKIFRBQkxFIGd0ZXN0YzsKICBmMSB8IGYyIApAQCAtMzgxLDgg KzQzNCw4IEBAIFRBQkxFIGd0ZXN0YzsKIAogRFJPUCBUQUJMRSBndGVzdHAgQ0FTQ0FERTsK IE5PVElDRTogIGRyb3AgY2FzY2FkZXMgdG8gdGFibGUgZ3Rlc3RjCi0tLSB0ZXN0IHN0b3Jl ZCB1cGRhdGUKLUNSRUFURSBUQUJMRSBndGVzdDMgKGEgaW50LCBiIGludCBHRU5FUkFURUQg QUxXQVlTIEFTIChhICogMykgU1RPUkVEKTsKKy0tIHRlc3QgdXBkYXRlIFhYWAorQ1JFQVRF IFRBQkxFIGd0ZXN0MyAoYSBpbnQsIGIgaW50IEdFTkVSQVRFRCBBTFdBWVMgQVMgKGEgKiAz KSBWSVJUVUFMKTsKIElOU0VSVCBJTlRPIGd0ZXN0MyAoYSkgVkFMVUVTICgxKSwgKDIpLCAo MyksIChOVUxMKTsKIFNFTEVDVCAqIEZST00gZ3Rlc3QzIE9SREVSIEJZIGE7CiAgYSB8IGIg CkBAIC00MDMsNyArNDU2LDcgQEAgU0VMRUNUICogRlJPTSBndGVzdDMgT1JERVIgQlkgYTsK ICAgICB8ICAgCiAoNCByb3dzKQogCi1DUkVBVEUgVEFCTEUgZ3Rlc3QzYSAoYSB0ZXh0LCBi IHRleHQgR0VORVJBVEVEIEFMV0FZUyBBUyAoYSB8fCAnKycgfHwgYSkgU1RPUkVEKTsKK0NS RUFURSBUQUJMRSBndGVzdDNhIChhIHRleHQsIGIgdGV4dCBHRU5FUkFURUQgQUxXQVlTIEFT IChhIHx8ICcrJyB8fCBhKSBWSVJUVUFMKTsKIElOU0VSVCBJTlRPIGd0ZXN0M2EgKGEpIFZB TFVFUyAoJ2EnKSwgKCdiJyksICgnYycpLCAoTlVMTCk7CiBTRUxFQ1QgKiBGUk9NIGd0ZXN0 M2EgT1JERVIgQlkgYTsKICBhIHwgIGIgIApAQCAtNDY4LDcgKzUyMSw3IEBAIFNFTEVDVCAq IEZST00gZ3Rlc3QzIE9SREVSIEJZIGE7CiAoNCByb3dzKQogCiAtLSBudWxsIHZhbHVlcwot Q1JFQVRFIFRBQkxFIGd0ZXN0MiAoYSBpbnQgUFJJTUFSWSBLRVksIGIgaW50IEdFTkVSQVRF RCBBTFdBWVMgQVMgKE5VTEwpIFNUT1JFRCk7CitDUkVBVEUgVEFCTEUgZ3Rlc3QyIChhIGlu dCBQUklNQVJZIEtFWSwgYiBpbnQgR0VORVJBVEVEIEFMV0FZUyBBUyAoTlVMTCkgVklSVFVB TCk7CiBJTlNFUlQgSU5UTyBndGVzdDIgVkFMVUVTICgxKTsKIFNFTEVDVCAqIEZST00gZ3Rl c3QyOwogIGEgfCBiIApAQCAtNDc3LDcgKzUzMCw3IEBAIFNFTEVDVCAqIEZST00gZ3Rlc3Qy OwogKDEgcm93KQogCiAtLSBzaW1wbGUgY29sdW1uIHJlZmVyZW5jZSBmb3IgdmFybGVuYSB0 eXBlcwotQ1JFQVRFIFRBQkxFIGd0ZXN0X3ZhcmxlbmEgKGEgdmFyY2hhciwgYiB2YXJjaGFy IEdFTkVSQVRFRCBBTFdBWVMgQVMgKGEpIFNUT1JFRCk7CitDUkVBVEUgVEFCTEUgZ3Rlc3Rf dmFybGVuYSAoYSB2YXJjaGFyLCBiIHZhcmNoYXIgR0VORVJBVEVEIEFMV0FZUyBBUyAoYSkg VklSVFVBTCk7CiBJTlNFUlQgSU5UTyBndGVzdF92YXJsZW5hIChhKSBWQUxVRVMoJzAxMjM0 NTY3ODkwMTIzNDU2Nzg5Jyk7CiBJTlNFUlQgSU5UTyBndGVzdF92YXJsZW5hIChhKSBWQUxV RVMoTlVMTCk7CiBTRUxFQ1QgKiBGUk9NIGd0ZXN0X3ZhcmxlbmEgT1JERVIgQlkgYTsKQEAg LTQ5Miw3ICs1NDUsNyBAQCBEUk9QIFRBQkxFIGd0ZXN0X3ZhcmxlbmE7CiBDUkVBVEUgVFlQ RSBkb3VibGVfaW50IGFzIChhIGludCwgYiBpbnQpOwogQ1JFQVRFIFRBQkxFIGd0ZXN0NCAo CiAgICAgYSBpbnQsCi0gICAgYiBkb3VibGVfaW50IEdFTkVSQVRFRCBBTFdBWVMgQVMgKChh ICogMiwgYSAqIDMpKSBTVE9SRUQKKyAgICBiIGRvdWJsZV9pbnQgR0VORVJBVEVEIEFMV0FZ UyBBUyAoKGEgKiAyLCBhICogMykpIFZJUlRVQUwKICk7CiBJTlNFUlQgSU5UTyBndGVzdDQg VkFMVUVTICgxKSwgKDYpOwogU0VMRUNUICogRlJPTSBndGVzdDQ7CkBAIC01MDcsMTEgKzU2 MCwxMSBAQCBEUk9QIFRZUEUgZG91YmxlX2ludDsKIC0tIHVzaW5nIHRhYmxlb2lkIGlzIGFs bG93ZWQKIENSRUFURSBUQUJMRSBndGVzdF90YWJsZW9pZCAoCiAgIGEgaW50IFBSSU1BUlkg S0VZLAotICBiIGJvb2wgR0VORVJBVEVEIEFMV0FZUyBBUyAodGFibGVvaWQgPSAnZ3Rlc3Rf dGFibGVvaWQnOjpyZWdjbGFzcykgU1RPUkVECisgIGIgYm9vbCBHRU5FUkFURUQgQUxXQVlT IEFTICh0YWJsZW9pZCA9ICdndGVzdF90YWJsZW9pZCc6OnJlZ2NsYXNzKSBWSVJUVUFMCiAp OwogSU5TRVJUIElOVE8gZ3Rlc3RfdGFibGVvaWQgVkFMVUVTICgxKSwgKDIpOwogQUxURVIg VEFCTEUgZ3Rlc3RfdGFibGVvaWQgQUREIENPTFVNTgotICBjIHJlZ2NsYXNzIEdFTkVSQVRF RCBBTFdBWVMgQVMgKHRhYmxlb2lkKSBTVE9SRUQ7CisgIGMgcmVnY2xhc3MgR0VORVJBVEVE IEFMV0FZUyBBUyAodGFibGVvaWQpIFZJUlRVQUw7CiBTRUxFQ1QgKiBGUk9NIGd0ZXN0X3Rh Ymxlb2lkOwogIGEgfCBiIHwgICAgICAgYyAgICAgICAgCiAtLS0rLS0tKy0tLS0tLS0tLS0t LS0tLS0KQEAgLTUyMCw3ICs1NzMsNyBAQCBTRUxFQ1QgKiBGUk9NIGd0ZXN0X3RhYmxlb2lk OwogKDIgcm93cykKIAogLS0gZHJvcCBjb2x1bW4gYmVoYXZpb3IKLUNSRUFURSBUQUJMRSBn dGVzdDEwIChhIGludCBQUklNQVJZIEtFWSwgYiBpbnQsIGMgaW50IEdFTkVSQVRFRCBBTFdB WVMgQVMgKGIgKiAyKSBTVE9SRUQpOworQ1JFQVRFIFRBQkxFIGd0ZXN0MTAgKGEgaW50IFBS SU1BUlkgS0VZLCBiIGludCwgYyBpbnQgR0VORVJBVEVEIEFMV0FZUyBBUyAoYiAqIDIpIFZJ UlRVQUwpOwogQUxURVIgVEFCTEUgZ3Rlc3QxMCBEUk9QIENPTFVNTiBiOyAgLS0gZmFpbHMK IEVSUk9SOiAgY2Fubm90IGRyb3AgY29sdW1uIGIgb2YgdGFibGUgZ3Rlc3QxMCBiZWNhdXNl IG90aGVyIG9iamVjdHMgZGVwZW5kIG9uIGl0CiBERVRBSUw6ICBjb2x1bW4gYyBvZiB0YWJs ZSBndGVzdDEwIGRlcGVuZHMgb24gY29sdW1uIGIgb2YgdGFibGUgZ3Rlc3QxMApAQCAtNTI4 LDMwICs1ODEsMzAgQEAgSElOVDogIFVzZSBEUk9QIC4uLiBDQVNDQURFIHRvIGRyb3AgdGhl IGRlcGVuZGVudCBvYmplY3RzIHRvby4KIEFMVEVSIFRBQkxFIGd0ZXN0MTAgRFJPUCBDT0xV TU4gYiBDQVNDQURFOyAgLS0gZHJvcHMgYyB0b28KIE5PVElDRTogIGRyb3AgY2FzY2FkZXMg dG8gY29sdW1uIGMgb2YgdGFibGUgZ3Rlc3QxMAogXGQgZ3Rlc3QxMAotICAgICAgVGFibGUg ImdlbmVyYXRlZF9zdG9yZWRfdGVzdHMuZ3Rlc3QxMCIKKyAgICAgIFRhYmxlICJnZW5lcmF0 ZWRfdmlydHVhbF90ZXN0cy5ndGVzdDEwIgogIENvbHVtbiB8ICBUeXBlICAgfCBDb2xsYXRp b24gfCBOdWxsYWJsZSB8IERlZmF1bHQgCiAtLS0tLS0tLSstLS0tLS0tLS0rLS0tLS0tLS0t LS0rLS0tLS0tLS0tLSstLS0tLS0tLS0KICBhICAgICAgfCBpbnRlZ2VyIHwgICAgICAgICAg IHwgbm90IG51bGwgfCAKIEluZGV4ZXM6CiAgICAgImd0ZXN0MTBfcGtleSIgUFJJTUFSWSBL RVksIGJ0cmVlIChhKQogCi1DUkVBVEUgVEFCTEUgZ3Rlc3QxMGEgKGEgaW50IFBSSU1BUlkg S0VZLCBiIGludCBHRU5FUkFURUQgQUxXQVlTIEFTIChhICogMikgU1RPUkVEKTsKK0NSRUFU RSBUQUJMRSBndGVzdDEwYSAoYSBpbnQgUFJJTUFSWSBLRVksIGIgaW50IEdFTkVSQVRFRCBB TFdBWVMgQVMgKGEgKiAyKSBWSVJUVUFMKTsKIEFMVEVSIFRBQkxFIGd0ZXN0MTBhIERST1Ag Q09MVU1OIGI7CiBJTlNFUlQgSU5UTyBndGVzdDEwYSAoYSkgVkFMVUVTICgxKTsKIC0tIHBy aXZpbGVnZXMKIENSRUFURSBVU0VSIHJlZ3Jlc3NfdXNlcjExOwotQ1JFQVRFIFRBQkxFIGd0 ZXN0MTFzIChhIGludCBQUklNQVJZIEtFWSwgYiBpbnQsIGMgaW50IEdFTkVSQVRFRCBBTFdB WVMgQVMgKGIgKiAyKSBTVE9SRUQpOwotSU5TRVJUIElOVE8gZ3Rlc3QxMXMgVkFMVUVTICgx LCAxMCksICgyLCAyMCk7Ci1HUkFOVCBTRUxFQ1QgKGEsIGMpIE9OIGd0ZXN0MTFzIFRPIHJl Z3Jlc3NfdXNlcjExOworQ1JFQVRFIFRBQkxFIGd0ZXN0MTF2IChhIGludCBQUklNQVJZIEtF WSwgYiBpbnQsIGMgaW50IEdFTkVSQVRFRCBBTFdBWVMgQVMgKGIgKiAyKSBWSVJUVUFMKTsK K0lOU0VSVCBJTlRPIGd0ZXN0MTF2IFZBTFVFUyAoMSwgMTApLCAoMiwgMjApOworR1JBTlQg U0VMRUNUIChhLCBjKSBPTiBndGVzdDExdiBUTyByZWdyZXNzX3VzZXIxMTsKIENSRUFURSBG VU5DVElPTiBnZjEoYSBpbnQpIFJFVFVSTlMgaW50IEFTICQkIFNFTEVDVCBhICogMyAkJCBJ TU1VVEFCTEUgTEFOR1VBR0UgU1FMOwogUkVWT0tFIEFMTCBPTiBGVU5DVElPTiBnZjEoaW50 KSBGUk9NIFBVQkxJQzsKLUNSRUFURSBUQUJMRSBndGVzdDEycyAoYSBpbnQgUFJJTUFSWSBL RVksIGIgaW50LCBjIGludCBHRU5FUkFURUQgQUxXQVlTIEFTIChnZjEoYikpIFNUT1JFRCk7 Ci1JTlNFUlQgSU5UTyBndGVzdDEycyBWQUxVRVMgKDEsIDEwKSwgKDIsIDIwKTsKLUdSQU5U IFNFTEVDVCAoYSwgYykgT04gZ3Rlc3QxMnMgVE8gcmVncmVzc191c2VyMTE7CitDUkVBVEUg VEFCTEUgZ3Rlc3QxMnYgKGEgaW50IFBSSU1BUlkgS0VZLCBiIGludCwgYyBpbnQgR0VORVJB VEVEIEFMV0FZUyBBUyAoZ2YxKGIpKSBWSVJUVUFMKTsKK0lOU0VSVCBJTlRPIGd0ZXN0MTJ2 IFZBTFVFUyAoMSwgMTApLCAoMiwgMjApOworR1JBTlQgU0VMRUNUIChhLCBjKSwgSU5TRVJU IE9OIGd0ZXN0MTJ2IFRPIHJlZ3Jlc3NfdXNlcjExOwogU0VUIFJPTEUgcmVncmVzc191c2Vy MTE7Ci1TRUxFQ1QgYSwgYiBGUk9NIGd0ZXN0MTFzOyAgLS0gbm90IGFsbG93ZWQKLUVSUk9S OiAgcGVybWlzc2lvbiBkZW5pZWQgZm9yIHRhYmxlIGd0ZXN0MTFzCi1TRUxFQ1QgYSwgYyBG Uk9NIGd0ZXN0MTFzOyAgLS0gYWxsb3dlZAorU0VMRUNUIGEsIGIgRlJPTSBndGVzdDExdjsg IC0tIG5vdCBhbGxvd2VkCitFUlJPUjogIHBlcm1pc3Npb24gZGVuaWVkIGZvciB0YWJsZSBn dGVzdDExdgorU0VMRUNUIGEsIGMgRlJPTSBndGVzdDExdjsgIC0tIGFsbG93ZWQKICBhIHwg YyAgCiAtLS0rLS0tLQogIDEgfCAyMApAQCAtNTYwLDIzMSArNjEzLDE1MiBAQCBTRUxFQ1Qg YSwgYyBGUk9NIGd0ZXN0MTFzOyAgLS0gYWxsb3dlZAogCiBTRUxFQ1QgZ2YxKDEwKTsgIC0t IG5vdCBhbGxvd2VkCiBFUlJPUjogIHBlcm1pc3Npb24gZGVuaWVkIGZvciBmdW5jdGlvbiBn ZjEKLVNFTEVDVCBhLCBjIEZST00gZ3Rlc3QxMnM7ICAtLSBhbGxvd2VkCi0gYSB8IGMgIAot LS0tKy0tLS0KLSAxIHwgMzAKLSAyIHwgNjAKLSgyIHJvd3MpCi0KK0lOU0VSVCBJTlRPIGd0 ZXN0MTJ2IFZBTFVFUyAoMywgMzApLCAoNCwgNDApOyAgLS0gYWxsb3dlZCAoZG9lcyBub3Qg YWN0dWFsbHkgaW52b2tlIHRoZSBmdW5jdGlvbikKK1NFTEVDVCBhLCBjIEZST00gZ3Rlc3Qx MnY7ICAtLSBjdXJyZW50bHkgbm90IGFsbG93ZWQgYmVjYXVzZSBvZiBmdW5jdGlvbiBwZXJt aXNzaW9ucywgc2hvdWxkIGFyZ3VhYmx5IGJlIGFsbG93ZWQKK0VSUk9SOiAgcGVybWlzc2lv biBkZW5pZWQgZm9yIGZ1bmN0aW9uIGdmMQogUkVTRVQgUk9MRTsKIERST1AgRlVOQ1RJT04g Z2YxKGludCk7ICAtLSBmYWlsCiBFUlJPUjogIGNhbm5vdCBkcm9wIGZ1bmN0aW9uIGdmMShp bnRlZ2VyKSBiZWNhdXNlIG90aGVyIG9iamVjdHMgZGVwZW5kIG9uIGl0Ci1ERVRBSUw6ICBj b2x1bW4gYyBvZiB0YWJsZSBndGVzdDEycyBkZXBlbmRzIG9uIGZ1bmN0aW9uIGdmMShpbnRl Z2VyKQorREVUQUlMOiAgY29sdW1uIGMgb2YgdGFibGUgZ3Rlc3QxMnYgZGVwZW5kcyBvbiBm dW5jdGlvbiBnZjEoaW50ZWdlcikKIEhJTlQ6ICBVc2UgRFJPUCAuLi4gQ0FTQ0FERSB0byBk cm9wIHRoZSBkZXBlbmRlbnQgb2JqZWN0cyB0b28uCi1EUk9QIFRBQkxFIGd0ZXN0MTFzLCBn dGVzdDEyczsKK0RST1AgVEFCTEUgZ3Rlc3QxMXYsIGd0ZXN0MTJ2OwogRFJPUCBGVU5DVElP TiBnZjEoaW50KTsKIERST1AgVVNFUiByZWdyZXNzX3VzZXIxMTsKIC0tIGNoZWNrIGNvbnN0 cmFpbnRzCi1DUkVBVEUgVEFCTEUgZ3Rlc3QyMCAoYSBpbnQgUFJJTUFSWSBLRVksIGIgaW50 IEdFTkVSQVRFRCBBTFdBWVMgQVMgKGEgKiAyKSBTVE9SRUQgQ0hFQ0sgKGIgPCA1MCkpOwor Q1JFQVRFIFRBQkxFIGd0ZXN0MjAgKGEgaW50IFBSSU1BUlkgS0VZLCBiIGludCBHRU5FUkFU RUQgQUxXQVlTIEFTIChhICogMikgVklSVFVBTCBDSEVDSyAoYiA8IDUwKSk7CiBJTlNFUlQg SU5UTyBndGVzdDIwIChhKSBWQUxVRVMgKDEwKTsgIC0tIG9rCiBJTlNFUlQgSU5UTyBndGVz dDIwIChhKSBWQUxVRVMgKDMwKTsgIC0tIHZpb2xhdGVzIGNvbnN0cmFpbnQKIEVSUk9SOiAg bmV3IHJvdyBmb3IgcmVsYXRpb24gImd0ZXN0MjAiIHZpb2xhdGVzIGNoZWNrIGNvbnN0cmFp bnQgImd0ZXN0MjBfYl9jaGVjayIKLURFVEFJTDogIEZhaWxpbmcgcm93IGNvbnRhaW5zICgz MCwgNjApLgorREVUQUlMOiAgRmFpbGluZyByb3cgY29udGFpbnMgKDMwLCB2aXJ0dWFsKS4K IEFMVEVSIFRBQkxFIGd0ZXN0MjAgQUxURVIgQ09MVU1OIGIgU0VUIEVYUFJFU1NJT04gQVMg KGEgKiAxMDApOyAgLS0gdmlvbGF0ZXMgY29uc3RyYWludAotRVJST1I6ICBjaGVjayBjb25z dHJhaW50ICJndGVzdDIwX2JfY2hlY2siIG9mIHJlbGF0aW9uICJndGVzdDIwIiBpcyB2aW9s YXRlZCBieSBzb21lIHJvdworRVJST1I6ICBBTFRFUiBUQUJMRSAvIFNFVCBFWFBSRVNTSU9O IGlzIG5vdCBzdXBwb3J0ZWQgZm9yIHZpcnR1YWwgZ2VuZXJhdGVkIGNvbHVtbnMgb24gdGFi bGVzIHdpdGggY2hlY2sgY29uc3RyYWludHMKK0RFVEFJTDogIENvbHVtbiAiYiIgb2YgcmVs YXRpb24gImd0ZXN0MjAiIGlzIGEgdmlydHVhbCBnZW5lcmF0ZWQgY29sdW1uLgogQUxURVIg VEFCTEUgZ3Rlc3QyMCBBTFRFUiBDT0xVTU4gYiBTRVQgRVhQUkVTU0lPTiBBUyAoYSAqIDMp OyAgLS0gb2sKLUNSRUFURSBUQUJMRSBndGVzdDIwYSAoYSBpbnQgUFJJTUFSWSBLRVksIGIg aW50IEdFTkVSQVRFRCBBTFdBWVMgQVMgKGEgKiAyKSBTVE9SRUQpOworRVJST1I6ICBBTFRF UiBUQUJMRSAvIFNFVCBFWFBSRVNTSU9OIGlzIG5vdCBzdXBwb3J0ZWQgZm9yIHZpcnR1YWwg Z2VuZXJhdGVkIGNvbHVtbnMgb24gdGFibGVzIHdpdGggY2hlY2sgY29uc3RyYWludHMKK0RF VEFJTDogIENvbHVtbiAiYiIgb2YgcmVsYXRpb24gImd0ZXN0MjAiIGlzIGEgdmlydHVhbCBn ZW5lcmF0ZWQgY29sdW1uLgorQ1JFQVRFIFRBQkxFIGd0ZXN0MjBhIChhIGludCBQUklNQVJZ IEtFWSwgYiBpbnQgR0VORVJBVEVEIEFMV0FZUyBBUyAoYSAqIDIpIFZJUlRVQUwpOwogSU5T RVJUIElOVE8gZ3Rlc3QyMGEgKGEpIFZBTFVFUyAoMTApOwogSU5TRVJUIElOVE8gZ3Rlc3Qy MGEgKGEpIFZBTFVFUyAoMzApOwogQUxURVIgVEFCTEUgZ3Rlc3QyMGEgQUREIENIRUNLIChi IDwgNTApOyAgLS0gZmFpbHMgb24gZXhpc3Rpbmcgcm93CiBFUlJPUjogIGNoZWNrIGNvbnN0 cmFpbnQgImd0ZXN0MjBhX2JfY2hlY2siIG9mIHJlbGF0aW9uICJndGVzdDIwYSIgaXMgdmlv bGF0ZWQgYnkgc29tZSByb3cKLUNSRUFURSBUQUJMRSBndGVzdDIwYiAoYSBpbnQgUFJJTUFS WSBLRVksIGIgaW50IEdFTkVSQVRFRCBBTFdBWVMgQVMgKGEgKiAyKSBTVE9SRUQpOworQ1JF QVRFIFRBQkxFIGd0ZXN0MjBiIChhIGludCBQUklNQVJZIEtFWSwgYiBpbnQgR0VORVJBVEVE IEFMV0FZUyBBUyAoYSAqIDIpIFZJUlRVQUwpOwogSU5TRVJUIElOVE8gZ3Rlc3QyMGIgKGEp IFZBTFVFUyAoMTApOwogSU5TRVJUIElOVE8gZ3Rlc3QyMGIgKGEpIFZBTFVFUyAoMzApOwog QUxURVIgVEFCTEUgZ3Rlc3QyMGIgQUREIENPTlNUUkFJTlQgY2hrIENIRUNLIChiIDwgNTAp IE5PVCBWQUxJRDsKIEFMVEVSIFRBQkxFIGd0ZXN0MjBiIFZBTElEQVRFIENPTlNUUkFJTlQg Y2hrOyAgLS0gZmFpbHMgb24gZXhpc3Rpbmcgcm93CiBFUlJPUjogIGNoZWNrIGNvbnN0cmFp bnQgImNoayIgb2YgcmVsYXRpb24gImd0ZXN0MjBiIiBpcyB2aW9sYXRlZCBieSBzb21lIHJv dwotLS0gbm90LW51bGwgY29uc3RyYWludHMKLUNSRUFURSBUQUJMRSBndGVzdDIxYSAoYSBp bnQgUFJJTUFSWSBLRVksIGIgaW50IEdFTkVSQVRFRCBBTFdBWVMgQVMgKG51bGxpZihhLCAw KSkgU1RPUkVEIE5PVCBOVUxMKTsKLUlOU0VSVCBJTlRPIGd0ZXN0MjFhIChhKSBWQUxVRVMg KDEpOyAgLS0gb2sKLUlOU0VSVCBJTlRPIGd0ZXN0MjFhIChhKSBWQUxVRVMgKDApOyAgLS0g dmlvbGF0ZXMgY29uc3RyYWludAotRVJST1I6ICBudWxsIHZhbHVlIGluIGNvbHVtbiAiYiIg b2YgcmVsYXRpb24gImd0ZXN0MjFhIiB2aW9sYXRlcyBub3QtbnVsbCBjb25zdHJhaW50Ci1E RVRBSUw6ICBGYWlsaW5nIHJvdyBjb250YWlucyAoMCwgbnVsbCkuCi1DUkVBVEUgVEFCTEUg Z3Rlc3QyMWIgKGEgaW50IFBSSU1BUlkgS0VZLCBiIGludCBHRU5FUkFURUQgQUxXQVlTIEFT IChudWxsaWYoYSwgMCkpIFNUT1JFRCk7CistLSBub3QtbnVsbCBjb25zdHJhaW50cyAoY3Vy cmVudGx5IG5vdCBzdXBwb3J0ZWQpCitDUkVBVEUgVEFCTEUgZ3Rlc3QyMWEgKGEgaW50IFBS SU1BUlkgS0VZLCBiIGludCBHRU5FUkFURUQgQUxXQVlTIEFTIChudWxsaWYoYSwgMCkpIFZJ UlRVQUwgTk9UIE5VTEwpOworRVJST1I6ICBub3QtbnVsbCBjb25zdHJhaW50cyBhcmUgbm90 IHN1cHBvcnRlZCBvbiB2aXJ0dWFsIGdlbmVyYXRlZCBjb2x1bW5zCitMSU5FIDE6IC4uLiBi IGludCBHRU5FUkFURUQgQUxXQVlTIEFTIChudWxsaWYoYSwgMCkpIFZJUlRVQUwgTk9UIE5V TEwpOworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIF4KKy0tSU5TRVJUIElOVE8gZ3Rlc3QyMWEgKGEpIFZBTFVFUyAoMSk7 ICAtLSBvaworLS1JTlNFUlQgSU5UTyBndGVzdDIxYSAoYSkgVkFMVUVTICgwKTsgIC0tIHZp b2xhdGVzIGNvbnN0cmFpbnQKKy0tIGFsc28gY2hlY2sgd2l0aCB0YWJsZSBjb25zdHJhaW50 IHN5bnRheAorQ1JFQVRFIFRBQkxFIGd0ZXN0MjFheCAoYSBpbnQgUFJJTUFSWSBLRVksIGIg aW50IEdFTkVSQVRFRCBBTFdBWVMgQVMgKG51bGxpZihhLCAwKSkgVklSVFVBTCwgQ09OU1RS QUlOVCBjYyBOT1QgTlVMTCBiKTsgIC0tIGVycm9yCitFUlJPUjogIG5vdC1udWxsIGNvbnN0 cmFpbnRzIGFyZSBub3Qgc3VwcG9ydGVkIG9uIHZpcnR1YWwgZ2VuZXJhdGVkIGNvbHVtbnMK K0NSRUFURSBUQUJMRSBndGVzdDIxYXggKGEgaW50IFBSSU1BUlkgS0VZLCBiIGludCBHRU5F UkFURUQgQUxXQVlTIEFTIChudWxsaWYoYSwgMCkpIFZJUlRVQUwpOworQUxURVIgVEFCTEUg Z3Rlc3QyMWF4IEFERCBDT05TVFJBSU5UIGNjIE5PVCBOVUxMIGI7ICAtLSBlcnJvcgorRVJS T1I6ICBub3QtbnVsbCBjb25zdHJhaW50cyBhcmUgbm90IHN1cHBvcnRlZCBvbiB2aXJ0dWFs IGdlbmVyYXRlZCBjb2x1bW5zCitEUk9QIFRBQkxFIGd0ZXN0MjFheDsKK0NSRUFURSBUQUJM RSBndGVzdDIxYiAoYSBpbnQgUFJJTUFSWSBLRVksIGIgaW50IEdFTkVSQVRFRCBBTFdBWVMg QVMgKG51bGxpZihhLCAwKSkgVklSVFVBTCk7CiBBTFRFUiBUQUJMRSBndGVzdDIxYiBBTFRF UiBDT0xVTU4gYiBTRVQgTk9UIE5VTEw7Ci1JTlNFUlQgSU5UTyBndGVzdDIxYiAoYSkgVkFM VUVTICgxKTsgIC0tIG9rCi1JTlNFUlQgSU5UTyBndGVzdDIxYiAoYSkgVkFMVUVTICgwKTsg IC0tIHZpb2xhdGVzIGNvbnN0cmFpbnQKLUVSUk9SOiAgbnVsbCB2YWx1ZSBpbiBjb2x1bW4g ImIiIG9mIHJlbGF0aW9uICJndGVzdDIxYiIgdmlvbGF0ZXMgbm90LW51bGwgY29uc3RyYWlu dAotREVUQUlMOiAgRmFpbGluZyByb3cgY29udGFpbnMgKDAsIG51bGwpLgorRVJST1I6ICBu b3QtbnVsbCBjb25zdHJhaW50cyBhcmUgbm90IHN1cHBvcnRlZCBvbiB2aXJ0dWFsIGdlbmVy YXRlZCBjb2x1bW5zCitERVRBSUw6ICBDb2x1bW4gImIiIG9mIHJlbGF0aW9uICJndGVzdDIx YiIgaXMgYSB2aXJ0dWFsIGdlbmVyYXRlZCBjb2x1bW4uCistLUlOU0VSVCBJTlRPIGd0ZXN0 MjFiIChhKSBWQUxVRVMgKDEpOyAgLS0gb2sKKy0tSU5TRVJUIElOVE8gZ3Rlc3QyMWIgKGEp IFZBTFVFUyAoMCk7ICAtLSB2aW9sYXRlcyBjb25zdHJhaW50CiBBTFRFUiBUQUJMRSBndGVz dDIxYiBBTFRFUiBDT0xVTU4gYiBEUk9QIE5PVCBOVUxMOwotSU5TRVJUIElOVE8gZ3Rlc3Qy MWIgKGEpIFZBTFVFUyAoMCk7ICAtLSBvayBub3cKKy0tSU5TRVJUIElOVE8gZ3Rlc3QyMWIg KGEpIFZBTFVFUyAoMCk7ICAtLSBvayBub3cKIC0tIGluZGV4IGNvbnN0cmFpbnRzCi1DUkVB VEUgVEFCTEUgZ3Rlc3QyMmEgKGEgaW50IFBSSU1BUlkgS0VZLCBiIGludCBHRU5FUkFURUQg QUxXQVlTIEFTIChhIC8gMikgU1RPUkVEIFVOSVFVRSk7Ci1JTlNFUlQgSU5UTyBndGVzdDIy YSBWQUxVRVMgKDIpOwotSU5TRVJUIElOVE8gZ3Rlc3QyMmEgVkFMVUVTICgzKTsKLUVSUk9S OiAgZHVwbGljYXRlIGtleSB2YWx1ZSB2aW9sYXRlcyB1bmlxdWUgY29uc3RyYWludCAiZ3Rl c3QyMmFfYl9rZXkiCi1ERVRBSUw6ICBLZXkgKGIpPSgxKSBhbHJlYWR5IGV4aXN0cy4KLUlO U0VSVCBJTlRPIGd0ZXN0MjJhIFZBTFVFUyAoNCk7Ci1DUkVBVEUgVEFCTEUgZ3Rlc3QyMmIg KGEgaW50LCBiIGludCBHRU5FUkFURUQgQUxXQVlTIEFTIChhIC8gMikgU1RPUkVELCBQUklN QVJZIEtFWSAoYSwgYikpOwotSU5TRVJUIElOVE8gZ3Rlc3QyMmIgVkFMVUVTICgyKTsKLUlO U0VSVCBJTlRPIGd0ZXN0MjJiIFZBTFVFUyAoMik7Ci1FUlJPUjogIGR1cGxpY2F0ZSBrZXkg dmFsdWUgdmlvbGF0ZXMgdW5pcXVlIGNvbnN0cmFpbnQgImd0ZXN0MjJiX3BrZXkiCi1ERVRB SUw6ICBLZXkgKGEsIGIpPSgyLCAxKSBhbHJlYWR5IGV4aXN0cy4KK0NSRUFURSBUQUJMRSBn dGVzdDIyYSAoYSBpbnQgUFJJTUFSWSBLRVksIGIgaW50IEdFTkVSQVRFRCBBTFdBWVMgQVMg KGEgLyAyKSBWSVJUVUFMIFVOSVFVRSk7CitFUlJPUjogIHVuaXF1ZSBjb25zdHJhaW50cyBv biB2aXJ0dWFsIGdlbmVyYXRlZCBjb2x1bW5zIGFyZSBub3Qgc3VwcG9ydGVkCistLUlOU0VS VCBJTlRPIGd0ZXN0MjJhIFZBTFVFUyAoMik7CistLUlOU0VSVCBJTlRPIGd0ZXN0MjJhIFZB TFVFUyAoMyk7CistLUlOU0VSVCBJTlRPIGd0ZXN0MjJhIFZBTFVFUyAoNCk7CitDUkVBVEUg VEFCTEUgZ3Rlc3QyMmIgKGEgaW50LCBiIGludCBHRU5FUkFURUQgQUxXQVlTIEFTIChhIC8g MikgVklSVFVBTCwgUFJJTUFSWSBLRVkgKGEsIGIpKTsKK0VSUk9SOiAgbm90LW51bGwgY29u c3RyYWludHMgYXJlIG5vdCBzdXBwb3J0ZWQgb24gdmlydHVhbCBnZW5lcmF0ZWQgY29sdW1u cworLS1JTlNFUlQgSU5UTyBndGVzdDIyYiBWQUxVRVMgKDIpOworLS1JTlNFUlQgSU5UTyBn dGVzdDIyYiBWQUxVRVMgKDIpOwogLS0gaW5kZXhlcwotQ1JFQVRFIFRBQkxFIGd0ZXN0MjJj IChhIGludCwgYiBpbnQgR0VORVJBVEVEIEFMV0FZUyBBUyAoYSAqIDIpIFNUT1JFRCk7Ci1D UkVBVEUgSU5ERVggZ3Rlc3QyMmNfYl9pZHggT04gZ3Rlc3QyMmMgKGIpOwotQ1JFQVRFIElO REVYIGd0ZXN0MjJjX2V4cHJfaWR4IE9OIGd0ZXN0MjJjICgoYiAqIDMpKTsKLUNSRUFURSBJ TkRFWCBndGVzdDIyY19wcmVkX2lkeCBPTiBndGVzdDIyYyAoYSkgV0hFUkUgYiA+IDA7Ci1c ZCBndGVzdDIyYwotICAgICAgICAgICAgICAgICAgIFRhYmxlICJnZW5lcmF0ZWRfc3RvcmVk X3Rlc3RzLmd0ZXN0MjJjIgotIENvbHVtbiB8ICBUeXBlICAgfCBDb2xsYXRpb24gfCBOdWxs YWJsZSB8ICAgICAgICAgICAgICBEZWZhdWx0ICAgICAgICAgICAgICAgCi0tLS0tLS0tLSst LS0tLS0tLS0rLS0tLS0tLS0tLS0rLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0KLSBhICAgICAgfCBpbnRlZ2VyIHwgICAgICAgICAgIHwgICAgICAg ICAgfCAKLSBiICAgICAgfCBpbnRlZ2VyIHwgICAgICAgICAgIHwgICAgICAgICAgfCBnZW5l cmF0ZWQgYWx3YXlzIGFzIChhICogMikgc3RvcmVkCi1JbmRleGVzOgotICAgICJndGVzdDIy Y19iX2lkeCIgYnRyZWUgKGIpCi0gICAgImd0ZXN0MjJjX2V4cHJfaWR4IiBidHJlZSAoKGIg KiAzKSkKLSAgICAiZ3Rlc3QyMmNfcHJlZF9pZHgiIGJ0cmVlIChhKSBXSEVSRSBiID4gMAot Ci1JTlNFUlQgSU5UTyBndGVzdDIyYyBWQUxVRVMgKDEpLCAoMiksICgzKTsKLVNFVCBlbmFi bGVfc2Vxc2NhbiBUTyBvZmY7Ci1TRVQgZW5hYmxlX2JpdG1hcHNjYW4gVE8gb2ZmOwotRVhQ TEFJTiAoQ09TVFMgT0ZGKSBTRUxFQ1QgKiBGUk9NIGd0ZXN0MjJjIFdIRVJFIGIgPSA0Owot ICAgICAgICAgICAgICAgICBRVUVSWSBQTEFOICAgICAgICAgICAgICAgICAgCi0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KLSBJbmRleCBTY2FuIHVz aW5nIGd0ZXN0MjJjX2JfaWR4IG9uIGd0ZXN0MjJjCi0gICBJbmRleCBDb25kOiAoYiA9IDQp Ci0oMiByb3dzKQotCi1TRUxFQ1QgKiBGUk9NIGd0ZXN0MjJjIFdIRVJFIGIgPSA0OwotIGEg fCBiIAotLS0tKy0tLQotIDIgfCA0Ci0oMSByb3cpCi0KLUVYUExBSU4gKENPU1RTIE9GRikg U0VMRUNUICogRlJPTSBndGVzdDIyYyBXSEVSRSBiICogMyA9IDY7Ci0gICAgICAgICAgICAg ICAgICAgUVVFUlkgUExBTiAgICAgICAgICAgICAgICAgICAKLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQotIEluZGV4IFNjYW4gdXNpbmcgZ3Rl c3QyMmNfZXhwcl9pZHggb24gZ3Rlc3QyMmMKLSAgIEluZGV4IENvbmQ6ICgoYiAqIDMpID0g NikKLSgyIHJvd3MpCi0KLVNFTEVDVCAqIEZST00gZ3Rlc3QyMmMgV0hFUkUgYiAqIDMgPSA2 OwotIGEgfCBiIAotLS0tKy0tLQotIDEgfCAyCi0oMSByb3cpCi0KLUVYUExBSU4gKENPU1RT IE9GRikgU0VMRUNUICogRlJPTSBndGVzdDIyYyBXSEVSRSBhID0gMSBBTkQgYiA+IDA7Ci0g ICAgICAgICAgICAgICAgICAgUVVFUlkgUExBTiAgICAgICAgICAgICAgICAgICAKLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQotIEluZGV4IFNj YW4gdXNpbmcgZ3Rlc3QyMmNfcHJlZF9pZHggb24gZ3Rlc3QyMmMKLSAgIEluZGV4IENvbmQ6 IChhID0gMSkKLSgyIHJvd3MpCi0KLVNFTEVDVCAqIEZST00gZ3Rlc3QyMmMgV0hFUkUgYSA9 IDEgQU5EIGIgPiAwOwotIGEgfCBiIAotLS0tKy0tLQotIDEgfCAyCi0oMSByb3cpCi0KLUFM VEVSIFRBQkxFIGd0ZXN0MjJjIEFMVEVSIENPTFVNTiBiIFNFVCBFWFBSRVNTSU9OIEFTIChh ICogNCk7Ci1BTkFMWVpFIGd0ZXN0MjJjOwotRVhQTEFJTiAoQ09TVFMgT0ZGKSBTRUxFQ1Qg KiBGUk9NIGd0ZXN0MjJjIFdIRVJFIGIgPSA4OwotICAgICAgICAgICAgICAgICBRVUVSWSBQ TEFOICAgICAgICAgICAgICAgICAgCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0KLSBJbmRleCBTY2FuIHVzaW5nIGd0ZXN0MjJjX2JfaWR4IG9uIGd0 ZXN0MjJjCi0gICBJbmRleCBDb25kOiAoYiA9IDgpCi0oMiByb3dzKQotCi1TRUxFQ1QgKiBG Uk9NIGd0ZXN0MjJjIFdIRVJFIGIgPSA4OwotIGEgfCBiIAotLS0tKy0tLQotIDIgfCA4Ci0o MSByb3cpCi0KLUVYUExBSU4gKENPU1RTIE9GRikgU0VMRUNUICogRlJPTSBndGVzdDIyYyBX SEVSRSBiICogMyA9IDEyOwotICAgICAgICAgICAgICAgICAgIFFVRVJZIFBMQU4gICAgICAg ICAgICAgICAgICAgCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0KLSBJbmRleCBTY2FuIHVzaW5nIGd0ZXN0MjJjX2V4cHJfaWR4IG9uIGd0ZXN0 MjJjCi0gICBJbmRleCBDb25kOiAoKGIgKiAzKSA9IDEyKQotKDIgcm93cykKLQotU0VMRUNU ICogRlJPTSBndGVzdDIyYyBXSEVSRSBiICogMyA9IDEyOwotIGEgfCBiIAotLS0tKy0tLQot IDEgfCA0Ci0oMSByb3cpCi0KLUVYUExBSU4gKENPU1RTIE9GRikgU0VMRUNUICogRlJPTSBn dGVzdDIyYyBXSEVSRSBhID0gMSBBTkQgYiA+IDA7Ci0gICAgICAgICAgICAgICAgICAgUVVF UlkgUExBTiAgICAgICAgICAgICAgICAgICAKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLQotIEluZGV4IFNjYW4gdXNpbmcgZ3Rlc3QyMmNfcHJl ZF9pZHggb24gZ3Rlc3QyMmMKLSAgIEluZGV4IENvbmQ6IChhID0gMSkKLSgyIHJvd3MpCi0K LVNFTEVDVCAqIEZST00gZ3Rlc3QyMmMgV0hFUkUgYSA9IDEgQU5EIGIgPiAwOwotIGEgfCBi IAotLS0tKy0tLQotIDEgfCA0Ci0oMSByb3cpCi0KLVJFU0VUIGVuYWJsZV9zZXFzY2FuOwot UkVTRVQgZW5hYmxlX2JpdG1hcHNjYW47CitDUkVBVEUgVEFCTEUgZ3Rlc3QyMmMgKGEgaW50 LCBiIGludCBHRU5FUkFURUQgQUxXQVlTIEFTIChhICogMikgVklSVFVBTCk7CistLUNSRUFU RSBJTkRFWCBndGVzdDIyY19iX2lkeCBPTiBndGVzdDIyYyAoYik7CistLUNSRUFURSBJTkRF WCBndGVzdDIyY19leHByX2lkeCBPTiBndGVzdDIyYyAoKGIgKiAzKSk7CistLUNSRUFURSBJ TkRFWCBndGVzdDIyY19wcmVkX2lkeCBPTiBndGVzdDIyYyAoYSkgV0hFUkUgYiA+IDA7Cist LVxkIGd0ZXN0MjJjCistLUlOU0VSVCBJTlRPIGd0ZXN0MjJjIFZBTFVFUyAoMSksICgyKSwg KDMpOworLS1TRVQgZW5hYmxlX3NlcXNjYW4gVE8gb2ZmOworLS1TRVQgZW5hYmxlX2JpdG1h cHNjYW4gVE8gb2ZmOworLS1FWFBMQUlOIChDT1NUUyBPRkYpIFNFTEVDVCAqIEZST00gZ3Rl c3QyMmMgV0hFUkUgYiA9IDQ7CistLVNFTEVDVCAqIEZST00gZ3Rlc3QyMmMgV0hFUkUgYiA9 IDQ7CistLUVYUExBSU4gKENPU1RTIE9GRikgU0VMRUNUICogRlJPTSBndGVzdDIyYyBXSEVS RSBiICogMyA9IDY7CistLVNFTEVDVCAqIEZST00gZ3Rlc3QyMmMgV0hFUkUgYiAqIDMgPSA2 OworLS1FWFBMQUlOIChDT1NUUyBPRkYpIFNFTEVDVCAqIEZST00gZ3Rlc3QyMmMgV0hFUkUg YSA9IDEgQU5EIGIgPiAwOworLS1TRUxFQ1QgKiBGUk9NIGd0ZXN0MjJjIFdIRVJFIGEgPSAx IEFORCBiID4gMDsKKy0tQUxURVIgVEFCTEUgZ3Rlc3QyMmMgQUxURVIgQ09MVU1OIGIgU0VU IEVYUFJFU1NJT04gQVMgKGEgKiA0KTsKKy0tQU5BTFlaRSBndGVzdDIyYzsKKy0tRVhQTEFJ TiAoQ09TVFMgT0ZGKSBTRUxFQ1QgKiBGUk9NIGd0ZXN0MjJjIFdIRVJFIGIgPSA4OworLS1T RUxFQ1QgKiBGUk9NIGd0ZXN0MjJjIFdIRVJFIGIgPSA4OworLS1FWFBMQUlOIChDT1NUUyBP RkYpIFNFTEVDVCAqIEZST00gZ3Rlc3QyMmMgV0hFUkUgYiAqIDMgPSAxMjsKKy0tU0VMRUNU ICogRlJPTSBndGVzdDIyYyBXSEVSRSBiICogMyA9IDEyOworLS1FWFBMQUlOIChDT1NUUyBP RkYpIFNFTEVDVCAqIEZST00gZ3Rlc3QyMmMgV0hFUkUgYSA9IDEgQU5EIGIgPiAwOworLS1T RUxFQ1QgKiBGUk9NIGd0ZXN0MjJjIFdIRVJFIGEgPSAxIEFORCBiID4gMDsKKy0tUkVTRVQg ZW5hYmxlX3NlcXNjYW47CistLVJFU0VUIGVuYWJsZV9iaXRtYXBzY2FuOwogLS0gZm9yZWln biBrZXlzCiBDUkVBVEUgVEFCTEUgZ3Rlc3QyM2EgKHggaW50IFBSSU1BUlkgS0VZLCB5IGlu dCk7Ci1JTlNFUlQgSU5UTyBndGVzdDIzYSBWQUxVRVMgKDEsIDExKSwgKDIsIDIyKSwgKDMs IDMzKTsKLUNSRUFURSBUQUJMRSBndGVzdDIzeCAoYSBpbnQgUFJJTUFSWSBLRVksIGIgaW50 IEdFTkVSQVRFRCBBTFdBWVMgQVMgKGEgKiAyKSBTVE9SRUQgUkVGRVJFTkNFUyBndGVzdDIz YSAoeCkgT04gVVBEQVRFIENBU0NBREUpOyAgLS0gZXJyb3IKKy0tSU5TRVJUIElOVE8gZ3Rl c3QyM2EgVkFMVUVTICgxLCAxMSksICgyLCAyMiksICgzLCAzMyk7CitDUkVBVEUgVEFCTEUg Z3Rlc3QyM3ggKGEgaW50IFBSSU1BUlkgS0VZLCBiIGludCBHRU5FUkFURUQgQUxXQVlTIEFT IChhICogMikgVklSVFVBTCBSRUZFUkVOQ0VTIGd0ZXN0MjNhICh4KSBPTiBVUERBVEUgQ0FT Q0FERSk7ICAtLSBlcnJvcgogRVJST1I6ICBpbnZhbGlkIE9OIFVQREFURSBhY3Rpb24gZm9y IGZvcmVpZ24ga2V5IGNvbnN0cmFpbnQgY29udGFpbmluZyBnZW5lcmF0ZWQgY29sdW1uCi1D UkVBVEUgVEFCTEUgZ3Rlc3QyM3ggKGEgaW50IFBSSU1BUlkgS0VZLCBiIGludCBHRU5FUkFU RUQgQUxXQVlTIEFTIChhICogMikgU1RPUkVEIFJFRkVSRU5DRVMgZ3Rlc3QyM2EgKHgpIE9O IERFTEVURSBTRVQgTlVMTCk7ICAtLSBlcnJvcgorQ1JFQVRFIFRBQkxFIGd0ZXN0MjN4IChh IGludCBQUklNQVJZIEtFWSwgYiBpbnQgR0VORVJBVEVEIEFMV0FZUyBBUyAoYSAqIDIpIFZJ UlRVQUwgUkVGRVJFTkNFUyBndGVzdDIzYSAoeCkgT04gREVMRVRFIFNFVCBOVUxMKTsgIC0t IGVycm9yCiBFUlJPUjogIGludmFsaWQgT04gREVMRVRFIGFjdGlvbiBmb3IgZm9yZWlnbiBr ZXkgY29uc3RyYWludCBjb250YWluaW5nIGdlbmVyYXRlZCBjb2x1bW4KLUNSRUFURSBUQUJM RSBndGVzdDIzYiAoYSBpbnQgUFJJTUFSWSBLRVksIGIgaW50IEdFTkVSQVRFRCBBTFdBWVMg QVMgKGEgKiAyKSBTVE9SRUQgUkVGRVJFTkNFUyBndGVzdDIzYSAoeCkpOwotXGQgZ3Rlc3Qy M2IKLSAgICAgICAgICAgICAgICAgICBUYWJsZSAiZ2VuZXJhdGVkX3N0b3JlZF90ZXN0cy5n dGVzdDIzYiIKLSBDb2x1bW4gfCAgVHlwZSAgIHwgQ29sbGF0aW9uIHwgTnVsbGFibGUgfCAg ICAgICAgICAgICAgRGVmYXVsdCAgICAgICAgICAgICAgIAotLS0tLS0tLS0rLS0tLS0tLS0t Ky0tLS0tLS0tLS0tKy0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tCi0gYSAgICAgIHwgaW50ZWdlciB8ICAgICAgICAgICB8IG5vdCBudWxsIHwgCi0g YiAgICAgIHwgaW50ZWdlciB8ICAgICAgICAgICB8ICAgICAgICAgIHwgZ2VuZXJhdGVkIGFs d2F5cyBhcyAoYSAqIDIpIHN0b3JlZAotSW5kZXhlczoKLSAgICAiZ3Rlc3QyM2JfcGtleSIg UFJJTUFSWSBLRVksIGJ0cmVlIChhKQotRm9yZWlnbi1rZXkgY29uc3RyYWludHM6Ci0gICAg Imd0ZXN0MjNiX2JfZmtleSIgRk9SRUlHTiBLRVkgKGIpIFJFRkVSRU5DRVMgZ3Rlc3QyM2Eo eCkKLQotSU5TRVJUIElOVE8gZ3Rlc3QyM2IgVkFMVUVTICgxKTsgIC0tIG9rCi1JTlNFUlQg SU5UTyBndGVzdDIzYiBWQUxVRVMgKDUpOyAgLS0gZXJyb3IKLUVSUk9SOiAgaW5zZXJ0IG9y IHVwZGF0ZSBvbiB0YWJsZSAiZ3Rlc3QyM2IiIHZpb2xhdGVzIGZvcmVpZ24ga2V5IGNvbnN0 cmFpbnQgImd0ZXN0MjNiX2JfZmtleSIKLURFVEFJTDogIEtleSAoYik9KDEwKSBpcyBub3Qg cHJlc2VudCBpbiB0YWJsZSAiZ3Rlc3QyM2EiLgotQUxURVIgVEFCTEUgZ3Rlc3QyM2IgQUxU RVIgQ09MVU1OIGIgU0VUIEVYUFJFU1NJT04gQVMgKGEgKiA1KTsgLS0gZXJyb3IKLUVSUk9S OiAgaW5zZXJ0IG9yIHVwZGF0ZSBvbiB0YWJsZSAiZ3Rlc3QyM2IiIHZpb2xhdGVzIGZvcmVp Z24ga2V5IGNvbnN0cmFpbnQgImd0ZXN0MjNiX2JfZmtleSIKLURFVEFJTDogIEtleSAoYik9 KDUpIGlzIG5vdCBwcmVzZW50IGluIHRhYmxlICJndGVzdDIzYSIuCi1BTFRFUiBUQUJMRSBn dGVzdDIzYiBBTFRFUiBDT0xVTU4gYiBTRVQgRVhQUkVTU0lPTiBBUyAoYSAqIDEpOyAtLSBv awotRFJPUCBUQUJMRSBndGVzdDIzYjsKLURST1AgVEFCTEUgZ3Rlc3QyM2E7Ci1DUkVBVEUg VEFCTEUgZ3Rlc3QyM3AgKHggaW50LCB5IGludCBHRU5FUkFURUQgQUxXQVlTIEFTICh4ICog MikgU1RPUkVELCBQUklNQVJZIEtFWSAoeSkpOwotSU5TRVJUIElOVE8gZ3Rlc3QyM3AgVkFM VUVTICgxKSwgKDIpLCAoMyk7CitDUkVBVEUgVEFCTEUgZ3Rlc3QyM2IgKGEgaW50IFBSSU1B UlkgS0VZLCBiIGludCBHRU5FUkFURUQgQUxXQVlTIEFTIChhICogMikgVklSVFVBTCBSRUZF UkVOQ0VTIGd0ZXN0MjNhICh4KSk7CitFUlJPUjogIGZvcmVpZ24ga2V5IGNvbnN0cmFpbnRz IG9uIHZpcnR1YWwgZ2VuZXJhdGVkIGNvbHVtbnMgYXJlIG5vdCBzdXBwb3J0ZWQKKy0tXGQg Z3Rlc3QyM2IKKy0tSU5TRVJUIElOVE8gZ3Rlc3QyM2IgVkFMVUVTICgxKTsgIC0tIG9rCist LUlOU0VSVCBJTlRPIGd0ZXN0MjNiIFZBTFVFUyAoNSk7ICAtLSBlcnJvcgorLS1BTFRFUiBU QUJMRSBndGVzdDIzYiBBTFRFUiBDT0xVTU4gYiBTRVQgRVhQUkVTU0lPTiBBUyAoYSAqIDUp OyAtLSBlcnJvcgorLS1BTFRFUiBUQUJMRSBndGVzdDIzYiBBTFRFUiBDT0xVTU4gYiBTRVQg RVhQUkVTU0lPTiBBUyAoYSAqIDEpOyAtLSBvaworLS1EUk9QIFRBQkxFIGd0ZXN0MjNiOwor LS1EUk9QIFRBQkxFIGd0ZXN0MjNhOworQ1JFQVRFIFRBQkxFIGd0ZXN0MjNwICh4IGludCwg eSBpbnQgR0VORVJBVEVEIEFMV0FZUyBBUyAoeCAqIDIpIFZJUlRVQUwsIFBSSU1BUlkgS0VZ ICh5KSk7CitFUlJPUjogIG5vdC1udWxsIGNvbnN0cmFpbnRzIGFyZSBub3Qgc3VwcG9ydGVk IG9uIHZpcnR1YWwgZ2VuZXJhdGVkIGNvbHVtbnMKKy0tSU5TRVJUIElOVE8gZ3Rlc3QyM3Ag VkFMVUVTICgxKSwgKDIpLCAoMyk7CiBDUkVBVEUgVEFCTEUgZ3Rlc3QyM3EgKGEgaW50IFBS SU1BUlkgS0VZLCBiIGludCBSRUZFUkVOQ0VTIGd0ZXN0MjNwICh5KSk7Ci1JTlNFUlQgSU5U TyBndGVzdDIzcSBWQUxVRVMgKDEsIDIpOyAgLS0gb2sKLUlOU0VSVCBJTlRPIGd0ZXN0MjNx IFZBTFVFUyAoMiwgNSk7ICAtLSBlcnJvcgotRVJST1I6ICBpbnNlcnQgb3IgdXBkYXRlIG9u IHRhYmxlICJndGVzdDIzcSIgdmlvbGF0ZXMgZm9yZWlnbiBrZXkgY29uc3RyYWludCAiZ3Rl c3QyM3FfYl9ma2V5IgotREVUQUlMOiAgS2V5IChiKT0oNSkgaXMgbm90IHByZXNlbnQgaW4g dGFibGUgImd0ZXN0MjNwIi4KK0VSUk9SOiAgcmVsYXRpb24gImd0ZXN0MjNwIiBkb2VzIG5v dCBleGlzdAorLS1JTlNFUlQgSU5UTyBndGVzdDIzcSBWQUxVRVMgKDEsIDIpOyAgLS0gb2sK Ky0tSU5TRVJUIElOVE8gZ3Rlc3QyM3EgVkFMVUVTICgyLCA1KTsgIC0tIGVycm9yCiAtLSBk b21haW5zCiBDUkVBVEUgRE9NQUlOIGd0ZXN0ZG9tYWluMSBBUyBpbnQgQ0hFQ0sgKFZBTFVF IDwgMTApOwotQ1JFQVRFIFRBQkxFIGd0ZXN0MjQgKGEgaW50IFBSSU1BUlkgS0VZLCBiIGd0 ZXN0ZG9tYWluMSBHRU5FUkFURUQgQUxXQVlTIEFTIChhICogMikgU1RPUkVEKTsKLUlOU0VS VCBJTlRPIGd0ZXN0MjQgKGEpIFZBTFVFUyAoNCk7ICAtLSBvawotSU5TRVJUIElOVE8gZ3Rl c3QyNCAoYSkgVkFMVUVTICg2KTsgIC0tIGVycm9yCi1FUlJPUjogIHZhbHVlIGZvciBkb21h aW4gZ3Rlc3Rkb21haW4xIHZpb2xhdGVzIGNoZWNrIGNvbnN0cmFpbnQgImd0ZXN0ZG9tYWlu MV9jaGVjayIKK0NSRUFURSBUQUJMRSBndGVzdDI0IChhIGludCBQUklNQVJZIEtFWSwgYiBn dGVzdGRvbWFpbjEgR0VORVJBVEVEIEFMV0FZUyBBUyAoYSAqIDIpIFZJUlRVQUwpOworRVJS T1I6ICB2aXJ0dWFsIGdlbmVyYXRlZCBjb2x1bW4gImIiIGNhbm5vdCBoYXZlIGEgZG9tYWlu IHR5cGUKKy0tSU5TRVJUIElOVE8gZ3Rlc3QyNCAoYSkgVkFMVUVTICg0KTsgIC0tIG9rCist LUlOU0VSVCBJTlRPIGd0ZXN0MjQgKGEpIFZBTFVFUyAoNik7ICAtLSBlcnJvcgorQ1JFQVRF IFRZUEUgZ3Rlc3Rkb21haW4xcmFuZ2UgQVMgcmFuZ2UgKHN1YnR5cGUgPSBndGVzdGRvbWFp bjEpOworQ1JFQVRFIFRBQkxFIGd0ZXN0MjRyIChhIGludCBQUklNQVJZIEtFWSwgYiBndGVz dGRvbWFpbjFyYW5nZSBHRU5FUkFURUQgQUxXQVlTIEFTIChndGVzdGRvbWFpbjFyYW5nZShh LCBhICsgNSkpIFZJUlRVQUwpOworRVJST1I6ICB2aXJ0dWFsIGdlbmVyYXRlZCBjb2x1bW4g ImIiIGNhbm5vdCBoYXZlIGEgZG9tYWluIHR5cGUKKy0tSU5TRVJUIElOVE8gZ3Rlc3QyNHIg KGEpIFZBTFVFUyAoNCk7ICAtLSBvaworLS1JTlNFUlQgSU5UTyBndGVzdDI0ciAoYSkgVkFM VUVTICg2KTsgIC0tIGVycm9yCiAtLSB0eXBlZCB0YWJsZXMgKGN1cnJlbnRseSBub3Qgc3Vw cG9ydGVkKQogQ1JFQVRFIFRZUEUgZ3Rlc3RfdHlwZSBBUyAoZjEgaW50ZWdlciwgZjIgdGV4 dCwgZjMgYmlnaW50KTsKLUNSRUFURSBUQUJMRSBndGVzdDI4IE9GIGd0ZXN0X3R5cGUgKGYx IFdJVEggT1BUSU9OUyBHRU5FUkFURUQgQUxXQVlTIEFTIChmMiAqMikgU1RPUkVEKTsKK0NS RUFURSBUQUJMRSBndGVzdDI4IE9GIGd0ZXN0X3R5cGUgKGYxIFdJVEggT1BUSU9OUyBHRU5F UkFURUQgQUxXQVlTIEFTIChmMiAqMikgVklSVFVBTCk7CiBFUlJPUjogIGdlbmVyYXRlZCBj b2x1bW5zIGFyZSBub3Qgc3VwcG9ydGVkIG9uIHR5cGVkIHRhYmxlcwogRFJPUCBUWVBFIGd0 ZXN0X3R5cGUgQ0FTQ0FERTsKIC0tIHBhcnRpdGlvbmluZyBjYXNlcwogQ1JFQVRFIFRBQkxF IGd0ZXN0X3BhcmVudCAoZjEgZGF0ZSBOT1QgTlVMTCwgZjIgYmlnaW50LCBmMyBiaWdpbnQp IFBBUlRJVElPTiBCWSBSQU5HRSAoZjEpOwogQ1JFQVRFIFRBQkxFIGd0ZXN0X2NoaWxkIFBB UlRJVElPTiBPRiBndGVzdF9wYXJlbnQgKAotICAgIGYzIFdJVEggT1BUSU9OUyBHRU5FUkFU RUQgQUxXQVlTIEFTIChmMiAqIDIpIFNUT1JFRAorICAgIGYzIFdJVEggT1BUSU9OUyBHRU5F UkFURUQgQUxXQVlTIEFTIChmMiAqIDIpIFZJUlRVQUwKICkgRk9SIFZBTFVFUyBGUk9NICgn MjAxNi0wNy0wMScpIFRPICgnMjAxNi0wOC0wMScpOyAtLSBlcnJvcgogRVJST1I6ICBjaGls ZCBjb2x1bW4gImYzIiBzcGVjaWZpZXMgZ2VuZXJhdGlvbiBleHByZXNzaW9uCiBISU5UOiAg QSBjaGlsZCB0YWJsZSBjb2x1bW4gY2Fubm90IGJlIGdlbmVyYXRlZCB1bmxlc3MgaXRzIHBh cmVudCBjb2x1bW4gaXMuCi1DUkVBVEUgVEFCTEUgZ3Rlc3RfY2hpbGQgKGYxIGRhdGUgTk9U IE5VTEwsIGYyIGJpZ2ludCwgZjMgYmlnaW50IEdFTkVSQVRFRCBBTFdBWVMgQVMgKGYyICog MikgU1RPUkVEKTsKK0NSRUFURSBUQUJMRSBndGVzdF9jaGlsZCAoZjEgZGF0ZSBOT1QgTlVM TCwgZjIgYmlnaW50LCBmMyBiaWdpbnQgR0VORVJBVEVEIEFMV0FZUyBBUyAoZjIgKiAyKSBW SVJUVUFMKTsKIEFMVEVSIFRBQkxFIGd0ZXN0X3BhcmVudCBBVFRBQ0ggUEFSVElUSU9OIGd0 ZXN0X2NoaWxkIEZPUiBWQUxVRVMgRlJPTSAoJzIwMTYtMDctMDEnKSBUTyAoJzIwMTYtMDgt MDEnKTsgLS0gZXJyb3IKIEVSUk9SOiAgY29sdW1uICJmMyIgaW4gY2hpbGQgdGFibGUgbXVz dCBub3QgYmUgYSBnZW5lcmF0ZWQgY29sdW1uCiBEUk9QIFRBQkxFIGd0ZXN0X3BhcmVudCwg Z3Rlc3RfY2hpbGQ7Ci1DUkVBVEUgVEFCTEUgZ3Rlc3RfcGFyZW50IChmMSBkYXRlIE5PVCBO VUxMLCBmMiBiaWdpbnQsIGYzIGJpZ2ludCBHRU5FUkFURUQgQUxXQVlTIEFTIChmMiAqIDIp IFNUT1JFRCkgUEFSVElUSU9OIEJZIFJBTkdFIChmMSk7CitDUkVBVEUgVEFCTEUgZ3Rlc3Rf cGFyZW50IChmMSBkYXRlIE5PVCBOVUxMLCBmMiBiaWdpbnQsIGYzIGJpZ2ludCBHRU5FUkFU RUQgQUxXQVlTIEFTIChmMiAqIDIpIFZJUlRVQUwpIFBBUlRJVElPTiBCWSBSQU5HRSAoZjEp OwogQ1JFQVRFIFRBQkxFIGd0ZXN0X2NoaWxkIFBBUlRJVElPTiBPRiBndGVzdF9wYXJlbnQK ICAgRk9SIFZBTFVFUyBGUk9NICgnMjAxNi0wNy0wMScpIFRPICgnMjAxNi0wOC0wMScpOyAg LS0gaW5oZXJpdHMgZ2VuIGV4cHIKIENSRUFURSBUQUJMRSBndGVzdF9jaGlsZDIgUEFSVElU SU9OIE9GIGd0ZXN0X3BhcmVudCAoCi0gICAgZjMgV0lUSCBPUFRJT05TIEdFTkVSQVRFRCBB TFdBWVMgQVMgKGYyICogMjIpIFNUT1JFRCAgLS0gb3ZlcnJpZGVzIGdlbiBleHByCisgICAg ZjMgV0lUSCBPUFRJT05TIEdFTkVSQVRFRCBBTFdBWVMgQVMgKGYyICogMjIpIFZJUlRVQUwg IC0tIG92ZXJyaWRlcyBnZW4gZXhwcgogKSBGT1IgVkFMVUVTIEZST00gKCcyMDE2LTA4LTAx JykgVE8gKCcyMDE2LTA5LTAxJyk7CiBDUkVBVEUgVEFCTEUgZ3Rlc3RfY2hpbGQzIFBBUlRJ VElPTiBPRiBndGVzdF9wYXJlbnQgKAogICAgIGYzIERFRkFVTFQgNDIgIC0tIGVycm9yCkBA IC03OTQsNiArNzY4LDExIEBAIENSRUFURSBUQUJMRSBndGVzdF9jaGlsZDMgUEFSVElUSU9O IE9GIGd0ZXN0X3BhcmVudCAoCiAgICAgZjMgV0lUSCBPUFRJT05TIEdFTkVSQVRFRCBBTFdB WVMgQVMgSURFTlRJVFkgIC0tIGVycm9yCiApIEZPUiBWQUxVRVMgRlJPTSAoJzIwMTYtMDkt MDEnKSBUTyAoJzIwMTYtMTAtMDEnKTsKIEVSUk9SOiAgaWRlbnRpdHkgY29sdW1ucyBhcmUg bm90IHN1cHBvcnRlZCBvbiBwYXJ0aXRpb25zCitDUkVBVEUgVEFCTEUgZ3Rlc3RfY2hpbGQz IFBBUlRJVElPTiBPRiBndGVzdF9wYXJlbnQgKAorICAgIGYzIEdFTkVSQVRFRCBBTFdBWVMg QVMgKGYyICogMikgU1RPUkVEICAtLSBlcnJvcgorKSBGT1IgVkFMVUVTIEZST00gKCcyMDE2 LTA5LTAxJykgVE8gKCcyMDE2LTEwLTAxJyk7CitFUlJPUjogIGNvbHVtbiAiZjMiIGluaGVy aXRzIGZyb20gZ2VuZXJhdGVkIGNvbHVtbiBvZiBkaWZmZXJlbnQga2luZAorREVUQUlMOiAg UGFyZW50IGNvbHVtbiBpcyBWSVJUVUFMLCBjaGlsZCBjb2x1bW4gaXMgU1RPUkVELgogQ1JF QVRFIFRBQkxFIGd0ZXN0X2NoaWxkMyAoZjEgZGF0ZSBOT1QgTlVMTCwgZjIgYmlnaW50LCBm MyBiaWdpbnQpOwogQUxURVIgVEFCTEUgZ3Rlc3RfcGFyZW50IEFUVEFDSCBQQVJUSVRJT04g Z3Rlc3RfY2hpbGQzIEZPUiBWQUxVRVMgRlJPTSAoJzIwMTYtMDktMDEnKSBUTyAoJzIwMTYt MTAtMDEnKTsgLS0gZXJyb3IKIEVSUk9SOiAgY29sdW1uICJmMyIgaW4gY2hpbGQgdGFibGUg bXVzdCBiZSBhIGdlbmVyYXRlZCBjb2x1bW4KQEAgLTgwOCwzMiArNzg3LDM3IEBAIEVSUk9S OiAgdGFibGUgImd0ZXN0X2NoaWxkMyIgYmVpbmcgYXR0YWNoZWQgY29udGFpbnMgYW4gaWRl bnRpdHkgY29sdW1uICJmMyIKIERFVEFJTDogIFRoZSBuZXcgcGFydGl0aW9uIG1heSBub3Qg Y29udGFpbiBhbiBpZGVudGl0eSBjb2x1bW4uCiBEUk9QIFRBQkxFIGd0ZXN0X2NoaWxkMzsK IENSRUFURSBUQUJMRSBndGVzdF9jaGlsZDMgKGYxIGRhdGUgTk9UIE5VTEwsIGYyIGJpZ2lu dCwgZjMgYmlnaW50IEdFTkVSQVRFRCBBTFdBWVMgQVMgKGYyICogMzMpIFNUT1JFRCk7CitB TFRFUiBUQUJMRSBndGVzdF9wYXJlbnQgQVRUQUNIIFBBUlRJVElPTiBndGVzdF9jaGlsZDMg Rk9SIFZBTFVFUyBGUk9NICgnMjAxNi0wOS0wMScpIFRPICgnMjAxNi0xMC0wMScpOyAtLSBl cnJvcgorRVJST1I6ICBjb2x1bW4gImYzIiBpbmhlcml0cyBmcm9tIGdlbmVyYXRlZCBjb2x1 bW4gb2YgZGlmZmVyZW50IGtpbmQKK0RFVEFJTDogIFBhcmVudCBjb2x1bW4gaXMgVklSVFVB TCwgY2hpbGQgY29sdW1uIGlzIFNUT1JFRC4KK0RST1AgVEFCTEUgZ3Rlc3RfY2hpbGQzOwor Q1JFQVRFIFRBQkxFIGd0ZXN0X2NoaWxkMyAoZjEgZGF0ZSBOT1QgTlVMTCwgZjIgYmlnaW50 LCBmMyBiaWdpbnQgR0VORVJBVEVEIEFMV0FZUyBBUyAoZjIgKiAzMykgVklSVFVBTCk7CiBB TFRFUiBUQUJMRSBndGVzdF9wYXJlbnQgQVRUQUNIIFBBUlRJVElPTiBndGVzdF9jaGlsZDMg Rk9SIFZBTFVFUyBGUk9NICgnMjAxNi0wOS0wMScpIFRPICgnMjAxNi0xMC0wMScpOwogXGQg Z3Rlc3RfY2hpbGQKLSAgICAgICAgICAgICAgICAgIFRhYmxlICJnZW5lcmF0ZWRfc3RvcmVk X3Rlc3RzLmd0ZXN0X2NoaWxkIgotIENvbHVtbiB8ICBUeXBlICB8IENvbGxhdGlvbiB8IE51 bGxhYmxlIHwgICAgICAgICAgICAgICBEZWZhdWx0ICAgICAgICAgICAgICAgCi0tLS0tLS0t LSstLS0tLS0tLSstLS0tLS0tLS0tLSstLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0KKyAgICAgICAgICAgICAgVGFibGUgImdlbmVyYXRlZF92aXJ0 dWFsX3Rlc3RzLmd0ZXN0X2NoaWxkIgorIENvbHVtbiB8ICBUeXBlICB8IENvbGxhdGlvbiB8 IE51bGxhYmxlIHwgICAgICAgICAgIERlZmF1bHQgICAgICAgICAgICAKKy0tLS0tLS0tKy0t LS0tLS0tKy0tLS0tLS0tLS0tKy0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tCiAgZjEgICAgIHwgZGF0ZSAgIHwgICAgICAgICAgIHwgbm90IG51bGwgfCAKICBm MiAgICAgfCBiaWdpbnQgfCAgICAgICAgICAgfCAgICAgICAgICB8IAotIGYzICAgICB8IGJp Z2ludCB8ICAgICAgICAgICB8ICAgICAgICAgIHwgZ2VuZXJhdGVkIGFsd2F5cyBhcyAoZjIg KiAyKSBzdG9yZWQKKyBmMyAgICAgfCBiaWdpbnQgfCAgICAgICAgICAgfCAgICAgICAgICB8 IGdlbmVyYXRlZCBhbHdheXMgYXMgKGYyICogMikKIFBhcnRpdGlvbiBvZjogZ3Rlc3RfcGFy ZW50IEZPUiBWQUxVRVMgRlJPTSAoJzA3LTAxLTIwMTYnKSBUTyAoJzA4LTAxLTIwMTYnKQog CiBcZCBndGVzdF9jaGlsZDIKLSAgICAgICAgICAgICAgICAgIFRhYmxlICJnZW5lcmF0ZWRf c3RvcmVkX3Rlc3RzLmd0ZXN0X2NoaWxkMiIKLSBDb2x1bW4gfCAgVHlwZSAgfCBDb2xsYXRp b24gfCBOdWxsYWJsZSB8ICAgICAgICAgICAgICAgRGVmYXVsdCAgICAgICAgICAgICAgICAK LS0tLS0tLS0tKy0tLS0tLS0tKy0tLS0tLS0tLS0tKy0tLS0tLS0tLS0rLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyAgICAgICAgICAgICAgVGFibGUgImdlbmVy YXRlZF92aXJ0dWFsX3Rlc3RzLmd0ZXN0X2NoaWxkMiIKKyBDb2x1bW4gfCAgVHlwZSAgfCBD b2xsYXRpb24gfCBOdWxsYWJsZSB8ICAgICAgICAgICAgRGVmYXVsdCAgICAgICAgICAgIAor LS0tLS0tLS0rLS0tLS0tLS0rLS0tLS0tLS0tLS0rLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tCiAgZjEgICAgIHwgZGF0ZSAgIHwgICAgICAgICAgIHwgbm90 IG51bGwgfCAKICBmMiAgICAgfCBiaWdpbnQgfCAgICAgICAgICAgfCAgICAgICAgICB8IAot IGYzICAgICB8IGJpZ2ludCB8ICAgICAgICAgICB8ICAgICAgICAgIHwgZ2VuZXJhdGVkIGFs d2F5cyBhcyAoZjIgKiAyMikgc3RvcmVkCisgZjMgICAgIHwgYmlnaW50IHwgICAgICAgICAg IHwgICAgICAgICAgfCBnZW5lcmF0ZWQgYWx3YXlzIGFzIChmMiAqIDIyKQogUGFydGl0aW9u IG9mOiBndGVzdF9wYXJlbnQgRk9SIFZBTFVFUyBGUk9NICgnMDgtMDEtMjAxNicpIFRPICgn MDktMDEtMjAxNicpCiAKIFxkIGd0ZXN0X2NoaWxkMwotICAgICAgICAgICAgICAgICAgVGFi bGUgImdlbmVyYXRlZF9zdG9yZWRfdGVzdHMuZ3Rlc3RfY2hpbGQzIgotIENvbHVtbiB8ICBU eXBlICB8IENvbGxhdGlvbiB8IE51bGxhYmxlIHwgICAgICAgICAgICAgICBEZWZhdWx0ICAg ICAgICAgICAgICAgIAotLS0tLS0tLS0rLS0tLS0tLS0rLS0tLS0tLS0tLS0rLS0tLS0tLS0t LSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorICAgICAgICAgICAg ICBUYWJsZSAiZ2VuZXJhdGVkX3ZpcnR1YWxfdGVzdHMuZ3Rlc3RfY2hpbGQzIgorIENvbHVt biB8ICBUeXBlICB8IENvbGxhdGlvbiB8IE51bGxhYmxlIHwgICAgICAgICAgICBEZWZhdWx0 ICAgICAgICAgICAgCistLS0tLS0tLSstLS0tLS0tLSstLS0tLS0tLS0tLSstLS0tLS0tLS0t Ky0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICBmMSAgICAgfCBkYXRlICAgfCAg ICAgICAgICAgfCBub3QgbnVsbCB8IAogIGYyICAgICB8IGJpZ2ludCB8ICAgICAgICAgICB8 ICAgICAgICAgIHwgCi0gZjMgICAgIHwgYmlnaW50IHwgICAgICAgICAgIHwgICAgICAgICAg fCBnZW5lcmF0ZWQgYWx3YXlzIGFzIChmMiAqIDMzKSBzdG9yZWQKKyBmMyAgICAgfCBiaWdp bnQgfCAgICAgICAgICAgfCAgICAgICAgICB8IGdlbmVyYXRlZCBhbHdheXMgYXMgKGYyICog MzMpCiBQYXJ0aXRpb24gb2Y6IGd0ZXN0X3BhcmVudCBGT1IgVkFMVUVTIEZST00gKCcwOS0w MS0yMDE2JykgVE8gKCcxMC0wMS0yMDE2JykKIAogSU5TRVJUIElOVE8gZ3Rlc3RfcGFyZW50 IChmMSwgZjIpIFZBTFVFUyAoJzIwMTYtMDctMTUnLCAxKTsKQEAgLTg0NCwxMDMgKzgyOCwx MjEgQEAgU0VMRUNUIHRhYmxlb2lkOjpyZWdjbGFzcywgKiBGUk9NIGd0ZXN0X3BhcmVudCBP UkRFUiBCWSAxLCAyLCAzOwogLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tKy0tLS0rLS0t LQogIGd0ZXN0X2NoaWxkICB8IDA3LTE1LTIwMTYgfCAgMSB8ICAyCiAgZ3Rlc3RfY2hpbGQg IHwgMDctMTUtMjAxNiB8ICAyIHwgIDQKLSBndGVzdF9jaGlsZDIgfCAwOC0xNS0yMDE2IHwg IDMgfCA2NgorIGd0ZXN0X2NoaWxkMiB8IDA4LTE1LTIwMTYgfCAgMyB8ICA2CiAoMyByb3dz KQogCitTRUxFQ1QgdGFibGVvaWQ6OnJlZ2NsYXNzLCAqIEZST00gZ3Rlc3RfY2hpbGQgT1JE RVIgQlkgMSwgMiwgMzsKKyAgdGFibGVvaWQgICB8ICAgICBmMSAgICAgfCBmMiB8IGYzIAor LS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0rLS0tLSstLS0tCisgZ3Rlc3RfY2hpbGQgfCAw Ny0xNS0yMDE2IHwgIDEgfCAgMgorIGd0ZXN0X2NoaWxkIHwgMDctMTUtMjAxNiB8ICAyIHwg IDQKKygyIHJvd3MpCisKK1NFTEVDVCB0YWJsZW9pZDo6cmVnY2xhc3MsICogRlJPTSBndGVz dF9jaGlsZDIgT1JERVIgQlkgMSwgMiwgMzsgIC0tIHVzZXMgY2hpbGQncyBnZW5lcmF0aW9u IGV4cHJlc3Npb24sIG5vdCBwYXJlbnQncworICAgdGFibGVvaWQgICB8ICAgICBmMSAgICAg fCBmMiB8IGYzIAorLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tKy0tLS0rLS0tLQorIGd0 ZXN0X2NoaWxkMiB8IDA4LTE1LTIwMTYgfCAgMyB8IDY2CisoMSByb3cpCisKK1NFTEVDVCB0 YWJsZW9pZDo6cmVnY2xhc3MsICogRlJPTSBndGVzdF9jaGlsZDMgT1JERVIgQlkgMSwgMiwg MzsKKyB0YWJsZW9pZCB8IGYxIHwgZjIgfCBmMyAKKy0tLS0tLS0tLS0rLS0tLSstLS0tKy0t LS0KKygwIHJvd3MpCisKIFVQREFURSBndGVzdF9wYXJlbnQgU0VUIGYxID0gZjEgKyA2MCBX SEVSRSBmMiA9IDE7CiBTRUxFQ1QgdGFibGVvaWQ6OnJlZ2NsYXNzLCAqIEZST00gZ3Rlc3Rf cGFyZW50IE9SREVSIEJZIDEsIDIsIDM7CiAgICB0YWJsZW9pZCAgIHwgICAgIGYxICAgICB8 IGYyIHwgZjMgCiAtLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0rLS0tLSstLS0tCiAgZ3Rl c3RfY2hpbGQgIHwgMDctMTUtMjAxNiB8ICAyIHwgIDQKLSBndGVzdF9jaGlsZDIgfCAwOC0x NS0yMDE2IHwgIDMgfCA2NgotIGd0ZXN0X2NoaWxkMyB8IDA5LTEzLTIwMTYgfCAgMSB8IDMz CisgZ3Rlc3RfY2hpbGQyIHwgMDgtMTUtMjAxNiB8ICAzIHwgIDYKKyBndGVzdF9jaGlsZDMg fCAwOS0xMy0yMDE2IHwgIDEgfCAgMgogKDMgcm93cykKIAogLS0gYWx0ZXIgb25seSBwYXJl bnQncyBhbmQgb25lIGNoaWxkJ3MgZ2VuZXJhdGlvbiBleHByZXNzaW9uCiBBTFRFUiBUQUJM RSBPTkxZIGd0ZXN0X3BhcmVudCBBTFRFUiBDT0xVTU4gZjMgU0VUIEVYUFJFU1NJT04gQVMg KGYyICogNCk7CiBBTFRFUiBUQUJMRSBndGVzdF9jaGlsZCBBTFRFUiBDT0xVTU4gZjMgU0VU IEVYUFJFU1NJT04gQVMgKGYyICogMTApOwogXGQgZ3Rlc3RfcGFyZW50Ci0gICAgICAgICAg IFBhcnRpdGlvbmVkIHRhYmxlICJnZW5lcmF0ZWRfc3RvcmVkX3Rlc3RzLmd0ZXN0X3BhcmVu dCIKLSBDb2x1bW4gfCAgVHlwZSAgfCBDb2xsYXRpb24gfCBOdWxsYWJsZSB8ICAgICAgICAg ICAgICAgRGVmYXVsdCAgICAgICAgICAgICAgIAotLS0tLS0tLS0rLS0tLS0tLS0rLS0tLS0t LS0tLS0rLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t CisgICAgICAgUGFydGl0aW9uZWQgdGFibGUgImdlbmVyYXRlZF92aXJ0dWFsX3Rlc3RzLmd0 ZXN0X3BhcmVudCIKKyBDb2x1bW4gfCAgVHlwZSAgfCBDb2xsYXRpb24gfCBOdWxsYWJsZSB8 ICAgICAgICAgICBEZWZhdWx0ICAgICAgICAgICAgCistLS0tLS0tLSstLS0tLS0tLSstLS0t LS0tLS0tLSstLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogIGYx ICAgICB8IGRhdGUgICB8ICAgICAgICAgICB8IG5vdCBudWxsIHwgCiAgZjIgICAgIHwgYmln aW50IHwgICAgICAgICAgIHwgICAgICAgICAgfCAKLSBmMyAgICAgfCBiaWdpbnQgfCAgICAg ICAgICAgfCAgICAgICAgICB8IGdlbmVyYXRlZCBhbHdheXMgYXMgKGYyICogNCkgc3RvcmVk CisgZjMgICAgIHwgYmlnaW50IHwgICAgICAgICAgIHwgICAgICAgICAgfCBnZW5lcmF0ZWQg YWx3YXlzIGFzIChmMiAqIDQpCiBQYXJ0aXRpb24ga2V5OiBSQU5HRSAoZjEpCiBOdW1iZXIg b2YgcGFydGl0aW9uczogMyAoVXNlIFxkKyB0byBsaXN0IHRoZW0uKQogCiBcZCBndGVzdF9j aGlsZAotICAgICAgICAgICAgICAgICAgVGFibGUgImdlbmVyYXRlZF9zdG9yZWRfdGVzdHMu Z3Rlc3RfY2hpbGQiCi0gQ29sdW1uIHwgIFR5cGUgIHwgQ29sbGF0aW9uIHwgTnVsbGFibGUg fCAgICAgICAgICAgICAgIERlZmF1bHQgICAgICAgICAgICAgICAgCi0tLS0tLS0tLSstLS0t LS0tLSstLS0tLS0tLS0tLSstLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tCisgICAgICAgICAgICAgIFRhYmxlICJnZW5lcmF0ZWRfdmlydHVhbF90 ZXN0cy5ndGVzdF9jaGlsZCIKKyBDb2x1bW4gfCAgVHlwZSAgfCBDb2xsYXRpb24gfCBOdWxs YWJsZSB8ICAgICAgICAgICAgRGVmYXVsdCAgICAgICAgICAgIAorLS0tLS0tLS0rLS0tLS0t LS0rLS0tLS0tLS0tLS0rLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tCiAgZjEgICAgIHwgZGF0ZSAgIHwgICAgICAgICAgIHwgbm90IG51bGwgfCAKICBmMiAg ICAgfCBiaWdpbnQgfCAgICAgICAgICAgfCAgICAgICAgICB8IAotIGYzICAgICB8IGJpZ2lu dCB8ICAgICAgICAgICB8ICAgICAgICAgIHwgZ2VuZXJhdGVkIGFsd2F5cyBhcyAoZjIgKiAx MCkgc3RvcmVkCisgZjMgICAgIHwgYmlnaW50IHwgICAgICAgICAgIHwgICAgICAgICAgfCBn ZW5lcmF0ZWQgYWx3YXlzIGFzIChmMiAqIDEwKQogUGFydGl0aW9uIG9mOiBndGVzdF9wYXJl bnQgRk9SIFZBTFVFUyBGUk9NICgnMDctMDEtMjAxNicpIFRPICgnMDgtMDEtMjAxNicpCiAK IFxkIGd0ZXN0X2NoaWxkMgotICAgICAgICAgICAgICAgICAgVGFibGUgImdlbmVyYXRlZF9z dG9yZWRfdGVzdHMuZ3Rlc3RfY2hpbGQyIgotIENvbHVtbiB8ICBUeXBlICB8IENvbGxhdGlv biB8IE51bGxhYmxlIHwgICAgICAgICAgICAgICBEZWZhdWx0ICAgICAgICAgICAgICAgIAot LS0tLS0tLS0rLS0tLS0tLS0rLS0tLS0tLS0tLS0rLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorICAgICAgICAgICAgICBUYWJsZSAiZ2VuZXJh dGVkX3ZpcnR1YWxfdGVzdHMuZ3Rlc3RfY2hpbGQyIgorIENvbHVtbiB8ICBUeXBlICB8IENv bGxhdGlvbiB8IE51bGxhYmxlIHwgICAgICAgICAgICBEZWZhdWx0ICAgICAgICAgICAgCist LS0tLS0tLSstLS0tLS0tLSstLS0tLS0tLS0tLSstLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0KICBmMSAgICAgfCBkYXRlICAgfCAgICAgICAgICAgfCBub3Qg bnVsbCB8IAogIGYyICAgICB8IGJpZ2ludCB8ICAgICAgICAgICB8ICAgICAgICAgIHwgCi0g ZjMgICAgIHwgYmlnaW50IHwgICAgICAgICAgIHwgICAgICAgICAgfCBnZW5lcmF0ZWQgYWx3 YXlzIGFzIChmMiAqIDIyKSBzdG9yZWQKKyBmMyAgICAgfCBiaWdpbnQgfCAgICAgICAgICAg fCAgICAgICAgICB8IGdlbmVyYXRlZCBhbHdheXMgYXMgKGYyICogMjIpCiBQYXJ0aXRpb24g b2Y6IGd0ZXN0X3BhcmVudCBGT1IgVkFMVUVTIEZST00gKCcwOC0wMS0yMDE2JykgVE8gKCcw OS0wMS0yMDE2JykKIAogXGQgZ3Rlc3RfY2hpbGQzCi0gICAgICAgICAgICAgICAgICBUYWJs ZSAiZ2VuZXJhdGVkX3N0b3JlZF90ZXN0cy5ndGVzdF9jaGlsZDMiCi0gQ29sdW1uIHwgIFR5 cGUgIHwgQ29sbGF0aW9uIHwgTnVsbGFibGUgfCAgICAgICAgICAgICAgIERlZmF1bHQgICAg ICAgICAgICAgICAgCi0tLS0tLS0tLSstLS0tLS0tLSstLS0tLS0tLS0tLSstLS0tLS0tLS0t Ky0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgICAgICAgICAgICAg IFRhYmxlICJnZW5lcmF0ZWRfdmlydHVhbF90ZXN0cy5ndGVzdF9jaGlsZDMiCisgQ29sdW1u IHwgIFR5cGUgIHwgQ29sbGF0aW9uIHwgTnVsbGFibGUgfCAgICAgICAgICAgIERlZmF1bHQg ICAgICAgICAgICAKKy0tLS0tLS0tKy0tLS0tLS0tKy0tLS0tLS0tLS0tKy0tLS0tLS0tLS0r LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogIGYxICAgICB8IGRhdGUgICB8ICAg ICAgICAgICB8IG5vdCBudWxsIHwgCiAgZjIgICAgIHwgYmlnaW50IHwgICAgICAgICAgIHwg ICAgICAgICAgfCAKLSBmMyAgICAgfCBiaWdpbnQgfCAgICAgICAgICAgfCAgICAgICAgICB8 IGdlbmVyYXRlZCBhbHdheXMgYXMgKGYyICogMzMpIHN0b3JlZAorIGYzICAgICB8IGJpZ2lu dCB8ICAgICAgICAgICB8ICAgICAgICAgIHwgZ2VuZXJhdGVkIGFsd2F5cyBhcyAoZjIgKiAz MykKIFBhcnRpdGlvbiBvZjogZ3Rlc3RfcGFyZW50IEZPUiBWQUxVRVMgRlJPTSAoJzA5LTAx LTIwMTYnKSBUTyAoJzEwLTAxLTIwMTYnKQogCiBTRUxFQ1QgdGFibGVvaWQ6OnJlZ2NsYXNz LCAqIEZST00gZ3Rlc3RfcGFyZW50IE9SREVSIEJZIDEsIDIsIDM7CiAgICB0YWJsZW9pZCAg IHwgICAgIGYxICAgICB8IGYyIHwgZjMgCiAtLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0r LS0tLSstLS0tCi0gZ3Rlc3RfY2hpbGQgIHwgMDctMTUtMjAxNiB8ICAyIHwgMjAKLSBndGVz dF9jaGlsZDIgfCAwOC0xNS0yMDE2IHwgIDMgfCA2NgotIGd0ZXN0X2NoaWxkMyB8IDA5LTEz LTIwMTYgfCAgMSB8IDMzCisgZ3Rlc3RfY2hpbGQgIHwgMDctMTUtMjAxNiB8ICAyIHwgIDgK KyBndGVzdF9jaGlsZDIgfCAwOC0xNS0yMDE2IHwgIDMgfCAxMgorIGd0ZXN0X2NoaWxkMyB8 IDA5LTEzLTIwMTYgfCAgMSB8ICA0CiAoMyByb3dzKQogCiAtLSBhbHRlciBnZW5lcmF0aW9u IGV4cHJlc3Npb24gb2YgcGFyZW50IGFuZCBhbGwgaXRzIGNoaWxkcmVuIGFsdG9nZXRoZXIK IEFMVEVSIFRBQkxFIGd0ZXN0X3BhcmVudCBBTFRFUiBDT0xVTU4gZjMgU0VUIEVYUFJFU1NJ T04gQVMgKGYyICogMik7CiBcZCBndGVzdF9wYXJlbnQKLSAgICAgICAgICAgUGFydGl0aW9u ZWQgdGFibGUgImdlbmVyYXRlZF9zdG9yZWRfdGVzdHMuZ3Rlc3RfcGFyZW50IgotIENvbHVt biB8ICBUeXBlICB8IENvbGxhdGlvbiB8IE51bGxhYmxlIHwgICAgICAgICAgICAgICBEZWZh dWx0ICAgICAgICAgICAgICAgCi0tLS0tLS0tLSstLS0tLS0tLSstLS0tLS0tLS0tLSstLS0t LS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyAgICAgICBQ YXJ0aXRpb25lZCB0YWJsZSAiZ2VuZXJhdGVkX3ZpcnR1YWxfdGVzdHMuZ3Rlc3RfcGFyZW50 IgorIENvbHVtbiB8ICBUeXBlICB8IENvbGxhdGlvbiB8IE51bGxhYmxlIHwgICAgICAgICAg IERlZmF1bHQgICAgICAgICAgICAKKy0tLS0tLS0tKy0tLS0tLS0tKy0tLS0tLS0tLS0tKy0t LS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgZjEgICAgIHwgZGF0 ZSAgIHwgICAgICAgICAgIHwgbm90IG51bGwgfCAKICBmMiAgICAgfCBiaWdpbnQgfCAgICAg ICAgICAgfCAgICAgICAgICB8IAotIGYzICAgICB8IGJpZ2ludCB8ICAgICAgICAgICB8ICAg ICAgICAgIHwgZ2VuZXJhdGVkIGFsd2F5cyBhcyAoZjIgKiAyKSBzdG9yZWQKKyBmMyAgICAg fCBiaWdpbnQgfCAgICAgICAgICAgfCAgICAgICAgICB8IGdlbmVyYXRlZCBhbHdheXMgYXMg KGYyICogMikKIFBhcnRpdGlvbiBrZXk6IFJBTkdFIChmMSkKIE51bWJlciBvZiBwYXJ0aXRp b25zOiAzIChVc2UgXGQrIHRvIGxpc3QgdGhlbS4pCiAKIFxkIGd0ZXN0X2NoaWxkCi0gICAg ICAgICAgICAgICAgICBUYWJsZSAiZ2VuZXJhdGVkX3N0b3JlZF90ZXN0cy5ndGVzdF9jaGls ZCIKLSBDb2x1bW4gfCAgVHlwZSAgfCBDb2xsYXRpb24gfCBOdWxsYWJsZSB8ICAgICAgICAg ICAgICAgRGVmYXVsdCAgICAgICAgICAgICAgIAotLS0tLS0tLS0rLS0tLS0tLS0rLS0tLS0t LS0tLS0rLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t CisgICAgICAgICAgICAgIFRhYmxlICJnZW5lcmF0ZWRfdmlydHVhbF90ZXN0cy5ndGVzdF9j aGlsZCIKKyBDb2x1bW4gfCAgVHlwZSAgfCBDb2xsYXRpb24gfCBOdWxsYWJsZSB8ICAgICAg ICAgICBEZWZhdWx0ICAgICAgICAgICAgCistLS0tLS0tLSstLS0tLS0tLSstLS0tLS0tLS0t LSstLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogIGYxICAgICB8 IGRhdGUgICB8ICAgICAgICAgICB8IG5vdCBudWxsIHwgCiAgZjIgICAgIHwgYmlnaW50IHwg ICAgICAgICAgIHwgICAgICAgICAgfCAKLSBmMyAgICAgfCBiaWdpbnQgfCAgICAgICAgICAg fCAgICAgICAgICB8IGdlbmVyYXRlZCBhbHdheXMgYXMgKGYyICogMikgc3RvcmVkCisgZjMg ICAgIHwgYmlnaW50IHwgICAgICAgICAgIHwgICAgICAgICAgfCBnZW5lcmF0ZWQgYWx3YXlz IGFzIChmMiAqIDIpCiBQYXJ0aXRpb24gb2Y6IGd0ZXN0X3BhcmVudCBGT1IgVkFMVUVTIEZS T00gKCcwNy0wMS0yMDE2JykgVE8gKCcwOC0wMS0yMDE2JykKIAogXGQgZ3Rlc3RfY2hpbGQy Ci0gICAgICAgICAgICAgICAgIFRhYmxlICJnZW5lcmF0ZWRfc3RvcmVkX3Rlc3RzLmd0ZXN0 X2NoaWxkMiIKLSBDb2x1bW4gfCAgVHlwZSAgfCBDb2xsYXRpb24gfCBOdWxsYWJsZSB8ICAg ICAgICAgICAgICAgRGVmYXVsdCAgICAgICAgICAgICAgIAotLS0tLS0tLS0rLS0tLS0tLS0r LS0tLS0tLS0tLS0rLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tCisgICAgICAgICAgICAgVGFibGUgImdlbmVyYXRlZF92aXJ0dWFsX3Rlc3RzLmd0 ZXN0X2NoaWxkMiIKKyBDb2x1bW4gfCAgVHlwZSAgfCBDb2xsYXRpb24gfCBOdWxsYWJsZSB8 ICAgICAgICAgICBEZWZhdWx0ICAgICAgICAgICAgCistLS0tLS0tLSstLS0tLS0tLSstLS0t LS0tLS0tLSstLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogIGYx ICAgICB8IGRhdGUgICB8ICAgICAgICAgICB8IG5vdCBudWxsIHwgCiAgZjIgICAgIHwgYmln aW50IHwgICAgICAgICAgIHwgICAgICAgICAgfCAKLSBmMyAgICAgfCBiaWdpbnQgfCAgICAg ICAgICAgfCAgICAgICAgICB8IGdlbmVyYXRlZCBhbHdheXMgYXMgKGYyICogMikgc3RvcmVk CisgZjMgICAgIHwgYmlnaW50IHwgICAgICAgICAgIHwgICAgICAgICAgfCBnZW5lcmF0ZWQg YWx3YXlzIGFzIChmMiAqIDIpCiBQYXJ0aXRpb24gb2Y6IGd0ZXN0X3BhcmVudCBGT1IgVkFM VUVTIEZST00gKCcwOC0wMS0yMDE2JykgVE8gKCcwOS0wMS0yMDE2JykKIAogXGQgZ3Rlc3Rf Y2hpbGQzCi0gICAgICAgICAgICAgICAgIFRhYmxlICJnZW5lcmF0ZWRfc3RvcmVkX3Rlc3Rz Lmd0ZXN0X2NoaWxkMyIKLSBDb2x1bW4gfCAgVHlwZSAgfCBDb2xsYXRpb24gfCBOdWxsYWJs ZSB8ICAgICAgICAgICAgICAgRGVmYXVsdCAgICAgICAgICAgICAgIAotLS0tLS0tLS0rLS0t LS0tLS0rLS0tLS0tLS0tLS0rLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tCisgICAgICAgICAgICAgVGFibGUgImdlbmVyYXRlZF92aXJ0dWFsX3Rl c3RzLmd0ZXN0X2NoaWxkMyIKKyBDb2x1bW4gfCAgVHlwZSAgfCBDb2xsYXRpb24gfCBOdWxs YWJsZSB8ICAgICAgICAgICBEZWZhdWx0ICAgICAgICAgICAgCistLS0tLS0tLSstLS0tLS0t LSstLS0tLS0tLS0tLSstLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LQogIGYxICAgICB8IGRhdGUgICB8ICAgICAgICAgICB8IG5vdCBudWxsIHwgCiAgZjIgICAg IHwgYmlnaW50IHwgICAgICAgICAgIHwgICAgICAgICAgfCAKLSBmMyAgICAgfCBiaWdpbnQg fCAgICAgICAgICAgfCAgICAgICAgICB8IGdlbmVyYXRlZCBhbHdheXMgYXMgKGYyICogMikg c3RvcmVkCisgZjMgICAgIHwgYmlnaW50IHwgICAgICAgICAgIHwgICAgICAgICAgfCBnZW5l cmF0ZWQgYWx3YXlzIGFzIChmMiAqIDIpCiBQYXJ0aXRpb24gb2Y6IGd0ZXN0X3BhcmVudCBG T1IgVkFMVUVTIEZST00gKCcwOS0wMS0yMDE2JykgVE8gKCcxMC0wMS0yMDE2JykKIAogU0VM RUNUIHRhYmxlb2lkOjpyZWdjbGFzcywgKiBGUk9NIGd0ZXN0X3BhcmVudCBPUkRFUiBCWSAx LCAyLCAzOwpAQCAtOTUzLDIwICs5NTUsMjAgQEAgU0VMRUNUIHRhYmxlb2lkOjpyZWdjbGFz cywgKiBGUk9NIGd0ZXN0X3BhcmVudCBPUkRFUiBCWSAxLCAyLCAzOwogCiAtLSB3ZSBsZWF2 ZSB0aGVzZSB0YWJsZXMgYXJvdW5kIGZvciBwdXJwb3NlcyBvZiB0ZXN0aW5nIGR1bXAvcmVs b2FkL3VwZ3JhZGUKIC0tIGdlbmVyYXRlZCBjb2x1bW5zIGluIHBhcnRpdGlvbiBrZXkgKG5v dCBhbGxvd2VkKQotQ1JFQVRFIFRBQkxFIGd0ZXN0X3BhcnRfa2V5IChmMSBkYXRlIE5PVCBO VUxMLCBmMiBiaWdpbnQsIGYzIGJpZ2ludCBHRU5FUkFURUQgQUxXQVlTIEFTIChmMiAqIDIp IFNUT1JFRCkgUEFSVElUSU9OIEJZIFJBTkdFIChmMyk7CitDUkVBVEUgVEFCTEUgZ3Rlc3Rf cGFydF9rZXkgKGYxIGRhdGUgTk9UIE5VTEwsIGYyIGJpZ2ludCwgZjMgYmlnaW50IEdFTkVS QVRFRCBBTFdBWVMgQVMgKGYyICogMikgVklSVFVBTCkgUEFSVElUSU9OIEJZIFJBTkdFIChm Myk7CiBFUlJPUjogIGNhbm5vdCB1c2UgZ2VuZXJhdGVkIGNvbHVtbiBpbiBwYXJ0aXRpb24g a2V5Ci1MSU5FIDE6IC4uLkVORVJBVEVEIEFMV0FZUyBBUyAoZjIgKiAyKSBTVE9SRUQpIFBB UlRJVElPTiBCWSBSQU5HRSAoZjMpOworTElORSAxOiAuLi5ORVJBVEVEIEFMV0FZUyBBUyAo ZjIgKiAyKSBWSVJUVUFMKSBQQVJUSVRJT04gQlkgUkFOR0UgKGYzKTsKICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICBeCiBERVRBSUw6ICBDb2x1bW4gImYzIiBpcyBhIGdlbmVyYXRlZCBjb2x1bW4uCi1DUkVB VEUgVEFCTEUgZ3Rlc3RfcGFydF9rZXkgKGYxIGRhdGUgTk9UIE5VTEwsIGYyIGJpZ2ludCwg ZjMgYmlnaW50IEdFTkVSQVRFRCBBTFdBWVMgQVMgKGYyICogMikgU1RPUkVEKSBQQVJUSVRJ T04gQlkgUkFOR0UgKChmMyAqIDMpKTsKK0NSRUFURSBUQUJMRSBndGVzdF9wYXJ0X2tleSAo ZjEgZGF0ZSBOT1QgTlVMTCwgZjIgYmlnaW50LCBmMyBiaWdpbnQgR0VORVJBVEVEIEFMV0FZ UyBBUyAoZjIgKiAyKSBWSVJUVUFMKSBQQVJUSVRJT04gQlkgUkFOR0UgKChmMyAqIDMpKTsK IEVSUk9SOiAgY2Fubm90IHVzZSBnZW5lcmF0ZWQgY29sdW1uIGluIHBhcnRpdGlvbiBrZXkK LUxJTkUgMTogLi4uRUQgQUxXQVlTIEFTIChmMiAqIDIpIFNUT1JFRCkgUEFSVElUSU9OIEJZ IFJBTkdFICgoZjMgKiAzKSk7CitMSU5FIDE6IC4uLkQgQUxXQVlTIEFTIChmMiAqIDIpIFZJ UlRVQUwpIFBBUlRJVElPTiBCWSBSQU5HRSAoKGYzICogMykpOwogICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIF4KIERFVEFJ TDogIENvbHVtbiAiZjMiIGlzIGEgZ2VuZXJhdGVkIGNvbHVtbi4KIC0tIEFMVEVSIFRBQkxF IC4uLiBBREQgQ09MVU1OCiBDUkVBVEUgVEFCTEUgZ3Rlc3QyNSAoYSBpbnQgUFJJTUFSWSBL RVkpOwogSU5TRVJUIElOVE8gZ3Rlc3QyNSBWQUxVRVMgKDMpLCAoNCk7Ci1BTFRFUiBUQUJM RSBndGVzdDI1IEFERCBDT0xVTU4gYiBpbnQgR0VORVJBVEVEIEFMV0FZUyBBUyAoYSAqIDIp IFNUT1JFRCwgQUxURVIgQ09MVU1OIGIgU0VUIEVYUFJFU1NJT04gQVMgKGEgKiAzKTsKK0FM VEVSIFRBQkxFIGd0ZXN0MjUgQUREIENPTFVNTiBiIGludCBHRU5FUkFURUQgQUxXQVlTIEFT IChhICogMikgVklSVFVBTCwgQUxURVIgQ09MVU1OIGIgU0VUIEVYUFJFU1NJT04gQVMgKGEg KiAzKTsKIFNFTEVDVCAqIEZST00gZ3Rlc3QyNSBPUkRFUiBCWSBhOwogIGEgfCBiICAKIC0t LSstLS0tCkBAIC05NzQsMTYgKzk3NiwxNiBAQCBTRUxFQ1QgKiBGUk9NIGd0ZXN0MjUgT1JE RVIgQlkgYTsKICA0IHwgMTIKICgyIHJvd3MpCiAKLUFMVEVSIFRBQkxFIGd0ZXN0MjUgQURE IENPTFVNTiB4IGludCBHRU5FUkFURUQgQUxXQVlTIEFTIChiICogNCkgU1RPUkVEOyAgLS0g ZXJyb3IKK0FMVEVSIFRBQkxFIGd0ZXN0MjUgQUREIENPTFVNTiB4IGludCBHRU5FUkFURUQg QUxXQVlTIEFTIChiICogNCkgVklSVFVBTDsgIC0tIGVycm9yCiBFUlJPUjogIGNhbm5vdCB1 c2UgZ2VuZXJhdGVkIGNvbHVtbiAiYiIgaW4gY29sdW1uIGdlbmVyYXRpb24gZXhwcmVzc2lv bgogREVUQUlMOiAgQSBnZW5lcmF0ZWQgY29sdW1uIGNhbm5vdCByZWZlcmVuY2UgYW5vdGhl ciBnZW5lcmF0ZWQgY29sdW1uLgotQUxURVIgVEFCTEUgZ3Rlc3QyNSBBREQgQ09MVU1OIHgg aW50IEdFTkVSQVRFRCBBTFdBWVMgQVMgKHogKiA0KSBTVE9SRUQ7ICAtLSBlcnJvcgorQUxU RVIgVEFCTEUgZ3Rlc3QyNSBBREQgQ09MVU1OIHggaW50IEdFTkVSQVRFRCBBTFdBWVMgQVMg KHogKiA0KSBWSVJUVUFMOyAgLS0gZXJyb3IKIEVSUk9SOiAgY29sdW1uICJ6IiBkb2VzIG5v dCBleGlzdAogQUxURVIgVEFCTEUgZ3Rlc3QyNSBBREQgQ09MVU1OIGMgaW50IERFRkFVTFQg NDIsCi0gIEFERCBDT0xVTU4geCBpbnQgR0VORVJBVEVEIEFMV0FZUyBBUyAoYyAqIDQpIFNU T1JFRDsKKyAgQUREIENPTFVNTiB4IGludCBHRU5FUkFURUQgQUxXQVlTIEFTIChjICogNCkg VklSVFVBTDsKIEFMVEVSIFRBQkxFIGd0ZXN0MjUgQUREIENPTFVNTiBkIGludCBERUZBVUxU IDEwMTsKIEFMVEVSIFRBQkxFIGd0ZXN0MjUgQUxURVIgQ09MVU1OIGQgU0VUIERBVEEgVFlQ RSBmbG9hdDgsCi0gIEFERCBDT0xVTU4geSBmbG9hdDggR0VORVJBVEVEIEFMV0FZUyBBUyAo ZCAqIDQpIFNUT1JFRDsKKyAgQUREIENPTFVNTiB5IGZsb2F0OCBHRU5FUkFURUQgQUxXQVlT IEFTIChkICogNCkgVklSVFVBTDsKIFNFTEVDVCAqIEZST00gZ3Rlc3QyNSBPUkRFUiBCWSBh OwogIGEgfCBiICB8IGMgIHwgIHggIHwgIGQgIHwgIHkgIAogLS0tKy0tLS0rLS0tLSstLS0t LSstLS0tLSstLS0tLQpAQCAtOTkyLDE1ICs5OTQsMTUgQEAgU0VMRUNUICogRlJPTSBndGVz dDI1IE9SREVSIEJZIGE7CiAoMiByb3dzKQogCiBcZCBndGVzdDI1Ci0gICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICBUYWJsZSAiZ2VuZXJhdGVkX3N0b3JlZF90ZXN0cy5ndGVz dDI1IgotIENvbHVtbiB8ICAgICAgIFR5cGUgICAgICAgfCBDb2xsYXRpb24gfCBOdWxsYWJs ZSB8ICAgICAgICAgICAgICAgICAgICAgICBEZWZhdWx0ICAgICAgICAgICAgICAgICAgICAg ICAgCi0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0rLS0tLS0tLS0t LSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgVGFibGUgImdlbmVyYXRlZF92aXJ0 dWFsX3Rlc3RzLmd0ZXN0MjUiCisgQ29sdW1uIHwgICAgICAgVHlwZSAgICAgICB8IENvbGxh dGlvbiB8IE51bGxhYmxlIHwgICAgICAgICAgICAgICAgICAgIERlZmF1bHQgICAgICAgICAg ICAgICAgICAgIAorLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tKy0t LS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0KICBhICAgICAgfCBpbnRlZ2VyICAgICAgICAgIHwgICAgICAgICAgIHwgbm90IG51bGwg fCAKLSBiICAgICAgfCBpbnRlZ2VyICAgICAgICAgIHwgICAgICAgICAgIHwgICAgICAgICAg fCBnZW5lcmF0ZWQgYWx3YXlzIGFzIChhICogMykgc3RvcmVkCisgYiAgICAgIHwgaW50ZWdl ciAgICAgICAgICB8ICAgICAgICAgICB8ICAgICAgICAgIHwgZ2VuZXJhdGVkIGFsd2F5cyBh cyAoYSAqIDMpCiAgYyAgICAgIHwgaW50ZWdlciAgICAgICAgICB8ICAgICAgICAgICB8ICAg ICAgICAgIHwgNDIKLSB4ICAgICAgfCBpbnRlZ2VyICAgICAgICAgIHwgICAgICAgICAgIHwg ICAgICAgICAgfCBnZW5lcmF0ZWQgYWx3YXlzIGFzIChjICogNCkgc3RvcmVkCisgeCAgICAg IHwgaW50ZWdlciAgICAgICAgICB8ICAgICAgICAgICB8ICAgICAgICAgIHwgZ2VuZXJhdGVk IGFsd2F5cyBhcyAoYyAqIDQpCiAgZCAgICAgIHwgZG91YmxlIHByZWNpc2lvbiB8ICAgICAg ICAgICB8ICAgICAgICAgIHwgMTAxCi0geSAgICAgIHwgZG91YmxlIHByZWNpc2lvbiB8ICAg ICAgICAgICB8ICAgICAgICAgIHwgZ2VuZXJhdGVkIGFsd2F5cyBhcyAoZCAqIDQ6OmRvdWJs ZSBwcmVjaXNpb24pIHN0b3JlZAorIHkgICAgICB8IGRvdWJsZSBwcmVjaXNpb24gfCAgICAg ICAgICAgfCAgICAgICAgICB8IGdlbmVyYXRlZCBhbHdheXMgYXMgKGQgKiA0Ojpkb3VibGUg cHJlY2lzaW9uKQogSW5kZXhlczoKICAgICAiZ3Rlc3QyNV9wa2V5IiBQUklNQVJZIEtFWSwg YnRyZWUgKGEpCiAKQEAgLTEwMDgsNyArMTAxMCw3IEBAIEluZGV4ZXM6CiBDUkVBVEUgVEFC TEUgZ3Rlc3QyNyAoCiAgICAgYSBpbnQsCiAgICAgYiBpbnQsCi0gICAgeCBpbnQgR0VORVJB VEVEIEFMV0FZUyBBUyAoKGEgKyBiKSAqIDIpIFNUT1JFRAorICAgIHggaW50IEdFTkVSQVRF RCBBTFdBWVMgQVMgKChhICsgYikgKiAyKSBWSVJUVUFMCiApOwogSU5TRVJUIElOVE8gZ3Rl c3QyNyAoYSwgYikgVkFMVUVTICgzLCA3KSwgKDQsIDExKTsKIEFMVEVSIFRBQkxFIGd0ZXN0 MjcgQUxURVIgQ09MVU1OIGEgVFlQRSB0ZXh0OyAgLS0gZXJyb3IKQEAgLTEwMTYsMTIgKzEw MTgsMTIgQEAgRVJST1I6ICBjYW5ub3QgYWx0ZXIgdHlwZSBvZiBhIGNvbHVtbiB1c2VkIGJ5 IGEgZ2VuZXJhdGVkIGNvbHVtbgogREVUQUlMOiAgQ29sdW1uICJhIiBpcyB1c2VkIGJ5IGdl bmVyYXRlZCBjb2x1bW4gIngiLgogQUxURVIgVEFCTEUgZ3Rlc3QyNyBBTFRFUiBDT0xVTU4g eCBUWVBFIG51bWVyaWM7CiBcZCBndGVzdDI3Ci0gICAgICAgICAgICAgICAgICAgICAgICBU YWJsZSAiZ2VuZXJhdGVkX3N0b3JlZF90ZXN0cy5ndGVzdDI3IgotIENvbHVtbiB8ICBUeXBl ICAgfCBDb2xsYXRpb24gfCBOdWxsYWJsZSB8ICAgICAgICAgICAgICAgICAgRGVmYXVsdCAg ICAgICAgICAgICAgICAgICAKLS0tLS0tLS0tKy0tLS0tLS0tLSstLS0tLS0tLS0tLSstLS0t LS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisg ICAgICAgICAgICAgICAgICAgIFRhYmxlICJnZW5lcmF0ZWRfdmlydHVhbF90ZXN0cy5ndGVz dDI3IgorIENvbHVtbiB8ICBUeXBlICAgfCBDb2xsYXRpb24gfCBOdWxsYWJsZSB8ICAgICAg ICAgICAgICAgRGVmYXVsdCAgICAgICAgICAgICAgIAorLS0tLS0tLS0rLS0tLS0tLS0tKy0t LS0tLS0tLS0tKy0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLQogIGEgICAgICB8IGludGVnZXIgfCAgICAgICAgICAgfCAgICAgICAgICB8IAogIGIg ICAgICB8IGludGVnZXIgfCAgICAgICAgICAgfCAgICAgICAgICB8IAotIHggICAgICB8IG51 bWVyaWMgfCAgICAgICAgICAgfCAgICAgICAgICB8IGdlbmVyYXRlZCBhbHdheXMgYXMgKCgo YSArIGIpICogMikpIHN0b3JlZAorIHggICAgICB8IG51bWVyaWMgfCAgICAgICAgICAgfCAg ICAgICAgICB8IGdlbmVyYXRlZCBhbHdheXMgYXMgKCgoYSArIGIpICogMikpCiAKIFNFTEVD VCAqIEZST00gZ3Rlc3QyNzsKICBhIHwgYiAgfCB4ICAKQEAgLTEwMzUsMjAgKzEwMzcsMTkg QEAgRVJST1I6ICBjYW5ub3Qgc3BlY2lmeSBVU0lORyB3aGVuIGFsdGVyaW5nIHR5cGUgb2Yg Z2VuZXJhdGVkIGNvbHVtbgogREVUQUlMOiAgQ29sdW1uICJ4IiBpcyBhIGdlbmVyYXRlZCBj b2x1bW4uCiBBTFRFUiBUQUJMRSBndGVzdDI3IEFMVEVSIENPTFVNTiB4IERST1AgREVGQVVM VDsgIC0tIGVycm9yCiBFUlJPUjogIGNvbHVtbiAieCIgb2YgcmVsYXRpb24gImd0ZXN0Mjci IGlzIGEgZ2VuZXJhdGVkIGNvbHVtbgotSElOVDogIFVzZSBBTFRFUiBUQUJMRSAuLi4gQUxU RVIgQ09MVU1OIC4uLiBEUk9QIEVYUFJFU1NJT04gaW5zdGVhZC4KIC0tIEl0J3MgcG9zc2li bGUgdG8gYWx0ZXIgdGhlIGNvbHVtbiB0eXBlcyB0aGlzIHdheToKIEFMVEVSIFRBQkxFIGd0 ZXN0MjcKICAgRFJPUCBDT0xVTU4geCwKICAgQUxURVIgQ09MVU1OIGEgVFlQRSBiaWdpbnQs CiAgIEFMVEVSIENPTFVNTiBiIFRZUEUgYmlnaW50LAotICBBREQgQ09MVU1OIHggYmlnaW50 IEdFTkVSQVRFRCBBTFdBWVMgQVMgKChhICsgYikgKiAyKSBTVE9SRUQ7CisgIEFERCBDT0xV TU4geCBiaWdpbnQgR0VORVJBVEVEIEFMV0FZUyBBUyAoKGEgKyBiKSAqIDIpIFZJUlRVQUw7 CiBcZCBndGVzdDI3Ci0gICAgICAgICAgICAgICAgICAgICAgVGFibGUgImdlbmVyYXRlZF9z dG9yZWRfdGVzdHMuZ3Rlc3QyNyIKLSBDb2x1bW4gfCAgVHlwZSAgfCBDb2xsYXRpb24gfCBO dWxsYWJsZSB8ICAgICAgICAgICAgICAgICBEZWZhdWx0ICAgICAgICAgICAgICAgICAgCi0t LS0tLS0tLSstLS0tLS0tLSstLS0tLS0tLS0tLSstLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorICAgICAgICAgICAgICAgICAgVGFibGUg ImdlbmVyYXRlZF92aXJ0dWFsX3Rlc3RzLmd0ZXN0MjciCisgQ29sdW1uIHwgIFR5cGUgIHwg Q29sbGF0aW9uIHwgTnVsbGFibGUgfCAgICAgICAgICAgICAgRGVmYXVsdCAgICAgICAgICAg ICAgCistLS0tLS0tLSstLS0tLS0tLSstLS0tLS0tLS0tLSstLS0tLS0tLS0tKy0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgYSAgICAgIHwgYmlnaW50IHwgICAgICAg ICAgIHwgICAgICAgICAgfCAKICBiICAgICAgfCBiaWdpbnQgfCAgICAgICAgICAgfCAgICAg ICAgICB8IAotIHggICAgICB8IGJpZ2ludCB8ICAgICAgICAgICB8ICAgICAgICAgIHwgZ2Vu ZXJhdGVkIGFsd2F5cyBhcyAoKGEgKyBiKSAqIDIpIHN0b3JlZAorIHggICAgICB8IGJpZ2lu dCB8ICAgICAgICAgICB8ICAgICAgICAgIHwgZ2VuZXJhdGVkIGFsd2F5cyBhcyAoKGEgKyBi KSAqIDIpCiAKIC0tIElkZWFsbHkgeW91IGNvdWxkIGp1c3QgZG8gdGhpcywgYnV0IG5vdCB0 b2RheSAoYW5kIHNob3VsZCB4IGNoYW5nZSB0eXBlPyk6CiBBTFRFUiBUQUJMRSBndGVzdDI3 CkBAIC0xMDU3LDEyICsxMDU4LDEyIEBAIEFMVEVSIFRBQkxFIGd0ZXN0MjcKIEVSUk9SOiAg Y2Fubm90IGFsdGVyIHR5cGUgb2YgYSBjb2x1bW4gdXNlZCBieSBhIGdlbmVyYXRlZCBjb2x1 bW4KIERFVEFJTDogIENvbHVtbiAiYSIgaXMgdXNlZCBieSBnZW5lcmF0ZWQgY29sdW1uICJ4 Ii4KIFxkIGd0ZXN0MjcKLSAgICAgICAgICAgICAgICAgICAgICBUYWJsZSAiZ2VuZXJhdGVk X3N0b3JlZF90ZXN0cy5ndGVzdDI3IgotIENvbHVtbiB8ICBUeXBlICB8IENvbGxhdGlvbiB8 IE51bGxhYmxlIHwgICAgICAgICAgICAgICAgIERlZmF1bHQgICAgICAgICAgICAgICAgICAK LS0tLS0tLS0tKy0tLS0tLS0tKy0tLS0tLS0tLS0tKy0tLS0tLS0tLS0rLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgICAgICAgICAgICAgICAgICBUYWJs ZSAiZ2VuZXJhdGVkX3ZpcnR1YWxfdGVzdHMuZ3Rlc3QyNyIKKyBDb2x1bW4gfCAgVHlwZSAg fCBDb2xsYXRpb24gfCBOdWxsYWJsZSB8ICAgICAgICAgICAgICBEZWZhdWx0ICAgICAgICAg ICAgICAKKy0tLS0tLS0tKy0tLS0tLS0tKy0tLS0tLS0tLS0tKy0tLS0tLS0tLS0rLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICBhICAgICAgfCBiaWdpbnQgfCAgICAg ICAgICAgfCAgICAgICAgICB8IAogIGIgICAgICB8IGJpZ2ludCB8ICAgICAgICAgICB8ICAg ICAgICAgIHwgCi0geCAgICAgIHwgYmlnaW50IHwgICAgICAgICAgIHwgICAgICAgICAgfCBn ZW5lcmF0ZWQgYWx3YXlzIGFzICgoYSArIGIpICogMikgc3RvcmVkCisgeCAgICAgIHwgYmln aW50IHwgICAgICAgICAgIHwgICAgICAgICAgfCBnZW5lcmF0ZWQgYWx3YXlzIGFzICgoYSAr IGIpICogMikKIAogU0VMRUNUICogRlJPTSBndGVzdDI3OwogIGEgfCBiICB8IHggIApAQCAt MTA3NCw3ICsxMDc1LDcgQEAgU0VMRUNUICogRlJPTSBndGVzdDI3OwogLS0gQUxURVIgVEFC TEUgLi4uIEFMVEVSIENPTFVNTiAuLi4gRFJPUCBFWFBSRVNTSU9OCiBDUkVBVEUgVEFCTEUg Z3Rlc3QyOSAoCiAgICAgYSBpbnQsCi0gICAgYiBpbnQgR0VORVJBVEVEIEFMV0FZUyBBUyAo YSAqIDIpIFNUT1JFRAorICAgIGIgaW50IEdFTkVSQVRFRCBBTFdBWVMgQVMgKGEgKiAyKSBW SVJUVUFMCiApOwogSU5TRVJUIElOVE8gZ3Rlc3QyOSAoYSkgVkFMVUVTICgzKSwgKDQpOwog U0VMRUNUICogRlJPTSBndGVzdDI5OwpAQCAtMTA4NSwxOCArMTA4NiwxOCBAQCBTRUxFQ1Qg KiBGUk9NIGd0ZXN0Mjk7CiAoMiByb3dzKQogCiBcZCBndGVzdDI5Ci0gICAgICAgICAgICAg ICAgICAgIFRhYmxlICJnZW5lcmF0ZWRfc3RvcmVkX3Rlc3RzLmd0ZXN0MjkiCi0gQ29sdW1u IHwgIFR5cGUgICB8IENvbGxhdGlvbiB8IE51bGxhYmxlIHwgICAgICAgICAgICAgIERlZmF1 bHQgICAgICAgICAgICAgICAKLS0tLS0tLS0tKy0tLS0tLS0tLSstLS0tLS0tLS0tLSstLS0t LS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorICAgICAgICAg ICAgICAgIFRhYmxlICJnZW5lcmF0ZWRfdmlydHVhbF90ZXN0cy5ndGVzdDI5IgorIENvbHVt biB8ICBUeXBlICAgfCBDb2xsYXRpb24gfCBOdWxsYWJsZSB8ICAgICAgICAgICBEZWZhdWx0 ICAgICAgICAgICAKKy0tLS0tLS0tKy0tLS0tLS0tLSstLS0tLS0tLS0tLSstLS0tLS0tLS0t Ky0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgYSAgICAgIHwgaW50ZWdlciB8ICAg ICAgICAgICB8ICAgICAgICAgIHwgCi0gYiAgICAgIHwgaW50ZWdlciB8ICAgICAgICAgICB8 ICAgICAgICAgIHwgZ2VuZXJhdGVkIGFsd2F5cyBhcyAoYSAqIDIpIHN0b3JlZAorIGIgICAg ICB8IGludGVnZXIgfCAgICAgICAgICAgfCAgICAgICAgICB8IGdlbmVyYXRlZCBhbHdheXMg YXMgKGEgKiAyKQogCiBBTFRFUiBUQUJMRSBndGVzdDI5IEFMVEVSIENPTFVNTiBhIFNFVCBF WFBSRVNTSU9OIEFTIChhICogMyk7ICAtLSBlcnJvcgogRVJST1I6ICBjb2x1bW4gImEiIG9m IHJlbGF0aW9uICJndGVzdDI5IiBpcyBub3QgYSBnZW5lcmF0ZWQgY29sdW1uCiBBTFRFUiBU QUJMRSBndGVzdDI5IEFMVEVSIENPTFVNTiBhIERST1AgRVhQUkVTU0lPTjsgIC0tIGVycm9y Ci1FUlJPUjogIGNvbHVtbiAiYSIgb2YgcmVsYXRpb24gImd0ZXN0MjkiIGlzIG5vdCBhIHN0 b3JlZCBnZW5lcmF0ZWQgY29sdW1uCitFUlJPUjogIGNvbHVtbiAiYSIgb2YgcmVsYXRpb24g Imd0ZXN0MjkiIGlzIG5vdCBhIGdlbmVyYXRlZCBjb2x1bW4KIEFMVEVSIFRBQkxFIGd0ZXN0 MjkgQUxURVIgQ09MVU1OIGEgRFJPUCBFWFBSRVNTSU9OIElGIEVYSVNUUzsgIC0tIG5vdGlj ZQotTk9USUNFOiAgY29sdW1uICJhIiBvZiByZWxhdGlvbiAiZ3Rlc3QyOSIgaXMgbm90IGEg c3RvcmVkIGdlbmVyYXRlZCBjb2x1bW4sIHNraXBwaW5nCitOT1RJQ0U6ICBjb2x1bW4gImEi IG9mIHJlbGF0aW9uICJndGVzdDI5IiBpcyBub3QgYSBnZW5lcmF0ZWQgY29sdW1uLCBza2lw cGluZwogLS0gQ2hhbmdlIHRoZSBleHByZXNzaW9uCiBBTFRFUiBUQUJMRSBndGVzdDI5IEFM VEVSIENPTFVNTiBiIFNFVCBFWFBSRVNTSU9OIEFTIChhICogMyk7CiBTRUxFQ1QgKiBGUk9N IGd0ZXN0Mjk7CkBAIC0xMTA3LDkzICsxMTA4LDExNCBAQCBTRUxFQ1QgKiBGUk9NIGd0ZXN0 Mjk7CiAoMiByb3dzKQogCiBcZCBndGVzdDI5Ci0gICAgICAgICAgICAgICAgICAgIFRhYmxl ICJnZW5lcmF0ZWRfc3RvcmVkX3Rlc3RzLmd0ZXN0MjkiCi0gQ29sdW1uIHwgIFR5cGUgICB8 IENvbGxhdGlvbiB8IE51bGxhYmxlIHwgICAgICAgICAgICAgIERlZmF1bHQgICAgICAgICAg ICAgICAKLS0tLS0tLS0tKy0tLS0tLS0tLSstLS0tLS0tLS0tLSstLS0tLS0tLS0tKy0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorICAgICAgICAgICAgICAgIFRhYmxl ICJnZW5lcmF0ZWRfdmlydHVhbF90ZXN0cy5ndGVzdDI5IgorIENvbHVtbiB8ICBUeXBlICAg fCBDb2xsYXRpb24gfCBOdWxsYWJsZSB8ICAgICAgICAgICBEZWZhdWx0ICAgICAgICAgICAK Ky0tLS0tLS0tKy0tLS0tLS0tLSstLS0tLS0tLS0tLSstLS0tLS0tLS0tKy0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tCiAgYSAgICAgIHwgaW50ZWdlciB8ICAgICAgICAgICB8ICAg ICAgICAgIHwgCi0gYiAgICAgIHwgaW50ZWdlciB8ICAgICAgICAgICB8ICAgICAgICAgIHwg Z2VuZXJhdGVkIGFsd2F5cyBhcyAoYSAqIDMpIHN0b3JlZAorIGIgICAgICB8IGludGVnZXIg fCAgICAgICAgICAgfCAgICAgICAgICB8IGdlbmVyYXRlZCBhbHdheXMgYXMgKGEgKiAzKQog CiBBTFRFUiBUQUJMRSBndGVzdDI5IEFMVEVSIENPTFVNTiBiIERST1AgRVhQUkVTU0lPTjsK K0VSUk9SOiAgQUxURVIgVEFCTEUgLyBEUk9QIEVYUFJFU1NJT04gaXMgbm90IHN1cHBvcnRl ZCBmb3IgdmlydHVhbCBnZW5lcmF0ZWQgY29sdW1ucworREVUQUlMOiAgQ29sdW1uICJiIiBv ZiByZWxhdGlvbiAiZ3Rlc3QyOSIgaXMgYSB2aXJ0dWFsIGdlbmVyYXRlZCBjb2x1bW4uCiBJ TlNFUlQgSU5UTyBndGVzdDI5IChhKSBWQUxVRVMgKDUpOwogSU5TRVJUIElOVE8gZ3Rlc3Qy OSAoYSwgYikgVkFMVUVTICg2LCA2Nik7CitFUlJPUjogIGNhbm5vdCBpbnNlcnQgYSBub24t REVGQVVMVCB2YWx1ZSBpbnRvIGNvbHVtbiAiYiIKK0RFVEFJTDogIENvbHVtbiAiYiIgaXMg YSBnZW5lcmF0ZWQgY29sdW1uLgogU0VMRUNUICogRlJPTSBndGVzdDI5OwogIGEgfCBiICAK IC0tLSstLS0tCiAgMyB8ICA5CiAgNCB8IDEyCi0gNSB8ICAgCi0gNiB8IDY2Ci0oNCByb3dz KQorIDUgfCAxNQorKDMgcm93cykKIAogXGQgZ3Rlc3QyOQotICAgICAgVGFibGUgImdlbmVy YXRlZF9zdG9yZWRfdGVzdHMuZ3Rlc3QyOSIKLSBDb2x1bW4gfCAgVHlwZSAgIHwgQ29sbGF0 aW9uIHwgTnVsbGFibGUgfCBEZWZhdWx0IAotLS0tLS0tLS0rLS0tLS0tLS0tKy0tLS0tLS0t LS0tKy0tLS0tLS0tLS0rLS0tLS0tLS0tCisgICAgICAgICAgICAgICAgVGFibGUgImdlbmVy YXRlZF92aXJ0dWFsX3Rlc3RzLmd0ZXN0MjkiCisgQ29sdW1uIHwgIFR5cGUgICB8IENvbGxh dGlvbiB8IE51bGxhYmxlIHwgICAgICAgICAgIERlZmF1bHQgICAgICAgICAgIAorLS0tLS0t LS0rLS0tLS0tLS0tKy0tLS0tLS0tLS0tKy0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0KICBhICAgICAgfCBpbnRlZ2VyIHwgICAgICAgICAgIHwgICAgICAgICAg fCAKLSBiICAgICAgfCBpbnRlZ2VyIHwgICAgICAgICAgIHwgICAgICAgICAgfCAKKyBiICAg ICAgfCBpbnRlZ2VyIHwgICAgICAgICAgIHwgICAgICAgICAgfCBnZW5lcmF0ZWQgYWx3YXlz IGFzIChhICogMykKIAogLS0gY2hlY2sgdGhhdCBkZXBlbmRlbmNpZXMgYmV0d2VlbiBjb2x1 bW5zIGhhdmUgYWxzbyBiZWVuIHJlbW92ZWQKIEFMVEVSIFRBQkxFIGd0ZXN0MjkgRFJPUCBD T0xVTU4gYTsgIC0tIHNob3VsZCBub3QgZHJvcCBiCitFUlJPUjogIGNhbm5vdCBkcm9wIGNv bHVtbiBhIG9mIHRhYmxlIGd0ZXN0MjkgYmVjYXVzZSBvdGhlciBvYmplY3RzIGRlcGVuZCBv biBpdAorREVUQUlMOiAgY29sdW1uIGIgb2YgdGFibGUgZ3Rlc3QyOSBkZXBlbmRzIG9uIGNv bHVtbiBhIG9mIHRhYmxlIGd0ZXN0MjkKK0hJTlQ6ICBVc2UgRFJPUCAuLi4gQ0FTQ0FERSB0 byBkcm9wIHRoZSBkZXBlbmRlbnQgb2JqZWN0cyB0b28uCiBcZCBndGVzdDI5Ci0gICAgICBU YWJsZSAiZ2VuZXJhdGVkX3N0b3JlZF90ZXN0cy5ndGVzdDI5IgotIENvbHVtbiB8ICBUeXBl ICAgfCBDb2xsYXRpb24gfCBOdWxsYWJsZSB8IERlZmF1bHQgCi0tLS0tLS0tLSstLS0tLS0t LS0rLS0tLS0tLS0tLS0rLS0tLS0tLS0tLSstLS0tLS0tLS0KLSBiICAgICAgfCBpbnRlZ2Vy IHwgICAgICAgICAgIHwgICAgICAgICAgfCAKKyAgICAgICAgICAgICAgICBUYWJsZSAiZ2Vu ZXJhdGVkX3ZpcnR1YWxfdGVzdHMuZ3Rlc3QyOSIKKyBDb2x1bW4gfCAgVHlwZSAgIHwgQ29s bGF0aW9uIHwgTnVsbGFibGUgfCAgICAgICAgICAgRGVmYXVsdCAgICAgICAgICAgCistLS0t LS0tLSstLS0tLS0tLS0rLS0tLS0tLS0tLS0rLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLQorIGEgICAgICB8IGludGVnZXIgfCAgICAgICAgICAgfCAgICAgICAg ICB8IAorIGIgICAgICB8IGludGVnZXIgfCAgICAgICAgICAgfCAgICAgICAgICB8IGdlbmVy YXRlZCBhbHdheXMgYXMgKGEgKiAzKQogCiAtLSB3aXRoIGluaGVyaXRhbmNlCiBDUkVBVEUg VEFCTEUgZ3Rlc3QzMCAoCiAgICAgYSBpbnQsCi0gICAgYiBpbnQgR0VORVJBVEVEIEFMV0FZ UyBBUyAoYSAqIDIpIFNUT1JFRAorICAgIGIgaW50IEdFTkVSQVRFRCBBTFdBWVMgQVMgKGEg KiAyKSBWSVJUVUFMCiApOwogQ1JFQVRFIFRBQkxFIGd0ZXN0MzBfMSAoKSBJTkhFUklUUyAo Z3Rlc3QzMCk7CiBBTFRFUiBUQUJMRSBndGVzdDMwIEFMVEVSIENPTFVNTiBiIERST1AgRVhQ UkVTU0lPTjsKK0VSUk9SOiAgQUxURVIgVEFCTEUgLyBEUk9QIEVYUFJFU1NJT04gaXMgbm90 IHN1cHBvcnRlZCBmb3IgdmlydHVhbCBnZW5lcmF0ZWQgY29sdW1ucworREVUQUlMOiAgQ29s dW1uICJiIiBvZiByZWxhdGlvbiAiZ3Rlc3QzMCIgaXMgYSB2aXJ0dWFsIGdlbmVyYXRlZCBj b2x1bW4uCiBcZCBndGVzdDMwCi0gICAgICBUYWJsZSAiZ2VuZXJhdGVkX3N0b3JlZF90ZXN0 cy5ndGVzdDMwIgotIENvbHVtbiB8ICBUeXBlICAgfCBDb2xsYXRpb24gfCBOdWxsYWJsZSB8 IERlZmF1bHQgCi0tLS0tLS0tLSstLS0tLS0tLS0rLS0tLS0tLS0tLS0rLS0tLS0tLS0tLSst LS0tLS0tLS0KKyAgICAgICAgICAgICAgICBUYWJsZSAiZ2VuZXJhdGVkX3ZpcnR1YWxfdGVz dHMuZ3Rlc3QzMCIKKyBDb2x1bW4gfCAgVHlwZSAgIHwgQ29sbGF0aW9uIHwgTnVsbGFibGUg fCAgICAgICAgICAgRGVmYXVsdCAgICAgICAgICAgCistLS0tLS0tLSstLS0tLS0tLS0rLS0t LS0tLS0tLS0rLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogIGEg ICAgICB8IGludGVnZXIgfCAgICAgICAgICAgfCAgICAgICAgICB8IAotIGIgICAgICB8IGlu dGVnZXIgfCAgICAgICAgICAgfCAgICAgICAgICB8IAorIGIgICAgICB8IGludGVnZXIgfCAg ICAgICAgICAgfCAgICAgICAgICB8IGdlbmVyYXRlZCBhbHdheXMgYXMgKGEgKiAyKQogTnVt YmVyIG9mIGNoaWxkIHRhYmxlczogMSAoVXNlIFxkKyB0byBsaXN0IHRoZW0uKQogCiBcZCBn dGVzdDMwXzEKLSAgICAgVGFibGUgImdlbmVyYXRlZF9zdG9yZWRfdGVzdHMuZ3Rlc3QzMF8x IgotIENvbHVtbiB8ICBUeXBlICAgfCBDb2xsYXRpb24gfCBOdWxsYWJsZSB8IERlZmF1bHQg Ci0tLS0tLS0tLSstLS0tLS0tLS0rLS0tLS0tLS0tLS0rLS0tLS0tLS0tLSstLS0tLS0tLS0K KyAgICAgICAgICAgICAgIFRhYmxlICJnZW5lcmF0ZWRfdmlydHVhbF90ZXN0cy5ndGVzdDMw XzEiCisgQ29sdW1uIHwgIFR5cGUgICB8IENvbGxhdGlvbiB8IE51bGxhYmxlIHwgICAgICAg ICAgIERlZmF1bHQgICAgICAgICAgIAorLS0tLS0tLS0rLS0tLS0tLS0tKy0tLS0tLS0tLS0t Ky0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICBhICAgICAgfCBp bnRlZ2VyIHwgICAgICAgICAgIHwgICAgICAgICAgfCAKLSBiICAgICAgfCBpbnRlZ2VyIHwg ICAgICAgICAgIHwgICAgICAgICAgfCAKKyBiICAgICAgfCBpbnRlZ2VyIHwgICAgICAgICAg IHwgICAgICAgICAgfCBnZW5lcmF0ZWQgYWx3YXlzIGFzIChhICogMikKIEluaGVyaXRzOiBn dGVzdDMwCiAKIERST1AgVEFCTEUgZ3Rlc3QzMCBDQVNDQURFOwogTk9USUNFOiAgZHJvcCBj YXNjYWRlcyB0byB0YWJsZSBndGVzdDMwXzEKIENSRUFURSBUQUJMRSBndGVzdDMwICgKICAg ICBhIGludCwKLSAgICBiIGludCBHRU5FUkFURUQgQUxXQVlTIEFTIChhICogMikgU1RPUkVE CisgICAgYiBpbnQgR0VORVJBVEVEIEFMV0FZUyBBUyAoYSAqIDIpIFZJUlRVQUwKICk7CiBD UkVBVEUgVEFCTEUgZ3Rlc3QzMF8xICgpIElOSEVSSVRTIChndGVzdDMwKTsKIEFMVEVSIFRB QkxFIE9OTFkgZ3Rlc3QzMCBBTFRFUiBDT0xVTU4gYiBEUk9QIEVYUFJFU1NJT047ICAtLSBl cnJvcgogRVJST1I6ICBBTFRFUiBUQUJMRSAvIERST1AgRVhQUkVTU0lPTiBtdXN0IGJlIGFw cGxpZWQgdG8gY2hpbGQgdGFibGVzIHRvbwogXGQgZ3Rlc3QzMAotICAgICAgICAgICAgICAg ICAgICBUYWJsZSAiZ2VuZXJhdGVkX3N0b3JlZF90ZXN0cy5ndGVzdDMwIgotIENvbHVtbiB8 ICBUeXBlICAgfCBDb2xsYXRpb24gfCBOdWxsYWJsZSB8ICAgICAgICAgICAgICBEZWZhdWx0 ICAgICAgICAgICAgICAgCi0tLS0tLS0tLSstLS0tLS0tLS0rLS0tLS0tLS0tLS0rLS0tLS0t LS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyAgICAgICAgICAg ICAgICBUYWJsZSAiZ2VuZXJhdGVkX3ZpcnR1YWxfdGVzdHMuZ3Rlc3QzMCIKKyBDb2x1bW4g fCAgVHlwZSAgIHwgQ29sbGF0aW9uIHwgTnVsbGFibGUgfCAgICAgICAgICAgRGVmYXVsdCAg ICAgICAgICAgCistLS0tLS0tLSstLS0tLS0tLS0rLS0tLS0tLS0tLS0rLS0tLS0tLS0tLSst LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogIGEgICAgICB8IGludGVnZXIgfCAgICAg ICAgICAgfCAgICAgICAgICB8IAotIGIgICAgICB8IGludGVnZXIgfCAgICAgICAgICAgfCAg ICAgICAgICB8IGdlbmVyYXRlZCBhbHdheXMgYXMgKGEgKiAyKSBzdG9yZWQKKyBiICAgICAg fCBpbnRlZ2VyIHwgICAgICAgICAgIHwgICAgICAgICAgfCBnZW5lcmF0ZWQgYWx3YXlzIGFz IChhICogMikKIE51bWJlciBvZiBjaGlsZCB0YWJsZXM6IDEgKFVzZSBcZCsgdG8gbGlzdCB0 aGVtLikKIAogXGQgZ3Rlc3QzMF8xCi0gICAgICAgICAgICAgICAgICAgVGFibGUgImdlbmVy YXRlZF9zdG9yZWRfdGVzdHMuZ3Rlc3QzMF8xIgotIENvbHVtbiB8ICBUeXBlICAgfCBDb2xs YXRpb24gfCBOdWxsYWJsZSB8ICAgICAgICAgICAgICBEZWZhdWx0ICAgICAgICAgICAgICAg Ci0tLS0tLS0tLSstLS0tLS0tLS0rLS0tLS0tLS0tLS0rLS0tLS0tLS0tLSstLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyAgICAgICAgICAgICAgIFRhYmxlICJnZW5l cmF0ZWRfdmlydHVhbF90ZXN0cy5ndGVzdDMwXzEiCisgQ29sdW1uIHwgIFR5cGUgICB8IENv bGxhdGlvbiB8IE51bGxhYmxlIHwgICAgICAgICAgIERlZmF1bHQgICAgICAgICAgIAorLS0t LS0tLS0rLS0tLS0tLS0tKy0tLS0tLS0tLS0tKy0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0KICBhICAgICAgfCBpbnRlZ2VyIHwgICAgICAgICAgIHwgICAgICAg ICAgfCAKLSBiICAgICAgfCBpbnRlZ2VyIHwgICAgICAgICAgIHwgICAgICAgICAgfCBnZW5l cmF0ZWQgYWx3YXlzIGFzIChhICogMikgc3RvcmVkCisgYiAgICAgIHwgaW50ZWdlciB8ICAg ICAgICAgICB8ICAgICAgICAgIHwgZ2VuZXJhdGVkIGFsd2F5cyBhcyAoYSAqIDIpCiBJbmhl cml0czogZ3Rlc3QzMAogCiBBTFRFUiBUQUJMRSBndGVzdDMwXzEgQUxURVIgQ09MVU1OIGIg RFJPUCBFWFBSRVNTSU9OOyAgLS0gZXJyb3IKIEVSUk9SOiAgY2Fubm90IGRyb3AgZ2VuZXJh dGlvbiBleHByZXNzaW9uIGZyb20gaW5oZXJpdGVkIGNvbHVtbgorLS0gY29tcG9zaXRlIHR5 cGUgZGVwZW5kZW5jaWVzCitDUkVBVEUgVEFCTEUgZ3Rlc3QzMV8xIChhIGludCwgYiB0ZXh0 IEdFTkVSQVRFRCBBTFdBWVMgQVMgKCdoZWxsbycpIFZJUlRVQUwsIGMgdGV4dCk7CitDUkVB VEUgVEFCTEUgZ3Rlc3QzMV8yICh4IGludCwgeSBndGVzdDMxXzEpOworQUxURVIgVEFCTEUg Z3Rlc3QzMV8xIEFMVEVSIENPTFVNTiBiIFRZUEUgdmFyY2hhcjsgIC0tIGZhaWxzCitFUlJP UjogIGNhbm5vdCBhbHRlciB0YWJsZSAiZ3Rlc3QzMV8xIiBiZWNhdXNlIGNvbHVtbiAiZ3Rl c3QzMV8yLnkiIHVzZXMgaXRzIHJvdyB0eXBlCitEUk9QIFRBQkxFIGd0ZXN0MzFfMSwgZ3Rl c3QzMV8yOworLS0gQ2hlY2sgaXQgZm9yIGEgcGFydGl0aW9uZWQgdGFibGUsIHRvbworQ1JF QVRFIFRBQkxFIGd0ZXN0MzFfMSAoYSBpbnQsIGIgdGV4dCBHRU5FUkFURUQgQUxXQVlTIEFT ICgnaGVsbG8nKSBWSVJUVUFMLCBjIHRleHQpIFBBUlRJVElPTiBCWSBMSVNUIChhKTsKK0NS RUFURSBUQUJMRSBndGVzdDMxXzIgKHggaW50LCB5IGd0ZXN0MzFfMSk7CitBTFRFUiBUQUJM RSBndGVzdDMxXzEgQUxURVIgQ09MVU1OIGIgVFlQRSB2YXJjaGFyOyAgLS0gZmFpbHMKK0VS Uk9SOiAgY2Fubm90IGFsdGVyIHRhYmxlICJndGVzdDMxXzEiIGJlY2F1c2UgY29sdW1uICJn dGVzdDMxXzIueSIgdXNlcyBpdHMgcm93IHR5cGUKK0RST1AgVEFCTEUgZ3Rlc3QzMV8xLCBn dGVzdDMxXzI7CiAtLSB0cmlnZ2VycwogQ1JFQVRFIFRBQkxFIGd0ZXN0MjYgKAogICAgIGEg aW50IFBSSU1BUlkgS0VZLAotICAgIGIgaW50IEdFTkVSQVRFRCBBTFdBWVMgQVMgKGEgKiAy KSBTVE9SRUQKKyAgICBiIGludCBHRU5FUkFURUQgQUxXQVlTIEFTIChhICogMikgVklSVFVB TAogKTsKIENSRUFURSBGVU5DVElPTiBndGVzdF90cmlnZ2VyX2Z1bmMoKSBSRVRVUk5TIHRy aWdnZXIKICAgTEFOR1VBR0UgcGxwZ3NxbApAQCAtMTI0Niw3ICsxMjY4LDcgQEAgQ1JFQVRF IFRSSUdHRVIgZ3Rlc3Q0IEFGVEVSIElOU0VSVCBPUiBVUERBVEUgT04gZ3Rlc3QyNgogICBF WEVDVVRFIFBST0NFRFVSRSBndGVzdF90cmlnZ2VyX2Z1bmMoKTsKIElOU0VSVCBJTlRPIGd0 ZXN0MjYgKGEpIFZBTFVFUyAoLTIpLCAoMCksICgzKTsKIElORk86ICBndGVzdDI6IEJFRk9S RTogbmV3ID0gKC0yLCkKLUlORk86ICBndGVzdDQ6IEFGVEVSOiBuZXcgPSAoLTIsLTQpCitJ TkZPOiAgZ3Rlc3Q0OiBBRlRFUjogbmV3ID0gKC0yLCkKIFNFTEVDVCAqIEZST00gZ3Rlc3Qy NiBPUkRFUiBCWSBhOwogIGEgIHwgYiAgCiAtLS0tKy0tLS0KQEAgLTEyNTYsMTIgKzEyNzgs MTIgQEAgU0VMRUNUICogRlJPTSBndGVzdDI2IE9SREVSIEJZIGE7CiAoMyByb3dzKQogCiBV UERBVEUgZ3Rlc3QyNiBTRVQgYSA9IGEgKiAtMjsKLUlORk86ICBndGVzdDE6IEJFRk9SRTog b2xkID0gKC0yLC00KQorSU5GTzogIGd0ZXN0MTogQkVGT1JFOiBvbGQgPSAoLTIsKQogSU5G TzogIGd0ZXN0MTogQkVGT1JFOiBuZXcgPSAoNCwpCi1JTkZPOiAgZ3Rlc3QzOiBBRlRFUjog b2xkID0gKC0yLC00KQotSU5GTzogIGd0ZXN0MzogQUZURVI6IG5ldyA9ICg0LDgpCi1JTkZP OiAgZ3Rlc3Q0OiBBRlRFUjogb2xkID0gKDMsNikKLUlORk86ICBndGVzdDQ6IEFGVEVSOiBu ZXcgPSAoLTYsLTEyKQorSU5GTzogIGd0ZXN0MzogQUZURVI6IG9sZCA9ICgtMiwpCitJTkZP OiAgZ3Rlc3QzOiBBRlRFUjogbmV3ID0gKDQsKQorSU5GTzogIGd0ZXN0NDogQUZURVI6IG9s ZCA9ICgzLCkKK0lORk86ICBndGVzdDQ6IEFGVEVSOiBuZXcgPSAoLTYsKQogU0VMRUNUICog RlJPTSBndGVzdDI2IE9SREVSIEJZIGE7CiAgYSAgfCAgYiAgCiAtLS0tKy0tLS0tCkBAIC0x MjcxLDggKzEyOTMsOCBAQCBTRUxFQ1QgKiBGUk9NIGd0ZXN0MjYgT1JERVIgQlkgYTsKICgz IHJvd3MpCiAKIERFTEVURSBGUk9NIGd0ZXN0MjYgV0hFUkUgYSA9IC02OwotSU5GTzogIGd0 ZXN0MTogQkVGT1JFOiBvbGQgPSAoLTYsLTEyKQotSU5GTzogIGd0ZXN0MzogQUZURVI6IG9s ZCA9ICgtNiwtMTIpCitJTkZPOiAgZ3Rlc3QxOiBCRUZPUkU6IG9sZCA9ICgtNiwpCitJTkZP OiAgZ3Rlc3QzOiBBRlRFUjogb2xkID0gKC02LCkKIFNFTEVDVCAqIEZST00gZ3Rlc3QyNiBP UkRFUiBCWSBhOwogIGEgfCBiIAogLS0tKy0tLQpAQCAtMTMwMCw3ICsxMzIyLDcgQEAgVVBE QVRFIGd0ZXN0MjYgU0VUIGEgPSAxIFdIRVJFIGEgPSAwOwogTk9USUNFOiAgT0sKIERST1Ag VFJJR0dFUiBndGVzdDExIE9OIGd0ZXN0MjY7CiBUUlVOQ0FURSBndGVzdDI2OwotLS0gY2hl Y2sgdGhhdCBtb2RpZmljYXRpb25zIG9mIHN0b3JlZCBnZW5lcmF0ZWQgY29sdW1ucyBpbiB0 cmlnZ2VycyBkbworLS0gY2hlY2sgdGhhdCBtb2RpZmljYXRpb25zIG9mIGdlbmVyYXRlZCBj b2x1bW5zIGluIHRyaWdnZXJzIGRvCiAtLSBub3QgZ2V0IHByb3BhZ2F0ZWQKIENSRUFURSBG VU5DVElPTiBndGVzdF90cmlnZ2VyX2Z1bmM0KCkgUkVUVVJOUyB0cmlnZ2VyCiAgIExBTkdV QUdFIHBscGdzcWwKQEAgLTEzMjIsMTQgKzEzNDQsMTMgQEAgQ1JFQVRFIFRSSUdHRVIgZ3Rl c3QxMl8wMyBCRUZPUkUgVVBEQVRFIE9OIGd0ZXN0MjYKICAgRVhFQ1VURSBQUk9DRURVUkUg Z3Rlc3RfdHJpZ2dlcl9mdW5jKCk7CiBJTlNFUlQgSU5UTyBndGVzdDI2IChhKSBWQUxVRVMg KDEpOwogVVBEQVRFIGd0ZXN0MjYgU0VUIGEgPSAxMSBXSEVSRSBhID0gMTsKLUlORk86ICBn dGVzdDEyXzAxOiBCRUZPUkU6IG9sZCA9ICgxLDIpCitJTkZPOiAgZ3Rlc3QxMl8wMTogQkVG T1JFOiBvbGQgPSAoMSwpCiBJTkZPOiAgZ3Rlc3QxMl8wMTogQkVGT1JFOiBuZXcgPSAoMTEs KQotSU5GTzogIGd0ZXN0MTJfMDM6IEJFRk9SRTogb2xkID0gKDEsMikKLUlORk86ICBndGVz dDEyXzAzOiBCRUZPUkU6IG5ldyA9ICgxMCwpCitFUlJPUjogIHRyaWdnZXIgbW9kaWZpZWQg dmlydHVhbCBnZW5lcmF0ZWQgY29sdW1uIHZhbHVlCiBTRUxFQ1QgKiBGUk9NIGd0ZXN0MjYg T1JERVIgQlkgYTsKLSBhICB8IGIgIAotLS0tLSstLS0tCi0gMTAgfCAyMAorIGEgfCBiIAor LS0tKy0tLQorIDEgfCAyCiAoMSByb3cpCiAKIC0tIExJS0UgSU5DTFVESU5HIEdFTkVSQVRF RCBhbmQgZHJvcHBlZCBjb2x1bW4gaGFuZGxpbmcKQEAgLTEzMzcsMjIgKzEzNTgsMjIgQEAg Q1JFQVRFIFRBQkxFIGd0ZXN0MjhhICgKICAgYSBpbnQsCiAgIGIgaW50LAogICBjIGludCwK LSAgeCBpbnQgR0VORVJBVEVEIEFMV0FZUyBBUyAoYiAqIDIpIFNUT1JFRAorICB4IGludCBH RU5FUkFURUQgQUxXQVlTIEFTIChiICogMikgVklSVFVBTAogKTsKIEFMVEVSIFRBQkxFIGd0 ZXN0MjhhIERST1AgQ09MVU1OIGE7CiBDUkVBVEUgVEFCTEUgZ3Rlc3QyOGIgKExJS0UgZ3Rl c3QyOGEgSU5DTFVESU5HIEdFTkVSQVRFRCk7CiBcZCBndGVzdDI4KgotICAgICAgICAgICAg ICAgICAgIFRhYmxlICJnZW5lcmF0ZWRfc3RvcmVkX3Rlc3RzLmd0ZXN0MjhhIgotIENvbHVt biB8ICBUeXBlICAgfCBDb2xsYXRpb24gfCBOdWxsYWJsZSB8ICAgICAgICAgICAgICBEZWZh dWx0ICAgICAgICAgICAgICAgCi0tLS0tLS0tLSstLS0tLS0tLS0rLS0tLS0tLS0tLS0rLS0t LS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyAgICAgICAg ICAgICAgIFRhYmxlICJnZW5lcmF0ZWRfdmlydHVhbF90ZXN0cy5ndGVzdDI4YSIKKyBDb2x1 bW4gfCAgVHlwZSAgIHwgQ29sbGF0aW9uIHwgTnVsbGFibGUgfCAgICAgICAgICAgRGVmYXVs dCAgICAgICAgICAgCistLS0tLS0tLSstLS0tLS0tLS0rLS0tLS0tLS0tLS0rLS0tLS0tLS0t LSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogIGIgICAgICB8IGludGVnZXIgfCAg ICAgICAgICAgfCAgICAgICAgICB8IAogIGMgICAgICB8IGludGVnZXIgfCAgICAgICAgICAg fCAgICAgICAgICB8IAotIHggICAgICB8IGludGVnZXIgfCAgICAgICAgICAgfCAgICAgICAg ICB8IGdlbmVyYXRlZCBhbHdheXMgYXMgKGIgKiAyKSBzdG9yZWQKKyB4ICAgICAgfCBpbnRl Z2VyIHwgICAgICAgICAgIHwgICAgICAgICAgfCBnZW5lcmF0ZWQgYWx3YXlzIGFzIChiICog MikKIAotICAgICAgICAgICAgICAgICAgIFRhYmxlICJnZW5lcmF0ZWRfc3RvcmVkX3Rlc3Rz Lmd0ZXN0MjhiIgotIENvbHVtbiB8ICBUeXBlICAgfCBDb2xsYXRpb24gfCBOdWxsYWJsZSB8 ICAgICAgICAgICAgICBEZWZhdWx0ICAgICAgICAgICAgICAgCi0tLS0tLS0tLSstLS0tLS0t LS0rLS0tLS0tLS0tLS0rLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0KKyAgICAgICAgICAgICAgIFRhYmxlICJnZW5lcmF0ZWRfdmlydHVhbF90ZXN0 cy5ndGVzdDI4YiIKKyBDb2x1bW4gfCAgVHlwZSAgIHwgQ29sbGF0aW9uIHwgTnVsbGFibGUg fCAgICAgICAgICAgRGVmYXVsdCAgICAgICAgICAgCistLS0tLS0tLSstLS0tLS0tLS0rLS0t LS0tLS0tLS0rLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogIGIg ICAgICB8IGludGVnZXIgfCAgICAgICAgICAgfCAgICAgICAgICB8IAogIGMgICAgICB8IGlu dGVnZXIgfCAgICAgICAgICAgfCAgICAgICAgICB8IAotIHggICAgICB8IGludGVnZXIgfCAg ICAgICAgICAgfCAgICAgICAgICB8IGdlbmVyYXRlZCBhbHdheXMgYXMgKGIgKiAyKSBzdG9y ZWQKKyB4ICAgICAgfCBpbnRlZ2VyIHwgICAgICAgICAgIHwgICAgICAgICAgfCBnZW5lcmF0 ZWQgYWx3YXlzIGFzIChiICogMikKIApkaWZmIC0tZ2l0IGEvc3JjL3Rlc3QvcmVncmVzcy9l eHBlY3RlZC9wdWJsaWNhdGlvbi5vdXQgYi9zcmMvdGVzdC9yZWdyZXNzL2V4cGVjdGVkL3B1 YmxpY2F0aW9uLm91dAppbmRleCA1ZGUyZDY0ZDAxYS4uM2IzYzY5OTlkNmMgMTAwNjQ0Ci0t LSBhL3NyYy90ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQvcHVibGljYXRpb24ub3V0CisrKyBiL3Ny Yy90ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQvcHVibGljYXRpb24ub3V0CkBAIC00NDIsNyArNDQy LDcgQEAgTElORSAxOiAuLi5JQ0FUSU9OIHRlc3RwdWI2IEZPUiBUQUJMRSB0ZXN0cHViX3Jm X3RibDMgV0hFUkUgKGUgPSM+IDI3KTsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBeCiBERVRBSUw6ICBVc2VyLWRlZmlu ZWQgb3BlcmF0b3JzIGFyZSBub3QgYWxsb3dlZC4KIC0tIGZhaWwgLSB1c2VyLWRlZmluZWQg ZnVuY3Rpb25zIGFyZSBub3QgYWxsb3dlZAotQ1JFQVRFIEZVTkNUSU9OIHRlc3RwdWJfcmZf ZnVuYzIoKSBSRVRVUk5TIGludGVnZXIgQVMgJCQgQkVHSU4gUkVUVVJOIDEyMzsgRU5EOyAk JCBMQU5HVUFHRSBwbHBnc3FsOworQ1JFQVRFIEZVTkNUSU9OIHRlc3RwdWJfcmZfZnVuYzIo KSBSRVRVUk5TIGludGVnZXIgSU1NVVRBQkxFIEFTICQkIEJFR0lOIFJFVFVSTiAxMjM7IEVO RDsgJCQgTEFOR1VBR0UgcGxwZ3NxbDsKIEFMVEVSIFBVQkxJQ0FUSU9OIHRlc3RwdWI1IEFE RCBUQUJMRSB0ZXN0cHViX3JmX3RibDEgV0hFUkUgKGEgPj0gdGVzdHB1Yl9yZl9mdW5jMigp KTsKIEVSUk9SOiAgaW52YWxpZCBwdWJsaWNhdGlvbiBXSEVSRSBleHByZXNzaW9uCiBMSU5F IDE6IC4uLk9OIHRlc3RwdWI1IEFERCBUQUJMRSB0ZXN0cHViX3JmX3RibDEgV0hFUkUgKGEg Pj0gdGVzdHB1Yl9yZi4uLgpAQCAtNTIzLDE3ICs1MjMsMzMgQEAgVGFibGVzOgogVGFibGVz IGZyb20gc2NoZW1hczoKICAgICAidGVzdHB1Yl9yZl9zY2hlbWEyIgogCistLSBmYWlsIC0g dmlydHVhbCBnZW5lcmF0ZWQgY29sdW1uIHVzZXMgdXNlci1kZWZpbmVkIGZ1bmN0aW9uCitD UkVBVEUgVEFCTEUgdGVzdHB1Yl9yZl90Ymw2IChpZCBpbnQgUFJJTUFSWSBLRVksIHggaW50 LCB5IGludCBHRU5FUkFURUQgQUxXQVlTIEFTICh4ICogdGVzdHB1Yl9yZl9mdW5jMigpKSBW SVJUVUFMKTsKK0NSRUFURSBQVUJMSUNBVElPTiB0ZXN0cHViNyBGT1IgVEFCTEUgdGVzdHB1 Yl9yZl90Ymw2IFdIRVJFICh5ID4gMTAwKTsKK0VSUk9SOiAgaW52YWxpZCBwdWJsaWNhdGlv biBXSEVSRSBleHByZXNzaW9uCitERVRBSUw6ICBVc2VyLWRlZmluZWQgb3IgYnVpbHQtaW4g bXV0YWJsZSBmdW5jdGlvbnMgYXJlIG5vdCBhbGxvd2VkLgorLS0gdGVzdCB0aGF0IFNFVCBF WFBSRVNTSU9OIGlzIHJlamVjdGVkLCBiZWNhdXNlIGl0IGNvdWxkIGFmZmVjdCBhIHJvdyBm aWx0ZXIKK1NFVCBjbGllbnRfbWluX21lc3NhZ2VzID0gJ0VSUk9SJzsKK0NSRUFURSBUQUJM RSB0ZXN0cHViX3JmX3RibDcgKGlkIGludCBQUklNQVJZIEtFWSwgeCBpbnQsIHkgaW50IEdF TkVSQVRFRCBBTFdBWVMgQVMgKHggKiAxMTEpIFZJUlRVQUwpOworQ1JFQVRFIFBVQkxJQ0FU SU9OIHRlc3RwdWI4IEZPUiBUQUJMRSB0ZXN0cHViX3JmX3RibDcgV0hFUkUgKHkgPiAxMDAp OworQUxURVIgVEFCTEUgdGVzdHB1Yl9yZl90Ymw3IEFMVEVSIENPTFVNTiB5IFNFVCBFWFBS RVNTSU9OIEFTICh4ICogdGVzdHB1Yl9yZl9mdW5jMigpKTsKK0VSUk9SOiAgQUxURVIgVEFC TEUgLyBTRVQgRVhQUkVTU0lPTiBpcyBub3Qgc3VwcG9ydGVkIGZvciB2aXJ0dWFsIGdlbmVy YXRlZCBjb2x1bW5zIG9uIHRhYmxlcyB0aGF0IGFyZSBwYXJ0IG9mIGEgcHVibGljYXRpb24K K0RFVEFJTDogIENvbHVtbiAieSIgb2YgcmVsYXRpb24gInRlc3RwdWJfcmZfdGJsNyIgaXMg YSB2aXJ0dWFsIGdlbmVyYXRlZCBjb2x1bW4uCitSRVNFVCBjbGllbnRfbWluX21lc3NhZ2Vz OwogRFJPUCBUQUJMRSB0ZXN0cHViX3JmX3RibDE7CiBEUk9QIFRBQkxFIHRlc3RwdWJfcmZf dGJsMjsKIERST1AgVEFCTEUgdGVzdHB1Yl9yZl90YmwzOwogRFJPUCBUQUJMRSB0ZXN0cHVi X3JmX3RibDQ7CiBEUk9QIFRBQkxFIHRlc3RwdWJfcmZfdGJsNTsKK0RST1AgVEFCTEUgdGVz dHB1Yl9yZl90Ymw2OwogRFJPUCBUQUJMRSB0ZXN0cHViX3JmX3NjaGVtYTEudGVzdHB1Yl9y Zl90Ymw1OwogRFJPUCBUQUJMRSB0ZXN0cHViX3JmX3NjaGVtYTIudGVzdHB1Yl9yZl90Ymw2 OwogRFJPUCBTQ0hFTUEgdGVzdHB1Yl9yZl9zY2hlbWExOwogRFJPUCBTQ0hFTUEgdGVzdHB1 Yl9yZl9zY2hlbWEyOwogRFJPUCBQVUJMSUNBVElPTiB0ZXN0cHViNTsKIERST1AgUFVCTElD QVRJT04gdGVzdHB1YjY7CitEUk9QIFBVQkxJQ0FUSU9OIHRlc3RwdWI4OworRFJPUCBUQUJM RSB0ZXN0cHViX3JmX3RibDc7CiBEUk9QIE9QRVJBVE9SID0jPihpbnRlZ2VyLCBpbnRlZ2Vy KTsKIERST1AgRlVOQ1RJT04gdGVzdHB1Yl9yZl9mdW5jMShpbnRlZ2VyLCBpbnRlZ2VyKTsK IERST1AgRlVOQ1RJT04gdGVzdHB1Yl9yZl9mdW5jMigpOwpkaWZmIC0tZ2l0IGEvc3JjL3Rl c3QvcmVncmVzcy9leHBlY3RlZC9yb3dzZWN1cml0eS5vdXQgYi9zcmMvdGVzdC9yZWdyZXNz L2V4cGVjdGVkL3Jvd3NlY3VyaXR5Lm91dAppbmRleCBmZDU2NTRkZjM1ZS4uODc5MjkxOTFk MDYgMTAwNjQ0Ci0tLSBhL3NyYy90ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQvcm93c2VjdXJpdHku b3V0CisrKyBiL3NyYy90ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQvcm93c2VjdXJpdHkub3V0CkBA IC00Mzc5LDYgKzQzNzksMzUgQEAgRVJST1I6ICBuZXcgcm93IHZpb2xhdGVzIHJvdy1sZXZl bCBzZWN1cml0eSBwb2xpY3kgZm9yIHRhYmxlICJyMSIKIElOU0VSVCBJTlRPIHIxIFZBTFVF UyAoMTApCiAgICAgT04gQ09ORkxJQ1QgT04gQ09OU1RSQUlOVCByMV9wa2V5IERPIFVQREFU RSBTRVQgYSA9IDMwOwogRVJST1I6ICBuZXcgcm93IHZpb2xhdGVzIHJvdy1sZXZlbCBzZWN1 cml0eSBwb2xpY3kgZm9yIHRhYmxlICJyMSIKK0RST1AgVEFCTEUgcjE7CistLQorLS0gVGVz dCBwb2xpY2llcyB1c2luZyB2aXJ0dWFsIGdlbmVyYXRlZCBjb2x1bW5zCistLQorU0VUIFNF U1NJT04gQVVUSE9SSVpBVElPTiByZWdyZXNzX3Jsc19hbGljZTsKK1NFVCByb3dfc2VjdXJp dHkgPSBvbjsKK0NSRUFURSBUQUJMRSByMSAoYSBpbnQsIGIgaW50IEdFTkVSQVRFRCBBTFdB WVMgQVMgKGEgKiAxMCkgVklSVFVBTCk7CitBTFRFUiBUQUJMRSByMSBBREQgYyBpbnQgR0VO RVJBVEVEIEFMV0FZUyBBUyAoYSAqIDEwMCkgVklSVFVBTDsKK0lOU0VSVCBJTlRPIHIxIFZB TFVFUyAoMSksICgyKSwgKDQpOworQ1JFQVRFIFBPTElDWSBwMCBPTiByMSBVU0lORyAoYiAq IDEwID0gYyk7CitDUkVBVEUgUE9MSUNZIHAxIE9OIHIxIEFTIFJFU1RSSUNUSVZFIFVTSU5H IChiID4gMTApOworQ1JFQVRFIFBPTElDWSBwMiBPTiByMSBBUyBSRVNUUklDVElWRSBVU0lO RyAoKFNFTEVDVCBjKSA8IDQwMCk7CitBTFRFUiBUQUJMRSByMSBFTkFCTEUgUk9XIExFVkVM IFNFQ1VSSVRZOworQUxURVIgVEFCTEUgcjEgRk9SQ0UgUk9XIExFVkVMIFNFQ1VSSVRZOwor LS0gU2hvdWxkIGZhaWwgcDEKK0lOU0VSVCBJTlRPIHIxIFZBTFVFUyAoMCk7CitFUlJPUjog IG5ldyByb3cgdmlvbGF0ZXMgcm93LWxldmVsIHNlY3VyaXR5IHBvbGljeSAicDEiIGZvciB0 YWJsZSAicjEiCistLSBTaG91bGQgZmFpbCBwMgorSU5TRVJUIElOVE8gcjEgVkFMVUVTICg0 KTsKK0VSUk9SOiAgbmV3IHJvdyB2aW9sYXRlcyByb3ctbGV2ZWwgc2VjdXJpdHkgcG9saWN5 ICJwMiIgZm9yIHRhYmxlICJyMSIKKy0tIE9LCitJTlNFUlQgSU5UTyByMSBWQUxVRVMgKDMp OworU0VMRUNUICogRlJPTSByMTsKKyBhIHwgYiAgfCAgYyAgCistLS0rLS0tLSstLS0tLQor IDIgfCAyMCB8IDIwMAorIDMgfCAzMCB8IDMwMAorKDIgcm93cykKKwogRFJPUCBUQUJMRSBy MTsKIC0tIENoZWNrIGRlcGVuZGVuY3kgaGFuZGxpbmcKIFJFU0VUIFNFU1NJT04gQVVUSE9S SVpBVElPTjsKZGlmZiAtLWdpdCBhL3NyYy90ZXN0L3JlZ3Jlc3MvcGFyYWxsZWxfc2NoZWR1 bGUgYi9zcmMvdGVzdC9yZWdyZXNzL3BhcmFsbGVsX3NjaGVkdWxlCmluZGV4IDgxZTQyMjJk MjZhLi43ODJkN2QxMWRjYiAxMDA2NDQKLS0tIGEvc3JjL3Rlc3QvcmVncmVzcy9wYXJhbGxl bF9zY2hlZHVsZQorKysgYi9zcmMvdGVzdC9yZWdyZXNzL3BhcmFsbGVsX3NjaGVkdWxlCkBA IC02OCw2ICs2OCw5IEBAIHRlc3Q6IHNlbGVjdF9pbnRvIHNlbGVjdF9kaXN0aW5jdCBzZWxl Y3RfZGlzdGluY3Rfb24gc2VsZWN0X2ltcGxpY2l0IHNlbGVjdF9oYXZpCiAjIC0tLS0tLS0t LS0KIHRlc3Q6IGJyaW4gZ2luIGdpc3Qgc3BnaXN0IHByaXZpbGVnZXMgaW5pdF9wcml2cyBz ZWN1cml0eV9sYWJlbCBjb2xsYXRlIG1hdHZpZXcgbG9jayByZXBsaWNhX2lkZW50aXR5IHJv d3NlY3VyaXR5IG9iamVjdF9hZGRyZXNzIHRhYmxlc2FtcGxlIGdyb3VwaW5nc2V0cyBkcm9w X29wZXJhdG9yIHBhc3N3b3JkIGlkZW50aXR5IGdlbmVyYXRlZF9zdG9yZWQgam9pbl9oYXNo CiAKKyMgVE9ETzogZmluZCBhIHBsYWNlIGZvciB0aGlzIChhYm92ZSBncm91cCBpcyBmdWxs KQordGVzdDogZ2VuZXJhdGVkX3ZpcnR1YWwKKwogIyAtLS0tLS0tLS0tCiAjIEFkZGl0aW9u YWwgQlJJTiB0ZXN0cwogIyAtLS0tLS0tLS0tCmRpZmYgLS1naXQgYS9zcmMvdGVzdC9yZWdy ZXNzL3NxbC9jb2xsYXRlLmljdS51dGY4LnNxbCBiL3NyYy90ZXN0L3JlZ3Jlc3Mvc3FsL2Nv bGxhdGUuaWN1LnV0Zjguc3FsCmluZGV4IDc5N2U5M2FjNzE0Li40YmM0ZmY0NjViOSAxMDA2 NDQKLS0tIGEvc3JjL3Rlc3QvcmVncmVzcy9zcWwvY29sbGF0ZS5pY3UudXRmOC5zcWwKKysr IGIvc3JjL3Rlc3QvcmVncmVzcy9zcWwvY29sbGF0ZS5pY3UudXRmOC5zcWwKQEAgLTkyMCw2 ICs5MjAsMjEgQEAgQ1JFQVRFIFRBQkxFIHBhZ2dfdGFiNl9wMiBQQVJUSVRJT04gT0YgcGFn Z190YWI2IEZPUiBWQUxVRVMgSU4gKCdjJywgJ2QnKTsKIFJFU0VUIG1heF9wYXJhbGxlbF93 b3JrZXJzX3Blcl9nYXRoZXI7CiBSRVNFVCBlbmFibGVfaW5jcmVtZW50YWxfc29ydDsKIAor LS0gdmlydHVhbCBnZW5lcmF0ZWQgY29sdW1ucworQ1JFQVRFIFRBQkxFIHQ1ICgKKyAgICBh IGludCwKKyAgICBiIHRleHQgY29sbGF0ZSAiQyIsCisgICAgYyB0ZXh0IGNvbGxhdGUgIkMi IEdFTkVSQVRFRCBBTFdBWVMgQVMgKGIgQ09MTEFURSBjYXNlX2luc2Vuc2l0aXZlKQorKTsK K0lOU0VSVCBJTlRPIHQ1IChhLCBiKSB2YWx1ZXMgKDEsICdEMScpLCAoMiwgJ0QyJyksICgz LCAnZDEnKTsKKy0tIENvbGxhdGlvbiBvZiBjIHNob3VsZCBiZSB0aGUgb25lIGRlZmluZWQg Zm9yIHRoZSBjb2x1bW4gKCJDIiksIG5vdAorLS0gdGhlIG9uZSBvZiB0aGUgZ2VuZXJhdGlv biBleHByZXNzaW9uLiAgKE5vdGUgdGhhdCB3ZSBjYW5ub3QganVzdAorLS0gdGVzdCB3aXRo LCBzYXksIHVzaW5nIENPTExBVElPTiBGT1IsIGJlY2F1c2UgdGhlIGNvbGxhdGlvbiBvZgor LS0gZnVuY3Rpb24gY2FsbHMgaXMgYWxyZWFkeSBkZXRlcm1pbmVkIGluIHRoZSBwYXJzZXIg YmVmb3JlCistLSByZXdyaXRpbmcuKQorU0VMRUNUICogRlJPTSB0NSBPUkRFUiBCWSBjIEFT QywgYSBBU0M7CisKKwogLS0gY2xlYW51cAogUkVTRVQgc2VhcmNoX3BhdGg7CiBTRVQgY2xp ZW50X21pbl9tZXNzYWdlcyBUTyB3YXJuaW5nOwpkaWZmIC0tZ2l0IGEvc3JjL3Rlc3QvcmVn cmVzcy9zcWwvY3JlYXRlX3RhYmxlX2xpa2Uuc3FsIGIvc3JjL3Rlc3QvcmVncmVzcy9zcWwv Y3JlYXRlX3RhYmxlX2xpa2Uuc3FsCmluZGV4IGRlYTg5NDJjNzFmLi42M2ZkODk3OTY5YSAx MDA2NDQKLS0tIGEvc3JjL3Rlc3QvcmVncmVzcy9zcWwvY3JlYXRlX3RhYmxlX2xpa2Uuc3Fs CisrKyBiL3NyYy90ZXN0L3JlZ3Jlc3Mvc3FsL2NyZWF0ZV90YWJsZV9saWtlLnNxbApAQCAt NTEsNyArNTEsNyBAQCBDUkVBVEUgVEFCTEUgdGVzdF9saWtlX2lkXzMgKExJS0UgdGVzdF9s aWtlX2lkXzEgSU5DTFVESU5HIElERU5USVRZKTsKIFNFTEVDVCAqIEZST00gdGVzdF9saWtl X2lkXzM7ICAtLSBpZGVudGl0eSB3YXMgY29waWVkIGFuZCBhcHBsaWVkCiBEUk9QIFRBQkxF IHRlc3RfbGlrZV9pZF8xLCB0ZXN0X2xpa2VfaWRfMiwgdGVzdF9saWtlX2lkXzM7CiAKLUNS RUFURSBUQUJMRSB0ZXN0X2xpa2VfZ2VuXzEgKGEgaW50LCBiIGludCBHRU5FUkFURUQgQUxX QVlTIEFTIChhICogMikgU1RPUkVEKTsKK0NSRUFURSBUQUJMRSB0ZXN0X2xpa2VfZ2VuXzEg KGEgaW50LCBiIGludCBHRU5FUkFURUQgQUxXQVlTIEFTIChhICogMikgU1RPUkVELCBjIGlu dCBHRU5FUkFURUQgQUxXQVlTIEFTIChhICogMykgVklSVFVBTCk7CiBcZCB0ZXN0X2xpa2Vf Z2VuXzEKIElOU0VSVCBJTlRPIHRlc3RfbGlrZV9nZW5fMSAoYSkgVkFMVUVTICgxKTsKIFNF TEVDVCAqIEZST00gdGVzdF9saWtlX2dlbl8xOwpkaWZmIC0tZ2l0IGEvc3JjL3Rlc3QvcmVn cmVzcy9zcWwvZmFzdF9kZWZhdWx0LnNxbCBiL3NyYy90ZXN0L3JlZ3Jlc3Mvc3FsL2Zhc3Rf ZGVmYXVsdC5zcWwKaW5kZXggZGM5ZGY3OGEzNWQuLjZlN2YzN2IxN2IyIDEwMDY0NAotLS0g YS9zcmMvdGVzdC9yZWdyZXNzL3NxbC9mYXN0X2RlZmF1bHQuc3FsCisrKyBiL3NyYy90ZXN0 L3JlZ3Jlc3Mvc3FsL2Zhc3RfZGVmYXVsdC5zcWwKQEAgLTY2LDYgKzY2LDE3IEBAIENSRUFU RSBFVkVOVCBUUklHR0VSIGhhc192b2xhdGlsZV9yZXdyaXRlCiBBTFRFUiBUQUJMRSBoYXNf dm9sYXRpbGUgQUREIGNvbDMgdGltZXN0YW1wdHogREVGQVVMVCBjdXJyZW50X3RpbWVzdGFt cDsKIEFMVEVSIFRBQkxFIGhhc192b2xhdGlsZSBBREQgY29sNCBpbnQgREVGQVVMVCAocmFu ZG9tKCkgKiAxMDAwMCk6OmludDsKIAorLS0gdmlydHVhbCBnZW5lcmF0ZWQgY29sdW1ucyBk b24ndCBuZWVkIGEgcmV3cml0ZQorQUxURVIgVEFCTEUgaGFzX3ZvbGF0aWxlIEFERCBjb2w1 IGludCBHRU5FUkFURUQgQUxXQVlTIEFTICh0YWJsZW9pZDo6aW50ICsgY29sMikgVklSVFVB TDsKK0FMVEVSIFRBQkxFIGhhc192b2xhdGlsZSBBTFRFUiBDT0xVTU4gY29sNSBUWVBFIGZs b2F0ODsKK0FMVEVSIFRBQkxFIGhhc192b2xhdGlsZSBBTFRFUiBDT0xVTU4gY29sNSBUWVBF IG51bWVyaWM7CitBTFRFUiBUQUJMRSBoYXNfdm9sYXRpbGUgQUxURVIgQ09MVU1OIGNvbDUg VFlQRSBudW1lcmljOworLS0gaGVyZSwgd2UgZG8gbmVlZCBhIHJld3JpdGUKK0FMVEVSIFRB QkxFIGhhc192b2xhdGlsZSBBTFRFUiBDT0xVTU4gY29sMSBTRVQgREFUQSBUWVBFIGZsb2F0 OCwKKyAgQUREIENPTFVNTiBjb2w2IGZsb2F0OCBHRU5FUkFURUQgQUxXQVlTIEFTIChjb2wx ICogNCkgVklSVFVBTDsKKy0tIHN0b3JlZCBnZW5lcmF0ZWQgY29sdW1ucyBuZWVkIGEgcmV3 cml0ZQorQUxURVIgVEFCTEUgaGFzX3ZvbGF0aWxlIEFERCBjb2w3IGludCBHRU5FUkFURUQg QUxXQVlTIEFTICg1NSkgc3RvcmVkOworCiAKIAogLS0gVGVzdCBhIGxhcmdlIHNhbXBsZSBv ZiBkaWZmZXJlbnQgZGF0YXR5cGVzCmRpZmYgLS1naXQgYS9zcmMvdGVzdC9yZWdyZXNzL3Nx bC9nZW5lcmF0ZWRfc3RvcmVkLnNxbCBiL3NyYy90ZXN0L3JlZ3Jlc3Mvc3FsL2dlbmVyYXRl ZF9zdG9yZWQuc3FsCmluZGV4IGMxOGUwZTFmNjU1Li5kMGFhOTFiOTY1NyAxMDA2NDQKLS0t IGEvc3JjL3Rlc3QvcmVncmVzcy9zcWwvZ2VuZXJhdGVkX3N0b3JlZC5zcWwKKysrIGIvc3Jj L3Rlc3QvcmVncmVzcy9zcWwvZ2VuZXJhdGVkX3N0b3JlZC5zcWwKQEAgLTEsNSArMSw4IEBA CistLSBrZWVwIHRoZXNlIHRlc3RzIGFsaWduZWQgd2l0aCBnZW5lcmF0ZWRfdmlydHVhbC5z cWwKKworCiAtLSBzYW5pdHkgY2hlY2sgb2Ygc3lzdGVtIGNhdGFsb2cKLVNFTEVDVCBhdHRy ZWxpZCwgYXR0bmFtZSwgYXR0Z2VuZXJhdGVkIEZST00gcGdfYXR0cmlidXRlIFdIRVJFIGF0 dGdlbmVyYXRlZCBOT1QgSU4gKCcnLCAncycpOworU0VMRUNUIGF0dHJlbGlkLCBhdHRuYW1l LCBhdHRnZW5lcmF0ZWQgRlJPTSBwZ19hdHRyaWJ1dGUgV0hFUkUgYXR0Z2VuZXJhdGVkIE5P VCBJTiAoJycsICdzJywgJ3YnKTsKIAogCiBDUkVBVEUgU0NIRU1BIGdlbmVyYXRlZF9zdG9y ZWRfdGVzdHM7CkBAIC02MCw2ICs2Myw4IEBAIENSRUFURSBUQUJMRSBndGVzdF9lcnJfOCAo YSBpbnQgUFJJTUFSWSBLRVksIGIgaW50IEdFTkVSQVRFRCBCWSBERUZBVUxUIEFTIChhICoK IElOU0VSVCBJTlRPIGd0ZXN0MSBWQUxVRVMgKDMsIERFRkFVTFQpLCAoNCwgREVGQVVMVCk7 ICAtLSBvawogCiBTRUxFQ1QgKiBGUk9NIGd0ZXN0MSBPUkRFUiBCWSBhOworU0VMRUNUIGd0 ZXN0MSBGUk9NIGd0ZXN0MSBPUkRFUiBCWSBhOyAgLS0gd2hvbGUtcm93IHJlZmVyZW5jZQor U0VMRUNUIGEsIChTRUxFQ1QgZ3Rlc3QxLmIpIEZST00gZ3Rlc3QxIE9SREVSIEJZIGE7ICAt LSBzdWJsaW5rCiBERUxFVEUgRlJPTSBndGVzdDEgV0hFUkUgYSA+PSAzOwogCiBVUERBVEUg Z3Rlc3QxIFNFVCBiID0gREVGQVVMVCBXSEVSRSBhID0gMTsKQEAgLTEwMyw2ICsxMDgsMTQg QEAgQ1JFQVRFIFRBQkxFIGd0ZXN0bSAoCiBTRUxFQ1QgKiBGUk9NIGd0ZXN0bSBPUkRFUiBC WSBpZDsKIERST1AgVEFCTEUgZ3Rlc3RtOwogCitDUkVBVEUgVEFCTEUgZ3Rlc3RtICgKKyAg YSBpbnQgUFJJTUFSWSBLRVksCisgIGIgaW50IEdFTkVSQVRFRCBBTFdBWVMgQVMgKGEgKiAy KSBTVE9SRUQKKyk7CitJTlNFUlQgSU5UTyBndGVzdG0gKGEpIFNFTEVDVCBnIEZST00gZ2Vu ZXJhdGVfc2VyaWVzKDEsIDEwKSBnOworTUVSR0UgSU5UTyBndGVzdG0gdCBVU0lORyBndGVz dG0gQVMgcyBPTiAyICogdC5hID0gcy5iIFdIRU4gTUFUQ0hFRCBUSEVOIERFTEVURSBSRVRV Uk5JTkcgKjsKK0RST1AgVEFCTEUgZ3Rlc3RtOworCiAtLSB2aWV3cwogQ1JFQVRFIFZJRVcg Z3Rlc3QxdiBBUyBTRUxFQ1QgKiBGUk9NIGd0ZXN0MTsKIFNFTEVDVCAqIEZST00gZ3Rlc3Qx djsKQEAgLTE0Miw2ICsxNTUsNyBAQCBDUkVBVEUgVEFCTEUgZ3Rlc3Rfbm9ybWFsX2NoaWxk IChhIGludCwgYiBpbnQgR0VORVJBVEVEIEFMV0FZUyBBUyAoYSAqIDIpIFNUT1JFRAogLS0g dGVzdCBpbmhlcml0YW5jZSBtaXNtYXRjaGVzIGJldHdlZW4gcGFyZW50IGFuZCBjaGlsZAog Q1JFQVRFIFRBQkxFIGd0ZXN0eCAoeCBpbnQsIGIgaW50IERFRkFVTFQgMTApIElOSEVSSVRT IChndGVzdDEpOyAgLS0gZXJyb3IKIENSRUFURSBUQUJMRSBndGVzdHggKHggaW50LCBiIGlu dCBHRU5FUkFURUQgQUxXQVlTIEFTIElERU5USVRZKSBJTkhFUklUUyAoZ3Rlc3QxKTsgIC0t IGVycm9yCitDUkVBVEUgVEFCTEUgZ3Rlc3R4ICh4IGludCwgYiBpbnQgR0VORVJBVEVEIEFM V0FZUyBBUyAoYSAqIDIyKSBWSVJUVUFMKSBJTkhFUklUUyAoZ3Rlc3QxKTsgIC0tIGVycm9y CiBDUkVBVEUgVEFCTEUgZ3Rlc3R4ICh4IGludCwgYiBpbnQgR0VORVJBVEVEIEFMV0FZUyBB UyAoYSAqIDIyKSBTVE9SRUQpIElOSEVSSVRTIChndGVzdDEpOyAgLS0gb2ssIG92ZXJyaWRl cyBwYXJlbnQKIFxkKyBndGVzdHgKIApAQCAtMjc4LDEzICsyOTIsMTQgQEAgQ1JFQVRFIEZV TkNUSU9OIGdmMShhIGludCkgUkVUVVJOUyBpbnQgQVMgJCQgU0VMRUNUIGEgKiAzICQkIElN TVVUQUJMRSBMQU5HVUFHRQogCiBDUkVBVEUgVEFCTEUgZ3Rlc3QxMnMgKGEgaW50IFBSSU1B UlkgS0VZLCBiIGludCwgYyBpbnQgR0VORVJBVEVEIEFMV0FZUyBBUyAoZ2YxKGIpKSBTVE9S RUQpOwogSU5TRVJUIElOVE8gZ3Rlc3QxMnMgVkFMVUVTICgxLCAxMCksICgyLCAyMCk7Ci1H UkFOVCBTRUxFQ1QgKGEsIGMpIE9OIGd0ZXN0MTJzIFRPIHJlZ3Jlc3NfdXNlcjExOworR1JB TlQgU0VMRUNUIChhLCBjKSwgSU5TRVJUIE9OIGd0ZXN0MTJzIFRPIHJlZ3Jlc3NfdXNlcjEx OwogCiBTRVQgUk9MRSByZWdyZXNzX3VzZXIxMTsKIFNFTEVDVCBhLCBiIEZST00gZ3Rlc3Qx MXM7ICAtLSBub3QgYWxsb3dlZAogU0VMRUNUIGEsIGMgRlJPTSBndGVzdDExczsgIC0tIGFs bG93ZWQKIFNFTEVDVCBnZjEoMTApOyAgLS0gbm90IGFsbG93ZWQKLVNFTEVDVCBhLCBjIEZS T00gZ3Rlc3QxMnM7ICAtLSBhbGxvd2VkCitJTlNFUlQgSU5UTyBndGVzdDEycyBWQUxVRVMg KDMsIDMwKSwgKDQsIDQwKTsgIC0tIGN1cnJlbnRseSBub3QgYWxsb3dlZCBiZWNhdXNlIG9m IGZ1bmN0aW9uIHBlcm1pc3Npb25zLCBzaG91bGQgYXJndWFibHkgYmUgYWxsb3dlZAorU0VM RUNUIGEsIGMgRlJPTSBndGVzdDEyczsgIC0tIGFsbG93ZWQgKGRvZXMgbm90IGFjdHVhbGx5 IGludm9rZSB0aGUgZnVuY3Rpb24pCiBSRVNFVCBST0xFOwogCiBEUk9QIEZVTkNUSU9OIGdm MShpbnQpOyAgLS0gZmFpbApAQCAtMzkwLDYgKzQwNSwxMCBAQCBDUkVBVEUgRE9NQUlOIGd0 ZXN0ZG9tYWluMSBBUyBpbnQgQ0hFQ0sgKFZBTFVFIDwgMTApOwogQ1JFQVRFIFRBQkxFIGd0 ZXN0MjQgKGEgaW50IFBSSU1BUlkgS0VZLCBiIGd0ZXN0ZG9tYWluMSBHRU5FUkFURUQgQUxX QVlTIEFTIChhICogMikgU1RPUkVEKTsKIElOU0VSVCBJTlRPIGd0ZXN0MjQgKGEpIFZBTFVF UyAoNCk7ICAtLSBvawogSU5TRVJUIElOVE8gZ3Rlc3QyNCAoYSkgVkFMVUVTICg2KTsgIC0t IGVycm9yCitDUkVBVEUgVFlQRSBndGVzdGRvbWFpbjFyYW5nZSBBUyByYW5nZSAoc3VidHlw ZSA9IGd0ZXN0ZG9tYWluMSk7CitDUkVBVEUgVEFCTEUgZ3Rlc3QyNHIgKGEgaW50IFBSSU1B UlkgS0VZLCBiIGd0ZXN0ZG9tYWluMXJhbmdlIEdFTkVSQVRFRCBBTFdBWVMgQVMgKGd0ZXN0 ZG9tYWluMXJhbmdlKGEsIGEgKyA1KSkgU1RPUkVEKTsKK0lOU0VSVCBJTlRPIGd0ZXN0MjRy IChhKSBWQUxVRVMgKDQpOyAgLS0gb2sKK0lOU0VSVCBJTlRPIGd0ZXN0MjRyIChhKSBWQUxV RVMgKDYpOyAgLS0gZXJyb3IKIAogLS0gdHlwZWQgdGFibGVzIChjdXJyZW50bHkgbm90IHN1 cHBvcnRlZCkKIENSRUFURSBUWVBFIGd0ZXN0X3R5cGUgQVMgKGYxIGludGVnZXIsIGYyIHRl eHQsIGYzIGJpZ2ludCk7CkBAIC00MTcsNiArNDM2LDkgQEAgQ1JFQVRFIFRBQkxFIGd0ZXN0 X2NoaWxkMyBQQVJUSVRJT04gT0YgZ3Rlc3RfcGFyZW50ICgKIENSRUFURSBUQUJMRSBndGVz dF9jaGlsZDMgUEFSVElUSU9OIE9GIGd0ZXN0X3BhcmVudCAoCiAgICAgZjMgV0lUSCBPUFRJ T05TIEdFTkVSQVRFRCBBTFdBWVMgQVMgSURFTlRJVFkgIC0tIGVycm9yCiApIEZPUiBWQUxV RVMgRlJPTSAoJzIwMTYtMDktMDEnKSBUTyAoJzIwMTYtMTAtMDEnKTsKK0NSRUFURSBUQUJM RSBndGVzdF9jaGlsZDMgUEFSVElUSU9OIE9GIGd0ZXN0X3BhcmVudCAoCisgICAgZjMgR0VO RVJBVEVEIEFMV0FZUyBBUyAoZjIgKiAyKSBWSVJUVUFMICAtLSBlcnJvcgorKSBGT1IgVkFM VUVTIEZST00gKCcyMDE2LTA5LTAxJykgVE8gKCcyMDE2LTEwLTAxJyk7CiBDUkVBVEUgVEFC TEUgZ3Rlc3RfY2hpbGQzIChmMSBkYXRlIE5PVCBOVUxMLCBmMiBiaWdpbnQsIGYzIGJpZ2lu dCk7CiBBTFRFUiBUQUJMRSBndGVzdF9wYXJlbnQgQVRUQUNIIFBBUlRJVElPTiBndGVzdF9j aGlsZDMgRk9SIFZBTFVFUyBGUk9NICgnMjAxNi0wOS0wMScpIFRPICgnMjAxNi0xMC0wMScp OyAtLSBlcnJvcgogRFJPUCBUQUJMRSBndGVzdF9jaGlsZDM7CkBAIC00MjYsNiArNDQ4LDkg QEAgQ1JFQVRFIFRBQkxFIGd0ZXN0X2NoaWxkMyAoZjEgZGF0ZSBOT1QgTlVMTCwgZjIgYmln aW50LCBmMyBiaWdpbnQgREVGQVVMVCA0Mik7CiBDUkVBVEUgVEFCTEUgZ3Rlc3RfY2hpbGQz IChmMSBkYXRlIE5PVCBOVUxMLCBmMiBiaWdpbnQsIGYzIGJpZ2ludCBHRU5FUkFURUQgQUxX QVlTIEFTIElERU5USVRZKTsKIEFMVEVSIFRBQkxFIGd0ZXN0X3BhcmVudCBBVFRBQ0ggUEFS VElUSU9OIGd0ZXN0X2NoaWxkMyBGT1IgVkFMVUVTIEZST00gKCcyMDE2LTA5LTAxJykgVE8g KCcyMDE2LTEwLTAxJyk7IC0tIGVycm9yCiBEUk9QIFRBQkxFIGd0ZXN0X2NoaWxkMzsKK0NS RUFURSBUQUJMRSBndGVzdF9jaGlsZDMgKGYxIGRhdGUgTk9UIE5VTEwsIGYyIGJpZ2ludCwg ZjMgYmlnaW50IEdFTkVSQVRFRCBBTFdBWVMgQVMgKGYyICogMzMpIFZJUlRVQUwpOworQUxU RVIgVEFCTEUgZ3Rlc3RfcGFyZW50IEFUVEFDSCBQQVJUSVRJT04gZ3Rlc3RfY2hpbGQzIEZP UiBWQUxVRVMgRlJPTSAoJzIwMTYtMDktMDEnKSBUTyAoJzIwMTYtMTAtMDEnKTsgLS0gZXJy b3IKK0RST1AgVEFCTEUgZ3Rlc3RfY2hpbGQzOwogQ1JFQVRFIFRBQkxFIGd0ZXN0X2NoaWxk MyAoZjEgZGF0ZSBOT1QgTlVMTCwgZjIgYmlnaW50LCBmMyBiaWdpbnQgR0VORVJBVEVEIEFM V0FZUyBBUyAoZjIgKiAzMykgU1RPUkVEKTsKIEFMVEVSIFRBQkxFIGd0ZXN0X3BhcmVudCBB VFRBQ0ggUEFSVElUSU9OIGd0ZXN0X2NoaWxkMyBGT1IgVkFMVUVTIEZST00gKCcyMDE2LTA5 LTAxJykgVE8gKCcyMDE2LTEwLTAxJyk7CiBcZCBndGVzdF9jaGlsZApAQCAtNTQ5LDYgKzU3 NCwxOCBAQCBDUkVBVEUgVEFCTEUgZ3Rlc3QzMF8xICgpIElOSEVSSVRTIChndGVzdDMwKTsK IFxkIGd0ZXN0MzBfMQogQUxURVIgVEFCTEUgZ3Rlc3QzMF8xIEFMVEVSIENPTFVNTiBiIERS T1AgRVhQUkVTU0lPTjsgIC0tIGVycm9yCiAKKy0tIGNvbXBvc2l0ZSB0eXBlIGRlcGVuZGVu Y2llcworQ1JFQVRFIFRBQkxFIGd0ZXN0MzFfMSAoYSBpbnQsIGIgdGV4dCBHRU5FUkFURUQg QUxXQVlTIEFTICgnaGVsbG8nKSBTVE9SRUQsIGMgdGV4dCk7CitDUkVBVEUgVEFCTEUgZ3Rl c3QzMV8yICh4IGludCwgeSBndGVzdDMxXzEpOworQUxURVIgVEFCTEUgZ3Rlc3QzMV8xIEFM VEVSIENPTFVNTiBiIFRZUEUgdmFyY2hhcjsgIC0tIGZhaWxzCitEUk9QIFRBQkxFIGd0ZXN0 MzFfMSwgZ3Rlc3QzMV8yOworCistLSBDaGVjayBpdCBmb3IgYSBwYXJ0aXRpb25lZCB0YWJs ZSwgdG9vCitDUkVBVEUgVEFCTEUgZ3Rlc3QzMV8xIChhIGludCwgYiB0ZXh0IEdFTkVSQVRF RCBBTFdBWVMgQVMgKCdoZWxsbycpIFNUT1JFRCwgYyB0ZXh0KSBQQVJUSVRJT04gQlkgTElT VCAoYSk7CitDUkVBVEUgVEFCTEUgZ3Rlc3QzMV8yICh4IGludCwgeSBndGVzdDMxXzEpOwor QUxURVIgVEFCTEUgZ3Rlc3QzMV8xIEFMVEVSIENPTFVNTiBiIFRZUEUgdmFyY2hhcjsgIC0t IGZhaWxzCitEUk9QIFRBQkxFIGd0ZXN0MzFfMSwgZ3Rlc3QzMV8yOworCiAtLSB0cmlnZ2Vy cwogQ1JFQVRFIFRBQkxFIGd0ZXN0MjYgKAogICAgIGEgaW50IFBSSU1BUlkgS0VZLApkaWZm IC0tZ2l0IGEvc3JjL3Rlc3QvcmVncmVzcy9zcWwvZ2VuZXJhdGVkX3N0b3JlZC5zcWwgYi9z cmMvdGVzdC9yZWdyZXNzL3NxbC9nZW5lcmF0ZWRfdmlydHVhbC5zcWwKc2ltaWxhcml0eSBp bmRleCA2OCUKY29weSBmcm9tIHNyYy90ZXN0L3JlZ3Jlc3Mvc3FsL2dlbmVyYXRlZF9zdG9y ZWQuc3FsCmNvcHkgdG8gc3JjL3Rlc3QvcmVncmVzcy9zcWwvZ2VuZXJhdGVkX3ZpcnR1YWwu c3FsCmluZGV4IGMxOGUwZTFmNjU1Li5mOTcwNjBlYWQ0NyAxMDA2NDQKLS0tIGEvc3JjL3Rl c3QvcmVncmVzcy9zcWwvZ2VuZXJhdGVkX3N0b3JlZC5zcWwKKysrIGIvc3JjL3Rlc3QvcmVn cmVzcy9zcWwvZ2VuZXJhdGVkX3ZpcnR1YWwuc3FsCkBAIC0xLDU1ICsxLDU4IEBACistLSBr ZWVwIHRoZXNlIHRlc3RzIGFsaWduZWQgd2l0aCBnZW5lcmF0ZWRfc3RvcmVkLnNxbAorCisK IC0tIHNhbml0eSBjaGVjayBvZiBzeXN0ZW0gY2F0YWxvZwotU0VMRUNUIGF0dHJlbGlkLCBh dHRuYW1lLCBhdHRnZW5lcmF0ZWQgRlJPTSBwZ19hdHRyaWJ1dGUgV0hFUkUgYXR0Z2VuZXJh dGVkIE5PVCBJTiAoJycsICdzJyk7CitTRUxFQ1QgYXR0cmVsaWQsIGF0dG5hbWUsIGF0dGdl bmVyYXRlZCBGUk9NIHBnX2F0dHJpYnV0ZSBXSEVSRSBhdHRnZW5lcmF0ZWQgTk9UIElOICgn JywgJ3MnLCAndicpOwogCiAKLUNSRUFURSBTQ0hFTUEgZ2VuZXJhdGVkX3N0b3JlZF90ZXN0 czsKLUdSQU5UIFVTQUdFIE9OIFNDSEVNQSBnZW5lcmF0ZWRfc3RvcmVkX3Rlc3RzIFRPIFBV QkxJQzsKLVNFVCBzZWFyY2hfcGF0aCA9IGdlbmVyYXRlZF9zdG9yZWRfdGVzdHM7CitDUkVB VEUgU0NIRU1BIGdlbmVyYXRlZF92aXJ0dWFsX3Rlc3RzOworR1JBTlQgVVNBR0UgT04gU0NI RU1BIGdlbmVyYXRlZF92aXJ0dWFsX3Rlc3RzIFRPIFBVQkxJQzsKK1NFVCBzZWFyY2hfcGF0 aCA9IGdlbmVyYXRlZF92aXJ0dWFsX3Rlc3RzOwogCi1DUkVBVEUgVEFCTEUgZ3Rlc3QwIChh IGludCBQUklNQVJZIEtFWSwgYiBpbnQgR0VORVJBVEVEIEFMV0FZUyBBUyAoNTUpIFNUT1JF RCk7Ci1DUkVBVEUgVEFCTEUgZ3Rlc3QxIChhIGludCBQUklNQVJZIEtFWSwgYiBpbnQgR0VO RVJBVEVEIEFMV0FZUyBBUyAoYSAqIDIpIFNUT1JFRCk7CitDUkVBVEUgVEFCTEUgZ3Rlc3Qw IChhIGludCBQUklNQVJZIEtFWSwgYiBpbnQgR0VORVJBVEVEIEFMV0FZUyBBUyAoNTUpIFZJ UlRVQUwpOworQ1JFQVRFIFRBQkxFIGd0ZXN0MSAoYSBpbnQgUFJJTUFSWSBLRVksIGIgaW50 IEdFTkVSQVRFRCBBTFdBWVMgQVMgKGEgKiAyKSBWSVJUVUFMKTsKIAotU0VMRUNUIHRhYmxl X25hbWUsIGNvbHVtbl9uYW1lLCBjb2x1bW5fZGVmYXVsdCwgaXNfbnVsbGFibGUsIGlzX2dl bmVyYXRlZCwgZ2VuZXJhdGlvbl9leHByZXNzaW9uIEZST00gaW5mb3JtYXRpb25fc2NoZW1h LmNvbHVtbnMgV0hFUkUgdGFibGVfc2NoZW1hID0gJ2dlbmVyYXRlZF9zdG9yZWRfdGVzdHMn IE9SREVSIEJZIDEsIDI7CitTRUxFQ1QgdGFibGVfbmFtZSwgY29sdW1uX25hbWUsIGNvbHVt bl9kZWZhdWx0LCBpc19udWxsYWJsZSwgaXNfZ2VuZXJhdGVkLCBnZW5lcmF0aW9uX2V4cHJl c3Npb24gRlJPTSBpbmZvcm1hdGlvbl9zY2hlbWEuY29sdW1ucyBXSEVSRSB0YWJsZV9zY2hl bWEgPSAnZ2VuZXJhdGVkX3ZpcnR1YWxfdGVzdHMnIE9SREVSIEJZIDEsIDI7CiAKLVNFTEVD VCB0YWJsZV9uYW1lLCBjb2x1bW5fbmFtZSwgZGVwZW5kZW50X2NvbHVtbiBGUk9NIGluZm9y bWF0aW9uX3NjaGVtYS5jb2x1bW5fY29sdW1uX3VzYWdlIFdIRVJFIHRhYmxlX3NjaGVtYSA9 ICdnZW5lcmF0ZWRfc3RvcmVkX3Rlc3RzJyBPUkRFUiBCWSAxLCAyLCAzOworU0VMRUNUIHRh YmxlX25hbWUsIGNvbHVtbl9uYW1lLCBkZXBlbmRlbnRfY29sdW1uIEZST00gaW5mb3JtYXRp b25fc2NoZW1hLmNvbHVtbl9jb2x1bW5fdXNhZ2UgV0hFUkUgdGFibGVfc2NoZW1hID0gJ2dl bmVyYXRlZF92aXJ0dWFsX3Rlc3RzJyBPUkRFUiBCWSAxLCAyLCAzOwogCiBcZCBndGVzdDEK IAogLS0gZHVwbGljYXRlIGdlbmVyYXRlZAotQ1JFQVRFIFRBQkxFIGd0ZXN0X2Vycl8xIChh IGludCBQUklNQVJZIEtFWSwgYiBpbnQgR0VORVJBVEVEIEFMV0FZUyBBUyAoYSAqIDIpIFNU T1JFRCBHRU5FUkFURUQgQUxXQVlTIEFTIChhICogMykgU1RPUkVEKTsKK0NSRUFURSBUQUJM RSBndGVzdF9lcnJfMSAoYSBpbnQgUFJJTUFSWSBLRVksIGIgaW50IEdFTkVSQVRFRCBBTFdB WVMgQVMgKGEgKiAyKSBWSVJUVUFMIEdFTkVSQVRFRCBBTFdBWVMgQVMgKGEgKiAzKSBWSVJU VUFMKTsKIAogLS0gcmVmZXJlbmNlcyB0byBvdGhlciBnZW5lcmF0ZWQgY29sdW1ucywgaW5j bHVkaW5nIHNlbGYtcmVmZXJlbmNlcwotQ1JFQVRFIFRBQkxFIGd0ZXN0X2Vycl8yYSAoYSBp bnQgUFJJTUFSWSBLRVksIGIgaW50IEdFTkVSQVRFRCBBTFdBWVMgQVMgKGIgKiAyKSBTVE9S RUQpOwotQ1JFQVRFIFRBQkxFIGd0ZXN0X2Vycl8yYiAoYSBpbnQgUFJJTUFSWSBLRVksIGIg aW50IEdFTkVSQVRFRCBBTFdBWVMgQVMgKGEgKiAyKSBTVE9SRUQsIGMgaW50IEdFTkVSQVRF RCBBTFdBWVMgQVMgKGIgKiAzKSBTVE9SRUQpOworQ1JFQVRFIFRBQkxFIGd0ZXN0X2Vycl8y YSAoYSBpbnQgUFJJTUFSWSBLRVksIGIgaW50IEdFTkVSQVRFRCBBTFdBWVMgQVMgKGIgKiAy KSBWSVJUVUFMKTsKK0NSRUFURSBUQUJMRSBndGVzdF9lcnJfMmIgKGEgaW50IFBSSU1BUlkg S0VZLCBiIGludCBHRU5FUkFURUQgQUxXQVlTIEFTIChhICogMikgVklSVFVBTCwgYyBpbnQg R0VORVJBVEVEIEFMV0FZUyBBUyAoYiAqIDMpIFZJUlRVQUwpOwogLS0gYSB3aG9sZS1yb3cg dmFyIGlzIGEgc2VsZi1yZWZlcmVuY2Ugb24gc3Rlcm9pZHMsIHNvIGRpc2FsbG93IHRoYXQg dG9vCiBDUkVBVEUgVEFCTEUgZ3Rlc3RfZXJyXzJjIChhIGludCBQUklNQVJZIEtFWSwKLSAg ICBiIGludCBHRU5FUkFURUQgQUxXQVlTIEFTIChudW1fbnVsbHMoZ3Rlc3RfZXJyXzJjKSkg U1RPUkVEKTsKKyAgICBiIGludCBHRU5FUkFURUQgQUxXQVlTIEFTIChudW1fbnVsbHMoZ3Rl c3RfZXJyXzJjKSkgVklSVFVBTCk7CiAKIC0tIGludmFsaWQgcmVmZXJlbmNlCi1DUkVBVEUg VEFCTEUgZ3Rlc3RfZXJyXzMgKGEgaW50IFBSSU1BUlkgS0VZLCBiIGludCBHRU5FUkFURUQg QUxXQVlTIEFTIChjICogMikgU1RPUkVEKTsKK0NSRUFURSBUQUJMRSBndGVzdF9lcnJfMyAo YSBpbnQgUFJJTUFSWSBLRVksIGIgaW50IEdFTkVSQVRFRCBBTFdBWVMgQVMgKGMgKiAyKSBW SVJUVUFMKTsKIAogLS0gZ2VuZXJhdGlvbiBleHByZXNzaW9uIG11c3QgYmUgaW1tdXRhYmxl Ci1DUkVBVEUgVEFCTEUgZ3Rlc3RfZXJyXzQgKGEgaW50IFBSSU1BUlkgS0VZLCBiIGRvdWJs ZSBwcmVjaXNpb24gR0VORVJBVEVEIEFMV0FZUyBBUyAocmFuZG9tKCkpIFNUT1JFRCk7CitD UkVBVEUgVEFCTEUgZ3Rlc3RfZXJyXzQgKGEgaW50IFBSSU1BUlkgS0VZLCBiIGRvdWJsZSBw cmVjaXNpb24gR0VORVJBVEVEIEFMV0FZUyBBUyAocmFuZG9tKCkpIFZJUlRVQUwpOwogLS0g Li4uIGJ1dCBiZSBzdXJlIHRoYXQgdGhlIGltbXV0YWJpbGl0eSB0ZXN0IGlzIGFjY3VyYXRl Ci1DUkVBVEUgVEFCTEUgZ3Rlc3QyIChhIGludCwgYiB0ZXh0IEdFTkVSQVRFRCBBTFdBWVMg QVMgKGEgfHwgJyBzZWMnKSBTVE9SRUQpOworQ1JFQVRFIFRBQkxFIGd0ZXN0MiAoYSBpbnQs IGIgdGV4dCBHRU5FUkFURUQgQUxXQVlTIEFTIChhIHx8ICcgc2VjJykgVklSVFVBTCk7CiBE Uk9QIFRBQkxFIGd0ZXN0MjsKIAogLS0gY2Fubm90IGhhdmUgZGVmYXVsdC9pZGVudGl0eSBh bmQgZ2VuZXJhdGVkCi1DUkVBVEUgVEFCTEUgZ3Rlc3RfZXJyXzVhIChhIGludCBQUklNQVJZ IEtFWSwgYiBpbnQgREVGQVVMVCA1IEdFTkVSQVRFRCBBTFdBWVMgQVMgKGEgKiAyKSBTVE9S RUQpOwotQ1JFQVRFIFRBQkxFIGd0ZXN0X2Vycl81YiAoYSBpbnQgUFJJTUFSWSBLRVksIGIg aW50IEdFTkVSQVRFRCBBTFdBWVMgQVMgaWRlbnRpdHkgR0VORVJBVEVEIEFMV0FZUyBBUyAo YSAqIDIpIFNUT1JFRCk7CitDUkVBVEUgVEFCTEUgZ3Rlc3RfZXJyXzVhIChhIGludCBQUklN QVJZIEtFWSwgYiBpbnQgREVGQVVMVCA1IEdFTkVSQVRFRCBBTFdBWVMgQVMgKGEgKiAyKSBW SVJUVUFMKTsKK0NSRUFURSBUQUJMRSBndGVzdF9lcnJfNWIgKGEgaW50IFBSSU1BUlkgS0VZ LCBiIGludCBHRU5FUkFURUQgQUxXQVlTIEFTIGlkZW50aXR5IEdFTkVSQVRFRCBBTFdBWVMg QVMgKGEgKiAyKSBWSVJUVUFMKTsKIAogLS0gcmVmZXJlbmNlIHRvIHN5c3RlbSBjb2x1bW4g bm90IGFsbG93ZWQgaW4gZ2VuZXJhdGVkIGNvbHVtbgogLS0gKGV4Y2VwdCB0YWJsZW9pZCwg d2hpY2ggd2UgdGVzdCBiZWxvdykKLUNSRUFURSBUQUJMRSBndGVzdF9lcnJfNmEgKGEgaW50 IFBSSU1BUlkgS0VZLCBiIGJvb2wgR0VORVJBVEVEIEFMV0FZUyBBUyAoeG1pbiA8PiAzNykg U1RPUkVEKTsKK0NSRUFURSBUQUJMRSBndGVzdF9lcnJfNmEgKGEgaW50IFBSSU1BUlkgS0VZ LCBiIGJvb2wgR0VORVJBVEVEIEFMV0FZUyBBUyAoeG1pbiA8PiAzNykgVklSVFVBTCk7CiAK IC0tIHZhcmlvdXMgcHJvaGliaXRlZCBjb25zdHJ1Y3RzCi1DUkVBVEUgVEFCTEUgZ3Rlc3Rf ZXJyXzdhIChhIGludCBQUklNQVJZIEtFWSwgYiBpbnQgR0VORVJBVEVEIEFMV0FZUyBBUyAo YXZnKGEpKSBTVE9SRUQpOwotQ1JFQVRFIFRBQkxFIGd0ZXN0X2Vycl83YiAoYSBpbnQgUFJJ TUFSWSBLRVksIGIgaW50IEdFTkVSQVRFRCBBTFdBWVMgQVMgKHJvd19udW1iZXIoKSBPVkVS IChPUkRFUiBCWSBhKSkgU1RPUkVEKTsKLUNSRUFURSBUQUJMRSBndGVzdF9lcnJfN2MgKGEg aW50IFBSSU1BUlkgS0VZLCBiIGludCBHRU5FUkFURUQgQUxXQVlTIEFTICgoU0VMRUNUIGEp KSBTVE9SRUQpOwotQ1JFQVRFIFRBQkxFIGd0ZXN0X2Vycl83ZCAoYSBpbnQgUFJJTUFSWSBL RVksIGIgaW50IEdFTkVSQVRFRCBBTFdBWVMgQVMgKGdlbmVyYXRlX3NlcmllcygxLCBhKSkg U1RPUkVEKTsKK0NSRUFURSBUQUJMRSBndGVzdF9lcnJfN2EgKGEgaW50IFBSSU1BUlkgS0VZ LCBiIGludCBHRU5FUkFURUQgQUxXQVlTIEFTIChhdmcoYSkpIFZJUlRVQUwpOworQ1JFQVRF IFRBQkxFIGd0ZXN0X2Vycl83YiAoYSBpbnQgUFJJTUFSWSBLRVksIGIgaW50IEdFTkVSQVRF RCBBTFdBWVMgQVMgKHJvd19udW1iZXIoKSBPVkVSIChPUkRFUiBCWSBhKSkgVklSVFVBTCk7 CitDUkVBVEUgVEFCTEUgZ3Rlc3RfZXJyXzdjIChhIGludCBQUklNQVJZIEtFWSwgYiBpbnQg R0VORVJBVEVEIEFMV0FZUyBBUyAoKFNFTEVDVCBhKSkgVklSVFVBTCk7CitDUkVBVEUgVEFC TEUgZ3Rlc3RfZXJyXzdkIChhIGludCBQUklNQVJZIEtFWSwgYiBpbnQgR0VORVJBVEVEIEFM V0FZUyBBUyAoZ2VuZXJhdGVfc2VyaWVzKDEsIGEpKSBWSVJUVUFMKTsKIAogLS0gR0VORVJB VEVEIEJZIERFRkFVTFQgbm90IGFsbG93ZWQKLUNSRUFURSBUQUJMRSBndGVzdF9lcnJfOCAo YSBpbnQgUFJJTUFSWSBLRVksIGIgaW50IEdFTkVSQVRFRCBCWSBERUZBVUxUIEFTIChhICog MikgU1RPUkVEKTsKK0NSRUFURSBUQUJMRSBndGVzdF9lcnJfOCAoYSBpbnQgUFJJTUFSWSBL RVksIGIgaW50IEdFTkVSQVRFRCBCWSBERUZBVUxUIEFTIChhICogMikgVklSVFVBTCk7CiAK IElOU0VSVCBJTlRPIGd0ZXN0MSBWQUxVRVMgKDEpOwogSU5TRVJUIElOVE8gZ3Rlc3QxIFZB TFVFUyAoMiwgREVGQVVMVCk7ICAtLSBvawpAQCAtNjAsNiArNjMsOCBAQCBDUkVBVEUgVEFC TEUgZ3Rlc3RfZXJyXzggKGEgaW50IFBSSU1BUlkgS0VZLCBiIGludCBHRU5FUkFURUQgQlkg REVGQVVMVCBBUyAoYSAqCiBJTlNFUlQgSU5UTyBndGVzdDEgVkFMVUVTICgzLCBERUZBVUxU KSwgKDQsIERFRkFVTFQpOyAgLS0gb2sKIAogU0VMRUNUICogRlJPTSBndGVzdDEgT1JERVIg QlkgYTsKK1NFTEVDVCBndGVzdDEgRlJPTSBndGVzdDEgT1JERVIgQlkgYTsgIC0tIHdob2xl LXJvdyByZWZlcmVuY2UKK1NFTEVDVCBhLCAoU0VMRUNUIGd0ZXN0MS5iKSBGUk9NIGd0ZXN0 MSBPUkRFUiBCWSBhOyAgLS0gc3VibGluawogREVMRVRFIEZST00gZ3Rlc3QxIFdIRVJFIGEg Pj0gMzsKIAogVVBEQVRFIGd0ZXN0MSBTRVQgYiA9IERFRkFVTFQgV0hFUkUgYSA9IDE7CkBA IC03MCw3ICs3NSw3IEBAIENSRUFURSBUQUJMRSBndGVzdF9lcnJfOCAoYSBpbnQgUFJJTUFS WSBLRVksIGIgaW50IEdFTkVSQVRFRCBCWSBERUZBVUxUIEFTIChhICoKIFNFTEVDVCBhLCBi LCBiICogMiBBUyBiMiBGUk9NIGd0ZXN0MSBPUkRFUiBCWSBhOwogU0VMRUNUIGEsIGIgRlJP TSBndGVzdDEgV0hFUkUgYiA9IDQgT1JERVIgQlkgYTsKIAotLS0gdGVzdCB0aGF0IG92ZXJm bG93IGVycm9yIGhhcHBlbnMgb24gd3JpdGUKKy0tIHRlc3QgdGhhdCBvdmVyZmxvdyBlcnJv ciBoYXBwZW5zIG9uIHJlYWQKIElOU0VSVCBJTlRPIGd0ZXN0MSBWQUxVRVMgKDIwMDAwMDAw MDApOwogU0VMRUNUICogRlJPTSBndGVzdDE7CiBERUxFVEUgRlJPTSBndGVzdDEgV0hFUkUg YSA9IDIwMDAwMDAwMDA7CkBAIC05Myw4ICs5OCw4IEBAIENSRUFURSBUQUJMRSBndGVzdG0g KAogICBpZCBpbnQgUFJJTUFSWSBLRVksCiAgIGYxIGludCwKICAgZjIgaW50LAotICBmMyBp bnQgR0VORVJBVEVEIEFMV0FZUyBBUyAoZjEgKiAyKSBTVE9SRUQsCi0gIGY0IGludCBHRU5F UkFURUQgQUxXQVlTIEFTIChmMiAqIDIpIFNUT1JFRAorICBmMyBpbnQgR0VORVJBVEVEIEFM V0FZUyBBUyAoZjEgKiAyKSBWSVJUVUFMLAorICBmNCBpbnQgR0VORVJBVEVEIEFMV0FZUyBB UyAoZjIgKiAyKSBWSVJUVUFMCiApOwogSU5TRVJUIElOVE8gZ3Rlc3RtIFZBTFVFUyAoMSwg NSwgMTAwKTsKIE1FUkdFIElOVE8gZ3Rlc3RtIHQgVVNJTkcgKFZBTFVFUyAoMSwgMTApLCAo MiwgMjApKSB2KGlkLCBmMSkgT04gdC5pZCA9IHYuaWQKQEAgLTEwMyw2ICsxMDgsMTQgQEAg Q1JFQVRFIFRBQkxFIGd0ZXN0bSAoCiBTRUxFQ1QgKiBGUk9NIGd0ZXN0bSBPUkRFUiBCWSBp ZDsKIERST1AgVEFCTEUgZ3Rlc3RtOwogCitDUkVBVEUgVEFCTEUgZ3Rlc3RtICgKKyAgYSBp bnQgUFJJTUFSWSBLRVksCisgIGIgaW50IEdFTkVSQVRFRCBBTFdBWVMgQVMgKGEgKiAyKSBW SVJUVUFMCispOworSU5TRVJUIElOVE8gZ3Rlc3RtIChhKSBTRUxFQ1QgZyBGUk9NIGdlbmVy YXRlX3NlcmllcygxLCAxMCkgZzsKK01FUkdFIElOVE8gZ3Rlc3RtIHQgVVNJTkcgZ3Rlc3Rt IEFTIHMgT04gMiAqIHQuYSA9IHMuYiBXSEVOIE1BVENIRUQgVEhFTiBERUxFVEUgUkVUVVJO SU5HICo7CitEUk9QIFRBQkxFIGd0ZXN0bTsKKwogLS0gdmlld3MKIENSRUFURSBWSUVXIGd0 ZXN0MXYgQVMgU0VMRUNUICogRlJPTSBndGVzdDE7CiBTRUxFQ1QgKiBGUk9NIGd0ZXN0MXY7 CkBAIC0xMzQsMjIgKzE0NywyNiBAQCBDUkVBVEUgVEFCTEUgZ3Rlc3QxXzEgKCkgSU5IRVJJ VFMgKGd0ZXN0MSk7CiAKIC0tIGNhbid0IGhhdmUgZ2VuZXJhdGVkIGNvbHVtbiB0aGF0IGlz IGEgY2hpbGQgb2Ygbm9ybWFsIGNvbHVtbgogQ1JFQVRFIFRBQkxFIGd0ZXN0X25vcm1hbCAo YSBpbnQsIGIgaW50KTsKLUNSRUFURSBUQUJMRSBndGVzdF9ub3JtYWxfY2hpbGQgKGEgaW50 LCBiIGludCBHRU5FUkFURUQgQUxXQVlTIEFTIChhICogMikgU1RPUkVEKSBJTkhFUklUUyAo Z3Rlc3Rfbm9ybWFsKTsgIC0tIGVycm9yCi1DUkVBVEUgVEFCTEUgZ3Rlc3Rfbm9ybWFsX2No aWxkIChhIGludCwgYiBpbnQgR0VORVJBVEVEIEFMV0FZUyBBUyAoYSAqIDIpIFNUT1JFRCk7 CitDUkVBVEUgVEFCTEUgZ3Rlc3Rfbm9ybWFsX2NoaWxkIChhIGludCwgYiBpbnQgR0VORVJB VEVEIEFMV0FZUyBBUyAoYSAqIDIpIFZJUlRVQUwpIElOSEVSSVRTIChndGVzdF9ub3JtYWwp OyAgLS0gZXJyb3IKK0NSRUFURSBUQUJMRSBndGVzdF9ub3JtYWxfY2hpbGQgKGEgaW50LCBi IGludCBHRU5FUkFURUQgQUxXQVlTIEFTIChhICogMikgVklSVFVBTCk7CiBBTFRFUiBUQUJM RSBndGVzdF9ub3JtYWxfY2hpbGQgSU5IRVJJVCBndGVzdF9ub3JtYWw7ICAtLSBlcnJvcgog RFJPUCBUQUJMRSBndGVzdF9ub3JtYWwsIGd0ZXN0X25vcm1hbF9jaGlsZDsKIAogLS0gdGVz dCBpbmhlcml0YW5jZSBtaXNtYXRjaGVzIGJldHdlZW4gcGFyZW50IGFuZCBjaGlsZAogQ1JF QVRFIFRBQkxFIGd0ZXN0eCAoeCBpbnQsIGIgaW50IERFRkFVTFQgMTApIElOSEVSSVRTIChn dGVzdDEpOyAgLS0gZXJyb3IKIENSRUFURSBUQUJMRSBndGVzdHggKHggaW50LCBiIGludCBH RU5FUkFURUQgQUxXQVlTIEFTIElERU5USVRZKSBJTkhFUklUUyAoZ3Rlc3QxKTsgIC0tIGVy cm9yCi1DUkVBVEUgVEFCTEUgZ3Rlc3R4ICh4IGludCwgYiBpbnQgR0VORVJBVEVEIEFMV0FZ UyBBUyAoYSAqIDIyKSBTVE9SRUQpIElOSEVSSVRTIChndGVzdDEpOyAgLS0gb2ssIG92ZXJy aWRlcyBwYXJlbnQKK0NSRUFURSBUQUJMRSBndGVzdHggKHggaW50LCBiIGludCBHRU5FUkFU RUQgQUxXQVlTIEFTIChhICogMjIpIFNUT1JFRCkgSU5IRVJJVFMgKGd0ZXN0MSk7ICAtLSBl cnJvcgorQ1JFQVRFIFRBQkxFIGd0ZXN0eCAoeCBpbnQsIGIgaW50IEdFTkVSQVRFRCBBTFdB WVMgQVMgKGEgKiAyMikgVklSVFVBTCkgSU5IRVJJVFMgKGd0ZXN0MSk7ICAtLSBvaywgb3Zl cnJpZGVzIHBhcmVudAogXGQrIGd0ZXN0eAorSU5TRVJUIElOVE8gZ3Rlc3R4IChhLCB4KSBW QUxVRVMgKDExLCAyMik7CitTRUxFQ1QgKiBGUk9NIGd0ZXN0MTsKK1NFTEVDVCAqIEZST00g Z3Rlc3R4OwogCiBDUkVBVEUgVEFCTEUgZ3Rlc3R4eF8xIChhIGludCBOT1QgTlVMTCwgYiBp bnQpOwogQUxURVIgVEFCTEUgZ3Rlc3R4eF8xIElOSEVSSVQgZ3Rlc3QxOyAgLS0gZXJyb3IK LUNSRUFURSBUQUJMRSBndGVzdHh4XzMgKGEgaW50IE5PVCBOVUxMLCBiIGludCBHRU5FUkFU RUQgQUxXQVlTIEFTIChhICogMikgU1RPUkVEKTsKK0NSRUFURSBUQUJMRSBndGVzdHh4XzMg KGEgaW50IE5PVCBOVUxMLCBiIGludCBHRU5FUkFURUQgQUxXQVlTIEFTIChhICogMikgVklS VFVBTCk7CiBBTFRFUiBUQUJMRSBndGVzdHh4XzMgSU5IRVJJVCBndGVzdDE7ICAtLSBvawot Q1JFQVRFIFRBQkxFIGd0ZXN0eHhfNCAoYiBpbnQgR0VORVJBVEVEIEFMV0FZUyBBUyAoYSAq IDIpIFNUT1JFRCwgYSBpbnQgTk9UIE5VTEwpOworQ1JFQVRFIFRBQkxFIGd0ZXN0eHhfNCAo YiBpbnQgR0VORVJBVEVEIEFMV0FZUyBBUyAoYSAqIDIpIFZJUlRVQUwsIGEgaW50IE5PVCBO VUxMKTsKIEFMVEVSIFRBQkxFIGd0ZXN0eHhfNCBJTkhFUklUIGd0ZXN0MTsgIC0tIG9rCiAK IC0tIHRlc3QgbXVsdGlwbGUgaW5oZXJpdGFuY2UgbWlzbWF0Y2hlcwpAQCAtMTYxLDI4ICsx NzgsMjggQEAgQ1JFQVRFIFRBQkxFIGd0ZXN0eSAoeCBpbnQsIGIgaW50KTsKIENSRUFURSBU QUJMRSBndGVzdDFfeSAoKSBJTkhFUklUUyAoZ3Rlc3QxLCBndGVzdHkpOyAgLS0gZXJyb3IK IERST1AgVEFCTEUgZ3Rlc3R5OwogCi1DUkVBVEUgVEFCTEUgZ3Rlc3R5ICh4IGludCwgYiBp bnQgR0VORVJBVEVEIEFMV0FZUyBBUyAoeCAqIDIyKSBTVE9SRUQpOworQ1JFQVRFIFRBQkxF IGd0ZXN0eSAoeCBpbnQsIGIgaW50IEdFTkVSQVRFRCBBTFdBWVMgQVMgKHggKiAyMikgVklS VFVBTCk7CiBDUkVBVEUgVEFCTEUgZ3Rlc3QxX3kgKCkgSU5IRVJJVFMgKGd0ZXN0MSwgZ3Rl c3R5KTsgIC0tIGVycm9yCi1DUkVBVEUgVEFCTEUgZ3Rlc3QxX3kgKGIgaW50IEdFTkVSQVRF RCBBTFdBWVMgQVMgKHggKyAxKSBTVE9SRUQpIElOSEVSSVRTIChndGVzdDEsIGd0ZXN0eSk7 ICAtLSBvaworQ1JFQVRFIFRBQkxFIGd0ZXN0MV95IChiIGludCBHRU5FUkFURUQgQUxXQVlT IEFTICh4ICsgMSkgVklSVFVBTCkgSU5IRVJJVFMgKGd0ZXN0MSwgZ3Rlc3R5KTsgIC0tIG9r CiBcZCBndGVzdDFfeQogCiAtLSB0ZXN0IGNvcnJlY3QgaGFuZGxpbmcgb2YgR0VORVJBVEVE IGNvbHVtbiB0aGF0J3Mgb25seSBpbiBjaGlsZAogQ1JFQVRFIFRBQkxFIGd0ZXN0cCAoZjEg aW50KTsKLUNSRUFURSBUQUJMRSBndGVzdGMgKGYyIGludCBHRU5FUkFURUQgQUxXQVlTIEFT IChmMSsxKSBTVE9SRUQpIElOSEVSSVRTKGd0ZXN0cCk7CitDUkVBVEUgVEFCTEUgZ3Rlc3Rj IChmMiBpbnQgR0VORVJBVEVEIEFMV0FZUyBBUyAoZjErMSkgVklSVFVBTCkgSU5IRVJJVFMo Z3Rlc3RwKTsKIElOU0VSVCBJTlRPIGd0ZXN0YyB2YWx1ZXMoNDIpOwogVEFCTEUgZ3Rlc3Rj OwogVVBEQVRFIGd0ZXN0cCBTRVQgZjEgPSBmMSAqIDEwOwogVEFCTEUgZ3Rlc3RjOwogRFJP UCBUQUJMRSBndGVzdHAgQ0FTQ0FERTsKIAotLS0gdGVzdCBzdG9yZWQgdXBkYXRlCi1DUkVB VEUgVEFCTEUgZ3Rlc3QzIChhIGludCwgYiBpbnQgR0VORVJBVEVEIEFMV0FZUyBBUyAoYSAq IDMpIFNUT1JFRCk7CistLSB0ZXN0IHVwZGF0ZSBYWFgKK0NSRUFURSBUQUJMRSBndGVzdDMg KGEgaW50LCBiIGludCBHRU5FUkFURUQgQUxXQVlTIEFTIChhICogMykgVklSVFVBTCk7CiBJ TlNFUlQgSU5UTyBndGVzdDMgKGEpIFZBTFVFUyAoMSksICgyKSwgKDMpLCAoTlVMTCk7CiBT RUxFQ1QgKiBGUk9NIGd0ZXN0MyBPUkRFUiBCWSBhOwogVVBEQVRFIGd0ZXN0MyBTRVQgYSA9 IDIyIFdIRVJFIGEgPSAyOwogU0VMRUNUICogRlJPTSBndGVzdDMgT1JERVIgQlkgYTsKIAot Q1JFQVRFIFRBQkxFIGd0ZXN0M2EgKGEgdGV4dCwgYiB0ZXh0IEdFTkVSQVRFRCBBTFdBWVMg QVMgKGEgfHwgJysnIHx8IGEpIFNUT1JFRCk7CitDUkVBVEUgVEFCTEUgZ3Rlc3QzYSAoYSB0 ZXh0LCBiIHRleHQgR0VORVJBVEVEIEFMV0FZUyBBUyAoYSB8fCAnKycgfHwgYSkgVklSVFVB TCk7CiBJTlNFUlQgSU5UTyBndGVzdDNhIChhKSBWQUxVRVMgKCdhJyksICgnYicpLCAoJ2Mn KSwgKE5VTEwpOwogU0VMRUNUICogRlJPTSBndGVzdDNhIE9SREVSIEJZIGE7CiBVUERBVEUg Z3Rlc3QzYSBTRVQgYSA9ICdiYicgV0hFUkUgYSA9ICdiJzsKQEAgLTIyMiwxMiArMjM5LDEy IEBAIENSRUFURSBUQUJMRSBndGVzdDNhIChhIHRleHQsIGIgdGV4dCBHRU5FUkFURUQgQUxX QVlTIEFTIChhIHx8ICcrJyB8fCBhKSBTVE9SRUQpCiBTRUxFQ1QgKiBGUk9NIGd0ZXN0MyBP UkRFUiBCWSBhOwogCiAtLSBudWxsIHZhbHVlcwotQ1JFQVRFIFRBQkxFIGd0ZXN0MiAoYSBp bnQgUFJJTUFSWSBLRVksIGIgaW50IEdFTkVSQVRFRCBBTFdBWVMgQVMgKE5VTEwpIFNUT1JF RCk7CitDUkVBVEUgVEFCTEUgZ3Rlc3QyIChhIGludCBQUklNQVJZIEtFWSwgYiBpbnQgR0VO RVJBVEVEIEFMV0FZUyBBUyAoTlVMTCkgVklSVFVBTCk7CiBJTlNFUlQgSU5UTyBndGVzdDIg VkFMVUVTICgxKTsKIFNFTEVDVCAqIEZST00gZ3Rlc3QyOwogCiAtLSBzaW1wbGUgY29sdW1u IHJlZmVyZW5jZSBmb3IgdmFybGVuYSB0eXBlcwotQ1JFQVRFIFRBQkxFIGd0ZXN0X3Zhcmxl bmEgKGEgdmFyY2hhciwgYiB2YXJjaGFyIEdFTkVSQVRFRCBBTFdBWVMgQVMgKGEpIFNUT1JF RCk7CitDUkVBVEUgVEFCTEUgZ3Rlc3RfdmFybGVuYSAoYSB2YXJjaGFyLCBiIHZhcmNoYXIg R0VORVJBVEVEIEFMV0FZUyBBUyAoYSkgVklSVFVBTCk7CiBJTlNFUlQgSU5UTyBndGVzdF92 YXJsZW5hIChhKSBWQUxVRVMoJzAxMjM0NTY3ODkwMTIzNDU2Nzg5Jyk7CiBJTlNFUlQgSU5U TyBndGVzdF92YXJsZW5hIChhKSBWQUxVRVMoTlVMTCk7CiBTRUxFQ1QgKiBGUk9NIGd0ZXN0 X3ZhcmxlbmEgT1JERVIgQlkgYTsKQEAgLTIzNyw3ICsyNTQsNyBAQCBDUkVBVEUgVEFCTEUg Z3Rlc3RfdmFybGVuYSAoYSB2YXJjaGFyLCBiIHZhcmNoYXIgR0VORVJBVEVEIEFMV0FZUyBB UyAoYSkgU1RPUkVEKQogQ1JFQVRFIFRZUEUgZG91YmxlX2ludCBhcyAoYSBpbnQsIGIgaW50 KTsKIENSRUFURSBUQUJMRSBndGVzdDQgKAogICAgIGEgaW50LAotICAgIGIgZG91YmxlX2lu dCBHRU5FUkFURUQgQUxXQVlTIEFTICgoYSAqIDIsIGEgKiAzKSkgU1RPUkVECisgICAgYiBk b3VibGVfaW50IEdFTkVSQVRFRCBBTFdBWVMgQVMgKChhICogMiwgYSAqIDMpKSBWSVJUVUFM CiApOwogSU5TRVJUIElOVE8gZ3Rlc3Q0IFZBTFVFUyAoMSksICg2KTsKIFNFTEVDVCAqIEZS T00gZ3Rlc3Q0OwpAQCAtMjQ4LDE2OCArMjY1LDE3OSBAQCBDUkVBVEUgVEFCTEUgZ3Rlc3Q0 ICgKIC0tIHVzaW5nIHRhYmxlb2lkIGlzIGFsbG93ZWQKIENSRUFURSBUQUJMRSBndGVzdF90 YWJsZW9pZCAoCiAgIGEgaW50IFBSSU1BUlkgS0VZLAotICBiIGJvb2wgR0VORVJBVEVEIEFM V0FZUyBBUyAodGFibGVvaWQgPSAnZ3Rlc3RfdGFibGVvaWQnOjpyZWdjbGFzcykgU1RPUkVE CisgIGIgYm9vbCBHRU5FUkFURUQgQUxXQVlTIEFTICh0YWJsZW9pZCA9ICdndGVzdF90YWJs ZW9pZCc6OnJlZ2NsYXNzKSBWSVJUVUFMCiApOwogSU5TRVJUIElOVE8gZ3Rlc3RfdGFibGVv aWQgVkFMVUVTICgxKSwgKDIpOwogQUxURVIgVEFCTEUgZ3Rlc3RfdGFibGVvaWQgQUREIENP TFVNTgotICBjIHJlZ2NsYXNzIEdFTkVSQVRFRCBBTFdBWVMgQVMgKHRhYmxlb2lkKSBTVE9S RUQ7CisgIGMgcmVnY2xhc3MgR0VORVJBVEVEIEFMV0FZUyBBUyAodGFibGVvaWQpIFZJUlRV QUw7CiBTRUxFQ1QgKiBGUk9NIGd0ZXN0X3RhYmxlb2lkOwogCiAtLSBkcm9wIGNvbHVtbiBi ZWhhdmlvcgotQ1JFQVRFIFRBQkxFIGd0ZXN0MTAgKGEgaW50IFBSSU1BUlkgS0VZLCBiIGlu dCwgYyBpbnQgR0VORVJBVEVEIEFMV0FZUyBBUyAoYiAqIDIpIFNUT1JFRCk7CitDUkVBVEUg VEFCTEUgZ3Rlc3QxMCAoYSBpbnQgUFJJTUFSWSBLRVksIGIgaW50LCBjIGludCBHRU5FUkFU RUQgQUxXQVlTIEFTIChiICogMikgVklSVFVBTCk7CiBBTFRFUiBUQUJMRSBndGVzdDEwIERS T1AgQ09MVU1OIGI7ICAtLSBmYWlscwogQUxURVIgVEFCTEUgZ3Rlc3QxMCBEUk9QIENPTFVN TiBiIENBU0NBREU7ICAtLSBkcm9wcyBjIHRvbwogCiBcZCBndGVzdDEwCiAKLUNSRUFURSBU QUJMRSBndGVzdDEwYSAoYSBpbnQgUFJJTUFSWSBLRVksIGIgaW50IEdFTkVSQVRFRCBBTFdB WVMgQVMgKGEgKiAyKSBTVE9SRUQpOworQ1JFQVRFIFRBQkxFIGd0ZXN0MTBhIChhIGludCBQ UklNQVJZIEtFWSwgYiBpbnQgR0VORVJBVEVEIEFMV0FZUyBBUyAoYSAqIDIpIFZJUlRVQUwp OwogQUxURVIgVEFCTEUgZ3Rlc3QxMGEgRFJPUCBDT0xVTU4gYjsKIElOU0VSVCBJTlRPIGd0 ZXN0MTBhIChhKSBWQUxVRVMgKDEpOwogCiAtLSBwcml2aWxlZ2VzCiBDUkVBVEUgVVNFUiBy ZWdyZXNzX3VzZXIxMTsKIAotQ1JFQVRFIFRBQkxFIGd0ZXN0MTFzIChhIGludCBQUklNQVJZ IEtFWSwgYiBpbnQsIGMgaW50IEdFTkVSQVRFRCBBTFdBWVMgQVMgKGIgKiAyKSBTVE9SRUQp OwotSU5TRVJUIElOVE8gZ3Rlc3QxMXMgVkFMVUVTICgxLCAxMCksICgyLCAyMCk7Ci1HUkFO VCBTRUxFQ1QgKGEsIGMpIE9OIGd0ZXN0MTFzIFRPIHJlZ3Jlc3NfdXNlcjExOworQ1JFQVRF IFRBQkxFIGd0ZXN0MTF2IChhIGludCBQUklNQVJZIEtFWSwgYiBpbnQsIGMgaW50IEdFTkVS QVRFRCBBTFdBWVMgQVMgKGIgKiAyKSBWSVJUVUFMKTsKK0lOU0VSVCBJTlRPIGd0ZXN0MTF2 IFZBTFVFUyAoMSwgMTApLCAoMiwgMjApOworR1JBTlQgU0VMRUNUIChhLCBjKSBPTiBndGVz dDExdiBUTyByZWdyZXNzX3VzZXIxMTsKIAogQ1JFQVRFIEZVTkNUSU9OIGdmMShhIGludCkg UkVUVVJOUyBpbnQgQVMgJCQgU0VMRUNUIGEgKiAzICQkIElNTVVUQUJMRSBMQU5HVUFHRSBT UUw7CiBSRVZPS0UgQUxMIE9OIEZVTkNUSU9OIGdmMShpbnQpIEZST00gUFVCTElDOwogCi1D UkVBVEUgVEFCTEUgZ3Rlc3QxMnMgKGEgaW50IFBSSU1BUlkgS0VZLCBiIGludCwgYyBpbnQg R0VORVJBVEVEIEFMV0FZUyBBUyAoZ2YxKGIpKSBTVE9SRUQpOwotSU5TRVJUIElOVE8gZ3Rl c3QxMnMgVkFMVUVTICgxLCAxMCksICgyLCAyMCk7Ci1HUkFOVCBTRUxFQ1QgKGEsIGMpIE9O IGd0ZXN0MTJzIFRPIHJlZ3Jlc3NfdXNlcjExOworQ1JFQVRFIFRBQkxFIGd0ZXN0MTJ2IChh IGludCBQUklNQVJZIEtFWSwgYiBpbnQsIGMgaW50IEdFTkVSQVRFRCBBTFdBWVMgQVMgKGdm MShiKSkgVklSVFVBTCk7CitJTlNFUlQgSU5UTyBndGVzdDEydiBWQUxVRVMgKDEsIDEwKSwg KDIsIDIwKTsKK0dSQU5UIFNFTEVDVCAoYSwgYyksIElOU0VSVCBPTiBndGVzdDEydiBUTyBy ZWdyZXNzX3VzZXIxMTsKIAogU0VUIFJPTEUgcmVncmVzc191c2VyMTE7Ci1TRUxFQ1QgYSwg YiBGUk9NIGd0ZXN0MTFzOyAgLS0gbm90IGFsbG93ZWQKLVNFTEVDVCBhLCBjIEZST00gZ3Rl c3QxMXM7ICAtLSBhbGxvd2VkCitTRUxFQ1QgYSwgYiBGUk9NIGd0ZXN0MTF2OyAgLS0gbm90 IGFsbG93ZWQKK1NFTEVDVCBhLCBjIEZST00gZ3Rlc3QxMXY7ICAtLSBhbGxvd2VkCiBTRUxF Q1QgZ2YxKDEwKTsgIC0tIG5vdCBhbGxvd2VkCi1TRUxFQ1QgYSwgYyBGUk9NIGd0ZXN0MTJz OyAgLS0gYWxsb3dlZAorSU5TRVJUIElOVE8gZ3Rlc3QxMnYgVkFMVUVTICgzLCAzMCksICg0 LCA0MCk7ICAtLSBhbGxvd2VkIChkb2VzIG5vdCBhY3R1YWxseSBpbnZva2UgdGhlIGZ1bmN0 aW9uKQorU0VMRUNUIGEsIGMgRlJPTSBndGVzdDEydjsgIC0tIGN1cnJlbnRseSBub3QgYWxs b3dlZCBiZWNhdXNlIG9mIGZ1bmN0aW9uIHBlcm1pc3Npb25zLCBzaG91bGQgYXJndWFibHkg YmUgYWxsb3dlZAogUkVTRVQgUk9MRTsKIAogRFJPUCBGVU5DVElPTiBnZjEoaW50KTsgIC0t IGZhaWwKLURST1AgVEFCTEUgZ3Rlc3QxMXMsIGd0ZXN0MTJzOworRFJPUCBUQUJMRSBndGVz dDExdiwgZ3Rlc3QxMnY7CiBEUk9QIEZVTkNUSU9OIGdmMShpbnQpOwogRFJPUCBVU0VSIHJl Z3Jlc3NfdXNlcjExOwogCiAtLSBjaGVjayBjb25zdHJhaW50cwotQ1JFQVRFIFRBQkxFIGd0 ZXN0MjAgKGEgaW50IFBSSU1BUlkgS0VZLCBiIGludCBHRU5FUkFURUQgQUxXQVlTIEFTIChh ICogMikgU1RPUkVEIENIRUNLIChiIDwgNTApKTsKK0NSRUFURSBUQUJMRSBndGVzdDIwIChh IGludCBQUklNQVJZIEtFWSwgYiBpbnQgR0VORVJBVEVEIEFMV0FZUyBBUyAoYSAqIDIpIFZJ UlRVQUwgQ0hFQ0sgKGIgPCA1MCkpOwogSU5TRVJUIElOVE8gZ3Rlc3QyMCAoYSkgVkFMVUVT ICgxMCk7ICAtLSBvawogSU5TRVJUIElOVE8gZ3Rlc3QyMCAoYSkgVkFMVUVTICgzMCk7ICAt LSB2aW9sYXRlcyBjb25zdHJhaW50CiAKIEFMVEVSIFRBQkxFIGd0ZXN0MjAgQUxURVIgQ09M VU1OIGIgU0VUIEVYUFJFU1NJT04gQVMgKGEgKiAxMDApOyAgLS0gdmlvbGF0ZXMgY29uc3Ry YWludAogQUxURVIgVEFCTEUgZ3Rlc3QyMCBBTFRFUiBDT0xVTU4gYiBTRVQgRVhQUkVTU0lP TiBBUyAoYSAqIDMpOyAgLS0gb2sKIAotQ1JFQVRFIFRBQkxFIGd0ZXN0MjBhIChhIGludCBQ UklNQVJZIEtFWSwgYiBpbnQgR0VORVJBVEVEIEFMV0FZUyBBUyAoYSAqIDIpIFNUT1JFRCk7 CitDUkVBVEUgVEFCTEUgZ3Rlc3QyMGEgKGEgaW50IFBSSU1BUlkgS0VZLCBiIGludCBHRU5F UkFURUQgQUxXQVlTIEFTIChhICogMikgVklSVFVBTCk7CiBJTlNFUlQgSU5UTyBndGVzdDIw YSAoYSkgVkFMVUVTICgxMCk7CiBJTlNFUlQgSU5UTyBndGVzdDIwYSAoYSkgVkFMVUVTICgz MCk7CiBBTFRFUiBUQUJMRSBndGVzdDIwYSBBREQgQ0hFQ0sgKGIgPCA1MCk7ICAtLSBmYWls cyBvbiBleGlzdGluZyByb3cKIAotQ1JFQVRFIFRBQkxFIGd0ZXN0MjBiIChhIGludCBQUklN QVJZIEtFWSwgYiBpbnQgR0VORVJBVEVEIEFMV0FZUyBBUyAoYSAqIDIpIFNUT1JFRCk7CitD UkVBVEUgVEFCTEUgZ3Rlc3QyMGIgKGEgaW50IFBSSU1BUlkgS0VZLCBiIGludCBHRU5FUkFU RUQgQUxXQVlTIEFTIChhICogMikgVklSVFVBTCk7CiBJTlNFUlQgSU5UTyBndGVzdDIwYiAo YSkgVkFMVUVTICgxMCk7CiBJTlNFUlQgSU5UTyBndGVzdDIwYiAoYSkgVkFMVUVTICgzMCk7 CiBBTFRFUiBUQUJMRSBndGVzdDIwYiBBREQgQ09OU1RSQUlOVCBjaGsgQ0hFQ0sgKGIgPCA1 MCkgTk9UIFZBTElEOwogQUxURVIgVEFCTEUgZ3Rlc3QyMGIgVkFMSURBVEUgQ09OU1RSQUlO VCBjaGs7ICAtLSBmYWlscyBvbiBleGlzdGluZyByb3cKIAotLS0gbm90LW51bGwgY29uc3Ry YWludHMKLUNSRUFURSBUQUJMRSBndGVzdDIxYSAoYSBpbnQgUFJJTUFSWSBLRVksIGIgaW50 IEdFTkVSQVRFRCBBTFdBWVMgQVMgKG51bGxpZihhLCAwKSkgU1RPUkVEIE5PVCBOVUxMKTsK LUlOU0VSVCBJTlRPIGd0ZXN0MjFhIChhKSBWQUxVRVMgKDEpOyAgLS0gb2sKLUlOU0VSVCBJ TlRPIGd0ZXN0MjFhIChhKSBWQUxVRVMgKDApOyAgLS0gdmlvbGF0ZXMgY29uc3RyYWludAor LS0gbm90LW51bGwgY29uc3RyYWludHMgKGN1cnJlbnRseSBub3Qgc3VwcG9ydGVkKQorQ1JF QVRFIFRBQkxFIGd0ZXN0MjFhIChhIGludCBQUklNQVJZIEtFWSwgYiBpbnQgR0VORVJBVEVE IEFMV0FZUyBBUyAobnVsbGlmKGEsIDApKSBWSVJUVUFMIE5PVCBOVUxMKTsKKy0tSU5TRVJU IElOVE8gZ3Rlc3QyMWEgKGEpIFZBTFVFUyAoMSk7ICAtLSBvaworLS1JTlNFUlQgSU5UTyBn dGVzdDIxYSAoYSkgVkFMVUVTICgwKTsgIC0tIHZpb2xhdGVzIGNvbnN0cmFpbnQKIAotQ1JF QVRFIFRBQkxFIGd0ZXN0MjFiIChhIGludCBQUklNQVJZIEtFWSwgYiBpbnQgR0VORVJBVEVE IEFMV0FZUyBBUyAobnVsbGlmKGEsIDApKSBTVE9SRUQpOworLS0gYWxzbyBjaGVjayB3aXRo IHRhYmxlIGNvbnN0cmFpbnQgc3ludGF4CitDUkVBVEUgVEFCTEUgZ3Rlc3QyMWF4IChhIGlu dCBQUklNQVJZIEtFWSwgYiBpbnQgR0VORVJBVEVEIEFMV0FZUyBBUyAobnVsbGlmKGEsIDAp KSBWSVJUVUFMLCBDT05TVFJBSU5UIGNjIE5PVCBOVUxMIGIpOyAgLS0gZXJyb3IKK0NSRUFU RSBUQUJMRSBndGVzdDIxYXggKGEgaW50IFBSSU1BUlkgS0VZLCBiIGludCBHRU5FUkFURUQg QUxXQVlTIEFTIChudWxsaWYoYSwgMCkpIFZJUlRVQUwpOworQUxURVIgVEFCTEUgZ3Rlc3Qy MWF4IEFERCBDT05TVFJBSU5UIGNjIE5PVCBOVUxMIGI7ICAtLSBlcnJvcgorRFJPUCBUQUJM RSBndGVzdDIxYXg7CisKK0NSRUFURSBUQUJMRSBndGVzdDIxYiAoYSBpbnQgUFJJTUFSWSBL RVksIGIgaW50IEdFTkVSQVRFRCBBTFdBWVMgQVMgKG51bGxpZihhLCAwKSkgVklSVFVBTCk7 CiBBTFRFUiBUQUJMRSBndGVzdDIxYiBBTFRFUiBDT0xVTU4gYiBTRVQgTk9UIE5VTEw7Ci1J TlNFUlQgSU5UTyBndGVzdDIxYiAoYSkgVkFMVUVTICgxKTsgIC0tIG9rCi1JTlNFUlQgSU5U TyBndGVzdDIxYiAoYSkgVkFMVUVTICgwKTsgIC0tIHZpb2xhdGVzIGNvbnN0cmFpbnQKKy0t SU5TRVJUIElOVE8gZ3Rlc3QyMWIgKGEpIFZBTFVFUyAoMSk7ICAtLSBvaworLS1JTlNFUlQg SU5UTyBndGVzdDIxYiAoYSkgVkFMVUVTICgwKTsgIC0tIHZpb2xhdGVzIGNvbnN0cmFpbnQK IEFMVEVSIFRBQkxFIGd0ZXN0MjFiIEFMVEVSIENPTFVNTiBiIERST1AgTk9UIE5VTEw7Ci1J TlNFUlQgSU5UTyBndGVzdDIxYiAoYSkgVkFMVUVTICgwKTsgIC0tIG9rIG5vdworLS1JTlNF UlQgSU5UTyBndGVzdDIxYiAoYSkgVkFMVUVTICgwKTsgIC0tIG9rIG5vdwogCiAtLSBpbmRl eCBjb25zdHJhaW50cwotQ1JFQVRFIFRBQkxFIGd0ZXN0MjJhIChhIGludCBQUklNQVJZIEtF WSwgYiBpbnQgR0VORVJBVEVEIEFMV0FZUyBBUyAoYSAvIDIpIFNUT1JFRCBVTklRVUUpOwot SU5TRVJUIElOVE8gZ3Rlc3QyMmEgVkFMVUVTICgyKTsKLUlOU0VSVCBJTlRPIGd0ZXN0MjJh IFZBTFVFUyAoMyk7Ci1JTlNFUlQgSU5UTyBndGVzdDIyYSBWQUxVRVMgKDQpOwotQ1JFQVRF IFRBQkxFIGd0ZXN0MjJiIChhIGludCwgYiBpbnQgR0VORVJBVEVEIEFMV0FZUyBBUyAoYSAv IDIpIFNUT1JFRCwgUFJJTUFSWSBLRVkgKGEsIGIpKTsKLUlOU0VSVCBJTlRPIGd0ZXN0MjJi IFZBTFVFUyAoMik7Ci1JTlNFUlQgSU5UTyBndGVzdDIyYiBWQUxVRVMgKDIpOworQ1JFQVRF IFRBQkxFIGd0ZXN0MjJhIChhIGludCBQUklNQVJZIEtFWSwgYiBpbnQgR0VORVJBVEVEIEFM V0FZUyBBUyAoYSAvIDIpIFZJUlRVQUwgVU5JUVVFKTsKKy0tSU5TRVJUIElOVE8gZ3Rlc3Qy MmEgVkFMVUVTICgyKTsKKy0tSU5TRVJUIElOVE8gZ3Rlc3QyMmEgVkFMVUVTICgzKTsKKy0t SU5TRVJUIElOVE8gZ3Rlc3QyMmEgVkFMVUVTICg0KTsKK0NSRUFURSBUQUJMRSBndGVzdDIy YiAoYSBpbnQsIGIgaW50IEdFTkVSQVRFRCBBTFdBWVMgQVMgKGEgLyAyKSBWSVJUVUFMLCBQ UklNQVJZIEtFWSAoYSwgYikpOworLS1JTlNFUlQgSU5UTyBndGVzdDIyYiBWQUxVRVMgKDIp OworLS1JTlNFUlQgSU5UTyBndGVzdDIyYiBWQUxVRVMgKDIpOwogCiAtLSBpbmRleGVzCi1D UkVBVEUgVEFCTEUgZ3Rlc3QyMmMgKGEgaW50LCBiIGludCBHRU5FUkFURUQgQUxXQVlTIEFT IChhICogMikgU1RPUkVEKTsKLUNSRUFURSBJTkRFWCBndGVzdDIyY19iX2lkeCBPTiBndGVz dDIyYyAoYik7Ci1DUkVBVEUgSU5ERVggZ3Rlc3QyMmNfZXhwcl9pZHggT04gZ3Rlc3QyMmMg KChiICogMykpOwotQ1JFQVRFIElOREVYIGd0ZXN0MjJjX3ByZWRfaWR4IE9OIGd0ZXN0MjJj IChhKSBXSEVSRSBiID4gMDsKLVxkIGd0ZXN0MjJjCi0KLUlOU0VSVCBJTlRPIGd0ZXN0MjJj IFZBTFVFUyAoMSksICgyKSwgKDMpOwotU0VUIGVuYWJsZV9zZXFzY2FuIFRPIG9mZjsKLVNF VCBlbmFibGVfYml0bWFwc2NhbiBUTyBvZmY7Ci1FWFBMQUlOIChDT1NUUyBPRkYpIFNFTEVD VCAqIEZST00gZ3Rlc3QyMmMgV0hFUkUgYiA9IDQ7Ci1TRUxFQ1QgKiBGUk9NIGd0ZXN0MjJj IFdIRVJFIGIgPSA0OwotRVhQTEFJTiAoQ09TVFMgT0ZGKSBTRUxFQ1QgKiBGUk9NIGd0ZXN0 MjJjIFdIRVJFIGIgKiAzID0gNjsKLVNFTEVDVCAqIEZST00gZ3Rlc3QyMmMgV0hFUkUgYiAq IDMgPSA2OwotRVhQTEFJTiAoQ09TVFMgT0ZGKSBTRUxFQ1QgKiBGUk9NIGd0ZXN0MjJjIFdI RVJFIGEgPSAxIEFORCBiID4gMDsKLVNFTEVDVCAqIEZST00gZ3Rlc3QyMmMgV0hFUkUgYSA9 IDEgQU5EIGIgPiAwOwotCi1BTFRFUiBUQUJMRSBndGVzdDIyYyBBTFRFUiBDT0xVTU4gYiBT RVQgRVhQUkVTU0lPTiBBUyAoYSAqIDQpOwotQU5BTFlaRSBndGVzdDIyYzsKLUVYUExBSU4g KENPU1RTIE9GRikgU0VMRUNUICogRlJPTSBndGVzdDIyYyBXSEVSRSBiID0gODsKLVNFTEVD VCAqIEZST00gZ3Rlc3QyMmMgV0hFUkUgYiA9IDg7Ci1FWFBMQUlOIChDT1NUUyBPRkYpIFNF TEVDVCAqIEZST00gZ3Rlc3QyMmMgV0hFUkUgYiAqIDMgPSAxMjsKLVNFTEVDVCAqIEZST00g Z3Rlc3QyMmMgV0hFUkUgYiAqIDMgPSAxMjsKLUVYUExBSU4gKENPU1RTIE9GRikgU0VMRUNU ICogRlJPTSBndGVzdDIyYyBXSEVSRSBhID0gMSBBTkQgYiA+IDA7Ci1TRUxFQ1QgKiBGUk9N IGd0ZXN0MjJjIFdIRVJFIGEgPSAxIEFORCBiID4gMDsKLVJFU0VUIGVuYWJsZV9zZXFzY2Fu OwotUkVTRVQgZW5hYmxlX2JpdG1hcHNjYW47CitDUkVBVEUgVEFCTEUgZ3Rlc3QyMmMgKGEg aW50LCBiIGludCBHRU5FUkFURUQgQUxXQVlTIEFTIChhICogMikgVklSVFVBTCk7CistLUNS RUFURSBJTkRFWCBndGVzdDIyY19iX2lkeCBPTiBndGVzdDIyYyAoYik7CistLUNSRUFURSBJ TkRFWCBndGVzdDIyY19leHByX2lkeCBPTiBndGVzdDIyYyAoKGIgKiAzKSk7CistLUNSRUFU RSBJTkRFWCBndGVzdDIyY19wcmVkX2lkeCBPTiBndGVzdDIyYyAoYSkgV0hFUkUgYiA+IDA7 CistLVxkIGd0ZXN0MjJjCisKKy0tSU5TRVJUIElOVE8gZ3Rlc3QyMmMgVkFMVUVTICgxKSwg KDIpLCAoMyk7CistLVNFVCBlbmFibGVfc2Vxc2NhbiBUTyBvZmY7CistLVNFVCBlbmFibGVf Yml0bWFwc2NhbiBUTyBvZmY7CistLUVYUExBSU4gKENPU1RTIE9GRikgU0VMRUNUICogRlJP TSBndGVzdDIyYyBXSEVSRSBiID0gNDsKKy0tU0VMRUNUICogRlJPTSBndGVzdDIyYyBXSEVS RSBiID0gNDsKKy0tRVhQTEFJTiAoQ09TVFMgT0ZGKSBTRUxFQ1QgKiBGUk9NIGd0ZXN0MjJj IFdIRVJFIGIgKiAzID0gNjsKKy0tU0VMRUNUICogRlJPTSBndGVzdDIyYyBXSEVSRSBiICog MyA9IDY7CistLUVYUExBSU4gKENPU1RTIE9GRikgU0VMRUNUICogRlJPTSBndGVzdDIyYyBX SEVSRSBhID0gMSBBTkQgYiA+IDA7CistLVNFTEVDVCAqIEZST00gZ3Rlc3QyMmMgV0hFUkUg YSA9IDEgQU5EIGIgPiAwOworCistLUFMVEVSIFRBQkxFIGd0ZXN0MjJjIEFMVEVSIENPTFVN TiBiIFNFVCBFWFBSRVNTSU9OIEFTIChhICogNCk7CistLUFOQUxZWkUgZ3Rlc3QyMmM7Cist LUVYUExBSU4gKENPU1RTIE9GRikgU0VMRUNUICogRlJPTSBndGVzdDIyYyBXSEVSRSBiID0g ODsKKy0tU0VMRUNUICogRlJPTSBndGVzdDIyYyBXSEVSRSBiID0gODsKKy0tRVhQTEFJTiAo Q09TVFMgT0ZGKSBTRUxFQ1QgKiBGUk9NIGd0ZXN0MjJjIFdIRVJFIGIgKiAzID0gMTI7Cist LVNFTEVDVCAqIEZST00gZ3Rlc3QyMmMgV0hFUkUgYiAqIDMgPSAxMjsKKy0tRVhQTEFJTiAo Q09TVFMgT0ZGKSBTRUxFQ1QgKiBGUk9NIGd0ZXN0MjJjIFdIRVJFIGEgPSAxIEFORCBiID4g MDsKKy0tU0VMRUNUICogRlJPTSBndGVzdDIyYyBXSEVSRSBhID0gMSBBTkQgYiA+IDA7Cist LVJFU0VUIGVuYWJsZV9zZXFzY2FuOworLS1SRVNFVCBlbmFibGVfYml0bWFwc2NhbjsKIAog LS0gZm9yZWlnbiBrZXlzCiBDUkVBVEUgVEFCTEUgZ3Rlc3QyM2EgKHggaW50IFBSSU1BUlkg S0VZLCB5IGludCk7Ci1JTlNFUlQgSU5UTyBndGVzdDIzYSBWQUxVRVMgKDEsIDExKSwgKDIs IDIyKSwgKDMsIDMzKTsKKy0tSU5TRVJUIElOVE8gZ3Rlc3QyM2EgVkFMVUVTICgxLCAxMSks ICgyLCAyMiksICgzLCAzMyk7CiAKLUNSRUFURSBUQUJMRSBndGVzdDIzeCAoYSBpbnQgUFJJ TUFSWSBLRVksIGIgaW50IEdFTkVSQVRFRCBBTFdBWVMgQVMgKGEgKiAyKSBTVE9SRUQgUkVG RVJFTkNFUyBndGVzdDIzYSAoeCkgT04gVVBEQVRFIENBU0NBREUpOyAgLS0gZXJyb3IKLUNS RUFURSBUQUJMRSBndGVzdDIzeCAoYSBpbnQgUFJJTUFSWSBLRVksIGIgaW50IEdFTkVSQVRF RCBBTFdBWVMgQVMgKGEgKiAyKSBTVE9SRUQgUkVGRVJFTkNFUyBndGVzdDIzYSAoeCkgT04g REVMRVRFIFNFVCBOVUxMKTsgIC0tIGVycm9yCitDUkVBVEUgVEFCTEUgZ3Rlc3QyM3ggKGEg aW50IFBSSU1BUlkgS0VZLCBiIGludCBHRU5FUkFURUQgQUxXQVlTIEFTIChhICogMikgVklS VFVBTCBSRUZFUkVOQ0VTIGd0ZXN0MjNhICh4KSBPTiBVUERBVEUgQ0FTQ0FERSk7ICAtLSBl cnJvcgorQ1JFQVRFIFRBQkxFIGd0ZXN0MjN4IChhIGludCBQUklNQVJZIEtFWSwgYiBpbnQg R0VORVJBVEVEIEFMV0FZUyBBUyAoYSAqIDIpIFZJUlRVQUwgUkVGRVJFTkNFUyBndGVzdDIz YSAoeCkgT04gREVMRVRFIFNFVCBOVUxMKTsgIC0tIGVycm9yCiAKLUNSRUFURSBUQUJMRSBn dGVzdDIzYiAoYSBpbnQgUFJJTUFSWSBLRVksIGIgaW50IEdFTkVSQVRFRCBBTFdBWVMgQVMg KGEgKiAyKSBTVE9SRUQgUkVGRVJFTkNFUyBndGVzdDIzYSAoeCkpOwotXGQgZ3Rlc3QyM2IK K0NSRUFURSBUQUJMRSBndGVzdDIzYiAoYSBpbnQgUFJJTUFSWSBLRVksIGIgaW50IEdFTkVS QVRFRCBBTFdBWVMgQVMgKGEgKiAyKSBWSVJUVUFMIFJFRkVSRU5DRVMgZ3Rlc3QyM2EgKHgp KTsKKy0tXGQgZ3Rlc3QyM2IKIAotSU5TRVJUIElOVE8gZ3Rlc3QyM2IgVkFMVUVTICgxKTsg IC0tIG9rCi1JTlNFUlQgSU5UTyBndGVzdDIzYiBWQUxVRVMgKDUpOyAgLS0gZXJyb3IKLUFM VEVSIFRBQkxFIGd0ZXN0MjNiIEFMVEVSIENPTFVNTiBiIFNFVCBFWFBSRVNTSU9OIEFTIChh ICogNSk7IC0tIGVycm9yCi1BTFRFUiBUQUJMRSBndGVzdDIzYiBBTFRFUiBDT0xVTU4gYiBT RVQgRVhQUkVTU0lPTiBBUyAoYSAqIDEpOyAtLSBvaworLS1JTlNFUlQgSU5UTyBndGVzdDIz YiBWQUxVRVMgKDEpOyAgLS0gb2sKKy0tSU5TRVJUIElOVE8gZ3Rlc3QyM2IgVkFMVUVTICg1 KTsgIC0tIGVycm9yCistLUFMVEVSIFRBQkxFIGd0ZXN0MjNiIEFMVEVSIENPTFVNTiBiIFNF VCBFWFBSRVNTSU9OIEFTIChhICogNSk7IC0tIGVycm9yCistLUFMVEVSIFRBQkxFIGd0ZXN0 MjNiIEFMVEVSIENPTFVNTiBiIFNFVCBFWFBSRVNTSU9OIEFTIChhICogMSk7IC0tIG9rCiAK LURST1AgVEFCTEUgZ3Rlc3QyM2I7Ci1EUk9QIFRBQkxFIGd0ZXN0MjNhOworLS1EUk9QIFRB QkxFIGd0ZXN0MjNiOworLS1EUk9QIFRBQkxFIGd0ZXN0MjNhOwogCi1DUkVBVEUgVEFCTEUg Z3Rlc3QyM3AgKHggaW50LCB5IGludCBHRU5FUkFURUQgQUxXQVlTIEFTICh4ICogMikgU1RP UkVELCBQUklNQVJZIEtFWSAoeSkpOwotSU5TRVJUIElOVE8gZ3Rlc3QyM3AgVkFMVUVTICgx KSwgKDIpLCAoMyk7CitDUkVBVEUgVEFCTEUgZ3Rlc3QyM3AgKHggaW50LCB5IGludCBHRU5F UkFURUQgQUxXQVlTIEFTICh4ICogMikgVklSVFVBTCwgUFJJTUFSWSBLRVkgKHkpKTsKKy0t SU5TRVJUIElOVE8gZ3Rlc3QyM3AgVkFMVUVTICgxKSwgKDIpLCAoMyk7CiAKIENSRUFURSBU QUJMRSBndGVzdDIzcSAoYSBpbnQgUFJJTUFSWSBLRVksIGIgaW50IFJFRkVSRU5DRVMgZ3Rl c3QyM3AgKHkpKTsKLUlOU0VSVCBJTlRPIGd0ZXN0MjNxIFZBTFVFUyAoMSwgMik7ICAtLSBv awotSU5TRVJUIElOVE8gZ3Rlc3QyM3EgVkFMVUVTICgyLCA1KTsgIC0tIGVycm9yCistLUlO U0VSVCBJTlRPIGd0ZXN0MjNxIFZBTFVFUyAoMSwgMik7ICAtLSBvaworLS1JTlNFUlQgSU5U TyBndGVzdDIzcSBWQUxVRVMgKDIsIDUpOyAgLS0gZXJyb3IKIAogLS0gZG9tYWlucwogQ1JF QVRFIERPTUFJTiBndGVzdGRvbWFpbjEgQVMgaW50IENIRUNLIChWQUxVRSA8IDEwKTsKLUNS RUFURSBUQUJMRSBndGVzdDI0IChhIGludCBQUklNQVJZIEtFWSwgYiBndGVzdGRvbWFpbjEg R0VORVJBVEVEIEFMV0FZUyBBUyAoYSAqIDIpIFNUT1JFRCk7Ci1JTlNFUlQgSU5UTyBndGVz dDI0IChhKSBWQUxVRVMgKDQpOyAgLS0gb2sKLUlOU0VSVCBJTlRPIGd0ZXN0MjQgKGEpIFZB TFVFUyAoNik7ICAtLSBlcnJvcgorQ1JFQVRFIFRBQkxFIGd0ZXN0MjQgKGEgaW50IFBSSU1B UlkgS0VZLCBiIGd0ZXN0ZG9tYWluMSBHRU5FUkFURUQgQUxXQVlTIEFTIChhICogMikgVklS VFVBTCk7CistLUlOU0VSVCBJTlRPIGd0ZXN0MjQgKGEpIFZBTFVFUyAoNCk7ICAtLSBvawor LS1JTlNFUlQgSU5UTyBndGVzdDI0IChhKSBWQUxVRVMgKDYpOyAgLS0gZXJyb3IKK0NSRUFU RSBUWVBFIGd0ZXN0ZG9tYWluMXJhbmdlIEFTIHJhbmdlIChzdWJ0eXBlID0gZ3Rlc3Rkb21h aW4xKTsKK0NSRUFURSBUQUJMRSBndGVzdDI0ciAoYSBpbnQgUFJJTUFSWSBLRVksIGIgZ3Rl c3Rkb21haW4xcmFuZ2UgR0VORVJBVEVEIEFMV0FZUyBBUyAoZ3Rlc3Rkb21haW4xcmFuZ2Uo YSwgYSArIDUpKSBWSVJUVUFMKTsKKy0tSU5TRVJUIElOVE8gZ3Rlc3QyNHIgKGEpIFZBTFVF UyAoNCk7ICAtLSBvaworLS1JTlNFUlQgSU5UTyBndGVzdDI0ciAoYSkgVkFMVUVTICg2KTsg IC0tIGVycm9yCiAKIC0tIHR5cGVkIHRhYmxlcyAoY3VycmVudGx5IG5vdCBzdXBwb3J0ZWQp CiBDUkVBVEUgVFlQRSBndGVzdF90eXBlIEFTIChmMSBpbnRlZ2VyLCBmMiB0ZXh0LCBmMyBi aWdpbnQpOwotQ1JFQVRFIFRBQkxFIGd0ZXN0MjggT0YgZ3Rlc3RfdHlwZSAoZjEgV0lUSCBP UFRJT05TIEdFTkVSQVRFRCBBTFdBWVMgQVMgKGYyICoyKSBTVE9SRUQpOworQ1JFQVRFIFRB QkxFIGd0ZXN0MjggT0YgZ3Rlc3RfdHlwZSAoZjEgV0lUSCBPUFRJT05TIEdFTkVSQVRFRCBB TFdBWVMgQVMgKGYyICoyKSBWSVJUVUFMKTsKIERST1AgVFlQRSBndGVzdF90eXBlIENBU0NB REU7CiAKIC0tIHBhcnRpdGlvbmluZyBjYXNlcwogQ1JFQVRFIFRBQkxFIGd0ZXN0X3BhcmVu dCAoZjEgZGF0ZSBOT1QgTlVMTCwgZjIgYmlnaW50LCBmMyBiaWdpbnQpIFBBUlRJVElPTiBC WSBSQU5HRSAoZjEpOwogQ1JFQVRFIFRBQkxFIGd0ZXN0X2NoaWxkIFBBUlRJVElPTiBPRiBn dGVzdF9wYXJlbnQgKAotICAgIGYzIFdJVEggT1BUSU9OUyBHRU5FUkFURUQgQUxXQVlTIEFT IChmMiAqIDIpIFNUT1JFRAorICAgIGYzIFdJVEggT1BUSU9OUyBHRU5FUkFURUQgQUxXQVlT IEFTIChmMiAqIDIpIFZJUlRVQUwKICkgRk9SIFZBTFVFUyBGUk9NICgnMjAxNi0wNy0wMScp IFRPICgnMjAxNi0wOC0wMScpOyAtLSBlcnJvcgotQ1JFQVRFIFRBQkxFIGd0ZXN0X2NoaWxk IChmMSBkYXRlIE5PVCBOVUxMLCBmMiBiaWdpbnQsIGYzIGJpZ2ludCBHRU5FUkFURUQgQUxX QVlTIEFTIChmMiAqIDIpIFNUT1JFRCk7CitDUkVBVEUgVEFCTEUgZ3Rlc3RfY2hpbGQgKGYx IGRhdGUgTk9UIE5VTEwsIGYyIGJpZ2ludCwgZjMgYmlnaW50IEdFTkVSQVRFRCBBTFdBWVMg QVMgKGYyICogMikgVklSVFVBTCk7CiBBTFRFUiBUQUJMRSBndGVzdF9wYXJlbnQgQVRUQUNI IFBBUlRJVElPTiBndGVzdF9jaGlsZCBGT1IgVkFMVUVTIEZST00gKCcyMDE2LTA3LTAxJykg VE8gKCcyMDE2LTA4LTAxJyk7IC0tIGVycm9yCiBEUk9QIFRBQkxFIGd0ZXN0X3BhcmVudCwg Z3Rlc3RfY2hpbGQ7CiAKLUNSRUFURSBUQUJMRSBndGVzdF9wYXJlbnQgKGYxIGRhdGUgTk9U IE5VTEwsIGYyIGJpZ2ludCwgZjMgYmlnaW50IEdFTkVSQVRFRCBBTFdBWVMgQVMgKGYyICog MikgU1RPUkVEKSBQQVJUSVRJT04gQlkgUkFOR0UgKGYxKTsKK0NSRUFURSBUQUJMRSBndGVz dF9wYXJlbnQgKGYxIGRhdGUgTk9UIE5VTEwsIGYyIGJpZ2ludCwgZjMgYmlnaW50IEdFTkVS QVRFRCBBTFdBWVMgQVMgKGYyICogMikgVklSVFVBTCkgUEFSVElUSU9OIEJZIFJBTkdFIChm MSk7CiBDUkVBVEUgVEFCTEUgZ3Rlc3RfY2hpbGQgUEFSVElUSU9OIE9GIGd0ZXN0X3BhcmVu dAogICBGT1IgVkFMVUVTIEZST00gKCcyMDE2LTA3LTAxJykgVE8gKCcyMDE2LTA4LTAxJyk7 ICAtLSBpbmhlcml0cyBnZW4gZXhwcgogQ1JFQVRFIFRBQkxFIGd0ZXN0X2NoaWxkMiBQQVJU SVRJT04gT0YgZ3Rlc3RfcGFyZW50ICgKLSAgICBmMyBXSVRIIE9QVElPTlMgR0VORVJBVEVE IEFMV0FZUyBBUyAoZjIgKiAyMikgU1RPUkVEICAtLSBvdmVycmlkZXMgZ2VuIGV4cHIKKyAg ICBmMyBXSVRIIE9QVElPTlMgR0VORVJBVEVEIEFMV0FZUyBBUyAoZjIgKiAyMikgVklSVFVB TCAgLS0gb3ZlcnJpZGVzIGdlbiBleHByCiApIEZPUiBWQUxVRVMgRlJPTSAoJzIwMTYtMDgt MDEnKSBUTyAoJzIwMTYtMDktMDEnKTsKIENSRUFURSBUQUJMRSBndGVzdF9jaGlsZDMgUEFS VElUSU9OIE9GIGd0ZXN0X3BhcmVudCAoCiAgICAgZjMgREVGQVVMVCA0MiAgLS0gZXJyb3IK QEAgLTQxNyw2ICs0NDUsOSBAQCBDUkVBVEUgVEFCTEUgZ3Rlc3RfY2hpbGQzIFBBUlRJVElP TiBPRiBndGVzdF9wYXJlbnQgKAogQ1JFQVRFIFRBQkxFIGd0ZXN0X2NoaWxkMyBQQVJUSVRJ T04gT0YgZ3Rlc3RfcGFyZW50ICgKICAgICBmMyBXSVRIIE9QVElPTlMgR0VORVJBVEVEIEFM V0FZUyBBUyBJREVOVElUWSAgLS0gZXJyb3IKICkgRk9SIFZBTFVFUyBGUk9NICgnMjAxNi0w OS0wMScpIFRPICgnMjAxNi0xMC0wMScpOworQ1JFQVRFIFRBQkxFIGd0ZXN0X2NoaWxkMyBQ QVJUSVRJT04gT0YgZ3Rlc3RfcGFyZW50ICgKKyAgICBmMyBHRU5FUkFURUQgQUxXQVlTIEFT IChmMiAqIDIpIFNUT1JFRCAgLS0gZXJyb3IKKykgRk9SIFZBTFVFUyBGUk9NICgnMjAxNi0w OS0wMScpIFRPICgnMjAxNi0xMC0wMScpOwogQ1JFQVRFIFRBQkxFIGd0ZXN0X2NoaWxkMyAo ZjEgZGF0ZSBOT1QgTlVMTCwgZjIgYmlnaW50LCBmMyBiaWdpbnQpOwogQUxURVIgVEFCTEUg Z3Rlc3RfcGFyZW50IEFUVEFDSCBQQVJUSVRJT04gZ3Rlc3RfY2hpbGQzIEZPUiBWQUxVRVMg RlJPTSAoJzIwMTYtMDktMDEnKSBUTyAoJzIwMTYtMTAtMDEnKTsgLS0gZXJyb3IKIERST1Ag VEFCTEUgZ3Rlc3RfY2hpbGQzOwpAQCAtNDI3LDYgKzQ1OCw5IEBAIENSRUFURSBUQUJMRSBn dGVzdF9jaGlsZDMgKGYxIGRhdGUgTk9UIE5VTEwsIGYyIGJpZ2ludCwgZjMgYmlnaW50IEdF TkVSQVRFRCBBTFdBCiBBTFRFUiBUQUJMRSBndGVzdF9wYXJlbnQgQVRUQUNIIFBBUlRJVElP TiBndGVzdF9jaGlsZDMgRk9SIFZBTFVFUyBGUk9NICgnMjAxNi0wOS0wMScpIFRPICgnMjAx Ni0xMC0wMScpOyAtLSBlcnJvcgogRFJPUCBUQUJMRSBndGVzdF9jaGlsZDM7CiBDUkVBVEUg VEFCTEUgZ3Rlc3RfY2hpbGQzIChmMSBkYXRlIE5PVCBOVUxMLCBmMiBiaWdpbnQsIGYzIGJp Z2ludCBHRU5FUkFURUQgQUxXQVlTIEFTIChmMiAqIDMzKSBTVE9SRUQpOworQUxURVIgVEFC TEUgZ3Rlc3RfcGFyZW50IEFUVEFDSCBQQVJUSVRJT04gZ3Rlc3RfY2hpbGQzIEZPUiBWQUxV RVMgRlJPTSAoJzIwMTYtMDktMDEnKSBUTyAoJzIwMTYtMTAtMDEnKTsgLS0gZXJyb3IKK0RS T1AgVEFCTEUgZ3Rlc3RfY2hpbGQzOworQ1JFQVRFIFRBQkxFIGd0ZXN0X2NoaWxkMyAoZjEg ZGF0ZSBOT1QgTlVMTCwgZjIgYmlnaW50LCBmMyBiaWdpbnQgR0VORVJBVEVEIEFMV0FZUyBB UyAoZjIgKiAzMykgVklSVFVBTCk7CiBBTFRFUiBUQUJMRSBndGVzdF9wYXJlbnQgQVRUQUNI IFBBUlRJVElPTiBndGVzdF9jaGlsZDMgRk9SIFZBTFVFUyBGUk9NICgnMjAxNi0wOS0wMScp IFRPICgnMjAxNi0xMC0wMScpOwogXGQgZ3Rlc3RfY2hpbGQKIFxkIGd0ZXN0X2NoaWxkMgpA QCAtNDM1LDYgKzQ2OSw5IEBAIENSRUFURSBUQUJMRSBndGVzdF9jaGlsZDMgKGYxIGRhdGUg Tk9UIE5VTEwsIGYyIGJpZ2ludCwgZjMgYmlnaW50IEdFTkVSQVRFRCBBTFdBCiBJTlNFUlQg SU5UTyBndGVzdF9wYXJlbnQgKGYxLCBmMikgVkFMVUVTICgnMjAxNi0wNy0xNScsIDIpOwog SU5TRVJUIElOVE8gZ3Rlc3RfcGFyZW50IChmMSwgZjIpIFZBTFVFUyAoJzIwMTYtMDgtMTUn LCAzKTsKIFNFTEVDVCB0YWJsZW9pZDo6cmVnY2xhc3MsICogRlJPTSBndGVzdF9wYXJlbnQg T1JERVIgQlkgMSwgMiwgMzsKK1NFTEVDVCB0YWJsZW9pZDo6cmVnY2xhc3MsICogRlJPTSBn dGVzdF9jaGlsZCBPUkRFUiBCWSAxLCAyLCAzOworU0VMRUNUIHRhYmxlb2lkOjpyZWdjbGFz cywgKiBGUk9NIGd0ZXN0X2NoaWxkMiBPUkRFUiBCWSAxLCAyLCAzOyAgLS0gdXNlcyBjaGls ZCdzIGdlbmVyYXRpb24gZXhwcmVzc2lvbiwgbm90IHBhcmVudCdzCitTRUxFQ1QgdGFibGVv aWQ6OnJlZ2NsYXNzLCAqIEZST00gZ3Rlc3RfY2hpbGQzIE9SREVSIEJZIDEsIDIsIDM7CiBV UERBVEUgZ3Rlc3RfcGFyZW50IFNFVCBmMSA9IGYxICsgNjAgV0hFUkUgZjIgPSAxOwogU0VM RUNUIHRhYmxlb2lkOjpyZWdjbGFzcywgKiBGUk9NIGd0ZXN0X3BhcmVudCBPUkRFUiBCWSAx LCAyLCAzOwogCkBAIC00NTcsMjEgKzQ5NCwyMSBAQCBDUkVBVEUgVEFCTEUgZ3Rlc3RfY2hp bGQzIChmMSBkYXRlIE5PVCBOVUxMLCBmMiBiaWdpbnQsIGYzIGJpZ2ludCBHRU5FUkFURUQg QUxXQQogLS0gd2UgbGVhdmUgdGhlc2UgdGFibGVzIGFyb3VuZCBmb3IgcHVycG9zZXMgb2Yg dGVzdGluZyBkdW1wL3JlbG9hZC91cGdyYWRlCiAKIC0tIGdlbmVyYXRlZCBjb2x1bW5zIGlu IHBhcnRpdGlvbiBrZXkgKG5vdCBhbGxvd2VkKQotQ1JFQVRFIFRBQkxFIGd0ZXN0X3BhcnRf a2V5IChmMSBkYXRlIE5PVCBOVUxMLCBmMiBiaWdpbnQsIGYzIGJpZ2ludCBHRU5FUkFURUQg QUxXQVlTIEFTIChmMiAqIDIpIFNUT1JFRCkgUEFSVElUSU9OIEJZIFJBTkdFIChmMyk7Ci1D UkVBVEUgVEFCTEUgZ3Rlc3RfcGFydF9rZXkgKGYxIGRhdGUgTk9UIE5VTEwsIGYyIGJpZ2lu dCwgZjMgYmlnaW50IEdFTkVSQVRFRCBBTFdBWVMgQVMgKGYyICogMikgU1RPUkVEKSBQQVJU SVRJT04gQlkgUkFOR0UgKChmMyAqIDMpKTsKK0NSRUFURSBUQUJMRSBndGVzdF9wYXJ0X2tl eSAoZjEgZGF0ZSBOT1QgTlVMTCwgZjIgYmlnaW50LCBmMyBiaWdpbnQgR0VORVJBVEVEIEFM V0FZUyBBUyAoZjIgKiAyKSBWSVJUVUFMKSBQQVJUSVRJT04gQlkgUkFOR0UgKGYzKTsKK0NS RUFURSBUQUJMRSBndGVzdF9wYXJ0X2tleSAoZjEgZGF0ZSBOT1QgTlVMTCwgZjIgYmlnaW50 LCBmMyBiaWdpbnQgR0VORVJBVEVEIEFMV0FZUyBBUyAoZjIgKiAyKSBWSVJUVUFMKSBQQVJU SVRJT04gQlkgUkFOR0UgKChmMyAqIDMpKTsKIAogLS0gQUxURVIgVEFCTEUgLi4uIEFERCBD T0xVTU4KIENSRUFURSBUQUJMRSBndGVzdDI1IChhIGludCBQUklNQVJZIEtFWSk7CiBJTlNF UlQgSU5UTyBndGVzdDI1IFZBTFVFUyAoMyksICg0KTsKLUFMVEVSIFRBQkxFIGd0ZXN0MjUg QUREIENPTFVNTiBiIGludCBHRU5FUkFURUQgQUxXQVlTIEFTIChhICogMikgU1RPUkVELCBB TFRFUiBDT0xVTU4gYiBTRVQgRVhQUkVTU0lPTiBBUyAoYSAqIDMpOworQUxURVIgVEFCTEUg Z3Rlc3QyNSBBREQgQ09MVU1OIGIgaW50IEdFTkVSQVRFRCBBTFdBWVMgQVMgKGEgKiAyKSBW SVJUVUFMLCBBTFRFUiBDT0xVTU4gYiBTRVQgRVhQUkVTU0lPTiBBUyAoYSAqIDMpOwogU0VM RUNUICogRlJPTSBndGVzdDI1IE9SREVSIEJZIGE7Ci1BTFRFUiBUQUJMRSBndGVzdDI1IEFE RCBDT0xVTU4geCBpbnQgR0VORVJBVEVEIEFMV0FZUyBBUyAoYiAqIDQpIFNUT1JFRDsgIC0t IGVycm9yCi1BTFRFUiBUQUJMRSBndGVzdDI1IEFERCBDT0xVTU4geCBpbnQgR0VORVJBVEVE IEFMV0FZUyBBUyAoeiAqIDQpIFNUT1JFRDsgIC0tIGVycm9yCitBTFRFUiBUQUJMRSBndGVz dDI1IEFERCBDT0xVTU4geCBpbnQgR0VORVJBVEVEIEFMV0FZUyBBUyAoYiAqIDQpIFZJUlRV QUw7ICAtLSBlcnJvcgorQUxURVIgVEFCTEUgZ3Rlc3QyNSBBREQgQ09MVU1OIHggaW50IEdF TkVSQVRFRCBBTFdBWVMgQVMgKHogKiA0KSBWSVJUVUFMOyAgLS0gZXJyb3IKIEFMVEVSIFRB QkxFIGd0ZXN0MjUgQUREIENPTFVNTiBjIGludCBERUZBVUxUIDQyLAotICBBREQgQ09MVU1O IHggaW50IEdFTkVSQVRFRCBBTFdBWVMgQVMgKGMgKiA0KSBTVE9SRUQ7CisgIEFERCBDT0xV TU4geCBpbnQgR0VORVJBVEVEIEFMV0FZUyBBUyAoYyAqIDQpIFZJUlRVQUw7CiBBTFRFUiBU QUJMRSBndGVzdDI1IEFERCBDT0xVTU4gZCBpbnQgREVGQVVMVCAxMDE7CiBBTFRFUiBUQUJM RSBndGVzdDI1IEFMVEVSIENPTFVNTiBkIFNFVCBEQVRBIFRZUEUgZmxvYXQ4LAotICBBREQg Q09MVU1OIHkgZmxvYXQ4IEdFTkVSQVRFRCBBTFdBWVMgQVMgKGQgKiA0KSBTVE9SRUQ7Cisg IEFERCBDT0xVTU4geSBmbG9hdDggR0VORVJBVEVEIEFMV0FZUyBBUyAoZCAqIDQpIFZJUlRV QUw7CiBTRUxFQ1QgKiBGUk9NIGd0ZXN0MjUgT1JERVIgQlkgYTsKIFxkIGd0ZXN0MjUKIApA QCAtNDc5LDcgKzUxNiw3IEBAIENSRUFURSBUQUJMRSBndGVzdDI1IChhIGludCBQUklNQVJZ IEtFWSk7CiBDUkVBVEUgVEFCTEUgZ3Rlc3QyNyAoCiAgICAgYSBpbnQsCiAgICAgYiBpbnQs Ci0gICAgeCBpbnQgR0VORVJBVEVEIEFMV0FZUyBBUyAoKGEgKyBiKSAqIDIpIFNUT1JFRAor ICAgIHggaW50IEdFTkVSQVRFRCBBTFdBWVMgQVMgKChhICsgYikgKiAyKSBWSVJUVUFMCiAp OwogSU5TRVJUIElOVE8gZ3Rlc3QyNyAoYSwgYikgVkFMVUVTICgzLCA3KSwgKDQsIDExKTsK IEFMVEVSIFRBQkxFIGd0ZXN0MjcgQUxURVIgQ09MVU1OIGEgVFlQRSB0ZXh0OyAgLS0gZXJy b3IKQEAgLTQ5Myw3ICs1MzAsNyBAQCBDUkVBVEUgVEFCTEUgZ3Rlc3QyNyAoCiAgIERST1Ag Q09MVU1OIHgsCiAgIEFMVEVSIENPTFVNTiBhIFRZUEUgYmlnaW50LAogICBBTFRFUiBDT0xV TU4gYiBUWVBFIGJpZ2ludCwKLSAgQUREIENPTFVNTiB4IGJpZ2ludCBHRU5FUkFURUQgQUxX QVlTIEFTICgoYSArIGIpICogMikgU1RPUkVEOworICBBREQgQ09MVU1OIHggYmlnaW50IEdF TkVSQVRFRCBBTFdBWVMgQVMgKChhICsgYikgKiAyKSBWSVJUVUFMOwogXGQgZ3Rlc3QyNwog LS0gSWRlYWxseSB5b3UgY291bGQganVzdCBkbyB0aGlzLCBidXQgbm90IHRvZGF5IChhbmQg c2hvdWxkIHggY2hhbmdlIHR5cGU/KToKIEFMVEVSIFRBQkxFIGd0ZXN0MjcKQEAgLTUwNSw3 ICs1NDIsNyBAQCBDUkVBVEUgVEFCTEUgZ3Rlc3QyNyAoCiAtLSBBTFRFUiBUQUJMRSAuLi4g QUxURVIgQ09MVU1OIC4uLiBEUk9QIEVYUFJFU1NJT04KIENSRUFURSBUQUJMRSBndGVzdDI5 ICgKICAgICBhIGludCwKLSAgICBiIGludCBHRU5FUkFURUQgQUxXQVlTIEFTIChhICogMikg U1RPUkVECisgICAgYiBpbnQgR0VORVJBVEVEIEFMV0FZUyBBUyAoYSAqIDIpIFZJUlRVQUwK ICk7CiBJTlNFUlQgSU5UTyBndGVzdDI5IChhKSBWQUxVRVMgKDMpLCAoNCk7CiBTRUxFQ1Qg KiBGUk9NIGd0ZXN0Mjk7CkBAIC01MzIsNyArNTY5LDcgQEAgQ1JFQVRFIFRBQkxFIGd0ZXN0 MjkgKAogLS0gd2l0aCBpbmhlcml0YW5jZQogQ1JFQVRFIFRBQkxFIGd0ZXN0MzAgKAogICAg IGEgaW50LAotICAgIGIgaW50IEdFTkVSQVRFRCBBTFdBWVMgQVMgKGEgKiAyKSBTVE9SRUQK KyAgICBiIGludCBHRU5FUkFURUQgQUxXQVlTIEFTIChhICogMikgVklSVFVBTAogKTsKIENS RUFURSBUQUJMRSBndGVzdDMwXzEgKCkgSU5IRVJJVFMgKGd0ZXN0MzApOwogQUxURVIgVEFC TEUgZ3Rlc3QzMCBBTFRFUiBDT0xVTU4gYiBEUk9QIEVYUFJFU1NJT047CkBAIC01NDEsNyAr NTc4LDcgQEAgQ1JFQVRFIFRBQkxFIGd0ZXN0MzBfMSAoKSBJTkhFUklUUyAoZ3Rlc3QzMCk7 CiBEUk9QIFRBQkxFIGd0ZXN0MzAgQ0FTQ0FERTsKIENSRUFURSBUQUJMRSBndGVzdDMwICgK ICAgICBhIGludCwKLSAgICBiIGludCBHRU5FUkFURUQgQUxXQVlTIEFTIChhICogMikgU1RP UkVECisgICAgYiBpbnQgR0VORVJBVEVEIEFMV0FZUyBBUyAoYSAqIDIpIFZJUlRVQUwKICk7 CiBDUkVBVEUgVEFCTEUgZ3Rlc3QzMF8xICgpIElOSEVSSVRTIChndGVzdDMwKTsKIEFMVEVS IFRBQkxFIE9OTFkgZ3Rlc3QzMCBBTFRFUiBDT0xVTU4gYiBEUk9QIEVYUFJFU1NJT047ICAt LSBlcnJvcgpAQCAtNTQ5LDEwICs1ODYsMjIgQEAgQ1JFQVRFIFRBQkxFIGd0ZXN0MzBfMSAo KSBJTkhFUklUUyAoZ3Rlc3QzMCk7CiBcZCBndGVzdDMwXzEKIEFMVEVSIFRBQkxFIGd0ZXN0 MzBfMSBBTFRFUiBDT0xVTU4gYiBEUk9QIEVYUFJFU1NJT047ICAtLSBlcnJvcgogCistLSBj b21wb3NpdGUgdHlwZSBkZXBlbmRlbmNpZXMKK0NSRUFURSBUQUJMRSBndGVzdDMxXzEgKGEg aW50LCBiIHRleHQgR0VORVJBVEVEIEFMV0FZUyBBUyAoJ2hlbGxvJykgVklSVFVBTCwgYyB0 ZXh0KTsKK0NSRUFURSBUQUJMRSBndGVzdDMxXzIgKHggaW50LCB5IGd0ZXN0MzFfMSk7CitB TFRFUiBUQUJMRSBndGVzdDMxXzEgQUxURVIgQ09MVU1OIGIgVFlQRSB2YXJjaGFyOyAgLS0g ZmFpbHMKK0RST1AgVEFCTEUgZ3Rlc3QzMV8xLCBndGVzdDMxXzI7CisKKy0tIENoZWNrIGl0 IGZvciBhIHBhcnRpdGlvbmVkIHRhYmxlLCB0b28KK0NSRUFURSBUQUJMRSBndGVzdDMxXzEg KGEgaW50LCBiIHRleHQgR0VORVJBVEVEIEFMV0FZUyBBUyAoJ2hlbGxvJykgVklSVFVBTCwg YyB0ZXh0KSBQQVJUSVRJT04gQlkgTElTVCAoYSk7CitDUkVBVEUgVEFCTEUgZ3Rlc3QzMV8y ICh4IGludCwgeSBndGVzdDMxXzEpOworQUxURVIgVEFCTEUgZ3Rlc3QzMV8xIEFMVEVSIENP TFVNTiBiIFRZUEUgdmFyY2hhcjsgIC0tIGZhaWxzCitEUk9QIFRBQkxFIGd0ZXN0MzFfMSwg Z3Rlc3QzMV8yOworCiAtLSB0cmlnZ2VycwogQ1JFQVRFIFRBQkxFIGd0ZXN0MjYgKAogICAg IGEgaW50IFBSSU1BUlkgS0VZLAotICAgIGIgaW50IEdFTkVSQVRFRCBBTFdBWVMgQVMgKGEg KiAyKSBTVE9SRUQKKyAgICBiIGludCBHRU5FUkFURUQgQUxXQVlTIEFTIChhICogMikgVklS VFVBTAogKTsKIAogQ1JFQVRFIEZVTkNUSU9OIGd0ZXN0X3RyaWdnZXJfZnVuYygpIFJFVFVS TlMgdHJpZ2dlcgpAQCAtNjM0LDcgKzY4Myw3IEBAIENSRUFURSBUUklHR0VSIGd0ZXN0MTEg QkVGT1JFIFVQREFURSBPRiBiIE9OIGd0ZXN0MjYKIERST1AgVFJJR0dFUiBndGVzdDExIE9O IGd0ZXN0MjY7CiBUUlVOQ0FURSBndGVzdDI2OwogCi0tLSBjaGVjayB0aGF0IG1vZGlmaWNh dGlvbnMgb2Ygc3RvcmVkIGdlbmVyYXRlZCBjb2x1bW5zIGluIHRyaWdnZXJzIGRvCistLSBj aGVjayB0aGF0IG1vZGlmaWNhdGlvbnMgb2YgZ2VuZXJhdGVkIGNvbHVtbnMgaW4gdHJpZ2dl cnMgZG8KIC0tIG5vdCBnZXQgcHJvcGFnYXRlZAogQ1JFQVRFIEZVTkNUSU9OIGd0ZXN0X3Ry aWdnZXJfZnVuYzQoKSBSRVRVUk5TIHRyaWdnZXIKICAgTEFOR1VBR0UgcGxwZ3NxbApAQCAt NjY3LDcgKzcxNiw3IEBAIENSRUFURSBUQUJMRSBndGVzdDI4YSAoCiAgIGEgaW50LAogICBi IGludCwKICAgYyBpbnQsCi0gIHggaW50IEdFTkVSQVRFRCBBTFdBWVMgQVMgKGIgKiAyKSBT VE9SRUQKKyAgeCBpbnQgR0VORVJBVEVEIEFMV0FZUyBBUyAoYiAqIDIpIFZJUlRVQUwKICk7 CiAKIEFMVEVSIFRBQkxFIGd0ZXN0MjhhIERST1AgQ09MVU1OIGE7CmRpZmYgLS1naXQgYS9z cmMvdGVzdC9yZWdyZXNzL3NxbC9wdWJsaWNhdGlvbi5zcWwgYi9zcmMvdGVzdC9yZWdyZXNz L3NxbC9wdWJsaWNhdGlvbi5zcWwKaW5kZXggNDhlNjhiY2NhMmQuLmFlZTMwYWYwMzVlIDEw MDY0NAotLS0gYS9zcmMvdGVzdC9yZWdyZXNzL3NxbC9wdWJsaWNhdGlvbi5zcWwKKysrIGIv c3JjL3Rlc3QvcmVncmVzcy9zcWwvcHVibGljYXRpb24uc3FsCkBAIC0yMTQsNyArMjE0LDcg QEAgQ1JFQVRFIEZVTkNUSU9OIHRlc3RwdWJfcmZfZnVuYzEoaW50ZWdlciwgaW50ZWdlcikg UkVUVVJOUyBib29sZWFuIEFTICQkIFNFTEVDVAogQ1JFQVRFIE9QRVJBVE9SID0jPiAoUFJP Q0VEVVJFID0gdGVzdHB1Yl9yZl9mdW5jMSwgTEVGVEFSRyA9IGludGVnZXIsIFJJR0hUQVJH ID0gaW50ZWdlcik7CiBDUkVBVEUgUFVCTElDQVRJT04gdGVzdHB1YjYgRk9SIFRBQkxFIHRl c3RwdWJfcmZfdGJsMyBXSEVSRSAoZSA9Iz4gMjcpOwogLS0gZmFpbCAtIHVzZXItZGVmaW5l ZCBmdW5jdGlvbnMgYXJlIG5vdCBhbGxvd2VkCi1DUkVBVEUgRlVOQ1RJT04gdGVzdHB1Yl9y Zl9mdW5jMigpIFJFVFVSTlMgaW50ZWdlciBBUyAkJCBCRUdJTiBSRVRVUk4gMTIzOyBFTkQ7 ICQkIExBTkdVQUdFIHBscGdzcWw7CitDUkVBVEUgRlVOQ1RJT04gdGVzdHB1Yl9yZl9mdW5j MigpIFJFVFVSTlMgaW50ZWdlciBJTU1VVEFCTEUgQVMgJCQgQkVHSU4gUkVUVVJOIDEyMzsg RU5EOyAkJCBMQU5HVUFHRSBwbHBnc3FsOwogQUxURVIgUFVCTElDQVRJT04gdGVzdHB1YjUg QUREIFRBQkxFIHRlc3RwdWJfcmZfdGJsMSBXSEVSRSAoYSA+PSB0ZXN0cHViX3JmX2Z1bmMy KCkpOwogLS0gZmFpbCAtIG5vbi1pbW11dGFibGUgZnVuY3Rpb25zIGFyZSBub3QgYWxsb3dl ZC4gcmFuZG9tKCkgaXMgdm9sYXRpbGUuCiBBTFRFUiBQVUJMSUNBVElPTiB0ZXN0cHViNSBB REQgVEFCTEUgdGVzdHB1Yl9yZl90YmwxIFdIRVJFIChhIDwgcmFuZG9tKCkpOwpAQCAtMjYx LDE4ICsyNjEsMzAgQEAgQ1JFQVRFIFBVQkxJQ0FUSU9OIHRlc3RwdWI2IEZPUiBUQUJMRVMg SU4gU0NIRU1BIHRlc3RwdWJfcmZfc2NoZW1hMjsKIEFMVEVSIFBVQkxJQ0FUSU9OIHRlc3Rw dWI2IFNFVCBUQUJMRVMgSU4gU0NIRU1BIHRlc3RwdWJfcmZfc2NoZW1hMiwgVEFCTEUgdGVz dHB1Yl9yZl9zY2hlbWEyLnRlc3RwdWJfcmZfdGJsNiBXSEVSRSAoaSA8IDk5KTsKIFJFU0VU IGNsaWVudF9taW5fbWVzc2FnZXM7CiBcZFJwKyB0ZXN0cHViNgorLS0gZmFpbCAtIHZpcnR1 YWwgZ2VuZXJhdGVkIGNvbHVtbiB1c2VzIHVzZXItZGVmaW5lZCBmdW5jdGlvbgorQ1JFQVRF IFRBQkxFIHRlc3RwdWJfcmZfdGJsNiAoaWQgaW50IFBSSU1BUlkgS0VZLCB4IGludCwgeSBp bnQgR0VORVJBVEVEIEFMV0FZUyBBUyAoeCAqIHRlc3RwdWJfcmZfZnVuYzIoKSkgVklSVFVB TCk7CitDUkVBVEUgUFVCTElDQVRJT04gdGVzdHB1YjcgRk9SIFRBQkxFIHRlc3RwdWJfcmZf dGJsNiBXSEVSRSAoeSA+IDEwMCk7CistLSB0ZXN0IHRoYXQgU0VUIEVYUFJFU1NJT04gaXMg cmVqZWN0ZWQsIGJlY2F1c2UgaXQgY291bGQgYWZmZWN0IGEgcm93IGZpbHRlcgorU0VUIGNs aWVudF9taW5fbWVzc2FnZXMgPSAnRVJST1InOworQ1JFQVRFIFRBQkxFIHRlc3RwdWJfcmZf dGJsNyAoaWQgaW50IFBSSU1BUlkgS0VZLCB4IGludCwgeSBpbnQgR0VORVJBVEVEIEFMV0FZ UyBBUyAoeCAqIDExMSkgVklSVFVBTCk7CitDUkVBVEUgUFVCTElDQVRJT04gdGVzdHB1Yjgg Rk9SIFRBQkxFIHRlc3RwdWJfcmZfdGJsNyBXSEVSRSAoeSA+IDEwMCk7CitBTFRFUiBUQUJM RSB0ZXN0cHViX3JmX3RibDcgQUxURVIgQ09MVU1OIHkgU0VUIEVYUFJFU1NJT04gQVMgKHgg KiB0ZXN0cHViX3JmX2Z1bmMyKCkpOworUkVTRVQgY2xpZW50X21pbl9tZXNzYWdlczsKIAog RFJPUCBUQUJMRSB0ZXN0cHViX3JmX3RibDE7CiBEUk9QIFRBQkxFIHRlc3RwdWJfcmZfdGJs MjsKIERST1AgVEFCTEUgdGVzdHB1Yl9yZl90YmwzOwogRFJPUCBUQUJMRSB0ZXN0cHViX3Jm X3RibDQ7CiBEUk9QIFRBQkxFIHRlc3RwdWJfcmZfdGJsNTsKK0RST1AgVEFCTEUgdGVzdHB1 Yl9yZl90Ymw2OwogRFJPUCBUQUJMRSB0ZXN0cHViX3JmX3NjaGVtYTEudGVzdHB1Yl9yZl90 Ymw1OwogRFJPUCBUQUJMRSB0ZXN0cHViX3JmX3NjaGVtYTIudGVzdHB1Yl9yZl90Ymw2Owog RFJPUCBTQ0hFTUEgdGVzdHB1Yl9yZl9zY2hlbWExOwogRFJPUCBTQ0hFTUEgdGVzdHB1Yl9y Zl9zY2hlbWEyOwogRFJPUCBQVUJMSUNBVElPTiB0ZXN0cHViNTsKIERST1AgUFVCTElDQVRJ T04gdGVzdHB1YjY7CitEUk9QIFBVQkxJQ0FUSU9OIHRlc3RwdWI4OworRFJPUCBUQUJMRSB0 ZXN0cHViX3JmX3RibDc7CiBEUk9QIE9QRVJBVE9SID0jPihpbnRlZ2VyLCBpbnRlZ2VyKTsK IERST1AgRlVOQ1RJT04gdGVzdHB1Yl9yZl9mdW5jMShpbnRlZ2VyLCBpbnRlZ2VyKTsKIERS T1AgRlVOQ1RJT04gdGVzdHB1Yl9yZl9mdW5jMigpOwpkaWZmIC0tZ2l0IGEvc3JjL3Rlc3Qv cmVncmVzcy9zcWwvcm93c2VjdXJpdHkuc3FsIGIvc3JjL3Rlc3QvcmVncmVzcy9zcWwvcm93 c2VjdXJpdHkuc3FsCmluZGV4IGNmMDlmNjJlYWJhLi5mNjFkYmJmOTU4MSAxMDA2NDQKLS0t IGEvc3JjL3Rlc3QvcmVncmVzcy9zcWwvcm93c2VjdXJpdHkuc3FsCisrKyBiL3NyYy90ZXN0 L3JlZ3Jlc3Mvc3FsL3Jvd3NlY3VyaXR5LnNxbApAQCAtMjA3Miw2ICsyMDcyLDMzIEBAIENS RUFURSBQT0xJQ1kgcDMgT04gcjEgRk9SIElOU0VSVCBXSVRIIENIRUNLICh0cnVlKTsKIAog RFJPUCBUQUJMRSByMTsKIAorLS0KKy0tIFRlc3QgcG9saWNpZXMgdXNpbmcgdmlydHVhbCBn ZW5lcmF0ZWQgY29sdW1ucworLS0KK1NFVCBTRVNTSU9OIEFVVEhPUklaQVRJT04gcmVncmVz c19ybHNfYWxpY2U7CitTRVQgcm93X3NlY3VyaXR5ID0gb247CitDUkVBVEUgVEFCTEUgcjEg KGEgaW50LCBiIGludCBHRU5FUkFURUQgQUxXQVlTIEFTIChhICogMTApIFZJUlRVQUwpOwor QUxURVIgVEFCTEUgcjEgQUREIGMgaW50IEdFTkVSQVRFRCBBTFdBWVMgQVMgKGEgKiAxMDAp IFZJUlRVQUw7CitJTlNFUlQgSU5UTyByMSBWQUxVRVMgKDEpLCAoMiksICg0KTsKKworQ1JF QVRFIFBPTElDWSBwMCBPTiByMSBVU0lORyAoYiAqIDEwID0gYyk7CitDUkVBVEUgUE9MSUNZ IHAxIE9OIHIxIEFTIFJFU1RSSUNUSVZFIFVTSU5HIChiID4gMTApOworQ1JFQVRFIFBPTElD WSBwMiBPTiByMSBBUyBSRVNUUklDVElWRSBVU0lORyAoKFNFTEVDVCBjKSA8IDQwMCk7CitB TFRFUiBUQUJMRSByMSBFTkFCTEUgUk9XIExFVkVMIFNFQ1VSSVRZOworQUxURVIgVEFCTEUg cjEgRk9SQ0UgUk9XIExFVkVMIFNFQ1VSSVRZOworCistLSBTaG91bGQgZmFpbCBwMQorSU5T RVJUIElOVE8gcjEgVkFMVUVTICgwKTsKKworLS0gU2hvdWxkIGZhaWwgcDIKK0lOU0VSVCBJ TlRPIHIxIFZBTFVFUyAoNCk7CisKKy0tIE9LCitJTlNFUlQgSU5UTyByMSBWQUxVRVMgKDMp OworU0VMRUNUICogRlJPTSByMTsKKworRFJPUCBUQUJMRSByMTsKKwogLS0gQ2hlY2sgZGVw ZW5kZW5jeSBoYW5kbGluZwogUkVTRVQgU0VTU0lPTiBBVVRIT1JJWkFUSU9OOwogQ1JFQVRF IFRBQkxFIGRlcDEgKGMxIGludCk7CmRpZmYgLS1naXQgYS9zcmMvdGVzdC9zdWJzY3JpcHRp b24vdC8wMTFfZ2VuZXJhdGVkLnBsIGIvc3JjL3Rlc3Qvc3Vic2NyaXB0aW9uL3QvMDExX2dl bmVyYXRlZC5wbAppbmRleCBiMWI4N2NmODVlMy4uYTI4ZGMzZTQ4OWIgMTAwNjQ0Ci0tLSBh L3NyYy90ZXN0L3N1YnNjcmlwdGlvbi90LzAxMV9nZW5lcmF0ZWQucGwKKysrIGIvc3JjL3Rl c3Qvc3Vic2NyaXB0aW9uL3QvMDExX2dlbmVyYXRlZC5wbApAQCAtMjEsMTEgKzIxLDExIEBA CiBteSAkcHVibGlzaGVyX2Nvbm5zdHIgPSAkbm9kZV9wdWJsaXNoZXItPmNvbm5zdHIgLiAn IGRibmFtZT1wb3N0Z3Jlcyc7CiAKICRub2RlX3B1Ymxpc2hlci0+c2FmZV9wc3FsKCdwb3N0 Z3JlcycsCi0JIkNSRUFURSBUQUJMRSB0YWIxIChhIGludCBQUklNQVJZIEtFWSwgYiBpbnQg R0VORVJBVEVEIEFMV0FZUyBBUyAoYSAqIDIpIFNUT1JFRCkiCisJIkNSRUFURSBUQUJMRSB0 YWIxIChhIGludCBQUklNQVJZIEtFWSwgYiBpbnQgR0VORVJBVEVEIEFMV0FZUyBBUyAoYSAq IDIpIFNUT1JFRCwgYyBpbnQgR0VORVJBVEVEIEFMV0FZUyBBUyAoYSAqIDMpIFZJUlRVQUwp IgogKTsKIAogJG5vZGVfc3Vic2NyaWJlci0+c2FmZV9wc3FsKCdwb3N0Z3JlcycsCi0JIkNS RUFURSBUQUJMRSB0YWIxIChhIGludCBQUklNQVJZIEtFWSwgYiBpbnQgR0VORVJBVEVEIEFM V0FZUyBBUyAoYSAqIDIyKSBTVE9SRUQsIGMgaW50KSIKKwkiQ1JFQVRFIFRBQkxFIHRhYjEg KGEgaW50IFBSSU1BUlkgS0VZLCBiIGludCBHRU5FUkFURUQgQUxXQVlTIEFTIChhICogMjIp IFNUT1JFRCwgYyBpbnQgR0VORVJBVEVEIEFMV0FZUyBBUyAoYSAqIDMzKSBWSVJUVUFMLCBk IGludCkiCiApOwogCiAjIGRhdGEgZm9yIGluaXRpYWwgc3luYwpAQCAtNDIsMTAgKzQyLDEx IEBACiAjIFdhaXQgZm9yIGluaXRpYWwgc3luYyBvZiBhbGwgc3Vic2NyaXB0aW9ucwogJG5v ZGVfc3Vic2NyaWJlci0+d2FpdF9mb3Jfc3Vic2NyaXB0aW9uX3N5bmM7CiAKLW15ICRyZXN1 bHQgPSAkbm9kZV9zdWJzY3JpYmVyLT5zYWZlX3BzcWwoJ3Bvc3RncmVzJywgIlNFTEVDVCBh LCBiIEZST00gdGFiMSIpOwotaXMoICRyZXN1bHQsIHFxKDF8MjIKLTJ8NDQKLTN8NjYpLCAn Z2VuZXJhdGVkIGNvbHVtbnMgaW5pdGlhbCBzeW5jJyk7CitteSAkcmVzdWx0ID0KKyAgJG5v ZGVfc3Vic2NyaWJlci0+c2FmZV9wc3FsKCdwb3N0Z3JlcycsICJTRUxFQ1QgYSwgYiwgYyBG Uk9NIHRhYjEiKTsKK2lzKCAkcmVzdWx0LCBxcSgxfDIyfDMzCisyfDQ0fDY2CiszfDY2fDk5 KSwgJ2dlbmVyYXRlZCBjb2x1bW5zIGluaXRpYWwgc3luYycpOwogCiAjIGRhdGEgdG8gcmVw bGljYXRlCiAKQEAgLTU2LDExICs1NywxMSBAQAogJG5vZGVfcHVibGlzaGVyLT53YWl0X2Zv cl9jYXRjaHVwKCdzdWIxJyk7CiAKICRyZXN1bHQgPSAkbm9kZV9zdWJzY3JpYmVyLT5zYWZl X3BzcWwoJ3Bvc3RncmVzJywgIlNFTEVDVCAqIEZST00gdGFiMSIpOwotaXMoICRyZXN1bHQs IHFxKDF8MjJ8Ci0yfDQ0fAotM3w2NnwKLTR8ODh8Ci02fDEzMnwpLCAnZ2VuZXJhdGVkIGNv bHVtbnMgcmVwbGljYXRlZCcpOworaXMoICRyZXN1bHQsIHFxKDF8MjJ8MzN8CisyfDQ0fDY2 fAorM3w2Nnw5OXwKKzR8ODh8MTMyfAorNnwxMzJ8MTk4fCksICdnZW5lcmF0ZWQgY29sdW1u cyByZXBsaWNhdGVkJyk7CiAKICMgdHJ5IGl0IHdpdGggYSBzdWJzY3JpYmVyLXNpZGUgdHJp Z2dlcgogCkBAIC02OSw3ICs3MCw3IEBACiBDUkVBVEUgRlVOQ1RJT04gdGFiMV90cmlnZ2Vy X2Z1bmMoKSBSRVRVUk5TIHRyaWdnZXIKIExBTkdVQUdFIHBscGdzcWwgQVMgJCQKIEJFR0lO Ci0gIE5FVy5jIDo9IE5FVy5hICsgMTA7CisgIE5FVy5kIDo9IE5FVy5hICsgMTA7CiAgIFJF VFVSTiBORVc7CiBFTkQgJCQ7CiAKQEAgLTg4LDEzICs4OSwxMyBAQCBCRUdJTgogCiAkcmVz dWx0ID0KICAgJG5vZGVfc3Vic2NyaWJlci0+c2FmZV9wc3FsKCdwb3N0Z3JlcycsICJTRUxF Q1QgKiBGUk9NIHRhYjEgT1JERVIgQlkgMSIpOwotaXMoICRyZXN1bHQsIHFxKDF8MjJ8Ci0y fDQ0fAotM3w2NnwKLTR8ODh8Ci02fDEzMnwKLTh8MTc2fDE4Ci05fDE5OHwxOSksICdnZW5l cmF0ZWQgY29sdW1ucyByZXBsaWNhdGVkIHdpdGggdHJpZ2dlcicpOworaXMoICRyZXN1bHQs IHFxKDF8MjJ8MzN8CisyfDQ0fDY2fAorM3w2Nnw5OXwKKzR8ODh8MTMyfAorNnwxMzJ8MTk4 fAorOHwxNzZ8MjY0fDE4Cis5fDE5OHwyOTd8MTkpLCAnZ2VuZXJhdGVkIGNvbHVtbnMgcmVw bGljYXRlZCB3aXRoIHRyaWdnZXInKTsKIAogIyBjbGVhbnVwCiAkbm9kZV9zdWJzY3JpYmVy LT5zYWZlX3BzcWwoJ3Bvc3RncmVzJywgIkRST1AgU1VCU0NSSVBUSU9OIHN1YjEiKTsKZGlm ZiAtLWdpdCBhL3NyYy90ZXN0L3N1YnNjcmlwdGlvbi90LzAyOF9yb3dfZmlsdGVyLnBsIGIv c3JjL3Rlc3Qvc3Vic2NyaXB0aW9uL3QvMDI4X3Jvd19maWx0ZXIucGwKaW5kZXggMmFjZDM2 ZDdhNmYuLjk3Y2I0M2Y0NTBiIDEwMDY0NAotLS0gYS9zcmMvdGVzdC9zdWJzY3JpcHRpb24v dC8wMjhfcm93X2ZpbHRlci5wbAorKysgYi9zcmMvdGVzdC9zdWJzY3JpcHRpb24vdC8wMjhf cm93X2ZpbHRlci5wbApAQCAtMjQwLDYgKzI0MCw5IEBACiAkbm9kZV9wdWJsaXNoZXItPnNh ZmVfcHNxbCgncG9zdGdyZXMnLAogCSJDUkVBVEUgVEFCTEUgdGFiX3Jvd2ZpbHRlcl9jaGls ZF9zeW5jIFBBUlRJVElPTiBPRiB0YWJfcm93ZmlsdGVyX3BhcmVudF9zeW5jIEZPUiBWQUxV RVMgRlJPTSAoMSkgVE8gKDIwKSIKICk7Ciskbm9kZV9wdWJsaXNoZXItPnNhZmVfcHNxbCgn cG9zdGdyZXMnLAorCSJDUkVBVEUgVEFCTEUgdGFiX3Jvd2ZpbHRlcl92aXJ0dWFsIChpZCBp bnQgUFJJTUFSWSBLRVksIHggaW50LCB5IGludCBHRU5FUkFURUQgQUxXQVlTIEFTICh4ICog MikgVklSVFVBTCkiCispOwogCiAjIHNldHVwIHN0cnVjdHVyZSBvbiBzdWJzY3JpYmVyCiAk bm9kZV9zdWJzY3JpYmVyLT5zYWZlX3BzcWwoJ3Bvc3RncmVzJywKQEAgLTI5NCw2ICsyOTcs OSBAQAogCSJDUkVBVEUgVEFCTEUgdGFiX3Jvd2ZpbHRlcl9wYXJlbnRfc3luYyAoYSBpbnQp Iik7CiAkbm9kZV9zdWJzY3JpYmVyLT5zYWZlX3BzcWwoJ3Bvc3RncmVzJywKIAkiQ1JFQVRF IFRBQkxFIHRhYl9yb3dmaWx0ZXJfY2hpbGRfc3luYyAoYSBpbnQpIik7Ciskbm9kZV9zdWJz Y3JpYmVyLT5zYWZlX3BzcWwoJ3Bvc3RncmVzJywKKwkiQ1JFQVRFIFRBQkxFIHRhYl9yb3dm aWx0ZXJfdmlydHVhbCAoaWQgaW50IFBSSU1BUlkgS0VZLCB4IGludCwgeSBpbnQgR0VORVJB VEVEIEFMV0FZUyBBUyAoeCAqIDIpIFZJUlRVQUwpIgorKTsKIAogIyBzZXR1cCBsb2dpY2Fs IHJlcGxpY2F0aW9uCiAkbm9kZV9wdWJsaXNoZXItPnNhZmVfcHNxbCgncG9zdGdyZXMnLApA QCAtMzU5LDYgKzM2NSwxMSBAQAogCSJDUkVBVEUgUFVCTElDQVRJT04gdGFwX3B1Yl9jaGls ZF9zeW5jIEZPUiBUQUJMRSB0YWJfcm93ZmlsdGVyX2NoaWxkX3N5bmMgV0hFUkUgKGEgPCAx NSkiCiApOwogCisjIHB1YmxpY2F0aW9uIHVzaW5nIHZpcnR1YWwgZ2VuZXJhdGVkIGNvbHVt biBpbiByb3cgZmlsdGVyIGV4cHJlc3Npb24KKyRub2RlX3B1Ymxpc2hlci0+c2FmZV9wc3Fs KCdwb3N0Z3JlcycsCisJIkNSRUFURSBQVUJMSUNBVElPTiB0YXBfcHViX3ZpcnR1YWwgRk9S IFRBQkxFIHRhYl9yb3dmaWx0ZXJfdmlydHVhbCBXSEVSRSAoeSA+IDEwKSIKKyk7CisKICMK ICMgVGhlIGZvbGxvd2luZyBJTlNFUlRzIGFyZSBleGVjdXRlZCBiZWZvcmUgdGhlIENSRUFU RSBTVUJTQ1JJUFRJT04sIHNvIHRoZXNlCiAjIFNRTCBjb21tYW5kcyBhcmUgZm9yIHRlc3Rp bmcgdGhlIGluaXRpYWwgZGF0YSBjb3B5IHVzaW5nIGxvZ2ljYWwgcmVwbGljYXRpb24uCkBA IC00MDcsOCArNDE4LDEyIEBACiAJIklOU0VSVCBJTlRPIHRhYl9yb3dmaWx0ZXJfY2hpbGQo YSwgYikgVkFMVUVTKDAsJzAnKSwoMzAsJzMwJyksKDQwLCc0MCcpIgogKTsKIAorJG5vZGVf cHVibGlzaGVyLT5zYWZlX3BzcWwoJ3Bvc3RncmVzJywKKwkiSU5TRVJUIElOVE8gdGFiX3Jv d2ZpbHRlcl92aXJ0dWFsIChpZCwgeCkgVkFMVUVTICgxLCAyKSwgKDIsIDQpLCAoMywgNiki CispOworCiAkbm9kZV9zdWJzY3JpYmVyLT5zYWZlX3BzcWwoJ3Bvc3RncmVzJywKLQkiQ1JF QVRFIFNVQlNDUklQVElPTiB0YXBfc3ViIENPTk5FQ1RJT04gJyRwdWJsaXNoZXJfY29ubnN0 ciBhcHBsaWNhdGlvbl9uYW1lPSRhcHBuYW1lJyBQVUJMSUNBVElPTiB0YXBfcHViXzEsIHRh cF9wdWJfMiwgdGFwX3B1Yl8zLCB0YXBfcHViXzRhLCB0YXBfcHViXzRiLCB0YXBfcHViXzVh LCB0YXBfcHViXzViLCB0YXBfcHViX3RvYXN0LCB0YXBfcHViX2luaGVyaXRzLCB0YXBfcHVi X3ZpYXJvb3RfMiwgdGFwX3B1Yl92aWFyb290XzEsIHRhcF9wdWJfcGFyZW50X3N5bmMsIHRh cF9wdWJfY2hpbGRfc3luYyIKKwkiQ1JFQVRFIFNVQlNDUklQVElPTiB0YXBfc3ViIENPTk5F Q1RJT04gJyRwdWJsaXNoZXJfY29ubnN0ciBhcHBsaWNhdGlvbl9uYW1lPSRhcHBuYW1lJyBQ VUJMSUNBVElPTiB0YXBfcHViXzEsIHRhcF9wdWJfMiwgdGFwX3B1Yl8zLCB0YXBfcHViXzRh LCB0YXBfcHViXzRiLCB0YXBfcHViXzVhLCB0YXBfcHViXzViLCB0YXBfcHViX3RvYXN0LCB0 YXBfcHViX2luaGVyaXRzLCB0YXBfcHViX3ZpYXJvb3RfMiwgdGFwX3B1Yl92aWFyb290XzEs IHRhcF9wdWJfcGFyZW50X3N5bmMsIHRhcF9wdWJfY2hpbGRfc3luYywgdGFwX3B1Yl92aXJ0 dWFsIgogKTsKIAogIyB3YWl0IGZvciBpbml0aWFsIHRhYmxlIHN5bmNocm9uaXphdGlvbiB0 byBmaW5pc2gKQEAgLTU1MCw2ICs1NjUsMTYgQEAKIAkiU0VMRUNUIGEgRlJPTSB0YWJfcm93 ZmlsdGVyX2NoaWxkX3N5bmMgT1JERVIgQlkgMSIpOwogaXMoJHJlc3VsdCwgcXEoKSwgJ2No ZWNrIGluaXRpYWwgZGF0YSBjb3B5IGZyb20gdGFiX3Jvd2ZpbHRlcl9jaGlsZF9zeW5jJyk7 CiAKKyMgQ2hlY2sgZXhwZWN0ZWQgcmVwbGljYXRlZCByb3dzIGZvciB0YWJfcm93ZmlsdGVy X3ZpcnR1YWwKKyMgdGFwX3B1Yl92aXJ0dWFsIGZpbHRlciBpczogKHkgPiAxMCksIHdoZXJl IHkgaXMgZ2VuZXJhdGVkIGFzICh4ICogMikKKyMgLSBJTlNFUlQgKDEsIDIpICAgICAgTk8s IDIgKiAyIDw9IDEwCisjIC0gSU5TRVJUICgyLCA0KSAgICAgIE5PLCA0ICogMiA8PSAxMAor IyAtIElOU0VSVCAoMywgNikgICAgICBZRVMsIDYgKiAyID4gMTAKKyRyZXN1bHQgPSAkbm9k ZV9zdWJzY3JpYmVyLT5zYWZlX3BzcWwoJ3Bvc3RncmVzJywKKwkiU0VMRUNUIGlkLCB4IEZS T00gdGFiX3Jvd2ZpbHRlcl92aXJ0dWFsIE9SREVSIEJZIGlkIik7CitpcygkcmVzdWx0LCBx cSgzfDYpLAorCSdjaGVjayBpbml0aWFsIGRhdGEgY29weSBmcm9tIHRhYmxlIHRhYl9yb3dm aWx0ZXJfdmlydHVhbCcpOworCiAjIFRoZSBmb2xsb3dpbmcgY29tbWFuZHMgYXJlIGV4ZWN1 dGVkIGFmdGVyIENSRUFURSBTVUJTQ1JJUFRJT04sIHNvIHRoZXNlIFNRTAogIyBjb21tYW5k cyBhcmUgZm9yIHRlc3Rpbmcgbm9ybWFsIGxvZ2ljYWwgcmVwbGljYXRpb24gYmVoYXZpb3Iu CiAjCkBAIC01ODIsNiArNjA3LDggQEAKIAkiSU5TRVJUIElOVE8gdGFiX3Jvd2ZpbHRlcl9j aGlsZCAoYSwgYikgVkFMVUVTICgxMywgJzEzJyksICgxNywgJzE3JykiKTsKICRub2RlX3B1 Ymxpc2hlci0+c2FmZV9wc3FsKCdwb3N0Z3JlcycsCiAJIklOU0VSVCBJTlRPIHRhYl9yb3dm aWx0ZXJfdmlhcm9vdF9wYXJ0IChhKSBWQUxVRVMgKDE0KSwgKDE1KSwgKDE2KSIpOworJG5v ZGVfcHVibGlzaGVyLT5zYWZlX3BzcWwoJ3Bvc3RncmVzJywKKwkiSU5TRVJUIElOVE8gdGFi X3Jvd2ZpbHRlcl92aXJ0dWFsIChpZCwgeCkgVkFMVUVTICg0LCAzKSwgKDUsIDcpIik7CiAK ICRub2RlX3B1Ymxpc2hlci0+d2FpdF9mb3JfY2F0Y2h1cCgkYXBwbmFtZSk7CiAKQEAgLTcy NSw2ICs3NTIsMTUgQEAKIAknY2hlY2sgcmVwbGljYXRlZCByb3dzIHRvIHRhYl9yb3dmaWx0 ZXJfaW5oZXJpdGVkIGFuZCB0YWJfcm93ZmlsdGVyX2NoaWxkJwogKTsKIAorIyBDaGVjayBl eHBlY3RlZCByZXBsaWNhdGVkIHJvd3MgZm9yIHRhYl9yb3dmaWx0ZXJfdmlydHVhbAorIyB0 YXBfcHViX3ZpcnR1YWwgZmlsdGVyIGlzOiAoeSA+IDEwKSwgd2hlcmUgeSBpcyBnZW5lcmF0 ZWQgYXMgKHggKiAyKQorIyAtIElOU0VSVCAoNCwgMykgICAgICBOTywgMyAqIDIgPD0gMTAK KyMgLSBJTlNFUlQgKDUsIDcpICAgICAgWUVTLCA3ICogMiA+IDEwCiskcmVzdWx0ID0gJG5v ZGVfc3Vic2NyaWJlci0+c2FmZV9wc3FsKCdwb3N0Z3JlcycsCisJIlNFTEVDVCBpZCwgeCBG Uk9NIHRhYl9yb3dmaWx0ZXJfdmlydHVhbCBPUkRFUiBCWSBpZCIpOworaXMoICRyZXN1bHQs IHFxKDN8NgorNXw3KSwgJ2NoZWNrIHJlcGxpY2F0ZWQgcm93cyB0byB0YWJfcm93ZmlsdGVy X3ZpcnR1YWwnKTsKKwogIyBVUERBVEUgdGhlIG5vbi10b2FzdGVkIGNvbHVtbiBmb3IgdGFi bGUgdGFiX3Jvd2ZpbHRlcl90b2FzdAogJG5vZGVfcHVibGlzaGVyLT5zYWZlX3BzcWwoJ3Bv c3RncmVzJywKIAkiVVBEQVRFIHRhYl9yb3dmaWx0ZXJfdG9hc3QgU0VUIGIgPSAnMSciKTsK CmJhc2UtY29tbWl0OiBiNjYxMmFlZGM1M2E2YmYwNjllYmE1ZTM1NmE4NDIxYWQ2NDI2NDg2 Ci0tIAoyLjQ3LjAKCg== --------------z0KHWbahaIm3ADwiA3WIqHvh--