<?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>225988</bug_id>
          
          <creation_ts>2021-05-19 15:35:19 -0700</creation_ts>
          <short_desc>Introduce SQLiteStatement::columnBlobView()</short_desc>
          <delta_ts>2021-05-19 17:52:20 -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>WebCore Misc.</component>
          <version>WebKit Nightly Build</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Chris Dumez">cdumez</reporter>
          <assigned_to name="Chris Dumez">cdumez</assigned_to>
          <cc>achristensen</cc>
    
    <cc>alecflett</cc>
    
    <cc>beidson</cc>
    
    <cc>darin</cc>
    
    <cc>ews-watchlist</cc>
    
    <cc>ggaren</cc>
    
    <cc>jsbell</cc>
    
    <cc>sam</cc>
    
    <cc>sihui_liu</cc>
    
    <cc>webkit-bug-importer</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1761735</commentid>
    <comment_count>0</comment_count>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2021-05-19 15:35:19 -0700</bug_when>
    <thetext>Introduce SQLiteStatement::columnBlobView() to get a &quot;view&quot; to the blob instead of copying the data. This is more efficient for call sites that do not need to hold on the the Blob data.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1761736</commentid>
    <comment_count>1</comment_count>
      <attachid>429103</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2021-05-19 15:36:30 -0700</bug_when>
    <thetext>Created attachment 429103
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1761768</commentid>
    <comment_count>2</comment_count>
      <attachid>429103</attachid>
    <who name="Alex Christensen">achristensen</who>
    <bug_when>2021-05-19 16:39:17 -0700</bug_when>
    <thetext>Comment on attachment 429103
Patch

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

&gt; Source/WebCore/platform/sql/SQLiteStatement.h:75
&gt; +    class BlobView {

We really need to start using std::span for things like this.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1761773</commentid>
    <comment_count>3</comment_count>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2021-05-19 16:44:43 -0700</bug_when>
    <thetext>(In reply to Alex Christensen from comment #2)
&gt; Comment on attachment 429103 [details]
&gt; Patch
&gt; 
&gt; View in context:
&gt; https://bugs.webkit.org/attachment.cgi?id=429103&amp;action=review
&gt; 
&gt; &gt; Source/WebCore/platform/sql/SQLiteStatement.h:75
&gt; &gt; +    class BlobView {
&gt; 
&gt; We really need to start using std::span for things like this.

Yes, someone just needs to import it :P</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1761776</commentid>
    <comment_count>4</comment_count>
    <who name="Alex Christensen">achristensen</who>
    <bug_when>2021-05-19 16:52:46 -0700</bug_when>
    <thetext>I volunteer myself.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1761780</commentid>
    <comment_count>5</comment_count>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2021-05-19 17:11:06 -0700</bug_when>
    <thetext>(In reply to Alex Christensen from comment #4)
&gt; I volunteer myself.

👍</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1761798</commentid>
    <comment_count>6</comment_count>
    <who name="EWS">ews-feeder</who>
    <bug_when>2021-05-19 17:51:43 -0700</bug_when>
    <thetext>Committed r277768 (237931@main): &lt;https://commits.webkit.org/237931@main&gt;

All reviewed patches have been landed. Closing bug and clearing flags on attachment 429103.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1761799</commentid>
    <comment_count>7</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2021-05-19 17:52:20 -0700</bug_when>
    <thetext>&lt;rdar://problem/78234144&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>429103</attachid>
            <date>2021-05-19 15:36:30 -0700</date>
            <delta_ts>2021-05-19 17:51:44 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-225988-20210519153629.patch</filename>
            <type>text/plain</type>
            <size>15993</size>
            <attacher name="Chris Dumez">cdumez</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjc3NzUwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggOGU0ZjQ2YzMzYjQ1ZWVk
N2UxMTc0ZDUwMDdkZmRkMmY1ODhiMmQzNi4uZTQ4NGJmNmRlY2JjYjY5Y2E3ZjFkMGFlMmZhZGVi
NmNiZTliNGUwMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDM1IEBACisyMDIxLTA1LTE5ICBDaHJp
cyBEdW1leiAgPGNkdW1lekBhcHBsZS5jb20+CisKKyAgICAgICAgSW50cm9kdWNlIFNRTGl0ZVN0
YXRlbWVudDo6Y29sdW1uQmxvYlZpZXcoKQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9y
Zy9zaG93X2J1Zy5jZ2k/aWQ9MjI1OTg4CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChP
T1BTISkuCisKKyAgICAgICAgSW50cm9kdWNlIFNRTGl0ZVN0YXRlbWVudDo6Y29sdW1uQmxvYlZp
ZXcoKSB0byBnZXQgYSAidmlldyIgdG8gdGhlIGJsb2IgaW5zdGVhZAorICAgICAgICBvZiBjb3B5
aW5nIHRoZSBkYXRhLiBUaGlzIGlzIG1vcmUgZWZmaWNpZW50IGZvciBjYWxsIHNpdGVzIHRoYXQg
ZG8gbm90IG5lZWQgdG8KKyAgICAgICAgaG9sZCBvbiB0aGUgdGhlIEJsb2IgZGF0YS4KKworICAg
ICAgICAqIE1vZHVsZXMvaW5kZXhlZGRiL3NlcnZlci9TUUxpdGVJREJCYWNraW5nU3RvcmUuY3Bw
OgorICAgICAgICAoV2ViQ29yZTo6SURCU2VydmVyOjpTUUxpdGVJREJCYWNraW5nU3RvcmU6Om1p
Z3JhdGVJbmRleEluZm9UYWJsZUZvcklEVXBkYXRlKToKKyAgICAgICAgKFdlYkNvcmU6OklEQlNl
cnZlcjo6U1FMaXRlSURCQmFja2luZ1N0b3JlOjptaWdyYXRlSW5kZXhSZWNvcmRzVGFibGVGb3JJ
RFVwZGF0ZSk6CisgICAgICAgIChXZWJDb3JlOjpJREJTZXJ2ZXI6OlNRTGl0ZUlEQkJhY2tpbmdT
dG9yZTo6YWRkRXhpc3RpbmdJbmRleCk6CisgICAgICAgIChXZWJDb3JlOjpJREJTZXJ2ZXI6OlNR
TGl0ZUlEQkJhY2tpbmdTdG9yZTo6ZXh0cmFjdEV4aXN0aW5nRGF0YWJhc2VJbmZvKToKKyAgICAg
ICAgKFdlYkNvcmU6OklEQlNlcnZlcjo6U1FMaXRlSURCQmFja2luZ1N0b3JlOjpkZWxldGVSZWNv
cmQpOgorICAgICAgICAoV2ViQ29yZTo6SURCU2VydmVyOjpTUUxpdGVJREJCYWNraW5nU3RvcmU6
OmdldFJlY29yZCk6CisgICAgICAgIChXZWJDb3JlOjpJREJTZXJ2ZXI6OlNRTGl0ZUlEQkJhY2tp
bmdTdG9yZTo6Z2V0QWxsT2JqZWN0U3RvcmVSZWNvcmRzKToKKyAgICAgICAgKFdlYkNvcmU6OklE
QlNlcnZlcjo6U1FMaXRlSURCQmFja2luZ1N0b3JlOjp1bmNoZWNrZWRHZXRJbmRleFJlY29yZEZv
ck9uZUtleSk6CisgICAgICAgICogTW9kdWxlcy9pbmRleGVkZGIvc2VydmVyL1NRTGl0ZUlEQkN1
cnNvci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpJREJTZXJ2ZXI6OlNRTGl0ZUlEQkN1cnNvcjo6
aW50ZXJuYWxGZXRjaE5leHRSZWNvcmQpOgorICAgICAgICAqIHBsYXRmb3JtL3NxbC9TUUxpdGVT
dGF0ZW1lbnQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6U1FMaXRlU3RhdGVtZW50Ojpjb2x1bW5C
bG9iKToKKyAgICAgICAgKFdlYkNvcmU6OlNRTGl0ZVN0YXRlbWVudDo6Y29sdW1uQmxvYlZpZXcp
OgorICAgICAgICAqIHBsYXRmb3JtL3NxbC9TUUxpdGVTdGF0ZW1lbnQuaDoKKyAgICAgICAgKFdl
YkNvcmU6OlNRTGl0ZVN0YXRlbWVudDo6QmxvYlZpZXc6OkJsb2JWaWV3KToKKyAgICAgICAgKFdl
YkNvcmU6OlNRTGl0ZVN0YXRlbWVudDo6QmxvYlZpZXc6OmRhdGEpOgorICAgICAgICAoV2ViQ29y
ZTo6U1FMaXRlU3RhdGVtZW50OjpCbG9iVmlldzo6c2l6ZSk6CisgICAgICAgICogd29ya2Vycy9z
ZXJ2aWNlL3NlcnZlci9SZWdpc3RyYXRpb25EYXRhYmFzZS5jcHA6CisgICAgICAgIChXZWJDb3Jl
OjpSZWdpc3RyYXRpb25EYXRhYmFzZTo6aW1wb3J0UmVjb3Jkcyk6CisKIDIwMjEtMDUtMTkgIENo
cmlzIER1bWV6ICA8Y2R1bWV6QGFwcGxlLmNvbT4KIAogICAgICAgICBEcm9wICJnZXQiIHByZWZp
eCBmcm9tIFNRTGl0ZVN0YXRlbWVudCBtZW1iZXIgZnVuY3Rpb25zIGFzIHdlbGwgYXMgb3V0LXBh
cmFtZXRlcnMKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL3Nl
cnZlci9TUUxpdGVJREJCYWNraW5nU3RvcmUuY3BwIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9p
bmRleGVkZGIvc2VydmVyL1NRTGl0ZUlEQkJhY2tpbmdTdG9yZS5jcHAKaW5kZXggODFhZDllMDBh
NGNiNDMzMDg4MzRkMzI2MzdjOWUzZmM5NGI5ZGIwOS4uM2QyY2QxMzZhZDQzNzQ1YWFjYzIyNzQ5
NWQwNWY3ZDdhMmUzYzlkZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRl
eGVkZGIvc2VydmVyL1NRTGl0ZUlEQkJhY2tpbmdTdG9yZS5jcHAKKysrIGIvU291cmNlL1dlYkNv
cmUvTW9kdWxlcy9pbmRleGVkZGIvc2VydmVyL1NRTGl0ZUlEQkJhY2tpbmdTdG9yZS5jcHAKQEAg
LTc0NSw3ICs3NDUsNyBAQCBib29sIFNRTGl0ZUlEQkJhY2tpbmdTdG9yZTo6bWlncmF0ZUluZGV4
SW5mb1RhYmxlRm9ySURVcGRhdGUoY29uc3QgSGFzaE1hcDxzdGQ6OgogICAgICAgICAgICAgU3Ry
aW5nIG5hbWUgPSBzdGF0ZW1lbnQtPmNvbHVtblRleHQoMSk7CiAgICAgICAgICAgICB1aW50NjRf
dCBvYmplY3RTdG9yZUlEID0gc3RhdGVtZW50LT5jb2x1bW5JbnQ2NCgyKTsKICAgICAgICAgICAg
IHVpbnQ2NF90IG5ld0lEID0gaW5kZXhJRE1hcC5nZXQoeyBvYmplY3RTdG9yZUlELCBpZCB9KTsK
LSAgICAgICAgICAgIGF1dG8ga2V5UGF0aEJ1ZmZlciA9IHN0YXRlbWVudC0+Y29sdW1uQmxvYigz
KTsKKyAgICAgICAgICAgIGF1dG8ga2V5UGF0aEJ1ZmZlclZpZXcgPSBzdGF0ZW1lbnQtPmNvbHVt
bkJsb2JWaWV3KDMpOwogICAgICAgICAgICAgYm9vbCB1bmlxdWUgPSBzdGF0ZW1lbnQtPmNvbHVt
bkludCg0KTsKICAgICAgICAgICAgIGJvb2wgbXVsdGlFbnRyeSA9IHN0YXRlbWVudC0+Y29sdW1u
SW50KDUpOwogCkBAIC03NTQsNyArNzU0LDcgQEAgYm9vbCBTUUxpdGVJREJCYWNraW5nU3RvcmU6
Om1pZ3JhdGVJbmRleEluZm9UYWJsZUZvcklEVXBkYXRlKGNvbnN0IEhhc2hNYXA8c3RkOjoKICAg
ICAgICAgICAgICAgICB8fCBzcWwtPmJpbmRJbnQ2NCgxLCBuZXdJRCkgIT0gU1FMSVRFX09LCiAg
ICAgICAgICAgICAgICAgfHwgc3FsLT5iaW5kVGV4dCgyLCBuYW1lKSAhPSBTUUxJVEVfT0sKICAg
ICAgICAgICAgICAgICB8fCBzcWwtPmJpbmRJbnQ2NCgzLCBvYmplY3RTdG9yZUlEKSAhPSBTUUxJ
VEVfT0sKLSAgICAgICAgICAgICAgICB8fCBzcWwtPmJpbmRCbG9iKDQsIGtleVBhdGhCdWZmZXIu
ZGF0YSgpLCBrZXlQYXRoQnVmZmVyLnNpemUoKSkgIT0gU1FMSVRFX09LCisgICAgICAgICAgICAg
ICAgfHwgc3FsLT5iaW5kQmxvYig0LCBrZXlQYXRoQnVmZmVyVmlldy5kYXRhKCksIGtleVBhdGhC
dWZmZXJWaWV3LnNpemUoKSkgIT0gU1FMSVRFX09LCiAgICAgICAgICAgICAgICAgfHwgc3FsLT5i
aW5kSW50KDUsIHVuaXF1ZSkgIT0gU1FMSVRFX09LCiAgICAgICAgICAgICAgICAgfHwgc3FsLT5i
aW5kSW50KDYsIG11bHRpRW50cnkpICE9IFNRTElURV9PSwogICAgICAgICAgICAgICAgIHx8IHNx
bC0+c3RlcCgpICE9IFNRTElURV9ET05FKSB7CkBAIC04MDgsMTYgKzgwOCwxNiBAQCBib29sIFNR
TGl0ZUlEQkJhY2tpbmdTdG9yZTo6bWlncmF0ZUluZGV4UmVjb3Jkc1RhYmxlRm9ySURVcGRhdGUo
Y29uc3QgSGFzaE1hcDxzdAogICAgICAgICAgICAgdWludDY0X3QgaWQgPSBzdGF0ZW1lbnQtPmNv
bHVtbkludDY0KDApOwogICAgICAgICAgICAgdWludDY0X3Qgb2JqZWN0U3RvcmVJRCA9IHN0YXRl
bWVudC0+Y29sdW1uSW50NjQoMSk7CiAgICAgICAgICAgICB1aW50NjRfdCBuZXdJRCA9IGluZGV4
SURNYXAuZ2V0KHsgb2JqZWN0U3RvcmVJRCwgaWQgfSk7Ci0gICAgICAgICAgICBhdXRvIGtleUJ1
ZmZlciA9IHN0YXRlbWVudC0+Y29sdW1uQmxvYigyKTsKLSAgICAgICAgICAgIGF1dG8gdmFsdWVC
dWZmZXIgPSBzdGF0ZW1lbnQtPmNvbHVtbkJsb2IoMyk7CisgICAgICAgICAgICBhdXRvIGtleUJ1
ZmZlclZpZXcgPSBzdGF0ZW1lbnQtPmNvbHVtbkJsb2JWaWV3KDIpOworICAgICAgICAgICAgYXV0
byB2YWx1ZUJ1ZmZlclZpZXcgPSBzdGF0ZW1lbnQtPmNvbHVtbkJsb2JWaWV3KDMpOwogICAgICAg
ICAgICAgdWludDY0X3QgcmVjb3JkSUQgPSBzdGF0ZW1lbnQtPmNvbHVtbkludDY0KDQpOwogCiAg
ICAgICAgICAgICBhdXRvIHNxbCA9IGNhY2hlZFN0YXRlbWVudChTUUw6OlB1dFRlbXBJbmRleFJl
Y29yZCwgIklOU0VSVCBJTlRPIF9UZW1wX0luZGV4UmVjb3JkcyBWQUxVRVMgKD8sID8sIENBU1Qo
PyBBUyBURVhUKSwgQ0FTVCg/IEFTIFRFWFQpLCA/KTsiX3MpOwogICAgICAgICAgICAgaWYgKCFz
cWwKICAgICAgICAgICAgICAgICB8fCBzcWwtPmJpbmRJbnQ2NCgxLCBuZXdJRCkgIT0gU1FMSVRF
X09LCiAgICAgICAgICAgICAgICAgfHwgc3FsLT5iaW5kSW50NjQoMiwgb2JqZWN0U3RvcmVJRCkg
IT0gU1FMSVRFX09LCi0gICAgICAgICAgICAgICAgfHwgc3FsLT5iaW5kQmxvYigzLCBrZXlCdWZm
ZXIuZGF0YSgpLCBrZXlCdWZmZXIuc2l6ZSgpKSAhPSBTUUxJVEVfT0sKLSAgICAgICAgICAgICAg
ICB8fCBzcWwtPmJpbmRCbG9iKDQsIHZhbHVlQnVmZmVyLmRhdGEoKSwgdmFsdWVCdWZmZXIuc2l6
ZSgpKSAhPSBTUUxJVEVfT0sKKyAgICAgICAgICAgICAgICB8fCBzcWwtPmJpbmRCbG9iKDMsIGtl
eUJ1ZmZlclZpZXcuZGF0YSgpLCBrZXlCdWZmZXJWaWV3LnNpemUoKSkgIT0gU1FMSVRFX09LCisg
ICAgICAgICAgICAgICAgfHwgc3FsLT5iaW5kQmxvYig0LCB2YWx1ZUJ1ZmZlclZpZXcuZGF0YSgp
LCB2YWx1ZUJ1ZmZlclZpZXcuc2l6ZSgpKSAhPSBTUUxJVEVfT0sKICAgICAgICAgICAgICAgICB8
fCBzcWwtPmJpbmRJbnQ2NCg1LCByZWNvcmRJRCkgIT0gU1FMSVRFX09LCiAgICAgICAgICAgICAg
ICAgfHwgc3FsLT5zdGVwKCkgIT0gU1FMSVRFX0RPTkUpIHsKICAgICAgICAgICAgICAgICBMT0df
RVJST1IoIkVycm9yIGFkZGluZyBpbmRleCByZWNvcmQgdG8gX1RlbXBfSW5kZXhSZWNvcmRzIHRh
YmxlICglaSkgLSAlcyIsIGRhdGFiYXNlLmxhc3RFcnJvcigpLCBkYXRhYmFzZS5sYXN0RXJyb3JN
c2coKSk7CkBAIC05MTIsMTUgKzkxMiwxNCBAQCBib29sIFNRTGl0ZUlEQkJhY2tpbmdTdG9yZTo6
YWRkRXhpc3RpbmdJbmRleChJREJPYmplY3RTdG9yZUluZm8mIG9iamVjdFN0b3JlSW5mbwogCiAg
ICAgICAgIGludCByZXN1bHQgPSBzcWwtPnN0ZXAoKTsKICAgICAgICAgd2hpbGUgKHJlc3VsdCA9
PSBTUUxJVEVfUk9XKSB7Ci0gICAgICAgICAgICBhdXRvIGtleUJ1ZmZlciA9IHNxbC0+Y29sdW1u
QmxvYigwKTsKKyAgICAgICAgICAgIGF1dG8ga2V5QnVmZmVyVmlldyA9IHNxbC0+Y29sdW1uQmxv
YlZpZXcoMCk7CiAgICAgICAgICAgICBJREJLZXlEYXRhIGtleURhdGE7Ci0gICAgICAgICAgICBp
ZiAoIWRlc2VyaWFsaXplSURCS2V5RGF0YShrZXlCdWZmZXIuZGF0YSgpLCBrZXlCdWZmZXIuc2l6
ZSgpLCBrZXlEYXRhKSkgeworICAgICAgICAgICAgaWYgKCFkZXNlcmlhbGl6ZUlEQktleURhdGEo
a2V5QnVmZmVyVmlldy5kYXRhKCksIGtleUJ1ZmZlclZpZXcuc2l6ZSgpLCBrZXlEYXRhKSkgewog
ICAgICAgICAgICAgICAgIExPR19FUlJPUigiVW5hYmxlIHRvIGRlc2VyaWFsaXplIGtleSBkYXRh
IGZyb20gZGF0YWJhc2Ugd2hpbGUgZ2V0dGluZyBhbGwgcmVjb3JkcyIpOwogICAgICAgICAgICAg
ICAgIHJldHVybiBmYWxzZTsKICAgICAgICAgICAgIH0KIAotICAgICAgICAgICAgYXV0byB2YWx1
ZUJ1ZmZlciA9IHNxbC0+Y29sdW1uQmxvYigxKTsKLSAgICAgICAgICAgIGF1dG8gdmFsdWUgPSBU
aHJlYWRTYWZlRGF0YUJ1ZmZlcjo6Y3JlYXRlKFdURk1vdmUodmFsdWVCdWZmZXIpKTsKKyAgICAg
ICAgICAgIGF1dG8gdmFsdWUgPSBUaHJlYWRTYWZlRGF0YUJ1ZmZlcjo6Y3JlYXRlKHNxbC0+Y29s
dW1uQmxvYigxKSk7CiAKICAgICAgICAgICAgIHVpbnQ2NF90IHJlY29yZElEID0gc3FsLT5jb2x1
bW5JbnQ2NCgyKTsKICAgICAgICAgICAgIElEQkVycm9yIGVycm9yID0gdXBkYXRlT25lSW5kZXhG
b3JBZGRSZWNvcmQob2JqZWN0U3RvcmVJbmZvLCBpbmZvLCBrZXlEYXRhLCB2YWx1ZSwgcmVjb3Jk
SUQpOwpAQCAtMTAxNCwxMCArMTAxMywxMCBAQCBzdGQ6OnVuaXF1ZV9wdHI8SURCRGF0YWJhc2VJ
bmZvPiBTUUxpdGVJREJCYWNraW5nU3RvcmU6OmV4dHJhY3RFeGlzdGluZ0RhdGFiYXNlSQogICAg
ICAgICB3aGlsZSAocmVzdWx0ID09IFNRTElURV9ST1cpIHsKICAgICAgICAgICAgIHVpbnQ2NF90
IG9iamVjdFN0b3JlSUQgPSBzcWwtPmNvbHVtbkludDY0KDApOwogICAgICAgICAgICAgU3RyaW5n
IG9iamVjdFN0b3JlTmFtZSA9IHNxbC0+Y29sdW1uVGV4dCgxKTsKLSAgICAgICAgICAgIGF1dG8g
a2V5UGF0aEJ1ZmZlciA9IHNxbC0+Y29sdW1uQmxvYigyKTsKKyAgICAgICAgICAgIGF1dG8ga2V5
UGF0aEJ1ZmZlclZpZXcgPSBzcWwtPmNvbHVtbkJsb2JWaWV3KDIpOwogCiAgICAgICAgICAgICBP
cHRpb25hbDxJREJLZXlQYXRoPiBvYmplY3RTdG9yZUtleVBhdGg7Ci0gICAgICAgICAgICBpZiAo
IWRlc2VyaWFsaXplSURCS2V5UGF0aChrZXlQYXRoQnVmZmVyLmRhdGEoKSwga2V5UGF0aEJ1ZmZl
ci5zaXplKCksIG9iamVjdFN0b3JlS2V5UGF0aCkpIHsKKyAgICAgICAgICAgIGlmICghZGVzZXJp
YWxpemVJREJLZXlQYXRoKGtleVBhdGhCdWZmZXJWaWV3LmRhdGEoKSwga2V5UGF0aEJ1ZmZlclZp
ZXcuc2l6ZSgpLCBvYmplY3RTdG9yZUtleVBhdGgpKSB7CiAgICAgICAgICAgICAgICAgTE9HX0VS
Uk9SKCJVbmFibGUgdG8gZXh0cmFjdCBrZXkgcGF0aCBmcm9tIGRhdGFiYXNlIik7CiAgICAgICAg
ICAgICAgICAgcmV0dXJuIG51bGxwdHI7CiAgICAgICAgICAgICB9CkBAIC0xMDUwLDEwICsxMDQ5
LDEwIEBAIHN0ZDo6dW5pcXVlX3B0cjxJREJEYXRhYmFzZUluZm8+IFNRTGl0ZUlEQkJhY2tpbmdT
dG9yZTo6ZXh0cmFjdEV4aXN0aW5nRGF0YWJhc2VJCiAgICAgICAgICAgICB1aW50NjRfdCBpbmRl
eElEID0gc3FsLT5jb2x1bW5JbnQ2NCgwKTsKICAgICAgICAgICAgIFN0cmluZyBpbmRleE5hbWUg
PSBzcWwtPmNvbHVtblRleHQoMSk7CiAgICAgICAgICAgICB1aW50NjRfdCBvYmplY3RTdG9yZUlE
ID0gc3FsLT5jb2x1bW5JbnQ2NCgyKTsKLSAgICAgICAgICAgIGF1dG8ga2V5UGF0aEJ1ZmZlciA9
IHNxbC0+Y29sdW1uQmxvYigzKTsKKyAgICAgICAgICAgIGF1dG8ga2V5UGF0aEJ1ZmZlclZpZXcg
PSBzcWwtPmNvbHVtbkJsb2JWaWV3KDMpOwogCiAgICAgICAgICAgICBPcHRpb25hbDxJREJLZXlQ
YXRoPiBpbmRleEtleVBhdGg7Ci0gICAgICAgICAgICBpZiAoIWRlc2VyaWFsaXplSURCS2V5UGF0
aChrZXlQYXRoQnVmZmVyLmRhdGEoKSwga2V5UGF0aEJ1ZmZlci5zaXplKCksIGluZGV4S2V5UGF0
aCkpIHsKKyAgICAgICAgICAgIGlmICghZGVzZXJpYWxpemVJREJLZXlQYXRoKGtleVBhdGhCdWZm
ZXJWaWV3LmRhdGEoKSwga2V5UGF0aEJ1ZmZlclZpZXcuc2l6ZSgpLCBpbmRleEtleVBhdGgpKSB7
CiAgICAgICAgICAgICAgICAgTE9HX0VSUk9SKCJVbmFibGUgdG8gZXh0cmFjdCBrZXkgcGF0aCBm
cm9tIGRhdGFiYXNlIik7CiAgICAgICAgICAgICAgICAgcmV0dXJuIG51bGxwdHI7CiAgICAgICAg
ICAgICB9CkBAIC0xOTY0LDggKzE5NjMsNyBAQCBJREJFcnJvciBTUUxpdGVJREJCYWNraW5nU3Rv
cmU6OmRlbGV0ZVJlY29yZChTUUxpdGVJREJUcmFuc2FjdGlvbiYgdHJhbnNhY3Rpb24sCiAgICAg
ICAgIH0KIAogICAgICAgICByZWNvcmRJRCA9IHNxbC0+Y29sdW1uSW50NjQoMCk7Ci0gICAgICAg
IGF1dG8gdmFsdWVCdWZmZXIgPSBzcWwtPmNvbHVtbkJsb2IoMSk7Ci0gICAgICAgIHZhbHVlID0g
VGhyZWFkU2FmZURhdGFCdWZmZXI6OmNyZWF0ZShXVEZNb3ZlKHZhbHVlQnVmZmVyKSk7CisgICAg
ICAgIHZhbHVlID0gVGhyZWFkU2FmZURhdGFCdWZmZXI6OmNyZWF0ZShzcWwtPmNvbHVtbkJsb2Io
MSkpOwogICAgIH0KIAogICAgIGlmIChyZWNvcmRJRCA8IDEpIHsKQEAgLTIzODMsOCArMjM4MSw3
IEBAIElEQkVycm9yIFNRTGl0ZUlEQkJhY2tpbmdTdG9yZTo6Z2V0UmVjb3JkKGNvbnN0IElEQlJl
c291cmNlSWRlbnRpZmllciYgdHJhbnNhY3RpCiAgICAgICAgIGtleVJlc3VsdEJ1ZmZlciA9IFRo
cmVhZFNhZmVEYXRhQnVmZmVyOjpjcmVhdGUoc3FsLT5jb2x1bW5CbG9iKDApKTsKIAogICAgICAg
ICBpZiAodHlwZSA9PSBJREJHZXRSZWNvcmREYXRhVHlwZTo6S2V5QW5kVmFsdWUpIHsKLSAgICAg
ICAgICAgIGF1dG8gdmFsdWVCdWZmZXIgPSBzcWwtPmNvbHVtbkJsb2IoMSk7Ci0gICAgICAgICAg
ICB2YWx1ZVJlc3VsdEJ1ZmZlciA9IFRocmVhZFNhZmVEYXRhQnVmZmVyOjpjcmVhdGUoV1RGTW92
ZSh2YWx1ZUJ1ZmZlcikpOworICAgICAgICAgICAgdmFsdWVSZXN1bHRCdWZmZXIgPSBUaHJlYWRT
YWZlRGF0YUJ1ZmZlcjo6Y3JlYXRlKHNxbC0+Y29sdW1uQmxvYigxKSk7CiAgICAgICAgICAgICBy
ZWNvcmRJRCA9IHNxbC0+Y29sdW1uSW50NjQoMik7CiAgICAgICAgIH0KICAgICB9CkBAIC0yNTAw
LDkgKzI0OTcsOSBAQCBJREJFcnJvciBTUUxpdGVJREJCYWNraW5nU3RvcmU6OmdldEFsbE9iamVj
dFN0b3JlUmVjb3Jkcyhjb25zdCBJREJSZXNvdXJjZUlkZW50aQogICAgIHVpbnQzMl90IHJldHVy
bmVkUmVzdWx0cyA9IDA7CiAKICAgICB3aGlsZSAoc3FsUmVzdWx0ID09IFNRTElURV9ST1cgJiYg
cmV0dXJuZWRSZXN1bHRzIDwgdGFyZ2V0UmVzdWx0cykgewotICAgICAgICBhdXRvIGtleUJ1ZmZl
ciA9IHNxbC0+Y29sdW1uQmxvYigwKTsKKyAgICAgICAgYXV0byBrZXlCdWZmZXJWaWV3ID0gc3Fs
LT5jb2x1bW5CbG9iVmlldygwKTsKICAgICAgICAgSURCS2V5RGF0YSBrZXlEYXRhOwotICAgICAg
ICBpZiAoIWRlc2VyaWFsaXplSURCS2V5RGF0YShrZXlCdWZmZXIuZGF0YSgpLCBrZXlCdWZmZXIu
c2l6ZSgpLCBrZXlEYXRhKSkgeworICAgICAgICBpZiAoIWRlc2VyaWFsaXplSURCS2V5RGF0YShr
ZXlCdWZmZXJWaWV3LmRhdGEoKSwga2V5QnVmZmVyVmlldy5zaXplKCksIGtleURhdGEpKSB7CiAg
ICAgICAgICAgICBMT0dfRVJST1IoIlVuYWJsZSB0byBkZXNlcmlhbGl6ZSBrZXkgZGF0YSBmcm9t
IGRhdGFiYXNlIHdoaWxlIGdldHRpbmcgYWxsIHJlY29yZHMiKTsKICAgICAgICAgICAgIHJldHVy
biBJREJFcnJvciB7IFVua25vd25FcnJvciwgIlVuYWJsZSB0byBkZXNlcmlhbGl6ZSBrZXkgZGF0
YSB3aGlsZSBnZXR0aW5nIGFsbCByZWNvcmRzIl9zIH07CiAgICAgICAgIH0KQEAgLTI2NTcsOSAr
MjY1NCw5IEBAIElEQkVycm9yIFNRTGl0ZUlEQkJhY2tpbmdTdG9yZTo6dW5jaGVja2VkR2V0SW5k
ZXhSZWNvcmRGb3JPbmVLZXkoaW50NjRfdCBpbmRleElECiAgICAgICAgIHJldHVybiBJREJFcnJv
ciB7IH07CiAKICAgICBJREJLZXlEYXRhIG9iamVjdFN0b3JlS2V5OwotICAgIGF1dG8ga2V5VmVj
dG9yID0gc3FsLT5jb2x1bW5CbG9iKDApOworICAgIGF1dG8ga2V5VmlldyA9IHNxbC0+Y29sdW1u
QmxvYlZpZXcoMCk7CiAKLSAgICBpZiAoIWRlc2VyaWFsaXplSURCS2V5RGF0YShrZXlWZWN0b3Iu
ZGF0YSgpLCBrZXlWZWN0b3Iuc2l6ZSgpLCBvYmplY3RTdG9yZUtleSkpIHsKKyAgICBpZiAoIWRl
c2VyaWFsaXplSURCS2V5RGF0YShrZXlWaWV3LmRhdGEoKSwga2V5Vmlldy5zaXplKCksIG9iamVj
dFN0b3JlS2V5KSkgewogICAgICAgICBMT0dfRVJST1IoIlVuYWJsZSB0byBkZXNlcmlhbGl6ZSBr
ZXkgbG9va2luZyB1cCBpbmRleCByZWNvcmQgaW4gZGF0YWJhc2UiKTsKICAgICAgICAgcmV0dXJu
IElEQkVycm9yIHsgVW5rbm93bkVycm9yLCAiVW5hYmxlIHRvIGRlc2VyaWFsaXplIGtleSBsb29r
aW5nIHVwIGluZGV4IHJlY29yZCBpbiBkYXRhYmFzZSJfcyB9OwogICAgIH0KZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL3NlcnZlci9TUUxpdGVJREJDdXJzb3Iu
Y3BwIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvc2VydmVyL1NRTGl0ZUlEQkN1
cnNvci5jcHAKaW5kZXggMjM3ZWNiYjFiMWUwN2QxNDkzYWRmMjU3OGE2YWY0ZjQyNWEzYzE0Ny4u
NzAzMmIyMzhjYmE2ZjFiNTY3MTFhOWZmOThhNjk2MWFlMzY1NGFiOSAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvc2VydmVyL1NRTGl0ZUlEQkN1cnNvci5jcHAK
KysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvc2VydmVyL1NRTGl0ZUlEQkN1
cnNvci5jcHAKQEAgLTU1NCwxNSArNTU0LDE1IEBAIFNRTGl0ZUlEQkN1cnNvcjo6RmV0Y2hSZXN1
bHQgU1FMaXRlSURCQ3Vyc29yOjppbnRlcm5hbEZldGNoTmV4dFJlY29yZChTUUxpdGVDdXJzCiAK
ICAgICByZWNvcmQucm93SUQgPSBzdGF0ZW1lbnQtPmNvbHVtbkludDY0KDApOwogICAgIEFTU0VS
VChyZWNvcmQucm93SUQpOwotICAgIGF1dG8ga2V5RGF0YSA9IHN0YXRlbWVudC0+Y29sdW1uQmxv
YigxKTsKKyAgICBhdXRvIGtleURhdGFWaWV3ID0gc3RhdGVtZW50LT5jb2x1bW5CbG9iVmlldygx
KTsKIAotICAgIGlmICghZGVzZXJpYWxpemVJREJLZXlEYXRhKGtleURhdGEuZGF0YSgpLCBrZXlE
YXRhLnNpemUoKSwgcmVjb3JkLnJlY29yZC5rZXkpKSB7CisgICAgaWYgKCFkZXNlcmlhbGl6ZUlE
QktleURhdGEoa2V5RGF0YVZpZXcuZGF0YSgpLCBrZXlEYXRhVmlldy5zaXplKCksIHJlY29yZC5y
ZWNvcmQua2V5KSkgewogICAgICAgICBMT0dfRVJST1IoIlVuYWJsZSB0byBkZXNlcmlhbGl6ZSBr
ZXkgZGF0YSBmcm9tIGRhdGFiYXNlIHdoaWxlIGFkdmFuY2luZyBjdXJzb3IiKTsKICAgICAgICAg
bWFya0FzRXJyb3JlZChyZWNvcmQpOwogICAgICAgICByZXR1cm4gRmV0Y2hSZXN1bHQ6OkZhaWx1
cmU7CiAgICAgfQogCi0gICAga2V5RGF0YSA9IHN0YXRlbWVudC0+Y29sdW1uQmxvYigyKTsKKyAg
ICBhdXRvIGtleURhdGEgPSBzdGF0ZW1lbnQtPmNvbHVtbkJsb2IoMik7CiAKICAgICAvLyBUaGUg
cHJpbWFyeUtleSBvZiBhbiBPYmplY3RTdG9yZSBjdXJzb3IgaXMgdGhlIHNhbWUgYXMgaXRzIGtl
eS4KICAgICBpZiAobV9pbmRleElEID09IElEQkluZGV4SW5mbzo6SW52YWxpZElkKSB7CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9zcWwvU1FMaXRlU3RhdGVtZW50LmNwcCBi
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL3NxbC9TUUxpdGVTdGF0ZW1lbnQuY3BwCmluZGV4IGQ4
YWQ2YzdjNWRmNzc3MTA0MDA0ODcwMWQwNDYwZGZlZTgyMWFkNWUuLmE5MmQzYWM1ZTU4NjU2ZjBi
MzM2MTE1NDgyN2FiODcyYTU3ZGVlM2EgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL3NxbC9TUUxpdGVTdGF0ZW1lbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L3NxbC9TUUxpdGVTdGF0ZW1lbnQuY3BwCkBAIC0yODEsNiArMjgxLDEyIEBAIFN0cmluZyBTUUxp
dGVTdGF0ZW1lbnQ6OmNvbHVtbkJsb2JBc1N0cmluZyhpbnQgY29sKQogfQogCiBWZWN0b3I8dWlu
dDhfdD4gU1FMaXRlU3RhdGVtZW50Ojpjb2x1bW5CbG9iKGludCBjb2wpCit7CisgICAgYXV0byBi
bG9iVmlldyA9IGNvbHVtbkJsb2JWaWV3KGNvbCk7CisgICAgcmV0dXJuIHsgYmxvYlZpZXcuZGF0
YSgpLCBibG9iVmlldy5zaXplKCkgfTsKK30KKworYXV0byBTUUxpdGVTdGF0ZW1lbnQ6OmNvbHVt
bkJsb2JWaWV3KGludCBjb2wpIC0+IEJsb2JWaWV3CiB7CiAgICAgQVNTRVJUKGNvbCA+PSAwKTsK
IApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vc3FsL1NRTGl0ZVN0YXRlbWVu
dC5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vc3FsL1NRTGl0ZVN0YXRlbWVudC5oCmluZGV4
IGYwNWE4ODRmZGIyODM3Njk3ZTAwNzI1NjQzNTViMDBjOGNkMGZhNTEuLjljMmUyZjkzOTU3NWQ4
ZjZmZGJmMjUwZDM4MzUxY2RhMGRiYmQwNWUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL3NxbC9TUUxpdGVTdGF0ZW1lbnQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9zcWwvU1FMaXRlU3RhdGVtZW50LmgKQEAgLTcyLDYgKzcyLDI0IEBAIHB1YmxpYzoKICAgICBX
RUJDT1JFX0VYUE9SVCBTdHJpbmcgY29sdW1uQmxvYkFzU3RyaW5nKGludCBjb2wpOwogICAgIFdF
QkNPUkVfRVhQT1JUIFZlY3Rvcjx1aW50OF90PiBjb2x1bW5CbG9iKGludCBjb2wpOwogCisgICAg
Y2xhc3MgQmxvYlZpZXcgeworICAgIHB1YmxpYzoKKyAgICAgICAgQmxvYlZpZXcoKSA9IGRlZmF1
bHQ7CisgICAgICAgIEJsb2JWaWV3KGNvbnN0IHVpbnQ4X3QqIGRhdGEsIHNpemVfdCBzaXplKQor
ICAgICAgICAgICAgOiBtX2RhdGEoZGF0YSkKKyAgICAgICAgICAgICwgbV9zaXplKHNpemUpCisg
ICAgICAgIHsgfQorCisgICAgICAgIGNvbnN0IHVpbnQ4X3QqIGRhdGEoKSB7IHJldHVybiBtX2Rh
dGE7IH0KKyAgICAgICAgc2l6ZV90IHNpemUoKSB7IHJldHVybiBtX3NpemU7IH0KKworICAgIHBy
aXZhdGU6CisgICAgICAgIGNvbnN0IHVpbnQ4X3QqIG1fZGF0YSB7IG51bGxwdHIgfTsKKyAgICAg
ICAgY29uc3Qgc2l6ZV90IG1fc2l6ZSB7IDAgfTsKKyAgICB9OworICAgIC8vIFRoZSByZXR1cm5l
ZCBCbG9iVmlldyBzdGF5cyB2YWxpZCB1bnRpbCB0aGUgbmV4dCBzdGVwKCkgLyByZXNldCgpIG9y
IGRlc3RydWN0aW9uIG9mIHRoZSBzdGF0ZW1lbnQuCisgICAgQmxvYlZpZXcgY29sdW1uQmxvYlZp
ZXcoaW50IGNvbCk7CisKICAgICBTUUxpdGVEYXRhYmFzZSYgZGF0YWJhc2UoKSB7IHJldHVybiBt
X2RhdGFiYXNlOyB9CiAgICAgCiBwcml2YXRlOgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
d29ya2Vycy9zZXJ2aWNlL3NlcnZlci9SZWdpc3RyYXRpb25EYXRhYmFzZS5jcHAgYi9Tb3VyY2Uv
V2ViQ29yZS93b3JrZXJzL3NlcnZpY2Uvc2VydmVyL1JlZ2lzdHJhdGlvbkRhdGFiYXNlLmNwcApp
bmRleCA1ZmE5MTFmYjJjMDJmZDI4NThlNzdkNmZmNzc2NzkwZGRhYjgyZDcyLi45ZDBkYWVhYTJk
MzBhN2YyNGY0NDAyMjc5MDUwYjViMTNlYmViMDhjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS93b3JrZXJzL3NlcnZpY2Uvc2VydmVyL1JlZ2lzdHJhdGlvbkRhdGFiYXNlLmNwcAorKysgYi9T
b3VyY2UvV2ViQ29yZS93b3JrZXJzL3NlcnZpY2Uvc2VydmVyL1JlZ2lzdHJhdGlvbkRhdGFiYXNl
LmNwcApAQCAtNTE0LDEwICs1MTQsMTAgQEAgU3RyaW5nIFJlZ2lzdHJhdGlvbkRhdGFiYXNlOjpp
bXBvcnRSZWNvcmRzKCkKICAgICAgICAgYXV0byBzY3JpcHRVUkwgPSBVUkwgeyBVUkwoKSwgc3Fs
LT5jb2x1bW5UZXh0KDYpIH07CiAgICAgICAgIGF1dG8gd29ya2VyVHlwZSA9IHN0cmluZ1RvV29y
a2VyVHlwZShzcWwtPmNvbHVtblRleHQoNykpOwogCi0gICAgICAgIGF1dG8gY29udGVudFNlY3Vy
aXR5UG9saWN5RGF0YSA9IHNxbC0+Y29sdW1uQmxvYig4KTsKLSAgICAgICAgV1RGOjpQZXJzaXN0
ZW5jZTo6RGVjb2RlciBjc3BEZWNvZGVyKGNvbnRlbnRTZWN1cml0eVBvbGljeURhdGEuZGF0YSgp
LCBjb250ZW50U2VjdXJpdHlQb2xpY3lEYXRhLnNpemUoKSk7CiAgICAgICAgIE9wdGlvbmFsPENv
bnRlbnRTZWN1cml0eVBvbGljeVJlc3BvbnNlSGVhZGVycz4gY29udGVudFNlY3VyaXR5UG9saWN5
OwotICAgICAgICBpZiAoY29udGVudFNlY3VyaXR5UG9saWN5RGF0YS5zaXplKCkpIHsKKyAgICAg
ICAgYXV0byBjb250ZW50U2VjdXJpdHlQb2xpY3lEYXRhVmlldyA9IHNxbC0+Y29sdW1uQmxvYlZp
ZXcoOCk7CisgICAgICAgIGlmIChjb250ZW50U2VjdXJpdHlQb2xpY3lEYXRhVmlldy5zaXplKCkp
IHsKKyAgICAgICAgICAgIFdURjo6UGVyc2lzdGVuY2U6OkRlY29kZXIgY3NwRGVjb2Rlcihjb250
ZW50U2VjdXJpdHlQb2xpY3lEYXRhVmlldy5kYXRhKCksIGNvbnRlbnRTZWN1cml0eVBvbGljeURh
dGFWaWV3LnNpemUoKSk7CiAgICAgICAgICAgICBjc3BEZWNvZGVyID4+IGNvbnRlbnRTZWN1cml0
eVBvbGljeTsKICAgICAgICAgICAgIGlmICghY29udGVudFNlY3VyaXR5UG9saWN5KSB7CiAgICAg
ICAgICAgICAgICAgUkVMRUFTRV9MT0dfRVJST1IoU2VydmljZVdvcmtlciwgIlJlZ2lzdHJhdGlv
bkRhdGFiYXNlOjppbXBvcnRSZWNvcmRzOiBGYWlsZWQgdG8gZGVjb2RlIGNvbnRlbnRTZWN1cml0
eVBvbGljeSIpOwpAQCAtNTI3LDExICs1MjcsMTAgQEAgU3RyaW5nIFJlZ2lzdHJhdGlvbkRhdGFi
YXNlOjppbXBvcnRSZWNvcmRzKCkKIAogICAgICAgICBhdXRvIHJlZmVycmVyUG9saWN5ID0gc3Fs
LT5jb2x1bW5UZXh0KDkpOwogCi0gICAgICAgIGF1dG8gc2NyaXB0UmVzb3VyY2VNYXBEYXRhID0g
c3FsLT5jb2x1bW5CbG9iKDEwKTsKICAgICAgICAgSGFzaE1hcDxVUkwsIFNlcnZpY2VXb3JrZXJD
b250ZXh0RGF0YTo6SW1wb3J0ZWRTY3JpcHQ+IHNjcmlwdFJlc291cmNlTWFwOwotCi0gICAgICAg
IFdURjo6UGVyc2lzdGVuY2U6OkRlY29kZXIgc2NyaXB0UmVzb3VyY2VNYXBEZWNvZGVyKHNjcmlw
dFJlc291cmNlTWFwRGF0YS5kYXRhKCksIHNjcmlwdFJlc291cmNlTWFwRGF0YS5zaXplKCkpOwot
ICAgICAgICBpZiAoc2NyaXB0UmVzb3VyY2VNYXBEYXRhLnNpemUoKSkgeworICAgICAgICBhdXRv
IHNjcmlwdFJlc291cmNlTWFwRGF0YVZpZXcgPSBzcWwtPmNvbHVtbkJsb2JWaWV3KDEwKTsKKyAg
ICAgICAgaWYgKHNjcmlwdFJlc291cmNlTWFwRGF0YVZpZXcuc2l6ZSgpKSB7CisgICAgICAgICAg
ICBXVEY6OlBlcnNpc3RlbmNlOjpEZWNvZGVyIHNjcmlwdFJlc291cmNlTWFwRGVjb2RlcihzY3Jp
cHRSZXNvdXJjZU1hcERhdGFWaWV3LmRhdGEoKSwgc2NyaXB0UmVzb3VyY2VNYXBEYXRhVmlldy5z
aXplKCkpOwogICAgICAgICAgICAgT3B0aW9uYWw8SGFzaE1hcDxVUkwsIEltcG9ydGVkU2NyaXB0
QXR0cmlidXRlcz4+IHNjcmlwdFJlc291cmNlTWFwV2l0aG91dFNjcmlwdHM7CiAgICAgICAgICAg
ICBzY3JpcHRSZXNvdXJjZU1hcERlY29kZXIgPj4gc2NyaXB0UmVzb3VyY2VNYXBXaXRob3V0U2Ny
aXB0czsKICAgICAgICAgICAgIGlmICghc2NyaXB0UmVzb3VyY2VNYXBXaXRob3V0U2NyaXB0cykg
ewpAQCAtNTQxLDEwICs1NDAsMTAgQEAgU3RyaW5nIFJlZ2lzdHJhdGlvbkRhdGFiYXNlOjppbXBv
cnRSZWNvcmRzKCkKICAgICAgICAgICAgIHNjcmlwdFJlc291cmNlTWFwID0gcG9wdWxhdGVTY3Jp
cHRTb3VyY2VzRnJvbURpc2soc2NyaXB0U3RvcmFnZSgpLCAqa2V5LCBXVEZNb3ZlKCpzY3JpcHRS
ZXNvdXJjZU1hcFdpdGhvdXRTY3JpcHRzKSk7CiAgICAgICAgIH0KIAotICAgICAgICBhdXRvIGNl
cnRpZmljYXRlSW5mb0RhdGEgPSBzcWwtPmNvbHVtbkJsb2IoMTEpOworICAgICAgICBhdXRvIGNl
cnRpZmljYXRlSW5mb0RhdGFWaWV3ID0gc3FsLT5jb2x1bW5CbG9iVmlldygxMSk7CiAgICAgICAg
IE9wdGlvbmFsPENlcnRpZmljYXRlSW5mbz4gY2VydGlmaWNhdGVJbmZvOwogCi0gICAgICAgIFdU
Rjo6UGVyc2lzdGVuY2U6OkRlY29kZXIgY2VydGlmaWNhdGVJbmZvRGVjb2RlcihjZXJ0aWZpY2F0
ZUluZm9EYXRhLmRhdGEoKSwgY2VydGlmaWNhdGVJbmZvRGF0YS5zaXplKCkpOworICAgICAgICBX
VEY6OlBlcnNpc3RlbmNlOjpEZWNvZGVyIGNlcnRpZmljYXRlSW5mb0RlY29kZXIoY2VydGlmaWNh
dGVJbmZvRGF0YVZpZXcuZGF0YSgpLCBjZXJ0aWZpY2F0ZUluZm9EYXRhVmlldy5zaXplKCkpOwog
ICAgICAgICBjZXJ0aWZpY2F0ZUluZm9EZWNvZGVyID4+IGNlcnRpZmljYXRlSW5mbzsKICAgICAg
ICAgaWYgKCFjZXJ0aWZpY2F0ZUluZm8pIHsKICAgICAgICAgICAgIFJFTEVBU0VfTE9HX0VSUk9S
KFNlcnZpY2VXb3JrZXIsICJSZWdpc3RyYXRpb25EYXRhYmFzZTo6aW1wb3J0UmVjb3JkczogRmFp
bGVkIHRvIGRlY29kZSBjZXJ0aWZpY2F0ZUluZm8iKTsK
</data>

          </attachment>
      

    </bug>

</bugzilla>