<?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>233362</bug_id>
          
          <creation_ts>2021-11-19 05:53:27 -0800</creation_ts>
          <short_desc>[Model] add support for seeking animations</short_desc>
          <delta_ts>2021-11-19 11:06:07 -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="Antoine Quint">graouts</reporter>
          <assigned_to name="Antoine Quint">graouts</assigned_to>
          <cc>cdumez</cc>
    
    <cc>dino</cc>
    
    <cc>esprehn+autocc</cc>
    
    <cc>ews-watchlist</cc>
    
    <cc>kondapallykalyan</cc>
    
    <cc>thorton</cc>
    
    <cc>webkit-bug-importer</cc>
    
    <cc>wenson_hsieh</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1816823</commentid>
    <comment_count>0</comment_count>
    <who name="Antoine Quint">graouts</who>
    <bug_when>2021-11-19 05:53:27 -0800</bug_when>
    <thetext>[Model] add support for seeking animations</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1816824</commentid>
    <comment_count>1</comment_count>
      <attachid>444811</attachid>
    <who name="Antoine Quint">graouts</who>
    <bug_when>2021-11-19 05:57:10 -0800</bug_when>
    <thetext>Created attachment 444811
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1816825</commentid>
    <comment_count>2</comment_count>
    <who name="Antoine Quint">graouts</who>
    <bug_when>2021-11-19 05:57:16 -0800</bug_when>
    <thetext>&lt;rdar://problem/85428812&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1816869</commentid>
    <comment_count>3</comment_count>
      <attachid>444811</attachid>
    <who name="Wenson Hsieh">wenson_hsieh</who>
    <bug_when>2021-11-19 08:11:54 -0800</bug_when>
    <thetext>Comment on attachment 444811
Patch

View in context: https://bugs.webkit.org/attachment.cgi?id=444811&amp;action=review

&gt; Source/WebKit/UIProcess/Cocoa/ModelElementControllerCocoa.mm:367
&gt; +        callOnMainRunLoop([weakThis = WeakPtr { *this }, completionHandler = WTFMove(completionHandler), error = WebCore::ResourceError { WebCore::ResourceError::Type::General }] () mutable {

Nit - I would just pass in `WebCore::ResourceError { WebCore::ResourceError::Type::General }` below, instead of copying it in the block.

&gt; Source/WebKit/UIProcess/Cocoa/ModelElementControllerCocoa.mm:376
&gt; +    callOnMainRunLoop([duration, weakThis = WeakPtr { *this }, completionHandler = WTFMove(completionHandler)] () mutable {

It&apos;s not super clear from reading the code (or the ChangeLog) why this would need to be called on the next runloop. Could we explain in either the ChangeLog or a comment here?

&gt; Source/WebKit/UIProcess/Cocoa/ModelElementControllerCocoa.mm:389
&gt; +        callOnMainRunLoop([weakThis = WeakPtr { *this }, completionHandler = WTFMove(completionHandler), error = WebCore::ResourceError { WebCore::ResourceError::Type::General }] () mutable {

(Ditto re: the error)

&gt; Source/WebKit/UIProcess/Cocoa/ModelElementControllerCocoa.mm:398
&gt; +    callOnMainRunLoop([currentTime, weakThis = WeakPtr { *this }, completionHandler = WTFMove(completionHandler)] () mutable {

(Ditto)

&gt; Source/WebKit/UIProcess/Cocoa/ModelElementControllerCocoa.mm:420
&gt; +    callOnMainRunLoop([weakThis = WeakPtr { *this }, completionHandler = WTFMove(completionHandler)] () mutable {

(Ditto)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1816917</commentid>
    <comment_count>4</comment_count>
    <who name="Antoine Quint">graouts</who>
    <bug_when>2021-11-19 10:44:30 -0800</bug_when>
    <thetext>(In reply to Wenson Hsieh from comment #3)
&gt; Comment on attachment 444811 [details]
&gt; Patch
&gt; 
&gt; View in context:
&gt; https://bugs.webkit.org/attachment.cgi?id=444811&amp;action=review
&gt; 
&gt; &gt; Source/WebKit/UIProcess/Cocoa/ModelElementControllerCocoa.mm:367
&gt; &gt; +        callOnMainRunLoop([weakThis = WeakPtr { *this }, completionHandler = WTFMove(completionHandler), error = WebCore::ResourceError { WebCore::ResourceError::Type::General }] () mutable {
&gt; 
&gt; Nit - I would just pass in `WebCore::ResourceError {
&gt; WebCore::ResourceError::Type::General }` below, instead of copying it in the
&gt; block.

Will fix in commit.

&gt; &gt; Source/WebKit/UIProcess/Cocoa/ModelElementControllerCocoa.mm:376
&gt; &gt; +    callOnMainRunLoop([duration, weakThis = WeakPtr { *this }, completionHandler = WTFMove(completionHandler)] () mutable {
&gt; 
&gt; It&apos;s not super clear from reading the code (or the ChangeLog) why this would
&gt; need to be called on the next runloop. Could we explain in either the
&gt; ChangeLog or a comment here?
&gt; 
&gt; &gt; Source/WebKit/UIProcess/Cocoa/ModelElementControllerCocoa.mm:389
&gt; &gt; +        callOnMainRunLoop([weakThis = WeakPtr { *this }, completionHandler = WTFMove(completionHandler), error = WebCore::ResourceError { WebCore::ResourceError::Type::General }] () mutable {
&gt; 
&gt; (Ditto re: the error)
&gt; 
&gt; &gt; Source/WebKit/UIProcess/Cocoa/ModelElementControllerCocoa.mm:398
&gt; &gt; +    callOnMainRunLoop([currentTime, weakThis = WeakPtr { *this }, completionHandler = WTFMove(completionHandler)] () mutable {
&gt; 
&gt; (Ditto)
&gt; 
&gt; &gt; Source/WebKit/UIProcess/Cocoa/ModelElementControllerCocoa.mm:420
&gt; &gt; +    callOnMainRunLoop([weakThis = WeakPtr { *this }, completionHandler = WTFMove(completionHandler)] () mutable {
&gt; 
&gt; (Ditto)

I&apos;ll remove all calls to callOnMainRunLoop() in the commit.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1816931</commentid>
    <comment_count>5</comment_count>
    <who name="Antoine Quint">graouts</who>
    <bug_when>2021-11-19 11:06:07 -0800</bug_when>
    <thetext>Committed r286068 (244455@main): &lt;https://commits.webkit.org/244455@main&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>444811</attachid>
            <date>2021-11-19 05:57:10 -0800</date>
            <delta_ts>2021-11-19 08:11:54 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-233362-20211119145709.patch</filename>
            <type>text/plain</type>
            <size>27732</size>
            <attacher name="Antoine Quint">graouts</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjg2MDQ5CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggZmNkZDQ2MGZjYWMxZmRh
MGNmYWY2ZDdiMWVmNTFkOGI2MTVjMzZiZS4uYTZlYjRlMzhjYWRiNTYzM2VhYTc5MDQyYTVhNjlh
OWM0MWM2YzY0YSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDMzIEBACisyMDIxLTExLTE5ICBBbnRv
aW5lIFF1aW50ICA8Z3Jhb3V0c0B3ZWJraXQub3JnPgorCisgICAgICAgIFtNb2RlbF0gYWRkIHN1
cHBvcnQgZm9yIHNlZWtpbmcgYW5pbWF0aW9ucworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0
Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjMzMzYyCisgICAgICAgIDxyZGFyOi8vcHJvYmxlbS84NTQy
ODgxMj4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBX
ZSBhZGQgdGhyZWUgbmV3IHByb21pc2UtYmFzZWQgbWV0aG9kcyB0byB0aGUgSFRNTE1vZGVsRWxl
bWVudCBJREwgdG8gYWxsb3cgc2Vla2luZyB0aGUgYW5pbWF0aW9uCisgICAgICAgIGJ1aWx0IGlu
dG8gdGhlIFVTRFogYXNzZXQ6IGFuaW1hdGlvbkR1cmF0aW9uKCksIGFuaW1hdGlvbkN1cnJlbnRU
aW1lKCkgYW5kIHNldEFuaW1hdGlvbkN1cnJlbnRUaW1lKCkuCisgICAgICAgIEFsbCB0aGVzZSBt
ZXRob2RzIGFyZSBwcm9taXNlLWJhc2VkLgorCisgICAgICAgICogTW9kdWxlcy9tb2RlbC1lbGVt
ZW50L0hUTUxNb2RlbEVsZW1lbnQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6SFRNTE1vZGVsRWxl
bWVudDo6YW5pbWF0aW9uRHVyYXRpb24pOgorICAgICAgICAoV2ViQ29yZTo6SFRNTE1vZGVsRWxl
bWVudDo6YW5pbWF0aW9uQ3VycmVudFRpbWUpOgorICAgICAgICAoV2ViQ29yZTo6SFRNTE1vZGVs
RWxlbWVudDo6c2V0QW5pbWF0aW9uQ3VycmVudFRpbWUpOgorICAgICAgICAqIE1vZHVsZXMvbW9k
ZWwtZWxlbWVudC9IVE1MTW9kZWxFbGVtZW50Lmg6CisgICAgICAgICogTW9kdWxlcy9tb2RlbC1l
bGVtZW50L0hUTUxNb2RlbEVsZW1lbnQuaWRsOgorICAgICAgICAqIE1vZHVsZXMvbW9kZWwtZWxl
bWVudC9Nb2RlbFBsYXllci5oOgorICAgICAgICAqIE1vZHVsZXMvbW9kZWwtZWxlbWVudC9kdW1t
eS9EdW1teU1vZGVsUGxheWVyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkR1bW15TW9kZWxQbGF5
ZXI6OmFuaW1hdGlvbkR1cmF0aW9uKToKKyAgICAgICAgKFdlYkNvcmU6OkR1bW15TW9kZWxQbGF5
ZXI6OmFuaW1hdGlvbkN1cnJlbnRUaW1lKToKKyAgICAgICAgKFdlYkNvcmU6OkR1bW15TW9kZWxQ
bGF5ZXI6OnNldEFuaW1hdGlvbkN1cnJlbnRUaW1lKToKKyAgICAgICAgKiBNb2R1bGVzL21vZGVs
LWVsZW1lbnQvZHVtbXkvRHVtbXlNb2RlbFBsYXllci5oOgorICAgICAgICAqIE1vZHVsZXMvbW9k
ZWwtZWxlbWVudC9zY2VuZWtpdC9TY2VuZUtpdE1vZGVsUGxheWVyLmg6CisgICAgICAgICogTW9k
dWxlcy9tb2RlbC1lbGVtZW50L3NjZW5la2l0L1NjZW5lS2l0TW9kZWxQbGF5ZXIubW06CisgICAg
ICAgIChXZWJDb3JlOjpTY2VuZUtpdE1vZGVsUGxheWVyOjphbmltYXRpb25EdXJhdGlvbik6Cisg
ICAgICAgIChXZWJDb3JlOjpTY2VuZUtpdE1vZGVsUGxheWVyOjphbmltYXRpb25DdXJyZW50VGlt
ZSk6CisgICAgICAgIChXZWJDb3JlOjpTY2VuZUtpdE1vZGVsUGxheWVyOjpzZXRBbmltYXRpb25D
dXJyZW50VGltZSk6CisKIDIwMjEtMTEtMTggIEZyw6lkw6lyaWMgV2FuZyAgPGZ3YW5nQGlnYWxp
YS5jb20+CiAKICAgICAgICAgTnVsbHB0ciBjcmFzaCBpbiBTaW1wbGlmaWVkQmFja3dhcmRzVGV4
dEl0ZXJhdG9yOjpyYW5nZSgpIHZpYSBwcmV2aW91c1NlbnRlbmNlUG9zaXRpb24KZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL1BBTC9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9QQUwvQ2hh
bmdlTG9nCmluZGV4IGNhODQzYzMwOTE0NWZhNDc1NTJmN2I3OTBjODdiNzdkYzljYjBjMzYuLjMy
ZDIxNThmYTliNDhlZjY1NTlkMThiNmE5YjZiM2ViZTAwOWMyNDQgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL1BBTC9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYkNvcmUvUEFML0NoYW5nZUxv
ZwpAQCAtMSwzICsxLDE3IEBACisyMDIxLTExLTE5ICBBbnRvaW5lIFF1aW50ICA8Z3Jhb3V0c0B3
ZWJraXQub3JnPgorCisgICAgICAgIFtNb2RlbF0gYWRkIHN1cHBvcnQgZm9yIHNlZWtpbmcgYW5p
bWF0aW9ucworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9
MjMzMzYyCisgICAgICAgIDxyZGFyOi8vcHJvYmxlbS84NTQyODgxMj4KKworICAgICAgICBSZXZp
ZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBBZGQgdGhlIG5ldyBBUlFMIFNQSXMg
d2UgYXJlIHVzaW5nIHRvIHF1ZXJ5IHRoZSBhbmltYXRpb24gZHVyYXRpb24sIHRoZSBjdXJyZW50
IGFuZCB0aW1lCisgICAgICAgIGFzIHdlbGwgYXMgYWxsb3dpbmcgdG8gc2V0IHRoZSBsYXR0ZXIu
CisKKyAgICAgICAgKiBwYWwvc3BpL2lvcy9TeXN0ZW1QcmV2aWV3U1BJLmg6CisgICAgICAgICog
cGFsL3NwaS9tYWMvU3lzdGVtUHJldmlld1NQSS5oOgorCiAyMDIxLTExLTE4ICBBbnRvaW5lIFF1
aW50ICA8Z3Jhb3V0c0B3ZWJraXQub3JnPgogCiAgICAgICAgIFtNb2RlbF0gYWRkIHN1cHBvcnQg
Zm9yIHBhdXNpbmcgYW5kIHJlc3VtaW5nIGFuaW1hdGlvbnMKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJLaXQvQ2hhbmdlTG9nIGIvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cKaW5kZXggNTk0OGUxOGFm
Mjk5YzY5N2Q0NzdhMmNiMTQxMjNkOTdiMDY5OGQyOS4uMTgwNDQ5OGZkNTdmOGVmNDYwMTI1YTQ1
YjNlNzAzZWUyMzZjOGM0MiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cKKysr
IGIvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cKQEAgLTEsMyArMSwzMiBAQAorMjAyMS0xMS0xOSAg
QW50b2luZSBRdWludCAgPGdyYW91dHNAd2Via2l0Lm9yZz4KKworICAgICAgICBbTW9kZWxdIGFk
ZCBzdXBwb3J0IGZvciBzZWVraW5nIGFuaW1hdGlvbnMKKyAgICAgICAgaHR0cHM6Ly9idWdzLndl
YmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIzMzM2MgorICAgICAgICA8cmRhcjovL3Byb2JsZW0v
ODU0Mjg4MTI+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAg
ICAgRXhwb3NlIG5ldyBXZWJQYWdlUHJveHkgbWVzc2FnZXMgdG8gbGV0IHRoZSBXZWJQcm9jZXNz
IG1lc3NhZ2UgdGhlIFVJUHJvY2VzcworICAgICAgICB0byBjYWxsIGludG8gQVNWSW5saW5lUHJl
dmlldyBtZXRob2RzIHRvIGdldCBhbmQgc2V0IHRoZSBhbmltYXRpb24ncyBjdXJyZW50CisgICAg
ICAgIHRpbWUgYXMgd2VsbCBhcyBnZXR0aW5nIGl0cyBkdXJhdGlvbi4KKworICAgICAgICAqIFVJ
UHJvY2Vzcy9Db2NvYS9Nb2RlbEVsZW1lbnRDb250cm9sbGVyQ29jb2EubW06CisgICAgICAgIChX
ZWJLaXQ6Ok1vZGVsRWxlbWVudENvbnRyb2xsZXI6OmFuaW1hdGlvbkR1cmF0aW9uRm9yTW9kZWxF
bGVtZW50KToKKyAgICAgICAgKFdlYktpdDo6TW9kZWxFbGVtZW50Q29udHJvbGxlcjo6YW5pbWF0
aW9uQ3VycmVudFRpbWVGb3JNb2RlbEVsZW1lbnQpOgorICAgICAgICAoV2ViS2l0OjpNb2RlbEVs
ZW1lbnRDb250cm9sbGVyOjpzZXRBbmltYXRpb25DdXJyZW50VGltZUZvck1vZGVsRWxlbWVudCk6
CisgICAgICAgICogVUlQcm9jZXNzL01vZGVsRWxlbWVudENvbnRyb2xsZXIuaDoKKyAgICAgICAg
KiBVSVByb2Nlc3MvV2ViUGFnZVByb3h5LmNwcDoKKyAgICAgICAgKFdlYktpdDo6V2ViUGFnZVBy
b3h5Ojptb2RlbEVsZW1lbnRBbmltYXRpb25EdXJhdGlvbik6CisgICAgICAgIChXZWJLaXQ6Oldl
YlBhZ2VQcm94eTo6bW9kZWxFbGVtZW50QW5pbWF0aW9uQ3VycmVudFRpbWUpOgorICAgICAgICAo
V2ViS2l0OjpXZWJQYWdlUHJveHk6Om1vZGVsRWxlbWVudFNldEFuaW1hdGlvbkN1cnJlbnRUaW1l
KToKKyAgICAgICAgKiBVSVByb2Nlc3MvV2ViUGFnZVByb3h5Lmg6CisgICAgICAgICogVUlQcm9j
ZXNzL1dlYlBhZ2VQcm94eS5tZXNzYWdlcy5pbjoKKyAgICAgICAgKiBXZWJQcm9jZXNzL01vZGVs
L0FSS2l0SW5saW5lUHJldmlld01vZGVsUGxheWVyLmg6CisgICAgICAgICogV2ViUHJvY2Vzcy9N
b2RlbC9BUktpdElubGluZVByZXZpZXdNb2RlbFBsYXllci5tbToKKyAgICAgICAgKFdlYktpdDo6
QVJLaXRJbmxpbmVQcmV2aWV3TW9kZWxQbGF5ZXI6OmFuaW1hdGlvbkR1cmF0aW9uKToKKyAgICAg
ICAgKFdlYktpdDo6QVJLaXRJbmxpbmVQcmV2aWV3TW9kZWxQbGF5ZXI6OmFuaW1hdGlvbkN1cnJl
bnRUaW1lKToKKyAgICAgICAgKFdlYktpdDo6QVJLaXRJbmxpbmVQcmV2aWV3TW9kZWxQbGF5ZXI6
OnNldEFuaW1hdGlvbkN1cnJlbnRUaW1lKToKKwogMjAyMS0xMS0xOCAgQW50b2luZSBRdWludCAg
PGdyYW91dHNAd2Via2l0Lm9yZz4KIAogICAgICAgICBbTW9kZWxdIGFkZCBzdXBwb3J0IGZvciBw
YXVzaW5nIGFuZCByZXN1bWluZyBhbmltYXRpb25zCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9Nb2R1bGVzL21vZGVsLWVsZW1lbnQvSFRNTE1vZGVsRWxlbWVudC5jcHAgYi9Tb3VyY2UvV2Vi
Q29yZS9Nb2R1bGVzL21vZGVsLWVsZW1lbnQvSFRNTE1vZGVsRWxlbWVudC5jcHAKaW5kZXggZjRi
MzUzNTExZTJkMDZmNTkxYmE0NWJiNjgzY2Q4NjhjMWJlNWViYy4uNjA0Nzg5ZjY5NDhjZTk1Y2Jh
ODYxMjc4N2M0ZGJjMzFmYjE0MDkzOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxl
cy9tb2RlbC1lbGVtZW50L0hUTUxNb2RlbEVsZW1lbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L01vZHVsZXMvbW9kZWwtZWxlbWVudC9IVE1MTW9kZWxFbGVtZW50LmNwcApAQCAtNTYsNiArNTYs
NyBAQAogI2luY2x1ZGUgIlJlbmRlckxheWVyTW9kZWxPYmplY3QuaCIKICNpbmNsdWRlICJSZW5k
ZXJNb2RlbC5oIgogI2luY2x1ZGUgPHd0Zi9Jc29NYWxsb2NJbmxpbmVzLmg+CisjaW5jbHVkZSA8
d3RmL1NlY29uZHMuaD4KICNpbmNsdWRlIDx3dGYvVVJMLmg+CiAKIG5hbWVzcGFjZSBXZWJDb3Jl
IHsKQEAgLTQzNyw2ICs0MzgsNTEgQEAgdm9pZCBIVE1MTW9kZWxFbGVtZW50OjpwYXVzZUFuaW1h
dGlvbihET01Qcm9taXNlRGVmZXJyZWQ8dm9pZD4mJiBwcm9taXNlKQogICAgIHNldEFuaW1hdGlv
bklzUGxheWluZyhmYWxzZSwgV1RGTW92ZShwcm9taXNlKSk7CiB9CiAKK3ZvaWQgSFRNTE1vZGVs
RWxlbWVudDo6YW5pbWF0aW9uRHVyYXRpb24oRHVyYXRpb25Qcm9taXNlJiYgcHJvbWlzZSkKK3sK
KyAgICBpZiAoIW1fbW9kZWxQbGF5ZXIpIHsKKyAgICAgICAgcHJvbWlzZS5yZWplY3QoKTsKKyAg
ICAgICAgcmV0dXJuOworICAgIH0KKworICAgIG1fbW9kZWxQbGF5ZXItPmFuaW1hdGlvbkR1cmF0
aW9uKFtwcm9taXNlID0gV1RGTW92ZShwcm9taXNlKV0gKHN0ZDo6b3B0aW9uYWw8U2Vjb25kcz4g
ZHVyYXRpb24pIG11dGFibGUgeworICAgICAgICBpZiAoIWR1cmF0aW9uKQorICAgICAgICAgICAg
cHJvbWlzZS5yZWplY3QoKTsKKyAgICAgICAgZWxzZQorICAgICAgICAgICAgcHJvbWlzZS5yZXNv
bHZlKGR1cmF0aW9uLT5zZWNvbmRzKCkpOworICAgIH0pOworfQorCit2b2lkIEhUTUxNb2RlbEVs
ZW1lbnQ6OmFuaW1hdGlvbkN1cnJlbnRUaW1lKEN1cnJlbnRUaW1lUHJvbWlzZSYmIHByb21pc2Up
Cit7CisgICAgaWYgKCFtX21vZGVsUGxheWVyKSB7CisgICAgICAgIHByb21pc2UucmVqZWN0KCk7
CisgICAgICAgIHJldHVybjsKKyAgICB9CisKKyAgICBtX21vZGVsUGxheWVyLT5hbmltYXRpb25D
dXJyZW50VGltZShbcHJvbWlzZSA9IFdURk1vdmUocHJvbWlzZSldIChzdGQ6Om9wdGlvbmFsPFNl
Y29uZHM+IGN1cnJlbnRUaW1lKSBtdXRhYmxlIHsKKyAgICAgICAgaWYgKCFjdXJyZW50VGltZSkK
KyAgICAgICAgICAgIHByb21pc2UucmVqZWN0KCk7CisgICAgICAgIGVsc2UKKyAgICAgICAgICAg
IHByb21pc2UucmVzb2x2ZShjdXJyZW50VGltZS0+c2Vjb25kcygpKTsKKyAgICB9KTsKK30KKwor
dm9pZCBIVE1MTW9kZWxFbGVtZW50OjpzZXRBbmltYXRpb25DdXJyZW50VGltZShkb3VibGUgY3Vy
cmVudFRpbWUsIERPTVByb21pc2VEZWZlcnJlZDx2b2lkPiYmIHByb21pc2UpCit7CisgICAgaWYg
KCFtX21vZGVsUGxheWVyKSB7CisgICAgICAgIHByb21pc2UucmVqZWN0KCk7CisgICAgICAgIHJl
dHVybjsKKyAgICB9CisKKyAgICBtX21vZGVsUGxheWVyLT5zZXRBbmltYXRpb25DdXJyZW50VGlt
ZShTZWNvbmRzKGN1cnJlbnRUaW1lKSwgW3Byb21pc2UgPSBXVEZNb3ZlKHByb21pc2UpXSAoYm9v
bCBzdWNjZXNzKSBtdXRhYmxlIHsKKyAgICAgICAgaWYgKHN1Y2Nlc3MpCisgICAgICAgICAgICBw
cm9taXNlLnJlc29sdmUoKTsKKyAgICAgICAgZWxzZQorICAgICAgICAgICAgcHJvbWlzZS5yZWpl
Y3QoKTsKKyAgICB9KTsKK30KKwogfQogCiAjZW5kaWYgLy8gRU5BQkxFKE1PREVMX0VMRU1FTlQp
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21vZGVsLWVsZW1lbnQvSFRNTE1v
ZGVsRWxlbWVudC5oIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tb2RlbC1lbGVtZW50L0hUTUxN
b2RlbEVsZW1lbnQuaAppbmRleCBhMmJhN2MyNjM4OTY1OTIxNDI1ZTIzZDUzMjllYmIyMGU4NjIw
ZmQ2Li40MzdkOWQyNWFiNThjZjgxOWE2NjQzOWFkNmYzZjA4YTMyMjk5MGEzIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21vZGVsLWVsZW1lbnQvSFRNTE1vZGVsRWxlbWVudC5o
CisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbW9kZWwtZWxlbWVudC9IVE1MTW9kZWxFbGVt
ZW50LmgKQEAgLTgwLDYgKzgwLDEyIEBAIHB1YmxpYzoKICAgICB2b2lkIHBsYXlBbmltYXRpb24o
RE9NUHJvbWlzZURlZmVycmVkPHZvaWQ+JiYpOwogICAgIHZvaWQgcGF1c2VBbmltYXRpb24oRE9N
UHJvbWlzZURlZmVycmVkPHZvaWQ+JiYpOwogCisgICAgdXNpbmcgRHVyYXRpb25Qcm9taXNlID0g
RE9NUHJvbWlzZURlZmVycmVkPElETERvdWJsZT47CisgICAgdm9pZCBhbmltYXRpb25EdXJhdGlv
bihEdXJhdGlvblByb21pc2UmJik7CisgICAgdXNpbmcgQ3VycmVudFRpbWVQcm9taXNlID0gRE9N
UHJvbWlzZURlZmVycmVkPElETERvdWJsZT47CisgICAgdm9pZCBhbmltYXRpb25DdXJyZW50VGlt
ZShDdXJyZW50VGltZVByb21pc2UmJik7CisgICAgdm9pZCBzZXRBbmltYXRpb25DdXJyZW50VGlt
ZShkb3VibGUsIERPTVByb21pc2VEZWZlcnJlZDx2b2lkPiYmKTsKKwogICAgIGJvb2wgaXNEcmFn
Z2FibGVJZ25vcmluZ0F0dHJpYnV0ZXMoKSBjb25zdCBmaW5hbCB7IHJldHVybiB0cnVlOyB9CiAK
IHByaXZhdGU6CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21vZGVsLWVsZW1l
bnQvSFRNTE1vZGVsRWxlbWVudC5pZGwgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21vZGVsLWVs
ZW1lbnQvSFRNTE1vZGVsRWxlbWVudC5pZGwKaW5kZXggYjZkNWZmNDJjYzdkYmE1YWUzZDAxY2Rl
NDc1ZDczYjg4NTJmMDgzMy4uY2MyNGI3MjliOTBmMjlkOGNhMjM5N2ZkYTZjOTUxYzI2MjYwMjQ4
MyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tb2RlbC1lbGVtZW50L0hUTUxN
b2RlbEVsZW1lbnQuaWRsCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbW9kZWwtZWxlbWVu
dC9IVE1MTW9kZWxFbGVtZW50LmlkbApAQCAtNDAsNCArNDAsOCBAQAogICAgIFByb21pc2U8Ym9v
bGVhbj4gaXNQbGF5aW5nQW5pbWF0aW9uKCk7CiAgICAgUHJvbWlzZTx1bmRlZmluZWQ+IHBsYXlB
bmltYXRpb24oKTsKICAgICBQcm9taXNlPHVuZGVmaW5lZD4gcGF1c2VBbmltYXRpb24oKTsKKwor
ICAgIFByb21pc2U8ZG91YmxlPiBhbmltYXRpb25EdXJhdGlvbigpOworICAgIFByb21pc2U8ZG91
YmxlPiBhbmltYXRpb25DdXJyZW50VGltZSgpOworICAgIFByb21pc2U8dW5kZWZpbmVkPiBzZXRB
bmltYXRpb25DdXJyZW50VGltZShkb3VibGUgY3VycmVudFRpbWUpOwogfTsKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbW9kZWwtZWxlbWVudC9Nb2RlbFBsYXllci5oIGIvU291
cmNlL1dlYkNvcmUvTW9kdWxlcy9tb2RlbC1lbGVtZW50L01vZGVsUGxheWVyLmgKaW5kZXggYWQ3
MmNiMGQwOWYxMjZjMDZmMWQ3ZGQwMThhZGY1YjljYTljMTcyMy4uNjIwMTE1NGYwZTRkZTJlYWRm
MTM1NDdkOGE2YWRkZTdhYjUxN2RhOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxl
cy9tb2RlbC1lbGVtZW50L01vZGVsUGxheWVyLmgKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxl
cy9tb2RlbC1lbGVtZW50L01vZGVsUGxheWVyLmgKQEAgLTMyLDYgKzMyLDcgQEAKICNpbmNsdWRl
IDxvcHRpb25hbD4KICNpbmNsdWRlIDx3dGYvRm9yd2FyZC5oPgogI2luY2x1ZGUgPHd0Zi9Nb25v
dG9uaWNUaW1lLmg+CisjaW5jbHVkZSA8d3RmL1NlY29uZHMuaD4KIAogbmFtZXNwYWNlIFdlYkNv
cmUgewogCkBAIC01Myw2ICs1NCw5IEBAIHB1YmxpYzoKICAgICB2aXJ0dWFsIHZvaWQgc2V0Q2Ft
ZXJhKEhUTUxNb2RlbEVsZW1lbnRDYW1lcmEsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoYm9vbCBz
dWNjZXNzKT4mJikgPSAwOwogICAgIHZpcnR1YWwgdm9pZCBpc1BsYXlpbmdBbmltYXRpb24oQ29t
cGxldGlvbkhhbmRsZXI8dm9pZChzdGQ6Om9wdGlvbmFsPGJvb2w+JiYpPiYmKSA9IDA7CiAgICAg
dmlydHVhbCB2b2lkIHNldEFuaW1hdGlvbklzUGxheWluZyhib29sLCBDb21wbGV0aW9uSGFuZGxl
cjx2b2lkKGJvb2wgc3VjY2Vzcyk+JiYpID0gMDsKKyAgICB2aXJ0dWFsIHZvaWQgYW5pbWF0aW9u
RHVyYXRpb24oQ29tcGxldGlvbkhhbmRsZXI8dm9pZChzdGQ6Om9wdGlvbmFsPFNlY29uZHM+JiYp
PiYmKSA9IDA7CisgICAgdmlydHVhbCB2b2lkIGFuaW1hdGlvbkN1cnJlbnRUaW1lKENvbXBsZXRp
b25IYW5kbGVyPHZvaWQoc3RkOjpvcHRpb25hbDxTZWNvbmRzPiYmKT4mJikgPSAwOworICAgIHZp
cnR1YWwgdm9pZCBzZXRBbmltYXRpb25DdXJyZW50VGltZShTZWNvbmRzLCBDb21wbGV0aW9uSGFu
ZGxlcjx2b2lkKGJvb2wgc3VjY2Vzcyk+JiYpID0gMDsKIH07CiAKIH0KZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL01vZHVsZXMvbW9kZWwtZWxlbWVudC9kdW1teS9EdW1teU1vZGVsUGxheWVy
LmNwcCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbW9kZWwtZWxlbWVudC9kdW1teS9EdW1teU1v
ZGVsUGxheWVyLmNwcAppbmRleCA0MzY3N2VjYzM5MDAxMDJiMjE0M2M2MmRkM2ZlOTM5NjE1ODk3
ZjY4Li5lNzAxZjdjZmE2N2ZjNDcxZGIzOGRlY2FkOWExMDU5YzZlMjBhMzg5IDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21vZGVsLWVsZW1lbnQvZHVtbXkvRHVtbXlNb2RlbFBs
YXllci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tb2RlbC1lbGVtZW50L2R1bW15
L0R1bW15TW9kZWxQbGF5ZXIuY3BwCkBAIC04Niw0ICs4NiwxNiBAQCB2b2lkIER1bW15TW9kZWxQ
bGF5ZXI6OnNldEFuaW1hdGlvbklzUGxheWluZyhib29sLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lk
KGJvb2wgcwogewogfQogCit2b2lkIER1bW15TW9kZWxQbGF5ZXI6OmFuaW1hdGlvbkR1cmF0aW9u
KENvbXBsZXRpb25IYW5kbGVyPHZvaWQoc3RkOjpvcHRpb25hbDxTZWNvbmRzPiYmKT4mJikKK3sK
K30KKwordm9pZCBEdW1teU1vZGVsUGxheWVyOjphbmltYXRpb25DdXJyZW50VGltZShDb21wbGV0
aW9uSGFuZGxlcjx2b2lkKHN0ZDo6b3B0aW9uYWw8U2Vjb25kcz4mJik+JiYpCit7Cit9CisKK3Zv
aWQgRHVtbXlNb2RlbFBsYXllcjo6c2V0QW5pbWF0aW9uQ3VycmVudFRpbWUoU2Vjb25kcywgQ29t
cGxldGlvbkhhbmRsZXI8dm9pZChib29sIHN1Y2Nlc3MpPiYmKQoreworfQorCiB9CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21vZGVsLWVsZW1lbnQvZHVtbXkvRHVtbXlNb2Rl
bFBsYXllci5oIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tb2RlbC1lbGVtZW50L2R1bW15L0R1
bW15TW9kZWxQbGF5ZXIuaAppbmRleCBjZWZhODcxZDNjMDE1MTdjNTE5M2UyMGJmMTAyOTJjNzFh
ODEyYTQ5Li43NDU0YzNjOWY0OWUyYTg3YzUxZTljZGRjMjYwOWE4MzIwNDZmNzcxIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21vZGVsLWVsZW1lbnQvZHVtbXkvRHVtbXlNb2Rl
bFBsYXllci5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbW9kZWwtZWxlbWVudC9kdW1t
eS9EdW1teU1vZGVsUGxheWVyLmgKQEAgLTUxLDYgKzUxLDkgQEAgcHJpdmF0ZToKICAgICB2b2lk
IHNldENhbWVyYShXZWJDb3JlOjpIVE1MTW9kZWxFbGVtZW50Q2FtZXJhLCBDb21wbGV0aW9uSGFu
ZGxlcjx2b2lkKGJvb2wgc3VjY2Vzcyk+JiYpIG92ZXJyaWRlOwogICAgIHZvaWQgaXNQbGF5aW5n
QW5pbWF0aW9uKENvbXBsZXRpb25IYW5kbGVyPHZvaWQoc3RkOjpvcHRpb25hbDxib29sPiYmKT4m
Jikgb3ZlcnJpZGU7CiAgICAgdm9pZCBzZXRBbmltYXRpb25Jc1BsYXlpbmcoYm9vbCwgQ29tcGxl
dGlvbkhhbmRsZXI8dm9pZChib29sIHN1Y2Nlc3MpPiYmKSBvdmVycmlkZTsKKyAgICB2b2lkIGFu
aW1hdGlvbkR1cmF0aW9uKENvbXBsZXRpb25IYW5kbGVyPHZvaWQoc3RkOjpvcHRpb25hbDxTZWNv
bmRzPiYmKT4mJikgb3ZlcnJpZGU7CisgICAgdm9pZCBhbmltYXRpb25DdXJyZW50VGltZShDb21w
bGV0aW9uSGFuZGxlcjx2b2lkKHN0ZDo6b3B0aW9uYWw8U2Vjb25kcz4mJik+JiYpIG92ZXJyaWRl
OworICAgIHZvaWQgc2V0QW5pbWF0aW9uQ3VycmVudFRpbWUoU2Vjb25kcywgQ29tcGxldGlvbkhh
bmRsZXI8dm9pZChib29sIHN1Y2Nlc3MpPiYmKSBvdmVycmlkZTsKIAogICAgIFdlYWtQdHI8TW9k
ZWxQbGF5ZXJDbGllbnQ+IG1fY2xpZW50OwogfTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L01vZHVsZXMvbW9kZWwtZWxlbWVudC9zY2VuZWtpdC9TY2VuZUtpdE1vZGVsUGxheWVyLmggYi9T
b3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21vZGVsLWVsZW1lbnQvc2NlbmVraXQvU2NlbmVLaXRNb2Rl
bFBsYXllci5oCmluZGV4IDM1MWUxMWM1Y2ZiYWM0NzMzMzIyODI5OTljMjAxYzZmZmVmYjgxN2Iu
LmUyZTJiNjk1OWRiNzI1ZDlkZGU4OThjOTNhN2M1ZjU1ZTYxODhmOTEgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL01vZHVsZXMvbW9kZWwtZWxlbWVudC9zY2VuZWtpdC9TY2VuZUtpdE1vZGVs
UGxheWVyLmgKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tb2RlbC1lbGVtZW50L3NjZW5l
a2l0L1NjZW5lS2l0TW9kZWxQbGF5ZXIuaApAQCAtNjUsNiArNjUsOSBAQCBwcml2YXRlOgogICAg
IHZvaWQgc2V0Q2FtZXJhKEhUTUxNb2RlbEVsZW1lbnRDYW1lcmEsIENvbXBsZXRpb25IYW5kbGVy
PHZvaWQoYm9vbCBzdWNjZXNzKT4mJikgb3ZlcnJpZGU7CiAgICAgdm9pZCBpc1BsYXlpbmdBbmlt
YXRpb24oQ29tcGxldGlvbkhhbmRsZXI8dm9pZChzdGQ6Om9wdGlvbmFsPGJvb2w+JiYpPiYmKSBv
dmVycmlkZTsKICAgICB2b2lkIHNldEFuaW1hdGlvbklzUGxheWluZyhib29sLCBDb21wbGV0aW9u
SGFuZGxlcjx2b2lkKGJvb2wgc3VjY2Vzcyk+JiYpIG92ZXJyaWRlOworICAgIHZvaWQgYW5pbWF0
aW9uRHVyYXRpb24oQ29tcGxldGlvbkhhbmRsZXI8dm9pZChzdGQ6Om9wdGlvbmFsPFNlY29uZHM+
JiYpPiYmKSBvdmVycmlkZTsKKyAgICB2b2lkIGFuaW1hdGlvbkN1cnJlbnRUaW1lKENvbXBsZXRp
b25IYW5kbGVyPHZvaWQoc3RkOjpvcHRpb25hbDxTZWNvbmRzPiYmKT4mJikgb3ZlcnJpZGU7Cisg
ICAgdm9pZCBzZXRBbmltYXRpb25DdXJyZW50VGltZShTZWNvbmRzLCBDb21wbGV0aW9uSGFuZGxl
cjx2b2lkKGJvb2wgc3VjY2Vzcyk+JiYpIG92ZXJyaWRlOwogCiAgICAgLy8gU2NlbmVLaXRNb2Rl
bExvYWRlckNsaWVudCBvdmVycmlkZXMuCiAgICAgdmlydHVhbCB2b2lkIGRpZEZpbmlzaExvYWRp
bmcoU2NlbmVLaXRNb2RlbExvYWRlciYsIFJlZjxTY2VuZUtpdE1vZGVsPikgb3ZlcnJpZGU7CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21vZGVsLWVsZW1lbnQvc2NlbmVraXQv
U2NlbmVLaXRNb2RlbFBsYXllci5tbSBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbW9kZWwtZWxl
bWVudC9zY2VuZWtpdC9TY2VuZUtpdE1vZGVsUGxheWVyLm1tCmluZGV4IDRhM2E3ZDRjZjIxNWJl
OTc4YjdlY2I3MzNiZWEyMDYyMGQ3NzdmYjIuLmJiODM4YzhmZjdhYWRlZGU4NDY4N2YzZmFkZTQ3
MjA2YTg0NjQ4ZmYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbW9kZWwtZWxl
bWVudC9zY2VuZWtpdC9TY2VuZUtpdE1vZGVsUGxheWVyLm1tCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L01vZHVsZXMvbW9kZWwtZWxlbWVudC9zY2VuZWtpdC9TY2VuZUtpdE1vZGVsUGxheWVyLm1tCkBA
IC0xMDQsNiArMTA0LDE4IEBAIHZvaWQgU2NlbmVLaXRNb2RlbFBsYXllcjo6c2V0QW5pbWF0aW9u
SXNQbGF5aW5nKGJvb2wsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoYm9vCiB7CiB9CiAKK3ZvaWQg
U2NlbmVLaXRNb2RlbFBsYXllcjo6YW5pbWF0aW9uRHVyYXRpb24oQ29tcGxldGlvbkhhbmRsZXI8
dm9pZChzdGQ6Om9wdGlvbmFsPFNlY29uZHM+JiYpPiYmKQoreworfQorCit2b2lkIFNjZW5lS2l0
TW9kZWxQbGF5ZXI6OmFuaW1hdGlvbkN1cnJlbnRUaW1lKENvbXBsZXRpb25IYW5kbGVyPHZvaWQo
c3RkOjpvcHRpb25hbDxTZWNvbmRzPiYmKT4mJikKK3sKK30KKwordm9pZCBTY2VuZUtpdE1vZGVs
UGxheWVyOjpzZXRBbmltYXRpb25DdXJyZW50VGltZShTZWNvbmRzLCBDb21wbGV0aW9uSGFuZGxl
cjx2b2lkKGJvb2wgc3VjY2Vzcyk+JiYpCit7Cit9CisKIC8vIE1BUks6IC0gU2NlbmVLaXRNb2Rl
bExvYWRlckNsaWVudCBvdmVycmlkZXMuCiAKIHZvaWQgU2NlbmVLaXRNb2RlbFBsYXllcjo6ZGlk
RmluaXNoTG9hZGluZyhTY2VuZUtpdE1vZGVsTG9hZGVyJiBsb2FkZXIsIFJlZjxTY2VuZUtpdE1v
ZGVsPiBtb2RlbCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL1BBTC9wYWwvc3BpL2lvcy9T
eXN0ZW1QcmV2aWV3U1BJLmggYi9Tb3VyY2UvV2ViQ29yZS9QQUwvcGFsL3NwaS9pb3MvU3lzdGVt
UHJldmlld1NQSS5oCmluZGV4IGNlNTE1OTI5NzA0YjFhMWZmMDZjZGUxYTY0MTBmMmQxNDNkMGZk
YjIuLjQ1MTk5NDdhZDg1ZWQyYTgwZmVlOWYyZmQzZmQyMGQzNzhhMzU4YTcgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL1BBTC9wYWwvc3BpL2lvcy9TeXN0ZW1QcmV2aWV3U1BJLmgKKysrIGIv
U291cmNlL1dlYkNvcmUvUEFML3BhbC9zcGkvaW9zL1N5c3RlbVByZXZpZXdTUEkuaApAQCAtMTA4
LDYgKzEwOCw4IEBAIHR5cGVkZWYgdm9pZCAoXkFTVkNhbWVyYVRyYW5zZm9ybVJlcGx5QmxvY2sp
IChzaW1kX2Zsb2F0MyBjYW1lcmFUcmFuc2Zvcm0sIE5TRXJyCiAtICh2b2lkKWdldENhbWVyYVRy
YW5zZm9ybTooQVNWQ2FtZXJhVHJhbnNmb3JtUmVwbHlCbG9jaylyZXBseTsKIC0gKHZvaWQpc2V0
Q2FtZXJhVHJhbnNmb3JtOihzaW1kX2Zsb2F0Myl0cmFuc2Zvcm07CiAKK0Bwcm9wZXJ0eSAobm9u
YXRvbWljLCByZWFkd3JpdGUpIE5TVGltZUludGVydmFsIGN1cnJlbnRUaW1lOworQHByb3BlcnR5
IChub25hdG9taWMsIHJlYWRvbmx5KSBOU1RpbWVJbnRlcnZhbCBkdXJhdGlvbjsKIEBwcm9wZXJ0
eSAobm9uYXRvbWljLCByZWFkb25seSkgQk9PTCBpc1BsYXlpbmc7CiB0eXBlZGVmIHZvaWQgKF5B
U1ZTZXRJc1BsYXlpbmdSZXBseUJsb2NrKSAoQk9PTCBpc1BsYXlpbmcsIE5TRXJyb3IgKiBfTnVs
bGFibGUgZXJyb3IpOwogLSAodm9pZClzZXRJc1BsYXlpbmc6KEJPT0wpaXNQbGF5aW5nIHJlcGx5
OihBU1ZTZXRJc1BsYXlpbmdSZXBseUJsb2NrKXJlcGx5OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvUEFML3BhbC9zcGkvbWFjL1N5c3RlbVByZXZpZXdTUEkuaCBiL1NvdXJjZS9XZWJDb3Jl
L1BBTC9wYWwvc3BpL21hYy9TeXN0ZW1QcmV2aWV3U1BJLmgKaW5kZXggNjUxMDMxZjA2YzVjZjQ1
M2I0NzRiZWU5NTY5NTgyNTE4MzMzMTZiZC4uY2JmMzc3MTg1ZjNmZDlhNmE5MzYxY2Q4ZDExY2Fk
YWFjOTA0OThhMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvUEFML3BhbC9zcGkvbWFjL1N5
c3RlbVByZXZpZXdTUEkuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9QQUwvcGFsL3NwaS9tYWMvU3lz
dGVtUHJldmlld1NQSS5oCkBAIC01OCw2ICs1OCw4IEBAIHR5cGVkZWYgdm9pZCAoXkFTVkNhbWVy
YVRyYW5zZm9ybVJlcGx5QmxvY2spIChzaW1kX2Zsb2F0MyBjYW1lcmFUcmFuc2Zvcm0sIE5TRXJy
CiAtICh2b2lkKWdldENhbWVyYVRyYW5zZm9ybTooQVNWQ2FtZXJhVHJhbnNmb3JtUmVwbHlCbG9j
aylyZXBseTsKIC0gKHZvaWQpc2V0Q2FtZXJhVHJhbnNmb3JtOihzaW1kX2Zsb2F0Myl0cmFuc2Zv
cm07CiAKK0Bwcm9wZXJ0eSAobm9uYXRvbWljLCByZWFkd3JpdGUpIE5TVGltZUludGVydmFsIGN1
cnJlbnRUaW1lOworQHByb3BlcnR5IChub25hdG9taWMsIHJlYWRvbmx5KSBOU1RpbWVJbnRlcnZh
bCBkdXJhdGlvbjsKIEBwcm9wZXJ0eSAobm9uYXRvbWljLCByZWFkb25seSkgQk9PTCBpc1BsYXlp
bmc7CiB0eXBlZGVmIHZvaWQgKF5BU1ZTZXRJc1BsYXlpbmdSZXBseUJsb2NrKSAoQk9PTCBpc1Bs
YXlpbmcsIE5TRXJyb3IgKiBfTnVsbGFibGUgZXJyb3IpOwogLSAodm9pZClzZXRJc1BsYXlpbmc6
KEJPT0wpaXNQbGF5aW5nIHJlcGx5OihBU1ZTZXRJc1BsYXlpbmdSZXBseUJsb2NrKXJlcGx5Owpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQ29jb2EvTW9kZWxFbGVtZW50Q29u
dHJvbGxlckNvY29hLm1tIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQ29jb2EvTW9kZWxFbGVt
ZW50Q29udHJvbGxlckNvY29hLm1tCmluZGV4IDEzMGM0OTYzNTAxODM0MzE4NTBmNmZlYTkyMGFj
M2E0OWU4MTc3ZjkuLmZlYWE1ZDRhOTFjNWQ1M2E2MGYwOGM5ZTczOGJmNWIzZTYxYTZiY2EgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0NvY29hL01vZGVsRWxlbWVudENvbnRy
b2xsZXJDb2NvYS5tbQorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9Db2NvYS9Nb2RlbEVs
ZW1lbnRDb250cm9sbGVyQ29jb2EubW0KQEAgLTM2LDYgKzM2LDcgQEAKICNpbXBvcnQgPHNpbWQv
c2ltZC5oPgogI2ltcG9ydCA8d3RmL01haW5UaHJlYWQuaD4KICNpbXBvcnQgPHd0Zi9Nb25vdG9u
aWNUaW1lLmg+CisjaW1wb3J0IDx3dGYvU2Vjb25kcy5oPgogCiAjaWYgRU5BQkxFKEFSS0lUX0lO
TElORV9QUkVWSUVXX0lPUykKICNpbXBvcnQgIkFQSVVJQ2xpZW50LmgiCkBAIC0zNTksNiArMzYw
LDcyIEBAIHZvaWQgTW9kZWxFbGVtZW50Q29udHJvbGxlcjo6c2V0QW5pbWF0aW9uSXNQbGF5aW5n
Rm9yTW9kZWxFbGVtZW50KE1vZGVsSWRlbnRpZmllCiAjZW5kaWYKIH0KIAordm9pZCBNb2RlbEVs
ZW1lbnRDb250cm9sbGVyOjphbmltYXRpb25EdXJhdGlvbkZvck1vZGVsRWxlbWVudChNb2RlbElk
ZW50aWZpZXIgbW9kZWxJZGVudGlmaWVyLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKEV4cGVjdGVk
PFNlY29uZHMsIFdlYkNvcmU6OlJlc291cmNlRXJyb3I+KT4mJiBjb21wbGV0aW9uSGFuZGxlcikK
K3sKKyAgICBhdXRvKiBwcmV2aWV3ID0gcHJldmlld0Zvck1vZGVsSWRlbnRpZmllcihtb2RlbElk
ZW50aWZpZXIpOworICAgIGlmICghcHJldmlld0hhc0FuaW1hdGlvblN1cHBvcnQocHJldmlldykp
IHsKKyAgICAgICAgY2FsbE9uTWFpblJ1bkxvb3AoW3dlYWtUaGlzID0gV2Vha1B0ciB7ICp0aGlz
IH0sIGNvbXBsZXRpb25IYW5kbGVyID0gV1RGTW92ZShjb21wbGV0aW9uSGFuZGxlciksIGVycm9y
ID0gV2ViQ29yZTo6UmVzb3VyY2VFcnJvciB7IFdlYkNvcmU6OlJlc291cmNlRXJyb3I6OlR5cGU6
OkdlbmVyYWwgfV0gKCkgbXV0YWJsZSB7CisgICAgICAgICAgICBpZiAod2Vha1RoaXMpCisgICAg
ICAgICAgICAgICAgY29tcGxldGlvbkhhbmRsZXIobWFrZVVuZXhwZWN0ZWQoZXJyb3IpKTsKKyAg
ICAgICAgfSk7CisgICAgICAgIHJldHVybjsKKyAgICB9CisKKyNpZiBFTkFCTEUoQVJLSVRfSU5M
SU5FX1BSRVZJRVdfQU5JTUFUSU9OU19DT05UUk9MKQorICAgIGF1dG8gZHVyYXRpb24gPSBbcHJl
dmlldyBkdXJhdGlvbl07CisgICAgY2FsbE9uTWFpblJ1bkxvb3AoW2R1cmF0aW9uLCB3ZWFrVGhp
cyA9IFdlYWtQdHIgeyAqdGhpcyB9LCBjb21wbGV0aW9uSGFuZGxlciA9IFdURk1vdmUoY29tcGxl
dGlvbkhhbmRsZXIpXSAoKSBtdXRhYmxlIHsKKyAgICAgICAgaWYgKHdlYWtUaGlzKQorICAgICAg
ICAgICAgY29tcGxldGlvbkhhbmRsZXIoU2Vjb25kcyhkdXJhdGlvbikpOworICAgIH0pOworI2Vs
c2UKKyAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsKKyNlbmRpZgorfQorCit2b2lkIE1vZGVsRWxl
bWVudENvbnRyb2xsZXI6OmFuaW1hdGlvbkN1cnJlbnRUaW1lRm9yTW9kZWxFbGVtZW50KE1vZGVs
SWRlbnRpZmllciBtb2RlbElkZW50aWZpZXIsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoRXhwZWN0
ZWQ8U2Vjb25kcywgV2ViQ29yZTo6UmVzb3VyY2VFcnJvcj4pPiYmIGNvbXBsZXRpb25IYW5kbGVy
KQoreworICAgIGF1dG8qIHByZXZpZXcgPSBwcmV2aWV3Rm9yTW9kZWxJZGVudGlmaWVyKG1vZGVs
SWRlbnRpZmllcik7CisgICAgaWYgKCFwcmV2aWV3SGFzQW5pbWF0aW9uU3VwcG9ydChwcmV2aWV3
KSkgeworICAgICAgICBjYWxsT25NYWluUnVuTG9vcChbd2Vha1RoaXMgPSBXZWFrUHRyIHsgKnRo
aXMgfSwgY29tcGxldGlvbkhhbmRsZXIgPSBXVEZNb3ZlKGNvbXBsZXRpb25IYW5kbGVyKSwgZXJy
b3IgPSBXZWJDb3JlOjpSZXNvdXJjZUVycm9yIHsgV2ViQ29yZTo6UmVzb3VyY2VFcnJvcjo6VHlw
ZTo6R2VuZXJhbCB9XSAoKSBtdXRhYmxlIHsKKyAgICAgICAgICAgIGlmICh3ZWFrVGhpcykKKyAg
ICAgICAgICAgICAgICBjb21wbGV0aW9uSGFuZGxlcihtYWtlVW5leHBlY3RlZChlcnJvcikpOwor
ICAgICAgICB9KTsKKyAgICAgICAgcmV0dXJuOworICAgIH0KKworI2lmIEVOQUJMRShBUktJVF9J
TkxJTkVfUFJFVklFV19BTklNQVRJT05TX0NPTlRST0wpCisgICAgYXV0byBjdXJyZW50VGltZSA9
IFtwcmV2aWV3IGN1cnJlbnRUaW1lXTsKKyAgICBjYWxsT25NYWluUnVuTG9vcChbY3VycmVudFRp
bWUsIHdlYWtUaGlzID0gV2Vha1B0ciB7ICp0aGlzIH0sIGNvbXBsZXRpb25IYW5kbGVyID0gV1RG
TW92ZShjb21wbGV0aW9uSGFuZGxlcildICgpIG11dGFibGUgeworICAgICAgICBpZiAod2Vha1Ro
aXMpCisgICAgICAgICAgICBjb21wbGV0aW9uSGFuZGxlcihTZWNvbmRzKGN1cnJlbnRUaW1lKSk7
CisgICAgfSk7CisjZWxzZQorICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgpOworI2VuZGlmCit9CisK
K3ZvaWQgTW9kZWxFbGVtZW50Q29udHJvbGxlcjo6c2V0QW5pbWF0aW9uQ3VycmVudFRpbWVGb3JN
b2RlbEVsZW1lbnQoTW9kZWxJZGVudGlmaWVyIG1vZGVsSWRlbnRpZmllciwgU2Vjb25kcyBjdXJy
ZW50VGltZSwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChib29sKT4mJiBjb21wbGV0aW9uSGFuZGxl
cikKK3sKKyAgICBhdXRvKiBwcmV2aWV3ID0gcHJldmlld0Zvck1vZGVsSWRlbnRpZmllcihtb2Rl
bElkZW50aWZpZXIpOworICAgIGlmICghcHJldmlld0hhc0FuaW1hdGlvblN1cHBvcnQocHJldmll
dykpIHsKKyAgICAgICAgY2FsbE9uTWFpblJ1bkxvb3AoW3dlYWtUaGlzID0gV2Vha1B0ciB7ICp0
aGlzIH0sIGNvbXBsZXRpb25IYW5kbGVyID0gV1RGTW92ZShjb21wbGV0aW9uSGFuZGxlcildICgp
IG11dGFibGUgeworICAgICAgICAgICAgaWYgKHdlYWtUaGlzKQorICAgICAgICAgICAgICAgIGNv
bXBsZXRpb25IYW5kbGVyKGZhbHNlKTsKKyAgICAgICAgfSk7CisgICAgICAgIHJldHVybjsKKyAg
ICB9CisKKyNpZiBFTkFCTEUoQVJLSVRfSU5MSU5FX1BSRVZJRVdfQU5JTUFUSU9OU19DT05UUk9M
KQorICAgIHByZXZpZXcuY3VycmVudFRpbWUgPSBjdXJyZW50VGltZS5zZWNvbmRzKCk7CisgICAg
Y2FsbE9uTWFpblJ1bkxvb3AoW3dlYWtUaGlzID0gV2Vha1B0ciB7ICp0aGlzIH0sIGNvbXBsZXRp
b25IYW5kbGVyID0gV1RGTW92ZShjb21wbGV0aW9uSGFuZGxlcildICgpIG11dGFibGUgeworICAg
ICAgICBpZiAod2Vha1RoaXMpCisgICAgICAgICAgICBjb21wbGV0aW9uSGFuZGxlcih0cnVlKTsK
KyAgICB9KTsKKyNlbHNlCisgICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7CisjZW5kaWYKK30KKwog
I2VuZGlmCiAKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL01vZGVsRWxl
bWVudENvbnRyb2xsZXIuaCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL01vZGVsRWxlbWVudENv
bnRyb2xsZXIuaAppbmRleCAxNjRkNjlhMjI0MjY2MDA3MTU0Y2EwNzg3ZDA2OGFmZDY3MTQ5OTc1
Li4yNTYyNjQzZmY2ZDAxYWQyNDFkYjFiNzQ0NWJmYjViNTQzNjkyY2ZhIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9Nb2RlbEVsZW1lbnRDb250cm9sbGVyLmgKKysrIGIvU291
cmNlL1dlYktpdC9VSVByb2Nlc3MvTW9kZWxFbGVtZW50Q29udHJvbGxlci5oCkBAIC01Niw2ICs1
Niw5IEBAIHB1YmxpYzoKICAgICB2b2lkIHNldENhbWVyYUZvck1vZGVsRWxlbWVudChNb2RlbElk
ZW50aWZpZXIsIFdlYkNvcmU6OkhUTUxNb2RlbEVsZW1lbnRDYW1lcmEsIENvbXBsZXRpb25IYW5k
bGVyPHZvaWQoYm9vbCk+JiYpOwogICAgIHZvaWQgaXNQbGF5aW5nQW5pbWF0aW9uRm9yTW9kZWxF
bGVtZW50KE1vZGVsSWRlbnRpZmllciwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChFeHBlY3RlZDxi
b29sLCBXZWJDb3JlOjpSZXNvdXJjZUVycm9yPik+JiYpOwogICAgIHZvaWQgc2V0QW5pbWF0aW9u
SXNQbGF5aW5nRm9yTW9kZWxFbGVtZW50KE1vZGVsSWRlbnRpZmllciwgYm9vbCwgQ29tcGxldGlv
bkhhbmRsZXI8dm9pZChib29sKT4mJik7CisgICAgdm9pZCBhbmltYXRpb25EdXJhdGlvbkZvck1v
ZGVsRWxlbWVudChNb2RlbElkZW50aWZpZXIsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoRXhwZWN0
ZWQ8U2Vjb25kcywgV2ViQ29yZTo6UmVzb3VyY2VFcnJvcj4pPiYmKTsKKyAgICB2b2lkIGFuaW1h
dGlvbkN1cnJlbnRUaW1lRm9yTW9kZWxFbGVtZW50KE1vZGVsSWRlbnRpZmllciwgQ29tcGxldGlv
bkhhbmRsZXI8dm9pZChFeHBlY3RlZDxTZWNvbmRzLCBXZWJDb3JlOjpSZXNvdXJjZUVycm9yPik+
JiYpOworICAgIHZvaWQgc2V0QW5pbWF0aW9uQ3VycmVudFRpbWVGb3JNb2RlbEVsZW1lbnQoTW9k
ZWxJZGVudGlmaWVyLCBTZWNvbmRzLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKGJvb2wpPiYmKTsK
ICNlbmRpZgogI2lmIEVOQUJMRShBUktJVF9JTkxJTkVfUFJFVklFV19JT1MpCiAgICAgdm9pZCB0
YWtlTW9kZWxFbGVtZW50RnVsbHNjcmVlbihNb2RlbElkZW50aWZpZXIpOwpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmNwcCBiL1NvdXJjZS9XZWJLaXQv
VUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5jcHAKaW5kZXggYTA5MWRmMTk0ZTcwYTdmMGRlMmFhYWIz
MjVjNjVhODE3NDQ5MzhlZS4uOGM1YWJhZDdhOGQwMGY3MzkzNThlMzIxMjExM2QyMjk2ZmUyMTg3
MyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmNwcAor
KysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuY3BwCkBAIC0xMDg1Miw2
ICsxMDg1MiwyMSBAQCB2b2lkIFdlYlBhZ2VQcm94eTo6bW9kZWxFbGVtZW50U2V0QW5pbWF0aW9u
SXNQbGF5aW5nKE1vZGVsSWRlbnRpZmllciBtb2RlbElkZW50aQogewogICAgIG1vZGVsRWxlbWVu
dENvbnRyb2xsZXIoKS0+c2V0QW5pbWF0aW9uSXNQbGF5aW5nRm9yTW9kZWxFbGVtZW50KG1vZGVs
SWRlbnRpZmllciwgaXNQbGF5aW5nLCBXVEZNb3ZlKGNvbXBsZXRpb25IYW5kbGVyKSk7CiB9CisK
K3ZvaWQgV2ViUGFnZVByb3h5Ojptb2RlbEVsZW1lbnRBbmltYXRpb25EdXJhdGlvbihNb2RlbElk
ZW50aWZpZXIgbW9kZWxJZGVudGlmaWVyLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKEV4cGVjdGVk
PFNlY29uZHMsIFdlYkNvcmU6OlJlc291cmNlRXJyb3I+KT4mJiBjb21wbGV0aW9uSGFuZGxlcikK
K3sKKyAgICBtb2RlbEVsZW1lbnRDb250cm9sbGVyKCktPmFuaW1hdGlvbkR1cmF0aW9uRm9yTW9k
ZWxFbGVtZW50KG1vZGVsSWRlbnRpZmllciwgV1RGTW92ZShjb21wbGV0aW9uSGFuZGxlcikpOwor
fQorCit2b2lkIFdlYlBhZ2VQcm94eTo6bW9kZWxFbGVtZW50QW5pbWF0aW9uQ3VycmVudFRpbWUo
TW9kZWxJZGVudGlmaWVyIG1vZGVsSWRlbnRpZmllciwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChF
eHBlY3RlZDxTZWNvbmRzLCBXZWJDb3JlOjpSZXNvdXJjZUVycm9yPik+JiYgY29tcGxldGlvbkhh
bmRsZXIpCit7CisgICAgbW9kZWxFbGVtZW50Q29udHJvbGxlcigpLT5hbmltYXRpb25DdXJyZW50
VGltZUZvck1vZGVsRWxlbWVudChtb2RlbElkZW50aWZpZXIsIFdURk1vdmUoY29tcGxldGlvbkhh
bmRsZXIpKTsKK30KKwordm9pZCBXZWJQYWdlUHJveHk6Om1vZGVsRWxlbWVudFNldEFuaW1hdGlv
bkN1cnJlbnRUaW1lKE1vZGVsSWRlbnRpZmllciBtb2RlbElkZW50aWZpZXIsIFNlY29uZHMgY3Vy
cmVudFRpbWUsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoYm9vbCk+JiYgY29tcGxldGlvbkhhbmRs
ZXIpCit7CisgICAgbW9kZWxFbGVtZW50Q29udHJvbGxlcigpLT5zZXRBbmltYXRpb25DdXJyZW50
VGltZUZvck1vZGVsRWxlbWVudChtb2RlbElkZW50aWZpZXIsIGN1cnJlbnRUaW1lLCBXVEZNb3Zl
KGNvbXBsZXRpb25IYW5kbGVyKSk7Cit9CiAjZW5kaWYKIAogI2lmIEVOQUJMRShBUktJVF9JTkxJ
TkVfUFJFVklFV19JT1MpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQ
YWdlUHJveHkuaCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5oCmluZGV4
IDRlODdjNTI5MWYwYTRlNzFmMDFiMGZlMjg1MzA4NjRjNjQzZTM1ZmQuLjNhMWFkOTcwOWVmNmQz
Y2RjNzc2MGFhOWE0NDg5MzJmMzZkMjVjMzcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQ
cm9jZXNzL1dlYlBhZ2VQcm94eS5oCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlBh
Z2VQcm94eS5oCkBAIC01OTIsNiArNTkyLDkgQEAgcHVibGljOgogICAgIHZvaWQgbW9kZWxFbGVt
ZW50U2V0Q2FtZXJhKE1vZGVsSWRlbnRpZmllciwgV2ViQ29yZTo6SFRNTE1vZGVsRWxlbWVudENh
bWVyYSwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChib29sKT4mJik7CiAgICAgdm9pZCBtb2RlbEVs
ZW1lbnRJc1BsYXlpbmdBbmltYXRpb24oTW9kZWxJZGVudGlmaWVyLCBDb21wbGV0aW9uSGFuZGxl
cjx2b2lkKEV4cGVjdGVkPGJvb2wsIFdlYkNvcmU6OlJlc291cmNlRXJyb3I+KT4mJik7CiAgICAg
dm9pZCBtb2RlbEVsZW1lbnRTZXRBbmltYXRpb25Jc1BsYXlpbmcoTW9kZWxJZGVudGlmaWVyLCBi
b29sLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKGJvb2wpPiYmKTsKKyAgICB2b2lkIG1vZGVsRWxl
bWVudEFuaW1hdGlvbkR1cmF0aW9uKE1vZGVsSWRlbnRpZmllciwgQ29tcGxldGlvbkhhbmRsZXI8
dm9pZChFeHBlY3RlZDxTZWNvbmRzLCBXZWJDb3JlOjpSZXNvdXJjZUVycm9yPik+JiYpOworICAg
IHZvaWQgbW9kZWxFbGVtZW50QW5pbWF0aW9uQ3VycmVudFRpbWUoTW9kZWxJZGVudGlmaWVyLCBD
b21wbGV0aW9uSGFuZGxlcjx2b2lkKEV4cGVjdGVkPFNlY29uZHMsIFdlYkNvcmU6OlJlc291cmNl
RXJyb3I+KT4mJik7CisgICAgdm9pZCBtb2RlbEVsZW1lbnRTZXRBbmltYXRpb25DdXJyZW50VGlt
ZShNb2RlbElkZW50aWZpZXIsIFNlY29uZHMsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoYm9vbCk+
JiYpOwogI2VuZGlmCiAjaWYgRU5BQkxFKEFSS0lUX0lOTElORV9QUkVWSUVXX0lPUykKICAgICB2
b2lkIHRha2VNb2RlbEVsZW1lbnRGdWxsc2NyZWVuKE1vZGVsSWRlbnRpZmllcik7CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkubWVzc2FnZXMuaW4gYi9T
b3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkubWVzc2FnZXMuaW4KaW5kZXggMWQz
OTNkMzU2NDFjMTMyYjkzN2E0YmJkN2I1NjE1OGFmNDIzN2M2NS4uMDllYmNhYzM2MGQzZWYwMzk1
NzViN2UxNGNmOTUwNzBlYzMwZDJlYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nl
c3MvV2ViUGFnZVByb3h5Lm1lc3NhZ2VzLmluCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNz
L1dlYlBhZ2VQcm94eS5tZXNzYWdlcy5pbgpAQCAtNTk5LDYgKzU5OSw5IEBAIG1lc3NhZ2VzIC0+
IFdlYlBhZ2VQcm94eSB7CiAgICAgTW9kZWxFbGVtZW50U2V0Q2FtZXJhKHN0cnVjdCBXZWJLaXQ6
Ok1vZGVsSWRlbnRpZmllciBtb2RlbElkZW50aWZpZXIsIHN0cnVjdCBXZWJDb3JlOjpIVE1MTW9k
ZWxFbGVtZW50Q2FtZXJhIGNhbWVyYSkgLT4gKGJvb2wgc3VjY2VzcykgQXN5bmMKICAgICBNb2Rl
bEVsZW1lbnRJc1BsYXlpbmdBbmltYXRpb24oc3RydWN0IFdlYktpdDo6TW9kZWxJZGVudGlmaWVy
IG1vZGVsSWRlbnRpZmllcikgLT4gKEV4cGVjdGVkPGJvb2wsIFdlYkNvcmU6OlJlc291cmNlRXJy
b3I+IHJlc3VsdCkgQXN5bmMKICAgICBNb2RlbEVsZW1lbnRTZXRBbmltYXRpb25Jc1BsYXlpbmco
c3RydWN0IFdlYktpdDo6TW9kZWxJZGVudGlmaWVyIG1vZGVsSWRlbnRpZmllciwgYm9vbCBpc1Bs
YXlpbmcpIC0+IChib29sIHN1Y2Nlc3MpIEFzeW5jCisgICAgTW9kZWxFbGVtZW50QW5pbWF0aW9u
RHVyYXRpb24oc3RydWN0IFdlYktpdDo6TW9kZWxJZGVudGlmaWVyIG1vZGVsSWRlbnRpZmllcikg
LT4gKEV4cGVjdGVkPFNlY29uZHMsIFdlYkNvcmU6OlJlc291cmNlRXJyb3I+IHJlc3VsdCkgQXN5
bmMKKyAgICBNb2RlbEVsZW1lbnRBbmltYXRpb25DdXJyZW50VGltZShzdHJ1Y3QgV2ViS2l0OjpN
b2RlbElkZW50aWZpZXIgbW9kZWxJZGVudGlmaWVyKSAtPiAoRXhwZWN0ZWQ8U2Vjb25kcywgV2Vi
Q29yZTo6UmVzb3VyY2VFcnJvcj4gcmVzdWx0KSBBc3luYworICAgIE1vZGVsRWxlbWVudFNldEFu
aW1hdGlvbkN1cnJlbnRUaW1lKHN0cnVjdCBXZWJLaXQ6Ok1vZGVsSWRlbnRpZmllciBtb2RlbElk
ZW50aWZpZXIsIFNlY29uZHMgY3VycmVudFRpbWUpIC0+IChib29sIHN1Y2Nlc3MpIEFzeW5jCiAj
ZW5kaWYKIAogICAgIHJlcXVlc3RQZXJtaXNzaW9uKHN0cnVjdCBXZWJDb3JlOjpDbGllbnRPcmln
aW4gb3JpZ2luLCBzdHJ1Y3QgV2ViQ29yZTo6UGVybWlzc2lvbkRlc2NyaXB0b3IgZGVzY3JpcHRv
cikgLT4gKGVudW06dWludDhfdCBXZWJDb3JlOjpQZXJtaXNzaW9uU3RhdGUgc3RhdGUpIEFzeW5j
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvTW9kZWwvQVJLaXRJbmxpbmVQ
cmV2aWV3TW9kZWxQbGF5ZXIuaCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9Nb2RlbC9BUktp
dElubGluZVByZXZpZXdNb2RlbFBsYXllci5oCmluZGV4IGI4ZTU1YjIzNDU5YzUwMWZkN2Y4YTlh
YzNmZDkyODUyZGZiNGY2NzcuLjJhNTNjOWQ1NDk3ZmZlZjNiNzM3OGU3OTM3Y2MwZWZjNmVlZGY3
ZTkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9Nb2RlbC9BUktpdElubGlu
ZVByZXZpZXdNb2RlbFBsYXllci5oCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9Nb2Rl
bC9BUktpdElubGluZVByZXZpZXdNb2RlbFBsYXllci5oCkBAIC01Nyw2ICs1Nyw5IEBAIHByaXZh
dGU6CiAgICAgdm9pZCBzZXRDYW1lcmEoV2ViQ29yZTo6SFRNTE1vZGVsRWxlbWVudENhbWVyYSwg
Q29tcGxldGlvbkhhbmRsZXI8dm9pZChib29sIHN1Y2Nlc3MpPiYmKSBvdmVycmlkZTsKICAgICB2
b2lkIGlzUGxheWluZ0FuaW1hdGlvbihDb21wbGV0aW9uSGFuZGxlcjx2b2lkKHN0ZDo6b3B0aW9u
YWw8Ym9vbD4mJik+JiYpIG92ZXJyaWRlOwogICAgIHZvaWQgc2V0QW5pbWF0aW9uSXNQbGF5aW5n
KGJvb2wsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoYm9vbCBzdWNjZXNzKT4mJikgb3ZlcnJpZGU7
CisgICAgdm9pZCBhbmltYXRpb25EdXJhdGlvbihDb21wbGV0aW9uSGFuZGxlcjx2b2lkKHN0ZDo6
b3B0aW9uYWw8U2Vjb25kcz4mJik+JiYpIG92ZXJyaWRlOworICAgIHZvaWQgYW5pbWF0aW9uQ3Vy
cmVudFRpbWUoQ29tcGxldGlvbkhhbmRsZXI8dm9pZChzdGQ6Om9wdGlvbmFsPFNlY29uZHM+JiYp
PiYmKSBvdmVycmlkZTsKKyAgICB2b2lkIHNldEFuaW1hdGlvbkN1cnJlbnRUaW1lKFNlY29uZHMs
IENvbXBsZXRpb25IYW5kbGVyPHZvaWQoYm9vbCBzdWNjZXNzKT4mJikgb3ZlcnJpZGU7CiAKICAg
ICBXZWFrUHRyPFdlYlBhZ2U+IG1fcGFnZTsKICAgICBXZWFrUHRyPFdlYkNvcmU6Ok1vZGVsUGxh
eWVyQ2xpZW50PiBtX2NsaWVudDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vz
cy9Nb2RlbC9BUktpdElubGluZVByZXZpZXdNb2RlbFBsYXllci5tbSBiL1NvdXJjZS9XZWJLaXQv
V2ViUHJvY2Vzcy9Nb2RlbC9BUktpdElubGluZVByZXZpZXdNb2RlbFBsYXllci5tbQppbmRleCA5
NzAzN2JhZWY4YTU5ODBlNWFkNWRmMjI2MGQ4Njk0MzA1NzRiNmJjLi5hMjk3OGExNzE1NTY3NmRi
ZTk3NWQ3OTI5ZDYzY2E0M2M1M2ZjOWU3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlBy
b2Nlc3MvTW9kZWwvQVJLaXRJbmxpbmVQcmV2aWV3TW9kZWxQbGF5ZXIubW0KKysrIGIvU291cmNl
L1dlYktpdC9XZWJQcm9jZXNzL01vZGVsL0FSS2l0SW5saW5lUHJldmlld01vZGVsUGxheWVyLm1t
CkBAIC0xNDksNiArMTQ5LDc5IEBAIHZvaWQgQVJLaXRJbmxpbmVQcmV2aWV3TW9kZWxQbGF5ZXI6
OnNldEFuaW1hdGlvbklzUGxheWluZyhib29sIGlzUGxheWluZywgQ29tcGxlCiAgICAgc3Ryb25n
UGFnZS0+c2VuZFdpdGhBc3luY1JlcGx5KE1lc3NhZ2VzOjpXZWJQYWdlUHJveHk6Ok1vZGVsRWxl
bWVudFNldEFuaW1hdGlvbklzUGxheWluZygqbW9kZWxJZGVudGlmaWVyLCBpc1BsYXlpbmcpLCBX
VEZNb3ZlKHJlbW90ZUNvbXBsZXRpb25IYW5kbGVyKSk7CiB9CiAKK3ZvaWQgQVJLaXRJbmxpbmVQ
cmV2aWV3TW9kZWxQbGF5ZXI6OmFuaW1hdGlvbkR1cmF0aW9uKENvbXBsZXRpb25IYW5kbGVyPHZv
aWQoc3RkOjpvcHRpb25hbDxTZWNvbmRzPiYmKT4mJiBjb21wbGV0aW9uSGFuZGxlcikKK3sKKyAg
ICBhdXRvIG1vZGVsSWRlbnRpZmllciA9IHRoaXMtPm1vZGVsSWRlbnRpZmllcigpOworICAgIGlm
ICghbW9kZWxJZGVudGlmaWVyKSB7CisgICAgICAgIGNvbXBsZXRpb25IYW5kbGVyKHN0ZDo6bnVs
bG9wdCk7CisgICAgICAgIHJldHVybjsKKyAgICB9CisKKyAgICBhdXRvKiBzdHJvbmdQYWdlID0g
bV9wYWdlLmdldCgpOworICAgIGlmICghc3Ryb25nUGFnZSkgeworICAgICAgICBjb21wbGV0aW9u
SGFuZGxlcihzdGQ6Om51bGxvcHQpOworICAgICAgICByZXR1cm47CisgICAgfQorCisgICAgQ29t
cGxldGlvbkhhbmRsZXI8dm9pZChFeHBlY3RlZDxTZWNvbmRzLCBXZWJDb3JlOjpSZXNvdXJjZUVy
cm9yPik+IHJlbW90ZUNvbXBsZXRpb25IYW5kbGVyID0gW2NvbXBsZXRpb25IYW5kbGVyID0gV1RG
TW92ZShjb21wbGV0aW9uSGFuZGxlcildIChFeHBlY3RlZDxTZWNvbmRzLCBXZWJDb3JlOjpSZXNv
dXJjZUVycm9yPiByZXN1bHQpIG11dGFibGUgeworICAgICAgICBpZiAoIXJlc3VsdCkgeworICAg
ICAgICAgICAgY29tcGxldGlvbkhhbmRsZXIoc3RkOjpudWxsb3B0KTsKKyAgICAgICAgICAgIHJl
dHVybjsKKyAgICAgICAgfQorCisgICAgICAgIGNvbXBsZXRpb25IYW5kbGVyKCpyZXN1bHQpOwor
ICAgIH07CisKKyAgICBzdHJvbmdQYWdlLT5zZW5kV2l0aEFzeW5jUmVwbHkoTWVzc2FnZXM6Oldl
YlBhZ2VQcm94eTo6TW9kZWxFbGVtZW50QW5pbWF0aW9uRHVyYXRpb24oKm1vZGVsSWRlbnRpZmll
ciksIFdURk1vdmUocmVtb3RlQ29tcGxldGlvbkhhbmRsZXIpKTsKK30KKwordm9pZCBBUktpdElu
bGluZVByZXZpZXdNb2RlbFBsYXllcjo6YW5pbWF0aW9uQ3VycmVudFRpbWUoQ29tcGxldGlvbkhh
bmRsZXI8dm9pZChzdGQ6Om9wdGlvbmFsPFNlY29uZHM+JiYpPiYmIGNvbXBsZXRpb25IYW5kbGVy
KQoreworICAgIGF1dG8gbW9kZWxJZGVudGlmaWVyID0gdGhpcy0+bW9kZWxJZGVudGlmaWVyKCk7
CisgICAgaWYgKCFtb2RlbElkZW50aWZpZXIpIHsKKyAgICAgICAgY29tcGxldGlvbkhhbmRsZXIo
c3RkOjpudWxsb3B0KTsKKyAgICAgICAgcmV0dXJuOworICAgIH0KKworICAgIGF1dG8qIHN0cm9u
Z1BhZ2UgPSBtX3BhZ2UuZ2V0KCk7CisgICAgaWYgKCFzdHJvbmdQYWdlKSB7CisgICAgICAgIGNv
bXBsZXRpb25IYW5kbGVyKHN0ZDo6bnVsbG9wdCk7CisgICAgICAgIHJldHVybjsKKyAgICB9CisK
KyAgICBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKEV4cGVjdGVkPFNlY29uZHMsIFdlYkNvcmU6OlJl
c291cmNlRXJyb3I+KT4gcmVtb3RlQ29tcGxldGlvbkhhbmRsZXIgPSBbY29tcGxldGlvbkhhbmRs
ZXIgPSBXVEZNb3ZlKGNvbXBsZXRpb25IYW5kbGVyKV0gKEV4cGVjdGVkPFNlY29uZHMsIFdlYkNv
cmU6OlJlc291cmNlRXJyb3I+IHJlc3VsdCkgbXV0YWJsZSB7CisgICAgICAgIGlmICghcmVzdWx0
KSB7CisgICAgICAgICAgICBjb21wbGV0aW9uSGFuZGxlcihzdGQ6Om51bGxvcHQpOworICAgICAg
ICAgICAgcmV0dXJuOworICAgICAgICB9CisKKyAgICAgICAgY29tcGxldGlvbkhhbmRsZXIoKnJl
c3VsdCk7CisgICAgfTsKKworICAgIHN0cm9uZ1BhZ2UtPnNlbmRXaXRoQXN5bmNSZXBseShNZXNz
YWdlczo6V2ViUGFnZVByb3h5OjpNb2RlbEVsZW1lbnRBbmltYXRpb25DdXJyZW50VGltZSgqbW9k
ZWxJZGVudGlmaWVyKSwgV1RGTW92ZShyZW1vdGVDb21wbGV0aW9uSGFuZGxlcikpOworfQorCit2
b2lkIEFSS2l0SW5saW5lUHJldmlld01vZGVsUGxheWVyOjpzZXRBbmltYXRpb25DdXJyZW50VGlt
ZShTZWNvbmRzIGN1cnJlbnRUaW1lLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKGJvb2wgc3VjY2Vz
cyk+JiYgY29tcGxldGlvbkhhbmRsZXIpCit7CisgICAgYXV0byBtb2RlbElkZW50aWZpZXIgPSB0
aGlzLT5tb2RlbElkZW50aWZpZXIoKTsKKyAgICBpZiAoIW1vZGVsSWRlbnRpZmllcikgeworICAg
ICAgICBjb21wbGV0aW9uSGFuZGxlcihmYWxzZSk7CisgICAgICAgIHJldHVybjsKKyAgICB9CisK
KyAgICBhdXRvKiBzdHJvbmdQYWdlID0gbV9wYWdlLmdldCgpOworICAgIGlmICghc3Ryb25nUGFn
ZSkgeworICAgICAgICBjb21wbGV0aW9uSGFuZGxlcihmYWxzZSk7CisgICAgICAgIHJldHVybjsK
KyAgICB9CisKKyAgICBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKGJvb2wpPiByZW1vdGVDb21wbGV0
aW9uSGFuZGxlciA9IFtjb21wbGV0aW9uSGFuZGxlciA9IFdURk1vdmUoY29tcGxldGlvbkhhbmRs
ZXIpXSAoYm9vbCBzdWNjZXNzKSBtdXRhYmxlIHsKKyAgICAgICAgY29tcGxldGlvbkhhbmRsZXIo
c3VjY2Vzcyk7CisgICAgfTsKKworICAgIHN0cm9uZ1BhZ2UtPnNlbmRXaXRoQXN5bmNSZXBseShN
ZXNzYWdlczo6V2ViUGFnZVByb3h5OjpNb2RlbEVsZW1lbnRTZXRBbmltYXRpb25DdXJyZW50VGlt
ZSgqbW9kZWxJZGVudGlmaWVyLCBjdXJyZW50VGltZSksIFdURk1vdmUocmVtb3RlQ29tcGxldGlv
bkhhbmRsZXIpKTsKK30KKwogfQogCiAjZW5kaWYK
</data>
<flag name="review"
          id="469920"
          type_id="1"
          status="+"
          setter="wenson_hsieh"
    />
          </attachment>
      

    </bug>

</bugzilla>