<?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>236511</bug_id>
          
          <creation_ts>2022-02-11 08:48:15 -0800</creation_ts>
          <short_desc>[iOS] Add a &quot;Copy Cropped Image&quot; context menu item when long pressing images</short_desc>
          <delta_ts>2022-02-11 17:13:23 -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>Platform</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>
          
          <blocked>236519</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Wenson Hsieh">wenson_hsieh</reporter>
          <assigned_to name="Wenson Hsieh">wenson_hsieh</assigned_to>
          <cc>akeerthi</cc>
    
    <cc>benjamin</cc>
    
    <cc>cdumez</cc>
    
    <cc>cmarcelo</cc>
    
    <cc>ews-watchlist</cc>
    
    <cc>hi</cc>
    
    <cc>katherine_cheney</cc>
    
    <cc>megan_gardner</cc>
    
    <cc>thorton</cc>
    
    <cc>webkit-bug-importer</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1840378</commentid>
    <comment_count>0</comment_count>
    <who name="Wenson Hsieh">wenson_hsieh</who>
    <bug_when>2022-02-11 08:48:15 -0800</bug_when>
    <thetext>rdar://88817219</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1840461</commentid>
    <comment_count>1</comment_count>
      <attachid>451729</attachid>
    <who name="Wenson Hsieh">wenson_hsieh</who>
    <bug_when>2022-02-11 11:12:56 -0800</bug_when>
    <thetext>Created attachment 451729
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1840491</commentid>
    <comment_count>2</comment_count>
      <attachid>451735</attachid>
    <who name="Wenson Hsieh">wenson_hsieh</who>
    <bug_when>2022-02-11 12:20:47 -0800</bug_when>
    <thetext>Created attachment 451735
Try to fix Big Sur build</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1840519</commentid>
    <comment_count>3</comment_count>
      <attachid>451735</attachid>
    <who name="Devin Rousso">hi</who>
    <bug_when>2022-02-11 13:29:20 -0800</bug_when>
    <thetext>Comment on attachment 451735
Try to fix Big Sur build

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

r=me, great work :)

&gt; Source/WebKit/UIProcess/ios/WKActionSheetAssistant.mm:559
&gt; +            // FIXME: This should be additionally gated on the relevant VisionKit SPI.

bugzilla/radar?

&gt; Source/WebKit/UIProcess/ios/WKActionSheetAssistant.mm:595
&gt; +        // FIXME: This should be additionally gated on the relevant VisionKit SPI.

ditto (:559)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1840546</commentid>
    <comment_count>4</comment_count>
      <attachid>451735</attachid>
    <who name="Wenson Hsieh">wenson_hsieh</who>
    <bug_when>2022-02-11 14:10:00 -0800</bug_when>
    <thetext>Comment on attachment 451735
Try to fix Big Sur build

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

&gt;&gt; Source/WebKit/UIProcess/ios/WKActionSheetAssistant.mm:559
&gt;&gt; +            // FIXME: This should be additionally gated on the relevant VisionKit SPI.
&gt; 
&gt; bugzilla/radar?

Good point — added a radar link.

&gt;&gt; Source/WebKit/UIProcess/ios/WKActionSheetAssistant.mm:595
&gt;&gt; +        // FIXME: This should be additionally gated on the relevant VisionKit SPI.
&gt; 
&gt; ditto (:559)

👍🏻</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1840566</commentid>
    <comment_count>5</comment_count>
      <attachid>451747</attachid>
    <who name="Wenson Hsieh">wenson_hsieh</who>
    <bug_when>2022-02-11 14:43:03 -0800</bug_when>
    <thetext>Created attachment 451747
For landing</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1840628</commentid>
    <comment_count>6</comment_count>
    <who name="EWS">ews-feeder</who>
    <bug_when>2022-02-11 17:13:18 -0800</bug_when>
    <thetext>Committed r289681 (247167@main): &lt;https://commits.webkit.org/247167@main&gt;

All reviewed patches have been landed. Closing bug and clearing flags on attachment 451747.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>451729</attachid>
            <date>2022-02-11 11:12:56 -0800</date>
            <delta_ts>2022-02-11 12:22:41 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-236511-20220211111255.patch</filename>
            <type>text/plain</type>
            <size>43743</size>
            <attacher name="Wenson Hsieh">wenson_hsieh</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjg5NjI0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL0NoYW5n
ZUxvZyBiL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCmluZGV4IGFhMTQ2ZWRkZTZjYjI2NmVjMDE0OGQz
OWIxODk3NmFiZDE1YjdlYzMuLmViYjliYTdkNGUwOTJiZTEyOGJhMTU4MjEzYmYyYTgxYmNhZjAw
YTkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XVEYvQ2hh
bmdlTG9nCkBAIC0xLDMgKzEsMTYgQEAKKzIwMjItMDItMTEgIFdlbnNvbiBIc2llaCAgPHdlbnNv
bl9oc2llaEBhcHBsZS5jb20+CisKKyAgICAgICAgW2lPU10gQWRkIGEgIkNvcHkgQ3JvcHBlZCBJ
bWFnZSIgY29udGV4dCBtZW51IGl0ZW0gd2hlbiBsb25nIHByZXNzaW5nIGltYWdlcworICAgICAg
ICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjM2NTExCisgICAgICAg
IHJkYXI6Ly84ODgxNzIxOQorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgor
CisgICAgICAgIEFkZCBhIGNvbXBpbGUtdGltZSBmbGFnIHRvIGd1YXJkIGF2YWlsYWJpbGl0eSBv
ZiB0aGUgVW5pZm9ybVR5cGVJZGVudGlmaWVycyBmcmFtZXdvcmsuIFNlZSBXZWJLaXQvQ2hhbmdl
TG9nIGZvcgorICAgICAgICBtb3JlIGluZm9ybWF0aW9uLgorCisgICAgICAgICogd3RmL1BsYXRm
b3JtSGF2ZS5oOgorCiAyMDIyLTAyLTEwICBEYXZpZCBLaWx6ZXIgIDxkZGtpbHplckBhcHBsZS5j
b20+CiAKICAgICAgICAgW1dURl0gRml4IGNsYW5nIHRpZHkgYnVncHJvbmUtbW92ZS1mb3J3YXJk
aW5nLXJlZmVyZW5jZSBzdGF0aWMgYW5hbHl6ZXIgd2FybmluZ3MgZnJvbSBXZWJDb3JlL1dlYktp
dApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0L0No
YW5nZUxvZwppbmRleCBlNzU0ZTk2ZjdiZjkyMDg2MmM4NDFiNTVhMjk2M2EwMmVmZDNjYWZmLi5j
MTY1YTkwNjljODhkOGY0MjUzZmQ1OGI4OTE5N2YyZDQ0ODgxYzg2IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViS2l0L0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZwpAQCAtMSwz
ICsxLDkyIEBACisyMDIyLTAyLTExICBXZW5zb24gSHNpZWggIDx3ZW5zb25faHNpZWhAYXBwbGUu
Y29tPgorCisgICAgICAgIFtpT1NdIEFkZCBhICJDb3B5IENyb3BwZWQgSW1hZ2UiIGNvbnRleHQg
bWVudSBpdGVtIHdoZW4gbG9uZyBwcmVzc2luZyBpbWFnZXMKKyAgICAgICAgaHR0cHM6Ly9idWdz
LndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIzNjUxMQorICAgICAgICByZGFyOi8vODg4MTcy
MTkKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBBZGQg
c3VwcG9ydCBmb3IgYSBuZXcgY29udGV4dCBtZW51IGl0ZW0gb24gaU9TIHRoYXQgYWxsb3dzIHRo
ZSB1c2VyIHRvIGNvcHkgYSBjcm9wcGVkIHZlcnNpb24gb2YgdGhlIHNvdXJjZQorICAgICAgICBp
bWFnZSwgYWZ0ZXIgaW52b2tpbmcgbWFya3VwIFVJLiBTZWUgYmVsb3cgZm9yIG1vcmUgZGV0YWls
cy4KKworICAgICAgICAqIFBsYXRmb3JtL2NvY29hL0NvY29hSW1hZ2UuaDoKKyAgICAgICAgKiBQ
bGF0Zm9ybS9jb2NvYS9Db2NvYUltYWdlLm1tOgorICAgICAgICAoV2ViS2l0Ojp0cmFuc2NvZGUp
OgorICAgICAgICAoV2ViS2l0Ojp0cmFuc2NvZGVXaXRoUHJlZmVycmVkTUlNRVR5cGUpOgorCisg
ICAgICAgIE1vdmUgYSBoZWxwZXIgZnVuY3Rpb24gdGhhdCB0cmFuc2NvZGVzIGFuIGltYWdlIHRv
IGEgZ2l2ZW4gVVRJIGludG8gQ29jb2FJbWFnZS5oLCBhcyBhIHN0YW5kYWxvbmUgZnVuY3Rpb24u
CisgICAgICAgIEFsc28sIGFkZCBhIHNlcGFyYXRlIGhlbHBlciBmdW5jdGlvbiBoZXJlIHRoYXQg
dHJhbnNjb2RlcyBhbiBpbWFnZSB0byBhIGdpdmVuIE1JTUUgdHlwZSAod2l0aCBhIGZhbGxiYWNr
IFVUSSwgaW4KKyAgICAgICAgY2FzZSB0aGUgTUlNRSB0eXBlIGNhbm5vdCBiZSBtYXBwZWQgdG8g
YSBzdWl0YWJsZSBVVEkgdGhhdCBjb25mb3JtcyB0byBhbnkgaW1hZ2UgVVRJKS4gVGhlIG5ldyBj
YWxsIHNpdGVzIG9mCisgICAgICAgIHRoaXMgZnVuY3Rpb24gYXJlIGluIFdLQ29udGVudFZpZXdJ
bnRlcmFjdGlvbi5tbS4KKworICAgICAgICAqIFBsYXRmb3JtL2NvY29hL1RleHRSZWNvZ25pdGlv
blV0aWxpdGllcy5tbToKKyAgICAgICAgKiBTaGFyZWQvaW9zL0ludGVyYWN0aW9uSW5mb3JtYXRp
b25BdFBvc2l0aW9uLmg6CisgICAgICAgICogU2hhcmVkL2lvcy9JbnRlcmFjdGlvbkluZm9ybWF0
aW9uQXRQb3NpdGlvbi5tbToKKyAgICAgICAgKFdlYktpdDo6SW50ZXJhY3Rpb25JbmZvcm1hdGlv
bkF0UG9zaXRpb246OmVuY29kZSBjb25zdCk6CisgICAgICAgIChXZWJLaXQ6OkludGVyYWN0aW9u
SW5mb3JtYXRpb25BdFBvc2l0aW9uOjpkZWNvZGUpOgorCisgICAgICAgIEFkZCBhIG5ldyBgaW1h
Z2VNSU1FVHlwZWAgbWVtYmVyIHRvIHJlcHJlc2VudCB0aGUgTUlNRSB0eXBlIG9mIHRoZSBzb3Vy
Y2UgaW1hZ2UgdXNlZCB0byBnZW5lcmF0ZSB0aGUgYml0bWFwCisgICAgICAgIGltYWdlIGRhdGEg
aW4gYGltYWdlYC4KKworICAgICAgICAqIFNvdXJjZXNDb2NvYS50eHQ6IEFkZCBDb2NvYUltYWdl
Lm1tLgorICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvQ29jb2EvX1dLQWN0aXZhdGVkRWxlbWVudElu
Zm8ubW06CisgICAgICAgICgtW19XS0FjdGl2YXRlZEVsZW1lbnRJbmZvIF9pbml0V2l0aEludGVy
YWN0aW9uSW5mb3JtYXRpb25BdFBvc2l0aW9uOnVzZXJJbmZvOl0pOgorICAgICAgICAoLVtfV0tB
Y3RpdmF0ZWRFbGVtZW50SW5mbyBfaW5pdFdpdGhUeXBlOlVSTDppbWFnZVVSTDpsb2NhdGlvbjp0
aXRsZTpJRDpyZWN0OmltYWdlOmltYWdlTUlNRVR5cGU6XSk6CisgICAgICAgICgtW19XS0FjdGl2
YXRlZEVsZW1lbnRJbmZvIF9pbml0V2l0aFR5cGU6VVJMOmltYWdlVVJMOmxvY2F0aW9uOnRpdGxl
OklEOnJlY3Q6aW1hZ2U6aW1hZ2VNSU1FVHlwZTp1c2VySW5mbzpdKToKKyAgICAgICAgKC1bX1dL
QWN0aXZhdGVkRWxlbWVudEluZm8gaW1hZ2VNSU1FVHlwZV0pOgorCisgICAgICAgIEFkZCBwbHVt
YmluZyBmb3IgYGltYWdlTUlNRVR5cGVgIGZyb20gSW50ZXJhY3Rpb25JbmZvcm1hdGlvbkF0UG9z
aXRpb24gKHBvc2l0aW9uIGluZm9ybWF0aW9uKSBpbnRvCisgICAgICAgIF9XS0FjdGl2YXRlZEVs
ZW1lbnRJbmZvLCBhcyBhbiBpbnRlcm5hbCBtZXRob2QuIFdlIHVzZSB0aGlzIGluZm9ybWF0aW9u
IGJlbG93LCB0byB0cmFuc2NvZGUgdGhlIHJlc3VsdGluZyBpbWFnZQorICAgICAgICBiYWNrIHRv
IHRoZSBzb3VyY2UgaW1hZ2UgZm9ybWF0IGFmdGVyIGFwcGx5aW5nIG1hcmt1cCwgd2hlbiBpbnZv
a2luZyB0aGUgbmV3ICJDb3B5IENyb3BwZWQgSW1hZ2UiIGl0ZW0uCisKKyAgICAgICAgKC1bX1dL
QWN0aXZhdGVkRWxlbWVudEluZm8gX2luaXRXaXRoVHlwZTpVUkw6aW1hZ2VVUkw6bG9jYXRpb246
dGl0bGU6SUQ6cmVjdDppbWFnZTpdKTogRGVsZXRlZC4KKyAgICAgICAgKC1bX1dLQWN0aXZhdGVk
RWxlbWVudEluZm8gX2luaXRXaXRoVHlwZTpVUkw6aW1hZ2VVUkw6bG9jYXRpb246dGl0bGU6SUQ6
cmVjdDppbWFnZTp1c2VySW5mbzpdKTogRGVsZXRlZC4KKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJ
L0NvY29hL19XS0FjdGl2YXRlZEVsZW1lbnRJbmZvSW50ZXJuYWwuaDoKKyAgICAgICAgKiBVSVBy
b2Nlc3MvQVBJL0NvY29hL19XS0VsZW1lbnRBY3Rpb24uaDoKKyAgICAgICAgKiBVSVByb2Nlc3Mv
QVBJL0NvY29hL19XS0VsZW1lbnRBY3Rpb24ubW06CisgICAgICAgICgrW19XS0VsZW1lbnRBY3Rp
b24gX2VsZW1lbnRBY3Rpb25XaXRoVHlwZTpjdXN0b21UaXRsZTphc3Npc3RhbnQ6XSk6CisgICAg
ICAgICgrW19XS0VsZW1lbnRBY3Rpb24gaW1hZ2VGb3JFbGVtZW50QWN0aW9uVHlwZTpdKToKKwor
ICAgICAgICBBZGQgc3VwcG9ydCBmb3IgdGhlIG5ldyAiQ29weSBDcm9wcGVkIEltYWdlIiBpdGVt
IHRhZyAoYF9XS0VsZW1lbnRBY3Rpb25UeXBlQ29weUNyb3BwZWRJbWFnZWApLgorCisgICAgICAg
IChlbGVtZW50QWN0aW9uVHlwZVRvVUlBY3Rpb25JZGVudGlmaWVyKToKKyAgICAgICAgKHVpQWN0
aW9uSWRlbnRpZmllclRvRWxlbWVudEFjdGlvblR5cGUpOgorICAgICAgICAqIFVJUHJvY2Vzcy9p
b3MvV0tBY3Rpb25TaGVldEFzc2lzdGFudC5oOgorICAgICAgICAqIFVJUHJvY2Vzcy9pb3MvV0tB
Y3Rpb25TaGVldEFzc2lzdGFudC5tbToKKyAgICAgICAgKC1bV0tBY3Rpb25TaGVldEFzc2lzdGFu
dCBzaG93SW1hZ2VTaGVldF0pOgorICAgICAgICAoLVtXS0FjdGlvblNoZWV0QXNzaXN0YW50IGRl
ZmF1bHRBY3Rpb25zRm9yTGlua1NoZWV0Ol0pOgorICAgICAgICAoLVtXS0FjdGlvblNoZWV0QXNz
aXN0YW50IGRlZmF1bHRBY3Rpb25zRm9ySW1hZ2VTaGVldDpdKToKKyAgICAgICAgKC1bV0tBY3Rp
b25TaGVldEFzc2lzdGFudCBzaG93TGlua1NoZWV0XSk6CisgICAgICAgICgtW1dLQWN0aW9uU2hl
ZXRBc3Npc3RhbnQgaGFuZGxlRWxlbWVudEFjdGlvbldpdGhUeXBlOmVsZW1lbnQ6bmVlZHNJbnRl
cmFjdGlvbjpdKToKKyAgICAgICAgKiBVSVByb2Nlc3MvaW9zL1dLQ29udGVudFZpZXdJbnRlcmFj
dGlvbi5tbToKKyAgICAgICAgKC1bV0tDb250ZW50VmlldyBfc2hvd0F0dGFjaG1lbnRTaGVldF0p
OgorICAgICAgICAoLVtXS0NvbnRlbnRWaWV3IHBlcmZvcm1JbWFnZUFuYWx5c2lzTWFya3VwOl0p
OgorCisgICAgICAgIFVzZSB0aGUgbmV3IGB0cmFuc2NvZGVXaXRoUHJlZmVycmVkTUlNRVR5cGVg
IGhlbHBlciBtZXRob2QgaGVyZS4KKworICAgICAgICAoLVtXS0NvbnRlbnRWaWV3IGRvQWZ0ZXJD
b21wdXRpbmdJbWFnZUFuYWx5c2lzUmVzdWx0c0Zvck1hcmt1cDpdKToKKworICAgICAgICBSZW1v
dmUgdGhlIFRJRkYgdHJhbnNjb2Rpbmcgd29ya2Fyb3VuZCBmcm9tIHRoaXMgbWV0aG9kIChzZWUg
YXNzb2NpYXRlZCBjaGFuZ2VzIGluIFJhZGFyIGZvciBtb3JlIGluZm9ybWF0aW9uKS4KKworICAg
ICAgICAoLVtXS0NvbnRlbnRWaWV3IGFjdGlvblNoZWV0QXNzaXN0YW50OmNvcHlDcm9wcGVkSW1h
Z2U6c291cmNlTUlNRVR5cGU6XSk6CisKKyAgICAgICAgSGFuZGxlIHRoZSBuZXcgYWN0aW9uIGJ5
IGNhbGxpbmcgaW50byBWaXNpb25LaXQgdG8gYWRqdXN0IHRoZSBzb3VyY2UgaW1hZ2UgYXMgbmVl
ZGVkLCBhbmQgdGhlbiB0cmFuc2NvZGUgdGhlCisgICAgICAgIHJlc3VsdGluZyBDR0ltYWdlUmVm
IGJhY2sgdG8gYSBmb3JtYXQgdGhhdCBtYXRjaGVzIHRoZSBzb3VyY2UgaW1hZ2U7IGZpbmFsbHks
IHdyaXRlIHRoaXMgdHJhbnNjb2RlZAorICAgICAgICByZXByZXNlbnRhdGlvbiB0byB0aGUgZ2Vu
ZXJhbCBwYXN0ZWJvYXJkLgorCisgICAgICAgICgtW1dLQ29udGVudFZpZXcgX2RhdGFGb3JQcmV2
aWV3SXRlbUNvbnRyb2xsZXI6YXRQb3NpdGlvbjp0eXBlOl0pOgorICAgICAgICAoLVtXS0NvbnRl
bnRWaWV3IF9wcmVzZW50ZWRWaWV3Q29udHJvbGxlckZvclByZXZpZXdJdGVtQ29udHJvbGxlcjpd
KToKKworICAgICAgICBQYXNzIGBpbWFnZU1JTUVUeXBlYCBmcm9tIHBvc2l0aW9uIGluZm9ybWF0
aW9uIGludG8gdGhlIGFjdGl2YXRlZCBlbGVtZW50IGluZm8gaW5pdGlhbGl6ZXIgaW4gc2V2ZXJh
bCBwbGFjZXMuCisKKyAgICAgICAgKFdlYktpdDo6dHJhbnNjb2RlKTogRGVsZXRlZC4KKyAgICAg
ICAgKiBXZWJLaXQueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvajoKKyAgICAgICAgKiBXZWJQcm9j
ZXNzL1dlYlBhZ2UvaW9zL1dlYlBhZ2VJT1MubW06CisgICAgICAgIChXZWJLaXQ6OmltYWdlUG9z
aXRpb25JbmZvcm1hdGlvbik6CisgICAgICAgIChXZWJLaXQ6OmVsZW1lbnRQb3NpdGlvbkluZm9y
bWF0aW9uKToKKworICAgICAgICBQb3B1bGF0ZSBgaW1hZ2VNSU1FVHlwZWAgaW4gcG9zaXRpb24g
aW5mb3JtYXRpb24uCisKIDIwMjItMDItMTEgIFdlbnNvbiBIc2llaCAgPHdlbnNvbl9oc2llaEBh
cHBsZS5jb20+CiAKICAgICAgICAgVW5yZXZpZXdlZCwgbm9uLXVuaWZpZWQgYnVpbGQgZml4ZXMg
aW4gV0tQYXltZW50QXV0aG9yaXphdGlvbkRlbGVnYXRlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RG
L3d0Zi9QbGF0Zm9ybUhhdmUuaCBiL1NvdXJjZS9XVEYvd3RmL1BsYXRmb3JtSGF2ZS5oCmluZGV4
IDRkY2E1YTI2MDdlMmE3MGQ5Njg4OWFlYTBhZmRlYWM3OTYwMmIyNjMuLjYxOWRkNTA2ODA1NDlj
NzE1MmNkNzU2YzE2YjdhZDgyOWQyYWIyYjEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvd3RmL1Bs
YXRmb3JtSGF2ZS5oCisrKyBiL1NvdXJjZS9XVEYvd3RmL1BsYXRmb3JtSGF2ZS5oCkBAIC0xMTMx
LDYgKzExMzEsMTAgQEAKICNkZWZpbmUgSEFWRV9VTklGSUVEX1NQRUVDSFNZTlRIRVNJU19GSVhf
Rk9SXzgxNDY1MTY0IDEKICNlbmRpZgogCisjaWYgUExBVEZPUk0oSU9TX0ZBTUlMWSkgfHwgKFBM
QVRGT1JNKE1BQykgJiYgX19NQUNfT1NfWF9WRVJTSU9OX01JTl9SRVFVSVJFRCA+PSAxMTAwMDAp
CisjZGVmaW5lIEhBVkVfVU5JRk9STV9UWVBFX0lERU5USUZJRVJTX0ZSQU1FV09SSyAxCisjZW5k
aWYKKwogI2lmIFBMQVRGT1JNKENPQ09BKQogI2RlZmluZSBIQVZFX0FWX0RFTEVHQVRJTkdfUExB
WUJBQ0tfQ09PUkRJTkFUT1IgMQogI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1Bs
YXRmb3JtL2NvY29hL0NvY29hSW1hZ2UuaCBiL1NvdXJjZS9XZWJLaXQvUGxhdGZvcm0vY29jb2Ev
Q29jb2FJbWFnZS5oCmluZGV4IGM0MWQ3ZjQ4OWQ4MDQwOTA0YzE1MmExODI2MzhkMDczYjhhMTNj
NDEuLjkxYzA4OGJlN2UzN2QzNGUzOTVhOWM0YmVhYzI4NjdmNDdlN2QwMmMgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJLaXQvUGxhdGZvcm0vY29jb2EvQ29jb2FJbWFnZS5oCisrKyBiL1NvdXJjZS9X
ZWJLaXQvUGxhdGZvcm0vY29jb2EvQ29jb2FJbWFnZS5oCkBAIC0yMyw3ICsyMyw5IEBACiAqIFRI
RSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KICovCiAKLSNpbmNsdWRlIDx3dGYvQ29tcGls
ZXIuaD4KKyNpbXBvcnQgPENvcmVHcmFwaGljcy9Db3JlR3JhcGhpY3MuaD4KKyNpbXBvcnQgPHd0
Zi9Db21waWxlci5oPgorI2ltcG9ydCA8d3RmL1JldGFpblB0ci5oPgogCiAjaWYgVVNFKEFQUEtJ
VCkKIE9CSkNfQ0xBU1MgTlNJbWFnZTsKQEAgLTMyLDMgKzM0LDEyIEBAIHVzaW5nIENvY29hSW1h
Z2UgPSBOU0ltYWdlOwogT0JKQ19DTEFTUyBVSUltYWdlOwogdXNpbmcgQ29jb2FJbWFnZSA9IFVJ
SW1hZ2U7CiAjZW5kaWYKKworT0JKQ19DTEFTUyBOU0RhdGE7CisKK25hbWVzcGFjZSBXZWJLaXQg
eworCitSZXRhaW5QdHI8TlNEYXRhPiB0cmFuc2NvZGUoQ0dJbWFnZVJlZiwgQ0ZTdHJpbmdSZWYg
dHlwZUlkZW50aWZpZXIpOworc3RkOjpwYWlyPFJldGFpblB0cjxOU0RhdGE+LCBSZXRhaW5QdHI8
Q0ZTdHJpbmdSZWY+PiB0cmFuc2NvZGVXaXRoUHJlZmVycmVkTUlNRVR5cGUoQ0dJbWFnZVJlZiwg
Q0ZTdHJpbmdSZWYgcHJlZmVycmVkTUlNRVR5cGUsIENGU3RyaW5nUmVmIGZhbGxiYWNrVHlwZUlk
ZW50aWZpZXIpOworCit9IC8vIG5hbWVzcGFjZSBXZWJLaXQKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJLaXQvUGxhdGZvcm0vY29jb2EvQ29jb2FJbWFnZS5tbSBiL1NvdXJjZS9XZWJLaXQvUGxhdGZv
cm0vY29jb2EvQ29jb2FJbWFnZS5tbQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5lZDIzYjlhZTAyNDYzMmI4YjA2MjU2
NzY5M2UxMTEwZDRiZWU3OWYxCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYktpdC9QbGF0
Zm9ybS9jb2NvYS9Db2NvYUltYWdlLm1tCkBAIC0wLDAgKzEsNjggQEAKKy8qCisgKiBDb3B5cmln
aHQgKEMpIDIwMjIgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlz
dHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0
aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZv
bGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9m
IHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGlj
ZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4K
KyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUg
YWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFu
ZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFu
ZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoK
KyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRS
SUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJ
RVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFO
VElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICog
UFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJ
VFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJ
TkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFH
RVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VC
U1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7
IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkg
VEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFC
SUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFS
SVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElG
IEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisj
aW1wb3J0ICJjb25maWcuaCIKKyNpbXBvcnQgIkNvY29hSW1hZ2UuaCIKKworI2ltcG9ydCA8V2Vi
Q29yZS9VVElSZWdpc3RyeS5oPgorCisjaWYgSEFWRShVTklGT1JNX1RZUEVfSURFTlRJRklFUlNf
RlJBTUVXT1JLKQorI2ltcG9ydCA8VW5pZm9ybVR5cGVJZGVudGlmaWVycy9Vbmlmb3JtVHlwZUlk
ZW50aWZpZXJzLmg+CisjZWxzZQorI2ltcG9ydCA8Q29yZVNlcnZpY2VzL0NvcmVTZXJ2aWNlcy5o
PgorI2VuZGlmCisKK25hbWVzcGFjZSBXZWJLaXQgeworCitSZXRhaW5QdHI8TlNEYXRhPiB0cmFu
c2NvZGUoQ0dJbWFnZVJlZiBpbWFnZSwgQ0ZTdHJpbmdSZWYgdHlwZUlkZW50aWZpZXIpCit7Cisg
ICAgaWYgKCFpbWFnZSkKKyAgICAgICAgcmV0dXJuIG5pbDsKKworICAgIGF1dG8gZGF0YSA9IGFk
b3B0TlMoW1tOU011dGFibGVEYXRhIGFsbG9jXSBpbml0XSk7CisgICAgYXV0byBkZXN0aW5hdGlv
biA9IGFkb3B0Q0YoQ0dJbWFnZURlc3RpbmF0aW9uQ3JlYXRlV2l0aERhdGEoKF9fYnJpZGdlIENG
TXV0YWJsZURhdGFSZWYpZGF0YS5nZXQoKSwgdHlwZUlkZW50aWZpZXIsIDEsIG5pbCkpOworICAg
IENHSW1hZ2VEZXN0aW5hdGlvbkFkZEltYWdlKGRlc3RpbmF0aW9uLmdldCgpLCBpbWFnZSwgbmls
KTsKKyAgICBpZiAoIUNHSW1hZ2VEZXN0aW5hdGlvbkZpbmFsaXplKGRlc3RpbmF0aW9uLmdldCgp
KSkKKyAgICAgICAgcmV0dXJuIG5pbDsKKworICAgIHJldHVybiBkYXRhOworfQorCitzdGQ6OnBh
aXI8UmV0YWluUHRyPE5TRGF0YT4sIFJldGFpblB0cjxDRlN0cmluZ1JlZj4+IHRyYW5zY29kZVdp
dGhQcmVmZXJyZWRNSU1FVHlwZShDR0ltYWdlUmVmIGltYWdlLCBDRlN0cmluZ1JlZiBwcmVmZXJy
ZWRNSU1FVHlwZSwgQ0ZTdHJpbmdSZWYgZmFsbGJhY2tUeXBlSWRlbnRpZmllcikKK3sKKyAgICBh
dXRvIHRhcmdldFR5cGUgPSBSZXRhaW5QdHIgeyBmYWxsYmFja1R5cGVJZGVudGlmaWVyIH07Cisg
ICAgaWYgKENGU3RyaW5nR2V0TGVuZ3RoKHByZWZlcnJlZE1JTUVUeXBlKSkgeworI2lmIEhBVkUo
VU5JRk9STV9UWVBFX0lERU5USUZJRVJTX0ZSQU1FV09SSykKKyAgICAgICAgYXV0byBwcmVmZXJy
ZWRUeXBlSWRlbnRpZmllciA9IFJldGFpblB0ciB7IChfX2JyaWRnZSBDRlN0cmluZ1JlZilbVVRU
eXBlIHR5cGVXaXRoTUlNRVR5cGU6KF9fYnJpZGdlIE5TU3RyaW5nICopcHJlZmVycmVkTUlNRVR5
cGUgY29uZm9ybWluZ1RvVHlwZTpVVFR5cGVJbWFnZV0uaWRlbnRpZmllciB9OworI2Vsc2UKKyAg
ICAgICAgYXV0byBwcmVmZXJyZWRUeXBlSWRlbnRpZmllciA9IGFkb3B0Q0YoVVRUeXBlQ3JlYXRl
UHJlZmVycmVkSWRlbnRpZmllckZvclRhZyhrVVRUYWdDbGFzc01JTUVUeXBlLCBwcmVmZXJyZWRN
SU1FVHlwZSwga1VUVHlwZUltYWdlKSk7CisjZW5kaWYKKyAgICAgICAgaWYgKFdlYkNvcmU6Omlz
U3VwcG9ydGVkSW1hZ2VUeXBlKHByZWZlcnJlZFR5cGVJZGVudGlmaWVyLmdldCgpKSkKKyAgICAg
ICAgICAgIHRhcmdldFR5cGUgPSBXVEZNb3ZlKHByZWZlcnJlZFR5cGVJZGVudGlmaWVyKTsKKyAg
ICB9CisgICAgcmV0dXJuIHsgdHJhbnNjb2RlKGltYWdlLCB0YXJnZXRUeXBlLmdldCgpKSwgdGFy
Z2V0VHlwZSB9OworfQorCit9IC8vIG5hbWVzcGFjZSBXZWJLaXQKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJLaXQvUGxhdGZvcm0vY29jb2EvVGV4dFJlY29nbml0aW9uVXRpbGl0aWVzLm1tIGIvU291
cmNlL1dlYktpdC9QbGF0Zm9ybS9jb2NvYS9UZXh0UmVjb2duaXRpb25VdGlsaXRpZXMubW0KaW5k
ZXggNzFiMmUyNjIzMDY2NTk0OWQ4NWU0NWIyY2JmY2JlMDJlZjZjNWExYS4uNWM2NWRlZjc1Y2Vj
MTUzMGJhYmJjZTZiYWU2ZDIyMGI1NGY3NzhkNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9Q
bGF0Zm9ybS9jb2NvYS9UZXh0UmVjb2duaXRpb25VdGlsaXRpZXMubW0KKysrIGIvU291cmNlL1dl
YktpdC9QbGF0Zm9ybS9jb2NvYS9UZXh0UmVjb2duaXRpb25VdGlsaXRpZXMubW0KQEAgLTI4LDYg
KzI4LDcgQEAKIAogI2lmIEVOQUJMRShJTUFHRV9BTkFMWVNJUykKIAorI2ltcG9ydCAiQ29jb2FJ
bWFnZS5oIgogI2ltcG9ydCAiTG9nZ2luZy5oIgogI2ltcG9ydCA8V2ViQ29yZS9UZXh0UmVjb2du
aXRpb25SZXN1bHQuaD4KICNpbXBvcnQgPHBhbC9zcGkvY29jb2EvRmVhdHVyZUZsYWdzU1BJLmg+
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9pb3MvSW50ZXJhY3Rpb25JbmZvcm1h
dGlvbkF0UG9zaXRpb24uaCBiL1NvdXJjZS9XZWJLaXQvU2hhcmVkL2lvcy9JbnRlcmFjdGlvbklu
Zm9ybWF0aW9uQXRQb3NpdGlvbi5oCmluZGV4IDI4MWQ3NjU0ZjcwN2U4NGE3YThlYmJmZDUyMzFh
MGVmY2FmZjE1M2EuLjFjNjVkOGY1OTU1NjQ0M2M4OTFhOWRlMGM0MWM1NzliYTljZGQ4Y2IgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvU2hhcmVkL2lvcy9JbnRlcmFjdGlvbkluZm9ybWF0aW9u
QXRQb3NpdGlvbi5oCisrKyBiL1NvdXJjZS9XZWJLaXQvU2hhcmVkL2lvcy9JbnRlcmFjdGlvbklu
Zm9ybWF0aW9uQXRQb3NpdGlvbi5oCkBAIC04OCw2ICs4OCw3IEBAIHN0cnVjdCBJbnRlcmFjdGlv
bkluZm9ybWF0aW9uQXRQb3NpdGlvbiB7CiAgICAgV2ViQ29yZTo6RmxvYXRQb2ludCBhZGp1c3Rl
ZFBvaW50Rm9yTm9kZVJlc3BvbmRpbmdUb0NsaWNrRXZlbnRzOwogICAgIFVSTCB1cmw7CiAgICAg
VVJMIGltYWdlVVJMOworICAgIFN0cmluZyBpbWFnZU1JTUVUeXBlOwogICAgIFN0cmluZyB0aXRs
ZTsKICAgICBTdHJpbmcgaWRBdHRyaWJ1dGU7CiAgICAgV2ViQ29yZTo6SW50UmVjdCBib3VuZHM7
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9pb3MvSW50ZXJhY3Rpb25JbmZvcm1h
dGlvbkF0UG9zaXRpb24ubW0gYi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9pb3MvSW50ZXJhY3Rpb25J
bmZvcm1hdGlvbkF0UG9zaXRpb24ubW0KaW5kZXggNjU1NGNhNzA4Y2RjMWZiNDFmMDhiYTRlMDg0
MDI0N2Y0NTNiNzBlZi4uNzg5OGNjOTZmYWU3MzM4N2ZkZWIyNmM3NjExYWFlM2Y4ZTM1ZTg1YSAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9TaGFyZWQvaW9zL0ludGVyYWN0aW9uSW5mb3JtYXRp
b25BdFBvc2l0aW9uLm1tCisrKyBiL1NvdXJjZS9XZWJLaXQvU2hhcmVkL2lvcy9JbnRlcmFjdGlv
bkluZm9ybWF0aW9uQXRQb3NpdGlvbi5tbQpAQCAtNTYsNiArNTYsNyBAQCB2b2lkIEludGVyYWN0
aW9uSW5mb3JtYXRpb25BdFBvc2l0aW9uOjplbmNvZGUoSVBDOjpFbmNvZGVyJiBlbmNvZGVyKSBj
b25zdAogICAgIGVuY29kZXIgPDwgYWRqdXN0ZWRQb2ludEZvck5vZGVSZXNwb25kaW5nVG9DbGlj
a0V2ZW50czsKICAgICBlbmNvZGVyIDw8IHVybDsKICAgICBlbmNvZGVyIDw8IGltYWdlVVJMOwor
ICAgIGVuY29kZXIgPDwgaW1hZ2VNSU1FVHlwZTsKICAgICBlbmNvZGVyIDw8IHRpdGxlOwogICAg
IGVuY29kZXIgPDwgaWRBdHRyaWJ1dGU7CiAgICAgZW5jb2RlciA8PCBib3VuZHM7CkBAIC0xNDks
NiArMTUwLDkgQEAgYm9vbCBJbnRlcmFjdGlvbkluZm9ybWF0aW9uQXRQb3NpdGlvbjo6ZGVjb2Rl
KElQQzo6RGVjb2RlciYgZGVjb2RlciwgSW50ZXJhY3Rpb24KICAgICBpZiAoIWRlY29kZXIuZGVj
b2RlKHJlc3VsdC5pbWFnZVVSTCkpCiAgICAgICAgIHJldHVybiBmYWxzZTsKIAorICAgIGlmICgh
ZGVjb2Rlci5kZWNvZGUocmVzdWx0LmltYWdlTUlNRVR5cGUpKQorICAgICAgICByZXR1cm4gZmFs
c2U7CisKICAgICBpZiAoIWRlY29kZXIuZGVjb2RlKHJlc3VsdC50aXRsZSkpCiAgICAgICAgIHJl
dHVybiBmYWxzZTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9Tb3VyY2VzQ29jb2EudHh0
IGIvU291cmNlL1dlYktpdC9Tb3VyY2VzQ29jb2EudHh0CmluZGV4IDk4OTc0ZmEwOGI1OWQ0Nzdj
MjMxZmI1ZDNmYTI3MWEwOWIyZDVkMDEuLjg1MmI1OTQxZTM2OTIwMmU1NDBjMDhiMDRlMDIwY2E2
OGVkOWU0MDkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvU291cmNlc0NvY29hLnR4dAorKysg
Yi9Tb3VyY2UvV2ViS2l0L1NvdXJjZXNDb2NvYS50eHQKQEAgLTgzLDYgKzgzLDcgQEAgUGxhdGZv
cm0vY2YvTW9kdWxlQ0YuY3BwCiBQbGF0Zm9ybS9jbGFzc2lmaWVyL2NvY29hL1Jlc291cmNlTG9h
ZFN0YXRpc3RpY3NDbGFzc2lmaWVyQ29jb2EuY3BwCiBQbGF0Zm9ybS9jbGFzc2lmaWVyL1Jlc291
cmNlTG9hZFN0YXRpc3RpY3NDbGFzc2lmaWVyLmNwcAogCitQbGF0Zm9ybS9jb2NvYS9Db2NvYUlt
YWdlLm1tCiBQbGF0Zm9ybS9jb2NvYS9MYXllckhvc3RpbmdDb250ZXh0Lm1tCiBQbGF0Zm9ybS9j
b2NvYS9QYXltZW50QXV0aG9yaXphdGlvblByZXNlbnRlci5tbQogUGxhdGZvcm0vY29jb2EvUGF5
bWVudEF1dGhvcml6YXRpb25WaWV3Q29udHJvbGxlci5tbQpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL19XS0FjdGl2YXRlZEVsZW1lbnRJbmZvLm1tIGIvU291
cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL19XS0FjdGl2YXRlZEVsZW1lbnRJbmZvLm1t
CmluZGV4IDZmZTU5M2M0YjQ2NGNlOWI2MDY1MDdlNjI3Yzk3ZTAwMjUzOTFiMzUuLjk3MWUwZWZh
YjkwZjUxZGUxYzAyYmMxMDU3MmU4NGRlN2MzMzZjZDIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJL
aXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9fV0tBY3RpdmF0ZWRFbGVtZW50SW5mby5tbQorKysgYi9T
b3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvX1dLQWN0aXZhdGVkRWxlbWVudEluZm8u
bW0KQEAgLTQzLDYgKzQzLDcgQEAgQGltcGxlbWVudGF0aW9uIF9XS0FjdGl2YXRlZEVsZW1lbnRJ
bmZvICB7CiAgICAgV2ViQ29yZTo6SW50UG9pbnQgX2ludGVyYWN0aW9uTG9jYXRpb247CiAgICAg
UmV0YWluUHRyPE5TU3RyaW5nPiBfSUQ7CiAgICAgUmVmUHRyPFdlYktpdDo6U2hhcmVhYmxlQml0
bWFwPiBfaW1hZ2U7CisgICAgUmV0YWluUHRyPE5TU3RyaW5nPiBfaW1hZ2VNSU1FVHlwZTsKICAg
ICBSZXRhaW5QdHI8Q29jb2FJbWFnZT4gX2NvY29hSW1hZ2U7CiAjaWYgUExBVEZPUk0oSU9TX0ZB
TUlMWSkKICAgICBSZXRhaW5QdHI8TlNEaWN0aW9uYXJ5PiBfdXNlckluZm87CkBAIC02Myw2ICs2
NCw3IEBAIC0gKGluc3RhbmNldHlwZSlfaW5pdFdpdGhJbnRlcmFjdGlvbkluZm9ybWF0aW9uQXRQ
b3NpdGlvbjooY29uc3QgV2ViS2l0OjpJbnRlcmFjCiAgICAgCiAgICAgX1VSTCA9IGluZm9ybWF0
aW9uLnVybDsKICAgICBfaW1hZ2VVUkwgPSBpbmZvcm1hdGlvbi5pbWFnZVVSTDsKKyAgICBfaW1h
Z2VNSU1FVHlwZSA9IGluZm9ybWF0aW9uLmltYWdlTUlNRVR5cGU7CiAgICAgX2ludGVyYWN0aW9u
TG9jYXRpb24gPSBpbmZvcm1hdGlvbi5yZXF1ZXN0LnBvaW50OwogICAgIF90aXRsZSA9IGluZm9y
bWF0aW9uLnRpdGxlOwogICAgIF9ib3VuZGluZ1JlY3QgPSBpbmZvcm1hdGlvbi5ib3VuZHM7CkBA
IC04NiwxOCArODgsMTkgQEAgLSAoaW5zdGFuY2V0eXBlKV9pbml0V2l0aEludGVyYWN0aW9uSW5m
b3JtYXRpb25BdFBvc2l0aW9uOihjb25zdCBXZWJLaXQ6OkludGVyYWMKIH0KICNlbmRpZgogCi0t
IChpbnN0YW5jZXR5cGUpX2luaXRXaXRoVHlwZTooX1dLQWN0aXZhdGVkRWxlbWVudFR5cGUpdHlw
ZSBVUkw6KE5TVVJMICopdXJsIGltYWdlVVJMOihOU1VSTCAqKWltYWdlVVJMIGxvY2F0aW9uOihj
b25zdCBXZWJDb3JlOjpJbnRQb2ludCYpbG9jYXRpb24gdGl0bGU6KE5TU3RyaW5nICopdGl0bGUg
SUQ6KE5TU3RyaW5nICopSUQgcmVjdDooQ0dSZWN0KXJlY3QgaW1hZ2U6KFdlYktpdDo6U2hhcmVh
YmxlQml0bWFwKilpbWFnZQorLSAoaW5zdGFuY2V0eXBlKV9pbml0V2l0aFR5cGU6KF9XS0FjdGl2
YXRlZEVsZW1lbnRUeXBlKXR5cGUgVVJMOihOU1VSTCAqKXVybCBpbWFnZVVSTDooTlNVUkwgKilp
bWFnZVVSTCBsb2NhdGlvbjooY29uc3QgV2ViQ29yZTo6SW50UG9pbnQmKWxvY2F0aW9uIHRpdGxl
OihOU1N0cmluZyAqKXRpdGxlIElEOihOU1N0cmluZyAqKUlEIHJlY3Q6KENHUmVjdClyZWN0IGlt
YWdlOihXZWJLaXQ6OlNoYXJlYWJsZUJpdG1hcCopaW1hZ2UgaW1hZ2VNSU1FVHlwZTooTlNTdHJp
bmcgKilpbWFnZU1JTUVUeXBlCiB7Ci0gICAgcmV0dXJuIFtzZWxmIF9pbml0V2l0aFR5cGU6dHlw
ZSBVUkw6dXJsIGltYWdlVVJMOmltYWdlVVJMIGxvY2F0aW9uOmxvY2F0aW9uIHRpdGxlOnRpdGxl
IElEOklEIHJlY3Q6cmVjdCBpbWFnZTppbWFnZSB1c2VySW5mbzpuaWxdOworICAgIHJldHVybiBb
c2VsZiBfaW5pdFdpdGhUeXBlOnR5cGUgVVJMOnVybCBpbWFnZVVSTDppbWFnZVVSTCBsb2NhdGlv
bjpsb2NhdGlvbiB0aXRsZTp0aXRsZSBJRDpJRCByZWN0OnJlY3QgaW1hZ2U6aW1hZ2UgaW1hZ2VN
SU1FVHlwZTppbWFnZU1JTUVUeXBlIHVzZXJJbmZvOm5pbF07CiB9CiAKLS0gKGluc3RhbmNldHlw
ZSlfaW5pdFdpdGhUeXBlOihfV0tBY3RpdmF0ZWRFbGVtZW50VHlwZSl0eXBlIFVSTDooTlNVUkwg
Kil1cmwgaW1hZ2VVUkw6KE5TVVJMICopaW1hZ2VVUkwgbG9jYXRpb246KGNvbnN0IFdlYkNvcmU6
OkludFBvaW50Jilsb2NhdGlvbiB0aXRsZTooTlNTdHJpbmcgKil0aXRsZSBJRDooTlNTdHJpbmcg
KilJRCByZWN0OihDR1JlY3QpcmVjdCBpbWFnZTooV2ViS2l0OjpTaGFyZWFibGVCaXRtYXAqKWlt
YWdlIHVzZXJJbmZvOihOU0RpY3Rpb25hcnkgKil1c2VySW5mbworLSAoaW5zdGFuY2V0eXBlKV9p
bml0V2l0aFR5cGU6KF9XS0FjdGl2YXRlZEVsZW1lbnRUeXBlKXR5cGUgVVJMOihOU1VSTCAqKXVy
bCBpbWFnZVVSTDooTlNVUkwgKilpbWFnZVVSTCBsb2NhdGlvbjooY29uc3QgV2ViQ29yZTo6SW50
UG9pbnQmKWxvY2F0aW9uIHRpdGxlOihOU1N0cmluZyAqKXRpdGxlIElEOihOU1N0cmluZyAqKUlE
IHJlY3Q6KENHUmVjdClyZWN0IGltYWdlOihXZWJLaXQ6OlNoYXJlYWJsZUJpdG1hcCopaW1hZ2Ug
aW1hZ2VNSU1FVHlwZTooTlNTdHJpbmcgKilpbWFnZU1JTUVUeXBlIHVzZXJJbmZvOihOU0RpY3Rp
b25hcnkgKil1c2VySW5mbwogewogICAgIGlmICghKHNlbGYgPSBbc3VwZXIgaW5pdF0pKQogICAg
ICAgICByZXR1cm4gbmlsOwogCiAgICAgX1VSTCA9IGFkb3B0TlMoW3VybCBjb3B5XSk7CiAgICAg
X2ltYWdlVVJMID0gYWRvcHROUyhbaW1hZ2VVUkwgY29weV0pOworICAgIF9pbWFnZU1JTUVUeXBl
ID0gYWRvcHROUyhpbWFnZU1JTUVUeXBlLmNvcHkpOwogICAgIF9pbnRlcmFjdGlvbkxvY2F0aW9u
ID0gbG9jYXRpb247CiAgICAgX3RpdGxlID0gYWRvcHROUyhbdGl0bGUgY29weV0pOwogICAgIF9i
b3VuZGluZ1JlY3QgPSByZWN0OwpAQCAtMTI2LDYgKzEyOSwxMSBAQCAtIChOU1N0cmluZyAqKXRp
dGxlCiAgICAgcmV0dXJuIF90aXRsZS5nZXQoKTsKIH0KIAorLSAoTlNTdHJpbmcgKilpbWFnZU1J
TUVUeXBlCit7CisgICAgcmV0dXJuIF9pbWFnZU1JTUVUeXBlLmdldCgpOworfQorCiAtIChOU1N0
cmluZyAqKUlECiB7CiAgICAgcmV0dXJuIF9JRC5nZXQoKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9fV0tBY3RpdmF0ZWRFbGVtZW50SW5mb0ludGVybmFs
LmggYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvX1dLQWN0aXZhdGVkRWxlbWVu
dEluZm9JbnRlcm5hbC5oCmluZGV4IGQ0YTdiZmJiYjYwMWU2MzNiMzk4YWEzZTcwYzY4ZmE1NGU0
MTk0ZmIuLmM2ZWU4MjRkNTlmNWM5ZTE5YThjN2FiZTc4OTQ5YmY2NDAzNjZiZTkgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9fV0tBY3RpdmF0ZWRFbGVtZW50
SW5mb0ludGVybmFsLmgKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL19X
S0FjdGl2YXRlZEVsZW1lbnRJbmZvSW50ZXJuYWwuaApAQCAtNDAsOSArNDAsMTAgQEAgbmFtZXNw
YWNlIFdlYktpdCB7CiArIChpbnN0YW5jZXR5cGUpYWN0aXZhdGVkRWxlbWVudEluZm9XaXRoSW50
ZXJhY3Rpb25JbmZvcm1hdGlvbkF0UG9zaXRpb246KGNvbnN0IFdlYktpdDo6SW50ZXJhY3Rpb25J
bmZvcm1hdGlvbkF0UG9zaXRpb24mKWluZm9ybWF0aW9uIHVzZXJJbmZvOihOU0RpY3Rpb25hcnkg
Kil1c2VySW5mbzsKIC0gKGluc3RhbmNldHlwZSlfaW5pdFdpdGhJbnRlcmFjdGlvbkluZm9ybWF0
aW9uQXRQb3NpdGlvbjooY29uc3QgV2ViS2l0OjpJbnRlcmFjdGlvbkluZm9ybWF0aW9uQXRQb3Np
dGlvbiYpaW5mb3JtYXRpb24gdXNlckluZm86KE5TRGljdGlvbmFyeSAqKXVzZXJJbmZvOwogI2Vu
ZGlmCi0tIChpbnN0YW5jZXR5cGUpX2luaXRXaXRoVHlwZTooX1dLQWN0aXZhdGVkRWxlbWVudFR5
cGUpdHlwZSBVUkw6KE5TVVJMICopdXJsIGltYWdlVVJMOihOU1VSTCAqKWltYWdlVVJMIGxvY2F0
aW9uOihjb25zdCBXZWJDb3JlOjpJbnRQb2ludCYpbG9jYXRpb24gdGl0bGU6KE5TU3RyaW5nICop
dGl0bGUgSUQ6KE5TU3RyaW5nICopSUQgcmVjdDooQ0dSZWN0KXJlY3QgaW1hZ2U6KFdlYktpdDo6
U2hhcmVhYmxlQml0bWFwKilpbWFnZTsKLS0gKGluc3RhbmNldHlwZSlfaW5pdFdpdGhUeXBlOihf
V0tBY3RpdmF0ZWRFbGVtZW50VHlwZSl0eXBlIFVSTDooTlNVUkwgKil1cmwgaW1hZ2VVUkw6KE5T
VVJMICopaW1hZ2VVUkwgbG9jYXRpb246KGNvbnN0IFdlYkNvcmU6OkludFBvaW50Jilsb2NhdGlv
biB0aXRsZTooTlNTdHJpbmcgKil0aXRsZSBJRDooTlNTdHJpbmcgKilJRCByZWN0OihDR1JlY3Qp
cmVjdCBpbWFnZTooV2ViS2l0OjpTaGFyZWFibGVCaXRtYXAqKWltYWdlIHVzZXJJbmZvOihOU0Rp
Y3Rpb25hcnkgKil1c2VySW5mbzsKKy0gKGluc3RhbmNldHlwZSlfaW5pdFdpdGhUeXBlOihfV0tB
Y3RpdmF0ZWRFbGVtZW50VHlwZSl0eXBlIFVSTDooTlNVUkwgKil1cmwgaW1hZ2VVUkw6KE5TVVJM
ICopaW1hZ2VVUkwgbG9jYXRpb246KGNvbnN0IFdlYkNvcmU6OkludFBvaW50Jilsb2NhdGlvbiB0
aXRsZTooTlNTdHJpbmcgKil0aXRsZSBJRDooTlNTdHJpbmcgKilJRCByZWN0OihDR1JlY3QpcmVj
dCBpbWFnZTooV2ViS2l0OjpTaGFyZWFibGVCaXRtYXAqKWltYWdlIGltYWdlTUlNRVR5cGU6KE5T
U3RyaW5nICopaW1hZ2VNSU1FVHlwZTsKKy0gKGluc3RhbmNldHlwZSlfaW5pdFdpdGhUeXBlOihf
V0tBY3RpdmF0ZWRFbGVtZW50VHlwZSl0eXBlIFVSTDooTlNVUkwgKil1cmwgaW1hZ2VVUkw6KE5T
VVJMICopaW1hZ2VVUkwgbG9jYXRpb246KGNvbnN0IFdlYkNvcmU6OkludFBvaW50Jilsb2NhdGlv
biB0aXRsZTooTlNTdHJpbmcgKil0aXRsZSBJRDooTlNTdHJpbmcgKilJRCByZWN0OihDR1JlY3Qp
cmVjdCBpbWFnZTooV2ViS2l0OjpTaGFyZWFibGVCaXRtYXAqKWltYWdlIGltYWdlTUlNRVR5cGU6
KE5TU3RyaW5nICopaW1hZ2VNSU1FVHlwZSB1c2VySW5mbzooTlNEaWN0aW9uYXJ5ICopdXNlcklu
Zm87CiAKK0Bwcm9wZXJ0eSAobm9uYXRvbWljLCByZWFkb25seSkgTlNTdHJpbmcgKmltYWdlTUlN
RVR5cGU7CiBAcHJvcGVydHkgKG5vbmF0b21pYywgcmVhZG9ubHkpIFdlYkNvcmU6OkludFBvaW50
IF9pbnRlcmFjdGlvbkxvY2F0aW9uOwogCiBAZW5kCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0
L1VJUHJvY2Vzcy9BUEkvQ29jb2EvX1dLRWxlbWVudEFjdGlvbi5oIGIvU291cmNlL1dlYktpdC9V
SVByb2Nlc3MvQVBJL0NvY29hL19XS0VsZW1lbnRBY3Rpb24uaAppbmRleCBhYWRlZTlmNmUyMzBi
YzhjNTFjOWUzMTQzMzA1ZDU1NDdhMjM5Yzg3Li40NDkwOWM5Y2NhMGMyN2FmYjc0M2QyYzk2NzJh
ZTdmYjhlOTI0YzY5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29j
b2EvX1dLRWxlbWVudEFjdGlvbi5oCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9D
b2NvYS9fV0tFbGVtZW50QWN0aW9uLmgKQEAgLTU2LDYgKzU2LDcgQEAgdHlwZWRlZiBOU19FTlVN
KE5TSW50ZWdlciwgX1dLRWxlbWVudEFjdGlvblR5cGUpIHsKICAgICBfV0tFbGVtZW50QWN0aW9u
VG9nZ2xlU2hvd0xpbmtQcmV2aWV3cyBXS19BUElfQVZBSUxBQkxFKG1hY29zKDEwLjE1KSwgaW9z
KDEzLjApKSwKICAgICBfV0tFbGVtZW50QWN0aW9uVHlwZUltYWdlRXh0cmFjdGlvbiBXS19BUElf
QVZBSUxBQkxFKGlvcygxNS4wKSksCiAgICAgX1dLRWxlbWVudEFjdGlvblR5cGVSZXZlYWxJbWFn
ZSBXS19BUElfQVZBSUxBQkxFKGlvcygxNS4wKSksCisgICAgX1dLRWxlbWVudEFjdGlvblR5cGVD
b3B5Q3JvcHBlZEltYWdlIFdLX0FQSV9BVkFJTEFCTEUoaW9zKFdLX0lPU19UQkEpKSwKIH0gV0tf
QVBJX0FWQUlMQUJMRShtYWNvcygxMC4xMCksIGlvcyg4LjApKTsKIAogV0tfQ0xBU1NfQVZBSUxB
QkxFKG1hY29zKDEwLjEwKSwgaW9zKDguMCkpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJ
UHJvY2Vzcy9BUEkvQ29jb2EvX1dLRWxlbWVudEFjdGlvbi5tbSBiL1NvdXJjZS9XZWJLaXQvVUlQ
cm9jZXNzL0FQSS9Db2NvYS9fV0tFbGVtZW50QWN0aW9uLm1tCmluZGV4IGMzN2ZjODY5ZDgyYzc0
ZDEwOGY3ZDY4NzM0YWE5OTJmNjliYjNkYWYuLmQ2NDI3OTcxZDY1M2E3YzNjYjk2Mzk3NWQ3MzIz
MjZkZTYwNmJjY2MgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2Nv
YS9fV0tFbGVtZW50QWN0aW9uLm1tCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9D
b2NvYS9fV0tFbGVtZW50QWN0aW9uLm1tCkBAIC02Myw2ICs2Myw3IEBAIHN0YXRpYyBVSUFjdGlv
bklkZW50aWZpZXIgY29uc3QgV0tFbGVtZW50QWN0aW9uVHlwZURvd25sb2FkSWRlbnRpZmllciA9
IEAiV0tFbGVtCiBVSUFjdGlvbklkZW50aWZpZXIgY29uc3QgV0tFbGVtZW50QWN0aW9uVHlwZVRv
Z2dsZVNob3dMaW5rUHJldmlld3NJZGVudGlmaWVyID0gQCJXS0VsZW1lbnRBY3Rpb25UeXBlVG9n
Z2xlU2hvd0xpbmtQcmV2aWV3cyI7CiBzdGF0aWMgVUlBY3Rpb25JZGVudGlmaWVyIGNvbnN0IFdL
RWxlbWVudEFjdGlvblR5cGVJbWFnZUV4dHJhY3Rpb25JZGVudGlmaWVyID0gQCJXS0VsZW1lbnRB
Y3Rpb25UeXBlSW1hZ2VFeHRyYWN0aW9uIjsKIHN0YXRpYyBVSUFjdGlvbklkZW50aWZpZXIgY29u
c3QgV0tFbGVtZW50QWN0aW9uVHlwZVJldmVhbEltYWdlSWRlbnRpZmllciA9IEAiV0tFbGVtZW50
QWN0aW9uVHlwZVJldmVhbEltYWdlIjsKK3N0YXRpYyBVSUFjdGlvbklkZW50aWZpZXIgY29uc3Qg
V0tFbGVtZW50QWN0aW9uVHlwZUNvcHlDcm9wcGVkSW1hZ2VJZGVudGlmaWVyID0gQCJXS0VsZW1l
bnRBY3Rpb25UeXBlQ29weUNyb3BwZWRJbWFnZSI7CiAKIHN0YXRpYyBOU1N0cmluZyAqIGNvbnN0
IHdlYmtpdFNob3dMaW5rUHJldmlld3NQcmVmZXJlbmNlS2V5ID0gQCJXZWJLaXRTaG93TGlua1By
ZXZpZXdzIjsKIHN0YXRpYyBOU1N0cmluZyAqIGNvbnN0IHdlYmtpdFNob3dMaW5rUHJldmlld3NQ
cmVmZXJlbmNlQ2hhbmdlZE5vdGlmaWNhdGlvbiA9IEAiV2ViS2l0U2hvd0xpbmtQcmV2aWV3c1By
ZWZlcmVuY2VDaGFuZ2VkIjsKQEAgLTE3NSw2ICsxNzYsMTQgQEAgKyAoaW5zdGFuY2V0eXBlKV9l
bGVtZW50QWN0aW9uV2l0aFR5cGU6KF9XS0VsZW1lbnRBY3Rpb25UeXBlKXR5cGUgY3VzdG9tVGl0
bGU6KE4KICAgICAgICAgaGFuZGxlciA9IF4oV0tBY3Rpb25TaGVldEFzc2lzdGFudCAqYXNzaXN0
YW50LCBfV0tBY3RpdmF0ZWRFbGVtZW50SW5mbyAqYWN0aW9uSW5mbykgewogICAgICAgICAgICAg
W2Fzc2lzdGFudCBoYW5kbGVFbGVtZW50QWN0aW9uV2l0aFR5cGU6dHlwZSBlbGVtZW50OmFjdGlv
bkluZm8gbmVlZHNJbnRlcmFjdGlvbjpZRVNdOwogICAgICAgICB9OworI2VuZGlmCisgICAgICAg
IGJyZWFrOworICAgIGNhc2UgX1dLRWxlbWVudEFjdGlvblR5cGVDb3B5Q3JvcHBlZEltYWdlOgor
I2lmIEVOQUJMRShJTUFHRV9BTkFMWVNJU19FTkhBTkNFTUVOVFMpCisgICAgICAgIHRpdGxlID0g
V0VCX1VJX1NUUklORygiQ29weSBDcm9wcGVkIEltYWdlIiwgIlRpdGxlIGZvciBDb3B5IENyb3Bw
ZWQgSW1hZ2UiKTsKKyAgICAgICAgaGFuZGxlciA9IF4oV0tBY3Rpb25TaGVldEFzc2lzdGFudCAq
YXNzaXN0YW50LCBfV0tBY3RpdmF0ZWRFbGVtZW50SW5mbyAqYWN0aW9uSW5mbykgeworICAgICAg
ICAgICAgW2Fzc2lzdGFudCBoYW5kbGVFbGVtZW50QWN0aW9uV2l0aFR5cGU6dHlwZSBlbGVtZW50
OmFjdGlvbkluZm8gbmVlZHNJbnRlcmFjdGlvbjpZRVNdOworICAgICAgICB9OwogI2VuZGlmCiAg
ICAgICAgIGJyZWFrOwogICAgIGRlZmF1bHQ6CkBAIC0yNTUsNiArMjY0LDggQEAgKyAoVUlJbWFn
ZSAqKWltYWdlRm9yRWxlbWVudEFjdGlvblR5cGU6KF9XS0VsZW1lbnRBY3Rpb25UeXBlKWFjdGlv
blR5cGUKICNlbHNlCiAgICAgICAgIHJldHVybiBuaWw7CiAjZW5kaWYKKyAgICBjYXNlIF9XS0Vs
ZW1lbnRBY3Rpb25UeXBlQ29weUNyb3BwZWRJbWFnZToKKyAgICAgICAgcmV0dXJuIFtVSUltYWdl
IHN5c3RlbUltYWdlTmFtZWQ6QCJwZXJzb24uZmlsbC52aWV3ZmluZGVyIl07CiAgICAgfQogfQog
CkBAIC0yODksNiArMzAwLDggQEAgc3RhdGljIFVJQWN0aW9uSWRlbnRpZmllciBlbGVtZW50QWN0
aW9uVHlwZVRvVUlBY3Rpb25JZGVudGlmaWVyKF9XS0VsZW1lbnRBY3Rpb24KICAgICAgICAgcmV0
dXJuIFdLRWxlbWVudEFjdGlvblR5cGVJbWFnZUV4dHJhY3Rpb25JZGVudGlmaWVyOwogICAgIGNh
c2UgX1dLRWxlbWVudEFjdGlvblR5cGVSZXZlYWxJbWFnZToKICAgICAgICAgcmV0dXJuIFdLRWxl
bWVudEFjdGlvblR5cGVSZXZlYWxJbWFnZUlkZW50aWZpZXI7CisgICAgY2FzZSBfV0tFbGVtZW50
QWN0aW9uVHlwZUNvcHlDcm9wcGVkSW1hZ2U6CisgICAgICAgIHJldHVybiBXS0VsZW1lbnRBY3Rp
b25UeXBlQ29weUNyb3BwZWRJbWFnZUlkZW50aWZpZXI7CiAgICAgfQogfQogCkBAIC0zMjIsNiAr
MzM1LDggQEAgc3RhdGljIF9XS0VsZW1lbnRBY3Rpb25UeXBlIHVpQWN0aW9uSWRlbnRpZmllclRv
RWxlbWVudEFjdGlvblR5cGUoVUlBY3Rpb25JZGVudGkKICAgICAgICAgcmV0dXJuIF9XS0VsZW1l
bnRBY3Rpb25UeXBlSW1hZ2VFeHRyYWN0aW9uOwogICAgIGlmIChbaWRlbnRpZmllciBpc0VxdWFs
VG9TdHJpbmc6V0tFbGVtZW50QWN0aW9uVHlwZVJldmVhbEltYWdlSWRlbnRpZmllcl0pCiAgICAg
ICAgIHJldHVybiBfV0tFbGVtZW50QWN0aW9uVHlwZVJldmVhbEltYWdlOworICAgIGlmIChbaWRl
bnRpZmllciBpc0VxdWFsVG9TdHJpbmc6V0tFbGVtZW50QWN0aW9uVHlwZUNvcHlDcm9wcGVkSW1h
Z2VJZGVudGlmaWVyXSkKKyAgICAgICAgcmV0dXJuIF9XS0VsZW1lbnRBY3Rpb25UeXBlQ29weUNy
b3BwZWRJbWFnZTsKICAgICByZXR1cm4gX1dLRWxlbWVudEFjdGlvblR5cGVDdXN0b207CiB9CiAK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL2lvcy9XS0FjdGlvblNoZWV0QXNz
aXN0YW50LmggYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9pb3MvV0tBY3Rpb25TaGVldEFzc2lz
dGFudC5oCmluZGV4IDZlOGVlM2RhMzA5MmVhYTJhNzQ0NzZlNTZjZTM1MTM2Njk3OTRmNzMuLmU5
M2JmNmU3ZWVmYjA2NjIzMjkwZTE5M2Y1ZDkyMzAyN2ZlOWExNDUgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJLaXQvVUlQcm9jZXNzL2lvcy9XS0FjdGlvblNoZWV0QXNzaXN0YW50LmgKKysrIGIvU291
cmNlL1dlYktpdC9VSVByb2Nlc3MvaW9zL1dLQWN0aW9uU2hlZXRBc3Npc3RhbnQuaApAQCAtODUs
NiArODUsOSBAQCB0eXBlZGVmIE5TX0VOVU0oTlNJbnRlZ2VyLCBfV0tFbGVtZW50QWN0aW9uVHlw
ZSk7CiAtIChCT09MKWFjdGlvblNoZWV0QXNzaXN0YW50OihXS0FjdGlvblNoZWV0QXNzaXN0YW50
ICopYXNzaXN0YW50IHNob3VsZEluY2x1ZGVMb29rVXBJbWFnZUFjdGlvbkZvckVsZW1lbnQ6KF9X
S0FjdGl2YXRlZEVsZW1lbnRJbmZvICopZWxlbWVudDsKIC0gKHZvaWQpYWN0aW9uU2hlZXRBc3Np
c3RhbnQ6KFdLQWN0aW9uU2hlZXRBc3Npc3RhbnQgKilhc3Npc3RhbnQgbG9va1VwSW1hZ2U6KFVJ
SW1hZ2UgKilpbWFnZSBpbWFnZVVSTDooTlNVUkwgKilpbWFnZVVSTCB0aXRsZTooTlNTdHJpbmcg
Kil0aXRsZSBpbWFnZUJvdW5kczooQ0dSZWN0KWltYWdlQm91bmRzOwogI2VuZGlmCisjaWYgRU5B
QkxFKElNQUdFX0FOQUxZU0lTX0VOSEFOQ0VNRU5UUykKKy0gKHZvaWQpYWN0aW9uU2hlZXRBc3Np
c3RhbnQ6KFdLQWN0aW9uU2hlZXRBc3Npc3RhbnQgKilhc3Npc3RhbnQgY29weUNyb3BwZWRJbWFn
ZTooVUlJbWFnZSAqKWltYWdlIHNvdXJjZU1JTUVUeXBlOihOU1N0cmluZyAqKXNvdXJjZU1JTUVU
eXBlOworI2VuZGlmCiBAZW5kCiAKICNpZiBVU0UoVUlDT05URVhUTUVOVSkKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL2lvcy9XS0FjdGlvblNoZWV0QXNzaXN0YW50Lm1tIGIv
U291cmNlL1dlYktpdC9VSVByb2Nlc3MvaW9zL1dLQWN0aW9uU2hlZXRBc3Npc3RhbnQubW0KaW5k
ZXggNWU1NzRiMmIxZGI5NzhiY2ZlNzkxZDczMTExNTU0ZWE3YWE3MmEyOC4uZjZmNTU4MWE0NmQ2
MzM4ZjRiMGFmODllNzc1NWI1YzUyNGFmY2MwNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9V
SVByb2Nlc3MvaW9zL1dLQWN0aW9uU2hlZXRBc3Npc3RhbnQubW0KKysrIGIvU291cmNlL1dlYktp
dC9VSVByb2Nlc3MvaW9zL1dLQWN0aW9uU2hlZXRBc3Npc3RhbnQubW0KQEAgLTI5LDcgKzI5LDcg
QEAKICNpZiBQTEFURk9STShJT1NfRkFNSUxZKQogCiAjaW1wb3J0ICJBUElVSUNsaWVudC5oIgot
I2ltcG9ydCAiVENDU29mdExpbmsuaCIKKyNpbXBvcnQgIlRleHRSZWNvZ25pdGlvblV0aWxpdGll
cy5oIgogI2ltcG9ydCAiVUlLaXRTUEkuaCIKICNpbXBvcnQgIldLQWN0aW9uU2hlZXQuaCIKICNp
bXBvcnQgIldLQ29udGVudFZpZXdJbnRlcmFjdGlvbi5oIgpAQCAtNjIsNiArNjIsOCBAQCBTT0ZU
X0xJTktfRlJBTUVXT1JLKFNhZmFyaVNlcnZpY2VzKQogU09GVF9MSU5LX0NMQVNTKFNhZmFyaVNl
cnZpY2VzLCBTU1JlYWRpbmdMaXN0KQogI2VuZGlmCiAKKyNpbXBvcnQgIlRDQ1NvZnRMaW5rLmgi
CisKIE9CSkNfQ0xBU1MgRERBY3Rpb247CiAKICNpZiBIQVZFKEFQUF9MSU5LUykKQEAgLTM5Nyw3
ICszOTksNyBAQCAtICh2b2lkKXNob3dJbWFnZVNoZWV0CiAgICAgICAgIGlmICghdGFyZ2V0VVJM
KQogICAgICAgICAgICAgdGFyZ2V0VVJMID0gYWx0ZXJuYXRlVVJMOwogICAgICAgICBhdXRvIGVs
ZW1lbnRCb3VuZHMgPSBfcG9zaXRpb25JbmZvcm1hdGlvbi0+Ym91bmRzOwotICAgICAgICBhdXRv
IGVsZW1lbnRJbmZvID0gYWRvcHROUyhbW19XS0FjdGl2YXRlZEVsZW1lbnRJbmZvIGFsbG9jXSBf
aW5pdFdpdGhUeXBlOl9XS0FjdGl2YXRlZEVsZW1lbnRUeXBlSW1hZ2UgVVJMOnRhcmdldFVSTCBp
bWFnZVVSTDppbWFnZVVSTCBsb2NhdGlvbjpfcG9zaXRpb25JbmZvcm1hdGlvbi0+cmVxdWVzdC5w
b2ludCB0aXRsZTpfcG9zaXRpb25JbmZvcm1hdGlvbi0+dGl0bGUgSUQ6X3Bvc2l0aW9uSW5mb3Jt
YXRpb24tPmlkQXR0cmlidXRlIHJlY3Q6ZWxlbWVudEJvdW5kcyBpbWFnZTpfcG9zaXRpb25JbmZv
cm1hdGlvbi0+aW1hZ2UuZ2V0KCkgdXNlckluZm86dXNlckluZm9dKTsKKyAgICAgICAgYXV0byBl
bGVtZW50SW5mbyA9IGFkb3B0TlMoW1tfV0tBY3RpdmF0ZWRFbGVtZW50SW5mbyBhbGxvY10gX2lu
aXRXaXRoVHlwZTpfV0tBY3RpdmF0ZWRFbGVtZW50VHlwZUltYWdlIFVSTDp0YXJnZXRVUkwgaW1h
Z2VVUkw6aW1hZ2VVUkwgbG9jYXRpb246X3Bvc2l0aW9uSW5mb3JtYXRpb24tPnJlcXVlc3QucG9p
bnQgdGl0bGU6X3Bvc2l0aW9uSW5mb3JtYXRpb24tPnRpdGxlIElEOl9wb3NpdGlvbkluZm9ybWF0
aW9uLT5pZEF0dHJpYnV0ZSByZWN0OmVsZW1lbnRCb3VuZHMgaW1hZ2U6X3Bvc2l0aW9uSW5mb3Jt
YXRpb24tPmltYWdlLmdldCgpIGltYWdlTUlNRVR5cGU6X3Bvc2l0aW9uSW5mb3JtYXRpb24tPmlt
YWdlTUlNRVR5cGUgdXNlckluZm86dXNlckluZm9dKTsKICAgICAgICAgaWYgKFtkZWxlZ2F0ZSBy
ZXNwb25kc1RvU2VsZWN0b3I6QHNlbGVjdG9yKGFjdGlvblNoZWV0QXNzaXN0YW50OnNob3dDdXN0
b21TaGVldEZvckVsZW1lbnQ6KV0gJiYgW2RlbGVnYXRlIGFjdGlvblNoZWV0QXNzaXN0YW50OnNl
bGYgc2hvd0N1c3RvbVNoZWV0Rm9yRWxlbWVudDplbGVtZW50SW5mby5nZXQoKV0pCiAgICAgICAg
ICAgICByZXR1cm47CiAgICAgICAgIGF1dG8gZGVmYXVsdEFjdGlvbnMgPSBbc2VsZiBkZWZhdWx0
QWN0aW9uc0ZvckltYWdlU2hlZXQ6ZWxlbWVudEluZm8uZ2V0KCldOwpAQCAtNTUxLDE0ICs1NTMs
MjAgQEAgLSAoUmV0YWluUHRyPE5TQXJyYXk8X1dLRWxlbWVudEFjdGlvbiAqPj4pZGVmYXVsdEFj
dGlvbnNGb3JMaW5rU2hlZXQ6KF9XS0FjdGl2YXQKICAgICAgICAgW2RlZmF1bHRBY3Rpb25zIGFk
ZE9iamVjdDpbX1dLRWxlbWVudEFjdGlvbiBfZWxlbWVudEFjdGlvbldpdGhUeXBlOl9XS0VsZW1l
bnRBY3Rpb25UeXBlU2hhcmUgYXNzaXN0YW50OnNlbGZdXTsKICAgICB9CiAKLSNpZiBFTkFCTEUo
SU1BR0VfQU5BTFlTSVMpCiAgICAgaWYgKGVsZW1lbnRJbmZvLnR5cGUgPT0gX1dLQWN0aXZhdGVk
RWxlbWVudFR5cGVJbWFnZSB8fCBbZWxlbWVudEluZm8gaW1hZ2VdKSB7CisjaWYgRU5BQkxFKElN
QUdFX0FOQUxZU0lTX0VOSEFOQ0VNRU5UUykKKyAgICAgICAgaWYgKFdlYktpdDo6aXNJbWFnZUFu
YWx5c2lzTWFya3VwU3lzdGVtRmVhdHVyZUVuYWJsZWQoKSkgeworICAgICAgICAgICAgLy8gRklY
TUU6IFRoaXMgc2hvdWxkIGJlIGFkZGl0aW9uYWxseSBnYXRlZCBvbiB0aGUgcmVsZXZhbnQgVmlz
aW9uS2l0IFNQSS4KKyAgICAgICAgICAgIFtkZWZhdWx0QWN0aW9ucyBhZGRPYmplY3Q6W19XS0Vs
ZW1lbnRBY3Rpb24gX2VsZW1lbnRBY3Rpb25XaXRoVHlwZTpfV0tFbGVtZW50QWN0aW9uVHlwZUNv
cHlDcm9wcGVkSW1hZ2UgYXNzaXN0YW50OnNlbGZdXTsKKyAgICAgICAgfQorI2VuZGlmCisjaWYg
RU5BQkxFKElNQUdFX0FOQUxZU0lTKQogICAgICAgICBpZiAoW19kZWxlZ2F0ZSByZXNwb25kc1Rv
U2VsZWN0b3I6QHNlbGVjdG9yKGFjdGlvblNoZWV0QXNzaXN0YW50OnNob3VsZEluY2x1ZGVTaG93
VGV4dEFjdGlvbkZvckVsZW1lbnQ6KV0gJiYgW19kZWxlZ2F0ZSBhY3Rpb25TaGVldEFzc2lzdGFu
dDpzZWxmIHNob3VsZEluY2x1ZGVTaG93VGV4dEFjdGlvbkZvckVsZW1lbnQ6ZWxlbWVudEluZm9d
KQogICAgICAgICAgICAgW2RlZmF1bHRBY3Rpb25zIGFkZE9iamVjdDpbX1dLRWxlbWVudEFjdGlv
biBfZWxlbWVudEFjdGlvbldpdGhUeXBlOl9XS0VsZW1lbnRBY3Rpb25UeXBlSW1hZ2VFeHRyYWN0
aW9uIGFzc2lzdGFudDpzZWxmXV07CiAgICAgICAgIGlmIChbX2RlbGVnYXRlIHJlc3BvbmRzVG9T
ZWxlY3RvcjpAc2VsZWN0b3IoYWN0aW9uU2hlZXRBc3Npc3RhbnQ6c2hvdWxkSW5jbHVkZUxvb2tV
cEltYWdlQWN0aW9uRm9yRWxlbWVudDopXSAmJiBbX2RlbGVnYXRlIGFjdGlvblNoZWV0QXNzaXN0
YW50OnNlbGYgc2hvdWxkSW5jbHVkZUxvb2tVcEltYWdlQWN0aW9uRm9yRWxlbWVudDplbGVtZW50
SW5mb10pCiAgICAgICAgICAgICBbZGVmYXVsdEFjdGlvbnMgYWRkT2JqZWN0OltfV0tFbGVtZW50
QWN0aW9uIF9lbGVtZW50QWN0aW9uV2l0aFR5cGU6X1dLRWxlbWVudEFjdGlvblR5cGVSZXZlYWxJ
bWFnZSBhc3Npc3RhbnQ6c2VsZl1dOwotICAgIH0KICNlbmRpZgorICAgIH0KIAogICAgIHJldHVy
biBkZWZhdWx0QWN0aW9uczsKIH0KQEAgLTU4Miw2ICs1OTAsMTIgQEAgLSAoUmV0YWluUHRyPE5T
QXJyYXk8X1dLRWxlbWVudEFjdGlvbiAqPj4pZGVmYXVsdEFjdGlvbnNGb3JJbWFnZVNoZWV0Oihf
V0tBY3RpdmEKICAgICAgICAgW2RlZmF1bHRBY3Rpb25zIGFkZE9iamVjdDpbX1dLRWxlbWVudEFj
dGlvbiBfZWxlbWVudEFjdGlvbldpdGhUeXBlOl9XS0VsZW1lbnRBY3Rpb25UeXBlU2F2ZUltYWdl
IGFzc2lzdGFudDpzZWxmXV07CiAKICAgICBbZGVmYXVsdEFjdGlvbnMgYWRkT2JqZWN0OltfV0tF
bGVtZW50QWN0aW9uIF9lbGVtZW50QWN0aW9uV2l0aFR5cGU6X1dLRWxlbWVudEFjdGlvblR5cGVD
b3B5IGFzc2lzdGFudDpzZWxmXV07CisjaWYgRU5BQkxFKElNQUdFX0FOQUxZU0lTX0VOSEFOQ0VN
RU5UUykKKyAgICBpZiAoV2ViS2l0Ojppc0ltYWdlQW5hbHlzaXNNYXJrdXBTeXN0ZW1GZWF0dXJl
RW5hYmxlZCgpKSB7CisgICAgICAgIC8vIEZJWE1FOiBUaGlzIHNob3VsZCBiZSBhZGRpdGlvbmFs
bHkgZ2F0ZWQgb24gdGhlIHJlbGV2YW50IFZpc2lvbktpdCBTUEkuCisgICAgICAgIFtkZWZhdWx0
QWN0aW9ucyBhZGRPYmplY3Q6W19XS0VsZW1lbnRBY3Rpb24gX2VsZW1lbnRBY3Rpb25XaXRoVHlw
ZTpfV0tFbGVtZW50QWN0aW9uVHlwZUNvcHlDcm9wcGVkSW1hZ2UgYXNzaXN0YW50OnNlbGZdXTsK
KyAgICB9CisjZW5kaWYKIAogI2lmIEVOQUJMRShJTUFHRV9BTkFMWVNJUykKICAgICBpZiAoW19k
ZWxlZ2F0ZSByZXNwb25kc1RvU2VsZWN0b3I6QHNlbGVjdG9yKGFjdGlvblNoZWV0QXNzaXN0YW50
OnNob3VsZEluY2x1ZGVTaG93VGV4dEFjdGlvbkZvckVsZW1lbnQ6KV0gJiYgW19kZWxlZ2F0ZSBh
Y3Rpb25TaGVldEFzc2lzdGFudDpzZWxmIHNob3VsZEluY2x1ZGVTaG93VGV4dEFjdGlvbkZvckVs
ZW1lbnQ6ZWxlbWVudEluZm9dKQpAQCAtNjE0LDcgKzYyOCw3IEBAIC0gKHZvaWQpc2hvd0xpbmtT
aGVldAogICAgICAgICByZXR1cm47CiAgICAgfQogCi0gICAgYXV0byBlbGVtZW50SW5mbyA9IGFk
b3B0TlMoW1tfV0tBY3RpdmF0ZWRFbGVtZW50SW5mbyBhbGxvY10gX2luaXRXaXRoVHlwZTpfV0tB
Y3RpdmF0ZWRFbGVtZW50VHlwZUxpbmsgVVJMOnRhcmdldFVSTCBpbWFnZVVSTDooTlNVUkwqKV9w
b3NpdGlvbkluZm9ybWF0aW9uLT5pbWFnZVVSTCBsb2NhdGlvbjpfcG9zaXRpb25JbmZvcm1hdGlv
bi0+cmVxdWVzdC5wb2ludCB0aXRsZTpfcG9zaXRpb25JbmZvcm1hdGlvbi0+dGl0bGUgSUQ6X3Bv
c2l0aW9uSW5mb3JtYXRpb24tPmlkQXR0cmlidXRlIHJlY3Q6X3Bvc2l0aW9uSW5mb3JtYXRpb24t
PmJvdW5kcyBpbWFnZTpfcG9zaXRpb25JbmZvcm1hdGlvbi0+aW1hZ2UuZ2V0KCldKTsKKyAgICBh
dXRvIGVsZW1lbnRJbmZvID0gYWRvcHROUyhbW19XS0FjdGl2YXRlZEVsZW1lbnRJbmZvIGFsbG9j
XSBfaW5pdFdpdGhUeXBlOl9XS0FjdGl2YXRlZEVsZW1lbnRUeXBlTGluayBVUkw6dGFyZ2V0VVJM
IGltYWdlVVJMOihOU1VSTCopX3Bvc2l0aW9uSW5mb3JtYXRpb24tPmltYWdlVVJMIGxvY2F0aW9u
Ol9wb3NpdGlvbkluZm9ybWF0aW9uLT5yZXF1ZXN0LnBvaW50IHRpdGxlOl9wb3NpdGlvbkluZm9y
bWF0aW9uLT50aXRsZSBJRDpfcG9zaXRpb25JbmZvcm1hdGlvbi0+aWRBdHRyaWJ1dGUgcmVjdDpf
cG9zaXRpb25JbmZvcm1hdGlvbi0+Ym91bmRzIGltYWdlOl9wb3NpdGlvbkluZm9ybWF0aW9uLT5p
bWFnZS5nZXQoKSBpbWFnZU1JTUVUeXBlOl9wb3NpdGlvbkluZm9ybWF0aW9uLT5pbWFnZU1JTUVU
eXBlXSk7CiAgICAgaWYgKFtfZGVsZWdhdGUgcmVzcG9uZHNUb1NlbGVjdG9yOkBzZWxlY3Rvcihh
Y3Rpb25TaGVldEFzc2lzdGFudDpzaG93Q3VzdG9tU2hlZXRGb3JFbGVtZW50OildICYmIFtfZGVs
ZWdhdGUgYWN0aW9uU2hlZXRBc3Npc3RhbnQ6c2VsZiBzaG93Q3VzdG9tU2hlZXRGb3JFbGVtZW50
OmVsZW1lbnRJbmZvLmdldCgpXSkgewogICAgICAgICBfbmVlZHNMaW5rSW5kaWNhdG9yID0gTk87
CiAgICAgICAgIHJldHVybjsKQEAgLTEwMzEsNiArMTA0NSwxMSBAQCAtICh2b2lkKWhhbmRsZUVs
ZW1lbnRBY3Rpb25XaXRoVHlwZTooX1dLRWxlbWVudEFjdGlvblR5cGUpdHlwZSBlbGVtZW50Oihf
V0tBY3RpdgogICAgIGNhc2UgX1dLRWxlbWVudEFjdGlvblR5cGVSZXZlYWxJbWFnZToKICNpZiBF
TkFCTEUoSU1BR0VfQU5BTFlTSVMpCiAgICAgICAgIFtkZWxlZ2F0ZSBhY3Rpb25TaGVldEFzc2lz
dGFudDpzZWxmIGxvb2tVcEltYWdlOmVsZW1lbnQuaW1hZ2UgaW1hZ2VVUkw6ZWxlbWVudC5pbWFn
ZVVSTCB0aXRsZTplbGVtZW50LnRpdGxlIGltYWdlQm91bmRzOmVsZW1lbnQuYm91bmRpbmdSZWN0
XTsKKyNlbmRpZgorICAgICAgICBicmVhazsKKyAgICBjYXNlIF9XS0VsZW1lbnRBY3Rpb25UeXBl
Q29weUNyb3BwZWRJbWFnZToKKyNpZiBFTkFCTEUoSU1BR0VfQU5BTFlTSVNfRU5IQU5DRU1FTlRT
KQorICAgICAgICBbZGVsZWdhdGUgYWN0aW9uU2hlZXRBc3Npc3RhbnQ6c2VsZiBjb3B5Q3JvcHBl
ZEltYWdlOmVsZW1lbnQuaW1hZ2Ugc291cmNlTUlNRVR5cGU6ZWxlbWVudC5pbWFnZU1JTUVUeXBl
XTsKICNlbmRpZgogICAgICAgICBicmVhazsKICAgICBkZWZhdWx0OgpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYktpdC9VSVByb2Nlc3MvaW9zL1dLQ29udGVudFZpZXdJbnRlcmFjdGlvbi5tbSBiL1Nv
dXJjZS9XZWJLaXQvVUlQcm9jZXNzL2lvcy9XS0NvbnRlbnRWaWV3SW50ZXJhY3Rpb24ubW0KaW5k
ZXggMDAxOGY4MWJiNDVhOGVjMGJkYmNhNjAwYTkyNzk2YmI3NGMzZjQ0YS4uYzMxMjczYjdkZGVh
ZDQwMGMwMGI2OTY2ZTJkNGVkNDcyNDQxN2NlMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9V
SVByb2Nlc3MvaW9zL1dLQ29udGVudFZpZXdJbnRlcmFjdGlvbi5tbQorKysgYi9Tb3VyY2UvV2Vi
S2l0L1VJUHJvY2Vzcy9pb3MvV0tDb250ZW50Vmlld0ludGVyYWN0aW9uLm1tCkBAIC0yOSw2ICsy
OSw3IEBACiAjaWYgUExBVEZPUk0oSU9TX0ZBTUlMWSkKIAogI2ltcG9ydCAiQVBJVUlDbGllbnQu
aCIKKyNpbXBvcnQgIkNvY29hSW1hZ2UuaCIKICNpbXBvcnQgIkNvbXBsZXRpb25IYW5kbGVyQ2Fs
bENoZWNrZXIuaCIKICNpbXBvcnQgIkRvY3VtZW50RWRpdGluZ0NvbnRleHQuaCIKICNpbXBvcnQg
IklucHV0Vmlld1VwZGF0ZURlZmVycmVyLmgiCkBAIC0zNzMsMjAgKzM3NCw2IEBAIHByaXZhdGU6
CiAgICAgYm9vbCBtX3Nob3VsZFByZXZlbnRUZXh0U2VsZWN0aW9uIHsgZmFsc2UgfTsKIH07CiAK
LXN0YXRpYyBSZXRhaW5QdHI8TlNEYXRhPiB0cmFuc2NvZGUoQ0dJbWFnZVJlZiBpbWFnZSwgQ0ZT
dHJpbmdSZWYgdHlwZUlkZW50aWZpZXIpCi17Ci0gICAgaWYgKCFpbWFnZSkKLSAgICAgICAgcmV0
dXJuIG5pbDsKLQotICAgIGF1dG8gZGF0YSA9IGFkb3B0TlMoW1tOU011dGFibGVEYXRhIGFsbG9j
XSBpbml0XSk7Ci0gICAgYXV0byBkZXN0aW5hdGlvbiA9IGFkb3B0Q0YoQ0dJbWFnZURlc3RpbmF0
aW9uQ3JlYXRlV2l0aERhdGEoKF9fYnJpZGdlIENGTXV0YWJsZURhdGFSZWYpZGF0YS5nZXQoKSwg
dHlwZUlkZW50aWZpZXIsIDEsIG5pbCkpOwotICAgIENHSW1hZ2VEZXN0aW5hdGlvbkFkZEltYWdl
KGRlc3RpbmF0aW9uLmdldCgpLCBpbWFnZSwgbmlsKTsKLSAgICBpZiAoIUNHSW1hZ2VEZXN0aW5h
dGlvbkZpbmFsaXplKGRlc3RpbmF0aW9uLmdldCgpKSkKLSAgICAgICAgcmV0dXJuIG5pbDsKLQot
ICAgIHJldHVybiBkYXRhOwotfQotCiAjZW5kaWYgLy8gRU5BQkxFKElNQUdFX0FOQUxZU0lTKQog
CiB9IC8vIG5hbWVzcGFjZSBXZWJLaXQKQEAgLTI2MjYsNyArMjYxMyw3IEBAIC0gKHZvaWQpX3No
b3dBdHRhY2htZW50U2hlZXQKICAgICBpZiAoIVt1aURlbGVnYXRlIHJlc3BvbmRzVG9TZWxlY3Rv
cjpAc2VsZWN0b3IoX3dlYlZpZXc6c2hvd0N1c3RvbVNoZWV0Rm9yRWxlbWVudDopXSkKICAgICAg
ICAgcmV0dXJuOwogCi0gICAgYXV0byBlbGVtZW50ID0gYWRvcHROUyhbW19XS0FjdGl2YXRlZEVs
ZW1lbnRJbmZvIGFsbG9jXSBfaW5pdFdpdGhUeXBlOl9XS0FjdGl2YXRlZEVsZW1lbnRUeXBlQXR0
YWNobWVudCBVUkw6KE5TVVJMICopX3Bvc2l0aW9uSW5mb3JtYXRpb24udXJsIGltYWdlVVJMOihO
U1VSTCAqKV9wb3NpdGlvbkluZm9ybWF0aW9uLmltYWdlVVJMIGxvY2F0aW9uOl9wb3NpdGlvbklu
Zm9ybWF0aW9uLnJlcXVlc3QucG9pbnQgdGl0bGU6X3Bvc2l0aW9uSW5mb3JtYXRpb24udGl0bGUg
SUQ6X3Bvc2l0aW9uSW5mb3JtYXRpb24uaWRBdHRyaWJ1dGUgcmVjdDpfcG9zaXRpb25JbmZvcm1h
dGlvbi5ib3VuZHMgaW1hZ2U6bmlsXSk7CisgICAgYXV0byBlbGVtZW50ID0gYWRvcHROUyhbW19X
S0FjdGl2YXRlZEVsZW1lbnRJbmZvIGFsbG9jXSBfaW5pdFdpdGhUeXBlOl9XS0FjdGl2YXRlZEVs
ZW1lbnRUeXBlQXR0YWNobWVudCBVUkw6KE5TVVJMICopX3Bvc2l0aW9uSW5mb3JtYXRpb24udXJs
IGltYWdlVVJMOihOU1VSTCAqKV9wb3NpdGlvbkluZm9ybWF0aW9uLmltYWdlVVJMIGxvY2F0aW9u
Ol9wb3NpdGlvbkluZm9ybWF0aW9uLnJlcXVlc3QucG9pbnQgdGl0bGU6X3Bvc2l0aW9uSW5mb3Jt
YXRpb24udGl0bGUgSUQ6X3Bvc2l0aW9uSW5mb3JtYXRpb24uaWRBdHRyaWJ1dGUgcmVjdDpfcG9z
aXRpb25JbmZvcm1hdGlvbi5ib3VuZHMgaW1hZ2U6bmlsIGltYWdlTUlNRVR5cGU6X3Bvc2l0aW9u
SW5mb3JtYXRpb24uaW1hZ2VNSU1FVHlwZV0pOwogICAgIEFMTE9XX0RFUFJFQ0FURURfREVDTEFS
QVRJT05TX0JFR0lOCiAgICAgW3VpRGVsZWdhdGUgX3dlYlZpZXc6c2VsZi53ZWJWaWV3IHNob3dD
dXN0b21TaGVldEZvckVsZW1lbnQ6ZWxlbWVudC5nZXQoKV07CiAgICAgQUxMT1dfREVQUkVDQVRF
RF9ERUNMQVJBVElPTlNfRU5ECkBAIC00Njk3LDE1ICs0Njg0LDggQEAgLSAodm9pZClwZXJmb3Jt
SW1hZ2VBbmFseXNpc01hcmt1cDooaWQpc2VuZGVyCiAgICAgICAgIHJldHVybjsKIAogICAgIGF1
dG8gW2VsZW1lbnRDb250ZXh0LCBpbWFnZSwgcHJlZmVycmVkTUlNRVR5cGVdID0gKl9pbWFnZUFu
YWx5c2lzTWFya3VwRGF0YTsKLSAgICBhdXRvIHRhcmdldFR5cGUgPSBSZXRhaW5QdHIgeyBVVFR5
cGVUSUZGLmlkZW50aWZpZXIgfTsKLSAgICBpZiAoIXByZWZlcnJlZE1JTUVUeXBlLmlzRW1wdHko
KSkgewotICAgICAgICBOU1N0cmluZyAqcHJlZmVycmVkVHlwZUlkZW50aWZpZXIgPSBbVVRUeXBl
IHR5cGVXaXRoTUlNRVR5cGU6cHJlZmVycmVkTUlNRVR5cGUgY29uZm9ybWluZ1RvVHlwZTpVVFR5
cGVJbWFnZV0uaWRlbnRpZmllcjsKLSAgICAgICAgaWYgKFdlYkNvcmU6OmlzU3VwcG9ydGVkSW1h
Z2VUeXBlKHByZWZlcnJlZFR5cGVJZGVudGlmaWVyKSkKLSAgICAgICAgICAgIHRhcmdldFR5cGUg
PSBwcmVmZXJyZWRUeXBlSWRlbnRpZmllcjsKLSAgICB9Ci0KLSAgICBpZiAoYXV0byBkYXRhID0g
V2ViS2l0Ojp0cmFuc2NvZGUoaW1hZ2UuZ2V0KCksIChfX2JyaWRnZSBDRlN0cmluZ1JlZil0YXJn
ZXRUeXBlLmdldCgpKTsgW2RhdGEgbGVuZ3RoXSkKLSAgICAgICAgX3BhZ2UtPnJlcGxhY2VTZWxl
Y3Rpb25XaXRoUGFzdGVib2FyZERhdGEoeyBTdHJpbmcgeyB0YXJnZXRUeXBlLmdldCgpIH0gfSwg
eyBzdGF0aWNfY2FzdDxjb25zdCB1aW50OF90Kj4oW2RhdGEgYnl0ZXNdKSwgW2RhdGEgbGVuZ3Ro
XSB9KTsKKyAgICBpZiAoYXV0byBbZGF0YSwgdHlwZV0gPSBXZWJLaXQ6OnRyYW5zY29kZVdpdGhQ
cmVmZXJyZWRNSU1FVHlwZShpbWFnZS5nZXQoKSwgcHJlZmVycmVkTUlNRVR5cGUuY3JlYXRlQ0ZT
dHJpbmcoKS5nZXQoKSwgKF9fYnJpZGdlIENGU3RyaW5nUmVmKVVUVHlwZVRJRkYuaWRlbnRpZmll
cik7IGRhdGEpCisgICAgICAgIF9wYWdlLT5yZXBsYWNlU2VsZWN0aW9uV2l0aFBhc3RlYm9hcmRE
YXRhKHsgU3RyaW5nIHsgdHlwZS5nZXQoKSB9IH0sIHsgc3RhdGljX2Nhc3Q8Y29uc3QgdWludDhf
dCo+KFtkYXRhIGJ5dGVzXSksIFtkYXRhIGxlbmd0aF0gfSk7CiB9CiAKIC0gKHZvaWQpZG9BZnRl
ckNvbXB1dGluZ0ltYWdlQW5hbHlzaXNSZXN1bHRzRm9yTWFya3VwOihDb21wbGV0aW9uSGFuZGxl
cjx2b2lkKCk+JiYpY29tcGxldGlvbgpAQCAtNDc0NywyMCArNDcyNyw3IEBAIC0gKHZvaWQpZG9B
ZnRlckNvbXB1dGluZ0ltYWdlQW5hbHlzaXNSZXN1bHRzRm9yTWFya3VwOihDb21wbGV0aW9uSGFu
ZGxlcjx2b2lkKCk+CiAgICAgICAgICAgICByZXR1cm47CiAgICAgICAgIH0KIAotICAgICAgICAv
LyBGSVhNRTogQ2hlY2sgdG8gc2VlIGlmIHdlIGNhbiBhdm9pZCB0aGlzIGV4dHJhIHRyYW5zY29k
aW5nIHN0ZXAgb25jZSBWaXNpb25LaXQgc3RhcnRzIHVzaW5nIGBtZWRpYWFuYWx5c2lzZGAgZm9y
IHRoaXMuCi0gICAgICAgIGF1dG8gdGlmZkRhdGEgPSBXZWJLaXQ6OnRyYW5zY29kZShjZ0ltYWdl
LmdldCgpLCAoX19icmlkZ2UgQ0ZTdHJpbmdSZWYpVVRUeXBlVElGRi5pZGVudGlmaWVyKTsKLSAg
ICAgICAgaWYgKCFbdGlmZkRhdGEgbGVuZ3RoXSkgewotICAgICAgICAgICAgY29tcGxldGlvbigp
OwotICAgICAgICAgICAgcmV0dXJuOwotICAgICAgICB9Ci0KLSAgICAgICAgUmV0YWluUHRyIHRy
YW5zY29kZWRJbWFnZSA9IFtVSUltYWdlIGltYWdlV2l0aERhdGE6dGlmZkRhdGEuZ2V0KCldOwot
ICAgICAgICBpZiAoIXRyYW5zY29kZWRJbWFnZSkgewotICAgICAgICAgICAgY29tcGxldGlvbigp
OwotICAgICAgICAgICAgcmV0dXJuOwotICAgICAgICB9Ci0KLSAgICAgICAgV2ViS2l0OjpyZXF1
ZXN0SW1hZ2VBbmFseXNpc01hcmt1cChbdHJhbnNjb2RlZEltYWdlIENHSW1hZ2VdLCBbc291cmNl
TUlNRVR5cGUsIGNvbnRleHQsIGNvbXBsZXRpb24gPSBXVEZNb3ZlKGNvbXBsZXRpb24pLCB3ZWFr
U2VsZl0oQ0dJbWFnZVJlZiByZXN1bHQpIG11dGFibGUgeworICAgICAgICBXZWJLaXQ6OnJlcXVl
c3RJbWFnZUFuYWx5c2lzTWFya3VwKGNnSW1hZ2UuZ2V0KCksIFtzb3VyY2VNSU1FVHlwZSwgY29u
dGV4dCwgY29tcGxldGlvbiA9IFdURk1vdmUoY29tcGxldGlvbiksIHdlYWtTZWxmXShDR0ltYWdl
UmVmIHJlc3VsdCkgbXV0YWJsZSB7CiAgICAgICAgICAgICBhdXRvIHN0cm9uZ1NlbGYgPSB3ZWFr
U2VsZi5nZXQoKTsKICAgICAgICAgICAgIGlmICghc3Ryb25nU2VsZikgewogICAgICAgICAgICAg
ICAgIGNvbXBsZXRpb24oKTsKQEAgLTEwODc3LDYgKzEwODQ0LDMwIEBAIC0gKHZvaWQpY2FwdHVy
ZVRleHRGcm9tQ2FtZXJhRm9yV2ViVmlldzooaWQpc2VuZGVyCiAKICNlbmRpZiAvLyBFTkFCTEUo
SU1BR0VfQU5BTFlTSVMpCiAKKyNpZiBFTkFCTEUoSU1BR0VfQU5BTFlTSVNfRU5IQU5DRU1FTlRT
KQorCistICh2b2lkKWFjdGlvblNoZWV0QXNzaXN0YW50OihXS0FjdGlvblNoZWV0QXNzaXN0YW50
ICopYXNzaXN0YW50IGNvcHlDcm9wcGVkSW1hZ2U6KFVJSW1hZ2UgKilpbWFnZSBzb3VyY2VNSU1F
VHlwZTooTlNTdHJpbmcgKilzb3VyY2VNSU1FVHlwZQoreworICAgIGF1dG8gY2hhbmdlQ291bnQg
PSBVSVBhc3RlYm9hcmQuZ2VuZXJhbFBhc3RlYm9hcmQuY2hhbmdlQ291bnQ7CisgICAgV2ViS2l0
OjpyZXF1ZXN0SW1hZ2VBbmFseXNpc01hcmt1cChpbWFnZS5DR0ltYWdlLCBbY2hhbmdlQ291bnQs
IHdlYWtTZWxmID0gV2Vha09iakNQdHI8V0tDb250ZW50Vmlldz4oc2VsZiksIG9yaWdpbmFsSW1h
Z2UgPSBSZXRhaW5QdHIgeyBpbWFnZSB9LCBzb3VyY2VNSU1FVHlwZSA9IFJldGFpblB0ciB7IHNv
dXJjZU1JTUVUeXBlIH1dKENHSW1hZ2VSZWYgcmVzdWx0KSBtdXRhYmxlIHsKKyAgICAgICAgYXV0
byBzdHJvbmdTZWxmID0gd2Vha1NlbGYuZ2V0KCk7CisgICAgICAgIGlmICghc3Ryb25nU2VsZikK
KyAgICAgICAgICAgIHJldHVybjsKKworICAgICAgICBhdXRvIFtkYXRhLCB0eXBlXSA9IFdlYktp
dDo6dHJhbnNjb2RlV2l0aFByZWZlcnJlZE1JTUVUeXBlKHJlc3VsdCA/OiBbb3JpZ2luYWxJbWFn
ZSBDR0ltYWdlXSwgKF9fYnJpZGdlIENGU3RyaW5nUmVmKXNvdXJjZU1JTUVUeXBlLmdldCgpLCAo
X19icmlkZ2UgQ0ZTdHJpbmdSZWYpVVRUeXBlVElGRi5pZGVudGlmaWVyKTsKKyAgICAgICAgaWYg
KCFkYXRhKQorICAgICAgICAgICAgcmV0dXJuOworCisgICAgICAgIFtVSVBhc3RlYm9hcmQgX3Bl
cmZvcm1Bc0RhdGFPd25lcjpbc3Ryb25nU2VsZiBfZGF0YU93bmVyRm9yQ29weV0gYmxvY2s6W2Rh
dGEgPSBXVEZNb3ZlKGRhdGEpLCB0eXBlID0gV1RGTW92ZSh0eXBlKSwgY2hhbmdlQ291bnRdIHsK
KyAgICAgICAgICAgIGF1dG8gcGFzdGVib2FyZCA9IFVJUGFzdGVib2FyZC5nZW5lcmFsUGFzdGVi
b2FyZDsKKyAgICAgICAgICAgIGlmIChjaGFuZ2VDb3VudCA9PSBwYXN0ZWJvYXJkLmNoYW5nZUNv
dW50KQorICAgICAgICAgICAgICAgIFtwYXN0ZWJvYXJkIHNldERhdGE6ZGF0YS5nZXQoKSBmb3JQ
YXN0ZWJvYXJkVHlwZTooX19icmlkZ2UgTlNTdHJpbmcgKil0eXBlLmdldCgpXTsKKyAgICAgICAg
fV07CisgICAgfSk7Cit9CisKKyNlbmRpZiAvLyBFTkFCTEUoSU1BR0VfQU5BTFlTSVNfRU5IQU5D
RU1FTlRTKQorCiAjaWYgVVNFKEFQUExFX0lOVEVSTkFMX1NESykKICNpbXBvcnQgPFdlYktpdEFk
ZGl0aW9ucy9XS0NvbnRlbnRWaWV3SW50ZXJhY3Rpb25BZGRpdGlvbnNBZnRlci5tbT4KICNlbHNl
CkBAIC0xMTk2NCw3ICsxMTk1NSw3IEBAIC0gKE5TRGljdGlvbmFyeSAqKV9kYXRhRm9yUHJldmll
d0l0ZW1Db250cm9sbGVyOihVSVByZXZpZXdJdGVtQ29udHJvbGxlciAqKWNvbnRyCiAgICAgICAg
IGRhdGFGb3JQcmV2aWV3LmdldCgpW1VJUHJldmlld0RhdGFMaW5rXSA9IChOU1VSTCAqKV9wb3Np
dGlvbkluZm9ybWF0aW9uLmltYWdlVVJMOwogICAgIH0gZWxzZSBpZiAoY2FuU2hvd0F0dGFjaG1l
bnRQcmV2aWV3KSB7CiAgICAgICAgICp0eXBlID0gVUlQcmV2aWV3SXRlbVR5cGVBdHRhY2htZW50
OwotICAgICAgICBhdXRvIGVsZW1lbnQgPSBhZG9wdE5TKFtbX1dLQWN0aXZhdGVkRWxlbWVudElu
Zm8gYWxsb2NdIF9pbml0V2l0aFR5cGU6X1dLQWN0aXZhdGVkRWxlbWVudFR5cGVBdHRhY2htZW50
IFVSTDooTlNVUkwgKilsaW5rVVJMIGltYWdlVVJMOihOU1VSTCAqKV9wb3NpdGlvbkluZm9ybWF0
aW9uLmltYWdlVVJMIGxvY2F0aW9uOl9wb3NpdGlvbkluZm9ybWF0aW9uLnJlcXVlc3QucG9pbnQg
dGl0bGU6X3Bvc2l0aW9uSW5mb3JtYXRpb24udGl0bGUgSUQ6X3Bvc2l0aW9uSW5mb3JtYXRpb24u
aWRBdHRyaWJ1dGUgcmVjdDpfcG9zaXRpb25JbmZvcm1hdGlvbi5ib3VuZHMgaW1hZ2U6bmlsXSk7
CisgICAgICAgIGF1dG8gZWxlbWVudCA9IGFkb3B0TlMoW1tfV0tBY3RpdmF0ZWRFbGVtZW50SW5m
byBhbGxvY10gX2luaXRXaXRoVHlwZTpfV0tBY3RpdmF0ZWRFbGVtZW50VHlwZUF0dGFjaG1lbnQg
VVJMOihOU1VSTCAqKWxpbmtVUkwgaW1hZ2VVUkw6KE5TVVJMICopX3Bvc2l0aW9uSW5mb3JtYXRp
b24uaW1hZ2VVUkwgbG9jYXRpb246X3Bvc2l0aW9uSW5mb3JtYXRpb24ucmVxdWVzdC5wb2ludCB0
aXRsZTpfcG9zaXRpb25JbmZvcm1hdGlvbi50aXRsZSBJRDpfcG9zaXRpb25JbmZvcm1hdGlvbi5p
ZEF0dHJpYnV0ZSByZWN0Ol9wb3NpdGlvbkluZm9ybWF0aW9uLmJvdW5kcyBpbWFnZTpuaWwgaW1h
Z2VNSU1FVHlwZTpfcG9zaXRpb25JbmZvcm1hdGlvbi5pbWFnZU1JTUVUeXBlXSk7CiAgICAgICAg
IE5TVUludGVnZXIgaW5kZXggPSBbdWlEZWxlZ2F0ZSBfd2ViVmlldzpzZWxmLndlYlZpZXcgaW5k
ZXhJbnRvQXR0YWNobWVudExpc3RGb3JFbGVtZW50OmVsZW1lbnQuZ2V0KCldOwogICAgICAgICBp
ZiAoaW5kZXggIT0gTlNOb3RGb3VuZCkgewogICAgICAgICAgICAgQk9PTCBzb3VyY2VJc01hbmFn
ZWQgPSBOTzsKQEAgLTEyMDAxLDcgKzExOTkyLDcgQEAgLSAoVUlWaWV3Q29udHJvbGxlciAqKV9w
cmVzZW50ZWRWaWV3Q29udHJvbGxlckZvclByZXZpZXdJdGVtQ29udHJvbGxlcjooVUlQcmV2aWUK
IAogICAgICAgICAvLyBUcmVhdCBhbmltYXRlZCBpbWFnZXMgbGlrZSBhIGxpbmsgcHJldmlldwog
ICAgICAgICBpZiAoaXNWYWxpZFVSTEZvckltYWdlUHJldmlldyAmJiBfcG9zaXRpb25JbmZvcm1h
dGlvbi5pc0FuaW1hdGVkSW1hZ2UpIHsKLSAgICAgICAgICAgIFJldGFpblB0cjxfV0tBY3RpdmF0
ZWRFbGVtZW50SW5mbz4gYW5pbWF0ZWRJbWFnZUVsZW1lbnRJbmZvID0gYWRvcHROUyhbW19XS0Fj
dGl2YXRlZEVsZW1lbnRJbmZvIGFsbG9jXSBfaW5pdFdpdGhUeXBlOl9XS0FjdGl2YXRlZEVsZW1l
bnRUeXBlSW1hZ2UgVVJMOnRhcmdldFVSTCBpbWFnZVVSTDpuaWwgbG9jYXRpb246X3Bvc2l0aW9u
SW5mb3JtYXRpb24ucmVxdWVzdC5wb2ludCB0aXRsZTpfcG9zaXRpb25JbmZvcm1hdGlvbi50aXRs
ZSBJRDpfcG9zaXRpb25JbmZvcm1hdGlvbi5pZEF0dHJpYnV0ZSByZWN0Ol9wb3NpdGlvbkluZm9y
bWF0aW9uLmJvdW5kcyBpbWFnZTpfcG9zaXRpb25JbmZvcm1hdGlvbi5pbWFnZS5nZXQoKV0pOwor
ICAgICAgICAgICAgYXV0byBhbmltYXRlZEltYWdlRWxlbWVudEluZm8gPSBhZG9wdE5TKFtbX1dL
QWN0aXZhdGVkRWxlbWVudEluZm8gYWxsb2NdIF9pbml0V2l0aFR5cGU6X1dLQWN0aXZhdGVkRWxl
bWVudFR5cGVJbWFnZSBVUkw6dGFyZ2V0VVJMIGltYWdlVVJMOm5pbCBsb2NhdGlvbjpfcG9zaXRp
b25JbmZvcm1hdGlvbi5yZXF1ZXN0LnBvaW50IHRpdGxlOl9wb3NpdGlvbkluZm9ybWF0aW9uLnRp
dGxlIElEOl9wb3NpdGlvbkluZm9ybWF0aW9uLmlkQXR0cmlidXRlIHJlY3Q6X3Bvc2l0aW9uSW5m
b3JtYXRpb24uYm91bmRzIGltYWdlOl9wb3NpdGlvbkluZm9ybWF0aW9uLmltYWdlLmdldCgpIGlt
YWdlTUlNRVR5cGU6X3Bvc2l0aW9uSW5mb3JtYXRpb24uaW1hZ2VNSU1FVHlwZV0pOwogCiAgICAg
ICAgICAgICBpZiAoW3VpRGVsZWdhdGUgcmVzcG9uZHNUb1NlbGVjdG9yOkBzZWxlY3Rvcihfd2Vi
VmlldzpwcmV2aWV3Vmlld0NvbnRyb2xsZXJGb3JBbmltYXRlZEltYWdlQXRVUkw6ZGVmYXVsdEFj
dGlvbnM6ZWxlbWVudEluZm86aW1hZ2VTaXplOildKSB7CiAgICAgICAgICAgICAgICAgUmV0YWlu
UHRyPE5TQXJyYXk+IGFjdGlvbnMgPSBbX2FjdGlvblNoZWV0QXNzaXN0YW50IGRlZmF1bHRBY3Rp
b25zRm9ySW1hZ2VTaGVldDphbmltYXRlZEltYWdlRWxlbWVudEluZm8uZ2V0KCldOwpAQCAtMTIw
MTEsNyArMTIwMDIsNyBAQCAtIChVSVZpZXdDb250cm9sbGVyICopX3ByZXNlbnRlZFZpZXdDb250
cm9sbGVyRm9yUHJldmlld0l0ZW1Db250cm9sbGVyOihVSVByZXZpZQogICAgICAgICAgICAgfQog
ICAgICAgICB9CiAKLSAgICAgICAgUmV0YWluUHRyPF9XS0FjdGl2YXRlZEVsZW1lbnRJbmZvPiBl
bGVtZW50SW5mbyA9IGFkb3B0TlMoW1tfV0tBY3RpdmF0ZWRFbGVtZW50SW5mbyBhbGxvY10gX2lu
aXRXaXRoVHlwZTpfV0tBY3RpdmF0ZWRFbGVtZW50VHlwZUxpbmsgVVJMOnRhcmdldFVSTCBpbWFn
ZVVSTDpuaWwgbG9jYXRpb246X3Bvc2l0aW9uSW5mb3JtYXRpb24ucmVxdWVzdC5wb2ludCB0aXRs
ZTpfcG9zaXRpb25JbmZvcm1hdGlvbi50aXRsZSBJRDpfcG9zaXRpb25JbmZvcm1hdGlvbi5pZEF0
dHJpYnV0ZSByZWN0Ol9wb3NpdGlvbkluZm9ybWF0aW9uLmJvdW5kcyBpbWFnZTpfcG9zaXRpb25J
bmZvcm1hdGlvbi5pbWFnZS5nZXQoKV0pOworICAgICAgICBhdXRvIGVsZW1lbnRJbmZvID0gYWRv
cHROUyhbW19XS0FjdGl2YXRlZEVsZW1lbnRJbmZvIGFsbG9jXSBfaW5pdFdpdGhUeXBlOl9XS0Fj
dGl2YXRlZEVsZW1lbnRUeXBlTGluayBVUkw6dGFyZ2V0VVJMIGltYWdlVVJMOm5pbCBsb2NhdGlv
bjpfcG9zaXRpb25JbmZvcm1hdGlvbi5yZXF1ZXN0LnBvaW50IHRpdGxlOl9wb3NpdGlvbkluZm9y
bWF0aW9uLnRpdGxlIElEOl9wb3NpdGlvbkluZm9ybWF0aW9uLmlkQXR0cmlidXRlIHJlY3Q6X3Bv
c2l0aW9uSW5mb3JtYXRpb24uYm91bmRzIGltYWdlOl9wb3NpdGlvbkluZm9ybWF0aW9uLmltYWdl
LmdldCgpIGltYWdlTUlNRVR5cGU6X3Bvc2l0aW9uSW5mb3JtYXRpb24uaW1hZ2VNSU1FVHlwZV0p
OwogCiAgICAgICAgIGF1dG8gYWN0aW9ucyA9IFtfYWN0aW9uU2hlZXRBc3Npc3RhbnQgZGVmYXVs
dEFjdGlvbnNGb3JMaW5rU2hlZXQ6ZWxlbWVudEluZm8uZ2V0KCldOwogICAgICAgICBpZiAoW3Vp
RGVsZWdhdGUgcmVzcG9uZHNUb1NlbGVjdG9yOkBzZWxlY3Rvcih3ZWJWaWV3OnByZXZpZXdpbmdW
aWV3Q29udHJvbGxlckZvckVsZW1lbnQ6ZGVmYXVsdEFjdGlvbnM6KV0pIHsKQEAgLTEyMDU2LDcg
KzEyMDQ3LDcgQEAgLSAoVUlWaWV3Q29udHJvbGxlciAqKV9wcmVzZW50ZWRWaWV3Q29udHJvbGxl
ckZvclByZXZpZXdJdGVtQ29udHJvbGxlcjooVUlQcmV2aWUKICAgICAgICAgICAgIGltYWdlSW5m
byA9IHVzZXJJbmZvOwogICAgICAgICB9CiAKLSAgICAgICAgUmV0YWluUHRyPF9XS0FjdGl2YXRl
ZEVsZW1lbnRJbmZvPiBlbGVtZW50SW5mbyA9IGFkb3B0TlMoW1tfV0tBY3RpdmF0ZWRFbGVtZW50
SW5mbyBhbGxvY10gX2luaXRXaXRoVHlwZTpfV0tBY3RpdmF0ZWRFbGVtZW50VHlwZUltYWdlIFVS
TDphbHRlcm5hdGVVUkwuZ2V0KCkgaW1hZ2VVUkw6bmlsIGxvY2F0aW9uOl9wb3NpdGlvbkluZm9y
bWF0aW9uLnJlcXVlc3QucG9pbnQgdGl0bGU6X3Bvc2l0aW9uSW5mb3JtYXRpb24udGl0bGUgSUQ6
X3Bvc2l0aW9uSW5mb3JtYXRpb24uaWRBdHRyaWJ1dGUgcmVjdDpfcG9zaXRpb25JbmZvcm1hdGlv
bi5ib3VuZHMgaW1hZ2U6X3Bvc2l0aW9uSW5mb3JtYXRpb24uaW1hZ2UuZ2V0KCkgdXNlckluZm86
aW1hZ2VJbmZvLmdldCgpXSk7CisgICAgICAgIGF1dG8gZWxlbWVudEluZm8gPSBhZG9wdE5TKFtb
X1dLQWN0aXZhdGVkRWxlbWVudEluZm8gYWxsb2NdIF9pbml0V2l0aFR5cGU6X1dLQWN0aXZhdGVk
RWxlbWVudFR5cGVJbWFnZSBVUkw6YWx0ZXJuYXRlVVJMLmdldCgpIGltYWdlVVJMOm5pbCBsb2Nh
dGlvbjpfcG9zaXRpb25JbmZvcm1hdGlvbi5yZXF1ZXN0LnBvaW50IHRpdGxlOl9wb3NpdGlvbklu
Zm9ybWF0aW9uLnRpdGxlIElEOl9wb3NpdGlvbkluZm9ybWF0aW9uLmlkQXR0cmlidXRlIHJlY3Q6
X3Bvc2l0aW9uSW5mb3JtYXRpb24uYm91bmRzIGltYWdlOl9wb3NpdGlvbkluZm9ybWF0aW9uLmlt
YWdlLmdldCgpIGltYWdlTUlNRVR5cGU6X3Bvc2l0aW9uSW5mb3JtYXRpb24uaW1hZ2VNSU1FVHlw
ZSB1c2VySW5mbzppbWFnZUluZm8uZ2V0KCldKTsKICAgICAgICAgX3BhZ2UtPnN0YXJ0SW50ZXJh
Y3Rpb25XaXRoUG9zaXRpb25JbmZvcm1hdGlvbihfcG9zaXRpb25JbmZvcm1hdGlvbik7CiAKICAg
ICAgICAgQUxMT1dfREVQUkVDQVRFRF9ERUNMQVJBVElPTlNfQkVHSU4KZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJLaXQvV2ViS2l0Lnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2ogYi9Tb3VyY2UvV2Vi
S2l0L1dlYktpdC54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCmluZGV4IGJmM2Q4MGVmNmI4OTk1
YTgxOGI3NDBhZTA1MGQxZDAzZGIyNWNjYzAuLjkxNmIxNmI3NWExYmNlYTcwZGU3NTc0MjBhMGU0
NzQ4N2FiZjEzZWEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViS2l0Lnhjb2RlcHJvai9w
cm9qZWN0LnBieHByb2oKKysrIGIvU291cmNlL1dlYktpdC9XZWJLaXQueGNvZGVwcm9qL3Byb2pl
Y3QucGJ4cHJvagpAQCAtNjU4Niw2ICs2NTg2LDcgQEAKIAkJRjREQkMwQkQyNzZBQTZBNzAwMDFE
MTY5IC8qIF9XS01vZGFsQ29udGFpbmVySW5mby5tbSAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJl
bmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3Bw
Lm9iamNwcDsgcGF0aCA9IF9XS01vZGFsQ29udGFpbmVySW5mby5tbTsgc291cmNlVHJlZSA9ICI8
Z3JvdXA+IjsgfTsKIAkJRjREQkMwQzAyNzZBQTZDQTAwMDFEMTY5IC8qIF9XS01vZGFsQ29udGFp
bmVySW5mb0ludGVybmFsLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3du
RmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IF9XS01vZGFsQ29udGFpbmVySW5mb0lu
dGVybmFsLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUY0RTJCNDRBMjY4RkRFMUEw
MDMyN0FCQyAvKiBUYXBIYW5kbGluZ1Jlc3VsdC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVu
Y2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IG5hbWUgPSBUYXBIYW5kbGlu
Z1Jlc3VsdC5oOyBwYXRoID0gaW9zL1RhcEhhbmRsaW5nUmVzdWx0Lmg7IHNvdXJjZVRyZWUgPSAi
PGdyb3VwPiI7IH07CisJCUY0RTQ3QkI1MjdCNUFFNUIwMDgxM0IzOCAvKiBDb2NvYUltYWdlLm1t
ICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNl
Y29kZS5jcHAub2JqY3BwOyBwYXRoID0gQ29jb2FJbWFnZS5tbTsgc291cmNlVHJlZSA9ICI8Z3Jv
dXA+IjsgfTsKIAkJRjRFQjRBRkMyNjlDRDIzNjAwRDI5N0FFIC8qIE9TU3RhdGVTUEkuaCAqLyA9
IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUu
Yy5oOyBwYXRoID0gT1NTdGF0ZVNQSS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlG
NEY1OUFEMzIwNjVBNUM5MDA2Q0FBNDYgLyogV0tTZWxlY3RNZW51TGlzdFZpZXdDb250cm9sbGVy
Lm1tICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RL
bm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAub2JqY3BwOyBuYW1lID0gV0tTZWxlY3RNZW51
TGlzdFZpZXdDb250cm9sbGVyLm1tOyBwYXRoID0gaW9zL2Zvcm1zL1dLU2VsZWN0TWVudUxpc3RW
aWV3Q29udHJvbGxlci5tbTsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJRjRGNTlBRDQy
MDY1QTVDQTAwNkNBQTQ2IC8qIFdLU2VsZWN0TWVudUxpc3RWaWV3Q29udHJvbGxlci5oICovID0g
e2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVU
eXBlID0gc291cmNlY29kZS5jLmg7IG5hbWUgPSBXS1NlbGVjdE1lbnVMaXN0Vmlld0NvbnRyb2xs
ZXIuaDsgcGF0aCA9IGlvcy9mb3Jtcy9XS1NlbGVjdE1lbnVMaXN0Vmlld0NvbnRyb2xsZXIuaDsg
c291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKQEAgLTkzNDIsNiArOTM0Myw3IEBACiAJCQlpc2Eg
PSBQQlhHcm91cDsKIAkJCWNoaWxkcmVuID0gKAogCQkJCTQ0ODI3MzQ2MjQ1MjhGNjAwMEE5NTQ5
MyAvKiBDb2NvYUltYWdlLmggKi8sCisJCQkJRjRFNDdCQjUyN0I1QUU1QjAwODEzQjM4IC8qIENv
Y29hSW1hZ2UubW0gKi8sCiAJCQkJQkNFMDkzNzYxNEZCMTI4QjAwMTEzOEQ5IC8qIExheWVySG9z
dGluZ0NvbnRleHQuaCAqLywKIAkJCQlCQ0UwOTM3NTE0RkIxMjhCMDAxMTM4RDkgLyogTGF5ZXJI
b3N0aW5nQ29udGV4dC5tbSAqLywKIAkJCQlBMTc5OEIzRDIyMkQ5N0EyMDAwNzY0QkQgLyogUGF5
bWVudEF1dGhvcml6YXRpb25QcmVzZW50ZXIuaCAqLywKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJL
aXQvV2ViUHJvY2Vzcy9XZWJQYWdlL2lvcy9XZWJQYWdlSU9TLm1tIGIvU291cmNlL1dlYktpdC9X
ZWJQcm9jZXNzL1dlYlBhZ2UvaW9zL1dlYlBhZ2VJT1MubW0KaW5kZXggMmExMWRjYTAyZTgyYzA3
YzBhZjQwMTk5M2U2MTBkMzVlZGRhNTU5YS4uMTBmOGMyNGYyMTU0MWIzM2RhZjg3ODhiOWRkYTM3
YTNhY2IwNzI4MiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2Uv
aW9zL1dlYlBhZ2VJT1MubW0KKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2Uv
aW9zL1dlYlBhZ2VJT1MubW0KQEAgLTI4NDUsNiArMjg0NSw3IEBAIHN0YXRpYyB2b2lkIGltYWdl
UG9zaXRpb25JbmZvcm1hdGlvbihXZWJQYWdlJiBwYWdlLCBFbGVtZW50JiBlbGVtZW50LCBjb25z
dCBJbnRlCiAgICAgYXV0byYgW3JlbmRlckltYWdlLCBpbWFnZV0gPSAqcmVuZGVyZXJBbmRJbWFn
ZTsKICAgICBpbmZvLmlzSW1hZ2UgPSB0cnVlOwogICAgIGluZm8uaW1hZ2VVUkwgPSBlbGVtZW50
LmRvY3VtZW50KCkuY29tcGxldGVVUkwocmVuZGVySW1hZ2UuY2FjaGVkSW1hZ2UoKS0+dXJsKCku
c3RyaW5nKCkpOworICAgIGluZm8uaW1hZ2VNSU1FVHlwZSA9IGltYWdlLm1pbWVUeXBlKCk7CiAg
ICAgaW5mby5pc0FuaW1hdGVkSW1hZ2UgPSBpbWFnZS5pc0FuaW1hdGVkKCk7CiAgICAgaW5mby5l
bGVtZW50Q29udGFpbnNJbWFnZU92ZXJsYXkgPSBpczxIVE1MRWxlbWVudD4oZWxlbWVudCkgJiYg
SW1hZ2VPdmVybGF5OjpoYXNPdmVybGF5KGRvd25jYXN0PEhUTUxFbGVtZW50PihlbGVtZW50KSk7
CiAKQEAgLTI5MTEsNiArMjkxMiw3IEBAIHN0YXRpYyB2b2lkIGVsZW1lbnRQb3NpdGlvbkluZm9y
bWF0aW9uKFdlYlBhZ2UmIHBhZ2UsIEVsZW1lbnQmIGVsZW1lbnQsIGNvbnN0IEluCiAgICAgICAg
ICAgICAgICAgaWYgKGF1dG8gcmVuZGVyZXJBbmRJbWFnZSA9IGltYWdlUmVuZGVyZXJBbmRJbWFn
ZShlbGVtZW50KSkgewogICAgICAgICAgICAgICAgICAgICBhdXRvJiBbcmVuZGVySW1hZ2UsIGlt
YWdlXSA9ICpyZW5kZXJlckFuZEltYWdlOwogICAgICAgICAgICAgICAgICAgICBpbmZvLmltYWdl
VVJMID0gZWxlbWVudC5kb2N1bWVudCgpLmNvbXBsZXRlVVJMKHJlbmRlckltYWdlLmNhY2hlZElt
YWdlKCktPnVybCgpLnN0cmluZygpKTsKKyAgICAgICAgICAgICAgICAgICAgaW5mby5pbWFnZU1J
TUVUeXBlID0gaW1hZ2UubWltZVR5cGUoKTsKICAgICAgICAgICAgICAgICAgICAgaW5mby5pbWFn
ZSA9IGNyZWF0ZVNoYXJlYWJsZUJpdG1hcChyZW5kZXJJbWFnZSwgeyBzY3JlZW5TaXplKCkgKiBw
YWdlLmNvcmVQYWdlKCktPmRldmljZVNjYWxlRmFjdG9yKCksIEFsbG93QW5pbWF0ZWRJbWFnZXM6
OlllcywgVXNlU25hcHNob3RGb3JUcmFuc3BhcmVudEltYWdlczo6WWVzIH0pOwogICAgICAgICAg
ICAgICAgIH0KICAgICAgICAgICAgIH0K
</data>
<flag name="commit-queue"
          id="478558"
          type_id="3"
          status="-"
          setter="ews-feeder"
    />
          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>451735</attachid>
            <date>2022-02-11 12:20:47 -0800</date>
            <delta_ts>2022-02-11 13:29:20 -0800</delta_ts>
            <desc>Try to fix Big Sur build</desc>
            <filename>bug-236511-20220211122046.patch</filename>
            <type>text/plain</type>
            <size>45214</size>
            <attacher name="Wenson Hsieh">wenson_hsieh</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjg5NjI0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL0NoYW5n
ZUxvZyBiL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCmluZGV4IGFhMTQ2ZWRkZTZjYjI2NmVjMDE0OGQz
OWIxODk3NmFiZDE1YjdlYzMuLmViYjliYTdkNGUwOTJiZTEyOGJhMTU4MjEzYmYyYTgxYmNhZjAw
YTkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XVEYvQ2hh
bmdlTG9nCkBAIC0xLDMgKzEsMTYgQEAKKzIwMjItMDItMTEgIFdlbnNvbiBIc2llaCAgPHdlbnNv
bl9oc2llaEBhcHBsZS5jb20+CisKKyAgICAgICAgW2lPU10gQWRkIGEgIkNvcHkgQ3JvcHBlZCBJ
bWFnZSIgY29udGV4dCBtZW51IGl0ZW0gd2hlbiBsb25nIHByZXNzaW5nIGltYWdlcworICAgICAg
ICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjM2NTExCisgICAgICAg
IHJkYXI6Ly84ODgxNzIxOQorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgor
CisgICAgICAgIEFkZCBhIGNvbXBpbGUtdGltZSBmbGFnIHRvIGd1YXJkIGF2YWlsYWJpbGl0eSBv
ZiB0aGUgVW5pZm9ybVR5cGVJZGVudGlmaWVycyBmcmFtZXdvcmsuIFNlZSBXZWJLaXQvQ2hhbmdl
TG9nIGZvcgorICAgICAgICBtb3JlIGluZm9ybWF0aW9uLgorCisgICAgICAgICogd3RmL1BsYXRm
b3JtSGF2ZS5oOgorCiAyMDIyLTAyLTEwICBEYXZpZCBLaWx6ZXIgIDxkZGtpbHplckBhcHBsZS5j
b20+CiAKICAgICAgICAgW1dURl0gRml4IGNsYW5nIHRpZHkgYnVncHJvbmUtbW92ZS1mb3J3YXJk
aW5nLXJlZmVyZW5jZSBzdGF0aWMgYW5hbHl6ZXIgd2FybmluZ3MgZnJvbSBXZWJDb3JlL1dlYktp
dApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0L0No
YW5nZUxvZwppbmRleCBlNzU0ZTk2ZjdiZjkyMDg2MmM4NDFiNTVhMjk2M2EwMmVmZDNjYWZmLi40
MWVkYTVhNjVmNWFiNDJiMTVmMTE4NmRhYmJkOTM1ZDA5MDc5ODZjIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViS2l0L0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZwpAQCAtMSwz
ICsxLDk2IEBACisyMDIyLTAyLTExICBXZW5zb24gSHNpZWggIDx3ZW5zb25faHNpZWhAYXBwbGUu
Y29tPgorCisgICAgICAgIFtpT1NdIEFkZCBhICJDb3B5IENyb3BwZWQgSW1hZ2UiIGNvbnRleHQg
bWVudSBpdGVtIHdoZW4gbG9uZyBwcmVzc2luZyBpbWFnZXMKKyAgICAgICAgaHR0cHM6Ly9idWdz
LndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIzNjUxMQorICAgICAgICByZGFyOi8vODg4MTcy
MTkKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBBZGQg
c3VwcG9ydCBmb3IgYSBuZXcgY29udGV4dCBtZW51IGl0ZW0gb24gaU9TIHRoYXQgYWxsb3dzIHRo
ZSB1c2VyIHRvIGNvcHkgYSBjcm9wcGVkIHZlcnNpb24gb2YgdGhlIHNvdXJjZQorICAgICAgICBp
bWFnZSwgYWZ0ZXIgaW52b2tpbmcgbWFya3VwIFVJLiBTZWUgYmVsb3cgZm9yIG1vcmUgZGV0YWls
cy4KKworICAgICAgICAqIENvbmZpZ3VyYXRpb25zL1dlYktpdC54Y2NvbmZpZzoKKworICAgICAg
ICBMaW5rIGFnYWluc3QgVW5pZm9ybVR5cGVJZGVudGlmaWVycyBvbiBtYWNPUyAxMSssIHJhdGhl
ciB0aGFuIG1hY09TIDEyKy4KKworICAgICAgICAqIFBsYXRmb3JtL2NvY29hL0NvY29hSW1hZ2Uu
aDoKKyAgICAgICAgKiBQbGF0Zm9ybS9jb2NvYS9Db2NvYUltYWdlLm1tOgorICAgICAgICAoV2Vi
S2l0Ojp0cmFuc2NvZGUpOgorICAgICAgICAoV2ViS2l0Ojp0cmFuc2NvZGVXaXRoUHJlZmVycmVk
TUlNRVR5cGUpOgorCisgICAgICAgIE1vdmUgYSBoZWxwZXIgZnVuY3Rpb24gdGhhdCB0cmFuc2Nv
ZGVzIGFuIGltYWdlIHRvIGEgZ2l2ZW4gVVRJIGludG8gQ29jb2FJbWFnZS5oLCBhcyBhIHN0YW5k
YWxvbmUgZnVuY3Rpb24uCisgICAgICAgIEFsc28sIGFkZCBhIHNlcGFyYXRlIGhlbHBlciBmdW5j
dGlvbiBoZXJlIHRoYXQgdHJhbnNjb2RlcyBhbiBpbWFnZSB0byBhIGdpdmVuIE1JTUUgdHlwZSAo
d2l0aCBhIGZhbGxiYWNrIFVUSSwgaW4KKyAgICAgICAgY2FzZSB0aGUgTUlNRSB0eXBlIGNhbm5v
dCBiZSBtYXBwZWQgdG8gYSBzdWl0YWJsZSBVVEkgdGhhdCBjb25mb3JtcyB0byBhbnkgaW1hZ2Ug
VVRJKS4gVGhlIG5ldyBjYWxsIHNpdGVzIG9mCisgICAgICAgIHRoaXMgZnVuY3Rpb24gYXJlIGlu
IFdLQ29udGVudFZpZXdJbnRlcmFjdGlvbi5tbS4KKworICAgICAgICAqIFBsYXRmb3JtL2NvY29h
L1RleHRSZWNvZ25pdGlvblV0aWxpdGllcy5tbToKKyAgICAgICAgKiBTaGFyZWQvaW9zL0ludGVy
YWN0aW9uSW5mb3JtYXRpb25BdFBvc2l0aW9uLmg6CisgICAgICAgICogU2hhcmVkL2lvcy9JbnRl
cmFjdGlvbkluZm9ybWF0aW9uQXRQb3NpdGlvbi5tbToKKyAgICAgICAgKFdlYktpdDo6SW50ZXJh
Y3Rpb25JbmZvcm1hdGlvbkF0UG9zaXRpb246OmVuY29kZSBjb25zdCk6CisgICAgICAgIChXZWJL
aXQ6OkludGVyYWN0aW9uSW5mb3JtYXRpb25BdFBvc2l0aW9uOjpkZWNvZGUpOgorCisgICAgICAg
IEFkZCBhIG5ldyBgaW1hZ2VNSU1FVHlwZWAgbWVtYmVyIHRvIHJlcHJlc2VudCB0aGUgTUlNRSB0
eXBlIG9mIHRoZSBzb3VyY2UgaW1hZ2UgdXNlZCB0byBnZW5lcmF0ZSB0aGUgYml0bWFwCisgICAg
ICAgIGltYWdlIGRhdGEgaW4gYGltYWdlYC4KKworICAgICAgICAqIFNvdXJjZXNDb2NvYS50eHQ6
IEFkZCBDb2NvYUltYWdlLm1tLgorICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvQ29jb2EvX1dLQWN0
aXZhdGVkRWxlbWVudEluZm8ubW06CisgICAgICAgICgtW19XS0FjdGl2YXRlZEVsZW1lbnRJbmZv
IF9pbml0V2l0aEludGVyYWN0aW9uSW5mb3JtYXRpb25BdFBvc2l0aW9uOnVzZXJJbmZvOl0pOgor
ICAgICAgICAoLVtfV0tBY3RpdmF0ZWRFbGVtZW50SW5mbyBfaW5pdFdpdGhUeXBlOlVSTDppbWFn
ZVVSTDpsb2NhdGlvbjp0aXRsZTpJRDpyZWN0OmltYWdlOmltYWdlTUlNRVR5cGU6XSk6CisgICAg
ICAgICgtW19XS0FjdGl2YXRlZEVsZW1lbnRJbmZvIF9pbml0V2l0aFR5cGU6VVJMOmltYWdlVVJM
OmxvY2F0aW9uOnRpdGxlOklEOnJlY3Q6aW1hZ2U6aW1hZ2VNSU1FVHlwZTp1c2VySW5mbzpdKToK
KyAgICAgICAgKC1bX1dLQWN0aXZhdGVkRWxlbWVudEluZm8gaW1hZ2VNSU1FVHlwZV0pOgorCisg
ICAgICAgIEFkZCBwbHVtYmluZyBmb3IgYGltYWdlTUlNRVR5cGVgIGZyb20gSW50ZXJhY3Rpb25J
bmZvcm1hdGlvbkF0UG9zaXRpb24gKHBvc2l0aW9uIGluZm9ybWF0aW9uKSBpbnRvCisgICAgICAg
IF9XS0FjdGl2YXRlZEVsZW1lbnRJbmZvLCBhcyBhbiBpbnRlcm5hbCBtZXRob2QuIFdlIHVzZSB0
aGlzIGluZm9ybWF0aW9uIGJlbG93LCB0byB0cmFuc2NvZGUgdGhlIHJlc3VsdGluZyBpbWFnZQor
ICAgICAgICBiYWNrIHRvIHRoZSBzb3VyY2UgaW1hZ2UgZm9ybWF0IGFmdGVyIGFwcGx5aW5nIG1h
cmt1cCwgd2hlbiBpbnZva2luZyB0aGUgbmV3ICJDb3B5IENyb3BwZWQgSW1hZ2UiIGl0ZW0uCisK
KyAgICAgICAgKC1bX1dLQWN0aXZhdGVkRWxlbWVudEluZm8gX2luaXRXaXRoVHlwZTpVUkw6aW1h
Z2VVUkw6bG9jYXRpb246dGl0bGU6SUQ6cmVjdDppbWFnZTpdKTogRGVsZXRlZC4KKyAgICAgICAg
KC1bX1dLQWN0aXZhdGVkRWxlbWVudEluZm8gX2luaXRXaXRoVHlwZTpVUkw6aW1hZ2VVUkw6bG9j
YXRpb246dGl0bGU6SUQ6cmVjdDppbWFnZTp1c2VySW5mbzpdKTogRGVsZXRlZC4KKyAgICAgICAg
KiBVSVByb2Nlc3MvQVBJL0NvY29hL19XS0FjdGl2YXRlZEVsZW1lbnRJbmZvSW50ZXJuYWwuaDoK
KyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL0NvY29hL19XS0VsZW1lbnRBY3Rpb24uaDoKKyAgICAg
ICAgKiBVSVByb2Nlc3MvQVBJL0NvY29hL19XS0VsZW1lbnRBY3Rpb24ubW06CisgICAgICAgICgr
W19XS0VsZW1lbnRBY3Rpb24gX2VsZW1lbnRBY3Rpb25XaXRoVHlwZTpjdXN0b21UaXRsZTphc3Np
c3RhbnQ6XSk6CisgICAgICAgICgrW19XS0VsZW1lbnRBY3Rpb24gaW1hZ2VGb3JFbGVtZW50QWN0
aW9uVHlwZTpdKToKKworICAgICAgICBBZGQgc3VwcG9ydCBmb3IgdGhlIG5ldyAiQ29weSBDcm9w
cGVkIEltYWdlIiBpdGVtIHRhZyAoYF9XS0VsZW1lbnRBY3Rpb25UeXBlQ29weUNyb3BwZWRJbWFn
ZWApLgorCisgICAgICAgIChlbGVtZW50QWN0aW9uVHlwZVRvVUlBY3Rpb25JZGVudGlmaWVyKToK
KyAgICAgICAgKHVpQWN0aW9uSWRlbnRpZmllclRvRWxlbWVudEFjdGlvblR5cGUpOgorICAgICAg
ICAqIFVJUHJvY2Vzcy9pb3MvV0tBY3Rpb25TaGVldEFzc2lzdGFudC5oOgorICAgICAgICAqIFVJ
UHJvY2Vzcy9pb3MvV0tBY3Rpb25TaGVldEFzc2lzdGFudC5tbToKKyAgICAgICAgKC1bV0tBY3Rp
b25TaGVldEFzc2lzdGFudCBzaG93SW1hZ2VTaGVldF0pOgorICAgICAgICAoLVtXS0FjdGlvblNo
ZWV0QXNzaXN0YW50IGRlZmF1bHRBY3Rpb25zRm9yTGlua1NoZWV0Ol0pOgorICAgICAgICAoLVtX
S0FjdGlvblNoZWV0QXNzaXN0YW50IGRlZmF1bHRBY3Rpb25zRm9ySW1hZ2VTaGVldDpdKToKKyAg
ICAgICAgKC1bV0tBY3Rpb25TaGVldEFzc2lzdGFudCBzaG93TGlua1NoZWV0XSk6CisgICAgICAg
ICgtW1dLQWN0aW9uU2hlZXRBc3Npc3RhbnQgaGFuZGxlRWxlbWVudEFjdGlvbldpdGhUeXBlOmVs
ZW1lbnQ6bmVlZHNJbnRlcmFjdGlvbjpdKToKKyAgICAgICAgKiBVSVByb2Nlc3MvaW9zL1dLQ29u
dGVudFZpZXdJbnRlcmFjdGlvbi5tbToKKyAgICAgICAgKC1bV0tDb250ZW50VmlldyBfc2hvd0F0
dGFjaG1lbnRTaGVldF0pOgorICAgICAgICAoLVtXS0NvbnRlbnRWaWV3IHBlcmZvcm1JbWFnZUFu
YWx5c2lzTWFya3VwOl0pOgorCisgICAgICAgIFVzZSB0aGUgbmV3IGB0cmFuc2NvZGVXaXRoUHJl
ZmVycmVkTUlNRVR5cGVgIGhlbHBlciBtZXRob2QgaGVyZS4KKworICAgICAgICAoLVtXS0NvbnRl
bnRWaWV3IGRvQWZ0ZXJDb21wdXRpbmdJbWFnZUFuYWx5c2lzUmVzdWx0c0Zvck1hcmt1cDpdKToK
KworICAgICAgICBSZW1vdmUgdGhlIFRJRkYgdHJhbnNjb2Rpbmcgd29ya2Fyb3VuZCBmcm9tIHRo
aXMgbWV0aG9kIChzZWUgYXNzb2NpYXRlZCBjaGFuZ2VzIGluIFJhZGFyIGZvciBtb3JlIGluZm9y
bWF0aW9uKS4KKworICAgICAgICAoLVtXS0NvbnRlbnRWaWV3IGFjdGlvblNoZWV0QXNzaXN0YW50
OmNvcHlDcm9wcGVkSW1hZ2U6c291cmNlTUlNRVR5cGU6XSk6CisKKyAgICAgICAgSGFuZGxlIHRo
ZSBuZXcgYWN0aW9uIGJ5IGNhbGxpbmcgaW50byBWaXNpb25LaXQgdG8gYWRqdXN0IHRoZSBzb3Vy
Y2UgaW1hZ2UgYXMgbmVlZGVkLCBhbmQgdGhlbiB0cmFuc2NvZGUgdGhlCisgICAgICAgIHJlc3Vs
dGluZyBDR0ltYWdlUmVmIGJhY2sgdG8gYSBmb3JtYXQgdGhhdCBtYXRjaGVzIHRoZSBzb3VyY2Ug
aW1hZ2U7IGZpbmFsbHksIHdyaXRlIHRoaXMgdHJhbnNjb2RlZAorICAgICAgICByZXByZXNlbnRh
dGlvbiB0byB0aGUgZ2VuZXJhbCBwYXN0ZWJvYXJkLgorCisgICAgICAgICgtW1dLQ29udGVudFZp
ZXcgX2RhdGFGb3JQcmV2aWV3SXRlbUNvbnRyb2xsZXI6YXRQb3NpdGlvbjp0eXBlOl0pOgorICAg
ICAgICAoLVtXS0NvbnRlbnRWaWV3IF9wcmVzZW50ZWRWaWV3Q29udHJvbGxlckZvclByZXZpZXdJ
dGVtQ29udHJvbGxlcjpdKToKKworICAgICAgICBQYXNzIGBpbWFnZU1JTUVUeXBlYCBmcm9tIHBv
c2l0aW9uIGluZm9ybWF0aW9uIGludG8gdGhlIGFjdGl2YXRlZCBlbGVtZW50IGluZm8gaW5pdGlh
bGl6ZXIgaW4gc2V2ZXJhbCBwbGFjZXMuCisKKyAgICAgICAgKFdlYktpdDo6dHJhbnNjb2RlKTog
RGVsZXRlZC4KKyAgICAgICAgKiBXZWJLaXQueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvajoKKyAg
ICAgICAgKiBXZWJQcm9jZXNzL1dlYlBhZ2UvaW9zL1dlYlBhZ2VJT1MubW06CisgICAgICAgIChX
ZWJLaXQ6OmltYWdlUG9zaXRpb25JbmZvcm1hdGlvbik6CisgICAgICAgIChXZWJLaXQ6OmVsZW1l
bnRQb3NpdGlvbkluZm9ybWF0aW9uKToKKworICAgICAgICBQb3B1bGF0ZSBgaW1hZ2VNSU1FVHlw
ZWAgaW4gcG9zaXRpb24gaW5mb3JtYXRpb24uCisKIDIwMjItMDItMTEgIFdlbnNvbiBIc2llaCAg
PHdlbnNvbl9oc2llaEBhcHBsZS5jb20+CiAKICAgICAgICAgVW5yZXZpZXdlZCwgbm9uLXVuaWZp
ZWQgYnVpbGQgZml4ZXMgaW4gV0tQYXltZW50QXV0aG9yaXphdGlvbkRlbGVnYXRlCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV1RGL3d0Zi9QbGF0Zm9ybUhhdmUuaCBiL1NvdXJjZS9XVEYvd3RmL1BsYXRm
b3JtSGF2ZS5oCmluZGV4IDRkY2E1YTI2MDdlMmE3MGQ5Njg4OWFlYTBhZmRlYWM3OTYwMmIyNjMu
LjYxOWRkNTA2ODA1NDljNzE1MmNkNzU2YzE2YjdhZDgyOWQyYWIyYjEgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XVEYvd3RmL1BsYXRmb3JtSGF2ZS5oCisrKyBiL1NvdXJjZS9XVEYvd3RmL1BsYXRmb3Jt
SGF2ZS5oCkBAIC0xMTMxLDYgKzExMzEsMTAgQEAKICNkZWZpbmUgSEFWRV9VTklGSUVEX1NQRUVD
SFNZTlRIRVNJU19GSVhfRk9SXzgxNDY1MTY0IDEKICNlbmRpZgogCisjaWYgUExBVEZPUk0oSU9T
X0ZBTUlMWSkgfHwgKFBMQVRGT1JNKE1BQykgJiYgX19NQUNfT1NfWF9WRVJTSU9OX01JTl9SRVFV
SVJFRCA+PSAxMTAwMDApCisjZGVmaW5lIEhBVkVfVU5JRk9STV9UWVBFX0lERU5USUZJRVJTX0ZS
QU1FV09SSyAxCisjZW5kaWYKKwogI2lmIFBMQVRGT1JNKENPQ09BKQogI2RlZmluZSBIQVZFX0FW
X0RFTEVHQVRJTkdfUExBWUJBQ0tfQ09PUkRJTkFUT1IgMQogI2VuZGlmCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViS2l0L0NvbmZpZ3VyYXRpb25zL1dlYktpdC54Y2NvbmZpZyBiL1NvdXJjZS9XZWJL
aXQvQ29uZmlndXJhdGlvbnMvV2ViS2l0LnhjY29uZmlnCmluZGV4IDY1OGJlM2ExYWRmZGEwNzQw
NWRkMDM4ZjcxZjg2NTIzNzcxZmUwMTYuLmUyNGQxOWQ4MjNkYWYyMDBjMjgyNGJhYTg0NDEzMzFh
MDk1YjYxMTUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvQ29uZmlndXJhdGlvbnMvV2ViS2l0
LnhjY29uZmlnCisrKyBiL1NvdXJjZS9XZWJLaXQvQ29uZmlndXJhdGlvbnMvV2ViS2l0LnhjY29u
ZmlnCkBAIC0xMjMsOCArMTIzLDggQEAgV0tfVU5JRk9STV9UWVBFX0lERU5USUZJRVJTX0xERkxB
R1NfaXBob25lb3MgPSAkKFdLX1VOSUZPUk1fVFlQRV9JREVOVElGSUVSU19MREYKIFdLX1VOSUZP
Uk1fVFlQRV9JREVOVElGSUVSU19MREZMQUdTX2lwaG9uZXNpbXVsYXRvciA9ICQoV0tfVU5JRk9S
TV9UWVBFX0lERU5USUZJRVJTX0xERkxBR1MkKFdLX0lPU18xNCkpOwogV0tfVU5JRk9STV9UWVBF
X0lERU5USUZJRVJTX0xERkxBR1NfbWFjY2F0YWx5c3QgPSAkKFdLX1VOSUZPUk1fVFlQRV9JREVO
VElGSUVSU19MREZMQUdTJChXS19JT1NfMTQpKTsKIFdLX1VOSUZPUk1fVFlQRV9JREVOVElGSUVS
U19MREZMQUdTX0lPU19TSU5DRV8xNCA9IC1mcmFtZXdvcmsgVW5pZm9ybVR5cGVJZGVudGlmaWVy
czsKLVdLX1VOSUZPUk1fVFlQRV9JREVOVElGSUVSU19MREZMQUdTX21hY29zeCA9ICQoV0tfVU5J
Rk9STV9UWVBFX0lERU5USUZJRVJTX0xERkxBR1MkKFdLX01BQ09TXzEyMDApKTsKLVdLX1VOSUZP
Uk1fVFlQRV9JREVOVElGSUVSU19MREZMQUdTX01BQ09TX1NJTkNFXzEyMDAgPSAtZnJhbWV3b3Jr
IFVuaWZvcm1UeXBlSWRlbnRpZmllcnM7CitXS19VTklGT1JNX1RZUEVfSURFTlRJRklFUlNfTERG
TEFHU19tYWNvc3ggPSAkKFdLX1VOSUZPUk1fVFlQRV9JREVOVElGSUVSU19MREZMQUdTJChXS19N
QUNPU18xMTAwKSk7CitXS19VTklGT1JNX1RZUEVfSURFTlRJRklFUlNfTERGTEFHU19NQUNPU19T
SU5DRV8xMTAwID0gLWZyYW1ld29yayBVbmlmb3JtVHlwZUlkZW50aWZpZXJzOwogV0tfVU5JRk9S
TV9UWVBFX0lERU5USUZJRVJTX0xERkxBR1Nfd2F0Y2hvcyA9IC1mcmFtZXdvcmsgVW5pZm9ybVR5
cGVJZGVudGlmaWVyczsKIFdLX1VOSUZPUk1fVFlQRV9JREVOVElGSUVSU19MREZMQUdTX3dhdGNo
c2ltdWxhdG9yID0gLWZyYW1ld29yayBVbmlmb3JtVHlwZUlkZW50aWZpZXJzOwogV0tfVU5JRk9S
TV9UWVBFX0lERU5USUZJRVJTX0xERkxBR1NfYXBwbGV0dm9zID0gLWZyYW1ld29yayBVbmlmb3Jt
VHlwZUlkZW50aWZpZXJzOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9QbGF0Zm9ybS9jb2Nv
YS9Db2NvYUltYWdlLmggYi9Tb3VyY2UvV2ViS2l0L1BsYXRmb3JtL2NvY29hL0NvY29hSW1hZ2Uu
aAppbmRleCBjNDFkN2Y0ODlkODA0MDkwNGMxNTJhMTgyNjM4ZDA3M2I4YTEzYzQxLi45MWMwODhi
ZTdlMzdkMzRlMzk1YTljNGJlYWMyODY3ZjQ3ZTdkMDJjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
S2l0L1BsYXRmb3JtL2NvY29hL0NvY29hSW1hZ2UuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1BsYXRm
b3JtL2NvY29hL0NvY29hSW1hZ2UuaApAQCAtMjMsNyArMjMsOSBAQAogKiBUSEUgUE9TU0lCSUxJ
VFkgT0YgU1VDSCBEQU1BR0UuCiAqLwogCi0jaW5jbHVkZSA8d3RmL0NvbXBpbGVyLmg+CisjaW1w
b3J0IDxDb3JlR3JhcGhpY3MvQ29yZUdyYXBoaWNzLmg+CisjaW1wb3J0IDx3dGYvQ29tcGlsZXIu
aD4KKyNpbXBvcnQgPHd0Zi9SZXRhaW5QdHIuaD4KIAogI2lmIFVTRShBUFBLSVQpCiBPQkpDX0NM
QVNTIE5TSW1hZ2U7CkBAIC0zMiwzICszNCwxMiBAQCB1c2luZyBDb2NvYUltYWdlID0gTlNJbWFn
ZTsKIE9CSkNfQ0xBU1MgVUlJbWFnZTsKIHVzaW5nIENvY29hSW1hZ2UgPSBVSUltYWdlOwogI2Vu
ZGlmCisKK09CSkNfQ0xBU1MgTlNEYXRhOworCituYW1lc3BhY2UgV2ViS2l0IHsKKworUmV0YWlu
UHRyPE5TRGF0YT4gdHJhbnNjb2RlKENHSW1hZ2VSZWYsIENGU3RyaW5nUmVmIHR5cGVJZGVudGlm
aWVyKTsKK3N0ZDo6cGFpcjxSZXRhaW5QdHI8TlNEYXRhPiwgUmV0YWluUHRyPENGU3RyaW5nUmVm
Pj4gdHJhbnNjb2RlV2l0aFByZWZlcnJlZE1JTUVUeXBlKENHSW1hZ2VSZWYsIENGU3RyaW5nUmVm
IHByZWZlcnJlZE1JTUVUeXBlLCBDRlN0cmluZ1JlZiBmYWxsYmFja1R5cGVJZGVudGlmaWVyKTsK
KworfSAvLyBuYW1lc3BhY2UgV2ViS2l0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1BsYXRm
b3JtL2NvY29hL0NvY29hSW1hZ2UubW0gYi9Tb3VyY2UvV2ViS2l0L1BsYXRmb3JtL2NvY29hL0Nv
Y29hSW1hZ2UubW0KbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uZWQyM2I5YWUwMjQ2MzJiOGIwNjI1Njc2OTNlMTExMGQ0
YmVlNzlmMQotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJLaXQvUGxhdGZvcm0vY29jb2Ev
Q29jb2FJbWFnZS5tbQpAQCAtMCwwICsxLDY4IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDIy
IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBh
bmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1v
ZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29u
ZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29k
ZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlz
dCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRp
c3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHly
aWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxv
d2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIg
bWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNP
RlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBB
UyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJ
TkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVS
Q0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJF
IERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJV
VE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwg
U1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJ
TkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09P
RFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVT
UworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBM
SUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBU
T1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFO
WSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9G
CisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2ltcG9ydCAiY29u
ZmlnLmgiCisjaW1wb3J0ICJDb2NvYUltYWdlLmgiCisKKyNpbXBvcnQgPFdlYkNvcmUvVVRJUmVn
aXN0cnkuaD4KKworI2lmIEhBVkUoVU5JRk9STV9UWVBFX0lERU5USUZJRVJTX0ZSQU1FV09SSykK
KyNpbXBvcnQgPFVuaWZvcm1UeXBlSWRlbnRpZmllcnMvVW5pZm9ybVR5cGVJZGVudGlmaWVycy5o
PgorI2Vsc2UKKyNpbXBvcnQgPENvcmVTZXJ2aWNlcy9Db3JlU2VydmljZXMuaD4KKyNlbmRpZgor
CituYW1lc3BhY2UgV2ViS2l0IHsKKworUmV0YWluUHRyPE5TRGF0YT4gdHJhbnNjb2RlKENHSW1h
Z2VSZWYgaW1hZ2UsIENGU3RyaW5nUmVmIHR5cGVJZGVudGlmaWVyKQoreworICAgIGlmICghaW1h
Z2UpCisgICAgICAgIHJldHVybiBuaWw7CisKKyAgICBhdXRvIGRhdGEgPSBhZG9wdE5TKFtbTlNN
dXRhYmxlRGF0YSBhbGxvY10gaW5pdF0pOworICAgIGF1dG8gZGVzdGluYXRpb24gPSBhZG9wdENG
KENHSW1hZ2VEZXN0aW5hdGlvbkNyZWF0ZVdpdGhEYXRhKChfX2JyaWRnZSBDRk11dGFibGVEYXRh
UmVmKWRhdGEuZ2V0KCksIHR5cGVJZGVudGlmaWVyLCAxLCBuaWwpKTsKKyAgICBDR0ltYWdlRGVz
dGluYXRpb25BZGRJbWFnZShkZXN0aW5hdGlvbi5nZXQoKSwgaW1hZ2UsIG5pbCk7CisgICAgaWYg
KCFDR0ltYWdlRGVzdGluYXRpb25GaW5hbGl6ZShkZXN0aW5hdGlvbi5nZXQoKSkpCisgICAgICAg
IHJldHVybiBuaWw7CisKKyAgICByZXR1cm4gZGF0YTsKK30KKworc3RkOjpwYWlyPFJldGFpblB0
cjxOU0RhdGE+LCBSZXRhaW5QdHI8Q0ZTdHJpbmdSZWY+PiB0cmFuc2NvZGVXaXRoUHJlZmVycmVk
TUlNRVR5cGUoQ0dJbWFnZVJlZiBpbWFnZSwgQ0ZTdHJpbmdSZWYgcHJlZmVycmVkTUlNRVR5cGUs
IENGU3RyaW5nUmVmIGZhbGxiYWNrVHlwZUlkZW50aWZpZXIpCit7CisgICAgYXV0byB0YXJnZXRU
eXBlID0gUmV0YWluUHRyIHsgZmFsbGJhY2tUeXBlSWRlbnRpZmllciB9OworICAgIGlmIChDRlN0
cmluZ0dldExlbmd0aChwcmVmZXJyZWRNSU1FVHlwZSkpIHsKKyNpZiBIQVZFKFVOSUZPUk1fVFlQ
RV9JREVOVElGSUVSU19GUkFNRVdPUkspCisgICAgICAgIGF1dG8gcHJlZmVycmVkVHlwZUlkZW50
aWZpZXIgPSBSZXRhaW5QdHIgeyAoX19icmlkZ2UgQ0ZTdHJpbmdSZWYpW1VUVHlwZSB0eXBlV2l0
aE1JTUVUeXBlOihfX2JyaWRnZSBOU1N0cmluZyAqKXByZWZlcnJlZE1JTUVUeXBlIGNvbmZvcm1p
bmdUb1R5cGU6VVRUeXBlSW1hZ2VdLmlkZW50aWZpZXIgfTsKKyNlbHNlCisgICAgICAgIGF1dG8g
cHJlZmVycmVkVHlwZUlkZW50aWZpZXIgPSBhZG9wdENGKFVUVHlwZUNyZWF0ZVByZWZlcnJlZElk
ZW50aWZpZXJGb3JUYWcoa1VUVGFnQ2xhc3NNSU1FVHlwZSwgcHJlZmVycmVkTUlNRVR5cGUsIGtV
VFR5cGVJbWFnZSkpOworI2VuZGlmCisgICAgICAgIGlmIChXZWJDb3JlOjppc1N1cHBvcnRlZElt
YWdlVHlwZShwcmVmZXJyZWRUeXBlSWRlbnRpZmllci5nZXQoKSkpCisgICAgICAgICAgICB0YXJn
ZXRUeXBlID0gV1RGTW92ZShwcmVmZXJyZWRUeXBlSWRlbnRpZmllcik7CisgICAgfQorICAgIHJl
dHVybiB7IHRyYW5zY29kZShpbWFnZSwgdGFyZ2V0VHlwZS5nZXQoKSksIHRhcmdldFR5cGUgfTsK
K30KKworfSAvLyBuYW1lc3BhY2UgV2ViS2l0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1Bs
YXRmb3JtL2NvY29hL1RleHRSZWNvZ25pdGlvblV0aWxpdGllcy5tbSBiL1NvdXJjZS9XZWJLaXQv
UGxhdGZvcm0vY29jb2EvVGV4dFJlY29nbml0aW9uVXRpbGl0aWVzLm1tCmluZGV4IDcxYjJlMjYy
MzA2NjU5NDlkODVlNDViMmNiZmNiZTAyZWY2YzVhMWEuLjVjNjVkZWY3NWNlYzE1MzBiYWJiY2U2
YmFlNmQyMjBiNTRmNzc4ZDcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvUGxhdGZvcm0vY29j
b2EvVGV4dFJlY29nbml0aW9uVXRpbGl0aWVzLm1tCisrKyBiL1NvdXJjZS9XZWJLaXQvUGxhdGZv
cm0vY29jb2EvVGV4dFJlY29nbml0aW9uVXRpbGl0aWVzLm1tCkBAIC0yOCw2ICsyOCw3IEBACiAK
ICNpZiBFTkFCTEUoSU1BR0VfQU5BTFlTSVMpCiAKKyNpbXBvcnQgIkNvY29hSW1hZ2UuaCIKICNp
bXBvcnQgIkxvZ2dpbmcuaCIKICNpbXBvcnQgPFdlYkNvcmUvVGV4dFJlY29nbml0aW9uUmVzdWx0
Lmg+CiAjaW1wb3J0IDxwYWwvc3BpL2NvY29hL0ZlYXR1cmVGbGFnc1NQSS5oPgpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYktpdC9TaGFyZWQvaW9zL0ludGVyYWN0aW9uSW5mb3JtYXRpb25BdFBvc2l0
aW9uLmggYi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9pb3MvSW50ZXJhY3Rpb25JbmZvcm1hdGlvbkF0
UG9zaXRpb24uaAppbmRleCAyODFkNzY1NGY3MDdlODRhN2E4ZWJiZmQ1MjMxYTBlZmNhZmYxNTNh
Li4xYzY1ZDhmNTk1NTY0NDNjODkxYTlkZTBjNDFjNTc5YmE5Y2RkOGNiIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViS2l0L1NoYXJlZC9pb3MvSW50ZXJhY3Rpb25JbmZvcm1hdGlvbkF0UG9zaXRpb24u
aAorKysgYi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9pb3MvSW50ZXJhY3Rpb25JbmZvcm1hdGlvbkF0
UG9zaXRpb24uaApAQCAtODgsNiArODgsNyBAQCBzdHJ1Y3QgSW50ZXJhY3Rpb25JbmZvcm1hdGlv
bkF0UG9zaXRpb24gewogICAgIFdlYkNvcmU6OkZsb2F0UG9pbnQgYWRqdXN0ZWRQb2ludEZvck5v
ZGVSZXNwb25kaW5nVG9DbGlja0V2ZW50czsKICAgICBVUkwgdXJsOwogICAgIFVSTCBpbWFnZVVS
TDsKKyAgICBTdHJpbmcgaW1hZ2VNSU1FVHlwZTsKICAgICBTdHJpbmcgdGl0bGU7CiAgICAgU3Ry
aW5nIGlkQXR0cmlidXRlOwogICAgIFdlYkNvcmU6OkludFJlY3QgYm91bmRzOwpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYktpdC9TaGFyZWQvaW9zL0ludGVyYWN0aW9uSW5mb3JtYXRpb25BdFBvc2l0
aW9uLm1tIGIvU291cmNlL1dlYktpdC9TaGFyZWQvaW9zL0ludGVyYWN0aW9uSW5mb3JtYXRpb25B
dFBvc2l0aW9uLm1tCmluZGV4IDY1NTRjYTcwOGNkYzFmYjQxZjA4YmE0ZTA4NDAyNDdmNDUzYjcw
ZWYuLjc4OThjYzk2ZmFlNzMzODdmZGViMjZjNzYxMWFhZTNmOGUzNWU4NWEgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJLaXQvU2hhcmVkL2lvcy9JbnRlcmFjdGlvbkluZm9ybWF0aW9uQXRQb3NpdGlv
bi5tbQorKysgYi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9pb3MvSW50ZXJhY3Rpb25JbmZvcm1hdGlv
bkF0UG9zaXRpb24ubW0KQEAgLTU2LDYgKzU2LDcgQEAgdm9pZCBJbnRlcmFjdGlvbkluZm9ybWF0
aW9uQXRQb3NpdGlvbjo6ZW5jb2RlKElQQzo6RW5jb2RlciYgZW5jb2RlcikgY29uc3QKICAgICBl
bmNvZGVyIDw8IGFkanVzdGVkUG9pbnRGb3JOb2RlUmVzcG9uZGluZ1RvQ2xpY2tFdmVudHM7CiAg
ICAgZW5jb2RlciA8PCB1cmw7CiAgICAgZW5jb2RlciA8PCBpbWFnZVVSTDsKKyAgICBlbmNvZGVy
IDw8IGltYWdlTUlNRVR5cGU7CiAgICAgZW5jb2RlciA8PCB0aXRsZTsKICAgICBlbmNvZGVyIDw8
IGlkQXR0cmlidXRlOwogICAgIGVuY29kZXIgPDwgYm91bmRzOwpAQCAtMTQ5LDYgKzE1MCw5IEBA
IGJvb2wgSW50ZXJhY3Rpb25JbmZvcm1hdGlvbkF0UG9zaXRpb246OmRlY29kZShJUEM6OkRlY29k
ZXImIGRlY29kZXIsIEludGVyYWN0aW9uCiAgICAgaWYgKCFkZWNvZGVyLmRlY29kZShyZXN1bHQu
aW1hZ2VVUkwpKQogICAgICAgICByZXR1cm4gZmFsc2U7CiAKKyAgICBpZiAoIWRlY29kZXIuZGVj
b2RlKHJlc3VsdC5pbWFnZU1JTUVUeXBlKSkKKyAgICAgICAgcmV0dXJuIGZhbHNlOworCiAgICAg
aWYgKCFkZWNvZGVyLmRlY29kZShyZXN1bHQudGl0bGUpKQogICAgICAgICByZXR1cm4gZmFsc2U7
CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvU291cmNlc0NvY29hLnR4dCBiL1NvdXJjZS9X
ZWJLaXQvU291cmNlc0NvY29hLnR4dAppbmRleCA5ODk3NGZhMDhiNTlkNDc3YzIzMWZiNWQzZmEy
NzFhMDliMmQ1ZDAxLi44NTJiNTk0MWUzNjkyMDJlNTQwYzA4YjA0ZTAyMGNhNjhlZDllNDA5IDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1NvdXJjZXNDb2NvYS50eHQKKysrIGIvU291cmNlL1dl
YktpdC9Tb3VyY2VzQ29jb2EudHh0CkBAIC04Myw2ICs4Myw3IEBAIFBsYXRmb3JtL2NmL01vZHVs
ZUNGLmNwcAogUGxhdGZvcm0vY2xhc3NpZmllci9jb2NvYS9SZXNvdXJjZUxvYWRTdGF0aXN0aWNz
Q2xhc3NpZmllckNvY29hLmNwcAogUGxhdGZvcm0vY2xhc3NpZmllci9SZXNvdXJjZUxvYWRTdGF0
aXN0aWNzQ2xhc3NpZmllci5jcHAKIAorUGxhdGZvcm0vY29jb2EvQ29jb2FJbWFnZS5tbQogUGxh
dGZvcm0vY29jb2EvTGF5ZXJIb3N0aW5nQ29udGV4dC5tbQogUGxhdGZvcm0vY29jb2EvUGF5bWVu
dEF1dGhvcml6YXRpb25QcmVzZW50ZXIubW0KIFBsYXRmb3JtL2NvY29hL1BheW1lbnRBdXRob3Jp
emF0aW9uVmlld0NvbnRyb2xsZXIubW0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9j
ZXNzL0FQSS9Db2NvYS9fV0tBY3RpdmF0ZWRFbGVtZW50SW5mby5tbSBiL1NvdXJjZS9XZWJLaXQv
VUlQcm9jZXNzL0FQSS9Db2NvYS9fV0tBY3RpdmF0ZWRFbGVtZW50SW5mby5tbQppbmRleCA2ZmU1
OTNjNGI0NjRjZTliNjA2NTA3ZTYyN2M5N2UwMDI1MzkxYjM1Li45NzFlMGVmYWI5MGY1MWRlMWMw
MmJjMTA1NzJlODRkZTdjMzM2Y2QyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vz
cy9BUEkvQ29jb2EvX1dLQWN0aXZhdGVkRWxlbWVudEluZm8ubW0KKysrIGIvU291cmNlL1dlYktp
dC9VSVByb2Nlc3MvQVBJL0NvY29hL19XS0FjdGl2YXRlZEVsZW1lbnRJbmZvLm1tCkBAIC00Myw2
ICs0Myw3IEBAIEBpbXBsZW1lbnRhdGlvbiBfV0tBY3RpdmF0ZWRFbGVtZW50SW5mbyAgewogICAg
IFdlYkNvcmU6OkludFBvaW50IF9pbnRlcmFjdGlvbkxvY2F0aW9uOwogICAgIFJldGFpblB0cjxO
U1N0cmluZz4gX0lEOwogICAgIFJlZlB0cjxXZWJLaXQ6OlNoYXJlYWJsZUJpdG1hcD4gX2ltYWdl
OworICAgIFJldGFpblB0cjxOU1N0cmluZz4gX2ltYWdlTUlNRVR5cGU7CiAgICAgUmV0YWluUHRy
PENvY29hSW1hZ2U+IF9jb2NvYUltYWdlOwogI2lmIFBMQVRGT1JNKElPU19GQU1JTFkpCiAgICAg
UmV0YWluUHRyPE5TRGljdGlvbmFyeT4gX3VzZXJJbmZvOwpAQCAtNjMsNiArNjQsNyBAQCAtIChp
bnN0YW5jZXR5cGUpX2luaXRXaXRoSW50ZXJhY3Rpb25JbmZvcm1hdGlvbkF0UG9zaXRpb246KGNv
bnN0IFdlYktpdDo6SW50ZXJhYwogICAgIAogICAgIF9VUkwgPSBpbmZvcm1hdGlvbi51cmw7CiAg
ICAgX2ltYWdlVVJMID0gaW5mb3JtYXRpb24uaW1hZ2VVUkw7CisgICAgX2ltYWdlTUlNRVR5cGUg
PSBpbmZvcm1hdGlvbi5pbWFnZU1JTUVUeXBlOwogICAgIF9pbnRlcmFjdGlvbkxvY2F0aW9uID0g
aW5mb3JtYXRpb24ucmVxdWVzdC5wb2ludDsKICAgICBfdGl0bGUgPSBpbmZvcm1hdGlvbi50aXRs
ZTsKICAgICBfYm91bmRpbmdSZWN0ID0gaW5mb3JtYXRpb24uYm91bmRzOwpAQCAtODYsMTggKzg4
LDE5IEBAIC0gKGluc3RhbmNldHlwZSlfaW5pdFdpdGhJbnRlcmFjdGlvbkluZm9ybWF0aW9uQXRQ
b3NpdGlvbjooY29uc3QgV2ViS2l0OjpJbnRlcmFjCiB9CiAjZW5kaWYKIAotLSAoaW5zdGFuY2V0
eXBlKV9pbml0V2l0aFR5cGU6KF9XS0FjdGl2YXRlZEVsZW1lbnRUeXBlKXR5cGUgVVJMOihOU1VS
TCAqKXVybCBpbWFnZVVSTDooTlNVUkwgKilpbWFnZVVSTCBsb2NhdGlvbjooY29uc3QgV2ViQ29y
ZTo6SW50UG9pbnQmKWxvY2F0aW9uIHRpdGxlOihOU1N0cmluZyAqKXRpdGxlIElEOihOU1N0cmlu
ZyAqKUlEIHJlY3Q6KENHUmVjdClyZWN0IGltYWdlOihXZWJLaXQ6OlNoYXJlYWJsZUJpdG1hcCop
aW1hZ2UKKy0gKGluc3RhbmNldHlwZSlfaW5pdFdpdGhUeXBlOihfV0tBY3RpdmF0ZWRFbGVtZW50
VHlwZSl0eXBlIFVSTDooTlNVUkwgKil1cmwgaW1hZ2VVUkw6KE5TVVJMICopaW1hZ2VVUkwgbG9j
YXRpb246KGNvbnN0IFdlYkNvcmU6OkludFBvaW50Jilsb2NhdGlvbiB0aXRsZTooTlNTdHJpbmcg
Kil0aXRsZSBJRDooTlNTdHJpbmcgKilJRCByZWN0OihDR1JlY3QpcmVjdCBpbWFnZTooV2ViS2l0
OjpTaGFyZWFibGVCaXRtYXAqKWltYWdlIGltYWdlTUlNRVR5cGU6KE5TU3RyaW5nICopaW1hZ2VN
SU1FVHlwZQogewotICAgIHJldHVybiBbc2VsZiBfaW5pdFdpdGhUeXBlOnR5cGUgVVJMOnVybCBp
bWFnZVVSTDppbWFnZVVSTCBsb2NhdGlvbjpsb2NhdGlvbiB0aXRsZTp0aXRsZSBJRDpJRCByZWN0
OnJlY3QgaW1hZ2U6aW1hZ2UgdXNlckluZm86bmlsXTsKKyAgICByZXR1cm4gW3NlbGYgX2luaXRX
aXRoVHlwZTp0eXBlIFVSTDp1cmwgaW1hZ2VVUkw6aW1hZ2VVUkwgbG9jYXRpb246bG9jYXRpb24g
dGl0bGU6dGl0bGUgSUQ6SUQgcmVjdDpyZWN0IGltYWdlOmltYWdlIGltYWdlTUlNRVR5cGU6aW1h
Z2VNSU1FVHlwZSB1c2VySW5mbzpuaWxdOwogfQogCi0tIChpbnN0YW5jZXR5cGUpX2luaXRXaXRo
VHlwZTooX1dLQWN0aXZhdGVkRWxlbWVudFR5cGUpdHlwZSBVUkw6KE5TVVJMICopdXJsIGltYWdl
VVJMOihOU1VSTCAqKWltYWdlVVJMIGxvY2F0aW9uOihjb25zdCBXZWJDb3JlOjpJbnRQb2ludCYp
bG9jYXRpb24gdGl0bGU6KE5TU3RyaW5nICopdGl0bGUgSUQ6KE5TU3RyaW5nICopSUQgcmVjdDoo
Q0dSZWN0KXJlY3QgaW1hZ2U6KFdlYktpdDo6U2hhcmVhYmxlQml0bWFwKilpbWFnZSB1c2VySW5m
bzooTlNEaWN0aW9uYXJ5ICopdXNlckluZm8KKy0gKGluc3RhbmNldHlwZSlfaW5pdFdpdGhUeXBl
OihfV0tBY3RpdmF0ZWRFbGVtZW50VHlwZSl0eXBlIFVSTDooTlNVUkwgKil1cmwgaW1hZ2VVUkw6
KE5TVVJMICopaW1hZ2VVUkwgbG9jYXRpb246KGNvbnN0IFdlYkNvcmU6OkludFBvaW50Jilsb2Nh
dGlvbiB0aXRsZTooTlNTdHJpbmcgKil0aXRsZSBJRDooTlNTdHJpbmcgKilJRCByZWN0OihDR1Jl
Y3QpcmVjdCBpbWFnZTooV2ViS2l0OjpTaGFyZWFibGVCaXRtYXAqKWltYWdlIGltYWdlTUlNRVR5
cGU6KE5TU3RyaW5nICopaW1hZ2VNSU1FVHlwZSB1c2VySW5mbzooTlNEaWN0aW9uYXJ5ICopdXNl
ckluZm8KIHsKICAgICBpZiAoIShzZWxmID0gW3N1cGVyIGluaXRdKSkKICAgICAgICAgcmV0dXJu
IG5pbDsKIAogICAgIF9VUkwgPSBhZG9wdE5TKFt1cmwgY29weV0pOwogICAgIF9pbWFnZVVSTCA9
IGFkb3B0TlMoW2ltYWdlVVJMIGNvcHldKTsKKyAgICBfaW1hZ2VNSU1FVHlwZSA9IGFkb3B0TlMo
aW1hZ2VNSU1FVHlwZS5jb3B5KTsKICAgICBfaW50ZXJhY3Rpb25Mb2NhdGlvbiA9IGxvY2F0aW9u
OwogICAgIF90aXRsZSA9IGFkb3B0TlMoW3RpdGxlIGNvcHldKTsKICAgICBfYm91bmRpbmdSZWN0
ID0gcmVjdDsKQEAgLTEyNiw2ICsxMjksMTEgQEAgLSAoTlNTdHJpbmcgKil0aXRsZQogICAgIHJl
dHVybiBfdGl0bGUuZ2V0KCk7CiB9CiAKKy0gKE5TU3RyaW5nICopaW1hZ2VNSU1FVHlwZQorewor
ICAgIHJldHVybiBfaW1hZ2VNSU1FVHlwZS5nZXQoKTsKK30KKwogLSAoTlNTdHJpbmcgKilJRAog
ewogICAgIHJldHVybiBfSUQuZ2V0KCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJv
Y2Vzcy9BUEkvQ29jb2EvX1dLQWN0aXZhdGVkRWxlbWVudEluZm9JbnRlcm5hbC5oIGIvU291cmNl
L1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL19XS0FjdGl2YXRlZEVsZW1lbnRJbmZvSW50ZXJu
YWwuaAppbmRleCBkNGE3YmZiYmI2MDFlNjMzYjM5OGFhM2U3MGM2OGZhNTRlNDE5NGZiLi5jNmVl
ODI0ZDU5ZjVjOWUxOWE4YzdhYmU3ODk0OWJmNjQwMzY2YmU5IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvX1dLQWN0aXZhdGVkRWxlbWVudEluZm9JbnRlcm5h
bC5oCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9fV0tBY3RpdmF0ZWRF
bGVtZW50SW5mb0ludGVybmFsLmgKQEAgLTQwLDkgKzQwLDEwIEBAIG5hbWVzcGFjZSBXZWJLaXQg
ewogKyAoaW5zdGFuY2V0eXBlKWFjdGl2YXRlZEVsZW1lbnRJbmZvV2l0aEludGVyYWN0aW9uSW5m
b3JtYXRpb25BdFBvc2l0aW9uOihjb25zdCBXZWJLaXQ6OkludGVyYWN0aW9uSW5mb3JtYXRpb25B
dFBvc2l0aW9uJilpbmZvcm1hdGlvbiB1c2VySW5mbzooTlNEaWN0aW9uYXJ5ICopdXNlckluZm87
CiAtIChpbnN0YW5jZXR5cGUpX2luaXRXaXRoSW50ZXJhY3Rpb25JbmZvcm1hdGlvbkF0UG9zaXRp
b246KGNvbnN0IFdlYktpdDo6SW50ZXJhY3Rpb25JbmZvcm1hdGlvbkF0UG9zaXRpb24mKWluZm9y
bWF0aW9uIHVzZXJJbmZvOihOU0RpY3Rpb25hcnkgKil1c2VySW5mbzsKICNlbmRpZgotLSAoaW5z
dGFuY2V0eXBlKV9pbml0V2l0aFR5cGU6KF9XS0FjdGl2YXRlZEVsZW1lbnRUeXBlKXR5cGUgVVJM
OihOU1VSTCAqKXVybCBpbWFnZVVSTDooTlNVUkwgKilpbWFnZVVSTCBsb2NhdGlvbjooY29uc3Qg
V2ViQ29yZTo6SW50UG9pbnQmKWxvY2F0aW9uIHRpdGxlOihOU1N0cmluZyAqKXRpdGxlIElEOihO
U1N0cmluZyAqKUlEIHJlY3Q6KENHUmVjdClyZWN0IGltYWdlOihXZWJLaXQ6OlNoYXJlYWJsZUJp
dG1hcCopaW1hZ2U7Ci0tIChpbnN0YW5jZXR5cGUpX2luaXRXaXRoVHlwZTooX1dLQWN0aXZhdGVk
RWxlbWVudFR5cGUpdHlwZSBVUkw6KE5TVVJMICopdXJsIGltYWdlVVJMOihOU1VSTCAqKWltYWdl
VVJMIGxvY2F0aW9uOihjb25zdCBXZWJDb3JlOjpJbnRQb2ludCYpbG9jYXRpb24gdGl0bGU6KE5T
U3RyaW5nICopdGl0bGUgSUQ6KE5TU3RyaW5nICopSUQgcmVjdDooQ0dSZWN0KXJlY3QgaW1hZ2U6
KFdlYktpdDo6U2hhcmVhYmxlQml0bWFwKilpbWFnZSB1c2VySW5mbzooTlNEaWN0aW9uYXJ5ICop
dXNlckluZm87CistIChpbnN0YW5jZXR5cGUpX2luaXRXaXRoVHlwZTooX1dLQWN0aXZhdGVkRWxl
bWVudFR5cGUpdHlwZSBVUkw6KE5TVVJMICopdXJsIGltYWdlVVJMOihOU1VSTCAqKWltYWdlVVJM
IGxvY2F0aW9uOihjb25zdCBXZWJDb3JlOjpJbnRQb2ludCYpbG9jYXRpb24gdGl0bGU6KE5TU3Ry
aW5nICopdGl0bGUgSUQ6KE5TU3RyaW5nICopSUQgcmVjdDooQ0dSZWN0KXJlY3QgaW1hZ2U6KFdl
YktpdDo6U2hhcmVhYmxlQml0bWFwKilpbWFnZSBpbWFnZU1JTUVUeXBlOihOU1N0cmluZyAqKWlt
YWdlTUlNRVR5cGU7CistIChpbnN0YW5jZXR5cGUpX2luaXRXaXRoVHlwZTooX1dLQWN0aXZhdGVk
RWxlbWVudFR5cGUpdHlwZSBVUkw6KE5TVVJMICopdXJsIGltYWdlVVJMOihOU1VSTCAqKWltYWdl
VVJMIGxvY2F0aW9uOihjb25zdCBXZWJDb3JlOjpJbnRQb2ludCYpbG9jYXRpb24gdGl0bGU6KE5T
U3RyaW5nICopdGl0bGUgSUQ6KE5TU3RyaW5nICopSUQgcmVjdDooQ0dSZWN0KXJlY3QgaW1hZ2U6
KFdlYktpdDo6U2hhcmVhYmxlQml0bWFwKilpbWFnZSBpbWFnZU1JTUVUeXBlOihOU1N0cmluZyAq
KWltYWdlTUlNRVR5cGUgdXNlckluZm86KE5TRGljdGlvbmFyeSAqKXVzZXJJbmZvOwogCitAcHJv
cGVydHkgKG5vbmF0b21pYywgcmVhZG9ubHkpIE5TU3RyaW5nICppbWFnZU1JTUVUeXBlOwogQHBy
b3BlcnR5IChub25hdG9taWMsIHJlYWRvbmx5KSBXZWJDb3JlOjpJbnRQb2ludCBfaW50ZXJhY3Rp
b25Mb2NhdGlvbjsKIAogQGVuZApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3Mv
QVBJL0NvY29hL19XS0VsZW1lbnRBY3Rpb24uaCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQ
SS9Db2NvYS9fV0tFbGVtZW50QWN0aW9uLmgKaW5kZXggYWFkZWU5ZjZlMjMwYmM4YzUxYzllMzE0
MzMwNWQ1NTQ3YTIzOWM4Ny4uNDQ5MDljOWNjYTBjMjdhZmI3NDNkMmM5NjcyYWU3ZmI4ZTkyNGM2
OSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL19XS0VsZW1l
bnRBY3Rpb24uaAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvX1dLRWxl
bWVudEFjdGlvbi5oCkBAIC01Niw2ICs1Niw3IEBAIHR5cGVkZWYgTlNfRU5VTShOU0ludGVnZXIs
IF9XS0VsZW1lbnRBY3Rpb25UeXBlKSB7CiAgICAgX1dLRWxlbWVudEFjdGlvblRvZ2dsZVNob3dM
aW5rUHJldmlld3MgV0tfQVBJX0FWQUlMQUJMRShtYWNvcygxMC4xNSksIGlvcygxMy4wKSksCiAg
ICAgX1dLRWxlbWVudEFjdGlvblR5cGVJbWFnZUV4dHJhY3Rpb24gV0tfQVBJX0FWQUlMQUJMRShp
b3MoMTUuMCkpLAogICAgIF9XS0VsZW1lbnRBY3Rpb25UeXBlUmV2ZWFsSW1hZ2UgV0tfQVBJX0FW
QUlMQUJMRShpb3MoMTUuMCkpLAorICAgIF9XS0VsZW1lbnRBY3Rpb25UeXBlQ29weUNyb3BwZWRJ
bWFnZSBXS19BUElfQVZBSUxBQkxFKGlvcyhXS19JT1NfVEJBKSksCiB9IFdLX0FQSV9BVkFJTEFC
TEUobWFjb3MoMTAuMTApLCBpb3MoOC4wKSk7CiAKIFdLX0NMQVNTX0FWQUlMQUJMRShtYWNvcygx
MC4xMCksIGlvcyg4LjApKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJ
L0NvY29hL19XS0VsZW1lbnRBY3Rpb24ubW0gYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkv
Q29jb2EvX1dLRWxlbWVudEFjdGlvbi5tbQppbmRleCBjMzdmYzg2OWQ4MmM3NGQxMDhmN2Q2ODcz
NGFhOTkyZjY5YmIzZGFmLi5kNjQyNzk3MWQ2NTNhN2MzY2I5NjM5NzVkNzMyMzI2ZGU2MDZiY2Nj
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvX1dLRWxlbWVu
dEFjdGlvbi5tbQorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvX1dLRWxl
bWVudEFjdGlvbi5tbQpAQCAtNjMsNiArNjMsNyBAQCBzdGF0aWMgVUlBY3Rpb25JZGVudGlmaWVy
IGNvbnN0IFdLRWxlbWVudEFjdGlvblR5cGVEb3dubG9hZElkZW50aWZpZXIgPSBAIldLRWxlbQog
VUlBY3Rpb25JZGVudGlmaWVyIGNvbnN0IFdLRWxlbWVudEFjdGlvblR5cGVUb2dnbGVTaG93TGlu
a1ByZXZpZXdzSWRlbnRpZmllciA9IEAiV0tFbGVtZW50QWN0aW9uVHlwZVRvZ2dsZVNob3dMaW5r
UHJldmlld3MiOwogc3RhdGljIFVJQWN0aW9uSWRlbnRpZmllciBjb25zdCBXS0VsZW1lbnRBY3Rp
b25UeXBlSW1hZ2VFeHRyYWN0aW9uSWRlbnRpZmllciA9IEAiV0tFbGVtZW50QWN0aW9uVHlwZUlt
YWdlRXh0cmFjdGlvbiI7CiBzdGF0aWMgVUlBY3Rpb25JZGVudGlmaWVyIGNvbnN0IFdLRWxlbWVu
dEFjdGlvblR5cGVSZXZlYWxJbWFnZUlkZW50aWZpZXIgPSBAIldLRWxlbWVudEFjdGlvblR5cGVS
ZXZlYWxJbWFnZSI7CitzdGF0aWMgVUlBY3Rpb25JZGVudGlmaWVyIGNvbnN0IFdLRWxlbWVudEFj
dGlvblR5cGVDb3B5Q3JvcHBlZEltYWdlSWRlbnRpZmllciA9IEAiV0tFbGVtZW50QWN0aW9uVHlw
ZUNvcHlDcm9wcGVkSW1hZ2UiOwogCiBzdGF0aWMgTlNTdHJpbmcgKiBjb25zdCB3ZWJraXRTaG93
TGlua1ByZXZpZXdzUHJlZmVyZW5jZUtleSA9IEAiV2ViS2l0U2hvd0xpbmtQcmV2aWV3cyI7CiBz
dGF0aWMgTlNTdHJpbmcgKiBjb25zdCB3ZWJraXRTaG93TGlua1ByZXZpZXdzUHJlZmVyZW5jZUNo
YW5nZWROb3RpZmljYXRpb24gPSBAIldlYktpdFNob3dMaW5rUHJldmlld3NQcmVmZXJlbmNlQ2hh
bmdlZCI7CkBAIC0xNzUsNiArMTc2LDE0IEBAICsgKGluc3RhbmNldHlwZSlfZWxlbWVudEFjdGlv
bldpdGhUeXBlOihfV0tFbGVtZW50QWN0aW9uVHlwZSl0eXBlIGN1c3RvbVRpdGxlOihOCiAgICAg
ICAgIGhhbmRsZXIgPSBeKFdLQWN0aW9uU2hlZXRBc3Npc3RhbnQgKmFzc2lzdGFudCwgX1dLQWN0
aXZhdGVkRWxlbWVudEluZm8gKmFjdGlvbkluZm8pIHsKICAgICAgICAgICAgIFthc3Npc3RhbnQg
aGFuZGxlRWxlbWVudEFjdGlvbldpdGhUeXBlOnR5cGUgZWxlbWVudDphY3Rpb25JbmZvIG5lZWRz
SW50ZXJhY3Rpb246WUVTXTsKICAgICAgICAgfTsKKyNlbmRpZgorICAgICAgICBicmVhazsKKyAg
ICBjYXNlIF9XS0VsZW1lbnRBY3Rpb25UeXBlQ29weUNyb3BwZWRJbWFnZToKKyNpZiBFTkFCTEUo
SU1BR0VfQU5BTFlTSVNfRU5IQU5DRU1FTlRTKQorICAgICAgICB0aXRsZSA9IFdFQl9VSV9TVFJJ
TkcoIkNvcHkgQ3JvcHBlZCBJbWFnZSIsICJUaXRsZSBmb3IgQ29weSBDcm9wcGVkIEltYWdlIik7
CisgICAgICAgIGhhbmRsZXIgPSBeKFdLQWN0aW9uU2hlZXRBc3Npc3RhbnQgKmFzc2lzdGFudCwg
X1dLQWN0aXZhdGVkRWxlbWVudEluZm8gKmFjdGlvbkluZm8pIHsKKyAgICAgICAgICAgIFthc3Np
c3RhbnQgaGFuZGxlRWxlbWVudEFjdGlvbldpdGhUeXBlOnR5cGUgZWxlbWVudDphY3Rpb25JbmZv
IG5lZWRzSW50ZXJhY3Rpb246WUVTXTsKKyAgICAgICAgfTsKICNlbmRpZgogICAgICAgICBicmVh
azsKICAgICBkZWZhdWx0OgpAQCAtMjU1LDYgKzI2NCw4IEBAICsgKFVJSW1hZ2UgKilpbWFnZUZv
ckVsZW1lbnRBY3Rpb25UeXBlOihfV0tFbGVtZW50QWN0aW9uVHlwZSlhY3Rpb25UeXBlCiAjZWxz
ZQogICAgICAgICByZXR1cm4gbmlsOwogI2VuZGlmCisgICAgY2FzZSBfV0tFbGVtZW50QWN0aW9u
VHlwZUNvcHlDcm9wcGVkSW1hZ2U6CisgICAgICAgIHJldHVybiBbVUlJbWFnZSBzeXN0ZW1JbWFn
ZU5hbWVkOkAicGVyc29uLmZpbGwudmlld2ZpbmRlciJdOwogICAgIH0KIH0KIApAQCAtMjg5LDYg
KzMwMCw4IEBAIHN0YXRpYyBVSUFjdGlvbklkZW50aWZpZXIgZWxlbWVudEFjdGlvblR5cGVUb1VJ
QWN0aW9uSWRlbnRpZmllcihfV0tFbGVtZW50QWN0aW9uCiAgICAgICAgIHJldHVybiBXS0VsZW1l
bnRBY3Rpb25UeXBlSW1hZ2VFeHRyYWN0aW9uSWRlbnRpZmllcjsKICAgICBjYXNlIF9XS0VsZW1l
bnRBY3Rpb25UeXBlUmV2ZWFsSW1hZ2U6CiAgICAgICAgIHJldHVybiBXS0VsZW1lbnRBY3Rpb25U
eXBlUmV2ZWFsSW1hZ2VJZGVudGlmaWVyOworICAgIGNhc2UgX1dLRWxlbWVudEFjdGlvblR5cGVD
b3B5Q3JvcHBlZEltYWdlOgorICAgICAgICByZXR1cm4gV0tFbGVtZW50QWN0aW9uVHlwZUNvcHlD
cm9wcGVkSW1hZ2VJZGVudGlmaWVyOwogICAgIH0KIH0KIApAQCAtMzIyLDYgKzMzNSw4IEBAIHN0
YXRpYyBfV0tFbGVtZW50QWN0aW9uVHlwZSB1aUFjdGlvbklkZW50aWZpZXJUb0VsZW1lbnRBY3Rp
b25UeXBlKFVJQWN0aW9uSWRlbnRpCiAgICAgICAgIHJldHVybiBfV0tFbGVtZW50QWN0aW9uVHlw
ZUltYWdlRXh0cmFjdGlvbjsKICAgICBpZiAoW2lkZW50aWZpZXIgaXNFcXVhbFRvU3RyaW5nOldL
RWxlbWVudEFjdGlvblR5cGVSZXZlYWxJbWFnZUlkZW50aWZpZXJdKQogICAgICAgICByZXR1cm4g
X1dLRWxlbWVudEFjdGlvblR5cGVSZXZlYWxJbWFnZTsKKyAgICBpZiAoW2lkZW50aWZpZXIgaXNF
cXVhbFRvU3RyaW5nOldLRWxlbWVudEFjdGlvblR5cGVDb3B5Q3JvcHBlZEltYWdlSWRlbnRpZmll
cl0pCisgICAgICAgIHJldHVybiBfV0tFbGVtZW50QWN0aW9uVHlwZUNvcHlDcm9wcGVkSW1hZ2U7
CiAgICAgcmV0dXJuIF9XS0VsZW1lbnRBY3Rpb25UeXBlQ3VzdG9tOwogfQogCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9pb3MvV0tBY3Rpb25TaGVldEFzc2lzdGFudC5oIGIv
U291cmNlL1dlYktpdC9VSVByb2Nlc3MvaW9zL1dLQWN0aW9uU2hlZXRBc3Npc3RhbnQuaAppbmRl
eCA2ZThlZTNkYTMwOTJlYWEyYTc0NDc2ZTU2Y2UzNTEzNjY5Nzk0ZjczLi5lOTNiZjZlN2VlZmIw
NjYyMzI5MGUxOTNmNWQ5MjMwMjdmZTlhMTQ1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJ
UHJvY2Vzcy9pb3MvV0tBY3Rpb25TaGVldEFzc2lzdGFudC5oCisrKyBiL1NvdXJjZS9XZWJLaXQv
VUlQcm9jZXNzL2lvcy9XS0FjdGlvblNoZWV0QXNzaXN0YW50LmgKQEAgLTg1LDYgKzg1LDkgQEAg
dHlwZWRlZiBOU19FTlVNKE5TSW50ZWdlciwgX1dLRWxlbWVudEFjdGlvblR5cGUpOwogLSAoQk9P
TClhY3Rpb25TaGVldEFzc2lzdGFudDooV0tBY3Rpb25TaGVldEFzc2lzdGFudCAqKWFzc2lzdGFu
dCBzaG91bGRJbmNsdWRlTG9va1VwSW1hZ2VBY3Rpb25Gb3JFbGVtZW50OihfV0tBY3RpdmF0ZWRF
bGVtZW50SW5mbyAqKWVsZW1lbnQ7CiAtICh2b2lkKWFjdGlvblNoZWV0QXNzaXN0YW50OihXS0Fj
dGlvblNoZWV0QXNzaXN0YW50ICopYXNzaXN0YW50IGxvb2tVcEltYWdlOihVSUltYWdlICopaW1h
Z2UgaW1hZ2VVUkw6KE5TVVJMICopaW1hZ2VVUkwgdGl0bGU6KE5TU3RyaW5nICopdGl0bGUgaW1h
Z2VCb3VuZHM6KENHUmVjdClpbWFnZUJvdW5kczsKICNlbmRpZgorI2lmIEVOQUJMRShJTUFHRV9B
TkFMWVNJU19FTkhBTkNFTUVOVFMpCistICh2b2lkKWFjdGlvblNoZWV0QXNzaXN0YW50OihXS0Fj
dGlvblNoZWV0QXNzaXN0YW50ICopYXNzaXN0YW50IGNvcHlDcm9wcGVkSW1hZ2U6KFVJSW1hZ2Ug
KilpbWFnZSBzb3VyY2VNSU1FVHlwZTooTlNTdHJpbmcgKilzb3VyY2VNSU1FVHlwZTsKKyNlbmRp
ZgogQGVuZAogCiAjaWYgVVNFKFVJQ09OVEVYVE1FTlUpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
S2l0L1VJUHJvY2Vzcy9pb3MvV0tBY3Rpb25TaGVldEFzc2lzdGFudC5tbSBiL1NvdXJjZS9XZWJL
aXQvVUlQcm9jZXNzL2lvcy9XS0FjdGlvblNoZWV0QXNzaXN0YW50Lm1tCmluZGV4IDVlNTc0YjJi
MWRiOTc4YmNmZTc5MWQ3MzExMTU1NGVhN2FhNzJhMjguLmY2ZjU1ODFhNDZkNjMzOGY0YjBhZjg5
ZTc3NTViNWM1MjRhZmNjMDUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL2lv
cy9XS0FjdGlvblNoZWV0QXNzaXN0YW50Lm1tCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNz
L2lvcy9XS0FjdGlvblNoZWV0QXNzaXN0YW50Lm1tCkBAIC0yOSw3ICsyOSw3IEBACiAjaWYgUExB
VEZPUk0oSU9TX0ZBTUlMWSkKIAogI2ltcG9ydCAiQVBJVUlDbGllbnQuaCIKLSNpbXBvcnQgIlRD
Q1NvZnRMaW5rLmgiCisjaW1wb3J0ICJUZXh0UmVjb2duaXRpb25VdGlsaXRpZXMuaCIKICNpbXBv
cnQgIlVJS2l0U1BJLmgiCiAjaW1wb3J0ICJXS0FjdGlvblNoZWV0LmgiCiAjaW1wb3J0ICJXS0Nv
bnRlbnRWaWV3SW50ZXJhY3Rpb24uaCIKQEAgLTYyLDYgKzYyLDggQEAgU09GVF9MSU5LX0ZSQU1F
V09SSyhTYWZhcmlTZXJ2aWNlcykKIFNPRlRfTElOS19DTEFTUyhTYWZhcmlTZXJ2aWNlcywgU1NS
ZWFkaW5nTGlzdCkKICNlbmRpZgogCisjaW1wb3J0ICJUQ0NTb2Z0TGluay5oIgorCiBPQkpDX0NM
QVNTIEREQWN0aW9uOwogCiAjaWYgSEFWRShBUFBfTElOS1MpCkBAIC0zOTcsNyArMzk5LDcgQEAg
LSAodm9pZClzaG93SW1hZ2VTaGVldAogICAgICAgICBpZiAoIXRhcmdldFVSTCkKICAgICAgICAg
ICAgIHRhcmdldFVSTCA9IGFsdGVybmF0ZVVSTDsKICAgICAgICAgYXV0byBlbGVtZW50Qm91bmRz
ID0gX3Bvc2l0aW9uSW5mb3JtYXRpb24tPmJvdW5kczsKLSAgICAgICAgYXV0byBlbGVtZW50SW5m
byA9IGFkb3B0TlMoW1tfV0tBY3RpdmF0ZWRFbGVtZW50SW5mbyBhbGxvY10gX2luaXRXaXRoVHlw
ZTpfV0tBY3RpdmF0ZWRFbGVtZW50VHlwZUltYWdlIFVSTDp0YXJnZXRVUkwgaW1hZ2VVUkw6aW1h
Z2VVUkwgbG9jYXRpb246X3Bvc2l0aW9uSW5mb3JtYXRpb24tPnJlcXVlc3QucG9pbnQgdGl0bGU6
X3Bvc2l0aW9uSW5mb3JtYXRpb24tPnRpdGxlIElEOl9wb3NpdGlvbkluZm9ybWF0aW9uLT5pZEF0
dHJpYnV0ZSByZWN0OmVsZW1lbnRCb3VuZHMgaW1hZ2U6X3Bvc2l0aW9uSW5mb3JtYXRpb24tPmlt
YWdlLmdldCgpIHVzZXJJbmZvOnVzZXJJbmZvXSk7CisgICAgICAgIGF1dG8gZWxlbWVudEluZm8g
PSBhZG9wdE5TKFtbX1dLQWN0aXZhdGVkRWxlbWVudEluZm8gYWxsb2NdIF9pbml0V2l0aFR5cGU6
X1dLQWN0aXZhdGVkRWxlbWVudFR5cGVJbWFnZSBVUkw6dGFyZ2V0VVJMIGltYWdlVVJMOmltYWdl
VVJMIGxvY2F0aW9uOl9wb3NpdGlvbkluZm9ybWF0aW9uLT5yZXF1ZXN0LnBvaW50IHRpdGxlOl9w
b3NpdGlvbkluZm9ybWF0aW9uLT50aXRsZSBJRDpfcG9zaXRpb25JbmZvcm1hdGlvbi0+aWRBdHRy
aWJ1dGUgcmVjdDplbGVtZW50Qm91bmRzIGltYWdlOl9wb3NpdGlvbkluZm9ybWF0aW9uLT5pbWFn
ZS5nZXQoKSBpbWFnZU1JTUVUeXBlOl9wb3NpdGlvbkluZm9ybWF0aW9uLT5pbWFnZU1JTUVUeXBl
IHVzZXJJbmZvOnVzZXJJbmZvXSk7CiAgICAgICAgIGlmIChbZGVsZWdhdGUgcmVzcG9uZHNUb1Nl
bGVjdG9yOkBzZWxlY3RvcihhY3Rpb25TaGVldEFzc2lzdGFudDpzaG93Q3VzdG9tU2hlZXRGb3JF
bGVtZW50OildICYmIFtkZWxlZ2F0ZSBhY3Rpb25TaGVldEFzc2lzdGFudDpzZWxmIHNob3dDdXN0
b21TaGVldEZvckVsZW1lbnQ6ZWxlbWVudEluZm8uZ2V0KCldKQogICAgICAgICAgICAgcmV0dXJu
OwogICAgICAgICBhdXRvIGRlZmF1bHRBY3Rpb25zID0gW3NlbGYgZGVmYXVsdEFjdGlvbnNGb3JJ
bWFnZVNoZWV0OmVsZW1lbnRJbmZvLmdldCgpXTsKQEAgLTU1MSwxNCArNTUzLDIwIEBAIC0gKFJl
dGFpblB0cjxOU0FycmF5PF9XS0VsZW1lbnRBY3Rpb24gKj4+KWRlZmF1bHRBY3Rpb25zRm9yTGlu
a1NoZWV0OihfV0tBY3RpdmF0CiAgICAgICAgIFtkZWZhdWx0QWN0aW9ucyBhZGRPYmplY3Q6W19X
S0VsZW1lbnRBY3Rpb24gX2VsZW1lbnRBY3Rpb25XaXRoVHlwZTpfV0tFbGVtZW50QWN0aW9uVHlw
ZVNoYXJlIGFzc2lzdGFudDpzZWxmXV07CiAgICAgfQogCi0jaWYgRU5BQkxFKElNQUdFX0FOQUxZ
U0lTKQogICAgIGlmIChlbGVtZW50SW5mby50eXBlID09IF9XS0FjdGl2YXRlZEVsZW1lbnRUeXBl
SW1hZ2UgfHwgW2VsZW1lbnRJbmZvIGltYWdlXSkgeworI2lmIEVOQUJMRShJTUFHRV9BTkFMWVNJ
U19FTkhBTkNFTUVOVFMpCisgICAgICAgIGlmIChXZWJLaXQ6OmlzSW1hZ2VBbmFseXNpc01hcmt1
cFN5c3RlbUZlYXR1cmVFbmFibGVkKCkpIHsKKyAgICAgICAgICAgIC8vIEZJWE1FOiBUaGlzIHNo
b3VsZCBiZSBhZGRpdGlvbmFsbHkgZ2F0ZWQgb24gdGhlIHJlbGV2YW50IFZpc2lvbktpdCBTUEku
CisgICAgICAgICAgICBbZGVmYXVsdEFjdGlvbnMgYWRkT2JqZWN0OltfV0tFbGVtZW50QWN0aW9u
IF9lbGVtZW50QWN0aW9uV2l0aFR5cGU6X1dLRWxlbWVudEFjdGlvblR5cGVDb3B5Q3JvcHBlZElt
YWdlIGFzc2lzdGFudDpzZWxmXV07CisgICAgICAgIH0KKyNlbmRpZgorI2lmIEVOQUJMRShJTUFH
RV9BTkFMWVNJUykKICAgICAgICAgaWYgKFtfZGVsZWdhdGUgcmVzcG9uZHNUb1NlbGVjdG9yOkBz
ZWxlY3RvcihhY3Rpb25TaGVldEFzc2lzdGFudDpzaG91bGRJbmNsdWRlU2hvd1RleHRBY3Rpb25G
b3JFbGVtZW50OildICYmIFtfZGVsZWdhdGUgYWN0aW9uU2hlZXRBc3Npc3RhbnQ6c2VsZiBzaG91
bGRJbmNsdWRlU2hvd1RleHRBY3Rpb25Gb3JFbGVtZW50OmVsZW1lbnRJbmZvXSkKICAgICAgICAg
ICAgIFtkZWZhdWx0QWN0aW9ucyBhZGRPYmplY3Q6W19XS0VsZW1lbnRBY3Rpb24gX2VsZW1lbnRB
Y3Rpb25XaXRoVHlwZTpfV0tFbGVtZW50QWN0aW9uVHlwZUltYWdlRXh0cmFjdGlvbiBhc3Npc3Rh
bnQ6c2VsZl1dOwogICAgICAgICBpZiAoW19kZWxlZ2F0ZSByZXNwb25kc1RvU2VsZWN0b3I6QHNl
bGVjdG9yKGFjdGlvblNoZWV0QXNzaXN0YW50OnNob3VsZEluY2x1ZGVMb29rVXBJbWFnZUFjdGlv
bkZvckVsZW1lbnQ6KV0gJiYgW19kZWxlZ2F0ZSBhY3Rpb25TaGVldEFzc2lzdGFudDpzZWxmIHNo
b3VsZEluY2x1ZGVMb29rVXBJbWFnZUFjdGlvbkZvckVsZW1lbnQ6ZWxlbWVudEluZm9dKQogICAg
ICAgICAgICAgW2RlZmF1bHRBY3Rpb25zIGFkZE9iamVjdDpbX1dLRWxlbWVudEFjdGlvbiBfZWxl
bWVudEFjdGlvbldpdGhUeXBlOl9XS0VsZW1lbnRBY3Rpb25UeXBlUmV2ZWFsSW1hZ2UgYXNzaXN0
YW50OnNlbGZdXTsKLSAgICB9CiAjZW5kaWYKKyAgICB9CiAKICAgICByZXR1cm4gZGVmYXVsdEFj
dGlvbnM7CiB9CkBAIC01ODIsNiArNTkwLDEyIEBAIC0gKFJldGFpblB0cjxOU0FycmF5PF9XS0Vs
ZW1lbnRBY3Rpb24gKj4+KWRlZmF1bHRBY3Rpb25zRm9ySW1hZ2VTaGVldDooX1dLQWN0aXZhCiAg
ICAgICAgIFtkZWZhdWx0QWN0aW9ucyBhZGRPYmplY3Q6W19XS0VsZW1lbnRBY3Rpb24gX2VsZW1l
bnRBY3Rpb25XaXRoVHlwZTpfV0tFbGVtZW50QWN0aW9uVHlwZVNhdmVJbWFnZSBhc3Npc3RhbnQ6
c2VsZl1dOwogCiAgICAgW2RlZmF1bHRBY3Rpb25zIGFkZE9iamVjdDpbX1dLRWxlbWVudEFjdGlv
biBfZWxlbWVudEFjdGlvbldpdGhUeXBlOl9XS0VsZW1lbnRBY3Rpb25UeXBlQ29weSBhc3Npc3Rh
bnQ6c2VsZl1dOworI2lmIEVOQUJMRShJTUFHRV9BTkFMWVNJU19FTkhBTkNFTUVOVFMpCisgICAg
aWYgKFdlYktpdDo6aXNJbWFnZUFuYWx5c2lzTWFya3VwU3lzdGVtRmVhdHVyZUVuYWJsZWQoKSkg
eworICAgICAgICAvLyBGSVhNRTogVGhpcyBzaG91bGQgYmUgYWRkaXRpb25hbGx5IGdhdGVkIG9u
IHRoZSByZWxldmFudCBWaXNpb25LaXQgU1BJLgorICAgICAgICBbZGVmYXVsdEFjdGlvbnMgYWRk
T2JqZWN0OltfV0tFbGVtZW50QWN0aW9uIF9lbGVtZW50QWN0aW9uV2l0aFR5cGU6X1dLRWxlbWVu
dEFjdGlvblR5cGVDb3B5Q3JvcHBlZEltYWdlIGFzc2lzdGFudDpzZWxmXV07CisgICAgfQorI2Vu
ZGlmCiAKICNpZiBFTkFCTEUoSU1BR0VfQU5BTFlTSVMpCiAgICAgaWYgKFtfZGVsZWdhdGUgcmVz
cG9uZHNUb1NlbGVjdG9yOkBzZWxlY3RvcihhY3Rpb25TaGVldEFzc2lzdGFudDpzaG91bGRJbmNs
dWRlU2hvd1RleHRBY3Rpb25Gb3JFbGVtZW50OildICYmIFtfZGVsZWdhdGUgYWN0aW9uU2hlZXRB
c3Npc3RhbnQ6c2VsZiBzaG91bGRJbmNsdWRlU2hvd1RleHRBY3Rpb25Gb3JFbGVtZW50OmVsZW1l
bnRJbmZvXSkKQEAgLTYxNCw3ICs2MjgsNyBAQCAtICh2b2lkKXNob3dMaW5rU2hlZXQKICAgICAg
ICAgcmV0dXJuOwogICAgIH0KIAotICAgIGF1dG8gZWxlbWVudEluZm8gPSBhZG9wdE5TKFtbX1dL
QWN0aXZhdGVkRWxlbWVudEluZm8gYWxsb2NdIF9pbml0V2l0aFR5cGU6X1dLQWN0aXZhdGVkRWxl
bWVudFR5cGVMaW5rIFVSTDp0YXJnZXRVUkwgaW1hZ2VVUkw6KE5TVVJMKilfcG9zaXRpb25JbmZv
cm1hdGlvbi0+aW1hZ2VVUkwgbG9jYXRpb246X3Bvc2l0aW9uSW5mb3JtYXRpb24tPnJlcXVlc3Qu
cG9pbnQgdGl0bGU6X3Bvc2l0aW9uSW5mb3JtYXRpb24tPnRpdGxlIElEOl9wb3NpdGlvbkluZm9y
bWF0aW9uLT5pZEF0dHJpYnV0ZSByZWN0Ol9wb3NpdGlvbkluZm9ybWF0aW9uLT5ib3VuZHMgaW1h
Z2U6X3Bvc2l0aW9uSW5mb3JtYXRpb24tPmltYWdlLmdldCgpXSk7CisgICAgYXV0byBlbGVtZW50
SW5mbyA9IGFkb3B0TlMoW1tfV0tBY3RpdmF0ZWRFbGVtZW50SW5mbyBhbGxvY10gX2luaXRXaXRo
VHlwZTpfV0tBY3RpdmF0ZWRFbGVtZW50VHlwZUxpbmsgVVJMOnRhcmdldFVSTCBpbWFnZVVSTDoo
TlNVUkwqKV9wb3NpdGlvbkluZm9ybWF0aW9uLT5pbWFnZVVSTCBsb2NhdGlvbjpfcG9zaXRpb25J
bmZvcm1hdGlvbi0+cmVxdWVzdC5wb2ludCB0aXRsZTpfcG9zaXRpb25JbmZvcm1hdGlvbi0+dGl0
bGUgSUQ6X3Bvc2l0aW9uSW5mb3JtYXRpb24tPmlkQXR0cmlidXRlIHJlY3Q6X3Bvc2l0aW9uSW5m
b3JtYXRpb24tPmJvdW5kcyBpbWFnZTpfcG9zaXRpb25JbmZvcm1hdGlvbi0+aW1hZ2UuZ2V0KCkg
aW1hZ2VNSU1FVHlwZTpfcG9zaXRpb25JbmZvcm1hdGlvbi0+aW1hZ2VNSU1FVHlwZV0pOwogICAg
IGlmIChbX2RlbGVnYXRlIHJlc3BvbmRzVG9TZWxlY3RvcjpAc2VsZWN0b3IoYWN0aW9uU2hlZXRB
c3Npc3RhbnQ6c2hvd0N1c3RvbVNoZWV0Rm9yRWxlbWVudDopXSAmJiBbX2RlbGVnYXRlIGFjdGlv
blNoZWV0QXNzaXN0YW50OnNlbGYgc2hvd0N1c3RvbVNoZWV0Rm9yRWxlbWVudDplbGVtZW50SW5m
by5nZXQoKV0pIHsKICAgICAgICAgX25lZWRzTGlua0luZGljYXRvciA9IE5POwogICAgICAgICBy
ZXR1cm47CkBAIC0xMDMxLDYgKzEwNDUsMTEgQEAgLSAodm9pZCloYW5kbGVFbGVtZW50QWN0aW9u
V2l0aFR5cGU6KF9XS0VsZW1lbnRBY3Rpb25UeXBlKXR5cGUgZWxlbWVudDooX1dLQWN0aXYKICAg
ICBjYXNlIF9XS0VsZW1lbnRBY3Rpb25UeXBlUmV2ZWFsSW1hZ2U6CiAjaWYgRU5BQkxFKElNQUdF
X0FOQUxZU0lTKQogICAgICAgICBbZGVsZWdhdGUgYWN0aW9uU2hlZXRBc3Npc3RhbnQ6c2VsZiBs
b29rVXBJbWFnZTplbGVtZW50LmltYWdlIGltYWdlVVJMOmVsZW1lbnQuaW1hZ2VVUkwgdGl0bGU6
ZWxlbWVudC50aXRsZSBpbWFnZUJvdW5kczplbGVtZW50LmJvdW5kaW5nUmVjdF07CisjZW5kaWYK
KyAgICAgICAgYnJlYWs7CisgICAgY2FzZSBfV0tFbGVtZW50QWN0aW9uVHlwZUNvcHlDcm9wcGVk
SW1hZ2U6CisjaWYgRU5BQkxFKElNQUdFX0FOQUxZU0lTX0VOSEFOQ0VNRU5UUykKKyAgICAgICAg
W2RlbGVnYXRlIGFjdGlvblNoZWV0QXNzaXN0YW50OnNlbGYgY29weUNyb3BwZWRJbWFnZTplbGVt
ZW50LmltYWdlIHNvdXJjZU1JTUVUeXBlOmVsZW1lbnQuaW1hZ2VNSU1FVHlwZV07CiAjZW5kaWYK
ICAgICAgICAgYnJlYWs7CiAgICAgZGVmYXVsdDoKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQv
VUlQcm9jZXNzL2lvcy9XS0NvbnRlbnRWaWV3SW50ZXJhY3Rpb24ubW0gYi9Tb3VyY2UvV2ViS2l0
L1VJUHJvY2Vzcy9pb3MvV0tDb250ZW50Vmlld0ludGVyYWN0aW9uLm1tCmluZGV4IDAwMThmODFi
YjQ1YThlYzBiZGJjYTYwMGE5Mjc5NmJiNzRjM2Y0NGEuLmMzMTI3M2I3ZGRlYWQ0MDBjMDBiNjk2
NmUyZDRlZDQ3MjQ0MTdjZTEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL2lv
cy9XS0NvbnRlbnRWaWV3SW50ZXJhY3Rpb24ubW0KKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nl
c3MvaW9zL1dLQ29udGVudFZpZXdJbnRlcmFjdGlvbi5tbQpAQCAtMjksNiArMjksNyBAQAogI2lm
IFBMQVRGT1JNKElPU19GQU1JTFkpCiAKICNpbXBvcnQgIkFQSVVJQ2xpZW50LmgiCisjaW1wb3J0
ICJDb2NvYUltYWdlLmgiCiAjaW1wb3J0ICJDb21wbGV0aW9uSGFuZGxlckNhbGxDaGVja2VyLmgi
CiAjaW1wb3J0ICJEb2N1bWVudEVkaXRpbmdDb250ZXh0LmgiCiAjaW1wb3J0ICJJbnB1dFZpZXdV
cGRhdGVEZWZlcnJlci5oIgpAQCAtMzczLDIwICszNzQsNiBAQCBwcml2YXRlOgogICAgIGJvb2wg
bV9zaG91bGRQcmV2ZW50VGV4dFNlbGVjdGlvbiB7IGZhbHNlIH07CiB9OwogCi1zdGF0aWMgUmV0
YWluUHRyPE5TRGF0YT4gdHJhbnNjb2RlKENHSW1hZ2VSZWYgaW1hZ2UsIENGU3RyaW5nUmVmIHR5
cGVJZGVudGlmaWVyKQotewotICAgIGlmICghaW1hZ2UpCi0gICAgICAgIHJldHVybiBuaWw7Ci0K
LSAgICBhdXRvIGRhdGEgPSBhZG9wdE5TKFtbTlNNdXRhYmxlRGF0YSBhbGxvY10gaW5pdF0pOwot
ICAgIGF1dG8gZGVzdGluYXRpb24gPSBhZG9wdENGKENHSW1hZ2VEZXN0aW5hdGlvbkNyZWF0ZVdp
dGhEYXRhKChfX2JyaWRnZSBDRk11dGFibGVEYXRhUmVmKWRhdGEuZ2V0KCksIHR5cGVJZGVudGlm
aWVyLCAxLCBuaWwpKTsKLSAgICBDR0ltYWdlRGVzdGluYXRpb25BZGRJbWFnZShkZXN0aW5hdGlv
bi5nZXQoKSwgaW1hZ2UsIG5pbCk7Ci0gICAgaWYgKCFDR0ltYWdlRGVzdGluYXRpb25GaW5hbGl6
ZShkZXN0aW5hdGlvbi5nZXQoKSkpCi0gICAgICAgIHJldHVybiBuaWw7Ci0KLSAgICByZXR1cm4g
ZGF0YTsKLX0KLQogI2VuZGlmIC8vIEVOQUJMRShJTUFHRV9BTkFMWVNJUykKIAogfSAvLyBuYW1l
c3BhY2UgV2ViS2l0CkBAIC0yNjI2LDcgKzI2MTMsNyBAQCAtICh2b2lkKV9zaG93QXR0YWNobWVu
dFNoZWV0CiAgICAgaWYgKCFbdWlEZWxlZ2F0ZSByZXNwb25kc1RvU2VsZWN0b3I6QHNlbGVjdG9y
KF93ZWJWaWV3OnNob3dDdXN0b21TaGVldEZvckVsZW1lbnQ6KV0pCiAgICAgICAgIHJldHVybjsK
IAotICAgIGF1dG8gZWxlbWVudCA9IGFkb3B0TlMoW1tfV0tBY3RpdmF0ZWRFbGVtZW50SW5mbyBh
bGxvY10gX2luaXRXaXRoVHlwZTpfV0tBY3RpdmF0ZWRFbGVtZW50VHlwZUF0dGFjaG1lbnQgVVJM
OihOU1VSTCAqKV9wb3NpdGlvbkluZm9ybWF0aW9uLnVybCBpbWFnZVVSTDooTlNVUkwgKilfcG9z
aXRpb25JbmZvcm1hdGlvbi5pbWFnZVVSTCBsb2NhdGlvbjpfcG9zaXRpb25JbmZvcm1hdGlvbi5y
ZXF1ZXN0LnBvaW50IHRpdGxlOl9wb3NpdGlvbkluZm9ybWF0aW9uLnRpdGxlIElEOl9wb3NpdGlv
bkluZm9ybWF0aW9uLmlkQXR0cmlidXRlIHJlY3Q6X3Bvc2l0aW9uSW5mb3JtYXRpb24uYm91bmRz
IGltYWdlOm5pbF0pOworICAgIGF1dG8gZWxlbWVudCA9IGFkb3B0TlMoW1tfV0tBY3RpdmF0ZWRF
bGVtZW50SW5mbyBhbGxvY10gX2luaXRXaXRoVHlwZTpfV0tBY3RpdmF0ZWRFbGVtZW50VHlwZUF0
dGFjaG1lbnQgVVJMOihOU1VSTCAqKV9wb3NpdGlvbkluZm9ybWF0aW9uLnVybCBpbWFnZVVSTDoo
TlNVUkwgKilfcG9zaXRpb25JbmZvcm1hdGlvbi5pbWFnZVVSTCBsb2NhdGlvbjpfcG9zaXRpb25J
bmZvcm1hdGlvbi5yZXF1ZXN0LnBvaW50IHRpdGxlOl9wb3NpdGlvbkluZm9ybWF0aW9uLnRpdGxl
IElEOl9wb3NpdGlvbkluZm9ybWF0aW9uLmlkQXR0cmlidXRlIHJlY3Q6X3Bvc2l0aW9uSW5mb3Jt
YXRpb24uYm91bmRzIGltYWdlOm5pbCBpbWFnZU1JTUVUeXBlOl9wb3NpdGlvbkluZm9ybWF0aW9u
LmltYWdlTUlNRVR5cGVdKTsKICAgICBBTExPV19ERVBSRUNBVEVEX0RFQ0xBUkFUSU9OU19CRUdJ
TgogICAgIFt1aURlbGVnYXRlIF93ZWJWaWV3OnNlbGYud2ViVmlldyBzaG93Q3VzdG9tU2hlZXRG
b3JFbGVtZW50OmVsZW1lbnQuZ2V0KCldOwogICAgIEFMTE9XX0RFUFJFQ0FURURfREVDTEFSQVRJ
T05TX0VORApAQCAtNDY5NywxNSArNDY4NCw4IEBAIC0gKHZvaWQpcGVyZm9ybUltYWdlQW5hbHlz
aXNNYXJrdXA6KGlkKXNlbmRlcgogICAgICAgICByZXR1cm47CiAKICAgICBhdXRvIFtlbGVtZW50
Q29udGV4dCwgaW1hZ2UsIHByZWZlcnJlZE1JTUVUeXBlXSA9ICpfaW1hZ2VBbmFseXNpc01hcmt1
cERhdGE7Ci0gICAgYXV0byB0YXJnZXRUeXBlID0gUmV0YWluUHRyIHsgVVRUeXBlVElGRi5pZGVu
dGlmaWVyIH07Ci0gICAgaWYgKCFwcmVmZXJyZWRNSU1FVHlwZS5pc0VtcHR5KCkpIHsKLSAgICAg
ICAgTlNTdHJpbmcgKnByZWZlcnJlZFR5cGVJZGVudGlmaWVyID0gW1VUVHlwZSB0eXBlV2l0aE1J
TUVUeXBlOnByZWZlcnJlZE1JTUVUeXBlIGNvbmZvcm1pbmdUb1R5cGU6VVRUeXBlSW1hZ2VdLmlk
ZW50aWZpZXI7Ci0gICAgICAgIGlmIChXZWJDb3JlOjppc1N1cHBvcnRlZEltYWdlVHlwZShwcmVm
ZXJyZWRUeXBlSWRlbnRpZmllcikpCi0gICAgICAgICAgICB0YXJnZXRUeXBlID0gcHJlZmVycmVk
VHlwZUlkZW50aWZpZXI7Ci0gICAgfQotCi0gICAgaWYgKGF1dG8gZGF0YSA9IFdlYktpdDo6dHJh
bnNjb2RlKGltYWdlLmdldCgpLCAoX19icmlkZ2UgQ0ZTdHJpbmdSZWYpdGFyZ2V0VHlwZS5nZXQo
KSk7IFtkYXRhIGxlbmd0aF0pCi0gICAgICAgIF9wYWdlLT5yZXBsYWNlU2VsZWN0aW9uV2l0aFBh
c3RlYm9hcmREYXRhKHsgU3RyaW5nIHsgdGFyZ2V0VHlwZS5nZXQoKSB9IH0sIHsgc3RhdGljX2Nh
c3Q8Y29uc3QgdWludDhfdCo+KFtkYXRhIGJ5dGVzXSksIFtkYXRhIGxlbmd0aF0gfSk7CisgICAg
aWYgKGF1dG8gW2RhdGEsIHR5cGVdID0gV2ViS2l0Ojp0cmFuc2NvZGVXaXRoUHJlZmVycmVkTUlN
RVR5cGUoaW1hZ2UuZ2V0KCksIHByZWZlcnJlZE1JTUVUeXBlLmNyZWF0ZUNGU3RyaW5nKCkuZ2V0
KCksIChfX2JyaWRnZSBDRlN0cmluZ1JlZilVVFR5cGVUSUZGLmlkZW50aWZpZXIpOyBkYXRhKQor
ICAgICAgICBfcGFnZS0+cmVwbGFjZVNlbGVjdGlvbldpdGhQYXN0ZWJvYXJkRGF0YSh7IFN0cmlu
ZyB7IHR5cGUuZ2V0KCkgfSB9LCB7IHN0YXRpY19jYXN0PGNvbnN0IHVpbnQ4X3QqPihbZGF0YSBi
eXRlc10pLCBbZGF0YSBsZW5ndGhdIH0pOwogfQogCiAtICh2b2lkKWRvQWZ0ZXJDb21wdXRpbmdJ
bWFnZUFuYWx5c2lzUmVzdWx0c0Zvck1hcmt1cDooQ29tcGxldGlvbkhhbmRsZXI8dm9pZCgpPiYm
KWNvbXBsZXRpb24KQEAgLTQ3NDcsMjAgKzQ3MjcsNyBAQCAtICh2b2lkKWRvQWZ0ZXJDb21wdXRp
bmdJbWFnZUFuYWx5c2lzUmVzdWx0c0Zvck1hcmt1cDooQ29tcGxldGlvbkhhbmRsZXI8dm9pZCgp
PgogICAgICAgICAgICAgcmV0dXJuOwogICAgICAgICB9CiAKLSAgICAgICAgLy8gRklYTUU6IENo
ZWNrIHRvIHNlZSBpZiB3ZSBjYW4gYXZvaWQgdGhpcyBleHRyYSB0cmFuc2NvZGluZyBzdGVwIG9u
Y2UgVmlzaW9uS2l0IHN0YXJ0cyB1c2luZyBgbWVkaWFhbmFseXNpc2RgIGZvciB0aGlzLgotICAg
ICAgICBhdXRvIHRpZmZEYXRhID0gV2ViS2l0Ojp0cmFuc2NvZGUoY2dJbWFnZS5nZXQoKSwgKF9f
YnJpZGdlIENGU3RyaW5nUmVmKVVUVHlwZVRJRkYuaWRlbnRpZmllcik7Ci0gICAgICAgIGlmICgh
W3RpZmZEYXRhIGxlbmd0aF0pIHsKLSAgICAgICAgICAgIGNvbXBsZXRpb24oKTsKLSAgICAgICAg
ICAgIHJldHVybjsKLSAgICAgICAgfQotCi0gICAgICAgIFJldGFpblB0ciB0cmFuc2NvZGVkSW1h
Z2UgPSBbVUlJbWFnZSBpbWFnZVdpdGhEYXRhOnRpZmZEYXRhLmdldCgpXTsKLSAgICAgICAgaWYg
KCF0cmFuc2NvZGVkSW1hZ2UpIHsKLSAgICAgICAgICAgIGNvbXBsZXRpb24oKTsKLSAgICAgICAg
ICAgIHJldHVybjsKLSAgICAgICAgfQotCi0gICAgICAgIFdlYktpdDo6cmVxdWVzdEltYWdlQW5h
bHlzaXNNYXJrdXAoW3RyYW5zY29kZWRJbWFnZSBDR0ltYWdlXSwgW3NvdXJjZU1JTUVUeXBlLCBj
b250ZXh0LCBjb21wbGV0aW9uID0gV1RGTW92ZShjb21wbGV0aW9uKSwgd2Vha1NlbGZdKENHSW1h
Z2VSZWYgcmVzdWx0KSBtdXRhYmxlIHsKKyAgICAgICAgV2ViS2l0OjpyZXF1ZXN0SW1hZ2VBbmFs
eXNpc01hcmt1cChjZ0ltYWdlLmdldCgpLCBbc291cmNlTUlNRVR5cGUsIGNvbnRleHQsIGNvbXBs
ZXRpb24gPSBXVEZNb3ZlKGNvbXBsZXRpb24pLCB3ZWFrU2VsZl0oQ0dJbWFnZVJlZiByZXN1bHQp
IG11dGFibGUgewogICAgICAgICAgICAgYXV0byBzdHJvbmdTZWxmID0gd2Vha1NlbGYuZ2V0KCk7
CiAgICAgICAgICAgICBpZiAoIXN0cm9uZ1NlbGYpIHsKICAgICAgICAgICAgICAgICBjb21wbGV0
aW9uKCk7CkBAIC0xMDg3Nyw2ICsxMDg0NCwzMCBAQCAtICh2b2lkKWNhcHR1cmVUZXh0RnJvbUNh
bWVyYUZvcldlYlZpZXc6KGlkKXNlbmRlcgogCiAjZW5kaWYgLy8gRU5BQkxFKElNQUdFX0FOQUxZ
U0lTKQogCisjaWYgRU5BQkxFKElNQUdFX0FOQUxZU0lTX0VOSEFOQ0VNRU5UUykKKworLSAodm9p
ZClhY3Rpb25TaGVldEFzc2lzdGFudDooV0tBY3Rpb25TaGVldEFzc2lzdGFudCAqKWFzc2lzdGFu
dCBjb3B5Q3JvcHBlZEltYWdlOihVSUltYWdlICopaW1hZ2Ugc291cmNlTUlNRVR5cGU6KE5TU3Ry
aW5nICopc291cmNlTUlNRVR5cGUKK3sKKyAgICBhdXRvIGNoYW5nZUNvdW50ID0gVUlQYXN0ZWJv
YXJkLmdlbmVyYWxQYXN0ZWJvYXJkLmNoYW5nZUNvdW50OworICAgIFdlYktpdDo6cmVxdWVzdElt
YWdlQW5hbHlzaXNNYXJrdXAoaW1hZ2UuQ0dJbWFnZSwgW2NoYW5nZUNvdW50LCB3ZWFrU2VsZiA9
IFdlYWtPYmpDUHRyPFdLQ29udGVudFZpZXc+KHNlbGYpLCBvcmlnaW5hbEltYWdlID0gUmV0YWlu
UHRyIHsgaW1hZ2UgfSwgc291cmNlTUlNRVR5cGUgPSBSZXRhaW5QdHIgeyBzb3VyY2VNSU1FVHlw
ZSB9XShDR0ltYWdlUmVmIHJlc3VsdCkgbXV0YWJsZSB7CisgICAgICAgIGF1dG8gc3Ryb25nU2Vs
ZiA9IHdlYWtTZWxmLmdldCgpOworICAgICAgICBpZiAoIXN0cm9uZ1NlbGYpCisgICAgICAgICAg
ICByZXR1cm47CisKKyAgICAgICAgYXV0byBbZGF0YSwgdHlwZV0gPSBXZWJLaXQ6OnRyYW5zY29k
ZVdpdGhQcmVmZXJyZWRNSU1FVHlwZShyZXN1bHQgPzogW29yaWdpbmFsSW1hZ2UgQ0dJbWFnZV0s
IChfX2JyaWRnZSBDRlN0cmluZ1JlZilzb3VyY2VNSU1FVHlwZS5nZXQoKSwgKF9fYnJpZGdlIENG
U3RyaW5nUmVmKVVUVHlwZVRJRkYuaWRlbnRpZmllcik7CisgICAgICAgIGlmICghZGF0YSkKKyAg
ICAgICAgICAgIHJldHVybjsKKworICAgICAgICBbVUlQYXN0ZWJvYXJkIF9wZXJmb3JtQXNEYXRh
T3duZXI6W3N0cm9uZ1NlbGYgX2RhdGFPd25lckZvckNvcHldIGJsb2NrOltkYXRhID0gV1RGTW92
ZShkYXRhKSwgdHlwZSA9IFdURk1vdmUodHlwZSksIGNoYW5nZUNvdW50XSB7CisgICAgICAgICAg
ICBhdXRvIHBhc3RlYm9hcmQgPSBVSVBhc3RlYm9hcmQuZ2VuZXJhbFBhc3RlYm9hcmQ7CisgICAg
ICAgICAgICBpZiAoY2hhbmdlQ291bnQgPT0gcGFzdGVib2FyZC5jaGFuZ2VDb3VudCkKKyAgICAg
ICAgICAgICAgICBbcGFzdGVib2FyZCBzZXREYXRhOmRhdGEuZ2V0KCkgZm9yUGFzdGVib2FyZFR5
cGU6KF9fYnJpZGdlIE5TU3RyaW5nICopdHlwZS5nZXQoKV07CisgICAgICAgIH1dOworICAgIH0p
OworfQorCisjZW5kaWYgLy8gRU5BQkxFKElNQUdFX0FOQUxZU0lTX0VOSEFOQ0VNRU5UUykKKwog
I2lmIFVTRShBUFBMRV9JTlRFUk5BTF9TREspCiAjaW1wb3J0IDxXZWJLaXRBZGRpdGlvbnMvV0tD
b250ZW50Vmlld0ludGVyYWN0aW9uQWRkaXRpb25zQWZ0ZXIubW0+CiAjZWxzZQpAQCAtMTE5NjQs
NyArMTE5NTUsNyBAQCAtIChOU0RpY3Rpb25hcnkgKilfZGF0YUZvclByZXZpZXdJdGVtQ29udHJv
bGxlcjooVUlQcmV2aWV3SXRlbUNvbnRyb2xsZXIgKiljb250cgogICAgICAgICBkYXRhRm9yUHJl
dmlldy5nZXQoKVtVSVByZXZpZXdEYXRhTGlua10gPSAoTlNVUkwgKilfcG9zaXRpb25JbmZvcm1h
dGlvbi5pbWFnZVVSTDsKICAgICB9IGVsc2UgaWYgKGNhblNob3dBdHRhY2htZW50UHJldmlldykg
ewogICAgICAgICAqdHlwZSA9IFVJUHJldmlld0l0ZW1UeXBlQXR0YWNobWVudDsKLSAgICAgICAg
YXV0byBlbGVtZW50ID0gYWRvcHROUyhbW19XS0FjdGl2YXRlZEVsZW1lbnRJbmZvIGFsbG9jXSBf
aW5pdFdpdGhUeXBlOl9XS0FjdGl2YXRlZEVsZW1lbnRUeXBlQXR0YWNobWVudCBVUkw6KE5TVVJM
ICopbGlua1VSTCBpbWFnZVVSTDooTlNVUkwgKilfcG9zaXRpb25JbmZvcm1hdGlvbi5pbWFnZVVS
TCBsb2NhdGlvbjpfcG9zaXRpb25JbmZvcm1hdGlvbi5yZXF1ZXN0LnBvaW50IHRpdGxlOl9wb3Np
dGlvbkluZm9ybWF0aW9uLnRpdGxlIElEOl9wb3NpdGlvbkluZm9ybWF0aW9uLmlkQXR0cmlidXRl
IHJlY3Q6X3Bvc2l0aW9uSW5mb3JtYXRpb24uYm91bmRzIGltYWdlOm5pbF0pOworICAgICAgICBh
dXRvIGVsZW1lbnQgPSBhZG9wdE5TKFtbX1dLQWN0aXZhdGVkRWxlbWVudEluZm8gYWxsb2NdIF9p
bml0V2l0aFR5cGU6X1dLQWN0aXZhdGVkRWxlbWVudFR5cGVBdHRhY2htZW50IFVSTDooTlNVUkwg
KilsaW5rVVJMIGltYWdlVVJMOihOU1VSTCAqKV9wb3NpdGlvbkluZm9ybWF0aW9uLmltYWdlVVJM
IGxvY2F0aW9uOl9wb3NpdGlvbkluZm9ybWF0aW9uLnJlcXVlc3QucG9pbnQgdGl0bGU6X3Bvc2l0
aW9uSW5mb3JtYXRpb24udGl0bGUgSUQ6X3Bvc2l0aW9uSW5mb3JtYXRpb24uaWRBdHRyaWJ1dGUg
cmVjdDpfcG9zaXRpb25JbmZvcm1hdGlvbi5ib3VuZHMgaW1hZ2U6bmlsIGltYWdlTUlNRVR5cGU6
X3Bvc2l0aW9uSW5mb3JtYXRpb24uaW1hZ2VNSU1FVHlwZV0pOwogICAgICAgICBOU1VJbnRlZ2Vy
IGluZGV4ID0gW3VpRGVsZWdhdGUgX3dlYlZpZXc6c2VsZi53ZWJWaWV3IGluZGV4SW50b0F0dGFj
aG1lbnRMaXN0Rm9yRWxlbWVudDplbGVtZW50LmdldCgpXTsKICAgICAgICAgaWYgKGluZGV4ICE9
IE5TTm90Rm91bmQpIHsKICAgICAgICAgICAgIEJPT0wgc291cmNlSXNNYW5hZ2VkID0gTk87CkBA
IC0xMjAwMSw3ICsxMTk5Miw3IEBAIC0gKFVJVmlld0NvbnRyb2xsZXIgKilfcHJlc2VudGVkVmll
d0NvbnRyb2xsZXJGb3JQcmV2aWV3SXRlbUNvbnRyb2xsZXI6KFVJUHJldmllCiAKICAgICAgICAg
Ly8gVHJlYXQgYW5pbWF0ZWQgaW1hZ2VzIGxpa2UgYSBsaW5rIHByZXZpZXcKICAgICAgICAgaWYg
KGlzVmFsaWRVUkxGb3JJbWFnZVByZXZpZXcgJiYgX3Bvc2l0aW9uSW5mb3JtYXRpb24uaXNBbmlt
YXRlZEltYWdlKSB7Ci0gICAgICAgICAgICBSZXRhaW5QdHI8X1dLQWN0aXZhdGVkRWxlbWVudElu
Zm8+IGFuaW1hdGVkSW1hZ2VFbGVtZW50SW5mbyA9IGFkb3B0TlMoW1tfV0tBY3RpdmF0ZWRFbGVt
ZW50SW5mbyBhbGxvY10gX2luaXRXaXRoVHlwZTpfV0tBY3RpdmF0ZWRFbGVtZW50VHlwZUltYWdl
IFVSTDp0YXJnZXRVUkwgaW1hZ2VVUkw6bmlsIGxvY2F0aW9uOl9wb3NpdGlvbkluZm9ybWF0aW9u
LnJlcXVlc3QucG9pbnQgdGl0bGU6X3Bvc2l0aW9uSW5mb3JtYXRpb24udGl0bGUgSUQ6X3Bvc2l0
aW9uSW5mb3JtYXRpb24uaWRBdHRyaWJ1dGUgcmVjdDpfcG9zaXRpb25JbmZvcm1hdGlvbi5ib3Vu
ZHMgaW1hZ2U6X3Bvc2l0aW9uSW5mb3JtYXRpb24uaW1hZ2UuZ2V0KCldKTsKKyAgICAgICAgICAg
IGF1dG8gYW5pbWF0ZWRJbWFnZUVsZW1lbnRJbmZvID0gYWRvcHROUyhbW19XS0FjdGl2YXRlZEVs
ZW1lbnRJbmZvIGFsbG9jXSBfaW5pdFdpdGhUeXBlOl9XS0FjdGl2YXRlZEVsZW1lbnRUeXBlSW1h
Z2UgVVJMOnRhcmdldFVSTCBpbWFnZVVSTDpuaWwgbG9jYXRpb246X3Bvc2l0aW9uSW5mb3JtYXRp
b24ucmVxdWVzdC5wb2ludCB0aXRsZTpfcG9zaXRpb25JbmZvcm1hdGlvbi50aXRsZSBJRDpfcG9z
aXRpb25JbmZvcm1hdGlvbi5pZEF0dHJpYnV0ZSByZWN0Ol9wb3NpdGlvbkluZm9ybWF0aW9uLmJv
dW5kcyBpbWFnZTpfcG9zaXRpb25JbmZvcm1hdGlvbi5pbWFnZS5nZXQoKSBpbWFnZU1JTUVUeXBl
Ol9wb3NpdGlvbkluZm9ybWF0aW9uLmltYWdlTUlNRVR5cGVdKTsKIAogICAgICAgICAgICAgaWYg
KFt1aURlbGVnYXRlIHJlc3BvbmRzVG9TZWxlY3RvcjpAc2VsZWN0b3IoX3dlYlZpZXc6cHJldmll
d1ZpZXdDb250cm9sbGVyRm9yQW5pbWF0ZWRJbWFnZUF0VVJMOmRlZmF1bHRBY3Rpb25zOmVsZW1l
bnRJbmZvOmltYWdlU2l6ZTopXSkgewogICAgICAgICAgICAgICAgIFJldGFpblB0cjxOU0FycmF5
PiBhY3Rpb25zID0gW19hY3Rpb25TaGVldEFzc2lzdGFudCBkZWZhdWx0QWN0aW9uc0ZvckltYWdl
U2hlZXQ6YW5pbWF0ZWRJbWFnZUVsZW1lbnRJbmZvLmdldCgpXTsKQEAgLTEyMDExLDcgKzEyMDAy
LDcgQEAgLSAoVUlWaWV3Q29udHJvbGxlciAqKV9wcmVzZW50ZWRWaWV3Q29udHJvbGxlckZvclBy
ZXZpZXdJdGVtQ29udHJvbGxlcjooVUlQcmV2aWUKICAgICAgICAgICAgIH0KICAgICAgICAgfQog
Ci0gICAgICAgIFJldGFpblB0cjxfV0tBY3RpdmF0ZWRFbGVtZW50SW5mbz4gZWxlbWVudEluZm8g
PSBhZG9wdE5TKFtbX1dLQWN0aXZhdGVkRWxlbWVudEluZm8gYWxsb2NdIF9pbml0V2l0aFR5cGU6
X1dLQWN0aXZhdGVkRWxlbWVudFR5cGVMaW5rIFVSTDp0YXJnZXRVUkwgaW1hZ2VVUkw6bmlsIGxv
Y2F0aW9uOl9wb3NpdGlvbkluZm9ybWF0aW9uLnJlcXVlc3QucG9pbnQgdGl0bGU6X3Bvc2l0aW9u
SW5mb3JtYXRpb24udGl0bGUgSUQ6X3Bvc2l0aW9uSW5mb3JtYXRpb24uaWRBdHRyaWJ1dGUgcmVj
dDpfcG9zaXRpb25JbmZvcm1hdGlvbi5ib3VuZHMgaW1hZ2U6X3Bvc2l0aW9uSW5mb3JtYXRpb24u
aW1hZ2UuZ2V0KCldKTsKKyAgICAgICAgYXV0byBlbGVtZW50SW5mbyA9IGFkb3B0TlMoW1tfV0tB
Y3RpdmF0ZWRFbGVtZW50SW5mbyBhbGxvY10gX2luaXRXaXRoVHlwZTpfV0tBY3RpdmF0ZWRFbGVt
ZW50VHlwZUxpbmsgVVJMOnRhcmdldFVSTCBpbWFnZVVSTDpuaWwgbG9jYXRpb246X3Bvc2l0aW9u
SW5mb3JtYXRpb24ucmVxdWVzdC5wb2ludCB0aXRsZTpfcG9zaXRpb25JbmZvcm1hdGlvbi50aXRs
ZSBJRDpfcG9zaXRpb25JbmZvcm1hdGlvbi5pZEF0dHJpYnV0ZSByZWN0Ol9wb3NpdGlvbkluZm9y
bWF0aW9uLmJvdW5kcyBpbWFnZTpfcG9zaXRpb25JbmZvcm1hdGlvbi5pbWFnZS5nZXQoKSBpbWFn
ZU1JTUVUeXBlOl9wb3NpdGlvbkluZm9ybWF0aW9uLmltYWdlTUlNRVR5cGVdKTsKIAogICAgICAg
ICBhdXRvIGFjdGlvbnMgPSBbX2FjdGlvblNoZWV0QXNzaXN0YW50IGRlZmF1bHRBY3Rpb25zRm9y
TGlua1NoZWV0OmVsZW1lbnRJbmZvLmdldCgpXTsKICAgICAgICAgaWYgKFt1aURlbGVnYXRlIHJl
c3BvbmRzVG9TZWxlY3RvcjpAc2VsZWN0b3Iod2ViVmlldzpwcmV2aWV3aW5nVmlld0NvbnRyb2xs
ZXJGb3JFbGVtZW50OmRlZmF1bHRBY3Rpb25zOildKSB7CkBAIC0xMjA1Niw3ICsxMjA0Nyw3IEBA
IC0gKFVJVmlld0NvbnRyb2xsZXIgKilfcHJlc2VudGVkVmlld0NvbnRyb2xsZXJGb3JQcmV2aWV3
SXRlbUNvbnRyb2xsZXI6KFVJUHJldmllCiAgICAgICAgICAgICBpbWFnZUluZm8gPSB1c2VySW5m
bzsKICAgICAgICAgfQogCi0gICAgICAgIFJldGFpblB0cjxfV0tBY3RpdmF0ZWRFbGVtZW50SW5m
bz4gZWxlbWVudEluZm8gPSBhZG9wdE5TKFtbX1dLQWN0aXZhdGVkRWxlbWVudEluZm8gYWxsb2Nd
IF9pbml0V2l0aFR5cGU6X1dLQWN0aXZhdGVkRWxlbWVudFR5cGVJbWFnZSBVUkw6YWx0ZXJuYXRl
VVJMLmdldCgpIGltYWdlVVJMOm5pbCBsb2NhdGlvbjpfcG9zaXRpb25JbmZvcm1hdGlvbi5yZXF1
ZXN0LnBvaW50IHRpdGxlOl9wb3NpdGlvbkluZm9ybWF0aW9uLnRpdGxlIElEOl9wb3NpdGlvbklu
Zm9ybWF0aW9uLmlkQXR0cmlidXRlIHJlY3Q6X3Bvc2l0aW9uSW5mb3JtYXRpb24uYm91bmRzIGlt
YWdlOl9wb3NpdGlvbkluZm9ybWF0aW9uLmltYWdlLmdldCgpIHVzZXJJbmZvOmltYWdlSW5mby5n
ZXQoKV0pOworICAgICAgICBhdXRvIGVsZW1lbnRJbmZvID0gYWRvcHROUyhbW19XS0FjdGl2YXRl
ZEVsZW1lbnRJbmZvIGFsbG9jXSBfaW5pdFdpdGhUeXBlOl9XS0FjdGl2YXRlZEVsZW1lbnRUeXBl
SW1hZ2UgVVJMOmFsdGVybmF0ZVVSTC5nZXQoKSBpbWFnZVVSTDpuaWwgbG9jYXRpb246X3Bvc2l0
aW9uSW5mb3JtYXRpb24ucmVxdWVzdC5wb2ludCB0aXRsZTpfcG9zaXRpb25JbmZvcm1hdGlvbi50
aXRsZSBJRDpfcG9zaXRpb25JbmZvcm1hdGlvbi5pZEF0dHJpYnV0ZSByZWN0Ol9wb3NpdGlvbklu
Zm9ybWF0aW9uLmJvdW5kcyBpbWFnZTpfcG9zaXRpb25JbmZvcm1hdGlvbi5pbWFnZS5nZXQoKSBp
bWFnZU1JTUVUeXBlOl9wb3NpdGlvbkluZm9ybWF0aW9uLmltYWdlTUlNRVR5cGUgdXNlckluZm86
aW1hZ2VJbmZvLmdldCgpXSk7CiAgICAgICAgIF9wYWdlLT5zdGFydEludGVyYWN0aW9uV2l0aFBv
c2l0aW9uSW5mb3JtYXRpb24oX3Bvc2l0aW9uSW5mb3JtYXRpb24pOwogCiAgICAgICAgIEFMTE9X
X0RFUFJFQ0FURURfREVDTEFSQVRJT05TX0JFR0lOCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0
L1dlYktpdC54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qIGIvU291cmNlL1dlYktpdC9XZWJLaXQu
eGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagppbmRleCBiZjNkODBlZjZiODk5NWE4MThiNzQwYWUw
NTBkMWQwM2RiMjVjY2MwLi45MTZiMTZiNzVhMWJjZWE3MGRlNzU3NDIwYTBlNDc0ODdhYmYxM2Vh
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYktpdC54Y29kZXByb2ovcHJvamVjdC5wYnhw
cm9qCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViS2l0Lnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oK
QEAgLTY1ODYsNiArNjU4Niw3IEBACiAJCUY0REJDMEJEMjc2QUE2QTcwMDAxRDE2OSAvKiBfV0tN
b2RhbENvbnRhaW5lckluZm8ubW0gKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVu
Y29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5vYmpjcHA7IHBh
dGggPSBfV0tNb2RhbENvbnRhaW5lckluZm8ubW07IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07
CiAJCUY0REJDMEMwMjc2QUE2Q0EwMDAxRDE2OSAvKiBfV0tNb2RhbENvbnRhaW5lckluZm9JbnRl
cm5hbC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0g
c291cmNlY29kZS5jLmg7IHBhdGggPSBfV0tNb2RhbENvbnRhaW5lckluZm9JbnRlcm5hbC5oOyBz
b3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlGNEUyQjQ0QTI2OEZERTFBMDAzMjdBQkMgLyog
VGFwSGFuZGxpbmdSZXN1bHQuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25v
d25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBuYW1lID0gVGFwSGFuZGxpbmdSZXN1bHQuaDsg
cGF0aCA9IGlvcy9UYXBIYW5kbGluZ1Jlc3VsdC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9
OworCQlGNEU0N0JCNTI3QjVBRTVCMDA4MTNCMzggLyogQ29jb2FJbWFnZS5tbSAqLyA9IHtpc2Eg
PSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLm9i
amNwcDsgcGF0aCA9IENvY29hSW1hZ2UubW07IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJ
CUY0RUI0QUZDMjY5Q0QyMzYwMEQyOTdBRSAvKiBPU1N0YXRlU1BJLmggKi8gPSB7aXNhID0gUEJY
RmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9
IE9TU3RhdGVTUEkuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJRjRGNTlBRDMyMDY1
QTVDOTAwNkNBQTQ2IC8qIFdLU2VsZWN0TWVudUxpc3RWaWV3Q29udHJvbGxlci5tbSAqLyA9IHtp
c2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlw
ZSA9IHNvdXJjZWNvZGUuY3BwLm9iamNwcDsgbmFtZSA9IFdLU2VsZWN0TWVudUxpc3RWaWV3Q29u
dHJvbGxlci5tbTsgcGF0aCA9IGlvcy9mb3Jtcy9XS1NlbGVjdE1lbnVMaXN0Vmlld0NvbnRyb2xs
ZXIubW07IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUY0RjU5QUQ0MjA2NUE1Q0EwMDZD
QUE0NiAvKiBXS1NlbGVjdE1lbnVMaXN0Vmlld0NvbnRyb2xsZXIuaCAqLyA9IHtpc2EgPSBQQlhG
aWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJj
ZWNvZGUuYy5oOyBuYW1lID0gV0tTZWxlY3RNZW51TGlzdFZpZXdDb250cm9sbGVyLmg7IHBhdGgg
PSBpb3MvZm9ybXMvV0tTZWxlY3RNZW51TGlzdFZpZXdDb250cm9sbGVyLmg7IHNvdXJjZVRyZWUg
PSAiPGdyb3VwPiI7IH07CkBAIC05MzQyLDYgKzkzNDMsNyBAQAogCQkJaXNhID0gUEJYR3JvdXA7
CiAJCQljaGlsZHJlbiA9ICgKIAkJCQk0NDgyNzM0NjI0NTI4RjYwMDBBOTU0OTMgLyogQ29jb2FJ
bWFnZS5oICovLAorCQkJCUY0RTQ3QkI1MjdCNUFFNUIwMDgxM0IzOCAvKiBDb2NvYUltYWdlLm1t
ICovLAogCQkJCUJDRTA5Mzc2MTRGQjEyOEIwMDExMzhEOSAvKiBMYXllckhvc3RpbmdDb250ZXh0
LmggKi8sCiAJCQkJQkNFMDkzNzUxNEZCMTI4QjAwMTEzOEQ5IC8qIExheWVySG9zdGluZ0NvbnRl
eHQubW0gKi8sCiAJCQkJQTE3OThCM0QyMjJEOTdBMjAwMDc2NEJEIC8qIFBheW1lbnRBdXRob3Jp
emF0aW9uUHJlc2VudGVyLmggKi8sCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nl
c3MvV2ViUGFnZS9pb3MvV2ViUGFnZUlPUy5tbSBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9X
ZWJQYWdlL2lvcy9XZWJQYWdlSU9TLm1tCmluZGV4IDJhMTFkY2EwMmU4MmMwN2MwYWY0MDE5OTNl
NjEwZDM1ZWRkYTU1OWEuLjEwZjhjMjRmMjE1NDFiMzNkYWY4Nzg4YjlkZGEzN2EzYWNiMDcyODIg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL2lvcy9XZWJQYWdl
SU9TLm1tCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL2lvcy9XZWJQYWdl
SU9TLm1tCkBAIC0yODQ1LDYgKzI4NDUsNyBAQCBzdGF0aWMgdm9pZCBpbWFnZVBvc2l0aW9uSW5m
b3JtYXRpb24oV2ViUGFnZSYgcGFnZSwgRWxlbWVudCYgZWxlbWVudCwgY29uc3QgSW50ZQogICAg
IGF1dG8mIFtyZW5kZXJJbWFnZSwgaW1hZ2VdID0gKnJlbmRlcmVyQW5kSW1hZ2U7CiAgICAgaW5m
by5pc0ltYWdlID0gdHJ1ZTsKICAgICBpbmZvLmltYWdlVVJMID0gZWxlbWVudC5kb2N1bWVudCgp
LmNvbXBsZXRlVVJMKHJlbmRlckltYWdlLmNhY2hlZEltYWdlKCktPnVybCgpLnN0cmluZygpKTsK
KyAgICBpbmZvLmltYWdlTUlNRVR5cGUgPSBpbWFnZS5taW1lVHlwZSgpOwogICAgIGluZm8uaXNB
bmltYXRlZEltYWdlID0gaW1hZ2UuaXNBbmltYXRlZCgpOwogICAgIGluZm8uZWxlbWVudENvbnRh
aW5zSW1hZ2VPdmVybGF5ID0gaXM8SFRNTEVsZW1lbnQ+KGVsZW1lbnQpICYmIEltYWdlT3Zlcmxh
eTo6aGFzT3ZlcmxheShkb3duY2FzdDxIVE1MRWxlbWVudD4oZWxlbWVudCkpOwogCkBAIC0yOTEx
LDYgKzI5MTIsNyBAQCBzdGF0aWMgdm9pZCBlbGVtZW50UG9zaXRpb25JbmZvcm1hdGlvbihXZWJQ
YWdlJiBwYWdlLCBFbGVtZW50JiBlbGVtZW50LCBjb25zdCBJbgogICAgICAgICAgICAgICAgIGlm
IChhdXRvIHJlbmRlcmVyQW5kSW1hZ2UgPSBpbWFnZVJlbmRlcmVyQW5kSW1hZ2UoZWxlbWVudCkp
IHsKICAgICAgICAgICAgICAgICAgICAgYXV0byYgW3JlbmRlckltYWdlLCBpbWFnZV0gPSAqcmVu
ZGVyZXJBbmRJbWFnZTsKICAgICAgICAgICAgICAgICAgICAgaW5mby5pbWFnZVVSTCA9IGVsZW1l
bnQuZG9jdW1lbnQoKS5jb21wbGV0ZVVSTChyZW5kZXJJbWFnZS5jYWNoZWRJbWFnZSgpLT51cmwo
KS5zdHJpbmcoKSk7CisgICAgICAgICAgICAgICAgICAgIGluZm8uaW1hZ2VNSU1FVHlwZSA9IGlt
YWdlLm1pbWVUeXBlKCk7CiAgICAgICAgICAgICAgICAgICAgIGluZm8uaW1hZ2UgPSBjcmVhdGVT
aGFyZWFibGVCaXRtYXAocmVuZGVySW1hZ2UsIHsgc2NyZWVuU2l6ZSgpICogcGFnZS5jb3JlUGFn
ZSgpLT5kZXZpY2VTY2FsZUZhY3RvcigpLCBBbGxvd0FuaW1hdGVkSW1hZ2VzOjpZZXMsIFVzZVNu
YXBzaG90Rm9yVHJhbnNwYXJlbnRJbWFnZXM6OlllcyB9KTsKICAgICAgICAgICAgICAgICB9CiAg
ICAgICAgICAgICB9Cg==
</data>
<flag name="review"
          id="478556"
          type_id="1"
          status="+"
          setter="hi"
    />
          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>451747</attachid>
            <date>2022-02-11 14:43:03 -0800</date>
            <delta_ts>2022-02-11 17:13:21 -0800</delta_ts>
            <desc>For landing</desc>
            <filename>bug-236511-20220211144302.patch</filename>
            <type>text/plain</type>
            <size>45165</size>
            <attacher name="Wenson Hsieh">wenson_hsieh</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjg5NjY1CmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL0NoYW5n
ZUxvZyBiL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCmluZGV4IDI0NmJlODA1NzJjYWRmZmYwMzU5OTQ5
ZWEwYTQxNWIyNWI3NjVlNDIuLjk1YmQxYTY0YTEzZTI3N2JhMzAzNTY5NWI4YmYzMTZkODE4NmMy
ZDggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XVEYvQ2hh
bmdlTG9nCkBAIC0xLDMgKzEsMTYgQEAKKzIwMjItMDItMTEgIFdlbnNvbiBIc2llaCAgPHdlbnNv
bl9oc2llaEBhcHBsZS5jb20+CisKKyAgICAgICAgW2lPU10gQWRkIGEgIkNvcHkgQ3JvcHBlZCBJ
bWFnZSIgY29udGV4dCBtZW51IGl0ZW0gd2hlbiBsb25nIHByZXNzaW5nIGltYWdlcworICAgICAg
ICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjM2NTExCisgICAgICAg
IHJkYXI6Ly84ODgxNzIxOQorCisgICAgICAgIFJldmlld2VkIGJ5IERldmluIFJvdXNzby4KKwor
ICAgICAgICBBZGQgYSBjb21waWxlLXRpbWUgZmxhZyB0byBndWFyZCBhdmFpbGFiaWxpdHkgb2Yg
dGhlIFVuaWZvcm1UeXBlSWRlbnRpZmllcnMgZnJhbWV3b3JrLiBTZWUgV2ViS2l0L0NoYW5nZUxv
ZyBmb3IKKyAgICAgICAgbW9yZSBpbmZvcm1hdGlvbi4KKworICAgICAgICAqIHd0Zi9QbGF0Zm9y
bUhhdmUuaDoKKwogMjAyMi0wMi0xMSAgRWxsaW90dCBXaWxsaWFtcyAgPGVtd0BhcHBsZS5jb20+
CiAKICAgICAgICAgRml4IGhlYWRlcnMgaW4gaW5zdGFsbCBidWlsZHMgYW5kIGFkZCB1bnRyYWNr
ZWQgaGVhZGVycwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cgYi9Tb3VyY2Uv
V2ViS2l0L0NoYW5nZUxvZwppbmRleCBhYTc0YTQ3YzE5NjMzNWRlYTUxZmYwZjVmOWZiNGZhODk4
ZjBhM2M4Li44MGY5Y2E3OWMxZWNlYTQwNzBlMTI1YjNiNDU0MzM4NjkxNTEwNzI3IDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxv
ZwpAQCAtMSwzICsxLDk2IEBACisyMDIyLTAyLTExICBXZW5zb24gSHNpZWggIDx3ZW5zb25faHNp
ZWhAYXBwbGUuY29tPgorCisgICAgICAgIFtpT1NdIEFkZCBhICJDb3B5IENyb3BwZWQgSW1hZ2Ui
IGNvbnRleHQgbWVudSBpdGVtIHdoZW4gbG9uZyBwcmVzc2luZyBpbWFnZXMKKyAgICAgICAgaHR0
cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIzNjUxMQorICAgICAgICByZGFy
Oi8vODg4MTcyMTkKKworICAgICAgICBSZXZpZXdlZCBieSBEZXZpbiBSb3Vzc28uCisKKyAgICAg
ICAgQWRkIHN1cHBvcnQgZm9yIGEgbmV3IGNvbnRleHQgbWVudSBpdGVtIG9uIGlPUyB0aGF0IGFs
bG93cyB0aGUgdXNlciB0byBjb3B5IGEgY3JvcHBlZCB2ZXJzaW9uIG9mIHRoZSBzb3VyY2UKKyAg
ICAgICAgaW1hZ2UsIGFmdGVyIGludm9raW5nIG1hcmt1cCBVSS4gU2VlIGJlbG93IGZvciBtb3Jl
IGRldGFpbHMuCisKKyAgICAgICAgKiBDb25maWd1cmF0aW9ucy9XZWJLaXQueGNjb25maWc6CisK
KyAgICAgICAgTGluayBhZ2FpbnN0IFVuaWZvcm1UeXBlSWRlbnRpZmllcnMgb24gbWFjT1MgMTEr
LCByYXRoZXIgdGhhbiBtYWNPUyAxMisuCisKKyAgICAgICAgKiBQbGF0Zm9ybS9jb2NvYS9Db2Nv
YUltYWdlLmg6CisgICAgICAgICogUGxhdGZvcm0vY29jb2EvQ29jb2FJbWFnZS5tbToKKyAgICAg
ICAgKFdlYktpdDo6dHJhbnNjb2RlKToKKyAgICAgICAgKFdlYktpdDo6dHJhbnNjb2RlV2l0aFBy
ZWZlcnJlZE1JTUVUeXBlKToKKworICAgICAgICBNb3ZlIGEgaGVscGVyIGZ1bmN0aW9uIHRoYXQg
dHJhbnNjb2RlcyBhbiBpbWFnZSB0byBhIGdpdmVuIFVUSSBpbnRvIENvY29hSW1hZ2UuaCwgYXMg
YSBzdGFuZGFsb25lIGZ1bmN0aW9uLgorICAgICAgICBBbHNvLCBhZGQgYSBzZXBhcmF0ZSBoZWxw
ZXIgZnVuY3Rpb24gaGVyZSB0aGF0IHRyYW5zY29kZXMgYW4gaW1hZ2UgdG8gYSBnaXZlbiBNSU1F
IHR5cGUgKHdpdGggYSBmYWxsYmFjayBVVEksIGluCisgICAgICAgIGNhc2UgdGhlIE1JTUUgdHlw
ZSBjYW5ub3QgYmUgbWFwcGVkIHRvIGEgc3VpdGFibGUgVVRJIHRoYXQgY29uZm9ybXMgdG8gYW55
IGltYWdlIFVUSSkuIFRoZSBuZXcgY2FsbCBzaXRlcyBvZgorICAgICAgICB0aGlzIGZ1bmN0aW9u
IGFyZSBpbiBXS0NvbnRlbnRWaWV3SW50ZXJhY3Rpb24ubW0uCisKKyAgICAgICAgKiBQbGF0Zm9y
bS9jb2NvYS9UZXh0UmVjb2duaXRpb25VdGlsaXRpZXMubW06CisgICAgICAgICogU2hhcmVkL2lv
cy9JbnRlcmFjdGlvbkluZm9ybWF0aW9uQXRQb3NpdGlvbi5oOgorICAgICAgICAqIFNoYXJlZC9p
b3MvSW50ZXJhY3Rpb25JbmZvcm1hdGlvbkF0UG9zaXRpb24ubW06CisgICAgICAgIChXZWJLaXQ6
OkludGVyYWN0aW9uSW5mb3JtYXRpb25BdFBvc2l0aW9uOjplbmNvZGUgY29uc3QpOgorICAgICAg
ICAoV2ViS2l0OjpJbnRlcmFjdGlvbkluZm9ybWF0aW9uQXRQb3NpdGlvbjo6ZGVjb2RlKToKKwor
ICAgICAgICBBZGQgYSBuZXcgYGltYWdlTUlNRVR5cGVgIG1lbWJlciB0byByZXByZXNlbnQgdGhl
IE1JTUUgdHlwZSBvZiB0aGUgc291cmNlIGltYWdlIHVzZWQgdG8gZ2VuZXJhdGUgdGhlIGJpdG1h
cAorICAgICAgICBpbWFnZSBkYXRhIGluIGBpbWFnZWAuCisKKyAgICAgICAgKiBTb3VyY2VzQ29j
b2EudHh0OiBBZGQgQ29jb2FJbWFnZS5tbS4KKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL0NvY29h
L19XS0FjdGl2YXRlZEVsZW1lbnRJbmZvLm1tOgorICAgICAgICAoLVtfV0tBY3RpdmF0ZWRFbGVt
ZW50SW5mbyBfaW5pdFdpdGhJbnRlcmFjdGlvbkluZm9ybWF0aW9uQXRQb3NpdGlvbjp1c2VySW5m
bzpdKToKKyAgICAgICAgKC1bX1dLQWN0aXZhdGVkRWxlbWVudEluZm8gX2luaXRXaXRoVHlwZTpV
Ukw6aW1hZ2VVUkw6bG9jYXRpb246dGl0bGU6SUQ6cmVjdDppbWFnZTppbWFnZU1JTUVUeXBlOl0p
OgorICAgICAgICAoLVtfV0tBY3RpdmF0ZWRFbGVtZW50SW5mbyBfaW5pdFdpdGhUeXBlOlVSTDpp
bWFnZVVSTDpsb2NhdGlvbjp0aXRsZTpJRDpyZWN0OmltYWdlOmltYWdlTUlNRVR5cGU6dXNlcklu
Zm86XSk6CisgICAgICAgICgtW19XS0FjdGl2YXRlZEVsZW1lbnRJbmZvIGltYWdlTUlNRVR5cGVd
KToKKworICAgICAgICBBZGQgcGx1bWJpbmcgZm9yIGBpbWFnZU1JTUVUeXBlYCBmcm9tIEludGVy
YWN0aW9uSW5mb3JtYXRpb25BdFBvc2l0aW9uIChwb3NpdGlvbiBpbmZvcm1hdGlvbikgaW50bwor
ICAgICAgICBfV0tBY3RpdmF0ZWRFbGVtZW50SW5mbywgYXMgYW4gaW50ZXJuYWwgbWV0aG9kLiBX
ZSB1c2UgdGhpcyBpbmZvcm1hdGlvbiBiZWxvdywgdG8gdHJhbnNjb2RlIHRoZSByZXN1bHRpbmcg
aW1hZ2UKKyAgICAgICAgYmFjayB0byB0aGUgc291cmNlIGltYWdlIGZvcm1hdCBhZnRlciBhcHBs
eWluZyBtYXJrdXAsIHdoZW4gaW52b2tpbmcgdGhlIG5ldyAiQ29weSBDcm9wcGVkIEltYWdlIiBp
dGVtLgorCisgICAgICAgICgtW19XS0FjdGl2YXRlZEVsZW1lbnRJbmZvIF9pbml0V2l0aFR5cGU6
VVJMOmltYWdlVVJMOmxvY2F0aW9uOnRpdGxlOklEOnJlY3Q6aW1hZ2U6XSk6IERlbGV0ZWQuCisg
ICAgICAgICgtW19XS0FjdGl2YXRlZEVsZW1lbnRJbmZvIF9pbml0V2l0aFR5cGU6VVJMOmltYWdl
VVJMOmxvY2F0aW9uOnRpdGxlOklEOnJlY3Q6aW1hZ2U6dXNlckluZm86XSk6IERlbGV0ZWQuCisg
ICAgICAgICogVUlQcm9jZXNzL0FQSS9Db2NvYS9fV0tBY3RpdmF0ZWRFbGVtZW50SW5mb0ludGVy
bmFsLmg6CisgICAgICAgICogVUlQcm9jZXNzL0FQSS9Db2NvYS9fV0tFbGVtZW50QWN0aW9uLmg6
CisgICAgICAgICogVUlQcm9jZXNzL0FQSS9Db2NvYS9fV0tFbGVtZW50QWN0aW9uLm1tOgorICAg
ICAgICAoK1tfV0tFbGVtZW50QWN0aW9uIF9lbGVtZW50QWN0aW9uV2l0aFR5cGU6Y3VzdG9tVGl0
bGU6YXNzaXN0YW50Ol0pOgorICAgICAgICAoK1tfV0tFbGVtZW50QWN0aW9uIGltYWdlRm9yRWxl
bWVudEFjdGlvblR5cGU6XSk6CisKKyAgICAgICAgQWRkIHN1cHBvcnQgZm9yIHRoZSBuZXcgIkNv
cHkgQ3JvcHBlZCBJbWFnZSIgaXRlbSB0YWcgKGBfV0tFbGVtZW50QWN0aW9uVHlwZUNvcHlDcm9w
cGVkSW1hZ2VgKS4KKworICAgICAgICAoZWxlbWVudEFjdGlvblR5cGVUb1VJQWN0aW9uSWRlbnRp
Zmllcik6CisgICAgICAgICh1aUFjdGlvbklkZW50aWZpZXJUb0VsZW1lbnRBY3Rpb25UeXBlKToK
KyAgICAgICAgKiBVSVByb2Nlc3MvaW9zL1dLQWN0aW9uU2hlZXRBc3Npc3RhbnQuaDoKKyAgICAg
ICAgKiBVSVByb2Nlc3MvaW9zL1dLQWN0aW9uU2hlZXRBc3Npc3RhbnQubW06CisgICAgICAgICgt
W1dLQWN0aW9uU2hlZXRBc3Npc3RhbnQgc2hvd0ltYWdlU2hlZXRdKToKKyAgICAgICAgKC1bV0tB
Y3Rpb25TaGVldEFzc2lzdGFudCBkZWZhdWx0QWN0aW9uc0ZvckxpbmtTaGVldDpdKToKKyAgICAg
ICAgKC1bV0tBY3Rpb25TaGVldEFzc2lzdGFudCBkZWZhdWx0QWN0aW9uc0ZvckltYWdlU2hlZXQ6
XSk6CisgICAgICAgICgtW1dLQWN0aW9uU2hlZXRBc3Npc3RhbnQgc2hvd0xpbmtTaGVldF0pOgor
ICAgICAgICAoLVtXS0FjdGlvblNoZWV0QXNzaXN0YW50IGhhbmRsZUVsZW1lbnRBY3Rpb25XaXRo
VHlwZTplbGVtZW50Om5lZWRzSW50ZXJhY3Rpb246XSk6CisgICAgICAgICogVUlQcm9jZXNzL2lv
cy9XS0NvbnRlbnRWaWV3SW50ZXJhY3Rpb24ubW06CisgICAgICAgICgtW1dLQ29udGVudFZpZXcg
X3Nob3dBdHRhY2htZW50U2hlZXRdKToKKyAgICAgICAgKC1bV0tDb250ZW50VmlldyBwZXJmb3Jt
SW1hZ2VBbmFseXNpc01hcmt1cDpdKToKKworICAgICAgICBVc2UgdGhlIG5ldyBgdHJhbnNjb2Rl
V2l0aFByZWZlcnJlZE1JTUVUeXBlYCBoZWxwZXIgbWV0aG9kIGhlcmUuCisKKyAgICAgICAgKC1b
V0tDb250ZW50VmlldyBkb0FmdGVyQ29tcHV0aW5nSW1hZ2VBbmFseXNpc1Jlc3VsdHNGb3JNYXJr
dXA6XSk6CisKKyAgICAgICAgUmVtb3ZlIHRoZSBUSUZGIHRyYW5zY29kaW5nIHdvcmthcm91bmQg
ZnJvbSB0aGlzIG1ldGhvZCAoc2VlIGFzc29jaWF0ZWQgY2hhbmdlcyBpbiBSYWRhciBmb3IgbW9y
ZSBpbmZvcm1hdGlvbikuCisKKyAgICAgICAgKC1bV0tDb250ZW50VmlldyBhY3Rpb25TaGVldEFz
c2lzdGFudDpjb3B5Q3JvcHBlZEltYWdlOnNvdXJjZU1JTUVUeXBlOl0pOgorCisgICAgICAgIEhh
bmRsZSB0aGUgbmV3IGFjdGlvbiBieSBjYWxsaW5nIGludG8gVmlzaW9uS2l0IHRvIGFkanVzdCB0
aGUgc291cmNlIGltYWdlIGFzIG5lZWRlZCwgYW5kIHRoZW4gdHJhbnNjb2RlIHRoZQorICAgICAg
ICByZXN1bHRpbmcgQ0dJbWFnZVJlZiBiYWNrIHRvIGEgZm9ybWF0IHRoYXQgbWF0Y2hlcyB0aGUg
c291cmNlIGltYWdlOyBmaW5hbGx5LCB3cml0ZSB0aGlzIHRyYW5zY29kZWQKKyAgICAgICAgcmVw
cmVzZW50YXRpb24gdG8gdGhlIGdlbmVyYWwgcGFzdGVib2FyZC4KKworICAgICAgICAoLVtXS0Nv
bnRlbnRWaWV3IF9kYXRhRm9yUHJldmlld0l0ZW1Db250cm9sbGVyOmF0UG9zaXRpb246dHlwZTpd
KToKKyAgICAgICAgKC1bV0tDb250ZW50VmlldyBfcHJlc2VudGVkVmlld0NvbnRyb2xsZXJGb3JQ
cmV2aWV3SXRlbUNvbnRyb2xsZXI6XSk6CisKKyAgICAgICAgUGFzcyBgaW1hZ2VNSU1FVHlwZWAg
ZnJvbSBwb3NpdGlvbiBpbmZvcm1hdGlvbiBpbnRvIHRoZSBhY3RpdmF0ZWQgZWxlbWVudCBpbmZv
IGluaXRpYWxpemVyIGluIHNldmVyYWwgcGxhY2VzLgorCisgICAgICAgIChXZWJLaXQ6OnRyYW5z
Y29kZSk6IERlbGV0ZWQuCisgICAgICAgICogV2ViS2l0Lnhjb2RlcHJvai9wcm9qZWN0LnBieHBy
b2o6CisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJQYWdlL2lvcy9XZWJQYWdlSU9TLm1tOgorICAg
ICAgICAoV2ViS2l0OjppbWFnZVBvc2l0aW9uSW5mb3JtYXRpb24pOgorICAgICAgICAoV2ViS2l0
OjplbGVtZW50UG9zaXRpb25JbmZvcm1hdGlvbik6CisKKyAgICAgICAgUG9wdWxhdGUgYGltYWdl
TUlNRVR5cGVgIGluIHBvc2l0aW9uIGluZm9ybWF0aW9uLgorCiAyMDIyLTAyLTExICBXZW5zb24g
SHNpZWggIDx3ZW5zb25faHNpZWhAYXBwbGUuY29tPgogCiAgICAgICAgIFVucmV2aWV3ZWQsIGZp
eCB0aGUgQXBwbGUgVFYgYnVpbGQKZGlmZiAtLWdpdCBhL1NvdXJjZS9XVEYvd3RmL1BsYXRmb3Jt
SGF2ZS5oIGIvU291cmNlL1dURi93dGYvUGxhdGZvcm1IYXZlLmgKaW5kZXggNGRjYTVhMjYwN2Uy
YTcwZDk2ODg5YWVhMGFmZGVhYzc5NjAyYjI2My4uNjE5ZGQ1MDY4MDU0OWM3MTUyY2Q3NTZjMTZi
N2FkODI5ZDJhYjJiMSAxMDA2NDQKLS0tIGEvU291cmNlL1dURi93dGYvUGxhdGZvcm1IYXZlLmgK
KysrIGIvU291cmNlL1dURi93dGYvUGxhdGZvcm1IYXZlLmgKQEAgLTExMzEsNiArMTEzMSwxMCBA
QAogI2RlZmluZSBIQVZFX1VOSUZJRURfU1BFRUNIU1lOVEhFU0lTX0ZJWF9GT1JfODE0NjUxNjQg
MQogI2VuZGlmCiAKKyNpZiBQTEFURk9STShJT1NfRkFNSUxZKSB8fCAoUExBVEZPUk0oTUFDKSAm
JiBfX01BQ19PU19YX1ZFUlNJT05fTUlOX1JFUVVJUkVEID49IDExMDAwMCkKKyNkZWZpbmUgSEFW
RV9VTklGT1JNX1RZUEVfSURFTlRJRklFUlNfRlJBTUVXT1JLIDEKKyNlbmRpZgorCiAjaWYgUExB
VEZPUk0oQ09DT0EpCiAjZGVmaW5lIEhBVkVfQVZfREVMRUdBVElOR19QTEFZQkFDS19DT09SRElO
QVRPUiAxCiAjZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvQ29uZmlndXJhdGlvbnMv
V2ViS2l0LnhjY29uZmlnIGIvU291cmNlL1dlYktpdC9Db25maWd1cmF0aW9ucy9XZWJLaXQueGNj
b25maWcKaW5kZXggNjU4YmUzYTFhZGZkYTA3NDA1ZGQwMzhmNzFmODY1MjM3NzFmZTAxNi4uZTI0
ZDE5ZDgyM2RhZjIwMGMyODI0YmFhODQ0MTMzMWEwOTViNjExNSAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYktpdC9Db25maWd1cmF0aW9ucy9XZWJLaXQueGNjb25maWcKKysrIGIvU291cmNlL1dlYktp
dC9Db25maWd1cmF0aW9ucy9XZWJLaXQueGNjb25maWcKQEAgLTEyMyw4ICsxMjMsOCBAQCBXS19V
TklGT1JNX1RZUEVfSURFTlRJRklFUlNfTERGTEFHU19pcGhvbmVvcyA9ICQoV0tfVU5JRk9STV9U
WVBFX0lERU5USUZJRVJTX0xERgogV0tfVU5JRk9STV9UWVBFX0lERU5USUZJRVJTX0xERkxBR1Nf
aXBob25lc2ltdWxhdG9yID0gJChXS19VTklGT1JNX1RZUEVfSURFTlRJRklFUlNfTERGTEFHUyQo
V0tfSU9TXzE0KSk7CiBXS19VTklGT1JNX1RZUEVfSURFTlRJRklFUlNfTERGTEFHU19tYWNjYXRh
bHlzdCA9ICQoV0tfVU5JRk9STV9UWVBFX0lERU5USUZJRVJTX0xERkxBR1MkKFdLX0lPU18xNCkp
OwogV0tfVU5JRk9STV9UWVBFX0lERU5USUZJRVJTX0xERkxBR1NfSU9TX1NJTkNFXzE0ID0gLWZy
YW1ld29yayBVbmlmb3JtVHlwZUlkZW50aWZpZXJzOwotV0tfVU5JRk9STV9UWVBFX0lERU5USUZJ
RVJTX0xERkxBR1NfbWFjb3N4ID0gJChXS19VTklGT1JNX1RZUEVfSURFTlRJRklFUlNfTERGTEFH
UyQoV0tfTUFDT1NfMTIwMCkpOwotV0tfVU5JRk9STV9UWVBFX0lERU5USUZJRVJTX0xERkxBR1Nf
TUFDT1NfU0lOQ0VfMTIwMCA9IC1mcmFtZXdvcmsgVW5pZm9ybVR5cGVJZGVudGlmaWVyczsKK1dL
X1VOSUZPUk1fVFlQRV9JREVOVElGSUVSU19MREZMQUdTX21hY29zeCA9ICQoV0tfVU5JRk9STV9U
WVBFX0lERU5USUZJRVJTX0xERkxBR1MkKFdLX01BQ09TXzExMDApKTsKK1dLX1VOSUZPUk1fVFlQ
RV9JREVOVElGSUVSU19MREZMQUdTX01BQ09TX1NJTkNFXzExMDAgPSAtZnJhbWV3b3JrIFVuaWZv
cm1UeXBlSWRlbnRpZmllcnM7CiBXS19VTklGT1JNX1RZUEVfSURFTlRJRklFUlNfTERGTEFHU193
YXRjaG9zID0gLWZyYW1ld29yayBVbmlmb3JtVHlwZUlkZW50aWZpZXJzOwogV0tfVU5JRk9STV9U
WVBFX0lERU5USUZJRVJTX0xERkxBR1Nfd2F0Y2hzaW11bGF0b3IgPSAtZnJhbWV3b3JrIFVuaWZv
cm1UeXBlSWRlbnRpZmllcnM7CiBXS19VTklGT1JNX1RZUEVfSURFTlRJRklFUlNfTERGTEFHU19h
cHBsZXR2b3MgPSAtZnJhbWV3b3JrIFVuaWZvcm1UeXBlSWRlbnRpZmllcnM7CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViS2l0L1BsYXRmb3JtL2NvY29hL0NvY29hSW1hZ2UuaCBiL1NvdXJjZS9XZWJL
aXQvUGxhdGZvcm0vY29jb2EvQ29jb2FJbWFnZS5oCmluZGV4IGM0MWQ3ZjQ4OWQ4MDQwOTA0YzE1
MmExODI2MzhkMDczYjhhMTNjNDEuLjkxYzA4OGJlN2UzN2QzNGUzOTVhOWM0YmVhYzI4NjdmNDdl
N2QwMmMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvUGxhdGZvcm0vY29jb2EvQ29jb2FJbWFn
ZS5oCisrKyBiL1NvdXJjZS9XZWJLaXQvUGxhdGZvcm0vY29jb2EvQ29jb2FJbWFnZS5oCkBAIC0y
Myw3ICsyMyw5IEBACiAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KICovCiAKLSNp
bmNsdWRlIDx3dGYvQ29tcGlsZXIuaD4KKyNpbXBvcnQgPENvcmVHcmFwaGljcy9Db3JlR3JhcGhp
Y3MuaD4KKyNpbXBvcnQgPHd0Zi9Db21waWxlci5oPgorI2ltcG9ydCA8d3RmL1JldGFpblB0ci5o
PgogCiAjaWYgVVNFKEFQUEtJVCkKIE9CSkNfQ0xBU1MgTlNJbWFnZTsKQEAgLTMyLDMgKzM0LDEy
IEBAIHVzaW5nIENvY29hSW1hZ2UgPSBOU0ltYWdlOwogT0JKQ19DTEFTUyBVSUltYWdlOwogdXNp
bmcgQ29jb2FJbWFnZSA9IFVJSW1hZ2U7CiAjZW5kaWYKKworT0JKQ19DTEFTUyBOU0RhdGE7CisK
K25hbWVzcGFjZSBXZWJLaXQgeworCitSZXRhaW5QdHI8TlNEYXRhPiB0cmFuc2NvZGUoQ0dJbWFn
ZVJlZiwgQ0ZTdHJpbmdSZWYgdHlwZUlkZW50aWZpZXIpOworc3RkOjpwYWlyPFJldGFpblB0cjxO
U0RhdGE+LCBSZXRhaW5QdHI8Q0ZTdHJpbmdSZWY+PiB0cmFuc2NvZGVXaXRoUHJlZmVycmVkTUlN
RVR5cGUoQ0dJbWFnZVJlZiwgQ0ZTdHJpbmdSZWYgcHJlZmVycmVkTUlNRVR5cGUsIENGU3RyaW5n
UmVmIGZhbGxiYWNrVHlwZUlkZW50aWZpZXIpOworCit9IC8vIG5hbWVzcGFjZSBXZWJLaXQKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvUGxhdGZvcm0vY29jb2EvQ29jb2FJbWFnZS5tbSBiL1Nv
dXJjZS9XZWJLaXQvUGxhdGZvcm0vY29jb2EvQ29jb2FJbWFnZS5tbQpuZXcgZmlsZSBtb2RlIDEw
MDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5lZDIz
YjlhZTAyNDYzMmI4YjA2MjU2NzY5M2UxMTEwZDRiZWU3OWYxCi0tLSAvZGV2L251bGwKKysrIGIv
U291cmNlL1dlYktpdC9QbGF0Zm9ybS9jb2NvYS9Db2NvYUltYWdlLm1tCkBAIC0wLDAgKzEsNjgg
QEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMjIgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2Vy
dmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkg
Zm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHBy
b3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4g
UmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5
cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xs
b3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBt
dXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlz
dCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAg
ICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUg
ZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUg
SU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBP
UiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICog
VEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9S
IEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hB
TEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBE
SVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBD
T05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9D
VVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0Us
IERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIg
Q0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09O
VFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9S
IE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElT
IFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNI
IERBTUFHRS4KKyAqLworCisjaW1wb3J0ICJjb25maWcuaCIKKyNpbXBvcnQgIkNvY29hSW1hZ2Uu
aCIKKworI2ltcG9ydCA8V2ViQ29yZS9VVElSZWdpc3RyeS5oPgorCisjaWYgSEFWRShVTklGT1JN
X1RZUEVfSURFTlRJRklFUlNfRlJBTUVXT1JLKQorI2ltcG9ydCA8VW5pZm9ybVR5cGVJZGVudGlm
aWVycy9Vbmlmb3JtVHlwZUlkZW50aWZpZXJzLmg+CisjZWxzZQorI2ltcG9ydCA8Q29yZVNlcnZp
Y2VzL0NvcmVTZXJ2aWNlcy5oPgorI2VuZGlmCisKK25hbWVzcGFjZSBXZWJLaXQgeworCitSZXRh
aW5QdHI8TlNEYXRhPiB0cmFuc2NvZGUoQ0dJbWFnZVJlZiBpbWFnZSwgQ0ZTdHJpbmdSZWYgdHlw
ZUlkZW50aWZpZXIpCit7CisgICAgaWYgKCFpbWFnZSkKKyAgICAgICAgcmV0dXJuIG5pbDsKKwor
ICAgIGF1dG8gZGF0YSA9IGFkb3B0TlMoW1tOU011dGFibGVEYXRhIGFsbG9jXSBpbml0XSk7Cisg
ICAgYXV0byBkZXN0aW5hdGlvbiA9IGFkb3B0Q0YoQ0dJbWFnZURlc3RpbmF0aW9uQ3JlYXRlV2l0
aERhdGEoKF9fYnJpZGdlIENGTXV0YWJsZURhdGFSZWYpZGF0YS5nZXQoKSwgdHlwZUlkZW50aWZp
ZXIsIDEsIG5pbCkpOworICAgIENHSW1hZ2VEZXN0aW5hdGlvbkFkZEltYWdlKGRlc3RpbmF0aW9u
LmdldCgpLCBpbWFnZSwgbmlsKTsKKyAgICBpZiAoIUNHSW1hZ2VEZXN0aW5hdGlvbkZpbmFsaXpl
KGRlc3RpbmF0aW9uLmdldCgpKSkKKyAgICAgICAgcmV0dXJuIG5pbDsKKworICAgIHJldHVybiBk
YXRhOworfQorCitzdGQ6OnBhaXI8UmV0YWluUHRyPE5TRGF0YT4sIFJldGFpblB0cjxDRlN0cmlu
Z1JlZj4+IHRyYW5zY29kZVdpdGhQcmVmZXJyZWRNSU1FVHlwZShDR0ltYWdlUmVmIGltYWdlLCBD
RlN0cmluZ1JlZiBwcmVmZXJyZWRNSU1FVHlwZSwgQ0ZTdHJpbmdSZWYgZmFsbGJhY2tUeXBlSWRl
bnRpZmllcikKK3sKKyAgICBhdXRvIHRhcmdldFR5cGUgPSBSZXRhaW5QdHIgeyBmYWxsYmFja1R5
cGVJZGVudGlmaWVyIH07CisgICAgaWYgKENGU3RyaW5nR2V0TGVuZ3RoKHByZWZlcnJlZE1JTUVU
eXBlKSkgeworI2lmIEhBVkUoVU5JRk9STV9UWVBFX0lERU5USUZJRVJTX0ZSQU1FV09SSykKKyAg
ICAgICAgYXV0byBwcmVmZXJyZWRUeXBlSWRlbnRpZmllciA9IFJldGFpblB0ciB7IChfX2JyaWRn
ZSBDRlN0cmluZ1JlZilbVVRUeXBlIHR5cGVXaXRoTUlNRVR5cGU6KF9fYnJpZGdlIE5TU3RyaW5n
ICopcHJlZmVycmVkTUlNRVR5cGUgY29uZm9ybWluZ1RvVHlwZTpVVFR5cGVJbWFnZV0uaWRlbnRp
ZmllciB9OworI2Vsc2UKKyAgICAgICAgYXV0byBwcmVmZXJyZWRUeXBlSWRlbnRpZmllciA9IGFk
b3B0Q0YoVVRUeXBlQ3JlYXRlUHJlZmVycmVkSWRlbnRpZmllckZvclRhZyhrVVRUYWdDbGFzc01J
TUVUeXBlLCBwcmVmZXJyZWRNSU1FVHlwZSwga1VUVHlwZUltYWdlKSk7CisjZW5kaWYKKyAgICAg
ICAgaWYgKFdlYkNvcmU6OmlzU3VwcG9ydGVkSW1hZ2VUeXBlKHByZWZlcnJlZFR5cGVJZGVudGlm
aWVyLmdldCgpKSkKKyAgICAgICAgICAgIHRhcmdldFR5cGUgPSBXVEZNb3ZlKHByZWZlcnJlZFR5
cGVJZGVudGlmaWVyKTsKKyAgICB9CisgICAgcmV0dXJuIHsgdHJhbnNjb2RlKGltYWdlLCB0YXJn
ZXRUeXBlLmdldCgpKSwgdGFyZ2V0VHlwZSB9OworfQorCit9IC8vIG5hbWVzcGFjZSBXZWJLaXQK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvUGxhdGZvcm0vY29jb2EvVGV4dFJlY29nbml0aW9u
VXRpbGl0aWVzLm1tIGIvU291cmNlL1dlYktpdC9QbGF0Zm9ybS9jb2NvYS9UZXh0UmVjb2duaXRp
b25VdGlsaXRpZXMubW0KaW5kZXggNzFiMmUyNjIzMDY2NTk0OWQ4NWU0NWIyY2JmY2JlMDJlZjZj
NWExYS4uNWM2NWRlZjc1Y2VjMTUzMGJhYmJjZTZiYWU2ZDIyMGI1NGY3NzhkNyAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYktpdC9QbGF0Zm9ybS9jb2NvYS9UZXh0UmVjb2duaXRpb25VdGlsaXRpZXMu
bW0KKysrIGIvU291cmNlL1dlYktpdC9QbGF0Zm9ybS9jb2NvYS9UZXh0UmVjb2duaXRpb25VdGls
aXRpZXMubW0KQEAgLTI4LDYgKzI4LDcgQEAKIAogI2lmIEVOQUJMRShJTUFHRV9BTkFMWVNJUykK
IAorI2ltcG9ydCAiQ29jb2FJbWFnZS5oIgogI2ltcG9ydCAiTG9nZ2luZy5oIgogI2ltcG9ydCA8
V2ViQ29yZS9UZXh0UmVjb2duaXRpb25SZXN1bHQuaD4KICNpbXBvcnQgPHBhbC9zcGkvY29jb2Ev
RmVhdHVyZUZsYWdzU1BJLmg+CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9pb3Mv
SW50ZXJhY3Rpb25JbmZvcm1hdGlvbkF0UG9zaXRpb24uaCBiL1NvdXJjZS9XZWJLaXQvU2hhcmVk
L2lvcy9JbnRlcmFjdGlvbkluZm9ybWF0aW9uQXRQb3NpdGlvbi5oCmluZGV4IDI4MWQ3NjU0Zjcw
N2U4NGE3YThlYmJmZDUyMzFhMGVmY2FmZjE1M2EuLjFjNjVkOGY1OTU1NjQ0M2M4OTFhOWRlMGM0
MWM1NzliYTljZGQ4Y2IgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvU2hhcmVkL2lvcy9JbnRl
cmFjdGlvbkluZm9ybWF0aW9uQXRQb3NpdGlvbi5oCisrKyBiL1NvdXJjZS9XZWJLaXQvU2hhcmVk
L2lvcy9JbnRlcmFjdGlvbkluZm9ybWF0aW9uQXRQb3NpdGlvbi5oCkBAIC04OCw2ICs4OCw3IEBA
IHN0cnVjdCBJbnRlcmFjdGlvbkluZm9ybWF0aW9uQXRQb3NpdGlvbiB7CiAgICAgV2ViQ29yZTo6
RmxvYXRQb2ludCBhZGp1c3RlZFBvaW50Rm9yTm9kZVJlc3BvbmRpbmdUb0NsaWNrRXZlbnRzOwog
ICAgIFVSTCB1cmw7CiAgICAgVVJMIGltYWdlVVJMOworICAgIFN0cmluZyBpbWFnZU1JTUVUeXBl
OwogICAgIFN0cmluZyB0aXRsZTsKICAgICBTdHJpbmcgaWRBdHRyaWJ1dGU7CiAgICAgV2ViQ29y
ZTo6SW50UmVjdCBib3VuZHM7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9pb3Mv
SW50ZXJhY3Rpb25JbmZvcm1hdGlvbkF0UG9zaXRpb24ubW0gYi9Tb3VyY2UvV2ViS2l0L1NoYXJl
ZC9pb3MvSW50ZXJhY3Rpb25JbmZvcm1hdGlvbkF0UG9zaXRpb24ubW0KaW5kZXggNjU1NGNhNzA4
Y2RjMWZiNDFmMDhiYTRlMDg0MDI0N2Y0NTNiNzBlZi4uNzg5OGNjOTZmYWU3MzM4N2ZkZWIyNmM3
NjExYWFlM2Y4ZTM1ZTg1YSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9TaGFyZWQvaW9zL0lu
dGVyYWN0aW9uSW5mb3JtYXRpb25BdFBvc2l0aW9uLm1tCisrKyBiL1NvdXJjZS9XZWJLaXQvU2hh
cmVkL2lvcy9JbnRlcmFjdGlvbkluZm9ybWF0aW9uQXRQb3NpdGlvbi5tbQpAQCAtNTYsNiArNTYs
NyBAQCB2b2lkIEludGVyYWN0aW9uSW5mb3JtYXRpb25BdFBvc2l0aW9uOjplbmNvZGUoSVBDOjpF
bmNvZGVyJiBlbmNvZGVyKSBjb25zdAogICAgIGVuY29kZXIgPDwgYWRqdXN0ZWRQb2ludEZvck5v
ZGVSZXNwb25kaW5nVG9DbGlja0V2ZW50czsKICAgICBlbmNvZGVyIDw8IHVybDsKICAgICBlbmNv
ZGVyIDw8IGltYWdlVVJMOworICAgIGVuY29kZXIgPDwgaW1hZ2VNSU1FVHlwZTsKICAgICBlbmNv
ZGVyIDw8IHRpdGxlOwogICAgIGVuY29kZXIgPDwgaWRBdHRyaWJ1dGU7CiAgICAgZW5jb2RlciA8
PCBib3VuZHM7CkBAIC0xNDksNiArMTUwLDkgQEAgYm9vbCBJbnRlcmFjdGlvbkluZm9ybWF0aW9u
QXRQb3NpdGlvbjo6ZGVjb2RlKElQQzo6RGVjb2RlciYgZGVjb2RlciwgSW50ZXJhY3Rpb24KICAg
ICBpZiAoIWRlY29kZXIuZGVjb2RlKHJlc3VsdC5pbWFnZVVSTCkpCiAgICAgICAgIHJldHVybiBm
YWxzZTsKIAorICAgIGlmICghZGVjb2Rlci5kZWNvZGUocmVzdWx0LmltYWdlTUlNRVR5cGUpKQor
ICAgICAgICByZXR1cm4gZmFsc2U7CisKICAgICBpZiAoIWRlY29kZXIuZGVjb2RlKHJlc3VsdC50
aXRsZSkpCiAgICAgICAgIHJldHVybiBmYWxzZTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktp
dC9Tb3VyY2VzQ29jb2EudHh0IGIvU291cmNlL1dlYktpdC9Tb3VyY2VzQ29jb2EudHh0CmluZGV4
IGYxNGQ3MzZjZDRmZWZhYzBlYTAyZWJjNjQ0OGUyMjA0NThhYmZjODQuLjhmYzVmNGRkOGNkMGNk
M2NlMGY5NTFiOGFmNmI4ZTZmNDkzMDRhZTUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvU291
cmNlc0NvY29hLnR4dAorKysgYi9Tb3VyY2UvV2ViS2l0L1NvdXJjZXNDb2NvYS50eHQKQEAgLTgz
LDYgKzgzLDcgQEAgUGxhdGZvcm0vY2YvTW9kdWxlQ0YuY3BwCiBQbGF0Zm9ybS9jbGFzc2lmaWVy
L2NvY29hL1Jlc291cmNlTG9hZFN0YXRpc3RpY3NDbGFzc2lmaWVyQ29jb2EuY3BwCiBQbGF0Zm9y
bS9jbGFzc2lmaWVyL1Jlc291cmNlTG9hZFN0YXRpc3RpY3NDbGFzc2lmaWVyLmNwcAogCitQbGF0
Zm9ybS9jb2NvYS9Db2NvYUltYWdlLm1tCiBQbGF0Zm9ybS9jb2NvYS9MYXllckhvc3RpbmdDb250
ZXh0Lm1tCiBQbGF0Zm9ybS9jb2NvYS9QYXltZW50QXV0aG9yaXphdGlvblByZXNlbnRlci5tbQog
UGxhdGZvcm0vY29jb2EvUGF5bWVudEF1dGhvcml6YXRpb25WaWV3Q29udHJvbGxlci5tbQpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL19XS0FjdGl2YXRlZEVs
ZW1lbnRJbmZvLm1tIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL19XS0FjdGl2
YXRlZEVsZW1lbnRJbmZvLm1tCmluZGV4IDZmZTU5M2M0YjQ2NGNlOWI2MDY1MDdlNjI3Yzk3ZTAw
MjUzOTFiMzUuLjk3MWUwZWZhYjkwZjUxZGUxYzAyYmMxMDU3MmU4NGRlN2MzMzZjZDIgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9fV0tBY3RpdmF0ZWRFbGVt
ZW50SW5mby5tbQorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvX1dLQWN0
aXZhdGVkRWxlbWVudEluZm8ubW0KQEAgLTQzLDYgKzQzLDcgQEAgQGltcGxlbWVudGF0aW9uIF9X
S0FjdGl2YXRlZEVsZW1lbnRJbmZvICB7CiAgICAgV2ViQ29yZTo6SW50UG9pbnQgX2ludGVyYWN0
aW9uTG9jYXRpb247CiAgICAgUmV0YWluUHRyPE5TU3RyaW5nPiBfSUQ7CiAgICAgUmVmUHRyPFdl
YktpdDo6U2hhcmVhYmxlQml0bWFwPiBfaW1hZ2U7CisgICAgUmV0YWluUHRyPE5TU3RyaW5nPiBf
aW1hZ2VNSU1FVHlwZTsKICAgICBSZXRhaW5QdHI8Q29jb2FJbWFnZT4gX2NvY29hSW1hZ2U7CiAj
aWYgUExBVEZPUk0oSU9TX0ZBTUlMWSkKICAgICBSZXRhaW5QdHI8TlNEaWN0aW9uYXJ5PiBfdXNl
ckluZm87CkBAIC02Myw2ICs2NCw3IEBAIC0gKGluc3RhbmNldHlwZSlfaW5pdFdpdGhJbnRlcmFj
dGlvbkluZm9ybWF0aW9uQXRQb3NpdGlvbjooY29uc3QgV2ViS2l0OjpJbnRlcmFjCiAgICAgCiAg
ICAgX1VSTCA9IGluZm9ybWF0aW9uLnVybDsKICAgICBfaW1hZ2VVUkwgPSBpbmZvcm1hdGlvbi5p
bWFnZVVSTDsKKyAgICBfaW1hZ2VNSU1FVHlwZSA9IGluZm9ybWF0aW9uLmltYWdlTUlNRVR5cGU7
CiAgICAgX2ludGVyYWN0aW9uTG9jYXRpb24gPSBpbmZvcm1hdGlvbi5yZXF1ZXN0LnBvaW50Owog
ICAgIF90aXRsZSA9IGluZm9ybWF0aW9uLnRpdGxlOwogICAgIF9ib3VuZGluZ1JlY3QgPSBpbmZv
cm1hdGlvbi5ib3VuZHM7CkBAIC04NiwxOCArODgsMTkgQEAgLSAoaW5zdGFuY2V0eXBlKV9pbml0
V2l0aEludGVyYWN0aW9uSW5mb3JtYXRpb25BdFBvc2l0aW9uOihjb25zdCBXZWJLaXQ6OkludGVy
YWMKIH0KICNlbmRpZgogCi0tIChpbnN0YW5jZXR5cGUpX2luaXRXaXRoVHlwZTooX1dLQWN0aXZh
dGVkRWxlbWVudFR5cGUpdHlwZSBVUkw6KE5TVVJMICopdXJsIGltYWdlVVJMOihOU1VSTCAqKWlt
YWdlVVJMIGxvY2F0aW9uOihjb25zdCBXZWJDb3JlOjpJbnRQb2ludCYpbG9jYXRpb24gdGl0bGU6
KE5TU3RyaW5nICopdGl0bGUgSUQ6KE5TU3RyaW5nICopSUQgcmVjdDooQ0dSZWN0KXJlY3QgaW1h
Z2U6KFdlYktpdDo6U2hhcmVhYmxlQml0bWFwKilpbWFnZQorLSAoaW5zdGFuY2V0eXBlKV9pbml0
V2l0aFR5cGU6KF9XS0FjdGl2YXRlZEVsZW1lbnRUeXBlKXR5cGUgVVJMOihOU1VSTCAqKXVybCBp
bWFnZVVSTDooTlNVUkwgKilpbWFnZVVSTCBsb2NhdGlvbjooY29uc3QgV2ViQ29yZTo6SW50UG9p
bnQmKWxvY2F0aW9uIHRpdGxlOihOU1N0cmluZyAqKXRpdGxlIElEOihOU1N0cmluZyAqKUlEIHJl
Y3Q6KENHUmVjdClyZWN0IGltYWdlOihXZWJLaXQ6OlNoYXJlYWJsZUJpdG1hcCopaW1hZ2UgaW1h
Z2VNSU1FVHlwZTooTlNTdHJpbmcgKilpbWFnZU1JTUVUeXBlCiB7Ci0gICAgcmV0dXJuIFtzZWxm
IF9pbml0V2l0aFR5cGU6dHlwZSBVUkw6dXJsIGltYWdlVVJMOmltYWdlVVJMIGxvY2F0aW9uOmxv
Y2F0aW9uIHRpdGxlOnRpdGxlIElEOklEIHJlY3Q6cmVjdCBpbWFnZTppbWFnZSB1c2VySW5mbzpu
aWxdOworICAgIHJldHVybiBbc2VsZiBfaW5pdFdpdGhUeXBlOnR5cGUgVVJMOnVybCBpbWFnZVVS
TDppbWFnZVVSTCBsb2NhdGlvbjpsb2NhdGlvbiB0aXRsZTp0aXRsZSBJRDpJRCByZWN0OnJlY3Qg
aW1hZ2U6aW1hZ2UgaW1hZ2VNSU1FVHlwZTppbWFnZU1JTUVUeXBlIHVzZXJJbmZvOm5pbF07CiB9
CiAKLS0gKGluc3RhbmNldHlwZSlfaW5pdFdpdGhUeXBlOihfV0tBY3RpdmF0ZWRFbGVtZW50VHlw
ZSl0eXBlIFVSTDooTlNVUkwgKil1cmwgaW1hZ2VVUkw6KE5TVVJMICopaW1hZ2VVUkwgbG9jYXRp
b246KGNvbnN0IFdlYkNvcmU6OkludFBvaW50Jilsb2NhdGlvbiB0aXRsZTooTlNTdHJpbmcgKil0
aXRsZSBJRDooTlNTdHJpbmcgKilJRCByZWN0OihDR1JlY3QpcmVjdCBpbWFnZTooV2ViS2l0OjpT
aGFyZWFibGVCaXRtYXAqKWltYWdlIHVzZXJJbmZvOihOU0RpY3Rpb25hcnkgKil1c2VySW5mbwor
LSAoaW5zdGFuY2V0eXBlKV9pbml0V2l0aFR5cGU6KF9XS0FjdGl2YXRlZEVsZW1lbnRUeXBlKXR5
cGUgVVJMOihOU1VSTCAqKXVybCBpbWFnZVVSTDooTlNVUkwgKilpbWFnZVVSTCBsb2NhdGlvbjoo
Y29uc3QgV2ViQ29yZTo6SW50UG9pbnQmKWxvY2F0aW9uIHRpdGxlOihOU1N0cmluZyAqKXRpdGxl
IElEOihOU1N0cmluZyAqKUlEIHJlY3Q6KENHUmVjdClyZWN0IGltYWdlOihXZWJLaXQ6OlNoYXJl
YWJsZUJpdG1hcCopaW1hZ2UgaW1hZ2VNSU1FVHlwZTooTlNTdHJpbmcgKilpbWFnZU1JTUVUeXBl
IHVzZXJJbmZvOihOU0RpY3Rpb25hcnkgKil1c2VySW5mbwogewogICAgIGlmICghKHNlbGYgPSBb
c3VwZXIgaW5pdF0pKQogICAgICAgICByZXR1cm4gbmlsOwogCiAgICAgX1VSTCA9IGFkb3B0TlMo
W3VybCBjb3B5XSk7CiAgICAgX2ltYWdlVVJMID0gYWRvcHROUyhbaW1hZ2VVUkwgY29weV0pOwor
ICAgIF9pbWFnZU1JTUVUeXBlID0gYWRvcHROUyhpbWFnZU1JTUVUeXBlLmNvcHkpOwogICAgIF9p
bnRlcmFjdGlvbkxvY2F0aW9uID0gbG9jYXRpb247CiAgICAgX3RpdGxlID0gYWRvcHROUyhbdGl0
bGUgY29weV0pOwogICAgIF9ib3VuZGluZ1JlY3QgPSByZWN0OwpAQCAtMTI2LDYgKzEyOSwxMSBA
QCAtIChOU1N0cmluZyAqKXRpdGxlCiAgICAgcmV0dXJuIF90aXRsZS5nZXQoKTsKIH0KIAorLSAo
TlNTdHJpbmcgKilpbWFnZU1JTUVUeXBlCit7CisgICAgcmV0dXJuIF9pbWFnZU1JTUVUeXBlLmdl
dCgpOworfQorCiAtIChOU1N0cmluZyAqKUlECiB7CiAgICAgcmV0dXJuIF9JRC5nZXQoKTsKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9fV0tBY3RpdmF0ZWRF
bGVtZW50SW5mb0ludGVybmFsLmggYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2Ev
X1dLQWN0aXZhdGVkRWxlbWVudEluZm9JbnRlcm5hbC5oCmluZGV4IGQ0YTdiZmJiYjYwMWU2MzNi
Mzk4YWEzZTcwYzY4ZmE1NGU0MTk0ZmIuLmM2ZWU4MjRkNTlmNWM5ZTE5YThjN2FiZTc4OTQ5YmY2
NDAzNjZiZTkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9f
V0tBY3RpdmF0ZWRFbGVtZW50SW5mb0ludGVybmFsLmgKKysrIGIvU291cmNlL1dlYktpdC9VSVBy
b2Nlc3MvQVBJL0NvY29hL19XS0FjdGl2YXRlZEVsZW1lbnRJbmZvSW50ZXJuYWwuaApAQCAtNDAs
OSArNDAsMTAgQEAgbmFtZXNwYWNlIFdlYktpdCB7CiArIChpbnN0YW5jZXR5cGUpYWN0aXZhdGVk
RWxlbWVudEluZm9XaXRoSW50ZXJhY3Rpb25JbmZvcm1hdGlvbkF0UG9zaXRpb246KGNvbnN0IFdl
YktpdDo6SW50ZXJhY3Rpb25JbmZvcm1hdGlvbkF0UG9zaXRpb24mKWluZm9ybWF0aW9uIHVzZXJJ
bmZvOihOU0RpY3Rpb25hcnkgKil1c2VySW5mbzsKIC0gKGluc3RhbmNldHlwZSlfaW5pdFdpdGhJ
bnRlcmFjdGlvbkluZm9ybWF0aW9uQXRQb3NpdGlvbjooY29uc3QgV2ViS2l0OjpJbnRlcmFjdGlv
bkluZm9ybWF0aW9uQXRQb3NpdGlvbiYpaW5mb3JtYXRpb24gdXNlckluZm86KE5TRGljdGlvbmFy
eSAqKXVzZXJJbmZvOwogI2VuZGlmCi0tIChpbnN0YW5jZXR5cGUpX2luaXRXaXRoVHlwZTooX1dL
QWN0aXZhdGVkRWxlbWVudFR5cGUpdHlwZSBVUkw6KE5TVVJMICopdXJsIGltYWdlVVJMOihOU1VS
TCAqKWltYWdlVVJMIGxvY2F0aW9uOihjb25zdCBXZWJDb3JlOjpJbnRQb2ludCYpbG9jYXRpb24g
dGl0bGU6KE5TU3RyaW5nICopdGl0bGUgSUQ6KE5TU3RyaW5nICopSUQgcmVjdDooQ0dSZWN0KXJl
Y3QgaW1hZ2U6KFdlYktpdDo6U2hhcmVhYmxlQml0bWFwKilpbWFnZTsKLS0gKGluc3RhbmNldHlw
ZSlfaW5pdFdpdGhUeXBlOihfV0tBY3RpdmF0ZWRFbGVtZW50VHlwZSl0eXBlIFVSTDooTlNVUkwg
Kil1cmwgaW1hZ2VVUkw6KE5TVVJMICopaW1hZ2VVUkwgbG9jYXRpb246KGNvbnN0IFdlYkNvcmU6
OkludFBvaW50Jilsb2NhdGlvbiB0aXRsZTooTlNTdHJpbmcgKil0aXRsZSBJRDooTlNTdHJpbmcg
KilJRCByZWN0OihDR1JlY3QpcmVjdCBpbWFnZTooV2ViS2l0OjpTaGFyZWFibGVCaXRtYXAqKWlt
YWdlIHVzZXJJbmZvOihOU0RpY3Rpb25hcnkgKil1c2VySW5mbzsKKy0gKGluc3RhbmNldHlwZSlf
aW5pdFdpdGhUeXBlOihfV0tBY3RpdmF0ZWRFbGVtZW50VHlwZSl0eXBlIFVSTDooTlNVUkwgKil1
cmwgaW1hZ2VVUkw6KE5TVVJMICopaW1hZ2VVUkwgbG9jYXRpb246KGNvbnN0IFdlYkNvcmU6Oklu
dFBvaW50Jilsb2NhdGlvbiB0aXRsZTooTlNTdHJpbmcgKil0aXRsZSBJRDooTlNTdHJpbmcgKilJ
RCByZWN0OihDR1JlY3QpcmVjdCBpbWFnZTooV2ViS2l0OjpTaGFyZWFibGVCaXRtYXAqKWltYWdl
IGltYWdlTUlNRVR5cGU6KE5TU3RyaW5nICopaW1hZ2VNSU1FVHlwZTsKKy0gKGluc3RhbmNldHlw
ZSlfaW5pdFdpdGhUeXBlOihfV0tBY3RpdmF0ZWRFbGVtZW50VHlwZSl0eXBlIFVSTDooTlNVUkwg
Kil1cmwgaW1hZ2VVUkw6KE5TVVJMICopaW1hZ2VVUkwgbG9jYXRpb246KGNvbnN0IFdlYkNvcmU6
OkludFBvaW50Jilsb2NhdGlvbiB0aXRsZTooTlNTdHJpbmcgKil0aXRsZSBJRDooTlNTdHJpbmcg
KilJRCByZWN0OihDR1JlY3QpcmVjdCBpbWFnZTooV2ViS2l0OjpTaGFyZWFibGVCaXRtYXAqKWlt
YWdlIGltYWdlTUlNRVR5cGU6KE5TU3RyaW5nICopaW1hZ2VNSU1FVHlwZSB1c2VySW5mbzooTlNE
aWN0aW9uYXJ5ICopdXNlckluZm87CiAKK0Bwcm9wZXJ0eSAobm9uYXRvbWljLCByZWFkb25seSkg
TlNTdHJpbmcgKmltYWdlTUlNRVR5cGU7CiBAcHJvcGVydHkgKG5vbmF0b21pYywgcmVhZG9ubHkp
IFdlYkNvcmU6OkludFBvaW50IF9pbnRlcmFjdGlvbkxvY2F0aW9uOwogCiBAZW5kCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvX1dLRWxlbWVudEFjdGlvbi5o
IGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL19XS0VsZW1lbnRBY3Rpb24uaApp
bmRleCBhYWRlZTlmNmUyMzBiYzhjNTFjOWUzMTQzMzA1ZDU1NDdhMjM5Yzg3Li40NDkwOWM5Y2Nh
MGMyN2FmYjc0M2QyYzk2NzJhZTdmYjhlOTI0YzY5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0
L1VJUHJvY2Vzcy9BUEkvQ29jb2EvX1dLRWxlbWVudEFjdGlvbi5oCisrKyBiL1NvdXJjZS9XZWJL
aXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9fV0tFbGVtZW50QWN0aW9uLmgKQEAgLTU2LDYgKzU2LDcg
QEAgdHlwZWRlZiBOU19FTlVNKE5TSW50ZWdlciwgX1dLRWxlbWVudEFjdGlvblR5cGUpIHsKICAg
ICBfV0tFbGVtZW50QWN0aW9uVG9nZ2xlU2hvd0xpbmtQcmV2aWV3cyBXS19BUElfQVZBSUxBQkxF
KG1hY29zKDEwLjE1KSwgaW9zKDEzLjApKSwKICAgICBfV0tFbGVtZW50QWN0aW9uVHlwZUltYWdl
RXh0cmFjdGlvbiBXS19BUElfQVZBSUxBQkxFKGlvcygxNS4wKSksCiAgICAgX1dLRWxlbWVudEFj
dGlvblR5cGVSZXZlYWxJbWFnZSBXS19BUElfQVZBSUxBQkxFKGlvcygxNS4wKSksCisgICAgX1dL
RWxlbWVudEFjdGlvblR5cGVDb3B5Q3JvcHBlZEltYWdlIFdLX0FQSV9BVkFJTEFCTEUoaW9zKFdL
X0lPU19UQkEpKSwKIH0gV0tfQVBJX0FWQUlMQUJMRShtYWNvcygxMC4xMCksIGlvcyg4LjApKTsK
IAogV0tfQ0xBU1NfQVZBSUxBQkxFKG1hY29zKDEwLjEwKSwgaW9zKDguMCkpCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvX1dLRWxlbWVudEFjdGlvbi5tbSBi
L1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9fV0tFbGVtZW50QWN0aW9uLm1tCmlu
ZGV4IGMzN2ZjODY5ZDgyYzc0ZDEwOGY3ZDY4NzM0YWE5OTJmNjliYjNkYWYuLmQ2NDI3OTcxZDY1
M2E3YzNjYjk2Mzk3NWQ3MzIzMjZkZTYwNmJjY2MgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQv
VUlQcm9jZXNzL0FQSS9Db2NvYS9fV0tFbGVtZW50QWN0aW9uLm1tCisrKyBiL1NvdXJjZS9XZWJL
aXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9fV0tFbGVtZW50QWN0aW9uLm1tCkBAIC02Myw2ICs2Myw3
IEBAIHN0YXRpYyBVSUFjdGlvbklkZW50aWZpZXIgY29uc3QgV0tFbGVtZW50QWN0aW9uVHlwZURv
d25sb2FkSWRlbnRpZmllciA9IEAiV0tFbGVtCiBVSUFjdGlvbklkZW50aWZpZXIgY29uc3QgV0tF
bGVtZW50QWN0aW9uVHlwZVRvZ2dsZVNob3dMaW5rUHJldmlld3NJZGVudGlmaWVyID0gQCJXS0Vs
ZW1lbnRBY3Rpb25UeXBlVG9nZ2xlU2hvd0xpbmtQcmV2aWV3cyI7CiBzdGF0aWMgVUlBY3Rpb25J
ZGVudGlmaWVyIGNvbnN0IFdLRWxlbWVudEFjdGlvblR5cGVJbWFnZUV4dHJhY3Rpb25JZGVudGlm
aWVyID0gQCJXS0VsZW1lbnRBY3Rpb25UeXBlSW1hZ2VFeHRyYWN0aW9uIjsKIHN0YXRpYyBVSUFj
dGlvbklkZW50aWZpZXIgY29uc3QgV0tFbGVtZW50QWN0aW9uVHlwZVJldmVhbEltYWdlSWRlbnRp
ZmllciA9IEAiV0tFbGVtZW50QWN0aW9uVHlwZVJldmVhbEltYWdlIjsKK3N0YXRpYyBVSUFjdGlv
bklkZW50aWZpZXIgY29uc3QgV0tFbGVtZW50QWN0aW9uVHlwZUNvcHlDcm9wcGVkSW1hZ2VJZGVu
dGlmaWVyID0gQCJXS0VsZW1lbnRBY3Rpb25UeXBlQ29weUNyb3BwZWRJbWFnZSI7CiAKIHN0YXRp
YyBOU1N0cmluZyAqIGNvbnN0IHdlYmtpdFNob3dMaW5rUHJldmlld3NQcmVmZXJlbmNlS2V5ID0g
QCJXZWJLaXRTaG93TGlua1ByZXZpZXdzIjsKIHN0YXRpYyBOU1N0cmluZyAqIGNvbnN0IHdlYmtp
dFNob3dMaW5rUHJldmlld3NQcmVmZXJlbmNlQ2hhbmdlZE5vdGlmaWNhdGlvbiA9IEAiV2ViS2l0
U2hvd0xpbmtQcmV2aWV3c1ByZWZlcmVuY2VDaGFuZ2VkIjsKQEAgLTE3NSw2ICsxNzYsMTQgQEAg
KyAoaW5zdGFuY2V0eXBlKV9lbGVtZW50QWN0aW9uV2l0aFR5cGU6KF9XS0VsZW1lbnRBY3Rpb25U
eXBlKXR5cGUgY3VzdG9tVGl0bGU6KE4KICAgICAgICAgaGFuZGxlciA9IF4oV0tBY3Rpb25TaGVl
dEFzc2lzdGFudCAqYXNzaXN0YW50LCBfV0tBY3RpdmF0ZWRFbGVtZW50SW5mbyAqYWN0aW9uSW5m
bykgewogICAgICAgICAgICAgW2Fzc2lzdGFudCBoYW5kbGVFbGVtZW50QWN0aW9uV2l0aFR5cGU6
dHlwZSBlbGVtZW50OmFjdGlvbkluZm8gbmVlZHNJbnRlcmFjdGlvbjpZRVNdOwogICAgICAgICB9
OworI2VuZGlmCisgICAgICAgIGJyZWFrOworICAgIGNhc2UgX1dLRWxlbWVudEFjdGlvblR5cGVD
b3B5Q3JvcHBlZEltYWdlOgorI2lmIEVOQUJMRShJTUFHRV9BTkFMWVNJU19FTkhBTkNFTUVOVFMp
CisgICAgICAgIHRpdGxlID0gV0VCX1VJX1NUUklORygiQ29weSBDcm9wcGVkIEltYWdlIiwgIlRp
dGxlIGZvciBDb3B5IENyb3BwZWQgSW1hZ2UiKTsKKyAgICAgICAgaGFuZGxlciA9IF4oV0tBY3Rp
b25TaGVldEFzc2lzdGFudCAqYXNzaXN0YW50LCBfV0tBY3RpdmF0ZWRFbGVtZW50SW5mbyAqYWN0
aW9uSW5mbykgeworICAgICAgICAgICAgW2Fzc2lzdGFudCBoYW5kbGVFbGVtZW50QWN0aW9uV2l0
aFR5cGU6dHlwZSBlbGVtZW50OmFjdGlvbkluZm8gbmVlZHNJbnRlcmFjdGlvbjpZRVNdOworICAg
ICAgICB9OwogI2VuZGlmCiAgICAgICAgIGJyZWFrOwogICAgIGRlZmF1bHQ6CkBAIC0yNTUsNiAr
MjY0LDggQEAgKyAoVUlJbWFnZSAqKWltYWdlRm9yRWxlbWVudEFjdGlvblR5cGU6KF9XS0VsZW1l
bnRBY3Rpb25UeXBlKWFjdGlvblR5cGUKICNlbHNlCiAgICAgICAgIHJldHVybiBuaWw7CiAjZW5k
aWYKKyAgICBjYXNlIF9XS0VsZW1lbnRBY3Rpb25UeXBlQ29weUNyb3BwZWRJbWFnZToKKyAgICAg
ICAgcmV0dXJuIFtVSUltYWdlIHN5c3RlbUltYWdlTmFtZWQ6QCJwZXJzb24uZmlsbC52aWV3Zmlu
ZGVyIl07CiAgICAgfQogfQogCkBAIC0yODksNiArMzAwLDggQEAgc3RhdGljIFVJQWN0aW9uSWRl
bnRpZmllciBlbGVtZW50QWN0aW9uVHlwZVRvVUlBY3Rpb25JZGVudGlmaWVyKF9XS0VsZW1lbnRB
Y3Rpb24KICAgICAgICAgcmV0dXJuIFdLRWxlbWVudEFjdGlvblR5cGVJbWFnZUV4dHJhY3Rpb25J
ZGVudGlmaWVyOwogICAgIGNhc2UgX1dLRWxlbWVudEFjdGlvblR5cGVSZXZlYWxJbWFnZToKICAg
ICAgICAgcmV0dXJuIFdLRWxlbWVudEFjdGlvblR5cGVSZXZlYWxJbWFnZUlkZW50aWZpZXI7Cisg
ICAgY2FzZSBfV0tFbGVtZW50QWN0aW9uVHlwZUNvcHlDcm9wcGVkSW1hZ2U6CisgICAgICAgIHJl
dHVybiBXS0VsZW1lbnRBY3Rpb25UeXBlQ29weUNyb3BwZWRJbWFnZUlkZW50aWZpZXI7CiAgICAg
fQogfQogCkBAIC0zMjIsNiArMzM1LDggQEAgc3RhdGljIF9XS0VsZW1lbnRBY3Rpb25UeXBlIHVp
QWN0aW9uSWRlbnRpZmllclRvRWxlbWVudEFjdGlvblR5cGUoVUlBY3Rpb25JZGVudGkKICAgICAg
ICAgcmV0dXJuIF9XS0VsZW1lbnRBY3Rpb25UeXBlSW1hZ2VFeHRyYWN0aW9uOwogICAgIGlmIChb
aWRlbnRpZmllciBpc0VxdWFsVG9TdHJpbmc6V0tFbGVtZW50QWN0aW9uVHlwZVJldmVhbEltYWdl
SWRlbnRpZmllcl0pCiAgICAgICAgIHJldHVybiBfV0tFbGVtZW50QWN0aW9uVHlwZVJldmVhbElt
YWdlOworICAgIGlmIChbaWRlbnRpZmllciBpc0VxdWFsVG9TdHJpbmc6V0tFbGVtZW50QWN0aW9u
VHlwZUNvcHlDcm9wcGVkSW1hZ2VJZGVudGlmaWVyXSkKKyAgICAgICAgcmV0dXJuIF9XS0VsZW1l
bnRBY3Rpb25UeXBlQ29weUNyb3BwZWRJbWFnZTsKICAgICByZXR1cm4gX1dLRWxlbWVudEFjdGlv
blR5cGVDdXN0b207CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL2lv
cy9XS0FjdGlvblNoZWV0QXNzaXN0YW50LmggYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9pb3Mv
V0tBY3Rpb25TaGVldEFzc2lzdGFudC5oCmluZGV4IDZlOGVlM2RhMzA5MmVhYTJhNzQ0NzZlNTZj
ZTM1MTM2Njk3OTRmNzMuLmU5M2JmNmU3ZWVmYjA2NjIzMjkwZTE5M2Y1ZDkyMzAyN2ZlOWExNDUg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL2lvcy9XS0FjdGlvblNoZWV0QXNz
aXN0YW50LmgKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvaW9zL1dLQWN0aW9uU2hlZXRB
c3Npc3RhbnQuaApAQCAtODUsNiArODUsOSBAQCB0eXBlZGVmIE5TX0VOVU0oTlNJbnRlZ2VyLCBf
V0tFbGVtZW50QWN0aW9uVHlwZSk7CiAtIChCT09MKWFjdGlvblNoZWV0QXNzaXN0YW50OihXS0Fj
dGlvblNoZWV0QXNzaXN0YW50ICopYXNzaXN0YW50IHNob3VsZEluY2x1ZGVMb29rVXBJbWFnZUFj
dGlvbkZvckVsZW1lbnQ6KF9XS0FjdGl2YXRlZEVsZW1lbnRJbmZvICopZWxlbWVudDsKIC0gKHZv
aWQpYWN0aW9uU2hlZXRBc3Npc3RhbnQ6KFdLQWN0aW9uU2hlZXRBc3Npc3RhbnQgKilhc3Npc3Rh
bnQgbG9va1VwSW1hZ2U6KFVJSW1hZ2UgKilpbWFnZSBpbWFnZVVSTDooTlNVUkwgKilpbWFnZVVS
TCB0aXRsZTooTlNTdHJpbmcgKil0aXRsZSBpbWFnZUJvdW5kczooQ0dSZWN0KWltYWdlQm91bmRz
OwogI2VuZGlmCisjaWYgRU5BQkxFKElNQUdFX0FOQUxZU0lTX0VOSEFOQ0VNRU5UUykKKy0gKHZv
aWQpYWN0aW9uU2hlZXRBc3Npc3RhbnQ6KFdLQWN0aW9uU2hlZXRBc3Npc3RhbnQgKilhc3Npc3Rh
bnQgY29weUNyb3BwZWRJbWFnZTooVUlJbWFnZSAqKWltYWdlIHNvdXJjZU1JTUVUeXBlOihOU1N0
cmluZyAqKXNvdXJjZU1JTUVUeXBlOworI2VuZGlmCiBAZW5kCiAKICNpZiBVU0UoVUlDT05URVhU
TUVOVSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL2lvcy9XS0FjdGlvblNo
ZWV0QXNzaXN0YW50Lm1tIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvaW9zL1dLQWN0aW9uU2hl
ZXRBc3Npc3RhbnQubW0KaW5kZXggNWU1NzRiMmIxZGI5NzhiY2ZlNzkxZDczMTExNTU0ZWE3YWE3
MmEyOC4uYzlhZTFhNjY3NzcxYjI2MTA5NTg1NGVhZTU5ZTI4NWFiNzUyZjY3YiAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvaW9zL1dLQWN0aW9uU2hlZXRBc3Npc3RhbnQubW0K
KysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvaW9zL1dLQWN0aW9uU2hlZXRBc3Npc3RhbnQu
bW0KQEAgLTI5LDcgKzI5LDcgQEAKICNpZiBQTEFURk9STShJT1NfRkFNSUxZKQogCiAjaW1wb3J0
ICJBUElVSUNsaWVudC5oIgotI2ltcG9ydCAiVENDU29mdExpbmsuaCIKKyNpbXBvcnQgIlRleHRS
ZWNvZ25pdGlvblV0aWxpdGllcy5oIgogI2ltcG9ydCAiVUlLaXRTUEkuaCIKICNpbXBvcnQgIldL
QWN0aW9uU2hlZXQuaCIKICNpbXBvcnQgIldLQ29udGVudFZpZXdJbnRlcmFjdGlvbi5oIgpAQCAt
NjIsNiArNjIsOCBAQCBTT0ZUX0xJTktfRlJBTUVXT1JLKFNhZmFyaVNlcnZpY2VzKQogU09GVF9M
SU5LX0NMQVNTKFNhZmFyaVNlcnZpY2VzLCBTU1JlYWRpbmdMaXN0KQogI2VuZGlmCiAKKyNpbXBv
cnQgIlRDQ1NvZnRMaW5rLmgiCisKIE9CSkNfQ0xBU1MgRERBY3Rpb247CiAKICNpZiBIQVZFKEFQ
UF9MSU5LUykKQEAgLTM5Nyw3ICszOTksNyBAQCAtICh2b2lkKXNob3dJbWFnZVNoZWV0CiAgICAg
ICAgIGlmICghdGFyZ2V0VVJMKQogICAgICAgICAgICAgdGFyZ2V0VVJMID0gYWx0ZXJuYXRlVVJM
OwogICAgICAgICBhdXRvIGVsZW1lbnRCb3VuZHMgPSBfcG9zaXRpb25JbmZvcm1hdGlvbi0+Ym91
bmRzOwotICAgICAgICBhdXRvIGVsZW1lbnRJbmZvID0gYWRvcHROUyhbW19XS0FjdGl2YXRlZEVs
ZW1lbnRJbmZvIGFsbG9jXSBfaW5pdFdpdGhUeXBlOl9XS0FjdGl2YXRlZEVsZW1lbnRUeXBlSW1h
Z2UgVVJMOnRhcmdldFVSTCBpbWFnZVVSTDppbWFnZVVSTCBsb2NhdGlvbjpfcG9zaXRpb25JbmZv
cm1hdGlvbi0+cmVxdWVzdC5wb2ludCB0aXRsZTpfcG9zaXRpb25JbmZvcm1hdGlvbi0+dGl0bGUg
SUQ6X3Bvc2l0aW9uSW5mb3JtYXRpb24tPmlkQXR0cmlidXRlIHJlY3Q6ZWxlbWVudEJvdW5kcyBp
bWFnZTpfcG9zaXRpb25JbmZvcm1hdGlvbi0+aW1hZ2UuZ2V0KCkgdXNlckluZm86dXNlckluZm9d
KTsKKyAgICAgICAgYXV0byBlbGVtZW50SW5mbyA9IGFkb3B0TlMoW1tfV0tBY3RpdmF0ZWRFbGVt
ZW50SW5mbyBhbGxvY10gX2luaXRXaXRoVHlwZTpfV0tBY3RpdmF0ZWRFbGVtZW50VHlwZUltYWdl
IFVSTDp0YXJnZXRVUkwgaW1hZ2VVUkw6aW1hZ2VVUkwgbG9jYXRpb246X3Bvc2l0aW9uSW5mb3Jt
YXRpb24tPnJlcXVlc3QucG9pbnQgdGl0bGU6X3Bvc2l0aW9uSW5mb3JtYXRpb24tPnRpdGxlIElE
Ol9wb3NpdGlvbkluZm9ybWF0aW9uLT5pZEF0dHJpYnV0ZSByZWN0OmVsZW1lbnRCb3VuZHMgaW1h
Z2U6X3Bvc2l0aW9uSW5mb3JtYXRpb24tPmltYWdlLmdldCgpIGltYWdlTUlNRVR5cGU6X3Bvc2l0
aW9uSW5mb3JtYXRpb24tPmltYWdlTUlNRVR5cGUgdXNlckluZm86dXNlckluZm9dKTsKICAgICAg
ICAgaWYgKFtkZWxlZ2F0ZSByZXNwb25kc1RvU2VsZWN0b3I6QHNlbGVjdG9yKGFjdGlvblNoZWV0
QXNzaXN0YW50OnNob3dDdXN0b21TaGVldEZvckVsZW1lbnQ6KV0gJiYgW2RlbGVnYXRlIGFjdGlv
blNoZWV0QXNzaXN0YW50OnNlbGYgc2hvd0N1c3RvbVNoZWV0Rm9yRWxlbWVudDplbGVtZW50SW5m
by5nZXQoKV0pCiAgICAgICAgICAgICByZXR1cm47CiAgICAgICAgIGF1dG8gZGVmYXVsdEFjdGlv
bnMgPSBbc2VsZiBkZWZhdWx0QWN0aW9uc0ZvckltYWdlU2hlZXQ6ZWxlbWVudEluZm8uZ2V0KCld
OwpAQCAtNTUxLDE0ICs1NTMsMjAgQEAgLSAoUmV0YWluUHRyPE5TQXJyYXk8X1dLRWxlbWVudEFj
dGlvbiAqPj4pZGVmYXVsdEFjdGlvbnNGb3JMaW5rU2hlZXQ6KF9XS0FjdGl2YXQKICAgICAgICAg
W2RlZmF1bHRBY3Rpb25zIGFkZE9iamVjdDpbX1dLRWxlbWVudEFjdGlvbiBfZWxlbWVudEFjdGlv
bldpdGhUeXBlOl9XS0VsZW1lbnRBY3Rpb25UeXBlU2hhcmUgYXNzaXN0YW50OnNlbGZdXTsKICAg
ICB9CiAKLSNpZiBFTkFCTEUoSU1BR0VfQU5BTFlTSVMpCiAgICAgaWYgKGVsZW1lbnRJbmZvLnR5
cGUgPT0gX1dLQWN0aXZhdGVkRWxlbWVudFR5cGVJbWFnZSB8fCBbZWxlbWVudEluZm8gaW1hZ2Vd
KSB7CisjaWYgRU5BQkxFKElNQUdFX0FOQUxZU0lTX0VOSEFOQ0VNRU5UUykKKyAgICAgICAgaWYg
KFdlYktpdDo6aXNJbWFnZUFuYWx5c2lzTWFya3VwU3lzdGVtRmVhdHVyZUVuYWJsZWQoKSkgewor
ICAgICAgICAgICAgLy8gRklYTUUgKHJkYXI6Ly84ODgzNDMwNCk6IFRoaXMgc2hvdWxkIGJlIGFk
ZGl0aW9uYWxseSBnYXRlZCBvbiB0aGUgcmVsZXZhbnQgVmlzaW9uS2l0IFNQSS4KKyAgICAgICAg
ICAgIFtkZWZhdWx0QWN0aW9ucyBhZGRPYmplY3Q6W19XS0VsZW1lbnRBY3Rpb24gX2VsZW1lbnRB
Y3Rpb25XaXRoVHlwZTpfV0tFbGVtZW50QWN0aW9uVHlwZUNvcHlDcm9wcGVkSW1hZ2UgYXNzaXN0
YW50OnNlbGZdXTsKKyAgICAgICAgfQorI2VuZGlmCisjaWYgRU5BQkxFKElNQUdFX0FOQUxZU0lT
KQogICAgICAgICBpZiAoW19kZWxlZ2F0ZSByZXNwb25kc1RvU2VsZWN0b3I6QHNlbGVjdG9yKGFj
dGlvblNoZWV0QXNzaXN0YW50OnNob3VsZEluY2x1ZGVTaG93VGV4dEFjdGlvbkZvckVsZW1lbnQ6
KV0gJiYgW19kZWxlZ2F0ZSBhY3Rpb25TaGVldEFzc2lzdGFudDpzZWxmIHNob3VsZEluY2x1ZGVT
aG93VGV4dEFjdGlvbkZvckVsZW1lbnQ6ZWxlbWVudEluZm9dKQogICAgICAgICAgICAgW2RlZmF1
bHRBY3Rpb25zIGFkZE9iamVjdDpbX1dLRWxlbWVudEFjdGlvbiBfZWxlbWVudEFjdGlvbldpdGhU
eXBlOl9XS0VsZW1lbnRBY3Rpb25UeXBlSW1hZ2VFeHRyYWN0aW9uIGFzc2lzdGFudDpzZWxmXV07
CiAgICAgICAgIGlmIChbX2RlbGVnYXRlIHJlc3BvbmRzVG9TZWxlY3RvcjpAc2VsZWN0b3IoYWN0
aW9uU2hlZXRBc3Npc3RhbnQ6c2hvdWxkSW5jbHVkZUxvb2tVcEltYWdlQWN0aW9uRm9yRWxlbWVu
dDopXSAmJiBbX2RlbGVnYXRlIGFjdGlvblNoZWV0QXNzaXN0YW50OnNlbGYgc2hvdWxkSW5jbHVk
ZUxvb2tVcEltYWdlQWN0aW9uRm9yRWxlbWVudDplbGVtZW50SW5mb10pCiAgICAgICAgICAgICBb
ZGVmYXVsdEFjdGlvbnMgYWRkT2JqZWN0OltfV0tFbGVtZW50QWN0aW9uIF9lbGVtZW50QWN0aW9u
V2l0aFR5cGU6X1dLRWxlbWVudEFjdGlvblR5cGVSZXZlYWxJbWFnZSBhc3Npc3RhbnQ6c2VsZl1d
OwotICAgIH0KICNlbmRpZgorICAgIH0KIAogICAgIHJldHVybiBkZWZhdWx0QWN0aW9uczsKIH0K
QEAgLTU4Miw2ICs1OTAsMTIgQEAgLSAoUmV0YWluUHRyPE5TQXJyYXk8X1dLRWxlbWVudEFjdGlv
biAqPj4pZGVmYXVsdEFjdGlvbnNGb3JJbWFnZVNoZWV0OihfV0tBY3RpdmEKICAgICAgICAgW2Rl
ZmF1bHRBY3Rpb25zIGFkZE9iamVjdDpbX1dLRWxlbWVudEFjdGlvbiBfZWxlbWVudEFjdGlvbldp
dGhUeXBlOl9XS0VsZW1lbnRBY3Rpb25UeXBlU2F2ZUltYWdlIGFzc2lzdGFudDpzZWxmXV07CiAK
ICAgICBbZGVmYXVsdEFjdGlvbnMgYWRkT2JqZWN0OltfV0tFbGVtZW50QWN0aW9uIF9lbGVtZW50
QWN0aW9uV2l0aFR5cGU6X1dLRWxlbWVudEFjdGlvblR5cGVDb3B5IGFzc2lzdGFudDpzZWxmXV07
CisjaWYgRU5BQkxFKElNQUdFX0FOQUxZU0lTX0VOSEFOQ0VNRU5UUykKKyAgICBpZiAoV2ViS2l0
Ojppc0ltYWdlQW5hbHlzaXNNYXJrdXBTeXN0ZW1GZWF0dXJlRW5hYmxlZCgpKSB7CisgICAgICAg
IC8vIEZJWE1FIChyZGFyOi8vODg4MzQzMDQpOiBUaGlzIHNob3VsZCBiZSBhZGRpdGlvbmFsbHkg
Z2F0ZWQgb24gdGhlIHJlbGV2YW50IFZpc2lvbktpdCBTUEkuCisgICAgICAgIFtkZWZhdWx0QWN0
aW9ucyBhZGRPYmplY3Q6W19XS0VsZW1lbnRBY3Rpb24gX2VsZW1lbnRBY3Rpb25XaXRoVHlwZTpf
V0tFbGVtZW50QWN0aW9uVHlwZUNvcHlDcm9wcGVkSW1hZ2UgYXNzaXN0YW50OnNlbGZdXTsKKyAg
ICB9CisjZW5kaWYKIAogI2lmIEVOQUJMRShJTUFHRV9BTkFMWVNJUykKICAgICBpZiAoW19kZWxl
Z2F0ZSByZXNwb25kc1RvU2VsZWN0b3I6QHNlbGVjdG9yKGFjdGlvblNoZWV0QXNzaXN0YW50OnNo
b3VsZEluY2x1ZGVTaG93VGV4dEFjdGlvbkZvckVsZW1lbnQ6KV0gJiYgW19kZWxlZ2F0ZSBhY3Rp
b25TaGVldEFzc2lzdGFudDpzZWxmIHNob3VsZEluY2x1ZGVTaG93VGV4dEFjdGlvbkZvckVsZW1l
bnQ6ZWxlbWVudEluZm9dKQpAQCAtNjE0LDcgKzYyOCw3IEBAIC0gKHZvaWQpc2hvd0xpbmtTaGVl
dAogICAgICAgICByZXR1cm47CiAgICAgfQogCi0gICAgYXV0byBlbGVtZW50SW5mbyA9IGFkb3B0
TlMoW1tfV0tBY3RpdmF0ZWRFbGVtZW50SW5mbyBhbGxvY10gX2luaXRXaXRoVHlwZTpfV0tBY3Rp
dmF0ZWRFbGVtZW50VHlwZUxpbmsgVVJMOnRhcmdldFVSTCBpbWFnZVVSTDooTlNVUkwqKV9wb3Np
dGlvbkluZm9ybWF0aW9uLT5pbWFnZVVSTCBsb2NhdGlvbjpfcG9zaXRpb25JbmZvcm1hdGlvbi0+
cmVxdWVzdC5wb2ludCB0aXRsZTpfcG9zaXRpb25JbmZvcm1hdGlvbi0+dGl0bGUgSUQ6X3Bvc2l0
aW9uSW5mb3JtYXRpb24tPmlkQXR0cmlidXRlIHJlY3Q6X3Bvc2l0aW9uSW5mb3JtYXRpb24tPmJv
dW5kcyBpbWFnZTpfcG9zaXRpb25JbmZvcm1hdGlvbi0+aW1hZ2UuZ2V0KCldKTsKKyAgICBhdXRv
IGVsZW1lbnRJbmZvID0gYWRvcHROUyhbW19XS0FjdGl2YXRlZEVsZW1lbnRJbmZvIGFsbG9jXSBf
aW5pdFdpdGhUeXBlOl9XS0FjdGl2YXRlZEVsZW1lbnRUeXBlTGluayBVUkw6dGFyZ2V0VVJMIGlt
YWdlVVJMOihOU1VSTCopX3Bvc2l0aW9uSW5mb3JtYXRpb24tPmltYWdlVVJMIGxvY2F0aW9uOl9w
b3NpdGlvbkluZm9ybWF0aW9uLT5yZXF1ZXN0LnBvaW50IHRpdGxlOl9wb3NpdGlvbkluZm9ybWF0
aW9uLT50aXRsZSBJRDpfcG9zaXRpb25JbmZvcm1hdGlvbi0+aWRBdHRyaWJ1dGUgcmVjdDpfcG9z
aXRpb25JbmZvcm1hdGlvbi0+Ym91bmRzIGltYWdlOl9wb3NpdGlvbkluZm9ybWF0aW9uLT5pbWFn
ZS5nZXQoKSBpbWFnZU1JTUVUeXBlOl9wb3NpdGlvbkluZm9ybWF0aW9uLT5pbWFnZU1JTUVUeXBl
XSk7CiAgICAgaWYgKFtfZGVsZWdhdGUgcmVzcG9uZHNUb1NlbGVjdG9yOkBzZWxlY3RvcihhY3Rp
b25TaGVldEFzc2lzdGFudDpzaG93Q3VzdG9tU2hlZXRGb3JFbGVtZW50OildICYmIFtfZGVsZWdh
dGUgYWN0aW9uU2hlZXRBc3Npc3RhbnQ6c2VsZiBzaG93Q3VzdG9tU2hlZXRGb3JFbGVtZW50OmVs
ZW1lbnRJbmZvLmdldCgpXSkgewogICAgICAgICBfbmVlZHNMaW5rSW5kaWNhdG9yID0gTk87CiAg
ICAgICAgIHJldHVybjsKQEAgLTEwMzEsNiArMTA0NSwxMSBAQCAtICh2b2lkKWhhbmRsZUVsZW1l
bnRBY3Rpb25XaXRoVHlwZTooX1dLRWxlbWVudEFjdGlvblR5cGUpdHlwZSBlbGVtZW50OihfV0tB
Y3RpdgogICAgIGNhc2UgX1dLRWxlbWVudEFjdGlvblR5cGVSZXZlYWxJbWFnZToKICNpZiBFTkFC
TEUoSU1BR0VfQU5BTFlTSVMpCiAgICAgICAgIFtkZWxlZ2F0ZSBhY3Rpb25TaGVldEFzc2lzdGFu
dDpzZWxmIGxvb2tVcEltYWdlOmVsZW1lbnQuaW1hZ2UgaW1hZ2VVUkw6ZWxlbWVudC5pbWFnZVVS
TCB0aXRsZTplbGVtZW50LnRpdGxlIGltYWdlQm91bmRzOmVsZW1lbnQuYm91bmRpbmdSZWN0XTsK
KyNlbmRpZgorICAgICAgICBicmVhazsKKyAgICBjYXNlIF9XS0VsZW1lbnRBY3Rpb25UeXBlQ29w
eUNyb3BwZWRJbWFnZToKKyNpZiBFTkFCTEUoSU1BR0VfQU5BTFlTSVNfRU5IQU5DRU1FTlRTKQor
ICAgICAgICBbZGVsZWdhdGUgYWN0aW9uU2hlZXRBc3Npc3RhbnQ6c2VsZiBjb3B5Q3JvcHBlZElt
YWdlOmVsZW1lbnQuaW1hZ2Ugc291cmNlTUlNRVR5cGU6ZWxlbWVudC5pbWFnZU1JTUVUeXBlXTsK
ICNlbmRpZgogICAgICAgICBicmVhazsKICAgICBkZWZhdWx0OgpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYktpdC9VSVByb2Nlc3MvaW9zL1dLQ29udGVudFZpZXdJbnRlcmFjdGlvbi5tbSBiL1NvdXJj
ZS9XZWJLaXQvVUlQcm9jZXNzL2lvcy9XS0NvbnRlbnRWaWV3SW50ZXJhY3Rpb24ubW0KaW5kZXgg
MDljNDkxZWRjZjQzM2IyYmZiMDcwN2U4YmJjYWQ3YTc2ZWNkZDMxNS4uMDE5NjU2NjhjZDI5OTNk
ZWRkZDlhOTZlNzc3MGFkN2VlZDc2OTY3OSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVBy
b2Nlc3MvaW9zL1dLQ29udGVudFZpZXdJbnRlcmFjdGlvbi5tbQorKysgYi9Tb3VyY2UvV2ViS2l0
L1VJUHJvY2Vzcy9pb3MvV0tDb250ZW50Vmlld0ludGVyYWN0aW9uLm1tCkBAIC0yOSw2ICsyOSw3
IEBACiAjaWYgUExBVEZPUk0oSU9TX0ZBTUlMWSkKIAogI2ltcG9ydCAiQVBJVUlDbGllbnQuaCIK
KyNpbXBvcnQgIkNvY29hSW1hZ2UuaCIKICNpbXBvcnQgIkNvbXBsZXRpb25IYW5kbGVyQ2FsbENo
ZWNrZXIuaCIKICNpbXBvcnQgIkRvY3VtZW50RWRpdGluZ0NvbnRleHQuaCIKICNpbXBvcnQgIklu
cHV0Vmlld1VwZGF0ZURlZmVycmVyLmgiCkBAIC0zNzYsMjAgKzM3Nyw2IEBAIHByaXZhdGU6CiAg
ICAgYm9vbCBtX3Nob3VsZFByZXZlbnRUZXh0U2VsZWN0aW9uIHsgZmFsc2UgfTsKIH07CiAKLXN0
YXRpYyBSZXRhaW5QdHI8TlNEYXRhPiB0cmFuc2NvZGUoQ0dJbWFnZVJlZiBpbWFnZSwgQ0ZTdHJp
bmdSZWYgdHlwZUlkZW50aWZpZXIpCi17Ci0gICAgaWYgKCFpbWFnZSkKLSAgICAgICAgcmV0dXJu
IG5pbDsKLQotICAgIGF1dG8gZGF0YSA9IGFkb3B0TlMoW1tOU011dGFibGVEYXRhIGFsbG9jXSBp
bml0XSk7Ci0gICAgYXV0byBkZXN0aW5hdGlvbiA9IGFkb3B0Q0YoQ0dJbWFnZURlc3RpbmF0aW9u
Q3JlYXRlV2l0aERhdGEoKF9fYnJpZGdlIENGTXV0YWJsZURhdGFSZWYpZGF0YS5nZXQoKSwgdHlw
ZUlkZW50aWZpZXIsIDEsIG5pbCkpOwotICAgIENHSW1hZ2VEZXN0aW5hdGlvbkFkZEltYWdlKGRl
c3RpbmF0aW9uLmdldCgpLCBpbWFnZSwgbmlsKTsKLSAgICBpZiAoIUNHSW1hZ2VEZXN0aW5hdGlv
bkZpbmFsaXplKGRlc3RpbmF0aW9uLmdldCgpKSkKLSAgICAgICAgcmV0dXJuIG5pbDsKLQotICAg
IHJldHVybiBkYXRhOwotfQotCiAjZW5kaWYgLy8gRU5BQkxFKElNQUdFX0FOQUxZU0lTKQogCiB9
IC8vIG5hbWVzcGFjZSBXZWJLaXQKQEAgLTI2MjksNyArMjYxNiw3IEBAIC0gKHZvaWQpX3Nob3dB
dHRhY2htZW50U2hlZXQKICAgICBpZiAoIVt1aURlbGVnYXRlIHJlc3BvbmRzVG9TZWxlY3RvcjpA
c2VsZWN0b3IoX3dlYlZpZXc6c2hvd0N1c3RvbVNoZWV0Rm9yRWxlbWVudDopXSkKICAgICAgICAg
cmV0dXJuOwogCi0gICAgYXV0byBlbGVtZW50ID0gYWRvcHROUyhbW19XS0FjdGl2YXRlZEVsZW1l
bnRJbmZvIGFsbG9jXSBfaW5pdFdpdGhUeXBlOl9XS0FjdGl2YXRlZEVsZW1lbnRUeXBlQXR0YWNo
bWVudCBVUkw6KE5TVVJMICopX3Bvc2l0aW9uSW5mb3JtYXRpb24udXJsIGltYWdlVVJMOihOU1VS
TCAqKV9wb3NpdGlvbkluZm9ybWF0aW9uLmltYWdlVVJMIGxvY2F0aW9uOl9wb3NpdGlvbkluZm9y
bWF0aW9uLnJlcXVlc3QucG9pbnQgdGl0bGU6X3Bvc2l0aW9uSW5mb3JtYXRpb24udGl0bGUgSUQ6
X3Bvc2l0aW9uSW5mb3JtYXRpb24uaWRBdHRyaWJ1dGUgcmVjdDpfcG9zaXRpb25JbmZvcm1hdGlv
bi5ib3VuZHMgaW1hZ2U6bmlsXSk7CisgICAgYXV0byBlbGVtZW50ID0gYWRvcHROUyhbW19XS0Fj
dGl2YXRlZEVsZW1lbnRJbmZvIGFsbG9jXSBfaW5pdFdpdGhUeXBlOl9XS0FjdGl2YXRlZEVsZW1l
bnRUeXBlQXR0YWNobWVudCBVUkw6KE5TVVJMICopX3Bvc2l0aW9uSW5mb3JtYXRpb24udXJsIGlt
YWdlVVJMOihOU1VSTCAqKV9wb3NpdGlvbkluZm9ybWF0aW9uLmltYWdlVVJMIGxvY2F0aW9uOl9w
b3NpdGlvbkluZm9ybWF0aW9uLnJlcXVlc3QucG9pbnQgdGl0bGU6X3Bvc2l0aW9uSW5mb3JtYXRp
b24udGl0bGUgSUQ6X3Bvc2l0aW9uSW5mb3JtYXRpb24uaWRBdHRyaWJ1dGUgcmVjdDpfcG9zaXRp
b25JbmZvcm1hdGlvbi5ib3VuZHMgaW1hZ2U6bmlsIGltYWdlTUlNRVR5cGU6X3Bvc2l0aW9uSW5m
b3JtYXRpb24uaW1hZ2VNSU1FVHlwZV0pOwogICAgIEFMTE9XX0RFUFJFQ0FURURfREVDTEFSQVRJ
T05TX0JFR0lOCiAgICAgW3VpRGVsZWdhdGUgX3dlYlZpZXc6c2VsZi53ZWJWaWV3IHNob3dDdXN0
b21TaGVldEZvckVsZW1lbnQ6ZWxlbWVudC5nZXQoKV07CiAgICAgQUxMT1dfREVQUkVDQVRFRF9E
RUNMQVJBVElPTlNfRU5ECkBAIC00NzAwLDE1ICs0Njg3LDggQEAgLSAodm9pZClwZXJmb3JtSW1h
Z2VBbmFseXNpc01hcmt1cDooaWQpc2VuZGVyCiAgICAgICAgIHJldHVybjsKIAogICAgIGF1dG8g
W2VsZW1lbnRDb250ZXh0LCBpbWFnZSwgcHJlZmVycmVkTUlNRVR5cGVdID0gKl9pbWFnZUFuYWx5
c2lzTWFya3VwRGF0YTsKLSAgICBhdXRvIHRhcmdldFR5cGUgPSBSZXRhaW5QdHIgeyBVVFR5cGVU
SUZGLmlkZW50aWZpZXIgfTsKLSAgICBpZiAoIXByZWZlcnJlZE1JTUVUeXBlLmlzRW1wdHkoKSkg
ewotICAgICAgICBOU1N0cmluZyAqcHJlZmVycmVkVHlwZUlkZW50aWZpZXIgPSBbVVRUeXBlIHR5
cGVXaXRoTUlNRVR5cGU6cHJlZmVycmVkTUlNRVR5cGUgY29uZm9ybWluZ1RvVHlwZTpVVFR5cGVJ
bWFnZV0uaWRlbnRpZmllcjsKLSAgICAgICAgaWYgKFdlYkNvcmU6OmlzU3VwcG9ydGVkSW1hZ2VU
eXBlKHByZWZlcnJlZFR5cGVJZGVudGlmaWVyKSkKLSAgICAgICAgICAgIHRhcmdldFR5cGUgPSBw
cmVmZXJyZWRUeXBlSWRlbnRpZmllcjsKLSAgICB9Ci0KLSAgICBpZiAoYXV0byBkYXRhID0gV2Vi
S2l0Ojp0cmFuc2NvZGUoaW1hZ2UuZ2V0KCksIChfX2JyaWRnZSBDRlN0cmluZ1JlZil0YXJnZXRU
eXBlLmdldCgpKTsgW2RhdGEgbGVuZ3RoXSkKLSAgICAgICAgX3BhZ2UtPnJlcGxhY2VTZWxlY3Rp
b25XaXRoUGFzdGVib2FyZERhdGEoeyBTdHJpbmcgeyB0YXJnZXRUeXBlLmdldCgpIH0gfSwgeyBz
dGF0aWNfY2FzdDxjb25zdCB1aW50OF90Kj4oW2RhdGEgYnl0ZXNdKSwgW2RhdGEgbGVuZ3RoXSB9
KTsKKyAgICBpZiAoYXV0byBbZGF0YSwgdHlwZV0gPSBXZWJLaXQ6OnRyYW5zY29kZVdpdGhQcmVm
ZXJyZWRNSU1FVHlwZShpbWFnZS5nZXQoKSwgcHJlZmVycmVkTUlNRVR5cGUuY3JlYXRlQ0ZTdHJp
bmcoKS5nZXQoKSwgKF9fYnJpZGdlIENGU3RyaW5nUmVmKVVUVHlwZVRJRkYuaWRlbnRpZmllcik7
IGRhdGEpCisgICAgICAgIF9wYWdlLT5yZXBsYWNlU2VsZWN0aW9uV2l0aFBhc3RlYm9hcmREYXRh
KHsgU3RyaW5nIHsgdHlwZS5nZXQoKSB9IH0sIHsgc3RhdGljX2Nhc3Q8Y29uc3QgdWludDhfdCo+
KFtkYXRhIGJ5dGVzXSksIFtkYXRhIGxlbmd0aF0gfSk7CiB9CiAKIC0gKHZvaWQpZG9BZnRlckNv
bXB1dGluZ0ltYWdlQW5hbHlzaXNSZXN1bHRzRm9yTWFya3VwOihDb21wbGV0aW9uSGFuZGxlcjx2
b2lkKCk+JiYpY29tcGxldGlvbgpAQCAtNDc1MCwyMCArNDczMCw3IEBAIC0gKHZvaWQpZG9BZnRl
ckNvbXB1dGluZ0ltYWdlQW5hbHlzaXNSZXN1bHRzRm9yTWFya3VwOihDb21wbGV0aW9uSGFuZGxl
cjx2b2lkKCk+CiAgICAgICAgICAgICByZXR1cm47CiAgICAgICAgIH0KIAotICAgICAgICAvLyBG
SVhNRTogQ2hlY2sgdG8gc2VlIGlmIHdlIGNhbiBhdm9pZCB0aGlzIGV4dHJhIHRyYW5zY29kaW5n
IHN0ZXAgb25jZSBWaXNpb25LaXQgc3RhcnRzIHVzaW5nIGBtZWRpYWFuYWx5c2lzZGAgZm9yIHRo
aXMuCi0gICAgICAgIGF1dG8gdGlmZkRhdGEgPSBXZWJLaXQ6OnRyYW5zY29kZShjZ0ltYWdlLmdl
dCgpLCAoX19icmlkZ2UgQ0ZTdHJpbmdSZWYpVVRUeXBlVElGRi5pZGVudGlmaWVyKTsKLSAgICAg
ICAgaWYgKCFbdGlmZkRhdGEgbGVuZ3RoXSkgewotICAgICAgICAgICAgY29tcGxldGlvbigpOwot
ICAgICAgICAgICAgcmV0dXJuOwotICAgICAgICB9Ci0KLSAgICAgICAgUmV0YWluUHRyIHRyYW5z
Y29kZWRJbWFnZSA9IFtVSUltYWdlIGltYWdlV2l0aERhdGE6dGlmZkRhdGEuZ2V0KCldOwotICAg
ICAgICBpZiAoIXRyYW5zY29kZWRJbWFnZSkgewotICAgICAgICAgICAgY29tcGxldGlvbigpOwot
ICAgICAgICAgICAgcmV0dXJuOwotICAgICAgICB9Ci0KLSAgICAgICAgV2ViS2l0OjpyZXF1ZXN0
SW1hZ2VBbmFseXNpc01hcmt1cChbdHJhbnNjb2RlZEltYWdlIENHSW1hZ2VdLCBbc291cmNlTUlN
RVR5cGUsIGNvbnRleHQsIGNvbXBsZXRpb24gPSBXVEZNb3ZlKGNvbXBsZXRpb24pLCB3ZWFrU2Vs
Zl0oQ0dJbWFnZVJlZiByZXN1bHQpIG11dGFibGUgeworICAgICAgICBXZWJLaXQ6OnJlcXVlc3RJ
bWFnZUFuYWx5c2lzTWFya3VwKGNnSW1hZ2UuZ2V0KCksIFtzb3VyY2VNSU1FVHlwZSwgY29udGV4
dCwgY29tcGxldGlvbiA9IFdURk1vdmUoY29tcGxldGlvbiksIHdlYWtTZWxmXShDR0ltYWdlUmVm
IHJlc3VsdCkgbXV0YWJsZSB7CiAgICAgICAgICAgICBhdXRvIHN0cm9uZ1NlbGYgPSB3ZWFrU2Vs
Zi5nZXQoKTsKICAgICAgICAgICAgIGlmICghc3Ryb25nU2VsZikgewogICAgICAgICAgICAgICAg
IGNvbXBsZXRpb24oKTsKQEAgLTEwODgwLDYgKzEwODQ3LDMwIEBAIC0gKHZvaWQpY2FwdHVyZVRl
eHRGcm9tQ2FtZXJhRm9yV2ViVmlldzooaWQpc2VuZGVyCiAKICNlbmRpZiAvLyBFTkFCTEUoSU1B
R0VfQU5BTFlTSVMpCiAKKyNpZiBFTkFCTEUoSU1BR0VfQU5BTFlTSVNfRU5IQU5DRU1FTlRTKQor
CistICh2b2lkKWFjdGlvblNoZWV0QXNzaXN0YW50OihXS0FjdGlvblNoZWV0QXNzaXN0YW50ICop
YXNzaXN0YW50IGNvcHlDcm9wcGVkSW1hZ2U6KFVJSW1hZ2UgKilpbWFnZSBzb3VyY2VNSU1FVHlw
ZTooTlNTdHJpbmcgKilzb3VyY2VNSU1FVHlwZQoreworICAgIGF1dG8gY2hhbmdlQ291bnQgPSBV
SVBhc3RlYm9hcmQuZ2VuZXJhbFBhc3RlYm9hcmQuY2hhbmdlQ291bnQ7CisgICAgV2ViS2l0Ojpy
ZXF1ZXN0SW1hZ2VBbmFseXNpc01hcmt1cChpbWFnZS5DR0ltYWdlLCBbY2hhbmdlQ291bnQsIHdl
YWtTZWxmID0gV2Vha09iakNQdHI8V0tDb250ZW50Vmlldz4oc2VsZiksIG9yaWdpbmFsSW1hZ2Ug
PSBSZXRhaW5QdHIgeyBpbWFnZSB9LCBzb3VyY2VNSU1FVHlwZSA9IFJldGFpblB0ciB7IHNvdXJj
ZU1JTUVUeXBlIH1dKENHSW1hZ2VSZWYgcmVzdWx0KSBtdXRhYmxlIHsKKyAgICAgICAgYXV0byBz
dHJvbmdTZWxmID0gd2Vha1NlbGYuZ2V0KCk7CisgICAgICAgIGlmICghc3Ryb25nU2VsZikKKyAg
ICAgICAgICAgIHJldHVybjsKKworICAgICAgICBhdXRvIFtkYXRhLCB0eXBlXSA9IFdlYktpdDo6
dHJhbnNjb2RlV2l0aFByZWZlcnJlZE1JTUVUeXBlKHJlc3VsdCA/OiBbb3JpZ2luYWxJbWFnZSBD
R0ltYWdlXSwgKF9fYnJpZGdlIENGU3RyaW5nUmVmKXNvdXJjZU1JTUVUeXBlLmdldCgpLCAoX19i
cmlkZ2UgQ0ZTdHJpbmdSZWYpVVRUeXBlVElGRi5pZGVudGlmaWVyKTsKKyAgICAgICAgaWYgKCFk
YXRhKQorICAgICAgICAgICAgcmV0dXJuOworCisgICAgICAgIFtVSVBhc3RlYm9hcmQgX3BlcmZv
cm1Bc0RhdGFPd25lcjpbc3Ryb25nU2VsZiBfZGF0YU93bmVyRm9yQ29weV0gYmxvY2s6W2RhdGEg
PSBXVEZNb3ZlKGRhdGEpLCB0eXBlID0gV1RGTW92ZSh0eXBlKSwgY2hhbmdlQ291bnRdIHsKKyAg
ICAgICAgICAgIGF1dG8gcGFzdGVib2FyZCA9IFVJUGFzdGVib2FyZC5nZW5lcmFsUGFzdGVib2Fy
ZDsKKyAgICAgICAgICAgIGlmIChjaGFuZ2VDb3VudCA9PSBwYXN0ZWJvYXJkLmNoYW5nZUNvdW50
KQorICAgICAgICAgICAgICAgIFtwYXN0ZWJvYXJkIHNldERhdGE6ZGF0YS5nZXQoKSBmb3JQYXN0
ZWJvYXJkVHlwZTooX19icmlkZ2UgTlNTdHJpbmcgKil0eXBlLmdldCgpXTsKKyAgICAgICAgfV07
CisgICAgfSk7Cit9CisKKyNlbmRpZiAvLyBFTkFCTEUoSU1BR0VfQU5BTFlTSVNfRU5IQU5DRU1F
TlRTKQorCiAjaWYgVVNFKEFQUExFX0lOVEVSTkFMX1NESykKICNpbXBvcnQgPFdlYktpdEFkZGl0
aW9ucy9XS0NvbnRlbnRWaWV3SW50ZXJhY3Rpb25BZGRpdGlvbnNBZnRlci5tbT4KICNlbHNlCkBA
IC0xMTk2Nyw3ICsxMTk1OCw3IEBAIC0gKE5TRGljdGlvbmFyeSAqKV9kYXRhRm9yUHJldmlld0l0
ZW1Db250cm9sbGVyOihVSVByZXZpZXdJdGVtQ29udHJvbGxlciAqKWNvbnRyCiAgICAgICAgIGRh
dGFGb3JQcmV2aWV3LmdldCgpW1VJUHJldmlld0RhdGFMaW5rXSA9IChOU1VSTCAqKV9wb3NpdGlv
bkluZm9ybWF0aW9uLmltYWdlVVJMOwogICAgIH0gZWxzZSBpZiAoY2FuU2hvd0F0dGFjaG1lbnRQ
cmV2aWV3KSB7CiAgICAgICAgICp0eXBlID0gVUlQcmV2aWV3SXRlbVR5cGVBdHRhY2htZW50Owot
ICAgICAgICBhdXRvIGVsZW1lbnQgPSBhZG9wdE5TKFtbX1dLQWN0aXZhdGVkRWxlbWVudEluZm8g
YWxsb2NdIF9pbml0V2l0aFR5cGU6X1dLQWN0aXZhdGVkRWxlbWVudFR5cGVBdHRhY2htZW50IFVS
TDooTlNVUkwgKilsaW5rVVJMIGltYWdlVVJMOihOU1VSTCAqKV9wb3NpdGlvbkluZm9ybWF0aW9u
LmltYWdlVVJMIGxvY2F0aW9uOl9wb3NpdGlvbkluZm9ybWF0aW9uLnJlcXVlc3QucG9pbnQgdGl0
bGU6X3Bvc2l0aW9uSW5mb3JtYXRpb24udGl0bGUgSUQ6X3Bvc2l0aW9uSW5mb3JtYXRpb24uaWRB
dHRyaWJ1dGUgcmVjdDpfcG9zaXRpb25JbmZvcm1hdGlvbi5ib3VuZHMgaW1hZ2U6bmlsXSk7Cisg
ICAgICAgIGF1dG8gZWxlbWVudCA9IGFkb3B0TlMoW1tfV0tBY3RpdmF0ZWRFbGVtZW50SW5mbyBh
bGxvY10gX2luaXRXaXRoVHlwZTpfV0tBY3RpdmF0ZWRFbGVtZW50VHlwZUF0dGFjaG1lbnQgVVJM
OihOU1VSTCAqKWxpbmtVUkwgaW1hZ2VVUkw6KE5TVVJMICopX3Bvc2l0aW9uSW5mb3JtYXRpb24u
aW1hZ2VVUkwgbG9jYXRpb246X3Bvc2l0aW9uSW5mb3JtYXRpb24ucmVxdWVzdC5wb2ludCB0aXRs
ZTpfcG9zaXRpb25JbmZvcm1hdGlvbi50aXRsZSBJRDpfcG9zaXRpb25JbmZvcm1hdGlvbi5pZEF0
dHJpYnV0ZSByZWN0Ol9wb3NpdGlvbkluZm9ybWF0aW9uLmJvdW5kcyBpbWFnZTpuaWwgaW1hZ2VN
SU1FVHlwZTpfcG9zaXRpb25JbmZvcm1hdGlvbi5pbWFnZU1JTUVUeXBlXSk7CiAgICAgICAgIE5T
VUludGVnZXIgaW5kZXggPSBbdWlEZWxlZ2F0ZSBfd2ViVmlldzpzZWxmLndlYlZpZXcgaW5kZXhJ
bnRvQXR0YWNobWVudExpc3RGb3JFbGVtZW50OmVsZW1lbnQuZ2V0KCldOwogICAgICAgICBpZiAo
aW5kZXggIT0gTlNOb3RGb3VuZCkgewogICAgICAgICAgICAgQk9PTCBzb3VyY2VJc01hbmFnZWQg
PSBOTzsKQEAgLTEyMDA0LDcgKzExOTk1LDcgQEAgLSAoVUlWaWV3Q29udHJvbGxlciAqKV9wcmVz
ZW50ZWRWaWV3Q29udHJvbGxlckZvclByZXZpZXdJdGVtQ29udHJvbGxlcjooVUlQcmV2aWUKIAog
ICAgICAgICAvLyBUcmVhdCBhbmltYXRlZCBpbWFnZXMgbGlrZSBhIGxpbmsgcHJldmlldwogICAg
ICAgICBpZiAoaXNWYWxpZFVSTEZvckltYWdlUHJldmlldyAmJiBfcG9zaXRpb25JbmZvcm1hdGlv
bi5pc0FuaW1hdGVkSW1hZ2UpIHsKLSAgICAgICAgICAgIFJldGFpblB0cjxfV0tBY3RpdmF0ZWRF
bGVtZW50SW5mbz4gYW5pbWF0ZWRJbWFnZUVsZW1lbnRJbmZvID0gYWRvcHROUyhbW19XS0FjdGl2
YXRlZEVsZW1lbnRJbmZvIGFsbG9jXSBfaW5pdFdpdGhUeXBlOl9XS0FjdGl2YXRlZEVsZW1lbnRU
eXBlSW1hZ2UgVVJMOnRhcmdldFVSTCBpbWFnZVVSTDpuaWwgbG9jYXRpb246X3Bvc2l0aW9uSW5m
b3JtYXRpb24ucmVxdWVzdC5wb2ludCB0aXRsZTpfcG9zaXRpb25JbmZvcm1hdGlvbi50aXRsZSBJ
RDpfcG9zaXRpb25JbmZvcm1hdGlvbi5pZEF0dHJpYnV0ZSByZWN0Ol9wb3NpdGlvbkluZm9ybWF0
aW9uLmJvdW5kcyBpbWFnZTpfcG9zaXRpb25JbmZvcm1hdGlvbi5pbWFnZS5nZXQoKV0pOworICAg
ICAgICAgICAgYXV0byBhbmltYXRlZEltYWdlRWxlbWVudEluZm8gPSBhZG9wdE5TKFtbX1dLQWN0
aXZhdGVkRWxlbWVudEluZm8gYWxsb2NdIF9pbml0V2l0aFR5cGU6X1dLQWN0aXZhdGVkRWxlbWVu
dFR5cGVJbWFnZSBVUkw6dGFyZ2V0VVJMIGltYWdlVVJMOm5pbCBsb2NhdGlvbjpfcG9zaXRpb25J
bmZvcm1hdGlvbi5yZXF1ZXN0LnBvaW50IHRpdGxlOl9wb3NpdGlvbkluZm9ybWF0aW9uLnRpdGxl
IElEOl9wb3NpdGlvbkluZm9ybWF0aW9uLmlkQXR0cmlidXRlIHJlY3Q6X3Bvc2l0aW9uSW5mb3Jt
YXRpb24uYm91bmRzIGltYWdlOl9wb3NpdGlvbkluZm9ybWF0aW9uLmltYWdlLmdldCgpIGltYWdl
TUlNRVR5cGU6X3Bvc2l0aW9uSW5mb3JtYXRpb24uaW1hZ2VNSU1FVHlwZV0pOwogCiAgICAgICAg
ICAgICBpZiAoW3VpRGVsZWdhdGUgcmVzcG9uZHNUb1NlbGVjdG9yOkBzZWxlY3Rvcihfd2ViVmll
dzpwcmV2aWV3Vmlld0NvbnRyb2xsZXJGb3JBbmltYXRlZEltYWdlQXRVUkw6ZGVmYXVsdEFjdGlv
bnM6ZWxlbWVudEluZm86aW1hZ2VTaXplOildKSB7CiAgICAgICAgICAgICAgICAgUmV0YWluUHRy
PE5TQXJyYXk+IGFjdGlvbnMgPSBbX2FjdGlvblNoZWV0QXNzaXN0YW50IGRlZmF1bHRBY3Rpb25z
Rm9ySW1hZ2VTaGVldDphbmltYXRlZEltYWdlRWxlbWVudEluZm8uZ2V0KCldOwpAQCAtMTIwMTQs
NyArMTIwMDUsNyBAQCAtIChVSVZpZXdDb250cm9sbGVyICopX3ByZXNlbnRlZFZpZXdDb250cm9s
bGVyRm9yUHJldmlld0l0ZW1Db250cm9sbGVyOihVSVByZXZpZQogICAgICAgICAgICAgfQogICAg
ICAgICB9CiAKLSAgICAgICAgUmV0YWluUHRyPF9XS0FjdGl2YXRlZEVsZW1lbnRJbmZvPiBlbGVt
ZW50SW5mbyA9IGFkb3B0TlMoW1tfV0tBY3RpdmF0ZWRFbGVtZW50SW5mbyBhbGxvY10gX2luaXRX
aXRoVHlwZTpfV0tBY3RpdmF0ZWRFbGVtZW50VHlwZUxpbmsgVVJMOnRhcmdldFVSTCBpbWFnZVVS
TDpuaWwgbG9jYXRpb246X3Bvc2l0aW9uSW5mb3JtYXRpb24ucmVxdWVzdC5wb2ludCB0aXRsZTpf
cG9zaXRpb25JbmZvcm1hdGlvbi50aXRsZSBJRDpfcG9zaXRpb25JbmZvcm1hdGlvbi5pZEF0dHJp
YnV0ZSByZWN0Ol9wb3NpdGlvbkluZm9ybWF0aW9uLmJvdW5kcyBpbWFnZTpfcG9zaXRpb25JbmZv
cm1hdGlvbi5pbWFnZS5nZXQoKV0pOworICAgICAgICBhdXRvIGVsZW1lbnRJbmZvID0gYWRvcHRO
UyhbW19XS0FjdGl2YXRlZEVsZW1lbnRJbmZvIGFsbG9jXSBfaW5pdFdpdGhUeXBlOl9XS0FjdGl2
YXRlZEVsZW1lbnRUeXBlTGluayBVUkw6dGFyZ2V0VVJMIGltYWdlVVJMOm5pbCBsb2NhdGlvbjpf
cG9zaXRpb25JbmZvcm1hdGlvbi5yZXF1ZXN0LnBvaW50IHRpdGxlOl9wb3NpdGlvbkluZm9ybWF0
aW9uLnRpdGxlIElEOl9wb3NpdGlvbkluZm9ybWF0aW9uLmlkQXR0cmlidXRlIHJlY3Q6X3Bvc2l0
aW9uSW5mb3JtYXRpb24uYm91bmRzIGltYWdlOl9wb3NpdGlvbkluZm9ybWF0aW9uLmltYWdlLmdl
dCgpIGltYWdlTUlNRVR5cGU6X3Bvc2l0aW9uSW5mb3JtYXRpb24uaW1hZ2VNSU1FVHlwZV0pOwog
CiAgICAgICAgIGF1dG8gYWN0aW9ucyA9IFtfYWN0aW9uU2hlZXRBc3Npc3RhbnQgZGVmYXVsdEFj
dGlvbnNGb3JMaW5rU2hlZXQ6ZWxlbWVudEluZm8uZ2V0KCldOwogICAgICAgICBpZiAoW3VpRGVs
ZWdhdGUgcmVzcG9uZHNUb1NlbGVjdG9yOkBzZWxlY3Rvcih3ZWJWaWV3OnByZXZpZXdpbmdWaWV3
Q29udHJvbGxlckZvckVsZW1lbnQ6ZGVmYXVsdEFjdGlvbnM6KV0pIHsKQEAgLTEyMDU5LDcgKzEy
MDUwLDcgQEAgLSAoVUlWaWV3Q29udHJvbGxlciAqKV9wcmVzZW50ZWRWaWV3Q29udHJvbGxlckZv
clByZXZpZXdJdGVtQ29udHJvbGxlcjooVUlQcmV2aWUKICAgICAgICAgICAgIGltYWdlSW5mbyA9
IHVzZXJJbmZvOwogICAgICAgICB9CiAKLSAgICAgICAgUmV0YWluUHRyPF9XS0FjdGl2YXRlZEVs
ZW1lbnRJbmZvPiBlbGVtZW50SW5mbyA9IGFkb3B0TlMoW1tfV0tBY3RpdmF0ZWRFbGVtZW50SW5m
byBhbGxvY10gX2luaXRXaXRoVHlwZTpfV0tBY3RpdmF0ZWRFbGVtZW50VHlwZUltYWdlIFVSTDph
bHRlcm5hdGVVUkwuZ2V0KCkgaW1hZ2VVUkw6bmlsIGxvY2F0aW9uOl9wb3NpdGlvbkluZm9ybWF0
aW9uLnJlcXVlc3QucG9pbnQgdGl0bGU6X3Bvc2l0aW9uSW5mb3JtYXRpb24udGl0bGUgSUQ6X3Bv
c2l0aW9uSW5mb3JtYXRpb24uaWRBdHRyaWJ1dGUgcmVjdDpfcG9zaXRpb25JbmZvcm1hdGlvbi5i
b3VuZHMgaW1hZ2U6X3Bvc2l0aW9uSW5mb3JtYXRpb24uaW1hZ2UuZ2V0KCkgdXNlckluZm86aW1h
Z2VJbmZvLmdldCgpXSk7CisgICAgICAgIGF1dG8gZWxlbWVudEluZm8gPSBhZG9wdE5TKFtbX1dL
QWN0aXZhdGVkRWxlbWVudEluZm8gYWxsb2NdIF9pbml0V2l0aFR5cGU6X1dLQWN0aXZhdGVkRWxl
bWVudFR5cGVJbWFnZSBVUkw6YWx0ZXJuYXRlVVJMLmdldCgpIGltYWdlVVJMOm5pbCBsb2NhdGlv
bjpfcG9zaXRpb25JbmZvcm1hdGlvbi5yZXF1ZXN0LnBvaW50IHRpdGxlOl9wb3NpdGlvbkluZm9y
bWF0aW9uLnRpdGxlIElEOl9wb3NpdGlvbkluZm9ybWF0aW9uLmlkQXR0cmlidXRlIHJlY3Q6X3Bv
c2l0aW9uSW5mb3JtYXRpb24uYm91bmRzIGltYWdlOl9wb3NpdGlvbkluZm9ybWF0aW9uLmltYWdl
LmdldCgpIGltYWdlTUlNRVR5cGU6X3Bvc2l0aW9uSW5mb3JtYXRpb24uaW1hZ2VNSU1FVHlwZSB1
c2VySW5mbzppbWFnZUluZm8uZ2V0KCldKTsKICAgICAgICAgX3BhZ2UtPnN0YXJ0SW50ZXJhY3Rp
b25XaXRoUG9zaXRpb25JbmZvcm1hdGlvbihfcG9zaXRpb25JbmZvcm1hdGlvbik7CiAKICAgICAg
ICAgQUxMT1dfREVQUkVDQVRFRF9ERUNMQVJBVElPTlNfQkVHSU4KZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJLaXQvV2ViS2l0Lnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2ogYi9Tb3VyY2UvV2ViS2l0
L1dlYktpdC54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCmluZGV4IDk1N2FhMDZmOGZiZTY4MzY2
MmQ0NDllZGIxYWNhNTNmYjg1NjcwNGUuLjI1YWJkYTVmOGJjY2U2YmI4MTEyMWZmYmVlNTkwOWZk
MGRkZWVjYzYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViS2l0Lnhjb2RlcHJvai9wcm9q
ZWN0LnBieHByb2oKKysrIGIvU291cmNlL1dlYktpdC9XZWJLaXQueGNvZGVwcm9qL3Byb2plY3Qu
cGJ4cHJvagpAQCAtNjU5MSw2ICs2NTkxLDcgQEAKIAkJRjREQkMwQkQyNzZBQTZBNzAwMDFEMTY5
IC8qIF9XS01vZGFsQ29udGFpbmVySW5mby5tbSAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNl
OyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLm9i
amNwcDsgcGF0aCA9IF9XS01vZGFsQ29udGFpbmVySW5mby5tbTsgc291cmNlVHJlZSA9ICI8Z3Jv
dXA+IjsgfTsKIAkJRjREQkMwQzAyNzZBQTZDQTAwMDFEMTY5IC8qIF9XS01vZGFsQ29udGFpbmVy
SW5mb0ludGVybmFsLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmls
ZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IF9XS01vZGFsQ29udGFpbmVySW5mb0ludGVy
bmFsLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUY0RTJCNDRBMjY4RkRFMUEwMDMy
N0FCQyAvKiBUYXBIYW5kbGluZ1Jlc3VsdC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7
IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IG5hbWUgPSBUYXBIYW5kbGluZ1Jl
c3VsdC5oOyBwYXRoID0gaW9zL1RhcEhhbmRsaW5nUmVzdWx0Lmg7IHNvdXJjZVRyZWUgPSAiPGdy
b3VwPiI7IH07CisJCUY0RTQ3QkI1MjdCNUFFNUIwMDgxM0IzOCAvKiBDb2NvYUltYWdlLm1tICov
ID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29k
ZS5jcHAub2JqY3BwOyBwYXRoID0gQ29jb2FJbWFnZS5tbTsgc291cmNlVHJlZSA9ICI8Z3JvdXA+
IjsgfTsKIAkJRjRFQjRBRkMyNjlDRDIzNjAwRDI5N0FFIC8qIE9TU3RhdGVTUEkuaCAqLyA9IHtp
c2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5o
OyBwYXRoID0gT1NTdGF0ZVNQSS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlGNEY1
OUFEMzIwNjVBNUM5MDA2Q0FBNDYgLyogV0tTZWxlY3RNZW51TGlzdFZpZXdDb250cm9sbGVyLm1t
ICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93
bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAub2JqY3BwOyBuYW1lID0gV0tTZWxlY3RNZW51TGlz
dFZpZXdDb250cm9sbGVyLm1tOyBwYXRoID0gaW9zL2Zvcm1zL1dLU2VsZWN0TWVudUxpc3RWaWV3
Q29udHJvbGxlci5tbTsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJRjRGNTlBRDQyMDY1
QTVDQTAwNkNBQTQ2IC8qIFdLU2VsZWN0TWVudUxpc3RWaWV3Q29udHJvbGxlci5oICovID0ge2lz
YSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBl
ID0gc291cmNlY29kZS5jLmg7IG5hbWUgPSBXS1NlbGVjdE1lbnVMaXN0Vmlld0NvbnRyb2xsZXIu
aDsgcGF0aCA9IGlvcy9mb3Jtcy9XS1NlbGVjdE1lbnVMaXN0Vmlld0NvbnRyb2xsZXIuaDsgc291
cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKQEAgLTkzNTIsNiArOTM1Myw3IEBACiAJCQlpc2EgPSBQ
QlhHcm91cDsKIAkJCWNoaWxkcmVuID0gKAogCQkJCTQ0ODI3MzQ2MjQ1MjhGNjAwMEE5NTQ5MyAv
KiBDb2NvYUltYWdlLmggKi8sCisJCQkJRjRFNDdCQjUyN0I1QUU1QjAwODEzQjM4IC8qIENvY29h
SW1hZ2UubW0gKi8sCiAJCQkJQkNFMDkzNzYxNEZCMTI4QjAwMTEzOEQ5IC8qIExheWVySG9zdGlu
Z0NvbnRleHQuaCAqLywKIAkJCQlCQ0UwOTM3NTE0RkIxMjhCMDAxMTM4RDkgLyogTGF5ZXJIb3N0
aW5nQ29udGV4dC5tbSAqLywKIAkJCQlBMTc5OEIzRDIyMkQ5N0EyMDAwNzY0QkQgLyogUGF5bWVu
dEF1dGhvcml6YXRpb25QcmVzZW50ZXIuaCAqLywKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQv
V2ViUHJvY2Vzcy9XZWJQYWdlL2lvcy9XZWJQYWdlSU9TLm1tIGIvU291cmNlL1dlYktpdC9XZWJQ
cm9jZXNzL1dlYlBhZ2UvaW9zL1dlYlBhZ2VJT1MubW0KaW5kZXggMmExMWRjYTAyZTgyYzA3YzBh
ZjQwMTk5M2U2MTBkMzVlZGRhNTU5YS4uMTBmOGMyNGYyMTU0MWIzM2RhZjg3ODhiOWRkYTM3YTNh
Y2IwNzI4MiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvaW9z
L1dlYlBhZ2VJT1MubW0KKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvaW9z
L1dlYlBhZ2VJT1MubW0KQEAgLTI4NDUsNiArMjg0NSw3IEBAIHN0YXRpYyB2b2lkIGltYWdlUG9z
aXRpb25JbmZvcm1hdGlvbihXZWJQYWdlJiBwYWdlLCBFbGVtZW50JiBlbGVtZW50LCBjb25zdCBJ
bnRlCiAgICAgYXV0byYgW3JlbmRlckltYWdlLCBpbWFnZV0gPSAqcmVuZGVyZXJBbmRJbWFnZTsK
ICAgICBpbmZvLmlzSW1hZ2UgPSB0cnVlOwogICAgIGluZm8uaW1hZ2VVUkwgPSBlbGVtZW50LmRv
Y3VtZW50KCkuY29tcGxldGVVUkwocmVuZGVySW1hZ2UuY2FjaGVkSW1hZ2UoKS0+dXJsKCkuc3Ry
aW5nKCkpOworICAgIGluZm8uaW1hZ2VNSU1FVHlwZSA9IGltYWdlLm1pbWVUeXBlKCk7CiAgICAg
aW5mby5pc0FuaW1hdGVkSW1hZ2UgPSBpbWFnZS5pc0FuaW1hdGVkKCk7CiAgICAgaW5mby5lbGVt
ZW50Q29udGFpbnNJbWFnZU92ZXJsYXkgPSBpczxIVE1MRWxlbWVudD4oZWxlbWVudCkgJiYgSW1h
Z2VPdmVybGF5OjpoYXNPdmVybGF5KGRvd25jYXN0PEhUTUxFbGVtZW50PihlbGVtZW50KSk7CiAK
QEAgLTI5MTEsNiArMjkxMiw3IEBAIHN0YXRpYyB2b2lkIGVsZW1lbnRQb3NpdGlvbkluZm9ybWF0
aW9uKFdlYlBhZ2UmIHBhZ2UsIEVsZW1lbnQmIGVsZW1lbnQsIGNvbnN0IEluCiAgICAgICAgICAg
ICAgICAgaWYgKGF1dG8gcmVuZGVyZXJBbmRJbWFnZSA9IGltYWdlUmVuZGVyZXJBbmRJbWFnZShl
bGVtZW50KSkgewogICAgICAgICAgICAgICAgICAgICBhdXRvJiBbcmVuZGVySW1hZ2UsIGltYWdl
XSA9ICpyZW5kZXJlckFuZEltYWdlOwogICAgICAgICAgICAgICAgICAgICBpbmZvLmltYWdlVVJM
ID0gZWxlbWVudC5kb2N1bWVudCgpLmNvbXBsZXRlVVJMKHJlbmRlckltYWdlLmNhY2hlZEltYWdl
KCktPnVybCgpLnN0cmluZygpKTsKKyAgICAgICAgICAgICAgICAgICAgaW5mby5pbWFnZU1JTUVU
eXBlID0gaW1hZ2UubWltZVR5cGUoKTsKICAgICAgICAgICAgICAgICAgICAgaW5mby5pbWFnZSA9
IGNyZWF0ZVNoYXJlYWJsZUJpdG1hcChyZW5kZXJJbWFnZSwgeyBzY3JlZW5TaXplKCkgKiBwYWdl
LmNvcmVQYWdlKCktPmRldmljZVNjYWxlRmFjdG9yKCksIEFsbG93QW5pbWF0ZWRJbWFnZXM6Olll
cywgVXNlU25hcHNob3RGb3JUcmFuc3BhcmVudEltYWdlczo6WWVzIH0pOwogICAgICAgICAgICAg
ICAgIH0KICAgICAgICAgICAgIH0K
</data>

          </attachment>
      

    </bug>

</bugzilla>