<?xml version="1.0" encoding="UTF-8" standalone="yes" ?>
<!DOCTYPE bugzilla SYSTEM "https://bugs.webkit.org/page.cgi?id=bugzilla.dtd">

<bugzilla version="5.0.4.1"
          urlbase="https://bugs.webkit.org/"
          
          maintainer="admin@webkit.org"
>

    <bug>
          <bug_id>108008</bug_id>
          
          <creation_ts>2013-01-26 11:16:59 -0800</creation_ts>
          <short_desc>Move LegacyProcess entry points into new EntryPoint directories</short_desc>
          <delta_ts>2013-01-26 11:46:48 -0800</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>New Bugs</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Sam Weinig">sam</reporter>
          <assigned_to name="Sam Weinig">sam</assigned_to>
          
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>817221</commentid>
    <comment_count>0</comment_count>
    <who name="Sam Weinig">sam</who>
    <bug_when>2013-01-26 11:16:59 -0800</bug_when>
    <thetext>Move LegacyProcess entry points into new EntryPoint directories</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>817223</commentid>
    <comment_count>1</comment_count>
      <attachid>184873</attachid>
    <who name="Sam Weinig">sam</who>
    <bug_when>2013-01-26 11:19:49 -0800</bug_when>
    <thetext>Created attachment 184873
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>817224</commentid>
    <comment_count>2</comment_count>
      <attachid>184874</attachid>
    <who name="Sam Weinig">sam</who>
    <bug_when>2013-01-26 11:26:01 -0800</bug_when>
    <thetext>Created attachment 184874
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>817232</commentid>
    <comment_count>3</comment_count>
      <attachid>184874</attachid>
    <who name="Sam Weinig">sam</who>
    <bug_when>2013-01-26 11:38:11 -0800</bug_when>
    <thetext>Comment on attachment 184874
Patch

Anders r+ the previous one, and this is no different, just trying to get the EWS bots on it, but they seem mad at me.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>817234</commentid>
    <comment_count>4</comment_count>
    <who name="Sam Weinig">sam</who>
    <bug_when>2013-01-26 11:46:48 -0800</bug_when>
    <thetext>Fixed in http://trac.webkit.org/changeset/140914.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>184873</attachid>
            <date>2013-01-26 11:19:49 -0800</date>
            <delta_ts>2013-01-26 11:26:00 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-108008-20130126111639.patch</filename>
            <type>text/plain</type>
            <size>146820</size>
            <attacher name="Sam Weinig">sam</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
S2l0Mi9DaGFuZ2VMb2cJKHJldmlzaW9uIDE0MDkxMikKKysrIFNvdXJjZS9XZWJLaXQyL0NoYW5n
ZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDc1IEBACisyMDEzLTAxLTI2ICBTYW0gV2Vp
bmlnICA8c2FtQHdlYmtpdC5vcmc+CisKKyAgICAgICAgTW92ZSBMZWdhY3lQcm9jZXNzIGVudHJ5
IHBvaW50cyBpbnRvIG5ldyBFbnRyeVBvaW50IGRpcmVjdG9yaWVzCisgICAgICAgIGh0dHBzOi8v
YnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMDgwMDgKKworICAgICAgICBSZXZpZXdl
ZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBBbHNvIHJlZmFjdG9ycyB0byByZW1vdmUg
dGhlIG5lZWQgZm9yIHRoZSBvdmVybHkgZ2VuZXJhbCBXZWJLaXRNYWluLCBieSBwdXR0aW5nIHRo
ZQorICAgICAgICBmcmFtZXdvcmsgbGF6eSBsb2FkaW5nIGludG8gYSBoZWxwZXIgZnVuY3Rpb24g
ZWFjaCBsZWdhY3kgcHJvY2VzcyBjYW4gY2FsbCAoaW4gQ2hpbGRQcm9jZXNzTWFpbkJvb3RzdHJh
cHBlci5oKQorCisgICAgICAgICogQ29uZmlndXJhdGlvbnMvTmV0d29ya1Byb2Nlc3MueGNjb25m
aWc6CisgICAgICAgICogQ29uZmlndXJhdGlvbnMvUGx1Z2luUHJvY2Vzcy54Y2NvbmZpZzoKKyAg
ICAgICAgKiBDb25maWd1cmF0aW9ucy9TaGFyZWRXb3JrZXJQcm9jZXNzLnhjY29uZmlnOgorICAg
ICAgICAqIENvbmZpZ3VyYXRpb25zL1dlYlByb2Nlc3MueGNjb25maWc6CisgICAgICAgICogTmV0
d29ya1Byb2Nlc3MvRW50cnlQb2ludDogQWRkZWQuCisgICAgICAgICogTmV0d29ya1Byb2Nlc3Mv
RW50cnlQb2ludC9tYWM6IEFkZGVkLgorICAgICAgICAqIE5ldHdvcmtQcm9jZXNzL0VudHJ5UG9p
bnQvbWFjL0xlZ2FjeVByb2Nlc3M6IEFkZGVkLgorICAgICAgICAqIE5ldHdvcmtQcm9jZXNzL0Vu
dHJ5UG9pbnQvbWFjL0xlZ2FjeVByb2Nlc3MvSW5mby5wbGlzdDogQ29waWVkIGZyb20gU291cmNl
L1dlYktpdDIvTmV0d29ya1Byb2Nlc3MvSW5mby5wbGlzdC4KKyAgICAgICAgKiBOZXR3b3JrUHJv
Y2Vzcy9FbnRyeVBvaW50L21hYy9MZWdhY3lQcm9jZXNzL05ldHdvcmtQcm9jZXNzTWFpbi5tbTog
Q29waWVkIGZyb20gU291cmNlL1dlYktpdDIvTmV0d29ya1Byb2Nlc3MvbWFjL05ldHdvcmtQcm9j
ZXNzTWFpbk1hYy5tbS4KKyAgICAgICAgKE5ldHdvcmtQcm9jZXNzTWFpbik6CisgICAgICAgICog
TmV0d29ya1Byb2Nlc3MvRW50cnlQb2ludC9tYWMvTGVnYWN5UHJvY2Vzcy9OZXR3b3JrUHJvY2Vz
c01haW5Cb290c3RyYXBwZXIuY3BwOiBBZGRlZC4KKyAgICAgICAgKG1haW4pOgorICAgICAgICAq
IE5ldHdvcmtQcm9jZXNzL0luZm8ucGxpc3Q6IFJlbW92ZWQuCisgICAgICAgICogTmV0d29ya1By
b2Nlc3MvTmV0d29ya1Byb2Nlc3NNYWluLmg6IFJlbW92ZWQuCisgICAgICAgICogTmV0d29ya1By
b2Nlc3MvbWFjL05ldHdvcmtQcm9jZXNzTWFpbk1hYy5tbTogUmVtb3ZlZC4KKyAgICAgICAgKiBQ
bHVnaW5Qcm9jZXNzL0VudHJ5UG9pbnQ6IEFkZGVkLgorICAgICAgICAqIFBsdWdpblByb2Nlc3Mv
RW50cnlQb2ludC9tYWM6IEFkZGVkLgorICAgICAgICAqIFBsdWdpblByb2Nlc3MvRW50cnlQb2lu
dC9tYWMvTGVnYWN5UHJvY2VzczogQWRkZWQuCisgICAgICAgICogUGx1Z2luUHJvY2Vzcy9FbnRy
eVBvaW50L21hYy9MZWdhY3lQcm9jZXNzL0luZm8ucGxpc3Q6IENvcGllZCBmcm9tIFNvdXJjZS9X
ZWJLaXQyL1BsdWdpblByb2Nlc3MvSW5mby5wbGlzdC4KKyAgICAgICAgKiBQbHVnaW5Qcm9jZXNz
L0VudHJ5UG9pbnQvbWFjL0xlZ2FjeVByb2Nlc3MvUGx1Z2luUHJvY2Vzc01haW4ubW06IENvcGll
ZCBmcm9tIFNvdXJjZS9XZWJLaXQyL1BsdWdpblByb2Nlc3MvbWFjL1BsdWdpblByb2Nlc3NNYWlu
TWFjLm1tLgorICAgICAgICAoUGx1Z2luUHJvY2Vzc01haW4pOgorICAgICAgICAqIFBsdWdpblBy
b2Nlc3MvRW50cnlQb2ludC9tYWMvTGVnYWN5UHJvY2Vzcy9QbHVnaW5Qcm9jZXNzTWFpbkJvb3Rz
dHJhcHBlci5jcHA6IEFkZGVkLgorICAgICAgICAobWFpbik6CisgICAgICAgICogUGx1Z2luUHJv
Y2Vzcy9JbmZvLnBsaXN0OiBSZW1vdmVkLgorICAgICAgICAqIFBsdWdpblByb2Nlc3MvUGx1Z2lu
UHJvY2Vzc01haW4uaDogUmVtb3ZlZC4KKyAgICAgICAgKiBQbHVnaW5Qcm9jZXNzL21hYy9QbHVn
aW5Qcm9jZXNzTWFpbk1hYy5tbTogUmVtb3ZlZC4KKyAgICAgICAgKiBTaGFyZWQvRW50cnlQb2lu
dFV0aWxpdGllczogQWRkZWQuCisgICAgICAgICogU2hhcmVkL0VudHJ5UG9pbnRVdGlsaXRpZXMv
bWFjOiBBZGRlZC4KKyAgICAgICAgKiBTaGFyZWQvRW50cnlQb2ludFV0aWxpdGllcy9tYWMvTGVn
YWN5UHJvY2VzczogQWRkZWQuCisgICAgICAgICogU2hhcmVkL0VudHJ5UG9pbnRVdGlsaXRpZXMv
bWFjL0xlZ2FjeVByb2Nlc3MvQ2hpbGRQcm9jZXNzTWFpbi5oOiBDb3BpZWQgZnJvbSBTb3VyY2Uv
V2ViS2l0Mi9TaGFyZWQvbWFjL0NoaWxkUHJvY2Vzc01haW4uaC4KKyAgICAgICAgKiBTaGFyZWQv
RW50cnlQb2ludFV0aWxpdGllcy9tYWMvTGVnYWN5UHJvY2Vzcy9DaGlsZFByb2Nlc3NNYWluLm1t
OiBDb3BpZWQgZnJvbSBTb3VyY2UvV2ViS2l0Mi9TaGFyZWQvbWFjL0NoaWxkUHJvY2Vzc01haW4u
bW0uCisgICAgICAgICogU2hhcmVkL0VudHJ5UG9pbnRVdGlsaXRpZXMvbWFjL0xlZ2FjeVByb2Nl
c3MvQ2hpbGRQcm9jZXNzTWFpbkJvb3RzdHJhcHBlci5oOiBBZGRlZC4KKyAgICAgICAgKGNsb3Nl
VW51c2VkRmlsZURlc2NyaXB0b3JzKToKKyAgICAgICAgKGdldEJvb3RzdHJhcE1haW5GdW5jdGlv
bik6CisgICAgICAgICogU2hhcmVkL0VudHJ5UG9pbnRVdGlsaXRpZXMvbWFjL1hQQ1NlcnZpY2U6
IEFkZGVkLgorICAgICAgICAqIFNoYXJlZC9tYWMvQ2hpbGRQcm9jZXNzTWFpbi5oOiBSZW1vdmVk
LgorICAgICAgICAqIFNoYXJlZC9tYWMvQ2hpbGRQcm9jZXNzTWFpbi5tbTogUmVtb3ZlZC4KKyAg
ICAgICAgKiBTaGFyZWRXb3JrZXJQcm9jZXNzL0VudHJ5UG9pbnQ6IEFkZGVkLgorICAgICAgICAq
IFNoYXJlZFdvcmtlclByb2Nlc3MvRW50cnlQb2ludC9tYWM6IEFkZGVkLgorICAgICAgICAqIFNo
YXJlZFdvcmtlclByb2Nlc3MvRW50cnlQb2ludC9tYWMvTGVnYWN5UHJvY2VzczogQWRkZWQuCisg
ICAgICAgICogU2hhcmVkV29ya2VyUHJvY2Vzcy9FbnRyeVBvaW50L21hYy9MZWdhY3lQcm9jZXNz
L0luZm8ucGxpc3Q6IENvcGllZCBmcm9tIFNvdXJjZS9XZWJLaXQyL1NoYXJlZFdvcmtlclByb2Nl
c3MvSW5mby5wbGlzdC4KKyAgICAgICAgKiBTaGFyZWRXb3JrZXJQcm9jZXNzL0VudHJ5UG9pbnQv
bWFjL0xlZ2FjeVByb2Nlc3MvU2hhcmVkV29ya2VyUHJvY2Vzc01haW4ubW06IENvcGllZCBmcm9t
IFNvdXJjZS9XZWJLaXQyL1NoYXJlZFdvcmtlclByb2Nlc3MvbWFjL1NoYXJlZFdvcmtlclByb2Nl
c3NNYWluTWFjLm1tLgorICAgICAgICAoU2hhcmVkV29ya2VyUHJvY2Vzc01haW4pOgorICAgICAg
ICAqIFNoYXJlZFdvcmtlclByb2Nlc3MvRW50cnlQb2ludC9tYWMvTGVnYWN5UHJvY2Vzcy9TaGFy
ZWRXb3JrZXJQcm9jZXNzTWFpbkJvb3RzdHJhcHBlci5jcHA6IEFkZGVkLgorICAgICAgICAobWFp
bik6CisgICAgICAgICogU2hhcmVkV29ya2VyUHJvY2Vzcy9JbmZvLnBsaXN0OiBSZW1vdmVkLgor
ICAgICAgICAqIFNoYXJlZFdvcmtlclByb2Nlc3MvU2hhcmVkV29ya2VyUHJvY2Vzc01haW4uaDog
UmVtb3ZlZC4KKyAgICAgICAgKiBTaGFyZWRXb3JrZXJQcm9jZXNzL21hYy9TaGFyZWRXb3JrZXJQ
cm9jZXNzTWFpbk1hYy5tbTogUmVtb3ZlZC4KKyAgICAgICAgKiBXZWJLaXQyLnhjb2RlcHJvai9w
cm9qZWN0LnBieHByb2o6CisgICAgICAgICogV2ViUHJvY2Vzcy9FbnRyeVBvaW50L21hYy9MZWdh
Y3lQcm9jZXNzL0luZm8ucGxpc3Q6IENvcGllZCBmcm9tIFNvdXJjZS9XZWJLaXQyL1dlYlByb2Nl
c3MvSW5mby5wbGlzdC4KKyAgICAgICAgKiBXZWJQcm9jZXNzL0VudHJ5UG9pbnQvbWFjL0xlZ2Fj
eVByb2Nlc3MvV2ViQ29udGVudFByb2Nlc3NNYWluLm1tOiBDb3BpZWQgZnJvbSBTb3VyY2UvV2Vi
S2l0Mi9XZWJQcm9jZXNzL21hYy9XZWJQcm9jZXNzTWFpbk1hYy5tbS4KKyAgICAgICAgKFdlYktp
dDo6V2ViQ29udGVudFByb2Nlc3NNYWluRGVsZWdhdGU6OldlYkNvbnRlbnRQcm9jZXNzTWFpbkRl
bGVnYXRlKToKKyAgICAgICAgKFdlYktpdCk6CisgICAgICAgIChXZWJDb250ZW50UHJvY2Vzc01h
aW4pOgorICAgICAgICAqIFdlYlByb2Nlc3MvRW50cnlQb2ludC9tYWMvTGVnYWN5UHJvY2Vzcy9X
ZWJDb250ZW50UHJvY2Vzc01haW5Cb290c3RyYXBwZXIuY3BwOiBBZGRlZC4KKyAgICAgICAgKG1h
aW4pOgorICAgICAgICAqIFdlYlByb2Nlc3MvSW5mby5wbGlzdDogUmVtb3ZlZC4KKyAgICAgICAg
KiBXZWJQcm9jZXNzL1dlYktpdE1haW4uY3BwOiBSZW1vdmVkLgorICAgICAgICAqIFdlYlByb2Nl
c3MvV2ViUHJvY2Vzc01haW4uaDogUmVtb3ZlZC4KKyAgICAgICAgKiBXZWJQcm9jZXNzL21hYy9X
ZWJQcm9jZXNzTWFpbk1hYy5tbTogUmVtb3ZlZC4KKyAgICAgICAgKiBtYWMvTWFpbk1hY1Byb2Nl
c3MuY3BwOiBSZW1vdmVkLgorCiAyMDEzLTAxLTI1ICBDaHJpc3RvcGhlIER1bWV6ICA8Y2hyaXN0
b3BoZS5kdW1lekBpbnRlbC5jb20+CiAKICAgICAgICAgW0VGTF1bV0syXSBVc2UgQyBBUEkgaW5z
aWRlIGV3a19kYXRhYmFzZV9tYW5hZ2VyIGFuZCBld2tfc3RvcmFnZV9tYW5hZ2VyCkluZGV4OiBT
b3VyY2UvV2ViS2l0Mi9Db25maWd1cmF0aW9ucy9OZXR3b3JrUHJvY2Vzcy54Y2NvbmZpZwo9PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0Mi9Db25maWd1cmF0aW9ucy9OZXR3b3JrUHJvY2Vzcy54
Y2NvbmZpZwkocmV2aXNpb24gMTQwODc3KQorKysgU291cmNlL1dlYktpdDIvQ29uZmlndXJhdGlv
bnMvTmV0d29ya1Byb2Nlc3MueGNjb25maWcJKHdvcmtpbmcgY29weSkKQEAgLTI1LDcgKzI1LDcg
QEAKIAogR0NDX0VOQUJMRV9PQkpDX0dDID0gTk87CiBQUk9EVUNUX05BTUUgPSBOZXR3b3JrUHJv
Y2VzczsKLUlORk9QTElTVF9GSUxFID0gTmV0d29ya1Byb2Nlc3MvSW5mby5wbGlzdDsKK0lORk9Q
TElTVF9GSUxFID0gTmV0d29ya1Byb2Nlc3MvRW50cnlQb2ludC9tYWMvTGVnYWN5UHJvY2Vzcy9J
bmZvLnBsaXN0OwogSU5TVEFMTF9QQVRIID0gJChXRUJLSVQyX0ZSQU1FV09SS1NfRElSKS9XZWJL
aXQyLmZyYW1ld29yazsKIAogQVBQX0lDT04gPSAkKEFQUF9JQ09OXyQoQ09ORklHVVJBVElPTikp
OwpJbmRleDogU291cmNlL1dlYktpdDIvQ29uZmlndXJhdGlvbnMvUGx1Z2luUHJvY2Vzcy54Y2Nv
bmZpZwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0Mi9Db25maWd1cmF0aW9ucy9QbHVnaW5Q
cm9jZXNzLnhjY29uZmlnCShyZXZpc2lvbiAxNDA4NzcpCisrKyBTb3VyY2UvV2ViS2l0Mi9Db25m
aWd1cmF0aW9ucy9QbHVnaW5Qcm9jZXNzLnhjY29uZmlnCSh3b3JraW5nIGNvcHkpCkBAIC0yNSw1
ICsyNSw1IEBACiAKIEdDQ19FTkFCTEVfT0JKQ19HQyA9IE5POwogUFJPRFVDVF9OQU1FID0gUGx1
Z2luUHJvY2VzczsKLUlORk9QTElTVF9GSUxFID0gUGx1Z2luUHJvY2Vzcy9JbmZvLnBsaXN0Owor
SU5GT1BMSVNUX0ZJTEUgPSBQbHVnaW5Qcm9jZXNzL0VudHJ5UG9pbnQvbWFjL0xlZ2FjeVByb2Nl
c3MvSW5mby5wbGlzdDsKIElOU1RBTExfUEFUSCA9ICQoV0VCS0lUMl9GUkFNRVdPUktTX0RJUikv
V2ViS2l0Mi5mcmFtZXdvcms7CkluZGV4OiBTb3VyY2UvV2ViS2l0Mi9Db25maWd1cmF0aW9ucy9T
aGFyZWRXb3JrZXJQcm9jZXNzLnhjY29uZmlnCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQy
L0NvbmZpZ3VyYXRpb25zL1NoYXJlZFdvcmtlclByb2Nlc3MueGNjb25maWcJKHJldmlzaW9uIDE0
MDg3NykKKysrIFNvdXJjZS9XZWJLaXQyL0NvbmZpZ3VyYXRpb25zL1NoYXJlZFdvcmtlclByb2Nl
c3MueGNjb25maWcJKHdvcmtpbmcgY29weSkKQEAgLTI1LDUgKzI1LDUgQEAKIAogR0NDX0VOQUJM
RV9PQkpDX0dDID0gTk87CiBQUk9EVUNUX05BTUUgPSBTaGFyZWRXb3JrZXJQcm9jZXNzOwotSU5G
T1BMSVNUX0ZJTEUgPSBTaGFyZWRXb3JrZXJQcm9jZXNzL0luZm8ucGxpc3Q7CitJTkZPUExJU1Rf
RklMRSA9IFNoYXJlZFdvcmtlclByb2Nlc3MvRW50cnlQb2ludC9tYWMvTGVnYWN5UHJvY2Vzcy9J
bmZvLnBsaXN0OwogSU5TVEFMTF9QQVRIID0gJChXRUJLSVQyX0ZSQU1FV09SS1NfRElSKS9XZWJL
aXQyLmZyYW1ld29yazsKSW5kZXg6IFNvdXJjZS9XZWJLaXQyL0NvbmZpZ3VyYXRpb25zL1dlYlBy
b2Nlc3MueGNjb25maWcKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdDIvQ29uZmlndXJhdGlv
bnMvV2ViUHJvY2Vzcy54Y2NvbmZpZwkocmV2aXNpb24gMTQwODc3KQorKysgU291cmNlL1dlYktp
dDIvQ29uZmlndXJhdGlvbnMvV2ViUHJvY2Vzcy54Y2NvbmZpZwkod29ya2luZyBjb3B5KQpAQCAt
MjUsNyArMjUsNyBAQAogCiBHQ0NfRU5BQkxFX09CSkNfR0MgPSBOTzsKIFBST0RVQ1RfTkFNRSA9
IFdlYlByb2Nlc3M7Ci1JTkZPUExJU1RfRklMRSA9IFdlYlByb2Nlc3MvSW5mby5wbGlzdDsKK0lO
Rk9QTElTVF9GSUxFID0gV2ViUHJvY2Vzcy9FbnRyeVBvaW50L21hYy9MZWdhY3lQcm9jZXNzL0lu
Zm8ucGxpc3Q7CiBJTlNUQUxMX1BBVEggPSAkKFdFQktJVDJfRlJBTUVXT1JLU19ESVIpL1dlYktp
dDIuZnJhbWV3b3JrOwogCiBBUFBfSUNPTiA9ICQoQVBQX0lDT05fJChDT05GSUdVUkFUSU9OKSk7
CkluZGV4OiBTb3VyY2UvV2ViS2l0Mi9OZXR3b3JrUHJvY2Vzcy9JbmZvLnBsaXN0Cj09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT0KLS0tIFNvdXJjZS9XZWJLaXQyL05ldHdvcmtQcm9jZXNzL0luZm8ucGxpc3QJKHJldmlzaW9u
IDE0MDg3NykKKysrIFNvdXJjZS9XZWJLaXQyL05ldHdvcmtQcm9jZXNzL0luZm8ucGxpc3QJKHdv
cmtpbmcgY29weSkKQEAgLTEsMzIgKzAsMCBAQAotPD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGlu
Zz0iVVRGLTgiPz4KLTwhRE9DVFlQRSBwbGlzdCBQVUJMSUMgIi0vL0FwcGxlLy9EVEQgUExJU1Qg
MS4wLy9FTiIgImh0dHA6Ly93d3cuYXBwbGUuY29tL0RURHMvUHJvcGVydHlMaXN0LTEuMC5kdGQi
PgotPHBsaXN0IHZlcnNpb249IjEuMCI+Ci08ZGljdD4KLQk8a2V5PkNGQnVuZGxlRXhlY3V0YWJs
ZTwva2V5PgotCTxzdHJpbmc+JHtFWEVDVVRBQkxFX05BTUV9PC9zdHJpbmc+Ci0JPGtleT5DRkJ1
bmRsZUdldEluZm9TdHJpbmc8L2tleT4KLQk8c3RyaW5nPiR7QlVORExFX1ZFUlNJT059LCBDb3B5
cmlnaHQgMjAwMy0yMDEzIEFwcGxlIEluYy48L3N0cmluZz4KLQk8a2V5PkNGQnVuZGxlSWRlbnRp
Zmllcjwva2V5PgotCTxzdHJpbmc+Y29tLmFwcGxlLldlYktpdC4ke1BST0RVQ1RfTkFNRX08L3N0
cmluZz4KLQk8a2V5PkNGQnVuZGxlSW5mb0RpY3Rpb25hcnlWZXJzaW9uPC9rZXk+Ci0JPHN0cmlu
Zz42LjA8L3N0cmluZz4KLQk8a2V5PkNGQnVuZGxlTmFtZTwva2V5PgotCTxzdHJpbmc+JHtQUk9E
VUNUX05BTUV9PC9zdHJpbmc+Ci0JPGtleT5DRkJ1bmRsZVBhY2thZ2VUeXBlPC9rZXk+Ci0JPHN0
cmluZz5BUFBMPC9zdHJpbmc+Ci0JPGtleT5DRkJ1bmRsZVNob3J0VmVyc2lvblN0cmluZzwva2V5
PgotCTxzdHJpbmc+JHtTSE9SVF9WRVJTSU9OX1NUUklOR308L3N0cmluZz4KLQk8a2V5PkNGQnVu
ZGxlVmVyc2lvbjwva2V5PgotCTxzdHJpbmc+JHtCVU5ETEVfVkVSU0lPTn08L3N0cmluZz4KLQk8
a2V5PkxTRmlsZVF1YXJhbnRpbmVFbmFibGVkPC9rZXk+Ci0JPHRydWUvPgotCTxrZXk+TFNNaW5p
bXVtU3lzdGVtVmVyc2lvbjwva2V5PgotCTxzdHJpbmc+JHtNQUNPU1hfREVQTE9ZTUVOVF9UQVJH
RVR9PC9zdHJpbmc+Ci0JPGtleT5MU1VJRWxlbWVudDwva2V5PgotCTx0cnVlLz4KLQk8a2V5Pk5T
UHJpbmNpcGFsQ2xhc3M8L2tleT4KLQk8c3RyaW5nPk5TQXBwbGljYXRpb248L3N0cmluZz4KLQk8
a2V5PkNGQnVuZGxlSWNvbkZpbGU8L2tleT4KLQk8c3RyaW5nPiR7QVBQX0lDT059PC9zdHJpbmc+
Ci08L2RpY3Q+Ci08L3BsaXN0PgpJbmRleDogU291cmNlL1dlYktpdDIvTmV0d29ya1Byb2Nlc3Mv
TmV0d29ya1Byb2Nlc3NNYWluLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdDIvTmV0d29y
a1Byb2Nlc3MvTmV0d29ya1Byb2Nlc3NNYWluLmgJKHJldmlzaW9uIDE0MDg3NykKKysrIFNvdXJj
ZS9XZWJLaXQyL05ldHdvcmtQcm9jZXNzL05ldHdvcmtQcm9jZXNzTWFpbi5oCSh3b3JraW5nIGNv
cHkpCkBAIC0xLDQxICswLDAgQEAKLS8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMTIgQXBwbGUgSW5j
LiBBbGwgcmlnaHRzIHJlc2VydmVkLgotICoKLSAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4g
c291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAotICogbW9kaWZpY2F0aW9u
LCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCi0g
KiBhcmUgbWV0OgotICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0
YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRp
dGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KLSAqIDIuIFJlZGlzdHJpYnV0aW9u
cyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAg
ICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2Ns
YWltZXIgaW4gdGhlCi0gKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMg
cHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgotICoKLSAqIFRISVMgU09GVFdBUkUgSVMg
UFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKLSAq
IEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5P
VCBMSU1JVEVEIFRPLAotICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJ
VFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgotICogUFVSUE9TRSBBUkUgRElTQ0xBSU1F
RC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCi0gKiBC
RSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBF
WEVNUExBUlksIE9SCi0gKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5P
VCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgotICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJW
SUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCi0gKiBJTlRF
UlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwg
V0hFVEhFUiBJTgotICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xV
RElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKLSAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQg
T0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKLSAqIFRIRSBQ
T1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KLSAqLwotCi0jaWZuZGVmIE5ldHdvcmtQcm9jZXNz
TWFpbl9oCi0jZGVmaW5lIE5ldHdvcmtQcm9jZXNzTWFpbl9oCi0KLSNpZiBFTkFCTEUoTkVUV09S
S19QUk9DRVNTKQotCi1uYW1lc3BhY2UgV2ViS2l0IHsKLSAgICAKLWNsYXNzIENvbW1hbmRMaW5l
OwotCi1pbnQgTmV0d29ya1Byb2Nlc3NNYWluKGNvbnN0IENvbW1hbmRMaW5lJik7Ci0gICAgCi19
IC8vIG5hbWVzcGFjZSBXZWJLaXQKLQotI2VuZGlmIC8vIEVOQUJMRShORVRXT1JLX1BST0NFU1Mp
Ci0KLSNlbmRpZiAvLyBOZXR3b3JrUHJvY2Vzc01haW5faApJbmRleDogU291cmNlL1dlYktpdDIv
TmV0d29ya1Byb2Nlc3MvRW50cnlQb2ludC9tYWMvTGVnYWN5UHJvY2Vzcy9JbmZvLnBsaXN0Cj09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQyL05ldHdvcmtQcm9jZXNzL0VudHJ5UG9pbnQvbWFj
L0xlZ2FjeVByb2Nlc3MvSW5mby5wbGlzdAkocmV2aXNpb24gMTQwODc3KQkoZnJvbSBTb3VyY2Uv
V2ViS2l0Mi9OZXR3b3JrUHJvY2Vzcy9JbmZvLnBsaXN0OjE0MDg3NykKKysrIFNvdXJjZS9XZWJL
aXQyL05ldHdvcmtQcm9jZXNzL0VudHJ5UG9pbnQvbWFjL0xlZ2FjeVByb2Nlc3MvSW5mby5wbGlz
dAkod29ya2luZyBjb3B5KQpAQCAtMCwwICsxLDMyIEBACis8P3htbCB2ZXJzaW9uPSIxLjAiIGVu
Y29kaW5nPSJVVEYtOCI/PgorPCFET0NUWVBFIHBsaXN0IFBVQkxJQyAiLS8vQXBwbGUvL0RURCBQ
TElTVCAxLjAvL0VOIiAiaHR0cDovL3d3dy5hcHBsZS5jb20vRFREcy9Qcm9wZXJ0eUxpc3QtMS4w
LmR0ZCI+Cis8cGxpc3QgdmVyc2lvbj0iMS4wIj4KKzxkaWN0PgorCTxrZXk+Q0ZCdW5kbGVFeGVj
dXRhYmxlPC9rZXk+CisJPHN0cmluZz4ke0VYRUNVVEFCTEVfTkFNRX08L3N0cmluZz4KKwk8a2V5
PkNGQnVuZGxlR2V0SW5mb1N0cmluZzwva2V5PgorCTxzdHJpbmc+JHtCVU5ETEVfVkVSU0lPTn0s
IENvcHlyaWdodCAyMDAzLTIwMTMgQXBwbGUgSW5jLjwvc3RyaW5nPgorCTxrZXk+Q0ZCdW5kbGVJ
ZGVudGlmaWVyPC9rZXk+CisJPHN0cmluZz5jb20uYXBwbGUuV2ViS2l0LiR7UFJPRFVDVF9OQU1F
fTwvc3RyaW5nPgorCTxrZXk+Q0ZCdW5kbGVJbmZvRGljdGlvbmFyeVZlcnNpb248L2tleT4KKwk8
c3RyaW5nPjYuMDwvc3RyaW5nPgorCTxrZXk+Q0ZCdW5kbGVOYW1lPC9rZXk+CisJPHN0cmluZz4k
e1BST0RVQ1RfTkFNRX08L3N0cmluZz4KKwk8a2V5PkNGQnVuZGxlUGFja2FnZVR5cGU8L2tleT4K
Kwk8c3RyaW5nPkFQUEw8L3N0cmluZz4KKwk8a2V5PkNGQnVuZGxlU2hvcnRWZXJzaW9uU3RyaW5n
PC9rZXk+CisJPHN0cmluZz4ke1NIT1JUX1ZFUlNJT05fU1RSSU5HfTwvc3RyaW5nPgorCTxrZXk+
Q0ZCdW5kbGVWZXJzaW9uPC9rZXk+CisJPHN0cmluZz4ke0JVTkRMRV9WRVJTSU9OfTwvc3RyaW5n
PgorCTxrZXk+TFNGaWxlUXVhcmFudGluZUVuYWJsZWQ8L2tleT4KKwk8dHJ1ZS8+CisJPGtleT5M
U01pbmltdW1TeXN0ZW1WZXJzaW9uPC9rZXk+CisJPHN0cmluZz4ke01BQ09TWF9ERVBMT1lNRU5U
X1RBUkdFVH08L3N0cmluZz4KKwk8a2V5PkxTVUlFbGVtZW50PC9rZXk+CisJPHRydWUvPgorCTxr
ZXk+TlNQcmluY2lwYWxDbGFzczwva2V5PgorCTxzdHJpbmc+TlNBcHBsaWNhdGlvbjwvc3RyaW5n
PgorCTxrZXk+Q0ZCdW5kbGVJY29uRmlsZTwva2V5PgorCTxzdHJpbmc+JHtBUFBfSUNPTn08L3N0
cmluZz4KKzwvZGljdD4KKzwvcGxpc3Q+CkluZGV4OiBTb3VyY2UvV2ViS2l0Mi9OZXR3b3JrUHJv
Y2Vzcy9FbnRyeVBvaW50L21hYy9MZWdhY3lQcm9jZXNzL05ldHdvcmtQcm9jZXNzTWFpbi5tbQo9
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0Mi9OZXR3b3JrUHJvY2Vzcy9FbnRyeVBvaW50L21h
Yy9MZWdhY3lQcm9jZXNzL05ldHdvcmtQcm9jZXNzTWFpbi5tbQkocmV2aXNpb24gMTQwODc3KQko
ZnJvbSBTb3VyY2UvV2ViS2l0Mi9OZXR3b3JrUHJvY2Vzcy9tYWMvTmV0d29ya1Byb2Nlc3NNYWlu
TWFjLm1tOjE0MDg3NykKKysrIFNvdXJjZS9XZWJLaXQyL05ldHdvcmtQcm9jZXNzL0VudHJ5UG9p
bnQvbWFjL0xlZ2FjeVByb2Nlc3MvTmV0d29ya1Byb2Nlc3NNYWluLm1tCSh3b3JraW5nIGNvcHkp
CkBAIC0wLDAgKzEsNDMgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTIgQXBwbGUgSW5jLiBB
bGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291
cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBh
cmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBh
cmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWlu
IHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlv
bnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBp
biBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBu
b3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWlt
ZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJv
dmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJP
VklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFO
RCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBM
SU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkg
QU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4g
SU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBM
SUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVN
UExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBM
SU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNF
UzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJV
UFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hF
VEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElO
RyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0Yg
VEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NT
SUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaW1wb3J0ICJjb25maWcuaCIKKyNpbXBv
cnQgIk5ldHdvcmtQcm9jZXNzTWFpbi5oIgorCisjaWYgRU5BQkxFKE5FVFdPUktfUFJPQ0VTUykK
KworI2ltcG9ydCAiQ2hpbGRQcm9jZXNzTWFpbi5oIgorI2ltcG9ydCAiTmV0d29ya1Byb2Nlc3Mu
aCIKKworbmFtZXNwYWNlIFdlYktpdCB7CisKK2ludCBOZXR3b3JrUHJvY2Vzc01haW4oY29uc3Qg
Q29tbWFuZExpbmUmIGNvbW1hbmRMaW5lKQoreworICAgIHJldHVybiBDaGlsZFByb2Nlc3NNYWlu
PE5ldHdvcmtQcm9jZXNzLCBDaGlsZFByb2Nlc3NNYWluRGVsZWdhdGU+KGNvbW1hbmRMaW5lKTsK
K30KKworfSAvLyBuYW1lc3BhY2UgV2ViS2l0CisKKyNlbmRpZiAvLyBFTkFCTEUoTkVUV09SS19Q
Uk9DRVNTKQpJbmRleDogU291cmNlL1dlYktpdDIvTmV0d29ya1Byb2Nlc3MvRW50cnlQb2ludC9t
YWMvTGVnYWN5UHJvY2Vzcy9OZXR3b3JrUHJvY2Vzc01haW4ubW0KPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291
cmNlL1dlYktpdDIvTmV0d29ya1Byb2Nlc3MvRW50cnlQb2ludC9tYWMvTGVnYWN5UHJvY2Vzcy9O
ZXR3b3JrUHJvY2Vzc01haW4ubW0JKHJldmlzaW9uIDApCisrKyBTb3VyY2UvV2ViS2l0Mi9OZXR3
b3JrUHJvY2Vzcy9FbnRyeVBvaW50L21hYy9MZWdhY3lQcm9jZXNzL05ldHdvcmtQcm9jZXNzTWFp
bi5tbQkod29ya2luZyBjb3B5KQpAQCAtMjQsMjAgKzI0LDI0IEBACiAgKi8KIAogI2ltcG9ydCAi
Y29uZmlnLmgiCi0jaW1wb3J0ICJOZXR3b3JrUHJvY2Vzc01haW4uaCIKIAogI2lmIEVOQUJMRShO
RVRXT1JLX1BST0NFU1MpCiAKICNpbXBvcnQgIkNoaWxkUHJvY2Vzc01haW4uaCIKICNpbXBvcnQg
Ik5ldHdvcmtQcm9jZXNzLmgiCisjaW1wb3J0ICJXS0Jhc2UuaCIKIAotbmFtZXNwYWNlIFdlYktp
dCB7Cit1c2luZyBuYW1lc3BhY2UgV2ViS2l0OwogCi1pbnQgTmV0d29ya1Byb2Nlc3NNYWluKGNv
bnN0IENvbW1hbmRMaW5lJiBjb21tYW5kTGluZSkKK2V4dGVybiAiQyIgV0tfRVhQT1JUIGludCBO
ZXR3b3JrUHJvY2Vzc01haW4oaW50IGFyZ2MsIGNoYXIqKiBhcmd2KTsKKworaW50IE5ldHdvcmtQ
cm9jZXNzTWFpbihpbnQgYXJnYywgY2hhcioqIGFyZ3YpCiB7CisgICAgQ29tbWFuZExpbmUgY29t
bWFuZExpbmU7CisgICAgaWYgKCFjb21tYW5kTGluZS5wYXJzZShhcmdjLCBhcmd2KSkKKyAgICAg
ICAgcmV0dXJuIEVYSVRfRkFJTFVSRTsKKwogICAgIHJldHVybiBDaGlsZFByb2Nlc3NNYWluPE5l
dHdvcmtQcm9jZXNzLCBDaGlsZFByb2Nlc3NNYWluRGVsZWdhdGU+KGNvbW1hbmRMaW5lKTsKIH0K
IAotfSAvLyBuYW1lc3BhY2UgV2ViS2l0Ci0KICNlbmRpZiAvLyBFTkFCTEUoTkVUV09SS19QUk9D
RVNTKQpJbmRleDogU291cmNlL1dlYktpdDIvTmV0d29ya1Byb2Nlc3MvRW50cnlQb2ludC9tYWMv
TGVnYWN5UHJvY2Vzcy9OZXR3b3JrUHJvY2Vzc01haW5Cb290c3RyYXBwZXIuY3BwCj09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT0KLS0tIFNvdXJjZS9XZWJLaXQyL05ldHdvcmtQcm9jZXNzL0VudHJ5UG9pbnQvbWFjL0xlZ2Fj
eVByb2Nlc3MvTmV0d29ya1Byb2Nlc3NNYWluQm9vdHN0cmFwcGVyLmNwcAkocmV2aXNpb24gMCkK
KysrIFNvdXJjZS9XZWJLaXQyL05ldHdvcmtQcm9jZXNzL0VudHJ5UG9pbnQvbWFjL0xlZ2FjeVBy
b2Nlc3MvTmV0d29ya1Byb2Nlc3NNYWluQm9vdHN0cmFwcGVyLmNwcAkocmV2aXNpb24gMCkKQEAg
LTAsMCArMSwzMiBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxMyBBcHBsZSBJbmMuIEFsbCBy
aWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2Ug
YW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBw
ZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBt
ZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhl
IGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBh
bmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJp
bmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGlj
ZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBp
biB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRl
ZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURF
RCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFO
WSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlU
RUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQg
RklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBO
TyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJM
RSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFS
WSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlU
RUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBM
T1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElP
TikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVS
IElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5F
R0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUg
VVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklM
SVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpbmNsdWRlICJDaGlsZFByb2Nlc3NNYWluQm9v
dHN0cmFwcGVyLmgiCisKK2ludCBtYWluKGludCBhcmdjLCBjaGFyKiogYXJndikKK3sKKyAgICBX
ZWJLaXRNYWluRnVuY3Rpb24gbWFpbkZ1bmN0aW9uID0gZ2V0Qm9vdHN0cmFwTWFpbkZ1bmN0aW9u
KGFyZ2MsIGFyZ3YsICJOZXR3b3JrUHJvY2Vzc01haW4iKTsKKyAgICByZXR1cm4gbWFpbkZ1bmN0
aW9uKGFyZ2MsIGFyZ3YpOworfQpJbmRleDogU291cmNlL1dlYktpdDIvTmV0d29ya1Byb2Nlc3Mv
bWFjL05ldHdvcmtQcm9jZXNzTWFpbk1hYy5tbQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0
Mi9OZXR3b3JrUHJvY2Vzcy9tYWMvTmV0d29ya1Byb2Nlc3NNYWluTWFjLm1tCShyZXZpc2lvbiAx
NDA4NzcpCisrKyBTb3VyY2UvV2ViS2l0Mi9OZXR3b3JrUHJvY2Vzcy9tYWMvTmV0d29ya1Byb2Nl
c3NNYWluTWFjLm1tCSh3b3JraW5nIGNvcHkpCkBAIC0xLDQzICswLDAgQEAKLS8qCi0gKiBDb3B5
cmlnaHQgKEMpIDIwMTIgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgotICoKLSAqIFJl
ZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Ig
d2l0aG91dAotICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhl
IGZvbGxvd2luZyBjb25kaXRpb25zCi0gKiBhcmUgbWV0OgotICogMS4gUmVkaXN0cmlidXRpb25z
IG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgIG5v
dGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1l
ci4KLSAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0
aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25z
IGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCi0gKiAgICBkb2N1bWVudGF0aW9u
IGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgot
ICoKLSAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENP
TlRSSUJVVE9SUyBgYEFTIElTJycKLSAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJB
TlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAotICogVEhFIElNUExJRUQgV0FS
UkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgot
ICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBP
UiBJVFMgQ09OVFJJQlVUT1JTCi0gKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNU
LCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCi0gKiBDT05TRVFVRU5USUFMIERB
TUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgotICog
U1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJ
VFM7IE9SIEJVU0lORVNTCi0gKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBB
TlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgotICogQ09OVFJBQ1QsIFNUUklDVCBM
SUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKLSAq
IEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVO
IElGIEFEVklTRUQgT0YKLSAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KLSAqLwot
Ci0jaW1wb3J0ICJjb25maWcuaCIKLSNpbXBvcnQgIk5ldHdvcmtQcm9jZXNzTWFpbi5oIgotCi0j
aWYgRU5BQkxFKE5FVFdPUktfUFJPQ0VTUykKLQotI2ltcG9ydCAiQ2hpbGRQcm9jZXNzTWFpbi5o
IgotI2ltcG9ydCAiTmV0d29ya1Byb2Nlc3MuaCIKLQotbmFtZXNwYWNlIFdlYktpdCB7Ci0KLWlu
dCBOZXR3b3JrUHJvY2Vzc01haW4oY29uc3QgQ29tbWFuZExpbmUmIGNvbW1hbmRMaW5lKQotewot
ICAgIHJldHVybiBDaGlsZFByb2Nlc3NNYWluPE5ldHdvcmtQcm9jZXNzLCBDaGlsZFByb2Nlc3NN
YWluRGVsZWdhdGU+KGNvbW1hbmRMaW5lKTsKLX0KLQotfSAvLyBuYW1lc3BhY2UgV2ViS2l0Ci0K
LSNlbmRpZiAvLyBFTkFCTEUoTkVUV09SS19QUk9DRVNTKQpJbmRleDogU291cmNlL1dlYktpdDIv
UGx1Z2luUHJvY2Vzcy9JbmZvLnBsaXN0Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQyL1Bs
dWdpblByb2Nlc3MvSW5mby5wbGlzdAkocmV2aXNpb24gMTQwODc3KQorKysgU291cmNlL1dlYktp
dDIvUGx1Z2luUHJvY2Vzcy9JbmZvLnBsaXN0CSh3b3JraW5nIGNvcHkpCkBAIC0xLDMwICswLDAg
QEAKLTw/eG1sIHZlcnNpb249IjEuMCIgZW5jb2Rpbmc9IlVURi04Ij8+Ci08IURPQ1RZUEUgcGxp
c3QgUFVCTElDICItLy9BcHBsZS8vRFREIFBMSVNUIDEuMC8vRU4iICJodHRwOi8vd3d3LmFwcGxl
LmNvbS9EVERzL1Byb3BlcnR5TGlzdC0xLjAuZHRkIj4KLTxwbGlzdCB2ZXJzaW9uPSIxLjAiPgot
PGRpY3Q+Ci0JPGtleT5DRkJ1bmRsZUV4ZWN1dGFibGU8L2tleT4KLQk8c3RyaW5nPiR7UFJPRFVD
VF9OQU1FfTwvc3RyaW5nPgotCTxrZXk+Q0ZCdW5kbGVHZXRJbmZvU3RyaW5nPC9rZXk+Ci0JPHN0
cmluZz4ke0JVTkRMRV9WRVJTSU9OfSwgQ29weXJpZ2h0IDIwMDMtMjAxMyBBcHBsZSBJbmMuPC9z
dHJpbmc+Ci0JPGtleT5DRkJ1bmRsZUlkZW50aWZpZXI8L2tleT4KLQk8c3RyaW5nPmNvbS5hcHBs
ZS5XZWJLaXQuJHtQUk9EVUNUX05BTUV9PC9zdHJpbmc+Ci0JPGtleT5DRkJ1bmRsZUluZm9EaWN0
aW9uYXJ5VmVyc2lvbjwva2V5PgotCTxzdHJpbmc+Ni4wPC9zdHJpbmc+Ci0JPGtleT5DRkJ1bmRs
ZU5hbWU8L2tleT4KLQk8c3RyaW5nPiR7UFJPRFVDVF9OQU1FfTwvc3RyaW5nPgotCTxrZXk+Q0ZC
dW5kbGVQYWNrYWdlVHlwZTwva2V5PgotCTxzdHJpbmc+QVBQTDwvc3RyaW5nPgotCTxrZXk+Q0ZC
dW5kbGVTaG9ydFZlcnNpb25TdHJpbmc8L2tleT4KLQk8c3RyaW5nPiR7U0hPUlRfVkVSU0lPTl9T
VFJJTkd9PC9zdHJpbmc+Ci0JPGtleT5DRkJ1bmRsZVZlcnNpb248L2tleT4KLQk8c3RyaW5nPiR7
QlVORExFX1ZFUlNJT059PC9zdHJpbmc+Ci0JPGtleT5MU0ZpbGVRdWFyYW50aW5lRW5hYmxlZDwv
a2V5PgotCTx0cnVlLz4KLQk8a2V5PkxTTWluaW11bVN5c3RlbVZlcnNpb248L2tleT4KLQk8c3Ry
aW5nPiR7TUFDT1NYX0RFUExPWU1FTlRfVEFSR0VUfTwvc3RyaW5nPgotCTxrZXk+TFNVSUVsZW1l
bnQ8L2tleT4KLQk8dHJ1ZS8+Ci0JPGtleT5OU1ByaW5jaXBhbENsYXNzPC9rZXk+Ci0JPHN0cmlu
Zz5OU0FwcGxpY2F0aW9uPC9zdHJpbmc+Ci08L2RpY3Q+Ci08L3BsaXN0PgpJbmRleDogU291cmNl
L1dlYktpdDIvUGx1Z2luUHJvY2Vzcy9QbHVnaW5Qcm9jZXNzTWFpbi5oCj09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0t
IFNvdXJjZS9XZWJLaXQyL1BsdWdpblByb2Nlc3MvUGx1Z2luUHJvY2Vzc01haW4uaAkocmV2aXNp
b24gMTQwODc3KQorKysgU291cmNlL1dlYktpdDIvUGx1Z2luUHJvY2Vzcy9QbHVnaW5Qcm9jZXNz
TWFpbi5oCSh3b3JraW5nIGNvcHkpCkBAIC0xLDQxICswLDAgQEAKLS8qCi0gKiBDb3B5cmlnaHQg
KEMpIDIwMTAgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgotICoKLSAqIFJlZGlzdHJp
YnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91
dAotICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxv
d2luZyBjb25kaXRpb25zCi0gKiBhcmUgbWV0OgotICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNv
dXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgIG5vdGljZSwg
dGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KLSAq
IDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJv
dmUgY29weXJpZ2h0Ci0gKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0
aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCi0gKiAgICBkb2N1bWVudGF0aW9uIGFuZC9v
ciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgotICoKLSAq
IFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJV
VE9SUyBgYEFTIElTJycKLSAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMs
IElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAotICogVEhFIElNUExJRUQgV0FSUkFOVElF
UyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgotICogUFVS
UE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMg
Q09OVFJJQlVUT1JTCi0gKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJ
REVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCi0gKiBDT05TRVFVRU5USUFMIERBTUFHRVMg
KElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgotICogU1VCU1RJ
VFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9S
IEJVU0lORVNTCi0gKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhF
T1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgotICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJ
VFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKLSAqIEFSSVNJ
TkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFE
VklTRUQgT0YKLSAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KLSAqLwotCi0jaWZu
ZGVmIFBsdWdpblByb2Nlc3NNYWluX2gKLSNkZWZpbmUgUGx1Z2luUHJvY2Vzc01haW5faAotCi0j
aWYgRU5BQkxFKFBMVUdJTl9QUk9DRVNTKQotCi1uYW1lc3BhY2UgV2ViS2l0IHsKLSAgICAKLWNs
YXNzIENvbW1hbmRMaW5lOwotCi1pbnQgUGx1Z2luUHJvY2Vzc01haW4oY29uc3QgQ29tbWFuZExp
bmUmKTsKLSAgICAKLX0gLy8gbmFtZXNwYWNlIFdlYktpdAotCi0jZW5kaWYgLy8gRU5BQkxFKFBM
VUdJTl9QUk9DRVNTKQotCi0jZW5kaWYgLy8gUGx1Z2luUHJvY2Vzc01haW5faApJbmRleDogU291
cmNlL1dlYktpdDIvUGx1Z2luUHJvY2Vzcy9FbnRyeVBvaW50L21hYy9MZWdhY3lQcm9jZXNzL0lu
Zm8ucGxpc3QKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdDIvUGx1Z2luUHJvY2Vzcy9FbnRy
eVBvaW50L21hYy9MZWdhY3lQcm9jZXNzL0luZm8ucGxpc3QJKHJldmlzaW9uIDE0MDg3NykJKGZy
b20gU291cmNlL1dlYktpdDIvUGx1Z2luUHJvY2Vzcy9JbmZvLnBsaXN0OjE0MDg3NykKKysrIFNv
dXJjZS9XZWJLaXQyL1BsdWdpblByb2Nlc3MvRW50cnlQb2ludC9tYWMvTGVnYWN5UHJvY2Vzcy9J
bmZvLnBsaXN0CSh3b3JraW5nIGNvcHkpCkBAIC0wLDAgKzEsMzAgQEAKKzw/eG1sIHZlcnNpb249
IjEuMCIgZW5jb2Rpbmc9IlVURi04Ij8+Cis8IURPQ1RZUEUgcGxpc3QgUFVCTElDICItLy9BcHBs
ZS8vRFREIFBMSVNUIDEuMC8vRU4iICJodHRwOi8vd3d3LmFwcGxlLmNvbS9EVERzL1Byb3BlcnR5
TGlzdC0xLjAuZHRkIj4KKzxwbGlzdCB2ZXJzaW9uPSIxLjAiPgorPGRpY3Q+CisJPGtleT5DRkJ1
bmRsZUV4ZWN1dGFibGU8L2tleT4KKwk8c3RyaW5nPiR7UFJPRFVDVF9OQU1FfTwvc3RyaW5nPgor
CTxrZXk+Q0ZCdW5kbGVHZXRJbmZvU3RyaW5nPC9rZXk+CisJPHN0cmluZz4ke0JVTkRMRV9WRVJT
SU9OfSwgQ29weXJpZ2h0IDIwMDMtMjAxMyBBcHBsZSBJbmMuPC9zdHJpbmc+CisJPGtleT5DRkJ1
bmRsZUlkZW50aWZpZXI8L2tleT4KKwk8c3RyaW5nPmNvbS5hcHBsZS5XZWJLaXQuJHtQUk9EVUNU
X05BTUV9PC9zdHJpbmc+CisJPGtleT5DRkJ1bmRsZUluZm9EaWN0aW9uYXJ5VmVyc2lvbjwva2V5
PgorCTxzdHJpbmc+Ni4wPC9zdHJpbmc+CisJPGtleT5DRkJ1bmRsZU5hbWU8L2tleT4KKwk8c3Ry
aW5nPiR7UFJPRFVDVF9OQU1FfTwvc3RyaW5nPgorCTxrZXk+Q0ZCdW5kbGVQYWNrYWdlVHlwZTwv
a2V5PgorCTxzdHJpbmc+QVBQTDwvc3RyaW5nPgorCTxrZXk+Q0ZCdW5kbGVTaG9ydFZlcnNpb25T
dHJpbmc8L2tleT4KKwk8c3RyaW5nPiR7U0hPUlRfVkVSU0lPTl9TVFJJTkd9PC9zdHJpbmc+CisJ
PGtleT5DRkJ1bmRsZVZlcnNpb248L2tleT4KKwk8c3RyaW5nPiR7QlVORExFX1ZFUlNJT059PC9z
dHJpbmc+CisJPGtleT5MU0ZpbGVRdWFyYW50aW5lRW5hYmxlZDwva2V5PgorCTx0cnVlLz4KKwk8
a2V5PkxTTWluaW11bVN5c3RlbVZlcnNpb248L2tleT4KKwk8c3RyaW5nPiR7TUFDT1NYX0RFUExP
WU1FTlRfVEFSR0VUfTwvc3RyaW5nPgorCTxrZXk+TFNVSUVsZW1lbnQ8L2tleT4KKwk8dHJ1ZS8+
CisJPGtleT5OU1ByaW5jaXBhbENsYXNzPC9rZXk+CisJPHN0cmluZz5OU0FwcGxpY2F0aW9uPC9z
dHJpbmc+Cis8L2RpY3Q+Cis8L3BsaXN0PgpJbmRleDogU291cmNlL1dlYktpdDIvUGx1Z2luUHJv
Y2Vzcy9FbnRyeVBvaW50L21hYy9MZWdhY3lQcm9jZXNzL1BsdWdpblByb2Nlc3NNYWluLm1tCj09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQyL1BsdWdpblByb2Nlc3MvRW50cnlQb2ludC9tYWMv
TGVnYWN5UHJvY2Vzcy9QbHVnaW5Qcm9jZXNzTWFpbi5tbQkocmV2aXNpb24gMTQwODc3KQkoZnJv
bSBTb3VyY2UvV2ViS2l0Mi9QbHVnaW5Qcm9jZXNzL21hYy9QbHVnaW5Qcm9jZXNzTWFpbk1hYy5t
bToxNDA4NzcpCisrKyBTb3VyY2UvV2ViS2l0Mi9QbHVnaW5Qcm9jZXNzL0VudHJ5UG9pbnQvbWFj
L0xlZ2FjeVByb2Nlc3MvUGx1Z2luUHJvY2Vzc01haW4ubW0JKHdvcmtpbmcgY29weSkKQEAgLTAs
MCArMSwxMDUgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTAsIDIwMTEgQXBwbGUgSW5jLiBB
bGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291
cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBh
cmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBh
cmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWlu
IHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlv
bnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBp
biBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBu
b3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWlt
ZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJv
dmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJP
VklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFO
RCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBM
SU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkg
QU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4g
SU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBM
SUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVN
UExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBM
SU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNF
UzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJV
UFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hF
VEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElO
RyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0Yg
VEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NT
SUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaW1wb3J0ICJjb25maWcuaCIKKyNpbXBv
cnQgIlBsdWdpblByb2Nlc3NNYWluLmgiCisKKyNpZiBFTkFCTEUoUExVR0lOX1BST0NFU1MpCisK
KyNpbXBvcnQgIkNoaWxkUHJvY2Vzc01haW4uaCIKKyNpbXBvcnQgIkVudmlyb25tZW50VXRpbGl0
aWVzLmgiCisjaW1wb3J0ICJOZXRzY2FwZVBsdWdpbk1vZHVsZS5oIgorI2ltcG9ydCAiUGx1Z2lu
UHJvY2Vzcy5oIgorI2ltcG9ydCA8V2ViQ29yZS9SdW5Mb29wLmg+CisKKyNpZiBVU0UoQVBQS0lU
KQorQGludGVyZmFjZSBOU0FwcGxpY2F0aW9uIChXZWJOU0FwcGxpY2F0aW9uRGV0YWlscykKKy0o
dm9pZClfaW5zdGFsbEF1dG9yZWxlYXNlUG9vbHNPbkN1cnJlbnRUaHJlYWRJZk5lY2Vzc2FyeTsK
K0BlbmQKKyNlbmRpZgorCit1c2luZyBuYW1lc3BhY2UgV2ViQ29yZTsKKworbmFtZXNwYWNlIFdl
YktpdCB7CisKK2NsYXNzIFBsdWdpblByb2Nlc3NNYWluRGVsZWdhdGUgOiBwdWJsaWMgQ2hpbGRQ
cm9jZXNzTWFpbkRlbGVnYXRlIHsKK3B1YmxpYzoKKyAgICBQbHVnaW5Qcm9jZXNzTWFpbkRlbGVn
YXRlKGNvbnN0IENvbW1hbmRMaW5lJiBjb21tYW5kTGluZSkKKyAgICAgICAgOiBDaGlsZFByb2Nl
c3NNYWluRGVsZWdhdGUoY29tbWFuZExpbmUpCisgICAgeworICAgIH0KKworICAgIHZpcnR1YWwg
dm9pZCBkb1ByZUluaXRpYWxpemF0aW9uV29yaygpCisgICAgeworICAgICAgICAvLyBSZW1vdmUg
dGhlIFBsdWdpblByb2Nlc3Mgc2hpbSBmcm9tIHRoZSBEWUxEX0lOU0VSVF9MSUJSQVJJRVMgZW52
aXJvbm1lbnQgdmFyaWFibGUgc28gYW55IHByb2Nlc3NlcworICAgICAgICAvLyBzcGF3bmVkIGJ5
IHRoZSBQbHVnaW5Qcm9jZXNzIGRvbid0IHRyeSB0byBpbnNlcnQgdGhlIHNoaW0gYW5kIGNyYXNo
LgorICAgICAgICBFbnZpcm9ubWVudFV0aWxpdGllczo6c3RyaXBWYWx1ZXNFbmRpbmdXaXRoU3Ry
aW5nKCJEWUxEX0lOU0VSVF9MSUJSQVJJRVMiLCAiL1BsdWdpblByb2Nlc3NTaGltLmR5bGliIik7
CisKKyNpZiBVU0UoQVBQS0lUKQorICAgICAgICBSdW5Mb29wOjpzZXRVc2VBcHBsaWNhdGlvblJ1
bkxvb3BPbk1haW5SdW5Mb29wKCk7CisKKyAgICAgICAgLy8gSW5pdGlhbGl6ZSBBcHBLaXQuCisg
ICAgICAgIFtOU0FwcGxpY2F0aW9uIHNoYXJlZEFwcGxpY2F0aW9uXTsKKworICAgICAgICAvLyBJ
bnN0YWxscyBhdXRvcmVsZWFzZSBwb29scyBvbiB0aGUgY3VycmVudCBydW5sb29wIHdoaWNoIHBy
ZXZlbnRzIG1lbW9yeSBmcm9tIGFjY3VtdWxhdGluZyBiZXR3ZWVuIHVzZXIgZXZlbnRzLgorICAg
ICAgICAvLyBGSVhNRTogUmVtb3ZlIHdoZW4gPHJkYXI6Ly9wcm9ibGVtLzg5Mjk0MjY+IGlzIGZp
eGVkLgorICAgICAgICBbTlNBcHAgX2luc3RhbGxBdXRvcmVsZWFzZVBvb2xzT25DdXJyZW50VGhy
ZWFkSWZOZWNlc3NhcnldOworI2VuZGlmCisKKyAgICAgICAgLy8gQ2hlY2sgaWYgd2UncmUgYmVp
bmcgc3Bhd25lZCB0byB3cml0ZSBhIE1JTUUgdHlwZSBwcmVmZXJlbmNlcyBmaWxlLgorICAgICAg
ICBTdHJpbmcgcGx1Z2luUGF0aCA9IG1fY29tbWFuZExpbmVbImNyZWF0ZVBsdWdpbk1JTUVUeXBl
c1ByZWZlcmVuY2VzIl07CisgICAgICAgIGlmICghcGx1Z2luUGF0aC5pc0VtcHR5KCkpIHsKKyAg
ICAgICAgICAgIC8vIFdlIGFyZSBuZXZlciBnb2luZyB0byBnZXQgdG8gdGhlIGFjdHVhbCBpbml0
aWFsaXphdGlvbiwgc28gaW5pdGlhbGl6ZSBXZWJLaXQyIG5vdy4KKyAgICAgICAgICAgIEluaXRp
YWxpemVXZWJLaXQyKCk7CisKKyAgICAgICAgICAgIGlmICghTmV0c2NhcGVQbHVnaW5Nb2R1bGU6
OmNyZWF0ZVBsdWdpbk1JTUVUeXBlc1ByZWZlcmVuY2VzKHBsdWdpblBhdGgpKQorICAgICAgICAg
ICAgICAgIGV4aXQoRVhJVF9GQUlMVVJFKTsKKyAgICAgICAgICAgIGV4aXQoRVhJVF9TVUNDRVNT
KTsKKyAgICAgICAgfQorICAgIH0KKworICAgIHZpcnR1YWwgdm9pZCBkb1Bvc3RSdW5Xb3JrKCkK
KyAgICB7CisjaWYgX19NQUNfT1NfWF9WRVJTSU9OX01JTl9SRVFVSVJFRCA+PSAxMDgwCisgICAg
ICAgIC8vIElmIHdlIGhhdmUgcHJpdmF0ZSB0ZW1wb3JhcnkgYW5kIGNhY2hlIGRpcmVjdG9yaWVz
LCBjbGVhbiB0aGVtIHVwLgorICAgICAgICBpZiAoZ2V0ZW52KCJESVJIRUxQRVJfVVNFUl9ESVJf
U1VGRklYIikpIHsKKyAgICAgICAgICAgIGNoYXIgZGFyd2luRGlyZWN0b3J5W1BBVEhfTUFYXTsK
KyAgICAgICAgICAgIGlmIChjb25mc3RyKF9DU19EQVJXSU5fVVNFUl9URU1QX0RJUiwgZGFyd2lu
RGlyZWN0b3J5LCBzaXplb2YoZGFyd2luRGlyZWN0b3J5KSkpCisgICAgICAgICAgICAgICAgW1tO
U0ZpbGVNYW5hZ2VyIGRlZmF1bHRNYW5hZ2VyXSByZW1vdmVJdGVtQXRQYXRoOltbTlNGaWxlTWFu
YWdlciBkZWZhdWx0TWFuYWdlcl0gc3RyaW5nV2l0aEZpbGVTeXN0ZW1SZXByZXNlbnRhdGlvbjpk
YXJ3aW5EaXJlY3RvcnkgbGVuZ3RoOnN0cmxlbihkYXJ3aW5EaXJlY3RvcnkpXSBlcnJvcjpuaWxd
OworICAgICAgICAgICAgaWYgKGNvbmZzdHIoX0NTX0RBUldJTl9VU0VSX0NBQ0hFX0RJUiwgZGFy
d2luRGlyZWN0b3J5LCBzaXplb2YoZGFyd2luRGlyZWN0b3J5KSkpCisgICAgICAgICAgICAgICAg
W1tOU0ZpbGVNYW5hZ2VyIGRlZmF1bHRNYW5hZ2VyXSByZW1vdmVJdGVtQXRQYXRoOltbTlNGaWxl
TWFuYWdlciBkZWZhdWx0TWFuYWdlcl0gc3RyaW5nV2l0aEZpbGVTeXN0ZW1SZXByZXNlbnRhdGlv
bjpkYXJ3aW5EaXJlY3RvcnkgbGVuZ3RoOnN0cmxlbihkYXJ3aW5EaXJlY3RvcnkpXSBlcnJvcjpu
aWxdOworICAgICAgICB9CisjZW5kaWYKKyAgICB9Cit9OworCitpbnQgUGx1Z2luUHJvY2Vzc01h
aW4oY29uc3QgQ29tbWFuZExpbmUmIGNvbW1hbmRMaW5lKQoreworICAgIHJldHVybiBDaGlsZFBy
b2Nlc3NNYWluPFBsdWdpblByb2Nlc3MsIFBsdWdpblByb2Nlc3NNYWluRGVsZWdhdGU+KGNvbW1h
bmRMaW5lKTsKK30KKworfQorCisjZW5kaWYgLy8gRU5BQkxFKFBMVUdJTl9QUk9DRVNTKQpJbmRl
eDogU291cmNlL1dlYktpdDIvUGx1Z2luUHJvY2Vzcy9FbnRyeVBvaW50L21hYy9MZWdhY3lQcm9j
ZXNzL1BsdWdpblByb2Nlc3NNYWluLm1tCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQyL1Bs
dWdpblByb2Nlc3MvRW50cnlQb2ludC9tYWMvTGVnYWN5UHJvY2Vzcy9QbHVnaW5Qcm9jZXNzTWFp
bi5tbQkocmV2aXNpb24gMCkKKysrIFNvdXJjZS9XZWJLaXQyL1BsdWdpblByb2Nlc3MvRW50cnlQ
b2ludC9tYWMvTGVnYWN5UHJvY2Vzcy9QbHVnaW5Qcm9jZXNzTWFpbi5tbQkod29ya2luZyBjb3B5
KQpAQCAtMjQsNyArMjQsNiBAQAogICovCiAKICNpbXBvcnQgImNvbmZpZy5oIgotI2ltcG9ydCAi
UGx1Z2luUHJvY2Vzc01haW4uaCIKIAogI2lmIEVOQUJMRShQTFVHSU5fUFJPQ0VTUykKIApAQCAt
MzIsNiArMzEsNyBAQAogI2ltcG9ydCAiRW52aXJvbm1lbnRVdGlsaXRpZXMuaCIKICNpbXBvcnQg
Ik5ldHNjYXBlUGx1Z2luTW9kdWxlLmgiCiAjaW1wb3J0ICJQbHVnaW5Qcm9jZXNzLmgiCisjaW1w
b3J0ICJXS0Jhc2UuaCIKICNpbXBvcnQgPFdlYkNvcmUvUnVuTG9vcC5oPgogCiAjaWYgVVNFKEFQ
UEtJVCkKQEAgLTk1LDExICs5NSwxOSBAQCBwdWJsaWM6CiAgICAgfQogfTsKIAotaW50IFBsdWdp
blByb2Nlc3NNYWluKGNvbnN0IENvbW1hbmRMaW5lJiBjb21tYW5kTGluZSkKK30gLy8gbmFtZXNw
YWNlIFdlYktpdAorCit1c2luZyBuYW1lc3BhY2UgV2ViS2l0OworCitleHRlcm4gIkMiIFdLX0VY
UE9SVCBpbnQgUGx1Z2luUHJvY2Vzc01haW4oaW50IGFyZ2MsIGNoYXIqKiBhcmd2KTsKKworaW50
IFBsdWdpblByb2Nlc3NNYWluKGludCBhcmdjLCBjaGFyKiogYXJndikKIHsKLSAgICByZXR1cm4g
Q2hpbGRQcm9jZXNzTWFpbjxQbHVnaW5Qcm9jZXNzLCBQbHVnaW5Qcm9jZXNzTWFpbkRlbGVnYXRl
Pihjb21tYW5kTGluZSk7Ci19CisgICAgQ29tbWFuZExpbmUgY29tbWFuZExpbmU7CisgICAgaWYg
KCFjb21tYW5kTGluZS5wYXJzZShhcmdjLCBhcmd2KSkKKyAgICAgICAgcmV0dXJuIEVYSVRfRkFJ
TFVSRTsKIAorICAgIHJldHVybiBDaGlsZFByb2Nlc3NNYWluPFBsdWdpblByb2Nlc3MsIFBsdWdp
blByb2Nlc3NNYWluRGVsZWdhdGU+KGNvbW1hbmRMaW5lKTsKIH0KIAogI2VuZGlmIC8vIEVOQUJM
RShQTFVHSU5fUFJPQ0VTUykKSW5kZXg6IFNvdXJjZS9XZWJLaXQyL1BsdWdpblByb2Nlc3MvRW50
cnlQb2ludC9tYWMvTGVnYWN5UHJvY2Vzcy9QbHVnaW5Qcm9jZXNzTWFpbkJvb3RzdHJhcHBlci5j
cHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdDIvUGx1Z2luUHJvY2Vzcy9FbnRyeVBvaW50
L21hYy9MZWdhY3lQcm9jZXNzL1BsdWdpblByb2Nlc3NNYWluQm9vdHN0cmFwcGVyLmNwcAkocmV2
aXNpb24gMCkKKysrIFNvdXJjZS9XZWJLaXQyL1BsdWdpblByb2Nlc3MvRW50cnlQb2ludC9tYWMv
TGVnYWN5UHJvY2Vzcy9QbHVnaW5Qcm9jZXNzTWFpbkJvb3RzdHJhcHBlci5jcHAJKHJldmlzaW9u
IDApCkBAIC0wLDAgKzEsMzIgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTMgQXBwbGUgSW5j
LiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4g
c291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9u
LCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisg
KiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0
YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRp
dGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9u
cyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAg
ICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2Ns
YWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMg
cHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMg
UFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAq
IEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5P
VCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJ
VFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1F
RC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBC
RSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBF
WEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5P
VCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJW
SUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRF
UlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwg
V0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xV
RElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQg
T0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQ
T1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaW5jbHVkZSAiQ2hpbGRQcm9jZXNz
TWFpbkJvb3RzdHJhcHBlci5oIgorCitpbnQgbWFpbihpbnQgYXJnYywgY2hhcioqIGFyZ3YpCit7
CisgICAgV2ViS2l0TWFpbkZ1bmN0aW9uIG1haW5GdW5jdGlvbiA9IGdldEJvb3RzdHJhcE1haW5G
dW5jdGlvbihhcmdjLCBhcmd2LCAiUGx1Z2luUHJvY2Vzc01haW4iKTsKKyAgICByZXR1cm4gbWFp
bkZ1bmN0aW9uKGFyZ2MsIGFyZ3YpOworfQpJbmRleDogU291cmNlL1dlYktpdDIvUGx1Z2luUHJv
Y2Vzcy9tYWMvUGx1Z2luUHJvY2Vzc01haW5NYWMubW0KPT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dl
YktpdDIvUGx1Z2luUHJvY2Vzcy9tYWMvUGx1Z2luUHJvY2Vzc01haW5NYWMubW0JKHJldmlzaW9u
IDE0MDg3NykKKysrIFNvdXJjZS9XZWJLaXQyL1BsdWdpblByb2Nlc3MvbWFjL1BsdWdpblByb2Nl
c3NNYWluTWFjLm1tCSh3b3JraW5nIGNvcHkpCkBAIC0xLDEwNSArMCwwIEBACi0vKgotICogQ29w
eXJpZ2h0IChDKSAyMDEwLCAyMDExIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KLSAq
Ci0gKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3
aXRoIG9yIHdpdGhvdXQKLSAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0
aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwotICogYXJlIG1ldDoKLSAqIDEuIFJlZGlzdHJp
YnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0Ci0g
KiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRp
c2NsYWltZXIuCi0gKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXBy
b2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAotICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29u
ZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQotICogICAgZG9jdW1l
bnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1
dGlvbi4KLSAqCi0gKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5E
IElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCi0gKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElF
RCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKLSAqIFRIRSBJTVBM
SUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJ
Q1VMQVIKLSAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExF
IElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUwotICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJ
TkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgotICogQ09OU0VRVUVO
VElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQg
T0YKLSAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBP
UiBQUk9GSVRTOyBPUiBCVVNJTkVTUwotICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBB
TkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KLSAqIENPTlRSQUNULCBT
VFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJ
U0UpCi0gKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FS
RSwgRVZFTiBJRiBBRFZJU0VEIE9GCi0gKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0Uu
Ci0gKi8KLQotI2ltcG9ydCAiY29uZmlnLmgiCi0jaW1wb3J0ICJQbHVnaW5Qcm9jZXNzTWFpbi5o
IgotCi0jaWYgRU5BQkxFKFBMVUdJTl9QUk9DRVNTKQotCi0jaW1wb3J0ICJDaGlsZFByb2Nlc3NN
YWluLmgiCi0jaW1wb3J0ICJFbnZpcm9ubWVudFV0aWxpdGllcy5oIgotI2ltcG9ydCAiTmV0c2Nh
cGVQbHVnaW5Nb2R1bGUuaCIKLSNpbXBvcnQgIlBsdWdpblByb2Nlc3MuaCIKLSNpbXBvcnQgPFdl
YkNvcmUvUnVuTG9vcC5oPgotCi0jaWYgVVNFKEFQUEtJVCkKLUBpbnRlcmZhY2UgTlNBcHBsaWNh
dGlvbiAoV2ViTlNBcHBsaWNhdGlvbkRldGFpbHMpCi0tKHZvaWQpX2luc3RhbGxBdXRvcmVsZWFz
ZVBvb2xzT25DdXJyZW50VGhyZWFkSWZOZWNlc3Nhcnk7Ci1AZW5kCi0jZW5kaWYKLQotdXNpbmcg
bmFtZXNwYWNlIFdlYkNvcmU7Ci0KLW5hbWVzcGFjZSBXZWJLaXQgewotCi1jbGFzcyBQbHVnaW5Q
cm9jZXNzTWFpbkRlbGVnYXRlIDogcHVibGljIENoaWxkUHJvY2Vzc01haW5EZWxlZ2F0ZSB7Ci1w
dWJsaWM6Ci0gICAgUGx1Z2luUHJvY2Vzc01haW5EZWxlZ2F0ZShjb25zdCBDb21tYW5kTGluZSYg
Y29tbWFuZExpbmUpCi0gICAgICAgIDogQ2hpbGRQcm9jZXNzTWFpbkRlbGVnYXRlKGNvbW1hbmRM
aW5lKQotICAgIHsKLSAgICB9Ci0KLSAgICB2aXJ0dWFsIHZvaWQgZG9QcmVJbml0aWFsaXphdGlv
bldvcmsoKQotICAgIHsKLSAgICAgICAgLy8gUmVtb3ZlIHRoZSBQbHVnaW5Qcm9jZXNzIHNoaW0g
ZnJvbSB0aGUgRFlMRF9JTlNFUlRfTElCUkFSSUVTIGVudmlyb25tZW50IHZhcmlhYmxlIHNvIGFu
eSBwcm9jZXNzZXMKLSAgICAgICAgLy8gc3Bhd25lZCBieSB0aGUgUGx1Z2luUHJvY2VzcyBkb24n
dCB0cnkgdG8gaW5zZXJ0IHRoZSBzaGltIGFuZCBjcmFzaC4KLSAgICAgICAgRW52aXJvbm1lbnRV
dGlsaXRpZXM6OnN0cmlwVmFsdWVzRW5kaW5nV2l0aFN0cmluZygiRFlMRF9JTlNFUlRfTElCUkFS
SUVTIiwgIi9QbHVnaW5Qcm9jZXNzU2hpbS5keWxpYiIpOwotCi0jaWYgVVNFKEFQUEtJVCkKLSAg
ICAgICAgUnVuTG9vcDo6c2V0VXNlQXBwbGljYXRpb25SdW5Mb29wT25NYWluUnVuTG9vcCgpOwot
Ci0gICAgICAgIC8vIEluaXRpYWxpemUgQXBwS2l0LgotICAgICAgICBbTlNBcHBsaWNhdGlvbiBz
aGFyZWRBcHBsaWNhdGlvbl07Ci0KLSAgICAgICAgLy8gSW5zdGFsbHMgYXV0b3JlbGVhc2UgcG9v
bHMgb24gdGhlIGN1cnJlbnQgcnVubG9vcCB3aGljaCBwcmV2ZW50cyBtZW1vcnkgZnJvbSBhY2N1
bXVsYXRpbmcgYmV0d2VlbiB1c2VyIGV2ZW50cy4KLSAgICAgICAgLy8gRklYTUU6IFJlbW92ZSB3
aGVuIDxyZGFyOi8vcHJvYmxlbS84OTI5NDI2PiBpcyBmaXhlZC4KLSAgICAgICAgW05TQXBwIF9p
bnN0YWxsQXV0b3JlbGVhc2VQb29sc09uQ3VycmVudFRocmVhZElmTmVjZXNzYXJ5XTsKLSNlbmRp
ZgotCi0gICAgICAgIC8vIENoZWNrIGlmIHdlJ3JlIGJlaW5nIHNwYXduZWQgdG8gd3JpdGUgYSBN
SU1FIHR5cGUgcHJlZmVyZW5jZXMgZmlsZS4KLSAgICAgICAgU3RyaW5nIHBsdWdpblBhdGggPSBt
X2NvbW1hbmRMaW5lWyJjcmVhdGVQbHVnaW5NSU1FVHlwZXNQcmVmZXJlbmNlcyJdOwotICAgICAg
ICBpZiAoIXBsdWdpblBhdGguaXNFbXB0eSgpKSB7Ci0gICAgICAgICAgICAvLyBXZSBhcmUgbmV2
ZXIgZ29pbmcgdG8gZ2V0IHRvIHRoZSBhY3R1YWwgaW5pdGlhbGl6YXRpb24sIHNvIGluaXRpYWxp
emUgV2ViS2l0MiBub3cuCi0gICAgICAgICAgICBJbml0aWFsaXplV2ViS2l0MigpOwotCi0gICAg
ICAgICAgICBpZiAoIU5ldHNjYXBlUGx1Z2luTW9kdWxlOjpjcmVhdGVQbHVnaW5NSU1FVHlwZXNQ
cmVmZXJlbmNlcyhwbHVnaW5QYXRoKSkKLSAgICAgICAgICAgICAgICBleGl0KEVYSVRfRkFJTFVS
RSk7Ci0gICAgICAgICAgICBleGl0KEVYSVRfU1VDQ0VTUyk7Ci0gICAgICAgIH0KLSAgICB9Ci0K
LSAgICB2aXJ0dWFsIHZvaWQgZG9Qb3N0UnVuV29yaygpCi0gICAgewotI2lmIF9fTUFDX09TX1hf
VkVSU0lPTl9NSU5fUkVRVUlSRUQgPj0gMTA4MAotICAgICAgICAvLyBJZiB3ZSBoYXZlIHByaXZh
dGUgdGVtcG9yYXJ5IGFuZCBjYWNoZSBkaXJlY3RvcmllcywgY2xlYW4gdGhlbSB1cC4KLSAgICAg
ICAgaWYgKGdldGVudigiRElSSEVMUEVSX1VTRVJfRElSX1NVRkZJWCIpKSB7Ci0gICAgICAgICAg
ICBjaGFyIGRhcndpbkRpcmVjdG9yeVtQQVRIX01BWF07Ci0gICAgICAgICAgICBpZiAoY29uZnN0
cihfQ1NfREFSV0lOX1VTRVJfVEVNUF9ESVIsIGRhcndpbkRpcmVjdG9yeSwgc2l6ZW9mKGRhcndp
bkRpcmVjdG9yeSkpKQotICAgICAgICAgICAgICAgIFtbTlNGaWxlTWFuYWdlciBkZWZhdWx0TWFu
YWdlcl0gcmVtb3ZlSXRlbUF0UGF0aDpbW05TRmlsZU1hbmFnZXIgZGVmYXVsdE1hbmFnZXJdIHN0
cmluZ1dpdGhGaWxlU3lzdGVtUmVwcmVzZW50YXRpb246ZGFyd2luRGlyZWN0b3J5IGxlbmd0aDpz
dHJsZW4oZGFyd2luRGlyZWN0b3J5KV0gZXJyb3I6bmlsXTsKLSAgICAgICAgICAgIGlmIChjb25m
c3RyKF9DU19EQVJXSU5fVVNFUl9DQUNIRV9ESVIsIGRhcndpbkRpcmVjdG9yeSwgc2l6ZW9mKGRh
cndpbkRpcmVjdG9yeSkpKQotICAgICAgICAgICAgICAgIFtbTlNGaWxlTWFuYWdlciBkZWZhdWx0
TWFuYWdlcl0gcmVtb3ZlSXRlbUF0UGF0aDpbW05TRmlsZU1hbmFnZXIgZGVmYXVsdE1hbmFnZXJd
IHN0cmluZ1dpdGhGaWxlU3lzdGVtUmVwcmVzZW50YXRpb246ZGFyd2luRGlyZWN0b3J5IGxlbmd0
aDpzdHJsZW4oZGFyd2luRGlyZWN0b3J5KV0gZXJyb3I6bmlsXTsKLSAgICAgICAgfQotI2VuZGlm
Ci0gICAgfQotfTsKLQotaW50IFBsdWdpblByb2Nlc3NNYWluKGNvbnN0IENvbW1hbmRMaW5lJiBj
b21tYW5kTGluZSkKLXsKLSAgICByZXR1cm4gQ2hpbGRQcm9jZXNzTWFpbjxQbHVnaW5Qcm9jZXNz
LCBQbHVnaW5Qcm9jZXNzTWFpbkRlbGVnYXRlPihjb21tYW5kTGluZSk7Ci19Ci0KLX0KLQotI2Vu
ZGlmIC8vIEVOQUJMRShQTFVHSU5fUFJPQ0VTUykKSW5kZXg6IFNvdXJjZS9XZWJLaXQyL1NoYXJl
ZC9FbnRyeVBvaW50VXRpbGl0aWVzL21hYy9MZWdhY3lQcm9jZXNzL0NoaWxkUHJvY2Vzc01haW4u
aAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0Mi9TaGFyZWQvRW50cnlQb2ludFV0aWxpdGll
cy9tYWMvTGVnYWN5UHJvY2Vzcy9DaGlsZFByb2Nlc3NNYWluLmgJKHJldmlzaW9uIDE0MDg3NykJ
KGZyb20gU291cmNlL1dlYktpdDIvU2hhcmVkL21hYy9DaGlsZFByb2Nlc3NNYWluLmg6MTQwODc3
KQorKysgU291cmNlL1dlYktpdDIvU2hhcmVkL0VudHJ5UG9pbnRVdGlsaXRpZXMvbWFjL0xlZ2Fj
eVByb2Nlc3MvQ2hpbGRQcm9jZXNzTWFpbi5oCSh3b3JraW5nIGNvcHkpCkBAIC0wLDAgKzEsMTAx
IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDEzIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNl
cnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5
IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBw
cm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEu
IFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29w
eXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9s
bG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0g
bXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxp
c3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICog
ICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhl
IGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExF
IElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1Mg
T1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAq
IFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZP
UiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNI
QUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkg
RElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICog
Q09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJP
Q1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNF
LCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVS
IENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENP
TlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBP
UiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJ
UyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VD
SCBEQU1BR0UuCisgKi8KKworI2lmbmRlZiBDaGlsZFByb2Nlc3NNYWluX2gKKyNkZWZpbmUgQ2hp
bGRQcm9jZXNzTWFpbl9oCisKKyNpbXBvcnQgIkNoaWxkUHJvY2Vzcy5oIgorI2ltcG9ydCAiQ29t
bWFuZExpbmUuaCIKKyNpbXBvcnQgIldlYktpdDJJbml0aWFsaXplLmgiCisjaW1wb3J0IDxXZWJD
b3JlL1J1bkxvb3AuaD4KKyNpbXBvcnQgPFdlYktpdFN5c3RlbUludGVyZmFjZS5oPgorI2ltcG9y
dCA8c3lzZXhpdHMuaD4KKworbmFtZXNwYWNlIFdlYktpdCB7CisKK2NsYXNzIENoaWxkUHJvY2Vz
c01haW5EZWxlZ2F0ZSB7CitwdWJsaWM6CisgICAgQ2hpbGRQcm9jZXNzTWFpbkRlbGVnYXRlKGNv
bnN0IENvbW1hbmRMaW5lJiBjb21tYW5kTGluZSkKKyAgICAgICAgOiBtX2NvbW1hbmRMaW5lKGNv
bW1hbmRMaW5lKQorICAgIHsKKyAgICB9CisKKyAgICB2aXJ0dWFsIH5DaGlsZFByb2Nlc3NNYWlu
RGVsZWdhdGUoKTsKKworICAgIHZpcnR1YWwgdm9pZCBpbnN0YWxsU2lnbmFsSGFuZGxlcnMoKTsK
KyAgICB2aXJ0dWFsIHZvaWQgZG9QcmVJbml0aWFsaXphdGlvbldvcmsoKTsKKworICAgIHZpcnR1
YWwgYm9vbCBnZXRDb25uZWN0aW9uSWRlbnRpZmllcihDb3JlSVBDOjpDb25uZWN0aW9uOjpJZGVu
dGlmaWVyJiBpZGVudGlmaWVyKTsKKyAgICB2aXJ0dWFsIGJvb2wgZ2V0Q2xpZW50SWRlbnRpZmll
cihTdHJpbmcmIGNsaWVudElkZW50aWZpZXIpOworICAgIHZpcnR1YWwgYm9vbCBnZXRDbGllbnRQ
cm9jZXNzTmFtZShTdHJpbmcmIGNsaWVudFByb2Nlc3NOYW1lKTsKKworICAgIHZpcnR1YWwgdm9p
ZCBkb1Bvc3RSdW5Xb3JrKCk7CisKK3Byb3RlY3RlZDoKKyAgICBjb25zdCBDb21tYW5kTGluZSYg
bV9jb21tYW5kTGluZTsKK307CisKK3RlbXBsYXRlPHR5cGVuYW1lIENoaWxkUHJvY2Vzc1R5cGUs
IHR5cGVuYW1lIENoaWxkUHJvY2Vzc01haW5EZWxlZ2F0ZVR5cGU+CitpbnQgQ2hpbGRQcm9jZXNz
TWFpbihjb25zdCBDb21tYW5kTGluZSYgY29tbWFuZExpbmUpCit7CisgICAgQ2hpbGRQcm9jZXNz
TWFpbkRlbGVnYXRlVHlwZSBkZWxlZ2F0ZShjb21tYW5kTGluZSk7CisKKyAgICBAYXV0b3JlbGVh
c2Vwb29sIHsKKyAgICAgICAgZGVsZWdhdGUuaW5zdGFsbFNpZ25hbEhhbmRsZXJzKCk7CisgICAg
ICAgIGRlbGVnYXRlLmRvUHJlSW5pdGlhbGl6YXRpb25Xb3JrKCk7CisKKyAgICAgICAgSW5pdGlh
bGl6ZVdlYktpdDIoKTsKKworICAgICAgICBDaGlsZFByb2Nlc3NJbml0aWFsaXphdGlvblBhcmFt
ZXRlcnMgcGFyYW1ldGVyczsKKyAgICAgICAgaWYgKCFkZWxlZ2F0ZS5nZXRDb25uZWN0aW9uSWRl
bnRpZmllcihwYXJhbWV0ZXJzLmNvbm5lY3Rpb25JZGVudGlmaWVyKSkKKyAgICAgICAgICAgIHJl
dHVybiBFWElUX0ZBSUxVUkU7CisKKyAgICAgICAgaWYgKCFkZWxlZ2F0ZS5nZXRDbGllbnRJZGVu
dGlmaWVyKHBhcmFtZXRlcnMuY2xpZW50SWRlbnRpZmllcikpCisgICAgICAgICAgICByZXR1cm4g
RVhJVF9GQUlMVVJFOworCisgICAgICAgIGlmICghZGVsZWdhdGUuZ2V0Q2xpZW50UHJvY2Vzc05h
bWUocGFyYW1ldGVycy51aVByb2Nlc3NOYW1lKSkKKyAgICAgICAgICAgIHJldHVybiBFWElUX0ZB
SUxVUkU7CisKKyAgICAgICAgLy8gRklYTUU6IFRoaXMgc2hvdWxkIGJlIG1vdmVkIHRvIENoaWxk
UHJvY2Vzc01hYyBpZiBpdCBpcyBzdGlsbCBuZWNlc3NhcnkuCisgICAgICAgIFN0cmluZyBsb2Nh
bGl6YXRpb24gPSBjb21tYW5kTGluZVsibG9jYWxpemF0aW9uIl07CisgICAgICAgIFJldGFpblB0
cjxDRlN0cmluZ1JlZj4gY2ZMb2NhbGl6YXRpb24oQWRvcHRDRiwgQ0ZTdHJpbmdDcmVhdGVXaXRo
Q2hhcmFjdGVycygwLCByZWludGVycHJldF9jYXN0PGNvbnN0IFVuaUNoYXIqPihsb2NhbGl6YXRp
b24uY2hhcmFjdGVycygpKSwgbG9jYWxpemF0aW9uLmxlbmd0aCgpKSk7CisgICAgICAgIGlmIChj
ZkxvY2FsaXphdGlvbikKKyAgICAgICAgICAgIFdLU2V0RGVmYXVsdExvY2FsaXphdGlvbihjZkxv
Y2FsaXphdGlvbi5nZXQoKSk7CisKKyAgICAgICAgQ2hpbGRQcm9jZXNzVHlwZTo6c2hhcmVkKCku
aW5pdGlhbGl6ZShwYXJhbWV0ZXJzKTsKKyAgICB9CisKKyAgICBXZWJDb3JlOjpSdW5Mb29wOjpy
dW4oKTsKKworICAgIEBhdXRvcmVsZWFzZXBvb2wgeworICAgICAgICBkZWxlZ2F0ZS5kb1Bvc3RS
dW5Xb3JrKCk7CisgICAgfQorCisgICAgcmV0dXJuIDA7Cit9CisKK30gLy8gbmFtZXNwYWNlIFdl
YktpdAorCisjZW5kaWYgLy8gQ2hpbGRQcm9jZXNzTWFpbl9oCkluZGV4OiBTb3VyY2UvV2ViS2l0
Mi9TaGFyZWQvRW50cnlQb2ludFV0aWxpdGllcy9tYWMvTGVnYWN5UHJvY2Vzcy9DaGlsZFByb2Nl
c3NNYWluLm1tCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQyL1NoYXJlZC9FbnRyeVBvaW50
VXRpbGl0aWVzL21hYy9MZWdhY3lQcm9jZXNzL0NoaWxkUHJvY2Vzc01haW4ubW0JKHJldmlzaW9u
IDE0MDg3NykJKGZyb20gU291cmNlL1dlYktpdDIvU2hhcmVkL21hYy9DaGlsZFByb2Nlc3NNYWlu
Lm1tOjE0MDg3NykKKysrIFNvdXJjZS9XZWJLaXQyL1NoYXJlZC9FbnRyeVBvaW50VXRpbGl0aWVz
L21hYy9MZWdhY3lQcm9jZXNzL0NoaWxkUHJvY2Vzc01haW4ubW0JKHdvcmtpbmcgY29weSkKQEAg
LTAsMCArMSw5NSBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxMyBBcHBsZSBJbmMuIEFsbCBy
aWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2Ug
YW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBw
ZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBt
ZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhl
IGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBh
bmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJp
bmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGlj
ZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBp
biB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRl
ZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURF
RCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFO
WSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlU
RUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQg
RklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBO
TyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJM
RSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFS
WSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlU
RUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBM
T1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElP
TikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVS
IElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5F
R0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUg
VVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklM
SVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpbmNsdWRlICJjb25maWcuaCIKKyNpbmNsdWRl
ICJDaGlsZFByb2Nlc3NNYWluLmgiCisKKyNpbXBvcnQgPG1hY2gvbWFjaF9lcnJvci5oPgorI2lt
cG9ydCA8c2VydmVycy9ib290c3RyYXAuaD4KKyNpbXBvcnQgPHN0ZGlvLmg+CisjaW1wb3J0IDx3
dGYvUmV0YWluUHRyLmg+CisjaW1wb3J0IDx3dGYvdGV4dC9DU3RyaW5nLmg+CisKKyNkZWZpbmUg
U0hPV19DUkFTSF9SRVBPUlRFUiAxCisKK25hbWVzcGFjZSBXZWJLaXQgeworCitDaGlsZFByb2Nl
c3NNYWluRGVsZWdhdGU6On5DaGlsZFByb2Nlc3NNYWluRGVsZWdhdGUoKQoreworfQorCit2b2lk
IENoaWxkUHJvY2Vzc01haW5EZWxlZ2F0ZTo6aW5zdGFsbFNpZ25hbEhhbmRsZXJzKCkKK3sKKyNp
ZiAhU0hPV19DUkFTSF9SRVBPUlRFUgorICAgIC8vIEluc3RhbGxzIHNpZ25hbCBoYW5kbGVycyB0
aGF0IGV4aXQgb24gYSBjcmFzaCBzbyB0aGF0IENyYXNoUmVwb3J0ZXIgZG9lcyBub3Qgc2hvdyB1
cC4KKyAgICBzaWduYWwoU0lHSUxMLCBfZXhpdCk7CisgICAgc2lnbmFsKFNJR0ZQRSwgX2V4aXQp
OworICAgIHNpZ25hbChTSUdCVVMsIF9leGl0KTsKKyAgICBzaWduYWwoU0lHU0VHViwgX2V4aXQp
OworI2VuZGlmCit9CisKK3ZvaWQgQ2hpbGRQcm9jZXNzTWFpbkRlbGVnYXRlOjpkb1ByZUluaXRp
YWxpemF0aW9uV29yaygpCit7Cit9CisKK2Jvb2wgQ2hpbGRQcm9jZXNzTWFpbkRlbGVnYXRlOjpn
ZXRDb25uZWN0aW9uSWRlbnRpZmllcihDb3JlSVBDOjpDb25uZWN0aW9uOjpJZGVudGlmaWVyJiBp
ZGVudGlmaWVyKQoreworICAgIFN0cmluZyBzZXJ2aWNlTmFtZSA9IG1fY29tbWFuZExpbmVbInNl
cnZpY2VuYW1lIl07CisgICAgaWYgKHNlcnZpY2VOYW1lLmlzRW1wdHkoKSkKKyAgICAgICAgcmV0
dXJuIGZhbHNlOworICAgIAorICAgIG1hY2hfcG9ydF90IHNlcnZlclBvcnQ7CisgICAga2Vybl9y
ZXR1cm5fdCBrciA9IGJvb3RzdHJhcF9sb29rX3VwKGJvb3RzdHJhcF9wb3J0LCBzZXJ2aWNlTmFt
ZS51dGY4KCkuZGF0YSgpLCAmc2VydmVyUG9ydCk7CisgICAgaWYgKGtyKSB7CisgICAgICAgIFdU
RkxvZ0Fsd2F5cygiYm9vdHN0cmFwX2xvb2tfdXAgcmVzdWx0OiAlcyAoJXgpXG4iLCBtYWNoX2Vy
cm9yX3N0cmluZyhrciksIGtyKTsKKyAgICAgICAgcmV0dXJuIGZhbHNlOworICAgIH0KKworICAg
IGlkZW50aWZpZXIgPSBzZXJ2ZXJQb3J0OworICAgIHJldHVybiB0cnVlOworfQorCitib29sIENo
aWxkUHJvY2Vzc01haW5EZWxlZ2F0ZTo6Z2V0Q2xpZW50SWRlbnRpZmllcihTdHJpbmcmIGNsaWVu
dElkZW50aWZpZXIpCit7CisgICAgY2xpZW50SWRlbnRpZmllciA9IG1fY29tbWFuZExpbmVbImNs
aWVudC1pZGVudGlmaWVyIl07CisgICAgaWYgKGNsaWVudElkZW50aWZpZXIuaXNFbXB0eSgpKQor
ICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgcmV0dXJuIHRydWU7Cit9CisKK2Jvb2wgQ2hpbGRQ
cm9jZXNzTWFpbkRlbGVnYXRlOjpnZXRDbGllbnRQcm9jZXNzTmFtZShTdHJpbmcmIGNsaWVudFBy
b2Nlc3NOYW1lKQoreworICAgIGNsaWVudFByb2Nlc3NOYW1lID0gbV9jb21tYW5kTGluZVsidWkt
cHJvY2Vzcy1uYW1lIl07CisgICAgaWYgKGNsaWVudFByb2Nlc3NOYW1lLmlzRW1wdHkoKSkKKyAg
ICAgICAgcmV0dXJuIGZhbHNlOworICAgIHJldHVybiB0cnVlOworfQorCit2b2lkIENoaWxkUHJv
Y2Vzc01haW5EZWxlZ2F0ZTo6ZG9Qb3N0UnVuV29yaygpCit7Cit9CisKK30gLy8gbmFtZXNwYWNl
IFdlYktpdApJbmRleDogU291cmNlL1dlYktpdDIvU2hhcmVkL0VudHJ5UG9pbnRVdGlsaXRpZXMv
bWFjL0xlZ2FjeVByb2Nlc3MvQ2hpbGRQcm9jZXNzTWFpbkJvb3RzdHJhcHBlci5oCj09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT0KLS0tIFNvdXJjZS9XZWJLaXQyL1NoYXJlZC9FbnRyeVBvaW50VXRpbGl0aWVzL21hYy9MZWdh
Y3lQcm9jZXNzL0NoaWxkUHJvY2Vzc01haW5Cb290c3RyYXBwZXIuaAkocmV2aXNpb24gMCkKKysr
IFNvdXJjZS9XZWJLaXQyL1NoYXJlZC9FbnRyeVBvaW50VXRpbGl0aWVzL21hYy9MZWdhY3lQcm9j
ZXNzL0NoaWxkUHJvY2Vzc01haW5Cb290c3RyYXBwZXIuaAkocmV2aXNpb24gMCkKQEAgLTAsMCAr
MSw3NSBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxMyBBcHBsZSBJbmMuIEFsbCByaWdodHMg
cmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJp
bmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0
ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6Cisg
KiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3Zl
IGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhl
IGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBm
b3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhp
cyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUK
KyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRo
IHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBB
UFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBS
RVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8s
CisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVT
UyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVO
VCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1Ig
QU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IK
KyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8s
IFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9G
IFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9X
RVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisg
KiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VO
Q0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9G
IFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9G
IFNVQ0ggREFNQUdFLgorICovCisKKyNpZm5kZWYgQ2hpbGRQcm9jZXNzTWFpbkJvb3RzdHJhcHBl
cl9oCisjZGVmaW5lIENoaWxkUHJvY2Vzc01haW5Cb290c3RyYXBwZXJfaAorCisjaW5jbHVkZSA8
ZGxmY24uaD4KKyNpbmNsdWRlIDxzdGRpby5oPgorI2luY2x1ZGUgPHN0ZGxpYi5oPgorI2luY2x1
ZGUgPHN5cy9ldmVudC5oPgorI2luY2x1ZGUgPHVuaXN0ZC5oPgorCitzdGF0aWMgdm9pZCBjbG9z
ZVVudXNlZEZpbGVEZXNjcmlwdG9ycygpCit7CisgICAgaW50IG51bUZEcyA9IGdldGR0YWJsZXNp
emUoKTsKKworICAgIC8vIENsb3NlIGFsbCBmaWxlIGRlc2NyaXB0b3JzIGV4Y2VwdCBzdGRpbiwg
c3Rkb3V0IGFuZCBzdGRlcnIuCisgICAgZm9yIChpbnQgZmQgPSAzOyBmZCA8IG51bUZEczsgKytm
ZCkgeworICAgICAgICAvLyBDaGVjayBpZiB0aGlzIGlzIGEga3F1ZXVlIGZpbGUgZGVzY3JpcHRv
ci4gSWYgaXQgaXMsIHdlIGRvbid0IHdhbnQgdG8gY2xvc2UgaXQgYmVjYXVzZSBpdCBoYXMKKyAg
ICAgICAgLy8gYmVlbiBjcmVhdGVkIGJ5IGluaXRpYWxpemluZyBsaWJkaXNwYXRjaCBmcm9tIGEg
Z2xvYmFsIGluaXRpYWxpemVyLiBTZWUgPHJkYXI6Ly9wcm9ibGVtLzk4Mjg0NzY+IGZvciBtb3Jl
IGRldGFpbHMuCisgICAgICAgIHN0cnVjdCB0aW1lc3BlYyB0aW1lU3BlYyA9IHsgMCwgMCB9Owor
ICAgICAgICBpZiAoIWtldmVudChmZCwgMCwgMCwgMCwgMCwgJnRpbWVTcGVjKSkKKyAgICAgICAg
ICAgIGNvbnRpbnVlOworCisgICAgICAgIGNsb3NlKGZkKTsKKyAgICB9Cit9CisKK3R5cGVkZWYg
aW50ICgqV2ViS2l0TWFpbkZ1bmN0aW9uKShpbnQgYXJnYywgY2hhcioqIGFyZ3YpOworCitzdGF0
aWMgV2ViS2l0TWFpbkZ1bmN0aW9uIGdldEJvb3RzdHJhcE1haW5GdW5jdGlvbihpbnQgYXJnYywg
Y2hhcioqIGFyZ3YsIGNvbnN0IGNoYXIqIHByb2Nlc3NNYWluTmFtZSkKK3sKKyAgICBjbG9zZVVu
dXNlZEZpbGVEZXNjcmlwdG9ycygpOworCisgICAgaWYgKGFyZ2MgPCAyKQorICAgICAgICBleGl0
KEVYSVRfRkFJTFVSRSk7CisKKyAgICBzdGF0aWMgdm9pZCogZnJhbWV3b3JrTGlicmFyeSA9IGRs
b3Blbihhcmd2WzFdLCBSVExEX05PVyk7CisgICAgaWYgKCFmcmFtZXdvcmtMaWJyYXJ5KSB7Cisg
ICAgICAgIGZwcmludGYoc3RkZXJyLCAiVW5hYmxlIHRvIGxvYWQgV2ViS2l0Mi5mcmFtZXdvcms6
ICVzXG4iLCBkbGVycm9yKCkpOworICAgICAgICBleGl0KEVYSVRfRkFJTFVSRSk7CisgICAgfQor
CisgICAgV2ViS2l0TWFpbkZ1bmN0aW9uIHdlYktpdE1haW4gPSByZWludGVycHJldF9jYXN0PFdl
YktpdE1haW5GdW5jdGlvbj4oZGxzeW0oZnJhbWV3b3JrTGlicmFyeSwgcHJvY2Vzc01haW5OYW1l
KSk7CisgICAgaWYgKCF3ZWJLaXRNYWluKSB7CisgICAgICAgIGZwcmludGYoc3RkZXJyLCAiVW5h
YmxlIHRvIGZpbmQgZW50cnkgcG9pbnQgJyVzJyBpbiBXZWJLaXQyLmZyYW1ld29yazogJXNcbiIs
IHByb2Nlc3NNYWluTmFtZSwgZGxlcnJvcigpKTsKKyAgICAgICAgZXhpdChFWElUX0ZBSUxVUkUp
OworICAgIH0KKworICAgIHJldHVybiB3ZWJLaXRNYWluOworfQorCisjZW5kaWYgLy8gQ2hpbGRQ
cm9jZXNzTWFpbkJvb3RzdHJhcHBlcl9oCkluZGV4OiBTb3VyY2UvV2ViS2l0Mi9TaGFyZWQvbWFj
L0NoaWxkUHJvY2Vzc01haW4uaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0Mi9TaGFyZWQv
bWFjL0NoaWxkUHJvY2Vzc01haW4uaAkocmV2aXNpb24gMTQwODc3KQorKysgU291cmNlL1dlYktp
dDIvU2hhcmVkL21hYy9DaGlsZFByb2Nlc3NNYWluLmgJKHdvcmtpbmcgY29weSkKQEAgLTEsMTAx
ICswLDAgQEAKLS8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMTMgQXBwbGUgSW5jLiBBbGwgcmlnaHRz
IHJlc2VydmVkLgotICoKLSAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBi
aW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAotICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0
dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCi0gKiBhcmUgbWV0Ogot
ICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92
ZSBjb3B5cmlnaHQKLSAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRo
ZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KLSAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkg
Zm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICBub3RpY2UsIHRo
aXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhl
Ci0gKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0
aCB0aGUgZGlzdHJpYnV0aW9uLgotICoKLSAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkg
QVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKLSAqIEFORCBBTlkgRVhQ
UkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRP
LAotICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5F
U1MgRk9SIEEgUEFSVElDVUxBUgotICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZF
TlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCi0gKiBCRSBMSUFCTEUgRk9S
IEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9S
Ci0gKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRP
LCBQUk9DVVJFTUVOVCBPRgotICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBP
RiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCi0gKiBJTlRFUlJVUFRJT04pIEhP
V0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgot
ICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdF
TkNFIE9SIE9USEVSV0lTRSkKLSAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBP
RiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKLSAqIFRIRSBQT1NTSUJJTElUWSBP
RiBTVUNIIERBTUFHRS4KLSAqLwotCi0jaWZuZGVmIENoaWxkUHJvY2Vzc01haW5faAotI2RlZmlu
ZSBDaGlsZFByb2Nlc3NNYWluX2gKLQotI2ltcG9ydCAiQ2hpbGRQcm9jZXNzLmgiCi0jaW1wb3J0
ICJDb21tYW5kTGluZS5oIgotI2ltcG9ydCAiV2ViS2l0MkluaXRpYWxpemUuaCIKLSNpbXBvcnQg
PFdlYkNvcmUvUnVuTG9vcC5oPgotI2ltcG9ydCA8V2ViS2l0U3lzdGVtSW50ZXJmYWNlLmg+Ci0j
aW1wb3J0IDxzeXNleGl0cy5oPgotCi1uYW1lc3BhY2UgV2ViS2l0IHsKLQotY2xhc3MgQ2hpbGRQ
cm9jZXNzTWFpbkRlbGVnYXRlIHsKLXB1YmxpYzoKLSAgICBDaGlsZFByb2Nlc3NNYWluRGVsZWdh
dGUoY29uc3QgQ29tbWFuZExpbmUmIGNvbW1hbmRMaW5lKQotICAgICAgICA6IG1fY29tbWFuZExp
bmUoY29tbWFuZExpbmUpCi0gICAgewotICAgIH0KLQotICAgIHZpcnR1YWwgfkNoaWxkUHJvY2Vz
c01haW5EZWxlZ2F0ZSgpOwotCi0gICAgdmlydHVhbCB2b2lkIGluc3RhbGxTaWduYWxIYW5kbGVy
cygpOwotICAgIHZpcnR1YWwgdm9pZCBkb1ByZUluaXRpYWxpemF0aW9uV29yaygpOwotCi0gICAg
dmlydHVhbCBib29sIGdldENvbm5lY3Rpb25JZGVudGlmaWVyKENvcmVJUEM6OkNvbm5lY3Rpb246
OklkZW50aWZpZXImIGlkZW50aWZpZXIpOwotICAgIHZpcnR1YWwgYm9vbCBnZXRDbGllbnRJZGVu
dGlmaWVyKFN0cmluZyYgY2xpZW50SWRlbnRpZmllcik7Ci0gICAgdmlydHVhbCBib29sIGdldENs
aWVudFByb2Nlc3NOYW1lKFN0cmluZyYgY2xpZW50UHJvY2Vzc05hbWUpOwotCi0gICAgdmlydHVh
bCB2b2lkIGRvUG9zdFJ1bldvcmsoKTsKLQotcHJvdGVjdGVkOgotICAgIGNvbnN0IENvbW1hbmRM
aW5lJiBtX2NvbW1hbmRMaW5lOwotfTsKLQotdGVtcGxhdGU8dHlwZW5hbWUgQ2hpbGRQcm9jZXNz
VHlwZSwgdHlwZW5hbWUgQ2hpbGRQcm9jZXNzTWFpbkRlbGVnYXRlVHlwZT4KLWludCBDaGlsZFBy
b2Nlc3NNYWluKGNvbnN0IENvbW1hbmRMaW5lJiBjb21tYW5kTGluZSkKLXsKLSAgICBDaGlsZFBy
b2Nlc3NNYWluRGVsZWdhdGVUeXBlIGRlbGVnYXRlKGNvbW1hbmRMaW5lKTsKLQotICAgIEBhdXRv
cmVsZWFzZXBvb2wgewotICAgICAgICBkZWxlZ2F0ZS5pbnN0YWxsU2lnbmFsSGFuZGxlcnMoKTsK
LSAgICAgICAgZGVsZWdhdGUuZG9QcmVJbml0aWFsaXphdGlvbldvcmsoKTsKLQotICAgICAgICBJ
bml0aWFsaXplV2ViS2l0MigpOwotCi0gICAgICAgIENoaWxkUHJvY2Vzc0luaXRpYWxpemF0aW9u
UGFyYW1ldGVycyBwYXJhbWV0ZXJzOwotICAgICAgICBpZiAoIWRlbGVnYXRlLmdldENvbm5lY3Rp
b25JZGVudGlmaWVyKHBhcmFtZXRlcnMuY29ubmVjdGlvbklkZW50aWZpZXIpKQotICAgICAgICAg
ICAgcmV0dXJuIEVYSVRfRkFJTFVSRTsKLQotICAgICAgICBpZiAoIWRlbGVnYXRlLmdldENsaWVu
dElkZW50aWZpZXIocGFyYW1ldGVycy5jbGllbnRJZGVudGlmaWVyKSkKLSAgICAgICAgICAgIHJl
dHVybiBFWElUX0ZBSUxVUkU7Ci0KLSAgICAgICAgaWYgKCFkZWxlZ2F0ZS5nZXRDbGllbnRQcm9j
ZXNzTmFtZShwYXJhbWV0ZXJzLnVpUHJvY2Vzc05hbWUpKQotICAgICAgICAgICAgcmV0dXJuIEVY
SVRfRkFJTFVSRTsKLQotICAgICAgICAvLyBGSVhNRTogVGhpcyBzaG91bGQgYmUgbW92ZWQgdG8g
Q2hpbGRQcm9jZXNzTWFjIGlmIGl0IGlzIHN0aWxsIG5lY2Vzc2FyeS4KLSAgICAgICAgU3RyaW5n
IGxvY2FsaXphdGlvbiA9IGNvbW1hbmRMaW5lWyJsb2NhbGl6YXRpb24iXTsKLSAgICAgICAgUmV0
YWluUHRyPENGU3RyaW5nUmVmPiBjZkxvY2FsaXphdGlvbihBZG9wdENGLCBDRlN0cmluZ0NyZWF0
ZVdpdGhDaGFyYWN0ZXJzKDAsIHJlaW50ZXJwcmV0X2Nhc3Q8Y29uc3QgVW5pQ2hhcio+KGxvY2Fs
aXphdGlvbi5jaGFyYWN0ZXJzKCkpLCBsb2NhbGl6YXRpb24ubGVuZ3RoKCkpKTsKLSAgICAgICAg
aWYgKGNmTG9jYWxpemF0aW9uKQotICAgICAgICAgICAgV0tTZXREZWZhdWx0TG9jYWxpemF0aW9u
KGNmTG9jYWxpemF0aW9uLmdldCgpKTsKLQotICAgICAgICBDaGlsZFByb2Nlc3NUeXBlOjpzaGFy
ZWQoKS5pbml0aWFsaXplKHBhcmFtZXRlcnMpOwotICAgIH0KLQotICAgIFdlYkNvcmU6OlJ1bkxv
b3A6OnJ1bigpOwotCi0gICAgQGF1dG9yZWxlYXNlcG9vbCB7Ci0gICAgICAgIGRlbGVnYXRlLmRv
UG9zdFJ1bldvcmsoKTsKLSAgICB9Ci0KLSAgICByZXR1cm4gMDsKLX0KLQotfSAvLyBuYW1lc3Bh
Y2UgV2ViS2l0Ci0KLSNlbmRpZiAvLyBDaGlsZFByb2Nlc3NNYWluX2gKSW5kZXg6IFNvdXJjZS9X
ZWJLaXQyL1NoYXJlZC9tYWMvQ2hpbGRQcm9jZXNzTWFpbi5tbQo9PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3Vy
Y2UvV2ViS2l0Mi9TaGFyZWQvbWFjL0NoaWxkUHJvY2Vzc01haW4ubW0JKHJldmlzaW9uIDE0MDg3
NykKKysrIFNvdXJjZS9XZWJLaXQyL1NoYXJlZC9tYWMvQ2hpbGRQcm9jZXNzTWFpbi5tbQkod29y
a2luZyBjb3B5KQpAQCAtMSw5NSArMCwwIEBACi0vKgotICogQ29weXJpZ2h0IChDKSAyMDEzIEFw
cGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KLSAqCi0gKiBSZWRpc3RyaWJ1dGlvbiBhbmQg
dXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKLSAqIG1vZGlm
aWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0
aW9ucwotICogYXJlIG1ldDoKLSAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBt
dXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICBub3RpY2UsIHRoaXMgbGlzdCBv
ZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCi0gKiAyLiBSZWRpc3Ry
aWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdo
dAotICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2lu
ZyBkaXNjbGFpbWVyIGluIHRoZQotICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0
ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KLSAqCi0gKiBUSElTIFNPRlRX
QVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJ
UycnCi0gKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcs
IEJVVCBOT1QgTElNSVRFRCBUTywKLSAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hB
TlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKLSAqIFBVUlBPU0UgQVJFIERJ
U0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9S
UwotICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BF
Q0lBTCwgRVhFTVBMQVJZLCBPUgotICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcs
IEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKLSAqIFNVQlNUSVRVVEUgR09PRFMg
T1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUwot
ICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFC
SUxJVFksIFdIRVRIRVIgSU4KLSAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JU
IChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCi0gKiBBUklTSU5HIElOIEFOWSBX
QVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCi0g
KiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCi0gKi8KLQotI2luY2x1ZGUgImNvbmZp
Zy5oIgotI2luY2x1ZGUgIkNoaWxkUHJvY2Vzc01haW4uaCIKLQotI2ltcG9ydCA8bWFjaC9tYWNo
X2Vycm9yLmg+Ci0jaW1wb3J0IDxzZXJ2ZXJzL2Jvb3RzdHJhcC5oPgotI2ltcG9ydCA8c3RkaW8u
aD4KLSNpbXBvcnQgPHd0Zi9SZXRhaW5QdHIuaD4KLSNpbXBvcnQgPHd0Zi90ZXh0L0NTdHJpbmcu
aD4KLQotI2RlZmluZSBTSE9XX0NSQVNIX1JFUE9SVEVSIDEKLQotbmFtZXNwYWNlIFdlYktpdCB7
Ci0KLUNoaWxkUHJvY2Vzc01haW5EZWxlZ2F0ZTo6fkNoaWxkUHJvY2Vzc01haW5EZWxlZ2F0ZSgp
Ci17Ci19Ci0KLXZvaWQgQ2hpbGRQcm9jZXNzTWFpbkRlbGVnYXRlOjppbnN0YWxsU2lnbmFsSGFu
ZGxlcnMoKQotewotI2lmICFTSE9XX0NSQVNIX1JFUE9SVEVSCi0gICAgLy8gSW5zdGFsbHMgc2ln
bmFsIGhhbmRsZXJzIHRoYXQgZXhpdCBvbiBhIGNyYXNoIHNvIHRoYXQgQ3Jhc2hSZXBvcnRlciBk
b2VzIG5vdCBzaG93IHVwLgotICAgIHNpZ25hbChTSUdJTEwsIF9leGl0KTsKLSAgICBzaWduYWwo
U0lHRlBFLCBfZXhpdCk7Ci0gICAgc2lnbmFsKFNJR0JVUywgX2V4aXQpOwotICAgIHNpZ25hbChT
SUdTRUdWLCBfZXhpdCk7Ci0jZW5kaWYKLX0KLQotdm9pZCBDaGlsZFByb2Nlc3NNYWluRGVsZWdh
dGU6OmRvUHJlSW5pdGlhbGl6YXRpb25Xb3JrKCkKLXsKLX0KLQotYm9vbCBDaGlsZFByb2Nlc3NN
YWluRGVsZWdhdGU6OmdldENvbm5lY3Rpb25JZGVudGlmaWVyKENvcmVJUEM6OkNvbm5lY3Rpb246
OklkZW50aWZpZXImIGlkZW50aWZpZXIpCi17Ci0gICAgU3RyaW5nIHNlcnZpY2VOYW1lID0gbV9j
b21tYW5kTGluZVsic2VydmljZW5hbWUiXTsKLSAgICBpZiAoc2VydmljZU5hbWUuaXNFbXB0eSgp
KQotICAgICAgICByZXR1cm4gZmFsc2U7Ci0gICAgCi0gICAgbWFjaF9wb3J0X3Qgc2VydmVyUG9y
dDsKLSAgICBrZXJuX3JldHVybl90IGtyID0gYm9vdHN0cmFwX2xvb2tfdXAoYm9vdHN0cmFwX3Bv
cnQsIHNlcnZpY2VOYW1lLnV0ZjgoKS5kYXRhKCksICZzZXJ2ZXJQb3J0KTsKLSAgICBpZiAoa3Ip
IHsKLSAgICAgICAgV1RGTG9nQWx3YXlzKCJib290c3RyYXBfbG9va191cCByZXN1bHQ6ICVzICgl
eClcbiIsIG1hY2hfZXJyb3Jfc3RyaW5nKGtyKSwga3IpOwotICAgICAgICByZXR1cm4gZmFsc2U7
Ci0gICAgfQotCi0gICAgaWRlbnRpZmllciA9IHNlcnZlclBvcnQ7Ci0gICAgcmV0dXJuIHRydWU7
Ci19Ci0KLWJvb2wgQ2hpbGRQcm9jZXNzTWFpbkRlbGVnYXRlOjpnZXRDbGllbnRJZGVudGlmaWVy
KFN0cmluZyYgY2xpZW50SWRlbnRpZmllcikKLXsKLSAgICBjbGllbnRJZGVudGlmaWVyID0gbV9j
b21tYW5kTGluZVsiY2xpZW50LWlkZW50aWZpZXIiXTsKLSAgICBpZiAoY2xpZW50SWRlbnRpZmll
ci5pc0VtcHR5KCkpCi0gICAgICAgIHJldHVybiBmYWxzZTsKLSAgICByZXR1cm4gdHJ1ZTsKLX0K
LQotYm9vbCBDaGlsZFByb2Nlc3NNYWluRGVsZWdhdGU6OmdldENsaWVudFByb2Nlc3NOYW1lKFN0
cmluZyYgY2xpZW50UHJvY2Vzc05hbWUpCi17Ci0gICAgY2xpZW50UHJvY2Vzc05hbWUgPSBtX2Nv
bW1hbmRMaW5lWyJ1aS1wcm9jZXNzLW5hbWUiXTsKLSAgICBpZiAoY2xpZW50UHJvY2Vzc05hbWUu
aXNFbXB0eSgpKQotICAgICAgICByZXR1cm4gZmFsc2U7Ci0gICAgcmV0dXJuIHRydWU7Ci19Ci0K
LXZvaWQgQ2hpbGRQcm9jZXNzTWFpbkRlbGVnYXRlOjpkb1Bvc3RSdW5Xb3JrKCkKLXsKLX0KLQot
fSAvLyBuYW1lc3BhY2UgV2ViS2l0CkluZGV4OiBTb3VyY2UvV2ViS2l0Mi9TaGFyZWRXb3JrZXJQ
cm9jZXNzL0luZm8ucGxpc3QKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdDIvU2hhcmVkV29y
a2VyUHJvY2Vzcy9JbmZvLnBsaXN0CShyZXZpc2lvbiAxNDA4NzcpCisrKyBTb3VyY2UvV2ViS2l0
Mi9TaGFyZWRXb3JrZXJQcm9jZXNzL0luZm8ucGxpc3QJKHdvcmtpbmcgY29weSkKQEAgLTEsMzAg
KzAsMCBAQAotPD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiPz4KLTwhRE9DVFlQ
RSBwbGlzdCBQVUJMSUMgIi0vL0FwcGxlLy9EVEQgUExJU1QgMS4wLy9FTiIgImh0dHA6Ly93d3cu
YXBwbGUuY29tL0RURHMvUHJvcGVydHlMaXN0LTEuMC5kdGQiPgotPHBsaXN0IHZlcnNpb249IjEu
MCI+Ci08ZGljdD4KLQk8a2V5PkNGQnVuZGxlRXhlY3V0YWJsZTwva2V5PgotCTxzdHJpbmc+JHtQ
Uk9EVUNUX05BTUV9PC9zdHJpbmc+Ci0JPGtleT5DRkJ1bmRsZUdldEluZm9TdHJpbmc8L2tleT4K
LQk8c3RyaW5nPiR7QlVORExFX1ZFUlNJT059LCBDb3B5cmlnaHQgMjAwMy0yMDEzIEFwcGxlIElu
Yy48L3N0cmluZz4KLQk8a2V5PkNGQnVuZGxlSWRlbnRpZmllcjwva2V5PgotCTxzdHJpbmc+Y29t
LmFwcGxlLldlYktpdC4ke1BST0RVQ1RfTkFNRX08L3N0cmluZz4KLQk8a2V5PkNGQnVuZGxlSW5m
b0RpY3Rpb25hcnlWZXJzaW9uPC9rZXk+Ci0JPHN0cmluZz42LjA8L3N0cmluZz4KLQk8a2V5PkNG
QnVuZGxlTmFtZTwva2V5PgotCTxzdHJpbmc+JHtQUk9EVUNUX05BTUV9PC9zdHJpbmc+Ci0JPGtl
eT5DRkJ1bmRsZVBhY2thZ2VUeXBlPC9rZXk+Ci0JPHN0cmluZz5BUFBMPC9zdHJpbmc+Ci0JPGtl
eT5DRkJ1bmRsZVNob3J0VmVyc2lvblN0cmluZzwva2V5PgotCTxzdHJpbmc+JHtTSE9SVF9WRVJT
SU9OX1NUUklOR308L3N0cmluZz4KLQk8a2V5PkNGQnVuZGxlVmVyc2lvbjwva2V5PgotCTxzdHJp
bmc+JHtCVU5ETEVfVkVSU0lPTn08L3N0cmluZz4KLQk8a2V5PkxTRmlsZVF1YXJhbnRpbmVFbmFi
bGVkPC9rZXk+Ci0JPHRydWUvPgotCTxrZXk+TFNNaW5pbXVtU3lzdGVtVmVyc2lvbjwva2V5Pgot
CTxzdHJpbmc+JHtNQUNPU1hfREVQTE9ZTUVOVF9UQVJHRVR9PC9zdHJpbmc+Ci0JPGtleT5MU1VJ
RWxlbWVudDwva2V5PgotCTx0cnVlLz4KLQk8a2V5Pk5TUHJpbmNpcGFsQ2xhc3M8L2tleT4KLQk8
c3RyaW5nPk5TQXBwbGljYXRpb248L3N0cmluZz4KLTwvZGljdD4KLTwvcGxpc3Q+CkluZGV4OiBT
b3VyY2UvV2ViS2l0Mi9TaGFyZWRXb3JrZXJQcm9jZXNzL1NoYXJlZFdvcmtlclByb2Nlc3NNYWlu
LmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdDIvU2hhcmVkV29ya2VyUHJvY2Vzcy9TaGFy
ZWRXb3JrZXJQcm9jZXNzTWFpbi5oCShyZXZpc2lvbiAxNDA4NzcpCisrKyBTb3VyY2UvV2ViS2l0
Mi9TaGFyZWRXb3JrZXJQcm9jZXNzL1NoYXJlZFdvcmtlclByb2Nlc3NNYWluLmgJKHdvcmtpbmcg
Y29weSkKQEAgLTEsMzcgKzAsMCBAQAotLyoKLSAqIENvcHlyaWdodCAoQykgMjAxMCwgMjAxMiBB
cHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi0gKgotICogUmVkaXN0cmlidXRpb24gYW5k
IHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0Ci0gKiBtb2Rp
ZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRp
dGlvbnMKLSAqIGFyZSBtZXQ6Ci0gKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUg
bXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAotICogICAgbm90aWNlLCB0aGlzIGxpc3Qg
b2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgotICogMi4gUmVkaXN0
cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmln
aHQKLSAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dp
bmcgZGlzY2xhaW1lciBpbiB0aGUKLSAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1h
dGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCi0gKgotICogVEhJUyBTT0ZU
V0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMg
SVMnJwotICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5H
LCBCVVQgTk9UIExJTUlURUQgVE8sCi0gKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNI
QU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCi0gKiBQVVJQT1NFIEFSRSBE
SVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRP
UlMKLSAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQ
RUNJQUwsIEVYRU1QTEFSWSwgT1IKLSAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5H
LCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCi0gKiBTVUJTVElUVVRFIEdPT0RT
IE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MK
LSAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElB
QklMSVRZLCBXSEVUSEVSIElOCi0gKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9S
VCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQotICogQVJJU0lORyBJTiBBTlkg
V0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgot
ICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgotICovCi0KLSNpZm5kZWYgU2hhcmVk
V29ya2VyUHJvY2Vzc01haW5faAotI2RlZmluZSBTaGFyZWRXb3JrZXJQcm9jZXNzTWFpbl9oCi0K
LW5hbWVzcGFjZSBXZWJLaXQgewotICAgIAotY2xhc3MgQ29tbWFuZExpbmU7Ci0KLWludCBTaGFy
ZWRXb3JrZXJQcm9jZXNzTWFpbihjb25zdCBDb21tYW5kTGluZSYpOwotICAgIAotfSAvLyBuYW1l
c3BhY2UgV2ViS2l0Ci0KLSNlbmRpZiAvLyBTaGFyZWRXb3JrZXJQcm9jZXNzTWFpbl9oCkluZGV4
OiBTb3VyY2UvV2ViS2l0Mi9TaGFyZWRXb3JrZXJQcm9jZXNzL0VudHJ5UG9pbnQvbWFjL0xlZ2Fj
eVByb2Nlc3MvSW5mby5wbGlzdAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0Mi9TaGFyZWRX
b3JrZXJQcm9jZXNzL0VudHJ5UG9pbnQvbWFjL0xlZ2FjeVByb2Nlc3MvSW5mby5wbGlzdAkocmV2
aXNpb24gMTQwODc3KQkoZnJvbSBTb3VyY2UvV2ViS2l0Mi9TaGFyZWRXb3JrZXJQcm9jZXNzL0lu
Zm8ucGxpc3Q6MTQwODc3KQorKysgU291cmNlL1dlYktpdDIvU2hhcmVkV29ya2VyUHJvY2Vzcy9F
bnRyeVBvaW50L21hYy9MZWdhY3lQcm9jZXNzL0luZm8ucGxpc3QJKHdvcmtpbmcgY29weSkKQEAg
LTAsMCArMSwzMCBAQAorPD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiPz4KKzwh
RE9DVFlQRSBwbGlzdCBQVUJMSUMgIi0vL0FwcGxlLy9EVEQgUExJU1QgMS4wLy9FTiIgImh0dHA6
Ly93d3cuYXBwbGUuY29tL0RURHMvUHJvcGVydHlMaXN0LTEuMC5kdGQiPgorPHBsaXN0IHZlcnNp
b249IjEuMCI+Cis8ZGljdD4KKwk8a2V5PkNGQnVuZGxlRXhlY3V0YWJsZTwva2V5PgorCTxzdHJp
bmc+JHtQUk9EVUNUX05BTUV9PC9zdHJpbmc+CisJPGtleT5DRkJ1bmRsZUdldEluZm9TdHJpbmc8
L2tleT4KKwk8c3RyaW5nPiR7QlVORExFX1ZFUlNJT059LCBDb3B5cmlnaHQgMjAwMy0yMDEzIEFw
cGxlIEluYy48L3N0cmluZz4KKwk8a2V5PkNGQnVuZGxlSWRlbnRpZmllcjwva2V5PgorCTxzdHJp
bmc+Y29tLmFwcGxlLldlYktpdC4ke1BST0RVQ1RfTkFNRX08L3N0cmluZz4KKwk8a2V5PkNGQnVu
ZGxlSW5mb0RpY3Rpb25hcnlWZXJzaW9uPC9rZXk+CisJPHN0cmluZz42LjA8L3N0cmluZz4KKwk8
a2V5PkNGQnVuZGxlTmFtZTwva2V5PgorCTxzdHJpbmc+JHtQUk9EVUNUX05BTUV9PC9zdHJpbmc+
CisJPGtleT5DRkJ1bmRsZVBhY2thZ2VUeXBlPC9rZXk+CisJPHN0cmluZz5BUFBMPC9zdHJpbmc+
CisJPGtleT5DRkJ1bmRsZVNob3J0VmVyc2lvblN0cmluZzwva2V5PgorCTxzdHJpbmc+JHtTSE9S
VF9WRVJTSU9OX1NUUklOR308L3N0cmluZz4KKwk8a2V5PkNGQnVuZGxlVmVyc2lvbjwva2V5Pgor
CTxzdHJpbmc+JHtCVU5ETEVfVkVSU0lPTn08L3N0cmluZz4KKwk8a2V5PkxTRmlsZVF1YXJhbnRp
bmVFbmFibGVkPC9rZXk+CisJPHRydWUvPgorCTxrZXk+TFNNaW5pbXVtU3lzdGVtVmVyc2lvbjwv
a2V5PgorCTxzdHJpbmc+JHtNQUNPU1hfREVQTE9ZTUVOVF9UQVJHRVR9PC9zdHJpbmc+CisJPGtl
eT5MU1VJRWxlbWVudDwva2V5PgorCTx0cnVlLz4KKwk8a2V5Pk5TUHJpbmNpcGFsQ2xhc3M8L2tl
eT4KKwk8c3RyaW5nPk5TQXBwbGljYXRpb248L3N0cmluZz4KKzwvZGljdD4KKzwvcGxpc3Q+Cklu
ZGV4OiBTb3VyY2UvV2ViS2l0Mi9TaGFyZWRXb3JrZXJQcm9jZXNzL0VudHJ5UG9pbnQvbWFjL0xl
Z2FjeVByb2Nlc3MvU2hhcmVkV29ya2VyUHJvY2Vzc01haW4ubW0KPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291
cmNlL1dlYktpdDIvU2hhcmVkV29ya2VyUHJvY2Vzcy9FbnRyeVBvaW50L21hYy9MZWdhY3lQcm9j
ZXNzL1NoYXJlZFdvcmtlclByb2Nlc3NNYWluLm1tCShyZXZpc2lvbiAxNDA4NzcpCShmcm9tIFNv
dXJjZS9XZWJLaXQyL1NoYXJlZFdvcmtlclByb2Nlc3MvbWFjL1NoYXJlZFdvcmtlclByb2Nlc3NN
YWluTWFjLm1tOjE0MDg3NykKKysrIFNvdXJjZS9XZWJLaXQyL1NoYXJlZFdvcmtlclByb2Nlc3Mv
RW50cnlQb2ludC9tYWMvTGVnYWN5UHJvY2Vzcy9TaGFyZWRXb3JrZXJQcm9jZXNzTWFpbi5tbQko
d29ya2luZyBjb3B5KQpAQCAtMCwwICsxLDQzIEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDEw
LCAyMDExLCAyMDEyIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRp
c3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdp
dGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBm
b2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBv
ZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3Rp
Y2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIu
CisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhl
IGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBh
bmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBh
bmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAq
CisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05U
UklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5U
SUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJB
TlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAq
IFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1Ig
SVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwg
SU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1B
R0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNV
QlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRT
OyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5Z
IFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElB
QklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBB
UklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJ
RiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKwor
I2ltcG9ydCAiY29uZmlnLmgiCisjaW1wb3J0ICJTaGFyZWRXb3JrZXJQcm9jZXNzTWFpbi5oIgor
CisjaWYgRU5BQkxFKFNIQVJFRF9XT1JLRVJfUFJPQ0VTUykKKworI2ltcG9ydCAiQ2hpbGRQcm9j
ZXNzTWFpbi5oIgorI2ltcG9ydCAiU2hhcmVkV29ya2VyUHJvY2Vzcy5oIgorCituYW1lc3BhY2Ug
V2ViS2l0IHsKKworaW50IFNoYXJlZFdvcmtlclByb2Nlc3NNYWluKGNvbnN0IENvbW1hbmRMaW5l
JiBjb21tYW5kTGluZSkKK3sKKyAgICByZXR1cm4gQ2hpbGRQcm9jZXNzTWFpbjxTaGFyZWRXb3Jr
ZXJQcm9jZXNzLCBDaGlsZFByb2Nlc3NNYWluRGVsZWdhdGU+KGNvbW1hbmRMaW5lKTsKK30KKwor
fSAvLyBuYW1lc3BhY2UgV2ViS2l0CisKKyNlbmRpZiAvLyBFTkFCTEUoU0hBUkVEX1dPUktFUl9Q
Uk9DRVNTKQpJbmRleDogU291cmNlL1dlYktpdDIvU2hhcmVkV29ya2VyUHJvY2Vzcy9FbnRyeVBv
aW50L21hYy9MZWdhY3lQcm9jZXNzL1NoYXJlZFdvcmtlclByb2Nlc3NNYWluLm1tCj09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT0KLS0tIFNvdXJjZS9XZWJLaXQyL1NoYXJlZFdvcmtlclByb2Nlc3MvRW50cnlQb2ludC9tYWMv
TGVnYWN5UHJvY2Vzcy9TaGFyZWRXb3JrZXJQcm9jZXNzTWFpbi5tbQkocmV2aXNpb24gMCkKKysr
IFNvdXJjZS9XZWJLaXQyL1NoYXJlZFdvcmtlclByb2Nlc3MvRW50cnlQb2ludC9tYWMvTGVnYWN5
UHJvY2Vzcy9TaGFyZWRXb3JrZXJQcm9jZXNzTWFpbi5tbQkod29ya2luZyBjb3B5KQpAQCAtMSw1
ICsxLDUgQEAKIC8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMTAsIDIwMTEsIDIwMTIgQXBwbGUgSW5j
LiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICogQ29weXJpZ2h0IChDKSAyMDEwLCAyMDExLCAyMDEy
LCAyMDEzIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KICAqCiAgKiBSZWRpc3RyaWJ1
dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQK
ICAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dp
bmcgY29uZGl0aW9ucwpAQCAtMjQsMjAgKzI0LDI0IEBACiAgKi8KIAogI2ltcG9ydCAiY29uZmln
LmgiCi0jaW1wb3J0ICJTaGFyZWRXb3JrZXJQcm9jZXNzTWFpbi5oIgogCiAjaWYgRU5BQkxFKFNI
QVJFRF9XT1JLRVJfUFJPQ0VTUykKIAogI2ltcG9ydCAiQ2hpbGRQcm9jZXNzTWFpbi5oIgogI2lt
cG9ydCAiU2hhcmVkV29ya2VyUHJvY2Vzcy5oIgorI2ltcG9ydCAiV0tCYXNlLmgiCiAKLW5hbWVz
cGFjZSBXZWJLaXQgewordXNpbmcgbmFtZXNwYWNlIFdlYktpdDsKIAotaW50IFNoYXJlZFdvcmtl
clByb2Nlc3NNYWluKGNvbnN0IENvbW1hbmRMaW5lJiBjb21tYW5kTGluZSkKK2V4dGVybiAiQyIg
V0tfRVhQT1JUIGludCBTaGFyZWRXb3JrZXJQcm9jZXNzTWFpbihpbnQgYXJnYywgY2hhcioqIGFy
Z3YpOworCitpbnQgU2hhcmVkV29ya2VyUHJvY2Vzc01haW4oaW50IGFyZ2MsIGNoYXIqKiBhcmd2
KQogeworICAgIENvbW1hbmRMaW5lIGNvbW1hbmRMaW5lOworICAgIGlmICghY29tbWFuZExpbmUu
cGFyc2UoYXJnYywgYXJndikpCisgICAgICAgIHJldHVybiBFWElUX0ZBSUxVUkU7CisKICAgICBy
ZXR1cm4gQ2hpbGRQcm9jZXNzTWFpbjxTaGFyZWRXb3JrZXJQcm9jZXNzLCBDaGlsZFByb2Nlc3NN
YWluRGVsZWdhdGU+KGNvbW1hbmRMaW5lKTsKIH0KIAotfSAvLyBuYW1lc3BhY2UgV2ViS2l0Ci0K
ICNlbmRpZiAvLyBFTkFCTEUoU0hBUkVEX1dPUktFUl9QUk9DRVNTKQpJbmRleDogU291cmNlL1dl
YktpdDIvU2hhcmVkV29ya2VyUHJvY2Vzcy9FbnRyeVBvaW50L21hYy9MZWdhY3lQcm9jZXNzL1No
YXJlZFdvcmtlclByb2Nlc3NNYWluQm9vdHN0cmFwcGVyLmNwcAo9PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3Vy
Y2UvV2ViS2l0Mi9TaGFyZWRXb3JrZXJQcm9jZXNzL0VudHJ5UG9pbnQvbWFjL0xlZ2FjeVByb2Nl
c3MvU2hhcmVkV29ya2VyUHJvY2Vzc01haW5Cb290c3RyYXBwZXIuY3BwCShyZXZpc2lvbiAwKQor
KysgU291cmNlL1dlYktpdDIvU2hhcmVkV29ya2VyUHJvY2Vzcy9FbnRyeVBvaW50L21hYy9MZWdh
Y3lQcm9jZXNzL1NoYXJlZFdvcmtlclByb2Nlc3NNYWluQm9vdHN0cmFwcGVyLmNwcAkocmV2aXNp
b24gMCkKQEAgLTAsMCArMSwzMiBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxMyBBcHBsZSBJ
bmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBp
biBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRp
b24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMK
KyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCBy
ZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29u
ZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRp
b25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAq
ICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlz
Y2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFs
cyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJ
UyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJwor
ICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQg
Tk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJ
TElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJ
TUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAq
IEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUws
IEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQg
Tk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNF
UlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElO
VEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZ
LCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5D
TFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9V
VCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhF
IFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpbmNsdWRlICJDaGlsZFByb2Nl
c3NNYWluQm9vdHN0cmFwcGVyLmgiCisKK2ludCBtYWluKGludCBhcmdjLCBjaGFyKiogYXJndikK
K3sKKyAgICBXZWJLaXRNYWluRnVuY3Rpb24gbWFpbkZ1bmN0aW9uID0gZ2V0Qm9vdHN0cmFwTWFp
bkZ1bmN0aW9uKGFyZ2MsIGFyZ3YsICJTaGFyZWRXb3JrZXJQcm9jZXNzTWFpbiIpOworICAgIHJl
dHVybiBtYWluRnVuY3Rpb24oYXJnYywgYXJndik7Cit9CkluZGV4OiBTb3VyY2UvV2ViS2l0Mi9T
aGFyZWRXb3JrZXJQcm9jZXNzL21hYy9TaGFyZWRXb3JrZXJQcm9jZXNzTWFpbk1hYy5tbQo9PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0Mi9TaGFyZWRXb3JrZXJQcm9jZXNzL21hYy9TaGFyZWRX
b3JrZXJQcm9jZXNzTWFpbk1hYy5tbQkocmV2aXNpb24gMTQwODc3KQorKysgU291cmNlL1dlYktp
dDIvU2hhcmVkV29ya2VyUHJvY2Vzcy9tYWMvU2hhcmVkV29ya2VyUHJvY2Vzc01haW5NYWMubW0J
KHdvcmtpbmcgY29weSkKQEAgLTEsNDMgKzAsMCBAQAotLyoKLSAqIENvcHlyaWdodCAoQykgMjAx
MCwgMjAxMSwgMjAxMiBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi0gKgotICogUmVk
aXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3
aXRob3V0Ci0gKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUg
Zm9sbG93aW5nIGNvbmRpdGlvbnMKLSAqIGFyZSBtZXQ6Ci0gKiAxLiBSZWRpc3RyaWJ1dGlvbnMg
b2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAotICogICAgbm90
aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVy
LgotICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRo
ZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMg
YW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKLSAqICAgIGRvY3VtZW50YXRpb24g
YW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCi0g
KgotICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09O
VFJJQlVUT1JTIGBgQVMgSVMnJwotICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFO
VElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCi0gKiBUSEUgSU1QTElFRCBXQVJS
QU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCi0g
KiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9S
IElUUyBDT05UUklCVVRPUlMKLSAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1Qs
IElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKLSAqIENPTlNFUVVFTlRJQUwgREFN
QUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCi0gKiBT
VUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklU
UzsgT1IgQlVTSU5FU1MKLSAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFO
WSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCi0gKiBDT05UUkFDVCwgU1RSSUNUIExJ
QUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQotICog
QVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4g
SUYgQURWSVNFRCBPRgotICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgotICovCi0K
LSNpbXBvcnQgImNvbmZpZy5oIgotI2ltcG9ydCAiU2hhcmVkV29ya2VyUHJvY2Vzc01haW4uaCIK
LQotI2lmIEVOQUJMRShTSEFSRURfV09SS0VSX1BST0NFU1MpCi0KLSNpbXBvcnQgIkNoaWxkUHJv
Y2Vzc01haW4uaCIKLSNpbXBvcnQgIlNoYXJlZFdvcmtlclByb2Nlc3MuaCIKLQotbmFtZXNwYWNl
IFdlYktpdCB7Ci0KLWludCBTaGFyZWRXb3JrZXJQcm9jZXNzTWFpbihjb25zdCBDb21tYW5kTGlu
ZSYgY29tbWFuZExpbmUpCi17Ci0gICAgcmV0dXJuIENoaWxkUHJvY2Vzc01haW48U2hhcmVkV29y
a2VyUHJvY2VzcywgQ2hpbGRQcm9jZXNzTWFpbkRlbGVnYXRlPihjb21tYW5kTGluZSk7Ci19Ci0K
LX0gLy8gbmFtZXNwYWNlIFdlYktpdAotCi0jZW5kaWYgLy8gRU5BQkxFKFNIQVJFRF9XT1JLRVJf
UFJPQ0VTUykKSW5kZXg6IFNvdXJjZS9XZWJLaXQyL1dlYktpdDIueGNvZGVwcm9qL3Byb2plY3Qu
cGJ4cHJvago9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0Mi9XZWJLaXQyLnhjb2RlcHJvai9w
cm9qZWN0LnBieHByb2oJKHJldmlzaW9uIDE0MDg3NykKKysrIFNvdXJjZS9XZWJLaXQyL1dlYktp
dDIueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagkod29ya2luZyBjb3B5KQpAQCAtNTksOCArNTks
NiBAQAogCQkxQTBFQzZDMDEyNEJCRDlCMDA3RUY0QTUgLyogUGx1Z2luUHJvY2Vzc01lc3NhZ2Vz
LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAxQTBFQzZC
RTEyNEJCRDlCMDA3RUY0QTUgLyogUGx1Z2luUHJvY2Vzc01lc3NhZ2VzLmggKi87IH07CiAJCTFB
MEVDNzVFMTI0QkM3QjIwMDdFRjRBNSAvKiBQbHVnaW5Qcm9jZXNzUHJveHkuaCBpbiBIZWFkZXJz
ICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDFBMEVDNzVDMTI0QkM3QjIwMDdF
RjRBNSAvKiBQbHVnaW5Qcm9jZXNzUHJveHkuaCAqLzsgfTsKIAkJMUEwRUM3NUYxMjRCQzdCMjAw
N0VGNEE1IC8qIFBsdWdpblByb2Nlc3NQcm94eS5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQ
QlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAxQTBFQzc1RDEyNEJDN0IyMDA3RUY0QTUgLyogUGx1Z2lu
UHJvY2Vzc1Byb3h5LmNwcCAqLzsgfTsKLQkJMUEwRUM3RkIxMjRCRDNCNjAwN0VGNEE1IC8qIFBs
dWdpblByb2Nlc3NNYWluLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZp
bGVSZWYgPSAxQTBFQzdGQTEyNEJEM0I2MDA3RUY0QTUgLyogUGx1Z2luUHJvY2Vzc01haW4uaCAq
LzsgfTsKLQkJMUEwRUM4MDMxMjRCRDQxRTAwN0VGNEE1IC8qIFBsdWdpblByb2Nlc3NNYWluTWFj
Lm1tIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMUEwRUM4
MDIxMjRCRDQxRTAwN0VGNEE1IC8qIFBsdWdpblByb2Nlc3NNYWluTWFjLm1tICovOyB9OwogCQkx
QTBFQzkwNjEyNEMwQUI4MDA3RUY0QTUgLyogUGx1Z2luUHJvY2Vzc0Nvbm5lY3Rpb24uaCBpbiBI
ZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDFBMEVDOTA0MTI0QzBB
QjgwMDdFRjRBNSAvKiBQbHVnaW5Qcm9jZXNzQ29ubmVjdGlvbi5oICovOyB9OwogCQkxQTBFQzkw
NzEyNEMwQUI4MDA3RUY0QTUgLyogUGx1Z2luUHJvY2Vzc0Nvbm5lY3Rpb24uY3BwIGluIFNvdXJj
ZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMUEwRUM5MDUxMjRDMEFCODAw
N0VGNEE1IC8qIFBsdWdpblByb2Nlc3NDb25uZWN0aW9uLmNwcCAqLzsgfTsKIAkJMUEwRUM5MEYx
MjRDMEFGNTAwN0VGNEE1IC8qIFBsdWdpblByb2Nlc3NDb25uZWN0aW9uTWFuYWdlci5oIGluIEhl
YWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMUEwRUM5MEQxMjRDMEFG
NTAwN0VGNEE1IC8qIFBsdWdpblByb2Nlc3NDb25uZWN0aW9uTWFuYWdlci5oICovOyB9OwpAQCAt
MTU3LDEwICsxNTUsNiBAQAogCQkxQTY0MjkyRDEyREU1Rjk4MDBDQUFFMkMgLyogQmFja2luZ1N0
b3JlTWFjLm1tIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0g
MUE2NDI5MkMxMkRFNUY5ODAwQ0FBRTJDIC8qIEJhY2tpbmdTdG9yZU1hYy5tbSAqLzsgfTsKIAkJ
MUE2RjlGOTAxMUUxM0VGQzAwREIxMzcxIC8qIENvbW1hbmRMaW5lLmggaW4gSGVhZGVycyAqLyA9
IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAxQTZGOUY4RTExRTEzRUZDMDBEQjEzNzEg
LyogQ29tbWFuZExpbmUuaCAqLzsgfTsKIAkJMUE2RjlGQjcxMUUxNDA4NTAwREIxMzcxIC8qIENv
bW1hbmRMaW5lTWFjLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmls
ZVJlZiA9IDFBNkY5RkI2MTFFMTQwODUwMERCMTM3MSAvKiBDb21tYW5kTGluZU1hYy5jcHAgKi87
IH07Ci0JCTFBNkZBMDFFMTFFMTUyNjMwMERCMTM3MSAvKiBXZWJQcm9jZXNzTWFpbk1hYy5tbSBp
biBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDFBNkZBMDFEMTFF
MTUyNjMwMERCMTM3MSAvKiBXZWJQcm9jZXNzTWFpbk1hYy5tbSAqLzsgfTsKLQkJMUE2RkEwMjAx
MUUxNTI4NzAwREIxMzcxIC8qIFdlYlByb2Nlc3NNYWluLmggaW4gSGVhZGVycyAqLyA9IHtpc2Eg
PSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAxQTZGQTAxRjExRTE1Mjg3MDBEQjEzNzEgLyogV2Vi
UHJvY2Vzc01haW4uaCAqLzsgfTsKLQkJMUE2RkEzMTExMUUzOTIxRTAwREIxMzcxIC8qIE1haW5N
YWNQcm9jZXNzLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJl
ZiA9IDFBNkZBMzEwMTFFMzkyMUUwMERCMTM3MSAvKiBNYWluTWFjUHJvY2Vzcy5jcHAgKi87IH07
Ci0JCTFBNkZBMzE2MTFFMzkyMzYwMERCMTM3MSAvKiBXZWJLaXRNYWluLmNwcCBpbiBTb3VyY2Vz
ICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDFBNkZBMzE1MTFFMzkyMzYwMERC
MTM3MSAvKiBXZWJLaXRNYWluLmNwcCAqLzsgfTsKIAkJMUE2RkI3QUUxMUU2NEI2ODAwREIxMzcx
IC8qIFBsdWdpblZpZXcuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBm
aWxlUmVmID0gMUE2RkI3QUMxMUU2NEI2ODAwREIxMzcxIC8qIFBsdWdpblZpZXcuY3BwICovOyB9
OwogCQkxQTZGQjdBRjExRTY0QjY4MDBEQjEzNzEgLyogUGx1Z2luVmlldy5oIGluIEhlYWRlcnMg
Ki8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMUE2RkI3QUQxMUU2NEI2ODAwREIx
MzcxIC8qIFBsdWdpblZpZXcuaCAqLzsgfTsKIAkJMUE2RkI3RDIxMUU2NTFFMjAwREIxMzcxIC8q
IFBsdWdpbi5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYg
PSAxQTZGQjdEMDExRTY1MUUyMDBEQjEzNzEgLyogUGx1Z2luLmNwcCAqLzsgfTsKQEAgLTM4OSw3
ICszODMsNiBAQAogCQk1MTBBRkZCOTE2NTQyMDQ4MDAxQkEwNUUgLyogV2ViUmVzb3VyY2VMb2Fk
ZXIuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNTEw
QUZGQjcxNjU0MjA0ODAwMUJBMDVFIC8qIFdlYlJlc291cmNlTG9hZGVyLmNwcCAqLzsgfTsKIAkJ
NTEwQUZGQkExNjU0MjA0ODAwMUJBMDVFIC8qIFdlYlJlc291cmNlTG9hZGVyLmggaW4gSGVhZGVy
cyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA1MTBBRkZCODE2NTQyMDQ4MDAx
QkEwNUUgLyogV2ViUmVzb3VyY2VMb2FkZXIuaCAqLzsgfTsKIAkJNTEwQ0M4NDkxNjEzQzg1QzAw
RDAzRUQzIC8qIE5ldHdvcmtQcm9jZXNzLmFwcCBpbiBDb3B5RmlsZXMgKi8gPSB7aXNhID0gUEJY
QnVpbGRGaWxlOyBmaWxlUmVmID0gNTEwQ0M4MEUxNjEzQzc5OTAwRDAzRUQzIC8qIE5ldHdvcmtQ
cm9jZXNzLmFwcCAqLzsgfTsKLQkJNTEwQ0M4NEYxNjEzQzkyQzAwRDAzRUQzIC8qIE1haW5NYWNQ
cm9jZXNzLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9
IDFBNkZBMzEwMTFFMzkyMUUwMERCMTM3MSAvKiBNYWluTWFjUHJvY2Vzcy5jcHAgKi87IH07CiAJ
CTUxMEZCQjlBMTI4OEM5NUUwMEFGRkRGNCAvKiBXZWJDb250ZXh0TWVudUl0ZW1EYXRhLmNwcCBp
biBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDUxMEZCQjk4MTI4
OEM5NUUwMEFGRkRGNCAvKiBXZWJDb250ZXh0TWVudUl0ZW1EYXRhLmNwcCAqLzsgfTsKIAkJNTEw
RkJCOUIxMjg4Qzk1RTAwQUZGREY0IC8qIFdlYkNvbnRleHRNZW51SXRlbURhdGEuaCBpbiBIZWFk
ZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDUxMEZCQjk5MTI4OEM5NUUw
MEFGRkRGNCAvKiBXZWJDb250ZXh0TWVudUl0ZW1EYXRhLmggKi87IH07CiAJCTUxMTBBRTBDMTMz
QzE2Q0IwMDcyNzE3QSAvKiBXS0ljb25EYXRhYmFzZS5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2Eg
PSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA1MTEwQUUwQTEzM0MxNkNCMDA3MjcxN0EgLyogV0tJ
Y29uRGF0YWJhc2UuY3BwICovOyB9OwpAQCAtNDU3LDEwICs0NTAsOCBAQAogCQk1MTZBNEE1RDEy
MEEyQ0NEMDBDMDVCN0YgLyogV2ViRXJyb3IuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1
aWxkRmlsZTsgZmlsZVJlZiA9IDUxNkE0QTVCMTIwQTJDQ0QwMEMwNUI3RiAvKiBXZWJFcnJvci5o
ICovOyB9OwogCQk1MTc1OTQ0QTE2NTcwODA0MDBERDc3MUQgLyogTmV0d29ya1Jlc291cmNlTG9h
ZGVyTWVzc2FnZVJlY2VpdmVyLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmls
ZTsgZmlsZVJlZiA9IDUxNzU5NDQ4MTY1NzA4MDQwMERENzcxRCAvKiBOZXR3b3JrUmVzb3VyY2VM
b2FkZXJNZXNzYWdlUmVjZWl2ZXIuY3BwICovOyB9OwogCQk1MTc1OTQ0QjE2NTcwODA0MDBERDc3
MUQgLyogTmV0d29ya1Jlc291cmNlTG9hZGVyTWVzc2FnZXMuaCBpbiBIZWFkZXJzICovID0ge2lz
YSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDUxNzU5NDQ5MTY1NzA4MDQwMERENzcxRCAvKiBO
ZXR3b3JrUmVzb3VyY2VMb2FkZXJNZXNzYWdlcy5oICovOyB9OwotCQk1MTc5NTU2NTE2Mjg3NkM1
MDBGQTQzQjYgLyogTmV0d29ya1Byb2Nlc3NNYWluTWFjLm1tIGluIFNvdXJjZXMgKi8gPSB7aXNh
ID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNTEwQ0M3REQxNjEzOEUyOTAwRDAzRUQzIC8qIE5l
dHdvcmtQcm9jZXNzTWFpbk1hYy5tbSAqLzsgfTsKIAkJNTE3OTU1NjcxNjI4NzZDQjAwRkE0M0I2
IC8qIE5ldHdvcmtQcm9jZXNzTWFjLm1tIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRG
aWxlOyBmaWxlUmVmID0gNTFBOEE2MTUxNjI3RjNGOTAwMEQ5MEU5IC8qIE5ldHdvcmtQcm9jZXNz
TWFjLm1tICovOyB9OwogCQk1MTc5NTU2ODE2Mjg3NkNGMDBGQTQzQjYgLyogTmV0d29ya1Byb2Nl
c3MuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNTEw
Q0M3REYxNjEzOEUyOTAwRDAzRUQzIC8qIE5ldHdvcmtQcm9jZXNzLmNwcCAqLzsgfTsKLQkJNTE3
OTU1NjkxNjI4NzZFRTAwRkE0M0I2IC8qIE5ldHdvcmtQcm9jZXNzTWFpbi5oIGluIEhlYWRlcnMg
Ki8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNTEwQ0M3RTExNjEzOEUyOTAwRDAz
RUQzIC8qIE5ldHdvcmtQcm9jZXNzTWFpbi5oICovOyB9OwogCQk1MTc5NTU2QTE2Mjg3NkYzMDBG
QTQzQjYgLyogTmV0d29ya1Byb2Nlc3MuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxk
RmlsZTsgZmlsZVJlZiA9IDUxMENDN0UwMTYxMzhFMjkwMEQwM0VEMyAvKiBOZXR3b3JrUHJvY2Vz
cy5oICovOyB9OwogCQk1MTc5NTU2RDE2Mjg3N0IxMDBGQTQzQjYgLyogTmV0d29ya1Byb2Nlc3NQ
cm94eS5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA1
MTBDQzdFQTE2MTM4RTcyMDBEMDNFRDMgLyogTmV0d29ya1Byb2Nlc3NQcm94eS5jcHAgKi87IH07
CiAJCTUxNzk1NTZFMTYyODc3QjMwMEZBNDNCNiAvKiBOZXR3b3JrUHJvY2Vzc1Byb3h5LmggaW4g
SGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA1MTBDQzdFQjE2MTM4
RTcyMDBEMDNFRDMgLyogTmV0d29ya1Byb2Nlc3NQcm94eS5oICovOyB9OwpAQCAtNzk4LDYgKzc4
OSwxNiBAQAogCQlCQzgxNDdBQTEyRjY0Q0RBMDA3QjJDMzIgLyogSW5qZWN0ZWRCdW5kbGVQYWdl
UG9saWN5Q2xpZW50LmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmls
ZVJlZiA9IEJDODE0N0E4MTJGNjRDREEwMDdCMkMzMiAvKiBJbmplY3RlZEJ1bmRsZVBhZ2VQb2xp
Y3lDbGllbnQuY3BwICovOyB9OwogCQlCQzgxNDdENTEyRjY2RDMxMDA3QjJDMzIgLyogSW5qZWN0
ZWRCdW5kbGVOYXZpZ2F0aW9uQWN0aW9uLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWls
ZEZpbGU7IGZpbGVSZWYgPSBCQzgxNDdEMzEyRjY2RDMxMDA3QjJDMzIgLyogSW5qZWN0ZWRCdW5k
bGVOYXZpZ2F0aW9uQWN0aW9uLmggKi87IH07CiAJCUJDODE0N0Q2MTJGNjZEMzEwMDdCMkMzMiAv
KiBJbmplY3RlZEJ1bmRsZU5hdmlnYXRpb25BY3Rpb24uY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNh
ID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQkM4MTQ3RDQxMkY2NkQzMTAwN0IyQzMyIC8qIElu
amVjdGVkQnVuZGxlTmF2aWdhdGlvbkFjdGlvbi5jcHAgKi87IH07CisJCUJDODI4MzY1MTZCMzU0
RjYwMEEyNzhGRSAvKiBXZWJDb250ZW50UHJvY2Vzc01haW4ubW0gaW4gU291cmNlcyAqLyA9IHtp
c2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBCQzgyODM2NDE2QjM1NEY2MDBBMjc4RkUgLyog
V2ViQ29udGVudFByb2Nlc3NNYWluLm1tICovOyB9OworCQlCQzgyODM3NjE2QjM2NzRCMDBBMjc4
RkUgLyogV2ViQ29udGVudFByb2Nlc3NNYWluQm9vdHN0cmFwcGVyLmNwcCBpbiBTb3VyY2VzICov
ID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEJDODI4Mzc0MTZCMzY3NEIwMEEyNzhG
RSAvKiBXZWJDb250ZW50UHJvY2Vzc01haW5Cb290c3RyYXBwZXIuY3BwICovOyB9OworCQlCQzgy
ODM3QTE2QjM2QTRGMDBBMjc4RkUgLyogQ2hpbGRQcm9jZXNzTWFpbi5oIGluIEhlYWRlcnMgKi8g
PSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQkM4MjgzNzgxNkIzNkE0RjAwQTI3OEZF
IC8qIENoaWxkUHJvY2Vzc01haW4uaCAqLzsgfTsKKwkJQkM4MjgzN0IxNkIzNkE0RjAwQTI3OEZF
IC8qIENoaWxkUHJvY2Vzc01haW4ubW0gaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZp
bGU7IGZpbGVSZWYgPSBCQzgyODM3OTE2QjM2QTRGMDBBMjc4RkUgLyogQ2hpbGRQcm9jZXNzTWFp
bi5tbSAqLzsgfTsKKwkJQkM4MjgzODQxNkI0NURBNTAwQTI3OEZFIC8qIE5ldHdvcmtQcm9jZXNz
TWFpbi5tbSBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEJD
ODI4MzgxMTZCNDVEQTUwMEEyNzhGRSAvKiBOZXR3b3JrUHJvY2Vzc01haW4ubW0gKi87IH07CisJ
CUJDODI4Mzg1MTZCNDVEQjcwMEEyNzhGRSAvKiBOZXR3b3JrUHJvY2Vzc01haW5Cb290c3RyYXBw
ZXIuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQkM4
MjgzODAxNkI0NURBNTAwQTI3OEZFIC8qIE5ldHdvcmtQcm9jZXNzTWFpbkJvb3RzdHJhcHBlci5j
cHAgKi87IH07CisJCUJDODI4MzhCMTZCNDVFRkYwMEEyNzhGRSAvKiBQbHVnaW5Qcm9jZXNzTWFp
bkJvb3RzdHJhcHBlci5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZp
bGVSZWYgPSBCQzgyODM4OTE2QjQ1RUYyMDBBMjc4RkUgLyogUGx1Z2luUHJvY2Vzc01haW5Cb290
c3RyYXBwZXIuY3BwICovOyB9OworCQlCQzgyODM4QzE2QjQ1RjA3MDBBMjc4RkUgLyogUGx1Z2lu
UHJvY2Vzc01haW4ubW0gaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVS
ZWYgPSBCQzgyODM4QTE2QjQ1RUYyMDBBMjc4RkUgLyogUGx1Z2luUHJvY2Vzc01haW4ubW0gKi87
IH07CisJCUJDODI4Mzk0MTZCNDYwODAwMEEyNzhGRSAvKiBTaGFyZWRXb3JrZXJQcm9jZXNzTWFp
bkJvb3RzdHJhcHBlci5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZp
bGVSZWYgPSBCQzgyODM5MjE2QjQ2MDdCMDBBMjc4RkUgLyogU2hhcmVkV29ya2VyUHJvY2Vzc01h
aW5Cb290c3RyYXBwZXIuY3BwICovOyB9OworCQlCQzgyODM5NTE2QjQ2MDgzMDBBMjc4RkUgLyog
U2hhcmVkV29ya2VyUHJvY2Vzc01haW4ubW0gaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWls
ZEZpbGU7IGZpbGVSZWYgPSBCQzgyODM5MzE2QjQ2MDdCMDBBMjc4RkUgLyogU2hhcmVkV29ya2Vy
UHJvY2Vzc01haW4ubW0gKi87IH07CiAJCUJDODJERjIyMTVCREY0MjIwMEZDMjg0MSAvKiBjb20u
YXBwbGUuV2ViUHJvY2Vzcy5zYiBpbiBSZXNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxl
OyBmaWxlUmVmID0gRTE5NjdFMzcxNTBBQjVFMjAwQzczMTY5IC8qIGNvbS5hcHBsZS5XZWJQcm9j
ZXNzLnNiICovOyB9OwogCQlCQzg0NTJBNzExNjJDODA5MDBDQUI5QjUgLyogRHJhd2luZ0FyZWEu
Y3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQkM4NDUy
QTUxMTYyQzgwOTAwQ0FCOUI1IC8qIERyYXdpbmdBcmVhLmNwcCAqLzsgfTsKIAkJQkM4NDUyQTgx
MTYyQzgwOTAwQ0FCOUI1IC8qIERyYXdpbmdBcmVhLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQ
QlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBCQzg0NTJBNjExNjJDODA5MDBDQUI5QjUgLyogRHJhd2lu
Z0FyZWEuaCAqLzsgfTsKQEAgLTgzNiw4ICs4MzcsNiBAQAogCQlCQzlCMzhBMTEwRjUzOEJFMDA0
NDNBMTUgLyogV2ViRnJhbWVQcm94eS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRG
aWxlOyBmaWxlUmVmID0gQkM5QjM4OUYxMEY1MzhCRTAwNDQzQTE1IC8qIFdlYkZyYW1lUHJveHku
aCAqLzsgfTsKIAkJQkM5QkE1MDQxNjk3QzQ1MzAwRTQ0NjE2IC8qIFdlYktpdDJJbml0aWFsaXpl
LmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEJDOUJB
NTAyMTY5N0M0NTMwMEU0NDYxNiAvKiBXZWJLaXQySW5pdGlhbGl6ZS5jcHAgKi87IH07CiAJCUJD
OUJBNTA1MTY5N0M0NTMwMEU0NDYxNiAvKiBXZWJLaXQySW5pdGlhbGl6ZS5oIGluIEhlYWRlcnMg
Ki8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQkM5QkE1MDMxNjk3QzQ1MzAwRTQ0
NjE2IC8qIFdlYktpdDJJbml0aWFsaXplLmggKi87IH07Ci0JCUJDOUJBNTA4MTY5OTFDM0MwMEU0
NDYxNiAvKiBDaGlsZFByb2Nlc3NNYWluLm1tIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVp
bGRGaWxlOyBmaWxlUmVmID0gQkM5QkE1MDYxNjk5MUMzQzAwRTQ0NjE2IC8qIENoaWxkUHJvY2Vz
c01haW4ubW0gKi87IH07Ci0JCUJDOUJBNTA5MTY5OTFDM0MwMEU0NDYxNiAvKiBDaGlsZFByb2Nl
c3NNYWluLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBC
QzlCQTUwNzE2OTkxQzNDMDBFNDQ2MTYgLyogQ2hpbGRQcm9jZXNzTWFpbi5oICovOyB9OwogCQlC
QzlGQTUyMDE2MEQzQjQzMDA1NERGOUEgLyogRm91bmRhdGlvbi5mcmFtZXdvcmsgaW4gRnJhbWV3
b3JrcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBCQzNERTQ2ODE1QTkxNzYz
MDA4RDI2RkMgLyogRm91bmRhdGlvbi5mcmFtZXdvcmsgKi87IH07CiAJCUJDOUZBNTIzMTYwRDRB
MEYwMDU0REY5QSAvKiBjb20uYXBwbGUuV2ViUHJvY2Vzcy5zYiBpbiBSZXNvdXJjZXMgKi8gPSB7
aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRTE5NjdFMzcxNTBBQjVFMjAwQzczMTY5IC8q
IGNvbS5hcHBsZS5XZWJQcm9jZXNzLnNiICovOyB9OwogCQlCQ0EwRUY3RjEyMzMxRTc4MDA3RDND
RkIgLyogV2ViVW5kb1N0ZXAuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsg
ZmlsZVJlZiA9IEJDQTBFRjdEMTIzMzFFNzgwMDdEM0NGQiAvKiBXZWJVbmRvU3RlcC5oICovOyB9
OwpAQCAtOTM2LDcgKzkzNSw2IEBACiAJCUJDRERCMzJEMTI0RUMyRTEwMDQ4RDEzQyAvKiBXS0FQ
SUNhc3QuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEJD
RERCMzJDMTI0RUMyRTEwMDQ4RDEzQyAvKiBXS0FQSUNhc3QuaCAqLzsgfTsKIAkJQkNERTA1OUIx
MUNEQThBRTAwRTQxQUYxIC8qIFdlYkNvbnRleHRJbmplY3RlZEJ1bmRsZUNsaWVudC5oIGluIEhl
YWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQkNERTA1OTkxMUNEQThB
RTAwRTQxQUYxIC8qIFdlYkNvbnRleHRJbmplY3RlZEJ1bmRsZUNsaWVudC5oICovOyB9OwogCQlC
Q0RFMDU5QzExQ0RBOEFFMDBFNDFBRjEgLyogV2ViQ29udGV4dEluamVjdGVkQnVuZGxlQ2xpZW50
LmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEJDREUw
NTlBMTFDREE4QUUwMEU0MUFGMSAvKiBXZWJDb250ZXh0SW5qZWN0ZWRCdW5kbGVDbGllbnQuY3Bw
ICovOyB9OwotCQlCQ0RFMDkzQjEzMjcyNDk2MDAxMjU5RkIgLyogTWFpbk1hY1Byb2Nlc3MuY3Bw
IGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMUE2RkEzMTAx
MUUzOTIxRTAwREIxMzcxIC8qIE1haW5NYWNQcm9jZXNzLmNwcCAqLzsgfTsKIAkJQkNERTA5M0Qx
MzI3MjQ5NjAwMTI1OUZCIC8qIFBsdWdpblByb2Nlc3NTaGltLmR5bGliIGluIENvcHkgUGx1Zy1p
biBQcm9jZXNzIFNoaW0gKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMUFDMjVG
QjAxMkE0OEVBNzAwQkQyNjcxIC8qIFBsdWdpblByb2Nlc3NTaGltLmR5bGliICovOyB9OwogCQlC
Q0RFMEFCRjEzMjcyNzA4MDAxMjU5RkIgLyogUGx1Z2luUHJvY2Vzcy5hcHAgaW4gQ29weUZpbGVz
ICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEJDREUwOTQyMTMyNzI0OTYwMDEy
NTlGQiAvKiBQbHVnaW5Qcm9jZXNzLmFwcCAqLzsgfTsKIAkJQkNFMDkzNzcxNEZCMTI4QzAwMTEz
OEQ5IC8qIExheWVySG9zdGluZ0NvbnRleHQubW0gaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhC
dWlsZEZpbGU7IGZpbGVSZWYgPSBCQ0UwOTM3NTE0RkIxMjhCMDAxMTM4RDkgLyogTGF5ZXJIb3N0
aW5nQ29udGV4dC5tbSAqLzsgfTsKQEAgLTEwNjAsOCArMTA1OCw2IEBACiAJCUUxQ0MxQjkxMTJE
N0VBREYwMDYyNTgzOCAvKiBQcmludEluZm9NYWMubW0gaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQ
QlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBFMUNDMUI4RjEyRDdFQURGMDA2MjU4MzggLyogUHJpbnRJ
bmZvTWFjLm1tICovOyB9OwogCQlFMUU1NTJDNDE2QUUwNjVGMDA0RUQ2NTMgLyogU2FuZGJveElu
aXRpYWxpYXRpb25QYXJhbWV0ZXJzTWFjLm1tIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVp
bGRGaWxlOyBmaWxlUmVmID0gRTFFNTUyQzIxNkFFMDY1RTAwNEVENjUzIC8qIFNhbmRib3hJbml0
aWFsaWF0aW9uUGFyYW1ldGVyc01hYy5tbSAqLzsgfTsKIAkJRTFFNTUyQzUxNkFFMDY1RjAwNEVE
NjUzIC8qIFNhbmRib3hJbml0aWFsaXphdGlvblBhcmFtZXRlcnMuaCBpbiBIZWFkZXJzICovID0g
e2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEUxRTU1MkMzMTZBRTA2NUUwMDRFRDY1MyAv
KiBTYW5kYm94SW5pdGlhbGl6YXRpb25QYXJhbWV0ZXJzLmggKi87IH07Ci0JCUUxRURGREE2MTYy
ODg2OEUwMDM5RUNEQSAvKiBNYWluTWFjUHJvY2Vzcy5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2Eg
PSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAxQTZGQTMxMDExRTM5MjFFMDBEQjEzNzEgLyogTWFp
bk1hY1Byb2Nlc3MuY3BwICovOyB9OwotCQlFMUVERkRBNzE2Mjg4Njk2MDAzOUVDREEgLyogU2hh
cmVkV29ya2VyUHJvY2Vzc01haW5NYWMubW0gaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWls
ZEZpbGU7IGZpbGVSZWYgPSBFMUVERkQ5QjE2Mjg3RDBCMDAzOUVDREEgLyogU2hhcmVkV29ya2Vy
UHJvY2Vzc01haW5NYWMubW0gKi87IH07CiAJCUUxRURGREE4MTYyODg2OTkwMDM5RUNEQSAvKiBT
aGFyZWRXb3JrZXJQcm9jZXNzTWFjLm1tIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRG
aWxlOyBmaWxlUmVmID0gRTFFREZEQTIxNjI4ODM4QzAwMzlFQ0RBIC8qIFNoYXJlZFdvcmtlclBy
b2Nlc3NNYWMubW0gKi87IH07CiAJCUUxRURGREE5MTYyODg2QUMwMDM5RUNEQSAvKiBTaGFyZWRX
b3JrZXJQcm9jZXNzLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmls
ZVJlZiA9IEUxRURGRDlFMTYyODgyMTAwMDM5RUNEQSAvKiBTaGFyZWRXb3JrZXJQcm9jZXNzLmNw
cCAqLzsgfTsKIAkJRTFFREZEQUUxNjI4ODkzQjAwMzlFQ0RBIC8qIFNoYXJlZFdvcmtlclByb2Nl
c3NDcmVhdGlvblBhcmFtZXRlcnMuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmls
ZTsgZmlsZVJlZiA9IEUxRURGREFEMTYyODg5M0IwMDM5RUNEQSAvKiBTaGFyZWRXb3JrZXJQcm9j
ZXNzQ3JlYXRpb25QYXJhbWV0ZXJzLmggKi87IH07CkBAIC0xMjgyLDggKzEyNzgsNiBAQAogCQkx
QTBFQzZCRTEyNEJCRDlCMDA3RUY0QTUgLyogUGx1Z2luUHJvY2Vzc01lc3NhZ2VzLmggKi8gPSB7
aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5
cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFBsdWdpblByb2Nlc3NNZXNzYWdlcy5oOyBzb3Vy
Y2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkxQTBFQzc1QzEyNEJDN0IyMDA3RUY0QTUgLyogUGx1
Z2luUHJvY2Vzc1Byb3h5LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29k
aW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFBsdWdp
blByb2Nlc3NQcm94eS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkxQTBFQzc1RDEy
NEJDN0IyMDA3RUY0QTUgLyogUGx1Z2luUHJvY2Vzc1Byb3h5LmNwcCAqLyA9IHtpc2EgPSBQQlhG
aWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJj
ZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFBsdWdpblByb2Nlc3NQcm94eS5jcHA7IHNvdXJjZVRyZWUg
PSAiPGdyb3VwPiI7IH07Ci0JCTFBMEVDN0ZBMTI0QkQzQjYwMDdFRjRBNSAvKiBQbHVnaW5Qcm9j
ZXNzTWFpbi5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7
IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBQbHVnaW5Qcm9jZXNz
TWFpbi5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwotCQkxQTBFQzgwMjEyNEJENDFFMDA3
RUY0QTUgLyogUGx1Z2luUHJvY2Vzc01haW5NYWMubW0gKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVy
ZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNw
cC5vYmpjcHA7IHBhdGggPSBQbHVnaW5Qcm9jZXNzTWFpbk1hYy5tbTsgc291cmNlVHJlZSA9ICI8
Z3JvdXA+IjsgfTsKIAkJMUEwRUM5MDQxMjRDMEFCODAwN0VGNEE1IC8qIFBsdWdpblByb2Nlc3ND
b25uZWN0aW9uLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0g
NDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFBsdWdpblByb2Nl
c3NDb25uZWN0aW9uLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTFBMEVDOTA1MTI0
QzBBQjgwMDdFRjRBNSAvKiBQbHVnaW5Qcm9jZXNzQ29ubmVjdGlvbi5jcHAgKi8gPSB7aXNhID0g
UEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBz
b3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBQbHVnaW5Qcm9jZXNzQ29ubmVjdGlvbi5jcHA7IHNv
dXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTFBMEVDOTBEMTI0QzBBRjUwMDdFRjRBNSAvKiBQ
bHVnaW5Qcm9jZXNzQ29ubmVjdGlvbk1hbmFnZXIuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJl
bmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5o
OyBwYXRoID0gUGx1Z2luUHJvY2Vzc0Nvbm5lY3Rpb25NYW5hZ2VyLmg7IHNvdXJjZVRyZWUgPSAi
PGdyb3VwPiI7IH07CkBAIC0xMzkxLDEwICsxMzg1LDYgQEAKIAkJMUE2NDI5MkMxMkRFNUY5ODAw
Q0FBRTJDIC8qIEJhY2tpbmdTdG9yZU1hYy5tbSAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNl
OyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLm9i
amNwcDsgcGF0aCA9IEJhY2tpbmdTdG9yZU1hYy5tbTsgc291cmNlVHJlZSA9ICI8Z3JvdXA+Ijsg
fTsKIAkJMUE2RjlGOEUxMUUxM0VGQzAwREIxMzcxIC8qIENvbW1hbmRMaW5lLmggKi8gPSB7aXNh
ID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUg
PSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IENvbW1hbmRMaW5lLmg7IHNvdXJjZVRyZWUgPSAiPGdy
b3VwPiI7IH07CiAJCTFBNkY5RkI2MTFFMTQwODUwMERCMTM3MSAvKiBDb21tYW5kTGluZU1hYy5j
cHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtu
b3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBDb21tYW5kTGluZU1hYy5j
cHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07Ci0JCTFBNkZBMDFEMTFFMTUyNjMwMERCMTM3
MSAvKiBXZWJQcm9jZXNzTWFpbk1hYy5tbSAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBm
aWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLm9iamNw
cDsgcGF0aCA9IFdlYlByb2Nlc3NNYWluTWFjLm1tOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9
OwotCQkxQTZGQTAxRjExRTE1Mjg3MDBEQjEzNzEgLyogV2ViUHJvY2Vzc01haW4uaCAqLyA9IHtp
c2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlw
ZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gV2ViUHJvY2Vzc01haW4uaDsgc291cmNlVHJlZSA9
ICI8Z3JvdXA+IjsgfTsKLQkJMUE2RkEzMTAxMUUzOTIxRTAwREIxMzcxIC8qIE1haW5NYWNQcm9j
ZXNzLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBs
YXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgbmFtZSA9IE1haW5NYWNQcm9j
ZXNzLmNwcDsgcGF0aCA9IG1hYy9NYWluTWFjUHJvY2Vzcy5jcHA7IHNvdXJjZVRyZWUgPSAiPGdy
b3VwPiI7IH07Ci0JCTFBNkZBMzE1MTFFMzkyMzYwMERCMTM3MSAvKiBXZWJLaXRNYWluLmNwcCAq
LyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25G
aWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFdlYktpdE1haW4uY3BwOyBzb3Vy
Y2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkxQTZGQjdBQzExRTY0QjY4MDBEQjEzNzEgLyogUGx1
Z2luVmlldy5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0g
NDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBQbHVnaW5W
aWV3LmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMUE2RkI3QUQxMUU2NEI2ODAw
REIxMzcxIC8qIFBsdWdpblZpZXcuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxl
RW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0g
UGx1Z2luVmlldy5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkxQTZGQjdEMDExRTY1
MUUyMDBEQjEzNzEgLyogUGx1Z2luLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBm
aWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsg
cGF0aCA9IFBsdWdpbi5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBAIC0xNjU5LDE0
ICsxNjQ5LDExIEBACiAJCTUxMEFGRkI3MTY1NDIwNDgwMDFCQTA1RSAvKiBXZWJSZXNvdXJjZUxv
YWRlci5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsg
bGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IG5hbWUgPSBXZWJSZXNvdXJj
ZUxvYWRlci5jcHA7IHBhdGggPSBOZXR3b3JrL1dlYlJlc291cmNlTG9hZGVyLmNwcDsgc291cmNl
VHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNTEwQUZGQjgxNjU0MjA0ODAwMUJBMDVFIC8qIFdlYlJl
c291cmNlTG9hZGVyLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5n
ID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgbmFtZSA9IFdlYlJlc291
cmNlTG9hZGVyLmg7IHBhdGggPSBOZXR3b3JrL1dlYlJlc291cmNlTG9hZGVyLmg7IHNvdXJjZVRy
ZWUgPSAiPGdyb3VwPiI7IH07CiAJCTUxMEFGRkNFMTY1NDJDQkQwMDFCQTA1RSAvKiBXZWJSZXNv
dXJjZUxvYWRlci5tZXNzYWdlcy5pbiAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0
S25vd25GaWxlVHlwZSA9IHRleHQ7IG5hbWUgPSBXZWJSZXNvdXJjZUxvYWRlci5tZXNzYWdlcy5p
bjsgcGF0aCA9IE5ldHdvcmsvV2ViUmVzb3VyY2VMb2FkZXIubWVzc2FnZXMuaW47IHNvdXJjZVRy
ZWUgPSAiPGdyb3VwPiI7IH07Ci0JCTUxMENDN0REMTYxMzhFMjkwMEQwM0VEMyAvKiBOZXR3b3Jr
UHJvY2Vzc01haW5NYWMubW0gKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29k
aW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5vYmpjcHA7IHBhdGgg
PSBOZXR3b3JrUHJvY2Vzc01haW5NYWMubW07IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJ
CTUxMENDN0RGMTYxMzhFMjkwMEQwM0VEMyAvKiBOZXR3b3JrUHJvY2Vzcy5jcHAgKi8gPSB7aXNh
ID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUg
PSBzb3VyY2Vjb2RlLmNwcC5jcHA7IG5hbWUgPSBOZXR3b3JrUHJvY2Vzcy5jcHA7IHBhdGggPSBO
ZXR3b3JrUHJvY2Vzcy9OZXR3b3JrUHJvY2Vzcy5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7
IH07CiAJCTUxMENDN0UwMTYxMzhFMjkwMEQwM0VEMyAvKiBOZXR3b3JrUHJvY2Vzcy5oICovID0g
e2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVU
eXBlID0gc291cmNlY29kZS5jLmg7IG5hbWUgPSBOZXR3b3JrUHJvY2Vzcy5oOyBwYXRoID0gTmV0
d29ya1Byb2Nlc3MvTmV0d29ya1Byb2Nlc3MuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsK
LQkJNTEwQ0M3RTExNjEzOEUyOTAwRDAzRUQzIC8qIE5ldHdvcmtQcm9jZXNzTWFpbi5oICovID0g
e2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVU
eXBlID0gc291cmNlY29kZS5jLmg7IG5hbWUgPSBOZXR3b3JrUHJvY2Vzc01haW4uaDsgcGF0aCA9
IE5ldHdvcmtQcm9jZXNzL05ldHdvcmtQcm9jZXNzTWFpbi5oOyBzb3VyY2VUcmVlID0gIjxncm91
cD4iOyB9OwogCQk1MTBDQzdFQTE2MTM4RTcyMDBEMDNFRDMgLyogTmV0d29ya1Byb2Nlc3NQcm94
eS5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFz
dEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBOZXR3b3JrUHJvY2Vz
c1Byb3h5LmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNTEwQ0M3RUIxNjEzOEU3
MjAwRDAzRUQzIC8qIE5ldHdvcmtQcm9jZXNzUHJveHkuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVm
ZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUu
Yy5oOyBwYXRoID0gTmV0d29ya1Byb2Nlc3NQcm94eS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4i
OyB9OwogCQk1MTBDQzgwRTE2MTNDNzk5MDBEMDNFRDMgLyogTmV0d29ya1Byb2Nlc3MuYXBwICov
ID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGV4cGxpY2l0RmlsZVR5cGUgPSB3cmFwcGVyLmFw
cGxpY2F0aW9uOyBpbmNsdWRlSW5JbmRleCA9IDA7IHBhdGggPSBOZXR3b3JrUHJvY2Vzcy5hcHA7
IHNvdXJjZVRyZWUgPSBCVUlMVF9QUk9EVUNUU19ESVI7IH07Ci0JCTUxMENDODE5MTYxM0M3OTkw
MEQwM0VEMyAvKiBJbmZvLnBsaXN0ICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RL
bm93bkZpbGVUeXBlID0gdGV4dC5wbGlzdC54bWw7IG5hbWUgPSBJbmZvLnBsaXN0OyBwYXRoID0g
TmV0d29ya1Byb2Nlc3MvSW5mby5wbGlzdDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJ
NTEwQ0M4NDYxNjEzQzdDNjAwRDAzRUQzIC8qIE5ldHdvcmtQcm9jZXNzLnhjY29uZmlnICovID0g
e2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4dC54Y2NvbmZp
ZzsgcGF0aCA9IE5ldHdvcmtQcm9jZXNzLnhjY29uZmlnOyBzb3VyY2VUcmVlID0gIjxncm91cD4i
OyB9OwogCQk1MTBGQkI5ODEyODhDOTVFMDBBRkZERjQgLyogV2ViQ29udGV4dE1lbnVJdGVtRGF0
YS5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFz
dEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBXZWJDb250ZXh0TWVu
dUl0ZW1EYXRhLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNTEwRkJCOTkxMjg4
Qzk1RTAwQUZGREY0IC8qIFdlYkNvbnRleHRNZW51SXRlbURhdGEuaCAqLyA9IHtpc2EgPSBQQlhG
aWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJj
ZWNvZGUuYy5oOyBwYXRoID0gV2ViQ29udGV4dE1lbnVJdGVtRGF0YS5oOyBzb3VyY2VUcmVlID0g
Ijxncm91cD4iOyB9OwpAQCAtMTk0OCw3ICsxOTM1LDYgQEAKIAkJQkMxMTFCNUIxMTJGNjI5ODAw
MzM3QkFCIC8qIFdlYkV2ZW50RmFjdG9yeS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7
IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBh
dGggPSBXZWJFdmVudEZhY3RvcnkuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJQkMx
MTFCNUMxMTJGNjI5ODAwMzM3QkFCIC8qIFdlYkV2ZW50RmFjdG9yeS5tbSAqLyA9IHtpc2EgPSBQ
QlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNv
dXJjZWNvZGUuY3BwLm9iamNwcDsgcGF0aCA9IFdlYkV2ZW50RmFjdG9yeS5tbTsgc291cmNlVHJl
ZSA9ICI8Z3JvdXA+IjsgfTsKIAkJQkMxMjJGQTMxMzI3MDdGMzAwRjdFQUMxIC8qIFBsdWdpblBy
b2Nlc3MueGNjb25maWcgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmls
ZVR5cGUgPSB0ZXh0LnhjY29uZmlnOyBwYXRoID0gUGx1Z2luUHJvY2Vzcy54Y2NvbmZpZzsgc291
cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKLQkJQkMxMjJGQTYxMzI3MDg3NDAwRjdFQUMxIC8qIElu
Zm8ucGxpc3QgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUg
PSB0ZXh0LnBsaXN0LnhtbDsgbmFtZSA9IEluZm8ucGxpc3Q7IHBhdGggPSBQbHVnaW5Qcm9jZXNz
L0luZm8ucGxpc3Q7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUJDMTRERjc1MTIwQjVC
NzkwMDgyNkMwQyAvKiBJbmplY3RlZEJ1bmRsZVNjcmlwdFdvcmxkLmggKi8gPSB7aXNhID0gUEJY
RmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3Vy
Y2Vjb2RlLmMuaDsgcGF0aCA9IEluamVjdGVkQnVuZGxlU2NyaXB0V29ybGQuaDsgc291cmNlVHJl
ZSA9ICI8Z3JvdXA+IjsgfTsKIAkJQkMxNERGNzYxMjBCNUI3OTAwODI2QzBDIC8qIEluamVjdGVk
QnVuZGxlU2NyaXB0V29ybGQuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVF
bmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRo
ID0gSW5qZWN0ZWRCdW5kbGVTY3JpcHRXb3JsZC5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7
IH07CiAJCUJDMTRERjlDMTIwQjYzNUYwMDgyNkMwQyAvKiBXS0J1bmRsZVNjcmlwdFdvcmxkLmNw
cCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25v
d25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFdLQnVuZGxlU2NyaXB0V29y
bGQuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwpAQCAtMjA5Nyw2ICsyMDgzLDIxIEBA
CiAJCUJDODE0N0E4MTJGNjRDREEwMDdCMkMzMiAvKiBJbmplY3RlZEJ1bmRsZVBhZ2VQb2xpY3lD
bGllbnQuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7
IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gSW5qZWN0ZWRC
dW5kbGVQYWdlUG9saWN5Q2xpZW50LmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+Ijsgd3JhcHNM
aW5lcyA9IDA7IH07CiAJCUJDODE0N0QzMTJGNjZEMzEwMDdCMkMzMiAvKiBJbmplY3RlZEJ1bmRs
ZU5hdmlnYXRpb25BY3Rpb24uaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5j
b2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gSW5q
ZWN0ZWRCdW5kbGVOYXZpZ2F0aW9uQWN0aW9uLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07
CiAJCUJDODE0N0Q0MTJGNjZEMzEwMDdCMkMzMiAvKiBJbmplY3RlZEJ1bmRsZU5hdmlnYXRpb25B
Y3Rpb24uY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7
IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gSW5qZWN0ZWRC
dW5kbGVOYXZpZ2F0aW9uQWN0aW9uLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJ
QkM4MjgzNjQxNkIzNTRGNjAwQTI3OEZFIC8qIFdlYkNvbnRlbnRQcm9jZXNzTWFpbi5tbSAqLyA9
IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxl
VHlwZSA9IHNvdXJjZWNvZGUuY3BwLm9iamNwcDsgcGF0aCA9IFdlYkNvbnRlbnRQcm9jZXNzTWFp
bi5tbTsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJQkM4MjgzNzMxNkIzNUFGOTAwQTI3
OEZFIC8qIEluZm8ucGxpc3QgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3du
RmlsZVR5cGUgPSB0ZXh0LnBsaXN0LnhtbDsgcGF0aCA9IEluZm8ucGxpc3Q7IHNvdXJjZVRyZWUg
PSAiPGdyb3VwPiI7IH07CisJCUJDODI4Mzc0MTZCMzY3NEIwMEEyNzhGRSAvKiBXZWJDb250ZW50
UHJvY2Vzc01haW5Cb290c3RyYXBwZXIuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7
IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3Bw
OyBwYXRoID0gV2ViQ29udGVudFByb2Nlc3NNYWluQm9vdHN0cmFwcGVyLmNwcDsgc291cmNlVHJl
ZSA9ICI8Z3JvdXA+IjsgfTsKKwkJQkM4MjgzNzcxNkIzNjdGODAwQTI3OEZFIC8qIENoaWxkUHJv
Y2Vzc01haW5Cb290c3RyYXBwZXIuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxl
RW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0g
Q2hpbGRQcm9jZXNzTWFpbkJvb3RzdHJhcHBlci5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9
OworCQlCQzgyODM3ODE2QjM2QTRGMDBBMjc4RkUgLyogQ2hpbGRQcm9jZXNzTWFpbi5oICovID0g
e2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVU
eXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBDaGlsZFByb2Nlc3NNYWluLmg7IHNvdXJjZVRy
ZWUgPSAiPGdyb3VwPiI7IH07CisJCUJDODI4Mzc5MTZCMzZBNEYwMEEyNzhGRSAvKiBDaGlsZFBy
b2Nlc3NNYWluLm1tICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9
IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAub2JqY3BwOyBwYXRoID0gQ2hp
bGRQcm9jZXNzTWFpbi5tbTsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJQkM4MjgzN0Yx
NkI0NURBNTAwQTI3OEZFIC8qIEluZm8ucGxpc3QgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5j
ZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSB0ZXh0LnBsaXN0LnhtbDsg
cGF0aCA9IEluZm8ucGxpc3Q7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCUJDODI4Mzgw
MTZCNDVEQTUwMEEyNzhGRSAvKiBOZXR3b3JrUHJvY2Vzc01haW5Cb290c3RyYXBwZXIuY3BwICov
ID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZp
bGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gTmV0d29ya1Byb2Nlc3NNYWluQm9v
dHN0cmFwcGVyLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJQkM4MjgzODExNkI0
NURBNTAwQTI3OEZFIC8qIE5ldHdvcmtQcm9jZXNzTWFpbi5tbSAqLyA9IHtpc2EgPSBQQlhGaWxl
UmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNv
ZGUuY3BwLm9iamNwcDsgcGF0aCA9IE5ldHdvcmtQcm9jZXNzTWFpbi5tbTsgc291cmNlVHJlZSA9
ICI8Z3JvdXA+IjsgfTsKKwkJQkM4MjgzODkxNkI0NUVGMjAwQTI3OEZFIC8qIFBsdWdpblByb2Nl
c3NNYWluQm9vdHN0cmFwcGVyLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0
S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFBsdWdpblByb2Nlc3NN
YWluQm9vdHN0cmFwcGVyLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJQkM4Mjgz
OEExNkI0NUVGMjAwQTI3OEZFIC8qIFBsdWdpblByb2Nlc3NNYWluLm1tICovID0ge2lzYSA9IFBC
WEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAub2JqY3Bw
OyBwYXRoID0gUGx1Z2luUHJvY2Vzc01haW4ubW07IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07
CisJCUJDODI4MzhEMTZCNDVGQTYwMEEyNzhGRSAvKiBJbmZvLnBsaXN0ICovID0ge2lzYSA9IFBC
WEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4dC5wbGlzdC54bWw7IHBhdGgg
PSBJbmZvLnBsaXN0OyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQlCQzgyODM5MTE2QjQ2
MDBEMDBBMjc4RkUgLyogSW5mby5wbGlzdCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBs
YXN0S25vd25GaWxlVHlwZSA9IHRleHQucGxpc3QueG1sOyBwYXRoID0gSW5mby5wbGlzdDsgc291
cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJQkM4MjgzOTIxNkI0NjA3QjAwQTI3OEZFIC8qIFNo
YXJlZFdvcmtlclByb2Nlc3NNYWluQm9vdHN0cmFwcGVyLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxl
UmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9
IFNoYXJlZFdvcmtlclByb2Nlc3NNYWluQm9vdHN0cmFwcGVyLmNwcDsgc291cmNlVHJlZSA9ICI8
Z3JvdXA+IjsgfTsKKwkJQkM4MjgzOTMxNkI0NjA3QjAwQTI3OEZFIC8qIFNoYXJlZFdvcmtlclBy
b2Nlc3NNYWluLm1tICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVU
eXBlID0gc291cmNlY29kZS5jcHAub2JqY3BwOyBwYXRoID0gU2hhcmVkV29ya2VyUHJvY2Vzc01h
aW4ubW07IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUJDODQ1MkE1MTE2MkM4MDkwMENB
QjlCNSAvKiBEcmF3aW5nQXJlYS5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmls
ZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBh
dGggPSBEcmF3aW5nQXJlYS5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUJDODQ1
MkE2MTE2MkM4MDkwMENBQjlCNSAvKiBEcmF3aW5nQXJlYS5oICovID0ge2lzYSA9IFBCWEZpbGVS
ZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29k
ZS5jLmg7IHBhdGggPSBEcmF3aW5nQXJlYS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9Owog
CQlCQzg0RUIxNzEyQTcxMDBDMDA4M0YyREEgLyogV2ViUHJlZmVyZW5jZXNNYWMubW0gKi8gPSB7
aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5
cGUgPSBzb3VyY2Vjb2RlLmNwcC5vYmpjcHA7IHBhdGggPSBXZWJQcmVmZXJlbmNlc01hYy5tbTsg
c291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKQEAgLTIxMTIsNyArMjExMyw2IEBACiAJCUJDODY5
OUI0MTE2QUFEQUEwMDJBOTI1QiAvKiBXS1ZpZXdJbnRlcm5hbC5oICovID0ge2lzYSA9IFBCWEZp
bGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNl
Y29kZS5jLmg7IHBhdGggPSBXS1ZpZXdJbnRlcm5hbC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4i
OyB9OwogCQlCQzg3ODBGQjExNjFDMkI4MDBDQzI3NjggLyogUGxhdGZvcm1Qcm9jZXNzSWRlbnRp
Zmllci5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxh
c3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBQbGF0Zm9ybVByb2Nlc3NJ
ZGVudGlmaWVyLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUJDODdERkE5MTAxODEw
MTQwMDU2NDIxNiAvKiBsaWJpY3Vjb3JlLmR5bGliICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVu
Y2U7IGxhc3RLbm93bkZpbGVUeXBlID0gImNvbXBpbGVkLm1hY2gtby5keWxpYiI7IG5hbWUgPSBs
aWJpY3Vjb3JlLmR5bGliOyBwYXRoID0gL3Vzci9saWIvbGliaWN1Y29yZS5keWxpYjsgc291cmNl
VHJlZSA9ICI8YWJzb2x1dGU+IjsgfTsKLQkJQkM4QTUwMTAxMTc2NUFGNzAwNzU3NTczIC8qIElu
Zm8ucGxpc3QgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsg
bGFzdEtub3duRmlsZVR5cGUgPSB0ZXh0LnBsaXN0LnhtbDsgbmFtZSA9IEluZm8ucGxpc3Q7IHBh
dGggPSBXZWJQcm9jZXNzL0luZm8ucGxpc3Q7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJ
CUJDOEE1MDE0MTE3NjVGNTYwMDc1NzU3MyAvKiBXS1JldGFpblB0ci5oICovID0ge2lzYSA9IFBC
WEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291
cmNlY29kZS5jLmg7IHBhdGggPSBXS1JldGFpblB0ci5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4i
OyB9OwogCQlCQzhBQ0EwRjE2NjcwRDdBMDA0QzE5NDEgLyogT2JqQ09iamVjdEdyYXBoLmggKi8g
PSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmls
ZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IE9iakNPYmplY3RHcmFwaC5oOyBzb3VyY2VU
cmVlID0gIjxncm91cD4iOyB9OwogCQlCQzhBQ0ExMDE2NjcwRDdCMDA0QzE5NDEgLyogT2JqQ09i
amVjdEdyYXBoLm1tICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9
IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAub2JqY3BwOyBwYXRoID0gT2Jq
Q09iamVjdEdyYXBoLm1tOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwpAQCAtMjEzNCw4ICsy
MTM0LDYgQEAKIAkJQkM5QjM4OUYxMEY1MzhCRTAwNDQzQTE1IC8qIFdlYkZyYW1lUHJveHkuaCAq
LyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25G
aWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gV2ViRnJhbWVQcm94eS5oOyBzb3VyY2VU
cmVlID0gIjxncm91cD4iOyB9OwogCQlCQzlCQTUwMjE2OTdDNDUzMDBFNDQ2MTYgLyogV2ViS2l0
MkluaXRpYWxpemUuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGlu
ZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gV2Vi
S2l0MkluaXRpYWxpemUuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlCQzlCQTUw
MzE2OTdDNDUzMDBFNDQ2MTYgLyogV2ViS2l0MkluaXRpYWxpemUuaCAqLyA9IHtpc2EgPSBQQlhG
aWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJj
ZWNvZGUuYy5oOyBwYXRoID0gV2ViS2l0MkluaXRpYWxpemUuaDsgc291cmNlVHJlZSA9ICI8Z3Jv
dXA+IjsgfTsKLQkJQkM5QkE1MDYxNjk5MUMzQzAwRTQ0NjE2IC8qIENoaWxkUHJvY2Vzc01haW4u
bW0gKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtu
b3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5vYmpjcHA7IHBhdGggPSBDaGlsZFByb2Nlc3NN
YWluLm1tOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwotCQlCQzlCQTUwNzE2OTkxQzNDMDBF
NDQ2MTYgLyogQ2hpbGRQcm9jZXNzTWFpbi5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7
IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBh
dGggPSBDaGlsZFByb2Nlc3NNYWluLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUJD
QTBFRjdEMTIzMzFFNzgwMDdEM0NGQiAvKiBXZWJVbmRvU3RlcC5oICovID0ge2lzYSA9IFBCWEZp
bGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNl
Y29kZS5jLmg7IHBhdGggPSBXZWJVbmRvU3RlcC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9
OwogCQlCQ0EwRUY3RTEyMzMxRTc4MDA3RDNDRkIgLyogV2ViVW5kb1N0ZXAuY3BwICovID0ge2lz
YSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBl
ID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gV2ViVW5kb1N0ZXAuY3BwOyBzb3VyY2VUcmVl
ID0gIjxncm91cD4iOyB9OwogCQlCQ0EwRUY5RDEyMzMyNjQyMDA3RDNDRkIgLyogV2ViRWRpdENv
bW1hbmRQcm94eS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9
IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBXZWJFZGl0Q29t
bWFuZFByb3h5Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBAIC0yMzU0LDcgKzIzNTIs
NiBAQAogCQlFMTNBOEEzMjE2Mjg3OUFDMDAzOTI5MjkgLyogQXBwS2l0LmZyYW1ld29yayAqLyA9
IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHdyYXBwZXIuZnJh
bWV3b3JrOyBuYW1lID0gQXBwS2l0LmZyYW1ld29yazsgcGF0aCA9IFN5c3RlbS9MaWJyYXJ5L0Zy
YW1ld29ya3MvQXBwS2l0LmZyYW1ld29yazsgc291cmNlVHJlZSA9IFNES1JPT1Q7IH07CiAJCUUx
M0E4QTMzMTYyODc5QUMwMDM5MjkyOSAvKiBDb3JlRGF0YS5mcmFtZXdvcmsgKi8gPSB7aXNhID0g
UEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSB3cmFwcGVyLmZyYW1ld29yazsg
bmFtZSA9IENvcmVEYXRhLmZyYW1ld29yazsgcGF0aCA9IFN5c3RlbS9MaWJyYXJ5L0ZyYW1ld29y
a3MvQ29yZURhdGEuZnJhbWV3b3JrOyBzb3VyY2VUcmVlID0gU0RLUk9PVDsgfTsKIAkJRTEzQThB
MzQxNjI4NzlBQzAwMzkyOTI5IC8qIEZvdW5kYXRpb24uZnJhbWV3b3JrICovID0ge2lzYSA9IFBC
WEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gd3JhcHBlci5mcmFtZXdvcms7IG5h
bWUgPSBGb3VuZGF0aW9uLmZyYW1ld29yazsgcGF0aCA9IFN5c3RlbS9MaWJyYXJ5L0ZyYW1ld29y
a3MvRm91bmRhdGlvbi5mcmFtZXdvcms7IHNvdXJjZVRyZWUgPSBTREtST09UOyB9OwotCQlFMTNB
OEEzNzE2Mjg3OUFDMDAzOTI5MjkgLyogSW5mby5wbGlzdCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVm
ZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHRleHQucGxpc3QueG1sOyBuYW1lID0gSW5mby5w
bGlzdDsgcGF0aCA9IFNoYXJlZFdvcmtlclByb2Nlc3MvSW5mby5wbGlzdDsgc291cmNlVHJlZSA9
ICI8Z3JvdXA+IjsgfTsKIAkJRTEzQThBNEIxNjI4N0ExQjAwMzkyOTI5IC8qIFNoYXJlZFdvcmtl
clByb2Nlc3MueGNjb25maWcgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3du
RmlsZVR5cGUgPSB0ZXh0LnhjY29uZmlnOyBwYXRoID0gU2hhcmVkV29ya2VyUHJvY2Vzcy54Y2Nv
bmZpZzsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJRTE0RTk5RjgxNEQ4NzlCNDAwMUQy
MjFGIC8qIFBsdWdpblByb2Nlc3MuZW50aXRsZW1lbnRzICovID0ge2lzYSA9IFBCWEZpbGVSZWZl
cmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4dC54bWw7IHBhdGggPSBQbHVnaW5Qcm9jZXNz
LmVudGl0bGVtZW50czsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJRTE0RTk5RjkxNEQ4
NzlDOTAwMUQyMjFGIC8qIGFkZC1lbnRpdGxlbWVudHMuc2ggKi8gPSB7aXNhID0gUEJYRmlsZVJl
ZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSB0ZXh0LnNjcmlwdC5zaDsgcGF0aCA9ICJhZGQt
ZW50aXRsZW1lbnRzLnNoIjsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKQEAgLTIzOTAsOCAr
MjM4Nyw2IEBACiAJCUUxQ0MxQjhGMTJEN0VBREYwMDYyNTgzOCAvKiBQcmludEluZm9NYWMubW0g
Ki8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3du
RmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5vYmpjcHA7IHBhdGggPSBQcmludEluZm9NYWMubW07
IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUUxRTU1MkMyMTZBRTA2NUUwMDRFRDY1MyAv
KiBTYW5kYm94SW5pdGlhbGlhdGlvblBhcmFtZXRlcnNNYWMubW0gKi8gPSB7aXNhID0gUEJYRmls
ZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vj
b2RlLmNwcC5vYmpjcHA7IHBhdGggPSBTYW5kYm94SW5pdGlhbGlhdGlvblBhcmFtZXRlcnNNYWMu
bW07IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUUxRTU1MkMzMTZBRTA2NUUwMDRFRDY1
MyAvKiBTYW5kYm94SW5pdGlhbGl6YXRpb25QYXJhbWV0ZXJzLmggKi8gPSB7aXNhID0gUEJYRmls
ZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vj
b2RlLmMuaDsgcGF0aCA9IFNhbmRib3hJbml0aWFsaXphdGlvblBhcmFtZXRlcnMuaDsgc291cmNl
VHJlZSA9ICI8Z3JvdXA+IjsgfTsKLQkJRTFFREZEOTgxNjI4N0JEMTAwMzlFQ0RBIC8qIFNoYXJl
ZFdvcmtlclByb2Nlc3NNYWluLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVu
Y29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFNo
YXJlZFdvcmtlclByb2Nlc3NNYWluLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07Ci0JCUUx
RURGRDlCMTYyODdEMEIwMDM5RUNEQSAvKiBTaGFyZWRXb3JrZXJQcm9jZXNzTWFpbk1hYy5tbSAq
LyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25G
aWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLm9iamNwcDsgcGF0aCA9IFNoYXJlZFdvcmtlclByb2Nl
c3NNYWluTWFjLm1tOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlFMUVERkQ5RDE2Mjg3
RjE5MDAzOUVDREEgLyogU2hhcmVkV29ya2VyUHJvY2Vzcy5oICovID0ge2lzYSA9IFBCWEZpbGVS
ZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29k
ZS5jLmg7IHBhdGggPSBTaGFyZWRXb3JrZXJQcm9jZXNzLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3Vw
PiI7IH07CiAJCUUxRURGRDlFMTYyODgyMTAwMDM5RUNEQSAvKiBTaGFyZWRXb3JrZXJQcm9jZXNz
LmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0
S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFNoYXJlZFdvcmtlclBy
b2Nlc3MuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlFMUVERkRBMDE2Mjg4MzAz
MDAzOUVDREEgLyogU2hhcmVkV29ya2VyUHJvY2Vzcy5tZXNzYWdlcy5pbiAqLyA9IHtpc2EgPSBQ
QlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHRl
eHQ7IHBhdGggPSBTaGFyZWRXb3JrZXJQcm9jZXNzLm1lc3NhZ2VzLmluOyBzb3VyY2VUcmVlID0g
Ijxncm91cD4iOyB9OwpAQCAtMjUyNSw3ICsyNTIwLDYgQEAKIAkJCQk1MTBDQzdEQTE2MTM4RTAx
MDBEMDNFRDMgLyogTmV0d29ya1Byb2Nlc3MgKi8sCiAJCQkJMUEwRUM2QjAxMjRCQkQzNjAwN0VG
NEE1IC8qIFBsdWdpblByb2Nlc3MgKi8sCiAJCQkJRTEzQThBMzUxNjI4NzlBQzAwMzkyOTI5IC8q
IFNoYXJlZFdvcmtlclByb2Nlc3MgKi8sCi0JCQkJMzJDODhERkYwMzcxQzI0MjAwQzkxNzgzIC8q
IE90aGVyIFNvdXJjZXMgKi8sCiAJCQkJQzBDRTcyOUQxMjQ3RTcxRDAwQkMwRUM0IC8qIERlcml2
ZWQgU291cmNlcyAqLywKIAkJCQkwODlDMTY2NUZFODQxMTU4QzAyQUFDMDcgLyogUmVzb3VyY2Vz
ICovLAogCQkJCUMwQ0U3MzM1MTI0N0Y3MEUwMEJDMEVDNCAvKiBTY3JpcHRzICovLApAQCAtMjU1
MSwxMSArMjU0NSw3IEBACiAJCTA4OUMxNjY1RkU4NDExNThDMDJBQUMwNyAvKiBSZXNvdXJjZXMg
Ki8gPSB7CiAJCQlpc2EgPSBQQlhHcm91cDsKIAkJCWNoaWxkcmVuID0gKAotCQkJCTUxMENDODRB
MTYxM0M4QUIwMEQwM0VEMyAvKiBOZXR3b3JrUHJvY2VzcyAqLywKLQkJCQlCQzEyMkZBNTEzMjcw
ODVEMDBGN0VBQzEgLyogUGx1Z2luUHJvY2VzcyAqLywKLQkJCQlFMUVERkQ5NzE2Mjg3QUVDMDAz
OUVDREEgLyogU2hhcmVkV29ya2VyUHJvY2VzcyAqLywKLQkJCQlCQzhBNTAwRTExNzY1QUQ0MDA3
NTc1NzMgLyogV2ViS2l0MiAqLywKLQkJCQlCQzhBNTAwRjExNzY1QUUzMDA3NTc1NzMgLyogV2Vi
UHJvY2VzcyAqLywKKwkJCQk4REMyRUY1QTA0ODZBNjk0MDA5OEIyMTYgLyogSW5mby5wbGlzdCAq
LywKIAkJCQk2RDhBOTFBNTExRjBFRkQxMDBERDAxRkUgLyogY29tLmFwcGxlLldlYlByb2Nlc3Mu
c2IuaW4gKi8sCiAJCQkJMUNCQzk0NUQxNjUxNUVEMjAwRDY4QUFFIC8qIERvY2sucGRmICovLAog
CQkJCTA4OUMxNjY2RkU4NDExNThDMDJBQUMwNyAvKiBJbmZvUGxpc3Quc3RyaW5ncyAqLywKQEAg
LTI1OTUsNiArMjU4NSw3IEBACiAJCTFBMEVDNkIwMTI0QkJEMzYwMDdFRjRBNSAvKiBQbHVnaW5Q
cm9jZXNzICovID0gewogCQkJaXNhID0gUEJYR3JvdXA7CiAJCQljaGlsZHJlbiA9ICgKKwkJCQlC
QzgyODM4NjE2QjQ1RUYyMDBBMjc4RkUgLyogRW50cnlQb2ludCAqLywKIAkJCQkxQTBFQzdGRDEy
NEJENDAyMDA3RUY0QTUgLyogbWFjICovLAogCQkJCTFBOEVGNENBMTI1MjQwMzcwMEY3MDY3RiAv
KiBQbHVnaW5Db250cm9sbGVyUHJveHkuY3BwICovLAogCQkJCTFBOEVGNEM5MTI1MjQwMzcwMEY3
MDY3RiAvKiBQbHVnaW5Db250cm9sbGVyUHJveHkuaCAqLywKQEAgLTI2MDQsNyArMjU5NSw2IEBA
CiAJCQkJMUEwNDM5NzUxMjREMDM0ODAwRkZCRkI1IC8qIFBsdWdpblByb2Nlc3MuY3BwICovLAog
CQkJCTFBMDQzOTc0MTI0RDAzNDgwMEZGQkZCNSAvKiBQbHVnaW5Qcm9jZXNzLmggKi8sCiAJCQkJ
MUEwRUM2QjExMjRCQkQzNjAwN0VGNEE1IC8qIFBsdWdpblByb2Nlc3MubWVzc2FnZXMuaW4gKi8s
Ci0JCQkJMUEwRUM3RkExMjRCRDNCNjAwN0VGNEE1IC8qIFBsdWdpblByb2Nlc3NNYWluLmggKi8s
CiAJCQkJMUEwNDNBMDgxMjREMTFBOTAwRkZCRkI1IC8qIFdlYlByb2Nlc3NDb25uZWN0aW9uLmNw
cCAqLywKIAkJCQkxQTA0M0EwNzEyNEQxMUE5MDBGRkJGQjUgLyogV2ViUHJvY2Vzc0Nvbm5lY3Rp
b24uaCAqLywKIAkJCQkxQTA0M0Y1OTEyNTE0Q0YzMDBGRkJGQjUgLyogV2ViUHJvY2Vzc0Nvbm5l
Y3Rpb24ubWVzc2FnZXMuaW4gKi8sCkBAIC0yNjIxLDcgKzI2MTEsNiBAQAogCQkJCTFBMkQ5MUE1
MTI4MUQ3MzkwMDFFQjk2MiAvKiBQbHVnaW5Db250cm9sbGVyUHJveHlNYWMubW0gKi8sCiAJCQkJ
RTE0RTk5RjgxNEQ4NzlCNDAwMUQyMjFGIC8qIFBsdWdpblByb2Nlc3MuZW50aXRsZW1lbnRzICov
LAogCQkJCTFBQTQ3OTIyMTJBNTlGRDkwMDgyMzZDMyAvKiBQbHVnaW5Qcm9jZXNzTWFjLm1tICov
LAotCQkJCTFBMEVDODAyMTI0QkQ0MUUwMDdFRjRBNSAvKiBQbHVnaW5Qcm9jZXNzTWFpbk1hYy5t
bSAqLywKIAkJCQkxQUMyNUY4OTEyQTQ4RTAzMDBCRDI2NzEgLyogUGx1Z2luUHJvY2Vzc1NoaW0u
aCAqLywKIAkJCQkxQUMyNUY4QTEyQTQ4RTAzMDBCRDI2NzEgLyogUGx1Z2luUHJvY2Vzc1NoaW0u
bW0gKi8sCiAJCQkpOwpAQCAtMjY3Myw3ICsyNjYyLDYgQEAKIAkJCWlzYSA9IFBCWEdyb3VwOwog
CQkJY2hpbGRyZW4gPSAoCiAJCQkJQkMzMDY1QzMxMjU5MkY4OTAwRTcxMjc4IC8qIFdlYlByb2Nl
c3NNYWMubW0gKi8sCi0JCQkJMUE2RkEwMUQxMUUxNTI2MzAwREIxMzcxIC8qIFdlYlByb2Nlc3NN
YWluTWFjLm1tICovLAogCQkJCUJDREMzMDhBMTVGRDZDRDEwMDZCNjY5NSAvKiBXZWJQcm9jZXNz
U2VydmljZUVudHJ5UG9pbnRzLmggKi8sCiAJCQkJQkNEQzMwODkxNUZENkNEMTAwNkI2Njk1IC8q
IFdlYlByb2Nlc3NTZXJ2aWNlRW50cnlQb2ludHMubW0gKi8sCiAJCQkpOwpAQCAtMjc4OCw2ICsy
Nzc2LDcgQEAKIAkJMUFBRERGNEIxMEQ4MkFGMDAwRDNENjNEIC8qIFNoYXJlZCAqLyA9IHsKIAkJ
CWlzYSA9IFBCWEdyb3VwOwogCQkJY2hpbGRyZW4gPSAoCisJCQkJQkM4MjgzNjgxNkIzNTg3OTAw
QTI3OEZFIC8qIEVudHJ5UG9pbnRVdGlsaXRpZXMgKi8sCiAJCQkJQkNEREIzMTQxMjRFQkNFRjAw
NDhEMTNDIC8qIEFQSSAqLywKIAkJCQk1MThFOEVGMTE2QjIwOEYwMDBFOTE0MjkgLyogQXV0aGVu
dGljYXRpb24gKi8sCiAJCQkJMUFBRjBDNDcxMkIxNjMyODAwOEU0OUUyIC8qIGNmICovLApAQCAt
MzExOCwxNiArMzEwNyw2IEBACiAJCQlwYXRoID0gTm90aWZpY2F0aW9uczsKIAkJCXNvdXJjZVRy
ZWUgPSAiPGdyb3VwPiI7CiAJCX07Ci0JCTMyQzg4REZGMDM3MUMyNDIwMEM5MTc4MyAvKiBPdGhl
ciBTb3VyY2VzICovID0gewotCQkJaXNhID0gUEJYR3JvdXA7Ci0JCQljaGlsZHJlbiA9ICgKLQkJ
CQkxQTZGQTMxMDExRTM5MjFFMDBEQjEzNzEgLyogTWFpbk1hY1Byb2Nlc3MuY3BwICovLAotCQkJ
KTsKLQkJCW5hbWUgPSAiT3RoZXIgU291cmNlcyI7Ci0JCQlzb3VyY2VUcmVlID0gIjxncm91cD4i
OwotCQkJdGFiV2lkdGggPSA4OwotCQkJdXNlc1RhYnMgPSAwOwotCQl9OwogCQkzMzA5MzQ0QjEz
MTVCOTNBMDA5N0E3QkMgLyogQ29va2llcyAqLyA9IHsKIAkJCWlzYSA9IFBCWEdyb3VwOwogCQkJ
Y2hpbGRyZW4gPSAoCkBAIC0zMTg2LDYgKzMxNjUsNyBAQAogCQk1MTBDQzdEQTE2MTM4RTAxMDBE
MDNFRDMgLyogTmV0d29ya1Byb2Nlc3MgKi8gPSB7CiAJCQlpc2EgPSBQQlhHcm91cDsKIAkJCWNo
aWxkcmVuID0gKAorCQkJCUJDODI4MzdDMTZCNDVEQTUwMEEyNzhGRSAvKiBFbnRyeVBvaW50ICov
LAogCQkJCTUxMENDN0RDMTYxMzhFMjkwMEQwM0VEMyAvKiBtYWMgKi8sCiAJCQkJNTEyQzA2ODYx
NjM4RjY3RTAwQUJCOTExIC8qIEhvc3RSZWNvcmQuY3BwICovLAogCQkJCTUxMkMwNjg3MTYzOEY2
N0UwMEFCQjkxMSAvKiBIb3N0UmVjb3JkLmggKi8sCkBAIC0zMTk1LDcgKzMxNzUsNiBAQAogCQkJ
CTUxMENDN0RGMTYxMzhFMjkwMEQwM0VEMyAvKiBOZXR3b3JrUHJvY2Vzcy5jcHAgKi8sCiAJCQkJ
NTEwQ0M3RTAxNjEzOEUyOTAwRDAzRUQzIC8qIE5ldHdvcmtQcm9jZXNzLmggKi8sCiAJCQkJNTFB
OEE2MTcxNjI3RjVCQjAwMEQ5MEU5IC8qIE5ldHdvcmtQcm9jZXNzLm1lc3NhZ2VzLmluICovLAot
CQkJCTUxMENDN0UxMTYxMzhFMjkwMEQwM0VEMyAvKiBOZXR3b3JrUHJvY2Vzc01haW4uaCAqLywK
IAkJCQk1MUZEMThCMzE2NTFGQkFEMDBEQkUxQ0UgLyogTmV0d29ya1Jlc291cmNlTG9hZGVyLmNw
cCAqLywKIAkJCQk1MUZEMThCNDE2NTFGQkFEMDBEQkUxQ0UgLyogTmV0d29ya1Jlc291cmNlTG9h
ZGVyLmggKi8sCiAJCQkJNTE1NzA1NTIxNjU3MDE4QzAwMTAxQTkwIC8qIE5ldHdvcmtSZXNvdXJj
ZUxvYWRlci5tZXNzYWdlcy5pbiAqLywKQEAgLTMyMTMsNyArMzE5Miw2IEBACiAJCQlpc2EgPSBQ
QlhHcm91cDsKIAkJCWNoaWxkcmVuID0gKAogCQkJCTUxQThBNjE1MTYyN0YzRjkwMDBEOTBFOSAv
KiBOZXR3b3JrUHJvY2Vzc01hYy5tbSAqLywKLQkJCQk1MTBDQzdERDE2MTM4RTI5MDBEMDNFRDMg
LyogTmV0d29ya1Byb2Nlc3NNYWluTWFjLm1tICovLAogCQkJCTUxMkMwNjhGMTYzOTBFNjkwMEFC
QjkxMSAvKiBOZXR3b3JrUmVzb3VyY2VMb2FkU2NoZWR1bGVyTWFjLm1tICovLAogCQkJCUUxQjc4
NDcwMTYzRjI0NjkwMDA3QjY5MiAvKiBSZW1vdGVOZXR3b3JraW5nQ29udGV4dC5oICovLAogCQkJ
CUUxQjc4NDcyMTYzRjI1M0UwMDA3QjY5MiAvKiBSZW1vdGVOZXR3b3JraW5nQ29udGV4dC5tbSAq
LywKQEAgLTMyMzQsMTQgKzMyMTIsNiBAQAogCQkJcGF0aCA9IE5ldHdvcms7CiAJCQlzb3VyY2VU
cmVlID0gIjxncm91cD4iOwogCQl9OwotCQk1MTBDQzg0QTE2MTNDOEFCMDBEMDNFRDMgLyogTmV0
d29ya1Byb2Nlc3MgKi8gPSB7Ci0JCQlpc2EgPSBQQlhHcm91cDsKLQkJCWNoaWxkcmVuID0gKAot
CQkJCTUxMENDODE5MTYxM0M3OTkwMEQwM0VEMyAvKiBJbmZvLnBsaXN0ICovLAotCQkJKTsKLQkJ
CW5hbWUgPSBOZXR3b3JrUHJvY2VzczsKLQkJCXNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7Ci0JCX07
CiAJCTUxMjNDRjE4MTMzRDI1RTYwMDU2RjgwMCAvKiBjZyAqLyA9IHsKIAkJCWlzYSA9IFBCWEdy
b3VwOwogCQkJY2hpbGRyZW4gPSAoCkBAIC0zNDMyLDExICszNDAyLDkgQEAKIAkJCQlCQzAzMkQ1
RTEwRjQzNzJCMDA1OEMxNUEgLyogV2ViUGFnZSAqLywKIAkJCQlCQ0U5QzBDRjE0ODU5NjVEMDBF
MzNENjEgLyogV2ViQ29ubmVjdGlvblRvVUlQcm9jZXNzLmNwcCAqLywKIAkJCQlCQ0U5QzBEMDE0
ODU5NjVEMDBFMzNENjEgLyogV2ViQ29ubmVjdGlvblRvVUlQcm9jZXNzLmggKi8sCi0JCQkJMUE2
RkEzMTUxMUUzOTIzNjAwREIxMzcxIC8qIFdlYktpdE1haW4uY3BwICovLAogCQkJCUJDMTExQUUz
MTEyRjVDMjYwMDMzN0JBQiAvKiBXZWJQcm9jZXNzLmNwcCAqLywKIAkJCQlCQzAzMkQ5MTEwRjQz
N0FGMDA1OEMxNUEgLyogV2ViUHJvY2Vzcy5oICovLAogCQkJCUJDMzA2NkI5MTI1QTQzNjMwMEU3
MTI3OCAvKiBXZWJQcm9jZXNzLm1lc3NhZ2VzLmluICovLAotCQkJCTFBNkZBMDFGMTFFMTUyODcw
MERCMTM3MSAvKiBXZWJQcm9jZXNzTWFpbi5oICovLAogCQkJCUJDRTBFNDI0MTY4QjdBMjgwMDU3
RTY2QSAvKiBXZWJQcm9jZXNzU3VwcGxlbWVudC5oICovLAogCQkJKTsKIAkJCXBhdGggPSBXZWJQ
cm9jZXNzOwpAQCAtMzg1Miw4ICszODIwLDYgQEAKIAkJCQlFMUEzMTczMTEzNENFQTZDMDA3QzlB
NEYgLyogQXR0cmlidXRlZFN0cmluZy5oICovLAogCQkJCUUxQTMxNzM0MTM0Q0VBODAwMDdDOUE0
RiAvKiBBdHRyaWJ1dGVkU3RyaW5nLm1tICovLAogCQkJCTlGNTRGODhFMTY0ODhFODcwMDdERjgx
QSAvKiBDaGlsZFByb2Nlc3NNYWMubW0gKi8sCi0JCQkJQkM5QkE1MDcxNjk5MUMzQzAwRTQ0NjE2
IC8qIENoaWxkUHJvY2Vzc01haW4uaCAqLywKLQkJCQlCQzlCQTUwNjE2OTkxQzNDMDBFNDQ2MTYg
LyogQ2hpbGRQcm9jZXNzTWFpbi5tbSAqLywKIAkJCQkxQTJBNEFGRTE1ODY5MzkyMDA5MEM5RTkg
LyogQ29sb3JTcGFjZURhdGEuaCAqLywKIAkJCQkxQTJBNEFGRDE1ODY5MzkyMDA5MEM5RTkgLyog
Q29sb3JTcGFjZURhdGEubW0gKi8sCiAJCQkJMUE2RjlGQjYxMUUxNDA4NTAwREIxMzcxIC8qIENv
bW1hbmRMaW5lTWFjLmNwcCAqLywKQEAgLTM5MDQsMTQgKzM4NzAsNiBAQAogCQkJcGF0aCA9IENv
cmVJUENTdXBwb3J0OwogCQkJc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsKIAkJfTsKLQkJQkMxMjJG
QTUxMzI3MDg1RDAwRjdFQUMxIC8qIFBsdWdpblByb2Nlc3MgKi8gPSB7Ci0JCQlpc2EgPSBQQlhH
cm91cDsKLQkJCWNoaWxkcmVuID0gKAotCQkJCUJDMTIyRkE2MTMyNzA4NzQwMEY3RUFDMSAvKiBJ
bmZvLnBsaXN0ICovLAotCQkJKTsKLQkJCW5hbWUgPSBQbHVnaW5Qcm9jZXNzOwotCQkJc291cmNl
VHJlZSA9ICI8Z3JvdXA+IjsKLQkJfTsKIAkJQkMyMDRFREYxMUM4M0U3MjAwOEYzMzc1IC8qIElu
amVjdGVkQnVuZGxlICovID0gewogCQkJaXNhID0gUEJYR3JvdXA7CiAJCQljaGlsZHJlbiA9ICgK
QEAgLTQwNzMsMjAgKzQwMzEsOTAgQEAKIAkJCXBhdGggPSBET007CiAJCQlzb3VyY2VUcmVlID0g
Ijxncm91cD4iOwogCQl9OwotCQlCQzhBNTAwRTExNzY1QUQ0MDA3NTc1NzMgLyogV2ViS2l0MiAq
LyA9IHsKKwkJQkM4MjgzNjgxNkIzNTg3OTAwQTI3OEZFIC8qIEVudHJ5UG9pbnRVdGlsaXRpZXMg
Ki8gPSB7CiAJCQlpc2EgPSBQQlhHcm91cDsKIAkJCWNoaWxkcmVuID0gKAotCQkJCThEQzJFRjVB
MDQ4NkE2OTQwMDk4QjIxNiAvKiBJbmZvLnBsaXN0ICovLAorCQkJCUJDODI4MzZBMTZCMzU4Nzkw
MEEyNzhGRSAvKiBMZWdhY3lQcm9jZXNzICovLAorCQkJCUJDODI4MzZCMTZCMzU4NzkwMEEyNzhG
RSAvKiBYUENTZXJ2aWNlICovLAogCQkJKTsKLQkJCW5hbWUgPSBXZWJLaXQyOworCQkJcGF0aCA9
IEVudHJ5UG9pbnRVdGlsaXRpZXM7CiAJCQlzb3VyY2VUcmVlID0gIjxncm91cD4iOwogCQl9Owot
CQlCQzhBNTAwRjExNzY1QUUzMDA3NTc1NzMgLyogV2ViUHJvY2VzcyAqLyA9IHsKKwkJQkM4Mjgz
NkExNkIzNTg3OTAwQTI3OEZFIC8qIExlZ2FjeVByb2Nlc3MgKi8gPSB7CiAJCQlpc2EgPSBQQlhH
cm91cDsKIAkJCWNoaWxkcmVuID0gKAotCQkJCUJDOEE1MDEwMTE3NjVBRjcwMDc1NzU3MyAvKiBJ
bmZvLnBsaXN0ICovLAorCQkJCUJDODI4Mzc4MTZCMzZBNEYwMEEyNzhGRSAvKiBDaGlsZFByb2Nl
c3NNYWluLmggKi8sCisJCQkJQkM4MjgzNzkxNkIzNkE0RjAwQTI3OEZFIC8qIENoaWxkUHJvY2Vz
c01haW4ubW0gKi8sCisJCQkJQkM4MjgzNzcxNkIzNjdGODAwQTI3OEZFIC8qIENoaWxkUHJvY2Vz
c01haW5Cb290c3RyYXBwZXIuaCAqLywKIAkJCSk7Ci0JCQluYW1lID0gV2ViUHJvY2VzczsKKwkJ
CW5hbWUgPSBMZWdhY3lQcm9jZXNzOworCQkJcGF0aCA9IG1hYy9MZWdhY3lQcm9jZXNzOworCQkJ
c291cmNlVHJlZSA9ICI8Z3JvdXA+IjsKKwkJfTsKKwkJQkM4MjgzNkIxNkIzNTg3OTAwQTI3OEZF
IC8qIFhQQ1NlcnZpY2UgKi8gPSB7CisJCQlpc2EgPSBQQlhHcm91cDsKKwkJCWNoaWxkcmVuID0g
KAorCQkJKTsKKwkJCW5hbWUgPSBYUENTZXJ2aWNlOworCQkJcGF0aCA9IG1hYy9YUENTZXJ2aWNl
OworCQkJc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsKKwkJfTsKKwkJQkM4MjgzN0MxNkI0NURBNTAw
QTI3OEZFIC8qIEVudHJ5UG9pbnQgKi8gPSB7CisJCQlpc2EgPSBQQlhHcm91cDsKKwkJCWNoaWxk
cmVuID0gKAorCQkJCUJDODI4MzdFMTZCNDVEQTUwMEEyNzhGRSAvKiBMZWdhY3lQcm9jZXNzICov
LAorCQkJKTsKKwkJCW5hbWUgPSBFbnRyeVBvaW50OworCQkJcGF0aCA9IE5ldHdvcmtQcm9jZXNz
L0VudHJ5UG9pbnQ7CisJCQlzb3VyY2VUcmVlID0gIjxncm91cD4iOworCQl9OworCQlCQzgyODM3
RTE2QjQ1REE1MDBBMjc4RkUgLyogTGVnYWN5UHJvY2VzcyAqLyA9IHsKKwkJCWlzYSA9IFBCWEdy
b3VwOworCQkJY2hpbGRyZW4gPSAoCisJCQkJQkM4MjgzN0YxNkI0NURBNTAwQTI3OEZFIC8qIElu
Zm8ucGxpc3QgKi8sCisJCQkJQkM4MjgzODExNkI0NURBNTAwQTI3OEZFIC8qIE5ldHdvcmtQcm9j
ZXNzTWFpbi5tbSAqLywKKwkJCQlCQzgyODM4MDE2QjQ1REE1MDBBMjc4RkUgLyogTmV0d29ya1By
b2Nlc3NNYWluQm9vdHN0cmFwcGVyLmNwcCAqLywKKwkJCSk7CisJCQluYW1lID0gTGVnYWN5UHJv
Y2VzczsKKwkJCXBhdGggPSBtYWMvTGVnYWN5UHJvY2VzczsKKwkJCXNvdXJjZVRyZWUgPSAiPGdy
b3VwPiI7CisJCX07CisJCUJDODI4Mzg2MTZCNDVFRjIwMEEyNzhGRSAvKiBFbnRyeVBvaW50ICov
ID0geworCQkJaXNhID0gUEJYR3JvdXA7CisJCQljaGlsZHJlbiA9ICgKKwkJCQlCQzgyODM4ODE2
QjQ1RUYyMDBBMjc4RkUgLyogTGVnYWN5UHJvY2VzcyAqLywKKwkJCSk7CisJCQlwYXRoID0gRW50
cnlQb2ludDsKKwkJCXNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7CisJCX07CisJCUJDODI4Mzg4MTZC
NDVFRjIwMEEyNzhGRSAvKiBMZWdhY3lQcm9jZXNzICovID0geworCQkJaXNhID0gUEJYR3JvdXA7
CisJCQljaGlsZHJlbiA9ICgKKwkJCQlCQzgyODM4RDE2QjQ1RkE2MDBBMjc4RkUgLyogSW5mby5w
bGlzdCAqLywKKwkJCQlCQzgyODM4QTE2QjQ1RUYyMDBBMjc4RkUgLyogUGx1Z2luUHJvY2Vzc01h
aW4ubW0gKi8sCisJCQkJQkM4MjgzODkxNkI0NUVGMjAwQTI3OEZFIC8qIFBsdWdpblByb2Nlc3NN
YWluQm9vdHN0cmFwcGVyLmNwcCAqLywKKwkJCSk7CisJCQluYW1lID0gTGVnYWN5UHJvY2VzczsK
KwkJCXBhdGggPSBtYWMvTGVnYWN5UHJvY2VzczsKKwkJCXNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7
CisJCX07CisJCUJDODI4MzhFMTZCNDYwMEQwMEEyNzhGRSAvKiBFbnRyeVBvaW50ICovID0gewor
CQkJaXNhID0gUEJYR3JvdXA7CisJCQljaGlsZHJlbiA9ICgKKwkJCQlCQzgyODM5MDE2QjQ2MDBE
MDBBMjc4RkUgLyogTGVnYWN5UHJvY2VzcyAqLywKKwkJCSk7CisJCQlwYXRoID0gRW50cnlQb2lu
dDsKKwkJCXNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7CisJCX07CisJCUJDODI4MzkwMTZCNDYwMEQw
MEEyNzhGRSAvKiBMZWdhY3lQcm9jZXNzICovID0geworCQkJaXNhID0gUEJYR3JvdXA7CisJCQlj
aGlsZHJlbiA9ICgKKwkJCQlCQzgyODM5MTE2QjQ2MDBEMDBBMjc4RkUgLyogSW5mby5wbGlzdCAq
LywKKwkJCQlCQzgyODM5MzE2QjQ2MDdCMDBBMjc4RkUgLyogU2hhcmVkV29ya2VyUHJvY2Vzc01h
aW4ubW0gKi8sCisJCQkJQkM4MjgzOTIxNkI0NjA3QjAwQTI3OEZFIC8qIFNoYXJlZFdvcmtlclBy
b2Nlc3NNYWluQm9vdHN0cmFwcGVyLmNwcCAqLywKKwkJCSk7CisJCQluYW1lID0gTGVnYWN5UHJv
Y2VzczsKKwkJCXBhdGggPSBtYWMvTGVnYWN5UHJvY2VzczsKIAkJCXNvdXJjZVRyZWUgPSAiPGdy
b3VwPiI7CiAJCX07CiAJCUJDOEE1MDEzMTE3NjVGNDUwMDc1NzU3MyAvKiBjcHAgKi8gPSB7CkBA
IC00MTQ1LDYgKzQxNzMsOSBAQAogCQlCQ0FDQzQzRDE2QjI0QzdEMDBCNkUwOTIgLyogTGVnYWN5
UHJvY2VzcyAqLyA9IHsKIAkJCWlzYSA9IFBCWEdyb3VwOwogCQkJY2hpbGRyZW4gPSAoCisJCQkJ
QkM4MjgzNzMxNkIzNUFGOTAwQTI3OEZFIC8qIEluZm8ucGxpc3QgKi8sCisJCQkJQkM4MjgzNjQx
NkIzNTRGNjAwQTI3OEZFIC8qIFdlYkNvbnRlbnRQcm9jZXNzTWFpbi5tbSAqLywKKwkJCQlCQzgy
ODM3NDE2QjM2NzRCMDBBMjc4RkUgLyogV2ViQ29udGVudFByb2Nlc3NNYWluQm9vdHN0cmFwcGVy
LmNwcCAqLywKIAkJCSk7CiAJCQluYW1lID0gTGVnYWN5UHJvY2VzczsKIAkJCXBhdGggPSBtYWMv
TGVnYWN5UHJvY2VzczsKQEAgLTQ1MDQsMTEgKzQ1MzUsMTEgQEAKIAkJRTEzQThBMzUxNjI4NzlB
QzAwMzkyOTI5IC8qIFNoYXJlZFdvcmtlclByb2Nlc3MgKi8gPSB7CiAJCQlpc2EgPSBQQlhHcm91
cDsKIAkJCWNoaWxkcmVuID0gKAorCQkJCUJDODI4MzhFMTZCNDYwMEQwMEEyNzhGRSAvKiBFbnRy
eVBvaW50ICovLAogCQkJCUUxRURGRDlBMTYyODdDRjUwMDM5RUNEQSAvKiBtYWMgKi8sCiAJCQkJ
RTFFREZEOUUxNjI4ODIxMDAwMzlFQ0RBIC8qIFNoYXJlZFdvcmtlclByb2Nlc3MuY3BwICovLAog
CQkJCUUxRURGRDlEMTYyODdGMTkwMDM5RUNEQSAvKiBTaGFyZWRXb3JrZXJQcm9jZXNzLmggKi8s
CiAJCQkJRTFFREZEQTAxNjI4ODMwMzAwMzlFQ0RBIC8qIFNoYXJlZFdvcmtlclByb2Nlc3MubWVz
c2FnZXMuaW4gKi8sCi0JCQkJRTFFREZEOTgxNjI4N0JEMTAwMzlFQ0RBIC8qIFNoYXJlZFdvcmtl
clByb2Nlc3NNYWluLmggKi8sCiAJCQkpOwogCQkJcGF0aCA9IFNoYXJlZFdvcmtlclByb2Nlc3M7
CiAJCQlzb3VyY2VUcmVlID0gIjxncm91cD4iOwpAQCAtNDUzMiwyMCArNDU2MywxMSBAQAogCQkJ
bmFtZSA9IFBERjsKIAkJCXNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7CiAJCX07Ci0JCUUxRURGRDk3
MTYyODdBRUMwMDM5RUNEQSAvKiBTaGFyZWRXb3JrZXJQcm9jZXNzICovID0gewotCQkJaXNhID0g
UEJYR3JvdXA7Ci0JCQljaGlsZHJlbiA9ICgKLQkJCQlFMTNBOEEzNzE2Mjg3OUFDMDAzOTI5Mjkg
LyogSW5mby5wbGlzdCAqLywKLQkJCSk7Ci0JCQluYW1lID0gU2hhcmVkV29ya2VyUHJvY2VzczsK
LQkJCXNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7Ci0JCX07CiAJCUUxRURGRDlBMTYyODdDRjUwMDM5
RUNEQSAvKiBtYWMgKi8gPSB7CiAJCQlpc2EgPSBQQlhHcm91cDsKIAkJCWNoaWxkcmVuID0gKAog
CQkJCUUxRURGREE0MTYyODg0NjQwMDM5RUNEQSAvKiBjb20uYXBwbGUuV2ViS2l0LlNoYXJlZFdv
cmtlclByb2Nlc3Muc2IgKi8sCiAJCQkJRTFFREZEQTIxNjI4ODM4QzAwMzlFQ0RBIC8qIFNoYXJl
ZFdvcmtlclByb2Nlc3NNYWMubW0gKi8sCi0JCQkJRTFFREZEOUIxNjI4N0QwQjAwMzlFQ0RBIC8q
IFNoYXJlZFdvcmtlclByb2Nlc3NNYWluTWFjLm1tICovLAogCQkJKTsKIAkJCXBhdGggPSBtYWM7
CiAJCQlzb3VyY2VUcmVlID0gIjxncm91cD4iOwpAQCAtNDYxMyw3ICs0NjM1LDYgQEAKIAkJCQlC
QzMwNjVGQTEyNTkzNDRFMDBFNzEyNzggLyogQ2FjaGVNb2RlbC5oIGluIEhlYWRlcnMgKi8sCiAJ
CQkJMUFBMkU1MUQxMkU0QzA1RTAwQkM0OTY2IC8qIENHVXRpbGl0aWVzLmggaW4gSGVhZGVycyAq
LywKIAkJCQkxQTJEOTU2RjEyODQ4NTY0MDAxRUI5NjIgLyogQ2hpbGRQcm9jZXNzLmggaW4gSGVh
ZGVycyAqLywKLQkJCQlCQzlCQTUwOTE2OTkxQzNDMDBFNDQ2MTYgLyogQ2hpbGRQcm9jZXNzTWFp
bi5oIGluIEhlYWRlcnMgKi8sCiAJCQkJRTE1MTNDNjcxNjZFQUJCMjAwMTQ5RkNCIC8qIENoaWxk
UHJvY2Vzc1Byb3h5LmggaW4gSGVhZGVycyAqLywKIAkJCQkxQTZGOUY5MDExRTEzRUZDMDBEQjEz
NzEgLyogQ29tbWFuZExpbmUuaCBpbiBIZWFkZXJzICovLAogCQkJCTM3QzRFOUY2MTMxQzZFN0Uw
MDI5QkQ1QSAvKiBjb25maWcuaCBpbiBIZWFkZXJzICovLApAQCAtNDcwMiw3ICs0NzIzLDYgQEAK
IAkJCQk1MTc5NTU2QTE2Mjg3NkYzMDBGQTQzQjYgLyogTmV0d29ya1Byb2Nlc3MuaCBpbiBIZWFk
ZXJzICovLAogCQkJCTUxN0NGMEU0MTYzQTQ4NkMwMEMyOTUwRSAvKiBOZXR3b3JrUHJvY2Vzc0Nv
bm5lY3Rpb25NZXNzYWdlcy5oIGluIEhlYWRlcnMgKi8sCiAJCQkJNTE3OTU1NzExNjI4NzdEMjAw
RkE0M0I2IC8qIE5ldHdvcmtQcm9jZXNzQ3JlYXRpb25QYXJhbWV0ZXJzLmggaW4gSGVhZGVycyAq
LywKLQkJCQk1MTc5NTU2OTE2Mjg3NkVFMDBGQTQzQjYgLyogTmV0d29ya1Byb2Nlc3NNYWluLmgg
aW4gSGVhZGVycyAqLywKIAkJCQk1MTYzMTk5NTE2Mjg5QTYzMDBFMjJGMDAgLyogTmV0d29ya1By
b2Nlc3NNZXNzYWdlcy5oIGluIEhlYWRlcnMgKi8sCiAJCQkJNTE3OTU1NkUxNjI4NzdCMzAwRkE0
M0I2IC8qIE5ldHdvcmtQcm9jZXNzUHJveHkuaCBpbiBIZWFkZXJzICovLAogCQkJCTUxM0ExNjNE
MTYzMDg4RjYwMDVEN0QyMiAvKiBOZXR3b3JrUHJvY2Vzc1Byb3h5TWVzc2FnZXMuaCBpbiBIZWFk
ZXJzICovLApAQCAtNDc0OSw3ICs0NzY5LDYgQEAKIAkJCQkxQTBFQzkwRjEyNEMwQUY1MDA3RUY0
QTUgLyogUGx1Z2luUHJvY2Vzc0Nvbm5lY3Rpb25NYW5hZ2VyLmggaW4gSGVhZGVycyAqLywKIAkJ
CQkxQTJCQjZEMTE0MTE3QjREMDAwRjM1RDQgLyogUGx1Z2luUHJvY2Vzc0Nvbm5lY3Rpb25NZXNz
YWdlcy5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMUEyRDkwRDIxMjgxQzk2NjAwMUVCOTYyIC8qIFBs
dWdpblByb2Nlc3NDcmVhdGlvblBhcmFtZXRlcnMuaCBpbiBIZWFkZXJzICovLAotCQkJCTFBMEVD
N0ZCMTI0QkQzQjYwMDdFRjRBNSAvKiBQbHVnaW5Qcm9jZXNzTWFpbi5oIGluIEhlYWRlcnMgKi8s
CiAJCQkJMUEwRUM2MDMxMjRBOUYyQzAwN0VGNEE1IC8qIFBsdWdpblByb2Nlc3NNYW5hZ2VyLmgg
aW4gSGVhZGVycyAqLywKIAkJCQkxQTBFQzZDMDEyNEJCRDlCMDA3RUY0QTUgLyogUGx1Z2luUHJv
Y2Vzc01lc3NhZ2VzLmggaW4gSGVhZGVycyAqLywKIAkJCQkxQTBFQzc1RTEyNEJDN0IyMDA3RUY0
QTUgLyogUGx1Z2luUHJvY2Vzc1Byb3h5LmggaW4gSGVhZGVycyAqLywKQEAgLTQ5MzIsNyArNDk1
MSw2IEBACiAJCQkJMUEwNDNBMDkxMjREMTFBOTAwRkZCRkI1IC8qIFdlYlByb2Nlc3NDb25uZWN0
aW9uLmggaW4gSGVhZGVycyAqLywKIAkJCQkxQTA0M0Y2QTEyNTE0RDhCMDBGRkJGQjUgLyogV2Vi
UHJvY2Vzc0Nvbm5lY3Rpb25NZXNzYWdlcy5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQkMzMDY4MjQx
MjVBNkI5NDAwRTcxMjc4IC8qIFdlYlByb2Nlc3NDcmVhdGlvblBhcmFtZXRlcnMuaCBpbiBIZWFk
ZXJzICovLAotCQkJCTFBNkZBMDIwMTFFMTUyODcwMERCMTM3MSAvKiBXZWJQcm9jZXNzTWFpbi5o
IGluIEhlYWRlcnMgKi8sCiAJCQkJQkMzMDY2QkYxMjVBNDQyMTAwRTcxMjc4IC8qIFdlYlByb2Nl
c3NNZXNzYWdlcy5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQkMwMzJERDUxMEY0Mzg5RjAwNThDMTVB
IC8qIFdlYlByb2Nlc3NQcm94eS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQkNFRTdBRDExMjgxNzk4
ODAwOTgyN0RBIC8qIFdlYlByb2Nlc3NQcm94eU1lc3NhZ2VzLmggaW4gSGVhZGVycyAqLywKQEAg
LTUxMDcsNiArNTEyNSw3IEBACiAJCQkJNTE4RThGMDgxNkIyMDkzNzAwRTkxNDI5IC8qIERvd25s
b2FkLmggaW4gSGVhZGVycyAqLywKIAkJCQk1MThFOEYwQTE2QjIwOTM3MDBFOTE0MjkgLyogRG93
bmxvYWRBdXRoZW50aWNhdGlvbkNsaWVudC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJNTE4RThGMEMx
NkIyMDkzNzAwRTkxNDI5IC8qIERvd25sb2FkTWFuYWdlci5oIGluIEhlYWRlcnMgKi8sCisJCQkJ
QkM4MjgzN0ExNkIzNkE0RjAwQTI3OEZFIC8qIENoaWxkUHJvY2Vzc01haW4uaCBpbiBIZWFkZXJz
ICovLAogCQkJKTsKIAkJCXJ1bk9ubHlGb3JEZXBsb3ltZW50UG9zdHByb2Nlc3NpbmcgPSAwOwog
CQl9OwpAQCAtNTU0MSw4ICs1NTYwLDggQEAKIAkJCWlzYSA9IFBCWFNvdXJjZXNCdWlsZFBoYXNl
OwogCQkJYnVpbGRBY3Rpb25NYXNrID0gMjE0NzQ4MzY0NzsKIAkJCWZpbGVzID0gKAotCQkJCTFB
NkZBMzExMTFFMzkyMUUwMERCMTM3MSAvKiBNYWluTWFjUHJvY2Vzcy5jcHAgaW4gU291cmNlcyAq
LywKIAkJCQkxQTE3NjM1NjE2QjFENUQwMDBEODhGRDYgLyogU3RvcmFnZU5hbWVzcGFjZVByb3h5
LmNwcCBpbiBTb3VyY2VzICovLAorCQkJCUJDODI4Mzc2MTZCMzY3NEIwMEEyNzhGRSAvKiBXZWJD
b250ZW50UHJvY2Vzc01haW5Cb290c3RyYXBwZXIuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkpOwog
CQkJcnVuT25seUZvckRlcGxveW1lbnRQb3N0cHJvY2Vzc2luZyA9IDA7CiAJCX07CkBAIC01NTY2
LDcgKzU1ODUsNyBAQAogCQkJaXNhID0gUEJYU291cmNlc0J1aWxkUGhhc2U7CiAJCQlidWlsZEFj
dGlvbk1hc2sgPSAyMTQ3NDgzNjQ3OwogCQkJZmlsZXMgPSAoCi0JCQkJNTEwQ0M4NEYxNjEzQzky
QzAwRDAzRUQzIC8qIE1haW5NYWNQcm9jZXNzLmNwcCBpbiBTb3VyY2VzICovLAorCQkJCUJDODI4
Mzg1MTZCNDVEQjcwMEEyNzhGRSAvKiBOZXR3b3JrUHJvY2Vzc01haW5Cb290c3RyYXBwZXIuY3Bw
IGluIFNvdXJjZXMgKi8sCiAJCQkpOwogCQkJcnVuT25seUZvckRlcGxveW1lbnRQb3N0cHJvY2Vz
c2luZyA9IDA7CiAJCX07CkBAIC01NTkzLDcgKzU2MTIsNiBAQAogCQkJCTFBQTJFNTFFMTJFNEMw
NUUwMEJDNDk2NiAvKiBDR1V0aWxpdGllcy5jcHAgaW4gU291cmNlcyAqLywKIAkJCQkxQTJEOTU3
MDEyODQ4NTY0MDAxRUI5NjIgLyogQ2hpbGRQcm9jZXNzLmNwcCBpbiBTb3VyY2VzICovLAogCQkJ
CTlGNTRGODhGMTY0ODhFODcwMDdERjgxQSAvKiBDaGlsZFByb2Nlc3NNYWMubW0gaW4gU291cmNl
cyAqLywKLQkJCQlCQzlCQTUwODE2OTkxQzNDMDBFNDQ2MTYgLyogQ2hpbGRQcm9jZXNzTWFpbi5t
bSBpbiBTb3VyY2VzICovLAogCQkJCUUxNTEzQzY2MTY2RUFCQjIwMDE0OUZDQiAvKiBDaGlsZFBy
b2Nlc3NQcm94eS5jcHAgaW4gU291cmNlcyAqLywKIAkJCQkxQTJBNEIwRTE1ODZBMjI0MDA5MEM5
RTkgLyogQ29sb3JTcGFjZURhdGEubW0gaW4gU291cmNlcyAqLywKIAkJCQkxQTZGOUZCNzExRTE0
MDg1MDBEQjEzNzEgLyogQ29tbWFuZExpbmVNYWMuY3BwIGluIFNvdXJjZXMgKi8sCkBAIC01Njg2
LDcgKzU3MDQsNiBAQAogCQkJCTUxN0NGMEUzMTYzQTQ4NkMwMEMyOTUwRSAvKiBOZXR3b3JrUHJv
Y2Vzc0Nvbm5lY3Rpb25NZXNzYWdlUmVjZWl2ZXIuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJNTE3
OTU1NzAxNjI4NzdDRjAwRkE0M0I2IC8qIE5ldHdvcmtQcm9jZXNzQ3JlYXRpb25QYXJhbWV0ZXJz
LmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTUxNzk1NTY3MTYyODc2Q0IwMEZBNDNCNiAvKiBOZXR3
b3JrUHJvY2Vzc01hYy5tbSBpbiBTb3VyY2VzICovLAotCQkJCTUxNzk1NTY1MTYyODc2QzUwMEZB
NDNCNiAvKiBOZXR3b3JrUHJvY2Vzc01haW5NYWMubW0gaW4gU291cmNlcyAqLywKIAkJCQk1MTYz
MTk5NDE2Mjg5QTYwMDBFMjJGMDAgLyogTmV0d29ya1Byb2Nlc3NNZXNzYWdlUmVjZWl2ZXIuY3Bw
IGluIFNvdXJjZXMgKi8sCiAJCQkJNTE3OTU1NkQxNjI4NzdCMTAwRkE0M0I2IC8qIE5ldHdvcmtQ
cm9jZXNzUHJveHkuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJNTE2MzE5OTIxNjI4OTgwQTAwRTIy
RjAwIC8qIE5ldHdvcmtQcm9jZXNzUHJveHlNYWMubW0gaW4gU291cmNlcyAqLywKQEAgLTU3Mzcs
NyArNTc1NCw2IEBACiAJCQkJMUEyQkI2RDAxNDExN0I0RDAwMEYzNUQ0IC8qIFBsdWdpblByb2Nl
c3NDb25uZWN0aW9uTWVzc2FnZVJlY2VpdmVyLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTFBMkQ5
MEQzMTI4MUM5NjYwMDFFQjk2MiAvKiBQbHVnaW5Qcm9jZXNzQ3JlYXRpb25QYXJhbWV0ZXJzLmNw
cCBpbiBTb3VyY2VzICovLAogCQkJCTFBQTQ3OTIzMTJBNTlGRDkwMDgyMzZDMyAvKiBQbHVnaW5Q
cm9jZXNzTWFjLm1tIGluIFNvdXJjZXMgKi8sCi0JCQkJMUEwRUM4MDMxMjRCRDQxRTAwN0VGNEE1
IC8qIFBsdWdpblByb2Nlc3NNYWluTWFjLm1tIGluIFNvdXJjZXMgKi8sCiAJCQkJMUEwRUM2MDQx
MjRBOUYyQzAwN0VGNEE1IC8qIFBsdWdpblByb2Nlc3NNYW5hZ2VyLmNwcCBpbiBTb3VyY2VzICov
LAogCQkJCTlGNTRGODk1MTY0OEFFMEYwMDdERjgxQSAvKiBQbHVnaW5Qcm9jZXNzTWFuYWdlck1h
Yy5tbSBpbiBTb3VyY2VzICovLAogCQkJCTFBMDQzQ0VCMTI0RkUzOEYwMEZGQkZCNSAvKiBQbHVn
aW5Qcm9jZXNzTWVzc2FnZVJlY2VpdmVyLmNwcCBpbiBTb3VyY2VzICovLApAQCAtNTc3NSw3ICs1
NzkxLDYgQEAKIAkJCQlFMUVERkRBOTE2Mjg4NkFDMDAzOUVDREEgLyogU2hhcmVkV29ya2VyUHJv
Y2Vzcy5jcHAgaW4gU291cmNlcyAqLywKIAkJCQlFMUVERkRCMDE2Mjg4OTgyMDAzOUVDREEgLyog
U2hhcmVkV29ya2VyUHJvY2Vzc0NyZWF0aW9uUGFyYW1ldGVycy5jcHAgaW4gU291cmNlcyAqLywK
IAkJCQlFMUVERkRBODE2Mjg4Njk5MDAzOUVDREEgLyogU2hhcmVkV29ya2VyUHJvY2Vzc01hYy5t
bSBpbiBTb3VyY2VzICovLAotCQkJCUUxRURGREE3MTYyODg2OTYwMDM5RUNEQSAvKiBTaGFyZWRX
b3JrZXJQcm9jZXNzTWFpbk1hYy5tbSBpbiBTb3VyY2VzICovLAogCQkJCUUxRURGRTEyMTYyOENG
QjIwMDM5RUNEQSAvKiBTaGFyZWRXb3JrZXJQcm9jZXNzTWFuYWdlci5jcHAgaW4gU291cmNlcyAq
LywKIAkJCQk5RjRGNTk0MjE2NDhCNDA3MDA0OTNCN0UgLyogU2hhcmVkV29ya2VyUHJvY2Vzc01h
bmFnZXJNYWMubW0gaW4gU291cmNlcyAqLywKIAkJCQlFMUVERkRCNTE2MjhBRDczMDAzOUVDREEg
LyogU2hhcmVkV29ya2VyUHJvY2Vzc01lc3NhZ2VSZWNlaXZlci5jcHAgaW4gU291cmNlcyAqLywK
QEAgLTU4OTMsNyArNTkwOCw2IEBACiAJCQkJNTFBOUUxMDUxMzE1Q0NGQzAwOUU3MDMxIC8qIFdl
YktleVZhbHVlU3RvcmFnZU1hbmFnZXJQcm94eS5jcHAgaW4gU291cmNlcyAqLywKIAkJCQk1MUE5
RTEyQTEzMTVFRDM1MDA5RTcwMzEgLyogV2ViS2V5VmFsdWVTdG9yYWdlTWFuYWdlclByb3h5TWVz
c2FnZVJlY2VpdmVyLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCUJDOUJBNTA0MTY5N0M0NTMwMEU0
NDYxNiAvKiBXZWJLaXQySW5pdGlhbGl6ZS5jcHAgaW4gU291cmNlcyAqLywKLQkJCQkxQTZGQTMx
NjExRTM5MjM2MDBEQjEzNzEgLyogV2ViS2l0TWFpbi5jcHAgaW4gU291cmNlcyAqLywKIAkJCQlC
Q0I5RTc2MjExMjMyQjlFMDBBMTM3RTAgLyogV2ViTG9hZGVyQ2xpZW50LmNwcCBpbiBTb3VyY2Vz
ICovLAogCQkJCTMzRDNBM0MxMTMzOTYwQjAwMDcwOUJFNCAvKiBXZWJNZWRpYUNhY2hlTWFuYWdl
ci5jcHAgaW4gU291cmNlcyAqLywKIAkJCQkzM0QzQTNDODEzMzk2MTc5MDA3MDlCRTQgLyogV2Vi
TWVkaWFDYWNoZU1hbmFnZXJNZXNzYWdlUmVjZWl2ZXIuY3BwIGluIFNvdXJjZXMgKi8sCkBAIC01
OTQ0LDcgKzU5NTgsNiBAQAogCQkJCTFBMDQzRjY5MTI1MTREOEIwMEZGQkZCNSAvKiBXZWJQcm9j
ZXNzQ29ubmVjdGlvbk1lc3NhZ2VSZWNlaXZlci5jcHAgaW4gU291cmNlcyAqLywKIAkJCQlCQzMw
NjgyNTEyNUE2Qjk0MDBFNzEyNzggLyogV2ViUHJvY2Vzc0NyZWF0aW9uUGFyYW1ldGVycy5jcHAg
aW4gU291cmNlcyAqLywKIAkJCQlCQzMwNjVDNDEyNTkyRjg5MDBFNzEyNzggLyogV2ViUHJvY2Vz
c01hYy5tbSBpbiBTb3VyY2VzICovLAotCQkJCTFBNkZBMDFFMTFFMTUyNjMwMERCMTM3MSAvKiBX
ZWJQcm9jZXNzTWFpbk1hYy5tbSBpbiBTb3VyY2VzICovLAogCQkJCUJDMzA2NkJFMTI1QTQ0MjEw
MEU3MTI3OCAvKiBXZWJQcm9jZXNzTWVzc2FnZVJlY2VpdmVyLmNwcCBpbiBTb3VyY2VzICovLAog
CQkJCUJDMTExQjExMTEyRjVFNEYwMDMzN0JBQiAvKiBXZWJQcm9jZXNzUHJveHkuY3BwIGluIFNv
dXJjZXMgKi8sCiAJCQkJNTFEMTMwNTgxMzgyRjEwNTAwMzUxRUREIC8qIFdlYlByb2Nlc3NQcm94
eU1hYy5tbSBpbiBTb3VyY2VzICovLApAQCAtNjA4OSw2ICs2MTAyLDExIEBACiAJCQkJNTE4RThG
MDkxNkIyMDkzNzAwRTkxNDI5IC8qIERvd25sb2FkQXV0aGVudGljYXRpb25DbGllbnQuY3BwIGlu
IFNvdXJjZXMgKi8sCiAJCQkJNTE4RThGMEIxNkIyMDkzNzAwRTkxNDI5IC8qIERvd25sb2FkTWFu
YWdlci5jcHAgaW4gU291cmNlcyAqLywKIAkJCQk1MThFOEYwRDE2QjIwOTM3MDBFOTE0MjkgLyog
RG93bmxvYWRNYWMubW0gaW4gU291cmNlcyAqLywKKwkJCQlCQzgyODM2NTE2QjM1NEY2MDBBMjc4
RkUgLyogV2ViQ29udGVudFByb2Nlc3NNYWluLm1tIGluIFNvdXJjZXMgKi8sCisJCQkJQkM4Mjgz
N0IxNkIzNkE0RjAwQTI3OEZFIC8qIENoaWxkUHJvY2Vzc01haW4ubW0gaW4gU291cmNlcyAqLywK
KwkJCQlCQzgyODM4NDE2QjQ1REE1MDBBMjc4RkUgLyogTmV0d29ya1Byb2Nlc3NNYWluLm1tIGlu
IFNvdXJjZXMgKi8sCisJCQkJQkM4MjgzOEMxNkI0NUYwNzAwQTI3OEZFIC8qIFBsdWdpblByb2Nl
c3NNYWluLm1tIGluIFNvdXJjZXMgKi8sCisJCQkJQkM4MjgzOTUxNkI0NjA4MzAwQTI3OEZFIC8q
IFNoYXJlZFdvcmtlclByb2Nlc3NNYWluLm1tIGluIFNvdXJjZXMgKi8sCiAJCQkpOwogCQkJcnVu
T25seUZvckRlcGxveW1lbnRQb3N0cHJvY2Vzc2luZyA9IDA7CiAJCX07CkBAIC02MTEyLDcgKzYx
MzAsNyBAQAogCQkJaXNhID0gUEJYU291cmNlc0J1aWxkUGhhc2U7CiAJCQlidWlsZEFjdGlvbk1h
c2sgPSAyMTQ3NDgzNjQ3OwogCQkJZmlsZXMgPSAoCi0JCQkJQkNERTA5M0IxMzI3MjQ5NjAwMTI1
OUZCIC8qIE1haW5NYWNQcm9jZXNzLmNwcCBpbiBTb3VyY2VzICovLAorCQkJCUJDODI4MzhCMTZC
NDVFRkYwMEEyNzhGRSAvKiBQbHVnaW5Qcm9jZXNzTWFpbkJvb3RzdHJhcHBlci5jcHAgaW4gU291
cmNlcyAqLywKIAkJCSk7CiAJCQlydW5Pbmx5Rm9yRGVwbG95bWVudFBvc3Rwcm9jZXNzaW5nID0g
MDsKIAkJfTsKQEAgLTYxMjAsNyArNjEzOCw3IEBACiAJCQlpc2EgPSBQQlhTb3VyY2VzQnVpbGRQ
aGFzZTsKIAkJCWJ1aWxkQWN0aW9uTWFzayA9IDIxNDc0ODM2NDc7CiAJCQlmaWxlcyA9ICgKLQkJ
CQlFMUVERkRBNjE2Mjg4NjhFMDAzOUVDREEgLyogTWFpbk1hY1Byb2Nlc3MuY3BwIGluIFNvdXJj
ZXMgKi8sCisJCQkJQkM4MjgzOTQxNkI0NjA4MDAwQTI3OEZFIC8qIFNoYXJlZFdvcmtlclByb2Nl
c3NNYWluQm9vdHN0cmFwcGVyLmNwcCBpbiBTb3VyY2VzICovLAogCQkJKTsKIAkJCXJ1bk9ubHlG
b3JEZXBsb3ltZW50UG9zdHByb2Nlc3NpbmcgPSAwOwogCQl9OwpJbmRleDogU291cmNlL1dlYktp
dDIvV2ViUHJvY2Vzcy9JbmZvLnBsaXN0Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQyL1dl
YlByb2Nlc3MvSW5mby5wbGlzdAkocmV2aXNpb24gMTQwODc3KQorKysgU291cmNlL1dlYktpdDIv
V2ViUHJvY2Vzcy9JbmZvLnBsaXN0CSh3b3JraW5nIGNvcHkpCkBAIC0xLDMyICswLDAgQEAKLTw/
eG1sIHZlcnNpb249IjEuMCIgZW5jb2Rpbmc9IlVURi04Ij8+Ci08IURPQ1RZUEUgcGxpc3QgUFVC
TElDICItLy9BcHBsZS8vRFREIFBMSVNUIDEuMC8vRU4iICJodHRwOi8vd3d3LmFwcGxlLmNvbS9E
VERzL1Byb3BlcnR5TGlzdC0xLjAuZHRkIj4KLTxwbGlzdCB2ZXJzaW9uPSIxLjAiPgotPGRpY3Q+
Ci0JPGtleT5DRkJ1bmRsZUV4ZWN1dGFibGU8L2tleT4KLQk8c3RyaW5nPiR7UFJPRFVDVF9OQU1F
fTwvc3RyaW5nPgotCTxrZXk+Q0ZCdW5kbGVHZXRJbmZvU3RyaW5nPC9rZXk+Ci0JPHN0cmluZz4k
e0JVTkRMRV9WRVJTSU9OfSwgQ29weXJpZ2h0IDIwMDMtMjAxMyBBcHBsZSBJbmMuPC9zdHJpbmc+
Ci0JPGtleT5DRkJ1bmRsZUljb25GaWxlPC9rZXk+Ci0JPHN0cmluZz4ke0FQUF9JQ09OfTwvc3Ry
aW5nPgotCTxrZXk+Q0ZCdW5kbGVJZGVudGlmaWVyPC9rZXk+Ci0JPHN0cmluZz5jb20uYXBwbGUu
JHtQUk9EVUNUX05BTUV9PC9zdHJpbmc+Ci0JPGtleT5DRkJ1bmRsZUluZm9EaWN0aW9uYXJ5VmVy
c2lvbjwva2V5PgotCTxzdHJpbmc+Ni4wPC9zdHJpbmc+Ci0JPGtleT5DRkJ1bmRsZU5hbWU8L2tl
eT4KLQk8c3RyaW5nPiR7UFJPRFVDVF9OQU1FfTwvc3RyaW5nPgotCTxrZXk+Q0ZCdW5kbGVQYWNr
YWdlVHlwZTwva2V5PgotCTxzdHJpbmc+QVBQTDwvc3RyaW5nPgotCTxrZXk+Q0ZCdW5kbGVTaG9y
dFZlcnNpb25TdHJpbmc8L2tleT4KLQk8c3RyaW5nPiR7U0hPUlRfVkVSU0lPTl9TVFJJTkd9PC9z
dHJpbmc+Ci0JPGtleT5DRkJ1bmRsZVZlcnNpb248L2tleT4KLQk8c3RyaW5nPiR7QlVORExFX1ZF
UlNJT059PC9zdHJpbmc+Ci0JPGtleT5MU0ZpbGVRdWFyYW50aW5lRW5hYmxlZDwva2V5PgotCTx0
cnVlLz4KLQk8a2V5PkxTTWluaW11bVN5c3RlbVZlcnNpb248L2tleT4KLQk8c3RyaW5nPiR7TUFD
T1NYX0RFUExPWU1FTlRfVEFSR0VUfTwvc3RyaW5nPgotCTxrZXk+TFNVSUVsZW1lbnQ8L2tleT4K
LQk8dHJ1ZS8+Ci0JPGtleT5OU1ByaW5jaXBhbENsYXNzPC9rZXk+Ci0JPHN0cmluZz5OU0FwcGxp
Y2F0aW9uPC9zdHJpbmc+Ci08L2RpY3Q+Ci08L3BsaXN0PgpJbmRleDogU291cmNlL1dlYktpdDIv
V2ViUHJvY2Vzcy9XZWJLaXRNYWluLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0Mi9X
ZWJQcm9jZXNzL1dlYktpdE1haW4uY3BwCShyZXZpc2lvbiAxNDA4NzcpCisrKyBTb3VyY2UvV2Vi
S2l0Mi9XZWJQcm9jZXNzL1dlYktpdE1haW4uY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0xLDg5ICsw
LDAgQEAKLS8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMTAgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJl
c2VydmVkLgotICoKLSAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5h
cnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAotICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVk
IHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCi0gKiBhcmUgbWV0OgotICog
MS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBj
b3B5cmlnaHQKLSAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBm
b2xsb3dpbmcgZGlzY2xhaW1lci4KLSAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9y
bSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICBub3RpY2UsIHRoaXMg
bGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCi0g
KiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0
aGUgZGlzdHJpYnV0aW9uLgotICoKLSAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQ
TEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKLSAqIEFORCBBTlkgRVhQUkVT
UyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAot
ICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1Mg
Rk9SIEEgUEFSVElDVUxBUgotICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQg
U0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCi0gKiBCRSBMSUFCTEUgRk9SIEFO
WSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCi0g
KiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQ
Uk9DVVJFTUVOVCBPRgotICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBV
U0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCi0gKiBJTlRFUlJVUFRJT04pIEhPV0VW
RVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgotICog
Q09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNF
IE9SIE9USEVSV0lTRSkKLSAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBU
SElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKLSAqIFRIRSBQT1NTSUJJTElUWSBPRiBT
VUNIIERBTUFHRS4KLSAqLwotCi0jaW5jbHVkZSAiY29uZmlnLmgiCi0jaW5jbHVkZSAiQ29tbWFu
ZExpbmUuaCIKLQotI2luY2x1ZGUgIlBsdWdpblByb2Nlc3NNYWluLmgiCi0jaW5jbHVkZSAiUHJv
Y2Vzc0xhdW5jaGVyLmgiCi0jaW5jbHVkZSAiV2ViUHJvY2Vzc01haW4uaCIKLSNpbmNsdWRlIDx3
dGYvdGV4dC9DU3RyaW5nLmg+Ci0KLSNpZiBFTkFCTEUoTkVUV09SS19QUk9DRVNTKQotI2luY2x1
ZGUgIk5ldHdvcmtQcm9jZXNzTWFpbi5oIgotI2VuZGlmCi0KLSNpZiBFTkFCTEUoU0hBUkVEX1dP
UktFUl9QUk9DRVNTKQotI2luY2x1ZGUgIlNoYXJlZFdvcmtlclByb2Nlc3NNYWluLmgiCi0jZW5k
aWYKLQotI2lmIFBMQVRGT1JNKE1BQykKLSNpbmNsdWRlIDxvYmpjL29iamMtYXV0by5oPgotI2Vu
ZGlmCi0KLXVzaW5nIG5hbWVzcGFjZSBXZWJLaXQ7Ci0KLXN0YXRpYyBpbnQgV2ViS2l0TWFpbihj
b25zdCBDb21tYW5kTGluZSYgY29tbWFuZExpbmUpCi17Ci0gICAgUHJvY2Vzc0xhdW5jaGVyOjpQ
cm9jZXNzVHlwZSBwcm9jZXNzVHlwZTsgICAgCi0gICAgaWYgKCFQcm9jZXNzTGF1bmNoZXI6Omdl
dFByb2Nlc3NUeXBlRnJvbVN0cmluZyhjb21tYW5kTGluZVsidHlwZSJdLnV0ZjgoKS5kYXRhKCks
IHByb2Nlc3NUeXBlKSkKLSAgICAgICAgcmV0dXJuIEVYSVRfRkFJTFVSRTsKLQotICAgIHN3aXRj
aCAocHJvY2Vzc1R5cGUpIHsKLSAgICAgICAgY2FzZSBQcm9jZXNzTGF1bmNoZXI6OldlYlByb2Nl
c3M6Ci0gICAgICAgICAgICByZXR1cm4gV2ViUHJvY2Vzc01haW4oY29tbWFuZExpbmUpOwotI2lm
IEVOQUJMRShQTFVHSU5fUFJPQ0VTUykKLSAgICAgICAgY2FzZSBQcm9jZXNzTGF1bmNoZXI6OlBs
dWdpblByb2Nlc3M6Ci0gICAgICAgICAgICByZXR1cm4gUGx1Z2luUHJvY2Vzc01haW4oY29tbWFu
ZExpbmUpOwotI2VuZGlmCi0jaWYgRU5BQkxFKE5FVFdPUktfUFJPQ0VTUykKLSAgICAgICAgY2Fz
ZSBQcm9jZXNzTGF1bmNoZXI6Ok5ldHdvcmtQcm9jZXNzOgotICAgICAgICAgICAgcmV0dXJuIE5l
dHdvcmtQcm9jZXNzTWFpbihjb21tYW5kTGluZSk7Ci0jZW5kaWYKLSNpZiBFTkFCTEUoU0hBUkVE
X1dPUktFUl9QUk9DRVNTKQotICAgICAgICBjYXNlIFByb2Nlc3NMYXVuY2hlcjo6U2hhcmVkV29y
a2VyUHJvY2VzczoKLSAgICAgICAgICAgIHJldHVybiBTaGFyZWRXb3JrZXJQcm9jZXNzTWFpbihj
b21tYW5kTGluZSk7Ci0jZW5kaWYKLSAgICB9Ci0KLSAgICByZXR1cm4gRVhJVF9GQUlMVVJFOwot
fQotCi0jaWYgUExBVEZPUk0oTUFDKQotCi1leHRlcm4gIkMiIFdLX0VYUE9SVCBpbnQgV2ViS2l0
TWFpbihpbnQgYXJnYywgY2hhcioqIGFyZ3YpOwotCi1pbnQgV2ViS2l0TWFpbihpbnQgYXJnYywg
Y2hhcioqIGFyZ3YpCi17Ci0gICAgQVNTRVJUKCFvYmpjX2NvbGxlY3RpbmdFbmFibGVkKCkpOwot
ICAgIAotICAgIENvbW1hbmRMaW5lIGNvbW1hbmRMaW5lOwotICAgIGlmICghY29tbWFuZExpbmUu
cGFyc2UoYXJnYywgYXJndikpCi0gICAgICAgIHJldHVybiBFWElUX0ZBSUxVUkU7Ci0gICAgCi0g
ICAgcmV0dXJuIFdlYktpdE1haW4oY29tbWFuZExpbmUpOwotfQotCi0jZW5kaWYKSW5kZXg6IFNv
dXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUHJvY2Vzc01haW4uaAo9PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBT
b3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlByb2Nlc3NNYWluLmgJKHJldmlzaW9uIDE0MDg3
NykKKysrIFNvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUHJvY2Vzc01haW4uaAkod29ya2lu
ZyBjb3B5KQpAQCAtMSwzOSArMCwwIEBACi0vKgotICogQ29weXJpZ2h0IChDKSAyMDEwIEFwcGxl
IEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KLSAqCi0gKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNl
IGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKLSAqIG1vZGlmaWNh
dGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9u
cwotICogYXJlIG1ldDoKLSAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0
IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBj
b25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCi0gKiAyLiBSZWRpc3RyaWJ1
dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAot
ICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBk
aXNjbGFpbWVyIGluIHRoZQotICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJp
YWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KLSAqCi0gKiBUSElTIFNPRlRXQVJF
IElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycn
Ci0gKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJV
VCBOT1QgTElNSVRFRCBUTywKLSAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRB
QklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKLSAqIFBVUlBPU0UgQVJFIERJU0NM
QUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUwot
ICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lB
TCwgRVhFTVBMQVJZLCBPUgotICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJV
VCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKLSAqIFNVQlNUSVRVVEUgR09PRFMgT1Ig
U0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUwotICog
SU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJ
VFksIFdIRVRIRVIgSU4KLSAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJ
TkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCi0gKiBBUklTSU5HIElOIEFOWSBXQVkg
T1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCi0gKiBU
SEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCi0gKi8KLQotI2lmbmRlZiBXZWJQcm9jZXNz
TWFpbl9oCi0jZGVmaW5lIFdlYlByb2Nlc3NNYWluX2gKLQotI2luY2x1ZGUgIldLQmFzZS5oIgot
Ci1uYW1lc3BhY2UgV2ViS2l0IHsKLQotY2xhc3MgQ29tbWFuZExpbmU7Ci0KLWludCBXZWJQcm9j
ZXNzTWFpbihjb25zdCBDb21tYW5kTGluZSYpOwotCi19IC8vIG5hbWVzcGFjZSBXZWJLaXQKLQot
I2VuZGlmIC8vIFdlYlByb2Nlc3NNYWluX2gKSW5kZXg6IFNvdXJjZS9XZWJLaXQyL1dlYlByb2Nl
c3MvRW50cnlQb2ludC9tYWMvTGVnYWN5UHJvY2Vzcy9JbmZvLnBsaXN0Cj09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0t
IFNvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvRW50cnlQb2ludC9tYWMvTGVnYWN5UHJvY2Vzcy9J
bmZvLnBsaXN0CShyZXZpc2lvbiAxNDA4NzcpCShmcm9tIFNvdXJjZS9XZWJLaXQyL1dlYlByb2Nl
c3MvSW5mby5wbGlzdDoxNDA4NzcpCisrKyBTb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL0VudHJ5
UG9pbnQvbWFjL0xlZ2FjeVByb2Nlc3MvSW5mby5wbGlzdAkod29ya2luZyBjb3B5KQpAQCAtMCww
ICsxLDMyIEBACis8P3htbCB2ZXJzaW9uPSIxLjAiIGVuY29kaW5nPSJVVEYtOCI/PgorPCFET0NU
WVBFIHBsaXN0IFBVQkxJQyAiLS8vQXBwbGUvL0RURCBQTElTVCAxLjAvL0VOIiAiaHR0cDovL3d3
dy5hcHBsZS5jb20vRFREcy9Qcm9wZXJ0eUxpc3QtMS4wLmR0ZCI+Cis8cGxpc3QgdmVyc2lvbj0i
MS4wIj4KKzxkaWN0PgorCTxrZXk+Q0ZCdW5kbGVFeGVjdXRhYmxlPC9rZXk+CisJPHN0cmluZz4k
e1BST0RVQ1RfTkFNRX08L3N0cmluZz4KKwk8a2V5PkNGQnVuZGxlR2V0SW5mb1N0cmluZzwva2V5
PgorCTxzdHJpbmc+JHtCVU5ETEVfVkVSU0lPTn0sIENvcHlyaWdodCAyMDAzLTIwMTMgQXBwbGUg
SW5jLjwvc3RyaW5nPgorCTxrZXk+Q0ZCdW5kbGVJY29uRmlsZTwva2V5PgorCTxzdHJpbmc+JHtB
UFBfSUNPTn08L3N0cmluZz4KKwk8a2V5PkNGQnVuZGxlSWRlbnRpZmllcjwva2V5PgorCTxzdHJp
bmc+Y29tLmFwcGxlLiR7UFJPRFVDVF9OQU1FfTwvc3RyaW5nPgorCTxrZXk+Q0ZCdW5kbGVJbmZv
RGljdGlvbmFyeVZlcnNpb248L2tleT4KKwk8c3RyaW5nPjYuMDwvc3RyaW5nPgorCTxrZXk+Q0ZC
dW5kbGVOYW1lPC9rZXk+CisJPHN0cmluZz4ke1BST0RVQ1RfTkFNRX08L3N0cmluZz4KKwk8a2V5
PkNGQnVuZGxlUGFja2FnZVR5cGU8L2tleT4KKwk8c3RyaW5nPkFQUEw8L3N0cmluZz4KKwk8a2V5
PkNGQnVuZGxlU2hvcnRWZXJzaW9uU3RyaW5nPC9rZXk+CisJPHN0cmluZz4ke1NIT1JUX1ZFUlNJ
T05fU1RSSU5HfTwvc3RyaW5nPgorCTxrZXk+Q0ZCdW5kbGVWZXJzaW9uPC9rZXk+CisJPHN0cmlu
Zz4ke0JVTkRMRV9WRVJTSU9OfTwvc3RyaW5nPgorCTxrZXk+TFNGaWxlUXVhcmFudGluZUVuYWJs
ZWQ8L2tleT4KKwk8dHJ1ZS8+CisJPGtleT5MU01pbmltdW1TeXN0ZW1WZXJzaW9uPC9rZXk+CisJ
PHN0cmluZz4ke01BQ09TWF9ERVBMT1lNRU5UX1RBUkdFVH08L3N0cmluZz4KKwk8a2V5PkxTVUlF
bGVtZW50PC9rZXk+CisJPHRydWUvPgorCTxrZXk+TlNQcmluY2lwYWxDbGFzczwva2V5PgorCTxz
dHJpbmc+TlNBcHBsaWNhdGlvbjwvc3RyaW5nPgorPC9kaWN0PgorPC9wbGlzdD4KSW5kZXg6IFNv
dXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvRW50cnlQb2ludC9tYWMvTGVnYWN5UHJvY2Vzcy9XZWJD
b250ZW50UHJvY2Vzc01haW4ubW0KPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdDIvV2ViUHJv
Y2Vzcy9FbnRyeVBvaW50L21hYy9MZWdhY3lQcm9jZXNzL1dlYkNvbnRlbnRQcm9jZXNzTWFpbi5t
bQkocmV2aXNpb24gMTQwODcwKQkoZnJvbSBTb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL21hYy9X
ZWJQcm9jZXNzTWFpbk1hYy5tbToxNDA4NzApCisrKyBTb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNz
L0VudHJ5UG9pbnQvbWFjL0xlZ2FjeVByb2Nlc3MvV2ViQ29udGVudFByb2Nlc3NNYWluLm1tCSh3
b3JraW5nIGNvcHkpCkBAIC0wLDAgKzEsMTc4IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDEw
LCAyMDExLCAyMDEyIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRp
c3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdp
dGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBm
b2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBv
ZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3Rp
Y2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIu
CisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhl
IGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBh
bmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBh
bmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAq
CisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05U
UklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5U
SUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJB
TlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAq
IFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1Ig
SVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwg
SU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1B
R0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNV
QlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRT
OyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5Z
IFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElB
QklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBB
UklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJ
RiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKwor
I2ltcG9ydCAiY29uZmlnLmgiCisjaW1wb3J0ICJXZWJQcm9jZXNzTWFpbi5oIgorCisjaW1wb3J0
ICJDaGlsZFByb2Nlc3NNYWluLmgiCisjaW1wb3J0ICJDb21tYW5kTGluZS5oIgorI2ltcG9ydCAi
RW52aXJvbm1lbnRVdGlsaXRpZXMuaCIKKyNpbXBvcnQgIkVudmlyb25tZW50VmFyaWFibGVzLmgi
CisjaW1wb3J0ICJTdHJpbmdVdGlsaXRpZXMuaCIKKyNpbXBvcnQgIldlYlByb2Nlc3MuaCIKKyNp
bXBvcnQgPFdlYkNvcmUvUnVuTG9vcC5oPgorI2ltcG9ydCA8bWFjaC9tYWNoX2Vycm9yLmg+Cisj
aW1wb3J0IDxzZXJ2ZXJzL2Jvb3RzdHJhcC5oPgorI2ltcG9ydCA8c3Bhd24uaD4KKyNpbXBvcnQg
PHN0ZGlvLmg+CisjaW1wb3J0IDx3dGYvUmV0YWluUHRyLmg+CisjaW1wb3J0IDx3dGYvdGV4dC9D
U3RyaW5nLmg+CisjaW1wb3J0IDx3dGYvdGV4dC9XVEZTdHJpbmcuaD4KKworI2lmIFVTRShBUFBL
SVQpCitAaW50ZXJmYWNlIE5TQXBwbGljYXRpb24gKFdlYk5TQXBwbGljYXRpb25EZXRhaWxzKQor
LSh2b2lkKV9pbnN0YWxsQXV0b3JlbGVhc2VQb29sc09uQ3VycmVudFRocmVhZElmTmVjZXNzYXJ5
OworQGVuZAorI2VuZGlmCisKK2V4dGVybiAiQyIga2Vybl9yZXR1cm5fdCBib290c3RyYXBfcmVn
aXN0ZXIyKG1hY2hfcG9ydF90LCBuYW1lX3QsIG1hY2hfcG9ydF90LCB1aW50NjRfdCk7CisKK3Vz
aW5nIG5hbWVzcGFjZSBXZWJDb3JlOworCituYW1lc3BhY2UgV2ViS2l0IHsKKworY2xhc3MgV2Vi
UHJvY2Vzc01haW5EZWxlZ2F0ZSA6IHB1YmxpYyBDaGlsZFByb2Nlc3NNYWluRGVsZWdhdGUgewor
cHVibGljOgorICAgIFdlYlByb2Nlc3NNYWluRGVsZWdhdGUoY29uc3QgQ29tbWFuZExpbmUmIGNv
bW1hbmRMaW5lKQorICAgICAgICA6IENoaWxkUHJvY2Vzc01haW5EZWxlZ2F0ZShjb21tYW5kTGlu
ZSkKKyAgICB7CisgICAgfQorCisgICAgdmlydHVhbCB2b2lkIGRvUHJlSW5pdGlhbGl6YXRpb25X
b3JrKCkKKyAgICB7CisgICAgICAgIC8vIFJlbW92ZSB0aGUgV2ViUHJvY2VzcyBzaGltIGZyb20g
dGhlIERZTERfSU5TRVJUX0xJQlJBUklFUyBlbnZpcm9ubWVudCB2YXJpYWJsZSBzbyBhbnkgcHJv
Y2Vzc2VzIHNwYXduZWQgYnkKKyAgICAgICAgLy8gdGhlIFdlYlByb2Nlc3MgZG9uJ3QgdHJ5IHRv
IGluc2VydCB0aGUgc2hpbSBhbmQgY3Jhc2guCisgICAgICAgIEVudmlyb25tZW50VXRpbGl0aWVz
OjpzdHJpcFZhbHVlc0VuZGluZ1dpdGhTdHJpbmcoIkRZTERfSU5TRVJUX0xJQlJBUklFUyIsICIv
U2VjSXRlbVNoaW0uZHlsaWIiKTsKKyAgICAKKyNpZiBVU0UoQVBQS0lUKQorICAgICAgICBSdW5M
b29wOjpzZXRVc2VBcHBsaWNhdGlvblJ1bkxvb3BPbk1haW5SdW5Mb29wKCk7CisKKyAgICAgICAg
Ly8gSW5pdGlhbGl6ZSBBcHBLaXQuCisgICAgICAgIFtOU0FwcGxpY2F0aW9uIHNoYXJlZEFwcGxp
Y2F0aW9uXTsKKworICAgICAgICAvLyBJbnN0YWxscyBhdXRvcmVsZWFzZSBwb29scyBvbiB0aGUg
Y3VycmVudCBydW5sb29wIHdoaWNoIHByZXZlbnRzIG1lbW9yeSBmcm9tIGFjY3VtdWxhdGluZyBi
ZXR3ZWVuIHVzZXIgZXZlbnRzLgorICAgICAgICAvLyBGSVhNRTogUmVtb3ZlIHdoZW4gPHJkYXI6
Ly9wcm9ibGVtLzg5Mjk0MjY+IGlzIGZpeGVkLgorICAgICAgICBbTlNBcHAgX2luc3RhbGxBdXRv
cmVsZWFzZVBvb2xzT25DdXJyZW50VGhyZWFkSWZOZWNlc3NhcnldOworI2VuZGlmCisgICAgfQor
CisgICAgdmlydHVhbCBib29sIGdldENvbm5lY3Rpb25JZGVudGlmaWVyKENvcmVJUEM6OkNvbm5l
Y3Rpb246OklkZW50aWZpZXImIGlkZW50aWZpZXIpCisgICAgeworICAgICAgICBTdHJpbmcgY2xp
ZW50RXhlY3V0YWJsZSA9IG1fY29tbWFuZExpbmVbImNsaWVudC1leGVjdXRhYmxlIl07CisgICAg
ICAgIGlmIChjbGllbnRFeGVjdXRhYmxlLmlzRW1wdHkoKSkKKyAgICAgICAgICAgIHJldHVybiBD
aGlsZFByb2Nlc3NNYWluRGVsZWdhdGU6OmdldENvbm5lY3Rpb25JZGVudGlmaWVyKGlkZW50aWZp
ZXIpOworCisgICAgICAgIG1hY2hfcG9ydF9uYW1lX3QgcHVibGlzaGVkU2VydmljZTsKKyAgICAg
ICAgbWFjaF9wb3J0X2FsbG9jYXRlKG1hY2hfdGFza19zZWxmKCksIE1BQ0hfUE9SVF9SSUdIVF9S
RUNFSVZFLCAmcHVibGlzaGVkU2VydmljZSk7CisgICAgICAgIG1hY2hfcG9ydF9pbnNlcnRfcmln
aHQobWFjaF90YXNrX3NlbGYoKSwgcHVibGlzaGVkU2VydmljZSwgcHVibGlzaGVkU2VydmljZSwg
TUFDSF9NU0dfVFlQRV9NQUtFX1NFTkQpOworICAgICAgICAvLyBNYWtlIGl0IHBvc3NpYmxlIHRv
IGxvb2sgdXAuCisgICAgICAgIFN0cmluZyBzZXJ2aWNlTmFtZSA9IFN0cmluZzo6Zm9ybWF0KCJj
b20uYXBwbGUuV2ViS2l0LldlYlByb2Nlc3MtJWQiLCBnZXRwaWQoKSk7CisgICAgICAgIGlmIChr
ZXJuX3JldHVybl90IGtyID0gYm9vdHN0cmFwX3JlZ2lzdGVyMihib290c3RyYXBfcG9ydCwgY29u
c3RfY2FzdDxjaGFyKj4oc2VydmljZU5hbWUudXRmOCgpLmRhdGEoKSksIHB1Ymxpc2hlZFNlcnZp
Y2UsIDApKSB7CisgICAgICAgICAgICBXVEZMb2dBbHdheXMoIkZhaWxlZCB0byByZWdpc3RlciBz
ZXJ2aWNlIG5hbWUgXCIlc1wiLiAlcyAoJXgpXG4iLCBzZXJ2aWNlTmFtZS51dGY4KCkuZGF0YSgp
LCBtYWNoX2Vycm9yX3N0cmluZyhrciksIGtyKTsKKyAgICAgICAgICAgIHJldHVybiBmYWxzZTsK
KyAgICAgICAgfQorCisgICAgICAgIENTdHJpbmcgY29tbWFuZCA9IGNsaWVudEV4ZWN1dGFibGUu
dXRmOCgpOworICAgICAgICBjb25zdCBjaGFyKiBhcmdzW10gPSB7IGNvbW1hbmQuZGF0YSgpLCAw
IH07CisKKyAgICAgICAgRW52aXJvbm1lbnRWYXJpYWJsZXMgZW52aXJvbm1lbnRWYXJpYWJsZXM7
CisgICAgICAgIGVudmlyb25tZW50VmFyaWFibGVzLnNldChFbnZpcm9ubWVudFZhcmlhYmxlczo6
cHJlZXhpc3RpbmdQcm9jZXNzU2VydmljZU5hbWVLZXkoKSwgc2VydmljZU5hbWUudXRmOCgpLmRh
dGEoKSk7CisgICAgICAgIGVudmlyb25tZW50VmFyaWFibGVzLnNldChFbnZpcm9ubWVudFZhcmlh
Ymxlczo6cHJlZXhpc3RpbmdQcm9jZXNzVHlwZUtleSgpLCBtX2NvbW1hbmRMaW5lWyJ0eXBlIl0u
dXRmOCgpLmRhdGEoKSk7CisKKyAgICAgICAgcG9zaXhfc3Bhd25fZmlsZV9hY3Rpb25zX3QgZmls
ZUFjdGlvbnM7CisgICAgICAgIHBvc2l4X3NwYXduX2ZpbGVfYWN0aW9uc19pbml0KCZmaWxlQWN0
aW9ucyk7CisgICAgICAgIHBvc2l4X3NwYXduX2ZpbGVfYWN0aW9uc19hZGRpbmhlcml0X25wKCZm
aWxlQWN0aW9ucywgU1RESU5fRklMRU5PKTsKKyAgICAgICAgcG9zaXhfc3Bhd25fZmlsZV9hY3Rp
b25zX2FkZGluaGVyaXRfbnAoJmZpbGVBY3Rpb25zLCBTVERPVVRfRklMRU5PKTsKKyAgICAgICAg
cG9zaXhfc3Bhd25fZmlsZV9hY3Rpb25zX2FkZGluaGVyaXRfbnAoJmZpbGVBY3Rpb25zLCBTVERF
UlJfRklMRU5PKTsKKworICAgICAgICBwb3NpeF9zcGF3bmF0dHJfdCBhdHRyaWJ1dGVzOworICAg
ICAgICBwb3NpeF9zcGF3bmF0dHJfaW5pdCgmYXR0cmlidXRlcyk7CisgICAgICAgIHBvc2l4X3Nw
YXduYXR0cl9zZXRmbGFncygmYXR0cmlidXRlcywgUE9TSVhfU1BBV05fQ0xPRVhFQ19ERUZBVUxU
IHwgUE9TSVhfU1BBV05fU0VUUEdST1VQKTsKKworICAgICAgICBpbnQgc3Bhd25SZXN1bHQgPSBw
b3NpeF9zcGF3bigwLCBjb21tYW5kLmRhdGEoKSwgJmZpbGVBY3Rpb25zLCAmYXR0cmlidXRlcywg
Y29uc3RfY2FzdDxjaGFyKio+KGFyZ3MpLCBlbnZpcm9ubWVudFZhcmlhYmxlcy5lbnZpcm9ubWVu
dFBvaW50ZXIoKSk7CisKKyAgICAgICAgcG9zaXhfc3Bhd25hdHRyX2Rlc3Ryb3koJmF0dHJpYnV0
ZXMpOworICAgICAgICBwb3NpeF9zcGF3bl9maWxlX2FjdGlvbnNfZGVzdHJveSgmZmlsZUFjdGlv
bnMpOworCisgICAgICAgIGlmIChzcGF3blJlc3VsdCkKKyAgICAgICAgICAgIHJldHVybiBmYWxz
ZTsKKworICAgICAgICBtYWNoX21zZ19lbXB0eV9yY3ZfdCBtZXNzYWdlOworICAgICAgICBpZiAo
a2Vybl9yZXR1cm5fdCBrciA9IG1hY2hfbXNnKCZtZXNzYWdlLmhlYWRlciwgTUFDSF9SQ1ZfTVNH
LCAwLCBzaXplb2YobWVzc2FnZSksIHB1Ymxpc2hlZFNlcnZpY2UsIE1BQ0hfTVNHX1RJTUVPVVRf
Tk9ORSwgTUFDSF9QT1JUX05VTEwpKSB7CisgICAgICAgICAgICBXVEZMb2dBbHdheXMoIkZhaWxl
ZCB0byByZWNlaXZlIHBvcnQgZnJvbSB0aGUgVUkgcHJvY2Vzcy4gJXMgKCV4KVxuIiwgbWFjaF9l
cnJvcl9zdHJpbmcoa3IpLCBrcik7CisgICAgICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgICAg
IH0KKworICAgICAgICBtYWNoX3BvcnRfbW9kX3JlZnMobWFjaF90YXNrX3NlbGYoKSwgcHVibGlz
aGVkU2VydmljZSwgTUFDSF9QT1JUX1JJR0hUX1JFQ0VJVkUsIC0xKTsKKyAgICAgICAgbWFjaF9w
b3J0X3Qgc2VydmVyUG9ydCA9IG1lc3NhZ2UuaGVhZGVyLm1zZ2hfcmVtb3RlX3BvcnQ7CisgICAg
ICAgIG1hY2hfcG9ydF90eXBlX3QgcG9ydFR5cGU7CisgICAgICAgIGtlcm5fcmV0dXJuX3Qga3Ig
PSBtYWNoX3BvcnRfdHlwZShtYWNoX3Rhc2tfc2VsZigpLCBzZXJ2ZXJQb3J0LCAmcG9ydFR5cGUp
OworICAgICAgICBpZiAoa3IgfHwgIShwb3J0VHlwZSAmIE1BQ0hfUE9SVF9UWVBFX1NFTkQpKSB7
CisgICAgICAgICAgICBXVEZMb2dBbHdheXMoIkZhaWxlZCB0byBvYnRhaW4gc2VuZCByaWdodCBm
b3IgcG9ydCByZWNlaXZlZCBmcm9tIHRoZSBVSSBwcm9jZXNzLlxuIik7CisgICAgICAgICAgICBy
ZXR1cm4gZmFsc2U7CisgICAgICAgIH0KKworICAgICAgICBpZGVudGlmaWVyID0gc2VydmVyUG9y
dDsKKyAgICAgICAgcmV0dXJuIHRydWU7CisgICAgfQorCisgICAgdmlydHVhbCBib29sIGdldENs
aWVudElkZW50aWZpZXIoU3RyaW5nJiBjbGllbnRJZGVudGlmaWVyKQorICAgIHsKKyAgICAgICAg
U3RyaW5nIGNsaWVudEV4ZWN1dGFibGUgPSBtX2NvbW1hbmRMaW5lWyJjbGllbnQtZXhlY3V0YWJs
ZSJdOworICAgICAgICBpZiAoY2xpZW50RXhlY3V0YWJsZS5pc0VtcHR5KCkpCisgICAgICAgICAg
ICByZXR1cm4gQ2hpbGRQcm9jZXNzTWFpbkRlbGVnYXRlOjpnZXRDbGllbnRJZGVudGlmaWVyKGNs
aWVudElkZW50aWZpZXIpOworCisgICAgICAgIFJldGFpblB0cjxOU1VSTD4gY2xpZW50RXhlY3V0
YWJsZVVSTCA9IGFkb3B0TlMoW1tOU1VSTCBhbGxvY10gaW5pdEZpbGVVUkxXaXRoUGF0aDpuc1N0
cmluZ0Zyb21XZWJDb3JlU3RyaW5nKGNsaWVudEV4ZWN1dGFibGUpXSk7CisgICAgICAgIFJldGFp
blB0cjxDRlVSTFJlZj4gY2xpZW50QnVuZGxlVVJMID0gYWRvcHRDRihXS0NvcHlCdW5kbGVVUkxG
b3JFeGVjdXRhYmxlVVJMKChDRlVSTFJlZiljbGllbnRFeGVjdXRhYmxlVVJMLmdldCgpKSk7Cisg
ICAgICAgIFJldGFpblB0cjxOU0J1bmRsZT4gY2xpZW50QnVuZGxlID0gYWRvcHROUyhbW05TQnVu
ZGxlIGFsbG9jXSBpbml0V2l0aFVSTDooTlNVUkwgKiljbGllbnRCdW5kbGVVUkwuZ2V0KCldKTsK
KyAgICAgICAgY2xpZW50SWRlbnRpZmllciA9IFtjbGllbnRCdW5kbGUuZ2V0KCkgYnVuZGxlSWRl
bnRpZmllcl07CisgICAgICAgIGlmIChjbGllbnRJZGVudGlmaWVyLmlzRW1wdHkoKSkKKyAgICAg
ICAgICAgIHJldHVybiBmYWxzZTsKKyAgICAgICAgcmV0dXJuIHRydWU7CisgICAgfQorCisgICAg
dmlydHVhbCBib29sIGdldENsaWVudFByb2Nlc3NOYW1lKFN0cmluZyYgY2xpZW50UHJvY2Vzc05h
bWUpCisgICAgeworICAgICAgICBTdHJpbmcgY2xpZW50RXhlY3V0YWJsZSA9IG1fY29tbWFuZExp
bmVbImNsaWVudC1leGVjdXRhYmxlIl07CisgICAgICAgIGlmIChjbGllbnRFeGVjdXRhYmxlLmlz
RW1wdHkoKSkKKyAgICAgICAgICAgIHJldHVybiBDaGlsZFByb2Nlc3NNYWluRGVsZWdhdGU6Omdl
dENsaWVudFByb2Nlc3NOYW1lKGNsaWVudFByb2Nlc3NOYW1lKTsKKworICAgICAgICAvLyBDb25q
dXJlIHVwIGEgcHJvY2VzcyBuYW1lIGJ5IHVzaW5nIGV2ZXJ5dGhpbmcgYWZ0ZXIgdGhlIGxhc3Qg
c2xhc2ggZnJvbSB0aGUgY2xpZW50LWV4ZWN1dGFibGUsCisgICAgICAgIC8vIGUuZy4gL0FwcGxp
Y2F0aW9ucy9TYWZhcmkuYXBwL0NvbnRlbnRzL01hY09TL1NhZmFyaSBiZWNvbWVzIFNhZmFyaS4K
KyAgICAgICAgc2l6ZV90IGxhc3RTbGFzaCA9IGNsaWVudEV4ZWN1dGFibGUucmV2ZXJzZUZpbmQo
Jy8nKTsKKyAgICAgICAgY2xpZW50UHJvY2Vzc05hbWUgPSBjbGllbnRFeGVjdXRhYmxlLnN1YnN0
cmluZyhsYXN0U2xhc2ggKyAxKTsKKyAgICAgICAgaWYgKGNsaWVudFByb2Nlc3NOYW1lLmlzRW1w
dHkoKSkKKyAgICAgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICAgICAgcmV0dXJuIHRydWU7Cisg
ICAgfQorfTsKKworaW50IFdlYlByb2Nlc3NNYWluKGNvbnN0IENvbW1hbmRMaW5lJiBjb21tYW5k
TGluZSkKK3sKKyAgICByZXR1cm4gQ2hpbGRQcm9jZXNzTWFpbjxXZWJQcm9jZXNzLCBXZWJQcm9j
ZXNzTWFpbkRlbGVnYXRlPihjb21tYW5kTGluZSk7Cit9CisKK30gLy8gbmFtZXNwYWNlIFdlYktp
dAorCkluZGV4OiBTb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL0VudHJ5UG9pbnQvbWFjL0xlZ2Fj
eVByb2Nlc3MvV2ViQ29udGVudFByb2Nlc3NNYWluLm1tCj09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9X
ZWJLaXQyL1dlYlByb2Nlc3MvRW50cnlQb2ludC9tYWMvTGVnYWN5UHJvY2Vzcy9XZWJDb250ZW50
UHJvY2Vzc01haW4ubW0JKHJldmlzaW9uIDE0MDg3MCkKKysrIFNvdXJjZS9XZWJLaXQyL1dlYlBy
b2Nlc3MvRW50cnlQb2ludC9tYWMvTGVnYWN5UHJvY2Vzcy9XZWJDb250ZW50UHJvY2Vzc01haW4u
bW0JKHdvcmtpbmcgY29weSkKQEAgLTI0LDEzICsyNCwxMiBAQAogICovCiAKICNpbXBvcnQgImNv
bmZpZy5oIgotI2ltcG9ydCAiV2ViUHJvY2Vzc01haW4uaCIKIAogI2ltcG9ydCAiQ2hpbGRQcm9j
ZXNzTWFpbi5oIgotI2ltcG9ydCAiQ29tbWFuZExpbmUuaCIKICNpbXBvcnQgIkVudmlyb25tZW50
VXRpbGl0aWVzLmgiCiAjaW1wb3J0ICJFbnZpcm9ubWVudFZhcmlhYmxlcy5oIgogI2ltcG9ydCAi
U3RyaW5nVXRpbGl0aWVzLmgiCisjaW1wb3J0ICJXS0Jhc2UuaCIKICNpbXBvcnQgIldlYlByb2Nl
c3MuaCIKICNpbXBvcnQgPFdlYkNvcmUvUnVuTG9vcC5oPgogI2ltcG9ydCA8bWFjaC9tYWNoX2Vy
cm9yLmg+CkBAIC01Myw5ICs1Miw5IEBAIHVzaW5nIG5hbWVzcGFjZSBXZWJDb3JlOwogCiBuYW1l
c3BhY2UgV2ViS2l0IHsKIAotY2xhc3MgV2ViUHJvY2Vzc01haW5EZWxlZ2F0ZSA6IHB1YmxpYyBD
aGlsZFByb2Nlc3NNYWluRGVsZWdhdGUgeworY2xhc3MgV2ViQ29udGVudFByb2Nlc3NNYWluRGVs
ZWdhdGUgOiBwdWJsaWMgQ2hpbGRQcm9jZXNzTWFpbkRlbGVnYXRlIHsKIHB1YmxpYzoKLSAgICBX
ZWJQcm9jZXNzTWFpbkRlbGVnYXRlKGNvbnN0IENvbW1hbmRMaW5lJiBjb21tYW5kTGluZSkKKyAg
ICBXZWJDb250ZW50UHJvY2Vzc01haW5EZWxlZ2F0ZShjb25zdCBDb21tYW5kTGluZSYgY29tbWFu
ZExpbmUpCiAgICAgICAgIDogQ2hpbGRQcm9jZXNzTWFpbkRlbGVnYXRlKGNvbW1hbmRMaW5lKQog
ICAgIHsKICAgICB9CkBAIC0xNjksMTAgKzE2OCwxNyBAQCBwdWJsaWM6CiAgICAgfQogfTsKIAot
aW50IFdlYlByb2Nlc3NNYWluKGNvbnN0IENvbW1hbmRMaW5lJiBjb21tYW5kTGluZSkKLXsKLSAg
ICByZXR1cm4gQ2hpbGRQcm9jZXNzTWFpbjxXZWJQcm9jZXNzLCBXZWJQcm9jZXNzTWFpbkRlbGVn
YXRlPihjb21tYW5kTGluZSk7Ci19Ci0KIH0gLy8gbmFtZXNwYWNlIFdlYktpdAogCit1c2luZyBu
YW1lc3BhY2UgV2ViS2l0OworCitleHRlcm4gIkMiIFdLX0VYUE9SVCBpbnQgV2ViQ29udGVudFBy
b2Nlc3NNYWluKGludCBhcmdjLCBjaGFyKiogYXJndik7CisKK2ludCBXZWJDb250ZW50UHJvY2Vz
c01haW4oaW50IGFyZ2MsIGNoYXIqKiBhcmd2KQoreworICAgIENvbW1hbmRMaW5lIGNvbW1hbmRM
aW5lOworICAgIGlmICghY29tbWFuZExpbmUucGFyc2UoYXJnYywgYXJndikpCisgICAgICAgIHJl
dHVybiBFWElUX0ZBSUxVUkU7CisKKyAgICByZXR1cm4gQ2hpbGRQcm9jZXNzTWFpbjxXZWJQcm9j
ZXNzLCBXZWJDb250ZW50UHJvY2Vzc01haW5EZWxlZ2F0ZT4oY29tbWFuZExpbmUpOworfQpJbmRl
eDogU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9FbnRyeVBvaW50L21hYy9MZWdhY3lQcm9jZXNz
L1dlYkNvbnRlbnRQcm9jZXNzTWFpbkJvb3RzdHJhcHBlci5jcHAKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291
cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9FbnRyeVBvaW50L21hYy9MZWdhY3lQcm9jZXNzL1dlYkNv
bnRlbnRQcm9jZXNzTWFpbkJvb3RzdHJhcHBlci5jcHAJKHJldmlzaW9uIDApCisrKyBTb3VyY2Uv
V2ViS2l0Mi9XZWJQcm9jZXNzL0VudHJ5UG9pbnQvbWFjL0xlZ2FjeVByb2Nlc3MvV2ViQ29udGVu
dFByb2Nlc3NNYWluQm9vdHN0cmFwcGVyLmNwcAkocmV2aXNpb24gMCkKQEAgLTAsMCArMSwzMiBA
QAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxMyBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2
ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBm
b3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJv
dmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBS
ZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHly
aWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxv
d2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11
c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0
IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAg
IGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBk
aXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJ
TkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9S
IElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBU
SEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1Ig
QSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFM
TCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJ
UkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENP
TlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NV
UkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwg
REFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBD
QVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05U
UkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1Ig
T1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMg
U09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0gg
REFNQUdFLgorICovCisKKyNpbmNsdWRlICJDaGlsZFByb2Nlc3NNYWluQm9vdHN0cmFwcGVyLmgi
CisKK2ludCBtYWluKGludCBhcmdjLCBjaGFyKiogYXJndikKK3sKKyAgICBXZWJLaXRNYWluRnVu
Y3Rpb24gbWFpbkZ1bmN0aW9uID0gZ2V0Qm9vdHN0cmFwTWFpbkZ1bmN0aW9uKGFyZ2MsIGFyZ3Ys
ICJXZWJDb250ZW50UHJvY2Vzc01haW4iKTsKKyAgICByZXR1cm4gbWFpbkZ1bmN0aW9uKGFyZ2Ms
IGFyZ3YpOworfQpJbmRleDogU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9tYWMvV2ViUHJvY2Vz
c01haW5NYWMubW0KPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9tYWMv
V2ViUHJvY2Vzc01haW5NYWMubW0JKHJldmlzaW9uIDE0MDg3NykKKysrIFNvdXJjZS9XZWJLaXQy
L1dlYlByb2Nlc3MvbWFjL1dlYlByb2Nlc3NNYWluTWFjLm1tCSh3b3JraW5nIGNvcHkpCkBAIC0x
LDE3OCArMCwwIEBACi0vKgotICogQ29weXJpZ2h0IChDKSAyMDEwLCAyMDExLCAyMDEyIEFwcGxl
IEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KLSAqCi0gKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNl
IGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKLSAqIG1vZGlmaWNh
dGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9u
cwotICogYXJlIG1ldDoKLSAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0
IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBj
b25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCi0gKiAyLiBSZWRpc3RyaWJ1
dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAot
ICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBk
aXNjbGFpbWVyIGluIHRoZQotICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJp
YWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KLSAqCi0gKiBUSElTIFNPRlRXQVJF
IElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycn
Ci0gKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJV
VCBOT1QgTElNSVRFRCBUTywKLSAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRB
QklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKLSAqIFBVUlBPU0UgQVJFIERJU0NM
QUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUwot
ICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lB
TCwgRVhFTVBMQVJZLCBPUgotICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJV
VCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKLSAqIFNVQlNUSVRVVEUgR09PRFMgT1Ig
U0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUwotICog
SU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJ
VFksIFdIRVRIRVIgSU4KLSAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJ
TkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCi0gKiBBUklTSU5HIElOIEFOWSBXQVkg
T1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCi0gKiBU
SEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCi0gKi8KLQotI2ltcG9ydCAiY29uZmlnLmgi
Ci0jaW1wb3J0ICJXZWJQcm9jZXNzTWFpbi5oIgotCi0jaW1wb3J0ICJDaGlsZFByb2Nlc3NNYWlu
LmgiCi0jaW1wb3J0ICJDb21tYW5kTGluZS5oIgotI2ltcG9ydCAiRW52aXJvbm1lbnRVdGlsaXRp
ZXMuaCIKLSNpbXBvcnQgIkVudmlyb25tZW50VmFyaWFibGVzLmgiCi0jaW1wb3J0ICJTdHJpbmdV
dGlsaXRpZXMuaCIKLSNpbXBvcnQgIldlYlByb2Nlc3MuaCIKLSNpbXBvcnQgPFdlYkNvcmUvUnVu
TG9vcC5oPgotI2ltcG9ydCA8bWFjaC9tYWNoX2Vycm9yLmg+Ci0jaW1wb3J0IDxzZXJ2ZXJzL2Jv
b3RzdHJhcC5oPgotI2ltcG9ydCA8c3Bhd24uaD4KLSNpbXBvcnQgPHN0ZGlvLmg+Ci0jaW1wb3J0
IDx3dGYvUmV0YWluUHRyLmg+Ci0jaW1wb3J0IDx3dGYvdGV4dC9DU3RyaW5nLmg+Ci0jaW1wb3J0
IDx3dGYvdGV4dC9XVEZTdHJpbmcuaD4KLQotI2lmIFVTRShBUFBLSVQpCi1AaW50ZXJmYWNlIE5T
QXBwbGljYXRpb24gKFdlYk5TQXBwbGljYXRpb25EZXRhaWxzKQotLSh2b2lkKV9pbnN0YWxsQXV0
b3JlbGVhc2VQb29sc09uQ3VycmVudFRocmVhZElmTmVjZXNzYXJ5OwotQGVuZAotI2VuZGlmCi0K
LWV4dGVybiAiQyIga2Vybl9yZXR1cm5fdCBib290c3RyYXBfcmVnaXN0ZXIyKG1hY2hfcG9ydF90
LCBuYW1lX3QsIG1hY2hfcG9ydF90LCB1aW50NjRfdCk7Ci0KLXVzaW5nIG5hbWVzcGFjZSBXZWJD
b3JlOwotCi1uYW1lc3BhY2UgV2ViS2l0IHsKLQotY2xhc3MgV2ViUHJvY2Vzc01haW5EZWxlZ2F0
ZSA6IHB1YmxpYyBDaGlsZFByb2Nlc3NNYWluRGVsZWdhdGUgewotcHVibGljOgotICAgIFdlYlBy
b2Nlc3NNYWluRGVsZWdhdGUoY29uc3QgQ29tbWFuZExpbmUmIGNvbW1hbmRMaW5lKQotICAgICAg
ICA6IENoaWxkUHJvY2Vzc01haW5EZWxlZ2F0ZShjb21tYW5kTGluZSkKLSAgICB7Ci0gICAgfQot
Ci0gICAgdmlydHVhbCB2b2lkIGRvUHJlSW5pdGlhbGl6YXRpb25Xb3JrKCkKLSAgICB7Ci0gICAg
ICAgIC8vIFJlbW92ZSB0aGUgV2ViUHJvY2VzcyBzaGltIGZyb20gdGhlIERZTERfSU5TRVJUX0xJ
QlJBUklFUyBlbnZpcm9ubWVudCB2YXJpYWJsZSBzbyBhbnkgcHJvY2Vzc2VzIHNwYXduZWQgYnkK
LSAgICAgICAgLy8gdGhlIFdlYlByb2Nlc3MgZG9uJ3QgdHJ5IHRvIGluc2VydCB0aGUgc2hpbSBh
bmQgY3Jhc2guCi0gICAgICAgIEVudmlyb25tZW50VXRpbGl0aWVzOjpzdHJpcFZhbHVlc0VuZGlu
Z1dpdGhTdHJpbmcoIkRZTERfSU5TRVJUX0xJQlJBUklFUyIsICIvU2VjSXRlbVNoaW0uZHlsaWIi
KTsKLSAgICAKLSNpZiBVU0UoQVBQS0lUKQotICAgICAgICBSdW5Mb29wOjpzZXRVc2VBcHBsaWNh
dGlvblJ1bkxvb3BPbk1haW5SdW5Mb29wKCk7Ci0KLSAgICAgICAgLy8gSW5pdGlhbGl6ZSBBcHBL
aXQuCi0gICAgICAgIFtOU0FwcGxpY2F0aW9uIHNoYXJlZEFwcGxpY2F0aW9uXTsKLQotICAgICAg
ICAvLyBJbnN0YWxscyBhdXRvcmVsZWFzZSBwb29scyBvbiB0aGUgY3VycmVudCBydW5sb29wIHdo
aWNoIHByZXZlbnRzIG1lbW9yeSBmcm9tIGFjY3VtdWxhdGluZyBiZXR3ZWVuIHVzZXIgZXZlbnRz
LgotICAgICAgICAvLyBGSVhNRTogUmVtb3ZlIHdoZW4gPHJkYXI6Ly9wcm9ibGVtLzg5Mjk0MjY+
IGlzIGZpeGVkLgotICAgICAgICBbTlNBcHAgX2luc3RhbGxBdXRvcmVsZWFzZVBvb2xzT25DdXJy
ZW50VGhyZWFkSWZOZWNlc3NhcnldOwotI2VuZGlmCi0gICAgfQotCi0gICAgdmlydHVhbCBib29s
IGdldENvbm5lY3Rpb25JZGVudGlmaWVyKENvcmVJUEM6OkNvbm5lY3Rpb246OklkZW50aWZpZXIm
IGlkZW50aWZpZXIpCi0gICAgewotICAgICAgICBTdHJpbmcgY2xpZW50RXhlY3V0YWJsZSA9IG1f
Y29tbWFuZExpbmVbImNsaWVudC1leGVjdXRhYmxlIl07Ci0gICAgICAgIGlmIChjbGllbnRFeGVj
dXRhYmxlLmlzRW1wdHkoKSkKLSAgICAgICAgICAgIHJldHVybiBDaGlsZFByb2Nlc3NNYWluRGVs
ZWdhdGU6OmdldENvbm5lY3Rpb25JZGVudGlmaWVyKGlkZW50aWZpZXIpOwotCi0gICAgICAgIG1h
Y2hfcG9ydF9uYW1lX3QgcHVibGlzaGVkU2VydmljZTsKLSAgICAgICAgbWFjaF9wb3J0X2FsbG9j
YXRlKG1hY2hfdGFza19zZWxmKCksIE1BQ0hfUE9SVF9SSUdIVF9SRUNFSVZFLCAmcHVibGlzaGVk
U2VydmljZSk7Ci0gICAgICAgIG1hY2hfcG9ydF9pbnNlcnRfcmlnaHQobWFjaF90YXNrX3NlbGYo
KSwgcHVibGlzaGVkU2VydmljZSwgcHVibGlzaGVkU2VydmljZSwgTUFDSF9NU0dfVFlQRV9NQUtF
X1NFTkQpOwotICAgICAgICAvLyBNYWtlIGl0IHBvc3NpYmxlIHRvIGxvb2sgdXAuCi0gICAgICAg
IFN0cmluZyBzZXJ2aWNlTmFtZSA9IFN0cmluZzo6Zm9ybWF0KCJjb20uYXBwbGUuV2ViS2l0Lldl
YlByb2Nlc3MtJWQiLCBnZXRwaWQoKSk7Ci0gICAgICAgIGlmIChrZXJuX3JldHVybl90IGtyID0g
Ym9vdHN0cmFwX3JlZ2lzdGVyMihib290c3RyYXBfcG9ydCwgY29uc3RfY2FzdDxjaGFyKj4oc2Vy
dmljZU5hbWUudXRmOCgpLmRhdGEoKSksIHB1Ymxpc2hlZFNlcnZpY2UsIDApKSB7Ci0gICAgICAg
ICAgICBXVEZMb2dBbHdheXMoIkZhaWxlZCB0byByZWdpc3RlciBzZXJ2aWNlIG5hbWUgXCIlc1wi
LiAlcyAoJXgpXG4iLCBzZXJ2aWNlTmFtZS51dGY4KCkuZGF0YSgpLCBtYWNoX2Vycm9yX3N0cmlu
ZyhrciksIGtyKTsKLSAgICAgICAgICAgIHJldHVybiBmYWxzZTsKLSAgICAgICAgfQotCi0gICAg
ICAgIENTdHJpbmcgY29tbWFuZCA9IGNsaWVudEV4ZWN1dGFibGUudXRmOCgpOwotICAgICAgICBj
b25zdCBjaGFyKiBhcmdzW10gPSB7IGNvbW1hbmQuZGF0YSgpLCAwIH07Ci0KLSAgICAgICAgRW52
aXJvbm1lbnRWYXJpYWJsZXMgZW52aXJvbm1lbnRWYXJpYWJsZXM7Ci0gICAgICAgIGVudmlyb25t
ZW50VmFyaWFibGVzLnNldChFbnZpcm9ubWVudFZhcmlhYmxlczo6cHJlZXhpc3RpbmdQcm9jZXNz
U2VydmljZU5hbWVLZXkoKSwgc2VydmljZU5hbWUudXRmOCgpLmRhdGEoKSk7Ci0gICAgICAgIGVu
dmlyb25tZW50VmFyaWFibGVzLnNldChFbnZpcm9ubWVudFZhcmlhYmxlczo6cHJlZXhpc3RpbmdQ
cm9jZXNzVHlwZUtleSgpLCBtX2NvbW1hbmRMaW5lWyJ0eXBlIl0udXRmOCgpLmRhdGEoKSk7Ci0K
LSAgICAgICAgcG9zaXhfc3Bhd25fZmlsZV9hY3Rpb25zX3QgZmlsZUFjdGlvbnM7Ci0gICAgICAg
IHBvc2l4X3NwYXduX2ZpbGVfYWN0aW9uc19pbml0KCZmaWxlQWN0aW9ucyk7Ci0gICAgICAgIHBv
c2l4X3NwYXduX2ZpbGVfYWN0aW9uc19hZGRpbmhlcml0X25wKCZmaWxlQWN0aW9ucywgU1RESU5f
RklMRU5PKTsKLSAgICAgICAgcG9zaXhfc3Bhd25fZmlsZV9hY3Rpb25zX2FkZGluaGVyaXRfbnAo
JmZpbGVBY3Rpb25zLCBTVERPVVRfRklMRU5PKTsKLSAgICAgICAgcG9zaXhfc3Bhd25fZmlsZV9h
Y3Rpb25zX2FkZGluaGVyaXRfbnAoJmZpbGVBY3Rpb25zLCBTVERFUlJfRklMRU5PKTsKLQotICAg
ICAgICBwb3NpeF9zcGF3bmF0dHJfdCBhdHRyaWJ1dGVzOwotICAgICAgICBwb3NpeF9zcGF3bmF0
dHJfaW5pdCgmYXR0cmlidXRlcyk7Ci0gICAgICAgIHBvc2l4X3NwYXduYXR0cl9zZXRmbGFncygm
YXR0cmlidXRlcywgUE9TSVhfU1BBV05fQ0xPRVhFQ19ERUZBVUxUIHwgUE9TSVhfU1BBV05fU0VU
UEdST1VQKTsKLQotICAgICAgICBpbnQgc3Bhd25SZXN1bHQgPSBwb3NpeF9zcGF3bigwLCBjb21t
YW5kLmRhdGEoKSwgJmZpbGVBY3Rpb25zLCAmYXR0cmlidXRlcywgY29uc3RfY2FzdDxjaGFyKio+
KGFyZ3MpLCBlbnZpcm9ubWVudFZhcmlhYmxlcy5lbnZpcm9ubWVudFBvaW50ZXIoKSk7Ci0KLSAg
ICAgICAgcG9zaXhfc3Bhd25hdHRyX2Rlc3Ryb3koJmF0dHJpYnV0ZXMpOwotICAgICAgICBwb3Np
eF9zcGF3bl9maWxlX2FjdGlvbnNfZGVzdHJveSgmZmlsZUFjdGlvbnMpOwotCi0gICAgICAgIGlm
IChzcGF3blJlc3VsdCkKLSAgICAgICAgICAgIHJldHVybiBmYWxzZTsKLQotICAgICAgICBtYWNo
X21zZ19lbXB0eV9yY3ZfdCBtZXNzYWdlOwotICAgICAgICBpZiAoa2Vybl9yZXR1cm5fdCBrciA9
IG1hY2hfbXNnKCZtZXNzYWdlLmhlYWRlciwgTUFDSF9SQ1ZfTVNHLCAwLCBzaXplb2YobWVzc2Fn
ZSksIHB1Ymxpc2hlZFNlcnZpY2UsIE1BQ0hfTVNHX1RJTUVPVVRfTk9ORSwgTUFDSF9QT1JUX05V
TEwpKSB7Ci0gICAgICAgICAgICBXVEZMb2dBbHdheXMoIkZhaWxlZCB0byByZWNlaXZlIHBvcnQg
ZnJvbSB0aGUgVUkgcHJvY2Vzcy4gJXMgKCV4KVxuIiwgbWFjaF9lcnJvcl9zdHJpbmcoa3IpLCBr
cik7Ci0gICAgICAgICAgICByZXR1cm4gZmFsc2U7Ci0gICAgICAgIH0KLQotICAgICAgICBtYWNo
X3BvcnRfbW9kX3JlZnMobWFjaF90YXNrX3NlbGYoKSwgcHVibGlzaGVkU2VydmljZSwgTUFDSF9Q
T1JUX1JJR0hUX1JFQ0VJVkUsIC0xKTsKLSAgICAgICAgbWFjaF9wb3J0X3Qgc2VydmVyUG9ydCA9
IG1lc3NhZ2UuaGVhZGVyLm1zZ2hfcmVtb3RlX3BvcnQ7Ci0gICAgICAgIG1hY2hfcG9ydF90eXBl
X3QgcG9ydFR5cGU7Ci0gICAgICAgIGtlcm5fcmV0dXJuX3Qga3IgPSBtYWNoX3BvcnRfdHlwZSht
YWNoX3Rhc2tfc2VsZigpLCBzZXJ2ZXJQb3J0LCAmcG9ydFR5cGUpOwotICAgICAgICBpZiAoa3Ig
fHwgIShwb3J0VHlwZSAmIE1BQ0hfUE9SVF9UWVBFX1NFTkQpKSB7Ci0gICAgICAgICAgICBXVEZM
b2dBbHdheXMoIkZhaWxlZCB0byBvYnRhaW4gc2VuZCByaWdodCBmb3IgcG9ydCByZWNlaXZlZCBm
cm9tIHRoZSBVSSBwcm9jZXNzLlxuIik7Ci0gICAgICAgICAgICByZXR1cm4gZmFsc2U7Ci0gICAg
ICAgIH0KLQotICAgICAgICBpZGVudGlmaWVyID0gc2VydmVyUG9ydDsKLSAgICAgICAgcmV0dXJu
IHRydWU7Ci0gICAgfQotCi0gICAgdmlydHVhbCBib29sIGdldENsaWVudElkZW50aWZpZXIoU3Ry
aW5nJiBjbGllbnRJZGVudGlmaWVyKQotICAgIHsKLSAgICAgICAgU3RyaW5nIGNsaWVudEV4ZWN1
dGFibGUgPSBtX2NvbW1hbmRMaW5lWyJjbGllbnQtZXhlY3V0YWJsZSJdOwotICAgICAgICBpZiAo
Y2xpZW50RXhlY3V0YWJsZS5pc0VtcHR5KCkpCi0gICAgICAgICAgICByZXR1cm4gQ2hpbGRQcm9j
ZXNzTWFpbkRlbGVnYXRlOjpnZXRDbGllbnRJZGVudGlmaWVyKGNsaWVudElkZW50aWZpZXIpOwot
Ci0gICAgICAgIFJldGFpblB0cjxOU1VSTD4gY2xpZW50RXhlY3V0YWJsZVVSTCA9IGFkb3B0TlMo
W1tOU1VSTCBhbGxvY10gaW5pdEZpbGVVUkxXaXRoUGF0aDpuc1N0cmluZ0Zyb21XZWJDb3JlU3Ry
aW5nKGNsaWVudEV4ZWN1dGFibGUpXSk7Ci0gICAgICAgIFJldGFpblB0cjxDRlVSTFJlZj4gY2xp
ZW50QnVuZGxlVVJMID0gYWRvcHRDRihXS0NvcHlCdW5kbGVVUkxGb3JFeGVjdXRhYmxlVVJMKChD
RlVSTFJlZiljbGllbnRFeGVjdXRhYmxlVVJMLmdldCgpKSk7Ci0gICAgICAgIFJldGFpblB0cjxO
U0J1bmRsZT4gY2xpZW50QnVuZGxlID0gYWRvcHROUyhbW05TQnVuZGxlIGFsbG9jXSBpbml0V2l0
aFVSTDooTlNVUkwgKiljbGllbnRCdW5kbGVVUkwuZ2V0KCldKTsKLSAgICAgICAgY2xpZW50SWRl
bnRpZmllciA9IFtjbGllbnRCdW5kbGUuZ2V0KCkgYnVuZGxlSWRlbnRpZmllcl07Ci0gICAgICAg
IGlmIChjbGllbnRJZGVudGlmaWVyLmlzRW1wdHkoKSkKLSAgICAgICAgICAgIHJldHVybiBmYWxz
ZTsKLSAgICAgICAgcmV0dXJuIHRydWU7Ci0gICAgfQotCi0gICAgdmlydHVhbCBib29sIGdldENs
aWVudFByb2Nlc3NOYW1lKFN0cmluZyYgY2xpZW50UHJvY2Vzc05hbWUpCi0gICAgewotICAgICAg
ICBTdHJpbmcgY2xpZW50RXhlY3V0YWJsZSA9IG1fY29tbWFuZExpbmVbImNsaWVudC1leGVjdXRh
YmxlIl07Ci0gICAgICAgIGlmIChjbGllbnRFeGVjdXRhYmxlLmlzRW1wdHkoKSkKLSAgICAgICAg
ICAgIHJldHVybiBDaGlsZFByb2Nlc3NNYWluRGVsZWdhdGU6OmdldENsaWVudFByb2Nlc3NOYW1l
KGNsaWVudFByb2Nlc3NOYW1lKTsKLQotICAgICAgICAvLyBDb25qdXJlIHVwIGEgcHJvY2VzcyBu
YW1lIGJ5IHVzaW5nIGV2ZXJ5dGhpbmcgYWZ0ZXIgdGhlIGxhc3Qgc2xhc2ggZnJvbSB0aGUgY2xp
ZW50LWV4ZWN1dGFibGUsCi0gICAgICAgIC8vIGUuZy4gL0FwcGxpY2F0aW9ucy9TYWZhcmkuYXBw
L0NvbnRlbnRzL01hY09TL1NhZmFyaSBiZWNvbWVzIFNhZmFyaS4KLSAgICAgICAgc2l6ZV90IGxh
c3RTbGFzaCA9IGNsaWVudEV4ZWN1dGFibGUucmV2ZXJzZUZpbmQoJy8nKTsKLSAgICAgICAgY2xp
ZW50UHJvY2Vzc05hbWUgPSBjbGllbnRFeGVjdXRhYmxlLnN1YnN0cmluZyhsYXN0U2xhc2ggKyAx
KTsKLSAgICAgICAgaWYgKGNsaWVudFByb2Nlc3NOYW1lLmlzRW1wdHkoKSkKLSAgICAgICAgICAg
IHJldHVybiBmYWxzZTsKLSAgICAgICAgcmV0dXJuIHRydWU7Ci0gICAgfQotfTsKLQotaW50IFdl
YlByb2Nlc3NNYWluKGNvbnN0IENvbW1hbmRMaW5lJiBjb21tYW5kTGluZSkKLXsKLSAgICByZXR1
cm4gQ2hpbGRQcm9jZXNzTWFpbjxXZWJQcm9jZXNzLCBXZWJQcm9jZXNzTWFpbkRlbGVnYXRlPihj
b21tYW5kTGluZSk7Ci19Ci0KLX0gLy8gbmFtZXNwYWNlIFdlYktpdAotCkluZGV4OiBTb3VyY2Uv
V2ViS2l0Mi9tYWMvTWFpbk1hY1Byb2Nlc3MuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJL
aXQyL21hYy9NYWluTWFjUHJvY2Vzcy5jcHAJKHJldmlzaW9uIDE0MDg3NykKKysrIFNvdXJjZS9X
ZWJLaXQyL21hYy9NYWluTWFjUHJvY2Vzcy5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTEsNjkgKzAs
MCBAQAotLyoKLSAqIENvcHlyaWdodCAoQykgMjAxMCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVz
ZXJ2ZWQuCi0gKgotICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFy
eSBmb3Jtcywgd2l0aCBvciB3aXRob3V0Ci0gKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQg
cHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKLSAqIGFyZSBtZXQ6Ci0gKiAx
LiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNv
cHlyaWdodAotICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZv
bGxvd2luZyBkaXNjbGFpbWVyLgotICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3Jt
IG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgIG5vdGljZSwgdGhpcyBs
aXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKLSAq
ICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRo
ZSBkaXN0cmlidXRpb24uCi0gKgotICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBM
RSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJwotICogQU5EIEFOWSBFWFBSRVNT
IE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCi0g
KiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBG
T1IgQSBQQVJUSUNVTEFSCi0gKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBT
SEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKLSAqIEJFIExJQUJMRSBGT1IgQU5Z
IERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKLSAq
IENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBS
T0NVUkVNRU5UIE9GCi0gKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVT
RSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKLSAqIElOVEVSUlVQVElPTikgSE9XRVZF
UiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCi0gKiBD
T05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0Ug
T1IgT1RIRVJXSVNFKQotICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRI
SVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgotICogVEhFIFBPU1NJQklMSVRZIE9GIFNV
Q0ggREFNQUdFLgotICovCi0KLSNpbmNsdWRlIDxkbGZjbi5oPgotI2luY2x1ZGUgPHN0ZGlvLmg+
Ci0jaW5jbHVkZSA8c3RkbGliLmg+Ci0jaW5jbHVkZSA8c3lzL2V2ZW50Lmg+Ci0jaW5jbHVkZSA8
dW5pc3RkLmg+Ci0KLXN0YXRpYyB2b2lkIGNsb3NlVW51c2VkRmlsZURlc2NyaXB0b3JzKCkKLXsK
LSAgICBpbnQgbnVtRkRzID0gZ2V0ZHRhYmxlc2l6ZSgpOwotCi0gICAgLy8gQ2xvc2UgYWxsIGZp
bGUgZGVzY3JpcHRvcnMgZXhjZXB0IHN0ZGluLCBzdGRvdXQgYW5kIHN0ZGVyci4KLSAgICBmb3Ig
KGludCBmZCA9IDM7IGZkIDwgbnVtRkRzOyArK2ZkKSB7Ci0gICAgICAgIC8vIENoZWNrIGlmIHRo
aXMgaXMgYSBrcXVldWUgZmlsZSBkZXNjcmlwdG9yLiBJZiBpdCBpcywgd2UgZG9uJ3Qgd2FudCB0
byBjbG9zZSBpdCBiZWNhdXNlIGl0IGhhcwotICAgICAgICAvLyBiZWVuIGNyZWF0ZWQgYnkgaW5p
dGlhbGl6aW5nIGxpYmRpc3BhdGNoIGZyb20gYSBnbG9iYWwgaW5pdGlhbGl6ZXIuIFNlZSA8cmRh
cjovL3Byb2JsZW0vOTgyODQ3Nj4gZm9yIG1vcmUgZGV0YWlscy4KLSAgICAgICAgc3RydWN0IHRp
bWVzcGVjIHRpbWVTcGVjID0geyAwLCAwIH07Ci0gICAgICAgIGlmICgha2V2ZW50KGZkLCAwLCAw
LCAwLCAwLCAmdGltZVNwZWMpKQotICAgICAgICAgICAgY29udGludWU7Ci0KLSAgICAgICAgY2xv
c2UoZmQpOwotICAgIH0KLX0KLQotaW50IG1haW4oaW50IGFyZ2MsIGNoYXIqKiBhcmd2KQotewot
ICAgIGNsb3NlVW51c2VkRmlsZURlc2NyaXB0b3JzKCk7Ci0KLSAgICBpZiAoYXJnYyA8IDIpCi0g
ICAgICAgIHJldHVybiBFWElUX0ZBSUxVUkU7Ci0KLSAgICBzdGF0aWMgdm9pZCogZnJhbWV3b3Jr
TGlicmFyeSA9IGRsb3Blbihhcmd2WzFdLCBSVExEX05PVyk7Ci0gICAgaWYgKCFmcmFtZXdvcmtM
aWJyYXJ5KSB7Ci0gICAgICAgIGZwcmludGYoc3RkZXJyLCAiVW5hYmxlIHRvIGxvYWQgV2ViS2l0
Mi5mcmFtZXdvcms6ICVzXG4iLCBkbGVycm9yKCkpOwotICAgICAgICByZXR1cm4gRVhJVF9GQUlM
VVJFOwotICAgIH0KLQotICAgIHR5cGVkZWYgaW50ICgqV2ViS2l0TWFpbkZ1bmN0aW9uKShpbnQg
YXJnYywgY2hhcioqIGFyZ3YpOwotICAgIFdlYktpdE1haW5GdW5jdGlvbiB3ZWJLaXRNYWluID0g
cmVpbnRlcnByZXRfY2FzdDxXZWJLaXRNYWluRnVuY3Rpb24+KGRsc3ltKGZyYW1ld29ya0xpYnJh
cnksICJXZWJLaXRNYWluIikpOwotICAgIGlmICghd2ViS2l0TWFpbikgewotICAgICAgICBmcHJp
bnRmKHN0ZGVyciwgIlVuYWJsZSB0byBmaW5kIGVudHJ5IHBvaW50IGluIFdlYktpdDIuZnJhbWV3
b3JrOiAlc1xuIiwgZGxlcnJvcigpKTsKLSAgICAgICAgcmV0dXJuIEVYSVRfRkFJTFVSRTsKLSAg
ICB9Ci0KLSAgICByZXR1cm4gd2ViS2l0TWFpbihhcmdjLCBhcmd2KTsKLX0K
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>184874</attachid>
            <date>2013-01-26 11:26:01 -0800</date>
            <delta_ts>2013-01-26 11:38:11 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-108008-20130126112251.patch</filename>
            <type>text/plain</type>
            <size>146820</size>
            <attacher name="Sam Weinig">sam</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
S2l0Mi9DaGFuZ2VMb2cJKHJldmlzaW9uIDE0MDkxMikKKysrIFNvdXJjZS9XZWJLaXQyL0NoYW5n
ZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDc1IEBACisyMDEzLTAxLTI2ICBTYW0gV2Vp
bmlnICA8c2FtQHdlYmtpdC5vcmc+CisKKyAgICAgICAgTW92ZSBMZWdhY3lQcm9jZXNzIGVudHJ5
IHBvaW50cyBpbnRvIG5ldyBFbnRyeVBvaW50IGRpcmVjdG9yaWVzCisgICAgICAgIGh0dHBzOi8v
YnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMDgwMDgKKworICAgICAgICBSZXZpZXdl
ZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBBbHNvIHJlZmFjdG9ycyB0byByZW1vdmUg
dGhlIG5lZWQgZm9yIHRoZSBvdmVybHkgZ2VuZXJhbCBXZWJLaXRNYWluLCBieSBwdXR0aW5nIHRo
ZQorICAgICAgICBmcmFtZXdvcmsgbGF6eSBsb2FkaW5nIGludG8gYSBoZWxwZXIgZnVuY3Rpb24g
ZWFjaCBsZWdhY3kgcHJvY2VzcyBjYW4gY2FsbCAoaW4gQ2hpbGRQcm9jZXNzTWFpbkJvb3RzdHJh
cHBlci5oKQorCisgICAgICAgICogQ29uZmlndXJhdGlvbnMvTmV0d29ya1Byb2Nlc3MueGNjb25m
aWc6CisgICAgICAgICogQ29uZmlndXJhdGlvbnMvUGx1Z2luUHJvY2Vzcy54Y2NvbmZpZzoKKyAg
ICAgICAgKiBDb25maWd1cmF0aW9ucy9TaGFyZWRXb3JrZXJQcm9jZXNzLnhjY29uZmlnOgorICAg
ICAgICAqIENvbmZpZ3VyYXRpb25zL1dlYlByb2Nlc3MueGNjb25maWc6CisgICAgICAgICogTmV0
d29ya1Byb2Nlc3MvRW50cnlQb2ludDogQWRkZWQuCisgICAgICAgICogTmV0d29ya1Byb2Nlc3Mv
RW50cnlQb2ludC9tYWM6IEFkZGVkLgorICAgICAgICAqIE5ldHdvcmtQcm9jZXNzL0VudHJ5UG9p
bnQvbWFjL0xlZ2FjeVByb2Nlc3M6IEFkZGVkLgorICAgICAgICAqIE5ldHdvcmtQcm9jZXNzL0Vu
dHJ5UG9pbnQvbWFjL0xlZ2FjeVByb2Nlc3MvSW5mby5wbGlzdDogQ29waWVkIGZyb20gU291cmNl
L1dlYktpdDIvTmV0d29ya1Byb2Nlc3MvSW5mby5wbGlzdC4KKyAgICAgICAgKiBOZXR3b3JrUHJv
Y2Vzcy9FbnRyeVBvaW50L21hYy9MZWdhY3lQcm9jZXNzL05ldHdvcmtQcm9jZXNzTWFpbi5tbTog
Q29waWVkIGZyb20gU291cmNlL1dlYktpdDIvTmV0d29ya1Byb2Nlc3MvbWFjL05ldHdvcmtQcm9j
ZXNzTWFpbk1hYy5tbS4KKyAgICAgICAgKE5ldHdvcmtQcm9jZXNzTWFpbik6CisgICAgICAgICog
TmV0d29ya1Byb2Nlc3MvRW50cnlQb2ludC9tYWMvTGVnYWN5UHJvY2Vzcy9OZXR3b3JrUHJvY2Vz
c01haW5Cb290c3RyYXBwZXIuY3BwOiBBZGRlZC4KKyAgICAgICAgKG1haW4pOgorICAgICAgICAq
IE5ldHdvcmtQcm9jZXNzL0luZm8ucGxpc3Q6IFJlbW92ZWQuCisgICAgICAgICogTmV0d29ya1By
b2Nlc3MvTmV0d29ya1Byb2Nlc3NNYWluLmg6IFJlbW92ZWQuCisgICAgICAgICogTmV0d29ya1By
b2Nlc3MvbWFjL05ldHdvcmtQcm9jZXNzTWFpbk1hYy5tbTogUmVtb3ZlZC4KKyAgICAgICAgKiBQ
bHVnaW5Qcm9jZXNzL0VudHJ5UG9pbnQ6IEFkZGVkLgorICAgICAgICAqIFBsdWdpblByb2Nlc3Mv
RW50cnlQb2ludC9tYWM6IEFkZGVkLgorICAgICAgICAqIFBsdWdpblByb2Nlc3MvRW50cnlQb2lu
dC9tYWMvTGVnYWN5UHJvY2VzczogQWRkZWQuCisgICAgICAgICogUGx1Z2luUHJvY2Vzcy9FbnRy
eVBvaW50L21hYy9MZWdhY3lQcm9jZXNzL0luZm8ucGxpc3Q6IENvcGllZCBmcm9tIFNvdXJjZS9X
ZWJLaXQyL1BsdWdpblByb2Nlc3MvSW5mby5wbGlzdC4KKyAgICAgICAgKiBQbHVnaW5Qcm9jZXNz
L0VudHJ5UG9pbnQvbWFjL0xlZ2FjeVByb2Nlc3MvUGx1Z2luUHJvY2Vzc01haW4ubW06IENvcGll
ZCBmcm9tIFNvdXJjZS9XZWJLaXQyL1BsdWdpblByb2Nlc3MvbWFjL1BsdWdpblByb2Nlc3NNYWlu
TWFjLm1tLgorICAgICAgICAoUGx1Z2luUHJvY2Vzc01haW4pOgorICAgICAgICAqIFBsdWdpblBy
b2Nlc3MvRW50cnlQb2ludC9tYWMvTGVnYWN5UHJvY2Vzcy9QbHVnaW5Qcm9jZXNzTWFpbkJvb3Rz
dHJhcHBlci5jcHA6IEFkZGVkLgorICAgICAgICAobWFpbik6CisgICAgICAgICogUGx1Z2luUHJv
Y2Vzcy9JbmZvLnBsaXN0OiBSZW1vdmVkLgorICAgICAgICAqIFBsdWdpblByb2Nlc3MvUGx1Z2lu
UHJvY2Vzc01haW4uaDogUmVtb3ZlZC4KKyAgICAgICAgKiBQbHVnaW5Qcm9jZXNzL21hYy9QbHVn
aW5Qcm9jZXNzTWFpbk1hYy5tbTogUmVtb3ZlZC4KKyAgICAgICAgKiBTaGFyZWQvRW50cnlQb2lu
dFV0aWxpdGllczogQWRkZWQuCisgICAgICAgICogU2hhcmVkL0VudHJ5UG9pbnRVdGlsaXRpZXMv
bWFjOiBBZGRlZC4KKyAgICAgICAgKiBTaGFyZWQvRW50cnlQb2ludFV0aWxpdGllcy9tYWMvTGVn
YWN5UHJvY2VzczogQWRkZWQuCisgICAgICAgICogU2hhcmVkL0VudHJ5UG9pbnRVdGlsaXRpZXMv
bWFjL0xlZ2FjeVByb2Nlc3MvQ2hpbGRQcm9jZXNzTWFpbi5oOiBDb3BpZWQgZnJvbSBTb3VyY2Uv
V2ViS2l0Mi9TaGFyZWQvbWFjL0NoaWxkUHJvY2Vzc01haW4uaC4KKyAgICAgICAgKiBTaGFyZWQv
RW50cnlQb2ludFV0aWxpdGllcy9tYWMvTGVnYWN5UHJvY2Vzcy9DaGlsZFByb2Nlc3NNYWluLm1t
OiBDb3BpZWQgZnJvbSBTb3VyY2UvV2ViS2l0Mi9TaGFyZWQvbWFjL0NoaWxkUHJvY2Vzc01haW4u
bW0uCisgICAgICAgICogU2hhcmVkL0VudHJ5UG9pbnRVdGlsaXRpZXMvbWFjL0xlZ2FjeVByb2Nl
c3MvQ2hpbGRQcm9jZXNzTWFpbkJvb3RzdHJhcHBlci5oOiBBZGRlZC4KKyAgICAgICAgKGNsb3Nl
VW51c2VkRmlsZURlc2NyaXB0b3JzKToKKyAgICAgICAgKGdldEJvb3RzdHJhcE1haW5GdW5jdGlv
bik6CisgICAgICAgICogU2hhcmVkL0VudHJ5UG9pbnRVdGlsaXRpZXMvbWFjL1hQQ1NlcnZpY2U6
IEFkZGVkLgorICAgICAgICAqIFNoYXJlZC9tYWMvQ2hpbGRQcm9jZXNzTWFpbi5oOiBSZW1vdmVk
LgorICAgICAgICAqIFNoYXJlZC9tYWMvQ2hpbGRQcm9jZXNzTWFpbi5tbTogUmVtb3ZlZC4KKyAg
ICAgICAgKiBTaGFyZWRXb3JrZXJQcm9jZXNzL0VudHJ5UG9pbnQ6IEFkZGVkLgorICAgICAgICAq
IFNoYXJlZFdvcmtlclByb2Nlc3MvRW50cnlQb2ludC9tYWM6IEFkZGVkLgorICAgICAgICAqIFNo
YXJlZFdvcmtlclByb2Nlc3MvRW50cnlQb2ludC9tYWMvTGVnYWN5UHJvY2VzczogQWRkZWQuCisg
ICAgICAgICogU2hhcmVkV29ya2VyUHJvY2Vzcy9FbnRyeVBvaW50L21hYy9MZWdhY3lQcm9jZXNz
L0luZm8ucGxpc3Q6IENvcGllZCBmcm9tIFNvdXJjZS9XZWJLaXQyL1NoYXJlZFdvcmtlclByb2Nl
c3MvSW5mby5wbGlzdC4KKyAgICAgICAgKiBTaGFyZWRXb3JrZXJQcm9jZXNzL0VudHJ5UG9pbnQv
bWFjL0xlZ2FjeVByb2Nlc3MvU2hhcmVkV29ya2VyUHJvY2Vzc01haW4ubW06IENvcGllZCBmcm9t
IFNvdXJjZS9XZWJLaXQyL1NoYXJlZFdvcmtlclByb2Nlc3MvbWFjL1NoYXJlZFdvcmtlclByb2Nl
c3NNYWluTWFjLm1tLgorICAgICAgICAoU2hhcmVkV29ya2VyUHJvY2Vzc01haW4pOgorICAgICAg
ICAqIFNoYXJlZFdvcmtlclByb2Nlc3MvRW50cnlQb2ludC9tYWMvTGVnYWN5UHJvY2Vzcy9TaGFy
ZWRXb3JrZXJQcm9jZXNzTWFpbkJvb3RzdHJhcHBlci5jcHA6IEFkZGVkLgorICAgICAgICAobWFp
bik6CisgICAgICAgICogU2hhcmVkV29ya2VyUHJvY2Vzcy9JbmZvLnBsaXN0OiBSZW1vdmVkLgor
ICAgICAgICAqIFNoYXJlZFdvcmtlclByb2Nlc3MvU2hhcmVkV29ya2VyUHJvY2Vzc01haW4uaDog
UmVtb3ZlZC4KKyAgICAgICAgKiBTaGFyZWRXb3JrZXJQcm9jZXNzL21hYy9TaGFyZWRXb3JrZXJQ
cm9jZXNzTWFpbk1hYy5tbTogUmVtb3ZlZC4KKyAgICAgICAgKiBXZWJLaXQyLnhjb2RlcHJvai9w
cm9qZWN0LnBieHByb2o6CisgICAgICAgICogV2ViUHJvY2Vzcy9FbnRyeVBvaW50L21hYy9MZWdh
Y3lQcm9jZXNzL0luZm8ucGxpc3Q6IENvcGllZCBmcm9tIFNvdXJjZS9XZWJLaXQyL1dlYlByb2Nl
c3MvSW5mby5wbGlzdC4KKyAgICAgICAgKiBXZWJQcm9jZXNzL0VudHJ5UG9pbnQvbWFjL0xlZ2Fj
eVByb2Nlc3MvV2ViQ29udGVudFByb2Nlc3NNYWluLm1tOiBDb3BpZWQgZnJvbSBTb3VyY2UvV2Vi
S2l0Mi9XZWJQcm9jZXNzL21hYy9XZWJQcm9jZXNzTWFpbk1hYy5tbS4KKyAgICAgICAgKFdlYktp
dDo6V2ViQ29udGVudFByb2Nlc3NNYWluRGVsZWdhdGU6OldlYkNvbnRlbnRQcm9jZXNzTWFpbkRl
bGVnYXRlKToKKyAgICAgICAgKFdlYktpdCk6CisgICAgICAgIChXZWJDb250ZW50UHJvY2Vzc01h
aW4pOgorICAgICAgICAqIFdlYlByb2Nlc3MvRW50cnlQb2ludC9tYWMvTGVnYWN5UHJvY2Vzcy9X
ZWJDb250ZW50UHJvY2Vzc01haW5Cb290c3RyYXBwZXIuY3BwOiBBZGRlZC4KKyAgICAgICAgKG1h
aW4pOgorICAgICAgICAqIFdlYlByb2Nlc3MvSW5mby5wbGlzdDogUmVtb3ZlZC4KKyAgICAgICAg
KiBXZWJQcm9jZXNzL1dlYktpdE1haW4uY3BwOiBSZW1vdmVkLgorICAgICAgICAqIFdlYlByb2Nl
c3MvV2ViUHJvY2Vzc01haW4uaDogUmVtb3ZlZC4KKyAgICAgICAgKiBXZWJQcm9jZXNzL21hYy9X
ZWJQcm9jZXNzTWFpbk1hYy5tbTogUmVtb3ZlZC4KKyAgICAgICAgKiBtYWMvTWFpbk1hY1Byb2Nl
c3MuY3BwOiBSZW1vdmVkLgorCiAyMDEzLTAxLTI1ICBDaHJpc3RvcGhlIER1bWV6ICA8Y2hyaXN0
b3BoZS5kdW1lekBpbnRlbC5jb20+CiAKICAgICAgICAgW0VGTF1bV0syXSBVc2UgQyBBUEkgaW5z
aWRlIGV3a19kYXRhYmFzZV9tYW5hZ2VyIGFuZCBld2tfc3RvcmFnZV9tYW5hZ2VyCkluZGV4OiBT
b3VyY2UvV2ViS2l0Mi9Db25maWd1cmF0aW9ucy9OZXR3b3JrUHJvY2Vzcy54Y2NvbmZpZwo9PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0Mi9Db25maWd1cmF0aW9ucy9OZXR3b3JrUHJvY2Vzcy54
Y2NvbmZpZwkocmV2aXNpb24gMTQwOTEyKQorKysgU291cmNlL1dlYktpdDIvQ29uZmlndXJhdGlv
bnMvTmV0d29ya1Byb2Nlc3MueGNjb25maWcJKHdvcmtpbmcgY29weSkKQEAgLTI1LDcgKzI1LDcg
QEAKIAogR0NDX0VOQUJMRV9PQkpDX0dDID0gTk87CiBQUk9EVUNUX05BTUUgPSBOZXR3b3JrUHJv
Y2VzczsKLUlORk9QTElTVF9GSUxFID0gTmV0d29ya1Byb2Nlc3MvSW5mby5wbGlzdDsKK0lORk9Q
TElTVF9GSUxFID0gTmV0d29ya1Byb2Nlc3MvRW50cnlQb2ludC9tYWMvTGVnYWN5UHJvY2Vzcy9J
bmZvLnBsaXN0OwogSU5TVEFMTF9QQVRIID0gJChXRUJLSVQyX0ZSQU1FV09SS1NfRElSKS9XZWJL
aXQyLmZyYW1ld29yazsKIAogQVBQX0lDT04gPSAkKEFQUF9JQ09OXyQoQ09ORklHVVJBVElPTikp
OwpJbmRleDogU291cmNlL1dlYktpdDIvQ29uZmlndXJhdGlvbnMvUGx1Z2luUHJvY2Vzcy54Y2Nv
bmZpZwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0Mi9Db25maWd1cmF0aW9ucy9QbHVnaW5Q
cm9jZXNzLnhjY29uZmlnCShyZXZpc2lvbiAxNDA5MTIpCisrKyBTb3VyY2UvV2ViS2l0Mi9Db25m
aWd1cmF0aW9ucy9QbHVnaW5Qcm9jZXNzLnhjY29uZmlnCSh3b3JraW5nIGNvcHkpCkBAIC0yNSw1
ICsyNSw1IEBACiAKIEdDQ19FTkFCTEVfT0JKQ19HQyA9IE5POwogUFJPRFVDVF9OQU1FID0gUGx1
Z2luUHJvY2VzczsKLUlORk9QTElTVF9GSUxFID0gUGx1Z2luUHJvY2Vzcy9JbmZvLnBsaXN0Owor
SU5GT1BMSVNUX0ZJTEUgPSBQbHVnaW5Qcm9jZXNzL0VudHJ5UG9pbnQvbWFjL0xlZ2FjeVByb2Nl
c3MvSW5mby5wbGlzdDsKIElOU1RBTExfUEFUSCA9ICQoV0VCS0lUMl9GUkFNRVdPUktTX0RJUikv
V2ViS2l0Mi5mcmFtZXdvcms7CkluZGV4OiBTb3VyY2UvV2ViS2l0Mi9Db25maWd1cmF0aW9ucy9T
aGFyZWRXb3JrZXJQcm9jZXNzLnhjY29uZmlnCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQy
L0NvbmZpZ3VyYXRpb25zL1NoYXJlZFdvcmtlclByb2Nlc3MueGNjb25maWcJKHJldmlzaW9uIDE0
MDkxMikKKysrIFNvdXJjZS9XZWJLaXQyL0NvbmZpZ3VyYXRpb25zL1NoYXJlZFdvcmtlclByb2Nl
c3MueGNjb25maWcJKHdvcmtpbmcgY29weSkKQEAgLTI1LDUgKzI1LDUgQEAKIAogR0NDX0VOQUJM
RV9PQkpDX0dDID0gTk87CiBQUk9EVUNUX05BTUUgPSBTaGFyZWRXb3JrZXJQcm9jZXNzOwotSU5G
T1BMSVNUX0ZJTEUgPSBTaGFyZWRXb3JrZXJQcm9jZXNzL0luZm8ucGxpc3Q7CitJTkZPUExJU1Rf
RklMRSA9IFNoYXJlZFdvcmtlclByb2Nlc3MvRW50cnlQb2ludC9tYWMvTGVnYWN5UHJvY2Vzcy9J
bmZvLnBsaXN0OwogSU5TVEFMTF9QQVRIID0gJChXRUJLSVQyX0ZSQU1FV09SS1NfRElSKS9XZWJL
aXQyLmZyYW1ld29yazsKSW5kZXg6IFNvdXJjZS9XZWJLaXQyL0NvbmZpZ3VyYXRpb25zL1dlYlBy
b2Nlc3MueGNjb25maWcKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdDIvQ29uZmlndXJhdGlv
bnMvV2ViUHJvY2Vzcy54Y2NvbmZpZwkocmV2aXNpb24gMTQwOTEyKQorKysgU291cmNlL1dlYktp
dDIvQ29uZmlndXJhdGlvbnMvV2ViUHJvY2Vzcy54Y2NvbmZpZwkod29ya2luZyBjb3B5KQpAQCAt
MjUsNyArMjUsNyBAQAogCiBHQ0NfRU5BQkxFX09CSkNfR0MgPSBOTzsKIFBST0RVQ1RfTkFNRSA9
IFdlYlByb2Nlc3M7Ci1JTkZPUExJU1RfRklMRSA9IFdlYlByb2Nlc3MvSW5mby5wbGlzdDsKK0lO
Rk9QTElTVF9GSUxFID0gV2ViUHJvY2Vzcy9FbnRyeVBvaW50L21hYy9MZWdhY3lQcm9jZXNzL0lu
Zm8ucGxpc3Q7CiBJTlNUQUxMX1BBVEggPSAkKFdFQktJVDJfRlJBTUVXT1JLU19ESVIpL1dlYktp
dDIuZnJhbWV3b3JrOwogCiBBUFBfSUNPTiA9ICQoQVBQX0lDT05fJChDT05GSUdVUkFUSU9OKSk7
CkluZGV4OiBTb3VyY2UvV2ViS2l0Mi9OZXR3b3JrUHJvY2Vzcy9JbmZvLnBsaXN0Cj09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT0KLS0tIFNvdXJjZS9XZWJLaXQyL05ldHdvcmtQcm9jZXNzL0luZm8ucGxpc3QJKHJldmlzaW9u
IDE0MDkxMikKKysrIFNvdXJjZS9XZWJLaXQyL05ldHdvcmtQcm9jZXNzL0luZm8ucGxpc3QJKHdv
cmtpbmcgY29weSkKQEAgLTEsMzIgKzAsMCBAQAotPD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGlu
Zz0iVVRGLTgiPz4KLTwhRE9DVFlQRSBwbGlzdCBQVUJMSUMgIi0vL0FwcGxlLy9EVEQgUExJU1Qg
MS4wLy9FTiIgImh0dHA6Ly93d3cuYXBwbGUuY29tL0RURHMvUHJvcGVydHlMaXN0LTEuMC5kdGQi
PgotPHBsaXN0IHZlcnNpb249IjEuMCI+Ci08ZGljdD4KLQk8a2V5PkNGQnVuZGxlRXhlY3V0YWJs
ZTwva2V5PgotCTxzdHJpbmc+JHtFWEVDVVRBQkxFX05BTUV9PC9zdHJpbmc+Ci0JPGtleT5DRkJ1
bmRsZUdldEluZm9TdHJpbmc8L2tleT4KLQk8c3RyaW5nPiR7QlVORExFX1ZFUlNJT059LCBDb3B5
cmlnaHQgMjAwMy0yMDEzIEFwcGxlIEluYy48L3N0cmluZz4KLQk8a2V5PkNGQnVuZGxlSWRlbnRp
Zmllcjwva2V5PgotCTxzdHJpbmc+Y29tLmFwcGxlLldlYktpdC4ke1BST0RVQ1RfTkFNRX08L3N0
cmluZz4KLQk8a2V5PkNGQnVuZGxlSW5mb0RpY3Rpb25hcnlWZXJzaW9uPC9rZXk+Ci0JPHN0cmlu
Zz42LjA8L3N0cmluZz4KLQk8a2V5PkNGQnVuZGxlTmFtZTwva2V5PgotCTxzdHJpbmc+JHtQUk9E
VUNUX05BTUV9PC9zdHJpbmc+Ci0JPGtleT5DRkJ1bmRsZVBhY2thZ2VUeXBlPC9rZXk+Ci0JPHN0
cmluZz5BUFBMPC9zdHJpbmc+Ci0JPGtleT5DRkJ1bmRsZVNob3J0VmVyc2lvblN0cmluZzwva2V5
PgotCTxzdHJpbmc+JHtTSE9SVF9WRVJTSU9OX1NUUklOR308L3N0cmluZz4KLQk8a2V5PkNGQnVu
ZGxlVmVyc2lvbjwva2V5PgotCTxzdHJpbmc+JHtCVU5ETEVfVkVSU0lPTn08L3N0cmluZz4KLQk8
a2V5PkxTRmlsZVF1YXJhbnRpbmVFbmFibGVkPC9rZXk+Ci0JPHRydWUvPgotCTxrZXk+TFNNaW5p
bXVtU3lzdGVtVmVyc2lvbjwva2V5PgotCTxzdHJpbmc+JHtNQUNPU1hfREVQTE9ZTUVOVF9UQVJH
RVR9PC9zdHJpbmc+Ci0JPGtleT5MU1VJRWxlbWVudDwva2V5PgotCTx0cnVlLz4KLQk8a2V5Pk5T
UHJpbmNpcGFsQ2xhc3M8L2tleT4KLQk8c3RyaW5nPk5TQXBwbGljYXRpb248L3N0cmluZz4KLQk8
a2V5PkNGQnVuZGxlSWNvbkZpbGU8L2tleT4KLQk8c3RyaW5nPiR7QVBQX0lDT059PC9zdHJpbmc+
Ci08L2RpY3Q+Ci08L3BsaXN0PgpJbmRleDogU291cmNlL1dlYktpdDIvTmV0d29ya1Byb2Nlc3Mv
TmV0d29ya1Byb2Nlc3NNYWluLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdDIvTmV0d29y
a1Byb2Nlc3MvTmV0d29ya1Byb2Nlc3NNYWluLmgJKHJldmlzaW9uIDE0MDkxMikKKysrIFNvdXJj
ZS9XZWJLaXQyL05ldHdvcmtQcm9jZXNzL05ldHdvcmtQcm9jZXNzTWFpbi5oCSh3b3JraW5nIGNv
cHkpCkBAIC0xLDQxICswLDAgQEAKLS8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMTIgQXBwbGUgSW5j
LiBBbGwgcmlnaHRzIHJlc2VydmVkLgotICoKLSAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4g
c291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAotICogbW9kaWZpY2F0aW9u
LCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCi0g
KiBhcmUgbWV0OgotICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0
YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRp
dGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KLSAqIDIuIFJlZGlzdHJpYnV0aW9u
cyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAg
ICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2Ns
YWltZXIgaW4gdGhlCi0gKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMg
cHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgotICoKLSAqIFRISVMgU09GVFdBUkUgSVMg
UFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKLSAq
IEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5P
VCBMSU1JVEVEIFRPLAotICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJ
VFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgotICogUFVSUE9TRSBBUkUgRElTQ0xBSU1F
RC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCi0gKiBC
RSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBF
WEVNUExBUlksIE9SCi0gKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5P
VCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgotICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJW
SUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCi0gKiBJTlRF
UlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwg
V0hFVEhFUiBJTgotICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xV
RElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKLSAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQg
T0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKLSAqIFRIRSBQ
T1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KLSAqLwotCi0jaWZuZGVmIE5ldHdvcmtQcm9jZXNz
TWFpbl9oCi0jZGVmaW5lIE5ldHdvcmtQcm9jZXNzTWFpbl9oCi0KLSNpZiBFTkFCTEUoTkVUV09S
S19QUk9DRVNTKQotCi1uYW1lc3BhY2UgV2ViS2l0IHsKLSAgICAKLWNsYXNzIENvbW1hbmRMaW5l
OwotCi1pbnQgTmV0d29ya1Byb2Nlc3NNYWluKGNvbnN0IENvbW1hbmRMaW5lJik7Ci0gICAgCi19
IC8vIG5hbWVzcGFjZSBXZWJLaXQKLQotI2VuZGlmIC8vIEVOQUJMRShORVRXT1JLX1BST0NFU1Mp
Ci0KLSNlbmRpZiAvLyBOZXR3b3JrUHJvY2Vzc01haW5faApJbmRleDogU291cmNlL1dlYktpdDIv
TmV0d29ya1Byb2Nlc3MvRW50cnlQb2ludC9tYWMvTGVnYWN5UHJvY2Vzcy9JbmZvLnBsaXN0Cj09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQyL05ldHdvcmtQcm9jZXNzL0VudHJ5UG9pbnQvbWFj
L0xlZ2FjeVByb2Nlc3MvSW5mby5wbGlzdAkocmV2aXNpb24gMTQwODc3KQkoZnJvbSBTb3VyY2Uv
V2ViS2l0Mi9OZXR3b3JrUHJvY2Vzcy9JbmZvLnBsaXN0OjE0MDg3NykKKysrIFNvdXJjZS9XZWJL
aXQyL05ldHdvcmtQcm9jZXNzL0VudHJ5UG9pbnQvbWFjL0xlZ2FjeVByb2Nlc3MvSW5mby5wbGlz
dAkod29ya2luZyBjb3B5KQpAQCAtMCwwICsxLDMyIEBACis8P3htbCB2ZXJzaW9uPSIxLjAiIGVu
Y29kaW5nPSJVVEYtOCI/PgorPCFET0NUWVBFIHBsaXN0IFBVQkxJQyAiLS8vQXBwbGUvL0RURCBQ
TElTVCAxLjAvL0VOIiAiaHR0cDovL3d3dy5hcHBsZS5jb20vRFREcy9Qcm9wZXJ0eUxpc3QtMS4w
LmR0ZCI+Cis8cGxpc3QgdmVyc2lvbj0iMS4wIj4KKzxkaWN0PgorCTxrZXk+Q0ZCdW5kbGVFeGVj
dXRhYmxlPC9rZXk+CisJPHN0cmluZz4ke0VYRUNVVEFCTEVfTkFNRX08L3N0cmluZz4KKwk8a2V5
PkNGQnVuZGxlR2V0SW5mb1N0cmluZzwva2V5PgorCTxzdHJpbmc+JHtCVU5ETEVfVkVSU0lPTn0s
IENvcHlyaWdodCAyMDAzLTIwMTMgQXBwbGUgSW5jLjwvc3RyaW5nPgorCTxrZXk+Q0ZCdW5kbGVJ
ZGVudGlmaWVyPC9rZXk+CisJPHN0cmluZz5jb20uYXBwbGUuV2ViS2l0LiR7UFJPRFVDVF9OQU1F
fTwvc3RyaW5nPgorCTxrZXk+Q0ZCdW5kbGVJbmZvRGljdGlvbmFyeVZlcnNpb248L2tleT4KKwk8
c3RyaW5nPjYuMDwvc3RyaW5nPgorCTxrZXk+Q0ZCdW5kbGVOYW1lPC9rZXk+CisJPHN0cmluZz4k
e1BST0RVQ1RfTkFNRX08L3N0cmluZz4KKwk8a2V5PkNGQnVuZGxlUGFja2FnZVR5cGU8L2tleT4K
Kwk8c3RyaW5nPkFQUEw8L3N0cmluZz4KKwk8a2V5PkNGQnVuZGxlU2hvcnRWZXJzaW9uU3RyaW5n
PC9rZXk+CisJPHN0cmluZz4ke1NIT1JUX1ZFUlNJT05fU1RSSU5HfTwvc3RyaW5nPgorCTxrZXk+
Q0ZCdW5kbGVWZXJzaW9uPC9rZXk+CisJPHN0cmluZz4ke0JVTkRMRV9WRVJTSU9OfTwvc3RyaW5n
PgorCTxrZXk+TFNGaWxlUXVhcmFudGluZUVuYWJsZWQ8L2tleT4KKwk8dHJ1ZS8+CisJPGtleT5M
U01pbmltdW1TeXN0ZW1WZXJzaW9uPC9rZXk+CisJPHN0cmluZz4ke01BQ09TWF9ERVBMT1lNRU5U
X1RBUkdFVH08L3N0cmluZz4KKwk8a2V5PkxTVUlFbGVtZW50PC9rZXk+CisJPHRydWUvPgorCTxr
ZXk+TlNQcmluY2lwYWxDbGFzczwva2V5PgorCTxzdHJpbmc+TlNBcHBsaWNhdGlvbjwvc3RyaW5n
PgorCTxrZXk+Q0ZCdW5kbGVJY29uRmlsZTwva2V5PgorCTxzdHJpbmc+JHtBUFBfSUNPTn08L3N0
cmluZz4KKzwvZGljdD4KKzwvcGxpc3Q+CkluZGV4OiBTb3VyY2UvV2ViS2l0Mi9OZXR3b3JrUHJv
Y2Vzcy9FbnRyeVBvaW50L21hYy9MZWdhY3lQcm9jZXNzL05ldHdvcmtQcm9jZXNzTWFpbi5tbQo9
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0Mi9OZXR3b3JrUHJvY2Vzcy9FbnRyeVBvaW50L21h
Yy9MZWdhY3lQcm9jZXNzL05ldHdvcmtQcm9jZXNzTWFpbi5tbQkocmV2aXNpb24gMTQwODc3KQko
ZnJvbSBTb3VyY2UvV2ViS2l0Mi9OZXR3b3JrUHJvY2Vzcy9tYWMvTmV0d29ya1Byb2Nlc3NNYWlu
TWFjLm1tOjE0MDg3NykKKysrIFNvdXJjZS9XZWJLaXQyL05ldHdvcmtQcm9jZXNzL0VudHJ5UG9p
bnQvbWFjL0xlZ2FjeVByb2Nlc3MvTmV0d29ya1Byb2Nlc3NNYWluLm1tCSh3b3JraW5nIGNvcHkp
CkBAIC0wLDAgKzEsNDMgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTIgQXBwbGUgSW5jLiBB
bGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291
cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBh
cmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBh
cmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWlu
IHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlv
bnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBp
biBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBu
b3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWlt
ZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJv
dmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJP
VklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFO
RCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBM
SU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkg
QU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4g
SU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBM
SUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVN
UExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBM
SU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNF
UzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJV
UFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hF
VEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElO
RyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0Yg
VEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NT
SUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaW1wb3J0ICJjb25maWcuaCIKKyNpbXBv
cnQgIk5ldHdvcmtQcm9jZXNzTWFpbi5oIgorCisjaWYgRU5BQkxFKE5FVFdPUktfUFJPQ0VTUykK
KworI2ltcG9ydCAiQ2hpbGRQcm9jZXNzTWFpbi5oIgorI2ltcG9ydCAiTmV0d29ya1Byb2Nlc3Mu
aCIKKworbmFtZXNwYWNlIFdlYktpdCB7CisKK2ludCBOZXR3b3JrUHJvY2Vzc01haW4oY29uc3Qg
Q29tbWFuZExpbmUmIGNvbW1hbmRMaW5lKQoreworICAgIHJldHVybiBDaGlsZFByb2Nlc3NNYWlu
PE5ldHdvcmtQcm9jZXNzLCBDaGlsZFByb2Nlc3NNYWluRGVsZWdhdGU+KGNvbW1hbmRMaW5lKTsK
K30KKworfSAvLyBuYW1lc3BhY2UgV2ViS2l0CisKKyNlbmRpZiAvLyBFTkFCTEUoTkVUV09SS19Q
Uk9DRVNTKQpJbmRleDogU291cmNlL1dlYktpdDIvTmV0d29ya1Byb2Nlc3MvRW50cnlQb2ludC9t
YWMvTGVnYWN5UHJvY2Vzcy9OZXR3b3JrUHJvY2Vzc01haW4ubW0KPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291
cmNlL1dlYktpdDIvTmV0d29ya1Byb2Nlc3MvRW50cnlQb2ludC9tYWMvTGVnYWN5UHJvY2Vzcy9O
ZXR3b3JrUHJvY2Vzc01haW4ubW0JKHJldmlzaW9uIDApCisrKyBTb3VyY2UvV2ViS2l0Mi9OZXR3
b3JrUHJvY2Vzcy9FbnRyeVBvaW50L21hYy9MZWdhY3lQcm9jZXNzL05ldHdvcmtQcm9jZXNzTWFp
bi5tbQkod29ya2luZyBjb3B5KQpAQCAtMjQsMjAgKzI0LDI0IEBACiAgKi8KIAogI2ltcG9ydCAi
Y29uZmlnLmgiCi0jaW1wb3J0ICJOZXR3b3JrUHJvY2Vzc01haW4uaCIKIAogI2lmIEVOQUJMRShO
RVRXT1JLX1BST0NFU1MpCiAKICNpbXBvcnQgIkNoaWxkUHJvY2Vzc01haW4uaCIKICNpbXBvcnQg
Ik5ldHdvcmtQcm9jZXNzLmgiCisjaW1wb3J0ICJXS0Jhc2UuaCIKIAotbmFtZXNwYWNlIFdlYktp
dCB7Cit1c2luZyBuYW1lc3BhY2UgV2ViS2l0OwogCi1pbnQgTmV0d29ya1Byb2Nlc3NNYWluKGNv
bnN0IENvbW1hbmRMaW5lJiBjb21tYW5kTGluZSkKK2V4dGVybiAiQyIgV0tfRVhQT1JUIGludCBO
ZXR3b3JrUHJvY2Vzc01haW4oaW50IGFyZ2MsIGNoYXIqKiBhcmd2KTsKKworaW50IE5ldHdvcmtQ
cm9jZXNzTWFpbihpbnQgYXJnYywgY2hhcioqIGFyZ3YpCiB7CisgICAgQ29tbWFuZExpbmUgY29t
bWFuZExpbmU7CisgICAgaWYgKCFjb21tYW5kTGluZS5wYXJzZShhcmdjLCBhcmd2KSkKKyAgICAg
ICAgcmV0dXJuIEVYSVRfRkFJTFVSRTsKKwogICAgIHJldHVybiBDaGlsZFByb2Nlc3NNYWluPE5l
dHdvcmtQcm9jZXNzLCBDaGlsZFByb2Nlc3NNYWluRGVsZWdhdGU+KGNvbW1hbmRMaW5lKTsKIH0K
IAotfSAvLyBuYW1lc3BhY2UgV2ViS2l0Ci0KICNlbmRpZiAvLyBFTkFCTEUoTkVUV09SS19QUk9D
RVNTKQpJbmRleDogU291cmNlL1dlYktpdDIvTmV0d29ya1Byb2Nlc3MvRW50cnlQb2ludC9tYWMv
TGVnYWN5UHJvY2Vzcy9OZXR3b3JrUHJvY2Vzc01haW5Cb290c3RyYXBwZXIuY3BwCj09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT0KLS0tIFNvdXJjZS9XZWJLaXQyL05ldHdvcmtQcm9jZXNzL0VudHJ5UG9pbnQvbWFjL0xlZ2Fj
eVByb2Nlc3MvTmV0d29ya1Byb2Nlc3NNYWluQm9vdHN0cmFwcGVyLmNwcAkocmV2aXNpb24gMCkK
KysrIFNvdXJjZS9XZWJLaXQyL05ldHdvcmtQcm9jZXNzL0VudHJ5UG9pbnQvbWFjL0xlZ2FjeVBy
b2Nlc3MvTmV0d29ya1Byb2Nlc3NNYWluQm9vdHN0cmFwcGVyLmNwcAkocmV2aXNpb24gMCkKQEAg
LTAsMCArMSwzMiBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxMyBBcHBsZSBJbmMuIEFsbCBy
aWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2Ug
YW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBw
ZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBt
ZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhl
IGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBh
bmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJp
bmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGlj
ZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBp
biB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRl
ZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURF
RCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFO
WSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlU
RUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQg
RklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBO
TyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJM
RSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFS
WSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlU
RUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBM
T1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElP
TikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVS
IElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5F
R0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUg
VVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklM
SVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpbmNsdWRlICJDaGlsZFByb2Nlc3NNYWluQm9v
dHN0cmFwcGVyLmgiCisKK2ludCBtYWluKGludCBhcmdjLCBjaGFyKiogYXJndikKK3sKKyAgICBX
ZWJLaXRNYWluRnVuY3Rpb24gbWFpbkZ1bmN0aW9uID0gZ2V0Qm9vdHN0cmFwTWFpbkZ1bmN0aW9u
KGFyZ2MsIGFyZ3YsICJOZXR3b3JrUHJvY2Vzc01haW4iKTsKKyAgICByZXR1cm4gbWFpbkZ1bmN0
aW9uKGFyZ2MsIGFyZ3YpOworfQpJbmRleDogU291cmNlL1dlYktpdDIvTmV0d29ya1Byb2Nlc3Mv
bWFjL05ldHdvcmtQcm9jZXNzTWFpbk1hYy5tbQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0
Mi9OZXR3b3JrUHJvY2Vzcy9tYWMvTmV0d29ya1Byb2Nlc3NNYWluTWFjLm1tCShyZXZpc2lvbiAx
NDA5MTIpCisrKyBTb3VyY2UvV2ViS2l0Mi9OZXR3b3JrUHJvY2Vzcy9tYWMvTmV0d29ya1Byb2Nl
c3NNYWluTWFjLm1tCSh3b3JraW5nIGNvcHkpCkBAIC0xLDQzICswLDAgQEAKLS8qCi0gKiBDb3B5
cmlnaHQgKEMpIDIwMTIgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgotICoKLSAqIFJl
ZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Ig
d2l0aG91dAotICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhl
IGZvbGxvd2luZyBjb25kaXRpb25zCi0gKiBhcmUgbWV0OgotICogMS4gUmVkaXN0cmlidXRpb25z
IG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgIG5v
dGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1l
ci4KLSAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0
aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25z
IGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCi0gKiAgICBkb2N1bWVudGF0aW9u
IGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgot
ICoKLSAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENP
TlRSSUJVVE9SUyBgYEFTIElTJycKLSAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJB
TlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAotICogVEhFIElNUExJRUQgV0FS
UkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgot
ICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBP
UiBJVFMgQ09OVFJJQlVUT1JTCi0gKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNU
LCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCi0gKiBDT05TRVFVRU5USUFMIERB
TUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgotICog
U1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJ
VFM7IE9SIEJVU0lORVNTCi0gKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBB
TlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgotICogQ09OVFJBQ1QsIFNUUklDVCBM
SUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKLSAq
IEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVO
IElGIEFEVklTRUQgT0YKLSAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KLSAqLwot
Ci0jaW1wb3J0ICJjb25maWcuaCIKLSNpbXBvcnQgIk5ldHdvcmtQcm9jZXNzTWFpbi5oIgotCi0j
aWYgRU5BQkxFKE5FVFdPUktfUFJPQ0VTUykKLQotI2ltcG9ydCAiQ2hpbGRQcm9jZXNzTWFpbi5o
IgotI2ltcG9ydCAiTmV0d29ya1Byb2Nlc3MuaCIKLQotbmFtZXNwYWNlIFdlYktpdCB7Ci0KLWlu
dCBOZXR3b3JrUHJvY2Vzc01haW4oY29uc3QgQ29tbWFuZExpbmUmIGNvbW1hbmRMaW5lKQotewot
ICAgIHJldHVybiBDaGlsZFByb2Nlc3NNYWluPE5ldHdvcmtQcm9jZXNzLCBDaGlsZFByb2Nlc3NN
YWluRGVsZWdhdGU+KGNvbW1hbmRMaW5lKTsKLX0KLQotfSAvLyBuYW1lc3BhY2UgV2ViS2l0Ci0K
LSNlbmRpZiAvLyBFTkFCTEUoTkVUV09SS19QUk9DRVNTKQpJbmRleDogU291cmNlL1dlYktpdDIv
UGx1Z2luUHJvY2Vzcy9JbmZvLnBsaXN0Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQyL1Bs
dWdpblByb2Nlc3MvSW5mby5wbGlzdAkocmV2aXNpb24gMTQwOTEyKQorKysgU291cmNlL1dlYktp
dDIvUGx1Z2luUHJvY2Vzcy9JbmZvLnBsaXN0CSh3b3JraW5nIGNvcHkpCkBAIC0xLDMwICswLDAg
QEAKLTw/eG1sIHZlcnNpb249IjEuMCIgZW5jb2Rpbmc9IlVURi04Ij8+Ci08IURPQ1RZUEUgcGxp
c3QgUFVCTElDICItLy9BcHBsZS8vRFREIFBMSVNUIDEuMC8vRU4iICJodHRwOi8vd3d3LmFwcGxl
LmNvbS9EVERzL1Byb3BlcnR5TGlzdC0xLjAuZHRkIj4KLTxwbGlzdCB2ZXJzaW9uPSIxLjAiPgot
PGRpY3Q+Ci0JPGtleT5DRkJ1bmRsZUV4ZWN1dGFibGU8L2tleT4KLQk8c3RyaW5nPiR7UFJPRFVD
VF9OQU1FfTwvc3RyaW5nPgotCTxrZXk+Q0ZCdW5kbGVHZXRJbmZvU3RyaW5nPC9rZXk+Ci0JPHN0
cmluZz4ke0JVTkRMRV9WRVJTSU9OfSwgQ29weXJpZ2h0IDIwMDMtMjAxMyBBcHBsZSBJbmMuPC9z
dHJpbmc+Ci0JPGtleT5DRkJ1bmRsZUlkZW50aWZpZXI8L2tleT4KLQk8c3RyaW5nPmNvbS5hcHBs
ZS5XZWJLaXQuJHtQUk9EVUNUX05BTUV9PC9zdHJpbmc+Ci0JPGtleT5DRkJ1bmRsZUluZm9EaWN0
aW9uYXJ5VmVyc2lvbjwva2V5PgotCTxzdHJpbmc+Ni4wPC9zdHJpbmc+Ci0JPGtleT5DRkJ1bmRs
ZU5hbWU8L2tleT4KLQk8c3RyaW5nPiR7UFJPRFVDVF9OQU1FfTwvc3RyaW5nPgotCTxrZXk+Q0ZC
dW5kbGVQYWNrYWdlVHlwZTwva2V5PgotCTxzdHJpbmc+QVBQTDwvc3RyaW5nPgotCTxrZXk+Q0ZC
dW5kbGVTaG9ydFZlcnNpb25TdHJpbmc8L2tleT4KLQk8c3RyaW5nPiR7U0hPUlRfVkVSU0lPTl9T
VFJJTkd9PC9zdHJpbmc+Ci0JPGtleT5DRkJ1bmRsZVZlcnNpb248L2tleT4KLQk8c3RyaW5nPiR7
QlVORExFX1ZFUlNJT059PC9zdHJpbmc+Ci0JPGtleT5MU0ZpbGVRdWFyYW50aW5lRW5hYmxlZDwv
a2V5PgotCTx0cnVlLz4KLQk8a2V5PkxTTWluaW11bVN5c3RlbVZlcnNpb248L2tleT4KLQk8c3Ry
aW5nPiR7TUFDT1NYX0RFUExPWU1FTlRfVEFSR0VUfTwvc3RyaW5nPgotCTxrZXk+TFNVSUVsZW1l
bnQ8L2tleT4KLQk8dHJ1ZS8+Ci0JPGtleT5OU1ByaW5jaXBhbENsYXNzPC9rZXk+Ci0JPHN0cmlu
Zz5OU0FwcGxpY2F0aW9uPC9zdHJpbmc+Ci08L2RpY3Q+Ci08L3BsaXN0PgpJbmRleDogU291cmNl
L1dlYktpdDIvUGx1Z2luUHJvY2Vzcy9QbHVnaW5Qcm9jZXNzTWFpbi5oCj09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0t
IFNvdXJjZS9XZWJLaXQyL1BsdWdpblByb2Nlc3MvUGx1Z2luUHJvY2Vzc01haW4uaAkocmV2aXNp
b24gMTQwOTEyKQorKysgU291cmNlL1dlYktpdDIvUGx1Z2luUHJvY2Vzcy9QbHVnaW5Qcm9jZXNz
TWFpbi5oCSh3b3JraW5nIGNvcHkpCkBAIC0xLDQxICswLDAgQEAKLS8qCi0gKiBDb3B5cmlnaHQg
KEMpIDIwMTAgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgotICoKLSAqIFJlZGlzdHJp
YnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91
dAotICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxv
d2luZyBjb25kaXRpb25zCi0gKiBhcmUgbWV0OgotICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNv
dXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgIG5vdGljZSwg
dGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KLSAq
IDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJv
dmUgY29weXJpZ2h0Ci0gKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0
aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCi0gKiAgICBkb2N1bWVudGF0aW9uIGFuZC9v
ciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgotICoKLSAq
IFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJV
VE9SUyBgYEFTIElTJycKLSAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMs
IElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAotICogVEhFIElNUExJRUQgV0FSUkFOVElF
UyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgotICogUFVS
UE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMg
Q09OVFJJQlVUT1JTCi0gKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJ
REVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCi0gKiBDT05TRVFVRU5USUFMIERBTUFHRVMg
KElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgotICogU1VCU1RJ
VFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9S
IEJVU0lORVNTCi0gKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhF
T1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgotICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJ
VFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKLSAqIEFSSVNJ
TkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFE
VklTRUQgT0YKLSAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KLSAqLwotCi0jaWZu
ZGVmIFBsdWdpblByb2Nlc3NNYWluX2gKLSNkZWZpbmUgUGx1Z2luUHJvY2Vzc01haW5faAotCi0j
aWYgRU5BQkxFKFBMVUdJTl9QUk9DRVNTKQotCi1uYW1lc3BhY2UgV2ViS2l0IHsKLSAgICAKLWNs
YXNzIENvbW1hbmRMaW5lOwotCi1pbnQgUGx1Z2luUHJvY2Vzc01haW4oY29uc3QgQ29tbWFuZExp
bmUmKTsKLSAgICAKLX0gLy8gbmFtZXNwYWNlIFdlYktpdAotCi0jZW5kaWYgLy8gRU5BQkxFKFBM
VUdJTl9QUk9DRVNTKQotCi0jZW5kaWYgLy8gUGx1Z2luUHJvY2Vzc01haW5faApJbmRleDogU291
cmNlL1dlYktpdDIvUGx1Z2luUHJvY2Vzcy9FbnRyeVBvaW50L21hYy9MZWdhY3lQcm9jZXNzL0lu
Zm8ucGxpc3QKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdDIvUGx1Z2luUHJvY2Vzcy9FbnRy
eVBvaW50L21hYy9MZWdhY3lQcm9jZXNzL0luZm8ucGxpc3QJKHJldmlzaW9uIDE0MDg3NykJKGZy
b20gU291cmNlL1dlYktpdDIvUGx1Z2luUHJvY2Vzcy9JbmZvLnBsaXN0OjE0MDg3NykKKysrIFNv
dXJjZS9XZWJLaXQyL1BsdWdpblByb2Nlc3MvRW50cnlQb2ludC9tYWMvTGVnYWN5UHJvY2Vzcy9J
bmZvLnBsaXN0CSh3b3JraW5nIGNvcHkpCkBAIC0wLDAgKzEsMzAgQEAKKzw/eG1sIHZlcnNpb249
IjEuMCIgZW5jb2Rpbmc9IlVURi04Ij8+Cis8IURPQ1RZUEUgcGxpc3QgUFVCTElDICItLy9BcHBs
ZS8vRFREIFBMSVNUIDEuMC8vRU4iICJodHRwOi8vd3d3LmFwcGxlLmNvbS9EVERzL1Byb3BlcnR5
TGlzdC0xLjAuZHRkIj4KKzxwbGlzdCB2ZXJzaW9uPSIxLjAiPgorPGRpY3Q+CisJPGtleT5DRkJ1
bmRsZUV4ZWN1dGFibGU8L2tleT4KKwk8c3RyaW5nPiR7UFJPRFVDVF9OQU1FfTwvc3RyaW5nPgor
CTxrZXk+Q0ZCdW5kbGVHZXRJbmZvU3RyaW5nPC9rZXk+CisJPHN0cmluZz4ke0JVTkRMRV9WRVJT
SU9OfSwgQ29weXJpZ2h0IDIwMDMtMjAxMyBBcHBsZSBJbmMuPC9zdHJpbmc+CisJPGtleT5DRkJ1
bmRsZUlkZW50aWZpZXI8L2tleT4KKwk8c3RyaW5nPmNvbS5hcHBsZS5XZWJLaXQuJHtQUk9EVUNU
X05BTUV9PC9zdHJpbmc+CisJPGtleT5DRkJ1bmRsZUluZm9EaWN0aW9uYXJ5VmVyc2lvbjwva2V5
PgorCTxzdHJpbmc+Ni4wPC9zdHJpbmc+CisJPGtleT5DRkJ1bmRsZU5hbWU8L2tleT4KKwk8c3Ry
aW5nPiR7UFJPRFVDVF9OQU1FfTwvc3RyaW5nPgorCTxrZXk+Q0ZCdW5kbGVQYWNrYWdlVHlwZTwv
a2V5PgorCTxzdHJpbmc+QVBQTDwvc3RyaW5nPgorCTxrZXk+Q0ZCdW5kbGVTaG9ydFZlcnNpb25T
dHJpbmc8L2tleT4KKwk8c3RyaW5nPiR7U0hPUlRfVkVSU0lPTl9TVFJJTkd9PC9zdHJpbmc+CisJ
PGtleT5DRkJ1bmRsZVZlcnNpb248L2tleT4KKwk8c3RyaW5nPiR7QlVORExFX1ZFUlNJT059PC9z
dHJpbmc+CisJPGtleT5MU0ZpbGVRdWFyYW50aW5lRW5hYmxlZDwva2V5PgorCTx0cnVlLz4KKwk8
a2V5PkxTTWluaW11bVN5c3RlbVZlcnNpb248L2tleT4KKwk8c3RyaW5nPiR7TUFDT1NYX0RFUExP
WU1FTlRfVEFSR0VUfTwvc3RyaW5nPgorCTxrZXk+TFNVSUVsZW1lbnQ8L2tleT4KKwk8dHJ1ZS8+
CisJPGtleT5OU1ByaW5jaXBhbENsYXNzPC9rZXk+CisJPHN0cmluZz5OU0FwcGxpY2F0aW9uPC9z
dHJpbmc+Cis8L2RpY3Q+Cis8L3BsaXN0PgpJbmRleDogU291cmNlL1dlYktpdDIvUGx1Z2luUHJv
Y2Vzcy9FbnRyeVBvaW50L21hYy9MZWdhY3lQcm9jZXNzL1BsdWdpblByb2Nlc3NNYWluLm1tCj09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQyL1BsdWdpblByb2Nlc3MvRW50cnlQb2ludC9tYWMv
TGVnYWN5UHJvY2Vzcy9QbHVnaW5Qcm9jZXNzTWFpbi5tbQkocmV2aXNpb24gMTQwODc3KQkoZnJv
bSBTb3VyY2UvV2ViS2l0Mi9QbHVnaW5Qcm9jZXNzL21hYy9QbHVnaW5Qcm9jZXNzTWFpbk1hYy5t
bToxNDA4NzcpCisrKyBTb3VyY2UvV2ViS2l0Mi9QbHVnaW5Qcm9jZXNzL0VudHJ5UG9pbnQvbWFj
L0xlZ2FjeVByb2Nlc3MvUGx1Z2luUHJvY2Vzc01haW4ubW0JKHdvcmtpbmcgY29weSkKQEAgLTAs
MCArMSwxMDUgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTAsIDIwMTEgQXBwbGUgSW5jLiBB
bGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291
cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBh
cmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBh
cmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWlu
IHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlv
bnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBp
biBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBu
b3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWlt
ZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJv
dmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJP
VklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFO
RCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBM
SU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkg
QU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4g
SU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBM
SUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVN
UExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBM
SU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNF
UzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJV
UFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hF
VEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElO
RyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0Yg
VEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NT
SUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaW1wb3J0ICJjb25maWcuaCIKKyNpbXBv
cnQgIlBsdWdpblByb2Nlc3NNYWluLmgiCisKKyNpZiBFTkFCTEUoUExVR0lOX1BST0NFU1MpCisK
KyNpbXBvcnQgIkNoaWxkUHJvY2Vzc01haW4uaCIKKyNpbXBvcnQgIkVudmlyb25tZW50VXRpbGl0
aWVzLmgiCisjaW1wb3J0ICJOZXRzY2FwZVBsdWdpbk1vZHVsZS5oIgorI2ltcG9ydCAiUGx1Z2lu
UHJvY2Vzcy5oIgorI2ltcG9ydCA8V2ViQ29yZS9SdW5Mb29wLmg+CisKKyNpZiBVU0UoQVBQS0lU
KQorQGludGVyZmFjZSBOU0FwcGxpY2F0aW9uIChXZWJOU0FwcGxpY2F0aW9uRGV0YWlscykKKy0o
dm9pZClfaW5zdGFsbEF1dG9yZWxlYXNlUG9vbHNPbkN1cnJlbnRUaHJlYWRJZk5lY2Vzc2FyeTsK
K0BlbmQKKyNlbmRpZgorCit1c2luZyBuYW1lc3BhY2UgV2ViQ29yZTsKKworbmFtZXNwYWNlIFdl
YktpdCB7CisKK2NsYXNzIFBsdWdpblByb2Nlc3NNYWluRGVsZWdhdGUgOiBwdWJsaWMgQ2hpbGRQ
cm9jZXNzTWFpbkRlbGVnYXRlIHsKK3B1YmxpYzoKKyAgICBQbHVnaW5Qcm9jZXNzTWFpbkRlbGVn
YXRlKGNvbnN0IENvbW1hbmRMaW5lJiBjb21tYW5kTGluZSkKKyAgICAgICAgOiBDaGlsZFByb2Nl
c3NNYWluRGVsZWdhdGUoY29tbWFuZExpbmUpCisgICAgeworICAgIH0KKworICAgIHZpcnR1YWwg
dm9pZCBkb1ByZUluaXRpYWxpemF0aW9uV29yaygpCisgICAgeworICAgICAgICAvLyBSZW1vdmUg
dGhlIFBsdWdpblByb2Nlc3Mgc2hpbSBmcm9tIHRoZSBEWUxEX0lOU0VSVF9MSUJSQVJJRVMgZW52
aXJvbm1lbnQgdmFyaWFibGUgc28gYW55IHByb2Nlc3NlcworICAgICAgICAvLyBzcGF3bmVkIGJ5
IHRoZSBQbHVnaW5Qcm9jZXNzIGRvbid0IHRyeSB0byBpbnNlcnQgdGhlIHNoaW0gYW5kIGNyYXNo
LgorICAgICAgICBFbnZpcm9ubWVudFV0aWxpdGllczo6c3RyaXBWYWx1ZXNFbmRpbmdXaXRoU3Ry
aW5nKCJEWUxEX0lOU0VSVF9MSUJSQVJJRVMiLCAiL1BsdWdpblByb2Nlc3NTaGltLmR5bGliIik7
CisKKyNpZiBVU0UoQVBQS0lUKQorICAgICAgICBSdW5Mb29wOjpzZXRVc2VBcHBsaWNhdGlvblJ1
bkxvb3BPbk1haW5SdW5Mb29wKCk7CisKKyAgICAgICAgLy8gSW5pdGlhbGl6ZSBBcHBLaXQuCisg
ICAgICAgIFtOU0FwcGxpY2F0aW9uIHNoYXJlZEFwcGxpY2F0aW9uXTsKKworICAgICAgICAvLyBJ
bnN0YWxscyBhdXRvcmVsZWFzZSBwb29scyBvbiB0aGUgY3VycmVudCBydW5sb29wIHdoaWNoIHBy
ZXZlbnRzIG1lbW9yeSBmcm9tIGFjY3VtdWxhdGluZyBiZXR3ZWVuIHVzZXIgZXZlbnRzLgorICAg
ICAgICAvLyBGSVhNRTogUmVtb3ZlIHdoZW4gPHJkYXI6Ly9wcm9ibGVtLzg5Mjk0MjY+IGlzIGZp
eGVkLgorICAgICAgICBbTlNBcHAgX2luc3RhbGxBdXRvcmVsZWFzZVBvb2xzT25DdXJyZW50VGhy
ZWFkSWZOZWNlc3NhcnldOworI2VuZGlmCisKKyAgICAgICAgLy8gQ2hlY2sgaWYgd2UncmUgYmVp
bmcgc3Bhd25lZCB0byB3cml0ZSBhIE1JTUUgdHlwZSBwcmVmZXJlbmNlcyBmaWxlLgorICAgICAg
ICBTdHJpbmcgcGx1Z2luUGF0aCA9IG1fY29tbWFuZExpbmVbImNyZWF0ZVBsdWdpbk1JTUVUeXBl
c1ByZWZlcmVuY2VzIl07CisgICAgICAgIGlmICghcGx1Z2luUGF0aC5pc0VtcHR5KCkpIHsKKyAg
ICAgICAgICAgIC8vIFdlIGFyZSBuZXZlciBnb2luZyB0byBnZXQgdG8gdGhlIGFjdHVhbCBpbml0
aWFsaXphdGlvbiwgc28gaW5pdGlhbGl6ZSBXZWJLaXQyIG5vdy4KKyAgICAgICAgICAgIEluaXRp
YWxpemVXZWJLaXQyKCk7CisKKyAgICAgICAgICAgIGlmICghTmV0c2NhcGVQbHVnaW5Nb2R1bGU6
OmNyZWF0ZVBsdWdpbk1JTUVUeXBlc1ByZWZlcmVuY2VzKHBsdWdpblBhdGgpKQorICAgICAgICAg
ICAgICAgIGV4aXQoRVhJVF9GQUlMVVJFKTsKKyAgICAgICAgICAgIGV4aXQoRVhJVF9TVUNDRVNT
KTsKKyAgICAgICAgfQorICAgIH0KKworICAgIHZpcnR1YWwgdm9pZCBkb1Bvc3RSdW5Xb3JrKCkK
KyAgICB7CisjaWYgX19NQUNfT1NfWF9WRVJTSU9OX01JTl9SRVFVSVJFRCA+PSAxMDgwCisgICAg
ICAgIC8vIElmIHdlIGhhdmUgcHJpdmF0ZSB0ZW1wb3JhcnkgYW5kIGNhY2hlIGRpcmVjdG9yaWVz
LCBjbGVhbiB0aGVtIHVwLgorICAgICAgICBpZiAoZ2V0ZW52KCJESVJIRUxQRVJfVVNFUl9ESVJf
U1VGRklYIikpIHsKKyAgICAgICAgICAgIGNoYXIgZGFyd2luRGlyZWN0b3J5W1BBVEhfTUFYXTsK
KyAgICAgICAgICAgIGlmIChjb25mc3RyKF9DU19EQVJXSU5fVVNFUl9URU1QX0RJUiwgZGFyd2lu
RGlyZWN0b3J5LCBzaXplb2YoZGFyd2luRGlyZWN0b3J5KSkpCisgICAgICAgICAgICAgICAgW1tO
U0ZpbGVNYW5hZ2VyIGRlZmF1bHRNYW5hZ2VyXSByZW1vdmVJdGVtQXRQYXRoOltbTlNGaWxlTWFu
YWdlciBkZWZhdWx0TWFuYWdlcl0gc3RyaW5nV2l0aEZpbGVTeXN0ZW1SZXByZXNlbnRhdGlvbjpk
YXJ3aW5EaXJlY3RvcnkgbGVuZ3RoOnN0cmxlbihkYXJ3aW5EaXJlY3RvcnkpXSBlcnJvcjpuaWxd
OworICAgICAgICAgICAgaWYgKGNvbmZzdHIoX0NTX0RBUldJTl9VU0VSX0NBQ0hFX0RJUiwgZGFy
d2luRGlyZWN0b3J5LCBzaXplb2YoZGFyd2luRGlyZWN0b3J5KSkpCisgICAgICAgICAgICAgICAg
W1tOU0ZpbGVNYW5hZ2VyIGRlZmF1bHRNYW5hZ2VyXSByZW1vdmVJdGVtQXRQYXRoOltbTlNGaWxl
TWFuYWdlciBkZWZhdWx0TWFuYWdlcl0gc3RyaW5nV2l0aEZpbGVTeXN0ZW1SZXByZXNlbnRhdGlv
bjpkYXJ3aW5EaXJlY3RvcnkgbGVuZ3RoOnN0cmxlbihkYXJ3aW5EaXJlY3RvcnkpXSBlcnJvcjpu
aWxdOworICAgICAgICB9CisjZW5kaWYKKyAgICB9Cit9OworCitpbnQgUGx1Z2luUHJvY2Vzc01h
aW4oY29uc3QgQ29tbWFuZExpbmUmIGNvbW1hbmRMaW5lKQoreworICAgIHJldHVybiBDaGlsZFBy
b2Nlc3NNYWluPFBsdWdpblByb2Nlc3MsIFBsdWdpblByb2Nlc3NNYWluRGVsZWdhdGU+KGNvbW1h
bmRMaW5lKTsKK30KKworfQorCisjZW5kaWYgLy8gRU5BQkxFKFBMVUdJTl9QUk9DRVNTKQpJbmRl
eDogU291cmNlL1dlYktpdDIvUGx1Z2luUHJvY2Vzcy9FbnRyeVBvaW50L21hYy9MZWdhY3lQcm9j
ZXNzL1BsdWdpblByb2Nlc3NNYWluLm1tCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQyL1Bs
dWdpblByb2Nlc3MvRW50cnlQb2ludC9tYWMvTGVnYWN5UHJvY2Vzcy9QbHVnaW5Qcm9jZXNzTWFp
bi5tbQkocmV2aXNpb24gMCkKKysrIFNvdXJjZS9XZWJLaXQyL1BsdWdpblByb2Nlc3MvRW50cnlQ
b2ludC9tYWMvTGVnYWN5UHJvY2Vzcy9QbHVnaW5Qcm9jZXNzTWFpbi5tbQkod29ya2luZyBjb3B5
KQpAQCAtMjQsNyArMjQsNiBAQAogICovCiAKICNpbXBvcnQgImNvbmZpZy5oIgotI2ltcG9ydCAi
UGx1Z2luUHJvY2Vzc01haW4uaCIKIAogI2lmIEVOQUJMRShQTFVHSU5fUFJPQ0VTUykKIApAQCAt
MzIsNiArMzEsNyBAQAogI2ltcG9ydCAiRW52aXJvbm1lbnRVdGlsaXRpZXMuaCIKICNpbXBvcnQg
Ik5ldHNjYXBlUGx1Z2luTW9kdWxlLmgiCiAjaW1wb3J0ICJQbHVnaW5Qcm9jZXNzLmgiCisjaW1w
b3J0ICJXS0Jhc2UuaCIKICNpbXBvcnQgPFdlYkNvcmUvUnVuTG9vcC5oPgogCiAjaWYgVVNFKEFQ
UEtJVCkKQEAgLTk1LDExICs5NSwxOSBAQCBwdWJsaWM6CiAgICAgfQogfTsKIAotaW50IFBsdWdp
blByb2Nlc3NNYWluKGNvbnN0IENvbW1hbmRMaW5lJiBjb21tYW5kTGluZSkKK30gLy8gbmFtZXNw
YWNlIFdlYktpdAorCit1c2luZyBuYW1lc3BhY2UgV2ViS2l0OworCitleHRlcm4gIkMiIFdLX0VY
UE9SVCBpbnQgUGx1Z2luUHJvY2Vzc01haW4oaW50IGFyZ2MsIGNoYXIqKiBhcmd2KTsKKworaW50
IFBsdWdpblByb2Nlc3NNYWluKGludCBhcmdjLCBjaGFyKiogYXJndikKIHsKLSAgICByZXR1cm4g
Q2hpbGRQcm9jZXNzTWFpbjxQbHVnaW5Qcm9jZXNzLCBQbHVnaW5Qcm9jZXNzTWFpbkRlbGVnYXRl
Pihjb21tYW5kTGluZSk7Ci19CisgICAgQ29tbWFuZExpbmUgY29tbWFuZExpbmU7CisgICAgaWYg
KCFjb21tYW5kTGluZS5wYXJzZShhcmdjLCBhcmd2KSkKKyAgICAgICAgcmV0dXJuIEVYSVRfRkFJ
TFVSRTsKIAorICAgIHJldHVybiBDaGlsZFByb2Nlc3NNYWluPFBsdWdpblByb2Nlc3MsIFBsdWdp
blByb2Nlc3NNYWluRGVsZWdhdGU+KGNvbW1hbmRMaW5lKTsKIH0KIAogI2VuZGlmIC8vIEVOQUJM
RShQTFVHSU5fUFJPQ0VTUykKSW5kZXg6IFNvdXJjZS9XZWJLaXQyL1BsdWdpblByb2Nlc3MvRW50
cnlQb2ludC9tYWMvTGVnYWN5UHJvY2Vzcy9QbHVnaW5Qcm9jZXNzTWFpbkJvb3RzdHJhcHBlci5j
cHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdDIvUGx1Z2luUHJvY2Vzcy9FbnRyeVBvaW50
L21hYy9MZWdhY3lQcm9jZXNzL1BsdWdpblByb2Nlc3NNYWluQm9vdHN0cmFwcGVyLmNwcAkocmV2
aXNpb24gMCkKKysrIFNvdXJjZS9XZWJLaXQyL1BsdWdpblByb2Nlc3MvRW50cnlQb2ludC9tYWMv
TGVnYWN5UHJvY2Vzcy9QbHVnaW5Qcm9jZXNzTWFpbkJvb3RzdHJhcHBlci5jcHAJKHJldmlzaW9u
IDApCkBAIC0wLDAgKzEsMzIgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTMgQXBwbGUgSW5j
LiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4g
c291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9u
LCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisg
KiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0
YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRp
dGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9u
cyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAg
ICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2Ns
YWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMg
cHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMg
UFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAq
IEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5P
VCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJ
VFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1F
RC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBC
RSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBF
WEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5P
VCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJW
SUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRF
UlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwg
V0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xV
RElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQg
T0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQ
T1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaW5jbHVkZSAiQ2hpbGRQcm9jZXNz
TWFpbkJvb3RzdHJhcHBlci5oIgorCitpbnQgbWFpbihpbnQgYXJnYywgY2hhcioqIGFyZ3YpCit7
CisgICAgV2ViS2l0TWFpbkZ1bmN0aW9uIG1haW5GdW5jdGlvbiA9IGdldEJvb3RzdHJhcE1haW5G
dW5jdGlvbihhcmdjLCBhcmd2LCAiUGx1Z2luUHJvY2Vzc01haW4iKTsKKyAgICByZXR1cm4gbWFp
bkZ1bmN0aW9uKGFyZ2MsIGFyZ3YpOworfQpJbmRleDogU291cmNlL1dlYktpdDIvUGx1Z2luUHJv
Y2Vzcy9tYWMvUGx1Z2luUHJvY2Vzc01haW5NYWMubW0KPT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dl
YktpdDIvUGx1Z2luUHJvY2Vzcy9tYWMvUGx1Z2luUHJvY2Vzc01haW5NYWMubW0JKHJldmlzaW9u
IDE0MDkxMikKKysrIFNvdXJjZS9XZWJLaXQyL1BsdWdpblByb2Nlc3MvbWFjL1BsdWdpblByb2Nl
c3NNYWluTWFjLm1tCSh3b3JraW5nIGNvcHkpCkBAIC0xLDEwNSArMCwwIEBACi0vKgotICogQ29w
eXJpZ2h0IChDKSAyMDEwLCAyMDExIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KLSAq
Ci0gKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3
aXRoIG9yIHdpdGhvdXQKLSAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0
aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwotICogYXJlIG1ldDoKLSAqIDEuIFJlZGlzdHJp
YnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0Ci0g
KiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRp
c2NsYWltZXIuCi0gKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXBy
b2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAotICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29u
ZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQotICogICAgZG9jdW1l
bnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1
dGlvbi4KLSAqCi0gKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5E
IElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCi0gKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElF
RCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKLSAqIFRIRSBJTVBM
SUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJ
Q1VMQVIKLSAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExF
IElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUwotICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJ
TkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgotICogQ09OU0VRVUVO
VElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQg
T0YKLSAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBP
UiBQUk9GSVRTOyBPUiBCVVNJTkVTUwotICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBB
TkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KLSAqIENPTlRSQUNULCBT
VFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJ
U0UpCi0gKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FS
RSwgRVZFTiBJRiBBRFZJU0VEIE9GCi0gKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0Uu
Ci0gKi8KLQotI2ltcG9ydCAiY29uZmlnLmgiCi0jaW1wb3J0ICJQbHVnaW5Qcm9jZXNzTWFpbi5o
IgotCi0jaWYgRU5BQkxFKFBMVUdJTl9QUk9DRVNTKQotCi0jaW1wb3J0ICJDaGlsZFByb2Nlc3NN
YWluLmgiCi0jaW1wb3J0ICJFbnZpcm9ubWVudFV0aWxpdGllcy5oIgotI2ltcG9ydCAiTmV0c2Nh
cGVQbHVnaW5Nb2R1bGUuaCIKLSNpbXBvcnQgIlBsdWdpblByb2Nlc3MuaCIKLSNpbXBvcnQgPFdl
YkNvcmUvUnVuTG9vcC5oPgotCi0jaWYgVVNFKEFQUEtJVCkKLUBpbnRlcmZhY2UgTlNBcHBsaWNh
dGlvbiAoV2ViTlNBcHBsaWNhdGlvbkRldGFpbHMpCi0tKHZvaWQpX2luc3RhbGxBdXRvcmVsZWFz
ZVBvb2xzT25DdXJyZW50VGhyZWFkSWZOZWNlc3Nhcnk7Ci1AZW5kCi0jZW5kaWYKLQotdXNpbmcg
bmFtZXNwYWNlIFdlYkNvcmU7Ci0KLW5hbWVzcGFjZSBXZWJLaXQgewotCi1jbGFzcyBQbHVnaW5Q
cm9jZXNzTWFpbkRlbGVnYXRlIDogcHVibGljIENoaWxkUHJvY2Vzc01haW5EZWxlZ2F0ZSB7Ci1w
dWJsaWM6Ci0gICAgUGx1Z2luUHJvY2Vzc01haW5EZWxlZ2F0ZShjb25zdCBDb21tYW5kTGluZSYg
Y29tbWFuZExpbmUpCi0gICAgICAgIDogQ2hpbGRQcm9jZXNzTWFpbkRlbGVnYXRlKGNvbW1hbmRM
aW5lKQotICAgIHsKLSAgICB9Ci0KLSAgICB2aXJ0dWFsIHZvaWQgZG9QcmVJbml0aWFsaXphdGlv
bldvcmsoKQotICAgIHsKLSAgICAgICAgLy8gUmVtb3ZlIHRoZSBQbHVnaW5Qcm9jZXNzIHNoaW0g
ZnJvbSB0aGUgRFlMRF9JTlNFUlRfTElCUkFSSUVTIGVudmlyb25tZW50IHZhcmlhYmxlIHNvIGFu
eSBwcm9jZXNzZXMKLSAgICAgICAgLy8gc3Bhd25lZCBieSB0aGUgUGx1Z2luUHJvY2VzcyBkb24n
dCB0cnkgdG8gaW5zZXJ0IHRoZSBzaGltIGFuZCBjcmFzaC4KLSAgICAgICAgRW52aXJvbm1lbnRV
dGlsaXRpZXM6OnN0cmlwVmFsdWVzRW5kaW5nV2l0aFN0cmluZygiRFlMRF9JTlNFUlRfTElCUkFS
SUVTIiwgIi9QbHVnaW5Qcm9jZXNzU2hpbS5keWxpYiIpOwotCi0jaWYgVVNFKEFQUEtJVCkKLSAg
ICAgICAgUnVuTG9vcDo6c2V0VXNlQXBwbGljYXRpb25SdW5Mb29wT25NYWluUnVuTG9vcCgpOwot
Ci0gICAgICAgIC8vIEluaXRpYWxpemUgQXBwS2l0LgotICAgICAgICBbTlNBcHBsaWNhdGlvbiBz
aGFyZWRBcHBsaWNhdGlvbl07Ci0KLSAgICAgICAgLy8gSW5zdGFsbHMgYXV0b3JlbGVhc2UgcG9v
bHMgb24gdGhlIGN1cnJlbnQgcnVubG9vcCB3aGljaCBwcmV2ZW50cyBtZW1vcnkgZnJvbSBhY2N1
bXVsYXRpbmcgYmV0d2VlbiB1c2VyIGV2ZW50cy4KLSAgICAgICAgLy8gRklYTUU6IFJlbW92ZSB3
aGVuIDxyZGFyOi8vcHJvYmxlbS84OTI5NDI2PiBpcyBmaXhlZC4KLSAgICAgICAgW05TQXBwIF9p
bnN0YWxsQXV0b3JlbGVhc2VQb29sc09uQ3VycmVudFRocmVhZElmTmVjZXNzYXJ5XTsKLSNlbmRp
ZgotCi0gICAgICAgIC8vIENoZWNrIGlmIHdlJ3JlIGJlaW5nIHNwYXduZWQgdG8gd3JpdGUgYSBN
SU1FIHR5cGUgcHJlZmVyZW5jZXMgZmlsZS4KLSAgICAgICAgU3RyaW5nIHBsdWdpblBhdGggPSBt
X2NvbW1hbmRMaW5lWyJjcmVhdGVQbHVnaW5NSU1FVHlwZXNQcmVmZXJlbmNlcyJdOwotICAgICAg
ICBpZiAoIXBsdWdpblBhdGguaXNFbXB0eSgpKSB7Ci0gICAgICAgICAgICAvLyBXZSBhcmUgbmV2
ZXIgZ29pbmcgdG8gZ2V0IHRvIHRoZSBhY3R1YWwgaW5pdGlhbGl6YXRpb24sIHNvIGluaXRpYWxp
emUgV2ViS2l0MiBub3cuCi0gICAgICAgICAgICBJbml0aWFsaXplV2ViS2l0MigpOwotCi0gICAg
ICAgICAgICBpZiAoIU5ldHNjYXBlUGx1Z2luTW9kdWxlOjpjcmVhdGVQbHVnaW5NSU1FVHlwZXNQ
cmVmZXJlbmNlcyhwbHVnaW5QYXRoKSkKLSAgICAgICAgICAgICAgICBleGl0KEVYSVRfRkFJTFVS
RSk7Ci0gICAgICAgICAgICBleGl0KEVYSVRfU1VDQ0VTUyk7Ci0gICAgICAgIH0KLSAgICB9Ci0K
LSAgICB2aXJ0dWFsIHZvaWQgZG9Qb3N0UnVuV29yaygpCi0gICAgewotI2lmIF9fTUFDX09TX1hf
VkVSU0lPTl9NSU5fUkVRVUlSRUQgPj0gMTA4MAotICAgICAgICAvLyBJZiB3ZSBoYXZlIHByaXZh
dGUgdGVtcG9yYXJ5IGFuZCBjYWNoZSBkaXJlY3RvcmllcywgY2xlYW4gdGhlbSB1cC4KLSAgICAg
ICAgaWYgKGdldGVudigiRElSSEVMUEVSX1VTRVJfRElSX1NVRkZJWCIpKSB7Ci0gICAgICAgICAg
ICBjaGFyIGRhcndpbkRpcmVjdG9yeVtQQVRIX01BWF07Ci0gICAgICAgICAgICBpZiAoY29uZnN0
cihfQ1NfREFSV0lOX1VTRVJfVEVNUF9ESVIsIGRhcndpbkRpcmVjdG9yeSwgc2l6ZW9mKGRhcndp
bkRpcmVjdG9yeSkpKQotICAgICAgICAgICAgICAgIFtbTlNGaWxlTWFuYWdlciBkZWZhdWx0TWFu
YWdlcl0gcmVtb3ZlSXRlbUF0UGF0aDpbW05TRmlsZU1hbmFnZXIgZGVmYXVsdE1hbmFnZXJdIHN0
cmluZ1dpdGhGaWxlU3lzdGVtUmVwcmVzZW50YXRpb246ZGFyd2luRGlyZWN0b3J5IGxlbmd0aDpz
dHJsZW4oZGFyd2luRGlyZWN0b3J5KV0gZXJyb3I6bmlsXTsKLSAgICAgICAgICAgIGlmIChjb25m
c3RyKF9DU19EQVJXSU5fVVNFUl9DQUNIRV9ESVIsIGRhcndpbkRpcmVjdG9yeSwgc2l6ZW9mKGRh
cndpbkRpcmVjdG9yeSkpKQotICAgICAgICAgICAgICAgIFtbTlNGaWxlTWFuYWdlciBkZWZhdWx0
TWFuYWdlcl0gcmVtb3ZlSXRlbUF0UGF0aDpbW05TRmlsZU1hbmFnZXIgZGVmYXVsdE1hbmFnZXJd
IHN0cmluZ1dpdGhGaWxlU3lzdGVtUmVwcmVzZW50YXRpb246ZGFyd2luRGlyZWN0b3J5IGxlbmd0
aDpzdHJsZW4oZGFyd2luRGlyZWN0b3J5KV0gZXJyb3I6bmlsXTsKLSAgICAgICAgfQotI2VuZGlm
Ci0gICAgfQotfTsKLQotaW50IFBsdWdpblByb2Nlc3NNYWluKGNvbnN0IENvbW1hbmRMaW5lJiBj
b21tYW5kTGluZSkKLXsKLSAgICByZXR1cm4gQ2hpbGRQcm9jZXNzTWFpbjxQbHVnaW5Qcm9jZXNz
LCBQbHVnaW5Qcm9jZXNzTWFpbkRlbGVnYXRlPihjb21tYW5kTGluZSk7Ci19Ci0KLX0KLQotI2Vu
ZGlmIC8vIEVOQUJMRShQTFVHSU5fUFJPQ0VTUykKSW5kZXg6IFNvdXJjZS9XZWJLaXQyL1NoYXJl
ZC9FbnRyeVBvaW50VXRpbGl0aWVzL21hYy9MZWdhY3lQcm9jZXNzL0NoaWxkUHJvY2Vzc01haW4u
aAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0Mi9TaGFyZWQvRW50cnlQb2ludFV0aWxpdGll
cy9tYWMvTGVnYWN5UHJvY2Vzcy9DaGlsZFByb2Nlc3NNYWluLmgJKHJldmlzaW9uIDE0MDg3NykJ
KGZyb20gU291cmNlL1dlYktpdDIvU2hhcmVkL21hYy9DaGlsZFByb2Nlc3NNYWluLmg6MTQwODc3
KQorKysgU291cmNlL1dlYktpdDIvU2hhcmVkL0VudHJ5UG9pbnRVdGlsaXRpZXMvbWFjL0xlZ2Fj
eVByb2Nlc3MvQ2hpbGRQcm9jZXNzTWFpbi5oCSh3b3JraW5nIGNvcHkpCkBAIC0wLDAgKzEsMTAx
IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDEzIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNl
cnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5
IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBw
cm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEu
IFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29w
eXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9s
bG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0g
bXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxp
c3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICog
ICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhl
IGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExF
IElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1Mg
T1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAq
IFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZP
UiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNI
QUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkg
RElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICog
Q09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJP
Q1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNF
LCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVS
IENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENP
TlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBP
UiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJ
UyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VD
SCBEQU1BR0UuCisgKi8KKworI2lmbmRlZiBDaGlsZFByb2Nlc3NNYWluX2gKKyNkZWZpbmUgQ2hp
bGRQcm9jZXNzTWFpbl9oCisKKyNpbXBvcnQgIkNoaWxkUHJvY2Vzcy5oIgorI2ltcG9ydCAiQ29t
bWFuZExpbmUuaCIKKyNpbXBvcnQgIldlYktpdDJJbml0aWFsaXplLmgiCisjaW1wb3J0IDxXZWJD
b3JlL1J1bkxvb3AuaD4KKyNpbXBvcnQgPFdlYktpdFN5c3RlbUludGVyZmFjZS5oPgorI2ltcG9y
dCA8c3lzZXhpdHMuaD4KKworbmFtZXNwYWNlIFdlYktpdCB7CisKK2NsYXNzIENoaWxkUHJvY2Vz
c01haW5EZWxlZ2F0ZSB7CitwdWJsaWM6CisgICAgQ2hpbGRQcm9jZXNzTWFpbkRlbGVnYXRlKGNv
bnN0IENvbW1hbmRMaW5lJiBjb21tYW5kTGluZSkKKyAgICAgICAgOiBtX2NvbW1hbmRMaW5lKGNv
bW1hbmRMaW5lKQorICAgIHsKKyAgICB9CisKKyAgICB2aXJ0dWFsIH5DaGlsZFByb2Nlc3NNYWlu
RGVsZWdhdGUoKTsKKworICAgIHZpcnR1YWwgdm9pZCBpbnN0YWxsU2lnbmFsSGFuZGxlcnMoKTsK
KyAgICB2aXJ0dWFsIHZvaWQgZG9QcmVJbml0aWFsaXphdGlvbldvcmsoKTsKKworICAgIHZpcnR1
YWwgYm9vbCBnZXRDb25uZWN0aW9uSWRlbnRpZmllcihDb3JlSVBDOjpDb25uZWN0aW9uOjpJZGVu
dGlmaWVyJiBpZGVudGlmaWVyKTsKKyAgICB2aXJ0dWFsIGJvb2wgZ2V0Q2xpZW50SWRlbnRpZmll
cihTdHJpbmcmIGNsaWVudElkZW50aWZpZXIpOworICAgIHZpcnR1YWwgYm9vbCBnZXRDbGllbnRQ
cm9jZXNzTmFtZShTdHJpbmcmIGNsaWVudFByb2Nlc3NOYW1lKTsKKworICAgIHZpcnR1YWwgdm9p
ZCBkb1Bvc3RSdW5Xb3JrKCk7CisKK3Byb3RlY3RlZDoKKyAgICBjb25zdCBDb21tYW5kTGluZSYg
bV9jb21tYW5kTGluZTsKK307CisKK3RlbXBsYXRlPHR5cGVuYW1lIENoaWxkUHJvY2Vzc1R5cGUs
IHR5cGVuYW1lIENoaWxkUHJvY2Vzc01haW5EZWxlZ2F0ZVR5cGU+CitpbnQgQ2hpbGRQcm9jZXNz
TWFpbihjb25zdCBDb21tYW5kTGluZSYgY29tbWFuZExpbmUpCit7CisgICAgQ2hpbGRQcm9jZXNz
TWFpbkRlbGVnYXRlVHlwZSBkZWxlZ2F0ZShjb21tYW5kTGluZSk7CisKKyAgICBAYXV0b3JlbGVh
c2Vwb29sIHsKKyAgICAgICAgZGVsZWdhdGUuaW5zdGFsbFNpZ25hbEhhbmRsZXJzKCk7CisgICAg
ICAgIGRlbGVnYXRlLmRvUHJlSW5pdGlhbGl6YXRpb25Xb3JrKCk7CisKKyAgICAgICAgSW5pdGlh
bGl6ZVdlYktpdDIoKTsKKworICAgICAgICBDaGlsZFByb2Nlc3NJbml0aWFsaXphdGlvblBhcmFt
ZXRlcnMgcGFyYW1ldGVyczsKKyAgICAgICAgaWYgKCFkZWxlZ2F0ZS5nZXRDb25uZWN0aW9uSWRl
bnRpZmllcihwYXJhbWV0ZXJzLmNvbm5lY3Rpb25JZGVudGlmaWVyKSkKKyAgICAgICAgICAgIHJl
dHVybiBFWElUX0ZBSUxVUkU7CisKKyAgICAgICAgaWYgKCFkZWxlZ2F0ZS5nZXRDbGllbnRJZGVu
dGlmaWVyKHBhcmFtZXRlcnMuY2xpZW50SWRlbnRpZmllcikpCisgICAgICAgICAgICByZXR1cm4g
RVhJVF9GQUlMVVJFOworCisgICAgICAgIGlmICghZGVsZWdhdGUuZ2V0Q2xpZW50UHJvY2Vzc05h
bWUocGFyYW1ldGVycy51aVByb2Nlc3NOYW1lKSkKKyAgICAgICAgICAgIHJldHVybiBFWElUX0ZB
SUxVUkU7CisKKyAgICAgICAgLy8gRklYTUU6IFRoaXMgc2hvdWxkIGJlIG1vdmVkIHRvIENoaWxk
UHJvY2Vzc01hYyBpZiBpdCBpcyBzdGlsbCBuZWNlc3NhcnkuCisgICAgICAgIFN0cmluZyBsb2Nh
bGl6YXRpb24gPSBjb21tYW5kTGluZVsibG9jYWxpemF0aW9uIl07CisgICAgICAgIFJldGFpblB0
cjxDRlN0cmluZ1JlZj4gY2ZMb2NhbGl6YXRpb24oQWRvcHRDRiwgQ0ZTdHJpbmdDcmVhdGVXaXRo
Q2hhcmFjdGVycygwLCByZWludGVycHJldF9jYXN0PGNvbnN0IFVuaUNoYXIqPihsb2NhbGl6YXRp
b24uY2hhcmFjdGVycygpKSwgbG9jYWxpemF0aW9uLmxlbmd0aCgpKSk7CisgICAgICAgIGlmIChj
ZkxvY2FsaXphdGlvbikKKyAgICAgICAgICAgIFdLU2V0RGVmYXVsdExvY2FsaXphdGlvbihjZkxv
Y2FsaXphdGlvbi5nZXQoKSk7CisKKyAgICAgICAgQ2hpbGRQcm9jZXNzVHlwZTo6c2hhcmVkKCku
aW5pdGlhbGl6ZShwYXJhbWV0ZXJzKTsKKyAgICB9CisKKyAgICBXZWJDb3JlOjpSdW5Mb29wOjpy
dW4oKTsKKworICAgIEBhdXRvcmVsZWFzZXBvb2wgeworICAgICAgICBkZWxlZ2F0ZS5kb1Bvc3RS
dW5Xb3JrKCk7CisgICAgfQorCisgICAgcmV0dXJuIDA7Cit9CisKK30gLy8gbmFtZXNwYWNlIFdl
YktpdAorCisjZW5kaWYgLy8gQ2hpbGRQcm9jZXNzTWFpbl9oCkluZGV4OiBTb3VyY2UvV2ViS2l0
Mi9TaGFyZWQvRW50cnlQb2ludFV0aWxpdGllcy9tYWMvTGVnYWN5UHJvY2Vzcy9DaGlsZFByb2Nl
c3NNYWluLm1tCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQyL1NoYXJlZC9FbnRyeVBvaW50
VXRpbGl0aWVzL21hYy9MZWdhY3lQcm9jZXNzL0NoaWxkUHJvY2Vzc01haW4ubW0JKHJldmlzaW9u
IDE0MDg3NykJKGZyb20gU291cmNlL1dlYktpdDIvU2hhcmVkL21hYy9DaGlsZFByb2Nlc3NNYWlu
Lm1tOjE0MDg3NykKKysrIFNvdXJjZS9XZWJLaXQyL1NoYXJlZC9FbnRyeVBvaW50VXRpbGl0aWVz
L21hYy9MZWdhY3lQcm9jZXNzL0NoaWxkUHJvY2Vzc01haW4ubW0JKHdvcmtpbmcgY29weSkKQEAg
LTAsMCArMSw5NSBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxMyBBcHBsZSBJbmMuIEFsbCBy
aWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2Ug
YW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBw
ZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBt
ZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhl
IGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBh
bmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJp
bmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGlj
ZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBp
biB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRl
ZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURF
RCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFO
WSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlU
RUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQg
RklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBO
TyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJM
RSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFS
WSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlU
RUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBM
T1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElP
TikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVS
IElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5F
R0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUg
VVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklM
SVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpbmNsdWRlICJjb25maWcuaCIKKyNpbmNsdWRl
ICJDaGlsZFByb2Nlc3NNYWluLmgiCisKKyNpbXBvcnQgPG1hY2gvbWFjaF9lcnJvci5oPgorI2lt
cG9ydCA8c2VydmVycy9ib290c3RyYXAuaD4KKyNpbXBvcnQgPHN0ZGlvLmg+CisjaW1wb3J0IDx3
dGYvUmV0YWluUHRyLmg+CisjaW1wb3J0IDx3dGYvdGV4dC9DU3RyaW5nLmg+CisKKyNkZWZpbmUg
U0hPV19DUkFTSF9SRVBPUlRFUiAxCisKK25hbWVzcGFjZSBXZWJLaXQgeworCitDaGlsZFByb2Nl
c3NNYWluRGVsZWdhdGU6On5DaGlsZFByb2Nlc3NNYWluRGVsZWdhdGUoKQoreworfQorCit2b2lk
IENoaWxkUHJvY2Vzc01haW5EZWxlZ2F0ZTo6aW5zdGFsbFNpZ25hbEhhbmRsZXJzKCkKK3sKKyNp
ZiAhU0hPV19DUkFTSF9SRVBPUlRFUgorICAgIC8vIEluc3RhbGxzIHNpZ25hbCBoYW5kbGVycyB0
aGF0IGV4aXQgb24gYSBjcmFzaCBzbyB0aGF0IENyYXNoUmVwb3J0ZXIgZG9lcyBub3Qgc2hvdyB1
cC4KKyAgICBzaWduYWwoU0lHSUxMLCBfZXhpdCk7CisgICAgc2lnbmFsKFNJR0ZQRSwgX2V4aXQp
OworICAgIHNpZ25hbChTSUdCVVMsIF9leGl0KTsKKyAgICBzaWduYWwoU0lHU0VHViwgX2V4aXQp
OworI2VuZGlmCit9CisKK3ZvaWQgQ2hpbGRQcm9jZXNzTWFpbkRlbGVnYXRlOjpkb1ByZUluaXRp
YWxpemF0aW9uV29yaygpCit7Cit9CisKK2Jvb2wgQ2hpbGRQcm9jZXNzTWFpbkRlbGVnYXRlOjpn
ZXRDb25uZWN0aW9uSWRlbnRpZmllcihDb3JlSVBDOjpDb25uZWN0aW9uOjpJZGVudGlmaWVyJiBp
ZGVudGlmaWVyKQoreworICAgIFN0cmluZyBzZXJ2aWNlTmFtZSA9IG1fY29tbWFuZExpbmVbInNl
cnZpY2VuYW1lIl07CisgICAgaWYgKHNlcnZpY2VOYW1lLmlzRW1wdHkoKSkKKyAgICAgICAgcmV0
dXJuIGZhbHNlOworICAgIAorICAgIG1hY2hfcG9ydF90IHNlcnZlclBvcnQ7CisgICAga2Vybl9y
ZXR1cm5fdCBrciA9IGJvb3RzdHJhcF9sb29rX3VwKGJvb3RzdHJhcF9wb3J0LCBzZXJ2aWNlTmFt
ZS51dGY4KCkuZGF0YSgpLCAmc2VydmVyUG9ydCk7CisgICAgaWYgKGtyKSB7CisgICAgICAgIFdU
RkxvZ0Fsd2F5cygiYm9vdHN0cmFwX2xvb2tfdXAgcmVzdWx0OiAlcyAoJXgpXG4iLCBtYWNoX2Vy
cm9yX3N0cmluZyhrciksIGtyKTsKKyAgICAgICAgcmV0dXJuIGZhbHNlOworICAgIH0KKworICAg
IGlkZW50aWZpZXIgPSBzZXJ2ZXJQb3J0OworICAgIHJldHVybiB0cnVlOworfQorCitib29sIENo
aWxkUHJvY2Vzc01haW5EZWxlZ2F0ZTo6Z2V0Q2xpZW50SWRlbnRpZmllcihTdHJpbmcmIGNsaWVu
dElkZW50aWZpZXIpCit7CisgICAgY2xpZW50SWRlbnRpZmllciA9IG1fY29tbWFuZExpbmVbImNs
aWVudC1pZGVudGlmaWVyIl07CisgICAgaWYgKGNsaWVudElkZW50aWZpZXIuaXNFbXB0eSgpKQor
ICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgcmV0dXJuIHRydWU7Cit9CisKK2Jvb2wgQ2hpbGRQ
cm9jZXNzTWFpbkRlbGVnYXRlOjpnZXRDbGllbnRQcm9jZXNzTmFtZShTdHJpbmcmIGNsaWVudFBy
b2Nlc3NOYW1lKQoreworICAgIGNsaWVudFByb2Nlc3NOYW1lID0gbV9jb21tYW5kTGluZVsidWkt
cHJvY2Vzcy1uYW1lIl07CisgICAgaWYgKGNsaWVudFByb2Nlc3NOYW1lLmlzRW1wdHkoKSkKKyAg
ICAgICAgcmV0dXJuIGZhbHNlOworICAgIHJldHVybiB0cnVlOworfQorCit2b2lkIENoaWxkUHJv
Y2Vzc01haW5EZWxlZ2F0ZTo6ZG9Qb3N0UnVuV29yaygpCit7Cit9CisKK30gLy8gbmFtZXNwYWNl
IFdlYktpdApJbmRleDogU291cmNlL1dlYktpdDIvU2hhcmVkL0VudHJ5UG9pbnRVdGlsaXRpZXMv
bWFjL0xlZ2FjeVByb2Nlc3MvQ2hpbGRQcm9jZXNzTWFpbkJvb3RzdHJhcHBlci5oCj09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT0KLS0tIFNvdXJjZS9XZWJLaXQyL1NoYXJlZC9FbnRyeVBvaW50VXRpbGl0aWVzL21hYy9MZWdh
Y3lQcm9jZXNzL0NoaWxkUHJvY2Vzc01haW5Cb290c3RyYXBwZXIuaAkocmV2aXNpb24gMCkKKysr
IFNvdXJjZS9XZWJLaXQyL1NoYXJlZC9FbnRyeVBvaW50VXRpbGl0aWVzL21hYy9MZWdhY3lQcm9j
ZXNzL0NoaWxkUHJvY2Vzc01haW5Cb290c3RyYXBwZXIuaAkocmV2aXNpb24gMCkKQEAgLTAsMCAr
MSw3NSBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxMyBBcHBsZSBJbmMuIEFsbCByaWdodHMg
cmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJp
bmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0
ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6Cisg
KiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3Zl
IGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhl
IGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBm
b3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhp
cyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUK
KyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRo
IHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBB
UFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBS
RVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8s
CisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVT
UyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVO
VCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1Ig
QU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IK
KyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8s
IFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9G
IFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9X
RVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisg
KiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VO
Q0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9G
IFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9G
IFNVQ0ggREFNQUdFLgorICovCisKKyNpZm5kZWYgQ2hpbGRQcm9jZXNzTWFpbkJvb3RzdHJhcHBl
cl9oCisjZGVmaW5lIENoaWxkUHJvY2Vzc01haW5Cb290c3RyYXBwZXJfaAorCisjaW5jbHVkZSA8
ZGxmY24uaD4KKyNpbmNsdWRlIDxzdGRpby5oPgorI2luY2x1ZGUgPHN0ZGxpYi5oPgorI2luY2x1
ZGUgPHN5cy9ldmVudC5oPgorI2luY2x1ZGUgPHVuaXN0ZC5oPgorCitzdGF0aWMgdm9pZCBjbG9z
ZVVudXNlZEZpbGVEZXNjcmlwdG9ycygpCit7CisgICAgaW50IG51bUZEcyA9IGdldGR0YWJsZXNp
emUoKTsKKworICAgIC8vIENsb3NlIGFsbCBmaWxlIGRlc2NyaXB0b3JzIGV4Y2VwdCBzdGRpbiwg
c3Rkb3V0IGFuZCBzdGRlcnIuCisgICAgZm9yIChpbnQgZmQgPSAzOyBmZCA8IG51bUZEczsgKytm
ZCkgeworICAgICAgICAvLyBDaGVjayBpZiB0aGlzIGlzIGEga3F1ZXVlIGZpbGUgZGVzY3JpcHRv
ci4gSWYgaXQgaXMsIHdlIGRvbid0IHdhbnQgdG8gY2xvc2UgaXQgYmVjYXVzZSBpdCBoYXMKKyAg
ICAgICAgLy8gYmVlbiBjcmVhdGVkIGJ5IGluaXRpYWxpemluZyBsaWJkaXNwYXRjaCBmcm9tIGEg
Z2xvYmFsIGluaXRpYWxpemVyLiBTZWUgPHJkYXI6Ly9wcm9ibGVtLzk4Mjg0NzY+IGZvciBtb3Jl
IGRldGFpbHMuCisgICAgICAgIHN0cnVjdCB0aW1lc3BlYyB0aW1lU3BlYyA9IHsgMCwgMCB9Owor
ICAgICAgICBpZiAoIWtldmVudChmZCwgMCwgMCwgMCwgMCwgJnRpbWVTcGVjKSkKKyAgICAgICAg
ICAgIGNvbnRpbnVlOworCisgICAgICAgIGNsb3NlKGZkKTsKKyAgICB9Cit9CisKK3R5cGVkZWYg
aW50ICgqV2ViS2l0TWFpbkZ1bmN0aW9uKShpbnQgYXJnYywgY2hhcioqIGFyZ3YpOworCitzdGF0
aWMgV2ViS2l0TWFpbkZ1bmN0aW9uIGdldEJvb3RzdHJhcE1haW5GdW5jdGlvbihpbnQgYXJnYywg
Y2hhcioqIGFyZ3YsIGNvbnN0IGNoYXIqIHByb2Nlc3NNYWluTmFtZSkKK3sKKyAgICBjbG9zZVVu
dXNlZEZpbGVEZXNjcmlwdG9ycygpOworCisgICAgaWYgKGFyZ2MgPCAyKQorICAgICAgICBleGl0
KEVYSVRfRkFJTFVSRSk7CisKKyAgICBzdGF0aWMgdm9pZCogZnJhbWV3b3JrTGlicmFyeSA9IGRs
b3Blbihhcmd2WzFdLCBSVExEX05PVyk7CisgICAgaWYgKCFmcmFtZXdvcmtMaWJyYXJ5KSB7Cisg
ICAgICAgIGZwcmludGYoc3RkZXJyLCAiVW5hYmxlIHRvIGxvYWQgV2ViS2l0Mi5mcmFtZXdvcms6
ICVzXG4iLCBkbGVycm9yKCkpOworICAgICAgICBleGl0KEVYSVRfRkFJTFVSRSk7CisgICAgfQor
CisgICAgV2ViS2l0TWFpbkZ1bmN0aW9uIHdlYktpdE1haW4gPSByZWludGVycHJldF9jYXN0PFdl
YktpdE1haW5GdW5jdGlvbj4oZGxzeW0oZnJhbWV3b3JrTGlicmFyeSwgcHJvY2Vzc01haW5OYW1l
KSk7CisgICAgaWYgKCF3ZWJLaXRNYWluKSB7CisgICAgICAgIGZwcmludGYoc3RkZXJyLCAiVW5h
YmxlIHRvIGZpbmQgZW50cnkgcG9pbnQgJyVzJyBpbiBXZWJLaXQyLmZyYW1ld29yazogJXNcbiIs
IHByb2Nlc3NNYWluTmFtZSwgZGxlcnJvcigpKTsKKyAgICAgICAgZXhpdChFWElUX0ZBSUxVUkUp
OworICAgIH0KKworICAgIHJldHVybiB3ZWJLaXRNYWluOworfQorCisjZW5kaWYgLy8gQ2hpbGRQ
cm9jZXNzTWFpbkJvb3RzdHJhcHBlcl9oCkluZGV4OiBTb3VyY2UvV2ViS2l0Mi9TaGFyZWQvbWFj
L0NoaWxkUHJvY2Vzc01haW4uaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0Mi9TaGFyZWQv
bWFjL0NoaWxkUHJvY2Vzc01haW4uaAkocmV2aXNpb24gMTQwOTEyKQorKysgU291cmNlL1dlYktp
dDIvU2hhcmVkL21hYy9DaGlsZFByb2Nlc3NNYWluLmgJKHdvcmtpbmcgY29weSkKQEAgLTEsMTAx
ICswLDAgQEAKLS8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMTMgQXBwbGUgSW5jLiBBbGwgcmlnaHRz
IHJlc2VydmVkLgotICoKLSAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBi
aW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAotICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0
dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCi0gKiBhcmUgbWV0Ogot
ICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92
ZSBjb3B5cmlnaHQKLSAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRo
ZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KLSAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkg
Zm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICBub3RpY2UsIHRo
aXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhl
Ci0gKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0
aCB0aGUgZGlzdHJpYnV0aW9uLgotICoKLSAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkg
QVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKLSAqIEFORCBBTlkgRVhQ
UkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRP
LAotICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5F
U1MgRk9SIEEgUEFSVElDVUxBUgotICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZF
TlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCi0gKiBCRSBMSUFCTEUgRk9S
IEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9S
Ci0gKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRP
LCBQUk9DVVJFTUVOVCBPRgotICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBP
RiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCi0gKiBJTlRFUlJVUFRJT04pIEhP
V0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgot
ICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdF
TkNFIE9SIE9USEVSV0lTRSkKLSAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBP
RiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKLSAqIFRIRSBQT1NTSUJJTElUWSBP
RiBTVUNIIERBTUFHRS4KLSAqLwotCi0jaWZuZGVmIENoaWxkUHJvY2Vzc01haW5faAotI2RlZmlu
ZSBDaGlsZFByb2Nlc3NNYWluX2gKLQotI2ltcG9ydCAiQ2hpbGRQcm9jZXNzLmgiCi0jaW1wb3J0
ICJDb21tYW5kTGluZS5oIgotI2ltcG9ydCAiV2ViS2l0MkluaXRpYWxpemUuaCIKLSNpbXBvcnQg
PFdlYkNvcmUvUnVuTG9vcC5oPgotI2ltcG9ydCA8V2ViS2l0U3lzdGVtSW50ZXJmYWNlLmg+Ci0j
aW1wb3J0IDxzeXNleGl0cy5oPgotCi1uYW1lc3BhY2UgV2ViS2l0IHsKLQotY2xhc3MgQ2hpbGRQ
cm9jZXNzTWFpbkRlbGVnYXRlIHsKLXB1YmxpYzoKLSAgICBDaGlsZFByb2Nlc3NNYWluRGVsZWdh
dGUoY29uc3QgQ29tbWFuZExpbmUmIGNvbW1hbmRMaW5lKQotICAgICAgICA6IG1fY29tbWFuZExp
bmUoY29tbWFuZExpbmUpCi0gICAgewotICAgIH0KLQotICAgIHZpcnR1YWwgfkNoaWxkUHJvY2Vz
c01haW5EZWxlZ2F0ZSgpOwotCi0gICAgdmlydHVhbCB2b2lkIGluc3RhbGxTaWduYWxIYW5kbGVy
cygpOwotICAgIHZpcnR1YWwgdm9pZCBkb1ByZUluaXRpYWxpemF0aW9uV29yaygpOwotCi0gICAg
dmlydHVhbCBib29sIGdldENvbm5lY3Rpb25JZGVudGlmaWVyKENvcmVJUEM6OkNvbm5lY3Rpb246
OklkZW50aWZpZXImIGlkZW50aWZpZXIpOwotICAgIHZpcnR1YWwgYm9vbCBnZXRDbGllbnRJZGVu
dGlmaWVyKFN0cmluZyYgY2xpZW50SWRlbnRpZmllcik7Ci0gICAgdmlydHVhbCBib29sIGdldENs
aWVudFByb2Nlc3NOYW1lKFN0cmluZyYgY2xpZW50UHJvY2Vzc05hbWUpOwotCi0gICAgdmlydHVh
bCB2b2lkIGRvUG9zdFJ1bldvcmsoKTsKLQotcHJvdGVjdGVkOgotICAgIGNvbnN0IENvbW1hbmRM
aW5lJiBtX2NvbW1hbmRMaW5lOwotfTsKLQotdGVtcGxhdGU8dHlwZW5hbWUgQ2hpbGRQcm9jZXNz
VHlwZSwgdHlwZW5hbWUgQ2hpbGRQcm9jZXNzTWFpbkRlbGVnYXRlVHlwZT4KLWludCBDaGlsZFBy
b2Nlc3NNYWluKGNvbnN0IENvbW1hbmRMaW5lJiBjb21tYW5kTGluZSkKLXsKLSAgICBDaGlsZFBy
b2Nlc3NNYWluRGVsZWdhdGVUeXBlIGRlbGVnYXRlKGNvbW1hbmRMaW5lKTsKLQotICAgIEBhdXRv
cmVsZWFzZXBvb2wgewotICAgICAgICBkZWxlZ2F0ZS5pbnN0YWxsU2lnbmFsSGFuZGxlcnMoKTsK
LSAgICAgICAgZGVsZWdhdGUuZG9QcmVJbml0aWFsaXphdGlvbldvcmsoKTsKLQotICAgICAgICBJ
bml0aWFsaXplV2ViS2l0MigpOwotCi0gICAgICAgIENoaWxkUHJvY2Vzc0luaXRpYWxpemF0aW9u
UGFyYW1ldGVycyBwYXJhbWV0ZXJzOwotICAgICAgICBpZiAoIWRlbGVnYXRlLmdldENvbm5lY3Rp
b25JZGVudGlmaWVyKHBhcmFtZXRlcnMuY29ubmVjdGlvbklkZW50aWZpZXIpKQotICAgICAgICAg
ICAgcmV0dXJuIEVYSVRfRkFJTFVSRTsKLQotICAgICAgICBpZiAoIWRlbGVnYXRlLmdldENsaWVu
dElkZW50aWZpZXIocGFyYW1ldGVycy5jbGllbnRJZGVudGlmaWVyKSkKLSAgICAgICAgICAgIHJl
dHVybiBFWElUX0ZBSUxVUkU7Ci0KLSAgICAgICAgaWYgKCFkZWxlZ2F0ZS5nZXRDbGllbnRQcm9j
ZXNzTmFtZShwYXJhbWV0ZXJzLnVpUHJvY2Vzc05hbWUpKQotICAgICAgICAgICAgcmV0dXJuIEVY
SVRfRkFJTFVSRTsKLQotICAgICAgICAvLyBGSVhNRTogVGhpcyBzaG91bGQgYmUgbW92ZWQgdG8g
Q2hpbGRQcm9jZXNzTWFjIGlmIGl0IGlzIHN0aWxsIG5lY2Vzc2FyeS4KLSAgICAgICAgU3RyaW5n
IGxvY2FsaXphdGlvbiA9IGNvbW1hbmRMaW5lWyJsb2NhbGl6YXRpb24iXTsKLSAgICAgICAgUmV0
YWluUHRyPENGU3RyaW5nUmVmPiBjZkxvY2FsaXphdGlvbihBZG9wdENGLCBDRlN0cmluZ0NyZWF0
ZVdpdGhDaGFyYWN0ZXJzKDAsIHJlaW50ZXJwcmV0X2Nhc3Q8Y29uc3QgVW5pQ2hhcio+KGxvY2Fs
aXphdGlvbi5jaGFyYWN0ZXJzKCkpLCBsb2NhbGl6YXRpb24ubGVuZ3RoKCkpKTsKLSAgICAgICAg
aWYgKGNmTG9jYWxpemF0aW9uKQotICAgICAgICAgICAgV0tTZXREZWZhdWx0TG9jYWxpemF0aW9u
KGNmTG9jYWxpemF0aW9uLmdldCgpKTsKLQotICAgICAgICBDaGlsZFByb2Nlc3NUeXBlOjpzaGFy
ZWQoKS5pbml0aWFsaXplKHBhcmFtZXRlcnMpOwotICAgIH0KLQotICAgIFdlYkNvcmU6OlJ1bkxv
b3A6OnJ1bigpOwotCi0gICAgQGF1dG9yZWxlYXNlcG9vbCB7Ci0gICAgICAgIGRlbGVnYXRlLmRv
UG9zdFJ1bldvcmsoKTsKLSAgICB9Ci0KLSAgICByZXR1cm4gMDsKLX0KLQotfSAvLyBuYW1lc3Bh
Y2UgV2ViS2l0Ci0KLSNlbmRpZiAvLyBDaGlsZFByb2Nlc3NNYWluX2gKSW5kZXg6IFNvdXJjZS9X
ZWJLaXQyL1NoYXJlZC9tYWMvQ2hpbGRQcm9jZXNzTWFpbi5tbQo9PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3Vy
Y2UvV2ViS2l0Mi9TaGFyZWQvbWFjL0NoaWxkUHJvY2Vzc01haW4ubW0JKHJldmlzaW9uIDE0MDkx
MikKKysrIFNvdXJjZS9XZWJLaXQyL1NoYXJlZC9tYWMvQ2hpbGRQcm9jZXNzTWFpbi5tbQkod29y
a2luZyBjb3B5KQpAQCAtMSw5NSArMCwwIEBACi0vKgotICogQ29weXJpZ2h0IChDKSAyMDEzIEFw
cGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KLSAqCi0gKiBSZWRpc3RyaWJ1dGlvbiBhbmQg
dXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKLSAqIG1vZGlm
aWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0
aW9ucwotICogYXJlIG1ldDoKLSAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBt
dXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICBub3RpY2UsIHRoaXMgbGlzdCBv
ZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCi0gKiAyLiBSZWRpc3Ry
aWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdo
dAotICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2lu
ZyBkaXNjbGFpbWVyIGluIHRoZQotICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0
ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KLSAqCi0gKiBUSElTIFNPRlRX
QVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJ
UycnCi0gKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcs
IEJVVCBOT1QgTElNSVRFRCBUTywKLSAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hB
TlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKLSAqIFBVUlBPU0UgQVJFIERJ
U0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9S
UwotICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BF
Q0lBTCwgRVhFTVBMQVJZLCBPUgotICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcs
IEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKLSAqIFNVQlNUSVRVVEUgR09PRFMg
T1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUwot
ICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFC
SUxJVFksIFdIRVRIRVIgSU4KLSAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JU
IChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCi0gKiBBUklTSU5HIElOIEFOWSBX
QVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCi0g
KiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCi0gKi8KLQotI2luY2x1ZGUgImNvbmZp
Zy5oIgotI2luY2x1ZGUgIkNoaWxkUHJvY2Vzc01haW4uaCIKLQotI2ltcG9ydCA8bWFjaC9tYWNo
X2Vycm9yLmg+Ci0jaW1wb3J0IDxzZXJ2ZXJzL2Jvb3RzdHJhcC5oPgotI2ltcG9ydCA8c3RkaW8u
aD4KLSNpbXBvcnQgPHd0Zi9SZXRhaW5QdHIuaD4KLSNpbXBvcnQgPHd0Zi90ZXh0L0NTdHJpbmcu
aD4KLQotI2RlZmluZSBTSE9XX0NSQVNIX1JFUE9SVEVSIDEKLQotbmFtZXNwYWNlIFdlYktpdCB7
Ci0KLUNoaWxkUHJvY2Vzc01haW5EZWxlZ2F0ZTo6fkNoaWxkUHJvY2Vzc01haW5EZWxlZ2F0ZSgp
Ci17Ci19Ci0KLXZvaWQgQ2hpbGRQcm9jZXNzTWFpbkRlbGVnYXRlOjppbnN0YWxsU2lnbmFsSGFu
ZGxlcnMoKQotewotI2lmICFTSE9XX0NSQVNIX1JFUE9SVEVSCi0gICAgLy8gSW5zdGFsbHMgc2ln
bmFsIGhhbmRsZXJzIHRoYXQgZXhpdCBvbiBhIGNyYXNoIHNvIHRoYXQgQ3Jhc2hSZXBvcnRlciBk
b2VzIG5vdCBzaG93IHVwLgotICAgIHNpZ25hbChTSUdJTEwsIF9leGl0KTsKLSAgICBzaWduYWwo
U0lHRlBFLCBfZXhpdCk7Ci0gICAgc2lnbmFsKFNJR0JVUywgX2V4aXQpOwotICAgIHNpZ25hbChT
SUdTRUdWLCBfZXhpdCk7Ci0jZW5kaWYKLX0KLQotdm9pZCBDaGlsZFByb2Nlc3NNYWluRGVsZWdh
dGU6OmRvUHJlSW5pdGlhbGl6YXRpb25Xb3JrKCkKLXsKLX0KLQotYm9vbCBDaGlsZFByb2Nlc3NN
YWluRGVsZWdhdGU6OmdldENvbm5lY3Rpb25JZGVudGlmaWVyKENvcmVJUEM6OkNvbm5lY3Rpb246
OklkZW50aWZpZXImIGlkZW50aWZpZXIpCi17Ci0gICAgU3RyaW5nIHNlcnZpY2VOYW1lID0gbV9j
b21tYW5kTGluZVsic2VydmljZW5hbWUiXTsKLSAgICBpZiAoc2VydmljZU5hbWUuaXNFbXB0eSgp
KQotICAgICAgICByZXR1cm4gZmFsc2U7Ci0gICAgCi0gICAgbWFjaF9wb3J0X3Qgc2VydmVyUG9y
dDsKLSAgICBrZXJuX3JldHVybl90IGtyID0gYm9vdHN0cmFwX2xvb2tfdXAoYm9vdHN0cmFwX3Bv
cnQsIHNlcnZpY2VOYW1lLnV0ZjgoKS5kYXRhKCksICZzZXJ2ZXJQb3J0KTsKLSAgICBpZiAoa3Ip
IHsKLSAgICAgICAgV1RGTG9nQWx3YXlzKCJib290c3RyYXBfbG9va191cCByZXN1bHQ6ICVzICgl
eClcbiIsIG1hY2hfZXJyb3Jfc3RyaW5nKGtyKSwga3IpOwotICAgICAgICByZXR1cm4gZmFsc2U7
Ci0gICAgfQotCi0gICAgaWRlbnRpZmllciA9IHNlcnZlclBvcnQ7Ci0gICAgcmV0dXJuIHRydWU7
Ci19Ci0KLWJvb2wgQ2hpbGRQcm9jZXNzTWFpbkRlbGVnYXRlOjpnZXRDbGllbnRJZGVudGlmaWVy
KFN0cmluZyYgY2xpZW50SWRlbnRpZmllcikKLXsKLSAgICBjbGllbnRJZGVudGlmaWVyID0gbV9j
b21tYW5kTGluZVsiY2xpZW50LWlkZW50aWZpZXIiXTsKLSAgICBpZiAoY2xpZW50SWRlbnRpZmll
ci5pc0VtcHR5KCkpCi0gICAgICAgIHJldHVybiBmYWxzZTsKLSAgICByZXR1cm4gdHJ1ZTsKLX0K
LQotYm9vbCBDaGlsZFByb2Nlc3NNYWluRGVsZWdhdGU6OmdldENsaWVudFByb2Nlc3NOYW1lKFN0
cmluZyYgY2xpZW50UHJvY2Vzc05hbWUpCi17Ci0gICAgY2xpZW50UHJvY2Vzc05hbWUgPSBtX2Nv
bW1hbmRMaW5lWyJ1aS1wcm9jZXNzLW5hbWUiXTsKLSAgICBpZiAoY2xpZW50UHJvY2Vzc05hbWUu
aXNFbXB0eSgpKQotICAgICAgICByZXR1cm4gZmFsc2U7Ci0gICAgcmV0dXJuIHRydWU7Ci19Ci0K
LXZvaWQgQ2hpbGRQcm9jZXNzTWFpbkRlbGVnYXRlOjpkb1Bvc3RSdW5Xb3JrKCkKLXsKLX0KLQot
fSAvLyBuYW1lc3BhY2UgV2ViS2l0CkluZGV4OiBTb3VyY2UvV2ViS2l0Mi9TaGFyZWRXb3JrZXJQ
cm9jZXNzL0luZm8ucGxpc3QKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdDIvU2hhcmVkV29y
a2VyUHJvY2Vzcy9JbmZvLnBsaXN0CShyZXZpc2lvbiAxNDA5MTIpCisrKyBTb3VyY2UvV2ViS2l0
Mi9TaGFyZWRXb3JrZXJQcm9jZXNzL0luZm8ucGxpc3QJKHdvcmtpbmcgY29weSkKQEAgLTEsMzAg
KzAsMCBAQAotPD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiPz4KLTwhRE9DVFlQ
RSBwbGlzdCBQVUJMSUMgIi0vL0FwcGxlLy9EVEQgUExJU1QgMS4wLy9FTiIgImh0dHA6Ly93d3cu
YXBwbGUuY29tL0RURHMvUHJvcGVydHlMaXN0LTEuMC5kdGQiPgotPHBsaXN0IHZlcnNpb249IjEu
MCI+Ci08ZGljdD4KLQk8a2V5PkNGQnVuZGxlRXhlY3V0YWJsZTwva2V5PgotCTxzdHJpbmc+JHtQ
Uk9EVUNUX05BTUV9PC9zdHJpbmc+Ci0JPGtleT5DRkJ1bmRsZUdldEluZm9TdHJpbmc8L2tleT4K
LQk8c3RyaW5nPiR7QlVORExFX1ZFUlNJT059LCBDb3B5cmlnaHQgMjAwMy0yMDEzIEFwcGxlIElu
Yy48L3N0cmluZz4KLQk8a2V5PkNGQnVuZGxlSWRlbnRpZmllcjwva2V5PgotCTxzdHJpbmc+Y29t
LmFwcGxlLldlYktpdC4ke1BST0RVQ1RfTkFNRX08L3N0cmluZz4KLQk8a2V5PkNGQnVuZGxlSW5m
b0RpY3Rpb25hcnlWZXJzaW9uPC9rZXk+Ci0JPHN0cmluZz42LjA8L3N0cmluZz4KLQk8a2V5PkNG
QnVuZGxlTmFtZTwva2V5PgotCTxzdHJpbmc+JHtQUk9EVUNUX05BTUV9PC9zdHJpbmc+Ci0JPGtl
eT5DRkJ1bmRsZVBhY2thZ2VUeXBlPC9rZXk+Ci0JPHN0cmluZz5BUFBMPC9zdHJpbmc+Ci0JPGtl
eT5DRkJ1bmRsZVNob3J0VmVyc2lvblN0cmluZzwva2V5PgotCTxzdHJpbmc+JHtTSE9SVF9WRVJT
SU9OX1NUUklOR308L3N0cmluZz4KLQk8a2V5PkNGQnVuZGxlVmVyc2lvbjwva2V5PgotCTxzdHJp
bmc+JHtCVU5ETEVfVkVSU0lPTn08L3N0cmluZz4KLQk8a2V5PkxTRmlsZVF1YXJhbnRpbmVFbmFi
bGVkPC9rZXk+Ci0JPHRydWUvPgotCTxrZXk+TFNNaW5pbXVtU3lzdGVtVmVyc2lvbjwva2V5Pgot
CTxzdHJpbmc+JHtNQUNPU1hfREVQTE9ZTUVOVF9UQVJHRVR9PC9zdHJpbmc+Ci0JPGtleT5MU1VJ
RWxlbWVudDwva2V5PgotCTx0cnVlLz4KLQk8a2V5Pk5TUHJpbmNpcGFsQ2xhc3M8L2tleT4KLQk8
c3RyaW5nPk5TQXBwbGljYXRpb248L3N0cmluZz4KLTwvZGljdD4KLTwvcGxpc3Q+CkluZGV4OiBT
b3VyY2UvV2ViS2l0Mi9TaGFyZWRXb3JrZXJQcm9jZXNzL1NoYXJlZFdvcmtlclByb2Nlc3NNYWlu
LmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdDIvU2hhcmVkV29ya2VyUHJvY2Vzcy9TaGFy
ZWRXb3JrZXJQcm9jZXNzTWFpbi5oCShyZXZpc2lvbiAxNDA5MTIpCisrKyBTb3VyY2UvV2ViS2l0
Mi9TaGFyZWRXb3JrZXJQcm9jZXNzL1NoYXJlZFdvcmtlclByb2Nlc3NNYWluLmgJKHdvcmtpbmcg
Y29weSkKQEAgLTEsMzcgKzAsMCBAQAotLyoKLSAqIENvcHlyaWdodCAoQykgMjAxMCwgMjAxMiBB
cHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi0gKgotICogUmVkaXN0cmlidXRpb24gYW5k
IHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0Ci0gKiBtb2Rp
ZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRp
dGlvbnMKLSAqIGFyZSBtZXQ6Ci0gKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUg
bXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAotICogICAgbm90aWNlLCB0aGlzIGxpc3Qg
b2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgotICogMi4gUmVkaXN0
cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmln
aHQKLSAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dp
bmcgZGlzY2xhaW1lciBpbiB0aGUKLSAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1h
dGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCi0gKgotICogVEhJUyBTT0ZU
V0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMg
SVMnJwotICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5H
LCBCVVQgTk9UIExJTUlURUQgVE8sCi0gKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNI
QU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCi0gKiBQVVJQT1NFIEFSRSBE
SVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRP
UlMKLSAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQ
RUNJQUwsIEVYRU1QTEFSWSwgT1IKLSAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5H
LCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCi0gKiBTVUJTVElUVVRFIEdPT0RT
IE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MK
LSAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElB
QklMSVRZLCBXSEVUSEVSIElOCi0gKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9S
VCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQotICogQVJJU0lORyBJTiBBTlkg
V0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgot
ICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgotICovCi0KLSNpZm5kZWYgU2hhcmVk
V29ya2VyUHJvY2Vzc01haW5faAotI2RlZmluZSBTaGFyZWRXb3JrZXJQcm9jZXNzTWFpbl9oCi0K
LW5hbWVzcGFjZSBXZWJLaXQgewotICAgIAotY2xhc3MgQ29tbWFuZExpbmU7Ci0KLWludCBTaGFy
ZWRXb3JrZXJQcm9jZXNzTWFpbihjb25zdCBDb21tYW5kTGluZSYpOwotICAgIAotfSAvLyBuYW1l
c3BhY2UgV2ViS2l0Ci0KLSNlbmRpZiAvLyBTaGFyZWRXb3JrZXJQcm9jZXNzTWFpbl9oCkluZGV4
OiBTb3VyY2UvV2ViS2l0Mi9TaGFyZWRXb3JrZXJQcm9jZXNzL0VudHJ5UG9pbnQvbWFjL0xlZ2Fj
eVByb2Nlc3MvSW5mby5wbGlzdAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0Mi9TaGFyZWRX
b3JrZXJQcm9jZXNzL0VudHJ5UG9pbnQvbWFjL0xlZ2FjeVByb2Nlc3MvSW5mby5wbGlzdAkocmV2
aXNpb24gMTQwODc3KQkoZnJvbSBTb3VyY2UvV2ViS2l0Mi9TaGFyZWRXb3JrZXJQcm9jZXNzL0lu
Zm8ucGxpc3Q6MTQwODc3KQorKysgU291cmNlL1dlYktpdDIvU2hhcmVkV29ya2VyUHJvY2Vzcy9F
bnRyeVBvaW50L21hYy9MZWdhY3lQcm9jZXNzL0luZm8ucGxpc3QJKHdvcmtpbmcgY29weSkKQEAg
LTAsMCArMSwzMCBAQAorPD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiPz4KKzwh
RE9DVFlQRSBwbGlzdCBQVUJMSUMgIi0vL0FwcGxlLy9EVEQgUExJU1QgMS4wLy9FTiIgImh0dHA6
Ly93d3cuYXBwbGUuY29tL0RURHMvUHJvcGVydHlMaXN0LTEuMC5kdGQiPgorPHBsaXN0IHZlcnNp
b249IjEuMCI+Cis8ZGljdD4KKwk8a2V5PkNGQnVuZGxlRXhlY3V0YWJsZTwva2V5PgorCTxzdHJp
bmc+JHtQUk9EVUNUX05BTUV9PC9zdHJpbmc+CisJPGtleT5DRkJ1bmRsZUdldEluZm9TdHJpbmc8
L2tleT4KKwk8c3RyaW5nPiR7QlVORExFX1ZFUlNJT059LCBDb3B5cmlnaHQgMjAwMy0yMDEzIEFw
cGxlIEluYy48L3N0cmluZz4KKwk8a2V5PkNGQnVuZGxlSWRlbnRpZmllcjwva2V5PgorCTxzdHJp
bmc+Y29tLmFwcGxlLldlYktpdC4ke1BST0RVQ1RfTkFNRX08L3N0cmluZz4KKwk8a2V5PkNGQnVu
ZGxlSW5mb0RpY3Rpb25hcnlWZXJzaW9uPC9rZXk+CisJPHN0cmluZz42LjA8L3N0cmluZz4KKwk8
a2V5PkNGQnVuZGxlTmFtZTwva2V5PgorCTxzdHJpbmc+JHtQUk9EVUNUX05BTUV9PC9zdHJpbmc+
CisJPGtleT5DRkJ1bmRsZVBhY2thZ2VUeXBlPC9rZXk+CisJPHN0cmluZz5BUFBMPC9zdHJpbmc+
CisJPGtleT5DRkJ1bmRsZVNob3J0VmVyc2lvblN0cmluZzwva2V5PgorCTxzdHJpbmc+JHtTSE9S
VF9WRVJTSU9OX1NUUklOR308L3N0cmluZz4KKwk8a2V5PkNGQnVuZGxlVmVyc2lvbjwva2V5Pgor
CTxzdHJpbmc+JHtCVU5ETEVfVkVSU0lPTn08L3N0cmluZz4KKwk8a2V5PkxTRmlsZVF1YXJhbnRp
bmVFbmFibGVkPC9rZXk+CisJPHRydWUvPgorCTxrZXk+TFNNaW5pbXVtU3lzdGVtVmVyc2lvbjwv
a2V5PgorCTxzdHJpbmc+JHtNQUNPU1hfREVQTE9ZTUVOVF9UQVJHRVR9PC9zdHJpbmc+CisJPGtl
eT5MU1VJRWxlbWVudDwva2V5PgorCTx0cnVlLz4KKwk8a2V5Pk5TUHJpbmNpcGFsQ2xhc3M8L2tl
eT4KKwk8c3RyaW5nPk5TQXBwbGljYXRpb248L3N0cmluZz4KKzwvZGljdD4KKzwvcGxpc3Q+Cklu
ZGV4OiBTb3VyY2UvV2ViS2l0Mi9TaGFyZWRXb3JrZXJQcm9jZXNzL0VudHJ5UG9pbnQvbWFjL0xl
Z2FjeVByb2Nlc3MvU2hhcmVkV29ya2VyUHJvY2Vzc01haW4ubW0KPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291
cmNlL1dlYktpdDIvU2hhcmVkV29ya2VyUHJvY2Vzcy9FbnRyeVBvaW50L21hYy9MZWdhY3lQcm9j
ZXNzL1NoYXJlZFdvcmtlclByb2Nlc3NNYWluLm1tCShyZXZpc2lvbiAxNDA4NzcpCShmcm9tIFNv
dXJjZS9XZWJLaXQyL1NoYXJlZFdvcmtlclByb2Nlc3MvbWFjL1NoYXJlZFdvcmtlclByb2Nlc3NN
YWluTWFjLm1tOjE0MDg3NykKKysrIFNvdXJjZS9XZWJLaXQyL1NoYXJlZFdvcmtlclByb2Nlc3Mv
RW50cnlQb2ludC9tYWMvTGVnYWN5UHJvY2Vzcy9TaGFyZWRXb3JrZXJQcm9jZXNzTWFpbi5tbQko
d29ya2luZyBjb3B5KQpAQCAtMCwwICsxLDQzIEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDEw
LCAyMDExLCAyMDEyIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRp
c3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdp
dGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBm
b2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBv
ZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3Rp
Y2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIu
CisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhl
IGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBh
bmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBh
bmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAq
CisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05U
UklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5U
SUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJB
TlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAq
IFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1Ig
SVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwg
SU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1B
R0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNV
QlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRT
OyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5Z
IFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElB
QklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBB
UklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJ
RiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKwor
I2ltcG9ydCAiY29uZmlnLmgiCisjaW1wb3J0ICJTaGFyZWRXb3JrZXJQcm9jZXNzTWFpbi5oIgor
CisjaWYgRU5BQkxFKFNIQVJFRF9XT1JLRVJfUFJPQ0VTUykKKworI2ltcG9ydCAiQ2hpbGRQcm9j
ZXNzTWFpbi5oIgorI2ltcG9ydCAiU2hhcmVkV29ya2VyUHJvY2Vzcy5oIgorCituYW1lc3BhY2Ug
V2ViS2l0IHsKKworaW50IFNoYXJlZFdvcmtlclByb2Nlc3NNYWluKGNvbnN0IENvbW1hbmRMaW5l
JiBjb21tYW5kTGluZSkKK3sKKyAgICByZXR1cm4gQ2hpbGRQcm9jZXNzTWFpbjxTaGFyZWRXb3Jr
ZXJQcm9jZXNzLCBDaGlsZFByb2Nlc3NNYWluRGVsZWdhdGU+KGNvbW1hbmRMaW5lKTsKK30KKwor
fSAvLyBuYW1lc3BhY2UgV2ViS2l0CisKKyNlbmRpZiAvLyBFTkFCTEUoU0hBUkVEX1dPUktFUl9Q
Uk9DRVNTKQpJbmRleDogU291cmNlL1dlYktpdDIvU2hhcmVkV29ya2VyUHJvY2Vzcy9FbnRyeVBv
aW50L21hYy9MZWdhY3lQcm9jZXNzL1NoYXJlZFdvcmtlclByb2Nlc3NNYWluLm1tCj09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT0KLS0tIFNvdXJjZS9XZWJLaXQyL1NoYXJlZFdvcmtlclByb2Nlc3MvRW50cnlQb2ludC9tYWMv
TGVnYWN5UHJvY2Vzcy9TaGFyZWRXb3JrZXJQcm9jZXNzTWFpbi5tbQkocmV2aXNpb24gMCkKKysr
IFNvdXJjZS9XZWJLaXQyL1NoYXJlZFdvcmtlclByb2Nlc3MvRW50cnlQb2ludC9tYWMvTGVnYWN5
UHJvY2Vzcy9TaGFyZWRXb3JrZXJQcm9jZXNzTWFpbi5tbQkod29ya2luZyBjb3B5KQpAQCAtMSw1
ICsxLDUgQEAKIC8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMTAsIDIwMTEsIDIwMTIgQXBwbGUgSW5j
LiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICogQ29weXJpZ2h0IChDKSAyMDEwLCAyMDExLCAyMDEy
LCAyMDEzIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KICAqCiAgKiBSZWRpc3RyaWJ1
dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQK
ICAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dp
bmcgY29uZGl0aW9ucwpAQCAtMjQsMjAgKzI0LDI0IEBACiAgKi8KIAogI2ltcG9ydCAiY29uZmln
LmgiCi0jaW1wb3J0ICJTaGFyZWRXb3JrZXJQcm9jZXNzTWFpbi5oIgogCiAjaWYgRU5BQkxFKFNI
QVJFRF9XT1JLRVJfUFJPQ0VTUykKIAogI2ltcG9ydCAiQ2hpbGRQcm9jZXNzTWFpbi5oIgogI2lt
cG9ydCAiU2hhcmVkV29ya2VyUHJvY2Vzcy5oIgorI2ltcG9ydCAiV0tCYXNlLmgiCiAKLW5hbWVz
cGFjZSBXZWJLaXQgewordXNpbmcgbmFtZXNwYWNlIFdlYktpdDsKIAotaW50IFNoYXJlZFdvcmtl
clByb2Nlc3NNYWluKGNvbnN0IENvbW1hbmRMaW5lJiBjb21tYW5kTGluZSkKK2V4dGVybiAiQyIg
V0tfRVhQT1JUIGludCBTaGFyZWRXb3JrZXJQcm9jZXNzTWFpbihpbnQgYXJnYywgY2hhcioqIGFy
Z3YpOworCitpbnQgU2hhcmVkV29ya2VyUHJvY2Vzc01haW4oaW50IGFyZ2MsIGNoYXIqKiBhcmd2
KQogeworICAgIENvbW1hbmRMaW5lIGNvbW1hbmRMaW5lOworICAgIGlmICghY29tbWFuZExpbmUu
cGFyc2UoYXJnYywgYXJndikpCisgICAgICAgIHJldHVybiBFWElUX0ZBSUxVUkU7CisKICAgICBy
ZXR1cm4gQ2hpbGRQcm9jZXNzTWFpbjxTaGFyZWRXb3JrZXJQcm9jZXNzLCBDaGlsZFByb2Nlc3NN
YWluRGVsZWdhdGU+KGNvbW1hbmRMaW5lKTsKIH0KIAotfSAvLyBuYW1lc3BhY2UgV2ViS2l0Ci0K
ICNlbmRpZiAvLyBFTkFCTEUoU0hBUkVEX1dPUktFUl9QUk9DRVNTKQpJbmRleDogU291cmNlL1dl
YktpdDIvU2hhcmVkV29ya2VyUHJvY2Vzcy9FbnRyeVBvaW50L21hYy9MZWdhY3lQcm9jZXNzL1No
YXJlZFdvcmtlclByb2Nlc3NNYWluQm9vdHN0cmFwcGVyLmNwcAo9PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3Vy
Y2UvV2ViS2l0Mi9TaGFyZWRXb3JrZXJQcm9jZXNzL0VudHJ5UG9pbnQvbWFjL0xlZ2FjeVByb2Nl
c3MvU2hhcmVkV29ya2VyUHJvY2Vzc01haW5Cb290c3RyYXBwZXIuY3BwCShyZXZpc2lvbiAwKQor
KysgU291cmNlL1dlYktpdDIvU2hhcmVkV29ya2VyUHJvY2Vzcy9FbnRyeVBvaW50L21hYy9MZWdh
Y3lQcm9jZXNzL1NoYXJlZFdvcmtlclByb2Nlc3NNYWluQm9vdHN0cmFwcGVyLmNwcAkocmV2aXNp
b24gMCkKQEAgLTAsMCArMSwzMiBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxMyBBcHBsZSBJ
bmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBp
biBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRp
b24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMK
KyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCBy
ZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29u
ZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRp
b25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAq
ICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlz
Y2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFs
cyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJ
UyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJwor
ICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQg
Tk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJ
TElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJ
TUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAq
IEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUws
IEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQg
Tk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNF
UlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElO
VEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZ
LCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5D
TFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9V
VCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhF
IFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpbmNsdWRlICJDaGlsZFByb2Nl
c3NNYWluQm9vdHN0cmFwcGVyLmgiCisKK2ludCBtYWluKGludCBhcmdjLCBjaGFyKiogYXJndikK
K3sKKyAgICBXZWJLaXRNYWluRnVuY3Rpb24gbWFpbkZ1bmN0aW9uID0gZ2V0Qm9vdHN0cmFwTWFp
bkZ1bmN0aW9uKGFyZ2MsIGFyZ3YsICJTaGFyZWRXb3JrZXJQcm9jZXNzTWFpbiIpOworICAgIHJl
dHVybiBtYWluRnVuY3Rpb24oYXJnYywgYXJndik7Cit9CkluZGV4OiBTb3VyY2UvV2ViS2l0Mi9T
aGFyZWRXb3JrZXJQcm9jZXNzL21hYy9TaGFyZWRXb3JrZXJQcm9jZXNzTWFpbk1hYy5tbQo9PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0Mi9TaGFyZWRXb3JrZXJQcm9jZXNzL21hYy9TaGFyZWRX
b3JrZXJQcm9jZXNzTWFpbk1hYy5tbQkocmV2aXNpb24gMTQwOTEyKQorKysgU291cmNlL1dlYktp
dDIvU2hhcmVkV29ya2VyUHJvY2Vzcy9tYWMvU2hhcmVkV29ya2VyUHJvY2Vzc01haW5NYWMubW0J
KHdvcmtpbmcgY29weSkKQEAgLTEsNDMgKzAsMCBAQAotLyoKLSAqIENvcHlyaWdodCAoQykgMjAx
MCwgMjAxMSwgMjAxMiBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi0gKgotICogUmVk
aXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3
aXRob3V0Ci0gKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUg
Zm9sbG93aW5nIGNvbmRpdGlvbnMKLSAqIGFyZSBtZXQ6Ci0gKiAxLiBSZWRpc3RyaWJ1dGlvbnMg
b2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAotICogICAgbm90
aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVy
LgotICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRo
ZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMg
YW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKLSAqICAgIGRvY3VtZW50YXRpb24g
YW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCi0g
KgotICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09O
VFJJQlVUT1JTIGBgQVMgSVMnJwotICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFO
VElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCi0gKiBUSEUgSU1QTElFRCBXQVJS
QU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCi0g
KiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9S
IElUUyBDT05UUklCVVRPUlMKLSAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1Qs
IElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKLSAqIENPTlNFUVVFTlRJQUwgREFN
QUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCi0gKiBT
VUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklU
UzsgT1IgQlVTSU5FU1MKLSAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFO
WSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCi0gKiBDT05UUkFDVCwgU1RSSUNUIExJ
QUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQotICog
QVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4g
SUYgQURWSVNFRCBPRgotICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgotICovCi0K
LSNpbXBvcnQgImNvbmZpZy5oIgotI2ltcG9ydCAiU2hhcmVkV29ya2VyUHJvY2Vzc01haW4uaCIK
LQotI2lmIEVOQUJMRShTSEFSRURfV09SS0VSX1BST0NFU1MpCi0KLSNpbXBvcnQgIkNoaWxkUHJv
Y2Vzc01haW4uaCIKLSNpbXBvcnQgIlNoYXJlZFdvcmtlclByb2Nlc3MuaCIKLQotbmFtZXNwYWNl
IFdlYktpdCB7Ci0KLWludCBTaGFyZWRXb3JrZXJQcm9jZXNzTWFpbihjb25zdCBDb21tYW5kTGlu
ZSYgY29tbWFuZExpbmUpCi17Ci0gICAgcmV0dXJuIENoaWxkUHJvY2Vzc01haW48U2hhcmVkV29y
a2VyUHJvY2VzcywgQ2hpbGRQcm9jZXNzTWFpbkRlbGVnYXRlPihjb21tYW5kTGluZSk7Ci19Ci0K
LX0gLy8gbmFtZXNwYWNlIFdlYktpdAotCi0jZW5kaWYgLy8gRU5BQkxFKFNIQVJFRF9XT1JLRVJf
UFJPQ0VTUykKSW5kZXg6IFNvdXJjZS9XZWJLaXQyL1dlYktpdDIueGNvZGVwcm9qL3Byb2plY3Qu
cGJ4cHJvago9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0Mi9XZWJLaXQyLnhjb2RlcHJvai9w
cm9qZWN0LnBieHByb2oJKHJldmlzaW9uIDE0MDkxMikKKysrIFNvdXJjZS9XZWJLaXQyL1dlYktp
dDIueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagkod29ya2luZyBjb3B5KQpAQCAtNTksOCArNTks
NiBAQAogCQkxQTBFQzZDMDEyNEJCRDlCMDA3RUY0QTUgLyogUGx1Z2luUHJvY2Vzc01lc3NhZ2Vz
LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAxQTBFQzZC
RTEyNEJCRDlCMDA3RUY0QTUgLyogUGx1Z2luUHJvY2Vzc01lc3NhZ2VzLmggKi87IH07CiAJCTFB
MEVDNzVFMTI0QkM3QjIwMDdFRjRBNSAvKiBQbHVnaW5Qcm9jZXNzUHJveHkuaCBpbiBIZWFkZXJz
ICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDFBMEVDNzVDMTI0QkM3QjIwMDdF
RjRBNSAvKiBQbHVnaW5Qcm9jZXNzUHJveHkuaCAqLzsgfTsKIAkJMUEwRUM3NUYxMjRCQzdCMjAw
N0VGNEE1IC8qIFBsdWdpblByb2Nlc3NQcm94eS5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQ
QlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAxQTBFQzc1RDEyNEJDN0IyMDA3RUY0QTUgLyogUGx1Z2lu
UHJvY2Vzc1Byb3h5LmNwcCAqLzsgfTsKLQkJMUEwRUM3RkIxMjRCRDNCNjAwN0VGNEE1IC8qIFBs
dWdpblByb2Nlc3NNYWluLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZp
bGVSZWYgPSAxQTBFQzdGQTEyNEJEM0I2MDA3RUY0QTUgLyogUGx1Z2luUHJvY2Vzc01haW4uaCAq
LzsgfTsKLQkJMUEwRUM4MDMxMjRCRDQxRTAwN0VGNEE1IC8qIFBsdWdpblByb2Nlc3NNYWluTWFj
Lm1tIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMUEwRUM4
MDIxMjRCRDQxRTAwN0VGNEE1IC8qIFBsdWdpblByb2Nlc3NNYWluTWFjLm1tICovOyB9OwogCQkx
QTBFQzkwNjEyNEMwQUI4MDA3RUY0QTUgLyogUGx1Z2luUHJvY2Vzc0Nvbm5lY3Rpb24uaCBpbiBI
ZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDFBMEVDOTA0MTI0QzBB
QjgwMDdFRjRBNSAvKiBQbHVnaW5Qcm9jZXNzQ29ubmVjdGlvbi5oICovOyB9OwogCQkxQTBFQzkw
NzEyNEMwQUI4MDA3RUY0QTUgLyogUGx1Z2luUHJvY2Vzc0Nvbm5lY3Rpb24uY3BwIGluIFNvdXJj
ZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMUEwRUM5MDUxMjRDMEFCODAw
N0VGNEE1IC8qIFBsdWdpblByb2Nlc3NDb25uZWN0aW9uLmNwcCAqLzsgfTsKIAkJMUEwRUM5MEYx
MjRDMEFGNTAwN0VGNEE1IC8qIFBsdWdpblByb2Nlc3NDb25uZWN0aW9uTWFuYWdlci5oIGluIEhl
YWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMUEwRUM5MEQxMjRDMEFG
NTAwN0VGNEE1IC8qIFBsdWdpblByb2Nlc3NDb25uZWN0aW9uTWFuYWdlci5oICovOyB9OwpAQCAt
MTU3LDEwICsxNTUsNiBAQAogCQkxQTY0MjkyRDEyREU1Rjk4MDBDQUFFMkMgLyogQmFja2luZ1N0
b3JlTWFjLm1tIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0g
MUE2NDI5MkMxMkRFNUY5ODAwQ0FBRTJDIC8qIEJhY2tpbmdTdG9yZU1hYy5tbSAqLzsgfTsKIAkJ
MUE2RjlGOTAxMUUxM0VGQzAwREIxMzcxIC8qIENvbW1hbmRMaW5lLmggaW4gSGVhZGVycyAqLyA9
IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAxQTZGOUY4RTExRTEzRUZDMDBEQjEzNzEg
LyogQ29tbWFuZExpbmUuaCAqLzsgfTsKIAkJMUE2RjlGQjcxMUUxNDA4NTAwREIxMzcxIC8qIENv
bW1hbmRMaW5lTWFjLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmls
ZVJlZiA9IDFBNkY5RkI2MTFFMTQwODUwMERCMTM3MSAvKiBDb21tYW5kTGluZU1hYy5jcHAgKi87
IH07Ci0JCTFBNkZBMDFFMTFFMTUyNjMwMERCMTM3MSAvKiBXZWJQcm9jZXNzTWFpbk1hYy5tbSBp
biBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDFBNkZBMDFEMTFF
MTUyNjMwMERCMTM3MSAvKiBXZWJQcm9jZXNzTWFpbk1hYy5tbSAqLzsgfTsKLQkJMUE2RkEwMjAx
MUUxNTI4NzAwREIxMzcxIC8qIFdlYlByb2Nlc3NNYWluLmggaW4gSGVhZGVycyAqLyA9IHtpc2Eg
PSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAxQTZGQTAxRjExRTE1Mjg3MDBEQjEzNzEgLyogV2Vi
UHJvY2Vzc01haW4uaCAqLzsgfTsKLQkJMUE2RkEzMTExMUUzOTIxRTAwREIxMzcxIC8qIE1haW5N
YWNQcm9jZXNzLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJl
ZiA9IDFBNkZBMzEwMTFFMzkyMUUwMERCMTM3MSAvKiBNYWluTWFjUHJvY2Vzcy5jcHAgKi87IH07
Ci0JCTFBNkZBMzE2MTFFMzkyMzYwMERCMTM3MSAvKiBXZWJLaXRNYWluLmNwcCBpbiBTb3VyY2Vz
ICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDFBNkZBMzE1MTFFMzkyMzYwMERC
MTM3MSAvKiBXZWJLaXRNYWluLmNwcCAqLzsgfTsKIAkJMUE2RkI3QUUxMUU2NEI2ODAwREIxMzcx
IC8qIFBsdWdpblZpZXcuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBm
aWxlUmVmID0gMUE2RkI3QUMxMUU2NEI2ODAwREIxMzcxIC8qIFBsdWdpblZpZXcuY3BwICovOyB9
OwogCQkxQTZGQjdBRjExRTY0QjY4MDBEQjEzNzEgLyogUGx1Z2luVmlldy5oIGluIEhlYWRlcnMg
Ki8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMUE2RkI3QUQxMUU2NEI2ODAwREIx
MzcxIC8qIFBsdWdpblZpZXcuaCAqLzsgfTsKIAkJMUE2RkI3RDIxMUU2NTFFMjAwREIxMzcxIC8q
IFBsdWdpbi5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYg
PSAxQTZGQjdEMDExRTY1MUUyMDBEQjEzNzEgLyogUGx1Z2luLmNwcCAqLzsgfTsKQEAgLTM4OSw3
ICszODMsNiBAQAogCQk1MTBBRkZCOTE2NTQyMDQ4MDAxQkEwNUUgLyogV2ViUmVzb3VyY2VMb2Fk
ZXIuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNTEw
QUZGQjcxNjU0MjA0ODAwMUJBMDVFIC8qIFdlYlJlc291cmNlTG9hZGVyLmNwcCAqLzsgfTsKIAkJ
NTEwQUZGQkExNjU0MjA0ODAwMUJBMDVFIC8qIFdlYlJlc291cmNlTG9hZGVyLmggaW4gSGVhZGVy
cyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA1MTBBRkZCODE2NTQyMDQ4MDAx
QkEwNUUgLyogV2ViUmVzb3VyY2VMb2FkZXIuaCAqLzsgfTsKIAkJNTEwQ0M4NDkxNjEzQzg1QzAw
RDAzRUQzIC8qIE5ldHdvcmtQcm9jZXNzLmFwcCBpbiBDb3B5RmlsZXMgKi8gPSB7aXNhID0gUEJY
QnVpbGRGaWxlOyBmaWxlUmVmID0gNTEwQ0M4MEUxNjEzQzc5OTAwRDAzRUQzIC8qIE5ldHdvcmtQ
cm9jZXNzLmFwcCAqLzsgfTsKLQkJNTEwQ0M4NEYxNjEzQzkyQzAwRDAzRUQzIC8qIE1haW5NYWNQ
cm9jZXNzLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9
IDFBNkZBMzEwMTFFMzkyMUUwMERCMTM3MSAvKiBNYWluTWFjUHJvY2Vzcy5jcHAgKi87IH07CiAJ
CTUxMEZCQjlBMTI4OEM5NUUwMEFGRkRGNCAvKiBXZWJDb250ZXh0TWVudUl0ZW1EYXRhLmNwcCBp
biBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDUxMEZCQjk4MTI4
OEM5NUUwMEFGRkRGNCAvKiBXZWJDb250ZXh0TWVudUl0ZW1EYXRhLmNwcCAqLzsgfTsKIAkJNTEw
RkJCOUIxMjg4Qzk1RTAwQUZGREY0IC8qIFdlYkNvbnRleHRNZW51SXRlbURhdGEuaCBpbiBIZWFk
ZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDUxMEZCQjk5MTI4OEM5NUUw
MEFGRkRGNCAvKiBXZWJDb250ZXh0TWVudUl0ZW1EYXRhLmggKi87IH07CiAJCTUxMTBBRTBDMTMz
QzE2Q0IwMDcyNzE3QSAvKiBXS0ljb25EYXRhYmFzZS5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2Eg
PSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA1MTEwQUUwQTEzM0MxNkNCMDA3MjcxN0EgLyogV0tJ
Y29uRGF0YWJhc2UuY3BwICovOyB9OwpAQCAtNDU3LDEwICs0NTAsOCBAQAogCQk1MTZBNEE1RDEy
MEEyQ0NEMDBDMDVCN0YgLyogV2ViRXJyb3IuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1
aWxkRmlsZTsgZmlsZVJlZiA9IDUxNkE0QTVCMTIwQTJDQ0QwMEMwNUI3RiAvKiBXZWJFcnJvci5o
ICovOyB9OwogCQk1MTc1OTQ0QTE2NTcwODA0MDBERDc3MUQgLyogTmV0d29ya1Jlc291cmNlTG9h
ZGVyTWVzc2FnZVJlY2VpdmVyLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmls
ZTsgZmlsZVJlZiA9IDUxNzU5NDQ4MTY1NzA4MDQwMERENzcxRCAvKiBOZXR3b3JrUmVzb3VyY2VM
b2FkZXJNZXNzYWdlUmVjZWl2ZXIuY3BwICovOyB9OwogCQk1MTc1OTQ0QjE2NTcwODA0MDBERDc3
MUQgLyogTmV0d29ya1Jlc291cmNlTG9hZGVyTWVzc2FnZXMuaCBpbiBIZWFkZXJzICovID0ge2lz
YSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDUxNzU5NDQ5MTY1NzA4MDQwMERENzcxRCAvKiBO
ZXR3b3JrUmVzb3VyY2VMb2FkZXJNZXNzYWdlcy5oICovOyB9OwotCQk1MTc5NTU2NTE2Mjg3NkM1
MDBGQTQzQjYgLyogTmV0d29ya1Byb2Nlc3NNYWluTWFjLm1tIGluIFNvdXJjZXMgKi8gPSB7aXNh
ID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNTEwQ0M3REQxNjEzOEUyOTAwRDAzRUQzIC8qIE5l
dHdvcmtQcm9jZXNzTWFpbk1hYy5tbSAqLzsgfTsKIAkJNTE3OTU1NjcxNjI4NzZDQjAwRkE0M0I2
IC8qIE5ldHdvcmtQcm9jZXNzTWFjLm1tIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRG
aWxlOyBmaWxlUmVmID0gNTFBOEE2MTUxNjI3RjNGOTAwMEQ5MEU5IC8qIE5ldHdvcmtQcm9jZXNz
TWFjLm1tICovOyB9OwogCQk1MTc5NTU2ODE2Mjg3NkNGMDBGQTQzQjYgLyogTmV0d29ya1Byb2Nl
c3MuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNTEw
Q0M3REYxNjEzOEUyOTAwRDAzRUQzIC8qIE5ldHdvcmtQcm9jZXNzLmNwcCAqLzsgfTsKLQkJNTE3
OTU1NjkxNjI4NzZFRTAwRkE0M0I2IC8qIE5ldHdvcmtQcm9jZXNzTWFpbi5oIGluIEhlYWRlcnMg
Ki8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNTEwQ0M3RTExNjEzOEUyOTAwRDAz
RUQzIC8qIE5ldHdvcmtQcm9jZXNzTWFpbi5oICovOyB9OwogCQk1MTc5NTU2QTE2Mjg3NkYzMDBG
QTQzQjYgLyogTmV0d29ya1Byb2Nlc3MuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxk
RmlsZTsgZmlsZVJlZiA9IDUxMENDN0UwMTYxMzhFMjkwMEQwM0VEMyAvKiBOZXR3b3JrUHJvY2Vz
cy5oICovOyB9OwogCQk1MTc5NTU2RDE2Mjg3N0IxMDBGQTQzQjYgLyogTmV0d29ya1Byb2Nlc3NQ
cm94eS5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA1
MTBDQzdFQTE2MTM4RTcyMDBEMDNFRDMgLyogTmV0d29ya1Byb2Nlc3NQcm94eS5jcHAgKi87IH07
CiAJCTUxNzk1NTZFMTYyODc3QjMwMEZBNDNCNiAvKiBOZXR3b3JrUHJvY2Vzc1Byb3h5LmggaW4g
SGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA1MTBDQzdFQjE2MTM4
RTcyMDBEMDNFRDMgLyogTmV0d29ya1Byb2Nlc3NQcm94eS5oICovOyB9OwpAQCAtNzk4LDYgKzc4
OSwxNiBAQAogCQlCQzgxNDdBQTEyRjY0Q0RBMDA3QjJDMzIgLyogSW5qZWN0ZWRCdW5kbGVQYWdl
UG9saWN5Q2xpZW50LmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmls
ZVJlZiA9IEJDODE0N0E4MTJGNjRDREEwMDdCMkMzMiAvKiBJbmplY3RlZEJ1bmRsZVBhZ2VQb2xp
Y3lDbGllbnQuY3BwICovOyB9OwogCQlCQzgxNDdENTEyRjY2RDMxMDA3QjJDMzIgLyogSW5qZWN0
ZWRCdW5kbGVOYXZpZ2F0aW9uQWN0aW9uLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWls
ZEZpbGU7IGZpbGVSZWYgPSBCQzgxNDdEMzEyRjY2RDMxMDA3QjJDMzIgLyogSW5qZWN0ZWRCdW5k
bGVOYXZpZ2F0aW9uQWN0aW9uLmggKi87IH07CiAJCUJDODE0N0Q2MTJGNjZEMzEwMDdCMkMzMiAv
KiBJbmplY3RlZEJ1bmRsZU5hdmlnYXRpb25BY3Rpb24uY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNh
ID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQkM4MTQ3RDQxMkY2NkQzMTAwN0IyQzMyIC8qIElu
amVjdGVkQnVuZGxlTmF2aWdhdGlvbkFjdGlvbi5jcHAgKi87IH07CisJCUJDODI4MzY1MTZCMzU0
RjYwMEEyNzhGRSAvKiBXZWJDb250ZW50UHJvY2Vzc01haW4ubW0gaW4gU291cmNlcyAqLyA9IHtp
c2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBCQzgyODM2NDE2QjM1NEY2MDBBMjc4RkUgLyog
V2ViQ29udGVudFByb2Nlc3NNYWluLm1tICovOyB9OworCQlCQzgyODM3NjE2QjM2NzRCMDBBMjc4
RkUgLyogV2ViQ29udGVudFByb2Nlc3NNYWluQm9vdHN0cmFwcGVyLmNwcCBpbiBTb3VyY2VzICov
ID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEJDODI4Mzc0MTZCMzY3NEIwMEEyNzhG
RSAvKiBXZWJDb250ZW50UHJvY2Vzc01haW5Cb290c3RyYXBwZXIuY3BwICovOyB9OworCQlCQzgy
ODM3QTE2QjM2QTRGMDBBMjc4RkUgLyogQ2hpbGRQcm9jZXNzTWFpbi5oIGluIEhlYWRlcnMgKi8g
PSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQkM4MjgzNzgxNkIzNkE0RjAwQTI3OEZF
IC8qIENoaWxkUHJvY2Vzc01haW4uaCAqLzsgfTsKKwkJQkM4MjgzN0IxNkIzNkE0RjAwQTI3OEZF
IC8qIENoaWxkUHJvY2Vzc01haW4ubW0gaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZp
bGU7IGZpbGVSZWYgPSBCQzgyODM3OTE2QjM2QTRGMDBBMjc4RkUgLyogQ2hpbGRQcm9jZXNzTWFp
bi5tbSAqLzsgfTsKKwkJQkM4MjgzODQxNkI0NURBNTAwQTI3OEZFIC8qIE5ldHdvcmtQcm9jZXNz
TWFpbi5tbSBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEJD
ODI4MzgxMTZCNDVEQTUwMEEyNzhGRSAvKiBOZXR3b3JrUHJvY2Vzc01haW4ubW0gKi87IH07CisJ
CUJDODI4Mzg1MTZCNDVEQjcwMEEyNzhGRSAvKiBOZXR3b3JrUHJvY2Vzc01haW5Cb290c3RyYXBw
ZXIuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQkM4
MjgzODAxNkI0NURBNTAwQTI3OEZFIC8qIE5ldHdvcmtQcm9jZXNzTWFpbkJvb3RzdHJhcHBlci5j
cHAgKi87IH07CisJCUJDODI4MzhCMTZCNDVFRkYwMEEyNzhGRSAvKiBQbHVnaW5Qcm9jZXNzTWFp
bkJvb3RzdHJhcHBlci5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZp
bGVSZWYgPSBCQzgyODM4OTE2QjQ1RUYyMDBBMjc4RkUgLyogUGx1Z2luUHJvY2Vzc01haW5Cb290
c3RyYXBwZXIuY3BwICovOyB9OworCQlCQzgyODM4QzE2QjQ1RjA3MDBBMjc4RkUgLyogUGx1Z2lu
UHJvY2Vzc01haW4ubW0gaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVS
ZWYgPSBCQzgyODM4QTE2QjQ1RUYyMDBBMjc4RkUgLyogUGx1Z2luUHJvY2Vzc01haW4ubW0gKi87
IH07CisJCUJDODI4Mzk0MTZCNDYwODAwMEEyNzhGRSAvKiBTaGFyZWRXb3JrZXJQcm9jZXNzTWFp
bkJvb3RzdHJhcHBlci5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZp
bGVSZWYgPSBCQzgyODM5MjE2QjQ2MDdCMDBBMjc4RkUgLyogU2hhcmVkV29ya2VyUHJvY2Vzc01h
aW5Cb290c3RyYXBwZXIuY3BwICovOyB9OworCQlCQzgyODM5NTE2QjQ2MDgzMDBBMjc4RkUgLyog
U2hhcmVkV29ya2VyUHJvY2Vzc01haW4ubW0gaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWls
ZEZpbGU7IGZpbGVSZWYgPSBCQzgyODM5MzE2QjQ2MDdCMDBBMjc4RkUgLyogU2hhcmVkV29ya2Vy
UHJvY2Vzc01haW4ubW0gKi87IH07CiAJCUJDODJERjIyMTVCREY0MjIwMEZDMjg0MSAvKiBjb20u
YXBwbGUuV2ViUHJvY2Vzcy5zYiBpbiBSZXNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxl
OyBmaWxlUmVmID0gRTE5NjdFMzcxNTBBQjVFMjAwQzczMTY5IC8qIGNvbS5hcHBsZS5XZWJQcm9j
ZXNzLnNiICovOyB9OwogCQlCQzg0NTJBNzExNjJDODA5MDBDQUI5QjUgLyogRHJhd2luZ0FyZWEu
Y3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQkM4NDUy
QTUxMTYyQzgwOTAwQ0FCOUI1IC8qIERyYXdpbmdBcmVhLmNwcCAqLzsgfTsKIAkJQkM4NDUyQTgx
MTYyQzgwOTAwQ0FCOUI1IC8qIERyYXdpbmdBcmVhLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQ
QlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBCQzg0NTJBNjExNjJDODA5MDBDQUI5QjUgLyogRHJhd2lu
Z0FyZWEuaCAqLzsgfTsKQEAgLTgzNiw4ICs4MzcsNiBAQAogCQlCQzlCMzhBMTEwRjUzOEJFMDA0
NDNBMTUgLyogV2ViRnJhbWVQcm94eS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRG
aWxlOyBmaWxlUmVmID0gQkM5QjM4OUYxMEY1MzhCRTAwNDQzQTE1IC8qIFdlYkZyYW1lUHJveHku
aCAqLzsgfTsKIAkJQkM5QkE1MDQxNjk3QzQ1MzAwRTQ0NjE2IC8qIFdlYktpdDJJbml0aWFsaXpl
LmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEJDOUJB
NTAyMTY5N0M0NTMwMEU0NDYxNiAvKiBXZWJLaXQySW5pdGlhbGl6ZS5jcHAgKi87IH07CiAJCUJD
OUJBNTA1MTY5N0M0NTMwMEU0NDYxNiAvKiBXZWJLaXQySW5pdGlhbGl6ZS5oIGluIEhlYWRlcnMg
Ki8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQkM5QkE1MDMxNjk3QzQ1MzAwRTQ0
NjE2IC8qIFdlYktpdDJJbml0aWFsaXplLmggKi87IH07Ci0JCUJDOUJBNTA4MTY5OTFDM0MwMEU0
NDYxNiAvKiBDaGlsZFByb2Nlc3NNYWluLm1tIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVp
bGRGaWxlOyBmaWxlUmVmID0gQkM5QkE1MDYxNjk5MUMzQzAwRTQ0NjE2IC8qIENoaWxkUHJvY2Vz
c01haW4ubW0gKi87IH07Ci0JCUJDOUJBNTA5MTY5OTFDM0MwMEU0NDYxNiAvKiBDaGlsZFByb2Nl
c3NNYWluLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBC
QzlCQTUwNzE2OTkxQzNDMDBFNDQ2MTYgLyogQ2hpbGRQcm9jZXNzTWFpbi5oICovOyB9OwogCQlC
QzlGQTUyMDE2MEQzQjQzMDA1NERGOUEgLyogRm91bmRhdGlvbi5mcmFtZXdvcmsgaW4gRnJhbWV3
b3JrcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBCQzNERTQ2ODE1QTkxNzYz
MDA4RDI2RkMgLyogRm91bmRhdGlvbi5mcmFtZXdvcmsgKi87IH07CiAJCUJDOUZBNTIzMTYwRDRB
MEYwMDU0REY5QSAvKiBjb20uYXBwbGUuV2ViUHJvY2Vzcy5zYiBpbiBSZXNvdXJjZXMgKi8gPSB7
aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRTE5NjdFMzcxNTBBQjVFMjAwQzczMTY5IC8q
IGNvbS5hcHBsZS5XZWJQcm9jZXNzLnNiICovOyB9OwogCQlCQ0EwRUY3RjEyMzMxRTc4MDA3RDND
RkIgLyogV2ViVW5kb1N0ZXAuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsg
ZmlsZVJlZiA9IEJDQTBFRjdEMTIzMzFFNzgwMDdEM0NGQiAvKiBXZWJVbmRvU3RlcC5oICovOyB9
OwpAQCAtOTM2LDcgKzkzNSw2IEBACiAJCUJDRERCMzJEMTI0RUMyRTEwMDQ4RDEzQyAvKiBXS0FQ
SUNhc3QuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEJD
RERCMzJDMTI0RUMyRTEwMDQ4RDEzQyAvKiBXS0FQSUNhc3QuaCAqLzsgfTsKIAkJQkNERTA1OUIx
MUNEQThBRTAwRTQxQUYxIC8qIFdlYkNvbnRleHRJbmplY3RlZEJ1bmRsZUNsaWVudC5oIGluIEhl
YWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQkNERTA1OTkxMUNEQThB
RTAwRTQxQUYxIC8qIFdlYkNvbnRleHRJbmplY3RlZEJ1bmRsZUNsaWVudC5oICovOyB9OwogCQlC
Q0RFMDU5QzExQ0RBOEFFMDBFNDFBRjEgLyogV2ViQ29udGV4dEluamVjdGVkQnVuZGxlQ2xpZW50
LmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEJDREUw
NTlBMTFDREE4QUUwMEU0MUFGMSAvKiBXZWJDb250ZXh0SW5qZWN0ZWRCdW5kbGVDbGllbnQuY3Bw
ICovOyB9OwotCQlCQ0RFMDkzQjEzMjcyNDk2MDAxMjU5RkIgLyogTWFpbk1hY1Byb2Nlc3MuY3Bw
IGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMUE2RkEzMTAx
MUUzOTIxRTAwREIxMzcxIC8qIE1haW5NYWNQcm9jZXNzLmNwcCAqLzsgfTsKIAkJQkNERTA5M0Qx
MzI3MjQ5NjAwMTI1OUZCIC8qIFBsdWdpblByb2Nlc3NTaGltLmR5bGliIGluIENvcHkgUGx1Zy1p
biBQcm9jZXNzIFNoaW0gKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMUFDMjVG
QjAxMkE0OEVBNzAwQkQyNjcxIC8qIFBsdWdpblByb2Nlc3NTaGltLmR5bGliICovOyB9OwogCQlC
Q0RFMEFCRjEzMjcyNzA4MDAxMjU5RkIgLyogUGx1Z2luUHJvY2Vzcy5hcHAgaW4gQ29weUZpbGVz
ICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEJDREUwOTQyMTMyNzI0OTYwMDEy
NTlGQiAvKiBQbHVnaW5Qcm9jZXNzLmFwcCAqLzsgfTsKIAkJQkNFMDkzNzcxNEZCMTI4QzAwMTEz
OEQ5IC8qIExheWVySG9zdGluZ0NvbnRleHQubW0gaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhC
dWlsZEZpbGU7IGZpbGVSZWYgPSBCQ0UwOTM3NTE0RkIxMjhCMDAxMTM4RDkgLyogTGF5ZXJIb3N0
aW5nQ29udGV4dC5tbSAqLzsgfTsKQEAgLTEwNjAsOCArMTA1OCw2IEBACiAJCUUxQ0MxQjkxMTJE
N0VBREYwMDYyNTgzOCAvKiBQcmludEluZm9NYWMubW0gaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQ
QlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBFMUNDMUI4RjEyRDdFQURGMDA2MjU4MzggLyogUHJpbnRJ
bmZvTWFjLm1tICovOyB9OwogCQlFMUU1NTJDNDE2QUUwNjVGMDA0RUQ2NTMgLyogU2FuZGJveElu
aXRpYWxpYXRpb25QYXJhbWV0ZXJzTWFjLm1tIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVp
bGRGaWxlOyBmaWxlUmVmID0gRTFFNTUyQzIxNkFFMDY1RTAwNEVENjUzIC8qIFNhbmRib3hJbml0
aWFsaWF0aW9uUGFyYW1ldGVyc01hYy5tbSAqLzsgfTsKIAkJRTFFNTUyQzUxNkFFMDY1RjAwNEVE
NjUzIC8qIFNhbmRib3hJbml0aWFsaXphdGlvblBhcmFtZXRlcnMuaCBpbiBIZWFkZXJzICovID0g
e2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEUxRTU1MkMzMTZBRTA2NUUwMDRFRDY1MyAv
KiBTYW5kYm94SW5pdGlhbGl6YXRpb25QYXJhbWV0ZXJzLmggKi87IH07Ci0JCUUxRURGREE2MTYy
ODg2OEUwMDM5RUNEQSAvKiBNYWluTWFjUHJvY2Vzcy5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2Eg
PSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAxQTZGQTMxMDExRTM5MjFFMDBEQjEzNzEgLyogTWFp
bk1hY1Byb2Nlc3MuY3BwICovOyB9OwotCQlFMUVERkRBNzE2Mjg4Njk2MDAzOUVDREEgLyogU2hh
cmVkV29ya2VyUHJvY2Vzc01haW5NYWMubW0gaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWls
ZEZpbGU7IGZpbGVSZWYgPSBFMUVERkQ5QjE2Mjg3RDBCMDAzOUVDREEgLyogU2hhcmVkV29ya2Vy
UHJvY2Vzc01haW5NYWMubW0gKi87IH07CiAJCUUxRURGREE4MTYyODg2OTkwMDM5RUNEQSAvKiBT
aGFyZWRXb3JrZXJQcm9jZXNzTWFjLm1tIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRG
aWxlOyBmaWxlUmVmID0gRTFFREZEQTIxNjI4ODM4QzAwMzlFQ0RBIC8qIFNoYXJlZFdvcmtlclBy
b2Nlc3NNYWMubW0gKi87IH07CiAJCUUxRURGREE5MTYyODg2QUMwMDM5RUNEQSAvKiBTaGFyZWRX
b3JrZXJQcm9jZXNzLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmls
ZVJlZiA9IEUxRURGRDlFMTYyODgyMTAwMDM5RUNEQSAvKiBTaGFyZWRXb3JrZXJQcm9jZXNzLmNw
cCAqLzsgfTsKIAkJRTFFREZEQUUxNjI4ODkzQjAwMzlFQ0RBIC8qIFNoYXJlZFdvcmtlclByb2Nl
c3NDcmVhdGlvblBhcmFtZXRlcnMuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmls
ZTsgZmlsZVJlZiA9IEUxRURGREFEMTYyODg5M0IwMDM5RUNEQSAvKiBTaGFyZWRXb3JrZXJQcm9j
ZXNzQ3JlYXRpb25QYXJhbWV0ZXJzLmggKi87IH07CkBAIC0xMjgyLDggKzEyNzgsNiBAQAogCQkx
QTBFQzZCRTEyNEJCRDlCMDA3RUY0QTUgLyogUGx1Z2luUHJvY2Vzc01lc3NhZ2VzLmggKi8gPSB7
aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5
cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFBsdWdpblByb2Nlc3NNZXNzYWdlcy5oOyBzb3Vy
Y2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkxQTBFQzc1QzEyNEJDN0IyMDA3RUY0QTUgLyogUGx1
Z2luUHJvY2Vzc1Byb3h5LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29k
aW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFBsdWdp
blByb2Nlc3NQcm94eS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkxQTBFQzc1RDEy
NEJDN0IyMDA3RUY0QTUgLyogUGx1Z2luUHJvY2Vzc1Byb3h5LmNwcCAqLyA9IHtpc2EgPSBQQlhG
aWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJj
ZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFBsdWdpblByb2Nlc3NQcm94eS5jcHA7IHNvdXJjZVRyZWUg
PSAiPGdyb3VwPiI7IH07Ci0JCTFBMEVDN0ZBMTI0QkQzQjYwMDdFRjRBNSAvKiBQbHVnaW5Qcm9j
ZXNzTWFpbi5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7
IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBQbHVnaW5Qcm9jZXNz
TWFpbi5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwotCQkxQTBFQzgwMjEyNEJENDFFMDA3
RUY0QTUgLyogUGx1Z2luUHJvY2Vzc01haW5NYWMubW0gKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVy
ZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNw
cC5vYmpjcHA7IHBhdGggPSBQbHVnaW5Qcm9jZXNzTWFpbk1hYy5tbTsgc291cmNlVHJlZSA9ICI8
Z3JvdXA+IjsgfTsKIAkJMUEwRUM5MDQxMjRDMEFCODAwN0VGNEE1IC8qIFBsdWdpblByb2Nlc3ND
b25uZWN0aW9uLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0g
NDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFBsdWdpblByb2Nl
c3NDb25uZWN0aW9uLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTFBMEVDOTA1MTI0
QzBBQjgwMDdFRjRBNSAvKiBQbHVnaW5Qcm9jZXNzQ29ubmVjdGlvbi5jcHAgKi8gPSB7aXNhID0g
UEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBz
b3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBQbHVnaW5Qcm9jZXNzQ29ubmVjdGlvbi5jcHA7IHNv
dXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTFBMEVDOTBEMTI0QzBBRjUwMDdFRjRBNSAvKiBQ
bHVnaW5Qcm9jZXNzQ29ubmVjdGlvbk1hbmFnZXIuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJl
bmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5o
OyBwYXRoID0gUGx1Z2luUHJvY2Vzc0Nvbm5lY3Rpb25NYW5hZ2VyLmg7IHNvdXJjZVRyZWUgPSAi
PGdyb3VwPiI7IH07CkBAIC0xMzkxLDEwICsxMzg1LDYgQEAKIAkJMUE2NDI5MkMxMkRFNUY5ODAw
Q0FBRTJDIC8qIEJhY2tpbmdTdG9yZU1hYy5tbSAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNl
OyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLm9i
amNwcDsgcGF0aCA9IEJhY2tpbmdTdG9yZU1hYy5tbTsgc291cmNlVHJlZSA9ICI8Z3JvdXA+Ijsg
fTsKIAkJMUE2RjlGOEUxMUUxM0VGQzAwREIxMzcxIC8qIENvbW1hbmRMaW5lLmggKi8gPSB7aXNh
ID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUg
PSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IENvbW1hbmRMaW5lLmg7IHNvdXJjZVRyZWUgPSAiPGdy
b3VwPiI7IH07CiAJCTFBNkY5RkI2MTFFMTQwODUwMERCMTM3MSAvKiBDb21tYW5kTGluZU1hYy5j
cHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtu
b3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBDb21tYW5kTGluZU1hYy5j
cHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07Ci0JCTFBNkZBMDFEMTFFMTUyNjMwMERCMTM3
MSAvKiBXZWJQcm9jZXNzTWFpbk1hYy5tbSAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBm
aWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLm9iamNw
cDsgcGF0aCA9IFdlYlByb2Nlc3NNYWluTWFjLm1tOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9
OwotCQkxQTZGQTAxRjExRTE1Mjg3MDBEQjEzNzEgLyogV2ViUHJvY2Vzc01haW4uaCAqLyA9IHtp
c2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlw
ZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gV2ViUHJvY2Vzc01haW4uaDsgc291cmNlVHJlZSA9
ICI8Z3JvdXA+IjsgfTsKLQkJMUE2RkEzMTAxMUUzOTIxRTAwREIxMzcxIC8qIE1haW5NYWNQcm9j
ZXNzLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBs
YXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgbmFtZSA9IE1haW5NYWNQcm9j
ZXNzLmNwcDsgcGF0aCA9IG1hYy9NYWluTWFjUHJvY2Vzcy5jcHA7IHNvdXJjZVRyZWUgPSAiPGdy
b3VwPiI7IH07Ci0JCTFBNkZBMzE1MTFFMzkyMzYwMERCMTM3MSAvKiBXZWJLaXRNYWluLmNwcCAq
LyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25G
aWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFdlYktpdE1haW4uY3BwOyBzb3Vy
Y2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkxQTZGQjdBQzExRTY0QjY4MDBEQjEzNzEgLyogUGx1
Z2luVmlldy5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0g
NDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBQbHVnaW5W
aWV3LmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMUE2RkI3QUQxMUU2NEI2ODAw
REIxMzcxIC8qIFBsdWdpblZpZXcuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxl
RW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0g
UGx1Z2luVmlldy5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkxQTZGQjdEMDExRTY1
MUUyMDBEQjEzNzEgLyogUGx1Z2luLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBm
aWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsg
cGF0aCA9IFBsdWdpbi5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBAIC0xNjU5LDE0
ICsxNjQ5LDExIEBACiAJCTUxMEFGRkI3MTY1NDIwNDgwMDFCQTA1RSAvKiBXZWJSZXNvdXJjZUxv
YWRlci5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsg
bGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IG5hbWUgPSBXZWJSZXNvdXJj
ZUxvYWRlci5jcHA7IHBhdGggPSBOZXR3b3JrL1dlYlJlc291cmNlTG9hZGVyLmNwcDsgc291cmNl
VHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNTEwQUZGQjgxNjU0MjA0ODAwMUJBMDVFIC8qIFdlYlJl
c291cmNlTG9hZGVyLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5n
ID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgbmFtZSA9IFdlYlJlc291
cmNlTG9hZGVyLmg7IHBhdGggPSBOZXR3b3JrL1dlYlJlc291cmNlTG9hZGVyLmg7IHNvdXJjZVRy
ZWUgPSAiPGdyb3VwPiI7IH07CiAJCTUxMEFGRkNFMTY1NDJDQkQwMDFCQTA1RSAvKiBXZWJSZXNv
dXJjZUxvYWRlci5tZXNzYWdlcy5pbiAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0
S25vd25GaWxlVHlwZSA9IHRleHQ7IG5hbWUgPSBXZWJSZXNvdXJjZUxvYWRlci5tZXNzYWdlcy5p
bjsgcGF0aCA9IE5ldHdvcmsvV2ViUmVzb3VyY2VMb2FkZXIubWVzc2FnZXMuaW47IHNvdXJjZVRy
ZWUgPSAiPGdyb3VwPiI7IH07Ci0JCTUxMENDN0REMTYxMzhFMjkwMEQwM0VEMyAvKiBOZXR3b3Jr
UHJvY2Vzc01haW5NYWMubW0gKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29k
aW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5vYmpjcHA7IHBhdGgg
PSBOZXR3b3JrUHJvY2Vzc01haW5NYWMubW07IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJ
CTUxMENDN0RGMTYxMzhFMjkwMEQwM0VEMyAvKiBOZXR3b3JrUHJvY2Vzcy5jcHAgKi8gPSB7aXNh
ID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUg
PSBzb3VyY2Vjb2RlLmNwcC5jcHA7IG5hbWUgPSBOZXR3b3JrUHJvY2Vzcy5jcHA7IHBhdGggPSBO
ZXR3b3JrUHJvY2Vzcy9OZXR3b3JrUHJvY2Vzcy5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7
IH07CiAJCTUxMENDN0UwMTYxMzhFMjkwMEQwM0VEMyAvKiBOZXR3b3JrUHJvY2Vzcy5oICovID0g
e2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVU
eXBlID0gc291cmNlY29kZS5jLmg7IG5hbWUgPSBOZXR3b3JrUHJvY2Vzcy5oOyBwYXRoID0gTmV0
d29ya1Byb2Nlc3MvTmV0d29ya1Byb2Nlc3MuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsK
LQkJNTEwQ0M3RTExNjEzOEUyOTAwRDAzRUQzIC8qIE5ldHdvcmtQcm9jZXNzTWFpbi5oICovID0g
e2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVU
eXBlID0gc291cmNlY29kZS5jLmg7IG5hbWUgPSBOZXR3b3JrUHJvY2Vzc01haW4uaDsgcGF0aCA9
IE5ldHdvcmtQcm9jZXNzL05ldHdvcmtQcm9jZXNzTWFpbi5oOyBzb3VyY2VUcmVlID0gIjxncm91
cD4iOyB9OwogCQk1MTBDQzdFQTE2MTM4RTcyMDBEMDNFRDMgLyogTmV0d29ya1Byb2Nlc3NQcm94
eS5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFz
dEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBOZXR3b3JrUHJvY2Vz
c1Byb3h5LmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNTEwQ0M3RUIxNjEzOEU3
MjAwRDAzRUQzIC8qIE5ldHdvcmtQcm9jZXNzUHJveHkuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVm
ZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUu
Yy5oOyBwYXRoID0gTmV0d29ya1Byb2Nlc3NQcm94eS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4i
OyB9OwogCQk1MTBDQzgwRTE2MTNDNzk5MDBEMDNFRDMgLyogTmV0d29ya1Byb2Nlc3MuYXBwICov
ID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGV4cGxpY2l0RmlsZVR5cGUgPSB3cmFwcGVyLmFw
cGxpY2F0aW9uOyBpbmNsdWRlSW5JbmRleCA9IDA7IHBhdGggPSBOZXR3b3JrUHJvY2Vzcy5hcHA7
IHNvdXJjZVRyZWUgPSBCVUlMVF9QUk9EVUNUU19ESVI7IH07Ci0JCTUxMENDODE5MTYxM0M3OTkw
MEQwM0VEMyAvKiBJbmZvLnBsaXN0ICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RL
bm93bkZpbGVUeXBlID0gdGV4dC5wbGlzdC54bWw7IG5hbWUgPSBJbmZvLnBsaXN0OyBwYXRoID0g
TmV0d29ya1Byb2Nlc3MvSW5mby5wbGlzdDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJ
NTEwQ0M4NDYxNjEzQzdDNjAwRDAzRUQzIC8qIE5ldHdvcmtQcm9jZXNzLnhjY29uZmlnICovID0g
e2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4dC54Y2NvbmZp
ZzsgcGF0aCA9IE5ldHdvcmtQcm9jZXNzLnhjY29uZmlnOyBzb3VyY2VUcmVlID0gIjxncm91cD4i
OyB9OwogCQk1MTBGQkI5ODEyODhDOTVFMDBBRkZERjQgLyogV2ViQ29udGV4dE1lbnVJdGVtRGF0
YS5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFz
dEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBXZWJDb250ZXh0TWVu
dUl0ZW1EYXRhLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNTEwRkJCOTkxMjg4
Qzk1RTAwQUZGREY0IC8qIFdlYkNvbnRleHRNZW51SXRlbURhdGEuaCAqLyA9IHtpc2EgPSBQQlhG
aWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJj
ZWNvZGUuYy5oOyBwYXRoID0gV2ViQ29udGV4dE1lbnVJdGVtRGF0YS5oOyBzb3VyY2VUcmVlID0g
Ijxncm91cD4iOyB9OwpAQCAtMTk0OCw3ICsxOTM1LDYgQEAKIAkJQkMxMTFCNUIxMTJGNjI5ODAw
MzM3QkFCIC8qIFdlYkV2ZW50RmFjdG9yeS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7
IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBh
dGggPSBXZWJFdmVudEZhY3RvcnkuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJQkMx
MTFCNUMxMTJGNjI5ODAwMzM3QkFCIC8qIFdlYkV2ZW50RmFjdG9yeS5tbSAqLyA9IHtpc2EgPSBQ
QlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNv
dXJjZWNvZGUuY3BwLm9iamNwcDsgcGF0aCA9IFdlYkV2ZW50RmFjdG9yeS5tbTsgc291cmNlVHJl
ZSA9ICI8Z3JvdXA+IjsgfTsKIAkJQkMxMjJGQTMxMzI3MDdGMzAwRjdFQUMxIC8qIFBsdWdpblBy
b2Nlc3MueGNjb25maWcgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmls
ZVR5cGUgPSB0ZXh0LnhjY29uZmlnOyBwYXRoID0gUGx1Z2luUHJvY2Vzcy54Y2NvbmZpZzsgc291
cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKLQkJQkMxMjJGQTYxMzI3MDg3NDAwRjdFQUMxIC8qIElu
Zm8ucGxpc3QgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUg
PSB0ZXh0LnBsaXN0LnhtbDsgbmFtZSA9IEluZm8ucGxpc3Q7IHBhdGggPSBQbHVnaW5Qcm9jZXNz
L0luZm8ucGxpc3Q7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUJDMTRERjc1MTIwQjVC
NzkwMDgyNkMwQyAvKiBJbmplY3RlZEJ1bmRsZVNjcmlwdFdvcmxkLmggKi8gPSB7aXNhID0gUEJY
RmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3Vy
Y2Vjb2RlLmMuaDsgcGF0aCA9IEluamVjdGVkQnVuZGxlU2NyaXB0V29ybGQuaDsgc291cmNlVHJl
ZSA9ICI8Z3JvdXA+IjsgfTsKIAkJQkMxNERGNzYxMjBCNUI3OTAwODI2QzBDIC8qIEluamVjdGVk
QnVuZGxlU2NyaXB0V29ybGQuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVF
bmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRo
ID0gSW5qZWN0ZWRCdW5kbGVTY3JpcHRXb3JsZC5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7
IH07CiAJCUJDMTRERjlDMTIwQjYzNUYwMDgyNkMwQyAvKiBXS0J1bmRsZVNjcmlwdFdvcmxkLmNw
cCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25v
d25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFdLQnVuZGxlU2NyaXB0V29y
bGQuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwpAQCAtMjA5Nyw2ICsyMDgzLDIxIEBA
CiAJCUJDODE0N0E4MTJGNjRDREEwMDdCMkMzMiAvKiBJbmplY3RlZEJ1bmRsZVBhZ2VQb2xpY3lD
bGllbnQuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7
IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gSW5qZWN0ZWRC
dW5kbGVQYWdlUG9saWN5Q2xpZW50LmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+Ijsgd3JhcHNM
aW5lcyA9IDA7IH07CiAJCUJDODE0N0QzMTJGNjZEMzEwMDdCMkMzMiAvKiBJbmplY3RlZEJ1bmRs
ZU5hdmlnYXRpb25BY3Rpb24uaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5j
b2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gSW5q
ZWN0ZWRCdW5kbGVOYXZpZ2F0aW9uQWN0aW9uLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07
CiAJCUJDODE0N0Q0MTJGNjZEMzEwMDdCMkMzMiAvKiBJbmplY3RlZEJ1bmRsZU5hdmlnYXRpb25B
Y3Rpb24uY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7
IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gSW5qZWN0ZWRC
dW5kbGVOYXZpZ2F0aW9uQWN0aW9uLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJ
QkM4MjgzNjQxNkIzNTRGNjAwQTI3OEZFIC8qIFdlYkNvbnRlbnRQcm9jZXNzTWFpbi5tbSAqLyA9
IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxl
VHlwZSA9IHNvdXJjZWNvZGUuY3BwLm9iamNwcDsgcGF0aCA9IFdlYkNvbnRlbnRQcm9jZXNzTWFp
bi5tbTsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJQkM4MjgzNzMxNkIzNUFGOTAwQTI3
OEZFIC8qIEluZm8ucGxpc3QgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3du
RmlsZVR5cGUgPSB0ZXh0LnBsaXN0LnhtbDsgcGF0aCA9IEluZm8ucGxpc3Q7IHNvdXJjZVRyZWUg
PSAiPGdyb3VwPiI7IH07CisJCUJDODI4Mzc0MTZCMzY3NEIwMEEyNzhGRSAvKiBXZWJDb250ZW50
UHJvY2Vzc01haW5Cb290c3RyYXBwZXIuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7
IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3Bw
OyBwYXRoID0gV2ViQ29udGVudFByb2Nlc3NNYWluQm9vdHN0cmFwcGVyLmNwcDsgc291cmNlVHJl
ZSA9ICI8Z3JvdXA+IjsgfTsKKwkJQkM4MjgzNzcxNkIzNjdGODAwQTI3OEZFIC8qIENoaWxkUHJv
Y2Vzc01haW5Cb290c3RyYXBwZXIuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxl
RW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0g
Q2hpbGRQcm9jZXNzTWFpbkJvb3RzdHJhcHBlci5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9
OworCQlCQzgyODM3ODE2QjM2QTRGMDBBMjc4RkUgLyogQ2hpbGRQcm9jZXNzTWFpbi5oICovID0g
e2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVU
eXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBDaGlsZFByb2Nlc3NNYWluLmg7IHNvdXJjZVRy
ZWUgPSAiPGdyb3VwPiI7IH07CisJCUJDODI4Mzc5MTZCMzZBNEYwMEEyNzhGRSAvKiBDaGlsZFBy
b2Nlc3NNYWluLm1tICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9
IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAub2JqY3BwOyBwYXRoID0gQ2hp
bGRQcm9jZXNzTWFpbi5tbTsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJQkM4MjgzN0Yx
NkI0NURBNTAwQTI3OEZFIC8qIEluZm8ucGxpc3QgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5j
ZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSB0ZXh0LnBsaXN0LnhtbDsg
cGF0aCA9IEluZm8ucGxpc3Q7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCUJDODI4Mzgw
MTZCNDVEQTUwMEEyNzhGRSAvKiBOZXR3b3JrUHJvY2Vzc01haW5Cb290c3RyYXBwZXIuY3BwICov
ID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZp
bGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gTmV0d29ya1Byb2Nlc3NNYWluQm9v
dHN0cmFwcGVyLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJQkM4MjgzODExNkI0
NURBNTAwQTI3OEZFIC8qIE5ldHdvcmtQcm9jZXNzTWFpbi5tbSAqLyA9IHtpc2EgPSBQQlhGaWxl
UmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNv
ZGUuY3BwLm9iamNwcDsgcGF0aCA9IE5ldHdvcmtQcm9jZXNzTWFpbi5tbTsgc291cmNlVHJlZSA9
ICI8Z3JvdXA+IjsgfTsKKwkJQkM4MjgzODkxNkI0NUVGMjAwQTI3OEZFIC8qIFBsdWdpblByb2Nl
c3NNYWluQm9vdHN0cmFwcGVyLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0
S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFBsdWdpblByb2Nlc3NN
YWluQm9vdHN0cmFwcGVyLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJQkM4Mjgz
OEExNkI0NUVGMjAwQTI3OEZFIC8qIFBsdWdpblByb2Nlc3NNYWluLm1tICovID0ge2lzYSA9IFBC
WEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAub2JqY3Bw
OyBwYXRoID0gUGx1Z2luUHJvY2Vzc01haW4ubW07IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07
CisJCUJDODI4MzhEMTZCNDVGQTYwMEEyNzhGRSAvKiBJbmZvLnBsaXN0ICovID0ge2lzYSA9IFBC
WEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4dC5wbGlzdC54bWw7IHBhdGgg
PSBJbmZvLnBsaXN0OyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQlCQzgyODM5MTE2QjQ2
MDBEMDBBMjc4RkUgLyogSW5mby5wbGlzdCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBs
YXN0S25vd25GaWxlVHlwZSA9IHRleHQucGxpc3QueG1sOyBwYXRoID0gSW5mby5wbGlzdDsgc291
cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJQkM4MjgzOTIxNkI0NjA3QjAwQTI3OEZFIC8qIFNo
YXJlZFdvcmtlclByb2Nlc3NNYWluQm9vdHN0cmFwcGVyLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxl
UmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9
IFNoYXJlZFdvcmtlclByb2Nlc3NNYWluQm9vdHN0cmFwcGVyLmNwcDsgc291cmNlVHJlZSA9ICI8
Z3JvdXA+IjsgfTsKKwkJQkM4MjgzOTMxNkI0NjA3QjAwQTI3OEZFIC8qIFNoYXJlZFdvcmtlclBy
b2Nlc3NNYWluLm1tICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVU
eXBlID0gc291cmNlY29kZS5jcHAub2JqY3BwOyBwYXRoID0gU2hhcmVkV29ya2VyUHJvY2Vzc01h
aW4ubW07IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUJDODQ1MkE1MTE2MkM4MDkwMENB
QjlCNSAvKiBEcmF3aW5nQXJlYS5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmls
ZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBh
dGggPSBEcmF3aW5nQXJlYS5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUJDODQ1
MkE2MTE2MkM4MDkwMENBQjlCNSAvKiBEcmF3aW5nQXJlYS5oICovID0ge2lzYSA9IFBCWEZpbGVS
ZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29k
ZS5jLmg7IHBhdGggPSBEcmF3aW5nQXJlYS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9Owog
CQlCQzg0RUIxNzEyQTcxMDBDMDA4M0YyREEgLyogV2ViUHJlZmVyZW5jZXNNYWMubW0gKi8gPSB7
aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5
cGUgPSBzb3VyY2Vjb2RlLmNwcC5vYmpjcHA7IHBhdGggPSBXZWJQcmVmZXJlbmNlc01hYy5tbTsg
c291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKQEAgLTIxMTIsNyArMjExMyw2IEBACiAJCUJDODY5
OUI0MTE2QUFEQUEwMDJBOTI1QiAvKiBXS1ZpZXdJbnRlcm5hbC5oICovID0ge2lzYSA9IFBCWEZp
bGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNl
Y29kZS5jLmg7IHBhdGggPSBXS1ZpZXdJbnRlcm5hbC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4i
OyB9OwogCQlCQzg3ODBGQjExNjFDMkI4MDBDQzI3NjggLyogUGxhdGZvcm1Qcm9jZXNzSWRlbnRp
Zmllci5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxh
c3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBQbGF0Zm9ybVByb2Nlc3NJ
ZGVudGlmaWVyLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUJDODdERkE5MTAxODEw
MTQwMDU2NDIxNiAvKiBsaWJpY3Vjb3JlLmR5bGliICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVu
Y2U7IGxhc3RLbm93bkZpbGVUeXBlID0gImNvbXBpbGVkLm1hY2gtby5keWxpYiI7IG5hbWUgPSBs
aWJpY3Vjb3JlLmR5bGliOyBwYXRoID0gL3Vzci9saWIvbGliaWN1Y29yZS5keWxpYjsgc291cmNl
VHJlZSA9ICI8YWJzb2x1dGU+IjsgfTsKLQkJQkM4QTUwMTAxMTc2NUFGNzAwNzU3NTczIC8qIElu
Zm8ucGxpc3QgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsg
bGFzdEtub3duRmlsZVR5cGUgPSB0ZXh0LnBsaXN0LnhtbDsgbmFtZSA9IEluZm8ucGxpc3Q7IHBh
dGggPSBXZWJQcm9jZXNzL0luZm8ucGxpc3Q7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJ
CUJDOEE1MDE0MTE3NjVGNTYwMDc1NzU3MyAvKiBXS1JldGFpblB0ci5oICovID0ge2lzYSA9IFBC
WEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291
cmNlY29kZS5jLmg7IHBhdGggPSBXS1JldGFpblB0ci5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4i
OyB9OwogCQlCQzhBQ0EwRjE2NjcwRDdBMDA0QzE5NDEgLyogT2JqQ09iamVjdEdyYXBoLmggKi8g
PSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmls
ZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IE9iakNPYmplY3RHcmFwaC5oOyBzb3VyY2VU
cmVlID0gIjxncm91cD4iOyB9OwogCQlCQzhBQ0ExMDE2NjcwRDdCMDA0QzE5NDEgLyogT2JqQ09i
amVjdEdyYXBoLm1tICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9
IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAub2JqY3BwOyBwYXRoID0gT2Jq
Q09iamVjdEdyYXBoLm1tOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwpAQCAtMjEzNCw4ICsy
MTM0LDYgQEAKIAkJQkM5QjM4OUYxMEY1MzhCRTAwNDQzQTE1IC8qIFdlYkZyYW1lUHJveHkuaCAq
LyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25G
aWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gV2ViRnJhbWVQcm94eS5oOyBzb3VyY2VU
cmVlID0gIjxncm91cD4iOyB9OwogCQlCQzlCQTUwMjE2OTdDNDUzMDBFNDQ2MTYgLyogV2ViS2l0
MkluaXRpYWxpemUuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGlu
ZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gV2Vi
S2l0MkluaXRpYWxpemUuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlCQzlCQTUw
MzE2OTdDNDUzMDBFNDQ2MTYgLyogV2ViS2l0MkluaXRpYWxpemUuaCAqLyA9IHtpc2EgPSBQQlhG
aWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJj
ZWNvZGUuYy5oOyBwYXRoID0gV2ViS2l0MkluaXRpYWxpemUuaDsgc291cmNlVHJlZSA9ICI8Z3Jv
dXA+IjsgfTsKLQkJQkM5QkE1MDYxNjk5MUMzQzAwRTQ0NjE2IC8qIENoaWxkUHJvY2Vzc01haW4u
bW0gKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtu
b3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5vYmpjcHA7IHBhdGggPSBDaGlsZFByb2Nlc3NN
YWluLm1tOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwotCQlCQzlCQTUwNzE2OTkxQzNDMDBF
NDQ2MTYgLyogQ2hpbGRQcm9jZXNzTWFpbi5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7
IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBh
dGggPSBDaGlsZFByb2Nlc3NNYWluLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUJD
QTBFRjdEMTIzMzFFNzgwMDdEM0NGQiAvKiBXZWJVbmRvU3RlcC5oICovID0ge2lzYSA9IFBCWEZp
bGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNl
Y29kZS5jLmg7IHBhdGggPSBXZWJVbmRvU3RlcC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9
OwogCQlCQ0EwRUY3RTEyMzMxRTc4MDA3RDNDRkIgLyogV2ViVW5kb1N0ZXAuY3BwICovID0ge2lz
YSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBl
ID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gV2ViVW5kb1N0ZXAuY3BwOyBzb3VyY2VUcmVl
ID0gIjxncm91cD4iOyB9OwogCQlCQ0EwRUY5RDEyMzMyNjQyMDA3RDNDRkIgLyogV2ViRWRpdENv
bW1hbmRQcm94eS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9
IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBXZWJFZGl0Q29t
bWFuZFByb3h5Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBAIC0yMzU0LDcgKzIzNTIs
NiBAQAogCQlFMTNBOEEzMjE2Mjg3OUFDMDAzOTI5MjkgLyogQXBwS2l0LmZyYW1ld29yayAqLyA9
IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHdyYXBwZXIuZnJh
bWV3b3JrOyBuYW1lID0gQXBwS2l0LmZyYW1ld29yazsgcGF0aCA9IFN5c3RlbS9MaWJyYXJ5L0Zy
YW1ld29ya3MvQXBwS2l0LmZyYW1ld29yazsgc291cmNlVHJlZSA9IFNES1JPT1Q7IH07CiAJCUUx
M0E4QTMzMTYyODc5QUMwMDM5MjkyOSAvKiBDb3JlRGF0YS5mcmFtZXdvcmsgKi8gPSB7aXNhID0g
UEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSB3cmFwcGVyLmZyYW1ld29yazsg
bmFtZSA9IENvcmVEYXRhLmZyYW1ld29yazsgcGF0aCA9IFN5c3RlbS9MaWJyYXJ5L0ZyYW1ld29y
a3MvQ29yZURhdGEuZnJhbWV3b3JrOyBzb3VyY2VUcmVlID0gU0RLUk9PVDsgfTsKIAkJRTEzQThB
MzQxNjI4NzlBQzAwMzkyOTI5IC8qIEZvdW5kYXRpb24uZnJhbWV3b3JrICovID0ge2lzYSA9IFBC
WEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gd3JhcHBlci5mcmFtZXdvcms7IG5h
bWUgPSBGb3VuZGF0aW9uLmZyYW1ld29yazsgcGF0aCA9IFN5c3RlbS9MaWJyYXJ5L0ZyYW1ld29y
a3MvRm91bmRhdGlvbi5mcmFtZXdvcms7IHNvdXJjZVRyZWUgPSBTREtST09UOyB9OwotCQlFMTNB
OEEzNzE2Mjg3OUFDMDAzOTI5MjkgLyogSW5mby5wbGlzdCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVm
ZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHRleHQucGxpc3QueG1sOyBuYW1lID0gSW5mby5w
bGlzdDsgcGF0aCA9IFNoYXJlZFdvcmtlclByb2Nlc3MvSW5mby5wbGlzdDsgc291cmNlVHJlZSA9
ICI8Z3JvdXA+IjsgfTsKIAkJRTEzQThBNEIxNjI4N0ExQjAwMzkyOTI5IC8qIFNoYXJlZFdvcmtl
clByb2Nlc3MueGNjb25maWcgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3du
RmlsZVR5cGUgPSB0ZXh0LnhjY29uZmlnOyBwYXRoID0gU2hhcmVkV29ya2VyUHJvY2Vzcy54Y2Nv
bmZpZzsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJRTE0RTk5RjgxNEQ4NzlCNDAwMUQy
MjFGIC8qIFBsdWdpblByb2Nlc3MuZW50aXRsZW1lbnRzICovID0ge2lzYSA9IFBCWEZpbGVSZWZl
cmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4dC54bWw7IHBhdGggPSBQbHVnaW5Qcm9jZXNz
LmVudGl0bGVtZW50czsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJRTE0RTk5RjkxNEQ4
NzlDOTAwMUQyMjFGIC8qIGFkZC1lbnRpdGxlbWVudHMuc2ggKi8gPSB7aXNhID0gUEJYRmlsZVJl
ZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSB0ZXh0LnNjcmlwdC5zaDsgcGF0aCA9ICJhZGQt
ZW50aXRsZW1lbnRzLnNoIjsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKQEAgLTIzOTAsOCAr
MjM4Nyw2IEBACiAJCUUxQ0MxQjhGMTJEN0VBREYwMDYyNTgzOCAvKiBQcmludEluZm9NYWMubW0g
Ki8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3du
RmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5vYmpjcHA7IHBhdGggPSBQcmludEluZm9NYWMubW07
IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUUxRTU1MkMyMTZBRTA2NUUwMDRFRDY1MyAv
KiBTYW5kYm94SW5pdGlhbGlhdGlvblBhcmFtZXRlcnNNYWMubW0gKi8gPSB7aXNhID0gUEJYRmls
ZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vj
b2RlLmNwcC5vYmpjcHA7IHBhdGggPSBTYW5kYm94SW5pdGlhbGlhdGlvblBhcmFtZXRlcnNNYWMu
bW07IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUUxRTU1MkMzMTZBRTA2NUUwMDRFRDY1
MyAvKiBTYW5kYm94SW5pdGlhbGl6YXRpb25QYXJhbWV0ZXJzLmggKi8gPSB7aXNhID0gUEJYRmls
ZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vj
b2RlLmMuaDsgcGF0aCA9IFNhbmRib3hJbml0aWFsaXphdGlvblBhcmFtZXRlcnMuaDsgc291cmNl
VHJlZSA9ICI8Z3JvdXA+IjsgfTsKLQkJRTFFREZEOTgxNjI4N0JEMTAwMzlFQ0RBIC8qIFNoYXJl
ZFdvcmtlclByb2Nlc3NNYWluLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVu
Y29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFNo
YXJlZFdvcmtlclByb2Nlc3NNYWluLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07Ci0JCUUx
RURGRDlCMTYyODdEMEIwMDM5RUNEQSAvKiBTaGFyZWRXb3JrZXJQcm9jZXNzTWFpbk1hYy5tbSAq
LyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25G
aWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLm9iamNwcDsgcGF0aCA9IFNoYXJlZFdvcmtlclByb2Nl
c3NNYWluTWFjLm1tOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlFMUVERkQ5RDE2Mjg3
RjE5MDAzOUVDREEgLyogU2hhcmVkV29ya2VyUHJvY2Vzcy5oICovID0ge2lzYSA9IFBCWEZpbGVS
ZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29k
ZS5jLmg7IHBhdGggPSBTaGFyZWRXb3JrZXJQcm9jZXNzLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3Vw
PiI7IH07CiAJCUUxRURGRDlFMTYyODgyMTAwMDM5RUNEQSAvKiBTaGFyZWRXb3JrZXJQcm9jZXNz
LmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0
S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFNoYXJlZFdvcmtlclBy
b2Nlc3MuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlFMUVERkRBMDE2Mjg4MzAz
MDAzOUVDREEgLyogU2hhcmVkV29ya2VyUHJvY2Vzcy5tZXNzYWdlcy5pbiAqLyA9IHtpc2EgPSBQ
QlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHRl
eHQ7IHBhdGggPSBTaGFyZWRXb3JrZXJQcm9jZXNzLm1lc3NhZ2VzLmluOyBzb3VyY2VUcmVlID0g
Ijxncm91cD4iOyB9OwpAQCAtMjUyNSw3ICsyNTIwLDYgQEAKIAkJCQk1MTBDQzdEQTE2MTM4RTAx
MDBEMDNFRDMgLyogTmV0d29ya1Byb2Nlc3MgKi8sCiAJCQkJMUEwRUM2QjAxMjRCQkQzNjAwN0VG
NEE1IC8qIFBsdWdpblByb2Nlc3MgKi8sCiAJCQkJRTEzQThBMzUxNjI4NzlBQzAwMzkyOTI5IC8q
IFNoYXJlZFdvcmtlclByb2Nlc3MgKi8sCi0JCQkJMzJDODhERkYwMzcxQzI0MjAwQzkxNzgzIC8q
IE90aGVyIFNvdXJjZXMgKi8sCiAJCQkJQzBDRTcyOUQxMjQ3RTcxRDAwQkMwRUM0IC8qIERlcml2
ZWQgU291cmNlcyAqLywKIAkJCQkwODlDMTY2NUZFODQxMTU4QzAyQUFDMDcgLyogUmVzb3VyY2Vz
ICovLAogCQkJCUMwQ0U3MzM1MTI0N0Y3MEUwMEJDMEVDNCAvKiBTY3JpcHRzICovLApAQCAtMjU1
MSwxMSArMjU0NSw3IEBACiAJCTA4OUMxNjY1RkU4NDExNThDMDJBQUMwNyAvKiBSZXNvdXJjZXMg
Ki8gPSB7CiAJCQlpc2EgPSBQQlhHcm91cDsKIAkJCWNoaWxkcmVuID0gKAotCQkJCTUxMENDODRB
MTYxM0M4QUIwMEQwM0VEMyAvKiBOZXR3b3JrUHJvY2VzcyAqLywKLQkJCQlCQzEyMkZBNTEzMjcw
ODVEMDBGN0VBQzEgLyogUGx1Z2luUHJvY2VzcyAqLywKLQkJCQlFMUVERkQ5NzE2Mjg3QUVDMDAz
OUVDREEgLyogU2hhcmVkV29ya2VyUHJvY2VzcyAqLywKLQkJCQlCQzhBNTAwRTExNzY1QUQ0MDA3
NTc1NzMgLyogV2ViS2l0MiAqLywKLQkJCQlCQzhBNTAwRjExNzY1QUUzMDA3NTc1NzMgLyogV2Vi
UHJvY2VzcyAqLywKKwkJCQk4REMyRUY1QTA0ODZBNjk0MDA5OEIyMTYgLyogSW5mby5wbGlzdCAq
LywKIAkJCQk2RDhBOTFBNTExRjBFRkQxMDBERDAxRkUgLyogY29tLmFwcGxlLldlYlByb2Nlc3Mu
c2IuaW4gKi8sCiAJCQkJMUNCQzk0NUQxNjUxNUVEMjAwRDY4QUFFIC8qIERvY2sucGRmICovLAog
CQkJCTA4OUMxNjY2RkU4NDExNThDMDJBQUMwNyAvKiBJbmZvUGxpc3Quc3RyaW5ncyAqLywKQEAg
LTI1OTUsNiArMjU4NSw3IEBACiAJCTFBMEVDNkIwMTI0QkJEMzYwMDdFRjRBNSAvKiBQbHVnaW5Q
cm9jZXNzICovID0gewogCQkJaXNhID0gUEJYR3JvdXA7CiAJCQljaGlsZHJlbiA9ICgKKwkJCQlC
QzgyODM4NjE2QjQ1RUYyMDBBMjc4RkUgLyogRW50cnlQb2ludCAqLywKIAkJCQkxQTBFQzdGRDEy
NEJENDAyMDA3RUY0QTUgLyogbWFjICovLAogCQkJCTFBOEVGNENBMTI1MjQwMzcwMEY3MDY3RiAv
KiBQbHVnaW5Db250cm9sbGVyUHJveHkuY3BwICovLAogCQkJCTFBOEVGNEM5MTI1MjQwMzcwMEY3
MDY3RiAvKiBQbHVnaW5Db250cm9sbGVyUHJveHkuaCAqLywKQEAgLTI2MDQsNyArMjU5NSw2IEBA
CiAJCQkJMUEwNDM5NzUxMjREMDM0ODAwRkZCRkI1IC8qIFBsdWdpblByb2Nlc3MuY3BwICovLAog
CQkJCTFBMDQzOTc0MTI0RDAzNDgwMEZGQkZCNSAvKiBQbHVnaW5Qcm9jZXNzLmggKi8sCiAJCQkJ
MUEwRUM2QjExMjRCQkQzNjAwN0VGNEE1IC8qIFBsdWdpblByb2Nlc3MubWVzc2FnZXMuaW4gKi8s
Ci0JCQkJMUEwRUM3RkExMjRCRDNCNjAwN0VGNEE1IC8qIFBsdWdpblByb2Nlc3NNYWluLmggKi8s
CiAJCQkJMUEwNDNBMDgxMjREMTFBOTAwRkZCRkI1IC8qIFdlYlByb2Nlc3NDb25uZWN0aW9uLmNw
cCAqLywKIAkJCQkxQTA0M0EwNzEyNEQxMUE5MDBGRkJGQjUgLyogV2ViUHJvY2Vzc0Nvbm5lY3Rp
b24uaCAqLywKIAkJCQkxQTA0M0Y1OTEyNTE0Q0YzMDBGRkJGQjUgLyogV2ViUHJvY2Vzc0Nvbm5l
Y3Rpb24ubWVzc2FnZXMuaW4gKi8sCkBAIC0yNjIxLDcgKzI2MTEsNiBAQAogCQkJCTFBMkQ5MUE1
MTI4MUQ3MzkwMDFFQjk2MiAvKiBQbHVnaW5Db250cm9sbGVyUHJveHlNYWMubW0gKi8sCiAJCQkJ
RTE0RTk5RjgxNEQ4NzlCNDAwMUQyMjFGIC8qIFBsdWdpblByb2Nlc3MuZW50aXRsZW1lbnRzICov
LAogCQkJCTFBQTQ3OTIyMTJBNTlGRDkwMDgyMzZDMyAvKiBQbHVnaW5Qcm9jZXNzTWFjLm1tICov
LAotCQkJCTFBMEVDODAyMTI0QkQ0MUUwMDdFRjRBNSAvKiBQbHVnaW5Qcm9jZXNzTWFpbk1hYy5t
bSAqLywKIAkJCQkxQUMyNUY4OTEyQTQ4RTAzMDBCRDI2NzEgLyogUGx1Z2luUHJvY2Vzc1NoaW0u
aCAqLywKIAkJCQkxQUMyNUY4QTEyQTQ4RTAzMDBCRDI2NzEgLyogUGx1Z2luUHJvY2Vzc1NoaW0u
bW0gKi8sCiAJCQkpOwpAQCAtMjY3Myw3ICsyNjYyLDYgQEAKIAkJCWlzYSA9IFBCWEdyb3VwOwog
CQkJY2hpbGRyZW4gPSAoCiAJCQkJQkMzMDY1QzMxMjU5MkY4OTAwRTcxMjc4IC8qIFdlYlByb2Nl
c3NNYWMubW0gKi8sCi0JCQkJMUE2RkEwMUQxMUUxNTI2MzAwREIxMzcxIC8qIFdlYlByb2Nlc3NN
YWluTWFjLm1tICovLAogCQkJCUJDREMzMDhBMTVGRDZDRDEwMDZCNjY5NSAvKiBXZWJQcm9jZXNz
U2VydmljZUVudHJ5UG9pbnRzLmggKi8sCiAJCQkJQkNEQzMwODkxNUZENkNEMTAwNkI2Njk1IC8q
IFdlYlByb2Nlc3NTZXJ2aWNlRW50cnlQb2ludHMubW0gKi8sCiAJCQkpOwpAQCAtMjc4OCw2ICsy
Nzc2LDcgQEAKIAkJMUFBRERGNEIxMEQ4MkFGMDAwRDNENjNEIC8qIFNoYXJlZCAqLyA9IHsKIAkJ
CWlzYSA9IFBCWEdyb3VwOwogCQkJY2hpbGRyZW4gPSAoCisJCQkJQkM4MjgzNjgxNkIzNTg3OTAw
QTI3OEZFIC8qIEVudHJ5UG9pbnRVdGlsaXRpZXMgKi8sCiAJCQkJQkNEREIzMTQxMjRFQkNFRjAw
NDhEMTNDIC8qIEFQSSAqLywKIAkJCQk1MThFOEVGMTE2QjIwOEYwMDBFOTE0MjkgLyogQXV0aGVu
dGljYXRpb24gKi8sCiAJCQkJMUFBRjBDNDcxMkIxNjMyODAwOEU0OUUyIC8qIGNmICovLApAQCAt
MzExOCwxNiArMzEwNyw2IEBACiAJCQlwYXRoID0gTm90aWZpY2F0aW9uczsKIAkJCXNvdXJjZVRy
ZWUgPSAiPGdyb3VwPiI7CiAJCX07Ci0JCTMyQzg4REZGMDM3MUMyNDIwMEM5MTc4MyAvKiBPdGhl
ciBTb3VyY2VzICovID0gewotCQkJaXNhID0gUEJYR3JvdXA7Ci0JCQljaGlsZHJlbiA9ICgKLQkJ
CQkxQTZGQTMxMDExRTM5MjFFMDBEQjEzNzEgLyogTWFpbk1hY1Byb2Nlc3MuY3BwICovLAotCQkJ
KTsKLQkJCW5hbWUgPSAiT3RoZXIgU291cmNlcyI7Ci0JCQlzb3VyY2VUcmVlID0gIjxncm91cD4i
OwotCQkJdGFiV2lkdGggPSA4OwotCQkJdXNlc1RhYnMgPSAwOwotCQl9OwogCQkzMzA5MzQ0QjEz
MTVCOTNBMDA5N0E3QkMgLyogQ29va2llcyAqLyA9IHsKIAkJCWlzYSA9IFBCWEdyb3VwOwogCQkJ
Y2hpbGRyZW4gPSAoCkBAIC0zMTg2LDYgKzMxNjUsNyBAQAogCQk1MTBDQzdEQTE2MTM4RTAxMDBE
MDNFRDMgLyogTmV0d29ya1Byb2Nlc3MgKi8gPSB7CiAJCQlpc2EgPSBQQlhHcm91cDsKIAkJCWNo
aWxkcmVuID0gKAorCQkJCUJDODI4MzdDMTZCNDVEQTUwMEEyNzhGRSAvKiBFbnRyeVBvaW50ICov
LAogCQkJCTUxMENDN0RDMTYxMzhFMjkwMEQwM0VEMyAvKiBtYWMgKi8sCiAJCQkJNTEyQzA2ODYx
NjM4RjY3RTAwQUJCOTExIC8qIEhvc3RSZWNvcmQuY3BwICovLAogCQkJCTUxMkMwNjg3MTYzOEY2
N0UwMEFCQjkxMSAvKiBIb3N0UmVjb3JkLmggKi8sCkBAIC0zMTk1LDcgKzMxNzUsNiBAQAogCQkJ
CTUxMENDN0RGMTYxMzhFMjkwMEQwM0VEMyAvKiBOZXR3b3JrUHJvY2Vzcy5jcHAgKi8sCiAJCQkJ
NTEwQ0M3RTAxNjEzOEUyOTAwRDAzRUQzIC8qIE5ldHdvcmtQcm9jZXNzLmggKi8sCiAJCQkJNTFB
OEE2MTcxNjI3RjVCQjAwMEQ5MEU5IC8qIE5ldHdvcmtQcm9jZXNzLm1lc3NhZ2VzLmluICovLAot
CQkJCTUxMENDN0UxMTYxMzhFMjkwMEQwM0VEMyAvKiBOZXR3b3JrUHJvY2Vzc01haW4uaCAqLywK
IAkJCQk1MUZEMThCMzE2NTFGQkFEMDBEQkUxQ0UgLyogTmV0d29ya1Jlc291cmNlTG9hZGVyLmNw
cCAqLywKIAkJCQk1MUZEMThCNDE2NTFGQkFEMDBEQkUxQ0UgLyogTmV0d29ya1Jlc291cmNlTG9h
ZGVyLmggKi8sCiAJCQkJNTE1NzA1NTIxNjU3MDE4QzAwMTAxQTkwIC8qIE5ldHdvcmtSZXNvdXJj
ZUxvYWRlci5tZXNzYWdlcy5pbiAqLywKQEAgLTMyMTMsNyArMzE5Miw2IEBACiAJCQlpc2EgPSBQ
QlhHcm91cDsKIAkJCWNoaWxkcmVuID0gKAogCQkJCTUxQThBNjE1MTYyN0YzRjkwMDBEOTBFOSAv
KiBOZXR3b3JrUHJvY2Vzc01hYy5tbSAqLywKLQkJCQk1MTBDQzdERDE2MTM4RTI5MDBEMDNFRDMg
LyogTmV0d29ya1Byb2Nlc3NNYWluTWFjLm1tICovLAogCQkJCTUxMkMwNjhGMTYzOTBFNjkwMEFC
QjkxMSAvKiBOZXR3b3JrUmVzb3VyY2VMb2FkU2NoZWR1bGVyTWFjLm1tICovLAogCQkJCUUxQjc4
NDcwMTYzRjI0NjkwMDA3QjY5MiAvKiBSZW1vdGVOZXR3b3JraW5nQ29udGV4dC5oICovLAogCQkJ
CUUxQjc4NDcyMTYzRjI1M0UwMDA3QjY5MiAvKiBSZW1vdGVOZXR3b3JraW5nQ29udGV4dC5tbSAq
LywKQEAgLTMyMzQsMTQgKzMyMTIsNiBAQAogCQkJcGF0aCA9IE5ldHdvcms7CiAJCQlzb3VyY2VU
cmVlID0gIjxncm91cD4iOwogCQl9OwotCQk1MTBDQzg0QTE2MTNDOEFCMDBEMDNFRDMgLyogTmV0
d29ya1Byb2Nlc3MgKi8gPSB7Ci0JCQlpc2EgPSBQQlhHcm91cDsKLQkJCWNoaWxkcmVuID0gKAot
CQkJCTUxMENDODE5MTYxM0M3OTkwMEQwM0VEMyAvKiBJbmZvLnBsaXN0ICovLAotCQkJKTsKLQkJ
CW5hbWUgPSBOZXR3b3JrUHJvY2VzczsKLQkJCXNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7Ci0JCX07
CiAJCTUxMjNDRjE4MTMzRDI1RTYwMDU2RjgwMCAvKiBjZyAqLyA9IHsKIAkJCWlzYSA9IFBCWEdy
b3VwOwogCQkJY2hpbGRyZW4gPSAoCkBAIC0zNDMyLDExICszNDAyLDkgQEAKIAkJCQlCQzAzMkQ1
RTEwRjQzNzJCMDA1OEMxNUEgLyogV2ViUGFnZSAqLywKIAkJCQlCQ0U5QzBDRjE0ODU5NjVEMDBF
MzNENjEgLyogV2ViQ29ubmVjdGlvblRvVUlQcm9jZXNzLmNwcCAqLywKIAkJCQlCQ0U5QzBEMDE0
ODU5NjVEMDBFMzNENjEgLyogV2ViQ29ubmVjdGlvblRvVUlQcm9jZXNzLmggKi8sCi0JCQkJMUE2
RkEzMTUxMUUzOTIzNjAwREIxMzcxIC8qIFdlYktpdE1haW4uY3BwICovLAogCQkJCUJDMTExQUUz
MTEyRjVDMjYwMDMzN0JBQiAvKiBXZWJQcm9jZXNzLmNwcCAqLywKIAkJCQlCQzAzMkQ5MTEwRjQz
N0FGMDA1OEMxNUEgLyogV2ViUHJvY2Vzcy5oICovLAogCQkJCUJDMzA2NkI5MTI1QTQzNjMwMEU3
MTI3OCAvKiBXZWJQcm9jZXNzLm1lc3NhZ2VzLmluICovLAotCQkJCTFBNkZBMDFGMTFFMTUyODcw
MERCMTM3MSAvKiBXZWJQcm9jZXNzTWFpbi5oICovLAogCQkJCUJDRTBFNDI0MTY4QjdBMjgwMDU3
RTY2QSAvKiBXZWJQcm9jZXNzU3VwcGxlbWVudC5oICovLAogCQkJKTsKIAkJCXBhdGggPSBXZWJQ
cm9jZXNzOwpAQCAtMzg1Miw4ICszODIwLDYgQEAKIAkJCQlFMUEzMTczMTEzNENFQTZDMDA3QzlB
NEYgLyogQXR0cmlidXRlZFN0cmluZy5oICovLAogCQkJCUUxQTMxNzM0MTM0Q0VBODAwMDdDOUE0
RiAvKiBBdHRyaWJ1dGVkU3RyaW5nLm1tICovLAogCQkJCTlGNTRGODhFMTY0ODhFODcwMDdERjgx
QSAvKiBDaGlsZFByb2Nlc3NNYWMubW0gKi8sCi0JCQkJQkM5QkE1MDcxNjk5MUMzQzAwRTQ0NjE2
IC8qIENoaWxkUHJvY2Vzc01haW4uaCAqLywKLQkJCQlCQzlCQTUwNjE2OTkxQzNDMDBFNDQ2MTYg
LyogQ2hpbGRQcm9jZXNzTWFpbi5tbSAqLywKIAkJCQkxQTJBNEFGRTE1ODY5MzkyMDA5MEM5RTkg
LyogQ29sb3JTcGFjZURhdGEuaCAqLywKIAkJCQkxQTJBNEFGRDE1ODY5MzkyMDA5MEM5RTkgLyog
Q29sb3JTcGFjZURhdGEubW0gKi8sCiAJCQkJMUE2RjlGQjYxMUUxNDA4NTAwREIxMzcxIC8qIENv
bW1hbmRMaW5lTWFjLmNwcCAqLywKQEAgLTM5MDQsMTQgKzM4NzAsNiBAQAogCQkJcGF0aCA9IENv
cmVJUENTdXBwb3J0OwogCQkJc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsKIAkJfTsKLQkJQkMxMjJG
QTUxMzI3MDg1RDAwRjdFQUMxIC8qIFBsdWdpblByb2Nlc3MgKi8gPSB7Ci0JCQlpc2EgPSBQQlhH
cm91cDsKLQkJCWNoaWxkcmVuID0gKAotCQkJCUJDMTIyRkE2MTMyNzA4NzQwMEY3RUFDMSAvKiBJ
bmZvLnBsaXN0ICovLAotCQkJKTsKLQkJCW5hbWUgPSBQbHVnaW5Qcm9jZXNzOwotCQkJc291cmNl
VHJlZSA9ICI8Z3JvdXA+IjsKLQkJfTsKIAkJQkMyMDRFREYxMUM4M0U3MjAwOEYzMzc1IC8qIElu
amVjdGVkQnVuZGxlICovID0gewogCQkJaXNhID0gUEJYR3JvdXA7CiAJCQljaGlsZHJlbiA9ICgK
QEAgLTQwNzMsMjAgKzQwMzEsOTAgQEAKIAkJCXBhdGggPSBET007CiAJCQlzb3VyY2VUcmVlID0g
Ijxncm91cD4iOwogCQl9OwotCQlCQzhBNTAwRTExNzY1QUQ0MDA3NTc1NzMgLyogV2ViS2l0MiAq
LyA9IHsKKwkJQkM4MjgzNjgxNkIzNTg3OTAwQTI3OEZFIC8qIEVudHJ5UG9pbnRVdGlsaXRpZXMg
Ki8gPSB7CiAJCQlpc2EgPSBQQlhHcm91cDsKIAkJCWNoaWxkcmVuID0gKAotCQkJCThEQzJFRjVB
MDQ4NkE2OTQwMDk4QjIxNiAvKiBJbmZvLnBsaXN0ICovLAorCQkJCUJDODI4MzZBMTZCMzU4Nzkw
MEEyNzhGRSAvKiBMZWdhY3lQcm9jZXNzICovLAorCQkJCUJDODI4MzZCMTZCMzU4NzkwMEEyNzhG
RSAvKiBYUENTZXJ2aWNlICovLAogCQkJKTsKLQkJCW5hbWUgPSBXZWJLaXQyOworCQkJcGF0aCA9
IEVudHJ5UG9pbnRVdGlsaXRpZXM7CiAJCQlzb3VyY2VUcmVlID0gIjxncm91cD4iOwogCQl9Owot
CQlCQzhBNTAwRjExNzY1QUUzMDA3NTc1NzMgLyogV2ViUHJvY2VzcyAqLyA9IHsKKwkJQkM4Mjgz
NkExNkIzNTg3OTAwQTI3OEZFIC8qIExlZ2FjeVByb2Nlc3MgKi8gPSB7CiAJCQlpc2EgPSBQQlhH
cm91cDsKIAkJCWNoaWxkcmVuID0gKAotCQkJCUJDOEE1MDEwMTE3NjVBRjcwMDc1NzU3MyAvKiBJ
bmZvLnBsaXN0ICovLAorCQkJCUJDODI4Mzc4MTZCMzZBNEYwMEEyNzhGRSAvKiBDaGlsZFByb2Nl
c3NNYWluLmggKi8sCisJCQkJQkM4MjgzNzkxNkIzNkE0RjAwQTI3OEZFIC8qIENoaWxkUHJvY2Vz
c01haW4ubW0gKi8sCisJCQkJQkM4MjgzNzcxNkIzNjdGODAwQTI3OEZFIC8qIENoaWxkUHJvY2Vz
c01haW5Cb290c3RyYXBwZXIuaCAqLywKIAkJCSk7Ci0JCQluYW1lID0gV2ViUHJvY2VzczsKKwkJ
CW5hbWUgPSBMZWdhY3lQcm9jZXNzOworCQkJcGF0aCA9IG1hYy9MZWdhY3lQcm9jZXNzOworCQkJ
c291cmNlVHJlZSA9ICI8Z3JvdXA+IjsKKwkJfTsKKwkJQkM4MjgzNkIxNkIzNTg3OTAwQTI3OEZF
IC8qIFhQQ1NlcnZpY2UgKi8gPSB7CisJCQlpc2EgPSBQQlhHcm91cDsKKwkJCWNoaWxkcmVuID0g
KAorCQkJKTsKKwkJCW5hbWUgPSBYUENTZXJ2aWNlOworCQkJcGF0aCA9IG1hYy9YUENTZXJ2aWNl
OworCQkJc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsKKwkJfTsKKwkJQkM4MjgzN0MxNkI0NURBNTAw
QTI3OEZFIC8qIEVudHJ5UG9pbnQgKi8gPSB7CisJCQlpc2EgPSBQQlhHcm91cDsKKwkJCWNoaWxk
cmVuID0gKAorCQkJCUJDODI4MzdFMTZCNDVEQTUwMEEyNzhGRSAvKiBMZWdhY3lQcm9jZXNzICov
LAorCQkJKTsKKwkJCW5hbWUgPSBFbnRyeVBvaW50OworCQkJcGF0aCA9IE5ldHdvcmtQcm9jZXNz
L0VudHJ5UG9pbnQ7CisJCQlzb3VyY2VUcmVlID0gIjxncm91cD4iOworCQl9OworCQlCQzgyODM3
RTE2QjQ1REE1MDBBMjc4RkUgLyogTGVnYWN5UHJvY2VzcyAqLyA9IHsKKwkJCWlzYSA9IFBCWEdy
b3VwOworCQkJY2hpbGRyZW4gPSAoCisJCQkJQkM4MjgzN0YxNkI0NURBNTAwQTI3OEZFIC8qIElu
Zm8ucGxpc3QgKi8sCisJCQkJQkM4MjgzODExNkI0NURBNTAwQTI3OEZFIC8qIE5ldHdvcmtQcm9j
ZXNzTWFpbi5tbSAqLywKKwkJCQlCQzgyODM4MDE2QjQ1REE1MDBBMjc4RkUgLyogTmV0d29ya1By
b2Nlc3NNYWluQm9vdHN0cmFwcGVyLmNwcCAqLywKKwkJCSk7CisJCQluYW1lID0gTGVnYWN5UHJv
Y2VzczsKKwkJCXBhdGggPSBtYWMvTGVnYWN5UHJvY2VzczsKKwkJCXNvdXJjZVRyZWUgPSAiPGdy
b3VwPiI7CisJCX07CisJCUJDODI4Mzg2MTZCNDVFRjIwMEEyNzhGRSAvKiBFbnRyeVBvaW50ICov
ID0geworCQkJaXNhID0gUEJYR3JvdXA7CisJCQljaGlsZHJlbiA9ICgKKwkJCQlCQzgyODM4ODE2
QjQ1RUYyMDBBMjc4RkUgLyogTGVnYWN5UHJvY2VzcyAqLywKKwkJCSk7CisJCQlwYXRoID0gRW50
cnlQb2ludDsKKwkJCXNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7CisJCX07CisJCUJDODI4Mzg4MTZC
NDVFRjIwMEEyNzhGRSAvKiBMZWdhY3lQcm9jZXNzICovID0geworCQkJaXNhID0gUEJYR3JvdXA7
CisJCQljaGlsZHJlbiA9ICgKKwkJCQlCQzgyODM4RDE2QjQ1RkE2MDBBMjc4RkUgLyogSW5mby5w
bGlzdCAqLywKKwkJCQlCQzgyODM4QTE2QjQ1RUYyMDBBMjc4RkUgLyogUGx1Z2luUHJvY2Vzc01h
aW4ubW0gKi8sCisJCQkJQkM4MjgzODkxNkI0NUVGMjAwQTI3OEZFIC8qIFBsdWdpblByb2Nlc3NN
YWluQm9vdHN0cmFwcGVyLmNwcCAqLywKKwkJCSk7CisJCQluYW1lID0gTGVnYWN5UHJvY2VzczsK
KwkJCXBhdGggPSBtYWMvTGVnYWN5UHJvY2VzczsKKwkJCXNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7
CisJCX07CisJCUJDODI4MzhFMTZCNDYwMEQwMEEyNzhGRSAvKiBFbnRyeVBvaW50ICovID0gewor
CQkJaXNhID0gUEJYR3JvdXA7CisJCQljaGlsZHJlbiA9ICgKKwkJCQlCQzgyODM5MDE2QjQ2MDBE
MDBBMjc4RkUgLyogTGVnYWN5UHJvY2VzcyAqLywKKwkJCSk7CisJCQlwYXRoID0gRW50cnlQb2lu
dDsKKwkJCXNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7CisJCX07CisJCUJDODI4MzkwMTZCNDYwMEQw
MEEyNzhGRSAvKiBMZWdhY3lQcm9jZXNzICovID0geworCQkJaXNhID0gUEJYR3JvdXA7CisJCQlj
aGlsZHJlbiA9ICgKKwkJCQlCQzgyODM5MTE2QjQ2MDBEMDBBMjc4RkUgLyogSW5mby5wbGlzdCAq
LywKKwkJCQlCQzgyODM5MzE2QjQ2MDdCMDBBMjc4RkUgLyogU2hhcmVkV29ya2VyUHJvY2Vzc01h
aW4ubW0gKi8sCisJCQkJQkM4MjgzOTIxNkI0NjA3QjAwQTI3OEZFIC8qIFNoYXJlZFdvcmtlclBy
b2Nlc3NNYWluQm9vdHN0cmFwcGVyLmNwcCAqLywKKwkJCSk7CisJCQluYW1lID0gTGVnYWN5UHJv
Y2VzczsKKwkJCXBhdGggPSBtYWMvTGVnYWN5UHJvY2VzczsKIAkJCXNvdXJjZVRyZWUgPSAiPGdy
b3VwPiI7CiAJCX07CiAJCUJDOEE1MDEzMTE3NjVGNDUwMDc1NzU3MyAvKiBjcHAgKi8gPSB7CkBA
IC00MTQ1LDYgKzQxNzMsOSBAQAogCQlCQ0FDQzQzRDE2QjI0QzdEMDBCNkUwOTIgLyogTGVnYWN5
UHJvY2VzcyAqLyA9IHsKIAkJCWlzYSA9IFBCWEdyb3VwOwogCQkJY2hpbGRyZW4gPSAoCisJCQkJ
QkM4MjgzNzMxNkIzNUFGOTAwQTI3OEZFIC8qIEluZm8ucGxpc3QgKi8sCisJCQkJQkM4MjgzNjQx
NkIzNTRGNjAwQTI3OEZFIC8qIFdlYkNvbnRlbnRQcm9jZXNzTWFpbi5tbSAqLywKKwkJCQlCQzgy
ODM3NDE2QjM2NzRCMDBBMjc4RkUgLyogV2ViQ29udGVudFByb2Nlc3NNYWluQm9vdHN0cmFwcGVy
LmNwcCAqLywKIAkJCSk7CiAJCQluYW1lID0gTGVnYWN5UHJvY2VzczsKIAkJCXBhdGggPSBtYWMv
TGVnYWN5UHJvY2VzczsKQEAgLTQ1MDQsMTEgKzQ1MzUsMTEgQEAKIAkJRTEzQThBMzUxNjI4NzlB
QzAwMzkyOTI5IC8qIFNoYXJlZFdvcmtlclByb2Nlc3MgKi8gPSB7CiAJCQlpc2EgPSBQQlhHcm91
cDsKIAkJCWNoaWxkcmVuID0gKAorCQkJCUJDODI4MzhFMTZCNDYwMEQwMEEyNzhGRSAvKiBFbnRy
eVBvaW50ICovLAogCQkJCUUxRURGRDlBMTYyODdDRjUwMDM5RUNEQSAvKiBtYWMgKi8sCiAJCQkJ
RTFFREZEOUUxNjI4ODIxMDAwMzlFQ0RBIC8qIFNoYXJlZFdvcmtlclByb2Nlc3MuY3BwICovLAog
CQkJCUUxRURGRDlEMTYyODdGMTkwMDM5RUNEQSAvKiBTaGFyZWRXb3JrZXJQcm9jZXNzLmggKi8s
CiAJCQkJRTFFREZEQTAxNjI4ODMwMzAwMzlFQ0RBIC8qIFNoYXJlZFdvcmtlclByb2Nlc3MubWVz
c2FnZXMuaW4gKi8sCi0JCQkJRTFFREZEOTgxNjI4N0JEMTAwMzlFQ0RBIC8qIFNoYXJlZFdvcmtl
clByb2Nlc3NNYWluLmggKi8sCiAJCQkpOwogCQkJcGF0aCA9IFNoYXJlZFdvcmtlclByb2Nlc3M7
CiAJCQlzb3VyY2VUcmVlID0gIjxncm91cD4iOwpAQCAtNDUzMiwyMCArNDU2MywxMSBAQAogCQkJ
bmFtZSA9IFBERjsKIAkJCXNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7CiAJCX07Ci0JCUUxRURGRDk3
MTYyODdBRUMwMDM5RUNEQSAvKiBTaGFyZWRXb3JrZXJQcm9jZXNzICovID0gewotCQkJaXNhID0g
UEJYR3JvdXA7Ci0JCQljaGlsZHJlbiA9ICgKLQkJCQlFMTNBOEEzNzE2Mjg3OUFDMDAzOTI5Mjkg
LyogSW5mby5wbGlzdCAqLywKLQkJCSk7Ci0JCQluYW1lID0gU2hhcmVkV29ya2VyUHJvY2VzczsK
LQkJCXNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7Ci0JCX07CiAJCUUxRURGRDlBMTYyODdDRjUwMDM5
RUNEQSAvKiBtYWMgKi8gPSB7CiAJCQlpc2EgPSBQQlhHcm91cDsKIAkJCWNoaWxkcmVuID0gKAog
CQkJCUUxRURGREE0MTYyODg0NjQwMDM5RUNEQSAvKiBjb20uYXBwbGUuV2ViS2l0LlNoYXJlZFdv
cmtlclByb2Nlc3Muc2IgKi8sCiAJCQkJRTFFREZEQTIxNjI4ODM4QzAwMzlFQ0RBIC8qIFNoYXJl
ZFdvcmtlclByb2Nlc3NNYWMubW0gKi8sCi0JCQkJRTFFREZEOUIxNjI4N0QwQjAwMzlFQ0RBIC8q
IFNoYXJlZFdvcmtlclByb2Nlc3NNYWluTWFjLm1tICovLAogCQkJKTsKIAkJCXBhdGggPSBtYWM7
CiAJCQlzb3VyY2VUcmVlID0gIjxncm91cD4iOwpAQCAtNDYxMyw3ICs0NjM1LDYgQEAKIAkJCQlC
QzMwNjVGQTEyNTkzNDRFMDBFNzEyNzggLyogQ2FjaGVNb2RlbC5oIGluIEhlYWRlcnMgKi8sCiAJ
CQkJMUFBMkU1MUQxMkU0QzA1RTAwQkM0OTY2IC8qIENHVXRpbGl0aWVzLmggaW4gSGVhZGVycyAq
LywKIAkJCQkxQTJEOTU2RjEyODQ4NTY0MDAxRUI5NjIgLyogQ2hpbGRQcm9jZXNzLmggaW4gSGVh
ZGVycyAqLywKLQkJCQlCQzlCQTUwOTE2OTkxQzNDMDBFNDQ2MTYgLyogQ2hpbGRQcm9jZXNzTWFp
bi5oIGluIEhlYWRlcnMgKi8sCiAJCQkJRTE1MTNDNjcxNjZFQUJCMjAwMTQ5RkNCIC8qIENoaWxk
UHJvY2Vzc1Byb3h5LmggaW4gSGVhZGVycyAqLywKIAkJCQkxQTZGOUY5MDExRTEzRUZDMDBEQjEz
NzEgLyogQ29tbWFuZExpbmUuaCBpbiBIZWFkZXJzICovLAogCQkJCTM3QzRFOUY2MTMxQzZFN0Uw
MDI5QkQ1QSAvKiBjb25maWcuaCBpbiBIZWFkZXJzICovLApAQCAtNDcwMiw3ICs0NzIzLDYgQEAK
IAkJCQk1MTc5NTU2QTE2Mjg3NkYzMDBGQTQzQjYgLyogTmV0d29ya1Byb2Nlc3MuaCBpbiBIZWFk
ZXJzICovLAogCQkJCTUxN0NGMEU0MTYzQTQ4NkMwMEMyOTUwRSAvKiBOZXR3b3JrUHJvY2Vzc0Nv
bm5lY3Rpb25NZXNzYWdlcy5oIGluIEhlYWRlcnMgKi8sCiAJCQkJNTE3OTU1NzExNjI4NzdEMjAw
RkE0M0I2IC8qIE5ldHdvcmtQcm9jZXNzQ3JlYXRpb25QYXJhbWV0ZXJzLmggaW4gSGVhZGVycyAq
LywKLQkJCQk1MTc5NTU2OTE2Mjg3NkVFMDBGQTQzQjYgLyogTmV0d29ya1Byb2Nlc3NNYWluLmgg
aW4gSGVhZGVycyAqLywKIAkJCQk1MTYzMTk5NTE2Mjg5QTYzMDBFMjJGMDAgLyogTmV0d29ya1By
b2Nlc3NNZXNzYWdlcy5oIGluIEhlYWRlcnMgKi8sCiAJCQkJNTE3OTU1NkUxNjI4NzdCMzAwRkE0
M0I2IC8qIE5ldHdvcmtQcm9jZXNzUHJveHkuaCBpbiBIZWFkZXJzICovLAogCQkJCTUxM0ExNjNE
MTYzMDg4RjYwMDVEN0QyMiAvKiBOZXR3b3JrUHJvY2Vzc1Byb3h5TWVzc2FnZXMuaCBpbiBIZWFk
ZXJzICovLApAQCAtNDc0OSw3ICs0NzY5LDYgQEAKIAkJCQkxQTBFQzkwRjEyNEMwQUY1MDA3RUY0
QTUgLyogUGx1Z2luUHJvY2Vzc0Nvbm5lY3Rpb25NYW5hZ2VyLmggaW4gSGVhZGVycyAqLywKIAkJ
CQkxQTJCQjZEMTE0MTE3QjREMDAwRjM1RDQgLyogUGx1Z2luUHJvY2Vzc0Nvbm5lY3Rpb25NZXNz
YWdlcy5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMUEyRDkwRDIxMjgxQzk2NjAwMUVCOTYyIC8qIFBs
dWdpblByb2Nlc3NDcmVhdGlvblBhcmFtZXRlcnMuaCBpbiBIZWFkZXJzICovLAotCQkJCTFBMEVD
N0ZCMTI0QkQzQjYwMDdFRjRBNSAvKiBQbHVnaW5Qcm9jZXNzTWFpbi5oIGluIEhlYWRlcnMgKi8s
CiAJCQkJMUEwRUM2MDMxMjRBOUYyQzAwN0VGNEE1IC8qIFBsdWdpblByb2Nlc3NNYW5hZ2VyLmgg
aW4gSGVhZGVycyAqLywKIAkJCQkxQTBFQzZDMDEyNEJCRDlCMDA3RUY0QTUgLyogUGx1Z2luUHJv
Y2Vzc01lc3NhZ2VzLmggaW4gSGVhZGVycyAqLywKIAkJCQkxQTBFQzc1RTEyNEJDN0IyMDA3RUY0
QTUgLyogUGx1Z2luUHJvY2Vzc1Byb3h5LmggaW4gSGVhZGVycyAqLywKQEAgLTQ5MzIsNyArNDk1
MSw2IEBACiAJCQkJMUEwNDNBMDkxMjREMTFBOTAwRkZCRkI1IC8qIFdlYlByb2Nlc3NDb25uZWN0
aW9uLmggaW4gSGVhZGVycyAqLywKIAkJCQkxQTA0M0Y2QTEyNTE0RDhCMDBGRkJGQjUgLyogV2Vi
UHJvY2Vzc0Nvbm5lY3Rpb25NZXNzYWdlcy5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQkMzMDY4MjQx
MjVBNkI5NDAwRTcxMjc4IC8qIFdlYlByb2Nlc3NDcmVhdGlvblBhcmFtZXRlcnMuaCBpbiBIZWFk
ZXJzICovLAotCQkJCTFBNkZBMDIwMTFFMTUyODcwMERCMTM3MSAvKiBXZWJQcm9jZXNzTWFpbi5o
IGluIEhlYWRlcnMgKi8sCiAJCQkJQkMzMDY2QkYxMjVBNDQyMTAwRTcxMjc4IC8qIFdlYlByb2Nl
c3NNZXNzYWdlcy5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQkMwMzJERDUxMEY0Mzg5RjAwNThDMTVB
IC8qIFdlYlByb2Nlc3NQcm94eS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQkNFRTdBRDExMjgxNzk4
ODAwOTgyN0RBIC8qIFdlYlByb2Nlc3NQcm94eU1lc3NhZ2VzLmggaW4gSGVhZGVycyAqLywKQEAg
LTUxMDcsNiArNTEyNSw3IEBACiAJCQkJNTE4RThGMDgxNkIyMDkzNzAwRTkxNDI5IC8qIERvd25s
b2FkLmggaW4gSGVhZGVycyAqLywKIAkJCQk1MThFOEYwQTE2QjIwOTM3MDBFOTE0MjkgLyogRG93
bmxvYWRBdXRoZW50aWNhdGlvbkNsaWVudC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJNTE4RThGMEMx
NkIyMDkzNzAwRTkxNDI5IC8qIERvd25sb2FkTWFuYWdlci5oIGluIEhlYWRlcnMgKi8sCisJCQkJ
QkM4MjgzN0ExNkIzNkE0RjAwQTI3OEZFIC8qIENoaWxkUHJvY2Vzc01haW4uaCBpbiBIZWFkZXJz
ICovLAogCQkJKTsKIAkJCXJ1bk9ubHlGb3JEZXBsb3ltZW50UG9zdHByb2Nlc3NpbmcgPSAwOwog
CQl9OwpAQCAtNTU0MSw4ICs1NTYwLDggQEAKIAkJCWlzYSA9IFBCWFNvdXJjZXNCdWlsZFBoYXNl
OwogCQkJYnVpbGRBY3Rpb25NYXNrID0gMjE0NzQ4MzY0NzsKIAkJCWZpbGVzID0gKAotCQkJCTFB
NkZBMzExMTFFMzkyMUUwMERCMTM3MSAvKiBNYWluTWFjUHJvY2Vzcy5jcHAgaW4gU291cmNlcyAq
LywKIAkJCQkxQTE3NjM1NjE2QjFENUQwMDBEODhGRDYgLyogU3RvcmFnZU5hbWVzcGFjZVByb3h5
LmNwcCBpbiBTb3VyY2VzICovLAorCQkJCUJDODI4Mzc2MTZCMzY3NEIwMEEyNzhGRSAvKiBXZWJD
b250ZW50UHJvY2Vzc01haW5Cb290c3RyYXBwZXIuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkpOwog
CQkJcnVuT25seUZvckRlcGxveW1lbnRQb3N0cHJvY2Vzc2luZyA9IDA7CiAJCX07CkBAIC01NTY2
LDcgKzU1ODUsNyBAQAogCQkJaXNhID0gUEJYU291cmNlc0J1aWxkUGhhc2U7CiAJCQlidWlsZEFj
dGlvbk1hc2sgPSAyMTQ3NDgzNjQ3OwogCQkJZmlsZXMgPSAoCi0JCQkJNTEwQ0M4NEYxNjEzQzky
QzAwRDAzRUQzIC8qIE1haW5NYWNQcm9jZXNzLmNwcCBpbiBTb3VyY2VzICovLAorCQkJCUJDODI4
Mzg1MTZCNDVEQjcwMEEyNzhGRSAvKiBOZXR3b3JrUHJvY2Vzc01haW5Cb290c3RyYXBwZXIuY3Bw
IGluIFNvdXJjZXMgKi8sCiAJCQkpOwogCQkJcnVuT25seUZvckRlcGxveW1lbnRQb3N0cHJvY2Vz
c2luZyA9IDA7CiAJCX07CkBAIC01NTkzLDcgKzU2MTIsNiBAQAogCQkJCTFBQTJFNTFFMTJFNEMw
NUUwMEJDNDk2NiAvKiBDR1V0aWxpdGllcy5jcHAgaW4gU291cmNlcyAqLywKIAkJCQkxQTJEOTU3
MDEyODQ4NTY0MDAxRUI5NjIgLyogQ2hpbGRQcm9jZXNzLmNwcCBpbiBTb3VyY2VzICovLAogCQkJ
CTlGNTRGODhGMTY0ODhFODcwMDdERjgxQSAvKiBDaGlsZFByb2Nlc3NNYWMubW0gaW4gU291cmNl
cyAqLywKLQkJCQlCQzlCQTUwODE2OTkxQzNDMDBFNDQ2MTYgLyogQ2hpbGRQcm9jZXNzTWFpbi5t
bSBpbiBTb3VyY2VzICovLAogCQkJCUUxNTEzQzY2MTY2RUFCQjIwMDE0OUZDQiAvKiBDaGlsZFBy
b2Nlc3NQcm94eS5jcHAgaW4gU291cmNlcyAqLywKIAkJCQkxQTJBNEIwRTE1ODZBMjI0MDA5MEM5
RTkgLyogQ29sb3JTcGFjZURhdGEubW0gaW4gU291cmNlcyAqLywKIAkJCQkxQTZGOUZCNzExRTE0
MDg1MDBEQjEzNzEgLyogQ29tbWFuZExpbmVNYWMuY3BwIGluIFNvdXJjZXMgKi8sCkBAIC01Njg2
LDcgKzU3MDQsNiBAQAogCQkJCTUxN0NGMEUzMTYzQTQ4NkMwMEMyOTUwRSAvKiBOZXR3b3JrUHJv
Y2Vzc0Nvbm5lY3Rpb25NZXNzYWdlUmVjZWl2ZXIuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJNTE3
OTU1NzAxNjI4NzdDRjAwRkE0M0I2IC8qIE5ldHdvcmtQcm9jZXNzQ3JlYXRpb25QYXJhbWV0ZXJz
LmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTUxNzk1NTY3MTYyODc2Q0IwMEZBNDNCNiAvKiBOZXR3
b3JrUHJvY2Vzc01hYy5tbSBpbiBTb3VyY2VzICovLAotCQkJCTUxNzk1NTY1MTYyODc2QzUwMEZB
NDNCNiAvKiBOZXR3b3JrUHJvY2Vzc01haW5NYWMubW0gaW4gU291cmNlcyAqLywKIAkJCQk1MTYz
MTk5NDE2Mjg5QTYwMDBFMjJGMDAgLyogTmV0d29ya1Byb2Nlc3NNZXNzYWdlUmVjZWl2ZXIuY3Bw
IGluIFNvdXJjZXMgKi8sCiAJCQkJNTE3OTU1NkQxNjI4NzdCMTAwRkE0M0I2IC8qIE5ldHdvcmtQ
cm9jZXNzUHJveHkuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJNTE2MzE5OTIxNjI4OTgwQTAwRTIy
RjAwIC8qIE5ldHdvcmtQcm9jZXNzUHJveHlNYWMubW0gaW4gU291cmNlcyAqLywKQEAgLTU3Mzcs
NyArNTc1NCw2IEBACiAJCQkJMUEyQkI2RDAxNDExN0I0RDAwMEYzNUQ0IC8qIFBsdWdpblByb2Nl
c3NDb25uZWN0aW9uTWVzc2FnZVJlY2VpdmVyLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTFBMkQ5
MEQzMTI4MUM5NjYwMDFFQjk2MiAvKiBQbHVnaW5Qcm9jZXNzQ3JlYXRpb25QYXJhbWV0ZXJzLmNw
cCBpbiBTb3VyY2VzICovLAogCQkJCTFBQTQ3OTIzMTJBNTlGRDkwMDgyMzZDMyAvKiBQbHVnaW5Q
cm9jZXNzTWFjLm1tIGluIFNvdXJjZXMgKi8sCi0JCQkJMUEwRUM4MDMxMjRCRDQxRTAwN0VGNEE1
IC8qIFBsdWdpblByb2Nlc3NNYWluTWFjLm1tIGluIFNvdXJjZXMgKi8sCiAJCQkJMUEwRUM2MDQx
MjRBOUYyQzAwN0VGNEE1IC8qIFBsdWdpblByb2Nlc3NNYW5hZ2VyLmNwcCBpbiBTb3VyY2VzICov
LAogCQkJCTlGNTRGODk1MTY0OEFFMEYwMDdERjgxQSAvKiBQbHVnaW5Qcm9jZXNzTWFuYWdlck1h
Yy5tbSBpbiBTb3VyY2VzICovLAogCQkJCTFBMDQzQ0VCMTI0RkUzOEYwMEZGQkZCNSAvKiBQbHVn
aW5Qcm9jZXNzTWVzc2FnZVJlY2VpdmVyLmNwcCBpbiBTb3VyY2VzICovLApAQCAtNTc3NSw3ICs1
NzkxLDYgQEAKIAkJCQlFMUVERkRBOTE2Mjg4NkFDMDAzOUVDREEgLyogU2hhcmVkV29ya2VyUHJv
Y2Vzcy5jcHAgaW4gU291cmNlcyAqLywKIAkJCQlFMUVERkRCMDE2Mjg4OTgyMDAzOUVDREEgLyog
U2hhcmVkV29ya2VyUHJvY2Vzc0NyZWF0aW9uUGFyYW1ldGVycy5jcHAgaW4gU291cmNlcyAqLywK
IAkJCQlFMUVERkRBODE2Mjg4Njk5MDAzOUVDREEgLyogU2hhcmVkV29ya2VyUHJvY2Vzc01hYy5t
bSBpbiBTb3VyY2VzICovLAotCQkJCUUxRURGREE3MTYyODg2OTYwMDM5RUNEQSAvKiBTaGFyZWRX
b3JrZXJQcm9jZXNzTWFpbk1hYy5tbSBpbiBTb3VyY2VzICovLAogCQkJCUUxRURGRTEyMTYyOENG
QjIwMDM5RUNEQSAvKiBTaGFyZWRXb3JrZXJQcm9jZXNzTWFuYWdlci5jcHAgaW4gU291cmNlcyAq
LywKIAkJCQk5RjRGNTk0MjE2NDhCNDA3MDA0OTNCN0UgLyogU2hhcmVkV29ya2VyUHJvY2Vzc01h
bmFnZXJNYWMubW0gaW4gU291cmNlcyAqLywKIAkJCQlFMUVERkRCNTE2MjhBRDczMDAzOUVDREEg
LyogU2hhcmVkV29ya2VyUHJvY2Vzc01lc3NhZ2VSZWNlaXZlci5jcHAgaW4gU291cmNlcyAqLywK
QEAgLTU4OTMsNyArNTkwOCw2IEBACiAJCQkJNTFBOUUxMDUxMzE1Q0NGQzAwOUU3MDMxIC8qIFdl
YktleVZhbHVlU3RvcmFnZU1hbmFnZXJQcm94eS5jcHAgaW4gU291cmNlcyAqLywKIAkJCQk1MUE5
RTEyQTEzMTVFRDM1MDA5RTcwMzEgLyogV2ViS2V5VmFsdWVTdG9yYWdlTWFuYWdlclByb3h5TWVz
c2FnZVJlY2VpdmVyLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCUJDOUJBNTA0MTY5N0M0NTMwMEU0
NDYxNiAvKiBXZWJLaXQySW5pdGlhbGl6ZS5jcHAgaW4gU291cmNlcyAqLywKLQkJCQkxQTZGQTMx
NjExRTM5MjM2MDBEQjEzNzEgLyogV2ViS2l0TWFpbi5jcHAgaW4gU291cmNlcyAqLywKIAkJCQlC
Q0I5RTc2MjExMjMyQjlFMDBBMTM3RTAgLyogV2ViTG9hZGVyQ2xpZW50LmNwcCBpbiBTb3VyY2Vz
ICovLAogCQkJCTMzRDNBM0MxMTMzOTYwQjAwMDcwOUJFNCAvKiBXZWJNZWRpYUNhY2hlTWFuYWdl
ci5jcHAgaW4gU291cmNlcyAqLywKIAkJCQkzM0QzQTNDODEzMzk2MTc5MDA3MDlCRTQgLyogV2Vi
TWVkaWFDYWNoZU1hbmFnZXJNZXNzYWdlUmVjZWl2ZXIuY3BwIGluIFNvdXJjZXMgKi8sCkBAIC01
OTQ0LDcgKzU5NTgsNiBAQAogCQkJCTFBMDQzRjY5MTI1MTREOEIwMEZGQkZCNSAvKiBXZWJQcm9j
ZXNzQ29ubmVjdGlvbk1lc3NhZ2VSZWNlaXZlci5jcHAgaW4gU291cmNlcyAqLywKIAkJCQlCQzMw
NjgyNTEyNUE2Qjk0MDBFNzEyNzggLyogV2ViUHJvY2Vzc0NyZWF0aW9uUGFyYW1ldGVycy5jcHAg
aW4gU291cmNlcyAqLywKIAkJCQlCQzMwNjVDNDEyNTkyRjg5MDBFNzEyNzggLyogV2ViUHJvY2Vz
c01hYy5tbSBpbiBTb3VyY2VzICovLAotCQkJCTFBNkZBMDFFMTFFMTUyNjMwMERCMTM3MSAvKiBX
ZWJQcm9jZXNzTWFpbk1hYy5tbSBpbiBTb3VyY2VzICovLAogCQkJCUJDMzA2NkJFMTI1QTQ0MjEw
MEU3MTI3OCAvKiBXZWJQcm9jZXNzTWVzc2FnZVJlY2VpdmVyLmNwcCBpbiBTb3VyY2VzICovLAog
CQkJCUJDMTExQjExMTEyRjVFNEYwMDMzN0JBQiAvKiBXZWJQcm9jZXNzUHJveHkuY3BwIGluIFNv
dXJjZXMgKi8sCiAJCQkJNTFEMTMwNTgxMzgyRjEwNTAwMzUxRUREIC8qIFdlYlByb2Nlc3NQcm94
eU1hYy5tbSBpbiBTb3VyY2VzICovLApAQCAtNjA4OSw2ICs2MTAyLDExIEBACiAJCQkJNTE4RThG
MDkxNkIyMDkzNzAwRTkxNDI5IC8qIERvd25sb2FkQXV0aGVudGljYXRpb25DbGllbnQuY3BwIGlu
IFNvdXJjZXMgKi8sCiAJCQkJNTE4RThGMEIxNkIyMDkzNzAwRTkxNDI5IC8qIERvd25sb2FkTWFu
YWdlci5jcHAgaW4gU291cmNlcyAqLywKIAkJCQk1MThFOEYwRDE2QjIwOTM3MDBFOTE0MjkgLyog
RG93bmxvYWRNYWMubW0gaW4gU291cmNlcyAqLywKKwkJCQlCQzgyODM2NTE2QjM1NEY2MDBBMjc4
RkUgLyogV2ViQ29udGVudFByb2Nlc3NNYWluLm1tIGluIFNvdXJjZXMgKi8sCisJCQkJQkM4Mjgz
N0IxNkIzNkE0RjAwQTI3OEZFIC8qIENoaWxkUHJvY2Vzc01haW4ubW0gaW4gU291cmNlcyAqLywK
KwkJCQlCQzgyODM4NDE2QjQ1REE1MDBBMjc4RkUgLyogTmV0d29ya1Byb2Nlc3NNYWluLm1tIGlu
IFNvdXJjZXMgKi8sCisJCQkJQkM4MjgzOEMxNkI0NUYwNzAwQTI3OEZFIC8qIFBsdWdpblByb2Nl
c3NNYWluLm1tIGluIFNvdXJjZXMgKi8sCisJCQkJQkM4MjgzOTUxNkI0NjA4MzAwQTI3OEZFIC8q
IFNoYXJlZFdvcmtlclByb2Nlc3NNYWluLm1tIGluIFNvdXJjZXMgKi8sCiAJCQkpOwogCQkJcnVu
T25seUZvckRlcGxveW1lbnRQb3N0cHJvY2Vzc2luZyA9IDA7CiAJCX07CkBAIC02MTEyLDcgKzYx
MzAsNyBAQAogCQkJaXNhID0gUEJYU291cmNlc0J1aWxkUGhhc2U7CiAJCQlidWlsZEFjdGlvbk1h
c2sgPSAyMTQ3NDgzNjQ3OwogCQkJZmlsZXMgPSAoCi0JCQkJQkNERTA5M0IxMzI3MjQ5NjAwMTI1
OUZCIC8qIE1haW5NYWNQcm9jZXNzLmNwcCBpbiBTb3VyY2VzICovLAorCQkJCUJDODI4MzhCMTZC
NDVFRkYwMEEyNzhGRSAvKiBQbHVnaW5Qcm9jZXNzTWFpbkJvb3RzdHJhcHBlci5jcHAgaW4gU291
cmNlcyAqLywKIAkJCSk7CiAJCQlydW5Pbmx5Rm9yRGVwbG95bWVudFBvc3Rwcm9jZXNzaW5nID0g
MDsKIAkJfTsKQEAgLTYxMjAsNyArNjEzOCw3IEBACiAJCQlpc2EgPSBQQlhTb3VyY2VzQnVpbGRQ
aGFzZTsKIAkJCWJ1aWxkQWN0aW9uTWFzayA9IDIxNDc0ODM2NDc7CiAJCQlmaWxlcyA9ICgKLQkJ
CQlFMUVERkRBNjE2Mjg4NjhFMDAzOUVDREEgLyogTWFpbk1hY1Byb2Nlc3MuY3BwIGluIFNvdXJj
ZXMgKi8sCisJCQkJQkM4MjgzOTQxNkI0NjA4MDAwQTI3OEZFIC8qIFNoYXJlZFdvcmtlclByb2Nl
c3NNYWluQm9vdHN0cmFwcGVyLmNwcCBpbiBTb3VyY2VzICovLAogCQkJKTsKIAkJCXJ1bk9ubHlG
b3JEZXBsb3ltZW50UG9zdHByb2Nlc3NpbmcgPSAwOwogCQl9OwpJbmRleDogU291cmNlL1dlYktp
dDIvV2ViUHJvY2Vzcy9JbmZvLnBsaXN0Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQyL1dl
YlByb2Nlc3MvSW5mby5wbGlzdAkocmV2aXNpb24gMTQwOTEyKQorKysgU291cmNlL1dlYktpdDIv
V2ViUHJvY2Vzcy9JbmZvLnBsaXN0CSh3b3JraW5nIGNvcHkpCkBAIC0xLDMyICswLDAgQEAKLTw/
eG1sIHZlcnNpb249IjEuMCIgZW5jb2Rpbmc9IlVURi04Ij8+Ci08IURPQ1RZUEUgcGxpc3QgUFVC
TElDICItLy9BcHBsZS8vRFREIFBMSVNUIDEuMC8vRU4iICJodHRwOi8vd3d3LmFwcGxlLmNvbS9E
VERzL1Byb3BlcnR5TGlzdC0xLjAuZHRkIj4KLTxwbGlzdCB2ZXJzaW9uPSIxLjAiPgotPGRpY3Q+
Ci0JPGtleT5DRkJ1bmRsZUV4ZWN1dGFibGU8L2tleT4KLQk8c3RyaW5nPiR7UFJPRFVDVF9OQU1F
fTwvc3RyaW5nPgotCTxrZXk+Q0ZCdW5kbGVHZXRJbmZvU3RyaW5nPC9rZXk+Ci0JPHN0cmluZz4k
e0JVTkRMRV9WRVJTSU9OfSwgQ29weXJpZ2h0IDIwMDMtMjAxMyBBcHBsZSBJbmMuPC9zdHJpbmc+
Ci0JPGtleT5DRkJ1bmRsZUljb25GaWxlPC9rZXk+Ci0JPHN0cmluZz4ke0FQUF9JQ09OfTwvc3Ry
aW5nPgotCTxrZXk+Q0ZCdW5kbGVJZGVudGlmaWVyPC9rZXk+Ci0JPHN0cmluZz5jb20uYXBwbGUu
JHtQUk9EVUNUX05BTUV9PC9zdHJpbmc+Ci0JPGtleT5DRkJ1bmRsZUluZm9EaWN0aW9uYXJ5VmVy
c2lvbjwva2V5PgotCTxzdHJpbmc+Ni4wPC9zdHJpbmc+Ci0JPGtleT5DRkJ1bmRsZU5hbWU8L2tl
eT4KLQk8c3RyaW5nPiR7UFJPRFVDVF9OQU1FfTwvc3RyaW5nPgotCTxrZXk+Q0ZCdW5kbGVQYWNr
YWdlVHlwZTwva2V5PgotCTxzdHJpbmc+QVBQTDwvc3RyaW5nPgotCTxrZXk+Q0ZCdW5kbGVTaG9y
dFZlcnNpb25TdHJpbmc8L2tleT4KLQk8c3RyaW5nPiR7U0hPUlRfVkVSU0lPTl9TVFJJTkd9PC9z
dHJpbmc+Ci0JPGtleT5DRkJ1bmRsZVZlcnNpb248L2tleT4KLQk8c3RyaW5nPiR7QlVORExFX1ZF
UlNJT059PC9zdHJpbmc+Ci0JPGtleT5MU0ZpbGVRdWFyYW50aW5lRW5hYmxlZDwva2V5PgotCTx0
cnVlLz4KLQk8a2V5PkxTTWluaW11bVN5c3RlbVZlcnNpb248L2tleT4KLQk8c3RyaW5nPiR7TUFD
T1NYX0RFUExPWU1FTlRfVEFSR0VUfTwvc3RyaW5nPgotCTxrZXk+TFNVSUVsZW1lbnQ8L2tleT4K
LQk8dHJ1ZS8+Ci0JPGtleT5OU1ByaW5jaXBhbENsYXNzPC9rZXk+Ci0JPHN0cmluZz5OU0FwcGxp
Y2F0aW9uPC9zdHJpbmc+Ci08L2RpY3Q+Ci08L3BsaXN0PgpJbmRleDogU291cmNlL1dlYktpdDIv
V2ViUHJvY2Vzcy9XZWJLaXRNYWluLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0Mi9X
ZWJQcm9jZXNzL1dlYktpdE1haW4uY3BwCShyZXZpc2lvbiAxNDA5MTIpCisrKyBTb3VyY2UvV2Vi
S2l0Mi9XZWJQcm9jZXNzL1dlYktpdE1haW4uY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0xLDg5ICsw
LDAgQEAKLS8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMTAgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJl
c2VydmVkLgotICoKLSAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5h
cnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAotICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVk
IHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCi0gKiBhcmUgbWV0OgotICog
MS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBj
b3B5cmlnaHQKLSAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBm
b2xsb3dpbmcgZGlzY2xhaW1lci4KLSAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9y
bSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICBub3RpY2UsIHRoaXMg
bGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCi0g
KiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0
aGUgZGlzdHJpYnV0aW9uLgotICoKLSAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQ
TEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKLSAqIEFORCBBTlkgRVhQUkVT
UyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAot
ICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1Mg
Rk9SIEEgUEFSVElDVUxBUgotICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQg
U0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCi0gKiBCRSBMSUFCTEUgRk9SIEFO
WSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCi0g
KiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQ
Uk9DVVJFTUVOVCBPRgotICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBV
U0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCi0gKiBJTlRFUlJVUFRJT04pIEhPV0VW
RVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgotICog
Q09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNF
IE9SIE9USEVSV0lTRSkKLSAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBU
SElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKLSAqIFRIRSBQT1NTSUJJTElUWSBPRiBT
VUNIIERBTUFHRS4KLSAqLwotCi0jaW5jbHVkZSAiY29uZmlnLmgiCi0jaW5jbHVkZSAiQ29tbWFu
ZExpbmUuaCIKLQotI2luY2x1ZGUgIlBsdWdpblByb2Nlc3NNYWluLmgiCi0jaW5jbHVkZSAiUHJv
Y2Vzc0xhdW5jaGVyLmgiCi0jaW5jbHVkZSAiV2ViUHJvY2Vzc01haW4uaCIKLSNpbmNsdWRlIDx3
dGYvdGV4dC9DU3RyaW5nLmg+Ci0KLSNpZiBFTkFCTEUoTkVUV09SS19QUk9DRVNTKQotI2luY2x1
ZGUgIk5ldHdvcmtQcm9jZXNzTWFpbi5oIgotI2VuZGlmCi0KLSNpZiBFTkFCTEUoU0hBUkVEX1dP
UktFUl9QUk9DRVNTKQotI2luY2x1ZGUgIlNoYXJlZFdvcmtlclByb2Nlc3NNYWluLmgiCi0jZW5k
aWYKLQotI2lmIFBMQVRGT1JNKE1BQykKLSNpbmNsdWRlIDxvYmpjL29iamMtYXV0by5oPgotI2Vu
ZGlmCi0KLXVzaW5nIG5hbWVzcGFjZSBXZWJLaXQ7Ci0KLXN0YXRpYyBpbnQgV2ViS2l0TWFpbihj
b25zdCBDb21tYW5kTGluZSYgY29tbWFuZExpbmUpCi17Ci0gICAgUHJvY2Vzc0xhdW5jaGVyOjpQ
cm9jZXNzVHlwZSBwcm9jZXNzVHlwZTsgICAgCi0gICAgaWYgKCFQcm9jZXNzTGF1bmNoZXI6Omdl
dFByb2Nlc3NUeXBlRnJvbVN0cmluZyhjb21tYW5kTGluZVsidHlwZSJdLnV0ZjgoKS5kYXRhKCks
IHByb2Nlc3NUeXBlKSkKLSAgICAgICAgcmV0dXJuIEVYSVRfRkFJTFVSRTsKLQotICAgIHN3aXRj
aCAocHJvY2Vzc1R5cGUpIHsKLSAgICAgICAgY2FzZSBQcm9jZXNzTGF1bmNoZXI6OldlYlByb2Nl
c3M6Ci0gICAgICAgICAgICByZXR1cm4gV2ViUHJvY2Vzc01haW4oY29tbWFuZExpbmUpOwotI2lm
IEVOQUJMRShQTFVHSU5fUFJPQ0VTUykKLSAgICAgICAgY2FzZSBQcm9jZXNzTGF1bmNoZXI6OlBs
dWdpblByb2Nlc3M6Ci0gICAgICAgICAgICByZXR1cm4gUGx1Z2luUHJvY2Vzc01haW4oY29tbWFu
ZExpbmUpOwotI2VuZGlmCi0jaWYgRU5BQkxFKE5FVFdPUktfUFJPQ0VTUykKLSAgICAgICAgY2Fz
ZSBQcm9jZXNzTGF1bmNoZXI6Ok5ldHdvcmtQcm9jZXNzOgotICAgICAgICAgICAgcmV0dXJuIE5l
dHdvcmtQcm9jZXNzTWFpbihjb21tYW5kTGluZSk7Ci0jZW5kaWYKLSNpZiBFTkFCTEUoU0hBUkVE
X1dPUktFUl9QUk9DRVNTKQotICAgICAgICBjYXNlIFByb2Nlc3NMYXVuY2hlcjo6U2hhcmVkV29y
a2VyUHJvY2VzczoKLSAgICAgICAgICAgIHJldHVybiBTaGFyZWRXb3JrZXJQcm9jZXNzTWFpbihj
b21tYW5kTGluZSk7Ci0jZW5kaWYKLSAgICB9Ci0KLSAgICByZXR1cm4gRVhJVF9GQUlMVVJFOwot
fQotCi0jaWYgUExBVEZPUk0oTUFDKQotCi1leHRlcm4gIkMiIFdLX0VYUE9SVCBpbnQgV2ViS2l0
TWFpbihpbnQgYXJnYywgY2hhcioqIGFyZ3YpOwotCi1pbnQgV2ViS2l0TWFpbihpbnQgYXJnYywg
Y2hhcioqIGFyZ3YpCi17Ci0gICAgQVNTRVJUKCFvYmpjX2NvbGxlY3RpbmdFbmFibGVkKCkpOwot
ICAgIAotICAgIENvbW1hbmRMaW5lIGNvbW1hbmRMaW5lOwotICAgIGlmICghY29tbWFuZExpbmUu
cGFyc2UoYXJnYywgYXJndikpCi0gICAgICAgIHJldHVybiBFWElUX0ZBSUxVUkU7Ci0gICAgCi0g
ICAgcmV0dXJuIFdlYktpdE1haW4oY29tbWFuZExpbmUpOwotfQotCi0jZW5kaWYKSW5kZXg6IFNv
dXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUHJvY2Vzc01haW4uaAo9PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBT
b3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlByb2Nlc3NNYWluLmgJKHJldmlzaW9uIDE0MDkx
MikKKysrIFNvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUHJvY2Vzc01haW4uaAkod29ya2lu
ZyBjb3B5KQpAQCAtMSwzOSArMCwwIEBACi0vKgotICogQ29weXJpZ2h0IChDKSAyMDEwIEFwcGxl
IEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KLSAqCi0gKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNl
IGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKLSAqIG1vZGlmaWNh
dGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9u
cwotICogYXJlIG1ldDoKLSAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0
IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBj
b25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCi0gKiAyLiBSZWRpc3RyaWJ1
dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAot
ICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBk
aXNjbGFpbWVyIGluIHRoZQotICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJp
YWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KLSAqCi0gKiBUSElTIFNPRlRXQVJF
IElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycn
Ci0gKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJV
VCBOT1QgTElNSVRFRCBUTywKLSAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRB
QklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKLSAqIFBVUlBPU0UgQVJFIERJU0NM
QUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUwot
ICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lB
TCwgRVhFTVBMQVJZLCBPUgotICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJV
VCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKLSAqIFNVQlNUSVRVVEUgR09PRFMgT1Ig
U0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUwotICog
SU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJ
VFksIFdIRVRIRVIgSU4KLSAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJ
TkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCi0gKiBBUklTSU5HIElOIEFOWSBXQVkg
T1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCi0gKiBU
SEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCi0gKi8KLQotI2lmbmRlZiBXZWJQcm9jZXNz
TWFpbl9oCi0jZGVmaW5lIFdlYlByb2Nlc3NNYWluX2gKLQotI2luY2x1ZGUgIldLQmFzZS5oIgot
Ci1uYW1lc3BhY2UgV2ViS2l0IHsKLQotY2xhc3MgQ29tbWFuZExpbmU7Ci0KLWludCBXZWJQcm9j
ZXNzTWFpbihjb25zdCBDb21tYW5kTGluZSYpOwotCi19IC8vIG5hbWVzcGFjZSBXZWJLaXQKLQot
I2VuZGlmIC8vIFdlYlByb2Nlc3NNYWluX2gKSW5kZXg6IFNvdXJjZS9XZWJLaXQyL1dlYlByb2Nl
c3MvRW50cnlQb2ludC9tYWMvTGVnYWN5UHJvY2Vzcy9JbmZvLnBsaXN0Cj09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0t
IFNvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvRW50cnlQb2ludC9tYWMvTGVnYWN5UHJvY2Vzcy9J
bmZvLnBsaXN0CShyZXZpc2lvbiAxNDA4NzcpCShmcm9tIFNvdXJjZS9XZWJLaXQyL1dlYlByb2Nl
c3MvSW5mby5wbGlzdDoxNDA4NzcpCisrKyBTb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL0VudHJ5
UG9pbnQvbWFjL0xlZ2FjeVByb2Nlc3MvSW5mby5wbGlzdAkod29ya2luZyBjb3B5KQpAQCAtMCww
ICsxLDMyIEBACis8P3htbCB2ZXJzaW9uPSIxLjAiIGVuY29kaW5nPSJVVEYtOCI/PgorPCFET0NU
WVBFIHBsaXN0IFBVQkxJQyAiLS8vQXBwbGUvL0RURCBQTElTVCAxLjAvL0VOIiAiaHR0cDovL3d3
dy5hcHBsZS5jb20vRFREcy9Qcm9wZXJ0eUxpc3QtMS4wLmR0ZCI+Cis8cGxpc3QgdmVyc2lvbj0i
MS4wIj4KKzxkaWN0PgorCTxrZXk+Q0ZCdW5kbGVFeGVjdXRhYmxlPC9rZXk+CisJPHN0cmluZz4k
e1BST0RVQ1RfTkFNRX08L3N0cmluZz4KKwk8a2V5PkNGQnVuZGxlR2V0SW5mb1N0cmluZzwva2V5
PgorCTxzdHJpbmc+JHtCVU5ETEVfVkVSU0lPTn0sIENvcHlyaWdodCAyMDAzLTIwMTMgQXBwbGUg
SW5jLjwvc3RyaW5nPgorCTxrZXk+Q0ZCdW5kbGVJY29uRmlsZTwva2V5PgorCTxzdHJpbmc+JHtB
UFBfSUNPTn08L3N0cmluZz4KKwk8a2V5PkNGQnVuZGxlSWRlbnRpZmllcjwva2V5PgorCTxzdHJp
bmc+Y29tLmFwcGxlLiR7UFJPRFVDVF9OQU1FfTwvc3RyaW5nPgorCTxrZXk+Q0ZCdW5kbGVJbmZv
RGljdGlvbmFyeVZlcnNpb248L2tleT4KKwk8c3RyaW5nPjYuMDwvc3RyaW5nPgorCTxrZXk+Q0ZC
dW5kbGVOYW1lPC9rZXk+CisJPHN0cmluZz4ke1BST0RVQ1RfTkFNRX08L3N0cmluZz4KKwk8a2V5
PkNGQnVuZGxlUGFja2FnZVR5cGU8L2tleT4KKwk8c3RyaW5nPkFQUEw8L3N0cmluZz4KKwk8a2V5
PkNGQnVuZGxlU2hvcnRWZXJzaW9uU3RyaW5nPC9rZXk+CisJPHN0cmluZz4ke1NIT1JUX1ZFUlNJ
T05fU1RSSU5HfTwvc3RyaW5nPgorCTxrZXk+Q0ZCdW5kbGVWZXJzaW9uPC9rZXk+CisJPHN0cmlu
Zz4ke0JVTkRMRV9WRVJTSU9OfTwvc3RyaW5nPgorCTxrZXk+TFNGaWxlUXVhcmFudGluZUVuYWJs
ZWQ8L2tleT4KKwk8dHJ1ZS8+CisJPGtleT5MU01pbmltdW1TeXN0ZW1WZXJzaW9uPC9rZXk+CisJ
PHN0cmluZz4ke01BQ09TWF9ERVBMT1lNRU5UX1RBUkdFVH08L3N0cmluZz4KKwk8a2V5PkxTVUlF
bGVtZW50PC9rZXk+CisJPHRydWUvPgorCTxrZXk+TlNQcmluY2lwYWxDbGFzczwva2V5PgorCTxz
dHJpbmc+TlNBcHBsaWNhdGlvbjwvc3RyaW5nPgorPC9kaWN0PgorPC9wbGlzdD4KSW5kZXg6IFNv
dXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvRW50cnlQb2ludC9tYWMvTGVnYWN5UHJvY2Vzcy9XZWJD
b250ZW50UHJvY2Vzc01haW4ubW0KPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdDIvV2ViUHJv
Y2Vzcy9FbnRyeVBvaW50L21hYy9MZWdhY3lQcm9jZXNzL1dlYkNvbnRlbnRQcm9jZXNzTWFpbi5t
bQkocmV2aXNpb24gMTQwODcwKQkoZnJvbSBTb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL21hYy9X
ZWJQcm9jZXNzTWFpbk1hYy5tbToxNDA4NzApCisrKyBTb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNz
L0VudHJ5UG9pbnQvbWFjL0xlZ2FjeVByb2Nlc3MvV2ViQ29udGVudFByb2Nlc3NNYWluLm1tCSh3
b3JraW5nIGNvcHkpCkBAIC0wLDAgKzEsMTc4IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDEw
LCAyMDExLCAyMDEyIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRp
c3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdp
dGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBm
b2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBv
ZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3Rp
Y2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIu
CisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhl
IGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBh
bmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBh
bmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAq
CisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05U
UklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5U
SUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJB
TlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAq
IFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1Ig
SVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwg
SU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1B
R0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNV
QlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRT
OyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5Z
IFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElB
QklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBB
UklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJ
RiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKwor
I2ltcG9ydCAiY29uZmlnLmgiCisjaW1wb3J0ICJXZWJQcm9jZXNzTWFpbi5oIgorCisjaW1wb3J0
ICJDaGlsZFByb2Nlc3NNYWluLmgiCisjaW1wb3J0ICJDb21tYW5kTGluZS5oIgorI2ltcG9ydCAi
RW52aXJvbm1lbnRVdGlsaXRpZXMuaCIKKyNpbXBvcnQgIkVudmlyb25tZW50VmFyaWFibGVzLmgi
CisjaW1wb3J0ICJTdHJpbmdVdGlsaXRpZXMuaCIKKyNpbXBvcnQgIldlYlByb2Nlc3MuaCIKKyNp
bXBvcnQgPFdlYkNvcmUvUnVuTG9vcC5oPgorI2ltcG9ydCA8bWFjaC9tYWNoX2Vycm9yLmg+Cisj
aW1wb3J0IDxzZXJ2ZXJzL2Jvb3RzdHJhcC5oPgorI2ltcG9ydCA8c3Bhd24uaD4KKyNpbXBvcnQg
PHN0ZGlvLmg+CisjaW1wb3J0IDx3dGYvUmV0YWluUHRyLmg+CisjaW1wb3J0IDx3dGYvdGV4dC9D
U3RyaW5nLmg+CisjaW1wb3J0IDx3dGYvdGV4dC9XVEZTdHJpbmcuaD4KKworI2lmIFVTRShBUFBL
SVQpCitAaW50ZXJmYWNlIE5TQXBwbGljYXRpb24gKFdlYk5TQXBwbGljYXRpb25EZXRhaWxzKQor
LSh2b2lkKV9pbnN0YWxsQXV0b3JlbGVhc2VQb29sc09uQ3VycmVudFRocmVhZElmTmVjZXNzYXJ5
OworQGVuZAorI2VuZGlmCisKK2V4dGVybiAiQyIga2Vybl9yZXR1cm5fdCBib290c3RyYXBfcmVn
aXN0ZXIyKG1hY2hfcG9ydF90LCBuYW1lX3QsIG1hY2hfcG9ydF90LCB1aW50NjRfdCk7CisKK3Vz
aW5nIG5hbWVzcGFjZSBXZWJDb3JlOworCituYW1lc3BhY2UgV2ViS2l0IHsKKworY2xhc3MgV2Vi
UHJvY2Vzc01haW5EZWxlZ2F0ZSA6IHB1YmxpYyBDaGlsZFByb2Nlc3NNYWluRGVsZWdhdGUgewor
cHVibGljOgorICAgIFdlYlByb2Nlc3NNYWluRGVsZWdhdGUoY29uc3QgQ29tbWFuZExpbmUmIGNv
bW1hbmRMaW5lKQorICAgICAgICA6IENoaWxkUHJvY2Vzc01haW5EZWxlZ2F0ZShjb21tYW5kTGlu
ZSkKKyAgICB7CisgICAgfQorCisgICAgdmlydHVhbCB2b2lkIGRvUHJlSW5pdGlhbGl6YXRpb25X
b3JrKCkKKyAgICB7CisgICAgICAgIC8vIFJlbW92ZSB0aGUgV2ViUHJvY2VzcyBzaGltIGZyb20g
dGhlIERZTERfSU5TRVJUX0xJQlJBUklFUyBlbnZpcm9ubWVudCB2YXJpYWJsZSBzbyBhbnkgcHJv
Y2Vzc2VzIHNwYXduZWQgYnkKKyAgICAgICAgLy8gdGhlIFdlYlByb2Nlc3MgZG9uJ3QgdHJ5IHRv
IGluc2VydCB0aGUgc2hpbSBhbmQgY3Jhc2guCisgICAgICAgIEVudmlyb25tZW50VXRpbGl0aWVz
OjpzdHJpcFZhbHVlc0VuZGluZ1dpdGhTdHJpbmcoIkRZTERfSU5TRVJUX0xJQlJBUklFUyIsICIv
U2VjSXRlbVNoaW0uZHlsaWIiKTsKKyAgICAKKyNpZiBVU0UoQVBQS0lUKQorICAgICAgICBSdW5M
b29wOjpzZXRVc2VBcHBsaWNhdGlvblJ1bkxvb3BPbk1haW5SdW5Mb29wKCk7CisKKyAgICAgICAg
Ly8gSW5pdGlhbGl6ZSBBcHBLaXQuCisgICAgICAgIFtOU0FwcGxpY2F0aW9uIHNoYXJlZEFwcGxp
Y2F0aW9uXTsKKworICAgICAgICAvLyBJbnN0YWxscyBhdXRvcmVsZWFzZSBwb29scyBvbiB0aGUg
Y3VycmVudCBydW5sb29wIHdoaWNoIHByZXZlbnRzIG1lbW9yeSBmcm9tIGFjY3VtdWxhdGluZyBi
ZXR3ZWVuIHVzZXIgZXZlbnRzLgorICAgICAgICAvLyBGSVhNRTogUmVtb3ZlIHdoZW4gPHJkYXI6
Ly9wcm9ibGVtLzg5Mjk0MjY+IGlzIGZpeGVkLgorICAgICAgICBbTlNBcHAgX2luc3RhbGxBdXRv
cmVsZWFzZVBvb2xzT25DdXJyZW50VGhyZWFkSWZOZWNlc3NhcnldOworI2VuZGlmCisgICAgfQor
CisgICAgdmlydHVhbCBib29sIGdldENvbm5lY3Rpb25JZGVudGlmaWVyKENvcmVJUEM6OkNvbm5l
Y3Rpb246OklkZW50aWZpZXImIGlkZW50aWZpZXIpCisgICAgeworICAgICAgICBTdHJpbmcgY2xp
ZW50RXhlY3V0YWJsZSA9IG1fY29tbWFuZExpbmVbImNsaWVudC1leGVjdXRhYmxlIl07CisgICAg
ICAgIGlmIChjbGllbnRFeGVjdXRhYmxlLmlzRW1wdHkoKSkKKyAgICAgICAgICAgIHJldHVybiBD
aGlsZFByb2Nlc3NNYWluRGVsZWdhdGU6OmdldENvbm5lY3Rpb25JZGVudGlmaWVyKGlkZW50aWZp
ZXIpOworCisgICAgICAgIG1hY2hfcG9ydF9uYW1lX3QgcHVibGlzaGVkU2VydmljZTsKKyAgICAg
ICAgbWFjaF9wb3J0X2FsbG9jYXRlKG1hY2hfdGFza19zZWxmKCksIE1BQ0hfUE9SVF9SSUdIVF9S
RUNFSVZFLCAmcHVibGlzaGVkU2VydmljZSk7CisgICAgICAgIG1hY2hfcG9ydF9pbnNlcnRfcmln
aHQobWFjaF90YXNrX3NlbGYoKSwgcHVibGlzaGVkU2VydmljZSwgcHVibGlzaGVkU2VydmljZSwg
TUFDSF9NU0dfVFlQRV9NQUtFX1NFTkQpOworICAgICAgICAvLyBNYWtlIGl0IHBvc3NpYmxlIHRv
IGxvb2sgdXAuCisgICAgICAgIFN0cmluZyBzZXJ2aWNlTmFtZSA9IFN0cmluZzo6Zm9ybWF0KCJj
b20uYXBwbGUuV2ViS2l0LldlYlByb2Nlc3MtJWQiLCBnZXRwaWQoKSk7CisgICAgICAgIGlmIChr
ZXJuX3JldHVybl90IGtyID0gYm9vdHN0cmFwX3JlZ2lzdGVyMihib290c3RyYXBfcG9ydCwgY29u
c3RfY2FzdDxjaGFyKj4oc2VydmljZU5hbWUudXRmOCgpLmRhdGEoKSksIHB1Ymxpc2hlZFNlcnZp
Y2UsIDApKSB7CisgICAgICAgICAgICBXVEZMb2dBbHdheXMoIkZhaWxlZCB0byByZWdpc3RlciBz
ZXJ2aWNlIG5hbWUgXCIlc1wiLiAlcyAoJXgpXG4iLCBzZXJ2aWNlTmFtZS51dGY4KCkuZGF0YSgp
LCBtYWNoX2Vycm9yX3N0cmluZyhrciksIGtyKTsKKyAgICAgICAgICAgIHJldHVybiBmYWxzZTsK
KyAgICAgICAgfQorCisgICAgICAgIENTdHJpbmcgY29tbWFuZCA9IGNsaWVudEV4ZWN1dGFibGUu
dXRmOCgpOworICAgICAgICBjb25zdCBjaGFyKiBhcmdzW10gPSB7IGNvbW1hbmQuZGF0YSgpLCAw
IH07CisKKyAgICAgICAgRW52aXJvbm1lbnRWYXJpYWJsZXMgZW52aXJvbm1lbnRWYXJpYWJsZXM7
CisgICAgICAgIGVudmlyb25tZW50VmFyaWFibGVzLnNldChFbnZpcm9ubWVudFZhcmlhYmxlczo6
cHJlZXhpc3RpbmdQcm9jZXNzU2VydmljZU5hbWVLZXkoKSwgc2VydmljZU5hbWUudXRmOCgpLmRh
dGEoKSk7CisgICAgICAgIGVudmlyb25tZW50VmFyaWFibGVzLnNldChFbnZpcm9ubWVudFZhcmlh
Ymxlczo6cHJlZXhpc3RpbmdQcm9jZXNzVHlwZUtleSgpLCBtX2NvbW1hbmRMaW5lWyJ0eXBlIl0u
dXRmOCgpLmRhdGEoKSk7CisKKyAgICAgICAgcG9zaXhfc3Bhd25fZmlsZV9hY3Rpb25zX3QgZmls
ZUFjdGlvbnM7CisgICAgICAgIHBvc2l4X3NwYXduX2ZpbGVfYWN0aW9uc19pbml0KCZmaWxlQWN0
aW9ucyk7CisgICAgICAgIHBvc2l4X3NwYXduX2ZpbGVfYWN0aW9uc19hZGRpbmhlcml0X25wKCZm
aWxlQWN0aW9ucywgU1RESU5fRklMRU5PKTsKKyAgICAgICAgcG9zaXhfc3Bhd25fZmlsZV9hY3Rp
b25zX2FkZGluaGVyaXRfbnAoJmZpbGVBY3Rpb25zLCBTVERPVVRfRklMRU5PKTsKKyAgICAgICAg
cG9zaXhfc3Bhd25fZmlsZV9hY3Rpb25zX2FkZGluaGVyaXRfbnAoJmZpbGVBY3Rpb25zLCBTVERF
UlJfRklMRU5PKTsKKworICAgICAgICBwb3NpeF9zcGF3bmF0dHJfdCBhdHRyaWJ1dGVzOworICAg
ICAgICBwb3NpeF9zcGF3bmF0dHJfaW5pdCgmYXR0cmlidXRlcyk7CisgICAgICAgIHBvc2l4X3Nw
YXduYXR0cl9zZXRmbGFncygmYXR0cmlidXRlcywgUE9TSVhfU1BBV05fQ0xPRVhFQ19ERUZBVUxU
IHwgUE9TSVhfU1BBV05fU0VUUEdST1VQKTsKKworICAgICAgICBpbnQgc3Bhd25SZXN1bHQgPSBw
b3NpeF9zcGF3bigwLCBjb21tYW5kLmRhdGEoKSwgJmZpbGVBY3Rpb25zLCAmYXR0cmlidXRlcywg
Y29uc3RfY2FzdDxjaGFyKio+KGFyZ3MpLCBlbnZpcm9ubWVudFZhcmlhYmxlcy5lbnZpcm9ubWVu
dFBvaW50ZXIoKSk7CisKKyAgICAgICAgcG9zaXhfc3Bhd25hdHRyX2Rlc3Ryb3koJmF0dHJpYnV0
ZXMpOworICAgICAgICBwb3NpeF9zcGF3bl9maWxlX2FjdGlvbnNfZGVzdHJveSgmZmlsZUFjdGlv
bnMpOworCisgICAgICAgIGlmIChzcGF3blJlc3VsdCkKKyAgICAgICAgICAgIHJldHVybiBmYWxz
ZTsKKworICAgICAgICBtYWNoX21zZ19lbXB0eV9yY3ZfdCBtZXNzYWdlOworICAgICAgICBpZiAo
a2Vybl9yZXR1cm5fdCBrciA9IG1hY2hfbXNnKCZtZXNzYWdlLmhlYWRlciwgTUFDSF9SQ1ZfTVNH
LCAwLCBzaXplb2YobWVzc2FnZSksIHB1Ymxpc2hlZFNlcnZpY2UsIE1BQ0hfTVNHX1RJTUVPVVRf
Tk9ORSwgTUFDSF9QT1JUX05VTEwpKSB7CisgICAgICAgICAgICBXVEZMb2dBbHdheXMoIkZhaWxl
ZCB0byByZWNlaXZlIHBvcnQgZnJvbSB0aGUgVUkgcHJvY2Vzcy4gJXMgKCV4KVxuIiwgbWFjaF9l
cnJvcl9zdHJpbmcoa3IpLCBrcik7CisgICAgICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgICAg
IH0KKworICAgICAgICBtYWNoX3BvcnRfbW9kX3JlZnMobWFjaF90YXNrX3NlbGYoKSwgcHVibGlz
aGVkU2VydmljZSwgTUFDSF9QT1JUX1JJR0hUX1JFQ0VJVkUsIC0xKTsKKyAgICAgICAgbWFjaF9w
b3J0X3Qgc2VydmVyUG9ydCA9IG1lc3NhZ2UuaGVhZGVyLm1zZ2hfcmVtb3RlX3BvcnQ7CisgICAg
ICAgIG1hY2hfcG9ydF90eXBlX3QgcG9ydFR5cGU7CisgICAgICAgIGtlcm5fcmV0dXJuX3Qga3Ig
PSBtYWNoX3BvcnRfdHlwZShtYWNoX3Rhc2tfc2VsZigpLCBzZXJ2ZXJQb3J0LCAmcG9ydFR5cGUp
OworICAgICAgICBpZiAoa3IgfHwgIShwb3J0VHlwZSAmIE1BQ0hfUE9SVF9UWVBFX1NFTkQpKSB7
CisgICAgICAgICAgICBXVEZMb2dBbHdheXMoIkZhaWxlZCB0byBvYnRhaW4gc2VuZCByaWdodCBm
b3IgcG9ydCByZWNlaXZlZCBmcm9tIHRoZSBVSSBwcm9jZXNzLlxuIik7CisgICAgICAgICAgICBy
ZXR1cm4gZmFsc2U7CisgICAgICAgIH0KKworICAgICAgICBpZGVudGlmaWVyID0gc2VydmVyUG9y
dDsKKyAgICAgICAgcmV0dXJuIHRydWU7CisgICAgfQorCisgICAgdmlydHVhbCBib29sIGdldENs
aWVudElkZW50aWZpZXIoU3RyaW5nJiBjbGllbnRJZGVudGlmaWVyKQorICAgIHsKKyAgICAgICAg
U3RyaW5nIGNsaWVudEV4ZWN1dGFibGUgPSBtX2NvbW1hbmRMaW5lWyJjbGllbnQtZXhlY3V0YWJs
ZSJdOworICAgICAgICBpZiAoY2xpZW50RXhlY3V0YWJsZS5pc0VtcHR5KCkpCisgICAgICAgICAg
ICByZXR1cm4gQ2hpbGRQcm9jZXNzTWFpbkRlbGVnYXRlOjpnZXRDbGllbnRJZGVudGlmaWVyKGNs
aWVudElkZW50aWZpZXIpOworCisgICAgICAgIFJldGFpblB0cjxOU1VSTD4gY2xpZW50RXhlY3V0
YWJsZVVSTCA9IGFkb3B0TlMoW1tOU1VSTCBhbGxvY10gaW5pdEZpbGVVUkxXaXRoUGF0aDpuc1N0
cmluZ0Zyb21XZWJDb3JlU3RyaW5nKGNsaWVudEV4ZWN1dGFibGUpXSk7CisgICAgICAgIFJldGFp
blB0cjxDRlVSTFJlZj4gY2xpZW50QnVuZGxlVVJMID0gYWRvcHRDRihXS0NvcHlCdW5kbGVVUkxG
b3JFeGVjdXRhYmxlVVJMKChDRlVSTFJlZiljbGllbnRFeGVjdXRhYmxlVVJMLmdldCgpKSk7Cisg
ICAgICAgIFJldGFpblB0cjxOU0J1bmRsZT4gY2xpZW50QnVuZGxlID0gYWRvcHROUyhbW05TQnVu
ZGxlIGFsbG9jXSBpbml0V2l0aFVSTDooTlNVUkwgKiljbGllbnRCdW5kbGVVUkwuZ2V0KCldKTsK
KyAgICAgICAgY2xpZW50SWRlbnRpZmllciA9IFtjbGllbnRCdW5kbGUuZ2V0KCkgYnVuZGxlSWRl
bnRpZmllcl07CisgICAgICAgIGlmIChjbGllbnRJZGVudGlmaWVyLmlzRW1wdHkoKSkKKyAgICAg
ICAgICAgIHJldHVybiBmYWxzZTsKKyAgICAgICAgcmV0dXJuIHRydWU7CisgICAgfQorCisgICAg
dmlydHVhbCBib29sIGdldENsaWVudFByb2Nlc3NOYW1lKFN0cmluZyYgY2xpZW50UHJvY2Vzc05h
bWUpCisgICAgeworICAgICAgICBTdHJpbmcgY2xpZW50RXhlY3V0YWJsZSA9IG1fY29tbWFuZExp
bmVbImNsaWVudC1leGVjdXRhYmxlIl07CisgICAgICAgIGlmIChjbGllbnRFeGVjdXRhYmxlLmlz
RW1wdHkoKSkKKyAgICAgICAgICAgIHJldHVybiBDaGlsZFByb2Nlc3NNYWluRGVsZWdhdGU6Omdl
dENsaWVudFByb2Nlc3NOYW1lKGNsaWVudFByb2Nlc3NOYW1lKTsKKworICAgICAgICAvLyBDb25q
dXJlIHVwIGEgcHJvY2VzcyBuYW1lIGJ5IHVzaW5nIGV2ZXJ5dGhpbmcgYWZ0ZXIgdGhlIGxhc3Qg
c2xhc2ggZnJvbSB0aGUgY2xpZW50LWV4ZWN1dGFibGUsCisgICAgICAgIC8vIGUuZy4gL0FwcGxp
Y2F0aW9ucy9TYWZhcmkuYXBwL0NvbnRlbnRzL01hY09TL1NhZmFyaSBiZWNvbWVzIFNhZmFyaS4K
KyAgICAgICAgc2l6ZV90IGxhc3RTbGFzaCA9IGNsaWVudEV4ZWN1dGFibGUucmV2ZXJzZUZpbmQo
Jy8nKTsKKyAgICAgICAgY2xpZW50UHJvY2Vzc05hbWUgPSBjbGllbnRFeGVjdXRhYmxlLnN1YnN0
cmluZyhsYXN0U2xhc2ggKyAxKTsKKyAgICAgICAgaWYgKGNsaWVudFByb2Nlc3NOYW1lLmlzRW1w
dHkoKSkKKyAgICAgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICAgICAgcmV0dXJuIHRydWU7Cisg
ICAgfQorfTsKKworaW50IFdlYlByb2Nlc3NNYWluKGNvbnN0IENvbW1hbmRMaW5lJiBjb21tYW5k
TGluZSkKK3sKKyAgICByZXR1cm4gQ2hpbGRQcm9jZXNzTWFpbjxXZWJQcm9jZXNzLCBXZWJQcm9j
ZXNzTWFpbkRlbGVnYXRlPihjb21tYW5kTGluZSk7Cit9CisKK30gLy8gbmFtZXNwYWNlIFdlYktp
dAorCkluZGV4OiBTb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL0VudHJ5UG9pbnQvbWFjL0xlZ2Fj
eVByb2Nlc3MvV2ViQ29udGVudFByb2Nlc3NNYWluLm1tCj09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9X
ZWJLaXQyL1dlYlByb2Nlc3MvRW50cnlQb2ludC9tYWMvTGVnYWN5UHJvY2Vzcy9XZWJDb250ZW50
UHJvY2Vzc01haW4ubW0JKHJldmlzaW9uIDE0MDg3MCkKKysrIFNvdXJjZS9XZWJLaXQyL1dlYlBy
b2Nlc3MvRW50cnlQb2ludC9tYWMvTGVnYWN5UHJvY2Vzcy9XZWJDb250ZW50UHJvY2Vzc01haW4u
bW0JKHdvcmtpbmcgY29weSkKQEAgLTI0LDEzICsyNCwxMiBAQAogICovCiAKICNpbXBvcnQgImNv
bmZpZy5oIgotI2ltcG9ydCAiV2ViUHJvY2Vzc01haW4uaCIKIAogI2ltcG9ydCAiQ2hpbGRQcm9j
ZXNzTWFpbi5oIgotI2ltcG9ydCAiQ29tbWFuZExpbmUuaCIKICNpbXBvcnQgIkVudmlyb25tZW50
VXRpbGl0aWVzLmgiCiAjaW1wb3J0ICJFbnZpcm9ubWVudFZhcmlhYmxlcy5oIgogI2ltcG9ydCAi
U3RyaW5nVXRpbGl0aWVzLmgiCisjaW1wb3J0ICJXS0Jhc2UuaCIKICNpbXBvcnQgIldlYlByb2Nl
c3MuaCIKICNpbXBvcnQgPFdlYkNvcmUvUnVuTG9vcC5oPgogI2ltcG9ydCA8bWFjaC9tYWNoX2Vy
cm9yLmg+CkBAIC01Myw5ICs1Miw5IEBAIHVzaW5nIG5hbWVzcGFjZSBXZWJDb3JlOwogCiBuYW1l
c3BhY2UgV2ViS2l0IHsKIAotY2xhc3MgV2ViUHJvY2Vzc01haW5EZWxlZ2F0ZSA6IHB1YmxpYyBD
aGlsZFByb2Nlc3NNYWluRGVsZWdhdGUgeworY2xhc3MgV2ViQ29udGVudFByb2Nlc3NNYWluRGVs
ZWdhdGUgOiBwdWJsaWMgQ2hpbGRQcm9jZXNzTWFpbkRlbGVnYXRlIHsKIHB1YmxpYzoKLSAgICBX
ZWJQcm9jZXNzTWFpbkRlbGVnYXRlKGNvbnN0IENvbW1hbmRMaW5lJiBjb21tYW5kTGluZSkKKyAg
ICBXZWJDb250ZW50UHJvY2Vzc01haW5EZWxlZ2F0ZShjb25zdCBDb21tYW5kTGluZSYgY29tbWFu
ZExpbmUpCiAgICAgICAgIDogQ2hpbGRQcm9jZXNzTWFpbkRlbGVnYXRlKGNvbW1hbmRMaW5lKQog
ICAgIHsKICAgICB9CkBAIC0xNjksMTAgKzE2OCwxNyBAQCBwdWJsaWM6CiAgICAgfQogfTsKIAot
aW50IFdlYlByb2Nlc3NNYWluKGNvbnN0IENvbW1hbmRMaW5lJiBjb21tYW5kTGluZSkKLXsKLSAg
ICByZXR1cm4gQ2hpbGRQcm9jZXNzTWFpbjxXZWJQcm9jZXNzLCBXZWJQcm9jZXNzTWFpbkRlbGVn
YXRlPihjb21tYW5kTGluZSk7Ci19Ci0KIH0gLy8gbmFtZXNwYWNlIFdlYktpdAogCit1c2luZyBu
YW1lc3BhY2UgV2ViS2l0OworCitleHRlcm4gIkMiIFdLX0VYUE9SVCBpbnQgV2ViQ29udGVudFBy
b2Nlc3NNYWluKGludCBhcmdjLCBjaGFyKiogYXJndik7CisKK2ludCBXZWJDb250ZW50UHJvY2Vz
c01haW4oaW50IGFyZ2MsIGNoYXIqKiBhcmd2KQoreworICAgIENvbW1hbmRMaW5lIGNvbW1hbmRM
aW5lOworICAgIGlmICghY29tbWFuZExpbmUucGFyc2UoYXJnYywgYXJndikpCisgICAgICAgIHJl
dHVybiBFWElUX0ZBSUxVUkU7CisKKyAgICByZXR1cm4gQ2hpbGRQcm9jZXNzTWFpbjxXZWJQcm9j
ZXNzLCBXZWJDb250ZW50UHJvY2Vzc01haW5EZWxlZ2F0ZT4oY29tbWFuZExpbmUpOworfQpJbmRl
eDogU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9FbnRyeVBvaW50L21hYy9MZWdhY3lQcm9jZXNz
L1dlYkNvbnRlbnRQcm9jZXNzTWFpbkJvb3RzdHJhcHBlci5jcHAKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291
cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9FbnRyeVBvaW50L21hYy9MZWdhY3lQcm9jZXNzL1dlYkNv
bnRlbnRQcm9jZXNzTWFpbkJvb3RzdHJhcHBlci5jcHAJKHJldmlzaW9uIDApCisrKyBTb3VyY2Uv
V2ViS2l0Mi9XZWJQcm9jZXNzL0VudHJ5UG9pbnQvbWFjL0xlZ2FjeVByb2Nlc3MvV2ViQ29udGVu
dFByb2Nlc3NNYWluQm9vdHN0cmFwcGVyLmNwcAkocmV2aXNpb24gMCkKQEAgLTAsMCArMSwzMiBA
QAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxMyBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2
ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBm
b3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJv
dmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBS
ZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHly
aWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxv
d2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11
c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0
IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAg
IGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBk
aXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJ
TkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9S
IElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBU
SEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1Ig
QSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFM
TCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJ
UkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENP
TlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NV
UkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwg
REFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBD
QVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05U
UkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1Ig
T1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMg
U09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0gg
REFNQUdFLgorICovCisKKyNpbmNsdWRlICJDaGlsZFByb2Nlc3NNYWluQm9vdHN0cmFwcGVyLmgi
CisKK2ludCBtYWluKGludCBhcmdjLCBjaGFyKiogYXJndikKK3sKKyAgICBXZWJLaXRNYWluRnVu
Y3Rpb24gbWFpbkZ1bmN0aW9uID0gZ2V0Qm9vdHN0cmFwTWFpbkZ1bmN0aW9uKGFyZ2MsIGFyZ3Ys
ICJXZWJDb250ZW50UHJvY2Vzc01haW4iKTsKKyAgICByZXR1cm4gbWFpbkZ1bmN0aW9uKGFyZ2Ms
IGFyZ3YpOworfQpJbmRleDogU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9tYWMvV2ViUHJvY2Vz
c01haW5NYWMubW0KPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9tYWMv
V2ViUHJvY2Vzc01haW5NYWMubW0JKHJldmlzaW9uIDE0MDkxMikKKysrIFNvdXJjZS9XZWJLaXQy
L1dlYlByb2Nlc3MvbWFjL1dlYlByb2Nlc3NNYWluTWFjLm1tCSh3b3JraW5nIGNvcHkpCkBAIC0x
LDE3OCArMCwwIEBACi0vKgotICogQ29weXJpZ2h0IChDKSAyMDEwLCAyMDExLCAyMDEyIEFwcGxl
IEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KLSAqCi0gKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNl
IGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKLSAqIG1vZGlmaWNh
dGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9u
cwotICogYXJlIG1ldDoKLSAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0
IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBj
b25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCi0gKiAyLiBSZWRpc3RyaWJ1
dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAot
ICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBk
aXNjbGFpbWVyIGluIHRoZQotICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJp
YWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KLSAqCi0gKiBUSElTIFNPRlRXQVJF
IElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycn
Ci0gKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJV
VCBOT1QgTElNSVRFRCBUTywKLSAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRB
QklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKLSAqIFBVUlBPU0UgQVJFIERJU0NM
QUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUwot
ICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lB
TCwgRVhFTVBMQVJZLCBPUgotICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJV
VCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKLSAqIFNVQlNUSVRVVEUgR09PRFMgT1Ig
U0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUwotICog
SU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJ
VFksIFdIRVRIRVIgSU4KLSAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJ
TkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCi0gKiBBUklTSU5HIElOIEFOWSBXQVkg
T1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCi0gKiBU
SEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCi0gKi8KLQotI2ltcG9ydCAiY29uZmlnLmgi
Ci0jaW1wb3J0ICJXZWJQcm9jZXNzTWFpbi5oIgotCi0jaW1wb3J0ICJDaGlsZFByb2Nlc3NNYWlu
LmgiCi0jaW1wb3J0ICJDb21tYW5kTGluZS5oIgotI2ltcG9ydCAiRW52aXJvbm1lbnRVdGlsaXRp
ZXMuaCIKLSNpbXBvcnQgIkVudmlyb25tZW50VmFyaWFibGVzLmgiCi0jaW1wb3J0ICJTdHJpbmdV
dGlsaXRpZXMuaCIKLSNpbXBvcnQgIldlYlByb2Nlc3MuaCIKLSNpbXBvcnQgPFdlYkNvcmUvUnVu
TG9vcC5oPgotI2ltcG9ydCA8bWFjaC9tYWNoX2Vycm9yLmg+Ci0jaW1wb3J0IDxzZXJ2ZXJzL2Jv
b3RzdHJhcC5oPgotI2ltcG9ydCA8c3Bhd24uaD4KLSNpbXBvcnQgPHN0ZGlvLmg+Ci0jaW1wb3J0
IDx3dGYvUmV0YWluUHRyLmg+Ci0jaW1wb3J0IDx3dGYvdGV4dC9DU3RyaW5nLmg+Ci0jaW1wb3J0
IDx3dGYvdGV4dC9XVEZTdHJpbmcuaD4KLQotI2lmIFVTRShBUFBLSVQpCi1AaW50ZXJmYWNlIE5T
QXBwbGljYXRpb24gKFdlYk5TQXBwbGljYXRpb25EZXRhaWxzKQotLSh2b2lkKV9pbnN0YWxsQXV0
b3JlbGVhc2VQb29sc09uQ3VycmVudFRocmVhZElmTmVjZXNzYXJ5OwotQGVuZAotI2VuZGlmCi0K
LWV4dGVybiAiQyIga2Vybl9yZXR1cm5fdCBib290c3RyYXBfcmVnaXN0ZXIyKG1hY2hfcG9ydF90
LCBuYW1lX3QsIG1hY2hfcG9ydF90LCB1aW50NjRfdCk7Ci0KLXVzaW5nIG5hbWVzcGFjZSBXZWJD
b3JlOwotCi1uYW1lc3BhY2UgV2ViS2l0IHsKLQotY2xhc3MgV2ViUHJvY2Vzc01haW5EZWxlZ2F0
ZSA6IHB1YmxpYyBDaGlsZFByb2Nlc3NNYWluRGVsZWdhdGUgewotcHVibGljOgotICAgIFdlYlBy
b2Nlc3NNYWluRGVsZWdhdGUoY29uc3QgQ29tbWFuZExpbmUmIGNvbW1hbmRMaW5lKQotICAgICAg
ICA6IENoaWxkUHJvY2Vzc01haW5EZWxlZ2F0ZShjb21tYW5kTGluZSkKLSAgICB7Ci0gICAgfQot
Ci0gICAgdmlydHVhbCB2b2lkIGRvUHJlSW5pdGlhbGl6YXRpb25Xb3JrKCkKLSAgICB7Ci0gICAg
ICAgIC8vIFJlbW92ZSB0aGUgV2ViUHJvY2VzcyBzaGltIGZyb20gdGhlIERZTERfSU5TRVJUX0xJ
QlJBUklFUyBlbnZpcm9ubWVudCB2YXJpYWJsZSBzbyBhbnkgcHJvY2Vzc2VzIHNwYXduZWQgYnkK
LSAgICAgICAgLy8gdGhlIFdlYlByb2Nlc3MgZG9uJ3QgdHJ5IHRvIGluc2VydCB0aGUgc2hpbSBh
bmQgY3Jhc2guCi0gICAgICAgIEVudmlyb25tZW50VXRpbGl0aWVzOjpzdHJpcFZhbHVlc0VuZGlu
Z1dpdGhTdHJpbmcoIkRZTERfSU5TRVJUX0xJQlJBUklFUyIsICIvU2VjSXRlbVNoaW0uZHlsaWIi
KTsKLSAgICAKLSNpZiBVU0UoQVBQS0lUKQotICAgICAgICBSdW5Mb29wOjpzZXRVc2VBcHBsaWNh
dGlvblJ1bkxvb3BPbk1haW5SdW5Mb29wKCk7Ci0KLSAgICAgICAgLy8gSW5pdGlhbGl6ZSBBcHBL
aXQuCi0gICAgICAgIFtOU0FwcGxpY2F0aW9uIHNoYXJlZEFwcGxpY2F0aW9uXTsKLQotICAgICAg
ICAvLyBJbnN0YWxscyBhdXRvcmVsZWFzZSBwb29scyBvbiB0aGUgY3VycmVudCBydW5sb29wIHdo
aWNoIHByZXZlbnRzIG1lbW9yeSBmcm9tIGFjY3VtdWxhdGluZyBiZXR3ZWVuIHVzZXIgZXZlbnRz
LgotICAgICAgICAvLyBGSVhNRTogUmVtb3ZlIHdoZW4gPHJkYXI6Ly9wcm9ibGVtLzg5Mjk0MjY+
IGlzIGZpeGVkLgotICAgICAgICBbTlNBcHAgX2luc3RhbGxBdXRvcmVsZWFzZVBvb2xzT25DdXJy
ZW50VGhyZWFkSWZOZWNlc3NhcnldOwotI2VuZGlmCi0gICAgfQotCi0gICAgdmlydHVhbCBib29s
IGdldENvbm5lY3Rpb25JZGVudGlmaWVyKENvcmVJUEM6OkNvbm5lY3Rpb246OklkZW50aWZpZXIm
IGlkZW50aWZpZXIpCi0gICAgewotICAgICAgICBTdHJpbmcgY2xpZW50RXhlY3V0YWJsZSA9IG1f
Y29tbWFuZExpbmVbImNsaWVudC1leGVjdXRhYmxlIl07Ci0gICAgICAgIGlmIChjbGllbnRFeGVj
dXRhYmxlLmlzRW1wdHkoKSkKLSAgICAgICAgICAgIHJldHVybiBDaGlsZFByb2Nlc3NNYWluRGVs
ZWdhdGU6OmdldENvbm5lY3Rpb25JZGVudGlmaWVyKGlkZW50aWZpZXIpOwotCi0gICAgICAgIG1h
Y2hfcG9ydF9uYW1lX3QgcHVibGlzaGVkU2VydmljZTsKLSAgICAgICAgbWFjaF9wb3J0X2FsbG9j
YXRlKG1hY2hfdGFza19zZWxmKCksIE1BQ0hfUE9SVF9SSUdIVF9SRUNFSVZFLCAmcHVibGlzaGVk
U2VydmljZSk7Ci0gICAgICAgIG1hY2hfcG9ydF9pbnNlcnRfcmlnaHQobWFjaF90YXNrX3NlbGYo
KSwgcHVibGlzaGVkU2VydmljZSwgcHVibGlzaGVkU2VydmljZSwgTUFDSF9NU0dfVFlQRV9NQUtF
X1NFTkQpOwotICAgICAgICAvLyBNYWtlIGl0IHBvc3NpYmxlIHRvIGxvb2sgdXAuCi0gICAgICAg
IFN0cmluZyBzZXJ2aWNlTmFtZSA9IFN0cmluZzo6Zm9ybWF0KCJjb20uYXBwbGUuV2ViS2l0Lldl
YlByb2Nlc3MtJWQiLCBnZXRwaWQoKSk7Ci0gICAgICAgIGlmIChrZXJuX3JldHVybl90IGtyID0g
Ym9vdHN0cmFwX3JlZ2lzdGVyMihib290c3RyYXBfcG9ydCwgY29uc3RfY2FzdDxjaGFyKj4oc2Vy
dmljZU5hbWUudXRmOCgpLmRhdGEoKSksIHB1Ymxpc2hlZFNlcnZpY2UsIDApKSB7Ci0gICAgICAg
ICAgICBXVEZMb2dBbHdheXMoIkZhaWxlZCB0byByZWdpc3RlciBzZXJ2aWNlIG5hbWUgXCIlc1wi
LiAlcyAoJXgpXG4iLCBzZXJ2aWNlTmFtZS51dGY4KCkuZGF0YSgpLCBtYWNoX2Vycm9yX3N0cmlu
ZyhrciksIGtyKTsKLSAgICAgICAgICAgIHJldHVybiBmYWxzZTsKLSAgICAgICAgfQotCi0gICAg
ICAgIENTdHJpbmcgY29tbWFuZCA9IGNsaWVudEV4ZWN1dGFibGUudXRmOCgpOwotICAgICAgICBj
b25zdCBjaGFyKiBhcmdzW10gPSB7IGNvbW1hbmQuZGF0YSgpLCAwIH07Ci0KLSAgICAgICAgRW52
aXJvbm1lbnRWYXJpYWJsZXMgZW52aXJvbm1lbnRWYXJpYWJsZXM7Ci0gICAgICAgIGVudmlyb25t
ZW50VmFyaWFibGVzLnNldChFbnZpcm9ubWVudFZhcmlhYmxlczo6cHJlZXhpc3RpbmdQcm9jZXNz
U2VydmljZU5hbWVLZXkoKSwgc2VydmljZU5hbWUudXRmOCgpLmRhdGEoKSk7Ci0gICAgICAgIGVu
dmlyb25tZW50VmFyaWFibGVzLnNldChFbnZpcm9ubWVudFZhcmlhYmxlczo6cHJlZXhpc3RpbmdQ
cm9jZXNzVHlwZUtleSgpLCBtX2NvbW1hbmRMaW5lWyJ0eXBlIl0udXRmOCgpLmRhdGEoKSk7Ci0K
LSAgICAgICAgcG9zaXhfc3Bhd25fZmlsZV9hY3Rpb25zX3QgZmlsZUFjdGlvbnM7Ci0gICAgICAg
IHBvc2l4X3NwYXduX2ZpbGVfYWN0aW9uc19pbml0KCZmaWxlQWN0aW9ucyk7Ci0gICAgICAgIHBv
c2l4X3NwYXduX2ZpbGVfYWN0aW9uc19hZGRpbmhlcml0X25wKCZmaWxlQWN0aW9ucywgU1RESU5f
RklMRU5PKTsKLSAgICAgICAgcG9zaXhfc3Bhd25fZmlsZV9hY3Rpb25zX2FkZGluaGVyaXRfbnAo
JmZpbGVBY3Rpb25zLCBTVERPVVRfRklMRU5PKTsKLSAgICAgICAgcG9zaXhfc3Bhd25fZmlsZV9h
Y3Rpb25zX2FkZGluaGVyaXRfbnAoJmZpbGVBY3Rpb25zLCBTVERFUlJfRklMRU5PKTsKLQotICAg
ICAgICBwb3NpeF9zcGF3bmF0dHJfdCBhdHRyaWJ1dGVzOwotICAgICAgICBwb3NpeF9zcGF3bmF0
dHJfaW5pdCgmYXR0cmlidXRlcyk7Ci0gICAgICAgIHBvc2l4X3NwYXduYXR0cl9zZXRmbGFncygm
YXR0cmlidXRlcywgUE9TSVhfU1BBV05fQ0xPRVhFQ19ERUZBVUxUIHwgUE9TSVhfU1BBV05fU0VU
UEdST1VQKTsKLQotICAgICAgICBpbnQgc3Bhd25SZXN1bHQgPSBwb3NpeF9zcGF3bigwLCBjb21t
YW5kLmRhdGEoKSwgJmZpbGVBY3Rpb25zLCAmYXR0cmlidXRlcywgY29uc3RfY2FzdDxjaGFyKio+
KGFyZ3MpLCBlbnZpcm9ubWVudFZhcmlhYmxlcy5lbnZpcm9ubWVudFBvaW50ZXIoKSk7Ci0KLSAg
ICAgICAgcG9zaXhfc3Bhd25hdHRyX2Rlc3Ryb3koJmF0dHJpYnV0ZXMpOwotICAgICAgICBwb3Np
eF9zcGF3bl9maWxlX2FjdGlvbnNfZGVzdHJveSgmZmlsZUFjdGlvbnMpOwotCi0gICAgICAgIGlm
IChzcGF3blJlc3VsdCkKLSAgICAgICAgICAgIHJldHVybiBmYWxzZTsKLQotICAgICAgICBtYWNo
X21zZ19lbXB0eV9yY3ZfdCBtZXNzYWdlOwotICAgICAgICBpZiAoa2Vybl9yZXR1cm5fdCBrciA9
IG1hY2hfbXNnKCZtZXNzYWdlLmhlYWRlciwgTUFDSF9SQ1ZfTVNHLCAwLCBzaXplb2YobWVzc2Fn
ZSksIHB1Ymxpc2hlZFNlcnZpY2UsIE1BQ0hfTVNHX1RJTUVPVVRfTk9ORSwgTUFDSF9QT1JUX05V
TEwpKSB7Ci0gICAgICAgICAgICBXVEZMb2dBbHdheXMoIkZhaWxlZCB0byByZWNlaXZlIHBvcnQg
ZnJvbSB0aGUgVUkgcHJvY2Vzcy4gJXMgKCV4KVxuIiwgbWFjaF9lcnJvcl9zdHJpbmcoa3IpLCBr
cik7Ci0gICAgICAgICAgICByZXR1cm4gZmFsc2U7Ci0gICAgICAgIH0KLQotICAgICAgICBtYWNo
X3BvcnRfbW9kX3JlZnMobWFjaF90YXNrX3NlbGYoKSwgcHVibGlzaGVkU2VydmljZSwgTUFDSF9Q
T1JUX1JJR0hUX1JFQ0VJVkUsIC0xKTsKLSAgICAgICAgbWFjaF9wb3J0X3Qgc2VydmVyUG9ydCA9
IG1lc3NhZ2UuaGVhZGVyLm1zZ2hfcmVtb3RlX3BvcnQ7Ci0gICAgICAgIG1hY2hfcG9ydF90eXBl
X3QgcG9ydFR5cGU7Ci0gICAgICAgIGtlcm5fcmV0dXJuX3Qga3IgPSBtYWNoX3BvcnRfdHlwZSht
YWNoX3Rhc2tfc2VsZigpLCBzZXJ2ZXJQb3J0LCAmcG9ydFR5cGUpOwotICAgICAgICBpZiAoa3Ig
fHwgIShwb3J0VHlwZSAmIE1BQ0hfUE9SVF9UWVBFX1NFTkQpKSB7Ci0gICAgICAgICAgICBXVEZM
b2dBbHdheXMoIkZhaWxlZCB0byBvYnRhaW4gc2VuZCByaWdodCBmb3IgcG9ydCByZWNlaXZlZCBm
cm9tIHRoZSBVSSBwcm9jZXNzLlxuIik7Ci0gICAgICAgICAgICByZXR1cm4gZmFsc2U7Ci0gICAg
ICAgIH0KLQotICAgICAgICBpZGVudGlmaWVyID0gc2VydmVyUG9ydDsKLSAgICAgICAgcmV0dXJu
IHRydWU7Ci0gICAgfQotCi0gICAgdmlydHVhbCBib29sIGdldENsaWVudElkZW50aWZpZXIoU3Ry
aW5nJiBjbGllbnRJZGVudGlmaWVyKQotICAgIHsKLSAgICAgICAgU3RyaW5nIGNsaWVudEV4ZWN1
dGFibGUgPSBtX2NvbW1hbmRMaW5lWyJjbGllbnQtZXhlY3V0YWJsZSJdOwotICAgICAgICBpZiAo
Y2xpZW50RXhlY3V0YWJsZS5pc0VtcHR5KCkpCi0gICAgICAgICAgICByZXR1cm4gQ2hpbGRQcm9j
ZXNzTWFpbkRlbGVnYXRlOjpnZXRDbGllbnRJZGVudGlmaWVyKGNsaWVudElkZW50aWZpZXIpOwot
Ci0gICAgICAgIFJldGFpblB0cjxOU1VSTD4gY2xpZW50RXhlY3V0YWJsZVVSTCA9IGFkb3B0TlMo
W1tOU1VSTCBhbGxvY10gaW5pdEZpbGVVUkxXaXRoUGF0aDpuc1N0cmluZ0Zyb21XZWJDb3JlU3Ry
aW5nKGNsaWVudEV4ZWN1dGFibGUpXSk7Ci0gICAgICAgIFJldGFpblB0cjxDRlVSTFJlZj4gY2xp
ZW50QnVuZGxlVVJMID0gYWRvcHRDRihXS0NvcHlCdW5kbGVVUkxGb3JFeGVjdXRhYmxlVVJMKChD
RlVSTFJlZiljbGllbnRFeGVjdXRhYmxlVVJMLmdldCgpKSk7Ci0gICAgICAgIFJldGFpblB0cjxO
U0J1bmRsZT4gY2xpZW50QnVuZGxlID0gYWRvcHROUyhbW05TQnVuZGxlIGFsbG9jXSBpbml0V2l0
aFVSTDooTlNVUkwgKiljbGllbnRCdW5kbGVVUkwuZ2V0KCldKTsKLSAgICAgICAgY2xpZW50SWRl
bnRpZmllciA9IFtjbGllbnRCdW5kbGUuZ2V0KCkgYnVuZGxlSWRlbnRpZmllcl07Ci0gICAgICAg
IGlmIChjbGllbnRJZGVudGlmaWVyLmlzRW1wdHkoKSkKLSAgICAgICAgICAgIHJldHVybiBmYWxz
ZTsKLSAgICAgICAgcmV0dXJuIHRydWU7Ci0gICAgfQotCi0gICAgdmlydHVhbCBib29sIGdldENs
aWVudFByb2Nlc3NOYW1lKFN0cmluZyYgY2xpZW50UHJvY2Vzc05hbWUpCi0gICAgewotICAgICAg
ICBTdHJpbmcgY2xpZW50RXhlY3V0YWJsZSA9IG1fY29tbWFuZExpbmVbImNsaWVudC1leGVjdXRh
YmxlIl07Ci0gICAgICAgIGlmIChjbGllbnRFeGVjdXRhYmxlLmlzRW1wdHkoKSkKLSAgICAgICAg
ICAgIHJldHVybiBDaGlsZFByb2Nlc3NNYWluRGVsZWdhdGU6OmdldENsaWVudFByb2Nlc3NOYW1l
KGNsaWVudFByb2Nlc3NOYW1lKTsKLQotICAgICAgICAvLyBDb25qdXJlIHVwIGEgcHJvY2VzcyBu
YW1lIGJ5IHVzaW5nIGV2ZXJ5dGhpbmcgYWZ0ZXIgdGhlIGxhc3Qgc2xhc2ggZnJvbSB0aGUgY2xp
ZW50LWV4ZWN1dGFibGUsCi0gICAgICAgIC8vIGUuZy4gL0FwcGxpY2F0aW9ucy9TYWZhcmkuYXBw
L0NvbnRlbnRzL01hY09TL1NhZmFyaSBiZWNvbWVzIFNhZmFyaS4KLSAgICAgICAgc2l6ZV90IGxh
c3RTbGFzaCA9IGNsaWVudEV4ZWN1dGFibGUucmV2ZXJzZUZpbmQoJy8nKTsKLSAgICAgICAgY2xp
ZW50UHJvY2Vzc05hbWUgPSBjbGllbnRFeGVjdXRhYmxlLnN1YnN0cmluZyhsYXN0U2xhc2ggKyAx
KTsKLSAgICAgICAgaWYgKGNsaWVudFByb2Nlc3NOYW1lLmlzRW1wdHkoKSkKLSAgICAgICAgICAg
IHJldHVybiBmYWxzZTsKLSAgICAgICAgcmV0dXJuIHRydWU7Ci0gICAgfQotfTsKLQotaW50IFdl
YlByb2Nlc3NNYWluKGNvbnN0IENvbW1hbmRMaW5lJiBjb21tYW5kTGluZSkKLXsKLSAgICByZXR1
cm4gQ2hpbGRQcm9jZXNzTWFpbjxXZWJQcm9jZXNzLCBXZWJQcm9jZXNzTWFpbkRlbGVnYXRlPihj
b21tYW5kTGluZSk7Ci19Ci0KLX0gLy8gbmFtZXNwYWNlIFdlYktpdAotCkluZGV4OiBTb3VyY2Uv
V2ViS2l0Mi9tYWMvTWFpbk1hY1Byb2Nlc3MuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJL
aXQyL21hYy9NYWluTWFjUHJvY2Vzcy5jcHAJKHJldmlzaW9uIDE0MDkxMikKKysrIFNvdXJjZS9X
ZWJLaXQyL21hYy9NYWluTWFjUHJvY2Vzcy5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTEsNjkgKzAs
MCBAQAotLyoKLSAqIENvcHlyaWdodCAoQykgMjAxMCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVz
ZXJ2ZWQuCi0gKgotICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFy
eSBmb3Jtcywgd2l0aCBvciB3aXRob3V0Ci0gKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQg
cHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKLSAqIGFyZSBtZXQ6Ci0gKiAx
LiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNv
cHlyaWdodAotICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZv
bGxvd2luZyBkaXNjbGFpbWVyLgotICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3Jt
IG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgIG5vdGljZSwgdGhpcyBs
aXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKLSAq
ICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRo
ZSBkaXN0cmlidXRpb24uCi0gKgotICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBM
RSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJwotICogQU5EIEFOWSBFWFBSRVNT
IE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCi0g
KiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBG
T1IgQSBQQVJUSUNVTEFSCi0gKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBT
SEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKLSAqIEJFIExJQUJMRSBGT1IgQU5Z
IERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKLSAq
IENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBS
T0NVUkVNRU5UIE9GCi0gKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVT
RSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKLSAqIElOVEVSUlVQVElPTikgSE9XRVZF
UiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCi0gKiBD
T05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0Ug
T1IgT1RIRVJXSVNFKQotICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRI
SVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgotICogVEhFIFBPU1NJQklMSVRZIE9GIFNV
Q0ggREFNQUdFLgotICovCi0KLSNpbmNsdWRlIDxkbGZjbi5oPgotI2luY2x1ZGUgPHN0ZGlvLmg+
Ci0jaW5jbHVkZSA8c3RkbGliLmg+Ci0jaW5jbHVkZSA8c3lzL2V2ZW50Lmg+Ci0jaW5jbHVkZSA8
dW5pc3RkLmg+Ci0KLXN0YXRpYyB2b2lkIGNsb3NlVW51c2VkRmlsZURlc2NyaXB0b3JzKCkKLXsK
LSAgICBpbnQgbnVtRkRzID0gZ2V0ZHRhYmxlc2l6ZSgpOwotCi0gICAgLy8gQ2xvc2UgYWxsIGZp
bGUgZGVzY3JpcHRvcnMgZXhjZXB0IHN0ZGluLCBzdGRvdXQgYW5kIHN0ZGVyci4KLSAgICBmb3Ig
KGludCBmZCA9IDM7IGZkIDwgbnVtRkRzOyArK2ZkKSB7Ci0gICAgICAgIC8vIENoZWNrIGlmIHRo
aXMgaXMgYSBrcXVldWUgZmlsZSBkZXNjcmlwdG9yLiBJZiBpdCBpcywgd2UgZG9uJ3Qgd2FudCB0
byBjbG9zZSBpdCBiZWNhdXNlIGl0IGhhcwotICAgICAgICAvLyBiZWVuIGNyZWF0ZWQgYnkgaW5p
dGlhbGl6aW5nIGxpYmRpc3BhdGNoIGZyb20gYSBnbG9iYWwgaW5pdGlhbGl6ZXIuIFNlZSA8cmRh
cjovL3Byb2JsZW0vOTgyODQ3Nj4gZm9yIG1vcmUgZGV0YWlscy4KLSAgICAgICAgc3RydWN0IHRp
bWVzcGVjIHRpbWVTcGVjID0geyAwLCAwIH07Ci0gICAgICAgIGlmICgha2V2ZW50KGZkLCAwLCAw
LCAwLCAwLCAmdGltZVNwZWMpKQotICAgICAgICAgICAgY29udGludWU7Ci0KLSAgICAgICAgY2xv
c2UoZmQpOwotICAgIH0KLX0KLQotaW50IG1haW4oaW50IGFyZ2MsIGNoYXIqKiBhcmd2KQotewot
ICAgIGNsb3NlVW51c2VkRmlsZURlc2NyaXB0b3JzKCk7Ci0KLSAgICBpZiAoYXJnYyA8IDIpCi0g
ICAgICAgIHJldHVybiBFWElUX0ZBSUxVUkU7Ci0KLSAgICBzdGF0aWMgdm9pZCogZnJhbWV3b3Jr
TGlicmFyeSA9IGRsb3Blbihhcmd2WzFdLCBSVExEX05PVyk7Ci0gICAgaWYgKCFmcmFtZXdvcmtM
aWJyYXJ5KSB7Ci0gICAgICAgIGZwcmludGYoc3RkZXJyLCAiVW5hYmxlIHRvIGxvYWQgV2ViS2l0
Mi5mcmFtZXdvcms6ICVzXG4iLCBkbGVycm9yKCkpOwotICAgICAgICByZXR1cm4gRVhJVF9GQUlM
VVJFOwotICAgIH0KLQotICAgIHR5cGVkZWYgaW50ICgqV2ViS2l0TWFpbkZ1bmN0aW9uKShpbnQg
YXJnYywgY2hhcioqIGFyZ3YpOwotICAgIFdlYktpdE1haW5GdW5jdGlvbiB3ZWJLaXRNYWluID0g
cmVpbnRlcnByZXRfY2FzdDxXZWJLaXRNYWluRnVuY3Rpb24+KGRsc3ltKGZyYW1ld29ya0xpYnJh
cnksICJXZWJLaXRNYWluIikpOwotICAgIGlmICghd2ViS2l0TWFpbikgewotICAgICAgICBmcHJp
bnRmKHN0ZGVyciwgIlVuYWJsZSB0byBmaW5kIGVudHJ5IHBvaW50IGluIFdlYktpdDIuZnJhbWV3
b3JrOiAlc1xuIiwgZGxlcnJvcigpKTsKLSAgICAgICAgcmV0dXJuIEVYSVRfRkFJTFVSRTsKLSAg
ICB9Ci0KLSAgICByZXR1cm4gd2ViS2l0TWFpbihhcmdjLCBhcmd2KTsKLX0K
</data>
<flag name="review"
          id="203753"
          type_id="1"
          status="+"
          setter="sam"
    />
          </attachment>
      

    </bug>

</bugzilla>