[Patch] OpenMP: Fortran + ME - update for spatial dimensions + message clause

Tobias Burnus <[email protected]> Mon, 27 Jul 2026 10:29:47 +0200
Newsgroups gmane.comp.gcc.patches,gmane.comp.gcc.fortran
Message-ID <[email protected]>
This is a multi-part message in MIME format.
--------------iCsM76R7KSqxfIvCzg0iVfNl
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 8bit

Not yet implemented: C/C++ parser support (once done, some tree-usage
cleanup can be done) nor actually passing anything to the runtime
library.

This patch does two things:
* Add new clause parsing for Fortran: 'message'/'severity' clauses
   in target, teams, and parallel
   [Effective for num_teams - and via 'thread_limit(strict:' and
   'num_threads(strict:') in the case an error appears.]

* Modify the ME trees to be able to pass message/severity and also
   num_teams, thread_limit, num_threads with 'strict' and 'dims(…)'
   modifier (and num_threads also multiple values w/o 'dims(…)' for
   nested parallel).

Due to the latter, the 'sorry, unimplemented' has been moved from
the Fortran FE to omp-expand.cc.

With '(relaxed : n)' and '(relaxed,dim(1) : n)' the effect is the
same just using '(n)'. For those, no error is shown and the normal
code is executed. Likewise for 'message' combined with 'relaxed'
as then no error termination happens (not for 'target'; that will
arrived with a num_teams in omp-expand.cc and it is easier just to
print a sorry than handle the special case.)

Comments, suggestions, remarks?

Tobias

PS: Usage:
- num_threads / thread_limit: 'strict' permits an error diagnostic
   if the number of actual threads is less than requested.
   message(<string>) and serverity(fatal|warning) permits to tune
   that diagnostic. - Opposite is 'relaxed'.

- num_thread( [lower :] upper) already implies 'strict', esp. as the
   default lower bound is the upper bound. Now message/severity can
   tune the diagnostic here as well.

- for all three clauses, 'dim(n): <list> permits to specify spatical
   dimensions (n == 1 matches the current settings, except that 'strict'
   is implied).

- num_teams permits (also without 'dims(...)' multiple values,
   to be used with tree nesting.

To be usable, this requires passing the additional data to the runtime
library and making use of it. As that's not done, yet. An sorry message
is still printed.

For the spatial dimensions, GCC already implements the API routines - but
assumes that only 'dim(1)' appears  (in line what the compiler produces), cf.
https://gcc.gnu.org/onlinedocs/libgomp/Multidimensional-Support-Routines.html

--------------iCsM76R7KSqxfIvCzg0iVfNl
Content-Type: text/x-patch; charset=UTF-8; name="spatial-ME.diff"
Content-Disposition: attachment; filename="spatial-ME.diff"
Content-Transfer-Encoding: base64

T3Blbk1QOiBGb3J0cmFuICsgTUUgLSB1cGRhdGUgZm9yIHNwYXRpYWwgZGltZW5zaW9ucyAr
IG1lc3NhZ2UgY2xhdXNlCgpBZGQgJ21lc3NhZ2UnICsgJ3NldmVyaXR5JyBjbGF1c2UgdG8g
dGFyZ2V0LCB0ZWFtcywgYW5kIHBhcmFsbGVsLgpUcmFuc2xhdGUgdGhvc2UgYW5kIGhhbmRs
ZSBzdHJpY3QvZGltcyBtb2RpZmllcnMgdG8gbnVtX3RlYW1zLCB0aHJlYWRfbGltaXQKYW5k
IG51bV90aHJlYWRzIC0gdGhlIGxhdHRlciBhbHNvIHBlcm1pdHMgbXVsdGlwbGUgdmFsdWVz
IHdpdGhvdXQgJ2RpbXMnLgoKV2l0aCB0aGlzIGNvbW1pdCwgdGhlICdzb3JyeSwgdW5pbXBs
ZW1lbnRlZCcgaXMgbW92ZWQgZnJvbSB0aGUgRm9ydHJhbgpmcm9udCBlbmQgdG8gdGhlIG1p
ZGRsZSBlbmQgKG9tcC1leHBhbmQuY2MpLiAgTm90ZSB0aGF0IHBhcnNlciBzdXBwb3J0CmZv
ciBDIGFuZCBDKysgc3RpbGwgaGFzIHRvIGJlIGFkZGVkLgoKZ2NjL2ZvcnRyYW4vQ2hhbmdl
TG9nOgoKCSogZHVtcC1wYXJzZS10cmVlLmNjIChzaG93X29tcF9jbGF1c2VzKTogRml4ICdt
ZXNzYWdlJyBjbGF1c2UgbmFtZS4KCSogb3Blbm1wLmNjIChnZmNfbWF0Y2hfb21wX2NsYXVz
ZXMpOiBJbXByb3ZlIG51bV90ZWFtJ3MgZXJyb3IKCWRpYWdub3N0aWMuCgkoT01QX1BBUkFM
TEVMX0NMQVVTRVMsIE9NUF9UQVJHRVRfQ0xBVVNFUywgT01QX1RFQU1TX0NMQVVTRVMpOiBB
ZGQKCU9NUF9DTEFVU0VfTUVTU0FHRSBhbmQgT01QX0NMQVVTRV9TRVZFUklUWS4KCSogdHJh
bnMtb3Blbm1wLmNjIChnZmNfc3BsaXRfb21wX2NsYXVzZXMpOiBIYW5kbGUgbWVzc2FnZS9z
ZXZlcml0eS4KCShnZmNfdHJhbnNfb21wX2NsYXVzZXMpOiBMaWtld2lzZTsgcmVwbGFjZSAn
c29ycnknIGJ5IHVwZGF0ZWQgdHJlZQoJZ2VuZXJhdGlvbiBmb3IgbnVtX3RlYW1zLCBudW1f
dGhyZWFkcywgdGhyZWFkX251bSBjbGF1c2VzLgoKZ2NjL0NoYW5nZUxvZzoKCgkqIGdpbXBs
aWZ5LmNjIChnaW1wbGlmeV9zY2FuX29tcF9jbGF1c2VzKTogSGFuZGxlIGFsc28gVFJFRV9M
SVNUCglmb3IgbnVtX3RlYW1zLCBudW1fdGhyZWFkcywgdGhyZWFkX251bSBjbGF1c2VzLiBB
ZGQgbWVzc2FnZSBjbGF1c2UKCXRvIHN3aXRjaCBzdGF0ZW1lbnQuCgkqIG9tcC1leHBhbmQu
Y2MgKGV4cGFuZF9wYXJhbGxlbF9jYWxsLCBleHBhbmRfdGVhbXNfY2FsbCwKCWdldF90YXJn
ZXRfYXJndW1lbnRzKTogSGFuZGxlLCBtb3N0bHkgd2l0aCAnc29ycnksIHVuaW1wbGVtZW50
ZWQnLAoJdGhlICdkaW1zJyBhbmQgJ3N0cmljdCcgbW9kaWZpZXJzIGFuZCB0aGUgJ21lc3Nh
Z2UnIGNsYXVzZS4KCSogb21wLWxvdy5jYyAoc2Nhbl9zaGFyaW5nX2NsYXVzZXMpOiBBZGQg
bWVzc2FnZSBjbGF1c2UgdG8gc3dpdGNoLgoJKGxvd2VyX29tcF90ZWFtcyk6IEhhbmRsZSBU
UkVFX0xJU1QgZm9yIG51bV90aHJlYWRzICsgdGhyZWFkX251bS4KCSogdHJlZS1jb3JlLmgg
KGVudW0gb21wX2NsYXVzZV9jb2RlKTogQWRkIE9NUF9DTEFVU0VfTUVTU0FHRS4KCSogdHJl
ZS1wcmV0dHktcHJpbnQuY2MgKGR1bXBfb21wX2NsYXVzZSk6IEhhbmRsZSAnbWVzc2FnZScg
Y2xhdXNlLAoJdXBkYXRlIG51bV90ZWFtcywgbnVtX3RocmVhZHMsIHRocmVhZF9udW0gY2xh
dXNlIHByaW50aW5nLgoJKiB0cmVlLmNjIChvbXBfY2xhdXNlX251bV9vcHMsIG9tcF9jbGF1
c2VfY29kZV9uYW1lKTogVXBkYXRlIGZvcgoJbWVzc2FnZSBjbGF1c2UuCgkqIHRyZWUuaCAo
T01QX0NMQVVTRV9OVU1fVEhSRUFEU19TVFJJQ1QsCglPTVBfQ0xBVVNFX1RIUkVBRF9MSU1J
VF9TVFJJQ1QsIE9NUF9DTEFVU0VfTlVNX1RFQU1TX0RJTVMsCglPTVBfQ0xBVVNFX05VTV9U
SFJFQURTX0RJTVMsIE9NUF9DTEFVU0VfVEhSRUFEX0xJTUlUX0RJTVMsCglPTVBfQ0xBVVNF
X01FU1NBR0VfRVhQUiwgT01QX0NMQVVTRV9NRVNTQUdFX0xFTiwKCU9NUF9DTEFVU0VfTUVT
U0FHRV9TRVZFUklUWV9XQVJOKTogTmV3LgoKZ2NjL3Rlc3RzdWl0ZS9DaGFuZ2VMb2c6CgoJ
KiBnZm9ydHJhbi5kZy9nb21wL3NwYXRpYWwtZGltZW5zaW9ucy0xLmY5MDogTW92ZSB0byBn
aW1wbGUgZHVtcHMKCWFuZCBleHRlbmQgdHJlZS1kdW1wIGNoZWNraW5nLgoJKiBnZm9ydHJh
bi5kZy9nb21wL3NwYXRpYWwtZGltZW5zaW9ucy0yLmY5MDogUmVtb3ZlIHNvcnJ5IGFuZAoJ
Y2hlY2sgb21wbG93ZXIgYW5kIG9tcGV4cCB0cmVlIGR1bXBzLgoJKiBnZm9ydHJhbi5kZy9n
b21wL3NwYXRpYWwtZGltZW5zaW9ucy0zLmY5MDogVXBkYXRlIGRnLWVycm9yLgoJKiBnZm9y
dHJhbi5kZy9nb21wL3NwYXRpYWwtZGltZW5zaW9ucy00LmY5MDogTmV3IHRlc3QuCgkqIGdm
b3J0cmFuLmRnL2dvbXAvc3BhdGlhbC1kaW1lbnNpb25zLTUuZjkwOiBOZXcgdGVzdC4KCiBn
Y2MvZm9ydHJhbi9kdW1wLXBhcnNlLXRyZWUuY2MgICAgICAgICAgICAgICAgICAgICB8ICAg
MiArLQogZ2NjL2ZvcnRyYW4vb3Blbm1wLmNjICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgfCAgMzMgKystLQogZ2NjL2ZvcnRyYW4vdHJhbnMtb3Blbm1wLmNjICAgICAgICAgICAg
ICAgICAgICAgICAgfCAxMjggKysrKysrKystLS0tLS0tLQogZ2NjL2dpbXBsaWZ5LmNjICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCAgMjAgKystCiBnY2Mvb21wLWV4
cGFuZC5jYyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IDEzMSArKysrKysr
KysrKysrLS0tCiBnY2Mvb21wLWxvdy5jYyAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICB8ICAxMyArKwogLi4uL2dmb3J0cmFuLmRnL2dvbXAvc3BhdGlhbC1kaW1lbnNp
b25zLTEuZjkwICAgICAgfCAxNjkgKysrKysrKysrKysrKystLS0tLS0tCiAuLi4vZ2ZvcnRy
YW4uZGcvZ29tcC9zcGF0aWFsLWRpbWVuc2lvbnMtMi5mOTAgICAgICB8ICAxMCArLQogLi4u
L2dmb3J0cmFuLmRnL2dvbXAvc3BhdGlhbC1kaW1lbnNpb25zLTMuZjkwICAgICAgfCAgMjAg
KystCiAuLi4vZ2ZvcnRyYW4uZGcvZ29tcC9zcGF0aWFsLWRpbWVuc2lvbnMtNC5mOTAgICAg
ICB8ICA5OSArKysrKysrKysrKysKIC4uLi9nZm9ydHJhbi5kZy9nb21wL3NwYXRpYWwtZGlt
ZW5zaW9ucy01LmY5MCAgICAgIHwgIDg0ICsrKysrKysrKysKIGdjYy90cmVlLWNvcmUuaCAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgICA3ICsKIGdjYy90cmVlLXBy
ZXR0eS1wcmludC5jYyAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgIDQ1ICsrKysrKwog
Z2NjL3RyZWUuY2MgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCAg
IDIgKwogZ2NjL3RyZWUuaCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgfCAgMjEgKysrCiAxNSBmaWxlcyBjaGFuZ2VkLCA2MjQgaW5zZXJ0aW9ucygrKSwgMTYw
IGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL2djYy9mb3J0cmFuL2R1bXAtcGFyc2UtdHJl
ZS5jYyBiL2djYy9mb3J0cmFuL2R1bXAtcGFyc2UtdHJlZS5jYwppbmRleCAzZjFiMzViNzE1
YS4uOGQxM2FjZDg2NTYgMTAwNjQ0Ci0tLSBhL2djYy9mb3J0cmFuL2R1bXAtcGFyc2UtdHJl
ZS5jYworKysgYi9nY2MvZm9ydHJhbi9kdW1wLXBhcnNlLXRyZWUuY2MKQEAgLTI0NTYsNyAr
MjQ1Niw3IEBAIHNob3dfb21wX2NsYXVzZXMgKGdmY19vbXBfY2xhdXNlcyAqb21wX2NsYXVz
ZXMpCiAgICAgfQogICBpZiAob21wX2NsYXVzZXMtPm1lc3NhZ2UpCiAgICAgewotICAgICAg
ZnB1dHMgKCIgRVJST1IgKCIsIGR1bXBmaWxlKTsKKyAgICAgIGZwdXRzICgiIE1FU1NBR0Ug
KCIsIGR1bXBmaWxlKTsKICAgICAgIHNob3dfZXhwciAob21wX2NsYXVzZXMtPm1lc3NhZ2Up
OwogICAgICAgZnB1dGMgKCcpJywgZHVtcGZpbGUpOwogICAgIH0KZGlmZiAtLWdpdCBhL2dj
Yy9mb3J0cmFuL29wZW5tcC5jYyBiL2djYy9mb3J0cmFuL29wZW5tcC5jYwppbmRleCBkMTUx
YWZmOGE0NS4uMzYxM2RjOGJkNDUgMTAwNjQ0Ci0tLSBhL2djYy9mb3J0cmFuL29wZW5tcC5j
YworKysgYi9nY2MvZm9ydHJhbi9vcGVubXAuY2MKQEAgLTQxMzUsNiArNDEzNSw3IEBAIGdm
Y19tYXRjaF9vbXBfY2xhdXNlcyAoZ2ZjX29tcF9jbGF1c2VzICoqY3AsIGNvbnN0IG9tcF9t
YXNrIG1hc2ssCiAJCSAgICAgIGdvdG8gZXJyb3I7CiAJCSAgICB9CiAJCSAgYy0+bnVtX3Rl
YW1zX2RpbXMgPSB0cnVlOworCQkgIGNvbnRpbnVlOwogCQl9CiAJICAgICAgZWxzZSBpZiAo
Z2ZjX21hdGNoICgiJWUgIiwgJmV4cHIpID09IE1BVENIX1lFUykKIAkJewpAQCAtNDE0Mywy
MSArNDE0NCwyMCBAQCBnZmNfbWF0Y2hfb21wX2NsYXVzZXMgKGdmY19vbXBfY2xhdXNlcyAq
KmNwLCBjb25zdCBvbXBfbWFzayBtYXNrLAogCQkgIGlmIChnZmNfcGVla19hc2NpaV9jaGFy
ICgpID09ICc6JykKIAkJICAgIHsKIAkJICAgICAgZXhwciA9IE5VTEw7Ci0JCSAgICAgIGlm
IChnZmNfbWF0Y2ggKCI6ICVlICIsICZleHByKSAhPSBNQVRDSF9ZRVMpCi0JCQlnb3RvIGVy
cm9yOwotCQkgICAgICBjLT5udW1fdGVhbXNfbGlzdC0+bmV4dCA9IGdmY19nZXRfZXhwcl9s
aXN0KCk7Ci0JCSAgICAgIGMtPm51bV90ZWFtc19saXN0LT5uZXh0LT5leHByID0gZXhwcjsK
KwkJICAgICAgaWYgKGdmY19tYXRjaCAoIjogJWUgIiwgJmV4cHIpID09IE1BVENIX1lFUykK
KwkJCXsKKwkJCSAgYy0+bnVtX3RlYW1zX2xpc3QtPm5leHQgPSBnZmNfZ2V0X2V4cHJfbGlz
dCgpOworCQkJICBjLT5udW1fdGVhbXNfbGlzdC0+bmV4dC0+ZXhwciA9IGV4cHI7CisJCQkg
IGlmIChnZmNfbWF0Y2ggKCIpICIpID09IE1BVENIX1lFUykKKwkJCSAgICBjb250aW51ZTsK
KwkJCX0KIAkJICAgIH0KLQkJICBpZiAoZ2ZjX21hdGNoICgiKSAiKSAhPSBNQVRDSF9ZRVMp
Ci0JCSAgICBnb3RvIGVycm9yOworCQkgIGVsc2UgaWYgKGdmY19tYXRjaCAoIikgIikgPT0g
TUFUQ0hfWUVTKQorCQkgICAgY29udGludWU7CiAJCX0KLQkgICAgICBlbHNlCi0JCXsKLQkJ
ICBnZmNfZXJyb3IgKCJFeHBlY3RlZCBlaXRoZXIgJTxbbG93ZXItZXhwciA6IF0gdXBwZXIt
ZXhwciU+IG9yICIKKwkgICAgICBnZmNfZXJyb3IgKCJFeHBlY3RlZCBlaXRoZXIgJTxbbG93
ZXItZXhwciA6IF0gdXBwZXItZXhwciU+IG9yICIKIAkJCSAgICAgIiU8ZGltcyhOKTogZXhw
ci1saXN0JT4gYXQgJUMiKTsKLQkJICBnb3RvIGVycm9yOwotCQl9Ci0JICAgICAgY29udGlu
dWU7CisJICAgICAgZ290byBlcnJvcjsKIAkgICAgfQogCSAgaWYgKChtYXNrICYgT01QX0NM
QVVTRV9OVU1fVEhSRUFEUykKIAkgICAgICAmJiAobSA9IGdmY19tYXRjaF9kdXBsX2NoZWNr
ICghYy0+bnVtX3RocmVhZHNfbGlzdCwKQEAgLTU1MzQsNyArNTUzNCw4IEBAIGNsZWFudXA6
CiAgIChvbXBfbWFzayAoT01QX0NMQVVTRV9QUklWQVRFKSB8IE9NUF9DTEFVU0VfRklSU1RQ
UklWQVRFCQlcCiAgICB8IE9NUF9DTEFVU0VfU0hBUkVEIHwgT01QX0NMQVVTRV9DT1BZSU4g
fCBPTVBfQ0xBVVNFX1JFRFVDVElPTglcCiAgICB8IE9NUF9DTEFVU0VfSUYgfCBPTVBfQ0xB
VVNFX05VTV9USFJFQURTIHwgT01QX0NMQVVTRV9ERUZBVUxUCVwKLSAgIHwgT01QX0NMQVVT
RV9QUk9DX0JJTkQgfCBPTVBfQ0xBVVNFX0FMTE9DQVRFKQorICAgfCBPTVBfQ0xBVVNFX1BS
T0NfQklORCB8IE9NUF9DTEFVU0VfQUxMT0NBVEUgfCBPTVBfQ0xBVVNFX01FU1NBR0UJXAor
ICAgfCBPTVBfQ0xBVVNFX1NFVkVSSVRZKQogI2RlZmluZSBPTVBfREVDTEFSRV9TSU1EX0NM
QVVTRVMgXAogICAob21wX21hc2sgKE9NUF9DTEFVU0VfU0lNRExFTikgfCBPTVBfQ0xBVVNF
X0xJTkVBUgkJCVwKICAgIHwgT01QX0NMQVVTRV9VTklGT1JNCXwgT01QX0NMQVVTRV9BTElH
TkVEIHwgT01QX0NMQVVTRV9JTkJSQU5DSAlcCkBAIC01NTgzLDcgKzU1ODQsOCBAQCBjbGVh
bnVwOgogICAgfCBPTVBfQ0xBVVNFX0lTX0RFVklDRV9QVFIgfCBPTVBfQ0xBVVNFX0lOX1JF
RFVDVElPTgkJCVwKICAgIHwgT01QX0NMQVVTRV9USFJFQURfTElNSVQgfCBPTVBfQ0xBVVNF
X0FMTE9DQVRFCQkJXAogICAgfCBPTVBfQ0xBVVNFX0hBU19ERVZJQ0VfQUREUiB8IE9NUF9D
TEFVU0VfVVNFU19BTExPQ0FUT1JTCQlcCi0gICB8IE9NUF9DTEFVU0VfRFlOX0dST1VQUFJJ
VkFURSB8IE9NUF9DTEFVU0VfREVWSUNFX1RZUEUpCisgICB8IE9NUF9DTEFVU0VfRFlOX0dS
T1VQUFJJVkFURSB8IE9NUF9DTEFVU0VfREVWSUNFX1RZUEUJCVwKKyAgIHwgT01QX0NMQVVT
RV9NRVNTQUdFIHwgT01QX0NMQVVTRV9TRVZFUklUWSkKICNkZWZpbmUgT01QX1RBUkdFVF9E
QVRBX0NMQVVTRVMgXAogICAob21wX21hc2sgKE9NUF9DTEFVU0VfREVWSUNFKSB8IE9NUF9D
TEFVU0VfTUFQIHwgT01QX0NMQVVTRV9JRglcCiAgICB8IE9NUF9DTEFVU0VfVVNFX0RFVklD
RV9QVFIgfCBPTVBfQ0xBVVNFX1VTRV9ERVZJQ0VfQUREUikKQEAgLTU1OTksNyArNTYwMSw4
IEBAIGNsZWFudXA6CiAjZGVmaW5lIE9NUF9URUFNU19DTEFVU0VTIFwKICAgKG9tcF9tYXNr
IChPTVBfQ0xBVVNFX05VTV9URUFNUykgfCBPTVBfQ0xBVVNFX1RIUkVBRF9MSU1JVAkJXAog
ICAgfCBPTVBfQ0xBVVNFX0RFRkFVTFQgfCBPTVBfQ0xBVVNFX1BSSVZBVEUgfCBPTVBfQ0xB
VVNFX0ZJUlNUUFJJVkFURQlcCi0gICB8IE9NUF9DTEFVU0VfU0hBUkVEIHwgT01QX0NMQVVT
RV9SRURVQ1RJT04gfCBPTVBfQ0xBVVNFX0FMTE9DQVRFKQorICAgfCBPTVBfQ0xBVVNFX1NI
QVJFRCB8IE9NUF9DTEFVU0VfUkVEVUNUSU9OIHwgT01QX0NMQVVTRV9BTExPQ0FURQlcCisg
ICB8IE9NUF9DTEFVU0VfTUVTU0FHRSB8IE9NUF9DTEFVU0VfU0VWRVJJVFkpCiAjZGVmaW5l
IE9NUF9ESVNUUklCVVRFX0NMQVVTRVMgXAogICAob21wX21hc2sgKE9NUF9DTEFVU0VfUFJJ
VkFURSkgfCBPTVBfQ0xBVVNFX0ZJUlNUUFJJVkFURQkJXAogICAgfCBPTVBfQ0xBVVNFX0xB
U1RQUklWQVRFIHwgT01QX0NMQVVTRV9DT0xMQVBTRSB8IE9NUF9DTEFVU0VfRElTVF9TQ0hF
RFVMRSBcCmRpZmYgLS1naXQgYS9nY2MvZm9ydHJhbi90cmFucy1vcGVubXAuY2MgYi9nY2Mv
Zm9ydHJhbi90cmFucy1vcGVubXAuY2MKaW5kZXggNTJiMTU1NGFjMzMuLjMxYTg0ZDUxZjE2
IDEwMDY0NAotLS0gYS9nY2MvZm9ydHJhbi90cmFucy1vcGVubXAuY2MKKysrIGIvZ2NjL2Zv
cnRyYW4vdHJhbnMtb3Blbm1wLmNjCkBAIC01NjQwLDYgKzU2NDAsMzUgQEAgZ2ZjX3RyYW5z
X29tcF9jbGF1c2VzIChzdG10YmxvY2tfdCAqYmxvY2ssIGdmY19vbXBfY2xhdXNlcyAqY2xh
dXNlcywKICAgICAgIG9tcF9jbGF1c2VzID0gZ2ZjX3RyYW5zX2FkZF9jbGF1c2UgKGMsIG9t
cF9jbGF1c2VzKTsKICAgICB9CiAKKyAgaWYgKGNsYXVzZXMtPm1lc3NhZ2UgfHwgY2xhdXNl
cy0+c2V2ZXJpdHkgIT0gT01QX1NFVkVSSVRZX1VOU0VUKQorICAgIHsKKyAgICAgIHRyZWUg
bWVzc2FnZSA9IE5VTExfVFJFRTsKKyAgICAgIHRyZWUgbGVuID0gTlVMTF9UUkVFOworCisg
ICAgICBpZiAoY2xhdXNlcy0+bWVzc2FnZSkKKwl7CisJICBnZmNfaW5pdF9zZSAoJnNlLCBO
VUxMKTsKKwkgIGdmY19jb252X2V4cHIgKCZzZSwgY2xhdXNlcy0+bWVzc2FnZSk7CisJICBn
ZmNfYWRkX2Jsb2NrX3RvX2Jsb2NrIChibG9jaywgJnNlLnByZSk7CisJICBtZXNzYWdlID0g
c2UuZXhwcjsKKwkgIGxlbiA9IHNlLnN0cmluZ19sZW5ndGg7CisJICBpZiAoIURFQ0xfUCAo
c2UuZXhwcikpCisJICAgIG1lc3NhZ2UgPSBnZmNfZXZhbHVhdGVfbm93IChtZXNzYWdlLCBi
bG9jayk7CisJICBnZmNfYWRkX2Jsb2NrX3RvX2Jsb2NrIChibG9jaywgJnNlLnBvc3QpOwor
CisJICBpZiAoIVBPSU5URVJfVFlQRV9QIChUUkVFX1RZUEUgKG1lc3NhZ2UpKSkKKwkgICAg
LyogVG8gZW5zdXJlIGFuIEFSUkFZX1RZUEUgaXMgbm90IHBhc3NlZCBhcyBzdWNoLiAgKi8K
KwkgICAgbWVzc2FnZSA9IGdmY19idWlsZF9hZGRyX2V4cHIgKE5VTEwsIG1lc3NhZ2UpOwor
CX0KKworICAgICAgYyA9IGJ1aWxkX29tcF9jbGF1c2UgKGdmY19nZXRfbG9jYXRpb24gKCZ3
aGVyZSksIE9NUF9DTEFVU0VfTUVTU0FHRSk7CisgICAgICBPTVBfQ0xBVVNFX01FU1NBR0Vf
RVhQUiAoYykgPSBtZXNzYWdlOworICAgICAgT01QX0NMQVVTRV9NRVNTQUdFX0xFTiAoYykg
PSBsZW47CisgICAgICBpZiAoY2xhdXNlcy0+c2V2ZXJpdHkgPT0gT01QX1NFVkVSSVRZX1dB
Uk5JTkcpCisJT01QX0NMQVVTRV9NRVNTQUdFX1NFVkVSSVRZX1dBUk4gKGMpID0gMTsKKyAg
ICAgIG9tcF9jbGF1c2VzID0gZ2ZjX3RyYW5zX2FkZF9jbGF1c2UgKGMsIG9tcF9jbGF1c2Vz
KTsKKyAgICB9CisKICAgaWYgKGNsYXVzZXMtPm5vdmFyaWFudHMpCiAgICAgewogICAgICAg
dHJlZSBub3ZhcmlhbnRzX3ZhcjsKQEAgLTU2NzIsMjkgKzU3MDEsMTUgQEAgZ2ZjX3RyYW5z
X29tcF9jbGF1c2VzIChzdG10YmxvY2tfdCAqYmxvY2ssIGdmY19vbXBfY2xhdXNlcyAqY2xh
dXNlcywKIAogICBpZiAoY2xhdXNlcy0+bnVtX3RocmVhZHNfbGlzdCkKICAgICB7Ci0gICAg
ICB0cmVlIG51bV90aHJlYWRzOwotCi0gICAgICBpZiAoY2xhdXNlcy0+bnVtX3RocmVhZHNf
ZGltcykKLQlzb3JyeV9hdCAoZ2ZjX2dldF9sb2NhdGlvbiAoJmNsYXVzZXMtPm51bV90aHJl
YWRzX2xpc3QtPmV4cHItPndoZXJlKSwKLQkJICAiJTxudW1fdGhyZWFkcyU+IHdpdGggJTxk
aW1zJT4gbW9kaWZpZXIiKTsKLSAgICAgIGVsc2UgaWYgKGNsYXVzZXMtPm51bV90aHJlYWRz
X3N0cmljdCkKLQlzb3JyeV9hdCAoZ2ZjX2dldF9sb2NhdGlvbiAoJmNsYXVzZXMtPm51bV90
aHJlYWRzX2xpc3QtPmV4cHItPndoZXJlKSwKLQkJICAiJTxudW1fdGhyZWFkcyU+IHdpdGgg
JTxzdHJpY3QlPiBtb2RpZmllciIpOwotICAgICAgZWxzZSBpZiAoY2xhdXNlcy0+bnVtX3Ro
cmVhZHNfbGlzdC0+bmV4dCkKLQl7Ci0JICBnZmNfZXhwciAqZXhwciA9IGNsYXVzZXMtPm51
bV90aHJlYWRzX2xpc3QtPm5leHQtPmV4cHI7Ci0JICBzb3JyeV9hdCAoZ2ZjX2dldF9sb2Nh
dGlvbiAoJmV4cHItPndoZXJlKSwKLQkJICAgICIlPG51bV90aHJlYWRzJT4gd2l0aCBtb3Jl
IHRoYW4gb25lIGFyZ3VtZW50Iik7Ci0JfQotCi0gICAgICBnZmNfaW5pdF9zZSAoJnNlLCBO
VUxMKTsKLSAgICAgIGdmY19jb252X2V4cHIgKCZzZSwgY2xhdXNlcy0+bnVtX3RocmVhZHNf
bGlzdC0+ZXhwcik7Ci0gICAgICBnZmNfYWRkX2Jsb2NrX3RvX2Jsb2NrIChibG9jaywgJnNl
LnByZSk7Ci0gICAgICBudW1fdGhyZWFkcyA9IGdmY19ldmFsdWF0ZV9ub3cgKHNlLmV4cHIs
IGJsb2NrKTsKLSAgICAgIGdmY19hZGRfYmxvY2tfdG9fYmxvY2sgKGJsb2NrLCAmc2UucG9z
dCk7Ci0KKyAgICAgIHRyZWUgbnVtX3RocmVhZHMgPSBOVUxMX1RSRUU7CisgICAgICBmb3Ig
KGdmY19leHByX2xpc3QgKmVsID0gY2xhdXNlcy0+bnVtX3RocmVhZHNfbGlzdDsgZWw7IGVs
ID0gZWwtPm5leHQpCisJbnVtX3RocmVhZHMgPSB0cmVlX2NvbnMgKE5VTExfVFJFRSwKKwkJ
CQkgZ2ZjX2NvbnZlcnRfZXhwcl90b190cmVlIChibG9jaywgZWwtPmV4cHIpLAorCQkJCSBu
dW1fdGhyZWFkcyk7CiAgICAgICBjID0gYnVpbGRfb21wX2NsYXVzZSAoZ2ZjX2dldF9sb2Nh
dGlvbiAoJndoZXJlKSwgT01QX0NMQVVTRV9OVU1fVEhSRUFEUyk7Ci0gICAgICBPTVBfQ0xB
VVNFX05VTV9USFJFQURTX0VYUFIgKGMpID0gbnVtX3RocmVhZHM7CisgICAgICBPTVBfQ0xB
VVNFX05VTV9USFJFQURTX0VYUFIgKGMpID0gbnJldmVyc2UgKG51bV90aHJlYWRzKTsKKyAg
ICAgIE9NUF9DTEFVU0VfTlVNX1RIUkVBRFNfU1RSSUNUIChjKSA9IGNsYXVzZXMtPm51bV90
aHJlYWRzX3N0cmljdDsKKyAgICAgIE9NUF9DTEFVU0VfTlVNX1RIUkVBRFNfRElNUyAoYykg
PSBjbGF1c2VzLT5udW1fdGhyZWFkc19kaW1zOwogICAgICAgb21wX2NsYXVzZXMgPSBnZmNf
dHJhbnNfYWRkX2NsYXVzZSAoYywgb21wX2NsYXVzZXMpOwogICAgIH0KIApAQCAtNTk5NSwz
MiArNjAxMCwxNSBAQCBnZmNfdHJhbnNfb21wX2NsYXVzZXMgKHN0bXRibG9ja190ICpibG9j
aywgZ2ZjX29tcF9jbGF1c2VzICpjbGF1c2VzLAogCiAgIGlmIChjbGF1c2VzLT5udW1fdGVh
bXNfbGlzdCkKICAgICB7Ci0gICAgICB0cmVlIG51bV90ZWFtc19sb3dlciA9IE5VTExfVFJF
RSwgbnVtX3RlYW1zX3VwcGVyOwotCi0gICAgICBpZiAoY2xhdXNlcy0+bnVtX3RlYW1zX2Rp
bXMpCi0Jc29ycnlfYXQgKGdmY19nZXRfbG9jYXRpb24gKCZjbGF1c2VzLT5udW1fdGVhbXNf
bGlzdC0+ZXhwci0+d2hlcmUpLAotCQkgICAgIiU8bnVtX3RlYW1zJT4gd2l0aCAlPGRpbXMl
PiBtb2RpZmllciIpOwotCi0gICAgICBnZmNfZXhwcl9saXN0ICplbCA9IGNsYXVzZXMtPm51
bV90ZWFtc19saXN0OwotICAgICAgaWYgKGVsLT5uZXh0KQotCXsKLQkgIGdmY19pbml0X3Nl
ICgmc2UsIE5VTEwpOwotCSAgZ2ZjX2NvbnZfZXhwciAoJnNlLCBlbC0+ZXhwcik7Ci0JICBn
ZmNfYWRkX2Jsb2NrX3RvX2Jsb2NrIChibG9jaywgJnNlLnByZSk7Ci0JICBudW1fdGVhbXNf
bG93ZXIgPSBnZmNfZXZhbHVhdGVfbm93IChzZS5leHByLCBibG9jayk7Ci0JICBnZmNfYWRk
X2Jsb2NrX3RvX2Jsb2NrIChibG9jaywgJnNlLnBvc3QpOwotCSAgZWwgPSBlbC0+bmV4dDsK
LQl9Ci0KLSAgICAgIGdmY19pbml0X3NlICgmc2UsIE5VTEwpOwotICAgICAgZ2ZjX2NvbnZf
ZXhwciAoJnNlLCBlbC0+ZXhwcik7Ci0gICAgICBnZmNfYWRkX2Jsb2NrX3RvX2Jsb2NrIChi
bG9jaywgJnNlLnByZSk7Ci0gICAgICBudW1fdGVhbXNfdXBwZXIgPSBnZmNfZXZhbHVhdGVf
bm93IChzZS5leHByLCBibG9jayk7Ci0gICAgICBnZmNfYWRkX2Jsb2NrX3RvX2Jsb2NrIChi
bG9jaywgJnNlLnBvc3QpOwotCisgICAgICB0cmVlIG51bV90ZWFtcyA9IE5VTExfVFJFRTsK
KyAgICAgIGZvciAoZ2ZjX2V4cHJfbGlzdCAqZWwgPSBjbGF1c2VzLT5udW1fdGVhbXNfbGlz
dDsgZWw7IGVsID0gZWwtPm5leHQpCisJbnVtX3RlYW1zID0gdHJlZV9jb25zIChOVUxMX1RS
RUUsCisJCQkgICAgICAgZ2ZjX2NvbnZlcnRfZXhwcl90b190cmVlIChibG9jaywgZWwtPmV4
cHIpLAorCQkJICAgICAgIG51bV90ZWFtcyk7CiAgICAgICBjID0gYnVpbGRfb21wX2NsYXVz
ZSAoZ2ZjX2dldF9sb2NhdGlvbiAoJndoZXJlKSwgT01QX0NMQVVTRV9OVU1fVEVBTVMpOwot
ICAgICAgT01QX0NMQVVTRV9OVU1fVEVBTVNfTE9XRVJfRVhQUiAoYykgPSBudW1fdGVhbXNf
bG93ZXI7Ci0gICAgICBPTVBfQ0xBVVNFX05VTV9URUFNU19VUFBFUl9FWFBSIChjKSA9IG51
bV90ZWFtc191cHBlcjsKKyAgICAgIE9NUF9DTEFVU0VfTlVNX1RFQU1TX0xPV0VSX0VYUFIg
KGMpID0gTlVMTF9UUkVFOworICAgICAgT01QX0NMQVVTRV9OVU1fVEVBTVNfVVBQRVJfRVhQ
UiAoYykgPSBucmV2ZXJzZSAobnVtX3RlYW1zKTsKKyAgICAgIE9NUF9DTEFVU0VfTlVNX1RF
QU1TX0RJTVMgKGMpID0gY2xhdXNlcy0+bnVtX3RlYW1zX2RpbXM7CiAgICAgICBvbXBfY2xh
dXNlcyA9IGdmY190cmFuc19hZGRfY2xhdXNlIChjLCBvbXBfY2xhdXNlcyk7CiAgICAgfQog
CkBAIC02MDQ1LDIyICs2MDQzLDE1IEBAIGdmY190cmFuc19vbXBfY2xhdXNlcyAoc3RtdGJs
b2NrX3QgKmJsb2NrLCBnZmNfb21wX2NsYXVzZXMgKmNsYXVzZXMsCiAKICAgaWYgKGNsYXVz
ZXMtPnRocmVhZF9saW1pdF9saXN0KQogICAgIHsKLSAgICAgIHRyZWUgdGhyZWFkX2xpbWl0
OwotCi0gICAgICBpZiAoY2xhdXNlcy0+dGhyZWFkX2xpbWl0X2RpbXMpCi0Jc29ycnlfYXQg
KGdmY19nZXRfbG9jYXRpb24gKCZjbGF1c2VzLT50aHJlYWRfbGltaXRfbGlzdC0+ZXhwci0+
d2hlcmUpLAotCQkgICAgIiU8dGhyZWFkX2xpbWl0JT4gd2l0aCAlPGRpbXMlPiBtb2RpZmll
ciIpOwotICAgICAgZWxzZSBpZiAoY2xhdXNlcy0+dGhyZWFkX2xpbWl0X3N0cmljdCkKLQlz
b3JyeV9hdCAoZ2ZjX2dldF9sb2NhdGlvbiAoJmNsYXVzZXMtPnRocmVhZF9saW1pdF9saXN0
LT5leHByLT53aGVyZSksCi0JCSAgICAiJTx0aHJlYWRfbGltaXQlPiB3aXRoICU8c3RyaWN0
JT4gbW9kaWZpZXIiKTsKLSAgICAgIGdmY19pbml0X3NlICgmc2UsIE5VTEwpOwotICAgICAg
Z2ZjX2NvbnZfZXhwciAoJnNlLCBjbGF1c2VzLT50aHJlYWRfbGltaXRfbGlzdC0+ZXhwcik7
Ci0gICAgICBnZmNfYWRkX2Jsb2NrX3RvX2Jsb2NrIChibG9jaywgJnNlLnByZSk7Ci0gICAg
ICB0aHJlYWRfbGltaXQgPSBnZmNfZXZhbHVhdGVfbm93IChzZS5leHByLCBibG9jayk7Ci0g
ICAgICBnZmNfYWRkX2Jsb2NrX3RvX2Jsb2NrIChibG9jaywgJnNlLnBvc3QpOwotCisgICAg
ICB0cmVlIHRocmVhZF9saW1pdCA9IE5VTExfVFJFRTsKKyAgICAgIGZvciAoZ2ZjX2V4cHJf
bGlzdCAqZWwgPSBjbGF1c2VzLT50aHJlYWRfbGltaXRfbGlzdDsgZWw7IGVsID0gZWwtPm5l
eHQpCisJdGhyZWFkX2xpbWl0ID0gdHJlZV9jb25zIChOVUxMX1RSRUUsCisJCQkJICBnZmNf
Y29udmVydF9leHByX3RvX3RyZWUgKGJsb2NrLCBlbC0+ZXhwciksCisJCQkJICB0aHJlYWRf
bGltaXQpOwogICAgICAgYyA9IGJ1aWxkX29tcF9jbGF1c2UgKGdmY19nZXRfbG9jYXRpb24g
KCZ3aGVyZSksIE9NUF9DTEFVU0VfVEhSRUFEX0xJTUlUKTsKLSAgICAgIE9NUF9DTEFVU0Vf
VEhSRUFEX0xJTUlUX0VYUFIgKGMpID0gdGhyZWFkX2xpbWl0OworICAgICAgT01QX0NMQVVT
RV9USFJFQURfTElNSVRfRVhQUiAoYykgPSBucmV2ZXJzZSAodGhyZWFkX2xpbWl0KTsKKyAg
ICAgIE9NUF9DTEFVU0VfVEhSRUFEX0xJTUlUX1NUUklDVCAoYykgPSBjbGF1c2VzLT50aHJl
YWRfbGltaXRfc3RyaWN0OworICAgICAgT01QX0NMQVVTRV9USFJFQURfTElNSVRfRElNUyAo
YykgPSBjbGF1c2VzLT50aHJlYWRfbGltaXRfZGltczsKICAgICAgIG9tcF9jbGF1c2VzID0g
Z2ZjX3RyYW5zX2FkZF9jbGF1c2UgKGMsIG9tcF9jbGF1c2VzKTsKICAgICB9CiAKQEAgLTg1
MjcsNiArODUxOCwxMCBAQCBnZmNfc3BsaXRfb21wX2NsYXVzZXMgKGdmY19jb2RlICpjb2Rl
LAogCSAgICA9IGNvZGUtPmV4dC5vbXBfY2xhdXNlcy0+bm93YWl0OwogCSAgY2xhdXNlc2Fb
R0ZDX09NUF9TUExJVF9UQVJHRVRdLmRldmljZV90eXBlCiAJICAgID0gY29kZS0+ZXh0Lm9t
cF9jbGF1c2VzLT5kZXZpY2VfdHlwZTsKKwkgIGNsYXVzZXNhW0dGQ19PTVBfU1BMSVRfVEFS
R0VUXS5tZXNzYWdlCisJICAgID0gY29kZS0+ZXh0Lm9tcF9jbGF1c2VzLT5tZXNzYWdlOwor
CSAgY2xhdXNlc2FbR0ZDX09NUF9TUExJVF9UQVJHRVRdLnNldmVyaXR5CisJICAgID0gY29k
ZS0+ZXh0Lm9tcF9jbGF1c2VzLT5zZXZlcml0eTsKIAl9CiAgICAgICBpZiAobWFzayAmIEdG
Q19PTVBfTUFTS19URUFNUykKIAl7CkBAIC04NTQ3LDYgKzg1NDIsMTEgQEAgZ2ZjX3NwbGl0
X29tcF9jbGF1c2VzIChnZmNfY29kZSAqY29kZSwKIAkgICAgPSBjb2RlLT5leHQub21wX2Ns
YXVzZXMtPmxpc3RzW09NUF9MSVNUX1NIQVJFRF07CiAJICBjbGF1c2VzYVtHRkNfT01QX1NQ
TElUX1RFQU1TXS5kZWZhdWx0X3NoYXJpbmcKIAkgICAgPSBjb2RlLT5leHQub21wX2NsYXVz
ZXMtPmRlZmF1bHRfc2hhcmluZzsKKwkgIC8qIE1lc3NhZ2UgaXMgdXNlZCBvbiB0YXJnZXQs
IHRlYW1zLCBhbmQgcGFyYWxsZWwuICAqLworCSAgY2xhdXNlc2FbR0ZDX09NUF9TUExJVF9U
RUFNU10ubWVzc2FnZQorCSAgICA9IGNvZGUtPmV4dC5vbXBfY2xhdXNlcy0+bWVzc2FnZTsK
KwkgIGNsYXVzZXNhW0dGQ19PTVBfU1BMSVRfVEVBTVNdLnNldmVyaXR5CisJICAgID0gY29k
ZS0+ZXh0Lm9tcF9jbGF1c2VzLT5zZXZlcml0eTsKIAl9CiAgICAgICBpZiAobWFzayAmIEdG
Q19PTVBfTUFTS19ESVNUUklCVVRFKQogCXsKQEAgLTg1ODksNiArODU4OSwxMCBAQCBnZmNf
c3BsaXRfb21wX2NsYXVzZXMgKGdmY19jb2RlICpjb2RlLAogCSAgLyogQW5kIHRoaXMgaXMg
Y29waWVkIHRvIGFsbC4gICovCiAJICBjbGF1c2VzYVtHRkNfT01QX1NQTElUX1BBUkFMTEVM
XS5pZl9leHByCiAJICAgID0gY29kZS0+ZXh0Lm9tcF9jbGF1c2VzLT5pZl9leHByOworCSAg
Y2xhdXNlc2FbR0ZDX09NUF9TUExJVF9QQVJBTExFTF0ubWVzc2FnZQorCSAgICA9IGNvZGUt
PmV4dC5vbXBfY2xhdXNlcy0+bWVzc2FnZTsKKwkgIGNsYXVzZXNhW0dGQ19PTVBfU1BMSVRf
UEFSQUxMRUxdLnNldmVyaXR5CisJICAgID0gY29kZS0+ZXh0Lm9tcF9jbGF1c2VzLT5zZXZl
cml0eTsKIAl9CiAgICAgICBpZiAobWFzayAmIEdGQ19PTVBfTUFTS19NQVNLRUQpCiAJY2xh
dXNlc2FbR0ZDX09NUF9TUExJVF9NQVNLRURdLmZpbHRlciA9IGNvZGUtPmV4dC5vbXBfY2xh
dXNlcy0+ZmlsdGVyOwpkaWZmIC0tZ2l0IGEvZ2NjL2dpbXBsaWZ5LmNjIGIvZ2NjL2dpbXBs
aWZ5LmNjCmluZGV4IDIyM2I1NWI3ZTkzLi5lZDYzN2QyZGU0NiAxMDA2NDQKLS0tIGEvZ2Nj
L2dpbXBsaWZ5LmNjCisrKyBiL2djYy9naW1wbGlmeS5jYwpAQCAtMTQ4MjksNyArMTQ4Mjks
MjMgQEAgZ2ltcGxpZnlfc2Nhbl9vbXBfY2xhdXNlcyAodHJlZSAqbGlzdF9wLCBnaW1wbGVf
c2VxICpwcmVfcCwKIAljYXNlIE9NUF9DTEFVU0VfV09SS0VSOgogCWNhc2UgT01QX0NMQVVT
RV9WRUNUT1I6CiAJICBpZiAoT01QX0NMQVVTRV9PUEVSQU5EIChjLCAwKQotCSAgICAgICYm
ICFpc19naW1wbGVfbWluX2ludmFyaWFudCAoT01QX0NMQVVTRV9PUEVSQU5EIChjLCAwKSkp
CisJICAgICAgJiYgVFJFRV9DT0RFIChPTVBfQ0xBVVNFX09QRVJBTkQgKGMsIDApKSA9PSBU
UkVFX0xJU1QpCisJICAgIHsKKwkgICAgICBmb3IgKHRyZWUgdCA9IE9NUF9DTEFVU0VfT1BF
UkFORCAoYywgMCk7IHQ7IHQgPSBUUkVFX0NIQUlOICh0KSkKKwkJaWYgKCFpc19naW1wbGVf
bWluX2ludmFyaWFudCAoVFJFRV9WQUxVRSAodCkpKQorCQkgIHsKKwkJICAgIGlmIChlcnJv
cl9vcGVyYW5kX3AgKFRSRUVfVkFMVUUgKHQpKSkKKwkJICAgICAgeworCQkJcmVtb3ZlID0g
dHJ1ZTsKKwkJCWJyZWFrOworCQkgICAgICB9CisJCSAgICBUUkVFX1ZBTFVFICh0KQorCQkg
ICAgICA9IGdldF9pbml0aWFsaXplZF90bXBfdmFyIChUUkVFX1ZBTFVFICh0KSwgcHJlX3As
CisJCQkJCQkgTlVMTCwgdHJ1ZSk7CisJCSAgfQorCSAgICB9CisJICBlbHNlIGlmIChPTVBf
Q0xBVVNFX09QRVJBTkQgKGMsIDApCisJCSAgICYmICFpc19naW1wbGVfbWluX2ludmFyaWFu
dCAoT01QX0NMQVVTRV9PUEVSQU5EIChjLCAwKSkpCiAJICAgIHsKIAkgICAgICBpZiAoZXJy
b3Jfb3BlcmFuZF9wIChPTVBfQ0xBVVNFX09QRVJBTkQgKGMsIDApKSkKIAkJewpAQCAtMTQ4
NzcsNiArMTQ4OTMsNyBAQCBnaW1wbGlmeV9zY2FuX29tcF9jbGF1c2VzICh0cmVlICpsaXN0
X3AsIGdpbXBsZV9zZXEgKnByZV9wLAogCWNhc2UgT01QX0NMQVVTRV9TRVE6CiAJY2FzZSBP
TVBfQ0xBVVNFX0lOREVQRU5ERU5UOgogCWNhc2UgT01QX0NMQVVTRV9NRVJHRUFCTEU6CisJ
Y2FzZSBPTVBfQ0xBVVNFX01FU1NBR0U6CiAJY2FzZSBPTVBfQ0xBVVNFX1BST0NfQklORDoK
IAljYXNlIE9NUF9DTEFVU0VfU0FGRUxFTjoKIAljYXNlIE9NUF9DTEFVU0VfU0lNRExFTjoK
QEAgLTE2NDMyLDYgKzE2NDQ5LDcgQEAgZW5kX2FkanVzdF9vbXBfbWFwX2NsYXVzZToKIAlj
YXNlIE9NUF9DTEFVU0VfRVhDTFVTSVZFOgogCWNhc2UgT01QX0NMQVVTRV9VU0VTX0FMTE9D
QVRPUlM6CiAJY2FzZSBPTVBfQ0xBVVNFX0RFVklDRV9UWVBFOgorCWNhc2UgT01QX0NMQVVT
RV9NRVNTQUdFOgogCSAgYnJlYWs7CiAKIAljYXNlIE9NUF9DTEFVU0VfTk9IT1NUOgpkaWZm
IC0tZ2l0IGEvZ2NjL29tcC1leHBhbmQuY2MgYi9nY2Mvb21wLWV4cGFuZC5jYwppbmRleCAw
ZDgwMWUwZDY4YS4uZDZjNDRlYmRiZTIgMTAwNjQ0Ci0tLSBhL2djYy9vbXAtZXhwYW5kLmNj
CisrKyBiL2djYy9vbXAtZXhwYW5kLmNjCkBAIC02NjEsNiArNjYxLDI1IEBAIGV4cGFuZF9w
YXJhbGxlbF9jYWxsIChzdHJ1Y3Qgb21wX3JlZ2lvbiAqcmVnaW9uLCBiYXNpY19ibG9jayBi
YiwKICAgICB7CiAgICAgICB2YWwgPSBPTVBfQ0xBVVNFX05VTV9USFJFQURTX0VYUFIgKGMp
OwogICAgICAgY2xhdXNlX2xvYyA9IE9NUF9DTEFVU0VfTE9DQVRJT04gKGMpOworICAgICAg
aWYgKFRSRUVfQ09ERSAodmFsKSA9PSBUUkVFX0xJU1QpCisJeworCSAgaWYgKE9NUF9DTEFV
U0VfTlVNX1RIUkVBRFNfRElNUyAoYykKKwkgICAgICAmJiAoVFJFRV9DSEFJTiAodmFsKSB8
fCBPTVBfQ0xBVVNFX05VTV9USFJFQURTX1NUUklDVCAoYykpKQorCSAgICAvKiBBY2NlcHQg
J2RpbSgxKSxyZWxheGVkJy4gKi8KKwkgICAgc29ycnlfYXQgKGNsYXVzZV9sb2MsCisJCSAg
ICAgICIlPG51bV90aHJlYWRzJT4gY2xhdXNlIHdpdGggJTxkaW1zJT4gbW9kaWZpZXIiKTsK
KwkgIGVsc2UgaWYgKFRSRUVfQ0hBSU4gKHZhbCkpCisJICAgIHNvcnJ5X2F0IChjbGF1c2Vf
bG9jLAorCQkgICAgICAiJTxudW1fdGhyZWFkcyU+IGNsYXVzZSB3aXRoIG1vcmUgdGhhbiBv
bmUgYXJndW1lbnQiKTsKKwkgIGVsc2UgaWYgKE9NUF9DTEFVU0VfTlVNX1RIUkVBRFNfU1RS
SUNUIChjKSkKKwkgICAgc29ycnlfYXQgKGNsYXVzZV9sb2MsCisJCSAgICAgICIlPG51bV90
aHJlYWRzJT4gY2xhdXNlIHdpdGggJTxzdHJpY3QlPiBtb2RpZmllciIpOworCSAgdmFsID0g
VFJFRV9WQUxVRSAodmFsKTsKKwl9CisgICAgICBlbHNlIGlmIChPTVBfQ0xBVVNFX05VTV9U
SFJFQURTX1NUUklDVCAoYykpCisJc29ycnlfYXQgKGNsYXVzZV9sb2MsCisJCSAgIiU8bnVt
X3RocmVhZHMlPiBjbGF1c2Ugd2l0aCAlPHN0cmljdCU+IG1vZGlmaWVyIik7CisgICAgICAv
KiBGSVhNRTogSGFuZGxlIE9NUF9DTEFVU0VfTUVTU0FHRSAob25seSByZWxldmFudCB3aXRo
ICdzdHJpY3QnKS4gICovCiAgICAgfQogICBlbHNlCiAgICAgY2xhdXNlX2xvYyA9IGdpbXBs
ZV9sb2NhdGlvbiAoZW50cnlfc3RtdCk7CkBAIC05NjksMjAgKzk4OCw1NCBAQCBleHBhbmRf
dGVhbXNfY2FsbCAoYmFzaWNfYmxvY2sgYmIsIGdvbXBfdGVhbXMgKmVudHJ5X3N0bXQpCiB7
CiAgIHRyZWUgY2xhdXNlcyA9IGdpbXBsZV9vbXBfdGVhbXNfY2xhdXNlcyAoZW50cnlfc3Rt
dCk7CiAgIHRyZWUgbnVtX3RlYW1zID0gb21wX2ZpbmRfY2xhdXNlIChjbGF1c2VzLCBPTVBf
Q0xBVVNFX05VTV9URUFNUyk7CisgIHRyZWUgdGhyZWFkX2xpbWl0ID0gb21wX2ZpbmRfY2xh
dXNlIChjbGF1c2VzLCBPTVBfQ0xBVVNFX1RIUkVBRF9MSU1JVCk7CisgIHRyZWUgbWVzc2Fn
ZSA9IG9tcF9maW5kX2NsYXVzZSAoY2xhdXNlcywgT01QX0NMQVVTRV9NRVNTQUdFKTsKKyAg
aWYgKG1lc3NhZ2UKKyAgICAgICYmICgodGhyZWFkX2xpbWl0ICYmIE9NUF9DTEFVU0VfVEhS
RUFEX0xJTUlUX1NUUklDVCAodGhyZWFkX2xpbWl0KSkKKwkgIHx8IChudW1fdGVhbXMgJiYg
KFRSRUVfQ09ERSAobnVtX3RlYW1zKSAhPSBJTlRFR0VSX0NTVAorCQkJICAgIHx8IHRyZWVf
aW50X2NzdF9zZ24gKG51bV90ZWFtcykgPCAwKSkpKQorICAgIHNvcnJ5X2F0IChPTVBfQ0xB
VVNFX0xPQ0FUSU9OIChtZXNzYWdlKSwgIiU8bWVzc2FnZSU+IGNsYXVzZSIpOwogICBpZiAo
bnVtX3RlYW1zID09IE5VTExfVFJFRSkKICAgICBudW1fdGVhbXMgPSBidWlsZF9pbnRfY3N0
ICh1bnNpZ25lZF90eXBlX25vZGUsIDApOwogICBlbHNlCiAgICAgewotICAgICAgbnVtX3Rl
YW1zID0gT01QX0NMQVVTRV9OVU1fVEVBTVNfVVBQRVJfRVhQUiAobnVtX3RlYW1zKTsKLSAg
ICAgIG51bV90ZWFtcyA9IGZvbGRfY29udmVydCAodW5zaWduZWRfdHlwZV9ub2RlLCBudW1f
dGVhbXMpOworICAgICAgdHJlZSBleHByID0gT01QX0NMQVVTRV9OVU1fVEVBTVNfVVBQRVJf
RVhQUiAobnVtX3RlYW1zKTsKKyAgICAgIC8qIEZJWE1FOiBJbXBsZW1lbnQgbG93ZXItYm91
bmQgaGFuZGxpbmcgYXMgd2VsbDsgaG93ZXZlciwgY3VycmVudGx5LAorCSBvbiB0aGUgaG9z
dCB0aGUgdXNlLXNwZWNpZmllZCB2YWx1ZSBpcyBhbHdheXMgdXNlZC4gICovCisgICAgICBp
ZiAoVFJFRV9DT0RFIChleHByKSA9PSBUUkVFX0xJU1QKKwkgICYmIE9NUF9DTEFVU0VfTlVN
X1RFQU1TX0RJTVMgKG51bV90ZWFtcykKKwkgICYmIFRSRUVfQ0hBSU4gKGV4cHIpKQorCXsK
KwkgIHNvcnJ5X2F0IChPTVBfQ0xBVVNFX0xPQ0FUSU9OIChudW1fdGVhbXMpLAorCQkgICAg
IiU8bnVtX3RlYW1zJT4gY2xhdXNlIHdpdGggJTxkaW1zJT4gbW9kaWZpZXIiKTsKKwkgIGV4
cHIgPSBUUkVFX1ZBTFVFIChleHByKTsKKwl9CisgICAgICBlbHNlIGlmIChUUkVFX0NPREUg
KGV4cHIpID09IFRSRUVfTElTVCkKKwlleHByID0gKFRSRUVfQ0hBSU4gKGV4cHIpCisJCT8g
VFJFRV9WQUxVRSAoVFJFRV9DSEFJTiAoZXhwcikpIDogVFJFRV9WQUxVRSAoZXhwcikpOwor
ICAgICAgbnVtX3RlYW1zID0gZm9sZF9jb252ZXJ0ICh1bnNpZ25lZF90eXBlX25vZGUsIGV4
cHIpOwogICAgIH0KLSAgdHJlZSB0aHJlYWRfbGltaXQgPSBvbXBfZmluZF9jbGF1c2UgKGNs
YXVzZXMsIE9NUF9DTEFVU0VfVEhSRUFEX0xJTUlUKTsKICAgaWYgKHRocmVhZF9saW1pdCA9
PSBOVUxMX1RSRUUpCiAgICAgdGhyZWFkX2xpbWl0ID0gYnVpbGRfaW50X2NzdCAodW5zaWdu
ZWRfdHlwZV9ub2RlLCAwKTsKICAgZWxzZQogICAgIHsKLSAgICAgIHRocmVhZF9saW1pdCA9
IE9NUF9DTEFVU0VfVEhSRUFEX0xJTUlUX0VYUFIgKHRocmVhZF9saW1pdCk7Ci0gICAgICB0
aHJlYWRfbGltaXQgPSBmb2xkX2NvbnZlcnQgKHVuc2lnbmVkX3R5cGVfbm9kZSwgdGhyZWFk
X2xpbWl0KTsKKyAgICAgIHRyZWUgZXhwciA9IE9NUF9DTEFVU0VfVEhSRUFEX0xJTUlUX0VY
UFIgKHRocmVhZF9saW1pdCk7CisgICAgICBpZiAoVFJFRV9DT0RFIChleHByKSA9PSBUUkVF
X0xJU1QpCisJeworCSAgaWYgKE9NUF9DTEFVU0VfVEhSRUFEX0xJTUlUX0RJTVMgKHRocmVh
ZF9saW1pdCkKKwkgICAgICAmJiAoVFJFRV9DSEFJTiAoZXhwcikKKwkJICB8fCBPTVBfQ0xB
VVNFX1RIUkVBRF9MSU1JVF9TVFJJQ1QgKHRocmVhZF9saW1pdCkpKQorCSAgICBzb3JyeV9h
dCAoT01QX0NMQVVTRV9MT0NBVElPTiAodGhyZWFkX2xpbWl0KSwKKwkJICAgICAgIiU8dGhy
ZWFkX2xpbWl0JT4gY2xhdXNlIHdpdGggJTxkaW1zJT4gbW9kaWZpZXIiKTsKKwkgIGVsc2Ug
aWYgKE9NUF9DTEFVU0VfVEhSRUFEX0xJTUlUX1NUUklDVCAodGhyZWFkX2xpbWl0KSkKKwkg
ICAgc29ycnlfYXQgKE9NUF9DTEFVU0VfTE9DQVRJT04gKHRocmVhZF9saW1pdCksCisJCSAg
ICAgICIlPHRocmVhZF9saW1pdCU+IGNsYXVzZSB3aXRoICU8c3RyaWN0JT4gbW9kaWZpZXIi
KTsKKwkgIGV4cHIgPSBUUkVFX1ZBTFVFIChleHByKTsKKwl9CisgICAgICBlbHNlIGlmIChP
TVBfQ0xBVVNFX1RIUkVBRF9MSU1JVF9TVFJJQ1QgKHRocmVhZF9saW1pdCkpCisJc29ycnlf
YXQgKE9NUF9DTEFVU0VfTE9DQVRJT04gKHRocmVhZF9saW1pdCksCisJCSAgIiU8dGhyZWFk
X2xpbWl0JT4gY2xhdXNlIHdpdGggJTxzdHJpY3QlPiBtb2RpZmllciIpOworICAgICAgdGhy
ZWFkX2xpbWl0ID0gZm9sZF9jb252ZXJ0ICh1bnNpZ25lZF90eXBlX25vZGUsIGV4cHIpOwog
ICAgIH0KIAogICBnaW1wbGVfc3RtdF9pdGVyYXRvciBnc2kgPSBnc2lfbGFzdF9ub25kZWJ1
Z19iYiAoYmIpOwpAQCAtMTAwMCw3ICsxMDUzLDcgQEAgZXhwYW5kX3RlYW1zX2NhbGwgKGJh
c2ljX2Jsb2NrIGJiLCBnb21wX3RlYW1zICplbnRyeV9zdG10KQogICBhcmdzLT5xdWlja19w
dXNoICh0MSk7CiAgIGFyZ3MtPnF1aWNrX3B1c2ggKG51bV90ZWFtcyk7CiAgIGFyZ3MtPnF1
aWNrX3B1c2ggKHRocmVhZF9saW1pdCk7Ci0gIC8qIEZvciBmdXR1cmUgZXh0ZW5zaWJpbGl0
eS4gICovCisgIC8qIEZvciBmdXR1cmUgZXh0ZW5zaWJpbGl0eTogZmxhZ3MuICAqLwogICBh
cmdzLT5xdWlja19wdXNoIChidWlsZF96ZXJvX2NzdCAodW5zaWduZWRfdHlwZV9ub2RlKSk7
CiAKICAgdCA9IGJ1aWxkX2NhbGxfZXhwcl9sb2NfdmVjIChVTktOT1dOX0xPQ0FUSU9OLApA
QCAtOTkzNSwyMiArOTk4OCw2NCBAQCBnZXRfdGFyZ2V0X2FyZ3VtZW50cyAoZ2ltcGxlX3N0
bXRfaXRlcmF0b3IgKmdzaSwgZ29tcF90YXJnZXQgKnRndF9zdG10KQogewogICBhdXRvX3Zl
YyA8dHJlZSwgNj4gYXJnczsKICAgdHJlZSBjbGF1c2VzID0gZ2ltcGxlX29tcF90YXJnZXRf
Y2xhdXNlcyAodGd0X3N0bXQpOwotICB0cmVlIHQsIGMgPSBvbXBfZmluZF9jbGF1c2UgKGNs
YXVzZXMsIE9NUF9DTEFVU0VfTlVNX1RFQU1TKTsKLSAgaWYgKGMpCi0gICAgdCA9IE9NUF9D
TEFVU0VfTlVNX1RFQU1TX1VQUEVSX0VYUFIgKGMpOworICB0cmVlIG51bV90ZWFtcyA9IG9t
cF9maW5kX2NsYXVzZSAoY2xhdXNlcywgT01QX0NMQVVTRV9OVU1fVEVBTVMpOworICB0cmVl
IHRocmVhZF9saW1pdCA9IG9tcF9maW5kX2NsYXVzZSAoY2xhdXNlcywgT01QX0NMQVVTRV9U
SFJFQURfTElNSVQpOworICB0cmVlIG1lc3NhZ2UgPSBvbXBfZmluZF9jbGF1c2UgKGNsYXVz
ZXMsIE9NUF9DTEFVU0VfTUVTU0FHRSk7CisgIGlmIChtZXNzYWdlKQorICAgIC8qIEZJWE1F
OiBlcnJvciB0ZXJtaW5hdGlvbiBjaGVja2luZyBhbHNvIHJlcXVpcmVzIHRvIGNoZWNrCisg
ICAgICAgT01QX0NMQVVTRV9OVU1fVEVBTVNfTE9XRVJfRVhQUiBub3Qgb25seSBVUFBFUiwg
aS5lLiBpdAorICAgICAgIG5lZWRzIHRvIGJlIHBhc3NlZCB0byB0aGUgcnVudGltZSEgTm90
ZSB0aGF0IGJvdGggdGFyZ2V0IGFuZAorICAgICAgIGEgbmVzdGVkIHRlYW1zIGNhbiBoYXZl
IGEgJ21lc3NhZ2UnIGNsYXVzZSAtIGFuZCBib3RoIHRha2UgYQorICAgICAgIHRocmVhZF9s
aW1pdCBjbGF1c2UuICAqLworICAgIHNvcnJ5X2F0IChPTVBfQ0xBVVNFX0xPQ0FUSU9OICht
ZXNzYWdlKSwgIiU8bWVzc2FnZSU+IGNsYXVzZSIpOworICBpZiAobnVtX3RlYW1zKQorICAg
IHsKKyAgICAgIHRyZWUgZXhwciA9IE9NUF9DTEFVU0VfTlVNX1RFQU1TX1VQUEVSX0VYUFIg
KG51bV90ZWFtcyk7CisgICAgICAvKiBGSVhNRTogVXBkYXRlIG9tcC1sb3cuY2MncyBsb3dl
cl9vbXBfdGVhbXMgd2hlbiBpbXBsZW1lbnRpbmcuICAqLworICAgICAgaWYgKFRSRUVfQ09E
RSAoZXhwcikgPT0gVFJFRV9MSVNUCisJICAmJiBPTVBfQ0xBVVNFX05VTV9URUFNU19ESU1T
IChudW1fdGVhbXMpCisJICAmJiBUUkVFX0NIQUlOIChleHByKSkKKwl7CisJICBzb3JyeV9h
dCAoT01QX0NMQVVTRV9MT0NBVElPTiAobnVtX3RlYW1zKSwKKwkJICAgICIlPG51bV90ZWFt
cyU+IGNsYXVzZSB3aXRoICU8ZGltcyU+IG1vZGlmaWVyIik7CisJICBudW1fdGVhbXMgPSBU
UkVFX1ZBTFVFIChleHByKTsKKwl9CisgICAgICBlbHNlIGlmIChUUkVFX0NPREUgKGV4cHIp
ID09IFRSRUVfTElTVCkKKwludW1fdGVhbXMgPSAoVFJFRV9DSEFJTiAoZXhwcikKKwkJICAg
ICA/IFRSRUVfVkFMVUUgKFRSRUVfQ0hBSU4gKGV4cHIpKSA6IFRSRUVfVkFMVUUgKGV4cHIp
KTsKKyAgICAgIGVsc2UKKwludW1fdGVhbXMgPSBleHByOworICAgIH0KICAgZWxzZQotICAg
IHQgPSBpbnRlZ2VyX21pbnVzX29uZV9ub2RlOworICAgIG51bV90ZWFtcyA9IGludGVnZXJf
bWludXNfb25lX25vZGU7CiAgIHB1c2hfdGFyZ2V0X2FyZ3VtZW50X2FjY29yZGluZ190b192
YWx1ZSAoZ3NpLCBHT01QX1RBUkdFVF9BUkdfREVWSUNFX0FMTCwKLQkJCQkJICAgR09NUF9U
QVJHRVRfQVJHX05VTV9URUFNUywgdCwgJmFyZ3MpOwotCi0gIGMgPSBvbXBfZmluZF9jbGF1
c2UgKGNsYXVzZXMsIE9NUF9DTEFVU0VfVEhSRUFEX0xJTUlUKTsKLSAgaWYgKGMpCi0gICAg
dCA9IE9NUF9DTEFVU0VfVEhSRUFEX0xJTUlUX0VYUFIgKGMpOworCQkJCQkgICBHT01QX1RB
UkdFVF9BUkdfTlVNX1RFQU1TLAorCQkJCQkgICBudW1fdGVhbXMsICZhcmdzKTsKKyAgaWYg
KHRocmVhZF9saW1pdCkKKyAgICB7CisgICAgICB0cmVlIGV4cHIgPSBPTVBfQ0xBVVNFX1RI
UkVBRF9MSU1JVF9FWFBSICh0aHJlYWRfbGltaXQpOworICAgICAgaWYgKFRSRUVfQ09ERSAo
ZXhwcikgPT0gVFJFRV9MSVNUKQorCXsKKwkgIGlmIChPTVBfQ0xBVVNFX1RIUkVBRF9MSU1J
VF9ESU1TICh0aHJlYWRfbGltaXQpCisJICAgICAgJiYgKFRSRUVfQ0hBSU4gKGV4cHIpCisJ
CSAgfHwgT01QX0NMQVVTRV9USFJFQURfTElNSVRfU1RSSUNUICh0aHJlYWRfbGltaXQpKSkK
KwkgICAgc29ycnlfYXQgKE9NUF9DTEFVU0VfTE9DQVRJT04gKHRocmVhZF9saW1pdCksCisJ
CSAgICAgICIlPHRocmVhZF9saW1pdCU+IGNsYXVzZSB3aXRoICU8ZGltcyU+IG1vZGlmaWVy
Iik7CisJICBlbHNlIGlmIChPTVBfQ0xBVVNFX1RIUkVBRF9MSU1JVF9TVFJJQ1QgKHRocmVh
ZF9saW1pdCkpCisJICAgIHNvcnJ5X2F0IChPTVBfQ0xBVVNFX0xPQ0FUSU9OICh0aHJlYWRf
bGltaXQpLAorCQkgICAgICAiJTx0aHJlYWRfbGltaXQlPiBjbGF1c2Ugd2l0aCAlPHN0cmlj
dCU+IG1vZGlmaWVyIik7CisJICBleHByID0gVFJFRV9WQUxVRSAoZXhwcik7CisJfQorICAg
ICAgZWxzZSBpZiAoT01QX0NMQVVTRV9USFJFQURfTElNSVRfU1RSSUNUICh0aHJlYWRfbGlt
aXQpKQorCXNvcnJ5X2F0IChPTVBfQ0xBVVNFX0xPQ0FUSU9OICh0aHJlYWRfbGltaXQpLAor
CQkgICIlPHRocmVhZF9saW1pdCU+IGNsYXVzZSB3aXRoICU8c3RyaWN0JT4gbW9kaWZpZXIi
KTsKKyAgICAgIHRocmVhZF9saW1pdCA9IGV4cHI7CisgICAgfQogICBlbHNlCi0gICAgdCA9
IGludGVnZXJfbWludXNfb25lX25vZGU7CisgICAgdGhyZWFkX2xpbWl0ID0gaW50ZWdlcl9t
aW51c19vbmVfbm9kZTsKICAgcHVzaF90YXJnZXRfYXJndW1lbnRfYWNjb3JkaW5nX3RvX3Zh
bHVlIChnc2ksIEdPTVBfVEFSR0VUX0FSR19ERVZJQ0VfQUxMLAotCQkJCQkgICBHT01QX1RB
UkdFVF9BUkdfVEhSRUFEX0xJTUlULCB0LAotCQkJCQkgICAmYXJncyk7CisJCQkJCSAgIEdP
TVBfVEFSR0VUX0FSR19USFJFQURfTElNSVQsCisJCQkJCSAgIHRocmVhZF9saW1pdCwgJmFy
Z3MpOwogCiAgIC8qIFByb2R1Y2UgbW9yZSwgcGVyaGFwcyBkZXZpY2Ugc3BlY2lmaWMsIGFy
Z3VtZW50cyBoZXJlLiAgKi8KIApkaWZmIC0tZ2l0IGEvZ2NjL29tcC1sb3cuY2MgYi9nY2Mv
b21wLWxvdy5jYwppbmRleCAxOWVjMzA0ZGM4MS4uNTY3ZjBmODJmMmMgMTAwNjQ0Ci0tLSBh
L2djYy9vbXAtbG93LmNjCisrKyBiL2djYy9vbXAtbG93LmNjCkBAIC0xODU4LDYgKzE4NTgs
NyBAQCBzY2FuX3NoYXJpbmdfY2xhdXNlcyAodHJlZSBjbGF1c2VzLCBvbXBfY29udGV4dCAq
Y3R4KQogCWNhc2UgT01QX0NMQVVTRV9JTklUOgogCWNhc2UgT01QX0NMQVVTRV9VU0U6CiAJ
Y2FzZSBPTVBfQ0xBVVNFX0RFU1RST1k6CisJY2FzZSBPTVBfQ0xBVVNFX01FU1NBR0U6CiAJ
ICBicmVhazsKIAogCWNhc2UgT01QX0NMQVVTRV9fQ0FDSEVfOgpAQCAtMjA2MSw2ICsyMDYy
LDcgQEAgc2Nhbl9zaGFyaW5nX2NsYXVzZXMgKHRyZWUgY2xhdXNlcywgb21wX2NvbnRleHQg
KmN0eCkKIAljYXNlIE9NUF9DTEFVU0VfREVTVFJPWToKIAljYXNlIE9NUF9DTEFVU0VfREVW
SUNFX1RZUEU6CiAJY2FzZSBPTVBfQ0xBVVNFX1VTRVNfQUxMT0NBVE9SUzoKKwljYXNlIE9N
UF9DTEFVU0VfTUVTU0FHRToKIAkgIGJyZWFrOwogCiAJY2FzZSBPTVBfQ0xBVVNFX19DQUNI
RV86CkBAIC0xNTA1MSw2ICsxNTA1MywxNCBAQCBsb3dlcl9vbXBfdGVhbXMgKGdpbXBsZV9z
dG10X2l0ZXJhdG9yICpnc2lfcCwgb21wX2NvbnRleHQgKmN0eCkKIAkJCSBmYl9ydmFsdWUp
OwogCX0KICAgICAgIG51bV90ZWFtcyA9IE9NUF9DTEFVU0VfTlVNX1RFQU1TX1VQUEVSX0VY
UFIgKG51bV90ZWFtcyk7CisgICAgICAvLyBGSVhNRTogSGFuZGxlIGRpbSh4KSwgY2YuIG9t
cC1leHBhbmQuY2MncyBnZXRfdGFyZ2V0X2FyZ3VtZW50cy4gICovCisgICAgICBpZiAoVFJF
RV9DT0RFIChudW1fdGVhbXMpID09IFRSRUVfTElTVCAmJiBUUkVFX0NIQUlOIChudW1fdGVh
bXMpKQorCXsKKwkgIG51bV90ZWFtc19sb3dlciA9IFRSRUVfVkFMVUUgKG51bV90ZWFtcyk7
CisJICBudW1fdGVhbXMgPSBUUkVFX1ZBTFVFIChUUkVFX0NIQUlOIChudW1fdGVhbXMpKTsK
Kwl9CisgICAgICBlbHNlIGlmIChUUkVFX0NPREUgKG51bV90ZWFtcykgPT0gVFJFRV9MSVNU
KQorCW51bV90ZWFtcyA9IFRSRUVfVkFMVUUgKG51bV90ZWFtcyk7CiAgICAgICBudW1fdGVh
bXMgPSBmb2xkX2NvbnZlcnQgKHVuc2lnbmVkX3R5cGVfbm9kZSwgbnVtX3RlYW1zKTsKICAg
ICAgIGdpbXBsaWZ5X2V4cHIgKCZudW1fdGVhbXMsICZiaW5kX2JvZHksIE5VTEwsIGlzX2dp
bXBsZV92YWwsIGZiX3J2YWx1ZSk7CiAgICAgfQpAQCAtMTUwNjMsNiArMTUwNzMsOSBAQCBs
b3dlcl9vbXBfdGVhbXMgKGdpbXBsZV9zdG10X2l0ZXJhdG9yICpnc2lfcCwgb21wX2NvbnRl
eHQgKmN0eCkKICAgZWxzZQogICAgIHsKICAgICAgIHRocmVhZF9saW1pdCA9IE9NUF9DTEFV
U0VfVEhSRUFEX0xJTUlUX0VYUFIgKHRocmVhZF9saW1pdCk7CisgICAgICAvLyBGSVhNRTog
SGFuZGxlIGRpbSh4KSwgY2YuIG9tcC1leHBhbmQuY2MncyBnZXRfdGFyZ2V0X2FyZ3VtZW50
cy4gICovCisgICAgICBpZiAoVFJFRV9DT0RFICh0aHJlYWRfbGltaXQpID09IFRSRUVfTElT
VCkKKwl0aHJlYWRfbGltaXQgPSBUUkVFX1ZBTFVFICh0aHJlYWRfbGltaXQpOwogICAgICAg
dGhyZWFkX2xpbWl0ID0gZm9sZF9jb252ZXJ0ICh1bnNpZ25lZF90eXBlX25vZGUsIHRocmVh
ZF9saW1pdCk7CiAgICAgICBnaW1wbGlmeV9leHByICgmdGhyZWFkX2xpbWl0LCAmYmluZF9i
b2R5LCBOVUxMLCBpc19naW1wbGVfdmFsLAogCQkgICAgIGZiX3J2YWx1ZSk7CmRpZmYgLS1n
aXQgYS9nY2MvdGVzdHN1aXRlL2dmb3J0cmFuLmRnL2dvbXAvc3BhdGlhbC1kaW1lbnNpb25z
LTEuZjkwIGIvZ2NjL3Rlc3RzdWl0ZS9nZm9ydHJhbi5kZy9nb21wL3NwYXRpYWwtZGltZW5z
aW9ucy0xLmY5MAppbmRleCA5NDM0OTE4MGY1ZS4uNmUwMDBjYjQ5YzQgMTAwNjQ0Ci0tLSBh
L2djYy90ZXN0c3VpdGUvZ2ZvcnRyYW4uZGcvZ29tcC9zcGF0aWFsLWRpbWVuc2lvbnMtMS5m
OTAKKysrIGIvZ2NjL3Rlc3RzdWl0ZS9nZm9ydHJhbi5kZy9nb21wL3NwYXRpYWwtZGltZW5z
aW9ucy0xLmY5MApAQCAtMSwxMTYgKzEsMTgxIEBACiAhIHsgZGctZG8gY29tcGlsZSB9Ci0h
IHsgZGctYWRkaXRpb25hbC1vcHRpb25zICItZmR1bXAtdHJlZS1vcmlnaW5hbCIgfQotCi1z
dWJyb3V0aW5lIG9uZV9hCi0hJG9tcCB0ZWFtcyBudW1fdGVhbXMoZGltcygzKSA6IDEsMiwz
KSAmICAgICAgICAgICAgISB7IGRnLW1lc3NhZ2UgInNvcnJ5LCB1bmltcGxlbWVudGVkOiAn
bnVtX3RlYW1zJyB3aXRoICdkaW1zJyBtb2RpZmllciIgfQotISRvbXAmICAgICAgdGhyZWFk
X2xpbWl0ICggZGltcyAoIDQgKSA6IDEsIDIsIDMsIDQpICEgeyBkZy1tZXNzYWdlICJzb3Jy
eSwgdW5pbXBsZW1lbnRlZDogJ3RocmVhZF9saW1pdCcgd2l0aCAnZGltcycgbW9kaWZpZXIi
IH0KLSEkb21wICAgcGFyYWxsZWwgbnVtX3RocmVhZHMoZGltcygzKTogMSwyLDMpICAgICAg
ICAhIHsgZGctbWVzc2FnZSAic29ycnksIHVuaW1wbGVtZW50ZWQ6ICdudW1fdGhyZWFkcycg
d2l0aCAnZGltcycgbW9kaWZpZXIiIH0KKyEgeyBkZy1hZGRpdGlvbmFsLW9wdGlvbnMgIi1P
MCAtZmR1bXAtdHJlZS1naW1wbGUgLWZkdW1wLXRyZWUtb21wbG93ZXIgLWZkdW1wLXRyZWUt
b21wZXhwIiB9CisKK3N1YnJvdXRpbmUgb25lX2EoeCkKK2ltcGxpY2l0IG5vbmUKK2ludGVn
ZXIgOjogeAorISRvbXAgdGVhbXMgbnVtX3RlYW1zKGRpbXMoMykgOiAxLDIsMykgJgorISRv
bXAmICAgICAgdGhyZWFkX2xpbWl0ICggZGltcyAoIDQgKSA6IDEsIDIsIDMsIDQpCishIHsg
ZGctbWVzc2FnZSAic29ycnksIHVuaW1wbGVtZW50ZWQ6ICd0aHJlYWRfbGltaXQnIGNsYXVz
ZSB3aXRoICdkaW1zJyBtb2RpZmllciIgIiIgeyB0YXJnZXQgKi0qLSogfSAuLTEgfQorISB7
IGRnLW1lc3NhZ2UgInNvcnJ5LCB1bmltcGxlbWVudGVkOiAnbnVtX3RlYW1zJyBjbGF1c2Ug
d2l0aCAnZGltcycgbW9kaWZpZXIiICIiIHsgdGFyZ2V0ICotKi0qIH0gLi0yIH0KKyEkb21w
ICAgcGFyYWxsZWwgbnVtX3RocmVhZHMoZGltcygzKTogMSwyLDMpICAgICAgICAhIHsgZGct
bWVzc2FnZSAic29ycnksIHVuaW1wbGVtZW50ZWQ6ICdudW1fdGhyZWFkcycgY2xhdXNlIHdp
dGggJ2RpbXMnIG1vZGlmaWVyIiB9CisgIHggPSAxCiAhJG9tcCAgIGVuZCBwYXJhbGxlbAog
ISRvbXAgZW5kIHRlYW1zCiBlbmQKIAotc3Vicm91dGluZSBvbmVfYgotISRvbXAgdGVhbXMg
bnVtX3RlYW1zKGRpbXMoMykgOiAxLDIsMykgJiAgICAgICAgICAgICAgICAgICAgICAhIHsg
ZGctbWVzc2FnZSAic29ycnksIHVuaW1wbGVtZW50ZWQ6ICdudW1fdGVhbXMnIHdpdGggJ2Rp
bXMnIG1vZGlmaWVyIiB9Ci0hJG9tcCYgICAgICB0aHJlYWRfbGltaXQgKCBkaW1zICggNCAp
ICwgcmVsYXhlZCA6IDEsIDIsIDMsIDQpICEgeyBkZy1tZXNzYWdlICJzb3JyeSwgdW5pbXBs
ZW1lbnRlZDogJ3RocmVhZF9saW1pdCcgd2l0aCAnZGltcycgbW9kaWZpZXIiIH0KLSEkb21w
ICAgcGFyYWxsZWwgbnVtX3RocmVhZHMoZGltcygzKSAsIHJlbGF4ZWQgOiAxLDIsMykgICAg
ICAgISB7IGRnLW1lc3NhZ2UgInNvcnJ5LCB1bmltcGxlbWVudGVkOiAnbnVtX3RocmVhZHMn
IHdpdGggJ2RpbXMnIG1vZGlmaWVyIiB9CishIEFzIHRoZSBlcnJvciBpcyBwcmludGVkIGlu
ICdvbXAtZXhwYW5kLmNjJywgaXQgaXMgc2hvd24gb25seSBvbmNlIGFuZCBub3QgZm9yIGFs
bCBvZiB0aGUgZm9sbG93aW5nCishIGNhc2VzLiBUaGlzIGFsc28gYWZmZWN0cyBvbXAtbG93
ZXIuIEhlbmNlOgorISB7IGRnLWZpbmFsIHsgc2Nhbi10cmVlLWR1bXAtdGltZXMgIiNwcmFn
bWEgb21wIHRlYW1zIiAxICJvbXBsb3dlciIgfSB9CishIHsgZGctZmluYWwgeyBzY2FuLXRy
ZWUtZHVtcC10aW1lcyAiI3ByYWdtYSBvbXAgcGFyYWxsZWwiIDEgIm9tcGxvd2VyIiB9IH0K
KyEgeyBkZy1maW5hbCB7IHNjYW4tdHJlZS1kdW1wLXRpbWVzICJfX2J1aWx0aW5fR09NUF90
ZWFtc19yZWcgIiAxICJvbXBleHAiIH0gfQorISB7IGRnLWZpbmFsIHsgc2Nhbi10cmVlLWR1
bXAtdGltZXMgIl9fYnVpbHRpbl9HT01QX3BhcmFsbGVsICIgMSAib21wZXhwIiB9IH0KKwor
c3Vicm91dGluZSBvbmVfYih4KQoraW1wbGljaXQgbm9uZQoraW50ZWdlciA6OiB4CishJG9t
cCB0ZWFtcyBudW1fdGVhbXMoZGltcygzKSA6IDEsMiwzKSAmCishJG9tcCYgICAgICB0aHJl
YWRfbGltaXQgKCBkaW1zICggNCApICwgcmVsYXhlZCA6IDEsIDIsIDMsIDQpCishJG9tcCAg
IHBhcmFsbGVsIG51bV90aHJlYWRzKGRpbXMoMykgLCByZWxheGVkIDogMSwyLDMpCisgIHgg
PSAxCiAhJG9tcCAgIGVuZCBwYXJhbGxlbAogISRvbXAgZW5kIHRlYW1zCiBlbmQKIAotc3Vi
cm91dGluZSBvbmVfYwotISRvbXAgdGVhbXMgbnVtX3RlYW1zKGRpbXMoMykgOiAxLDIsMykg
JiAgICAgICAgICAgICAgICAgICAgICEgeyBkZy1tZXNzYWdlICJzb3JyeSwgdW5pbXBsZW1l
bnRlZDogJ251bV90ZWFtcycgd2l0aCAnZGltcycgbW9kaWZpZXIiIH0KLSEkb21wJiAgICAg
IHRocmVhZF9saW1pdCAoIGRpbXMgKCA0ICkgLCBzdHJpY3QgOiAxLCAyLCAzLCA0KSAhIHsg
ZGctbWVzc2FnZSAic29ycnksIHVuaW1wbGVtZW50ZWQ6ICd0aHJlYWRfbGltaXQnIHdpdGgg
J2RpbXMnIG1vZGlmaWVyIiB9Ci0hJG9tcCAgIHBhcmFsbGVsIG51bV90aHJlYWRzKGRpbXMo
MykgLCBzdHJpY3QgOiAxLDIsMykgICAgICAgISB7IGRnLW1lc3NhZ2UgInNvcnJ5LCB1bmlt
cGxlbWVudGVkOiAnbnVtX3RocmVhZHMnIHdpdGggJ2RpbXMnIG1vZGlmaWVyIiB9CitzdWJy
b3V0aW5lIG9uZV9jKHgpCitpbXBsaWNpdCBub25lCitpbnRlZ2VyIDo6IHgKKyEkb21wIHRl
YW1zIG51bV90ZWFtcyhkaW1zKDMpIDogMTEsMjIsMzMpICYKKyEkb21wJiAgICAgIHRocmVh
ZF9saW1pdCAoIGRpbXMgKCA0ICkgLCBzdHJpY3QgOiAxMSwgMjIsIDMzLCA0NCkKKyEkb21w
ICAgcGFyYWxsZWwgbnVtX3RocmVhZHMoZGltcygzKSAsIHN0cmljdCA6IDExLDIyLDMzKQor
ICB4ID0gMQogISRvbXAgICBlbmQgcGFyYWxsZWwKICEkb21wIGVuZCB0ZWFtcwogZW5kCiAK
LXN1YnJvdXRpbmUgb25lX2QKLSEkb21wIHRlYW1zIG51bV90ZWFtcyAoIGRpbXMoMykgOiAx
LDIsMykgJiAgICAgICAgICAgICAgICAgICAgICEgeyBkZy1tZXNzYWdlICJzb3JyeSwgdW5p
bXBsZW1lbnRlZDogJ251bV90ZWFtcycgd2l0aCAnZGltcycgbW9kaWZpZXIiIH0KLSEkb21w
JiAgICAgIHRocmVhZF9saW1pdCAoIHJlbGF4ZWQgLCAgZGltcyAoIDQgKSA6IDEsIDIsIDMs
IDQpICEgeyBkZy1tZXNzYWdlICJzb3JyeSwgdW5pbXBsZW1lbnRlZDogJ3RocmVhZF9saW1p
dCcgd2l0aCAnZGltcycgbW9kaWZpZXIiIH0KLSEkb21wICAgcGFyYWxsZWwgbnVtX3RocmVh
ZHMoIHJlbGF4ZWQgLCBkaW1zKDMpIDogMSwyLDMpICAgICAgICEgeyBkZy1tZXNzYWdlICJz
b3JyeSwgdW5pbXBsZW1lbnRlZDogJ251bV90aHJlYWRzJyB3aXRoICdkaW1zJyBtb2RpZmll
ciIgfQorc3Vicm91dGluZSBvbmVfZCh4KQoraW1wbGljaXQgbm9uZQoraW50ZWdlciA6OiB4
CishJG9tcCB0ZWFtcyBudW1fdGVhbXMgKCBkaW1zKDMpIDogMSwyLDMpICYKKyEkb21wJiAg
ICAgIHRocmVhZF9saW1pdCAoIHJlbGF4ZWQgLCAgZGltcyAoIDQgKSA6IDExMSwgMjIyLCAz
MzMsIDQ0NCkKKyEkb21wICAgcGFyYWxsZWwgbnVtX3RocmVhZHMoIHJlbGF4ZWQgLCBkaW1z
KDMpIDogMTExLDIyMiwzMzMpCisgIHggPSAxCiAhJG9tcCAgIGVuZCBwYXJhbGxlbAogISRv
bXAgZW5kIHRlYW1zCiBlbmQKIAotc3Vicm91dGluZSBvbmVfZQotISRvbXAgdGVhbXMgbnVt
X3RlYW1zICggZGltcygzKSA6IDEsMiwzKSAmICAgICAgICAgICAgICAgICAgICAhIHsgZGct
bWVzc2FnZSAic29ycnksIHVuaW1wbGVtZW50ZWQ6ICdudW1fdGVhbXMnIHdpdGggJ2RpbXMn
IG1vZGlmaWVyIiB9Ci0hJG9tcCYgICAgICB0aHJlYWRfbGltaXQgKCBzdHJpY3QgLCAgZGlt
cyAoIDQgKSA6IDEsIDIsIDMsIDQpICEgeyBkZy1tZXNzYWdlICJzb3JyeSwgdW5pbXBsZW1l
bnRlZDogJ3RocmVhZF9saW1pdCcgd2l0aCAnZGltcycgbW9kaWZpZXIiIH0KLSEkb21wICAg
cGFyYWxsZWwgbnVtX3RocmVhZHMoIHN0cmljdCAsIGRpbXMoMykgOiAxLDIsMykgICAgICAg
ISB7IGRnLW1lc3NhZ2UgInNvcnJ5LCB1bmltcGxlbWVudGVkOiAnbnVtX3RocmVhZHMnIHdp
dGggJ2RpbXMnIG1vZGlmaWVyIiB9CitzdWJyb3V0aW5lIG9uZV9lKHgpCitpbXBsaWNpdCBu
b25lCitpbnRlZ2VyIDo6IHgKKyEkb21wIHRlYW1zIG51bV90ZWFtcyAoIGRpbXMoMykgOiAx
LDIsMykgJgorISRvbXAmICAgICAgdGhyZWFkX2xpbWl0ICggc3RyaWN0ICwgIGRpbXMgKCA0
ICkgOiAxMTExLCAyMjIyLCAzMzMzLCA0NDQ0KQorISRvbXAgICBwYXJhbGxlbCBudW1fdGhy
ZWFkcyggc3RyaWN0ICwgZGltcygzKSA6IDExMTEsMjIyMiwzMzMzKQorICB4ID0gMQogISRv
bXAgICBlbmQgcGFyYWxsZWwKICEkb21wIGVuZCB0ZWFtcwogZW5kCiAKIAotc3Vicm91dGlu
ZSB0d28KLSEkb21wIHRlYW1zIHRocmVhZF9saW1pdCAoc3RyaWN0IDogNCkgICAgICAgICAg
ISB7IGRnLW1lc3NhZ2UgInNvcnJ5LCB1bmltcGxlbWVudGVkOiAndGhyZWFkX2xpbWl0JyB3
aXRoICdzdHJpY3QnIG1vZGlmaWVyIiB9Ci0hJG9tcCAgIHBhcmFsbGVsIG51bV90aHJlYWRz
KHN0cmljdCA6IDIpICAgICAgICEgeyBkZy1tZXNzYWdlICJzb3JyeSwgdW5pbXBsZW1lbnRl
ZDogJ251bV90aHJlYWRzJyB3aXRoICdzdHJpY3QnIG1vZGlmaWVyIiB9CitzdWJyb3V0aW5l
IHR3byh4KQoraW1wbGljaXQgbm9uZQoraW50ZWdlciA6OiB4CishJG9tcCB0ZWFtcyB0aHJl
YWRfbGltaXQgKHN0cmljdCA6IDQpCishJG9tcCAgIHBhcmFsbGVsIG51bV90aHJlYWRzKHN0
cmljdCA6IDIpCisgIHggPSAxCiAhJG9tcCAgIGVuZCBwYXJhbGxlbAogISRvbXAgZW5kIHRl
YW1zCiBlbmQKIAotc3Vicm91dGluZSB6ZXJvCi0hJG9tcCB0ZWFtcyBudW1fdGVhbXMoMTIz
NCkgdGhyZWFkX2xpbWl0ICggMjM0NSkgICEgT0sKLSEkb21wICAgcGFyYWxsZWwgbnVtX3Ro
cmVhZHMoIDM0NTYpICAgICAgICAgICAgISBPSworc3Vicm91dGluZSB6ZXJvKHgpCitpbXBs
aWNpdCBub25lCitpbnRlZ2VyIDo6IHgKKyEkb21wIHRlYW1zIG51bV90ZWFtcygxMjM0KSB0
aHJlYWRfbGltaXQgKCAyMzQ1KSAgISBPSyAtIG9sZCBjb2RlCishJG9tcCAgIHBhcmFsbGVs
IG51bV90aHJlYWRzKCAzNDU2KSAgICAgICAgICAgICAgICEgT0sgLSBvbGQgY29kZQorICB4
ID0gMQogISRvbXAgICBlbmQgcGFyYWxsZWwKICEkb21wIGVuZCB0ZWFtcwogCiAhJG9tcCB0
ZWFtcyBudW1fdGVhbXMoMTIzOjQ1NikKKyAgeCA9IDEKICEkb21wIGVuZCB0ZWFtcwogZW5k
CiAKLXN1YnJvdXRpbmUgdGhyZWUKLSEkb21wIHRlYW1zIG51bV90ZWFtcyg0NTY3KSB0aHJl
YWRfbGltaXQgKHJlbGF4ZWQgOiA1Njc4KSAgISBPSwotISRvbXAgICBwYXJhbGxlbCBudW1f
dGhyZWFkcyhyZWxheGVkIDogNjc4OSkgICAgICAgICAgICAhIE9LCitzdWJyb3V0aW5lIHRo
cmVlKHgpCitpbXBsaWNpdCBub25lCitpbnRlZ2VyIDo6IHgKKyEkb21wIHRlYW1zIG51bV90
ZWFtcyg0NTY3KSB0aHJlYWRfbGltaXQgKHJlbGF4ZWQgOiA1Njc4KSAgISBPSyAtIG9sZCBj
b2RlICsgJ3JlbGF4ZWQnCishJG9tcCAgIHBhcmFsbGVsIG51bV90aHJlYWRzKHJlbGF4ZWQg
OiA2Nzg5KSAgICAgICAgICAgICAgICEgT0sgLSBvbGQgY29kZSArICdyZWxheGVkJworICB4
ID0gMQogISRvbXAgICBlbmQgcGFyYWxsZWwKICEkb21wIGVuZCB0ZWFtcwogZW5kCiAKLXN1
YnJvdXRpbmUgZm91cgotISRvbXAgcGFyYWxsZWwgbnVtX3RocmVhZHMoMSAsIDIgLCAzICkg
ICEgeyBkZy1tZXNzYWdlICJzb3JyeSwgdW5pbXBsZW1lbnRlZDogJ251bV90aHJlYWRzJyB3
aXRoIG1vcmUgdGhhbiBvbmUgYXJndW1lbnQiIH0KK3N1YnJvdXRpbmUgZm91cih4KQoraW1w
bGljaXQgbm9uZQoraW50ZWdlciA6OiB4CishJG9tcCBwYXJhbGxlbCBudW1fdGhyZWFkcygx
ICwgMiAsIDMgKQorICB4ID0gMQogISRvbXAgZW5kIHBhcmFsbGVsCiBlbmQKIAotc3Vicm91
dGluZSBmaXZlCi0hJG9tcCBwYXJhbGxlbCBudW1fdGhyZWFkcyhyZWxheGVkIDogMSwyLDMp
ICAhIHsgZGctbWVzc2FnZSAic29ycnksIHVuaW1wbGVtZW50ZWQ6ICdudW1fdGhyZWFkcycg
d2l0aCBtb3JlIHRoYW4gb25lIGFyZ3VtZW50IiB9CitzdWJyb3V0aW5lIGZpdmUoeCkKK2lt
cGxpY2l0IG5vbmUKK2ludGVnZXIgOjogeAorISRvbXAgcGFyYWxsZWwgbnVtX3RocmVhZHMo
cmVsYXhlZCA6IDExLDIyLDMzMykKKyAgeCA9IDEKICEkb21wIGVuZCBwYXJhbGxlbAogZW5k
CiAKLXN1YnJvdXRpbmUgc2l4Ci0hJG9tcCBwYXJhbGxlbCBudW1fdGhyZWFkcyhzdHJpY3Qg
OiAxLDIsMykgICEgeyBkZy1tZXNzYWdlICJzb3JyeSwgdW5pbXBsZW1lbnRlZDogJ251bV90
aHJlYWRzJyB3aXRoICdzdHJpY3QnIG1vZGlmaWVyIiB9CitzdWJyb3V0aW5lIHNpeCh4KQor
aW1wbGljaXQgbm9uZQoraW50ZWdlciA6OiB4CishJG9tcCBwYXJhbGxlbCBudW1fdGhyZWFk
cyhzdHJpY3QgOiAxMTEsMjIyLDMzMykKKyAgeCA9IDEKICEkb21wIGVuZCBwYXJhbGxlbAog
ZW5kCiAKIAotc3Vicm91dGluZSBzZXZlbgorc3Vicm91dGluZSBzZXZlbih4KQoraW1wbGlj
aXQgbm9uZQoraW50ZWdlciA6OiB4CiAgIGludGVnZXIgOjogc3RhdGljLCByZWxheGVkLCBk
aW1zKDIpCi0gICEkb21wIHRlYW1zIG51bV90ZWFtcyhzdGF0aWMpIHRocmVhZF9saW1pdCAo
c3RhdGljKSAgISBPSworICAhJG9tcCB0ZWFtcyBudW1fdGVhbXMoc3RhdGljKSB0aHJlYWRf
bGltaXQgKHN0YXRpYykgICEgT0sgLSBvbGQgY29kZSAodXNpbmcgdmFyaWFibGUgbmFtZSB0
aGF0IGxvb2tzIGxpa2UgYSBtb2RpZmllciBuYW1lKQogICAhJG9tcCAgIHBhcmFsbGVsIG51
bV90aHJlYWRzKHN0YXRpYykgICAgICAgICAgICAgICAgICEgT0sKKyAgICB4ID0gMQogICAh
JG9tcCAgIGVuZCBwYXJhbGxlbAogICAhJG9tcCBlbmQgdGVhbXMKIAogICAhJG9tcCB0ZWFt
cyBudW1fdGVhbXMocmVsYXhlZCkgdGhyZWFkX2xpbWl0IChyZWxheGVkKSAgISBPSwogICAh
JG9tcCAgIHBhcmFsbGVsIG51bV90aHJlYWRzKHJlbGF4ZWQpICAgICAgICAgICAgICAgICAg
ISBPSworICAgIHggPSAxCiAgICEkb21wICAgZW5kIHBhcmFsbGVsCiAgICEkb21wIGVuZCB0
ZWFtcwogCiAgICEkb21wIHRlYW1zIG51bV90ZWFtcyhkaW1zKDIpKSB0aHJlYWRfbGltaXQg
KGRpbXMoMikpICAhIE9LCiAgICEkb21wICAgcGFyYWxsZWwgbnVtX3RocmVhZHMoZGltcygy
KSkgICAgICAgICAgICAgICAgICAhIE9LCisgICAgeCA9IDEKICAgISRvbXAgICBlbmQgcGFy
YWxsZWwKICAgISRvbXAgZW5kIHRlYW1zCiAKIGVuZCBzdWJyb3V0aW5lCiAKLSEgQ2hlY2sg
dGhhdCB0aGUgdHJlZSBpcyBjb3JyZWN0bHkgZ2VuZXJhdGVkOgotCi0hIHsgZGctZmluYWwg
eyBzY2FuLXRyZWUtZHVtcC10aW1lcyAiI3ByYWdtYSBvbXAgdGVhbXMgbnVtX3RlYW1zXFwo
MTIzNFxcKSB0aHJlYWRfbGltaXRcXCgyMzQ1XFwpIiAxICJvcmlnaW5hbCIgfSB9Ci0hIHsg
ZGctZmluYWwgeyBzY2FuLXRyZWUtZHVtcC10aW1lcyAiI3ByYWdtYSBvbXAgcGFyYWxsZWwg
bnVtX3RocmVhZHNcXCgzNDU2XFwpIiAxICJvcmlnaW5hbCIgfSB9Ci0hIHsgZGctZmluYWwg
eyBzY2FuLXRyZWUtZHVtcC10aW1lcyAiI3ByYWdtYSBvbXAgdGVhbXMgbnVtX3RlYW1zXFwo
NDU2N1xcKSB0aHJlYWRfbGltaXRcXCg1Njc4XFwpIiAxICJvcmlnaW5hbCIgfSB9Ci0hIHsg
ZGctZmluYWwgeyBzY2FuLXRyZWUtZHVtcC10aW1lcyAiI3ByYWdtYSBvbXAgcGFyYWxsZWwg
bnVtX3RocmVhZHNcXCg2Nzg5XFwpIiAxICJvcmlnaW5hbCIgfSB9Ci0hIHsgZGctZmluYWwg
eyBzY2FuLXRyZWUtZHVtcC10aW1lcyAiI3ByYWdtYSBvbXAgdGVhbXMgbnVtX3RlYW1zXFwo
MTIzOjQ1NlxcKSIgMSAib3JpZ2luYWwiIH0gfQotCi0hIHsgZGctZmluYWwgeyBzY2FuLXRy
ZWUtZHVtcC10aW1lcyAiRFxcLlxbMC05XF0rID0gc3RhdGljOyIgMyAib3JpZ2luYWwiIH0g
fQotISB7IGRnLWZpbmFsIHsgc2Nhbi10cmVlLWR1bXAtdGltZXMgIkRcXC5cWzAtOVxdKyA9
IHJlbGF4ZWQ7IiAzICJvcmlnaW5hbCIgfSB9Ci0hIHsgZGctZmluYWwgeyBzY2FuLXRyZWUt
ZHVtcC10aW1lcyAiRFxcLlxbMC05XF0rID0gZGltc1xcXFsxXFxcXTsiIDMgIm9yaWdpbmFs
IiB9IH0KLSEgeyBkZy1maW5hbCB7IHNjYW4tdHJlZS1kdW1wLXRpbWVzICIjcHJhZ21hIG9t
cCB0ZWFtcyBudW1fdGVhbXNcXChEXFwuXFswLTlcXStcXCkgdGhyZWFkX2xpbWl0XFwoRFxc
LlxbMC05XF0rXFwpIiAzICJvcmlnaW5hbCIgfSB9Ci0hIHsgZGctZmluYWwgeyBzY2FuLXRy
ZWUtZHVtcC10aW1lcyAiI3ByYWdtYSBvbXAgcGFyYWxsZWwgbnVtX3RocmVhZHNcXChEXFwu
XFswLTlcXStcXCkiIDMgIm9yaWdpbmFsIiB9IH0KKyEgQ2hlY2sgdGhhdCB0aGUgdHJlZSBp
cyBjb3JyZWN0bHkgZ2VuZXJhdGVkIChnaW1wbGUgdHJlZSkKKworISB7IGRnLWZpbmFsIHsg
c2Nhbi10cmVlLWR1bXAtdGltZXMgIiNwcmFnbWEgb21wIHRlYW1zIG51bV90ZWFtc1xcKGRp
bXNcXChcXCk6MSwgMiwgM1xcKSB0aHJlYWRfbGltaXRcXChzdHJpY3QsZGltc1xcKFxcKTox
LCAyLCAzLCA0XFwpIHNoYXJlZFxcKHhcXCkiIDEgImdpbXBsZSIgfSB9CishIHsgZGctZmlu
YWwgeyBzY2FuLXRyZWUtZHVtcC10aW1lcyAiI3ByYWdtYSBvbXAgcGFyYWxsZWwgbnVtX3Ro
cmVhZHNcXChzdHJpY3QsZGltc1xcKFxcKToxLCAyLCAzXFwpIHNoYXJlZFxcKHhcXCkiIDEg
ImdpbXBsZSIgfSB9CishIHsgZGctZmluYWwgeyBzY2FuLXRyZWUtZHVtcC10aW1lcyAiI3By
YWdtYSBvbXAgdGVhbXMgbnVtX3RlYW1zXFwoZGltc1xcKFxcKToxLCAyLCAzXFwpIHRocmVh
ZF9saW1pdFxcKGRpbXNcXChcXCk6MSwgMiwgMywgNFxcKSBzaGFyZWRcXCh4XFwpIiAxICJn
aW1wbGUiIH0gfQorISB7IGRnLWZpbmFsIHsgc2Nhbi10cmVlLWR1bXAtdGltZXMgIiNwcmFn
bWEgb21wIHBhcmFsbGVsIG51bV90aHJlYWRzXFwoZGltc1xcKFxcKToxLCAyLCAzXFwpIHNo
YXJlZFxcKHhcXCkiIDEgImdpbXBsZSIgfSB9CishIHsgZGctZmluYWwgeyBzY2FuLXRyZWUt
ZHVtcC10aW1lcyAiI3ByYWdtYSBvbXAgdGVhbXMgbnVtX3RlYW1zXFwoZGltc1xcKFxcKTox
MSwgMjIsIDMzXFwpIHRocmVhZF9saW1pdFxcKHN0cmljdCxkaW1zXFwoXFwpOjExLCAyMiwg
MzMsIDQ0XFwpIHNoYXJlZFxcKHhcXCkiIDEgImdpbXBsZSIgfSB9CishIHsgZGctZmluYWwg
eyBzY2FuLXRyZWUtZHVtcC10aW1lcyAiI3ByYWdtYSBvbXAgcGFyYWxsZWwgbnVtX3RocmVh
ZHNcXChzdHJpY3QsZGltc1xcKFxcKToxMSwgMjIsIDMzXFwpIHNoYXJlZFxcKHhcXCkiIDEg
ImdpbXBsZSIgfSB9CishIHsgZGctZmluYWwgeyBzY2FuLXRyZWUtZHVtcC10aW1lcyAiI3By
YWdtYSBvbXAgdGVhbXMgbnVtX3RlYW1zXFwoZGltc1xcKFxcKToxLCAyLCAzXFwpIHRocmVh
ZF9saW1pdFxcKGRpbXNcXChcXCk6MTExLCAyMjIsIDMzMywgNDQ0XFwpIHNoYXJlZFxcKHhc
XCkiIDEgImdpbXBsZSIgfSB9CishIHsgZGctZmluYWwgeyBzY2FuLXRyZWUtZHVtcC10aW1l
cyAiI3ByYWdtYSBvbXAgcGFyYWxsZWwgbnVtX3RocmVhZHNcXChkaW1zXFwoXFwpOjExMSwg
MjIyLCAzMzNcXCkgc2hhcmVkXFwoeFxcKSIgMSAiZ2ltcGxlIiB9IH0KKyEgeyBkZy1maW5h
bCB7IHNjYW4tdHJlZS1kdW1wLXRpbWVzICIjcHJhZ21hIG9tcCB0ZWFtcyBudW1fdGVhbXNc
XChkaW1zXFwoXFwpOjEsIDIsIDNcXCkgdGhyZWFkX2xpbWl0XFwoc3RyaWN0LGRpbXNcXChc
XCk6MTExMSwgMjIyMiwgMzMzMywgNDQ0NFxcKSBzaGFyZWRcXCh4XFwpIiAxICJnaW1wbGUi
IH0gfQorISB7IGRnLWZpbmFsIHsgc2Nhbi10cmVlLWR1bXAtdGltZXMgIiNwcmFnbWEgb21w
IHBhcmFsbGVsIG51bV90aHJlYWRzXFwoc3RyaWN0LGRpbXNcXChcXCk6MTExMSwgMjIyMiwg
MzMzM1xcKSBzaGFyZWRcXCh4XFwpIiAxICJnaW1wbGUiIH0gfQorISB7IGRnLWZpbmFsIHsg
c2Nhbi10cmVlLWR1bXAtdGltZXMgIiNwcmFnbWEgb21wIHRlYW1zIHRocmVhZF9saW1pdFxc
KHN0cmljdDo0XFwpIHNoYXJlZFxcKHhcXCkiIDEgImdpbXBsZSIgfSB9CishIHsgZGctZmlu
YWwgeyBzY2FuLXRyZWUtZHVtcC10aW1lcyAiI3ByYWdtYSBvbXAgcGFyYWxsZWwgbnVtX3Ro
cmVhZHNcXChzdHJpY3Q6MlxcKSBzaGFyZWRcXCh4XFwpIiAxICJnaW1wbGUiIH0gfQorISB7
IGRnLWZpbmFsIHsgc2Nhbi10cmVlLWR1bXAtdGltZXMgIiNwcmFnbWEgb21wIHRlYW1zIG51
bV90ZWFtc1xcKDEyMzRcXCkgdGhyZWFkX2xpbWl0XFwoMjM0NVxcKSBzaGFyZWRcXCh4XFwp
IiAxICJnaW1wbGUiIH0gfQorISB7IGRnLWZpbmFsIHsgc2Nhbi10cmVlLWR1bXAtdGltZXMg
IiNwcmFnbWEgb21wIHBhcmFsbGVsIG51bV90aHJlYWRzXFwoMzQ1NlxcKSBzaGFyZWRcXCh4
XFwpIiAxICJnaW1wbGUiIH0gfQorISB7IGRnLWZpbmFsIHsgc2Nhbi10cmVlLWR1bXAtdGlt
ZXMgIiNwcmFnbWEgb21wIHRlYW1zIG51bV90ZWFtc1xcKDEyMywgNDU2XFwpIHNoYXJlZFxc
KHhcXCkiIDEgImdpbXBsZSIgfSB9CishIHsgZGctZmluYWwgeyBzY2FuLXRyZWUtZHVtcC10
aW1lcyAiI3ByYWdtYSBvbXAgdGVhbXMgbnVtX3RlYW1zXFwoNDU2N1xcKSB0aHJlYWRfbGlt
aXRcXCg1Njc4XFwpIHNoYXJlZFxcKHhcXCkiIDEgImdpbXBsZSIgfSB9CishIHsgZGctZmlu
YWwgeyBzY2FuLXRyZWUtZHVtcC10aW1lcyAiI3ByYWdtYSBvbXAgcGFyYWxsZWwgbnVtX3Ro
cmVhZHNcXCg2Nzg5XFwpIHNoYXJlZFxcKHhcXCkiIDEgImdpbXBsZSIgfSB9CishIHsgZGct
ZmluYWwgeyBzY2FuLXRyZWUtZHVtcC10aW1lcyAiI3ByYWdtYSBvbXAgcGFyYWxsZWwgbnVt
X3RocmVhZHNcXCgxLCAyLCAzXFwpIHNoYXJlZFxcKHhcXCkiIDEgImdpbXBsZSIgfSB9Cish
IHsgZGctZmluYWwgeyBzY2FuLXRyZWUtZHVtcC10aW1lcyAiI3ByYWdtYSBvbXAgcGFyYWxs
ZWwgbnVtX3RocmVhZHNcXCgxMSwgMjIsIDMzM1xcKSBzaGFyZWRcXCh4XFwpIiAxICJnaW1w
bGUiIH0gfQorISB7IGRnLWZpbmFsIHsgc2Nhbi10cmVlLWR1bXAtdGltZXMgIiNwcmFnbWEg
b21wIHBhcmFsbGVsIG51bV90aHJlYWRzXFwoc3RyaWN0OjExMSwgMjIyLCAzMzNcXCkgc2hh
cmVkXFwoeFxcKSIgMSAiZ2ltcGxlIiB9IH0KKworISB7IGRnLWZpbmFsIHsgc2Nhbi10cmVl
LWR1bXAtdGltZXMgIkRcXC5cWzAtOVxdKyA9IHN0YXRpYzsiIDMgImdpbXBsZSIgfSB9Cish
IHsgZGctZmluYWwgeyBzY2FuLXRyZWUtZHVtcC10aW1lcyAiRFxcLlxbMC05XF0rID0gcmVs
YXhlZDsiIDMgImdpbXBsZSIgfSB9CishIHsgZGctZmluYWwgeyBzY2FuLXRyZWUtZHVtcC10
aW1lcyAiRFxcLlxbMC05XF0rID0gZGltc1xcXFsxXFxcXTsiIDMgImdpbXBsZSIgfSB9Cish
IHsgZGctZmluYWwgeyBzY2FuLXRyZWUtZHVtcC10aW1lcyAiI3ByYWdtYSBvbXAgdGVhbXMg
bnVtX3RlYW1zXFwoX1xbMC05XF0rXFwpIHRocmVhZF9saW1pdFxcKF9cWzAtOVxdK1xcKSBz
aGFyZWRcXChzdGF0aWNcXCkgc2hhcmVkXFwoeFxcKSIgMSAiZ2ltcGxlIiB9IH0KKyEgeyBk
Zy1maW5hbCB7IHNjYW4tdHJlZS1kdW1wLXRpbWVzICIjcHJhZ21hIG9tcCB0ZWFtcyBudW1f
dGVhbXNcXChfXFswLTlcXStcXCkgdGhyZWFkX2xpbWl0XFwoX1xbMC05XF0rXFwpIHNoYXJl
ZFxcKHJlbGF4ZWRcXCkgc2hhcmVkXFwoeFxcKSIgMSAiZ2ltcGxlIiB9IH0KKyEgeyBkZy1m
aW5hbCB7IHNjYW4tdHJlZS1kdW1wLXRpbWVzICIjcHJhZ21hIG9tcCB0ZWFtcyBudW1fdGVh
bXNcXChfXFswLTlcXStcXCkgdGhyZWFkX2xpbWl0XFwoX1xbMC05XF0rXFwpIHNoYXJlZFxc
KGRpbXNcXCkgc2hhcmVkXFwoeFxcKSIgMSAiZ2ltcGxlIiB9IH0KKyEgeyBkZy1maW5hbCB7
IHNjYW4tdHJlZS1kdW1wLXRpbWVzICIjcHJhZ21hIG9tcCBwYXJhbGxlbCBudW1fdGhyZWFk
c1xcKERcXC5cWzAtOVxdK1xcKSBzaGFyZWRcXCh4XFwpIiAzICJnaW1wbGUiIH0gfQpkaWZm
IC0tZ2l0IGEvZ2NjL3Rlc3RzdWl0ZS9nZm9ydHJhbi5kZy9nb21wL3NwYXRpYWwtZGltZW5z
aW9ucy0yLmY5MCBiL2djYy90ZXN0c3VpdGUvZ2ZvcnRyYW4uZGcvZ29tcC9zcGF0aWFsLWRp
bWVuc2lvbnMtMi5mOTAKaW5kZXggZGI1NzBkZjg2ZjkuLjBiYWZhMDYxMGFiIDEwMDY0NAot
LS0gYS9nY2MvdGVzdHN1aXRlL2dmb3J0cmFuLmRnL2dvbXAvc3BhdGlhbC1kaW1lbnNpb25z
LTIuZjkwCisrKyBiL2djYy90ZXN0c3VpdGUvZ2ZvcnRyYW4uZGcvZ29tcC9zcGF0aWFsLWRp
bWVuc2lvbnMtMi5mOTAKQEAgLTEsNSArMSw1IEBACiAhIHsgZGctZG8gY29tcGlsZSB9Ci0h
IHsgZGctYWRkaXRpb25hbC1vcHRpb25zICItZmR1bXAtdHJlZS1vcmlnaW5hbCIgfQorISB7
IGRnLWFkZGl0aW9uYWwtb3B0aW9ucyAiLWZkdW1wLXRyZWUtb21wbG93ZXIgLWZkdW1wLXRy
ZWUtb21wZXhwIiB9CiAKICEgVGhpcyB0ZXN0Y2FzZSBpcyBhbWJpZ291cyBpbiBGb3J0cmFu
CiAhIGNmLiBPcGVuTVAgU3BlYyBJc3N1ZXMgNDk5OApAQCAtMTMsMTAgKzEzLDEyIEBACiBz
dWJyb3V0aW5lIHN1YgogICBpbnRlZ2VyLCBwYXJhbWV0ZXIgOjogZGltcygyKSA9IFsxMSwy
Ml0KICEuLi4KLSAgISRvbXAgdGVhbXMgIG51bV90ZWFtcyggZGltcygxKSA6IDI1NiApICAh
IHsgZGctbWVzc2FnZSAic29ycnksIHVuaW1wbGVtZW50ZWQ6ICdudW1fdGVhbXMnIHdpdGgg
J2RpbXMnIG1vZGlmaWVyIiB9CisgICEkb21wIHRlYW1zICBudW1fdGVhbXMoIGRpbXMoMSkg
OiAyNTYgKQogICAhJG9tcCBlbmQgdGVhbXMKIGVuZAogCi0hIC4uLiBoZW5jZTogJ251bV90
ZWFtcygyNTYpJyBhbmQgbm90ICdudW1fdGVhbXMoMTE6MjU2KScKKyEgLi4uIGhlbmNlOiAn
bnVtX3RlYW1zKGRpbXMoKToyNTYpJyBhbmQgbm90ICdudW1fdGVhbXMoMTE6MjU2KScKKyEg
cmVnYXJkZWQgYXMgaWRlbmljYWwgdG8gbnVtX3RlYW1zKDI1NikgICh1bmRpbWVuc2lvbmFs
IGNhc2UpCiAKLSEgeyBkZy1maW5hbCB7IHNjYW4tdHJlZS1kdW1wICIjcHJhZ21hIG9tcCB0
ZWFtcyBudW1fdGVhbXNcXCgyNTZcXCkiICJvcmlnaW5hbCIgfSB9CishIHsgZGctZmluYWwg
eyBzY2FuLXRyZWUtZHVtcCAiI3ByYWdtYSBvbXAgdGVhbXMgbnVtX3RlYW1zXFwoZGltc1xc
KFxcKToyNTZcXCkiICJvbXBsb3dlciIgfSB9CishIHsgZGctZmluYWwgeyBzY2FuLXRyZWUt
ZHVtcCAiX19idWlsdGluX0dPTVBfdGVhbXNfcmVnIFxcKHN1Yl8uX29tcF9mbi4wLCAwQiwg
MjU2LCAwLCAwXFwpOyIgIm9tcGV4cCIgfSB9CmRpZmYgLS1naXQgYS9nY2MvdGVzdHN1aXRl
L2dmb3J0cmFuLmRnL2dvbXAvc3BhdGlhbC1kaW1lbnNpb25zLTMuZjkwIGIvZ2NjL3Rlc3Rz
dWl0ZS9nZm9ydHJhbi5kZy9nb21wL3NwYXRpYWwtZGltZW5zaW9ucy0zLmY5MAppbmRleCAy
MmI5ZjIzZjY0MC4uMzcyOTI0ZDU1ZGEgMTAwNjQ0Ci0tLSBhL2djYy90ZXN0c3VpdGUvZ2Zv
cnRyYW4uZGcvZ29tcC9zcGF0aWFsLWRpbWVuc2lvbnMtMy5mOTAKKysrIGIvZ2NjL3Rlc3Rz
dWl0ZS9nZm9ydHJhbi5kZy9nb21wL3NwYXRpYWwtZGltZW5zaW9ucy0zLmY5MApAQCAtOTAs
MjIgKzkwLDIyIEBAIHN1YnJvdXRpbmUgdGhyZWUKICAgISRvbXAgdGVhbXMgbnVtX3RlYW1z
KCAgISB7IGRnLWVycm9yICJFeHBlY3RlZCBlaXRoZXIgJ1xcXFtsb3dlci1leHByIDogXFxc
XSB1cHBlci1leHByJyBvciAnZGltc1xcKE5cXCk6IGV4cHItbGlzdCciIH0KICAgYmxvY2s7
IGVuZCBibG9jawogCi0gICEkb21wIHRlYW1zIG51bV90ZWFtcyggZGltcyAhIHsgZGctZXJy
b3IgIkZhaWxlZCB0byBtYXRjaCBjbGF1c2UiIH0KKyAgISRvbXAgdGVhbXMgbnVtX3RlYW1z
KCBkaW1zICEgeyBkZy1lcnJvciAiRXhwZWN0ZWQgZWl0aGVyICdcXFxbbG93ZXItZXhwciA6
IFxcXF0gdXBwZXItZXhwcicgb3IgJ2RpbXNcXChOXFwpOiBleHByLWxpc3QnIGF0IC4xLiIg
fQogICBibG9jazsgZW5kIGJsb2NrCiAKLSAgISRvbXAgdGVhbXMgbnVtX3RlYW1zKCBkaW1z
KDEpICEgeyBkZy1lcnJvciAiSW52YWxpZCBjaGFyYWN0ZXIgaW4gbmFtZSIgfQorICAhJG9t
cCB0ZWFtcyBudW1fdGVhbXMoIGRpbXMoMSkgISB7IGRnLWVycm9yICJFeHBlY3RlZCBlaXRo
ZXIgJ1xcXFtsb3dlci1leHByIDogXFxcXSB1cHBlci1leHByJyBvciAnZGltc1xcKE5cXCk6
IGV4cHItbGlzdCciIH0KICAgYmxvY2s7IGVuZCBibG9jawogCiAgICEkb21wIHRlYW1zIG51
bV90ZWFtcyggZGltcygxKSA6ICEgeyBkZy1lcnJvciAiRXhwZWN0ZWQgZWl0aGVyICdcXFxb
bG93ZXItZXhwciA6IFxcXF0gdXBwZXItZXhwcicgb3IgJ2RpbXNcXChOXFwpOiBleHByLWxp
c3QnIiB9CiAgIGJsb2NrOyBlbmQgYmxvY2sKIAotICAhJG9tcCB0ZWFtcyBudW1fdGVhbXMo
IGRpbXMoMSkgOiAxICEgeyBkZy1lcnJvciAiU3ludGF4IGVycm9yIGluIE9wZW5NUCBleHBy
ZXNzaW9uIiB9CisgICEkb21wIHRlYW1zIG51bV90ZWFtcyggZGltcygxKSA6IDEgISB7IGRn
LWVycm9yICJFeHBlY3RlZCBlaXRoZXIgJ1xcXFtsb3dlci1leHByIDogXFxcXSB1cHBlci1l
eHByJyBvciAnZGltc1xcKE5cXCk6IGV4cHItbGlzdCciIH0KICAgYmxvY2s7IGVuZCBibG9j
awogCi0gICEkb21wIHRlYW1zIG51bV90ZWFtcyggNSA6ICEgeyBkZy1lcnJvciAiSW52YWxp
ZCBjaGFyYWN0ZXIgaW4gbmFtZSIgfQorICAhJG9tcCB0ZWFtcyBudW1fdGVhbXMoIDUgOiAh
IHsgZGctZXJyb3IgIkV4cGVjdGVkIGVpdGhlciAnXFxcW2xvd2VyLWV4cHIgOiBcXFxdIHVw
cGVyLWV4cHInIG9yICdkaW1zXFwoTlxcKTogZXhwci1saXN0JyIgfQogICBibG9jazsgZW5k
IGJsb2NrCiAKLSAgISRvbXAgdGVhbXMgbnVtX3RlYW1zKCA1IDogNSAhIHsgZGctZXJyb3Ig
IkZhaWxlZCB0byBtYXRjaCBjbGF1c2UiIH0KKyAgISRvbXAgdGVhbXMgbnVtX3RlYW1zKCA1
IDogNSAhIHsgZGctZXJyb3IgIkV4cGVjdGVkIGVpdGhlciAnXFxcW2xvd2VyLWV4cHIgOiBc
XFxdIHVwcGVyLWV4cHInIG9yICdkaW1zXFwoTlxcKTogZXhwci1saXN0JyBhdCAuMS4iIH0K
ICAgYmxvY2s7IGVuZCBibG9jawogZW5kCiAKQEAgLTE2OCw3ICsxNjgsNyBAQCBzdWJyb3V0
aW5lIGZpdmUKIGVuZAogCiBzdWJyb3V0aW5lIHNpeAotICAhJG9tcCB0ZWFtcyBudW1fdGVh
bXMgKGRpbXMoMSksIGRpbXMoMSkgOiAxKSAhIHsgZGctZXJyb3IgIkludmFsaWQgY2hhcmFj
dGVyIGluIG5hbWUiIH0KKyAgISRvbXAgdGVhbXMgbnVtX3RlYW1zIChkaW1zKDEpLCBkaW1z
KDEpIDogMSkgISB7IGRnLWVycm9yICJFeHBlY3RlZCBlaXRoZXIgJ1xcXFtsb3dlci1leHBy
IDogXFxcXSB1cHBlci1leHByJyBvciAnZGltc1xcKE5cXCk6IGV4cHItbGlzdCciIH0KICAg
YmxvY2s7IGVuZCBibG9jawogCiAKQEAgLTI0MSw3ICsyNDEsNyBAQCBzdWJyb3V0aW5lIHNp
eAogZW5kIHN1YnJvdXRpbmUKIAogc3Vicm91dGluZSBzZXZlbgotICAhJG9tcCB0ZWFtcyBu
dW1fdGVhbXMgKDIsMikgICEgeyBkZy1lcnJvciAiRmFpbGVkIHRvIG1hdGNoIGNsYXVzZSIg
fQorICAhJG9tcCB0ZWFtcyBudW1fdGVhbXMgKDIsMikgICEgeyBkZy1lcnJvciAiRXhwZWN0
ZWQgZWl0aGVyICdcXFxbbG93ZXItZXhwciA6IFxcXF0gdXBwZXItZXhwcicgb3IgJ2RpbXNc
XChOXFwpOiBleHByLWxpc3QnIiB9CiAgIGJsb2NrOyBlbmQgYmxvY2sKIAogICAhJG9tcCB0
ZWFtcyB0aHJlYWRfbGltaXQgKDIsMikgICEgeyBkZy1lcnJvciAiV2l0aG91dCB0aGUgRElN
IG1vZGlmaWVyLCBvbmx5IGEgc2luZ2xlIGludGVnZXIgZXhwcmVzc2lvbiBtYXkgYmUgc3Bl
Y2lmaWVkIiB9CkBAIC0yNDksNCArMjQ5LDEwIEBAIHN1YnJvdXRpbmUgc2V2ZW4KIAogICAh
JG9tcCBwYXJhbGxlbCBudW1fdGhyZWFkcyAoMiwyKSAgISBPSwogICBibG9jazsgZW5kIGJs
b2NrCisKKyAgISRvbXAgdGVhbXMgbnVtX3RlYW1zKDM5ICEgeyBkZy1lcnJvciAiRXhwZWN0
ZWQgZWl0aGVyICdcXFxbbG93ZXItZXhwciA6IFxcXF0gdXBwZXItZXhwcicgb3IgJ2RpbXNc
XChOXFwpOiBleHByLWxpc3QnIGF0IC4xLiIgfQorICBibG9jazsgZW5kIGJsb2NrCisgCisg
ICEkb21wIHRlYW1zIG51bV90ZWFtcyhzdHJpY3QgOiA0IDogNSApICAhIHsgZGctZXJyb3Ig
IkV4cGVjdGVkIGVpdGhlciAnXFxcW2xvd2VyLWV4cHIgOiBcXFxdIHVwcGVyLWV4cHInIG9y
ICdkaW1zXFwoTlxcKTogZXhwci1saXN0JyBhdCAuMS4iIH0KKyAgYmxvY2s7IGVuZCBibG9j
awogZW5kCmRpZmYgLS1naXQgYS9nY2MvdGVzdHN1aXRlL2dmb3J0cmFuLmRnL2dvbXAvc3Bh
dGlhbC1kaW1lbnNpb25zLTQuZjkwIGIvZ2NjL3Rlc3RzdWl0ZS9nZm9ydHJhbi5kZy9nb21w
L3NwYXRpYWwtZGltZW5zaW9ucy00LmY5MApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAw
MDAwMDAwMDAwMC4uOGY1NzQ3NDA0NjIKLS0tIC9kZXYvbnVsbAorKysgYi9nY2MvdGVzdHN1
aXRlL2dmb3J0cmFuLmRnL2dvbXAvc3BhdGlhbC1kaW1lbnNpb25zLTQuZjkwCkBAIC0wLDAg
KzEsOTkgQEAKKyEgeyBkZy1kbyBjb21waWxlIH0KKyEgeyBkZy1hZGRpdGlvbmFsLW9wdGlv
bnMgIi1mZHVtcC10cmVlLW9tcGxvd2VyIC1mZHVtcC10cmVlLW9tcGV4cCIgfQorCishIEZv
ciBvbXBleHAsIG9ubHkgY2hlY2sgdGVhbXMgKyBwYXJhbGxlbCBhbmQgbm90IHRhcmdldCAo
dGVhbXMpCisKKyEgTm90ZTogVGhlIGZvbGxvd2luZyB0ZXN0cyBjb2RlIHRoYXQgcHJvZHVj
ZXMgaWRlbnRpY2FsIGNvZGUgdG8gNS54CishIGV2ZW4gdGhvdWdoIE9wZW5NUCA2LjAgZmVh
dHVyZXMgYXJlIHVzZWQuIE5hbWVseToKKyEgLSByZWxheGVkICBtb2RpZmllcgorISAtIHJl
bGF4ZWQsIGRpbXMoMSkgIG1vZGllZmllcnMKKyEgLSBtZXNzYWdlIGNsYXVzZSB3aXRoIHBh
cmFsbGVsIGFuZCB0ZWFtcyAtIGlmIHRoZXJlIGlzIG51bV90ZWFtcyBjbGF1c2UKKyEgICAo
Rm9yIHRhcmdldCAodGVhbXMpLCB0aGVyZSBpcyBhbiBpbXBsaWNpdCAnbnVtX3RlYW1zJzsg
dG8gYXZvaWQKKyEgICAgY29tcGxleCBzb3JyeSBjb2RlLCBtZXNzYWdlICsgdGFyZ2V0ICh0
ZWFtcykgaXMgcmVqZWN0ZWQuKQorCitzdWJyb3V0aW5lIHN1Yih4KQoraW1wbGljaXQgbm9u
ZQoraW50ZWdlciA6OiB4LCBpCisKKyEkb21wIHRhcmdldCB0aHJlYWRfbGltaXQocmVsYXhl
ZCA6IDExKQorYmxvY2sKKyAgeCA9IDEKK2VuZCBibG9jaworISB7IGRnLWZpbmFsIHsgc2Nh
bi10cmVlLWR1bXAtdGltZXMgIiNwcmFnbWEgb21wIHRhcmdldCBudW1fdGVhbXNcXCgtMlxc
KSB0aHJlYWRfbGltaXRcXCgxMVxcKSBmaXJzdHByaXZhdGVcXCh4XFwpIFxcXFtjaGlsZCBm
biIgMSAib21wbG93ZXIiIH0gfQorCishJG9tcCB0YXJnZXQgcGFyYWxsZWwgZG8gc2ltZCB0
aHJlYWRfbGltaXQocmVsYXhlZCwgZGltcygxKSA6IDIyKQorZG8gaSA9IDEsIDEKKyAgeCA9
IDEKK2VuZCBkbworISB7IGRnLWZpbmFsIHsgc2Nhbi10cmVlLWR1bXAtdGltZXMgIiNwcmFn
bWEgb21wIHRhcmdldCBudW1fdGVhbXNcXCgtMlxcKSB0aHJlYWRfbGltaXRcXChkaW1zXFwo
XFwpOjIyXFwpIG1hcFxcKHRvZnJvbTppIFxcXFtsZW46IDRcXFxdIFxcXFtydW50aW1lX2lt
cGxpY2l0XFxcXVxcKSBmaXJzdHByaXZhdGVcXCh4XFwpIFxcXFtjaGlsZCBmbiIgMSAib21w
bG93ZXIiIH0gfQorISB7IGRnLWZpbmFsIHsgc2Nhbi10cmVlLWR1bXAtdGltZXMgIiNwcmFn
bWEgb21wIHBhcmFsbGVsIGxhc3Rwcml2YXRlXFwoaVxcKSBzaGFyZWRcXCh4XFwpIFxcXFtj
aGlsZCBmbiIgMSAib21wbG93ZXIiIH0gfQorCishJG9tcCB0YXJnZXQgdGVhbXMgdGhyZWFk
X2xpbWl0KHJlbGF4ZWQgOiAzMSkgbnVtX3RlYW1zKGRpbXMoMSkgOiAzMykKK2Jsb2NrCisg
IHggPSAxCitlbmQgYmxvY2sKKyEgeyBkZy1maW5hbCB7IHNjYW4tdHJlZS1kdW1wLXRpbWVz
ICIjcHJhZ21hIG9tcCB0YXJnZXQgbnVtX3RlYW1zXFwoLTFcXCkgdGhyZWFkX2xpbWl0XFwo
MzFcXCkgZmlyc3Rwcml2YXRlXFwoeFxcKSBcXFxbY2hpbGQgZm4iIDEgIm9tcGxvd2VyIiB9
IH0KKyEgeyBkZy1maW5hbCB7IHNjYW4tdHJlZS1kdW1wLXRpbWVzICIjcHJhZ21hIG9tcCB0
ZWFtcyBudW1fdGVhbXNcXChkaW1zXFwoXFwpOjMzXFwpIHRocmVhZF9saW1pdFxcKDMxXFwp
IHNoYXJlZFxcKHhcXCkiIDEgIm9tcGxvd2VyIiB9IH0KKyEgeyBkZy1maW5hbCB7IHNjYW4t
dHJlZS1kdW1wLXRpbWVzICJfX2J1aWx0aW5fR09NUF90ZWFtczQgXFwoMzMsIDMzLCAzMSwg
RC5cWzAtOV0rXFwpOyIgMSAib21wZXhwIiB9IH0KKworCishJG9tcCB0YXJnZXQgdGVhbXMg
ZGlzdHJpYnV0ZSBwYXJhbGxlbCBkbyBzaW1kIHRocmVhZF9saW1pdChyZWxheGVkIDogNDEp
IG51bV90ZWFtcyhkaW1zKDEpIDogNDMpIG51bV90aHJlYWRzKCBkaW1zICggMSApICwgcmVs
YXhlZCA6IDQ0KQorZG8gaSA9IDEsIDEKKyAgeCA9IDEKK2VuZCBkbworISB7IGRnLWZpbmFs
IHsgc2Nhbi10cmVlLWR1bXAtdGltZXMgIiNwcmFnbWEgb21wIHRhcmdldCBudW1fdGVhbXNc
XCgtMVxcKSB0aHJlYWRfbGltaXRcXCg0MVxcKSBtYXBcXCh0b2Zyb206aSBcXFxbbGVuOiA0
XFxcXSBcXFxbcnVudGltZV9pbXBsaWNpdFxcXF1cXCkgZmlyc3Rwcml2YXRlXFwoeFxcKSBc
XFxbY2hpbGQgZm4iIDEgIm9tcGxvd2VyIiB9IH0KKyEgeyBkZy1maW5hbCB7IHNjYW4tdHJl
ZS1kdW1wLXRpbWVzICIjcHJhZ21hIG9tcCB0ZWFtcyBudW1fdGVhbXNcXChkaW1zXFwoXFwp
OjQzXFwpIHRocmVhZF9saW1pdFxcKDQxXFwpIHNoYXJlZFxcKGlcXCkgc2hhcmVkXFwoeFxc
KSIgMSAib21wbG93ZXIiIH0gfQorISB7IGRnLWZpbmFsIHsgc2Nhbi10cmVlLWR1bXAtdGlt
ZXMgIiNwcmFnbWEgb21wIHBhcmFsbGVsIF9sb29wdGVtcF9cXChELlxbMC05XF0rXFwpIF9s
b29wdGVtcF9cXChELlxbMC05XF0rXFwpIG51bV90aHJlYWRzXFwoZGltc1xcKFxcKTo0NFxc
KSBsYXN0cHJpdmF0ZVxcKGlcXCkgc2hhcmVkXFwoeFxcKSBcXFxbY2hpbGQgZm4iIDEgIm9t
cGxvd2VyIiB9IH0KKyEgeyBkZy1maW5hbCB7IHNjYW4tdHJlZS1kdW1wLXRpbWVzICJfX2J1
aWx0aW5fR09NUF9wYXJhbGxlbCBcXChzdWJfLl9vbXBfZm4uXFswLTldKywgJi5vbXBfZGF0
YV9vLlxbMC05XSssIDQ0LCAwXFwpOyIgMSAib21wZXhwIiB9IH0KKworISRvbXAgdGVhbXMg
dGhyZWFkX2xpbWl0KHJlbGF4ZWQgOiA1MSkgbnVtX3RlYW1zKGRpbXMoMSkgOiA1MykKK2Js
b2NrCitlbmQgYmxvY2sKKyEgeyBkZy1maW5hbCB7IHNjYW4tdHJlZS1kdW1wLXRpbWVzICIj
cHJhZ21hIG9tcCB0ZWFtcyBudW1fdGVhbXNcXChkaW1zXFwoXFwpOjUzXFwpIHRocmVhZF9s
aW1pdFxcKDUxXFwpIiAxICJvbXBsb3dlciIgfSB9CishIHsgZGctZmluYWwgeyBzY2FuLXRy
ZWUtZHVtcC10aW1lcyAiX19idWlsdGluX0dPTVBfdGVhbXNfcmVnIFxcKHN1Yl8uX29tcF9m
bi5cWzAtOVxdKywgMEIsIDUzLCA1MSwgMFxcKTsiIDEgIm9tcGV4cCIgfSB9CisKKyEkb21w
IHRlYW1zIGRpc3RyaWJ1dGUgcGFyYWxsZWwgZG8gc2ltZCB0aHJlYWRfbGltaXQocmVsYXhl
ZCA6IDYxKSBudW1fdGVhbXMoZGltcygxKSA6IDYzKSBudW1fdGhyZWFkcyhyZWxheGVkLCBk
aW1zKDEpIDogNjQpCitkbyBpID0gMSwgMQorICB4ID0gMQorZW5kIGRvCishIHsgZGctZmlu
YWwgeyBzY2FuLXRyZWUtZHVtcC10aW1lcyAiI3ByYWdtYSBvbXAgdGVhbXMgbnVtX3RlYW1z
XFwoZGltc1xcKFxcKTo2M1xcKSB0aHJlYWRfbGltaXRcXCg2MVxcKSBzaGFyZWRcXChpXFwp
IHNoYXJlZFxcKHhcXCkiIDEgIm9tcGxvd2VyIiB9IH0KKyEgeyBkZy1maW5hbCB7IHNjYW4t
dHJlZS1kdW1wLXRpbWVzICIjcHJhZ21hIG9tcCBwYXJhbGxlbCBfbG9vcHRlbXBfXFwoRC5c
WzAtOVxdK1xcKSBfbG9vcHRlbXBfXFwoRC5cWzAtOVxdK1xcKSBudW1fdGhyZWFkc1xcKGRp
bXNcXChcXCk6NjRcXCkgbGFzdHByaXZhdGVcXChpXFwpIHNoYXJlZFxcKHhcXCkgXFxcW2No
aWxkIGZuIiAxICJvbXBsb3dlciIgfSB9CishIHsgZGctZmluYWwgeyBzY2FuLXRyZWUtZHVt
cC10aW1lcyAiX19idWlsdGluX0dPTVBfdGVhbXNfcmVnIFxcKHN1Yl8uX29tcF9mbi5cWzAt
OVxdKywgJi5vbXBfZGF0YV9vLlxbMC05XF0rLCA2MywgNjEsIDBcXCk7IiAxICJvbXBleHAi
IH0gfQorISB7IGRnLWZpbmFsIHsgc2Nhbi10cmVlLWR1bXAtdGltZXMgIl9fYnVpbHRpbl9H
T01QX3BhcmFsbGVsIFxcKHN1Yl8uX29tcF9mbi5cWzAtOVxdKywgJi5vbXBfZGF0YV9vLlxb
MC05XF0rLCA2NCwgMFxcKTsiIDEgIm9tcGV4cCIgfSB9CisKKyEkb21wIHBhcmFsbGVsIG51
bV90aHJlYWRzKHJlbGF4ZWQsIGRpbXMoMSkgOiA3NykgbWVzc2FnZSgibXk3NyIpIHNldmVy
aXR5KGZhdGFsKQorYmxvY2sKKyAgeCA9IDEKK2VuZCBibG9jaworISB7IGRnLWZpbmFsIHsg
c2Nhbi10cmVlLWR1bXAtdGltZXMgIiNwcmFnbWEgb21wIHBhcmFsbGVsIG1lc3NhZ2VcXCgu
bXk3Ny4gXFxcW2xlbjo0XFxcXVxcKXNldmVyaXR5XFwoZmF0YWxcXCkgbnVtX3RocmVhZHNc
XChkaW1zXFwoXFwpOjc3XFwpIHNoYXJlZFxcKHhcXCkgXFxcW2NoaWxkIGZuIiAxICJvbXBs
b3dlciIgfSB9CishIHsgZGctZmluYWwgeyBzY2FuLXRyZWUtZHVtcC10aW1lcyAiX19idWls
dGluX0dPTVBfcGFyYWxsZWwgXFwoc3ViXy5fb21wX2ZuLlxbMC05XF0rLCAmLm9tcF9kYXRh
X28uXFswLTlcXSssIDc3LCAwXFwpOyIgMSAib21wZXhwIiB9IH0KKworCishJG9tcCBwYXJh
bGxlbCBudW1fdGhyZWFkcyhyZWxheGVkIDogODgpIG1lc3NhZ2UoIm15NzgiKSBzZXZlcml0
eSh3YXJuaW5nKQorYmxvY2sKKyAgeCA9IDEKK2VuZCBibG9jaworISB7IGRnLWZpbmFsIHsg
c2Nhbi10cmVlLWR1bXAtdGltZXMgIiNwcmFnbWEgb21wIHBhcmFsbGVsIG1lc3NhZ2VcXCgu
bXk3OC4gXFxcW2xlbjo0XFxcXVxcKSBzZXZlcml0eVxcKHdhcm5pbmdcXCkgbnVtX3RocmVh
ZHNcXCg4OFxcKSBzaGFyZWRcXCh4XFwpIFxcXFtjaGlsZCBmbiIgMSAib21wbG93ZXIiIH0g
fQorISB7IGRnLWZpbmFsIHsgc2Nhbi10cmVlLWR1bXAtdGltZXMgIl9fYnVpbHRpbl9HT01Q
X3BhcmFsbGVsIFxcKHN1Yl8uX29tcF9mbi5cWzAtOVxdKywgJi5vbXBfZGF0YV9vLlxbMC05
XF0rLCA4OCwgMFxcKTsiIDEgIm9tcGV4cCIgfSB9CisKKyEkb21wIHRlYW1zIHRocmVhZF9s
aW1pdChyZWxheGVkIDogOTEpIG51bV90ZWFtcygxIDogOTMpCitibG9jaworICB4ID0gMQor
ZW5kIGJsb2NrCishIHsgZGctZmluYWwgeyBzY2FuLXRyZWUtZHVtcC10aW1lcyAiI3ByYWdt
YSBvbXAgdGVhbXMgbnVtX3RlYW1zXFwoMSwgOTNcXCkgdGhyZWFkX2xpbWl0XFwoOTFcXCkg
c2hhcmVkXFwoeFxcKSIgMSAib21wbG93ZXIiIH0gfQorISB7IGRnLWZpbmFsIHsgc2Nhbi10
cmVlLWR1bXAtdGltZXMgIl9fYnVpbHRpbl9HT01QX3RlYW1zX3JlZyBcXChzdWJfLl9vbXBf
Zm4uXFswLTlcXSssICYub21wX2RhdGFfby5cWzAtOVxdKywgOTMsIDkxLCAwXFwpOyIgMSAi
b21wZXhwIiB9IH0KKworISRvbXAgdGFyZ2V0IHRlYW1zIHRocmVhZF9saW1pdChyZWxheGVk
IDogOTkxKSBudW1fdGVhbXMoMTkxIDogOTkzKQorYmxvY2sKKyAgeCA9IDEKK2VuZCBibG9j
aworISB7IGRnLWZpbmFsIHsgc2Nhbi10cmVlLWR1bXAtdGltZXMgIiNwcmFnbWEgb21wIHRh
cmdldCBudW1fdGVhbXNcXCgtMVxcKSB0aHJlYWRfbGltaXRcXCg5OTFcXCkgZmlyc3Rwcml2
YXRlXFwoeFxcKSBcXFxbY2hpbGQgZm4iIDEgIm9tcGxvd2VyIiB9IH0KKyEgeyBkZy1maW5h
bCB7IHNjYW4tdHJlZS1kdW1wLXRpbWVzICIjcHJhZ21hIG9tcCB0ZWFtcyBudW1fdGVhbXNc
XCgxOTEsIDk5M1xcKSB0aHJlYWRfbGltaXRcXCg5OTFcXCkgc2hhcmVkXFwoeFxcKSIgMSAi
b21wbG93ZXIiIH0gfQorCishJG9tcCB0ZWFtcyB0aHJlYWRfbGltaXQocmVsYXhlZCA6IDEy
MzEpIG1lc3NhZ2UoIm15MTIzNCIpIHNldmVyaXR5KHdhcm5pbmcpCitibG9jaworZW5kIGJs
b2NrIAorISB7IGRnLWZpbmFsIHsgc2Nhbi10cmVlLWR1bXAtdGltZXMgIiNwcmFnbWEgb21w
IHRlYW1zIG1lc3NhZ2VcXCgubXkxMjM0LiBcXFxbbGVuOjZcXFxdXFwpIHNldmVyaXR5XFwo
d2FybmluZ1xcKSB0aHJlYWRfbGltaXRcXCgxMjMxXFwpIiAxICJvbXBsb3dlciIgfSB9Cish
IHsgZGctZmluYWwgeyBzY2FuLXRyZWUtZHVtcC10aW1lcyAiX19idWlsdGluX0dPTVBfdGVh
bXNfcmVnIFxcKHN1Yl8uX29tcF9mbi5cWzAtOVxdKywgMEIsIDAsIDEyMzEsIDBcXCk7IiAx
ICJvbXBleHAiIH0gfQorCitlbmQKZGlmZiAtLWdpdCBhL2djYy90ZXN0c3VpdGUvZ2ZvcnRy
YW4uZGcvZ29tcC9zcGF0aWFsLWRpbWVuc2lvbnMtNS5mOTAgYi9nY2MvdGVzdHN1aXRlL2dm
b3J0cmFuLmRnL2dvbXAvc3BhdGlhbC1kaW1lbnNpb25zLTUuZjkwCm5ldyBmaWxlIG1vZGUg
MTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwLi4zZWMzNDM1ZWNkNwotLS0gL2Rldi9udWxsCisr
KyBiL2djYy90ZXN0c3VpdGUvZ2ZvcnRyYW4uZGcvZ29tcC9zcGF0aWFsLWRpbWVuc2lvbnMt
NS5mOTAKQEAgLTAsMCArMSw4NCBAQAorISB7IGRnLWRvIGNvbXBpbGUgfQorISB7IGRnLWFk
ZGl0aW9uYWwtb3B0aW9ucyAiLWZkdW1wLXRyZWUtZ2ltcGxlIiB9CisKK3N1YnJvdXRpbmUg
c3ViKHgpCitpbXBsaWNpdCBub25lCitpbnRlZ2VyIDo6IHgsIGkKKworISRvbXAgdGFyZ2V0
IHRlYW1zIGRpc3RyaWJ1dGUgcGFyYWxsZWwgZG8gbnVtX3RlYW1zKDExIDogMjIpIHRocmVh
ZF9saW1pdChzdHJpY3QsZGltcygzKSA6IDExLDEyLDEzKSBudW1fdGhyZWFkcyhyZWxheGVk
OiAyMyw0NSw1MykgbWVzc2FnZSgiZmlyc3QiKSBzZXZlcml0eSh3YXJuaW5nKQorZG8gaSA9
IDEsMQorICB4ID0gMAorZW5kIGRvCishIHsgZGctZmluYWwgeyBzY2FuLXRyZWUtZHVtcC10
aW1lcyAiI3ByYWdtYSBvbXAgdGFyZ2V0IG51bV90ZWFtc1xcKC0xXFwpIG1lc3NhZ2VcXCgu
Zmlyc3QuIFxcXFtsZW46NVxcXF1cXCkgc2V2ZXJpdHlcXCh3YXJuaW5nXFwpIHRocmVhZF9s
aW1pdFxcKHN0cmljdCxkaW1zXFwoXFwpOjExLCAxMiwgMTNcXCkgZmlyc3Rwcml2YXRlXFwo
eFxcKSIgMSAib21wbG93ZXIiIH0gfQorISB7IGRnLWZpbmFsIHsgc2Nhbi10cmVlLWR1bXAt
dGltZXMgIiNwcmFnbWEgb21wIHRlYW1zIG51bV90ZWFtc1xcKDExLCAyMlxcKSB0aHJlYWRf
bGltaXRcXChzdHJpY3QsZGltc1xcKFxcKToxMSwgMTIsIDEzXFwpIG1lc3NhZ2VcXCguZmly
c3QuIFxcXFtsZW46NVxcXF1cXCkgc2V2ZXJpdHlcXCh3YXJuaW5nXFwpIHNoYXJlZFxcKHhc
XCkiIDEgIm9tcGxvd2VyIiB9IH0KKyEgeyBkZy1maW5hbCB7IHNjYW4tdHJlZS1kdW1wLXRp
bWVzICIjcHJhZ21hIG9tcCBwYXJhbGxlbCBtZXNzYWdlXFwoLmZpcnN0LiBcXFxbbGVuOjVc
XFxdXFwpIHNldmVyaXR5XFwod2FybmluZ1xcKSBudW1fdGhyZWFkc1xcKDIzLCA0NSwgNTNc
XCkgc2hhcmVkXFwoeFxcKSIgMSAib21wbG93ZXIiIH0gfQorZW5kCisKKyEgeyBkZy1tZXNz
YWdlICJzb3JyeSwgdW5pbXBsZW1lbnRlZDogJ251bV90aHJlYWRzJyBjbGF1c2Ugd2l0aCBt
b3JlIHRoYW4gb25lIGFyZ3VtZW50IiAiIiB7IHRhcmdldCAqLSotKiB9IDggfQorISB7IGRn
LW1lc3NhZ2UgInNvcnJ5LCB1bmltcGxlbWVudGVkOiAnbWVzc2FnZScgY2xhdXNlIiAiIiB7
IHRhcmdldCAqLSotKiB9IDggfQorISB7IGRnLW1lc3NhZ2UgInNvcnJ5LCB1bmltcGxlbWVu
dGVkOiAndGhyZWFkX2xpbWl0JyBjbGF1c2Ugd2l0aCAnZGltcycgbW9kaWZpZXIiICIiIHsg
dGFyZ2V0ICotKi0qIH0gOCB9CisKKworc3Vicm91dGluZSBzdWIyKHgpCitpbXBsaWNpdCBu
b25lCitpbnRlZ2VyIDo6IHgsIGkKKworISRvbXAgdGFyZ2V0IHRlYW1zIGRpc3RyaWJ1dGUg
cGFyYWxsZWwgZG8gbnVtX3RlYW1zKGRpbXMoNCk6IDExMSwyMjIsMzMzLCAzMjQpIHRocmVh
ZF9saW1pdChyZWxheGVkIDogMTEpIG51bV90aHJlYWRzKHN0cmljdDogNDQ1LDU1MykgbWVz
c2FnZSgic2Vjb25kIikgc2V2ZXJpdHkoZmF0YWwpCitkbyBpID0gMSwxCisgIHggPSAwCitl
bmQgZG8KKyEgeyBkZy1maW5hbCB7IHNjYW4tdHJlZS1kdW1wLXRpbWVzICIjcHJhZ21hIG9t
cCB0YXJnZXQgbnVtX3RlYW1zXFwoLTFcXCkgbWVzc2FnZVxcKC5zZWNvbmQuIFxcXFtsZW46
NlxcXF1cXClzZXZlcml0eVxcKGZhdGFsXFwpIHRocmVhZF9saW1pdFxcKDExXFwpIGZpcnN0
cHJpdmF0ZVxcKHhcXCkiIDEgIm9tcGxvd2VyIiB9IH0KKyEgeyBkZy1maW5hbCB7IHNjYW4t
dHJlZS1kdW1wLXRpbWVzICIjcHJhZ21hIG9tcCB0ZWFtcyBudW1fdGVhbXNcXChkaW1zXFwo
XFwpOjExMSwgMjIyLCAzMzMsIDMyNFxcKSB0aHJlYWRfbGltaXRcXCgxMVxcKSBtZXNzYWdl
XFwoLnNlY29uZC4gXFxcW2xlbjo2XFxcXVxcKXNldmVyaXR5XFwoZmF0YWxcXCkgc2hhcmVk
XFwoeFxcKSIgMSAib21wbG93ZXIiIH0gfQorISB7IGRnLWZpbmFsIHsgc2Nhbi10cmVlLWR1
bXAtdGltZXMgIiNwcmFnbWEgb21wIHBhcmFsbGVsIG1lc3NhZ2VcXCguc2Vjb25kLiBcXFxb
bGVuOjZcXFxdXFwpc2V2ZXJpdHlcXChmYXRhbFxcKSBudW1fdGhyZWFkc1xcKHN0cmljdDo0
NDUsIDU1M1xcKSBzaGFyZWRcXCh4XFwpIiAxICJvbXBsb3dlciIgfSB9CisKKyEkb21wIHRl
YW1zIGRpc3RyaWJ1dGUgcGFyYWxsZWwgZG8gbnVtX3RlYW1zKDExIDogNTUpIHRocmVhZF9s
aW1pdChzdHJpY3QgOiAxMSkgbnVtX3RocmVhZHMocmVsYXhlZDogMjMsNDUsNTMpIG1lc3Nh
Z2UoInRoaXJkIikgc2V2ZXJpdHkod2FybmluZykKK2RvIGkgPSAxLDEKKyAgeCA9IDAKK2Vu
ZCBkbworISB7IGRnLWZpbmFsIHsgc2Nhbi10cmVlLWR1bXAtdGltZXMgIiNwcmFnbWEgb21w
IHRlYW1zIG1lc3NhZ2VcXCgudGhpcmQuIFxcXFtsZW46NVxcXF1cXCkgc2V2ZXJpdHlcXCh3
YXJuaW5nXFwpIG51bV90ZWFtc1xcKDExLCA1NVxcKSB0aHJlYWRfbGltaXRcXChzdHJpY3Q6
MTFcXCkgc2hhcmVkXFwoeFxcKSIgMSAib21wbG93ZXIiIH0gfQorISB7IGRnLWZpbmFsIHsg
c2Nhbi10cmVlLWR1bXAtdGltZXMgIiNwcmFnbWEgb21wIHBhcmFsbGVsIG1lc3NhZ2VcXCgu
dGhpcmQuIFxcXFtsZW46NVxcXF1cXCkgc2V2ZXJpdHlcXCh3YXJuaW5nXFwpIG51bV90aHJl
YWRzXFwoMjMsIDQ1LCA1M1xcKSBzaGFyZWRcXCh4XFwpIiAxICJvbXBsb3dlciIgfSB9CisK
KyEkb21wIHRlYW1zIGRpc3RyaWJ1dGUgcGFyYWxsZWwgZG8gbnVtX3RlYW1zKGRpbXMoMik6
IDExMTEsMzMpIHRocmVhZF9saW1pdChkaW1zKDMpIDogMTEsMyw0ODApIG51bV90aHJlYWRz
KHN0cmljdCwgZGltcygyKTogNDQ1LDU1MykgbWVzc2FnZSgiZm91cnRoIikgc2V2ZXJpdHko
ZmF0YWwpCitkbyBpID0gMSwxCisgIHggPSAwCitlbmQgZG8KKyEgeyBkZy1maW5hbCB7IHNj
YW4tdHJlZS1kdW1wLXRpbWVzICIjcHJhZ21hIG9tcCB0ZWFtcyBtZXNzYWdlXFwoLmZvdXJ0
aC4gXFxcW2xlbjo1XFxcXVxcKXNldmVyaXR5XFwoZmF0YWxcXCkgbnVtX3RlYW1zXFwoZGlt
c1xcKFxcKToxMTExLCAzM1xcKSB0aHJlYWRfbGltaXRcXChzdHJpY3QsZGltc1xcKFxcKTox
MSwgMywgNDgwXFwpIHNoYXJlZFxcKHhcXCkiIDEgIm9tcGxvd2VyIiB9IH0KKyEgeyBkZy1m
aW5hbCB7IHNjYW4tdHJlZS1kdW1wLXRpbWVzICIjcHJhZ21hIG9tcCBwYXJhbGxlbCBtZXNz
YWdlXFwoLmZvdXJ0aC4gXFxcW2xlbjo1XFxcXVxcKXNldmVyaXR5XFwoZmF0YWxcXCkgbnVt
X3RocmVhZHNcXChzdHJpY3QsZGltc1xcKFxcKTo0NDUsIDU1M1xcKSBzaGFyZWRcXCh4XFwp
IiAxICJvbXBsb3dlciIgfSB9CisKKyEkb21wIHRhcmdldCBtZXNzYWdlKCJ0Z3QxIikgc2V2
ZXJpdHkod2FybmluZykgdGhyZWFkX2xpbWl0KHN0cmljdCA6IDE0NTQpCitibG9jaworICB4
ID0gMAorZW5kIGJsb2NrCishIHsgZGctZmluYWwgeyBzY2FuLXRyZWUtZHVtcC10aW1lcyAi
I3ByYWdtYSBvbXAgdGFyZ2V0IG51bV90ZWFtc1xcKC0yXFwpIG1lc3NhZ2VcXCgudGd0MS4g
XFxcW2xlbjo0XFxcXVxcKSBzZXZlcml0eVxcKHdhcm5pbmdcXCkgdGhyZWFkX2xpbWl0XFwo
c3RyaWN0OjE0NTRcXCkgZmlyc3Rwcml2YXRlXFwoeFxcKSIgMSAib21wbG93ZXIiIH0gfQor
CishJG9tcCB0YXJnZXQgbWVzc2FnZSgidGd0MiIpIHNldmVyaXR5KGZhdGFsKSB0aHJlYWRf
bGltaXQocmVsYXhlZCA6IDQ1NCkKK2Jsb2NrCisgIHggPSAwCitlbmQgYmxvY2sKKyEgeyBk
Zy1maW5hbCB7IHNjYW4tdHJlZS1kdW1wLXRpbWVzICIjcHJhZ21hIG9tcCB0YXJnZXQgbnVt
X3RlYW1zXFwoLTJcXCkgbWVzc2FnZVxcKC50Z3QyLiBcXFxbbGVuOjRcXFxdXFwpc2V2ZXJp
dHlcXChmYXRhbFxcKSB0aHJlYWRfbGltaXRcXCg0NTRcXCkgZmlyc3Rwcml2YXRlXFwoeFxc
KSIgMSAib21wbG93ZXIiIH0gfQorCishJG9tcCB0ZWFtcyBudW1fdGVhbXMoMTQgOiAzNCkg
bWVzc2FnZSgidGVhbXMiKSBzZXZlcml0eShmYXRhbCkKK2Jsb2NrCisgIHggPSAwCitlbmQg
YmxvY2sKKyEgeyBkZy1maW5hbCB7IHNjYW4tdHJlZS1kdW1wLXRpbWVzICIjcHJhZ21hIG9t
cCB0ZWFtcyBtZXNzYWdlXFwoLnRlYW1zLiBcXFxbbGVuOjVcXFxdXFwpc2V2ZXJpdHlcXChm
YXRhbFxcKSBudW1fdGVhbXNcXCgxNCwgMzRcXCkgc2hhcmVkXFwoeFxcKSIgMSAib21wbG93
ZXIiIH0gfQorCishJG9tcCB0ZWFtcyB0aHJlYWRfbGltaXQocmVsYXhlZCwgZGltcygyKTog
NTE0ICwgMzg0KSBzZXZlcml0eSh3YXJuaW5nKQorYmxvY2sKKyAgeCA9IDAKK2VuZCBibG9j
aworISB7IGRnLWZpbmFsIHsgc2Nhbi10cmVlLWR1bXAtdGltZXMgIiNwcmFnbWEgb21wIHRl
YW1zIHNldmVyaXR5XFwod2FybmluZ1xcKSB0aHJlYWRfbGltaXRcXChkaW1zXFwoXFwpOjUx
NCwgMzg0XFwpIHNoYXJlZFxcKHhcXCkiIDEgIm9tcGxvd2VyIiB9IH0KKworISRvbXAgcGFy
YWxsZWwgbnVtX3RocmVhZHMocmVsYXhlZCwgZGltcygyKTogNTE0ICwgMzg0KSBzZXZlcml0
eSh3YXJuaW5nKQorYmxvY2sKKyAgeCA9IDAKK2VuZCBibG9jaworISB7IGRnLWZpbmFsIHsg
c2Nhbi10cmVlLWR1bXAtdGltZXMgIiNwcmFnbWEgb21wIHBhcmFsbGVsIHNldmVyaXR5XFwo
d2FybmluZ1xcKSBudW1fdGhyZWFkc1xcKGRpbXNcXChcXCk6NTE0LCAzODRcXCkgc2hhcmVk
XFwoeFxcKSIgMSAib21wbG93ZXIiIH0gfQorCishJG9tcCBwYXJhbGxlbCBudW1fdGhyZWFk
cyhzdHJpY3Q6IDg0NyAsIDM1MjMsIDUzKSBtZXNzYWdlKCJwYXJhbGxlbCIpCitibG9jawor
ICB4ID0gMAorZW5kIGJsb2NrCishIHsgZGctZmluYWwgeyBzY2FuLXRyZWUtZHVtcC10aW1l
cyAiI3ByYWdtYSBvbXAgcGFyYWxsZWwgbWVzc2FnZVxcKC5wYXJhbGxlbC4gXFxcW2xlbjo4
XFxcXVxcKXNldmVyaXR5XFwoZmF0YWxcXCkgbnVtX3RocmVhZHNcXChzdHJpY3Q6ODQ3LCAz
NTIzLCA1M1xcKSBzaGFyZWRcXCh4XFwpIiAxICJvbXBsb3dlciIgfSB9CisKK2VuZApkaWZm
IC0tZ2l0IGEvZ2NjL3RyZWUtY29yZS5oIGIvZ2NjL3RyZWUtY29yZS5oCmluZGV4IDkxOGUw
NzdhZjFiLi4zYWMwZDU2ZmM5OSAxMDA2NDQKLS0tIGEvZ2NjL3RyZWUtY29yZS5oCisrKyBi
L2djYy90cmVlLWNvcmUuaApAQCAtNjAyLDYgKzYwMiwxMyBAQCBlbnVtIG9tcF9jbGF1c2Vf
Y29kZSB7CiAKICAgLyogT3Blbk1QIGNsYXVzZTogdXNlc19hbGxvY2F0b3JzLiAgKi8KICAg
T01QX0NMQVVTRV9VU0VTX0FMTE9DQVRPUlMsCisKKyAgLyogT3Blbk1QIGNsYXVzZTogbWVz
c2FnZSAoc3RyaW5nLWV4cHIpLgorICAgICBJZiB0aGUgc3RyaW5nIGV4cHIgaXMgbm90IG51
bGwgdGVybWluYXRlZCwgdGhlIGxlbmd0aCBuZWVkcyB0byBiZQorICAgICBzdG9yZWQgaW4g
T01QX0NMQVVTRV9NRVNTQUdFX0xFTi4KKyAgICAgTm90ZSB0aGF0IHRoZSAnc2V2ZXJpdHkn
IGNsYXVzZSBpcyBoYW5kbGVkIGFzIGZsYWcgdG8gJ21lc3NhZ2UnOgorICAgICBPTVBfQ0xB
VVNFX01FU1NBR0VfU0VWRVJJVFlfV0FSTi4gICovCisgIE9NUF9DTEFVU0VfTUVTU0FHRQog
fTsKIAogI3VuZGVmIERFRlRSRUVTVFJVQ1QKZGlmZiAtLWdpdCBhL2djYy90cmVlLXByZXR0
eS1wcmludC5jYyBiL2djYy90cmVlLXByZXR0eS1wcmludC5jYwppbmRleCBiNDcwYTlkZWU3
Yi4uYmQ2MGU1YzE1YzEgMTAwNjQ0Ci0tLSBhL2djYy90cmVlLXByZXR0eS1wcmludC5jYwor
KysgYi9nY2MvdHJlZS1wcmV0dHktcHJpbnQuY2MKQEAgLTcwNCw2ICs3MDQsMTYgQEAgZHVt
cF9vbXBfY2xhdXNlIChwcmV0dHlfcHJpbnRlciAqcHAsIHRyZWUgY2xhdXNlLCBpbnQgc3Bj
LCBkdW1wX2ZsYWdzX3QgZmxhZ3MpCiAKICAgICBjYXNlIE9NUF9DTEFVU0VfTlVNX1RIUkVB
RFM6CiAgICAgICBwcF9zdHJpbmcgKHBwLCAibnVtX3RocmVhZHMoIik7CisgICAgICBpZiAo
T01QX0NMQVVTRV9OVU1fVEhSRUFEU19TVFJJQ1QgKGNsYXVzZSkpCisJcHBfc3RyaW5nIChw
cCwgInN0cmljdCIpOworICAgICAgaWYgKE9NUF9DTEFVU0VfTlVNX1RIUkVBRFNfU1RSSUNU
IChjbGF1c2UpCisJICAmJiBPTVBfQ0xBVVNFX05VTV9USFJFQURTX0RJTVMgKGNsYXVzZSkp
CisJcHBfY29tbWEgKHBwKTsKKyAgICAgIGlmIChPTVBfQ0xBVVNFX05VTV9USFJFQURTX0RJ
TVMgKGNsYXVzZSkpCisJcHBfc3RyaW5nIChwcCwgImRpbXMoKSIpOworICAgICAgaWYgKE9N
UF9DTEFVU0VfTlVNX1RIUkVBRFNfU1RSSUNUIChjbGF1c2UpCisJICB8fCBPTVBfQ0xBVVNF
X05VTV9USFJFQURTX0RJTVMgKGNsYXVzZSkpCisJcHBfY29sb24gKHBwKTsKICAgICAgIGR1
bXBfZ2VuZXJpY19ub2RlIChwcCwgT01QX0NMQVVTRV9OVU1fVEhSRUFEU19FWFBSIChjbGF1
c2UpLAogCQkJIHNwYywgZmxhZ3MsIGZhbHNlKTsKICAgICAgIHBwX3JpZ2h0X3BhcmVuIChw
cCk7CkBAIC04MjAsNiArODMwLDI5IEBAIGR1bXBfb21wX2NsYXVzZSAocHJldHR5X3ByaW50
ZXIgKnBwLCB0cmVlIGNsYXVzZSwgaW50IHNwYywgZHVtcF9mbGFnc190IGZsYWdzKQogICAg
ICAgcHBfc3RyaW5nIChwcCwgIm1lcmdlYWJsZSIpOwogICAgICAgYnJlYWs7CiAKKyAgICBj
YXNlIE9NUF9DTEFVU0VfTUVTU0FHRToKKyAgICAgIGlmIChPTVBfQ0xBVVNFX01FU1NBR0Vf
RVhQUiAoY2xhdXNlKSkKKwl7CisJICBwcF9zdHJpbmcgKHBwLCAibWVzc2FnZSgiKTsKKwkg
IGR1bXBfZ2VuZXJpY19ub2RlIChwcCwgT01QX0NMQVVTRV9NRVNTQUdFX0VYUFIgKGNsYXVz
ZSksCisJCQkgICAgIHNwYywgZmxhZ3MsIGZhbHNlKTsKKwkgIGlmIChPTVBfQ0xBVVNFX01F
U1NBR0VfTEVOIChjbGF1c2UpKQorCSAgICB7CisJICAgICAgcHBfc3RyaW5nIChwcCwgIiBb
bGVuOiIpOworCSAgICAgIGR1bXBfZ2VuZXJpY19ub2RlIChwcCwgT01QX0NMQVVTRV9NRVNT
QUdFX0xFTiAoY2xhdXNlKSwKKwkJCQkgc3BjLCBmbGFncywgZmFsc2UpOworCSAgICAgIHBw
X3JpZ2h0X2JyYWNrZXQgKHBwKTsKKwkgICAgfQorCSAgcHBfcmlnaHRfcGFyZW4gKHBwKTsK
KwkgIGlmIChPTVBfQ0xBVVNFX01FU1NBR0VfU0VWRVJJVFlfV0FSTiAoY2xhdXNlKSkKKwkg
ICAgcHBfc3BhY2UgKHBwKTsKKwl9CisgICAgICBpZiAoT01QX0NMQVVTRV9NRVNTQUdFX1NF
VkVSSVRZX1dBUk4gKGNsYXVzZSkpCisJcHBfc3RyaW5nIChwcCwgInNldmVyaXR5KHdhcm5p
bmcpIik7CisgICAgICBlbHNlCisJcHBfc3RyaW5nIChwcCwgInNldmVyaXR5KGZhdGFsKSIp
OworICAgICAgYnJlYWs7CisKICAgICBjYXNlIE9NUF9DTEFVU0VfTElORUFSOgogICAgICAg
cHBfc3RyaW5nIChwcCwgImxpbmVhcigiKTsKICAgICAgIGlmIChPTVBfQ0xBVVNFX0xJTkVB
Ul9PTERfTElORUFSX01PRElGSUVSIChjbGF1c2UpKQpAQCAtMTI3Miw2ICsxMzA1LDggQEAg
ZHVtcF9vbXBfY2xhdXNlIChwcmV0dHlfcHJpbnRlciAqcHAsIHRyZWUgY2xhdXNlLCBpbnQg
c3BjLCBkdW1wX2ZsYWdzX3QgZmxhZ3MpCiAKICAgICBjYXNlIE9NUF9DTEFVU0VfTlVNX1RF
QU1TOgogICAgICAgcHBfc3RyaW5nIChwcCwgIm51bV90ZWFtcygiKTsKKyAgICAgIGlmIChP
TVBfQ0xBVVNFX05VTV9URUFNU19ESU1TIChjbGF1c2UpKQorCXBwX3N0cmluZyAocHAsICJk
aW1zKCk6Iik7CiAgICAgICBpZiAoT01QX0NMQVVTRV9OVU1fVEVBTVNfTE9XRVJfRVhQUiAo
Y2xhdXNlKSkKIAl7CiAJICBkdW1wX2dlbmVyaWNfbm9kZSAocHAsIE9NUF9DTEFVU0VfTlVN
X1RFQU1TX0xPV0VSX0VYUFIgKGNsYXVzZSksCkBAIC0xMjg1LDYgKzEzMjAsMTYgQEAgZHVt
cF9vbXBfY2xhdXNlIChwcmV0dHlfcHJpbnRlciAqcHAsIHRyZWUgY2xhdXNlLCBpbnQgc3Bj
LCBkdW1wX2ZsYWdzX3QgZmxhZ3MpCiAKICAgICBjYXNlIE9NUF9DTEFVU0VfVEhSRUFEX0xJ
TUlUOgogICAgICAgcHBfc3RyaW5nIChwcCwgInRocmVhZF9saW1pdCgiKTsKKyAgICAgIGlm
IChPTVBfQ0xBVVNFX1RIUkVBRF9MSU1JVF9TVFJJQ1QgKGNsYXVzZSkpCisJcHBfc3RyaW5n
IChwcCwgInN0cmljdCIpOworICAgICAgaWYgKE9NUF9DTEFVU0VfVEhSRUFEX0xJTUlUX1NU
UklDVCAoY2xhdXNlKQorCSAgJiYgT01QX0NMQVVTRV9USFJFQURfTElNSVRfRElNUyAoY2xh
dXNlKSkKKwlwcF9jb21tYSAocHApOworICAgICAgaWYgKE9NUF9DTEFVU0VfVEhSRUFEX0xJ
TUlUX0RJTVMgKGNsYXVzZSkpCisJcHBfc3RyaW5nIChwcCwgImRpbXMoKSIpOworICAgICAg
aWYgKE9NUF9DTEFVU0VfVEhSRUFEX0xJTUlUX1NUUklDVCAoY2xhdXNlKQorCSAgfHwgT01Q
X0NMQVVTRV9USFJFQURfTElNSVRfRElNUyAoY2xhdXNlKSkKKwlwcF9jb2xvbiAocHApOwog
ICAgICAgZHVtcF9nZW5lcmljX25vZGUgKHBwLCBPTVBfQ0xBVVNFX1RIUkVBRF9MSU1JVF9F
WFBSIChjbGF1c2UpLAogCQkJIHNwYywgZmxhZ3MsIGZhbHNlKTsKICAgICAgIHBwX3JpZ2h0
X3BhcmVuIChwcCk7CmRpZmYgLS1naXQgYS9nY2MvdHJlZS5jYyBiL2djYy90cmVlLmNjCmlu
ZGV4IDk3N2JkYWEwODQ1Li5iODAwNjgwOTMyMiAxMDA2NDQKLS0tIGEvZ2NjL3RyZWUuY2MK
KysrIGIvZ2NjL3RyZWUuY2MKQEAgLTQwMCw2ICs0MDAsNyBAQCB1bnNpZ25lZCBjb25zdCBj
aGFyIG9tcF9jbGF1c2VfbnVtX29wc1tdID0KICAgMSwgLyogT01QX0NMQVVTRV9OT0NPTlRF
WFQgKi8KICAgMSwgLyogT01QX0NMQVVTRV9EWU5fR1JPVVBQUklWQVRFICAqLwogICAzLCAv
KiBPTVBfQ0xBVVNFX1VTRVNfQUxMT0NBVE9SUyAqLworICAyLCAvKiBPTVBfQ0xBVVNFX01F
U1NBR0UgKi8KIH07CiAKIGNvbnN0IGNoYXIgKiBjb25zdCBvbXBfY2xhdXNlX2NvZGVfbmFt
ZVtdID0KQEAgLTUwNSw2ICs1MDYsNyBAQCBjb25zdCBjaGFyICogY29uc3Qgb21wX2NsYXVz
ZV9jb2RlX25hbWVbXSA9CiAgICJub2NvbnRleHQiLAogICAiZHluX2dyb3VwcHJpdmF0ZSIs
CiAgICJ1c2VzX2FsbG9jYXRvcnMiLAorICAibWVzc2FnZSIKIH07CiAKIC8qIFVubGVzcyBz
cGVjaWZpYyB0byBPcGVuQUNDLCB3ZSB0ZW5kIHRvIGludGVybmFsbHkgbWFpbnRhaW4gT3Bl
bk1QLWNlbnRyaWMKZGlmZiAtLWdpdCBhL2djYy90cmVlLmggYi9nY2MvdHJlZS5oCmluZGV4
IGQwMzhkMmFmZDMzLi4xY2NiZjg0OGQ5YiAxMDA2NDQKLS0tIGEvZ2NjL3RyZWUuaAorKysg
Yi9nY2MvdHJlZS5oCkBAIC0xODY0LDYgKzE4NjQsMTYgQEAgY2xhc3MgYXV0b19zdXBwcmVz
c19sb2NhdGlvbl93cmFwcGVycwogICBUUkVFX1BSSVZBVEUgKE9NUF9DTEFVU0VfU1VCQ09E
RV9DSEVDSyAoTk9ERSwgT01QX0NMQVVTRV9HUkFJTlNJWkUpKQogI2RlZmluZSBPTVBfQ0xB
VVNFX05VTV9UQVNLU19TVFJJQ1QoTk9ERSkgXAogICBUUkVFX1BSSVZBVEUgKE9NUF9DTEFV
U0VfU1VCQ09ERV9DSEVDSyAoTk9ERSwgT01QX0NMQVVTRV9OVU1fVEFTS1MpKQorI2RlZmlu
ZSBPTVBfQ0xBVVNFX05VTV9USFJFQURTX1NUUklDVChOT0RFKSBcCisgIFRSRUVfUFJJVkFU
RSAoT01QX0NMQVVTRV9TVUJDT0RFX0NIRUNLIChOT0RFLCBPTVBfQ0xBVVNFX05VTV9USFJF
QURTKSkKKyNkZWZpbmUgT01QX0NMQVVTRV9USFJFQURfTElNSVRfU1RSSUNUKE5PREUpIFwK
KyAgVFJFRV9QUklWQVRFIChPTVBfQ0xBVVNFX1NVQkNPREVfQ0hFQ0sgKE5PREUsIE9NUF9D
TEFVU0VfVEhSRUFEX0xJTUlUKSkKKyNkZWZpbmUgT01QX0NMQVVTRV9OVU1fVEVBTVNfRElN
UyhOT0RFKSBcCisgIFRSRUVfUFJPVEVDVEVEIChPTVBfQ0xBVVNFX1NVQkNPREVfQ0hFQ0sg
KE5PREUsIE9NUF9DTEFVU0VfTlVNX1RFQU1TKSkKKyNkZWZpbmUgT01QX0NMQVVTRV9OVU1f
VEhSRUFEU19ESU1TKE5PREUpIFwKKyAgVFJFRV9QUk9URUNURUQgKE9NUF9DTEFVU0VfU1VC
Q09ERV9DSEVDSyAoTk9ERSwgT01QX0NMQVVTRV9OVU1fVEhSRUFEUykpCisjZGVmaW5lIE9N
UF9DTEFVU0VfVEhSRUFEX0xJTUlUX0RJTVMoTk9ERSkgXAorICBUUkVFX1BST1RFQ1RFRCAo
T01QX0NMQVVTRV9TVUJDT0RFX0NIRUNLIChOT0RFLCBPTVBfQ0xBVVNFX1RIUkVBRF9MSU1J
VCkpCiAKIC8qIE9wZW5BQ0MgY2xhdXNlIGV4cHJlc3Npb25zICAqLwogI2RlZmluZSBPTVBf
Q0xBVVNFX0VYUFIoTk9ERSwgQ0xBVVNFKSBcCkBAIC0xOTA5LDYgKzE5MTksMTcgQEAgY2xh
c3MgYXV0b19zdXBwcmVzc19sb2NhdGlvbl93cmFwcGVycwogI2RlZmluZSBPTVBfQ0xBVVNF
X0RPQUNST1NTX0RFUEVORChOT0RFKSBcCiAgIFRSRUVfUFJPVEVDVEVEIChPTVBfQ0xBVVNF
X1NVQkNPREVfQ0hFQ0sgKE5PREUsIE9NUF9DTEFVU0VfRE9BQ1JPU1MpKQogCisvKiBJZiB0
aGUgc3RyaW5nIHBhc3NlZCB0byB0aGUgJ21lc3NhZ2UnIGNsYXVzZSBpcyBub3QgbnVsbCB0
ZXJtaW5hdGVkLAorICAgT01QX0NMQVVTRV9NRVNTQUdFX0xFTiBtdXN0IGJlIHNldC4gICov
CisjZGVmaW5lIE9NUF9DTEFVU0VfTUVTU0FHRV9FWFBSKE5PREUpIFwKKyAgT01QX0NMQVVT
RV9PUEVSQU5EICggXAorICAgIE9NUF9DTEFVU0VfU1VCQ09ERV9DSEVDSyAoTk9ERSwgT01Q
X0NMQVVTRV9NRVNTQUdFKSwgMCkKKyNkZWZpbmUgT01QX0NMQVVTRV9NRVNTQUdFX0xFTihO
T0RFKSBcCisgIE9NUF9DTEFVU0VfT1BFUkFORCAoIFwKKyAgICBPTVBfQ0xBVVNFX1NVQkNP
REVfQ0hFQ0sgKE5PREUsIE9NUF9DTEFVU0VfTUVTU0FHRSksIDEpCisjZGVmaW5lIE9NUF9D
TEFVU0VfTUVTU0FHRV9TRVZFUklUWV9XQVJOKE5PREUpIFwKKyAgKE9NUF9DTEFVU0VfU1VC
Q09ERV9DSEVDSyAoTk9ERSwgT01QX0NMQVVTRV9NRVNTQUdFKS0+YmFzZS5wdWJsaWNfZmxh
ZykKKwogI2RlZmluZSBPTVBfQ0xBVVNFX01BUF9LSU5EKE5PREUpIFwKICAgKChlbnVtIGdv
bXBfbWFwX2tpbmQpIE9NUF9DTEFVU0VfU1VCQ09ERV9DSEVDSyAoTk9ERSwgT01QX0NMQVVT
RV9NQVApLT5vbXBfY2xhdXNlLnN1YmNvZGUubWFwX2tpbmQpCiAjZGVmaW5lIE9NUF9DTEFV
U0VfU0VUX01BUF9LSU5EKE5PREUsIE1BUF9LSU5EKSBcCg==

--------------iCsM76R7KSqxfIvCzg0iVfNl--