<?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>219807</bug_id>
          
          <creation_ts>2020-12-11 15:13:03 -0800</creation_ts>
          <short_desc>Fix for accessibility layout tests related to VisiblePositions in isolated tree mode.</short_desc>
          <delta_ts>2020-12-14 11:01: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>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>aboxhall</cc>
    
    <cc>apinheiro</cc>
    
    <cc>cfleizach</cc>
    
    <cc>dmazzoni</cc>
    
    <cc>ews-watchlist</cc>
    
    <cc>jcraig</cc>
    
    <cc>jdiggs</cc>
    
    <cc>samuel_white</cc>
    
    <cc>webkit-bug-importer</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1714106</commentid>
    <comment_count>0</comment_count>
    <who name="Andres Gonzalez">andresg_22</who>
    <bug_when>2020-12-11 15:13:03 -0800</bug_when>
    <thetext>Fix for accessibility layout tests related to VisiblePositions in isolated tree mode.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1714113</commentid>
    <comment_count>1</comment_count>
      <attachid>416052</attachid>
    <who name="Andres Gonzalez">andresg_22</who>
    <bug_when>2020-12-11 15:29:22 -0800</bug_when>
    <thetext>Created attachment 416052
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1714114</commentid>
    <comment_count>2</comment_count>
      <attachid>416052</attachid>
    <who name="chris fleizach">cfleizach</who>
    <bug_when>2020-12-11 15:32:06 -0800</bug_when>
    <thetext>Comment on attachment 416052
Patch

seems ok if tests pass. 
slightly worried that updating children in render object hit test will cause perf issues</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1714438</commentid>
    <comment_count>3</comment_count>
      <attachid>416156</attachid>
    <who name="Andres Gonzalez">andresg_22</who>
    <bug_when>2020-12-14 07:39:59 -0800</bug_when>
    <thetext>Created attachment 416156
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1714440</commentid>
    <comment_count>4</comment_count>
    <who name="Andres Gonzalez">andresg_22</who>
    <bug_when>2020-12-14 07:42:56 -0800</bug_when>
    <thetext>(In reply to chris fleizach from comment #2)
&gt; Comment on attachment 416052 [details]
&gt; Patch
&gt; 
&gt; seems ok if tests pass. 
&gt; slightly worried that updating children in render object hit test will cause
&gt; perf issues

Agree, particularly I&apos;m not sure about the impact on iOS, so I reverted that part of the change.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1714497</commentid>
    <comment_count>5</comment_count>
    <who name="EWS">ews-feeder</who>
    <bug_when>2020-12-14 10:59:58 -0800</bug_when>
    <thetext>Committed r270787: &lt;https://trac.webkit.org/changeset/270787&gt;

All reviewed patches have been landed. Closing bug and clearing flags on attachment 416156.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1714498</commentid>
    <comment_count>6</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2020-12-14 11:01:48 -0800</bug_when>
    <thetext>&lt;rdar://problem/72305119&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>416052</attachid>
            <date>2020-12-11 15:29:22 -0800</date>
            <delta_ts>2020-12-14 07:39:56 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-219807-20201211182921.patch</filename>
            <type>text/plain</type>
            <size>28172</size>
            <attacher name="Andres Gonzalez">andresg_22</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjcwNzA3CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNWY3MGM0MGI3YWEwZDg5
OWY4NzhlZjdlMTg2MjliODI5YjlhNmJmMy4uMWQ3ZGQwYWEzYjZjN2JkZmE4MDY3OTcxOWQ2Njk0
Y2NlNGE2MTFiMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDczIEBACisyMDIwLTEyLTExICBBbmRy
ZXMgR29uemFsZXogIDxhbmRyZXNnXzIyQGFwcGxlLmNvbT4KKworICAgICAgICBGaXggZm9yIGFj
Y2Vzc2liaWxpdHkgbGF5b3V0IHRlc3RzIHJlbGF0ZWQgdG8gVmlzaWJsZVBvc2l0aW9ucyBpbiBp
c29sYXRlZCB0cmVlIG1vZGUuCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3df
YnVnLmNnaT9pZD0yMTk4MDcKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4K
KworICAgICAgICBUZXN0czoKKyAgICAgICAgYWNjZXNzaWJpbGl0eS9tYWMvbGluZS1yYW5nZS1m
b3ItdGV4dC1tYXJrZXIuaHRtbAorICAgICAgICBhY2Nlc3NpYmlsaXR5L21hYy92aXNpYmxlLXBv
c2l0aW9uLWNyYXNoLWZvci10ZXh0LW5vZGUuaHRtbAorCisgICAgICAgIC0gTW92ZWQgcmVtYWlu
aW5nIHVuaW1wbGVtZW50ZWQgQVhJc29sYXRlZE9iamVjdCBtZXRob2RzIGZyb20gdGhlIGhlYWRl
cgorICAgICAgICB0byB0aGUgY3BwIGZpbGUgYW5kIGFkZGVkIEFTU0VSVF9OT1RfUkVBQ0hFRCB3
aGVyZSBwZXJ0aW5lbnQuIFRoaXMgd2lsbAorICAgICAgICBhbGxvdyB0byBpZGVudGlmeSBhbnkg
bWV0aG9kIHRoYXQgbmVlZHMgaW1wbGVtZW50YXRpb24uCisgICAgICAgIC0gSW1wbGVtZW50ZWQg
dGhlIG5lY2Vzc2FyeSBWaXNpYmxlUG9zaXRpb24gbWV0aG9kcy4KKyAgICAgICAgLSBDbGVhbmVk
IHVwIGFuZCBzaW1wbGlmaWVkIHBsYXRmb3JtIGNvZGUgYnkgY2FsbGluZyBkaXJlY3RseSBpbnRv
CisgICAgICAgIEFYQ29yZU9iamVjdCBtZXRob2RzIGluc3RlYWQgb2YgdW5uZWNlc3Nhcnkgd3Jh
cHBlcnMuCisgICAgICAgIC0gQWNjZXNzaWJpbGl0eU9iamVjdDo6YWNjZXNzaWJpbGl0eUhpdFRl
c3Qgbm93IHVwZGF0ZUNoaWxkcmVuSWZOZWNlc3NhcnksCisgICAgICAgIHNvIHRoYXQgcGxhdGZv
cm0gY29kZSBkb2VzIG5vdCBoYXZlIHRvIGRvIHRoYXQgYW5kIHdvcmtzIGZvciBib3RoCisgICAg
ICAgIGlzb2xhdGVkIGFuZCBsaXZlIG9iamVjdHMuCisKKyAgICAgICAgKiBhY2Nlc3NpYmlsaXR5
L0FjY2Vzc2liaWxpdHlPYmplY3QuaDoKKyAgICAgICAgKiBhY2Nlc3NpYmlsaXR5L0FjY2Vzc2li
aWxpdHlPYmplY3RJbnRlcmZhY2UuaDoKKyAgICAgICAgKiBhY2Nlc3NpYmlsaXR5L0FjY2Vzc2li
aWxpdHlSZW5kZXJPYmplY3QuY3BwOgorICAgICAgICAoV2ViQ29yZTo6QWNjZXNzaWJpbGl0eVJl
bmRlck9iamVjdDo6YWNjZXNzaWJpbGl0eUhpdFRlc3QpOgorICAgICAgICAoV2ViQ29yZTo6QWNj
ZXNzaWJpbGl0eVJlbmRlck9iamVjdDo6YWNjZXNzaWJpbGl0eUhpdFRlc3QgY29uc3QpOiBEZWxl
dGVkLgorICAgICAgICAqIGFjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eVJlbmRlck9iamVjdC5o
OgorICAgICAgICAqIGFjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eVNjcm9sbFZpZXcuY3BwOgor
ICAgICAgICAoV2ViQ29yZTo6QWNjZXNzaWJpbGl0eVNjcm9sbFZpZXc6OmFjY2Vzc2liaWxpdHlI
aXRUZXN0KToKKyAgICAgICAgKFdlYkNvcmU6OkFjY2Vzc2liaWxpdHlTY3JvbGxWaWV3OjphY2Nl
c3NpYmlsaXR5SGl0VGVzdCBjb25zdCk6IERlbGV0ZWQuCisgICAgICAgICogYWNjZXNzaWJpbGl0
eS9BY2Nlc3NpYmlsaXR5U2Nyb2xsVmlldy5oOgorICAgICAgICAqIGFjY2Vzc2liaWxpdHkvaW9z
L1dlYkFjY2Vzc2liaWxpdHlPYmplY3RXcmFwcGVySU9TLm1tOgorICAgICAgICAoLVtXZWJBY2Nl
c3NpYmlsaXR5T2JqZWN0V3JhcHBlciBhY2Nlc3NpYmlsaXR5TGFiZWxdKToKKyAgICAgICAgKiBh
Y2Nlc3NpYmlsaXR5L2lzb2xhdGVkdHJlZS9BWElzb2xhdGVkT2JqZWN0LmNwcDoKKyAgICAgICAg
KFdlYkNvcmU6OkFYSXNvbGF0ZWRPYmplY3Q6OmluaXQpOgorICAgICAgICAoV2ViQ29yZTo6QVhJ
c29sYXRlZE9iamVjdDo6dXBkYXRlQ2hpbGRyZW5JZk5lY2Vzc2FyeSk6CisgICAgICAgIChXZWJD
b3JlOjpBWElzb2xhdGVkT2JqZWN0OjphY2Nlc3NpYmlsaXR5SGl0VGVzdCk6CisgICAgICAgIChX
ZWJDb3JlOjpBWElzb2xhdGVkT2JqZWN0Ojpib3VuZHNGb3JWaXNpYmxlUG9zaXRpb25SYW5nZSBj
b25zdCk6CisgICAgICAgIChXZWJDb3JlOjpBWElzb2xhdGVkT2JqZWN0OjpsZW5ndGhGb3JWaXNp
YmxlUG9zaXRpb25SYW5nZSBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpBWElzb2xhdGVkT2Jq
ZWN0Ojp2aXNpYmxlUG9zaXRpb25Gb3JCb3VuZHMgY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6
QVhJc29sYXRlZE9iamVjdDo6dmlzaWJsZVBvc2l0aW9uRm9yUG9pbnQgY29uc3QpOgorICAgICAg
ICAoV2ViQ29yZTo6QVhJc29sYXRlZE9iamVjdDo6bmV4dFZpc2libGVQb3NpdGlvbiBjb25zdCk6
CisgICAgICAgIChXZWJDb3JlOjpBWElzb2xhdGVkT2JqZWN0OjpwcmV2aW91c1Zpc2libGVQb3Np
dGlvbiBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpBWElzb2xhdGVkT2JqZWN0OjpuZXh0V29y
ZEVuZCBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpBWElzb2xhdGVkT2JqZWN0OjpwcmV2aW91
c1dvcmRTdGFydCBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpBWElzb2xhdGVkT2JqZWN0Ojpu
ZXh0TGluZUVuZFBvc2l0aW9uIGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6OkFYSXNvbGF0ZWRP
YmplY3Q6OnByZXZpb3VzTGluZVN0YXJ0UG9zaXRpb24gY29uc3QpOgorICAgICAgICAoV2ViQ29y
ZTo6QVhJc29sYXRlZE9iamVjdDo6bmV4dFNlbnRlbmNlRW5kUG9zaXRpb24gY29uc3QpOgorICAg
ICAgICAoV2ViQ29yZTo6QVhJc29sYXRlZE9iamVjdDo6cHJldmlvdXNTZW50ZW5jZVN0YXJ0UG9z
aXRpb24gY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6QVhJc29sYXRlZE9iamVjdDo6bmV4dFBh
cmFncmFwaEVuZFBvc2l0aW9uIGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6OkFYSXNvbGF0ZWRP
YmplY3Q6OnByZXZpb3VzUGFyYWdyYXBoU3RhcnRQb3NpdGlvbiBjb25zdCk6CisgICAgICAgIChX
ZWJDb3JlOjpBWElzb2xhdGVkT2JqZWN0Ojp2aXNpYmxlUG9zaXRpb25Gb3JJbmRleCBjb25zdCk6
CisgICAgICAgIChXZWJDb3JlOjpBWElzb2xhdGVkT2JqZWN0OjppbmRleEZvclZpc2libGVQb3Np
dGlvbiBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpBWElzb2xhdGVkT2JqZWN0OjphY2Nlc3Np
YmlsaXR5T2JqZWN0Rm9yUG9zaXRpb24gY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6QVhJc29s
YXRlZE9iamVjdDo6cGxhaW5UZXh0UmFuZ2VGb3JWaXNpYmxlUG9zaXRpb25SYW5nZSBjb25zdCk6
CisgICAgICAgIChXZWJDb3JlOjpBWElzb2xhdGVkT2JqZWN0OjppbmRleCBjb25zdCk6CisgICAg
ICAgIChXZWJDb3JlOjpBWElzb2xhdGVkT2JqZWN0OjpsaW5lQnJlYWtzIGNvbnN0KToKKyAgICAg
ICAgKFdlYkNvcmU6OkFYSXNvbGF0ZWRPYmplY3Q6OnRleHRVbmRlckVsZW1lbnQgY29uc3QpOgor
ICAgICAgICAoV2ViQ29yZTo6QVhJc29sYXRlZE9iamVjdDo6YWNjZXNzaWJpbGl0eUhpdFRlc3Qg
Y29uc3QpOiBEZWxldGVkLgorICAgICAgICAqIGFjY2Vzc2liaWxpdHkvaXNvbGF0ZWR0cmVlL0FY
SXNvbGF0ZWRPYmplY3QuaDoKKyAgICAgICAgKiBhY2Nlc3NpYmlsaXR5L21hYy9BY2Nlc3NpYmls
aXR5T2JqZWN0QmFzZS5tbToKKyAgICAgICAgKFdlYkNvcmU6OkFjY2Vzc2liaWxpdHlPYmplY3Q6
OnRpdGxlQXR0cmlidXRlVmFsdWUgY29uc3QpOgorICAgICAgICAqIGFjY2Vzc2liaWxpdHkvbWFj
L1dlYkFjY2Vzc2liaWxpdHlPYmplY3RXcmFwcGVyQmFzZS5oOgorICAgICAgICAqIGFjY2Vzc2li
aWxpdHkvbWFjL1dlYkFjY2Vzc2liaWxpdHlPYmplY3RXcmFwcGVyQmFzZS5tbToKKyAgICAgICAg
KC1bV2ViQWNjZXNzaWJpbGl0eU9iamVjdFdyYXBwZXJCYXNlIGJhc2VBY2Nlc3NpYmlsaXR5VGl0
bGVdKTogRGVsZXRlZC4KKyAgICAgICAgKiBhY2Nlc3NpYmlsaXR5L21hYy9XZWJBY2Nlc3NpYmls
aXR5T2JqZWN0V3JhcHBlck1hYy5tbToKKyAgICAgICAgKC1bV2ViQWNjZXNzaWJpbGl0eU9iamVj
dFdyYXBwZXIgYWNjZXNzaWJpbGl0eUF0dHJpYnV0ZVZhbHVlOl0pOgorICAgICAgICAoLVtXZWJB
Y2Nlc3NpYmlsaXR5T2JqZWN0V3JhcHBlciBhY2Nlc3NpYmlsaXR5SGl0VGVzdDpdKToKKyAgICAg
ICAgKC1bV2ViQWNjZXNzaWJpbGl0eU9iamVjdFdyYXBwZXIgYWNjZXNzaWJpbGl0eUF0dHJpYnV0
ZVZhbHVlOmZvclBhcmFtZXRlcjpdKToKKwogMjAyMC0xMi0xMSAgWmFsYW4gQnVqdGFzICA8emFs
YW5AYXBwbGUuY29tPgogCiAgICAgICAgIFtMRkNdW0lGQ10gSW5saW5lVGV4dEl0ZW06OmlzQ29s
bGFwc2libGUgbWlnaHQgYmUgbWlzbGVhZGluZwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
YWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5T2JqZWN0LmggYi9Tb3VyY2UvV2ViQ29yZS9hY2Nl
c3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlPYmplY3QuaAppbmRleCA1NGU0YzJlMWMzOGZhOWNjMmY2
MmEzMzBiZTQ0OTIyM2JlMmQ3NGM0Li5kNDI0ZWQyZjQzZDAwOTViNGUyOTg4N2EzMzU3YjYzODhj
NDMxMDUxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2li
aWxpdHlPYmplY3QuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2li
aWxpdHlPYmplY3QuaApAQCAtMzM1LDcgKzMzNSw3IEBAIHB1YmxpYzoKICAgICBWZWN0b3I8U3Ry
aW5nPiBkZXRlcm1pbmVEcm9wRWZmZWN0cygpIGNvbnN0IG92ZXJyaWRlIHsgcmV0dXJuIHsgfTsg
fQogCiAgICAgLy8gQ2FsbGVkIG9uIHRoZSByb290IEFYIG9iamVjdCB0byByZXR1cm4gdGhlIGRl
ZXBlc3QgYXZhaWxhYmxlIGVsZW1lbnQuCi0gICAgQVhDb3JlT2JqZWN0KiBhY2Nlc3NpYmlsaXR5
SGl0VGVzdChjb25zdCBJbnRQb2ludCYpIGNvbnN0IG92ZXJyaWRlIHsgcmV0dXJuIG51bGxwdHI7
IH0KKyAgICBBWENvcmVPYmplY3QqIGFjY2Vzc2liaWxpdHlIaXRUZXN0KGNvbnN0IEludFBvaW50
Jikgb3ZlcnJpZGUgeyByZXR1cm4gbnVsbHB0cjsgfQogICAgIC8vIENhbGxlZCBvbiB0aGUgQVgg
b2JqZWN0IGFmdGVyIHRoZSByZW5kZXIgdHJlZSBkZXRlcm1pbmVzIHdoaWNoIGlzIHRoZSByaWdo
dCBBY2Nlc3NpYmlsaXR5UmVuZGVyT2JqZWN0LgogICAgIEFYQ29yZU9iamVjdCogZWxlbWVudEFj
Y2Vzc2liaWxpdHlIaXRUZXN0KGNvbnN0IEludFBvaW50JikgY29uc3Qgb3ZlcnJpZGU7CiAKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eU9iamVj
dEludGVyZmFjZS5oIGIvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5
T2JqZWN0SW50ZXJmYWNlLmgKaW5kZXggNDcyYjAyZmVmZDg4MDNkOWMwYjkzNWY2YzRlYTAzMTRj
YWUwNTMzZi4uNDhjMTQ4YWVjMmJkNWI2YjkzMGVkM2U2OTg4ODE2MmE5MTE4ODQ0ZSAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5T2JqZWN0SW50
ZXJmYWNlLmgKKysrIGIvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5
T2JqZWN0SW50ZXJmYWNlLmgKQEAgLTEwNjgsNyArMTA2OCw3IEBAIHB1YmxpYzoKICAgICB2aXJ0
dWFsIFZlY3RvcjxTdHJpbmc+IGRldGVybWluZURyb3BFZmZlY3RzKCkgY29uc3QgPSAwOwogCiAg
ICAgLy8gQ2FsbGVkIG9uIHRoZSByb290IEFYIG9iamVjdCB0byByZXR1cm4gdGhlIGRlZXBlc3Qg
YXZhaWxhYmxlIGVsZW1lbnQuCi0gICAgdmlydHVhbCBBWENvcmVPYmplY3QqIGFjY2Vzc2liaWxp
dHlIaXRUZXN0KGNvbnN0IEludFBvaW50JikgY29uc3QgPSAwOworICAgIHZpcnR1YWwgQVhDb3Jl
T2JqZWN0KiBhY2Nlc3NpYmlsaXR5SGl0VGVzdChjb25zdCBJbnRQb2ludCYpID0gMDsKICAgICAv
LyBDYWxsZWQgb24gdGhlIEFYIG9iamVjdCBhZnRlciB0aGUgcmVuZGVyIHRyZWUgZGV0ZXJtaW5l
cyB3aGljaCBpcyB0aGUgcmlnaHQgQWNjZXNzaWJpbGl0eVJlbmRlck9iamVjdC4KICAgICB2aXJ0
dWFsIEFYQ29yZU9iamVjdCogZWxlbWVudEFjY2Vzc2liaWxpdHlIaXRUZXN0KGNvbnN0IEludFBv
aW50JikgY29uc3QgPSAwOwogCkBAIC0xNDY2LDcgKzE0NjYsMTAgQEAgcHVibGljOgogICAgIHZp
cnR1YWwgU3RyaW5nIHNwZWVjaEhpbnRBdHRyaWJ1dGVWYWx1ZSgpIGNvbnN0ID0gMDsKICAgICB2
aXJ0dWFsIFN0cmluZyBkZXNjcmlwdGlvbkF0dHJpYnV0ZVZhbHVlKCkgY29uc3QgPSAwOwogICAg
IHZpcnR1YWwgU3RyaW5nIGhlbHBUZXh0QXR0cmlidXRlVmFsdWUoKSBjb25zdCA9IDA7CisgICAg
Ly8gVGhpcyBzaG91bGQgYmUgdGhlIHZpc2libGUgdGV4dCB0aGF0J3MgYWN0dWFsbHkgb24gdGhl
IHNjcmVlbiBpZiBwb3NzaWJsZS4KKyAgICAvLyBJZiB0aGVyZSdzIGFsdGVybmF0aXZlIHRleHQs
IHRoYXQgY2FuIG92ZXJyaWRlIHRoZSB0aXRsZS4KICAgICB2aXJ0dWFsIFN0cmluZyB0aXRsZUF0
dHJpYnV0ZVZhbHVlKCkgY29uc3QgPSAwOworCiAgICAgdmlydHVhbCBib29sIGhhc0FwcGxlUERG
QW5ub3RhdGlvbkF0dHJpYnV0ZSgpIGNvbnN0ID0gMDsKICNlbmRpZgogCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlSZW5kZXJPYmplY3QuY3Bw
IGIvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5UmVuZGVyT2JqZWN0
LmNwcAppbmRleCAwMjMwMGQ5ODc4NTFhYmEwNGQ3ZDMzZDU2ZDAwYmM2OTAwZmU1YWNjLi4xYTZi
OGFhNTkyNjU5OWZjMjJiM2I3NjI4ZTQ2N2EyOGQ3OWZiYmFlIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlSZW5kZXJPYmplY3QuY3BwCisrKyBi
L1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eVJlbmRlck9iamVjdC5j
cHAKQEAgLTI0OTMsOCArMjQ5MywxMCBAQCBzdGF0aWMgYm9vbCBzaG91bGRVc2VTaGFkb3dIb3N0
Rm9ySGl0VGVzdGluZyhOb2RlKiBzaGFkb3dIb3N0KQogICAgIHJldHVybiBzaGFkb3dIb3N0ICYm
ICFzaGFkb3dIb3N0LT5oYXNUYWdOYW1lKHZpZGVvVGFnKTsKIH0KIAotQVhDb3JlT2JqZWN0KiBB
Y2Nlc3NpYmlsaXR5UmVuZGVyT2JqZWN0OjphY2Nlc3NpYmlsaXR5SGl0VGVzdChjb25zdCBJbnRQ
b2ludCYgcG9pbnQpIGNvbnN0CitBWENvcmVPYmplY3QqIEFjY2Vzc2liaWxpdHlSZW5kZXJPYmpl
Y3Q6OmFjY2Vzc2liaWxpdHlIaXRUZXN0KGNvbnN0IEludFBvaW50JiBwb2ludCkKIHsKKyAgICB1
cGRhdGVDaGlsZHJlbklmTmVjZXNzYXJ5KCk7CisKICAgICBpZiAoIW1fcmVuZGVyZXIgfHwgIW1f
cmVuZGVyZXItPmhhc0xheWVyKCkpCiAgICAgICAgIHJldHVybiBudWxscHRyOwogICAgIApkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5UmVuZGVy
T2JqZWN0LmggYi9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlSZW5k
ZXJPYmplY3QuaAppbmRleCA0NWI2YjM0ZmY1ZmE5YWRmNGVlZWJmNGYyMGU5ZTI3NDEzNTk2ZWU4
Li4yZTlmYTYzZWRlNTE0ZjJkMDRmMWM5ZGRjZjFiNTg2MDNkYWJiNDdiIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlSZW5kZXJPYmplY3QuaAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlSZW5kZXJPYmpl
Y3QuaApAQCAtMTA2LDcgKzEwNiw3IEBAIHB1YmxpYzoKICAgICBib29sIGFyaWFSb2xlSGFzUHJl
c2VudGF0aW9uYWxDaGlsZHJlbigpIGNvbnN0IG92ZXJyaWRlOwogICAgIAogICAgIC8vIFNob3Vs
ZCBiZSBjYWxsZWQgb24gdGhlIHJvb3QgYWNjZXNzaWJpbGl0eSBvYmplY3QgdG8ga2ljayBvZmYg
YSBoaXQgdGVzdC4KLSAgICBBWENvcmVPYmplY3QqIGFjY2Vzc2liaWxpdHlIaXRUZXN0KGNvbnN0
IEludFBvaW50JikgY29uc3Qgb3ZlcnJpZGU7CisgICAgQVhDb3JlT2JqZWN0KiBhY2Nlc3NpYmls
aXR5SGl0VGVzdChjb25zdCBJbnRQb2ludCYpIG92ZXJyaWRlOwogCiAgICAgRWxlbWVudCogYW5j
aG9yRWxlbWVudCgpIGNvbnN0IG92ZXJyaWRlOwogICAgIApkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5U2Nyb2xsVmlldy5jcHAgYi9Tb3VyY2Uv
V2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlTY3JvbGxWaWV3LmNwcAppbmRleCA5
MmIwZGVmZDJmMmRiN2M3NWU2MGRkMmRlZWQzYWFjMTllOTUwYTQ3Li5iYzljNTc3ZTBkNWRhMDhm
Mjc1YTNhYTJkMDFjNjQwYmIyYzM5ODBhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9hY2Nl
c3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlTY3JvbGxWaWV3LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlTY3JvbGxWaWV3LmNwcApAQCAtMjA3LDcgKzIw
Nyw3IEBAIEFjY2Vzc2liaWxpdHlPYmplY3QqIEFjY2Vzc2liaWxpdHlTY3JvbGxWaWV3Ojp3ZWJB
cmVhT2JqZWN0KCkgY29uc3QKICAgICByZXR1cm4gbnVsbHB0cjsKIH0KIAotQVhDb3JlT2JqZWN0
KiBBY2Nlc3NpYmlsaXR5U2Nyb2xsVmlldzo6YWNjZXNzaWJpbGl0eUhpdFRlc3QoY29uc3QgSW50
UG9pbnQmIHBvaW50KSBjb25zdAorQVhDb3JlT2JqZWN0KiBBY2Nlc3NpYmlsaXR5U2Nyb2xsVmll
dzo6YWNjZXNzaWJpbGl0eUhpdFRlc3QoY29uc3QgSW50UG9pbnQmIHBvaW50KQogewogICAgIEFj
Y2Vzc2liaWxpdHlPYmplY3QqIHdlYkFyZWEgPSB3ZWJBcmVhT2JqZWN0KCk7CiAgICAgaWYgKCF3
ZWJBcmVhKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BY2Nlc3Np
YmlsaXR5U2Nyb2xsVmlldy5oIGIvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BY2Nlc3Np
YmlsaXR5U2Nyb2xsVmlldy5oCmluZGV4IGYwNGYyYjBlOWQ4MjJjZWZmY2UyY2I2OWQ2YjEwZDBi
NDlmMzNlOGMuLjZmY2U2OWQ3MDU1OGM1NmU2MDY4ODA3NGE5NjNhMWViMWM3NTM3OGQgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eVNjcm9sbFZp
ZXcuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlTY3Jv
bGxWaWV3LmgKQEAgLTYwLDcgKzYwLDcgQEAgcHJpdmF0ZToKICAgICBBY2Nlc3NpYmlsaXR5T2Jq
ZWN0KiBzY3JvbGxCYXIoQWNjZXNzaWJpbGl0eU9yaWVudGF0aW9uKSBvdmVycmlkZTsKICAgICB2
b2lkIGFkZENoaWxkcmVuKCkgb3ZlcnJpZGU7CiAgICAgdm9pZCBjbGVhckNoaWxkcmVuKCkgb3Zl
cnJpZGU7Ci0gICAgQVhDb3JlT2JqZWN0KiBhY2Nlc3NpYmlsaXR5SGl0VGVzdChjb25zdCBJbnRQ
b2ludCYpIGNvbnN0IG92ZXJyaWRlOworICAgIEFYQ29yZU9iamVjdCogYWNjZXNzaWJpbGl0eUhp
dFRlc3QoY29uc3QgSW50UG9pbnQmKSBvdmVycmlkZTsKICAgICB2b2lkIHVwZGF0ZUNoaWxkcmVu
SWZOZWNlc3NhcnkoKSBvdmVycmlkZTsKICAgICB2b2lkIHNldE5lZWRzVG9VcGRhdGVDaGlsZHJl
bigpIG92ZXJyaWRlIHsgbV9jaGlsZHJlbkRpcnR5ID0gdHJ1ZTsgfQogICAgIHZvaWQgdXBkYXRl
U2Nyb2xsYmFycygpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9p
b3MvV2ViQWNjZXNzaWJpbGl0eU9iamVjdFdyYXBwZXJJT1MubW0gYi9Tb3VyY2UvV2ViQ29yZS9h
Y2Nlc3NpYmlsaXR5L2lvcy9XZWJBY2Nlc3NpYmlsaXR5T2JqZWN0V3JhcHBlcklPUy5tbQppbmRl
eCA0OGY1ZGVmYTkwOGU5Njc2MmY4MmY0MmRlOTE5Yzg0YjZhMzhkMWY5Li44ZjgxN2UyYjllMjIz
NjA3YTkzM2NhYjExNGNiMmJmMmRlNjcwMDc0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9h
Y2Nlc3NpYmlsaXR5L2lvcy9XZWJBY2Nlc3NpYmlsaXR5T2JqZWN0V3JhcHBlcklPUy5tbQorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L2lvcy9XZWJBY2Nlc3NpYmlsaXR5T2JqZWN0
V3JhcHBlcklPUy5tbQpAQCAtMTE3MSw3ICsxMTcxLDcgQEAgc3RhdGljIHZvaWQgYXBwZW5kU3Ry
aW5nVG9SZXN1bHQoTlNNdXRhYmxlU3RyaW5nICpyZXN1bHQsIE5TU3RyaW5nICpzdHJpbmcpCiAK
ICAgICAvLyBpT1MgZG9lc24ndCBkaXN0aW5ndWlzaCBiZXR3ZWVuIGEgdGl0bGUgYW5kIGRlc2Ny
aXB0aW9uIGZpZWxkLAogICAgIC8vIHNvIGNvbmNhdGVudGF0aW9uIHdpbGwgeWllbGQgdGhlIGJl
c3QgcmVzdWx0LgotICAgIE5TU3RyaW5nICpheFRpdGxlID0gW3NlbGYgYmFzZUFjY2Vzc2liaWxp
dHlUaXRsZV07CisgICAgTlNTdHJpbmcgKmF4VGl0bGUgPSBzZWxmLmF4QmFja2luZ09iamVjdC0+
dGl0bGVBdHRyaWJ1dGVWYWx1ZSgpOwogICAgIE5TU3RyaW5nICpheERlc2NyaXB0aW9uID0gW3Nl
bGYgYmFzZUFjY2Vzc2liaWxpdHlEZXNjcmlwdGlvbl07CiAgICAgTlNTdHJpbmcgKmxhbmRtYXJr
RGVzY3JpcHRpb24gPSBbc2VsZiBhcmlhTGFuZG1hcmtSb2xlRGVzY3JpcHRpb25dOwogICAgIE5T
U3RyaW5nICppbnRlcmFjdGl2ZVZpZGVvRGVzY3JpcHRpb24gPSBbc2VsZiBpbnRlcmFjdGl2ZVZp
ZGVvRGVzY3JpcHRpb25dOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0
eS9pc29sYXRlZHRyZWUvQVhJc29sYXRlZE9iamVjdC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9hY2Nl
c3NpYmlsaXR5L2lzb2xhdGVkdHJlZS9BWElzb2xhdGVkT2JqZWN0LmNwcAppbmRleCAyZTljMmZi
NjQ1ZDQwN2Y4NjNjNmQ0Y2ViZGUzZDJlMjljYzI2M2FhLi4zOGMzZDAzNTg1ZmJjZTJlMjgxMGVh
MjQ4ZjIyMzliYjI4OWI4Y2FiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmls
aXR5L2lzb2xhdGVkdHJlZS9BWElzb2xhdGVkT2JqZWN0LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9hY2Nlc3NpYmlsaXR5L2lzb2xhdGVkdHJlZS9BWElzb2xhdGVkT2JqZWN0LmNwcApAQCAtNjAs
NiArNjAsMTEgQEAgQVhJc29sYXRlZE9iamVjdDo6fkFYSXNvbGF0ZWRPYmplY3QoKQogICAgIEFT
U0VSVCghd3JhcHBlcigpKTsKIH0KIAordm9pZCBBWElzb2xhdGVkT2JqZWN0Ojppbml0KCkKK3sK
KyAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsKK30KKwogdm9pZCBBWElzb2xhdGVkT2JqZWN0Ojpp
bml0aWFsaXplQXR0cmlidXRlRGF0YShBWENvcmVPYmplY3QmIG9iamVjdCwgYm9vbCBpc1Jvb3Qp
CiB7CiAgICAgc2V0UHJvcGVydHkoQVhQcm9wZXJ0eU5hbWU6OkFSSUFMYW5kbWFya1JvbGVEZXNj
cmlwdGlvbiwgb2JqZWN0LmFyaWFMYW5kbWFya1JvbGVEZXNjcmlwdGlvbigpLmlzb2xhdGVkQ29w
eSgpKTsKQEAgLTUwNyw2ICs1MTIsMTEgQEAgY29uc3QgQVhDb3JlT2JqZWN0OjpBY2Nlc3NpYmls
aXR5Q2hpbGRyZW5WZWN0b3ImIEFYSXNvbGF0ZWRPYmplY3Q6OmNoaWxkcmVuKGJvb2wKICAgICBy
ZXR1cm4gbV9jaGlsZHJlbjsKIH0KIAordm9pZCBBWElzb2xhdGVkT2JqZWN0Ojp1cGRhdGVDaGls
ZHJlbklmTmVjZXNzYXJ5KCkKK3sKKyAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsKK30KKwogdm9p
ZCBBWElzb2xhdGVkT2JqZWN0OjpzZXRTZWxlY3RlZENoaWxkcmVuKGNvbnN0IEFjY2Vzc2liaWxp
dHlDaGlsZHJlblZlY3RvciYgc2VsZWN0ZWRDaGlsZHJlbikKIHsKICAgICBBU1NFUlQoc2VsZWN0
ZWRDaGlsZHJlbi5pc0VtcHR5KCkgfHwgKHNlbGVjdGVkQ2hpbGRyZW5bMF0gJiYgc2VsZWN0ZWRD
aGlsZHJlblswXS0+aXNBWElzb2xhdGVkT2JqZWN0SW5zdGFuY2UoKSkpOwpAQCAtNzU3LDExICs3
NjcsMTAgQEAgU1JHQkE8dWludDhfdD4gQVhJc29sYXRlZE9iamVjdDo6Y29sb3JWYWx1ZSgpIGNv
bnN0CiAgICAgcmV0dXJuIGNvbG9yQXR0cmlidXRlVmFsdWUoQVhQcm9wZXJ0eU5hbWU6OkNvbG9y
VmFsdWUpLnRvU1JHQkFMb3NzeTx1aW50OF90PigpOwogfQogCi1BWENvcmVPYmplY3QqIEFYSXNv
bGF0ZWRPYmplY3Q6OmFjY2Vzc2liaWxpdHlIaXRUZXN0KGNvbnN0IEludFBvaW50JiBwb2ludCkg
Y29uc3QKK0FYQ29yZU9iamVjdCogQVhJc29sYXRlZE9iamVjdDo6YWNjZXNzaWJpbGl0eUhpdFRl
c3QoY29uc3QgSW50UG9pbnQmIHBvaW50KQogewogICAgIEFYSUQgYXhJRCA9IEFjY2Vzc2liaWxp
dHk6OnJldHJpZXZlVmFsdWVGcm9tTWFpblRocmVhZDxBWElEPihbJnBvaW50LCB0aGlzXSAoKSAt
PiBBWElEIHsKICAgICAgICAgaWYgKGF1dG8qIG9iamVjdCA9IGFzc29jaWF0ZWRBWE9iamVjdCgp
KSB7Ci0gICAgICAgICAgICBvYmplY3QtPnVwZGF0ZUNoaWxkcmVuSWZOZWNlc3NhcnkoKTsKICAg
ICAgICAgICAgIGlmIChhdXRvKiBheE9iamVjdCA9IG9iamVjdC0+YWNjZXNzaWJpbGl0eUhpdFRl
c3QocG9pbnQpKQogICAgICAgICAgICAgICAgIHJldHVybiBheE9iamVjdC0+b2JqZWN0SUQoKTsK
ICAgICAgICAgfQpAQCAtOTYwLDYgKzk2OSwxMjcgQEAgSW50UmVjdCBBWElzb2xhdGVkT2JqZWN0
Ojpib3VuZHNGb3JSYW5nZShjb25zdCBTaW1wbGVSYW5nZSYgcmFuZ2UpIGNvbnN0CiAgICAgcmV0
dXJuIGF4T2JqZWN0ID8gYXhPYmplY3QtPmJvdW5kc0ZvclJhbmdlKHJhbmdlKSA6IEludFJlY3Qo
KTsKIH0KIAorSW50UmVjdCBBWElzb2xhdGVkT2JqZWN0Ojpib3VuZHNGb3JWaXNpYmxlUG9zaXRp
b25SYW5nZShjb25zdCBWaXNpYmxlUG9zaXRpb25SYW5nZSYpIGNvbnN0Cit7CisgICAgQVNTRVJU
X05PVF9SRUFDSEVEKCk7CisgICAgcmV0dXJuIHsgfTsKK30KKworaW50IEFYSXNvbGF0ZWRPYmpl
Y3Q6Omxlbmd0aEZvclZpc2libGVQb3NpdGlvblJhbmdlKGNvbnN0IFZpc2libGVQb3NpdGlvblJh
bmdlJikgY29uc3QKK3sKKyAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsKKyAgICByZXR1cm4gMDsK
K30KKworVmlzaWJsZVBvc2l0aW9uIEFYSXNvbGF0ZWRPYmplY3Q6OnZpc2libGVQb3NpdGlvbkZv
ckJvdW5kcyhjb25zdCBJbnRSZWN0JiwgQWNjZXNzaWJpbGl0eVZpc2libGVQb3NpdGlvbkZvckJv
dW5kcykgY29uc3QKK3sKKyAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsKKyAgICByZXR1cm4geyB9
OworfQorCitWaXNpYmxlUG9zaXRpb24gQVhJc29sYXRlZE9iamVjdDo6dmlzaWJsZVBvc2l0aW9u
Rm9yUG9pbnQoY29uc3QgSW50UG9pbnQmIHBvaW50KSBjb25zdAoreworICAgIEFTU0VSVChpc01h
aW5UaHJlYWQoKSk7CisgICAgYXV0byogYXhPYmplY3QgPSBhc3NvY2lhdGVkQVhPYmplY3QoKTsK
KyAgICByZXR1cm4gYXhPYmplY3QgPyBheE9iamVjdC0+dmlzaWJsZVBvc2l0aW9uRm9yUG9pbnQo
cG9pbnQpIDogVmlzaWJsZVBvc2l0aW9uKCk7Cit9CisKK1Zpc2libGVQb3NpdGlvbiBBWElzb2xh
dGVkT2JqZWN0OjpuZXh0VmlzaWJsZVBvc2l0aW9uKGNvbnN0IFZpc2libGVQb3NpdGlvbiYpIGNv
bnN0Cit7CisgICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7CisgICAgcmV0dXJuIHsgfTsKK30KKwor
VmlzaWJsZVBvc2l0aW9uIEFYSXNvbGF0ZWRPYmplY3Q6OnByZXZpb3VzVmlzaWJsZVBvc2l0aW9u
KGNvbnN0IFZpc2libGVQb3NpdGlvbiYpIGNvbnN0Cit7CisgICAgQVNTRVJUX05PVF9SRUFDSEVE
KCk7CisgICAgcmV0dXJuIHsgfTsKK30KKworVmlzaWJsZVBvc2l0aW9uIEFYSXNvbGF0ZWRPYmpl
Y3Q6Om5leHRXb3JkRW5kKGNvbnN0IFZpc2libGVQb3NpdGlvbiYpIGNvbnN0Cit7CisgICAgQVNT
RVJUX05PVF9SRUFDSEVEKCk7CisgICAgcmV0dXJuIHsgfTsKK30KKworVmlzaWJsZVBvc2l0aW9u
IEFYSXNvbGF0ZWRPYmplY3Q6OnByZXZpb3VzV29yZFN0YXJ0KGNvbnN0IFZpc2libGVQb3NpdGlv
biYpIGNvbnN0Cit7CisgICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7CisgICAgcmV0dXJuIHsgfTsK
K30KKworVmlzaWJsZVBvc2l0aW9uIEFYSXNvbGF0ZWRPYmplY3Q6Om5leHRMaW5lRW5kUG9zaXRp
b24oY29uc3QgVmlzaWJsZVBvc2l0aW9uJikgY29uc3QKK3sKKyAgICBBU1NFUlRfTk9UX1JFQUNI
RUQoKTsKKyAgICByZXR1cm4geyB9OworfQorCitWaXNpYmxlUG9zaXRpb24gQVhJc29sYXRlZE9i
amVjdDo6cHJldmlvdXNMaW5lU3RhcnRQb3NpdGlvbihjb25zdCBWaXNpYmxlUG9zaXRpb24mKSBj
b25zdAoreworICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgpOworICAgIHJldHVybiB7IH07Cit9CisK
K1Zpc2libGVQb3NpdGlvbiBBWElzb2xhdGVkT2JqZWN0OjpuZXh0U2VudGVuY2VFbmRQb3NpdGlv
bihjb25zdCBWaXNpYmxlUG9zaXRpb24mKSBjb25zdAoreworICAgIEFTU0VSVF9OT1RfUkVBQ0hF
RCgpOworICAgIHJldHVybiB7IH07Cit9CisKK1Zpc2libGVQb3NpdGlvbiBBWElzb2xhdGVkT2Jq
ZWN0OjpwcmV2aW91c1NlbnRlbmNlU3RhcnRQb3NpdGlvbihjb25zdCBWaXNpYmxlUG9zaXRpb24m
KSBjb25zdAoreworICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgpOworICAgIHJldHVybiB7IH07Cit9
CisKK1Zpc2libGVQb3NpdGlvbiBBWElzb2xhdGVkT2JqZWN0OjpuZXh0UGFyYWdyYXBoRW5kUG9z
aXRpb24oY29uc3QgVmlzaWJsZVBvc2l0aW9uJikgY29uc3QKK3sKKyAgICBBU1NFUlRfTk9UX1JF
QUNIRUQoKTsKKyAgICByZXR1cm4geyB9OworfQorCitWaXNpYmxlUG9zaXRpb24gQVhJc29sYXRl
ZE9iamVjdDo6cHJldmlvdXNQYXJhZ3JhcGhTdGFydFBvc2l0aW9uKGNvbnN0IFZpc2libGVQb3Np
dGlvbiYpIGNvbnN0Cit7CisgICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7CisgICAgcmV0dXJuIHsg
fTsKK30KKworVmlzaWJsZVBvc2l0aW9uIEFYSXNvbGF0ZWRPYmplY3Q6OnZpc2libGVQb3NpdGlv
bkZvckluZGV4KGludCBpbmRleCkgY29uc3QKK3sKKyAgICBBU1NFUlQoaXNNYWluVGhyZWFkKCkp
OworICAgIGF1dG8qIGF4T2JqZWN0ID0gYXNzb2NpYXRlZEFYT2JqZWN0KCk7CisgICAgcmV0dXJu
IGF4T2JqZWN0ID8gYXhPYmplY3QtPnZpc2libGVQb3NpdGlvbkZvckluZGV4KGluZGV4KSA6IFZp
c2libGVQb3NpdGlvbigpOworfQorCitpbnQgQVhJc29sYXRlZE9iamVjdDo6aW5kZXhGb3JWaXNp
YmxlUG9zaXRpb24oY29uc3QgVmlzaWJsZVBvc2l0aW9uJikgY29uc3QKK3sKKyAgICBBU1NFUlRf
Tk9UX1JFQUNIRUQoKTsKKyAgICByZXR1cm4gMDsKK30KKworQVhDb3JlT2JqZWN0KiBBWElzb2xh
dGVkT2JqZWN0OjphY2Nlc3NpYmlsaXR5T2JqZWN0Rm9yUG9zaXRpb24oY29uc3QgVmlzaWJsZVBv
c2l0aW9uJikgY29uc3QKK3sKKyAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsKKyAgICByZXR1cm4g
bnVsbHB0cjsKK30KKworUGxhaW5UZXh0UmFuZ2UgQVhJc29sYXRlZE9iamVjdDo6cGxhaW5UZXh0
UmFuZ2VGb3JWaXNpYmxlUG9zaXRpb25SYW5nZShjb25zdCBWaXNpYmxlUG9zaXRpb25SYW5nZSYp
IGNvbnN0Cit7CisgICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7CisgICAgcmV0dXJuIHsgfTsKK30K
KworaW50IEFYSXNvbGF0ZWRPYmplY3Q6OmluZGV4KGNvbnN0IFZpc2libGVQb3NpdGlvbiYpIGNv
bnN0Cit7CisgICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7CisgICAgcmV0dXJuIDA7Cit9CisKK3Zv
aWQgQVhJc29sYXRlZE9iamVjdDo6bGluZUJyZWFrcyhWZWN0b3I8aW50PiYpIGNvbnN0Cit7Cisg
ICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7Cit9CisKIFZlY3RvcjxTaW1wbGVSYW5nZT4gQVhJc29s
YXRlZE9iamVjdDo6ZmluZFRleHRSYW5nZXMoY29uc3QgQWNjZXNzaWJpbGl0eVNlYXJjaFRleHRD
cml0ZXJpYSYgY3JpdGVyaWEpIGNvbnN0CiB7CiAgICAgcmV0dXJuIEFjY2Vzc2liaWxpdHk6OnJl
dHJpZXZlVmFsdWVGcm9tTWFpblRocmVhZDxWZWN0b3I8U2ltcGxlUmFuZ2U+PihbJmNyaXRlcmlh
LCB0aGlzXSAoKSAtPiBWZWN0b3I8U2ltcGxlUmFuZ2U+IHsKQEAgLTk4OCw2ICsxMTE4LDEyIEBA
IHZvaWQgQVhJc29sYXRlZE9iamVjdDo6ZmluZE1hdGNoaW5nT2JqZWN0cyhBY2Nlc3NpYmlsaXR5
U2VhcmNoQ3JpdGVyaWEqIGNyaXRlcmlhCiAgICAgQWNjZXNzaWJpbGl0eTo6ZmluZE1hdGNoaW5n
T2JqZWN0cygqY3JpdGVyaWEsIHJlc3VsdHMpOwogfQogCitTdHJpbmcgQVhJc29sYXRlZE9iamVj
dDo6dGV4dFVuZGVyRWxlbWVudChBY2Nlc3NpYmlsaXR5VGV4dFVuZGVyRWxlbWVudE1vZGUpIGNv
bnN0Cit7CisgICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7CisgICAgcmV0dXJuIHsgfTsKK30KKwog
T3B0aW9uYWw8U2ltcGxlUmFuZ2U+IEFYSXNvbGF0ZWRPYmplY3Q6Om1pc3NwZWxsaW5nUmFuZ2Uo
Y29uc3QgU2ltcGxlUmFuZ2UmIHJhbmdlLCBBY2Nlc3NpYmlsaXR5U2VhcmNoRGlyZWN0aW9uIGRp
cmVjdGlvbikgY29uc3QKIHsKICAgICBBU1NFUlQoaXNNYWluVGhyZWFkKCkpOwpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9pc29sYXRlZHRyZWUvQVhJc29sYXRlZE9i
amVjdC5oIGIvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9pc29sYXRlZHRyZWUvQVhJc29s
YXRlZE9iamVjdC5oCmluZGV4IGZhMDNmMWI4NWM2OGM4ZDA0ZTliMWY2OGNlNmFkZTRlNDRhNGVi
ODQuLmUyM2M2YWEwNjQwNGVlZDNkNzU5MzllODgyMDU1OTE3NjQ1NmE3ZWIgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvaXNvbGF0ZWR0cmVlL0FYSXNvbGF0ZWRPYmpl
Y3QuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L2lzb2xhdGVkdHJlZS9BWElz
b2xhdGVkT2JqZWN0LmgKQEAgLTUyLDcgKzUyLDcgQEAgcHVibGljOgogCiAgICAgdm9pZCBzZXRP
YmplY3RJRChBWElEIGlkKSBvdmVycmlkZSB7IG1faWQgPSBpZDsgfQogICAgIEFYSUQgb2JqZWN0
SUQoKSBjb25zdCBvdmVycmlkZSB7IHJldHVybiBtX2lkOyB9Ci0gICAgdm9pZCBpbml0KCkgb3Zl
cnJpZGUgeyB9CisgICAgdm9pZCBpbml0KCkgb3ZlcnJpZGU7CiAKICAgICB2b2lkIGF0dGFjaFBs
YXRmb3JtV3JhcHBlcihBY2Nlc3NpYmlsaXR5T2JqZWN0V3JhcHBlciopOwogICAgIGJvb2wgaXNE
ZXRhY2hlZCgpIGNvbnN0IG92ZXJyaWRlOwpAQCAtMjQ2LDcgKzI0Niw3IEBAIHByaXZhdGU6CiAg
ICAgYm9vbCBzdXBwb3J0c0RyYWdnaW5nKCkgY29uc3Qgb3ZlcnJpZGUgeyByZXR1cm4gYm9vbEF0
dHJpYnV0ZVZhbHVlKEFYUHJvcGVydHlOYW1lOjpTdXBwb3J0c0RyYWdnaW5nKTsgfQogICAgIGJv
b2wgaXNHcmFiYmVkKCkgb3ZlcnJpZGUgeyByZXR1cm4gYm9vbEF0dHJpYnV0ZVZhbHVlKEFYUHJv
cGVydHlOYW1lOjpJc0dyYWJiZWQpOyB9CiAgICAgVmVjdG9yPFN0cmluZz4gZGV0ZXJtaW5lRHJv
cEVmZmVjdHMoKSBjb25zdCBvdmVycmlkZSB7IHJldHVybiB2ZWN0b3JBdHRyaWJ1dGVWYWx1ZTxT
dHJpbmc+KEFYUHJvcGVydHlOYW1lOjpEcm9wRWZmZWN0cyk7IH0KLSAgICBBWENvcmVPYmplY3Qq
IGFjY2Vzc2liaWxpdHlIaXRUZXN0KGNvbnN0IEludFBvaW50JikgY29uc3Qgb3ZlcnJpZGU7Cisg
ICAgQVhDb3JlT2JqZWN0KiBhY2Nlc3NpYmlsaXR5SGl0VGVzdChjb25zdCBJbnRQb2ludCYpIG92
ZXJyaWRlOwogICAgIEFYQ29yZU9iamVjdCogZm9jdXNlZFVJRWxlbWVudCgpIGNvbnN0IG92ZXJy
aWRlOwogICAgIEFYQ29yZU9iamVjdCogcGFyZW50T2JqZWN0KCkgY29uc3Qgb3ZlcnJpZGUgeyBy
ZXR1cm4gcGFyZW50T2JqZWN0VW5pZ25vcmVkKCk7IH0KICAgICBBWENvcmVPYmplY3QqIHBhcmVu
dE9iamVjdFVuaWdub3JlZCgpIGNvbnN0IG92ZXJyaWRlOwpAQCAtMzM4LDcgKzMzOCw3IEBAIHBy
aXZhdGU6CiAgICAgYm9vbCBoYXNBUklBVmFsdWVOb3coKSBjb25zdCBvdmVycmlkZSB7IHJldHVy
biBib29sQXR0cmlidXRlVmFsdWUoQVhQcm9wZXJ0eU5hbWU6Okhhc0FSSUFWYWx1ZU5vdyk7IH0K
ICAgICBTdHJpbmcgdGFnTmFtZSgpIGNvbnN0IG92ZXJyaWRlIHsgcmV0dXJuIHN0cmluZ0F0dHJp
YnV0ZVZhbHVlKEFYUHJvcGVydHlOYW1lOjpUYWdOYW1lKTsgfQogICAgIGNvbnN0IEFjY2Vzc2li
aWxpdHlDaGlsZHJlblZlY3RvciYgY2hpbGRyZW4oYm9vbCB1cGRhdGVDaGlsZHJlbklmTmVlZGVk
ID0gdHJ1ZSkgb3ZlcnJpZGU7Ci0gICAgdm9pZCB1cGRhdGVDaGlsZHJlbklmTmVjZXNzYXJ5KCkg
b3ZlcnJpZGUgeyB9CisgICAgdm9pZCB1cGRhdGVDaGlsZHJlbklmTmVjZXNzYXJ5KCkgb3ZlcnJp
ZGU7CiAgICAgYm9vbCBpc0RldGFjaGVkRnJvbVBhcmVudCgpIG92ZXJyaWRlOwogICAgIGJvb2wg
c3VwcG9ydHNMaXZlUmVnaW9uKGJvb2wgPSB0cnVlKSBjb25zdCBvdmVycmlkZSB7IHJldHVybiBi
b29sQXR0cmlidXRlVmFsdWUoQVhQcm9wZXJ0eU5hbWU6OlN1cHBvcnRzTGl2ZVJlZ2lvbik7IH0K
ICAgICBib29sIGlzSW5zaWRlTGl2ZVJlZ2lvbihib29sID0gdHJ1ZSkgY29uc3Qgb3ZlcnJpZGUg
eyByZXR1cm4gYm9vbEF0dHJpYnV0ZVZhbHVlKEFYUHJvcGVydHlOYW1lOjpJc0luc2lkZUxpdmVS
ZWdpb24pOyB9CkBAIC00MDAsMjkgKzQwMCwyOSBAQCBwcml2YXRlOgogICAgIFZpc2libGVQb3Np
dGlvblJhbmdlIGxpbmVSYW5nZUZvclBvc2l0aW9uKGNvbnN0IFZpc2libGVQb3NpdGlvbiYpIGNv
bnN0IG92ZXJyaWRlOwogICAgIE9wdGlvbmFsPFNpbXBsZVJhbmdlPiByYW5nZUZvclBsYWluVGV4
dFJhbmdlKGNvbnN0IFBsYWluVGV4dFJhbmdlJikgY29uc3Qgb3ZlcnJpZGU7CiAgICAgU3RyaW5n
IHN0cmluZ0ZvclJhbmdlKGNvbnN0IFNpbXBsZVJhbmdlJikgY29uc3Qgb3ZlcnJpZGU7Ci0gICAg
SW50UmVjdCBib3VuZHNGb3JWaXNpYmxlUG9zaXRpb25SYW5nZShjb25zdCBWaXNpYmxlUG9zaXRp
b25SYW5nZSYpIGNvbnN0IG92ZXJyaWRlIHsgcmV0dXJuIEludFJlY3QoKTsgfQorICAgIEludFJl
Y3QgYm91bmRzRm9yVmlzaWJsZVBvc2l0aW9uUmFuZ2UoY29uc3QgVmlzaWJsZVBvc2l0aW9uUmFu
Z2UmKSBjb25zdCBvdmVycmlkZTsKICAgICBJbnRSZWN0IGJvdW5kc0ZvclJhbmdlKGNvbnN0IFNp
bXBsZVJhbmdlJikgY29uc3Qgb3ZlcnJpZGU7Ci0gICAgaW50IGxlbmd0aEZvclZpc2libGVQb3Np
dGlvblJhbmdlKGNvbnN0IFZpc2libGVQb3NpdGlvblJhbmdlJikgY29uc3Qgb3ZlcnJpZGUgeyBy
ZXR1cm4gMDsgfQotICAgIFZpc2libGVQb3NpdGlvbiB2aXNpYmxlUG9zaXRpb25Gb3JCb3VuZHMo
Y29uc3QgSW50UmVjdCYsIEFjY2Vzc2liaWxpdHlWaXNpYmxlUG9zaXRpb25Gb3JCb3VuZHMpIGNv
bnN0IG92ZXJyaWRlIHsgcmV0dXJuIFZpc2libGVQb3NpdGlvbigpOyB9Ci0gICAgVmlzaWJsZVBv
c2l0aW9uIHZpc2libGVQb3NpdGlvbkZvclBvaW50KGNvbnN0IEludFBvaW50JikgY29uc3Qgb3Zl
cnJpZGUgeyByZXR1cm4gVmlzaWJsZVBvc2l0aW9uKCk7IH0KLSAgICBWaXNpYmxlUG9zaXRpb24g
bmV4dFZpc2libGVQb3NpdGlvbihjb25zdCBWaXNpYmxlUG9zaXRpb24mKSBjb25zdCBvdmVycmlk
ZSB7IHJldHVybiBWaXNpYmxlUG9zaXRpb24oKTsgfQotICAgIFZpc2libGVQb3NpdGlvbiBwcmV2
aW91c1Zpc2libGVQb3NpdGlvbihjb25zdCBWaXNpYmxlUG9zaXRpb24mKSBjb25zdCBvdmVycmlk
ZSB7IHJldHVybiBWaXNpYmxlUG9zaXRpb24oKTsgfQotICAgIFZpc2libGVQb3NpdGlvbiBuZXh0
V29yZEVuZChjb25zdCBWaXNpYmxlUG9zaXRpb24mKSBjb25zdCBvdmVycmlkZSB7IHJldHVybiBW
aXNpYmxlUG9zaXRpb24oKTsgfQotICAgIFZpc2libGVQb3NpdGlvbiBwcmV2aW91c1dvcmRTdGFy
dChjb25zdCBWaXNpYmxlUG9zaXRpb24mKSBjb25zdCBvdmVycmlkZSB7IHJldHVybiBWaXNpYmxl
UG9zaXRpb24oKTsgfQotICAgIFZpc2libGVQb3NpdGlvbiBuZXh0TGluZUVuZFBvc2l0aW9uKGNv
bnN0IFZpc2libGVQb3NpdGlvbiYpIGNvbnN0IG92ZXJyaWRlIHsgcmV0dXJuIFZpc2libGVQb3Np
dGlvbigpOyB9Ci0gICAgVmlzaWJsZVBvc2l0aW9uIHByZXZpb3VzTGluZVN0YXJ0UG9zaXRpb24o
Y29uc3QgVmlzaWJsZVBvc2l0aW9uJikgY29uc3Qgb3ZlcnJpZGUgeyByZXR1cm4gVmlzaWJsZVBv
c2l0aW9uKCk7IH0KLSAgICBWaXNpYmxlUG9zaXRpb24gbmV4dFNlbnRlbmNlRW5kUG9zaXRpb24o
Y29uc3QgVmlzaWJsZVBvc2l0aW9uJikgY29uc3Qgb3ZlcnJpZGUgeyByZXR1cm4gVmlzaWJsZVBv
c2l0aW9uKCk7IH0KLSAgICBWaXNpYmxlUG9zaXRpb24gcHJldmlvdXNTZW50ZW5jZVN0YXJ0UG9z
aXRpb24oY29uc3QgVmlzaWJsZVBvc2l0aW9uJikgY29uc3Qgb3ZlcnJpZGUgeyByZXR1cm4gVmlz
aWJsZVBvc2l0aW9uKCk7IH0KLSAgICBWaXNpYmxlUG9zaXRpb24gbmV4dFBhcmFncmFwaEVuZFBv
c2l0aW9uKGNvbnN0IFZpc2libGVQb3NpdGlvbiYpIGNvbnN0IG92ZXJyaWRlIHsgcmV0dXJuIFZp
c2libGVQb3NpdGlvbigpOyB9Ci0gICAgVmlzaWJsZVBvc2l0aW9uIHByZXZpb3VzUGFyYWdyYXBo
U3RhcnRQb3NpdGlvbihjb25zdCBWaXNpYmxlUG9zaXRpb24mKSBjb25zdCBvdmVycmlkZSB7IHJl
dHVybiBWaXNpYmxlUG9zaXRpb24oKTsgfQorICAgIGludCBsZW5ndGhGb3JWaXNpYmxlUG9zaXRp
b25SYW5nZShjb25zdCBWaXNpYmxlUG9zaXRpb25SYW5nZSYpIGNvbnN0IG92ZXJyaWRlOworICAg
IFZpc2libGVQb3NpdGlvbiB2aXNpYmxlUG9zaXRpb25Gb3JCb3VuZHMoY29uc3QgSW50UmVjdCYs
IEFjY2Vzc2liaWxpdHlWaXNpYmxlUG9zaXRpb25Gb3JCb3VuZHMpIGNvbnN0IG92ZXJyaWRlOwor
ICAgIFZpc2libGVQb3NpdGlvbiB2aXNpYmxlUG9zaXRpb25Gb3JQb2ludChjb25zdCBJbnRQb2lu
dCYpIGNvbnN0IG92ZXJyaWRlOworICAgIFZpc2libGVQb3NpdGlvbiBuZXh0VmlzaWJsZVBvc2l0
aW9uKGNvbnN0IFZpc2libGVQb3NpdGlvbiYpIGNvbnN0IG92ZXJyaWRlOworICAgIFZpc2libGVQ
b3NpdGlvbiBwcmV2aW91c1Zpc2libGVQb3NpdGlvbihjb25zdCBWaXNpYmxlUG9zaXRpb24mKSBj
b25zdCBvdmVycmlkZTsKKyAgICBWaXNpYmxlUG9zaXRpb24gbmV4dFdvcmRFbmQoY29uc3QgVmlz
aWJsZVBvc2l0aW9uJikgY29uc3Qgb3ZlcnJpZGU7CisgICAgVmlzaWJsZVBvc2l0aW9uIHByZXZp
b3VzV29yZFN0YXJ0KGNvbnN0IFZpc2libGVQb3NpdGlvbiYpIGNvbnN0IG92ZXJyaWRlOworICAg
IFZpc2libGVQb3NpdGlvbiBuZXh0TGluZUVuZFBvc2l0aW9uKGNvbnN0IFZpc2libGVQb3NpdGlv
biYpIGNvbnN0IG92ZXJyaWRlOworICAgIFZpc2libGVQb3NpdGlvbiBwcmV2aW91c0xpbmVTdGFy
dFBvc2l0aW9uKGNvbnN0IFZpc2libGVQb3NpdGlvbiYpIGNvbnN0IG92ZXJyaWRlOworICAgIFZp
c2libGVQb3NpdGlvbiBuZXh0U2VudGVuY2VFbmRQb3NpdGlvbihjb25zdCBWaXNpYmxlUG9zaXRp
b24mKSBjb25zdCBvdmVycmlkZTsKKyAgICBWaXNpYmxlUG9zaXRpb24gcHJldmlvdXNTZW50ZW5j
ZVN0YXJ0UG9zaXRpb24oY29uc3QgVmlzaWJsZVBvc2l0aW9uJikgY29uc3Qgb3ZlcnJpZGU7Cisg
ICAgVmlzaWJsZVBvc2l0aW9uIG5leHRQYXJhZ3JhcGhFbmRQb3NpdGlvbihjb25zdCBWaXNpYmxl
UG9zaXRpb24mKSBjb25zdCBvdmVycmlkZTsKKyAgICBWaXNpYmxlUG9zaXRpb24gcHJldmlvdXNQ
YXJhZ3JhcGhTdGFydFBvc2l0aW9uKGNvbnN0IFZpc2libGVQb3NpdGlvbiYpIGNvbnN0IG92ZXJy
aWRlOwogICAgIFZpc2libGVQb3NpdGlvbiB2aXNpYmxlUG9zaXRpb25Gb3JJbmRleCh1bnNpZ25l
ZCwgYm9vbCBsYXN0SW5kZXhPSykgY29uc3Qgb3ZlcnJpZGU7Ci0gICAgVmlzaWJsZVBvc2l0aW9u
IHZpc2libGVQb3NpdGlvbkZvckluZGV4KGludCkgY29uc3Qgb3ZlcnJpZGUgeyByZXR1cm4gVmlz
aWJsZVBvc2l0aW9uKCk7IH0KLSAgICBpbnQgaW5kZXhGb3JWaXNpYmxlUG9zaXRpb24oY29uc3Qg
VmlzaWJsZVBvc2l0aW9uJikgY29uc3Qgb3ZlcnJpZGUgeyByZXR1cm4gMDsgfQotICAgIEFYQ29y
ZU9iamVjdCogYWNjZXNzaWJpbGl0eU9iamVjdEZvclBvc2l0aW9uKGNvbnN0IFZpc2libGVQb3Np
dGlvbiYpIGNvbnN0IG92ZXJyaWRlIHsgcmV0dXJuIG51bGxwdHI7IH0KKyAgICBWaXNpYmxlUG9z
aXRpb24gdmlzaWJsZVBvc2l0aW9uRm9ySW5kZXgoaW50KSBjb25zdCBvdmVycmlkZTsKKyAgICBp
bnQgaW5kZXhGb3JWaXNpYmxlUG9zaXRpb24oY29uc3QgVmlzaWJsZVBvc2l0aW9uJikgY29uc3Qg
b3ZlcnJpZGU7CisgICAgQVhDb3JlT2JqZWN0KiBhY2Nlc3NpYmlsaXR5T2JqZWN0Rm9yUG9zaXRp
b24oY29uc3QgVmlzaWJsZVBvc2l0aW9uJikgY29uc3Qgb3ZlcnJpZGU7CiAgICAgaW50IGxpbmVG
b3JQb3NpdGlvbihjb25zdCBWaXNpYmxlUG9zaXRpb24mKSBjb25zdCBvdmVycmlkZTsKLSAgICBQ
bGFpblRleHRSYW5nZSBwbGFpblRleHRSYW5nZUZvclZpc2libGVQb3NpdGlvblJhbmdlKGNvbnN0
IFZpc2libGVQb3NpdGlvblJhbmdlJikgY29uc3Qgb3ZlcnJpZGUgeyByZXR1cm4gUGxhaW5UZXh0
UmFuZ2UoKTsgfQotICAgIGludCBpbmRleChjb25zdCBWaXNpYmxlUG9zaXRpb24mKSBjb25zdCBv
dmVycmlkZSB7IHJldHVybiAwOyB9Ci0gICAgdm9pZCBsaW5lQnJlYWtzKFZlY3RvcjxpbnQ+Jikg
Y29uc3Qgb3ZlcnJpZGUgeyB9CisgICAgUGxhaW5UZXh0UmFuZ2UgcGxhaW5UZXh0UmFuZ2VGb3JW
aXNpYmxlUG9zaXRpb25SYW5nZShjb25zdCBWaXNpYmxlUG9zaXRpb25SYW5nZSYpIGNvbnN0IG92
ZXJyaWRlOworICAgIGludCBpbmRleChjb25zdCBWaXNpYmxlUG9zaXRpb24mKSBjb25zdCBvdmVy
cmlkZTsKKyAgICB2b2lkIGxpbmVCcmVha3MoVmVjdG9yPGludD4mKSBjb25zdCBvdmVycmlkZTsK
IAogICAgIC8vIEF0dHJpYnV0ZSBzZXR0ZXJzLgogICAgIHZvaWQgc2V0QVJJQUdyYWJiZWQoYm9v
bCkgb3ZlcnJpZGU7CkBAIC00MzksOCArNDM5LDcgQEAgcHJpdmF0ZToKICNlbmRpZgogICAgIHZv
aWQgc2V0UHJldmVudEtleWJvYXJkRE9NRXZlbnREaXNwYXRjaChib29sKSBvdmVycmlkZTsKIAot
ICAgIC8vIFRPRE86IEZ1bmN0aW9ucwotICAgIFN0cmluZyB0ZXh0VW5kZXJFbGVtZW50KEFjY2Vz
c2liaWxpdHlUZXh0VW5kZXJFbGVtZW50TW9kZSA9IEFjY2Vzc2liaWxpdHlUZXh0VW5kZXJFbGVt
ZW50TW9kZSgpKSBjb25zdCBvdmVycmlkZSB7IHJldHVybiBTdHJpbmcoKTsgfQorICAgIFN0cmlu
ZyB0ZXh0VW5kZXJFbGVtZW50KEFjY2Vzc2liaWxpdHlUZXh0VW5kZXJFbGVtZW50TW9kZSA9IEFj
Y2Vzc2liaWxpdHlUZXh0VW5kZXJFbGVtZW50TW9kZSgpKSBjb25zdCBvdmVycmlkZTsKICAgICBP
cHRpb25hbDxTaW1wbGVSYW5nZT4gbWlzc3BlbGxpbmdSYW5nZShjb25zdCBTaW1wbGVSYW5nZSYs
IEFjY2Vzc2liaWxpdHlTZWFyY2hEaXJlY3Rpb24pIGNvbnN0IG92ZXJyaWRlOwogICAgIEZsb2F0
UmVjdCBjb252ZXJ0RnJhbWVUb1NwYWNlKGNvbnN0IEZsb2F0UmVjdCYsIEFjY2Vzc2liaWxpdHlD
b252ZXJzaW9uU3BhY2UpIGNvbnN0IG92ZXJyaWRlOwogICAgIHZvaWQgaW5jcmVtZW50KCkgb3Zl
cnJpZGU7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L21hYy9BY2Nl
c3NpYmlsaXR5T2JqZWN0QmFzZS5tbSBiL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvbWFj
L0FjY2Vzc2liaWxpdHlPYmplY3RCYXNlLm1tCmluZGV4IDAxOGM2YjgxMTMyYjY4MzBhM2Q2ZDQ2
MzgwMGQ2NWNmZTllNTBlNzQuLjdmZWM1ZTM0N2RiOTM0Mzk1ODE2MjBmNDljMTFmMGVlNGQyMDNh
MjQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvbWFjL0FjY2Vzc2li
aWxpdHlPYmplY3RCYXNlLm1tCisrKyBiL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvbWFj
L0FjY2Vzc2liaWxpdHlPYmplY3RCYXNlLm1tCkBAIC0xNDcsNiArMTQ3LDE0IEBAIFN0cmluZyBB
Y2Nlc3NpYmlsaXR5T2JqZWN0Ojp0aXRsZUF0dHJpYnV0ZVZhbHVlKCkgY29uc3QKICAgICBpZiAo
cm9sZVZhbHVlKCkgPT0gQWNjZXNzaWJpbGl0eVJvbGU6OlN0YXRpY1RleHQpCiAgICAgICAgIHJl
dHVybiBTdHJpbmcoKTsKIAorICAgIC8vIE1ldGVyIGVsZW1lbnRzIHNob3VsZCBjb21tdW5pY2F0
ZSB0aGVpciBjb250ZW50IHZpYSBBWFZhbHVlRGVzY3JpcHRpb24uCisgICAgaWYgKGlzTWV0ZXIo
KSkKKyAgICAgICAgcmV0dXJuIHsgfTsKKworICAgIC8vIFN1bW1hcnkgZWxlbWVudCBzaG91bGQg
dXNlIGl0cyB0ZXh0IG5vZGUgYXMgQVhUaXRsZS4KKyAgICBpZiAoaXNTdW1tYXJ5KCkpCisgICAg
ICAgIHJldHVybiB0ZXh0VW5kZXJFbGVtZW50KCk7CisKICAgICAvLyBBIGZpbGUgdXBsb2FkIGJ1
dHRvbiBwcmVzZW50cyBhIGNoYWxsZW5nZSBiZWNhdXNlIGl0IGhhcyBidXR0b24gdGV4dCBhbmQg
YSB2YWx1ZSwgYnV0IHRoZQogICAgIC8vIEFQSSBkb2Vzbid0IHN1cHBvcnQgdGhpcyBwYXJhZGln
bS4KICAgICAvLyBUaGUgY29tcHJvbWlzZSBpcyB0byByZXR1cm4gdGhlIGJ1dHRvbiB0eXBlIGlu
IHRoZSByb2xlIGRlc2NyaXB0aW9uIGFuZCB0aGUgdmFsdWUgb2YgdGhlIGZpbGUgcGF0aCBpbiB0
aGUgdGl0bGUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvbWFjL1dl
YkFjY2Vzc2liaWxpdHlPYmplY3RXcmFwcGVyQmFzZS5oIGIvU291cmNlL1dlYkNvcmUvYWNjZXNz
aWJpbGl0eS9tYWMvV2ViQWNjZXNzaWJpbGl0eU9iamVjdFdyYXBwZXJCYXNlLmgKaW5kZXggZTcy
ODE4MTQzOGU2MGRiY2QxNjRhYzU1NTUwNTVjOGE3NjEyMmM3Ni4uZmE3YTNjYjhjODVmYTgxOGFi
MWZjZWQ0MjdjMDBiZDUyNjVlYWYyMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYWNjZXNz
aWJpbGl0eS9tYWMvV2ViQWNjZXNzaWJpbGl0eU9iamVjdFdyYXBwZXJCYXNlLmgKKysrIGIvU291
cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9tYWMvV2ViQWNjZXNzaWJpbGl0eU9iamVjdFdyYXBw
ZXJCYXNlLmgKQEAgLTY5LDcgKzY5LDYgQEAgY2xhc3MgVmlzaWJsZVBvc2l0aW9uOwogLSAoV2Vi
Q29yZTo6QVhDb3JlT2JqZWN0KilheEJhY2tpbmdPYmplY3Q7CiAKIC8vIFRoZXNlIGFyZSBwcmUt
Zml4ZWQgd2l0aCBiYXNlIHNvIHRoYXQgQXBwS2l0IGRvZXMgbm90IGVuZCB1cCBjYWxsaW5nIGlu
dG8gdGhlc2UgZGlyZWN0bHkgKGJ5cGFzc2luZyBzYWZldHkgY2hlY2tzKS4KLS0gKE5TU3RyaW5n
ICopYmFzZUFjY2Vzc2liaWxpdHlUaXRsZTsKIC0gKE5TU3RyaW5nICopYmFzZUFjY2Vzc2liaWxp
dHlEZXNjcmlwdGlvbjsKIC0gKE5TU3RyaW5nICopYmFzZUFjY2Vzc2liaWxpdHlIZWxwVGV4dDsK
IC0gKE5TQXJyYXk8TlNTdHJpbmcgKj4gKiliYXNlQWNjZXNzaWJpbGl0eVNwZWVjaEhpbnQ7CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L21hYy9XZWJBY2Nlc3NpYmls
aXR5T2JqZWN0V3JhcHBlckJhc2UubW0gYi9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L21h
Yy9XZWJBY2Nlc3NpYmlsaXR5T2JqZWN0V3JhcHBlckJhc2UubW0KaW5kZXggNWZiZTlmOTc1M2Y3
MGY2MTlkM2ZiZDRiZTU1NjJhN2M1N2Y4ODY0My4uYWNhYmZhMmM0N2JhMGMyZDExYTgyN2IyOTYw
N2RjZmVmNzZkZWMwOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9t
YWMvV2ViQWNjZXNzaWJpbGl0eU9iamVjdFdyYXBwZXJCYXNlLm1tCisrKyBiL1NvdXJjZS9XZWJD
b3JlL2FjY2Vzc2liaWxpdHkvbWFjL1dlYkFjY2Vzc2liaWxpdHlPYmplY3RXcmFwcGVyQmFzZS5t
bQpAQCAtMzM5LDEzICszMzksNiBAQCBOU0FycmF5ICpjb252ZXJ0VG9OU0FycmF5KGNvbnN0IFdl
YkNvcmU6OkFYQ29yZU9iamVjdDo6QWNjZXNzaWJpbGl0eUNoaWxkcmVuVmVjdAogICAgIHJldHVy
biBuaWw7CiB9CiAKLS8vIFRoaXMgc2hvdWxkIGJlIHRoZSAidmlzaWJsZSIgdGV4dCB0aGF0J3Mg
YWN0dWFsbHkgb24gdGhlIHNjcmVlbiBpZiBwb3NzaWJsZS4KLS8vIElmIHRoZXJlJ3MgYWx0ZXJu
YXRpdmUgdGV4dCwgdGhhdCBjYW4gb3ZlcnJpZGUgdGhlIHRpdGxlLgotLSAoTlNTdHJpbmcgKili
YXNlQWNjZXNzaWJpbGl0eVRpdGxlCi17Ci0gICAgcmV0dXJuIHNlbGYuYXhCYWNraW5nT2JqZWN0
LT50aXRsZUF0dHJpYnV0ZVZhbHVlKCk7Ci19Ci0KIC0gKFdlYkNvcmU6OkFYQ29yZU9iamVjdCop
YXhCYWNraW5nT2JqZWN0CiB7CiAjaWYgRU5BQkxFKEFDQ0VTU0lCSUxJVFlfSVNPTEFURURfVFJF
RSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvbWFjL1dlYkFjY2Vz
c2liaWxpdHlPYmplY3RXcmFwcGVyTWFjLm1tIGIvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0
eS9tYWMvV2ViQWNjZXNzaWJpbGl0eU9iamVjdFdyYXBwZXJNYWMubW0KaW5kZXggMzA5Mzc0NGZi
YmY1ZGUwOGM1NWY2MGNhNGMzNmQ4NjUzMjQ1NjNhNi4uNjdlM2NiZjE5MWEzZDgwMmY0OGFjZWIw
MTk0NmZlNzQyYzUxZjExYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0
eS9tYWMvV2ViQWNjZXNzaWJpbGl0eU9iamVjdFdyYXBwZXJNYWMubW0KKysrIGIvU291cmNlL1dl
YkNvcmUvYWNjZXNzaWJpbGl0eS9tYWMvV2ViQWNjZXNzaWJpbGl0eU9iamVjdFdyYXBwZXJNYWMu
bW0KQEAgLTIzMjQsMTUgKzIzMjQsNyBAQCBBTExPV19ERVBSRUNBVEVEX0lNUExFTUVOVEFUSU9O
U19FTkQKICAgICAgICAgICAgICAgICByZXR1cm4gW1tzZWxmIGF0dGFjaG1lbnRWaWV3XSBhY2Nl
c3NpYmlsaXR5QXR0cmlidXRlVmFsdWU6TlNBY2Nlc3NpYmlsaXR5VGl0bGVBdHRyaWJ1dGVdOwog
ICAgICAgICB9CiAKLSAgICAgICAgLy8gTWV0ZXIgZWxlbWVudHMgc2hvdWxkIGNvbW11bmljYXRl
IHRoZWlyIGNvbnRlbnQgdmlhIEFYVmFsdWVEZXNjcmlwdGlvbi4KLSAgICAgICAgaWYgKGJhY2tp
bmdPYmplY3QtPmlzTWV0ZXIoKSkKLSAgICAgICAgICAgIHJldHVybiBbTlNTdHJpbmcgc3RyaW5n
XTsKLQotICAgICAgICAvLyBTdW1tYXJ5IGVsZW1lbnQgc2hvdWxkIHVzZSBpdHMgdGV4dCBub2Rl
IGFzIEFYVGl0bGUuCi0gICAgICAgIGlmIChiYWNraW5nT2JqZWN0LT5pc1N1bW1hcnkoKSkKLSAg
ICAgICAgICAgIHJldHVybiBiYWNraW5nT2JqZWN0LT50ZXh0VW5kZXJFbGVtZW50KCk7Ci0KLSAg
ICAgICAgcmV0dXJuIFtzZWxmIGJhc2VBY2Nlc3NpYmlsaXR5VGl0bGVdOworICAgICAgICByZXR1
cm4gYmFja2luZ09iamVjdC0+dGl0bGVBdHRyaWJ1dGVWYWx1ZSgpOwogICAgIH0KIAogICAgIGlm
IChbYXR0cmlidXRlTmFtZSBpc0VxdWFsVG9TdHJpbmc6IE5TQWNjZXNzaWJpbGl0eURlc2NyaXB0
aW9uQXR0cmlidXRlXSkgewpAQCAtMjk4NCw3ICsyOTc2LDYgQEAgQUxMT1dfREVQUkVDQVRFRF9J
TVBMRU1FTlRBVElPTlNfRU5ECiAgICAgaWYgKCFiYWNraW5nT2JqZWN0KQogICAgICAgICByZXR1
cm4gbmlsOwogCi0gICAgYmFja2luZ09iamVjdC0+dXBkYXRlQ2hpbGRyZW5JZk5lY2Vzc2FyeSgp
OwogICAgIEFYQ29yZU9iamVjdCogYXhPYmplY3QgPSBiYWNraW5nT2JqZWN0LT5hY2Nlc3NpYmls
aXR5SGl0VGVzdChJbnRQb2ludChwb2ludCkpOwogCiAgICAgaWYgKGF4T2JqZWN0KSB7CkBAIC00
MDA4LDEzICszOTk5LDcgQEAgQUxMT1dfREVQUkVDQVRFRF9JTVBMRU1FTlRBVElPTlNfRU5ECiAg
ICAgICAgICAgICBpZiAoIWJhY2tpbmdPYmplY3QpCiAgICAgICAgICAgICAgICAgcmV0dXJuIG5p
bDsKIAotICAgICAgICAgICAgYXV0byogY2FjaGUgPSBiYWNraW5nT2JqZWN0LT5heE9iamVjdENh
Y2hlKCk7Ci0gICAgICAgICAgICBpZiAoIWNhY2hlKQotICAgICAgICAgICAgICAgIHJldHVybiBu
aWw7Ci0KLSAgICAgICAgICAgIENoYXJhY3Rlck9mZnNldCBjaGFyYWN0ZXJPZmZzZXQgPSBjYWNo
ZS0+Y2hhcmFjdGVyT2Zmc2V0Rm9yUG9pbnQod2ViQ29yZVBvaW50LCBiYWNraW5nT2JqZWN0KTsK
LQotICAgICAgICAgICAgcmV0dXJuIChpZCl0ZXh0TWFya2VyRm9yQ2hhcmFjdGVyT2Zmc2V0KGNh
Y2hlLCBjaGFyYWN0ZXJPZmZzZXQpOworICAgICAgICAgICAgcmV0dXJuIChpZCl0ZXh0TWFya2Vy
Rm9yVmlzaWJsZVBvc2l0aW9uKGJhY2tpbmdPYmplY3QtPmF4T2JqZWN0Q2FjaGUoKSwgYmFja2lu
Z09iamVjdC0+dmlzaWJsZVBvc2l0aW9uRm9yUG9pbnQod2ViQ29yZVBvaW50KSk7CiAgICAgICAg
IH0pOwogICAgIH0KIAo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>416156</attachid>
            <date>2020-12-14 07:39:59 -0800</date>
            <delta_ts>2020-12-14 10:59:59 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-219807-20201214103958.patch</filename>
            <type>text/plain</type>
            <size>21938</size>
            <attacher name="Andres Gonzalez">andresg_22</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjcwNzA3CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNWY3MGM0MGI3YWEwZDg5
OWY4NzhlZjdlMTg2MjliODI5YjlhNmJmMy4uZTdiMmY4ZTg5NzRmNjEzNDU3Y2FiNTFjNzdhNTQ3
MzE4NDVlZjc1ZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDYxIEBACisyMDIwLTEyLTExICBBbmRy
ZXMgR29uemFsZXogIDxhbmRyZXNnXzIyQGFwcGxlLmNvbT4KKworICAgICAgICBGaXggZm9yIGFj
Y2Vzc2liaWxpdHkgbGF5b3V0IHRlc3RzIHJlbGF0ZWQgdG8gVmlzaWJsZVBvc2l0aW9ucyBpbiBp
c29sYXRlZCB0cmVlIG1vZGUuCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3df
YnVnLmNnaT9pZD0yMTk4MDcKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4K
KworICAgICAgICBUZXN0czoKKyAgICAgICAgYWNjZXNzaWJpbGl0eS9tYWMvbGluZS1yYW5nZS1m
b3ItdGV4dC1tYXJrZXIuaHRtbAorICAgICAgICBhY2Nlc3NpYmlsaXR5L21hYy92aXNpYmxlLXBv
c2l0aW9uLWNyYXNoLWZvci10ZXh0LW5vZGUuaHRtbAorCisgICAgICAgIC0gTW92ZWQgcmVtYWlu
aW5nIHVuaW1wbGVtZW50ZWQgQVhJc29sYXRlZE9iamVjdCBtZXRob2RzIGZyb20gdGhlIGhlYWRl
cgorICAgICAgICB0byB0aGUgY3BwIGZpbGUgYW5kIGFkZGVkIEFTU0VSVF9OT1RfUkVBQ0hFRCB3
aGVyZSBwZXJ0aW5lbnQuIFRoaXMgd2lsbAorICAgICAgICBhbGxvdyB0byBpZGVudGlmeSBhbnkg
bWV0aG9kIHRoYXQgbmVlZHMgaW1wbGVtZW50YXRpb24uCisgICAgICAgIC0gSW1wbGVtZW50ZWQg
dGhlIG5lY2Vzc2FyeSBWaXNpYmxlUG9zaXRpb24gbWV0aG9kcy4KKyAgICAgICAgLSBDbGVhbmVk
IHVwIGFuZCBzaW1wbGlmaWVkIHBsYXRmb3JtIGNvZGUgYnkgY2FsbGluZyBkaXJlY3RseSBpbnRv
CisgICAgICAgIEFYQ29yZU9iamVjdCBtZXRob2RzIGluc3RlYWQgb2YgdW5uZWNlc3Nhcnkgd3Jh
cHBlcnMuCisKKyAgICAgICAgKiBhY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlPYmplY3RJbnRl
cmZhY2UuaDoKKyAgICAgICAgKiBhY2Nlc3NpYmlsaXR5L2lvcy9XZWJBY2Nlc3NpYmlsaXR5T2Jq
ZWN0V3JhcHBlcklPUy5tbToKKyAgICAgICAgKC1bV2ViQWNjZXNzaWJpbGl0eU9iamVjdFdyYXBw
ZXIgYWNjZXNzaWJpbGl0eUxhYmVsXSk6CisgICAgICAgICogYWNjZXNzaWJpbGl0eS9pc29sYXRl
ZHRyZWUvQVhJc29sYXRlZE9iamVjdC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpBWElzb2xhdGVk
T2JqZWN0Ojppbml0KToKKyAgICAgICAgKFdlYkNvcmU6OkFYSXNvbGF0ZWRPYmplY3Q6OnVwZGF0
ZUNoaWxkcmVuSWZOZWNlc3NhcnkpOgorICAgICAgICAoV2ViQ29yZTo6QVhJc29sYXRlZE9iamVj
dDo6YWNjZXNzaWJpbGl0eUhpdFRlc3QpOgorICAgICAgICAoV2ViQ29yZTo6QVhJc29sYXRlZE9i
amVjdDo6Ym91bmRzRm9yVmlzaWJsZVBvc2l0aW9uUmFuZ2UgY29uc3QpOgorICAgICAgICAoV2Vi
Q29yZTo6QVhJc29sYXRlZE9iamVjdDo6bGVuZ3RoRm9yVmlzaWJsZVBvc2l0aW9uUmFuZ2UgY29u
c3QpOgorICAgICAgICAoV2ViQ29yZTo6QVhJc29sYXRlZE9iamVjdDo6dmlzaWJsZVBvc2l0aW9u
Rm9yQm91bmRzIGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6OkFYSXNvbGF0ZWRPYmplY3Q6OnZp
c2libGVQb3NpdGlvbkZvclBvaW50IGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6OkFYSXNvbGF0
ZWRPYmplY3Q6Om5leHRWaXNpYmxlUG9zaXRpb24gY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6
QVhJc29sYXRlZE9iamVjdDo6cHJldmlvdXNWaXNpYmxlUG9zaXRpb24gY29uc3QpOgorICAgICAg
ICAoV2ViQ29yZTo6QVhJc29sYXRlZE9iamVjdDo6bmV4dFdvcmRFbmQgY29uc3QpOgorICAgICAg
ICAoV2ViQ29yZTo6QVhJc29sYXRlZE9iamVjdDo6cHJldmlvdXNXb3JkU3RhcnQgY29uc3QpOgor
ICAgICAgICAoV2ViQ29yZTo6QVhJc29sYXRlZE9iamVjdDo6bmV4dExpbmVFbmRQb3NpdGlvbiBj
b25zdCk6CisgICAgICAgIChXZWJDb3JlOjpBWElzb2xhdGVkT2JqZWN0OjpwcmV2aW91c0xpbmVT
dGFydFBvc2l0aW9uIGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6OkFYSXNvbGF0ZWRPYmplY3Q6
Om5leHRTZW50ZW5jZUVuZFBvc2l0aW9uIGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6OkFYSXNv
bGF0ZWRPYmplY3Q6OnByZXZpb3VzU2VudGVuY2VTdGFydFBvc2l0aW9uIGNvbnN0KToKKyAgICAg
ICAgKFdlYkNvcmU6OkFYSXNvbGF0ZWRPYmplY3Q6Om5leHRQYXJhZ3JhcGhFbmRQb3NpdGlvbiBj
b25zdCk6CisgICAgICAgIChXZWJDb3JlOjpBWElzb2xhdGVkT2JqZWN0OjpwcmV2aW91c1BhcmFn
cmFwaFN0YXJ0UG9zaXRpb24gY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6QVhJc29sYXRlZE9i
amVjdDo6dmlzaWJsZVBvc2l0aW9uRm9ySW5kZXggY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6
QVhJc29sYXRlZE9iamVjdDo6aW5kZXhGb3JWaXNpYmxlUG9zaXRpb24gY29uc3QpOgorICAgICAg
ICAoV2ViQ29yZTo6QVhJc29sYXRlZE9iamVjdDo6YWNjZXNzaWJpbGl0eU9iamVjdEZvclBvc2l0
aW9uIGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6OkFYSXNvbGF0ZWRPYmplY3Q6OnBsYWluVGV4
dFJhbmdlRm9yVmlzaWJsZVBvc2l0aW9uUmFuZ2UgY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6
QVhJc29sYXRlZE9iamVjdDo6aW5kZXggY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6QVhJc29s
YXRlZE9iamVjdDo6bGluZUJyZWFrcyBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpBWElzb2xh
dGVkT2JqZWN0Ojp0ZXh0VW5kZXJFbGVtZW50IGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6OkFY
SXNvbGF0ZWRPYmplY3Q6OmFjY2Vzc2liaWxpdHlIaXRUZXN0IGNvbnN0KTogRGVsZXRlZC4KKyAg
ICAgICAgKiBhY2Nlc3NpYmlsaXR5L2lzb2xhdGVkdHJlZS9BWElzb2xhdGVkT2JqZWN0Lmg6Cisg
ICAgICAgICogYWNjZXNzaWJpbGl0eS9tYWMvQWNjZXNzaWJpbGl0eU9iamVjdEJhc2UubW06Cisg
ICAgICAgIChXZWJDb3JlOjpBY2Nlc3NpYmlsaXR5T2JqZWN0Ojp0aXRsZUF0dHJpYnV0ZVZhbHVl
IGNvbnN0KToKKyAgICAgICAgKiBhY2Nlc3NpYmlsaXR5L21hYy9XZWJBY2Nlc3NpYmlsaXR5T2Jq
ZWN0V3JhcHBlckJhc2UuaDoKKyAgICAgICAgKiBhY2Nlc3NpYmlsaXR5L21hYy9XZWJBY2Nlc3Np
YmlsaXR5T2JqZWN0V3JhcHBlckJhc2UubW06CisgICAgICAgICgtW1dlYkFjY2Vzc2liaWxpdHlP
YmplY3RXcmFwcGVyQmFzZSBiYXNlQWNjZXNzaWJpbGl0eVRpdGxlXSk6IERlbGV0ZWQuCisgICAg
ICAgICogYWNjZXNzaWJpbGl0eS9tYWMvV2ViQWNjZXNzaWJpbGl0eU9iamVjdFdyYXBwZXJNYWMu
bW06CisgICAgICAgICgtW1dlYkFjY2Vzc2liaWxpdHlPYmplY3RXcmFwcGVyIGFjY2Vzc2liaWxp
dHlBdHRyaWJ1dGVWYWx1ZTpdKToKKyAgICAgICAgKC1bV2ViQWNjZXNzaWJpbGl0eU9iamVjdFdy
YXBwZXIgYWNjZXNzaWJpbGl0eUhpdFRlc3Q6XSk6CisgICAgICAgICgtW1dlYkFjY2Vzc2liaWxp
dHlPYmplY3RXcmFwcGVyIGFjY2Vzc2liaWxpdHlBdHRyaWJ1dGVWYWx1ZTpmb3JQYXJhbWV0ZXI6
XSk6CisKIDIwMjAtMTItMTEgIFphbGFuIEJ1anRhcyAgPHphbGFuQGFwcGxlLmNvbT4KIAogICAg
ICAgICBbTEZDXVtJRkNdIElubGluZVRleHRJdGVtOjppc0NvbGxhcHNpYmxlIG1pZ2h0IGJlIG1p
c2xlYWRpbmcKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQWNjZXNz
aWJpbGl0eU9iamVjdEludGVyZmFjZS5oIGIvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9B
Y2Nlc3NpYmlsaXR5T2JqZWN0SW50ZXJmYWNlLmgKaW5kZXggNDcyYjAyZmVmZDg4MDNkOWMwYjkz
NWY2YzRlYTAzMTRjYWUwNTMzZi4uY2JiODA4YzQzM2UyMjAwNWJlMTJmZmYyMmQxYzdhMjJjMmM4
YTUzZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmls
aXR5T2JqZWN0SW50ZXJmYWNlLmgKKysrIGIvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9B
Y2Nlc3NpYmlsaXR5T2JqZWN0SW50ZXJmYWNlLmgKQEAgLTE0NjYsNyArMTQ2NiwxMCBAQCBwdWJs
aWM6CiAgICAgdmlydHVhbCBTdHJpbmcgc3BlZWNoSGludEF0dHJpYnV0ZVZhbHVlKCkgY29uc3Qg
PSAwOwogICAgIHZpcnR1YWwgU3RyaW5nIGRlc2NyaXB0aW9uQXR0cmlidXRlVmFsdWUoKSBjb25z
dCA9IDA7CiAgICAgdmlydHVhbCBTdHJpbmcgaGVscFRleHRBdHRyaWJ1dGVWYWx1ZSgpIGNvbnN0
ID0gMDsKKyAgICAvLyBUaGlzIHNob3VsZCBiZSB0aGUgdmlzaWJsZSB0ZXh0IHRoYXQncyBhY3R1
YWxseSBvbiB0aGUgc2NyZWVuIGlmIHBvc3NpYmxlLgorICAgIC8vIElmIHRoZXJlJ3MgYWx0ZXJu
YXRpdmUgdGV4dCwgdGhhdCBjYW4gb3ZlcnJpZGUgdGhlIHRpdGxlLgogICAgIHZpcnR1YWwgU3Ry
aW5nIHRpdGxlQXR0cmlidXRlVmFsdWUoKSBjb25zdCA9IDA7CisKICAgICB2aXJ0dWFsIGJvb2wg
aGFzQXBwbGVQREZBbm5vdGF0aW9uQXR0cmlidXRlKCkgY29uc3QgPSAwOwogI2VuZGlmCiAKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvaW9zL1dlYkFjY2Vzc2liaWxp
dHlPYmplY3RXcmFwcGVySU9TLm1tIGIvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9pb3Mv
V2ViQWNjZXNzaWJpbGl0eU9iamVjdFdyYXBwZXJJT1MubW0KaW5kZXggNDhmNWRlZmE5MDhlOTY3
NjJmODJmNDJkZTkxOWM4NGI2YTM4ZDFmOS4uOGY4MTdlMmI5ZTIyMzYwN2E5MzNjYWIxMTRjYjJi
ZjJkZTY3MDA3NCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9pb3Mv
V2ViQWNjZXNzaWJpbGl0eU9iamVjdFdyYXBwZXJJT1MubW0KKysrIGIvU291cmNlL1dlYkNvcmUv
YWNjZXNzaWJpbGl0eS9pb3MvV2ViQWNjZXNzaWJpbGl0eU9iamVjdFdyYXBwZXJJT1MubW0KQEAg
LTExNzEsNyArMTE3MSw3IEBAIHN0YXRpYyB2b2lkIGFwcGVuZFN0cmluZ1RvUmVzdWx0KE5TTXV0
YWJsZVN0cmluZyAqcmVzdWx0LCBOU1N0cmluZyAqc3RyaW5nKQogCiAgICAgLy8gaU9TIGRvZXNu
J3QgZGlzdGluZ3Vpc2ggYmV0d2VlbiBhIHRpdGxlIGFuZCBkZXNjcmlwdGlvbiBmaWVsZCwKICAg
ICAvLyBzbyBjb25jYXRlbnRhdGlvbiB3aWxsIHlpZWxkIHRoZSBiZXN0IHJlc3VsdC4KLSAgICBO
U1N0cmluZyAqYXhUaXRsZSA9IFtzZWxmIGJhc2VBY2Nlc3NpYmlsaXR5VGl0bGVdOworICAgIE5T
U3RyaW5nICpheFRpdGxlID0gc2VsZi5heEJhY2tpbmdPYmplY3QtPnRpdGxlQXR0cmlidXRlVmFs
dWUoKTsKICAgICBOU1N0cmluZyAqYXhEZXNjcmlwdGlvbiA9IFtzZWxmIGJhc2VBY2Nlc3NpYmls
aXR5RGVzY3JpcHRpb25dOwogICAgIE5TU3RyaW5nICpsYW5kbWFya0Rlc2NyaXB0aW9uID0gW3Nl
bGYgYXJpYUxhbmRtYXJrUm9sZURlc2NyaXB0aW9uXTsKICAgICBOU1N0cmluZyAqaW50ZXJhY3Rp
dmVWaWRlb0Rlc2NyaXB0aW9uID0gW3NlbGYgaW50ZXJhY3RpdmVWaWRlb0Rlc2NyaXB0aW9uXTsK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvaXNvbGF0ZWR0cmVlL0FY
SXNvbGF0ZWRPYmplY3QuY3BwIGIvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9pc29sYXRl
ZHRyZWUvQVhJc29sYXRlZE9iamVjdC5jcHAKaW5kZXggMmU5YzJmYjY0NWQ0MDdmODYzYzZkNGNl
YmRlM2QyZTI5Y2MyNjNhYS4uNzEwZWI0ZWIwY2M4MDE5Zjc5YWU4NmVmMTE2NmU1MmYxMWMzMDg0
MiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9pc29sYXRlZHRyZWUv
QVhJc29sYXRlZE9iamVjdC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9p
c29sYXRlZHRyZWUvQVhJc29sYXRlZE9iamVjdC5jcHAKQEAgLTYwLDYgKzYwLDExIEBAIEFYSXNv
bGF0ZWRPYmplY3Q6On5BWElzb2xhdGVkT2JqZWN0KCkKICAgICBBU1NFUlQoIXdyYXBwZXIoKSk7
CiB9CiAKK3ZvaWQgQVhJc29sYXRlZE9iamVjdDo6aW5pdCgpCit7CisgICAgQVNTRVJUX05PVF9S
RUFDSEVEKCk7Cit9CisKIHZvaWQgQVhJc29sYXRlZE9iamVjdDo6aW5pdGlhbGl6ZUF0dHJpYnV0
ZURhdGEoQVhDb3JlT2JqZWN0JiBvYmplY3QsIGJvb2wgaXNSb290KQogewogICAgIHNldFByb3Bl
cnR5KEFYUHJvcGVydHlOYW1lOjpBUklBTGFuZG1hcmtSb2xlRGVzY3JpcHRpb24sIG9iamVjdC5h
cmlhTGFuZG1hcmtSb2xlRGVzY3JpcHRpb24oKS5pc29sYXRlZENvcHkoKSk7CkBAIC01MDcsNiAr
NTEyLDEzIEBAIGNvbnN0IEFYQ29yZU9iamVjdDo6QWNjZXNzaWJpbGl0eUNoaWxkcmVuVmVjdG9y
JiBBWElzb2xhdGVkT2JqZWN0OjpjaGlsZHJlbihib29sCiAgICAgcmV0dXJuIG1fY2hpbGRyZW47
CiB9CiAKK3ZvaWQgQVhJc29sYXRlZE9iamVjdDo6dXBkYXRlQ2hpbGRyZW5JZk5lY2Vzc2FyeSgp
Cit7CisgICAgLy8gRklYTUU6IHRoaXMgaXMgYSBuby1vcCBmb3IgaXNvbGF0ZWQgb2JqZWN0cyBh
bmQgc2hvdWxkIGJlIHJlbW92ZWQgZnJvbQorICAgIC8vIHRoZSBwdWJsaWMgaW50ZXJmYWNlLiBJ
dCBpcyB1c2VkIGluIHRoZSBtYWMgaW1wbGVtZW50YXRpb24gb2YKKyAgICAvLyBbV2ViQWNjZXNz
aWJpbGl0eU9iamVjdFdyYXBwZXIgYWNjZXNzaWJpbGl0eUhpdFRlc3RdLgorfQorCiB2b2lkIEFY
SXNvbGF0ZWRPYmplY3Q6OnNldFNlbGVjdGVkQ2hpbGRyZW4oY29uc3QgQWNjZXNzaWJpbGl0eUNo
aWxkcmVuVmVjdG9yJiBzZWxlY3RlZENoaWxkcmVuKQogewogICAgIEFTU0VSVChzZWxlY3RlZENo
aWxkcmVuLmlzRW1wdHkoKSB8fCAoc2VsZWN0ZWRDaGlsZHJlblswXSAmJiBzZWxlY3RlZENoaWxk
cmVuWzBdLT5pc0FYSXNvbGF0ZWRPYmplY3RJbnN0YW5jZSgpKSk7CkBAIC05NjAsNiArOTcyLDEy
NyBAQCBJbnRSZWN0IEFYSXNvbGF0ZWRPYmplY3Q6OmJvdW5kc0ZvclJhbmdlKGNvbnN0IFNpbXBs
ZVJhbmdlJiByYW5nZSkgY29uc3QKICAgICByZXR1cm4gYXhPYmplY3QgPyBheE9iamVjdC0+Ym91
bmRzRm9yUmFuZ2UocmFuZ2UpIDogSW50UmVjdCgpOwogfQogCitJbnRSZWN0IEFYSXNvbGF0ZWRP
YmplY3Q6OmJvdW5kc0ZvclZpc2libGVQb3NpdGlvblJhbmdlKGNvbnN0IFZpc2libGVQb3NpdGlv
blJhbmdlJikgY29uc3QKK3sKKyAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsKKyAgICByZXR1cm4g
eyB9OworfQorCitpbnQgQVhJc29sYXRlZE9iamVjdDo6bGVuZ3RoRm9yVmlzaWJsZVBvc2l0aW9u
UmFuZ2UoY29uc3QgVmlzaWJsZVBvc2l0aW9uUmFuZ2UmKSBjb25zdAoreworICAgIEFTU0VSVF9O
T1RfUkVBQ0hFRCgpOworICAgIHJldHVybiAwOworfQorCitWaXNpYmxlUG9zaXRpb24gQVhJc29s
YXRlZE9iamVjdDo6dmlzaWJsZVBvc2l0aW9uRm9yQm91bmRzKGNvbnN0IEludFJlY3QmLCBBY2Nl
c3NpYmlsaXR5VmlzaWJsZVBvc2l0aW9uRm9yQm91bmRzKSBjb25zdAoreworICAgIEFTU0VSVF9O
T1RfUkVBQ0hFRCgpOworICAgIHJldHVybiB7IH07Cit9CisKK1Zpc2libGVQb3NpdGlvbiBBWElz
b2xhdGVkT2JqZWN0Ojp2aXNpYmxlUG9zaXRpb25Gb3JQb2ludChjb25zdCBJbnRQb2ludCYgcG9p
bnQpIGNvbnN0Cit7CisgICAgQVNTRVJUKGlzTWFpblRocmVhZCgpKTsKKyAgICBhdXRvKiBheE9i
amVjdCA9IGFzc29jaWF0ZWRBWE9iamVjdCgpOworICAgIHJldHVybiBheE9iamVjdCA/IGF4T2Jq
ZWN0LT52aXNpYmxlUG9zaXRpb25Gb3JQb2ludChwb2ludCkgOiBWaXNpYmxlUG9zaXRpb24oKTsK
K30KKworVmlzaWJsZVBvc2l0aW9uIEFYSXNvbGF0ZWRPYmplY3Q6Om5leHRWaXNpYmxlUG9zaXRp
b24oY29uc3QgVmlzaWJsZVBvc2l0aW9uJikgY29uc3QKK3sKKyAgICBBU1NFUlRfTk9UX1JFQUNI
RUQoKTsKKyAgICByZXR1cm4geyB9OworfQorCitWaXNpYmxlUG9zaXRpb24gQVhJc29sYXRlZE9i
amVjdDo6cHJldmlvdXNWaXNpYmxlUG9zaXRpb24oY29uc3QgVmlzaWJsZVBvc2l0aW9uJikgY29u
c3QKK3sKKyAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsKKyAgICByZXR1cm4geyB9OworfQorCitW
aXNpYmxlUG9zaXRpb24gQVhJc29sYXRlZE9iamVjdDo6bmV4dFdvcmRFbmQoY29uc3QgVmlzaWJs
ZVBvc2l0aW9uJikgY29uc3QKK3sKKyAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsKKyAgICByZXR1
cm4geyB9OworfQorCitWaXNpYmxlUG9zaXRpb24gQVhJc29sYXRlZE9iamVjdDo6cHJldmlvdXNX
b3JkU3RhcnQoY29uc3QgVmlzaWJsZVBvc2l0aW9uJikgY29uc3QKK3sKKyAgICBBU1NFUlRfTk9U
X1JFQUNIRUQoKTsKKyAgICByZXR1cm4geyB9OworfQorCitWaXNpYmxlUG9zaXRpb24gQVhJc29s
YXRlZE9iamVjdDo6bmV4dExpbmVFbmRQb3NpdGlvbihjb25zdCBWaXNpYmxlUG9zaXRpb24mKSBj
b25zdAoreworICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgpOworICAgIHJldHVybiB7IH07Cit9CisK
K1Zpc2libGVQb3NpdGlvbiBBWElzb2xhdGVkT2JqZWN0OjpwcmV2aW91c0xpbmVTdGFydFBvc2l0
aW9uKGNvbnN0IFZpc2libGVQb3NpdGlvbiYpIGNvbnN0Cit7CisgICAgQVNTRVJUX05PVF9SRUFD
SEVEKCk7CisgICAgcmV0dXJuIHsgfTsKK30KKworVmlzaWJsZVBvc2l0aW9uIEFYSXNvbGF0ZWRP
YmplY3Q6Om5leHRTZW50ZW5jZUVuZFBvc2l0aW9uKGNvbnN0IFZpc2libGVQb3NpdGlvbiYpIGNv
bnN0Cit7CisgICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7CisgICAgcmV0dXJuIHsgfTsKK30KKwor
VmlzaWJsZVBvc2l0aW9uIEFYSXNvbGF0ZWRPYmplY3Q6OnByZXZpb3VzU2VudGVuY2VTdGFydFBv
c2l0aW9uKGNvbnN0IFZpc2libGVQb3NpdGlvbiYpIGNvbnN0Cit7CisgICAgQVNTRVJUX05PVF9S
RUFDSEVEKCk7CisgICAgcmV0dXJuIHsgfTsKK30KKworVmlzaWJsZVBvc2l0aW9uIEFYSXNvbGF0
ZWRPYmplY3Q6Om5leHRQYXJhZ3JhcGhFbmRQb3NpdGlvbihjb25zdCBWaXNpYmxlUG9zaXRpb24m
KSBjb25zdAoreworICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgpOworICAgIHJldHVybiB7IH07Cit9
CisKK1Zpc2libGVQb3NpdGlvbiBBWElzb2xhdGVkT2JqZWN0OjpwcmV2aW91c1BhcmFncmFwaFN0
YXJ0UG9zaXRpb24oY29uc3QgVmlzaWJsZVBvc2l0aW9uJikgY29uc3QKK3sKKyAgICBBU1NFUlRf
Tk9UX1JFQUNIRUQoKTsKKyAgICByZXR1cm4geyB9OworfQorCitWaXNpYmxlUG9zaXRpb24gQVhJ
c29sYXRlZE9iamVjdDo6dmlzaWJsZVBvc2l0aW9uRm9ySW5kZXgoaW50IGluZGV4KSBjb25zdAor
eworICAgIEFTU0VSVChpc01haW5UaHJlYWQoKSk7CisgICAgYXV0byogYXhPYmplY3QgPSBhc3Nv
Y2lhdGVkQVhPYmplY3QoKTsKKyAgICByZXR1cm4gYXhPYmplY3QgPyBheE9iamVjdC0+dmlzaWJs
ZVBvc2l0aW9uRm9ySW5kZXgoaW5kZXgpIDogVmlzaWJsZVBvc2l0aW9uKCk7Cit9CisKK2ludCBB
WElzb2xhdGVkT2JqZWN0OjppbmRleEZvclZpc2libGVQb3NpdGlvbihjb25zdCBWaXNpYmxlUG9z
aXRpb24mKSBjb25zdAoreworICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgpOworICAgIHJldHVybiAw
OworfQorCitBWENvcmVPYmplY3QqIEFYSXNvbGF0ZWRPYmplY3Q6OmFjY2Vzc2liaWxpdHlPYmpl
Y3RGb3JQb3NpdGlvbihjb25zdCBWaXNpYmxlUG9zaXRpb24mKSBjb25zdAoreworICAgIEFTU0VS
VF9OT1RfUkVBQ0hFRCgpOworICAgIHJldHVybiBudWxscHRyOworfQorCitQbGFpblRleHRSYW5n
ZSBBWElzb2xhdGVkT2JqZWN0OjpwbGFpblRleHRSYW5nZUZvclZpc2libGVQb3NpdGlvblJhbmdl
KGNvbnN0IFZpc2libGVQb3NpdGlvblJhbmdlJikgY29uc3QKK3sKKyAgICBBU1NFUlRfTk9UX1JF
QUNIRUQoKTsKKyAgICByZXR1cm4geyB9OworfQorCitpbnQgQVhJc29sYXRlZE9iamVjdDo6aW5k
ZXgoY29uc3QgVmlzaWJsZVBvc2l0aW9uJikgY29uc3QKK3sKKyAgICBBU1NFUlRfTk9UX1JFQUNI
RUQoKTsKKyAgICByZXR1cm4gMDsKK30KKwordm9pZCBBWElzb2xhdGVkT2JqZWN0OjpsaW5lQnJl
YWtzKFZlY3RvcjxpbnQ+JikgY29uc3QKK3sKKyAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsKK30K
KwogVmVjdG9yPFNpbXBsZVJhbmdlPiBBWElzb2xhdGVkT2JqZWN0OjpmaW5kVGV4dFJhbmdlcyhj
b25zdCBBY2Nlc3NpYmlsaXR5U2VhcmNoVGV4dENyaXRlcmlhJiBjcml0ZXJpYSkgY29uc3QKIHsK
ICAgICByZXR1cm4gQWNjZXNzaWJpbGl0eTo6cmV0cmlldmVWYWx1ZUZyb21NYWluVGhyZWFkPFZl
Y3RvcjxTaW1wbGVSYW5nZT4+KFsmY3JpdGVyaWEsIHRoaXNdICgpIC0+IFZlY3RvcjxTaW1wbGVS
YW5nZT4gewpAQCAtOTg4LDYgKzExMjEsMTIgQEAgdm9pZCBBWElzb2xhdGVkT2JqZWN0OjpmaW5k
TWF0Y2hpbmdPYmplY3RzKEFjY2Vzc2liaWxpdHlTZWFyY2hDcml0ZXJpYSogY3JpdGVyaWEKICAg
ICBBY2Nlc3NpYmlsaXR5OjpmaW5kTWF0Y2hpbmdPYmplY3RzKCpjcml0ZXJpYSwgcmVzdWx0cyk7
CiB9CiAKK1N0cmluZyBBWElzb2xhdGVkT2JqZWN0Ojp0ZXh0VW5kZXJFbGVtZW50KEFjY2Vzc2li
aWxpdHlUZXh0VW5kZXJFbGVtZW50TW9kZSkgY29uc3QKK3sKKyAgICBBU1NFUlRfTk9UX1JFQUNI
RUQoKTsKKyAgICByZXR1cm4geyB9OworfQorCiBPcHRpb25hbDxTaW1wbGVSYW5nZT4gQVhJc29s
YXRlZE9iamVjdDo6bWlzc3BlbGxpbmdSYW5nZShjb25zdCBTaW1wbGVSYW5nZSYgcmFuZ2UsIEFj
Y2Vzc2liaWxpdHlTZWFyY2hEaXJlY3Rpb24gZGlyZWN0aW9uKSBjb25zdAogewogICAgIEFTU0VS
VChpc01haW5UaHJlYWQoKSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmls
aXR5L2lzb2xhdGVkdHJlZS9BWElzb2xhdGVkT2JqZWN0LmggYi9Tb3VyY2UvV2ViQ29yZS9hY2Nl
c3NpYmlsaXR5L2lzb2xhdGVkdHJlZS9BWElzb2xhdGVkT2JqZWN0LmgKaW5kZXggZmEwM2YxYjg1
YzY4YzhkMDRlOWIxZjY4Y2U2YWRlNGU0NGE0ZWI4NC4uZDdlYzMzNWE1NGVlNmY2MzQzMzI5Zjcx
OGZlNzdhYzFiZDcwYjQxMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0
eS9pc29sYXRlZHRyZWUvQVhJc29sYXRlZE9iamVjdC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2Fj
Y2Vzc2liaWxpdHkvaXNvbGF0ZWR0cmVlL0FYSXNvbGF0ZWRPYmplY3QuaApAQCAtNTIsNyArNTIs
NyBAQCBwdWJsaWM6CiAKICAgICB2b2lkIHNldE9iamVjdElEKEFYSUQgaWQpIG92ZXJyaWRlIHsg
bV9pZCA9IGlkOyB9CiAgICAgQVhJRCBvYmplY3RJRCgpIGNvbnN0IG92ZXJyaWRlIHsgcmV0dXJu
IG1faWQ7IH0KLSAgICB2b2lkIGluaXQoKSBvdmVycmlkZSB7IH0KKyAgICB2b2lkIGluaXQoKSBv
dmVycmlkZTsKIAogICAgIHZvaWQgYXR0YWNoUGxhdGZvcm1XcmFwcGVyKEFjY2Vzc2liaWxpdHlP
YmplY3RXcmFwcGVyKik7CiAgICAgYm9vbCBpc0RldGFjaGVkKCkgY29uc3Qgb3ZlcnJpZGU7CkBA
IC0zMzgsNyArMzM4LDcgQEAgcHJpdmF0ZToKICAgICBib29sIGhhc0FSSUFWYWx1ZU5vdygpIGNv
bnN0IG92ZXJyaWRlIHsgcmV0dXJuIGJvb2xBdHRyaWJ1dGVWYWx1ZShBWFByb3BlcnR5TmFtZTo6
SGFzQVJJQVZhbHVlTm93KTsgfQogICAgIFN0cmluZyB0YWdOYW1lKCkgY29uc3Qgb3ZlcnJpZGUg
eyByZXR1cm4gc3RyaW5nQXR0cmlidXRlVmFsdWUoQVhQcm9wZXJ0eU5hbWU6OlRhZ05hbWUpOyB9
CiAgICAgY29uc3QgQWNjZXNzaWJpbGl0eUNoaWxkcmVuVmVjdG9yJiBjaGlsZHJlbihib29sIHVw
ZGF0ZUNoaWxkcmVuSWZOZWVkZWQgPSB0cnVlKSBvdmVycmlkZTsKLSAgICB2b2lkIHVwZGF0ZUNo
aWxkcmVuSWZOZWNlc3NhcnkoKSBvdmVycmlkZSB7IH0KKyAgICB2b2lkIHVwZGF0ZUNoaWxkcmVu
SWZOZWNlc3NhcnkoKSBvdmVycmlkZTsKICAgICBib29sIGlzRGV0YWNoZWRGcm9tUGFyZW50KCkg
b3ZlcnJpZGU7CiAgICAgYm9vbCBzdXBwb3J0c0xpdmVSZWdpb24oYm9vbCA9IHRydWUpIGNvbnN0
IG92ZXJyaWRlIHsgcmV0dXJuIGJvb2xBdHRyaWJ1dGVWYWx1ZShBWFByb3BlcnR5TmFtZTo6U3Vw
cG9ydHNMaXZlUmVnaW9uKTsgfQogICAgIGJvb2wgaXNJbnNpZGVMaXZlUmVnaW9uKGJvb2wgPSB0
cnVlKSBjb25zdCBvdmVycmlkZSB7IHJldHVybiBib29sQXR0cmlidXRlVmFsdWUoQVhQcm9wZXJ0
eU5hbWU6OklzSW5zaWRlTGl2ZVJlZ2lvbik7IH0KQEAgLTQwMCwyOSArNDAwLDI5IEBAIHByaXZh
dGU6CiAgICAgVmlzaWJsZVBvc2l0aW9uUmFuZ2UgbGluZVJhbmdlRm9yUG9zaXRpb24oY29uc3Qg
VmlzaWJsZVBvc2l0aW9uJikgY29uc3Qgb3ZlcnJpZGU7CiAgICAgT3B0aW9uYWw8U2ltcGxlUmFu
Z2U+IHJhbmdlRm9yUGxhaW5UZXh0UmFuZ2UoY29uc3QgUGxhaW5UZXh0UmFuZ2UmKSBjb25zdCBv
dmVycmlkZTsKICAgICBTdHJpbmcgc3RyaW5nRm9yUmFuZ2UoY29uc3QgU2ltcGxlUmFuZ2UmKSBj
b25zdCBvdmVycmlkZTsKLSAgICBJbnRSZWN0IGJvdW5kc0ZvclZpc2libGVQb3NpdGlvblJhbmdl
KGNvbnN0IFZpc2libGVQb3NpdGlvblJhbmdlJikgY29uc3Qgb3ZlcnJpZGUgeyByZXR1cm4gSW50
UmVjdCgpOyB9CisgICAgSW50UmVjdCBib3VuZHNGb3JWaXNpYmxlUG9zaXRpb25SYW5nZShjb25z
dCBWaXNpYmxlUG9zaXRpb25SYW5nZSYpIGNvbnN0IG92ZXJyaWRlOwogICAgIEludFJlY3QgYm91
bmRzRm9yUmFuZ2UoY29uc3QgU2ltcGxlUmFuZ2UmKSBjb25zdCBvdmVycmlkZTsKLSAgICBpbnQg
bGVuZ3RoRm9yVmlzaWJsZVBvc2l0aW9uUmFuZ2UoY29uc3QgVmlzaWJsZVBvc2l0aW9uUmFuZ2Um
KSBjb25zdCBvdmVycmlkZSB7IHJldHVybiAwOyB9Ci0gICAgVmlzaWJsZVBvc2l0aW9uIHZpc2li
bGVQb3NpdGlvbkZvckJvdW5kcyhjb25zdCBJbnRSZWN0JiwgQWNjZXNzaWJpbGl0eVZpc2libGVQ
b3NpdGlvbkZvckJvdW5kcykgY29uc3Qgb3ZlcnJpZGUgeyByZXR1cm4gVmlzaWJsZVBvc2l0aW9u
KCk7IH0KLSAgICBWaXNpYmxlUG9zaXRpb24gdmlzaWJsZVBvc2l0aW9uRm9yUG9pbnQoY29uc3Qg
SW50UG9pbnQmKSBjb25zdCBvdmVycmlkZSB7IHJldHVybiBWaXNpYmxlUG9zaXRpb24oKTsgfQot
ICAgIFZpc2libGVQb3NpdGlvbiBuZXh0VmlzaWJsZVBvc2l0aW9uKGNvbnN0IFZpc2libGVQb3Np
dGlvbiYpIGNvbnN0IG92ZXJyaWRlIHsgcmV0dXJuIFZpc2libGVQb3NpdGlvbigpOyB9Ci0gICAg
VmlzaWJsZVBvc2l0aW9uIHByZXZpb3VzVmlzaWJsZVBvc2l0aW9uKGNvbnN0IFZpc2libGVQb3Np
dGlvbiYpIGNvbnN0IG92ZXJyaWRlIHsgcmV0dXJuIFZpc2libGVQb3NpdGlvbigpOyB9Ci0gICAg
VmlzaWJsZVBvc2l0aW9uIG5leHRXb3JkRW5kKGNvbnN0IFZpc2libGVQb3NpdGlvbiYpIGNvbnN0
IG92ZXJyaWRlIHsgcmV0dXJuIFZpc2libGVQb3NpdGlvbigpOyB9Ci0gICAgVmlzaWJsZVBvc2l0
aW9uIHByZXZpb3VzV29yZFN0YXJ0KGNvbnN0IFZpc2libGVQb3NpdGlvbiYpIGNvbnN0IG92ZXJy
aWRlIHsgcmV0dXJuIFZpc2libGVQb3NpdGlvbigpOyB9Ci0gICAgVmlzaWJsZVBvc2l0aW9uIG5l
eHRMaW5lRW5kUG9zaXRpb24oY29uc3QgVmlzaWJsZVBvc2l0aW9uJikgY29uc3Qgb3ZlcnJpZGUg
eyByZXR1cm4gVmlzaWJsZVBvc2l0aW9uKCk7IH0KLSAgICBWaXNpYmxlUG9zaXRpb24gcHJldmlv
dXNMaW5lU3RhcnRQb3NpdGlvbihjb25zdCBWaXNpYmxlUG9zaXRpb24mKSBjb25zdCBvdmVycmlk
ZSB7IHJldHVybiBWaXNpYmxlUG9zaXRpb24oKTsgfQotICAgIFZpc2libGVQb3NpdGlvbiBuZXh0
U2VudGVuY2VFbmRQb3NpdGlvbihjb25zdCBWaXNpYmxlUG9zaXRpb24mKSBjb25zdCBvdmVycmlk
ZSB7IHJldHVybiBWaXNpYmxlUG9zaXRpb24oKTsgfQotICAgIFZpc2libGVQb3NpdGlvbiBwcmV2
aW91c1NlbnRlbmNlU3RhcnRQb3NpdGlvbihjb25zdCBWaXNpYmxlUG9zaXRpb24mKSBjb25zdCBv
dmVycmlkZSB7IHJldHVybiBWaXNpYmxlUG9zaXRpb24oKTsgfQotICAgIFZpc2libGVQb3NpdGlv
biBuZXh0UGFyYWdyYXBoRW5kUG9zaXRpb24oY29uc3QgVmlzaWJsZVBvc2l0aW9uJikgY29uc3Qg
b3ZlcnJpZGUgeyByZXR1cm4gVmlzaWJsZVBvc2l0aW9uKCk7IH0KLSAgICBWaXNpYmxlUG9zaXRp
b24gcHJldmlvdXNQYXJhZ3JhcGhTdGFydFBvc2l0aW9uKGNvbnN0IFZpc2libGVQb3NpdGlvbiYp
IGNvbnN0IG92ZXJyaWRlIHsgcmV0dXJuIFZpc2libGVQb3NpdGlvbigpOyB9CisgICAgaW50IGxl
bmd0aEZvclZpc2libGVQb3NpdGlvblJhbmdlKGNvbnN0IFZpc2libGVQb3NpdGlvblJhbmdlJikg
Y29uc3Qgb3ZlcnJpZGU7CisgICAgVmlzaWJsZVBvc2l0aW9uIHZpc2libGVQb3NpdGlvbkZvckJv
dW5kcyhjb25zdCBJbnRSZWN0JiwgQWNjZXNzaWJpbGl0eVZpc2libGVQb3NpdGlvbkZvckJvdW5k
cykgY29uc3Qgb3ZlcnJpZGU7CisgICAgVmlzaWJsZVBvc2l0aW9uIHZpc2libGVQb3NpdGlvbkZv
clBvaW50KGNvbnN0IEludFBvaW50JikgY29uc3Qgb3ZlcnJpZGU7CisgICAgVmlzaWJsZVBvc2l0
aW9uIG5leHRWaXNpYmxlUG9zaXRpb24oY29uc3QgVmlzaWJsZVBvc2l0aW9uJikgY29uc3Qgb3Zl
cnJpZGU7CisgICAgVmlzaWJsZVBvc2l0aW9uIHByZXZpb3VzVmlzaWJsZVBvc2l0aW9uKGNvbnN0
IFZpc2libGVQb3NpdGlvbiYpIGNvbnN0IG92ZXJyaWRlOworICAgIFZpc2libGVQb3NpdGlvbiBu
ZXh0V29yZEVuZChjb25zdCBWaXNpYmxlUG9zaXRpb24mKSBjb25zdCBvdmVycmlkZTsKKyAgICBW
aXNpYmxlUG9zaXRpb24gcHJldmlvdXNXb3JkU3RhcnQoY29uc3QgVmlzaWJsZVBvc2l0aW9uJikg
Y29uc3Qgb3ZlcnJpZGU7CisgICAgVmlzaWJsZVBvc2l0aW9uIG5leHRMaW5lRW5kUG9zaXRpb24o
Y29uc3QgVmlzaWJsZVBvc2l0aW9uJikgY29uc3Qgb3ZlcnJpZGU7CisgICAgVmlzaWJsZVBvc2l0
aW9uIHByZXZpb3VzTGluZVN0YXJ0UG9zaXRpb24oY29uc3QgVmlzaWJsZVBvc2l0aW9uJikgY29u
c3Qgb3ZlcnJpZGU7CisgICAgVmlzaWJsZVBvc2l0aW9uIG5leHRTZW50ZW5jZUVuZFBvc2l0aW9u
KGNvbnN0IFZpc2libGVQb3NpdGlvbiYpIGNvbnN0IG92ZXJyaWRlOworICAgIFZpc2libGVQb3Np
dGlvbiBwcmV2aW91c1NlbnRlbmNlU3RhcnRQb3NpdGlvbihjb25zdCBWaXNpYmxlUG9zaXRpb24m
KSBjb25zdCBvdmVycmlkZTsKKyAgICBWaXNpYmxlUG9zaXRpb24gbmV4dFBhcmFncmFwaEVuZFBv
c2l0aW9uKGNvbnN0IFZpc2libGVQb3NpdGlvbiYpIGNvbnN0IG92ZXJyaWRlOworICAgIFZpc2li
bGVQb3NpdGlvbiBwcmV2aW91c1BhcmFncmFwaFN0YXJ0UG9zaXRpb24oY29uc3QgVmlzaWJsZVBv
c2l0aW9uJikgY29uc3Qgb3ZlcnJpZGU7CiAgICAgVmlzaWJsZVBvc2l0aW9uIHZpc2libGVQb3Np
dGlvbkZvckluZGV4KHVuc2lnbmVkLCBib29sIGxhc3RJbmRleE9LKSBjb25zdCBvdmVycmlkZTsK
LSAgICBWaXNpYmxlUG9zaXRpb24gdmlzaWJsZVBvc2l0aW9uRm9ySW5kZXgoaW50KSBjb25zdCBv
dmVycmlkZSB7IHJldHVybiBWaXNpYmxlUG9zaXRpb24oKTsgfQotICAgIGludCBpbmRleEZvclZp
c2libGVQb3NpdGlvbihjb25zdCBWaXNpYmxlUG9zaXRpb24mKSBjb25zdCBvdmVycmlkZSB7IHJl
dHVybiAwOyB9Ci0gICAgQVhDb3JlT2JqZWN0KiBhY2Nlc3NpYmlsaXR5T2JqZWN0Rm9yUG9zaXRp
b24oY29uc3QgVmlzaWJsZVBvc2l0aW9uJikgY29uc3Qgb3ZlcnJpZGUgeyByZXR1cm4gbnVsbHB0
cjsgfQorICAgIFZpc2libGVQb3NpdGlvbiB2aXNpYmxlUG9zaXRpb25Gb3JJbmRleChpbnQpIGNv
bnN0IG92ZXJyaWRlOworICAgIGludCBpbmRleEZvclZpc2libGVQb3NpdGlvbihjb25zdCBWaXNp
YmxlUG9zaXRpb24mKSBjb25zdCBvdmVycmlkZTsKKyAgICBBWENvcmVPYmplY3QqIGFjY2Vzc2li
aWxpdHlPYmplY3RGb3JQb3NpdGlvbihjb25zdCBWaXNpYmxlUG9zaXRpb24mKSBjb25zdCBvdmVy
cmlkZTsKICAgICBpbnQgbGluZUZvclBvc2l0aW9uKGNvbnN0IFZpc2libGVQb3NpdGlvbiYpIGNv
bnN0IG92ZXJyaWRlOwotICAgIFBsYWluVGV4dFJhbmdlIHBsYWluVGV4dFJhbmdlRm9yVmlzaWJs
ZVBvc2l0aW9uUmFuZ2UoY29uc3QgVmlzaWJsZVBvc2l0aW9uUmFuZ2UmKSBjb25zdCBvdmVycmlk
ZSB7IHJldHVybiBQbGFpblRleHRSYW5nZSgpOyB9Ci0gICAgaW50IGluZGV4KGNvbnN0IFZpc2li
bGVQb3NpdGlvbiYpIGNvbnN0IG92ZXJyaWRlIHsgcmV0dXJuIDA7IH0KLSAgICB2b2lkIGxpbmVC
cmVha3MoVmVjdG9yPGludD4mKSBjb25zdCBvdmVycmlkZSB7IH0KKyAgICBQbGFpblRleHRSYW5n
ZSBwbGFpblRleHRSYW5nZUZvclZpc2libGVQb3NpdGlvblJhbmdlKGNvbnN0IFZpc2libGVQb3Np
dGlvblJhbmdlJikgY29uc3Qgb3ZlcnJpZGU7CisgICAgaW50IGluZGV4KGNvbnN0IFZpc2libGVQ
b3NpdGlvbiYpIGNvbnN0IG92ZXJyaWRlOworICAgIHZvaWQgbGluZUJyZWFrcyhWZWN0b3I8aW50
PiYpIGNvbnN0IG92ZXJyaWRlOwogCiAgICAgLy8gQXR0cmlidXRlIHNldHRlcnMuCiAgICAgdm9p
ZCBzZXRBUklBR3JhYmJlZChib29sKSBvdmVycmlkZTsKQEAgLTQzOSw4ICs0MzksNyBAQCBwcml2
YXRlOgogI2VuZGlmCiAgICAgdm9pZCBzZXRQcmV2ZW50S2V5Ym9hcmRET01FdmVudERpc3BhdGNo
KGJvb2wpIG92ZXJyaWRlOwogCi0gICAgLy8gVE9ETzogRnVuY3Rpb25zCi0gICAgU3RyaW5nIHRl
eHRVbmRlckVsZW1lbnQoQWNjZXNzaWJpbGl0eVRleHRVbmRlckVsZW1lbnRNb2RlID0gQWNjZXNz
aWJpbGl0eVRleHRVbmRlckVsZW1lbnRNb2RlKCkpIGNvbnN0IG92ZXJyaWRlIHsgcmV0dXJuIFN0
cmluZygpOyB9CisgICAgU3RyaW5nIHRleHRVbmRlckVsZW1lbnQoQWNjZXNzaWJpbGl0eVRleHRV
bmRlckVsZW1lbnRNb2RlID0gQWNjZXNzaWJpbGl0eVRleHRVbmRlckVsZW1lbnRNb2RlKCkpIGNv
bnN0IG92ZXJyaWRlOwogICAgIE9wdGlvbmFsPFNpbXBsZVJhbmdlPiBtaXNzcGVsbGluZ1Jhbmdl
KGNvbnN0IFNpbXBsZVJhbmdlJiwgQWNjZXNzaWJpbGl0eVNlYXJjaERpcmVjdGlvbikgY29uc3Qg
b3ZlcnJpZGU7CiAgICAgRmxvYXRSZWN0IGNvbnZlcnRGcmFtZVRvU3BhY2UoY29uc3QgRmxvYXRS
ZWN0JiwgQWNjZXNzaWJpbGl0eUNvbnZlcnNpb25TcGFjZSkgY29uc3Qgb3ZlcnJpZGU7CiAgICAg
dm9pZCBpbmNyZW1lbnQoKSBvdmVycmlkZTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Fj
Y2Vzc2liaWxpdHkvbWFjL0FjY2Vzc2liaWxpdHlPYmplY3RCYXNlLm1tIGIvU291cmNlL1dlYkNv
cmUvYWNjZXNzaWJpbGl0eS9tYWMvQWNjZXNzaWJpbGl0eU9iamVjdEJhc2UubW0KaW5kZXggMDE4
YzZiODExMzJiNjgzMGEzZDZkNDYzODAwZDY1Y2ZlOWU1MGU3NC4uN2ZlYzVlMzQ3ZGI5MzQzOTU4
MTYyMGY0OWMxMWYwZWU0ZDIwM2EyNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYWNjZXNz
aWJpbGl0eS9tYWMvQWNjZXNzaWJpbGl0eU9iamVjdEJhc2UubW0KKysrIGIvU291cmNlL1dlYkNv
cmUvYWNjZXNzaWJpbGl0eS9tYWMvQWNjZXNzaWJpbGl0eU9iamVjdEJhc2UubW0KQEAgLTE0Nyw2
ICsxNDcsMTQgQEAgU3RyaW5nIEFjY2Vzc2liaWxpdHlPYmplY3Q6OnRpdGxlQXR0cmlidXRlVmFs
dWUoKSBjb25zdAogICAgIGlmIChyb2xlVmFsdWUoKSA9PSBBY2Nlc3NpYmlsaXR5Um9sZTo6U3Rh
dGljVGV4dCkKICAgICAgICAgcmV0dXJuIFN0cmluZygpOwogCisgICAgLy8gTWV0ZXIgZWxlbWVu
dHMgc2hvdWxkIGNvbW11bmljYXRlIHRoZWlyIGNvbnRlbnQgdmlhIEFYVmFsdWVEZXNjcmlwdGlv
bi4KKyAgICBpZiAoaXNNZXRlcigpKQorICAgICAgICByZXR1cm4geyB9OworCisgICAgLy8gU3Vt
bWFyeSBlbGVtZW50IHNob3VsZCB1c2UgaXRzIHRleHQgbm9kZSBhcyBBWFRpdGxlLgorICAgIGlm
IChpc1N1bW1hcnkoKSkKKyAgICAgICAgcmV0dXJuIHRleHRVbmRlckVsZW1lbnQoKTsKKwogICAg
IC8vIEEgZmlsZSB1cGxvYWQgYnV0dG9uIHByZXNlbnRzIGEgY2hhbGxlbmdlIGJlY2F1c2UgaXQg
aGFzIGJ1dHRvbiB0ZXh0IGFuZCBhIHZhbHVlLCBidXQgdGhlCiAgICAgLy8gQVBJIGRvZXNuJ3Qg
c3VwcG9ydCB0aGlzIHBhcmFkaWdtLgogICAgIC8vIFRoZSBjb21wcm9taXNlIGlzIHRvIHJldHVy
biB0aGUgYnV0dG9uIHR5cGUgaW4gdGhlIHJvbGUgZGVzY3JpcHRpb24gYW5kIHRoZSB2YWx1ZSBv
ZiB0aGUgZmlsZSBwYXRoIGluIHRoZSB0aXRsZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
YWNjZXNzaWJpbGl0eS9tYWMvV2ViQWNjZXNzaWJpbGl0eU9iamVjdFdyYXBwZXJCYXNlLmggYi9T
b3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L21hYy9XZWJBY2Nlc3NpYmlsaXR5T2JqZWN0V3Jh
cHBlckJhc2UuaAppbmRleCBlNzI4MTgxNDM4ZTYwZGJjZDE2NGFjNTU1NTA1NWM4YTc2MTIyYzc2
Li5mYTdhM2NiOGM4NWZhODE4YWIxZmNlZDQyN2MwMGJkNTI2NWVhZjIxIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L21hYy9XZWJBY2Nlc3NpYmlsaXR5T2JqZWN0V3Jh
cHBlckJhc2UuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L21hYy9XZWJBY2Nl
c3NpYmlsaXR5T2JqZWN0V3JhcHBlckJhc2UuaApAQCAtNjksNyArNjksNiBAQCBjbGFzcyBWaXNp
YmxlUG9zaXRpb247CiAtIChXZWJDb3JlOjpBWENvcmVPYmplY3QqKWF4QmFja2luZ09iamVjdDsK
IAogLy8gVGhlc2UgYXJlIHByZS1maXhlZCB3aXRoIGJhc2Ugc28gdGhhdCBBcHBLaXQgZG9lcyBu
b3QgZW5kIHVwIGNhbGxpbmcgaW50byB0aGVzZSBkaXJlY3RseSAoYnlwYXNzaW5nIHNhZmV0eSBj
aGVja3MpLgotLSAoTlNTdHJpbmcgKiliYXNlQWNjZXNzaWJpbGl0eVRpdGxlOwogLSAoTlNTdHJp
bmcgKiliYXNlQWNjZXNzaWJpbGl0eURlc2NyaXB0aW9uOwogLSAoTlNTdHJpbmcgKiliYXNlQWNj
ZXNzaWJpbGl0eUhlbHBUZXh0OwogLSAoTlNBcnJheTxOU1N0cmluZyAqPiAqKWJhc2VBY2Nlc3Np
YmlsaXR5U3BlZWNoSGludDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxp
dHkvbWFjL1dlYkFjY2Vzc2liaWxpdHlPYmplY3RXcmFwcGVyQmFzZS5tbSBiL1NvdXJjZS9XZWJD
b3JlL2FjY2Vzc2liaWxpdHkvbWFjL1dlYkFjY2Vzc2liaWxpdHlPYmplY3RXcmFwcGVyQmFzZS5t
bQppbmRleCA1ZmJlOWY5NzUzZjcwZjYxOWQzZmJkNGJlNTU2MmE3YzU3Zjg4NjQzLi5hY2FiZmEy
YzQ3YmEwYzJkMTFhODI3YjI5NjA3ZGNmZWY3NmRlYzA5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9hY2Nlc3NpYmlsaXR5L21hYy9XZWJBY2Nlc3NpYmlsaXR5T2JqZWN0V3JhcHBlckJhc2Uu
bW0KKysrIGIvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9tYWMvV2ViQWNjZXNzaWJpbGl0
eU9iamVjdFdyYXBwZXJCYXNlLm1tCkBAIC0zMzksMTMgKzMzOSw2IEBAIE5TQXJyYXkgKmNvbnZl
cnRUb05TQXJyYXkoY29uc3QgV2ViQ29yZTo6QVhDb3JlT2JqZWN0OjpBY2Nlc3NpYmlsaXR5Q2hp
bGRyZW5WZWN0CiAgICAgcmV0dXJuIG5pbDsKIH0KIAotLy8gVGhpcyBzaG91bGQgYmUgdGhlICJ2
aXNpYmxlIiB0ZXh0IHRoYXQncyBhY3R1YWxseSBvbiB0aGUgc2NyZWVuIGlmIHBvc3NpYmxlLgot
Ly8gSWYgdGhlcmUncyBhbHRlcm5hdGl2ZSB0ZXh0LCB0aGF0IGNhbiBvdmVycmlkZSB0aGUgdGl0
bGUuCi0tIChOU1N0cmluZyAqKWJhc2VBY2Nlc3NpYmlsaXR5VGl0bGUKLXsKLSAgICByZXR1cm4g
c2VsZi5heEJhY2tpbmdPYmplY3QtPnRpdGxlQXR0cmlidXRlVmFsdWUoKTsKLX0KLQogLSAoV2Vi
Q29yZTo6QVhDb3JlT2JqZWN0KilheEJhY2tpbmdPYmplY3QKIHsKICNpZiBFTkFCTEUoQUNDRVNT
SUJJTElUWV9JU09MQVRFRF9UUkVFKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYWNjZXNz
aWJpbGl0eS9tYWMvV2ViQWNjZXNzaWJpbGl0eU9iamVjdFdyYXBwZXJNYWMubW0gYi9Tb3VyY2Uv
V2ViQ29yZS9hY2Nlc3NpYmlsaXR5L21hYy9XZWJBY2Nlc3NpYmlsaXR5T2JqZWN0V3JhcHBlck1h
Yy5tbQppbmRleCAzMDkzNzQ0ZmJiZjVkZTA4YzU1ZjYwY2E0YzM2ZDg2NTMyNDU2M2E2Li4zMDYz
MWQxNzg0YTNmNGVkYmY5YjQ4OTllOGNmMjA4ZGRjMDYwYWYwIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9hY2Nlc3NpYmlsaXR5L21hYy9XZWJBY2Nlc3NpYmlsaXR5T2JqZWN0V3JhcHBlck1h
Yy5tbQorKysgYi9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L21hYy9XZWJBY2Nlc3NpYmls
aXR5T2JqZWN0V3JhcHBlck1hYy5tbQpAQCAtMjMyNCwxNSArMjMyNCw3IEBAIEFMTE9XX0RFUFJF
Q0FURURfSU1QTEVNRU5UQVRJT05TX0VORAogICAgICAgICAgICAgICAgIHJldHVybiBbW3NlbGYg
YXR0YWNobWVudFZpZXddIGFjY2Vzc2liaWxpdHlBdHRyaWJ1dGVWYWx1ZTpOU0FjY2Vzc2liaWxp
dHlUaXRsZUF0dHJpYnV0ZV07CiAgICAgICAgIH0KIAotICAgICAgICAvLyBNZXRlciBlbGVtZW50
cyBzaG91bGQgY29tbXVuaWNhdGUgdGhlaXIgY29udGVudCB2aWEgQVhWYWx1ZURlc2NyaXB0aW9u
LgotICAgICAgICBpZiAoYmFja2luZ09iamVjdC0+aXNNZXRlcigpKQotICAgICAgICAgICAgcmV0
dXJuIFtOU1N0cmluZyBzdHJpbmddOwotCi0gICAgICAgIC8vIFN1bW1hcnkgZWxlbWVudCBzaG91
bGQgdXNlIGl0cyB0ZXh0IG5vZGUgYXMgQVhUaXRsZS4KLSAgICAgICAgaWYgKGJhY2tpbmdPYmpl
Y3QtPmlzU3VtbWFyeSgpKQotICAgICAgICAgICAgcmV0dXJuIGJhY2tpbmdPYmplY3QtPnRleHRV
bmRlckVsZW1lbnQoKTsKLQotICAgICAgICByZXR1cm4gW3NlbGYgYmFzZUFjY2Vzc2liaWxpdHlU
aXRsZV07CisgICAgICAgIHJldHVybiBiYWNraW5nT2JqZWN0LT50aXRsZUF0dHJpYnV0ZVZhbHVl
KCk7CiAgICAgfQogCiAgICAgaWYgKFthdHRyaWJ1dGVOYW1lIGlzRXF1YWxUb1N0cmluZzogTlNB
Y2Nlc3NpYmlsaXR5RGVzY3JpcHRpb25BdHRyaWJ1dGVdKSB7CkBAIC0yOTg1LDcgKzI5NzcsNyBA
QCBBTExPV19ERVBSRUNBVEVEX0lNUExFTUVOVEFUSU9OU19FTkQKICAgICAgICAgcmV0dXJuIG5p
bDsKIAogICAgIGJhY2tpbmdPYmplY3QtPnVwZGF0ZUNoaWxkcmVuSWZOZWNlc3NhcnkoKTsKLSAg
ICBBWENvcmVPYmplY3QqIGF4T2JqZWN0ID0gYmFja2luZ09iamVjdC0+YWNjZXNzaWJpbGl0eUhp
dFRlc3QoSW50UG9pbnQocG9pbnQpKTsKKyAgICBhdXRvKiBheE9iamVjdCA9IGJhY2tpbmdPYmpl
Y3QtPmFjY2Vzc2liaWxpdHlIaXRUZXN0KEludFBvaW50KHBvaW50KSk7CiAKICAgICBpZiAoYXhP
YmplY3QpIHsKICAgICAgICAgaWYgKGF4T2JqZWN0LT5pc0F0dGFjaG1lbnQoKSAmJiBbYXhPYmpl
Y3QtPndyYXBwZXIoKSBhdHRhY2htZW50Vmlld10pCkBAIC00MDA4LDEzICs0MDAwLDcgQEAgQUxM
T1dfREVQUkVDQVRFRF9JTVBMRU1FTlRBVElPTlNfRU5ECiAgICAgICAgICAgICBpZiAoIWJhY2tp
bmdPYmplY3QpCiAgICAgICAgICAgICAgICAgcmV0dXJuIG5pbDsKIAotICAgICAgICAgICAgYXV0
byogY2FjaGUgPSBiYWNraW5nT2JqZWN0LT5heE9iamVjdENhY2hlKCk7Ci0gICAgICAgICAgICBp
ZiAoIWNhY2hlKQotICAgICAgICAgICAgICAgIHJldHVybiBuaWw7Ci0KLSAgICAgICAgICAgIENo
YXJhY3Rlck9mZnNldCBjaGFyYWN0ZXJPZmZzZXQgPSBjYWNoZS0+Y2hhcmFjdGVyT2Zmc2V0Rm9y
UG9pbnQod2ViQ29yZVBvaW50LCBiYWNraW5nT2JqZWN0KTsKLQotICAgICAgICAgICAgcmV0dXJu
IChpZCl0ZXh0TWFya2VyRm9yQ2hhcmFjdGVyT2Zmc2V0KGNhY2hlLCBjaGFyYWN0ZXJPZmZzZXQp
OworICAgICAgICAgICAgcmV0dXJuIChpZCl0ZXh0TWFya2VyRm9yVmlzaWJsZVBvc2l0aW9uKGJh
Y2tpbmdPYmplY3QtPmF4T2JqZWN0Q2FjaGUoKSwgYmFja2luZ09iamVjdC0+dmlzaWJsZVBvc2l0
aW9uRm9yUG9pbnQod2ViQ29yZVBvaW50KSk7CiAgICAgICAgIH0pOwogICAgIH0KIAo=
</data>

          </attachment>
      

    </bug>

</bugzilla>