<?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>159584</bug_id>
          
          <creation_ts>2016-07-08 16:18:33 -0700</creation_ts>
          <short_desc>Add synthetic click origin to WKNavigationAction</short_desc>
          <delta_ts>2016-07-11 14:58:48 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>WebKit2</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></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Enrica Casucci">enrica</reporter>
          <assigned_to name="Enrica Casucci">enrica</assigned_to>
          <cc>andersca</cc>
    
    <cc>cdumez</cc>
    
    <cc>cmarcelo</cc>
    
    <cc>commit-queue</cc>
    
    <cc>esprehn+autocc</cc>
    
    <cc>kangil.han</cc>
    
    <cc>ryanhaddad</cc>
    
    <cc>sam</cc>
    
    <cc>thorton</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1209298</commentid>
    <comment_count>0</comment_count>
    <who name="Enrica Casucci">enrica</who>
    <bug_when>2016-07-08 16:18:33 -0700</bug_when>
    <thetext>Adding a private property to retrieve the origin of the synthetic click.

rdar://problem/25610422</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1209313</commentid>
    <comment_count>1</comment_count>
      <attachid>283215</attachid>
    <who name="Enrica Casucci">enrica</who>
    <bug_when>2016-07-08 16:28:55 -0700</bug_when>
    <thetext>Created attachment 283215
Path</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1209315</commentid>
    <comment_count>2</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2016-07-08 16:31:25 -0700</bug_when>
    <thetext>Attachment 283215 did not pass style-queue:


ERROR: Source/WebCore/platform/PlatformMouseEvent.h:70:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
ERROR: Source/WebCore/platform/PlatformMouseEvent.h:78:  Wrong number of spaces before statement. (expected: 31)  [whitespace/indent] [4]
ERROR: Source/WebCore/page/DragController.cpp:108:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
ERROR: Source/WebKit/mac/WebView/WebFrame.mm:980:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
ERROR: Source/WebCore/dom/MouseEvent.cpp:102:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
ERROR: Source/WebCore/dom/MouseEvent.cpp:111:  Wrong number of spaces before statement. (expected: 27)  [whitespace/indent] [4]
ERROR: Source/WebCore/dom/SimulatedClick.cpp:52:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
Total errors found: 7 in 36 files


If any of these errors are false positives, please file a bug against check-webkit-style.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1209712</commentid>
    <comment_count>3</comment_count>
    <who name="Tim Horton">thorton</who>
    <bug_when>2016-07-11 11:23:11 -0700</bug_when>
    <thetext>Windows build error:

C:\cygwin\home\buildbot\WebKit\Source\WebKit\win\WebDropSource.cpp(104): error C2440: &apos;&lt;function-style-cast&gt;&apos;: cannot convert from &apos;initializer list&apos; to &apos;WebCore::PlatformMouseEvent&apos; [C:\cygwin\home\buildbot\WebKit\WebKitBuild\Release\Source\WebKit\WebKit.vcxproj]
  C:\cygwin\home\buildbot\WebKit\Source\WebKit\win\WebDropSource.cpp(104): note: No constructor could take the source type, or constructor overload resolution was ambiguous</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1209811</commentid>
    <comment_count>4</comment_count>
    <who name="Enrica Casucci">enrica</who>
    <bug_when>2016-07-11 14:35:41 -0700</bug_when>
    <thetext>Fixed the windows build before landing.
Committed revision 203085.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1209819</commentid>
    <comment_count>5</comment_count>
    <who name="Ryan Haddad">ryanhaddad</who>
    <bug_when>2016-07-11 14:58:48 -0700</bug_when>
    <thetext>(In reply to comment #4)
&gt; Fixed the windows build before landing.
&gt; Committed revision 203085.

This change still appears to have broken the Windows build:
https://build.webkit.org/builders/Apple%20Win%20Release%20%28Build%29/builds/79024</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>283215</attachid>
            <date>2016-07-08 16:28:55 -0700</date>
            <delta_ts>2016-07-11 11:22:28 -0700</delta_ts>
            <desc>Path</desc>
            <filename>synthclicktype.txt</filename>
            <type>text/plain</type>
            <size>63141</size>
            <attacher name="Enrica Casucci">enrica</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDIwMzAwNikKKysrIFNvdXJjZS9XZWJDb3JlL0NoYW5n
ZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDQ5IEBACisyMDE2LTA3LTA4ICBFbnJpY2Eg
Q2FzdWNjaSAgPGVucmljYUBhcHBsZS5jb20+CisKKyAgICAgICAgQWRkIHN5bnRoZXRpYyBjbGlj
ayBvcmlnaW4gdG8gV0tOYXZpZ2F0aW9uQWN0aW9uLgorICAgICAgICBodHRwczovL2J1Z3Mud2Vi
a2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTU5NTg0CisgICAgICAgIHJkYXI6Ly9wcm9ibGVtLzI1
NjEwNDIyCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAg
QWRkaW5nIHBsdW1iaW5nIGNvZGUgdG8gcGFzcyBzeW50aGV0aWMgY2xpY2sgdHlwZQorICAgICAg
ICB0aHJvdWdoIFdlYkNvcmUuCisKKyAgICAgICAgKiBkb20vRWxlbWVudC5jcHA6CisgICAgICAg
IChXZWJDb3JlOjpFbGVtZW50OjpkaXNwYXRjaE1vdXNlRXZlbnQpOgorICAgICAgICAoV2ViQ29y
ZTo6RWxlbWVudDo6ZGlzcGF0Y2hNb3VzZUZvcmNlV2lsbEJlZ2luKToKKyAgICAgICAgKiBkb20v
TW91c2VFdmVudC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpNb3VzZUV2ZW50OjpjcmVhdGUpOgor
ICAgICAgICAoV2ViQ29yZTo6TW91c2VFdmVudDo6TW91c2VFdmVudCk6CisgICAgICAgIChXZWJD
b3JlOjpNb3VzZUV2ZW50Ojppbml0TW91c2VFdmVudCk6CisgICAgICAgIChXZWJDb3JlOjpNb3Vz
ZUV2ZW50OjpjbG9uZUZvcik6CisgICAgICAgICogZG9tL01vdXNlRXZlbnQuaDoKKyAgICAgICAg
KFdlYkNvcmU6Ok1vdXNlRXZlbnQ6OmNyZWF0ZUZvckJpbmRpbmdzKToKKyAgICAgICAgKFdlYkNv
cmU6Ok1vdXNlRXZlbnQ6OmJ1dHRvbik6CisgICAgICAgIChXZWJDb3JlOjpNb3VzZUV2ZW50Ojpz
eW50aGV0aWNDbGlja1R5cGUpOgorICAgICAgICAoV2ViQ29yZTo6TW91c2VFdmVudDo6YnV0dG9u
RG93bik6CisgICAgICAgIChXZWJDb3JlOjpNb3VzZUV2ZW50OjpzZXRSZWxhdGVkVGFyZ2V0KToK
KyAgICAgICAgKiBkb20vU2ltdWxhdGVkQ2xpY2suY3BwOgorICAgICAgICAqIGRvbS9XaGVlbEV2
ZW50LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OldoZWVsRXZlbnQ6OldoZWVsRXZlbnQpOgorICAg
ICAgICAqIHBhZ2UvQ29udGV4dE1lbnVDb250cm9sbGVyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6
OkNvbnRleHRNZW51Q29udHJvbGxlcjo6c2hvd0NvbnRleHRNZW51QXQpOgorICAgICAgICAqIHBh
Z2UvRHJhZ0NvbnRyb2xsZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6Y3JlYXRlTW91c2VFdmVu
dCk6CisgICAgICAgIChXZWJDb3JlOjpEcmFnQ29udHJvbGxlcjo6RHJhZ0NvbnRyb2xsZXIpOgor
ICAgICAgICAqIHBhZ2UvRXZlbnRIYW5kbGVyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkV2ZW50
SGFuZGxlcjo6ZGlzcGF0Y2hEcmFnRXZlbnQpOgorICAgICAgICAoV2ViQ29yZTo6RXZlbnRIYW5k
bGVyOjpzZW5kQ29udGV4dE1lbnVFdmVudEZvcktleSk6CisgICAgICAgIChXZWJDb3JlOjpFdmVu
dEhhbmRsZXI6OmZha2VNb3VzZU1vdmVFdmVudFRpbWVyRmlyZWQpOgorICAgICAgICAqIHBsYXRm
b3JtL1BsYXRmb3JtTW91c2VFdmVudC5oOgorICAgICAgICAoV2ViQ29yZTo6UGxhdGZvcm1Nb3Vz
ZUV2ZW50OjpQbGF0Zm9ybU1vdXNlRXZlbnQpOgorICAgICAgICAoV2ViQ29yZTo6UGxhdGZvcm1N
b3VzZUV2ZW50OjpjbGlja0NvdW50KToKKyAgICAgICAgKFdlYkNvcmU6OlBsYXRmb3JtTW91c2VF
dmVudDo6bW9kaWZpZXJGbGFncyk6CisgICAgICAgIChXZWJDb3JlOjpQbGF0Zm9ybU1vdXNlRXZl
bnQ6OmZvcmNlKToKKyAgICAgICAgKFdlYkNvcmU6OlBsYXRmb3JtTW91c2VFdmVudDo6c3ludGhl
dGljQ2xpY2tUeXBlKToKKyAgICAgICAgKiByZXBsYXkvU2VyaWFsaXphdGlvbk1ldGhvZHMuY3Bw
OgorICAgICAgICAoSlNDOjpFbmNvZGluZ1RyYWl0czxQbGF0Zm9ybU1vdXNlRXZlbnQ+OjpkZWNv
ZGVWYWx1ZSk6CisKIDIwMTYtMDctMDggIEplcmVteSBKb25lcyAgPGplcmVteWpAYXBwbGUuY29t
PgogCiAgICAgICAgIFByZXZlbnQgZnVsbHNjcmVlbiB2aWRlbyBkaW1lbnNpb24gc3RhdGUgZnJv
bSBiZWluZyByZXNldCBhZnRlciBjb25maWd1cmluZy4KSW5kZXg6IFNvdXJjZS9XZWJDb3JlL2Rv
bS9FbGVtZW50LmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9kb20vRWxlbWVudC5j
cHAJKHJldmlzaW9uIDIwMjk1MCkKKysrIFNvdXJjZS9XZWJDb3JlL2RvbS9FbGVtZW50LmNwcAko
d29ya2luZyBjb3B5KQpAQCAtMjkyLDcgKzI5Miw3IEBAIGJvb2wgRWxlbWVudDo6ZGlzcGF0Y2hN
b3VzZUV2ZW50KGNvbnN0IFAKICAgICAgICAgICAgIG1vdXNlRXZlbnQtPmJ1YmJsZXMoKSwgbW91
c2VFdmVudC0+Y2FuY2VsYWJsZSgpLCBtb3VzZUV2ZW50LT52aWV3KCksIG1vdXNlRXZlbnQtPmRl
dGFpbCgpLAogICAgICAgICAgICAgbW91c2VFdmVudC0+c2NyZWVuWCgpLCBtb3VzZUV2ZW50LT5z
Y3JlZW5ZKCksIG1vdXNlRXZlbnQtPmNsaWVudFgoKSwgbW91c2VFdmVudC0+Y2xpZW50WSgpLAog
ICAgICAgICAgICAgbW91c2VFdmVudC0+Y3RybEtleSgpLCBtb3VzZUV2ZW50LT5hbHRLZXkoKSwg
bW91c2VFdmVudC0+c2hpZnRLZXkoKSwgbW91c2VFdmVudC0+bWV0YUtleSgpLAotICAgICAgICAg
ICAgbW91c2VFdmVudC0+YnV0dG9uKCksIHJlbGF0ZWRUYXJnZXQpOworICAgICAgICAgICAgbW91
c2VFdmVudC0+YnV0dG9uKCksIG1vdXNlRXZlbnQtPnN5bnRoZXRpY0NsaWNrVHlwZSgpLCByZWxh
dGVkVGFyZ2V0KTsKIAogICAgICAgICBpZiAobW91c2VFdmVudC0+ZGVmYXVsdEhhbmRsZWQoKSkK
ICAgICAgICAgICAgIGRvdWJsZUNsaWNrRXZlbnQtPnNldERlZmF1bHRIYW5kbGVkKCk7CkBAIC0y
MzU5LDcgKzIzNTksNyBAQCBib29sIEVsZW1lbnQ6OmRpc3BhdGNoTW91c2VGb3JjZVdpbGxCZWdp
CiAgICAgaWYgKCFmcmFtZSkKICAgICAgICAgcmV0dXJuIGZhbHNlOwogCi0gICAgUGxhdGZvcm1N
b3VzZUV2ZW50IHBsYXRmb3JtTW91c2VFdmVudChmcmFtZS0+ZXZlbnRIYW5kbGVyKCkubGFzdEtu
b3duTW91c2VQb3NpdGlvbigpLCBmcmFtZS0+ZXZlbnRIYW5kbGVyKCkubGFzdEtub3duTW91c2VH
bG9iYWxQb3NpdGlvbigpLCBOb0J1dHRvbiwgUGxhdGZvcm1FdmVudDo6Tm9UeXBlLCAxLCBmYWxz
ZSwgZmFsc2UsIGZhbHNlLCBmYWxzZSwgV1RGOjpjdXJyZW50VGltZSgpLCBGb3JjZUF0Q2xpY2sp
OworICAgIFBsYXRmb3JtTW91c2VFdmVudCBwbGF0Zm9ybU1vdXNlRXZlbnQoZnJhbWUtPmV2ZW50
SGFuZGxlcigpLmxhc3RLbm93bk1vdXNlUG9zaXRpb24oKSwgZnJhbWUtPmV2ZW50SGFuZGxlcigp
Lmxhc3RLbm93bk1vdXNlR2xvYmFsUG9zaXRpb24oKSwgTm9CdXR0b24sIFBsYXRmb3JtRXZlbnQ6
Ok5vVHlwZSwgMSwgZmFsc2UsIGZhbHNlLCBmYWxzZSwgZmFsc2UsIFdURjo6Y3VycmVudFRpbWUo
KSwgRm9yY2VBdENsaWNrLCBOb1RhcCk7CiAgICAgUmVmPE1vdXNlRXZlbnQ+IG1vdXNlRm9yY2VX
aWxsQmVnaW5FdmVudCA9ICBNb3VzZUV2ZW50OjpjcmVhdGUoZXZlbnROYW1lcygpLndlYmtpdG1v
dXNlZm9yY2V3aWxsYmVnaW5FdmVudCwgZG9jdW1lbnQoKS5kZWZhdWx0VmlldygpLCBwbGF0Zm9y
bU1vdXNlRXZlbnQsIDAsIG51bGxwdHIpOwogICAgIG1vdXNlRm9yY2VXaWxsQmVnaW5FdmVudC0+
c2V0VGFyZ2V0KHRoaXMpOwogICAgIGRpc3BhdGNoRXZlbnQobW91c2VGb3JjZVdpbGxCZWdpbkV2
ZW50KTsKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL2RvbS9Nb3VzZUV2ZW50LmNwcAo9PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
Ci0tLSBTb3VyY2UvV2ViQ29yZS9kb20vTW91c2VFdmVudC5jcHAJKHJldmlzaW9uIDIwMjk1MCkK
KysrIFNvdXJjZS9XZWJDb3JlL2RvbS9Nb3VzZUV2ZW50LmNwcAkod29ya2luZyBjb3B5KQpAQCAt
NTAsMTQgKzUwLDE0IEBAIFJlZjxNb3VzZUV2ZW50PiBNb3VzZUV2ZW50OjpjcmVhdGUoY29uc3QK
ICAgICAgICAgZXZlbnQubW92ZW1lbnREZWx0YSgpLngoKSwgZXZlbnQubW92ZW1lbnREZWx0YSgp
LnkoKSwKICNlbmRpZgogICAgICAgICBldmVudC5jdHJsS2V5KCksIGV2ZW50LmFsdEtleSgpLCBl
dmVudC5zaGlmdEtleSgpLCBldmVudC5tZXRhS2V5KCksIGV2ZW50LmJ1dHRvbigpLAotICAgICAg
ICByZWxhdGVkVGFyZ2V0LCBldmVudC5mb3JjZSgpKTsKKyAgICAgICAgcmVsYXRlZFRhcmdldCwg
ZXZlbnQuZm9yY2UoKSwgZXZlbnQuc3ludGhldGljQ2xpY2tUeXBlKCkpOwogfQogCiBSZWY8TW91
c2VFdmVudD4gTW91c2VFdmVudDo6Y3JlYXRlKGNvbnN0IEF0b21pY1N0cmluZyYgdHlwZSwgYm9v
bCBjYW5CdWJibGUsIGJvb2wgY2FuY2VsYWJsZSwgZG91YmxlIHRpbWVzdGFtcCwgQWJzdHJhY3RW
aWV3KiB2aWV3LCBpbnQgZGV0YWlsLCBpbnQgc2NyZWVuWCwgaW50IHNjcmVlblksIGludCBwYWdl
WCwgaW50IHBhZ2VZLAogI2lmIEVOQUJMRShQT0lOVEVSX0xPQ0spCiAgICAgaW50IG1vdmVtZW50
WCwgaW50IG1vdmVtZW50WSwKICNlbmRpZgotICAgIGJvb2wgY3RybEtleSwgYm9vbCBhbHRLZXks
IGJvb2wgc2hpZnRLZXksIGJvb2wgbWV0YUtleSwgdW5zaWduZWQgc2hvcnQgYnV0dG9uLCBQYXNz
UmVmUHRyPEV2ZW50VGFyZ2V0PiByZWxhdGVkVGFyZ2V0LCBkb3VibGUgZm9yY2UpCisgICAgYm9v
bCBjdHJsS2V5LCBib29sIGFsdEtleSwgYm9vbCBzaGlmdEtleSwgYm9vbCBtZXRhS2V5LCB1bnNp
Z25lZCBzaG9ydCBidXR0b24sIFBhc3NSZWZQdHI8RXZlbnRUYXJnZXQ+IHJlbGF0ZWRUYXJnZXQs
IGRvdWJsZSBmb3JjZSwgdW5zaWduZWQgc2hvcnQgc3ludGhldGljQ2xpY2tUeXBlKQogCiB7CiAg
ICAgcmV0dXJuIE1vdXNlRXZlbnQ6OmNyZWF0ZSh0eXBlLCBjYW5CdWJibGUsIGNhbmNlbGFibGUs
IHRpbWVzdGFtcCwgdmlldywKQEAgLTY1LDI2ICs2NSwyNiBAQCBSZWY8TW91c2VFdmVudD4gTW91
c2VFdmVudDo6Y3JlYXRlKGNvbnN0CiAjaWYgRU5BQkxFKFBPSU5URVJfTE9DSykKICAgICAgICAg
bW92ZW1lbnRYLCBtb3ZlbWVudFksCiAjZW5kaWYKLSAgICAgICAgY3RybEtleSwgYWx0S2V5LCBz
aGlmdEtleSwgbWV0YUtleSwgYnV0dG9uLCByZWxhdGVkVGFyZ2V0LCBmb3JjZSwgMCwgZmFsc2Up
OworICAgICAgICBjdHJsS2V5LCBhbHRLZXksIHNoaWZ0S2V5LCBtZXRhS2V5LCBidXR0b24sIHJl
bGF0ZWRUYXJnZXQsIGZvcmNlLCBzeW50aGV0aWNDbGlja1R5cGUsIDAsIGZhbHNlKTsKIH0KIAog
UmVmPE1vdXNlRXZlbnQ+IE1vdXNlRXZlbnQ6OmNyZWF0ZShjb25zdCBBdG9taWNTdHJpbmcmIHR5
cGUsIGJvb2wgY2FuQnViYmxlLCBib29sIGNhbmNlbGFibGUsIGRvdWJsZSB0aW1lc3RhbXAsIEFi
c3RyYWN0VmlldyogdmlldywgaW50IGRldGFpbCwgaW50IHNjcmVlblgsIGludCBzY3JlZW5ZLCBp
bnQgcGFnZVgsIGludCBwYWdlWSwKICNpZiBFTkFCTEUoUE9JTlRFUl9MT0NLKQogICAgIGludCBt
b3ZlbWVudFgsIGludCBtb3ZlbWVudFksCiAjZW5kaWYKLSAgICBib29sIGN0cmxLZXksIGJvb2wg
YWx0S2V5LCBib29sIHNoaWZ0S2V5LCBib29sIG1ldGFLZXksIHVuc2lnbmVkIHNob3J0IGJ1dHRv
biwgUGFzc1JlZlB0cjxFdmVudFRhcmdldD4gcmVsYXRlZFRhcmdldCwgZG91YmxlIGZvcmNlLCBQ
YXNzUmVmUHRyPERhdGFUcmFuc2Zlcj4gZGF0YVRyYW5zZmVyLCBib29sIGlzU2ltdWxhdGVkKQor
ICAgIGJvb2wgY3RybEtleSwgYm9vbCBhbHRLZXksIGJvb2wgc2hpZnRLZXksIGJvb2wgbWV0YUtl
eSwgdW5zaWduZWQgc2hvcnQgYnV0dG9uLCBQYXNzUmVmUHRyPEV2ZW50VGFyZ2V0PiByZWxhdGVk
VGFyZ2V0LCBkb3VibGUgZm9yY2UsIHVuc2lnbmVkIHNob3J0IHN5bnRoZXRpY0NsaWNrVHlwZSwg
UGFzc1JlZlB0cjxEYXRhVHJhbnNmZXI+IGRhdGFUcmFuc2ZlciwgYm9vbCBpc1NpbXVsYXRlZCkK
IHsKICAgICByZXR1cm4gYWRvcHRSZWYoKm5ldyBNb3VzZUV2ZW50KHR5cGUsIGNhbkJ1YmJsZSwg
Y2FuY2VsYWJsZSwgdGltZXN0YW1wLCB2aWV3LAogICAgICAgICBkZXRhaWwsIHNjcmVlblgsIHNj
cmVlblksIHBhZ2VYLCBwYWdlWSwKICNpZiBFTkFCTEUoUE9JTlRFUl9MT0NLKQogICAgICAgICBt
b3ZlbWVudFgsIG1vdmVtZW50WSwKICNlbmRpZgotICAgICAgICBjdHJsS2V5LCBhbHRLZXksIHNo
aWZ0S2V5LCBtZXRhS2V5LCBidXR0b24sIHJlbGF0ZWRUYXJnZXQsIGZvcmNlLCBkYXRhVHJhbnNm
ZXIsIGlzU2ltdWxhdGVkKSk7CisgICAgICAgIGN0cmxLZXksIGFsdEtleSwgc2hpZnRLZXksIG1l
dGFLZXksIGJ1dHRvbiwgcmVsYXRlZFRhcmdldCwgZm9yY2UsIHN5bnRoZXRpY0NsaWNrVHlwZSwg
ZGF0YVRyYW5zZmVyLCBpc1NpbXVsYXRlZCkpOwogfQogCi1SZWY8TW91c2VFdmVudD4gTW91c2VF
dmVudDo6Y3JlYXRlKGNvbnN0IEF0b21pY1N0cmluZyYgZXZlbnRUeXBlLCBib29sIGNhbkJ1YmJs
ZSwgYm9vbCBjYW5jZWxhYmxlLCBBYnN0cmFjdFZpZXcqIHZpZXcsIGludCBkZXRhaWwsIGludCBz
Y3JlZW5YLCBpbnQgc2NyZWVuWSwgaW50IGNsaWVudFgsIGludCBjbGllbnRZLCBib29sIGN0cmxL
ZXksIGJvb2wgYWx0S2V5LCBib29sIHNoaWZ0S2V5LCBib29sIG1ldGFLZXksIHVuc2lnbmVkIHNo
b3J0IGJ1dHRvbiwgUGFzc1JlZlB0cjxFdmVudFRhcmdldD4gcmVsYXRlZFRhcmdldCkKK1JlZjxN
b3VzZUV2ZW50PiBNb3VzZUV2ZW50OjpjcmVhdGUoY29uc3QgQXRvbWljU3RyaW5nJiBldmVudFR5
cGUsIGJvb2wgY2FuQnViYmxlLCBib29sIGNhbmNlbGFibGUsIEFic3RyYWN0Vmlldyogdmlldywg
aW50IGRldGFpbCwgaW50IHNjcmVlblgsIGludCBzY3JlZW5ZLCBpbnQgY2xpZW50WCwgaW50IGNs
aWVudFksIGJvb2wgY3RybEtleSwgYm9vbCBhbHRLZXksIGJvb2wgc2hpZnRLZXksIGJvb2wgbWV0
YUtleSwgdW5zaWduZWQgc2hvcnQgYnV0dG9uLCB1bnNpZ25lZCBzaG9ydCBzeW50aGV0aWNDbGlj
a1R5cGUsIFBhc3NSZWZQdHI8RXZlbnRUYXJnZXQ+IHJlbGF0ZWRUYXJnZXQpCiB7Ci0gICAgcmV0
dXJuIGFkb3B0UmVmKCpuZXcgTW91c2VFdmVudChldmVudFR5cGUsIGNhbkJ1YmJsZSwgY2FuY2Vs
YWJsZSwgdmlldywgZGV0YWlsLCBzY3JlZW5YLCBzY3JlZW5ZLCBjbGllbnRYLCBjbGllbnRZLCBj
dHJsS2V5LCBhbHRLZXksIHNoaWZ0S2V5LCBtZXRhS2V5LCBidXR0b24sIHJlbGF0ZWRUYXJnZXQp
KTsKKyAgICByZXR1cm4gYWRvcHRSZWYoKm5ldyBNb3VzZUV2ZW50KGV2ZW50VHlwZSwgY2FuQnVi
YmxlLCBjYW5jZWxhYmxlLCB2aWV3LCBkZXRhaWwsIHNjcmVlblgsIHNjcmVlblksIGNsaWVudFgs
IGNsaWVudFksIGN0cmxLZXksIGFsdEtleSwgc2hpZnRLZXksIG1ldGFLZXksIGJ1dHRvbiwgc3lu
dGhldGljQ2xpY2tUeXBlLCByZWxhdGVkVGFyZ2V0KSk7CiB9CiAKIE1vdXNlRXZlbnQ6Ok1vdXNl
RXZlbnQoKQpAQCAtOTksNyArOTksNyBAQCBNb3VzZUV2ZW50OjpNb3VzZUV2ZW50KGNvbnN0IEF0
b21pY1N0cmluCiAgICAgICAgICAgICAgICAgICAgICAgIGludCBtb3ZlbWVudFgsIGludCBtb3Zl
bWVudFksCiAjZW5kaWYKICAgICAgICAgICAgICAgICAgICAgICAgYm9vbCBjdHJsS2V5LCBib29s
IGFsdEtleSwgYm9vbCBzaGlmdEtleSwgYm9vbCBtZXRhS2V5LAotICAgICAgICAgICAgICAgICAg
ICAgICB1bnNpZ25lZCBzaG9ydCBidXR0b24sIFBhc3NSZWZQdHI8RXZlbnRUYXJnZXQ+IHJlbGF0
ZWRUYXJnZXQsIGRvdWJsZSBmb3JjZSwKKyAgICAgICAgICAgICAgICAgICAgICAgdW5zaWduZWQg
c2hvcnQgYnV0dG9uLCBQYXNzUmVmUHRyPEV2ZW50VGFyZ2V0PiByZWxhdGVkVGFyZ2V0LCBkb3Vi
bGUgZm9yY2UsIHVuc2lnbmVkIHNob3J0IHN5bnRoZXRpY0NsaWNrVHlwZSwKICAgICAgICAgICAg
ICAgICAgICAgICAgUGFzc1JlZlB0cjxEYXRhVHJhbnNmZXI+IGRhdGFUcmFuc2ZlciwgYm9vbCBp
c1NpbXVsYXRlZCkKICAgICA6IE1vdXNlUmVsYXRlZEV2ZW50KGV2ZW50VHlwZSwgY2FuQnViYmxl
LCBjYW5jZWxhYmxlLCB0aW1lc3RhbXAsIHZpZXcsIGRldGFpbCwgSW50UG9pbnQoc2NyZWVuWCwg
c2NyZWVuWSksCiAgICAgICAgICAgICAgICAgICAgICAgICBJbnRQb2ludChwYWdlWCwgcGFnZVkp
LApAQCAtMTA4LDYgKzEwOCw3IEBAIE1vdXNlRXZlbnQ6Ok1vdXNlRXZlbnQoY29uc3QgQXRvbWlj
U3RyaW4KICNlbmRpZgogICAgICAgICAgICAgICAgICAgICAgICAgY3RybEtleSwgYWx0S2V5LCBz
aGlmdEtleSwgbWV0YUtleSwgaXNTaW11bGF0ZWQpCiAgICAgLCBtX2J1dHRvbihidXR0b24gPT0g
KHVuc2lnbmVkIHNob3J0KS0xID8gMCA6IGJ1dHRvbikKKyAgICAsIG1fc3ludGhldGljQ2xpY2tU
eXBlKGJ1dHRvbiA9PSAodW5zaWduZWQgc2hvcnQpLTEgPyAwIDogc3ludGhldGljQ2xpY2tUeXBl
KQogICAgICwgbV9idXR0b25Eb3duKGJ1dHRvbiAhPSAodW5zaWduZWQgc2hvcnQpLTEpCiAgICAg
LCBtX3JlbGF0ZWRUYXJnZXQocmVsYXRlZFRhcmdldCkKICAgICAsIG1fZm9yY2UoZm9yY2UpCkBA
IC0xMTUsMTMgKzExNiwxNCBAQCBNb3VzZUV2ZW50OjpNb3VzZUV2ZW50KGNvbnN0IEF0b21pY1N0
cmluCiB7CiB9CiAKLU1vdXNlRXZlbnQ6Ok1vdXNlRXZlbnQoY29uc3QgQXRvbWljU3RyaW5nJiBl
dmVudFR5cGUsIGJvb2wgY2FuQnViYmxlLCBib29sIGNhbmNlbGFibGUsIEFic3RyYWN0Vmlldyog
dmlldywgaW50IGRldGFpbCwgaW50IHNjcmVlblgsIGludCBzY3JlZW5ZLCBpbnQgY2xpZW50WCwg
aW50IGNsaWVudFksIGJvb2wgY3RybEtleSwgYm9vbCBhbHRLZXksIGJvb2wgc2hpZnRLZXksIGJv
b2wgbWV0YUtleSwgdW5zaWduZWQgc2hvcnQgYnV0dG9uLCBQYXNzUmVmUHRyPEV2ZW50VGFyZ2V0
PiByZWxhdGVkVGFyZ2V0KQorTW91c2VFdmVudDo6TW91c2VFdmVudChjb25zdCBBdG9taWNTdHJp
bmcmIGV2ZW50VHlwZSwgYm9vbCBjYW5CdWJibGUsIGJvb2wgY2FuY2VsYWJsZSwgQWJzdHJhY3RW
aWV3KiB2aWV3LCBpbnQgZGV0YWlsLCBpbnQgc2NyZWVuWCwgaW50IHNjcmVlblksIGludCBjbGll
bnRYLCBpbnQgY2xpZW50WSwgYm9vbCBjdHJsS2V5LCBib29sIGFsdEtleSwgYm9vbCBzaGlmdEtl
eSwgYm9vbCBtZXRhS2V5LCB1bnNpZ25lZCBzaG9ydCBidXR0b24sIHVuc2lnbmVkIHNob3J0IHN5
bnRoZXRpY0NsaWNrVHlwZSwgUGFzc1JlZlB0cjxFdmVudFRhcmdldD4gcmVsYXRlZFRhcmdldCkK
ICAgICA6IE1vdXNlUmVsYXRlZEV2ZW50KGV2ZW50VHlwZSwgY2FuQnViYmxlLCBjYW5jZWxhYmxl
LCBXVEY6OmN1cnJlbnRUaW1lKCksIHZpZXcsIGRldGFpbCwgSW50UG9pbnQoc2NyZWVuWCwgc2Ny
ZWVuWSksIEludFBvaW50KDAsIDApLAogI2lmIEVOQUJMRShQT0lOVEVSX0xPQ0spCiAgICAgICAg
IEludFBvaW50KDAsIDApLAogI2VuZGlmCiAgICAgICAgIGN0cmxLZXksIGFsdEtleSwgc2hpZnRL
ZXksIG1ldGFLZXksIGZhbHNlKQogICAgICwgbV9idXR0b24oYnV0dG9uID09ICh1bnNpZ25lZCBz
aG9ydCktMSA/IDAgOiBidXR0b24pCisgICAgLCBtX3N5bnRoZXRpY0NsaWNrVHlwZShidXR0b24g
PT0gKHVuc2lnbmVkIHNob3J0KS0xID8gMCA6IHN5bnRoZXRpY0NsaWNrVHlwZSkKICAgICAsIG1f
YnV0dG9uRG93bihidXR0b24gIT0gKHVuc2lnbmVkIHNob3J0KS0xKQogICAgICwgbV9yZWxhdGVk
VGFyZ2V0KHJlbGF0ZWRUYXJnZXQpCiB7CkBAIC0xNTgsNiArMTYwLDcgQEAgdm9pZCBNb3VzZUV2
ZW50Ojppbml0TW91c2VFdmVudChjb25zdCBBdAogICAgIG1fc2hpZnRLZXkgPSBzaGlmdEtleTsK
ICAgICBtX21ldGFLZXkgPSBtZXRhS2V5OwogICAgIG1fYnV0dG9uID0gYnV0dG9uID09ICh1bnNp
Z25lZCBzaG9ydCktMSA/IDAgOiBidXR0b247CisgICAgbV9zeW50aGV0aWNDbGlja1R5cGUgPSAw
OwogICAgIG1fYnV0dG9uRG93biA9IGJ1dHRvbiAhPSAodW5zaWduZWQgc2hvcnQpLTE7CiAgICAg
bV9yZWxhdGVkVGFyZ2V0ID0gcmVsYXRlZFRhcmdldDsKIApAQCAtMjUwLDYgKzI1Myw3IEBAIFJl
ZjxFdmVudD4gTW91c2VFdmVudDo6Y2xvbmVGb3IoSFRNTElGcmEKICAgICAgICAgZnJhbWVWaWV3
ID8gYWRqdXN0ZWRDbGllbnRZKGNsaWVudFkoKSwgaWZyYW1lLCBmcmFtZVZpZXcpIDogMCwKICAg
ICAgICAgY3RybEtleSgpLCBhbHRLZXkoKSwgc2hpZnRLZXkoKSwgbWV0YUtleSgpLAogICAgICAg
ICBidXR0b24oKSwKKyAgICAgICAgc3ludGhldGljQ2xpY2tUeXBlKCksCiAgICAgICAgIC8vIE51
bGxpZmllcyByZWxhdGVkVGFyZ2V0LgogICAgICAgICAwKTsKICAgICBjbG9uZWRNb3VzZUV2ZW50
LT5zZXRGb3JjZShmb3JjZSgpKTsKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL2RvbS9Nb3VzZUV2ZW50
LmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvZG9tL01vdXNlRXZlbnQuaAkocmV2aXNp
b24gMjAyOTUwKQorKysgU291cmNlL1dlYkNvcmUvZG9tL01vdXNlRXZlbnQuaAkod29ya2luZyBj
b3B5KQpAQCAtNDYsNyArNDYsNyBAQCBwdWJsaWM6CiAgICAgICAgIGludCBtb3ZlbWVudFgsIGlu
dCBtb3ZlbWVudFksCiAjZW5kaWYKICAgICAgICAgYm9vbCBjdHJsS2V5LCBib29sIGFsdEtleSwg
Ym9vbCBzaGlmdEtleSwgYm9vbCBtZXRhS2V5LCB1bnNpZ25lZCBzaG9ydCBidXR0b24sCi0gICAg
ICAgIFBhc3NSZWZQdHI8RXZlbnRUYXJnZXQ+IHJlbGF0ZWRUYXJnZXQsIGRvdWJsZSBmb3JjZSk7
CisgICAgICAgIFBhc3NSZWZQdHI8RXZlbnRUYXJnZXQ+IHJlbGF0ZWRUYXJnZXQsIGRvdWJsZSBm
b3JjZSwgdW5zaWduZWQgc2hvcnQgc3ludGhldGljQ2xpY2tUeXBlKTsKIAogICAgIFdFQkNPUkVf
RVhQT1JUIHN0YXRpYyBSZWY8TW91c2VFdmVudD4gY3JlYXRlKGNvbnN0IEF0b21pY1N0cmluZyYg
dHlwZSwgYm9vbCBjYW5CdWJibGUsIGJvb2wgY2FuY2VsYWJsZSwgZG91YmxlIHRpbWVzdGFtcCwg
QWJzdHJhY3RWaWV3KiwKICAgICAgICAgaW50IGRldGFpbCwgaW50IHNjcmVlblgsIGludCBzY3Jl
ZW5ZLCBpbnQgcGFnZVgsIGludCBwYWdlWSwKQEAgLTU0LDE0ICs1NCwxNCBAQCBwdWJsaWM6CiAg
ICAgICAgIGludCBtb3ZlbWVudFgsIGludCBtb3ZlbWVudFksCiAjZW5kaWYKICAgICAgICAgYm9v
bCBjdHJsS2V5LCBib29sIGFsdEtleSwgYm9vbCBzaGlmdEtleSwgYm9vbCBtZXRhS2V5LCB1bnNp
Z25lZCBzaG9ydCBidXR0b24sCi0gICAgICAgIFBhc3NSZWZQdHI8RXZlbnRUYXJnZXQ+IHJlbGF0
ZWRUYXJnZXQsIGRvdWJsZSBmb3JjZSwgUGFzc1JlZlB0cjxEYXRhVHJhbnNmZXI+LCBib29sIGlz
U2ltdWxhdGVkID0gZmFsc2UpOworICAgICAgICBQYXNzUmVmUHRyPEV2ZW50VGFyZ2V0PiByZWxh
dGVkVGFyZ2V0LCBkb3VibGUgZm9yY2UsIHVuc2lnbmVkIHNob3J0IHN5bnRoZXRpY0NsaWNrVHlw
ZSwgUGFzc1JlZlB0cjxEYXRhVHJhbnNmZXI+LCBib29sIGlzU2ltdWxhdGVkID0gZmFsc2UpOwog
CiAgICAgV0VCQ09SRV9FWFBPUlQgc3RhdGljIFJlZjxNb3VzZUV2ZW50PiBjcmVhdGUoY29uc3Qg
QXRvbWljU3RyaW5nJiBldmVudFR5cGUsIEFic3RyYWN0VmlldyosIGNvbnN0IFBsYXRmb3JtTW91
c2VFdmVudCYsIGludCBkZXRhaWwsIFBhc3NSZWZQdHI8Tm9kZT4gcmVsYXRlZFRhcmdldCk7CiAK
ICAgICBzdGF0aWMgUmVmPE1vdXNlRXZlbnQ+IGNyZWF0ZShjb25zdCBBdG9taWNTdHJpbmcmIGV2
ZW50VHlwZSwgYm9vbCBjYW5CdWJibGUsIGJvb2wgY2FuY2VsYWJsZSwgQWJzdHJhY3RWaWV3KiwK
ICAgICAgICAgaW50IGRldGFpbCwgaW50IHNjcmVlblgsIGludCBzY3JlZW5ZLCBpbnQgY2xpZW50
WCwgaW50IGNsaWVudFksCiAgICAgICAgIGJvb2wgY3RybEtleSwgYm9vbCBhbHRLZXksIGJvb2wg
c2hpZnRLZXksIGJvb2wgbWV0YUtleSwKLSAgICAgICAgdW5zaWduZWQgc2hvcnQgYnV0dG9uLCBQ
YXNzUmVmUHRyPEV2ZW50VGFyZ2V0PiByZWxhdGVkVGFyZ2V0KTsKKyAgICAgICAgdW5zaWduZWQg
c2hvcnQgYnV0dG9uLCB1bnNpZ25lZCBzaG9ydCBzeW50aGV0aWNDbGlja1R5cGUsIFBhc3NSZWZQ
dHI8RXZlbnRUYXJnZXQ+IHJlbGF0ZWRUYXJnZXQpOwogCiAgICAgc3RhdGljIFJlZjxNb3VzZUV2
ZW50PiBjcmVhdGVGb3JCaW5kaW5ncygpCiAgICAgewpAQCAtODAsNiArODAsNyBAQCBwdWJsaWM6
CiAgICAgLy8gV2luSUUgdXNlcyAxLDQsMiBmb3IgbGVmdC9taWRkbGUvcmlnaHQgYnV0IG5vdCBm
b3IgY2xpY2sgKGp1c3QgZm9yIG1vdXNlZG93bi91cCwgbWF5YmUgb3RoZXJzKSwKICAgICAvLyBi
dXQgd2Ugd2lsbCBtYXRjaCB0aGUgc3RhbmRhcmQgRE9NLgogICAgIHVuc2lnbmVkIHNob3J0IGJ1
dHRvbigpIGNvbnN0IHsgcmV0dXJuIG1fYnV0dG9uOyB9CisgICAgdW5zaWduZWQgc2hvcnQgc3lu
dGhldGljQ2xpY2tUeXBlKCkgY29uc3QgeyByZXR1cm4gbV9zeW50aGV0aWNDbGlja1R5cGU7IH0K
ICAgICBib29sIGJ1dHRvbkRvd24oKSBjb25zdCB7IHJldHVybiBtX2J1dHRvbkRvd247IH0KICAg
ICBFdmVudFRhcmdldCogcmVsYXRlZFRhcmdldCgpIGNvbnN0IGZpbmFsIHsgcmV0dXJuIG1fcmVs
YXRlZFRhcmdldC5nZXQoKTsgfQogICAgIHZvaWQgc2V0UmVsYXRlZFRhcmdldChQYXNzUmVmUHRy
PEV2ZW50VGFyZ2V0PiByZWxhdGVkVGFyZ2V0KSB7IG1fcmVsYXRlZFRhcmdldCA9IHJlbGF0ZWRU
YXJnZXQ7IH0KQEAgLTExMCwxMiArMTExLDEyIEBAIHByb3RlY3RlZDoKICAgICAgICAgaW50IG1v
dmVtZW50WCwgaW50IG1vdmVtZW50WSwKICNlbmRpZgogICAgICAgICBib29sIGN0cmxLZXksIGJv
b2wgYWx0S2V5LCBib29sIHNoaWZ0S2V5LCBib29sIG1ldGFLZXksIHVuc2lnbmVkIHNob3J0IGJ1
dHRvbiwKLSAgICAgICAgUGFzc1JlZlB0cjxFdmVudFRhcmdldD4gcmVsYXRlZFRhcmdldCwgZG91
YmxlIGZvcmNlLCBQYXNzUmVmUHRyPERhdGFUcmFuc2Zlcj4sIGJvb2wgaXNTaW11bGF0ZWQpOwor
ICAgICAgICBQYXNzUmVmUHRyPEV2ZW50VGFyZ2V0PiByZWxhdGVkVGFyZ2V0LCBkb3VibGUgZm9y
Y2UsIHVuc2lnbmVkIHNob3J0IHN5bnRoZXRpY0NsaWNrVHlwZSwgUGFzc1JlZlB0cjxEYXRhVHJh
bnNmZXI+LCBib29sIGlzU2ltdWxhdGVkKTsKIAogICAgIE1vdXNlRXZlbnQoY29uc3QgQXRvbWlj
U3RyaW5nJiB0eXBlLCBib29sIGNhbkJ1YmJsZSwgYm9vbCBjYW5jZWxhYmxlLCBBYnN0cmFjdFZp
ZXcqLAogICAgICAgICBpbnQgZGV0YWlsLCBpbnQgc2NyZWVuWCwgaW50IHNjcmVlblksIGludCBj
bGllbnRYLCBpbnQgY2xpZW50WSwKICAgICAgICAgYm9vbCBjdHJsS2V5LCBib29sIGFsdEtleSwg
Ym9vbCBzaGlmdEtleSwgYm9vbCBtZXRhS2V5LAotICAgICAgICB1bnNpZ25lZCBzaG9ydCBidXR0
b24sIFBhc3NSZWZQdHI8RXZlbnRUYXJnZXQ+IHJlbGF0ZWRUYXJnZXQpOworICAgICAgICB1bnNp
Z25lZCBzaG9ydCBidXR0b24sIHVuc2lnbmVkIHNob3J0IHN5bnRoZXRpY0NsaWNrVHlwZSwgUGFz
c1JlZlB0cjxFdmVudFRhcmdldD4gcmVsYXRlZFRhcmdldCk7CiAKICAgICBNb3VzZUV2ZW50KGNv
bnN0IEF0b21pY1N0cmluZyYgdHlwZSwgY29uc3QgTW91c2VFdmVudEluaXQmKTsKIApAQCAtMTI1
LDYgKzEyNiw3IEBAIHByb3RlY3RlZDoKIAogcHJpdmF0ZToKICAgICB1bnNpZ25lZCBzaG9ydCBt
X2J1dHRvbjsKKyAgICB1bnNpZ25lZCBzaG9ydCBtX3N5bnRoZXRpY0NsaWNrVHlwZTsKICAgICBi
b29sIG1fYnV0dG9uRG93bjsKICAgICBSZWZQdHI8RXZlbnRUYXJnZXQ+IG1fcmVsYXRlZFRhcmdl
dDsKICAgICBkb3VibGUgbV9mb3JjZSB7IDAgfTsKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL2RvbS9T
aW11bGF0ZWRDbGljay5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvZG9tL1NpbXVs
YXRlZENsaWNrLmNwcAkocmV2aXNpb24gMjAyOTUwKQorKysgU291cmNlL1dlYkNvcmUvZG9tL1Np
bXVsYXRlZENsaWNrLmNwcAkod29ya2luZyBjb3B5KQpAQCAtNDksNyArNDksNyBAQCBwcml2YXRl
OgogI2lmIEVOQUJMRShQT0lOVEVSX0xPQ0spCiAgICAgICAgICAgICAgICAgICAgICAwLCAwLAog
I2VuZGlmCi0gICAgICAgICAgICAgICAgICAgICBmYWxzZSwgZmFsc2UsIGZhbHNlLCBmYWxzZSwg
MCwgMCwgMCwgMCwgdHJ1ZSkKKyAgICAgICAgICAgICAgICAgICAgIGZhbHNlLCBmYWxzZSwgZmFs
c2UsIGZhbHNlLCAwLCAwLCAwLCAwLCAwLCB0cnVlKQogICAgIHsKICAgICAgICAgaWYgKFVJRXZl
bnRXaXRoS2V5U3RhdGUqIGtleVN0YXRlRXZlbnQgPSBmaW5kRXZlbnRXaXRoS2V5U3RhdGUodW5k
ZXJseWluZ0V2ZW50LmdldCgpKSkgewogICAgICAgICAgICAgbV9jdHJsS2V5ID0ga2V5U3RhdGVF
dmVudC0+Y3RybEtleSgpOwpJbmRleDogU291cmNlL1dlYkNvcmUvZG9tL1doZWVsRXZlbnQuY3Bw
Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2RvbS9XaGVlbEV2ZW50LmNwcAkocmV2aXNp
b24gMjAyOTUwKQorKysgU291cmNlL1dlYkNvcmUvZG9tL1doZWVsRXZlbnQuY3BwCSh3b3JraW5n
IGNvcHkpCkBAIC03MCw3ICs3MCw3IEBAIFdoZWVsRXZlbnQ6OldoZWVsRXZlbnQoY29uc3QgUGxh
dGZvcm1XaGUKICNpZiBFTkFCTEUoUE9JTlRFUl9MT0NLKQogICAgICAgICAgICAgICAgICwgMCwg
MAogI2VuZGlmCi0gICAgICAgICAgICAgICAgLCBldmVudC5jdHJsS2V5KCksIGV2ZW50LmFsdEtl
eSgpLCBldmVudC5zaGlmdEtleSgpLCBldmVudC5tZXRhS2V5KCksIDAsIDAsIDAsIDAsIGZhbHNl
KQorICAgICAgICAgICAgICAgICwgZXZlbnQuY3RybEtleSgpLCBldmVudC5hbHRLZXkoKSwgZXZl
bnQuc2hpZnRLZXkoKSwgZXZlbnQubWV0YUtleSgpLCAwLCAwLCAwLCAwLCAwLCBmYWxzZSkKICAg
ICAsIG1fd2hlZWxEZWx0YShldmVudC53aGVlbFRpY2tzWCgpICogVGlja011bHRpcGxpZXIsIGV2
ZW50LndoZWVsVGlja3NZKCkgKiBUaWNrTXVsdGlwbGllcikKICAgICAsIG1fZGVsdGFYKC1ldmVu
dC5kZWx0YVgoKSkKICAgICAsIG1fZGVsdGFZKC1ldmVudC5kZWx0YVkoKSkKSW5kZXg6IFNvdXJj
ZS9XZWJDb3JlL3BhZ2UvQ29udGV4dE1lbnVDb250cm9sbGVyLmNwcAo9PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBT
b3VyY2UvV2ViQ29yZS9wYWdlL0NvbnRleHRNZW51Q29udHJvbGxlci5jcHAJKHJldmlzaW9uIDIw
Mjk1MCkKKysrIFNvdXJjZS9XZWJDb3JlL3BhZ2UvQ29udGV4dE1lbnVDb250cm9sbGVyLmNwcAko
d29ya2luZyBjb3B5KQpAQCAtMTQzNCw3ICsxNDM0LDcgQEAgdm9pZCBDb250ZXh0TWVudUNvbnRy
b2xsZXI6OnNob3dDb250ZXh0TQogICAgIGNsZWFyQ29udGV4dE1lbnUoKTsKICAgICAKICAgICAv
LyBTaW11bGF0ZSBhIGNsaWNrIGluIHRoZSBtaWRkbGUgb2YgdGhlIGFjY2Vzc2liaWxpdHkgb2Jq
ZWN0LgotICAgIFBsYXRmb3JtTW91c2VFdmVudCBtb3VzZUV2ZW50KGNsaWNrUG9pbnQsIGNsaWNr
UG9pbnQsIFJpZ2h0QnV0dG9uLCBQbGF0Zm9ybUV2ZW50OjpNb3VzZVByZXNzZWQsIDEsIGZhbHNl
LCBmYWxzZSwgZmFsc2UsIGZhbHNlLCBjdXJyZW50VGltZSgpLCBGb3JjZUF0Q2xpY2spOworICAg
IFBsYXRmb3JtTW91c2VFdmVudCBtb3VzZUV2ZW50KGNsaWNrUG9pbnQsIGNsaWNrUG9pbnQsIFJp
Z2h0QnV0dG9uLCBQbGF0Zm9ybUV2ZW50OjpNb3VzZVByZXNzZWQsIDEsIGZhbHNlLCBmYWxzZSwg
ZmFsc2UsIGZhbHNlLCBjdXJyZW50VGltZSgpLCBGb3JjZUF0Q2xpY2ssIE5vVGFwKTsKICAgICBm
cmFtZS0+ZXZlbnRIYW5kbGVyKCkuaGFuZGxlTW91c2VQcmVzc0V2ZW50KG1vdXNlRXZlbnQpOwog
ICAgIGJvb2wgaGFuZGxlZCA9IGZyYW1lLT5ldmVudEhhbmRsZXIoKS5zZW5kQ29udGV4dE1lbnVF
dmVudChtb3VzZUV2ZW50KTsKICAgICBpZiAoaGFuZGxlZCkKSW5kZXg6IFNvdXJjZS9XZWJDb3Jl
L3BhZ2UvRHJhZ0NvbnRyb2xsZXIuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3Bh
Z2UvRHJhZ0NvbnRyb2xsZXIuY3BwCShyZXZpc2lvbiAyMDI5NTApCisrKyBTb3VyY2UvV2ViQ29y
ZS9wYWdlL0RyYWdDb250cm9sbGVyLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMTA1LDcgKzEwNSw3
IEBAIHN0YXRpYyBQbGF0Zm9ybU1vdXNlRXZlbnQgY3JlYXRlTW91c2VFdmUKIAogICAgIHJldHVy
biBQbGF0Zm9ybU1vdXNlRXZlbnQoZHJhZ0RhdGEuY2xpZW50UG9zaXRpb24oKSwgZHJhZ0RhdGEu
Z2xvYmFsUG9zaXRpb24oKSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIExlZnRCdXR0
b24sIFBsYXRmb3JtRXZlbnQ6Ok1vdXNlTW92ZWQsIDAsIHNoaWZ0S2V5LCBjdHJsS2V5LCBhbHRL
ZXksCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICBtZXRhS2V5LCBjdXJyZW50VGltZSgp
LCBGb3JjZUF0Q2xpY2spOworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbWV0YUtleSwg
Y3VycmVudFRpbWUoKSwgRm9yY2VBdENsaWNrLCBOb1RhcCk7CiB9CiAKIERyYWdDb250cm9sbGVy
OjpEcmFnQ29udHJvbGxlcihQYWdlJiBwYWdlLCBEcmFnQ2xpZW50JiBjbGllbnQpCkluZGV4OiBT
b3VyY2UvV2ViQ29yZS9wYWdlL0V2ZW50SGFuZGxlci5jcHAKPT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNl
L1dlYkNvcmUvcGFnZS9FdmVudEhhbmRsZXIuY3BwCShyZXZpc2lvbiAyMDI5NTApCisrKyBTb3Vy
Y2UvV2ViQ29yZS9wYWdlL0V2ZW50SGFuZGxlci5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTIxMzEs
NyArMjEzMSw3IEBAIGJvb2wgRXZlbnRIYW5kbGVyOjpkaXNwYXRjaERyYWdFdmVudChjb24KICAg
ICAgICAgZXZlbnQubW92ZW1lbnREZWx0YSgpLngoKSwgZXZlbnQubW92ZW1lbnREZWx0YSgpLnko
KSwKICNlbmRpZgogICAgICAgICBldmVudC5jdHJsS2V5KCksIGV2ZW50LmFsdEtleSgpLCBldmVu
dC5zaGlmdEtleSgpLCBldmVudC5tZXRhS2V5KCksCi0gICAgICAgIDAsIDAsIGV2ZW50LmZvcmNl
KCksIGRhdGFUcmFuc2Zlcik7CisgICAgICAgIDAsIDAsIGV2ZW50LmZvcmNlKCksIE5vVGFwLCBk
YXRhVHJhbnNmZXIpOwogCiAgICAgZHJhZ1RhcmdldC5kaXNwYXRjaEV2ZW50KG1lKTsKICAgICBy
ZXR1cm4gbWUtPmRlZmF1bHRQcmV2ZW50ZWQoKTsKQEAgLTI4NTMsNyArMjg1Myw3IEBAIGJvb2wg
RXZlbnRIYW5kbGVyOjpzZW5kQ29udGV4dE1lbnVFdmVudEYKICAgICBQbGF0Zm9ybUV2ZW50OjpU
eXBlIGV2ZW50VHlwZSA9IFBsYXRmb3JtRXZlbnQ6Ok1vdXNlUHJlc3NlZDsKICNlbmRpZgogCi0g
ICAgUGxhdGZvcm1Nb3VzZUV2ZW50IHBsYXRmb3JtTW91c2VFdmVudChwb3NpdGlvbiwgZ2xvYmFs
UG9zaXRpb24sIFJpZ2h0QnV0dG9uLCBldmVudFR5cGUsIDEsIGZhbHNlLCBmYWxzZSwgZmFsc2Us
IGZhbHNlLCBXVEY6OmN1cnJlbnRUaW1lKCksIEZvcmNlQXRDbGljayk7CisgICAgUGxhdGZvcm1N
b3VzZUV2ZW50IHBsYXRmb3JtTW91c2VFdmVudChwb3NpdGlvbiwgZ2xvYmFsUG9zaXRpb24sIFJp
Z2h0QnV0dG9uLCBldmVudFR5cGUsIDEsIGZhbHNlLCBmYWxzZSwgZmFsc2UsIGZhbHNlLCBXVEY6
OmN1cnJlbnRUaW1lKCksIEZvcmNlQXRDbGljaywgTm9UYXApOwogCiAgICAgcmV0dXJuICFkaXNw
YXRjaE1vdXNlRXZlbnQoZXZlbnROYW1lcygpLmNvbnRleHRtZW51RXZlbnQsIHRhcmdldE5vZGUs
IHRydWUsIDAsIHBsYXRmb3JtTW91c2VFdmVudCwgZmFsc2UpOwogfQpAQCAtMjkzNSw3ICsyOTM1
LDcgQEAgdm9pZCBFdmVudEhhbmRsZXI6OmZha2VNb3VzZU1vdmVFdmVudFRpbQogICAgIGJvb2wg
YWx0S2V5OwogICAgIGJvb2wgbWV0YUtleTsKICAgICBQbGF0Zm9ybUtleWJvYXJkRXZlbnQ6Omdl
dEN1cnJlbnRNb2RpZmllclN0YXRlKHNoaWZ0S2V5LCBjdHJsS2V5LCBhbHRLZXksIG1ldGFLZXkp
OwotICAgIFBsYXRmb3JtTW91c2VFdmVudCBmYWtlTW91c2VNb3ZlRXZlbnQobV9sYXN0S25vd25N
b3VzZVBvc2l0aW9uLCBtX2xhc3RLbm93bk1vdXNlR2xvYmFsUG9zaXRpb24sIE5vQnV0dG9uLCBQ
bGF0Zm9ybUV2ZW50OjpNb3VzZU1vdmVkLCAwLCBzaGlmdEtleSwgY3RybEtleSwgYWx0S2V5LCBt
ZXRhS2V5LCBjdXJyZW50VGltZSgpLCAwKTsKKyAgICBQbGF0Zm9ybU1vdXNlRXZlbnQgZmFrZU1v
dXNlTW92ZUV2ZW50KG1fbGFzdEtub3duTW91c2VQb3NpdGlvbiwgbV9sYXN0S25vd25Nb3VzZUds
b2JhbFBvc2l0aW9uLCBOb0J1dHRvbiwgUGxhdGZvcm1FdmVudDo6TW91c2VNb3ZlZCwgMCwgc2hp
ZnRLZXksIGN0cmxLZXksIGFsdEtleSwgbWV0YUtleSwgY3VycmVudFRpbWUoKSwgMCwgTm9UYXAp
OwogICAgIG1vdXNlTW92ZWQoZmFrZU1vdXNlTW92ZUV2ZW50KTsKIH0KICNlbmRpZiAvLyAhRU5B
QkxFKElPU19UT1VDSF9FVkVOVFMpCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9QbGF0
Zm9ybU1vdXNlRXZlbnQuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9Q
bGF0Zm9ybU1vdXNlRXZlbnQuaAkocmV2aXNpb24gMjAyOTUwKQorKysgU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vUGxhdGZvcm1Nb3VzZUV2ZW50LmgJKHdvcmtpbmcgY29weSkKQEAgLTQ4LDYgKzQ4
LDcgQEAgY29uc3QgZG91YmxlIEZvcmNlQXRGb3JjZUNsaWNrID0gMjsKIAogICAgIC8vIFRoZXNl
IGJ1dHRvbiBudW1iZXJzIG1hdGNoIHRoZSBvbmVzIHVzZWQgaW4gdGhlIERPTSBBUEksIDAgdGhy
b3VnaCAyLCBleGNlcHQgZm9yIE5vQnV0dG9uIHdoaWNoIGlzbid0IHNwZWNpZmllZC4KICAgICBl
bnVtIE1vdXNlQnV0dG9uIDogaW50OF90IHsgTm9CdXR0b24gPSAtMSwgTGVmdEJ1dHRvbiwgTWlk
ZGxlQnV0dG9uLCBSaWdodEJ1dHRvbiB9OworICAgIGVudW0gU3ludGhldGljQ2xpY2tUeXBlIDog
aW50OF90IHsgTm9UYXAsIE9uZUZpbmdlclRhcCwgVHdvRmluZ2VyVGFwIH07CiAKICAgICBjbGFz
cyBQbGF0Zm9ybU1vdXNlRXZlbnQgOiBwdWJsaWMgUGxhdGZvcm1FdmVudCB7CiAgICAgcHVibGlj
OgpAQCAtNjYsNyArNjcsNyBAQCBjb25zdCBkb3VibGUgRm9yY2VBdEZvcmNlQ2xpY2sgPSAyOwog
ICAgICAgICB9CiAKICAgICAgICAgUGxhdGZvcm1Nb3VzZUV2ZW50KGNvbnN0IEludFBvaW50JiBw
b3NpdGlvbiwgY29uc3QgSW50UG9pbnQmIGdsb2JhbFBvc2l0aW9uLCBNb3VzZUJ1dHRvbiBidXR0
b24sIFBsYXRmb3JtRXZlbnQ6OlR5cGUgdHlwZSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAg
IGludCBjbGlja0NvdW50LCBib29sIHNoaWZ0S2V5LCBib29sIGN0cmxLZXksIGJvb2wgYWx0S2V5
LCBib29sIG1ldGFLZXksIGRvdWJsZSB0aW1lc3RhbXAsIGRvdWJsZSBmb3JjZSkKKyAgICAgICAg
ICAgICAgICAgICAgICAgICAgIGludCBjbGlja0NvdW50LCBib29sIHNoaWZ0S2V5LCBib29sIGN0
cmxLZXksIGJvb2wgYWx0S2V5LCBib29sIG1ldGFLZXksIGRvdWJsZSB0aW1lc3RhbXAsIGRvdWJs
ZSBmb3JjZSwgU3ludGhldGljQ2xpY2tUeXBlIHN5bnRoZXRpY0NsaWNrVHlwZSkKICAgICAgICAg
ICAgIDogUGxhdGZvcm1FdmVudCh0eXBlLCBzaGlmdEtleSwgY3RybEtleSwgYWx0S2V5LCBtZXRh
S2V5LCB0aW1lc3RhbXApCiAgICAgICAgICAgICAsIG1fcG9zaXRpb24ocG9zaXRpb24pCiAgICAg
ICAgICAgICAsIG1fZ2xvYmFsUG9zaXRpb24oZ2xvYmFsUG9zaXRpb24pCkBAIC03NCw2ICs3NSw3
IEBAIGNvbnN0IGRvdWJsZSBGb3JjZUF0Rm9yY2VDbGljayA9IDI7CiAgICAgICAgICAgICAsIG1f
Y2xpY2tDb3VudChjbGlja0NvdW50KQogICAgICAgICAgICAgLCBtX21vZGlmaWVyRmxhZ3MoMCkK
ICAgICAgICAgICAgICwgbV9mb3JjZShmb3JjZSkKKyAgICAgICAgICAgICwgbV9zeW50aGV0aWND
bGlja1R5cGUoc3ludGhldGljQ2xpY2tUeXBlKQogI2lmIFBMQVRGT1JNKE1BQykKICAgICAgICAg
ICAgICwgbV9ldmVudE51bWJlcigwKQogICAgICAgICAgICAgLCBtX21lbnVUeXBlRm9yRXZlbnQo
MCkKQEAgLTkzLDcgKzk1LDcgQEAgY29uc3QgZG91YmxlIEZvcmNlQXRGb3JjZUNsaWNrID0gMjsK
ICAgICAgICAgaW50IGNsaWNrQ291bnQoKSBjb25zdCB7IHJldHVybiBtX2NsaWNrQ291bnQ7IH0K
ICAgICAgICAgdW5zaWduZWQgbW9kaWZpZXJGbGFncygpIGNvbnN0IHsgcmV0dXJuIG1fbW9kaWZp
ZXJGbGFnczsgfQogICAgICAgICBkb3VibGUgZm9yY2UoKSBjb25zdCB7IHJldHVybiBtX2ZvcmNl
OyB9Ci0gICAgICAgIAorICAgICAgICBTeW50aGV0aWNDbGlja1R5cGUgc3ludGhldGljQ2xpY2tU
eXBlKCkgY29uc3QgeyByZXR1cm4gbV9zeW50aGV0aWNDbGlja1R5cGU7IH0KIAogI2lmIFBMQVRG
T1JNKEdUSykgCiAgICAgICAgIGV4cGxpY2l0IFBsYXRmb3JtTW91c2VFdmVudChHZGtFdmVudEJ1
dHRvbiopOwpAQCAtMTI5LDYgKzEzMSw3IEBAIGNvbnN0IGRvdWJsZSBGb3JjZUF0Rm9yY2VDbGlj
ayA9IDI7CiAgICAgICAgIGludCBtX2NsaWNrQ291bnQ7CiAgICAgICAgIHVuc2lnbmVkIG1fbW9k
aWZpZXJGbGFnczsKICAgICAgICAgZG91YmxlIG1fZm9yY2UgeyAwIH07CisgICAgICAgIFN5bnRo
ZXRpY0NsaWNrVHlwZSBtX3N5bnRoZXRpY0NsaWNrVHlwZSB7IE5vVGFwIH07CiAKICNpZiBQTEFU
Rk9STShNQUMpCiAgICAgICAgIGludCBtX2V2ZW50TnVtYmVyOwpJbmRleDogU291cmNlL1dlYkNv
cmUvcmVwbGF5L1NlcmlhbGl6YXRpb25NZXRob2RzLmNwcAo9PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2Uv
V2ViQ29yZS9yZXBsYXkvU2VyaWFsaXphdGlvbk1ldGhvZHMuY3BwCShyZXZpc2lvbiAyMDI5NTAp
CisrKyBTb3VyY2UvV2ViQ29yZS9yZXBsYXkvU2VyaWFsaXphdGlvbk1ldGhvZHMuY3BwCSh3b3Jr
aW5nIGNvcHkpCkBAIC0zMzgsNyArMzM4LDcgQEAgYm9vbCBFbmNvZGluZ1RyYWl0czxQbGF0Zm9y
bU1vdXNlRXZlbnQ+OgogICAgIGlucHV0ID0gc3RkOjptYWtlX3VuaXF1ZTxQbGF0Zm9ybU1vdXNl
RXZlbnQ+KEludFBvaW50KHBvc2l0aW9uWCwgcG9zaXRpb25ZKSwKICAgICAgICAgSW50UG9pbnQo
Z2xvYmFsUG9zaXRpb25YLCBnbG9iYWxQb3NpdGlvblkpLAogICAgICAgICBidXR0b24sIHR5cGUs
IGNsaWNrQ291bnQsCi0gICAgICAgIHNoaWZ0S2V5LCBjdHJsS2V5LCBhbHRLZXksIG1ldGFLZXks
IHRpbWVzdGFtcCwgZm9yY2UpOworICAgICAgICBzaGlmdEtleSwgY3RybEtleSwgYWx0S2V5LCBt
ZXRhS2V5LCB0aW1lc3RhbXAsIGZvcmNlLCBXZWJDb3JlOjpOb1RhcCk7CiAgICAgcmV0dXJuIHRy
dWU7CiB9CiAKSW5kZXg6IFNvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBT
b3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cJKHJldmlzaW9uIDIwMjk1MCkKKysrIFNvdXJjZS9XZWJL
aXQyL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDg5IEBACisyMDE2LTA3LTA4
ICBFbnJpY2EgQ2FzdWNjaSAgPGVucmljYUBhcHBsZS5jb20+CisKKyAgICAgICAgQWRkIHN5bnRo
ZXRpYyBjbGljayBvcmlnaW4gdG8gV0tOYXZpZ2F0aW9uQWN0aW9uLgorICAgICAgICBodHRwczov
L2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTU5NTg0CisgICAgICAgIHJkYXI6Ly9w
cm9ibGVtLzI1NjEwNDIyCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisK
KyAgICAgICAgQWRkcyBhIHByaXZhdGUgcHJvcGVydHkgdG8gV0tOYXZpZ2F0aW9uQWN0aW9uIHRv
IHJldHJpZXZlCisgICAgICAgIHRoZSBvcmlnaW4gb2YgdGhlIHN5bnRoZXRpYyBjbGljay4KKwor
ICAgICAgICAqIFNoYXJlZC9OYXZpZ2F0aW9uQWN0aW9uRGF0YS5jcHA6CisgICAgICAgIChXZWJL
aXQ6Ok5hdmlnYXRpb25BY3Rpb25EYXRhOjplbmNvZGUpOgorICAgICAgICAoV2ViS2l0OjpOYXZp
Z2F0aW9uQWN0aW9uRGF0YTo6ZGVjb2RlKToKKyAgICAgICAgKiBTaGFyZWQvTmF2aWdhdGlvbkFj
dGlvbkRhdGEuaDoKKyAgICAgICAgKiBTaGFyZWQvV2ViRXZlbnQuaDoKKyAgICAgICAgKFdlYktp
dDo6V2ViTW91c2VFdmVudDo6YnV0dG9uKToKKyAgICAgICAgKFdlYktpdDo6V2ViTW91c2VFdmVu
dDo6bWVudVR5cGVGb3JFdmVudCk6CisgICAgICAgIChXZWJLaXQ6OldlYk1vdXNlRXZlbnQ6OmZv
cmNlKToKKyAgICAgICAgKFdlYktpdDo6V2ViTW91c2VFdmVudDo6c3ludGhldGljQ2xpY2tUeXBl
KToKKyAgICAgICAgKiBTaGFyZWQvV2ViTW91c2VFdmVudC5jcHA6CisgICAgICAgIChXZWJLaXQ6
OldlYk1vdXNlRXZlbnQ6OldlYk1vdXNlRXZlbnQpOgorICAgICAgICAoV2ViS2l0OjpXZWJNb3Vz
ZUV2ZW50OjplbmNvZGUpOgorICAgICAgICAoV2ViS2l0OjpXZWJNb3VzZUV2ZW50OjpkZWNvZGUp
OgorICAgICAgICAqIFNoYXJlZC9tYWMvV2ViRXZlbnRGYWN0b3J5Lm1tOgorICAgICAgICAoV2Vi
S2l0OjpXZWJFdmVudEZhY3Rvcnk6OmNyZWF0ZVdlYk1vdXNlRXZlbnQpOgorICAgICAgICAoV2Vi
S2l0OjpXZWJFdmVudEZhY3Rvcnk6OmNyZWF0ZVdlYldoZWVsRXZlbnQpOgorICAgICAgICAqIFVJ
UHJvY2Vzcy9BUEkvQVBJTmF2aWdhdGlvbkFjdGlvbi5oOgorICAgICAgICAqIFVJUHJvY2Vzcy9B
UEkvQ29jb2EvV0tOYXZpZ2F0aW9uQWN0aW9uLm1tOgorICAgICAgICAodG9XS05hdmlnYXRpb25U
eXBlKToKKyAgICAgICAgKHRvV0tTeW50aGV0aWNDbGlja1R5cGUpOgorICAgICAgICAoLVtXS05h
dmlnYXRpb25BY3Rpb24gZGVzY3JpcHRpb25dKToKKyAgICAgICAgKC1bV0tOYXZpZ2F0aW9uQWN0
aW9uIHNvdXJjZUZyYW1lXSk6CisgICAgICAgICgtW1dLTmF2aWdhdGlvbkFjdGlvbiByZXF1ZXN0
XSk6CisgICAgICAgICgtW1dLTmF2aWdhdGlvbkFjdGlvbiBfc3ludGhldGljQ2xpY2tUeXBlXSk6
CisgICAgICAgICgtW1dLTmF2aWdhdGlvbkFjdGlvbiBtb2RpZmllckZsYWdzXSk6CisgICAgICAg
ICogVUlQcm9jZXNzL0FQSS9Db2NvYS9XS05hdmlnYXRpb25BY3Rpb25Qcml2YXRlLmg6CisgICAg
ICAgICogVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5oOgorICAgICAgICAqIFVJUHJvY2Vzcy9pb3Mv
V0tDb250ZW50Vmlld0ludGVyYWN0aW9uLm1tOgorICAgICAgICAoLVtXS0NvbnRlbnRWaWV3IF90
d29GaW5nZXJTaW5nbGVUYXBHZXN0dXJlUmVjb2duaXplZDpdKToKKyAgICAgICAgKC1bV0tDb250
ZW50VmlldyBfbG9uZ1ByZXNzUmVjb2duaXplZDpdKToKKyAgICAgICAgKiBVSVByb2Nlc3MvaW9z
L1dlYlBhZ2VQcm94eUlPUy5tbToKKyAgICAgICAgKFdlYktpdDo6V2ViUGFnZVByb3h5OjpnZXRT
ZWxlY3Rpb25Db250ZXh0KToKKyAgICAgICAgKFdlYktpdDo6V2ViUGFnZVByb3h5OjpoYW5kbGVU
d29GaW5nZXJUYXBBdFBvaW50KToKKyAgICAgICAgKFdlYktpdDo6V2ViUGFnZVByb3h5OjpzZWxl
Y3RXaXRoVHdvVG91Y2hlcyk6CisgICAgICAgICogV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9J
bmplY3RlZEJ1bmRsZU5hdmlnYXRpb25BY3Rpb24uY3BwOgorICAgICAgICAoV2ViS2l0Ojptb3Vz
ZUJ1dHRvbkZvck1vdXNlRXZlbnQpOgorICAgICAgICAoV2ViS2l0OjpzeW50aGV0aWNDbGlja1R5
cGVGb3JNb3VzZUV2ZW50KToKKyAgICAgICAgKFdlYktpdDo6SW5qZWN0ZWRCdW5kbGVOYXZpZ2F0
aW9uQWN0aW9uOjptb2RpZmllcnNGb3JOYXZpZ2F0aW9uQWN0aW9uKToKKyAgICAgICAgKFdlYktp
dDo6SW5qZWN0ZWRCdW5kbGVOYXZpZ2F0aW9uQWN0aW9uOjptb3VzZUJ1dHRvbkZvck5hdmlnYXRp
b25BY3Rpb24pOgorICAgICAgICAoV2ViS2l0OjpJbmplY3RlZEJ1bmRsZU5hdmlnYXRpb25BY3Rp
b246OnN5bnRoZXRpY0NsaWNrVHlwZUZvck5hdmlnYXRpb25BY3Rpb24pOgorICAgICAgICAoV2Vi
S2l0OjpJbmplY3RlZEJ1bmRsZU5hdmlnYXRpb25BY3Rpb246OmNyZWF0ZSk6CisgICAgICAgIChX
ZWJLaXQ6OkluamVjdGVkQnVuZGxlTmF2aWdhdGlvbkFjdGlvbjo6SW5qZWN0ZWRCdW5kbGVOYXZp
Z2F0aW9uQWN0aW9uKToKKyAgICAgICAgKiBXZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0luamVj
dGVkQnVuZGxlTmF2aWdhdGlvbkFjdGlvbi5oOgorICAgICAgICAoV2ViS2l0OjpJbmplY3RlZEJ1
bmRsZU5hdmlnYXRpb25BY3Rpb246Om5hdmlnYXRpb25UeXBlKToKKyAgICAgICAgKFdlYktpdDo6
SW5qZWN0ZWRCdW5kbGVOYXZpZ2F0aW9uQWN0aW9uOjptb2RpZmllcnMpOgorICAgICAgICAoV2Vi
S2l0OjpJbmplY3RlZEJ1bmRsZU5hdmlnYXRpb25BY3Rpb246Om1vdXNlQnV0dG9uKToKKyAgICAg
ICAgKFdlYktpdDo6SW5qZWN0ZWRCdW5kbGVOYXZpZ2F0aW9uQWN0aW9uOjpoaXRUZXN0UmVzdWx0
KToKKyAgICAgICAgKFdlYktpdDo6SW5qZWN0ZWRCdW5kbGVOYXZpZ2F0aW9uQWN0aW9uOjpmb3Jt
RWxlbWVudCk6CisgICAgICAgIChXZWJLaXQ6OkluamVjdGVkQnVuZGxlTmF2aWdhdGlvbkFjdGlv
bjo6c3ludGhldGljQ2xpY2tUeXBlKToKKyAgICAgICAgKFdlYktpdDo6SW5qZWN0ZWRCdW5kbGVO
YXZpZ2F0aW9uQWN0aW9uOjpzaG91bGRPcGVuRXh0ZXJuYWxVUkxzKToKKyAgICAgICAgKFdlYktp
dDo6SW5qZWN0ZWRCdW5kbGVOYXZpZ2F0aW9uQWN0aW9uOjpzaG91bGRUcnlBcHBMaW5rcyk6Cisg
ICAgICAgICogV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJDaHJvbWVDbGllbnQuY3BwOgor
ICAgICAgICAoV2ViS2l0OjpXZWJDaHJvbWVDbGllbnQ6OmNyZWF0ZVdpbmRvdyk6CisgICAgICAg
ICogV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJGcmFtZUxvYWRlckNsaWVudC5jcHA6Cisg
ICAgICAgIChXZWJLaXQ6OldlYkZyYW1lTG9hZGVyQ2xpZW50OjpkaXNwYXRjaERlY2lkZVBvbGlj
eUZvck5ld1dpbmRvd0FjdGlvbik6CisgICAgICAgIChXZWJLaXQ6OldlYkZyYW1lTG9hZGVyQ2xp
ZW50OjpkaXNwYXRjaERlY2lkZVBvbGljeUZvck5hdmlnYXRpb25BY3Rpb24pOgorICAgICAgICAq
IFdlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmNwcDoKKyAgICAgICAgKFdlYktpdDo6V2ViUGFn
ZTo6bmF2aWdhdGVUb1BERkxpbmtXaXRoU2ltdWxhdGVkQ2xpY2spOgorICAgICAgICAoV2ViS2l0
OjpXZWJQYWdlOjpjb250ZXh0TWVudUF0UG9pbnRJbldpbmRvdyk6CisgICAgICAgIChXZWJLaXQ6
OldlYlBhZ2U6OmRyYWdFbmRlZCk6CisgICAgICAgIChXZWJLaXQ6OldlYlBhZ2U6OnNpbXVsYXRl
TW91c2VEb3duKToKKyAgICAgICAgKFdlYktpdDo6V2ViUGFnZTo6c2ltdWxhdGVNb3VzZVVwKToK
KyAgICAgICAgKFdlYktpdDo6V2ViUGFnZTo6c2ltdWxhdGVNb3VzZU1vdGlvbik6CisgICAgICAg
IChXZWJLaXQ6OldlYlBhZ2U6OnNldENvbXBvc2l0aW9uRm9yVGVzdGluZyk6CisgICAgICAgICog
V2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuaDoKKyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYlBh
Z2UvV2ViUGFnZS5tZXNzYWdlcy5pbjoKKyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYlBhZ2UvaW9z
L1dlYlBhZ2VJT1MubW06CisgICAgICAgIChXZWJLaXQ6OldlYlBhZ2U6OmhhbmRsZVN5bnRoZXRp
Y0NsaWNrKToKKyAgICAgICAgKFdlYktpdDo6V2ViUGFnZTo6Y29tcGxldGVQZW5kaW5nU3ludGhl
dGljQ2xpY2tGb3JDb250ZW50Q2hhbmdlT2JzZXJ2ZXIpOgorICAgICAgICAoV2ViS2l0OjpXZWJQ
YWdlOjpjb21wbGV0ZVN5bnRoZXRpY0NsaWNrKToKKyAgICAgICAgKFdlYktpdDo6V2ViUGFnZTo6
c2VuZFRhcEhpZ2hsaWdodEZvck5vZGVJZk5lY2Vzc2FyeSk6CisgICAgICAgIChXZWJLaXQ6Oldl
YlBhZ2U6OmhhbmRsZVR3b0ZpbmdlclRhcEF0UG9pbnQpOgorICAgICAgICAoV2ViS2l0OjpXZWJQ
YWdlOjpwb3RlbnRpYWxUYXBBdFBvc2l0aW9uKToKKyAgICAgICAgKFdlYktpdDo6V2ViUGFnZTo6
aW5zcGVjdG9yTm9kZVNlYXJjaE1vdmVkVG9Qb3NpdGlvbik6CisKIDIwMTYtMDctMDcgIEFuZHkg
RXN0ZXMgIDxhZXN0ZXNAYXBwbGUuY29tPgogCiAgICAgICAgIFtDb250ZW50IEZpbHRlcmluZ10g
TG9hZCBibG9ja2VkIHBhZ2VzIG1vcmUgbGlrZSBvdGhlciBlcnJvciBwYWdlcyBhcmUgbG9hZGVk
CkluZGV4OiBTb3VyY2UvV2ViS2l0Mi9TaGFyZWQvTmF2aWdhdGlvbkFjdGlvbkRhdGEuY3BwCj09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQyL1NoYXJlZC9OYXZpZ2F0aW9uQWN0aW9uRGF0YS5j
cHAJKHJldmlzaW9uIDIwMjk1MCkKKysrIFNvdXJjZS9XZWJLaXQyL1NoYXJlZC9OYXZpZ2F0aW9u
QWN0aW9uRGF0YS5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTM5LDYgKzM5LDcgQEAgdm9pZCBOYXZp
Z2F0aW9uQWN0aW9uRGF0YTo6ZW5jb2RlKElQQzo6QQogICAgIGVuY29kZXIuZW5jb2RlRW51bShu
YXZpZ2F0aW9uVHlwZSk7CiAgICAgZW5jb2Rlci5lbmNvZGVFbnVtKG1vZGlmaWVycyk7CiAgICAg
ZW5jb2Rlci5lbmNvZGVFbnVtKG1vdXNlQnV0dG9uKTsKKyAgICBlbmNvZGVyLmVuY29kZUVudW0o
c3ludGhldGljQ2xpY2tUeXBlKTsKICAgICBlbmNvZGVyIDw8IGlzUHJvY2Vzc2luZ1VzZXJHZXN0
dXJlOwogICAgIGVuY29kZXIgPDwgY2FuSGFuZGxlUmVxdWVzdDsKICAgICBlbmNvZGVyLmVuY29k
ZUVudW0oc2hvdWxkT3BlbkV4dGVybmFsVVJMc1BvbGljeSk7CkBAIC01Myw2ICs1NCw4IEBAIGJv
b2wgTmF2aWdhdGlvbkFjdGlvbkRhdGE6OmRlY29kZShJUEM6OkEKICAgICAgICAgcmV0dXJuIGZh
bHNlOwogICAgIGlmICghZGVjb2Rlci5kZWNvZGVFbnVtKHJlc3VsdC5tb3VzZUJ1dHRvbikpCiAg
ICAgICAgIHJldHVybiBmYWxzZTsKKyAgICBpZiAoIWRlY29kZXIuZGVjb2RlRW51bShyZXN1bHQu
c3ludGhldGljQ2xpY2tUeXBlKSkKKyAgICAgICAgcmV0dXJuIGZhbHNlOwogICAgIGlmICghZGVj
b2Rlci5kZWNvZGUocmVzdWx0LmlzUHJvY2Vzc2luZ1VzZXJHZXN0dXJlKSkKICAgICAgICAgcmV0
dXJuIGZhbHNlOwogICAgIGlmICghZGVjb2Rlci5kZWNvZGUocmVzdWx0LmNhbkhhbmRsZVJlcXVl
c3QpKQpJbmRleDogU291cmNlL1dlYktpdDIvU2hhcmVkL05hdmlnYXRpb25BY3Rpb25EYXRhLmgK
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdDIvU2hhcmVkL05hdmlnYXRpb25BY3Rpb25EYXRh
LmgJKHJldmlzaW9uIDIwMjk1MCkKKysrIFNvdXJjZS9XZWJLaXQyL1NoYXJlZC9OYXZpZ2F0aW9u
QWN0aW9uRGF0YS5oCSh3b3JraW5nIGNvcHkpCkBAIC00Myw2ICs0Myw3IEBAIHN0cnVjdCBOYXZp
Z2F0aW9uQWN0aW9uRGF0YSB7CiAgICAgV2ViQ29yZTo6TmF2aWdhdGlvblR5cGUgbmF2aWdhdGlv
blR5cGUgeyBXZWJDb3JlOjpOYXZpZ2F0aW9uVHlwZTo6T3RoZXIgfTsKICAgICBXZWJFdmVudDo6
TW9kaWZpZXJzIG1vZGlmaWVycyB7IH07CiAgICAgV2ViTW91c2VFdmVudDo6QnV0dG9uIG1vdXNl
QnV0dG9uIHsgV2ViTW91c2VFdmVudDo6Tm9CdXR0b24gfTsKKyAgICBXZWJNb3VzZUV2ZW50OjpT
eW50aGV0aWNDbGlja1R5cGUgc3ludGhldGljQ2xpY2tUeXBlIHsgV2ViTW91c2VFdmVudDo6Tm9U
YXAgfTsKICAgICBib29sIGlzUHJvY2Vzc2luZ1VzZXJHZXN0dXJlIHsgZmFsc2UgfTsKICAgICBi
b29sIGNhbkhhbmRsZVJlcXVlc3QgeyBmYWxzZSB9OwogICAgIFdlYkNvcmU6OlNob3VsZE9wZW5F
eHRlcm5hbFVSTHNQb2xpY3kgc2hvdWxkT3BlbkV4dGVybmFsVVJMc1BvbGljeSB7IFdlYkNvcmU6
OlNob3VsZE9wZW5FeHRlcm5hbFVSTHNQb2xpY3k6OlNob3VsZE5vdEFsbG93IH07CkluZGV4OiBT
b3VyY2UvV2ViS2l0Mi9TaGFyZWQvV2ViRXZlbnQuaAo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
S2l0Mi9TaGFyZWQvV2ViRXZlbnQuaAkocmV2aXNpb24gMjAyOTUwKQorKysgU291cmNlL1dlYktp
dDIvU2hhcmVkL1dlYkV2ZW50LmgJKHdvcmtpbmcgY29weSkKQEAgLTEzMCwxMiArMTMwLDE0IEBA
IHB1YmxpYzoKICAgICAgICAgUmlnaHRCdXR0b24KICAgICB9OwogCisgICAgZW51bSBTeW50aGV0
aWNDbGlja1R5cGUgeyBOb1RhcCwgT25lRmluZ2VyVGFwLCBUd29GaW5nZXJUYXAgfTsKKwogICAg
IFdlYk1vdXNlRXZlbnQoKTsKIAogI2lmIFBMQVRGT1JNKE1BQykKLSAgICBXZWJNb3VzZUV2ZW50
KFR5cGUsIEJ1dHRvbiwgY29uc3QgV2ViQ29yZTo6SW50UG9pbnQmIHBvc2l0aW9uLCBjb25zdCBX
ZWJDb3JlOjpJbnRQb2ludCYgZ2xvYmFsUG9zaXRpb24sIGZsb2F0IGRlbHRhWCwgZmxvYXQgZGVs
dGFZLCBmbG9hdCBkZWx0YVosIGludCBjbGlja0NvdW50LCBNb2RpZmllcnMsIGRvdWJsZSB0aW1l
c3RhbXAsIGRvdWJsZSBmb3JjZSwgaW50IGV2ZW50TnVtYmVyID0gLTEsIGludCBtZW51VHlwZSA9
IDApOworICAgIFdlYk1vdXNlRXZlbnQoVHlwZSwgQnV0dG9uLCBjb25zdCBXZWJDb3JlOjpJbnRQ
b2ludCYgcG9zaXRpb24sIGNvbnN0IFdlYkNvcmU6OkludFBvaW50JiBnbG9iYWxQb3NpdGlvbiwg
ZmxvYXQgZGVsdGFYLCBmbG9hdCBkZWx0YVksIGZsb2F0IGRlbHRhWiwgaW50IGNsaWNrQ291bnQs
IE1vZGlmaWVycywgZG91YmxlIHRpbWVzdGFtcCwgZG91YmxlIGZvcmNlLCBTeW50aGV0aWNDbGlj
a1R5cGUgPSBOb1RhcCwgaW50IGV2ZW50TnVtYmVyID0gLTEsIGludCBtZW51VHlwZSA9IDApOwog
I2Vsc2UKLSAgICBXZWJNb3VzZUV2ZW50KFR5cGUsIEJ1dHRvbiwgY29uc3QgV2ViQ29yZTo6SW50
UG9pbnQmIHBvc2l0aW9uLCBjb25zdCBXZWJDb3JlOjpJbnRQb2ludCYgZ2xvYmFsUG9zaXRpb24s
IGZsb2F0IGRlbHRhWCwgZmxvYXQgZGVsdGFZLCBmbG9hdCBkZWx0YVosIGludCBjbGlja0NvdW50
LCBNb2RpZmllcnMsIGRvdWJsZSB0aW1lc3RhbXAsIGRvdWJsZSBmb3JjZSA9IDApOworICAgIFdl
Yk1vdXNlRXZlbnQoVHlwZSwgQnV0dG9uLCBjb25zdCBXZWJDb3JlOjpJbnRQb2ludCYgcG9zaXRp
b24sIGNvbnN0IFdlYkNvcmU6OkludFBvaW50JiBnbG9iYWxQb3NpdGlvbiwgZmxvYXQgZGVsdGFY
LCBmbG9hdCBkZWx0YVksIGZsb2F0IGRlbHRhWiwgaW50IGNsaWNrQ291bnQsIE1vZGlmaWVycywg
ZG91YmxlIHRpbWVzdGFtcCwgZG91YmxlIGZvcmNlID0gMCwgU3ludGhldGljQ2xpY2tUeXBlID0g
Tm9UYXApOwogI2VuZGlmCiAKICAgICBCdXR0b24gYnV0dG9uKCkgY29uc3QgeyByZXR1cm4gc3Rh
dGljX2Nhc3Q8QnV0dG9uPihtX2J1dHRvbik7IH0KQEAgLTE1MCw2ICsxNTIsNyBAQCBwdWJsaWM6
CiAgICAgaW50MzJfdCBtZW51VHlwZUZvckV2ZW50KCkgY29uc3QgeyByZXR1cm4gbV9tZW51VHlw
ZUZvckV2ZW50OyB9CiAjZW5kaWYKICAgICBkb3VibGUgZm9yY2UoKSBjb25zdCB7IHJldHVybiBt
X2ZvcmNlOyB9CisgICAgU3ludGhldGljQ2xpY2tUeXBlIHN5bnRoZXRpY0NsaWNrVHlwZSgpIGNv
bnN0IHsgcmV0dXJuIHN0YXRpY19jYXN0PFN5bnRoZXRpY0NsaWNrVHlwZT4obV9zeW50aGV0aWND
bGlja1R5cGUpOyB9CiAKICAgICB2b2lkIGVuY29kZShJUEM6OkFyZ3VtZW50RW5jb2RlciYpIGNv
bnN0OwogICAgIHN0YXRpYyBib29sIGRlY29kZShJUEM6OkFyZ3VtZW50RGVjb2RlciYsIFdlYk1v
dXNlRXZlbnQmKTsKQEAgLTE2OSw2ICsxNzIsNyBAQCBwcml2YXRlOgogICAgIGludDMyX3QgbV9t
ZW51VHlwZUZvckV2ZW50OwogI2VuZGlmCiAgICAgZG91YmxlIG1fZm9yY2UgeyAwIH07CisgICAg
dWludDMyX3QgbV9zeW50aGV0aWNDbGlja1R5cGUgeyBOb1RhcCB9OwogfTsKIAogLy8gRklYTUU6
IE1vdmUgdGhpcyBjbGFzcyB0byBpdHMgb3duIGhlYWRlciBmaWxlLgpJbmRleDogU291cmNlL1dl
YktpdDIvU2hhcmVkL1dlYk1vdXNlRXZlbnQuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJL
aXQyL1NoYXJlZC9XZWJNb3VzZUV2ZW50LmNwcAkocmV2aXNpb24gMjAyOTUwKQorKysgU291cmNl
L1dlYktpdDIvU2hhcmVkL1dlYk1vdXNlRXZlbnQuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC00OCw5
ICs0OCw5IEBAIFdlYk1vdXNlRXZlbnQ6OldlYk1vdXNlRXZlbnQoKQogfQogCiAjaWYgUExBVEZP
Uk0oTUFDKQotV2ViTW91c2VFdmVudDo6V2ViTW91c2VFdmVudChUeXBlIHR5cGUsIEJ1dHRvbiBi
dXR0b24sIGNvbnN0IEludFBvaW50JiBwb3NpdGlvbiwgY29uc3QgSW50UG9pbnQmIGdsb2JhbFBv
c2l0aW9uLCBmbG9hdCBkZWx0YVgsIGZsb2F0IGRlbHRhWSwgZmxvYXQgZGVsdGFaLCBpbnQgY2xp
Y2tDb3VudCwgTW9kaWZpZXJzIG1vZGlmaWVycywgZG91YmxlIHRpbWVzdGFtcCwgZG91YmxlIGZv
cmNlLCBpbnQgZXZlbnROdW1iZXIsIGludCBtZW51VHlwZSkKK1dlYk1vdXNlRXZlbnQ6OldlYk1v
dXNlRXZlbnQoVHlwZSB0eXBlLCBCdXR0b24gYnV0dG9uLCBjb25zdCBJbnRQb2ludCYgcG9zaXRp
b24sIGNvbnN0IEludFBvaW50JiBnbG9iYWxQb3NpdGlvbiwgZmxvYXQgZGVsdGFYLCBmbG9hdCBk
ZWx0YVksIGZsb2F0IGRlbHRhWiwgaW50IGNsaWNrQ291bnQsIE1vZGlmaWVycyBtb2RpZmllcnMs
IGRvdWJsZSB0aW1lc3RhbXAsIGRvdWJsZSBmb3JjZSwgU3ludGhldGljQ2xpY2tUeXBlIHN5bnRo
ZXRpY0NsaWNrVHlwZSwgaW50IGV2ZW50TnVtYmVyLCBpbnQgbWVudVR5cGUpCiAjZWxzZQotV2Vi
TW91c2VFdmVudDo6V2ViTW91c2VFdmVudChUeXBlIHR5cGUsIEJ1dHRvbiBidXR0b24sIGNvbnN0
IEludFBvaW50JiBwb3NpdGlvbiwgY29uc3QgSW50UG9pbnQmIGdsb2JhbFBvc2l0aW9uLCBmbG9h
dCBkZWx0YVgsIGZsb2F0IGRlbHRhWSwgZmxvYXQgZGVsdGFaLCBpbnQgY2xpY2tDb3VudCwgTW9k
aWZpZXJzIG1vZGlmaWVycywgZG91YmxlIHRpbWVzdGFtcCwgZG91YmxlIGZvcmNlKQorV2ViTW91
c2VFdmVudDo6V2ViTW91c2VFdmVudChUeXBlIHR5cGUsIEJ1dHRvbiBidXR0b24sIGNvbnN0IElu
dFBvaW50JiBwb3NpdGlvbiwgY29uc3QgSW50UG9pbnQmIGdsb2JhbFBvc2l0aW9uLCBmbG9hdCBk
ZWx0YVgsIGZsb2F0IGRlbHRhWSwgZmxvYXQgZGVsdGFaLCBpbnQgY2xpY2tDb3VudCwgTW9kaWZp
ZXJzIG1vZGlmaWVycywgZG91YmxlIHRpbWVzdGFtcCwgZG91YmxlIGZvcmNlLCBTeW50aGV0aWND
bGlja1R5cGUgc3ludGhldGljQ2xpY2tUeXBlKQogI2VuZGlmCiAgICAgOiBXZWJFdmVudCh0eXBl
LCBtb2RpZmllcnMsIHRpbWVzdGFtcCkKICAgICAsIG1fYnV0dG9uKGJ1dHRvbikKQEAgLTY1LDYg
KzY1LDcgQEAgV2ViTW91c2VFdmVudDo6V2ViTW91c2VFdmVudChUeXBlIHR5cGUsIAogICAgICwg
bV9tZW51VHlwZUZvckV2ZW50KG1lbnVUeXBlKQogI2VuZGlmCiAgICAgLCBtX2ZvcmNlKGZvcmNl
KQorICAgICwgbV9zeW50aGV0aWNDbGlja1R5cGUoc3ludGhldGljQ2xpY2tUeXBlKQogewogICAg
IEFTU0VSVChpc01vdXNlRXZlbnRUeXBlKHR5cGUpKTsKIH0KQEAgLTg1LDYgKzg2LDcgQEAgdm9p
ZCBXZWJNb3VzZUV2ZW50OjplbmNvZGUoSVBDOjpBcmd1bWVudAogICAgIGVuY29kZXIgPDwgbV9t
ZW51VHlwZUZvckV2ZW50OwogI2VuZGlmCiAgICAgZW5jb2RlciA8PCBtX2ZvcmNlOworICAgIGVu
Y29kZXIgPDwgbV9zeW50aGV0aWNDbGlja1R5cGU7CiB9CiAKIGJvb2wgV2ViTW91c2VFdmVudDo6
ZGVjb2RlKElQQzo6QXJndW1lbnREZWNvZGVyJiBkZWNvZGVyLCBXZWJNb3VzZUV2ZW50JiByZXN1
bHQpCkBAIC0xMTUsNiArMTE3LDkgQEAgYm9vbCBXZWJNb3VzZUV2ZW50OjpkZWNvZGUoSVBDOjpB
cmd1bWVudAogICAgIGlmICghZGVjb2Rlci5kZWNvZGUocmVzdWx0Lm1fZm9yY2UpKQogICAgICAg
ICByZXR1cm4gZmFsc2U7CiAKKyAgICBpZiAoIWRlY29kZXIuZGVjb2RlKHJlc3VsdC5tX3N5bnRo
ZXRpY0NsaWNrVHlwZSkpCisgICAgICAgIHJldHVybiBmYWxzZTsKKwogICAgIHJldHVybiB0cnVl
OwogfQogCkluZGV4OiBTb3VyY2UvV2ViS2l0Mi9TaGFyZWQvbWFjL1dlYkV2ZW50RmFjdG9yeS5t
bQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0Mi9TaGFyZWQvbWFjL1dlYkV2ZW50RmFjdG9y
eS5tbQkocmV2aXNpb24gMjAyOTUwKQorKysgU291cmNlL1dlYktpdDIvU2hhcmVkL21hYy9XZWJF
dmVudEZhY3RvcnkubW0JKHdvcmtpbmcgY29weSkKQEAgLTQwNSw3ICs0MDUsNyBAQCBXZWJNb3Vz
ZUV2ZW50IFdlYkV2ZW50RmFjdG9yeTo6Y3JlYXRlV2ViCiAgICAgZm9yY2UgPSBwcmVzc3VyZSAr
IHN0YWdlOwogI2VuZGlmCiAKLSAgICByZXR1cm4gV2ViTW91c2VFdmVudCh0eXBlLCBidXR0b24s
IEludFBvaW50KHBvc2l0aW9uKSwgSW50UG9pbnQoZ2xvYmFsUG9zaXRpb24pLCBkZWx0YVgsIGRl
bHRhWSwgZGVsdGFaLCBjbGlja0NvdW50LCBtb2RpZmllcnMsIHRpbWVzdGFtcCwgZm9yY2UsIGV2
ZW50TnVtYmVyLCBtZW51VHlwZUZvckV2ZW50KTsKKyAgICByZXR1cm4gV2ViTW91c2VFdmVudCh0
eXBlLCBidXR0b24sIEludFBvaW50KHBvc2l0aW9uKSwgSW50UG9pbnQoZ2xvYmFsUG9zaXRpb24p
LCBkZWx0YVgsIGRlbHRhWSwgZGVsdGFaLCBjbGlja0NvdW50LCBtb2RpZmllcnMsIHRpbWVzdGFt
cCwgZm9yY2UsIFdlYk1vdXNlRXZlbnQ6OlN5bnRoZXRpY0NsaWNrVHlwZTo6Tm9UYXAsIGV2ZW50
TnVtYmVyLCBtZW51VHlwZUZvckV2ZW50KTsKIH0KIAogV2ViV2hlZWxFdmVudCBXZWJFdmVudEZh
Y3Rvcnk6OmNyZWF0ZVdlYldoZWVsRXZlbnQoTlNFdmVudCAqZXZlbnQsIE5TVmlldyAqd2luZG93
VmlldykKSW5kZXg6IFNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuaAo9PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmgJKHJldmlz
aW9uIDIwMjk1MCkKKysrIFNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuaAko
d29ya2luZyBjb3B5KQpAQCAtNTIwLDcgKzUyMCw3IEBAIHB1YmxpYzoKICAgICB2b2lkIGRpc2Fi
bGVEb3VibGVUYXBHZXN0dXJlc0R1cmluZ1RhcElmTmVjZXNzYXJ5KHVpbnQ2NF90IHJlcXVlc3RJ
RCk7CiAgICAgdm9pZCBjb250ZW50U2l6ZUNhdGVnb3J5RGlkQ2hhbmdlKGNvbnN0IFN0cmluZyYg
Y29udGVudFNpemVDYXRlZ29yeSk7CiAgICAgdm9pZCBnZXRTZWxlY3Rpb25Db250ZXh0KHN0ZDo6
ZnVuY3Rpb248dm9pZChjb25zdCBTdHJpbmcmLCBjb25zdCBTdHJpbmcmLCBjb25zdCBTdHJpbmcm
LCBDYWxsYmFja0Jhc2U6OkVycm9yKT4pOwotICAgIHZvaWQgaGFuZGxlVHdvRmluZ2VyVGFwQXRQ
b2ludChjb25zdCBXZWJDb3JlOjpJbnRQb2ludCYsIHN0ZDo6ZnVuY3Rpb248dm9pZChjb25zdCBT
dHJpbmcmLCBDYWxsYmFja0Jhc2U6OkVycm9yKT4pOworICAgIHZvaWQgaGFuZGxlVHdvRmluZ2Vy
VGFwQXRQb2ludChjb25zdCBXZWJDb3JlOjpJbnRQb2ludCYsIHVpbnQ2NF90IHJlcXVlc3RJRCk7
CiAgICAgdm9pZCB1cGRhdGVGb3JjZUFsd2F5c1VzZXJTY2FsYWJsZSgpOwogI2VuZGlmCiAjaWYg
RU5BQkxFKERBVEFfREVURUNUSU9OKQpJbmRleDogU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQ
SS9BUElOYXZpZ2F0aW9uQWN0aW9uLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdDIvVUlQ
cm9jZXNzL0FQSS9BUElOYXZpZ2F0aW9uQWN0aW9uLmgJKHJldmlzaW9uIDIwMjk1MCkKKysrIFNv
dXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQVBJTmF2aWdhdGlvbkFjdGlvbi5oCSh3b3JraW5n
IGNvcHkpCkBAIC02Miw2ICs2Miw3IEBAIHB1YmxpYzoKICAgICBXZWJDb3JlOjpOYXZpZ2F0aW9u
VHlwZSBuYXZpZ2F0aW9uVHlwZSgpIGNvbnN0IHsgcmV0dXJuIG1fbmF2aWdhdGlvbkFjdGlvbkRh
dGEubmF2aWdhdGlvblR5cGU7IH0KICAgICBXZWJLaXQ6OldlYkV2ZW50OjpNb2RpZmllcnMgbW9k
aWZpZXJzKCkgY29uc3QgeyByZXR1cm4gbV9uYXZpZ2F0aW9uQWN0aW9uRGF0YS5tb2RpZmllcnM7
IH0KICAgICBXZWJLaXQ6OldlYk1vdXNlRXZlbnQ6OkJ1dHRvbiBtb3VzZUJ1dHRvbigpIGNvbnN0
IHsgcmV0dXJuIG1fbmF2aWdhdGlvbkFjdGlvbkRhdGEubW91c2VCdXR0b247IH0KKyAgICBXZWJL
aXQ6OldlYk1vdXNlRXZlbnQ6OlN5bnRoZXRpY0NsaWNrVHlwZSBzeW50aGV0aWNDbGlja1R5cGUo
KSBjb25zdCB7IHJldHVybiBtX25hdmlnYXRpb25BY3Rpb25EYXRhLnN5bnRoZXRpY0NsaWNrVHlw
ZTsgfQogICAgIGJvb2wgaXNQcm9jZXNzaW5nVXNlckdlc3R1cmUoKSBjb25zdCB7IHJldHVybiBt
X25hdmlnYXRpb25BY3Rpb25EYXRhLmlzUHJvY2Vzc2luZ1VzZXJHZXN0dXJlOyB9CiAgICAgYm9v
bCBjYW5IYW5kbGVSZXF1ZXN0KCkgY29uc3QgeyByZXR1cm4gbV9uYXZpZ2F0aW9uQWN0aW9uRGF0
YS5jYW5IYW5kbGVSZXF1ZXN0OyB9CiAgICAgYm9vbCBzaG91bGRPcGVuRXh0ZXJuYWxTY2hlbWVz
KCkgY29uc3QgeyByZXR1cm4gbV9uYXZpZ2F0aW9uQWN0aW9uRGF0YS5zaG91bGRPcGVuRXh0ZXJu
YWxVUkxzUG9saWN5ID09IFdlYkNvcmU6OlNob3VsZE9wZW5FeHRlcm5hbFVSTHNQb2xpY3k6OlNo
b3VsZEFsbG93IHx8IG1fbmF2aWdhdGlvbkFjdGlvbkRhdGEuc2hvdWxkT3BlbkV4dGVybmFsVVJM
c1BvbGljeSA9PSBXZWJDb3JlOjpTaG91bGRPcGVuRXh0ZXJuYWxVUkxzUG9saWN5OjpTaG91bGRB
bGxvd0V4dGVybmFsU2NoZW1lczsgfQpJbmRleDogU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQ
SS9Db2NvYS9XS05hdmlnYXRpb25BY3Rpb24ubW0KPT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktp
dDIvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS05hdmlnYXRpb25BY3Rpb24ubW0JKHJldmlzaW9uIDIw
Mjk1MCkKKysrIFNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tOYXZpZ2F0aW9u
QWN0aW9uLm1tCSh3b3JraW5nIGNvcHkpCkBAIC01NSw2ICs1NSwyMCBAQCBzdGF0aWMgV0tOYXZp
Z2F0aW9uVHlwZSB0b1dLTmF2aWdhdGlvblR5CiAgICAgcmV0dXJuIFdLTmF2aWdhdGlvblR5cGVP
dGhlcjsKIH0KIAorc3RhdGljIFdLU3ludGhldGljQ2xpY2tUeXBlIHRvV0tTeW50aGV0aWNDbGlj
a1R5cGUoV2ViS2l0OjpXZWJNb3VzZUV2ZW50OjpTeW50aGV0aWNDbGlja1R5cGUgc3ludGhldGlj
Q2xpY2tUeXBlKQoreworICAgIHN3aXRjaCAoc3ludGhldGljQ2xpY2tUeXBlKSB7CisgICAgY2Fz
ZSBXZWJLaXQ6OldlYk1vdXNlRXZlbnQ6Ok5vVGFwOgorICAgICAgICByZXR1cm4gV0tTeW50aGV0
aWNDbGlja1R5cGVOb1RhcDsKKyAgICBjYXNlIFdlYktpdDo6V2ViTW91c2VFdmVudDo6T25lRmlu
Z2VyVGFwOgorICAgICAgICByZXR1cm4gV0tTeW50aGV0aWNDbGlja1R5cGVPbmVGaW5nZXJUYXA7
CisgICAgY2FzZSBXZWJLaXQ6OldlYk1vdXNlRXZlbnQ6OlR3b0ZpbmdlclRhcDoKKyAgICAgICAg
cmV0dXJuIFdLU3ludGhldGljQ2xpY2tUeXBlVHdvRmluZ2VyVGFwOworICAgIH0KKyAgICBBU1NF
UlRfTk9UX1JFQUNIRUQoKTsKKyAgICByZXR1cm4gV0tTeW50aGV0aWNDbGlja1R5cGVOb1RhcDsK
K30KKwogI2lmIFBMQVRGT1JNKE1BQykKIAogLy8gRklYTUU6IFRoaXMgcmVhbGx5IGJlbG9uZ3Mg
aW4gV2ViRXZlbnRGYWN0b3J5LgpAQCAtMTA4LDggKzEyMiw4IEBAIC0gKHZvaWQpZGVhbGxvYwog
CiAtIChOU1N0cmluZyAqKWRlc2NyaXB0aW9uCiB7Ci0gICAgcmV0dXJuIFtOU1N0cmluZyBzdHJp
bmdXaXRoRm9ybWF0OkAiPCVAOiAlcDsgbmF2aWdhdGlvblR5cGUgPSAlbGQ7IHJlcXVlc3QgPSAl
QDsgc291cmNlRnJhbWUgPSAlQDsgdGFyZ2V0RnJhbWUgPSAlQD4iLCBOU1N0cmluZ0Zyb21DbGFz
cyhzZWxmLmNsYXNzKSwgc2VsZiwKLSAgICAgICAgKGxvbmcpc2VsZi5uYXZpZ2F0aW9uVHlwZSwg
c2VsZi5yZXF1ZXN0LCBzZWxmLnNvdXJjZUZyYW1lLCBzZWxmLnRhcmdldEZyYW1lXTsKKyAgICBy
ZXR1cm4gW05TU3RyaW5nIHN0cmluZ1dpdGhGb3JtYXQ6QCI8JUA6ICVwOyBuYXZpZ2F0aW9uVHlw
ZSA9ICVsZDsgc3ludGhldGljQ2xpY2tUeXBlID0gJWxkOyByZXF1ZXN0ID0gJUA7IHNvdXJjZUZy
YW1lID0gJUA7IHRhcmdldEZyYW1lID0gJUA+IiwgTlNTdHJpbmdGcm9tQ2xhc3Moc2VsZi5jbGFz
cyksIHNlbGYsCisgICAgICAgIChsb25nKXNlbGYubmF2aWdhdGlvblR5cGUsIChsb25nKXNlbGYu
X3N5bnRoZXRpY0NsaWNrVHlwZSwgc2VsZi5yZXF1ZXN0LCBzZWxmLnNvdXJjZUZyYW1lLCBzZWxm
LnRhcmdldEZyYW1lXTsKIH0KIAogLSAoV0tGcmFtZUluZm8gKilzb3VyY2VGcmFtZQpAQCAtMTM2
LDYgKzE1MCwxMSBAQCAtIChOU1VSTFJlcXVlc3QgKilyZXF1ZXN0CiAgICAgcmV0dXJuIF9uYXZp
Z2F0aW9uQWN0aW9uLT5yZXF1ZXN0KCkubnNVUkxSZXF1ZXN0KFdlYkNvcmU6OkRvTm90VXBkYXRl
SFRUUEJvZHkpOwogfQogCistIChXS1N5bnRoZXRpY0NsaWNrVHlwZSlfc3ludGhldGljQ2xpY2tU
eXBlCit7CisgICAgcmV0dXJuIHRvV0tTeW50aGV0aWNDbGlja1R5cGUoX25hdmlnYXRpb25BY3Rp
b24tPnN5bnRoZXRpY0NsaWNrVHlwZSgpKTsKK30KKwogI2lmIFBMQVRGT1JNKE1BQykKIC0gKE5T
RXZlbnRNb2RpZmllckZsYWdzKW1vZGlmaWVyRmxhZ3MKIHsKSW5kZXg6IFNvdXJjZS9XZWJLaXQy
L1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tOYXZpZ2F0aW9uQWN0aW9uUHJpdmF0ZS5oCj09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT0KLS0tIFNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tOYXZpZ2F0aW9uQWN0
aW9uUHJpdmF0ZS5oCShyZXZpc2lvbiAyMDI5NTApCisrKyBTb3VyY2UvV2ViS2l0Mi9VSVByb2Nl
c3MvQVBJL0NvY29hL1dLTmF2aWdhdGlvbkFjdGlvblByaXZhdGUuaAkod29ya2luZyBjb3B5KQpA
QCAtMjcsNiArMjcsMTIgQEAKIAogI2lmIFdLX0FQSV9FTkFCTEVECiAKK3R5cGVkZWYgTlNfRU5V
TShOU0ludGVnZXIsIFdLU3ludGhldGljQ2xpY2tUeXBlKSB7CisgICAgV0tTeW50aGV0aWNDbGlj
a1R5cGVOb1RhcCwKKyAgICBXS1N5bnRoZXRpY0NsaWNrVHlwZU9uZUZpbmdlclRhcCwKKyAgICBX
S1N5bnRoZXRpY0NsaWNrVHlwZVR3b0ZpbmdlclRhcAorfSBXS19BUElfQVZBSUxBQkxFKG1hY29z
eChOQSksIGlvcygxMC4wKSk7CisKIEBpbnRlcmZhY2UgV0tOYXZpZ2F0aW9uQWN0aW9uIChXS1By
aXZhdGUpCiAKIEBwcm9wZXJ0eSAobm9uYXRvbWljLCByZWFkb25seSkgTlNVUkwgKl9vcmlnaW5h
bFVSTDsKQEAgLTM3LDYgKzQzLDggQEAKIAogQHByb3BlcnR5IChub25hdG9taWMsIHJlYWRvbmx5
KSBCT09MIF9zaG91bGRPcGVuRXh0ZXJuYWxVUkxzIFdLX0FQSV9ERVBSRUNBVEVEKCJ1c2UgX3No
b3VsZE9wZW5FeHRlcm5hbFNjaGVtZXMgYW5kIF9zaG91bGRPcGVuQXBwTGlua3MiLCBtYWNvc3go
MTAuMTEsIDEwLjExKSwgaW9zKDkuMCwgOS4wKSk7CiAKK0Bwcm9wZXJ0eSAobm9uYXRvbWljLCBy
ZWFkb25seSkgV0tTeW50aGV0aWNDbGlja1R5cGUgX3N5bnRoZXRpY0NsaWNrVHlwZSBXS19BUElf
QVZBSUxBQkxFKG1hY29zeChOQSksIGlvcygxMC4wKSk7CisKIEBlbmQKIAogI2VuZGlmCkluZGV4
OiBTb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvaW9zL1dLQ29udGVudFZpZXdJbnRlcmFjdGlvbi5t
bQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvaW9zL1dLQ29udGVudFZp
ZXdJbnRlcmFjdGlvbi5tbQkocmV2aXNpb24gMjAyOTUwKQorKysgU291cmNlL1dlYktpdDIvVUlQ
cm9jZXNzL2lvcy9XS0NvbnRlbnRWaWV3SW50ZXJhY3Rpb24ubW0JKHdvcmtpbmcgY29weSkKQEAg
LTEzNjksMjEgKzEzNjksOSBAQCAtICh2b2lkKV9oaWdobGlnaHRMb25nUHJlc3NSZWNvZ25pemVk
OihVCiAKIC0gKHZvaWQpX3R3b0ZpbmdlclNpbmdsZVRhcEdlc3R1cmVSZWNvZ25pemVkOihVSVRh
cEdlc3R1cmVSZWNvZ25pemVyICopZ2VzdHVyZVJlY29nbml6ZXIKIHsKLSAgICBfcGFnZS0+dGFw
SGlnaGxpZ2h0QXRQb3NpdGlvbihnZXN0dXJlUmVjb2duaXplci5jZW50cm9pZCwgKytfbGF0ZXN0
VGFwSUQpOwogICAgIF9pc1RhcEhpZ2hsaWdodElEVmFsaWQgPSBZRVM7Ci0gICAgUmV0YWluUHRy
PFdLQ29udGVudFZpZXc+IHZpZXcgPSBzZWxmOwotICAgIFdLV2ViVmlldyAqd2ViVmlldyA9IF93
ZWJWaWV3OwotICAgIF9wYWdlLT5oYW5kbGVUd29GaW5nZXJUYXBBdFBvaW50KHJvdW5kZWRJbnRQ
b2ludChnZXN0dXJlUmVjb2duaXplci5jZW50cm9pZCksIFt2aWV3LCB3ZWJWaWV3XShjb25zdCBT
dHJpbmcmIHN0cmluZywgQ2FsbGJhY2tCYXNlOjpFcnJvciBlcnJvcikgewotICAgICAgICBpZiAo
ZXJyb3IgIT0gQ2FsbGJhY2tCYXNlOjpFcnJvcjo6Tm9uZSkKLSAgICAgICAgICAgIHJldHVybjsK
LSAgICAgICAgaWYgKCFzdHJpbmcuaXNFbXB0eSgpKSB7Ci0gICAgICAgICAgICBpZCA8V0tVSURl
bGVnYXRlUHJpdmF0ZT4gdWlEZWxlZ2F0ZSA9IHN0YXRpY19jYXN0PGlkIDxXS1VJRGVsZWdhdGVQ
cml2YXRlPj4oW3dlYlZpZXcgVUlEZWxlZ2F0ZV0pOwotICAgICAgICAgICAgaWYgKFt1aURlbGVn
YXRlIHJlc3BvbmRzVG9TZWxlY3RvcjpAc2VsZWN0b3IoX3dlYlZpZXc6YWx0ZXJuYXRlQWN0aW9u
Rm9yVVJMOildKQotICAgICAgICAgICAgICAgIFt1aURlbGVnYXRlIF93ZWJWaWV3OndlYlZpZXcg
YWx0ZXJuYXRlQWN0aW9uRm9yVVJMOltOU1VSTCBfd2ViX1VSTFdpdGhXVEZTdHJpbmc6c3RyaW5n
XV07Ci0gICAgICAgICAgICBbdmlldyBfZmluaXNoSW50ZXJhY3Rpb25dOwotICAgICAgICB9IGVs
c2UKLSAgICAgICAgICAgIFt2aWV3IF9jYW5jZWxJbnRlcmFjdGlvbl07Ci0gICAgfSk7CisgICAg
X2lzRXhwZWN0aW5nRmFzdFNpbmdsZVRhcENvbW1pdCA9IFlFUzsKKyAgICBfcGFnZS0+aGFuZGxl
VHdvRmluZ2VyVGFwQXRQb2ludChyb3VuZGVkSW50UG9pbnQoZ2VzdHVyZVJlY29nbml6ZXIuY2Vu
dHJvaWQpLCArK19sYXRlc3RUYXBJRCk7CiB9CiAKIC0gKHZvaWQpX2xvbmdQcmVzc1JlY29nbml6
ZWQ6KFVJTG9uZ1ByZXNzR2VzdHVyZVJlY29nbml6ZXIgKilnZXN0dXJlUmVjb2duaXplcgpJbmRl
eDogU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL2lvcy9XZWJQYWdlUHJveHlJT1MubW0KPT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PQotLS0gU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL2lvcy9XZWJQYWdlUHJveHlJT1MubW0J
KHJldmlzaW9uIDIwMjk1MCkKKysrIFNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9pb3MvV2ViUGFn
ZVByb3h5SU9TLm1tCSh3b3JraW5nIGNvcHkpCkBAIC01NjUsMTUgKzU2NSw5IEBAIHZvaWQgV2Vi
UGFnZVByb3h5OjpnZXRTZWxlY3Rpb25Db250ZXh0KHMKICAgICBtX3Byb2Nlc3MtPnNlbmQoTWVz
c2FnZXM6OldlYlBhZ2U6OkdldFNlbGVjdGlvbkNvbnRleHQoY2FsbGJhY2tJRCksIG1fcGFnZUlE
KTsKIH0KIAotdm9pZCBXZWJQYWdlUHJveHk6OmhhbmRsZVR3b0ZpbmdlclRhcEF0UG9pbnQoY29u
c3QgV2ViQ29yZTo6SW50UG9pbnQmIHBvaW50LCBzdGQ6OmZ1bmN0aW9uPHZvaWQoY29uc3QgU3Ry
aW5nJiwgQ2FsbGJhY2tCYXNlOjpFcnJvcik+IGNhbGxiYWNrRnVuY3Rpb24pCit2b2lkIFdlYlBh
Z2VQcm94eTo6aGFuZGxlVHdvRmluZ2VyVGFwQXRQb2ludChjb25zdCBXZWJDb3JlOjpJbnRQb2lu
dCYgcG9pbnQsIHVpbnQ2NF90IHJlcXVlc3RJRCkKIHsKLSAgICBpZiAoIWlzVmFsaWQoKSkgewot
ICAgICAgICBjYWxsYmFja0Z1bmN0aW9uKFN0cmluZygpLCBDYWxsYmFja0Jhc2U6OkVycm9yOjpV
bmtub3duKTsKLSAgICAgICAgcmV0dXJuOwotICAgIH0KLSAgICAKLSAgICB1aW50NjRfdCBjYWxs
YmFja0lEID0gbV9jYWxsYmFja3MucHV0KFdURk1vdmUoY2FsbGJhY2tGdW5jdGlvbiksIG1fcHJv
Y2Vzcy0+dGhyb3R0bGVyKCkuYmFja2dyb3VuZEFjdGl2aXR5VG9rZW4oKSk7Ci0gICAgcHJvY2Vz
cygpLnNlbmQoTWVzc2FnZXM6OldlYlBhZ2U6OkhhbmRsZVR3b0ZpbmdlclRhcEF0UG9pbnQocG9p
bnQsIGNhbGxiYWNrSUQpLCBtX3BhZ2VJRCk7CisgICAgcHJvY2VzcygpLnNlbmQoTWVzc2FnZXM6
OldlYlBhZ2U6OkhhbmRsZVR3b0ZpbmdlclRhcEF0UG9pbnQocG9pbnQsIHJlcXVlc3RJRCksIG1f
cGFnZUlEKTsKIH0KIAogdm9pZCBXZWJQYWdlUHJveHk6OnNlbGVjdFdpdGhUd29Ub3VjaGVzKGNv
bnN0IFdlYkNvcmU6OkludFBvaW50IGZyb20sIGNvbnN0IFdlYkNvcmU6OkludFBvaW50IHRvLCB1
aW50MzJfdCBnZXN0dXJlVHlwZSwgdWludDMyX3QgZ2VzdHVyZVN0YXRlLCBzdGQ6OmZ1bmN0aW9u
PHZvaWQgKGNvbnN0IFdlYkNvcmU6OkludFBvaW50JiwgdWludDMyX3QsIHVpbnQzMl90LCB1aW50
MzJfdCwgQ2FsbGJhY2tCYXNlOjpFcnJvcik+IGNhbGxiYWNrRnVuY3Rpb24pCkluZGV4OiBTb3Vy
Y2UvV2ViS2l0Mi9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0luamVjdGVkQnVuZGxlTmF2aWdh
dGlvbkFjdGlvbi5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9J
bmplY3RlZEJ1bmRsZS9JbmplY3RlZEJ1bmRsZU5hdmlnYXRpb25BY3Rpb24uY3BwCShyZXZpc2lv
biAyMDI5NTApCisrKyBTb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0lu
amVjdGVkQnVuZGxlTmF2aWdhdGlvbkFjdGlvbi5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTU4LDYg
KzU4LDE3IEBAIHN0YXRpYyBXZWJNb3VzZUV2ZW50OjpCdXR0b24gbW91c2VCdXR0b24KICAgICBy
ZXR1cm4gc3RhdGljX2Nhc3Q8V2ViTW91c2VFdmVudDo6QnV0dG9uPihtb3VzZUV2ZW50LT5idXR0
b24oKSk7CiB9CiAKK3N0YXRpYyBXZWJNb3VzZUV2ZW50OjpTeW50aGV0aWNDbGlja1R5cGUgc3lu
dGhldGljQ2xpY2tUeXBlRm9yTW91c2VFdmVudChjb25zdCBNb3VzZUV2ZW50KiBtb3VzZUV2ZW50
KQoreworICAgIGlmICghbW91c2VFdmVudCkKKyAgICAgICAgcmV0dXJuIFdlYk1vdXNlRXZlbnQ6
Ok5vVGFwOworICAgIAorICAgIGlmICghbW91c2VFdmVudC0+YnV0dG9uRG93bigpIHx8ICFtb3Vz
ZUV2ZW50LT5pc1RydXN0ZWQoKSkKKyAgICAgICAgcmV0dXJuIFdlYk1vdXNlRXZlbnQ6Ok5vVGFw
OworICAgIAorICAgIHJldHVybiBzdGF0aWNfY2FzdDxXZWJNb3VzZUV2ZW50OjpTeW50aGV0aWND
bGlja1R5cGU+KG1vdXNlRXZlbnQtPnN5bnRoZXRpY0NsaWNrVHlwZSgpKTsKK30KKwogV2ViRXZl
bnQ6Ok1vZGlmaWVycyBJbmplY3RlZEJ1bmRsZU5hdmlnYXRpb25BY3Rpb246Om1vZGlmaWVyc0Zv
ck5hdmlnYXRpb25BY3Rpb24oY29uc3QgTmF2aWdhdGlvbkFjdGlvbiYgbmF2aWdhdGlvbkFjdGlv
bikKIHsKICAgICB1aW50MzJfdCBtb2RpZmllcnMgPSAwOwpAQCAtODEsNiArOTIsMTAgQEAgV2Vi
TW91c2VFdmVudDo6QnV0dG9uIEluamVjdGVkQnVuZGxlTmF2aQogICAgIHJldHVybiBtb3VzZUJ1
dHRvbkZvck1vdXNlRXZlbnQobW91c2VFdmVudEZvck5hdmlnYXRpb25BY3Rpb24obmF2aWdhdGlv
bkFjdGlvbikpOwogfQogCitXZWJNb3VzZUV2ZW50OjpTeW50aGV0aWNDbGlja1R5cGUgSW5qZWN0
ZWRCdW5kbGVOYXZpZ2F0aW9uQWN0aW9uOjpzeW50aGV0aWNDbGlja1R5cGVGb3JOYXZpZ2F0aW9u
QWN0aW9uKGNvbnN0IE5hdmlnYXRpb25BY3Rpb24mIG5hdmlnYXRpb25BY3Rpb24pCit7CisgICAg
cmV0dXJuIHN5bnRoZXRpY0NsaWNrVHlwZUZvck1vdXNlRXZlbnQobW91c2VFdmVudEZvck5hdmln
YXRpb25BY3Rpb24obmF2aWdhdGlvbkFjdGlvbikpOworfQogCiBSZWY8SW5qZWN0ZWRCdW5kbGVO
YXZpZ2F0aW9uQWN0aW9uPiBJbmplY3RlZEJ1bmRsZU5hdmlnYXRpb25BY3Rpb246OmNyZWF0ZShX
ZWJGcmFtZSogZnJhbWUsIGNvbnN0IE5hdmlnYXRpb25BY3Rpb24mIGFjdGlvbiwgUGFzc1JlZlB0
cjxGb3JtU3RhdGU+IGZvcm1TdGF0ZSkKIHsKQEAgLTk4LDYgKzExMyw3IEBAIEluamVjdGVkQnVu
ZGxlTmF2aWdhdGlvbkFjdGlvbjo6SW5qZWN0ZWQKICAgICBpZiAoY29uc3QgTW91c2VFdmVudCog
bW91c2VFdmVudCA9IG1vdXNlRXZlbnRGb3JOYXZpZ2F0aW9uQWN0aW9uKG5hdmlnYXRpb25BY3Rp
b24pKSB7CiAgICAgICAgIG1faGl0VGVzdFJlc3VsdCA9IEluamVjdGVkQnVuZGxlSGl0VGVzdFJl
c3VsdDo6Y3JlYXRlKGZyYW1lLT5jb3JlRnJhbWUoKS0+ZXZlbnRIYW5kbGVyKCkuaGl0VGVzdFJl
c3VsdEF0UG9pbnQobW91c2VFdmVudC0+YWJzb2x1dGVMb2NhdGlvbigpKSk7CiAgICAgICAgIG1f
bW91c2VCdXR0b24gICA9IG1vdXNlQnV0dG9uRm9yTW91c2VFdmVudChtb3VzZUV2ZW50KTsKKyAg
ICAgICAgbV9zeW50aGV0aWNDbGlja1R5cGUgPSBzeW50aGV0aWNDbGlja1R5cGVGb3JOYXZpZ2F0
aW9uQWN0aW9uKG5hdmlnYXRpb25BY3Rpb24pOwogICAgIH0KIAogICAgIFJlZlB0cjxGb3JtU3Rh
dGU+IGZvcm1TdGF0ZSA9IHBycEZvcm1TdGF0ZTsKSW5kZXg6IFNvdXJjZS9XZWJLaXQyL1dlYlBy
b2Nlc3MvSW5qZWN0ZWRCdW5kbGUvSW5qZWN0ZWRCdW5kbGVOYXZpZ2F0aW9uQWN0aW9uLmgKPT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PQotLS0gU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9Jbmpl
Y3RlZEJ1bmRsZU5hdmlnYXRpb25BY3Rpb24uaAkocmV2aXNpb24gMjAyOTUwKQorKysgU291cmNl
L1dlYktpdDIvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9JbmplY3RlZEJ1bmRsZU5hdmlnYXRp
b25BY3Rpb24uaAkod29ya2luZyBjb3B5KQpAQCAtNDksMTIgKzQ5LDE0IEBAIHB1YmxpYzoKIAog
ICAgIHN0YXRpYyBXZWJFdmVudDo6TW9kaWZpZXJzIG1vZGlmaWVyc0Zvck5hdmlnYXRpb25BY3Rp
b24oY29uc3QgV2ViQ29yZTo6TmF2aWdhdGlvbkFjdGlvbiYpOwogICAgIHN0YXRpYyBXZWJNb3Vz
ZUV2ZW50OjpCdXR0b24gbW91c2VCdXR0b25Gb3JOYXZpZ2F0aW9uQWN0aW9uKGNvbnN0IFdlYkNv
cmU6Ok5hdmlnYXRpb25BY3Rpb24mKTsKKyAgICBzdGF0aWMgV2ViTW91c2VFdmVudDo6U3ludGhl
dGljQ2xpY2tUeXBlIHN5bnRoZXRpY0NsaWNrVHlwZUZvck5hdmlnYXRpb25BY3Rpb24oY29uc3Qg
V2ViQ29yZTo6TmF2aWdhdGlvbkFjdGlvbiYpOwogCiAgICAgV2ViQ29yZTo6TmF2aWdhdGlvblR5
cGUgbmF2aWdhdGlvblR5cGUoKSBjb25zdCB7IHJldHVybiBtX25hdmlnYXRpb25UeXBlOyB9CiAg
ICAgV2ViRXZlbnQ6Ok1vZGlmaWVycyBtb2RpZmllcnMoKSBjb25zdCB7IHJldHVybiBtX21vZGlm
aWVyczsgfQogICAgIFdlYk1vdXNlRXZlbnQ6OkJ1dHRvbiBtb3VzZUJ1dHRvbigpIGNvbnN0IHsg
cmV0dXJuIG1fbW91c2VCdXR0b247IH0KICAgICBJbmplY3RlZEJ1bmRsZUhpdFRlc3RSZXN1bHQq
IGhpdFRlc3RSZXN1bHQoKSBjb25zdCB7IHJldHVybiBtX2hpdFRlc3RSZXN1bHQuZ2V0KCk7IH0K
ICAgICBJbmplY3RlZEJ1bmRsZU5vZGVIYW5kbGUqIGZvcm1FbGVtZW50KCkgY29uc3QgeyByZXR1
cm4gbV9mb3JtRWxlbWVudC5nZXQoKTsgfQorICAgIFdlYk1vdXNlRXZlbnQ6OlN5bnRoZXRpY0Ns
aWNrVHlwZSBzeW50aGV0aWNDbGlja1R5cGUoKSBjb25zdCB7IHJldHVybiBtX3N5bnRoZXRpY0Ns
aWNrVHlwZTsgfQogCiAgICAgYm9vbCBzaG91bGRPcGVuRXh0ZXJuYWxVUkxzKCkgY29uc3QgeyBy
ZXR1cm4gbV9zaG91bGRPcGVuRXh0ZXJuYWxVUkxzOyB9CiAgICAgYm9vbCBzaG91bGRUcnlBcHBM
aW5rcygpIGNvbnN0IHsgcmV0dXJuIG1fc2hvdWxkVHJ5QXBwTGlua3M7IH0KQEAgLTY2LDYgKzY4
LDcgQEAgcHJpdmF0ZToKICAgICBXZWJDb3JlOjpOYXZpZ2F0aW9uVHlwZSBtX25hdmlnYXRpb25U
eXBlOwogICAgIFdlYkV2ZW50OjpNb2RpZmllcnMgbV9tb2RpZmllcnM7CiAgICAgV2ViTW91c2VF
dmVudDo6QnV0dG9uIG1fbW91c2VCdXR0b247CisgICAgV2ViTW91c2VFdmVudDo6U3ludGhldGlj
Q2xpY2tUeXBlIG1fc3ludGhldGljQ2xpY2tUeXBlOwogICAgIFJlZlB0cjxJbmplY3RlZEJ1bmRs
ZUhpdFRlc3RSZXN1bHQ+IG1faGl0VGVzdFJlc3VsdDsKICAgICBSZWZQdHI8SW5qZWN0ZWRCdW5k
bGVOb2RlSGFuZGxlPiBtX2Zvcm1FbGVtZW50OwogICAgIEF0b21pY1N0cmluZyBtX2Rvd25sb2Fk
QXR0cmlidXRlOwpJbmRleDogU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9y
dC9XZWJDaHJvbWVDbGllbnQuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQyL1dlYlBy
b2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViQ2hyb21lQ2xpZW50LmNwcAkocmV2aXNpb24gMjAyOTUw
KQorKysgU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJDaHJvbWVD
bGllbnQuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0yMjAsNiArMjIwLDcgQEAgUGFnZSogV2ViQ2hy
b21lQ2xpZW50OjpjcmVhdGVXaW5kb3coRnJhbQogICAgIG5hdmlnYXRpb25BY3Rpb25EYXRhLm5h
dmlnYXRpb25UeXBlID0gbmF2aWdhdGlvbkFjdGlvbi50eXBlKCk7CiAgICAgbmF2aWdhdGlvbkFj
dGlvbkRhdGEubW9kaWZpZXJzID0gSW5qZWN0ZWRCdW5kbGVOYXZpZ2F0aW9uQWN0aW9uOjptb2Rp
ZmllcnNGb3JOYXZpZ2F0aW9uQWN0aW9uKG5hdmlnYXRpb25BY3Rpb24pOwogICAgIG5hdmlnYXRp
b25BY3Rpb25EYXRhLm1vdXNlQnV0dG9uID0gSW5qZWN0ZWRCdW5kbGVOYXZpZ2F0aW9uQWN0aW9u
Ojptb3VzZUJ1dHRvbkZvck5hdmlnYXRpb25BY3Rpb24obmF2aWdhdGlvbkFjdGlvbik7CisgICAg
bmF2aWdhdGlvbkFjdGlvbkRhdGEuc3ludGhldGljQ2xpY2tUeXBlID0gSW5qZWN0ZWRCdW5kbGVO
YXZpZ2F0aW9uQWN0aW9uOjpzeW50aGV0aWNDbGlja1R5cGVGb3JOYXZpZ2F0aW9uQWN0aW9uKG5h
dmlnYXRpb25BY3Rpb24pOwogICAgIG5hdmlnYXRpb25BY3Rpb25EYXRhLmlzUHJvY2Vzc2luZ1Vz
ZXJHZXN0dXJlID0gbmF2aWdhdGlvbkFjdGlvbi5wcm9jZXNzaW5nVXNlckdlc3R1cmUoKTsKICAg
ICBuYXZpZ2F0aW9uQWN0aW9uRGF0YS5jYW5IYW5kbGVSZXF1ZXN0ID0gbV9wYWdlLT5jYW5IYW5k
bGVSZXF1ZXN0KHJlcXVlc3QucmVzb3VyY2VSZXF1ZXN0KCkpOwogICAgIG5hdmlnYXRpb25BY3Rp
b25EYXRhLnNob3VsZE9wZW5FeHRlcm5hbFVSTHNQb2xpY3kgPSBuYXZpZ2F0aW9uQWN0aW9uLnNo
b3VsZE9wZW5FeHRlcm5hbFVSTHNQb2xpY3koKTsKSW5kZXg6IFNvdXJjZS9XZWJLaXQyL1dlYlBy
b2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViRnJhbWVMb2FkZXJDbGllbnQuY3BwCj09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K
LS0tIFNvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViRnJhbWVMb2Fk
ZXJDbGllbnQuY3BwCShyZXZpc2lvbiAyMDI5NTApCisrKyBTb3VyY2UvV2ViS2l0Mi9XZWJQcm9j
ZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkZyYW1lTG9hZGVyQ2xpZW50LmNwcAkod29ya2luZyBjb3B5
KQpAQCAtNzI2LDYgKzcyNiw3IEBAIHZvaWQgV2ViRnJhbWVMb2FkZXJDbGllbnQ6OmRpc3BhdGNo
RGVjaWQKICAgICBuYXZpZ2F0aW9uQWN0aW9uRGF0YS5uYXZpZ2F0aW9uVHlwZSA9IGFjdGlvbi0+
bmF2aWdhdGlvblR5cGUoKTsKICAgICBuYXZpZ2F0aW9uQWN0aW9uRGF0YS5tb2RpZmllcnMgPSBh
Y3Rpb24tPm1vZGlmaWVycygpOwogICAgIG5hdmlnYXRpb25BY3Rpb25EYXRhLm1vdXNlQnV0dG9u
ID0gYWN0aW9uLT5tb3VzZUJ1dHRvbigpOworICAgIG5hdmlnYXRpb25BY3Rpb25EYXRhLnN5bnRo
ZXRpY0NsaWNrVHlwZSA9IGFjdGlvbi0+c3ludGhldGljQ2xpY2tUeXBlKCk7CiAgICAgbmF2aWdh
dGlvbkFjdGlvbkRhdGEuaXNQcm9jZXNzaW5nVXNlckdlc3R1cmUgPSBuYXZpZ2F0aW9uQWN0aW9u
LnByb2Nlc3NpbmdVc2VyR2VzdHVyZSgpOwogICAgIG5hdmlnYXRpb25BY3Rpb25EYXRhLmNhbkhh
bmRsZVJlcXVlc3QgPSB3ZWJQYWdlLT5jYW5IYW5kbGVSZXF1ZXN0KHJlcXVlc3QpOwogICAgIG5h
dmlnYXRpb25BY3Rpb25EYXRhLnNob3VsZE9wZW5FeHRlcm5hbFVSTHNQb2xpY3kgPSBuYXZpZ2F0
aW9uQWN0aW9uLnNob3VsZE9wZW5FeHRlcm5hbFVSTHNQb2xpY3koKTsKQEAgLTc5Miw2ICs3OTMs
NyBAQCB2b2lkIFdlYkZyYW1lTG9hZGVyQ2xpZW50OjpkaXNwYXRjaERlY2lkCiAgICAgbmF2aWdh
dGlvbkFjdGlvbkRhdGEubmF2aWdhdGlvblR5cGUgPSBhY3Rpb24tPm5hdmlnYXRpb25UeXBlKCk7
CiAgICAgbmF2aWdhdGlvbkFjdGlvbkRhdGEubW9kaWZpZXJzID0gYWN0aW9uLT5tb2RpZmllcnMo
KTsKICAgICBuYXZpZ2F0aW9uQWN0aW9uRGF0YS5tb3VzZUJ1dHRvbiA9IGFjdGlvbi0+bW91c2VC
dXR0b24oKTsKKyAgICBuYXZpZ2F0aW9uQWN0aW9uRGF0YS5zeW50aGV0aWNDbGlja1R5cGUgPSBh
Y3Rpb24tPnN5bnRoZXRpY0NsaWNrVHlwZSgpOwogICAgIG5hdmlnYXRpb25BY3Rpb25EYXRhLmlz
UHJvY2Vzc2luZ1VzZXJHZXN0dXJlID0gbmF2aWdhdGlvbkFjdGlvbi5wcm9jZXNzaW5nVXNlckdl
c3R1cmUoKTsKICAgICBuYXZpZ2F0aW9uQWN0aW9uRGF0YS5jYW5IYW5kbGVSZXF1ZXN0ID0gd2Vi
UGFnZS0+Y2FuSGFuZGxlUmVxdWVzdChyZXF1ZXN0KTsKICAgICBuYXZpZ2F0aW9uQWN0aW9uRGF0
YS5zaG91bGRPcGVuRXh0ZXJuYWxVUkxzUG9saWN5ID0gbmF2aWdhdGlvbkFjdGlvbi5zaG91bGRP
cGVuRXh0ZXJuYWxVUkxzUG9saWN5KCk7CkluZGV4OiBTb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNz
L1dlYlBhZ2UvV2ViUGFnZS5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdDIvV2ViUHJv
Y2Vzcy9XZWJQYWdlL1dlYlBhZ2UuY3BwCShyZXZpc2lvbiAyMDI5NTApCisrKyBTb3VyY2UvV2Vi
S2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTEy
NDAsNyArMTI0MCw3IEBAIHZvaWQgV2ViUGFnZTo6bmF2aWdhdGVUb1BERkxpbmtXaXRoU2ltdWwK
ICNpZiBFTkFCTEUoUE9JTlRFUl9MT0NLKQogICAgICAgICAwLCAwLAogI2VuZGlmCi0gICAgICAg
IGZhbHNlLCBmYWxzZSwgZmFsc2UsIGZhbHNlLCAwLCBudWxscHRyLCAwLCBudWxscHRyKTsKKyAg
ICAgICAgZmFsc2UsIGZhbHNlLCBmYWxzZSwgZmFsc2UsIDAsIG51bGxwdHIsIDAsIFdlYkNvcmU6
Ok5vVGFwLCBudWxscHRyKTsKIAogICAgIG1haW5GcmFtZS0+bG9hZGVyKCkudXJsU2VsZWN0ZWQo
bWFpbkZyYW1lRG9jdW1lbnQtPmNvbXBsZXRlVVJMKHVybCksIGVtcHR5U3RyaW5nKCksIG1vdXNl
RXZlbnQuZ2V0KCksIExvY2tIaXN0b3J5OjpObywgTG9ja0JhY2tGb3J3YXJkTGlzdDo6Tm8sIFNo
b3VsZFNlbmRSZWZlcnJlcjo6TWF5YmVTZW5kUmVmZXJyZXIsIFNob3VsZE9wZW5FeHRlcm5hbFVS
THNQb2xpY3k6OlNob3VsZE5vdEFsbG93KTsKIH0KQEAgLTIwMjYsNyArMjAyNiw3IEBAIFdlYkNv
bnRleHRNZW51KiBXZWJQYWdlOjpjb250ZXh0TWVudUF0UG8KICAgICBjb3JlUGFnZSgpLT5jb250
ZXh0TWVudUNvbnRyb2xsZXIoKS5jbGVhckNvbnRleHRNZW51KCk7CiAgICAgCiAgICAgLy8gU2lt
dWxhdGUgYSBtb3VzZSBjbGljayB0byBnZW5lcmF0ZSB0aGUgY29ycmVjdCBtZW51LgotICAgIFBs
YXRmb3JtTW91c2VFdmVudCBtb3VzZUV2ZW50KHBvaW50LCBwb2ludCwgUmlnaHRCdXR0b24sIFBs
YXRmb3JtRXZlbnQ6Ok1vdXNlUHJlc3NlZCwgMSwgZmFsc2UsIGZhbHNlLCBmYWxzZSwgZmFsc2Us
IGN1cnJlbnRUaW1lKCksIFdlYkNvcmU6OkZvcmNlQXRDbGljayk7CisgICAgUGxhdGZvcm1Nb3Vz
ZUV2ZW50IG1vdXNlRXZlbnQocG9pbnQsIHBvaW50LCBSaWdodEJ1dHRvbiwgUGxhdGZvcm1FdmVu
dDo6TW91c2VQcmVzc2VkLCAxLCBmYWxzZSwgZmFsc2UsIGZhbHNlLCBmYWxzZSwgY3VycmVudFRp
bWUoKSwgV2ViQ29yZTo6Rm9yY2VBdENsaWNrLCBXZWJDb3JlOjpOb1RhcCk7CiAgICAgYm9vbCBo
YW5kbGVkID0gY29yZVBhZ2UoKS0+dXNlcklucHV0QnJpZGdlKCkuaGFuZGxlQ29udGV4dE1lbnVF
dmVudChtb3VzZUV2ZW50LCAmY29yZVBhZ2UoKS0+bWFpbkZyYW1lKCkpOwogICAgIGlmICghaGFu
ZGxlZCkKICAgICAgICAgcmV0dXJuIDA7CkBAIC0zNDQzLDcgKzM0NDMsNyBAQCB2b2lkIFdlYlBh
Z2U6OmRyYWdFbmRlZChXZWJDb3JlOjpJbnRQb2luCiAgICAgaWYgKCF2aWV3KQogICAgICAgICBy
ZXR1cm47CiAgICAgLy8gRklYTUU6IFRoZXNlIGFyZSBmYWtlIG1vZGlmaWVyIGtleXMgaGVyZSwg
YnV0IHRoZXkgc2hvdWxkIGJlIHJlYWwgb25lcyBpbnN0ZWFkLgotICAgIFBsYXRmb3JtTW91c2VF
dmVudCBldmVudChhZGp1c3RlZENsaWVudFBvc2l0aW9uLCBhZGp1c3RlZEdsb2JhbFBvc2l0aW9u
LCBMZWZ0QnV0dG9uLCBQbGF0Zm9ybUV2ZW50OjpNb3VzZU1vdmVkLCAwLCBmYWxzZSwgZmFsc2Us
IGZhbHNlLCBmYWxzZSwgY3VycmVudFRpbWUoKSwgMCk7CisgICAgUGxhdGZvcm1Nb3VzZUV2ZW50
IGV2ZW50KGFkanVzdGVkQ2xpZW50UG9zaXRpb24sIGFkanVzdGVkR2xvYmFsUG9zaXRpb24sIExl
ZnRCdXR0b24sIFBsYXRmb3JtRXZlbnQ6Ok1vdXNlTW92ZWQsIDAsIGZhbHNlLCBmYWxzZSwgZmFs
c2UsIGZhbHNlLCBjdXJyZW50VGltZSgpLCAwLCBXZWJDb3JlOjpOb1RhcCk7CiAgICAgbV9wYWdl
LT5tYWluRnJhbWUoKS5ldmVudEhhbmRsZXIoKS5kcmFnU291cmNlRW5kZWRBdChldmVudCwgKERy
YWdPcGVyYXRpb24pb3BlcmF0aW9uKTsKIH0KIApAQCAtNDM5NiwxNyArNDM5NiwxNyBAQCB2b2lk
IFdlYlBhZ2U6OmhhbmRsZUFsdGVybmF0aXZlVGV4dFVJUmVzCiAKIHZvaWQgV2ViUGFnZTo6c2lt
dWxhdGVNb3VzZURvd24oaW50IGJ1dHRvbiwgV2ViQ29yZTo6SW50UG9pbnQgcG9zaXRpb24sIGlu
dCBjbGlja0NvdW50LCBXS0V2ZW50TW9kaWZpZXJzIG1vZGlmaWVycywgZG91YmxlIHRpbWUpCiB7
Ci0gICAgbW91c2VFdmVudChXZWJNb3VzZUV2ZW50KFdlYk1vdXNlRXZlbnQ6Ok1vdXNlRG93biwg
c3RhdGljX2Nhc3Q8V2ViTW91c2VFdmVudDo6QnV0dG9uPihidXR0b24pLCBwb3NpdGlvbiwgcG9z
aXRpb24sIDAsIDAsIDAsIGNsaWNrQ291bnQsIHN0YXRpY19jYXN0PFdlYk1vdXNlRXZlbnQ6Ok1v
ZGlmaWVycz4obW9kaWZpZXJzKSwgdGltZSwgV2ViQ29yZTo6Rm9yY2VBdENsaWNrKSk7CisgICAg
bW91c2VFdmVudChXZWJNb3VzZUV2ZW50KFdlYk1vdXNlRXZlbnQ6Ok1vdXNlRG93biwgc3RhdGlj
X2Nhc3Q8V2ViTW91c2VFdmVudDo6QnV0dG9uPihidXR0b24pLCBwb3NpdGlvbiwgcG9zaXRpb24s
IDAsIDAsIDAsIGNsaWNrQ291bnQsIHN0YXRpY19jYXN0PFdlYk1vdXNlRXZlbnQ6Ok1vZGlmaWVy
cz4obW9kaWZpZXJzKSwgdGltZSwgV2ViQ29yZTo6Rm9yY2VBdENsaWNrLCBXZWJNb3VzZUV2ZW50
OjpOb1RhcCkpOwogfQogCiB2b2lkIFdlYlBhZ2U6OnNpbXVsYXRlTW91c2VVcChpbnQgYnV0dG9u
LCBXZWJDb3JlOjpJbnRQb2ludCBwb3NpdGlvbiwgaW50IGNsaWNrQ291bnQsIFdLRXZlbnRNb2Rp
ZmllcnMgbW9kaWZpZXJzLCBkb3VibGUgdGltZSkKIHsKLSAgICBtb3VzZUV2ZW50KFdlYk1vdXNl
RXZlbnQoV2ViTW91c2VFdmVudDo6TW91c2VVcCwgc3RhdGljX2Nhc3Q8V2ViTW91c2VFdmVudDo6
QnV0dG9uPihidXR0b24pLCBwb3NpdGlvbiwgcG9zaXRpb24sIDAsIDAsIDAsIGNsaWNrQ291bnQs
IHN0YXRpY19jYXN0PFdlYk1vdXNlRXZlbnQ6Ok1vZGlmaWVycz4obW9kaWZpZXJzKSwgdGltZSwg
V2ViQ29yZTo6Rm9yY2VBdENsaWNrKSk7CisgICAgbW91c2VFdmVudChXZWJNb3VzZUV2ZW50KFdl
Yk1vdXNlRXZlbnQ6Ok1vdXNlVXAsIHN0YXRpY19jYXN0PFdlYk1vdXNlRXZlbnQ6OkJ1dHRvbj4o
YnV0dG9uKSwgcG9zaXRpb24sIHBvc2l0aW9uLCAwLCAwLCAwLCBjbGlja0NvdW50LCBzdGF0aWNf
Y2FzdDxXZWJNb3VzZUV2ZW50OjpNb2RpZmllcnM+KG1vZGlmaWVycyksIHRpbWUsIFdlYkNvcmU6
OkZvcmNlQXRDbGljaywgV2ViTW91c2VFdmVudDo6Tm9UYXApKTsKIH0KIAogdm9pZCBXZWJQYWdl
OjpzaW11bGF0ZU1vdXNlTW90aW9uKFdlYkNvcmU6OkludFBvaW50IHBvc2l0aW9uLCBkb3VibGUg
dGltZSkKIHsKLSAgICBtb3VzZUV2ZW50KFdlYk1vdXNlRXZlbnQoV2ViTW91c2VFdmVudDo6TW91
c2VNb3ZlLCBXZWJNb3VzZUV2ZW50OjpOb0J1dHRvbiwgcG9zaXRpb24sIHBvc2l0aW9uLCAwLCAw
LCAwLCAwLCBXZWJNb3VzZUV2ZW50OjpNb2RpZmllcnMoKSwgdGltZSwgMCkpOworICAgIG1vdXNl
RXZlbnQoV2ViTW91c2VFdmVudChXZWJNb3VzZUV2ZW50OjpNb3VzZU1vdmUsIFdlYk1vdXNlRXZl
bnQ6Ok5vQnV0dG9uLCBwb3NpdGlvbiwgcG9zaXRpb24sIDAsIDAsIDAsIDAsIFdlYk1vdXNlRXZl
bnQ6Ok1vZGlmaWVycygpLCB0aW1lLCAwLCBXZWJNb3VzZUV2ZW50OjpOb1RhcCkpOwogfQogCiB2
b2lkIFdlYlBhZ2U6OnNldENvbXBvc2l0aW9uRm9yVGVzdGluZyhjb25zdCBTdHJpbmcmIGNvbXBv
c2l0aW9uU3RyaW5nLCB1aW50NjRfdCBmcm9tLCB1aW50NjRfdCBsZW5ndGgpCkluZGV4OiBTb3Vy
Y2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5oCj09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNv
dXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmgJKHJldmlzaW9uIDIwMjk1
MCkKKysrIFNvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmgJKHdvcmtp
bmcgY29weSkKQEAgLTYwLDYgKzYwLDcgQEAKICNpbmNsdWRlIDxXZWJDb3JlL1BhZ2UuaD4KICNp
bmNsdWRlIDxXZWJDb3JlL1BhZ2VPdmVybGF5Lmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9QYWdlVmlz
aWJpbGl0eVN0YXRlLmg+CisjaW5jbHVkZSA8V2ViQ29yZS9QbGF0Zm9ybU1vdXNlRXZlbnQuaD4K
ICNpbmNsdWRlIDxXZWJDb3JlL1Njcm9sbFR5cGVzLmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9UZXh0
Q2hlY2tpbmcuaD4KICNpbmNsdWRlIDxXZWJDb3JlL1RleHRJbmRpY2F0b3IuaD4KQEAgLTU2MCw3
ICs1NjEsNyBAQCBwdWJsaWM6CiAgICAgV2ViQ29yZTo6SW50UmVjdCByZWN0Rm9yRWxlbWVudEF0
SW50ZXJhY3Rpb25Mb2NhdGlvbigpOwogICAgIHZvaWQgdXBkYXRlU2VsZWN0aW9uQXBwZWFyYW5j
ZSgpOwogICAgIHZvaWQgZ2V0U2VsZWN0aW9uQ29udGV4dCh1aW50NjRfdCBjYWxsYmFja0lEKTsK
LSAgICB2b2lkIGhhbmRsZVR3b0ZpbmdlclRhcEF0UG9pbnQoY29uc3QgV2ViQ29yZTo6SW50UG9p
bnQmLCB1aW50NjRfdCBjYWxsYmFja0lEKTsKKyAgICB2b2lkIGhhbmRsZVR3b0ZpbmdlclRhcEF0
UG9pbnQoY29uc3QgV2ViQ29yZTo6SW50UG9pbnQmLCB1aW50NjRfdCByZXF1ZXN0SUQpOwogI2lm
IEVOQUJMRShJT1NfVE9VQ0hfRVZFTlRTKQogICAgIHZvaWQgZGlzcGF0Y2hBc3luY2hyb25vdXNU
b3VjaEV2ZW50cyhjb25zdCBWZWN0b3I8V2ViVG91Y2hFdmVudCwgMT4mIHF1ZXVlKTsKICNlbmRp
ZgpAQCAtOTc3LDcgKzk3OCw3IEBAIHByaXZhdGU6CiAgICAgdm9pZCBnZXRBc3Npc3RlZE5vZGVJ
bmZvcm1hdGlvbihBc3Npc3RlZE5vZGVJbmZvcm1hdGlvbiYpOwogICAgIHZvaWQgcGxhdGZvcm1J
bml0aWFsaXplQWNjZXNzaWJpbGl0eSgpOwogICAgIHZvaWQgaGFuZGxlU3ludGhldGljQ2xpY2so
V2ViQ29yZTo6Tm9kZSogbm9kZVJlc3BvbmRpbmdUb0NsaWNrLCBjb25zdCBXZWJDb3JlOjpGbG9h
dFBvaW50JiBsb2NhdGlvbik7Ci0gICAgdm9pZCBjb21wbGV0ZVN5bnRoZXRpY0NsaWNrKFdlYkNv
cmU6Ok5vZGUqIG5vZGVSZXNwb25kaW5nVG9DbGljaywgY29uc3QgV2ViQ29yZTo6RmxvYXRQb2lu
dCYgbG9jYXRpb24pOworICAgIHZvaWQgY29tcGxldGVTeW50aGV0aWNDbGljayhXZWJDb3JlOjpO
b2RlKiBub2RlUmVzcG9uZGluZ1RvQ2xpY2ssIGNvbnN0IFdlYkNvcmU6OkZsb2F0UG9pbnQmIGxv
Y2F0aW9uLCBXZWJDb3JlOjpTeW50aGV0aWNDbGlja1R5cGUpOwogICAgIHZvaWQgc2VuZFRhcEhp
Z2hsaWdodEZvck5vZGVJZk5lY2Vzc2FyeSh1aW50NjRfdCByZXF1ZXN0SUQsIFdlYkNvcmU6Ok5v
ZGUqKTsKICAgICB2b2lkIHJlc2V0VGV4dEF1dG9zaXppbmcoKTsKICAgICBXZWJDb3JlOjpWaXNp
YmxlUG9zaXRpb24gdmlzaWJsZVBvc2l0aW9uSW5Gb2N1c2VkTm9kZUZvclBvaW50KGNvbnN0IFdl
YkNvcmU6OkZyYW1lJiwgY29uc3QgV2ViQ29yZTo6SW50UG9pbnQmLCBib29sIGlzSW50ZXJhY3Rp
bmdXaXRoQXNzaXN0ZWROb2RlKTsKSW5kZXg6IFNvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2Vi
UGFnZS9XZWJQYWdlLm1lc3NhZ2VzLmluCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQyL1dl
YlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLm1lc3NhZ2VzLmluCShyZXZpc2lvbiAyMDI5NTApCisr
KyBTb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5tZXNzYWdlcy5pbgko
d29ya2luZyBjb3B5KQpAQCAtOTYsNyArOTYsNyBAQCBtZXNzYWdlcyAtPiBXZWJQYWdlIExlZ2Fj
eVJlY2VpdmVyIHsKICAgICBFeGVjdXRlRWRpdENvbW1hbmRXaXRoQ2FsbGJhY2soU3RyaW5nIG5h
bWUsIHVpbnQ2NF90IGNhbGxiYWNrSUQpCiAgICAgR2V0U2VsZWN0aW9uQ29udGV4dCh1aW50NjRf
dCBjYWxsYmFja0lEKQogICAgIFNldEFsbG93c01lZGlhRG9jdW1lbnRJbmxpbmVQbGF5YmFjayhi
b29sIGFsbG93cykKLSAgICBIYW5kbGVUd29GaW5nZXJUYXBBdFBvaW50KFdlYkNvcmU6OkludFBv
aW50IHBvaW50LCB1aW50NjRfdCBjYWxsYmFja0lEKQorICAgIEhhbmRsZVR3b0ZpbmdlclRhcEF0
UG9pbnQoV2ViQ29yZTo6SW50UG9pbnQgcG9pbnQsIHVpbnQ2NF90IHJlcXVlc3RJRCkKICAgICBV
cGRhdGVGb3JjZUFsd2F5c1VzZXJTY2FsYWJsZSgpCiAjZW5kaWYKIApJbmRleDogU291cmNlL1dl
YktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL2lvcy9XZWJQYWdlSU9TLm1tCj09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0t
IFNvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9pb3MvV2ViUGFnZUlPUy5tbQkocmV2
aXNpb24gMjAyOTUwKQorKysgU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL2lvcy9X
ZWJQYWdlSU9TLm1tCSh3b3JraW5nIGNvcHkpCkBAIC01MjcsNyArNTI3LDcgQEAgdm9pZCBXZWJQ
YWdlOjpoYW5kbGVTeW50aGV0aWNDbGljayhOb2RlKgogCiAgICAgV0tCZWdpbk9ic2VydmluZ0Nv
bnRlbnRDaGFuZ2VzKHRydWUpOwogCi0gICAgbWFpbmZyYW1lLmV2ZW50SGFuZGxlcigpLm1vdXNl
TW92ZWQoUGxhdGZvcm1Nb3VzZUV2ZW50KHJvdW5kZWRBZGp1c3RlZFBvaW50LCByb3VuZGVkQWRq
dXN0ZWRQb2ludCwgTm9CdXR0b24sIFBsYXRmb3JtRXZlbnQ6Ok1vdXNlTW92ZWQsIDAsIGZhbHNl
LCBmYWxzZSwgZmFsc2UsIGZhbHNlLCAwLCBXZWJDb3JlOjpGb3JjZUF0Q2xpY2spKTsKKyAgICBt
YWluZnJhbWUuZXZlbnRIYW5kbGVyKCkubW91c2VNb3ZlZChQbGF0Zm9ybU1vdXNlRXZlbnQocm91
bmRlZEFkanVzdGVkUG9pbnQsIHJvdW5kZWRBZGp1c3RlZFBvaW50LCBOb0J1dHRvbiwgUGxhdGZv
cm1FdmVudDo6TW91c2VNb3ZlZCwgMCwgZmFsc2UsIGZhbHNlLCBmYWxzZSwgZmFsc2UsIDAsIFdl
YkNvcmU6OkZvcmNlQXRDbGljaywgV2ViQ29yZTo6Tm9UYXApKTsKICAgICBtYWluZnJhbWUuZG9j
dW1lbnQoKS0+dXBkYXRlU3R5bGVJZk5lZWRlZCgpOwogCiAgICAgV0tTdG9wT2JzZXJ2aW5nQ29u
dGVudENoYW5nZXMoKTsKQEAgLTU0NSw3ICs1NDUsNyBAQCB2b2lkIFdlYlBhZ2U6OmhhbmRsZVN5
bnRoZXRpY0NsaWNrKE5vZGUqCiAgICAgICAgIG1fcGVuZGluZ1N5bnRoZXRpY0NsaWNrTG9jYXRp
b24gPSBsb2NhdGlvbjsKICAgICAgICAgcmV0dXJuOwogICAgIGNhc2UgV0tDb250ZW50Tm9DaGFu
Z2U6Ci0gICAgICAgIGNvbXBsZXRlU3ludGhldGljQ2xpY2sobm9kZVJlc3BvbmRpbmdUb0NsaWNr
LCBsb2NhdGlvbik7CisgICAgICAgIGNvbXBsZXRlU3ludGhldGljQ2xpY2sobm9kZVJlc3BvbmRp
bmdUb0NsaWNrLCBsb2NhdGlvbiwgV2ViQ29yZTo6T25lRmluZ2VyVGFwKTsKICAgICAgICAgcmV0
dXJuOwogICAgIH0KICAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsKQEAgLTU1NywxMyArNTU3LDEz
IEBAIHZvaWQgV2ViUGFnZTo6Y29tcGxldGVQZW5kaW5nU3ludGhldGljQ2wKICAgICAgICAgcmV0
dXJuOwogICAgIC8vIE9ubHkgZGlzcGF0Y2ggdGhlIGNsaWNrIGlmIHRoZSBkb2N1bWVudCBkaWRu
J3QgZ2V0IGNoYW5nZWQgYnkgYW55IHRpbWVycyBzdGFydGVkIGJ5IHRoZSBtb3ZlIGV2ZW50Lgog
ICAgIGlmIChXS09ic2VydmVkQ29udGVudENoYW5nZSgpID09IFdLQ29udGVudE5vQ2hhbmdlKQot
ICAgICAgICBjb21wbGV0ZVN5bnRoZXRpY0NsaWNrKG1fcGVuZGluZ1N5bnRoZXRpY0NsaWNrTm9k
ZS5nZXQoKSwgbV9wZW5kaW5nU3ludGhldGljQ2xpY2tMb2NhdGlvbik7CisgICAgICAgIGNvbXBs
ZXRlU3ludGhldGljQ2xpY2sobV9wZW5kaW5nU3ludGhldGljQ2xpY2tOb2RlLmdldCgpLCBtX3Bl
bmRpbmdTeW50aGV0aWNDbGlja0xvY2F0aW9uLCBXZWJDb3JlOjpPbmVGaW5nZXJUYXApOwogCiAg
ICAgbV9wZW5kaW5nU3ludGhldGljQ2xpY2tOb2RlID0gbnVsbHB0cjsKICAgICBtX3BlbmRpbmdT
eW50aGV0aWNDbGlja0xvY2F0aW9uID0gRmxvYXRQb2ludCgpOwogfQogCi12b2lkIFdlYlBhZ2U6
OmNvbXBsZXRlU3ludGhldGljQ2xpY2soTm9kZSogbm9kZVJlc3BvbmRpbmdUb0NsaWNrLCBjb25z
dCBXZWJDb3JlOjpGbG9hdFBvaW50JiBsb2NhdGlvbikKK3ZvaWQgV2ViUGFnZTo6Y29tcGxldGVT
eW50aGV0aWNDbGljayhOb2RlKiBub2RlUmVzcG9uZGluZ1RvQ2xpY2ssIGNvbnN0IFdlYkNvcmU6
OkZsb2F0UG9pbnQmIGxvY2F0aW9uLCBTeW50aGV0aWNDbGlja1R5cGUgc3ludGhldGljQ2xpY2tU
eXBlKQogewogICAgIEludFBvaW50IHJvdW5kZWRBZGp1c3RlZFBvaW50ID0gcm91bmRlZEludFBv
aW50KGxvY2F0aW9uKTsKICAgICBGcmFtZSYgbWFpbmZyYW1lID0gbV9wYWdlLT5tYWluRnJhbWUo
KTsKQEAgLTU3NCw4ICs1NzQsOCBAQCB2b2lkIFdlYlBhZ2U6OmNvbXBsZXRlU3ludGhldGljQ2xp
Y2soTm9kCiAKICAgICBib29sIHRhcFdhc0hhbmRsZWQgPSBmYWxzZTsKICAgICBtX2xhc3RJbnRl
cmFjdGlvbkxvY2F0aW9uID0gcm91bmRlZEFkanVzdGVkUG9pbnQ7Ci0gICAgdGFwV2FzSGFuZGxl
ZCB8PSBtYWluZnJhbWUuZXZlbnRIYW5kbGVyKCkuaGFuZGxlTW91c2VQcmVzc0V2ZW50KFBsYXRm
b3JtTW91c2VFdmVudChyb3VuZGVkQWRqdXN0ZWRQb2ludCwgcm91bmRlZEFkanVzdGVkUG9pbnQs
IExlZnRCdXR0b24sIFBsYXRmb3JtRXZlbnQ6Ok1vdXNlUHJlc3NlZCwgMSwgZmFsc2UsIGZhbHNl
LCBmYWxzZSwgZmFsc2UsIDAsIFdlYkNvcmU6OkZvcmNlQXRDbGljaykpOwotICAgIHRhcFdhc0hh
bmRsZWQgfD0gbWFpbmZyYW1lLmV2ZW50SGFuZGxlcigpLmhhbmRsZU1vdXNlUmVsZWFzZUV2ZW50
KFBsYXRmb3JtTW91c2VFdmVudChyb3VuZGVkQWRqdXN0ZWRQb2ludCwgcm91bmRlZEFkanVzdGVk
UG9pbnQsIExlZnRCdXR0b24sIFBsYXRmb3JtRXZlbnQ6Ok1vdXNlUmVsZWFzZWQsIDEsIGZhbHNl
LCBmYWxzZSwgZmFsc2UsIGZhbHNlLCAwLCBXZWJDb3JlOjpGb3JjZUF0Q2xpY2spKTsKKyAgICB0
YXBXYXNIYW5kbGVkIHw9IG1haW5mcmFtZS5ldmVudEhhbmRsZXIoKS5oYW5kbGVNb3VzZVByZXNz
RXZlbnQoUGxhdGZvcm1Nb3VzZUV2ZW50KHJvdW5kZWRBZGp1c3RlZFBvaW50LCByb3VuZGVkQWRq
dXN0ZWRQb2ludCwgTGVmdEJ1dHRvbiwgUGxhdGZvcm1FdmVudDo6TW91c2VQcmVzc2VkLCAxLCBm
YWxzZSwgZmFsc2UsIGZhbHNlLCBmYWxzZSwgMCwgV2ViQ29yZTo6Rm9yY2VBdENsaWNrLCBzeW50
aGV0aWNDbGlja1R5cGUpKTsKKyAgICB0YXBXYXNIYW5kbGVkIHw9IG1haW5mcmFtZS5ldmVudEhh
bmRsZXIoKS5oYW5kbGVNb3VzZVJlbGVhc2VFdmVudChQbGF0Zm9ybU1vdXNlRXZlbnQocm91bmRl
ZEFkanVzdGVkUG9pbnQsIHJvdW5kZWRBZGp1c3RlZFBvaW50LCBMZWZ0QnV0dG9uLCBQbGF0Zm9y
bUV2ZW50OjpNb3VzZVJlbGVhc2VkLCAxLCBmYWxzZSwgZmFsc2UsIGZhbHNlLCBmYWxzZSwgMCwg
V2ViQ29yZTo6Rm9yY2VBdENsaWNrLCBzeW50aGV0aWNDbGlja1R5cGUpKTsKIAogICAgIFJlZlB0
cjxGcmFtZT4gbmV3Rm9jdXNlZEZyYW1lID0gbV9wYWdlLT5mb2N1c0NvbnRyb2xsZXIoKS5mb2N1
c2VkRnJhbWUoKTsKICAgICBSZWZQdHI8RWxlbWVudD4gbmV3Rm9jdXNlZEVsZW1lbnQgPSBuZXdG
b2N1c2VkRnJhbWUgPyBuZXdGb2N1c2VkRnJhbWUtPmRvY3VtZW50KCktPmZvY3VzZWRFbGVtZW50
KCkgOiBudWxscHRyOwpAQCAtNjQ3LDE1ICs2NDcsMjAgQEAgdm9pZCBXZWJQYWdlOjpzZW5kVGFw
SGlnaGxpZ2h0Rm9yTm9kZUlmTgogI2VuZGlmCiB9CiAKLXZvaWQgV2ViUGFnZTo6aGFuZGxlVHdv
RmluZ2VyVGFwQXRQb2ludChjb25zdCBXZWJDb3JlOjpJbnRQb2ludCYgcG9pbnQsIHVpbnQ2NF90
IGNhbGxiYWNrSUQpCit2b2lkIFdlYlBhZ2U6OmhhbmRsZVR3b0ZpbmdlclRhcEF0UG9pbnQoY29u
c3QgV2ViQ29yZTo6SW50UG9pbnQmIHBvaW50LCB1aW50NjRfdCByZXF1ZXN0SUQpCiB7CiAgICAg
RmxvYXRQb2ludCBhZGp1c3RlZFBvaW50OwogICAgIE5vZGUqIG5vZGVSZXNwb25kaW5nVG9DbGlj
ayA9IG1fcGFnZS0+bWFpbkZyYW1lKCkubm9kZVJlc3BvbmRpbmdUb0NsaWNrRXZlbnRzKHBvaW50
LCBhZGp1c3RlZFBvaW50KTsKLSAgICBFbGVtZW50KiBlbGVtZW50ID0gKG5vZGVSZXNwb25kaW5n
VG9DbGljayAmJiBpczxFbGVtZW50Pigqbm9kZVJlc3BvbmRpbmdUb0NsaWNrKSkgPyBkb3duY2Fz
dDxFbGVtZW50Pihub2RlUmVzcG9uZGluZ1RvQ2xpY2spIDogbnVsbHB0cjsKLSAgICBTdHJpbmcg
dXJsOwotICAgIGlmIChlbGVtZW50ICYmIGVsZW1lbnQtPmlzTGluaygpKQotICAgICAgICB1cmwg
PSBbKE5TVVJMICopZWxlbWVudC0+ZG9jdW1lbnQoKS5jb21wbGV0ZVVSTChzdHJpcExlYWRpbmdB
bmRUcmFpbGluZ0hUTUxTcGFjZXMoZWxlbWVudC0+Z2V0QXR0cmlidXRlKEhUTUxOYW1lczo6aHJl
ZkF0dHIpKSkgYWJzb2x1dGVTdHJpbmddOwotICAgIHNlbmQoTWVzc2FnZXM6OldlYlBhZ2VQcm94
eTo6U3RyaW5nQ2FsbGJhY2sodXJsLCBjYWxsYmFja0lEKSk7CisgICAgaWYgKCFub2RlUmVzcG9u
ZGluZ1RvQ2xpY2sgfHwgIW5vZGVSZXNwb25kaW5nVG9DbGljay0+cmVuZGVyZXIoKSkgeworICAg
ICAgICBzZW5kKE1lc3NhZ2VzOjpXZWJQYWdlUHJveHk6OkRpZE5vdEhhbmRsZVRhcEFzQ2xpY2so
cm91bmRlZEludFBvaW50KGFkanVzdGVkUG9pbnQpKSk7CisgICAgICAgIHJldHVybjsKKyAgICB9
CisgICAgc2VuZFRhcEhpZ2hsaWdodEZvck5vZGVJZk5lY2Vzc2FyeShyZXF1ZXN0SUQsIG5vZGVS
ZXNwb25kaW5nVG9DbGljayk7CisgICAgaWYgKGlzPEVsZW1lbnQ+KCpub2RlUmVzcG9uZGluZ1Rv
Q2xpY2spICYmIERhdGFEZXRlY3Rpb246OnNob3VsZENhbmNlbERlZmF1bHRBY3Rpb24oZG93bmNh
c3Q8RWxlbWVudD4oKm5vZGVSZXNwb25kaW5nVG9DbGljaykpKSB7CisgICAgICAgIHJlcXVlc3RQ
b3NpdGlvbkluZm9ybWF0aW9uKHJvdW5kZWRJbnRQb2ludChhZGp1c3RlZFBvaW50KSk7CisgICAg
ICAgIHNlbmQoTWVzc2FnZXM6OldlYlBhZ2VQcm94eTo6RGlkTm90SGFuZGxlVGFwQXNDbGljayhy
b3VuZGVkSW50UG9pbnQoYWRqdXN0ZWRQb2ludCkpKTsKKyAgICB9IGVsc2UKKyAgICAgICAgY29t
cGxldGVTeW50aGV0aWNDbGljayhub2RlUmVzcG9uZGluZ1RvQ2xpY2ssIGFkanVzdGVkUG9pbnQs
IFdlYkNvcmU6OlR3b0ZpbmdlclRhcCk7CiB9CiAKIHZvaWQgV2ViUGFnZTo6cG90ZW50aWFsVGFw
QXRQb3NpdGlvbih1aW50NjRfdCByZXF1ZXN0SUQsIGNvbnN0IFdlYkNvcmU6OkZsb2F0UG9pbnQm
IHBvc2l0aW9uKQpAQCAtNzMyLDcgKzczNyw3IEBAIHZvaWQgV2ViUGFnZTo6aW5zcGVjdG9yTm9k
ZVNlYXJjaE1vdmVkVG8KICAgICBJbnRQb2ludCBhZGp1c3RlZFBvaW50ID0gcm91bmRlZEludFBv
aW50KHBvc2l0aW9uKTsKICAgICBGcmFtZSYgbWFpbmZyYW1lID0gbV9wYWdlLT5tYWluRnJhbWUo
KTsKIAotICAgIG1haW5mcmFtZS5ldmVudEhhbmRsZXIoKS5tb3VzZU1vdmVkKFBsYXRmb3JtTW91
c2VFdmVudChhZGp1c3RlZFBvaW50LCBhZGp1c3RlZFBvaW50LCBOb0J1dHRvbiwgUGxhdGZvcm1F
dmVudDo6TW91c2VNb3ZlZCwgMCwgZmFsc2UsIGZhbHNlLCBmYWxzZSwgZmFsc2UsIDAsIDApKTsK
KyAgICBtYWluZnJhbWUuZXZlbnRIYW5kbGVyKCkubW91c2VNb3ZlZChQbGF0Zm9ybU1vdXNlRXZl
bnQoYWRqdXN0ZWRQb2ludCwgYWRqdXN0ZWRQb2ludCwgTm9CdXR0b24sIFBsYXRmb3JtRXZlbnQ6
Ok1vdXNlTW92ZWQsIDAsIGZhbHNlLCBmYWxzZSwgZmFsc2UsIGZhbHNlLCAwLCAwLCBXZWJDb3Jl
OjpOb1RhcCkpOwogICAgIG1haW5mcmFtZS5kb2N1bWVudCgpLT51cGRhdGVTdHlsZUlmTmVlZGVk
KCk7CiB9CiAKSW5kZXg6IFNvdXJjZS9XZWJLaXQvaW9zL0NoYW5nZUxvZwo9PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0t
LSBTb3VyY2UvV2ViS2l0L2lvcy9DaGFuZ2VMb2cJKHJldmlzaW9uIDIwMjk1MCkKKysrIFNvdXJj
ZS9XZWJLaXQvaW9zL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDE0IEBACisy
MDE2LTA3LTA4ICBFbnJpY2EgQ2FzdWNjaSAgPGVucmljYUBhcHBsZS5jb20+CisKKyAgICAgICAg
QWRkIHN5bnRoZXRpYyBjbGljayBvcmlnaW4gdG8gV0tOYXZpZ2F0aW9uQWN0aW9uLgorICAgICAg
ICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTU5NTg0CisgICAgICAg
IHJkYXI6Ly9wcm9ibGVtLzI1NjEwNDIyCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChP
T1BTISkuCisKKyAgICAgICAgKiBXZWJWaWV3L1dlYlBERlZpZXdQbGFjZWhvbGRlci5tbToKKyAg
ICAgICAgKC1bV2ViUERGVmlld1BsYWNlaG9sZGVyIHNpbXVsYXRlQ2xpY2tPbkxpbmtUb1VSTDpd
KToKKwogMjAxNi0wNi0yMyAgQWxleCBDaHJpc3RlbnNlbiAgPGFjaHJpc3RlbnNlbkB3ZWJraXQu
b3JnPgogCiAgICAgICAgIFJlbW92ZSB1bnVzZWQgZGlkQ2FuY2VsQXV0aGVudGljYXRpb25DaGFs
bGVuZ2UKSW5kZXg6IFNvdXJjZS9XZWJLaXQvaW9zL1dlYlZpZXcvV2ViUERGVmlld1BsYWNlaG9s
ZGVyLm1tCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQvaW9zL1dlYlZpZXcvV2ViUERGVmll
d1BsYWNlaG9sZGVyLm1tCShyZXZpc2lvbiAyMDI5NTApCisrKyBTb3VyY2UvV2ViS2l0L2lvcy9X
ZWJWaWV3L1dlYlBERlZpZXdQbGFjZWhvbGRlci5tbQkod29ya2luZyBjb3B5KQpAQCAtNDcxLDcg
KzQ3MSw3IEBAIC0gKHZvaWQpc2ltdWxhdGVDbGlja09uTGlua1RvVVJMOihOU1VSTCAKICNpZiBF
TkFCTEUoUE9JTlRFUl9MT0NLKQogICAgICAgICAwLCAwLAogI2VuZGlmCi0gICAgICAgIGZhbHNl
LCBmYWxzZSwgZmFsc2UsIGZhbHNlLCAwLCAwLCAwLCAwLCB0cnVlKTsKKyAgICAgICAgZmFsc2Us
IGZhbHNlLCBmYWxzZSwgZmFsc2UsIDAsIDAsIDAsIDAsIDAsIHRydWUpOwogCiAgICAgLy8gQ2Fs
bCB0byB0aGUgZnJhbWUgbG9hZGVyIGJlY2F1c2UgdGhpcyBpcyB3aGVyZSBvdXIgc2VjdXJpdHkg
Y2hlY2tzIGFyZSBtYWRlLgogICAgIEZyYW1lKiBmcmFtZSA9IGNvcmUoW19kYXRhU291cmNlIHdl
YkZyYW1lXSk7CkluZGV4OiBTb3VyY2UvV2ViS2l0L21hYy9DaGFuZ2VMb2cKPT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQot
LS0gU291cmNlL1dlYktpdC9tYWMvQ2hhbmdlTG9nCShyZXZpc2lvbiAyMDI5NTApCisrKyBTb3Vy
Y2UvV2ViS2l0L21hYy9DaGFuZ2VMb2cJKHdvcmtpbmcgY29weSkKQEAgLTEsMyArMSwxNiBAQAor
MjAxNi0wNy0wOCAgRW5yaWNhIENhc3VjY2kgIDxlbnJpY2FAYXBwbGUuY29tPgorCisgICAgICAg
IEFkZCBzeW50aGV0aWMgY2xpY2sgb3JpZ2luIHRvIFdLTmF2aWdhdGlvbkFjdGlvbi4KKyAgICAg
ICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE1OTU4NAorICAgICAg
ICByZGFyOi8vcHJvYmxlbS8yNTYxMDQyMgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAo
T09QUyEpLgorCisgICAgICAgICogV2ViVmlldy9XZWJGcmFtZS5tbToKKyAgICAgICAgKC1bV2Vi
RnJhbWUgX2RyYWdTb3VyY2VFbmRlZEF0Om9wZXJhdGlvbjpdKToKKyAgICAgICAgKiBXZWJWaWV3
L1dlYlBERlZpZXcubW06CisgICAgICAgICgtW1dlYlBERlZpZXcgUERGVmlld1dpbGxDbGlja09u
TGluazp3aXRoVVJMOl0pOgorCiAyMDE2LTA3LTA3ICBBbmR5IEVzdGVzICA8YWVzdGVzQGFwcGxl
LmNvbT4KIAogICAgICAgICBbQ29udGVudCBGaWx0ZXJpbmddIExvYWQgYmxvY2tlZCBwYWdlcyBt
b3JlIGxpa2Ugb3RoZXIgZXJyb3IgcGFnZXMgYXJlIGxvYWRlZApJbmRleDogU291cmNlL1dlYktp
dC9tYWMvV2ViVmlldy9XZWJGcmFtZS5tbQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0L21h
Yy9XZWJWaWV3L1dlYkZyYW1lLm1tCShyZXZpc2lvbiAyMDI5NTApCisrKyBTb3VyY2UvV2ViS2l0
L21hYy9XZWJWaWV3L1dlYkZyYW1lLm1tCSh3b3JraW5nIGNvcHkpCkBAIC05NzcsNyArOTc3LDcg
QEAgLSAodm9pZClfZHJhZ1NvdXJjZUVuZGVkQXQ6KE5TUG9pbnQpd2luZAogICAgICAgICByZXR1
cm47CiAgICAgLy8gRklYTUU6IFRoZXNlIGFyZSBmYWtlIG1vZGlmaWVyIGtleXMgaGVyZSwgYnV0
IHRoZXkgc2hvdWxkIGJlIHJlYWwgb25lcyBpbnN0ZWFkLgogICAgIFBsYXRmb3JtTW91c2VFdmVu
dCBldmVudChJbnRQb2ludCh3aW5kb3dMb2MpLCBJbnRQb2ludChnbG9iYWxQb2ludCh3aW5kb3dM
b2MsIFt2aWV3LT5wbGF0Zm9ybVdpZGdldCgpIHdpbmRvd10pKSwKLSAgICAgICAgTGVmdEJ1dHRv
biwgUGxhdGZvcm1FdmVudDo6TW91c2VNb3ZlZCwgMCwgZmFsc2UsIGZhbHNlLCBmYWxzZSwgZmFs
c2UsIGN1cnJlbnRUaW1lKCksIFdlYkNvcmU6OkZvcmNlQXRDbGljayk7CisgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIExlZnRCdXR0b24sIFBsYXRmb3JtRXZlbnQ6Ok1vdXNlTW92ZWQsIDAs
IGZhbHNlLCBmYWxzZSwgZmFsc2UsIGZhbHNlLCBjdXJyZW50VGltZSgpLCBXZWJDb3JlOjpGb3Jj
ZUF0Q2xpY2ssIFdlYkNvcmU6Ok5vVGFwKTsKICAgICBfcHJpdmF0ZS0+Y29yZUZyYW1lLT5ldmVu
dEhhbmRsZXIoKS5kcmFnU291cmNlRW5kZWRBdChldmVudCwgKERyYWdPcGVyYXRpb24pb3BlcmF0
aW9uKTsKIH0KICNlbmRpZgpJbmRleDogU291cmNlL1dlYktpdC9tYWMvV2ViVmlldy9XZWJQREZW
aWV3Lm1tCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQvbWFjL1dlYlZpZXcvV2ViUERGVmll
dy5tbQkocmV2aXNpb24gMjAyOTUwKQorKysgU291cmNlL1dlYktpdC9tYWMvV2ViVmlldy9XZWJQ
REZWaWV3Lm1tCSh3b3JraW5nIGNvcHkpCkBAIC0xMDQyLDcgKzEwNDIsNyBAQCAtICh2b2lkKVBE
RlZpZXdXaWxsQ2xpY2tPbkxpbms6KFBERlZpZXcgCiAgICAgICAgICAgICBbbnNFdmVudCBtb2Rp
ZmllckZsYWdzXSAmIE5TU2hpZnRLZXlNYXNrLAogICAgICAgICAgICAgW25zRXZlbnQgbW9kaWZp
ZXJGbGFnc10gJiBOU0NvbW1hbmRLZXlNYXNrLAogI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHBv
cAotICAgICAgICAgICAgYnV0dG9uLCAwLCBXZWJDb3JlOjpGb3JjZUF0Q2xpY2ssIDAsIHRydWUp
OworICAgICAgICAgICAgYnV0dG9uLCAwLCBXZWJDb3JlOjpGb3JjZUF0Q2xpY2ssIDAsIDAsIHRy
dWUpOwogICAgIH0KIAogICAgIC8vIENhbGwgdG8gdGhlIGZyYW1lIGxvYWRlciBiZWNhdXNlIHRo
aXMgaXMgd2hlcmUgb3VyIHNlY3VyaXR5IGNoZWNrcyBhcmUgbWFkZS4K
</data>
<flag name="review"
          id="306922"
          type_id="1"
          status="+"
          setter="thorton"
    />
          </attachment>
      

    </bug>

</bugzilla>