<?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>93099</bug_id>
          
          <creation_ts>2012-08-03 05:38:41 -0700</creation_ts>
          <short_desc>[BlackBerry] Overlays display checkerboard that doesn&apos;t resolve</short_desc>
          <delta_ts>2012-08-03 08:19:38 -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>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="Arvid Nilsson">anilsson</reporter>
          <assigned_to name="Arvid Nilsson">anilsson</assigned_to>
          <cc>anilsson</cc>
    
    <cc>manyoso</cc>
    
    <cc>mifenton</cc>
    
    <cc>rwlbuis</cc>
    
    <cc>staikos</cc>
    
    <cc>tonikitoo</cc>
    
    <cc>webkit.review.bot</cc>
    
    <cc>yong.li.webkit</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>686600</commentid>
    <comment_count>0</comment_count>
    <who name="Arvid Nilsson">anilsson</who>
    <bug_when>2012-08-03 05:38:41 -0700</bug_when>
    <thetext>The WebKit-thread overlays, like tap highlight, inspector highlight and selection are all part of a separate graphics layer tree rooted in WebPagePrivate::m_overlayLayer.

When LayerRenderer needs to schedule a commit to reactively render tiles and resolve checkerboard, it does so through the root layer. Since the overlay layer root didn&apos;t have a GraphicsLayerClient, there was no implementation of GraphicsLayerClient::notifySyncRequired() to call, and a commit was never scheduled, thus checkerboard never resolved.

Fixed by adding a fallback implementation of GraphicsLayerClient in WebPagePrivate and hooking up the overlay root to it. Also, this implementation can be shared by the various overlays to avoide code duplication, specifically to implement notifySyncRequired(), showDebugBorders(), showRepaintCounter() only once.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>686605</commentid>
    <comment_count>1</comment_count>
    <who name="Arvid Nilsson">anilsson</who>
    <bug_when>2012-08-03 05:43:04 -0700</bug_when>
    <thetext>In addition, I found a bug where WebPagePrivate::updateDelegatedOverlays() was called right in the middle of the commit operation, after performing the webkit thread part of the commit operation but before we continued on the compositing thread. Since updateDelegatedOverlays() typically mutates layers, this is bad (layers should not be mutated mid-commit) and also caused each commit to schedule a new one which results in an endless sequence of commits.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>686612</commentid>
    <comment_count>2</comment_count>
      <attachid>156340</attachid>
    <who name="Arvid Nilsson">anilsson</who>
    <bug_when>2012-08-03 05:54:52 -0700</bug_when>
    <thetext>Created attachment 156340
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>686685</commentid>
    <comment_count>3</comment_count>
      <attachid>156340</attachid>
    <who name="Antonio Gomes">tonikitoo</who>
    <bug_when>2012-08-03 07:12:19 -0700</bug_when>
    <thetext>Comment on attachment 156340
Patch

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

&gt; Source/WebKit/blackberry/Api/WebPage_p.h:395
&gt; +    // Fallback GraphicsLayerClient implementation, used for various overlay layers

nit: lacks a period at the end.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>686692</commentid>
    <comment_count>4</comment_count>
      <attachid>156340</attachid>
    <who name="Antonio Gomes">tonikitoo</who>
    <bug_when>2012-08-03 07:14:12 -0700</bug_when>
    <thetext>Comment on attachment 156340
Patch

err r+</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>686717</commentid>
    <comment_count>5</comment_count>
      <attachid>156374</attachid>
    <who name="Arvid Nilsson">anilsson</who>
    <bug_when>2012-08-03 07:27:16 -0700</bug_when>
    <thetext>Created attachment 156374
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>686719</commentid>
    <comment_count>6</comment_count>
      <attachid>156374</attachid>
    <who name="Arvid Nilsson">anilsson</who>
    <bug_when>2012-08-03 07:27:49 -0700</bug_when>
    <thetext>Comment on attachment 156374
Patch

Already reviewed by Antonio, just added a dot to a comment.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>686759</commentid>
    <comment_count>7</comment_count>
      <attachid>156374</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-08-03 08:19:34 -0700</bug_when>
    <thetext>Comment on attachment 156374
Patch

Clearing flags on attachment: 156374

Committed r124615: &lt;http://trac.webkit.org/changeset/124615&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>686760</commentid>
    <comment_count>8</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-08-03 08:19:38 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>156340</attachid>
            <date>2012-08-03 05:54:52 -0700</date>
            <delta_ts>2012-08-03 07:27:10 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-93099-20120803145431.patch</filename>
            <type>text/plain</type>
            <size>15016</size>
            <attacher name="Arvid Nilsson">anilsson</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTI0NTUwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2Js
YWNrYmVycnkvQ2hhbmdlTG9nIGIvU291cmNlL1dlYktpdC9ibGFja2JlcnJ5L0NoYW5nZUxvZwpp
bmRleCA2ZTJjODIxMWUxOWUzNjA1MmM4Yjg5ZjBhZTZkNDAzNWMxNzQ5MWU5Li45MWFjMmNiZDBl
NTkwZjZjOTM3ZTBjMTIxNDJlOGJiNjNkNzZjOGE4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0
L2JsYWNrYmVycnkvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJLaXQvYmxhY2tiZXJyeS9DaGFu
Z2VMb2cKQEAgLTEsMyArMSw3NSBAQAorMjAxMi0wOC0wMyAgQXJ2aWQgTmlsc3NvbiAgPGFuaWxz
c29uQHJpbS5jb20+CisKKyAgICAgICAgW0JsYWNrQmVycnldIE92ZXJsYXlzIGRpc3BsYXkgY2hl
Y2tlcmJvYXJkIHRoYXQgZG9lc24ndCByZXNvbHZlCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJr
aXQub3JnL3Nob3dfYnVnLmNnaT9pZD05MzA5OQorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9E
WSAoT09QUyEpLgorCisgICAgICAgIFRoZSBXZWJLaXQtdGhyZWFkIG92ZXJsYXlzLCBsaWtlIHRh
cCBoaWdobGlnaHQsIGluc3BlY3RvciBoaWdobGlnaHQgYW5kCisgICAgICAgIHNlbGVjdGlvbiBh
cmUgYWxsIHBhcnQgb2YgYSBzZXBhcmF0ZSBncmFwaGljcyBsYXllciB0cmVlIHJvb3RlZCBpbgor
ICAgICAgICBXZWJQYWdlUHJpdmF0ZTo6bV9vdmVybGF5TGF5ZXIuCisKKyAgICAgICAgV2hlbiBM
YXllclJlbmRlcmVyIG5lZWRzIHRvIHNjaGVkdWxlIGEgY29tbWl0IHRvIHJlYWN0aXZlbHkgcmVu
ZGVyCisgICAgICAgIHRpbGVzIGFuZCByZXNvbHZlIGNoZWNrZXJib2FyZCwgaXQgZG9lcyBzbyB0
aHJvdWdoIHRoZSByb290IGxheWVyLgorICAgICAgICBTaW5jZSB0aGUgb3ZlcmxheSBsYXllciBy
b290IGRpZG4ndCBoYXZlIGEgR3JhcGhpY3NMYXllckNsaWVudCwgdGhlcmUKKyAgICAgICAgd2Fz
IG5vIGltcGxlbWVudGF0aW9uIG9mIEdyYXBoaWNzTGF5ZXJDbGllbnQ6Om5vdGlmeVN5bmNSZXF1
aXJlZCgpIHRvCisgICAgICAgIGNhbGwsIGFuZCBhIGNvbW1pdCB3YXMgbmV2ZXIgc2NoZWR1bGVk
LCB0aHVzIGNoZWNrZXJib2FyZCBuZXZlcgorICAgICAgICByZXNvbHZlZC4KKworICAgICAgICBG
aXhlZCBieSBhZGRpbmcgYSBmYWxsYmFjayBpbXBsZW1lbnRhdGlvbiBvZiBHcmFwaGljc0xheWVy
Q2xpZW50IGluCisgICAgICAgIFdlYlBhZ2VQcml2YXRlIGFuZCBob29raW5nIHVwIHRoZSBvdmVy
bGF5IHJvb3QgdG8gaXQuIEFsc28sIHRoaXMKKyAgICAgICAgaW1wbGVtZW50YXRpb24gY2FuIGJl
IHNoYXJlZCBieSB0aGUgdmFyaW91cyBvdmVybGF5cyB0byBhdm9pZGUgY29kZQorICAgICAgICBk
dXBsaWNhdGlvbiwgc3BlY2lmaWNhbGx5IHRvIGltcGxlbWVudCBub3RpZnlTeW5jUmVxdWlyZWQo
KSwKKyAgICAgICAgc2hvd0RlYnVnQm9yZGVycygpIGFuZCBzaG93UmVwYWludENvdW50ZXIoKSBv
bmx5IG9uY2UuCisKKyAgICAgICAgRml4aW5nIHRoaXMgcmV2ZWFsZWQgYSBidWcgd2hlcmUgdGhl
IHdlYiBwYWdlIHdvdWxkIGdldCBzdHVjayBpbiBhbgorICAgICAgICBlbmRsZXNzIHNlcXVlbmNl
IG9mIGNvbW1pdHMuIEl0IHR1cm5lZCBvdXQgdGhhdAorICAgICAgICBXZWJQYWdlUHJpdmF0ZTo6
dXBkYXRlRGVsZWdhdGVkT3ZlcmxheXMoKSB3YXMgY2FsbGVkIHJpZ2h0IGluIHRoZQorICAgICAg
ICBtaWRkbGUgb2YgdGhlIGNvbW1pdCBvcGVyYXRpb24sIGFmdGVyIHBlcmZvcm1pbmcgdGhlIHdl
YmtpdCB0aHJlYWQgcGFydAorICAgICAgICBvZiB0aGUgY29tbWl0IG9wZXJhdGlvbiBidXQgYmVm
b3JlIHdlIGNvbnRpbnVlZCBvbiB0aGUgY29tcG9zaXRpbmcKKyAgICAgICAgdGhyZWFkLiBTaW5j
ZSB1cGRhdGVEZWxlZ2F0ZWRPdmVybGF5cygpIHR5cGljYWxseSBtdXRhdGVzIGxheWVycywgdGhp
cworICAgICAgICBpcyB2ZXJ5IGJhZCAobGF5ZXJzIHNob3VsZCBub3QgYmUgbXV0YXRlZCBtaWQt
Y29tbWl0KS4gVGhlIG11dGF0aW9ucworICAgICAgICBhbHNvIGNhdXNlIGEgbmV3IGNvbW1pdCB0
byBzY2hlZHVsZWQgZnJvbSB3aXRoaW4gdGhlIGN1cnJlbnQsIHdoaWNoCisgICAgICAgIHJlc3Vs
dHMgaW4gYW4gZW5kbGVzcyBzZXF1ZW5jZSBvZiBjb21taXRzLgorCisgICAgICAgIEZpeGVkIHRo
aXMgbGF0dGVyIGJ1ZyBieSBtb3ZpbmcgdGhlIHVwZGF0ZURlbGVnYXRlZE92ZXJsYXlzKCkgY2Fs
bCB0bworICAgICAgICB0aGUgYmVnaW5uaW5nIG9mIHRoZSBtZXRob2Qgd2hlcmUgaXQgY2FuIGNh
dXNlIG5vIGhhcm0uIFRoaXMgaXMgYmVmb3JlCisgICAgICAgIHdlIG1hcmsgdGhlIHdlYiBwYWdl
IGFzIG5vIGxvbmdlciBuZWVkaW5nIGNvbW1pdCwgc28gZXZlbiBpZiB0aGUKKyAgICAgICAgaW1w
bGVtZW50YXRpb24gZmxpcHMgdGhlICJuZWVkcyBjb21taXQiIGJpdCwgd2Ugd2lsbCBpbW1lZGlh
dGVseSBmbGlwCisgICAgICAgIGl0IGJhY2sgYW5kIHByb2NlZWQgd2l0aCBjb21taXQgYXMgdXN1
YWwuCisKKyAgICAgICAgUFIgMTg3NDU4LCAxODQzNzcKKworICAgICAgICAqIEFwaS9XZWJQYWdl
LmNwcDoKKyAgICAgICAgKEJsYWNrQmVycnk6OldlYktpdDo6V2ViUGFnZVByaXZhdGU6Om92ZXJs
YXlMYXllcik6CisgICAgICAgIChCbGFja0JlcnJ5OjpXZWJLaXQ6OldlYlBhZ2VQcml2YXRlOjpj
b21taXRSb290TGF5ZXJJZk5lZWRlZCk6CisgICAgICAgIChXZWJLaXQpOgorICAgICAgICAoQmxh
Y2tCZXJyeTo6V2ViS2l0OjpXZWJQYWdlUHJpdmF0ZTo6bm90aWZ5U3luY1JlcXVpcmVkKToKKyAg
ICAgICAgKEJsYWNrQmVycnk6OldlYktpdDo6V2ViUGFnZVByaXZhdGU6OnNob3dEZWJ1Z0JvcmRl
cnMpOgorICAgICAgICAoQmxhY2tCZXJyeTo6V2ViS2l0OjpXZWJQYWdlUHJpdmF0ZTo6c2hvd1Jl
cGFpbnRDb3VudGVyKToKKyAgICAgICAgKiBBcGkvV2ViUGFnZV9wLmg6CisgICAgICAgIChXZWJQ
YWdlUHJpdmF0ZSk6CisgICAgICAgIChCbGFja0JlcnJ5OjpXZWJLaXQ6OldlYlBhZ2VQcml2YXRl
Ojpub3RpZnlBbmltYXRpb25TdGFydGVkKToKKyAgICAgICAgKEJsYWNrQmVycnk6OldlYktpdDo6
V2ViUGFnZVByaXZhdGU6OnBhaW50Q29udGVudHMpOgorICAgICAgICAqIFdlYkNvcmVTdXBwb3J0
L0luc3BlY3Rvck92ZXJsYXkuY3BwOgorICAgICAgICAoV2ViQ29yZTo6SW5zcGVjdG9yT3Zlcmxh
eTo6bm90aWZ5U3luY1JlcXVpcmVkKToKKyAgICAgICAgKFdlYkNvcmU6Okluc3BlY3Rvck92ZXJs
YXk6OnNob3dEZWJ1Z0JvcmRlcnMpOgorICAgICAgICAoV2ViQ29yZTo6SW5zcGVjdG9yT3Zlcmxh
eTo6c2hvd1JlcGFpbnRDb3VudGVyKToKKyAgICAgICAgKiBXZWJLaXRTdXBwb3J0L0RlZmF1bHRU
YXBIaWdobGlnaHQuY3BwOgorICAgICAgICAoQmxhY2tCZXJyeTo6V2ViS2l0OjpEZWZhdWx0VGFw
SGlnaGxpZ2h0Ojpub3RpZnlTeW5jUmVxdWlyZWQpOgorICAgICAgICAoQmxhY2tCZXJyeTo6V2Vi
S2l0OjpEZWZhdWx0VGFwSGlnaGxpZ2h0OjpzaG93RGVidWdCb3JkZXJzKToKKyAgICAgICAgKFdl
YktpdCk6CisgICAgICAgIChCbGFja0JlcnJ5OjpXZWJLaXQ6OkRlZmF1bHRUYXBIaWdobGlnaHQ6
OnNob3dSZXBhaW50Q291bnRlcik6CisgICAgICAgICogV2ViS2l0U3VwcG9ydC9EZWZhdWx0VGFw
SGlnaGxpZ2h0Lmg6CisgICAgICAgIChEZWZhdWx0VGFwSGlnaGxpZ2h0KToKKyAgICAgICAgKiBX
ZWJLaXRTdXBwb3J0L1NlbGVjdGlvbk92ZXJsYXkuY3BwOgorICAgICAgICAoQmxhY2tCZXJyeTo6
V2ViS2l0OjpTZWxlY3Rpb25PdmVybGF5Ojpub3RpZnlTeW5jUmVxdWlyZWQpOgorICAgICAgICAo
QmxhY2tCZXJyeTo6V2ViS2l0OjpTZWxlY3Rpb25PdmVybGF5OjpzaG93RGVidWdCb3JkZXJzKToK
KyAgICAgICAgKFdlYktpdCk6CisgICAgICAgIChCbGFja0JlcnJ5OjpXZWJLaXQ6OlNlbGVjdGlv
bk92ZXJsYXk6OnNob3dSZXBhaW50Q291bnRlcik6CisgICAgICAgICogV2ViS2l0U3VwcG9ydC9T
ZWxlY3Rpb25PdmVybGF5Lmg6CisgICAgICAgIChTZWxlY3Rpb25PdmVybGF5KToKKwogMjAxMi0w
OC0wMiAgQXJ2aWQgTmlsc3NvbiAgPGFuaWxzc29uQHJpbS5jb20+CiAKICAgICAgICAgW0JsYWNr
QmVycnldIEFkZCBkZWZhdWx0IGltcGxlbWVudGF0aW9uIG9mIEdyYXBoaWNzTGF5ZXJDbGllbnQ6
OmNvbnRlbnRzVmlzaWJsZSgpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2JsYWNrYmVycnkv
QXBpL1dlYlBhZ2UuY3BwIGIvU291cmNlL1dlYktpdC9ibGFja2JlcnJ5L0FwaS9XZWJQYWdlLmNw
cAppbmRleCBmNGNkMzcyMDkwOTE4ZTQ4ODhhMDE1M2M1NGQ4ZjA2Yzk4ZjA4ZjViLi5jMDVhNTJi
YTdiMTMyMzc3OWI2YTc3NGU5MTc5MjNjMThlZjI5YTg1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
S2l0L2JsYWNrYmVycnkvQXBpL1dlYlBhZ2UuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvYmxhY2ti
ZXJyeS9BcGkvV2ViUGFnZS5jcHAKQEAgLTU2ODEsMTAgKzU2ODEsOCBAQCBMYXllclJlbmRlcmlu
Z1Jlc3VsdHMgV2ViUGFnZVByaXZhdGU6Omxhc3RDb21wb3NpdGluZ1Jlc3VsdHMoKSBjb25zdAog
CiBHcmFwaGljc0xheWVyKiBXZWJQYWdlUHJpdmF0ZTo6b3ZlcmxheUxheWVyKCkKIHsKLSAgICAv
LyBUaGUgb3ZlcmxheSBsYXllciBoYXMgbm8gR3JhcGhpY3NMYXllckNsaWVudCwgaXQncyBqdXN0
IGEgY29udGFpbmVyCi0gICAgLy8gZm9yIHZhcmlvdXMgb3ZlcmxheXMuCiAgICAgaWYgKCFtX292
ZXJsYXlMYXllcikKLSAgICAgICAgbV9vdmVybGF5TGF5ZXIgPSBHcmFwaGljc0xheWVyOjpjcmVh
dGUoMCk7CisgICAgICAgIG1fb3ZlcmxheUxheWVyID0gR3JhcGhpY3NMYXllcjo6Y3JlYXRlKHRo
aXMpOwogCiAgICAgcmV0dXJuIG1fb3ZlcmxheUxheWVyLmdldCgpOwogfQpAQCAtNTgwMyw2ICs1
ODAxLDEwIEBAIGJvb2wgV2ViUGFnZVByaXZhdGU6OmNvbW1pdFJvb3RMYXllcklmTmVlZGVkKCkK
ICAgICBpZiAoIXZpZXcpCiAgICAgICAgIHJldHVybiBmYWxzZTsKIAorICAgIC8vIFRoaXMgY2Fu
IGRvIHByZXR0eSBtdWNoIGFueXRoaW5nIGRlcGVuZGluZyBvbiB0aGUgb3ZlcmxheSwKKyAgICAv
LyBzbyBpbiBjYXNlIGl0IGNhdXNlcyByZWxheW91dCBvciBzY2hlZHVsZSBhIGNvbW1pdCwgY2Fs
bCBpdCBlYXJseS4KKyAgICB1cGRhdGVEZWxlZ2F0ZWRPdmVybGF5cygpOworCiAgICAgLy8gSWYg
d2Ugc3luYyBjb21wb3NpdGluZyBsYXllcnMgd2hlbiBhIGxheW91dCBpcyBwZW5kaW5nLCB3ZSBt
YXkgY2F1c2UgcGFpbnRpbmcgb2YgY29tcG9zaXRpbmcKICAgICAvLyBsYXllciBjb250ZW50IHRv
IG9jY3VyIGJlZm9yZSBsYXlvdXQgaGFzIGhhcHBlbmVkLCB3aGljaCB3aWxsIGNhdXNlIHBhaW50
Q29udGVudHMoKSB0byBiYWlsLgogICAgIGlmIChuZWVkc0xheW91dFJlY3Vyc2l2ZSh2aWV3KSkg
ewpAQCAtNTgyNSw3ICs1ODI3LDYgQEAgYm9vbCBXZWJQYWdlUHJpdmF0ZTo6Y29tbWl0Um9vdExh
eWVySWZOZWVkZWQoKQogICAgIGlmIChtX2ZyYW1lTGF5ZXJzICYmIG1fZnJhbWVMYXllcnMtPmhh
c0xheWVyKCkpCiAgICAgICAgIG1fZnJhbWVMYXllcnMtPmNvbW1pdE9uV2ViS2l0VGhyZWFkKHNj
YWxlKTsKIAotICAgIHVwZGF0ZURlbGVnYXRlZE92ZXJsYXlzKCk7CiAgICAgaWYgKG1fb3Zlcmxh
eUxheWVyKQogICAgICAgICBtX292ZXJsYXlMYXllci0+cGxhdGZvcm1MYXllcigpLT5jb21taXRP
bldlYktpdFRocmVhZChzY2FsZSk7CiAKQEAgLTYwNDYsNiArNjA0NywyMSBAQCB2b2lkIFdlYlBh
Z2VQcml2YXRlOjpzZXROZWVkc09uZVNob3REcmF3aW5nU3luY2hyb25pemF0aW9uKCkKICAgICBt
X25lZWRzQ29tbWl0ID0gdHJ1ZTsKICAgICBtX25lZWRzT25lU2hvdERyYXdpbmdTeW5jaHJvbml6
YXRpb24gPSB0cnVlOwogfQorCit2b2lkIFdlYlBhZ2VQcml2YXRlOjpub3RpZnlTeW5jUmVxdWly
ZWQoY29uc3QgR3JhcGhpY3NMYXllciopCit7CisgICAgc2NoZWR1bGVSb290TGF5ZXJDb21taXQo
KTsKK30KKworYm9vbCBXZWJQYWdlUHJpdmF0ZTo6c2hvd0RlYnVnQm9yZGVycyhjb25zdCBHcmFw
aGljc0xheWVyKikgY29uc3QKK3sKKyAgICByZXR1cm4gbV9wYWdlLT5zZXR0aW5ncygpLT5zaG93
RGVidWdCb3JkZXJzKCk7Cit9CisKK2Jvb2wgV2ViUGFnZVByaXZhdGU6OnNob3dSZXBhaW50Q291
bnRlcihjb25zdCBHcmFwaGljc0xheWVyKikgY29uc3QKK3sKKyAgICByZXR1cm4gbV9wYWdlLT5z
ZXR0aW5ncygpLT5zaG93UmVwYWludENvdW50ZXIoKTsKK30KICNlbmRpZiAvLyBVU0UoQUNDRUxF
UkFURURfQ09NUE9TSVRJTkcpCiAKIHZvaWQgV2ViUGFnZVByaXZhdGU6OmVudGVyRnVsbHNjcmVl
bkZvck5vZGUoTm9kZSogbm9kZSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvYmxhY2tiZXJy
eS9BcGkvV2ViUGFnZV9wLmggYi9Tb3VyY2UvV2ViS2l0L2JsYWNrYmVycnkvQXBpL1dlYlBhZ2Vf
cC5oCmluZGV4IDNmMDE4OWE2NTc1NzM1ZWFhNzc2MGY1NzM0NWFlYTc1OTVkZDMzMjUuLjViZDY4
ZGI5NGIzNjg5YmJmZmJhNDgxMmRlYThjYjg5MGY3MThkYTIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJLaXQvYmxhY2tiZXJyeS9BcGkvV2ViUGFnZV9wLmgKKysrIGIvU291cmNlL1dlYktpdC9ibGFj
a2JlcnJ5L0FwaS9XZWJQYWdlX3AuaApAQCAtMjQsNiArMjQsNyBAQAogI2luY2x1ZGUgIkluc3Bl
Y3Rvck92ZXJsYXkuaCIKICNpZiBVU0UoQUNDRUxFUkFURURfQ09NUE9TSVRJTkcpCiAjaW5jbHVk
ZSAiR0xFUzJDb250ZXh0LmgiCisjaW5jbHVkZSAiR3JhcGhpY3NMYXllckNsaWVudC5oIgogI2lu
Y2x1ZGUgIkxheWVyUmVuZGVyZXIuaCIKICNpbmNsdWRlIDxFR0wvZWdsLmg+CiAjZW5kaWYKQEAg
LTgyLDcgKzgzLDEyIEBAIGNsYXNzIFdlYlBhZ2VDb21wb3NpdG9yUHJpdmF0ZTsKIC8vIEluIFdl
YlBhZ2VQcml2YXRlLCB0aGUgc2NyZWVuIHNpemUgaXMgY2FsbGVkIHRoZSB0cmFuc2Zvcm1lZFZp
ZXdwb3J0U2l6ZSwKIC8vIHRoZSB2aWV3cG9ydCBwb3NpdGlvbiBpcyBjYWxsZWQgdGhlIHRyYW5z
Zm9ybWVkU2Nyb2xsUG9zaXRpb24sCiAvLyBhbmQgdGhlIHZpZXdwb3J0IHNpemUgaXMgY2FsbGVk
IHRoZSB0cmFuc2Zvcm1lZEFjdHVhbFZpc2libGVTaXplLgotY2xhc3MgV2ViUGFnZVByaXZhdGUg
OiBwdWJsaWMgUGFnZUNsaWVudEJsYWNrQmVycnksIHB1YmxpYyBXZWJTZXR0aW5nc0RlbGVnYXRl
LCBwdWJsaWMgUGxhdGZvcm06Okd1YXJkZWRQb2ludGVyQmFzZSB7CitjbGFzcyBXZWJQYWdlUHJp
dmF0ZSA6IHB1YmxpYyBQYWdlQ2xpZW50QmxhY2tCZXJyeQorICAgICAgICAgICAgICAgICAgICAg
LCBwdWJsaWMgV2ViU2V0dGluZ3NEZWxlZ2F0ZQorI2lmIFVTRShBQ0NFTEVSQVRFRF9DT01QT1NJ
VElORykKKyAgICAgICAgICAgICAgICAgICAgICwgcHVibGljIFdlYkNvcmU6OkdyYXBoaWNzTGF5
ZXJDbGllbnQKKyNlbmRpZgorICAgICAgICAgICAgICAgICAgICAgLCBwdWJsaWMgUGxhdGZvcm06
Okd1YXJkZWRQb2ludGVyQmFzZSB7CiBwdWJsaWM6CiAgICAgZW51bSBWaWV3TW9kZSB7IE1vYmls
ZSwgRGVza3RvcCwgRml4ZWREZXNrdG9wIH07CiAgICAgZW51bSBMb2FkU3RhdGUgeyBOb25lIC8q
IG9uIGluc3RhbnRpYXRpb24gb2YgcGFnZSAqLywgUHJvdmlzaW9uYWwsIENvbW1pdHRlZCwgRmlu
aXNoZWQsIEZhaWxlZCB9OwpAQCAtMzg2LDYgKzM5MiwxMyBAQCBwdWJsaWM6CiAgICAgV2ViQ29y
ZTo6TGF5ZXJSZW5kZXJpbmdSZXN1bHRzIGxhc3RDb21wb3NpdGluZ1Jlc3VsdHMoKSBjb25zdDsK
ICAgICBXZWJDb3JlOjpHcmFwaGljc0xheWVyKiBvdmVybGF5TGF5ZXIoKTsKIAorICAgIC8vIEZh
bGxiYWNrIEdyYXBoaWNzTGF5ZXJDbGllbnQgaW1wbGVtZW50YXRpb24sIHVzZWQgZm9yIHZhcmlv
dXMgb3ZlcmxheSBsYXllcnMKKyAgICB2aXJ0dWFsIHZvaWQgbm90aWZ5QW5pbWF0aW9uU3RhcnRl
ZChjb25zdCBXZWJDb3JlOjpHcmFwaGljc0xheWVyKiwgZG91YmxlIHRpbWUpIHsgfQorICAgIHZp
cnR1YWwgdm9pZCBub3RpZnlTeW5jUmVxdWlyZWQoY29uc3QgV2ViQ29yZTo6R3JhcGhpY3NMYXll
ciopOworICAgIHZpcnR1YWwgdm9pZCBwYWludENvbnRlbnRzKGNvbnN0IFdlYkNvcmU6OkdyYXBo
aWNzTGF5ZXIqLCBXZWJDb3JlOjpHcmFwaGljc0NvbnRleHQmLCBXZWJDb3JlOjpHcmFwaGljc0xh
eWVyUGFpbnRpbmdQaGFzZSwgY29uc3QgV2ViQ29yZTo6SW50UmVjdCYgaW5DbGlwKSB7IH0KKyAg
ICB2aXJ0dWFsIGJvb2wgc2hvd0RlYnVnQm9yZGVycyhjb25zdCBXZWJDb3JlOjpHcmFwaGljc0xh
eWVyKikgY29uc3Q7CisgICAgdmlydHVhbCBib29sIHNob3dSZXBhaW50Q291bnRlcihjb25zdCBX
ZWJDb3JlOjpHcmFwaGljc0xheWVyKikgY29uc3Q7CisKICAgICAvLyBXZWJLaXQgdGhyZWFkLCBw
bHVtYmVkIHRocm91Z2ggZnJvbSBDaHJvbWVDbGllbnRCbGFja0JlcnJ5LgogICAgIHZvaWQgc2V0
Um9vdExheWVyV2ViS2l0VGhyZWFkKFdlYkNvcmU6OkZyYW1lKiwgV2ViQ29yZTo6TGF5ZXJXZWJL
aXRUaHJlYWQqKTsKICAgICB2b2lkIHNldE5lZWRzT25lU2hvdERyYXdpbmdTeW5jaHJvbml6YXRp
b24oKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvYmxhY2tiZXJyeS9XZWJDb3JlU3VwcG9y
dC9JbnNwZWN0b3JPdmVybGF5LmNwcCBiL1NvdXJjZS9XZWJLaXQvYmxhY2tiZXJyeS9XZWJDb3Jl
U3VwcG9ydC9JbnNwZWN0b3JPdmVybGF5LmNwcAppbmRleCA5MTc4NDMyMTUwMzlmMjM5NDhiMGIx
Y2ViYzhjMTVjN2U1NmU2MjU3Li45ZWU1ZjY1MTdlZmMzZDgzZmM5YjljOGM5NDMzMWRlMGE3NDM4
OWY2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L2JsYWNrYmVycnkvV2ViQ29yZVN1cHBvcnQv
SW5zcGVjdG9yT3ZlcmxheS5jcHAKKysrIGIvU291cmNlL1dlYktpdC9ibGFja2JlcnJ5L1dlYkNv
cmVTdXBwb3J0L0luc3BlY3Rvck92ZXJsYXkuY3BwCkBAIC0yNCw4ICsyNCw2IEBACiAjaW5jbHVk
ZSAiRnJhbWVWaWV3LmgiCiAjaW5jbHVkZSAiR3JhcGhpY3NDb250ZXh0LmgiCiAjaW5jbHVkZSAi
R3JhcGhpY3NMYXllci5oIgotI2luY2x1ZGUgIlBhZ2UuaCIKLSNpbmNsdWRlICJTZXR0aW5ncy5o
IgogI2luY2x1ZGUgIldlYlBhZ2VfcC5oIgogCiAKQEAgLTQzLDkgKzQxLDkgQEAgSW5zcGVjdG9y
T3ZlcmxheTo6SW5zcGVjdG9yT3ZlcmxheShCbGFja0JlcnJ5OjpXZWJLaXQ6OldlYlBhZ2VQcml2
YXRlKiBwYWdlLCBJbnMKIH0KIAogI2lmIFVTRShBQ0NFTEVSQVRFRF9DT01QT1NJVElORykKLXZv
aWQgSW5zcGVjdG9yT3ZlcmxheTo6bm90aWZ5U3luY1JlcXVpcmVkKGNvbnN0IEdyYXBoaWNzTGF5
ZXIqKQordm9pZCBJbnNwZWN0b3JPdmVybGF5Ojpub3RpZnlTeW5jUmVxdWlyZWQoY29uc3QgR3Jh
cGhpY3NMYXllciogbGF5ZXIpCiB7Ci0gICAgbV93ZWJQYWdlLT5zY2hlZHVsZVJvb3RMYXllckNv
bW1pdCgpOworICAgIG1fd2ViUGFnZS0+bm90aWZ5U3luY1JlcXVpcmVkKGxheWVyKTsKIH0KIAog
dm9pZCBJbnNwZWN0b3JPdmVybGF5OjpwYWludENvbnRlbnRzKGNvbnN0IEdyYXBoaWNzTGF5ZXIq
LCBHcmFwaGljc0NvbnRleHQmIGNvbnRleHQsIEdyYXBoaWNzTGF5ZXJQYWludGluZ1BoYXNlLCBj
b25zdCBJbnRSZWN0JiBpbkNsaXApCkBAIC01NywxNCArNTUsMTQgQEAgdm9pZCBJbnNwZWN0b3JP
dmVybGF5OjpwYWludENvbnRlbnRzKGNvbnN0IEdyYXBoaWNzTGF5ZXIqLCBHcmFwaGljc0NvbnRl
eHQmIGNvbnQKICAgICBjb250ZXh0LnJlc3RvcmUoKTsKIH0KIAotYm9vbCBJbnNwZWN0b3JPdmVy
bGF5OjpzaG93RGVidWdCb3JkZXJzKGNvbnN0IEdyYXBoaWNzTGF5ZXIqKSBjb25zdAorYm9vbCBJ
bnNwZWN0b3JPdmVybGF5OjpzaG93RGVidWdCb3JkZXJzKGNvbnN0IEdyYXBoaWNzTGF5ZXIqIGxh
eWVyKSBjb25zdAogewotICAgIHJldHVybiBtX3dlYlBhZ2UtPm1fcGFnZS0+c2V0dGluZ3MoKS0+
c2hvd0RlYnVnQm9yZGVycygpOworICAgIHJldHVybiBtX3dlYlBhZ2UtPnNob3dEZWJ1Z0JvcmRl
cnMobGF5ZXIpOwogfQogCi1ib29sIEluc3BlY3Rvck92ZXJsYXk6OnNob3dSZXBhaW50Q291bnRl
cihjb25zdCBHcmFwaGljc0xheWVyKikgY29uc3QKK2Jvb2wgSW5zcGVjdG9yT3ZlcmxheTo6c2hv
d1JlcGFpbnRDb3VudGVyKGNvbnN0IEdyYXBoaWNzTGF5ZXIqIGxheWVyKSBjb25zdAogewotICAg
IHJldHVybiBtX3dlYlBhZ2UtPm1fcGFnZS0+c2V0dGluZ3MoKS0+c2hvd1JlcGFpbnRDb3VudGVy
KCk7CisgICAgcmV0dXJuIG1fd2ViUGFnZS0+c2hvd1JlcGFpbnRDb3VudGVyKGxheWVyKTsKIH0K
ICNlbmRpZgogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2JsYWNrYmVycnkvV2ViS2l0U3Vw
cG9ydC9EZWZhdWx0VGFwSGlnaGxpZ2h0LmNwcCBiL1NvdXJjZS9XZWJLaXQvYmxhY2tiZXJyeS9X
ZWJLaXRTdXBwb3J0L0RlZmF1bHRUYXBIaWdobGlnaHQuY3BwCmluZGV4IDdlMDZkMGVmNDcwMTA4
YTg4NDlmMzY1MzNjM2FhZmFlM2EzOGE2YjIuLjViOGVlYjViNTE3YmU5ODg3Y2ZmNGFlYjYxZmJi
NDdiMGY5MjhjYTEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvYmxhY2tiZXJyeS9XZWJLaXRT
dXBwb3J0L0RlZmF1bHRUYXBIaWdobGlnaHQuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvYmxhY2ti
ZXJyeS9XZWJLaXRTdXBwb3J0L0RlZmF1bHRUYXBIaWdobGlnaHQuY3BwCkBAIC0xMTAsOSArMTEw
LDkgQEAgdm9pZCBEZWZhdWx0VGFwSGlnaGxpZ2h0OjpoaWRlKCkKICAgICAgICAgbV9vdmVybGF5
LT5vdmVycmlkZSgpLT5hZGRBbmltYXRpb24oZmFkZUFuaW1hdGlvbik7CiB9CiAKLXZvaWQgRGVm
YXVsdFRhcEhpZ2hsaWdodDo6bm90aWZ5U3luY1JlcXVpcmVkKGNvbnN0IEdyYXBoaWNzTGF5ZXIq
KQordm9pZCBEZWZhdWx0VGFwSGlnaGxpZ2h0Ojpub3RpZnlTeW5jUmVxdWlyZWQoY29uc3QgR3Jh
cGhpY3NMYXllciogbGF5ZXIpCiB7Ci0gICAgbV9wYWdlLT5zY2hlZHVsZVJvb3RMYXllckNvbW1p
dCgpOworICAgIG1fcGFnZS0+bm90aWZ5U3luY1JlcXVpcmVkKGxheWVyKTsKIH0KIAogdm9pZCBE
ZWZhdWx0VGFwSGlnaGxpZ2h0OjpwYWludENvbnRlbnRzKGNvbnN0IEdyYXBoaWNzTGF5ZXIqLCBH
cmFwaGljc0NvbnRleHQmIGMsIEdyYXBoaWNzTGF5ZXJQYWludGluZ1BoYXNlLCBjb25zdCBJbnRS
ZWN0JiAvKmluQ2xpcCovKQpAQCAtMTQ4LDYgKzE0OCwxNiBAQCB2b2lkIERlZmF1bHRUYXBIaWdo
bGlnaHQ6OnBhaW50Q29udGVudHMoY29uc3QgR3JhcGhpY3NMYXllciosIEdyYXBoaWNzQ29udGV4
dCYgYwogICAgIGMucmVzdG9yZSgpOwogfQogCitib29sIERlZmF1bHRUYXBIaWdobGlnaHQ6OnNo
b3dEZWJ1Z0JvcmRlcnMoY29uc3QgR3JhcGhpY3NMYXllciogbGF5ZXIpIGNvbnN0Cit7CisgICAg
cmV0dXJuIG1fcGFnZS0+c2hvd0RlYnVnQm9yZGVycyhsYXllcik7Cit9CisKK2Jvb2wgRGVmYXVs
dFRhcEhpZ2hsaWdodDo6c2hvd1JlcGFpbnRDb3VudGVyKGNvbnN0IEdyYXBoaWNzTGF5ZXIqIGxh
eWVyKSBjb25zdAoreworICAgIHJldHVybiBtX3BhZ2UtPnNob3dSZXBhaW50Q291bnRlcihsYXll
cik7Cit9CisKIH0gLy8gbmFtZXNwYWNlIFdlYktpdAogfSAvLyBuYW1lc3BhY2UgQmxhY2tCZXJy
eQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2JsYWNrYmVycnkvV2ViS2l0U3VwcG9ydC9E
ZWZhdWx0VGFwSGlnaGxpZ2h0LmggYi9Tb3VyY2UvV2ViS2l0L2JsYWNrYmVycnkvV2ViS2l0U3Vw
cG9ydC9EZWZhdWx0VGFwSGlnaGxpZ2h0LmgKaW5kZXggMzQ4OTMzNzcwMTA1MTQ0NWMzZTE2Yzdl
ZGE3MjRiYWY2Yjc2NjEyMS4uYzA0ZjYzNzdjMjIwNTc3NzEyOTVkNmM0ZGIwNmI4YWUzMzc0MTNi
ZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9ibGFja2JlcnJ5L1dlYktpdFN1cHBvcnQvRGVm
YXVsdFRhcEhpZ2hsaWdodC5oCisrKyBiL1NvdXJjZS9XZWJLaXQvYmxhY2tiZXJyeS9XZWJLaXRT
dXBwb3J0L0RlZmF1bHRUYXBIaWdobGlnaHQuaApAQCAtNTYsOCArNTYsOCBAQCBwdWJsaWM6CiAg
ICAgdmlydHVhbCB2b2lkIG5vdGlmeUFuaW1hdGlvblN0YXJ0ZWQoY29uc3QgV2ViQ29yZTo6R3Jh
cGhpY3NMYXllciosIGRvdWJsZSB0aW1lKSB7IH0KICAgICB2aXJ0dWFsIHZvaWQgbm90aWZ5U3lu
Y1JlcXVpcmVkKGNvbnN0IFdlYkNvcmU6OkdyYXBoaWNzTGF5ZXIqKTsKICAgICB2aXJ0dWFsIHZv
aWQgcGFpbnRDb250ZW50cyhjb25zdCBXZWJDb3JlOjpHcmFwaGljc0xheWVyKiwgV2ViQ29yZTo6
R3JhcGhpY3NDb250ZXh0JiwgV2ViQ29yZTo6R3JhcGhpY3NMYXllclBhaW50aW5nUGhhc2UsIGNv
bnN0IFdlYkNvcmU6OkludFJlY3QmIGluQ2xpcCk7Ci0gICAgdmlydHVhbCBib29sIHNob3dEZWJ1
Z0JvcmRlcnMoY29uc3QgV2ViQ29yZTo6R3JhcGhpY3NMYXllciopIGNvbnN0IHsgcmV0dXJuIGZh
bHNlOyB9Ci0gICAgdmlydHVhbCBib29sIHNob3dSZXBhaW50Q291bnRlcihjb25zdCBXZWJDb3Jl
OjpHcmFwaGljc0xheWVyKikgY29uc3QgeyByZXR1cm4gZmFsc2U7IH0KKyAgICB2aXJ0dWFsIGJv
b2wgc2hvd0RlYnVnQm9yZGVycyhjb25zdCBXZWJDb3JlOjpHcmFwaGljc0xheWVyKikgY29uc3Q7
CisgICAgdmlydHVhbCBib29sIHNob3dSZXBhaW50Q291bnRlcihjb25zdCBXZWJDb3JlOjpHcmFw
aGljc0xheWVyKikgY29uc3Q7CiAKIHByaXZhdGU6CiAgICAgRGVmYXVsdFRhcEhpZ2hsaWdodChX
ZWJQYWdlUHJpdmF0ZSopOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9ibGFja2JlcnJ5L1dl
YktpdFN1cHBvcnQvU2VsZWN0aW9uT3ZlcmxheS5jcHAgYi9Tb3VyY2UvV2ViS2l0L2JsYWNrYmVy
cnkvV2ViS2l0U3VwcG9ydC9TZWxlY3Rpb25PdmVybGF5LmNwcAppbmRleCA1OGZkMjhlMjZmNjNh
ZmNmZjI2MTcyYWU4MWIwOThmZjI2NDY1YWFhLi5jZDhjMzVkOTM4NTU5NzBlMTM3MTFmZDFjNmE1
ZGY0YmQ3N2JmODg0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L2JsYWNrYmVycnkvV2ViS2l0
U3VwcG9ydC9TZWxlY3Rpb25PdmVybGF5LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L2JsYWNrYmVy
cnkvV2ViS2l0U3VwcG9ydC9TZWxlY3Rpb25PdmVybGF5LmNwcApAQCAtOTQsOSArOTQsOSBAQCB2
b2lkIFNlbGVjdGlvbk92ZXJsYXk6OmhpZGUoKQogICAgIG1fcGFnZS0+bV93ZWJQYWdlLT5yZW1v
dmVPdmVybGF5KG1fb3ZlcmxheS5nZXQoKSk7CiB9CiAKLXZvaWQgU2VsZWN0aW9uT3ZlcmxheTo6
bm90aWZ5U3luY1JlcXVpcmVkKGNvbnN0IEdyYXBoaWNzTGF5ZXIqKQordm9pZCBTZWxlY3Rpb25P
dmVybGF5Ojpub3RpZnlTeW5jUmVxdWlyZWQoY29uc3QgR3JhcGhpY3NMYXllciogbGF5ZXIpCiB7
Ci0gICAgbV9wYWdlLT5zY2hlZHVsZVJvb3RMYXllckNvbW1pdCgpOworICAgIG1fcGFnZS0+bm90
aWZ5U3luY1JlcXVpcmVkKGxheWVyKTsKIH0KIAogdm9pZCBTZWxlY3Rpb25PdmVybGF5OjpwYWlu
dENvbnRlbnRzKGNvbnN0IEdyYXBoaWNzTGF5ZXIqLCBHcmFwaGljc0NvbnRleHQmIGMsIEdyYXBo
aWNzTGF5ZXJQYWludGluZ1BoYXNlLCBjb25zdCBJbnRSZWN0JiBpbkNsaXApCkBAIC0xMzMsNiAr
MTMzLDE2IEBAIHZvaWQgU2VsZWN0aW9uT3ZlcmxheTo6cGFpbnRDb250ZW50cyhjb25zdCBHcmFw
aGljc0xheWVyKiwgR3JhcGhpY3NDb250ZXh0JiBjLCBHCiAgICAgYy5yZXN0b3JlKCk7CiB9CiAK
K2Jvb2wgU2VsZWN0aW9uT3ZlcmxheTo6c2hvd0RlYnVnQm9yZGVycyhjb25zdCBHcmFwaGljc0xh
eWVyKiBsYXllcikgY29uc3QKK3sKKyAgICByZXR1cm4gbV9wYWdlLT5zaG93RGVidWdCb3JkZXJz
KGxheWVyKTsKK30KKworYm9vbCBTZWxlY3Rpb25PdmVybGF5OjpzaG93UmVwYWludENvdW50ZXIo
Y29uc3QgR3JhcGhpY3NMYXllciogbGF5ZXIpIGNvbnN0Cit7CisgICAgcmV0dXJuIG1fcGFnZS0+
c2hvd1JlcGFpbnRDb3VudGVyKGxheWVyKTsKK30KKwogfSAvLyBuYW1lc3BhY2UgV2ViS2l0CiB9
IC8vIG5hbWVzcGFjZSBCbGFja0JlcnJ5CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvYmxh
Y2tiZXJyeS9XZWJLaXRTdXBwb3J0L1NlbGVjdGlvbk92ZXJsYXkuaCBiL1NvdXJjZS9XZWJLaXQv
YmxhY2tiZXJyeS9XZWJLaXRTdXBwb3J0L1NlbGVjdGlvbk92ZXJsYXkuaAppbmRleCA2YzhkMDc1
ZTkzZjZiYmI4NTI5YjU0OTg4MjYzOWNkMGNmYzhjZjUzLi5iZTYxZTc2NGI3ZGE2Mjk2ODVkOTcx
ODY5MmQ1MjM0MGY2NTFiMWQxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L2JsYWNrYmVycnkv
V2ViS2l0U3VwcG9ydC9TZWxlY3Rpb25PdmVybGF5LmgKKysrIGIvU291cmNlL1dlYktpdC9ibGFj
a2JlcnJ5L1dlYktpdFN1cHBvcnQvU2VsZWN0aW9uT3ZlcmxheS5oCkBAIC01Miw4ICs1Miw4IEBA
IHB1YmxpYzoKICAgICB2aXJ0dWFsIHZvaWQgbm90aWZ5QW5pbWF0aW9uU3RhcnRlZChjb25zdCBX
ZWJDb3JlOjpHcmFwaGljc0xheWVyKiwgZG91YmxlIHRpbWUpIHsgfQogICAgIHZpcnR1YWwgdm9p
ZCBub3RpZnlTeW5jUmVxdWlyZWQoY29uc3QgV2ViQ29yZTo6R3JhcGhpY3NMYXllciopOwogICAg
IHZpcnR1YWwgdm9pZCBwYWludENvbnRlbnRzKGNvbnN0IFdlYkNvcmU6OkdyYXBoaWNzTGF5ZXIq
LCBXZWJDb3JlOjpHcmFwaGljc0NvbnRleHQmLCBXZWJDb3JlOjpHcmFwaGljc0xheWVyUGFpbnRp
bmdQaGFzZSwgY29uc3QgV2ViQ29yZTo6SW50UmVjdCYgaW5DbGlwKTsKLSAgICB2aXJ0dWFsIGJv
b2wgc2hvd0RlYnVnQm9yZGVycyhjb25zdCBXZWJDb3JlOjpHcmFwaGljc0xheWVyKikgY29uc3Qg
eyByZXR1cm4gZmFsc2U7IH0KLSAgICB2aXJ0dWFsIGJvb2wgc2hvd1JlcGFpbnRDb3VudGVyKGNv
bnN0IFdlYkNvcmU6OkdyYXBoaWNzTGF5ZXIqKSBjb25zdCB7IHJldHVybiBmYWxzZTsgfQorICAg
IHZpcnR1YWwgYm9vbCBzaG93RGVidWdCb3JkZXJzKGNvbnN0IFdlYkNvcmU6OkdyYXBoaWNzTGF5
ZXIqKSBjb25zdDsKKyAgICB2aXJ0dWFsIGJvb2wgc2hvd1JlcGFpbnRDb3VudGVyKGNvbnN0IFdl
YkNvcmU6OkdyYXBoaWNzTGF5ZXIqKSBjb25zdDsKIAogcHJpdmF0ZToKICAgICBTZWxlY3Rpb25P
dmVybGF5KFdlYlBhZ2VQcml2YXRlKik7Cg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>156374</attachid>
            <date>2012-08-03 07:27:16 -0700</date>
            <delta_ts>2012-08-03 08:19:34 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-93099-20120803162655.patch</filename>
            <type>text/plain</type>
            <size>15016</size>
            <attacher name="Arvid Nilsson">anilsson</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTI0NjAyCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2Js
YWNrYmVycnkvQ2hhbmdlTG9nIGIvU291cmNlL1dlYktpdC9ibGFja2JlcnJ5L0NoYW5nZUxvZwpp
bmRleCBkZDg2ZTVlNjBlZWM0ZDdkYjExYTc1Yjk0OTJiMDFhZmU5M2U0ZmE3Li44MWU4MTY3ZGZk
YzEzOWM0N2RmMmJkMmEwZjNjYjY3ZTU5Y2UzNWZhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0
L2JsYWNrYmVycnkvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJLaXQvYmxhY2tiZXJyeS9DaGFu
Z2VMb2cKQEAgLTEsMyArMSw3NSBAQAorMjAxMi0wOC0wMyAgQXJ2aWQgTmlsc3NvbiAgPGFuaWxz
c29uQHJpbS5jb20+CisKKyAgICAgICAgW0JsYWNrQmVycnldIE92ZXJsYXlzIGRpc3BsYXkgY2hl
Y2tlcmJvYXJkIHRoYXQgZG9lc24ndCByZXNvbHZlCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJr
aXQub3JnL3Nob3dfYnVnLmNnaT9pZD05MzA5OQorCisgICAgICAgIFJldmlld2VkIGJ5IEFudG9u
aW8gR29tZXMuCisKKyAgICAgICAgVGhlIFdlYktpdC10aHJlYWQgb3ZlcmxheXMsIGxpa2UgdGFw
IGhpZ2hsaWdodCwgaW5zcGVjdG9yIGhpZ2hsaWdodCBhbmQKKyAgICAgICAgc2VsZWN0aW9uIGFy
ZSBhbGwgcGFydCBvZiBhIHNlcGFyYXRlIGdyYXBoaWNzIGxheWVyIHRyZWUgcm9vdGVkIGluCisg
ICAgICAgIFdlYlBhZ2VQcml2YXRlOjptX292ZXJsYXlMYXllci4KKworICAgICAgICBXaGVuIExh
eWVyUmVuZGVyZXIgbmVlZHMgdG8gc2NoZWR1bGUgYSBjb21taXQgdG8gcmVhY3RpdmVseSByZW5k
ZXIKKyAgICAgICAgdGlsZXMgYW5kIHJlc29sdmUgY2hlY2tlcmJvYXJkLCBpdCBkb2VzIHNvIHRo
cm91Z2ggdGhlIHJvb3QgbGF5ZXIuCisgICAgICAgIFNpbmNlIHRoZSBvdmVybGF5IGxheWVyIHJv
b3QgZGlkbid0IGhhdmUgYSBHcmFwaGljc0xheWVyQ2xpZW50LCB0aGVyZQorICAgICAgICB3YXMg
bm8gaW1wbGVtZW50YXRpb24gb2YgR3JhcGhpY3NMYXllckNsaWVudDo6bm90aWZ5U3luY1JlcXVp
cmVkKCkgdG8KKyAgICAgICAgY2FsbCwgYW5kIGEgY29tbWl0IHdhcyBuZXZlciBzY2hlZHVsZWQs
IHRodXMgY2hlY2tlcmJvYXJkIG5ldmVyCisgICAgICAgIHJlc29sdmVkLgorCisgICAgICAgIEZp
eGVkIGJ5IGFkZGluZyBhIGZhbGxiYWNrIGltcGxlbWVudGF0aW9uIG9mIEdyYXBoaWNzTGF5ZXJD
bGllbnQgaW4KKyAgICAgICAgV2ViUGFnZVByaXZhdGUgYW5kIGhvb2tpbmcgdXAgdGhlIG92ZXJs
YXkgcm9vdCB0byBpdC4gQWxzbywgdGhpcworICAgICAgICBpbXBsZW1lbnRhdGlvbiBjYW4gYmUg
c2hhcmVkIGJ5IHRoZSB2YXJpb3VzIG92ZXJsYXlzIHRvIGF2b2lkZSBjb2RlCisgICAgICAgIGR1
cGxpY2F0aW9uLCBzcGVjaWZpY2FsbHkgdG8gaW1wbGVtZW50IG5vdGlmeVN5bmNSZXF1aXJlZCgp
LAorICAgICAgICBzaG93RGVidWdCb3JkZXJzKCkgYW5kIHNob3dSZXBhaW50Q291bnRlcigpIG9u
bHkgb25jZS4KKworICAgICAgICBGaXhpbmcgdGhpcyByZXZlYWxlZCBhIGJ1ZyB3aGVyZSB0aGUg
d2ViIHBhZ2Ugd291bGQgZ2V0IHN0dWNrIGluIGFuCisgICAgICAgIGVuZGxlc3Mgc2VxdWVuY2Ug
b2YgY29tbWl0cy4gSXQgdHVybmVkIG91dCB0aGF0CisgICAgICAgIFdlYlBhZ2VQcml2YXRlOjp1
cGRhdGVEZWxlZ2F0ZWRPdmVybGF5cygpIHdhcyBjYWxsZWQgcmlnaHQgaW4gdGhlCisgICAgICAg
IG1pZGRsZSBvZiB0aGUgY29tbWl0IG9wZXJhdGlvbiwgYWZ0ZXIgcGVyZm9ybWluZyB0aGUgd2Vi
a2l0IHRocmVhZCBwYXJ0CisgICAgICAgIG9mIHRoZSBjb21taXQgb3BlcmF0aW9uIGJ1dCBiZWZv
cmUgd2UgY29udGludWVkIG9uIHRoZSBjb21wb3NpdGluZworICAgICAgICB0aHJlYWQuIFNpbmNl
IHVwZGF0ZURlbGVnYXRlZE92ZXJsYXlzKCkgdHlwaWNhbGx5IG11dGF0ZXMgbGF5ZXJzLCB0aGlz
CisgICAgICAgIGlzIHZlcnkgYmFkIChsYXllcnMgc2hvdWxkIG5vdCBiZSBtdXRhdGVkIG1pZC1j
b21taXQpLiBUaGUgbXV0YXRpb25zCisgICAgICAgIGFsc28gY2F1c2UgYSBuZXcgY29tbWl0IHRv
IHNjaGVkdWxlZCBmcm9tIHdpdGhpbiB0aGUgY3VycmVudCwgd2hpY2gKKyAgICAgICAgcmVzdWx0
cyBpbiBhbiBlbmRsZXNzIHNlcXVlbmNlIG9mIGNvbW1pdHMuCisKKyAgICAgICAgRml4ZWQgdGhp
cyBsYXR0ZXIgYnVnIGJ5IG1vdmluZyB0aGUgdXBkYXRlRGVsZWdhdGVkT3ZlcmxheXMoKSBjYWxs
IHRvCisgICAgICAgIHRoZSBiZWdpbm5pbmcgb2YgdGhlIG1ldGhvZCB3aGVyZSBpdCBjYW4gY2F1
c2Ugbm8gaGFybS4gVGhpcyBpcyBiZWZvcmUKKyAgICAgICAgd2UgbWFyayB0aGUgd2ViIHBhZ2Ug
YXMgbm8gbG9uZ2VyIG5lZWRpbmcgY29tbWl0LCBzbyBldmVuIGlmIHRoZQorICAgICAgICBpbXBs
ZW1lbnRhdGlvbiBmbGlwcyB0aGUgIm5lZWRzIGNvbW1pdCIgYml0LCB3ZSB3aWxsIGltbWVkaWF0
ZWx5IGZsaXAKKyAgICAgICAgaXQgYmFjayBhbmQgcHJvY2VlZCB3aXRoIGNvbW1pdCBhcyB1c3Vh
bC4KKworICAgICAgICBQUiAxODc0NTgsIDE4NDM3NworCisgICAgICAgICogQXBpL1dlYlBhZ2Uu
Y3BwOgorICAgICAgICAoQmxhY2tCZXJyeTo6V2ViS2l0OjpXZWJQYWdlUHJpdmF0ZTo6b3Zlcmxh
eUxheWVyKToKKyAgICAgICAgKEJsYWNrQmVycnk6OldlYktpdDo6V2ViUGFnZVByaXZhdGU6OmNv
bW1pdFJvb3RMYXllcklmTmVlZGVkKToKKyAgICAgICAgKFdlYktpdCk6CisgICAgICAgIChCbGFj
a0JlcnJ5OjpXZWJLaXQ6OldlYlBhZ2VQcml2YXRlOjpub3RpZnlTeW5jUmVxdWlyZWQpOgorICAg
ICAgICAoQmxhY2tCZXJyeTo6V2ViS2l0OjpXZWJQYWdlUHJpdmF0ZTo6c2hvd0RlYnVnQm9yZGVy
cyk6CisgICAgICAgIChCbGFja0JlcnJ5OjpXZWJLaXQ6OldlYlBhZ2VQcml2YXRlOjpzaG93UmVw
YWludENvdW50ZXIpOgorICAgICAgICAqIEFwaS9XZWJQYWdlX3AuaDoKKyAgICAgICAgKFdlYlBh
Z2VQcml2YXRlKToKKyAgICAgICAgKEJsYWNrQmVycnk6OldlYktpdDo6V2ViUGFnZVByaXZhdGU6
Om5vdGlmeUFuaW1hdGlvblN0YXJ0ZWQpOgorICAgICAgICAoQmxhY2tCZXJyeTo6V2ViS2l0OjpX
ZWJQYWdlUHJpdmF0ZTo6cGFpbnRDb250ZW50cyk6CisgICAgICAgICogV2ViQ29yZVN1cHBvcnQv
SW5zcGVjdG9yT3ZlcmxheS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpJbnNwZWN0b3JPdmVybGF5
Ojpub3RpZnlTeW5jUmVxdWlyZWQpOgorICAgICAgICAoV2ViQ29yZTo6SW5zcGVjdG9yT3Zlcmxh
eTo6c2hvd0RlYnVnQm9yZGVycyk6CisgICAgICAgIChXZWJDb3JlOjpJbnNwZWN0b3JPdmVybGF5
OjpzaG93UmVwYWludENvdW50ZXIpOgorICAgICAgICAqIFdlYktpdFN1cHBvcnQvRGVmYXVsdFRh
cEhpZ2hsaWdodC5jcHA6CisgICAgICAgIChCbGFja0JlcnJ5OjpXZWJLaXQ6OkRlZmF1bHRUYXBI
aWdobGlnaHQ6Om5vdGlmeVN5bmNSZXF1aXJlZCk6CisgICAgICAgIChCbGFja0JlcnJ5OjpXZWJL
aXQ6OkRlZmF1bHRUYXBIaWdobGlnaHQ6OnNob3dEZWJ1Z0JvcmRlcnMpOgorICAgICAgICAoV2Vi
S2l0KToKKyAgICAgICAgKEJsYWNrQmVycnk6OldlYktpdDo6RGVmYXVsdFRhcEhpZ2hsaWdodDo6
c2hvd1JlcGFpbnRDb3VudGVyKToKKyAgICAgICAgKiBXZWJLaXRTdXBwb3J0L0RlZmF1bHRUYXBI
aWdobGlnaHQuaDoKKyAgICAgICAgKERlZmF1bHRUYXBIaWdobGlnaHQpOgorICAgICAgICAqIFdl
YktpdFN1cHBvcnQvU2VsZWN0aW9uT3ZlcmxheS5jcHA6CisgICAgICAgIChCbGFja0JlcnJ5OjpX
ZWJLaXQ6OlNlbGVjdGlvbk92ZXJsYXk6Om5vdGlmeVN5bmNSZXF1aXJlZCk6CisgICAgICAgIChC
bGFja0JlcnJ5OjpXZWJLaXQ6OlNlbGVjdGlvbk92ZXJsYXk6OnNob3dEZWJ1Z0JvcmRlcnMpOgor
ICAgICAgICAoV2ViS2l0KToKKyAgICAgICAgKEJsYWNrQmVycnk6OldlYktpdDo6U2VsZWN0aW9u
T3ZlcmxheTo6c2hvd1JlcGFpbnRDb3VudGVyKToKKyAgICAgICAgKiBXZWJLaXRTdXBwb3J0L1Nl
bGVjdGlvbk92ZXJsYXkuaDoKKyAgICAgICAgKFNlbGVjdGlvbk92ZXJsYXkpOgorCiAyMDEyLTA4
LTAyICBBcnZpZCBOaWxzc29uICA8YW5pbHNzb25AcmltLmNvbT4KIAogICAgICAgICBbQmxhY2tC
ZXJyeV0gQWRkIGRlZmF1bHQgaW1wbGVtZW50YXRpb24gb2YgR3JhcGhpY3NMYXllckNsaWVudDo6
Y29udGVudHNWaXNpYmxlKCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvYmxhY2tiZXJyeS9B
cGkvV2ViUGFnZS5jcHAgYi9Tb3VyY2UvV2ViS2l0L2JsYWNrYmVycnkvQXBpL1dlYlBhZ2UuY3Bw
CmluZGV4IDljNjAyNmI1MjZkZjliNjczNDAyN2RhM2Y4ZDU2NzQwMjZkM2RmM2YuLmZlZjE2NjFl
ZTQ5YjZjMzBlZWZmYzZlMmMwM2FiN2VjZmUxYzMyYjQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJL
aXQvYmxhY2tiZXJyeS9BcGkvV2ViUGFnZS5jcHAKKysrIGIvU291cmNlL1dlYktpdC9ibGFja2Jl
cnJ5L0FwaS9XZWJQYWdlLmNwcApAQCAtNTYyMywxMCArNTYyMyw4IEBAIExheWVyUmVuZGVyaW5n
UmVzdWx0cyBXZWJQYWdlUHJpdmF0ZTo6bGFzdENvbXBvc2l0aW5nUmVzdWx0cygpIGNvbnN0CiAK
IEdyYXBoaWNzTGF5ZXIqIFdlYlBhZ2VQcml2YXRlOjpvdmVybGF5TGF5ZXIoKQogewotICAgIC8v
IFRoZSBvdmVybGF5IGxheWVyIGhhcyBubyBHcmFwaGljc0xheWVyQ2xpZW50LCBpdCdzIGp1c3Qg
YSBjb250YWluZXIKLSAgICAvLyBmb3IgdmFyaW91cyBvdmVybGF5cy4KICAgICBpZiAoIW1fb3Zl
cmxheUxheWVyKQotICAgICAgICBtX292ZXJsYXlMYXllciA9IEdyYXBoaWNzTGF5ZXI6OmNyZWF0
ZSgwKTsKKyAgICAgICAgbV9vdmVybGF5TGF5ZXIgPSBHcmFwaGljc0xheWVyOjpjcmVhdGUodGhp
cyk7CiAKICAgICByZXR1cm4gbV9vdmVybGF5TGF5ZXIuZ2V0KCk7CiB9CkBAIC01NzQ1LDYgKzU3
NDMsMTAgQEAgYm9vbCBXZWJQYWdlUHJpdmF0ZTo6Y29tbWl0Um9vdExheWVySWZOZWVkZWQoKQog
ICAgIGlmICghdmlldykKICAgICAgICAgcmV0dXJuIGZhbHNlOwogCisgICAgLy8gVGhpcyBjYW4g
ZG8gcHJldHR5IG11Y2ggYW55dGhpbmcgZGVwZW5kaW5nIG9uIHRoZSBvdmVybGF5LAorICAgIC8v
IHNvIGluIGNhc2UgaXQgY2F1c2VzIHJlbGF5b3V0IG9yIHNjaGVkdWxlIGEgY29tbWl0LCBjYWxs
IGl0IGVhcmx5LgorICAgIHVwZGF0ZURlbGVnYXRlZE92ZXJsYXlzKCk7CisKICAgICAvLyBJZiB3
ZSBzeW5jIGNvbXBvc2l0aW5nIGxheWVycyB3aGVuIGEgbGF5b3V0IGlzIHBlbmRpbmcsIHdlIG1h
eSBjYXVzZSBwYWludGluZyBvZiBjb21wb3NpdGluZwogICAgIC8vIGxheWVyIGNvbnRlbnQgdG8g
b2NjdXIgYmVmb3JlIGxheW91dCBoYXMgaGFwcGVuZWQsIHdoaWNoIHdpbGwgY2F1c2UgcGFpbnRD
b250ZW50cygpIHRvIGJhaWwuCiAgICAgaWYgKG5lZWRzTGF5b3V0UmVjdXJzaXZlKHZpZXcpKSB7
CkBAIC01NzY3LDcgKzU3NjksNiBAQCBib29sIFdlYlBhZ2VQcml2YXRlOjpjb21taXRSb290TGF5
ZXJJZk5lZWRlZCgpCiAgICAgaWYgKG1fZnJhbWVMYXllcnMgJiYgbV9mcmFtZUxheWVycy0+aGFz
TGF5ZXIoKSkKICAgICAgICAgbV9mcmFtZUxheWVycy0+Y29tbWl0T25XZWJLaXRUaHJlYWQoc2Nh
bGUpOwogCi0gICAgdXBkYXRlRGVsZWdhdGVkT3ZlcmxheXMoKTsKICAgICBpZiAobV9vdmVybGF5
TGF5ZXIpCiAgICAgICAgIG1fb3ZlcmxheUxheWVyLT5wbGF0Zm9ybUxheWVyKCktPmNvbW1pdE9u
V2ViS2l0VGhyZWFkKHNjYWxlKTsKIApAQCAtNTk4OCw2ICs1OTg5LDIxIEBAIHZvaWQgV2ViUGFn
ZVByaXZhdGU6OnNldE5lZWRzT25lU2hvdERyYXdpbmdTeW5jaHJvbml6YXRpb24oKQogICAgIG1f
bmVlZHNDb21taXQgPSB0cnVlOwogICAgIG1fbmVlZHNPbmVTaG90RHJhd2luZ1N5bmNocm9uaXph
dGlvbiA9IHRydWU7CiB9CisKK3ZvaWQgV2ViUGFnZVByaXZhdGU6Om5vdGlmeVN5bmNSZXF1aXJl
ZChjb25zdCBHcmFwaGljc0xheWVyKikKK3sKKyAgICBzY2hlZHVsZVJvb3RMYXllckNvbW1pdCgp
OworfQorCitib29sIFdlYlBhZ2VQcml2YXRlOjpzaG93RGVidWdCb3JkZXJzKGNvbnN0IEdyYXBo
aWNzTGF5ZXIqKSBjb25zdAoreworICAgIHJldHVybiBtX3BhZ2UtPnNldHRpbmdzKCktPnNob3dE
ZWJ1Z0JvcmRlcnMoKTsKK30KKworYm9vbCBXZWJQYWdlUHJpdmF0ZTo6c2hvd1JlcGFpbnRDb3Vu
dGVyKGNvbnN0IEdyYXBoaWNzTGF5ZXIqKSBjb25zdAoreworICAgIHJldHVybiBtX3BhZ2UtPnNl
dHRpbmdzKCktPnNob3dSZXBhaW50Q291bnRlcigpOworfQogI2VuZGlmIC8vIFVTRShBQ0NFTEVS
QVRFRF9DT01QT1NJVElORykKIAogdm9pZCBXZWJQYWdlUHJpdmF0ZTo6ZW50ZXJGdWxsc2NyZWVu
Rm9yTm9kZShOb2RlKiBub2RlKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9ibGFja2JlcnJ5
L0FwaS9XZWJQYWdlX3AuaCBiL1NvdXJjZS9XZWJLaXQvYmxhY2tiZXJyeS9BcGkvV2ViUGFnZV9w
LmgKaW5kZXggYTdjMDY5MGFjOTUzMjk5ODQ1Y2RjNmE1MzQ3MTBlYmE3ZTYzZDdkNS4uOGIxNjYw
ZDUxMjZlZTgzYmQwMWZiYzNkMjYyOGI0OTM5NTAyNWE0MSAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YktpdC9ibGFja2JlcnJ5L0FwaS9XZWJQYWdlX3AuaAorKysgYi9Tb3VyY2UvV2ViS2l0L2JsYWNr
YmVycnkvQXBpL1dlYlBhZ2VfcC5oCkBAIC0yNSw2ICsyNSw3IEBACiAjaW5jbHVkZSAiSW5zcGVj
dG9yT3ZlcmxheS5oIgogI2lmIFVTRShBQ0NFTEVSQVRFRF9DT01QT1NJVElORykKICNpbmNsdWRl
ICJHTEVTMkNvbnRleHQuaCIKKyNpbmNsdWRlICJHcmFwaGljc0xheWVyQ2xpZW50LmgiCiAjaW5j
bHVkZSAiTGF5ZXJSZW5kZXJlci5oIgogI2luY2x1ZGUgPEVHTC9lZ2wuaD4KICNlbmRpZgpAQCAt
ODMsNyArODQsMTIgQEAgY2xhc3MgV2ViUGFnZUNvbXBvc2l0b3JQcml2YXRlOwogLy8gSW4gV2Vi
UGFnZVByaXZhdGUsIHRoZSBzY3JlZW4gc2l6ZSBpcyBjYWxsZWQgdGhlIHRyYW5zZm9ybWVkVmll
d3BvcnRTaXplLAogLy8gdGhlIHZpZXdwb3J0IHBvc2l0aW9uIGlzIGNhbGxlZCB0aGUgdHJhbnNm
b3JtZWRTY3JvbGxQb3NpdGlvbiwKIC8vIGFuZCB0aGUgdmlld3BvcnQgc2l6ZSBpcyBjYWxsZWQg
dGhlIHRyYW5zZm9ybWVkQWN0dWFsVmlzaWJsZVNpemUuCi1jbGFzcyBXZWJQYWdlUHJpdmF0ZSA6
IHB1YmxpYyBQYWdlQ2xpZW50QmxhY2tCZXJyeSwgcHVibGljIFdlYlNldHRpbmdzRGVsZWdhdGUs
IHB1YmxpYyBQbGF0Zm9ybTo6R3VhcmRlZFBvaW50ZXJCYXNlIHsKK2NsYXNzIFdlYlBhZ2VQcml2
YXRlIDogcHVibGljIFBhZ2VDbGllbnRCbGFja0JlcnJ5CisgICAgICAgICAgICAgICAgICAgICAs
IHB1YmxpYyBXZWJTZXR0aW5nc0RlbGVnYXRlCisjaWYgVVNFKEFDQ0VMRVJBVEVEX0NPTVBPU0lU
SU5HKQorICAgICAgICAgICAgICAgICAgICAgLCBwdWJsaWMgV2ViQ29yZTo6R3JhcGhpY3NMYXll
ckNsaWVudAorI2VuZGlmCisgICAgICAgICAgICAgICAgICAgICAsIHB1YmxpYyBQbGF0Zm9ybTo6
R3VhcmRlZFBvaW50ZXJCYXNlIHsKIHB1YmxpYzoKICAgICBlbnVtIFZpZXdNb2RlIHsgTW9iaWxl
LCBEZXNrdG9wLCBGaXhlZERlc2t0b3AgfTsKICAgICBlbnVtIExvYWRTdGF0ZSB7IE5vbmUgLyog
b24gaW5zdGFudGlhdGlvbiBvZiBwYWdlICovLCBQcm92aXNpb25hbCwgQ29tbWl0dGVkLCBGaW5p
c2hlZCwgRmFpbGVkIH07CkBAIC0zODYsNiArMzkyLDEzIEBAIHB1YmxpYzoKICAgICBXZWJDb3Jl
OjpMYXllclJlbmRlcmluZ1Jlc3VsdHMgbGFzdENvbXBvc2l0aW5nUmVzdWx0cygpIGNvbnN0Owog
ICAgIFdlYkNvcmU6OkdyYXBoaWNzTGF5ZXIqIG92ZXJsYXlMYXllcigpOwogCisgICAgLy8gRmFs
bGJhY2sgR3JhcGhpY3NMYXllckNsaWVudCBpbXBsZW1lbnRhdGlvbiwgdXNlZCBmb3IgdmFyaW91
cyBvdmVybGF5IGxheWVycy4KKyAgICB2aXJ0dWFsIHZvaWQgbm90aWZ5QW5pbWF0aW9uU3RhcnRl
ZChjb25zdCBXZWJDb3JlOjpHcmFwaGljc0xheWVyKiwgZG91YmxlIHRpbWUpIHsgfQorICAgIHZp
cnR1YWwgdm9pZCBub3RpZnlTeW5jUmVxdWlyZWQoY29uc3QgV2ViQ29yZTo6R3JhcGhpY3NMYXll
ciopOworICAgIHZpcnR1YWwgdm9pZCBwYWludENvbnRlbnRzKGNvbnN0IFdlYkNvcmU6OkdyYXBo
aWNzTGF5ZXIqLCBXZWJDb3JlOjpHcmFwaGljc0NvbnRleHQmLCBXZWJDb3JlOjpHcmFwaGljc0xh
eWVyUGFpbnRpbmdQaGFzZSwgY29uc3QgV2ViQ29yZTo6SW50UmVjdCYgaW5DbGlwKSB7IH0KKyAg
ICB2aXJ0dWFsIGJvb2wgc2hvd0RlYnVnQm9yZGVycyhjb25zdCBXZWJDb3JlOjpHcmFwaGljc0xh
eWVyKikgY29uc3Q7CisgICAgdmlydHVhbCBib29sIHNob3dSZXBhaW50Q291bnRlcihjb25zdCBX
ZWJDb3JlOjpHcmFwaGljc0xheWVyKikgY29uc3Q7CisKICAgICAvLyBXZWJLaXQgdGhyZWFkLCBw
bHVtYmVkIHRocm91Z2ggZnJvbSBDaHJvbWVDbGllbnRCbGFja0JlcnJ5LgogICAgIHZvaWQgc2V0
Um9vdExheWVyV2ViS2l0VGhyZWFkKFdlYkNvcmU6OkZyYW1lKiwgV2ViQ29yZTo6TGF5ZXJXZWJL
aXRUaHJlYWQqKTsKICAgICB2b2lkIHNldE5lZWRzT25lU2hvdERyYXdpbmdTeW5jaHJvbml6YXRp
b24oKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvYmxhY2tiZXJyeS9XZWJDb3JlU3VwcG9y
dC9JbnNwZWN0b3JPdmVybGF5LmNwcCBiL1NvdXJjZS9XZWJLaXQvYmxhY2tiZXJyeS9XZWJDb3Jl
U3VwcG9ydC9JbnNwZWN0b3JPdmVybGF5LmNwcAppbmRleCA5MTc4NDMyMTUwMzlmMjM5NDhiMGIx
Y2ViYzhjMTVjN2U1NmU2MjU3Li45ZWU1ZjY1MTdlZmMzZDgzZmM5YjljOGM5NDMzMWRlMGE3NDM4
OWY2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L2JsYWNrYmVycnkvV2ViQ29yZVN1cHBvcnQv
SW5zcGVjdG9yT3ZlcmxheS5jcHAKKysrIGIvU291cmNlL1dlYktpdC9ibGFja2JlcnJ5L1dlYkNv
cmVTdXBwb3J0L0luc3BlY3Rvck92ZXJsYXkuY3BwCkBAIC0yNCw4ICsyNCw2IEBACiAjaW5jbHVk
ZSAiRnJhbWVWaWV3LmgiCiAjaW5jbHVkZSAiR3JhcGhpY3NDb250ZXh0LmgiCiAjaW5jbHVkZSAi
R3JhcGhpY3NMYXllci5oIgotI2luY2x1ZGUgIlBhZ2UuaCIKLSNpbmNsdWRlICJTZXR0aW5ncy5o
IgogI2luY2x1ZGUgIldlYlBhZ2VfcC5oIgogCiAKQEAgLTQzLDkgKzQxLDkgQEAgSW5zcGVjdG9y
T3ZlcmxheTo6SW5zcGVjdG9yT3ZlcmxheShCbGFja0JlcnJ5OjpXZWJLaXQ6OldlYlBhZ2VQcml2
YXRlKiBwYWdlLCBJbnMKIH0KIAogI2lmIFVTRShBQ0NFTEVSQVRFRF9DT01QT1NJVElORykKLXZv
aWQgSW5zcGVjdG9yT3ZlcmxheTo6bm90aWZ5U3luY1JlcXVpcmVkKGNvbnN0IEdyYXBoaWNzTGF5
ZXIqKQordm9pZCBJbnNwZWN0b3JPdmVybGF5Ojpub3RpZnlTeW5jUmVxdWlyZWQoY29uc3QgR3Jh
cGhpY3NMYXllciogbGF5ZXIpCiB7Ci0gICAgbV93ZWJQYWdlLT5zY2hlZHVsZVJvb3RMYXllckNv
bW1pdCgpOworICAgIG1fd2ViUGFnZS0+bm90aWZ5U3luY1JlcXVpcmVkKGxheWVyKTsKIH0KIAog
dm9pZCBJbnNwZWN0b3JPdmVybGF5OjpwYWludENvbnRlbnRzKGNvbnN0IEdyYXBoaWNzTGF5ZXIq
LCBHcmFwaGljc0NvbnRleHQmIGNvbnRleHQsIEdyYXBoaWNzTGF5ZXJQYWludGluZ1BoYXNlLCBj
b25zdCBJbnRSZWN0JiBpbkNsaXApCkBAIC01NywxNCArNTUsMTQgQEAgdm9pZCBJbnNwZWN0b3JP
dmVybGF5OjpwYWludENvbnRlbnRzKGNvbnN0IEdyYXBoaWNzTGF5ZXIqLCBHcmFwaGljc0NvbnRl
eHQmIGNvbnQKICAgICBjb250ZXh0LnJlc3RvcmUoKTsKIH0KIAotYm9vbCBJbnNwZWN0b3JPdmVy
bGF5OjpzaG93RGVidWdCb3JkZXJzKGNvbnN0IEdyYXBoaWNzTGF5ZXIqKSBjb25zdAorYm9vbCBJ
bnNwZWN0b3JPdmVybGF5OjpzaG93RGVidWdCb3JkZXJzKGNvbnN0IEdyYXBoaWNzTGF5ZXIqIGxh
eWVyKSBjb25zdAogewotICAgIHJldHVybiBtX3dlYlBhZ2UtPm1fcGFnZS0+c2V0dGluZ3MoKS0+
c2hvd0RlYnVnQm9yZGVycygpOworICAgIHJldHVybiBtX3dlYlBhZ2UtPnNob3dEZWJ1Z0JvcmRl
cnMobGF5ZXIpOwogfQogCi1ib29sIEluc3BlY3Rvck92ZXJsYXk6OnNob3dSZXBhaW50Q291bnRl
cihjb25zdCBHcmFwaGljc0xheWVyKikgY29uc3QKK2Jvb2wgSW5zcGVjdG9yT3ZlcmxheTo6c2hv
d1JlcGFpbnRDb3VudGVyKGNvbnN0IEdyYXBoaWNzTGF5ZXIqIGxheWVyKSBjb25zdAogewotICAg
IHJldHVybiBtX3dlYlBhZ2UtPm1fcGFnZS0+c2V0dGluZ3MoKS0+c2hvd1JlcGFpbnRDb3VudGVy
KCk7CisgICAgcmV0dXJuIG1fd2ViUGFnZS0+c2hvd1JlcGFpbnRDb3VudGVyKGxheWVyKTsKIH0K
ICNlbmRpZgogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2JsYWNrYmVycnkvV2ViS2l0U3Vw
cG9ydC9EZWZhdWx0VGFwSGlnaGxpZ2h0LmNwcCBiL1NvdXJjZS9XZWJLaXQvYmxhY2tiZXJyeS9X
ZWJLaXRTdXBwb3J0L0RlZmF1bHRUYXBIaWdobGlnaHQuY3BwCmluZGV4IDdlMDZkMGVmNDcwMTA4
YTg4NDlmMzY1MzNjM2FhZmFlM2EzOGE2YjIuLjViOGVlYjViNTE3YmU5ODg3Y2ZmNGFlYjYxZmJi
NDdiMGY5MjhjYTEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvYmxhY2tiZXJyeS9XZWJLaXRT
dXBwb3J0L0RlZmF1bHRUYXBIaWdobGlnaHQuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvYmxhY2ti
ZXJyeS9XZWJLaXRTdXBwb3J0L0RlZmF1bHRUYXBIaWdobGlnaHQuY3BwCkBAIC0xMTAsOSArMTEw
LDkgQEAgdm9pZCBEZWZhdWx0VGFwSGlnaGxpZ2h0OjpoaWRlKCkKICAgICAgICAgbV9vdmVybGF5
LT5vdmVycmlkZSgpLT5hZGRBbmltYXRpb24oZmFkZUFuaW1hdGlvbik7CiB9CiAKLXZvaWQgRGVm
YXVsdFRhcEhpZ2hsaWdodDo6bm90aWZ5U3luY1JlcXVpcmVkKGNvbnN0IEdyYXBoaWNzTGF5ZXIq
KQordm9pZCBEZWZhdWx0VGFwSGlnaGxpZ2h0Ojpub3RpZnlTeW5jUmVxdWlyZWQoY29uc3QgR3Jh
cGhpY3NMYXllciogbGF5ZXIpCiB7Ci0gICAgbV9wYWdlLT5zY2hlZHVsZVJvb3RMYXllckNvbW1p
dCgpOworICAgIG1fcGFnZS0+bm90aWZ5U3luY1JlcXVpcmVkKGxheWVyKTsKIH0KIAogdm9pZCBE
ZWZhdWx0VGFwSGlnaGxpZ2h0OjpwYWludENvbnRlbnRzKGNvbnN0IEdyYXBoaWNzTGF5ZXIqLCBH
cmFwaGljc0NvbnRleHQmIGMsIEdyYXBoaWNzTGF5ZXJQYWludGluZ1BoYXNlLCBjb25zdCBJbnRS
ZWN0JiAvKmluQ2xpcCovKQpAQCAtMTQ4LDYgKzE0OCwxNiBAQCB2b2lkIERlZmF1bHRUYXBIaWdo
bGlnaHQ6OnBhaW50Q29udGVudHMoY29uc3QgR3JhcGhpY3NMYXllciosIEdyYXBoaWNzQ29udGV4
dCYgYwogICAgIGMucmVzdG9yZSgpOwogfQogCitib29sIERlZmF1bHRUYXBIaWdobGlnaHQ6OnNo
b3dEZWJ1Z0JvcmRlcnMoY29uc3QgR3JhcGhpY3NMYXllciogbGF5ZXIpIGNvbnN0Cit7CisgICAg
cmV0dXJuIG1fcGFnZS0+c2hvd0RlYnVnQm9yZGVycyhsYXllcik7Cit9CisKK2Jvb2wgRGVmYXVs
dFRhcEhpZ2hsaWdodDo6c2hvd1JlcGFpbnRDb3VudGVyKGNvbnN0IEdyYXBoaWNzTGF5ZXIqIGxh
eWVyKSBjb25zdAoreworICAgIHJldHVybiBtX3BhZ2UtPnNob3dSZXBhaW50Q291bnRlcihsYXll
cik7Cit9CisKIH0gLy8gbmFtZXNwYWNlIFdlYktpdAogfSAvLyBuYW1lc3BhY2UgQmxhY2tCZXJy
eQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2JsYWNrYmVycnkvV2ViS2l0U3VwcG9ydC9E
ZWZhdWx0VGFwSGlnaGxpZ2h0LmggYi9Tb3VyY2UvV2ViS2l0L2JsYWNrYmVycnkvV2ViS2l0U3Vw
cG9ydC9EZWZhdWx0VGFwSGlnaGxpZ2h0LmgKaW5kZXggMzQ4OTMzNzcwMTA1MTQ0NWMzZTE2Yzdl
ZGE3MjRiYWY2Yjc2NjEyMS4uYzA0ZjYzNzdjMjIwNTc3NzEyOTVkNmM0ZGIwNmI4YWUzMzc0MTNi
ZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9ibGFja2JlcnJ5L1dlYktpdFN1cHBvcnQvRGVm
YXVsdFRhcEhpZ2hsaWdodC5oCisrKyBiL1NvdXJjZS9XZWJLaXQvYmxhY2tiZXJyeS9XZWJLaXRT
dXBwb3J0L0RlZmF1bHRUYXBIaWdobGlnaHQuaApAQCAtNTYsOCArNTYsOCBAQCBwdWJsaWM6CiAg
ICAgdmlydHVhbCB2b2lkIG5vdGlmeUFuaW1hdGlvblN0YXJ0ZWQoY29uc3QgV2ViQ29yZTo6R3Jh
cGhpY3NMYXllciosIGRvdWJsZSB0aW1lKSB7IH0KICAgICB2aXJ0dWFsIHZvaWQgbm90aWZ5U3lu
Y1JlcXVpcmVkKGNvbnN0IFdlYkNvcmU6OkdyYXBoaWNzTGF5ZXIqKTsKICAgICB2aXJ0dWFsIHZv
aWQgcGFpbnRDb250ZW50cyhjb25zdCBXZWJDb3JlOjpHcmFwaGljc0xheWVyKiwgV2ViQ29yZTo6
R3JhcGhpY3NDb250ZXh0JiwgV2ViQ29yZTo6R3JhcGhpY3NMYXllclBhaW50aW5nUGhhc2UsIGNv
bnN0IFdlYkNvcmU6OkludFJlY3QmIGluQ2xpcCk7Ci0gICAgdmlydHVhbCBib29sIHNob3dEZWJ1
Z0JvcmRlcnMoY29uc3QgV2ViQ29yZTo6R3JhcGhpY3NMYXllciopIGNvbnN0IHsgcmV0dXJuIGZh
bHNlOyB9Ci0gICAgdmlydHVhbCBib29sIHNob3dSZXBhaW50Q291bnRlcihjb25zdCBXZWJDb3Jl
OjpHcmFwaGljc0xheWVyKikgY29uc3QgeyByZXR1cm4gZmFsc2U7IH0KKyAgICB2aXJ0dWFsIGJv
b2wgc2hvd0RlYnVnQm9yZGVycyhjb25zdCBXZWJDb3JlOjpHcmFwaGljc0xheWVyKikgY29uc3Q7
CisgICAgdmlydHVhbCBib29sIHNob3dSZXBhaW50Q291bnRlcihjb25zdCBXZWJDb3JlOjpHcmFw
aGljc0xheWVyKikgY29uc3Q7CiAKIHByaXZhdGU6CiAgICAgRGVmYXVsdFRhcEhpZ2hsaWdodChX
ZWJQYWdlUHJpdmF0ZSopOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9ibGFja2JlcnJ5L1dl
YktpdFN1cHBvcnQvU2VsZWN0aW9uT3ZlcmxheS5jcHAgYi9Tb3VyY2UvV2ViS2l0L2JsYWNrYmVy
cnkvV2ViS2l0U3VwcG9ydC9TZWxlY3Rpb25PdmVybGF5LmNwcAppbmRleCA1OGZkMjhlMjZmNjNh
ZmNmZjI2MTcyYWU4MWIwOThmZjI2NDY1YWFhLi5jZDhjMzVkOTM4NTU5NzBlMTM3MTFmZDFjNmE1
ZGY0YmQ3N2JmODg0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L2JsYWNrYmVycnkvV2ViS2l0
U3VwcG9ydC9TZWxlY3Rpb25PdmVybGF5LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L2JsYWNrYmVy
cnkvV2ViS2l0U3VwcG9ydC9TZWxlY3Rpb25PdmVybGF5LmNwcApAQCAtOTQsOSArOTQsOSBAQCB2
b2lkIFNlbGVjdGlvbk92ZXJsYXk6OmhpZGUoKQogICAgIG1fcGFnZS0+bV93ZWJQYWdlLT5yZW1v
dmVPdmVybGF5KG1fb3ZlcmxheS5nZXQoKSk7CiB9CiAKLXZvaWQgU2VsZWN0aW9uT3ZlcmxheTo6
bm90aWZ5U3luY1JlcXVpcmVkKGNvbnN0IEdyYXBoaWNzTGF5ZXIqKQordm9pZCBTZWxlY3Rpb25P
dmVybGF5Ojpub3RpZnlTeW5jUmVxdWlyZWQoY29uc3QgR3JhcGhpY3NMYXllciogbGF5ZXIpCiB7
Ci0gICAgbV9wYWdlLT5zY2hlZHVsZVJvb3RMYXllckNvbW1pdCgpOworICAgIG1fcGFnZS0+bm90
aWZ5U3luY1JlcXVpcmVkKGxheWVyKTsKIH0KIAogdm9pZCBTZWxlY3Rpb25PdmVybGF5OjpwYWlu
dENvbnRlbnRzKGNvbnN0IEdyYXBoaWNzTGF5ZXIqLCBHcmFwaGljc0NvbnRleHQmIGMsIEdyYXBo
aWNzTGF5ZXJQYWludGluZ1BoYXNlLCBjb25zdCBJbnRSZWN0JiBpbkNsaXApCkBAIC0xMzMsNiAr
MTMzLDE2IEBAIHZvaWQgU2VsZWN0aW9uT3ZlcmxheTo6cGFpbnRDb250ZW50cyhjb25zdCBHcmFw
aGljc0xheWVyKiwgR3JhcGhpY3NDb250ZXh0JiBjLCBHCiAgICAgYy5yZXN0b3JlKCk7CiB9CiAK
K2Jvb2wgU2VsZWN0aW9uT3ZlcmxheTo6c2hvd0RlYnVnQm9yZGVycyhjb25zdCBHcmFwaGljc0xh
eWVyKiBsYXllcikgY29uc3QKK3sKKyAgICByZXR1cm4gbV9wYWdlLT5zaG93RGVidWdCb3JkZXJz
KGxheWVyKTsKK30KKworYm9vbCBTZWxlY3Rpb25PdmVybGF5OjpzaG93UmVwYWludENvdW50ZXIo
Y29uc3QgR3JhcGhpY3NMYXllciogbGF5ZXIpIGNvbnN0Cit7CisgICAgcmV0dXJuIG1fcGFnZS0+
c2hvd1JlcGFpbnRDb3VudGVyKGxheWVyKTsKK30KKwogfSAvLyBuYW1lc3BhY2UgV2ViS2l0CiB9
IC8vIG5hbWVzcGFjZSBCbGFja0JlcnJ5CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvYmxh
Y2tiZXJyeS9XZWJLaXRTdXBwb3J0L1NlbGVjdGlvbk92ZXJsYXkuaCBiL1NvdXJjZS9XZWJLaXQv
YmxhY2tiZXJyeS9XZWJLaXRTdXBwb3J0L1NlbGVjdGlvbk92ZXJsYXkuaAppbmRleCA2YzhkMDc1
ZTkzZjZiYmI4NTI5YjU0OTg4MjYzOWNkMGNmYzhjZjUzLi5iZTYxZTc2NGI3ZGE2Mjk2ODVkOTcx
ODY5MmQ1MjM0MGY2NTFiMWQxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L2JsYWNrYmVycnkv
V2ViS2l0U3VwcG9ydC9TZWxlY3Rpb25PdmVybGF5LmgKKysrIGIvU291cmNlL1dlYktpdC9ibGFj
a2JlcnJ5L1dlYktpdFN1cHBvcnQvU2VsZWN0aW9uT3ZlcmxheS5oCkBAIC01Miw4ICs1Miw4IEBA
IHB1YmxpYzoKICAgICB2aXJ0dWFsIHZvaWQgbm90aWZ5QW5pbWF0aW9uU3RhcnRlZChjb25zdCBX
ZWJDb3JlOjpHcmFwaGljc0xheWVyKiwgZG91YmxlIHRpbWUpIHsgfQogICAgIHZpcnR1YWwgdm9p
ZCBub3RpZnlTeW5jUmVxdWlyZWQoY29uc3QgV2ViQ29yZTo6R3JhcGhpY3NMYXllciopOwogICAg
IHZpcnR1YWwgdm9pZCBwYWludENvbnRlbnRzKGNvbnN0IFdlYkNvcmU6OkdyYXBoaWNzTGF5ZXIq
LCBXZWJDb3JlOjpHcmFwaGljc0NvbnRleHQmLCBXZWJDb3JlOjpHcmFwaGljc0xheWVyUGFpbnRp
bmdQaGFzZSwgY29uc3QgV2ViQ29yZTo6SW50UmVjdCYgaW5DbGlwKTsKLSAgICB2aXJ0dWFsIGJv
b2wgc2hvd0RlYnVnQm9yZGVycyhjb25zdCBXZWJDb3JlOjpHcmFwaGljc0xheWVyKikgY29uc3Qg
eyByZXR1cm4gZmFsc2U7IH0KLSAgICB2aXJ0dWFsIGJvb2wgc2hvd1JlcGFpbnRDb3VudGVyKGNv
bnN0IFdlYkNvcmU6OkdyYXBoaWNzTGF5ZXIqKSBjb25zdCB7IHJldHVybiBmYWxzZTsgfQorICAg
IHZpcnR1YWwgYm9vbCBzaG93RGVidWdCb3JkZXJzKGNvbnN0IFdlYkNvcmU6OkdyYXBoaWNzTGF5
ZXIqKSBjb25zdDsKKyAgICB2aXJ0dWFsIGJvb2wgc2hvd1JlcGFpbnRDb3VudGVyKGNvbnN0IFdl
YkNvcmU6OkdyYXBoaWNzTGF5ZXIqKSBjb25zdDsKIAogcHJpdmF0ZToKICAgICBTZWxlY3Rpb25P
dmVybGF5KFdlYlBhZ2VQcml2YXRlKik7Cg==
</data>

          </attachment>
      

    </bug>

</bugzilla>