<?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>232680</bug_id>
          
          <creation_ts>2021-11-03 13:02:28 -0700</creation_ts>
          <short_desc>Fix for crashes in layout tests in AX isolated tree mode.</short_desc>
          <delta_ts>2021-11-04 05:51:38 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>Accessibility</component>
          <version>WebKit 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>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Andres Gonzalez">andresg_22</reporter>
          <assigned_to name="Andres Gonzalez">andresg_22</assigned_to>
          <cc>andresg_22</cc>
    
    <cc>cfleizach</cc>
    
    <cc>webkit-bug-importer</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1811614</commentid>
    <comment_count>0</comment_count>
    <who name="Andres Gonzalez">andresg_22</who>
    <bug_when>2021-11-03 13:02:28 -0700</bug_when>
    <thetext>Fix for crashes in layout tests in AX isolated tree mode.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1811615</commentid>
    <comment_count>1</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2021-11-03 13:02:39 -0700</bug_when>
    <thetext>&lt;rdar://problem/84987971&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1811642</commentid>
    <comment_count>2</comment_count>
      <attachid>443236</attachid>
    <who name="Andres Gonzalez">andresg_22</who>
    <bug_when>2021-11-03 14:03:22 -0700</bug_when>
    <thetext>Created attachment 443236
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1811831</commentid>
    <comment_count>3</comment_count>
    <who name="EWS">ews-feeder</who>
    <bug_when>2021-11-04 05:51:36 -0700</bug_when>
    <thetext>Committed r285261 (243872@main): &lt;https://commits.webkit.org/243872@main&gt;

All reviewed patches have been landed. Closing bug and clearing flags on attachment 443236.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>443236</attachid>
            <date>2021-11-03 14:03:22 -0700</date>
            <delta_ts>2021-11-04 05:51:37 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-232680-20211103170320.patch</filename>
            <type>text/plain</type>
            <size>50254</size>
            <attacher name="Andres Gonzalez">andresg_22</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjg1MTY4CmRpZmYgLS1naXQgYS9Ub29scy9DaGFuZ2VMb2cg
Yi9Ub29scy9DaGFuZ2VMb2cKaW5kZXggMzBlNDAyOGVjNzYyYjI3ZDE5YzFmNzE3NGUzNWJhZmUy
NjY5NDFlMS4uZWI3Njc3ZWI4OTdjMGJiZDc3YzQ4OThjODgwMDE2ZmQ3MDA4NmM2YyAxMDA2NDQK
LS0tIGEvVG9vbHMvQ2hhbmdlTG9nCisrKyBiL1Rvb2xzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDEz
NyBAQAorMjAyMS0xMS0wMyAgQW5kcmVzIEdvbnphbGV6ICA8YW5kcmVzZ18yMkBhcHBsZS5jb20+
CisKKyAgICAgICAgRml4IGZvciBjcmFzaGVzIGluIGxheW91dCB0ZXN0cyBpbiBBWCBpc29sYXRl
ZCB0cmVlIG1vZGUuCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNn
aT9pZD0yMzI2ODAKKyAgICAgICAgPHJkYXI6Ly9wcm9ibGVtLzg0OTg3OTcxPgorCisgICAgICAg
IFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIENoYW5nZWQgdGhlIHJldHVy
biB2YWx1ZSBvZiBXVFI6OkFjY2Vzc2liaWxpdHlVSUVsZW1lbnQ6OmF0dHJpYnV0ZVZhbHVlCisg
ICAgICAgIHRvIGJlIGEgUmV0YWluUHRyPGlkPiBpbnN0ZWFkIG9mIGlkLiBUaGlzIGd1YXJhbnRp
ZXMgdGhhdCB0aGUgT2JqQworICAgICAgICBvYmplY3QgcG9pbnRlZCBieSBpdCBpcyBub3QgZnJl
ZWQgd2hlbiB0aGUgdmFsdWUgaXMgY29tcHV0ZWQgb24gdGhlIEFYCisgICAgICAgIHRocmVhZCBh
bmQgdXRpbGl6ZWQgb24gdGhlIG1haW4gdGhyZWFkLgorCisgICAgICAgIFRoZSBmb2xsb3dpbmcg
dGVzdHMgd2VyZSBjcmFzaGluZyBiZWZvcmUgYW5kIG5vdyBwYXNzOgorICAgICAgICBhY2Nlc3Np
YmlsaXR5L21hYy9pbnRlcm5hbC1saW5rLXdoZW4tZG9jdW1lbnQtaGFzLWZyYWdtZW50Lmh0bWwK
KyAgICAgICAgYWNjZXNzaWJpbGl0eS9zdmctcmVtb3RlLWVsZW1lbnQuaHRtbAorICAgICAgICBh
Y2Nlc3NpYmlsaXR5L3VybC10ZXN0Lmh0bWwKKyAgICAgICAgYWNjZXNzaWJpbGl0eS92aWRlby1l
bGVtZW50LXVybC1hdHRyaWJ1dGUuaHRtbAorCisgICAgICAgIFRoZSBmb2xsb3dpbmcgdGVzdHMg
d2VyZSBmYWlsaW5nIGJlZm9yZSBhbmQgbm93IHBhc3M6CisgICAgICAgIGFjY2Vzc2liaWxpdHkv
YWRkLWNoaWxkcmVuLXBzZXVkby1lbGVtZW50Lmh0bWwKKyAgICAgICAgYWNjZXNzaWJpbGl0eS9h
cmlhLXNlbGVjdGVkLmh0bWwKKyAgICAgICAgYWNjZXNzaWJpbGl0eS9hcmlhLXRhYmxlLXdpdGgt
cHJlc2VudGF0aW9uYWwtZWxlbWVudHMuaHRtbAorICAgICAgICBhY2Nlc3NpYmlsaXR5L21hYy9h
cmlhLWNvbHVtbnJvd2hlYWRlcnMuaHRtbAorICAgICAgICBhY2Nlc3NpYmlsaXR5L21hYy9hcmlh
LWRldGFpbHMuaHRtbAorICAgICAgICBhY2Nlc3NpYmlsaXR5L21hYy9jaGlsZHJlbi1pbi1uYXZp
Z2F0aW9uLW9yZGVyLXJldHVybnMtY2hpbGRyZW4uaHRtbAorICAgICAgICBhY2Nlc3NpYmlsaXR5
L21hYy9kZXNjcmlwdGlvbmxpc3Qtbm90LWlnbm9yZWQuaHRtbAorICAgICAgICBhY2Nlc3NpYmls
aXR5L21hYy9pZC1jbGFzcy1hdHRyaWJ1dGVzLmh0bWwKKyAgICAgICAgYWNjZXNzaWJpbGl0eS9t
YWMvbGFuZG1hcmstbm90LWlnbm9yZWQuaHRtbAorICAgICAgICBhY2Nlc3NpYmlsaXR5L21hYy9s
aW5lLWluZGV4LWZvci10ZXh0bWFya2VyLmh0bWwKKyAgICAgICAgYWNjZXNzaWJpbGl0eS9tYWMv
dGFibGUtdmlzaWJsZS1yb3dzLmh0bWwKKyAgICAgICAgYWNjZXNzaWJpbGl0eS9tYWMvdHJlZWl0
ZW0tcm93LWRlbGVnYXRpb24uaHRtbAorICAgICAgICBhY2Nlc3NpYmlsaXR5L21hdGgtaGFzLW5v
bi1wcmVzZW50YXRpb25hbC1jaGlsZHJlbi5odG1sCisgICAgICAgIGFjY2Vzc2liaWxpdHkvbWF0
aC1tdWx0aXNjcmlwdC1hdHRyaWJ1dGVzLmh0bWwKKyAgICAgICAgYWNjZXNzaWJpbGl0eS9yYWRp
by1idXR0b24tZ3JvdXAtbWVtYmVycy5odG1sCisgICAgICAgIGFjY2Vzc2liaWxpdHkvdGFibGUt
Y29sdW1uLWhlYWRlcnMtd2l0aC1jYXB0aW9ucy5odG1sCisgICAgICAgIGFjY2Vzc2liaWxpdHkv
dGFibGUtaGVhZGVyLWNhbGN1bGF0aW9uLWZvci1oZWFkZXItcm93cy5odG1sCisgICAgICAgIGFj
Y2Vzc2liaWxpdHkvdGFibGUtcm9sZXMtaGllcmFyY2h5Lmh0bWwKKyAgICAgICAgYWNjZXNzaWJp
bGl0eS90cmVlaXRlbS1jaGlsZC1leHBvc2VkLmh0bWwKKworICAgICAgICBUaGUgZm9sbG93aW5n
IHRlc3RzIHdlcmUgdGltaW5nIG91dCBhbmQgbm93IHBhc3M6CisgICAgICAgIGFjY2Vzc2liaWxp
dHkvYXJpYS1jb21ib2JveC1jb250cm9sLW93bnMtZWxlbWVudHMuaHRtbAorICAgICAgICBhY2Nl
c3NpYmlsaXR5L2xvYWRpbmctaWZyYW1lLXNlbmRzLW5vdGlmaWNhdGlvbi5odG1sCisKKyAgICAg
ICAgKiBXZWJLaXRUZXN0UnVubmVyL0luamVjdGVkQnVuZGxlL0FjY2Vzc2liaWxpdHlVSUVsZW1l
bnQuaDoKKyAgICAgICAgKiBXZWJLaXRUZXN0UnVubmVyL0luamVjdGVkQnVuZGxlL21hYy9BY2Nl
c3NpYmlsaXR5VUlFbGVtZW50TWFjLm1tOgorICAgICAgICAoV1RSOjphdHRyaWJ1dGVWYWx1ZSk6
CisgICAgICAgIChXVFI6OkFjY2Vzc2liaWxpdHlVSUVsZW1lbnQ6OmRlc2NyaXB0aW9uT2ZWYWx1
ZSBjb25zdCk6CisgICAgICAgIChXVFI6OkFjY2Vzc2liaWxpdHlVSUVsZW1lbnQ6OmF0dHJpYnV0
ZVZhbHVlIGNvbnN0KToKKyAgICAgICAgKFdUUjo6QWNjZXNzaWJpbGl0eVVJRWxlbWVudDo6ZG9t
SWRlbnRpZmllciBjb25zdCk6CisgICAgICAgIChXVFI6OkFjY2Vzc2liaWxpdHlVSUVsZW1lbnQ6
OmdldExpbmtlZFVJRWxlbWVudHMpOgorICAgICAgICAoV1RSOjpBY2Nlc3NpYmlsaXR5VUlFbGVt
ZW50OjpnZXREb2N1bWVudExpbmtzKToKKyAgICAgICAgKFdUUjo6QWNjZXNzaWJpbGl0eVVJRWxl
bWVudDo6Z2V0VUlFbGVtZW50c1dpdGhBdHRyaWJ1dGUgY29uc3QpOgorICAgICAgICAoV1RSOjpB
Y2Nlc3NpYmlsaXR5VUlFbGVtZW50OjpjaGlsZHJlbiBjb25zdCk6CisgICAgICAgIChXVFI6OkFj
Y2Vzc2liaWxpdHlVSUVsZW1lbnQ6OmdldENoaWxkcmVuKToKKyAgICAgICAgKFdUUjo6QWNjZXNz
aWJpbGl0eVVJRWxlbWVudDo6cm93SGVhZGVycyBjb25zdCk6CisgICAgICAgIChXVFI6OkFjY2Vz
c2liaWxpdHlVSUVsZW1lbnQ6OmNvbHVtbkhlYWRlcnMgY29uc3QpOgorICAgICAgICAoV1RSOjpB
Y2Nlc3NpYmlsaXR5VUlFbGVtZW50OjplbGVtZW50Rm9yQXR0cmlidXRlIGNvbnN0KToKKyAgICAg
ICAgKFdUUjo6QWNjZXNzaWJpbGl0eVVJRWxlbWVudDo6ZWxlbWVudEZvckF0dHJpYnV0ZUF0SW5k
ZXggY29uc3QpOgorICAgICAgICAoV1RSOjpBY2Nlc3NpYmlsaXR5VUlFbGVtZW50OjpkZXRhaWxz
RWxlbWVudHMgY29uc3QpOgorICAgICAgICAoV1RSOjpBY2Nlc3NpYmlsaXR5VUlFbGVtZW50Ojpl
cnJvck1lc3NhZ2VFbGVtZW50cyBjb25zdCk6CisgICAgICAgIChXVFI6OkFjY2Vzc2liaWxpdHlV
SUVsZW1lbnQ6OmFsbEF0dHJpYnV0ZXMpOgorICAgICAgICAoV1RSOjpBY2Nlc3NpYmlsaXR5VUlF
bGVtZW50OjpzdHJpbmdEZXNjcmlwdGlvbk9mQXR0cmlidXRlVmFsdWUpOgorICAgICAgICAoV1RS
OjpBY2Nlc3NpYmlsaXR5VUlFbGVtZW50OjpzdHJpbmdBdHRyaWJ1dGVWYWx1ZSk6CisgICAgICAg
IChXVFI6OkFjY2Vzc2liaWxpdHlVSUVsZW1lbnQ6Om51bWJlckF0dHJpYnV0ZVZhbHVlKToKKyAg
ICAgICAgKFdUUjo6QWNjZXNzaWJpbGl0eVVJRWxlbWVudDo6dWlFbGVtZW50QXR0cmlidXRlVmFs
dWUgY29uc3QpOgorICAgICAgICAoV1RSOjpBY2Nlc3NpYmlsaXR5VUlFbGVtZW50Ojpib29sQXR0
cmlidXRlVmFsdWUpOgorICAgICAgICAoV1RSOjpBY2Nlc3NpYmlsaXR5VUlFbGVtZW50Ojpyb2xl
KToKKyAgICAgICAgKFdUUjo6QWNjZXNzaWJpbGl0eVVJRWxlbWVudDo6c3Vicm9sZSk6CisgICAg
ICAgIChXVFI6OkFjY2Vzc2liaWxpdHlVSUVsZW1lbnQ6OnJvbGVEZXNjcmlwdGlvbik6CisgICAg
ICAgIChXVFI6OkFjY2Vzc2liaWxpdHlVSUVsZW1lbnQ6OmNvbXB1dGVkUm9sZVN0cmluZyk6Cisg
ICAgICAgIChXVFI6OkFjY2Vzc2liaWxpdHlVSUVsZW1lbnQ6OnRpdGxlKToKKyAgICAgICAgKFdU
Ujo6QWNjZXNzaWJpbGl0eVVJRWxlbWVudDo6ZGVzY3JpcHRpb24pOgorICAgICAgICAoV1RSOjpB
Y2Nlc3NpYmlsaXR5VUlFbGVtZW50OjpvcmllbnRhdGlvbiBjb25zdCk6CisgICAgICAgIChXVFI6
OkFjY2Vzc2liaWxpdHlVSUVsZW1lbnQ6OnN0cmluZ1ZhbHVlKToKKyAgICAgICAgKFdUUjo6QWNj
ZXNzaWJpbGl0eVVJRWxlbWVudDo6bGFuZ3VhZ2UpOgorICAgICAgICAoV1RSOjpBY2Nlc3NpYmls
aXR5VUlFbGVtZW50OjpoZWxwVGV4dCBjb25zdCk6CisgICAgICAgIChXVFI6OkFjY2Vzc2liaWxp
dHlVSUVsZW1lbnQ6OngpOgorICAgICAgICAoV1RSOjpBY2Nlc3NpYmlsaXR5VUlFbGVtZW50Ojp5
KToKKyAgICAgICAgKFdUUjo6QWNjZXNzaWJpbGl0eVVJRWxlbWVudDo6d2lkdGgpOgorICAgICAg
ICAoV1RSOjpBY2Nlc3NpYmlsaXR5VUlFbGVtZW50OjpoZWlnaHQpOgorICAgICAgICAoV1RSOjpB
Y2Nlc3NpYmlsaXR5VUlFbGVtZW50OjpjbGlja1BvaW50WCk6CisgICAgICAgIChXVFI6OkFjY2Vz
c2liaWxpdHlVSUVsZW1lbnQ6OmNsaWNrUG9pbnRZKToKKyAgICAgICAgKFdUUjo6QWNjZXNzaWJp
bGl0eVVJRWxlbWVudDo6bGluZVJlY3RzQW5kVGV4dCBjb25zdCk6CisgICAgICAgIChXVFI6OkFj
Y2Vzc2liaWxpdHlVSUVsZW1lbnQ6OmludFZhbHVlIGNvbnN0KToKKyAgICAgICAgKFdUUjo6QWNj
ZXNzaWJpbGl0eVVJRWxlbWVudDo6bWluVmFsdWUpOgorICAgICAgICAoV1RSOjpBY2Nlc3NpYmls
aXR5VUlFbGVtZW50OjptYXhWYWx1ZSk6CisgICAgICAgIChXVFI6OkFjY2Vzc2liaWxpdHlVSUVs
ZW1lbnQ6OnZhbHVlRGVzY3JpcHRpb24pOgorICAgICAgICAoV1RSOjpBY2Nlc3NpYmlsaXR5VUlF
bGVtZW50OjppbnNlcnRpb25Qb2ludExpbmVOdW1iZXIpOgorICAgICAgICAoV1RSOjpBY2Nlc3Np
YmlsaXR5VUlFbGVtZW50Ojppc0VuYWJsZWQpOgorICAgICAgICAoV1RSOjpBY2Nlc3NpYmlsaXR5
VUlFbGVtZW50Ojppc1JlcXVpcmVkIGNvbnN0KToKKyAgICAgICAgKFdUUjo6QWNjZXNzaWJpbGl0
eVVJRWxlbWVudDo6aXNGb2N1c2VkIGNvbnN0KToKKyAgICAgICAgKFdUUjo6QWNjZXNzaWJpbGl0
eVVJRWxlbWVudDo6aXNTZWxlY3RlZCBjb25zdCk6CisgICAgICAgIChXVFI6OkFjY2Vzc2liaWxp
dHlVSUVsZW1lbnQ6OmlzSW5kZXRlcm1pbmF0ZSBjb25zdCk6CisgICAgICAgIChXVFI6OkFjY2Vz
c2liaWxpdHlVSUVsZW1lbnQ6OmlzRXhwYW5kZWQgY29uc3QpOgorICAgICAgICAoV1RSOjpBY2Nl
c3NpYmlsaXR5VUlFbGVtZW50OjpjdXJyZW50U3RhdGVWYWx1ZSBjb25zdCk6CisgICAgICAgIChX
VFI6OkFjY2Vzc2liaWxpdHlVSUVsZW1lbnQ6OnNvcnREaXJlY3Rpb24gY29uc3QpOgorICAgICAg
ICAoV1RSOjpBY2Nlc3NpYmlsaXR5VUlFbGVtZW50OjpoaWVyYXJjaGljYWxMZXZlbCBjb25zdCk6
CisgICAgICAgIChXVFI6OkFjY2Vzc2liaWxpdHlVSUVsZW1lbnQ6OmNsYXNzTGlzdCBjb25zdCk6
CisgICAgICAgIChXVFI6OkFjY2Vzc2liaWxpdHlVSUVsZW1lbnQ6OnNwZWFrQXMpOgorICAgICAg
ICAoV1RSOjpBY2Nlc3NpYmlsaXR5VUlFbGVtZW50OjphcmlhSXNHcmFiYmVkIGNvbnN0KToKKyAg
ICAgICAgKFdUUjo6QWNjZXNzaWJpbGl0eVVJRWxlbWVudDo6YXJpYURyb3BFZmZlY3RzIGNvbnN0
KToKKyAgICAgICAgKFdUUjo6QWNjZXNzaWJpbGl0eVVJRWxlbWVudDo6YXR0cmlidXRlc09mQ29s
dW1uSGVhZGVycyk6CisgICAgICAgIChXVFI6OkFjY2Vzc2liaWxpdHlVSUVsZW1lbnQ6OmF0dHJp
YnV0ZXNPZlJvd0hlYWRlcnMpOgorICAgICAgICAoV1RSOjpBY2Nlc3NpYmlsaXR5VUlFbGVtZW50
OjphdHRyaWJ1dGVzT2ZDb2x1bW5zKToKKyAgICAgICAgKFdUUjo6QWNjZXNzaWJpbGl0eVVJRWxl
bWVudDo6YXR0cmlidXRlc09mUm93cyk6CisgICAgICAgIChXVFI6OkFjY2Vzc2liaWxpdHlVSUVs
ZW1lbnQ6OmF0dHJpYnV0ZXNPZlZpc2libGVDZWxscyk6CisgICAgICAgIChXVFI6OkFjY2Vzc2li
aWxpdHlVSUVsZW1lbnQ6OmF0dHJpYnV0ZXNPZkhlYWRlcik6CisgICAgICAgIChXVFI6OkFjY2Vz
c2liaWxpdHlVSUVsZW1lbnQ6OmluZGV4SW5UYWJsZSk6CisgICAgICAgIChXVFI6OkFjY2Vzc2li
aWxpdHlVSUVsZW1lbnQ6OnJvd0luZGV4UmFuZ2UpOgorICAgICAgICAoV1RSOjpBY2Nlc3NpYmls
aXR5VUlFbGVtZW50Ojpjb2x1bW5JbmRleFJhbmdlKToKKyAgICAgICAgKFdUUjo6QWNjZXNzaWJp
bGl0eVVJRWxlbWVudDo6aG9yaXpvbnRhbFNjcm9sbGJhciBjb25zdCk6CisgICAgICAgIChXVFI6
OkFjY2Vzc2liaWxpdHlVSUVsZW1lbnQ6OnZlcnRpY2FsU2Nyb2xsYmFyIGNvbnN0KToKKyAgICAg
ICAgKFdUUjo6QWNjZXNzaWJpbGl0eVVJRWxlbWVudDo6c2VsZWN0ZWRUZXh0UmFuZ2UpOgorICAg
ICAgICAoV1RSOjpBY2Nlc3NpYmlsaXR5VUlFbGVtZW50OjpzZXRTZWxlY3RlZENoaWxkQXRJbmRl
eCBjb25zdCk6CisgICAgICAgIChXVFI6OkFjY2Vzc2liaWxpdHlVSUVsZW1lbnQ6OnJlbW92ZVNl
bGVjdGlvbkF0SW5kZXggY29uc3QpOgorICAgICAgICAoV1RSOjpBY2Nlc3NpYmlsaXR5VUlFbGVt
ZW50Ojpkb2N1bWVudEVuY29kaW5nKToKKyAgICAgICAgKFdUUjo6QWNjZXNzaWJpbGl0eVVJRWxl
bWVudDo6ZG9jdW1lbnRVUkkpOgorICAgICAgICAoV1RSOjpBY2Nlc3NpYmlsaXR5VUlFbGVtZW50
Ojp1cmwpOgorICAgICAgICAoV1RSOjpBY2Nlc3NpYmlsaXR5VUlFbGVtZW50Ojppc011bHRpU2Vs
ZWN0YWJsZSBjb25zdCk6CisgICAgICAgIChXVFI6OkFjY2Vzc2liaWxpdHlVSUVsZW1lbnQ6Omlz
T25TY3JlZW4gY29uc3QpOgorICAgICAgICAoV1RSOjpBY2Nlc3NpYmlsaXR5VUlFbGVtZW50Ojpl
bWJlZGRlZEltYWdlRGVzY3JpcHRpb24gY29uc3QpOgorICAgICAgICAoV1RSOjpBY2Nlc3NpYmls
aXR5VUlFbGVtZW50OjppbWFnZU92ZXJsYXlFbGVtZW50cyBjb25zdCk6CisgICAgICAgIChXVFI6
OkFjY2Vzc2liaWxpdHlVSUVsZW1lbnQ6Omhhc1BvcHVwIGNvbnN0KToKKyAgICAgICAgKFdUUjo6
QWNjZXNzaWJpbGl0eVVJRWxlbWVudDo6cG9wdXBWYWx1ZSBjb25zdCk6CisgICAgICAgIChXVFI6
OkFjY2Vzc2liaWxpdHlVSUVsZW1lbnQ6OnNlbGVjdGVkVGV4dE1hcmtlclJhbmdlKToKKyAgICAg
ICAgKFdUUjo6QWNjZXNzaWJpbGl0eVVJRWxlbWVudDo6cmVzZXRTZWxlY3RlZFRleHRNYXJrZXJS
YW5nZSk6CisgICAgICAgIChXVFI6OkFjY2Vzc2liaWxpdHlVSUVsZW1lbnQ6OnN0YXJ0VGV4dE1h
cmtlcik6CisgICAgICAgIChXVFI6OkFjY2Vzc2liaWxpdHlVSUVsZW1lbnQ6OmVuZFRleHRNYXJr
ZXIpOgorICAgICAgICAoV1RSOjpBY2Nlc3NpYmlsaXR5VUlFbGVtZW50OjptYXRoUG9zdHNjcmlw
dHNEZXNjcmlwdGlvbiBjb25zdCk6CisgICAgICAgIChXVFI6OkFjY2Vzc2liaWxpdHlVSUVsZW1l
bnQ6Om1hdGhQcmVzY3JpcHRzRGVzY3JpcHRpb24gY29uc3QpOgorICAgICAgICAoV1RSOjpBY2Nl
c3NpYmlsaXR5VUlFbGVtZW50OjptYXRoUm9vdFJhZGljYW5kIGNvbnN0KToKKyAgICAgICAgKFdU
Ujo6QWNjZXNzaWJpbGl0eVVJRWxlbWVudDo6cGF0aERlc2NyaXB0aW9uIGNvbnN0KToKKwogMjAy
MS0xMS0wMiAgVGltIEhvcnRvbiAgPHRpbW90aHlfaG9ydG9uQGFwcGxlLmNvbT4KIAogICAgICAg
ICBkdW1wQXNUZXh0KCkgdGVzdHMgZG9uJ3QgZ2V0IHRoZSByZWYtdGVzdCB0cmVhdG1lbnQgd2hl
biB1c2luZyAtLXNlbGYtY29tcGFyZS13aXRoLWhlYWRlcgpkaWZmIC0tZ2l0IGEvVG9vbHMvV2Vi
S2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRsZS9BY2Nlc3NpYmlsaXR5VUlFbGVtZW50LmggYi9U
b29scy9XZWJLaXRUZXN0UnVubmVyL0luamVjdGVkQnVuZGxlL0FjY2Vzc2liaWxpdHlVSUVsZW1l
bnQuaAppbmRleCBhZGEyZjUyOTQ2Nzk0MzMzMTQ3NDI4OTFlOTFhOWQ3M2VkZDI2ODVkLi41ZGNl
NzQ0Njk2MTFiNTExM2U2NzJjYzVhMmY5NTliNDNhMDMyZTRkIDEwMDY0NAotLS0gYS9Ub29scy9X
ZWJLaXRUZXN0UnVubmVyL0luamVjdGVkQnVuZGxlL0FjY2Vzc2liaWxpdHlVSUVsZW1lbnQuaAor
KysgYi9Ub29scy9XZWJLaXRUZXN0UnVubmVyL0luamVjdGVkQnVuZGxlL0FjY2Vzc2liaWxpdHlV
SUVsZW1lbnQuaApAQCAtNjQsNyArNjQsNyBAQCBjbGFzcyBBY2Nlc3NpYmlsaXR5VUlFbGVtZW50
IDogcHVibGljIEpTV3JhcHBhYmxlIHsKICNpZiBQTEFURk9STShDT0NPQSkKICAgICAvLyBIZWxw
ZXIgZnVuY3Rpb25zIHRoYXQgZGlzcGF0Y2ggdGhlIGNvcnJlc3BvbmRpbmcgQWNjZXNzaWJpbGl0
eU9iamVjdFdyYXBwZXIgbWV0aG9kIHRvIHRoZSBBWCBzZWNvbmRhcnkgdGhyZWFkIHdoZW4gYXBw
cm9wcmlhdGUuCiAgICAgZnJpZW5kIFJldGFpblB0cjxOU0FycmF5PiBzdXBwb3J0ZWRBdHRyaWJ1
dGVzKGlkKTsKLSAgICBmcmllbmQgaWQgYXR0cmlidXRlVmFsdWUoaWQsIE5TU3RyaW5nICopOwor
ICAgIGZyaWVuZCBSZXRhaW5QdHI8aWQ+IGF0dHJpYnV0ZVZhbHVlKGlkLCBOU1N0cmluZyAqKTsK
ICAgICBmcmllbmQgdm9pZCBzZXRBdHRyaWJ1dGVWYWx1ZShpZCwgTlNTdHJpbmcgKiwgaWQsIGJv
b2wgc3luY2hyb25vdXMpOwogI2VuZGlmCiAKQEAgLTM5OCw3ICszOTgsNyBAQCBwcml2YXRlOgog
ICAgIEFjY2Vzc2liaWxpdHlVSUVsZW1lbnQoY29uc3QgQWNjZXNzaWJpbGl0eVVJRWxlbWVudCYp
OwogCiAjaWYgUExBVEZPUk0oTUFDKQotICAgIGlkIGF0dHJpYnV0ZVZhbHVlKE5TU3RyaW5nICop
IGNvbnN0OworICAgIFJldGFpblB0cjxpZD4gYXR0cmlidXRlVmFsdWUoTlNTdHJpbmcgKikgY29u
c3Q7CiAgICAgTlNTdHJpbmcgKmRlc2NyaXB0aW9uT2ZWYWx1ZShpZCB2YWx1ZU9iamVjdCkgY29u
c3Q7CiAjZW5kaWYKIApkaWZmIC0tZ2l0IGEvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9JbmplY3Rl
ZEJ1bmRsZS9tYWMvQWNjZXNzaWJpbGl0eVVJRWxlbWVudE1hYy5tbSBiL1Rvb2xzL1dlYktpdFRl
c3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUvbWFjL0FjY2Vzc2liaWxpdHlVSUVsZW1lbnRNYWMubW0K
aW5kZXggMTdlYThhNTBiNTA5YWQ0MzJjZTYwYWJhYzJlNjJmNTY1MTk2ZWQ3NC4uMjVhNzkyZTgy
ZTc5ZTQ0NDZhNTFmZTVmYTVmOWY4ZDg3MzZkNmRhNiAxMDA2NDQKLS0tIGEvVG9vbHMvV2ViS2l0
VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRsZS9tYWMvQWNjZXNzaWJpbGl0eVVJRWxlbWVudE1hYy5t
bQorKysgYi9Ub29scy9XZWJLaXRUZXN0UnVubmVyL0luamVjdGVkQnVuZGxlL21hYy9BY2Nlc3Np
YmlsaXR5VUlFbGVtZW50TWFjLm1tCkBAIC0xMzksNyArMTM5LDcgQEAgUmV0YWluUHRyPE5TQXJy
YXk+IHN1cHBvcnRlZEF0dHJpYnV0ZXMoaWQgZWxlbWVudCkKICAgICByZXR1cm4gYXR0cmlidXRl
czsKIH0KIAotaWQgYXR0cmlidXRlVmFsdWUoaWQgZWxlbWVudCwgTlNTdHJpbmcgKmF0dHJpYnV0
ZSkKK1JldGFpblB0cjxpZD4gYXR0cmlidXRlVmFsdWUoaWQgZWxlbWVudCwgTlNTdHJpbmcgKmF0
dHJpYnV0ZSkKIHsKICAgICBSZXRhaW5QdHI8aWQ+IHZhbHVlOwogCkBAIC0xNjEsNyArMTYxLDcg
QEAgaWQgYXR0cmlidXRlVmFsdWUoaWQgZWxlbWVudCwgTlNTdHJpbmcgKmF0dHJpYnV0ZSkKICAg
ICB9KTsKICAgICBFTkRfQVhfT0JKQ19FWENFUFRJT05TCiAKLSAgICByZXR1cm4gdmFsdWUuZ2V0
KCk7CisgICAgcmV0dXJuIHZhbHVlOwogfQogCiB2b2lkIHNldEF0dHJpYnV0ZVZhbHVlKGlkIGVs
ZW1lbnQsIE5TU3RyaW5nKiBhdHRyaWJ1dGUsIGlkIHZhbHVlLCBib29sIHN5bmNocm9ub3VzID0g
ZmFsc2UpCkBAIC0yMDcsMTEgKzIwNywxMSBAQCBOU1N0cmluZyAqQWNjZXNzaWJpbGl0eVVJRWxl
bWVudDo6ZGVzY3JpcHRpb25PZlZhbHVlKGlkIHZhbHVlT2JqZWN0KSBjb25zdAogCiAgICAgLy8g
U3RyaXAgcG9pbnRlciBsb2NhdGlvbnMKICAgICBpZiAoW2Rlc2NyaXB0aW9uIHJhbmdlT2ZTdHJp
bmc6QCIweCJdLmxlbmd0aCkgewotICAgICAgICBOU1N0cmluZyAqcm9sZSA9IGF0dHJpYnV0ZVZh
bHVlKE5TQWNjZXNzaWJpbGl0eVJvbGVBdHRyaWJ1dGUpOwotICAgICAgICBOU1N0cmluZyAqdGl0
bGUgPSBhdHRyaWJ1dGVWYWx1ZShOU0FjY2Vzc2liaWxpdHlUaXRsZUF0dHJpYnV0ZSk7Ci0gICAg
ICAgIGlmICh0aXRsZS5sZW5ndGgpCi0gICAgICAgICAgICByZXR1cm4gW05TU3RyaW5nIHN0cmlu
Z1dpdGhGb3JtYXQ6QCI8JUA6ICclQCc+Iiwgcm9sZSwgdGl0bGVdOwotICAgICAgICByZXR1cm4g
W05TU3RyaW5nIHN0cmluZ1dpdGhGb3JtYXQ6QCI8JUA+Iiwgcm9sZV07CisgICAgICAgIGF1dG8g
cm9sZSA9IGF0dHJpYnV0ZVZhbHVlKE5TQWNjZXNzaWJpbGl0eVJvbGVBdHRyaWJ1dGUpOworICAg
ICAgICBhdXRvIHRpdGxlID0gYXR0cmlidXRlVmFsdWUoTlNBY2Nlc3NpYmlsaXR5VGl0bGVBdHRy
aWJ1dGUpOworICAgICAgICBpZiAoW3RpdGxlIGxlbmd0aF0pCisgICAgICAgICAgICByZXR1cm4g
W05TU3RyaW5nIHN0cmluZ1dpdGhGb3JtYXQ6QCI8JUA6ICclQCc+Iiwgcm9sZS5nZXQoKSwgdGl0
bGUuZ2V0KCldOworICAgICAgICByZXR1cm4gW05TU3RyaW5nIHN0cmluZ1dpdGhGb3JtYXQ6QCI8
JUA+Iiwgcm9sZS5nZXQoKV07CiAgICAgfQogCiAgICAgcmV0dXJuIFt2YWx1ZU9iamVjdCBkZXNj
cmlwdGlvbl07CkBAIC0zMTMsMTQgKzMxMywxNCBAQCBzdGF0aWMgTlNEaWN0aW9uYXJ5ICptaXNz
cGVsbGluZ1NlYXJjaFBhcmFtZXRlcml6ZWRBdHRyaWJ1dGVGb3JDcml0ZXJpYShBY2Nlc3NpYgog
ICAgIHJldHVybiBwYXJhbWV0ZXJzOwogfQogCi1pbmxpbmUgaWQgQWNjZXNzaWJpbGl0eVVJRWxl
bWVudDo6YXR0cmlidXRlVmFsdWUoTlNTdHJpbmcgKmF0dHJpYnV0ZU5hbWUpIGNvbnN0Citpbmxp
bmUgUmV0YWluUHRyPGlkPiBBY2Nlc3NpYmlsaXR5VUlFbGVtZW50OjphdHRyaWJ1dGVWYWx1ZShO
U1N0cmluZyAqYXR0cmlidXRlTmFtZSkgY29uc3QKIHsKICAgICByZXR1cm4gV1RSOjphdHRyaWJ1
dGVWYWx1ZShtX2VsZW1lbnQuZ2V0KCksIGF0dHJpYnV0ZU5hbWUpOwogfQogCiBKU1JldGFpblB0
cjxKU1N0cmluZ1JlZj4gQWNjZXNzaWJpbGl0eVVJRWxlbWVudDo6ZG9tSWRlbnRpZmllcigpIGNv
bnN0CiB7Ci0gICAgaWQgdmFsdWUgPSBhdHRyaWJ1dGVWYWx1ZShOU0FjY2Vzc2liaWxpdHlET01J
ZGVudGlmaWVyQXR0cmlidXRlKTsKKyAgICBhdXRvIHZhbHVlID0gYXR0cmlidXRlVmFsdWUoTlNB
Y2Nlc3NpYmlsaXR5RE9NSWRlbnRpZmllckF0dHJpYnV0ZSk7CiAgICAgaWYgKFt2YWx1ZSBpc0tp
bmRPZkNsYXNzOltOU1N0cmluZyBjbGFzc11dKQogICAgICAgICByZXR1cm4gW3ZhbHVlIGNyZWF0
ZUpTU3RyaW5nUmVmXTsKICAgICByZXR1cm4gbnVsbHB0cjsKQEAgLTMyOCwyNSArMzI4LDI1IEBA
IEpTUmV0YWluUHRyPEpTU3RyaW5nUmVmPiBBY2Nlc3NpYmlsaXR5VUlFbGVtZW50Ojpkb21JZGVu
dGlmaWVyKCkgY29uc3QKIAogdm9pZCBBY2Nlc3NpYmlsaXR5VUlFbGVtZW50OjpnZXRMaW5rZWRV
SUVsZW1lbnRzKFZlY3RvcjxSZWZQdHI8QWNjZXNzaWJpbGl0eVVJRWxlbWVudD4+JiBlbGVtZW50
VmVjdG9yKQogewotICAgIGVsZW1lbnRWZWN0b3IgPSBtYWtlVmVjdG9yPFJlZlB0cjxBY2Nlc3Np
YmlsaXR5VUlFbGVtZW50Pj4oYXR0cmlidXRlVmFsdWUoTlNBY2Nlc3NpYmlsaXR5TGlua2VkVUlF
bGVtZW50c0F0dHJpYnV0ZSkpOworICAgIGVsZW1lbnRWZWN0b3IgPSBtYWtlVmVjdG9yPFJlZlB0
cjxBY2Nlc3NpYmlsaXR5VUlFbGVtZW50Pj4oYXR0cmlidXRlVmFsdWUoTlNBY2Nlc3NpYmlsaXR5
TGlua2VkVUlFbGVtZW50c0F0dHJpYnV0ZSkuZ2V0KCkpOwogfQogCiB2b2lkIEFjY2Vzc2liaWxp
dHlVSUVsZW1lbnQ6OmdldERvY3VtZW50TGlua3MoVmVjdG9yPFJlZlB0cjxBY2Nlc3NpYmlsaXR5
VUlFbGVtZW50Pj4mIGVsZW1lbnRWZWN0b3IpCiB7Ci0gICAgZWxlbWVudFZlY3RvciA9IG1ha2VW
ZWN0b3I8UmVmUHRyPEFjY2Vzc2liaWxpdHlVSUVsZW1lbnQ+PihhdHRyaWJ1dGVWYWx1ZShAIkFY
TGlua1VJRWxlbWVudHMiKSk7CisgICAgZWxlbWVudFZlY3RvciA9IG1ha2VWZWN0b3I8UmVmUHRy
PEFjY2Vzc2liaWxpdHlVSUVsZW1lbnQ+PihhdHRyaWJ1dGVWYWx1ZShAIkFYTGlua1VJRWxlbWVu
dHMiKS5nZXQoKSk7CiB9CiAKIHZvaWQgQWNjZXNzaWJpbGl0eVVJRWxlbWVudDo6Z2V0VUlFbGVt
ZW50c1dpdGhBdHRyaWJ1dGUoSlNTdHJpbmdSZWYgYXR0cmlidXRlLCBWZWN0b3I8UmVmUHRyPEFj
Y2Vzc2liaWxpdHlVSUVsZW1lbnQ+PiYgZWxlbWVudHMpIGNvbnN0CiB7Ci0gICAgaWQgdmFsdWUg
PSBhdHRyaWJ1dGVWYWx1ZShbTlNTdHJpbmcgc3RyaW5nV2l0aEpTU3RyaW5nUmVmOmF0dHJpYnV0
ZV0pOworICAgIGF1dG8gdmFsdWUgPSBhdHRyaWJ1dGVWYWx1ZShbTlNTdHJpbmcgc3RyaW5nV2l0
aEpTU3RyaW5nUmVmOmF0dHJpYnV0ZV0pOwogICAgIGlmIChbdmFsdWUgaXNLaW5kT2ZDbGFzczpb
TlNBcnJheSBjbGFzc11dKQotICAgICAgICBlbGVtZW50cyA9IG1ha2VWZWN0b3I8UmVmUHRyPEFj
Y2Vzc2liaWxpdHlVSUVsZW1lbnQ+Pih2YWx1ZSk7CisgICAgICAgIGVsZW1lbnRzID0gbWFrZVZl
Y3RvcjxSZWZQdHI8QWNjZXNzaWJpbGl0eVVJRWxlbWVudD4+KHZhbHVlLmdldCgpKTsKIH0KIAog
SlNWYWx1ZVJlZiBBY2Nlc3NpYmlsaXR5VUlFbGVtZW50OjpjaGlsZHJlbigpIGNvbnN0CiB7CiAg
ICAgQkVHSU5fQVhfT0JKQ19FWENFUFRJT05TCi0gICAgcmV0dXJuIG1ha2VKU0FycmF5KG1ha2VW
ZWN0b3I8UmVmUHRyPEFjY2Vzc2liaWxpdHlVSUVsZW1lbnQ+PihhdHRyaWJ1dGVWYWx1ZShOU0Fj
Y2Vzc2liaWxpdHlDaGlsZHJlbkF0dHJpYnV0ZSkpKTsKKyAgICByZXR1cm4gbWFrZUpTQXJyYXko
bWFrZVZlY3RvcjxSZWZQdHI8QWNjZXNzaWJpbGl0eVVJRWxlbWVudD4+KGF0dHJpYnV0ZVZhbHVl
KE5TQWNjZXNzaWJpbGl0eUNoaWxkcmVuQXR0cmlidXRlKS5nZXQoKSkpOwogICAgIEVORF9BWF9P
QkpDX0VYQ0VQVElPTlMKIAogICAgIHJldHVybiBudWxscHRyOwpAQCAtMzU0LDcgKzM1NCw3IEBA
IEpTVmFsdWVSZWYgQWNjZXNzaWJpbGl0eVVJRWxlbWVudDo6Y2hpbGRyZW4oKSBjb25zdAogCiB2
b2lkIEFjY2Vzc2liaWxpdHlVSUVsZW1lbnQ6OmdldENoaWxkcmVuKFZlY3RvcjxSZWZQdHI8QWNj
ZXNzaWJpbGl0eVVJRWxlbWVudD4gPiYgZWxlbWVudFZlY3RvcikKIHsKLSAgICBlbGVtZW50VmVj
dG9yID0gbWFrZVZlY3RvcjxSZWZQdHI8QWNjZXNzaWJpbGl0eVVJRWxlbWVudD4+KGF0dHJpYnV0
ZVZhbHVlKE5TQWNjZXNzaWJpbGl0eUNoaWxkcmVuQXR0cmlidXRlKSk7CisgICAgZWxlbWVudFZl
Y3RvciA9IG1ha2VWZWN0b3I8UmVmUHRyPEFjY2Vzc2liaWxpdHlVSUVsZW1lbnQ+PihhdHRyaWJ1
dGVWYWx1ZShOU0FjY2Vzc2liaWxpdHlDaGlsZHJlbkF0dHJpYnV0ZSkuZ2V0KCkpOwogfQogCiB2
b2lkIEFjY2Vzc2liaWxpdHlVSUVsZW1lbnQ6OmdldENoaWxkcmVuV2l0aFJhbmdlKFZlY3RvcjxS
ZWZQdHI8QWNjZXNzaWJpbGl0eVVJRWxlbWVudD4gPiYgZWxlbWVudFZlY3RvciwgdW5zaWduZWQg
bG9jYXRpb24sIHVuc2lnbmVkIGxlbmd0aCkKQEAgLTM3Miw5ICszNzIsOSBAQCBKU1ZhbHVlUmVm
IEFjY2Vzc2liaWxpdHlVSUVsZW1lbnQ6OnJvd0hlYWRlcnMoKSBjb25zdAogewogICAgIEJFR0lO
X0FYX09CSkNfRVhDRVBUSU9OUwogICAgIFZlY3RvcjxSZWZQdHI8QWNjZXNzaWJpbGl0eVVJRWxl
bWVudD4+IGVsZW1lbnRzOwotICAgIGlkIHZhbHVlID0gYXR0cmlidXRlVmFsdWUoTlNBY2Nlc3Np
YmlsaXR5Um93SGVhZGVyVUlFbGVtZW50c0F0dHJpYnV0ZSk7CisgICAgYXV0byB2YWx1ZSA9IGF0
dHJpYnV0ZVZhbHVlKE5TQWNjZXNzaWJpbGl0eVJvd0hlYWRlclVJRWxlbWVudHNBdHRyaWJ1dGUp
OwogICAgIGlmIChbdmFsdWUgaXNLaW5kT2ZDbGFzczpbTlNBcnJheSBjbGFzc11dKQotICAgICAg
ICBlbGVtZW50cyA9IG1ha2VWZWN0b3I8UmVmUHRyPEFjY2Vzc2liaWxpdHlVSUVsZW1lbnQ+Pih2
YWx1ZSk7CisgICAgICAgIGVsZW1lbnRzID0gbWFrZVZlY3RvcjxSZWZQdHI8QWNjZXNzaWJpbGl0
eVVJRWxlbWVudD4+KHZhbHVlLmdldCgpKTsKICAgICByZXR1cm4gbWFrZUpTQXJyYXkoZWxlbWVu
dHMpOwogICAgIEVORF9BWF9PQkpDX0VYQ0VQVElPTlMKIH0KQEAgLTM4Myw5ICszODMsOSBAQCBK
U1ZhbHVlUmVmIEFjY2Vzc2liaWxpdHlVSUVsZW1lbnQ6OmNvbHVtbkhlYWRlcnMoKSBjb25zdAog
ewogICAgIEJFR0lOX0FYX09CSkNfRVhDRVBUSU9OUwogICAgIFZlY3RvcjxSZWZQdHI8QWNjZXNz
aWJpbGl0eVVJRWxlbWVudD4+IGVsZW1lbnRzOwotICAgIGlkIHZhbHVlID0gYXR0cmlidXRlVmFs
dWUoTlNBY2Nlc3NpYmlsaXR5Q29sdW1uSGVhZGVyVUlFbGVtZW50c0F0dHJpYnV0ZSk7CisgICAg
YXV0byB2YWx1ZSA9IGF0dHJpYnV0ZVZhbHVlKE5TQWNjZXNzaWJpbGl0eUNvbHVtbkhlYWRlclVJ
RWxlbWVudHNBdHRyaWJ1dGUpOwogICAgIGlmIChbdmFsdWUgaXNLaW5kT2ZDbGFzczpbTlNBcnJh
eSBjbGFzc11dKQotICAgICAgICBlbGVtZW50cyA9IG1ha2VWZWN0b3I8UmVmUHRyPEFjY2Vzc2li
aWxpdHlVSUVsZW1lbnQ+Pih2YWx1ZSk7CisgICAgICAgIGVsZW1lbnRzID0gbWFrZVZlY3RvcjxS
ZWZQdHI8QWNjZXNzaWJpbGl0eVVJRWxlbWVudD4+KHZhbHVlLmdldCgpKTsKICAgICByZXR1cm4g
bWFrZUpTQXJyYXkoZWxlbWVudHMpOwogICAgIEVORF9BWF9PQkpDX0VYQ0VQVElPTlMKIH0KQEAg
LTQzMywxNCArNDMzLDE0IEBAIFJlZlB0cjxBY2Nlc3NpYmlsaXR5VUlFbGVtZW50PiBBY2Nlc3Np
YmlsaXR5VUlFbGVtZW50OjpjaGlsZEF0SW5kZXgodW5zaWduZWQgaW5kCiAKIFJlZlB0cjxBY2Nl
c3NpYmlsaXR5VUlFbGVtZW50PiBBY2Nlc3NpYmlsaXR5VUlFbGVtZW50OjplbGVtZW50Rm9yQXR0
cmlidXRlKE5TU3RyaW5nKiBhdHRyaWJ1dGUpIGNvbnN0CiB7Ci0gICAgaWQgZWxlbWVudCA9IGF0
dHJpYnV0ZVZhbHVlKGF0dHJpYnV0ZSk7Ci0gICAgcmV0dXJuIGVsZW1lbnQgPyBBY2Nlc3NpYmls
aXR5VUlFbGVtZW50OjpjcmVhdGUoZWxlbWVudCkgOiBSZWZQdHI8QWNjZXNzaWJpbGl0eVVJRWxl
bWVudD4oKTsKKyAgICBhdXRvIGVsZW1lbnQgPSBhdHRyaWJ1dGVWYWx1ZShhdHRyaWJ1dGUpOwor
ICAgIHJldHVybiBlbGVtZW50ID8gQWNjZXNzaWJpbGl0eVVJRWxlbWVudDo6Y3JlYXRlKGVsZW1l
bnQuZ2V0KCkpIDogUmVmUHRyPEFjY2Vzc2liaWxpdHlVSUVsZW1lbnQ+KCk7CiB9CiAKIFJlZlB0
cjxBY2Nlc3NpYmlsaXR5VUlFbGVtZW50PiBBY2Nlc3NpYmlsaXR5VUlFbGVtZW50OjplbGVtZW50
Rm9yQXR0cmlidXRlQXRJbmRleChOU1N0cmluZyogYXR0cmlidXRlLCB1bnNpZ25lZCBpbmRleCkg
Y29uc3QKIHsKLSAgICBOU0FycmF5KiBlbGVtZW50cyA9IGF0dHJpYnV0ZVZhbHVlKGF0dHJpYnV0
ZSk7Ci0gICAgcmV0dXJuIGluZGV4IDwgZWxlbWVudHMuY291bnQgPyBBY2Nlc3NpYmlsaXR5VUlF
bGVtZW50OjpjcmVhdGUoW2VsZW1lbnRzIG9iamVjdEF0SW5kZXg6aW5kZXhdKSA6IFJlZlB0cjxB
Y2Nlc3NpYmlsaXR5VUlFbGVtZW50PigpOworICAgIGF1dG8gZWxlbWVudHMgPSBhdHRyaWJ1dGVW
YWx1ZShhdHRyaWJ1dGUpOworICAgIHJldHVybiBpbmRleCA8IFtlbGVtZW50cyBjb3VudF0gPyBB
Y2Nlc3NpYmlsaXR5VUlFbGVtZW50OjpjcmVhdGUoW2VsZW1lbnRzIG9iamVjdEF0SW5kZXg6aW5k
ZXhdKSA6IFJlZlB0cjxBY2Nlc3NpYmlsaXR5VUlFbGVtZW50PigpOwogfQogCiBSZWZQdHI8QWNj
ZXNzaWJpbGl0eVVJRWxlbWVudD4gQWNjZXNzaWJpbGl0eVVJRWxlbWVudDo6bGlua2VkVUlFbGVt
ZW50QXRJbmRleCh1bnNpZ25lZCBpbmRleCkKQEAgLTQ1MSw5ICs0NTEsOSBAQCBSZWZQdHI8QWNj
ZXNzaWJpbGl0eVVJRWxlbWVudD4gQWNjZXNzaWJpbGl0eVVJRWxlbWVudDo6bGlua2VkVUlFbGVt
ZW50QXRJbmRleCh1bgogSlNWYWx1ZVJlZiBBY2Nlc3NpYmlsaXR5VUlFbGVtZW50OjpkZXRhaWxz
RWxlbWVudHMoKSBjb25zdAogewogICAgIEJFR0lOX0FYX09CSkNfRVhDRVBUSU9OUwotICAgIE5T
QXJyYXkgKmVsZW1lbnRzID0gYXR0cmlidXRlVmFsdWUoQCJBWERldGFpbHNFbGVtZW50cyIpOwor
ICAgIGF1dG8gZWxlbWVudHMgPSBhdHRyaWJ1dGVWYWx1ZShAIkFYRGV0YWlsc0VsZW1lbnRzIik7
CiAgICAgaWYgKFtlbGVtZW50cyBpc0tpbmRPZkNsYXNzOk5TQXJyYXkuY2xhc3NdKQotICAgICAg
ICByZXR1cm4gbWFrZUpTQXJyYXkobWFrZVZlY3RvcjxSZWZQdHI8QWNjZXNzaWJpbGl0eVVJRWxl
bWVudD4+KGVsZW1lbnRzKSk7CisgICAgICAgIHJldHVybiBtYWtlSlNBcnJheShtYWtlVmVjdG9y
PFJlZlB0cjxBY2Nlc3NpYmlsaXR5VUlFbGVtZW50Pj4oZWxlbWVudHMuZ2V0KCkpKTsKICAgICBF
TkRfQVhfT0JKQ19FWENFUFRJT05TCiAKICAgICByZXR1cm4geyB9OwpAQCAtNDYyLDkgKzQ2Miw5
IEBAIEpTVmFsdWVSZWYgQWNjZXNzaWJpbGl0eVVJRWxlbWVudDo6ZGV0YWlsc0VsZW1lbnRzKCkg
Y29uc3QKIEpTVmFsdWVSZWYgQWNjZXNzaWJpbGl0eVVJRWxlbWVudDo6ZXJyb3JNZXNzYWdlRWxl
bWVudHMoKSBjb25zdAogewogICAgIEJFR0lOX0FYX09CSkNfRVhDRVBUSU9OUwotICAgIE5TQXJy
YXkgKmVsZW1lbnRzID0gYXR0cmlidXRlVmFsdWUoQCJBWEVycm9yTWVzc2FnZUVsZW1lbnRzIik7
CisgICAgYXV0byBlbGVtZW50cyA9IGF0dHJpYnV0ZVZhbHVlKEAiQVhFcnJvck1lc3NhZ2VFbGVt
ZW50cyIpOwogICAgIGlmIChbZWxlbWVudHMgaXNLaW5kT2ZDbGFzczpOU0FycmF5LmNsYXNzXSkK
LSAgICAgICAgcmV0dXJuIG1ha2VKU0FycmF5KG1ha2VWZWN0b3I8UmVmUHRyPEFjY2Vzc2liaWxp
dHlVSUVsZW1lbnQ+PihlbGVtZW50cykpOworICAgICAgICByZXR1cm4gbWFrZUpTQXJyYXkobWFr
ZVZlY3RvcjxSZWZQdHI8QWNjZXNzaWJpbGl0eVVJRWxlbWVudD4+KGVsZW1lbnRzLmdldCgpKSk7
CiAgICAgRU5EX0FYX09CSkNfRVhDRVBUSU9OUwogCiAgICAgcmV0dXJuIHsgfTsKQEAgLTU3Niw3
ICs1NzYsNyBAQCBKU1JldGFpblB0cjxKU1N0cmluZ1JlZj4gQWNjZXNzaWJpbGl0eVVJRWxlbWVu
dDo6YWxsQXR0cmlidXRlcygpCiAgICAgICAgICAgICB8fCBbYXR0cmlidXRlIGlzRXF1YWxUb1N0
cmluZzpAIkFYUmVsYXRpdmVGcmFtZSJdKQogICAgICAgICAgICAgY29udGludWU7CiAKLSAgICAg
ICAgTlNTdHJpbmcgKnZhbHVlID0gZGVzY3JpcHRpb25PZlZhbHVlKGF0dHJpYnV0ZVZhbHVlKGF0
dHJpYnV0ZSkpOworICAgICAgICBOU1N0cmluZyAqdmFsdWUgPSBkZXNjcmlwdGlvbk9mVmFsdWUo
YXR0cmlidXRlVmFsdWUoYXR0cmlidXRlKS5nZXQoKSk7CiAgICAgICAgIFt2YWx1ZXMgYXBwZW5k
Rm9ybWF0OkAiJUA6ICVAXG4iLCBhdHRyaWJ1dGUsIHZhbHVlXTsKICAgICB9CiAKQEAgLTU4NSwx
NCArNTg1LDE0IEBAIEpTUmV0YWluUHRyPEpTU3RyaW5nUmVmPiBBY2Nlc3NpYmlsaXR5VUlFbGVt
ZW50OjphbGxBdHRyaWJ1dGVzKCkKIAogSlNSZXRhaW5QdHI8SlNTdHJpbmdSZWY+IEFjY2Vzc2li
aWxpdHlVSUVsZW1lbnQ6OnN0cmluZ0Rlc2NyaXB0aW9uT2ZBdHRyaWJ1dGVWYWx1ZShKU1N0cmlu
Z1JlZiBhdHRyaWJ1dGUpCiB7Ci0gICAgaWQgdmFsdWUgPSBhdHRyaWJ1dGVWYWx1ZShbTlNTdHJp
bmcgc3RyaW5nV2l0aEpTU3RyaW5nUmVmOmF0dHJpYnV0ZV0pOwotICAgIE5TU3RyaW5nICp2YWx1
ZURlc2NyaXB0aW9uID0gZGVzY3JpcHRpb25PZlZhbHVlKHZhbHVlKTsKKyAgICBhdXRvIHZhbHVl
ID0gYXR0cmlidXRlVmFsdWUoW05TU3RyaW5nIHN0cmluZ1dpdGhKU1N0cmluZ1JlZjphdHRyaWJ1
dGVdKTsKKyAgICBOU1N0cmluZyAqdmFsdWVEZXNjcmlwdGlvbiA9IGRlc2NyaXB0aW9uT2ZWYWx1
ZSh2YWx1ZS5nZXQoKSk7CiAgICAgcmV0dXJuIFt2YWx1ZURlc2NyaXB0aW9uIGNyZWF0ZUpTU3Ry
aW5nUmVmXTsKIH0KIAogSlNSZXRhaW5QdHI8SlNTdHJpbmdSZWY+IEFjY2Vzc2liaWxpdHlVSUVs
ZW1lbnQ6OnN0cmluZ0F0dHJpYnV0ZVZhbHVlKEpTU3RyaW5nUmVmIGF0dHJpYnV0ZSkKIHsKLSAg
ICBpZCB2YWx1ZSA9IGF0dHJpYnV0ZVZhbHVlKFtOU1N0cmluZyBzdHJpbmdXaXRoSlNTdHJpbmdS
ZWY6YXR0cmlidXRlXSk7CisgICAgYXV0byB2YWx1ZSA9IGF0dHJpYnV0ZVZhbHVlKFtOU1N0cmlu
ZyBzdHJpbmdXaXRoSlNTdHJpbmdSZWY6YXR0cmlidXRlXSk7CiAgICAgaWYgKFt2YWx1ZSBpc0tp
bmRPZkNsYXNzOltOU1N0cmluZyBjbGFzc11dKQogICAgICAgICByZXR1cm4gW3ZhbHVlIGNyZWF0
ZUpTU3RyaW5nUmVmXTsKICAgICByZXR1cm4gbnVsbHB0cjsKQEAgLTYwMCw3ICs2MDAsNyBAQCBK
U1JldGFpblB0cjxKU1N0cmluZ1JlZj4gQWNjZXNzaWJpbGl0eVVJRWxlbWVudDo6c3RyaW5nQXR0
cmlidXRlVmFsdWUoSlNTdHJpbmdSZQogCiBkb3VibGUgQWNjZXNzaWJpbGl0eVVJRWxlbWVudDo6
bnVtYmVyQXR0cmlidXRlVmFsdWUoSlNTdHJpbmdSZWYgYXR0cmlidXRlKQogewotICAgIGlkIHZh
bHVlID0gYXR0cmlidXRlVmFsdWUoW05TU3RyaW5nIHN0cmluZ1dpdGhKU1N0cmluZ1JlZjphdHRy
aWJ1dGVdKTsKKyAgICBhdXRvIHZhbHVlID0gYXR0cmlidXRlVmFsdWUoW05TU3RyaW5nIHN0cmlu
Z1dpdGhKU1N0cmluZ1JlZjphdHRyaWJ1dGVdKTsKICAgICBpZiAoW3ZhbHVlIGlzS2luZE9mQ2xh
c3M6W05TTnVtYmVyIGNsYXNzXV0pCiAgICAgICAgIHJldHVybiBbdmFsdWUgZG91YmxlVmFsdWVd
OwogICAgIHJldHVybiAwOwpAQCAtNjE1LDEzICs2MTUsMTMgQEAgSlNWYWx1ZVJlZiBBY2Nlc3Np
YmlsaXR5VUlFbGVtZW50Ojp1aUVsZW1lbnRBcnJheUF0dHJpYnV0ZVZhbHVlKEpTU3RyaW5nUmVm
IGF0dHIKIAogUmVmUHRyPEFjY2Vzc2liaWxpdHlVSUVsZW1lbnQ+IEFjY2Vzc2liaWxpdHlVSUVs
ZW1lbnQ6OnVpRWxlbWVudEF0dHJpYnV0ZVZhbHVlKEpTU3RyaW5nUmVmIGF0dHJpYnV0ZSkgY29u
c3QKIHsKLSAgICBpZCB2YWx1ZSA9IGF0dHJpYnV0ZVZhbHVlKFtOU1N0cmluZyBzdHJpbmdXaXRo
SlNTdHJpbmdSZWY6YXR0cmlidXRlXSk7Ci0gICAgcmV0dXJuIEFjY2Vzc2liaWxpdHlVSUVsZW1l
bnQ6OmNyZWF0ZSh2YWx1ZSk7CisgICAgYXV0byB2YWx1ZSA9IGF0dHJpYnV0ZVZhbHVlKFtOU1N0
cmluZyBzdHJpbmdXaXRoSlNTdHJpbmdSZWY6YXR0cmlidXRlXSk7CisgICAgcmV0dXJuIEFjY2Vz
c2liaWxpdHlVSUVsZW1lbnQ6OmNyZWF0ZSh2YWx1ZS5nZXQoKSk7CiB9CiAKIGJvb2wgQWNjZXNz
aWJpbGl0eVVJRWxlbWVudDo6Ym9vbEF0dHJpYnV0ZVZhbHVlKEpTU3RyaW5nUmVmIGF0dHJpYnV0
ZSkKIHsKLSAgICBpZCB2YWx1ZSA9IGF0dHJpYnV0ZVZhbHVlKFtOU1N0cmluZyBzdHJpbmdXaXRo
SlNTdHJpbmdSZWY6YXR0cmlidXRlXSk7CisgICAgYXV0byB2YWx1ZSA9IGF0dHJpYnV0ZVZhbHVl
KFtOU1N0cmluZyBzdHJpbmdXaXRoSlNTdHJpbmdSZWY6YXR0cmlidXRlXSk7CiAgICAgaWYgKFt2
YWx1ZSBpc0tpbmRPZkNsYXNzOltOU051bWJlciBjbGFzc11dKQogICAgICAgICByZXR1cm4gW3Zh
bHVlIGJvb2xWYWx1ZV07CiAgICAgcmV0dXJuIGZhbHNlOwpAQCAtNjkzLDcgKzY5Myw3IEBAIEpT
UmV0YWluUHRyPEpTU3RyaW5nUmVmPiBBY2Nlc3NpYmlsaXR5VUlFbGVtZW50OjpwYXJhbWV0ZXJp
emVkQXR0cmlidXRlTmFtZXMoKQogSlNSZXRhaW5QdHI8SlNTdHJpbmdSZWY+IEFjY2Vzc2liaWxp
dHlVSUVsZW1lbnQ6OnJvbGUoKQogewogICAgIEJFR0lOX0FYX09CSkNfRVhDRVBUSU9OUwotICAg
IE5TU3RyaW5nICpyb2xlID0gZGVzY3JpcHRpb25PZlZhbHVlKGF0dHJpYnV0ZVZhbHVlKE5TQWNj
ZXNzaWJpbGl0eVJvbGVBdHRyaWJ1dGUpKTsKKyAgICBOU1N0cmluZyAqcm9sZSA9IGRlc2NyaXB0
aW9uT2ZWYWx1ZShhdHRyaWJ1dGVWYWx1ZShOU0FjY2Vzc2liaWxpdHlSb2xlQXR0cmlidXRlKS5n
ZXQoKSk7CiAgICAgcmV0dXJuIGNvbmNhdGVuYXRlQXR0cmlidXRlQW5kVmFsdWUoQCJBWFJvbGUi
LCByb2xlKTsKICAgICBFTkRfQVhfT0JKQ19FWENFUFRJT05TCiAKQEAgLTcwMyw3ICs3MDMsNyBA
QCBKU1JldGFpblB0cjxKU1N0cmluZ1JlZj4gQWNjZXNzaWJpbGl0eVVJRWxlbWVudDo6cm9sZSgp
CiBKU1JldGFpblB0cjxKU1N0cmluZ1JlZj4gQWNjZXNzaWJpbGl0eVVJRWxlbWVudDo6c3Vicm9s
ZSgpCiB7CiAgICAgQkVHSU5fQVhfT0JKQ19FWENFUFRJT05TCi0gICAgTlNTdHJpbmcgKnN1YnJv
bGUgPSBkZXNjcmlwdGlvbk9mVmFsdWUoYXR0cmlidXRlVmFsdWUoTlNBY2Nlc3NpYmlsaXR5U3Vi
cm9sZUF0dHJpYnV0ZSkpOworICAgIE5TU3RyaW5nICpzdWJyb2xlID0gZGVzY3JpcHRpb25PZlZh
bHVlKGF0dHJpYnV0ZVZhbHVlKE5TQWNjZXNzaWJpbGl0eVN1YnJvbGVBdHRyaWJ1dGUpLmdldCgp
KTsKICAgICByZXR1cm4gY29uY2F0ZW5hdGVBdHRyaWJ1dGVBbmRWYWx1ZShAIkFYU3Vicm9sZSIs
IHN1YnJvbGUpOwogICAgIEVORF9BWF9PQkpDX0VYQ0VQVElPTlMKIApAQCAtNzEzLDcgKzcxMyw3
IEBAIEpTUmV0YWluUHRyPEpTU3RyaW5nUmVmPiBBY2Nlc3NpYmlsaXR5VUlFbGVtZW50OjpzdWJy
b2xlKCkKIEpTUmV0YWluUHRyPEpTU3RyaW5nUmVmPiBBY2Nlc3NpYmlsaXR5VUlFbGVtZW50Ojpy
b2xlRGVzY3JpcHRpb24oKQogewogICAgIEJFR0lOX0FYX09CSkNfRVhDRVBUSU9OUwotICAgIE5T
U3RyaW5nICpyb2xlID0gZGVzY3JpcHRpb25PZlZhbHVlKGF0dHJpYnV0ZVZhbHVlKE5TQWNjZXNz
aWJpbGl0eVJvbGVEZXNjcmlwdGlvbkF0dHJpYnV0ZSkpOworICAgIE5TU3RyaW5nICpyb2xlID0g
ZGVzY3JpcHRpb25PZlZhbHVlKGF0dHJpYnV0ZVZhbHVlKE5TQWNjZXNzaWJpbGl0eVJvbGVEZXNj
cmlwdGlvbkF0dHJpYnV0ZSkuZ2V0KCkpOwogICAgIHJldHVybiBjb25jYXRlbmF0ZUF0dHJpYnV0
ZUFuZFZhbHVlKEAiQVhSb2xlRGVzY3JpcHRpb24iLCByb2xlKTsKICAgICBFTkRfQVhfT0JKQ19F
WENFUFRJT05TCiAKQEAgLTcyMyw3ICs3MjMsNyBAQCBKU1JldGFpblB0cjxKU1N0cmluZ1JlZj4g
QWNjZXNzaWJpbGl0eVVJRWxlbWVudDo6cm9sZURlc2NyaXB0aW9uKCkKIEpTUmV0YWluUHRyPEpT
U3RyaW5nUmVmPiBBY2Nlc3NpYmlsaXR5VUlFbGVtZW50Ojpjb21wdXRlZFJvbGVTdHJpbmcoKQog
ewogICAgIEJFR0lOX0FYX09CSkNfRVhDRVBUSU9OUwotICAgIE5TU3RyaW5nICpjb21wdXRlZFJv
bGVTdHJpbmcgPSBkZXNjcmlwdGlvbk9mVmFsdWUoYXR0cmlidXRlVmFsdWUoQCJBWEFSSUFSb2xl
IikpOworICAgIE5TU3RyaW5nICpjb21wdXRlZFJvbGVTdHJpbmcgPSBkZXNjcmlwdGlvbk9mVmFs
dWUoYXR0cmlidXRlVmFsdWUoQCJBWEFSSUFSb2xlIikuZ2V0KCkpOwogICAgIHJldHVybiBbY29t
cHV0ZWRSb2xlU3RyaW5nIGNyZWF0ZUpTU3RyaW5nUmVmXTsKICAgICBFTkRfQVhfT0JKQ19FWENF
UFRJT05TCiAKQEAgLTczMyw3ICs3MzMsNyBAQCBKU1JldGFpblB0cjxKU1N0cmluZ1JlZj4gQWNj
ZXNzaWJpbGl0eVVJRWxlbWVudDo6Y29tcHV0ZWRSb2xlU3RyaW5nKCkKIEpTUmV0YWluUHRyPEpT
U3RyaW5nUmVmPiBBY2Nlc3NpYmlsaXR5VUlFbGVtZW50Ojp0aXRsZSgpCiB7CiAgICAgQkVHSU5f
QVhfT0JKQ19FWENFUFRJT05TCi0gICAgTlNTdHJpbmcgKnRpdGxlID0gZGVzY3JpcHRpb25PZlZh
bHVlKGF0dHJpYnV0ZVZhbHVlKE5TQWNjZXNzaWJpbGl0eVRpdGxlQXR0cmlidXRlKSk7CisgICAg
TlNTdHJpbmcgKnRpdGxlID0gZGVzY3JpcHRpb25PZlZhbHVlKGF0dHJpYnV0ZVZhbHVlKE5TQWNj
ZXNzaWJpbGl0eVRpdGxlQXR0cmlidXRlKS5nZXQoKSk7CiAgICAgcmV0dXJuIGNvbmNhdGVuYXRl
QXR0cmlidXRlQW5kVmFsdWUoQCJBWFRpdGxlIiwgdGl0bGUpOwogICAgIEVORF9BWF9PQkpDX0VY
Q0VQVElPTlMKIApAQCAtNzQzLDcgKzc0Myw3IEBAIEpTUmV0YWluUHRyPEpTU3RyaW5nUmVmPiBB
Y2Nlc3NpYmlsaXR5VUlFbGVtZW50Ojp0aXRsZSgpCiBKU1JldGFpblB0cjxKU1N0cmluZ1JlZj4g
QWNjZXNzaWJpbGl0eVVJRWxlbWVudDo6ZGVzY3JpcHRpb24oKQogewogICAgIEJFR0lOX0FYX09C
SkNfRVhDRVBUSU9OUwotICAgIE5TU3RyaW5nICpkZXNjcmlwdGlvbiA9IGRlc2NyaXB0aW9uT2ZW
YWx1ZShhdHRyaWJ1dGVWYWx1ZShOU0FjY2Vzc2liaWxpdHlEZXNjcmlwdGlvbkF0dHJpYnV0ZSkp
OworICAgIE5TU3RyaW5nICpkZXNjcmlwdGlvbiA9IGRlc2NyaXB0aW9uT2ZWYWx1ZShhdHRyaWJ1
dGVWYWx1ZShOU0FjY2Vzc2liaWxpdHlEZXNjcmlwdGlvbkF0dHJpYnV0ZSkuZ2V0KCkpOwogICAg
IHJldHVybiBjb25jYXRlbmF0ZUF0dHJpYnV0ZUFuZFZhbHVlKEAiQVhEZXNjcmlwdGlvbiIsIGRl
c2NyaXB0aW9uKTsKICAgICBFTkRfQVhfT0JKQ19FWENFUFRJT05TCiAKQEAgLTc1Myw3ICs3NTMs
NyBAQCBKU1JldGFpblB0cjxKU1N0cmluZ1JlZj4gQWNjZXNzaWJpbGl0eVVJRWxlbWVudDo6ZGVz
Y3JpcHRpb24oKQogSlNSZXRhaW5QdHI8SlNTdHJpbmdSZWY+IEFjY2Vzc2liaWxpdHlVSUVsZW1l
bnQ6Om9yaWVudGF0aW9uKCkgY29uc3QKIHsKICAgICBCRUdJTl9BWF9PQkpDX0VYQ0VQVElPTlMK
LSAgICBOU1N0cmluZyAqZGVzY3JpcHRpb24gPSBkZXNjcmlwdGlvbk9mVmFsdWUoYXR0cmlidXRl
VmFsdWUoTlNBY2Nlc3NpYmlsaXR5T3JpZW50YXRpb25BdHRyaWJ1dGUpKTsKKyAgICBOU1N0cmlu
ZyAqZGVzY3JpcHRpb24gPSBkZXNjcmlwdGlvbk9mVmFsdWUoYXR0cmlidXRlVmFsdWUoTlNBY2Nl
c3NpYmlsaXR5T3JpZW50YXRpb25BdHRyaWJ1dGUpLmdldCgpKTsKICAgICByZXR1cm4gY29uY2F0
ZW5hdGVBdHRyaWJ1dGVBbmRWYWx1ZShAIkFYT3JpZW50YXRpb24iLCBkZXNjcmlwdGlvbik7ICAg
IAogICAgIEVORF9BWF9PQkpDX0VYQ0VQVElPTlMKIApAQCAtNzYzLDcgKzc2Myw3IEBAIEpTUmV0
YWluUHRyPEpTU3RyaW5nUmVmPiBBY2Nlc3NpYmlsaXR5VUlFbGVtZW50OjpvcmllbnRhdGlvbigp
IGNvbnN0CiBKU1JldGFpblB0cjxKU1N0cmluZ1JlZj4gQWNjZXNzaWJpbGl0eVVJRWxlbWVudDo6
c3RyaW5nVmFsdWUoKQogewogICAgIEJFR0lOX0FYX09CSkNfRVhDRVBUSU9OUwotICAgIE5TU3Ry
aW5nICpkZXNjcmlwdGlvbiA9IGRlc2NyaXB0aW9uT2ZWYWx1ZShhdHRyaWJ1dGVWYWx1ZShOU0Fj
Y2Vzc2liaWxpdHlWYWx1ZUF0dHJpYnV0ZSkpOworICAgIE5TU3RyaW5nICpkZXNjcmlwdGlvbiA9
IGRlc2NyaXB0aW9uT2ZWYWx1ZShhdHRyaWJ1dGVWYWx1ZShOU0FjY2Vzc2liaWxpdHlWYWx1ZUF0
dHJpYnV0ZSkuZ2V0KCkpOwogICAgIGlmIChkZXNjcmlwdGlvbikKICAgICAgICAgcmV0dXJuIGNv
bmNhdGVuYXRlQXR0cmlidXRlQW5kVmFsdWUoQCJBWFZhbHVlIiwgZGVzY3JpcHRpb24pOwogICAg
IEVORF9BWF9PQkpDX0VYQ0VQVElPTlMKQEAgLTc3NCw3ICs3NzQsNyBAQCBKU1JldGFpblB0cjxK
U1N0cmluZ1JlZj4gQWNjZXNzaWJpbGl0eVVJRWxlbWVudDo6c3RyaW5nVmFsdWUoKQogSlNSZXRh
aW5QdHI8SlNTdHJpbmdSZWY+IEFjY2Vzc2liaWxpdHlVSUVsZW1lbnQ6Omxhbmd1YWdlKCkKIHsK
ICAgICBCRUdJTl9BWF9PQkpDX0VYQ0VQVElPTlMKLSAgICBOU1N0cmluZyAqZGVzY3JpcHRpb24g
PSBkZXNjcmlwdGlvbk9mVmFsdWUoYXR0cmlidXRlVmFsdWUoQCJBWExhbmd1YWdlIikpOworICAg
IE5TU3RyaW5nICpkZXNjcmlwdGlvbiA9IGRlc2NyaXB0aW9uT2ZWYWx1ZShhdHRyaWJ1dGVWYWx1
ZShAIkFYTGFuZ3VhZ2UiKS5nZXQoKSk7CiAgICAgcmV0dXJuIGNvbmNhdGVuYXRlQXR0cmlidXRl
QW5kVmFsdWUoQCJBWExhbmd1YWdlIiwgZGVzY3JpcHRpb24pOwogICAgIEVORF9BWF9PQkpDX0VY
Q0VQVElPTlMKIApAQCAtNzg0LDcgKzc4NCw3IEBAIEpTUmV0YWluUHRyPEpTU3RyaW5nUmVmPiBB
Y2Nlc3NpYmlsaXR5VUlFbGVtZW50OjpsYW5ndWFnZSgpCiBKU1JldGFpblB0cjxKU1N0cmluZ1Jl
Zj4gQWNjZXNzaWJpbGl0eVVJRWxlbWVudDo6aGVscFRleHQoKSBjb25zdAogewogICAgIEJFR0lO
X0FYX09CSkNfRVhDRVBUSU9OUwotICAgIE5TU3RyaW5nICpkZXNjcmlwdGlvbiA9IGRlc2NyaXB0
aW9uT2ZWYWx1ZShhdHRyaWJ1dGVWYWx1ZShOU0FjY2Vzc2liaWxpdHlIZWxwQXR0cmlidXRlKSk7
CisgICAgTlNTdHJpbmcgKmRlc2NyaXB0aW9uID0gZGVzY3JpcHRpb25PZlZhbHVlKGF0dHJpYnV0
ZVZhbHVlKE5TQWNjZXNzaWJpbGl0eUhlbHBBdHRyaWJ1dGUpLmdldCgpKTsKICAgICByZXR1cm4g
Y29uY2F0ZW5hdGVBdHRyaWJ1dGVBbmRWYWx1ZShAIkFYSGVscCIsIGRlc2NyaXB0aW9uKTsKICAg
ICBFTkRfQVhfT0JKQ19FWENFUFRJT05TCiAgICAgCkBAIC03OTQsNyArNzk0LDcgQEAgSlNSZXRh
aW5QdHI8SlNTdHJpbmdSZWY+IEFjY2Vzc2liaWxpdHlVSUVsZW1lbnQ6OmhlbHBUZXh0KCkgY29u
c3QKIGRvdWJsZSBBY2Nlc3NpYmlsaXR5VUlFbGVtZW50Ojp4KCkKIHsKICAgICBCRUdJTl9BWF9P
QkpDX0VYQ0VQVElPTlMKLSAgICBOU1ZhbHVlICpwb3NpdGlvblZhbHVlID0gYXR0cmlidXRlVmFs
dWUoTlNBY2Nlc3NpYmlsaXR5UG9zaXRpb25BdHRyaWJ1dGUpOworICAgIGF1dG8gcG9zaXRpb25W
YWx1ZSA9IGF0dHJpYnV0ZVZhbHVlKE5TQWNjZXNzaWJpbGl0eVBvc2l0aW9uQXR0cmlidXRlKTsK
ICAgICByZXR1cm4gc3RhdGljX2Nhc3Q8ZG91YmxlPihbcG9zaXRpb25WYWx1ZSBwb2ludFZhbHVl
XS54KTsgICAgCiAgICAgRU5EX0FYX09CSkNfRVhDRVBUSU9OUwogCkBAIC04MDQsNyArODA0LDcg
QEAgZG91YmxlIEFjY2Vzc2liaWxpdHlVSUVsZW1lbnQ6OngoKQogZG91YmxlIEFjY2Vzc2liaWxp
dHlVSUVsZW1lbnQ6OnkoKQogewogICAgIEJFR0lOX0FYX09CSkNfRVhDRVBUSU9OUwotICAgIE5T
VmFsdWUgKnBvc2l0aW9uVmFsdWUgPSBhdHRyaWJ1dGVWYWx1ZShOU0FjY2Vzc2liaWxpdHlQb3Np
dGlvbkF0dHJpYnV0ZSk7CisgICAgYXV0byBwb3NpdGlvblZhbHVlID0gYXR0cmlidXRlVmFsdWUo
TlNBY2Nlc3NpYmlsaXR5UG9zaXRpb25BdHRyaWJ1dGUpOwogICAgIHJldHVybiBzdGF0aWNfY2Fz
dDxkb3VibGU+KFtwb3NpdGlvblZhbHVlIHBvaW50VmFsdWVdLnkpOyAgICAKICAgICBFTkRfQVhf
T0JKQ19FWENFUFRJT05TCiAKQEAgLTgxNCw3ICs4MTQsNyBAQCBkb3VibGUgQWNjZXNzaWJpbGl0
eVVJRWxlbWVudDo6eSgpCiBkb3VibGUgQWNjZXNzaWJpbGl0eVVJRWxlbWVudDo6d2lkdGgoKQog
ewogICAgIEJFR0lOX0FYX09CSkNfRVhDRVBUSU9OUwotICAgIE5TVmFsdWUgKnNpemVWYWx1ZSA9
IGF0dHJpYnV0ZVZhbHVlKE5TQWNjZXNzaWJpbGl0eVNpemVBdHRyaWJ1dGUpOworICAgIGF1dG8g
c2l6ZVZhbHVlID0gYXR0cmlidXRlVmFsdWUoTlNBY2Nlc3NpYmlsaXR5U2l6ZUF0dHJpYnV0ZSk7
CiAgICAgcmV0dXJuIHN0YXRpY19jYXN0PGRvdWJsZT4oW3NpemVWYWx1ZSBzaXplVmFsdWVdLndp
ZHRoKTsKICAgICBFTkRfQVhfT0JKQ19FWENFUFRJT05TCiAKQEAgLTgyNCw3ICs4MjQsNyBAQCBk
b3VibGUgQWNjZXNzaWJpbGl0eVVJRWxlbWVudDo6d2lkdGgoKQogZG91YmxlIEFjY2Vzc2liaWxp
dHlVSUVsZW1lbnQ6OmhlaWdodCgpCiB7CiAgICAgQkVHSU5fQVhfT0JKQ19FWENFUFRJT05TCi0g
ICAgTlNWYWx1ZSAqc2l6ZVZhbHVlID0gYXR0cmlidXRlVmFsdWUoTlNBY2Nlc3NpYmlsaXR5U2l6
ZUF0dHJpYnV0ZSk7CisgICAgYXV0byBzaXplVmFsdWUgPSBhdHRyaWJ1dGVWYWx1ZShOU0FjY2Vz
c2liaWxpdHlTaXplQXR0cmlidXRlKTsKICAgICByZXR1cm4gc3RhdGljX2Nhc3Q8ZG91YmxlPihb
c2l6ZVZhbHVlIHNpemVWYWx1ZV0uaGVpZ2h0KTsKICAgICBFTkRfQVhfT0JKQ19FWENFUFRJT05T
CiAKQEAgLTgzNCw3ICs4MzQsNyBAQCBkb3VibGUgQWNjZXNzaWJpbGl0eVVJRWxlbWVudDo6aGVp
Z2h0KCkKIGRvdWJsZSBBY2Nlc3NpYmlsaXR5VUlFbGVtZW50OjpjbGlja1BvaW50WCgpCiB7CiAg
ICAgQkVHSU5fQVhfT0JKQ19FWENFUFRJT05TCi0gICAgTlNWYWx1ZSAqcG9zaXRpb25WYWx1ZSA9
IGF0dHJpYnV0ZVZhbHVlKEAiQVhDbGlja1BvaW50Iik7CisgICAgYXV0byBwb3NpdGlvblZhbHVl
ID0gYXR0cmlidXRlVmFsdWUoQCJBWENsaWNrUG9pbnQiKTsKICAgICByZXR1cm4gc3RhdGljX2Nh
c3Q8ZG91YmxlPihbcG9zaXRpb25WYWx1ZSBwb2ludFZhbHVlXS54KTsgICAgICAgIAogICAgIEVO
RF9BWF9PQkpDX0VYQ0VQVElPTlMKIApAQCAtODQ0LDcgKzg0NCw3IEBAIGRvdWJsZSBBY2Nlc3Np
YmlsaXR5VUlFbGVtZW50OjpjbGlja1BvaW50WCgpCiBkb3VibGUgQWNjZXNzaWJpbGl0eVVJRWxl
bWVudDo6Y2xpY2tQb2ludFkoKQogewogICAgIEJFR0lOX0FYX09CSkNfRVhDRVBUSU9OUwotICAg
IE5TVmFsdWUgKnBvc2l0aW9uVmFsdWUgPSBhdHRyaWJ1dGVWYWx1ZShAIkFYQ2xpY2tQb2ludCIp
OworICAgIGF1dG8gcG9zaXRpb25WYWx1ZSA9IGF0dHJpYnV0ZVZhbHVlKEAiQVhDbGlja1BvaW50
Iik7CiAgICAgcmV0dXJuIHN0YXRpY19jYXN0PGRvdWJsZT4oW3Bvc2l0aW9uVmFsdWUgcG9pbnRW
YWx1ZV0ueSk7CiAgICAgRU5EX0FYX09CSkNfRVhDRVBUSU9OUwogCkBAIC04NTQsNyArODU0LDcg
QEAgZG91YmxlIEFjY2Vzc2liaWxpdHlVSUVsZW1lbnQ6OmNsaWNrUG9pbnRZKCkKIEpTUmV0YWlu
UHRyPEpTU3RyaW5nUmVmPiBBY2Nlc3NpYmlsaXR5VUlFbGVtZW50OjpsaW5lUmVjdHNBbmRUZXh0
KCkgY29uc3QKIHsKICAgICBCRUdJTl9BWF9PQkpDX0VYQ0VQVElPTlMKLSAgICBpZCBsaW5lUmVj
dHNBbmRUZXh0ID0gYXR0cmlidXRlVmFsdWUoQCJBWExpbmVSZWN0c0FuZFRleHQiKTsKKyAgICBh
dXRvIGxpbmVSZWN0c0FuZFRleHQgPSBhdHRyaWJ1dGVWYWx1ZShAIkFYTGluZVJlY3RzQW5kVGV4
dCIpOwogICAgIGlmICghW2xpbmVSZWN0c0FuZFRleHQgaXNLaW5kT2ZDbGFzczpOU0FycmF5LmNs
YXNzXSkKICAgICAgICAgcmV0dXJuIHsgfTsKICAgICByZXR1cm4gW1tsaW5lUmVjdHNBbmRUZXh0
IGNvbXBvbmVudHNKb2luZWRCeVN0cmluZzpAInwiXSBjcmVhdGVKU1N0cmluZ1JlZl07CkBAIC04
NjYsNyArODY2LDcgQEAgSlNSZXRhaW5QdHI8SlNTdHJpbmdSZWY+IEFjY2Vzc2liaWxpdHlVSUVs
ZW1lbnQ6OmxpbmVSZWN0c0FuZFRleHQoKSBjb25zdAogZG91YmxlIEFjY2Vzc2liaWxpdHlVSUVs
ZW1lbnQ6OmludFZhbHVlKCkgY29uc3QKIHsKICAgICBCRUdJTl9BWF9PQkpDX0VYQ0VQVElPTlMK
LSAgICBpZCB2YWx1ZSA9IGF0dHJpYnV0ZVZhbHVlKE5TQWNjZXNzaWJpbGl0eVZhbHVlQXR0cmli
dXRlKTsKKyAgICBhdXRvIHZhbHVlID0gYXR0cmlidXRlVmFsdWUoTlNBY2Nlc3NpYmlsaXR5VmFs
dWVBdHRyaWJ1dGUpOwogICAgIGlmIChbdmFsdWUgaXNLaW5kT2ZDbGFzczpbTlNOdW1iZXIgY2xh
c3NdXSkKICAgICAgICAgcmV0dXJuIFsoTlNOdW1iZXIqKXZhbHVlIGRvdWJsZVZhbHVlXTsgCiAg
ICAgRU5EX0FYX09CSkNfRVhDRVBUSU9OUwpAQCAtODc3LDcgKzg3Nyw3IEBAIGRvdWJsZSBBY2Nl
c3NpYmlsaXR5VUlFbGVtZW50OjppbnRWYWx1ZSgpIGNvbnN0CiBkb3VibGUgQWNjZXNzaWJpbGl0
eVVJRWxlbWVudDo6bWluVmFsdWUoKQogewogICAgIEJFR0lOX0FYX09CSkNfRVhDRVBUSU9OUwot
ICAgIGlkIHZhbHVlID0gYXR0cmlidXRlVmFsdWUoTlNBY2Nlc3NpYmlsaXR5TWluVmFsdWVBdHRy
aWJ1dGUpOworICAgIGF1dG8gdmFsdWUgPSBhdHRyaWJ1dGVWYWx1ZShOU0FjY2Vzc2liaWxpdHlN
aW5WYWx1ZUF0dHJpYnV0ZSk7CiAgICAgaWYgKFt2YWx1ZSBpc0tpbmRPZkNsYXNzOltOU051bWJl
ciBjbGFzc11dKQogICAgICAgICByZXR1cm4gWyhOU051bWJlciopdmFsdWUgZG91YmxlVmFsdWVd
OyAKICAgICBFTkRfQVhfT0JKQ19FWENFUFRJT05TCkBAIC04ODgsNyArODg4LDcgQEAgZG91Ymxl
IEFjY2Vzc2liaWxpdHlVSUVsZW1lbnQ6Om1pblZhbHVlKCkKIGRvdWJsZSBBY2Nlc3NpYmlsaXR5
VUlFbGVtZW50OjptYXhWYWx1ZSgpCiB7CiAgICAgQkVHSU5fQVhfT0JKQ19FWENFUFRJT05TCi0g
ICAgaWQgdmFsdWUgPSBhdHRyaWJ1dGVWYWx1ZShOU0FjY2Vzc2liaWxpdHlNYXhWYWx1ZUF0dHJp
YnV0ZSk7CisgICAgYXV0byB2YWx1ZSA9IGF0dHJpYnV0ZVZhbHVlKE5TQWNjZXNzaWJpbGl0eU1h
eFZhbHVlQXR0cmlidXRlKTsKICAgICBpZiAoW3ZhbHVlIGlzS2luZE9mQ2xhc3M6W05TTnVtYmVy
IGNsYXNzXV0pCiAgICAgICAgIHJldHVybiBbKE5TTnVtYmVyKil2YWx1ZSBkb3VibGVWYWx1ZV07
IAogICAgIEVORF9BWF9PQkpDX0VYQ0VQVElPTlMKQEAgLTg5OSw5ICs4OTksOSBAQCBkb3VibGUg
QWNjZXNzaWJpbGl0eVVJRWxlbWVudDo6bWF4VmFsdWUoKQogSlNSZXRhaW5QdHI8SlNTdHJpbmdS
ZWY+IEFjY2Vzc2liaWxpdHlVSUVsZW1lbnQ6OnZhbHVlRGVzY3JpcHRpb24oKQogewogICAgIEJF
R0lOX0FYX09CSkNfRVhDRVBUSU9OUwotICAgIE5TU3RyaW5nICp2YWx1ZURlc2NyaXB0aW9uID0g
YXR0cmlidXRlVmFsdWUoTlNBY2Nlc3NpYmlsaXR5VmFsdWVEZXNjcmlwdGlvbkF0dHJpYnV0ZSk7
CisgICAgYXV0byB2YWx1ZURlc2NyaXB0aW9uID0gYXR0cmlidXRlVmFsdWUoTlNBY2Nlc3NpYmls
aXR5VmFsdWVEZXNjcmlwdGlvbkF0dHJpYnV0ZSk7CiAgICAgaWYgKFt2YWx1ZURlc2NyaXB0aW9u
IGlzS2luZE9mQ2xhc3M6W05TU3RyaW5nIGNsYXNzXV0pCi0gICAgICAgIHJldHVybiBjb25jYXRl
bmF0ZUF0dHJpYnV0ZUFuZFZhbHVlKEAiQVhWYWx1ZURlc2NyaXB0aW9uIiwgdmFsdWVEZXNjcmlw
dGlvbik7CisgICAgICAgIHJldHVybiBjb25jYXRlbmF0ZUF0dHJpYnV0ZUFuZFZhbHVlKEAiQVhW
YWx1ZURlc2NyaXB0aW9uIiwgdmFsdWVEZXNjcmlwdGlvbi5nZXQoKSk7CiAgICAgRU5EX0FYX09C
SkNfRVhDRVBUSU9OUwogCiAgICAgcmV0dXJuIG51bGxwdHI7CkBAIC05MTAsNyArOTEwLDcgQEAg
SlNSZXRhaW5QdHI8SlNTdHJpbmdSZWY+IEFjY2Vzc2liaWxpdHlVSUVsZW1lbnQ6OnZhbHVlRGVz
Y3JpcHRpb24oKQogaW50IEFjY2Vzc2liaWxpdHlVSUVsZW1lbnQ6Omluc2VydGlvblBvaW50TGlu
ZU51bWJlcigpCiB7CiAgICAgQkVHSU5fQVhfT0JKQ19FWENFUFRJT05TCi0gICAgaWQgdmFsdWUg
PSBhdHRyaWJ1dGVWYWx1ZShOU0FjY2Vzc2liaWxpdHlJbnNlcnRpb25Qb2ludExpbmVOdW1iZXJB
dHRyaWJ1dGUpOworICAgIGF1dG8gdmFsdWUgPSBhdHRyaWJ1dGVWYWx1ZShOU0FjY2Vzc2liaWxp
dHlJbnNlcnRpb25Qb2ludExpbmVOdW1iZXJBdHRyaWJ1dGUpOwogICAgIGlmIChbdmFsdWUgaXNL
aW5kT2ZDbGFzczpbTlNOdW1iZXIgY2xhc3NdXSkKICAgICAgICAgcmV0dXJuIFsoTlNOdW1iZXIg
Kil2YWx1ZSBpbnRWYWx1ZV07IAogICAgIEVORF9BWF9PQkpDX0VYQ0VQVElPTlMKQEAgLTk1MSw3
ICs5NTEsNyBAQCBib29sIEFjY2Vzc2liaWxpdHlVSUVsZW1lbnQ6OmlzRGVjcmVtZW50QWN0aW9u
U3VwcG9ydGVkKCkKIGJvb2wgQWNjZXNzaWJpbGl0eVVJRWxlbWVudDo6aXNFbmFibGVkKCkKIHsK
ICAgICBCRUdJTl9BWF9PQkpDX0VYQ0VQVElPTlMKLSAgICBpZCB2YWx1ZSA9IGF0dHJpYnV0ZVZh
bHVlKE5TQWNjZXNzaWJpbGl0eUVuYWJsZWRBdHRyaWJ1dGUpOworICAgIGF1dG8gdmFsdWUgPSBh
dHRyaWJ1dGVWYWx1ZShOU0FjY2Vzc2liaWxpdHlFbmFibGVkQXR0cmlidXRlKTsKICAgICBpZiAo
W3ZhbHVlIGlzS2luZE9mQ2xhc3M6W05TTnVtYmVyIGNsYXNzXV0pCiAgICAgICAgIHJldHVybiBb
dmFsdWUgYm9vbFZhbHVlXTsKICAgICBFTkRfQVhfT0JKQ19FWENFUFRJT05TCkBAIC05NjIsNyAr
OTYyLDcgQEAgYm9vbCBBY2Nlc3NpYmlsaXR5VUlFbGVtZW50Ojppc0VuYWJsZWQoKQogYm9vbCBB
Y2Nlc3NpYmlsaXR5VUlFbGVtZW50Ojppc1JlcXVpcmVkKCkgY29uc3QKIHsKICAgICBCRUdJTl9B
WF9PQkpDX0VYQ0VQVElPTlMKLSAgICBpZCB2YWx1ZSA9IGF0dHJpYnV0ZVZhbHVlKEAiQVhSZXF1
aXJlZCIpOworICAgIGF1dG8gdmFsdWUgPSBhdHRyaWJ1dGVWYWx1ZShAIkFYUmVxdWlyZWQiKTsK
ICAgICBpZiAoW3ZhbHVlIGlzS2luZE9mQ2xhc3M6W05TTnVtYmVyIGNsYXNzXV0pCiAgICAgICAg
IHJldHVybiBbdmFsdWUgYm9vbFZhbHVlXTsKICAgICBFTkRfQVhfT0JKQ19FWENFUFRJT05TCkBA
IC05NzMsNyArOTczLDcgQEAgYm9vbCBBY2Nlc3NpYmlsaXR5VUlFbGVtZW50Ojppc1JlcXVpcmVk
KCkgY29uc3QKIGJvb2wgQWNjZXNzaWJpbGl0eVVJRWxlbWVudDo6aXNGb2N1c2VkKCkgY29uc3QK
IHsKICAgICBCRUdJTl9BWF9PQkpDX0VYQ0VQVElPTlMKLSAgICBpZCB2YWx1ZSA9IGF0dHJpYnV0
ZVZhbHVlKE5TQWNjZXNzaWJpbGl0eUZvY3VzZWRBdHRyaWJ1dGUpOworICAgIGF1dG8gdmFsdWUg
PSBhdHRyaWJ1dGVWYWx1ZShOU0FjY2Vzc2liaWxpdHlGb2N1c2VkQXR0cmlidXRlKTsKICAgICBp
ZiAoW3ZhbHVlIGlzS2luZE9mQ2xhc3M6W05TTnVtYmVyIGNsYXNzXV0pCiAgICAgICAgIHJldHVy
biBbdmFsdWUgYm9vbFZhbHVlXTsKICAgICBFTkRfQVhfT0JKQ19FWENFUFRJT05TCkBAIC05ODMs
NyArOTgzLDcgQEAgYm9vbCBBY2Nlc3NpYmlsaXR5VUlFbGVtZW50Ojppc0ZvY3VzZWQoKSBjb25z
dAogCiBib29sIEFjY2Vzc2liaWxpdHlVSUVsZW1lbnQ6OmlzU2VsZWN0ZWQoKSBjb25zdAogewot
ICAgIGlkIHZhbHVlID0gYXR0cmlidXRlVmFsdWUoTlNBY2Nlc3NpYmlsaXR5U2VsZWN0ZWRBdHRy
aWJ1dGUpOworICAgIGF1dG8gdmFsdWUgPSBhdHRyaWJ1dGVWYWx1ZShOU0FjY2Vzc2liaWxpdHlT
ZWxlY3RlZEF0dHJpYnV0ZSk7CiAgICAgaWYgKFt2YWx1ZSBpc0tpbmRPZkNsYXNzOltOU051bWJl
ciBjbGFzc11dKQogICAgICAgICByZXR1cm4gW3ZhbHVlIGJvb2xWYWx1ZV07CiAgICAgcmV0dXJu
IGZhbHNlOwpAQCAtOTk3LDcgKzk5Nyw3IEBAIGJvb2wgQWNjZXNzaWJpbGl0eVVJRWxlbWVudDo6
aXNTZWxlY3RlZE9wdGlvbkFjdGl2ZSgpIGNvbnN0CiBib29sIEFjY2Vzc2liaWxpdHlVSUVsZW1l
bnQ6OmlzSW5kZXRlcm1pbmF0ZSgpIGNvbnN0CiB7CiAgICAgQkVHSU5fQVhfT0JKQ19FWENFUFRJ
T05TCi0gICAgaWQgdmFsdWUgPSBhdHRyaWJ1dGVWYWx1ZShOU0FjY2Vzc2liaWxpdHlWYWx1ZUF0
dHJpYnV0ZSk7CisgICAgYXV0byB2YWx1ZSA9IGF0dHJpYnV0ZVZhbHVlKE5TQWNjZXNzaWJpbGl0
eVZhbHVlQXR0cmlidXRlKTsKICAgICBpZiAoW3ZhbHVlIGlzS2luZE9mQ2xhc3M6W05TTnVtYmVy
IGNsYXNzXV0pCiAgICAgICAgIHJldHVybiBbdmFsdWUgaW50VmFsdWVdID09IDI7CiAgICAgRU5E
X0FYX09CSkNfRVhDRVBUSU9OUwpAQCAtMTAwOCw3ICsxMDA4LDcgQEAgYm9vbCBBY2Nlc3NpYmls
aXR5VUlFbGVtZW50Ojppc0luZGV0ZXJtaW5hdGUoKSBjb25zdAogYm9vbCBBY2Nlc3NpYmlsaXR5
VUlFbGVtZW50Ojppc0V4cGFuZGVkKCkgY29uc3QKIHsKICAgICBCRUdJTl9BWF9PQkpDX0VYQ0VQ
VElPTlMKLSAgICBpZCB2YWx1ZSA9IGF0dHJpYnV0ZVZhbHVlKE5TQWNjZXNzaWJpbGl0eUV4cGFu
ZGVkQXR0cmlidXRlKTsKKyAgICBhdXRvIHZhbHVlID0gYXR0cmlidXRlVmFsdWUoTlNBY2Nlc3Np
YmlsaXR5RXhwYW5kZWRBdHRyaWJ1dGUpOwogICAgIGlmIChbdmFsdWUgaXNLaW5kT2ZDbGFzczpb
TlNOdW1iZXIgY2xhc3NdXSkKICAgICAgICAgcmV0dXJuIFt2YWx1ZSBib29sVmFsdWVdOwogICAg
IEVORF9BWF9PQkpDX0VYQ0VQVElPTlMKQEAgLTEwMjQsNyArMTAyNCw3IEBAIGJvb2wgQWNjZXNz
aWJpbGl0eVVJRWxlbWVudDo6aXNDaGVja2VkKCkgY29uc3QKIAogSlNSZXRhaW5QdHI8SlNTdHJp
bmdSZWY+IEFjY2Vzc2liaWxpdHlVSUVsZW1lbnQ6OmN1cnJlbnRTdGF0ZVZhbHVlKCkgY29uc3QK
IHsKLSAgICBpZCB2YWx1ZSA9IGF0dHJpYnV0ZVZhbHVlKE5TQWNjZXNzaWJpbGl0eUFSSUFDdXJy
ZW50QXR0cmlidXRlKTsKKyAgICBhdXRvIHZhbHVlID0gYXR0cmlidXRlVmFsdWUoTlNBY2Nlc3Np
YmlsaXR5QVJJQUN1cnJlbnRBdHRyaWJ1dGUpOwogICAgIGlmIChbdmFsdWUgaXNLaW5kT2ZDbGFz
czpbTlNTdHJpbmcgY2xhc3NdXSkKICAgICAgICAgcmV0dXJuIFt2YWx1ZSBjcmVhdGVKU1N0cmlu
Z1JlZl07CiAgICAgcmV0dXJuIG51bGxwdHI7CkBAIC0xMDMyLDcgKzEwMzIsNyBAQCBKU1JldGFp
blB0cjxKU1N0cmluZ1JlZj4gQWNjZXNzaWJpbGl0eVVJRWxlbWVudDo6Y3VycmVudFN0YXRlVmFs
dWUoKSBjb25zdAogCiBKU1JldGFpblB0cjxKU1N0cmluZ1JlZj4gQWNjZXNzaWJpbGl0eVVJRWxl
bWVudDo6c29ydERpcmVjdGlvbigpIGNvbnN0CiB7Ci0gICAgaWQgdmFsdWUgPSBhdHRyaWJ1dGVW
YWx1ZShOU0FjY2Vzc2liaWxpdHlTb3J0RGlyZWN0aW9uQXR0cmlidXRlKTsKKyAgICBhdXRvIHZh
bHVlID0gYXR0cmlidXRlVmFsdWUoTlNBY2Nlc3NpYmlsaXR5U29ydERpcmVjdGlvbkF0dHJpYnV0
ZSk7CiAgICAgaWYgKFt2YWx1ZSBpc0tpbmRPZkNsYXNzOltOU1N0cmluZyBjbGFzc11dKQogICAg
ICAgICByZXR1cm4gW3ZhbHVlIGNyZWF0ZUpTU3RyaW5nUmVmXTsKICAgICByZXR1cm4gbnVsbHB0
cjsKQEAgLTEwNDEsNyArMTA0MSw3IEBAIEpTUmV0YWluUHRyPEpTU3RyaW5nUmVmPiBBY2Nlc3Np
YmlsaXR5VUlFbGVtZW50Ojpzb3J0RGlyZWN0aW9uKCkgY29uc3QKIGludCBBY2Nlc3NpYmlsaXR5
VUlFbGVtZW50OjpoaWVyYXJjaGljYWxMZXZlbCgpIGNvbnN0CiB7CiAgICAgQkVHSU5fQVhfT0JK
Q19FWENFUFRJT05TCi0gICAgaWQgdmFsdWUgPSBhdHRyaWJ1dGVWYWx1ZShOU0FjY2Vzc2liaWxp
dHlEaXNjbG9zdXJlTGV2ZWxBdHRyaWJ1dGUpOworICAgIGF1dG8gdmFsdWUgPSBhdHRyaWJ1dGVW
YWx1ZShOU0FjY2Vzc2liaWxpdHlEaXNjbG9zdXJlTGV2ZWxBdHRyaWJ1dGUpOwogICAgIGlmIChb
dmFsdWUgaXNLaW5kT2ZDbGFzczpbTlNOdW1iZXIgY2xhc3NdXSkKICAgICAgICAgcmV0dXJuIFt2
YWx1ZSBpbnRWYWx1ZV07CiAgICAgRU5EX0FYX09CSkNfRVhDRVBUSU9OUwpAQCAtMTA1Miw3ICsx
MDUyLDcgQEAgaW50IEFjY2Vzc2liaWxpdHlVSUVsZW1lbnQ6OmhpZXJhcmNoaWNhbExldmVsKCkg
Y29uc3QKIEpTUmV0YWluUHRyPEpTU3RyaW5nUmVmPiBBY2Nlc3NpYmlsaXR5VUlFbGVtZW50Ojpj
bGFzc0xpc3QoKSBjb25zdAogewogICAgIEJFR0lOX0FYX09CSkNfRVhDRVBUSU9OUwotICAgIGlk
IHZhbHVlID0gYXR0cmlidXRlVmFsdWUoQCJBWERPTUNsYXNzTGlzdCIpOworICAgIGF1dG8gdmFs
dWUgPSBhdHRyaWJ1dGVWYWx1ZShAIkFYRE9NQ2xhc3NMaXN0Iik7CiAgICAgaWYgKCFbdmFsdWUg
aXNLaW5kT2ZDbGFzczpbTlNBcnJheSBjbGFzc11dKQogICAgICAgICByZXR1cm4gbnVsbHB0cjsK
IApAQCAtMTA3Myw3ICsxMDczLDcgQEAgSlNSZXRhaW5QdHI8SlNTdHJpbmdSZWY+IEFjY2Vzc2li
aWxpdHlVSUVsZW1lbnQ6OmNsYXNzTGlzdCgpIGNvbnN0CiBKU1JldGFpblB0cjxKU1N0cmluZ1Jl
Zj4gQWNjZXNzaWJpbGl0eVVJRWxlbWVudDo6c3BlYWtBcygpCiB7CiAgICAgQkVHSU5fQVhfT0JK
Q19FWENFUFRJT05TCi0gICAgaWQgdmFsdWUgPSBhdHRyaWJ1dGVWYWx1ZShAIkFYRFJUU3BlZWNo
QXR0cmlidXRlIik7CisgICAgYXV0byB2YWx1ZSA9IGF0dHJpYnV0ZVZhbHVlKEAiQVhEUlRTcGVl
Y2hBdHRyaWJ1dGUiKTsKICAgICBpZiAoW3ZhbHVlIGlzS2luZE9mQ2xhc3M6W05TQXJyYXkgY2xh
c3NdXSkKICAgICAgICAgcmV0dXJuIFtbKE5TQXJyYXkgKil2YWx1ZSBjb21wb25lbnRzSm9pbmVk
QnlTdHJpbmc6QCIsICJdIGNyZWF0ZUpTU3RyaW5nUmVmXTsKICAgICBFTkRfQVhfT0JKQ19FWENF
UFRJT05TCkBAIC0xMDg0LDcgKzEwODQsNyBAQCBKU1JldGFpblB0cjxKU1N0cmluZ1JlZj4gQWNj
ZXNzaWJpbGl0eVVJRWxlbWVudDo6c3BlYWtBcygpCiBib29sIEFjY2Vzc2liaWxpdHlVSUVsZW1l
bnQ6OmFyaWFJc0dyYWJiZWQoKSBjb25zdAogewogICAgIEJFR0lOX0FYX09CSkNfRVhDRVBUSU9O
UwotICAgIGlkIHZhbHVlID0gYXR0cmlidXRlVmFsdWUoTlNBY2Nlc3NpYmlsaXR5R3JhYmJlZEF0
dHJpYnV0ZSk7CisgICAgYXV0byB2YWx1ZSA9IGF0dHJpYnV0ZVZhbHVlKE5TQWNjZXNzaWJpbGl0
eUdyYWJiZWRBdHRyaWJ1dGUpOwogICAgIGlmIChbdmFsdWUgaXNLaW5kT2ZDbGFzczpbTlNOdW1i
ZXIgY2xhc3NdXSkKICAgICAgICAgcmV0dXJuIFt2YWx1ZSBib29sVmFsdWVdOwogICAgIEVORF9B
WF9PQkpDX0VYQ0VQVElPTlMKQEAgLTEwOTUsNyArMTA5NSw3IEBAIGJvb2wgQWNjZXNzaWJpbGl0
eVVJRWxlbWVudDo6YXJpYUlzR3JhYmJlZCgpIGNvbnN0CiBKU1JldGFpblB0cjxKU1N0cmluZ1Jl
Zj4gQWNjZXNzaWJpbGl0eVVJRWxlbWVudDo6YXJpYURyb3BFZmZlY3RzKCkgY29uc3QKIHsKICAg
ICBCRUdJTl9BWF9PQkpDX0VYQ0VQVElPTlMKLSAgICBpZCB2YWx1ZSA9IGF0dHJpYnV0ZVZhbHVl
KE5TQWNjZXNzaWJpbGl0eURyb3BFZmZlY3RzQXR0cmlidXRlKTsKKyAgICBhdXRvIHZhbHVlID0g
YXR0cmlidXRlVmFsdWUoTlNBY2Nlc3NpYmlsaXR5RHJvcEVmZmVjdHNBdHRyaWJ1dGUpOwogICAg
IGlmICghW3ZhbHVlIGlzS2luZE9mQ2xhc3M6W05TQXJyYXkgY2xhc3NdXSkKICAgICAgICAgcmV0
dXJuIG51bGxwdHI7CiAKQEAgLTEyNzAsOCArMTI3MCw4IEBAIEpTUmV0YWluUHRyPEpTU3RyaW5n
UmVmPiBBY2Nlc3NpYmlsaXR5VUlFbGVtZW50OjphdHRyaWJ1dGVzT2ZDb2x1bW5IZWFkZXJzKCkK
IHsKICAgICAvLyBub3QgeWV0IGRlZmluZWQgaW4gQXBwS2l0Li4uIG9kZAogICAgIEJFR0lOX0FY
X09CSkNfRVhDRVBUSU9OUwotICAgIE5TQXJyYXkgKmNvbHVtbkhlYWRlcnNBcnJheSA9IGF0dHJp
YnV0ZVZhbHVlKEAiQVhDb2x1bW5IZWFkZXJVSUVsZW1lbnRzIik7Ci0gICAgYXV0byBjb2x1bW5I
ZWFkZXJzVmVjdG9yID0gbWFrZVZlY3RvcjxSZWZQdHI8QWNjZXNzaWJpbGl0eVVJRWxlbWVudD4+
KGNvbHVtbkhlYWRlcnNBcnJheSk7CisgICAgYXV0byBjb2x1bW5IZWFkZXJzID0gYXR0cmlidXRl
VmFsdWUoQCJBWENvbHVtbkhlYWRlclVJRWxlbWVudHMiKTsKKyAgICBhdXRvIGNvbHVtbkhlYWRl
cnNWZWN0b3IgPSBtYWtlVmVjdG9yPFJlZlB0cjxBY2Nlc3NpYmlsaXR5VUlFbGVtZW50Pj4oY29s
dW1uSGVhZGVycy5nZXQoKSk7CiAgICAgcmV0dXJuIGRlc2NyaXB0aW9uT2ZFbGVtZW50cyhjb2x1
bW5IZWFkZXJzVmVjdG9yKTsKICAgICBFTkRfQVhfT0JKQ19FWENFUFRJT05TCiAKQEAgLTEyODEs
OCArMTI4MSw4IEBAIEpTUmV0YWluUHRyPEpTU3RyaW5nUmVmPiBBY2Nlc3NpYmlsaXR5VUlFbGVt
ZW50OjphdHRyaWJ1dGVzT2ZDb2x1bW5IZWFkZXJzKCkKIEpTUmV0YWluUHRyPEpTU3RyaW5nUmVm
PiBBY2Nlc3NpYmlsaXR5VUlFbGVtZW50OjphdHRyaWJ1dGVzT2ZSb3dIZWFkZXJzKCkKIHsKICAg
ICBCRUdJTl9BWF9PQkpDX0VYQ0VQVElPTlMKLSAgICBOU0FycmF5ICpyb3dIZWFkZXJzQXJyYXkg
PSBhdHRyaWJ1dGVWYWx1ZShAIkFYUm93SGVhZGVyVUlFbGVtZW50cyIpOwotICAgIGF1dG8gcm93
SGVhZGVyc1ZlY3RvciA9IG1ha2VWZWN0b3I8UmVmUHRyPEFjY2Vzc2liaWxpdHlVSUVsZW1lbnQ+
Pihyb3dIZWFkZXJzQXJyYXkpOworICAgIGF1dG8gcm93SGVhZGVycyA9IGF0dHJpYnV0ZVZhbHVl
KEAiQVhSb3dIZWFkZXJVSUVsZW1lbnRzIik7CisgICAgYXV0byByb3dIZWFkZXJzVmVjdG9yID0g
bWFrZVZlY3RvcjxSZWZQdHI8QWNjZXNzaWJpbGl0eVVJRWxlbWVudD4+KHJvd0hlYWRlcnMuZ2V0
KCkpOwogICAgIHJldHVybiBkZXNjcmlwdGlvbk9mRWxlbWVudHMocm93SGVhZGVyc1ZlY3Rvcik7
CiAgICAgRU5EX0FYX09CSkNfRVhDRVBUSU9OUwogCkBAIC0xMjkyLDggKzEyOTIsOCBAQCBKU1Jl
dGFpblB0cjxKU1N0cmluZ1JlZj4gQWNjZXNzaWJpbGl0eVVJRWxlbWVudDo6YXR0cmlidXRlc09m
Um93SGVhZGVycygpCiBKU1JldGFpblB0cjxKU1N0cmluZ1JlZj4gQWNjZXNzaWJpbGl0eVVJRWxl
bWVudDo6YXR0cmlidXRlc09mQ29sdW1ucygpCiB7CiAgICAgQkVHSU5fQVhfT0JKQ19FWENFUFRJ
T05TCi0gICAgTlNBcnJheSAqY29sdW1uc0FycmF5ID0gYXR0cmlidXRlVmFsdWUoTlNBY2Nlc3Np
YmlsaXR5Q29sdW1uc0F0dHJpYnV0ZSk7Ci0gICAgYXV0byBjb2x1bW5zVmVjdG9yID0gbWFrZVZl
Y3RvcjxSZWZQdHI8QWNjZXNzaWJpbGl0eVVJRWxlbWVudD4+KGNvbHVtbnNBcnJheSk7CisgICAg
YXV0byBjb2x1bW5zID0gYXR0cmlidXRlVmFsdWUoTlNBY2Nlc3NpYmlsaXR5Q29sdW1uc0F0dHJp
YnV0ZSk7CisgICAgYXV0byBjb2x1bW5zVmVjdG9yID0gbWFrZVZlY3RvcjxSZWZQdHI8QWNjZXNz
aWJpbGl0eVVJRWxlbWVudD4+KGNvbHVtbnMuZ2V0KCkpOwogICAgIHJldHVybiBkZXNjcmlwdGlv
bk9mRWxlbWVudHMoY29sdW1uc1ZlY3Rvcik7CiAgICAgRU5EX0FYX09CSkNfRVhDRVBUSU9OUwog
CkBAIC0xMzAzLDggKzEzMDMsOCBAQCBKU1JldGFpblB0cjxKU1N0cmluZ1JlZj4gQWNjZXNzaWJp
bGl0eVVJRWxlbWVudDo6YXR0cmlidXRlc09mQ29sdW1ucygpCiBKU1JldGFpblB0cjxKU1N0cmlu
Z1JlZj4gQWNjZXNzaWJpbGl0eVVJRWxlbWVudDo6YXR0cmlidXRlc09mUm93cygpCiB7CiAgICAg
QkVHSU5fQVhfT0JKQ19FWENFUFRJT05TCi0gICAgTlNBcnJheSAqcm93c0FycmF5ID0gYXR0cmli
dXRlVmFsdWUoTlNBY2Nlc3NpYmlsaXR5Um93c0F0dHJpYnV0ZSk7Ci0gICAgYXV0byByb3dzVmVj
dG9yID0gbWFrZVZlY3RvcjxSZWZQdHI8QWNjZXNzaWJpbGl0eVVJRWxlbWVudD4+KHJvd3NBcnJh
eSk7CisgICAgYXV0byByb3dzID0gYXR0cmlidXRlVmFsdWUoTlNBY2Nlc3NpYmlsaXR5Um93c0F0
dHJpYnV0ZSk7CisgICAgYXV0byByb3dzVmVjdG9yID0gbWFrZVZlY3RvcjxSZWZQdHI8QWNjZXNz
aWJpbGl0eVVJRWxlbWVudD4+KHJvd3MuZ2V0KCkpOwogICAgIHJldHVybiBkZXNjcmlwdGlvbk9m
RWxlbWVudHMocm93c1ZlY3Rvcik7CiAgICAgRU5EX0FYX09CSkNfRVhDRVBUSU9OUwogCkBAIC0x
MzE0LDggKzEzMTQsOCBAQCBKU1JldGFpblB0cjxKU1N0cmluZ1JlZj4gQWNjZXNzaWJpbGl0eVVJ
RWxlbWVudDo6YXR0cmlidXRlc09mUm93cygpCiBKU1JldGFpblB0cjxKU1N0cmluZ1JlZj4gQWNj
ZXNzaWJpbGl0eVVJRWxlbWVudDo6YXR0cmlidXRlc09mVmlzaWJsZUNlbGxzKCkKIHsKICAgICBC
RUdJTl9BWF9PQkpDX0VYQ0VQVElPTlMKLSAgICBOU0FycmF5ICpjZWxsc0FycmF5ID0gYXR0cmli
dXRlVmFsdWUoQCJBWFZpc2libGVDZWxscyIpOwotICAgIGF1dG8gY2VsbHNWZWN0b3IgPSBtYWtl
VmVjdG9yPFJlZlB0cjxBY2Nlc3NpYmlsaXR5VUlFbGVtZW50Pj4oY2VsbHNBcnJheSk7CisgICAg
YXV0byBjZWxscyA9IGF0dHJpYnV0ZVZhbHVlKEAiQVhWaXNpYmxlQ2VsbHMiKTsKKyAgICBhdXRv
IGNlbGxzVmVjdG9yID0gbWFrZVZlY3RvcjxSZWZQdHI8QWNjZXNzaWJpbGl0eVVJRWxlbWVudD4+
KGNlbGxzLmdldCgpKTsKICAgICByZXR1cm4gZGVzY3JpcHRpb25PZkVsZW1lbnRzKGNlbGxzVmVj
dG9yKTsKICAgICBFTkRfQVhfT0JKQ19FWENFUFRJT05TCiAKQEAgLTEzMjUsMTIgKzEzMjUsMTIg
QEAgSlNSZXRhaW5QdHI8SlNTdHJpbmdSZWY+IEFjY2Vzc2liaWxpdHlVSUVsZW1lbnQ6OmF0dHJp
YnV0ZXNPZlZpc2libGVDZWxscygpCiBKU1JldGFpblB0cjxKU1N0cmluZ1JlZj4gQWNjZXNzaWJp
bGl0eVVJRWxlbWVudDo6YXR0cmlidXRlc09mSGVhZGVyKCkKIHsKICAgICBCRUdJTl9BWF9PQkpD
X0VYQ0VQVElPTlMKLSAgICBpZCBoZWFkZXJPYmplY3QgPSBhdHRyaWJ1dGVWYWx1ZShOU0FjY2Vz
c2liaWxpdHlIZWFkZXJBdHRyaWJ1dGUpOwotICAgIGlmICghaGVhZGVyT2JqZWN0KQorICAgIGF1
dG8gaGVhZGVyID0gYXR0cmlidXRlVmFsdWUoTlNBY2Nlc3NpYmlsaXR5SGVhZGVyQXR0cmlidXRl
KTsKKyAgICBpZiAoIWhlYWRlcikKICAgICAgICAgcmV0dXJuIFtAIiIgY3JlYXRlSlNTdHJpbmdS
ZWZdOwogCiAgICAgVmVjdG9yPFJlZlB0cjxBY2Nlc3NpYmlsaXR5VUlFbGVtZW50Pj4gaGVhZGVy
VmVjdG9yOwotICAgIGhlYWRlclZlY3Rvci5hcHBlbmQoQWNjZXNzaWJpbGl0eVVJRWxlbWVudDo6
Y3JlYXRlKGhlYWRlck9iamVjdCkpOworICAgIGhlYWRlclZlY3Rvci5hcHBlbmQoQWNjZXNzaWJp
bGl0eVVJRWxlbWVudDo6Y3JlYXRlKGhlYWRlci5nZXQoKSkpOwogICAgIHJldHVybiBkZXNjcmlw
dGlvbk9mRWxlbWVudHMoaGVhZGVyVmVjdG9yKTsKICAgICBFTkRfQVhfT0JKQ19FWENFUFRJT05T
CiAKQEAgLTEzNTgsNyArMTM1OCw3IEBAIGludCBBY2Nlc3NpYmlsaXR5VUlFbGVtZW50Ojpjb2x1
bW5Db3VudCgpCiBpbnQgQWNjZXNzaWJpbGl0eVVJRWxlbWVudDo6aW5kZXhJblRhYmxlKCkKIHsK
ICAgICBCRUdJTl9BWF9PQkpDX0VYQ0VQVElPTlMKLSAgICBOU051bWJlciAqaW5kZXhOdW1iZXIg
PSBhdHRyaWJ1dGVWYWx1ZShOU0FjY2Vzc2liaWxpdHlJbmRleEF0dHJpYnV0ZSk7CisgICAgYXV0
byBpbmRleE51bWJlciA9IGF0dHJpYnV0ZVZhbHVlKE5TQWNjZXNzaWJpbGl0eUluZGV4QXR0cmli
dXRlKTsKICAgICBpZiAoaW5kZXhOdW1iZXIpCiAgICAgICAgIHJldHVybiBbaW5kZXhOdW1iZXIg
aW50VmFsdWVdOwogICAgIEVORF9BWF9PQkpDX0VYQ0VQVElPTlMKQEAgLTEzNzAsNyArMTM3MCw3
IEBAIEpTUmV0YWluUHRyPEpTU3RyaW5nUmVmPiBBY2Nlc3NpYmlsaXR5VUlFbGVtZW50Ojpyb3dJ
bmRleFJhbmdlKCkKIHsKICAgICBOU1JhbmdlIHJhbmdlID0gTlNNYWtlUmFuZ2UoMCwgMCk7CiAg
ICAgQkVHSU5fQVhfT0JKQ19FWENFUFRJT05TCi0gICAgTlNWYWx1ZSAqaW5kZXhSYW5nZSA9IGF0
dHJpYnV0ZVZhbHVlKEAiQVhSb3dJbmRleFJhbmdlIik7CisgICAgYXV0byBpbmRleFJhbmdlID0g
YXR0cmlidXRlVmFsdWUoQCJBWFJvd0luZGV4UmFuZ2UiKTsKICAgICBpZiAoaW5kZXhSYW5nZSkK
ICAgICAgICAgcmFuZ2UgPSBbaW5kZXhSYW5nZSByYW5nZVZhbHVlXTsKICAgICBOU011dGFibGVT
dHJpbmcgKnJhbmdlRGVzY3JpcHRpb24gPSBbTlNNdXRhYmxlU3RyaW5nIHN0cmluZ1dpdGhGb3Jt
YXQ6QCJ7JWx1LCAlbHV9Iiwgc3RhdGljX2Nhc3Q8dW5zaWduZWQgbG9uZz4ocmFuZ2UubG9jYXRp
b24pLCBzdGF0aWNfY2FzdDx1bnNpZ25lZCBsb25nPihyYW5nZS5sZW5ndGgpXTsKQEAgLTEzODQs
NyArMTM4NCw3IEBAIEpTUmV0YWluUHRyPEpTU3RyaW5nUmVmPiBBY2Nlc3NpYmlsaXR5VUlFbGVt
ZW50Ojpjb2x1bW5JbmRleFJhbmdlKCkKIHsKICAgICBOU1JhbmdlIHJhbmdlID0gTlNNYWtlUmFu
Z2UoMCwgMCk7CiAgICAgQkVHSU5fQVhfT0JKQ19FWENFUFRJT05TCi0gICAgTlNOdW1iZXIgKmlu
ZGV4UmFuZ2UgPSBhdHRyaWJ1dGVWYWx1ZShAIkFYQ29sdW1uSW5kZXhSYW5nZSIpOworICAgIGF1
dG8gaW5kZXhSYW5nZSA9IGF0dHJpYnV0ZVZhbHVlKEAiQVhDb2x1bW5JbmRleFJhbmdlIik7CiAg
ICAgaWYgKGluZGV4UmFuZ2UpCiAgICAgICAgIHJhbmdlID0gW2luZGV4UmFuZ2UgcmFuZ2VWYWx1
ZV07CiAgICAgTlNNdXRhYmxlU3RyaW5nICpyYW5nZURlc2NyaXB0aW9uID0gW05TTXV0YWJsZVN0
cmluZyBzdHJpbmdXaXRoRm9ybWF0OkAieyVsdSwgJWx1fSIsIHN0YXRpY19jYXN0PHVuc2lnbmVk
IGxvbmc+KHJhbmdlLmxvY2F0aW9uKSwgc3RhdGljX2Nhc3Q8dW5zaWduZWQgbG9uZz4ocmFuZ2Uu
bGVuZ3RoKV07CkBAIC0xNDEwLDcgKzE0MTAsNyBAQCBSZWZQdHI8QWNjZXNzaWJpbGl0eVVJRWxl
bWVudD4gQWNjZXNzaWJpbGl0eVVJRWxlbWVudDo6aG9yaXpvbnRhbFNjcm9sbGJhcigpIGNvbgog
ICAgICAgICByZXR1cm4gbnVsbHB0cjsKIAogICAgIEJFR0lOX0FYX09CSkNfRVhDRVBUSU9OUwot
ICAgIHJldHVybiBBY2Nlc3NpYmlsaXR5VUlFbGVtZW50OjpjcmVhdGUoYXR0cmlidXRlVmFsdWUo
TlNBY2Nlc3NpYmlsaXR5SG9yaXpvbnRhbFNjcm9sbEJhckF0dHJpYnV0ZSkpOworICAgIHJldHVy
biBBY2Nlc3NpYmlsaXR5VUlFbGVtZW50OjpjcmVhdGUoYXR0cmlidXRlVmFsdWUoTlNBY2Nlc3Np
YmlsaXR5SG9yaXpvbnRhbFNjcm9sbEJhckF0dHJpYnV0ZSkuZ2V0KCkpOwogICAgIEVORF9BWF9P
QkpDX0VYQ0VQVElPTlMgICAgCiAKICAgICByZXR1cm4gbnVsbHB0cjsKQEAgLTE0MjIsNyArMTQy
Miw3IEBAIFJlZlB0cjxBY2Nlc3NpYmlsaXR5VUlFbGVtZW50PiBBY2Nlc3NpYmlsaXR5VUlFbGVt
ZW50Ojp2ZXJ0aWNhbFNjcm9sbGJhcigpIGNvbnN0CiAgICAgICAgIHJldHVybiBudWxscHRyOwog
CiAgICAgQkVHSU5fQVhfT0JKQ19FWENFUFRJT05TCi0gICAgcmV0dXJuIEFjY2Vzc2liaWxpdHlV
SUVsZW1lbnQ6OmNyZWF0ZShhdHRyaWJ1dGVWYWx1ZShOU0FjY2Vzc2liaWxpdHlWZXJ0aWNhbFNj
cm9sbEJhckF0dHJpYnV0ZSkpOworICAgIHJldHVybiBBY2Nlc3NpYmlsaXR5VUlFbGVtZW50Ojpj
cmVhdGUoYXR0cmlidXRlVmFsdWUoTlNBY2Nlc3NpYmlsaXR5VmVydGljYWxTY3JvbGxCYXJBdHRy
aWJ1dGUpLmdldCgpKTsKICAgICBFTkRfQVhfT0JKQ19FWENFUFRJT05TICAgICAgICAKIAogICAg
IHJldHVybiBudWxscHRyOwpAQCAtMTQ1Myw3ICsxNDUzLDcgQEAgSlNSZXRhaW5QdHI8SlNTdHJp
bmdSZWY+IEFjY2Vzc2liaWxpdHlVSUVsZW1lbnQ6OnNlbGVjdGVkVGV4dFJhbmdlKCkKIHsKICAg
ICBOU1JhbmdlIHJhbmdlID0gTlNNYWtlUmFuZ2UoTlNOb3RGb3VuZCwgMCk7CiAgICAgQkVHSU5f
QVhfT0JKQ19FWENFUFRJT05TCi0gICAgTlNWYWx1ZSAqaW5kZXhSYW5nZSA9IGF0dHJpYnV0ZVZh
bHVlKE5TQWNjZXNzaWJpbGl0eVNlbGVjdGVkVGV4dFJhbmdlQXR0cmlidXRlKTsKKyAgICBhdXRv
IGluZGV4UmFuZ2UgPSBhdHRyaWJ1dGVWYWx1ZShOU0FjY2Vzc2liaWxpdHlTZWxlY3RlZFRleHRS
YW5nZUF0dHJpYnV0ZSk7CiAgICAgaWYgKGluZGV4UmFuZ2UpCiAgICAgICAgIHJhbmdlID0gW2lu
ZGV4UmFuZ2UgcmFuZ2VWYWx1ZV07CiAgICAgTlNNdXRhYmxlU3RyaW5nKiByYW5nZURlc2NyaXB0
aW9uID0gW05TTXV0YWJsZVN0cmluZyBzdHJpbmdXaXRoRm9ybWF0OkAieyVsdSwgJWx1fSIsIHN0
YXRpY19jYXN0PHVuc2lnbmVkIGxvbmc+KHJhbmdlLmxvY2F0aW9uKSwgc3RhdGljX2Nhc3Q8dW5z
aWduZWQgbG9uZz4ocmFuZ2UubGVuZ3RoKV07CkBAIC0xNTUwLDcgKzE1NTAsNyBAQCB2b2lkIEFj
Y2Vzc2liaWxpdHlVSUVsZW1lbnQ6OnNldFNlbGVjdGVkQ2hpbGRBdEluZGV4KHVuc2lnbmVkIGlu
ZGV4KSBjb25zdAogICAgIGlmICghZWxlbWVudCkKICAgICAgICAgcmV0dXJuOwogCi0gICAgTlNB
cnJheSAqc2VsZWN0ZWRDaGlsZHJlbiA9IGF0dHJpYnV0ZVZhbHVlKE5TQWNjZXNzaWJpbGl0eVNl
bGVjdGVkQ2hpbGRyZW5BdHRyaWJ1dGUpOworICAgIGF1dG8gc2VsZWN0ZWRDaGlsZHJlbiA9IGF0
dHJpYnV0ZVZhbHVlKE5TQWNjZXNzaWJpbGl0eVNlbGVjdGVkQ2hpbGRyZW5BdHRyaWJ1dGUpOwog
ICAgIE5TQXJyYXkgKmFycmF5ID0gQFtlbGVtZW50LT5wbGF0Zm9ybVVJRWxlbWVudCgpXTsKICAg
ICBpZiAoc2VsZWN0ZWRDaGlsZHJlbikKICAgICAgICAgYXJyYXkgPSBbc2VsZWN0ZWRDaGlsZHJl
biBhcnJheUJ5QWRkaW5nT2JqZWN0c0Zyb21BcnJheTphcnJheV07CkBAIC0xNTY0LDExICsxNTY0
LDExIEBAIHZvaWQgQWNjZXNzaWJpbGl0eVVJRWxlbWVudDo6cmVtb3ZlU2VsZWN0aW9uQXRJbmRl
eCh1bnNpZ25lZCBpbmRleCkgY29uc3QKICAgICBpZiAoIWVsZW1lbnQpCiAgICAgICAgIHJldHVy
bjsKIAotICAgIE5TQXJyYXkgKnNlbGVjdGVkQ2hpbGRyZW4gPSBhdHRyaWJ1dGVWYWx1ZShOU0Fj
Y2Vzc2liaWxpdHlTZWxlY3RlZENoaWxkcmVuQXR0cmlidXRlKTsKKyAgICBhdXRvIHNlbGVjdGVk
Q2hpbGRyZW4gPSBhdHRyaWJ1dGVWYWx1ZShOU0FjY2Vzc2liaWxpdHlTZWxlY3RlZENoaWxkcmVu
QXR0cmlidXRlKTsKICAgICBpZiAoIXNlbGVjdGVkQ2hpbGRyZW4pCiAgICAgICAgIHJldHVybjsK
IAotICAgIE5TTXV0YWJsZUFycmF5ICphcnJheSA9IFtOU011dGFibGVBcnJheSBhcnJheVdpdGhB
cnJheTpzZWxlY3RlZENoaWxkcmVuXTsKKyAgICBOU011dGFibGVBcnJheSAqYXJyYXkgPSBbTlNN
dXRhYmxlQXJyYXkgYXJyYXlXaXRoQXJyYXk6c2VsZWN0ZWRDaGlsZHJlbi5nZXQoKV07CiAgICAg
W2FycmF5IHJlbW92ZU9iamVjdDplbGVtZW50LT5wbGF0Zm9ybVVJRWxlbWVudCgpXTsKIAogICAg
IHNldEF0dHJpYnV0ZVZhbHVlKG1fZWxlbWVudC5nZXQoKSwgTlNBY2Nlc3NpYmlsaXR5U2VsZWN0
ZWRDaGlsZHJlbkF0dHJpYnV0ZSwgYXJyYXksIHRydWUpOwpAQCAtMTU4Niw3ICsxNTg2LDcgQEAg
SlNSZXRhaW5QdHI8SlNTdHJpbmdSZWY+IEFjY2Vzc2liaWxpdHlVSUVsZW1lbnQ6OmFjY2Vzc2li
aWxpdHlWYWx1ZSgpIGNvbnN0CiBKU1JldGFpblB0cjxKU1N0cmluZ1JlZj4gQWNjZXNzaWJpbGl0
eVVJRWxlbWVudDo6ZG9jdW1lbnRFbmNvZGluZygpCiB7CiAgICAgQkVHSU5fQVhfT0JKQ19FWENF
UFRJT05TCi0gICAgaWQgdmFsdWUgPSBhdHRyaWJ1dGVWYWx1ZShAIkFYRG9jdW1lbnRFbmNvZGlu
ZyIpOworICAgIGF1dG8gdmFsdWUgPSBhdHRyaWJ1dGVWYWx1ZShAIkFYRG9jdW1lbnRFbmNvZGlu
ZyIpOwogICAgIGlmIChbdmFsdWUgaXNLaW5kT2ZDbGFzczpbTlNTdHJpbmcgY2xhc3NdXSkKICAg
ICAgICAgcmV0dXJuIFt2YWx1ZSBjcmVhdGVKU1N0cmluZ1JlZl07CiAgICAgRU5EX0FYX09CSkNf
RVhDRVBUSU9OUwpAQCAtMTU5Niw3ICsxNTk2LDcgQEAgSlNSZXRhaW5QdHI8SlNTdHJpbmdSZWY+
IEFjY2Vzc2liaWxpdHlVSUVsZW1lbnQ6OmRvY3VtZW50RW5jb2RpbmcoKQogSlNSZXRhaW5QdHI8
SlNTdHJpbmdSZWY+IEFjY2Vzc2liaWxpdHlVSUVsZW1lbnQ6OmRvY3VtZW50VVJJKCkKIHsKICAg
ICBCRUdJTl9BWF9PQkpDX0VYQ0VQVElPTlMKLSAgICBpZCB2YWx1ZSA9IGF0dHJpYnV0ZVZhbHVl
KEAiQVhEb2N1bWVudFVSSSIpOworICAgIGF1dG8gdmFsdWUgPSBhdHRyaWJ1dGVWYWx1ZShAIkFY
RG9jdW1lbnRVUkkiKTsKICAgICBpZiAoW3ZhbHVlIGlzS2luZE9mQ2xhc3M6W05TU3RyaW5nIGNs
YXNzXV0pCiAgICAgICAgIHJldHVybiBbdmFsdWUgY3JlYXRlSlNTdHJpbmdSZWZdOwogICAgIEVO
RF9BWF9PQkpDX0VYQ0VQVElPTlMKQEAgLTE2MDYsOCArMTYwNiw5IEBAIEpTUmV0YWluUHRyPEpT
U3RyaW5nUmVmPiBBY2Nlc3NpYmlsaXR5VUlFbGVtZW50Ojpkb2N1bWVudFVSSSgpCiBKU1JldGFp
blB0cjxKU1N0cmluZ1JlZj4gQWNjZXNzaWJpbGl0eVVJRWxlbWVudDo6dXJsKCkKIHsKICAgICBC
RUdJTl9BWF9PQkpDX0VYQ0VQVElPTlMKLSAgICBOU1VSTCAqdXJsID0gYXR0cmlidXRlVmFsdWUo
TlNBY2Nlc3NpYmlsaXR5VVJMQXR0cmlidXRlKTsKLSAgICByZXR1cm4gW1t1cmwgYWJzb2x1dGVT
dHJpbmddIGNyZWF0ZUpTU3RyaW5nUmVmXTsgICAgCisgICAgYXV0byB1cmwgPSBhdHRyaWJ1dGVW
YWx1ZShOU0FjY2Vzc2liaWxpdHlVUkxBdHRyaWJ1dGUpOworICAgIGlmIChbdXJsIGlzS2luZE9m
Q2xhc3M6W05TVVJMIGNsYXNzXV0pCisgICAgICAgIHJldHVybiBbW3VybCBhYnNvbHV0ZVN0cmlu
Z10gY3JlYXRlSlNTdHJpbmdSZWZdOwogICAgIEVORF9BWF9PQkpDX0VYQ0VQVElPTlMKICAgICBy
ZXR1cm4gbnVsbHB0cjsKIH0KQEAgLTE2NjIsNyArMTY2Myw3IEBAIGJvb2wgQWNjZXNzaWJpbGl0
eVVJRWxlbWVudDo6aXNTZWxlY3RhYmxlKCkgY29uc3QKIGJvb2wgQWNjZXNzaWJpbGl0eVVJRWxl
bWVudDo6aXNNdWx0aVNlbGVjdGFibGUoKSBjb25zdAogewogICAgIEJFR0lOX0FYX09CSkNfRVhD
RVBUSU9OUwotICAgIGlkIHZhbHVlID0gYXR0cmlidXRlVmFsdWUoQCJBWElzTXVsdGlTZWxlY3Rh
YmxlIik7CisgICAgYXV0byB2YWx1ZSA9IGF0dHJpYnV0ZVZhbHVlKEAiQVhJc011bHRpU2VsZWN0
YWJsZSIpOwogICAgIGlmIChbdmFsdWUgaXNLaW5kT2ZDbGFzczpbTlNOdW1iZXIgY2xhc3NdXSkK
ICAgICAgICAgcmV0dXJuIFt2YWx1ZSBib29sVmFsdWVdOwogICAgIEVORF9BWF9PQkpDX0VYQ0VQ
VElPTlMKQEAgLTE2NzYsNyArMTY3Nyw3IEBAIGJvb2wgQWNjZXNzaWJpbGl0eVVJRWxlbWVudDo6
aXNWaXNpYmxlKCkgY29uc3QKIAogYm9vbCBBY2Nlc3NpYmlsaXR5VUlFbGVtZW50Ojppc09uU2Ny
ZWVuKCkgY29uc3QKIHsKLSAgICBpZCB2YWx1ZSA9IGF0dHJpYnV0ZVZhbHVlKEAiQVhJc09uU2Ny
ZWVuIik7CisgICAgYXV0byB2YWx1ZSA9IGF0dHJpYnV0ZVZhbHVlKEAiQVhJc09uU2NyZWVuIik7
CiAgICAgaWYgKFt2YWx1ZSBpc0tpbmRPZkNsYXNzOltOU051bWJlciBjbGFzc11dKQogICAgICAg
ICByZXR1cm4gW3ZhbHVlIGJvb2xWYWx1ZV07CiAgICAgcmV0dXJuIGZhbHNlOwpAQCAtMTY5NSw3
ICsxNjk2LDcgQEAgYm9vbCBBY2Nlc3NpYmlsaXR5VUlFbGVtZW50Ojppc0NvbGxhcHNlZCgpIGNv
bnN0CiBKU1JldGFpblB0cjxKU1N0cmluZ1JlZj4gQWNjZXNzaWJpbGl0eVVJRWxlbWVudDo6ZW1i
ZWRkZWRJbWFnZURlc2NyaXB0aW9uKCkgY29uc3QKIHsKICAgICBCRUdJTl9BWF9PQkpDX0VYQ0VQ
VElPTlMKLSAgICBOU1N0cmluZyAqdmFsdWUgPSBkZXNjcmlwdGlvbk9mVmFsdWUoYXR0cmlidXRl
VmFsdWUoQCJBWEVtYmVkZGVkSW1hZ2VEZXNjcmlwdGlvbiIpKTsKKyAgICBOU1N0cmluZyAqdmFs
dWUgPSBkZXNjcmlwdGlvbk9mVmFsdWUoYXR0cmlidXRlVmFsdWUoQCJBWEVtYmVkZGVkSW1hZ2VE
ZXNjcmlwdGlvbiIpLmdldCgpKTsKICAgICByZXR1cm4gY29uY2F0ZW5hdGVBdHRyaWJ1dGVBbmRW
YWx1ZShAIkFYRW1iZWRkZWRJbWFnZURlc2NyaXB0aW9uIiwgdmFsdWUpOwogICAgIEVORF9BWF9P
QkpDX0VYQ0VQVElPTlMKICAgICByZXR1cm4gbnVsbHB0cjsKQEAgLTE3MDQsNyArMTcwNSw3IEBA
IEpTUmV0YWluUHRyPEpTU3RyaW5nUmVmPiBBY2Nlc3NpYmlsaXR5VUlFbGVtZW50OjplbWJlZGRl
ZEltYWdlRGVzY3JpcHRpb24oKSBjb25zCiBKU1ZhbHVlUmVmIEFjY2Vzc2liaWxpdHlVSUVsZW1l
bnQ6OmltYWdlT3ZlcmxheUVsZW1lbnRzKCkgY29uc3QKIHsKICAgICBCRUdJTl9BWF9PQkpDX0VY
Q0VQVElPTlMKLSAgICByZXR1cm4gbWFrZUpTQXJyYXkobWFrZVZlY3RvcjxSZWZQdHI8QWNjZXNz
aWJpbGl0eVVJRWxlbWVudD4+KGF0dHJpYnV0ZVZhbHVlKEAiQVhJbWFnZU92ZXJsYXlFbGVtZW50
cyIpKSk7CisgICAgcmV0dXJuIG1ha2VKU0FycmF5KG1ha2VWZWN0b3I8UmVmUHRyPEFjY2Vzc2li
aWxpdHlVSUVsZW1lbnQ+PihhdHRyaWJ1dGVWYWx1ZShAIkFYSW1hZ2VPdmVybGF5RWxlbWVudHMi
KS5nZXQoKSkpOwogICAgIEVORF9BWF9PQkpDX0VYQ0VQVElPTlMKIAogICAgIHJldHVybiBudWxs
cHRyOwpAQCAtMTczMiw3ICsxNzMzLDcgQEAgYm9vbCBBY2Nlc3NpYmlsaXR5VUlFbGVtZW50Ojpp
c011bHRpTGluZSgpIGNvbnN0CiBib29sIEFjY2Vzc2liaWxpdHlVSUVsZW1lbnQ6Omhhc1BvcHVw
KCkgY29uc3QKIHsKICAgICBCRUdJTl9BWF9PQkpDX0VYQ0VQVElPTlMKLSAgICBpZCB2YWx1ZSA9
IGF0dHJpYnV0ZVZhbHVlKEAiQVhIYXNQb3B1cCIpOworICAgIGF1dG8gdmFsdWUgPSBhdHRyaWJ1
dGVWYWx1ZShAIkFYSGFzUG9wdXAiKTsKICAgICBpZiAoW3ZhbHVlIGlzS2luZE9mQ2xhc3M6W05T
TnVtYmVyIGNsYXNzXV0pCiAgICAgICAgIHJldHVybiBbdmFsdWUgYm9vbFZhbHVlXTsKICAgICBF
TkRfQVhfT0JKQ19FWENFUFRJT05TCkBAIC0xNzQzLDcgKzE3NDQsNyBAQCBib29sIEFjY2Vzc2li
aWxpdHlVSUVsZW1lbnQ6Omhhc1BvcHVwKCkgY29uc3QKIEpTUmV0YWluUHRyPEpTU3RyaW5nUmVm
PiBBY2Nlc3NpYmlsaXR5VUlFbGVtZW50Ojpwb3B1cFZhbHVlKCkgY29uc3QKIHsKICAgICBCRUdJ
Tl9BWF9PQkpDX0VYQ0VQVElPTlMKLSAgICBpZCB2YWx1ZSA9IGF0dHJpYnV0ZVZhbHVlKEAiQVhQ
b3B1cFZhbHVlIik7CisgICAgYXV0byB2YWx1ZSA9IGF0dHJpYnV0ZVZhbHVlKEAiQVhQb3B1cFZh
bHVlIik7CiAgICAgaWYgKFt2YWx1ZSBpc0tpbmRPZkNsYXNzOltOU1N0cmluZyBjbGFzc11dKQog
ICAgICAgICByZXR1cm4gW3ZhbHVlIGNyZWF0ZUpTU3RyaW5nUmVmXTsKICAgICBFTkRfQVhfT0JK
Q19FWENFUFRJT05TCkBAIC0xODk3LDggKzE4OTgsOCBAQCBSZWZQdHI8QWNjZXNzaWJpbGl0eVRl
eHRNYXJrZXJSYW5nZT4gQWNjZXNzaWJpbGl0eVVJRWxlbWVudDo6dGV4dE1hcmtlclJhbmdlRm9y
UgogUmVmUHRyPEFjY2Vzc2liaWxpdHlUZXh0TWFya2VyUmFuZ2U+IEFjY2Vzc2liaWxpdHlVSUVs
ZW1lbnQ6OnNlbGVjdGVkVGV4dE1hcmtlclJhbmdlKCkKIHsKICAgICBCRUdJTl9BWF9PQkpDX0VY
Q0VQVElPTlMKLSAgICBpZCB0ZXh0TWFya2VyUmFuZ2UgPSBhdHRyaWJ1dGVWYWx1ZShOU0FjY2Vz
c2liaWxpdHlTZWxlY3RlZFRleHRNYXJrZXJSYW5nZUF0dHJpYnV0ZSk7Ci0gICAgcmV0dXJuIEFj
Y2Vzc2liaWxpdHlUZXh0TWFya2VyUmFuZ2U6OmNyZWF0ZSh0ZXh0TWFya2VyUmFuZ2UpOworICAg
IGF1dG8gdGV4dE1hcmtlclJhbmdlID0gYXR0cmlidXRlVmFsdWUoTlNBY2Nlc3NpYmlsaXR5U2Vs
ZWN0ZWRUZXh0TWFya2VyUmFuZ2VBdHRyaWJ1dGUpOworICAgIHJldHVybiBBY2Nlc3NpYmlsaXR5
VGV4dE1hcmtlclJhbmdlOjpjcmVhdGUodGV4dE1hcmtlclJhbmdlLmdldCgpKTsKICAgICBFTkRf
QVhfT0JKQ19FWENFUFRJT05TCiAKICAgICByZXR1cm4gbnVsbHB0cjsKQEAgLTE5MDYsMTEgKzE5
MDcsMTEgQEAgUmVmUHRyPEFjY2Vzc2liaWxpdHlUZXh0TWFya2VyUmFuZ2U+IEFjY2Vzc2liaWxp
dHlVSUVsZW1lbnQ6OnNlbGVjdGVkVGV4dE1hcmtlclIKIAogdm9pZCBBY2Nlc3NpYmlsaXR5VUlF
bGVtZW50OjpyZXNldFNlbGVjdGVkVGV4dE1hcmtlclJhbmdlKCkKIHsKLSAgICBpZCBzdGFydCA9
IGF0dHJpYnV0ZVZhbHVlKEAiQVhTdGFydFRleHRNYXJrZXIiKTsKKyAgICBhdXRvIHN0YXJ0ID0g
YXR0cmlidXRlVmFsdWUoQCJBWFN0YXJ0VGV4dE1hcmtlciIpOwogICAgIGlmICghc3RhcnQpCiAg
ICAgICAgIHJldHVybjsKIAotICAgIE5TQXJyYXkqIHRleHRNYXJrZXJzID0gQFtzdGFydCwgc3Rh
cnRdOworICAgIE5TQXJyYXkgKnRleHRNYXJrZXJzID0gQFtzdGFydC5nZXQoKSwgc3RhcnQuZ2V0
KCldOwogICAgIGlkIHRleHRNYXJrZXJSYW5nZSA9IFttX2VsZW1lbnQgYWNjZXNzaWJpbGl0eUF0
dHJpYnV0ZVZhbHVlOkAiQVhUZXh0TWFya2VyUmFuZ2VGb3JVbm9yZGVyZWRUZXh0TWFya2VycyIg
Zm9yUGFyYW1ldGVyOnRleHRNYXJrZXJzXTsKICAgICBpZiAoIXRleHRNYXJrZXJSYW5nZSkKICAg
ICAgICAgcmV0dXJuOwpAQCAtMjEyMCw4ICsyMTIxLDggQEAgUmVmUHRyPEFjY2Vzc2liaWxpdHlU
ZXh0TWFya2VyPiBBY2Nlc3NpYmlsaXR5VUlFbGVtZW50Ojp0ZXh0TWFya2VyRm9ySW5kZXgoaW50
IHQKIFJlZlB0cjxBY2Nlc3NpYmlsaXR5VGV4dE1hcmtlcj4gQWNjZXNzaWJpbGl0eVVJRWxlbWVu
dDo6c3RhcnRUZXh0TWFya2VyKCkKIHsKICAgICBCRUdJTl9BWF9PQkpDX0VYQ0VQVElPTlMKLSAg
ICBpZCB0ZXh0TWFya2VyID0gYXR0cmlidXRlVmFsdWUoQCJBWFN0YXJ0VGV4dE1hcmtlciIpOwot
ICAgIHJldHVybiBBY2Nlc3NpYmlsaXR5VGV4dE1hcmtlcjo6Y3JlYXRlKHRleHRNYXJrZXIpOwor
ICAgIGF1dG8gdGV4dE1hcmtlciA9IGF0dHJpYnV0ZVZhbHVlKEAiQVhTdGFydFRleHRNYXJrZXIi
KTsKKyAgICByZXR1cm4gQWNjZXNzaWJpbGl0eVRleHRNYXJrZXI6OmNyZWF0ZSh0ZXh0TWFya2Vy
LmdldCgpKTsKICAgICBFTkRfQVhfT0JKQ19FWENFUFRJT05TCiAKICAgICByZXR1cm4gbnVsbHB0
cjsKQEAgLTIxMzAsOCArMjEzMSw4IEBAIFJlZlB0cjxBY2Nlc3NpYmlsaXR5VGV4dE1hcmtlcj4g
QWNjZXNzaWJpbGl0eVVJRWxlbWVudDo6c3RhcnRUZXh0TWFya2VyKCkKIFJlZlB0cjxBY2Nlc3Np
YmlsaXR5VGV4dE1hcmtlcj4gQWNjZXNzaWJpbGl0eVVJRWxlbWVudDo6ZW5kVGV4dE1hcmtlcigp
CiB7CiAgICAgQkVHSU5fQVhfT0JKQ19FWENFUFRJT05TCi0gICAgaWQgdGV4dE1hcmtlciA9IGF0
dHJpYnV0ZVZhbHVlKEAiQVhFbmRUZXh0TWFya2VyIik7Ci0gICAgcmV0dXJuIEFjY2Vzc2liaWxp
dHlUZXh0TWFya2VyOjpjcmVhdGUodGV4dE1hcmtlcik7CisgICAgYXV0byB0ZXh0TWFya2VyID0g
YXR0cmlidXRlVmFsdWUoQCJBWEVuZFRleHRNYXJrZXIiKTsKKyAgICByZXR1cm4gQWNjZXNzaWJp
bGl0eVRleHRNYXJrZXI6OmNyZWF0ZSh0ZXh0TWFya2VyLmdldCgpKTsKICAgICBFTkRfQVhfT0JK
Q19FWENFUFRJT05TCiAKICAgICByZXR1cm4gbnVsbHB0cjsKQEAgLTIyODEsOCArMjI4Miw4IEBA
IHN0YXRpYyBOU1N0cmluZyAqX2NvbnZlcnRNYXRoTXVsdGlzY3JpcHRQYWlyc1RvU3RyaW5nKE5T
QXJyYXkgKnBhaXJzKQogSlNSZXRhaW5QdHI8SlNTdHJpbmdSZWY+IEFjY2Vzc2liaWxpdHlVSUVs
ZW1lbnQ6Om1hdGhQb3N0c2NyaXB0c0Rlc2NyaXB0aW9uKCkgY29uc3QKIHsKICAgICBCRUdJTl9B
WF9PQkpDX0VYQ0VQVElPTlMKLSAgICBOU0FycmF5ICpwYWlycyA9IGF0dHJpYnV0ZVZhbHVlKEAi
QVhNYXRoUG9zdHNjcmlwdHMiKTsKLSAgICByZXR1cm4gW19jb252ZXJ0TWF0aE11bHRpc2NyaXB0
UGFpcnNUb1N0cmluZyhwYWlycykgY3JlYXRlSlNTdHJpbmdSZWZdOworICAgIGF1dG8gcGFpcnMg
PSBhdHRyaWJ1dGVWYWx1ZShAIkFYTWF0aFBvc3RzY3JpcHRzIik7CisgICAgcmV0dXJuIFtfY29u
dmVydE1hdGhNdWx0aXNjcmlwdFBhaXJzVG9TdHJpbmcocGFpcnMuZ2V0KCkpIGNyZWF0ZUpTU3Ry
aW5nUmVmXTsKICAgICBFTkRfQVhfT0JKQ19FWENFUFRJT05TCiAKICAgICByZXR1cm4gbnVsbHB0
cjsKQEAgLTIyOTEsOCArMjI5Miw4IEBAIEpTUmV0YWluUHRyPEpTU3RyaW5nUmVmPiBBY2Nlc3Np
YmlsaXR5VUlFbGVtZW50OjptYXRoUG9zdHNjcmlwdHNEZXNjcmlwdGlvbigpIGNvCiBKU1JldGFp
blB0cjxKU1N0cmluZ1JlZj4gQWNjZXNzaWJpbGl0eVVJRWxlbWVudDo6bWF0aFByZXNjcmlwdHNE
ZXNjcmlwdGlvbigpIGNvbnN0CiB7CiAgICAgQkVHSU5fQVhfT0JKQ19FWENFUFRJT05TCi0gICAg
TlNBcnJheSAqcGFpcnMgPSBhdHRyaWJ1dGVWYWx1ZShAIkFYTWF0aFByZXNjcmlwdHMiKTsKLSAg
ICByZXR1cm4gW19jb252ZXJ0TWF0aE11bHRpc2NyaXB0UGFpcnNUb1N0cmluZyhwYWlycykgY3Jl
YXRlSlNTdHJpbmdSZWZdOworICAgIGF1dG8gcGFpcnMgPSBhdHRyaWJ1dGVWYWx1ZShAIkFYTWF0
aFByZXNjcmlwdHMiKTsKKyAgICByZXR1cm4gW19jb252ZXJ0TWF0aE11bHRpc2NyaXB0UGFpcnNU
b1N0cmluZyhwYWlycy5nZXQoKSkgY3JlYXRlSlNTdHJpbmdSZWZdOwogICAgIEVORF9BWF9PQkpD
X0VYQ0VQVElPTlMKIAogICAgIHJldHVybiBudWxscHRyOwpAQCAtMjMwMSw3ICsyMzAyLDcgQEAg
SlNSZXRhaW5QdHI8SlNTdHJpbmdSZWY+IEFjY2Vzc2liaWxpdHlVSUVsZW1lbnQ6Om1hdGhQcmVz
Y3JpcHRzRGVzY3JpcHRpb24oKSBjb24KIEpTVmFsdWVSZWYgQWNjZXNzaWJpbGl0eVVJRWxlbWVu
dDo6bWF0aFJvb3RSYWRpY2FuZCgpIGNvbnN0CiB7CiAgICAgQkVHSU5fQVhfT0JKQ19FWENFUFRJ
T05TCi0gICAgcmV0dXJuIG1ha2VKU0FycmF5KG1ha2VWZWN0b3I8UmVmUHRyPEFjY2Vzc2liaWxp
dHlVSUVsZW1lbnQ+PihhdHRyaWJ1dGVWYWx1ZShAIkFYTWF0aFJvb3RSYWRpY2FuZCIpKSk7Cisg
ICAgcmV0dXJuIG1ha2VKU0FycmF5KG1ha2VWZWN0b3I8UmVmUHRyPEFjY2Vzc2liaWxpdHlVSUVs
ZW1lbnQ+PihhdHRyaWJ1dGVWYWx1ZShAIkFYTWF0aFJvb3RSYWRpY2FuZCIpLmdldCgpKSk7CiAg
ICAgRU5EX0FYX09CSkNfRVhDRVBUSU9OUwogCiAgICAgcmV0dXJuIG51bGxwdHI7CkBAIC0yMzEx
LDcgKzIzMTIsNyBAQCBKU1JldGFpblB0cjxKU1N0cmluZ1JlZj4gQWNjZXNzaWJpbGl0eVVJRWxl
bWVudDo6cGF0aERlc2NyaXB0aW9uKCkgY29uc3QKIHsKICAgICBCRUdJTl9BWF9PQkpDX0VYQ0VQ
VElPTlMKICAgICBOU011dGFibGVTdHJpbmcgKnJlc3VsdCA9IFtOU011dGFibGVTdHJpbmcgc3Ry
aW5nV2l0aFN0cmluZzpAIlxuU3RhcnQgUGF0aFxuIl07Ci0gICAgTlNCZXppZXJQYXRoICpiZXpp
ZXJQYXRoID0gYXR0cmlidXRlVmFsdWUoTlNBY2Nlc3NpYmlsaXR5UGF0aEF0dHJpYnV0ZSk7Cisg
ICAgYXV0byBiZXppZXJQYXRoID0gYXR0cmlidXRlVmFsdWUoTlNBY2Nlc3NpYmlsaXR5UGF0aEF0
dHJpYnV0ZSk7CiAKICAgICBOU1VJbnRlZ2VyIGVsZW1lbnRDb3VudCA9IFtiZXppZXJQYXRoIGVs
ZW1lbnRDb3VudF07CiAgICAgTlNQb2ludCBwb2ludHNbM107Cg==
</data>

          </attachment>
      

    </bug>

</bugzilla>