<?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>94329</bug_id>
          
          <creation_ts>2012-08-17 03:52:13 -0700</creation_ts>
          <short_desc>[BlackBerry] Adapt to changes in the platform media player API</short_desc>
          <delta_ts>2012-08-20 01:47:23 -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>WebKit BlackBerry</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>Other</rep_platform>
          <op_sys>Other</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>0</everconfirmed>
          <reporter name="Robin Cao">robin.webkit</reporter>
          <assigned_to name="Nobody">webkit-unassigned</assigned_to>
          <cc>eric.carlson</cc>
    
    <cc>feature-media-reviews</cc>
    
    <cc>mifenton</cc>
    
    <cc>rwlbuis</cc>
    
    <cc>staikos</cc>
    
    <cc>tonikitoo</cc>
    
    <cc>webkit.review.bot</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>698165</commentid>
    <comment_count>0</comment_count>
    <who name="Robin Cao">robin.webkit</who>
    <bug_when>2012-08-17 03:52:13 -0700</bug_when>
    <thetext>The platform now provides an abtract interface PlatformPlayer which roughly corresponds to WebKit&apos;s MediaPlayerPrivate.

We need to adapt to these changes.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>698223</commentid>
    <comment_count>1</comment_count>
      <attachid>159094</attachid>
    <who name="Robin Cao">robin.webkit</who>
    <bug_when>2012-08-17 05:11:42 -0700</bug_when>
    <thetext>Created attachment 159094
patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>698310</commentid>
    <comment_count>2</comment_count>
      <attachid>159094</attachid>
    <who name="Antonio Gomes">tonikitoo</who>
    <bug_when>2012-08-17 07:14:58 -0700</bug_when>
    <thetext>Comment on attachment 159094
patch

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

&gt; Source/WebCore/platform/graphics/blackberry/MediaPlayerPrivateBlackBerry.cpp:175
&gt; -    m_platformPlayer-&gt;cancelLoad();
&gt; +    if (m_platformPlayer)
&gt; +        m_platformPlayer-&gt;cancelLoad();

I think this and all the other null checks are changes in the behavior. Why is that needed now?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>698420</commentid>
    <comment_count>3</comment_count>
      <attachid>159094</attachid>
    <who name="Eric Carlson">eric.carlson</who>
    <bug_when>2012-08-17 09:41:34 -0700</bug_when>
    <thetext>Comment on attachment 159094
patch

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

This looks OK to me, but I know absolutely nothing about either the old or new platform player so I will let someone else give it a real review.

&gt;&gt; Source/WebCore/platform/graphics/blackberry/MediaPlayerPrivateBlackBerry.cpp:175
&gt;&gt; +        m_platformPlayer-&gt;cancelLoad();
&gt; 
&gt; I think this and all the other null checks are changes in the behavior. Why is that needed now?

Because m_platformPlayer is allocated in load rather than in the constructor?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>698446</commentid>
    <comment_count>4</comment_count>
      <attachid>159094</attachid>
    <who name="Antonio Gomes">tonikitoo</who>
    <bug_when>2012-08-17 10:08:10 -0700</bug_when>
    <thetext>Comment on attachment 159094
patch

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

&gt;&gt;&gt; Source/WebCore/platform/graphics/blackberry/MediaPlayerPrivateBlackBerry.cpp:175
&gt;&gt;&gt; +        m_platformPlayer-&gt;cancelLoad();
&gt;&gt; 
&gt;&gt; I think this and all the other null checks are changes in the behavior. Why is that needed now?
&gt; 
&gt; Because m_platformPlayer is allocated in load rather than in the constructor?

Very reasonable.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>699321</commentid>
    <comment_count>5</comment_count>
      <attachid>159094</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-08-20 01:47:20 -0700</bug_when>
    <thetext>Comment on attachment 159094
patch

Clearing flags on attachment: 159094

Committed r126008: &lt;http://trac.webkit.org/changeset/126008&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>699322</commentid>
    <comment_count>6</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-08-20 01:47:23 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>159094</attachid>
            <date>2012-08-17 05:11:42 -0700</date>
            <delta_ts>2012-08-20 01:47:19 -0700</delta_ts>
            <desc>patch</desc>
            <filename>bug-94329-20120817201104.patch</filename>
            <type>text/plain</type>
            <size>19939</size>
            <attacher name="Robin Cao">robin.webkit</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTI1ODc4CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggYTc5MjIxOTBiOTVkMzQ2
YTk2YTczNjhjZWNmZDQxNjhlMzY0YWI5OC4uZjVhNmYwNTZhYzUwMzFhZGY3ZGZlMzM5ZTJhNzBi
ZGUwNmYwYzUwMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDU2IEBACisyMDEyLTA4LTE3ICBSb2Jp
biBDYW8gIDxyb2Jpbi5jYW9AdG9yY2htb2JpbGUuY29tLmNuPgorCisgICAgICAgIFtCbGFja0Jl
cnJ5XSBBZGFwdCB0byBjaGFuZ2VzIGluIHRoZSBwbGF0Zm9ybSBtZWRpYSBwbGF5ZXIgQVBJCisg
ICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD05NDMyOQorICAg
ICAgICBQUiAjMTk0MjM3CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisK
KyAgICAgICAgVGhlIGludGVyZmFjZSB0byBwbGF0Zm9ybSdzIG1lZGlhIHBsYXllciBoYXMgY2hh
bmdlZCBmcm9tIE1NUlBsYXllcgorICAgICAgICB0byBQbGF0Zm9ybVBsYXllci4gVGhpcyBwYXRj
aCBhZGFwdHMgdG8gdGhpcyBjaGFuZ2UuCisKKyAgICAgICAgQW5kIHdlIGFsc28gZGVjaWRlZCB0
byBwb3N0cG9uZSB0aGUgY3JlYXRpb24gb2YgUGxhdGZvcm1QbGF5ZXIgdW50aWwKKyAgICAgICAg
dGhlIGxvYWRpbmcgc3RhcnRlZC4gVGhpcyBpcyBuZWVkZWQgYmVjYXVzZSB3ZSBtYXkgY3JlYXRl
IGRpZmZlcmVudAorICAgICAgICB0eXBlcyBvZiBwbGF5ZXIgZm9yIGRpZmZlcmVudCBtZWRpYSBz
b3VyY2VzLgorCisgICAgICAgIFRoaXMgaXMgYSByZWZhY3Rvciwgbm8gbmV3IHRlc3RzLgorCisg
ICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvYmxhY2tiZXJyeS9NZWRpYVBsYXllclByaXZhdGVC
bGFja0JlcnJ5LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhUGxheWVyUHJpdmF0ZTo6Z2V0
U3VwcG9ydGVkVHlwZXMpOgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFQbGF5ZXJQcml2YXRlOjpz
dXBwb3J0c1R5cGUpOgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFQbGF5ZXJQcml2YXRlOjpub3Rp
ZnlBcHBBY3RpdmF0ZWRFdmVudCk6CisgICAgICAgIChXZWJDb3JlOjpNZWRpYVBsYXllclByaXZh
dGU6OnNldENlcnRpZmljYXRlUGF0aCk6CisgICAgICAgIChXZWJDb3JlOjpNZWRpYVBsYXllclBy
aXZhdGU6Ok1lZGlhUGxheWVyUHJpdmF0ZSk6CisgICAgICAgIChXZWJDb3JlOjpNZWRpYVBsYXll
clByaXZhdGU6OmxvYWQpOgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFQbGF5ZXJQcml2YXRlOjpj
YW5jZWxMb2FkKToKKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhUGxheWVyUHJpdmF0ZTo6cHJlcGFy
ZVRvUGxheSk6CisgICAgICAgIChXZWJDb3JlOjpNZWRpYVBsYXllclByaXZhdGU6OnBsYXkpOgor
ICAgICAgICAoV2ViQ29yZTo6TWVkaWFQbGF5ZXJQcml2YXRlOjpwYXVzZSk6CisgICAgICAgIChX
ZWJDb3JlOjpNZWRpYVBsYXllclByaXZhdGU6Om5hdHVyYWxTaXplKToKKyAgICAgICAgKFdlYkNv
cmU6Ok1lZGlhUGxheWVyUHJpdmF0ZTo6aGFzVmlkZW8pOgorICAgICAgICAoV2ViQ29yZTo6TWVk
aWFQbGF5ZXJQcml2YXRlOjpoYXNBdWRpbyk6CisgICAgICAgIChXZWJDb3JlOjpNZWRpYVBsYXll
clByaXZhdGU6OmR1cmF0aW9uKToKKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhUGxheWVyUHJpdmF0
ZTo6Y3VycmVudFRpbWUpOgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFQbGF5ZXJQcml2YXRlOjpz
ZWVrKToKKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhUGxheWVyUHJpdmF0ZTo6c2V0UmF0ZSk6Cisg
ICAgICAgIChXZWJDb3JlOjpNZWRpYVBsYXllclByaXZhdGU6OnBhdXNlZCk6CisgICAgICAgIChX
ZWJDb3JlOjpNZWRpYVBsYXllclByaXZhdGU6OnNldFZvbHVtZSk6CisgICAgICAgIChXZWJDb3Jl
OjpNZWRpYVBsYXllclByaXZhdGU6Om1heFRpbWVTZWVrYWJsZSk6CisgICAgICAgIChXZWJDb3Jl
OjpNZWRpYVBsYXllclByaXZhdGU6OmJ1ZmZlcmVkKToKKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlh
UGxheWVyUHJpdmF0ZTo6cGFpbnQpOgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFQbGF5ZXJQcml2
YXRlOjpoYXNBdmFpbGFibGVWaWRlb0ZyYW1lKToKKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhUGxh
eWVyUHJpdmF0ZTo6bW92aWVMb2FkVHlwZSk6CisgICAgICAgIChXZWJDb3JlOjpNZWRpYVBsYXll
clByaXZhdGU6OnNldEFsbG93UFBTVm9sdW1lVXBkYXRlcyk6CisgICAgICAgIChXZWJDb3JlOjpN
ZWRpYVBsYXllclByaXZhdGU6OnVwZGF0ZVN0YXRlcyk6CisgICAgICAgIChXZWJDb3JlKToKKyAg
ICAgICAgKFdlYkNvcmU6Ok1lZGlhUGxheWVyUHJpdmF0ZTo6b25TdGF0ZUNoYW5nZWQpOgorICAg
ICAgICAoV2ViQ29yZTo6TWVkaWFQbGF5ZXJQcml2YXRlOjpvbk1lZGlhU3RhdHVzQ2hhbmdlZCk6
CisgICAgICAgIChXZWJDb3JlOjpNZWRpYVBsYXllclByaXZhdGU6Om9uRXJyb3IpOgorICAgICAg
ICAoV2ViQ29yZTo6TWVkaWFQbGF5ZXJQcml2YXRlOjp3YWl0TWV0YWRhdGFUaW1lckZpcmVkKToK
KyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhUGxheWVyUHJpdmF0ZTo6c2hvd0Vycm9yRGlhbG9nKToK
KyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9ibGFja2JlcnJ5L01lZGlhUGxheWVyUHJpdmF0
ZUJsYWNrQmVycnkuaDoKKyAgICAgICAgKE1lZGlhUGxheWVyUHJpdmF0ZSk6CisKIDIwMTItMDgt
MTcgIEFudGhvbnkgQmVyZW50ICA8YWJlcmVudEBjaHJvbWl1bS5vcmc+CiAKICAgICAgICAgVmll
dyBzb3VyY2UgZG9lc24ndCBpbnRlcnByZXQgZXNjYXBlIGNoYXJhY3RlcnMgaW4gaHJlZnMuCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9ibGFja2JlcnJ5L01l
ZGlhUGxheWVyUHJpdmF0ZUJsYWNrQmVycnkuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
Z3JhcGhpY3MvYmxhY2tiZXJyeS9NZWRpYVBsYXllclByaXZhdGVCbGFja0JlcnJ5LmNwcAppbmRl
eCA5ZDZiNDc0ZmMyNTRkOTM2MTZjYWQzOGZmZDhiNmViYzkzM2EyZTg0Li5kYzQ0NWE1MWEzZGFi
YmQxMjM5ZWE5YzQ0ODgzOGFlYmU2MDNhMmM1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9ncmFwaGljcy9ibGFja2JlcnJ5L01lZGlhUGxheWVyUHJpdmF0ZUJsYWNrQmVycnku
Y3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2JsYWNrYmVycnkvTWVk
aWFQbGF5ZXJQcml2YXRlQmxhY2tCZXJyeS5jcHAKQEAgLTY2LDcgKzY2LDcgQEAgdm9pZCBNZWRp
YVBsYXllclByaXZhdGU6OnJlZ2lzdGVyTWVkaWFFbmdpbmUoTWVkaWFFbmdpbmVSZWdpc3RyYXIg
cmVnaXN0cmFyKQogCiB2b2lkIE1lZGlhUGxheWVyUHJpdmF0ZTo6Z2V0U3VwcG9ydGVkVHlwZXMo
SGFzaFNldDxTdHJpbmc+JiB0eXBlcykKIHsKLSAgICBzZXQ8c3RyaW5nPiBzdXBwb3J0ZWQgPSBN
TVJQbGF5ZXI6OmFsbFN1cHBvcnRlZE1pbWVUeXBlcygpOworICAgIHNldDxzdHJpbmc+IHN1cHBv
cnRlZCA9IFBsYXRmb3JtUGxheWVyOjphbGxTdXBwb3J0ZWRNaW1lVHlwZXMoKTsKICAgICBzZXQ8
c3RyaW5nPjo6aXRlcmF0b3IgaSA9IHN1cHBvcnRlZC5iZWdpbigpOwogICAgIGZvciAoOyBpICE9
IHN1cHBvcnRlZC5lbmQoKTsgaSsrKQogICAgICAgICB0eXBlcy5hZGQoaS0+Y19zdHIoKSk7CkBA
IC04MCw3ICs4MCw3IEBAIE1lZGlhUGxheWVyOjpTdXBwb3J0c1R5cGUgTWVkaWFQbGF5ZXJQcml2
YXRlOjpzdXBwb3J0c1R5cGUoY29uc3QgU3RyaW5nJiB0eXBlLCBjCiAgICAgfQogCiAgICAgLy8g
c3BlYyBzYXlzIHdlIHNob3VsZCBub3QgcmV0dXJuICJwcm9iYWJseSIgaWYgdGhlIGNvZGVjcyBz
dHJpbmcgaXMgZW1wdHkKLSAgICBpZiAoTU1SUGxheWVyOjptaW1lVHlwZVN1cHBvcnRlZCh0eXBl
LmFzY2lpKCkuZGF0YSgpKSkgeworICAgIGlmIChQbGF0Zm9ybVBsYXllcjo6bWltZVR5cGVTdXBw
b3J0ZWQodHlwZS5hc2NpaSgpLmRhdGEoKSkpIHsKICAgICAgICAgTE9HKE1lZGlhLCAiTWVkaWFQ
bGF5ZXIgc3VwcG9ydHMgdHlwZTsgY2FjaGUgY29udGFpbnMgdHlwZSAnJXMnLiIsIHR5cGUuYXNj
aWkoKS5kYXRhKCkpOwogICAgICAgICByZXR1cm4gY29kZWNzLmlzRW1wdHkoKSA/IE1lZGlhUGxh
eWVyOjpNYXlCZVN1cHBvcnRlZCA6IE1lZGlhUGxheWVyOjpJc1N1cHBvcnRlZDsKICAgICB9CkBA
IC05MCwxNiArOTAsMTcgQEAgTWVkaWFQbGF5ZXI6OlN1cHBvcnRzVHlwZSBNZWRpYVBsYXllclBy
aXZhdGU6OnN1cHBvcnRzVHlwZShjb25zdCBTdHJpbmcmIHR5cGUsIGMKIAogdm9pZCBNZWRpYVBs
YXllclByaXZhdGU6Om5vdGlmeUFwcEFjdGl2YXRlZEV2ZW50KGJvb2wgYWN0aXZhdGVkKQogewot
ICAgIE1NUlBsYXllcjo6bm90aWZ5QXBwQWN0aXZhdGVkRXZlbnQoYWN0aXZhdGVkKTsKKyAgICBQ
bGF0Zm9ybVBsYXllcjo6bm90aWZ5QXBwQWN0aXZhdGVkRXZlbnQoYWN0aXZhdGVkKTsKIH0KIAog
dm9pZCBNZWRpYVBsYXllclByaXZhdGU6OnNldENlcnRpZmljYXRlUGF0aChjb25zdCBTdHJpbmcm
IGNhUGF0aCkKIHsKLSAgICBNTVJQbGF5ZXI6OnNldENlcnRpZmljYXRlUGF0aChzdHJpbmcoY2FQ
YXRoLnV0ZjgoKS5kYXRhKCkpKTsKKyAgICBQbGF0Zm9ybVBsYXllcjo6c2V0Q2VydGlmaWNhdGVQ
YXRoKHN0cmluZyhjYVBhdGgudXRmOCgpLmRhdGEoKSkpOwogfQogCiBNZWRpYVBsYXllclByaXZh
dGU6Ok1lZGlhUGxheWVyUHJpdmF0ZShNZWRpYVBsYXllciogcGxheWVyKQogICAgIDogbV93ZWJD
b3JlUGxheWVyKHBsYXllcikKKyAgICAsIG1fcGxhdGZvcm1QbGF5ZXIoMCkKICAgICAsIG1fbmV0
d29ya1N0YXRlKE1lZGlhUGxheWVyOjpFbXB0eSkKICAgICAsIG1fcmVhZHlTdGF0ZShNZWRpYVBs
YXllcjo6SGF2ZU5vdGhpbmcpCiAgICAgLCBtX2Z1bGxzY3JlZW5XZWJQYWdlQ2xpZW50KDApCkBA
IC0xMTQsMTQgKzExNSw2IEBAIE1lZGlhUGxheWVyUHJpdmF0ZTo6TWVkaWFQbGF5ZXJQcml2YXRl
KE1lZGlhUGxheWVyKiBwbGF5ZXIpCiAgICAgLCBtX3dhaXRNZXRhZGF0YVRpbWVyKHRoaXMsICZN
ZWRpYVBsYXllclByaXZhdGU6OndhaXRNZXRhZGF0YVRpbWVyRmlyZWQpCiAgICAgLCBtX3dhaXRN
ZXRhZGF0YVBvcERpYWxvZ0NvdW50ZXIoMCkKIHsKLSAgICB2b2lkKiB0YWJJZCA9IDA7Ci0gICAg
aWYgKGZyYW1lVmlldygpICYmIGZyYW1lVmlldygpLT5ob3N0V2luZG93KCkpCi0gICAgICAgIHRh
YklkID0gZnJhbWVWaWV3KCktPmhvc3RXaW5kb3coKS0+cGxhdGZvcm1QYWdlQ2xpZW50KCk7Ci0j
aWYgVVNFKEFDQ0VMRVJBVEVEX0NPTVBPU0lUSU5HKQotICAgIG1fcGxhdGZvcm1QbGF5ZXIgPSBu
ZXcgTU1SUGxheWVyKHRoaXMsIHRhYklkLCB0cnVlKTsKLSNlbHNlCi0gICAgbV9wbGF0Zm9ybVBs
YXllciA9IG5ldyBNTVJQbGF5ZXIodGhpcywgdGFiSWQsIGZhbHNlKTsKLSNlbmRpZgogfQogCiBN
ZWRpYVBsYXllclByaXZhdGU6On5NZWRpYVBsYXllclByaXZhdGUoKQpAQCAtMTU2LDYgKzE0OSwx
NyBAQCB2b2lkIE1lZGlhUGxheWVyUHJpdmF0ZTo6bG9hZChjb25zdCBTdHJpbmcmIHVybCkKICAg
ICAgICAgbW9kaWZpZWRVcmwgPSBkZWNvZGVVUkxFc2NhcGVTZXF1ZW5jZXMobW9kaWZpZWRVcmwp
OwogICAgIH0KIAorICAgIHZvaWQqIHRhYklkID0gMDsKKyAgICBpZiAoZnJhbWVWaWV3KCkgJiYg
ZnJhbWVWaWV3KCktPmhvc3RXaW5kb3coKSkKKyAgICAgICAgdGFiSWQgPSBmcmFtZVZpZXcoKS0+
aG9zdFdpbmRvdygpLT5wbGF0Zm9ybVBhZ2VDbGllbnQoKTsKKworICAgIGRlbGV0ZUd1YXJkZWRP
YmplY3QobV9wbGF0Zm9ybVBsYXllcik7CisjaWYgVVNFKEFDQ0VMRVJBVEVEX0NPTVBPU0lUSU5H
KQorICAgIG1fcGxhdGZvcm1QbGF5ZXIgPSBQbGF0Zm9ybVBsYXllcjo6Y3JlYXRlKHRoaXMsIHRh
YklkLCB0cnVlLCBtb2RpZmllZFVybC51dGY4KCkuZGF0YSgpKTsKKyNlbHNlCisgICAgbV9wbGF0
Zm9ybVBsYXllciA9IFBsYXRmb3JtUGxheWVyOjpjcmVhdGUodGhpcywgdGFiSWQsIGZhbHNlLCBt
b2RpZmllZFVybC51dGY4KCkuZGF0YSgpKTsKKyNlbmRpZgorCiAgICAgU3RyaW5nIGNvb2tpZVBh
aXJzOwogICAgIGlmICghdXJsLmlzRW1wdHkoKSkKICAgICAgICAgY29va2llUGFpcnMgPSBjb29r
aWVNYW5hZ2VyKCkuZ2V0Q29va2llKEtVUkwoUGFyc2VkVVJMU3RyaW5nLCB1cmwudXRmOCgpLmRh
dGEoKSksIFdpdGhIdHRwT25seUNvb2tpZXMpOwpAQCAtMTY3LDIyICsxNzEsMjYgQEAgdm9pZCBN
ZWRpYVBsYXllclByaXZhdGU6OmxvYWQoY29uc3QgU3RyaW5nJiB1cmwpCiAKIHZvaWQgTWVkaWFQ
bGF5ZXJQcml2YXRlOjpjYW5jZWxMb2FkKCkKIHsKLSAgICBtX3BsYXRmb3JtUGxheWVyLT5jYW5j
ZWxMb2FkKCk7CisgICAgaWYgKG1fcGxhdGZvcm1QbGF5ZXIpCisgICAgICAgIG1fcGxhdGZvcm1Q
bGF5ZXItPmNhbmNlbExvYWQoKTsKIH0KIAogdm9pZCBNZWRpYVBsYXllclByaXZhdGU6OnByZXBh
cmVUb1BsYXkoKQogewotICAgIG1fcGxhdGZvcm1QbGF5ZXItPnByZXBhcmVUb1BsYXkoKTsKKyAg
ICBpZiAobV9wbGF0Zm9ybVBsYXllcikKKyAgICAgICAgbV9wbGF0Zm9ybVBsYXllci0+cHJlcGFy
ZVRvUGxheSgpOwogfQogCiB2b2lkIE1lZGlhUGxheWVyUHJpdmF0ZTo6cGxheSgpCiB7Ci0gICAg
bV9wbGF0Zm9ybVBsYXllci0+cGxheSgpOworICAgIGlmIChtX3BsYXRmb3JtUGxheWVyKQorICAg
ICAgICBtX3BsYXRmb3JtUGxheWVyLT5wbGF5KCk7CiB9CiAKIHZvaWQgTWVkaWFQbGF5ZXJQcml2
YXRlOjpwYXVzZSgpCiB7Ci0gICAgbV9wbGF0Zm9ybVBsYXllci0+cGF1c2UoKTsKKyAgICBpZiAo
bV9wbGF0Zm9ybVBsYXllcikKKyAgICAgICAgbV9wbGF0Zm9ybVBsYXllci0+cGF1c2UoKTsKIH0K
IAogYm9vbCBNZWRpYVBsYXllclByaXZhdGU6OnN1cHBvcnRzRnVsbHNjcmVlbigpIGNvbnN0CkBA
IC0xOTIsNiArMjAwLDkgQEAgYm9vbCBNZWRpYVBsYXllclByaXZhdGU6OnN1cHBvcnRzRnVsbHNj
cmVlbigpIGNvbnN0CiAKIEludFNpemUgTWVkaWFQbGF5ZXJQcml2YXRlOjpuYXR1cmFsU2l6ZSgp
IGNvbnN0CiB7CisgICAgaWYgKCFtX3BsYXRmb3JtUGxheWVyKQorICAgICAgICByZXR1cm4gSW50
U2l6ZSgpOworCiAgICAgLy8gQ2Fubm90IHJldHVybiBlbXB0eSBzaXplLCBvdGhlcndpc2UgcGFp
bnQoKSB3aWxsIG5ldmVyIGdldCBjYWxsZWQuCiAgICAgLy8gQWxzbywgdGhlIHZhbHVlcyBoZXJl
IHdpbGwgYWZmZWN0IHRoZSBhc3BlY3QgcmF0aW8gb2YgdGhlIG91dHB1dCByZWN0YW5nbGUgdGhh
dCB3aWxsCiAgICAgLy8gYmUgdXNlZCBmb3IgcmVuZGVyZXJpbmcgdGhlIHZpZGVvLCBzbyB3ZSBt
dXN0IHRha2UgUEFSIGludG8gYWNjb3VudC4KQEAgLTIwOSwxMiArMjIwLDE2IEBAIEludFNpemUg
TWVkaWFQbGF5ZXJQcml2YXRlOjpuYXR1cmFsU2l6ZSgpIGNvbnN0CiAKIGJvb2wgTWVkaWFQbGF5
ZXJQcml2YXRlOjpoYXNWaWRlbygpIGNvbnN0CiB7Ci0gICAgcmV0dXJuIG1fcGxhdGZvcm1QbGF5
ZXItPmhhc1ZpZGVvKCk7CisgICAgaWYgKG1fcGxhdGZvcm1QbGF5ZXIpCisgICAgICAgIHJldHVy
biBtX3BsYXRmb3JtUGxheWVyLT5oYXNWaWRlbygpOworICAgIHJldHVybiBmYWxzZTsKIH0KIAog
Ym9vbCBNZWRpYVBsYXllclByaXZhdGU6Omhhc0F1ZGlvKCkgY29uc3QKIHsKLSAgICByZXR1cm4g
bV9wbGF0Zm9ybVBsYXllci0+aGFzQXVkaW8oKTsKKyAgICBpZiAobV9wbGF0Zm9ybVBsYXllcikK
KyAgICAgICAgcmV0dXJuIG1fcGxhdGZvcm1QbGF5ZXItPmhhc0F1ZGlvKCk7CisgICAgcmV0dXJu
IGZhbHNlOwogfQogCiB2b2lkIE1lZGlhUGxheWVyUHJpdmF0ZTo6c2V0VmlzaWJsZShib29sKQpA
QCAtMjI0LDcgKzIzOSw5IEBAIHZvaWQgTWVkaWFQbGF5ZXJQcml2YXRlOjpzZXRWaXNpYmxlKGJv
b2wpCiAKIGZsb2F0IE1lZGlhUGxheWVyUHJpdmF0ZTo6ZHVyYXRpb24oKSBjb25zdAogewotICAg
IHJldHVybiBtX3BsYXRmb3JtUGxheWVyLT5kdXJhdGlvbigpOworICAgIGlmIChtX3BsYXRmb3Jt
UGxheWVyKQorICAgICAgICByZXR1cm4gbV9wbGF0Zm9ybVBsYXllci0+ZHVyYXRpb24oKTsKKyAg
ICByZXR1cm4gMC4wZjsKIH0KIAogc3RhdGljIGNvbnN0IGRvdWJsZSBTZWVrU3VibWlzc2lvbkRl
bGF5ID0gMC4xOyAvLyBSZWFzb25hYmxlIHRocm90dGxpbmcgdmFsdWUuCkBAIC0yMzIsNiArMjQ5
LDkgQEAgc3RhdGljIGNvbnN0IGRvdWJsZSBTaG9ydE1lZGlhVGhyZXNob2xkID0gU2Vla1N1Ym1p
c3Npb25EZWxheSAqIDIuMDsKIAogZmxvYXQgTWVkaWFQbGF5ZXJQcml2YXRlOjpjdXJyZW50VGlt
ZSgpIGNvbnN0CiB7CisgICAgaWYgKCFtX3BsYXRmb3JtUGxheWVyKQorICAgICAgICByZXR1cm4g
MC4wZjsKKwogICAgIC8vIEZvciB2ZXJ5IHNob3J0IG1lZGlhIG9uIHRoZSBvcmRlciBvZiBTZWVr
U3VibWlzc2lvbkRlbGF5IHdlIGdldAogICAgIC8vIHVud2FudGVkIHJlcGVhdHMgaWYgd2UgZG9u
J3QgcmV0dXJuIHRoZSBtb3N0IHVwLXRvLWRhdGUgY3VycmVudFRpbWUoKS4KICAgICBib29sIHNo
b3J0TWVkaWEgPSBtX3BsYXRmb3JtUGxheWVyLT5kdXJhdGlvbigpIDwgU2hvcnRNZWRpYVRocmVz
aG9sZDsKQEAgLTI0MCw2ICsyNjAsOSBAQCBmbG9hdCBNZWRpYVBsYXllclByaXZhdGU6OmN1cnJl
bnRUaW1lKCkgY29uc3QKIAogdm9pZCBNZWRpYVBsYXllclByaXZhdGU6OnNlZWsoZmxvYXQgdGlt
ZSkKIHsKKyAgICBpZiAoIW1fcGxhdGZvcm1QbGF5ZXIpCisgICAgICAgIHJldHVybjsKKwogICAg
IG1fbGFzdFNlZWtUaW1lID0gdGltZTsKICAgICBtX2xhc3RTZWVrVGltZVBlbmRpbmcgPSB0cnVl
OwogICAgIGlmICghbV91c2VyRHJpdmVuU2Vla1RpbWVyLmlzQWN0aXZlKCkpCkBAIC0yNjIsMTcg
KzI4NSwyMSBAQCBib29sIE1lZGlhUGxheWVyUHJpdmF0ZTo6c2Vla2luZygpIGNvbnN0CiAKIHZv
aWQgTWVkaWFQbGF5ZXJQcml2YXRlOjpzZXRSYXRlKGZsb2F0IHJhdGUpCiB7Ci0gICAgbV9wbGF0
Zm9ybVBsYXllci0+c2V0UmF0ZShyYXRlKTsKKyAgICBpZiAobV9wbGF0Zm9ybVBsYXllcikKKyAg
ICAgICAgbV9wbGF0Zm9ybVBsYXllci0+c2V0UmF0ZShyYXRlKTsKIH0KIAogYm9vbCBNZWRpYVBs
YXllclByaXZhdGU6OnBhdXNlZCgpIGNvbnN0CiB7Ci0gICAgcmV0dXJuIG1fcGxhdGZvcm1QbGF5
ZXItPnBhdXNlZCgpOworICAgIGlmIChtX3BsYXRmb3JtUGxheWVyKQorICAgICAgICByZXR1cm4g
bV9wbGF0Zm9ybVBsYXllci0+cGF1c2VkKCk7CisgICAgcmV0dXJuIGZhbHNlOwogfQogCiB2b2lk
IE1lZGlhUGxheWVyUHJpdmF0ZTo6c2V0Vm9sdW1lKGZsb2F0IHZvbHVtZSkKIHsKLSAgICBtX3Bs
YXRmb3JtUGxheWVyLT5zZXRWb2x1bWUodm9sdW1lKTsKKyAgICBpZiAobV9wbGF0Zm9ybVBsYXll
cikKKyAgICAgICAgbV9wbGF0Zm9ybVBsYXllci0+c2V0Vm9sdW1lKHZvbHVtZSk7CiB9CiAKIE1l
ZGlhUGxheWVyOjpOZXR3b3JrU3RhdGUgTWVkaWFQbGF5ZXJQcml2YXRlOjpuZXR3b3JrU3RhdGUo
KSBjb25zdApAQCAtMjg3LDExICszMTQsMTYgQEAgTWVkaWFQbGF5ZXI6OlJlYWR5U3RhdGUgTWVk
aWFQbGF5ZXJQcml2YXRlOjpyZWFkeVN0YXRlKCkgY29uc3QKIAogZmxvYXQgTWVkaWFQbGF5ZXJQ
cml2YXRlOjptYXhUaW1lU2Vla2FibGUoKSBjb25zdAogewotICAgIHJldHVybiBtX3BsYXRmb3Jt
UGxheWVyLT5tYXhUaW1lU2Vla2FibGUoKTsKKyAgICBpZiAobV9wbGF0Zm9ybVBsYXllcikKKyAg
ICAgICAgcmV0dXJuIG1fcGxhdGZvcm1QbGF5ZXItPm1heFRpbWVTZWVrYWJsZSgpOworICAgIHJl
dHVybiAwLjBmOwogfQogCiBQYXNzUmVmUHRyPFRpbWVSYW5nZXM+IE1lZGlhUGxheWVyUHJpdmF0
ZTo6YnVmZmVyZWQoKSBjb25zdAogeworICAgIGlmICghbV9wbGF0Zm9ybVBsYXllcikKKyAgICAg
ICAgcmV0dXJuIFRpbWVSYW5nZXM6OmNyZWF0ZSgpOworCiAgICAgUmVmUHRyPFRpbWVSYW5nZXM+
IHRpbWVSYW5nZXMgPSBUaW1lUmFuZ2VzOjpjcmVhdGUoKTsKICAgICBpZiAoZmxvYXQgYnVmZmVy
TG9hZGVkID0gbV9wbGF0Zm9ybVBsYXllci0+YnVmZmVyTG9hZGVkKCkpCiAgICAgICAgIHRpbWVS
YW5nZXMtPmFkZCgwLCBidWZmZXJMb2FkZWQpOwpAQCAtMzExLDYgKzM0Myw5IEBAIHZvaWQgTWVk
aWFQbGF5ZXJQcml2YXRlOjpzZXRTaXplKGNvbnN0IEludFNpemUmKQogCiB2b2lkIE1lZGlhUGxh
eWVyUHJpdmF0ZTo6cGFpbnQoR3JhcGhpY3NDb250ZXh0KiBjb250ZXh0LCBjb25zdCBJbnRSZWN0
JiByZWN0KQogeworICAgIGlmICghbV9wbGF0Zm9ybVBsYXllcikKKyAgICAgICAgcmV0dXJuOwor
CiAjaWYgVVNFKEFDQ0VMRVJBVEVEX0NPTVBPU0lUSU5HKQogICAgIC8vIE9ubHkgcHJvY2VzcyBw
YWludCBjYWxscyBjb21pbmcgdmlhIHRoZSBhY2NlbGVyYXRlZCBjb21wb3NpdGluZyBjb2RlCiAg
ICAgLy8gcGF0aCwgd2hlcmUgd2UgZ2V0IGNhbGxlZCB3aXRoIGEgbnVsbCBncmFwaGljcyBjb250
ZXh0LiBTZWUKQEAgLTMzNSw3ICszNzAsOSBAQCB2b2lkIE1lZGlhUGxheWVyUHJpdmF0ZTo6cGFp
bnQoR3JhcGhpY3NDb250ZXh0KiBjb250ZXh0LCBjb25zdCBJbnRSZWN0JiByZWN0KQogCiBib29s
IE1lZGlhUGxheWVyUHJpdmF0ZTo6aGFzQXZhaWxhYmxlVmlkZW9GcmFtZSgpIGNvbnN0CiB7Ci0g
ICAgcmV0dXJuIG1fcGxhdGZvcm1QbGF5ZXItPmhhc0F2YWlsYWJsZVZpZGVvRnJhbWUoKTsKKyAg
ICBpZiAobV9wbGF0Zm9ybVBsYXllcikKKyAgICAgICAgcmV0dXJuIG1fcGxhdGZvcm1QbGF5ZXIt
Pmhhc0F2YWlsYWJsZVZpZGVvRnJhbWUoKTsKKyAgICByZXR1cm4gZmFsc2U7CiB9CiAKIGJvb2wg
TWVkaWFQbGF5ZXJQcml2YXRlOjpoYXNTaW5nbGVTZWN1cml0eU9yaWdpbigpIGNvbnN0CkBAIC0z
NDUsNyArMzgyLDkgQEAgYm9vbCBNZWRpYVBsYXllclByaXZhdGU6Omhhc1NpbmdsZVNlY3VyaXR5
T3JpZ2luKCkgY29uc3QKIAogTWVkaWFQbGF5ZXI6Ok1vdmllTG9hZFR5cGUgTWVkaWFQbGF5ZXJQ
cml2YXRlOjptb3ZpZUxvYWRUeXBlKCkgY29uc3QKIHsKLSAgICByZXR1cm4gc3RhdGljX2Nhc3Q8
TWVkaWFQbGF5ZXI6Ok1vdmllTG9hZFR5cGU+KG1fcGxhdGZvcm1QbGF5ZXItPm1vdmllTG9hZFR5
cGUoKSk7CisgICAgaWYgKG1fcGxhdGZvcm1QbGF5ZXIpCisgICAgICAgIHJldHVybiBzdGF0aWNf
Y2FzdDxNZWRpYVBsYXllcjo6TW92aWVMb2FkVHlwZT4obV9wbGF0Zm9ybVBsYXllci0+bW92aWVM
b2FkVHlwZSgpKTsKKyAgICByZXR1cm4gTWVkaWFQbGF5ZXI6OlVua25vd247CiB9CiAKIHZvaWQg
TWVkaWFQbGF5ZXJQcml2YXRlOjpyZXNpemVTb3VyY2VEaW1lbnNpb25zKCkKQEAgLTQ1NCw3ICs0
OTMsOCBAQCB1bnNpZ25lZCBNZWRpYVBsYXllclByaXZhdGU6OnNvdXJjZUhlaWdodCgpCiAKIHZv
aWQgTWVkaWFQbGF5ZXJQcml2YXRlOjpzZXRBbGxvd1BQU1ZvbHVtZVVwZGF0ZXMoYm9vbCBhbGxv
dykKIHsKLSAgICByZXR1cm4gbV9wbGF0Zm9ybVBsYXllci0+c2V0QWxsb3dQUFNWb2x1bWVVcGRh
dGVzKGFsbG93KTsKKyAgICBpZiAobV9wbGF0Zm9ybVBsYXllcikKKyAgICAgICAgcmV0dXJuIG1f
cGxhdGZvcm1QbGF5ZXItPnNldEFsbG93UFBTVm9sdW1lVXBkYXRlcyhhbGxvdyk7CiB9CiAKIHZv
aWQgTWVkaWFQbGF5ZXJQcml2YXRlOjp1cGRhdGVTdGF0ZXMoKQpAQCAtNDYyLDM2ICs1MDIsMzYg
QEAgdm9pZCBNZWRpYVBsYXllclByaXZhdGU6OnVwZGF0ZVN0YXRlcygpCiAgICAgTWVkaWFQbGF5
ZXI6Ok5ldHdvcmtTdGF0ZSBvbGROZXR3b3JrU3RhdGUgPSBtX25ldHdvcmtTdGF0ZTsKICAgICBN
ZWRpYVBsYXllcjo6UmVhZHlTdGF0ZSBvbGRSZWFkeVN0YXRlID0gbV9yZWFkeVN0YXRlOwogCi0g
ICAgTU1SUGxheWVyOjpFcnJvciBjdXJyZW50RXJyb3IgPSBtX3BsYXRmb3JtUGxheWVyLT5lcnJv
cigpOworICAgIFBsYXRmb3JtUGxheWVyOjpFcnJvciBjdXJyZW50RXJyb3IgPSBtX3BsYXRmb3Jt
UGxheWVyLT5lcnJvcigpOwogCiAgICAgSFRNTE1lZGlhRWxlbWVudCogZWxlbWVudCA9IHN0YXRp
Y19jYXN0PEhUTUxNZWRpYUVsZW1lbnQqPihtX3dlYkNvcmVQbGF5ZXItPm1lZGlhUGxheWVyQ2xp
ZW50KCkpOwogCi0gICAgaWYgKGN1cnJlbnRFcnJvciAhPSBNTVJQbGF5ZXI6Ok1lZGlhT0spIHsK
KyAgICBpZiAoY3VycmVudEVycm9yICE9IFBsYXRmb3JtUGxheWVyOjpNZWRpYU9LKSB7CiAgICAg
ICAgIG1fcmVhZHlTdGF0ZSA9IE1lZGlhUGxheWVyOjpIYXZlTm90aGluZzsKLSAgICAgICAgaWYg
KGN1cnJlbnRFcnJvciA9PSBNTVJQbGF5ZXI6Ok1lZGlhRGVjb2RlRXJyb3IpCisgICAgICAgIGlm
IChjdXJyZW50RXJyb3IgPT0gUGxhdGZvcm1QbGF5ZXI6Ok1lZGlhRGVjb2RlRXJyb3IpCiAgICAg
ICAgICAgICBtX25ldHdvcmtTdGF0ZSA9IE1lZGlhUGxheWVyOjpEZWNvZGVFcnJvcjsKLSAgICAg
ICAgZWxzZSBpZiAoY3VycmVudEVycm9yID09IE1NUlBsYXllcjo6TWVkaWFNZXRhRGF0YUVycm9y
Ci0gICAgICAgICAgICB8fCBjdXJyZW50RXJyb3IgPT0gTU1SUGxheWVyOjpNZWRpYUF1ZGlvUmVj
ZWl2ZUVycm9yCi0gICAgICAgICAgICB8fCBjdXJyZW50RXJyb3IgPT0gTU1SUGxheWVyOjpNZWRp
YVZpZGVvUmVjZWl2ZUVycm9yKQorICAgICAgICBlbHNlIGlmIChjdXJyZW50RXJyb3IgPT0gUGxh
dGZvcm1QbGF5ZXI6Ok1lZGlhTWV0YURhdGFFcnJvcgorICAgICAgICAgICAgfHwgY3VycmVudEVy
cm9yID09IFBsYXRmb3JtUGxheWVyOjpNZWRpYUF1ZGlvUmVjZWl2ZUVycm9yCisgICAgICAgICAg
ICB8fCBjdXJyZW50RXJyb3IgPT0gUGxhdGZvcm1QbGF5ZXI6Ok1lZGlhVmlkZW9SZWNlaXZlRXJy
b3IpCiAgICAgICAgICAgICBtX25ldHdvcmtTdGF0ZSA9IE1lZGlhUGxheWVyOjpOZXR3b3JrRXJy
b3I7CiAgICAgfSBlbHNlIHsKICAgICAgICAgc3dpdGNoIChtX3BsYXRmb3JtUGxheWVyLT5tZWRp
YVN0YXRlKCkpIHsKLSAgICAgICAgY2FzZSBNTVJQbGF5ZXI6Ok1NUlBsYXlTdGF0ZUlkbGU6Cisg
ICAgICAgIGNhc2UgUGxhdGZvcm1QbGF5ZXI6Ok1NUlBsYXlTdGF0ZUlkbGU6CiAgICAgICAgICAg
ICBtX25ldHdvcmtTdGF0ZSA9IE1lZGlhUGxheWVyOjpJZGxlOwogICAgICAgICAgICAgYnJlYWs7
Ci0gICAgICAgIGNhc2UgTU1SUGxheWVyOjpNTVJQbGF5U3RhdGVQbGF5aW5nOgorICAgICAgICBj
YXNlIFBsYXRmb3JtUGxheWVyOjpNTVJQbGF5U3RhdGVQbGF5aW5nOgogICAgICAgICAgICAgbV9u
ZXR3b3JrU3RhdGUgPSBNZWRpYVBsYXllcjo6TG9hZGluZzsKICAgICAgICAgICAgIGJyZWFrOwot
ICAgICAgICBjYXNlIE1NUlBsYXllcjo6TU1SUGxheVN0YXRlU3RvcHBlZDoKKyAgICAgICAgY2Fz
ZSBQbGF0Zm9ybVBsYXllcjo6TU1SUGxheVN0YXRlU3RvcHBlZDoKICAgICAgICAgICAgIG1fbmV0
d29ya1N0YXRlID0gTWVkaWFQbGF5ZXI6OklkbGU7CiAgICAgICAgICAgICBicmVhazsKLSAgICAg
ICAgY2FzZSBNTVJQbGF5ZXI6Ok1NUlBsYXlTdGF0ZVVua25vd246CisgICAgICAgIGNhc2UgUGxh
dGZvcm1QbGF5ZXI6Ok1NUlBsYXlTdGF0ZVVua25vd246CiAgICAgICAgIGRlZmF1bHQ6CiAgICAg
ICAgICAgICBicmVhazsKICAgICAgICAgfQogCiAgICAgICAgIHN3aXRjaCAobV9wbGF0Zm9ybVBs
YXllci0+c3RhdGUoKSkgewotICAgICAgICBjYXNlIE1NUlBsYXllcjo6TVBfU1RBVEVfSURMRToK
KyAgICAgICAgY2FzZSBQbGF0Zm9ybVBsYXllcjo6TVBfU1RBVEVfSURMRToKICNpZiBVU0UoQUND
RUxFUkFURURfQ09NUE9TSVRJTkcpCiAgICAgICAgICAgICBzZXRCdWZmZXJpbmcoZmFsc2UpOwog
ICAgICAgICAgICAgbV9tZWRpYUlzQnVmZmVyaW5nID0gZmFsc2U7CkBAIC01MDQsNyArNTQ0LDcg
QEAgdm9pZCBNZWRpYVBsYXllclByaXZhdGU6OnVwZGF0ZVN0YXRlcygpCiAgICAgICAgICAgICBp
ZiAoaXNGdWxsc2NyZWVuKCkpCiAgICAgICAgICAgICAgICAgZWxlbWVudC0+ZXhpdEZ1bGxzY3Jl
ZW4oKTsKICAgICAgICAgICAgIGJyZWFrOwotICAgICAgICBjYXNlIE1NUlBsYXllcjo6TVBfU1RB
VEVfQUNUSVZFOgorICAgICAgICBjYXNlIFBsYXRmb3JtUGxheWVyOjpNUF9TVEFURV9BQ1RJVkU6
CiAjaWYgVVNFKEFDQ0VMRVJBVEVEX0NPTVBPU0lUSU5HKQogICAgICAgICAgICAgbV9zaG93QnVm
ZmVyaW5nSW1hZ2UgPSBmYWxzZTsKICAgICAgICAgICAgIG1fbWVkaWFJc0J1ZmZlcmluZyA9IGZh
bHNlOwpAQCAtNTEzLDcgKzU1Myw3IEBAIHZvaWQgTWVkaWFQbGF5ZXJQcml2YXRlOjp1cGRhdGVT
dGF0ZXMoKQogICAgICAgICAgICAgICAgIG1fcGxhdGZvcm1MYXllciA9IFZpZGVvTGF5ZXJXZWJL
aXRUaHJlYWQ6OmNyZWF0ZShtX3dlYkNvcmVQbGF5ZXIpOwogI2VuZGlmCiAgICAgICAgICAgICBi
cmVhazsKLSAgICAgICAgY2FzZSBNTVJQbGF5ZXI6Ok1QX1NUQVRFX1VOU1VQUE9SVEVEOgorICAg
ICAgICBjYXNlIFBsYXRmb3JtUGxheWVyOjpNUF9TVEFURV9VTlNVUFBPUlRFRDoKICAgICAgICAg
ICAgIGJyZWFrOwogICAgICAgICBkZWZhdWx0OgogICAgICAgICAgICAgYnJlYWs7CkBAIC01Mjks
MTggKzU2OSwxOCBAQCB2b2lkIE1lZGlhUGxheWVyUHJpdmF0ZTo6dXBkYXRlU3RhdGVzKCkKICAg
ICAgICAgbV93ZWJDb3JlUGxheWVyLT5uZXR3b3JrU3RhdGVDaGFuZ2VkKCk7CiB9CiAKLS8vIElN
TVJQbGF5ZXJMaXN0ZW5lciBjYWxsYmFja3MgaW1wbGVtZW50YXRpb24KLXZvaWQgTWVkaWFQbGF5
ZXJQcml2YXRlOjpvblN0YXRlQ2hhbmdlZChNTVJQbGF5ZXI6Ok1wU3RhdGUpCisvLyBJUGxhdGZv
cm1QbGF5ZXJMaXN0ZW5lciBjYWxsYmFja3MgaW1wbGVtZW50YXRpb24KK3ZvaWQgTWVkaWFQbGF5
ZXJQcml2YXRlOjpvblN0YXRlQ2hhbmdlZChQbGF0Zm9ybVBsYXllcjo6TXBTdGF0ZSkKIHsKICAg
ICB1cGRhdGVTdGF0ZXMoKTsKIH0KIAotdm9pZCBNZWRpYVBsYXllclByaXZhdGU6Om9uTWVkaWFT
dGF0dXNDaGFuZ2VkKE1NUlBsYXllcjo6TU1SUGxheVN0YXRlKQordm9pZCBNZWRpYVBsYXllclBy
aXZhdGU6Om9uTWVkaWFTdGF0dXNDaGFuZ2VkKFBsYXRmb3JtUGxheWVyOjpNTVJQbGF5U3RhdGUp
CiB7CiAgICAgdXBkYXRlU3RhdGVzKCk7CiB9CiAKLXZvaWQgTWVkaWFQbGF5ZXJQcml2YXRlOjpv
bkVycm9yKE1NUlBsYXllcjo6RXJyb3IgdHlwZSkKK3ZvaWQgTWVkaWFQbGF5ZXJQcml2YXRlOjpv
bkVycm9yKFBsYXRmb3JtUGxheWVyOjpFcnJvciB0eXBlKQogewogICAgIHVwZGF0ZVN0YXRlcygp
OwogfQpAQCAtNjQwLDcgKzY4MCw3IEBAIHZvaWQgTWVkaWFQbGF5ZXJQcml2YXRlOjp3YWl0TWV0
YWRhdGFUaW1lckZpcmVkKFRpbWVyPE1lZGlhUGxheWVyUHJpdmF0ZT4qKQogICAgIH0KICAgICBt
X3dhaXRNZXRhZGF0YVBvcERpYWxvZ0NvdW50ZXIgPSAwOwogCi0gICAgaW50IHdhaXQgPSBzaG93
RXJyb3JEaWFsb2coTU1SUGxheWVyOjpNZWRpYU1ldGFEYXRhVGltZW91dEVycm9yKTsKKyAgICBp
bnQgd2FpdCA9IHNob3dFcnJvckRpYWxvZyhQbGF0Zm9ybVBsYXllcjo6TWVkaWFNZXRhRGF0YVRp
bWVvdXRFcnJvcik7CiAgICAgaWYgKCF3YWl0KQogICAgICAgICBvblBhdXNlTm90aWZpZWQoKTsK
ICAgICBlbHNlIHsKQEAgLTcwMiwzNCArNzQyLDM0IEBAIHZvaWQgTWVkaWFQbGF5ZXJQcml2YXRl
OjpvbkF1dGhlbnRpY2F0aW9uQWNjZXB0ZWQoY29uc3QgTU1SQXV0aENoYWxsZW5nZSYgYXV0aENo
CiAgICAgICAgIENyZWRlbnRpYWxTdG9yYWdlOjpzZXQoQ3JlZGVudGlhbChhdXRoQ2hhbGxlbmdl
LnVzZXJuYW1lKCkuY19zdHIoKSwgYXV0aENoYWxsZW5nZS5wYXNzd29yZCgpLmNfc3RyKCksIHN0
YXRpY19jYXN0PENyZWRlbnRpYWxQZXJzaXN0ZW5jZT4oYXV0aENoYWxsZW5nZS5wZXJzaXN0ZW5j
ZSgpKSksIHByb3RlY3Rpb25TcGFjZSwgdXJsKTsKIH0KIAotaW50IE1lZGlhUGxheWVyUHJpdmF0
ZTo6c2hvd0Vycm9yRGlhbG9nKE1NUlBsYXllcjo6RXJyb3IgdHlwZSkKK2ludCBNZWRpYVBsYXll
clByaXZhdGU6OnNob3dFcnJvckRpYWxvZyhQbGF0Zm9ybVBsYXllcjo6RXJyb3IgdHlwZSkKIHsK
ICAgICB1c2luZyBuYW1lc3BhY2UgQmxhY2tCZXJyeTo6V2ViS2l0OwogCiAgICAgV2ViUGFnZUNs
aWVudDo6QWxlcnRUeXBlIGF0eXBlOwogICAgIHN3aXRjaCAodHlwZSkgewotICAgIGNhc2UgTU1S
UGxheWVyOjpNZWRpYU9LOgorICAgIGNhc2UgUGxhdGZvcm1QbGF5ZXI6Ok1lZGlhT0s6CiAgICAg
ICAgIGF0eXBlID0gV2ViUGFnZUNsaWVudDo6TWVkaWFPSzsKICAgICAgICAgYnJlYWs7Ci0gICAg
Y2FzZSBNTVJQbGF5ZXI6Ok1lZGlhRGVjb2RlRXJyb3I6CisgICAgY2FzZSBQbGF0Zm9ybVBsYXll
cjo6TWVkaWFEZWNvZGVFcnJvcjoKICAgICAgICAgYXR5cGUgPSBXZWJQYWdlQ2xpZW50OjpNZWRp
YURlY29kZUVycm9yOwogICAgICAgICBicmVhazsKLSAgICBjYXNlIE1NUlBsYXllcjo6TWVkaWFN
ZXRhRGF0YUVycm9yOgorICAgIGNhc2UgUGxhdGZvcm1QbGF5ZXI6Ok1lZGlhTWV0YURhdGFFcnJv
cjoKICAgICAgICAgYXR5cGUgPSBXZWJQYWdlQ2xpZW50OjpNZWRpYU1ldGFEYXRhRXJyb3I7CiAg
ICAgICAgIGJyZWFrOwotICAgIGNhc2UgTU1SUGxheWVyOjpNZWRpYU1ldGFEYXRhVGltZW91dEVy
cm9yOgorICAgIGNhc2UgUGxhdGZvcm1QbGF5ZXI6Ok1lZGlhTWV0YURhdGFUaW1lb3V0RXJyb3I6
CiAgICAgICAgIGF0eXBlID0gV2ViUGFnZUNsaWVudDo6TWVkaWFNZXRhRGF0YVRpbWVvdXRFcnJv
cjsKICAgICAgICAgYnJlYWs7Ci0gICAgY2FzZSBNTVJQbGF5ZXI6Ok1lZGlhTm9NZXRhRGF0YUVy
cm9yOgorICAgIGNhc2UgUGxhdGZvcm1QbGF5ZXI6Ok1lZGlhTm9NZXRhRGF0YUVycm9yOgogICAg
ICAgICBhdHlwZSA9IFdlYlBhZ2VDbGllbnQ6Ok1lZGlhTm9NZXRhRGF0YUVycm9yOwogICAgICAg
ICBicmVhazsKLSAgICBjYXNlIE1NUlBsYXllcjo6TWVkaWFWaWRlb1JlY2VpdmVFcnJvcjoKKyAg
ICBjYXNlIFBsYXRmb3JtUGxheWVyOjpNZWRpYVZpZGVvUmVjZWl2ZUVycm9yOgogICAgICAgICBh
dHlwZSA9IFdlYlBhZ2VDbGllbnQ6Ok1lZGlhVmlkZW9SZWNlaXZlRXJyb3I7CiAgICAgICAgIGJy
ZWFrOwotICAgIGNhc2UgTU1SUGxheWVyOjpNZWRpYUF1ZGlvUmVjZWl2ZUVycm9yOgorICAgIGNh
c2UgUGxhdGZvcm1QbGF5ZXI6Ok1lZGlhQXVkaW9SZWNlaXZlRXJyb3I6CiAgICAgICAgIGF0eXBl
ID0gV2ViUGFnZUNsaWVudDo6TWVkaWFBdWRpb1JlY2VpdmVFcnJvcjsKICAgICAgICAgYnJlYWs7
Ci0gICAgY2FzZSBNTVJQbGF5ZXI6Ok1lZGlhSW52YWxpZEVycm9yOgorICAgIGNhc2UgUGxhdGZv
cm1QbGF5ZXI6Ok1lZGlhSW52YWxpZEVycm9yOgogICAgICAgICBhdHlwZSA9IFdlYlBhZ2VDbGll
bnQ6Ok1lZGlhSW52YWxpZEVycm9yOwogICAgICAgICBicmVhazsKICAgICBkZWZhdWx0OgpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYmxhY2tiZXJyeS9NZWRp
YVBsYXllclByaXZhdGVCbGFja0JlcnJ5LmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFw
aGljcy9ibGFja2JlcnJ5L01lZGlhUGxheWVyUHJpdmF0ZUJsYWNrQmVycnkuaAppbmRleCAwYTA2
MmU1MDg5YmMwMWUwNjQ2NDY0NDM2ZjczOGE1ZDY2NDQ5MTkyLi42M2JmZGQ0ODExMzYxN2JhZDNm
ZjYwNGNlZDNkNGVhNDFjYzNjMDkzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9ncmFwaGljcy9ibGFja2JlcnJ5L01lZGlhUGxheWVyUHJpdmF0ZUJsYWNrQmVycnkuaAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9ibGFja2JlcnJ5L01lZGlhUGxheWVy
UHJpdmF0ZUJsYWNrQmVycnkuaApAQCAtMjIsNyArMjIsNyBAQAogI2lmIEVOQUJMRShWSURFTykK
ICNpbmNsdWRlICJNZWRpYVBsYXllclByaXZhdGUuaCIKIAotI2luY2x1ZGUgPEJsYWNrQmVycnlQ
bGF0Zm9ybU1NUlBsYXllci5oPgorI2luY2x1ZGUgPEJsYWNrQmVycnlQbGF0Zm9ybVBsYXllci5o
PgogCiBuYW1lc3BhY2UgQmxhY2tCZXJyeSB7CiBuYW1lc3BhY2UgV2ViS2l0IHsKQEAgLTMyLDcg
KzMyLDcgQEAgY2xhc3MgV2ViUGFnZUNsaWVudDsKIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCi1j
bGFzcyBNZWRpYVBsYXllclByaXZhdGUgOiBwdWJsaWMgTWVkaWFQbGF5ZXJQcml2YXRlSW50ZXJm
YWNlLCBwdWJsaWMgQmxhY2tCZXJyeTo6UGxhdGZvcm06OklNTVJQbGF5ZXJMaXN0ZW5lciB7Citj
bGFzcyBNZWRpYVBsYXllclByaXZhdGUgOiBwdWJsaWMgTWVkaWFQbGF5ZXJQcml2YXRlSW50ZXJm
YWNlLCBwdWJsaWMgQmxhY2tCZXJyeTo6UGxhdGZvcm06OklQbGF0Zm9ybVBsYXllckxpc3RlbmVy
IHsKIHB1YmxpYzoKICAgICB2aXJ0dWFsIH5NZWRpYVBsYXllclByaXZhdGUoKTsKIApAQCAtMTEz
LDEwICsxMTMsMTAgQEAgcHVibGljOgogICAgIHVuc2lnbmVkIHNvdXJjZUhlaWdodCgpOwogICAg
IHZvaWQgc2V0QWxsb3dQUFNWb2x1bWVVcGRhdGVzKGJvb2wpOwogCi0gICAgLy8gSU1NUlBsYXll
ckxpc3RlbmVyIGltcGxlbWVudGF0aW9uLgotICAgIHZpcnR1YWwgdm9pZCBvblN0YXRlQ2hhbmdl
ZChCbGFja0JlcnJ5OjpQbGF0Zm9ybTo6TU1SUGxheWVyOjpNcFN0YXRlKTsKLSAgICB2aXJ0dWFs
IHZvaWQgb25NZWRpYVN0YXR1c0NoYW5nZWQoQmxhY2tCZXJyeTo6UGxhdGZvcm06Ok1NUlBsYXll
cjo6TU1SUGxheVN0YXRlKTsKLSAgICB2aXJ0dWFsIHZvaWQgb25FcnJvcihCbGFja0JlcnJ5OjpQ
bGF0Zm9ybTo6TU1SUGxheWVyOjpFcnJvcik7CisgICAgLy8gSVBsYXRmb3JtUGxheWVyTGlzdGVu
ZXIgaW1wbGVtZW50YXRpb24uCisgICAgdmlydHVhbCB2b2lkIG9uU3RhdGVDaGFuZ2VkKEJsYWNr
QmVycnk6OlBsYXRmb3JtOjpQbGF0Zm9ybVBsYXllcjo6TXBTdGF0ZSk7CisgICAgdmlydHVhbCB2
b2lkIG9uTWVkaWFTdGF0dXNDaGFuZ2VkKEJsYWNrQmVycnk6OlBsYXRmb3JtOjpQbGF0Zm9ybVBs
YXllcjo6TU1SUGxheVN0YXRlKTsKKyAgICB2aXJ0dWFsIHZvaWQgb25FcnJvcihCbGFja0JlcnJ5
OjpQbGF0Zm9ybTo6UGxhdGZvcm1QbGF5ZXI6OkVycm9yKTsKICAgICB2aXJ0dWFsIHZvaWQgb25E
dXJhdGlvbkNoYW5nZWQoZmxvYXQpOwogICAgIHZpcnR1YWwgdm9pZCBvblRpbWVDaGFuZ2VkKGZs
b2F0KTsKICAgICB2aXJ0dWFsIHZvaWQgb25SYXRlQ2hhbmdlZChmbG9hdCk7CkBAIC0xMzYsNyAr
MTM2LDcgQEAgcHVibGljOgogICAgIHZpcnR1YWwgYm9vbCBpc0Z1bGxzY3JlZW4oKSBjb25zdDsK
ICAgICB2aXJ0dWFsIGJvb2wgaXNFbGVtZW50UGF1c2VkKCkgY29uc3Q7CiAgICAgdmlydHVhbCBi
b29sIGlzVGFiVmlzaWJsZSgpIGNvbnN0OwotICAgIHZpcnR1YWwgaW50IHNob3dFcnJvckRpYWxv
ZyhCbGFja0JlcnJ5OjpQbGF0Zm9ybTo6TU1SUGxheWVyOjpFcnJvcik7CisgICAgdmlydHVhbCBp
bnQgc2hvd0Vycm9yRGlhbG9nKEJsYWNrQmVycnk6OlBsYXRmb3JtOjpQbGF0Zm9ybVBsYXllcjo6
RXJyb3IpOwogICAgIHZpcnR1YWwgQmxhY2tCZXJyeTo6UGxhdGZvcm06OkdyYXBoaWNzOjpXaW5k
b3cqIHBsYXRmb3JtV2luZG93KCk7CiAKIHByaXZhdGU6CkBAIC0xNDksNyArMTQ5LDcgQEAgcHJp
dmF0ZToKICAgICB2aXJ0dWFsIFN0cmluZyBlbmdpbmVEZXNjcmlwdGlvbigpIGNvbnN0IHsgcmV0
dXJuICJCbGFja0JlcnJ5IjsgfQogCiAgICAgTWVkaWFQbGF5ZXIqIG1fd2ViQ29yZVBsYXllcjsK
LSAgICBCbGFja0JlcnJ5OjpQbGF0Zm9ybTo6TU1SUGxheWVyKiBtX3BsYXRmb3JtUGxheWVyOwor
ICAgIEJsYWNrQmVycnk6OlBsYXRmb3JtOjpQbGF0Zm9ybVBsYXllciogbV9wbGF0Zm9ybVBsYXll
cjsKIAogICAgIG11dGFibGUgTWVkaWFQbGF5ZXI6Ok5ldHdvcmtTdGF0ZSBtX25ldHdvcmtTdGF0
ZTsKICAgICBNZWRpYVBsYXllcjo6UmVhZHlTdGF0ZSBtX3JlYWR5U3RhdGU7Cg==
</data>

          </attachment>
      

    </bug>

</bugzilla>